Merge pull request #9 from Kijewski/branch-1.4.8

Update to v1.4.8: Add Windows, OSX, PyPy compatibility
diff --git a/.github/workflows/compile_test.yml b/.github/workflows/compile_test.yml
index f5ddec1..bd989b3 100644
--- a/.github/workflows/compile_test.yml
+++ b/.github/workflows/compile_test.yml
@@ -4,26 +4,38 @@
 
 jobs:
   build:
-    runs-on: ubuntu-18.04
+    runs-on: ${{ matrix.os }}
     strategy:
       matrix:
-        python-version: [ '3.5', '3.6', '3.7', '3.8' ]
+        os:
+          - ubuntu-latest
+          - macos-latest
+          - windows-latest
+        python: [
+          '3.5', '3.6', '3.7', '3.8', '3.9',
+          'pypy3',
+        ]
+        exclude:
+          - os: macos-latest
+            python: pypy3
         
-    name: Python ${{ matrix.python-version }}
+    name: Python ${{ matrix.python }} on ${{ matrix.os }}
 
     steps:
-      - uses: actions/checkout@v1
-
-      - name: Update submodules
-        run: |
-          git submodule init
-          git submodule update
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
 
       - name: Setup python
-        uses: actions/setup-python@v1
+        uses: actions/setup-python@v2.1.4  # https://github.com/actions/setup-python/issues/171
         with:
-          python-version: ${{ matrix.python-version }}
-          architecture: x64
+          python-version: ${{ matrix.python }}
+
+      - name: Display Python version
+        run: python -c 'import sys; print(sys.version)'
+
+      - name: Update pip
+        run: python -m pip install -U pip wheel setuptools
 
       - name: Install requirements
         run: python -m pip install -Ur requirements.txt
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bf31525..f14452a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,10 +1,17 @@
+### 1.4.8
+
+* Update up Unicode 13.0.0
+* Don't use non-standard ``__uint128``
+* Add PyPy compatibility
+* Add ``decode_utf8(byte-like)``
+
 ### 1.4.7
 
 * Allow ``\uXXXX`` sequences in identifier names
 * Update to Unicode 12.1.0
 * Optimized encoder and decoder for a little better speed
 * Setup basic CI environment
-* Parse \uXXXX in literal keys
+* Parse ``\uXXXX`` in literal keys
 * Understand "0."
 * Add CI tests
 * Reject unescaped newlines in strings per spec
diff --git a/DerivedGeneralCategory.txt.sha b/DerivedGeneralCategory.txt.sha
index dbe6be7..fb8bfd7 100644
--- a/DerivedGeneralCategory.txt.sha
+++ b/DerivedGeneralCategory.txt.sha
@@ -1 +1 @@
-b45324cb2791be1d1cf10862ca1ca4008fed2f482aa20042cac7190d4a8d46f840cc65b7367379343d209c06fdf37cd677f887a99bfbf3aa7022fcb3d4212c2d  DerivedGeneralCategory.txt
+a2d12869592d6dd319b2ad2396610c4b6811de90a67a6503b96c07489be4003cfcf7f88451f3a1b2eb96ecad7e2a19f9de7abb508d584587b346f12ba6de8eb3  DerivedGeneralCategory.txt
diff --git a/MANIFEST.in b/MANIFEST.in
index 8162d85..af1f1b6 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,5 +1,6 @@
 include LICENSE
 include make_*.py
+include sha512sum.py
 include Makefile
 include pyjson5.cpp
 include pyjson5.pyx
diff --git a/Makefile b/Makefile
index 2bb49b7..b092944 100644
--- a/Makefile
+++ b/Makefile
@@ -4,6 +4,9 @@
 
 .PHONY: all sdist bdist_wheel clean docs
 
+export PYTHONUTF8 := 1
+export PYTHONIOENCODING := UTF-8
+
 INCLUDES := \
     src/VERSION src/DESCRIPTION \
     src/_decoder_recursive_select.hpp src/_unicode_cat_of.hpp \
@@ -11,9 +14,9 @@
 
 FILES := Makefile MANIFEST.in pyjson5.pyx README.rst setup.py ${INCLUDES}
 
-DerivedGeneralCategory.txt:
-	wget -O $@ https://www.unicode.org/Public/12.1.0/ucd/extracted/DerivedGeneralCategory.txt
-	sha512sum -c $@.sha
+DerivedGeneralCategory.txt: DerivedGeneralCategory.txt.sha
+	curl -s -o $@ https://www.unicode.org/Public/13.0.0/ucd/extracted/DerivedGeneralCategory.txt
+	python sha512sum.py -c $@.sha
 
 src/_unicode_cat_of.hpp: DerivedGeneralCategory.txt make_unicode_categories.py
 	python make_unicode_categories.py $< $@
diff --git a/docs/conf.py b/docs/conf.py
index f66e669..5f3a86a 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -19,7 +19,7 @@
 master_doc = 'index'
 
 project = u'PyJSON5'
-copyright = u'2018-2019, René Kijewski'
+copyright = u'2018-2020, René Kijewski'
 author = u'René Kijewski'
 
 with open('../src/VERSION', 'rt') as f:
@@ -65,7 +65,7 @@
 autosummary_generate = True
 
 intersphinx_mapping = {
-    'python': ('https://docs.python.org/3.7', None),
+    'python': ('https://docs.python.org/3.9', None),
 }
 
 inheritance_graph_attrs = {
diff --git a/docs/index.rst b/docs/index.rst
index fd6374e..36b7396 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,7 +1,7 @@
 PyJSON5
 =======
 
-A JSON5 serializer and parser library for Python 3.4 and later.
+A JSON5 serializer and parser library for Python 3.5 and later.
 
 
 The serializer returns ASCII data that can safely be used in an HTML template.
@@ -67,9 +67,7 @@
 Compatibility
 -------------
 
-At least CPython 3.4, and a C++14 compatible compiler (such as GCC 5.2+) is needed.
-
-Other interpreters such as Pypy and older CPython versions are not supported.
+At least CPython / PyPy 3.5, and a C++11 compatible compiler (such as GCC 5.2+) is needed.
 
 
 -------------------------------------------------------------------------------
diff --git a/docs/performance.rst b/docs/performance.rst
index eb9935c..7fc3af2 100644
--- a/docs/performance.rst
+++ b/docs/performance.rst
@@ -11,10 +11,10 @@
 If you know that your input does not use JSON5 extension, then this library is probably not what you need.
 
 * Dataset: https://github.com/zemirco/sf-city-lots-json
-* Version: Python 3.7.5 (default, Oct 27 2019, 15:43:29)
+* Version: 3.9.1 (default, Dec  8 2020, 07:51:42)
 * CPU: AMD Ryzen 7 2700 @ 3.7GHz
-* :func:`pyjson5.decode`: **3.18 s** ± 4.89 ms per loop per loop per loop *(lower is better)*
-* :func:`json.loads`: **2.64** s ± 12.7 ms ms per loop
+* :func:`pyjson5.decode`: **3.18** s ± 9.79 ms per loop *(lower is better)*
+* :func:`json.loads`: **2.66** s ± 9.78 ms per loop
 * The decoder works correcty: ``json.loads(content) == pyjson5.loads(content)``
 
 
@@ -26,9 +26,9 @@
 The output is always ASCII regardless if you call :func:`pyjson5.encode` or :func:`pyjson5.encode_bytes`.
 
 * Dataset: https://github.com/zemirco/sf-city-lots-json
-* Version: Python 3.7.5 (default, Oct 27 2019, 15:43:29)
+* Version: 3.9.1 (default, Dec  8 2020, 07:51:42)
 * CPU: AMD Ryzen 7 2700 @ 3.7GHz
-* :func:`pyjson5.encode`: **3.42** s ± 11.8 ms per loop *(lower is better)*
-* :func:`json.dumps`: **3.77** s ± 14.4 ms per loop
-* :func:`json.dumps` + :func:`xml.sax.saxutils.escape`: **4.02** s ± 51.6 ms per loop
+* :func:`pyjson5.encode`: **3.21** s ± 25.1 per loop *(lower is better)*
+* :func:`json.dumps`: **3.82** s ± 20.4 ms per loop
+* :func:`json.dumps` + :func:`xml.sax.saxutils.escape`: **3.95** s ± 18.3 ms per loop
 * The encoder works correcty: ``obj == json.loads(pyjson5.encode(obj, floatformat='%.16e'))``
diff --git a/make_escape_dct.py b/make_escape_dct.py
index b994e69..2c0669f 100755
--- a/make_escape_dct.py
+++ b/make_escape_dct.py
@@ -21,7 +21,9 @@
             s = '\\r'
         elif c == ord('\t'):
             s = '\\t'
-        elif (c < 0x20) or (c >= 0x7f) or (chr(c) in '''"'&<>\\'''):
+        elif c == ord('"'):
+            s = '\\"'
+        elif (c < 0x20) or (c >= 0x7f) or (chr(c) in "'&<>\\"):
             s = f'\\u{c:04x}'
         else:
             s = f'{c:c}'
@@ -32,14 +34,13 @@
             f"'{c}'" if c != '\\' else f"'\\\\'"
             for c in s
         ] + ['0'] * 6
-        print('    {' + ', '.join(t[:8]) + '},', file=f)
+        l = ', '.join(t[:8])
+        print(f'   {{ {l:35s} }},  /* 0x{c:02x} {chr(c)!r} */', file=f)
     print('};', file=f)
 
     escaped = unescaped ^ ((1 << 128) - 1)
-    print('const unsigned __int128 EscapeDct::is_escaped_array = (', file=f)
-    print(f'    ((unsigned __int128) 0x{(escaped >> 64):016x} << 64) |', file=f)
-    print(f'    ((unsigned __int128) 0x{(escaped & ((1 << 64) - 1)):016x})', file=f)
-    print(');', file=f)
+    print(f'const std::uint64_t EscapeDct::is_escaped_lo = UINT64_C(0x{(escaped & ((1 << 64) - 1)):016x});', file=f)
+    print(f'const std::uint64_t EscapeDct::is_escaped_hi = UINT64_C(0x{(escaped >> 64):016x});', file=f)
 
 
 argparser = ArgumentParser(description='Generate src/_escape_dct.hpp')
diff --git a/make_unicode_categories.py b/make_unicode_categories.py
index bffd073..fe8eba2 100755
--- a/make_unicode_categories.py
+++ b/make_unicode_categories.py
@@ -32,7 +32,7 @@
         'nd': IdentifierPart,
     }
 
-    planes = defaultdict(lambda: [0] * 0x1_0000)
+    planes = defaultdict(lambda: [0] * 0x10000)
 
     for input_line in input_file:
         m = match(r'^([0-9A-F]+)(?:\.\.([0-9A-F]+))?\s+;\s+([A-Z][a-z])', input_line)
@@ -45,7 +45,7 @@
             end = int(end or start, 16)
             start = int(start, 16)
             for i in range(start, end + 1):
-                planes[i // 0x1_0000][i % 0x1_0000] = idx
+                planes[i // 0x10000][i % 0x10000] = idx
 
     # per: https://spec.json5.org/#white-space
     for i in (0x9, 0xa, 0xb, 0xc, 0xd, 0x20, 0xa0, 0x2028, 0x2028, 0x2029, 0xfeff):
@@ -99,7 +99,7 @@
     print(file=output_file)
 
     print('    std::uint16_t plane_idx = std::uint16_t(codepoint / 0x10000);', file=output_file)
-    print('    if (__builtin_expect(plane_idx > 16, false)) return 1;', file=output_file)
+    print('    if (JSON5EncoderCpp_expect(plane_idx > 16, false)) return 1;', file=output_file)
     print('    std::uint16_t datum_idx = std::uint16_t(codepoint & 0xffff);', file=output_file)
     print('    const std::uint8_t *plane = planes[plane_idx];', file=output_file)
     print('    return (plane[datum_idx / 4] >> (2 * (datum_idx % 4))) % 4;', file=output_file)
@@ -117,6 +117,6 @@
 
 if __name__ == '__main__':
     args = argparser.parse_args()
-    with open(args.input, 'rt') as input_file, \
-         open(args.output, 'wt') as output_file:
+    with open(str(args.input.resolve()), 'rt') as input_file, \
+         open(str(args.output.resolve()), 'wt') as output_file:
         raise SystemExit(main(input_file, output_file))
diff --git a/run-minefield-test.py b/run-minefield-test.py
index 23a34d2..749ee05 100755
--- a/run-minefield-test.py
+++ b/run-minefield-test.py
@@ -2,8 +2,10 @@
 
 from argparse import ArgumentParser
 from logging import basicConfig, INFO, getLogger
+from os import name
 from pathlib import Path
 from subprocess import Popen
+from sys import executable
 
 from colorama import init, Fore
 from pyjson5 import decode_io
@@ -26,6 +28,17 @@
 
     good = bad = severe = 0
 
+    if name != 'nt':
+        code_severe = Fore.RED + '😱'
+        code_good = Fore.CYAN + 'πŸ˜„'
+        code_bad = Fore.YELLOW + '😠'
+        code_ignored = Fore.BLUE + 'πŸ™…'
+    else:
+        code_severe = Fore.RED + 'SEVERE'
+        code_good = Fore.CYAN + 'GOOD'
+        code_bad = Fore.YELLOW + 'BAD'
+        code_ignored = Fore.BLUE + 'IGNORED'
+
     args = argparser.parse_args()
     index = 0
     for path in sorted(args.tests.glob('?_?*.json')):
@@ -46,7 +59,7 @@
 
         index += 1
         try:
-            p = Popen(('/usr/bin/env', 'python', 'transcode-to-json.py', str(path)))
+            p = Popen((executable, 'transcode-to-json.py', str(path)))
             outcome = p.wait(5)
         except Exception:
             logger.error('Error while testing: %s', path, exc_info=True)
@@ -54,20 +67,20 @@
             continue
 
         if outcome not in (0, 1):
-            code = Fore.RED + '😱'
+            code = code_severe
             severe += 1
         elif category == 'y':
             if outcome == 0:
-                code = Fore.CYAN + 'πŸ˜„'
+                code = code_good
                 good += 1
             else:
-                code = Fore.YELLOW + '😠'
+                code = code_bad
                 bad += 1
         else:
-            code = Fore.BLUE + 'πŸ™…'
+            code = code_ignored
 
         print(
-            '#', index, ' ', code, ' '
+            '#', index, ' ', code, ' | '
             'Category <', category, '> | '
             'Test <', name, '> | '
             'Actual <', 'pass' if outcome == 0 else 'FAIL', '>',
@@ -77,17 +90,13 @@
 
     is_severe = severe > 0
     is_good = bad == 0
-    code = (
-        Fore.RED + '😱' if is_severe else
-        Fore.CYAN + 'πŸ˜„' if is_good else
-        Fore.YELLOW + '😠'
-    )
+    code = code_severe if is_severe else code_good if is_good else code_bad
     print()
     print(
-        code, ' ',
-        good, ' × correct outcome | ',
-        bad, ' × wrong outcome | ',
-        severe, ' × severe errors',
+        code, ' | ',
+        good, ' correct outcomes | ',
+        bad, ' wrong outcomes | ',
+        severe, ' severe errors',
         Fore.RESET,
         sep=''
     )
diff --git a/run-tests.py b/run-tests.py
index 32cf988..c3dddc0 100755
--- a/run-tests.py
+++ b/run-tests.py
@@ -2,8 +2,10 @@
 
 from argparse import ArgumentParser
 from logging import basicConfig, INFO, getLogger
+from os import name
 from pathlib import Path
 from subprocess import Popen
+from sys import executable
 
 from colorama import init, Fore
 from pyjson5 import decode_io
@@ -24,6 +26,15 @@
 
     init()
 
+    if name != 'nt':
+        code_severe = Fore.RED + '😱'
+        code_good = Fore.CYAN + 'πŸ˜„'
+        code_bad = Fore.YELLOW + '😠'
+    else:
+        code_severe = Fore.RED + 'SEVERE'
+        code_good = Fore.CYAN + 'GOOD'
+        code_bad = Fore.YELLOW + 'BAD'
+
     good = 0
     bad = 0
     severe = 0
@@ -40,23 +51,18 @@
         category = path.parent.name
         name = path.stem
         try:
-            p = Popen(('/usr/bin/env', 'python', 'transcode-to-json.py', str(path)))
+            p = Popen((executable, 'transcode-to-json.py', str(path)))
             outcome = p.wait(5)
         except Exception:
             logger.error('Error while testing: %s', path, exc_info=True)
-            errors += 1
+            severe += 1
             continue
 
         is_success = outcome == 0
         is_failure = outcome == 1
         is_severe = outcome not in (0, 1)
         is_good = is_success if expect_success else is_failure
-
-        code = (
-            Fore.RED + '😱' if is_severe else
-            Fore.CYAN + 'πŸ˜„' if is_good else
-            Fore.YELLOW + '😠'
-        )
+        code = code_severe if is_severe else code_good if is_good else code_bad
         print(
             '#', index, ' ', code, ' '
             'Category <', category, '> | '
@@ -76,11 +82,7 @@
 
     is_severe = severe > 0
     is_good = bad == 0
-    code = (
-        Fore.RED + '😱' if is_severe else
-        Fore.CYAN + 'πŸ˜„' if is_good else
-        Fore.YELLOW + '😠'
-    )
+    code = code_severe if is_severe else code_good if is_good else code_bad
     print()
     print(
         code, ' ',
diff --git a/setup.py b/setup.py
index e5521f0..86d4d1e 100755
--- a/setup.py
+++ b/setup.py
@@ -11,7 +11,7 @@
 
 
 extra_compile_args = [
-    '-std=c++11', '-O2', '-fPIC', '-ggdb1', '-pipe',
+    '-std=c++11', '-O3', '-fPIC', '-ggdb1', '-pipe',
     '-fomit-frame-pointer', '-fstack-protector-strong',
 ]
 
@@ -51,6 +51,8 @@
         'Programming Language :: Python :: 3.5',
         'Programming Language :: Python :: 3.6',
         'Programming Language :: Python :: 3.7',
+        'Programming Language :: Python :: 3.8',
+        'Programming Language :: Python :: 3.9',
         'Programming Language :: Python :: 3 :: Only',
         'Programming Language :: Python :: Implementation :: CPython',
         'Topic :: Text Processing :: General',
diff --git a/sha512sum.py b/sha512sum.py
new file mode 100755
index 0000000..a6aad70
--- /dev/null
+++ b/sha512sum.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+
+from argparse import ArgumentParser
+from hashlib import sha512
+from logging import basicConfig, DEBUG
+from pathlib import Path
+from sys import argv, exit
+
+
+argparser = ArgumentParser(description='sha512sum replacement if coreutils isn\'t installed')
+argparser.add_argument('-c', '--check', type=Path, required=True)
+
+if __name__ == '__main__':
+    basicConfig(level=DEBUG)
+    args = argparser.parse_args()
+    errors = 0
+    with open(str(args.check.resolve()), 'rt') as f:
+        for line in f:
+            expected_hash, filename = line.rstrip('\r\n').split('  ', 1)
+            with open(str(Path(filename).resolve()), 'rb') as f:
+                actual_hash = sha512(f.read()).hexdigest()
+
+            if expected_hash == actual_hash:
+                print(filename + ': OK')
+            else:
+                errors += 1
+                print(filename + ': FAILED')
+
+    if errors:
+        print('%s: WARNING: %s computed checksum did NOT match' % (argv[0], errors))
+        exit(1)
+    else:
+        exit(0)
diff --git a/src/VERSION b/src/VERSION
index 9c454b8..75e5c76 100644
--- a/src/VERSION
+++ b/src/VERSION
@@ -1 +1 @@
-"1.4.7"
+"1.4.8"
diff --git a/src/_decoder.pyx b/src/_decoder.pyx
index c519380..cd3c668 100644
--- a/src/_decoder.pyx
+++ b/src/_decoder.pyx
@@ -121,18 +121,18 @@
     cdef uint32_t c1
 
     c0 = cast_to_uint32(_get_hex_character(reader, 4))
-    if expect(Py_UNICODE_IS_LOW_SURROGATE(c0), False):
+    if expect(unicode_is_lo_surrogate(c0), False):
         _raise_expected_s('high surrogate before low surrogate', start, c0)
-    elif not Py_UNICODE_IS_HIGH_SURROGATE(c0):
+    elif not unicode_is_hi_surrogate(c0):
         return c0
 
     _accept_string(reader, b'\\u')
 
     c1 = cast_to_uint32(_get_hex_character(reader, 4))
-    if expect(not Py_UNICODE_IS_LOW_SURROGATE(c1), False):
+    if expect(not unicode_is_lo_surrogate(c1), False):
         _raise_expected_s('low surrogate', start, c1)
 
-    return Py_UNICODE_JOIN_SURROGATES(c0, c1)
+    return unicode_join_surrogates(c0, c1)
 
 
 # >=  0: character to append
@@ -728,7 +728,7 @@
     elif kind == DRS_recursive:
         decoder = _decode_recursive_enter
     else:
-        __builtin_unreachable()
+        unreachable()
         decoder = _decoder_unknown
 
     return decoder(reader, c_in_out)
@@ -769,15 +769,16 @@
 
 
 cdef object _decode_all(ReaderRef reader, boolean some):
-    cdef object ex
+    cdef object ex, ex2
     try:
         return _decode_all_sub(reader, some)
     except _DecoderException as ex:
-        raise (<_DecoderException> ex).cls(
+        ex2 = (<_DecoderException> ex).cls(
             (<_DecoderException> ex).msg,
             (<_DecoderException> ex).result,
             (<_DecoderException> ex).extra,
         )
+    raise ex2
 
 
 cdef object _decode_ucs1(const void *string, Py_ssize_t length,
@@ -807,12 +808,27 @@
     return _decode_all(reader, some)
 
 
+cdef object _decode_utf8(const void *string, Py_ssize_t length,
+                         Py_ssize_t maxdepth, boolean some):
+    cdef ReaderUTF8 reader = ReaderUTF8(
+        ReaderUCS(length, 0, maxdepth),
+        <const Py_UCS1*> string,
+    )
+    return _decode_all(reader, some)
+
+
 cdef object _decode_unicode(object data, Py_ssize_t maxdepth, boolean some):
     cdef Py_ssize_t length
     cdef int kind
+    cdef const char *s
 
     PyUnicode_READY(data)
 
+    if CYTHON_COMPILING_IN_PYPY:
+        length = 0
+        s = PyUnicode_AsUTF8AndSize(data, &length)
+        return _decode_utf8(s, length, maxdepth, some)
+
     length = PyUnicode_GET_LENGTH(data)
     kind = PyUnicode_KIND(data)
 
@@ -823,7 +839,7 @@
     elif kind == PyUnicode_4BYTE_KIND:
         return _decode_ucs4(PyUnicode_4BYTE_DATA(data), length, maxdepth, some)
     else:
-        __builtin_unreachable()
+        unreachable()
 
 
 cdef object _decode_buffer(Py_buffer &view, int32_t wordlength,
@@ -831,7 +847,10 @@
     cdef object (*decoder)(const void*, Py_ssize_t, Py_ssize_t, boolean)
     cdef Py_ssize_t length = 0
 
-    if wordlength == 1:
+    if wordlength == 0:
+        decoder = _decode_utf8
+        length = view.len // 1
+    elif wordlength == 1:
         decoder = _decode_ucs1
         length = view.len // 1
     elif wordlength == 2:
@@ -842,7 +861,7 @@
         length = view.len // 4
     else:
         _raise_illegal_wordlength(wordlength)
-        __builtin_unreachable()
+        unreachable()
         length = 0
         decoder = NULL
 
diff --git a/src/_encoder.pyx b/src/_encoder.pyx
index 96eabb0..675034d 100644
--- a/src/_encoder.pyx
+++ b/src/_encoder.pyx
@@ -1,4 +1,4 @@
-cdef boolean _encode_unicode_impl(WriterRef writer, UCSString data, Py_ssize_t length) except False:
+cdef int _encode_unicode_impl(WriterRef writer, UCSString data, Py_ssize_t length) except -1:
     cdef char buf[32]
     cdef uint32_t c
     cdef uint32_t s1, s2
@@ -83,7 +83,7 @@
     return True
 
 
-cdef boolean _encode_unicode(WriterRef writer, object data) except False:
+cdef int _encode_unicode(WriterRef writer, object data) except -1:
     cdef Py_ssize_t length
     cdef int kind
 
@@ -104,10 +104,11 @@
     return True
 
 
-cdef boolean _encode_nested_key(WriterRef writer, object data) except False:
+cdef int _encode_nested_key(WriterRef writer, object data) except -1:
     cdef const char *string
     cdef char c
     cdef Py_ssize_t index, length
+    cdef int result
 
     cdef WriterReallocatable sub_writer = WriterReallocatable(
         Writer(
@@ -119,7 +120,9 @@
         0, 0, NULL,
     )
     try:
-        _encode(sub_writer.base, data)
+        result = _encode(sub_writer.base, data)
+        if expect(result < 0, False):
+            return result
 
         length = sub_writer.position
         string = <char*> sub_writer.obj
@@ -128,12 +131,9 @@
         writer.append_c(writer, <char> PyUnicode_1BYTE_DATA((<Options> writer.options).quotationmark)[0])
         for index in range(length):
             c = string[index]
-            if c not in b'\\"':
-                writer.append_c(writer, c)
-            elif c == b'\\':
-                writer.append_s(writer, b'\\\\', 2)
-            else:
-                writer.append_s(writer, b'\\u0022', 6)
+            if c in b'\\"':
+                writer.append_c(writer, b'\\')
+            writer.append_c(writer, c)
         writer.append_c(writer, <char> PyUnicode_1BYTE_DATA((<Options> writer.options).quotationmark)[0])
     finally:
         if sub_writer.obj is not NULL:
@@ -142,7 +142,7 @@
     return True
 
 
-cdef boolean _append_ascii(WriterRef writer, object data) except False:
+cdef int _append_ascii(WriterRef writer, object data) except -1:
     cdef Py_buffer view
     cdef const char *buf
     cdef Py_ssize_t index
@@ -170,14 +170,9 @@
 
 
 cdef int _encode_tojson(WriterRef writer, object data) except -1:
-    cdef object value
-
-    if (<Options> writer.options).tojson is None:
-        return 0
-
-    value = getattr(data, (<Options> writer.options).tojson, None)
+    cdef object value = getattr(data, (<Options> writer.options).tojson, None)
     if value is None:
-        return 0
+        return False
 
     if callable(value):
         Py_EnterRecursiveCall(' while encoding nested JSON5 object')
@@ -187,34 +182,34 @@
             Py_LeaveRecursiveCall()
 
     _append_ascii(writer, value)
-    return 1
-
-
-
-cdef boolean _encode_unknown(WriterRef writer, object data) except False:
-    if _encode_tojson(writer, data):
-        pass
-    elif data == None:
-        writer.append_s(writer, b'none', 4)
-    else:
-        _raise_unstringifiable(data)
     return True
 
 
-cdef boolean _encode_sequence(WriterRef writer, object data) except False:
+cdef int _encode_sequence(WriterRef writer, object data) except -1:
     cdef boolean first
+    cdef object iterator
     cdef object value
+    cdef int result
+
+    try:
+        iterator = PyObject_GetIter(data)
+    except TypeError:
+        return False
 
     Py_EnterRecursiveCall(' while encoding nested JSON5 object')
     try:
         writer.append_c(writer, <char> b'[')
         first = True
-        for value in data:
+        value = None
+        while iter_next(iterator, &<PyObject*&> value):
             if not first:
                 writer.append_c(writer, <char> b',')
             else:
                 first = False
-            _encode(writer, value)
+
+            result = _encode(writer, value)
+            if expect(result < 0, False):
+                return result
         writer.append_c(writer, <char> b']')
     finally:
         Py_LeaveRecursiveCall()
@@ -222,15 +217,22 @@
     return True
 
 
-cdef boolean _encode_mapping(WriterRef writer, object data) except False:
+cdef int _encode_mapping(WriterRef writer, object data) except -1:
     cdef boolean first
-    cdef object key, value
+    cdef object iterator, key, value
+    cdef int result
+
+    if not isinstance(data, (<Options> writer.options).mappingtypes):
+        return False
+
+    iterator = PyObject_GetIter(data)
 
     Py_EnterRecursiveCall(' while encoding nested JSON5 object')
     try:
         writer.append_c(writer, <char> b'{')
         first = True
-        for key in data:
+        key = None
+        while iter_next(iterator, &<PyObject*&> key):
             if not first:
                 writer.append_c(writer, <char> b',')
             else:
@@ -243,7 +245,10 @@
                 _encode_nested_key(writer, key)
 
             writer.append_c(writer, <char> b':')
-            _encode(writer, value)
+
+            result = _encode(writer, value)
+            if expect(result < 0, False):
+                return result
         writer.append_c(writer, <char> b'}')
     finally:
         Py_LeaveRecursiveCall()
@@ -251,28 +256,27 @@
     return True
 
 
-cdef boolean _encode_none(WriterRef writer, object data) except False:
+cdef int _encode_none(WriterRef writer, object data) except -1:
     writer.append_s(writer, b'null', 4)
     return True
 
 
-cdef boolean _encode_bool(WriterRef writer, object data) except False:
-    if data:
-        writer.append_s(writer, 'true', 4)
-    else:
-        writer.append_s(writer, 'false', 5)
-    return True
-
-
-cdef boolean _encode_bytes(WriterRef writer, object data) except False:
+cdef int _encode_bytes(WriterRef writer, object data) except -1:
     _encode_unicode(writer, PyUnicode_FromEncodedObject(data, 'UTF-8', 'strict'))
     return True
 
 
-cdef boolean _encode_datetime(WriterRef writer, object data) except False:
-    cdef Py_ssize_t length = 0  # silence warning
-    cdef object stringified = data.isoformat()
-    cdef const char *string = PyUnicode_AsUTF8AndSize(stringified, &length)
+cdef int _encode_datetime(WriterRef writer, object data) except -1:
+    cdef object stringified
+    cdef Py_ssize_t length
+    cdef const char *string
+
+    if not isinstance(data, DATETIME_CLASSES):
+        return False
+
+    stringified = data.isoformat()
+    length = 0
+    string = PyUnicode_AsUTF8AndSize(stringified, &length)
 
     writer.reserve(writer, 2 + length)
     writer.append_c(writer, <char> PyUnicode_1BYTE_DATA((<Options> writer.options).quotationmark)[0])
@@ -282,7 +286,7 @@
     return True
 
 
-cdef boolean _encode_format_string(WriterRef writer, object data, object formatter_string) except False:
+cdef int _encode_format_string(WriterRef writer, object data, object formatter_string) except -1:
     cdef const char *string
     cdef Py_ssize_t length = 0  # silence warning
 
@@ -296,7 +300,7 @@
     return True
 
 
-cdef boolean _encode_float(WriterRef writer, object data) except False:
+cdef int _encode_float(WriterRef writer, object data) except -1:
     cdef object formatter_string
     cdef double value = PyFloat_AsDouble(data)
     cdef int classification = fpclassify(value)
@@ -317,7 +321,7 @@
         else:
             formatter_string = (<Options> writer.options).neginfinity
 
-    if formatter_string is None:
+    if expect(formatter_string is None, False):
         _raise_unstringifiable(data)
 
     writer.append_s(
@@ -328,56 +332,88 @@
     return True
 
 
-cdef boolean _encode_long(WriterRef writer, object data) except False:
-    _encode_format_string(writer, data, (<Options> writer.options).intformat)
+cdef int _encode_long(WriterRef writer, object data) except -1:
+    if PyBool_Check(data):
+        if data is True:
+            writer.append_s(writer, 'true', 4)
+        else:
+            writer.append_s(writer, 'false', 5)
+    else:
+        _encode_format_string(writer, data, (<Options> writer.options).intformat)
     return True
 
 
-cdef boolean _encode_decimal(WriterRef writer, object data) except False:
+cdef int _encode_decimal(WriterRef writer, object data) except -1:
+    if not isinstance(data, Decimal):
+        return False
+
     _encode_format_string(writer, data, (<Options> writer.options).decimalformat)
     return True
 
 
-cdef boolean _encode_iterable(WriterRef writer, object data) except False:
-    if _encode_tojson(writer, data):
-        pass
-    elif isinstance(data, (<Options> writer.options).mappingtypes):
-        _encode_mapping(writer, data)
+cdef int _encode_unstringifiable(WriterRef writer, object data) except -1:
+    if expect(not data, True):
+        writer.append_s(writer, b'none', 4)
     else:
-        _encode_sequence(writer, data)
+        _raise_unstringifiable(data)
     return True
 
 
-cdef boolean _encode(WriterRef writer, object data) except False:
-    cdef boolean (*encoder)(WriterRef, object) except False
+cdef int _encode_other(WriterRef writer, object data):
+    cdef int result = 0
+
+    while True:
+        if (<Options> writer.options).tojson is not None:
+            result = (<int(*)(WriterRef, object)> _encode_tojson)(writer, data)
+            if result != 0:
+                break
+
+        if obj_has_iter(data):
+            result = (<int(*)(WriterRef, object)> _encode_mapping)(writer, data)
+            if result != 0:
+                break
+
+            result = (<int(*)(WriterRef, object)> _encode_sequence)(writer, data)
+            if result != 0:
+                break
+
+        result = (<int(*)(WriterRef, object)> _encode_decimal)(writer, data)
+        if result != 0:
+            break
+
+        result = (<int(*)(WriterRef, object)> _encode_datetime)(writer, data)
+        if result != 0:
+            break
+
+        result = (<int(*)(WriterRef, object)> _encode_unstringifiable)(writer, data)
+        if result != 0:
+            break
+
+        break
+
+    return result
+
+
+cdef int _encode(WriterRef writer, object data):
+    cdef int (*encoder)(WriterRef, object)
 
     if data is None:
-        encoder = _encode_none
+        encoder = <int(*)(WriterRef, object)> _encode_none
     elif PyUnicode_Check(data):
-        encoder = _encode_unicode
-    elif PyBool_Check(data):
-        encoder = _encode_bool
-    elif PyBytes_Check(data):
-        encoder = _encode_bytes
+        encoder = <int(*)(WriterRef, object)> _encode_unicode
     elif PyLong_Check(data):
-        encoder = _encode_long
+        encoder = <int(*)(WriterRef, object)> _encode_long
     elif PyFloat_Check(data):
-        encoder = _encode_float
-    elif obj_has_iter(data):
-        encoder = _encode_iterable
-    elif isinstance(data, Decimal):
-        encoder = _encode_decimal
-    elif isinstance(data, DATETIME_CLASSES):
-        encoder = _encode_datetime
+        encoder = <int(*)(WriterRef, object)> _encode_float
+    elif PyBytes_Check(data):
+        encoder = <int(*)(WriterRef, object)> _encode_bytes
     else:
-        encoder = _encode_unknown
+        encoder = <int(*)(WriterRef, object)> _encode_other
 
-    encoder(writer, data)
-
-    return True
+    return encoder(writer, data)
 
 
-cdef boolean _encode_callback_bytes(object data, object cb, object options) except False:
+cdef int _encode_callback_bytes(object data, object cb, object options) except -1:
     cdef WriterCallback writer = WriterCallback(
         Writer(
             _WriterNoop_reserve,
@@ -388,15 +424,13 @@
         <PyObject*> cb,
     )
 
-    if not callable(cb):
+    if expect(not callable(cb), False):
         raise TypeError(f'type(cb)=={type(cb)!r} is not callable')
 
-    _encode(writer.base, data)
-
-    return True
+    return _encode(writer.base, data)
 
 
-cdef boolean _encode_callback_str(object data, object cb, object options) except False:
+cdef int _encode_callback_str(object data, object cb, object options) except -1:
     cdef WriterCallback writer = WriterCallback(
         Writer(
             _WriterNoop_reserve,
@@ -407,9 +441,7 @@
         <PyObject*> cb,
     )
 
-    if not callable(cb):
+    if expect(not callable(cb), False):
         raise TypeError(f'type(cb)=={type(cb)!r} is not callable')
 
-    _encode(writer.base, data)
-
-    return True
+    return _encode(writer.base, data)
diff --git a/src/_encoder_options.pyx b/src/_encoder_options.pyx
index b96b599..7454c3e 100644
--- a/src/_encoder_options.pyx
+++ b/src/_encoder_options.pyx
@@ -98,8 +98,7 @@
         * **False:** Throw an exception if a ``Decimal`` is encountered.
         * **None:** Use default: ``"%s"``.
     mappingtypes : Iterable[type]|False|None
-        * **Iterable[type]:** Classes the should be encoded to objects. \
-                              Must be iterable over their keys, and implement ``__getitem__``.
+        * **Iterable[type]:** Classes that should be encoded to objects. Must be iterable over their keys, and implement ``__getitem__``.
         * **False:** There are no objects. Any object will be encoded as list of keys as in list(obj).
         * **None:** Use default: ``[collections.abc.Mapping]``.
     '''
diff --git a/src/_escape_dct.hpp b/src/_escape_dct.hpp
index 9d5df94..4942e7d 100644
--- a/src/_escape_dct.hpp
+++ b/src/_escape_dct.hpp
@@ -1,262 +1,260 @@
 const EscapeDct::Items EscapeDct::items = {
-    {6, '\\', 'u', '0', '0', '0', '0', 0},
-    {6, '\\', 'u', '0', '0', '0', '1', 0},
-    {6, '\\', 'u', '0', '0', '0', '2', 0},
-    {6, '\\', 'u', '0', '0', '0', '3', 0},
-    {6, '\\', 'u', '0', '0', '0', '4', 0},
-    {6, '\\', 'u', '0', '0', '0', '5', 0},
-    {6, '\\', 'u', '0', '0', '0', '6', 0},
-    {6, '\\', 'u', '0', '0', '0', '7', 0},
-    {2, '\\', 'b', 0, 0, 0, 0, 0},
-    {2, '\\', 't', 0, 0, 0, 0, 0},
-    {2, '\\', 'n', 0, 0, 0, 0, 0},
-    {6, '\\', 'u', '0', '0', '0', 'b', 0},
-    {2, '\\', 'f', 0, 0, 0, 0, 0},
-    {2, '\\', 'r', 0, 0, 0, 0, 0},
-    {6, '\\', 'u', '0', '0', '0', 'e', 0},
-    {6, '\\', 'u', '0', '0', '0', 'f', 0},
-    {6, '\\', 'u', '0', '0', '1', '0', 0},
-    {6, '\\', 'u', '0', '0', '1', '1', 0},
-    {6, '\\', 'u', '0', '0', '1', '2', 0},
-    {6, '\\', 'u', '0', '0', '1', '3', 0},
-    {6, '\\', 'u', '0', '0', '1', '4', 0},
-    {6, '\\', 'u', '0', '0', '1', '5', 0},
-    {6, '\\', 'u', '0', '0', '1', '6', 0},
-    {6, '\\', 'u', '0', '0', '1', '7', 0},
-    {6, '\\', 'u', '0', '0', '1', '8', 0},
-    {6, '\\', 'u', '0', '0', '1', '9', 0},
-    {6, '\\', 'u', '0', '0', '1', 'a', 0},
-    {6, '\\', 'u', '0', '0', '1', 'b', 0},
-    {6, '\\', 'u', '0', '0', '1', 'c', 0},
-    {6, '\\', 'u', '0', '0', '1', 'd', 0},
-    {6, '\\', 'u', '0', '0', '1', 'e', 0},
-    {6, '\\', 'u', '0', '0', '1', 'f', 0},
-    {1, ' ', 0, 0, 0, 0, 0, 0},
-    {1, '!', 0, 0, 0, 0, 0, 0},
-    {6, '\\', 'u', '0', '0', '2', '2', 0},
-    {1, '#', 0, 0, 0, 0, 0, 0},
-    {1, '$', 0, 0, 0, 0, 0, 0},
-    {1, '%', 0, 0, 0, 0, 0, 0},
-    {6, '\\', 'u', '0', '0', '2', '6', 0},
-    {6, '\\', 'u', '0', '0', '2', '7', 0},
-    {1, '(', 0, 0, 0, 0, 0, 0},
-    {1, ')', 0, 0, 0, 0, 0, 0},
-    {1, '*', 0, 0, 0, 0, 0, 0},
-    {1, '+', 0, 0, 0, 0, 0, 0},
-    {1, ',', 0, 0, 0, 0, 0, 0},
-    {1, '-', 0, 0, 0, 0, 0, 0},
-    {1, '.', 0, 0, 0, 0, 0, 0},
-    {1, '/', 0, 0, 0, 0, 0, 0},
-    {1, '0', 0, 0, 0, 0, 0, 0},
-    {1, '1', 0, 0, 0, 0, 0, 0},
-    {1, '2', 0, 0, 0, 0, 0, 0},
-    {1, '3', 0, 0, 0, 0, 0, 0},
-    {1, '4', 0, 0, 0, 0, 0, 0},
-    {1, '5', 0, 0, 0, 0, 0, 0},
-    {1, '6', 0, 0, 0, 0, 0, 0},
-    {1, '7', 0, 0, 0, 0, 0, 0},
-    {1, '8', 0, 0, 0, 0, 0, 0},
-    {1, '9', 0, 0, 0, 0, 0, 0},
-    {1, ':', 0, 0, 0, 0, 0, 0},
-    {1, ';', 0, 0, 0, 0, 0, 0},
-    {6, '\\', 'u', '0', '0', '3', 'c', 0},
-    {1, '=', 0, 0, 0, 0, 0, 0},
-    {6, '\\', 'u', '0', '0', '3', 'e', 0},
-    {1, '?', 0, 0, 0, 0, 0, 0},
-    {1, '@', 0, 0, 0, 0, 0, 0},
-    {1, 'A', 0, 0, 0, 0, 0, 0},
-    {1, 'B', 0, 0, 0, 0, 0, 0},
-    {1, 'C', 0, 0, 0, 0, 0, 0},
-    {1, 'D', 0, 0, 0, 0, 0, 0},
-    {1, 'E', 0, 0, 0, 0, 0, 0},
-    {1, 'F', 0, 0, 0, 0, 0, 0},
-    {1, 'G', 0, 0, 0, 0, 0, 0},
-    {1, 'H', 0, 0, 0, 0, 0, 0},
-    {1, 'I', 0, 0, 0, 0, 0, 0},
-    {1, 'J', 0, 0, 0, 0, 0, 0},
-    {1, 'K', 0, 0, 0, 0, 0, 0},
-    {1, 'L', 0, 0, 0, 0, 0, 0},
-    {1, 'M', 0, 0, 0, 0, 0, 0},
-    {1, 'N', 0, 0, 0, 0, 0, 0},
-    {1, 'O', 0, 0, 0, 0, 0, 0},
-    {1, 'P', 0, 0, 0, 0, 0, 0},
-    {1, 'Q', 0, 0, 0, 0, 0, 0},
-    {1, 'R', 0, 0, 0, 0, 0, 0},
-    {1, 'S', 0, 0, 0, 0, 0, 0},
-    {1, 'T', 0, 0, 0, 0, 0, 0},
-    {1, 'U', 0, 0, 0, 0, 0, 0},
-    {1, 'V', 0, 0, 0, 0, 0, 0},
-    {1, 'W', 0, 0, 0, 0, 0, 0},
-    {1, 'X', 0, 0, 0, 0, 0, 0},
-    {1, 'Y', 0, 0, 0, 0, 0, 0},
-    {1, 'Z', 0, 0, 0, 0, 0, 0},
-    {1, '[', 0, 0, 0, 0, 0, 0},
-    {2, '\\', '\\', 0, 0, 0, 0, 0},
-    {1, ']', 0, 0, 0, 0, 0, 0},
-    {1, '^', 0, 0, 0, 0, 0, 0},
-    {1, '_', 0, 0, 0, 0, 0, 0},
-    {1, '`', 0, 0, 0, 0, 0, 0},
-    {1, 'a', 0, 0, 0, 0, 0, 0},
-    {1, 'b', 0, 0, 0, 0, 0, 0},
-    {1, 'c', 0, 0, 0, 0, 0, 0},
-    {1, 'd', 0, 0, 0, 0, 0, 0},
-    {1, 'e', 0, 0, 0, 0, 0, 0},
-    {1, 'f', 0, 0, 0, 0, 0, 0},
-    {1, 'g', 0, 0, 0, 0, 0, 0},
-    {1, 'h', 0, 0, 0, 0, 0, 0},
-    {1, 'i', 0, 0, 0, 0, 0, 0},
-    {1, 'j', 0, 0, 0, 0, 0, 0},
-    {1, 'k', 0, 0, 0, 0, 0, 0},
-    {1, 'l', 0, 0, 0, 0, 0, 0},
-    {1, 'm', 0, 0, 0, 0, 0, 0},
-    {1, 'n', 0, 0, 0, 0, 0, 0},
-    {1, 'o', 0, 0, 0, 0, 0, 0},
-    {1, 'p', 0, 0, 0, 0, 0, 0},
-    {1, 'q', 0, 0, 0, 0, 0, 0},
-    {1, 'r', 0, 0, 0, 0, 0, 0},
-    {1, 's', 0, 0, 0, 0, 0, 0},
-    {1, 't', 0, 0, 0, 0, 0, 0},
-    {1, 'u', 0, 0, 0, 0, 0, 0},
-    {1, 'v', 0, 0, 0, 0, 0, 0},
-    {1, 'w', 0, 0, 0, 0, 0, 0},
-    {1, 'x', 0, 0, 0, 0, 0, 0},
-    {1, 'y', 0, 0, 0, 0, 0, 0},
-    {1, 'z', 0, 0, 0, 0, 0, 0},
-    {1, '{', 0, 0, 0, 0, 0, 0},
-    {1, '|', 0, 0, 0, 0, 0, 0},
-    {1, '}', 0, 0, 0, 0, 0, 0},
-    {1, '~', 0, 0, 0, 0, 0, 0},
-    {6, '\\', 'u', '0', '0', '7', 'f', 0},
-    {6, '\\', 'u', '0', '0', '8', '0', 0},
-    {6, '\\', 'u', '0', '0', '8', '1', 0},
-    {6, '\\', 'u', '0', '0', '8', '2', 0},
-    {6, '\\', 'u', '0', '0', '8', '3', 0},
-    {6, '\\', 'u', '0', '0', '8', '4', 0},
-    {6, '\\', 'u', '0', '0', '8', '5', 0},
-    {6, '\\', 'u', '0', '0', '8', '6', 0},
-    {6, '\\', 'u', '0', '0', '8', '7', 0},
-    {6, '\\', 'u', '0', '0', '8', '8', 0},
-    {6, '\\', 'u', '0', '0', '8', '9', 0},
-    {6, '\\', 'u', '0', '0', '8', 'a', 0},
-    {6, '\\', 'u', '0', '0', '8', 'b', 0},
-    {6, '\\', 'u', '0', '0', '8', 'c', 0},
-    {6, '\\', 'u', '0', '0', '8', 'd', 0},
-    {6, '\\', 'u', '0', '0', '8', 'e', 0},
-    {6, '\\', 'u', '0', '0', '8', 'f', 0},
-    {6, '\\', 'u', '0', '0', '9', '0', 0},
-    {6, '\\', 'u', '0', '0', '9', '1', 0},
-    {6, '\\', 'u', '0', '0', '9', '2', 0},
-    {6, '\\', 'u', '0', '0', '9', '3', 0},
-    {6, '\\', 'u', '0', '0', '9', '4', 0},
-    {6, '\\', 'u', '0', '0', '9', '5', 0},
-    {6, '\\', 'u', '0', '0', '9', '6', 0},
-    {6, '\\', 'u', '0', '0', '9', '7', 0},
-    {6, '\\', 'u', '0', '0', '9', '8', 0},
-    {6, '\\', 'u', '0', '0', '9', '9', 0},
-    {6, '\\', 'u', '0', '0', '9', 'a', 0},
-    {6, '\\', 'u', '0', '0', '9', 'b', 0},
-    {6, '\\', 'u', '0', '0', '9', 'c', 0},
-    {6, '\\', 'u', '0', '0', '9', 'd', 0},
-    {6, '\\', 'u', '0', '0', '9', 'e', 0},
-    {6, '\\', 'u', '0', '0', '9', 'f', 0},
-    {6, '\\', 'u', '0', '0', 'a', '0', 0},
-    {6, '\\', 'u', '0', '0', 'a', '1', 0},
-    {6, '\\', 'u', '0', '0', 'a', '2', 0},
-    {6, '\\', 'u', '0', '0', 'a', '3', 0},
-    {6, '\\', 'u', '0', '0', 'a', '4', 0},
-    {6, '\\', 'u', '0', '0', 'a', '5', 0},
-    {6, '\\', 'u', '0', '0', 'a', '6', 0},
-    {6, '\\', 'u', '0', '0', 'a', '7', 0},
-    {6, '\\', 'u', '0', '0', 'a', '8', 0},
-    {6, '\\', 'u', '0', '0', 'a', '9', 0},
-    {6, '\\', 'u', '0', '0', 'a', 'a', 0},
-    {6, '\\', 'u', '0', '0', 'a', 'b', 0},
-    {6, '\\', 'u', '0', '0', 'a', 'c', 0},
-    {6, '\\', 'u', '0', '0', 'a', 'd', 0},
-    {6, '\\', 'u', '0', '0', 'a', 'e', 0},
-    {6, '\\', 'u', '0', '0', 'a', 'f', 0},
-    {6, '\\', 'u', '0', '0', 'b', '0', 0},
-    {6, '\\', 'u', '0', '0', 'b', '1', 0},
-    {6, '\\', 'u', '0', '0', 'b', '2', 0},
-    {6, '\\', 'u', '0', '0', 'b', '3', 0},
-    {6, '\\', 'u', '0', '0', 'b', '4', 0},
-    {6, '\\', 'u', '0', '0', 'b', '5', 0},
-    {6, '\\', 'u', '0', '0', 'b', '6', 0},
-    {6, '\\', 'u', '0', '0', 'b', '7', 0},
-    {6, '\\', 'u', '0', '0', 'b', '8', 0},
-    {6, '\\', 'u', '0', '0', 'b', '9', 0},
-    {6, '\\', 'u', '0', '0', 'b', 'a', 0},
-    {6, '\\', 'u', '0', '0', 'b', 'b', 0},
-    {6, '\\', 'u', '0', '0', 'b', 'c', 0},
-    {6, '\\', 'u', '0', '0', 'b', 'd', 0},
-    {6, '\\', 'u', '0', '0', 'b', 'e', 0},
-    {6, '\\', 'u', '0', '0', 'b', 'f', 0},
-    {6, '\\', 'u', '0', '0', 'c', '0', 0},
-    {6, '\\', 'u', '0', '0', 'c', '1', 0},
-    {6, '\\', 'u', '0', '0', 'c', '2', 0},
-    {6, '\\', 'u', '0', '0', 'c', '3', 0},
-    {6, '\\', 'u', '0', '0', 'c', '4', 0},
-    {6, '\\', 'u', '0', '0', 'c', '5', 0},
-    {6, '\\', 'u', '0', '0', 'c', '6', 0},
-    {6, '\\', 'u', '0', '0', 'c', '7', 0},
-    {6, '\\', 'u', '0', '0', 'c', '8', 0},
-    {6, '\\', 'u', '0', '0', 'c', '9', 0},
-    {6, '\\', 'u', '0', '0', 'c', 'a', 0},
-    {6, '\\', 'u', '0', '0', 'c', 'b', 0},
-    {6, '\\', 'u', '0', '0', 'c', 'c', 0},
-    {6, '\\', 'u', '0', '0', 'c', 'd', 0},
-    {6, '\\', 'u', '0', '0', 'c', 'e', 0},
-    {6, '\\', 'u', '0', '0', 'c', 'f', 0},
-    {6, '\\', 'u', '0', '0', 'd', '0', 0},
-    {6, '\\', 'u', '0', '0', 'd', '1', 0},
-    {6, '\\', 'u', '0', '0', 'd', '2', 0},
-    {6, '\\', 'u', '0', '0', 'd', '3', 0},
-    {6, '\\', 'u', '0', '0', 'd', '4', 0},
-    {6, '\\', 'u', '0', '0', 'd', '5', 0},
-    {6, '\\', 'u', '0', '0', 'd', '6', 0},
-    {6, '\\', 'u', '0', '0', 'd', '7', 0},
-    {6, '\\', 'u', '0', '0', 'd', '8', 0},
-    {6, '\\', 'u', '0', '0', 'd', '9', 0},
-    {6, '\\', 'u', '0', '0', 'd', 'a', 0},
-    {6, '\\', 'u', '0', '0', 'd', 'b', 0},
-    {6, '\\', 'u', '0', '0', 'd', 'c', 0},
-    {6, '\\', 'u', '0', '0', 'd', 'd', 0},
-    {6, '\\', 'u', '0', '0', 'd', 'e', 0},
-    {6, '\\', 'u', '0', '0', 'd', 'f', 0},
-    {6, '\\', 'u', '0', '0', 'e', '0', 0},
-    {6, '\\', 'u', '0', '0', 'e', '1', 0},
-    {6, '\\', 'u', '0', '0', 'e', '2', 0},
-    {6, '\\', 'u', '0', '0', 'e', '3', 0},
-    {6, '\\', 'u', '0', '0', 'e', '4', 0},
-    {6, '\\', 'u', '0', '0', 'e', '5', 0},
-    {6, '\\', 'u', '0', '0', 'e', '6', 0},
-    {6, '\\', 'u', '0', '0', 'e', '7', 0},
-    {6, '\\', 'u', '0', '0', 'e', '8', 0},
-    {6, '\\', 'u', '0', '0', 'e', '9', 0},
-    {6, '\\', 'u', '0', '0', 'e', 'a', 0},
-    {6, '\\', 'u', '0', '0', 'e', 'b', 0},
-    {6, '\\', 'u', '0', '0', 'e', 'c', 0},
-    {6, '\\', 'u', '0', '0', 'e', 'd', 0},
-    {6, '\\', 'u', '0', '0', 'e', 'e', 0},
-    {6, '\\', 'u', '0', '0', 'e', 'f', 0},
-    {6, '\\', 'u', '0', '0', 'f', '0', 0},
-    {6, '\\', 'u', '0', '0', 'f', '1', 0},
-    {6, '\\', 'u', '0', '0', 'f', '2', 0},
-    {6, '\\', 'u', '0', '0', 'f', '3', 0},
-    {6, '\\', 'u', '0', '0', 'f', '4', 0},
-    {6, '\\', 'u', '0', '0', 'f', '5', 0},
-    {6, '\\', 'u', '0', '0', 'f', '6', 0},
-    {6, '\\', 'u', '0', '0', 'f', '7', 0},
-    {6, '\\', 'u', '0', '0', 'f', '8', 0},
-    {6, '\\', 'u', '0', '0', 'f', '9', 0},
-    {6, '\\', 'u', '0', '0', 'f', 'a', 0},
-    {6, '\\', 'u', '0', '0', 'f', 'b', 0},
-    {6, '\\', 'u', '0', '0', 'f', 'c', 0},
-    {6, '\\', 'u', '0', '0', 'f', 'd', 0},
-    {6, '\\', 'u', '0', '0', 'f', 'e', 0},
-    {6, '\\', 'u', '0', '0', 'f', 'f', 0},
+   { 6, '\\', 'u', '0', '0', '0', '0', 0 },  /* 0x00 '\x00' */
+   { 6, '\\', 'u', '0', '0', '0', '1', 0 },  /* 0x01 '\x01' */
+   { 6, '\\', 'u', '0', '0', '0', '2', 0 },  /* 0x02 '\x02' */
+   { 6, '\\', 'u', '0', '0', '0', '3', 0 },  /* 0x03 '\x03' */
+   { 6, '\\', 'u', '0', '0', '0', '4', 0 },  /* 0x04 '\x04' */
+   { 6, '\\', 'u', '0', '0', '0', '5', 0 },  /* 0x05 '\x05' */
+   { 6, '\\', 'u', '0', '0', '0', '6', 0 },  /* 0x06 '\x06' */
+   { 6, '\\', 'u', '0', '0', '0', '7', 0 },  /* 0x07 '\x07' */
+   { 2, '\\', 'b', 0, 0, 0, 0, 0         },  /* 0x08 '\x08' */
+   { 2, '\\', 't', 0, 0, 0, 0, 0         },  /* 0x09 '\t' */
+   { 2, '\\', 'n', 0, 0, 0, 0, 0         },  /* 0x0a '\n' */
+   { 6, '\\', 'u', '0', '0', '0', 'b', 0 },  /* 0x0b '\x0b' */
+   { 2, '\\', 'f', 0, 0, 0, 0, 0         },  /* 0x0c '\x0c' */
+   { 2, '\\', 'r', 0, 0, 0, 0, 0         },  /* 0x0d '\r' */
+   { 6, '\\', 'u', '0', '0', '0', 'e', 0 },  /* 0x0e '\x0e' */
+   { 6, '\\', 'u', '0', '0', '0', 'f', 0 },  /* 0x0f '\x0f' */
+   { 6, '\\', 'u', '0', '0', '1', '0', 0 },  /* 0x10 '\x10' */
+   { 6, '\\', 'u', '0', '0', '1', '1', 0 },  /* 0x11 '\x11' */
+   { 6, '\\', 'u', '0', '0', '1', '2', 0 },  /* 0x12 '\x12' */
+   { 6, '\\', 'u', '0', '0', '1', '3', 0 },  /* 0x13 '\x13' */
+   { 6, '\\', 'u', '0', '0', '1', '4', 0 },  /* 0x14 '\x14' */
+   { 6, '\\', 'u', '0', '0', '1', '5', 0 },  /* 0x15 '\x15' */
+   { 6, '\\', 'u', '0', '0', '1', '6', 0 },  /* 0x16 '\x16' */
+   { 6, '\\', 'u', '0', '0', '1', '7', 0 },  /* 0x17 '\x17' */
+   { 6, '\\', 'u', '0', '0', '1', '8', 0 },  /* 0x18 '\x18' */
+   { 6, '\\', 'u', '0', '0', '1', '9', 0 },  /* 0x19 '\x19' */
+   { 6, '\\', 'u', '0', '0', '1', 'a', 0 },  /* 0x1a '\x1a' */
+   { 6, '\\', 'u', '0', '0', '1', 'b', 0 },  /* 0x1b '\x1b' */
+   { 6, '\\', 'u', '0', '0', '1', 'c', 0 },  /* 0x1c '\x1c' */
+   { 6, '\\', 'u', '0', '0', '1', 'd', 0 },  /* 0x1d '\x1d' */
+   { 6, '\\', 'u', '0', '0', '1', 'e', 0 },  /* 0x1e '\x1e' */
+   { 6, '\\', 'u', '0', '0', '1', 'f', 0 },  /* 0x1f '\x1f' */
+   { 1, ' ', 0, 0, 0, 0, 0, 0            },  /* 0x20 ' ' */
+   { 1, '!', 0, 0, 0, 0, 0, 0            },  /* 0x21 '!' */
+   { 2, '\\', '"', 0, 0, 0, 0, 0         },  /* 0x22 '"' */
+   { 1, '#', 0, 0, 0, 0, 0, 0            },  /* 0x23 '#' */
+   { 1, '$', 0, 0, 0, 0, 0, 0            },  /* 0x24 '$' */
+   { 1, '%', 0, 0, 0, 0, 0, 0            },  /* 0x25 '%' */
+   { 6, '\\', 'u', '0', '0', '2', '6', 0 },  /* 0x26 '&' */
+   { 6, '\\', 'u', '0', '0', '2', '7', 0 },  /* 0x27 "'" */
+   { 1, '(', 0, 0, 0, 0, 0, 0            },  /* 0x28 '(' */
+   { 1, ')', 0, 0, 0, 0, 0, 0            },  /* 0x29 ')' */
+   { 1, '*', 0, 0, 0, 0, 0, 0            },  /* 0x2a '*' */
+   { 1, '+', 0, 0, 0, 0, 0, 0            },  /* 0x2b '+' */
+   { 1, ',', 0, 0, 0, 0, 0, 0            },  /* 0x2c ',' */
+   { 1, '-', 0, 0, 0, 0, 0, 0            },  /* 0x2d '-' */
+   { 1, '.', 0, 0, 0, 0, 0, 0            },  /* 0x2e '.' */
+   { 1, '/', 0, 0, 0, 0, 0, 0            },  /* 0x2f '/' */
+   { 1, '0', 0, 0, 0, 0, 0, 0            },  /* 0x30 '0' */
+   { 1, '1', 0, 0, 0, 0, 0, 0            },  /* 0x31 '1' */
+   { 1, '2', 0, 0, 0, 0, 0, 0            },  /* 0x32 '2' */
+   { 1, '3', 0, 0, 0, 0, 0, 0            },  /* 0x33 '3' */
+   { 1, '4', 0, 0, 0, 0, 0, 0            },  /* 0x34 '4' */
+   { 1, '5', 0, 0, 0, 0, 0, 0            },  /* 0x35 '5' */
+   { 1, '6', 0, 0, 0, 0, 0, 0            },  /* 0x36 '6' */
+   { 1, '7', 0, 0, 0, 0, 0, 0            },  /* 0x37 '7' */
+   { 1, '8', 0, 0, 0, 0, 0, 0            },  /* 0x38 '8' */
+   { 1, '9', 0, 0, 0, 0, 0, 0            },  /* 0x39 '9' */
+   { 1, ':', 0, 0, 0, 0, 0, 0            },  /* 0x3a ':' */
+   { 1, ';', 0, 0, 0, 0, 0, 0            },  /* 0x3b ';' */
+   { 6, '\\', 'u', '0', '0', '3', 'c', 0 },  /* 0x3c '<' */
+   { 1, '=', 0, 0, 0, 0, 0, 0            },  /* 0x3d '=' */
+   { 6, '\\', 'u', '0', '0', '3', 'e', 0 },  /* 0x3e '>' */
+   { 1, '?', 0, 0, 0, 0, 0, 0            },  /* 0x3f '?' */
+   { 1, '@', 0, 0, 0, 0, 0, 0            },  /* 0x40 '@' */
+   { 1, 'A', 0, 0, 0, 0, 0, 0            },  /* 0x41 'A' */
+   { 1, 'B', 0, 0, 0, 0, 0, 0            },  /* 0x42 'B' */
+   { 1, 'C', 0, 0, 0, 0, 0, 0            },  /* 0x43 'C' */
+   { 1, 'D', 0, 0, 0, 0, 0, 0            },  /* 0x44 'D' */
+   { 1, 'E', 0, 0, 0, 0, 0, 0            },  /* 0x45 'E' */
+   { 1, 'F', 0, 0, 0, 0, 0, 0            },  /* 0x46 'F' */
+   { 1, 'G', 0, 0, 0, 0, 0, 0            },  /* 0x47 'G' */
+   { 1, 'H', 0, 0, 0, 0, 0, 0            },  /* 0x48 'H' */
+   { 1, 'I', 0, 0, 0, 0, 0, 0            },  /* 0x49 'I' */
+   { 1, 'J', 0, 0, 0, 0, 0, 0            },  /* 0x4a 'J' */
+   { 1, 'K', 0, 0, 0, 0, 0, 0            },  /* 0x4b 'K' */
+   { 1, 'L', 0, 0, 0, 0, 0, 0            },  /* 0x4c 'L' */
+   { 1, 'M', 0, 0, 0, 0, 0, 0            },  /* 0x4d 'M' */
+   { 1, 'N', 0, 0, 0, 0, 0, 0            },  /* 0x4e 'N' */
+   { 1, 'O', 0, 0, 0, 0, 0, 0            },  /* 0x4f 'O' */
+   { 1, 'P', 0, 0, 0, 0, 0, 0            },  /* 0x50 'P' */
+   { 1, 'Q', 0, 0, 0, 0, 0, 0            },  /* 0x51 'Q' */
+   { 1, 'R', 0, 0, 0, 0, 0, 0            },  /* 0x52 'R' */
+   { 1, 'S', 0, 0, 0, 0, 0, 0            },  /* 0x53 'S' */
+   { 1, 'T', 0, 0, 0, 0, 0, 0            },  /* 0x54 'T' */
+   { 1, 'U', 0, 0, 0, 0, 0, 0            },  /* 0x55 'U' */
+   { 1, 'V', 0, 0, 0, 0, 0, 0            },  /* 0x56 'V' */
+   { 1, 'W', 0, 0, 0, 0, 0, 0            },  /* 0x57 'W' */
+   { 1, 'X', 0, 0, 0, 0, 0, 0            },  /* 0x58 'X' */
+   { 1, 'Y', 0, 0, 0, 0, 0, 0            },  /* 0x59 'Y' */
+   { 1, 'Z', 0, 0, 0, 0, 0, 0            },  /* 0x5a 'Z' */
+   { 1, '[', 0, 0, 0, 0, 0, 0            },  /* 0x5b '[' */
+   { 2, '\\', '\\', 0, 0, 0, 0, 0        },  /* 0x5c '\\' */
+   { 1, ']', 0, 0, 0, 0, 0, 0            },  /* 0x5d ']' */
+   { 1, '^', 0, 0, 0, 0, 0, 0            },  /* 0x5e '^' */
+   { 1, '_', 0, 0, 0, 0, 0, 0            },  /* 0x5f '_' */
+   { 1, '`', 0, 0, 0, 0, 0, 0            },  /* 0x60 '`' */
+   { 1, 'a', 0, 0, 0, 0, 0, 0            },  /* 0x61 'a' */
+   { 1, 'b', 0, 0, 0, 0, 0, 0            },  /* 0x62 'b' */
+   { 1, 'c', 0, 0, 0, 0, 0, 0            },  /* 0x63 'c' */
+   { 1, 'd', 0, 0, 0, 0, 0, 0            },  /* 0x64 'd' */
+   { 1, 'e', 0, 0, 0, 0, 0, 0            },  /* 0x65 'e' */
+   { 1, 'f', 0, 0, 0, 0, 0, 0            },  /* 0x66 'f' */
+   { 1, 'g', 0, 0, 0, 0, 0, 0            },  /* 0x67 'g' */
+   { 1, 'h', 0, 0, 0, 0, 0, 0            },  /* 0x68 'h' */
+   { 1, 'i', 0, 0, 0, 0, 0, 0            },  /* 0x69 'i' */
+   { 1, 'j', 0, 0, 0, 0, 0, 0            },  /* 0x6a 'j' */
+   { 1, 'k', 0, 0, 0, 0, 0, 0            },  /* 0x6b 'k' */
+   { 1, 'l', 0, 0, 0, 0, 0, 0            },  /* 0x6c 'l' */
+   { 1, 'm', 0, 0, 0, 0, 0, 0            },  /* 0x6d 'm' */
+   { 1, 'n', 0, 0, 0, 0, 0, 0            },  /* 0x6e 'n' */
+   { 1, 'o', 0, 0, 0, 0, 0, 0            },  /* 0x6f 'o' */
+   { 1, 'p', 0, 0, 0, 0, 0, 0            },  /* 0x70 'p' */
+   { 1, 'q', 0, 0, 0, 0, 0, 0            },  /* 0x71 'q' */
+   { 1, 'r', 0, 0, 0, 0, 0, 0            },  /* 0x72 'r' */
+   { 1, 's', 0, 0, 0, 0, 0, 0            },  /* 0x73 's' */
+   { 1, 't', 0, 0, 0, 0, 0, 0            },  /* 0x74 't' */
+   { 1, 'u', 0, 0, 0, 0, 0, 0            },  /* 0x75 'u' */
+   { 1, 'v', 0, 0, 0, 0, 0, 0            },  /* 0x76 'v' */
+   { 1, 'w', 0, 0, 0, 0, 0, 0            },  /* 0x77 'w' */
+   { 1, 'x', 0, 0, 0, 0, 0, 0            },  /* 0x78 'x' */
+   { 1, 'y', 0, 0, 0, 0, 0, 0            },  /* 0x79 'y' */
+   { 1, 'z', 0, 0, 0, 0, 0, 0            },  /* 0x7a 'z' */
+   { 1, '{', 0, 0, 0, 0, 0, 0            },  /* 0x7b '{' */
+   { 1, '|', 0, 0, 0, 0, 0, 0            },  /* 0x7c '|' */
+   { 1, '}', 0, 0, 0, 0, 0, 0            },  /* 0x7d '}' */
+   { 1, '~', 0, 0, 0, 0, 0, 0            },  /* 0x7e '~' */
+   { 6, '\\', 'u', '0', '0', '7', 'f', 0 },  /* 0x7f '\x7f' */
+   { 6, '\\', 'u', '0', '0', '8', '0', 0 },  /* 0x80 '\x80' */
+   { 6, '\\', 'u', '0', '0', '8', '1', 0 },  /* 0x81 '\x81' */
+   { 6, '\\', 'u', '0', '0', '8', '2', 0 },  /* 0x82 '\x82' */
+   { 6, '\\', 'u', '0', '0', '8', '3', 0 },  /* 0x83 '\x83' */
+   { 6, '\\', 'u', '0', '0', '8', '4', 0 },  /* 0x84 '\x84' */
+   { 6, '\\', 'u', '0', '0', '8', '5', 0 },  /* 0x85 '\x85' */
+   { 6, '\\', 'u', '0', '0', '8', '6', 0 },  /* 0x86 '\x86' */
+   { 6, '\\', 'u', '0', '0', '8', '7', 0 },  /* 0x87 '\x87' */
+   { 6, '\\', 'u', '0', '0', '8', '8', 0 },  /* 0x88 '\x88' */
+   { 6, '\\', 'u', '0', '0', '8', '9', 0 },  /* 0x89 '\x89' */
+   { 6, '\\', 'u', '0', '0', '8', 'a', 0 },  /* 0x8a '\x8a' */
+   { 6, '\\', 'u', '0', '0', '8', 'b', 0 },  /* 0x8b '\x8b' */
+   { 6, '\\', 'u', '0', '0', '8', 'c', 0 },  /* 0x8c '\x8c' */
+   { 6, '\\', 'u', '0', '0', '8', 'd', 0 },  /* 0x8d '\x8d' */
+   { 6, '\\', 'u', '0', '0', '8', 'e', 0 },  /* 0x8e '\x8e' */
+   { 6, '\\', 'u', '0', '0', '8', 'f', 0 },  /* 0x8f '\x8f' */
+   { 6, '\\', 'u', '0', '0', '9', '0', 0 },  /* 0x90 '\x90' */
+   { 6, '\\', 'u', '0', '0', '9', '1', 0 },  /* 0x91 '\x91' */
+   { 6, '\\', 'u', '0', '0', '9', '2', 0 },  /* 0x92 '\x92' */
+   { 6, '\\', 'u', '0', '0', '9', '3', 0 },  /* 0x93 '\x93' */
+   { 6, '\\', 'u', '0', '0', '9', '4', 0 },  /* 0x94 '\x94' */
+   { 6, '\\', 'u', '0', '0', '9', '5', 0 },  /* 0x95 '\x95' */
+   { 6, '\\', 'u', '0', '0', '9', '6', 0 },  /* 0x96 '\x96' */
+   { 6, '\\', 'u', '0', '0', '9', '7', 0 },  /* 0x97 '\x97' */
+   { 6, '\\', 'u', '0', '0', '9', '8', 0 },  /* 0x98 '\x98' */
+   { 6, '\\', 'u', '0', '0', '9', '9', 0 },  /* 0x99 '\x99' */
+   { 6, '\\', 'u', '0', '0', '9', 'a', 0 },  /* 0x9a '\x9a' */
+   { 6, '\\', 'u', '0', '0', '9', 'b', 0 },  /* 0x9b '\x9b' */
+   { 6, '\\', 'u', '0', '0', '9', 'c', 0 },  /* 0x9c '\x9c' */
+   { 6, '\\', 'u', '0', '0', '9', 'd', 0 },  /* 0x9d '\x9d' */
+   { 6, '\\', 'u', '0', '0', '9', 'e', 0 },  /* 0x9e '\x9e' */
+   { 6, '\\', 'u', '0', '0', '9', 'f', 0 },  /* 0x9f '\x9f' */
+   { 6, '\\', 'u', '0', '0', 'a', '0', 0 },  /* 0xa0 '\xa0' */
+   { 6, '\\', 'u', '0', '0', 'a', '1', 0 },  /* 0xa1 '¡' */
+   { 6, '\\', 'u', '0', '0', 'a', '2', 0 },  /* 0xa2 '¢' */
+   { 6, '\\', 'u', '0', '0', 'a', '3', 0 },  /* 0xa3 '£' */
+   { 6, '\\', 'u', '0', '0', 'a', '4', 0 },  /* 0xa4 '¤' */
+   { 6, '\\', 'u', '0', '0', 'a', '5', 0 },  /* 0xa5 '¥' */
+   { 6, '\\', 'u', '0', '0', 'a', '6', 0 },  /* 0xa6 '¦' */
+   { 6, '\\', 'u', '0', '0', 'a', '7', 0 },  /* 0xa7 '§' */
+   { 6, '\\', 'u', '0', '0', 'a', '8', 0 },  /* 0xa8 '¨' */
+   { 6, '\\', 'u', '0', '0', 'a', '9', 0 },  /* 0xa9 '©' */
+   { 6, '\\', 'u', '0', '0', 'a', 'a', 0 },  /* 0xaa 'ª' */
+   { 6, '\\', 'u', '0', '0', 'a', 'b', 0 },  /* 0xab '«' */
+   { 6, '\\', 'u', '0', '0', 'a', 'c', 0 },  /* 0xac '¬' */
+   { 6, '\\', 'u', '0', '0', 'a', 'd', 0 },  /* 0xad '\xad' */
+   { 6, '\\', 'u', '0', '0', 'a', 'e', 0 },  /* 0xae '®' */
+   { 6, '\\', 'u', '0', '0', 'a', 'f', 0 },  /* 0xaf '¯' */
+   { 6, '\\', 'u', '0', '0', 'b', '0', 0 },  /* 0xb0 '°' */
+   { 6, '\\', 'u', '0', '0', 'b', '1', 0 },  /* 0xb1 '±' */
+   { 6, '\\', 'u', '0', '0', 'b', '2', 0 },  /* 0xb2 '²' */
+   { 6, '\\', 'u', '0', '0', 'b', '3', 0 },  /* 0xb3 '³' */
+   { 6, '\\', 'u', '0', '0', 'b', '4', 0 },  /* 0xb4 '´' */
+   { 6, '\\', 'u', '0', '0', 'b', '5', 0 },  /* 0xb5 'µ' */
+   { 6, '\\', 'u', '0', '0', 'b', '6', 0 },  /* 0xb6 '¶' */
+   { 6, '\\', 'u', '0', '0', 'b', '7', 0 },  /* 0xb7 '·' */
+   { 6, '\\', 'u', '0', '0', 'b', '8', 0 },  /* 0xb8 '¸' */
+   { 6, '\\', 'u', '0', '0', 'b', '9', 0 },  /* 0xb9 '¹' */
+   { 6, '\\', 'u', '0', '0', 'b', 'a', 0 },  /* 0xba 'º' */
+   { 6, '\\', 'u', '0', '0', 'b', 'b', 0 },  /* 0xbb '»' */
+   { 6, '\\', 'u', '0', '0', 'b', 'c', 0 },  /* 0xbc '¼' */
+   { 6, '\\', 'u', '0', '0', 'b', 'd', 0 },  /* 0xbd '½' */
+   { 6, '\\', 'u', '0', '0', 'b', 'e', 0 },  /* 0xbe '¾' */
+   { 6, '\\', 'u', '0', '0', 'b', 'f', 0 },  /* 0xbf '¿' */
+   { 6, '\\', 'u', '0', '0', 'c', '0', 0 },  /* 0xc0 'À' */
+   { 6, '\\', 'u', '0', '0', 'c', '1', 0 },  /* 0xc1 'Á' */
+   { 6, '\\', 'u', '0', '0', 'c', '2', 0 },  /* 0xc2 'Â' */
+   { 6, '\\', 'u', '0', '0', 'c', '3', 0 },  /* 0xc3 'Ã' */
+   { 6, '\\', 'u', '0', '0', 'c', '4', 0 },  /* 0xc4 'Ä' */
+   { 6, '\\', 'u', '0', '0', 'c', '5', 0 },  /* 0xc5 'Å' */
+   { 6, '\\', 'u', '0', '0', 'c', '6', 0 },  /* 0xc6 'Æ' */
+   { 6, '\\', 'u', '0', '0', 'c', '7', 0 },  /* 0xc7 'Ç' */
+   { 6, '\\', 'u', '0', '0', 'c', '8', 0 },  /* 0xc8 'È' */
+   { 6, '\\', 'u', '0', '0', 'c', '9', 0 },  /* 0xc9 'É' */
+   { 6, '\\', 'u', '0', '0', 'c', 'a', 0 },  /* 0xca 'Ê' */
+   { 6, '\\', 'u', '0', '0', 'c', 'b', 0 },  /* 0xcb 'Ë' */
+   { 6, '\\', 'u', '0', '0', 'c', 'c', 0 },  /* 0xcc 'Ì' */
+   { 6, '\\', 'u', '0', '0', 'c', 'd', 0 },  /* 0xcd 'Í' */
+   { 6, '\\', 'u', '0', '0', 'c', 'e', 0 },  /* 0xce 'Î' */
+   { 6, '\\', 'u', '0', '0', 'c', 'f', 0 },  /* 0xcf 'Ï' */
+   { 6, '\\', 'u', '0', '0', 'd', '0', 0 },  /* 0xd0 'Ð' */
+   { 6, '\\', 'u', '0', '0', 'd', '1', 0 },  /* 0xd1 'Ñ' */
+   { 6, '\\', 'u', '0', '0', 'd', '2', 0 },  /* 0xd2 'Ò' */
+   { 6, '\\', 'u', '0', '0', 'd', '3', 0 },  /* 0xd3 'Ó' */
+   { 6, '\\', 'u', '0', '0', 'd', '4', 0 },  /* 0xd4 'Ô' */
+   { 6, '\\', 'u', '0', '0', 'd', '5', 0 },  /* 0xd5 'Õ' */
+   { 6, '\\', 'u', '0', '0', 'd', '6', 0 },  /* 0xd6 'Ö' */
+   { 6, '\\', 'u', '0', '0', 'd', '7', 0 },  /* 0xd7 '×' */
+   { 6, '\\', 'u', '0', '0', 'd', '8', 0 },  /* 0xd8 'Ø' */
+   { 6, '\\', 'u', '0', '0', 'd', '9', 0 },  /* 0xd9 'Ù' */
+   { 6, '\\', 'u', '0', '0', 'd', 'a', 0 },  /* 0xda 'Ú' */
+   { 6, '\\', 'u', '0', '0', 'd', 'b', 0 },  /* 0xdb 'Û' */
+   { 6, '\\', 'u', '0', '0', 'd', 'c', 0 },  /* 0xdc 'Ü' */
+   { 6, '\\', 'u', '0', '0', 'd', 'd', 0 },  /* 0xdd 'Ý' */
+   { 6, '\\', 'u', '0', '0', 'd', 'e', 0 },  /* 0xde 'Þ' */
+   { 6, '\\', 'u', '0', '0', 'd', 'f', 0 },  /* 0xdf 'ß' */
+   { 6, '\\', 'u', '0', '0', 'e', '0', 0 },  /* 0xe0 'à' */
+   { 6, '\\', 'u', '0', '0', 'e', '1', 0 },  /* 0xe1 'á' */
+   { 6, '\\', 'u', '0', '0', 'e', '2', 0 },  /* 0xe2 'â' */
+   { 6, '\\', 'u', '0', '0', 'e', '3', 0 },  /* 0xe3 'ã' */
+   { 6, '\\', 'u', '0', '0', 'e', '4', 0 },  /* 0xe4 'ä' */
+   { 6, '\\', 'u', '0', '0', 'e', '5', 0 },  /* 0xe5 'å' */
+   { 6, '\\', 'u', '0', '0', 'e', '6', 0 },  /* 0xe6 'æ' */
+   { 6, '\\', 'u', '0', '0', 'e', '7', 0 },  /* 0xe7 'ç' */
+   { 6, '\\', 'u', '0', '0', 'e', '8', 0 },  /* 0xe8 'è' */
+   { 6, '\\', 'u', '0', '0', 'e', '9', 0 },  /* 0xe9 'é' */
+   { 6, '\\', 'u', '0', '0', 'e', 'a', 0 },  /* 0xea 'ê' */
+   { 6, '\\', 'u', '0', '0', 'e', 'b', 0 },  /* 0xeb 'ë' */
+   { 6, '\\', 'u', '0', '0', 'e', 'c', 0 },  /* 0xec 'ì' */
+   { 6, '\\', 'u', '0', '0', 'e', 'd', 0 },  /* 0xed 'í' */
+   { 6, '\\', 'u', '0', '0', 'e', 'e', 0 },  /* 0xee 'î' */
+   { 6, '\\', 'u', '0', '0', 'e', 'f', 0 },  /* 0xef 'ï' */
+   { 6, '\\', 'u', '0', '0', 'f', '0', 0 },  /* 0xf0 'ð' */
+   { 6, '\\', 'u', '0', '0', 'f', '1', 0 },  /* 0xf1 'ñ' */
+   { 6, '\\', 'u', '0', '0', 'f', '2', 0 },  /* 0xf2 'ò' */
+   { 6, '\\', 'u', '0', '0', 'f', '3', 0 },  /* 0xf3 'ó' */
+   { 6, '\\', 'u', '0', '0', 'f', '4', 0 },  /* 0xf4 'ô' */
+   { 6, '\\', 'u', '0', '0', 'f', '5', 0 },  /* 0xf5 'õ' */
+   { 6, '\\', 'u', '0', '0', 'f', '6', 0 },  /* 0xf6 'ö' */
+   { 6, '\\', 'u', '0', '0', 'f', '7', 0 },  /* 0xf7 '÷' */
+   { 6, '\\', 'u', '0', '0', 'f', '8', 0 },  /* 0xf8 'ø' */
+   { 6, '\\', 'u', '0', '0', 'f', '9', 0 },  /* 0xf9 'ù' */
+   { 6, '\\', 'u', '0', '0', 'f', 'a', 0 },  /* 0xfa 'ú' */
+   { 6, '\\', 'u', '0', '0', 'f', 'b', 0 },  /* 0xfb 'û' */
+   { 6, '\\', 'u', '0', '0', 'f', 'c', 0 },  /* 0xfc 'ü' */
+   { 6, '\\', 'u', '0', '0', 'f', 'd', 0 },  /* 0xfd 'ý' */
+   { 6, '\\', 'u', '0', '0', 'f', 'e', 0 },  /* 0xfe 'þ' */
+   { 6, '\\', 'u', '0', '0', 'f', 'f', 0 },  /* 0xff 'ÿ' */
 };
-const unsigned __int128 EscapeDct::is_escaped_array = (
-    ((unsigned __int128) 0x8000000010000000 << 64) |
-    ((unsigned __int128) 0x500000c4ffffffff)
-);
+const std::uint64_t EscapeDct::is_escaped_lo = UINT64_C(0x500000c4ffffffff);
+const std::uint64_t EscapeDct::is_escaped_hi = UINT64_C(0x8000000010000000);
diff --git a/src/_exports.pyx b/src/_exports.pyx
index 084d049..64500a0 100644
--- a/src/_exports.pyx
+++ b/src/_exports.pyx
@@ -62,7 +62,7 @@
 
     .. code:: python
 
-        decode_buffer(b'["Hello", "world!"]') == ['Hello', 'world!']
+        decode_latin1(b'["Hello", "world!"]') == ['Hello', 'world!']
 
     Parameters
     ----------
@@ -88,6 +88,38 @@
     return decode_buffer(data, maxdepth, bool(some), 1)
 
 
+def decode_utf8(object data, object maxdepth=None, object some=False):
+    '''
+    Decodes JSON5 serialized data from a ``bytes`` object.
+
+    .. code:: python
+
+        decode_utf8(b'["H\\xe2\\x82\\xacllo", "w\\xc3\\xb6rld!"]') == ['H€llo', 'wörld!']
+
+    Parameters
+    ----------
+    data : bytes
+        JSON5 serialized data, encoded as UTF-8 or ASCII.
+    maxdepth : Optional[int]
+        see `decode(...) <pyjson5.decode_>`_
+    some : bool
+        see `decode(...) <pyjson5.decode_>`_
+
+    Raises
+    ------
+    Json5DecoderException
+        An exception occured while decoding.
+    TypeError
+        An argument had a wrong type.
+
+    Returns
+    -------
+    object
+        see `decode(...) <pyjson5.decode_>`_
+    '''
+    return decode_buffer(data, maxdepth, bool(some), 0)
+
+
 def decode_buffer(object obj, object maxdepth=None, object some=False,
                   object wordlength=None):
     '''
@@ -111,7 +143,7 @@
     some : bool
         see `decode(...) <pyjson5.decode_>`_
     wordlength : Optional[int]
-        Must be 1, 2, 4 to denote UCS1, USC2 or USC4 data.
+        Must be 0, 1, 2, 4 to denote UTF-8, UCS1, USC2 or USC4 data, resp.
         Surrogates are not supported. Decode the data to an ``str`` if need be.
         If ``None`` is supplied, then the buffer's ``itemsize`` is used.
 
@@ -311,7 +343,8 @@
     )
 
     try:
-        _encode(writer.base, data)
+        if expect(_encode(writer.base, data) < 0, False):
+            exception_thrown()
 
         length = writer.position - start
         if length <= 0:
@@ -327,7 +360,7 @@
         writer.obj = NULL
 
         (<PyASCIIObject*> result).length = length
-        (<PyASCIIObject*> result).hash = -1
+        reset_hash(<PyASCIIObject*> result)
         (<PyASCIIObject*> result).wstr = NULL
         (<PyASCIIObject*> result).state.interned = SSTATE_NOT_INTERNED
         (<PyASCIIObject*> result).state.kind = PyUnicode_1BYTE_KIND
@@ -388,7 +421,8 @@
     )
 
     try:
-        _encode(writer.base, data)
+        if expect(_encode(writer.base, data) < 0, False):
+            exception_thrown()
 
         length = writer.position - start
         if length <= 0:
@@ -405,7 +439,7 @@
         )
         writer.obj = NULL
 
-        (<PyBytesObject*> result).ob_shash = -1
+        reset_hash(<PyBytesObject*> result)
 
         return result
     finally:
@@ -463,7 +497,7 @@
     Callable[[Union[bytes|str]], None]
         The supplied argument ``cb``.
     '''
-    cdef boolean (*encoder)(object obj, object cb, object options) except False
+    cdef int (*encoder)(object obj, object cb, object options) except -1
     cdef Options opts = _to_options(options, options_kw)
 
     if supply_bytes:
@@ -510,7 +544,7 @@
     IOBase
         The supplied argument ``fp``.
     '''
-    cdef boolean (*encoder)(object obj, object cb, object options) except False
+    cdef int (*encoder)(object obj, object cb, object options) except -1
     cdef object opts = _to_options(options, options_kw)
 
     if not isinstance(fp, IOBase):
@@ -564,17 +598,15 @@
         <PyObject*> opts,
     )
 
-    try:
-        _encode(writer, data)
-    except Exception:
-        return False
+    if expect(_encode(writer, data) < 0, False):
+        exception_thrown()
 
     return True
 
 
 __all__ = (
     # DECODE
-    'decode', 'decode_latin1', 'decode_buffer', 'decode_callback', 'decode_io',
+    'decode', 'decode_utf8', 'decode_latin1', 'decode_buffer', 'decode_callback', 'decode_io',
     # ENCODE
     'encode', 'encode_bytes', 'encode_callback', 'encode_io', 'encode_noop', 'Options',
     # LEGACY
diff --git a/src/_imports.pyx b/src/_imports.pyx
index 6c6571c..34e8ca3 100644
--- a/src/_imports.pyx
+++ b/src/_imports.pyx
@@ -7,13 +7,12 @@
 from cpython.bytes cimport (
     PyBytes_AsStringAndSize, PyBytes_FromStringAndSize, PyBytes_Check,
 )
-from cpython.datetime cimport datetime, date, time
 from cpython.dict cimport PyDict_SetItem
 from cpython.float cimport PyFloat_Check, PyFloat_AsDouble
 from cpython.int cimport PyInt_Check
 from cpython.list cimport PyList_Append
 from cpython.long cimport PyLong_FromString, PyLong_Check
-from cpython.object cimport PyObject
+from cpython.object cimport PyObject, PyObject_GetIter
 from cpython.type cimport PyType_Check
 from cpython.unicode cimport PyUnicode_Check, PyUnicode_FromEncodedObject, PyUnicode_Format
 from libcpp cimport bool as boolean
@@ -90,6 +89,17 @@
 
     const char HEX[]
 
+    boolean unicode_is_lo_surrogate(uint32_t ch)
+    boolean unicode_is_hi_surrogate(uint32_t ch)
+    uint32_t unicode_join_surrogates(uint32_t hi, uint32_t lo)
+
+    void reset_hash[T](T *obj)
+    AlwaysTrue exception_thrown() except True
+    void unreachable()
+
+cdef extern from 'src/native.hpp' namespace 'JSON5EncoderCpp':
+    int iter_next(object iterator, PyObject **value) except -1
+
 
 cdef extern from 'src/_unicode_cat_of.hpp' namespace 'JSON5EncoderCpp' nogil:
     unsigned unicode_cat_of(uint32_t codepoint)
@@ -131,10 +141,6 @@
 
     bint Py_UNICODE_ISALPHA(Py_UCS4 ch) nogil
     bint Py_UNICODE_ISDIGIT(Py_UCS4 ch) nogil
-    bint Py_UNICODE_IS_SURROGATE(Py_UCS4 ch) nogil
-    bint Py_UNICODE_IS_HIGH_SURROGATE(Py_UCS4 ch) nogil
-    bint Py_UNICODE_IS_LOW_SURROGATE(Py_UCS4 ch) nogil
-    Py_UCS4 Py_UNICODE_JOIN_SURROGATES(Py_UCS4 high, Py_UCS4 low) nogil
 
     object PyUnicode_FromKindAndData(int kind, const void *buf, Py_ssize_t size)
     const char *PyUnicode_AsUTF8AndSize(object o, Py_ssize_t *size) except NULL
@@ -188,15 +194,20 @@
     char data[1]
 
 
+cdef extern from 'src/native.hpp' nogil:
+    boolean expect 'JSON5EncoderCpp_expect'(boolean actual, boolean expected)
+
+
 cdef extern from * nogil:
-    boolean expect '__builtin_expect'(boolean actual, boolean expected)
-    void __builtin_unreachable()
+    enum:
+        CYTHON_COMPILING_IN_PYPY
 
 
-cdef type Decimal, Mapping, IOBase
+cdef type datetime, date, time, Decimal, Mapping, IOBase
 cdef object saferepr
 
 from collections.abc import Mapping
+from datetime import datetime, date, time
 from decimal import Decimal
 from io import IOBase
 from pprint import saferepr
diff --git a/src/_reader_ucs.pyx b/src/_reader_ucs.pyx
index f94a5f2..bf187dc 100644
--- a/src/_reader_ucs.pyx
+++ b/src/_reader_ucs.pyx
@@ -19,9 +19,15 @@
     const Py_UCS4 *string
 
 
+cdef struct ReaderUTF8:
+    ReaderUCS base
+    const Py_UCS1 *string
+
+
 ctypedef ReaderUCS1 &ReaderUCS1Ref
 ctypedef ReaderUCS2 &ReaderUCS2Ref
 ctypedef ReaderUCS4 &ReaderUCS4Ref
+ctypedef ReaderUTF8 &ReaderUTF8Ref
 
 ctypedef Py_UCS1 *UCS1String
 ctypedef Py_UCS2 *UCS2String
@@ -31,6 +37,7 @@
     ReaderUCS1Ref
     ReaderUCS2Ref
     ReaderUCS4Ref
+    ReaderUTF8Ref
 
 ctypedef fused UCSString:
     UCS1String
@@ -50,3 +57,32 @@
     self.base.position += 1
 
     return cast_to_uint32(c)
+
+
+cdef inline uint32_t _reader_utf8_get(ReaderUCSRef self):
+    cdef uint32_t c0 = _reader_ucs_get(self)
+    cdef unsigned int n
+
+    if (c0 & 0b1_0000000) == 0b0_0000000:    # ASCII
+        return c0
+    elif (c0 & 0b11_000000) == 0b10_000000:  # broken continuation
+        return c0
+    elif (c0 & 0b111_00000) == 0b110_00000:  # 2 bytes
+        c0 = (c0 & 0b000_11111)
+        n = 1
+    elif (c0 & 0b1111_0000) == 0b1110_0000:  # 3 bytes
+        c0 = (c0 & 0b0000_1111)
+        n = 2
+    elif (c0 & 0b11111_000) == 0b11110_000:  # 4 bytes
+        c0 = (c0 & 0b00000_111)
+        n = 3
+    else:  # 5+ bytes, invalid
+        return c0
+
+    for n in range(n, 0, -1):
+        if not _reader_ucs_good(self):
+            return c0
+
+        c0 = (c0 << 6) | (_reader_ucs_get(self) & 0b00_111111)
+
+    return c0
diff --git a/src/_readers.pyx b/src/_readers.pyx
index fff1ba0..e0a910e 100644
--- a/src/_readers.pyx
+++ b/src/_readers.pyx
@@ -24,10 +24,14 @@
 
 
 cdef inline uint32_t _reader_get(ReaderRef self):
-    if ReaderRef in ReaderUCSRef:
-        return _reader_ucs_get(self)
+    cdef uint32_t c0
+    if ReaderRef is ReaderUTF8Ref:
+        c0 = _reader_utf8_get(self)
+    elif ReaderRef in ReaderUCSRef:
+        c0 = _reader_ucs_get(self)
     elif ReaderRef is ReaderCallbackRef:
-        return _reader_Callback_get(self)
+        c0 = _reader_Callback_get(self)
+    return c0
 
 
 cdef int32_t _reader_good(ReaderRef self) except -1:
diff --git a/src/_stack_heap_string.hpp b/src/_stack_heap_string.hpp
index 52bd4af..6d020a0 100644
--- a/src/_stack_heap_string.hpp
+++ b/src/_stack_heap_string.hpp
@@ -31,7 +31,7 @@
     }
 
     const T *data() const& {
-        if (__builtin_expect(m_heap == nullptr, true)) {
+        if (JSON5EncoderCpp_expect(m_heap == nullptr, true)) {
             return m_stack;
         } else {
             return m_heap;
@@ -43,7 +43,7 @@
     }
 
     bool push_back(T c) {
-        if (__builtin_expect(m_left == 0, false)) {
+        if (JSON5EncoderCpp_expect(m_left == 0, false)) {
             if (m_heap == nullptr) {
                 void *new_ptr = PyMem_RawMalloc(sizeof(T) * StackHeapStringHeapSize);
                 if (new_ptr == nullptr) {
@@ -66,7 +66,7 @@
             }
         }
 
-        if (__builtin_expect(m_heap == nullptr, true)) {
+        if (JSON5EncoderCpp_expect(m_heap == nullptr, true)) {
             m_stack[m_size] = c;
         } else {
             m_heap[m_size] = c;
diff --git a/src/_unicode_cat_of.hpp b/src/_unicode_cat_of.hpp
index 9a22be4..47895fb 100644
--- a/src/_unicode_cat_of.hpp
+++ b/src/_unicode_cat_of.hpp
@@ -47,8 +47,8 @@
         0xffu, 0xffu, 0xafu, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xeau, 0xffu, 0xffu, 0x0au, 0x20u, 0x0cu, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xfau, 0xefu, 0xffu, 0xffu, 0xfeu, 0xfeu, 0x0fu, 0x00u, 0x00u, 0x00u, 0x00u, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xfeu, 0x00u, 0xaau, 0xaau, 0x2au, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xa2u, 0xaau, 0x0au, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0xc0u, 0xffu, 0xffu, 0xffu, 0xcfu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xa2u, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0x00u, 0x00u, 0xc0u, 0xffu, 0xffu, 0xffu, 0xcfu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 
         0xffu, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xfau, 0xfbu, 
         0xffu, 0xffu, 0xffu, 0xffu, 0xfeu, 0xffu, 0xaau, 0xaau, 0xfau, 0xf0u, 0xffu, 0xffu, 0xa8u, 0xaau, 0xaau, 0xaau, 
         0xfeu, 0xa8u, 0xaau, 0x82u, 0x82u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xa2u, 0xaau, 0x22u, 0xa0u, 0x0au, 0xfbu, 
@@ -58,16 +58,16 @@
         0xfcu, 0xa8u, 0xaau, 0x8au, 0x8au, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xa2u, 0xaau, 0xa2u, 0xa8u, 0x0au, 0xfbu, 
         0xffu, 0xcfu, 0xcfu, 0x0fu, 0x02u, 0x00u, 0x00u, 0x00u, 0xfau, 0xf0u, 0xffu, 0xffu, 0x00u, 0x00u, 0xf8u, 0xffu, 
         0xfcu, 0xa8u, 0xaau, 0x82u, 0x82u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xa2u, 0xaau, 0xa2u, 0xa8u, 0x0au, 0xfbu, 
-        0xffu, 0xc3u, 0xc3u, 0x0fu, 0x00u, 0xf0u, 0x00u, 0x8au, 0xfau, 0xf0u, 0xffu, 0xffu, 0x08u, 0x00u, 0x00u, 0x00u, 
+        0xffu, 0xc3u, 0xc3u, 0x0fu, 0x00u, 0xfcu, 0x00u, 0x8au, 0xfau, 0xf0u, 0xffu, 0xffu, 0x08u, 0x00u, 0x00u, 0x00u, 
         0xb0u, 0xa8u, 0x2au, 0xa0u, 0xa2u, 0x0au, 0x28u, 0xa2u, 0x80u, 0x02u, 0x2au, 0xa0u, 0xaau, 0xaau, 0x0au, 0xf0u, 
         0x3fu, 0xf0u, 0xf3u, 0x0fu, 0x02u, 0xc0u, 0x00u, 0x00u, 0x00u, 0xf0u, 0xffu, 0xffu, 0x00u, 0x00u, 0x00u, 0x00u, 
         0xffu, 0xabu, 0xaau, 0xa2u, 0xa2u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xa2u, 0xaau, 0xaau, 0xaau, 0x0au, 0xf8u, 
         0xffu, 0xf3u, 0xf3u, 0x0fu, 0x00u, 0x3cu, 0x2au, 0x00u, 0xfau, 0xf0u, 0xffu, 0xffu, 0x00u, 0x00u, 0x00u, 0x00u, 
         0xfeu, 0xa8u, 0xaau, 0xa2u, 0xa2u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xa2u, 0xaau, 0xaau, 0xa8u, 0x0au, 0xfbu, 
         0xffu, 0xf3u, 0xf3u, 0x0fu, 0x00u, 0x3cu, 0x00u, 0x20u, 0xfau, 0xf0u, 0xffu, 0xffu, 0x28u, 0x00u, 0x00u, 0x00u, 
-        0xffu, 0xa8u, 0xaau, 0xa2u, 0xa2u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xeau, 0xfbu, 
+        0xffu, 0xaau, 0xaau, 0xa2u, 0xa2u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xeau, 0xfbu, 
         0xffu, 0xf3u, 0xf3u, 0x2fu, 0x00u, 0xeau, 0x00u, 0x80u, 0xfau, 0xf0u, 0xffu, 0xffu, 0x00u, 0x00u, 0xa0u, 0xaau, 
-        0xf0u, 0xa8u, 0xaau, 0xaau, 0xaau, 0x2au, 0xa0u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x8au, 0xaau, 0xaau, 0x08u, 
+        0xfcu, 0xa8u, 0xaau, 0xaau, 0xaau, 0x2au, 0xa0u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x8au, 0xaau, 0xaau, 0x08u, 
         0xaau, 0x2au, 0x30u, 0xc0u, 0xffu, 0x33u, 0xffu, 0xffu, 0x00u, 0xf0u, 0xffu, 0xffu, 0xf0u, 0x00u, 0x00u, 0x00u, 
         0xa8u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaeu, 0xffu, 0x3fu, 0x00u, 
         0xaau, 0xeau, 0xffu, 0x3fu, 0xffu, 0xffu, 0x0fu, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
@@ -119,8 +119,8 @@
         0xaau, 0xaau, 0x0au, 0x00u, 0xffu, 0xffu, 0x0fu, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xeau, 0xffu, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xfeu, 0xffu, 0x3fu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xc3u, 
-        0xffu, 0xffu, 0x0fu, 0x00u, 0xffu, 0xffu, 0x0fu, 0x00u, 0x00u, 0x80u, 0x00u, 0x00u, 0xffu, 0xffu, 0xffu, 0x0fu, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0xffu, 0xffu, 0x0fu, 0x00u, 0xffu, 0xffu, 0x0fu, 0x00u, 0x00u, 0x80u, 0x00u, 0x00u, 0xffu, 0xffu, 0xffu, 0xcfu, 
+        0x03u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0xffu, 0xabu, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xffu, 0xffu, 0xffu, 
         0xffu, 0xabu, 0xaau, 0x00u, 0xffu, 0xffu, 0x0fu, 0x00u, 0x00u, 0x00u, 0xc0u, 0xffu, 0xffu, 0x00u, 0x00u, 0x00u, 
         0xbfu, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xfeu, 0xffu, 0xffu, 0xafu, 0xffu, 0xffu, 0xafu, 0xaau, 
@@ -211,7 +211,7 @@
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0xaau, 
         0x00u, 0xa8u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xa8u, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
-        0xaau, 0xaau, 0xaau, 0x2au, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0x00u, 
+        0xaau, 0xaau, 0xaau, 0x2au, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
@@ -323,7 +323,7 @@
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
-        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x0au, 0x00u, 0x00u, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
@@ -652,7 +652,7 @@
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
-        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x02u, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
@@ -684,8 +684,8 @@
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x80u, 0xaau, 0xaau, 0xa0u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0x82u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
-        0xa0u, 0x2au, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x80u, 0xaau, 0xaau, 
-        0xbau, 0xbau, 0xeau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xeau, 0xffu, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0xa0u, 0xaau, 0x2au, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xa8u, 0xaau, 0xaau, 
+        0xbau, 0xbau, 0xeau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xeau, 0xffu, 0x00u, 0x03u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x00u, 0x00u, 0x00u, 
         0xafu, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xffu, 0xffu, 0xffu, 
         0xffu, 0x0fu, 0x00u, 0x00u, 0xffu, 0xffu, 0x0fu, 0x00u, 0xffu, 0xffu, 0xffu, 0xffu, 0xafu, 0xaau, 0x80u, 0xe8u, 
@@ -698,7 +698,7 @@
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xfbu, 0xebu, 0xabu, 0xfau, 
         0x2eu, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x80u, 0x0au, 0xaau, 0xaau, 0xeau, 0xffu, 0xa0u, 0x3eu, 0x00u, 0x00u, 
         0xa8u, 0x2au, 0xa8u, 0x2au, 0xa8u, 0x2au, 0x00u, 0x00u, 0xaau, 0x2au, 0xaau, 0x2au, 0xaau, 0xaau, 0xaau, 0xaau, 
-        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0xaau, 0xaau, 0xaau, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0xaau, 0xaau, 0xaau, 0x0au, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xeau, 0xffu, 0x3fu, 0x0fu, 0xffu, 0xffu, 0x0fu, 0x00u, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
@@ -1098,20 +1098,20 @@
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xcau, 0x03u, 0x0au, 0x00u, 0x00u, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x02u, 0x00u, 0x80u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xfau, 0xffu, 0xffu, 0x03u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0x02u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0x00u, 0x00u, 
         0xbfu, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xffu, 0xffu, 
         0xffu, 0x3fu, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xf0u, 0xffu, 0xffu, 0x00u, 0x00u, 0x00u, 0xc0u, 
         0xbfu, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xffu, 0xffu, 0x3fu, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x02u, 0x00u, 0xffu, 0xffu, 0x0fu, 0x00u, 
         0xbfu, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xeau, 0xffu, 0xffu, 0xffu, 0xf3u, 0xffu, 0xffu, 
-        0x00u, 0x3eu, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xeau, 0x20u, 0x00u, 0x00u, 
+        0x00u, 0xbeu, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xeau, 0x20u, 0x00u, 0x00u, 
         0xbfu, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xeau, 0xffu, 0xffu, 0xffu, 
-        0xabu, 0x02u, 0xfcu, 0x03u, 0xffu, 0xffu, 0x2fu, 0x02u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0xabu, 0x02u, 0xfcu, 0xf3u, 0xffu, 0xffu, 0x2fu, 0x02u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0xaau, 0xaau, 0xaau, 0xaau, 0x8au, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xffu, 0xffu, 0xffu, 0x00u, 0x30u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0xaau, 0x2au, 0xa2u, 0x8au, 0xaau, 0xaau, 0xaau, 0x8au, 0xaau, 0xaau, 0x02u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 
@@ -1121,7 +1121,7 @@
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xfeu, 0xffu, 0xffu, 
-        0xffu, 0xbfu, 0x2au, 0x00u, 0xffu, 0xffu, 0x0fu, 0xb0u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0xffu, 0xbfu, 0x2au, 0x00u, 0xffu, 0xffu, 0x0fu, 0xb0u, 0x0au, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xffu, 0xffu, 0xffu, 0xffu, 
         0xffu, 0x8au, 0x00u, 0x00u, 0xffu, 0xffu, 0x0fu, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
@@ -1140,8 +1140,8 @@
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xffu, 0xffu, 0x0fu, 0x00u, 0x00u, 0x00u, 0x00u, 0x80u, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0xaau, 0x2au, 0x08u, 0xaau, 0xaau, 0x28u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xffu, 0xcfu, 0xc3u, 0xbfu, 
+        0xfbu, 0x00u, 0x00u, 0x00u, 0xffu, 0xffu, 0x0fu, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xa0u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xfeu, 0xffu, 0xf0u, 0xffu, 0x8bu, 0x03u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0xfeu, 0xffu, 0xbfu, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xeau, 0xffu, 0xefu, 0x3fu, 
@@ -1166,7 +1166,7 @@
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xeau, 0x3fu, 0x00u, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x02u, 0x00u, 0x00u, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
@@ -1487,7 +1487,7 @@
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0x2au, 0xc0u, 0xfeu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 
         0xffu, 0xffu, 0x00u, 0xc0u, 0xbfu, 0xaau, 0xaau, 0xaau, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x8au, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x8au, 0x03u, 0x00u, 0x00u, 0x0fu, 0x00u, 0x00u, 0x00u, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
@@ -1595,16 +1595,16 @@
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
-        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0x00u, 0x00u, 0x00u, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x0au, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0xaau, 0xaau, 0x02u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
@@ -2047,7 +2047,7 @@
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
-        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xffu, 0xffu, 0x0fu, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
@@ -2734,7 +2734,7 @@
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
-        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x0au, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
         0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
@@ -3093,6 +3093,1033 @@
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
     };
 
+    static std::uint8_t plane_3[0x10000 / 4] = {
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 
+        0xaau, 0xaau, 0x2au, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+        0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
+    };
+
     static std::uint8_t plane_14[0x10000 / 4] = {
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
         0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 
@@ -4121,13 +5148,13 @@
     };
 
     static std::uint8_t *planes[17] = {
-        plane_0, plane_1, plane_2, plane_X, plane_X, plane_X, plane_X, plane_X, 
+        plane_0, plane_1, plane_2, plane_3, plane_X, plane_X, plane_X, plane_X, 
         plane_X, plane_X, plane_X, plane_X, plane_X, plane_X, plane_14, plane_X, 
         plane_X, 
     };
 
     std::uint16_t plane_idx = std::uint16_t(codepoint / 0x10000);
-    if (__builtin_expect(plane_idx > 16, false)) return 1;
+    if (JSON5EncoderCpp_expect(plane_idx > 16, false)) return 1;
     std::uint16_t datum_idx = std::uint16_t(codepoint & 0xffff);
     const std::uint8_t *plane = planes[plane_idx];
     return (plane[datum_idx / 4] >> (2 * (datum_idx % 4))) % 4;
diff --git a/src/native.hpp b/src/native.hpp
index 591a559..eb9597b 100644
--- a/src/native.hpp
+++ b/src/native.hpp
@@ -1,4 +1,5 @@
-#pragma once
+#ifndef JSON5EncoderCpp_native
+#define JSON5EncoderCpp_native
 
 #include <array>
 #include <cstdint>
@@ -49,26 +50,30 @@
     inline operator bool () const { return true; }
 };
 
-bool obj_has_iter(const PyObject *obj) {
-    auto *i = Py_TYPE(obj)->tp_iter;
-    return (i != nullptr) && (i != &_PyObject_NextNotImplemented);
+static inline bool obj_has_iter(const PyObject *obj) {
+    const auto *cls = Py_TYPE(obj);
+    return cls->tp_iter != nullptr;
 }
 
 constexpr char HEX[] = "0123456789abcdef";
 
 struct EscapeDct {
-    using Item = std::array<char, 8>;  // length, unto 6 characters, terminator (actually not needed)
+    using Item = std::array<char, 8>;  // length, upto 6 characters, terminator (actually not needed)
     static constexpr std::size_t length = 0x100;
     using Items = Item[length];
 
     static const Items items;
-    static const unsigned __int128 is_escaped_array;
+    static const std::uint64_t is_escaped_lo;
+    static const std::uint64_t is_escaped_hi;
 
     static inline bool is_escaped(std::uint32_t c) {
-        return (c >= 0x0080) || (is_escaped_array & (
-            static_cast<unsigned __int128>(1) <<
-            static_cast<std::uint8_t>(c)
-        ));
+        if (c < 0x40) {
+            return (is_escaped_lo & (static_cast<std::uint64_t>(1) << c)) != 0;
+        } else if (c < 0x80) {
+            return (is_escaped_hi & (static_cast<std::uint64_t>(1) << (c - 0x40))) != 0;
+        } else {
+            return true;
+        }
     }
 
     template <class S>
@@ -81,6 +86,88 @@
     }
 };
 
+static inline bool unicode_is_lo_surrogate(std::uint32_t ch) {
+    return 0xDC00u <= ch && ch <= 0xDFFFu;
+}
+
+static inline bool unicode_is_hi_surrogate(std::uint32_t ch) {
+    return 0xD800u <= ch && ch <= 0xDBFFu;
+}
+
+static inline std::uint32_t unicode_join_surrogates(std::uint32_t hi, std::uint32_t lo) {
+    return (((hi & 0x03FFu) << 10) | (lo & 0x03FFu)) + 0x10000u;
+}
+
+template <typename T>
+struct has_ob_shash {
+    template <typename C> static std::uint8_t test(decltype(&C::ob_shash)) ;
+    template <typename C> static std::uint64_t test(...);
+    enum { value = sizeof(test<T>(0)) == sizeof(std::uint8_t) };
+};
+
+template <typename T>
+struct has_hash {
+    template <typename C> static std::uint8_t test(decltype(&C::hash)) ;
+    template <typename C> static std::uint64_t test(...);
+    enum { value = sizeof(test<T>(0)) == sizeof(std::uint8_t) };
+};
+
+template<class T, bool ob_shash = has_ob_shash<T>::value, bool hash = has_hash<T>::value>
+struct ResetHash_;
+
+template<class T>
+struct ResetHash_ <T, true, false> {
+    static inline void reset(T *obj) {
+        obj->ob_shash = -1;  // CPython: str
+    }
+};
+
+template<class T>
+struct ResetHash_ <T, false, true> {
+    static inline void reset(T *obj) {
+        obj->hash = -1;  // CPython: bytes
+    }
+};
+
+template<class T>
+struct ResetHash_ <T, false, false> {
+    static inline void reset(T *obj) {
+        (void) 0;  // PyPy
+    }
+};
+
+template <class T>
+static inline void reset_hash(T *obj) {
+    ResetHash_<T>::reset(obj);
+}
+
+static int iter_next(PyObject *iterator, PyObject **value) {
+    Py_XDECREF(*value);
+    PyObject *v = PyIter_Next(iterator);
+    *value = v;
+    if (v) {
+        return true;
+    } else if (!PyErr_Occurred()) {
+        return 0;
+    } else {
+        return -1;
+    }
+}
+
+static inline AlwaysTrue exception_thrown() {
+    return true;
+}
+
+// https://stackoverflow.com/a/65258501/416224
+#ifdef __GNUC__ // GCC 4.8+, Clang, Intel and other compilers compatible with GCC (-std=c++0x or above)
+    [[noreturn]] inline __attribute__((always_inline)) void unreachable() { __builtin_unreachable(); }
+#elif defined(_MSC_VER) // MSVC
+    [[noreturn]] __forceinline void unreachable() { __assume(false); }
+#else // ???
+    inline void unreachable() {}
+#endif
+
+
 #include "./_escape_dct.hpp"
 
 const EscapeDct ESCAPE_DCT;
@@ -95,4 +182,12 @@
 ;
 static constexpr std::size_t LONGDESCRIPTION_LENGTH = sizeof(LONGDESCRIPTION) - 1;
 
+#ifdef __GNUC__
+#   define JSON5EncoderCpp_expect(cond, likely) __builtin_expect(!!(cond), !!(likely))
+#else
+#   define JSON5EncoderCpp_expect(cond, likely) !!(cond)
+#endif
+
 }
+
+#endif
diff --git a/transcode-to-json.py b/transcode-to-json.py
index 2515578..110f10a 100755
--- a/transcode-to-json.py
+++ b/transcode-to-json.py
@@ -2,6 +2,7 @@
 
 from argparse import ArgumentParser
 from collections.abc import Mapping, Sequence
+from codecs import open as codecs_open
 from itertools import zip_longest
 from json import loads
 from logging import basicConfig, DEBUG, getLogger
@@ -57,7 +58,7 @@
     args = argparser.parse_args()
     try:
         # open() does not work with Paths in Python 3.5
-        with open(str(args.input.resolve()), 'rt') as f:
+        with codecs_open(str(args.input.resolve()), 'r', 'UTF-8') as f:
             data = f.read()
     except Exception:
         logger.error('Could not even read file: %s', args.input, exc_info=True)
@@ -87,7 +88,7 @@
     if args.output is not None:
         try:
             # open() does not work with Paths in Python 3.5
-            with open(str(args.output.resolve()), 'wt') as f:
+            with codecs_open(str(args.output.resolve()), 'w', 'UTF-8') as f:
                 f.write(data)
         except Exception:
             logger.error('Could open output file: %s', args.output, exc_info=True)