Files
crosspoint-reader-mod/lib/EpdFont/builtinFonts/bookerly_16_italic.h

3050 lines
249 KiB
C
Raw Normal View History

/**
* generated by fontconvert.py
* name: bookerly_16_italic
* size: 16
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
* mode: 2-bit compressed: true
fix: force auto-hinting for Bookerly to fix inconsistent stem widths (#1098) ## Summary Bookerly's native TrueType hinting is effectively a no-op at the sizes used here, causing FreeType to place stems at inconsistent sub-pixel positions. This results in the 'k' stem (8-bit fringe: 0x38=56) falling just below the 2-bit quantization threshold while 'l' and 'h' stems (fringes: 0x4C=76, 0x40=64) land above it --- making 'k' visibly narrower (2.00px vs 2.33px effective width). FreeType's auto-hinter snaps all stems to consistent grid positions, normalizing effective stem width to 2.67px across all glyphs. Adds --force-autohint flag to fontconvert.py and applies it to Bookerly only. NotoSans, OpenDyslexic, and Ubuntu fonts are unaffected. Here is an example of before/after. Take notice of the vertical stems on characters like `l`, `k`, `n`, `i`, etc. The font is Bookerly 12pt regular: **BEFORE**: ![before](https://github.com/user-attachments/assets/65b2acab-ad95-489e-885e-e3a0163cc252) **AFTER**: ![after](https://github.com/user-attachments/assets/d09a8b5d-40af-4a7d-b622-e1b2cabcce85) Claude generated this script to quantitatively determine that this change makes the vertical stems on a variety of characters more consistent for Bookerly _only_. <details> <summary>Python script</summary> ```python #!/usr/bin/env python3 """Compare stem consistency across all font families with and without auto-hinting. Run from repo root: python3 compare_all_fonts.py """ import freetype DPI = 150 CHARS = ["k", "l", "h", "i", "b", "d"] SIZES = [12, 14, 16, 18] FONTS = { "Bookerly": "lib/EpdFont/builtinFonts/source/Bookerly/Bookerly-Regular.ttf", "NotoSans": "lib/EpdFont/builtinFonts/source/NotoSans/NotoSans-Regular.ttf", "OpenDyslexic": "lib/EpdFont/builtinFonts/source/OpenDyslexic/OpenDyslexic-Regular.otf", "Ubuntu": "lib/EpdFont/builtinFonts/source/Ubuntu/Ubuntu-Regular.ttf", } MODES = { "default": freetype.FT_LOAD_RENDER, "autohint": freetype.FT_LOAD_RENDER | freetype.FT_LOAD_FORCE_AUTOHINT, } def q4to2(v): if v >= 12: return 3 elif v >= 8: return 2 elif v >= 4: return 1 else: return 0 def get_stem_eff(face, char, flags): gi = face.get_char_index(ord(char)) if gi == 0: return None face.load_glyph(gi, flags) bm = face.glyph.bitmap w, h = bm.width, bm.rows if w == 0 or h == 0: return None p2 = [] for y in range(h): row = [] for x in range(w): row.append(q4to2(bm.buffer[y * bm.pitch + x] >> 4)) p2.append(row) # Measure leftmost stem in stable middle rows mid_start, mid_end = h // 4, h - h // 4 widths = [] for y in range(mid_start, mid_end): first = next((x for x in range(w) if p2[y][x] > 0), -1) if first < 0: continue last = first for x in range(first, w): if p2[y][x] > 0: last = x else: break eff = sum(p2[y][x] for x in range(first, last + 1)) / 3.0 widths.append(eff) return round(sum(widths) / len(widths), 2) if widths else None def main(): for font_name, font_path in FONTS.items(): try: freetype.Face(font_path) except Exception: print(f"\n {font_name}: SKIPPED (file not found)") continue print(f"\n{'=' * 80}") print(f" {font_name}") print(f"{'=' * 80}") for size in SIZES: print(f"\n {size}pt:") print(f" {'':6s}", end="") for c in CHARS: print(f" '{c}' ", end="") print(" | spread") for mode_name, flags in MODES.items(): face = freetype.Face(font_path) face.set_char_size(size << 6, size << 6, DPI, DPI) vals = [] print(f" {mode_name:6s}", end="") for c in CHARS: v = get_stem_eff(face, c, flags) vals.append(v) print(f" {v:5.2f}" if v else " N/A", end="") valid = [v for v in vals if v is not None] spread = max(valid) - min(valid) if len(valid) >= 2 else 0 marker = " <-- inconsistent" if spread > 0.5 else "" print(f" | {spread:.2f}{marker}") if __name__ == "__main__": main() ``` </details> Here are the results. The table compares how the font-generation `autohint` flag affects the range of widths of various characters. Lower `spread` mean that glyph stroke widths should appear more consistent. ``` Spread = max stem width - min stem width across glyphs (lower = more consistent): ┌──────────────┬──────┬─────────┬──────────┬──────────┐ │ Font │ Size │ Default │ Autohint │ Winner │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ Bookerly │ 12pt │ 1.49 │ 1.12 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 1.39 │ 1.13 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 1.38 │ 1.16 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.90 │ 1.58 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ NotoSans │ 12pt │ 1.16 │ 0.94 │ mixed │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 0.83 │ 1.14 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 1.41 │ 1.51 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.74 │ 1.63 │ mixed │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ OpenDyslexic │ 12pt │ 2.22 │ 1.44 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 2.57 │ 3.29 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 3.13 │ 2.60 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 3.21 │ 3.23 │ ~tied │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ Ubuntu │ 12pt │ 1.25 │ 1.31 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 1.41 │ 1.64 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 2.21 │ 1.71 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.80 │ 1.71 │ autohint │ └──────────────┴──────┴─────────┴──────────┴──────────┘ ``` --- ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? I used AI to make sure I'm not doing something stupid, since I'm not a typography expert. I made the changes though.
2026-02-24 06:13:08 +11:00
* Command used: fontconvert.py bookerly_16_italic 16 ../builtinFonts/source/Bookerly/Bookerly-Italic.ttf --2bit --compress --force-autohint
*/
#pragma once
#include "EpdFontData.h"
fix: force auto-hinting for Bookerly to fix inconsistent stem widths (#1098) ## Summary Bookerly's native TrueType hinting is effectively a no-op at the sizes used here, causing FreeType to place stems at inconsistent sub-pixel positions. This results in the 'k' stem (8-bit fringe: 0x38=56) falling just below the 2-bit quantization threshold while 'l' and 'h' stems (fringes: 0x4C=76, 0x40=64) land above it --- making 'k' visibly narrower (2.00px vs 2.33px effective width). FreeType's auto-hinter snaps all stems to consistent grid positions, normalizing effective stem width to 2.67px across all glyphs. Adds --force-autohint flag to fontconvert.py and applies it to Bookerly only. NotoSans, OpenDyslexic, and Ubuntu fonts are unaffected. Here is an example of before/after. Take notice of the vertical stems on characters like `l`, `k`, `n`, `i`, etc. The font is Bookerly 12pt regular: **BEFORE**: ![before](https://github.com/user-attachments/assets/65b2acab-ad95-489e-885e-e3a0163cc252) **AFTER**: ![after](https://github.com/user-attachments/assets/d09a8b5d-40af-4a7d-b622-e1b2cabcce85) Claude generated this script to quantitatively determine that this change makes the vertical stems on a variety of characters more consistent for Bookerly _only_. <details> <summary>Python script</summary> ```python #!/usr/bin/env python3 """Compare stem consistency across all font families with and without auto-hinting. Run from repo root: python3 compare_all_fonts.py """ import freetype DPI = 150 CHARS = ["k", "l", "h", "i", "b", "d"] SIZES = [12, 14, 16, 18] FONTS = { "Bookerly": "lib/EpdFont/builtinFonts/source/Bookerly/Bookerly-Regular.ttf", "NotoSans": "lib/EpdFont/builtinFonts/source/NotoSans/NotoSans-Regular.ttf", "OpenDyslexic": "lib/EpdFont/builtinFonts/source/OpenDyslexic/OpenDyslexic-Regular.otf", "Ubuntu": "lib/EpdFont/builtinFonts/source/Ubuntu/Ubuntu-Regular.ttf", } MODES = { "default": freetype.FT_LOAD_RENDER, "autohint": freetype.FT_LOAD_RENDER | freetype.FT_LOAD_FORCE_AUTOHINT, } def q4to2(v): if v >= 12: return 3 elif v >= 8: return 2 elif v >= 4: return 1 else: return 0 def get_stem_eff(face, char, flags): gi = face.get_char_index(ord(char)) if gi == 0: return None face.load_glyph(gi, flags) bm = face.glyph.bitmap w, h = bm.width, bm.rows if w == 0 or h == 0: return None p2 = [] for y in range(h): row = [] for x in range(w): row.append(q4to2(bm.buffer[y * bm.pitch + x] >> 4)) p2.append(row) # Measure leftmost stem in stable middle rows mid_start, mid_end = h // 4, h - h // 4 widths = [] for y in range(mid_start, mid_end): first = next((x for x in range(w) if p2[y][x] > 0), -1) if first < 0: continue last = first for x in range(first, w): if p2[y][x] > 0: last = x else: break eff = sum(p2[y][x] for x in range(first, last + 1)) / 3.0 widths.append(eff) return round(sum(widths) / len(widths), 2) if widths else None def main(): for font_name, font_path in FONTS.items(): try: freetype.Face(font_path) except Exception: print(f"\n {font_name}: SKIPPED (file not found)") continue print(f"\n{'=' * 80}") print(f" {font_name}") print(f"{'=' * 80}") for size in SIZES: print(f"\n {size}pt:") print(f" {'':6s}", end="") for c in CHARS: print(f" '{c}' ", end="") print(" | spread") for mode_name, flags in MODES.items(): face = freetype.Face(font_path) face.set_char_size(size << 6, size << 6, DPI, DPI) vals = [] print(f" {mode_name:6s}", end="") for c in CHARS: v = get_stem_eff(face, c, flags) vals.append(v) print(f" {v:5.2f}" if v else " N/A", end="") valid = [v for v in vals if v is not None] spread = max(valid) - min(valid) if len(valid) >= 2 else 0 marker = " <-- inconsistent" if spread > 0.5 else "" print(f" | {spread:.2f}{marker}") if __name__ == "__main__": main() ``` </details> Here are the results. The table compares how the font-generation `autohint` flag affects the range of widths of various characters. Lower `spread` mean that glyph stroke widths should appear more consistent. ``` Spread = max stem width - min stem width across glyphs (lower = more consistent): ┌──────────────┬──────┬─────────┬──────────┬──────────┐ │ Font │ Size │ Default │ Autohint │ Winner │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ Bookerly │ 12pt │ 1.49 │ 1.12 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 1.39 │ 1.13 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 1.38 │ 1.16 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.90 │ 1.58 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ NotoSans │ 12pt │ 1.16 │ 0.94 │ mixed │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 0.83 │ 1.14 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 1.41 │ 1.51 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.74 │ 1.63 │ mixed │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ OpenDyslexic │ 12pt │ 2.22 │ 1.44 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 2.57 │ 3.29 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 3.13 │ 2.60 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 3.21 │ 3.23 │ ~tied │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ Ubuntu │ 12pt │ 1.25 │ 1.31 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 1.41 │ 1.64 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 2.21 │ 1.71 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.80 │ 1.71 │ autohint │ └──────────────┴──────┴─────────┴──────────┴──────────┘ ``` --- ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? I used AI to make sure I'm not doing something stupid, since I'm not a typography expert. I made the changes though.
2026-02-24 06:13:08 +11:00
static const uint8_t bookerly_16_italicBitmaps[35086] = {
0x95, 0x5A, 0x3D, 0x8C, 0xDD, 0x56, 0x7A, 0xBD, 0x24, 0x2D, 0xD3, 0x36, 0x81, 0xA5, 0x8B, 0x18,
0xD9, 0x44, 0x80, 0x99, 0xC2, 0x45, 0x1A, 0x8B, 0x4D, 0x0A, 0x23, 0x98, 0x19, 0xD2, 0xBB, 0x85,
0x0B, 0x17, 0x11, 0x12, 0x8F, 0x1B, 0x15, 0xDA, 0x62, 0x8B, 0x20, 0x8D, 0x52, 0x1A, 0xC8, 0xCC,
0x90, 0x5E, 0x17, 0x29, 0x5C, 0xAC, 0x80, 0x24, 0x55, 0x9A, 0x14, 0x41, 0x10, 0x58, 0xC5, 0x6C,
0xB1, 0x85, 0xB1, 0x78, 0xEF, 0x91, 0x91, 0x80, 0xB8, 0x30, 0x10, 0xD3, 0x59, 0x78, 0x17, 0x88,
0x0B, 0xD3, 0xBB, 0xF2, 0x6E, 0x20, 0x21, 0x11, 0xD7, 0xA1, 0x2D, 0x6A, 0x44, 0xF2, 0xE6, 0x9C,
0x73, 0xF9, 0x46, 0xA3, 0x9F, 0xAC, 0x91, 0x11, 0xC4, 0xC7, 0x47, 0xDE, 0x9F, 0xEF, 0xFF, 0x3B,
0xDF, 0x77, 0x9F, 0x49, 0xF3, 0xA4, 0x8E, 0xDB, 0xA0, 0xF3, 0x46, 0xB3, 0x31, 0x59, 0x1E, 0xD7,
0x41, 0xEB, 0xF5, 0xE6, 0xC0, 0xA4, 0x26, 0x2E, 0x83, 0xC6, 0x74, 0x66, 0xC7, 0x24, 0x26, 0x2C,
0xBD, 0xC6, 0x5C, 0x34, 0xFC, 0xF3, 0x5B, 0x7F, 0x34, 0x16, 0xAF, 0x4D, 0x94, 0xFF, 0x68, 0x15,
0xDF, 0xE8, 0xF6, 0xE2, 0xB7, 0xFB, 0xC3, 0xE8, 0x5F, 0xBA, 0x34, 0xAA, 0x87, 0x0B, 0x41, 0xD3,
0xC7, 0x41, 0xFD, 0x8A, 0x46, 0x9A, 0xEF, 0x79, 0xA5, 0xC1, 0xF4, 0xCE, 0x60, 0x85, 0x03, 0x63,
0xC2, 0xFA, 0x02, 0xA7, 0xC7, 0xB9, 0x31, 0x7D, 0x50, 0x9B, 0xC2, 0x5A, 0xDB, 0xA5, 0xB8, 0x8C,
0x26, 0x2A, 0xF7, 0x8C, 0x09, 0x1A, 0xBE, 0xE9, 0xF0, 0xC6, 0x1C, 0x78, 0x98, 0x73, 0xC1, 0xBC,
0x6F, 0xCE, 0x5D, 0xFE, 0xBB, 0xA3, 0xFD, 0x00, 0x63, 0xEC, 0xAB, 0xBC, 0xD4, 0xE6, 0xC0, 0x6F,
0xF9, 0xA6, 0x37, 0x26, 0xCE, 0x77, 0x30, 0xA7, 0x8E, 0x8D, 0xF1, 0xBA, 0x10, 0x73, 0xBE, 0xEF,
0x5D, 0xD5, 0xA6, 0x3F, 0x32, 0x7C, 0x6C, 0xB8, 0x27, 0xFE, 0xDE, 0xC7, 0xFF, 0xDF, 0x6D, 0x40,
0xAB, 0x1D, 0x8C, 0xC7, 0xAD, 0xE2, 0x8F, 0x6F, 0x0F, 0x66, 0x8A, 0x5E, 0xEB, 0x82, 0x6E, 0x27,
0xAE, 0x93, 0xB2, 0xBB, 0x60, 0x8A, 0x10, 0x64, 0xCE, 0x2F, 0x63, 0xDA, 0x8C, 0x6D, 0x03, 0xEC,
0xE2, 0x2E, 0xBE, 0x6D, 0x78, 0x87, 0x4B, 0x5C, 0xE1, 0xEB, 0x5B, 0x45, 0xB9, 0xE3, 0x37, 0x95,
0xDF, 0xC5, 0xFE, 0x18, 0xD7, 0x3B, 0x51, 0x97, 0xBD, 0xDD, 0x66, 0x79, 0xF5, 0xEE, 0x77, 0x20,
0x8E, 0x19, 0x03, 0x2A, 0xAC, 0x6E, 0x92, 0xD9, 0x90, 0x3E, 0xFC, 0xF5, 0x8F, 0xD1, 0x01, 0x69,
0x3E, 0xE1, 0xEF, 0xDB, 0xC6, 0xA4, 0xE0, 0x29, 0x03, 0x79, 0x83, 0x31, 0xA3, 0x09, 0x4F, 0x26,
0x03, 0x05, 0xC4, 0xF5, 0x9E, 0x09, 0x5A, 0x88, 0x39, 0xC3, 0xAD, 0xD9, 0xC3, 0x07, 0x24, 0x7E,
0x80, 0x9B, 0x43, 0x63, 0x56, 0xF8, 0x18, 0xF8, 0x71, 0xE8, 0x77, 0xFC, 0x58, 0x85, 0x75, 0xDA,
0xAE, 0xBC, 0x3E, 0xCE, 0xED, 0x78, 0x14, 0x76, 0x17, 0x82, 0x93, 0x29, 0xB3, 0xF5, 0x41, 0x5C,
0x67, 0xF1, 0x6C, 0xFA, 0x24, 0x4F, 0xBD, 0x8B, 0x41, 0xAB, 0x05, 0xA2, 0x7A, 0x97, 0x1F, 0x89,
0xF4, 0x8B, 0x55, 0xB8, 0x20, 0xF6, 0x3C, 0xC0, 0x3F, 0x2C, 0x75, 0xC0, 0xED, 0x1B, 0xAC, 0xCA,
0xED, 0x4D, 0x76, 0xDC, 0x62, 0x57, 0x93, 0xD8, 0x92, 0x7B, 0x86, 0xF7, 0x8C, 0xF9, 0xC3, 0x47,
0x48, 0x7F, 0x43, 0xD7, 0x74, 0xE4, 0x35, 0xB0, 0xFA, 0x48, 0xDF, 0x01, 0x45, 0xC6, 0x1B, 0xA8,
0x11, 0x2C, 0x22, 0xDE, 0x45, 0x2C, 0x78, 0x8A, 0xF8, 0x2C, 0x6A, 0x56, 0x1A, 0x77, 0xB9, 0x36,
0x1E, 0x64, 0xD6, 0x93, 0x98, 0x10, 0x42, 0x8B, 0x46, 0x53, 0xB5, 0xE6, 0xBC, 0x2D, 0xE3, 0x3B,
0x75, 0x62, 0x5B, 0x33, 0x66, 0xC6, 0x76, 0xA0, 0x66, 0x13, 0xFD, 0x9C, 0xEC, 0x8F, 0xCF, 0x5C,
0x80, 0x9E, 0xFD, 0x01, 0x62, 0x8D, 0xEA, 0xA0, 0xC7, 0xF2, 0xA9, 0x09, 0xFB, 0x3D, 0x72, 0x1F,
0xDD, 0xED, 0x24, 0x30, 0x0B, 0x22, 0xF0, 0x81, 0xBD, 0xA2, 0xF9, 0x9A, 0x9D, 0xA8, 0x73, 0x7B,
0xDB, 0xE6, 0x50, 0xE3, 0xCD, 0xD0, 0xFE, 0x27, 0x37, 0xF5, 0x6C, 0x27, 0x8A, 0x5F, 0x30, 0xD1,
0xEB, 0x37, 0xBA, 0xE1, 0x30, 0x89, 0xAE, 0xB7, 0xFD, 0xCE, 0x96, 0x1B, 0x92, 0xBC, 0x01, 0xD1,
0x0D, 0x25, 0x42, 0x01, 0x6C, 0x3F, 0xD6, 0x86, 0x9A, 0xA0, 0xC0, 0xC8, 0x08, 0xB9, 0xD8, 0x23,
0x3B, 0xEE, 0x36, 0x73, 0x4F, 0x39, 0x20, 0x81, 0x19, 0x1D, 0x91, 0x79, 0xF7, 0x35, 0x5E, 0xDE,
0xAE, 0x96, 0x47, 0xD8, 0x3B, 0x6C, 0xDC, 0x63, 0x8E, 0x4C, 0x73, 0xB7, 0x24, 0xD6, 0x32, 0x7F,
0xB0, 0x90, 0xF0, 0xA2, 0xD1, 0x0A, 0x94, 0x37, 0xA7, 0x91, 0x00, 0xEE, 0xC3, 0xA9, 0x11, 0xA7,
0x96, 0xA7, 0x2B, 0x42, 0x45, 0x5A, 0x2D, 0xC9, 0x35, 0x5A, 0xD4, 0x34, 0x6E, 0xC1, 0x71, 0xA1,
0x26, 0xD7, 0x6D, 0x28, 0xDB, 0xD2, 0x00, 0xEE, 0xBC, 0x72, 0xE3, 0xC0, 0x67, 0xD4, 0x9E, 0x65,
0xD7, 0xCB, 0xB9, 0xFF, 0xCB, 0xE6, 0xEA, 0x18, 0xDD, 0x68, 0xB2, 0x8F, 0x4C, 0xF2, 0xD5, 0x8F,
0x43, 0xFB, 0xB9, 0xBD, 0x54, 0xFC, 0x9B, 0x39, 0xD8, 0x31, 0xF9, 0x20, 0xE3, 0xE5, 0xFE, 0x7B,
0x0F, 0xF8, 0x75, 0x5F, 0xCF, 0xED, 0x4F, 0xFB, 0xF0, 0xE2, 0xA9, 0xB2, 0xB6, 0x7F, 0xFC, 0xAD,
0xBE, 0x9A, 0x95, 0x37, 0x99, 0xD9, 0x4C, 0x66, 0xF4, 0x86, 0xA0, 0x83, 0x59, 0x9A, 0xB7, 0xCC,
0x0B, 0xFB, 0x7F, 0x6A, 0xED, 0x87, 0xD6, 0x9A, 0x24, 0xB9, 0x7D, 0x77, 0x3C, 0x94, 0x7A, 0xE8,
0xC0, 0x9C, 0x26, 0xDE, 0xB9, 0x86, 0xB8, 0x25, 0xE9, 0xA2, 0x5D, 0x62, 0xD1, 0x63, 0xB2, 0xA9,
0x85, 0x1F, 0x3C, 0xA6, 0x66, 0xC9, 0xB2, 0x1E, 0xCB, 0xD2, 0xF6, 0x1E, 0x7A, 0x3C, 0x2E, 0x1A,
0xD6, 0x63, 0xBA, 0x8D, 0xDB, 0x49, 0x8F, 0x17, 0xBF, 0x4C, 0xEF, 0xD1, 0x66, 0x60, 0x8B, 0xF6,
0xDA, 0x6C, 0x10, 0x12, 0x47, 0x50, 0x1C, 0xF6, 0x90, 0x53, 0x0C, 0xE7, 0x31, 0xD9, 0x3B, 0xA0,
0x63, 0xC6, 0x86, 0xC1, 0x40, 0xB1, 0xFD, 0x12, 0xDF, 0x32, 0x18, 0xB1, 0x99, 0x2A, 0xAC, 0xF0,
0x25, 0x76, 0x4D, 0x3F, 0x02, 0x69, 0x53, 0x56, 0x9A, 0xB0, 0x9B, 0xE9, 0x08, 0xF4, 0xE6, 0x98,
0x93, 0x53, 0xD8, 0xB9, 0x29, 0xCA, 0xA8, 0x33, 0xF6, 0x16, 0x8C, 0xD4, 0xC2, 0xBA, 0x4D, 0xD1,
0x2B, 0x96, 0xE6, 0x26, 0x1C, 0xCD, 0x15, 0x18, 0x3D, 0x64, 0xF7, 0xFB, 0x95, 0xA3, 0xB7, 0x70,
0xBA, 0x99, 0xC4, 0x9D, 0x37, 0xCA, 0x5A, 0x60, 0xF8, 0x88, 0xCD, 0x67, 0x5F, 0xCF, 0xA7, 0xAA,
0x4B, 0x6A, 0x13, 0x4E, 0x79, 0x62, 0x2D, 0xE2, 0x24, 0xDE, 0x9F, 0x77, 0x96, 0x4F, 0x2E, 0xAC,
0x89, 0xBB, 0x60, 0xC2, 0xE6, 0x01, 0xC4, 0x0E, 0x42, 0xC2, 0xDC, 0x80, 0x3C, 0x03, 0x65, 0x60,
0x32, 0x45, 0x50, 0x41, 0x32, 0x21, 0x05, 0x56, 0x30, 0xE6, 0x8D, 0xCB, 0x4D, 0xB8, 0xBD, 0x89,
0x78, 0x53, 0x61, 0x46, 0xDC, 0xD3, 0x79, 0x28, 0xCA, 0x96, 0x37, 0xD6, 0xCE, 0x11, 0x83, 0x37,
0xF6, 0x84, 0x7F, 0x99, 0x2B, 0x90, 0x5B, 0x86, 0xE0, 0x95, 0x9C, 0x54, 0x0D, 0x3C, 0xD0, 0x42,
0x21, 0x61, 0x87, 0x98, 0x5A, 0x98, 0xE7, 0xB1, 0xA9, 0x11, 0x0F, 0xA6, 0xA0, 0xB9, 0x83, 0xE0,
0x2B, 0x78, 0x50, 0x61, 0x56, 0x44, 0x0F, 0xBD, 0x98, 0x74, 0xCB, 0xAB, 0x80, 0xF2, 0x00, 0x87,
0x06, 0x52, 0x32, 0x1E, 0x83, 0x28, 0x43, 0x6E, 0xD5, 0x79, 0xD7, 0x10, 0x57, 0x32, 0x8C, 0xF5,
0xEC, 0x4D, 0x97, 0x7E, 0xBA, 0x2D, 0xF1, 0x19, 0x2F, 0x94, 0x65, 0x70, 0x9F, 0xB6, 0xF9, 0x29,
0xCD, 0xFF, 0x4F, 0xE8, 0xC3, 0x10, 0x9B, 0x3F, 0x40, 0x68, 0x51, 0x0B, 0x1F, 0x4B, 0x61, 0x6D,
0xA0, 0x24, 0x23, 0x15, 0x05, 0xE8, 0x82, 0xCD, 0x43, 0x60, 0x93, 0xC9, 0x6E, 0xBD, 0x37, 0xFF,
0x73, 0xC5, 0xEC, 0xC3, 0x3C, 0x04, 0x19, 0x50, 0xC4, 0x8E, 0x0C, 0x19, 0x8D, 0x2E, 0x21, 0x2F,
0x94, 0x76, 0x48, 0xD1, 0x56, 0xB0, 0x8D, 0xF8, 0x93, 0xFD, 0x9C, 0xDE, 0x2C, 0xF7, 0xD5, 0x18,
0x9A, 0x28, 0x83, 0xA3, 0xA9, 0xA8, 0x12, 0x46, 0x41, 0xAF, 0x12, 0x65, 0xF9, 0x22, 0xD2, 0x94,
0xA9, 0x64, 0x7B, 0x13, 0x0C, 0x0B, 0xC3, 0x64, 0x81, 0x82, 0x0E, 0xAD, 0x39, 0x77, 0x6C, 0x99,
0x0D, 0x1B, 0xE4, 0x1F, 0x79, 0xA1, 0xB9, 0x42, 0x56, 0xF0, 0x2C, 0xB2, 0x27, 0x58, 0x87, 0x9E,
0x3B, 0x2D, 0x0B, 0x52, 0x11, 0x86, 0x8A, 0x08, 0x25, 0x2F, 0xD0, 0xED, 0x5B, 0x52, 0x75, 0x72,
0x3C, 0x91, 0xBB, 0x11, 0xFB, 0x84, 0x3D, 0x8D, 0xAE, 0x81, 0x2C, 0xB3, 0x1C, 0xD3, 0x26, 0xB0,
0x04, 0x9F, 0x43, 0x26, 0x29, 0xB1, 0x3F, 0x64, 0x59, 0xE2, 0xBE, 0xBA, 0x35, 0x53, 0x0B, 0x60,
0xEC, 0xCA, 0x40, 0xA2, 0xAD, 0xBD, 0x81, 0xFF, 0x5F, 0xDE, 0xDB, 0xBF, 0x34, 0x8C, 0x20, 0x7A,
0x17, 0xF4, 0x26, 0x10, 0x98, 0x9F, 0xCB, 0x54, 0xF8, 0x7F, 0x43, 0x06, 0x17, 0x15, 0xD1, 0x86,
0xC8, 0x4B, 0x42, 0xB1, 0xB7, 0x4E, 0x65, 0xB4, 0x22, 0x72, 0x2B, 0xD5, 0x91, 0x40, 0x0E, 0x4A,
0x6A, 0x17, 0x7F, 0x94, 0x0B, 0x1F, 0xF5, 0xAF, 0xCE, 0x77, 0x0A, 0x61, 0xCC, 0xAE, 0x61, 0xCA,
0x47, 0x58, 0x1B, 0x02, 0xAD, 0xB8, 0x85, 0x7D, 0x0D, 0x33, 0x38, 0xD2, 0x23, 0x8D, 0x29, 0x2E,
0xC1, 0x90, 0xB5, 0x54, 0x63, 0x83, 0x21, 0x59, 0x9D, 0x96, 0x18, 0x37, 0x82, 0x42, 0x28, 0x28,
0xEC, 0x30, 0x39, 0xCB, 0xB3, 0x1A, 0xDB, 0x17, 0xB7, 0x94, 0x87, 0x07, 0xB7, 0x97, 0xE3, 0x4E,
0x86, 0x66, 0xAF, 0x4D, 0xF4, 0x05, 0xEE, 0x18, 0xF4, 0xDC, 0xB1, 0x85, 0x91, 0xA4, 0x25, 0x7C,
0x69, 0x03, 0x32, 0x82, 0x21, 0xA2, 0x7B, 0xC0, 0xB8, 0xB1, 0x4E, 0xFB, 0xF4, 0x48, 0x68, 0x82,
0x7B, 0x3A, 0xD1, 0xB9, 0x3F, 0x1B, 0xB6, 0x2A, 0xA4, 0x18, 0x98, 0xA9, 0x03, 0xB2, 0x57, 0x80,
0xE7, 0x74, 0x36, 0xDE, 0x31, 0xD4, 0x16, 0x72, 0xC3, 0x48, 0x1B, 0xAE, 0xFC, 0x29, 0x98, 0x82,
0xD1, 0xEF, 0x1E, 0xCD, 0xF2, 0x09, 0x02, 0x40, 0x95, 0xD3, 0x35, 0x68, 0xC1, 0x90, 0x9C, 0xCD,
0x41, 0x8D, 0x02, 0xD2, 0x13, 0xFE, 0xBC, 0x96, 0x43, 0x20, 0xC2, 0x89, 0x36, 0x06, 0x53, 0x1E,
0x19, 0x0B, 0x10, 0x8D, 0xCA, 0xED, 0x88, 0x88, 0x79, 0x4D, 0x61, 0x24, 0xC1, 0x63, 0x9B, 0x7B,
0xA0, 0x83, 0xC4, 0xD1, 0x6B, 0x0A, 0xCA, 0x4C, 0x69, 0x90, 0xC4, 0x96, 0x10, 0x62, 0xAD, 0xB0,
0x61, 0x5E, 0xDA, 0xDF, 0x67, 0xD4, 0xB5, 0x9F, 0x3A, 0xBF, 0xDD, 0xFE, 0x9D, 0xC3, 0xE3, 0xD3,
0x08, 0xEE, 0xB4, 0x15, 0x3E, 0x34, 0xBD, 0x71, 0xF1, 0x2A, 0x81, 0x7E, 0xA3, 0x5E, 0xCB, 0x9D,
0xEE, 0x6B, 0x68, 0xB6, 0x78, 0xF7, 0xB4, 0xD2, 0x6B, 0x1E, 0xD9, 0x36, 0xB6, 0xC3, 0xB7, 0xE8,
0xF1, 0x2B, 0xC2, 0x15, 0x2A, 0xA9, 0xA7, 0x0D, 0x40, 0x63, 0x1B, 0x0E, 0x44, 0xF2, 0x01, 0xCA,
0x4B, 0xFE, 0x96, 0x8B, 0xD1, 0xB1, 0xB6, 0x7F, 0x08, 0xC6, 0x59, 0x4D, 0x8E, 0xF7, 0xF4, 0xF5,
0xBC, 0xF3, 0xF6, 0x42, 0x9E, 0x69, 0x8A, 0xF9, 0x3D, 0x02, 0x85, 0xB4, 0x57, 0x58, 0x92, 0x0F,
0x54, 0xCE, 0x93, 0xB0, 0xE2, 0x24, 0xF1, 0x96, 0x69, 0xE9, 0x4F, 0xBF, 0x67, 0x46, 0x6C, 0x65,
0xEF, 0x37, 0x51, 0x0D, 0x43, 0x3F, 0x1E, 0xCD, 0x2A, 0x29, 0xE3, 0x26, 0x2D, 0xA3, 0x1B, 0x1D,
0xF2, 0x65, 0x6F, 0x56, 0x84, 0x51, 0xB1, 0x89, 0x3F, 0x68, 0xC2, 0x06, 0x08, 0xB3, 0x5F, 0x09,
0x49, 0x25, 0x30, 0xBF, 0x3A, 0x84, 0x61, 0x8D, 0x86, 0xFF, 0x0E, 0xF9, 0x35, 0xAD, 0xE3, 0x12,
0x5F, 0xA2, 0x03, 0x58, 0x57, 0x1D, 0xFF, 0xFA, 0x97, 0xBF, 0xE2, 0x9B, 0xAA, 0xCF, 0x66, 0x30,
0xE0, 0x0F, 0x34, 0xF2, 0x23, 0x47, 0x77, 0xB0, 0x68, 0x3A, 0x5D, 0x34, 0x43, 0xF3, 0x7F, 0x0A,
0xF2, 0x03, 0x55, 0xE7, 0xE9, 0x22, 0xF6, 0x9F, 0x48, 0x39, 0x4C, 0x58, 0x8C, 0x6C, 0xF9, 0x5A,
0x60, 0xAA, 0x8B, 0x8C, 0xCE, 0xB3, 0x0D, 0xE1, 0x0F, 0xFE, 0x76, 0x35, 0xEE, 0x42, 0x26, 0xA1,
0x28, 0xBD, 0xC5, 0x4C, 0x3C, 0x30, 0x95, 0xB5, 0xB2, 0x1F, 0xA1, 0x03, 0x00, 0x6F, 0x27, 0x3D,
0x8D, 0xCA, 0x95, 0x1C, 0xBB, 0xAB, 0x6C, 0xE0, 0xB6, 0x61, 0x58, 0x36, 0x8C, 0x54, 0x57, 0x6A,
0xE6, 0x36, 0x90, 0x48, 0x2A, 0x27, 0x61, 0x86, 0x8C, 0xB6, 0x44, 0x8F, 0x5D, 0xD3, 0xA2, 0x7D,
0x0C, 0x8F, 0xEC, 0xD7, 0xF0, 0x34, 0x7A, 0xC9, 0xD3, 0x16, 0xF1, 0xA7, 0x50, 0xA4, 0x9B, 0x20,
0x3C, 0xF0, 0x39, 0x51, 0xC0, 0x1B, 0x4E, 0x2F, 0x78, 0xD9, 0x50, 0x93, 0x13, 0x44, 0xE0, 0xD1,
0x1E, 0x41, 0x03, 0x22, 0x47, 0xC9, 0x4B, 0x6D, 0x92, 0x9F, 0x21, 0xE8, 0xA5, 0x39, 0x22, 0x9A,
0x22, 0x6D, 0xC6, 0xFD, 0x0A, 0x5E, 0x8E, 0x68, 0x03, 0x6B, 0x3E, 0xA3, 0x9F, 0xD1, 0x90, 0x3B,
0x7F, 0x7A, 0xB3, 0xAA, 0x53, 0xC6, 0x2D, 0x58, 0xDC, 0x55, 0x49, 0xE5, 0x2A, 0xB3, 0x0A, 0x82,
0x02, 0x80, 0x1B, 0x7C, 0x1C, 0x93, 0x20, 0xC7, 0x5D, 0x6A, 0x78, 0x87, 0x9C, 0x1E, 0x90, 0xB7,
0xE7, 0x19, 0x4D, 0x14, 0x76, 0xC5, 0xB0, 0x0C, 0xFA, 0xCC, 0xA5, 0x3A, 0xBD, 0xB8, 0x67, 0x1A,
0x87, 0x19, 0xCF, 0x33, 0xE9, 0x74, 0x40, 0x85, 0x51, 0x13, 0xDA, 0xF7, 0x40, 0xAE, 0x65, 0x3C,
0xE0, 0x8E, 0xE0, 0x97, 0xD7, 0x82, 0x1B, 0x93, 0x63, 0xCB, 0xB4, 0x41, 0xC7, 0xA6, 0x99, 0x0E,
0x12, 0xDB, 0xC8, 0x2B, 0xA4, 0x40, 0x22, 0x66, 0xD9, 0xAB, 0x95, 0x9C, 0x2B, 0x01, 0x0F, 0x77,
0x9D, 0x85, 0xE6, 0x66, 0x59, 0xC0, 0xC4, 0xE0, 0xE5, 0xD8, 0x07, 0xF1, 0x85, 0xCC, 0xE3, 0x48,
0x41, 0x72, 0xA3, 0x20, 0x32, 0x89, 0xC4, 0x91, 0xE6, 0xE1, 0xCF, 0x6F, 0x56, 0x8A, 0x31, 0x8A,
0xC4, 0x12, 0x43, 0xC6, 0x0A, 0x27, 0x50, 0x41, 0xE4, 0x4F, 0xFB, 0x97, 0x4B, 0x2E, 0xD9, 0x0B,
0xD3, 0x8A, 0xE5, 0xD6, 0xA5, 0x23, 0x67, 0x79, 0x91, 0x30, 0x8B, 0x6C, 0x3F, 0xFE, 0x62, 0x3F,
0xA7, 0xF8, 0x9C, 0xE6, 0x73, 0x97, 0xC8, 0x14, 0xA8, 0x17, 0xEB, 0x94, 0x40, 0x40, 0xBC, 0xAF,
0x30, 0xDE, 0x93, 0x83, 0x84, 0x54, 0xE0, 0x6D, 0xFA, 0xC9, 0xFE, 0xC6, 0xED, 0x1B, 0x69, 0x5F,
0xDD, 0x3B, 0xAA, 0x40, 0xC2, 0x11, 0xD7, 0xDA, 0x25, 0x05, 0x3B, 0x1C, 0xFC, 0x8A, 0x23, 0x40,
0x11, 0x5D, 0xBE, 0x4B, 0x51, 0x38, 0x08, 0xA6, 0x8D, 0x75, 0xC1, 0x8A, 0xCB, 0xE6, 0xD9, 0xC3,
0xBA, 0xD9, 0x9C, 0x12, 0x4C, 0xAB, 0x55, 0x34, 0xCD, 0x88, 0x57, 0x2A, 0x07, 0xCA, 0xCF, 0xDB,
0x7F, 0x94, 0x2E, 0x10, 0x19, 0x6F, 0x55, 0x03, 0x53, 0xC8, 0x9A, 0x46, 0x90, 0xF0, 0x12, 0xD5,
0x58, 0xC6, 0x6F, 0xB4, 0x6A, 0x52, 0x6F, 0xB9, 0x17, 0x73, 0xCE, 0x83, 0xB4, 0x0B, 0xDE, 0x24,
0xF6, 0x3E, 0x12, 0x82, 0xFD, 0x9A, 0x10, 0xB8, 0xE7, 0xC3, 0x91, 0x24, 0x66, 0x81, 0x40, 0x54,
0x45, 0x44, 0x00, 0x43, 0x20, 0x44, 0xB9, 0x05, 0xFB, 0x8E, 0x64, 0x09, 0x29, 0x45, 0x0F, 0x42,
0x90, 0x47, 0x73, 0xA2, 0xB0, 0x0A, 0x26, 0x82, 0xFC, 0x4B, 0xFA, 0xC8, 0x63, 0xE1, 0x30, 0x01,
0x95, 0x3B, 0x3A, 0x86, 0x9D, 0x56, 0x45, 0xC7, 0xF8, 0xD8, 0x98, 0x79, 0x7F, 0xFF, 0x72, 0x63,
0x5C, 0x69, 0xEB, 0x1C, 0x71, 0xFC, 0xA6, 0x75, 0xCA, 0x27, 0xAD, 0xB3, 0x8C, 0x01, 0x3E, 0x43,
0xA2, 0x0F, 0x40, 0x67, 0xBA, 0xA5, 0x70, 0x70, 0x62, 0xA3, 0xE3, 0xA5, 0x0E, 0xC8, 0x07, 0x0B,
0xB4, 0x2F, 0x9C, 0x34, 0xB8, 0x52, 0xB6, 0x60, 0xFF, 0x65, 0xFD, 0x47, 0x06, 0x0D, 0x0F, 0x0D,
0x8A, 0xB8, 0x01, 0xCC, 0x57, 0xB1, 0x5F, 0xF8, 0x45, 0x9B, 0x08, 0x1B, 0x3A, 0xC1, 0x3E, 0xAC,
0x39, 0x5D, 0x24, 0xF6, 0xDF, 0x8A, 0x98, 0xCE, 0x18, 0x87, 0xB3, 0x90, 0x7A, 0x1B, 0x25, 0x1F,
0x31, 0x8E, 0xF5, 0xE9, 0x9A, 0x58, 0xEE, 0x25, 0x21, 0xDC, 0x63, 0x89, 0x30, 0x77, 0x59, 0x4C,
0xFC, 0x66, 0x74, 0x8C, 0x29, 0x20, 0xDE, 0x99, 0x48, 0x31, 0x56, 0xF2, 0xA5, 0x64, 0x07, 0x4A,
0x84, 0x36, 0x42, 0xA2, 0x1C, 0xB8, 0x87, 0x28, 0x8A, 0x3E, 0x17, 0xC1, 0x93, 0xB6, 0x40, 0x49,
0xF9, 0xA0, 0xFA, 0x4B, 0x8E, 0x6B, 0xD1, 0xAE, 0xF7, 0xD9, 0xEB, 0x8E, 0x72, 0x46, 0x0A, 0x53,
0x08, 0xBC, 0x84, 0x2D, 0xD7, 0x67, 0x2F, 0xA4, 0x11, 0x13, 0x36, 0x5F, 0x3C, 0x96, 0xF2, 0x06,
0x41, 0x94, 0x7E, 0xD5, 0x13, 0x61, 0x73, 0xB8, 0x4C, 0x98, 0xCA, 0x10, 0x68, 0x93, 0xA8, 0x82,
0xD3, 0x7A, 0xA5, 0xD8, 0x4A, 0x4A, 0x02, 0xC9, 0x4E, 0xCB, 0x10, 0x15, 0x25, 0xE5, 0x93, 0x87,
0x83, 0xE3, 0x0E, 0xC3, 0xA3, 0x12, 0xC3, 0x77, 0x31, 0xDC, 0xEF, 0xA2, 0x93, 0xF7, 0x8E, 0x09,
0xCF, 0xA6, 0x54, 0x56, 0x15, 0xC8, 0x69, 0x66, 0x7C, 0x12, 0x23, 0xD1, 0x65, 0x7B, 0x40, 0x01,
0xD6, 0x9A, 0x83, 0xD2, 0xB5, 0x29, 0x10, 0xEB, 0xEE, 0xE0, 0x73, 0x8D, 0x58, 0x7B, 0x85, 0xC4,
0x8F, 0x26, 0x65, 0xD8, 0x04, 0xB4, 0xDB, 0xC5, 0xA7, 0xD7, 0x23, 0x2F, 0x66, 0x84, 0x21, 0x6B,
0xAF, 0x67, 0xA0, 0x6A, 0x37, 0x6C, 0x0E, 0x20, 0x53, 0x1C, 0x85, 0xC4, 0xCA, 0x51, 0x9D, 0xC5,
0x65, 0x46, 0x92, 0xB2, 0x84, 0x6A, 0xC2, 0x97, 0x3D, 0xF5, 0x01, 0xF2, 0x74, 0xC5, 0xD8, 0x93,
0x32, 0x0F, 0x1F, 0x51, 0xE8, 0x89, 0x82, 0xDB, 0x21, 0x85, 0xB4, 0x61, 0x1E, 0x02, 0x13, 0x6B,
0x72, 0xF8, 0x9C, 0x71, 0x01, 0x5F, 0xE9, 0x90, 0x38, 0x16, 0x8E, 0xD0, 0x15, 0x22, 0x91, 0xB0,
0x8A, 0xE4, 0x22, 0x50, 0x22, 0xFE, 0x40, 0x9D, 0xC1, 0xA4, 0x98, 0x1E, 0xCC, 0x2A, 0xEA, 0x08,
0xAD, 0x32, 0x87, 0x3A, 0x48, 0x91, 0x65, 0xE5, 0x6F, 0xA2, 0x8F, 0x1A, 0xC2, 0xA6, 0xF8, 0xC3,
0x8E, 0x98, 0x22, 0xBE, 0xA1, 0xB4, 0x17, 0xFF, 0x60, 0x50, 0xED, 0x93, 0x8F, 0x2C, 0xF8, 0x52,
0x33, 0xB3, 0x4A, 0xCC, 0x4C, 0x41, 0xE4, 0x05, 0x73, 0xF8, 0x4E, 0xC7, 0x42, 0x2F, 0xB9, 0xD1,
0x89, 0xBE, 0x9F, 0xB6, 0xEA, 0x13, 0xFC, 0x5A, 0xF5, 0x52, 0x70, 0x5F, 0x9E, 0x2B, 0x91, 0x61,
0xAA, 0x75, 0xC5, 0x15, 0xDD, 0x89, 0xB8, 0x26, 0x57, 0x00, 0xC8, 0xCE, 0x60, 0x31, 0xA5, 0x8A,
0x50, 0x45, 0x5B, 0x75, 0x0B, 0x49, 0x0E, 0xF0, 0x23, 0xED, 0x18, 0x9F, 0xD2, 0x86, 0xC0, 0x37,
0x23, 0x88, 0x34, 0x15, 0x73, 0x95, 0x37, 0xD2, 0xC8, 0x03, 0x56, 0x7F, 0xD8, 0x53, 0x00, 0x9D,
0x0F, 0xBC, 0x91, 0x23, 0xC2, 0x2F, 0x55, 0x02, 0xBC, 0x4B, 0xDD, 0x4F, 0xC4, 0x93, 0x61, 0x27,
0xD3, 0x7D, 0x9B, 0xA0, 0x79, 0xE4, 0xF4, 0x84, 0xEB, 0x79, 0x44, 0xC6, 0x44, 0x72, 0xC9, 0x0C,
0xC8, 0xCA, 0x08, 0x52, 0x32, 0x51, 0x31, 0x3D, 0x28, 0x3D, 0x27, 0x6A, 0x97, 0xD9, 0xFF, 0x60,
0x75, 0xD0, 0x86, 0x0A, 0x66, 0x85, 0x71, 0xF0, 0x30, 0x3B, 0xC5, 0x8A, 0x51, 0xEB, 0xC0, 0x56,
0xC6, 0x37, 0x05, 0xD8, 0xF1, 0xB0, 0x8A, 0xA2, 0xB3, 0xC0, 0x70, 0x70, 0xEF, 0xE2, 0xD6, 0x97,
0x5D, 0xE0, 0x2C, 0xB7, 0x26, 0x2A, 0x5B, 0x74, 0x6F, 0xE8, 0xFE, 0x3E, 0x71, 0x84, 0xCF, 0xF4,
0x2E, 0x39, 0x94, 0x72, 0x22, 0x05, 0x87, 0x68, 0xBE, 0x46, 0x2E, 0xE1, 0x22, 0x2C, 0x0F, 0xAD,
0x92, 0x1B, 0x1D, 0x32, 0x76, 0x49, 0x4A, 0x70, 0x5A, 0x86, 0xAE, 0x12, 0xA0, 0x93, 0xE3, 0xE3,
0x83, 0x2E, 0xC0, 0x0F, 0xE7, 0x04, 0xDC, 0x3C, 0xEA, 0xE4, 0xC1, 0xAC, 0x49, 0x5C, 0xCC, 0xA8,
0x1C, 0xDC, 0xAE, 0x5C, 0x09, 0x51, 0xB8, 0xEC, 0x81, 0x3B, 0x56, 0x22, 0xF0, 0x52, 0x02, 0xD3,
0x44, 0x02, 0x02, 0x2F, 0xD7, 0x48, 0x52, 0xA0, 0x30, 0x4E, 0x27, 0x54, 0xFF, 0xCF, 0x85, 0x0C,
0x41, 0x53, 0xB1, 0xE1, 0x4A, 0x8F, 0xC8, 0x7D, 0xF5, 0xEC, 0x3D, 0x87, 0xC6, 0xED, 0xC9, 0x9F,
0xEB, 0xAD, 0x6B, 0x5A, 0xF9, 0xC8, 0xC4, 0x4F, 0x33, 0x11, 0x87, 0x5B, 0x2C, 0x40, 0x9B, 0x62,
0xBD, 0x04, 0x81, 0xD0, 0xC9, 0x29, 0x1D, 0xE1, 0x1F, 0x18, 0x3C, 0x72, 0x0F, 0xBE, 0x8D, 0x8C,
0x88, 0xE0, 0x2A, 0xAE, 0x69, 0x04, 0xE3, 0x79, 0xDA, 0x22, 0xE7, 0xFA, 0x56, 0x72, 0x79, 0xAD,
0x55, 0x54, 0xA1, 0x84, 0x69, 0x5D, 0x61, 0xCB, 0x68, 0xB8, 0x26, 0x3B, 0x71, 0xC3, 0x6C, 0x34,
0x92, 0x63, 0xC4, 0x93, 0xA2, 0x46, 0x00, 0xF1, 0xEC, 0xEB, 0xCC, 0xB7, 0x80, 0xCA, 0xD5, 0x4D,
0x59, 0x5A, 0x38, 0x1F, 0x0F, 0xD8, 0xF9, 0x08, 0x53, 0x13, 0xD4, 0x70, 0x70, 0xCB, 0xDC, 0x6B,
0x28, 0x50, 0x97, 0x35, 0x55, 0x8F, 0x1A, 0x39, 0xBA, 0x33, 0xE3, 0x64, 0x5B, 0xA7, 0x47, 0xDD,
0x0E, 0x73, 0x1E, 0xC6, 0xA0, 0xB2, 0x88, 0xAF, 0x03, 0xC7, 0xB4, 0x15, 0x24, 0x9D, 0x9E, 0x1C,
0xF7, 0x3E, 0xC1, 0x3D, 0x0D, 0x89, 0x49, 0xC9, 0x32, 0xDB, 0xDB, 0x1B, 0x5F, 0x5D, 0xFA, 0xEA,
0x52, 0x37, 0xC0, 0x53, 0x87, 0x1D, 0xF0, 0xB6, 0x1B, 0xB3, 0xFD, 0x1B, 0x94, 0x71, 0x1D, 0xE4,
0x67, 0x93, 0xEB, 0xE6, 0x14, 0x4E, 0x28, 0x4A, 0xFD, 0x3F, 0xDF, 0x24, 0x37, 0xA5, 0x9B, 0x7A,
0x49, 0xF4, 0x28, 0x73, 0x7D, 0x56, 0x1A, 0x25, 0x9C, 0x3F, 0x54, 0x1C, 0xE7, 0xAC, 0x54, 0x56,
0x23, 0x31, 0xC3, 0x6D, 0x29, 0xAB, 0x23, 0x2D, 0x79, 0xB8, 0xF4, 0xAC, 0x5C, 0xB2, 0xA5, 0x11,
0x0D, 0x42, 0x58, 0xFD, 0xD2, 0xD2, 0x52, 0x18, 0x5B, 0x32, 0xE9, 0x46, 0xBD, 0xA1, 0x8D, 0xDA,
0x39, 0x1B, 0x51, 0x54, 0xC9, 0xB4, 0x0B, 0x59, 0x79, 0xD6, 0xF8, 0x4A, 0xF6, 0x0C, 0x9A, 0x91,
0xB3, 0xE8, 0xEA, 0x9E, 0x2A, 0x8C, 0x16, 0x89, 0x05, 0x54, 0xA1, 0x88, 0x63, 0x09, 0x57, 0x94,
0xF4, 0x81, 0x42, 0x9E, 0x30, 0x11, 0xC4, 0x79, 0x04, 0xC2, 0xFC, 0xCA, 0xD2, 0xBA, 0x35, 0x42,
0xBE, 0x24, 0xC6, 0xE5, 0xED, 0xCC, 0x2C, 0x18, 0x17, 0xCA, 0x25, 0xE3, 0x1B, 0xF5, 0x06, 0x8E,
0x24, 0x89, 0x23, 0xF5, 0x95, 0x32, 0x89, 0x26, 0x53, 0x0F, 0x2A, 0x53, 0x5C, 0x49, 0xD7, 0x0F,
0xBA, 0xA6, 0xEA, 0x7F, 0xC8, 0x57, 0x16, 0x19, 0x32, 0x9F, 0xAC, 0x18, 0x2F, 0xE1, 0xAD, 0x84,
0xDD, 0xB6, 0x44, 0xC5, 0x03, 0x43, 0x74, 0x9E, 0x61, 0x29, 0x18, 0x12, 0x22, 0xF0, 0x06, 0xCB,
0x43, 0x30, 0x25, 0xEC, 0xA9, 0x59, 0xA3, 0x4D, 0xA4, 0x3B, 0xBE, 0xC3, 0x69, 0xA0, 0xF2, 0x68,
0xA3, 0xB8, 0xDA, 0xF9, 0xBF, 0x19, 0x5C, 0x1F, 0x33, 0xFE, 0xEB, 0x96, 0x04, 0x65, 0x66, 0xC5,
0x06, 0x1C, 0x88, 0x47, 0xD4, 0x77, 0xCD, 0xC5, 0x14, 0x85, 0x4E, 0xCD, 0x21, 0x43, 0xD0, 0xB1,
0xFC, 0x4A, 0xC3, 0x3A, 0xBE, 0x4E, 0xC2, 0xD6, 0x7B, 0x26, 0x65, 0x97, 0xCC, 0xFF, 0x0A, 0xF5,
0xC2, 0x01, 0xDD, 0xE8, 0xB3, 0xD2, 0xBF, 0x4B, 0x62, 0x93, 0x95, 0x09, 0xEF, 0x28, 0x80, 0x20,
0x52, 0xA9, 0xBB, 0x6B, 0x5D, 0xCB, 0x48, 0x65, 0xD9, 0xBC, 0xB0, 0xE3, 0xE0, 0x27, 0xE0, 0x04,
0x81, 0x55, 0x66, 0x9B, 0x8C, 0x85, 0x42, 0x2F, 0x76, 0xC1, 0xD2, 0x46, 0x26, 0xA2, 0x64, 0x58,
0xB9, 0x88, 0x3B, 0x6A, 0x82, 0x3F, 0x08, 0xE4, 0x07, 0x5F, 0xF6, 0xCE, 0x73, 0x55, 0x59, 0xC5,
0xCE, 0xAD, 0x95, 0xA7, 0x59, 0x68, 0x3A, 0x2F, 0xD6, 0x33, 0x97, 0xC9, 0xE3, 0xEB, 0xE3, 0x83,
0x25, 0xA2, 0x46, 0xE1, 0x6C, 0x23, 0x99, 0xBA, 0xEA, 0x53, 0x46, 0xE0, 0xFA, 0x26, 0x73, 0x4E,
0x2F, 0x85, 0xCE, 0x13, 0xDB, 0x23, 0x7A, 0xE4, 0x95, 0x6D, 0x52, 0x7B, 0xC7, 0x0E, 0x81, 0x1D,
0x41, 0x1D, 0x18, 0x60, 0xC4, 0x11, 0xEE, 0x66, 0x8F, 0x00, 0x55, 0x13, 0xC5, 0x49, 0xCF, 0xE5,
0x6A, 0x1B, 0x5F, 0x32, 0xA3, 0xCA, 0x33, 0x76, 0x9B, 0xBC, 0xFB, 0x6A, 0x48, 0x89, 0x06, 0xBA,
0xE0, 0x02, 0xD2, 0x37, 0x66, 0x1B, 0x53, 0x17, 0x90, 0x5E, 0x9F, 0xFA, 0x86, 0x40, 0x90, 0x3A,
0x46, 0x91, 0x6B, 0x71, 0xD8, 0xC6, 0x81, 0xFF, 0x59, 0xB8, 0xD1, 0xAC, 0xF7, 0xDF, 0x9C, 0x61,
0xE7, 0x81, 0x7A, 0xDD, 0x9D, 0x51, 0x0C, 0xBD, 0xEA, 0x9C, 0x89, 0x82, 0x55, 0x4F, 0x29, 0xEA,
0xB6, 0x90, 0xAA, 0x78, 0xC2, 0xF3, 0xE6, 0xCC, 0xF3, 0x1F, 0xF3, 0x79, 0xCF, 0xCC, 0xD2, 0x25,
0xAC, 0x05, 0xB3, 0x4F, 0xF6, 0x2F, 0xB5, 0xDC, 0xA7, 0x16, 0xEC, 0x5F, 0x92, 0x1C, 0xB2, 0x1B,
0x58, 0xF0, 0xEE, 0xE5, 0xCA, 0xC2, 0x4A, 0x9E, 0x6A, 0x8B, 0xAE, 0x1C, 0xE5, 0x6C, 0x12, 0xC9,
0xED, 0x1E, 0x7F, 0x1D, 0x3D, 0x78, 0xDD, 0x7D, 0xF3, 0xEB, 0x37, 0x5C, 0x6E, 0xC7, 0x42, 0xDF,
0xD7, 0xC1, 0x48, 0xA0, 0xCC, 0xCC, 0x0E, 0xED, 0x72, 0x17, 0x3F, 0x74, 0xD7, 0xA9, 0x87, 0x00,
0x13, 0xF4, 0x1F, 0xBA, 0x3B, 0x3C, 0xBD, 0xDB, 0xD5, 0x9D, 0xB7, 0xDC, 0xD5, 0xBA, 0x73, 0xBC,
0x98, 0xCB, 0xAE, 0xDB, 0x4D, 0xFB, 0xD5, 0x21, 0x83, 0x71, 0xD0, 0x40, 0xCB, 0x1F, 0x3A, 0xC2,
0xBE, 0xE1, 0xF5, 0xF8, 0xE0, 0x75, 0xFE, 0xF8, 0xEB, 0x17, 0x46, 0xC7, 0x0B, 0x0D, 0xD3, 0xBF,
0xEA, 0xF4, 0x4E, 0x2B, 0x8D, 0x31, 0x2D, 0xC5, 0x90, 0x3D, 0x8C, 0x3E, 0x4C, 0x19, 0x8E, 0x4B,
0x33, 0xC4, 0xB5, 0xDF, 0xB1, 0xC5, 0x10, 0xC0, 0x07, 0x81, 0xE8, 0x6A, 0xAF, 0xC7, 0xD3, 0x11,
0x76, 0xBE, 0xC6, 0xA8, 0xBD, 0x7D, 0xFC, 0x51, 0x25, 0x77, 0xD8, 0x89, 0xFC, 0x1D, 0x0F, 0xF8,
0x2F, 0x69, 0xD2, 0x3A, 0x2D, 0x13, 0xF3, 0x0C, 0xEA, 0x44, 0x8C, 0xB6, 0x33, 0xD2, 0xFC, 0xB1,
0x85, 0x66, 0x93, 0x36, 0x60, 0xED, 0xBE, 0x06, 0x05, 0x60, 0x77, 0xE4, 0x49, 0x0D, 0xC0, 0x9A,
0xD7, 0xB3, 0x2D, 0x06, 0x23, 0x0D, 0x89, 0x1D, 0x2D, 0xAC, 0x2F, 0x6D, 0x01, 0x0F, 0x36, 0xCF,
0x56, 0xFE, 0xFF, 0xFC, 0xFB, 0xCF, 0xE7, 0x31, 0x1B, 0xB3, 0x19, 0x10, 0x6B, 0x93, 0x83, 0x11,
0xE2, 0xD4, 0x0C, 0xF2, 0xF1, 0x89, 0xB2, 0x15, 0xB4, 0x64, 0x9B, 0xC3, 0xD2, 0x28, 0xF7, 0xB7,
0x3D, 0xCD, 0xA0, 0x45, 0x7E, 0x3A, 0x84, 0x8F, 0x85, 0x1F, 0xDC, 0x1E, 0xCC, 0xAA, 0x4B, 0xEA,
0x78, 0x85, 0xE1, 0xA8, 0x41, 0xEA, 0x04, 0xF9, 0xCF, 0x67, 0x20, 0xCC, 0x4A, 0x36, 0xF4, 0x11,
0x68, 0xD8, 0x1E, 0x08, 0x59, 0xB7, 0x8F, 0x72, 0x13, 0x9F, 0x49, 0xA5, 0x32, 0xE9, 0x49, 0x55,
0xAB, 0x29, 0xBD, 0x9B, 0x32, 0x0B, 0xF8, 0x6C, 0x33, 0x74, 0xF1, 0x2D, 0x44, 0x9B, 0xA7, 0x5C,
0x5F, 0x82, 0x16, 0x35, 0x6A, 0x3B, 0xB5, 0x6B, 0x85, 0xC4, 0x54, 0x29, 0x7B, 0x1F, 0xF4, 0x7E,
0x67, 0xAF, 0x75, 0x3C, 0x09, 0x92, 0x57, 0xA9, 0x6F, 0x9C, 0x12, 0x8E, 0x1C, 0xB7, 0x4B, 0x0D,
0x1C, 0x3D, 0x89, 0xFE, 0xF4, 0x17, 0xEA, 0x4A, 0x98, 0xF0, 0x04, 0xDB, 0x4E, 0x40, 0x53, 0x19,
0x83, 0x41, 0x63, 0x56, 0xC2, 0x48, 0x18, 0x40, 0x7A, 0x93, 0x9C, 0x58, 0x29, 0x64, 0x43, 0x11,
0x79, 0x06, 0x22, 0x03, 0x65, 0x1B, 0xF3, 0x57, 0xED, 0xDF, 0x77, 0xE9, 0xEE, 0xCB, 0xC5, 0x9D,
0x1B, 0xF6, 0x86, 0x6D, 0xB3, 0x36, 0xBA, 0x49, 0xF2, 0xB0, 0x84, 0x07, 0x94, 0x50, 0x1D, 0xB7,
0x69, 0x79, 0x14, 0xB6, 0x61, 0xAB, 0xAE, 0x52, 0xF2, 0x4E, 0x17, 0x75, 0x59, 0x38, 0x84, 0xF7,
0x27, 0xE6, 0x91, 0xE8, 0xA6, 0xEA, 0x18, 0x70, 0xF0, 0x52, 0x61, 0x92, 0xEF, 0xCE, 0xC7, 0x2D,
0x42, 0x8B, 0xB9, 0xE2, 0x7A, 0x3D, 0xC4, 0x2A, 0x5A, 0x03, 0x32, 0x3D, 0x71, 0xF4, 0xFE, 0xD1,
0xF6, 0x54, 0xC2, 0x9D, 0x64, 0x2C, 0x78, 0xD3, 0xB5, 0x94, 0xD6, 0x2E, 0xEA, 0x59, 0xC1, 0x13,
0x5E, 0xDF, 0x9C, 0xDE, 0x58, 0x0A, 0x03, 0x77, 0xEC, 0xB3, 0x2D, 0xEB, 0x97, 0xAB, 0x62, 0x8C,
0x6A, 0xF2, 0xA5, 0x29, 0x20, 0x71, 0x6C, 0xAF, 0xE5, 0x29, 0xC0, 0x73, 0xAD, 0x93, 0x65, 0xAB,
0xC7, 0x36, 0x74, 0xA0, 0xCF, 0x5D, 0xB5, 0xD5, 0x2B, 0x5A, 0x5E, 0xA5, 0x98, 0xAB, 0xC5, 0x5C,
0x9C, 0x37, 0x4B, 0xFA, 0x0C, 0x89, 0x03, 0xFD, 0xF9, 0xF8, 0x0B, 0x06, 0xD6, 0x35, 0xB7, 0x83,
0x46, 0x31, 0xF1, 0x90, 0xFB, 0xC0, 0x3B, 0xFC, 0xDE, 0x9D, 0x5C, 0x10, 0xC0, 0xD9, 0xAA, 0x21,
0x62, 0x51, 0x9C, 0xEC, 0x1F, 0x46, 0x99, 0x2E, 0xF3, 0xF1, 0x3D, 0x98, 0x65, 0xD5, 0xF7, 0x33,
0xF6, 0x31, 0x6B, 0xDF, 0x32, 0x2F, 0x20, 0x02, 0xAE, 0x19, 0xE5, 0x20, 0x56, 0xAC, 0x4C, 0x68,
0x0E, 0x8F, 0x7B, 0x0F, 0x03, 0x62, 0x77, 0xD0, 0x61, 0xFF, 0x81, 0xBD, 0xF6, 0xDC, 0xB5, 0xC8,
0x9F, 0xAB, 0x1E, 0x6A, 0xC8, 0xB7, 0x0B, 0x63, 0x3A, 0x09, 0x92, 0xD0, 0x01, 0xE7, 0xBC, 0x1E,
0xE6, 0x9C, 0x46, 0xB7, 0xBB, 0xE0, 0x4B, 0x60, 0xB3, 0xBD, 0x03, 0xF8, 0xE3, 0x1D, 0x16, 0x0D,
0x0D, 0x6A, 0x3E, 0xEE, 0x65, 0x99, 0x26, 0x61, 0xDB, 0xDE, 0xE8, 0x1A, 0x8A, 0xBD, 0x30, 0x34,
0x6D, 0xE5, 0x6F, 0x50, 0xEA, 0x5C, 0x80, 0x7B, 0xD9, 0x0F, 0x91, 0x87, 0xBB, 0x51, 0x2C, 0x84,
0x35, 0x30, 0x69, 0x46, 0x38, 0x97, 0x9C, 0x69, 0xA6, 0x5E, 0xA9, 0xB3, 0xC9, 0xBB, 0xDC, 0xC8,
0xDC, 0x40, 0x75, 0xAA, 0x2C, 0x4E, 0xCB, 0x98, 0x96, 0x07, 0xAF, 0x05, 0x5F, 0x77, 0x19, 0x4A,
0xD9, 0xDC, 0xB5, 0x0C, 0x69, 0x00, 0x2C, 0xE4, 0x79, 0x1E, 0x10, 0x8C, 0xCB, 0xD9, 0xD7, 0xA3,
0x7F, 0xCF, 0xA9, 0x2A, 0xA7, 0xF1, 0xD7, 0x0B, 0x93, 0xC3, 0xA2, 0x3E, 0x2A, 0x35, 0x3E, 0xFB,
0xF0, 0xF0, 0x91, 0x87, 0x52, 0xE6, 0x7A, 0x11, 0x8B, 0xD2, 0x61, 0xB3, 0x38, 0xF9, 0xE0, 0x36,
0x2B, 0x11, 0x39, 0x37, 0x70, 0xBA, 0x8C, 0xED, 0x5E, 0x66, 0x25, 0x0F, 0x0E, 0xE7, 0x53, 0xC0,
0x7F, 0x31, 0xFE, 0xD6, 0x4D, 0x00, 0xA8, 0xE2, 0x0F, 0x6C, 0x13, 0xDC, 0xBE, 0x3F, 0x00, 0x7E,
0xEC, 0x99, 0x0A, 0xEE, 0x95, 0xD5, 0xEC, 0x9E, 0x02, 0xE3, 0xB6, 0x49, 0xEB, 0x9D, 0x40, 0x55,
0xAA, 0xA6, 0xD8, 0x8D, 0x44, 0x11, 0x17, 0x7E, 0xCE, 0x6E, 0x30, 0x32, 0xFF, 0x1A, 0x55, 0x1F,
0xC4, 0x7E, 0x0F, 0x46, 0x63, 0x3F, 0x68, 0xE9, 0xEE, 0xD5, 0x77, 0x6D, 0x7B, 0xAD, 0x07, 0x9D,
0x3C, 0xED, 0x0E, 0x5B, 0xBF, 0x17, 0xB6, 0x4A, 0xCA, 0x33, 0xB7, 0x11, 0x5B, 0xFF, 0x6C, 0xE0,
0xA7, 0xBA, 0xFD, 0xDE, 0x78, 0x50, 0xAC, 0x12, 0x06, 0xC0, 0xF3, 0x0C, 0x36, 0x69, 0x59, 0x8C,
0x91, 0xF5, 0x6C, 0xEB, 0x0D, 0x59, 0x05, 0x0D, 0x9B, 0xA1, 0x4F, 0x93, 0xA0, 0xF3, 0xEE, 0x36,
0xD9, 0x41, 0xD8, 0xF9, 0xF7, 0xCB, 0x0C, 0xFE, 0x1E, 0xB0, 0xB9, 0x88, 0xC9, 0x13, 0xA0, 0x0A,
0x50, 0xEE, 0xA0, 0x0E, 0x1E, 0x0C, 0x8D, 0x2D, 0x3C, 0x61, 0xFA, 0x34, 0x8F, 0x1B, 0xB5, 0xEF,
0x10, 0xC2, 0x7A, 0xED, 0xCA, 0x06, 0xDE, 0x33, 0x52, 0xE2, 0xFA, 0xE5, 0x4C, 0x00, 0x73, 0xC8,
0x28, 0xC2, 0xAA, 0xDD, 0xA3, 0x6D, 0xED, 0xE5, 0xD8, 0x7D, 0xE3, 0xD9, 0x2E, 0x9D, 0x4C, 0xF2,
0xCE, 0xFD, 0xC1, 0xEC, 0xED, 0x85, 0xAD, 0x77, 0xB7, 0xC5, 0x7A, 0xFF, 0x4D, 0x6E, 0x3A, 0x4C,
0x64, 0xC4, 0xC4, 0x5E, 0x47, 0xB0, 0x64, 0xBF, 0x17, 0x26, 0x91, 0x59, 0x41, 0xA0, 0x7C, 0x18,
0x36, 0x3F, 0x40, 0x41, 0xC9, 0x4E, 0xEF, 0x8C, 0x95, 0x61, 0x16, 0x83, 0x8C, 0xD7, 0x57, 0x41,
0x8A, 0xE2, 0xE8, 0x1A, 0x23, 0xED, 0xC4, 0x73, 0x2B, 0x0C, 0xD9, 0xC0, 0x66, 0x8E, 0xA0, 0xC8,
0x0D, 0xFF, 0x43, 0x33, 0x13, 0xF4, 0x36, 0x6E, 0xA0, 0x63, 0xF6, 0x68, 0x69, 0x65, 0x59, 0x9E,
0xD6, 0xD9, 0x2D, 0xAB, 0x16, 0x8E, 0xEF, 0xBA, 0x12, 0x51, 0x0B, 0xA9, 0x54, 0xC0, 0x8C, 0xBF,
0x38, 0x01, 0xA0, 0xFD, 0xB4, 0x9E, 0x4D, 0xF8, 0x19, 0xA8, 0x88, 0x88, 0x69, 0x62, 0xD1, 0x43,
0xEC, 0x1C, 0x13, 0x3F, 0x26, 0xB5, 0x64, 0x20, 0x09, 0xF8, 0x3C, 0xCC, 0x05, 0xF5, 0x82, 0xE3,
0x47, 0xAC, 0xC0, 0x74, 0x68, 0xA4, 0xF2, 0x6F, 0x80, 0x85, 0xE8, 0x54, 0x56, 0x17, 0xFF, 0xB4,
0xF9, 0xA3, 0x58, 0xC4, 0x58, 0xA8, 0xD3, 0x2C, 0xE8, 0x5E, 0x9D, 0x16, 0x24, 0xB0, 0x88, 0x3D,
0x79, 0x44, 0xE4, 0xA8, 0x0B, 0x19, 0x7F, 0xD7, 0x10, 0x40, 0x0A, 0xC3, 0x8C, 0xEB, 0xB5, 0x61,
0xEF, 0x01, 0xD9, 0xB0, 0x56, 0xEB, 0x9E, 0xC5, 0x52, 0x56, 0x32, 0x7B, 0xA5, 0xE5, 0x8B, 0x3D,
0x0A, 0x97, 0x03, 0x04, 0x8F, 0x14, 0x06, 0x04, 0x7D, 0xDC, 0x0B, 0xB6, 0x27, 0x49, 0x87, 0x8B,
0xDB, 0x44, 0x5B, 0x13, 0xE7, 0x51, 0x29, 0x64, 0x15, 0x21, 0xC6, 0x3E, 0x37, 0x84, 0x3F, 0xB5,
0xD7, 0xE7, 0x62, 0x2C, 0xDA, 0xF8, 0x87, 0x93, 0xF9, 0x1A, 0xC1, 0xFE, 0xC0, 0xF8, 0xF7, 0x73,
0x56, 0x4D, 0x74, 0x2F, 0xC0, 0x28, 0x26, 0xEA, 0xCD, 0xE9, 0x01, 0x3F, 0x0F, 0x57, 0x7B, 0x97,
0xDA, 0xC9, 0xC2, 0xD3, 0x0F, 0x72, 0xD4, 0xB3, 0x7C, 0x30, 0xBA, 0xAA, 0x73, 0x12, 0xD2, 0xE5,
0xEF, 0x14, 0x50, 0xF2, 0x12, 0xE2, 0x1E, 0x7D, 0xCB, 0xC4, 0xEF, 0xB6, 0xE1, 0x75, 0x7B, 0x0D,
0xA8, 0xB6, 0x61, 0x7D, 0x6D, 0xCE, 0xE9, 0x80, 0x19, 0x54, 0x52, 0x2A, 0x2B, 0x76, 0x97, 0x3F,
0xB4, 0xF6, 0x37, 0x97, 0xBE, 0xBA, 0xE8, 0x9F, 0x66, 0x39, 0xEC, 0x09, 0x2E, 0xCF, 0x7C, 0x2F,
0xF1, 0xFD, 0x9C, 0xDF, 0x87, 0xF5, 0x06, 0x19, 0x1F, 0x85, 0x1F, 0xC4, 0x86, 0x7A, 0x1D, 0xD5,
0x64, 0xF4, 0xB1, 0x75, 0x46, 0x22, 0x65, 0x2C, 0xC6, 0x19, 0xBA, 0x0F, 0xF9, 0x01, 0x7D, 0x83,
0x25, 0xA8, 0xFB, 0x96, 0xD6, 0xB0, 0x75, 0x9A, 0x71, 0xCC, 0xDE, 0xCC, 0xDD, 0xE6, 0xE3, 0x31,
0xF9, 0xE1, 0x65, 0x94, 0x34, 0x19, 0xA0, 0x77, 0x69, 0xCB, 0x98, 0x3F, 0xE9, 0xC1, 0x22, 0xEB,
0x04, 0x33, 0xFE, 0xB5, 0x42, 0x8D, 0x03, 0x21, 0x4C, 0x72, 0x2C, 0xFE, 0xE2, 0x27, 0x42, 0x00,
0xF4, 0x06, 0xBF, 0xD3, 0x2F, 0x35, 0xE2, 0x7A, 0x65, 0x54, 0x07, 0xAC, 0x20, 0xE3, 0x14, 0xA1,
0x0D, 0xA0, 0xDF, 0x88, 0x41, 0xE2, 0x7B, 0x75, 0x38, 0x96, 0xB3, 0x0E, 0x58, 0x16, 0xD4, 0x95,
0xB0, 0xE9, 0x1D, 0xFF, 0xAA, 0xC2, 0x26, 0xFE, 0xA8, 0x9F, 0x11, 0x15, 0xEA, 0xFD, 0x23, 0x82,
0xE6, 0x49, 0x13, 0x32, 0xB6, 0x22, 0x97, 0x03, 0x98, 0xCF, 0xDC, 0x0F, 0x0B, 0xED, 0x62, 0x8B,
0x9F, 0xA0, 0xE8, 0xF0, 0xBB, 0x9D, 0x15, 0x40, 0xDE, 0xEA, 0x42, 0x02, 0x45, 0x26, 0x71, 0x78,
0x03, 0x11, 0xE2, 0xB3, 0x57, 0x51, 0x5E, 0x78, 0xB6, 0xE6, 0xF1, 0x1A, 0x62, 0x09, 0x21, 0x55,
0x4D, 0x35, 0xF8, 0xB5, 0x79, 0x70, 0xA4, 0x76, 0x05, 0xB0, 0x29, 0xB0, 0x75, 0x38, 0x07, 0xC8,
0xB3, 0xFF, 0xE5, 0x88, 0x0D, 0xFA, 0xF7, 0x61, 0x08, 0xF7, 0x74, 0xF0, 0xDA, 0x6C, 0xA1, 0xF8,
0x83, 0xD3, 0x01, 0x35, 0x0A, 0xD8, 0x05, 0x64, 0x33, 0xC9, 0x24, 0xF4, 0xB0, 0x3D, 0xAC, 0xFB,
0xC7, 0x83, 0x7F, 0x32, 0x64, 0x28, 0xC0, 0x5B, 0x9D, 0x4F, 0x19, 0x9D, 0x90, 0x02, 0x72, 0xCC,
0x08, 0xF2, 0xCC, 0x36, 0x6C, 0xAE, 0xC0, 0x24, 0xF5, 0x1B, 0x99, 0x43, 0xF7, 0x43, 0x19, 0x78,
0xF5, 0x8A, 0x51, 0x11, 0x3A, 0xDC, 0x23, 0xDA, 0xCC, 0x68, 0x96, 0x2C, 0xB7, 0x51, 0xE9, 0xF1,
0x5C, 0x94, 0xBF, 0x78, 0x49, 0x77, 0x79, 0x79, 0x8B, 0x97, 0x6E, 0x5B, 0xB4, 0x08, 0xBF, 0xEF,
0x6D, 0x7F, 0x0A, 0xE4, 0xCB, 0x53, 0x30, 0xFE, 0x27, 0x3A, 0xD9, 0xED, 0xB7, 0x80, 0x1D, 0x40,
0x64, 0x27, 0xB4, 0xFD, 0x3A, 0xB6, 0xF3, 0x18, 0xBF, 0x5A, 0x75, 0x31, 0xF8, 0x7F, 0x56, 0x73,
0xD7, 0xCB, 0x6F, 0x3E, 0x96, 0xDF, 0x99, 0x14, 0xCB, 0x0F, 0x3D, 0x24, 0x21, 0xF3, 0x97, 0xD9,
0x17, 0x5E, 0xCF, 0xE3, 0xBB, 0x11, 0x45, 0xF6, 0x5B, 0x4F, 0x93, 0xDB, 0x17, 0xA4, 0xAF, 0x42,
0x3F, 0xE1, 0x49, 0x9D, 0xA5, 0x35, 0x82, 0xC7, 0x2B, 0xE3, 0x7E, 0x08, 0x24, 0xBF, 0x1D, 0x45,
0x53, 0xAA, 0xDD, 0x33, 0x57, 0xB0, 0x38, 0x38, 0x1E, 0xBA, 0xF7, 0x83, 0xBC, 0x6D, 0xB1, 0xD4,
0xB3, 0x53, 0x58, 0xDD, 0xA1, 0x5A, 0x80, 0x9E, 0x74, 0x12, 0x8D, 0xE5, 0x56, 0x1C, 0x83, 0x72,
0x94, 0x83, 0x52, 0xBA, 0xC1, 0x2E, 0x67, 0xAC, 0xF8, 0x0A, 0x46, 0x95, 0x7B, 0x7C, 0x2A, 0x13,
0x0B, 0x1A, 0x88, 0xF1, 0xFF, 0x9C, 0xC0, 0xDF, 0x18, 0x79, 0x17, 0x75, 0xB8, 0xC9, 0x96, 0xDB,
0x78, 0x96, 0x5A, 0x47, 0xCD, 0x29, 0x37, 0xCB, 0xA3, 0x4C, 0x7D, 0x23, 0xF5, 0x87, 0xF2, 0x85,
0x0F, 0x5A, 0xAD, 0x9B, 0xB2, 0xDA, 0xFA, 0x1D, 0xD5, 0x34, 0xA8, 0x4C, 0x48, 0xF4, 0x1D, 0x30,
0xB8, 0xD2, 0x11, 0xAB, 0x31, 0x17, 0xCD, 0x53, 0xA1, 0x35, 0x2F, 0x26, 0x28, 0x50, 0xB3, 0x68,
0x9E, 0x76, 0x8D, 0x1D, 0xBF, 0x6D, 0x92, 0xF6, 0x7F, 0x01, 0xD5, 0x5A, 0x3D, 0x8C, 0xDC, 0x66,
0x7A, 0x7E, 0x49, 0x4A, 0xA2, 0x13, 0xFA, 0x4C, 0x17, 0x36, 0x90, 0x40, 0xB1, 0x79, 0x85, 0x8B,
0x20, 0x38, 0x89, 0x8D, 0x0B, 0x17, 0xBB, 0xFB, 0xD1, 0x56, 0xE1, 0xE2, 0x0A, 0x0B, 0x81, 0xD6,
0x29, 0x5C, 0xE8, 0x8A, 0x74, 0x29, 0xB6, 0x71, 0x61, 0x20, 0xBB, 0x33, 0xB4, 0x5C, 0x24, 0xC0,
0x15, 0x52, 0x97, 0x22, 0xC5, 0xA5, 0x3E, 0x21, 0x58, 0x17, 0x57, 0x08, 0xC1, 0xEC, 0x90, 0xB2,
0x0A, 0x17, 0x2E, 0x4C, 0xCB, 0x31, 0x5C, 0x5C, 0x61, 0x9E, 0xAD, 0xC3, 0x01, 0x56, 0x21, 0xDA,
0xA6, 0xEF, 0xA8, 0x15, 0xC9, 0xEF, 0x9E, 0xE7, 0xFD, 0x38, 0xB3, 0x92, 0x56, 0x06, 0x82, 0xC0,
0x4E, 0xE4, 0x91, 0x86, 0xB3, 0x33, 0x24, 0xBF, 0xF7, 0xFF, 0x79, 0x7F, 0x3E, 0x4A, 0x94, 0xFB,
0xBD, 0x98, 0xD2, 0xAF, 0x45, 0x5F, 0x9E, 0x78, 0xB5, 0x9C, 0x11, 0xBF, 0x92, 0x4D, 0x09, 0x4A,
0xD9, 0x95, 0xA8, 0x94, 0x4E, 0xE2, 0xDC, 0x6B, 0x25, 0xCD, 0x82, 0x46, 0x8C, 0x84, 0xB5, 0x8C,
0x12, 0x57, 0x1E, 0xEE, 0xCA, 0x03, 0xDE, 0xE5, 0x9D, 0xC7, 0xA1, 0xC3, 0x7B, 0x13, 0xEF, 0x04,
0x6F, 0xDC, 0x22, 0xBA, 0x5E, 0x8B, 0x4F, 0x5B, 0x4B, 0x64, 0xAD, 0x24, 0xD6, 0x96, 0xF1, 0xE7,
0x37, 0x9B, 0xB8, 0x6A, 0x24, 0xAA, 0x36, 0x24, 0x68, 0x9E, 0x17, 0xBF, 0x8D, 0x32, 0xE9, 0x41,
0xC5, 0x48, 0x23, 0x71, 0xF9, 0x12, 0x7E, 0x7C, 0x4E, 0xA4, 0xC7, 0x8F, 0xE6, 0x5C, 0xF9, 0x44,
0xD4, 0x34, 0x89, 0x67, 0xAF, 0xCD, 0xF3, 0xD4, 0xDA, 0xCC, 0xB7, 0x23, 0xD6, 0xBD, 0x05, 0x62,
0x0D, 0xD6, 0xBD, 0x36, 0x11, 0x8B, 0xF1, 0x0E, 0x57, 0xC4, 0x3A, 0x59, 0xBF, 0x4E, 0x0F, 0x3C,
0x69, 0x41, 0x3E, 0x38, 0x2C, 0x70, 0xBE, 0xC7, 0x3F, 0x49, 0xB2, 0xB8, 0x04, 0x05, 0x32, 0xB5,
0xC7, 0x8B, 0xF0, 0x4D, 0x78, 0x0A, 0xAF, 0x34, 0xC7, 0xE1, 0x1F, 0xEE, 0x6E, 0x67, 0xB8, 0xC9,
0xF6, 0xE2, 0x59, 0x50, 0x14, 0x29, 0xF4, 0xAA, 0x7A, 0x7D, 0x55, 0xC2, 0x1B, 0x7C, 0x25, 0x63,
0x78, 0x08, 0xC8, 0xCA, 0x33, 0x58, 0xEB, 0x85, 0x00, 0x37, 0xD8, 0xDC, 0xE0, 0xD0, 0x04, 0xAD,
0xB7, 0x3F, 0x4C, 0x6C, 0xBC, 0x8B, 0x6B, 0x4A, 0xE3, 0x8F, 0xE7, 0x9A, 0xE0, 0xB6, 0xBD, 0x57,
0x8B, 0x39, 0xB4, 0x15, 0x84, 0x8F, 0x6A, 0x09, 0x2A, 0x2C, 0xE9, 0x53, 0x9B, 0xAA, 0x5C, 0xEA,
0xBA, 0xC2, 0x27, 0x7E, 0x09, 0x1A, 0xAF, 0x13, 0x6F, 0x84, 0x4D, 0x7C, 0x2C, 0x57, 0x06, 0x5F,
0xD9, 0x76, 0xE1, 0xD5, 0x27, 0xCF, 0xC7, 0xD9, 0xD3, 0x58, 0x11, 0x9A, 0xB1, 0x75, 0x6A, 0xFF,
0x60, 0x7B, 0xDF, 0xF6, 0xD1, 0x5D, 0xA1, 0xE9, 0xF0, 0x1B, 0xB9, 0x8A, 0x2A, 0x30, 0x88, 0x7B,
0x65, 0xE0, 0xAA, 0x51, 0x4D, 0x23, 0x18, 0x8F, 0x2A, 0x68, 0xB7, 0xA8, 0x8C, 0xCB, 0xB6, 0x14,
0x3B, 0x5A, 0x5C, 0x10, 0x8D, 0x64, 0x6E, 0x8E, 0xF3, 0x27, 0xDF, 0xB8, 0xBB, 0x2D, 0x02, 0x3A,
0x35, 0x05, 0x27, 0xDB, 0x33, 0x9E, 0xC2, 0x52, 0xC2, 0x75, 0x56, 0x4A, 0xF2, 0x28, 0xFE, 0x29,
0x5A, 0x40, 0x78, 0xA9, 0x1A, 0x78, 0x41, 0xB6, 0x5B, 0x98, 0x1B, 0x3C, 0xA7, 0x02, 0x3F, 0xD8,
0xA4, 0x25, 0x16, 0x12, 0xE5, 0xF2, 0xE0, 0x0B, 0x82, 0xAD, 0x9D, 0x68, 0x75, 0xC3, 0x16, 0x7F,
0xD5, 0x1B, 0xC4, 0x2B, 0x72, 0xC8, 0x54, 0x86, 0x87, 0x36, 0xDF, 0x92, 0x25, 0x54, 0xDA, 0xA5,
0xA5, 0x5F, 0xDE, 0xCB, 0x25, 0xFC, 0x55, 0x26, 0x67, 0xD2, 0x4C, 0x7E, 0x93, 0x66, 0x7E, 0x95,
0xE6, 0x51, 0x9E, 0x94, 0x31, 0x2C, 0x98, 0xE6, 0x49, 0x6E, 0xF2, 0x54, 0xD2, 0x72, 0x03, 0x6F,
0xAC, 0x77, 0x03, 0x72, 0x5F, 0x86, 0x71, 0x36, 0x20, 0xEE, 0xEF, 0x1A, 0x29, 0x5E, 0x2B, 0xFD,
0xDE, 0xE0, 0xE2, 0xE2, 0xF6, 0x00, 0x6E, 0x4B, 0x99, 0xC3, 0x69, 0xE2, 0x7C, 0xCF, 0x94, 0xA3,
0x79, 0x7B, 0x38, 0x4B, 0x2F, 0xD9, 0xB9, 0x4B, 0x3B, 0x5A, 0xAA, 0x22, 0xB4, 0xBF, 0xA6, 0x49,
0x5A, 0x68, 0x1C, 0x7E, 0xED, 0x9D, 0x8F, 0xAA, 0xA0, 0x8E, 0x6C, 0xBE, 0xF0, 0x9B, 0xD8, 0x36,
0x71, 0xDE, 0xD2, 0x53, 0x9B, 0xDD, 0xA0, 0x8A, 0xE5, 0xCC, 0x19, 0xBF, 0xF1, 0xB3, 0xF0, 0xB2,
0xBA, 0xD9, 0x37, 0x25, 0xBD, 0x6F, 0xA3, 0x89, 0xE1, 0x25, 0xF1, 0x06, 0x64, 0x91, 0xE0, 0x43,
0x3D, 0xF1, 0x75, 0x95, 0xE2, 0xF8, 0xD6, 0x6E, 0xD0, 0xFA, 0xD9, 0x99, 0x38, 0x2B, 0x6C, 0x15,
0xFB, 0x4D, 0x68, 0xEB, 0x18, 0xC2, 0x3D, 0x9B, 0x45, 0x25, 0x62, 0x87, 0xDA, 0x2D, 0x32, 0x49,
0xEA, 0x89, 0xB8, 0xC0, 0xBD, 0xA9, 0xB3, 0x1D, 0xD5, 0x77, 0xFA, 0x2B, 0x68, 0x23, 0x37, 0x51,
0x99, 0x7A, 0x58, 0xFD, 0x5A, 0x58, 0x6E, 0xF8, 0x75, 0x22, 0xD7, 0x20, 0x77, 0xF2, 0xC5, 0xAB,
0xD6, 0x94, 0x07, 0x47, 0xFA, 0xF5, 0xE0, 0x75, 0xEF, 0x59, 0xAC, 0xE0, 0xC9, 0x09, 0x49, 0xF2,
0x85, 0xCC, 0x40, 0xB5, 0x8B, 0xAB, 0xB8, 0x36, 0x99, 0xB9, 0x3E, 0x4A, 0x11, 0x74, 0xFA, 0x36,
0x2F, 0xF7, 0xF0, 0x8C, 0x25, 0xE4, 0x4B, 0x11, 0x3D, 0xB0, 0xC4, 0x9B, 0x7E, 0xB9, 0xBD, 0xBD,
0xFD, 0xF7, 0x30, 0xFB, 0x6F, 0x9D, 0xA3, 0xC3, 0x85, 0xE9, 0x28, 0x61, 0xC5, 0x20, 0xC1, 0xD7,
0x67, 0x79, 0xF2, 0x03, 0x04, 0xAD, 0x9C, 0x86, 0xCD, 0x13, 0xAB, 0xBA, 0xE9, 0x11, 0x79, 0x7E,
0xBD, 0x61, 0xBA, 0xF8, 0xD5, 0xB7, 0xBF, 0xAE, 0x5F, 0x7A, 0x37, 0x8E, 0xFD, 0x0F, 0xE5, 0xAB,
0xFA, 0xB9, 0x26, 0xEE, 0xBC, 0xCF, 0xE4, 0x5E, 0x86, 0x3F, 0xCE, 0x78, 0xBF, 0x95, 0xA6, 0xFD,
0xD9, 0x5B, 0xE6, 0xC6, 0xC7, 0xEF, 0xC0, 0xB4, 0x2D, 0xB0, 0xE0, 0x2C, 0x3C, 0x0A, 0x6E, 0x49,
0xB7, 0xF1, 0x8A, 0x5A, 0xD6, 0x2B, 0x7B, 0x36, 0x8B, 0xE1, 0xC9, 0x57, 0xBB, 0x4D, 0xE9, 0x77,
0x65, 0x77, 0xA1, 0xFF, 0x67, 0xD2, 0x9B, 0xDB, 0x2D, 0x7E, 0xF7, 0xC7, 0x8C, 0xDE, 0x02, 0x3F,
0xD1, 0xB0, 0x26, 0xCA, 0xB8, 0xAF, 0x40, 0x12, 0xBB, 0x03, 0x4F, 0xDD, 0xBE, 0xF8, 0xC9, 0xF9,
0xE3, 0x67, 0xEF, 0xC3, 0x00, 0x0F, 0x12, 0xFE, 0x7C, 0xBA, 0x58, 0x92, 0x56, 0x95, 0xFA, 0x6F,
0x4D, 0x2A, 0x8B, 0x10, 0xDE, 0xCA, 0xCB, 0xE1, 0xD8, 0xEE, 0x3F, 0xA2, 0x3A, 0xC9, 0x81, 0x6D,
0x62, 0xB6, 0x2F, 0xC0, 0x14, 0x21, 0x35, 0x92, 0xD6, 0x62, 0xFB, 0xE0, 0xDB, 0x83, 0x20, 0x87,
0x9D, 0x77, 0xA9, 0x9C, 0x1D, 0x04, 0x4F, 0x2D, 0xAF, 0xB4, 0xFC, 0x1B, 0xFF, 0xC3, 0xE6, 0xD9,
0xA2, 0x9A, 0x5B, 0x31, 0xB7, 0xE8, 0xE1, 0x79, 0xFA, 0x72, 0x1F, 0x57, 0x03, 0x9D, 0x85, 0x81,
0x92, 0xC9, 0x3F, 0xD2, 0xC8, 0x07, 0xA2, 0x70, 0x89, 0x40, 0x07, 0x95, 0x2D, 0xC2, 0x66, 0x42,
0x14, 0xD5, 0x33, 0xFE, 0xB1, 0x33, 0x7E, 0xCB, 0xCF, 0x81, 0x91, 0x3C, 0x17, 0x00, 0xAC, 0x01,
0x2A, 0x96, 0x67, 0xDA, 0x67, 0xE2, 0x71, 0x69, 0xFE, 0x33, 0xB4, 0x63, 0x34, 0xFA, 0x9F, 0x0F,
0x38, 0xAF, 0x12, 0x6E, 0x69, 0x68, 0xD2, 0x13, 0x68, 0x33, 0xE0, 0xE8, 0x1A, 0xA3, 0x14, 0x98,
0x9E, 0xCA, 0x9C, 0x12, 0x4E, 0xD1, 0xB3, 0x52, 0xBA, 0xC8, 0xDC, 0xCE, 0x32, 0x1C, 0x2E, 0x13,
0x3F, 0x3E, 0x2E, 0xF1, 0x5B, 0x03, 0xC0, 0xB5, 0xFD, 0x5B, 0xF0, 0x41, 0x7B, 0x86, 0x78, 0x87,
0x33, 0xC5, 0xFA, 0x4C, 0xC8, 0x33, 0x08, 0x9E, 0xB3, 0x74, 0x4E, 0x9C, 0xF1, 0x79, 0x46, 0x4E,
0x34, 0xC4, 0xBB, 0x8D, 0xB7, 0x88, 0x84, 0x67, 0x49, 0xFA, 0x97, 0x20, 0xE3, 0xF3, 0x8C, 0x1C,
0x9D, 0x79, 0x5E, 0x61, 0xF9, 0x22, 0xB5, 0xF2, 0x59, 0x26, 0x4F, 0x04, 0x50, 0x66, 0x74, 0xFB,
0x4B, 0x97, 0x06, 0xB0, 0xDA, 0x15, 0x85, 0x97, 0x4B, 0xBD, 0xB9, 0xD1, 0x9F, 0x15, 0x0F, 0x6E,
0x6A, 0xB3, 0x3D, 0xAF, 0x49, 0x5E, 0x69, 0xCF, 0x2A, 0xC3, 0x0B, 0xDF, 0x96, 0xA6, 0x83, 0x13,
0x7A, 0x0A, 0x2A, 0x04, 0x0A, 0x08, 0xB8, 0x58, 0xC1, 0x47, 0x62, 0xCF, 0x01, 0xD3, 0x43, 0xFC,
0x69, 0xF3, 0xF8, 0x3D, 0xB8, 0xF2, 0x1E, 0x22, 0xF3, 0xE5, 0x26, 0xAC, 0x10, 0xAF, 0x29, 0xF2,
0x46, 0xB9, 0xE7, 0xB5, 0x33, 0x31, 0xA3, 0xF8, 0x77, 0x27, 0x2F, 0x80, 0x64, 0x15, 0x7C, 0xCF,
0xCB, 0x4E, 0x08, 0x83, 0xD8, 0x6B, 0xB1, 0xD2, 0x40, 0xB3, 0x00, 0x38, 0xD3, 0x72, 0x84, 0xF1,
0x0B, 0x61, 0xAC, 0xD8, 0xA0, 0x63, 0xE8, 0x44, 0x08, 0x9D, 0x34, 0xEB, 0x65, 0xC3, 0xAB, 0x1F,
0x42, 0x31, 0xE4, 0x25, 0x6F, 0xE1, 0xF0, 0x30, 0xB2, 0xEE, 0x33, 0x60, 0xD8, 0x52, 0xFF, 0x7C,
0xD3, 0x09, 0x99, 0x9A, 0x34, 0x27, 0x2C, 0xA6, 0x34, 0x65, 0x5C, 0x0A, 0x54, 0x4B, 0x75, 0x93,
0xB1, 0x16, 0x08, 0x22, 0x58, 0x9F, 0x88, 0xDF, 0xF1, 0x42, 0x40, 0xE1, 0x40, 0x7B, 0xA6, 0xE2,
0xDF, 0xE1, 0x85, 0xC0, 0xC7, 0x4F, 0xCB, 0xF9, 0x20, 0x71, 0xE6, 0x7F, 0xDE, 0x18, 0x44, 0x49,
0xEE, 0xD7, 0x9D, 0x42, 0xAE, 0x57, 0x6F, 0xEA, 0x1A, 0xD0, 0x17, 0xD5, 0x5B, 0x7B, 0x77, 0xDF,
0xF8, 0x6F, 0xA1, 0x27, 0x59, 0x46, 0xAA, 0x47, 0x1F, 0x07, 0xDC, 0xAD, 0x13, 0x71, 0x3F, 0xE5,
0xC7, 0x83, 0x29, 0x47, 0x12, 0xD9, 0x3D, 0xE8, 0x3F, 0x94, 0xE3, 0x2F, 0x8F, 0x0E, 0x73, 0xC5,
0xC5, 0x4F, 0xD8, 0x3B, 0x09, 0x12, 0xC2, 0x3D, 0x91, 0x61, 0x67, 0x8A, 0x2D, 0x72, 0x4F, 0x89,
0xC8, 0x3D, 0x61, 0x82, 0x14, 0xD4, 0x07, 0xB7, 0xA6, 0x34, 0x01, 0x34, 0x0C, 0x4B, 0xEF, 0x02,
0x2F, 0x0C, 0xAA, 0xD0, 0x96, 0xCC, 0x66, 0x40, 0xD3, 0x4E, 0x53, 0x5D, 0xD8, 0x18, 0x5C, 0xE8,
0x35, 0x3E, 0x12, 0x13, 0xDC, 0xA0, 0x95, 0x9F, 0xFA, 0x0D, 0x80, 0x85, 0xAA, 0x6A, 0xFF, 0xEE,
0xD7, 0x08, 0xB2, 0x23, 0xCE, 0x3B, 0xB7, 0x26, 0x73, 0x19, 0x83, 0x55, 0x3F, 0x41, 0xD0, 0x9F,
0x54, 0xA9, 0x2A, 0xA6, 0xFE, 0x99, 0xAF, 0x11, 0x4D, 0x80, 0xC1, 0x86, 0xB1, 0x03, 0xFF, 0x6E,
0x9D, 0xDE, 0x8F, 0xBD, 0x98, 0x3A, 0x2F, 0xB8, 0x5C, 0x24, 0xF3, 0xD6, 0xB1, 0x9E, 0x50, 0x59,
0x58, 0x36, 0xA8, 0x0F, 0x9C, 0xF9, 0x5E, 0xE4, 0x59, 0x0D, 0xA2, 0xDD, 0x49, 0x40, 0x3D, 0xCB,
0xCF, 0xE9, 0x44, 0x32, 0xB8, 0xFA, 0x46, 0x6E, 0x37, 0x5C, 0x0A, 0x75, 0x0A, 0xAE, 0xE8, 0x18,
0xB2, 0xAC, 0x8E, 0x84, 0xB0, 0x8E, 0x1A, 0xA9, 0x94, 0xB3, 0x88, 0x72, 0x24, 0x32, 0x89, 0x2E,
0x7A, 0xFB, 0x3D, 0x2D, 0xFB, 0x79, 0x03, 0xAC, 0x80, 0x11, 0xAE, 0x6D, 0x05, 0x40, 0xB6, 0x56,
0x9E, 0x27, 0x29, 0x96, 0x52, 0xE5, 0xAE, 0x33, 0xAD, 0x9A, 0x72, 0x6D, 0x42, 0x43, 0x99, 0x7A,
0x57, 0x47, 0xD1, 0x81, 0xBC, 0x76, 0xB2, 0x25, 0xCD, 0x40, 0x09, 0x55, 0xDD, 0x7F, 0x8D, 0xF7,
0x8B, 0x0F, 0x4B, 0x8A, 0xD8, 0x80, 0x77, 0xE7, 0x6B, 0x20, 0x7C, 0x46, 0x22, 0x94, 0x08, 0x0D,
0x6D, 0x62, 0xE8, 0x71, 0x28, 0xD9, 0x78, 0x00, 0xCB, 0x00, 0xBD, 0x9E, 0x52, 0x40, 0x04, 0x28,
0x7D, 0x38, 0x85, 0x54, 0xE2, 0xDB, 0xD6, 0xB3, 0xD9, 0x7A, 0xAD, 0xA7, 0xF4, 0x18, 0x6A, 0x28,
0xF8, 0x56, 0xBF, 0x18, 0x55, 0xAF, 0xE7, 0xBE, 0x9C, 0xCA, 0x8F, 0x29, 0xFA, 0x67, 0x7A, 0x9C,
0xBB, 0x6B, 0xB5, 0x8A, 0x48, 0x95, 0x93, 0xD8, 0xD5, 0x15, 0x97, 0xC9, 0x77, 0x70, 0xA3, 0x51,
0xFF, 0x1D, 0x54, 0x98, 0x94, 0xF4, 0x3A, 0x25, 0xB2, 0xAB, 0x75, 0xC6, 0xA6, 0x3A, 0x59, 0xAA,
0x32, 0xC6, 0x59, 0x00, 0xD1, 0x01, 0xFA, 0x23, 0x53, 0x35, 0x75, 0x13, 0x7C, 0xBB, 0xFD, 0x46,
0xA3, 0x0A, 0xE9, 0xF5, 0x3F, 0xAA, 0x9F, 0x03, 0x2D, 0xD2, 0x70, 0x13, 0x63, 0x9A, 0x65, 0x5B,
0x56, 0x00, 0x01, 0xEC, 0x50, 0xD8, 0xDC, 0xB7, 0xF7, 0x89, 0x23, 0xF2, 0xA6, 0x1E, 0x97, 0x4E,
0x04, 0x32, 0x1F, 0xB8, 0xE3, 0xA8, 0x17, 0xDD, 0x92, 0x1F, 0x8B, 0x38, 0xCF, 0x38, 0x86, 0xF4,
0x6F, 0xA3, 0xD8, 0x6F, 0xB4, 0x56, 0x35, 0x3F, 0xAF, 0x95, 0x5D, 0x02, 0xD5, 0x59, 0xF9, 0xCB,
0x1F, 0x89, 0x38, 0x49, 0xFE, 0x1F, 0x5C, 0xB2, 0x67, 0x28, 0xC4, 0xFB, 0x44, 0x9D, 0xE0, 0x92,
0x73, 0xB0, 0x67, 0xE5, 0x3B, 0x5E, 0xEF, 0xCA, 0xAA, 0x2A, 0x45, 0x9A, 0x52, 0x35, 0x14, 0xEA,
0xA5, 0x9B, 0x2A, 0xCE, 0x59, 0x4D, 0x82, 0xB1, 0xC3, 0xA4, 0x77, 0x5A, 0xC5, 0xBF, 0x03, 0x15,
0x0A, 0x3E, 0x0F, 0xA1, 0xC2, 0x46, 0xC3, 0xCA, 0xE1, 0x9C, 0x51, 0xA1, 0x62, 0x57, 0x87, 0x75,
0x84, 0x05, 0xA2, 0x69, 0xFC, 0xC9, 0x36, 0x32, 0x3E, 0x81, 0xAC, 0x51, 0xBC, 0x19, 0x14, 0x7D,
0x0C, 0x43, 0x86, 0xA1, 0x8D, 0xD5, 0xFC, 0xC1, 0xC7, 0xE5, 0x91, 0xFD, 0x23, 0xA4, 0x8F, 0xB4,
0x74, 0x5E, 0x10, 0x18, 0x65, 0x7E, 0x89, 0x7F, 0xA7, 0x95, 0x55, 0xC4, 0x4C, 0xB2, 0x47, 0x0B,
0xE0, 0x6B, 0xEF, 0xA1, 0x8C, 0x10, 0xFF, 0x35, 0xC0, 0x34, 0x9A, 0xFE, 0xA4, 0x72, 0x5C, 0x53,
0xD1, 0x36, 0x54, 0x8E, 0x2D, 0xF2, 0x26, 0xC9, 0x84, 0x7E, 0x33, 0x95, 0x86, 0x9D, 0x48, 0x50,
0x91, 0x31, 0xD0, 0xEC, 0x55, 0x1A, 0x7A, 0x43, 0xA1, 0xD5, 0xF9, 0x5C, 0xB1, 0xC3, 0x6C, 0x6F,
0x17, 0x8A, 0x60, 0xAE, 0xCA, 0x09, 0xB4, 0xF0, 0x40, 0x5D, 0xC1, 0x9B, 0x50, 0x61, 0xD3, 0x70,
0x6D, 0x84, 0xCB, 0x53, 0x14, 0x81, 0x1D, 0x8E, 0x5C, 0xDE, 0x57, 0xB2, 0x81, 0xD5, 0x3E, 0xE7,
0x50, 0x75, 0xD9, 0x2A, 0xDE, 0x6D, 0x84, 0x4E, 0x97, 0xB5, 0x32, 0xDA, 0x1C, 0xF9, 0x9D, 0xB6,
0x7E, 0xAB, 0x57, 0x24, 0xEB, 0x2E, 0x49, 0x62, 0x3D, 0xED, 0x3A, 0x8D, 0xE0, 0x33, 0x8A, 0xE6,
0x7F, 0xA1, 0xF7, 0x35, 0x4A, 0xA3, 0x53, 0xE7, 0xDD, 0xD5, 0x46, 0x63, 0xCB, 0x01, 0xBC, 0xFA,
0x25, 0x2B, 0x7C, 0xE2, 0x1E, 0xB9, 0x04, 0x36, 0x0D, 0x5A, 0xA7, 0x43, 0x33, 0xEC, 0xC8, 0x68,
0x86, 0xED, 0xD7, 0x7B, 0x4D, 0x4A, 0x46, 0xFF, 0x43, 0x33, 0x70, 0x29, 0x00, 0x1A, 0x6F, 0x2A,
0x54, 0xC0, 0xB4, 0x4A, 0x71, 0x79, 0x81, 0xBA, 0xAF, 0xC6, 0xB1, 0xD2, 0x48, 0x77, 0x45, 0x2E,
0xF5, 0x32, 0xFD, 0xF0, 0xC9, 0xEB, 0xCA, 0x0A, 0x2E, 0xD9, 0xD5, 0x4F, 0x00, 0xB2, 0x56, 0x1F,
0xBD, 0x84, 0xBC, 0x70, 0xCF, 0x38, 0x79, 0xB6, 0x12, 0x07, 0x70, 0x26, 0x72, 0xD5, 0x40, 0x1A,
0xB4, 0x4E, 0xC2, 0x6C, 0xDC, 0x3E, 0xAF, 0xD6, 0x30, 0x6A, 0xF8, 0xB8, 0x4C, 0xE8, 0x33, 0x60,
0xDB, 0x5D, 0x88, 0x58, 0x68, 0x9D, 0x22, 0xAD, 0x53, 0xE8, 0xDD, 0x6D, 0x0D, 0x4F, 0x28, 0x1D,
0x2B, 0x3E, 0xCD, 0x84, 0x86, 0x0B, 0x63, 0x46, 0x08, 0xCD, 0x92, 0xBB, 0x60, 0x81, 0xB3, 0x01,
0x99, 0xE6, 0xDB, 0xFF, 0xD4, 0x00, 0x86, 0x29, 0x75, 0x27, 0x76, 0xE0, 0x27, 0x49, 0x9C, 0xB6,
0x57, 0x28, 0x08, 0xFA, 0xEE, 0xF1, 0xAA, 0x65, 0xEC, 0xCE, 0x60, 0x4A, 0xD9, 0x84, 0xE8, 0xB0,
0x0D, 0x84, 0xD9, 0xA5, 0x93, 0x3C, 0xAD, 0xAA, 0xD7, 0x90, 0x35, 0xEB, 0x40, 0x3F, 0x3A, 0x14,
0xEB, 0x83, 0xFB, 0x4D, 0xAF, 0xC3, 0x1D, 0x4F, 0xA7, 0xB8, 0x17, 0x55, 0x3C, 0xF4, 0xC7, 0x8E,
0x24, 0x17, 0x25, 0x49, 0x8A, 0x53, 0x71, 0xD0, 0x29, 0x46, 0xF2, 0xAF, 0x62, 0x5D, 0x7C, 0x2E,
0x56, 0x65, 0x27, 0x73, 0xA3, 0x9C, 0x3C, 0xAA, 0x22, 0x34, 0x83, 0xB3, 0x46, 0xE3, 0xEA, 0xAA,
0x0E, 0xE7, 0xD8, 0x8B, 0xE3, 0x41, 0xC0, 0xAE, 0xB9, 0x67, 0xCA, 0x83, 0xC3, 0xA5, 0x9F, 0x6C,
0x6B, 0x22, 0x45, 0x0D, 0x01, 0xD7, 0xD0, 0xA0, 0x7B, 0x6A, 0x62, 0xD4, 0x25, 0xA0, 0x03, 0xF5,
0x2A, 0x05, 0xAD, 0x71, 0xFB, 0x82, 0xC6, 0xA9, 0xBA, 0x45, 0x3B, 0x75, 0xEF, 0xCE, 0x36, 0xE6,
0x28, 0xAC, 0xA0, 0xCC, 0x9F, 0xAA, 0x9E, 0x33, 0xB8, 0x91, 0xC7, 0xF9, 0x02, 0xFB, 0xE4, 0x61,
0xFB, 0x8D, 0xDA, 0xD1, 0x2D, 0x94, 0xEE, 0xD1, 0xEB, 0xCA, 0x5A, 0x33, 0x69, 0x33, 0xE5, 0xFA,
0xC9, 0x7F, 0xEF, 0x3E, 0x22, 0x80, 0x95, 0x6B, 0xB7, 0x10, 0xD6, 0xBC, 0x98, 0x93, 0x89, 0x96,
0x4C, 0xC4, 0xCA, 0x44, 0x3D, 0x31, 0x71, 0xAC, 0x9D, 0xFE, 0x3D, 0x6A, 0x16, 0x6F, 0x05, 0x34,
0xD9, 0x6A, 0x9A, 0x90, 0xAD, 0xA6, 0x09, 0x8E, 0x01, 0x70, 0xED, 0xAB, 0x00, 0x2D, 0x25, 0x4E,
0xD4, 0x51, 0x1A, 0xAA, 0x68, 0xE9, 0xE8, 0x46, 0x76, 0xF2, 0x2C, 0xA7, 0xF1, 0x71, 0x1D, 0x8F,
0xF1, 0x1D, 0x02, 0x43, 0xCB, 0x45, 0x06, 0xD6, 0x09, 0x0F, 0x25, 0x81, 0xC7, 0x43, 0xE1, 0x21,
0x7B, 0x64, 0x6F, 0xA4, 0x8B, 0xA4, 0x15, 0x4A, 0x26, 0xE4, 0x97, 0xEA, 0xF1, 0xF4, 0x0D, 0x7F,
0x9A, 0x67, 0x15, 0xB4, 0x99, 0x7B, 0xCB, 0xCE, 0x03, 0x6C, 0xAA, 0x13, 0x8C, 0x7A, 0x05, 0x4D,
0x19, 0xBB, 0x12, 0x99, 0x99, 0x89, 0x84, 0x48, 0x7C, 0x70, 0x96, 0x4D, 0x5C, 0x05, 0xFE, 0xF0,
0x45, 0xF5, 0x03, 0x17, 0x21, 0x10, 0x63, 0xB8, 0x86, 0xC3, 0x2D, 0x7D, 0x3D, 0xE1, 0x6A, 0x70,
0x46, 0x5F, 0xDA, 0x2B, 0x62, 0x79, 0x77, 0x1F, 0x76, 0xC4, 0x86, 0x33, 0x21, 0x70, 0xEF, 0x56,
0xA7, 0xAC, 0x5C, 0x2B, 0x9C, 0xDE, 0x84, 0x24, 0x52, 0x24, 0x44, 0x92, 0x09, 0x62, 0x1A, 0x49,
0xD2, 0xE7, 0xCC, 0xE4, 0x70, 0xB3, 0xA9, 0x2A, 0x1A, 0x5C, 0x65, 0xCC, 0xA5, 0xCC, 0x11, 0x7E,
0x4E, 0x41, 0x3E, 0x47, 0x62, 0x87, 0x6A, 0xC2, 0x66, 0x89, 0x75, 0x52, 0xB8, 0xD6, 0x4F, 0xFE,
0xCF, 0x78, 0x40, 0xC7, 0x80, 0x6C, 0x95, 0x56, 0x41, 0x8F, 0xE2, 0x76, 0xCF, 0x75, 0xBB, 0x0F,
0xD8, 0x40, 0x2F, 0xA5, 0x11, 0x74, 0x59, 0x92, 0x22, 0x79, 0x2D, 0x10, 0xE6, 0xF2, 0x88, 0x1F,
0x67, 0xFF, 0x93, 0x1F, 0xC9, 0x42, 0xAC, 0x39, 0x7E, 0x70, 0xBD, 0xF4, 0x15, 0xCD, 0x21, 0xB4,
0xF6, 0xB0, 0x0F, 0x9A, 0xEC, 0xD4, 0x1B, 0x45, 0xF0, 0x4E, 0xCB, 0x04, 0xEA, 0x46, 0xBC, 0x41,
0x8D, 0x3A, 0x6A, 0xD0, 0x5B, 0x97, 0x98, 0x4E, 0xEE, 0xFC, 0xFE, 0x82, 0x14, 0x31, 0xFD, 0x71,
0x8C, 0x99, 0xC7, 0x46, 0x05, 0xE9, 0x81, 0xF2, 0x73, 0x8A, 0x2A, 0x4C, 0x61, 0x73, 0x25, 0xBA,
0xD4, 0x6A, 0xE9, 0x80, 0x29, 0x9A, 0x9A, 0x28, 0x34, 0x31, 0xA0, 0xF8, 0x18, 0x5F, 0x47, 0x81,
0x63, 0x1C, 0x71, 0x3B, 0x21, 0x73, 0x9A, 0xA9, 0x9B, 0xD8, 0xCF, 0x35, 0x2B, 0xDF, 0x53, 0x63,
0xF9, 0x95, 0x43, 0xDB, 0xEC, 0x99, 0xEF, 0x2A, 0x9D, 0x80, 0x13, 0xA8, 0xBE, 0xC4, 0x00, 0x52,
0x20, 0x1B, 0x6B, 0x0F, 0xA6, 0xD0, 0x51, 0x3B, 0xAD, 0xC0, 0xAA, 0x3D, 0x58, 0x15, 0x1B, 0xA6,
0x31, 0x0E, 0x27, 0x24, 0xFA, 0xB0, 0xA2, 0x0B, 0xC6, 0x1F, 0x34, 0xC4, 0xF0, 0xF8, 0x86, 0x16,
0x4E, 0xF1, 0xA5, 0xCE, 0x8D, 0x54, 0x7B, 0x76, 0x1A, 0xA9, 0x8C, 0xAC, 0xF9, 0x8C, 0xCC, 0x59,
0x02, 0x19, 0x31, 0xAF, 0x34, 0x4C, 0x13, 0x09, 0x4B, 0xC9, 0x3D, 0x89, 0x3F, 0xAE, 0x09, 0xFF,
0xD1, 0x1F, 0xB4, 0x8B, 0x0A, 0xEE, 0xE9, 0x3C, 0xD6, 0x9F, 0x5A, 0x55, 0x90, 0xF2, 0xDD, 0x47,
0xCA, 0x59, 0x1D, 0xA7, 0x10, 0xB9, 0x98, 0x63, 0x5C, 0x6F, 0x1C, 0x15, 0x7C, 0xA1, 0x02, 0x69,
0xE4, 0x8A, 0x26, 0x57, 0x02, 0xFE, 0xE2, 0xA1, 0xAB, 0x77, 0x58, 0xD0, 0x2B, 0x08, 0xF8, 0x48,
0x68, 0x25, 0xF3, 0x65, 0x51, 0xC2, 0x3E, 0xF0, 0x10, 0xE8, 0x15, 0xCC, 0xD2, 0xC1, 0x7A, 0x4E,
0x76, 0xC3, 0x46, 0xAB, 0x8E, 0x1B, 0x84, 0x61, 0xF3, 0x1A, 0x35, 0xD8, 0xF3, 0x87, 0xF0, 0x2B,
0x6D, 0xF7, 0x3E, 0x20, 0x58, 0x2C, 0x53, 0xC5, 0x54, 0xA6, 0xBE, 0xE4, 0x3D, 0xFE, 0x3C, 0x3A,
0xB7, 0xE6, 0xED, 0x73, 0xAE, 0x07, 0x20, 0x43, 0x1A, 0x2D, 0x72, 0x99, 0x1F, 0xEE, 0xB7, 0x74,
0x11, 0xE2, 0xF1, 0xE9, 0x71, 0xAA, 0xFC, 0x4E, 0x28, 0x9F, 0xF5, 0x6A, 0xE2, 0xEA, 0x52, 0x8A,
0xA7, 0xD3, 0x10, 0x57, 0x23, 0xBD, 0x20, 0x8F, 0x2F, 0xF7, 0xE9, 0x51, 0xEB, 0x97, 0x58, 0xB5,
0x00, 0xCF, 0xA6, 0x65, 0xAF, 0x71, 0xDE, 0xAC, 0x12, 0xD0, 0xE3, 0xC9, 0xBD, 0xE3, 0xCD, 0x54,
0xEF, 0x52, 0x84, 0xF7, 0xD9, 0xAF, 0xBC, 0xC6, 0xB3, 0x2F, 0x25, 0x9A, 0x02, 0x4E, 0x3E, 0x32,
0x3A, 0x1E, 0x1F, 0xEE, 0x93, 0xEC, 0x60, 0x95, 0x25, 0x09, 0x7D, 0x3A, 0xC3, 0x96, 0xEF, 0x7C,
0x69, 0xB5, 0x16, 0x6A, 0xF9, 0x5F, 0x7C, 0x59, 0x34, 0x74, 0x2D, 0x54, 0x31, 0x96, 0x29, 0x25,
0x62, 0x48, 0xE6, 0xE4, 0x8D, 0xC3, 0x60, 0x98, 0x50, 0x9B, 0x87, 0x86, 0xA4, 0xE2, 0x8F, 0xE9,
0x81, 0x86, 0x3F, 0x78, 0x8E, 0xFB, 0xAF, 0xC9, 0x66, 0xFA, 0x4B, 0x72, 0x3F, 0x90, 0xFB, 0xB0,
0x21, 0xF7, 0xE6, 0xED, 0x9E, 0x57, 0xF0, 0xF6, 0x84, 0xEB, 0x79, 0x23, 0xA7, 0x0C, 0x69, 0x2D,
0xC9, 0x78, 0x75, 0x98, 0xF4, 0x05, 0x80, 0xBC, 0x32, 0x4D, 0xCA, 0xFC, 0x0F, 0x2A, 0xBF, 0x1D,
0xFC, 0x2E, 0xBE, 0xD9, 0xC9, 0x88, 0xB4, 0xDD, 0x31, 0x72, 0x3D, 0x5B, 0x7A, 0x43, 0xEF, 0xF5,
0x71, 0x89, 0xC3, 0x42, 0x92, 0x7F, 0x15, 0x2F, 0xBF, 0x9F, 0xFD, 0x27, 0x75, 0x9D, 0xF7, 0x6B,
0x04, 0xC8, 0x55, 0x07, 0x4C, 0x8C, 0x14, 0x95, 0x80, 0x60, 0x18, 0x8E, 0x8A, 0xAE, 0x0A, 0x9E,
0xB2, 0x37, 0x67, 0x1A, 0x49, 0xCF, 0xB5, 0x01, 0x8B, 0x56, 0x93, 0x99, 0xCC, 0x6F, 0x03, 0xB6,
0x75, 0x07, 0x80, 0xD1, 0x02, 0x5E, 0x1B, 0x36, 0x11, 0x07, 0xDD, 0x4B, 0x29, 0x00, 0x48, 0x31,
0x58, 0x5E, 0x90, 0x85, 0x82, 0x5D, 0x43, 0x4E, 0x58, 0x83, 0x0C, 0x46, 0xB1, 0x9A, 0x18, 0x3F,
0xCF, 0x09, 0x8A, 0x29, 0xB7, 0x40, 0x0E, 0x0B, 0xD4, 0x70, 0xBF, 0xD3, 0xF2, 0xEC, 0x25, 0xAF,
0xB8, 0x7F, 0x20, 0x70, 0x42, 0xD6, 0xA5, 0x2F, 0xDB, 0xC0, 0xF5, 0x28, 0x24, 0x72, 0x08, 0x74,
0xF0, 0x28, 0xA3, 0xCC, 0x6D, 0xE5, 0x1A, 0x5D, 0x20, 0x6D, 0xA8, 0xB5, 0x88, 0x26, 0x79, 0x4D,
0x89, 0x46, 0x93, 0xE2, 0x96, 0x26, 0x9B, 0x99, 0xA6, 0x89, 0x3D, 0x3D, 0x2E, 0x34, 0x41, 0xF6,
0x9A, 0x88, 0x3A, 0x4D, 0x10, 0xAD, 0x16, 0x0B, 0x7A, 0x84, 0x30, 0xEB, 0x34, 0x11, 0xD4, 0x3C,
0xBA, 0xA6, 0x01, 0x37, 0x16, 0x9A, 0x55, 0xE7, 0x9A, 0xEF, 0x4C, 0x45, 0xB1, 0x52, 0xAD, 0x7F,
0x22, 0x57, 0x73, 0x15, 0x0F, 0x56, 0x0D, 0xBF, 0x58, 0x6F, 0x5F, 0xB9, 0x62, 0xD7, 0xE1, 0x51,
0xA8, 0x6D, 0x52, 0x5C, 0xFD, 0x48, 0x64, 0xD9, 0x3B, 0x1A, 0x45, 0x85, 0x7A, 0xC2, 0x45, 0xDD,
0x9C, 0xF5, 0x01, 0xAC, 0x4D, 0xD7, 0x3E, 0xAF, 0x93, 0xBF, 0xC7, 0x59, 0x8A, 0x3D, 0x9D, 0xED,
0x59, 0x42, 0x8C, 0x0B, 0x76, 0xE9, 0x82, 0xFA, 0x3B, 0xC3, 0xFC, 0xB1, 0xF5, 0xA8, 0xBF, 0x92,
0x69, 0xDB, 0xD7, 0x8D, 0x8F, 0x75, 0xAE, 0xE6, 0x69, 0x45, 0x92, 0x1E, 0x1F, 0x12, 0xB2, 0xA8,
0x4B, 0xED, 0x1D, 0xDB, 0x05, 0xB6, 0x4F, 0x5A, 0x16, 0x3F, 0x85, 0xCE, 0x3C, 0x5B, 0x92, 0x4D,
0xB9, 0x13, 0x02, 0xF3, 0xCD, 0xE8, 0x89, 0xE4, 0x7F, 0xE9, 0x6B, 0x35, 0x39, 0x53, 0x9C, 0x25,
0x52, 0xDD, 0xD3, 0xF9, 0xAF, 0xE6, 0xFF, 0x22, 0xBF, 0xBF, 0xA4, 0x77, 0x85, 0xE6, 0xB1, 0x8D,
0x4B, 0xC7, 0x42, 0x48, 0x7E, 0x23, 0x22, 0xAC, 0xE7, 0xC6, 0x00, 0x2C, 0x5A, 0x71, 0xC0, 0x9F,
0xA7, 0xBA, 0x55, 0x33, 0x1B, 0x7C, 0xEB, 0x5A, 0x8F, 0x6C, 0x35, 0x54, 0x3E, 0x4D, 0x80, 0xF1,
0x75, 0x9F, 0x66, 0xE0, 0x81, 0xB5, 0x2F, 0xFE, 0x82, 0x62, 0x06, 0xD4, 0x4D, 0x5A, 0xBC, 0x71,
0x9E, 0x4A, 0x38, 0x9C, 0x7B, 0x45, 0xE9, 0x20, 0xBC, 0x60, 0x34, 0x8D, 0x17, 0xA6, 0x19, 0xBC,
0xD6, 0x28, 0x4A, 0xA7, 0x58, 0xF5, 0x9B, 0x6E, 0xEA, 0x96, 0xE8, 0x20, 0x25, 0x3A, 0xA4, 0x10,
0x5E, 0xE7, 0x2E, 0x53, 0xB6, 0xC3, 0x4A, 0x6F, 0xEC, 0x45, 0xB7, 0x17, 0x4B, 0x36, 0x72, 0xE8,
0xC1, 0x37, 0xB5, 0xE4, 0xE3, 0xC0, 0x3D, 0x68, 0xB4, 0x9E, 0x30, 0x3A, 0xBD, 0x08, 0x6B, 0x5E,
0x25, 0x07, 0xEA, 0x47, 0x91, 0x4E, 0x86, 0x70, 0xA7, 0xDB, 0xA2, 0x50, 0xAF, 0xEA, 0xB8, 0xD5,
0xC8, 0x22, 0x0F, 0xC5, 0x15, 0x0C, 0x4D, 0x3A, 0x46, 0xCB, 0x70, 0xBA, 0x0E, 0xBE, 0xCC, 0x9E,
0xE4, 0x50, 0x3D, 0xBA, 0xD9, 0xB2, 0x76, 0xEB, 0xCD, 0x21, 0xAB, 0xBB, 0xEB, 0xBA, 0xA3, 0xD0,
0xF9, 0x04, 0x04, 0x37, 0xC2, 0xF2, 0xDD, 0x5C, 0xDD, 0x1C, 0x8D, 0x84, 0x83, 0x4C, 0x95, 0xBB,
0x64, 0xD5, 0x2D, 0x91, 0x02, 0x88, 0xA4, 0x2B, 0xC8, 0xCC, 0x75, 0x02, 0x39, 0x75, 0x5E, 0x1C,
0x32, 0x68, 0x93, 0xAA, 0xDF, 0x74, 0x03, 0xF3, 0xFE, 0xF2, 0xD4, 0x1F, 0xA3, 0xD2, 0xB3, 0x63,
0x2B, 0xF3, 0x7D, 0x8B, 0xFC, 0x92, 0xD4, 0x01, 0x81, 0xFC, 0x00, 0xC2, 0x40, 0x19, 0x3D, 0xEC,
0x12, 0xE7, 0x06, 0xEE, 0xAA, 0x9B, 0x69, 0x33, 0x42, 0x7B, 0x0D, 0xF1, 0x96, 0x00, 0xEC, 0xA8,
0x0E, 0x97, 0x7F, 0x51, 0xF8, 0xDF, 0xDC, 0xFC, 0x74, 0xEC, 0x4D, 0x6F, 0x46, 0x54, 0xB1, 0xCB,
0x6C, 0x3D, 0x71, 0xD3, 0x11, 0xDB, 0x6C, 0x02, 0x34, 0xA6, 0x2E, 0x75, 0x11, 0xEA, 0xCF, 0x3B,
0x86, 0x70, 0x69, 0x8D, 0x28, 0xB1, 0x77, 0xB2, 0xF0, 0xD0, 0x36, 0xDE, 0x80, 0xF4, 0x66, 0xB8,
0x4D, 0xCF, 0x9D, 0x27, 0x9A, 0x1E, 0xBA, 0xEB, 0x40, 0x3D, 0xC9, 0x60, 0xEC, 0x06, 0xB2, 0xCF,
0xB1, 0x52, 0x0C, 0x36, 0x7C, 0xD0, 0x93, 0x7F, 0xAE, 0xFF, 0xBD, 0x49, 0x37, 0xCF, 0xCC, 0xEF,
0xDC, 0xB0, 0x37, 0x6C, 0x6D, 0xEA, 0xE8, 0x96, 0x5A, 0xE2, 0x14, 0x69, 0xD0, 0x0A, 0x86, 0x09,
0xFC, 0xB3, 0x12, 0x02, 0x00, 0xAF, 0x66, 0x88, 0xB1, 0x38, 0x7F, 0x9E, 0xC0, 0x94, 0xFD, 0x90,
0x0A, 0x58, 0x04, 0xCC, 0x4F, 0xBF, 0x91, 0xE8, 0xCE, 0xE5, 0x4C, 0x5A, 0x74, 0x29, 0x11, 0x5D,
0xE1, 0xE9, 0x93, 0x3F, 0xB8, 0xDC, 0x7E, 0x0D, 0xF2, 0x96, 0x13, 0xB9, 0x06, 0xEE, 0xB6, 0x78,
0x24, 0x94, 0x7D, 0xFF, 0xE2, 0xD2, 0xC1, 0x43, 0x42, 0xCE, 0xC8, 0x9E, 0x24, 0xA8, 0xC0, 0x06,
0xA2, 0xE5, 0x6C, 0x00, 0xAD, 0x73, 0x8A, 0x19, 0xDB, 0x75, 0xD2, 0xFE, 0xA1, 0xE4, 0xF6, 0x8A,
0x2C, 0xE1, 0x8E, 0x6A, 0x83, 0x0E, 0x79, 0x7E, 0xDB, 0x1E, 0x8E, 0xA8, 0x2D, 0xE6, 0xF9, 0x0C,
0x0E, 0x3F, 0x93, 0x19, 0x04, 0xE8, 0x65, 0x81, 0x40, 0xEE, 0xBC, 0x8E, 0xCF, 0xD0, 0x84, 0xB5,
0x61, 0xF9, 0x08, 0x29, 0xA3, 0x7B, 0x1D, 0xB1, 0x1A, 0xAC, 0xCF, 0x58, 0x80, 0x60, 0xF9, 0x79,
0xC5, 0xE3, 0xBD, 0x5A, 0x5E, 0x28, 0x82, 0x4F, 0x1B, 0xAF, 0x9D, 0xEF, 0xBF, 0x33, 0xEE, 0xD7,
0x66, 0x04, 0x68, 0x65, 0x58, 0x67, 0xE7, 0x16, 0xF5, 0x87, 0x70, 0x6B, 0xE2, 0x2F, 0xFB, 0xA8,
0x3C, 0xE1, 0x26, 0xD4, 0xD3, 0xC0, 0xDD, 0x28, 0x62, 0x73, 0x78, 0xD4, 0xA9, 0xB3, 0xA7, 0xA5,
0xF7, 0x3E, 0xA2, 0xDA, 0x5E, 0x6D, 0x12, 0x76, 0xD2, 0xF9, 0x34, 0xFF, 0x60, 0x97, 0xB7, 0x53,
0x12, 0xEE, 0xB9, 0xA3, 0xAF, 0x43, 0x2B, 0xE1, 0x38, 0xD3, 0x77, 0x9B, 0x4D, 0x44, 0x10, 0x0E,
0xF4, 0xA7, 0x3F, 0x37, 0xA7, 0x68, 0x76, 0x13, 0xBE, 0x51, 0x67, 0x00, 0xC5, 0x7E, 0x9D, 0xE6,
0xB3, 0xB0, 0x0E, 0x6B, 0xC8, 0x95, 0xE4, 0xC9, 0x3B, 0x28, 0xB7, 0x4C, 0xD8, 0x85, 0xF7, 0x06,
0xA6, 0x05, 0x3E, 0xA5, 0x73, 0xA0, 0x58, 0xFC, 0x02, 0xEA, 0xB4, 0x73, 0x60, 0x3F, 0x41, 0xDE,
0xD8, 0x59, 0x41, 0x43, 0x90, 0x2B, 0x1A, 0x11, 0x9A, 0x19, 0x99, 0x83, 0x9B, 0x8F, 0x6D, 0x3C,
0x94, 0xE8, 0x72, 0xEE, 0xCF, 0xF9, 0x63, 0x91, 0x83, 0x10, 0xF5, 0x16, 0x97, 0x51, 0x09, 0x55,
0x06, 0xA0, 0x14, 0x5F, 0x1F, 0x65, 0x5E, 0x20, 0x11, 0xDE, 0x52, 0x52, 0x6C, 0xA5, 0x97, 0xE2,
0xBF, 0xDC, 0xCB, 0x5E, 0x00, 0x5A, 0x21, 0x9A, 0xDB, 0x53, 0x5A, 0x42, 0x9F, 0x56, 0x7E, 0x35,
0x53, 0x0C, 0x70, 0x48, 0x34, 0xA3, 0x8B, 0x00, 0x46, 0x8E, 0xB2, 0x13, 0xF7, 0x11, 0xD2, 0xC7,
0x30, 0x1A, 0x4A, 0x14, 0xD5, 0x49, 0xAE, 0x14, 0xFC, 0x06, 0x22, 0xE5, 0xBD, 0xDF, 0x07, 0xB0,
0x51, 0x72, 0xA7, 0xA5, 0x4C, 0xDC, 0x50, 0xD6, 0xF1, 0x72, 0x2E, 0x57, 0x20, 0x54, 0x66, 0xAF,
0x76, 0xB4, 0x88, 0x57, 0x5C, 0x21, 0x40, 0x2E, 0x50, 0x21, 0xC3, 0xDE, 0xAF, 0xF4, 0xB2, 0xE5,
0xB5, 0xC7, 0x37, 0x57, 0x47, 0xB7, 0xD9, 0x08, 0x1A, 0x7E, 0x47, 0xA5, 0x01, 0xB2, 0x21, 0x0D,
0x89, 0x18, 0x64, 0x3E, 0x28, 0x8E, 0xE2, 0x68, 0x42, 0x5D, 0x66, 0xAE, 0x94, 0x84, 0x3C, 0x19,
0xC9, 0x98, 0x2F, 0x47, 0xA1, 0xF2, 0x54, 0xA0, 0x5C, 0xD3, 0x77, 0xD4, 0xB8, 0xE1, 0xC2, 0xB5,
0xA9, 0x83, 0xD9, 0x29, 0x6D, 0xFB, 0xEC, 0xA0, 0x99, 0x23, 0xAC, 0x7D, 0x36, 0xE7, 0x73, 0x70,
0x19, 0x57, 0xFA, 0x1C, 0xD1, 0xC1, 0xDF, 0x98, 0x9D, 0xD8, 0x9E, 0xB3, 0xD9, 0x72, 0xBD, 0x01,
0x34, 0xA3, 0xCA, 0x03, 0x9D, 0x40, 0x23, 0x74, 0x9E, 0x3B, 0x62, 0xF3, 0x14, 0x92, 0xD9, 0x20,
0x58, 0xCA, 0x8D, 0xA3, 0x71, 0x37, 0x7D, 0xA3, 0xA1, 0xC7, 0x70, 0x52, 0x56, 0xE9, 0xB3, 0x12,
0x68, 0xD3, 0x5F, 0x15, 0xB3, 0xC3, 0x2B, 0x59, 0x33, 0xE7, 0x0A, 0x74, 0xDC, 0x71, 0x04, 0xAD,
0x1E, 0x10, 0x17, 0xD6, 0x5B, 0xC0, 0xB7, 0x93, 0x53, 0xB9, 0xFC, 0xBF, 0x5C, 0x13, 0x20, 0x72,
0x0E, 0x3D, 0x96, 0x0D, 0xDB, 0xF4, 0xFE, 0x87, 0xBA, 0xDC, 0x7A, 0x31, 0xB4, 0x7E, 0xB1, 0x5A,
0x27, 0x2F, 0xB5, 0x3F, 0x56, 0xC1, 0x8A, 0xBE, 0x3E, 0xFB, 0xB4, 0x8A, 0x82, 0x8F, 0xCA, 0xE0,
0x8F, 0x0D, 0x47, 0xFB, 0x58, 0xD3, 0x95, 0x05, 0x50, 0xA1, 0x57, 0x3F, 0x89, 0xCB, 0x70, 0x53,
0xD1, 0xBA, 0xB4, 0x84, 0x94, 0x1D, 0xFC, 0x09, 0x3D, 0xC7, 0x25, 0x04, 0x91, 0xD2, 0x5A, 0x48,
0x38, 0xEC, 0x22, 0x8D, 0x1F, 0x78, 0x76, 0x7F, 0x0C, 0x5B, 0x7F, 0x04, 0x93, 0x23, 0xD6, 0x5B,
0xA2, 0x70, 0x9A, 0xA1, 0x12, 0x9A, 0xE1, 0xE6, 0x03, 0x98, 0x68, 0x41, 0x99, 0x06, 0x44, 0x1E,
0x94, 0xD9, 0x2C, 0x61, 0x10, 0x6A, 0xDD, 0x7C, 0x69, 0x75, 0x62, 0xE4, 0xF6, 0x72, 0x08, 0xC2,
0x71, 0x7F, 0x06, 0xD6, 0x6C, 0x21, 0xF4, 0x4D, 0xB6, 0x1D, 0x44, 0xE1, 0x13, 0xC7, 0x7A, 0xE6,
0x9D, 0xFA, 0x54, 0x87, 0x0A, 0x16, 0x3C, 0xCD, 0xE2, 0x3B, 0xB5, 0x74, 0x5D, 0x92, 0x87, 0x9F,
0xC1, 0x17, 0xD3, 0x6B, 0xD0, 0x96, 0x05, 0x2A, 0x06, 0x6A, 0xDF, 0xDA, 0xE3, 0x94, 0x08, 0xE5,
0x88, 0x16, 0x1C, 0xAC, 0x11, 0x0C, 0x9F, 0x02, 0x40, 0x7E, 0x7F, 0x85, 0xD0, 0xB5, 0x81, 0x6F,
0xF7, 0x10, 0x90, 0xF1, 0x10, 0xD4, 0x3A, 0x61, 0x63, 0xD8, 0xB2, 0x50, 0x60, 0x7C, 0x6B, 0x75,
0x31, 0x4E, 0xA3, 0x66, 0xD6, 0x69, 0xF7, 0x31, 0xE1, 0xEB, 0xF0, 0x05, 0x31, 0x70, 0x15, 0x3E,
0x2F, 0x03, 0x34, 0xB9, 0x64, 0xA5, 0x03, 0x43, 0xCC, 0xA0, 0xCB, 0x25, 0xDF, 0x74, 0x1A, 0xB8,
0x50, 0xBF, 0x84, 0x09, 0x97, 0x10, 0x18, 0x6C, 0xF0, 0x49, 0x89, 0xF2, 0x41, 0x81, 0xD7, 0x7B,
0x8C, 0x33, 0x57, 0x84, 0x31, 0xE9, 0x46, 0xD3, 0xC3, 0x39, 0xCF, 0xAF, 0x7B, 0xA8, 0xEF, 0x97,
0xE6, 0x29, 0xAE, 0xDF, 0xB8, 0x34, 0x7B, 0xD0, 0x6B, 0x96, 0x85, 0x0F, 0x6A, 0x92, 0x3D, 0x79,
0x1F, 0xC1, 0xEF, 0x8D, 0x1E, 0x8D, 0x6A, 0xAF, 0x57, 0x32, 0xEB, 0x5A, 0xD9, 0x4C, 0x7A, 0x67,
0xD2, 0x63, 0xD3, 0xB6, 0xA2, 0xE6, 0xBE, 0x15, 0x90, 0x7A, 0xBF, 0x21, 0x39, 0x8F, 0xD5, 0x37,
0xAE, 0xAD, 0xB9, 0x36, 0x69, 0xB1, 0xCE, 0xFD, 0x17, 0x04, 0xC0, 0xCD, 0x4E, 0xBD, 0x07, 0x69,
0x21, 0x97, 0x9E, 0x4C, 0x41, 0x6D, 0x40, 0x04, 0x50, 0xD4, 0xA9, 0xB2, 0xD6, 0x89, 0x4C, 0xA9,
0x3A, 0x72, 0x40, 0x3C, 0xC8, 0xC3, 0x01, 0xB1, 0x16, 0x2E, 0x02, 0x2C, 0xA3, 0x94, 0x2C, 0xA3,
0x26, 0x68, 0xB9, 0x10, 0xF7, 0x0B, 0x2E, 0x75, 0x42, 0x84, 0xF6, 0x95, 0x24, 0x3C, 0x82, 0xDB,
0xC3, 0xF1, 0x7B, 0xFC, 0x91, 0xF2, 0x25, 0xA5, 0xDF, 0x05, 0x2D, 0xD8, 0xB3, 0x57, 0x7B, 0x15,
0xD0, 0xED, 0xA1, 0xD2, 0x58, 0x9C, 0x66, 0x0F, 0xEE, 0xA1, 0x88, 0x69, 0x67, 0x6F, 0xF5, 0xD8,
0xD5, 0xF6, 0xF6, 0x7A, 0xC3, 0x8F, 0x67, 0x39, 0x97, 0xD0, 0x09, 0xFE, 0xFD, 0xA2, 0xFF, 0x2D,
0x2B, 0xDD, 0x0F, 0x73, 0x8A, 0x01, 0x7A, 0x4D, 0xA0, 0xED, 0x3F, 0x9B, 0x6C, 0x49, 0x08, 0x3B,
0xD1, 0x1D, 0xC8, 0xEA, 0x7F, 0xCD, 0x4D, 0xBB, 0x3E, 0xCD, 0xBD, 0x6E, 0x0B, 0xFE, 0x99, 0x5E,
0x06, 0x14, 0xFA, 0xB6, 0x42, 0xB2, 0x4D, 0x09, 0x61, 0xAA, 0x30, 0x37, 0xBB, 0x88, 0xC9, 0x5E,
0xF0, 0x05, 0xD5, 0xF1, 0x52, 0x38, 0x3E, 0xB8, 0x5D, 0xA3, 0x0D, 0x87, 0x26, 0x76, 0xDD, 0xCC,
0x2A, 0xD6, 0x7D, 0xC0, 0xEE, 0xEA, 0xA1, 0x8F, 0x15, 0x04, 0x23, 0xCE, 0x0F, 0x12, 0xCB, 0xE7,
0x57, 0xF9, 0x2C, 0x9C, 0xF6, 0x3B, 0x31, 0x37, 0x41, 0x67, 0xEE, 0x83, 0xE8, 0xE9, 0x69, 0x2A,
0xAE, 0xA6, 0x6F, 0x7C, 0xB0, 0x12, 0xC9, 0x01, 0x3F, 0xDA, 0x0C, 0x78, 0xBD, 0xF7, 0x93, 0xE4,
0x7A, 0xF7, 0x6D, 0x33, 0xB7, 0xEF, 0xD8, 0xDC, 0x76, 0x71, 0x87, 0x58, 0x3A, 0xDA, 0xDA, 0x7D,
0x73, 0xD5, 0x4C, 0x93, 0x15, 0xDD, 0xD1, 0xD1, 0xF0, 0xEB, 0xA6, 0x64, 0xF7, 0x20, 0x82, 0xC1,
0x2B, 0x5A, 0x3E, 0xDE, 0x43, 0x26, 0xE6, 0x24, 0xD4, 0x69, 0xF1, 0xE1, 0xB9, 0x0F, 0x0D, 0xEA,
0x90, 0x64, 0x81, 0xF4, 0xEE, 0x5B, 0x44, 0x9E, 0xE7, 0x79, 0x58, 0x07, 0xEC, 0x3B, 0x36, 0xDB,
0x17, 0xE7, 0xE1, 0x17, 0x9F, 0x5E, 0xB7, 0x63, 0x3C, 0x06, 0xAC, 0x3F, 0xA0, 0xDE, 0xBD, 0xD5,
0x84, 0x91, 0x7B, 0xFA, 0x3A, 0x58, 0x4D, 0xA0, 0x0F, 0x68, 0x96, 0xD6, 0x5C, 0x10, 0x27, 0xC1,
0x5C, 0xE6, 0xFD, 0xE0, 0xEA, 0xF0, 0x9B, 0x38, 0x77, 0x3B, 0xDF, 0xAC, 0x00, 0xBD, 0x36, 0xCA,
0x1F, 0x35, 0xA9, 0x82, 0x9F, 0x7E, 0x64, 0x27, 0x1A, 0xBD, 0xEB, 0x5A, 0xF9, 0x64, 0x40, 0xE8,
0x3E, 0x1C, 0x4B, 0xB9, 0x3E, 0x0A, 0x37, 0x7D, 0x4B, 0xC1, 0x20, 0x72, 0x68, 0x92, 0xC7, 0x64,
0xF0, 0x4F, 0xD5, 0x47, 0x7D, 0x72, 0xF9, 0x62, 0x68, 0x3B, 0xD3, 0xA1, 0x70, 0xB2, 0x39, 0x70,
0xF1, 0x28, 0xE7, 0x06, 0xE5, 0xAA, 0x0B, 0xD4, 0xFE, 0x4F, 0x37, 0xD6, 0x98, 0x50, 0xF5, 0x12,
0xFF, 0xF8, 0x64, 0x23, 0x2D, 0xD9, 0x2C, 0xF1, 0x81, 0xE6, 0x02, 0xE0, 0x40, 0xA8, 0x9C, 0xD3,
0x82, 0x5B, 0x54, 0xDA, 0x1E, 0x0F, 0xBB, 0xBC, 0x7F, 0x41, 0x48, 0x6B, 0xB9, 0x53, 0x4D, 0xA4,
0xA1, 0xE3, 0x1B, 0x6E, 0x88, 0x1B, 0xC6, 0x4A, 0xCA, 0x0D, 0xA2, 0x54, 0x9B, 0xB3, 0xB7, 0x56,
0xE3, 0x14, 0xB3, 0xA6, 0xAD, 0x03, 0xA3, 0x6B, 0x2B, 0xFB, 0x50, 0x21, 0xFF, 0x35, 0xB8, 0x1D,
0xE7, 0xC9, 0x67, 0xDD, 0x9E, 0x6A, 0xA0, 0x1D, 0xE9, 0xD5, 0x87, 0x1E, 0xE3, 0x4B, 0x8E, 0x1E,
0xF0, 0x6B, 0xD6, 0x67, 0xB6, 0x18, 0x99, 0xC9, 0xAB, 0xCC, 0x26, 0xEF, 0xDF, 0x06, 0x2A, 0x7D,
0x53, 0x62, 0x81, 0x7B, 0x2C, 0x9D, 0x0D, 0x1F, 0x08, 0x48, 0xA8, 0xC6, 0x88, 0xAE, 0x15, 0x4C,
0x8F, 0xF8, 0xC0, 0x8D, 0xB6, 0x44, 0xCB, 0x59, 0xEE, 0x3B, 0x97, 0x6E, 0x2F, 0x91, 0x40, 0xC7,
0x78, 0x99, 0x1F, 0x72, 0xC2, 0xC6, 0xE0, 0x8A, 0x3F, 0xB8, 0xBB, 0x1A, 0x09, 0x75, 0xEB, 0xE9,
0x4A, 0xBA, 0xEE, 0xA4, 0xB5, 0x75, 0x8B, 0xDD, 0x23, 0xB3, 0x2E, 0x0A, 0xB5, 0xD4, 0xA1, 0xA1,
0x65, 0x64, 0xAD, 0x78, 0xED, 0x3B, 0xC6, 0x16, 0xFF, 0xEF, 0x1A, 0xFE, 0x33, 0xD5, 0x5C, 0x3F,
0x90, 0xDC, 0xD6, 0x7D, 0x7E, 0x00, 0xC8, 0x83, 0x25, 0xC4, 0x06, 0x0B, 0x6A, 0x46, 0x09, 0x65,
0x41, 0x85, 0x0A, 0x4F, 0x62, 0x11, 0x8D, 0x0B, 0x15, 0xE4, 0x01, 0x8A, 0x0B, 0x15, 0x6E, 0x98,
0x19, 0x9D, 0x5C, 0xA8, 0x90, 0xEB, 0x78, 0x32, 0x97, 0xCC, 0xB8, 0xD0, 0x4C, 0x8E, 0x8B, 0x8D,
0x59, 0xA4, 0x48, 0x21, 0xCE, 0x24, 0x69, 0x92, 0xC6, 0x45, 0x2A, 0xB1, 0x38, 0x17, 0x2A, 0x34,
0xC9, 0xDE, 0x2E, 0x28, 0x16, 0x2A, 0x5C, 0x18, 0x76, 0x46, 0xF1, 0x4C, 0x5C, 0x18, 0xB2, 0xA5,
0xD1, 0x84, 0x9C, 0xB1, 0x60, 0x1B, 0x92, 0xA0, 0x23, 0x16, 0xC8, 0xF7, 0x7D, 0xEF, 0xED, 0xDE,
0xDE, 0xF1, 0x64, 0x53, 0x89, 0x65, 0x51, 0x4B, 0x12, 0xC7, 0xC3, 0x01, 0xEF, 0xFD, 0x7E, 0xDF,
0xFB, 0xBD, 0xDF, 0xFF, 0x77, 0xC6, 0x98, 0x9D, 0x9D, 0x2B, 0xC6, 0x98, 0x6C, 0xEC, 0x71, 0x8D,
0xC7, 0xC1, 0xFC, 0xB6, 0x8F, 0x5F, 0xF2, 0x1A, 0x36, 0xBC, 0x06, 0x4B, 0xDD, 0x19, 0xA7, 0xFC,
0xF2, 0x61, 0xCD, 0xEB, 0x6B, 0x1C, 0xC3, 0x5C, 0xCA, 0x78, 0xDD, 0x8E, 0x2B, 0x5C, 0x13, 0xBF,
0xE5, 0xB0, 0xD3, 0x09, 0x5F, 0x2B, 0x13, 0xBC, 0x1E, 0x54, 0x01, 0x5E, 0xF7, 0x1B, 0xC3, 0x67,
0x5B, 0x93, 0xE5, 0xC6, 0x2C, 0xC6, 0x11, 0xAF, 0x17, 0x23, 0x49, 0xC8, 0x76, 0x76, 0x16, 0x78,
0x2D, 0x37, 0x71, 0xC9, 0xBF, 0x41, 0x6B, 0x22, 0x8C, 0x33, 0x18, 0xBE, 0x94, 0x96, 0x1C, 0x2D,
0x6A, 0x23, 0x3C, 0x9E, 0x8E, 0x3F, 0x1D, 0x3B, 0x5C, 0x5B, 0xE3, 0xED, 0xEC, 0x70, 0x08, 0x3C,
0x38, 0x8E, 0xA7, 0xD1, 0x9C, 0xD6, 0x33, 0x93, 0x8C, 0xEF, 0xE5, 0xE1, 0xE1, 0xD8, 0x78, 0x4B,
0x6F, 0x30, 0x19, 0x86, 0xC4, 0xA0, 0x33, 0x50, 0x10, 0x97, 0x69, 0x6E, 0x3A, 0x8C, 0x9D, 0xE4,
0x19, 0xA6, 0x08, 0x6B, 0x53, 0x98, 0xB9, 0x89, 0x9B, 0xA8, 0xF6, 0x07, 0xFC, 0xE7, 0x6F, 0xEB,
0x7F, 0x6D, 0xD2, 0xCB, 0x4F, 0x15, 0xEF, 0xDD, 0x1A, 0x6F, 0x8D, 0x75, 0x56, 0x47, 0x6F, 0x7B,
0x64, 0xC7, 0x9C, 0xD3, 0xC0, 0x4F, 0x99, 0x3F, 0x22, 0x6F, 0x65, 0x42, 0x30, 0x86, 0x45, 0x2E,
0x14, 0x79, 0xF5, 0x3F, 0x16, 0xC4, 0xAF, 0xEA, 0x5A, 0xE8, 0x9A, 0x55, 0xA2, 0xAE, 0xE3, 0x35,
0x26, 0x3E, 0x26, 0x7A, 0x99, 0xF0, 0x06, 0xB7, 0x08, 0x6F, 0x50, 0x13, 0x5E, 0xAF, 0x49, 0x39,
0x60, 0x17, 0x12, 0xDE, 0x3D, 0x8F, 0x90, 0x5D, 0x36, 0x84, 0x37, 0x25, 0x38, 0x26, 0xCE, 0x03,
0x02, 0x32, 0x72, 0xD5, 0xC2, 0x71, 0x1C, 0x81, 0xD7, 0xFB, 0x3B, 0x2F, 0x34, 0x86, 0x54, 0xF6,
0xFA, 0x0B, 0x78, 0x0F, 0xF0, 0x5C, 0xCD, 0x97, 0xFC, 0xDE, 0x70, 0xB4, 0x45, 0xBE, 0x18, 0xB0,
0x6C, 0xCB, 0xC5, 0x38, 0xF5, 0x47, 0xD1, 0x8B, 0xCF, 0xA3, 0xE6, 0x0C, 0xD6, 0x27, 0x98, 0x9A,
0x02, 0x2B, 0x13, 0x8C, 0x98, 0x3B, 0x21, 0x98, 0x8F, 0xDC, 0x23, 0x00, 0x43, 0x54, 0x7A, 0xE3,
0xD0, 0x9A, 0x62, 0x7F, 0x34, 0x49, 0x95, 0xD4, 0xC0, 0xEE, 0x00, 0x7F, 0xA2, 0x12, 0xF4, 0xF4,
0x58, 0x9E, 0x78, 0x9A, 0x61, 0x7A, 0xDC, 0xCD, 0xCC, 0x04, 0x82, 0x12, 0xD5, 0x66, 0x04, 0x90,
0x69, 0x1D, 0xD5, 0xE1, 0xFC, 0xA1, 0x85, 0xFF, 0x9B, 0x1F, 0xFF, 0x64, 0xE8, 0xB3, 0x3E, 0x1B,
0x02, 0xE0, 0x9B, 0x27, 0x9A, 0xFD, 0xFB, 0xBC, 0x88, 0x37, 0x63, 0x2C, 0x3D, 0x0B, 0x49, 0xD3,
0x65, 0x41, 0x73, 0x51, 0xD2, 0x14, 0x93, 0x5D, 0x13, 0x5F, 0x6B, 0x25, 0x47, 0x07, 0x02, 0x28,
0x99, 0x12, 0x20, 0x09, 0x63, 0x2B, 0x69, 0x9A, 0x09, 0x9A, 0xCB, 0x86, 0x92, 0x97, 0x8E, 0x10,
0x0F, 0x30, 0x41, 0x99, 0x88, 0xDF, 0xDC, 0xD9, 0x2D, 0x4D, 0x58, 0x51, 0x88, 0x28, 0x47, 0x4B,
0x43, 0x39, 0xCA, 0xA6, 0x7C, 0x29, 0x22, 0xFD, 0xC6, 0x5F, 0xFA, 0x78, 0x3C, 0x1A, 0x3F, 0x00,
0x92, 0xD1, 0x68, 0x05, 0x5B, 0x34, 0x04, 0xBA, 0xFA, 0x12, 0x78, 0xD3, 0xD9, 0x75, 0x13, 0x89,
0xB1, 0x28, 0xF5, 0x46, 0x6D, 0x88, 0xB3, 0xF9, 0xFF, 0x0F, 0x98, 0x2F, 0x6C, 0x02, 0x33, 0x12,
0x18, 0x0E, 0xCB, 0x49, 0x2F, 0x51, 0x2C, 0xA6, 0x6E, 0x6E, 0xED, 0xA8, 0x05, 0x77, 0x8F, 0x28,
0xC4, 0x92, 0x51, 0x2A, 0x48, 0x25, 0xB9, 0x4F, 0x78, 0xE1, 0x46, 0x0A, 0x28, 0x7E, 0x5E, 0x7E,
0x6C, 0xDD, 0x2E, 0x8C, 0xD7, 0x41, 0x2C, 0xB8, 0x8B, 0x87, 0x1B, 0x23, 0x45, 0x6F, 0x82, 0x3D,
0x65, 0x2E, 0x07, 0x18, 0xF6, 0x12, 0x11, 0xDC, 0xE3, 0xD8, 0xE7, 0x34, 0xAD, 0x24, 0x2E, 0x5B,
0xCB, 0xE9, 0xD1, 0x65, 0xB1, 0xBE, 0xD8, 0x7B, 0x7A, 0x0E, 0x6F, 0x9C, 0x4B, 0xF1, 0x6E, 0x13,
0x03, 0xBF, 0x2A, 0x1C, 0x5F, 0x81, 0x3E, 0x18, 0x89, 0x20, 0x67, 0xB4, 0x1F, 0x48, 0x15, 0x07,
0xE5, 0x0A, 0x73, 0x16, 0xFC, 0x8C, 0x5B, 0xFA, 0xD2, 0x71, 0xC1, 0x5A, 0x4C, 0xB1, 0x64, 0x65,
0x70, 0xB8, 0x80, 0x68, 0x9F, 0xA3, 0xFC, 0x72, 0xC1, 0xAF, 0x1A, 0xAD, 0x17, 0xFF, 0x8B, 0x0D,
0xE2, 0x83, 0x58, 0xC0, 0x66, 0xD2, 0x29, 0xC9, 0x08, 0xBD, 0xA5, 0x99, 0x05, 0xC3, 0x7E, 0x19,
0x62, 0xE5, 0xDC, 0x8E, 0x93, 0x3C, 0x15, 0x25, 0xD7, 0x05, 0xAF, 0x85, 0xBF, 0xC6, 0x8C, 0x09,
0x85, 0xA5, 0x80, 0x50, 0x98, 0xF3, 0x16, 0xAF, 0xCF, 0x1A, 0x91, 0x0B, 0xA0, 0x0E, 0x13, 0xC5,
0xB8, 0xB1, 0xEC, 0x4C, 0x8C, 0xCD, 0x3E, 0x0B, 0xA0, 0x8E, 0xA2, 0xFC, 0xCC, 0x31, 0x9D, 0x05,
0x31, 0x6C, 0x0C, 0xB8, 0x8B, 0xCA, 0x33, 0x2B, 0x18, 0xC8, 0x5D, 0xEF, 0xFE, 0x0B, 0x08, 0xE6,
0x1B, 0x88, 0x94, 0x5E, 0x59, 0xE4, 0xA9, 0x19, 0x6F, 0x34, 0x1E, 0x75, 0xC1, 0x42, 0x3A, 0xF9,
0xEC, 0x9A, 0x26, 0xC9, 0xAA, 0x94, 0xE3, 0xC1, 0xC7, 0x28, 0xA6, 0xCF, 0x0A, 0x8D, 0x8B, 0x24,
0x1E, 0x0A, 0xD7, 0x70, 0xA6, 0xD7, 0xCC, 0x49, 0x99, 0xF0, 0xC7, 0x1E, 0x22, 0xE1, 0x37, 0x9E,
0xD3, 0x68, 0x57, 0x35, 0x33, 0xE4, 0x01, 0x0A, 0x91, 0xCC, 0xCF, 0x25, 0x0D, 0xD8, 0xC3, 0x7F,
0x03, 0x61, 0xC8, 0x6E, 0xF7, 0x94, 0x85, 0xB4, 0xD6, 0xD6, 0x38, 0x4B, 0xF5, 0x18, 0x71, 0xCF,
0x93, 0xF4, 0x82, 0x97, 0xF8, 0x3D, 0x6E, 0xA0, 0x51, 0x76, 0x89, 0x17, 0xEF, 0xFA, 0xB1, 0xE9,
0xBC, 0xC5, 0x47, 0x52, 0xA3, 0x9D, 0x05, 0x21, 0x6E, 0x01, 0x33, 0x34, 0x67, 0x50, 0xE1, 0x62,
0xA4, 0x67, 0xF6, 0xA8, 0x6E, 0xCF, 0x58, 0x55, 0x25, 0x24, 0x05, 0x83, 0x50, 0x91, 0x1A, 0xB2,
0x3F, 0x11, 0x04, 0xE9, 0xD1, 0x4D, 0x6D, 0x56, 0x01, 0x11, 0xB5, 0x94, 0x7B, 0x20, 0x70, 0x60,
0x92, 0xE1, 0x06, 0x00, 0x16, 0x12, 0x5B, 0xE3, 0xDB, 0x6E, 0x3B, 0x3F, 0x0E, 0xD8, 0x13, 0x6C,
0xF5, 0xF8, 0x5A, 0x63, 0xE2, 0x1F, 0x82, 0xCB, 0xD1, 0x99, 0xD9, 0xEE, 0xA4, 0x16, 0xA6, 0x82,
0x2B, 0x29, 0x1F, 0xC0, 0x86, 0x9A, 0x4D, 0x7B, 0x84, 0x02, 0x92, 0x39, 0xAA, 0x68, 0x50, 0xE6,
0x1B, 0xFF, 0xB0, 0x61, 0x0C, 0x45, 0x04, 0x20, 0x41, 0x2B, 0xD6, 0x6E, 0xC7, 0x78, 0xC6, 0xE0,
0x9D, 0xA8, 0x24, 0xA1, 0x61, 0x2D, 0xF3, 0xDC, 0x72, 0xF1, 0xBC, 0x41, 0x33, 0x2E, 0x9A, 0x15,
0xE9, 0x4E, 0x9A, 0x36, 0x3E, 0x5B, 0x23, 0x17, 0xB0, 0x90, 0xED, 0x59, 0x2C, 0xF7, 0x41, 0x0D,
0x16, 0xA4, 0x68, 0x64, 0xB1, 0x3B, 0x69, 0xDA, 0x9E, 0x57, 0x70, 0xCF, 0xC1, 0x07, 0xC9, 0xE9,
0x28, 0x05, 0xB0, 0x10, 0xB1, 0xF6, 0x3A, 0x48, 0x94, 0x07, 0xED, 0xE9, 0x25, 0x55, 0x2B, 0x20,
0x04, 0xF9, 0x90, 0x86, 0x42, 0x92, 0x3E, 0x91, 0xF1, 0x9A, 0x0B, 0xCF, 0xA5, 0xA0, 0xED, 0x4D,
0x08, 0xFD, 0x3D, 0x3C, 0x0F, 0x1B, 0x91, 0xD9, 0xC9, 0xC7, 0xB5, 0xA6, 0xB9, 0xAC, 0xEB, 0xB6,
0xAE, 0x04, 0x60, 0xB7, 0xDE, 0xA3, 0x87, 0xD2, 0xCC, 0x70, 0xDD, 0xAF, 0x65, 0x3B, 0x6A, 0xB2,
0x14, 0x55, 0x95, 0x2C, 0x77, 0x6E, 0x2C, 0x70, 0xF4, 0x50, 0x56, 0xFA, 0xC3, 0x1F, 0x52, 0xA9,
0x77, 0x6E, 0x17, 0xEA, 0x72, 0xD0, 0xC5, 0xFD, 0x2A, 0x75, 0x6E, 0xE4, 0x36, 0xF0, 0x95, 0x5E,
0x0F, 0x77, 0xC4, 0x9A, 0xA2, 0x99, 0x69, 0x57, 0x4E, 0xC4, 0xEA, 0x84, 0xE2, 0x2C, 0xD5, 0x6E,
0xE4, 0x42, 0x5C, 0x37, 0xD4, 0xEE, 0x95, 0xA1, 0x17, 0x51, 0x1A, 0x59, 0x3E, 0xE3, 0x1C, 0x89,
0xFB, 0xC1, 0x30, 0xB4, 0x18, 0xD6, 0xC2, 0xB0, 0x12, 0x86, 0x44, 0xEF, 0xEC, 0xEE, 0x3B, 0xCF,
0x99, 0x05, 0xC8, 0x6C, 0xCD, 0x80, 0x6B, 0x43, 0x0C, 0xF3, 0xD3, 0x31, 0x9C, 0x0B, 0xC3, 0x83,
0xFB, 0xC2, 0x70, 0xB7, 0x16, 0x60, 0x90, 0x80, 0x1B, 0xB5, 0xE0, 0x32, 0x56, 0x5B, 0x27, 0x7C,
0x2A, 0x91, 0x65, 0xE4, 0x82, 0x91, 0x79, 0x7F, 0x99, 0xCA, 0xC0, 0x5A, 0x98, 0xBC, 0xDE, 0x1F,
0x2C, 0x48, 0xC2, 0x48, 0x10, 0xD1, 0xB7, 0x02, 0x25, 0x30, 0x7E, 0x99, 0x5D, 0xCB, 0xB0, 0x91,
0x77, 0x65, 0xC1, 0x99, 0x9B, 0xFF, 0xA8, 0xAE, 0x0B, 0x1A, 0x22, 0x33, 0x15, 0x30, 0x0E, 0x97,
0xB3, 0x74, 0xE9, 0x0C, 0xB9, 0xFA, 0x2D, 0x1E, 0x69, 0x30, 0xD2, 0x61, 0xCC, 0xE4, 0xF6, 0xA4,
0x6F, 0xEE, 0x74, 0xC4, 0x2E, 0xCE, 0xC9, 0xBF, 0xAC, 0xFC, 0x97, 0x9C, 0x1A, 0x12, 0x0B, 0x76,
0xB7, 0xCA, 0x7E, 0x9A, 0x61, 0xE7, 0x39, 0xD1, 0x3D, 0xA5, 0xC2, 0x6B, 0xAD, 0x39, 0x21, 0xE2,
0xAB, 0xED, 0x6C, 0xBD, 0x5B, 0x80, 0xF6, 0x04, 0x65, 0x16, 0x23, 0x2E, 0xE1, 0x65, 0x90, 0x21,
0x70, 0xB2, 0xDC, 0x79, 0xA1, 0xB6, 0xF3, 0x2E, 0x34, 0xAF, 0x79, 0x04, 0x83, 0x65, 0x22, 0xA3,
0xBB, 0x87, 0x40, 0x4F, 0x90, 0x95, 0x66, 0xB1, 0x5F, 0xFB, 0xF0, 0xE0, 0xF8, 0x27, 0x86, 0x3E,
0x4F, 0xA6, 0x09, 0x5C, 0x81, 0x85, 0xC9, 0x42, 0x2C, 0xD0, 0xA2, 0x32, 0xD4, 0x3A, 0xF3, 0xDC,
0x92, 0x38, 0x37, 0x7E, 0x5E, 0xD0, 0x19, 0xBD, 0x8D, 0x8D, 0x01, 0xE2, 0xB6, 0x86, 0x23, 0x33,
0xFE, 0x92, 0xF9, 0x1A, 0x45, 0x2F, 0xE6, 0xBE, 0xE4, 0xE2, 0x04, 0x9A, 0x32, 0xEA, 0x1E, 0x50,
0x64, 0xF8, 0x79, 0x08, 0x3A, 0xED, 0xA2, 0x79, 0x0C, 0x03, 0xD1, 0x05, 0x6F, 0x60, 0xD3, 0x30,
0xE2, 0x73, 0x9F, 0x16, 0x4A, 0xF2, 0x93, 0xE4, 0x0A, 0x59, 0x95, 0x15, 0x08, 0x9A, 0xF3, 0xA7,
0x88, 0x8E, 0xA0, 0xB1, 0xD4, 0x82, 0xF0, 0x17, 0xA7, 0xE4, 0xB4, 0x25, 0xA7, 0xB1, 0x38, 0xAD,
0x1D, 0xA7, 0xD6, 0x29, 0x17, 0x34, 0xD2, 0xE1, 0xF1, 0x3B, 0x3B, 0x39, 0xA1, 0xB1, 0x8E, 0x65,
0x2E, 0x0B, 0xE4, 0xFC, 0xC1, 0xA0, 0x59, 0xDB, 0x3D, 0x40, 0xE3, 0x0B, 0xA5, 0x96, 0xB0, 0x26,
0xDC, 0x6D, 0xF8, 0x29, 0xD6, 0x61, 0x6E, 0xE7, 0x8D, 0x34, 0xAF, 0x4C, 0x1F, 0x0C, 0x17, 0xCD,
0x32, 0xED, 0xCB, 0x49, 0xDB, 0x67, 0x92, 0x9A, 0xB0, 0x44, 0x87, 0x03, 0x51, 0x99, 0x98, 0x09,
0x40, 0xB9, 0xD9, 0x79, 0x1D, 0x30, 0x09, 0x9A, 0x62, 0x0A, 0x48, 0x22, 0x6C, 0x59, 0x20, 0x42,
0xFA, 0x00, 0xC8, 0xB3, 0x8D, 0xD7, 0x02, 0x0F, 0x50, 0x97, 0x0B, 0x8E, 0x07, 0x82, 0x45, 0xF2,
0x48, 0x33, 0xBC, 0x76, 0xA1, 0xA5, 0x9A, 0xED, 0x40, 0x99, 0xE2, 0x1B, 0x45, 0x8F, 0xDE, 0x15,
0x89, 0x81, 0x47, 0xE1, 0xD9, 0xAF, 0xD3, 0xE9, 0x84, 0x42, 0xD0, 0x9B, 0x19, 0x64, 0xE0, 0x5A,
0x13, 0x35, 0x10, 0x81, 0xF0, 0xEE, 0x92, 0x12, 0x10, 0xBD, 0x2D, 0x01, 0xC0, 0xF4, 0x4F, 0x62,
0xFD, 0xBF, 0x3E, 0xEC, 0xD7, 0x09, 0x28, 0xDD, 0x5D, 0x6A, 0x0E, 0x3A, 0xEC, 0x97, 0x18, 0x1D,
0x60, 0x7F, 0xFC, 0x13, 0x4C, 0x67, 0x6E, 0x8D, 0xBC, 0xFD, 0x7C, 0x9F, 0x7E, 0x72, 0x32, 0x95,
0x99, 0xA1, 0xB0, 0x87, 0x1F, 0x52, 0xAC, 0x93, 0xE5, 0xDA, 0x5E, 0x7B, 0xD3, 0x07, 0x4F, 0x42,
0x3E, 0x81, 0x47, 0xF0, 0xFB, 0xDB, 0x45, 0x5A, 0xB2, 0xAC, 0x5E, 0xAD, 0x50, 0xF6, 0x22, 0xF0,
0xCC, 0x9E, 0xA1, 0xA5, 0xCB, 0x1F, 0xA7, 0x17, 0xE0, 0x9D, 0xF0, 0x02, 0xFE, 0x47, 0xB1, 0x16,
0xE2, 0x9E, 0xC3, 0xFD, 0xA5, 0x29, 0xA6, 0x40, 0x07, 0x8E, 0x5F, 0x54, 0x66, 0x5C, 0x10, 0xC2,
0xDD, 0xC4, 0xF2, 0x7C, 0xEA, 0xB5, 0x2A, 0xE9, 0xD7, 0x38, 0x48, 0xBF, 0x44, 0x74, 0x75, 0x0F,
0xA1, 0xA3, 0xC6, 0x9E, 0x7E, 0x4A, 0x4F, 0xC7, 0x29, 0x0B, 0xE5, 0xE3, 0xD2, 0x50, 0xD6, 0x70,
0x1E, 0xFD, 0x96, 0x36, 0xB3, 0xC7, 0x14, 0x70, 0xCB, 0xB0, 0x28, 0x20, 0xF4, 0x82, 0xF3, 0x99,
0xB6, 0xE4, 0xC7, 0xC9, 0xB5, 0xCD, 0x94, 0x69, 0xF8, 0x59, 0x49, 0x59, 0x9B, 0x51, 0xB1, 0x31,
0x76, 0x4B, 0xF2, 0xA7, 0x0C, 0x7D, 0x9C, 0xE3, 0xD1, 0x50, 0x44, 0x0D, 0x25, 0x4F, 0xCF, 0x1F,
0xF6, 0xDF, 0x21, 0x35, 0x0C, 0x92, 0x4B, 0xF8, 0x51, 0x5E, 0x47, 0x1F, 0x33, 0xCD, 0x23, 0x98,
0xE2, 0x96, 0xEE, 0x5C, 0x32, 0x25, 0xA9, 0xE3, 0x82, 0x32, 0x43, 0x7B, 0x44, 0xB7, 0xF0, 0x18,
0x27, 0xB1, 0xB4, 0xE8, 0x42, 0xA1, 0x19, 0x5D, 0xCB, 0xE2, 0xBF, 0x70, 0x4D, 0x4B, 0x7F, 0xCC,
0x43, 0x79, 0xB5, 0x07, 0x74, 0x10, 0xC1, 0x24, 0x46, 0x06, 0x30, 0x0B, 0xD0, 0xFF, 0x0A, 0x1E,
0x90, 0xC9, 0x06, 0x17, 0xDF, 0x5B, 0xD3, 0x14, 0x52, 0x26, 0x82, 0x8A, 0x19, 0x96, 0x25, 0x1D,
0xBA, 0x4C, 0xA1, 0x9C, 0x9C, 0xD5, 0x47, 0xF2, 0x7B, 0x55, 0x98, 0xB7, 0x38, 0xCC, 0xC9, 0xC7,
0x92, 0x9E, 0xE4, 0x98, 0x43, 0x5B, 0xC4, 0x25, 0xE4, 0xDD, 0x97, 0xB7, 0xFB, 0x1A, 0xE1, 0xBE,
0x44, 0x89, 0x3B, 0x63, 0x25, 0x70, 0x79, 0xDC, 0x59, 0xD5, 0x6A, 0xF8, 0xC4, 0x7C, 0x98, 0x93,
0x6C, 0x2E, 0x44, 0x46, 0x65, 0x14, 0xDF, 0xEC, 0x69, 0x17, 0x10, 0x1A, 0xFB, 0x1D, 0x9D, 0xD5,
0x03, 0x3A, 0xAB, 0x19, 0xA6, 0x78, 0x05, 0x80, 0x8D, 0x74, 0x12, 0xB6, 0xC6, 0x8F, 0x8E, 0x88,
0x78, 0x92, 0xDA, 0x15, 0xDE, 0x23, 0xE8, 0x9B, 0x73, 0x83, 0x87, 0x12, 0xDB, 0x44, 0x16, 0xFB,
0x91, 0xD3, 0x6C, 0xF6, 0x83, 0x06, 0xBC, 0x8C, 0x43, 0x46, 0x31, 0x4C, 0xE5, 0x17, 0x72, 0x74,
0x9B, 0xE2, 0x39, 0xED, 0xF3, 0x59, 0x0B, 0xBB, 0x0C, 0x9C, 0xBF, 0x3C, 0x32, 0x70, 0x1A, 0x3D,
0xFD, 0x1C, 0x00, 0x7D, 0x61, 0xFC, 0x37, 0x39, 0x99, 0x95, 0x37, 0xDE, 0x5E, 0xB4, 0x54, 0x56,
0x3D, 0xC3, 0xA2, 0x54, 0xC9, 0x80, 0x29, 0xA0, 0x08, 0x4A, 0x4A, 0x67, 0x2E, 0x90, 0xE4, 0x8C,
0x04, 0x47, 0xF1, 0xD4, 0xDC, 0xC1, 0x97, 0x8E, 0x77, 0x08, 0xDF, 0xAF, 0x3B, 0xFE, 0x94, 0x4A,
0xBB, 0xA7, 0x30, 0x4F, 0x68, 0xE6, 0xD3, 0xE9, 0x82, 0x96, 0x30, 0xA6, 0xD3, 0x8C, 0x29, 0xF6,
0x7B, 0x4E, 0x0F, 0x41, 0xDD, 0x5D, 0x87, 0x06, 0xE6, 0xD1, 0xF5, 0x52, 0x47, 0x1A, 0x5A, 0xFB,
0x82, 0x7A, 0x82, 0x70, 0xB8, 0xD0, 0x61, 0x1D, 0x82, 0x37, 0xEB, 0xFB, 0x0A, 0x0C, 0x36, 0x8C,
0x97, 0x55, 0xF6, 0x22, 0x29, 0x3A, 0xBA, 0xBB, 0x19, 0xB4, 0x72, 0x0F, 0x14, 0x74, 0xA2, 0xD2,
0xDB, 0xC3, 0x15, 0x66, 0x7A, 0x2A, 0xE2, 0x78, 0x95, 0x40, 0x87, 0x5C, 0x5E, 0x4E, 0x9A, 0x32,
0xC3, 0xE3, 0x75, 0x5C, 0xF9, 0xF8, 0x2E, 0x17, 0xB4, 0x18, 0xD7, 0xD9, 0xAF, 0xEC, 0x28, 0x2A,
0xD1, 0x46, 0x8A, 0x96, 0x5A, 0x4F, 0x5C, 0xC3, 0x25, 0x4C, 0x1D, 0xB3, 0x78, 0x2D, 0x45, 0x2A,
0x9B, 0x62, 0x64, 0x20, 0x34, 0xD7, 0xC8, 0x2D, 0xC9, 0xC9, 0x28, 0x96, 0x46, 0x39, 0x2F, 0xE8,
0x07, 0x47, 0x90, 0x0B, 0xDC, 0x9C, 0x31, 0x4C, 0x6C, 0x9E, 0x2D, 0x79, 0x4F, 0x13, 0x24, 0xAF,
0x77, 0x56, 0x29, 0xA4, 0x56, 0xBE, 0x82, 0xE9, 0x49, 0x41, 0x8A, 0xE5, 0xD1, 0x55, 0x4C, 0x09,
0xA6, 0xD0, 0x48, 0x17, 0x5A, 0x26, 0x10, 0x65, 0xD7, 0x08, 0xFE, 0xD2, 0xEA, 0x92, 0xCC, 0xCA,
0x0B, 0xEF, 0xF4, 0xD6, 0x4D, 0xCC, 0xCC, 0x3D, 0xCF, 0xFC, 0xF3, 0xCE, 0x37, 0x5B, 0x9B, 0x91,
0xEB, 0x6D, 0xB6, 0x72, 0x34, 0xBF, 0x63, 0x9C, 0xFA, 0xD4, 0x71, 0xEC, 0x33, 0xD8, 0x29, 0x9E,
0x78, 0xCD, 0xA3, 0x15, 0x85, 0xC3, 0x2A, 0x35, 0xCB, 0x55, 0x66, 0x7E, 0x25, 0xB8, 0xCB, 0x64,
0x1F, 0x24, 0x27, 0xCB, 0x67, 0x27, 0x98, 0x23, 0x1F, 0x4A, 0xE1, 0xDD, 0x68, 0x9D, 0x66, 0x94,
0xC0, 0x4D, 0x56, 0x2B, 0x3C, 0x5B, 0xAD, 0x41, 0x07, 0xBC, 0x93, 0x67, 0xC6, 0xC6, 0x6F, 0xE6,
0x30, 0xA3, 0x69, 0xD0, 0x04, 0xEF, 0x42, 0x54, 0xB7, 0x9B, 0xA0, 0x41, 0x08, 0x35, 0x31, 0x0B,
0x2C, 0x42, 0xCC, 0x5C, 0xF6, 0x40, 0xFD, 0x5B, 0x7A, 0x1D, 0xA8, 0x4D, 0xF3, 0x2C, 0xC7, 0x73,
0x58, 0x8E, 0x87, 0x32, 0x13, 0xFE, 0xFC, 0xDD, 0xDA, 0x14, 0x3D, 0xC2, 0xA2, 0x91, 0x8E, 0x32,
0xBC, 0x70, 0x8C, 0x05, 0xAA, 0x63, 0x68, 0x91, 0x05, 0x85, 0xA4, 0x14, 0x1F, 0xE4, 0xAC, 0x70,
0x9C, 0x4D, 0x29, 0x3E, 0xF8, 0x4C, 0x53, 0x7D, 0xA9, 0xA4, 0x3A, 0xFA, 0x93, 0xCF, 0xC0, 0x5B,
0xDF, 0x79, 0xB1, 0x92, 0xA8, 0x71, 0xA3, 0xA5, 0x16, 0xD7, 0x13, 0xCF, 0xB8, 0x94, 0x9B, 0x8D,
0x03, 0x3F, 0x66, 0x1C, 0xF7, 0x0C, 0x56, 0x15, 0x42, 0x64, 0xD7, 0xD9, 0x51, 0xD8, 0x41, 0x8A,
0x00, 0x11, 0x43, 0x81, 0x87, 0xF9, 0x1F, 0x41, 0x94, 0x29, 0xBE, 0x00, 0x73, 0xC4, 0x5B, 0x10,
0xA9, 0x70, 0x00, 0xD7, 0xCA, 0x6B, 0x53, 0x04, 0xA1, 0xD1, 0x9D, 0x26, 0xF8, 0x75, 0x03, 0x88,
0x66, 0x80, 0xE8, 0x3D, 0x40, 0x54, 0x94, 0x51, 0x85, 0x28, 0x65, 0xA9, 0xC8, 0x15, 0x33, 0xF5,
0x90, 0x59, 0x7A, 0x62, 0xBE, 0x4D, 0x86, 0x32, 0x34, 0xFC, 0xC7, 0xDA, 0x4C, 0x2E, 0x22, 0x3C,
0x1C, 0x7F, 0x00, 0x17, 0x05, 0x9E, 0x1F, 0x49, 0xF3, 0xBB, 0x2F, 0x9A, 0x18, 0xB1, 0x78, 0xB2,
0x18, 0xCC, 0xE3, 0xD8, 0xD8, 0x67, 0x4E, 0x64, 0x34, 0x33, 0xD1, 0x50, 0x4B, 0x1F, 0x52, 0x44,
0xF8, 0x0E, 0x09, 0x0C, 0xDD, 0x3F, 0x72, 0x19, 0xAF, 0x12, 0x23, 0xA5, 0x0D, 0x5B, 0x65, 0xE7,
0x5C, 0x92, 0xA4, 0xD8, 0x48, 0x92, 0x2C, 0x2D, 0x17, 0x1C, 0x8A, 0x43, 0x4A, 0xCB, 0xCD, 0x02,
0x33, 0xBE, 0x5E, 0xCD, 0xBB, 0xF6, 0x72, 0xD2, 0x47, 0xD0, 0xB4, 0xF9, 0xF9, 0x4D, 0xE3, 0x2B,
0xCB, 0xFC, 0x4D, 0x9B, 0x94, 0xCA, 0x34, 0xB8, 0x52, 0x4D, 0xD2, 0x58, 0x73, 0x4D, 0xE2, 0x92,
0x54, 0xED, 0x5F, 0x9B, 0xE5, 0x8C, 0xAE, 0x14, 0x04, 0x52, 0xB6, 0xF8, 0x2C, 0x82, 0x2C, 0x06,
0xB5, 0xB1, 0x4D, 0x33, 0xFF, 0x21, 0x79, 0xF2, 0x76, 0x76, 0xB0, 0xB0, 0xD5, 0x62, 0x6C, 0x8E,
0xE7, 0xFE, 0x1A, 0xD2, 0x77, 0xB6, 0x10, 0xCD, 0xE4, 0xA1, 0x93, 0x83, 0x98, 0x69, 0x0E, 0x4C,
0x19, 0x58, 0x36, 0x31, 0x70, 0xFA, 0xAC, 0x89, 0x7F, 0x5A, 0x92, 0x75, 0x27, 0x95, 0xF2, 0x06,
0x83, 0xCA, 0x20, 0xDA, 0x47, 0x24, 0x98, 0xDD, 0x69, 0xB1, 0x86, 0xAD, 0xB1, 0x29, 0xB8, 0x13,
0x4A, 0x44, 0xFB, 0x33, 0x6A, 0x2D, 0x63, 0xA2, 0x2E, 0x73, 0xEE, 0x08, 0x39, 0xBB, 0xF7, 0x66,
0x7D, 0x3F, 0x37, 0x99, 0x59, 0xA4, 0xAA, 0xD5, 0x8A, 0xF1, 0xF3, 0x2D, 0x73, 0x6E, 0xCF, 0x3C,
0x9D, 0x94, 0x33, 0x0A, 0x72, 0xD1, 0x2B, 0xB4, 0x58, 0x7F, 0x76, 0x4B, 0xCA, 0xF2, 0x23, 0xCB,
0xCD, 0x24, 0xA2, 0xE5, 0xAD, 0x10, 0x8E, 0x71, 0xB5, 0x66, 0xFF, 0x31, 0x93, 0xED, 0x52, 0x41,
0x04, 0xD0, 0x11, 0x73, 0xB7, 0x32, 0xD2, 0xE9, 0x8A, 0xB6, 0x04, 0x09, 0x17, 0xA1, 0xB0, 0x36,
0x4A, 0x7A, 0x29, 0x5F, 0x2B, 0x3F, 0x97, 0x9D, 0xDD, 0x7C, 0xA8, 0x3B, 0xF6, 0x50, 0xD4, 0x0A,
0x0E, 0x56, 0xAF, 0x98, 0x49, 0xF1, 0x1A, 0x1B, 0x24, 0xED, 0x59, 0xEE, 0x42, 0x98, 0x6E, 0x2A,
0xFD, 0xB3, 0x39, 0xA3, 0x19, 0x68, 0x87, 0xAC, 0x82, 0xFC, 0x25, 0xF9, 0x26, 0x23, 0xD9, 0xD2,
0xC3, 0xE6, 0x67, 0x01, 0xCB, 0xA3, 0xC2, 0x01, 0xD9, 0x05, 0x27, 0x58, 0xBA, 0x1B, 0xCF, 0x06,
0x1F, 0x34, 0xD9, 0x12, 0xC4, 0x43, 0xEB, 0xBF, 0x0A, 0x97, 0x3E, 0x28, 0x31, 0x38, 0xD8, 0xCD,
0x3A, 0xDA, 0x5E, 0x8D, 0x05, 0xED, 0x1B, 0xF5, 0xD6, 0x2C, 0x9C, 0xBF, 0x47, 0x08, 0x3F, 0x15,
0x56, 0xB7, 0xFA, 0x78, 0x7C, 0xE6, 0x45, 0x96, 0xFF, 0x7A, 0x08, 0x53, 0x9A, 0xC3, 0x1D, 0x69,
0x7C, 0x2A, 0x06, 0x38, 0x98, 0xD3, 0xE8, 0x47, 0xB7, 0x3E, 0x68, 0xC6, 0x36, 0x6B, 0xF5, 0xEE,
0xD8, 0x30, 0xB0, 0x03, 0x15, 0x0B, 0xA6, 0x30, 0x2A, 0x06, 0xC3, 0x6E, 0x5B, 0x39, 0x61, 0xE4,
0xEA, 0x35, 0xAB, 0x75, 0x23, 0x5D, 0x56, 0x87, 0x72, 0xB3, 0xD8, 0xBD, 0xE7, 0x56, 0x15, 0x0F,
0xC9, 0x7E, 0x68, 0x71, 0x35, 0x84, 0x39, 0x7D, 0x88, 0xEE, 0xF4, 0x21, 0x26, 0xE2, 0xC0, 0xB7,
0x4C, 0xE0, 0x1E, 0xF9, 0xC8, 0xAC, 0x0E, 0xB0, 0x11, 0x98, 0x34, 0xE0, 0x96, 0xCB, 0x06, 0xEF,
0x4B, 0xEE, 0x5D, 0xC6, 0xCA, 0xBA, 0x1E, 0x08, 0x47, 0x2F, 0x52, 0xB1, 0x66, 0x25, 0xC2, 0x36,
0x58, 0x8A, 0x91, 0x1E, 0x13, 0xF0, 0x7F, 0xED, 0x54, 0x0F, 0x13, 0x8A, 0xE5, 0x4F, 0x3A, 0xEC,
0xAF, 0x64, 0x84, 0x72, 0xF1, 0x76, 0x99, 0x44, 0x0B, 0x58, 0xBB, 0xC3, 0x64, 0xC9, 0xD4, 0xE6,
0xD6, 0x52, 0x52, 0x88, 0x55, 0xEE, 0x6D, 0x6A, 0x0F, 0x3F, 0x51, 0x8D, 0x4F, 0x59, 0x98, 0x90,
0x51, 0x00, 0x54, 0x0E, 0xBE, 0x2E, 0x67, 0x4C, 0xBB, 0x2D, 0x29, 0x22, 0x04, 0xD8, 0xEF, 0x6C,
0xDE, 0x2E, 0x2A, 0xD7, 0xBE, 0x55, 0xEB, 0x1C, 0x20, 0xAF, 0xA4, 0xA3, 0x33, 0x48, 0xCA, 0x49,
0x79, 0xE8, 0x1C, 0x7C, 0xEB, 0xF4, 0x2C, 0x94, 0xF2, 0xA7, 0x77, 0x12, 0xFD, 0xA6, 0x63, 0x0D,
0x91, 0x0C, 0xCF, 0x19, 0x68, 0x7B, 0x27, 0x89, 0x57, 0xDA, 0x27, 0xB6, 0x59, 0xA9, 0x76, 0x33,
0xD8, 0x5D, 0x47, 0xC7, 0xE5, 0xDA, 0xA7, 0x54, 0x18, 0x72, 0x4F, 0x74, 0x7C, 0x3C, 0xCB, 0xB4,
0x4A, 0x4B, 0xF5, 0xEB, 0x77, 0xAD, 0x3F, 0x78, 0x7A, 0x5A, 0xEA, 0xE0, 0xE8, 0x29, 0xD2, 0x99,
0x4B, 0x1F, 0xEE, 0xCB, 0xA9, 0x6D, 0xD7, 0x75, 0x56, 0x6A, 0xBB, 0xDC, 0x05, 0x8C, 0xF4, 0x10,
0xCC, 0x92, 0x22, 0xFA, 0x7A, 0x63, 0xA3, 0xC5, 0xB0, 0x8A, 0x72, 0xF8, 0x80, 0x9B, 0x85, 0x18,
0x9F, 0x7E, 0x66, 0xC6, 0x69, 0x6F, 0x34, 0xAB, 0xF1, 0xB7, 0x57, 0xAB, 0x2F, 0x4F, 0x21, 0x5B,
0x91, 0xA8, 0x52, 0xA1, 0x76, 0xE9, 0xC1, 0x8A, 0x21, 0x3D, 0x4E, 0x85, 0x6C, 0xAB, 0xE0, 0xA5,
0x7B, 0x5C, 0xD0, 0x47, 0xAB, 0xA1, 0x88, 0xF3, 0x13, 0xCC, 0x5F, 0x20, 0x2E, 0x00, 0x7C, 0xF4,
0x5D, 0xDE, 0x76, 0xFB, 0x30, 0x63, 0x0E, 0x62, 0xC9, 0x44, 0x1F, 0xD4, 0x78, 0x24, 0x7B, 0xED,
0xF7, 0xE2, 0x5D, 0x64, 0xC9, 0xD1, 0x09, 0x1B, 0xF9, 0xE7, 0x13, 0x01, 0x12, 0xBD, 0x25, 0xA0,
0x97, 0x42, 0x3E, 0x96, 0x8F, 0xE7, 0x59, 0x6D, 0x9F, 0xEC, 0x5B, 0xC4, 0x6D, 0xF4, 0xF0, 0x0D,
0x95, 0x98, 0x1B, 0x45, 0x11, 0x85, 0x54, 0x42, 0x58, 0x6B, 0xCD, 0xE6, 0x2A, 0x4B, 0x03, 0xF7,
0x31, 0x77, 0x69, 0x62, 0x6E, 0x3F, 0x80, 0x47, 0xAD, 0xB0, 0x68, 0x59, 0x62, 0xF7, 0x86, 0xCD,
0x00, 0xF0, 0x68, 0x99, 0xAC, 0xB7, 0xBA, 0xFA, 0xC6, 0xBA, 0x99, 0x36, 0x36, 0x89, 0x6C, 0x3A,
0xF0, 0x8A, 0x95, 0xF0, 0xA9, 0x4D, 0x30, 0xFF, 0x65, 0xEF, 0xB0, 0x61, 0xDA, 0x9A, 0xD0, 0x08,
0xB1, 0xCE, 0xF9, 0xDD, 0x29, 0x18, 0x8E, 0xDF, 0x80, 0x57, 0x77, 0xE7, 0x6E, 0xE7, 0x8D, 0xD5,
0x36, 0xE4, 0x30, 0xC9, 0xB3, 0x32, 0xE6, 0x9F, 0x2A, 0xA8, 0x93, 0xDA, 0x3B, 0x84, 0xCA, 0xA7,
0x03, 0x95, 0x31, 0x81, 0xF6, 0xC3, 0xCA, 0x84, 0x6F, 0x41, 0xDB, 0xB7, 0x70, 0xA7, 0x0E, 0x02,
0x0A, 0x7C, 0xF1, 0x11, 0xD4, 0xCB, 0xF8, 0x46, 0x6D, 0x0B, 0x31, 0xDC, 0xA2, 0xD6, 0x61, 0x97,
0x08, 0x11, 0xF6, 0xC4, 0x39, 0xF7, 0xFC, 0x47, 0x51, 0xBE, 0xD0, 0x99, 0x09, 0xB6, 0xDD, 0x58,
0xC6, 0xD3, 0xA1, 0x09, 0xAB, 0x16, 0x5A, 0x19, 0x80, 0xCC, 0x5E, 0xC5, 0xD3, 0xD8, 0xAB, 0xF1,
0xCC, 0x28, 0xA5, 0xE4, 0x31, 0x2A, 0x3F, 0xC0, 0x37, 0x19, 0x5B, 0x14, 0x6E, 0x35, 0xC0, 0x6D,
0x6E, 0xBE, 0xDB, 0xC6, 0x55, 0xD3, 0x7B, 0x43, 0x8B, 0x15, 0xE9, 0xE2, 0xA9, 0x7F, 0x14, 0x40,
0x3E, 0x41, 0x64, 0x55, 0x74, 0xA2, 0xA5, 0xE6, 0xD2, 0xF1, 0x3F, 0xC9, 0xF5, 0x53, 0x32, 0xB6,
0x6E, 0xEB, 0x6C, 0x2D, 0x57, 0x7B, 0x46, 0xFB, 0xA2, 0x5F, 0xC9, 0xB7, 0x36, 0xCC, 0x7C, 0x25,
0xF8, 0x12, 0xA5, 0x62, 0x2D, 0x87, 0xA7, 0x3C, 0x0E, 0x85, 0xC7, 0xC7, 0x5F, 0xC3, 0xE3, 0x41,
0x45, 0xC5, 0x65, 0x16, 0xAF, 0xBC, 0xD2, 0x33, 0xBD, 0xF4, 0x63, 0xEB, 0x7A, 0xF3, 0xF3, 0x18,
0x17, 0x33, 0x1A, 0xCC, 0xA2, 0x87, 0xA9, 0xF0, 0xF3, 0xB5, 0x12, 0x82, 0xEF, 0x37, 0xA5, 0xC7,
0x87, 0xA5, 0xC9, 0x24, 0xB2, 0x13, 0x09, 0xB5, 0x5A, 0x0A, 0x30, 0x23, 0xFE, 0x52, 0x23, 0x2A,
0x99, 0x0C, 0x55, 0x83, 0x6D, 0x60, 0x9B, 0x35, 0x40, 0x23, 0xC3, 0x34, 0xBC, 0xB4, 0x05, 0x7C,
0x4C, 0x31, 0x63, 0x2D, 0x23, 0xCD, 0xAD, 0x49, 0x91, 0x4D, 0x31, 0xBB, 0xD5, 0xE9, 0x6C, 0xF4,
0x1F, 0xCB, 0xC6, 0xC7, 0x71, 0xCD, 0x0A, 0x7A, 0x34, 0xC5, 0xE3, 0x97, 0xF1, 0xB8, 0xDF, 0x44,
0x87, 0xAF, 0xEC, 0xDF, 0x02, 0x63, 0xCB, 0xD4, 0xFA, 0xC3, 0x47, 0x79, 0xD4, 0xD5, 0x4B, 0x76,
0xD4, 0xDA, 0x49, 0xA5, 0xF6, 0x60, 0x6C, 0x43, 0x81, 0x60, 0xAC, 0xC9, 0xED, 0x81, 0xD5, 0xAC,
0x60, 0x96, 0xE5, 0xFA, 0xD2, 0xAA, 0x5D, 0xBC, 0x00, 0x0E, 0xA4, 0x6C, 0xA5, 0x81, 0xED, 0x23,
0x05, 0x75, 0x17, 0xF8, 0x06, 0xA3, 0xFD, 0x5E, 0x78, 0xB7, 0x4C, 0x6C, 0x6B, 0x05, 0xB3, 0x88,
0xD8, 0x93, 0xD2, 0xCA, 0x10, 0xFA, 0xAB, 0x5C, 0xFB, 0x33, 0x1B, 0xA5, 0xA9, 0x6D, 0x9B, 0x33,
0x04, 0x1C, 0x7B, 0x74, 0xCA, 0x66, 0x5C, 0xED, 0x96, 0x43, 0xA9, 0xE4, 0x23, 0xEF, 0x23, 0xB7,
0x8C, 0xEB, 0x22, 0x40, 0xE2, 0x6A, 0xC5, 0xB9, 0x38, 0x11, 0x22, 0xD2, 0x80, 0xD9, 0xF1, 0x3A,
0xEC, 0x84, 0xD9, 0x4F, 0xAE, 0x38, 0x75, 0x6D, 0x2B, 0x4C, 0xFC, 0xE1, 0x95, 0x1B, 0x0D, 0x97,
0xBC, 0x5A, 0xE5, 0xE4, 0x1B, 0x2B, 0x8E, 0x49, 0xBE, 0x5B, 0xCD, 0xE2, 0xF1, 0x5A, 0xFD, 0xA7,
0xCB, 0x18, 0xCC, 0xBE, 0x64, 0xE2, 0x9B, 0x60, 0xD7, 0xB3, 0xB6, 0xBB, 0xB2, 0xA3, 0xBA, 0x00,
0x8C, 0xF3, 0x1D, 0x1C, 0x2F, 0xC3, 0x3B, 0x5B, 0x9F, 0x1D, 0x39, 0x04, 0xE4, 0xBD, 0x7F, 0xD4,
0x04, 0xBF, 0x02, 0x48, 0xEF, 0x19, 0xAE, 0xBA, 0x33, 0x88, 0x5C, 0x09, 0x25, 0xB2, 0x94, 0xB5,
0x90, 0xBE, 0xD7, 0x4A, 0x06, 0x6B, 0x1E, 0x71, 0x39, 0xC3, 0x31, 0x60, 0xC1, 0x2A, 0x9F, 0x26,
0x36, 0x18, 0xC0, 0x28, 0x83, 0xAE, 0x29, 0x14, 0xC6, 0xFF, 0x8D, 0x51, 0x46, 0x2D, 0xD8, 0x4B,
0x67, 0x77, 0x73, 0xDB, 0xE8, 0x61, 0x5C, 0x75, 0xCE, 0xD8, 0x50, 0x9C, 0xD4, 0x7B, 0x4A, 0x1A,
0xC0, 0x46, 0x26, 0x55, 0x16, 0x2C, 0xA9, 0x09, 0x27, 0x7E, 0xB3, 0xF1, 0xE3, 0x5E, 0x20, 0xEB,
0xED, 0x2D, 0xF1, 0x05, 0x61, 0x66, 0xEE, 0xD5, 0x16, 0xBF, 0xEF, 0x53, 0x9C, 0xBF, 0x47, 0x97,
0x00, 0xF7, 0xB8, 0xAF, 0xC3, 0xC1, 0x19, 0xD3, 0x82, 0xC5, 0x44, 0x66, 0x9F, 0xCF, 0x7E, 0x02,
0x71, 0x46, 0xB8, 0x0A, 0xDB, 0xFC, 0xB0, 0x92, 0x1C, 0x62, 0xC6, 0xF9, 0xE3, 0x2B, 0x97, 0xDD,
0xF4, 0x0C, 0x32, 0x99, 0x18, 0x80, 0x8B, 0x91, 0x34, 0x52, 0xD8, 0x4B, 0xF3, 0xB0, 0x75, 0x73,
0x37, 0x5C, 0xFA, 0x2D, 0x28, 0xD5, 0x12, 0xF2, 0xCA, 0xBE, 0x95, 0xF4, 0x78, 0x3C, 0x65, 0xD5,
0xA4, 0x4D, 0x6F, 0x98, 0xA2, 0xB2, 0xBD, 0x5D, 0xB6, 0x36, 0x6A, 0x03, 0x95, 0x7B, 0xB5, 0xD6,
0xDA, 0x63, 0x6C, 0xD9, 0x4F, 0x44, 0x33, 0x49, 0x53, 0xC5, 0xF4, 0x34, 0xC6, 0x66, 0x16, 0x2B,
0xA5, 0x66, 0x73, 0x21, 0x23, 0x93, 0x65, 0x72, 0x6D, 0xB1, 0x09, 0x22, 0xE8, 0x6B, 0x68, 0xF9,
0xF8, 0x07, 0x8D, 0xCA, 0xA9, 0xB7, 0xD4, 0xBE, 0x13, 0x7F, 0xB7, 0xB3, 0x65, 0xD5, 0x9E, 0x56,
0x20, 0x35, 0x83, 0x2D, 0xAC, 0xB2, 0x21, 0x89, 0xA6, 0xEE, 0xCF, 0x1B, 0xEE, 0x9F, 0x84, 0xCD,
0x51, 0x57, 0x4D, 0xFC, 0x9F, 0x35, 0x7D, 0x97, 0xE8, 0x5D, 0xAD, 0x58, 0x70, 0x57, 0xCE, 0x9A,
0xC8, 0xED, 0xA4, 0x6B, 0x7D, 0xFB, 0x85, 0x35, 0x72, 0xA6, 0xA4, 0xEC, 0xE4, 0x27, 0x3E, 0xDF,
0x5F, 0xA9, 0x03, 0xCA, 0x97, 0xD6, 0x8F, 0xD2, 0x26, 0xBD, 0x10, 0x9E, 0x4C, 0xB8, 0x6E, 0x0D,
0x66, 0x77, 0x5A, 0xF4, 0xD1, 0x98, 0x87, 0xF5, 0x00, 0x29, 0x7D, 0xF9, 0xEF, 0x3A, 0x73, 0xB5,
0x0B, 0x6B, 0xFF, 0xEE, 0x14, 0x7E, 0x6C, 0x8F, 0xC9, 0x33, 0xFA, 0xB5, 0xAC, 0x66, 0x87, 0xAC,
0x81, 0xA6, 0x53, 0x7C, 0x47, 0x67, 0x1C, 0x5F, 0x40, 0x34, 0x42, 0xE3, 0x27, 0xE0, 0xBC, 0xDD,
0x02, 0xF1, 0xD9, 0x1C, 0x2B, 0x42, 0x83, 0xC6, 0x25, 0xF9, 0x7C, 0x02, 0xB7, 0x32, 0xF1, 0x36,
0x2F, 0xE8, 0x1C, 0x3C, 0xE7, 0xDC, 0xB9, 0x42, 0xFA, 0xEA, 0x2D, 0x79, 0xB9, 0x17, 0x3A, 0x6F,
0x0E, 0x2F, 0x24, 0x5D, 0x9A, 0xE4, 0xDA, 0xDD, 0xCE, 0x6C, 0x6F, 0x87, 0xB5, 0xF7, 0x61, 0x0D,
0x97, 0xFF, 0x97, 0x40, 0x2A, 0x63, 0xA2, 0x64, 0x44, 0x2C, 0x00, 0xB7, 0x78, 0xC2, 0x9D, 0xDF,
0xB2, 0x44, 0x5C, 0x06, 0x74, 0xB3, 0x31, 0x24, 0x6F, 0x86, 0xD5, 0x77, 0x5B, 0x93, 0xB2, 0x03,
0x6C, 0xE8, 0x32, 0x00, 0x92, 0x77, 0xAE, 0x74, 0x89, 0xCF, 0xF7, 0x56, 0xE4, 0x48, 0x53, 0xAC,
0x1D, 0x2F, 0x69, 0xF8, 0xE6, 0x9E, 0xAE, 0x05, 0xAF, 0x12, 0x45, 0x7E, 0xE3, 0xB2, 0x8B, 0xD2,
0xA8, 0x66, 0xE1, 0xFA, 0xF1, 0xFA, 0x4D, 0xAE, 0xFC, 0xFC, 0x73, 0x2F, 0xE6, 0xB9, 0x47, 0x0B,
0x97, 0xB1, 0x8D, 0x87, 0x1A, 0x02, 0x54, 0xFA, 0x1F, 0xB4, 0xCE, 0x05, 0x09, 0xBB, 0xA3, 0x25,
0xFB, 0xB4, 0xC5, 0xDC, 0x06, 0x12, 0xAE, 0x45, 0x4B, 0x19, 0x58, 0x27, 0x41, 0xD6, 0xE9, 0x77,
0x81, 0x54, 0xBF, 0xEE, 0xDA, 0xC0, 0x43, 0xF0, 0x12, 0x2F, 0xD4, 0x89, 0x84, 0x06, 0x4C, 0x74,
0x19, 0x1B, 0x9A, 0x26, 0xDB, 0xB2, 0x47, 0x13, 0x19, 0xA9, 0x5F, 0xCA, 0x28, 0x8D, 0xE2, 0x97,
0xD2, 0x03, 0x95, 0x35, 0xD5, 0x8F, 0x6D, 0x8B, 0x68, 0x6D, 0xAC, 0x9B, 0x6C, 0x0D, 0x19, 0x65,
0x92, 0x62, 0x44, 0xDF, 0xC4, 0x6F, 0x64, 0xC0, 0x07, 0xB5, 0x57, 0xB0, 0x64, 0x64, 0x85, 0xE9,
0x3E, 0xD7, 0x76, 0xFB, 0x77, 0xAF, 0x6D, 0xB7, 0xB1, 0xB6, 0xF3, 0xD3, 0xD7, 0xB6, 0xDE, 0x58,
0xDB, 0xF0, 0xB7, 0xAD, 0x2D, 0x5D, 0x30, 0xF6, 0x8C, 0x18, 0xAD, 0xED, 0xF6, 0x66, 0x93, 0x8B,
0xFA, 0xFE, 0xE0, 0xD5, 0x0A, 0xC2, 0xF8, 0x4E, 0x6D, 0xD3, 0x2C, 0x02, 0x57, 0x01, 0x1C, 0x36,
0xDD, 0x90, 0x8C, 0x0C, 0x25, 0xB1, 0xE7, 0x82, 0x5F, 0xD4, 0x13, 0x6D, 0xB9, 0x79, 0x1D, 0x55,
0xDC, 0x71, 0x31, 0xC8, 0xE5, 0x86, 0xF3, 0xE8, 0xB7, 0x60, 0xBF, 0x55, 0xCC, 0x58, 0xB2, 0x67,
0x03, 0x58, 0x4C, 0x80, 0x60, 0x9A, 0x33, 0xB5, 0x80, 0xCD, 0x56, 0xC7, 0x53, 0x69, 0xC4, 0xD9,
0xCA, 0x6B, 0xB6, 0xCE, 0xFA, 0xA3, 0x08, 0x6B, 0xE3, 0x3B, 0x95, 0xAD, 0x4F, 0x15, 0x9A, 0x35,
0x55, 0xED, 0x47, 0xBE, 0x97, 0xB7, 0xB3, 0x93, 0x9B, 0x8F, 0x2F, 0xA2, 0xBC, 0x6D, 0x5C, 0x89,
0x34, 0x3D, 0xDC, 0xEF, 0x89, 0x75, 0xD4, 0xB3, 0x9E, 0x11, 0xB5, 0x8C, 0x6D, 0x62, 0x75, 0x21,
0xA5, 0x25, 0xA5, 0xA5, 0x90, 0x87, 0xD0, 0x53, 0x64, 0x82, 0x96, 0x46, 0x28, 0x7E, 0x83, 0x37,
0x0A, 0x3E, 0xE1, 0xF5, 0x0C, 0x81, 0xA2, 0x9F, 0xF7, 0xAB, 0x70, 0xC6, 0x53, 0x31, 0x25, 0xAE,
0x0B, 0x19, 0x55, 0x36, 0xC4, 0x6A, 0xBC, 0x62, 0x1A, 0xF4, 0x6C, 0x92, 0x60, 0xE7, 0x59, 0xCE,
0xB4, 0x73, 0x4D, 0x07, 0x57, 0x01, 0x16, 0x1B, 0x87, 0x3D, 0xE6, 0x57, 0x8B, 0x13, 0x09, 0x31,
0xAB, 0xD6, 0xD4, 0x63, 0x05, 0x53, 0x7A, 0x7B, 0x04, 0x39, 0x71, 0x05, 0xC9, 0xEA, 0xC0, 0xF9,
0x1C, 0xB2, 0x95, 0x5C, 0x6B, 0x20, 0x62, 0x58, 0xAD, 0x6E, 0xE2, 0xF2, 0xCB, 0xBC, 0x89, 0xB5,
0x8F, 0x4B, 0x66, 0x61, 0xE2, 0x2A, 0x6A, 0x82, 0x61, 0xDF, 0xA5, 0xF2, 0xC6, 0xE9, 0x89, 0x7A,
0x99, 0xDF, 0x78, 0x0C, 0xB1, 0x6A, 0xEA, 0xA8, 0x44, 0x33, 0xDB, 0x82, 0xD9, 0xD9, 0xFC, 0xF4,
0x8C, 0xC0, 0x47, 0x2A, 0x0F, 0x30, 0x79, 0xC6, 0xAE, 0x34, 0x48, 0xBB, 0x3F, 0xD2, 0xCA, 0xC3,
0xA3, 0x5A, 0xB0, 0xC7, 0x41, 0x79, 0xC1, 0x86, 0x18, 0x25, 0x37, 0x05, 0x86, 0x14, 0xD8, 0x52,
0x46, 0xED, 0x57, 0x2A, 0xC7, 0x59, 0xD0, 0x88, 0x8E, 0xDF, 0x11, 0xB4, 0xF8, 0xC7, 0xBC, 0x5D,
0x30, 0x1A, 0x0A, 0x3A, 0xA5, 0x11, 0x4B, 0xBC, 0xEE, 0x69, 0xBC, 0x84, 0x6D, 0xA9, 0x3E, 0x6B,
0xF1, 0xB7, 0x17, 0x95, 0x5B, 0x26, 0xB3, 0x7B, 0x54, 0xF2, 0xFB, 0x16, 0x42, 0x9A, 0x3D, 0xF3,
0x34, 0x5E, 0xD9, 0xB3, 0x6D, 0xC2, 0xC5, 0xD2, 0x1C, 0x4F, 0xB2, 0xAD, 0x9A, 0x9A, 0x99, 0xB9,
0x59, 0xDC, 0xE8, 0x59, 0x7C, 0xCE, 0x89, 0x0A, 0x73, 0x10, 0x80, 0x6A, 0xC2, 0x58, 0x84, 0xF8,
0xBD, 0x85, 0x6D, 0xD6, 0xCE, 0xA9, 0x97, 0x70, 0x13, 0xF8, 0x65, 0x94, 0x45, 0x38, 0x40, 0xC0,
0xFA, 0x70, 0x51, 0xCA, 0xBD, 0x8A, 0x36, 0x5B, 0x7F, 0xBE, 0x88, 0x68, 0xC5, 0xA8, 0x3D, 0x1B,
0x64, 0x51, 0x99, 0x44, 0xCB, 0x98, 0xC9, 0xD7, 0xBA, 0x50, 0x62, 0x67, 0x90, 0x31, 0xA8, 0x4F,
0x69, 0x6B, 0x74, 0x5C, 0x58, 0xF4, 0x10, 0xDD, 0x72, 0x70, 0x46, 0xB5, 0x56, 0xDA, 0x2C, 0x7C,
0xC4, 0x2C, 0x6C, 0xD4, 0xFF, 0xD6, 0x58, 0x71, 0x13, 0x7E, 0x4D, 0x21, 0x0F, 0xD5, 0x5E, 0x25,
0x6F, 0xB5, 0x00, 0xAC, 0x16, 0x72, 0xC7, 0x15, 0x84, 0x4F, 0xAD, 0xC0, 0x59, 0x04, 0x01, 0x32,
0x34, 0x2B, 0x56, 0x27, 0xAD, 0x9D, 0xC4, 0x39, 0x08, 0x2F, 0xD8, 0xE2, 0xFA, 0x17, 0x0C, 0x06,
0x9F, 0x45, 0xA5, 0x1D, 0x34, 0xBB, 0x86, 0x28, 0xAA, 0xC3, 0x9B, 0x94, 0x1D, 0x83, 0xC8, 0xD1,
0x78, 0xF9, 0xF9, 0x93, 0x38, 0xB2, 0xBC, 0x21, 0x20, 0x21, 0x54, 0xAD, 0xB2, 0x7C, 0xEC, 0x15,
0x60, 0x27, 0xC3, 0x84, 0x0A, 0x83, 0xCD, 0xEB, 0x11, 0x5B, 0xA1, 0xB3, 0x9C, 0x60, 0xFA, 0x54,
0x67, 0x44, 0x93, 0x9A, 0x90, 0xA9, 0x21, 0x50, 0x34, 0xE2, 0x65, 0xEB, 0xAE, 0xDA, 0xBE, 0x6A,
0xB6, 0x17, 0x50, 0xC9, 0xA9, 0xBA, 0x50, 0x9B, 0xC5, 0xE1, 0xB7, 0x3F, 0xDA, 0xD9, 0xCD, 0xE3,
0x8E, 0x5A, 0xF9, 0x92, 0xB1, 0xCA, 0xAE, 0x89, 0x94, 0xCB, 0x0E, 0xF2, 0xC2, 0x3A, 0x49, 0x2A,
0x16, 0xE4, 0xEB, 0xD2, 0x8C, 0xB1, 0x1D, 0x71, 0xB6, 0x5A, 0xF3, 0xE6, 0x8E, 0x6E, 0x2F, 0x46,
0x49, 0x90, 0x0F, 0x15, 0xE0, 0xBB, 0x9A, 0x42, 0xD4, 0xB8, 0x34, 0xAD, 0xF5, 0xA8, 0xF9, 0x63,
0x7A, 0x0B, 0x2C, 0x78, 0x00, 0xDF, 0x47, 0x03, 0x9B, 0x74, 0x6B, 0x22, 0x05, 0x93, 0x51, 0x09,
0x12, 0x12, 0x2A, 0xD7, 0x64, 0xF8, 0x97, 0x71, 0xE7, 0xF9, 0x56, 0xB5, 0x22, 0xC6, 0x2D, 0x5B,
0xFC, 0x32, 0x70, 0xE8, 0x7C, 0x8B, 0xAD, 0xEB, 0x23, 0x9B, 0xB5, 0x17, 0x37, 0xBA, 0x61, 0xBF,
0x84, 0xB4, 0x8C, 0xD0, 0x5A, 0x0D, 0x56, 0x35, 0x2E, 0xB5, 0xD1, 0x29, 0x4F, 0x58, 0x0E, 0xC1,
0x02, 0xBD, 0x06, 0xA7, 0x20, 0x62, 0x5F, 0x7F, 0x7C, 0x87, 0x8E, 0x05, 0xF3, 0xBF, 0xDC, 0xAB,
0x12, 0x99, 0xC0, 0xE6, 0x30, 0x21, 0x0F, 0xDF, 0x02, 0x4E, 0x83, 0x49, 0xB1, 0x69, 0xEF, 0x42,
0xF6, 0x10, 0x87, 0x73, 0xE7, 0x02, 0xFC, 0x85, 0x75, 0x74, 0xD4, 0xEE, 0x9F, 0xAC, 0x4B, 0x7E,
0x8C, 0x03, 0xAC, 0x15, 0xB5, 0x8D, 0xB6, 0x27, 0x3B, 0x23, 0x77, 0xDD, 0x69, 0x06, 0x16, 0x2B,
0xFF, 0x5B, 0x9A, 0xDC, 0x57, 0x27, 0x7E, 0x5C, 0xBB, 0x6E, 0xBC, 0x8C, 0x34, 0x84, 0x6A, 0xC9,
0x9B, 0x2B, 0x74, 0xAE, 0xA8, 0xEC, 0xB9, 0x55, 0x10, 0x88, 0x81, 0x1C, 0x4F, 0x5A, 0x2A, 0x55,
0x03, 0x40, 0x4B, 0x8B, 0x98, 0xD9, 0x22, 0x40, 0x2A, 0x3B, 0xA6, 0xFE, 0xE9, 0x50, 0x6D, 0xEC,
0x99, 0xC2, 0xEE, 0x81, 0xBA, 0x20, 0xEC, 0x99, 0x43, 0x48, 0xDA, 0xC5, 0xB8, 0x4E, 0x79, 0x98,
0x2F, 0xDB, 0x45, 0x1A, 0xB4, 0x00, 0x7C, 0x03, 0xB3, 0x7C, 0x69, 0x93, 0xD2, 0xFD, 0xE9, 0xD5,
0xAC, 0x4F, 0xDF, 0x1D, 0xDF, 0x18, 0x4C, 0x37, 0x56, 0xF1, 0xAE, 0xF1, 0x3E, 0xC4, 0xEE, 0x7C,
0x55, 0x86, 0x2F, 0xD3, 0xE1, 0x0B, 0xC6, 0x27, 0x5C, 0xB2, 0x8D, 0xA8, 0x29, 0xB7, 0x29, 0x52,
0xAB, 0xCB, 0xED, 0xC1, 0x03, 0xDB, 0xBE, 0xA8, 0x90, 0x2A, 0xD5, 0x6B, 0x83, 0x63, 0xD2, 0xF2,
0x3B, 0x61, 0x58, 0x61, 0x6D, 0xF2, 0x52, 0x79, 0xF6, 0x92, 0x38, 0xF6, 0x17, 0x7A, 0xD7, 0x57,
0xE8, 0x2B, 0x63, 0x9A, 0x3D, 0x5B, 0x6B, 0xFB, 0x71, 0x3B, 0x29, 0x0D, 0x5E, 0x53, 0x84, 0x0E,
0x48, 0x41, 0xCC, 0x04, 0x38, 0x0D, 0x79, 0xCD, 0x6C, 0x54, 0x51, 0x22, 0x00, 0xF3, 0xC6, 0x6F,
0xE0, 0x2D, 0xBF, 0x5F, 0xA9, 0xC9, 0xEB, 0xEB, 0x96, 0xE3, 0x8D, 0xCC, 0xA0, 0xED, 0xDE, 0x9F,
0xAD, 0x33, 0x51, 0xB6, 0x84, 0x04, 0xAE, 0x83, 0xF1, 0xF5, 0x21, 0x24, 0xDB, 0xF1, 0xCB, 0x70,
0x5F, 0x76, 0x41, 0x07, 0xCC, 0x29, 0x18, 0x57, 0xE3, 0x0B, 0xB3, 0x62, 0xDC, 0xFE, 0x85, 0x8B,
0xED, 0x7A, 0xFB, 0x4F, 0x69, 0x45, 0x57, 0x90, 0x09, 0x36, 0x0C, 0x46, 0x54, 0x59, 0xA7, 0x91,
0x30, 0x31, 0xD3, 0x45, 0x6F, 0x23, 0x5B, 0xF9, 0xBE, 0x90, 0x9D, 0xF3, 0xBC, 0xC5, 0x87, 0x96,
0xE2, 0xAA, 0x59, 0xCA, 0x58, 0xE6, 0xAB, 0x4E, 0x64, 0x4B, 0xEE, 0x1F, 0x9F, 0x34, 0x92, 0x9F,
0x3D, 0xB0, 0x8F, 0x41, 0x19, 0x6C, 0xB3, 0x98, 0xC0, 0xD4, 0xC7, 0xCB, 0x90, 0xB4, 0xD1, 0x76,
0x1C, 0xF8, 0xC7, 0xFB, 0x23, 0x1E, 0xEE, 0xC2, 0x0A, 0x42, 0x54, 0x17, 0x7D, 0x51, 0x53, 0x8A,
0xCC, 0x07, 0x8D, 0xC4, 0xC8, 0xBF, 0x6B, 0x1D, 0xA8, 0xC0, 0x7A, 0x62, 0x47, 0xF5, 0xAB, 0xD2,
0xD5, 0xAF, 0xEC, 0xA9, 0x80, 0x75, 0xC3, 0xB2, 0x2B, 0x26, 0xF9, 0x95, 0x75, 0x4E, 0x19, 0x74,
0xB2, 0x3D, 0x2B, 0x79, 0xFB, 0x84, 0x2F, 0x0E, 0x63, 0x44, 0x9D, 0xEA, 0x8D, 0x37, 0x06, 0x30,
0x0D, 0x97, 0x06, 0x8E, 0x5D, 0x96, 0x7B, 0xEC, 0x7B, 0xF9, 0x8E, 0x3A, 0xFE, 0x58, 0xA9, 0x84,
0x26, 0xB1, 0x67, 0x33, 0x64, 0x5A, 0x17, 0x8D, 0xDB, 0xB4, 0xAC, 0x4B, 0xF9, 0x3D, 0x5B, 0xB8,
0x02, 0xF0, 0x73, 0x93, 0x09, 0xAC, 0x03, 0x9A, 0xA5, 0xD2, 0xEB, 0x61, 0x1E, 0x96, 0x52, 0x61,
0xCE, 0x39, 0x90, 0xF8, 0x58, 0xF2, 0xFC, 0x7E, 0xAD, 0xF7, 0xB8, 0xBE, 0x97, 0x4E, 0xD8, 0xE7,
0x8D, 0x83, 0x0B, 0x4F, 0xAE, 0xFA, 0xF3, 0xD9, 0x01, 0x9C, 0x50, 0x37, 0x76, 0xF6, 0x1F, 0x5B,
0x2A, 0x62, 0x65, 0x53, 0x9E, 0x36, 0xDB, 0x7E, 0xE7, 0x35, 0xD1, 0xB0, 0xAF, 0x12, 0xB0, 0xD2,
0x02, 0xF6, 0xAC, 0x09, 0x15, 0x0A, 0x13, 0xF0, 0xD1, 0xBB, 0xB4, 0x0A, 0x31, 0x7B, 0x75, 0xF7,
0x00, 0xC9, 0x66, 0x9A, 0x9D, 0x56, 0x84, 0xFD, 0x99, 0xE1, 0xB0, 0xDF, 0x89, 0x79, 0x16, 0x5D,
0x01, 0x6E, 0x02, 0x79, 0xF5, 0x2A, 0x71, 0x9F, 0xAE, 0xB2, 0x8D, 0x62, 0x58, 0xEC, 0xA7, 0x32,
0xF7, 0x8D, 0x53, 0x57, 0x7E, 0x4F, 0xDE, 0x4B, 0x70, 0xD1, 0xD3, 0x89, 0x2B, 0x09, 0x40, 0xC4,
0xF2, 0xD1, 0x02, 0x16, 0xDF, 0x67, 0x73, 0x8B, 0x43, 0xE0, 0xCF, 0xAC, 0xCF, 0xCE, 0x86, 0x81,
0x43, 0x7B, 0x50, 0x01, 0x2F, 0x40, 0x49, 0x1F, 0xCB, 0x8F, 0xEF, 0x6E, 0x1C, 0x54, 0x78, 0x68,
0x95, 0x37, 0x92, 0x62, 0x5D, 0xDA, 0x9C, 0x07, 0xFF, 0xD1, 0x9D, 0x0E, 0x24, 0x78, 0x5F, 0xC2,
0x56, 0x98, 0x9B, 0x3D, 0x7F, 0xBC, 0xA1, 0x8E, 0x02, 0xB5, 0xFF, 0x71, 0x3A, 0xFA, 0x65, 0x64,
0x0A, 0xBC, 0x4C, 0x58, 0xAA, 0xC8, 0xA1, 0xD0, 0x4A, 0xF2, 0x14, 0xAF, 0x72, 0x47, 0xDC, 0x98,
0x62, 0xA9, 0xE8, 0x5C, 0x62, 0x42, 0x9D, 0x0C, 0xE4, 0x28, 0x6A, 0xC8, 0x0C, 0x57, 0x95, 0x0C,
0xBD, 0xDE, 0xCA, 0x4A, 0x43, 0x5B, 0x1E, 0xEE, 0xB7, 0xE2, 0x67, 0x6B, 0xD5, 0x04, 0x12, 0xAE,
0x0E, 0xC7, 0xEC, 0x4E, 0xAD, 0x6E, 0xA0, 0x5F, 0x4E, 0x71, 0x0E, 0xDB, 0x55, 0x7A, 0x7A, 0x8B,
0xE7, 0x7F, 0x9A, 0xF8, 0x76, 0x0F, 0x76, 0x5C, 0x9E, 0x05, 0xEA, 0x80, 0xCC, 0x40, 0xBA, 0xC9,
0x0B, 0x1C, 0x08, 0xB2, 0x32, 0x01, 0x27, 0xFF, 0x50, 0x87, 0xAF, 0x83, 0x91, 0x8C, 0x5D, 0x2D,
0x53, 0x57, 0x88, 0xE0, 0xF0, 0xBB, 0x25, 0x07, 0x47, 0xF8, 0x89, 0xA1, 0x39, 0xF2, 0x95, 0x55,
0xA3, 0x7D, 0x4A, 0x31, 0x9A, 0xA8, 0x5A, 0xC5, 0xF6, 0x8F, 0xA1, 0x77, 0x9C, 0xA8, 0x8F, 0xE7,
0x78, 0x79, 0x9B, 0x2B, 0x2D, 0x67, 0xB5, 0xB8, 0x3D, 0x4E, 0x89, 0x8A, 0xE1, 0x52, 0x1B, 0xC2,
0x82, 0xEF, 0xBE, 0x6C, 0xA3, 0x54, 0xAD, 0xB5, 0x5A, 0xF5, 0xB4, 0xBA, 0x45, 0xB7, 0x5A, 0x6C,
0x41, 0xA3, 0xCE, 0x60, 0x38, 0x0D, 0xA5, 0x6D, 0x1A, 0xCE, 0x18, 0x31, 0xF0, 0x20, 0x52, 0x54,
0x6B, 0xB9, 0x09, 0x0F, 0xBB, 0x06, 0x72, 0x87, 0x0F, 0xEB, 0x1E, 0x4F, 0x21, 0x2E, 0x49, 0x59,
0x6B, 0xFA, 0x7A, 0x7D, 0xAC, 0xDB, 0xD0, 0xEB, 0xEE, 0x89, 0x13, 0x8F, 0xCE, 0x1F, 0xF8, 0xF9,
0x4A, 0x23, 0x92, 0x0F, 0x8F, 0x9A, 0xAD, 0xA8, 0xAD, 0xD8, 0xAB, 0x53, 0x71, 0x50, 0x58, 0x07,
0xB9, 0x87, 0xC6, 0xDA, 0x83, 0x94, 0x21, 0x2A, 0x83, 0x96, 0x08, 0x07, 0xDB, 0x0B, 0x32, 0xCA,
0x1B, 0xB9, 0xF5, 0xFE, 0x0B, 0xEF, 0xBF, 0xD0, 0x74, 0x80, 0xA6, 0x63, 0x6E, 0xEF, 0x72, 0x4C,
0x73, 0x19, 0x4C, 0x11, 0x58, 0xE6, 0xF7, 0x74, 0x02, 0x1D, 0xF5, 0xC7, 0x7C, 0xC2, 0x9F, 0x50,
0x95, 0xD8, 0x22, 0xD5, 0x46, 0x05, 0xFC, 0x11, 0x77, 0xDC, 0xC6, 0x56, 0x43, 0x9D, 0x2A, 0x8A,
0xD7, 0xA5, 0x32, 0x75, 0xCD, 0xB8, 0x9C, 0x86, 0x67, 0x4B, 0xB4, 0x74, 0xD3, 0x5A, 0x19, 0x94,
0xDD, 0xB1, 0x07, 0x80, 0x37, 0x5F, 0x78, 0xFF, 0x8A, 0xED, 0xAE, 0x3A, 0xDD, 0x4C, 0x52, 0xD0,
0x26, 0xE6, 0x4A, 0x54, 0x25, 0x66, 0x9E, 0x54, 0x11, 0x5C, 0x17, 0xF8, 0xCC, 0xAE, 0x88, 0x42,
0xE1, 0x2B, 0x4A, 0x25, 0xFD, 0x43, 0x1B, 0xF9, 0x65, 0xB6, 0x1C, 0x99, 0x6F, 0xA4, 0xA9, 0x74,
0xE8, 0x45, 0x76, 0x78, 0xBE, 0x2A, 0xD4, 0xC5, 0xC3, 0xFA, 0x60, 0xC9, 0x31, 0xCB, 0xE1, 0x11,
0xCC, 0x86, 0x49, 0xD0, 0x3E, 0xDB, 0x59, 0xEC, 0x2C, 0xE2, 0x69, 0x52, 0xC6, 0xD7, 0x4A, 0xF8,
0x8C, 0x15, 0xBD, 0xC7, 0xE6, 0x69, 0x50, 0xF8, 0xB5, 0x7B, 0x3A, 0x01, 0x37, 0x7A, 0xBD, 0x3E,
0xD9, 0x4F, 0x3C, 0x7A, 0xB5, 0xB1, 0xFA, 0x4E, 0x5C, 0x49, 0x81, 0x84, 0x5F, 0xB6, 0x49, 0xE6,
0x5E, 0x45, 0xED, 0xBF, 0x80, 0xF1, 0x78, 0xCA, 0x04, 0x6F, 0x4D, 0xC9, 0x06, 0x20, 0xBD, 0xA0,
0x15, 0x6F, 0x9E, 0x5F, 0x3E, 0xB7, 0x09, 0xD1, 0xC9, 0xF4, 0xAC, 0xA2, 0xE8, 0xE9, 0x79, 0xBF,
0x0D, 0xCB, 0xF4, 0xEF, 0x5B, 0x9A, 0xB1, 0x04, 0x72, 0x85, 0x40, 0xF3, 0x7E, 0x44, 0x66, 0x7A,
0xEA, 0xF2, 0x87, 0xF4, 0x80, 0xD9, 0xFE, 0x60, 0xCC, 0xF3, 0xCB, 0x2B, 0xF7, 0x2B, 0x32, 0xB6,
0xE9, 0x6D, 0x2D, 0x32, 0xF7, 0x25, 0x02, 0xDE, 0xEE, 0x9B, 0x57, 0x10, 0xB0, 0x81, 0xCA, 0xFA,
0x18, 0x7F, 0xE7, 0xAC, 0x08, 0xD4, 0xC7, 0x44, 0xC0, 0x46, 0x7D, 0x69, 0xF5, 0x1D, 0x4E, 0xD4,
0x12, 0xD4, 0x4E, 0x33, 0x35, 0xA7, 0x9F, 0xBA, 0xB1, 0xD9, 0xD9, 0xB1, 0xB2, 0xE7, 0x37, 0x83,
0xB1, 0x0B, 0x55, 0x15, 0x54, 0x77, 0x8F, 0x6B, 0xBC, 0xE2, 0xF2, 0x6C, 0xCB, 0xFD, 0x9E, 0xB8,
0x43, 0x74, 0xBC, 0xCE, 0x9C, 0x09, 0xA3, 0x0F, 0xA9, 0x92, 0xB1, 0xA7, 0xEC, 0x88, 0xBD, 0xFA,
0xCD, 0xD1, 0x51, 0x91, 0x40, 0xC7, 0x6D, 0xB0, 0x80, 0x73, 0xF1, 0xB3, 0x90, 0xA5, 0x2E, 0xE4,
0x0D, 0x65, 0x15, 0x55, 0xB1, 0x1A, 0x20, 0x6D, 0x83, 0xA1, 0x51, 0x43, 0xB1, 0x7A, 0x6D, 0xB9,
0x7F, 0x1E, 0xC7, 0x94, 0x5D, 0x67, 0xFC, 0xB7, 0xD8, 0x7B, 0xC8, 0x47, 0x4F, 0xF6, 0xEC, 0x00,
0x2F, 0xC4, 0x2E, 0xCF, 0x8E, 0xEC, 0x5C, 0xC8, 0x48, 0x6E, 0x6F, 0x69, 0x3F, 0xC0, 0x1C, 0xFA,
0xA2, 0x4C, 0xD2, 0x84, 0xDF, 0xB5, 0xAB, 0xEF, 0x78, 0x4E, 0x28, 0x64, 0x1A, 0x30, 0xAB, 0xBC,
0x2E, 0xF8, 0xD9, 0xD7, 0x9F, 0x6D, 0x26, 0x97, 0xF7, 0x92, 0xB1, 0x1E, 0x6B, 0x9D, 0x18, 0xC9,
0xA6, 0xAA, 0xAF, 0xD9, 0x10, 0xDE, 0x2E, 0xD2, 0x23, 0x3B, 0x57, 0x3E, 0x36, 0xFB, 0xF0, 0xC0,
0x41, 0xA7, 0xD3, 0xCB, 0x72, 0xD6, 0x8A, 0xB1, 0x3D, 0x35, 0x5D, 0x02, 0x25, 0x51, 0xB8, 0x1C,
0x5B, 0xC1, 0xF2, 0x7E, 0xA7, 0x03, 0xCC, 0x9E, 0xFD, 0x62, 0x81, 0xAC, 0xD5, 0x05, 0xE0, 0xBE,
0x8B, 0x08, 0x2B, 0xB3, 0x61, 0x01, 0x3D, 0x84, 0xCB, 0xED, 0xD7, 0x8A, 0xF0, 0x17, 0x3F, 0xB9,
0x39, 0x0E, 0xF1, 0x10, 0xF0, 0x0C, 0x73, 0xD0, 0xD9, 0xC6, 0x46, 0x7D, 0xBE, 0x22, 0x63, 0x3E,
0x33, 0x92, 0x3E, 0xE5, 0xE9, 0x32, 0x7B, 0x3C, 0x4E, 0xBB, 0xD9, 0xBB, 0xF2, 0xF9, 0x90, 0x3E,
0x9B, 0x09, 0xF3, 0xA9, 0x79, 0xBE, 0x6A, 0xBB, 0xA7, 0xD5, 0x6C, 0x64, 0x9B, 0xA7, 0x9F, 0xBB,
0x27, 0xA1, 0x52, 0x9A, 0x03, 0x68, 0x13, 0xB5, 0xA1, 0x24, 0xA5, 0xA6, 0x65, 0xD3, 0x84, 0xE8,
0xF5, 0x6D, 0xDA, 0xD9, 0xA3, 0xBC, 0x21, 0x2A, 0xB3, 0xDF, 0xF9, 0x44, 0x35, 0x21, 0xC6, 0xCC,
0x8B, 0xC6, 0x57, 0xBF, 0x98, 0xDC, 0xEC, 0xDE, 0x6F, 0x8A, 0xF1, 0xDA, 0x38, 0x1D, 0x3B, 0x78,
0x9A, 0x83, 0xAD, 0xFA, 0x3F, 0x67, 0x0B, 0xB9, 0x47, 0x89, 0xB8, 0x44, 0x16, 0xE4, 0xA9, 0x80,
0xD7, 0xCB, 0xBA, 0xA6, 0xD6, 0xA6, 0xC8, 0xF9, 0x8F, 0x96, 0x47, 0x45, 0xF1, 0x07, 0x13, 0x56,
0xE9, 0x79, 0x9D, 0xC1, 0xBA, 0xC3, 0xF3, 0xBA, 0x54, 0x7A, 0xCD, 0x45, 0x1A, 0xAA, 0xD6, 0xB5,
0x13, 0xE8, 0x80, 0x40, 0x3A, 0xFD, 0x83, 0x08, 0xEB, 0x39, 0xA5, 0x3C, 0x5F, 0xA3, 0xFF, 0x4A,
0x7F, 0x3C, 0xEA, 0xE9, 0xE2, 0x67, 0x0D, 0x3D, 0x8D, 0xF1, 0x19, 0x76, 0x92, 0xB6, 0xB2, 0x48,
0xB9, 0xF7, 0x79, 0x10, 0x56, 0xF3, 0x64, 0xC0, 0xD2, 0x64, 0xEA, 0x72, 0x76, 0x03, 0xBC, 0xB9,
0xA8, 0x99, 0x33, 0xE1, 0x59, 0x23, 0x16, 0xB8, 0x48, 0x77, 0xF1, 0xDC, 0xA7, 0x8D, 0xEA, 0x67,
0x88, 0x4C, 0x7F, 0x12, 0x99, 0x8D, 0x03, 0xF7, 0xB6, 0x57, 0x44, 0x47, 0x86, 0x6C, 0xCA, 0xC5,
0x24, 0xEF, 0xD8, 0x2D, 0x65, 0x56, 0x47, 0xBA, 0x10, 0xDE, 0x46, 0x3F, 0x1A, 0xDD, 0x4E, 0xED,
0x2D, 0xB1, 0xCC, 0x63, 0x87, 0xF6, 0x8B, 0xDD, 0xD8, 0xAC, 0x06, 0x2C, 0x57, 0xDF, 0xA5, 0x40,
0xCE, 0x63, 0xD5, 0x22, 0xE6, 0x36, 0xFF, 0xB0, 0xFA, 0x51, 0x9F, 0xBC, 0xFC, 0x62, 0x38, 0x76,
0x59, 0x87, 0x9D, 0x3A, 0x4E, 0xE3, 0x5A, 0x95, 0xE9, 0x70, 0xEA, 0x0E, 0xDC, 0x07, 0xD5, 0x8A,
0x04, 0x39, 0x01, 0x32, 0x2A, 0xC3, 0x66, 0x27, 0x8B, 0x8D, 0xB0, 0x6C, 0x2E, 0xCD, 0xFD, 0x67,
0x5E, 0xE4, 0x6E, 0xD3, 0xB8, 0x60, 0x76, 0x69, 0x33, 0xF4, 0xF7, 0x1E, 0x3E, 0x39, 0xEA, 0x96,
0x22, 0x62, 0xE3, 0xAD, 0x51, 0x4D, 0x7B, 0xE3, 0xC0, 0xA6, 0xA4, 0x05, 0xA7, 0x04, 0x3E, 0x81,
0xFA, 0x2C, 0x22, 0xD5, 0x72, 0x99, 0x30, 0x65, 0x2D, 0xC5, 0xE2, 0x17, 0x8E, 0xFC, 0x9D, 0x0F,
0x64, 0xFB, 0xC0, 0x76, 0xB0, 0x79, 0x87, 0x9D, 0x75, 0x3D, 0xA2, 0x37, 0x9C, 0xBB, 0xB1, 0x9D,
0x4C, 0x75, 0x54, 0xDC, 0x47, 0xC8, 0xAF, 0x78, 0x34, 0x9E, 0xF6, 0xF6, 0x88, 0xF0, 0x2C, 0x68,
0x52, 0xA5, 0x93, 0xEA, 0xB8, 0x24, 0xC7, 0x33, 0x04, 0x8E, 0x64, 0xC9, 0x6F, 0x3B, 0x33, 0x63,
0x7A, 0x3F, 0xFA, 0x49, 0xE9, 0xBF, 0xAF, 0x02, 0xDA, 0xC4, 0x44, 0x3F, 0x23, 0x6B, 0x13, 0xD0,
0x30, 0x73, 0x27, 0xB5, 0x0A, 0x1D, 0x09, 0xED, 0xDD, 0x79, 0x1B, 0xA6, 0xB3, 0x3A, 0xE7, 0x19,
0xAE, 0x2A, 0x49, 0x17, 0xEC, 0xBA, 0x35, 0x47, 0x65, 0x63, 0x1D, 0xC8, 0xB1, 0x2D, 0x56, 0x90,
0xD5, 0x6D, 0xF5, 0xC3, 0x44, 0xF9, 0x69, 0xB0, 0xCC, 0x69, 0xF6, 0x7F, 0x35, 0x56, 0xCC, 0x72,
0x7C, 0x9B, 0x5A, 0x35, 0x2D, 0x99, 0xC5, 0x0C, 0x11, 0xD9, 0x83, 0xCB, 0xCE, 0x6F, 0xE1, 0xEF,
0x5E, 0x65, 0xCB, 0x75, 0xCE, 0x5F, 0x7E, 0x91, 0xD5, 0xDC, 0x0E, 0x49, 0x87, 0xB5, 0xEA, 0xA3,
0x7D, 0x20, 0x99, 0x06, 0x3F, 0x80, 0x62, 0x8A, 0x5E, 0x7F, 0xAB, 0x99, 0x41, 0x4F, 0x35, 0x7B,
0xF0, 0x42, 0xAF, 0xB6, 0xC9, 0x84, 0xC1, 0x50, 0x68, 0x33, 0x17, 0xA3, 0x5C, 0xD9, 0x4C, 0xBF,
0x86, 0x23, 0xDE, 0x9C, 0xF9, 0xCA, 0xFA, 0xC0, 0xB6, 0x32, 0xCE, 0xFE, 0x5D, 0xB2, 0xC5, 0x02,
0x16, 0x04, 0x7D, 0x9B, 0xE2, 0xE0, 0x95, 0xC7, 0x8E, 0x56, 0x2C, 0xE1, 0x90, 0xC2, 0x9B, 0xCC,
0xC6, 0x9B, 0xD0, 0xE4, 0xD9, 0x34, 0x52, 0x23, 0x4C, 0x96, 0x2B, 0x1D, 0x4B, 0xAF, 0x16, 0x44,
0xD7, 0x14, 0x00, 0x75, 0x47, 0x28, 0xC7, 0x61, 0x53, 0xA8, 0x0A, 0xCD, 0x74, 0xDA, 0x4C, 0x96,
0xC9, 0x1E, 0xDD, 0xDC, 0x68, 0x92, 0x3B, 0xD9, 0xF3, 0xB6, 0xD1, 0x24, 0x57, 0x5C, 0x97, 0x7B,
0x53, 0xAF, 0x0E, 0xE1, 0xE2, 0xF3, 0x57, 0xC6, 0x1D, 0xEA, 0x57, 0x2A, 0x32, 0x22, 0xCE, 0xE9,
0x37, 0xF0, 0xF2, 0x55, 0x06, 0x9F, 0x9D, 0x57, 0x93, 0xAF, 0x4D, 0x88, 0x53, 0x76, 0x13, 0x62,
0x84, 0x81, 0xF9, 0x90, 0x85, 0x51, 0x32, 0x19, 0x83, 0x6F, 0xBB, 0xD3, 0x09, 0x3D, 0xE5, 0xF5,
0x80, 0xC9, 0xB2, 0x89, 0xC1, 0xD6, 0xDC, 0x66, 0xF9, 0x34, 0x63, 0xEC, 0xC2, 0xA8, 0xDA, 0x64,
0x8C, 0x81, 0x52, 0x6E, 0xC8, 0x94, 0xF5, 0xA7, 0xF4, 0xA5, 0xD5, 0x91, 0x19, 0xB9, 0xA9, 0xDA,
0x26, 0xDB, 0xAB, 0x82, 0xAF, 0x36, 0x32, 0xCF, 0xAA, 0xFC, 0x3B, 0x29, 0x95, 0x57, 0xE3, 0x36,
0x87, 0x7E, 0x8F, 0x49, 0x56, 0x6A, 0x39, 0x12, 0x69, 0x98, 0xEE, 0x94, 0x93, 0x2B, 0x0F, 0x06,
0xBC, 0xF6, 0x73, 0x7D, 0xDD, 0x33, 0xC4, 0x12, 0x13, 0xC7, 0x95, 0x88, 0xC4, 0xD7, 0x4F, 0x3B,
0x53, 0x3A, 0xA8, 0x19, 0xDF, 0x1C, 0xEC, 0x3C, 0x3F, 0x80, 0x31, 0x6C, 0x0E, 0x1D, 0xCA, 0x68,
0x38, 0xD1, 0x75, 0x8B, 0xD1, 0xB0, 0x3A, 0xB5, 0x13, 0xAD, 0x7B, 0xBA, 0x8A, 0x53, 0xEE, 0x57,
0x1B, 0xF7, 0x5F, 0xE5, 0xFD, 0x96, 0xE9, 0xF8, 0x26, 0x61, 0xEF, 0x47, 0xF6, 0xE6, 0xCE, 0x0B,
0x35, 0xE7, 0x29, 0xB3, 0xA3, 0x83, 0xB6, 0xF6, 0x53, 0xDB, 0x48, 0x83, 0x63, 0x24, 0xB6, 0x41,
0x47, 0xB9, 0xCF, 0xE6, 0xE4, 0xEF, 0x0E, 0xB8, 0x14, 0x8E, 0xED, 0x41, 0x3C, 0x0E, 0x7D, 0xFC,
0xCC, 0xA2, 0x89, 0xB1, 0x99, 0x1E, 0x12, 0x75, 0x07, 0x2E, 0x19, 0xE2, 0xBA, 0x7E, 0x0A, 0xB3,
0xFE, 0x75, 0x13, 0xD8, 0x0A, 0x7F, 0x9D, 0xBD, 0xE3, 0xB5, 0x08, 0x2C, 0xDB, 0x1E, 0x4E, 0xF6,
0x4B, 0x5B, 0x52, 0x7B, 0xAF, 0xAD, 0xA8, 0x0E, 0xFB, 0x75, 0x44, 0x98, 0x3F, 0x60, 0xC0, 0x5C,
0x74, 0x9B, 0x64, 0xB4, 0x67, 0x24, 0x4F, 0x11, 0xB8, 0xDF, 0x23, 0x20, 0xF6, 0xE8, 0xD0, 0x4B,
0x46, 0xC7, 0x40, 0xEC, 0x41, 0xD3, 0x82, 0xE4, 0xA6, 0x6B, 0x0E, 0x8E, 0x1F, 0x33, 0xFD, 0x8C,
0x65, 0x86, 0xC7, 0x4B, 0xEF, 0x2B, 0xE1, 0xF3, 0xFB, 0x84, 0xC8, 0x9E, 0x0D, 0x50, 0xB1, 0x38,
0x38, 0xD4, 0xD1, 0x91, 0xF2, 0xE9, 0x55, 0xE3, 0xAC, 0xEB, 0x17, 0xCD, 0x36, 0x5A, 0x01, 0x0E,
0x36, 0x9A, 0x03, 0x36, 0xAE, 0x96, 0x40, 0x9B, 0x8A, 0xB6, 0xC9, 0xF8, 0xCD, 0xAB, 0x6D, 0x0F,
0xB1, 0xBD, 0x4C, 0xEE, 0xF7, 0x3B, 0x6C, 0xFE, 0x96, 0x07, 0x4B, 0x47, 0x7E, 0x34, 0xD5, 0xE6,
0x84, 0xD6, 0xDF, 0x9C, 0x9D, 0x98, 0xEA, 0x2B, 0x1A, 0x58, 0xFD, 0xC4, 0xEE, 0x97, 0x3C, 0x25,
0xA2, 0xE0, 0x7F, 0x01, 0x75, 0x51, 0xB1, 0x6E, 0x14, 0x31, 0x10, 0x7D, 0x7B, 0x0E, 0xF8, 0x24,
0x4B, 0x4C, 0x85, 0x14, 0x89, 0xC2, 0xCD, 0xB5, 0x89, 0x5B, 0x8A, 0xBD, 0xF5, 0x86, 0x2B, 0x52,
0x12, 0x09, 0xA5, 0x8D, 0xF8, 0x07, 0x28, 0xAE, 0xB8, 0x13, 0x1B, 0xF8, 0x80, 0xF0, 0x09, 0xFC,
0x41, 0x1A, 0x44, 0xB5, 0xBA, 0x5B, 0xB4, 0x05, 0x05, 0x05, 0x96, 0xF2, 0x01, 0x98, 0x96, 0xCA,
0x91, 0x5C, 0xF8, 0x90, 0x77, 0x8D, 0x97, 0x3A, 0x8C, 0x5E, 0x35, 0x6F, 0x66, 0xF4, 0xDE, 0x9B,
0x39, 0x3C, 0x77, 0x64, 0xA5, 0x91, 0x1D, 0xD5, 0x73, 0x80, 0x35, 0xEA, 0x2C, 0x92, 0x19, 0x84,
0x29, 0x91, 0xAB, 0x00, 0x06, 0x50, 0xC4, 0x3E, 0xF0, 0x3B, 0x57, 0xF1, 0x3B, 0x4B, 0x57, 0x38,
0xE6, 0xF6, 0x58, 0x86, 0x52, 0xEF, 0x62, 0xA9, 0xFC, 0x42, 0x98, 0xCB, 0xCB, 0x57, 0x29, 0xFD,
0x48, 0xE3, 0x34, 0x6E, 0xF1, 0xB3, 0x23, 0xF5, 0xDB, 0xEB, 0x54, 0x2B, 0x0B, 0xF1, 0x3E, 0xEA,
0x3E, 0x9C, 0x42, 0xD6, 0xAD, 0xBE, 0x1E, 0xDE, 0xBD, 0x88, 0x55, 0xE1, 0x71, 0x31, 0x4B, 0xAB,
0x74, 0xEF, 0xDB, 0xB5, 0x3C, 0xA2, 0x86, 0x3A, 0xD9, 0x50, 0xC3, 0xBA, 0x69, 0x77, 0xC0, 0xDE,
0xCB, 0xDB, 0xDE, 0x6E, 0x96, 0xBC, 0x37, 0xAD, 0xBE, 0x3D, 0x4B, 0x96, 0x7B, 0xE0, 0xF5, 0x63,
0x54, 0xCC, 0xAA, 0x0F, 0x41, 0x7E, 0x9D, 0x84, 0x65, 0x30, 0xB3, 0x45, 0x33, 0xC7, 0x02, 0x5F,
0x1C, 0x7D, 0x33, 0x2D, 0x7D, 0x37, 0x72, 0x80, 0xB6, 0xA8, 0x80, 0xA3, 0x82, 0xD9, 0xA0, 0xA9,
0x77, 0x51, 0x9E, 0x9B, 0x50, 0xF1, 0xCE, 0x2D, 0x1E, 0xE1, 0x29, 0x44, 0x6A, 0x52, 0xBA, 0xF9,
0xB8, 0x7F, 0x8B, 0x43, 0x5D, 0x34, 0xFF, 0x84, 0x6E, 0x68, 0xE5, 0xB6, 0xC2, 0x8C, 0xC2, 0x55,
0xC8, 0xE7, 0x8D, 0x6E, 0x06, 0xE6, 0x64, 0x1D, 0x45, 0xF7, 0x1C, 0xA2, 0x8F, 0xFA, 0xDC, 0x6E,
0xB8, 0x59, 0xCE, 0x9C, 0x80, 0x58, 0xB9, 0xB0, 0x55, 0xB4, 0xEA, 0x0C, 0xC0, 0xCD, 0x4E, 0xD8,
0x4C, 0x9A, 0x4F, 0x78, 0xD0, 0x1D, 0x77, 0x2A, 0x96, 0x27, 0xEB, 0x93, 0x75, 0xA9, 0x03, 0x19,
0xD4, 0xB2, 0xD3, 0x75, 0x64, 0x4E, 0x15, 0x9E, 0x6A, 0x5C, 0xF0, 0x28, 0x22, 0x5A, 0xB4, 0xF9,
0xAA, 0xC9, 0x62, 0xC1, 0xF1, 0x99, 0x37, 0x4B, 0x78, 0x76, 0x78, 0x39, 0x92, 0xA5, 0x2E, 0xD0,
0xB5, 0x57, 0xCC, 0x4D, 0x54, 0x0D, 0xB2, 0xD0, 0x1E, 0x63, 0x64, 0x7E, 0x47, 0x46, 0x9D, 0xE2,
0x49, 0xEE, 0x3A, 0xBC, 0xB1, 0xFC, 0xE6, 0x4F, 0x54, 0xA9, 0x7B, 0xE6, 0xF1, 0xDF, 0x3F, 0x3C,
0x60, 0x38, 0x47, 0x93, 0x15, 0x37, 0xE0, 0x0E, 0xCC, 0x63, 0x16, 0x50, 0x04, 0x20, 0x63, 0x31,
0x51, 0xDC, 0x48, 0x16, 0xE4, 0xAF, 0x51, 0xF8, 0xE9, 0x41, 0x55, 0xCE, 0x57, 0x1C, 0xF6, 0xBD,
0xFF, 0x0B, 0xE5, 0x7D, 0x4F, 0x8C, 0xDD, 0xD6, 0xB9, 0xDF, 0x21, 0x29, 0x89, 0x8E, 0xD9, 0x98,
0x5E, 0xC4, 0x41, 0x10, 0x25, 0x66, 0x16, 0x59, 0x3C, 0xB4, 0xCF, 0xE2, 0x5B, 0x78, 0x11, 0xBC,
0x6A, 0x86, 0x8C, 0x8D, 0x22, 0x0B, 0x2F, 0x6C, 0x14, 0x1E, 0x1B, 0x88, 0x17, 0xCA, 0xDE, 0x68,
0xF5, 0x16, 0x59, 0xB8, 0x7D, 0x33, 0x97, 0xB4, 0x5D, 0xC0, 0x0B, 0x2F, 0x22, 0xA0, 0x2F, 0xE8,
0xA2, 0x28, 0xFA, 0x0A, 0x14, 0x0F, 0xA8, 0xB5, 0x18, 0x2F, 0xB2, 0x10, 0xD2, 0x99, 0x4B, 0xDA,
0x42, 0xEB, 0x85, 0x81, 0x67, 0x2A, 0x86, 0x63, 0xA0, 0x41, 0x61, 0xC6, 0xD6, 0x7B, 0x05, 0x24,
0xF4, 0x99, 0x76, 0xA8, 0x88, 0x1A, 0xF1, 0x92, 0xFD, 0x7E, 0xBF, 0xEF, 0xF0, 0xCE, 0x9D, 0xD1,
0x48, 0xB6, 0x63, 0x27, 0xD6, 0x4B, 0xC7, 0xD6, 0x95, 0xE6, 0x5E, 0xF2, 0xF0, 0x9C, 0xEF, 0x7C,
0x7F, 0x7E, 0xDF, 0xBF, 0x73, 0x8D, 0x71, 0x52, 0x23, 0x3F, 0x6B, 0x78, 0xF1, 0x3B, 0xBC, 0x26,
0x35, 0x5E, 0xC7, 0x1C, 0xAF, 0x3B, 0xE6, 0x96, 0x1F, 0x6F, 0x1C, 0xC7, 0xDE, 0x24, 0xF2, 0x5A,
0x9A, 0xF8, 0x9D, 0x8D, 0xCE, 0xB8, 0x9D, 0x09, 0x53, 0x93, 0xA4, 0xA6, 0x31, 0x5E, 0x63, 0xEE,
0x33, 0x26, 0xE3, 0x58, 0x1C, 0x65, 0x17, 0x2F, 0x61, 0x85, 0xD7, 0x61, 0xE3, 0x49, 0x63, 0xA2,
0x51, 0xC6, 0x75, 0xC6, 0xB1, 0x35, 0x26, 0xC6, 0x03, 0xBC, 0x96, 0x4F, 0xE4, 0x0D, 0x0D, 0x5E,
0xE7, 0xC6, 0x7C, 0xC7, 0x04, 0x35, 0x46, 0x5C, 0x18, 0xA7, 0x31, 0x61, 0x29, 0x9F, 0xBA, 0x8B,
0x8D, 0x67, 0x6A, 0x7D, 0x6E, 0xC1, 0xE7, 0xCA, 0xD5, 0x55, 0x6C, 0x8C, 0x33, 0x60, 0xC6, 0x71,
0x55, 0xC8, 0x12, 0x3A, 0xBF, 0xBA, 0x2B, 0xA7, 0x2A, 0xC3, 0x8C, 0x63, 0x80, 0x97, 0x8B, 0xD7,
0xCE, 0x5C, 0x7B, 0xA6, 0x69, 0xDD, 0xD6, 0x74, 0xA7, 0xE5, 0x8E, 0xB5, 0x50, 0x2E, 0x0F, 0xDD,
0x34, 0x2A, 0x5D, 0x83, 0x61, 0xA6, 0x27, 0x2C, 0xF8, 0x98, 0x68, 0xC1, 0x19, 0x34, 0x26, 0x18,
0xCE, 0x0F, 0xC6, 0xEB, 0x4C, 0x52, 0x9A, 0x1E, 0x57, 0xC8, 0x04, 0x06, 0x13, 0xC9, 0x7A, 0x4A,
0xB9, 0x27, 0x68, 0xE4, 0x1D, 0x59, 0xD4, 0x02, 0xB3, 0x91, 0x4F, 0xE2, 0x34, 0xAE, 0x4C, 0x78,
0x69, 0x1C, 0x53, 0xAF, 0x91, 0x87, 0x3B, 0xDC, 0xCF, 0x1E, 0x2F, 0x33, 0x3B, 0x79, 0x1F, 0xAB,
0xF7, 0xF6, 0x40, 0xB1, 0x71, 0xC4, 0x82, 0x6F, 0xAC, 0xD0, 0xCB, 0x4D, 0x27, 0x6A, 0x04, 0xB8,
0x13, 0x73, 0x30, 0x31, 0xFE, 0x15, 0x9E, 0xBB, 0x0D, 0x6D, 0xE5, 0x65, 0xC0, 0x9A, 0xB3, 0x5C,
0x26, 0x20, 0x3B, 0x90, 0xA4, 0x4A, 0x88, 0x4D, 0xD0, 0xE8, 0x41, 0x23, 0x13, 0x38, 0x41, 0x42,
0x19, 0x3C, 0xD6, 0xE0, 0x13, 0x4B, 0x3D, 0x9D, 0xDA, 0x51, 0x9F, 0xB8, 0x47, 0x7D, 0x12, 0x80,
0x34, 0x89, 0x90, 0xC3, 0xC4, 0x23, 0xD7, 0x63, 0x4E, 0x8E, 0xE7, 0xB0, 0x3B, 0x83, 0x09, 0x87,
0xF3, 0xA3, 0x49, 0x72, 0x59, 0xA1, 0x4C, 0x77, 0x4D, 0xA8, 0x6B, 0x4E, 0x63, 0x09, 0x3F, 0xE6,
0x7D, 0x11, 0x76, 0x2E, 0x4E, 0x79, 0xF3, 0x58, 0x99, 0x0C, 0x3B, 0x92, 0x6D, 0x6C, 0xA4, 0xBA,
0xF1, 0xC5, 0xF2, 0x85, 0xBF, 0x66, 0x72, 0x5D, 0x25, 0x74, 0x76, 0x9B, 0xB8, 0x96, 0xB9, 0x84,
0x9D, 0x89, 0x6A, 0x7F, 0x7C, 0x45, 0x6E, 0xC1, 0x73, 0xF8, 0x44, 0xE3, 0x14, 0x97, 0x8D, 0x3F,
0x8E, 0xB5, 0x3F, 0x6C, 0x77, 0x42, 0xFB, 0x99, 0xCC, 0x36, 0x4A, 0x17, 0xC6, 0x2F, 0x65, 0xE5,
0x55, 0x28, 0xCF, 0x75, 0x17, 0x56, 0x84, 0x7C, 0x90, 0x37, 0x93, 0xC5, 0xB8, 0x60, 0xD8, 0x08,
0xB3, 0x2E, 0x64, 0x36, 0x41, 0x73, 0x5A, 0xB6, 0x24, 0x94, 0x6B, 0xFC, 0xD2, 0x84, 0xAF, 0xB7,
0xB2, 0xF5, 0x85, 0x3C, 0x2C, 0xDE, 0xDB, 0x6E, 0x5D, 0x30, 0xDB, 0x09, 0x3C, 0x05, 0x2B, 0x05,
0xFB, 0xC9, 0x6E, 0x82, 0x12, 0x60, 0x0C, 0x2C, 0x47, 0x66, 0xE9, 0xF4, 0xCA, 0x2C, 0x20, 0x4D,
0xAF, 0x14, 0xC3, 0x1A, 0x0F, 0x5D, 0xD4, 0x1D, 0xB8, 0x48, 0x88, 0xE7, 0xC9, 0x02, 0x62, 0xB0,
0x72, 0x50, 0xC6, 0xF2, 0x7B, 0x5C, 0x79, 0x7D, 0xD8, 0x98, 0x2D, 0xB7, 0x3D, 0xB8, 0xA9, 0x20,
0x4F, 0x32, 0xCA, 0x9D, 0xE0, 0x0F, 0x70, 0x3D, 0xE4, 0x41, 0x24, 0x85, 0x8F, 0x25, 0x91, 0x6E,
0x79, 0x73, 0xF6, 0x69, 0xDE, 0x04, 0x51, 0xC2, 0xB1, 0x33, 0xC1, 0x48, 0xEE, 0x0E, 0xB1, 0x87,
0xF8, 0x5D, 0x1F, 0xA4, 0xD4, 0x9F, 0x2F, 0x99, 0xBF, 0x9F, 0x5E, 0x38, 0x16, 0xF9, 0x81, 0xA2,
0x81, 0x91, 0xF4, 0x85, 0x8C, 0x42, 0x99, 0xA1, 0xC0, 0x72, 0xAB, 0x75, 0xBF, 0x4B, 0xFB, 0x64,
0xE5, 0x9D, 0x64, 0xB9, 0xB7, 0xBB, 0xCB, 0x31, 0x65, 0xB8, 0xEF, 0x62, 0x90, 0x6C, 0x5B, 0x6E,
0xCD, 0xC6, 0xD4, 0xB2, 0x38, 0x39, 0x04, 0x4B, 0x57, 0x9E, 0x96, 0x9F, 0xB3, 0x7F, 0xCF, 0xC9,
0x09, 0x2F, 0x73, 0x42, 0x6E, 0xC3, 0x47, 0x9B, 0x30, 0x27, 0x53, 0x89, 0xC6, 0xE4, 0x98, 0x8E,
0x7D, 0x3B, 0x28, 0x39, 0x01, 0xB3, 0x6E, 0x92, 0x0D, 0xBE, 0xED, 0x80, 0xE1, 0xE4, 0xED, 0x80,
0xA3, 0xCA, 0xDB, 0x26, 0xAB, 0xA1, 0x26, 0x7A, 0x11, 0x5D, 0x19, 0x44, 0x96, 0x20, 0xB3, 0xDB,
0xC2, 0xEE, 0x2D, 0x64, 0x6C, 0x19, 0x4C, 0xC6, 0x89, 0x52, 0x59, 0x68, 0x08, 0x49, 0x97, 0x97,
0x4C, 0x6E, 0x96, 0x17, 0xAF, 0x7D, 0x78, 0x8E, 0x59, 0x27, 0x2F, 0x08, 0x53, 0x44, 0xD7, 0x9E,
0xED, 0x82, 0x11, 0x1C, 0x38, 0xA6, 0xB2, 0x74, 0x99, 0xB2, 0x72, 0x4B, 0x84, 0xBD, 0x95, 0xF7,
0x0A, 0xA8, 0xED, 0xB3, 0x15, 0x19, 0x07, 0x14, 0x9D, 0x29, 0xED, 0xB8, 0xCF, 0x32, 0x24, 0xA9,
0x95, 0x29, 0x5D, 0x40, 0xDC, 0x5E, 0xC9, 0x48, 0x91, 0x17, 0x82, 0x51, 0x50, 0x86, 0x8D, 0x8D,
0x61, 0xC3, 0xF0, 0x11, 0x60, 0x41, 0xE8, 0xAF, 0x2B, 0xB2, 0x12, 0x0E, 0x16, 0x97, 0x3A, 0x58,
0x92, 0xEB, 0x60, 0x99, 0x0E, 0xE6, 0xF4, 0xA0, 0x6A, 0x2F, 0x43, 0xE9, 0x60, 0x49, 0xCA, 0xC1,
0xE4, 0x09, 0x3D, 0xB6, 0x34, 0xAA, 0x84, 0x03, 0xFD, 0x1B, 0xCF, 0x0E, 0xDE, 0xB8, 0x10, 0xAA,
0x8C, 0x55, 0x3C, 0x36, 0xE1, 0x38, 0xFE, 0xB5, 0xEA, 0x46, 0x17, 0x2F, 0x4D, 0xB2, 0x31, 0x6E,
0x14, 0x5E, 0x15, 0x54, 0x5E, 0x4D, 0xE5, 0xE8, 0x09, 0x39, 0xBD, 0xF2, 0xBB, 0x32, 0xC4, 0x77,
0x0E, 0xEA, 0x5F, 0x47, 0x54, 0xB3, 0x77, 0x1D, 0xBC, 0x93, 0xA9, 0x7A, 0x34, 0xB2, 0x85, 0xD4,
0x90, 0xD0, 0xBF, 0xB9, 0x2A, 0x49, 0x61, 0x83, 0x24, 0x15, 0xC6, 0x11, 0x92, 0x26, 0x90, 0x75,
0xF9, 0x1B, 0xD3, 0x02, 0x1B, 0xC8, 0x54, 0xA2, 0x3A, 0xC2, 0x04, 0x3E, 0xC0, 0xB3, 0x17, 0x2B,
0xDC, 0xFF, 0x2A, 0xF7, 0x93, 0xEF, 0xB8, 0x23, 0x55, 0xA1, 0xBE, 0x92, 0x1B, 0x9C, 0xC3, 0x2A,
0x10, 0x4C, 0x1C, 0xE7, 0xB2, 0x24, 0x93, 0xC9, 0xBE, 0xB4, 0x26, 0xEB, 0xC1, 0xAA, 0xD9, 0x09,
0xAC, 0x78, 0x9D, 0xBC, 0x97, 0x90, 0xE8, 0x31, 0xF9, 0x35, 0x22, 0x27, 0x87, 0x18, 0x6F, 0x11,
0x92, 0x3F, 0x9F, 0x21, 0xBF, 0x92, 0xE3, 0xFC, 0x3D, 0x65, 0x74, 0xAE, 0x73, 0x41, 0x7E, 0x4A,
0xCC, 0x40, 0x76, 0x06, 0x43, 0xFB, 0xB5, 0xD7, 0x51, 0x0E, 0x32, 0x4A, 0x08, 0xB4, 0x4C, 0xC2,
0x79, 0xCA, 0x2E, 0x27, 0x50, 0x4E, 0xA5, 0x07, 0x6B, 0xD3, 0x98, 0x8C, 0x8C, 0xF9, 0x35, 0x3B,
0x3F, 0x32, 0xAF, 0xB5, 0xE9, 0x93, 0x3D, 0x37, 0xA1, 0xFD, 0x35, 0x36, 0xB7, 0xFB, 0x09, 0x69,
0xBA, 0x2A, 0x2C, 0x2C, 0x96, 0xD9, 0x41, 0xF3, 0x8A, 0x1C, 0x40, 0x0A, 0x31, 0x17, 0x98, 0x25,
0x3E, 0x1F, 0x4B, 0xC6, 0x3B, 0x91, 0x6A, 0xA1, 0xA8, 0xE0, 0x0C, 0xA3, 0x33, 0xBC, 0x26, 0x7A,
0x8C, 0xD7, 0xC4, 0x1E, 0xAF, 0x89, 0xA9, 0xA9, 0xEA, 0x18, 0x77, 0xC9, 0x22, 0x75, 0x9C, 0x58,
0x35, 0x54, 0xCC, 0x7D, 0x8D, 0x3E, 0x54, 0x6D, 0x36, 0x72, 0x64, 0x77, 0xD4, 0x67, 0x8D, 0x56,
0x8B, 0xE9, 0xDE, 0xCB, 0x62, 0xB1, 0x66, 0x61, 0xF2, 0x60, 0x9A, 0xE1, 0xB0, 0x3A, 0x6F, 0xB9,
0x21, 0x14, 0xF3, 0x86, 0x81, 0x4E, 0x43, 0x4D, 0x78, 0x72, 0x6B, 0xD8, 0x64, 0x24, 0x32, 0xD5,
0xC5, 0x8D, 0xA3, 0x17, 0xEB, 0x8E, 0x43, 0x32, 0x56, 0xC1, 0xD8, 0xCA, 0x82, 0x5C, 0x6C, 0xA9,
0xCA, 0x9E, 0x88, 0x26, 0x78, 0xA9, 0xC1, 0xB3, 0x63, 0x4E, 0x84, 0x14, 0x80, 0x90, 0x27, 0xF8,
0x4C, 0xF6, 0xA9, 0x86, 0x36, 0x89, 0xA9, 0x93, 0x28, 0x5F, 0x6F, 0xD1, 0xD8, 0x10, 0x32, 0x65,
0x8A, 0x23, 0xCC, 0xA4, 0xB0, 0xB8, 0x1B, 0xAE, 0xA1, 0x55, 0xA5, 0x8E, 0xA2, 0x15, 0xA3, 0x65,
0xB0, 0x8C, 0x4D, 0x31, 0x86, 0x4E, 0x94, 0x05, 0x66, 0x23, 0x25, 0x18, 0x84, 0x9E, 0x2F, 0xD7,
0xDF, 0x53, 0x82, 0xA1, 0xF9, 0x32, 0x4A, 0x84, 0x43, 0xD9, 0xC2, 0xC4, 0xF0, 0x04, 0x61, 0x73,
0x4C, 0xAD, 0xE7, 0xA7, 0x72, 0x11, 0xF7, 0x2B, 0xA7, 0xC0, 0xDF, 0x61, 0x88, 0xEE, 0xE8, 0x21,
0x44, 0x6B, 0x04, 0x7B, 0x1B, 0xCF, 0x2E, 0x68, 0xE4, 0x05, 0x26, 0xC4, 0x23, 0x8D, 0xBD, 0x81,
0x7C, 0x2D, 0xB5, 0xB4, 0x5D, 0x98, 0xEA, 0x5D, 0x0B, 0x20, 0x8D, 0xD1, 0xF7, 0x3C, 0x7D, 0xEF,
0xAB, 0x07, 0x25, 0x4B, 0x0D, 0x37, 0x65, 0xCA, 0x14, 0xC4, 0x5C, 0x6B, 0xE4, 0xC6, 0x53, 0x54,
0xD3, 0xA1, 0x6A, 0xF1, 0x17, 0x41, 0x0D, 0xBF, 0x84, 0x6E, 0xF5, 0x6A, 0x68, 0x5A, 0xA7, 0xA1,
0xB6, 0x6F, 0xA9, 0xAC, 0x76, 0x28, 0x54, 0x6B, 0x5C, 0x97, 0xCC, 0xAA, 0x23, 0x48, 0x12, 0x3E,
0x09, 0xDF, 0xD9, 0x38, 0x5B, 0x02, 0x80, 0x78, 0x44, 0x76, 0x50, 0xA9, 0xAD, 0x51, 0x75, 0x20,
0x16, 0x17, 0x9A, 0xDA, 0x5D, 0xB8, 0x34, 0x40, 0xBF, 0x15, 0xAE, 0x81, 0x19, 0x4A, 0xA8, 0x42,
0x2D, 0x34, 0x7C, 0xA6, 0x01, 0x11, 0x76, 0x40, 0xA4, 0x75, 0x50, 0x20, 0x04, 0x85, 0x04, 0x18,
0x53, 0xD3, 0xAF, 0x60, 0x33, 0xAA, 0x5B, 0xD1, 0x3B, 0xF2, 0xC9, 0x2F, 0x0B, 0x98, 0x6E, 0x67,
0xB4, 0xEA, 0x86, 0x6A, 0x27, 0xC3, 0x83, 0x85, 0xAE, 0x09, 0xEE, 0x89, 0xA0, 0x2B, 0x65, 0x9E,
0x3D, 0x26, 0x50, 0x6C, 0x6C, 0x37, 0x20, 0x66, 0x2D, 0xDA, 0x6E, 0x10, 0x02, 0x9C, 0xC0, 0x2B,
0x15, 0x58, 0xB1, 0xD8, 0x86, 0xE2, 0x10, 0xD6, 0x96, 0xCB, 0xE7, 0x98, 0x3C, 0xD5, 0xD5, 0x1C,
0x0A, 0x6B, 0x61, 0x82, 0xCA, 0x81, 0x2D, 0x10, 0x0A, 0x84, 0x50, 0xC6, 0x21, 0x11, 0xE5, 0x2F,
0x8B, 0x46, 0xB4, 0xAB, 0xDF, 0x53, 0xF3, 0x82, 0x20, 0x0B, 0x7D, 0xF2, 0x0C, 0x53, 0xDF, 0x35,
0x54, 0xBB, 0xA2, 0x31, 0xE4, 0xC6, 0xC6, 0x5D, 0x3C, 0x55, 0x94, 0x31, 0x0C, 0x5A, 0x61, 0x4D,
0x85, 0x8C, 0x10, 0xD2, 0xD0, 0xC5, 0xEF, 0x3C, 0xDD, 0x61, 0x9E, 0x5B, 0x5C, 0x01, 0x6E, 0xF5,
0xC1, 0xF7, 0x4E, 0x8D, 0x55, 0xFF, 0x68, 0x75, 0xD5, 0xFD, 0xD2, 0x8A, 0x1E, 0xA6, 0xC7, 0xFE,
0x27, 0xF1, 0x51, 0x9F, 0xC0, 0x7E, 0x7A, 0xD8, 0x1E, 0x57, 0x41, 0x3B, 0x37, 0x0B, 0xFA, 0x84,
0x96, 0xC5, 0x9C, 0xBD, 0x02, 0x13, 0x4C, 0xD3, 0x88, 0x0D, 0x26, 0x24, 0xF4, 0xCB, 0xA0, 0xA2,
0x7A, 0xA2, 0x2D, 0xD2, 0x4D, 0xF7, 0x4B, 0xB2, 0x5A, 0xAC, 0x8F, 0x6F, 0x69, 0x77, 0xFD, 0x92,
0xCF, 0x59, 0x27, 0xFB, 0x39, 0x8D, 0xEA, 0xDA, 0x9C, 0x43, 0x6C, 0x9A, 0x40, 0x61, 0x07, 0xDE,
0x8B, 0x52, 0x0E, 0x41, 0x53, 0x00, 0x7B, 0x8A, 0x21, 0x76, 0xF9, 0x7F, 0x24, 0x1C, 0x7E, 0xC3,
0x72, 0x78, 0x4E, 0x4B, 0x34, 0x10, 0x83, 0x78, 0xAD, 0xB5, 0x96, 0x41, 0x49, 0x24, 0x03, 0x01,
0x77, 0x5A, 0x73, 0x81, 0x36, 0xDE, 0xC3, 0xE4, 0x4E, 0x81, 0x3F, 0x94, 0xA9, 0x49, 0x4F, 0x85,
0xC2, 0x82, 0x82, 0xCF, 0xE4, 0xA0, 0x43, 0x0B, 0x12, 0x84, 0x14, 0xBA, 0xDA, 0xBA, 0x0A, 0x44,
0xDF, 0x5C, 0x98, 0xCA, 0x4E, 0xF8, 0x77, 0x02, 0x41, 0x9D, 0x89, 0x7F, 0x53, 0x8B, 0x79, 0x09,
0x59, 0x54, 0xAA, 0x48, 0x53, 0x21, 0xA7, 0x4B, 0xF1, 0x25, 0x1F, 0x45, 0x56, 0x1F, 0x89, 0x23,
0x33, 0xD7, 0xE7, 0x06, 0x2A, 0x95, 0xC2, 0x28, 0xD9, 0x58, 0xC2, 0xB5, 0xE9, 0x81, 0x67, 0x42,
0xB1, 0x10, 0x82, 0x10, 0xC4, 0x48, 0xF7, 0xE6, 0xB8, 0x00, 0x8A, 0xC6, 0x2C, 0xBE, 0x81, 0xA9,
0x8B, 0x15, 0x21, 0x7E, 0x12, 0x1B, 0x4B, 0x49, 0x73, 0xEB, 0xA0, 0x54, 0x2B, 0xD0, 0x84, 0xA5,
0x4A, 0x6F, 0x1B, 0x96, 0x6A, 0x1E, 0x36, 0xA3, 0x17, 0x54, 0x90, 0x4F, 0xC7, 0x3F, 0x28, 0x2D,
0x32, 0x54, 0x03, 0xE2, 0x5A, 0xFF, 0x4B, 0x16, 0x96, 0x70, 0xBB, 0xC5, 0xBA, 0xCF, 0x74, 0xCE,
0x49, 0xBE, 0xEB, 0xF1, 0xF6, 0xD1, 0xF4, 0x94, 0x75, 0x0F, 0x8C, 0x38, 0x28, 0x7A, 0x57, 0xE3,
0x15, 0xD7, 0x00, 0x32, 0x39, 0x90, 0xB0, 0x10, 0x39, 0xAA, 0xA0, 0xEA, 0x41, 0xAC, 0x06, 0x76,
0x29, 0x11, 0xAF, 0xA5, 0x87, 0xDE, 0x2B, 0x68, 0xD1, 0x45, 0x46, 0x6A, 0xC8, 0xB8, 0x09, 0xF7,
0x44, 0x76, 0x6A, 0x67, 0xE1, 0x80, 0xEB, 0xB1, 0xB9, 0x5F, 0x55, 0x3C, 0xD3, 0x2B, 0x35, 0x1D,
0xB9, 0x14, 0x66, 0x3C, 0x91, 0x09, 0x1E, 0xDF, 0xEE, 0x2D, 0xDB, 0x11, 0x8A, 0xF3, 0x17, 0x31,
0xC8, 0xF1, 0x4B, 0x82, 0x56, 0xDE, 0x16, 0x79, 0x6D, 0x0A, 0xF9, 0x13, 0x29, 0xD4, 0x16, 0xD3,
0x86, 0x25, 0x89, 0xD6, 0x75, 0xA9, 0x09, 0x5A, 0x53, 0x28, 0xE2, 0x76, 0x55, 0x25, 0x62, 0xC2,
0xE0, 0x31, 0x18, 0xD5, 0x5E, 0x35, 0xBA, 0xBC, 0x93, 0x35, 0xB4, 0x4D, 0x33, 0x85, 0xE1, 0x5B,
0x7A, 0xCD, 0x56, 0xCC, 0x6B, 0x76, 0x42, 0x5E, 0xB3, 0xE3, 0x11, 0x94, 0xEF, 0x50, 0xF7, 0xD4,
0x3B, 0x3A, 0xCE, 0x0E, 0x25, 0xA4, 0xDF, 0xA1, 0xE6, 0xCA, 0x76, 0xB8, 0xCD, 0x91, 0x22, 0xB0,
0x40, 0x95, 0xB6, 0xAC, 0x5D, 0xAF, 0x51, 0x50, 0x2B, 0x8B, 0xF0, 0x81, 0xDB, 0x61, 0x85, 0xED,
0x0C, 0xAD, 0xE9, 0xBE, 0x1F, 0x2F, 0xC7, 0xCD, 0xBD, 0x0A, 0x46, 0xFD, 0x9C, 0x3E, 0x1B, 0x19,
0xD3, 0x59, 0xA8, 0x2B, 0x4B, 0x08, 0x2F, 0xBF, 0x5A, 0x9B, 0x6F, 0x8E, 0x74, 0xE2, 0xE9, 0x0F,
0xD0, 0x9A, 0x76, 0x5C, 0xB2, 0xF5, 0x35, 0x7C, 0xB5, 0x04, 0x80, 0x0D, 0xB0, 0x15, 0x0B, 0xBE,
0x03, 0xC3, 0x2C, 0x5B, 0xEA, 0x7F, 0x58, 0xE2, 0x1A, 0xFF, 0x5D, 0x5E, 0xE3, 0xFF, 0xA2, 0x53,
0x31, 0xE1, 0x35, 0x41, 0x99, 0xC0, 0x1C, 0x2A, 0x0C, 0x9E, 0x07, 0x25, 0xC7, 0x79, 0x0C, 0x6C,
0x69, 0xC2, 0x37, 0x4B, 0x6C, 0x94, 0x7F, 0x13, 0x0E, 0xB2, 0xCC, 0xAA, 0xA4, 0xD0, 0x16, 0x6A,
0x89, 0xE0, 0x6F, 0xE9, 0xB3, 0x68, 0x8A, 0x5A, 0xBA, 0x61, 0x62, 0x90, 0xDD, 0xE5, 0x0C, 0x75,
0x93, 0xE4, 0xB9, 0xB2, 0x47, 0xB8, 0x39, 0xAB, 0x1C, 0x00, 0xBF, 0xDA, 0xE9, 0xBF, 0x01, 0xE2,
0x77, 0x64, 0x05, 0x5A, 0x27, 0x86, 0x2B, 0xA2, 0x72, 0x93, 0xB2, 0xB3, 0x46, 0x59, 0x5E, 0xA7,
0xCC, 0x9D, 0xA5, 0x4C, 0x91, 0x1C, 0xD1, 0x55, 0xF5, 0x1D, 0x54, 0xD4, 0x29, 0x09, 0x3D, 0xD9,
0x96, 0x58, 0x56, 0xF6, 0x0D, 0x9C, 0x83, 0xC1, 0xB9, 0xB3, 0x09, 0x37, 0xC4, 0x57, 0x0C, 0x34,
0x92, 0x6C, 0x21, 0x76, 0xA3, 0x04, 0xD7, 0x59, 0x8F, 0x01, 0xE2, 0x2F, 0x53, 0x3F, 0x31, 0x3C,
0x4B, 0xF3, 0x4E, 0xB5, 0x63, 0x9D, 0x85, 0x75, 0x8E, 0x29, 0x22, 0x57, 0x53, 0x2F, 0x2D, 0xF6,
0xFD, 0x84, 0x8E, 0x33, 0x8E, 0x88, 0x73, 0xDC, 0x86, 0xF2, 0xBF, 0x4E, 0x05, 0x60, 0x95, 0x9D,
0xCA, 0x4B, 0x94, 0x82, 0x44, 0x34, 0x07, 0x00, 0x24, 0xE0, 0x0B, 0x7A, 0x07, 0x70, 0x18, 0xE4,
0x4E, 0x38, 0x06, 0x62, 0x5E, 0x40, 0x93, 0xDC, 0x88, 0x51, 0x10, 0x35, 0x00, 0x69, 0x82, 0x52,
0xF0, 0x80, 0x79, 0x0A, 0xC1, 0xC5, 0x74, 0x0C, 0xE4, 0x8D, 0xA4, 0x55, 0xB8, 0x91, 0x88, 0x2A,
0x04, 0x21, 0xC4, 0x33, 0x0D, 0x3E, 0x84, 0x32, 0x14, 0x33, 0x71, 0x16, 0x7E, 0xA2, 0x88, 0x1E,
0x74, 0x6E, 0xD7, 0x9B, 0x35, 0xF9, 0xDB, 0x69, 0x85, 0x9F, 0x81, 0xC5, 0x9A, 0x5D, 0xA7, 0x05,
0x7C, 0xA8, 0xE7, 0x5E, 0x8D, 0xF8, 0x41, 0x35, 0xF3, 0xB1, 0xD3, 0xB2, 0xDD, 0x61, 0x9E, 0x60,
0x3A, 0x09, 0x57, 0x2C, 0xBF, 0x50, 0x8F, 0x47, 0xA9, 0x00, 0xA0, 0x19, 0x15, 0x78, 0x8B, 0xBF,
0x13, 0x13, 0x35, 0xF8, 0x9B, 0x93, 0x9F, 0xC3, 0x80, 0xCB, 0x02, 0x76, 0x41, 0xD4, 0x7B, 0x8D,
0xDA, 0x2A, 0xE2, 0xA4, 0x98, 0x3E, 0xF2, 0xD8, 0x64, 0x9C, 0xA2, 0x10, 0xF5, 0x90, 0x58, 0x9E,
0xBD, 0x45, 0x2C, 0x57, 0x44, 0x25, 0x53, 0xAD, 0x19, 0x29, 0x78, 0x39, 0x74, 0x8D, 0xB8, 0x33,
0x67, 0xE8, 0xE8, 0xC1, 0xD8, 0xD2, 0x00, 0xF5, 0x9F, 0x34, 0x4E, 0x7E, 0xD4, 0x38, 0x77, 0x16,
0x4B, 0xC6, 0x06, 0x7C, 0x7A, 0x7A, 0xC5, 0x15, 0xD9, 0x89, 0x50, 0x40, 0x63, 0x03, 0x00, 0x1B,
0x57, 0x01, 0x98, 0x3C, 0xC7, 0x6E, 0x16, 0xE0, 0x33, 0xA7, 0xC7, 0x3C, 0xBD, 0x06, 0xFC, 0x03,
0x9D, 0x84, 0x58, 0x0F, 0x4C, 0x58, 0x8F, 0x2B, 0xFC, 0x8F, 0x41, 0x8F, 0xF8, 0x65, 0x70, 0xC0,
0x22, 0x06, 0xF4, 0x6F, 0x10, 0x9E, 0x48, 0x9E, 0xEF, 0x71, 0x05, 0x6E, 0x8F, 0x30, 0x9E, 0x30,
0x9F, 0xA8, 0xCC, 0x58, 0x2C, 0xF5, 0x70, 0x7E, 0x61, 0x23, 0x55, 0x1A, 0x38, 0x20, 0x4B, 0xDA,
0x98, 0x97, 0x90, 0xCE, 0x1D, 0x7E, 0xFA, 0xC3, 0x41, 0x5D, 0xE8, 0xC5, 0x12, 0x02, 0xCA, 0x1A,
0x1D, 0x05, 0xED, 0x8E, 0x5A, 0x0F, 0x57, 0xC3, 0x05, 0x0C, 0x20, 0x10, 0x41, 0x4D, 0x28, 0x51,
0x26, 0x06, 0x85, 0x22, 0x04, 0x01, 0x31, 0x62, 0x85, 0x93, 0x16, 0x26, 0x26, 0x4A, 0x70, 0x05,
0x92, 0xD8, 0x59, 0xFB, 0x17, 0x78, 0x78, 0xA1, 0x1E, 0xA6, 0xEA, 0x35, 0xEC, 0x5B, 0x41, 0x91,
0xD6, 0xCD, 0x84, 0xF7, 0x67, 0x01, 0x50, 0x84, 0xA9, 0x06, 0xE3, 0xFF, 0x92, 0x4D, 0x0F, 0x6A,
0xD1, 0x38, 0x0A, 0xA1, 0x7A, 0x8D, 0xA4, 0xC1, 0x1D, 0xCE, 0xE9, 0x54, 0x02, 0x16, 0x31, 0xF0,
0xD5, 0x83, 0xCF, 0x13, 0x47, 0xBD, 0xD2, 0x54, 0xA3, 0x09, 0xDE, 0x8D, 0x27, 0x3E, 0x19, 0xA2,
0xC0, 0x22, 0xB8, 0xAB, 0x40, 0xE4, 0x50, 0xF4, 0xA8, 0x12, 0x16, 0x15, 0x3A, 0xAD, 0x81, 0xC2,
0xA7, 0xB1, 0xF2, 0x4D, 0xAC, 0xF4, 0x7E, 0x8D, 0x26, 0x1C, 0x0C, 0x24, 0xEC, 0xBF, 0x1C, 0x11,
0x3D, 0x82, 0x36, 0x33, 0xF7, 0x43, 0x93, 0x22, 0x7A, 0x14, 0x54, 0x88, 0x1E, 0xE5, 0x86, 0xEA,
0x01, 0x4F, 0x5C, 0x8D, 0x05, 0x3E, 0x73, 0xED, 0x99, 0xA6, 0x93, 0x0D, 0xE8, 0x4E, 0xCB, 0xF2,
0x10, 0x0B, 0x4C, 0x43, 0x4F, 0xBC, 0x6A, 0x2F, 0x55, 0x04, 0xA0, 0x82, 0x71, 0x28, 0x0A, 0xF6,
0x19, 0x3F, 0x89, 0x2E, 0xDB, 0x90, 0x0E, 0x9D, 0x43, 0x88, 0x94, 0xE8, 0x7A, 0x21, 0x5C, 0x3C,
0x56, 0x62, 0xCD, 0x82, 0x46, 0x3D, 0x03, 0xB9, 0x4B, 0xE0, 0x8D, 0xD7, 0xD8, 0xF8, 0xC0, 0x0E,
0x76, 0xD2, 0x23, 0xEF, 0x73, 0x0F, 0xE5, 0x33, 0xE8, 0xC9, 0x1C, 0x9C, 0x02, 0xF5, 0x1A, 0x5E,
0x84, 0xA5, 0x49, 0xA8, 0x57, 0xE7, 0x7C, 0x2A, 0x01, 0xBD, 0x5A, 0x7E, 0xF5, 0x05, 0xA0, 0x79,
0xEF, 0xF1, 0xA8, 0xF2, 0xA8, 0xFE, 0xD4, 0xFD, 0x1A, 0xF7, 0xE3, 0xAB, 0xC6, 0x7C, 0xF3, 0x95,
0x73, 0x9C, 0x1B, 0x36, 0xEB, 0x6C, 0xB5, 0x84, 0x48, 0xB4, 0xEB, 0x27, 0x11, 0x38, 0xF1, 0xC9,
0xBF, 0xC5, 0xB9, 0x2E, 0x6A, 0x82, 0xC6, 0xAF, 0xC3, 0x3A, 0x93, 0x8D, 0x88, 0x2E, 0x22, 0x7C,
0x22, 0xF2, 0x02, 0x50, 0xB3, 0x2B, 0x3A, 0xC7, 0xFB, 0x4D, 0x0B, 0xCD, 0xF2, 0x56, 0x25, 0x37,
0x66, 0x42, 0xC1, 0xD2, 0xEB, 0x06, 0xF8, 0x9D, 0xAF, 0x2F, 0x4C, 0xE7, 0x2E, 0xBC, 0xC1, 0xBF,
0x54, 0x54, 0xBE, 0xA2, 0x33, 0xC0, 0x7D, 0x63, 0x9E, 0xBE, 0x46, 0x92, 0xE5, 0xCB, 0x27, 0x46,
0x98, 0x02, 0x59, 0x83, 0x11, 0x29, 0xB0, 0xA8, 0x70, 0x6A, 0x02, 0x98, 0xDD, 0x12, 0x44, 0x88,
0x14, 0xCE, 0x49, 0x50, 0x22, 0xB9, 0x42, 0x39, 0xA1, 0xF7, 0x34, 0x52, 0x49, 0xDE, 0xF0, 0x3E,
0x26, 0xA3, 0x05, 0x6A, 0x6D, 0xAD, 0x83, 0x9D, 0x94, 0x66, 0x49, 0x1B, 0x79, 0x08, 0xDF, 0xEB,
0x14, 0xFB, 0xBD, 0xDE, 0xEF, 0x0F, 0x11, 0xA8, 0x69, 0x98, 0x93, 0x72, 0x22, 0x6B, 0x10, 0x22,
0x8D, 0xCF, 0xC0, 0xE6, 0x0C, 0xA9, 0x38, 0xA7, 0xA2, 0xBA, 0xAA, 0x68, 0x6C, 0x3D, 0xCC, 0xFF,
0xB3, 0xBA, 0x88, 0xDD, 0x17, 0xE6, 0x22, 0x56, 0xD3, 0x10, 0xD1, 0x91, 0x2E, 0x62, 0x19, 0xAB,
0xA7, 0x68, 0x96, 0xAC, 0x30, 0x6D, 0x75, 0xA2, 0x1B, 0xAE, 0xEF, 0x79, 0xFA, 0x5E, 0xA4, 0xEF,
0x3D, 0x0C, 0xC6, 0x2C, 0xB3, 0xF1, 0x57, 0x63, 0x27, 0x8C, 0x29, 0x0B, 0x0E, 0x28, 0xFF, 0x19,
0x26, 0x2C, 0xFF, 0xEF, 0x32, 0xD8, 0x51, 0x5A, 0x8B, 0x47, 0xAD, 0x10, 0x95, 0x0E, 0xA3, 0x2C,
0x08, 0x7D, 0x89, 0x3D, 0x4E, 0x4F, 0x36, 0x64, 0x14, 0x1B, 0x2A, 0x37, 0xDF, 0xFC, 0xAB, 0xF9,
0xFE, 0x93, 0xFB, 0x25, 0x43, 0xAA, 0x5C, 0xAC, 0x04, 0x91, 0x28, 0xAA, 0x14, 0x8C, 0x18, 0xDA,
0x5B, 0x36, 0x7C, 0x1C, 0x00, 0x83, 0xC6, 0x41, 0x78, 0x15, 0x7B, 0x1F, 0x97, 0x8E, 0xC6, 0x59,
0xE6, 0x46, 0xE3, 0x74, 0x70, 0x91, 0x72, 0x4B, 0x9C, 0x5D, 0x4B, 0x1E, 0x60, 0x71, 0x12, 0x28,
0x2C, 0x2D, 0x89, 0x32, 0x4B, 0x24, 0x7D, 0x0F, 0xBA, 0xAB, 0xB2, 0xB4, 0x4E, 0x26, 0x6A, 0xF7,
0x9C, 0xDD, 0xEE, 0xFE, 0xB0, 0xF1, 0xA7, 0x1F, 0xD6, 0x5D, 0x19, 0x16, 0xF4, 0xBF, 0xB1, 0x91,
0xFD, 0xF4, 0xE9, 0x69, 0x07, 0x26, 0x37, 0x9D, 0xF6, 0xED, 0xAE, 0x59, 0x51, 0xFD, 0xB9, 0x56,
0x64, 0xB9, 0xCA, 0xF2, 0xD5, 0x92, 0xB3, 0xF6, 0xD5, 0xC8, 0xC4, 0x5D, 0x13, 0x7F, 0x2D, 0x23,
0x0F, 0x4B, 0x1E, 0x23, 0x97, 0x59, 0x3B, 0x23, 0xB2, 0xE4, 0x5D, 0x7B, 0x46, 0x38, 0xA0, 0xC3,
0xD4, 0x11, 0x66, 0x34, 0x21, 0xE7, 0x9C, 0x6B, 0xF6, 0xA1, 0x5E, 0x66, 0x1F, 0x34, 0x07, 0x33,
0x5E, 0x36, 0xEA, 0x71, 0xFB, 0xD7, 0xB6, 0x35, 0xB8, 0x87, 0x58, 0x6D, 0xD0, 0xA8, 0xD2, 0x64,
0x94, 0xC8, 0x87, 0x9F, 0xEF, 0xD2, 0x8F, 0x5E, 0xA8, 0xCB, 0x29, 0x66, 0x2C, 0x7E, 0x67, 0x1B,
0x32, 0x4A, 0x6B, 0x37, 0x45, 0xF3, 0x89, 0x1C, 0xC1, 0x6C, 0x10, 0x63, 0x18, 0x08, 0xDF, 0x42,
0x8C, 0xC9, 0x30, 0x4F, 0x16, 0x73, 0x8A, 0xE1, 0x2F, 0x43, 0xFB, 0xD6, 0x3A, 0x1F, 0xBC, 0x90,
0xC1, 0x00, 0x5C, 0x28, 0x6B, 0xE2, 0x85, 0xEF, 0x14, 0xB5, 0x5E, 0x28, 0xE6, 0x76, 0x61, 0xA1,
0xAB, 0x8E, 0x18, 0xD4, 0x3A, 0xA2, 0xDB, 0xD9, 0x11, 0xE7, 0x76, 0xC4, 0x24, 0xD5, 0x0B, 0xA3,
0x52, 0x2F, 0xD4, 0xE0, 0x56, 0xF1, 0x54, 0x51, 0x31, 0x61, 0x20, 0x8F, 0xC8, 0x08, 0xC3, 0x6F,
0x68, 0xE2, 0xC5, 0xBE, 0x54, 0x36, 0xC5, 0x71, 0x28, 0x2C, 0x4F, 0xED, 0xA8, 0xA9, 0xA3, 0xFD,
0xB0, 0xBC, 0xDC, 0x0A, 0xDA, 0x8B, 0x9A, 0x7A, 0xE7, 0x2C, 0xF8, 0x42, 0x5C, 0x9C, 0x04, 0xFE,
0xF8, 0xA1, 0x90, 0x05, 0x51, 0x2C, 0xE3, 0x1F, 0x88, 0x95, 0x30, 0x64, 0x91, 0xEC, 0x87, 0x2C,
0x4E, 0x60, 0x1B, 0x32, 0xF0, 0x00, 0x53, 0x31, 0x9D, 0x00, 0x4A, 0xB1, 0x49, 0x7E, 0x2B, 0xEE,
0xA0, 0xF0, 0x43, 0xA5, 0xD2, 0xED, 0xF4, 0x2B, 0x89, 0x03, 0x1F, 0xDB, 0xCD, 0x97, 0xE3, 0x1B,
0x4F, 0xF7, 0x13, 0xDF, 0x70, 0xAE, 0x9C, 0x66, 0x58, 0x7F, 0x03, 0x7A, 0x7D, 0x13, 0x8A, 0x60,
0x01, 0x30, 0x55, 0x20, 0xDF, 0x95, 0x5D, 0x29, 0xD4, 0xDF, 0x14, 0x73, 0x50, 0xDB, 0x6C, 0xD3,
0x49, 0x01, 0x29, 0xC0, 0x7A, 0x11, 0xDE, 0x96, 0x1D, 0x0B, 0x87, 0x6D, 0x7A, 0x69, 0xF0, 0x53,
0x09, 0x98, 0x06, 0x46, 0x29, 0x13, 0xF0, 0xB7, 0x87, 0x18, 0x83, 0xA7, 0x1E, 0xCD, 0x0C, 0x1A,
0x15, 0xD0, 0x9C, 0xAE, 0x36, 0xC2, 0x43, 0x8E, 0xBA, 0x29, 0x21, 0xAD, 0x50, 0x58, 0x6A, 0x5E,
0x51, 0xAE, 0x88, 0x7E, 0xAA, 0x5E, 0x87, 0xDB, 0x32, 0x4F, 0xD2, 0xDA, 0xB0, 0x71, 0x62, 0xC7,
0x62, 0x38, 0x08, 0xC6, 0x7C, 0xD7, 0x46, 0x81, 0x29, 0x56, 0x62, 0x93, 0x34, 0xB6, 0x34, 0x50,
0x75, 0xF7, 0x98, 0x7E, 0x42, 0xDF, 0x35, 0xD9, 0x2B, 0x6A, 0xE2, 0x67, 0xC6, 0xC6, 0x65, 0xE6,
0xC8, 0x57, 0x11, 0xA7, 0x8C, 0x4C, 0xC1, 0x40, 0x39, 0x64, 0x7B, 0x08, 0xBB, 0x0C, 0x00, 0x36,
0x32, 0x62, 0x3C, 0x85, 0x4A, 0x34, 0x40, 0x2E, 0xAF, 0x33, 0xBE, 0xEE, 0x1A, 0xDD, 0x10, 0xC1,
0x90, 0x69, 0x4F, 0x8E, 0x23, 0x34, 0x25, 0xDA, 0x8D, 0xFF, 0x03, 0x63, 0x2F, 0xDC, 0x78, 0xDA,
0x31, 0xA7, 0xD5, 0xC9, 0x82, 0x01, 0x42, 0x46, 0x70, 0x60, 0x8C, 0x89, 0x53, 0x4B, 0x53, 0xA8,
0x53, 0x5F, 0x83, 0x90, 0x62, 0x46, 0x31, 0x11, 0x77, 0x08, 0x84, 0x04, 0x83, 0xA8, 0xFB, 0xED,
0x51, 0x20, 0x6D, 0x84, 0xD0, 0xC4, 0x2E, 0x82, 0xF3, 0x60, 0xC1, 0x5E, 0xA8, 0x00, 0xDF, 0x82,
0x83, 0x26, 0x32, 0x1D, 0x71, 0x2E, 0x65, 0x41, 0xB2, 0xD2, 0xB8, 0x16, 0x98, 0x38, 0xFF, 0x4A,
0xE1, 0xFE, 0xE6, 0x17, 0xEF, 0x0E, 0x7D, 0xD2, 0x27, 0x83, 0x37, 0x98, 0x79, 0x1A, 0xD1, 0xC8,
0x7E, 0xC7, 0x86, 0x58, 0x00, 0x34, 0xFC, 0x49, 0xD2, 0x98, 0xDE, 0x5C, 0x4C, 0x86, 0x60, 0x67,
0x32, 0x41, 0xB1, 0x23, 0xA0, 0xB1, 0x2B, 0x44, 0x6E, 0xDF, 0x93, 0x2B, 0x93, 0x2E, 0x6C, 0x1C,
0xE4, 0x53, 0x84, 0x8C, 0x71, 0x9E, 0xC0, 0xE0, 0x2F, 0x84, 0xBF, 0xE5, 0xE9, 0x41, 0xC5, 0x4C,
0x02, 0x40, 0x29, 0xDC, 0xDF, 0x9A, 0xF9, 0x84, 0x10, 0x02, 0x9F, 0xE4, 0xB2, 0x09, 0xD9, 0xF9,
0xDE, 0x18, 0x4D, 0xB9, 0x80, 0xCA, 0x4E, 0x91, 0xC3, 0x05, 0xF3, 0xF7, 0x8A, 0x7C, 0x66, 0x66,
0x5E, 0x0D, 0xC7, 0x29, 0x78, 0xAD, 0x33, 0xBB, 0x61, 0x19, 0x55, 0xC9, 0xF6, 0xF8, 0xFC, 0x78,
0xA5, 0x78, 0xB3, 0x36, 0x99, 0x10, 0xBE, 0xDF, 0x15, 0xD8, 0x20, 0xAC, 0xFC, 0x52, 0xE3, 0xF4,
0xE1, 0xB5, 0xAC, 0x8C, 0x10, 0x9B, 0x84, 0x4B, 0x70, 0x56, 0x5C, 0xDC, 0x31, 0x1F, 0xB6, 0x9B,
0x0B, 0x66, 0xF1, 0x35, 0x6B, 0xB2, 0x23, 0x9A, 0x7A, 0x51, 0x3E, 0x63, 0x8A, 0x08, 0xF8, 0xC2,
0xE2, 0x6C, 0xEF, 0xAD, 0xDA, 0x7B, 0x7F, 0xDC, 0x6E, 0xE8, 0x2A, 0x89, 0xA0, 0xE0, 0x7E, 0x81,
0xD7, 0x8E, 0xDC, 0xEC, 0x94, 0xEA, 0x6A, 0xD8, 0xC5, 0xCF, 0x2D, 0x46, 0x4D, 0xC4, 0x49, 0xCD,
0xC8, 0xE3, 0xE3, 0xF9, 0x51, 0xAE, 0x18, 0xA1, 0x05, 0xE4, 0x01, 0x33, 0x99, 0xD1, 0x16, 0xB2,
0x23, 0x58, 0xA8, 0x6C, 0x7F, 0x27, 0x12, 0xD9, 0x22, 0x16, 0x89, 0x9C, 0x6E, 0x06, 0x1F, 0x2F,
0x15, 0xB6, 0xBC, 0x82, 0xC0, 0x52, 0xA3, 0xA9, 0x11, 0xD9, 0x59, 0x07, 0x51, 0xF8, 0xED, 0x3A,
0xCE, 0x67, 0x7E, 0xED, 0xD7, 0xE2, 0x2D, 0x46, 0x79, 0xF4, 0xA2, 0x80, 0xB5, 0xC4, 0xEF, 0xFC,
0x9B, 0x0B, 0x53, 0xDC, 0x30, 0xC1, 0x65, 0x06, 0xDA, 0xE4, 0x21, 0xDF, 0xCD, 0x4C, 0xF4, 0xE8,
0xB0, 0x5D, 0x23, 0x4D, 0x75, 0xF6, 0xF2, 0x32, 0x0A, 0x21, 0xAB, 0x79, 0xD0, 0x9C, 0x90, 0x79,
0x34, 0x9E, 0x28, 0x9A, 0x32, 0x29, 0xF2, 0x35, 0x33, 0xDF, 0x09, 0xF2, 0x3E, 0x2C, 0x1F, 0x34,
0xE9, 0x8F, 0x82, 0xD7, 0x7A, 0xAA, 0xF3, 0xCD, 0x24, 0xA7, 0x76, 0x79, 0x4B, 0xBD, 0xF9, 0xAD,
0xF7, 0x18, 0x49, 0x0B, 0xAE, 0x7D, 0xA4, 0x78, 0xF7, 0xD4, 0x3F, 0x67, 0xE0, 0xF8, 0xE2, 0x3F,
0x5C, 0x60, 0xDE, 0x2D, 0x79, 0x13, 0x86, 0x7E, 0xCD, 0x6F, 0x18, 0xB1, 0xCB, 0xE7, 0x41, 0x79,
0x42, 0xDE, 0x0D, 0xCB, 0x5D, 0xB7, 0xFE, 0xF9, 0x8E, 0x69, 0xFD, 0xBD, 0x3E, 0x1C, 0xE1, 0xA5,
0x0B, 0xB0, 0x4A, 0x1D, 0xFA, 0xA4, 0xE6, 0x24, 0x56, 0xD6, 0x7B, 0xC3, 0x76, 0xB5, 0x69, 0x66,
0x27, 0xA8, 0xC6, 0x10, 0x20, 0xCC, 0x9D, 0xED, 0x1A, 0x51, 0x34, 0xFA, 0xD0, 0xB1, 0xE2, 0x9E,
0xF0, 0x8D, 0xDC, 0x11, 0x57, 0x39, 0x7B, 0x5C, 0x04, 0x2D, 0x83, 0x86, 0xBF, 0x6C, 0x4E, 0x8A,
0xFC, 0x5D, 0x02, 0x6E, 0x84, 0x5C, 0xF7, 0x1A, 0xFC, 0xED, 0x11, 0xA0, 0xD5, 0xBF, 0x3C, 0x60,
0xD6, 0x28, 0x67, 0x38, 0xD7, 0xFE, 0x16, 0x0B, 0x80, 0x15, 0x0A, 0x46, 0x79, 0x08, 0x1F, 0xF9,
0x7A, 0x75, 0xA9, 0x8F, 0x7E, 0x72, 0x46, 0x78, 0x56, 0x18, 0x71, 0xCC, 0xC7, 0x3C, 0xAC, 0x9D,
0xFD, 0xBC, 0xAC, 0x6B, 0xCC, 0x31, 0xF3, 0x4F, 0x00, 0xD1, 0xC1, 0x8E, 0x01, 0x2C, 0xF9, 0xAE,
0xD5, 0xC3, 0x19, 0xF6, 0xF6, 0x81, 0x95, 0xA8, 0xCE, 0x89, 0x51, 0x34, 0x48, 0x06, 0xD0, 0x44,
0xBD, 0xA1, 0x8C, 0x8A, 0x18, 0xB2, 0xFE, 0x45, 0xCD, 0xEB, 0x33, 0x04, 0x97, 0xDA, 0xDF, 0x82,
0x86, 0x4E, 0x95, 0x70, 0xB6, 0x28, 0xB9, 0x7C, 0xAD, 0x7D, 0x38, 0xF3, 0x3F, 0x78, 0xF7, 0xB5,
0x71, 0x08, 0x05, 0x37, 0xD4, 0x09, 0x34, 0xCE, 0x96, 0x39, 0x29, 0x52, 0x21, 0x08, 0x36, 0xAB,
0xC3, 0x7C, 0xFE, 0xAA, 0x5F, 0xED, 0x08, 0x35, 0x45, 0x75, 0xEE, 0x9C, 0x16, 0x0D, 0x20, 0x7F,
0xC2, 0x7F, 0x6D, 0x18, 0x17, 0x72, 0x40, 0xA4, 0xB9, 0x6C, 0x10, 0x18, 0x2A, 0x7C, 0x5E, 0x34,
0x74, 0x95, 0x38, 0xAF, 0xB7, 0xC1, 0xAF, 0x9B, 0xDE, 0x8C, 0x22, 0x08, 0x91, 0xF8, 0x10, 0x9A,
0x6E, 0x16, 0xB1, 0x13, 0x92, 0x82, 0x96, 0x57, 0x01, 0xBE, 0xA0, 0x97, 0x37, 0xA1, 0x3E, 0x2E,
0xE0, 0x05, 0x2A, 0xC4, 0x69, 0x64, 0x76, 0x2E, 0xCC, 0x96, 0x07, 0xFD, 0xE9, 0x97, 0x82, 0xD7,
0x03, 0x64, 0x5D, 0xC3, 0x54, 0x18, 0x35, 0x36, 0xC9, 0x89, 0xEF, 0x6E, 0x89, 0x17, 0x20, 0x3B,
0x93, 0xEC, 0x24, 0xB2, 0xD0, 0x26, 0x66, 0xDC, 0xF5, 0x64, 0x0D, 0x86, 0x4A, 0x46, 0xA0, 0xEE,
0xE3, 0xE2, 0xE0, 0x20, 0xCE, 0xD4, 0x9B, 0xFF, 0x5E, 0x1B, 0x7F, 0xDB, 0xAC, 0xB5, 0xC6, 0xF9,
0x3F, 0xD5, 0x43, 0x32, 0xEF, 0x9F, 0xB5, 0xA1, 0xA8, 0xBC, 0xD3, 0xEB, 0xC1, 0xE3, 0x32, 0x5E,
0xF8, 0xE2, 0x45, 0xF9, 0xF8, 0x85, 0x8F, 0x4B, 0x71, 0x95, 0xAB, 0x9D, 0x5A, 0x3E, 0x6E, 0xE2,
0x57, 0xF1, 0x71, 0xD0, 0x09, 0xA5, 0x4F, 0x89, 0xCB, 0xDD, 0xFC, 0x4D, 0x28, 0x5B, 0xD4, 0xEF,
0x8D, 0xB9, 0xB0, 0x4C, 0x2F, 0xC2, 0x9D, 0x87, 0x3D, 0xB3, 0x12, 0x2D, 0xF6, 0x3D, 0x7C, 0x4D,
0x04, 0x22, 0x71, 0xCE, 0xC0, 0x2C, 0xAD, 0x83, 0xB4, 0x62, 0xE5, 0x26, 0xD2, 0xDA, 0x7D, 0xF7,
0x60, 0xC9, 0x22, 0xA8, 0xFB, 0x5D, 0xDD, 0x17, 0xB0, 0x89, 0x5C, 0x2E, 0x6A, 0xAD, 0x16, 0x2A,
0xC5, 0x8F, 0x3F, 0x26, 0x6A, 0xBC, 0x4B, 0x10, 0x94, 0xE9, 0xC8, 0x79, 0x2E, 0xA2, 0x90, 0x48,
0x0C, 0x9C, 0xEF, 0x5D, 0x31, 0x8B, 0x62, 0xB1, 0xE6, 0x72, 0xC3, 0x5C, 0x16, 0x38, 0x13, 0x11,
0x9D, 0xE3, 0x8F, 0x88, 0xE8, 0x02, 0x7A, 0x1F, 0x79, 0x61, 0x88, 0x29, 0x10, 0x73, 0x92, 0xC6,
0x65, 0x72, 0x45, 0x41, 0x06, 0x86, 0x38, 0xD9, 0x39, 0x73, 0x67, 0x6C, 0x62, 0xD9, 0xD7, 0x17,
0x6F, 0xCA, 0xEC, 0xD6, 0x65, 0x76, 0xD7, 0xEB, 0x28, 0x0F, 0xFE, 0x41, 0x26, 0x92, 0xC0, 0xB8,
0x8C, 0xF4, 0x97, 0x64, 0x22, 0x82, 0x60, 0x5A, 0xBA, 0x20, 0x5E, 0xBB, 0x32, 0xBB, 0xEA, 0x05,
0x99, 0x1D, 0x92, 0x32, 0x3A, 0xBB, 0x54, 0x67, 0x77, 0xB6, 0x42, 0xD2, 0xA3, 0x16, 0x9D, 0xEE,
0xBF, 0xBF, 0x27, 0x36, 0xFB, 0x57, 0xA5, 0x00, 0x90, 0xF7, 0xE4, 0xEE, 0xA0, 0x97, 0x9B, 0x42,
0x8E, 0xC3, 0x58, 0x5D, 0x85, 0x34, 0x60, 0x49, 0x09, 0xA0, 0x50, 0xB8, 0x48, 0xAD, 0xC8, 0x53,
0xD7, 0xF1, 0xD1, 0x0C, 0xE6, 0xAA, 0xB8, 0x02, 0xEB, 0x09, 0x4D, 0xDD, 0x89, 0xE2, 0x24, 0xCB,
0xF3, 0xC5, 0x5D, 0xA6, 0xF9, 0xE9, 0x43, 0x42, 0x8B, 0xC0, 0x07, 0xA2, 0xB3, 0x80, 0x8F, 0x91,
0xBF, 0x69, 0xC2, 0x2B, 0x7D, 0x50, 0x1E, 0xD3, 0x84, 0x8F, 0xA3, 0x7E, 0x4B, 0x32, 0x45, 0x2A,
0x00, 0x4D, 0x10, 0x90, 0x28, 0x9D, 0x37, 0x5A, 0xB7, 0x19, 0xCF, 0x37, 0xC8, 0xB2, 0x16, 0x24,
0x09, 0xF2, 0x7B, 0x59, 0x1F, 0x8C, 0xB2, 0x04, 0xA7, 0x4B, 0x8A, 0xE0, 0x6A, 0x63, 0xBA, 0x36,
0x8E, 0x44, 0x1C, 0xAF, 0x57, 0xC9, 0xA6, 0xDF, 0xB8, 0x37, 0xF3, 0x44, 0x58, 0xD0, 0x43, 0x4C,
0x20, 0xA8, 0x44, 0x28, 0xB2, 0x92, 0x44, 0x2A, 0x34, 0x09, 0x03, 0x99, 0xB5, 0xD2, 0x1D, 0x56,
0x5C, 0x56, 0x58, 0xD2, 0x66, 0xCB, 0x3E, 0x37, 0x66, 0x76, 0x0F, 0xE5, 0x7B, 0xF7, 0xA1, 0x04,
0x33, 0x9F, 0x0B, 0xD9, 0x7C, 0xD8, 0xBD, 0x75, 0xE4, 0x1D, 0xD6, 0x53, 0x68, 0x10, 0x11, 0x85,
0x5A, 0x06, 0x29, 0x64, 0x77, 0x35, 0xD8, 0xE1, 0x76, 0x9A, 0x70, 0x62, 0xB2, 0x71, 0x13, 0x6A,
0x67, 0x07, 0xBE, 0x95, 0x2C, 0x68, 0xDD, 0x01, 0x94, 0x00, 0x05, 0x50, 0x28, 0x22, 0x52, 0x25,
0x4C, 0x17, 0x03, 0xD4, 0xC6, 0x70, 0xAF, 0xE3, 0xE7, 0xF0, 0xD2, 0x4C, 0x8E, 0x26, 0xDD, 0x7D,
0x2A, 0xC7, 0x0B, 0x8C, 0xEC, 0x53, 0xF3, 0x19, 0xF3, 0x73, 0x28, 0x08, 0xC8, 0xA5, 0x7A, 0x3C,
0xF8, 0x79, 0x92, 0x31, 0x7C, 0xE4, 0x47, 0x40, 0x78, 0xB7, 0x5D, 0x63, 0xE6, 0x65, 0xAA, 0xF4,
0x5A, 0x5F, 0x26, 0x8E, 0x59, 0x4D, 0xC5, 0xA8, 0x96, 0xA0, 0xB0, 0xD4, 0x19, 0x8B, 0x6D, 0x01,
0x66, 0x61, 0x3E, 0x3A, 0x9D, 0x57, 0x87, 0x55, 0xEF, 0xB4, 0x6E, 0xBB, 0x23, 0x13, 0x16, 0x96,
0x8C, 0x4D, 0xF4, 0x9F, 0x05, 0x40, 0xFB, 0x57, 0x2B, 0xAF, 0x71, 0x7F, 0x8B, 0x78, 0xAC, 0x18,
0xB7, 0x35, 0xB3, 0x2E, 0xE6, 0x20, 0x4D, 0x10, 0x17, 0x8E, 0xF3, 0xD1, 0x6D, 0xB2, 0x3C, 0xDC,
0x1B, 0xC6, 0xDC, 0xA1, 0x1B, 0x4E, 0x48, 0xA7, 0x96, 0xD8, 0x69, 0xCC, 0xEA, 0xC3, 0xFF, 0x1A,
0x19, 0x89, 0x6C, 0x1B, 0x18, 0xC9, 0x9A, 0x19, 0x56, 0x62, 0xA4, 0x66, 0xD7, 0x13, 0xD9, 0x1B,
0x3C, 0x31, 0x21, 0xFF, 0x57, 0xB6, 0x7C, 0x1D, 0xE0, 0x44, 0x96, 0xEA, 0xDC, 0xC0, 0xED, 0x58,
0x0E, 0x6B, 0x6B, 0x56, 0x82, 0x33, 0x30, 0xCA, 0x1E, 0xC2, 0xD5, 0xC1, 0x5B, 0xF2, 0x69, 0x04,
0xD6, 0x05, 0x5E, 0xF9, 0xF3, 0xCE, 0xDD, 0xEB, 0x12, 0xB1, 0xF6, 0x62, 0xB7, 0x84, 0x47, 0x96,
0xAA, 0x5B, 0x44, 0xF8, 0xF6, 0xAA, 0xDB, 0xBB, 0xBD, 0xEA, 0xBE, 0x74, 0x40, 0x75, 0x0F, 0x75,
0x58, 0x7B, 0xBF, 0xCA, 0x99, 0x22, 0xB2, 0x3E, 0x09, 0xF9, 0x18, 0x7B, 0x47, 0x63, 0x1C, 0xE6,
0x27, 0x05, 0x6F, 0xBF, 0x3C, 0x0A, 0xB7, 0x3C, 0x00, 0x9D, 0x1C, 0xC9, 0x93, 0x58, 0xFB, 0x91,
0x50, 0x37, 0x70, 0x0A, 0x49, 0xE9, 0xDD, 0x38, 0x2B, 0xD0, 0x60, 0xFC, 0x30, 0x35, 0xD9, 0xDB,
0x8D, 0x05, 0xFC, 0x1C, 0x67, 0xF6, 0x55, 0x59, 0xCF, 0xDB, 0xF0, 0xD7, 0x3B, 0x35, 0xF7, 0x42,
0xB3, 0x93, 0x64, 0xC6, 0xD7, 0x46, 0x60, 0xB5, 0x4C, 0x96, 0xE1, 0x37, 0x54, 0xFA, 0x71, 0x4E,
0x63, 0xB4, 0x4B, 0x8D, 0x2F, 0x37, 0x03, 0xE8, 0x85, 0x39, 0xD7, 0xB5, 0xC5, 0x05, 0xBA, 0x8D,
0xB2, 0x31, 0xD8, 0x1A, 0x10, 0x3C, 0x91, 0x39, 0x79, 0xAD, 0x03, 0x33, 0x90, 0x54, 0x10, 0x61,
0xF7, 0x43, 0x73, 0xFD, 0xB5, 0xD7, 0xBB, 0x53, 0x5B, 0xE1, 0x99, 0xC8, 0x1F, 0x7F, 0x3D, 0x76,
0x59, 0x03, 0xAB, 0xF0, 0xFC, 0x98, 0x46, 0x95, 0x7F, 0x59, 0x78, 0xEC, 0xB3, 0x3D, 0xB9, 0xD2,
0x27, 0x9B, 0x4F, 0x7C, 0xF2, 0xFD, 0x7C, 0xF2, 0x45, 0x7D, 0x72, 0xEC, 0x8F, 0x1F, 0xC9, 0x93,
0x5B, 0x3E, 0x79, 0x28, 0xF1, 0x64, 0xEF, 0x4D, 0xB3, 0x9A, 0x70, 0x6E, 0x57, 0x03, 0x0B, 0x9A,
0xCF, 0x52, 0x1F, 0xCE, 0x28, 0x2C, 0x0C, 0x51, 0x5C, 0x22, 0xEA, 0x77, 0x77, 0xE3, 0x4C, 0x09,
0xBD, 0x86, 0x80, 0xD6, 0xF7, 0x20, 0x51, 0xD1, 0x86, 0x62, 0xFC, 0x42, 0x4C, 0x51, 0xE7, 0x22,
0xBB, 0xB4, 0x8B, 0xAD, 0x90, 0x19, 0x23, 0x81, 0x23, 0x20, 0x54, 0xE6, 0x24, 0x90, 0x85, 0xAE,
0x56, 0xD4, 0x19, 0xD9, 0x38, 0xE3, 0xFF, 0x02, 0x9E, 0x41, 0xFC, 0x2F, 0x18, 0x2F, 0x07, 0xD3,
0x2A, 0x48, 0x0F, 0x61, 0xA0, 0x64, 0xE8, 0xAD, 0x07, 0x52, 0xB7, 0x75, 0x6F, 0x8E, 0xA2, 0x32,
0xE0, 0x36, 0x26, 0x40, 0x8E, 0xDF, 0xEF, 0xE4, 0x79, 0x73, 0x41, 0x48, 0xA5, 0xD3, 0xC6, 0x69,
0x2C, 0x56, 0x18, 0x37, 0x26, 0x5E, 0xF3, 0x2F, 0x45, 0x82, 0xC2, 0x37, 0x5E, 0x6A, 0x33, 0xEA,
0xA3, 0xCE, 0x01, 0x7B, 0x43, 0x27, 0x9C, 0xE8, 0x29, 0xB2, 0x2E, 0x30, 0x7A, 0xAC, 0x4C, 0xE4,
0xDB, 0x7F, 0x0E, 0x23, 0x2A, 0x0B, 0x9B, 0xE8, 0x5C, 0x24, 0x38, 0x05, 0x19, 0xBA, 0x99, 0x50,
0xBA, 0x03, 0xEB, 0x2C, 0x64, 0xBB, 0x06, 0x64, 0x98, 0x07, 0xEA, 0x7E, 0x13, 0x2C, 0x18, 0xD3,
0x4A, 0xAE, 0x0C, 0x4E, 0xEB, 0xF4, 0x3E, 0x7D, 0x1F, 0x80, 0xA6, 0x38, 0x3F, 0xBE, 0x31, 0xC8,
0xAA, 0x91, 0x56, 0xA9, 0xAC, 0xCB, 0x79, 0x4C, 0xC6, 0x17, 0xAB, 0x14, 0xD4, 0x5E, 0x1B, 0x09,
0x72, 0xC5, 0x87, 0x28, 0xFC, 0x13, 0xAB, 0x2F, 0x78, 0x36, 0x13, 0xFE, 0x1F, 0xDB, 0xAF, 0x0B,
0xD2, 0xBB, 0x2A, 0x54, 0x92, 0x3D, 0x5A, 0x10, 0x95, 0xCF, 0x65, 0xEE, 0xA2, 0xC5, 0xBD, 0x06,
0xA9, 0x30, 0xAF, 0x11, 0xAB, 0x3C, 0xF3, 0xE1, 0x22, 0xCD, 0xF9, 0xBA, 0x08, 0x4A, 0x00, 0xC9,
0x50, 0x5E, 0x9D, 0x0E, 0xAF, 0x72, 0x5D, 0x0E, 0xD9, 0x8A, 0x53, 0xC0, 0xE6, 0xD8, 0xC4, 0x62,
0xA7, 0x12, 0x5A, 0xAA, 0x75, 0x9B, 0xA4, 0x3A, 0x2B, 0xD3, 0x09, 0xE9, 0xE3, 0xFD, 0x0D, 0x3C,
0x56, 0xAF, 0xA6, 0x70, 0x08, 0x52, 0xD9, 0x11, 0xF4, 0x8F, 0xD8, 0x24, 0x4A, 0x01, 0xE2, 0x71,
0x61, 0x8B, 0x39, 0xD6, 0xE1, 0x5C, 0x34, 0x48, 0x3B, 0x3C, 0x2F, 0xF4, 0xD9, 0x09, 0x2E, 0xBD,
0xE6, 0x57, 0x71, 0x74, 0x5F, 0x61, 0x86, 0x36, 0x13, 0x2A, 0x68, 0xF6, 0x1C, 0xD0, 0xC9, 0x68,
0x91, 0x0A, 0x1C, 0x25, 0xDF, 0xFE, 0x13, 0x7C, 0xB3, 0xCC, 0x8B, 0x7D, 0x4E, 0x1C, 0x1B, 0xA5,
0xB2, 0x97, 0xCF, 0x8B, 0x95, 0x78, 0xA4, 0x17, 0x85, 0xDD, 0xDE, 0x92, 0x66, 0x83, 0xFE, 0x8A,
0xC4, 0x6A, 0xC9, 0xF8, 0xE2, 0x7E, 0xD7, 0xF8, 0x0F, 0x09, 0x33, 0x79, 0x82, 0xD0, 0xA3, 0x10,
0xCD, 0x2E, 0x6E, 0x67, 0x51, 0xE1, 0x19, 0xE2, 0xC6, 0x68, 0x91, 0xDA, 0xDC, 0xB8, 0xE2, 0x6F,
0x88, 0xEA, 0xBC, 0x02, 0xD8, 0x20, 0xFC, 0x20, 0x2E, 0xA8, 0x53, 0xA4, 0xD4, 0x87, 0xF7, 0x22,
0x8E, 0xAD, 0xEE, 0x21, 0x23, 0x5E, 0x31, 0x76, 0xB1, 0xB7, 0x8E, 0x2F, 0x00, 0x7F, 0xEB, 0x3C,
0xE1, 0x36, 0xB1, 0x78, 0x2E, 0x82, 0x66, 0x3F, 0xA8, 0x17, 0xFE, 0x7B, 0xE9, 0xDC, 0x17, 0x27,
0x5B, 0xFC, 0x9A, 0x59, 0x08, 0x76, 0x11, 0xAB, 0x14, 0x29, 0x96, 0x58, 0xC0, 0x11, 0x47, 0x48,
0x1D, 0xB1, 0x8C, 0x99, 0x18, 0x02, 0xD4, 0x9F, 0xF5, 0xF4, 0x8F, 0x03, 0xCD, 0x32, 0x31, 0xF0,
0x2D, 0x38, 0x40, 0xBC, 0xBF, 0xF0, 0x2A, 0xEA, 0x0F, 0x4A, 0x75, 0xFC, 0xF9, 0xF3, 0x6D, 0xD5,
0x48, 0x03, 0x71, 0x31, 0x6E, 0x92, 0x19, 0xDC, 0x27, 0xEF, 0xA7, 0xCB, 0x95, 0x17, 0xE7, 0xE0,
0xC8, 0x88, 0x87, 0x14, 0xE4, 0x61, 0xF5, 0x04, 0xEB, 0x86, 0x4A, 0xEC, 0x81, 0xBB, 0xD0, 0x8C,
0x6D, 0x0A, 0x9B, 0x14, 0xD1, 0x91, 0x85, 0x2F, 0x73, 0xB1, 0x13, 0x4E, 0xDE, 0x1B, 0x21, 0x6D,
0xE4, 0x60, 0x07, 0xB6, 0x42, 0x9C, 0xBB, 0xF3, 0x75, 0x6C, 0xEE, 0x81, 0xB8, 0xB6, 0x0C, 0xE9,
0x08, 0xFF, 0x83, 0x43, 0xFD, 0xBF, 0xDB, 0xE0, 0x8E, 0x68, 0xE8, 0x52, 0x40, 0xEC, 0xE9, 0x2C,
0x8D, 0x5E, 0xB4, 0x1B, 0x13, 0x5F, 0x46, 0x32, 0x6E, 0x09, 0x12, 0xBE, 0xE2, 0xE9, 0xF4, 0x12,
0xCD, 0x66, 0x66, 0x35, 0x0B, 0xBA, 0x92, 0x8A, 0x51, 0x81, 0xD9, 0x7D, 0x26, 0x7C, 0xB9, 0xF6,
0x5F, 0x1F, 0xCF, 0x57, 0x02, 0xA9, 0xC9, 0x8B, 0x3E, 0x22, 0x65, 0x49, 0x25, 0x2E, 0x7E, 0x94,
0xEE, 0xEF, 0xE4, 0xD9, 0x32, 0x59, 0x38, 0x67, 0x2A, 0x86, 0x21, 0x85, 0x2D, 0x69, 0x0D, 0x32,
0x0D, 0xFB, 0xE8, 0x1B, 0x3F, 0xF0, 0x7E, 0xDB, 0x24, 0x0B, 0xC1, 0x49, 0x42, 0x5C, 0xB7, 0x8E,
0x1E, 0xED, 0xC3, 0x7A, 0xF4, 0xDB, 0x78, 0x19, 0x98, 0xB2, 0x08, 0x1D, 0x21, 0x80, 0x14, 0x03,
0xD9, 0x59, 0xCD, 0x48, 0x67, 0x0D, 0xB9, 0xDA, 0x34, 0x8D, 0xC5, 0x31, 0x97, 0x4A, 0x19, 0x11,
0xAA, 0x20, 0x69, 0x35, 0xA6, 0xA2, 0x4A, 0x00, 0xB1, 0xA3, 0xB0, 0xD1, 0x74, 0xF1, 0x51, 0xE5,
0xD9, 0xE6, 0x5E, 0xD6, 0x56, 0x0A, 0xF7, 0x6F, 0x97, 0xD6, 0x6C, 0x74, 0x53, 0x45, 0x66, 0xAA,
0x1B, 0xBB, 0x7C, 0x73, 0xEB, 0xD0, 0x9B, 0x0C, 0x52, 0xEC, 0x5A, 0x8B, 0xC3, 0x88, 0x74, 0x65,
0xE1, 0x58, 0xA7, 0x0F, 0x13, 0xFF, 0xCC, 0xCC, 0xE1, 0x7C, 0x0E, 0x48, 0xBC, 0xE8, 0xF3, 0x00,
0xE7, 0x8D, 0xA3, 0xB5, 0x58, 0x03, 0x2B, 0x26, 0x7B, 0x56, 0x4E, 0x6C, 0x12, 0xBD, 0x9D, 0xA2,
0x81, 0x0F, 0xCD, 0x0E, 0x4A, 0x0A, 0x4B, 0xE8, 0x5B, 0x01, 0xF6, 0x10, 0xF4, 0xD6, 0xAF, 0xC4,
0xAF, 0xDD, 0x74, 0x1B, 0xC1, 0x4F, 0xA7, 0x58, 0xB7, 0x12, 0x8A, 0x93, 0x29, 0xE8, 0x19, 0xDA,
0xF3, 0xF5, 0x1F, 0x54, 0x5E, 0xEB, 0xD7, 0x44, 0xC1, 0x4D, 0x02, 0xE6, 0x43, 0x08, 0xC0, 0x88,
0xA8, 0x88, 0xD1, 0x59, 0x13, 0xF7, 0xBE, 0x94, 0x99, 0x3D, 0x40, 0x15, 0x1C, 0xE6, 0xF2, 0x34,
0x87, 0x91, 0x0A, 0xB1, 0x29, 0xB9, 0xAC, 0x03, 0x72, 0x28, 0x23, 0x9D, 0x65, 0x19, 0x36, 0xE2,
0xCB, 0xE3, 0xF9, 0x05, 0xEA, 0x0A, 0x83, 0x1A, 0x16, 0x48, 0x74, 0xA6, 0x5F, 0xF9, 0x97, 0x3A,
0x40, 0x2D, 0x98, 0x5F, 0x94, 0xE0, 0x26, 0x3F, 0x10, 0x5D, 0xE2, 0x8E, 0xA8, 0xE8, 0x12, 0xDE,
0x70, 0x58, 0x1C, 0x2D, 0x83, 0x50, 0xDC, 0x6C, 0x35, 0x1E, 0xB2, 0x45, 0x8C, 0xB0, 0x56, 0x1A,
0x4A, 0xE8, 0x27, 0xB3, 0xDE, 0xCA, 0xAE, 0xC5, 0xAE, 0x68, 0xE6, 0x66, 0x18, 0xCD, 0xFA, 0x29,
0xAF, 0xF1, 0x7F, 0x25, 0xDE, 0xFF, 0x96, 0xCC, 0x37, 0x40, 0x50, 0x0B, 0x20, 0x3B, 0x14, 0xC3,
0xEE, 0xA0, 0x30, 0x08, 0xE0, 0xC1, 0xD3, 0x10, 0x8F, 0xD7, 0xFC, 0x7B, 0x11, 0xC8, 0x53, 0x33,
0x61, 0xD3, 0x37, 0xC5, 0xB7, 0x6F, 0xFA, 0x65, 0x19, 0x18, 0x85, 0x8B, 0x0F, 0x61, 0x26, 0xBA,
0xD1, 0xA0, 0x15, 0xA7, 0x51, 0x1F, 0xDC, 0xE9, 0xB3, 0xB5, 0xD9, 0xC9, 0x7A, 0x61, 0xDA, 0x75,
0x77, 0xAF, 0x8C, 0x1E, 0x69, 0x8C, 0xFF, 0x9A, 0x90, 0xB7, 0x91, 0x2B, 0x3B, 0xF9, 0xB3, 0x26,
0xF8, 0x08, 0x55, 0x79, 0xBE, 0x4C, 0xD9, 0xED, 0x3A, 0x8A, 0xBA, 0x59, 0x17, 0xBA, 0x45, 0x69,
0xEF, 0x07, 0x55, 0xFC, 0xD2, 0x45, 0xD1, 0x94, 0x62, 0x8D, 0xB2, 0x6A, 0x5D, 0x4B, 0x53, 0xCE,
0x31, 0x3B, 0x3D, 0x55, 0x79, 0x11, 0x31, 0x16, 0xCB, 0x84, 0xD2, 0xE6, 0xB2, 0xF2, 0x60, 0x92,
0xEF, 0xD2, 0xEC, 0x46, 0xA3, 0x85, 0x48, 0x25, 0x53, 0xD4, 0xC4, 0xC2, 0xB3, 0x09, 0x12, 0x53,
0x2C, 0xE4, 0xB7, 0xCA, 0xFE, 0xE6, 0x02, 0xDC, 0x44, 0xF0, 0x3E, 0x47, 0x90, 0x7D, 0xEB, 0xAB,
0xD1, 0x6B, 0xDD, 0xB5, 0x26, 0x1B, 0x5F, 0x14, 0x97, 0xB7, 0x0B, 0x3B, 0x60, 0xEB, 0x7D, 0x79,
0xFB, 0x16, 0xE2, 0xB3, 0x28, 0x94, 0x06, 0xA0, 0x1D, 0x40, 0x80, 0x62, 0x64, 0xC9, 0x17, 0x1E,
0xFD, 0xC4, 0x2A, 0x11, 0xBE, 0x74, 0x54, 0xFD, 0xC5, 0xBA, 0xFF, 0xFF, 0x0E, 0xEE, 0xFF, 0x7F,
0x41, 0xCE, 0x0D, 0x9B, 0xF0, 0xE0, 0xF4, 0x70, 0xE2, 0x9B, 0xD9, 0xE4, 0x12, 0xB1, 0x92, 0x1B,
0xC5, 0x99, 0x2B, 0xC1, 0x4F, 0xA7, 0xB3, 0xF5, 0x08, 0x7C, 0xD9, 0x7A, 0xFA, 0xDA, 0xD3, 0x95,
0xF8, 0x33, 0x7E, 0x79, 0x41, 0x8C, 0x4E, 0xFE, 0x17, 0x41, 0x7D, 0xE2, 0x40, 0xAD, 0xF4, 0x3B,
0x4F, 0xD8, 0xB4, 0x71, 0x8C, 0x40, 0x61, 0x92, 0x9E, 0x04, 0x72, 0xE3, 0x0E, 0x01, 0xCC, 0xAD,
0x04, 0x65, 0xDD, 0x4E, 0x4B, 0xDB, 0x44, 0x6F, 0xD5, 0xEE, 0xE2, 0x29, 0xC4, 0x84, 0xC5, 0x0A,
0x33, 0x32, 0x4B, 0x77, 0x4A, 0x5C, 0xCC, 0x04, 0x79, 0x80, 0x97, 0x50, 0x56, 0xB1, 0xB6, 0x29,
0xF4, 0x74, 0xAE, 0x97, 0x5B, 0x40, 0x20, 0xA4, 0x74, 0x1D, 0xFC, 0x8F, 0x27, 0xCC, 0x08, 0x9C,
0x85, 0x70, 0x93, 0x60, 0x97, 0x12, 0x62, 0x3F, 0x47, 0x79, 0xC0, 0xA3, 0x18, 0x74, 0x17, 0xB0,
0xD7, 0x6D, 0xC1, 0x34, 0x14, 0xC4, 0x74, 0x86, 0x80, 0xE1, 0x79, 0x98, 0x76, 0x11, 0xB7, 0x8E,
0x22, 0x7F, 0x64, 0x76, 0x3D, 0x82, 0x33, 0x86, 0x6C, 0x38, 0x13, 0xD3, 0x80, 0xFC, 0x99, 0x86,
0x23, 0xE1, 0x9C, 0x7B, 0x0D, 0x43, 0x7E, 0x6F, 0x33, 0x77, 0xC0, 0xA4, 0x6B, 0x5F, 0x6C, 0x6C,
0x6C, 0x3C, 0xF3, 0x71, 0x77, 0xDB, 0xEC, 0xBA, 0x7B, 0x30, 0xBB, 0xDE, 0x6A, 0x76, 0x7D, 0xFB,
0x50, 0x76, 0x1D, 0x06, 0x02, 0x01, 0xCC, 0x60, 0xAF, 0x28, 0x03, 0x9A, 0x74, 0x40, 0x39, 0x96,
0xF1, 0xCB, 0x33, 0x37, 0x36, 0xFA, 0xC4, 0x3E, 0xF0, 0xE5, 0x4A, 0xC0, 0x22, 0xDE, 0xDC, 0x95,
0x8D, 0x89, 0x72, 0x04, 0x12, 0x84, 0x58, 0xE2, 0xD2, 0x6B, 0x75, 0x46, 0x76, 0xD9, 0x10, 0x85,
0x39, 0x7D, 0xC2, 0x1A, 0x66, 0x1F, 0xC9, 0xE1, 0x01, 0x2A, 0x3D, 0x59, 0xC0, 0x0A, 0x0C, 0xF7,
0x80, 0xB4, 0xFC, 0x5F, 0xED, 0x04, 0xE0, 0x4C, 0x6F, 0x8B, 0x64, 0xB4, 0x84, 0x2D, 0xA1, 0x64,
0xCE, 0xC8, 0x16, 0x3B, 0xF4, 0x7A, 0xB0, 0xB8, 0x84, 0xDA, 0x9A, 0x0C, 0x2E, 0x90, 0x8E, 0xE9,
0x6B, 0x26, 0x3B, 0xA3, 0x33, 0x44, 0xC4, 0x9A, 0x1E, 0xEB, 0xF7, 0xF3, 0x94, 0x61, 0x63, 0xA6,
0x90, 0xFD, 0x89, 0x16, 0x01, 0x40, 0x79, 0xE0, 0xF0, 0xCF, 0x7A, 0x38, 0x17, 0x60, 0x5E, 0x03,
0x6D, 0x2B, 0x2F, 0x00, 0x59, 0xD8, 0xCF, 0x1D, 0xC4, 0xE3, 0x76, 0x02, 0x40, 0x15, 0x08, 0xCD,
0xD6, 0x69, 0x68, 0x06, 0xF0, 0xE7, 0x56, 0x33, 0x15, 0xBD, 0x66, 0xE5, 0x94, 0x96, 0xA1, 0xE4,
0x7C, 0x6F, 0x92, 0xD3, 0x3F, 0xFA, 0xAA, 0xA5, 0x73, 0x07, 0xAB, 0x96, 0xCA, 0xD5, 0x44, 0x55,
0xD0, 0xAC, 0x56, 0xCC, 0xDA, 0xAE, 0x0B, 0xA7, 0x3B, 0x90, 0xBA, 0x7A, 0x78, 0xB5, 0x11, 0xE7,
0x77, 0x0A, 0xFA, 0x3D, 0x7D, 0x44, 0xD0, 0xAF, 0xBC, 0x73, 0xD0, 0xEF, 0x18, 0x82, 0x7E, 0xCF,
0x65, 0xFE, 0x07, 0x6F, 0x5F, 0x1A, 0x87, 0x70, 0x44, 0xD0, 0x0F, 0x82, 0xF0, 0x97, 0xCC, 0xE1,
0x4C, 0xCA, 0x07, 0x9A, 0x92, 0xB0, 0xD9, 0xC1, 0xDB, 0xF7, 0x9A, 0x3B, 0xE4, 0x82, 0x46, 0x0D,
0xBC, 0xB7, 0x96, 0xA7, 0x8E, 0xCC, 0x05, 0xA1, 0x72, 0x36, 0xCE, 0x51, 0xBE, 0x9A, 0x1E, 0x28,
0x5F, 0x9D, 0x7F, 0x62, 0x2E, 0x08, 0x01, 0x76, 0x98, 0x00, 0xF6, 0xB7, 0x68, 0x0D, 0x8A, 0x69,
0x59, 0xD3, 0x11, 0xCA, 0x25, 0x5F, 0x5F, 0x3C, 0xB9, 0x74, 0x95, 0x50, 0xE6, 0xF2, 0xEB, 0x27,
0xE5, 0x81, 0xB8, 0x73, 0xE1, 0xB5, 0x5E, 0x1F, 0x8A, 0x97, 0xB9, 0x65, 0xC2, 0xD7, 0x44, 0xC9,
0xF8, 0x15, 0x64, 0x32, 0x2A, 0x93, 0xAB, 0x0B, 0xC6, 0x94, 0x20, 0x8D, 0x9F, 0xA5, 0x1E, 0xA5,
0x42, 0x3D, 0xCA, 0x26, 0x54, 0x65, 0x88, 0xC2, 0x16, 0x04, 0xC4, 0x99, 0x20, 0x0A, 0xB0, 0xEB,
0xDE, 0x8D, 0x27, 0x28, 0xB1, 0xA7, 0x98, 0xF9, 0xCC, 0x3F, 0x5D, 0x3D, 0xCA, 0x7E, 0x54, 0xED,
0x69, 0x8D, 0xAA, 0xE5, 0x9F, 0x18, 0x55, 0xFB, 0xFE, 0xF7, 0x85, 0x76, 0xFE, 0x8B, 0xB2, 0x1C,
0xEF, 0x8D, 0xC6, 0xAC, 0xBB, 0x1F, 0x8A, 0x3F, 0x06, 0xD1, 0xB1, 0x51, 0xB5, 0x1E, 0x51, 0xB5,
0x1D, 0x70, 0xD0, 0x29, 0xBC, 0x84, 0x80, 0x71, 0xC7, 0xEE, 0x10, 0x55, 0x33, 0x13, 0x78, 0xA7,
0xC9, 0xF1, 0xEA, 0xA5, 0x87, 0x1D, 0x94, 0xFB, 0x5D, 0x74, 0x29, 0x8A, 0x4F, 0x9F, 0xB8, 0x4D,
0xB5, 0xAA, 0x0A, 0xF1, 0xE1, 0x04, 0x3C, 0x4B, 0x68, 0x94, 0xD3, 0x8F, 0xEE, 0xA2, 0x9B, 0x2D,
0x15, 0x90, 0x2D, 0x8D, 0x65, 0x8C, 0x6F, 0x61, 0xA5, 0xDD, 0x96, 0xAE, 0xE0, 0xE7, 0x98, 0xFD,
0x90, 0x1A, 0x6E, 0x93, 0x31, 0x96, 0x58, 0x21, 0x99, 0x39, 0x9E, 0xFD, 0x95, 0x32, 0x84, 0x9A,
0x00, 0xAB, 0x7B, 0x58, 0xB3, 0x52, 0xD9, 0x10, 0xD3, 0xCE, 0x84, 0x6A, 0xF3, 0x7D, 0x54, 0xFB,
0x73, 0x34, 0x0F, 0xF6, 0x53, 0x5A, 0xF9, 0x77, 0x2E, 0x8D, 0x66, 0x67, 0x19, 0xC2, 0x0C, 0xC6,
0x39, 0x73, 0xED, 0xC9, 0x03, 0xFB, 0x9C, 0x2C, 0x49, 0x70, 0x4B, 0xD1, 0xF4, 0x61, 0x0E, 0xB8,
0x35, 0xEF, 0xF3, 0xBD, 0xA8, 0x0A, 0x65, 0x57, 0x51, 0x40, 0x54, 0x3A, 0xC3, 0xAE, 0x59, 0xF8,
0x47, 0xE7, 0x7D, 0x3E, 0xB9, 0x92, 0xDD, 0xBD, 0xB5, 0x92, 0xBD, 0xCF, 0x5A, 0xA3, 0xED, 0x70,
0xD1, 0xDE, 0x36, 0x8B, 0xAC, 0x46, 0xF6, 0x1E, 0x01, 0xB4, 0xB8, 0x84, 0x00, 0x05, 0x36, 0x2C,
0x42, 0x32, 0x6F, 0xEA, 0x32, 0xEC, 0xB1, 0xBD, 0xE0, 0xF8, 0x47, 0x51, 0x38, 0xF5, 0xBA, 0x3C,
0x95, 0x5B, 0xC8, 0x01, 0x97, 0x09, 0xD8, 0x6F, 0x31, 0xAD, 0x7E, 0x65, 0x61, 0x63, 0xFC, 0xF4,
0xC6, 0x44, 0x3A, 0x3A, 0xD9, 0xA7, 0xF6, 0xC4, 0xE2, 0xA9, 0xC6, 0xE9, 0x1C, 0x41, 0xE8, 0x0E,
0x50, 0x61, 0x6A, 0x33, 0x9C, 0xC2, 0x6E, 0x1B, 0xC6, 0xBF, 0x3A, 0xD6, 0x22, 0x40, 0x6D, 0xD8,
0xFA, 0x3D, 0xEA, 0x04, 0x64, 0xA3, 0x06, 0x24, 0xAB, 0xC5, 0x08, 0xED, 0x22, 0x35, 0x95, 0x98,
0xC9, 0xD3, 0x05, 0x37, 0xB1, 0x9A, 0xBB, 0x76, 0x4A, 0x41, 0x9E, 0x7B, 0x23, 0x63, 0x99, 0xEA,
0xBB, 0xFD, 0x63, 0x2B, 0x85, 0x2E, 0xA7, 0x52, 0xE8, 0x7A, 0x2A, 0x85, 0xEE, 0xA6, 0x52, 0xE8,
0x31, 0xD5, 0x52, 0x68, 0x67, 0x29, 0x9F, 0xF1, 0xF4, 0x8F, 0x24, 0x3D, 0x5C, 0xFE, 0xB0, 0x3E,
0xFD, 0xE3, 0xF4, 0x2D, 0xFF, 0xB8, 0xFF, 0x0F, 0x9D, 0x6E, 0xBB, 0x4F, 0xD3, 0x6D, 0xDE, 0xC1,
0x74, 0xDB, 0x5E, 0xC9, 0x74, 0xDB, 0xAE, 0x9D, 0x97, 0x6F, 0xD7, 0xB2, 0x79, 0xF0, 0x57, 0x6D,
0x11, 0x99, 0xC2, 0xD5, 0x78, 0xF0, 0xEF, 0xB1, 0x0A, 0xBC, 0xD9, 0xAF, 0x02, 0xA7, 0xC2, 0xBB,
0xA0, 0x81, 0xDB, 0x7B, 0xC4, 0x0F, 0x11, 0x0F, 0x93, 0x26, 0x5F, 0x2D, 0xED, 0xE7, 0xC9, 0x0F,
0xB6, 0x6A, 0x48, 0x1B, 0xFE, 0x75, 0xB5, 0x66, 0xD1, 0xF7, 0xDC, 0x7C, 0x19, 0x25, 0xCD, 0xEE,
0x6A, 0x49, 0xB3, 0x6D, 0xEB, 0x02, 0x9F, 0xC9, 0xF6, 0x74, 0xD0, 0x42, 0xDA, 0x8D, 0x44, 0x9A,
0x2D, 0x9B, 0x92, 0xFA, 0x15, 0xEE, 0xD2, 0x8A, 0x1A, 0x22, 0x37, 0x23, 0x3B, 0xF9, 0x29, 0xD3,
0x82, 0xC3, 0x81, 0xB4, 0x60, 0xE7, 0x20, 0x2D, 0xF8, 0x71, 0x1B, 0x7C, 0xD4, 0x8A, 0xD7, 0x26,
0x1E, 0x69, 0x7C, 0x33, 0xCC, 0xDD, 0x0F, 0x4A, 0x1B, 0xC8, 0x5D, 0xB3, 0xE9, 0x07, 0xE8, 0x72,
0x6C, 0x3E, 0x3A, 0x8A, 0x47, 0x16, 0x83, 0x8D, 0x03, 0xF7, 0x23, 0x53, 0x00, 0xB0, 0x2B, 0xEA,
0xE8, 0x6B, 0xDA, 0x30, 0x49, 0xA3, 0xC0, 0x72, 0x84, 0xD3, 0xF4, 0xC7, 0xBB, 0x06, 0x2B, 0x0F,
0xDE, 0x7D, 0x99, 0x38, 0xF4, 0xDB, 0x9B, 0x2A, 0xB1, 0xEC, 0xB2, 0xBB, 0xC9, 0x05, 0x46, 0x8F,
0xB3, 0x6A, 0x6F, 0xF7, 0x7B, 0xAC, 0x4D, 0xFC, 0xA8, 0xA2, 0x27, 0xFF, 0xE6, 0x23, 0x0C, 0x92,
0xFC, 0xA9, 0x8D, 0x82, 0x40, 0x9C, 0x83, 0x6A, 0xAA, 0x73, 0x4D, 0x6C, 0x07, 0x40, 0x2A, 0x42,
0x60, 0x6C, 0x15, 0xB8, 0x19, 0xD9, 0x89, 0x2C, 0x6C, 0x27, 0x74, 0x70, 0xAF, 0xC1, 0x89, 0x12,
0x42, 0x78, 0x57, 0xD3, 0x2D, 0x59, 0x84, 0xF3, 0xD1, 0x23, 0xA2, 0x35, 0xFF, 0x56, 0x4C, 0x69,
0xF2, 0xB0, 0x0C, 0x78, 0xE3, 0x3D, 0x78, 0x2F, 0x32, 0x42, 0x34, 0x93, 0x89, 0xEE, 0x7C, 0xD0,
0x18, 0xEF, 0x37, 0x32, 0xBD, 0xF0, 0x3F, 0xC9, 0x84, 0xB7, 0xE4, 0x01, 0xE2, 0x3D, 0xCC, 0x02,
0x24, 0xDA, 0x2E, 0x24, 0x58, 0x64, 0x67, 0x7D, 0xB9, 0x55, 0xFE, 0x28, 0x27, 0xFE, 0x90, 0x55,
0xB3, 0x51, 0x26, 0x1B, 0xEB, 0x8E, 0x8E, 0x20, 0xCB, 0xC8, 0xF3, 0x1D, 0x32, 0xC0, 0xD6, 0x3E,
0x7F, 0x0C, 0x5A, 0x98, 0xAA, 0x2B, 0x7E, 0xF7, 0x56, 0xFE, 0x70, 0xF7, 0xF9, 0x23, 0x3E, 0x54,
0xF2, 0x5E, 0xDE, 0xA6, 0xE4, 0x5D, 0xF4, 0x97, 0x5B, 0x40, 0xAD, 0xCB, 0x05, 0x4F, 0xAD, 0x1A,
0x5A, 0xD9, 0x04, 0x77, 0x1C, 0xDC, 0xA6, 0x18, 0x1F, 0x1D, 0x4C, 0x27, 0x8A, 0x6B, 0xCD, 0xAB,
0xF3, 0x48, 0xB0, 0x7D, 0x70, 0xB1, 0x32, 0xDE, 0xFB, 0x32, 0xF8, 0x35, 0xF9, 0xB3, 0xD6, 0x6B,
0x21, 0x64, 0x70, 0xBD, 0x66, 0xA8, 0x51, 0x5C, 0xB5, 0x14, 0xC1, 0xE3, 0x6F, 0xC4, 0xE9, 0x3C,
0x44, 0xC4, 0xFC, 0xD1, 0xC6, 0x41, 0x0E, 0x34, 0x4A, 0x09, 0xC3, 0xE2, 0x17, 0x60, 0xD6, 0x22,
0x78, 0x54, 0xA9, 0x3F, 0x5E, 0xAC, 0x29, 0x1C, 0x6B, 0x22, 0xEA, 0x82, 0xC4, 0x10, 0x22, 0x2A,
0x45, 0xC3, 0xF5, 0xC4, 0x02, 0x2A, 0x1D, 0xB6, 0xB9, 0x32, 0x79, 0x44, 0x6D, 0xDC, 0x8E, 0x9A,
0xF4, 0x7C, 0xD9, 0x5D, 0x29, 0xE8, 0x5E, 0xC1, 0xA8, 0x2D, 0xE0, 0xEC, 0x96, 0xED, 0x95, 0x4E,
0x47, 0xCD, 0x1C, 0xE7, 0x8C, 0xB3, 0xA8, 0x80, 0x68, 0x7F, 0x65, 0xA0, 0xAD, 0x29, 0x32, 0x9B,
0xAC, 0xB4, 0x45, 0xFF, 0xE1, 0x58, 0xBB, 0xAD, 0x4C, 0x29, 0xB9, 0xFE, 0xCE, 0x8E, 0x87, 0x45,
0x27, 0xC7, 0xBA, 0xF0, 0xC5, 0xC6, 0x69, 0xD6, 0x70, 0x1E, 0xC1, 0x47, 0x30, 0x4B, 0x6F, 0x81,
0x2C, 0x2C, 0x99, 0x81, 0xA1, 0xBA, 0x8E, 0xA2, 0xAB, 0x97, 0x84, 0x97, 0x77, 0x90, 0xCF, 0x6E,
0xE2, 0xB4, 0x0C, 0xF3, 0x24, 0x10, 0xD8, 0x53, 0x74, 0xA2, 0xBF, 0x90, 0x2B, 0x30, 0x9D, 0xB9,
0xAB, 0xCB, 0xDD, 0x6F, 0xD8, 0x72, 0xF7, 0x4E, 0x67, 0x38, 0x1C, 0x30, 0x3D, 0xB6, 0xFB, 0x4F,
0xC1, 0x9F, 0xCD, 0xE6, 0x2D, 0xE3, 0x92, 0xA7, 0xF4, 0xAF, 0xC0, 0x7C, 0xFA, 0x5C, 0xF9, 0xE2,
0x96, 0x5C, 0xB9, 0xD3, 0xDD, 0x3F, 0x33, 0xFE, 0xA5, 0x8F, 0xE4, 0xF2, 0x33, 0x8F, 0x55, 0x54,
0x1A, 0xDE, 0x20, 0x42, 0xEE, 0xBF, 0x5D, 0x4E, 0x4A, 0x69, 0x73, 0x7A, 0x34, 0x9B, 0xC1, 0x7A,
0x8D, 0x63, 0x29, 0x49, 0xC7, 0x5C, 0x69, 0xAA, 0xE5, 0xB2, 0xCE, 0xE2, 0x87, 0xAD, 0x5D, 0xE9,
0xA6, 0x5D, 0x6A, 0x6C, 0xD7, 0x1A, 0xE4, 0x4A, 0x10, 0xB7, 0x9C, 0x28, 0x3B, 0x91, 0x64, 0x49,
0x93, 0x89, 0xB8, 0x13, 0x75, 0x27, 0xF2, 0xDE, 0x7A, 0xA1, 0xA5, 0xDE, 0x44, 0xE2, 0x89, 0xA2,
0xB7, 0xBF, 0x50, 0xDB, 0x0A, 0xA6, 0xBE, 0x02, 0xB3, 0x6C, 0x2C, 0x00, 0xDD, 0x46, 0x6A, 0x97,
0xF1, 0x23, 0xA1, 0xDC, 0xE2, 0x99, 0x12, 0xA4, 0x3B, 0x85, 0x80, 0xF3, 0x23, 0x2D, 0x88, 0x17,
0x96, 0xA0, 0xDE, 0x31, 0x92, 0xCF, 0xB0, 0xD6, 0x40, 0x09, 0x48, 0x0A, 0xDA, 0xCA, 0x2E, 0x65,
0x31, 0xDC, 0x98, 0x83, 0xE8, 0x8F, 0x83, 0xEA, 0x03, 0xBC, 0x43, 0x34, 0x82, 0x74, 0xB6, 0xFB,
0x1B, 0x51, 0x92, 0x4E, 0x8F, 0x75, 0xE0, 0x16, 0xA3, 0x75, 0x60, 0x61, 0x61, 0x7B, 0x68, 0xDB,
0x54, 0x9D, 0x09, 0xD4, 0x72, 0xEE, 0x7E, 0x63, 0xAD, 0xC4, 0xDC, 0x72, 0x83, 0x2D, 0x12, 0xA6,
0x3D, 0x9E, 0x59, 0xE6, 0x08, 0x7E, 0x5D, 0x5C, 0xE6, 0x7D, 0x03, 0x81, 0x35, 0x5A, 0x18, 0xCF,
0x8F, 0xA9, 0x70, 0xBE, 0xC8, 0x12, 0x5D, 0x40, 0xCC, 0x1B, 0x01, 0x31, 0x1B, 0xFD, 0xCE, 0xB4,
0x4E, 0xB9, 0xB2, 0x35, 0xCB, 0x0B, 0x18, 0xDA, 0x0C, 0x44, 0x12, 0x32, 0x61, 0xA2, 0x0B, 0x45,
0xA1, 0xE8, 0xAB, 0xAE, 0x50, 0xE0, 0x8E, 0x08, 0x0A, 0x3B, 0x0A, 0xE2, 0x97, 0xC5, 0xCF, 0x1B,
0xC7, 0xFD, 0x30, 0x6A, 0x76, 0xA8, 0x56, 0xD4, 0x66, 0x05, 0xBF, 0xA2, 0x41, 0x4D, 0x79, 0x7E,
0xA1, 0xAC, 0xAB, 0x2D, 0xD8, 0x86, 0x99, 0x01, 0x56, 0x4D, 0x40, 0x59, 0x97, 0xB0, 0xDB, 0xA8,
0x10, 0xC0, 0x21, 0x06, 0x3F, 0x41, 0x92, 0xC9, 0xF9, 0x2D, 0xBB, 0x51, 0xE3, 0xE7, 0x5C, 0xEE,
0x93, 0x49, 0x8E, 0x3F, 0x81, 0x2C, 0xC1, 0xCD, 0xB1, 0x12, 0x55, 0x82, 0x96, 0xD0, 0xCC, 0xF8,
0x9D, 0xDF, 0xB3, 0x6E, 0x39, 0xAA, 0x58, 0xB8, 0x3C, 0xB0, 0x72, 0x39, 0xF8, 0xA8, 0xC3, 0x1A,
0xB3, 0x18, 0xE9, 0x2C, 0xFF, 0x37, 0x80, 0x2F, 0x26, 0x23, 0xCB, 0x07, 0x1F, 0xD4, 0xD0, 0x9F,
0xBB, 0x2B, 0x82, 0x64, 0x63, 0x02, 0x0A, 0xF0, 0xB8, 0x31, 0xDF, 0x56, 0xFC, 0xB8, 0x37, 0xEE,
0x2B, 0x34, 0xCD, 0x75, 0x9F, 0x54, 0x3F, 0xA2, 0x3A, 0x9E, 0xB2, 0x98, 0x6F, 0x80, 0xC6, 0x12,
0xAB, 0x80, 0xE4, 0xC5, 0x0B, 0x70, 0xA1, 0x93, 0x3C, 0xC9, 0xE7, 0x00, 0xF0, 0x8D, 0x48, 0x51,
0xE5, 0xF4, 0xD4, 0x6F, 0x59, 0x58, 0xA1, 0x4B, 0xFB, 0x0D, 0xD8, 0x96, 0xE0, 0xD7, 0xA0, 0xBF,
0xDB, 0x16, 0xEC, 0x52, 0x65, 0x6B, 0x7F, 0x16, 0x34, 0x08, 0x53, 0x3E, 0xD2, 0xB3, 0xCC, 0x2D,
0x4B, 0x83, 0x5A, 0x10, 0xB2, 0x28, 0x5E, 0xBF, 0x41, 0xE9, 0x26, 0x52, 0x1E, 0xA5, 0x7F, 0xBD,
0x45, 0x7A, 0x11, 0xF4, 0x19, 0xF7, 0x8A, 0xBD, 0xA7, 0xCE, 0x09, 0x68, 0x87, 0x8F, 0x16, 0x0D,
0x0E, 0x3D, 0x74, 0x01, 0x4C, 0xD1, 0xDF, 0xE3, 0xBC, 0x80, 0x40, 0x60, 0x66, 0x13, 0x5D, 0xEC,
0x02, 0x31, 0xF8, 0x5D, 0x98, 0x6F, 0xC9, 0x23, 0x44, 0x2F, 0x74, 0x09, 0xC2, 0x49, 0x4C, 0xC3,
0xCE, 0x4D, 0xE7, 0x36, 0xF2, 0xE2, 0x89, 0x61, 0xEA, 0x83, 0xB2, 0x10, 0x0D, 0x99, 0x66, 0xE9,
0xD6, 0xBA, 0x58, 0xA0, 0xA4, 0x83, 0x5B, 0xD2, 0xDC, 0xA3, 0xB5, 0xFB, 0x59, 0x8B, 0x28, 0xE0,
0xB2, 0x65, 0x23, 0x38, 0xD0, 0xB2, 0xE1, 0xDE, 0xB1, 0x65, 0x23, 0xF9, 0xAC, 0x2D, 0x1B, 0xE2,
0x83, 0xBC, 0x82, 0x14, 0x14, 0xB0, 0x64, 0xCC, 0x98, 0xDF, 0x85, 0x25, 0x4C, 0xC5, 0xBF, 0xCE,
0x31, 0xCA, 0xC1, 0xAA, 0x83, 0x72, 0x0A, 0xC4, 0x68, 0x45, 0x4A, 0xF0, 0x99, 0x2B, 0x52, 0x4A,
0xC2, 0x42, 0x80, 0x25, 0xE3, 0x6D, 0xE7, 0xB0, 0xF3, 0x71, 0xFE, 0x25, 0xF5, 0x88, 0x30, 0xC0,
0xDE, 0x2F, 0x7B, 0xD6, 0x57, 0x6E, 0xAA, 0x97, 0x49, 0xF6, 0xCD, 0xA9, 0xA5, 0xFB, 0x64, 0xC7,
0x6C, 0x46, 0x26, 0xC8, 0xFE, 0x60, 0x1D, 0x4D, 0x3C, 0xD5, 0xD1, 0xD4, 0x9F, 0x5C, 0x47, 0x93,
0x6A, 0x98, 0xDC, 0xAC, 0xD6, 0xD1, 0xAC, 0x1F, 0x63, 0x1D, 0xCD, 0x56, 0xC4, 0x40, 0xF9, 0xD6,
0x16, 0xEB, 0x68, 0x8A, 0x5E, 0xEB, 0x68, 0x76, 0x58, 0x47, 0xB3, 0x76, 0xFA, 0x80, 0xDF, 0x70,
0xF0, 0x2F, 0x45, 0xAB, 0x1A, 0x57, 0x90, 0x8B, 0xD9, 0x6B, 0xF4, 0xE1, 0x28, 0x88, 0xA4, 0x8F,
0x5A, 0xC3, 0xA7, 0x43, 0xE9, 0xF1, 0x84, 0x8D, 0x18, 0x5E, 0x97, 0x83, 0xE8, 0x0A, 0x74, 0x0B,
0x82, 0x7F, 0x94, 0xEB, 0x06, 0x7A, 0x2B, 0x79, 0x1C, 0x66, 0xE4, 0x26, 0x0D, 0xCA, 0x62, 0x29,
0x6F, 0xCB, 0x43, 0x7F, 0x6E, 0x0D, 0x57, 0xAC, 0x34, 0x18, 0xF8, 0x37, 0xD8, 0x0A, 0x32, 0x30,
0x61, 0x54, 0xF1, 0xD2, 0xDD, 0x48, 0xA8, 0xF5, 0x3F, 0x8B, 0xDC, 0x6B, 0x59, 0xF0, 0xC0, 0x1A,
0x8F, 0x14, 0x55, 0xB2, 0x88, 0xCA, 0xB9, 0xA8, 0x88, 0x42, 0x15, 0xFC, 0xA6, 0x96, 0xB5, 0x88,
0x90, 0x08, 0xAC, 0x16, 0xA4, 0xF9, 0x56, 0xAE, 0xFD, 0x7A, 0x85, 0x16, 0x10, 0xEF, 0xA7, 0xE2,
0x56, 0x50, 0xD7, 0x32, 0xE6, 0x11, 0xC8, 0xA3, 0x02, 0xED, 0xAC, 0xBE, 0xFD, 0x92, 0x93, 0xCF,
0xBA, 0x64, 0xDF, 0xF2, 0xC5, 0x78, 0xA8, 0x79, 0xF9, 0x70, 0x4F, 0x45, 0x77, 0xCB, 0x92, 0xE7,
0xB7, 0x59, 0x72, 0x8D, 0xD0, 0xDB, 0x72, 0xC9, 0xE8, 0x82, 0x15, 0xC4, 0x8F, 0x36, 0xC3, 0x18,
0x47, 0x2C, 0xBC, 0x97, 0xAA, 0x17, 0x2F, 0x20, 0x3F, 0x18, 0xE9, 0x99, 0x54, 0x07, 0x23, 0x3A,
0xCB, 0x25, 0xC3, 0xA9, 0x9A, 0x96, 0xFC, 0x07, 0x6B, 0xDB, 0xE9, 0x3E, 0x6B, 0xDB, 0x4E, 0xA3,
0x6D, 0x3B, 0x9F, 0x74, 0x66, 0x82, 0x05, 0x4D, 0xEA, 0x58, 0x31, 0xF9, 0x77, 0x74, 0xBD, 0xD3,
0xCE, 0xA7, 0xAD, 0x77, 0xBA, 0x1F, 0xF5, 0x4E, 0xCF, 0x99, 0x75, 0x59, 0xE1, 0x9F, 0x0B, 0x68,
0x6B, 0x50, 0xEF, 0xF4, 0xAA, 0x4C, 0xF1, 0x42, 0x33, 0x9D, 0xD0, 0x70, 0xA8, 0xD8, 0x8E, 0x9B,
0x1B, 0xA5, 0xD0, 0xB6, 0xAF, 0xEB, 0x81, 0x2C, 0x8D, 0xD0, 0x7F, 0x38, 0xFB, 0x4B, 0x34, 0x4A,
0xAC, 0xF9, 0x35, 0x8E, 0xBA, 0x09, 0xDD, 0x36, 0x24, 0xF6, 0xEE, 0x7D, 0x60, 0xD6, 0x3A, 0x71,
0x2A, 0x5F, 0x3B, 0x05, 0x61, 0xB3, 0xAC, 0x4B, 0xCC, 0x43, 0x17, 0xCC, 0xD4, 0x45, 0x64, 0xEB,
0xC9, 0xC1, 0xBE, 0xEE, 0xE7, 0xBA, 0x26, 0x7B, 0xE5, 0x95, 0xF3, 0x8C, 0xF3, 0x62, 0x66, 0xCE,
0xD4, 0xE4, 0xB2, 0x14, 0x47, 0xAB, 0xF0, 0x97, 0x64, 0xF5, 0xEA, 0xD5, 0xD2, 0xA0, 0x29, 0x12,
0x82, 0xF2, 0x04, 0x67, 0x63, 0xC3, 0x30, 0x28, 0x6C, 0xB2, 0xB1, 0x3D, 0x22, 0xC1, 0x70, 0xE7,
0x58, 0xFA, 0x54, 0x40, 0x6B, 0xEE, 0x50, 0x40, 0xFB, 0xE3, 0x03, 0x05, 0xB4, 0x17, 0x44, 0x36,
0x7E, 0x3B, 0xE5, 0x0D, 0xD5, 0x8D, 0xEE, 0xA7, 0x09, 0x66, 0xFA, 0x8F, 0x2F, 0xB8, 0x03, 0xEA,
0xBF, 0x7E, 0xCA, 0x0E, 0xA8, 0x73, 0x93, 0x5B, 0x1C, 0x8F, 0xFB, 0x42, 0x6D, 0x43, 0xB6, 0xF9,
0x92, 0x29, 0x19, 0x14, 0x73, 0x39, 0xD8, 0x9F, 0x1A, 0x94, 0x40, 0x45, 0x8F, 0xDD, 0xB1, 0x76,
0x2D, 0x3B, 0xBA, 0x76, 0xAD, 0x7E, 0x42, 0x00, 0x61, 0x04, 0xAF, 0x1C, 0x2E, 0x05, 0x9C, 0x8D,
0x3D, 0x14, 0xE2, 0x9C, 0x9E, 0x02, 0x3F, 0x9B, 0xD3, 0x3F, 0x7A, 0x6B, 0x94, 0xA1, 0xBB, 0x3F,
0x1D, 0x59, 0x8E, 0x33, 0xFD, 0xDC, 0x80, 0x2C, 0x21, 0xC8, 0x72, 0xA9, 0x16, 0xB2, 0x14, 0xFF,
0xEA, 0x24, 0x3B, 0x6E, 0x18, 0x93, 0x47, 0x70, 0xC4, 0x2F, 0x41, 0x96, 0xE7, 0x40, 0x96, 0x80,
0xDD, 0x0C, 0x0D, 0x1D, 0xBF, 0xDB, 0x91, 0xC5, 0x36, 0x86, 0x2D, 0x6B, 0xF5, 0xBE, 0x7E, 0x68,
0xBD, 0x81, 0xAC, 0xB7, 0x92, 0xF5, 0x7E, 0x3B, 0x29, 0xBD, 0xBD, 0x0F, 0x3B, 0xED, 0x46, 0xCD,
0xDE, 0x97, 0x07, 0xFD, 0x18, 0xEC, 0xFC, 0xA8, 0xFC, 0xE3, 0xD5, 0x83, 0xB5, 0x7A, 0x0B, 0x8D,
0x74, 0x33, 0x6F, 0xA2, 0x1D, 0xC3, 0xEC, 0x7A, 0x3C, 0x1C, 0x15, 0xBE, 0x25, 0x5E, 0x8C, 0xEE,
0x0D, 0xC6, 0x1B, 0x33, 0x80, 0xFA, 0xA8, 0x16, 0xD4, 0x8C, 0x9A, 0x7D, 0x51, 0xAC, 0x9A, 0x66,
0xD6, 0x43, 0x81, 0x98, 0x13, 0x64, 0xE2, 0x99, 0x35, 0xBC, 0xCC, 0x3C, 0x8B, 0x08, 0x89, 0x53,
0x21, 0x5C, 0xD8, 0x7B, 0xE3, 0x1E, 0x4F, 0x3A, 0x3A, 0xBA, 0xAE, 0x41, 0x51, 0xE6, 0xEE, 0x94,
0xFB, 0xD7, 0xBA, 0x06, 0x01, 0x2A, 0xAD, 0x68, 0xBF, 0x58, 0xEC, 0xBA, 0xF7, 0xB1, 0xE0, 0xC7,
0xF5, 0x4D, 0xAF, 0xF1, 0x3E, 0xC4, 0x06, 0x8B, 0xD1, 0x0A, 0x50, 0x3B, 0x31, 0x22, 0x63, 0x5B,
0x33, 0xBA, 0x19, 0xE5, 0x30, 0xA6, 0x87, 0xEB, 0x1A, 0x7C, 0xD4, 0x35, 0x14, 0xCB, 0xBA, 0x86,
0x13, 0x54, 0x83, 0xCA, 0x6C, 0xC9, 0x1E, 0x8C, 0x5A, 0x96, 0x7B, 0x5D, 0x80, 0x83, 0xA2, 0x0A,
0xF4, 0x17, 0x08, 0x26, 0xAD, 0x64, 0x23, 0xFC, 0x8F, 0x10, 0x9F, 0x70, 0xFA, 0x19, 0xD6, 0x3F,
0x0F, 0x6F, 0xDE, 0xD8, 0xD8, 0xC8, 0x52, 0xED, 0x05, 0x3B, 0x31, 0x8E, 0xD6, 0x85, 0x58, 0x5A,
0x60, 0xDB, 0x0F, 0xA6, 0x1E, 0xA9, 0x9E, 0x4D, 0xA3, 0x09, 0x4D, 0x84, 0xBA, 0x5C, 0x1A, 0x12,
0x1C, 0xB2, 0xD6, 0xA2, 0x34, 0xDC, 0x8C, 0xE8, 0xEF, 0xC1, 0x56, 0x61, 0x8F, 0xB3, 0x1B, 0xC6,
0x36, 0x6C, 0xC8, 0x9C, 0x72, 0x1C, 0x88, 0x07, 0x62, 0xF4, 0x2C, 0xE8, 0xFB, 0x93, 0x28, 0x0F,
0x2F, 0xCA, 0xF6, 0xF6, 0x11, 0x4A, 0x5D, 0xB7, 0xE2, 0x47, 0x16, 0x66, 0x18, 0x8A, 0x5C, 0x8D,
0xDB, 0xD9, 0x7A, 0xDA, 0xA6, 0xDE, 0x9C, 0xC0, 0x04, 0x76, 0x98, 0x0C, 0xD6, 0x4D, 0x0D, 0x06,
0xB3, 0xBF, 0xD6, 0x88, 0x6B, 0x8D, 0xB9, 0xD6, 0xA4, 0x14, 0xDF, 0x20, 0x95, 0x19, 0x8E, 0x28,
0x87, 0x35, 0xD1, 0x45, 0x14, 0xB7, 0xCB, 0x5A, 0x03, 0xB4, 0x2F, 0x6D, 0xF1, 0x34, 0xB2, 0x08,
0xF6, 0x25, 0x7E, 0x71, 0xA0, 0x8F, 0x99, 0xA8, 0xA6, 0x2B, 0xE8, 0x93, 0xE9, 0x5A, 0xDD, 0x23,
0xD6, 0xAA, 0x44, 0x40, 0x48, 0x9C, 0xA8, 0x16, 0xAE, 0x6B, 0x43, 0xB7, 0x6C, 0x4C, 0x23, 0x26,
0xE8, 0xC0, 0x6E, 0x3E, 0xE7, 0x6D, 0x4E, 0x0E, 0xAB, 0xF7, 0xAF, 0xA8, 0x4B, 0xAB, 0x2D, 0x9B,
0x15, 0x5D, 0x79, 0x9F, 0x39, 0x9A, 0x3A, 0xEE, 0x0A, 0x75, 0x16, 0xA1, 0x50, 0xA7, 0xDE, 0x8A,
0x1E, 0x19, 0xCC, 0x62, 0x28, 0x2A, 0x9E, 0x5D, 0xE7, 0x90, 0xB3, 0x2D, 0x75, 0x1C, 0xB0, 0xD8,
0x69, 0x11, 0x5D, 0x21, 0x3E, 0x55, 0x6E, 0x8C, 0x79, 0x9C, 0x9C, 0xDC, 0x74, 0xD5, 0x86, 0xED,
0xD4, 0xB2, 0x17, 0x4E, 0xC9, 0xE2, 0xDF, 0xDF, 0xD1, 0x77, 0x07, 0x7F, 0x8E, 0x4F, 0x21, 0x0A,
0x5D, 0xAC, 0x48, 0xE7, 0x83, 0x93, 0xDF, 0x68, 0xD1, 0x64, 0xF6, 0xC8, 0x74, 0x56, 0xD6, 0x68,
0x5D, 0x48, 0x7F, 0x30, 0x77, 0xFE, 0xF9, 0x63, 0x3D, 0x8A, 0x65, 0xF5, 0xC7, 0x9E, 0x31, 0xF6,
0x2D, 0x0D, 0xDB, 0x7B, 0xD6, 0x6E, 0x5C, 0x50, 0x86, 0x54, 0xC6, 0xCA, 0x94, 0x60, 0x8E, 0x4D,
0xDD, 0x1D, 0x2C, 0xD8, 0xB9, 0xBB, 0x5A, 0x7F, 0xEE, 0x14, 0x66, 0xED, 0x57, 0xC2, 0xF0, 0xB7,
0x09, 0xB3, 0x6A, 0x64, 0x99, 0x27, 0x42, 0xA1, 0x07, 0x93, 0x79, 0x6F, 0x67, 0xD4, 0xB6, 0x4A,
0x96, 0x6C, 0x78, 0xDA, 0x6E, 0x9D, 0x4D, 0xAD, 0xD6, 0x7A, 0xCE, 0x82, 0xED, 0xB4, 0x56, 0x17,
0xB1, 0x40, 0x1D, 0x24, 0x42, 0x17, 0x01, 0x4E, 0x87, 0x2A, 0x0F, 0x44, 0xDE, 0x77, 0x97, 0xA1,
0x8C, 0x13, 0x0A, 0x18, 0x34, 0x0E, 0xA0, 0x41, 0xB8, 0x88, 0x27, 0x4F, 0x74, 0x62, 0x5A, 0x47,
0xF8, 0x57, 0xF9, 0xAC, 0xF1, 0xAB, 0xD3, 0xB2, 0xE0, 0x87, 0x04, 0x53, 0x47, 0x88, 0xB8, 0xA7,
0x26, 0x7C, 0x49, 0xF4, 0xCC, 0xD5, 0x21, 0x65, 0xBF, 0x61, 0xF1, 0x0A, 0xCB, 0x6E, 0xEB, 0x30,
0x17, 0x8F, 0x5E, 0xF0, 0x03, 0xFA, 0xEC, 0x4A, 0xE8, 0x3C, 0xA6, 0xB2, 0x73, 0x3D, 0x2F, 0x29,
0xDF, 0xF7, 0x2A, 0xC4, 0xDA, 0xFD, 0x09, 0xA2, 0x05, 0xBF, 0xEA, 0x44, 0x89, 0xB4, 0xB6, 0x16,
0xE7, 0x2E, 0x3C, 0xF4, 0xA4, 0x9A, 0x0E, 0x3D, 0x99, 0x8C, 0xF9, 0x04, 0xB3, 0x15, 0x73, 0xEB,
0x71, 0x8D, 0x56, 0xCD, 0x75, 0xCB, 0x5C, 0xF2, 0x54, 0xBA, 0x48, 0xF7, 0x66, 0xC0, 0x29, 0x3F,
0x88, 0xD0, 0x9A, 0xD3, 0xB8, 0xF7, 0x14, 0x91, 0x67, 0x8A, 0x4E, 0xC8, 0x52, 0xB0, 0x25, 0x7B,
0x91, 0x0C, 0x7B, 0x1C, 0x37, 0x35, 0x94, 0xB6, 0x65, 0xB4, 0x19, 0x49, 0x16, 0x76, 0x11, 0xC5,
0x8A, 0x1F, 0x35, 0xA2, 0xAE, 0x87, 0x1E, 0xDD, 0x48, 0x03, 0x40, 0xCA, 0x7B, 0x66, 0x32, 0xA8,
0x2C, 0x71, 0x71, 0x97, 0xC8, 0x5B, 0x41, 0xE9, 0xC3, 0x77, 0x75, 0xC4, 0x17, 0x67, 0xA8, 0xA1,
0x75, 0x94, 0xA7, 0x26, 0xA4, 0x13, 0xC6, 0x4E, 0x0E, 0x60, 0x6C, 0xF5, 0x07, 0x1F, 0x56, 0xA7,
0x58, 0x13, 0x50, 0xC2, 0x24, 0x4A, 0x76, 0xA2, 0x28, 0x44, 0x2E, 0xDF, 0x13, 0x95, 0x82, 0xB0,
0x65, 0x27, 0xC4, 0x9F, 0x31, 0xDE, 0x8B, 0xA8, 0x24, 0x40, 0x02, 0xC2, 0xBA, 0x88, 0xF6, 0xB2,
0x1F, 0x64, 0xFF, 0x4D, 0x83, 0x8A, 0xAA, 0x2D, 0xB9, 0x32, 0x4A, 0xD1, 0x0C, 0xCA, 0x37, 0xF3,
0xFD, 0x52, 0x55, 0x9B, 0xBF, 0x17, 0x92, 0x7A, 0x42, 0x51, 0x6F, 0xAF, 0x51, 0x3C, 0x13, 0xDA,
0x76, 0xDD, 0xBB, 0x3E, 0x82, 0x6E, 0x67, 0x68, 0x7D, 0x17, 0x5B, 0x4C, 0x5D, 0x1C, 0x88, 0xA7,
0x5B, 0x4F, 0x26, 0xB2, 0xA7, 0x35, 0xEA, 0x5F, 0x5E, 0x6A, 0x3E, 0x4F, 0xB7, 0x99, 0x8D, 0xA0,
0x5F, 0xB2, 0xDD, 0x66, 0x08, 0xA8, 0x88, 0x57, 0xD8, 0x19, 0xEF, 0x6A, 0x6E, 0x4D, 0xBE, 0x7B,
0xB0, 0xDE, 0x07, 0x6F, 0x7F, 0xE3, 0xCB, 0xF2, 0x4C, 0x52, 0xC6, 0x11, 0x78, 0x0C, 0x50, 0x77,
0xB0, 0xC0, 0xA4, 0x5A, 0x86, 0x7A, 0x34, 0x5D, 0xFC, 0x63, 0xD2, 0x86, 0x09, 0x5A, 0xE1, 0x98,
0xB3, 0x83, 0x10, 0xE8, 0xAC, 0xA0, 0x75, 0x1B, 0x63, 0xD8, 0x65, 0x78, 0x09, 0xEB, 0x47, 0x05,
0xAE, 0xD7, 0x8A, 0xB6, 0x44, 0x13, 0x74, 0x38, 0x0A, 0x1B, 0x7D, 0xED, 0x96, 0x8A, 0x67, 0xF0,
0x16, 0x90, 0xDA, 0xA8, 0x85, 0x64, 0x0C, 0x35, 0xF8, 0xA5, 0xF5, 0x83, 0x7E, 0xA6, 0xFE, 0x8F,
0x62, 0x86, 0x7F, 0x5C, 0x27, 0x2B, 0xA5, 0x87, 0x4E, 0x56, 0xB2, 0x09, 0x9A, 0xD0, 0xBA, 0xC8,
0x51, 0x79, 0xB0, 0xA2, 0x60, 0x66, 0x0E, 0xE4, 0xE1, 0xAD, 0x1E, 0x65, 0x31, 0xAA, 0xB6, 0x57,
0x86, 0xCC, 0x56, 0x9B, 0xA7, 0x17, 0x2C, 0x23, 0x4C, 0x1A, 0x57, 0x56, 0xAA, 0xFD, 0x95, 0xE6,
0xDF, 0xB4, 0xC1, 0x19, 0x99, 0xFE, 0xE3, 0xE9, 0xC7, 0xE8, 0xE3, 0xEC, 0x1E, 0x5A, 0x37, 0xB6,
0xC1, 0xD2, 0xA9, 0x77, 0x5E, 0x15, 0x54, 0xF3, 0x50, 0xF0, 0xB7, 0x42, 0x51, 0xAF, 0x9C, 0x97,
0x3B, 0x53, 0x87, 0x65, 0x90, 0x67, 0xA6, 0x3F, 0xFD, 0x23, 0x1C, 0xF0, 0xF2, 0xE6, 0x9B, 0x83,
0xEC, 0xED, 0xA8, 0x2D, 0x96, 0xE3, 0x4B, 0xF5, 0x54, 0x54, 0x38, 0x35, 0xF5, 0xD8, 0x0E, 0x1F,
0xCD, 0x2C, 0x85, 0x66, 0xDF, 0x31, 0x85, 0x32, 0xC5, 0x71, 0x32, 0xC8, 0xCF, 0xC1, 0x5D, 0x9A,
0x6B, 0xF8, 0xC0, 0xC6, 0x16, 0xEC, 0x11, 0x47, 0x94, 0x2B, 0x3D, 0xFB, 0x88, 0x9F, 0xCC, 0xEC,
0x45, 0xD5, 0x32, 0xCE, 0xE0, 0xEB, 0x09, 0x47, 0x3C, 0x3C, 0xA1, 0x59, 0xC2, 0x49, 0x17, 0x85,
0x25, 0xE3, 0xD2, 0xBA, 0x68, 0x35, 0xC5, 0x71, 0x62, 0xC6, 0x30, 0xF5, 0xE1, 0xA9, 0xD6, 0xE4,
0x92, 0x85, 0x4D, 0xA2, 0x50, 0xD9, 0xDF, 0xB6, 0x80, 0x31, 0x58, 0xA1, 0x79, 0xA8, 0xD1, 0x27,
0x3D, 0x22, 0xF4, 0x3D, 0xDC, 0xE1, 0x7E, 0xA0, 0x56, 0x82, 0x8F, 0xEA, 0xB8, 0x23, 0x9B, 0x54,
0xB3, 0xEB, 0x8E, 0xDA, 0xD8, 0x8C, 0x4F, 0xC5, 0xCC, 0x02, 0xDA, 0x4B, 0x0F, 0xD5, 0x60, 0x84,
0x81, 0x3C, 0xA8, 0x1C, 0x7B, 0xBB, 0xD8, 0x78, 0xAA, 0xA7, 0xB2, 0x4C, 0xF8, 0xBF, 0xAC, 0x4F,
0xBB, 0xFC, 0x59, 0xBA, 0xA8, 0x2D, 0x40, 0x15, 0x20, 0x7D, 0x31, 0x9E, 0x45, 0x04, 0x7A, 0x5C,
0x9E, 0x99, 0x7E, 0xCC, 0x38, 0xA9, 0x83, 0x73, 0xBB, 0x4F, 0x6B, 0x3B, 0xD3, 0xC0, 0xFA, 0xC9,
0x85, 0x2D, 0xB9, 0x7E, 0xE0, 0x40, 0xC5, 0x75, 0xBD, 0x43, 0x0F, 0xDF, 0xDF, 0x13, 0x9B, 0xB7,
0x70, 0x06, 0x86, 0x46, 0x02, 0x9C, 0x1C, 0x04, 0x3D, 0x20, 0xCF, 0xEB, 0x98, 0x98, 0x4F, 0xF4,
0x3C, 0x80, 0x8C, 0xB5, 0x6B, 0x02, 0x6D, 0x70, 0xBA, 0xE2, 0x5F, 0xD6, 0xFF, 0xB1, 0x89, 0xD7,
0x1E, 0xCA, 0x3E, 0xBC, 0x38, 0x5E, 0x44, 0x7F, 0x71, 0x70, 0x59, 0x9B, 0x66, 0x76, 0x68, 0x20,
0xB3, 0x17, 0xE8, 0x31, 0x55, 0x23, 0x85, 0x7D, 0xB5, 0xFB, 0x62, 0xF5, 0xC7, 0x2D, 0xF7, 0x83,
0xBC, 0x9E, 0x3D, 0xAC, 0x97, 0x04, 0xBF, 0x4E, 0x9E, 0xBE, 0x40, 0xF2, 0x9D, 0xD6, 0x0A, 0x54,
0x6A, 0x9B, 0x48, 0xCF, 0x73, 0xCC, 0x67, 0x54, 0x1C, 0x3C, 0x7D, 0xAB, 0xB2, 0xF0, 0xA6, 0xA7,
0x41, 0x06, 0xA9, 0x0B, 0x22, 0xB9, 0x4C, 0x4F, 0x4F, 0xD9, 0xD8, 0x28, 0xA8, 0x01, 0x54, 0xC1,
0xC1, 0xD7, 0xE6, 0x81, 0x09, 0xB8, 0x29, 0x46, 0x9C, 0x5A, 0x94, 0x61, 0xC0, 0xB2, 0x14, 0xD1,
0x8E, 0xF4, 0x2D, 0xDC, 0x5A, 0xAE, 0x46, 0x47, 0x7D, 0xD8, 0x88, 0xFE, 0xDA, 0xF1, 0xEA, 0xA3,
0xE6, 0xFD, 0xC5, 0x9F, 0x79, 0xC0, 0x50, 0x58, 0x6A, 0x13, 0x92, 0x2C, 0xA5, 0x1D, 0xDF, 0x61,
0x66, 0x1E, 0x05, 0xF1, 0x5A, 0xF9, 0xD0, 0xAA, 0x5B, 0xB3, 0xD3, 0x1B, 0x70, 0x2B, 0xBB, 0xFC,
0x49, 0x19, 0x6B, 0x60, 0x92, 0xA9, 0xB3, 0xC4, 0xA2, 0xCE, 0x28, 0x1D, 0x36, 0x9E, 0x20, 0xB5,
0x92, 0x51, 0x8F, 0x4D, 0x88, 0x34, 0xFC, 0x5B, 0xEA, 0x85, 0xFE, 0xA8, 0x9E, 0x94, 0x67, 0x23,
0x70, 0xDE, 0x8D, 0x8D, 0xC2, 0x96, 0xB4, 0xCA, 0x88, 0xF7, 0xDB, 0xDA, 0x89, 0xD0, 0x68, 0xD1,
0x78, 0x90, 0xAB, 0x75, 0xF0, 0xA9, 0xA0, 0xB2, 0x8D, 0x67, 0xC5, 0x00, 0xE2, 0xE8, 0x45, 0x1C,
0x4C, 0xB3, 0x70, 0x15, 0x41, 0x3A, 0x05, 0x7C, 0xD5, 0x70, 0x6C, 0x90, 0xE8, 0xB9, 0x3A, 0xEE,
0x0D, 0x48, 0x63, 0xE5, 0x33, 0x9C, 0xAD, 0x6E, 0x66, 0x8C, 0x71, 0xEC, 0xC0, 0x82, 0x39, 0x1D,
0x72, 0x02, 0xBE, 0x28, 0x4A, 0xBF, 0xC9, 0xD0, 0x4C, 0x76, 0x93, 0xCD, 0x05, 0x23, 0xCE, 0x7D,
0x8F, 0x79, 0xAC, 0x4D, 0x46, 0x87, 0xF1, 0x66, 0x6D, 0xBE, 0x5B, 0x78, 0xEF, 0x36, 0x4E, 0x9B,
0x6D, 0xA3, 0x21, 0x28, 0x19, 0x1C, 0x54, 0x0B, 0xD7, 0xD3, 0xB1, 0x03, 0x0E, 0x9D, 0x97, 0xEF,
0xD9, 0x1A, 0x64, 0x99, 0x6E, 0x4B, 0xB7, 0x69, 0x3A, 0x8C, 0xEA, 0x48, 0xD9, 0xBD, 0x1B, 0x0E,
0xF9, 0x9C, 0xA4, 0x14, 0x15, 0xD4, 0xEB, 0xB2, 0xA7, 0x89, 0x08, 0x6A, 0xF2, 0xFD, 0x8E, 0x1A,
0x1D, 0x54, 0x60, 0x63, 0xEF, 0x17, 0xDB, 0x75, 0x26, 0x5B, 0xD3, 0xDA, 0xA9, 0x17, 0x57, 0x46,
0xE4, 0x0D, 0xC3, 0xC6, 0xD5, 0xB6, 0x29, 0x6B, 0x5D, 0x16, 0xCB, 0x97, 0xF9, 0xFE, 0x0B, 0x8C,
0xFE, 0x02, 0xE5, 0x88, 0x0B, 0x59, 0xC4, 0x53, 0x68, 0x3A, 0x71, 0x7B, 0x1E, 0x0C, 0x84, 0x03,
0x7E, 0x1A, 0x26, 0x1F, 0x66, 0xF6, 0x44, 0x3C, 0x9C, 0xDB, 0xEF, 0x0B, 0x6C, 0xC1, 0xA1, 0x25,
0x88, 0xF8, 0xDB, 0xD3, 0x4A, 0x4E, 0x0C, 0x54, 0xBA, 0xD1, 0x15, 0x74, 0x00, 0x2C, 0xBC, 0x74,
0x0A, 0x0C, 0xA3, 0xCD, 0x5F, 0xA6, 0xB7, 0xD7, 0x7A, 0x0B, 0x24, 0x27, 0x13, 0x4F, 0x5C, 0x88,
0x84, 0x2E, 0xCC, 0x42, 0x70, 0x62, 0x1D, 0xEE, 0x0D, 0x4C, 0xE6, 0xD2, 0x2D, 0x22, 0xE6, 0xE4,
0x21, 0xF7, 0x7C, 0x71, 0x9B, 0xF0, 0x68, 0xA5, 0xFC, 0x65, 0xAD, 0x31, 0x12, 0xA4, 0x85, 0xAE,
0xC1, 0x42, 0x1C, 0xC4, 0x35, 0xB7, 0xB9, 0x35, 0x12, 0xCD, 0x18, 0x75, 0x89, 0xC3, 0x3C, 0xBC,
0xDA, 0x6B, 0x95, 0x08, 0x8E, 0x1E, 0x03, 0x0E, 0xBF, 0x45, 0xA8, 0x60, 0xC6, 0x47, 0x1B, 0xBF,
0x05, 0x6C, 0x0E, 0xEA, 0x84, 0x10, 0x1A, 0xC7, 0x74, 0x88, 0x3A, 0xBE, 0xDA, 0x91, 0x0E, 0x53,
0xB4, 0x02, 0x58, 0x5A, 0x71, 0xF9, 0xF3, 0xF6, 0x9D, 0xE2, 0x11, 0x8B, 0x3D, 0x8F, 0xEA, 0x59,
0xFC, 0xFF, 0x2D, 0xB2, 0x71, 0x4A, 0x69, 0x10, 0x34, 0x9A, 0xFB, 0x19, 0xF5, 0xC0, 0xF4, 0xA0,
0x5C, 0xFF, 0x44, 0x9A, 0x44, 0x95, 0x23, 0x7A, 0x45, 0xD0, 0x8A, 0x59, 0x33, 0x71, 0xEF, 0xDD,
0xEC, 0x64, 0xD9, 0x57, 0xCB, 0x0B, 0xC2, 0x90, 0x4E, 0x7D, 0xEC, 0x84, 0xF8, 0xE0, 0x25, 0x23,
0xDC, 0x17, 0x3B, 0xC2, 0x95, 0xCD, 0xF1, 0x51, 0x56, 0xA1, 0xFD, 0xEF, 0x86, 0xDB, 0x51, 0x9C,
0xD1, 0x38, 0xEF, 0xFB, 0x1F, 0x10, 0xD2, 0xF4, 0xEB, 0x04, 0xE3, 0x91, 0xD7, 0x6B, 0xBB, 0x4F,
0xC6, 0x8C, 0xC1, 0x05, 0x9C, 0x1F, 0xFB, 0x23, 0x61, 0x96, 0x3E, 0xA8, 0x4E, 0x05, 0xE7, 0xCB,
0x30, 0xCD, 0xB6, 0x4B, 0xB1, 0xBA, 0x8D, 0x37, 0xD6, 0x42, 0xFC, 0x6F, 0xD3, 0xE7, 0xF0, 0xC5,
0xF8, 0x80, 0xC9, 0xF9, 0x6D, 0x28, 0xEB, 0x87, 0x1A, 0x0E, 0x6D, 0x40, 0xF2, 0x0F, 0x71, 0x92,
0x6E, 0x0C, 0x96, 0x7E, 0x54, 0x59, 0x7A, 0xEB, 0x08, 0x96, 0x3E, 0xC9, 0xD3, 0xDB, 0x4B, 0x94,
0x51, 0xFA, 0xC2, 0x28, 0x5A, 0x47, 0x09, 0x7D, 0x29, 0x96, 0xE3, 0x9B, 0x68, 0xC9, 0xE4, 0xC1,
0x65, 0xA9, 0x96, 0x52, 0xB2, 0xFF, 0xAD, 0x7C, 0x4E, 0xC0, 0x92, 0xF0, 0x5B, 0x3A, 0x9E, 0x1F,
0x98, 0xB1, 0x09, 0xA0, 0x96, 0x78, 0xE2, 0x77, 0x40, 0x9D, 0x7C, 0x6D, 0xE3, 0x2C, 0xB2, 0x31,
0x32, 0xC5, 0xD3, 0x78, 0x79, 0x10, 0x2F, 0x6E, 0x1A, 0x2E, 0x5B, 0x0F, 0xF4, 0x85, 0x1C, 0x49,
0xCE, 0x52, 0x4D, 0xCA, 0xD4, 0x59, 0xB0, 0x9F, 0x0D, 0xD7, 0xE3, 0xC7, 0x4B, 0x47, 0x3C, 0xB5,
0x46, 0x3C, 0x21, 0x1E, 0x9D, 0x8D, 0x5E, 0xA8, 0x52, 0x3C, 0xC8, 0x80, 0x27, 0x6C, 0x16, 0x50,
0xE2, 0x27, 0x18, 0xEB, 0x11, 0xA0, 0xC0, 0x93, 0xBC, 0xAB, 0xE8, 0xA7, 0x1B, 0x03, 0xA2, 0xBF,
0xB5, 0x87, 0xDA, 0xF0, 0x7B, 0xD5, 0x08, 0x24, 0x93, 0x1F, 0x03, 0x35, 0x4F, 0xDA, 0xB2, 0x68,
0x17, 0x77, 0xEA, 0x31, 0x88, 0x88, 0x0A, 0x29, 0x02, 0xA4, 0x21, 0x98, 0x4F, 0xED, 0x20, 0x44,
0x2A, 0x89, 0xF9, 0x33, 0x99, 0x92, 0x90, 0x2E, 0xC4, 0x57, 0x89, 0x0C, 0xAA, 0x34, 0x62, 0x04,
0x7B, 0xB8, 0x70, 0xF9, 0xD9, 0xA0, 0x75, 0x16, 0x32, 0xF5, 0xB6, 0xB7, 0xFD, 0x93, 0x78, 0x94,
0x16, 0x64, 0xA1, 0xAD, 0x29, 0x03, 0x37, 0x34, 0x68, 0x97, 0xC7, 0xC7, 0xCB, 0x43, 0xB1, 0xE7,
0x28, 0x58, 0x80, 0x62, 0xEA, 0xB5, 0xE4, 0x35, 0xD3, 0x44, 0x70, 0x9C, 0x3B, 0xD7, 0x78, 0x0D,
0x2A, 0x35, 0x50, 0x18, 0xD5, 0x24, 0x29, 0x67, 0x47, 0xFC, 0xAC, 0xB1, 0x9E, 0xF8, 0x85, 0x86,
0xE3, 0xFC, 0x82, 0xC1, 0x1A, 0xEF, 0x63, 0x7E, 0xDD, 0x82, 0x33, 0x34, 0x0A, 0x9F, 0xF5, 0x28,
0xF6, 0x58, 0xCF, 0x19, 0x45, 0x60, 0x7E, 0x6E, 0xA6, 0x53, 0x04, 0xE1, 0x9B, 0x47, 0xA8, 0x9A,
0x87, 0xB7, 0x6E, 0x67, 0x58, 0x7F, 0x96, 0xFC, 0xDC, 0x17, 0x79, 0xC0, 0x0D, 0x70, 0x91, 0xF6,
0xE4, 0x58, 0x0D, 0xA9, 0xDF, 0x28, 0x84, 0xF3, 0xE7, 0xD3, 0x3F, 0x0E, 0xBA, 0xD2, 0xFC, 0x11,
0x58, 0x03, 0xA4, 0x3A, 0x6D, 0x70, 0x94, 0x31, 0xFC, 0x7D, 0x9D, 0x63, 0x44, 0xFB, 0xA3, 0x5F,
0xD5, 0x84, 0x6F, 0x9E, 0x01, 0xF4, 0xDA, 0xBA, 0x3D, 0xC3, 0xDE, 0x35, 0x27, 0xE9, 0x02, 0xD3,
0xBB, 0xBD, 0xC8, 0xE1, 0xE8, 0xE3, 0x1B, 0x20, 0x8E, 0x50, 0xAB, 0x00, 0x8B, 0xF8, 0x2E, 0x0A,
0x76, 0x03, 0x36, 0xAC, 0x75, 0x98, 0x03, 0xBB, 0xBD, 0x80, 0x9A, 0x3A, 0xC4, 0x42, 0x70, 0x56,
0x0F, 0x32, 0x73, 0x8F, 0xD5, 0x2C, 0x1F, 0xF0, 0x6B, 0x1C, 0xD6, 0x83, 0xF3, 0x02, 0xBD, 0x56,
0xF4, 0xCB, 0xC8, 0x6E, 0xC0, 0x6E, 0xFA, 0x2E, 0x84, 0x3F, 0xCA, 0x26, 0xC7, 0x2F, 0x60, 0xF7,
0xBF, 0x1C, 0x22, 0x40, 0x62, 0x5C, 0x20, 0x47, 0x08, 0x4C, 0xA4, 0xE9, 0x8D, 0x43, 0xC8, 0xF1,
0x8B, 0x24, 0x93, 0xD3, 0xA2, 0x70, 0xAC, 0x17, 0xEB, 0xE0, 0x77, 0x42, 0x24, 0xAF, 0xBE, 0x0D,
0x5C, 0xFD, 0xB2, 0x0E, 0x43, 0x14, 0xFE, 0x07, 0x35, 0xC2, 0x26, 0xC9, 0x8F, 0x20, 0xC6, 0x17,
0x70, 0xDC, 0x88, 0xD1, 0x4B, 0x7C, 0xFA, 0xB3, 0xC7, 0x37, 0x9E, 0xBC, 0xC3, 0xB7, 0xD3, 0xDC,
0x35, 0x5F, 0xD8, 0x62, 0x1E, 0x80, 0x35, 0x2E, 0xB4, 0x48, 0xAA, 0x39, 0x72, 0xBA, 0x77, 0xC1,
0x99, 0x4F, 0x9D, 0x7E, 0x11, 0x4E, 0xC2, 0x34, 0x34, 0xF0, 0xC2, 0xD1, 0xE1, 0x89, 0xE9, 0x2B,
0x68, 0xEE, 0x9A, 0x23, 0xA2, 0xE9, 0x9B, 0x40, 0xFA, 0xCC, 0x80, 0xA2, 0xAA, 0x0B, 0xB7, 0x99,
0xF5, 0xDD, 0x70, 0xAA, 0xD6, 0xFD, 0x7A, 0xF2, 0x2C, 0x46, 0xCC, 0x52, 0x1C, 0xB9, 0xB0, 0xC0,
0x77, 0x3A, 0x14, 0x15, 0x7A, 0x86, 0x3B, 0x04, 0xFA, 0x66, 0x74, 0xB2, 0x53, 0x93, 0x1E, 0xEE,
0x66, 0x2E, 0xC6, 0x9F, 0x20, 0x22, 0xB2, 0x40, 0xC7, 0x72, 0x61, 0x0F, 0x6A, 0xC6, 0x97, 0x2A,
0xA5, 0xDA, 0x89, 0x8F, 0xE3, 0x66, 0x4B, 0xBB, 0x1C, 0xDF, 0x9E, 0x35, 0x04, 0x4C, 0x92, 0xA4,
0x6C, 0x57, 0xD1, 0x8A, 0x0D, 0x76, 0x05, 0xFD, 0x86, 0xB3, 0xFB, 0x90, 0x1A, 0xB7, 0xDD, 0x2F,
0x11, 0xE8, 0x97, 0xA1, 0xD3, 0x1C, 0x0B, 0xF1, 0xDF, 0xE0, 0xE2, 0x48, 0xE7, 0xA2, 0x59, 0x49,
0x42, 0xD8, 0x9F, 0x3F, 0xF3, 0xD8, 0x3D, 0x0E, 0x74, 0x81, 0x53, 0xAA, 0xA3, 0x4B, 0xE8, 0xE5,
0xAB, 0x98, 0x47, 0xC1, 0x79, 0xA0, 0x15, 0x1E, 0x95, 0x1E, 0x3B, 0x70, 0x4B, 0x81, 0x29, 0x93,
0xFE, 0x31, 0xBF, 0xD9, 0x8C, 0x15, 0x77, 0x2A, 0x7C, 0xBD, 0x06, 0x22, 0x23, 0xA3, 0x3D, 0xCC,
0x4E, 0x87, 0x89, 0x70, 0x07, 0xE8, 0x02, 0x7A, 0xE8, 0x17, 0x12, 0xC7, 0xC7, 0xD8, 0x2D, 0x08,
0xDE, 0x82, 0xC8, 0x5D, 0xCF, 0x6D, 0x24, 0x5E, 0xF7, 0x80, 0xDC, 0xC0, 0xAD, 0x77, 0x0F, 0xBC,
0x04, 0xDB, 0x3C, 0xC3, 0xAC, 0xDA, 0xDF, 0x05, 0x41, 0x35, 0xA5, 0x45, 0x70, 0x6A, 0x68, 0x8E,
0x72, 0x6E, 0xC5, 0x5C, 0x8B, 0xCE, 0x2E, 0xC6, 0x5C, 0xFE, 0x97, 0xFB, 0x0A, 0x4C, 0xD6, 0x27,
0x97, 0xCF, 0xD9, 0xF0, 0x53, 0x2D, 0xD3, 0x19, 0xCC, 0x6C, 0xA0, 0xBA, 0x85, 0x55, 0xB9, 0xEC,
0x48, 0x0E, 0x5B, 0xA7, 0xB0, 0x5F, 0x3B, 0xC6, 0xD3, 0x40, 0x8C, 0xF3, 0xDF, 0x1E, 0x3B, 0x54,
0x09, 0xBA, 0xD2, 0xF4, 0xBA, 0x12, 0xEE, 0xF1, 0x5B, 0xFB, 0xBD, 0x5A, 0x50, 0x93, 0xB9, 0xFD,
0xF2, 0xCA, 0x01, 0xDF, 0x44, 0x06, 0x48, 0x76, 0xD4, 0x37, 0x57, 0x9A, 0x2F, 0xFC, 0x9C, 0xB0,
0x3F, 0xF4, 0x57, 0xFF, 0x9C, 0xD3, 0xC3, 0x7A, 0x8C, 0xAB, 0x29, 0xF2, 0x95, 0x8F, 0xD6, 0x97,
0x87, 0x73, 0xF9, 0xE5, 0xB4, 0xA5, 0xE6, 0x2F, 0xCC, 0x67, 0x3B, 0xFC, 0x34, 0x08, 0xEB, 0xE0,
0x22, 0xE2, 0x7B, 0xE3, 0xCF, 0xDC, 0xE1, 0x21, 0xAA, 0x6B, 0x70, 0x49, 0x47, 0x33, 0x30, 0xB7,
0x0F, 0x99, 0x82, 0xC8, 0x0C, 0x01, 0x99, 0x09, 0x86, 0x70, 0x0A, 0xDD, 0x27, 0x38, 0x4D, 0xDC,
0xAE, 0x84, 0x89, 0x6E, 0xFD, 0xFE, 0x02, 0xE0, 0x10, 0x2E, 0xD5, 0x7E, 0x4D, 0xC2, 0x32, 0x9D,
0x30, 0x65, 0x19, 0xB8, 0xEB, 0x33, 0x4B, 0x8A, 0x5B, 0x2E, 0x84, 0x93, 0xA0, 0xA7, 0xC8, 0x74,
0xFA, 0xBD, 0x09, 0x4F, 0x8D, 0xB9, 0x5E, 0x18, 0xB4, 0xF6, 0xC2, 0xC1, 0x8E, 0x18, 0xE7, 0x3A,
0x62, 0x50, 0xEB, 0x88, 0x6E, 0x67, 0x47, 0x5C, 0xD8, 0x0B, 0x33, 0x7B, 0x21, 0xD5, 0xAF, 0xBB,
0xF8, 0x21, 0x3B, 0x45, 0x65, 0x67, 0x35, 0xD4, 0x39, 0x0A, 0x44, 0xD0, 0xF0, 0x09, 0x41, 0xAB,
0xB3, 0xC0, 0xDA, 0x83, 0x06, 0xFA, 0x20, 0x4A, 0x2F, 0xDC, 0x16, 0x78, 0xFD, 0x81, 0x8E, 0x37,
0xFB, 0x72, 0xDA, 0xAC, 0xC9, 0x86, 0xED, 0xB2, 0xE4, 0x96, 0x9D, 0x62, 0xAC, 0x2F, 0x61, 0x7A,
0xEF, 0xDF, 0xD2, 0x4F, 0x5F, 0x62, 0xA3, 0xCF, 0xD2, 0x8B, 0xED, 0x86, 0xB5, 0xFB, 0xBE, 0x00,
0xF9, 0x04, 0x15, 0x76, 0x2F, 0x95, 0x64, 0xE6, 0x9F, 0x21, 0xA7, 0xFA, 0x4F, 0x77, 0x4D, 0x38,
0x4C, 0xDF, 0x7B, 0xF9, 0x65, 0x97, 0x27, 0x27, 0xF9, 0x54, 0x84, 0x02, 0x4D, 0x04, 0xB0, 0x36,
0xF0, 0xCB, 0xFA, 0xC6, 0x76, 0x6A, 0xDC, 0xB2, 0xE9, 0x00, 0x45, 0xE6, 0x1A, 0xBB, 0xA9, 0xC2,
0x95, 0xE6, 0xB9, 0xC8, 0x7E, 0x7F, 0xD7, 0xE5, 0xCF, 0x73, 0x1C, 0xE3, 0x7B, 0xC8, 0x5C, 0xBD,
0x3C, 0x1D, 0xC7, 0xB8, 0xA6, 0xC7, 0x31, 0x0A, 0x65, 0xD0, 0x79, 0x18, 0xA7, 0xFB, 0x5F, 0xFB,
0xA9, 0x49, 0xBE, 0x1D, 0xFB, 0xAB, 0x9F, 0x82, 0xEB, 0xAF, 0xB2, 0x70, 0xB2, 0xB4, 0x47, 0x03,
0x7C, 0x21, 0x34, 0x8D, 0x3A, 0x9B, 0x42, 0xE9, 0xF4, 0xDB, 0x2E, 0x19, 0x99, 0xD1, 0x08, 0x69,
0xD7, 0xFF, 0x8E, 0x25, 0xDF, 0xCB, 0x6F, 0x6A, 0xF8, 0xB4, 0x34, 0x62, 0xC8, 0xF3, 0x95, 0xF1,
0x4A, 0x7A, 0xD4, 0x91, 0x95, 0xF7, 0xAF, 0x2D, 0x8F, 0xAC, 0xAC, 0xA7, 0x23, 0x2B, 0xFF, 0x1F,
0xB5, 0x56, 0xBF, 0x6F, 0x1C, 0x45, 0x14, 0xFE, 0x76, 0x07, 0xB3, 0x92, 0x57, 0xCE, 0x5C, 0x11,
0x24, 0x24, 0xB0, 0x17, 0x21, 0x0A, 0x8A, 0xC4, 0xDB, 0x50, 0xA4, 0xF0, 0x79, 0x27, 0xB8, 0xA4,
0x20, 0x42, 0x98, 0x02, 0xC4, 0x5F, 0x40, 0x81, 0x0B, 0x23, 0x19, 0xC9, 0xF6, 0x2E, 0x55, 0x90,
0x68, 0x52, 0xF0, 0x07, 0x98, 0x82, 0x06, 0x21, 0x91, 0x82, 0xC2, 0x85, 0x9D, 0x1B, 0x68, 0x90,
0xA0, 0x59, 0xA0, 0x02, 0x9A, 0x89, 0x04, 0x0D, 0x14, 0x0C, 0xD2, 0x82, 0x96, 0xB0, 0x77, 0xC3,
0xF7, 0xE6, 0xCE, 0x21, 0xE1, 0x47, 0x01, 0x09, 0x73, 0xB7, 0x7B, 0x73, 0x3B, 0x6F, 0xDE, 0x8F,
0x79, 0xDF, 0xFB, 0xDE, 0xBE, 0xF8, 0xDE, 0x9D, 0x63, 0xF4, 0xC0, 0xC6, 0x86, 0xF6, 0xCA, 0x6A,
0x57, 0xF6, 0x8F, 0xBF, 0x99, 0x36, 0xFF, 0xE6, 0x83, 0x0B, 0x40, 0x0E, 0x28, 0x0B, 0x78, 0x60,
0xAF, 0x0E, 0xD3, 0xD7, 0xB6, 0xF7, 0x76, 0xE0, 0x76, 0x54, 0xB3, 0x73, 0x0E, 0x3B, 0xE7, 0xB1,
0x83, 0x7B, 0xFA, 0xE2, 0x12, 0xE0, 0x44, 0xBD, 0x06, 0x2E, 0x02, 0xD4, 0x7F, 0x71, 0xFB, 0xE5,
0x1C, 0x2B, 0xA9, 0x5D, 0xC1, 0xF5, 0x15, 0x9C, 0x5F, 0x01, 0xEE, 0xE9, 0xFB, 0xD0, 0xF6, 0x73,
0x21, 0x7C, 0x16, 0x02, 0xEE, 0x98, 0x6C, 0x6F, 0x17, 0x21, 0x84, 0x4F, 0x78, 0x79, 0xCE, 0xB7,
0x6B, 0x4E, 0x7E, 0xE4, 0xD5, 0x6F, 0x2F, 0xC6, 0xB3, 0x61, 0x3E, 0xA6, 0x8B, 0xDF, 0xD0, 0xFE,
0xF3, 0xCA, 0x69, 0xFA, 0x4B, 0x97, 0x7F, 0xD3, 0x96, 0xAF, 0x9A, 0xD3, 0xFF, 0x65, 0x6A, 0xC4,
0xCA, 0x84, 0xD7, 0x77, 0x34, 0xFF, 0x3C, 0xCF, 0x0B, 0x77, 0xB9, 0x8C, 0x51, 0x66, 0xC7, 0xCA,
0x17, 0x66, 0xC8, 0x7C, 0x69, 0x83, 0x9A, 0x66, 0x0E, 0xB8, 0x52, 0xB4, 0x75, 0x33, 0x53, 0x9D,
0xB6, 0xA7, 0x5C, 0x42, 0x97, 0x19, 0x3E, 0x2B, 0xDB, 0xC9, 0xE5, 0x29, 0xFF, 0x36, 0x27, 0xCA,
0x95, 0xE8, 0x72, 0x83, 0x25, 0x35, 0xD4, 0x57, 0x7D, 0xAD, 0x7C, 0x95, 0x50, 0xF4, 0x20, 0x71,
0x18, 0x25, 0xA6, 0xC0, 0x89, 0x6A, 0x0B, 0x0C, 0xCA, 0x15, 0xE6, 0x44, 0xC4, 0xEB, 0xB4, 0xCB,
0x7D, 0x65, 0x82, 0xEA, 0x75, 0x57, 0xD9, 0xC3, 0xB4, 0xA3, 0xAE, 0x25, 0xD4, 0x5B, 0x43, 0xD6,
0x97, 0x6D, 0xF5, 0xC6, 0xA0, 0xBA, 0xC2, 0x56, 0x69, 0x9F, 0xB7, 0x15, 0x86, 0xCC, 0xC9, 0x4E,
0x6E, 0xDF, 0x4D, 0x6D, 0x14, 0x9B, 0x6C, 0x0D, 0x39, 0x77, 0xD5, 0x4F, 0x0F, 0x8A, 0xEE, 0x71,
0x73, 0x6E, 0x2B, 0xF4, 0x59, 0x5B, 0xA2, 0x57, 0xBC, 0x7D, 0xA8, 0x1A, 0x2C, 0x61, 0xA4, 0x7D,
0x75, 0xB5, 0x2F, 0x3F, 0x1F, 0x72, 0x5F, 0xA7, 0xBD, 0xB6, 0x87, 0xCA, 0xD3, 0x9D, 0x94, 0xB7,
0x71, 0xC2, 0x0D, 0x6B, 0xB8, 0x8E, 0xA4, 0x07, 0x74, 0x0B, 0x54, 0x8C, 0x7F, 0x20, 0x1A, 0x19,
0xA4, 0x36, 0xC9, 0xB7, 0xFB, 0xAF, 0xE8, 0x10, 0x86, 0x8A, 0x79, 0xBC, 0x36, 0x4E, 0x0C, 0xBA,
0x39, 0x4E, 0x0B, 0x0A, 0x9D, 0x2C, 0x84, 0x1A, 0xE0, 0x00, 0x48, 0x09, 0x5D, 0x6D, 0xE3, 0x76,
0xD1, 0x94, 0xB5, 0x72, 0x8E, 0x87, 0xBC, 0xA6, 0x73, 0x7D, 0xF1, 0xE2, 0x02, 0x35, 0x64, 0xEF,
0xFE, 0xF4, 0xBE, 0x28, 0xD5, 0xBF, 0x85, 0x61, 0x49, 0xB9, 0xF3, 0x50, 0x14, 0xCE, 0xDB, 0xB9,
0x79, 0xD1, 0x11, 0xAF, 0x06, 0xA3, 0x02, 0x66, 0x12, 0x26, 0x2D, 0x93, 0x60, 0x7F, 0x3D, 0x7C,
0xA9, 0xC1, 0x18, 0xD1, 0x94, 0x58, 0x3E, 0x53, 0x29, 0xB6, 0xF2, 0xAE, 0x1C, 0xAA, 0xF9, 0xA7,
0x2F, 0xDC, 0xC3, 0xF4, 0xC1, 0xA0, 0xEA, 0x50, 0x05, 0x53, 0x85, 0xAE, 0x0A, 0x33, 0x3A, 0x1F,
0x27, 0xA6, 0xEA, 0x51, 0x35, 0xA0, 0x40, 0xF9, 0x6A, 0x98, 0xCD, 0x2A, 0xE4, 0x4D, 0xF6, 0xF1,
0x90, 0xCC, 0x2A, 0x5B, 0x7D, 0xD9, 0xAB, 0x61, 0x1D, 0x05, 0x53, 0x43, 0x03, 0xC9, 0xCF, 0x33,
0x64, 0x3D, 0xF4, 0x6F, 0x1D, 0x4A, 0x87, 0xC9, 0xC4, 0x62, 0x82, 0x74, 0xCA, 0xE7, 0x1D, 0x3D,
0x5D, 0x6C, 0xFD, 0x53, 0xCD, 0xEE, 0x15, 0xD3, 0x9D, 0xA5, 0xFF, 0xB3, 0x66, 0xBB, 0x8B, 0x17,
0xAF, 0xAC, 0xDC, 0xC7, 0x9A, 0xC5, 0x11, 0xCA, 0x26, 0x9F, 0x25, 0x5F, 0xEF, 0xEE, 0xBE, 0xF3,
0xD5, 0xF2, 0x83, 0xE6, 0x68, 0xB4, 0x0C, 0x3E, 0xFB, 0xEF, 0xB7, 0x9F, 0xE8, 0xED, 0x55, 0x83,
0xB5, 0x55, 0x60, 0xF7, 0x3A, 0xD2, 0x2F, 0x48, 0x03, 0xE7, 0xDE, 0x7D, 0xE1, 0x8B, 0x4F, 0xF9,
0xEF, 0x68, 0xF5, 0xC2, 0x72, 0xF6, 0x0C, 0x8E, 0x8C, 0xA1, 0x1C, 0xA5, 0x71, 0x1F, 0x7E, 0xF0,
0xA1, 0xC7, 0xEA, 0x05, 0x64, 0x6F, 0x19, 0xDC, 0x6C, 0x71, 0x69, 0x0F, 0xB9, 0x0E, 0xB3, 0x4B,
0xAF, 0x6F, 0x1F, 0xDD, 0x6C, 0x97, 0xE9, 0xC7, 0xD1, 0xB9, 0xD5, 0x65, 0x8C, 0x46, 0xF7, 0xC7,
0xD6, 0x99, 0xC9, 0x3B, 0x46, 0xD2, 0xC4, 0x1F, 0xC2, 0x23, 0xD6, 0x0B, 0x0B, 0x22, 0x34, 0x11,
0xB6, 0x44, 0xFE, 0xAD, 0xA9, 0x20, 0x45, 0x06, 0x2B, 0x1C, 0x9B, 0x73, 0x41, 0x8A, 0xCD, 0x97,
0x95, 0x53, 0x5E, 0x6A, 0x85, 0x63, 0x9F, 0x8B, 0x07, 0x71, 0x96, 0x5B, 0xE5, 0xF4, 0x5C, 0xE5,
0x09, 0x0E, 0x16, 0xCB, 0xB9, 0xCD, 0xED, 0x7E, 0x3A, 0x63, 0xF2, 0x9B, 0x13, 0xB2, 0x87, 0x09,
0x03, 0x21, 0x9D, 0xB9, 0x3A, 0x75, 0xD5, 0x07, 0xAD, 0xFE, 0xA1, 0xAF, 0x82, 0xDD, 0xD7, 0xE4,
0x05, 0x12, 0x4B, 0x70, 0xFA, 0x72, 0x97, 0xFA, 0x4D, 0xEC, 0x27, 0x57, 0x94, 0xAB, 0x50, 0xE6,
0x36, 0xA3, 0x35, 0xD2, 0x4C, 0xEA, 0x7B, 0xDA, 0x61, 0xBD, 0xEE, 0xA3, 0xD4, 0x26, 0xB7, 0xB4,
0x9F, 0x59, 0x75, 0xD3, 0x4B, 0x29, 0x0E, 0x7C, 0xB8, 0x5F, 0xB0, 0xCA, 0xE9, 0x5E, 0x66, 0xF5,
0x47, 0xD4, 0x20, 0x75, 0x7B, 0x40, 0x8D, 0xCD, 0xA9, 0x2C, 0xAB, 0x5B, 0x33, 0xCC, 0x26, 0x8D,
0x84, 0xC8, 0xF8, 0xB2, 0xE0, 0x62, 0x59, 0xD7, 0xD7, 0xF0, 0x08, 0xE3, 0x7B, 0x12, 0x7F, 0x33,
0x5A, 0x72, 0xD4, 0xE5, 0x81, 0x64, 0x23, 0x24, 0x73, 0x90, 0xBA, 0x44, 0x9E, 0x2D, 0xA3, 0x34,
0x91, 0xC3, 0x6A, 0x12, 0x9C, 0xAF, 0xCD, 0x90, 0xBB, 0xB2, 0x11, 0xB6, 0x32, 0x07, 0xCA, 0xE7,
0xCD, 0x06, 0x46, 0x98, 0x8B, 0x3D, 0x95, 0x46, 0x3E, 0xA5, 0xE4, 0x34, 0xF3, 0xE4, 0x3D, 0x0A,
0x6F, 0x0D, 0xDA, 0xDE, 0xA0, 0x68, 0xC3, 0x4D, 0x31, 0xD4, 0x03, 0x61, 0xE2, 0x63, 0x65, 0xD7,
0x65, 0xD7, 0x03, 0x78, 0x98, 0xCF, 0x1C, 0xD9, 0xB1, 0xA9, 0x49, 0x34, 0x43, 0xEA, 0x55, 0x9B,
0xB0, 0xC0, 0x77, 0xF2, 0xB6, 0x68, 0x66, 0x09, 0x09, 0x5B, 0xB7, 0x55, 0x13, 0x12, 0x1A, 0xD3,
0x6D, 0xD9, 0x54, 0x22, 0x91, 0xB5, 0xDA, 0xC8, 0x66, 0x43, 0x31, 0x5C, 0x2B, 0xCD, 0x21, 0x86,
0xA8, 0x81, 0x42, 0x54, 0x15, 0xA5, 0xB9, 0xCD, 0x56, 0x66, 0x9A, 0xF6, 0x71, 0x82, 0xD3, 0xB8,
0xA9, 0x19, 0xE3, 0x38, 0xF1, 0x09, 0x6D, 0x46, 0x77, 0xF1, 0xE8, 0x9C, 0x80, 0x34, 0xAF, 0x9E,
0x64, 0xD1, 0xF4, 0x3C, 0x52, 0x06, 0xCD, 0x7B, 0x82, 0xCC, 0x65, 0x2E, 0x77, 0xDA, 0x69, 0x9F,
0xFB, 0x94, 0x69, 0x33, 0x99, 0x27, 0x17, 0x32, 0x25, 0xBB, 0x20, 0x87, 0x8E, 0x05, 0x1F, 0xE4,
0xBA, 0x0A, 0x5C, 0x2B, 0xAC, 0x1A, 0x10, 0xA4, 0x18, 0x1D, 0x79, 0x7F, 0x03, 0x78, 0x8C, 0x7A,
0xD3, 0x35, 0x41, 0xCA, 0xC7, 0x2E, 0x6D, 0xD3, 0x76, 0x9C, 0x0C, 0xA9, 0x53, 0xB6, 0x66, 0xEF,
0xD8, 0xC8, 0x2F, 0x7B, 0xD1, 0x22, 0x8C, 0x23, 0x4C, 0x9C, 0x37, 0x82, 0xB3, 0xEE, 0x98, 0x7F,
0xF5, 0xB1, 0x86, 0x74, 0x07, 0x71, 0x38, 0x19, 0x12, 0xB7, 0xE9, 0xA9, 0x6A, 0xBC, 0xCE, 0xE5,
0x71, 0x4A, 0x90, 0x8E, 0xC1, 0xE9, 0x7A, 0xBE, 0xD5, 0x62, 0x3D, 0xF3, 0xFC, 0xC3, 0x60, 0xDB,
0x35, 0x12, 0xCB, 0xB8, 0x88, 0x86, 0x24, 0x9E, 0xC7, 0x98, 0xA5, 0xAC, 0xCD, 0x7C, 0x32, 0x60,
0x46, 0x9A, 0xD4, 0x56, 0x75, 0x9C, 0xD6, 0xD1, 0x33, 0xD5, 0xE1, 0x34, 0x22, 0x98, 0x80, 0x1E,
0x88, 0x59, 0x6D, 0x32, 0x9B, 0x78, 0x62, 0xB5, 0x64, 0xE0, 0x44, 0x4D, 0x47, 0x24, 0x6B, 0xA1,
0x71, 0xCF, 0x08, 0x0A, 0xD2, 0x16, 0x9D, 0xDD, 0xC3, 0x2A, 0xB2, 0x86, 0xE1, 0x8E, 0xFE, 0x80,
0xC7, 0xBA, 0x80, 0x5A, 0x4E, 0x24, 0xA0, 0x22, 0xBA, 0xB9, 0xF3, 0xAE, 0x4E, 0xFB, 0xD0, 0xF3,
0x93, 0xD9, 0x64, 0x7A, 0x5B, 0xFA, 0x89, 0xB3, 0x16, 0x12, 0xC9, 0x5E, 0xBA, 0x22, 0xA4, 0xF5,
0xCE, 0x0B, 0xA9, 0xC4, 0xA2, 0x19, 0xC4, 0xA6, 0x12, 0x4B, 0x46, 0x20, 0x2F, 0x68, 0x16, 0x3B,
0xB1, 0xBC, 0x62, 0xB7, 0x99, 0x77, 0x29, 0x1A, 0x96, 0x2A, 0x95, 0xC5, 0xCD, 0xDB, 0x1A, 0xFD,
0x5F, 0x35, 0x1E, 0xDE, 0xDE, 0x39, 0xAF, 0xF3, 0x60, 0x50, 0xB7, 0x29, 0x5F, 0x02, 0xEA, 0x80,
0x10, 0x9A, 0x2A, 0xF8, 0x4B, 0x99, 0x5F, 0x36, 0x43, 0x6C, 0x42, 0x54, 0xC7, 0xF3, 0x63, 0xD8,
0xDC, 0x3F, 0xAF, 0x1D, 0x3A, 0x23, 0x0A, 0x07, 0xE4, 0x0E, 0xC9, 0xD9, 0x9D, 0xA9, 0x4E, 0x7B,
0x69, 0x70, 0x6C, 0x56, 0x2A, 0xCA, 0x24, 0xBF, 0xB2, 0x43, 0x5D, 0x41, 0xED, 0x05, 0x3E, 0x22,
0x34, 0xFD, 0xBB, 0x62, 0x22, 0x23, 0x50, 0xAB, 0xF6, 0x02, 0x13, 0xC5, 0x28, 0x43, 0x8C, 0xB5,
0x9C, 0x2F, 0xC6, 0x06, 0xCB, 0x4C, 0xD3, 0xC1, 0xB2, 0x99, 0xCC, 0x40, 0xF0, 0x8A, 0x97, 0x20,
0x94, 0xC5, 0x83, 0x13, 0x26, 0x4C, 0x8A, 0xDA, 0x8A, 0x33, 0x83, 0xB8, 0xCA, 0x83, 0xC9, 0x1C,
0x93, 0x46, 0x57, 0xA8, 0xE2, 0x86, 0xA8, 0x66, 0x9F, 0xDC, 0x14, 0xBF, 0xE8, 0x14, 0xCF, 0x89,
0x99, 0x7B, 0x5B, 0x52, 0x17, 0x2C, 0x73, 0x47, 0xA7, 0xE4, 0x95, 0xE6, 0xAF, 0x1E, 0xE5, 0x82,
0xD7, 0x74, 0x2A, 0x8D, 0xB4, 0x12, 0x38, 0x50, 0x23, 0x81, 0x23, 0x0E, 0x45, 0xD6, 0x9A, 0xA1,
0x20, 0xB6, 0x6D, 0x1E, 0x04, 0x47, 0x3C, 0xB0, 0xB2, 0x39, 0x27, 0xD5, 0x27, 0xBE, 0x08, 0x51,
0xEE, 0x4B, 0x2E, 0x72, 0xCB, 0xBC, 0xC9, 0x6B, 0x87, 0x1C, 0xB7, 0x1C, 0x63, 0x23, 0x7A, 0x1D,
0x7D, 0xA0, 0x6F, 0xEC, 0x77, 0xA7, 0xD2, 0x53, 0xF9, 0x68, 0x4D, 0xCE, 0x89, 0x48, 0xE2, 0x19,
0x3D, 0xB9, 0xC8, 0xCC, 0xDD, 0x83, 0x69, 0x3E, 0x46, 0xCE, 0x38, 0x2C, 0xCF, 0x86, 0x6E, 0x51,
0xE3, 0xFA, 0x62, 0x29, 0x23, 0x09, 0xDB, 0x49, 0x30, 0xFA, 0x99, 0x5B, 0xE1, 0xFB, 0x61, 0xCC,
0xF4, 0xD9, 0x23, 0x3C, 0xD2, 0x9F, 0xD1, 0x94, 0x70, 0x4D, 0x43, 0xAE, 0x12, 0x46, 0x11, 0xC2,
0x6A, 0xEB, 0x84, 0x2C, 0x30, 0xE7, 0xA7, 0xAD, 0xA1, 0x68, 0x23, 0x7F, 0xDD, 0x88, 0x37, 0x79,
0x53, 0x3A, 0x5D, 0x90, 0x15, 0xDF, 0x01, 0x53, 0xA7, 0x41, 0xFA, 0x11, 0x62, 0x93, 0xA8, 0x7F,
0x07, 0x5D, 0x92, 0xBF, 0x6E, 0xD5, 0x30, 0x18, 0xC5, 0x4F, 0xE2, 0xC1, 0x42, 0x96, 0xEA, 0xA9,
0x2C, 0x08, 0xB9, 0x0F, 0x00, 0xF5, 0x13, 0xE4, 0xC6, 0xA5, 0x63, 0x07, 0xBA, 0x94, 0x0E, 0x1D,
0xFA, 0x08, 0x5D, 0x18, 0x18, 0x6E, 0x9B, 0x3C, 0x02, 0x0B, 0xEA, 0x80, 0xC4, 0x2B, 0xB0, 0x30,
0x30, 0xDC, 0x4B, 0x8C, 0x78, 0x01, 0xAB, 0x88, 0x99, 0x0C, 0xED, 0xC4, 0xE2, 0x4A, 0x46, 0x4A,
0xA5, 0x9B, 0x7C, 0x7C, 0x4E, 0x2B, 0x90, 0xD8, 0x92, 0xC8, 0x3E, 0x7F, 0x7E, 0x27, 0x30, 0x09,
0x35, 0xB9, 0xFA, 0x7D, 0xB4, 0x6E, 0xAD, 0x5B, 0x73, 0xE0, 0xE5, 0xF7, 0xBE, 0x88, 0x09, 0xAB,
0x25, 0x6A, 0x03, 0x7D, 0xE0, 0xD5, 0xD7, 0x24, 0x43, 0x7D, 0xD2, 0x2B, 0xEA, 0xD1, 0xBC, 0x05,
0xA0, 0x5A, 0x88, 0x01, 0xE8, 0x1C, 0x6C, 0x82, 0xFA, 0x89, 0xF2, 0x36, 0x62, 0xBD, 0x0B, 0xB3,
0x1F, 0x64, 0xA8, 0x8A, 0x24, 0x7D, 0x4D, 0xF4, 0x8D, 0x68, 0x03, 0x24, 0x40, 0x03, 0x45, 0x44,
0xB6, 0x30, 0xE4, 0xF5, 0xBB, 0x43, 0xE1, 0x51, 0xF0, 0xE7, 0xAE, 0xC7, 0x63, 0x62, 0xA9, 0x1E,
0x60, 0xA9, 0x05, 0x60, 0x58, 0xCD, 0x6F, 0x77, 0xDE, 0x50, 0x2B, 0x26, 0x36, 0x29, 0xBE, 0x40,
0xF2, 0x85, 0x01, 0x3A, 0x40, 0xB7, 0xFC, 0x1C, 0x04, 0x4D, 0xC5, 0xDD, 0x69, 0x58, 0x61, 0xD8,
0xC5, 0x42, 0x79, 0xFD, 0x22, 0x2A, 0xDF, 0x9C, 0x84, 0x87, 0x58, 0x86, 0x36, 0x35, 0x8D, 0xD5,
0xD1, 0xF0, 0xA6, 0x8C, 0x3B, 0xD2, 0x43, 0xBB, 0xAC, 0xBA, 0xCA, 0x66, 0xA2, 0x87, 0xF2, 0x59,
0xC4, 0xCE, 0x4E, 0xCF, 0x58, 0xFD, 0x49, 0x82, 0xA5, 0xD6, 0x5E, 0x46, 0xDD, 0x2E, 0x85, 0xDF,
0x45, 0xD2, 0xD0, 0x1F, 0x20, 0x3F, 0x3A, 0xB5, 0x97, 0x64, 0x5B, 0x8B, 0xA0, 0x7C, 0x12, 0xB1,
0xBE, 0x4C, 0x8A, 0x12, 0x1A, 0x0E, 0x69, 0xD9, 0x84, 0xD0, 0x9C, 0xF4, 0x35, 0x56, 0xDA, 0x19,
0x11, 0xA4, 0x9F, 0x8E, 0xA3, 0xA1, 0xA1, 0xA0, 0x71, 0x56, 0x6D, 0x32, 0x90, 0x92, 0x41, 0x4E,
0x90, 0xDC, 0x28, 0x63, 0x4A, 0xCD, 0xDE, 0x79, 0xD7, 0xEB, 0xD7, 0x83, 0x48, 0x55, 0x31, 0x68,
0xAC, 0x94, 0x5F, 0x88, 0x5E, 0x3B, 0x26, 0x54, 0x5D, 0x45, 0x13, 0x07, 0x0E, 0x36, 0xD3, 0x6F,
0x99, 0x7E, 0x8D, 0xB5, 0x71, 0xE6, 0xE5, 0x4C, 0xFF, 0x76, 0xA6, 0xBF, 0xB0, 0xB0, 0x32, 0x98,
0x76, 0x3C, 0xF3, 0x9C, 0xB5, 0x9C, 0xDC, 0xAC, 0xBA, 0x2A, 0xC9, 0xD7, 0x03, 0xE3, 0x62, 0xAA,
0x16, 0x22, 0xB2, 0xB7, 0x0C, 0xDC, 0x93, 0x1B, 0x32, 0xAB, 0xD6, 0xD0, 0x3E, 0x27, 0x66, 0xD5,
0x86, 0x55, 0x2F, 0xA3, 0xE5, 0xF3, 0xB9, 0x36, 0xD3, 0x35, 0xED, 0xCC, 0xD8, 0xA1, 0x06, 0xCE,
0x81, 0xF5, 0xD1, 0x61, 0x47, 0x1B, 0x93, 0xD3, 0xDB, 0xBE, 0xA0, 0x8D, 0xB8, 0x59, 0x0B, 0x57,
0x65, 0x62, 0x32, 0xA2, 0xF3, 0xF8, 0x15, 0x33, 0xBA, 0x4C, 0x2F, 0x6E, 0x77, 0xA1, 0xE1, 0x62,
0xD7, 0xFF, 0xA6, 0x27, 0x87, 0x2A, 0x42, 0x1B, 0x88, 0xAB, 0x88, 0xB4, 0x40, 0x25, 0x82, 0x76,
0x4B, 0x41, 0x79, 0x03, 0x9A, 0xD9, 0x83, 0x37, 0x37, 0xFF, 0xCD, 0x7E, 0xC7, 0x88, 0xD2, 0x4C,
0x4A, 0xDC, 0xCF, 0x7E, 0x91, 0x5F, 0x5E, 0x91, 0x63, 0xB2, 0xFA, 0x2E, 0x6F, 0x3E, 0x41, 0xF1,
0xE9, 0xEB, 0x2C, 0xA0, 0xC9, 0x29, 0x1A, 0xC4, 0x8F, 0x66, 0x2F, 0x8A, 0xFE, 0x33, 0x06, 0x8B,
0x4A, 0x79, 0x5B, 0x8C, 0x67, 0xAE, 0xBE, 0x87, 0x31, 0x0F, 0xBE, 0x99, 0x07, 0xEF, 0x77, 0xB8,
0x3D, 0xBB, 0x55, 0x59, 0xB5, 0x8C, 0x19, 0xC8, 0xDF, 0xB5, 0x9F, 0xDF, 0xAF, 0x5D, 0xCF, 0x38,
0x1E, 0xD6, 0xFE, 0xB4, 0x85, 0xAD, 0xA7, 0x78, 0x24, 0xDB, 0x2D, 0x0C, 0xDA, 0x59, 0x0E, 0xEF,
0xA7, 0xD3, 0x60, 0x89, 0x39, 0xB4, 0xF3, 0xD4, 0x1D, 0xE1, 0xE2, 0x38, 0x2E, 0xB0, 0xCC, 0x53,
0xFF, 0x3E, 0xF5, 0x1D, 0x45, 0xC9, 0x58, 0xB1, 0x41, 0x31, 0xA2, 0x1C, 0xA1, 0x46, 0xF0, 0xEF,
0x6D, 0x98, 0xC8, 0x1F, 0x4D, 0x52, 0x31, 0x4E, 0xC3, 0x40, 0x10, 0x1C, 0xDB, 0x4A, 0x5C, 0xB8,
0x30, 0x05, 0xA2, 0x49, 0x71, 0x3F, 0xC0, 0x3F, 0xC0, 0xF7, 0x04, 0x8A, 0x44, 0x14, 0x14, 0x34,
0xF4, 0x34, 0xD4, 0xD8, 0x9F, 0xC8, 0x2B, 0x90, 0x48, 0x4B, 0x91, 0xC4, 0xF9, 0x01, 0x6E, 0xD2,
0xBB, 0x4E, 0xE5, 0xE2, 0x22, 0x21, 0x64, 0x7B, 0x99, 0xBD, 0x8B, 0x10, 0x67, 0xF9, 0x34, 0xBA,
0xBD, 0xD9, 0x9D, 0x9D, 0x3D, 0x14, 0x22, 0x82, 0x8C, 0xDB, 0x01, 0xE6, 0xF8, 0xD0, 0x23, 0xED,
0xF1, 0x89, 0xF8, 0x1B, 0xB7, 0xC0, 0x0E, 0x19, 0x50, 0xDA, 0xC8, 0x22, 0x3F, 0x00, 0x1A, 0x81,
0x46, 0xB8, 0x64, 0xB5, 0x64, 0x84, 0x44, 0xE4, 0x22, 0xF5, 0xFF, 0xC8, 0xC8, 0x3F, 0xD3, 0x40,
0xA2, 0x19, 0xF1, 0x78, 0xBE, 0x07, 0x22, 0x1F, 0xD9, 0xEB, 0x56, 0xD6, 0xBC, 0x28, 0x62, 0x99,
0x42, 0x5A, 0x3D, 0xC0, 0x42, 0x19, 0xB9, 0x38, 0x32, 0x7E, 0x1A, 0x32, 0x06, 0x7E, 0x28, 0xB4,
0x62, 0xD2, 0xA1, 0x57, 0x11, 0x1A, 0xD7, 0xFA, 0x3E, 0x4D, 0x2A, 0x42, 0x42, 0xA3, 0xC9, 0x67,
0xCD, 0x7A, 0x79, 0x51, 0xC5, 0x26, 0x9C, 0x56, 0x64, 0xDD, 0x9B, 0x69, 0xC5, 0x92, 0x46, 0x09,
0xB1, 0xF3, 0x25, 0x75, 0x63, 0x2E, 0xE0, 0x7A, 0x0B, 0x3C, 0xEB, 0x2D, 0xA9, 0xA9, 0x5D, 0xFA,
0xC4, 0x45, 0x1B, 0x26, 0x9B, 0xCB, 0x84, 0xB0, 0x2A, 0x91, 0x2E, 0xA0, 0x66, 0xDC, 0x0C, 0x01,
0xC5, 0x2E, 0x1A, 0x03, 0x4A, 0x5C, 0xE8, 0x81, 0xA8, 0x47, 0xF5, 0x0F, 0xBD, 0x2A, 0x4A, 0x3B,
0xBC, 0xA9, 0x5E, 0xB6, 0xDF, 0x62, 0x8C, 0xFB, 0x20, 0x3B, 0x1A, 0x92, 0xB3, 0x9D, 0x8F, 0x44,
0xA9, 0x6B, 0xA4, 0x2B, 0x84, 0xCA, 0xAA, 0x96, 0xEA, 0xF7, 0x1F, 0x30, 0xF4, 0x21, 0x3D, 0xC0,
0xA9, 0x7C, 0x87, 0xCC, 0xA3, 0x72, 0x4D, 0x56, 0xAD, 0x16, 0xA8, 0x6C, 0xA2, 0xCA, 0xFA, 0x52,
0xC6, 0xC2, 0x74, 0xBE, 0x7C, 0xE1, 0x85, 0xEC, 0x02, 0x0A, 0x6E, 0xE1, 0x8E, 0x23, 0xDA, 0x06,
0x94, 0x7D, 0x61, 0x1B, 0x4F, 0x74, 0xA0, 0x6C, 0x9E, 0x4E, 0xAE, 0x10, 0xEA, 0x28, 0xC7, 0x5C,
0xDA, 0x46, 0x91, 0xE9, 0x62, 0xDF, 0xEA, 0x82, 0x33, 0xD3, 0x29, 0xB5, 0x88, 0xE4, 0xD4, 0xE8,
0x39, 0xE9, 0xD1, 0xA0, 0x2E, 0xD1, 0xE9, 0xDC, 0x4F, 0xF1, 0x4A, 0x3B, 0xD2, 0x2A, 0xD6, 0xCF,
0xE7, 0xE2, 0x7A, 0x8F, 0xE8, 0xE5, 0xB8, 0xB2, 0x98, 0x4D, 0xFA, 0x02, 0xFC, 0x81, 0x1A, 0x5A,
0xEB, 0x3B, 0xF9, 0x1B, 0x72, 0x3C, 0x5C, 0xEC, 0x52, 0xA6, 0x37, 0xC2, 0xF4, 0xFA, 0x94, 0xCC,
0xF4, 0xCE, 0x88, 0xF1, 0xD7, 0xE7, 0x74, 0xFA, 0x17, 0x8D, 0x54, 0xBD, 0x8E, 0xD3, 0x40, 0x10,
0xFE, 0x9C, 0x05, 0xF9, 0x90, 0x8B, 0xA1, 0xA0, 0xA0, 0xC2, 0x94, 0x14, 0x88, 0x34, 0x14, 0x29,
0x1C, 0xDB, 0x52, 0x2A, 0xBA, 0x2B, 0x2E, 0x6F, 0x42, 0x41, 0xE1, 0x24, 0x2B, 0x51, 0x50, 0xF2,
0x2A, 0x94, 0x14, 0x3E, 0x65, 0x81, 0x82, 0x82, 0x22, 0x79, 0x03, 0xFC, 0x06, 0x59, 0x1D, 0x2E,
0x56, 0xC2, 0xB0, 0xCC, 0xAC, 0xED, 0x10, 0x01, 0x11, 0xB7, 0x52, 0x66, 0x76, 0xE7, 0xE7, 0xDB,
0x6F, 0x66, 0xD6, 0x01, 0x64, 0x35, 0xFC, 0x23, 0xC3, 0xA2, 0x3B, 0xDD, 0x24, 0x7E, 0x5C, 0x39,
0x9F, 0x1E, 0x88, 0x40, 0x71, 0x14, 0x33, 0x8C, 0x8B, 0x00, 0xC5, 0xF1, 0xDE, 0x22, 0xFF, 0x6E,
0xE8, 0x6D, 0xA1, 0x1A, 0xDB, 0x3D, 0x21, 0xA5, 0x61, 0x83, 0xEF, 0x7F, 0x2A, 0x05, 0xA2, 0x5E,
0x0D, 0x6B, 0x62, 0x46, 0x16, 0xBF, 0x45, 0xB2, 0x3B, 0x92, 0xB9, 0xE4, 0x08, 0x8E, 0xC7, 0x14,
0x27, 0x1B, 0xBC, 0x1B, 0x92, 0x4F, 0xD0, 0x6E, 0x75, 0xFD, 0x53, 0x52, 0xAF, 0x99, 0x2F, 0xD3,
0x46, 0xEE, 0x8D, 0x14, 0x21, 0xB5, 0xD0, 0xC8, 0x65, 0x26, 0x75, 0x76, 0x58, 0x43, 0x35, 0x48,
0x35, 0x69, 0xD6, 0xD2, 0x07, 0x27, 0x44, 0x7E, 0x04, 0x11, 0x8E, 0xC1, 0xC1, 0x21, 0xAC, 0x1D,
0xD8, 0xF2, 0x0A, 0xD9, 0x00, 0x70, 0x97, 0x49, 0x3A, 0x60, 0xDB, 0x60, 0xEA, 0x35, 0xED, 0x72,
0x65, 0xAD, 0xCB, 0x48, 0x19, 0xD8, 0xFB, 0xE7, 0x68, 0x4D, 0xB4, 0x9D, 0xE5, 0x94, 0x7C, 0x70,
0x37, 0x56, 0x1D, 0x6A, 0x90, 0xE7, 0x8E, 0x9B, 0xE0, 0x43, 0x5F, 0xDC, 0xC6, 0x20, 0xF5, 0x88,
0x0F, 0x75, 0xD4, 0xDE, 0xD8, 0x35, 0x25, 0x1F, 0xB5, 0x7D, 0xFE, 0x17, 0x8A, 0x62, 0x94, 0x35,
0x91, 0x71, 0xDF, 0x18, 0xA5, 0x1B, 0x51, 0x38, 0x9D, 0x49, 0x1F, 0xBC, 0xFF, 0x39, 0xD0, 0x2B,
0x81, 0x9A, 0xDB, 0x6B, 0xFE, 0xA1, 0x62, 0xA3, 0x4C, 0x85, 0x2E, 0x36, 0x05, 0x2A, 0x32, 0xF1,
0x27, 0x8B, 0x6A, 0xEB, 0xFD, 0x17, 0xEF, 0xBB, 0xA2, 0x7F, 0x21, 0xCA, 0xF6, 0xD3, 0xE9, 0x6B,
0xBD, 0x3A, 0x03, 0x23, 0xAA, 0x12, 0xB4, 0x97, 0xA8, 0x92, 0x7D, 0x6C, 0xD2, 0xB2, 0xC2, 0x2A,
0x36, 0x51, 0xBB, 0xF1, 0xFE, 0x33, 0x83, 0xF1, 0xB0, 0x4A, 0xC4, 0x7B, 0x44, 0x2D, 0x70, 0xCD,
0x71, 0x7A, 0xE8, 0x5C, 0x74, 0x89, 0x3E, 0x99, 0x07, 0xCC, 0xC6, 0x9A, 0x87, 0x10, 0xD9, 0xB8,
0x61, 0x20, 0x6E, 0x70, 0xCA, 0xCD, 0x46, 0x55, 0x70, 0x2D, 0x56, 0xA6, 0x60, 0x9C, 0x24, 0xFC,
0x21, 0x9A, 0x71, 0x88, 0x77, 0x44, 0x3C, 0x13, 0xB1, 0x12, 0x3B, 0xDF, 0x83, 0x98, 0x93, 0xBA,
0x54, 0xC4, 0x6A, 0xB9, 0x5C, 0x5E, 0xB9, 0xE0, 0x94, 0x5D, 0xB0, 0x05, 0x6F, 0x64, 0xC7, 0x0C,
0x3C, 0x3A, 0xA2, 0x08, 0xBB, 0x8D, 0x46, 0xF2, 0x55, 0xE3, 0x9A, 0x74, 0xD2, 0x16, 0x7A, 0xBB,
0xF7, 0x6F, 0x76, 0x8B, 0xDD, 0x8B, 0x39, 0x5D, 0xA0, 0xCD, 0xA0, 0xF6, 0x16, 0xB4, 0x30, 0x98,
0xF3, 0x20, 0xCE, 0x1F, 0x79, 0x95, 0xC3, 0x30, 0xFB, 0x6F, 0x8D, 0x1F, 0x8D, 0xD4, 0xA1, 0x45,
0x34, 0xCC, 0x63, 0x19, 0x18, 0x65, 0x61, 0x17, 0x6C, 0xC1, 0x3B, 0x96, 0xE1, 0x8E, 0xB9, 0x25,
0x6E, 0x7D, 0xE9, 0xBD, 0x39, 0x3D, 0xAC, 0xDA, 0xAC, 0x65, 0xC2, 0x7A, 0xBB, 0x70, 0xC2, 0x1F,
0x2B, 0x17, 0xCA, 0xE1, 0xF7, 0x0A, 0x5C, 0xE0, 0xB1, 0xD0, 0x78, 0x2F, 0x84, 0x72, 0x4C, 0x1A,
0x24, 0x5A, 0xFE, 0x01, 0x9A, 0x29, 0x0B, 0x57, 0x0B, 0x45, 0x69, 0x5C, 0x1A, 0x76, 0xC1, 0x16,
0xBC, 0x21, 0x2E, 0x64, 0xF4, 0xB9, 0x82, 0xF2, 0x0B, 0xCD, 0x58, 0x3D, 0x8C, 0xDC, 0xC6, 0x15,
0x7E, 0x24, 0xE5, 0x63, 0x60, 0x06, 0xA1, 0x0A, 0x1B, 0x08, 0x2C, 0xE0, 0xD8, 0xA4, 0x0A, 0x24,
0x30, 0x65, 0x8A, 0xD3, 0x91, 0xB6, 0x0A, 0x15, 0x29, 0xA2, 0x00, 0x59, 0x17, 0x71, 0xE1, 0x3E,
0x29, 0xAE, 0x49, 0x79, 0xB7, 0x5C, 0xBB, 0x71, 0x19, 0xA5, 0x70, 0x6D, 0x23, 0x50, 0x80, 0xE0,
0x52, 0xA8, 0x71, 0xE1, 0x04, 0xBA, 0x23, 0x05, 0x15, 0x29, 0x52, 0x88, 0x89, 0x10, 0xA4, 0x70,
0xA1, 0x0D, 0xA4, 0x14, 0xB1, 0x0B, 0x8D, 0x25, 0x46, 0xA6, 0xEE, 0xC8, 0x9D, 0x7C, 0xDF, 0x1B,
0x92, 0x7B, 0xA7, 0x1F, 0x20, 0x76, 0x1C, 0x24, 0xC4, 0xEE, 0x80, 0xE4, 0xCC, 0xBC, 0x9F, 0x6F,
0xDE, 0x2F, 0x5F, 0x15, 0x11, 0xEF, 0x8A, 0xC5, 0x18, 0xDF, 0xEC, 0x31, 0xCE, 0x83, 0x56, 0x24,
0x68, 0x22, 0x23, 0x92, 0x54, 0x49, 0x2D, 0x72, 0x20, 0x59, 0x25, 0x81, 0x91, 0x12, 0x2F, 0x16,
0x62, 0xAD, 0xED, 0xC4, 0xC7, 0x68, 0x24, 0x7C, 0x32, 0x2B, 0x72, 0x89, 0x97, 0xD2, 0x89, 0xA4,
0x55, 0xB8, 0x14, 0xC9, 0xF2, 0x14, 0x14, 0xAC, 0x80, 0x82, 0xD7, 0x85, 0xD8, 0x1B, 0xB4, 0x19,
0x5E, 0x44, 0xA6, 0x21, 0xF9, 0x4F, 0x2A, 0x8C, 0xD9, 0x21, 0x06, 0x29, 0x0C, 0x47, 0xCB, 0x17,
0x3E, 0x99, 0x0A, 0x17, 0x0F, 0x57, 0xB8, 0x02, 0x39, 0xDB, 0x48, 0xF2, 0xCB, 0x32, 0x0F, 0x84,
0x72, 0x08, 0x97, 0xA4, 0x0B, 0x4C, 0xF1, 0xA1, 0x23, 0x15, 0x91, 0xF2, 0x6E, 0x05, 0x31, 0x8C,
0xDF, 0x87, 0x9D, 0xDF, 0x4A, 0xE6, 0xB5, 0x12, 0x57, 0x1D, 0xE4, 0x9C, 0x8B, 0xB4, 0x69, 0x2E,
0x7B, 0x71, 0x25, 0x29, 0xA4, 0x8E, 0x17, 0x78, 0x59, 0x67, 0xE2, 0x9B, 0xB8, 0xF2, 0x1A, 0xE8,
0xD6, 0x4A, 0xF9, 0x4E, 0x27, 0xB1, 0x85, 0x8C, 0x25, 0xC5, 0xCA, 0x21, 0x8D, 0xB5, 0xFF, 0x84,
0x46, 0x5F, 0x58, 0x5B, 0x42, 0x22, 0xE8, 0xE9, 0x77, 0xA2, 0x8C, 0xD3, 0x13, 0x8F, 0x8F, 0xB0,
0xE2, 0x36, 0xFE, 0xDF, 0xDD, 0x7F, 0xF3, 0x39, 0xB3, 0xE3, 0x63, 0x69, 0x3F, 0x5B, 0x61, 0xD1,
0x31, 0xFE, 0xB9, 0x6A, 0xE3, 0x89, 0x6C, 0x1C, 0x5E, 0x0D, 0x6A, 0xA8, 0x64, 0xDF, 0x68, 0xC8,
0xEA, 0xA8, 0x91, 0xF2, 0xBE, 0x07, 0xFE, 0x45, 0x25, 0x61, 0x47, 0x70, 0x7D, 0x9B, 0xA7, 0x1C,
0x4D, 0x5C, 0x03, 0xB7, 0x1E, 0x5A, 0x7A, 0x5D, 0xFA, 0x6E, 0x4B, 0x0C, 0x4D, 0x8F, 0xD1, 0xEB,
0xB2, 0x1C, 0x6A, 0x67, 0x50, 0x09, 0x92, 0xDF, 0x32, 0x18, 0x43, 0xD3, 0x09, 0xA7, 0xB2, 0x1C,
0xD8, 0x1C, 0x46, 0x4B, 0x8C, 0xD9, 0xEB, 0x5D, 0xCF, 0x33, 0xCB, 0x80, 0x5F, 0xBC, 0x24, 0x8A,
0x90, 0x0A, 0x52, 0xC4, 0xE0, 0xD7, 0xCB, 0x4E, 0x2B, 0xF3, 0xD2, 0x02, 0xD6, 0x79, 0x68, 0xED,
0x52, 0x12, 0x79, 0xED, 0x28, 0xA7, 0x70, 0xEE, 0x7A, 0x49, 0x1C, 0xA8, 0x22, 0x2A, 0x36, 0x0F,
0xC6, 0xE7, 0x10, 0x3C, 0xC0, 0xA9, 0x86, 0x7F, 0x80, 0x76, 0xF1, 0x2D, 0x80, 0x15, 0x5F, 0x02,
0x6A, 0xA9, 0x07, 0x85, 0xB7, 0x79, 0x26, 0x7B, 0x54, 0xBF, 0x93, 0x42, 0x00, 0x7E, 0x96, 0xFB,
0x06, 0x10, 0x00, 0xF1, 0xA4, 0x8A, 0x6A, 0x08, 0x00, 0x61, 0x23, 0x03, 0x83, 0x09, 0x9B, 0x6C,
0xB0, 0x03, 0xBF, 0x2B, 0x7F, 0x3D, 0x7B, 0xAB, 0x07, 0x34, 0x96, 0x18, 0x59, 0xAB, 0xAC, 0x63,
0xDE, 0xDD, 0xE3, 0xD0, 0xD9, 0xF7, 0x67, 0xB3, 0x15, 0x61, 0xCC, 0x68, 0x83, 0x49, 0x85, 0x05,
0x51, 0x0D, 0x13, 0x0C, 0x0C, 0x9E, 0xC1, 0x43, 0xB9, 0x01, 0xA3, 0x6D, 0x09, 0x3A, 0xC1, 0x19,
0x17, 0x38, 0x72, 0xAA, 0x5A, 0x83, 0x34, 0xB8, 0x43, 0x86, 0x96, 0xAA, 0xDF, 0xA0, 0xF5, 0x51,
0x99, 0xEC, 0x6D, 0x28, 0x13, 0x1D, 0x83, 0xA0, 0x07, 0x95, 0xF1, 0x4C, 0xF3, 0x89, 0x5A, 0x72,
0xD5, 0xE1, 0xAC, 0x0A, 0xB0, 0x63, 0x6D, 0xE5, 0xA9, 0x59, 0x03, 0x1F, 0x5B, 0xA5, 0x34, 0x8A,
0x88, 0x83, 0x9A, 0x9D, 0xDA, 0x1D, 0xCD, 0x9F, 0x56, 0xAB, 0xE6, 0x49, 0x4A, 0xBA, 0xD4, 0xFE,
0x51, 0xA5, 0x2E, 0xF7, 0x71, 0xBD, 0xB7, 0x9C, 0x16, 0x04, 0xBA, 0x97, 0x6A, 0x0C, 0x14, 0x1C,
0x31, 0xA5, 0xEB, 0x58, 0x38, 0x6E, 0xCA, 0x78, 0xB2, 0xFA, 0x84, 0xB8, 0x53, 0x89, 0x0D, 0xCE,
0x25, 0x5C, 0x16, 0x71, 0x19, 0x6C, 0x23, 0x5E, 0x48, 0x99, 0x7B, 0x0D, 0x35, 0x4F, 0x05, 0xB6,
0x1E, 0x2C, 0x79, 0x54, 0x7B, 0xF4, 0x86, 0xA8, 0x12, 0xDA, 0xBB, 0x44, 0x4E, 0x12, 0x15, 0xEA,
0x68, 0xBF, 0xDC, 0xFF, 0xCD, 0x21, 0x3D, 0x0A, 0x0B, 0x6E, 0x10, 0x15, 0xA0, 0xE4, 0x77, 0x1E,
0xCF, 0xAF, 0xA6, 0x7F, 0x96, 0x97, 0x0C, 0x8F, 0xF7, 0x80, 0xA2, 0xD9, 0x89, 0x1B, 0xC7, 0x4E,
0x25, 0x18, 0x2C, 0x21, 0x50, 0x97, 0xDC, 0x28, 0x89, 0x09, 0xFD, 0x3D, 0xE3, 0xDA, 0xEC, 0x3E,
0x55, 0xE1, 0x4C, 0xCC, 0x41, 0x1D, 0xD2, 0x57, 0x30, 0xF5, 0x44, 0x33, 0x95, 0xE0, 0x53, 0x00,
0xF2, 0xAB, 0x76, 0x22, 0x14, 0x9B, 0xC9, 0xB0, 0x12, 0x3D, 0x76, 0x05, 0xC1, 0xC7, 0x68, 0x70,
0x73, 0x55, 0xB8, 0x29, 0x77, 0x92, 0xE0, 0xA4, 0xE8, 0x82, 0x3C, 0x5F, 0xEE, 0x5E, 0x8C, 0x2C,
0x1C, 0x90, 0x89, 0x3E, 0x1F, 0xAF, 0x0D, 0xE8, 0xA7, 0x60, 0x74, 0xBD, 0x3A, 0x2D, 0x47, 0x3F,
0x1D, 0x84, 0x6E, 0x2F, 0x2A, 0xA5, 0xA9, 0x2C, 0x95, 0x11, 0xEC, 0xED, 0xC9, 0x08, 0xBA, 0x6E,
0x20, 0x24, 0x01, 0x28, 0xE6, 0x54, 0xA1, 0x97, 0xD4, 0xC5, 0xB6, 0x7A, 0xC3, 0x72, 0x1E, 0xB2,
0x63, 0x7E, 0x45, 0x34, 0x93, 0x0A, 0xCF, 0x38, 0x5C, 0x3C, 0x2B, 0xBA, 0xC9, 0x03, 0x3B, 0x78,
0xBA, 0xED, 0xF7, 0x7F, 0x0B, 0xD4, 0xB9, 0x1E, 0x8B, 0x52, 0x89, 0x96, 0x98, 0xA7, 0x19, 0xB4,
0x74, 0x95, 0x0C, 0xDB, 0xF1, 0x4C, 0x6B, 0x3F, 0xB2, 0xBE, 0x02, 0xA0, 0x8C, 0x20, 0xCD, 0x1A,
0xA3, 0x48, 0x2D, 0xA1, 0x51, 0x03, 0xB9, 0xA6, 0x88, 0x2C, 0xD5, 0x31, 0x08, 0xDA, 0x8E, 0xC3,
0x4F, 0x11, 0xA8, 0x27, 0x3D, 0x0B, 0xC5, 0x9A, 0x11, 0xC9, 0x3E, 0xA4, 0x05, 0x2A, 0x62, 0x1A,
0x5C, 0xB3, 0x7C, 0xB4, 0xBF, 0xE2, 0xCF, 0x9C, 0xAE, 0xED, 0xA0, 0xFC, 0x4A, 0x43, 0x1D, 0xAE,
0x0F, 0x74, 0xAC, 0x76, 0x3E, 0x7D, 0x7F, 0x7F, 0xA5, 0xB1, 0x2B, 0x5B, 0x30, 0x8A, 0x21, 0x94,
0x97, 0xF4, 0x55, 0xDD, 0xFC, 0xBF, 0x9A, 0xF0, 0x21, 0xE6, 0x39, 0xFB, 0x18, 0xE2, 0xC5, 0x76,
0xF5, 0xEA, 0x2C, 0xF7, 0x66, 0x33, 0x8D, 0x11, 0x5D, 0xA2, 0xC3, 0xD1, 0xFE, 0x7E, 0x1F, 0x61,
0xF9, 0x5E, 0x00, 0x6D, 0x2E, 0xD2, 0xAA, 0x2E, 0xF2, 0x8C, 0xBF, 0x2D, 0xE9, 0x72, 0x74, 0x35,
0x35, 0x1E, 0x4F, 0xF1, 0x2A, 0x16, 0xA7, 0xCC, 0x55, 0x2D, 0xA2, 0xE4, 0x6C, 0x3F, 0x3A, 0x6A,
0xBC, 0x9C, 0xC0, 0xCA, 0xE5, 0x0C, 0xAD, 0xE7, 0x5B, 0xC4, 0x37, 0x55, 0xC1, 0x70, 0x9A, 0x32,
0x27, 0xCE, 0xBD, 0x1A, 0x7F, 0x3A, 0xD8, 0xA8, 0x9C, 0x9D, 0xCD, 0x66, 0x6F, 0x2B, 0x86, 0xD6,
0x8C, 0xD1, 0x41, 0x1D, 0xB8, 0x1B, 0x8F, 0x72, 0x7B, 0xF0, 0xE6, 0xAF, 0xFA, 0x3A, 0x7C, 0xC1,
0xEB, 0x7A, 0x78, 0x2D, 0x57, 0x38, 0xC0, 0xBB, 0xE3, 0x5C, 0xD9, 0xEF, 0xE2, 0x6E, 0xA1, 0x8B,
0xF7, 0xA6, 0xBB, 0x8B, 0xC2, 0xF8, 0xE8, 0x19, 0xDD, 0x01, 0x3E, 0x8C, 0x00, 0xEE, 0x8E, 0x86,
0x96, 0x39, 0x26, 0xAD, 0x3A, 0x00, 0xE9, 0xBA, 0x3B, 0x0F, 0x09, 0x03, 0x94, 0xB7, 0xF0, 0x37,
0xF2, 0xCD, 0xA0, 0xFA, 0xCE, 0x61, 0x1C, 0x1A, 0xBB, 0x67, 0xF3, 0xC2, 0xC2, 0xE4, 0x11, 0x86,
0x99, 0xB8, 0x0E, 0xFB, 0xA8, 0x31, 0x76, 0x33, 0xA8, 0x7E, 0x7E, 0x62, 0xF1, 0x70, 0x79, 0x65,
0x1D, 0xD9, 0x36, 0x59, 0x1C, 0x64, 0x92, 0x5D, 0x94, 0x14, 0xBF, 0x4C, 0xB6, 0xD3, 0xC5, 0x01,
0x32, 0xAE, 0x07, 0x67, 0x17, 0x39, 0x93, 0xDC, 0x3D, 0x5E, 0x15, 0x6E, 0xF1, 0x6B, 0x54, 0x2C,
0xAE, 0x46, 0x0C, 0x3D, 0xB5, 0xEC, 0x83, 0xC9, 0x2B, 0xD4, 0xE1, 0xA3, 0x7A, 0x0A, 0xC0, 0x3A,
0xBD, 0xB7, 0x0E, 0x2C, 0xCC, 0x75, 0x61, 0x1D, 0x23, 0x98, 0x18, 0x64, 0x4F, 0x22, 0xD4, 0x33,
0x1E, 0xA6, 0x0B, 0xAA, 0x64, 0x48, 0xB7, 0x43, 0xB0, 0x94, 0xF4, 0xF5, 0x86, 0xCF, 0x37, 0x08,
0xE2, 0xF6, 0x98, 0x17, 0xC2, 0xCF, 0xC8, 0x56, 0xCF, 0x2F, 0xD3, 0x90, 0xDF, 0x4D, 0x5E, 0xA6,
0x66, 0x12, 0xAD, 0x63, 0x33, 0xF2, 0x64, 0xB1, 0x08, 0xAB, 0x12, 0x99, 0x79, 0x9E, 0xFC, 0xB5,
0xDE, 0x96, 0xB2, 0x8E, 0x61, 0x38, 0x41, 0x05, 0x6C, 0x0D, 0x8C, 0x78, 0x5B, 0x8E, 0xEB, 0xE8,
0x71, 0x3B, 0x17, 0xDB, 0x86, 0x66, 0xE3, 0xBE, 0x9C, 0x77, 0x9B, 0x60, 0xC7, 0x4B, 0x88, 0x95,
0x58, 0xAF, 0x2D, 0x92, 0xCB, 0xCB, 0x36, 0x78, 0x20, 0xBB, 0x5B, 0x4C, 0x5A, 0xD8, 0x5C, 0x05,
0xB7, 0x2A, 0xD8, 0x9F, 0x69, 0xF8, 0x32, 0xBD, 0x7C, 0xA7, 0xD9, 0x0B, 0xEC, 0x12, 0xDA, 0xA4,
0xB5, 0x9A, 0xE6, 0x5A, 0xC3, 0x49, 0xF7, 0xEE, 0xBF, 0xF6, 0x72, 0x8A, 0x23, 0x8F, 0xEC, 0x68,
0xE0, 0xEE, 0xFA, 0xDE, 0x53, 0xE9, 0xCC, 0x95, 0x6A, 0x89, 0xA6, 0xBA, 0xD5, 0x3A, 0xB2, 0x97,
0x9A, 0x16, 0x9B, 0x09, 0x39, 0x17, 0xBC, 0x75, 0x87, 0x53, 0x46, 0x7D, 0xCC, 0x41, 0x1B, 0xB9,
0x1D, 0x3C, 0xF6, 0xD0, 0x45, 0xBF, 0x75, 0xB8, 0xA7, 0x7B, 0xD9, 0xCF, 0xED, 0x24, 0xCE, 0x0B,
0xAF, 0xFE, 0x4A, 0x17, 0xDB, 0xC0, 0x56, 0xC8, 0x49, 0xFF, 0xF1, 0xCD, 0x5F, 0xBC, 0x2B, 0x83,
0xB6, 0x4E, 0x51, 0x95, 0x27, 0x52, 0xB1, 0xB5, 0x66, 0x48, 0x68, 0xA9, 0xC1, 0xE7, 0x9C, 0xDB,
0x26, 0x72, 0x51, 0x4D, 0x59, 0x3B, 0x56, 0x01, 0xC9, 0x82, 0x45, 0x8D, 0xF1, 0xD5, 0x99, 0x58,
0xE9, 0x68, 0x25, 0xDC, 0xD1, 0x60, 0xB1, 0x12, 0x25, 0x67, 0x43, 0x98, 0x33, 0x2E, 0xE4, 0x72,
0x16, 0x6C, 0x98, 0x23, 0x91, 0x82, 0x21, 0x26, 0x30, 0x3C, 0x8E, 0xF4, 0xBD, 0xB1, 0xA6, 0x1D,
0xCB, 0x5B, 0x7D, 0xFB, 0xAE, 0x2E, 0xE0, 0xDA, 0x39, 0xFD, 0x21, 0xAA, 0x1D, 0x05, 0x25, 0xE6,
0xE8, 0x2A, 0x0B, 0xC7, 0xCD, 0x31, 0x56, 0x19, 0xFC, 0x86, 0xE2, 0xA8, 0x64, 0x4E, 0xC8, 0x50,
0xE5, 0x65, 0xE9, 0x28, 0xFE, 0xC3, 0x66, 0x54, 0xC8, 0xE9, 0xE6, 0x4C, 0xDE, 0x9D, 0x00, 0xA7,
0x58, 0x12, 0x26, 0x2E, 0x17, 0xAF, 0x3C, 0x9B, 0x27, 0x0D, 0x8E, 0x33, 0x65, 0xF1, 0xD7, 0x43,
0x84, 0xF0, 0x01, 0x0B, 0xB3, 0x8E, 0xB9, 0xF2, 0xFF, 0xEC, 0xE6, 0x18, 0x01, 0x62, 0x0E, 0xAD,
0xE2, 0x3B, 0x2D, 0xEA, 0x9C, 0xA4, 0x81, 0xE8, 0xC8, 0xA2, 0x4B, 0x8F, 0xD5, 0xAE, 0x77, 0xFD,
0x1A, 0x0D, 0x17, 0xC9, 0x5D, 0x2C, 0x6B, 0xE4, 0xEB, 0x48, 0xED, 0xCB, 0x0B, 0x8C, 0x13, 0xB9,
0x73, 0x84, 0x6E, 0xF0, 0x08, 0x66, 0x6A, 0x66, 0xEF, 0xAF, 0xFF, 0x06, 0x67, 0xED, 0x55, 0xC8,
0xC9, 0xD9, 0x65, 0x03, 0xA1, 0x7B, 0x56, 0xBC, 0xF9, 0x50, 0x71, 0xBB, 0xD1, 0xE5, 0x27, 0x7A,
0x43, 0xA0, 0x5E, 0x35, 0x97, 0x2F, 0x7B, 0xD1, 0x9B, 0x83, 0x47, 0x2B, 0x12, 0xB0, 0xF0, 0x40,
0x7B, 0x1D, 0x14, 0xD3, 0x3F, 0xE5, 0x8C, 0xE6, 0xE4, 0xF0, 0x12, 0x39, 0xA4, 0x77, 0x59, 0x1C,
0x1F, 0xEB, 0xA2, 0xF9, 0x57, 0xE6, 0x32, 0x88, 0x68, 0xA7, 0xBC, 0xEA, 0xD1, 0x95, 0xDB, 0xA0,
0x0B, 0xBB, 0xB0, 0xF1, 0x16, 0xA7, 0x37, 0x6C, 0xC0, 0xB6, 0x8A, 0xAA, 0x58, 0x6C, 0xAB, 0x9E,
0xAF, 0xC0, 0xEB, 0x3D, 0xCA, 0x87, 0x1A, 0x88, 0xC3, 0x7C, 0xB2, 0xFB, 0x7F, 0xF7, 0xA2, 0x51,
0x1F, 0xAC, 0x09, 0x28, 0xBD, 0x57, 0xF0, 0xEE, 0xC7, 0x82, 0xF1, 0x2C, 0x60, 0xF5, 0x6F, 0xA2,
0xDA, 0x49, 0xE3, 0xC5, 0x8E, 0x6D, 0xCE, 0xA3, 0xB6, 0x75, 0x1D, 0xD8, 0x0B, 0x26, 0x9F, 0xC7,
0x80, 0xC1, 0xE5, 0x8E, 0x9D, 0x7A, 0xB7, 0x53, 0x57, 0x3C, 0x96, 0x01, 0x8D, 0x8B, 0xEE, 0xD7,
0xE4, 0x0C, 0x38, 0x24, 0xE8, 0x54, 0x8B, 0x2C, 0xB4, 0xFD, 0x16, 0xBA, 0xC9, 0x33, 0xB2, 0xB1,
0xF0, 0x9F, 0xC8, 0x37, 0x62, 0xF0, 0xC9, 0x3E, 0x58, 0xAD, 0x2E, 0x7A, 0xB6, 0x3B, 0x8F, 0x78,
0xA9, 0x95, 0xEF, 0xDF, 0x7F, 0xF4, 0xE6, 0x21, 0x49, 0xFF, 0x0D, 0xB6, 0xF9, 0xE1, 0x69, 0xD2,
0x3F, 0xB3, 0xAB, 0xAB, 0x9C, 0xBA, 0x7B, 0x34, 0xFB, 0xC9, 0xEA, 0xEA, 0x98, 0xDC, 0x45, 0x80,
0x6F, 0xA2, 0xA5, 0xA3, 0xBB, 0x24, 0x70, 0x99, 0x3B, 0xD1, 0xDA, 0x7C, 0x78, 0xC9, 0x77, 0x1F,
0xC3, 0xC8, 0x86, 0x40, 0xDE, 0x68, 0xC1, 0xF7, 0x9C, 0xB3, 0xE3, 0xFB, 0x1F, 0x6A, 0xDD, 0xF9,
0x1C, 0x5C, 0x9F, 0xD9, 0x98, 0x6B, 0xCD, 0x81, 0x1E, 0xD2, 0xC3, 0xBB, 0x02, 0xBD, 0x78, 0x8F,
0x07, 0x98, 0x30, 0x16, 0x94, 0x4B, 0xD7, 0xCB, 0xC4, 0xA0, 0x14, 0x02, 0x28, 0xAE, 0xD0, 0x2A,
0xFB, 0xC2, 0x53, 0x60, 0x81, 0x6A, 0x77, 0xD6, 0x95, 0x16, 0x25, 0x8F, 0xEB, 0xE4, 0x3F, 0xC7,
0x1F, 0x2C, 0x0C, 0x2B, 0x8A, 0x74, 0xFC, 0xB1, 0x33, 0xFB, 0xFE, 0x33, 0xE7, 0xE1, 0xFA, 0xC4,
0x2B, 0xFA, 0x83, 0x3B, 0xE1, 0x17, 0x5A, 0x32, 0x06, 0x5F, 0x76, 0x75, 0x10, 0xCE, 0xC9, 0x87,
0x5F, 0x60, 0x73, 0xFC, 0x98, 0xA0, 0x12, 0xA3, 0x42, 0xA6, 0x6C, 0x23, 0x7B, 0x0D, 0xE7, 0xA1,
0x9B, 0xD3, 0x5D, 0xB5, 0x7E, 0x80, 0xC0, 0x36, 0x26, 0x29, 0x96, 0xD4, 0x2F, 0x23, 0x16, 0x0E,
0x2C, 0xCF, 0xE8, 0x8F, 0x31, 0xF7, 0x40, 0x46, 0x82, 0xD3, 0x26, 0xE5, 0x35, 0x52, 0x84, 0x16,
0xAA, 0xC8, 0x8A, 0x99, 0x7E, 0x20, 0xE8, 0xE4, 0x00, 0x2F, 0x27, 0x20, 0xC1, 0xCA, 0x54, 0x37,
0xE6, 0x4B, 0xFC, 0xFC, 0x85, 0x9C, 0x70, 0x12, 0xAD, 0xF5, 0xD9, 0xF8, 0xB4, 0xDA, 0x12, 0x99,
0xA9, 0xFD, 0x71, 0xC5, 0xAB, 0x4B, 0xA9, 0xDA, 0x7F, 0x6A, 0x30, 0x71, 0x01, 0x4B, 0xD6, 0xB7,
0xEE, 0xAD, 0x2E, 0xD0, 0xB5, 0xBA, 0x6D, 0x68, 0x76, 0x9A, 0x89, 0xEE, 0x35, 0x67, 0x00, 0x0C,
0xF8, 0x5E, 0x33, 0x11, 0xD8, 0x1E, 0x9A, 0x4E, 0xEF, 0x3A, 0x42, 0xA5, 0x36, 0x5F, 0xDA, 0x6F,
0xC4, 0x4F, 0x50, 0x54, 0xA2, 0x8A, 0xCE, 0x48, 0x31, 0xC9, 0x51, 0x98, 0xA3, 0x0E, 0xEA, 0x35,
0x8F, 0xE5, 0x6C, 0x87, 0x2A, 0x4C, 0xBB, 0xA4, 0xD6, 0xB3, 0xCC, 0x4C, 0x2B, 0xB6, 0x99, 0x0D,
0xAB, 0x4D, 0xFD, 0xEA, 0x13, 0xB7, 0x7B, 0xC3, 0xB1, 0x19, 0xD7, 0xD0, 0x9D, 0x63, 0xD7, 0xE1,
0xAF, 0x8B, 0x8D, 0xBD, 0xB1, 0xE3, 0x92, 0x97, 0x07, 0x1F, 0xD3, 0x26, 0x3C, 0x5E, 0x4C, 0xD2,
0x65, 0x83, 0xB4, 0x91, 0xB6, 0x64, 0x54, 0x65, 0x11, 0x0D, 0x46, 0x90, 0xBC, 0xD5, 0x31, 0xE1,
0x26, 0x5A, 0xD1, 0xA2, 0x5C, 0x0F, 0x6B, 0xE6, 0xD1, 0x1B, 0xB4, 0x09, 0x10, 0xE8, 0x48, 0x80,
0x5F, 0x7D, 0xC8, 0x4A, 0xBF, 0x43, 0xA0, 0x02, 0xC6, 0x02, 0x28, 0x50, 0xF0, 0xF3, 0x49, 0xC2,
0x8F, 0x41, 0xE7, 0x3A, 0x25, 0x96, 0x8F, 0x74, 0x91, 0xF1, 0x9C, 0x4C, 0xAE, 0xDC, 0x6B, 0x4F,
0xB5, 0xE2, 0xCE, 0x14, 0x5C, 0x97, 0xAC, 0xCD, 0xA3, 0x61, 0xFB, 0xD4, 0x16, 0xF5, 0x98, 0x35,
0x13, 0x2D, 0x16, 0x96, 0x53, 0xF1, 0x70, 0xA2, 0xC8, 0x3A, 0xD1, 0xA8, 0x9D, 0xE8, 0x81, 0xAF,
0x9E, 0xEE, 0x81, 0x15, 0xFC, 0xD3, 0x7E, 0x68, 0x7F, 0xB1, 0xAE, 0xC4, 0xF4, 0x04, 0xB3, 0x11,
0x4C, 0xD7, 0x40, 0x37, 0x53, 0x29, 0xF5, 0x0C, 0x8B, 0x75, 0x19, 0xFD, 0x54, 0x2F, 0x98, 0x69,
0x0F, 0x7C, 0x6B, 0xEA, 0x05, 0x17, 0xA8, 0xB4, 0xFE, 0x71, 0xD2, 0xCF, 0xCA, 0xA9, 0x77, 0xBF,
0x3D, 0xF6, 0x34, 0x7A, 0xF9, 0xDA, 0xA1, 0x86, 0x5A, 0x14, 0xFA, 0x7D, 0xCC, 0x8A, 0xAD, 0x17,
0x83, 0xB2, 0x22, 0x45, 0xDD, 0x1F, 0xA3, 0x24, 0x46, 0xF9, 0xBB, 0x85, 0x90, 0x14, 0xF3, 0x54,
0xD8, 0x03, 0xC4, 0x7E, 0xCD, 0x8E, 0xE0, 0xE3, 0x2D, 0x3E, 0x84, 0xB7, 0x2A, 0x3E, 0x6C, 0x29,
0x61, 0xAB, 0xEC, 0x6D, 0xA7, 0x33, 0x81, 0x9B, 0xD9, 0xBD, 0xC0, 0x87, 0xE8, 0x1D, 0xC3, 0x07,
0x83, 0x4E, 0x86, 0xCD, 0xF6, 0x2E, 0x1E, 0x02, 0x14, 0xF4, 0x78, 0x80, 0xBD, 0xA1, 0xD0, 0x66,
0x41, 0x5F, 0x1B, 0x76, 0x72, 0x85, 0x8B, 0x50, 0x3B, 0xF6, 0x44, 0x9E, 0x61, 0xCD, 0x42, 0x05,
0x56, 0x2C, 0xB8, 0xF3, 0x73, 0x8D, 0xF6, 0x10, 0x29, 0x3F, 0x97, 0xB0, 0xFE, 0x6A, 0xD4, 0xDA,
0x6E, 0xA8, 0x45, 0xB1, 0x4B, 0x91, 0xDD, 0x44, 0xA1, 0xFA, 0x81, 0x1E, 0xF1, 0x3D, 0x3D, 0xF3,
0x5D, 0x55, 0x37, 0xCE, 0x4E, 0x14, 0x9E, 0x8F, 0x74, 0x62, 0xEB, 0x23, 0x8E, 0x9B, 0x9B, 0x6A,
0x02, 0x97, 0x14, 0xDD, 0x8A, 0xAF, 0xFC, 0x25, 0x9B, 0x1E, 0xCF, 0xB0, 0xB3, 0xF2, 0xE8, 0x25,
0xE4, 0xE4, 0x98, 0xD3, 0x54, 0x96, 0x93, 0x54, 0x2F, 0x14, 0x4E, 0xBF, 0xB0, 0x8A, 0x46, 0x42,
0xF9, 0x7D, 0x83, 0xC2, 0x6C, 0xB9, 0x95, 0xE6, 0xBE, 0xD9, 0xDA, 0x44, 0xF9, 0x66, 0x20, 0x5C,
0xFA, 0x46, 0xE3, 0xDD, 0xAB, 0xFC, 0xC7, 0x8D, 0x6C, 0x19, 0xC6, 0xB1, 0x78, 0x8B, 0x1D, 0x73,
0x70, 0x1B, 0x1E, 0x9E, 0xCB, 0xA3, 0xCA, 0x3B, 0x6E, 0x64, 0xF7, 0x23, 0xAF, 0xCD, 0xF2, 0xCD,
0x4D, 0xAF, 0x0D, 0x9A, 0xF8, 0xD2, 0x4D, 0xD8, 0xC9, 0xA5, 0xEA, 0x77, 0x58, 0xF3, 0xC5, 0x92,
0x95, 0x44, 0x66, 0x06, 0x1E, 0x5A, 0x12, 0x7E, 0x39, 0xE1, 0x1A, 0xDD, 0x48, 0xFC, 0xAC, 0x66,
0x96, 0x87, 0x44, 0x8E, 0xC2, 0x11, 0x51, 0x22, 0xE7, 0x53, 0x38, 0x92, 0x05, 0x72, 0xBE, 0x0A,
0x87, 0x3D, 0x14, 0x0E, 0x7B, 0x20, 0x1C, 0x46, 0x08, 0xD7, 0x10, 0x39, 0x8E, 0x11, 0x85, 0x03,
0x72, 0x10, 0x8E, 0xC8, 0xB5, 0x8A, 0x5C, 0xEB, 0x90, 0x7B, 0xB1, 0x70, 0x53, 0xBD, 0xA1, 0x56,
0x9D, 0x8D, 0xCE, 0xF5, 0xF5, 0xBD, 0x0A, 0x4E, 0xB7, 0x14, 0x92, 0xDC, 0x3E, 0x5E, 0x95, 0xD3,
0xF7, 0xD0, 0x9E, 0x10, 0xC4, 0x9F, 0x74, 0x92, 0x1A, 0x29, 0x1F, 0xE0, 0x5F, 0xF9, 0xB6, 0xC8,
0xD1, 0xCD, 0x84, 0xCD, 0x59, 0x66, 0x47, 0x4F, 0xFE, 0x05, 0x45, 0x8F, 0xB1, 0x0D, 0xC3, 0x20,
0x10, 0x45, 0xBF, 0xE5, 0x82, 0x82, 0x82, 0x11, 0x3C, 0x82, 0x27, 0x88, 0xEC, 0xC9, 0x82, 0x47,
0xC8, 0x46, 0x24, 0x1B, 0x90, 0x0D, 0xE8, 0x22, 0xA5, 0xA6, 0xA0, 0x08, 0xFE, 0xB9, 0xE3, 0xA4,
0xE4, 0x24, 0xF4, 0x90, 0xDE, 0x13, 0x3A, 0x80, 0xDF, 0xCC, 0xBB, 0x31, 0x64, 0xE3, 0x56, 0x8D,
0xEC, 0xA6, 0xDF, 0x69, 0x04, 0x01, 0x7E, 0x04, 0x17, 0x60, 0x04, 0x7D, 0x5C, 0x31, 0x33, 0x96,
0x55, 0x82, 0x40, 0x7E, 0xF4, 0x85, 0x8D, 0x3C, 0xBD, 0x04, 0x94, 0xF1, 0x5D, 0xB4, 0x8C, 0xE3,
0x2E, 0x9A, 0xDD, 0x33, 0x8B, 0xE6, 0x2D, 0xB0, 0x46, 0x32, 0x63, 0x61, 0x5B, 0xC8, 0x03, 0x89,
0xC5, 0x09, 0xF5, 0x4C, 0xE4, 0x3D, 0xF1, 0x04, 0x22, 0x1F, 0x64, 0x83, 0x34, 0x4F, 0xB2, 0x00,
0x8E, 0x2F, 0x4D, 0x21, 0x81, 0x6A, 0x09, 0x6A, 0x6C, 0xCA, 0xA5, 0xAC, 0x45, 0xE9, 0xCA, 0x7A,
0x28, 0xA7, 0x7A, 0xB5, 0xFD, 0x4D, 0x6B, 0x60, 0x74, 0xC7, 0xFF, 0xCF, 0xF8, 0x02,
};
static const EpdGlyph bookerly_16_italicGlyphs[] = {
{ 0, 0, 0, 0, 0, 0, 0 }, //
{ 0, 0, 0, 0, 0, 0, 0 }, // 
{ 0, 0, 7, 0, 0, 0, 0 }, //
{ 0, 0, 7, 0, 0, 0, 0 }, //
{ 0, 0, 0, 0, 0, 0, 0 }, // 
{ 0, 0, 7, 0, 0, 0, 0 }, //
fix: force auto-hinting for Bookerly to fix inconsistent stem widths (#1098) ## Summary Bookerly's native TrueType hinting is effectively a no-op at the sizes used here, causing FreeType to place stems at inconsistent sub-pixel positions. This results in the 'k' stem (8-bit fringe: 0x38=56) falling just below the 2-bit quantization threshold while 'l' and 'h' stems (fringes: 0x4C=76, 0x40=64) land above it --- making 'k' visibly narrower (2.00px vs 2.33px effective width). FreeType's auto-hinter snaps all stems to consistent grid positions, normalizing effective stem width to 2.67px across all glyphs. Adds --force-autohint flag to fontconvert.py and applies it to Bookerly only. NotoSans, OpenDyslexic, and Ubuntu fonts are unaffected. Here is an example of before/after. Take notice of the vertical stems on characters like `l`, `k`, `n`, `i`, etc. The font is Bookerly 12pt regular: **BEFORE**: ![before](https://github.com/user-attachments/assets/65b2acab-ad95-489e-885e-e3a0163cc252) **AFTER**: ![after](https://github.com/user-attachments/assets/d09a8b5d-40af-4a7d-b622-e1b2cabcce85) Claude generated this script to quantitatively determine that this change makes the vertical stems on a variety of characters more consistent for Bookerly _only_. <details> <summary>Python script</summary> ```python #!/usr/bin/env python3 """Compare stem consistency across all font families with and without auto-hinting. Run from repo root: python3 compare_all_fonts.py """ import freetype DPI = 150 CHARS = ["k", "l", "h", "i", "b", "d"] SIZES = [12, 14, 16, 18] FONTS = { "Bookerly": "lib/EpdFont/builtinFonts/source/Bookerly/Bookerly-Regular.ttf", "NotoSans": "lib/EpdFont/builtinFonts/source/NotoSans/NotoSans-Regular.ttf", "OpenDyslexic": "lib/EpdFont/builtinFonts/source/OpenDyslexic/OpenDyslexic-Regular.otf", "Ubuntu": "lib/EpdFont/builtinFonts/source/Ubuntu/Ubuntu-Regular.ttf", } MODES = { "default": freetype.FT_LOAD_RENDER, "autohint": freetype.FT_LOAD_RENDER | freetype.FT_LOAD_FORCE_AUTOHINT, } def q4to2(v): if v >= 12: return 3 elif v >= 8: return 2 elif v >= 4: return 1 else: return 0 def get_stem_eff(face, char, flags): gi = face.get_char_index(ord(char)) if gi == 0: return None face.load_glyph(gi, flags) bm = face.glyph.bitmap w, h = bm.width, bm.rows if w == 0 or h == 0: return None p2 = [] for y in range(h): row = [] for x in range(w): row.append(q4to2(bm.buffer[y * bm.pitch + x] >> 4)) p2.append(row) # Measure leftmost stem in stable middle rows mid_start, mid_end = h // 4, h - h // 4 widths = [] for y in range(mid_start, mid_end): first = next((x for x in range(w) if p2[y][x] > 0), -1) if first < 0: continue last = first for x in range(first, w): if p2[y][x] > 0: last = x else: break eff = sum(p2[y][x] for x in range(first, last + 1)) / 3.0 widths.append(eff) return round(sum(widths) / len(widths), 2) if widths else None def main(): for font_name, font_path in FONTS.items(): try: freetype.Face(font_path) except Exception: print(f"\n {font_name}: SKIPPED (file not found)") continue print(f"\n{'=' * 80}") print(f" {font_name}") print(f"{'=' * 80}") for size in SIZES: print(f"\n {size}pt:") print(f" {'':6s}", end="") for c in CHARS: print(f" '{c}' ", end="") print(" | spread") for mode_name, flags in MODES.items(): face = freetype.Face(font_path) face.set_char_size(size << 6, size << 6, DPI, DPI) vals = [] print(f" {mode_name:6s}", end="") for c in CHARS: v = get_stem_eff(face, c, flags) vals.append(v) print(f" {v:5.2f}" if v else " N/A", end="") valid = [v for v in vals if v is not None] spread = max(valid) - min(valid) if len(valid) >= 2 else 0 marker = " <-- inconsistent" if spread > 0.5 else "" print(f" | {spread:.2f}{marker}") if __name__ == "__main__": main() ``` </details> Here are the results. The table compares how the font-generation `autohint` flag affects the range of widths of various characters. Lower `spread` mean that glyph stroke widths should appear more consistent. ``` Spread = max stem width - min stem width across glyphs (lower = more consistent): ┌──────────────┬──────┬─────────┬──────────┬──────────┐ │ Font │ Size │ Default │ Autohint │ Winner │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ Bookerly │ 12pt │ 1.49 │ 1.12 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 1.39 │ 1.13 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 1.38 │ 1.16 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.90 │ 1.58 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ NotoSans │ 12pt │ 1.16 │ 0.94 │ mixed │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 0.83 │ 1.14 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 1.41 │ 1.51 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.74 │ 1.63 │ mixed │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ OpenDyslexic │ 12pt │ 2.22 │ 1.44 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 2.57 │ 3.29 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 3.13 │ 2.60 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 3.21 │ 3.23 │ ~tied │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ Ubuntu │ 12pt │ 1.25 │ 1.31 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 1.41 │ 1.64 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 2.21 │ 1.71 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.80 │ 1.71 │ autohint │ └──────────────┴──────┴─────────┴──────────┴──────────┘ ``` --- ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? I used AI to make sure I'm not doing something stupid, since I'm not a typography expert. I made the changes though.
2026-02-24 06:13:08 +11:00
{ 9, 26, 10, 2, 26, 59, 0 }, // !
{ 11, 11, 13, 2, 24, 31, 59 }, // "
{ 21, 22, 21, 0, 20, 116, 90 }, // #
{ 19, 35, 21, 1, 28, 167, 206 }, // $
{ 28, 28, 32, 2, 26, 196, 373 }, // %
{ 27, 28, 30, 2, 26, 189, 569 }, // &
{ 5, 11, 7, 2, 24, 14, 758 }, // '
{ 15, 35, 13, 1, 28, 132, 772 }, // (
{ 15, 35, 13, -3, 28, 132, 904 }, // )
{ 11, 11, 13, 2, 25, 31, 1036 }, // *
{ 15, 15, 21, 3, 19, 57, 1067 }, // +
{ 8, 10, 10, -1, 4, 20, 1124 }, // ,
{ 11, 3, 12, 1, 10, 9, 1144 }, // -
{ 5, 5, 10, 2, 5, 7, 1153 }, // .
{ 19, 27, 17, -1, 25, 129, 1160 }, // /
{ 19, 24, 21, 1, 24, 114, 1289 }, // 0
{ 14, 24, 21, 2, 24, 84, 1403 }, // 1
{ 19, 24, 21, 0, 24, 114, 1487 }, // 2
{ 18, 24, 21, 0, 24, 108, 1601 }, // 3
{ 20, 24, 21, 0, 24, 120, 1709 }, // 4
{ 18, 24, 21, 1, 24, 108, 1829 }, // 5
{ 19, 24, 21, 2, 24, 114, 1937 }, // 6
{ 17, 24, 21, 4, 24, 102, 2051 }, // 7
{ 19, 24, 21, 1, 24, 114, 2153 }, // 8
{ 19, 24, 21, 0, 24, 114, 2267 }, // 9
{ 8, 18, 10, 2, 18, 36, 2381 }, // :
{ 11, 23, 10, -1, 18, 64, 2417 }, // ;
{ 15, 16, 21, 3, 20, 60, 2481 }, // <
{ 15, 9, 21, 3, 16, 34, 2541 }, // =
{ 15, 16, 21, 3, 20, 60, 2575 }, // >
{ 12, 24, 14, 2, 24, 72, 2635 }, // ?
{ 30, 30, 32, 2, 24, 225, 2707 }, // @
{ 25, 24, 24, -2, 24, 150, 2932 }, // A
{ 20, 24, 21, -1, 24, 120, 3082 }, // B
{ 20, 24, 21, 1, 24, 120, 3202 }, // C
{ 24, 24, 24, -1, 24, 144, 3322 }, // D
{ 22, 24, 20, -1, 24, 132, 3466 }, // E
{ 20, 24, 18, -1, 24, 120, 3598 }, // F
{ 21, 24, 24, 1, 24, 126, 3718 }, // G
{ 29, 24, 27, -1, 24, 174, 3844 }, // H
{ 15, 24, 12, -1, 24, 90, 4018 }, // I
{ 20, 30, 12, -6, 24, 150, 4108 }, // J
{ 26, 24, 23, -1, 24, 156, 4258 }, // K
{ 19, 24, 19, -1, 24, 114, 4414 }, // L
{ 32, 24, 30, -2, 24, 192, 4528 }, // M
{ 28, 25, 25, -1, 24, 175, 4720 }, // N
{ 23, 24, 25, 1, 24, 138, 4895 }, // O
{ 21, 24, 20, -1, 24, 126, 5033 }, // P
{ 28, 32, 25, 1, 24, 224, 5159 }, // Q
{ 22, 24, 22, -1, 24, 132, 5383 }, // R
{ 17, 24, 18, 0, 24, 102, 5515 }, // S
{ 21, 24, 21, 2, 24, 126, 5617 }, // T
{ 24, 24, 26, 3, 24, 144, 5743 }, // U
{ 24, 24, 24, 2, 24, 144, 5887 }, // V
{ 35, 24, 35, 2, 24, 210, 6031 }, // W
{ 27, 24, 22, -3, 24, 162, 6241 }, // X
{ 22, 24, 22, 2, 24, 132, 6403 }, // Y
{ 20, 25, 19, -1, 24, 125, 6535 }, // Z
{ 14, 33, 11, -2, 27, 116, 6660 }, // [
{ 13, 27, 17, 2, 25, 88, 6776 }, // <backslash>
{ 14, 33, 11, -2, 27, 116, 6864 }, // ]
{ 16, 16, 21, 2, 22, 64, 6980 }, // ^
{ 17, 3, 17, 0, -1, 13, 7044 }, // _
{ 7, 8, 21, 7, 28, 14, 7057 }, // `
{ 18, 18, 19, 1, 18, 81, 7071 }, // a
{ 18, 27, 18, 0, 27, 122, 7152 }, // b
{ 13, 18, 15, 1, 18, 59, 7274 }, // c
{ 18, 27, 20, 1, 27, 122, 7333 }, // d
{ 14, 18, 16, 1, 18, 63, 7455 }, // e
{ 24, 35, 14, -6, 27, 210, 7518 }, // f
{ 22, 26, 16, -3, 18, 143, 7728 }, // g
{ 18, 27, 20, 1, 27, 122, 7871 }, // h
{ 10, 27, 11, 1, 27, 68, 7993 }, // i
{ 17, 35, 10, -6, 27, 149, 8061 }, // j
{ 17, 27, 18, 1, 27, 115, 8210 }, // k
{ 9, 27, 10, 1, 27, 61, 8325 }, // l
{ 28, 18, 30, 1, 18, 126, 8386 }, // m
{ 19, 18, 21, 1, 18, 86, 8512 }, // n
{ 16, 18, 18, 1, 18, 72, 8598 }, // o
{ 20, 26, 19, -2, 18, 130, 8670 }, // p
{ 17, 26, 18, 1, 18, 111, 8800 }, // q
{ 14, 18, 14, 1, 18, 63, 8911 }, // r
{ 13, 18, 14, 0, 18, 59, 8974 }, // s
{ 13, 23, 13, 1, 23, 75, 9033 }, // t
{ 19, 18, 20, 1, 18, 86, 9108 }, // u
{ 17, 19, 17, 0, 18, 81, 9194 }, // v
{ 25, 19, 26, 0, 18, 119, 9275 }, // w
{ 20, 18, 19, -1, 18, 90, 9394 }, // x
{ 20, 26, 18, -3, 18, 130, 9484 }, // y
{ 16, 18, 16, 0, 18, 72, 9614 }, // z
{ 13, 34, 13, 2, 28, 111, 9686 }, // {
{ 10, 31, 10, 0, 27, 78, 9797 }, // |
{ 13, 34, 13, -1, 28, 111, 9875 }, // }
{ 16, 6, 21, 2, 15, 24, 9986 }, // ~
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
{ 0, 0, 7, 0, 0, 0, 0 }, //  
{ 10, 26, 10, -1, 18, 65, 0 }, // ¡
fix: force auto-hinting for Bookerly to fix inconsistent stem widths (#1098) ## Summary Bookerly's native TrueType hinting is effectively a no-op at the sizes used here, causing FreeType to place stems at inconsistent sub-pixel positions. This results in the 'k' stem (8-bit fringe: 0x38=56) falling just below the 2-bit quantization threshold while 'l' and 'h' stems (fringes: 0x4C=76, 0x40=64) land above it --- making 'k' visibly narrower (2.00px vs 2.33px effective width). FreeType's auto-hinter snaps all stems to consistent grid positions, normalizing effective stem width to 2.67px across all glyphs. Adds --force-autohint flag to fontconvert.py and applies it to Bookerly only. NotoSans, OpenDyslexic, and Ubuntu fonts are unaffected. Here is an example of before/after. Take notice of the vertical stems on characters like `l`, `k`, `n`, `i`, etc. The font is Bookerly 12pt regular: **BEFORE**: ![before](https://github.com/user-attachments/assets/65b2acab-ad95-489e-885e-e3a0163cc252) **AFTER**: ![after](https://github.com/user-attachments/assets/d09a8b5d-40af-4a7d-b622-e1b2cabcce85) Claude generated this script to quantitatively determine that this change makes the vertical stems on a variety of characters more consistent for Bookerly _only_. <details> <summary>Python script</summary> ```python #!/usr/bin/env python3 """Compare stem consistency across all font families with and without auto-hinting. Run from repo root: python3 compare_all_fonts.py """ import freetype DPI = 150 CHARS = ["k", "l", "h", "i", "b", "d"] SIZES = [12, 14, 16, 18] FONTS = { "Bookerly": "lib/EpdFont/builtinFonts/source/Bookerly/Bookerly-Regular.ttf", "NotoSans": "lib/EpdFont/builtinFonts/source/NotoSans/NotoSans-Regular.ttf", "OpenDyslexic": "lib/EpdFont/builtinFonts/source/OpenDyslexic/OpenDyslexic-Regular.otf", "Ubuntu": "lib/EpdFont/builtinFonts/source/Ubuntu/Ubuntu-Regular.ttf", } MODES = { "default": freetype.FT_LOAD_RENDER, "autohint": freetype.FT_LOAD_RENDER | freetype.FT_LOAD_FORCE_AUTOHINT, } def q4to2(v): if v >= 12: return 3 elif v >= 8: return 2 elif v >= 4: return 1 else: return 0 def get_stem_eff(face, char, flags): gi = face.get_char_index(ord(char)) if gi == 0: return None face.load_glyph(gi, flags) bm = face.glyph.bitmap w, h = bm.width, bm.rows if w == 0 or h == 0: return None p2 = [] for y in range(h): row = [] for x in range(w): row.append(q4to2(bm.buffer[y * bm.pitch + x] >> 4)) p2.append(row) # Measure leftmost stem in stable middle rows mid_start, mid_end = h // 4, h - h // 4 widths = [] for y in range(mid_start, mid_end): first = next((x for x in range(w) if p2[y][x] > 0), -1) if first < 0: continue last = first for x in range(first, w): if p2[y][x] > 0: last = x else: break eff = sum(p2[y][x] for x in range(first, last + 1)) / 3.0 widths.append(eff) return round(sum(widths) / len(widths), 2) if widths else None def main(): for font_name, font_path in FONTS.items(): try: freetype.Face(font_path) except Exception: print(f"\n {font_name}: SKIPPED (file not found)") continue print(f"\n{'=' * 80}") print(f" {font_name}") print(f"{'=' * 80}") for size in SIZES: print(f"\n {size}pt:") print(f" {'':6s}", end="") for c in CHARS: print(f" '{c}' ", end="") print(" | spread") for mode_name, flags in MODES.items(): face = freetype.Face(font_path) face.set_char_size(size << 6, size << 6, DPI, DPI) vals = [] print(f" {mode_name:6s}", end="") for c in CHARS: v = get_stem_eff(face, c, flags) vals.append(v) print(f" {v:5.2f}" if v else " N/A", end="") valid = [v for v in vals if v is not None] spread = max(valid) - min(valid) if len(valid) >= 2 else 0 marker = " <-- inconsistent" if spread > 0.5 else "" print(f" | {spread:.2f}{marker}") if __name__ == "__main__": main() ``` </details> Here are the results. The table compares how the font-generation `autohint` flag affects the range of widths of various characters. Lower `spread` mean that glyph stroke widths should appear more consistent. ``` Spread = max stem width - min stem width across glyphs (lower = more consistent): ┌──────────────┬──────┬─────────┬──────────┬──────────┐ │ Font │ Size │ Default │ Autohint │ Winner │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ Bookerly │ 12pt │ 1.49 │ 1.12 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 1.39 │ 1.13 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 1.38 │ 1.16 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.90 │ 1.58 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ NotoSans │ 12pt │ 1.16 │ 0.94 │ mixed │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 0.83 │ 1.14 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 1.41 │ 1.51 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.74 │ 1.63 │ mixed │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ OpenDyslexic │ 12pt │ 2.22 │ 1.44 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 2.57 │ 3.29 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 3.13 │ 2.60 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 3.21 │ 3.23 │ ~tied │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ Ubuntu │ 12pt │ 1.25 │ 1.31 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 1.41 │ 1.64 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 2.21 │ 1.71 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.80 │ 1.71 │ autohint │ └──────────────┴──────┴─────────┴──────────┴──────────┘ ``` --- ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? I used AI to make sure I'm not doing something stupid, since I'm not a typography expert. I made the changes though.
2026-02-24 06:13:08 +11:00
{ 17, 34, 21, 2, 27, 145, 65 }, // ¢
{ 22, 24, 21, -1, 24, 132, 210 }, // £
{ 21, 17, 21, 0, 20, 90, 342 }, // ¤
{ 22, 24, 21, 1, 24, 132, 432 }, // ¥
{ 10, 30, 10, 0, 27, 75, 564 }, // ¦
{ 15, 27, 17, 0, 24, 102, 639 }, // §
{ 12, 4, 21, 4, 26, 12, 741 }, // ¨
{ 25, 25, 26, 1, 24, 157, 753 }, // ©
{ 13, 16, 14, 1, 24, 52, 910 }, // ª
{ 16, 13, 17, 1, 16, 52, 962 }, // «
{ 15, 8, 21, 3, 16, 30, 1014 }, // ¬
{ 11, 3, 12, 1, 10, 9, 1044 }, // ­
{ 18, 18, 19, 1, 27, 81, 1053 }, // ®
{ 11, 3, 21, 5, 25, 9, 1134 }, // ¯
{ 12, 11, 18, 3, 24, 33, 1143 }, // °
{ 15, 20, 21, 3, 20, 75, 1176 }, // ±
{ 13, 15, 15, 1, 27, 49, 1251 }, // ²
{ 12, 15, 15, 1, 27, 45, 1300 }, // ³
{ 7, 9, 21, 7, 29, 16, 1345 }, // ´
{ 21, 26, 20, -1, 18, 137, 1361 }, // µ
{ 21, 29, 20, -1, 24, 153, 1498 }, // ¶
{ 6, 5, 10, 2, 12, 8, 1651 }, // ·
{ 7, 8, 21, 7, -1, 14, 1659 }, // ¸
{ 10, 16, 15, 2, 28, 40, 1673 }, // ¹
{ 13, 16, 15, 1, 24, 52, 1713 }, // º
{ 16, 13, 17, 0, 16, 52, 1765 }, // »
{ 33, 28, 36, 2, 26, 231, 1817 }, // ¼
{ 33, 27, 36, 2, 25, 223, 2048 }, // ½
{ 34, 28, 36, 1, 26, 238, 2271 }, // ¾
{ 11, 25, 14, 0, 18, 69, 2509 }, // ¿
{ 25, 33, 24, -2, 33, 207, 2578 }, // À
{ 25, 33, 24, -2, 33, 207, 2785 }, // Á
{ 25, 33, 24, -2, 33, 207, 2992 }, // Â
{ 25, 32, 24, -2, 32, 200, 3199 }, // Ã
{ 25, 31, 24, -2, 31, 194, 3399 }, // Ä
{ 25, 34, 24, -2, 34, 213, 3593 }, // Å
{ 33, 24, 30, -3, 24, 198, 3806 }, // Æ
{ 20, 33, 21, 1, 24, 165, 4004 }, // Ç
{ 22, 33, 20, -1, 33, 182, 4169 }, // È
{ 22, 34, 20, -1, 34, 187, 4351 }, // É
{ 22, 33, 20, -1, 33, 182, 4538 }, // Ê
{ 22, 31, 20, -1, 31, 171, 4720 }, // Ë
{ 15, 33, 12, -1, 33, 124, 4891 }, // Ì
{ 16, 34, 12, -1, 34, 136, 5015 }, // Í
{ 16, 33, 12, -1, 33, 132, 5151 }, // Î
{ 17, 31, 12, -1, 31, 132, 5283 }, // Ï
{ 24, 24, 24, -1, 24, 144, 5415 }, // Ð
{ 28, 33, 25, -1, 32, 231, 5559 }, // Ñ
{ 23, 33, 25, 1, 33, 190, 5790 }, // Ò
{ 23, 33, 25, 1, 33, 190, 5980 }, // Ó
{ 23, 33, 25, 1, 33, 190, 6170 }, // Ô
{ 23, 33, 25, 1, 33, 190, 6360 }, // Õ
{ 23, 32, 25, 1, 32, 184, 6550 }, // Ö
{ 13, 14, 21, 4, 19, 46, 6734 }, // ×
{ 26, 26, 25, -1, 25, 169, 6780 }, // Ø
{ 24, 33, 26, 3, 33, 198, 6949 }, // Ù
{ 24, 34, 26, 3, 34, 204, 7147 }, // Ú
{ 24, 33, 26, 3, 33, 198, 7351 }, // Û
{ 24, 32, 26, 3, 32, 192, 7549 }, // Ü
{ 22, 34, 22, 2, 34, 187, 7741 }, // Ý
{ 20, 24, 20, -1, 24, 120, 7928 }, // Þ
{ 26, 35, 21, -5, 27, 228, 8048 }, // ß
{ 18, 28, 19, 1, 28, 126, 8276 }, // à
{ 18, 29, 19, 1, 29, 131, 8402 }, // á
{ 18, 28, 19, 1, 28, 126, 8533 }, // â
{ 18, 27, 19, 1, 27, 122, 8659 }, // ã
{ 18, 26, 19, 1, 26, 117, 8781 }, // ä
{ 18, 29, 19, 1, 29, 131, 8898 }, // å
{ 24, 18, 26, 1, 18, 108, 9029 }, // æ
{ 13, 27, 15, 1, 18, 88, 9137 }, // ç
{ 14, 28, 16, 1, 28, 98, 9225 }, // è
{ 15, 29, 16, 1, 29, 109, 9323 }, // é
{ 15, 28, 16, 1, 28, 105, 9432 }, // ê
{ 16, 26, 16, 1, 26, 104, 9537 }, // ë
{ 9, 28, 11, 1, 28, 63, 9641 }, // ì
{ 12, 29, 11, 1, 29, 87, 9704 }, // í
{ 12, 28, 11, 1, 28, 84, 9791 }, // î
{ 13, 26, 11, 1, 26, 85, 9875 }, // ï
{ 16, 28, 18, 1, 28, 112, 9960 }, // ð
{ 19, 27, 21, 1, 27, 129, 10072 }, // ñ
{ 16, 28, 18, 1, 28, 112, 10201 }, // ò
{ 16, 29, 18, 1, 29, 116, 10313 }, // ó
{ 16, 28, 18, 1, 28, 112, 10429 }, // ô
{ 17, 27, 18, 1, 27, 115, 10541 }, // õ
{ 17, 26, 18, 1, 26, 111, 10656 }, // ö
{ 15, 15, 21, 3, 19, 57, 10767 }, // ÷
{ 22, 20, 18, -2, 19, 110, 10824 }, // ø
{ 19, 28, 20, 1, 28, 133, 10934 }, // ù
{ 19, 29, 20, 1, 29, 138, 11067 }, // ú
{ 19, 28, 20, 1, 28, 133, 11205 }, // û
{ 19, 26, 20, 1, 26, 124, 11338 }, // ü
{ 20, 37, 18, -3, 29, 185, 11462 }, // ý
{ 21, 35, 18, -3, 27, 184, 11647 }, // þ
{ 20, 34, 18, -3, 26, 170, 11831 }, // ÿ
{ 25, 31, 24, -2, 31, 194, 0 }, // Ā
{ 18, 25, 19, 1, 25, 113, 194 }, // ā
{ 25, 33, 24, -2, 33, 207, 307 }, // Ă
{ 18, 28, 19, 1, 28, 126, 514 }, // ă
{ 25, 32, 24, -2, 24, 200, 640 }, // Ą
{ 18, 25, 19, 1, 18, 113, 840 }, // ą
{ 20, 33, 21, 1, 33, 165, 953 }, // Ć
{ 15, 29, 15, 1, 29, 109, 1118 }, // ć
{ 20, 33, 21, 1, 33, 165, 1227 }, // Ĉ
{ 15, 28, 15, 1, 28, 105, 1392 }, // ĉ
{ 20, 33, 21, 1, 33, 165, 1497 }, // Ċ
{ 13, 27, 15, 1, 27, 88, 1662 }, // ċ
{ 21, 34, 21, 1, 34, 179, 1750 }, // Č
{ 16, 29, 15, 1, 29, 116, 1929 }, // č
{ 24, 34, 24, -1, 34, 204, 2045 }, // Ď
{ 24, 30, 20, 1, 30, 180, 2249 }, // ď
{ 24, 24, 24, -1, 24, 144, 2429 }, // Đ
{ 20, 27, 20, 1, 27, 135, 2573 }, // đ
{ 22, 31, 20, -1, 31, 171, 2708 }, // Ē
{ 16, 25, 16, 1, 25, 100, 2879 }, // ē
{ 22, 33, 20, -1, 33, 182, 2979 }, // Ĕ
{ 16, 28, 16, 1, 28, 112, 3161 }, // ĕ
{ 22, 32, 20, -1, 32, 176, 3273 }, // Ė
{ 14, 27, 16, 1, 27, 95, 3449 }, // ė
{ 22, 32, 20, -1, 24, 176, 3544 }, // Ę
{ 14, 25, 16, 1, 18, 88, 3720 }, // ę
{ 22, 34, 20, -1, 34, 187, 3808 }, // Ě
{ 16, 29, 16, 1, 29, 116, 3995 }, // ě
{ 21, 33, 24, 2, 33, 174, 4111 }, // Ĝ
{ 22, 36, 16, -3, 28, 198, 4285 }, // ĝ
{ 21, 34, 24, 2, 34, 179, 4483 }, // Ğ
{ 22, 36, 16, -3, 28, 198, 4662 }, // ğ
{ 21, 33, 24, 2, 33, 174, 4860 }, // Ġ
{ 22, 34, 16, -3, 26, 187, 5034 }, // ġ
{ 21, 33, 24, 2, 24, 174, 5221 }, // Ģ
{ 22, 37, 16, -3, 29, 204, 5395 }, // ģ
{ 29, 33, 27, -1, 33, 240, 5599 }, // Ĥ
{ 18, 36, 20, 1, 36, 162, 5839 }, // ĥ
{ 29, 24, 27, -1, 24, 174, 6001 }, // Ħ
{ 18, 27, 20, 1, 27, 122, 6175 }, // ħ
{ 16, 32, 12, -1, 32, 128, 6297 }, // Ĩ
{ 13, 27, 11, 1, 27, 88, 6425 }, // ĩ
{ 16, 31, 12, -1, 31, 124, 6513 }, // Ī
{ 13, 25, 11, 1, 25, 82, 6637 }, // ī
{ 17, 33, 12, -1, 33, 141, 6719 }, // Ĭ
{ 13, 28, 11, 1, 28, 91, 6860 }, // ĭ
{ 15, 32, 12, -1, 24, 120, 6951 }, // Į
{ 10, 34, 11, 1, 27, 85, 7071 }, // į
{ 15, 32, 12, -1, 32, 120, 7156 }, // İ
{ 9, 18, 11, 1, 18, 41, 7276 }, // ı
{ 27, 30, 24, -1, 24, 203, 7317 }, // IJ
{ 21, 35, 20, 1, 27, 184, 7520 }, // ij
{ 22, 39, 12, -6, 33, 215, 7704 }, // Ĵ
{ 19, 36, 10, -6, 28, 171, 7919 }, // ĵ
{ 26, 33, 23, -1, 24, 215, 8090 }, // Ķ
{ 17, 36, 18, 1, 27, 153, 8305 }, // ķ
{ 17, 18, 18, 1, 18, 77, 8458 }, // ĸ
{ 19, 34, 19, -1, 34, 162, 8535 }, // Ĺ
{ 12, 36, 10, 1, 36, 108, 8697 }, // ĺ
{ 19, 33, 19, -1, 24, 157, 8805 }, // Ļ
{ 11, 36, 10, -1, 27, 99, 8962 }, // ļ
{ 20, 27, 19, -1, 27, 135, 9061 }, // Ľ
{ 15, 30, 11, 1, 30, 113, 9196 }, // ľ
{ 20, 24, 20, -1, 24, 120, 9309 }, // Ŀ
{ 14, 27, 14, 1, 27, 95, 9429 }, // ŀ
{ 19, 24, 19, -1, 24, 114, 9524 }, // Ł
{ 13, 27, 10, -1, 27, 88, 9638 }, // ł
{ 28, 35, 25, -1, 34, 245, 9726 }, // Ń
{ 19, 29, 21, 1, 29, 138, 9971 }, // ń
{ 28, 33, 25, -1, 24, 231, 10109 }, // Ņ
{ 19, 27, 21, 1, 18, 129, 10340 }, // ņ
{ 28, 35, 25, -1, 34, 245, 10469 }, // Ň
{ 19, 29, 21, 1, 29, 138, 10714 }, // ň
{ 25, 26, 28, 2, 26, 163, 10852 }, // ʼn
{ 28, 30, 25, -1, 24, 210, 11015 }, // Ŋ
{ 17, 26, 19, 1, 18, 111, 11225 }, // ŋ
{ 23, 31, 25, 1, 31, 179, 11336 }, // Ō
{ 17, 25, 18, 1, 25, 107, 11515 }, // ō
{ 23, 34, 25, 1, 34, 196, 11622 }, // Ŏ
{ 17, 28, 18, 1, 28, 119, 11818 }, // ŏ
{ 24, 34, 25, 1, 34, 204, 11937 }, // Ő
{ 19, 28, 18, 1, 28, 133, 12141 }, // ő
{ 31, 24, 32, 1, 24, 186, 12274 }, // Œ
{ 26, 18, 27, 1, 18, 117, 12460 }, // œ
{ 22, 33, 22, -1, 33, 182, 12577 }, // Ŕ
{ 14, 29, 14, 1, 29, 102, 12759 }, // ŕ
{ 22, 33, 22, -1, 24, 182, 12861 }, // Ŗ
{ 16, 27, 14, -1, 18, 108, 13043 }, // ŗ
{ 22, 34, 22, -1, 34, 187, 13151 }, // Ř
{ 16, 28, 14, 1, 28, 112, 13338 }, // ř
{ 17, 33, 18, 0, 33, 141, 13450 }, // Ś
{ 15, 29, 14, 0, 29, 109, 13591 }, // ś
{ 18, 33, 18, 0, 33, 149, 13700 }, // Ŝ
{ 15, 28, 14, 0, 28, 105, 13849 }, // ŝ
{ 17, 33, 18, 0, 24, 141, 13954 }, // Ş
{ 13, 27, 14, 0, 18, 88, 14095 }, // ş
{ 19, 34, 18, 0, 34, 162, 14183 }, // Š
{ 16, 29, 14, 0, 29, 116, 14345 }, // š
{ 21, 33, 21, 2, 24, 174, 14461 }, // Ţ
{ 14, 32, 13, 0, 23, 112, 14635 }, // ţ
{ 21, 34, 21, 2, 34, 179, 14747 }, // Ť
{ 14, 28, 13, 1, 28, 98, 14926 }, // ť
{ 21, 24, 21, 2, 24, 126, 15024 }, // Ŧ
{ 14, 23, 13, 0, 23, 81, 15150 }, // ŧ
{ 24, 33, 26, 3, 33, 198, 15231 }, // Ũ
{ 19, 27, 20, 1, 27, 129, 15429 }, // ũ
{ 24, 31, 26, 3, 31, 186, 15558 }, // Ū
{ 19, 25, 20, 1, 25, 119, 15744 }, // ū
{ 24, 34, 26, 3, 34, 204, 15863 }, // Ŭ
{ 19, 28, 20, 1, 28, 133, 16067 }, // ŭ
{ 24, 35, 26, 3, 35, 210, 16200 }, // Ů
{ 19, 29, 20, 1, 29, 138, 16410 }, // ů
{ 24, 34, 26, 3, 34, 204, 16548 }, // Ű
{ 19, 29, 20, 1, 29, 138, 16752 }, // ű
{ 24, 31, 26, 3, 24, 186, 16890 }, // Ų
{ 19, 25, 20, 1, 18, 119, 17076 }, // ų
{ 35, 33, 35, 2, 33, 289, 17195 }, // Ŵ
{ 25, 29, 26, 0, 28, 182, 17484 }, // ŵ
{ 22, 33, 22, 2, 33, 182, 17666 }, // Ŷ
{ 20, 36, 18, -3, 28, 180, 17848 }, // ŷ
{ 22, 31, 22, 2, 31, 171, 18028 }, // Ÿ
{ 20, 35, 19, -1, 34, 175, 18199 }, // Ź
{ 16, 29, 16, 0, 29, 116, 18374 }, // ź
{ 20, 33, 19, -1, 32, 165, 18490 }, // Ż
{ 16, 27, 16, 0, 27, 108, 18655 }, // ż
{ 20, 35, 19, -1, 34, 175, 18763 }, // Ž
{ 16, 29, 16, 0, 29, 116, 18938 }, // ž
{ 24, 35, 14, -6, 27, 210, 19054 }, // ſ
{ 7, 8, 0, -5, 28, 14, 0 }, // ̀
{ 7, 9, 0, -2, 29, 16, 14 }, // ́
{ 11, 8, 0, -6, 28, 22, 30 }, // ̂
{ 12, 5, 0, -6, 26, 15, 52 }, // ̃
{ 11, 3, 0, -5, 25, 9, 67 }, // ̄
{ 11, 6, 0, -5, 27, 17, 76 }, // ̆
{ 6, 5, 0, -3, 26, 8, 93 }, // ̇
{ 12, 4, 0, -6, 26, 12, 101 }, // ̈
{ 9, 11, 0, -4, 31, 25, 113 }, // ̉
{ 10, 9, 0, -5, 29, 23, 138 }, // ̊
{ 13, 8, 0, -6, 28, 26, 161 }, // ̋
{ 11, 7, 0, -5, 28, 20, 187 }, // ̌
{ 10, 8, 0, -7, 28, 20, 207 }, // ̏
{ 11, 7, 0, -6, 27, 20, 227 }, // ̑
{ 6, 9, 0, -3, 29, 14, 247 }, // ̒
{ 7, 9, 0, -3, 30, 16, 261 }, // ̓
{ 6, 9, 0, -4, 30, 14, 277 }, // ̔
{ 5, 9, 0, -3, 30, 12, 291 }, // ̕
{ 6, 8, 0, -3, 22, 12, 303 }, // ̛
{ 6, 5, 0, -3, -2, 8, 315 }, // ̣
{ 12, 4, 0, -6, -3, 12, 323 }, // ̤
{ 8, 7, 0, -4, -2, 14, 335 }, // ̥
{ 7, 8, 0, -4, -1, 14, 349 }, // ̦
{ 8, 8, 0, -4, -1, 16, 363 }, // ̧
{ 7, 9, 0, -4, 2, 16, 379 }, // ̨
{ 6, 7, 9, -1, -2, 11, 395 }, // ̩
{ 12, 7, 0, -7, -2, 21, 406 }, // ̭
{ 11, 6, 0, -6, -2, 17, 427 }, // ̮
{ 12, 5, 0, -6, -3, 15, 444 }, // ̰
{ 11, 3, 0, -5, -3, 9, 459 }, // ̱
{ 11, 7, 0, -6, 27, 20, 468 }, // ͂
{ 13, 13, 0, -7, 35, 43, 488 }, // ̈́
{ 6, 6, 0, -2, -2, 9, 531 }, // ͅ
{ 22, 33, 20, -1, 33, 182, 0 }, // Ѐ
{ 22, 31, 20, -1, 31, 171, 182 }, // Ё
{ 21, 31, 25, 2, 24, 163, 353 }, // Ђ
{ 21, 34, 19, -1, 34, 179, 516 }, // Ѓ
{ 20, 24, 21, 1, 24, 120, 695 }, // Є
{ 17, 24, 18, 0, 24, 102, 815 }, // Ѕ
{ 15, 24, 12, -1, 24, 90, 917 }, // І
{ 17, 31, 12, -1, 31, 132, 1007 }, // Ї
{ 20, 30, 12, -6, 24, 150, 1139 }, // Ј
{ 31, 24, 30, -2, 24, 186, 1289 }, // Љ
{ 31, 24, 31, -1, 24, 186, 1475 }, // Њ
{ 22, 24, 26, 2, 24, 132, 1661 }, // Ћ
{ 25, 33, 23, -1, 33, 207, 1793 }, // Ќ
{ 29, 33, 27, -1, 33, 240, 2000 }, // Ѝ
{ 23, 35, 21, 1, 35, 202, 2240 }, // Ў
{ 27, 32, 25, -1, 24, 216, 2442 }, // Џ
{ 25, 24, 24, -2, 24, 150, 2658 }, // А
{ 21, 24, 20, -1, 24, 126, 2808 }, // Б
{ 20, 24, 21, -1, 24, 120, 2934 }, // В
{ 21, 24, 19, -1, 24, 126, 3054 }, // Г
{ 27, 31, 24, -2, 24, 210, 3180 }, // Д
{ 22, 24, 20, -1, 24, 132, 3390 }, // Е
{ 36, 24, 32, -3, 24, 216, 3522 }, // Ж
{ 17, 24, 18, 0, 24, 102, 3738 }, // З
{ 29, 24, 27, -1, 24, 174, 3840 }, // И
{ 29, 34, 27, -1, 34, 247, 4014 }, // Й
{ 25, 24, 23, -1, 24, 150, 4261 }, // К
{ 26, 24, 23, -2, 24, 156, 4411 }, // Л
{ 32, 24, 30, -2, 24, 192, 4567 }, // М
{ 29, 24, 27, -1, 24, 174, 4759 }, // Н
{ 23, 24, 25, 1, 24, 138, 4933 }, // О
{ 28, 24, 25, -1, 24, 168, 5071 }, // П
{ 21, 24, 20, -1, 24, 126, 5239 }, // Р
{ 20, 24, 21, 1, 24, 120, 5365 }, // С
{ 21, 24, 21, 2, 24, 126, 5485 }, // Т
{ 23, 24, 21, 1, 24, 138, 5611 }, // У
{ 23, 26, 24, 1, 26, 150, 5749 }, // Ф
{ 27, 24, 22, -3, 24, 162, 5899 }, // Х
{ 27, 31, 25, -1, 24, 210, 6061 }, // Ц
{ 22, 24, 23, 2, 24, 132, 6271 }, // Ч
{ 35, 24, 33, -1, 24, 210, 6403 }, // Ш
{ 35, 31, 33, -1, 24, 272, 6613 }, // Щ
{ 21, 24, 23, 2, 24, 126, 6885 }, // Ъ
{ 33, 24, 30, -1, 24, 198, 7011 }, // Ы
{ 20, 24, 20, -1, 24, 120, 7209 }, // Ь
{ 20, 24, 21, 0, 24, 120, 7329 }, // Э
{ 34, 24, 33, -1, 24, 204, 7449 }, // Ю
{ 24, 24, 21, -2, 24, 144, 7653 }, // Я
{ 18, 18, 19, 1, 18, 81, 7797 }, // а
{ 19, 28, 18, 1, 28, 133, 7878 }, // б
{ 15, 18, 17, 1, 18, 68, 8011 }, // в
{ 13, 18, 15, 1, 18, 59, 8079 }, // г
{ 16, 27, 18, 1, 27, 108, 8138 }, // д
{ 14, 18, 16, 1, 18, 63, 8246 }, // е
{ 30, 19, 30, 0, 19, 143, 8309 }, // ж
{ 14, 18, 15, 0, 18, 63, 8452 }, // з
{ 19, 18, 20, 1, 18, 86, 8515 }, // и
{ 19, 29, 20, 1, 29, 138, 8601 }, // й
{ 17, 18, 18, 1, 18, 77, 8739 }, // к
{ 20, 18, 20, -1, 18, 90, 8816 }, // л
{ 25, 18, 26, 0, 18, 113, 8906 }, // м
{ 19, 18, 21, 1, 18, 86, 9019 }, // н
{ 16, 18, 18, 1, 18, 72, 9105 }, // о
{ 19, 18, 21, 1, 18, 86, 9177 }, // п
{ 20, 26, 19, -2, 18, 130, 9263 }, // р
{ 13, 18, 15, 1, 18, 59, 9393 }, // с
{ 28, 18, 30, 1, 18, 126, 9452 }, // т
{ 20, 26, 18, -3, 18, 130, 9578 }, // у
{ 21, 35, 23, 1, 27, 184, 9708 }, // ф
{ 20, 18, 19, -1, 18, 90, 9892 }, // х
{ 19, 24, 21, 1, 18, 114, 9982 }, // ц
{ 18, 18, 20, 1, 18, 81, 10096 }, // ч
{ 27, 18, 28, 1, 18, 122, 10177 }, // ш
{ 27, 24, 28, 1, 18, 162, 10299 }, // щ
{ 16, 19, 18, 1, 19, 76, 10461 }, // ъ
{ 23, 18, 25, 1, 18, 104, 10537 }, // ы
{ 15, 18, 16, 0, 18, 68, 10641 }, // ь
{ 15, 18, 16, 0, 18, 68, 10709 }, // э
{ 24, 18, 26, 1, 18, 108, 10777 }, // ю
{ 19, 18, 18, -1, 18, 86, 10885 }, // я
{ 14, 28, 16, 1, 28, 98, 10971 }, // ѐ
{ 16, 26, 16, 1, 26, 104, 11069 }, // ё
{ 16, 35, 19, 1, 27, 140, 11173 }, // ђ
{ 14, 29, 15, 0, 29, 102, 11313 }, // ѓ
{ 14, 18, 16, 1, 18, 63, 11415 }, // є
{ 13, 18, 14, 0, 18, 59, 11478 }, // ѕ
{ 10, 27, 11, 1, 27, 68, 11537 }, // і
{ 13, 26, 11, 1, 26, 85, 11605 }, // ї
{ 17, 35, 10, -6, 27, 149, 11690 }, // ј
{ 25, 18, 25, -1, 18, 113, 11839 }, // љ
{ 22, 18, 24, 1, 18, 99, 11952 }, // њ
{ 18, 27, 20, 1, 27, 122, 12051 }, // ћ
{ 17, 29, 18, 1, 29, 124, 12173 }, // ќ
{ 19, 28, 20, 1, 28, 133, 12297 }, // ѝ
{ 20, 36, 18, -3, 28, 180, 12430 }, // ў
{ 19, 24, 20, 1, 18, 114, 12610 }, // џ
{ 20, 27, 22, 2, 27, 135, 12724 }, // Ѣ
{ 23, 18, 25, 1, 18, 104, 12859 }, // ѣ
{ 23, 24, 25, 1, 24, 138, 12963 }, // Ѳ
{ 17, 18, 18, 1, 18, 77, 13101 }, // ѳ
{ 24, 24, 25, 2, 24, 144, 13178 }, // Ѵ
{ 20, 18, 18, 0, 18, 90, 13322 }, // ѵ
{ 29, 41, 27, -1, 34, 298, 13412 }, // Ҋ
{ 19, 35, 20, 1, 29, 167, 13710 }, // ҋ
{ 20, 24, 20, -1, 24, 120, 13877 }, // Ҍ
{ 15, 24, 16, 1, 24, 90, 13997 }, // ҍ
{ 21, 24, 20, -1, 24, 126, 14087 }, // Ҏ
{ 20, 26, 19, -2, 18, 130, 14213 }, // ҏ
{ 22, 29, 19, -1, 29, 160, 14343 }, // Ґ
{ 17, 23, 15, 0, 23, 98, 14503 }, // ґ
{ 21, 24, 19, -1, 24, 126, 14601 }, // Ғ
{ 13, 18, 15, 1, 18, 59, 14727 }, // ғ
{ 21, 31, 20, -1, 24, 163, 14786 }, // Ҕ
{ 16, 26, 18, 1, 18, 104, 14949 }, // ҕ
{ 36, 31, 32, -3, 24, 279, 15053 }, // Җ
{ 30, 25, 30, 0, 19, 188, 15332 }, // җ
{ 17, 31, 18, 0, 24, 132, 15520 }, // Ҙ
{ 14, 24, 15, 0, 18, 84, 15652 }, // ҙ
{ 25, 31, 23, -1, 24, 194, 15736 }, // Қ
{ 17, 24, 18, 1, 18, 102, 15930 }, // қ
{ 27, 24, 24, -1, 24, 162, 16032 }, // Ҝ
{ 19, 18, 20, 1, 18, 86, 16194 }, // ҝ
{ 25, 24, 23, -1, 24, 150, 16280 }, // Ҟ
{ 17, 24, 18, 1, 24, 102, 16430 }, // ҟ
{ 26, 24, 27, 2, 24, 156, 16532 }, // Ҡ
{ 19, 18, 21, 1, 18, 86, 16688 }, // ҡ
{ 29, 31, 27, -1, 24, 225, 16774 }, // Ң
{ 19, 24, 21, 1, 18, 114, 16999 }, // ң
{ 33, 24, 31, -1, 24, 198, 17113 }, // Ҥ
{ 23, 18, 25, 1, 18, 104, 17311 }, // ҥ
{ 34, 31, 34, -1, 24, 264, 17415 }, // Ҧ
{ 26, 26, 28, 1, 18, 169, 17679 }, // ҧ
{ 25, 24, 27, 1, 24, 150, 17848 }, // Ҩ
{ 20, 18, 21, 1, 18, 90, 17998 }, // ҩ
{ 20, 31, 21, 1, 24, 155, 18088 }, // Ҫ
{ 13, 24, 15, 1, 18, 78, 18243 }, // ҫ
{ 21, 31, 21, 2, 24, 163, 18321 }, // Ҭ
{ 28, 24, 30, 1, 18, 168, 18484 }, // ҭ
{ 22, 24, 22, 2, 24, 132, 18652 }, // Ү
{ 17, 26, 17, 0, 18, 111, 18784 }, // ү
{ 22, 24, 22, 2, 24, 132, 18895 }, // Ұ
{ 17, 26, 17, 0, 18, 111, 19027 }, // ұ
{ 27, 31, 22, -3, 24, 210, 19138 }, // Ҳ
{ 20, 24, 19, -1, 18, 120, 19348 }, // ҳ
{ 29, 31, 28, 1, 24, 225, 19468 }, // Ҵ
{ 19, 31, 21, 1, 25, 148, 19693 }, // ҵ
{ 22, 31, 23, 2, 24, 171, 19841 }, // Ҷ
{ 18, 24, 20, 1, 18, 108, 20012 }, // ҷ
{ 22, 24, 23, 2, 24, 132, 20120 }, // Ҹ
{ 18, 18, 20, 1, 18, 81, 20252 }, // ҹ
{ 21, 24, 22, -1, 24, 126, 20333 }, // Һ
{ 18, 27, 20, 1, 27, 122, 20459 }, // һ
{ 25, 24, 26, 1, 24, 150, 20581 }, // Ҽ
{ 19, 18, 19, 0, 18, 86, 20731 }, // ҽ
{ 25, 32, 26, 1, 24, 200, 20817 }, // Ҿ
{ 19, 25, 19, 0, 18, 119, 21017 }, // ҿ
{ 15, 24, 12, -1, 24, 90, 21136 }, // Ӏ
{ 36, 35, 32, -3, 35, 315, 21226 }, // Ӂ
{ 30, 29, 30, 0, 29, 218, 21541 }, // ӂ
{ 25, 31, 23, -1, 24, 194, 21759 }, // Ӄ
{ 17, 26, 18, 1, 18, 111, 21953 }, // ӄ
{ 26, 31, 23, -2, 24, 202, 22064 }, // Ӆ
{ 21, 24, 20, -1, 18, 126, 22266 }, // ӆ
{ 29, 31, 27, -1, 24, 225, 22392 }, // Ӈ
{ 17, 26, 19, 1, 18, 111, 22617 }, // ӈ
{ 29, 31, 27, -1, 24, 225, 22728 }, // Ӊ
{ 19, 24, 21, 1, 18, 114, 22953 }, // ӊ
{ 22, 31, 23, 2, 24, 171, 23067 }, // Ӌ
{ 17, 25, 18, 1, 18, 107, 23238 }, // ӌ
{ 32, 31, 30, -2, 24, 248, 23345 }, // Ӎ
{ 26, 24, 26, 0, 18, 156, 23593 }, // ӎ
{ 15, 27, 11, -1, 27, 102, 23749 }, // ӏ
{ 25, 34, 24, -2, 34, 213, 23851 }, // Ӑ
{ 18, 29, 19, 1, 29, 131, 24064 }, // ӑ
{ 25, 31, 24, -2, 31, 194, 24195 }, // Ӓ
{ 18, 26, 19, 1, 26, 117, 24389 }, // ӓ
{ 33, 24, 30, -3, 24, 198, 24506 }, // Ӕ
{ 24, 18, 26, 1, 18, 108, 24704 }, // ӕ
{ 22, 34, 20, -1, 34, 187, 24812 }, // Ӗ
{ 16, 29, 16, 1, 29, 116, 24999 }, // ӗ
{ 20, 24, 21, 0, 24, 120, 25115 }, // Ә
{ 15, 18, 16, 0, 18, 68, 25235 }, // ә
{ 20, 32, 21, 0, 32, 160, 25303 }, // Ӛ
{ 16, 26, 16, 0, 26, 104, 25463 }, // ӛ
{ 36, 32, 32, -3, 32, 288, 25567 }, // Ӝ
{ 30, 26, 30, 0, 26, 195, 25855 }, // ӝ
{ 17, 32, 18, 0, 32, 136, 26050 }, // Ӟ
{ 16, 26, 15, 0, 26, 104, 26186 }, // ӟ
{ 21, 24, 19, -1, 24, 126, 26290 }, // Ӡ
{ 19, 26, 17, -2, 18, 124, 26416 }, // ӡ
{ 29, 31, 27, -1, 31, 225, 26540 }, // Ӣ
{ 19, 25, 20, 1, 25, 119, 26765 }, // ӣ
{ 29, 31, 27, -1, 31, 225, 26884 }, // Ӥ
{ 19, 26, 20, 1, 26, 124, 27109 }, // ӥ
{ 23, 32, 25, 1, 32, 184, 27233 }, // Ӧ
{ 17, 26, 18, 1, 26, 111, 27417 }, // ӧ
{ 23, 24, 25, 1, 24, 138, 27528 }, // Ө
{ 17, 18, 18, 1, 18, 77, 27666 }, // ө
{ 23, 32, 25, 1, 32, 184, 27743 }, // Ӫ
{ 17, 26, 18, 1, 26, 111, 27927 }, // ӫ
{ 20, 32, 21, 0, 32, 160, 28038 }, // Ӭ
{ 15, 26, 16, 0, 26, 98, 28198 }, // ӭ
{ 23, 31, 21, 1, 31, 179, 28296 }, // Ӯ
{ 20, 33, 18, -3, 25, 165, 28475 }, // ӯ
{ 23, 32, 21, 1, 32, 184, 28640 }, // Ӱ
{ 20, 34, 18, -3, 26, 170, 28824 }, // ӱ
{ 23, 34, 21, 1, 34, 196, 28994 }, // Ӳ
{ 21, 37, 18, -3, 29, 195, 29190 }, // ӳ
{ 22, 31, 23, 2, 31, 171, 29385 }, // Ӵ
{ 18, 26, 20, 1, 26, 117, 29556 }, // ӵ
{ 21, 31, 19, -1, 24, 163, 29673 }, // Ӷ
{ 13, 24, 15, 1, 18, 78, 29836 }, // ӷ
{ 33, 31, 30, -1, 31, 256, 29914 }, // Ӹ
{ 23, 26, 25, 1, 26, 150, 30170 }, // ӹ
{ 21, 31, 19, -1, 24, 163, 30320 }, // Ӻ
{ 13, 24, 15, 1, 18, 78, 30483 }, // ӻ
{ 27, 31, 22, -3, 24, 210, 30561 }, // Ӽ
{ 20, 26, 19, -1, 18, 130, 30771 }, // ӽ
{ 27, 24, 22, -3, 24, 162, 30901 }, // Ӿ
{ 20, 18, 19, -1, 18, 90, 31063 }, // ӿ
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
{ 0, 0, 17, 0, 0, 0, 0 }, //  
{ 0, 0, 33, 0, 0, 0, 0 }, //
{ 0, 0, 17, 0, 0, 0, 0 }, //
{ 0, 0, 33, 0, 0, 0, 0 }, //
{ 0, 0, 11, 0, 0, 0, 0 }, //
{ 0, 0, 8, 0, 0, 0, 0 }, //
fix: force auto-hinting for Bookerly to fix inconsistent stem widths (#1098) ## Summary Bookerly's native TrueType hinting is effectively a no-op at the sizes used here, causing FreeType to place stems at inconsistent sub-pixel positions. This results in the 'k' stem (8-bit fringe: 0x38=56) falling just below the 2-bit quantization threshold while 'l' and 'h' stems (fringes: 0x4C=76, 0x40=64) land above it --- making 'k' visibly narrower (2.00px vs 2.33px effective width). FreeType's auto-hinter snaps all stems to consistent grid positions, normalizing effective stem width to 2.67px across all glyphs. Adds --force-autohint flag to fontconvert.py and applies it to Bookerly only. NotoSans, OpenDyslexic, and Ubuntu fonts are unaffected. Here is an example of before/after. Take notice of the vertical stems on characters like `l`, `k`, `n`, `i`, etc. The font is Bookerly 12pt regular: **BEFORE**: ![before](https://github.com/user-attachments/assets/65b2acab-ad95-489e-885e-e3a0163cc252) **AFTER**: ![after](https://github.com/user-attachments/assets/d09a8b5d-40af-4a7d-b622-e1b2cabcce85) Claude generated this script to quantitatively determine that this change makes the vertical stems on a variety of characters more consistent for Bookerly _only_. <details> <summary>Python script</summary> ```python #!/usr/bin/env python3 """Compare stem consistency across all font families with and without auto-hinting. Run from repo root: python3 compare_all_fonts.py """ import freetype DPI = 150 CHARS = ["k", "l", "h", "i", "b", "d"] SIZES = [12, 14, 16, 18] FONTS = { "Bookerly": "lib/EpdFont/builtinFonts/source/Bookerly/Bookerly-Regular.ttf", "NotoSans": "lib/EpdFont/builtinFonts/source/NotoSans/NotoSans-Regular.ttf", "OpenDyslexic": "lib/EpdFont/builtinFonts/source/OpenDyslexic/OpenDyslexic-Regular.otf", "Ubuntu": "lib/EpdFont/builtinFonts/source/Ubuntu/Ubuntu-Regular.ttf", } MODES = { "default": freetype.FT_LOAD_RENDER, "autohint": freetype.FT_LOAD_RENDER | freetype.FT_LOAD_FORCE_AUTOHINT, } def q4to2(v): if v >= 12: return 3 elif v >= 8: return 2 elif v >= 4: return 1 else: return 0 def get_stem_eff(face, char, flags): gi = face.get_char_index(ord(char)) if gi == 0: return None face.load_glyph(gi, flags) bm = face.glyph.bitmap w, h = bm.width, bm.rows if w == 0 or h == 0: return None p2 = [] for y in range(h): row = [] for x in range(w): row.append(q4to2(bm.buffer[y * bm.pitch + x] >> 4)) p2.append(row) # Measure leftmost stem in stable middle rows mid_start, mid_end = h // 4, h - h // 4 widths = [] for y in range(mid_start, mid_end): first = next((x for x in range(w) if p2[y][x] > 0), -1) if first < 0: continue last = first for x in range(first, w): if p2[y][x] > 0: last = x else: break eff = sum(p2[y][x] for x in range(first, last + 1)) / 3.0 widths.append(eff) return round(sum(widths) / len(widths), 2) if widths else None def main(): for font_name, font_path in FONTS.items(): try: freetype.Face(font_path) except Exception: print(f"\n {font_name}: SKIPPED (file not found)") continue print(f"\n{'=' * 80}") print(f" {font_name}") print(f"{'=' * 80}") for size in SIZES: print(f"\n {size}pt:") print(f" {'':6s}", end="") for c in CHARS: print(f" '{c}' ", end="") print(" | spread") for mode_name, flags in MODES.items(): face = freetype.Face(font_path) face.set_char_size(size << 6, size << 6, DPI, DPI) vals = [] print(f" {mode_name:6s}", end="") for c in CHARS: v = get_stem_eff(face, c, flags) vals.append(v) print(f" {v:5.2f}" if v else " N/A", end="") valid = [v for v in vals if v is not None] spread = max(valid) - min(valid) if len(valid) >= 2 else 0 marker = " <-- inconsistent" if spread > 0.5 else "" print(f" | {spread:.2f}{marker}") if __name__ == "__main__": main() ``` </details> Here are the results. The table compares how the font-generation `autohint` flag affects the range of widths of various characters. Lower `spread` mean that glyph stroke widths should appear more consistent. ``` Spread = max stem width - min stem width across glyphs (lower = more consistent): ┌──────────────┬──────┬─────────┬──────────┬──────────┐ │ Font │ Size │ Default │ Autohint │ Winner │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ Bookerly │ 12pt │ 1.49 │ 1.12 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 1.39 │ 1.13 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 1.38 │ 1.16 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.90 │ 1.58 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ NotoSans │ 12pt │ 1.16 │ 0.94 │ mixed │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 0.83 │ 1.14 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 1.41 │ 1.51 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.74 │ 1.63 │ mixed │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ OpenDyslexic │ 12pt │ 2.22 │ 1.44 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 2.57 │ 3.29 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 3.13 │ 2.60 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 3.21 │ 3.23 │ ~tied │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ Ubuntu │ 12pt │ 1.25 │ 1.31 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 1.41 │ 1.64 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 2.21 │ 1.71 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.80 │ 1.71 │ autohint │ └──────────────┴──────┴─────────┴──────────┴──────────┘ ``` --- ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? I used AI to make sure I'm not doing something stupid, since I'm not a typography expert. I made the changes though.
2026-02-24 06:13:08 +11:00
{ 0, 0, 6, 0, 0, 0, 0 }, //
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
{ 0, 0, 21, 0, 0, 0, 0 }, //
{ 0, 0, 9, 0, 0, 0, 0 }, //
{ 0, 0, 7, 0, 0, 0, 0 }, //
{ 0, 0, 2, 0, 0, 0, 0 }, //
{ 0, 0, 0, 0, 0, 0, 0 }, //
{ 2, 28, 0, -1, 20, 14, 0 }, //
{ 8, 30, 0, -4, 22, 60, 14 }, //
fix: force auto-hinting for Bookerly to fix inconsistent stem widths (#1098) ## Summary Bookerly's native TrueType hinting is effectively a no-op at the sizes used here, causing FreeType to place stems at inconsistent sub-pixel positions. This results in the 'k' stem (8-bit fringe: 0x38=56) falling just below the 2-bit quantization threshold while 'l' and 'h' stems (fringes: 0x4C=76, 0x40=64) land above it --- making 'k' visibly narrower (2.00px vs 2.33px effective width). FreeType's auto-hinter snaps all stems to consistent grid positions, normalizing effective stem width to 2.67px across all glyphs. Adds --force-autohint flag to fontconvert.py and applies it to Bookerly only. NotoSans, OpenDyslexic, and Ubuntu fonts are unaffected. Here is an example of before/after. Take notice of the vertical stems on characters like `l`, `k`, `n`, `i`, etc. The font is Bookerly 12pt regular: **BEFORE**: ![before](https://github.com/user-attachments/assets/65b2acab-ad95-489e-885e-e3a0163cc252) **AFTER**: ![after](https://github.com/user-attachments/assets/d09a8b5d-40af-4a7d-b622-e1b2cabcce85) Claude generated this script to quantitatively determine that this change makes the vertical stems on a variety of characters more consistent for Bookerly _only_. <details> <summary>Python script</summary> ```python #!/usr/bin/env python3 """Compare stem consistency across all font families with and without auto-hinting. Run from repo root: python3 compare_all_fonts.py """ import freetype DPI = 150 CHARS = ["k", "l", "h", "i", "b", "d"] SIZES = [12, 14, 16, 18] FONTS = { "Bookerly": "lib/EpdFont/builtinFonts/source/Bookerly/Bookerly-Regular.ttf", "NotoSans": "lib/EpdFont/builtinFonts/source/NotoSans/NotoSans-Regular.ttf", "OpenDyslexic": "lib/EpdFont/builtinFonts/source/OpenDyslexic/OpenDyslexic-Regular.otf", "Ubuntu": "lib/EpdFont/builtinFonts/source/Ubuntu/Ubuntu-Regular.ttf", } MODES = { "default": freetype.FT_LOAD_RENDER, "autohint": freetype.FT_LOAD_RENDER | freetype.FT_LOAD_FORCE_AUTOHINT, } def q4to2(v): if v >= 12: return 3 elif v >= 8: return 2 elif v >= 4: return 1 else: return 0 def get_stem_eff(face, char, flags): gi = face.get_char_index(ord(char)) if gi == 0: return None face.load_glyph(gi, flags) bm = face.glyph.bitmap w, h = bm.width, bm.rows if w == 0 or h == 0: return None p2 = [] for y in range(h): row = [] for x in range(w): row.append(q4to2(bm.buffer[y * bm.pitch + x] >> 4)) p2.append(row) # Measure leftmost stem in stable middle rows mid_start, mid_end = h // 4, h - h // 4 widths = [] for y in range(mid_start, mid_end): first = next((x for x in range(w) if p2[y][x] > 0), -1) if first < 0: continue last = first for x in range(first, w): if p2[y][x] > 0: last = x else: break eff = sum(p2[y][x] for x in range(first, last + 1)) / 3.0 widths.append(eff) return round(sum(widths) / len(widths), 2) if widths else None def main(): for font_name, font_path in FONTS.items(): try: freetype.Face(font_path) except Exception: print(f"\n {font_name}: SKIPPED (file not found)") continue print(f"\n{'=' * 80}") print(f" {font_name}") print(f"{'=' * 80}") for size in SIZES: print(f"\n {size}pt:") print(f" {'':6s}", end="") for c in CHARS: print(f" '{c}' ", end="") print(" | spread") for mode_name, flags in MODES.items(): face = freetype.Face(font_path) face.set_char_size(size << 6, size << 6, DPI, DPI) vals = [] print(f" {mode_name:6s}", end="") for c in CHARS: v = get_stem_eff(face, c, flags) vals.append(v) print(f" {v:5.2f}" if v else " N/A", end="") valid = [v for v in vals if v is not None] spread = max(valid) - min(valid) if len(valid) >= 2 else 0 marker = " <-- inconsistent" if spread > 0.5 else "" print(f" | {spread:.2f}{marker}") if __name__ == "__main__": main() ``` </details> Here are the results. The table compares how the font-generation `autohint` flag affects the range of widths of various characters. Lower `spread` mean that glyph stroke widths should appear more consistent. ``` Spread = max stem width - min stem width across glyphs (lower = more consistent): ┌──────────────┬──────┬─────────┬──────────┬──────────┐ │ Font │ Size │ Default │ Autohint │ Winner │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ Bookerly │ 12pt │ 1.49 │ 1.12 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 1.39 │ 1.13 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 1.38 │ 1.16 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.90 │ 1.58 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ NotoSans │ 12pt │ 1.16 │ 0.94 │ mixed │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 0.83 │ 1.14 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 1.41 │ 1.51 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.74 │ 1.63 │ mixed │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ OpenDyslexic │ 12pt │ 2.22 │ 1.44 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 2.57 │ 3.29 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 3.13 │ 2.60 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 3.21 │ 3.23 │ ~tied │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ Ubuntu │ 12pt │ 1.25 │ 1.31 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 1.41 │ 1.64 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 2.21 │ 1.71 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.80 │ 1.71 │ autohint │ └──────────────┴──────┴─────────┴──────────┴──────────┘ ``` --- ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? I used AI to make sure I'm not doing something stupid, since I'm not a typography expert. I made the changes though.
2026-02-24 06:13:08 +11:00
{ 12, 32, 0, -6, 24, 96, 74 }, //
{ 12, 32, 0, -6, 24, 96, 170 }, //
{ 11, 3, 12, 1, 10, 9, 266 }, //
{ 11, 3, 12, 1, 10, 9, 275 }, //
{ 17, 3, 21, 2, 13, 13, 284 }, //
{ 17, 3, 17, 0, 11, 13, 297 }, //
{ 34, 3, 33, 0, 11, 26, 310 }, // —
{ 34, 3, 33, 0, 11, 26, 336 }, // ―
{ 11, 35, 17, 3, 27, 97, 362 }, // ‖
{ 17, 7, 17, 0, -2, 30, 459 }, // ‗
{ 7, 11, 10, 3, 26, 20, 489 }, //
{ 7, 11, 10, 2, 27, 20, 509 }, //
{ 7, 11, 10, 1, 5, 20, 529 }, //
{ 6, 11, 8, 1, 26, 17, 549 }, //
{ 14, 11, 17, 3, 26, 39, 566 }, // “
{ 14, 11, 17, 2, 26, 39, 605 }, // ”
{ 14, 11, 17, 1, 5, 39, 644 }, // „
{ 13, 11, 15, 1, 26, 36, 683 }, // ‟
{ 15, 22, 16, 1, 24, 83, 719 }, // †
{ 16, 26, 16, 0, 24, 104, 802 }, // ‡
{ 8, 7, 10, 1, 12, 14, 906 }, // •
{ 12, 12, 21, 4, 18, 36, 920 }, // ‣
{ 5, 5, 9, 2, 5, 7, 956 }, //
{ 14, 5, 17, 1, 5, 18, 963 }, // ‥
{ 27, 5, 33, 3, 5, 34, 981 }, // …
{ 5, 5, 9, 2, 12, 7, 1015 }, // ‧
{ 0, 0, 0, 0, 0, 0, 1022 }, //
{ 0, 0, 0, 0, 0, 0, 1022 }, //
{ 12, 32, 0, -6, 24, 96, 1022 }, //
{ 12, 32, 0, -6, 24, 96, 1118 }, //
{ 10, 32, 0, -5, 24, 80, 1214 }, //
{ 14, 32, 0, -7, 24, 112, 1294 }, //
{ 14, 32, 0, -7, 24, 112, 1406 }, //
{ 0, 0, 4, 0, 0, 0, 1518 }, //
{ 42, 28, 45, 2, 26, 294, 1518 }, // ‰
{ 7, 11, 9, 1, 24, 20, 1812 }, //
{ 14, 11, 15, 1, 24, 39, 1832 }, // ″
{ 20, 11, 22, 1, 24, 55, 1871 }, // ‴
{ 7, 11, 9, 1, 24, 20, 1926 }, //
{ 14, 11, 16, 1, 24, 39, 1946 }, // ‶
{ 21, 11, 23, 1, 24, 58, 1985 }, // ‷
{ 15, 8, 17, 1, 1, 30, 2043 }, // ‸
{ 9, 13, 11, 1, 16, 30, 2073 }, //
{ 10, 13, 11, 0, 16, 33, 2103 }, //
{ 21, 23, 21, 0, 23, 121, 2136 }, // ※
{ 18, 26, 19, 2, 26, 117, 2257 }, // ‼
{ 17, 3, 17, 0, 29, 13, 2374 }, // ‾
{ 8, 3, 10, 1, 10, 6, 2387 }, //
{ 20, 28, 8, -6, 26, 140, 2393 }, //
{ 25, 24, 27, 2, 24, 150, 2533 }, // ⁇
{ 22, 26, 23, 2, 26, 143, 2683 }, // ⁈
{ 22, 26, 24, 2, 26, 143, 2826 }, // ⁉
{ 19, 7, 33, 7, 14, 34, 2969 }, //
{ 27, 11, 28, 1, 24, 75, 3003 }, // ⁗
{ 0, 0, 7, 0, 0, 0, 3078 }, //
{ 0, 0, 0, 0, 0, 0, 3078 }, //
{ 0, 0, 0, 0, 0, 0, 3078 }, //
{ 0, 0, 0, 0, 0, 0, 3078 }, //
{ 0, 0, 0, 0, 0, 0, 3078 }, //
{ 0, 0, 0, 0, 0, 0, 3078 }, //
{ 13, 15, 15, 1, 27, 49, 0 }, // ⁰
{ 14, 15, 15, 0, 27, 53, 49 }, // ⁴
{ 13, 15, 15, 1, 27, 49, 102 }, // ⁵
{ 13, 15, 15, 2, 27, 49, 151 }, // ⁶
{ 12, 15, 15, 3, 27, 45, 200 }, // ⁷
{ 13, 15, 15, 1, 27, 49, 245 }, // ⁸
{ 13, 15, 15, 1, 27, 49, 294 }, // ⁹
{ 13, 12, 19, 3, 24, 39, 343 }, // ⁿ
{ 13, 14, 15, 1, 10, 46, 382 }, // ₀
{ 10, 16, 15, 2, 12, 40, 428 }, // ₁
{ 13, 14, 15, 1, 10, 46, 468 }, // ₂
{ 12, 14, 15, 1, 10, 42, 514 }, // ₃
{ 14, 14, 15, 0, 10, 49, 556 }, // ₄
{ 13, 14, 15, 1, 10, 46, 605 }, // ₅
{ 13, 14, 15, 2, 10, 46, 651 }, // ₆
{ 12, 14, 15, 3, 10, 42, 697 }, // ₇
{ 13, 14, 15, 1, 10, 46, 739 }, // ₈
{ 13, 14, 15, 1, 10, 46, 785 }, // ₉
{ 21, 24, 21, 0, 24, 126, 0 }, // ₣
{ 22, 24, 21, -1, 24, 132, 126 }, // ₤
{ 40, 24, 42, 0, 24, 240, 258 }, // ₧
{ 23, 24, 21, -1, 24, 138, 498 }, // €
{ 19, 14, 33, 7, 19, 67, 0 }, // ←
{ 14, 21, 33, 10, 22, 74, 67 }, // ↑
{ 19, 14, 33, 7, 19, 67, 141 }, // →
{ 14, 21, 33, 10, 22, 74, 208 }, // ↓
{ 20, 14, 33, 7, 19, 70, 282 }, // ↔
{ 14, 22, 33, 10, 23, 77, 352 }, // ↕
{ 14, 23, 33, 10, 23, 81, 429 }, // ↨
{ 14, 22, 33, 10, 23, 77, 510 }, // ↲
{ 14, 22, 33, 10, 23, 77, 587 }, // ↳
{ 19, 16, 33, 7, 20, 76, 664 }, // ↵
{ 20, 15, 33, 7, 19, 75, 740 }, // ⇐
{ 15, 19, 33, 9, 21, 72, 815 }, // ⇑
{ 20, 15, 33, 7, 19, 75, 887 }, // ⇒
{ 15, 19, 33, 9, 21, 72, 962 }, // ⇓
{ 20, 15, 33, 7, 19, 75, 1034 }, // ⇔
{ 23, 25, 33, 5, 24, 144, 0 }, // ∀
{ 17, 27, 21, 2, 26, 115, 144 }, // ∂
{ 15, 23, 33, 9, 23, 87, 259 }, // ∃
{ 25, 27, 33, 4, 25, 169, 346 }, // ∅
{ 20, 24, 22, 1, 24, 120, 515 }, // ∆
{ 21, 25, 33, 6, 24, 132, 635 }, // ∇
{ 22, 23, 33, 6, 23, 127, 767 }, // ∈
{ 22, 29, 33, 6, 26, 160, 894 }, // ∉
{ 21, 18, 33, 6, 21, 95, 1054 }, // ∊
{ 21, 23, 33, 6, 23, 121, 1149 }, // ∋
{ 21, 29, 33, 6, 26, 153, 1270 }, // ∌
{ 21, 18, 33, 6, 21, 95, 1423 }, // ∍
{ 25, 29, 27, 1, 23, 182, 1518 }, // ∏
{ 20, 29, 20, 0, 23, 145, 1700 }, // ∑
{ 14, 3, 21, 3, 13, 11, 1845 }, //
{ 19, 26, 17, -1, 24, 124, 1856 }, //
{ 13, 26, 17, 2, 24, 85, 1980 }, //
{ 15, 16, 21, 3, 19, 60, 2065 }, //
{ 12, 12, 21, 4, 17, 36, 2125 }, // ∘
{ 5, 6, 21, 8, 12, 8, 2161 }, // ∙
{ 21, 32, 21, 0, 27, 168, 2169 }, // √
{ 17, 13, 21, 2, 17, 56, 2337 }, // ∝
{ 21, 11, 21, 0, 16, 58, 2393 }, // ∞
{ 21, 24, 33, 6, 24, 126, 2451 }, // ∟
{ 23, 24, 33, 4, 24, 138, 2577 }, // ∠
{ 3, 34, 17, 7, 26, 26, 2715 }, //
{ 9, 34, 17, 4, 26, 77, 2741 }, // ∥
{ 22, 24, 33, 6, 24, 132, 2818 }, // ∧
{ 22, 24, 33, 6, 24, 132, 2950 }, //
{ 18, 24, 33, 7, 24, 108, 3082 }, // ∩
{ 18, 24, 33, 7, 23, 108, 3190 }, //
{ 18, 34, 21, 1, 26, 153, 3298 }, // ∫
{ 21, 19, 33, 7, 18, 100, 3451 }, // ∴
{ 21, 19, 33, 7, 18, 100, 3551 }, // ∵
{ 8, 17, 10, 1, 20, 34, 3651 }, //
{ 20, 19, 33, 7, 18, 95, 3685 }, // ∷
{ 19, 6, 33, 7, 13, 29, 3780 }, //
{ 19, 18, 33, 7, 20, 86, 3809 }, // ≅
{ 16, 11, 21, 2, 17, 44, 3895 }, // ≈
{ 18, 11, 33, 8, 15, 50, 3939 }, // ≍
{ 14, 15, 21, 3, 19, 53, 3989 }, // ≠
{ 19, 15, 33, 7, 17, 72, 4042 }, // ≡
{ 15, 20, 21, 3, 20, 75, 4114 }, // ≤
{ 14, 20, 21, 3, 20, 70, 4189 }, // ≥
{ 27, 16, 33, 3, 19, 108, 4259 }, // ≪
{ 27, 16, 33, 3, 19, 108, 4367 }, // ≫
{ 22, 19, 33, 6, 21, 105, 4475 }, // ⊃
{ 21, 29, 33, 6, 26, 153, 4580 }, // ⊄
{ 22, 30, 33, 6, 26, 165, 4733 }, // ⊅
{ 21, 23, 33, 6, 23, 121, 4898 }, // ⊆
{ 21, 23, 33, 6, 23, 121, 5019 }, // ⊇
{ 26, 26, 33, 4, 24, 169, 5140 }, // ⊕
{ 25, 25, 33, 4, 24, 157, 5309 }, // ⊖
{ 25, 25, 33, 4, 24, 157, 5466 }, // ⊗
{ 25, 25, 33, 4, 24, 157, 5623 }, // ⊘
{ 19, 24, 33, 7, 24, 114, 5780 }, // ⊥
{ 5, 6, 21, 8, 12, 8, 5894 }, // ⋅
{ 27, 6, 33, 3, 12, 41, 5902 }, // ⋯
{ 32, 32, 33, 1, 28, 256, 0 }, // <20>
};
static const EpdUnicodeInterval bookerly_16_italicIntervals[] = {
{ 0x0, 0x0, 0x0 },
{ 0x8, 0x9, 0x1 },
{ 0xD, 0xD, 0x3 },
{ 0x1D, 0x1D, 0x4 },
{ 0x20, 0x7E, 0x5 },
{ 0xA0, 0xFF, 0x64 },
{ 0x100, 0x17F, 0xC4 },
{ 0x300, 0x304, 0x144 },
{ 0x306, 0x30C, 0x149 },
{ 0x30F, 0x30F, 0x150 },
{ 0x311, 0x315, 0x151 },
{ 0x31B, 0x31B, 0x156 },
{ 0x323, 0x329, 0x157 },
{ 0x32D, 0x32E, 0x15E },
{ 0x330, 0x331, 0x160 },
{ 0x342, 0x342, 0x162 },
{ 0x344, 0x345, 0x163 },
{ 0x400, 0x45F, 0x165 },
{ 0x462, 0x463, 0x1C5 },
{ 0x472, 0x475, 0x1C7 },
{ 0x48A, 0x4FF, 0x1CB },
{ 0x2000, 0x2030, 0x241 },
{ 0x2032, 0x203C, 0x272 },
{ 0x203E, 0x203E, 0x27D },
{ 0x2043, 0x2044, 0x27E },
{ 0x2047, 0x2049, 0x280 },
{ 0x2053, 0x2053, 0x283 },
{ 0x2057, 0x2057, 0x284 },
{ 0x205F, 0x2064, 0x285 },
{ 0x2070, 0x2070, 0x28B },
{ 0x2074, 0x2079, 0x28C },
{ 0x207F, 0x2089, 0x292 },
{ 0x20A3, 0x20A4, 0x29D },
{ 0x20A7, 0x20A7, 0x29F },
{ 0x20AC, 0x20AC, 0x2A0 },
{ 0x2190, 0x2195, 0x2A1 },
{ 0x21A8, 0x21A8, 0x2A7 },
{ 0x21B2, 0x21B3, 0x2A8 },
{ 0x21B5, 0x21B5, 0x2AA },
{ 0x21D0, 0x21D4, 0x2AB },
{ 0x2200, 0x2200, 0x2B0 },
{ 0x2202, 0x2203, 0x2B1 },
{ 0x2205, 0x220D, 0x2B3 },
{ 0x220F, 0x220F, 0x2BC },
{ 0x2211, 0x2212, 0x2BD },
{ 0x2215, 0x221A, 0x2BF },
{ 0x221D, 0x2220, 0x2C5 },
{ 0x2223, 0x2223, 0x2C9 },
{ 0x2225, 0x2225, 0x2CA },
{ 0x2227, 0x222B, 0x2CB },
{ 0x2234, 0x2237, 0x2D0 },
{ 0x223C, 0x223C, 0x2D4 },
{ 0x2245, 0x2245, 0x2D5 },
{ 0x2248, 0x2248, 0x2D6 },
{ 0x224D, 0x224D, 0x2D7 },
{ 0x2260, 0x2261, 0x2D8 },
{ 0x2264, 0x2265, 0x2DA },
{ 0x226A, 0x226B, 0x2DC },
{ 0x2283, 0x2287, 0x2DE },
{ 0x2295, 0x2298, 0x2E3 },
{ 0x22A5, 0x22A5, 0x2E7 },
{ 0x22C5, 0x22C5, 0x2E8 },
{ 0x22EF, 0x22EF, 0x2E9 },
{ 0xFFFD, 0xFFFD, 0x2EA },
};
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
static const EpdFontGroup bookerly_16_italicGroups[] = {
fix: force auto-hinting for Bookerly to fix inconsistent stem widths (#1098) ## Summary Bookerly's native TrueType hinting is effectively a no-op at the sizes used here, causing FreeType to place stems at inconsistent sub-pixel positions. This results in the 'k' stem (8-bit fringe: 0x38=56) falling just below the 2-bit quantization threshold while 'l' and 'h' stems (fringes: 0x4C=76, 0x40=64) land above it --- making 'k' visibly narrower (2.00px vs 2.33px effective width). FreeType's auto-hinter snaps all stems to consistent grid positions, normalizing effective stem width to 2.67px across all glyphs. Adds --force-autohint flag to fontconvert.py and applies it to Bookerly only. NotoSans, OpenDyslexic, and Ubuntu fonts are unaffected. Here is an example of before/after. Take notice of the vertical stems on characters like `l`, `k`, `n`, `i`, etc. The font is Bookerly 12pt regular: **BEFORE**: ![before](https://github.com/user-attachments/assets/65b2acab-ad95-489e-885e-e3a0163cc252) **AFTER**: ![after](https://github.com/user-attachments/assets/d09a8b5d-40af-4a7d-b622-e1b2cabcce85) Claude generated this script to quantitatively determine that this change makes the vertical stems on a variety of characters more consistent for Bookerly _only_. <details> <summary>Python script</summary> ```python #!/usr/bin/env python3 """Compare stem consistency across all font families with and without auto-hinting. Run from repo root: python3 compare_all_fonts.py """ import freetype DPI = 150 CHARS = ["k", "l", "h", "i", "b", "d"] SIZES = [12, 14, 16, 18] FONTS = { "Bookerly": "lib/EpdFont/builtinFonts/source/Bookerly/Bookerly-Regular.ttf", "NotoSans": "lib/EpdFont/builtinFonts/source/NotoSans/NotoSans-Regular.ttf", "OpenDyslexic": "lib/EpdFont/builtinFonts/source/OpenDyslexic/OpenDyslexic-Regular.otf", "Ubuntu": "lib/EpdFont/builtinFonts/source/Ubuntu/Ubuntu-Regular.ttf", } MODES = { "default": freetype.FT_LOAD_RENDER, "autohint": freetype.FT_LOAD_RENDER | freetype.FT_LOAD_FORCE_AUTOHINT, } def q4to2(v): if v >= 12: return 3 elif v >= 8: return 2 elif v >= 4: return 1 else: return 0 def get_stem_eff(face, char, flags): gi = face.get_char_index(ord(char)) if gi == 0: return None face.load_glyph(gi, flags) bm = face.glyph.bitmap w, h = bm.width, bm.rows if w == 0 or h == 0: return None p2 = [] for y in range(h): row = [] for x in range(w): row.append(q4to2(bm.buffer[y * bm.pitch + x] >> 4)) p2.append(row) # Measure leftmost stem in stable middle rows mid_start, mid_end = h // 4, h - h // 4 widths = [] for y in range(mid_start, mid_end): first = next((x for x in range(w) if p2[y][x] > 0), -1) if first < 0: continue last = first for x in range(first, w): if p2[y][x] > 0: last = x else: break eff = sum(p2[y][x] for x in range(first, last + 1)) / 3.0 widths.append(eff) return round(sum(widths) / len(widths), 2) if widths else None def main(): for font_name, font_path in FONTS.items(): try: freetype.Face(font_path) except Exception: print(f"\n {font_name}: SKIPPED (file not found)") continue print(f"\n{'=' * 80}") print(f" {font_name}") print(f"{'=' * 80}") for size in SIZES: print(f"\n {size}pt:") print(f" {'':6s}", end="") for c in CHARS: print(f" '{c}' ", end="") print(" | spread") for mode_name, flags in MODES.items(): face = freetype.Face(font_path) face.set_char_size(size << 6, size << 6, DPI, DPI) vals = [] print(f" {mode_name:6s}", end="") for c in CHARS: v = get_stem_eff(face, c, flags) vals.append(v) print(f" {v:5.2f}" if v else " N/A", end="") valid = [v for v in vals if v is not None] spread = max(valid) - min(valid) if len(valid) >= 2 else 0 marker = " <-- inconsistent" if spread > 0.5 else "" print(f" | {spread:.2f}{marker}") if __name__ == "__main__": main() ``` </details> Here are the results. The table compares how the font-generation `autohint` flag affects the range of widths of various characters. Lower `spread` mean that glyph stroke widths should appear more consistent. ``` Spread = max stem width - min stem width across glyphs (lower = more consistent): ┌──────────────┬──────┬─────────┬──────────┬──────────┐ │ Font │ Size │ Default │ Autohint │ Winner │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ Bookerly │ 12pt │ 1.49 │ 1.12 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 1.39 │ 1.13 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 1.38 │ 1.16 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.90 │ 1.58 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ NotoSans │ 12pt │ 1.16 │ 0.94 │ mixed │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 0.83 │ 1.14 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 1.41 │ 1.51 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.74 │ 1.63 │ mixed │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ OpenDyslexic │ 12pt │ 2.22 │ 1.44 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 2.57 │ 3.29 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 3.13 │ 2.60 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 3.21 │ 3.23 │ ~tied │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ Ubuntu │ 12pt │ 1.25 │ 1.31 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 14pt │ 1.41 │ 1.64 │ default │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 16pt │ 2.21 │ 1.71 │ autohint │ ├──────────────┼──────┼─────────┼──────────┼──────────┤ │ │ 18pt │ 1.80 │ 1.71 │ autohint │ └──────────────┴──────┴─────────┴──────────┴──────────┘ ``` --- ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? I used AI to make sure I'm not doing something stupid, since I'm not a typography expert. I made the changes though.
2026-02-24 06:13:08 +11:00
{ 0, 5114, 10010, 100, 0 },
{ 5114, 4979, 12001, 96, 100 },
{ 10093, 7303, 19264, 128, 196 },
{ 17396, 398, 540, 33, 324 },
{ 17794, 11662, 31153, 220, 357 },
{ 29456, 1505, 3078, 74, 577 },
{ 30961, 563, 831, 18, 651 },
{ 31524, 373, 636, 4, 669 },
{ 31897, 512, 1109, 15, 673 },
{ 32409, 2529, 5943, 58, 688 },
{ 34938, 148, 256, 1, 746 },
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
};
static const EpdFontData bookerly_16_italic = {
bookerly_16_italicBitmaps,
bookerly_16_italicGlyphs,
bookerly_16_italicIntervals,
64,
44,
36,
-9,
true,
perf: Reduce overall flash usage by 30.7% by compressing built-in fonts (#831) ## Summary **What is the goal of this PR?** Compress reader font bitmaps to reduce flash usage by 30.7%. **What changes are included?** - New `EpdFontGroup` struct and extended `EpdFontData` with `groups`/`groupCount` fields - `--compress` flag in `fontconvert.py`: groups glyphs (ASCII base group + groups of 8) and compresses each with raw DEFLATE - `FontDecompressor` class with 4-slot LRU cache for on-demand decompression during rendering - `GfxRenderer` transparently routes bitmap access through `getGlyphBitmap()` (compressed or direct flash) - Uses `uzlib` for decompression with minimal heap overhead. - 48 reader fonts (Bookerly, NotoSans 12-18pt, OpenDyslexic) regenerated with compression; 5 UI fonts unchanged - Round-trip verification script (`verify_compression.py`) runs as part of font generation ## Additional Context ## Flash & RAM | | baseline | font-compression | Difference | |--|--------|-----------------|------------| | Flash (ELF) | 6,302,476 B (96.2%) | 4,365,022 B (66.6%) | -1,937,454 B (-30.7%) | | firmware.bin | 6,468,192 B | 4,531,008 B | -1,937,184 B (-29.9%) | | RAM | 101,700 B (31.0%) | 103,076 B (31.5%) | +1,376 B (+0.5%) | ## Script-Based Grouping (Cold Cache) Comparison of uncompressed baseline vs script-based group compression (4-slot LRU cache, cleared each page). Glyphs are grouped by Unicode block (ASCII, Latin-1, Latin Extended-A, Combining Marks, Cyrillic, General Punctuation, etc.) instead of sequential groups of 8. ### Render Time | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Median** | 414.9 ms | 431.6 ms | +16.7 ms (+4.0%) | | **Pages** | 37 | 37 | | ### Memory Usage | | Baseline | Compressed (cold cache) | Difference | |---|---|---|---| | **Heap free (median)** | 187.0 KB | 176.3 KB | -10.7 KB | | **Heap free (min)** | 186.0 KB | 166.5 KB | -19.5 KB | | **Largest block (median)** | 148.0 KB | 128.0 KB | -20.0 KB | | **Largest block (min)** | 148.0 KB | 120.0 KB | -28.0 KB | ### Cache Effectiveness | | Misses/page | Hit rate | |---|---|---| | **Compressed (cold cache)** | 2.1 | 99.85% | ------ ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**YES**_ Implementation was done by Claude Code (Opus 4.6) based on a plan developed collaboratively. All generated font headers were verified with an automated round-trip decompression test. The firmware was compiled successfully but has not yet been tested on-device. --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:30:15 +11:00
bookerly_16_italicGroups,
11,
};