diff --git a/.github/workflows/run-unit-tests.yml b/.github/workflows/run-unit-tests.yml index 3ff790e96..4c88c5862 100644 --- a/.github/workflows/run-unit-tests.yml +++ b/.github/workflows/run-unit-tests.yml @@ -221,6 +221,7 @@ jobs: python3 -B test/test_companion_primary_radio_persistence.py -v python3 -B test/test_companion_response_bounds.py -v python3 -B test/test_companion_ack_delivery.py -v + python3 -B test/test_companion_lost_reply.py -v python3 -B test/test_companion_delayed_reply_delivery.py -v python3 -B test/test_companion_hardware_serial.py -v python3 -B test/test_companion_hardware_serial_gps.py -v @@ -567,6 +568,7 @@ jobs: python3 -B test/test_heltec_v4_wifi_setup_page.py -v python3 -B test/test_sensor_webconfig_capabilities.py -v python3 -B test/test_webconfig_ui_runtime.py + python3 -B test/test_webconfig_lost_reply.py -v MESHCORE_REQUIRE_ROOM_BROWSER=1 python3 -B test/test_room_web_ui.py -v MESHCORE_REQUIRE_ROOM_BROWSER=1 python3 -B test/test_room_mail_web_ui.py -v diff --git a/README.md b/README.md index 63dc047b2..c400282a5 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ * **[Repeater forwarding policies](https://mikecarper.github.io/MeshCore/flood_filtering/).** Actions include dropping, rate limiting, assigning scopes, selecting retries, and controlling forwarding priority. Separate policies cover ordinary radio forwarding, bridges, and profile crossover. * **[Private fleet management](https://mikecarper.github.io/MeshCore/fleet_management/).** Deploy filtering, secondary-radio changes, radio schedules, and clock updates to a whole fleet, existing configured or home regions, a GPS center and radius, one node, or a semicolon-separated target list. The publisher signs each complete command once, splitting longer requests across two packets; receivers hold its public verification key, with replay protection and acknowledgements before radio handoff. * **[Flood retries that account for network topology](https://mikecarper.github.io/MeshCore/halo_keymind_settings/#flood-and-advert-settings).** Configure retry counts, path limits, packet-type limits, target prefixes, ignored repeaters, and channel-specific eligibility. Bridge buckets keep retrying until traffic is heard on the intended sides of a relay or the retry budget expires. Qualifying echoes cancel unnecessary attempts. -* **[Enhanced direct messages and direct-route retries](https://mikecarper.github.io/MeshCore/halo_keymind_settings/#direct-retry-settings).** Adapt the coding rate across bounded retry attempts and cancel unnecessary retries when a qualifying echo is heard. [Single Key DMs](https://mikecarper.github.io/MeshCore/companion_protocol/#private-text-when-only-the-sender-knows-the-recipient) let compatible Companions send private text when only the sender knows the recipient's key, using a signed, encrypted introduction. The recipient accepts the sender through the app or opts into automatic acceptance; compact STM32WL builds omit this feature. +* **[Enhanced direct messages and direct-route retries](https://mikecarper.github.io/MeshCore/halo_keymind_settings/#direct-retry-settings).** Adapt the coding rate across bounded retry attempts and cancel unnecessary retries when a qualifying echo is heard. [Single Key DMs](https://mikecarper.github.io/MeshCore/companion_protocol/#private-text-when-only-the-sender-knows-the-recipient) let compatible Companions send private text when only the sender knows the recipient's key, using a signed, encrypted introduction. The recipient accepts the sender through the app or opts into automatic acceptance; compact STM32WL builds omit this feature. An optional [Companion lost-status responder](https://mikecarper.github.io/MeshCore/companion_lost_reply/) answers private "Am I lost?" questions with a saved Yes or No. * **[Enhanced telemetry history](https://mikecarper.github.io/MeshCore/telemetry_decoder/).** Send compact temperature and battery-voltage snapshots of up to 165 samples per packet, plus external-voltage history in chunks. Read retained GPS history through the CLI; GPS history is not included in the automatic telemetry packets. Decode snapshots and CLI history in the browser. * **[Room topics, mailboxes, history, and access controls](https://mikecarper.github.io/MeshCore/room_services/).** Save an announcement and optionally retain the newest 32 chat posts across reboots. Regular users manage personal mailboxes with public or selected-sender access, explicit receipts, and mailbox-only delivery for sleeping trackers. Room users can manage their own return routes and skip older unread chat by date or keep the newest N messages. Explicit ACL roles persist; full-key bans and per-user post/request limits apply to room sessions. ESP32 images with WebConfig provide local Wi-Fi chat, an information board, and an admin dashboard for mailboxes, routes, delivery, activity, catch-up and access. The existing app's chat and catch-up formats remain supported. * **[Full firmware profiles, Companion transports, and ESP32 bridges](https://mikecarper.github.io/MeshCore/full_profiles/).** Full combines the exact board and role's supported features with runtime controls: Companion transports and firmware serving, or qualified ESP32 infrastructure services and MQTT/ESP-NOW/RS-232 bridges. Includes capacity exceptions, matching application slots, exact-board/role partition migration packages, and nRF52 Full/Reduced supported-sensor packages with LoRa OTA. The picker links supported migration routes; USB layout changes use the matching merged image, since an app-only image cannot change the partition table. diff --git a/build_legacy.sh b/build_legacy.sh index 6701eba77..af4317088 100755 --- a/build_legacy.sh +++ b/build_legacy.sh @@ -4192,7 +4192,7 @@ apply_companion_radio_full_profile() { # Every nRF52 Full Companion lends the upper half of its offline queue # to the cold mOTA context. Keep 256 slots for everyday use and reserve # runtime space for Bluetooth, displays, tasks and filesystem buffers. - append_platformio_build_unflags "-DOFFLINE_QUEUE_SIZE=512 -DOFFLINE_QUEUE_SIZE=128 -DOFFLINE_QUEUE_SIZE=16" + append_platformio_build_unflags "-DOFFLINE_QUEUE_SIZE=512 -DOFFLINE_QUEUE_SIZE=240 -DOFFLINE_QUEUE_SIZE=128 -DOFFLINE_QUEUE_SIZE=16" export PLATFORMIO_BUILD_FLAGS="${PLATFORMIO_BUILD_FLAGS} -DOFFLINE_QUEUE_SIZE=256 -DOTA_SHARED_COMPANION_QUEUE=1" case "$env_name" in Heltec_t096_companion_radio_full_*) diff --git a/docs/cli_command_availability.md b/docs/cli_command_availability.md index 7c4760d88..4b1105de2 100644 --- a/docs/cli_command_availability.md +++ b/docs/cli_command_availability.md @@ -95,6 +95,7 @@ over the normal binary USB, BLE, or TCP connection: | [`get public.key`](cli_commands.md#view-this-nodes-public-key) | Companion text terminal and binary command `0x42`; read-only, no private-key export feature required | | `get prv.key` | Local terminal and binary command `0x42`; requires private key export enabled | | `get password` | Reports that Companion has no admin password; infrastructure returns its password locally | +| [`get/set lost.reply`](companion_lost_reply.md) | Local Companion CLI and framed command `0x42` when `MESH_ENABLE_LOST_REPLY` is enabled; saved `off`, `no` or `yes` private-message auto response | | `get wifi.pwd`, `get mqttN.password`, `get mqttN.token` | Local terminal and binary command `0x42`; corresponding WiFi/MQTT feature required | | [`board`](cli_commands.md#show-the-hardware-name) | Every Companion text terminal and command `0x42` | | [`version`](cli_commands.md#get-the-version) | Every Companion text terminal and protocol-v14 command `0x42`; returns the untruncated build identity | diff --git a/docs/companion_lost_reply.md b/docs/companion_lost_reply.md new file mode 100644 index 000000000..9034b240b --- /dev/null +++ b/docs/companion_lost_reply.md @@ -0,0 +1,81 @@ + + + + +# Companion lost-status auto response + +Development Companion builds containing this feature can automatically answer a private `Am I lost?` message with `Yes` +or `No`. You choose the saved answer. The default is `off`, and the firmware +does not infer lost status from GPS, distance, or a missing phone connection. + +This is included in nRF52, ESP32 and RP2040 Companion profiles, including +T1000-E and RAK Tag. Compact STM32 Companion images omit it to preserve their +existing application and filesystem boundaries. A custom build can explicitly +enable `MESH_ENABLE_LOST_REPLY=1` when its flash budget permits; the normal +flash and RAM checks still apply. + +Configure it through a directly connected local Companion CLI: + +~~~text +get lost.reply +set lost.reply no +set lost.reply yes +set lost.reply off +~~~ + +The setting survives reboot and takes effect immediately. USB, BLE and other +local Companion transports can use framed command `0x42`. Builds with a text +terminal also accept these commands there. LoRa CLI cannot read or change this +local setting. A failed save restores the previous answer and reports an error. +Older saved preference images load the new setting as `off`. + +ESP32 Companions with WebConfig also have a **Lost-status auto reply** +selection on the radio configuration page. Choose Off, Reply No or Reply Yes +and save. The control is shown only on Companion firmware with this capability. +The existing mobile app protocol needs no new message type; a native app toggle +is not added by this firmware change. + +## Dog tracker example + +The owner's Companion stores the tracker as a normal radio contact. Set the +answer to `no` during normal operation. If the dog is lost, set it to `yes`. +When the tracker sends `Am I lost?` privately to that reachable Companion, it +receives the selected answer, even when the owner's phone is disconnected. +The same configured answer applies to all eligible contacts on this Companion. + +A tracker client can use that answer to choose its reporting behavior, but its +check-in schedule, sleep/wake policy and GPS reporting must be configured in +the tracker client firmware. The tracker must stay awake for the separate +private answer; a delivery ACK for the question is not that answer. These plain +text answers have no request ID, so a delayed answer cannot be precisely +correlated with a newer check-in. The responding Companion must be powered on +and reachable when a question arrives. For mail that waits while a tracker sleeps, +use [a personal room mailbox](room_services.md#sleeping-tracker-example). + +## Matching and traffic limits + +Only an authenticated ordinary private message from a known persistent radio +contact is eligible. The contact must be an ordinary Companion/chat contact; +room-server and repeater contacts are excluded. Temporary unknown senders, +public channels, room chat posts and CLI messages do not trigger a response. + +The exact phrase `am I lost` is matched without regard to ASCII letter case, +with an optional final question mark and surrounding whitespace. Extra words +or commands do not match. The reply is ordinary encrypted private text, `Yes` +or `No`, and neither answer can trigger another automatic reply. + +Automatic responses are limited to one per contact per minute and one globally +per ten seconds. A bounded four-peer cache uses full public keys and the +incoming request timestamp to suppress retries. Its state clears on reboot. +The same retained request is not answered again; a fresh check uses a new +timestamp. An old retry can receive another answer after a newer request +replaces its saved timestamp or its peer slot is evicted. Queueing an answer +records the request even if later delivery fails. An unanswered poll means +unknown, and the tracker should trust replies only from its configured +Companion's full public key. + +The responder leaves packet capacity for normal receive/ACK work, uses a free +ACK-tracking entry, and does not replace pending user messages or their +delivery deadlines. Busy packet or ACK capacity, or a failed send, can prevent an answer; +the tracker should retry later. A full offline app inbox does not disable the +responder. Normal message reception and notification behavior remain in place. diff --git a/docs/companion_offline_queue.md b/docs/companion_offline_queue.md index 022d1c329..286abf3e7 100644 --- a/docs/companion_offline_queue.md +++ b/docs/companion_offline_queue.md @@ -17,6 +17,7 @@ A reboot clears it. | ESP32 without PSRAM | 256 | | nRF52840 with at most 300 contact slots | 256 | | nRF52840 with more than 300 contacts and the contact cache (non-mOTA-shared queue) | 256 total: up to 15 held DMs use slots until accepted | +| RAK WisMesh Tag ordinary BLE Companion | 240 total: up to 15 held DMs use slots until accepted | | nRF52840 with more than 300 contacts but no contact cache | 208 ordinary frames plus a separate 15-DM queue | | nRF52 Full Companion with the memory correction | 256 normally; 128 while mOTA owns shared storage | | RP2040 | 256 | @@ -60,6 +61,13 @@ Uncached high-contact profiles keep the conservative 208-frame default and separate held queue. An explicit target `OFFLINE_QUEUE_SIZE` still takes precedence. +The ordinary RAK WisMesh Tag BLE profile uses 240 frames to retain the runtime +RAM reserve for Bluetooth, filesystem buffers, and the main task. It keeps +350 contact slots and 40 group channels. All 240 slots are available when no +DMs are held; 15 held DMs leave 225 ordinary slots. This saves 2,832 bytes +compared with 256 frames. The Tag Full Companion retains 256 frames normally +and 128 while mOTA borrows queue storage. + Each queue slot currently costs 177 bytes. A 256-frame queue reserves 45,312 bytes, while a 512-frame queue reserves 90,624 bytes. There is no 256-frame protocol limit: the queue length and indexes can represent 512 or more. The diff --git a/docs/room_services.md b/docs/room_services.md index 4d56f24d6..cff99aac2 100644 --- a/docs/room_services.md +++ b/docs/room_services.md @@ -105,6 +105,9 @@ Room Server provides the room-side queue and polling protocol. A tracker still needs client firmware that schedules check-ins and interprets authenticated commands. Ordinary mailbox text is never executed as a CLI command, and does not itself enable a tracker, wake it remotely or change its GPS reporting rate. +For a reachable owner's Companion, the optional +[lost-status auto responder](companion_lost_reply.md) can also answer a private +`Am I lost?` question with a saved `Yes` or `No`. ### Wi-Fi mailbox management diff --git a/docs/test-results/companion_lost_reply.md b/docs/test-results/companion_lost_reply.md new file mode 100644 index 000000000..aad55e54c --- /dev/null +++ b/docs/test-results/companion_lost_reply.md @@ -0,0 +1,94 @@ + + + + +# Companion lost-status response validation + +Validated on 2026-10-10. These are production-path host tests, browser tests +and firmware builds. No lab radio was flashed for this feature; this report +does not qualify a sleeping tracker client or a live LoRa exchange. + +## Automated checks + +The responder test executes the actual private receive callback, message +composition/send functions, ACK handling and local CLI policy. Seven compiled +variants cover normal and shared one-key DM queues, a text terminal, explicit +STM32 enablement, default STM32 exclusion and explicit exclusion elsewhere. +AddressSanitizer and UndefinedBehaviorSanitizer checks passed. + +Coverage includes exact question matching, Yes/No loop avoidance, known full +identities, temporary/unknown contacts, room/channel/CLI exclusions, a full +offline inbox, duplicate requests, cooldowns, clock wrap, busy packet/ACK +capacity, send failures and preservation of pending user messages/deadlines. +Queueing the response preserves the shared send timer. ACK reception retains +the existing shared-timer behavior; independent per-message expiry continues +to protect pending user deliveries. +Excluded builds have no responder state, automatic send, successful setting +command, save or WebConfig capability. + +Saved preference tests cover all three values, all 256 stored byte values, +legacy images loading off, reboot, atomic save failures, recovery copies and +runtime adapter preservation. Existing CLI, delivery, inbox, notifications +and preference regression suites passed after updating adapters for the new +append-only preference byte. + +WebConfig tests execute the actual JSON and settings handlers with +ArduinoJson. Chromium exercises Off -> No -> Yes -> Off, Companion-only +visibility and the absence of the control on infrastructure roles. Existing +browser, authorization, secret masking and generated asset checks passed. +Both new suites are included in the unit-test workflow. + +## Capacity and reliability + +The responder cache is 184 bytes on ARM and retains four complete public keys. +The saved preference uses an existing padding byte in the tested ARM preference +object and one new byte in its explicit storage image. No heap allocation is +introduced by the responder. + +Compact STM32 Companion images exceeded their existing application boundary +when the responder was included. Those default to `MESH_ENABLE_LOST_REPLY=0`, +preserving their existing features and filesystem layout. Explicit opt-in is +tested synthetically and remains subject to the normal capacity checks. + +The ordinary RAK WisMesh Tag BLE queue uses 240 frames, retaining 350 contacts +and 40 channels and saving 2,832 bytes. Source comparison showed that its prior +256-frame recipe was already below the current runtime RAM allowance before +the new 184-byte responder cache. Full retains its 256-frame shared queue. +Sanitized tests exercise real FIFO wrapping, downloads and held-DM isolation +at 240 slots, plus the production Full override. + +Queueing an answer suppresses that request even if later delivery fails. A +tracker needs a fresh timestamp for a later poll, must stay awake for the +private answer, and must authenticate its configured Companion. Plain Yes/No +answers do not contain a poll ID, so delayed replies cannot be precisely +correlated with a newer poll. An unanswered poll means unknown. + +## Firmware build qualification + +All ten final builds passed flash and internal RAM policy checks. Compact +STM32 and both Full targets were also packaged using the normal +`v1.17.1.9-halo-keymind-cascade-dev` label. Ordinary targets used their normal +PlatformIO recipes. Full nRF52 UF2 boundaries and applicable Bluetooth DFU +handoff checks passed. These are local qualification artifacts, not new +published release assets. + +| Companion target | Responder | Flash used / limit (bytes) | Link-time internal RAM available / required (bytes) | +| --- | --- | --- | --- | +| RAK 3x72 USB | Excluded | 228,924 / 229,376 | 24,728 / 17,408 | +| Tiny Relay USB | Excluded | 228,944 / 229,376 | 24,728 / 17,408 | +| Wio-E5 Mini USB | Excluded | 228,888 / 229,376 | 24,704 / 17,408 | +| Wio-E5 USB | Excluded | 229,008 / 229,376 | 24,736 / 17,408 | +| T1000-E Full | Included | 607,480 / 708,608 | 87,064 / 44,864 | +| RAK WisMesh Tag Full | Included | 649,408 / 712,704 | 82,112 / 44,864 | +| T1000-E USB | Included | 426,756 / 708,608 | 48,248 / 38,944 | +| Pico W USB | Included | 640,180 / 1,568,768 | 101,712 / 17,408 | +| Heltec V4 BLE | Included | 1,550,217 / 6,553,600 | 263,448 / 118,560 | +| RAK WisMesh Tag BLE | Included | 459,564 / 712,704 | 46,316 / 44,864 | + +The STM32 historical-size table uses byte entries while retaining a 32-bit +input file size; exhaustive tests reject oversized aliases and partial +images. Tiny Relay and Wio-E5 use the size option already used by neighboring +STM32 recipes. Existing terminal help was combined into fewer writes while +retaining its text, order and 256-byte maximum per write. Supported images +also show the new lost-reply commands. Contacts, channels and filesystem +boundaries are unchanged on those compact boards. diff --git a/docs/test-results/index.md b/docs/test-results/index.md index 0a6c07cd7..33468a895 100644 --- a/docs/test-results/index.md +++ b/docs/test-results/index.md @@ -40,6 +40,7 @@ Completed validation reports, experiments, and test guides are collected here. O ## Companion, USB, BLE, and display +- [Companion lost-status replies](companion_lost_reply.md) - [Contact-cache and NimBLE RAM qualification](companion_contact_cache_results.md) - [USB Companion ASCII default validation](companion_usb_ascii_validation.md) - [USB Companion client compatibility](companion_usb_client_validation.md) @@ -54,6 +55,7 @@ Completed validation reports, experiments, and test guides are collected here. O ## Build, storage, memory, and checklists +- [Personal room mailbox checks](room_mailboxes.md) - [Stock nRF52 bootloader version audit](bootloader_version_stock_audit.md) - [CLI setting dispatch audit](cli_settings_audit.md) - [Hardware validation checklist](hardware_validation_checklist.md) diff --git a/examples/companion_radio/CompanionFeatures.h b/examples/companion_radio/CompanionFeatures.h index f73b9a109..c6a2d65f6 100644 --- a/examples/companion_radio/CompanionFeatures.h +++ b/examples/companion_radio/CompanionFeatures.h @@ -2,6 +2,17 @@ #include #include +// Compact STM32 Companion images retain their existing application/filesystem +// boundary. The persistent preference stays in the shared wire image even +// when the optional private responder is excluded from an image. +#ifndef MESH_ENABLE_LOST_REPLY + #if defined(STM32_PLATFORM) + #define MESH_ENABLE_LOST_REPLY 0 + #else + #define MESH_ENABLE_LOST_REPLY 1 + #endif +#endif + // STM32WL has only 224 KiB of application flash. Keep its established image // within that boundary; larger targets provide the programmable alert engine. #ifndef COMPANION_FEATURE_NOTIFICATIONS diff --git a/examples/companion_radio/DataStore.cpp b/examples/companion_radio/DataStore.cpp index cf8422dbe..5d4a17c4e 100644 --- a/examples/companion_radio/DataStore.cpp +++ b/examples/companion_radio/DataStore.cpp @@ -1052,6 +1052,8 @@ bool DataStore::loadPrefsInt(const char *filename, // Older images have no independent debug preference. Never inherit a // runtime-on value when loading one of those images. loaded_prefs.usb_debug_enabled = 0; + // Old images cannot opt in using an unrelated runtime preference value. + loaded_prefs.lost_reply = 0; double loaded_lat = node_lat; double loaded_lon = node_lon; // The original image ended after ble_pin at byte 84. Later releases only @@ -1059,7 +1061,14 @@ bool DataStore::loadPrefsInt(const char *filename, // actually emitted by those releases, but reject a truncated field/group // or an unknown tail before any value reaches the live preferences. static const uint32_t MIN_PREFS_SIZE = 84; - static const uint16_t KNOWN_PREFS_SIZES[] = { +#if defined(STM32_PLATFORM) + // All published STM32 image lengths fit in one byte. The file size below + // remains wide so oversized files cannot alias an accepted legacy length. + using PrefsImageSize = uint8_t; +#else + using PrefsImageSize = uint16_t; +#endif + static const PrefsImageSize KNOWN_PREFS_SIZES[] = { 84, 85, 90, 91, 92, 93, 140, 141, 142, 143, 144, 155, 156, 157, 158, 159, 159 + sizeof(loaded_prefs.bluetooth_name), @@ -1120,6 +1129,13 @@ bool DataStore::loadPrefsInt(const char *filename, 332, #else 235, +#endif +#ifdef TBEAM_1W + 243, // Opt-in lost reply, appended after independent USB debug +#elif defined(RP2040_PLATFORM) && defined(ENABLE_WIFI_INTERFACE) + 333, +#else + 236, #endif }; const uint32_t prefs_size = file.size(); @@ -1281,6 +1297,7 @@ bool DataStore::loadPrefsInt(const char *filename, sizeof(loaded_prefs.gps_sync_interval_hours)); readOptionalField(&loaded_prefs.usb_debug_enabled, sizeof(loaded_prefs.usb_debug_enabled)); + readOptionalField(&loaded_prefs.lost_reply, sizeof(loaded_prefs.lost_reply)); #endif // Any bytes left over form only part of a historically appended field. @@ -1290,6 +1307,7 @@ bool DataStore::loadPrefsInt(const char *filename, file.close(); if (!success) return false; loaded_prefs.usb_debug_enabled = loaded_prefs.usb_debug_enabled == 1 ? 1 : 0; + loaded_prefs.lost_reply = loaded_prefs.lost_reply <= 2 ? loaded_prefs.lost_reply : 0; if (!_prefs.copyPersistedValuesFrom(loaded_prefs)) return false; node_lat = loaded_lat; node_lon = loaded_lon; @@ -1318,7 +1336,7 @@ bool DataStore::savePrefs(const CompanionNodePrefs& _prefs, double node_lat, dou if (file) { #if defined(STM32_PLATFORM) && defined(__GNUC__) using namespace mesh::companion_prefs; - uint8_t image[235]; + uint8_t image[236]; const uint8_t pad[4] = {}; size_t used = 0; for (const PrefField& field : PREF_FIELDS) { @@ -1337,7 +1355,7 @@ bool DataStore::savePrefs(const CompanionNodePrefs& _prefs, double node_lat, dou #if defined(STM32_PLATFORM) // Keep the explicit wire field list, but make one bounded atomic write. // Other platforms retain direct writes and their existing stack footprint. - uint8_t image[235]; + uint8_t image[236]; size_t image_length = 0; const auto writeField = [&](const void* data, size_t size) -> bool { if (image_length > sizeof(image) @@ -1467,11 +1485,11 @@ bool DataStore::savePrefs(const CompanionNodePrefs& _prefs, double node_lat, dou #endif // Pack only the explicit persisted tail, never the class's padded layout. // memcpy retains the GPS field's established native byte representation. - uint8_t tail[9] = { + uint8_t tail[10] = { _prefs.flood_retry_attempts, _prefs.flood_retry_max_path, _prefs.flood_retry_group_max_path, _prefs.flood_retry_advert_enabled, _prefs.one_key_dm_enabled, _prefs.bluetooth_enabled, 0, 0, - _prefs.usb_debug_enabled}; + _prefs.usb_debug_enabled, _prefs.lost_reply}; memcpy(tail + 6, &_prefs.gps_sync_interval_hours, sizeof(_prefs.gps_sync_interval_hours)); success = success && writeField(tail, sizeof(tail)); diff --git a/examples/companion_radio/MyMesh.cpp b/examples/companion_radio/MyMesh.cpp index 4ec99ecab..4ecbdfe59 100644 --- a/examples/companion_radio/MyMesh.cpp +++ b/examples/companion_radio/MyMesh.cpp @@ -1785,8 +1785,68 @@ bool MyMesh::sendFleetCommandData(mesh::GroupChannel& channel, const uint8_t* en } #endif +#if MESH_ENABLE_LOST_REPLY +void MyMesh::maybeReplyToLostQuestion(const ContactInfo& from, + uint32_t sender_timestamp, const char* text) { + if ((_prefs.lost_reply != mesh::companion::LostReplyNo + && _prefs.lost_reply != mesh::companion::LostReplyYes) + || from.type != ADV_TYPE_CHAT || isTransientContact(from) + || !mesh::companion::isLostReplyQuestion(text)) return; + + // Contact cache references are borrowed. Preserve identity before servicing + // other sends, then acquire the recipient only when ready to compose it. + uint8_t recipient_key[PUB_KEY_SIZE]; + memcpy(recipient_key, from.id.pub_key, sizeof(recipient_key)); + const uint32_t now = _ms->getMillis(); + if (!lost_reply_limiter.canReply(recipient_key, sender_timestamp, now)) return; + + expireExpectedAcks(); + AckTableEntry* available = NULL; + for (AckTableEntry& entry : expected_ack_table) { + if (entry.ack == 0) { available = &entry; break; } + } + // Automatic answers must leave ordinary sends and their ACK/RX reserve + // intact. A busy application can retry its question after capacity returns. + if (available == NULL || _mgr->getFreeCount() <= 2) return; + ContactInfo* recipient = lookupPersistentContactByPubKey(recipient_key, PUB_KEY_SIZE); + if (recipient == NULL || recipient->type != ADV_TYPE_CHAT) return; + const char* answer = _prefs.lost_reply == mesh::companion::LostReplyYes ? "Yes" : "No"; + const uint32_t timestamp = getRTCClock()->getCurrentTimeUnique(); + uint32_t expected_ack = 0, timeout = 0; + // The final argument receives the actual packet hash for ACK cancellation. No + // semantic message retry key is supplied, so user sends are not replaced. + uint8_t retry_key[MAX_HASH_SIZE] = {}; + const int result = sendMessageDetached(*recipient, timestamp, answer, + expected_ack, timeout, retry_key); + // Automatic ACKs use the existing per-entry expiry service. Do not move an + // application or terminal send's shared BaseChatMesh timeout deadline. + if (result == MSG_SEND_FAILED) return; + + lost_reply_limiter.rememberReply(recipient_key, sender_timestamp, now); + if (expected_ack != 0) { + clearExpectedAck(*available, false); + available->msg_sent = now; + available->expires_at = futureMillis(timeout); + available->ack = expected_ack; + available->message_timestamp = timestamp; + available->contact = recipient; + memcpy(available->retry_key, retry_key, sizeof(available->retry_key)); + mesh::Utils::sha256(available->text_fingerprint, sizeof(available->text_fingerprint), + recipient_key, PUB_KEY_SIZE, + (const uint8_t*)answer, strlen(answer)); + // No application or terminal transport owns this automatic send. + available->reply_route = NULL; + expireExpectedAcks(); + } +} +#endif + void MyMesh::onMessageRecv(const ContactInfo &from, mesh::Packet *pkt, uint32_t sender_timestamp, const char *text) { +#if MESH_ENABLE_LOST_REPLY + // Answer independently of app inbox capacity, including held/retried DMs. + maybeReplyToLostQuestion(from, sender_timestamp, text); +#endif #if MESH_ENABLE_ONE_KEY_DM uint8_t dm_id[ONE_KEY_DM_ID_SIZE]; makeOneKeyDMId(dm_id, sender_timestamp, text); @@ -4551,12 +4611,18 @@ void MyMesh::getNodeSnapshot(WebConfigServer::NodeSnapshot& s) { s.rx_ps_rx_us = _prefs.rx_ps_rx_us; s.rx_ps_sleep_us = _prefs.rx_ps_sleep_us; s.power_saving = _prefs.powersaving_enabled; +#if MESH_ENABLE_LOST_REPLY + s.lost_reply = _prefs.lost_reply; +#endif #ifdef WITH_MQTT_BRIDGE s.mqtt_enabled = _mqtt_enabled; #endif s.repeat = _prefs.client_repeat != 0; s.capabilities = WebConfigServer::CAP_LOCATION | WebConfigServer::CAP_AIRTIME | WebConfigServer::CAP_RX_DELAY | WebConfigServer::CAP_POWER_SAVING; +#if MESH_ENABLE_LOST_REPLY + s.capabilities |= WebConfigServer::CAP_LOST_REPLY; +#endif #ifdef BLE_PIN_CODE s.capabilities |= WebConfigServer::CAP_BLUETOOTH_NAME | WebConfigServer::CAP_BLUETOOTH_MAC @@ -9450,9 +9516,9 @@ void MyMesh::handleTerminalCommand(char* command) { " stats-core / stats-radio / stats-radio-diag / stats-packets\r\n" " get prv.key (when private key export is enabled)\r\n" " get password (this role has no admin password)\r\n" - " erase (erase stored settings and identity)\r\n"); - terminalOutput().print(" board\r\n"); - terminalOutput().print(" version\r\n"); + " erase (erase stored settings and identity)\r\n" + " board\r\n" + " version\r\n"); terminalOutput().print(" get storage.layout\r\n"); #if defined(NRF52_PLATFORM) && defined(EXTRAFS) && !defined(QSPIFLASH) terminalOutput().print(" get flash.health\r\n"); @@ -9477,8 +9543,8 @@ void MyMesh::handleTerminalCommand(char* command) { " set display.inbox \r\n" " set display.rotation <0|90|180|270>\r\n" " get display.touch\r\n" - " set display.touch (this boot only)\r\n"); - terminalOutput().print(" get public.key\r\n"); + " set display.touch (this boot only)\r\n" + " get public.key\r\n"); terminalOutput().print( " set {name|lat|lon|freq|tx|af} {value}\r\n" " get wifi|espnow|2.4ghz\r\n" @@ -9495,8 +9561,10 @@ void MyMesh::handleTerminalCommand(char* command) { terminalOutput().print(" get bluetooth.stealth\r\n"); terminalOutput().print(" set bluetooth.stealth on|off\r\n"); #endif - terminalOutput().print(" set pin <0-999999>\r\n"); - terminalOutput().print(" powersaving [on|off]\r\n"); +#if MESH_ENABLE_LOST_REPLY + terminalOutput().print(" get lost.reply\r\n" " set lost.reply \r\n"); +#endif + terminalOutput().print(" set pin <0-999999>\r\n" " powersaving [on|off]\r\n"); #if MESH_USB_LOGGING_AVAILABLE terminalOutput().print( " get usb.logging\r\n" @@ -9642,6 +9710,10 @@ static bool isCompanionRadioPrefsCommand(const char* command) { // Called only for directly attached USB/BLE/TCP/browser clients. Commands // received over LoRa use handleCommand() with a nonzero sender timestamp. bool MyMesh::handleDirectCommand(const char* command, char* reply, size_t reply_size) { +#if MESH_ENABLE_LOST_REPLY + if (mesh::companion::handleLostReplyCommand( + _prefs, command, reply, reply_size, [this]() { return savePrefs(); })) return true; +#endif #ifdef MESH_BUTTON_AUDIO_HIL // Present only in an explicitly instrumented physical-test build. if (_ui && _ui->handleButtonAudioTest(command, reply, reply_size)) return true; diff --git a/examples/companion_radio/MyMesh.h b/examples/companion_radio/MyMesh.h index 329ad9807..fa9f909f0 100644 --- a/examples/companion_radio/MyMesh.h +++ b/examples/companion_radio/MyMesh.h @@ -43,6 +43,9 @@ #include #include #include +#if MESH_ENABLE_LOST_REPLY +#include +#endif #include #include #include @@ -807,6 +810,11 @@ private: }; #define EXPECTED_ACK_TABLE_SIZE 8 AckTableEntry expected_ack_table[EXPECTED_ACK_TABLE_SIZE]; // circular table +#if MESH_ENABLE_LOST_REPLY + mesh::companion::LostReplyLimiter lost_reply_limiter; + void maybeReplyToLostQuestion(const ContactInfo& from, uint32_t sender_timestamp, + const char* text); +#endif #if MESH_ENABLE_ONE_KEY_DM // A recent ACK proves that peer can decrypt our normal text packets. Retry // attempts still send the introduction in case its contact was later erased. diff --git a/examples/companion_radio/NodePrefs.h b/examples/companion_radio/NodePrefs.h index 065566b9f..35abbae71 100644 --- a/examples/companion_radio/NodePrefs.h +++ b/examples/companion_radio/NodePrefs.h @@ -115,6 +115,8 @@ public: // Debug verbosity is independent of the packet/output master switch. Keep // this after the published GPS cadence so legacy images default to quiet. uint8_t usb_debug_enabled = 0; + // Appended opt-in private-message response: 0=off, 1=no, 2=yes. + uint8_t lost_reply = 0; private: class RadioPrefs : public CommonRadioPrefs { @@ -253,22 +255,22 @@ public: // untouched, and leave a normally constructed snapshot's adapters local. bool copyPersistedValuesFrom(const CompanionNodePrefs& source) { if (&source == this) return true; - static_assert(sizeof(usb_debug_enabled) == sizeof(uint8_t), - "The published USB debug preference is one byte"); + static_assert(sizeof(lost_reply) == sizeof(uint8_t), + "The published lost reply preference is one byte"); const uintptr_t first = reinterpret_cast(&airtime_factor); - const uintptr_t last = reinterpret_cast(&usb_debug_enabled); + const uintptr_t last = reinterpret_cast(&lost_reply); if (last < first - || last - first > sizeof(*this) - sizeof(usb_debug_enabled)) { + || last - first > sizeof(*this) - sizeof(lost_reply)) { return false; } const size_t size = static_cast(last - first) - + sizeof(usb_debug_enabled); + + sizeof(lost_reply); const auto bounded = [size](const CompanionNodePrefs& values) -> bool { const uintptr_t object = reinterpret_cast(&values); const uintptr_t begin = reinterpret_cast(&values.airtime_factor); const uintptr_t end = - reinterpret_cast(&values.usb_debug_enabled); + reinterpret_cast(&values.lost_reply); const uintptr_t radio_begin = reinterpret_cast(&values.radio); const uintptr_t custom_begin = reinterpret_cast(&values.custom); // Subtractions happen only after the corresponding ordering checks. @@ -276,7 +278,7 @@ public: return begin >= object && begin - object <= sizeof(values) && size <= sizeof(values) - static_cast(begin - object) && end >= begin - && end - begin == size - sizeof(values.usb_debug_enabled) + && end - begin == size - sizeof(values.lost_reply) && radio_begin >= begin && size <= radio_begin - begin && custom_begin >= begin && size <= custom_begin - begin; }; diff --git a/examples/companion_radio/PrefsStorageLayout.h b/examples/companion_radio/PrefsStorageLayout.h index 307d95b47..180c9197d 100644 --- a/examples/companion_radio/PrefsStorageLayout.h +++ b/examples/companion_radio/PrefsStorageLayout.h @@ -29,8 +29,8 @@ constexpr PrefField prefField() { static_assert(Offset < PrefsLat && Length <= UINT8_MAX, "compact preference field bounds"); static_assert(Offset + Length <= - __builtin_offsetof(CompanionNodePrefs, usb_debug_enabled) - + sizeof(CompanionNodePrefs::usb_debug_enabled), + __builtin_offsetof(CompanionNodePrefs, lost_reply) + + sizeof(CompanionNodePrefs::lost_reply), "preference field stays before runtime adapters"); static_assert(Offset + Length <= sizeof(CompanionNodePrefs), "preference field stays inside its object"); @@ -114,6 +114,7 @@ static constexpr PrefField PREF_FIELDS[] = { PREF_FIELD(bluetooth_enabled, 1), PREF_FIELD(gps_sync_interval_hours, 2), PREF_FIELD(usb_debug_enabled, 1), + PREF_FIELD(lost_reply, 1), }; #undef PREF_FIELD #pragma GCC diagnostic pop @@ -122,7 +123,7 @@ constexpr size_t wireSize(size_t count) { return count == 0 ? 0 : PREF_FIELDS[count - 1].length + wireSize(count - 1); } static_assert(wireSize(MANDATORY_FIELDS) == 84, "published mandatory image size"); -static_assert(wireSize(FIELD_COUNT) == 235, "published STM32 preference image size"); +static_assert(wireSize(FIELD_COUNT) == 236, "published STM32 preference image size"); static const void* prefValue(const PrefField& field, const CompanionNodePrefs& values, diff --git a/mkdocs.yml b/mkdocs.yml index 1ed5d851e..a3f64cb6b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -81,6 +81,7 @@ nav: - WiFi.md - flood_filtering.md - gps_tracking.md + - companion_lost_reply.md - nrf52_power_management.md - CLI and protocol reference: - cli_commands.md diff --git a/src/helpers/BaseChatMesh.cpp b/src/helpers/BaseChatMesh.cpp index 571ffca22..155b0eef4 100644 --- a/src/helpers/BaseChatMesh.cpp +++ b/src/helpers/BaseChatMesh.cpp @@ -671,6 +671,18 @@ int BaseChatMesh::sendMessage(const ContactInfo& recipient, uint32_t timestamp, return rc; } +int BaseChatMesh::sendMessageDetached(const ContactInfo& recipient, + uint32_t timestamp, const char* text, + uint32_t& expected_ack, + uint32_t& est_timeout, + uint8_t* packet_hash) { + const unsigned long previous_timeout = txt_send_timeout; + const int result = sendMessage(recipient, timestamp, 0, text, expected_ack, + est_timeout, packet_hash); + txt_send_timeout = previous_timeout; + return result; +} + int BaseChatMesh::sendCommandData(const ContactInfo& recipient, uint32_t timestamp, uint8_t attempt, uint8_t txt_type, const char* text, diff --git a/src/helpers/BaseChatMesh.h b/src/helpers/BaseChatMesh.h index 7cb8f5645..6ece54f53 100644 --- a/src/helpers/BaseChatMesh.h +++ b/src/helpers/BaseChatMesh.h @@ -100,6 +100,11 @@ class BaseChatMesh : public mesh::Mesh { protected: void sendAckTo(const ContactInfo& dest, const uint8_t* ack_hash, uint8_t ack_len=4); + // Autonomous replies have independent ACK tracking and must preserve the + // application/terminal send's shared timeout. + int sendMessageDetached(const ContactInfo& recipient, uint32_t timestamp, + const char* text, uint32_t& expected_ack, + uint32_t& est_timeout, uint8_t* packet_hash); BaseChatMesh(mesh::Radio& radio, mesh::MillisecondClock& ms, mesh::RNG& rng, mesh::RTCClock& rtc, mesh::PacketManager& mgr, mesh::MeshTables& tables) : mesh::Mesh(radio, ms, rng, rtc, mgr, tables) { diff --git a/src/helpers/CompanionLostReply.h b/src/helpers/CompanionLostReply.h new file mode 100644 index 000000000..086a96dd6 --- /dev/null +++ b/src/helpers/CompanionLostReply.h @@ -0,0 +1,135 @@ +#pragma once + +#include +#include +#include +#include + +namespace mesh { +namespace companion { + +// This is an owner-selected answer, never an assessment of a GPS position. +// Values are also the append-only Companion preference representation. +enum LostReply : uint8_t { LostReplyOff = 0, LostReplyNo = 1, LostReplyYes = 2 }; + +inline bool lostReplyWhitespace(char c) { + return c == ' ' || uint8_t(c - '\t') <= uint8_t('\r' - '\t'); +} + +inline bool isLostReplyQuestion(const char* text) { + if (text == NULL) return false; + while (lostReplyWhitespace(*text)) ++text; + static const char question[] = "am i lost"; + for (size_t i = 0; i < sizeof(question) - 1; ++i) { + char c = *text++; + if (c >= 'A' && c <= 'Z') c = char(c + ('a' - 'A')); + if (c != question[i]) return false; + } + if (*text == '?') ++text; + while (lostReplyWhitespace(*text)) ++text; + return *text == 0; +} + +inline const char* lostReplyName(uint8_t value) { + return value == LostReplyNo ? "no" : value == LostReplyYes ? "yes" : "off"; +} + +// Only directly attached clients call this handler. No radio CLI route may +// change the locally saved answer, even with a remote CLI permission flag. +template +bool handleLostReplyCommand(Prefs& prefs, const char* command, char* reply, + size_t capacity, Save save) { + if (strcmp(command, "get lost.reply") == 0) { + snprintf(reply, capacity, "> %s", lostReplyName(prefs.lost_reply)); + return true; + } + const char prefix[] = "set lost.reply "; + if (strncmp(command, prefix, sizeof(prefix) - 1) != 0) return false; + const char* value = command + sizeof(prefix) - 1; + uint8_t selected; + if (strcmp(value, "off") == 0) selected = LostReplyOff; + else if (strcmp(value, "no") == 0) selected = LostReplyNo; + else if (strcmp(value, "yes") == 0) selected = LostReplyYes; + else { + snprintf(reply, capacity, "Error: use off, no or yes"); + return true; + } + const uint8_t previous = prefs.lost_reply; + prefs.lost_reply = selected; + if (!save()) { + prefs.lost_reply = previous; + snprintf(reply, capacity, "Error: could not save lost reply"); + } else { + snprintf(reply, capacity, "> lost.reply %s", value); + } + return true; +} + +// Four retained full peer identities bound both memory and response traffic. +// A peer slot cannot be evicted during its minute-long cooldown. Exact radio +// retries remain suppressed while that peer's last answered request is kept; +// this runtime cache is intentionally cleared by a reboot. +class LostReplyLimiter { +public: + static constexpr size_t PeerCount = 4; + static constexpr size_t KeySize = 32; + static constexpr uint32_t PeerIntervalMillis = 60000; + static constexpr uint32_t GlobalIntervalMillis = 10000; + + LostReplyLimiter() : last_reply_(0), replied_(false) { + memset(peers_, 0, sizeof(peers_)); + } + + bool canReply(const uint8_t* key, uint32_t timestamp, uint32_t now) const { + return replySlot(key, timestamp, now) >= 0; + } + + void rememberReply(const uint8_t* key, uint32_t timestamp, uint32_t now) { + const int chosen = replySlot(key, timestamp, now); + if (chosen < 0) return; + Peer& peer = peers_[chosen]; + memcpy(peer.key, key, KeySize); + peer.timestamp = timestamp; + peer.replied_at = now; + peer.valid = true; + last_reply_ = now; + replied_ = true; + } + +private: + struct Peer { + uint8_t key[KeySize]; + uint32_t timestamp; + uint32_t replied_at; + bool valid; + }; + Peer peers_[PeerCount]; + uint32_t last_reply_; + bool replied_; + + // Share the full identity/cooldown scan between admission and commit. + // Inlining both copies costs flash on constrained Companion targets. +#if defined(__GNUC__) + __attribute__((noinline)) +#endif + int replySlot(const uint8_t* key, uint32_t timestamp, uint32_t now) const { + if (key == NULL || (replied_ && uint32_t(now - last_reply_) < GlobalIntervalMillis)) + return -1; + int available = -1; + for (size_t i = 0; i < PeerCount; ++i) { + const Peer& peer = peers_[i]; + if (peer.valid && memcmp(peer.key, key, KeySize) == 0) { + return peer.timestamp != timestamp + && uint32_t(now - peer.replied_at) >= PeerIntervalMillis ? int(i) : -1; + } + if (available < 0 && (!peer.valid + || uint32_t(now - peer.replied_at) >= PeerIntervalMillis)) available = int(i); + } + return available; + } +}; + +static_assert(sizeof(LostReplyLimiter) <= 192, "lost reply state stays bounded"); + +} // namespace companion +} // namespace mesh diff --git a/src/helpers/WebConfigKeys.h b/src/helpers/WebConfigKeys.h index 117a0470a..9f8020f1b 100644 --- a/src/helpers/WebConfigKeys.h +++ b/src/helpers/WebConfigKeys.h @@ -18,7 +18,7 @@ // separately, see wcIsAdminPasswordKey below. static const char* const WC_ALLOWED_SET_KEYS[] = { // NodePrefs (radio / node) - "name", "bluetooth.name", "bluetooth.mac", "bluetooth.stealth", + "name", "bluetooth.name", "bluetooth.mac", "bluetooth.stealth", "lost.reply", "lat", "lon", "radio", "tx", "af", "rxdelay", "txdelay", "cad", "radio.rxgain", "radio.fem.rxgain", "radio.fem.txgain", "radio.rxps", "powersaving", "repeat", diff --git a/src/helpers/esp32/WebConfigHtml.h b/src/helpers/esp32/WebConfigHtml.h index a69b8496e..3565f9847 100644 --- a/src/helpers/esp32/WebConfigHtml.h +++ b/src/helpers/esp32/WebConfigHtml.h @@ -1,46 +1,46 @@ // Auto-generated by scripts/generate_webconfig_html.py from webui/index.html // DO NOT EDIT - edit webui/index.html instead. // Compressed with Google Zopfli 0.4.3 (gzip, 1000 iterations). -// shipped-page-sha256: a91ff84d309bc581ecd0558b9c1c2985f212564425417a13f95c34b03627a85e +// shipped-page-sha256: d8cd1d7ff869526cb1fd4ee17190076930529bf975fbb5e2cef05b40980469e4 #pragma once #include #include -const uint32_t WEBCONFIG_HTML_GZ_LEN = 34038; -const char WEBCONFIG_HTML_ETAG[] = "\"72583d025af248b5\""; -const char WEBCONFIG_HTML_VERSION[] = "2d0842255cf9e90a"; +const uint32_t WEBCONFIG_HTML_GZ_LEN = 34215; +const char WEBCONFIG_HTML_ETAG[] = "\"8e687818f666d160\""; +const char WEBCONFIG_HTML_VERSION[] = "978998947ecc4961"; const uint16_t WEBCONFIG_HTML_LOADER_LEN = 461; const uint16_t WEBCONFIG_HTML_SUCCESS_LEN = 65; const uint8_t WEBCONFIG_HTML_LOADER[] PROGMEM = { - 0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x75,0x52,0x47,0x97,0x9c,0x30, - 0x0c,0xfe,0x2b,0xce,0x56,0x3c,0x85,0x65,0x7b,0x01,0x4f,0x0a,0x2f,0xa7,0xf4,0x7e, - 0xf6,0x18,0xb1,0xf8,0xc5,0x23,0xf1,0x84,0x18,0xb6,0xf1,0xdf,0x93,0x69,0xe9,0xd1, - 0x45,0xbd,0x7f,0xd9,0xa3,0x82,0x9c,0xdc,0xd6,0xa0,0x2a,0x99,0x85,0x49,0x36,0x03, - 0xb1,0xca,0x55,0x96,0x1b,0x10,0xd3,0x4a,0x39,0xbe,0x58,0xdb,0xd0,0xce,0xc0,0xcc, - 0x3d,0x74,0x35,0xb1,0x28,0x47,0x28,0x80,0x62,0xb6,0x3a,0x5f,0x48,0x65,0x0a,0x98, - 0x7b,0x07,0xe3,0xa5,0x32,0xf2,0xe8,0xc5,0xdb,0x30,0x6e,0x9c,0x0d,0x60,0x0e,0xb7, - 0x26,0x99,0x78,0x09,0x30,0x79,0x05,0x4d,0x95,0x13,0x83,0xfa,0x02,0xd3,0x9c,0xb0, - 0xf4,0xd7,0xd9,0xc1,0xca,0x93,0x4d,0xa9,0xb8,0x9d,0xbc,0x24,0x5b,0x78,0xbc,0x56, - 0x7f,0xc7,0xed,0x55,0x10,0x82,0xaf,0xd3,0xac,0x71,0xec,0x6b,0x99,0x44,0x65,0x8b, - 0x4e,0x3c,0x61,0xa4,0xef,0xe7,0x96,0x15,0x9a,0x24,0xdd,0x98,0x54,0x20,0x5b,0xac, - 0xed,0xb9,0xe9,0x3c,0x16,0xd4,0xc5,0x4f,0xa7,0xc4,0x92,0x13,0x0a,0x53,0x08,0xc0, - 0x23,0x67,0xf2,0xbd,0x3d,0x84,0x4e,0xe5,0x91,0x1e,0x89,0x71,0x7b,0x7b,0x0d,0xc8, - 0x47,0x3f,0x03,0x6a,0xe5,0xd7,0xe2,0x2e,0xb6,0x8b,0xcc,0x48,0xf7,0xa3,0xcb,0xe4, - 0x3b,0xe9,0xb4,0x04,0x71,0x55,0xb4,0x75,0xd0,0xfa,0xc7,0x73,0x73,0x54,0x24,0x17, - 0x27,0x47,0x47,0xa7,0xa7,0xae,0xbc,0x84,0xcb,0xc4,0x6e,0x8d,0xdc,0xe3,0xfb,0xc6, - 0x5f,0xa3,0x0d,0x57,0x2e,0x5e,0x09,0xfd,0xd5,0x7d,0xaf,0x63,0xa9,0x00,0x7f,0x16, - 0x66,0x7d,0xef,0xcb,0x88,0x63,0xfa,0xaa,0x19,0xa4,0x65,0x54,0x1c,0x0b,0xdc,0x48, - 0xa4,0xd3,0xa5,0xbd,0x11,0x2b,0x6d,0x63,0x8c,0x39,0x49,0x2e,0xf5,0x7d,0x20,0x67, - 0x17,0x69,0x31,0xc3,0x6a,0xb7,0x74,0x9d,0x84,0x6d,0x08,0xbd,0x54,0x4c,0x9d,0x7a, - 0xce,0x4c,0x1c,0x6d,0x09,0x5b,0x6c,0x4a,0x60,0x55,0x5a,0x1f,0xa0,0xd8,0xd2,0x7f, - 0xb5,0xae,0x97,0xad,0x45,0xbb,0x00,0x96,0x37,0x1b,0xcb,0xb2,0x6f,0x6d,0x8c,0x59, - 0x94,0x5c,0xcf,0x94,0x16,0xe4,0xda,0x19,0xa0,0xc4,0x54,0x03,0x46,0xfa,0xa7,0xde, - 0xb1,0x17,0x88,0xea,0x5f,0x2c,0x2e,0x50,0x03,0x8b,0x2b,0xfd,0xe8,0x03,0xff,0xef, - 0x33,0x1c,0x62,0x76,0xac,0x7f,0x39,0xf8,0x62,0xab,0xd1,0x69,0x92,0x0c,0x50,0xa7, - 0x10,0x1a,0x50,0x3f,0xea,0x2e,0x70,0xb1,0xbc,0x4c,0xbe,0xc1,0xdb,0x27,0xb4,0xd3, - 0x00,0x4a,0x68,0xf9,0xe7,0x9f,0x10,0xb9,0x52,0x5b,0x43,0x18,0x6e,0xc5,0xea,0x3d, - 0x2c,0x1d,0x42,0x8a,0x41,0xf8,0x36,0xde,0xea,0x75,0xbf,0x3a,0x5b,0xaf,0x23,0x9d, - 0x1d,0xac,0x21,0xf4,0x0d,0x45,0xc6,0x70,0x47,0xf8,0x02,0x00,0x00, + 0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0xff,0x75,0x52,0x45,0x97,0xdb,0x30, + 0x10,0xfe,0x2b,0xea,0xa2,0x15,0xce,0xb2,0x41,0x29,0xf8,0xf5,0x54,0xe6,0xb3,0x22, + 0x8f,0xd7,0x7a,0x55,0x34,0x7e,0xa3,0x71,0xbc,0xe4,0xff,0xde,0x86,0xca,0x9d,0xcb, + 0x30,0x7f,0xd9,0xa3,0x02,0x0d,0xdf,0xd6,0x20,0x2a,0x5e,0xb8,0x59,0xb6,0x00,0xd6, + 0xc2,0x54,0x9a,0x02,0xb0,0x6a,0xb8,0x1c,0x5e,0x6d,0x6d,0x5e,0x2f,0x40,0x2d,0x2d, + 0xb4,0x35,0x12,0x0b,0x83,0x9e,0xc1,0xb3,0xda,0x6b,0x6d,0xc1,0x95,0x2a,0x60,0x69, + 0x0d,0x0c,0xd7,0xca,0xc0,0x7a,0xcb,0x56,0xbb,0x61,0x30,0xda,0x81,0x9a,0xee,0xcd, + 0x32,0xb6,0xec,0x60,0xf6,0x0a,0x42,0x95,0x23,0x81,0xf8,0x02,0xf3,0x1c,0x7d,0x69, + 0xaf,0xb3,0xf1,0xc6,0x93,0xcd,0xb1,0xb8,0x9d,0xbd,0x44,0x5d,0x58,0x7f,0x2d,0xfe, + 0x8e,0x3b,0xaa,0xc0,0x39,0x5b,0xa7,0x59,0x30,0x64,0x6b,0x9e,0x45,0x65,0xe3,0x0d, + 0x5b,0xf4,0x91,0xbc,0x5f,0x6a,0x12,0x5e,0x4d,0xd2,0x9d,0x49,0x38,0xd4,0xc5,0xd6, + 0x9e,0xab,0xd6,0xfa,0x02,0xdb,0xd1,0xd3,0x39,0x12,0xe7,0xe8,0x99,0xd0,0x39,0xa0, + 0x81,0x51,0xf9,0xd1,0x91,0x87,0x56,0xe4,0x91,0x1c,0xb0,0x32,0x47,0x47,0x01,0xf8, + 0xa3,0x5d,0x00,0x36,0xfc,0x6b,0x71,0x33,0xd2,0xab,0xcc,0x48,0x76,0x83,0x78,0xf2, + 0x9d,0x64,0x5a,0x02,0x9b,0x2a,0xda,0x1b,0x37,0xf6,0xf1,0x52,0xc5,0x97,0x57,0x71, + 0x7c,0x15,0x9f,0x5d,0x82,0x31,0x67,0xf1,0xc5,0x74,0x6f,0x60,0x1e,0xdf,0x07,0x7b, + 0xed,0xb5,0x4b,0xcc,0x68,0x23,0x74,0xc9,0x7d,0x27,0x47,0x5c,0x81,0xff,0x59,0x98, + 0xe4,0xbd,0x2d,0x23,0x1a,0xe1,0x57,0x49,0xc0,0x0d,0x79,0x41,0x23,0x86,0x1b,0x8e, + 0x64,0xba,0xb6,0x07,0xd6,0xdc,0x04,0xa5,0xd4,0xd9,0x24,0x96,0xf7,0x0e,0x8d,0x5e, + 0xa5,0x8d,0x08,0x36,0xbb,0xa5,0xdb,0x24,0xdf,0x38,0xd7,0x71,0x45,0xd8,0x8a,0xe7, + 0x44,0x48,0xd1,0x1e,0x93,0xf6,0xa1,0x04,0x12,0xa5,0xb6,0x0e,0x8a,0x3d,0xf9,0x57, + 0xeb,0x7a,0xdd,0x9a,0xa5,0x71,0xa0,0x69,0xb7,0x31,0xaf,0xfb,0xd6,0x4a,0xa9,0x55, + 0xc9,0xed,0x4c,0x69,0x81,0xa6,0x59,0x80,0xe7,0x11,0xd6,0xe0,0x23,0xf9,0x53,0x6f, + 0xc9,0x32,0x44,0xf5,0x2f,0x16,0xe3,0x30,0xc0,0xea,0x4a,0x3f,0xfa,0xc0,0xff,0xfb, + 0xf4,0xfb,0x3e,0x3b,0x95,0xbf,0x1c,0x7c,0xb5,0xd5,0xe0,0x7c,0x32,0xe9,0x79,0x99, + 0x82,0x0b,0x20,0x7e,0xd4,0x5d,0xe1,0x62,0x7d,0x99,0x7c,0x87,0xb7,0x4f,0x5e,0xcf, + 0x1d,0x08,0xc6,0xf5,0x9f,0x7f,0x42,0x24,0x11,0x7b,0x7d,0xe8,0xef,0x8d,0xc4,0xfb, + 0xf5,0x91,0x56,0x01,0x04,0x4c,0xb7,0xa3,0xbd,0x4e,0x76,0x9b,0xb3,0x75,0x32,0x92, + 0xd9,0x78,0x0b,0xa1,0x6f,0xd3,0x7c,0xbf,0x51,0xf8,0x02,0x00,0x00, }; const uint8_t WEBCONFIG_HTML_GZ[] PROGMEM = { @@ -262,1916 +262,1927 @@ const uint8_t WEBCONFIG_HTML_GZ[] PROGMEM = { 0xc1,0x6e,0xa4,0xf7,0x41,0xb1,0x49,0xc3,0x28,0xd1,0x2e,0xb7,0x00,0x8f,0x44,0x36, 0xa8,0x29,0x6b,0x88,0x6c,0x73,0xc8,0x4a,0xea,0x0a,0xda,0xfe,0xd0,0x4f,0x45,0x4d, 0x3e,0x62,0x47,0xc4,0x0e,0xcd,0x81,0xc5,0xfb,0x1b,0x74,0xe7,0x2d,0xcd,0xbb,0x01, - 0x67,0xee,0x95,0x37,0x7d,0x3d,0x73,0x1d,0xdf,0xab,0x02,0x67,0x43,0xe9,0xfc,0x3f, - 0x3b,0x57,0xde,0xdc,0x36,0xae,0xe4,0xff,0x9f,0x4f,0xd1,0xc5,0xad,0x4a,0xe4,0xda, - 0x88,0x96,0x64,0x59,0x39,0x1c,0x6b,0x2a,0xe7,0x9c,0x3e,0x36,0xf6,0x3b,0xfe,0xdb, - 0x82,0x48,0xc8,0xc2,0x0b,0x45,0x70,0x00,0x30,0xb2,0xe6,0xd3,0x6f,0xa3,0x01,0x88, - 0x94,0x68,0x2a,0xf4,0xb1,0xf7,0x7b,0x6f,0x66,0x24,0x11,0x57,0xa3,0xbb,0xf1,0xeb, - 0x03,0x4d,0x23,0x83,0x2b,0xc4,0x76,0xb9,0xb4,0xb7,0x87,0xae,0xa4,0x1e,0xbf,0xf8, - 0x57,0x00,0x6c,0x7c,0xe1,0x5f,0x08,0xe0,0x0a,0xbf,0x60,0x2d,0x2d,0xb8,0x0a,0xff, - 0x68,0x34,0x89,0xc0,0x79,0x3d,0xf4,0x9d,0x4a,0xf8,0xdf,0xcb,0xdb,0xd3,0x88,0x6a, - 0x92,0xc6,0xf8,0x4f,0x04,0x36,0x59,0x7f,0x1a,0x59,0xd5,0x8e,0x40,0x1b,0x25,0xbf, - 0xf2,0xd3,0xa8,0xca,0x62,0x84,0x67,0xfd,0x30,0x63,0x78,0x40,0x56,0x30,0x61,0xc5, - 0x69,0x44,0xbb,0x88,0x70,0xe1,0x44,0xa8,0x24,0xe3,0x90,0xe0,0xfc,0x43,0xec,0x97, - 0xac,0xdd,0xa7,0xc2,0x51,0xf1,0x28,0x2c,0xd4,0x9c,0xda,0x2f,0x7e,0x88,0x33,0x14, - 0xcc,0x2c,0x20,0x3d,0x8d,0xce,0x5e,0xc6,0x2f,0x01,0xff,0x65,0x13,0x98,0xc0,0xc0, - 0xff,0xff,0x55,0x3c,0x39,0x1b,0x4e,0xe2,0xa3,0xad,0x86,0xa1,0x6f,0x18,0xc7,0xaf, - 0x01,0xff,0x65,0x43,0x7c,0x44,0xdd,0x5d,0xeb,0x38,0x1e,0x9d,0x0d,0x5f,0xc7,0xc3, - 0x9d,0xb6,0xa1,0x6f,0xa3,0x45,0x0f,0x91,0x61,0xf8,0x81,0x2e,0x39,0x24,0x19,0xd3, - 0xfa,0x34,0xa2,0x4a,0x63,0x7a,0xc9,0x62,0x08,0x22,0xc5,0xdf,0x7d,0xfb,0x2a,0x45, - 0xb4,0x79,0xcb,0x01,0x59,0x3f,0xf4,0x23,0x5c,0xb3,0x2e,0x67,0xd1,0x34,0x91,0x39, - 0x72,0xc4,0xa0,0xac,0x9e,0x2d,0xc8,0x65,0x39,0x79,0x7b,0x88,0x5d,0xb0,0xa3,0xff, - 0xa0,0xba,0x0c,0xbf,0x04,0x95,0x9a,0x82,0x4d,0x28,0x44,0x7e,0x0e,0x7a,0x12,0x4d, - 0x91,0x1c,0xec,0x86,0xbd,0x9d,0xba,0x87,0xfe,0x54,0xf4,0xba,0xd5,0x3f,0xa1,0xd8, - 0x18,0x7f,0x52,0x75,0x5e,0xe4,0xba,0x47,0x20,0x73,0x54,0xce,0xe4,0xeb,0x69,0x44, - 0x6e,0xc8,0x07,0xd7,0xa9,0x77,0x10,0xfd,0x60,0x84,0xc9,0xb0,0x9f,0x7f,0x02,0xfd, - 0x3e,0xe8,0xaf,0xa8,0xc2,0x54,0xed,0x0a,0x2c,0x4f,0xa1,0x60,0xda,0x70,0x60,0x50, - 0x28,0x6e,0x6f,0x84,0x52,0x48,0xe8,0x5d,0x8e,0xe8,0x07,0xa6,0x04,0xeb,0x53,0x15, - 0xe3,0x69,0x74,0x51,0xf0,0x1c,0xc2,0xd2,0xd3,0x67,0x37,0xe6,0xe4,0xdf,0xdf,0x1e, - 0xba,0xb5,0x83,0x4a,0x92,0x12,0x2e,0x99,0xb0,0x0f,0xb4,0x8b,0xb3,0x89,0xe4,0x6f, - 0xfd,0x4c,0xe2,0x59,0x8b,0xc2,0x96,0x68,0x33,0xdb,0x8c,0xb7,0xc9,0x70,0xe2,0xfb, - 0x68,0xfa,0x2e,0x45,0xb7,0x05,0x68,0x04,0x4e,0x3b,0xb2,0xca,0x01,0xa4,0xf9,0xa7, - 0x51,0x23,0x31,0xd5,0x72,0xaa,0xbd,0x89,0xa1,0x33,0x1c,0x4d,0x3f,0x59,0x7e,0x80, - 0x59,0x08,0x0d,0xb9,0x4c,0xf9,0x73,0x0d,0x8c,0x96,0x08,0xf5,0x8f,0xd0,0x33,0x0b, - 0x0e,0x1a,0x05,0x8d,0x3c,0xe4,0x50,0x6a,0xe4,0xc0,0x5c,0x2a,0x50,0x7c,0x29,0x0d, - 0x87,0x0f,0xbf,0xff,0xe2,0x06,0x1c,0xc4,0x6f,0x0f,0x0b,0x24,0x07,0xdb,0x96,0xb4, - 0x2f,0xa2,0xb1,0x6f,0x7f,0xee,0xec,0x66,0x8e,0xd2,0x24,0xb6,0xd9,0x79,0x42,0xbf, - 0x62,0x85,0x3b,0xbc,0xf4,0x6b,0xbe,0x3d,0xa4,0x76,0x1c,0x46,0xd5,0x1b,0x5e,0x94, - 0x81,0x22,0x92,0x74,0x6d,0x18,0x95,0x14,0x27,0x72,0x59,0x64,0xdc,0x60,0x37,0xc4, - 0x3c,0xc5,0x91,0x13,0xbe,0xbb,0x6f,0x27,0x2f,0x6b,0x4a,0x2a,0xd7,0x50,0x22,0xb4, - 0x2e,0x41,0x5d,0x50,0x63,0x97,0xc2,0xd4,0x57,0xb0,0x8d,0xd3,0x2b,0xf4,0x63,0x41, - 0xe4,0x41,0xa4,0xdb,0xfb,0x09,0xd9,0xc5,0xfa,0x28,0x7c,0x16,0x6d,0x56,0x3b,0xb4, - 0x4c,0xc0,0xcf,0xf0,0xd3,0x4b,0xbf,0xa1,0x07,0x2b,0xf1,0x27,0x0a,0x7a,0x9f,0x22, - 0xe4,0xd2,0x78,0x45,0x4f,0x72,0xd6,0xa7,0x5f,0xd3,0x5f,0x72,0xb0,0x12,0xfa,0x9b, - 0xf8,0x2c,0x40,0x93,0xbf,0x8d,0xc2,0x93,0x45,0x59,0xfc,0x08,0xbf,0x18,0x1c,0x28, - 0x35,0xd7,0x20,0xe6,0xb0,0x96,0xa5,0x82,0x62,0x61,0x85,0xa8,0x33,0xce,0x0b,0x1d, - 0xff,0xf0,0x96,0xc1,0x42,0xf1,0xf9,0x69,0xf4,0x2f,0xb5,0x03,0x82,0x63,0x2f,0x4a, - 0xd3,0x3b,0x38,0x51,0x78,0x04,0x54,0x0e,0x73,0x96,0x69,0x1e,0x05,0x25,0x6b,0xc6, - 0x1a,0xd1,0x94,0x94,0x5f,0xe4,0x6e,0x85,0x99,0x92,0x2b,0xcd,0xd5,0xdb,0x43,0x36, - 0x05,0x23,0xe1,0x2b,0xae,0xe4,0x97,0x56,0xf2,0x46,0x71,0xad,0x63,0xcf,0x87,0xfa, - 0xbe,0xe8,0x32,0x01,0x19,0x26,0x68,0x6f,0xda,0x14,0xc3,0x0d,0x17,0x64,0x6e,0x19, - 0x29,0x6a,0x6d,0xa3,0xdd,0x07,0x47,0xbb,0x0f,0xc6,0xfe,0x41,0xb5,0x10,0xb5,0xac, - 0xfe,0x1c,0xb6,0x1f,0xac,0x2b,0x24,0x01,0x86,0xf0,0x6c,0x29,0xd2,0x54,0x9a,0x13, - 0xe2,0xe7,0x93,0x9c,0x30,0xbf,0x34,0x4a,0x77,0x2e,0x10,0x9d,0x8a,0x75,0x34,0xfd, - 0xe0,0x20,0xb1,0x3a,0x75,0x96,0x53,0xc4,0x24,0x92,0x62,0xce,0x0d,0x2a,0xee,0x57, - 0xd0,0x12,0x04,0x4a,0x90,0xe5,0xa0,0x38,0x4b,0x16,0x24,0xe6,0xb3,0x7f,0xbb,0xbe, - 0x06,0xe4,0x2f,0x7a,0xcc,0x96,0x93,0x45,0x53,0x3f,0x70,0xef,0xb3,0xe9,0x25,0x81, - 0x15,0x62,0x6e,0xfd,0xac,0xa6,0xbc,0xc8,0xe4,0x7a,0xc9,0x73,0xf3,0x23,0x6a,0xf2, - 0x14,0xae,0xed,0xf2,0x4e,0xe9,0xc0,0x70,0x6d,0x74,0xa5,0x48,0x2e,0x5d,0x82,0x03, - 0x67,0x52,0x1a,0x87,0xd0,0x29,0x33,0xac,0x4f,0x96,0xed,0x68,0xf4,0x72,0x82,0xaf, - 0xd3,0x41,0x99,0x67,0x5c,0x6b,0x4b,0x38,0xa0,0x8e,0x48,0xfb,0xbe,0x5d,0x7e,0xc3, - 0x69,0x12,0xbd,0x20,0xa8,0xfc,0x74,0x75,0xd9,0x3f,0xbf,0xf8,0x1b,0xb5,0xe4,0x3c, - 0xf3,0x20,0x1e,0xc3,0x2f,0x73,0xea,0x55,0x11,0xb4,0xd9,0x33,0x31,0xc4,0x00,0xfb, - 0xc6,0x44,0x66,0xfd,0x19,0x58,0x70,0xc5,0x5f,0x58,0xd8,0x81,0xbf,0x5c,0xbd,0xb7, - 0x3b,0x17,0x2c,0x03,0x66,0x00,0x37,0xe9,0x80,0x38,0x5e,0xa2,0xf9,0x49,0x90,0xda, - 0x58,0x48,0xbb,0x2d,0x02,0x6d,0x55,0xe6,0xb6,0x87,0x0d,0x6f,0x2d,0xdf,0x63,0xad, - 0x45,0x0a,0x71,0x1c,0x87,0x0e,0x5b,0x8d,0xc5,0x6a,0xd3,0x16,0x23,0x53,0xb8,0x13, - 0x89,0x2d,0x2f,0x21,0x8e,0x2c,0xb1,0x97,0x59,0xd8,0x8c,0x4d,0x65,0xca,0xdc,0x22, - 0xdc,0x28,0x81,0x7d,0xd8,0xdc,0x70,0x55,0xdb,0x8c,0xd3,0xf0,0x16,0xd0,0x9b,0x9e, - 0xfb,0x9d,0x5a,0xdb,0x09,0xbd,0xab,0xab,0x5f,0x3e,0x1e,0x78,0xbc,0xdb,0x1e,0x81, - 0xe7,0x68,0x73,0xea,0xbc,0xb7,0x1b,0xed,0x20,0xa2,0x43,0x1d,0x12,0x0c,0x1e,0xdc, - 0xcd,0x46,0x37,0x2a,0x87,0x3f,0x02,0x3c,0xb2,0x42,0x18,0x96,0xa1,0xea,0xe2,0x89, - 0x9a,0xcf,0x03,0x66,0x2a,0x9b,0xf0,0xf5,0x4f,0xfc,0x52,0x2e,0x38,0x8e,0xee,0x02, - 0x49,0x40,0xb8,0xaa,0xe6,0x4e,0x18,0x81,0xe3,0xae,0xa1,0x25,0xab,0x68,0xd3,0x6c, - 0x4a,0x66,0x38,0x8c,0xba,0xd1,0x1d,0xa7,0x6f,0xe2,0xb7,0xf8,0x2b,0xe5,0x38,0x89, - 0x07,0x16,0x99,0x2f,0xa5,0xb5,0x2a,0x72,0x95,0x9f,0x46,0x74,0xb1,0x16,0x17,0x8a, - 0x3e,0x3f,0x92,0xdb,0x8a,0x50,0x54,0x43,0x27,0x89,0x58,0x73,0x85,0x73,0xf6,0x9e, - 0xfb,0xfd,0x3d,0x3f,0x88,0xa6,0xf8,0xa0,0x8e,0xcd,0xc4,0xfd,0xbd,0x32,0x68,0x1a, - 0x9a,0x5a,0x37,0x2a,0x6f,0x8d,0x5a,0x8d,0x4f,0x60,0x77,0x50,0x9d,0xed,0x03,0x4e, - 0x0f,0x30,0x83,0x96,0xf1,0xfc,0xc6,0x3a,0x86,0x93,0xf1,0xae,0x7d,0x42,0x66,0xb7, - 0x72,0x17,0xf4,0x12,0x5c,0x59,0xed,0x9d,0x6c,0x2d,0x2c,0x7e,0x6e,0x58,0xd7,0xe0, - 0x75,0x9d,0x86,0x8a,0x63,0x46,0xde,0xdc,0x64,0xdc,0x9e,0xea,0xb0,0xeb,0x9e,0xc5, - 0x1d,0xcb,0x36,0x5c,0x67,0x87,0x6d,0x3b,0x0e,0x9f,0xc8,0x4d,0x34,0xfd,0x9d,0xe3, - 0x49,0x80,0x59,0xc6,0xf2,0xaf,0x84,0x26,0x2c,0x07,0x2b,0x85,0x70,0x64,0x63,0xa8, - 0xe1,0x43,0x58,0xbf,0x6f,0x87,0x12,0x9b,0x8b,0x85,0x62,0x9a,0x6b,0xe4,0xc9,0x1a, - 0x51,0x05,0xca,0xc2,0x62,0xdd,0xe4,0x88,0x5e,0xce,0x65,0x89,0xe1,0x4a,0x9f,0x00, - 0x83,0xc9,0xb8,0xbf,0x79,0x00,0x78,0xb3,0x07,0xcb,0x52,0x1b,0xdb,0x7f,0xc1,0x6f, - 0x59,0xca,0x13,0xb1,0x64,0x59,0xec,0xe1,0x03,0x46,0xf1,0xf8,0x99,0xc1,0x05,0x74, - 0x71,0xf2,0xd3,0xcf,0x7f,0x06,0x3a,0x34,0x6e,0x39,0x5b,0xc7,0x7b,0xa4,0xdf,0x84, - 0x30,0xaf,0x0e,0x01,0xa6,0x0e,0x09,0xfc,0x02,0x5a,0xdd,0xed,0x85,0xb8,0x57,0x40, - 0x2a,0x35,0xe0,0xba,0x40,0x3b,0x18,0xfb,0x31,0x28,0x7b,0x81,0x6a,0x3c,0x24,0x1d, - 0xc0,0xcf,0x23,0x7b,0xae,0x78,0x41,0x4f,0xfc,0x01,0xab,0xee,0x8b,0x87,0xa3,0x01, - 0x9d,0xe9,0x26,0xcb,0xcf,0xec,0xee,0x97,0xcc,0x78,0xd0,0xdf,0xd9,0xb0,0x92,0x25, - 0xb2,0x89,0x20,0x08,0xcf,0x89,0x5a,0x07,0x98,0x25,0xdc,0x8a,0xc1,0x9e,0x86,0x9c, - 0xa0,0x5f,0x64,0x19,0x21,0x98,0x1f,0xf1,0x5c,0x87,0xad,0xc5,0xf0,0x17,0xcd,0x89, - 0x5f,0xc0,0xc2,0x33,0x28,0xb8,0x5a,0x0a,0x63,0x78,0x0a,0x19,0xe2,0x45,0x86,0xbc, - 0x84,0x77,0x1b,0x4c,0x67,0x5f,0xb9,0x06,0x3e,0x9f,0x23,0x5e,0x78,0xbc,0x73,0xb6, - 0xe1,0x05,0x68,0xe9,0xb8,0x26,0x34,0xfc,0x43,0x8a,0x9c,0xa7,0xbe,0x9d,0xd6,0xa5, - 0x3e,0x60,0xa4,0x8c,0x3b,0x9c,0xca,0x73,0x24,0x9f,0x60,0xb1,0xc9,0xf9,0x26,0xda, - 0xd9,0x7e,0x5b,0x27,0xed,0x68,0x78,0x17,0x2b,0xc3,0xe1,0xb4,0xdd,0x49,0x29,0x9d, - 0xda,0xe7,0x20,0x9d,0xdb,0x64,0x8d,0x07,0x71,0x52,0xe4,0xde,0xb6,0x1a,0x66,0x4a, - 0x6d,0x9f,0x6b,0x76,0xc3,0xf5,0x0e,0xdd,0xed,0xfe,0x63,0x38,0x6f,0xb8,0xd8,0x4f, - 0xb2,0x37,0xc2,0xe3,0x75,0x8e,0xf4,0xbe,0x81,0x2f,0x2c,0x15,0xf2,0xce,0x53,0xe6, - 0x49,0x1b,0x75,0xf4,0xfc,0xc9,0x41,0x19,0x55,0x0e,0x0a,0x4d,0xfc,0x24,0x1e,0x0a, - 0x31,0xde,0x1d,0x1f,0x58,0x70,0xa6,0x80,0xbc,0x0d,0x89,0xec,0x51,0x40,0xce,0x29, - 0xcf,0xa9,0x6c,0x16,0x94,0x5d,0xd2,0x86,0x46,0xd6,0x04,0xea,0x18,0x2e,0x71,0xc3, - 0xc4,0x45,0x0b,0x4c,0xdc,0x90,0x0b,0xe3,0x94,0xc7,0xf1,0xb5,0xd4,0xc4,0xc0,0xa2, - 0x4d,0xe0,0x78,0xab,0x29,0x64,0xee,0x47,0x57,0x42,0x77,0xaf,0xf5,0x04,0xc9,0xa9, - 0x82,0x98,0x4b,0x7a,0x68,0x1f,0xd0,0xbe,0xaf,0x78,0xe6,0x51,0x0c,0x45,0xe3,0xfa, - 0xef,0x11,0xbe,0x2a,0xfa,0x49,0x89,0x0e,0x79,0x07,0x1d,0xbc,0xfe,0x3b,0x14,0x72, - 0xc5,0x15,0xf4,0xd2,0xf7,0xcb,0x83,0x6e,0x10,0x60,0x6e,0xfd,0xb1,0xef,0xbf,0xf6, - 0xe7,0xfe,0x68,0x70,0xbf,0xe3,0xee,0xfe,0xa6,0x00,0x64,0xfc,0x86,0x65,0x7e,0xfd, - 0x6f,0x8c,0x7c,0x8b,0xd9,0x1a,0x14,0x71,0x09,0x05,0x9f,0x32,0xbd,0x38,0x01,0x2a, - 0x65,0xf7,0x5c,0x56,0x65,0xd6,0x50,0xd1,0x86,0x3b,0x78,0xce,0x79,0xba,0x11,0x1a, - 0x8a,0x8b,0x19,0xb0,0x95,0x8d,0xcf,0x0d,0xd8,0x7a,0x23,0x9e,0xfe,0x08,0x1f,0x16, - 0x52,0x6a,0x6e,0x7d,0xa2,0xdf,0xac,0xbb,0xee,0x23,0xa8,0xcd,0x18,0xeb,0x18,0xbd, - 0x00,0x5b,0x8d,0xa1,0x17,0x2e,0x30,0x7e,0x61,0xa5,0x9e,0xdb,0x47,0xbc,0x6f,0xca, - 0x9c,0x83,0x70,0xa7,0xa9,0x19,0x50,0x84,0x88,0xfb,0x5d,0x51,0xec,0x86,0x14,0x18, - 0xcb,0x7e,0x63,0x79,0x82,0xc4,0xf1,0x54,0x18,0x49,0x21,0x43,0x5c,0x3f,0x68,0xcd, - 0xa3,0xb0,0x89,0x4a,0xfb,0x8d,0x90,0x38,0xb4,0x3c,0xcd,0x89,0xf8,0xc2,0x29,0xd9, - 0xee,0xd0,0x73,0xce,0x12,0x24,0x6f,0xbd,0x59,0x22,0xb6,0x81,0x95,0xd0,0x2e,0x16, - 0x36,0x12,0xb4,0x8b,0x0e,0xc9,0x55,0x85,0x8c,0x05,0x6c,0x36,0xd2,0x45,0xc6,0x42, - 0x7b,0x38,0x24,0x7c,0xf6,0xce,0x38,0x1e,0x35,0x9b,0xf5,0xde,0x60,0xd0,0xbe,0x63, - 0x72,0xce,0x57,0x50,0x74,0x0c,0x8d,0xbd,0x4e,0x56,0x4f,0xea,0x10,0x39,0x3c,0xde, - 0x75,0x46,0x72,0xbe,0xaa,0x02,0xe5,0x7d,0xaa,0x39,0x3c,0xae,0x59,0xec,0x2e,0x60, - 0x4e,0x7f,0xf1,0x42,0x2d,0xef,0x47,0x38,0xe6,0x33,0x1f,0x48,0x7a,0xbb,0xde,0xa0, - 0x33,0xd7,0xee,0xcd,0xee,0xc0,0xf6,0x10,0xf1,0xe4,0x3d,0xa6,0x20,0x03,0x5e,0xb7, - 0x8d,0xa3,0x8c,0xd3,0xae,0xcb,0x1c,0xd0,0x86,0x50,0xb2,0x6f,0xb3,0x48,0x5b,0xd3, - 0x5f,0xe1,0x03,0xc2,0xae,0x1e,0x2e,0x62,0x7f,0x00,0x75,0xdc,0xb7,0xd4,0xfe,0x15, - 0x72,0xb2,0x87,0xb5,0x15,0xd0,0xa6,0xfb,0x05,0xbc,0xf1,0x21,0x8b,0xd6,0xb4,0x3d, - 0x0d,0x13,0x74,0x74,0x1f,0x13,0x74,0x54,0x99,0x20,0x37,0x3d,0x36,0xb4,0xe8,0xc0, - 0xc5,0xcc,0x45,0xaa,0x3e,0xd6,0x91,0x4a,0xe0,0x41,0x3b,0xe8,0x62,0xdd,0x97,0x7f, - 0x18,0x13,0xbb,0xfe,0x77,0x06,0x30,0x77,0xea,0xea,0xcf,0x72,0xe5,0x42,0x6a,0xe9, - 0xd7,0xf5,0xa6,0x6b,0x6e,0x81,0x54,0x18,0xcd,0xb3,0x39,0x58,0xa4,0x28,0x67,0x19, - 0x22,0x19,0x4f,0xbd,0xad,0x3f,0x2c,0x50,0xe2,0xdc,0x54,0x26,0x1f,0x7e,0xc9,0xe7, - 0x52,0xb9,0x92,0x34,0x96,0x39,0xbb,0x18,0xd0,0x37,0x97,0xa6,0xca,0x81,0x19,0x59, - 0x88,0x04,0x97,0x53,0x96,0xc4,0x05,0x59,0x49,0x1a,0x84,0x96,0x51,0x71,0xeb,0x7d, - 0xf1,0x94,0x62,0xc7,0xcd,0xe1,0x27,0x46,0x74,0x39,0x3d,0xbf,0xbc,0xbb,0x7e,0x17, - 0x80,0x3f,0xc1,0x81,0x9d,0x79,0x26,0xf0,0xc7,0xb6,0x5b,0xd4,0xe4,0x5f,0x75,0x90, - 0x37,0x0a,0xd6,0x5a,0xe0,0xda,0xc5,0x7c,0x9d,0x73,0xa6,0xb8,0x36,0xc0,0x84,0xb2, - 0x65,0x5f,0x44,0xf0,0x0b,0xe0,0xf1,0x4d,0x6c,0x4d,0xca,0xc7,0x4f,0xe7,0x2e,0xb2, - 0x46,0xf5,0x24,0x37,0x8b,0xb8,0x06,0x36,0xa7,0xdd,0x09,0x48,0x2e,0x56,0x39,0x57, - 0x4e,0x68,0x89,0x0d,0x0d,0xba,0xab,0x8f,0x1d,0xd8,0x0c,0xc6,0xba,0x45,0xc3,0x75, - 0xac,0x69,0xd7,0xb8,0x8b,0xc2,0xeb,0x88,0x57,0x8f,0x10,0xc7,0xd8,0xb0,0xa5,0x46, - 0x32,0x48,0x9f,0x7e,0xb3,0x33,0xb2,0x1c,0x87,0x78,0x57,0xfd,0x17,0x3c,0xbc,0x65, - 0x4a,0x6c,0x21,0x15,0x82,0x5f,0xff,0x76,0xad,0x41,0x4b,0xca,0xf0,0x88,0x84,0x7b, - 0x73,0xad,0xcb,0x82,0x18,0xeb,0xb3,0x41,0x99,0x73,0xb5,0x2c,0x29,0x62,0x59,0x25, - 0x91,0xba,0x33,0x93,0xde,0x59,0xbf,0x9b,0x8f,0xd4,0xb4,0xc3,0x48,0x7a,0xd6,0xe4, - 0x5c,0x67,0xa6,0x50,0x72,0x48,0xdc,0xb5,0x55,0x3a,0x45,0xb4,0x0d,0xf4,0x33,0xaa, - 0x9d,0x58,0xaf,0x53,0xcb,0x25,0x0f,0x6c,0xd8,0xd1,0x13,0x82,0x22,0x97,0x02,0xab, - 0xa1,0x4f,0xc8,0x4b,0x64,0xd2,0xe8,0xa7,0xb2,0x07,0xa3,0x8e,0xf6,0x60,0x07,0xa8, - 0x1b,0xb8,0x7f,0x86,0x6c,0x0c,0xb0,0xef,0x51,0xb3,0x33,0xea,0xef,0x42,0x7c,0x98, - 0xeb,0x0b,0xb7,0xd7,0x56,0x1d,0xd0,0x7d,0xdc,0x0d,0xdd,0x37,0xc6,0x85,0xe6,0xed, - 0xd3,0xbd,0x48,0xe4,0x20,0x7f,0x5c,0x41,0xbe,0x5b,0x15,0x9e,0xb1,0x65,0x71,0x42, - 0x29,0xb2,0x86,0x04,0xfc,0x04,0xed,0x22,0x08,0x7e,0xe9,0x15,0xfb,0x46,0x52,0xdf, - 0x64,0x1e,0x9d,0x1f,0xcf,0x53,0x8a,0x27,0x5f,0x80,0x4d,0x83,0x50,0x43,0xb8,0x98, - 0x40,0x8b,0xbf,0xc9,0x13,0xb2,0x34,0xb5,0xc9,0x10,0xe7,0x88,0xfa,0x38,0x53,0x03, - 0xea,0x9f,0x04,0x57,0x5f,0x63,0x73,0x14,0xca,0xa3,0xf1,0xb5,0xcf,0x43,0x53,0xa8, - 0x82,0x10,0x5f,0x4b,0x2f,0x92,0xbb,0xf6,0x62,0x2b,0x5f,0xc8,0x67,0xa5,0x40,0x9e, - 0x13,0x68,0xdd,0x57,0x7f,0x76,0x98,0x68,0xaf,0x33,0x77,0x75,0xea,0xc8,0xeb,0xd4, - 0x43,0x0c,0xbf,0x65,0x78,0x7d,0x3e,0xca,0xdd,0x22,0x1f,0x39,0x29,0x17,0x7e,0x7a, - 0xc1,0x38,0x7e,0x34,0x74,0xa3,0xfd,0xd6,0x02,0xe7,0xc6,0x07,0x0d,0x99,0x6d,0xbc, - 0xe8,0x66,0x19,0x79,0x75,0x43,0x4c,0x05,0x9d,0x38,0xf4,0x3e,0xbe,0xff,0x5d,0xde, - 0x39,0x4e,0x72,0x57,0x48,0x40,0x8e,0x71,0xfb,0xa5,0x09,0x2b,0x8a,0x7d,0xfa,0x6d, - 0xd8,0x4c,0xd3,0x16,0xdd,0xb7,0x8a,0xd9,0x84,0x70,0x88,0xf6,0xe4,0x4b,0x6d,0xdd, - 0x36,0x6c,0x45,0xec,0x8d,0x01,0x04,0x89,0xd1,0x94,0x0e,0x71,0x5b,0x1f,0xca,0x0d, - 0x46,0x53,0xab,0xc6,0xed,0x7d,0xac,0xf3,0xa1,0x51,0x6a,0xf6,0xa3,0xbd,0x57,0x92, - 0xe1,0x44,0x78,0xc9,0xd6,0x9e,0x41,0x30,0xce,0x1d,0x6c,0x3d,0xd7,0x14,0xdd,0xef, - 0xf3,0xd2,0xce,0x6b,0x19,0x97,0x7b,0x26,0x5c,0xbe,0x9b,0x67,0x1b,0x4e,0x8e,0x5e, - 0x8d,0x37,0x2b,0xbd,0xcf,0x4a,0x6e,0xa4,0x34,0x8b,0xce,0x59,0x9e,0x59,0x18,0x11, - 0xdf,0xb5,0x3c,0xd4,0x2a,0xa2,0x4e,0x23,0x9b,0xd2,0x0a,0x57,0xd1,0xfd,0x67,0x99, - 0x39,0xd9,0x78,0x5c,0xf6,0x3e,0x76,0xbf,0xa9,0x0a,0xa6,0x1e,0x2a,0x12,0xe9,0xef, - 0x00,0x7a,0x8f,0x0d,0xea,0x39,0x50,0x23,0x61,0x2e,0xb3,0x4c,0xae,0x3a,0xb8,0x75, - 0x4d,0x8e,0x4c,0x8e,0x8f,0x8f,0x26,0x4d,0x8e,0x04,0x40,0xbb,0x1f,0x53,0x96,0x2c, - 0xd9,0xe2,0xc9,0x68,0xdc,0xe4,0x49,0x08,0x5f,0xc3,0x0a,0x77,0x32,0xc2,0xf6,0xfb, - 0x30,0xc2,0xd7,0xec,0xf0,0xe5,0x8e,0x37,0x47,0x47,0x6f,0xc6,0xe3,0x37,0xc7,0xc7, - 0x08,0x8b,0x2c,0x4f,0xe5,0x32,0x7c,0xf6,0x29,0xdb,0xd8,0x77,0x69,0x3f,0xa9,0xc2, - 0x53,0x4a,0xf7,0xf5,0xfd,0xdd,0x48,0x0c,0x1f,0x32,0xce,0xb0,0x8d,0x6b,0x5c,0x94, - 0x1c,0x98,0x06,0x05,0xb1,0xbb,0x79,0x4a,0x25,0xa7,0xcb,0x9e,0xad,0x7b,0x23,0xc3, - 0x59,0x86,0xdc,0x98,0x67,0xec,0xa6,0x23,0x43,0xb1,0x3e,0x70,0xf0,0x72,0xd4,0xe4, - 0x68,0x98,0xab,0x91,0x57,0x6a,0xb2,0xd1,0xf7,0xc4,0x39,0x24,0x29,0x04,0x26,0x5f, - 0xb0,0xcd,0x7b,0x38,0x17,0xf3,0xf9,0xdb,0x43,0xf7,0xbc,0xd1,0x9e,0x63,0x73,0x5e, - 0xb5,0xb6,0x67,0xa2,0xf0,0x96,0x36,0xe5,0x05,0xa7,0x42,0x2b,0x90,0x74,0xfb,0x15, - 0xb8,0x11,0xd2,0x2c,0x98,0x6d,0x4d,0xe9,0x05,0x75,0xcd,0xbd,0x09,0xcb,0xd6,0x50, - 0xe6,0x46,0x64,0x40,0x7f,0xda,0x0e,0x0a,0x26,0x14,0xf6,0xf3,0x26,0x8f,0x25,0x09, - 0x2f,0x0c,0x05,0x27,0xce,0x49,0x9c,0x49,0x9c,0x3d,0x85,0x82,0x73,0x85,0x53,0xe5, - 0x9b,0xe9,0x95,0x34,0x8c,0x88,0x56,0x5c,0x22,0x05,0x3a,0xcc,0x83,0x92,0x22,0xbe, - 0x6b,0x6c,0xf8,0xa3,0x14,0x0a,0x09,0xf2,0x76,0xa3,0x95,0xf1,0x64,0xfb,0xea,0xac, - 0x8f,0xda,0x30,0xe5,0x77,0x5c,0xd2,0x94,0x55,0xdc,0xb2,0x37,0x7f,0x96,0x31,0x13, - 0xd2,0xe4,0x2c,0x5f,0x7b,0x50,0x69,0x9d,0x59,0xe6,0x37,0xf7,0x98,0x5a,0xe6,0x77, - 0x4e,0xfd,0x44,0x59,0xa6,0xa6,0x4f,0x83,0x16,0x52,0x6f,0x72,0x41,0x78,0x3e,0xea, - 0x91,0x21,0xd7,0x3e,0xf9,0xe3,0x4b,0x2c,0x10,0x74,0x96,0xd8,0x45,0x6f,0x67,0x82, - 0x1a,0x60,0x13,0x5c,0x97,0x90,0x97,0xab,0xe5,0xa1,0xf6,0x64,0x67,0xfe,0xdb,0x93, - 0x49,0xff,0x3b,0xb2,0x43,0x95,0x84,0x51,0xb3,0xbe,0x30,0x9f,0xe2,0xde,0xaa,0x49, - 0xb2,0x25,0x68,0xc0,0x95,0xaa,0x95,0x19,0x51,0x2f,0x7a,0x19,0x3c,0x9a,0x6e,0xee, - 0x38,0x80,0x15,0x45,0xb6,0xf6,0x97,0x54,0x6d,0x0a,0xf2,0xd9,0x1e,0x36,0x9e,0x27, - 0xeb,0x17,0x30,0x43,0xd9,0xfb,0xbf,0x32,0x7b,0xf5,0x99,0x74,0xe5,0xc3,0x17,0x58, - 0x56,0x37,0x3f,0x14,0x31,0x52,0x1e,0x9d,0xdf,0xa2,0x64,0x6b,0x49,0x08,0x06,0x2b, - 0x85,0xc7,0x80,0x60,0xc8,0xdf,0xcd,0xd4,0x83,0xa7,0xb9,0xc7,0x17,0xa1,0x36,0xf8, - 0x71,0xcb,0x53,0xd2,0x32,0x7f,0x81,0xde,0xe6,0xd7,0xb6,0x88,0xab,0xa2,0x1a,0x7a, - 0x67,0x3f,0xff,0x79,0xf0,0xfd,0xa3,0xa7,0x6e,0x70,0x38,0x0e,0x0a,0x87,0x6f,0x10, - 0x0f,0x06,0xc3,0x70,0x39,0x76,0x3c,0xf0,0x69,0xf2,0x11,0x96,0xe2,0x7f,0x47,0x51, - 0xde,0x07,0x26,0x41,0xef,0x6b,0xe7,0x95,0x67,0xab,0xda,0xba,0x61,0xd9,0x97,0x7e, - 0xd1,0xfa,0x9a,0xf7,0x64,0xc3,0x55,0xa1,0x38,0xb3,0x55,0x87,0xde,0xa2,0x35,0x4d, - 0x4b,0xa0,0x40,0xdb,0x41,0xde,0x2c,0x1c,0xef,0x9a,0x8f,0xe9,0xa4,0xf1,0xe4,0x65, - 0xe3,0xc9,0xab,0xc6,0x93,0xd7,0x8d,0x27,0xc3,0x41,0xf3,0xd1,0xb0,0xf9,0x68,0xd4, - 0xb4,0x50,0xdf,0x39,0x9c,0xb4,0x47,0xc5,0x0c,0x6f,0xdf,0x61,0xa2,0x9e,0x6e,0x87, - 0x0d,0xb2,0xee,0x7f,0x43,0xf3,0x84,0x17,0x34,0xfb,0xc1,0xa2,0x86,0x02,0xbe,0x2a, - 0xb6,0x1f,0xee,0x49,0x3c,0x8e,0x7c,0x74,0x8f,0x09,0x01,0x3a,0xab,0xd6,0x45,0x8e, - 0x78,0x60,0x0c,0x57,0x9b,0xfc,0xd6,0xae,0xbb,0xe2,0x57,0x8b,0x97,0x32,0xe5,0x8f, - 0xf3,0x54,0x1a,0xad,0xbe,0xc8,0x60,0xfa,0x9e,0x3e,0xdb,0x7a,0x79,0xbf,0xc1,0x96, - 0xe9,0xd1,0x17,0xf2,0x3d,0xf6,0x4f,0xd9,0xf7,0x63,0xc2,0xd4,0xf0,0xaf,0xe0,0x9f, - 0xb4,0x8d,0xb3,0x28,0x6e,0x33,0xaf,0x09,0xc6,0x82,0xe1,0xeb,0x3d,0xd5,0xf7,0x5a, - 0x2c,0xb9,0xad,0xd6,0xe9,0x69,0x9e,0xc8,0x3c,0xd5,0xdd,0x74,0x24,0xb0,0xd7,0xb8, - 0xd1,0x3b,0x17,0xf9,0xf8,0x32,0xf1,0xa0,0xba,0xca,0x7f,0x20,0x7c,0x5c,0xe4,0x54, - 0xc3,0x44,0xda,0xfb,0x3d,0x29,0x97,0x7a,0xf6,0xc4,0x92,0xfe,0xa7,0xa4,0x9b,0x2c, - 0x7e,0xac,0xb4,0xc9,0xb7,0xaf,0xc8,0xf7,0x29,0x2b,0x6d,0x98,0x0a,0xd5,0xc3,0xe1, - 0x52,0x01,0xb0,0x70,0x32,0xe3,0xce,0x2e,0x17,0x05,0x08,0x0d,0x48,0x86,0x8f,0x99, - 0x78,0x8a,0xbe,0x78,0x55,0x5a,0x46,0x8e,0x9f,0xa6,0xae,0x9e,0x54,0x6b,0xf1,0x7d, - 0x5e,0x40,0xaa,0xc0,0x57,0x20,0x9b,0xac,0x5d,0x4a,0x78,0x85,0x3e,0x00,0x08,0x13, - 0x57,0x0a,0x06,0x29,0x37,0x3e,0x51,0xe2,0x22,0x0f,0x1d,0x4a,0x1e,0x66,0x12,0x61, - 0x2c,0xee,0xe4,0x12,0x85,0x74,0x4c,0x3b,0x96,0xb5,0x04,0x65,0x55,0x3c,0xf6,0x4e, - 0x28,0xcb,0x64,0x6f,0x31,0x3b,0x09,0x88,0xcd,0x2b,0xf3,0x1d,0xac,0xf7,0xa0,0xb5, - 0xb8,0x83,0xcd,0xfb,0x29,0xea,0x50,0xb7,0x60,0x71,0x5c,0xd5,0x1e,0xfc,0x1d,0xf9, - 0x82,0xbc,0x45,0xd8,0xd5,0xdd,0x62,0x09,0x75,0x4b,0x03,0x9a,0xb4,0x6d,0xdc,0x99, - 0x56,0xc7,0xa2,0x41,0xc7,0xf1,0x70,0x54,0x69,0xb1,0xa7,0xe4,0x3e,0x2c,0x32,0xdf, - 0xa5,0x65,0x9f,0x7d,0x6b,0xd0,0xa6,0xb7,0xc2,0x3a,0x5b,0x18,0xe5,0x9c,0xd8,0xd9, - 0xf4,0xc3,0xbb,0x8f,0xd0,0xa3,0x3a,0x81,0x3c,0x14,0x85,0xd2,0x35,0xd1,0x52,0x18, - 0x3c,0x6d,0x33,0xa4,0x72,0xfa,0xc1,0xd7,0x0f,0x21,0xf5,0xe2,0x9b,0x30,0xeb,0x4a, - 0xf3,0x5c,0x11,0x2e,0x4d,0xb5,0x5d,0xe6,0x6f,0x6e,0xb2,0x68,0x7b,0x83,0x54,0xd5, - 0x30,0x93,0xb7,0xd5,0x16,0x13,0x66,0x1d,0xf7,0x12,0x27,0x28,0xfd,0x24,0xdf,0xa7, - 0x7c,0x38,0xa9,0x48,0xb7,0x12,0x46,0xcf,0x1c,0x29,0x4f,0xe1,0x86,0x89,0xdc,0x53, - 0x7b,0xf5,0xf7,0xe1,0x68,0x72,0x0b,0x8a,0x27,0x5c,0xd8,0x1b,0x04,0xc2,0xb6,0x47, - 0x11,0x4a,0xc1,0x40,0xac,0x6e,0xed,0x22,0xf7,0xa6,0x78,0x34,0x18,0xd7,0xd9,0xfd, - 0xf9,0xd3,0x19,0x04,0xba,0x3d,0xc1,0x9f,0x6e,0x0d,0x57,0x36,0x47,0x35,0x57,0x36, - 0x59,0x8a,0x27,0xb9,0x8f,0x86,0xa1,0xcc,0x38,0xfc,0x7e,0xfe,0xee,0x09,0x08,0x9f, - 0xf3,0xe5,0x43,0x89,0x7f,0x35,0x7c,0x3d,0xaa,0x11,0xff,0x91,0x32,0x66,0x1e,0x7e, - 0x34,0x65,0xf7,0xfd,0x1e,0xbe,0xf0,0xb4,0xc4,0x96,0x94,0x3a,0x10,0x2e,0xfe,0x74, - 0x79,0x05,0x22,0xcd,0x7c,0xef,0x47,0x6d,0x83,0x66,0x70,0xcb,0xed,0xd9,0x41,0x1d, - 0x04,0x06,0xaf,0x27,0x3e,0x8e,0xbb,0x2d,0x74,0x9f,0x8a,0xd8,0x1b,0xdb,0xac,0xeb, - 0xd1,0x5d,0x5b,0xfa,0x58,0x9a,0x75,0x3f,0x59,0x27,0x1e,0xd4,0x29,0x78,0x0c,0x4a, - 0x75,0x62,0x63,0x30,0x8a,0xdb,0x35,0xd8,0xf2,0x4c,0x91,0x97,0xb2,0xd4,0xa1,0xf9, - 0xe1,0x9b,0xb5,0xe4,0xda,0x9c,0xba,0xbd,0xb9,0xe8,0x70,0x38,0x08,0xa4,0xab,0x7d, - 0x3a,0xd3,0xaa,0xdb,0xdc,0x13,0xdc,0x27,0xca,0x24,0xc3,0x1c,0x5f,0xd6,0xe2,0xf5, - 0xd3,0xea,0xd4,0xa1,0xe1,0x95,0xa0,0x95,0x1c,0x42,0x0f,0xf7,0x6a,0x6f,0xec,0xe8, - 0x65,0xf5,0x83,0x36,0xbb,0x8f,0x1a,0x33,0x6a,0x6b,0xc3,0x4a,0xfe,0xa3,0xb6,0x36, - 0x84,0xee,0x71,0x5b,0xdb,0x71,0x34,0x3d,0x86,0xde,0x8c,0x65,0x64,0xad,0x5a,0x97, - 0x46,0x74,0x98,0xb4,0xb5,0xbd,0x8c,0xa6,0x2f,0xdb,0xda,0xf0,0x84,0xbe,0x6a,0x6b, - 0x7b,0x1d,0x55,0x81,0x59,0x83,0x2b,0x03,0x64,0xcb,0xa0,0xad,0x75,0xc9,0xf2,0x92, - 0x21,0x2b,0xcf,0xe8,0x13,0x0c,0x5d,0x82,0xea,0x86,0x0b,0xb4,0x93,0x13,0x71,0xaf, - 0x82,0x37,0xd1,0xa7,0xd0,0x2d,0x91,0x74,0xa5,0x00,0x36,0x7a,0x5d,0xa2,0xea,0xf4, - 0xe7,0x82,0x67,0x69,0x55,0x0c,0xed,0x1f,0xef,0x93,0x7a,0x18,0xda,0x10,0xfc,0xc0, - 0xb9,0x3f,0x16,0x9c,0x96,0xa0,0x1b,0xf1,0x71,0x0b,0x5f,0x26,0xc8,0x97,0x09,0xe8, - 0xf5,0x72,0x26,0x33,0xdd,0xaa,0x0c,0x23,0xd4,0x86,0x51,0xe8,0xd5,0x3d,0x58,0x24, - 0xbd,0x0f,0x61,0x5a,0xd8,0xbb,0x67,0x76,0xab,0xee,0xbb,0xa3,0x09,0x2b,0x91,0xa7, - 0x38,0xb8,0x87,0xf7,0x9d,0x89,0x92,0x27,0x5d,0x3c,0x4a,0x62,0x10,0x2e,0x12,0x7c, - 0xc8,0xc1,0x60,0xb0,0x09,0x32,0xe9,0x7f,0x4d,0x57,0xb2,0x2d,0xbd,0x90,0x71,0x5e, - 0x3c,0x9c,0x04,0x6d,0x87,0x77,0xa7,0xa2,0xdd,0xa1,0xad,0xb8,0x46,0x3f,0x1b,0xdd, - 0x5b,0xcc,0x01,0x09,0xac,0x42,0x4d,0x5e,0x70,0x16,0x6c,0xd8,0x67,0xa9,0x56,0x4c, - 0xa5,0x2e,0x9b,0x65,0x14,0x9b,0xcf,0x45,0x12,0x03,0x46,0x31,0x70,0x0a,0xce,0xb9, - 0xe8,0x53,0x22,0xbb,0xa7,0x8d,0xc8,0xb2,0x50,0xbf,0xa3,0xc9,0x52,0x84,0x72,0x1d, - 0x7d,0x10,0x3f,0xce,0xda,0x11,0x41,0x5d,0x51,0x33,0x38,0x4f,0xd5,0x2d,0xa7,0xbd, - 0xe4,0xac,0xdf,0xe3,0x8c,0xdb,0x93,0xdf,0x54,0x9b,0xc9,0x28,0x9b,0x0f,0x3d,0x94, - 0x47,0xb7,0xb8,0xc4,0x0d,0x88,0x91,0xe5,0x16,0x43,0xb3,0x5d,0x87,0x6e,0x7c,0xa7, - 0x0b,0x3c,0x1d,0xc0,0xa9,0xb5,0x36,0x1d,0x6a,0x3f,0x3e,0x67,0x52,0xa6,0x1b,0xb2, - 0x16,0xaa,0x63,0xb8,0x34,0xb7,0xc3,0xe2,0xfd,0xc4,0x0d,0x27,0xaf,0xf6,0x11,0xf7, - 0x02,0x78,0xa6,0x39,0x1c,0x3d,0xcb,0x29,0x7f,0x89,0xbd,0x89,0xd0,0x6e,0xd9,0xf8, - 0x7a,0xc6,0x95,0x68,0xa9,0x67,0xe5,0x69,0x4f,0x08,0x38,0xfe,0xde,0x1b,0x7f,0x15, - 0xba,0x2d,0xf5,0xfa,0xb3,0x2c,0x20,0x43,0x90,0x35,0xae,0xec,0x84,0xe6,0x0a,0xca, - 0x58,0x4b,0x9f,0xce,0x9d,0xae,0x6a,0xcc,0xc3,0x93,0xd5,0x27,0x34,0x72,0x76,0x9c, - 0x89,0x1c,0xfb,0x08,0xbd,0x86,0xdc,0xbe,0x3d,0x3c,0x93,0xa5,0x7d,0x7b,0xc1,0x48, - 0x89,0x0b,0xaf,0x7c,0x1e,0xb6,0x60,0xca,0xe8,0x70,0xc5,0x43,0xfa,0x2e,0x4b,0x63, - 0x7f,0xd3,0x3b,0x5c,0x71,0x87,0x4b,0x95,0xd1,0xab,0x56,0xcd,0xc2,0x7c,0xbf,0xa7, - 0x7b,0x41,0x1b,0xed,0x2c,0x3e,0x94,0xd2,0x8e,0xc8,0x1a,0xfa,0xeb,0x25,0xe6,0x65, - 0x34,0x19,0xc7,0xe0,0xdf,0xbf,0x01,0xfc,0xde,0x41,0xbd,0x90,0xb6,0xa0,0x5c,0xf7, - 0x27,0xce,0xeb,0xd7,0xc3,0x69,0x7c,0xe5,0x49,0xec,0x18,0x7f,0x11,0x93,0x6b,0x84, - 0x97,0xb9,0x4e,0x64,0xc1,0xd3,0x07,0x73,0x37,0x0e,0x33,0x34,0xb7,0x70,0x9f,0x4a, - 0x70,0x2c,0x95,0xc8,0x04,0xd7,0x60,0x24,0xb8,0xaa,0x44,0xed,0x0a,0x08,0x73,0x19, - 0xaa,0x01,0x69,0x95,0x18,0x02,0x0f,0xf6,0xca,0xa6,0x03,0x8c,0x8d,0x8e,0x27,0x35, - 0xdc,0x92,0x45,0x15,0xbc,0xb5,0xde,0x9b,0xda,0x43,0x16,0xbb,0x6e,0xf7,0xce,0x4e, - 0x21,0x6f,0xc4,0x92,0x9c,0x1e,0xf7,0xa5,0xb5,0x9f,0x4c,0xb9,0xcd,0x3f,0x63,0x47, - 0xff,0xad,0xad,0xa7,0x36,0x4a,0x58,0x42,0xae,0xe8,0xb3,0xd3,0x5d,0xec,0x47,0x85, - 0xe2,0xf5,0x92,0xf6,0x5c,0xf6,0x65,0xf1,0x99,0xf5,0x5f,0xd6,0x80,0x00,0xa3,0xd6, - 0x5b,0xef,0x44,0x2f,0x90,0xd7,0x31,0xb8,0x35,0xb8,0x42,0x54,0x9b,0x73,0x8b,0x0d, - 0xce,0xa6,0x58,0x71,0x65,0x44,0x64,0x1a,0x62,0xe4,0x14,0x97,0x28,0x10,0x97,0xee, - 0xd6,0xca,0x46,0x05,0x07,0xd5,0x94,0x74,0xab,0xc1,0xa5,0x97,0x54,0x5c,0xe2,0x88, - 0xdc,0xf9,0x7d,0x95,0x1d,0xfb,0x2d,0xa2,0x2f,0xee,0x0b,0xd1,0x04,0x7c,0xa2,0x6f, - 0x60,0x17,0xa8,0x64,0xdf,0x60,0xde,0x75,0xa9,0x72,0x77,0xc5,0x24,0xab,0x14,0x96, - 0x65,0x5d,0x06,0x33,0x25,0xbf,0x72,0xe5,0x53,0x5d,0x14,0xfe,0xb8,0xaa,0x3e,0x2e, - 0x54,0xf5,0xd2,0x48,0x93,0x21,0xad,0x5b,0xfd,0x85,0xaa,0x77,0xcd,0xfa,0xe1,0x25, - 0xc6,0xff,0xed,0x15,0xc6,0x21,0xfd,0x77,0x02,0xa2,0x51,0x53,0x1c,0xc3,0x7b,0xba, - 0xe2,0x3d,0x7d,0x9a,0xd2,0xe0,0xff,0xee,0xca,0xe0,0x87,0x55,0xf1,0xfe,0xa7,0x15, - 0xf1,0xb6,0x48,0xb0,0xb5,0x40,0x97,0xec,0x35,0xad,0xf6,0x5c,0xef,0xd4,0xe9,0xa2, - 0x5a,0xf9,0x3a,0xa1,0x83,0x07,0xd6,0xd8,0x76,0x2c,0xb1,0xed,0x76,0x2c,0x2e,0x9d, - 0x76,0xe1,0x69,0x6a,0xf3,0x74,0xae,0x03,0x72,0x91,0x9e,0xd1,0x4b,0x82,0xb6,0xba, - 0xb1,0x2c,0x32,0xc9,0x52,0x7a,0x9d,0xc7,0x9e,0x5e,0x42,0x92,0x3e,0xe0,0x10,0x3b, - 0x97,0x8b,0xe0,0x98,0x3f,0xc4,0x80,0x13,0x88,0xfc,0x1f,0x94,0x9c,0x76,0x55,0x95, - 0xc1,0x9d,0xf1,0x1c,0x68,0x4d,0x97,0x50,0xb9,0x99,0xaf,0xac,0xf7,0xde,0xff,0x25, - 0x57,0x42,0xa6,0xc8,0xe9,0x05,0x95,0xd9,0x1c,0xda,0x46,0x0d,0x34,0x67,0xe8,0xe9, - 0x8a,0xc2,0x1f,0xe5,0xdf,0x13,0x1f,0xdd,0x6c,0x2d,0x4e,0x7e,0x2b,0xc9,0x9e,0xa3, - 0xde,0x18,0x04,0xb2,0xcf,0x18,0xbd,0xb8,0xa3,0xd1,0x00,0x27,0x0b,0x72,0x19,0x11, - 0xe4,0x7c,0x9f,0x8d,0xdf,0x88,0xd2,0x95,0xab,0xc7,0xd3,0xed,0x57,0xbe,0x2f,0xe1, - 0xef,0xd2,0x14,0x14,0x5b,0x01,0xfd,0x21,0xdc,0x40,0xf7,0xbb,0x8c,0x0a,0xc8,0xf3, - 0xd4,0xd5,0x5e,0x95,0x59,0x46,0xda,0x4e,0x7d,0x3c,0xd7,0x69,0xd0,0x13,0xb1,0x1c, - 0xa7,0xba,0x2f,0xd9,0x3e,0xda,0x4e,0xb7,0x19,0x8e,0x8f,0xa9,0xca,0xdd,0x3f,0xa4, - 0x57,0x11,0x7d,0xd5,0x82,0x2f,0x67,0x78,0x02,0x62,0x6f,0x1f,0xaa,0x1b,0xde,0xe3, - 0x57,0x0d,0xa5,0x0e,0x0d,0x60,0xc8,0x7c,0xb2,0x3c,0x75,0x3e,0x9a,0x86,0xde,0xe5, - 0xd5,0x97,0x77,0x67,0xee,0xbe,0xc5,0xe5,0x99,0x0f,0x1e,0xbf,0x83,0x0d,0x1d,0x8f, - 0x8b,0x64,0x5b,0xaf,0xd4,0x7c,0x72,0xdf,0x54,0xd2,0x69,0x75,0x04,0x89,0x1e,0x73, - 0xfb,0xa0,0x2b,0xca,0x77,0x59,0x06,0xd7,0x7f,0x6f,0xeb,0xe1,0xa3,0x01,0x0b,0xa5, - 0xe0,0xbe,0x3b,0xfe,0x75,0x71,0xef,0x76,0xd4,0xa8,0x72,0xe3,0xe8,0x4c,0xe8,0x2e, - 0x08,0x7e,0xe5,0x30,0x29,0x04,0xbb,0x9d,0x63,0x78,0xcf,0x92,0x30,0x6e,0xe7,0x56, - 0x71,0xd2,0xbc,0x1e,0x7a,0x9c,0xac,0xce,0xbd,0x2a,0xd4,0x29,0x5d,0xc8,0xb2,0x53, - 0x60,0xdf,0x50,0xa7,0x06,0xd5,0xa3,0x90,0x3f,0x3a,0x9a,0xb4,0xfa,0x42,0x72,0x6e, - 0x78,0x0e,0x46,0xfe,0x47,0x7b,0xff,0xde,0xdf,0xb6,0x91,0xeb,0x8f,0xe3,0xff,0xfb, - 0x51,0x30,0xdc,0x1e,0x87,0xac,0x28,0x59,0xb6,0x93,0xb4,0x2b,0x85,0xf1,0x2b,0x75, - 0xd3,0x6d,0x4e,0xd3,0x24,0x27,0x76,0xb7,0x7b,0x3e,0x8e,0x37,0x1f,0xd9,0xa2,0x63, - 0x35,0xba,0xad,0x28,0x5f,0xb2,0x96,0x7f,0x8f,0xfd,0x87,0x37,0x30,0xe0,0x5c,0x44, - 0xc9,0xce,0xe6,0xec,0xf7,0x9e,0xbe,0x6a,0x91,0x43,0x0c,0x06,0x83,0xb9,0x61,0x30, - 0x18,0x40,0x25,0x1e,0xb1,0x88,0xf5,0x07,0x04,0x85,0xcf,0x6b,0x12,0x8e,0x2c,0x32, - 0x5e,0xc8,0xc8,0xbb,0x56,0xda,0xfa,0x92,0xfd,0xff,0xba,0x0b,0x1f,0x74,0x96,0x7a, - 0xf7,0x8d,0x0f,0x8b,0x05,0x27,0xc6,0x6a,0x23,0x7f,0xf0,0xfa,0xd7,0xb7,0x6b,0xcd, - 0xa2,0x0f,0xdf,0x1a,0x47,0x2b,0xf7,0x95,0x55,0xc6,0xf3,0x69,0xad,0x68,0x12,0xd8, - 0xe4,0x4e,0x27,0x93,0x21,0x60,0x49,0xfa,0xfc,0x58,0xc7,0x59,0x71,0xc9,0x84,0x05, - 0x1b,0x0e,0xc0,0x74,0xb5,0x3e,0x85,0x59,0xed,0x7a,0xcb,0xcc,0x75,0xc7,0xe4,0xff, - 0x24,0x54,0x34,0x21,0xbd,0x39,0x78,0xf9,0xb7,0xfb,0x48,0xc7,0x73,0x93,0xe5,0x3e, - 0xf5,0xf9,0xf5,0xe0,0xf0,0xbb,0x5f,0x7f,0x3c,0xcc,0x7e,0xdd,0x6d,0xed,0xb4,0xda, - 0xd9,0xaf,0x14,0xab,0x63,0xbb,0xb5,0xc2,0xae,0xab,0x6e,0x33,0x0c,0x5f,0x89,0x15, - 0xad,0xbf,0x1d,0xee,0x63,0x77,0x41,0xdb,0x85,0x7b,0xf5,0x61,0xa5,0xb3,0x25,0x79, - 0xd4,0xcc,0xa7,0xea,0xbc,0xdb,0x8f,0x2c,0x1d,0x77,0x4c,0xf4,0xe8,0x0f,0x11,0xc9, - 0xea,0xe3,0x79,0xb5,0x1c,0xf1,0x41,0xbe,0x9a,0xc7,0xf6,0xbf,0x6a,0xee,0x2e,0xc7, - 0xa3,0xe9,0xdd,0x33,0xb6,0x6d,0x34,0x21,0x07,0x16,0xa2,0x17,0xe3,0xc1,0xfc,0x2e, - 0x71,0x59,0x4b,0x68,0x55,0x19,0xea,0x1b,0xee,0xce,0x8d,0x28,0x2e,0x2e,0xdc,0x73, - 0x23,0xca,0x4e,0x1f,0xec,0x46,0x74,0x95,0x2c,0xca,0x46,0xc6,0x90,0x2f,0x19,0x7e, - 0x26,0x3c,0x15,0xeb,0x06,0x9b,0x59,0x2d,0x1b,0x79,0xb2,0x96,0x2b,0x3a,0x57,0x50, - 0x04,0x63,0x1b,0x8d,0x15,0xd5,0xbd,0x3d,0x4d,0x43,0x9e,0x46,0x82,0x5a,0x33,0xb8, - 0x97,0x82,0x5a,0xd1,0x4f,0x03,0x82,0x85,0x82,0x0f,0xa9,0x2f,0xdf,0x8a,0x4c,0x0b, - 0x3b,0x4a,0xf5,0x99,0x31,0x11,0x59,0x42,0xac,0x20,0xd5,0x61,0xdb,0xff,0x35,0xfc, - 0xf5,0x50,0xbd,0xfe,0x6d,0x0e,0x7b,0x80,0xfc,0xff,0x7c,0x8f,0x3d,0x20,0xe2,0xff, - 0x42,0x2e,0x7b,0x40,0xce,0xff,0xd9,0x3e,0x7b,0x40,0xc4,0xff,0x2b,0x9c,0xf6,0xfc, - 0x3f,0xc2,0x2d,0x8f,0x5a,0xba,0x6c,0x37,0xb7,0x77,0xa3,0x2b,0x98,0xf8,0xab,0xab, - 0x1c,0xeb,0x3c,0x47,0x3c,0x88,0xad,0x75,0xd1,0x63,0x8d,0xbc,0xa1,0x53,0x2c,0x86, - 0xea,0x52,0x8c,0xf6,0x0d,0xc0,0xdf,0xd7,0x46,0x12,0x07,0x3e,0x98,0xcf,0xb4,0xee, - 0x5d,0x3c,0x7c,0xd9,0x9d,0x8d,0x40,0xef,0xdd,0xde,0x79,0x64,0x87,0x94,0x5a,0x35, - 0xd4,0x1f,0xfd,0xda,0x11,0x03,0x38,0x80,0xc5,0x35,0xea,0x5c,0xa3,0xca,0xbd,0x18, - 0xad,0x92,0xe5,0x21,0xc4,0xc0,0xc5,0x0c,0xe4,0x8f,0x21,0x61,0x2a,0xe7,0xb8,0x74, - 0x09,0x63,0xf2,0xb4,0x36,0x8b,0xb4,0x85,0xf5,0x3c,0x91,0x18,0xbb,0xd8,0xf4,0xde, - 0x27,0xc0,0x81,0xc2,0xb4,0x07,0xc9,0x76,0x0c,0xcb,0x80,0x7a,0x33,0xb6,0x2f,0xbf, - 0xd4,0xdb,0x9f,0xbc,0x03,0xd3,0xcd,0x35,0x5c,0x3c,0x71,0xbb,0x7e,0xe9,0x2d,0x61, - 0xf5,0x17,0x49,0x7d,0x05,0xf3,0xb2,0x57,0xc0,0x2b,0x24,0xa3,0x00,0xf1,0x3d,0x49, - 0xcf,0x16,0xfb,0x5d,0x8b,0x38,0xeb,0x57,0xee,0xb7,0x8a,0xab,0xcd,0x8e,0xcc,0x06, - 0xc8,0xce,0x99,0x9b,0xb4,0x02,0x3b,0xd4,0x4e,0x7a,0x73,0x13,0x13,0x26,0xf4,0xa3, - 0x1f,0x68,0x07,0xd1,0xd6,0x61,0x4c,0x2c,0x48,0x82,0xab,0xee,0x44,0x70,0x18,0x3d, - 0xf0,0x41,0x1f,0xef,0xd5,0xa4,0xb8,0x8e,0x80,0x49,0xa6,0x37,0x8d,0x92,0x5f,0x7e, - 0x48,0x19,0xed,0x53,0x09,0x04,0xc7,0xa8,0xa8,0xb0,0xd9,0xa7,0x26,0xbe,0x5b,0x37, - 0xbf,0x7c,0xcc,0xb1,0x25,0x40,0x7a,0x2d,0x12,0x37,0xad,0x70,0x0a,0xa0,0xa6,0xe4, - 0xf5,0x78,0xc6,0x80,0xab,0x47,0x74,0xc7,0x99,0x25,0x36,0x05,0x4d,0xe1,0x67,0xa8, - 0xc0,0x2f,0x6b,0x77,0x33,0x80,0x35,0xdb,0x99,0x7b,0xbb,0xaf,0xc1,0xd0,0xe2,0xe1, - 0x1a,0x7d,0x2e,0xe6,0xad,0xbb,0xba,0xc6,0xe9,0xf0,0x6e,0xf1,0x4e,0x8b,0x76,0xa3, - 0x62,0x06,0x70,0x70,0x3e,0x8d,0x3a,0xca,0x53,0xf8,0x51,0x62,0x8d,0xc4,0x81,0x94, - 0x5c,0x4e,0x97,0xbc,0xf8,0x06,0xeb,0xa5,0x43,0x97,0x45,0xde,0x64,0x87,0x43,0xf7, - 0x13,0x3a,0x36,0xaa,0x01,0x84,0xe5,0xf8,0x77,0xbe,0x1d,0x8d,0x21,0xb4,0x39,0xa4, - 0x03,0x9d,0x6e,0xc4,0x98,0x74,0x18,0xd5,0x13,0xf1,0xa5,0xc2,0x0d,0xfd,0xfc,0x5c, - 0x0c,0xa7,0x28,0xe4,0x9c,0x7e,0x15,0xf9,0x97,0xd5,0xd0,0x1e,0xa3,0x7c,0x69,0x35, - 0x07,0x67,0xc9,0x03,0x7a,0x6c,0x9d,0x5c,0x94,0x9f,0x53,0x7a,0x78,0x77,0x31,0x4e, - 0x8e,0x1e,0x5a,0x7c,0x0f,0x8f,0x89,0x30,0xfb,0xfa,0x3f,0x5e,0x77,0xbe,0xeb,0x89, - 0xca,0x9f,0xe2,0x61,0xad,0x58,0xa2,0x61,0x4f,0x6c,0xbd,0xf1,0x56,0xbb,0x4b,0x74, - 0x82,0xa0,0xd0,0xf7,0xe0,0x03,0x22,0x94,0x44,0xca,0x40,0x9b,0xb4,0xc6,0x00,0xb8, - 0x0a,0x4e,0x11,0xf6,0x48,0x13,0x35,0x42,0xfc,0x35,0x4b,0xd7,0xac,0x13,0xd8,0x6d, - 0x39,0x83,0x71,0x28,0x18,0xd6,0x8b,0xe6,0xb5,0x12,0xfc,0x46,0x39,0x25,0xf7,0xd7, - 0xbc,0x33,0xac,0x84,0x41,0xbe,0x1e,0x4f,0x92,0x13,0xc4,0x0b,0xda,0x35,0x4c,0x82, - 0x9d,0x35,0x88,0x88,0x7a,0x7a,0x4f,0x30,0x58,0xa8,0xb4,0x02,0xc8,0xf5,0xe5,0xcd, - 0xb8,0xe1,0x36,0xe3,0x01,0x7b,0x3d,0x46,0x3b,0xce,0x2e,0x42,0xa9,0xbc,0xb6,0x31, - 0x8d,0xa3,0x77,0x50,0x24,0x33,0x3b,0x79,0x7c,0x7f,0x76,0xd8,0x3b,0x79,0xba,0x85, - 0x87,0x48,0xf9,0xa3,0xf3,0xbe,0x85,0xd9,0xbc,0xc0,0x48,0x14,0x30,0x49,0xe8,0xdb, - 0x04,0x6a,0xd6,0x12,0xf7,0x84,0x25,0x9b,0x87,0xfb,0x45,0x79,0x6a,0x60,0xa8,0x37, - 0x8f,0x06,0x65,0xe9,0xa1,0x16,0x17,0xdd,0x23,0xaa,0xd9,0x80,0xca,0x45,0x00,0x39, - 0x39,0x42,0xa7,0xda,0x40,0xaa,0x92,0xbb,0x6b,0x4a,0x4d,0x50,0xad,0x1a,0xaf,0xcc, - 0x5b,0xf0,0xd2,0xed,0x57,0xd8,0xc4,0x1a,0x46,0x5f,0xb0,0x2f,0x68,0x8f,0x2a,0xa1, - 0x49,0x92,0x10,0x14,0x07,0xeb,0xe7,0xbc,0xba,0xdd,0x83,0x33,0xa4,0xd0,0x4a,0xb3, - 0x39,0xe9,0x46,0x45,0xb2,0xc0,0xcb,0x7a,0xa1,0x62,0x64,0x29,0xf2,0x45,0x08,0x6c, - 0x2c,0x5c,0xc7,0x10,0x2a,0x38,0xae,0x1d,0xa3,0x36,0x1e,0xa5,0x0e,0x30,0x7f,0x3b, - 0x38,0x9b,0x60,0x5d,0x90,0xb3,0xc7,0x38,0x72,0xfd,0x9f,0xc3,0x05,0xd0,0xc9,0x67, - 0xcf,0x7d,0x71,0x69,0x20,0xc4,0x60,0x91,0x3a,0xeb,0xec,0x22,0x5c,0x6e,0x4c,0x94, - 0xce,0xf8,0x99,0xc9,0xae,0x39,0x85,0x87,0xc1,0xfe,0xf6,0x6e,0x3e,0x7e,0xd5,0x6c, - 0xc6,0x7a,0x09,0xde,0xa7,0x82,0x50,0x66,0x7f,0x69,0xf7,0xa8,0xff,0xbe,0x72,0xd9, - 0x41,0x37,0x97,0x4b,0x65,0xee,0xe3,0xa5,0x2a,0x32,0x5c,0xbe,0xab,0x18,0xa1,0xca, - 0x7b,0x3a,0x43,0x81,0x3a,0x71,0x38,0x98,0xeb,0xc6,0x12,0x0b,0x81,0xb2,0x1a,0xf9, - 0x56,0xfb,0xef,0xa8,0x56,0x77,0xe8,0x29,0xc2,0x5e,0x3b,0x18,0x57,0xfc,0xbe,0xeb, - 0xbc,0x1e,0xd1,0x2e,0x75,0x8e,0xc4,0x63,0xed,0x8c,0x6e,0x82,0x4c,0x0a,0x58,0x71, - 0xcd,0xd1,0xc0,0xb4,0x2f,0x2c,0xed,0xbf,0x1e,0x61,0xff,0x15,0x86,0xbd,0x95,0xb0, - 0x03,0x16,0x38,0x74,0xd9,0xb7,0x1c,0xe8,0x92,0xb8,0x29,0xa6,0xd7,0x45,0xe8,0x9b, - 0xdc,0xc4,0x29,0x98,0x0c,0x6b,0x84,0xac,0xc7,0x4b,0x91,0xf2,0xfe,0xdc,0xf5,0xc2, - 0xa7,0xec,0x84,0xf1,0x32,0xce,0x3e,0xa6,0x20,0x6e,0x38,0xa0,0x09,0x70,0xca,0x0e, - 0xaf,0x54,0x6b,0x4b,0xd6,0x08,0x78,0xdf,0xc7,0xd6,0x63,0x88,0x94,0x54,0xfd,0x24, - 0xd2,0x6a,0x81,0x33,0x62,0x3e,0x75,0x1e,0x94,0xc6,0xe4,0xb3,0xf5,0xf4,0x64,0xa6, - 0x2b,0x54,0x8d,0xf4,0x57,0x2b,0xfb,0x91,0x23,0xed,0x5e,0xf9,0xa9,0xe8,0x67,0xd1, - 0xa9,0xfa,0x70,0x64,0x5f,0x0e,0xbf,0x1b,0x8f,0xd5,0x2f,0xc1,0x09,0x1a,0x56,0x4c, - 0xcf,0x16,0xbe,0x1e,0xcc,0x69,0x4f,0x5f,0x5d,0x3c,0x42,0xba,0xdd,0xa2,0x53,0x1d, - 0x50,0x11,0x71,0xe8,0x7e,0xd0,0x3b,0xa3,0x2e,0x05,0x8d,0xd9,0xfe,0xf9,0x6c,0xc2, - 0xee,0xff,0x85,0x5a,0xb1,0xe2,0x6f,0x59,0xf0,0xbf,0x4c,0x68,0xb2,0x25,0xdc,0x35, - 0x54,0x7f,0x47,0x9d,0xcb,0x36,0xfa,0xc5,0x6c,0x48,0x72,0xd2,0x7c,0x3e,0xed,0x6c, - 0x6d,0xd1,0xd5,0x81,0x16,0x19,0x02,0xb6,0x1e,0xb5,0xb6,0x41,0x84,0xc1,0xb6,0x35, - 0x19,0xd6,0x28,0x11,0x6b,0xce,0x45,0xb6,0x1f,0x11,0xe6,0xa0,0x32,0xa0,0xc2,0xa1, - 0xf0,0x61,0x89,0xfa,0xb2,0xd0,0xc7,0x13,0x13,0x8a,0xb1,0xfa,0x8f,0xff,0x76,0x7d, - 0xd2,0xcb,0x75,0xfd,0x41,0x09,0xa7,0x98,0x30,0xfe,0x19,0xe8,0x75,0x69,0xab,0x97, - 0x2c,0x44,0x7c,0xb4,0x1a,0x4c,0x69,0x4a,0xed,0x53,0x99,0xd1,0x07,0x0c,0xe0,0xad, - 0x6b,0x76,0x49,0x23,0xb3,0x94,0x4c,0xa7,0xb3,0x82,0x98,0x89,0x98,0xa5,0x30,0x07, - 0xfa,0x42,0xc7,0x3a,0xed,0x95,0x8e,0x75,0xfa,0x14,0xcf,0x80,0x7d,0x8d,0x7f,0x2c, - 0xe6,0x2f,0x86,0x05,0x1e,0x7f,0xf8,0xfc,0xb2,0x9f,0x3c,0x34,0xa3,0xeb,0x61,0xda, - 0x62,0x0e,0xbe,0xa2,0xe9,0xa2,0x05,0xaf,0x03,0xb4,0x14,0x3c,0x84,0x54,0xfc,0xf0, - 0x7e,0x9e,0x78,0xd0,0xa8,0xf0,0x5e,0x64,0x3d,0xf0,0x08,0xe5,0x77,0x0d,0x6e,0xd1, - 0x46,0xe8,0xf0,0x06,0xe8,0xf2,0xd4,0xa2,0x45,0xca,0x70,0xdf,0x7d,0x64,0x23,0xcb, - 0xe2,0x59,0x67,0x9e,0x9a,0x01,0xcf,0x9e,0x86,0x22,0x0e,0x7d,0xec,0x96,0x26,0xbe, - 0xaa,0x74,0x2b,0xee,0x06,0x1a,0x91,0x81,0x3e,0x75,0x61,0x47,0xe5,0xc7,0x8a,0x80, - 0x25,0x57,0xa0,0xc1,0x24,0x14,0x9b,0xaa,0x4f,0x03,0xc1,0xdd,0x62,0x1b,0x4c,0x57, - 0x77,0xce,0xd7,0xcb,0xee,0xaa,0x3a,0x18,0xe2,0x4f,0x7b,0x3e,0x06,0xc8,0xa6,0x9f, - 0x62,0x6d,0xe3,0x9a,0x06,0x01,0x29,0x61,0x48,0x6a,0x90,0xd6,0x53,0xf2,0x56,0x90, - 0xd0,0x75,0x50,0x3c,0xa9,0x41,0xe1,0x92,0x71,0x3a,0xb9,0x80,0x86,0xab,0xae,0xa9, - 0xa9,0x0b,0x0f,0xa6,0x74,0xd2,0x1a,0xc3,0x09,0xbf,0x31,0xb7,0xeb,0x6e,0x10,0xd7, - 0xa2,0x83,0x17,0xaf,0x0f,0x5f,0xbe,0x7e,0xf1,0x2a,0x8f,0xbf,0x35,0xff,0xe4,0x03, - 0x41,0xe5,0x37,0x30,0xe1,0xeb,0xc4,0x71,0xc6,0x0e,0x30,0xfa,0x1d,0xee,0x6d,0x19, - 0xd9,0xd1,0xc1,0x7f,0x99,0x7d,0xdb,0x1f,0x0e,0xcc,0x0b,0x54,0x4d,0x6f,0xcb,0x4f, - 0x4f,0x1e,0x99,0x77,0x55,0xdf,0x1e,0x88,0xf3,0xbb,0x0a,0xc5,0xb8,0x28,0xfa,0xa5, - 0xd1,0x8a,0x6a,0x1a,0x5b,0x07,0xab,0x33,0x1f,0x93,0x56,0xaa,0xbf,0x4d,0xe7,0xdd, - 0x29,0x9b,0xc4,0xf3,0xb2,0xd3,0xce,0x4e,0xcf,0x3e,0x76,0xc6,0x64,0x22,0x91,0xc1, - 0x14,0xac,0x73,0x73,0x9b,0xf5,0x07,0xb3,0xf9,0x67,0x3c,0x88,0x57,0xe2,0xb2,0x73, - 0x74,0x9c,0x8d,0xb1,0x27,0x07,0x34,0x6f,0xe6,0x71,0x9c,0x36,0xa3,0x17,0x48,0xab, - 0x9d,0x1b,0xa8,0x19,0x18,0x06,0x6a,0x02,0x7a,0xb8,0xcd,0xb0,0x4c,0x1f,0x52,0x4b, - 0x14,0x73,0x54,0x1f,0x6f,0x9a,0x03,0xcf,0x2f,0xa6,0x93,0xd3,0x73,0x7a,0x96,0xe0, - 0x05,0xfa,0x66,0x3c,0x79,0xd1,0x77,0xcc,0xbd,0x5a,0x57,0x03,0xf4,0x8a,0xac,0x76, - 0xf6,0x7b,0x53,0x1a,0xb4,0x85,0xd0,0x0a,0x56,0x29,0x07,0x70,0xfb,0x82,0xb7,0x61, - 0x9a,0xe9,0x96,0xa2,0x52,0x5d,0x8c,0xe5,0x58,0xe5,0x9b,0xa4,0x4c,0x6f,0xcc,0x70, - 0xaf,0x66,0x0c,0x92,0x86,0x67,0x9f,0x45,0xed,0x38,0x99,0x11,0xc0,0xad,0x03,0xef, - 0x66,0x78,0x3e,0x9b,0xd1,0x2d,0x59,0x9a,0x22,0xe7,0x13,0x08,0x38,0xad,0x72,0x88, - 0x69,0x1f,0xea,0xce,0xa4,0x1e,0x17,0xe4,0xd6,0x32,0x75,0xf1,0xb1,0x44,0x90,0x8c, - 0xd2,0x1b,0x74,0x8a,0x79,0xfe,0x4d,0x12,0xff,0x89,0x93,0xe2,0xb4,0x3b,0x6f,0x61, - 0xea,0xdb,0x97,0x78,0x9c,0xf9,0x88,0xde,0xed,0x7c,0x45,0xa3,0x25,0xe1,0x2d,0x3c, - 0xc1,0xf1,0xce,0xd2,0x5c,0xf4,0x4d,0xe6,0xad,0x0f,0x08,0x5a,0x46,0x7f,0x73,0x6a, - 0x1b,0x4d,0xd5,0xe2,0x92,0xf4,0x66,0xbe,0x34,0xeb,0x29,0xa2,0xdb,0x6c,0x87,0x6e, - 0xf5,0xba,0xc4,0x91,0x7c,0x67,0x6b,0xcb,0xb6,0x9d,0xe3,0x8f,0x94,0x40,0xf9,0x78, - 0x13,0x96,0x6c,0x1d,0x6d,0x3e,0x7d,0x16,0x1f,0x6f,0x7d,0xcc,0xaa,0x02,0x4e,0x15, - 0xfc,0x26,0xde,0x8c,0x3b,0x31,0x1f,0x24,0xc7,0x59,0xfc,0x14,0xcf,0xc3,0x39,0x1e, - 0x9f,0xe1,0xf1,0x23,0x1e,0x1f,0xc6,0x0f,0xe9,0xf1,0x1f,0x17,0x13,0x7a,0xb9,0x3d, - 0x3a,0x3d,0xbe,0x75,0xcb,0xae,0xd1,0xef,0x93,0x40,0x99,0xde,0xf0,0xe8,0xe1,0x1d, - 0x68,0x5e,0x3f,0xc3,0x33,0x1c,0x92,0x9e,0xcf,0x89,0x60,0x12,0x14,0xa9,0x82,0xde, - 0x91,0x42,0x9c,0xa6,0xdd,0x0d,0xe8,0x05,0x18,0x4b,0x2a,0xe4,0xca,0xa8,0x04,0x23, - 0x72,0x4e,0x6e,0xb1,0xc4,0x9a,0x3b,0x67,0x24,0x94,0xc7,0x7e,0x00,0xe0,0x9e,0x6c, - 0x7e,0x3b,0x2e,0x08,0x8a,0x76,0x5b,0x4d,0xe0,0x7e,0xc6,0xa4,0xd8,0x89,0x71,0x30, - 0x61,0x60,0xca,0x80,0x3c,0x7b,0x0c,0x12,0x67,0x9c,0x47,0x24,0xd4,0x8e,0xd9,0x06, - 0xa7,0xf5,0xb9,0x74,0x77,0x11,0x67,0xc9,0x72,0x41,0x69,0x23,0x96,0xdd,0x46,0x45, - 0x5e,0xaa,0x55,0xe0,0x50,0x3f,0x09,0xbd,0x5a,0x7e,0xa3,0xea,0xb3,0xf9,0x5f,0x8b, - 0x59,0x62,0x58,0x7c,0x76,0x95,0x97,0x04,0x79,0xb5,0x58,0xd0,0x10,0x1d,0xe5,0x5b, - 0x7f,0x4f,0x2e,0xf7,0xde,0xf7,0x1b,0xef,0x5b,0xfa,0x27,0xd9,0xeb,0xf0,0x6f,0xba, - 0x97,0x6e,0xb5,0x8a,0xeb,0xe2,0x34,0x39,0xbb,0x4a,0x0d,0x1b,0xf3,0xd1,0xde,0xe8, - 0x68,0xfb,0xb8,0x93,0x70,0xfe,0x8b,0xf1,0xa7,0x31,0x1c,0xca,0x43,0x9f,0x87,0x7d, - 0x91,0xb0,0x7f,0xab,0x49,0x42,0x48,0xd2,0x5c,0x7c,0x43,0xd9,0xe1,0xe1,0x10,0xd9, - 0xd3,0xb2,0x91,0xc7,0x48,0x8f,0xbb,0x91,0xf3,0x6f,0x6b,0x2b,0x7a,0x73,0xf8,0xfc, - 0xc3,0xfe,0xcf,0xcf,0x5f,0xd3,0x5c,0xfa,0xe1,0xf0,0xf9,0x5f,0xf2,0x93,0x62,0xde, - 0x03,0xe0,0x06,0xdf,0x9b,0x60,0x74,0x48,0xaa,0xc5,0x87,0x0f,0x40,0x28,0x98,0x7a, - 0x11,0xde,0xf9,0x36,0x8d,0x1e,0x1a,0x64,0x84,0x80,0x4f,0x21,0x36,0x4c,0x57,0xa7, - 0x9a,0x93,0x8b,0xc3,0x61,0x7f,0xaf,0x24,0x26,0x26,0x71,0x43,0xdf,0x1b,0x71,0x1a, - 0x77,0x4a,0x8f,0x6f,0xa4,0xc3,0x48,0xe0,0xa9,0x35,0x23,0xd5,0x7b,0x49,0xbc,0xc3, - 0x4f,0x8e,0x3f,0x8b,0xc5,0xcd,0xad,0xf4,0x33,0xbc,0xd1,0xac,0x40,0x8a,0x8d,0xd4, - 0x3e,0x42,0x70,0x6b,0xb2,0x07,0xb0,0xb8,0x0b,0xb2,0x06,0x6f,0x0e,0x22,0xfe,0x50, - 0x42,0xc3,0x41,0x6b,0xd4,0xcf,0x87,0x64,0x5e,0xf1,0xfc,0xed,0xcb,0xe8,0x2f,0x2f, - 0x0e,0xcb,0xa8,0x47,0x37,0x9d,0xd8,0x13,0x56,0x09,0x16,0x96,0xc0,0x0b,0x5c,0x7a, - 0x3d,0x7f,0x73,0xd3,0x48,0xc8,0xcf,0x4f,0xa8,0x19,0xf7,0xa5,0xa7,0x93,0xc5,0xb5, - 0x69,0x4c,0xf2,0x8d,0x93,0xe3,0xc0,0x37,0xf8,0x4a,0x5d,0x80,0x91,0xc0,0x3d,0x77, - 0x6f,0x98,0x13,0x94,0x79,0xec,0x6e,0xd4,0x4f,0x1e,0x80,0xe8,0x01,0x47,0x42,0xb3, - 0x85,0x5b,0x3e,0xf7,0x25,0x95,0x9a,0x0a,0x3a,0xb6,0x71,0x78,0xd2,0x82,0x7b,0x27, - 0x8b,0x85,0x68,0x02,0xf5,0x33,0x63,0x89,0x48,0x63,0xec,0x51,0x7b,0x3b,0xbd,0x41, - 0x07,0x7e,0x85,0xc8,0x50,0x44,0xd4,0xfc,0x1c,0xf7,0xd3,0x40,0xf0,0x8b,0xd9,0x8c, - 0x66,0xe0,0x18,0x2b,0x64,0x9c,0x56,0x25,0xcc,0x5a,0x7f,0x94,0xa0,0x87,0x38,0x49, - 0x45,0x59,0xd4,0x8a,0x79,0xf2,0x29,0x0d,0x51,0x50,0x27,0x84,0xe5,0x3a,0xdb,0xdb, - 0x60,0xfa,0xfa,0xcc,0x27,0xdf,0x7a,0x6a,0x8e,0x11,0xa6,0xc8,0xd1,0x6a,0xb7,0x21, - 0xd1,0x7f,0x08,0xea,0x07,0xc0,0xbd,0xb9,0xa9,0xb4,0x3f,0xc8,0x73,0x0a,0xb0,0x6a, - 0x78,0x5c,0xe4,0xb6,0xb4,0x3f,0x5a,0x05,0x7e,0x17,0x8b,0x24,0xe6,0x66,0x8c,0x1b, - 0x9a,0x85,0xe6,0x9e,0x42,0x6b,0xae,0x69,0x94,0x42,0x87,0x55,0x24,0x6a,0xfc,0x21, - 0xbf,0xf4,0x4e,0x1a,0x2f,0x7a,0xa3,0xbf,0x86,0x17,0x85,0xc3,0xdf,0x3f,0xe8,0x19, - 0xfc,0xf6,0xc7,0xef,0x74,0x52,0xce,0x85,0xe9,0x08,0xeb,0xa7,0xb3,0xb0,0xed,0x9e, - 0x37,0xa3,0x82,0x36,0x3c,0xfd,0x4e,0x4c,0x16,0x2e,0x87,0x71,0x26,0xf1,0xd6,0xca, - 0xce,0x4d,0x6c,0xa6,0xaa,0xe6,0xe1,0xe7,0x29,0xe6,0x0e,0xb8,0x68,0x32,0x4e,0x9a, - 0xb7,0xc0,0xe5,0xf8,0x96,0x11,0x76,0xfe,0xf3,0xe0,0xcd,0xeb,0x56,0xc9,0x4b,0x00, - 0x45,0xef,0x4f,0xb8,0x10,0x6f,0xc2,0x1e,0x7d,0x7a,0x57,0xfc,0x83,0x66,0x5f,0xc3, - 0x8e,0x1e,0xb3,0xe3,0x37,0x52,0xdb,0x7d,0xcf,0xcb,0x64,0xf2,0xbd,0x0c,0x7b,0xd3, - 0x4f,0x4f,0x67,0x9f,0xa7,0xf3,0xc9,0xe6,0xa6,0xfc,0x62,0xba,0x7e,0xc7,0xbe,0xf2, - 0xfe,0xca,0x77,0x89,0xd2,0xfa,0xe4,0xa4,0x97,0x76,0x65,0xc0,0x9f,0x11,0x93,0x79, - 0x21,0xc8,0xdb,0xdd,0xc1,0xd3,0xef,0xbb,0x83,0x46,0x23,0xed,0x1d,0x0d,0x8e,0xf3, - 0x5f,0xa9,0xae,0x2d,0x3e,0xb2,0x48,0xf8,0x71,0xc6,0xd9,0x93,0xf4,0x5b,0xba,0xc6, - 0x41,0x99,0x57,0x2c,0xdc,0xa3,0xde,0x54,0x96,0xed,0x9e,0x5d,0xc9,0x4e,0xd2,0x1b, - 0x01,0xa7,0xc7,0xa7,0xdb,0x4f,0xf6,0xe2,0x36,0x71,0x87,0x66,0x55,0x72,0x89,0x31, - 0x31,0x4b,0xe1,0x36,0x50,0x52,0x5f,0x41,0x54,0x8f,0x84,0xbe,0x05,0x13,0x03,0xf5, - 0xb2,0x9f,0x8a,0x1e,0x84,0x92,0x12,0x5c,0x21,0xd1,0xe1,0xe1,0x91,0x1e,0x34,0x1e, - 0xd3,0xf6,0x83,0x2a,0xf1,0xa2,0xe7,0xf6,0xdf,0x62,0x48,0x60,0xc5,0xd0,0x59,0xa1, - 0x65,0x15,0x4c,0x44,0xac,0xce,0x1e,0x24,0x94,0x04,0xb1,0x6c,0xf3,0x35,0x1f,0xe6, - 0x26,0x04,0x0b,0x84,0x65,0xc1,0xc9,0x69,0x0a,0x0a,0xcc,0x1c,0x0c,0x1e,0x90,0x4c, - 0x34,0xeb,0xb3,0x4c,0xb1,0x74,0x39,0x4c,0x1a,0xa3,0x02,0x4a,0xab,0xa7,0x7b,0x14, - 0x9e,0xd0,0xdd,0xa0,0x05,0xf8,0x89,0xf2,0xa8,0x56,0x71,0xcb,0x77,0x07,0xb7,0xa2, - 0x66,0xeb,0x2a,0x46,0x29,0x4b,0xd2,0x6c,0x8a,0xaa,0x08,0xd3,0x42,0xeb,0x04,0xe5, - 0x5e,0x5d,0x19,0xb4,0x43,0x79,0x25,0x66,0x0a,0x84,0xb4,0x12,0x99,0xf7,0x48,0x6a, - 0x7e,0xb2,0xeb,0x60,0x0c,0x4f,0xf5,0xd7,0x36,0x88,0xbb,0xa4,0xbb,0x58,0x37,0xf6, - 0xa2,0xf8,0x7f,0xd8,0x1a,0x20,0xde,0xe8,0xdc,0x17,0x67,0x2b,0x96,0xe6,0x46,0x03, - 0xfb,0x5e,0xf5,0xd3,0xb5,0x9c,0xf6,0xf6,0x02,0xd2,0x11,0x90,0x2c,0x7b,0x0d,0x5d, - 0x31,0x86,0x03,0xd2,0x56,0xe7,0xc4,0xab,0x3f,0xc1,0x2d,0xac,0x71,0xae,0x72,0xe4, - 0x38,0x5d,0x45,0x23,0x74,0x29,0xab,0x40,0xa6,0xf2,0xa3,0x22,0xa5,0xa1,0x4a,0x8e, - 0xd3,0xd2,0x50,0x70,0x05,0x29,0x32,0x5a,0x28,0x3f,0x25,0xca,0x9e,0xc7,0x17,0xc5, - 0x70,0x34,0xb8,0x8e,0x02,0x7c,0x57,0x12,0x0c,0x6c,0x8a,0xdf,0x3a,0x22,0x90,0xbe, - 0x8a,0x0a,0x65,0xdf,0xee,0x7a,0x80,0x72,0x3e,0xbd,0x03,0x22,0x3c,0xcb,0x5c,0x0b, - 0xec,0x45,0xbb,0x4b,0xbd,0xfe,0x15,0x7f,0x49,0xec,0xbb,0xd2,0xc4,0xda,0xbc,0x10, - 0x47,0xce,0x62,0x18,0x46,0xd9,0xac,0xfb,0x66,0x4a,0xe4,0xbc,0xaf,0x9e,0xbf,0x6e, - 0xc5,0x5a,0xb8,0x0d,0xf6,0x13,0x16,0xce,0xa1,0x7f,0x50,0xa0,0x04,0xb7,0x41,0xf1, - 0xa5,0x1b,0x09,0x48,0x71,0x78,0x31,0x16,0x42,0x24,0xe2,0x02,0x5b,0x21,0x7d,0x87, - 0xd9,0x04,0x3b,0xa0,0xfa,0xcd,0x7e,0x3e,0xfc,0x95,0x76,0xc5,0x12,0x2f,0x61,0x8d, - 0xf3,0xec,0x10,0x89,0x38,0x8c,0x4e,0x5b,0xaa,0xe6,0x71,0xd6,0x7e,0xe3,0x8f,0xfc, - 0xd6,0x9b,0x85,0xb1,0x75,0xc7,0xe4,0x8b,0x75,0x30,0xde,0xa2,0xbf,0x5b,0xe6,0x02, - 0x44,0xb8,0xc2,0x43,0x76,0xa3,0x96,0xc2,0x9e,0x3c,0x2f,0xf9,0xa7,0x4b,0xaf,0xb2, - 0x35,0xa7,0x04,0x3c,0x74,0x6d,0x57,0xcd,0x1f,0x3c,0x20,0x20,0x7a,0xe8,0x56,0x03, - 0x87,0x93,0x88,0xa8,0x2e,0xd0,0x94,0x73,0xb8,0x03,0x38,0x84,0xc9,0x0b,0x24,0x2b, - 0x7c,0x9a,0x9b,0x97,0x0f,0xf2,0x0d,0x19,0x35,0x89,0x0c,0x39,0x72,0x07,0x80,0x66, - 0xb0,0x0f,0xe6,0x44,0x6b,0xb1,0x78,0xfc,0x68,0x5b,0x58,0x10,0x1e,0x84,0xae,0x19, - 0xe3,0x21,0x01,0x18,0xe4,0xee,0xb4,0xc5,0xf4,0xe0,0xed,0xc3,0x14,0xaf,0xf8,0xb8, - 0x3c,0xfd,0x32,0x90,0xa6,0x7e,0x28,0x35,0x19,0x74,0x7b,0x0a,0x06,0xc0,0x49,0xca, - 0x07,0x85,0x06,0x42,0x7f,0x96,0x01,0x90,0xa4,0x7c,0x98,0x98,0x24,0x00,0x49,0xbe, - 0x03,0xa8,0x0d,0x1d,0x34,0x25,0xde,0xbb,0x66,0xb5,0xc9,0x4b,0xfc,0xf4,0x4e,0x06, - 0xa4,0xc3,0x1f,0x14,0x24,0x55,0xb7,0x39,0xa3,0x28,0x1c,0x72,0xdb,0x22,0x7b,0xbc, - 0xdc,0x53,0x6d,0x93,0xb2,0xc5,0x7e,0x76,0x8a,0x0f,0x00,0xa1,0x0c,0x54,0x30,0x9c, - 0x3c,0x8e,0xaa,0x84,0x76,0xb6,0x94,0x14,0xe6,0x69,0xa7,0x1d,0x2a,0x07,0xb3,0x53, - 0x8b,0x5b,0x63,0xd4,0x2f,0x9f,0xb5,0x53,0xf2,0x32,0xfd,0xe1,0xd7,0xe7,0x7f,0xcb, - 0x6d,0x22,0xd3,0x82,0xad,0x92,0xd9,0x29,0x75,0x75,0xa7,0x40,0x29,0xfc,0xfb,0x81, - 0xe6,0xab,0x42,0xbf,0xf0,0xe9,0x50,0xc9,0x3f,0x9a,0xc4,0x57,0x1f,0x00,0x8c,0x5f, - 0x4e,0x84,0xe8,0xfd,0x03,0xde,0xf6,0x09,0x7f,0x62,0xbe,0x70,0x61,0x66,0xee,0x90, - 0xa0,0xc2,0xc1,0x98,0x2b,0x5b,0x94,0x08,0xac,0xea,0xdf,0x39,0x56,0x60,0x84,0x18, - 0x0e,0x61,0x41,0x01,0xed,0x6c,0xbe,0x25,0xc1,0xd4,0xee,0xfb,0x34,0x41,0x4a,0x94, - 0x59,0xf8,0x84,0xa5,0x07,0x8d,0x31,0x9c,0x76,0x4f,0x6a,0xb4,0x07,0x32,0xaf,0x29, - 0xb7,0x26,0x7d,0xde,0x36,0x8b,0x4d,0x42,0x7a,0x73,0x12,0x4c,0x2f,0x2f,0x0e,0x7f, - 0x7b,0x1b,0x03,0x8d,0x37,0x37,0x2a,0xf8,0x2d,0x84,0xbb,0x30,0x0f,0xcd,0x5c,0xf1, - 0xad,0x54,0x46,0x63,0x17,0xaf,0x9e,0x5c,0x7d,0xa9,0xcb,0x4a,0x7c,0x4e,0x47,0xb1, - 0x53,0x81,0x51,0x60,0xc5,0xcb,0x1b,0x09,0x55,0x62,0x58,0x15,0xd7,0xed,0x6d,0xda, - 0x71,0x5f,0x6b,0x36,0x09,0x53,0x99,0x42,0x0c,0x50,0x3e,0xd5,0xa7,0xc5,0xe2,0xe8, - 0xd8,0xac,0xb2,0x3a,0xa3,0x78,0xfb,0x9d,0xdb,0x6a,0x13,0x4b,0xdf,0x43,0x06,0x5a, - 0x3b,0x0d,0x05,0xbc,0x51,0x97,0xf1,0x48,0xb8,0x5d,0xa2,0xbd,0x90,0xad,0x4a,0xd1, - 0x32,0x37,0x2b,0x69,0x93,0x62,0xf6,0x4f,0x37,0xab,0x3a,0x44,0xec,0xd8,0x19,0x9f, - 0xf5,0x06,0x08,0xca,0xd2,0xe4,0xd8,0x9d,0x9f,0xe1,0x31,0xa8,0xeb,0xec,0x05,0xd9, - 0xb3,0xf5,0x4e,0x1b,0x6a,0xa2,0x70,0x03,0x02,0x42,0x93,0xcb,0xf4,0xe6,0x28,0xfe, - 0x93,0x06,0x6c,0xce,0xf0,0x28,0x8a,0x3b,0x3c,0x8b,0x2b,0xfa,0xe3,0x65,0x31,0x6b, - 0xd0,0x07,0x6d,0xf4,0xb7,0xbe,0x55,0xa9,0xa0,0x6f,0x08,0xf3,0x9a,0xae,0x57,0x69, - 0x82,0xb0,0x2d,0xa9,0x81,0x23,0x01,0x42,0x24,0x91,0xae,0xe8,0x00,0x66,0x45,0xb3, - 0x37,0x1b,0xe1,0x32,0xf2,0x67,0x5e,0xd9,0xe8,0x7b,0xc4,0xeb,0x09,0xce,0x28,0x64, - 0xb1,0xa3,0xb1,0x8e,0x85,0x14,0x8f,0x1c,0x10,0x18,0xeb,0xe2,0xc6,0xc5,0x14,0xc3, - 0x19,0xa7,0xc5,0x3f,0xc0,0xaa,0x23,0xa8,0xbd,0x34,0xa7,0x34,0x59,0x62,0xb9,0x90, - 0x4a,0xe7,0x75,0xa2,0x3d,0xa7,0xa8,0xdd,0x0b,0x9c,0x77,0x82,0xca,0x62,0x4c,0xa3, - 0x4f,0xe3,0x2a,0x67,0xb6,0x1d,0x2f,0x21,0x7b,0x5e,0x2e,0x9d,0x8c,0x9a,0x81,0x39, - 0x1f,0xe7,0x16,0x2b,0xbd,0x51,0xdd,0xa0,0x22,0xd2,0x20,0xf7,0x39,0xf4,0x47,0x5d, - 0x0b,0x41,0xfb,0xd1,0xa0,0xd1,0x31,0xd5,0xc8,0x56,0x5d,0x06,0x83,0x10,0xfb,0x35, - 0xfb,0xc4,0x8d,0xba,0x8d,0xe2,0x8d,0x2e,0x0a,0x1d,0x4b,0x0c,0x44,0xf8,0xb4,0xc5, - 0xa6,0x8c,0xb7,0xd4,0xba,0x1b,0xcb,0x1a,0x82,0x70,0xa3,0x1f,0xee,0xc6,0x75,0x7c, - 0x96,0x1d,0xdd,0x44,0x67,0x7f,0x74,0xfe,0xb8,0xad,0xc3,0x76,0x4d,0x6c,0xf4,0x38, - 0xc3,0x2a,0x35,0x1e,0x8f,0xd7,0x2d,0xa8,0x1f,0xa8,0x3b,0xa7,0x37,0x3a,0x32,0x95, - 0x71,0x75,0xb4,0x82,0x65,0xf7,0x18,0xa4,0xe1,0x18,0x35,0xc3,0x7b,0x5d,0x5b,0x5c, - 0xb7,0x2a,0x8d,0x41,0x0c,0x18,0x1d,0x86,0x10,0xf0,0x6b,0x26,0xa7,0x9a,0xea,0x04, - 0xd8,0x57,0x0e,0x6f,0x2e,0x25,0x36,0xfa,0x03,0xdb,0x7d,0xad,0x39,0xe5,0x0d,0x2b, - 0x12,0xb4,0x4b,0x20,0x8d,0xfa,0xc4,0xd2,0x54,0x67,0x19,0xa6,0x04,0x38,0x03,0xa0, - 0x8e,0x64,0x4f,0x55,0x40,0x47,0x0a,0xb4,0xa1,0x4f,0x3e,0xa5,0x37,0x18,0x8c,0xb4, - 0xf9,0xa6,0xcd,0xd1,0xff,0x26,0x5e,0xfe,0x6f,0xde,0x15,0xcd,0x45,0xb0,0x55,0x5f, - 0xde,0xe2,0xc2,0x59,0x3a,0x54,0x26,0x5a,0x1b,0x2a,0x9b,0x50,0xc8,0x3e,0x25,0x97, - 0x97,0x6c,0x94,0xcd,0xf2,0x53,0x11,0x31,0xb2,0x7f,0xd0,0x13,0x84,0x33,0x52,0xc1, - 0xf1,0x7a,0xce,0x87,0x0e,0x57,0x94,0x08,0x99,0x87,0x5b,0x3e,0x19,0xe5,0x9f,0x5a, - 0x23,0x26,0x72,0xeb,0xef,0x00,0x4d,0x8e,0xb6,0x9b,0x7f,0x3e,0x4e,0xdf,0xb7,0x92, - 0xf7,0x57,0x8d,0xf4,0x9b,0xad,0x34,0x15,0x95,0x7c,0x99,0x27,0xff,0x68,0x01,0x09, - 0xcf,0xe2,0xe9,0x51,0x03,0x7a,0xcd,0xe6,0xf6,0x31,0x6b,0xf7,0x00,0x70,0x99,0x97, - 0x47,0xa3,0xa3,0x9d,0xe3,0x63,0x73,0x68,0x48,0x09,0x39,0x8e,0x20,0xf6,0xe2,0xb8, - 0x63,0xd4,0x04,0x97,0x54,0x77,0xb9,0x23,0x8b,0x2a,0x6f,0xe0,0x6e,0xb8,0xc4,0x8a, - 0xe8,0x54,0xdd,0x1c,0xaf,0x5d,0x7c,0x08,0xe3,0x39,0x58,0x90,0xea,0xc3,0x07,0x7c, - 0x10,0x51,0xc1,0xe6,0xd0,0x60,0x07,0xb5,0x19,0x28,0xbd,0x16,0x5e,0xbd,0xfa,0xd7, - 0xe5,0x31,0xdf,0xf6,0x70,0x17,0xb1,0x03,0xf3,0x2c,0xcd,0x0e,0x5f,0xf4,0x9a,0xc1, - 0x54,0x70,0xd6,0xa2,0xc4,0xb4,0x2b,0x9f,0x01,0x1f,0x7e,0xa6,0xc4,0xd4,0x64,0x9f, - 0x5f,0x2f,0x7f,0x9e,0x5f,0x9b,0xcc,0xbd,0xb3,0xe5,0x8f,0xbd,0x33,0xcd,0xaa,0xee, - 0x25,0x97,0x40,0xcc,0x07,0x83,0x64,0xbe,0x0a,0xcc,0x7c,0x50,0x74,0x70,0x9f,0x68, - 0x6b,0x4e,0x6f,0x6e,0x5d,0x01,0xe1,0xfb,0x2d,0xb4,0xa0,0x92,0xb0,0xcc,0x99,0xd0, - 0x5b,0xa0,0xcd,0x82,0xc4,0x0f,0x6b,0xb2,0xa9,0x7f,0x32,0xcd,0x80,0x97,0x7d,0x1e, - 0x24,0x17,0x45,0x32,0x53,0x82,0x5d,0x37,0x7e,0x16,0xb5,0x93,0xba,0x8c,0xdb,0x73, - 0x89,0xac,0x79,0x12,0x19,0x32,0x2d,0xf3,0x11,0x5d,0x39,0x05,0x04,0x3a,0x95,0xec, - 0xb2,0x83,0xec,0xaa,0xe5,0x0d,0x59,0x5a,0x87,0x48,0x61,0x17,0x8b,0xed,0xc7,0x4a, - 0x78,0xe8,0xb2,0x77,0x2d,0x25,0x80,0xfa,0xb0,0x8e,0x1a,0x00,0xdc,0x9b,0x22,0x45, - 0xb8,0x4c,0x95,0xba,0xbb,0xb2,0x9c,0x94,0x84,0x65,0x26,0xaa,0x0b,0x9b,0x9a,0x9e, - 0xcb,0x9f,0xb0,0x61,0x53,0xa4,0xa1,0xbf,0x9e,0x35,0x59,0x3e,0x08,0x44,0x98,0xd3, - 0x3a,0xca,0x59,0x97,0x57,0x61,0x34,0xb7,0x75,0x39,0xe3,0xd6,0x08,0xa9,0x1f,0x24, - 0x55,0xe0,0x42,0x17,0x5a,0xcb,0x45,0x08,0xc0,0x07,0x05,0xf0,0xa9,0xbb,0x23,0xb7, - 0x12,0xb8,0x02,0x87,0x4a,0x02,0x9a,0x4d,0x67,0x24,0xe7,0x9e,0x97,0x22,0xbc,0xe2, - 0x57,0x19,0x85,0xaa,0xf5,0xb3,0x1f,0xf1,0x66,0xbf,0xd9,0xdb,0x17,0x16,0xc2,0xa6, - 0x49,0x11,0xc1,0x6d,0x97,0x90,0xf0,0xab,0x96,0x7c,0xff,0x60,0xbe,0x53,0x37,0x51, - 0xa2,0x3d,0x17,0x30,0x9a,0xed,0x1f,0x9a,0xb2,0xdc,0x59,0x5c,0xaf,0x29,0x16,0x5c, - 0x12,0x84,0x66,0xeb,0x6b,0xc4,0x7e,0xc7,0xab,0x8b,0x40,0x64,0x1a,0x0b,0x60,0x12, - 0xc2,0x19,0xca,0x73,0x8d,0x60,0xa1,0x35,0xa5,0x9e,0x3a,0xf8,0x23,0xb0,0xb0,0x78, - 0xab,0x47,0x3b,0xbf,0xb6,0x50,0xf4,0xe2,0x7c,0x99,0x39,0x5f,0xe8,0xa5,0xb6,0x98, - 0xd5,0xbd,0x84,0x6a,0x1b,0x74,0x8c,0xe0,0xda,0xbe,0xc5,0xad,0x69,0x61,0xc5,0xc3, - 0x2c,0xab,0xcb,0xb2,0x30,0x1f,0xea,0x4b,0x9d,0x4f,0x6d,0x79,0x78,0xb3,0x1f,0xd5, - 0xb5,0x8a,0xfd,0xcc,0xef,0x5a,0xbe,0xfa,0x24,0xb1,0xdf,0xe5,0x5d,0x10,0xd8,0xfb, - 0xc1,0xf6,0xb3,0x26,0x09,0x86,0xe0,0x62,0x6e,0x48,0xb9,0x05,0xff,0x20,0x00,0x4a, - 0x36,0xdf,0x93,0xb5,0x48,0xf1,0x1a,0x72,0x27,0xb8,0xe9,0x1a,0x40,0x7f,0xa8,0x3e, - 0x60,0xff,0x66,0x87,0xa2,0x7b,0xf0,0x3f,0x84,0x7c,0x56,0x0c,0xcd,0x56,0x72,0xa8, - 0xa7,0xe1,0xf6,0xda,0x6e,0x6a,0x50,0xd2,0x37,0x4e,0x0b,0x86,0x82,0xfd,0xca,0xe2, - 0x9b,0x87,0x9c,0xea,0xf2,0x02,0xc8,0xb3,0xcb,0x35,0xe8,0x2d,0xde,0x3c,0xb9,0xa4, - 0x4f,0x40,0xae,0x87,0x3f,0x8a,0x35,0xbf,0x74,0xf1,0x6a,0x40,0xa5,0xfd,0xca,0x22, - 0xe4,0x45,0x9f,0xe4,0xc8,0xe4,0x54,0xec,0x42,0xcc,0x01,0x9e,0xbe,0xb9,0xaa,0x66, - 0x6a,0xd6,0x32,0x7f,0x73,0x02,0x5f,0x2e,0xf6,0x4c,0x08,0xea,0x02,0x72,0xae,0xf0, - 0x76,0x86,0x28,0x79,0x60,0x15,0xe5,0x06,0x20,0x9f,0x13,0x29,0x52,0xa1,0xa3,0xcc, - 0x9c,0x19,0x2c,0xdd,0xd8,0xdc,0xf4,0xbf,0x1e,0x39,0x5f,0x8f,0x69,0x37,0x5e,0xca, - 0xfc,0xe0,0x25,0x53,0xa6,0x07,0x77,0x60,0x9f,0x5e,0x09,0x72,0x9b,0x5d,0x53,0x8f, - 0x89,0x3f,0x6a,0x68,0x44,0xd5,0xac,0x29,0x5d,0xe1,0xd0,0xcc,0xfa,0xb9,0xd6,0x44, - 0x46,0xf7,0x3f,0xa2,0x9a,0xbf,0x0b,0x34,0x67,0xe0,0xfa,0x0a,0x5b,0xd2,0xe2,0x58, - 0xcf,0x14,0x04,0xaa,0x7f,0x40,0x55,0xce,0xef,0xc7,0xcb,0xbd,0x35,0xac,0xec,0xd4, - 0x31,0x92,0xdb,0xc9,0x2b,0xa8,0x9e,0xe1,0x5f,0xc7,0x47,0x85,0xba,0x93,0x9b,0xba, - 0xd9,0xe4,0x4d,0x61,0x14,0x90,0xb6,0xa2,0x2f,0x88,0x16,0xe9,0xae,0xe6,0xb9,0xdd, - 0x90,0x1e,0x8b,0x43,0xe2,0x32,0xe0,0x61,0xcd,0x49,0x16,0x36,0x1e,0xb2,0x5d,0x09, - 0xaa,0xf5,0xe9,0x58,0x0c,0xba,0xf2,0x4b,0x4b,0x0e,0x25,0x7a,0x27,0x6f,0xf5,0x67, - 0x63,0x76,0x76,0xd0,0x33,0xc8,0x4f,0xc4,0x40,0x2a,0xc8,0x19,0xe0,0xdd,0xda,0x43, - 0x3f,0x2e,0x30,0x96,0x72,0x45,0x91,0x04,0x44,0xf2,0x4a,0x60,0xfc,0x40,0x34,0xd0, - 0xf8,0x66,0xb6,0xf5,0x0b,0x0e,0x3c,0xe7,0x7c,0x91,0xdd,0x6b,0x1d,0x03,0x4e,0x25, - 0x6c,0x52,0x3d,0x0b,0xbc,0x33,0xd8,0xb3,0xd1,0xca,0x6a,0xf9,0xb5,0x22,0x48,0xae, - 0x57,0x35,0xed,0x84,0x65,0x11,0x41,0xb7,0xa9,0xd6,0x42,0x3f,0xb2,0x54,0x9f,0xde, - 0x84,0x44,0xda,0x6f,0x6b,0x1a,0xa9,0x18,0xe6,0x4c,0xa7,0x46,0x92,0x79,0xd8,0xf8, - 0xd4,0x78,0xa8,0x87,0x5d,0x44,0x60,0xc5,0x60,0x0f,0x21,0x91,0x61,0xcf,0x7f,0x75, - 0x36,0xec,0xbf,0xc3,0xa7,0x9c,0x01,0xf6,0x27,0xe4,0x27,0x38,0x49,0x33,0x7e,0xf9, - 0x91,0x1b,0xfd,0xc1,0x29,0xd2,0x5e,0xfc,0x23,0xf1,0xc0,0x33,0xd3,0x0f,0x0c,0xa1, - 0xb6,0x2f,0x80,0x9c,0x95,0x5c,0x5b,0xd7,0xd4,0xb6,0xc8,0xd4,0xf0,0xc9,0x49,0xd1, - 0x86,0x95,0xe2,0x72,0x8f,0x94,0x9a,0x1e,0xa0,0x80,0xc1,0x24,0x85,0x3d,0x53,0x0d, - 0xbf,0xf5,0xd3,0x3d,0xd9,0x0d,0xd0,0x7b,0x30,0x1c,0x60,0x96,0xdf,0x64,0x97,0x4a, - 0x44,0x9f,0xbf,0xa3,0x44,0xb9,0x1b,0x21,0x03,0x54,0x0b,0x0a,0xb7,0x73,0x6a,0x4a, - 0x82,0xe4,0x0f,0x46,0x90,0x34,0x0b,0x92,0x2c,0x9f,0xa0,0x4a,0xfc,0x8c,0xe7,0xe6, - 0xa0,0xdf,0x00,0x73,0x5a,0x8a,0x13,0x0c,0x75,0x37,0x1d,0x00,0x68,0x32,0x60,0x98, - 0xcd,0x9c,0xe3,0x59,0xbe,0xbd,0xb9,0x29,0x7e,0xcb,0xf3,0xed,0xb6,0x16,0xc5,0x09, - 0x51,0xdc,0xe0,0xdf,0x46,0x92,0x54,0x28,0xf3,0x7c,0xfb,0xc9,0x62,0xe1,0xbc,0xee, - 0xee,0xa4,0x7b,0x71,0xa4,0x09,0x94,0x45,0x1f,0x3b,0x6c,0xf4,0x10,0x6c,0x02,0x84, - 0x92,0x19,0xed,0x51,0x48,0x67,0xf2,0xe4,0xf1,0x93,0x9d,0xc7,0x69,0x23,0xa6,0x4c, - 0xfe,0x77,0xf6,0xc5,0x2c,0x20,0xf0,0xbd,0xec,0xeb,0x92,0xe1,0x85,0x8d,0xb9,0xa9, - 0x06,0x4c,0x86,0x4b,0x61,0x3b,0x99,0x64,0xb4,0x54,0x26,0xfc,0x0a,0x00,0x38,0x11, - 0x9f,0x45,0xff,0x6e,0xe0,0x17,0x8b,0x07,0xfc,0xa1,0x92,0x02,0x4c,0x7a,0x25,0x72, - 0x3c,0x08,0x5a,0x47,0x5a,0x64,0xbc,0xaa,0x35,0xba,0x78,0xd2,0xd9,0x61,0xcc,0xdc, - 0x1e,0x83,0xd3,0x7b,0xa6,0xca,0xe3,0xb4,0xa3,0xbe,0xcc,0xbb,0x1b,0x01,0x85,0xca, - 0x4a,0x10,0x69,0x30,0xf8,0x8c,0x0a,0x9a,0x25,0x4c,0x45,0xeb,0xec,0x05,0x89,0x1d, - 0xb0,0x33,0x28,0x67,0x76,0x5d,0x5f,0x42,0xd0,0x54,0xcb,0x19,0xb9,0xa1,0x82,0xbc, - 0x2b,0x9b,0x31,0x18,0x0c,0xbc,0xfa,0xf9,0x4d,0xeb,0x7e,0x1e,0xd1,0xed,0xe1,0x7b, - 0x37,0xb0,0x36,0xce,0xda,0x86,0x56,0x2a,0xa5,0xc1,0x84,0xe7,0xb9,0x64,0xc8,0x73, - 0x6d,0x03,0x3b,0x78,0xee,0x6c,0x0b,0x39,0x44,0x73,0xfd,0xa3,0xaf,0x39,0x76,0x15, - 0x88,0xd4,0xe6,0x09,0xfc,0xc9,0xaf,0xc9,0xab,0x59,0x41,0xb6,0xeb,0x24,0x8c,0xbb, - 0xad,0x4e,0x11,0xe0,0x14,0xbe,0x08,0x30,0xd9,0x9e,0xac,0x69,0x62,0x1e,0x71,0xeb, - 0x5b,0x12,0x86,0x26,0xc1,0x1c,0xa0,0xf4,0xe2,0xcc,0xa8,0x1d,0xaf,0x1b,0xf3,0xb7, - 0x4c,0xa9,0xb9,0xb9,0xa6,0xe5,0x04,0xde,0xf6,0x31,0xec,0x04,0x42,0xe5,0x75,0xdb, - 0x34,0x22,0x73,0xa0,0x03,0x6c,0x6e,0x72,0xb2,0x2b,0x0c,0xb9,0x38,0xdc,0xc5,0x07, - 0x29,0xff,0xd2,0xf2,0xd3,0x77,0x56,0x1e,0xe9,0x75,0xf8,0xc3,0xab,0x4f,0xe2,0x96, - 0x96,0x31,0x29,0x99,0x10,0xed,0x34,0x64,0x9d,0xa9,0x84,0x4e,0x26,0xb0,0x01,0x22, - 0x57,0x6e,0x9d,0xe5,0x20,0x17,0xc6,0x71,0xbb,0x1b,0xe1,0x62,0xf8,0x99,0x0d,0x7c, - 0xaa,0x16,0x8c,0xf7,0x2f,0x68,0xb1,0x1b,0x69,0x96,0xad,0xd2,0x71,0x70,0x5f,0x46, - 0x24,0xf0,0x45,0x7c,0xce,0x02,0x17,0x93,0x23,0x3a,0xaf,0x22,0x35,0x41,0x31,0xfc, - 0x0c,0xa7,0x19,0x94,0x03,0xce,0xb6,0xe9,0x03,0x07,0x97,0x55,0x1f,0x17,0x40,0x1e, - 0xbf,0xa2,0xc6,0xd4,0x68,0x09,0xd1,0xa0,0x04,0xf2,0xde,0xf0,0xf4,0x62,0xc8,0xee, - 0x77,0x89,0x77,0x7e,0x28,0x71,0x89,0xac,0x68,0x63,0x2d,0xca,0x11,0x18,0x54,0x27, - 0xfd,0x96,0xbf,0x2b,0x74,0x85,0x08,0x19,0xb5,0xd3,0x9c,0xb4,0xe0,0xb0,0x00,0xab, - 0x84,0x83,0x55,0xc6,0x5f,0xd3,0x23,0x47,0xa2,0x22,0xb8,0x5c,0xe7,0xcb,0x5b,0xbb, - 0x80,0x4c,0x5b,0x08,0x88,0xd8,0x88,0x33,0xea,0x6c,0xad,0x93,0x2b,0xf3,0x50,0x9e, - 0x99,0x87,0xd3,0xd9,0xd2,0x1a,0x21,0x7b,0xbd,0x64,0x68,0xcd,0xff,0x75,0x3a,0xc1, - 0xad,0x81,0xbc,0x01,0xc3,0x5d,0xe7,0x1a,0x01,0x9a,0xdf,0x03,0x76,0x9e,0x5b,0x78, - 0x66,0xa8,0x9c,0x33,0x57,0x54,0xd9,0xe3,0x62,0xc1,0xb4,0x64,0x39,0x72,0x2a,0x0b, - 0x3a,0xe7,0x42,0x2f,0xf6,0x8a,0xd4,0x7d,0xb2,0xd9,0x07,0x88,0x7a,0x32,0x3f,0xed, - 0x9a,0xbe,0x0e,0xfe,0xa9,0x54,0x63,0x9e,0xab,0x5b,0x19,0xb2,0x77,0xd0,0x24,0xb6, - 0x3a,0xb1,0x58,0xd6,0xef,0x37,0x02,0xbb,0xaa,0x1b,0x36,0x45,0x38,0xc0,0x29,0x06, - 0x75,0x68,0xeb,0x11,0x2e,0xed,0xda,0x0f,0x6c,0x64,0xa3,0xe9,0xb7,0x1b,0xb6,0x51, - 0x3f,0xad,0x6a,0x53,0xe1,0xf4,0xa7,0xdc,0xdd,0x00,0x64,0x97,0x79,0x75,0xb8,0xc3, - 0x74,0xa2,0x92,0x22,0xca,0x07,0xbb,0x82,0xf0,0x90,0x56,0xc7,0xaa,0x99,0x03,0xc9, - 0x78,0x09,0x88,0xf9,0xee,0x27,0xce,0xa3,0x5a,0x67,0xf4,0x05,0x1f,0xa8,0x7d,0xe8, - 0xdb,0xe6,0x26,0xfd,0x09,0xee,0x69,0xc4,0x2d,0xc4,0x21,0x8d,0x59,0x66,0x23,0xc6, - 0x9f,0x9e,0x2b,0x66,0x23,0xa5,0xd9,0x2a,0x41,0xf6,0x5f,0x63,0xa5,0xa8,0x87,0x7d, - 0x9a,0xe9,0xce,0xce,0xad,0x79,0x74,0x6d,0x34,0xe7,0x50,0x41,0x97,0x5f,0x5f,0x6d, - 0x35,0xe4,0x0b,0x43,0x26,0xae,0x5b,0x70,0x4e,0x55,0xcf,0x6d,0x44,0xf4,0xa5,0xcc, - 0x91,0x18,0xdb,0x1c,0x05,0x51,0xeb,0x8e,0xb3,0x3b,0x20,0xc3,0x90,0x75,0xeb,0x26, - 0x5d,0xb3,0x06,0x3c,0x48,0x2a,0x6a,0x36,0x37,0xab,0xc7,0x96,0xc1,0x80,0xba,0xdb, - 0x23,0xcb,0x2a,0x17,0x2a,0x5d,0x7e,0x1e,0x9f,0xfe,0x28,0xd0,0xc6,0xca,0x80,0xed, - 0x36,0x54,0x04,0x54,0x66,0xda,0xee,0x84,0xf7,0x60,0x4b,0xd3,0xed,0x9d,0xfd,0x4c, - 0x33,0x34,0xf2,0x59,0xcb,0xe0,0x6d,0xb2,0x0c,0xce,0x2b,0x53,0x21,0x36,0x11,0xbe, - 0x31,0xd2,0x07,0x7a,0xfc,0x4f,0x58,0x92,0xcb,0xe4,0x1b,0x7f,0x44,0x64,0x83,0xb4, - 0x5b,0x0b,0x64,0x47,0x07,0x60,0x6e,0x99,0xec,0xb7,0x50,0xb3,0x12,0xcc,0x90,0x66, - 0x60,0x26,0xba,0x5e,0x05,0xe5,0x4d,0x39,0xdd,0xc0,0x88,0xc0,0x4e,0x7f,0x66,0x67, - 0xef,0x8b,0x4b,0xb5,0xdc,0xb9,0xd9,0x38,0xd2,0xc3,0x90,0x38,0x73,0x8f,0x45,0xea, - 0x8c,0x2b,0xa6,0x54,0x9d,0xc1,0xb5,0x19,0xad,0x38,0x57,0xf1,0x96,0xeb,0x87,0x0d, - 0xf9,0xde,0x78,0xd8,0xc2,0x37,0x57,0xf2,0xa9,0x07,0xd3,0x93,0x17,0x40,0xda,0x16, - 0x4d,0xf4,0x44,0x1c,0x42,0xcb,0x62,0x51,0xbd,0x8d,0x9d,0x17,0xed,0x4c,0xcb,0xb6, - 0xeb,0x76,0x31,0xa6,0x09,0x24,0x53,0xc5,0xc2,0x65,0xee,0x2a,0x24,0xd2,0x9b,0x65, - 0x35,0x80,0x1c,0xb5,0x7b,0x1a,0x03,0xde,0x12,0x12,0x86,0x75,0xd2,0xc0,0x27,0xdc, - 0x4c,0xd5,0x5c,0x22,0x13,0x40,0x73,0x81,0xd3,0xc7,0xd4,0x76,0x24,0x4d,0xf5,0x8e, - 0xd0,0x16,0x0b,0x49,0x0b,0x0f,0xb4,0xd2,0xda,0x76,0x0a,0xdb,0xda,0xaf,0xb5,0x16, - 0xa5,0xd7,0x07,0xd0,0xc9,0x38,0x54,0x9f,0x4c,0x61,0x0f,0x3c,0x25,0x25,0x41,0xe7, - 0xd3,0xde,0xac,0x2c,0x7e,0x82,0xaf,0xa1,0xc4,0xb6,0x0d,0xc8,0xb6,0xad,0x06,0x15, - 0xa9,0x27,0xa5,0x0c,0x4a,0xf2,0xf8,0x37,0x98,0x17,0x09,0x1d,0xa3,0x6e,0x6e,0xf6, - 0xce,0x9e,0xe5,0xed,0xbd,0xf8,0xff,0x47,0xe2,0x9c,0x31,0x8f,0xa7,0x4b,0x8d,0xfd, - 0x04,0xb1,0x70,0xb6,0x08,0xa2,0xb1,0x9d,0xa6,0x5b,0xb4,0x41,0x6c,0xc4,0xff,0x11, - 0xf5,0x29,0x7a,0x57,0xc4,0xd1,0xbb,0xe2,0x8e,0x68,0x87,0xd5,0xc8,0xa6,0xc6,0x78, - 0x05,0xd7,0x8a,0x42,0xdb,0x15,0xdd,0x5a,0x93,0x09,0xcb,0x9c,0xef,0xfa,0x75,0x6b, - 0xb4,0x45,0x56,0xa9,0x46,0x0a,0x50,0x82,0x84,0x89,0x29,0x96,0x33,0xf7,0xde,0x57, - 0x7a,0xf7,0x72,0x57,0x8f,0x58,0xb5,0x88,0xa7,0x00,0x7e,0x39,0x26,0x7b,0x56,0x62, - 0x44,0xdf,0x45,0x8d,0x5c,0x83,0x7e,0x56,0xa9,0xbb,0xd3,0x00,0x95,0x2a,0x15,0x6a, - 0x36,0xf8,0xa2,0xd1,0x0b,0x0a,0x56,0x0d,0x93,0x1d,0x36,0xee,0xd7,0xc6,0xc3,0xfa, - 0x89,0x74,0xc2,0x1a,0xa7,0x09,0xc9,0x0e,0x95,0xaa,0x61,0xe2,0xd0,0x84,0xc1,0x62, - 0x47,0x88,0x8b,0xd0,0x02,0xd1,0x53,0x3d,0x4d,0xd0,0x5e,0x85,0x7a,0x2f,0xa5,0xcb, - 0x42,0xdc,0x8b,0xb2,0x89,0x74,0x31,0x47,0x72,0xab,0x2f,0x71,0xf6,0x51,0x75,0x8d, - 0xfe,0x1c,0x7d,0xe7,0x5a,0x8a,0xe2,0x26,0xab,0x87,0xad,0x2a,0x28,0xad,0x62,0x0a, - 0x14,0x84,0x82,0x3c,0xc1,0x55,0xb7,0xd0,0xd4,0x72,0x18,0x42,0x01,0x59,0x9a,0xd8, - 0x38,0xf1,0x62,0x93,0x16,0x89,0x7d,0x1e,0xfb,0xd0,0x84,0x2f,0x0a,0x0a,0x6a,0x32, - 0xa6,0x09,0x9c,0x85,0x27,0xd2,0x0f,0xb7,0x4c,0x38,0xb8,0x96,0x78,0x3d,0xd4,0x19, - 0x34,0x6f,0x6e,0x77,0xdf,0x3d,0xff,0xf1,0xe5,0x9b,0x0f,0x6f,0xdf,0xbd,0x20,0x7b, - 0xc6,0x83,0x9a,0x29,0x37,0x1b,0x30,0xe3,0x54,0xb9,0x26,0xe5,0x08,0x1f,0xa6,0x29, - 0x11,0x98,0x8e,0xf2,0x01,0xaf,0x7d,0x86,0xa5,0x23,0x0c,0x4b,0x23,0x3c,0x8c,0xd2, - 0x4e,0xa2,0x75,0xf1,0x26,0xaa,0xbd,0x18,0xf4,0xc7,0x1d,0xc9,0xa4,0x4a,0x26,0x47, - 0xb1,0x0e,0xee,0x2c,0xdd,0x87,0x75,0x95,0x92,0x9b,0x9b,0x56,0xa4,0x72,0x9f,0xad, - 0xa2,0x8c,0xf6,0x10,0xe9,0xb2,0x5a,0x77,0x59,0x19,0xee,0x7e,0x3d,0xce,0xab,0x6e, - 0xb8,0x7e,0x88,0x5b,0x34,0x2b,0xc7,0xf3,0x83,0x55,0x93,0x00,0x91,0xab,0x85,0x00, - 0x67,0x2c,0x95,0x5f,0xd1,0xdf,0x97,0x14,0xb4,0xfe,0x77,0x10,0xac,0x8b,0x5c,0x7d, - 0xff,0xf5,0xce,0x8a,0x4c,0x67,0xf3,0xde,0x20,0xab,0x6b,0x65,0x6a,0x85,0x3d,0x97, - 0x27,0xb5,0x74,0x62,0x66,0x09,0xcb,0x41,0x92,0xfb,0xa2,0xa5,0x58,0x95,0x63,0x80, - 0x20,0x28,0xe6,0xd6,0x37,0xea,0x0a,0x16,0x9f,0x1b,0xa3,0xc4,0x72,0x35,0xa4,0x55, - 0xe7,0x32,0x9d,0xdc,0xac,0x35,0xd3,0xe9,0x5f,0x07,0xe5,0x00,0x1a,0x92,0x07,0x18, - 0x43,0x62,0xb8,0xe9,0x0a,0xa2,0x26,0xd6,0x53,0x19,0x5c,0x92,0x10,0xb7,0x3f,0x75, - 0x22,0xab,0xdc,0x31,0xce,0xc6,0x14,0x9a,0x68,0xd3,0xa2,0x77,0xf2,0x35,0xc7,0xc1, - 0xfe,0x7a,0xdc,0x48,0xc6,0xd0,0x79,0xed,0xc5,0xc6,0x33,0x4f,0xdc,0xd1,0xa7,0x32, - 0xb8,0x6a,0xe5,0x38,0x05,0xba,0x71,0xb6,0x85,0xe1,0x46,0xcd,0x6c,0xa5,0x79,0x68, - 0xea,0xb3,0xdc,0xbf,0x8e,0xc5,0x93,0x50,0xd1,0x87,0x1c,0x2e,0x63,0xea,0xe0,0xd5, - 0x9b,0x43,0x18,0x7b,0xbf,0x7a,0xf1,0x3a,0xbf,0x99,0x53,0xc4,0x87,0x71,0xe7,0xd1, - 0x77,0xd9,0x45,0x59,0xcc,0x60,0x7e,0xd5,0xd9,0xdd,0xae,0xae,0xdf,0xd3,0xbd,0xa2, - 0x4c,0xbc,0xd5,0xe1,0x89,0x63,0x06,0x74,0xfe,0xfc,0x38,0xeb,0x5d,0xf4,0x07,0x70, - 0xaa,0x44,0x89,0xb7,0xc2,0xd6,0xb7,0xbf,0x1c,0x7e,0x38,0xfc,0xef,0xb7,0x2f,0x0e, - 0xf2,0xa3,0xa3,0x76,0x16,0xbf,0x7b,0xf1,0x5f,0x24,0x89,0x1f,0x6d,0xe3,0xe9,0xe0, - 0xed,0x9b,0xd7,0x07,0x2f,0xf0,0xba,0x93,0xc5,0x87,0x7f,0xa3,0x92,0x0f,0xfe,0x82, - 0xb7,0xdd,0x2c,0x7e,0xbe,0xff,0x0b,0x9e,0x1e,0xd1,0xd3,0x8f,0x7f,0x7d,0xf1,0xee, - 0x90,0x5e,0x36,0x8e,0x1e,0x67,0xf1,0x5f,0xde,0xbd,0xfd,0x40,0x90,0xf8,0xf6,0x44, - 0xde,0x7e,0xa4,0xb8,0x27,0x78,0xfd,0x8e,0x40,0x5f,0xbf,0x79,0xfd,0xc1,0x14,0xf0, - 0x7d,0x16,0xbf,0x7d,0x7e,0xf8,0x33,0x1e,0xff,0x4c,0xc8,0xdf,0x3d,0xdf,0x7f,0xc1, - 0x38,0xb6,0x89,0x86,0x5f,0x7f,0x7b,0x75,0xf8,0xf2,0xed,0x73,0xc2,0x0a,0x4a,0x88, - 0x94,0xfd,0x37,0xaf,0x0f,0xdf,0xbd,0x79,0xc5,0xaf,0x44,0xca,0xac,0xe0,0x9a,0xf5, - 0xf9,0x7d,0x37,0x78,0x7f,0x64,0xdf,0x05,0x21,0x51,0xf5,0xee,0xf9,0xef,0x1f,0xf6, - 0x7f,0x3b,0x38,0x7c,0xf3,0x6b,0x7c,0x7c,0x6c,0xab,0xfd,0xfa,0xf9,0xaf,0x2f,0x7e, - 0xd4,0x9e,0x47,0x0e,0x3f,0xa8,0x5f,0x26,0xb0,0x92,0xa3,0x76,0x54,0xae,0xd4,0xcd, - 0xa3,0xdc,0x54,0xd3,0xa3,0x6d,0x1c,0x9b,0xda,0xb2,0xd2,0x0a,0xe3,0x11,0xbe,0x51, - 0x17,0xe3,0x38,0x64,0xfb,0x34,0x2c,0x92,0xf4,0x38,0x9f,0x1e,0xb5,0x8f,0xbd,0x71, - 0x70,0xc6,0x02,0x3a,0x05,0xab,0xf8,0x94,0xa0,0x83,0x99,0x81,0x30,0xd7,0xdd,0x1a, - 0xd2,0xac,0xcd,0x1e,0x43,0xb4,0xe8,0xcb,0xc8,0x08,0x81,0x73,0x9e,0x6f,0x16,0x0b, - 0xfe,0xa5,0xf3,0xca,0xea,0xe8,0xbb,0x7d,0xfd,0x13,0xfd,0xb3,0x30,0x70,0xed,0x68, - 0x3f,0xaa,0x06,0xb2,0xfc,0x94,0xb7,0xb3,0xc9,0x27,0x73,0x6e,0x47,0x7b,0x79,0xea, - 0x77,0xd4,0xe1,0xb2,0xba,0xf5,0x8f,0x04,0xbc,0x8a,0x3a,0xca,0x82,0x57,0x43,0x49, - 0x36,0xc6,0xb2,0x83,0xa2,0xb6,0xfe,0x7e,0xd4,0x26,0x4b,0xc5,0xc6,0x37,0xe6,0x96, - 0x33,0x01,0xa6,0xe9,0x58,0x64,0xc3,0x97,0x63,0x7e,0xcf,0x48,0x84,0xb3,0x33,0x1b, - 0x25,0xf8,0x1c,0xa2,0x45,0xc5,0xb6,0x09,0x65,0xb5,0xdc,0x5c,0x02,0x95,0xe3,0xd4, - 0xf1,0xd3,0xf6,0x62,0x31,0x7e,0x46,0x96,0x53,0x37,0x44,0x95,0x88,0x5c,0x52,0xcd, - 0xdb,0x0d,0x54,0x70,0x91,0x27,0xdb,0x4f,0x9f,0x42,0x5f,0xe6,0x28,0x73,0x26,0x9f, - 0xf6,0xf0,0xad,0xa3,0x5c,0xba,0x0d,0xdb,0xe3,0x90,0x18,0x9d,0x00,0x44,0x66,0x41, - 0x3c,0x11,0x17,0x05,0xdc,0x70,0x91,0xd9,0xdd,0x75,0xbf,0xea,0x07,0xe6,0xb5,0xb0, - 0x98,0x44,0xed,0x1c,0xf6,0xf5,0xfe,0x95,0xd0,0xed,0x27,0xbc,0xe1,0x33,0x59,0x37, - 0x41,0xe0,0x20,0x4d,0x09,0xb6,0x35,0xbd,0x28,0xcf,0x93,0x81,0x25,0x14,0x69,0x72, - 0x81,0x33,0x0b,0xa6,0x95,0x52,0x37,0x80,0x3f,0xcf,0x47,0xc3,0x64,0x90,0x9d,0x65, - 0x30,0x0c,0xc8,0xf8,0xca,0x7d,0x06,0x8d,0x60,0x75,0x43,0xf4,0xa1,0xe7,0x4e,0x36, - 0x2a,0xcf,0x9a,0x0f,0x1b,0x67,0x8d,0x87,0x95,0x1f,0xd9,0x87,0x0d,0xfe,0x6d,0x3c, - 0xac,0xf5,0x52,0xfe,0xb0,0x81,0x5f,0x02,0xf7,0x9c,0xe5,0x3f,0x6c,0x0c,0x68,0xb7, - 0x25,0x78,0xee,0xe9,0xf0,0xba,0xc6,0xf5,0x1e,0x15,0x9d,0x80,0xd4,0x3d,0x8f,0x44, - 0xa4,0xe0,0x13,0x7e,0x41,0x14,0xdc,0x98,0x3c,0xec,0x3c,0x7c,0x98,0x56,0x2f,0xfe, - 0xdd,0x62,0x67,0x9f,0x2b,0xbc,0x30,0xbd,0x94,0x4c,0x35,0x8a,0x32,0xb7,0x23,0x98, - 0x4c,0x79,0xbd,0xd1,0xab,0xec,0x11,0x36,0x68,0xe9,0xd3,0x4f,0xeb,0x9d,0xc1,0x4f, - 0xcf,0xf2,0x98,0x6b,0x1f,0x8b,0x2a,0x1c,0x6f,0x18,0xd4,0x60,0x68,0x24,0xfe,0xec, - 0x34,0x21,0xc2,0xc3,0x36,0x3d,0x58,0x0f,0x4d,0xc2,0xf0,0xe0,0x5e,0xee,0xaa,0x66, - 0x92,0xae,0x68,0xfd,0xfd,0xa2,0xa2,0x42,0x55,0x59,0xa1,0xda,0x20,0xec,0xf5,0xf1, - 0x65,0xc3,0xc6,0x52,0x6c,0xc8,0x62,0x8b,0x42,0x85,0x3f,0x82,0xdb,0xcc,0x2d,0xe5, - 0xf0,0x32,0x4c,0x8f,0xc8,0x58,0xe7,0x13,0x73,0x38,0xfe,0xa4,0x0c,0x82,0x3d,0x90, - 0xe1,0x51,0x07,0x63,0x04,0xc1,0x42,0xd4,0x29,0x9a,0x60,0xfe,0x17,0x10,0x59,0x37, - 0xc4,0x3e,0x2a,0xd7,0x3b,0x11,0x65,0xb8,0x18,0x05,0x9e,0xcf,0x00,0xb4,0xdc,0xb9, - 0x7e,0x3f,0x1f,0x9c,0x22,0x5e,0xd0,0x67,0x2c,0xc8,0x4c,0x87,0xe8,0xb3,0x25,0xc4, - 0x92,0x75,0x45,0x65,0xc2,0x29,0xb5,0x22,0x27,0xb0,0x1f,0x79,0x2d,0xd3,0x50,0x43, - 0xa2,0xeb,0xee,0x5d,0x99,0x7c,0x65,0x57,0xc3,0x21,0x21,0x5d,0x6d,0xbb,0x04,0xf3, - 0x18,0x6b,0xb8,0x99,0x5c,0xe0,0x65,0x1a,0x32,0x25,0x26,0x78,0xf1,0x2f,0x8d,0xbe, - 0xaa,0x48,0x34,0xa2,0x93,0xba,0x84,0xae,0xe9,0xf2,0x35,0xea,0x1d,0x6f,0x6f,0xf7, - 0x4d,0x1e,0x6b,0x73,0xd7,0xee,0x9c,0x74,0xbb,0x30,0xc8,0xcf,0xad,0x34,0x5c,0x6f, - 0x71,0xbe,0x95,0x52,0x0f,0x96,0xb9,0x0c,0x17,0x47,0x29,0x83,0xd5,0x7a,0x62,0x0a, - 0x32,0xea,0x00,0x7c,0x53,0x8d,0x80,0x5d,0x5b,0x9c,0xb5,0xed,0xbc,0xda,0x17,0x00, - 0x74,0xc9,0xf1,0x8c,0x92,0x6e,0x47,0x57,0x2d,0xe1,0xa7,0x27,0x10,0xd3,0x4f,0xaa, - 0xa3,0x50,0x3b,0x7f,0xea,0x12,0x43,0x20,0x52,0x12,0xd6,0x99,0x34,0xa5,0xa5,0xb9, - 0x6d,0xcd,0x0e,0xa8,0x7b,0xe4,0xcb,0xc5,0x53,0x4d,0xa4,0xe7,0xc8,0x92,0x4a,0x4f, - 0x29,0xfd,0xef,0x89,0x7b,0xde,0xfc,0xbf,0x87,0x99,0x5f,0x3a,0x4d,0xdc,0x49,0xf4, - 0xd3,0x5e,0x6c,0xda,0xad,0xea,0x44,0x71,0x27,0x5c,0x4b,0x0c,0x19,0x88,0x58,0xee, - 0x31,0xf2,0xcc,0x14,0x8d,0x0f,0x29,0xfe,0xac,0xde,0x67,0xda,0x06,0x0b,0x15,0x45, - 0xb7,0xe9,0xca,0x69,0x71,0x9f,0x05,0xd3,0x3e,0xad,0x12,0xdc,0x4e,0x37,0xce,0xea, - 0xff,0xf5,0xed,0x01,0xc2,0x6d,0x93,0xa4,0x76,0xcd,0xad,0x6f,0x12,0xdb,0x1a,0x66, - 0x76,0x8a,0x09,0x7d,0xd5,0x5d,0x49,0x45,0x1f,0x32,0x2d,0xb8,0x66,0xaf,0xd6,0x0f, - 0xf5,0xdd,0xfa,0x5c,0x0f,0xf3,0x50,0x88,0xa7,0xb9,0xa3,0xf7,0x9a,0x61,0xe3,0xb1, - 0xcc,0x39,0x6f,0x28,0xab,0x23,0x84,0xf3,0x49,0x09,0xcf,0x47,0x48,0xe0,0x9e,0x8e, - 0x77,0xaf,0xa7,0x9f,0xd3,0x9a,0x83,0x3d,0xdf,0x1d,0xca,0x5d,0x86,0x65,0xff,0x2b, - 0x0f,0x6b,0x3d,0xac,0x37,0x23,0xfc,0x46,0x4d,0x75,0x93,0x8e,0x21,0x6f,0xef,0xeb, - 0xd5,0x8a,0x9f,0xc0,0xd6,0x08,0xd0,0x81,0x41,0xf0,0x8c,0x34,0xe5,0x1b,0x1a,0x29, - 0x56,0xa5,0x20,0xc1,0x16,0x00,0x1e,0xd5,0xe3,0x38,0xe5,0x83,0xbf,0xf8,0x99,0xfc, - 0xb6,0x5a,0x2d,0x97,0x2a,0x54,0x18,0x59,0x9c,0x59,0x15,0xf5,0x34,0xb3,0x36,0x1e, - 0xb5,0xcf,0x2c,0xcd,0xbe,0xf0,0x2f,0x09,0x27,0x86,0x04,0x13,0x31,0x08,0x4d,0xe6, - 0x35,0x13,0x75,0x10,0x3a,0x82,0x59,0xa0,0x2b,0x5e,0x5d,0x14,0x2b,0x46,0x65,0x58, - 0x85,0xfa,0xa2,0x52,0xc0,0x2d,0xa0,0xb6,0x80,0x50,0x66,0x8a,0x79,0xeb,0x14,0x67, - 0xd6,0xf8,0x9b,0x36,0x27,0xa7,0xa7,0xf0,0x28,0xa8,0x5f,0xe2,0xb4,0x26,0x9b,0x6e, - 0xb4,0xe8,0x3b,0x66,0x09,0xfa,0xf9,0x4d,0x53,0xea,0x73,0xd8,0x02,0xbc,0x47,0xd5, - 0x1f,0xac,0xca,0x25,0x1b,0x37,0x5b,0xca,0x01,0xde,0xa5,0x4b,0xae,0x2c,0x68,0x32, - 0xc3,0x37,0x89,0xa7,0x80,0x22,0xe4,0xbd,0x1d,0x11,0xcd,0x72,0x61,0x50,0xe3,0x38, - 0x01,0x12,0x2e,0x2c,0x7b,0x12,0x63,0xae,0x14,0xdc,0xbf,0xbd,0x7b,0x55,0x8b,0x97, - 0x77,0x8e,0x96,0x92,0x43,0xbc,0x46,0xf3,0x62,0x34,0xc5,0xc1,0x2d,0xca,0xb1,0x8e, - 0x8f,0xcb,0x4e,0x74,0x03,0x93,0xf1,0xdb,0xe8,0x46,0x3c,0x39,0xd2,0x03,0x66,0x4b, - 0xfc,0x80,0xab,0xb7,0xb5,0x05,0xe8,0x8e,0xd4,0x96,0xf1,0x9f,0xbf,0x1f,0x46,0x4e, - 0xaa,0xde,0xd6,0x8e,0x9a,0x4e,0x5c,0x0c,0xb4,0xc4,0x16,0x38,0x0a,0xe9,0xf2,0x1c, - 0x88,0x6b,0xc4,0xc1,0x0d,0x4f,0x70,0x04,0xf7,0x9c,0x5b,0xfe,0xe8,0xcd,0xc1,0x7e, - 0x3d,0x3c,0x60,0x41,0x8e,0x0c,0x52,0x65,0x38,0xfe,0xed,0xb2,0x88,0x54,0x7f,0x12, - 0xd5,0x29,0x0b,0x15,0x75,0xe6,0xd0,0xfa,0xd5,0x52,0xba,0xee,0x8b,0xa1,0xae,0x4e, - 0x21,0x9e,0xfa,0xae,0x0e,0x7c,0x92,0x1f,0x5d,0x2f,0x57,0x24,0x8e,0x91,0x09,0x1a, - 0x9b,0x37,0x8f,0xdd,0x3b,0xa6,0x12,0xa2,0x4a,0x26,0x08,0x5a,0xca,0xf0,0x93,0x22, - 0xe3,0x54,0x67,0x6a,0xbe,0xf9,0x9e,0x9b,0xcf,0x3a,0x39,0xec,0xe9,0x43,0x27,0x21, - 0xe0,0x3d,0xfa,0xbf,0xc5,0x70,0x1d,0xb3,0xd7,0xb4,0x4e,0xcb,0x7e,0xed,0x4d,0x55, - 0x4b,0xc1,0x10,0x84,0x44,0x47,0x9e,0x8e,0x24,0xfb,0x01,0x29,0x68,0x50,0xda,0xd4, - 0x6a,0x9a,0x16,0x94,0x6d,0xe8,0xd8,0x59,0x0f,0xae,0x50,0x35,0x28,0x54,0x17,0xb2, - 0x8c,0x1a,0xc3,0x61,0x39,0x99,0xbb,0xfd,0x72,0xb2,0x76,0xcb,0xe5,0x2f,0xb2,0x7a, - 0x75,0x50,0xa7,0x07,0xba,0xed,0xbe,0xf5,0xad,0x41,0x0d,0x4b,0x6a,0x16,0xb0,0x33, - 0xb3,0x4c,0x5c,0xd5,0x4b,0x29,0xb4,0x25,0x88,0x1b,0x67,0xdc,0x85,0xae,0xd2,0xab, - 0x35,0x1e,0x16,0xa4,0x80,0xa3,0x33,0x35,0x01,0x5c,0x7b,0x3c,0x22,0x5a,0xab,0xbb, - 0xce,0x47,0xb2,0xd1,0x92,0xfa,0x74,0x73,0x33,0x19,0xe5,0x48,0x58,0x2f,0x41,0x4a, - 0xb7,0x93,0x4b,0x8b,0x1b,0x47,0xee,0x79,0x66,0x66,0xcf,0x2d,0xeb,0xce,0x06,0xb1, - 0xe4,0xd6,0x9e,0x89,0xe2,0x43,0xc6,0x77,0x1d,0xd3,0x55,0x6a,0xfe,0xa9,0xb2,0x12, - 0x8c,0x04,0x91,0xa1,0xd4,0xca,0xb5,0xe1,0x71,0x58,0x27,0x28,0x79,0x98,0x44,0x68, - 0xea,0x8a,0x02,0x73,0x2d,0x27,0x71,0x49,0xbb,0x8e,0x91,0x27,0x96,0x8f,0x4a,0xc8, - 0xde,0x52,0x0a,0x1f,0x3f,0xe8,0xb6,0x87,0x4e,0x20,0xd8,0x57,0xa4,0x58,0x06,0x9e, - 0xf8,0x93,0x05,0xfc,0xd7,0xe6,0x27,0x96,0x42,0x64,0x50,0xd5,0x4d,0x07,0x27,0xc0, - 0x39,0x83,0xd0,0x1e,0x34,0x23,0x49,0x55,0x5e,0x88,0x59,0xaa,0x22,0x72,0xa6,0xad, - 0x93,0x3b,0xa5,0xf9,0xaf,0x97,0x0f,0x1d,0x71,0x9d,0x4a,0x07,0x0b,0xd7,0x88,0xa6, - 0xc1,0xcd,0x5f,0xd8,0x4c,0xfc,0x34,0x99,0xc1,0x30,0x83,0x34,0x47,0xa3,0x52,0x0f, - 0x6f,0x6a,0x0d,0x30,0x40,0x39,0x7d,0xf0,0x78,0x45,0x0b,0x52,0xbe,0xde,0x18,0x83, - 0x20,0x52,0xfa,0xdf,0x9a,0x63,0x08,0x77,0xd4,0x7f,0xa3,0x2a,0x04,0x8d,0x0b,0xc7, - 0x24,0xc6,0xde,0x32,0xc6,0x36,0x46,0xc6,0xdf,0x6b,0x4c,0x8a,0x31,0xd0,0xe1,0xd8, - 0x92,0xf4,0x4a,0xf1,0xe4,0x13,0x35,0x02,0xdf,0x73,0xee,0x9e,0x7a,0x9b,0x08,0x22, - 0xbf,0xbb,0x51,0x43,0x8c,0x78,0x49,0x4c,0x5b,0x88,0x8c,0x36,0xee,0xef,0x9f,0x93, - 0x10,0x9a,0x9c,0xfa,0x92,0x29,0x74,0xd0,0xc2,0xa9,0x32,0x21,0x8c,0xb3,0x5e,0x06, - 0xce,0x32,0xa5,0xd4,0xf6,0xa4,0xd8,0x60,0x65,0x7c,0xbd,0xee,0xbc,0xa4,0x89,0xcd, - 0x51,0x33,0x67,0x9a,0x71,0xda,0xcb,0xb7,0x74,0x74,0xaa,0xbe,0xae,0x97,0xee,0x55, - 0x39,0x8f,0x7a,0xc7,0x95,0xe2,0x70,0xaf,0xdd,0xd9,0x4e,0x3b,0x3b,0xa6,0xff,0x9d, - 0x2c,0x67,0x3c,0x71,0x33,0x9e,0xd4,0x64,0x54,0x2b,0x2a,0xea,0x32,0x27,0x8b,0x45, - 0xaf,0xc5,0x81,0x97,0x8a,0x7d,0x04,0x6a,0x9e,0x15,0x94,0x9d,0xaa,0x5b,0x6f,0x04, - 0x2d,0xf5,0xc3,0xf1,0xb9,0x7b,0xb6,0x6e,0x9a,0x09,0x77,0xfa,0x73,0x80,0x74,0x04, - 0x4c,0x7c,0x1a,0x0a,0x8b,0x36,0x37,0xf9,0xa7,0x25,0xc6,0x67,0x29,0xdc,0xdd,0xb9, - 0x21,0xdb,0xc6,0x86,0x73,0xf6,0xc3,0xf4,0x2a,0x4c,0x0f,0x2e,0xe6,0x05,0x5f,0x83, - 0xbb,0xcd,0xe1,0xc7,0xf0,0x22,0xb3,0x0b,0x90,0x82,0x70,0x43,0x99,0x28,0x5f,0x41, - 0xb7,0xdb,0x7e,0x02,0xa8,0x27,0x1f,0xd8,0x60,0xd2,0x19,0xb4,0x93,0x2b,0xbd,0x31, - 0x87,0x03,0xaf,0xcd,0xae,0x73,0x3e,0x11,0x97,0x44,0xea,0x1f,0x5a,0x0e,0x0a,0xc4, - 0x75,0x5f,0xe5,0xfd,0xae,0x6b,0x30,0x20,0x91,0xff,0xda,0x23,0x0e,0x71,0xd3,0x10, - 0xb8,0x68,0xd8,0xb0,0xf7,0xed,0xd5,0xc0,0x2c,0x03,0x8a,0xe5,0x1b,0xf7,0x53,0xf2, - 0xd9,0x48,0x2e,0xf7,0x2f,0x86,0xd8,0xee,0x65,0x6d,0xfa,0x0f,0x08,0x32,0x2e,0x24, - 0x93,0xca,0xc0,0xfd,0xc1,0x5d,0xfe,0x40,0x72,0xeb,0x0f,0xa4,0x9e,0x30,0x3d,0x55, - 0xe7,0x4d,0x67,0x7a,0x7a,0xc2,0x8a,0xfa,0x8c,0xd3,0x6c,0xcd,0x81,0xd1,0xf5,0xe0, - 0x48,0x1a,0x62,0xf7,0x7d,0x7b,0x97,0x4a,0x5d,0x8f,0x9e,0x51,0xa0,0x25,0x00,0x19, - 0x58,0x9b,0xdd,0xf3,0xae,0x89,0x64,0xb7,0x33,0x98,0x10,0x99,0x69,0x55,0x71,0x83, - 0x78,0x56,0x48,0x88,0x6e,0x6b,0x75,0x52,0x5b,0x2d,0x5e,0xdf,0xa4,0xb9,0x13,0x37, - 0x3b,0x07,0x86,0xb0,0x38,0x1a,0x42,0xf1,0x5e,0xdc,0xa1,0xa9,0x88,0x1f,0x61,0x0d, - 0x4b,0x68,0x75,0x42,0x5c,0x66,0xcc,0x9f,0x95,0xfd,0xd2,0x25,0x72,0xe9,0x14,0xf7, - 0x6b,0x4d,0xe5,0xf6,0xdd,0x9c,0x5c,0x5f,0xa5,0xf8,0xf9,0x58,0xdc,0x79,0x89,0x20, - 0x12,0x41,0xeb,0x56,0xa0,0x47,0x9b,0x53,0x30,0xf5,0xf6,0x22,0x4e,0x60,0x87,0x9f, - 0x63,0xaf,0x46,0xcb,0x94,0xa2,0x84,0x90,0xd4,0x50,0x39,0xa2,0xd1,0x35,0xcc,0x54, - 0x28,0x43,0xca,0x2c,0x45,0x79,0x38,0x4f,0xe8,0xbc,0x13,0xce,0x14,0xc1,0x97,0x70, - 0xae,0x08,0xbf,0x87,0xb3,0x45,0xfd,0xe7,0x70,0xbe,0x50,0x10,0x99,0xef,0xa8,0x60, - 0xf2,0xe1,0x99,0xf7,0xfa,0x64,0x3d,0xfb,0x96,0x9f,0xa9,0x6b,0x79,0xd4,0x8b,0x60, - 0x23,0x70,0x54,0xbb,0x55,0x0e,0xea,0xe4,0x04,0x1f,0x6b,0x36,0x0b,0x2d,0x58,0xf6, - 0xb8,0x35,0x34,0xa7,0xcb,0x62,0x77,0xf1,0xf1,0xd9,0xe8,0x33,0x9f,0xd6,0xbc,0x32, - 0x1b,0xf4,0x87,0x45,0x99,0xf5,0xb0,0xdc,0x6b,0x1b,0xb0,0xef,0x98,0x39,0x9b,0x88, - 0x03,0x24,0xc7,0x1f,0xdc,0x4b,0x60,0xd0,0x9c,0xff,0xe2,0xd5,0xa2,0x85,0x7b,0x11, - 0x6a,0x9a,0x2f,0xe9,0x57,0x52,0xa2,0xd7,0xaf,0x38,0x65,0x0f,0x83,0x84,0x48,0x41, - 0xfd,0x23,0x73,0xe2,0x2e,0xce,0xe8,0xae,0x7a,0x65,0x34,0xa4,0xd9,0x8d,0xbb,0x97, - 0xa8,0x81,0x27,0x70,0x02,0x4c,0x6e,0x61,0xe2,0x0e,0xe7,0xb2,0xde,0x86,0x58,0x7e, - 0x71,0xe2,0x9d,0xaa,0x8d,0xf3,0x0c,0xa6,0x91,0x1b,0xa1,0x0d,0xee,0xd6,0x8c,0x59, - 0xb2,0x27,0x63,0x8a,0x86,0xe2,0xf8,0x94,0xac,0xb0,0x7e,0x7b,0xf7,0x12,0xab,0xdd, - 0x64,0x0c,0x29,0x42,0x86,0x59,0x76,0x63,0xcc,0xd5,0x3a,0x34,0x45,0xb5,0x6f,0x57, - 0xfa,0xa2,0x65,0xe8,0x07,0xd5,0xe0,0x14,0xf6,0xe8,0xf0,0xb3,0xee,0x6a,0x79,0xf2, - 0x84,0x08,0xc1,0x76,0x6c,0x37,0xf5,0x4e,0x72,0xc3,0xf1,0xc2,0xec,0x97,0xd1,0x1d, - 0x36,0xd7,0x6d,0x46,0x64,0xd5,0x95,0x83,0x8d,0x4d,0x1f,0xab,0xbb,0x10,0xc8,0x28, - 0x9e,0x3e,0xba,0xb3,0xc4,0xa0,0x93,0x34,0xb6,0x6b,0xbb,0x09,0xca,0xfd,0xce,0x2d, - 0x57,0xab,0xab,0xfd,0xf1,0xae,0xf9,0x06,0xe3,0x04,0x79,0xca,0xbc,0x2d,0x37,0xbb, - 0x24,0xae,0x80,0x7e,0x06,0x3f,0x41,0x8d,0xf1,0x99,0x52,0xe3,0xef,0x69,0xae,0xca, - 0xba,0x4f,0xe4,0x58,0xfa,0xcd,0x2f,0x5b,0x03,0x16,0x71,0x28,0xbd,0xc5,0xbe,0x79, - 0xcd,0x6d,0x1d,0x3a,0xd9,0xe4,0x52,0x1a,0x0d,0x79,0x3f,0x25,0xb3,0x5f,0xb8,0xdf, - 0xad,0xea,0x41,0xdb,0xa3,0x01,0x2f,0xe6,0x18,0xc7,0xb6,0x76,0x04,0xa1,0x72,0x8c, - 0x7c,0x86,0xb0,0x54,0x7d,0xd6,0xb4,0x34,0xb0,0x27,0xd4,0x74,0x2e,0x4b,0x9e,0xf3, - 0x5c,0x87,0xb1,0x34,0xc3,0x96,0xcc,0x03,0x4b,0xe4,0xa6,0x0e,0x13,0xf4,0x82,0xa6, - 0x6e,0xef,0x56,0x38,0x95,0x7f,0x28,0x46,0x15,0x91,0xa3,0x74,0x95,0x32,0x8d,0x0e, - 0xc3,0x98,0x31,0xfa,0xd2,0x39,0x64,0xdf,0x37,0xbf,0xc4,0x1d,0x2d,0xd8,0x3a,0x62, - 0xff,0x3b,0xcd,0x28,0xc9,0x64,0x96,0xee,0x1d,0x75,0xb2,0xe3,0xbd,0xf7,0xe5,0xb7, - 0x5b,0x03,0x68,0xaf,0xcc,0xb4,0x6c,0x3d,0xc0,0x5e,0xf5,0x66,0xe3,0x75,0x16,0xc5, - 0x4e,0x45,0x84,0x06,0xd9,0x5e,0x24,0x33,0xaf,0x93,0x72,0xab,0x18,0xd3,0x09,0x69, - 0xa1,0x18,0x62,0xd7,0x5c,0xdc,0xc3,0x57,0xeb,0x65,0xd4,0xa4,0x54,0x1a,0xe3,0xbc, - 0xa9,0x8c,0x9d,0x23,0xe9,0x59,0x25,0x61,0x6d,0xb8,0xc6,0xef,0xcc,0xb2,0x6a,0x92, - 0x7e,0x2e,0x01,0x21,0x74,0xc9,0x70,0x1b,0x3d,0x9c,0xe8,0xbd,0xd6,0x0f,0xd0,0x1c, - 0xc8,0x54,0x7f,0x07,0x1a,0x5d,0x10,0x42,0x54,0xd8,0xe7,0x0b,0x3b,0x92,0x99,0x78, - 0x4c,0x1c,0x4c,0x71,0x6d,0xe3,0x50,0xa3,0x2d,0xe3,0x88,0xb1,0xe8,0xfb,0x37,0x2a, - 0x60,0xb7,0xd4,0x8a,0x0e,0x35,0x50,0x33,0xa6,0x32,0x0d,0x6f,0x11,0x95,0x88,0xc7, - 0x72,0x29,0xd6,0x2f,0xd1,0x15,0x6d,0x44,0x38,0x20,0x8a,0xb0,0xa3,0x6c,0x91,0xff, - 0x4b,0x33,0x05,0x8a,0xd3,0xce,0x29,0x2c,0xd2,0xa2,0x09,0x76,0x63,0x53,0xd2,0x93, - 0xc8,0x99,0x59,0x6f,0xae,0x3e,0x40,0x33,0x94,0x2b,0x61,0x6b,0xf1,0xa4,0x85,0xe0, - 0x16,0xc8,0x2a,0x3e,0x7a,0xc4,0x0f,0x4a,0x0d,0xd6,0x02,0x61,0x80,0x3c,0x14,0x9d, - 0x57,0xa1,0xa1,0x7f,0xd0,0xec,0x15,0xd2,0xe8,0xa7,0x09,0xf6,0xd2,0x80,0xc0,0x9e, - 0xcf,0x81,0x28,0xc6,0x34,0x4d,0x67,0x1c,0x9b,0x35,0xea,0xc1,0xc7,0x4d,0xc6,0x55, - 0x86,0xbd,0xaf,0x20,0xd5,0x28,0xd4,0x83,0x3e,0x81,0x92,0xdf,0x01,0x10,0x58,0xdb, - 0x42,0x77,0x13,0x28,0x9c,0xc6,0x82,0x13,0x99,0x36,0x23,0x4f,0xc7,0xbd,0x8f,0xad, - 0xe8,0x25,0x91,0xa5,0x4c,0x46,0xc0,0xa7,0xd3,0xcf,0xc8,0x4d,0x33,0x8e,0xa0,0x6d, - 0x45,0xbf,0x83,0x55,0x7c,0x67,0x87,0x70,0x69,0xe6,0x4c,0xa8,0x9c,0x90,0xa2,0xa9, - 0x2b,0x37,0x69,0x68,0x84,0x60,0xe1,0xd1,0x66,0xb8,0x28,0x01,0x6d,0x0b,0x15,0x75, - 0x2b,0x2a,0x70,0x5f,0x32,0xd1,0x1b,0x74,0x74,0xb8,0x2d,0x1c,0x36,0x26,0x78,0xa6, - 0x4d,0x69,0xf0,0xf6,0x84,0xdb,0x12,0x2a,0xb7,0xd9,0x2b,0xe1,0x9c,0xbd,0xe8,0xdb, - 0x66,0xce,0x36,0x44,0x12,0x5b,0xd1,0xd6,0x7b,0xf1,0x52,0x2b,0x1a,0x9a,0x8e,0xde, - 0xfc,0x72,0x8c,0x55,0x59,0xc3,0xc1,0xc4,0x9d,0xba,0xd6,0x08,0x50,0x28,0xbf,0x57, - 0xa1,0x88,0x0f,0x4c,0x25,0x57,0x41,0x64,0xd5,0x10,0xca,0x24,0xf1,0x00,0xbc,0x20, - 0x7d,0xd3,0xcc,0x13,0xa1,0x5d,0xc1,0xf5,0xa0,0xc2,0x84,0xf9,0xc3,0xda,0x76,0x1d, - 0x4c,0xce,0xe6,0x72,0xaf,0xe3,0xfe,0xdb,0x1d,0x5d,0xd5,0xef,0xb9,0x85,0x69,0x3f, - 0xaa,0xcb,0x81,0xc5,0xf5,0xe9,0x4e,0xfb,0xfe,0x2b,0x71,0x63,0xdb,0x0a,0x6c,0xf7, - 0x5e,0x89,0x43,0x61,0x3a,0xac,0xf8,0x8d,0x71,0x62,0x88,0xe3,0xb6,0x48,0x7c,0xcb, - 0xc8,0xb9,0x12,0x22,0x65,0x49,0x5c,0x2b,0x52,0xdc,0x9c,0x9c,0x14,0x7c,0xfe,0x2d, - 0x8b,0x31,0x6b,0x7a,0xca,0x8d,0xfb,0x5c,0x67,0xb2,0xd7,0x94,0xfe,0xe5,0x7b,0x40, - 0x72,0x85,0x7b,0xc5,0x65,0x20,0xf9,0x28,0x8a,0x04,0xff,0x8c,0xd5,0x2e,0xdd,0x04, - 0xf7,0x20,0x37,0x90,0x8e,0x4b,0x01,0xfb,0x39,0xbc,0x4f,0x43,0x3d,0x5c,0x8f,0x70, - 0xd5,0x51,0x66,0x8d,0xe3,0x00,0x8b,0x48,0x30,0xaf,0xbf,0x93,0xa3,0x97,0xfa,0x1f, - 0x24,0x56,0xe3,0xed,0xd1,0x9b,0xfe,0x4b,0x97,0x8a,0xc0,0x2f,0xf7,0x76,0xfe,0x91, - 0xb9,0xe3,0xc2,0xf7,0xdf,0x32,0x7d,0x39,0xb9,0xaa,0x1e,0xcb,0xb3,0xea,0xf1,0x74, - 0x76,0x6c,0xcd,0x95,0xc2,0x3b,0x31,0x0e,0x52,0x29,0x05,0x16,0xc3,0x52,0x46,0x60, - 0x52,0xac,0xec,0xae,0x1c,0x00,0xf8,0x77,0xeb,0x33,0x07,0x93,0x61,0x41,0x85,0x2a, - 0xad,0xb9,0x8d,0xaf,0xe5,0xf1,0xe3,0x5b,0xd6,0x9e,0x26,0x55,0x86,0x3d,0x1f,0xb2, - 0xe3,0xe2,0xb6,0xf6,0x70,0xf7,0xbb,0x6c,0xa5,0x66,0x15,0xfd,0xeb,0xfc,0x06,0xdc, - 0xea,0xb4,0xb3,0x93,0xab,0xce,0x76,0x56,0x9e,0x75,0x76,0xb2,0xd3,0x59,0x67,0xf7, - 0x36,0x30,0xc4,0xed,0x6e,0x54,0xcc,0xb7,0xc4,0x1d,0x51,0xfe,0xe3,0xb5,0xbe,0x29, - 0x6c,0x6d,0x31,0x18,0xff,0x4f,0xbe,0x56,0x64,0x2f,0xa5,0x04,0x26,0xbd,0xf5,0xee, - 0x21,0x83,0xc9,0xc3,0xba,0xa2,0xf4,0xdc,0xb0,0xe4,0x37,0xb0,0xf6,0xee,0xa8,0x75, - 0x6f,0x26,0xf3,0x07,0xe2,0x3a,0x99,0x4d,0x1c,0x9e,0x49,0x28,0xab,0x33,0x2a,0x57, - 0x17,0x18,0x22,0x20,0x25,0x8a,0xc3,0x9b,0xa2,0x13,0x03,0x13,0xce,0x2f,0x32,0x3f, - 0xd7,0x62,0xcd,0x73,0xcd,0x53,0xfb,0x19,0xbb,0xd0,0xda,0x29,0xff,0x6b,0x51,0xd6, - 0xbb,0xcb,0x35,0x4b,0xd0,0x4f,0xbc,0x45,0xc5,0x6a,0xcd,0x5b,0x58,0x9d,0x35,0x37, - 0xea,0xb8,0xbc,0x2f,0xee,0x89,0x51,0xc7,0x8a,0xeb,0x04,0x76,0x87,0x17,0x7d,0x55, - 0x10,0xe8,0xce,0x0b,0xa0,0x71,0xfa,0x95,0xa7,0x1f,0x89,0x5a,0x7d,0xa5,0x5d,0xff, - 0x7c,0x03,0x83,0xcc,0xa5,0x26,0x18,0x67,0xea,0x33,0xf5,0xba,0x66,0x6c,0x10,0x70, - 0x76,0x4d,0x2c,0x3d,0xe1,0x43,0xa1,0x23,0xbd,0x70,0x21,0x36,0x26,0xe2,0xb8,0x87, - 0x7e,0x24,0xb8,0x7a,0x26,0xb5,0x5b,0xc6,0x4d,0x52,0xbf,0x78,0xe5,0x8f,0x1b,0xf3, - 0xd5,0x3b,0x91,0x39,0xb5,0x83,0x3d,0x7f,0x99,0xeb,0xdd,0x6d,0x27,0x89,0xe8,0x30, - 0x45,0xa5,0x12,0x99,0x14,0xcf,0x89,0xe8,0x27,0x30,0xbb,0x4e,0x35,0x21,0xf4,0x0e, - 0x1c,0x94,0x68,0xbd,0x03,0x67,0x01,0x76,0xa4,0x85,0xc5,0xda,0x0f,0xd2,0xe0,0xc3, - 0x01,0x4a,0xf0,0xcd,0x8d,0x47,0xf3,0xdf,0xa6,0xf0,0x27,0xcf,0xa7,0xc3,0x6e,0x44, - 0x92,0x72,0xeb,0xfb,0x27,0xd8,0xf0,0x67,0xe7,0x5e,0xea,0x7f,0x70,0xea,0xd6,0xee, - 0x13,0x7c,0x1a,0xf9,0x9f,0x90,0xb8,0xf5,0xa4,0x6d,0xcd,0x55,0xfb,0xcf,0xda,0x7b, - 0xfd,0x46,0xdc,0x8f,0xe2,0xc6,0x79,0x23,0x26,0xdf,0x9d,0xc9,0x39,0xa5,0xe0,0x91, - 0x52,0x46,0x8d,0x98,0x0e,0x8b,0xf9,0xaf,0x17,0x4b,0x6b,0x40,0xd5,0x1c,0x64,0x27, - 0x19,0x11,0x55,0x63,0x09,0x89,0xcf,0xb0,0xc8,0x7c,0x66,0xec,0x45,0x06,0x64,0x40, - 0x42,0xcf,0x27,0x78,0xc6,0x43,0x52,0xee,0x3d,0x24,0xbb,0x4b,0x7a,0x12,0x93,0x8f, - 0xc0,0x54,0xd4,0x29,0xc8,0x6d,0x88,0x1b,0xb7,0x0d,0x20,0x17,0xe9,0x33,0x71,0xde, - 0x46,0x89,0x43,0x94,0xb2,0x97,0xc6,0x31,0x5b,0x52,0x41,0x65,0xbb,0x6d,0x3f,0x12, - 0x99,0xc5,0xc5,0x07,0xe9,0x1e,0x8a,0xf4,0x86,0x2f,0x78,0x29,0x96,0xe0,0x63,0x50, - 0x5c,0xfb,0xd6,0xc1,0xea,0x50,0x15,0x46,0x08,0xa8,0x0f,0x10,0x80,0xa2,0xeb,0x14, - 0x41,0xe8,0xd0,0x9c,0xab,0x49,0x33,0xc8,0xb2,0xf7,0xdd,0x21,0x36,0x86,0x04,0x49, - 0x56,0x3e,0xb1,0xd5,0xe9,0xae,0xcb,0x13,0x9b,0xe5,0xfb,0x24,0xb7,0xd7,0xf4,0xa8, - 0x68,0x84,0xd2,0xfb,0x40,0xab,0x48,0x41,0xb7,0xf4,0x76,0x1e,0x99,0x9d,0x3d,0x9a, - 0xaf,0xf4,0xc2,0x2a,0x6c,0x70,0x83,0xc7,0xbf,0x4d,0xa1,0xfc,0x8a,0x33,0xd3,0x21, - 0x5b,0x17,0xfc,0xfe,0xa1,0x4c,0xd3,0x86,0x81,0xf8,0xa1,0x37,0x27,0xa6,0xd1,0x72, - 0x47,0x5f,0x4f,0xe8,0xf9,0xc3,0xe8,0x92,0x30,0x13,0xeb,0x69,0x6c,0xfc,0x34,0xb8, - 0xa6,0x43,0xc3,0x9d,0x34,0x8b,0xff,0x1a,0x57,0x19,0x7e,0xa2,0xb2,0x23,0x50,0x41, - 0x2b,0xe4,0x49,0x16,0xff,0xf2,0x03,0xb9,0x8c,0x27,0x45,0x29,0x75,0xbd,0x65,0x3a, - 0x29,0x5d,0xc8,0xac,0x72,0x53,0x9c,0x83,0xa8,0x37,0xa4,0x73,0xa9,0x38,0xab,0x01, - 0x87,0x47,0x4c,0x7c,0x94,0x4c,0x40,0x6e,0xcb,0x7d,0x8d,0xd8,0x81,0x11,0x0f,0x8a, - 0x38,0x2b,0x5b,0x63,0xbc,0x66,0x71,0xff,0x87,0x91,0x05,0x79,0x45,0xb3,0x75,0xf4, - 0xee,0xe0,0xe0,0x25,0x00,0x66,0xb4,0x57,0xe2,0xef,0x44,0xdf,0xc1,0xeb,0x77,0xec, - 0xd6,0xbe,0x1c,0xcf,0x2a,0xe0,0xe7,0x83,0x19,0x78,0x11,0x1d,0xfe,0xcd,0xb2,0xa7, - 0x27,0x69,0xe0,0x4f,0x08,0xf6,0xce,0x01,0x23,0x6f,0x29,0x35,0x90,0xb2,0x66,0x97, - 0x80,0x44,0xf1,0xc5,0xe9,0x65,0x86,0x13,0x4a,0x14,0x8c,0x1c,0xf4,0x18,0x82,0x72, - 0xd9,0x44,0x15,0xb5,0xb7,0x65,0x2f,0xdc,0x67,0x12,0x8e,0xad,0xc3,0x0a,0xcd,0x07, - 0x54,0x9a,0x06,0x7c,0xb4,0xc5,0xb8,0x00,0x2e,0x49,0x55,0xa6,0x1f,0x07,0x04,0x37, - 0x0f,0x72,0xf5,0x39,0xd1,0xcf,0x26,0x69,0x9a,0x8f,0xae,0x99,0x44,0xa4,0x93,0xba, - 0x28,0x90,0x67,0x7e,0xfd,0x81,0x9f,0xe9,0x63,0xe2,0xb8,0xca,0x37,0xcd,0xf6,0x5f, - 0x87,0x87,0x16,0x14,0x93,0xbd,0x01,0xee,0xc4,0x96,0xfd,0xd8,0xe6,0x2a,0xfb,0x65, - 0x9b,0x57,0xb5,0x81,0x05,0x7a,0xf9,0x16,0x5f,0x07,0x53,0x3a,0x59,0x69,0x62,0x6a, - 0x65,0x5b,0x7c,0x94,0x87,0xe9,0x18,0xbd,0x80,0x7a,0x55,0xda,0x75,0x53,0xa5,0xa9, - 0xb5,0xc9,0x21,0xf0,0x4e,0xc9,0xe4,0x90,0x25,0x27,0x7e,0x6a,0x72,0x67,0x4c,0x33, - 0x17,0x49,0xda,0x0d,0x81,0x38,0xb3,0x85,0x52,0x64,0xa1,0x9b,0x04,0x11,0xcc,0x87, - 0x79,0x69,0x3d,0x3e,0x77,0xab,0x71,0xaa,0x62,0x9a,0x33,0xce,0xca,0xa1,0x39,0x3c, - 0xdc,0xa3,0x27,0xcf,0xf6,0x5d,0xef,0x5b,0x9f,0xe5,0xc9,0x35,0x0c,0x2f,0xcd,0x05, - 0x93,0x14,0x37,0x4c,0xbc,0xb9,0xf7,0xd3,0x25,0xcf,0xbc,0x98,0x74,0xfd,0xf0,0xc0, - 0x1a,0x86,0x94,0x56,0x86,0x9a,0xa8,0xc6,0xc6,0x06,0x26,0x7a,0xb8,0x01,0xcb,0x43, - 0x2d,0x43,0x6c,0x64,0xa1,0x32,0x4a,0x42,0x4b,0xd9,0xd4,0x33,0x95,0x15,0xf8,0x34, - 0xf5,0xac,0x03,0x65,0xca,0xe1,0x30,0xa7,0x25,0xc8,0x9e,0x7c,0x12,0xa2,0x17,0x8b, - 0x6b,0x38,0x27,0x77,0x6a,0x00,0xdf,0x32,0xf8,0xde,0x88,0x49,0x83,0xcb,0x3d,0x8c, - 0x21,0xe8,0x95,0xfe,0x56,0xde,0x1f,0xeb,0xea,0x29,0x66,0x89,0x04,0x3e,0x36,0xd1, - 0x26,0x84,0x7a,0xb1,0x9b,0xd4,0xa5,0xc7,0xb7,0x38,0x1f,0x0c,0x87,0x94,0x43,0xe0, - 0xd0,0x0e,0xd6,0xe2,0xd2,0xa6,0xa8,0xfd,0x3f,0x25,0x0b,0xfd,0x5e,0xc5,0x1a,0x67, - 0xde,0x6d,0x80,0x0e,0xcd,0x26,0xc6,0x16,0xcf,0x86,0xcf,0x51,0x67,0x27,0xf7,0x90, - 0xa7,0xb9,0x7b,0xf6,0xe0,0xbd,0xb2,0xd7,0xe2,0xe7,0x4b,0x16,0xb1,0x7a,0xa6,0x2f, - 0x3c,0xa3,0xd5,0xba,0xd7,0x2a,0xcf,0x07,0xd8,0xa8,0x3b,0xd9,0xa4,0x4f,0xd2,0xbc, - 0x00,0x51,0xc2,0x74,0x8f,0xfe,0x74,0x96,0x9b,0x80,0x68,0xa2,0x58,0x7a,0x4b,0x93, - 0xee,0xf0,0x1d,0x8e,0x4f,0xc8,0x05,0x2d,0x5c,0x96,0x5f,0x42,0x38,0xa4,0xc1,0xfb, - 0x3b,0x5c,0xb3,0x90,0xdc,0xf0,0xf8,0x49,0x77,0x83,0x12,0xaf,0xf0,0x9a,0x5f,0x7d, - 0x4b,0x08,0xba,0xf4,0x2a,0xc1,0x81,0xf3,0x73,0x7e,0x67,0xcc,0x1f,0x91,0xf5,0x63, - 0xc1,0x2b,0x0a,0x5a,0x3c,0xde,0xc1,0x11,0xe8,0xc7,0x56,0x09,0x9b,0x80,0x84,0xc0, - 0x32,0xfa,0x1f,0x09,0xbc,0x76,0x92,0x52,0x6a,0x9e,0xe0,0x64,0xef,0x2a,0x3b,0x97, - 0x61,0x41,0x44,0x6a,0x85,0x9e,0xee,0xf8,0x66,0xe7,0xe3,0x5c,0x43,0xad,0xb4,0x38, - 0xda,0x86,0x9c,0x0e,0x71,0xad,0xb2,0xd1,0xb5,0xf9,0xd8,0xbb,0x0e,0x3f,0x0a,0x5e, - 0x02,0xc8,0xf3,0xd1,0x38,0xbd,0x19,0x5d,0x37,0x68,0x2b,0x35,0x1a,0x37,0xf3,0xed, - 0xdb,0x0d,0xa2,0x6b,0x8e,0x6b,0x00,0x07,0xdc,0xff,0x99,0xec,0xd1,0x94,0x94,0x5e, - 0x7d,0x4e,0xb0,0xc1,0x54,0xf5,0xc1,0x98,0x8a,0xa4,0xa8,0xa1,0x7a,0xe8,0x14,0xef, - 0x6a,0x71,0xb3,0xd9,0x3b,0x3d,0x8d,0xf5,0x06,0x17,0x4d,0x34,0x7f,0xda,0x39,0xf9, - 0xae,0x5f,0xfc,0x39,0xee,0x52,0x29,0x88,0x5b,0xce,0x9c,0xcc,0x77,0xba,0xf2,0xf6, - 0x9f,0xd4,0x29,0xf2,0x98,0x17,0xa2,0x98,0x92,0x4e,0x8a,0x8f,0x74,0xec,0x47,0x35, - 0x80,0x54,0x07,0xaa,0x97,0xe5,0xd7,0xcb,0x4c,0x6f,0xbf,0x5c,0xe7,0x83,0x2d,0x97, - 0x51,0xcd,0xed,0xf4,0xdb,0xe4,0xaa,0xf9,0x28,0x6d,0xec,0x64,0x9f,0xf3,0xf3,0xe6, - 0xa3,0x66,0x72,0xd9,0xa4,0xba,0x6e,0x51,0xad,0xe9,0x97,0x3e,0x12,0x48,0x1b,0x7c, - 0xd8,0x93,0xc2,0x0f,0x27,0xc9,0x75,0xf6,0x39,0xed,0x7c,0x6c,0x91,0xda,0x41,0xdf, - 0x44,0x9a,0x54,0x8e,0x24,0x78,0xc6,0x68,0x1d,0x0a,0x6f,0x3c,0x4e,0x11,0xc1,0x98, - 0x2a,0xf2,0x18,0x61,0xb0,0xe9,0xca,0x02,0xed,0x13,0x46,0xcd,0x8b,0x01,0x2a,0x82, - 0x46,0x7f,0x4e,0x41,0xb3,0x51,0x39,0xf4,0x8d,0x58,0xd1,0x60,0xfc,0x33,0xd1,0x47, - 0x1e,0xe5,0xc7,0xd9,0x55,0x73,0x27,0xdb,0x0e,0xfc,0xb0,0xe1,0x66,0xf4,0x2f,0xc5, - 0x67,0x0e,0x08,0x93,0xc8,0xfe,0xc2,0x1a,0xae,0xc9,0xfb,0xe6,0xe6,0x8a,0x30,0xac, - 0x0a,0xdf,0x55,0x87,0x0c,0x70,0x2e,0x3f,0x53,0xeb,0x9f,0x5e,0x91,0x6b,0x3e,0x13, - 0x7a,0xc7,0x64,0xe5,0x5e,0xd2,0x2b,0xe8,0x96,0x28,0xb6,0x62,0x9e,0xe8,0x8e,0x34, - 0x46,0x92,0x9a,0xdf,0xe0,0xac,0x14,0xca,0x53,0x04,0x08,0xb6,0x94,0x12,0x2a,0x79, - 0x86,0xb8,0x86,0x9d,0x36,0x0e,0x9c,0xb1,0x13,0x0c,0xa2,0x09,0xab,0x2d,0x06,0x7d, - 0xb1,0xb1,0x89,0x4d,0x05,0xbb,0x5a,0xdf,0x3b,0xea,0x99,0xd1,0xfc,0x43,0x50,0x58, - 0x2e,0x80,0xa3,0xc9,0xaf,0xb1,0x46,0xe3,0x23,0xed,0x98,0xde,0xb8,0x0e,0x6e,0x24, - 0x9c,0x6d,0x6e,0x9e,0xb5,0x68,0x6e,0x20,0x74,0xaf,0x49,0xe9,0x9b,0xba,0x2f,0xb4, - 0xd6,0x94,0xd4,0xb7,0x7f,0x28,0xa8,0x17,0x16,0x09,0x63,0xcc,0x60,0x03,0x7a,0x3d, - 0x3f,0x18,0xb0,0x1e,0x9b,0x50,0x70,0xea,0xea,0xd8,0x28,0xf2,0xb9,0x26,0x72,0xac, - 0xb9,0xc6,0x94,0xd9,0x10,0xb3,0xaa,0x8e,0x00,0xf5,0x72,0xf0,0x57,0x93,0xad,0xb8, - 0x26,0x8c,0xb8,0x7a,0x91,0x2d,0x73,0x76,0x39,0x6a,0xad,0xaa,0x41,0xbe,0x1c,0x27, - 0xe7,0xaa,0x47,0x5a,0xd7,0x2b,0x57,0x45,0x2c,0xad,0x83,0xbd,0xcd,0xb6,0x1f,0xa3, - 0xa3,0xcb,0x6e,0x05,0x1d,0x86,0x51,0xbb,0x93,0x35,0x37,0x13,0x3e,0x61,0x67,0x10, - 0x34,0xe9,0x9a,0xc0,0x6e,0x01,0xdc,0x1a,0xae,0x4b,0xa5,0xbe,0x9c,0xe9,0xff,0x3a, - 0x6b,0x6d,0x4e,0x2f,0x60,0xb4,0x76,0x79,0xdd,0x2c,0xd9,0xb7,0x5c,0x22,0x6d,0x55, - 0x21,0xb9,0x1b,0x0d,0x6f,0xb4,0x39,0xdc,0x9b,0xcc,0x4e,0xa1,0x83,0xb9,0x3f,0xde, - 0xc0,0x47,0x97,0x2d,0xc3,0x61,0x22,0x9c,0xa7,0xd5,0xd7,0xe9,0xe4,0xa2,0xfc,0x1c, - 0x70,0xd0,0xe6,0x70,0xe5,0x33,0x96,0x40,0x54,0xa8,0xc2,0x8c,0xd8,0xec,0x61,0x4a, - 0xec,0x9c,0xf2,0xde,0x9d,0x86,0x46,0x1f,0xfb,0xb7,0xce,0xf6,0xf7,0x1c,0xc8,0x3e, - 0x8c,0xc2,0x1f,0x5e,0x73,0xeb,0xb2,0x25,0x8c,0xad,0xf1,0x9e,0xd9,0x2d,0x52,0x02, - 0x19,0x22,0xe0,0x27,0xdf,0x8e,0x3b,0x36,0x31,0xce,0xb8,0x86,0xc1,0x05,0x98,0xde, - 0xac,0x4c,0x20,0x19,0x8b,0x7a,0x60,0x9c,0xe3,0xf9,0x59,0xf3,0xf1,0xe3,0xbd,0x47, - 0x1d,0x79,0x7c,0xf2,0xdd,0xde,0xae,0x79,0xfc,0xee,0xfb,0xbd,0x9d,0xce,0x76,0x17, - 0x80,0x93,0xba,0xfb,0x2f,0x8f,0x58,0xfb,0x38,0xc1,0x4d,0x11,0x10,0x6a,0x6a,0xaa, - 0xde,0x69,0x3a,0x83,0x31,0x16,0x99,0xe6,0x09,0xed,0xa9,0x3e,0x75,0x25,0x68,0xff, - 0x2e,0x05,0xb9,0x37,0x31,0xf0,0x79,0x59,0xe8,0x6c,0x53,0xc2,0x09,0xa9,0xb5,0x8b, - 0x19,0xc7,0xf3,0xbb,0x28,0x39,0x45,0xe4,0x89,0x0e,0x6d,0xfd,0x77,0x1b,0x83,0x6f, - 0x77,0x49,0xbe,0x02,0x18,0xed,0x5b,0x3e,0xf2,0x4a,0x89,0x0f,0x54,0xfc,0x78,0x2f, - 0x66,0x99,0x14,0x2b,0x2e,0xc9,0x97,0xe6,0x05,0x65,0xa6,0x31,0x0b,0x69,0x2a,0x94, - 0xa9,0x44,0xb8,0x96,0xcc,0xb3,0x61,0x71,0xdd,0xe5,0xf6,0x69,0x0e,0x68,0x1d,0x2b, - 0x3b,0x48,0x68,0xd2,0x16,0x5b,0xa9,0xd9,0x7e,0x8c,0x66,0xa2,0xab,0x27,0x8d,0xd8, - 0x20,0x8e,0xc3,0xbd,0x3c,0xda,0xe6,0x62,0x36,0x14,0xc6,0x87,0x6e,0xd9,0x6c,0x2f, - 0x53,0x79,0x06,0x7b,0x7e,0xc0,0xd7,0x9b,0x85,0xac,0xcd,0x1a,0xd8,0x84,0xe0,0xfb, - 0x58,0x74,0x01,0x5e,0x57,0xaf,0x9f,0x94,0x2a,0x5a,0x97,0x3a,0x8b,0xcc,0x4d,0x6d, - 0xdf,0xc2,0x70,0x8c,0x68,0x62,0x54,0x9a,0x39,0x28,0x54,0xab,0x0a,0x16,0xe7,0x2d, - 0xda,0x71,0x15,0x35,0x69,0xcc,0x86,0x55,0x90,0x22,0x90,0xb3,0xc6,0x3a,0x55,0x01, - 0x4f,0x78,0x9f,0xdc,0xec,0xf1,0x4f,0x75,0x30,0x51,0x14,0x63,0x9c,0xc6,0x73,0xa9, - 0xf8,0x53,0x57,0x12,0xd5,0x1e,0x70,0x47,0x52,0xd4,0xb1,0xef,0xe5,0xce,0xfd,0x42, - 0x1d,0xd5,0x71,0x6f,0x85,0x32,0xee,0x3f,0xc0,0x81,0xed,0x8e,0x11,0x0e,0xfa,0x74, - 0x0f,0x86,0x67,0x7f,0x17,0x36,0xb6,0x37,0x90,0xd7,0x5e,0x88,0xa5,0x9c,0x7a,0xb5, - 0x8a,0x68,0xd6,0xfb,0x5d,0x52,0x03,0x74,0x64,0xf9,0x66,0xcc,0xce,0xec,0x67,0x93, - 0x80,0xd0,0x3a,0x66,0x4f,0x82,0xd1,0x4d,0x1f,0x78,0x7c,0x87,0x57,0x67,0xcb,0x12, - 0x10,0x0e,0x62,0xdb,0x8d,0x1b,0x94,0x44,0x26,0x4c,0x7b,0xf1,0xe6,0x9f,0x28,0xb4, - 0xee,0xce,0x77,0x8f,0xba,0xf0,0xb9,0x04,0x80,0x72,0x44,0x2a,0x91,0x67,0xa7,0xd0, - 0xed,0x85,0x65,0xee,0x01,0xc0,0x46,0xce,0x8c,0x1b,0x52,0x2e,0xb0,0x4a,0xae,0xea, - 0x16,0x6f,0xec,0x6f,0x7f,0x1e,0x3e,0x9d,0xea,0x10,0x0c,0x37,0x96,0x76,0x4a,0xdc, - 0xc1,0x58,0xa3,0x7d,0x92,0xf6,0xb9,0xe8,0x0c,0x03,0x9f,0x2e,0xa9,0x4d,0x31,0x9c, - 0xeb,0x76,0x49,0x77,0x8e,0x98,0xff,0xd1,0x86,0xbf,0x7f,0x25,0x30,0xd0,0x8c,0x9d, - 0x99,0x90,0x1f,0x6a,0xee,0xd7,0xb8,0x87,0x32,0x17,0x33,0x58,0xe0,0x42,0x93,0xdd, - 0xa8,0x89,0xe0,0xcb,0x7e,0x5e,0x27,0xfe,0x68,0x58,0x57,0x8e,0x56,0x52,0x2b,0xcb, - 0xe0,0xd1,0x82,0xd0,0x9c,0xae,0x18,0x73,0xc6,0xba,0x5a,0x9a,0xe6,0xcf,0xe6,0x28, - 0x8e,0x9e,0xdd,0x79,0x08,0xe4,0xad,0x71,0x75,0x2f,0x4d,0xb3,0xd2,0x89,0x16,0x95, - 0x49,0xf8,0xe4,0x88,0x4c,0xbd,0xf5,0xdf,0xed,0x71,0xcb,0x66,0x51,0x5f,0xf8,0x9e, - 0xdb,0x71,0x3e,0xb8,0x90,0x80,0xe8,0x78,0xaa,0x3c,0x84,0x91,0x27,0xca,0x13,0xb2, - 0x7c,0x29,0x3b,0x3a,0x1b,0xb8,0xf0,0x75,0x8e,0x7f,0x54,0x32,0x47,0x79,0x58,0x30, - 0xd0,0xeb,0x04,0xa5,0x9b,0x13,0x0d,0xea,0xdb,0xe0,0x56,0xf4,0x3d,0x70,0x7c,0xfa, - 0x2b,0xc4,0x9d,0xee,0xf5,0x6d,0xed,0xb4,0x85,0xb8,0x93,0xdc,0xbb,0x56,0x0a,0xfd, - 0xa5,0x75,0xb2,0xf9,0x50,0xa3,0xa0,0xfb,0x7f,0xfd,0x89,0x10,0x56,0x90,0xe0,0x3c, - 0xe8,0xce,0xdd,0x8d,0xb7,0x25,0x4a,0x05,0x5c,0x2d,0x9d,0xec,0x09,0x8d,0x84,0xeb, - 0xd9,0x58,0x39,0x94,0x02,0x3c,0x99,0x62,0x48,0x9d,0xe3,0x59,0x4d,0x43,0x52,0xc0, - 0x97,0x3b,0x59,0x6e,0x08,0x33,0xb3,0xa3,0xfa,0xe9,0xb6,0xe4,0x99,0x0f,0x32,0x7e, - 0xaa,0x40,0xe6,0xbb,0x3b,0xdf,0x3d,0xf9,0x9e,0x0e,0xc1,0xe5,0x2b,0xdc,0xa4,0xeb, - 0x33,0x1c,0xa5,0xef,0x6e,0x6e,0x3a,0x47,0x31,0x8a,0x81,0x86,0x88,0x3e,0x06,0xce, - 0xde,0x02,0xeb,0xe4,0xfa,0xdb,0x3a,0x90,0x4a,0x4e,0xcf,0x03,0x77,0xa1,0x4a,0x1c, - 0x7d,0xf8,0xd2,0x7a,0x9b,0xc9,0xcc,0xee,0x57,0x9c,0xdb,0xdf,0x9e,0x97,0xb2,0xfc, - 0x68,0xe3,0x66,0xde,0x89,0x7f,0x3b,0x78,0xbe,0xb5,0xdf,0x1b,0xf7,0xfa,0xbd,0x28, - 0x81,0x29,0xd2,0x88,0x1a,0x9a,0xd5,0x83,0xd9,0x59,0x27,0xfe,0xf3,0x76,0xbb,0xf5, - 0x78,0xe7,0x71,0x8c,0x23,0xf5,0xf8,0xc9,0x4e,0x8b,0x9e,0x4a,0x4a,0xfe,0x2e,0xc6, - 0xc9,0x7a,0xfc,0x18,0x21,0x1e,0x81,0xe3,0xf9,0x05,0xe9,0x20,0x48,0x52,0xeb,0x99, - 0x4c,0x8f,0x5b,0xdf,0xb7,0xdb,0x92,0x69,0xe7,0x71,0x5b,0xf2,0x6c,0xb7,0x57,0x65, - 0x8a,0x92,0xd7,0x3d,0x32,0xaa,0xbe,0xd2,0x22,0x9f,0xb4,0x1e,0x7f,0xb7,0xaa,0xc8, - 0xef,0x6b,0x72,0xff,0x4a,0xf3,0x70,0x55,0x70,0x5b,0xb3,0x6e,0x83,0xec,0x12,0xa9, - 0xab,0xca,0xed,0x44,0x07,0xcf,0xb3,0xe8,0xf7,0xe7,0x92,0x77,0x67,0xb7,0xb5,0xbd, - 0x5c,0xd3,0xef,0xeb,0x8b,0x45,0xe6,0xff,0x7a,0xf5,0xe3,0xdd,0x39,0x6d,0xb1,0x3f, - 0xcc,0x7a,0xff,0x1c,0x0c,0xbf,0xa4,0xac,0x17,0xbf,0x6d,0xfd,0xf6,0x8b,0xcf,0x9c, - 0xef,0x9f,0xfc,0xb9,0xf5,0x64,0xfb,0xfb,0x7b,0xe6,0xfc,0xb1,0x98,0xc2,0xd3,0x33, - 0x46,0x95,0xe6,0x46,0x6b,0x86,0x0d,0xb3,0x1d,0x50,0xba,0xff,0xcf,0x82,0xe4,0x8b, - 0x77,0xc5,0xf4,0xe2,0x84,0x26,0x93,0x65,0x02,0x1e,0xed,0xee,0xac,0xef,0x10,0x20, - 0x20,0x7a,0xb4,0xbb,0xfb,0xeb,0xcf,0xff,0x8c,0x92,0x57,0x13,0x52,0x3a,0xbf,0x83, - 0xed,0x98,0x60,0xa0,0xf4,0xd6,0x13,0x94,0xbd,0x96,0x08,0x8b,0x41,0xcb,0x0f,0x72, - 0xaf,0x67,0xc0,0xeb,0x02,0xb7,0x1b,0x86,0xb4,0xd1,0x2d,0x43,0xbe,0xd5,0x93,0xad, - 0xd9,0xae,0xa2,0xff,0x55,0xf4,0x90,0xcf,0x74,0xa8,0xef,0x5a,0xbb,0xdf,0xad,0x65, - 0x58,0x90,0xcd,0x52,0x1b,0xe4,0x5f,0x57,0x2c,0xee,0x8b,0x5f,0x7c,0xec,0x0d,0x51, - 0x63,0xad,0x65,0x4d,0x3e,0xed,0xc9,0x4f,0x96,0xf2,0x7d,0xff,0xe4,0xfb,0xbb,0xab, - 0x69,0xf3,0x1d,0x90,0x49,0xd8,0x3f,0x85,0x3d,0x5f,0xd2,0xab,0xfe,0x3a,0x28,0xe6, - 0xa4,0x97,0x0f,0xaa,0xb8,0xd3,0x6e,0x81,0x33,0xeb,0x7b,0xbf,0xe6,0x0d,0xfa,0x64, - 0x90,0xbf,0x96,0xc5,0x1b,0xc7,0xce,0x49,0xba,0xef,0x37,0xf1,0xc6,0xba,0x09,0x5f, - 0xe3,0x23,0xdc,0x15,0xec,0xc4,0xb4,0x09,0x5b,0x1e,0xb1,0x98,0x1b,0xd3,0x0a,0x37, - 0x1b,0x9c,0xe2,0x03,0x74,0x6c,0x9d,0x48,0xaa,0x90,0xe7,0xf8,0x05,0x31,0x11,0x68, - 0xa2,0x77,0xfc,0xb4,0xda,0x31,0x0b,0x5b,0x3d,0x8a,0x16,0x71,0xe2,0x6f,0x70,0x8c, - 0xf6,0xb7,0xe7,0x18,0x2f,0x91,0xc2,0xf7,0xc4,0x79,0x0d,0xdd,0x51,0x3d,0x52,0x6f, - 0x54,0x66,0x65,0xba,0x3e,0x1a,0x1c,0xc3,0x73,0x8a,0x79,0xfd,0x8c,0xd7,0xa0,0x0c, - 0xdf,0x2b,0x70,0xc8,0x94,0x1f,0xb1,0x1d,0x08,0x78,0x12,0xd1,0xf8,0xb1,0x1b,0x82, - 0x1f,0x7e,0x57,0x16,0xd9,0xb4,0x83,0x9f,0x94,0x5b,0x36,0x6d,0xff,0xdd,0x12,0xe3, - 0xae,0xfe,0xc9,0xa6,0x4f,0x3f,0x0d,0xd8,0xa3,0x9e,0x2e,0xf9,0xae,0x3b,0xcd,0x8c, - 0xa2,0xb3,0xfa,0xce,0x38,0xb1,0x0b,0x72,0xbc,0x75,0x84,0xee,0x2e,0x48,0x0e,0x2f, - 0x86,0x95,0x5d,0xf3,0xac,0xf8,0x48,0xdf,0x36,0xcf,0x8b,0xe1,0x70,0x30,0xed,0x5a, - 0xcf,0x17,0x82,0x80,0xef,0x38,0xb3,0xbf,0xb3,0xfb,0xf8,0xd9,0xdc,0x58,0xe9,0x68, - 0x13,0x44,0xa6,0xa9,0x60,0x1b,0x58,0xa7,0x1a,0xa1,0x2f,0x8f,0x81,0xeb,0xc1,0x63, - 0x4e,0x3b,0x39,0xe2,0x4d,0xbf,0x57,0x9e,0x77,0xe9,0xd8,0xc9,0x65,0xb6,0xe7,0xd8, - 0x43,0x56,0xd9,0x5a,0x94,0xe2,0xa6,0xf3,0xd9,0x2f,0xf4,0xb7,0x0a,0x62,0xab,0xf6, - 0xbf,0x2e,0x02,0x62,0x69,0xe8,0x24,0x01,0x75,0x61,0x7a,0xc9,0x1f,0x68,0x5a,0x06, - 0x6e,0xc5,0xe5,0x4b,0x75,0x7b,0xd6,0x84,0xba,0xdc,0xdc,0xe4,0x5f,0x75,0x89,0xca, - 0x71,0x69,0x37,0xaa,0x96,0x6a,0x12,0x01,0xde,0xbe,0x29,0xde,0x17,0x8a,0x86,0x9f, - 0x3b,0x11,0x1d,0xb5,0xc9,0xb6,0xf2,0x94,0x0d,0x0f,0xd3,0xba,0x1e,0x24,0x9f,0x4f, - 0xae,0xd2,0xb0,0x1b,0xc9,0x87,0xf2,0x2c,0x0d,0xfb,0x92,0x7c,0x38,0x9d,0xf1,0xfe, - 0x96,0x4a,0xd8,0x68,0x08,0xe1,0x4f,0xe9,0x6c,0x32,0xa2,0xa3,0x9c,0xa2,0x1c,0x3f, - 0x9c,0x4b,0x1b,0x47,0x3d,0xd3,0x13,0x7a,0x43,0xd3,0xad,0xa1,0x46,0x62,0xb3,0xc6, - 0xf5,0x1e,0xe2,0x97,0xfb,0x2a,0xf5,0x2e,0xe3,0x51,0xa6,0xc6,0x85,0xbe,0xf1,0x46, - 0x5b,0x31,0x34,0xe3,0xfe,0xc2,0xdc,0xbe,0x34,0xde,0xfd,0xf0,0x2b,0x0d,0x97,0xde, - 0xf0,0x57,0xbf,0x77,0x1b,0x83,0x52,0x89,0x79,0xe0,0xf5,0xca,0xa3,0xc6,0xe5,0x71, - 0x57,0x72,0xf8,0xbd,0xef,0xf6,0xde,0xe6,0x8c,0x7a,0xdf,0x9c,0xb1,0xb8,0x73,0xca, - 0xbf,0x64,0xe5,0x38,0xb5,0x06,0x8e,0x1b,0xeb,0x2c,0x1c,0xb9,0xb4,0x25,0x97,0xba, - 0xd2,0xaf,0xcb,0x2f,0xcf,0x58,0xe3,0x89,0x57,0x20,0x97,0xcf,0x68,0x7e,0xb7,0x87, - 0x2f,0x64,0x77,0x6f,0x0d,0x02,0xc3,0x43,0x19,0xbb,0x5f,0x5b,0x79,0x60,0x53,0x1d, - 0xf9,0xd8,0xd3,0x1d,0xaf,0x38,0x1b,0x98,0x7b,0xb5,0xf5,0xa3,0xa0,0xfe,0x5a,0x03, - 0x48,0x45,0x73,0x2f,0x1b,0x48,0xf5,0x3e,0xfa,0xf5,0x76,0x8b,0x0f,0x14,0x95,0xf2, - 0xca,0x9b,0xbb,0xbb,0x75,0xec,0xae,0xd5,0xde,0x80,0x37,0x3a,0x5b,0x05,0x21,0x2c, - 0x40,0x4b,0x18,0x23,0xa3,0xfb,0xd5,0x84,0x9b,0xb2,0xd2,0x7a,0x0a,0xc3,0x31,0xfe, - 0x97,0x09,0x94,0x79,0x5c,0x61,0x6b,0xb0,0x41,0x51,0x96,0x10,0xfe,0x28,0x1d,0x93, - 0x22,0x9c,0xbc,0x8f,0x66,0x3b,0xd9,0x6e,0xf6,0xa8,0xc6,0xe2,0x10,0x8b,0x84,0xcc, - 0x88,0x71,0x63,0xb0,0xda,0xe4,0x70,0x40,0x7d,0x7a,0xac,0x4a,0xa7,0xf9,0xb4,0x06, - 0x56,0x6d,0x20,0x07,0x4f,0x01,0xa8,0xc6,0xe1,0x4c,0x04,0x15,0x51,0x13,0xa8,0x43, - 0x34,0xf7,0xb4,0x49,0xa4,0xb2,0x77,0xed,0x5d,0x2f,0x37,0x46,0xac,0x75,0x30,0x33, - 0xca,0x2b,0x3b,0x69,0x89,0xf0,0xad,0x03,0xcc,0xc6,0xfb,0x86,0x33,0x05,0x44,0x8a, - 0x94,0xa1,0x4e,0xf5,0x27,0xdf,0xde,0xe6,0x25,0x1f,0x8f,0xba,0x93,0x2f,0xdd,0x3e, - 0xc2,0xc2,0x5d,0xab,0xf0,0x28,0x65,0xe7,0x5c,0xe4,0x09,0x77,0x50,0x5c,0x61,0x1b, - 0x69,0x0c,0x13,0xca,0xd3,0xd9,0x84,0x8e,0x8d,0x27,0xb0,0x0f,0x08,0x9b,0x85,0x7c, - 0x32,0x71,0x6f,0x4b,0x56,0xcc,0xbb,0xdc,0x70,0xbb,0x61,0xae,0x03,0x05,0x4b,0x6c, - 0x93,0xce,0xf0,0xae,0xfe,0x87,0xb4,0x33,0xfb,0x38,0x65,0xc4,0xaf,0x30,0x3e,0x0f, - 0x93,0xe7,0xd7,0xff,0x76,0x73,0x72,0x77,0xfe,0x73,0xa7,0x6d,0x99,0x7b,0xef,0x58, - 0xc0,0x52,0x67,0x91,0x26,0xd2,0x5c,0xc9,0xc1,0xff,0xb2,0x06,0x89,0xa7,0x7d,0x98, - 0x4b,0xf0,0xa7,0xfa,0x3a,0xda,0x5b,0x0f,0x42,0x33,0xb1,0x87,0xb5,0xd6,0x77,0x53, - 0x19,0x5a,0x9c,0x4b,0x9b,0xba,0x36,0x62,0xbb,0x9d,0x47,0x35,0xdd,0x02,0x9f,0x92, - 0xda,0x41,0x21,0x08,0x1e,0xd5,0x75,0x8a,0xba,0x4c,0x68,0xf5,0x7a,0xbf,0x1b,0x35, - 0x95,0x15,0x5f,0xb2,0xea,0x1e,0x67,0xaf,0xf3,0xbe,0xb5,0x60,0x1f,0x39,0xef,0x5b, - 0xa9,0x78,0xd1,0x20,0x88,0xb4,0x3e,0x9c,0xe4,0xbd,0x03,0x5e,0xae,0xc1,0xee,0x3b, - 0x4d,0xaf,0xe1,0xbb,0xef,0x37,0xfd,0x5e,0x4d,0x70,0x8f,0xdb,0x07,0x1b,0xf7,0xba, - 0x7e,0xb0,0x71,0xe7,0xfd,0x03,0x00,0xd5,0xdf,0x40,0xa8,0xef,0x05,0x61,0x23,0x4e, - 0x27,0xd3,0x37,0x17,0x73,0xdf,0x96,0x16,0x3e,0x9f,0x7a,0xc3,0xad,0xe2,0x7a,0x80, - 0xd9,0x67,0x44,0x1b,0xf5,0x49,0x9f,0xb6,0xb2,0x6f,0x0e,0x0e,0xe3,0x95,0xb7,0xb1, - 0x37,0x37,0x67,0x2d,0x9c,0xca,0x81,0x3c,0x64,0x6c,0xd2,0x4b,0x60,0x20,0xcb,0x00, - 0xd4,0x64,0x0a,0x31,0xb9,0x0c,0x8f,0xe5,0x8d,0xc7,0xf1,0xfa,0x2b,0x12,0xea,0xd9, - 0x63,0x7f,0x72,0x31,0xec,0x43,0x1c,0x9d,0x15,0xd4,0xd4,0xf6,0xe2,0x5d,0x33,0x82, - 0x37,0x04,0xbe,0xcb,0x18,0xa7,0xa1,0xa1,0xff,0x19,0x05,0x06,0xa9,0x36,0x5e,0xc1, - 0xfd,0xa5,0x3d,0xa7,0x57,0x75,0x12,0x6d,0x75,0xd3,0xd4,0x0e,0x12,0xdf,0xbd,0xc0, - 0xd9,0x60,0x3c,0x28,0x61,0xae,0x67,0xe7,0x43,0xbd,0x6e,0x74,0x70,0x31,0x05,0x0b, - 0xab,0x05,0xbe,0x3a,0x31,0xc8,0x41,0x47,0xac,0x60,0xd8,0x91,0xe5,0x5e,0x8c,0x07, - 0xfb,0xc9,0x86,0x74,0x01,0x72,0x2d,0x8b,0x37,0x0e,0xe2,0x4e,0xcc,0xfa,0xd8,0x7f, - 0x30,0xd5,0x62,0x0e,0xe0,0x7a,0xd5,0xd0,0x19,0x55,0xa8,0x44,0x7d,0x4a,0xe6,0x9b, - 0xa7,0x29,0x9d,0x1a,0xd0,0x7a,0x79,0xaa,0xf0,0xcf,0x3d,0xc0,0x32,0xea,0x4f,0x88, - 0x93,0x46,0xcc,0xa7,0x6c,0xb5,0x51,0xa6,0xdd,0xf5,0x46,0xdd,0x44,0x50,0xd8,0x33, - 0xf2,0xe6,0x9c,0xf5,0xab,0xb5,0xd0,0xaa,0x03,0xf0,0x31,0xe1,0xa8,0xd1,0x80,0x12, - 0xd3,0xbb,0x1a,0x1b,0x43,0x38,0x5b,0x6e,0xc4,0x6c,0x4a,0xa8,0xfb,0x9b,0xcb,0x14, - 0x09,0x6a,0x0f,0x88,0x86,0x00,0x2a,0x36,0x59,0xd5,0x03,0xae,0x38,0xeb,0x7b,0x87, - 0x26,0xd5,0xea,0x1b,0xa4,0xc6,0x09,0xaa,0xc5,0x3b,0x15,0xeb,0x30,0x42,0x2f,0x17, - 0xdf,0x11,0x43,0x5a,0xc2,0x1d,0xf7,0xdd,0x78,0xce,0x5d,0x4b,0x89,0xe5,0x72,0x66, - 0x51,0xee,0x25,0x7d,0x37,0xf0,0xf0,0x5e,0xfc,0x2d,0xff,0xa3,0x5d,0x52,0x02,0xc1, - 0x49,0xa9,0x27,0x62,0x6c,0x6f,0xf3,0xe0,0x93,0xea,0x06,0x6c,0x5a,0x93,0x89,0x05, - 0x98,0x40,0x1d,0xce,0x04,0x91,0x43,0xfa,0xe6,0xeb,0x37,0xbf,0x47,0x5b,0x11,0x93, - 0xa6,0x3a,0xed,0x2c,0xde,0x97,0x27,0x9c,0x47,0xa2,0xff,0x05,0x3a,0xef,0xb4,0x01, - 0x7a,0xfd,0x44,0x50,0x11,0x19,0x0f,0x1a,0x70,0x96,0x73,0x31,0x98,0x09,0x31,0x5a, - 0x7c,0xbf,0x46,0xdc,0x11,0x2a,0x5e,0x63,0x2c,0x8a,0xcf,0xc7,0x5a,0x20,0x73,0xe4, - 0x44,0x9e,0xa4,0x54,0x07,0xb1,0xa4,0x92,0xc8,0x66,0x53,0x91,0x39,0xef,0xd4,0x25, - 0xac,0x8b,0xd8,0x31,0x3b,0x4d,0x53,0x42,0x34,0xbd,0xd5,0x06,0x7b,0x27,0x1b,0x1c, - 0x57,0x3e,0xd9,0x8b,0xb1,0x84,0x4d,0x8b,0x7e,0xe4,0xf1,0x3c,0x99,0x4d,0xf7,0x66, - 0xd3,0x16,0x4c,0xb1,0x9b,0x91,0x1c,0xeb,0xce,0x4e,0xad,0xb4,0xa0,0xe7,0xb2,0xc4, - 0x69,0xe6,0x9e,0x50,0x2e,0x46,0xb6,0x0e,0x1e,0xcb,0xab,0xf9,0x35,0x78,0xc3,0xd6, - 0xdb,0x53,0x38,0x6a,0x8f,0x33,0xa4,0x11,0x76,0x18,0x5a,0x0b,0x50,0xcd,0xf4,0x81, - 0xeb,0xee,0xe1,0x70,0x5f,0x2c,0x82,0x29,0x24,0x65,0xcc,0xc1,0x50,0x8e,0xb3,0x00, - 0x6a,0x2f,0xe6,0x68,0xf5,0xce,0x40,0xd0,0x52,0xad,0x5c,0xee,0x2c,0xe0,0xe9,0x0d, - 0x38,0x26,0x46,0xe4,0x71,0x56,0xcb,0x23,0xeb,0x60,0xce,0x62,0xb1,0x19,0xdf,0x9c, - 0x88,0xad,0xae,0x76,0x84,0x23,0x5f,0x7c,0xb6,0x03,0x35,0x4c,0xf7,0x28,0x14,0x5c, - 0x2f,0x11,0x21,0x21,0x4b,0x14,0x07,0x5c,0x68,0x06,0x18,0x34,0x35,0xc8,0x4f,0xe2, - 0xff,0x6f,0xd3,0xa9,0xba,0xc5,0x4f,0xab,0xb8,0xf1,0xb9,0xa2,0xa2,0xe7,0x62,0x16, - 0xe0,0xb2,0xc9,0x1a,0x3d,0x3e,0x95,0x1a,0x21,0x31,0x22,0x59,0x26,0xce,0x28,0x4d, - 0xcd,0x86,0xb7,0x77,0xf6,0xf0,0x56,0x92,0x12,0xbe,0x20,0x59,0x7b,0x7b,0x87,0x26, - 0x2d,0x5c,0x18,0xe9,0x20,0x9f,0x14,0x58,0x8c,0xaa,0xf2,0x8a,0x11,0x9d,0x68,0x87, - 0xe5,0x69,0xb2,0x94,0x57,0x8c,0xdc,0xe2,0xe4,0x4b,0x46,0x89,0xf7,0x72,0xa3,0x3b, - 0x45,0x49,0xd6,0x77,0xb0,0x8c,0x87,0xb0,0xbc,0xe0,0xa3,0xf8,0xc5,0xc1,0xc2,0xa0, - 0xbe,0xc9,0x84,0x00,0x36,0xfa,0x26,0xd0,0x6c,0xea,0xc4,0xac,0x61,0xcf,0x61,0x5e, - 0x2c,0x92,0xfe,0x92,0x4d,0x8b,0x5d,0x67,0x1f,0x6c,0xfd,0x3d,0xc1,0xb4,0x46,0x22, - 0x97,0xcc,0x2e,0xef,0x75,0x7a,0xf9,0x66,0xa1,0x5d,0xf3,0x9b,0x05,0x7a,0xc8,0x37, - 0x0b,0x1e,0x41,0xdf,0x2c,0xe6,0xd7,0xdf,0x2c,0x40,0xe3,0x7b,0xd3,0x25,0xcc,0x0b, - 0x5a,0x57,0xd3,0xc1,0x18,0x79,0x16,0xc6,0xf1,0xf3,0x92,0xc0,0x78,0xab,0x2e,0xc2, - 0x84,0xab,0xa0,0xdb,0x30,0xd6,0xf1,0xa9,0x54,0xc6,0x19,0x7f,0xf1,0x3c,0x61,0xc4, - 0x8e,0x94,0xcf,0xcb,0x9c,0xa7,0x8a,0xc3,0x2a,0x66,0x46,0x7f,0xa8,0xd3,0xe2,0xfd, - 0x30,0xa4,0x2d,0xdd,0x21,0xe9,0x6a,0x18,0xc4,0xb0,0x7f,0x50,0x7f,0xde,0x6f,0xca, - 0x84,0x31,0x7e,0x70,0xaf,0xe8,0xed,0xb0,0xa0,0x1e,0x0c,0x12,0xa3,0x5e,0xe4,0xae, - 0x7f,0x11,0x8d,0x3c,0xd2,0x57,0x6e,0xa7,0xf6,0x86,0x92,0x29,0xd8,0xce,0x70,0x9b, - 0x9b,0xe1,0x96,0x45,0x0d,0x06,0xee,0x2a,0x90,0x98,0x34,0x99,0xd0,0x4f,0x4f,0x2e, - 0x08,0x1b,0x65,0x9f,0x29,0x73,0x27,0x8d,0x9a,0x2c,0x76,0x95,0x11,0x09,0x26,0x53, - 0xf1,0x9f,0x40,0xdd,0xa7,0xf9,0xdb,0x81,0x7a,0xd2,0x2d,0x2d,0x55,0xab,0x9d,0x34, - 0x61,0xa7,0xe0,0xfa,0x66,0x5a,0x43,0x96,0x00,0x34,0xe2,0x8a,0x02,0x8b,0x3f,0x9c, - 0xca,0x94,0x03,0xe6,0x8d,0xc2,0x6f,0x3c,0x6f,0xfe,0xaf,0x5e,0xf3,0x9f,0xc7,0x37, - 0xbb,0xb7,0xea,0x9a,0x4f,0x5b,0xe7,0x7e,0xd3,0x4a,0x8c,0x9d,0xc1,0x9d,0x1c,0x63, - 0x13,0x45,0x62,0xd8,0x6e,0x93,0x76,0x2b,0x78,0xc4,0xdc,0x65,0xd4,0xa5,0xd1,0x29, - 0x16,0xc6,0x84,0xef,0xe5,0xa0,0x02,0x2e,0xf9,0x2b,0x11,0xab,0xe4,0x78,0xa2,0x7a, - 0x7c,0xf1,0x65,0x97,0x9d,0xb0,0x73,0xc4,0xfc,0xc4,0x05,0xee,0x9e,0x84,0x5e,0xea, - 0xbc,0xcf,0xf9,0x7a,0x57,0x5c,0xec,0x11,0x0a,0x97,0x4f,0xcc,0x57,0x9e,0xc5,0xe2, - 0x43,0xe2,0x14,0x12,0xd1,0xeb,0x90,0xd2,0xf5,0xbc,0x5e,0xdd,0x88,0x80,0x20,0x7a, - 0x89,0xcc,0x6e,0x09,0x8c,0xd7,0xa9,0x1b,0x22,0x20,0xf0,0x42,0xe4,0x53,0x24,0xb5, - 0x10,0x95,0x98,0xd9,0x47,0x68,0x4e,0xc7,0x87,0x8b,0x75,0xd9,0x41,0x26,0x8b,0xc5, - 0x74,0xae,0x9e,0x5b,0xd4,0x71,0x05,0xfc,0x1d,0x93,0xf4,0x06,0xf7,0xd4,0xf4,0x2e, - 0x2e,0xad,0x00,0xe0,0xb9,0xb5,0x62,0xd7,0x3b,0x95,0x73,0x2b,0xf2,0x3c,0x72,0x26, - 0x11,0x06,0x14,0x0d,0x2f,0x9d,0x70,0x88,0x05,0xdf,0x1d,0xa4,0x3d,0x29,0x0a,0xd1, - 0x43,0x96,0xd1,0xfb,0x58,0xd4,0x82,0xe2,0x20,0xe3,0xc1,0xfb,0x98,0x7d,0x7e,0x58, - 0xff,0x2f,0xdc,0xf5,0x89,0x93,0xbb,0xed,0xa8,0x14,0xd7,0x18,0xc0,0x0e,0x00,0xb8, - 0x8d,0x29,0x8d,0x77,0xc3,0x8b,0x29,0x87,0x71,0xcc,0x28,0x97,0x75,0x25,0x82,0xc2, - 0xcc,0x47,0x30,0x98,0x11,0x4b,0x6c,0x10,0xd4,0xc0,0xfa,0xb0,0x13,0x6f,0x3c,0xd6, - 0x75,0x88,0xe3,0xb4,0x03,0xe7,0x14,0x4d,0xe3,0x9f,0xab,0xda,0x0a,0x61,0x66,0xf2, - 0x7c,0xf4,0xa8,0x6a,0x66,0x4d,0x4f,0x5b,0xb5,0xad,0x52,0x07,0x8a,0x14,0x9a,0x01, - 0xde,0xbe,0x24,0xfc,0x83,0xdc,0x7b,0x89,0xe8,0xa9,0x9c,0xe3,0xaa,0xcf,0x64,0x1c, - 0x54,0x45,0x9c,0xdc,0x88,0x2f,0xb0,0x56,0xec,0x12,0x60,0xdd,0x50,0x85,0x1e,0xa7, - 0xc2,0x75,0xe4,0xda,0xae,0x23,0x8e,0xbb,0xa9,0x6b,0xf1,0xa2,0xa4,0x77,0x8b,0x19, - 0x95,0x99,0xea,0xd7,0x8d,0x50,0xc0,0xa9,0xa1,0x61,0x88,0x3f,0xba,0x66,0x1f,0x4e, - 0xec,0x1f,0xd0,0xa0,0x57,0xd3,0x3b,0xbe,0xef,0x14,0xb8,0x0a,0xb4,0x4e,0x85,0xc2, - 0x7e,0x1a,0xf8,0x17,0x7a,0x28,0xf2,0xb6,0x9d,0xe6,0xe1,0x87,0x3b,0x7e,0xf8,0xef, - 0xf5,0x32,0xa4,0xdc,0xaf,0x73,0x31,0x64,0x3b,0x10,0x77,0x37,0x83,0xaf,0xc6,0xeb, - 0x4b,0x54,0x4e,0x26,0xe3,0x75,0xae,0x5f,0x54,0xfa,0x13,0xb9,0xc3,0x08,0x85,0x66, - 0x9b,0x91,0xaf,0x9b,0x67,0x3c,0xef,0x4c,0x89,0x9f,0x51,0xbd,0x08,0x95,0xe7,0xb0, - 0xea,0x8a,0x74,0x3b,0x63,0xd0,0x80,0x57,0xbe,0x5f,0x9e,0x88,0x24,0x69,0x75,0xd8, - 0x43,0x9a,0x5e,0xb6,0x27,0x68,0x45,0x5e,0x2b,0x94,0x75,0x8d,0x40,0x6d,0xe0,0x05, - 0xe0,0x8e,0x30,0x39,0xdf,0xb1,0x45,0x8a,0x5b,0x91,0xba,0x0f,0xaa,0x2b,0x5f,0x67, - 0x1d,0x53,0x74,0x7f,0xd0,0xa7,0x07,0x34,0x1e,0x7b,0x93,0xef,0xc1,0x91,0x92,0x2e, - 0xda,0xda,0x1a,0x81,0x57,0xa1,0x7a,0x3a,0x5b,0x11,0xfa,0x0c,0xdc,0xe8,0x4b,0xab, - 0x8b,0x57,0x21,0x34,0xfb,0x43,0xaa,0x2f,0x11,0x40,0xdb,0xf1,0x87,0xc8,0x7e,0x36, - 0xe0,0x49,0xa9,0xac,0x69,0xeb,0x3b,0x3d,0xfc,0x60,0xab,0x55,0xdb,0xc2,0xfe,0x24, - 0x12,0xa8,0x54,0xc2,0x0c,0x3a,0x98,0x58,0x13,0x24,0x1f,0x3f,0x0c,0xc6,0x1f,0x46, - 0xe5,0x9e,0x5e,0x2e,0x4b,0xb6,0x33,0x7e,0x3c,0x2d,0x06,0xc3,0xc4,0x87,0x91,0x0b, - 0xcc,0x69,0x67,0xb7,0xed,0x5e,0x64,0x32,0x4e,0xcd,0x54,0x9e,0x32,0x13,0x7a,0x12, - 0x4b,0x32,0x4f,0x45,0xc2,0x6f,0x6a,0xab,0xbd,0x58,0xcf,0xe2,0x3d,0xef,0xac,0x5c, - 0x08,0xb4,0x58,0x4b,0x8a,0xab,0xfa,0xc1,0x1b,0xf8,0x85,0x72,0xc7,0xea,0x15,0x66, - 0x3a,0x9a,0xcf,0xc0,0x6e,0x3b,0x8b,0x23,0x7a,0x13,0xd6,0x18,0xa8,0x09,0x68,0xaa, - 0x63,0x97,0x81,0xab,0x7c,0x1c,0xad,0x73,0x59,0xa1,0x95,0x12,0xa3,0x57,0x4c,0x45, - 0x15,0x68,0xa8,0xcc,0x72,0xc8,0x26,0xdf,0xc9,0x59,0x45,0x4b,0x36,0x1f,0xcc,0x87, - 0x45,0x46,0xc3,0xd5,0x2c,0x44,0x66,0x42,0x14,0x1e,0x34,0xf9,0x6b,0x30,0x2d,0x72, - 0xda,0x62,0x61,0x0a,0xd7,0xdb,0xee,0x6e,0x2e,0x2a,0x21,0xc8,0x43,0x29,0x22,0x94, - 0x0c,0xa6,0x24,0x0d,0xe7,0x0e,0x2c,0x7c,0x47,0x53,0xf1,0x74,0x33,0xe0,0x93,0x9f, - 0xdc,0x44,0x92,0xd9,0x72,0x62,0xda,0x44,0x6e,0xd2,0x05,0xe6,0xf1,0xf9,0x7c,0x3e, - 0xed,0x6c,0x6d,0xd1,0x3e,0x63,0xda,0x88,0xb7,0xe2,0xae,0x64,0xf6,0x8a,0x23,0x38, - 0x4d,0x3e,0x27,0x6d,0xa8,0xbc,0xa3,0xe4,0x95,0xd7,0xa7,0xcc,0xb9,0x6f,0x0d,0xae, - 0x38,0xf6,0x50,0xc5,0x7f,0x8a,0x15,0x55,0xdd,0xe5,0xa0,0x5b,0xcb,0x87,0xf5,0xca, - 0x4a,0xb9,0x14,0x62,0x98,0xbe,0x58,0xec,0xb6,0xbb,0x4e,0x46,0xbe,0xdb,0x1a,0x86, - 0x49,0x94,0x3c,0x73,0xcf,0x91,0x82,0xdb,0x33,0xc7,0xcd,0xe6,0x9d,0x38,0xc8,0x83, - 0xc4,0x18,0xc6,0xc8,0x12,0xed,0x2d,0x7f,0x4c,0xe3,0x4e,0x7b,0x02,0x61,0x38,0x2b, - 0xd0,0xfb,0xac,0x6f,0x84,0x8b,0x92,0x06,0xc1,0x29,0xad,0xec,0x05,0x02,0x11,0x34, - 0xd9,0x0c,0xb7,0x56,0x9b,0xcb,0x0b,0xdc,0xe4,0x53,0xe8,0xa0,0x61,0x9e,0x76,0xe1, - 0x9b,0x1a,0x50,0x2d,0x71,0x0c,0x9a,0xa4,0xb7,0xab,0x2f,0xde,0x0a,0x4d,0xed,0x1a, - 0x2c,0x1b,0x61,0xbd,0xbc,0xfd,0x95,0x56,0x01,0xb1,0xcf,0x7a,0x91,0xb4,0xd2,0x56, - 0xfc,0xec,0x1d,0x97,0xf8,0x74,0xab,0x47,0x6e,0x2c,0xe2,0xff,0x9e,0x5c,0xd0,0x89, - 0xb0,0xb9,0xef,0x15,0xcd,0x75,0x80,0x9a,0xbb,0xc0,0x19,0x4f,0x25,0x2a,0x6a,0xec, - 0xbf,0x7a,0x89,0x80,0x90,0xf9,0xce,0xa3,0x6e,0xf5,0x4e,0x01,0x19,0x7f,0x80,0x69, - 0xe5,0x51,0x2c,0x51,0x44,0x7e,0xa2,0x49,0xe5,0x0a,0xc1,0xa8,0xe8,0xb5,0xa4,0x4a, - 0x70,0x5c,0xc4,0x98,0x6f,0x9f,0xd1,0xd7,0x1f,0xf0,0xcb,0x8b,0xcf,0x39,0x3d,0x30, - 0xdc,0x60,0x7c,0x36,0x11,0xa0,0x53,0x5c,0xd3,0x81,0x86,0x84,0x7a,0x02,0xa6,0x7f, - 0x95,0x8c,0x38,0x3d,0x4a,0x7e,0x3b,0xdc,0x4f,0x05,0x90,0x3d,0x12,0x00,0xb0,0xc0, - 0xbc,0xa5,0x00,0x37,0x6c,0x7b,0xdf,0x34,0x3d,0xe7,0x56,0x40,0x65,0xbb,0xe0,0x22, - 0xb5,0xf7,0x9d,0x23,0xf9,0x28,0x80,0x23,0xea,0xf5,0xf0,0x03,0x11,0xff,0x5c,0xf4, - 0xa6,0x4c,0xe1,0xdb,0x83,0x77,0xcf,0x7f,0x8d,0xd8,0xd7,0x04,0x1c,0x39,0x0c,0x61, - 0xb7,0x5b,0xce,0xa3,0x13,0x14,0x26,0x79,0xaa,0xe8,0x5b,0x94,0xed,0x35,0x6f,0xdf, - 0xce,0x0b,0xe3,0x3c,0x8f,0x0d,0x4c,0x32,0xd9,0xc9,0xc1,0x27,0x00,0x63,0x24,0xbe, - 0xfa,0x19,0xcd,0x58,0x43,0x5d,0x7e,0x9c,0x91,0xdc,0x01,0x29,0x44,0xbe,0x61,0x7d, - 0xba,0x79,0xf2,0x88,0x2e,0xf7,0x5f,0xe3,0xda,0xc5,0xac,0x49,0x42,0x95,0xa9,0x12, - 0xed,0x02,0x4e,0x29,0xd3,0xac,0xe5,0x16,0xff,0xbc,0xfc,0x64,0x73,0x22,0xb2,0x8c, - 0xb8,0x1a,0x34,0x82,0xec,0xa8,0x2c,0x86,0x97,0x45,0x19,0xe4,0xa7,0x9f,0x69,0x81, - 0xcc,0xfb,0xe2,0x9f,0xc3,0x29,0x5a,0x3e,0x45,0x09,0xab,0xcb,0x98,0x6d,0x55,0x61, - 0xa2,0xb4,0x36,0x2d,0x41,0x43,0x8e,0x74,0x42,0x23,0x6d,0x8c,0x1e,0xcf,0xfa,0x0f, - 0xcb,0xe8,0xf9,0xfe,0xab,0x08,0x1f,0x06,0x25,0xfa,0x40,0xb9,0x5c,0x95,0xe8,0x66, - 0x30,0x9e,0x7f,0x6f,0x6a,0xd4,0xeb,0x23,0xf6,0x28,0xe3,0x00,0x97,0xc6,0x91,0x24, - 0x60,0x25,0x8a,0x12,0x18,0x1f,0xc3,0x3e,0xd7,0x05,0x6d,0x91,0x35,0xdf,0xe4,0x7c, - 0x32,0xad,0xc9,0x62,0x79,0x80,0x25,0x46,0x05,0x87,0xa2,0x37,0x97,0xfc,0x88,0x26, - 0x23,0x3b,0x70,0x04,0x98,0x99,0x7d,0xd6,0xed,0x78,0x6f,0xd6,0x1b,0x59,0xd7,0x71, - 0xa5,0xec,0xde,0xf8,0x40,0x94,0x8e,0x43,0x33,0x78,0x1f,0x9b,0x19,0x62,0x79,0x0c, - 0x46,0xea,0xe2,0x87,0x5c,0xdd,0x49,0x27,0xf4,0xa3,0xb5,0x01,0x27,0x8f,0xc7,0x62, - 0x66,0xb8,0xce,0x19,0x68,0x8c,0xce,0x0a,0x30,0x9c,0x7e,0xaa,0xef,0x51,0xc2,0xce, - 0x32,0x78,0xfb,0x91,0x45,0xc6,0xb3,0x46,0xea,0xe6,0x12,0xd4,0x28,0xee,0x6d,0x31, - 0x33,0x6f,0x4d,0xa8,0xd7,0x6b,0xcb,0xe0,0xd2,0x41,0x1a,0x7e,0x9d,0x52,0xd0,0x0d, - 0x33,0xf8,0x02,0xc9,0x22,0xf1,0xfe,0xb0,0x94,0xa9,0xd9,0x1f,0xf4,0x3e,0x52,0xce, - 0x17,0xd7,0x73,0xd8,0x44,0x6b,0x45,0x90,0x3a,0x9e,0x94,0xb4,0x2c,0x9b,0x72,0x86, - 0x13,0x40,0xfd,0x78,0x31,0x9a,0x1a,0x27,0x6e,0x5a,0x79,0xfa,0x50,0x6a,0x58,0x3b, - 0xc7,0x95,0x71,0x95,0x0b,0x6c,0x93,0x86,0xc6,0xaf,0x93,0xeb,0xa3,0xf1,0x2e,0x0f, - 0x46,0xd2,0xd6,0xa5,0x90,0x9b,0xdc,0x6e,0x3e,0x69,0x6c,0xfa,0x09,0x72,0x59,0x98, - 0x62,0xd6,0x2b,0x0b,0xd0,0xc5,0xa7,0x9b,0x40,0x55,0x43,0x9d,0x76,0xdb,0x71,0x09, - 0x69,0x7f,0x50,0x82,0x18,0xac,0x41,0x51,0x6f,0x3e,0xa7,0xf9,0x9c,0x80,0xe5,0x9b, - 0x0f,0x08,0xf1,0x90,0x1b,0xbb,0xd7,0xc7,0x18,0x35,0x30,0xe8,0xc3,0xfd,0xe2,0xfa, - 0xd6,0x03,0x2d,0x05,0xf4,0x77,0xd8,0xff,0xd7,0xc0,0x46,0x37,0xac,0x35,0xd2,0x3c, - 0x04,0xfc,0x71,0x5a,0x12,0x1c,0xda,0x16,0xca,0x6c,0x72,0x57,0xc1,0x94,0xff,0xe5, - 0xed,0x41,0x00,0x72,0x76,0x56,0xc1,0x20,0x54,0xb7,0x0f,0x05,0x08,0x1c,0x5b,0x86, - 0x93,0x22,0x77,0x47,0x5d,0x6a,0x68,0x2e,0x9b,0x8c,0x6a,0xf2,0x15,0x73,0x82,0xe0, - 0x5e,0x39,0xe5,0xd9,0x42,0xad,0x60,0x00,0x46,0xad,0x71,0x4d,0x53,0x34,0x7c,0x7f, - 0xf5,0xe6,0x5b,0x43,0x22,0x54,0xf3,0xd9,0x41,0x3a,0x66,0xae,0xf3,0x71,0x17,0x81, - 0x9e,0x0e,0x2f,0xfa,0x05,0x67,0x25,0xc9,0x71,0xc0,0xe5,0x0e,0x74,0x78,0x96,0x61, - 0x6e,0xd9,0x9e,0x60,0xfe,0xe2,0xd7,0x41,0x29,0xed,0x36,0x1c,0x5c,0xfa,0x28,0xc2, - 0x7c,0xd0,0x9f,0x9d,0x95,0x41,0x3e,0x6d,0xef,0x80,0xd4,0x62,0x2e,0xe7,0x04,0x32, - 0xa8,0x9d,0xa5,0x40,0x92,0x9b,0x92,0xce,0x1a,0x05,0x65,0xb9,0x97,0x43,0x5a,0xe7, - 0x05,0xfc,0xa6,0x9a,0x2c,0x66,0x7e,0xa8,0x87,0x96,0x86,0xfa,0x71,0x50,0xd6,0xc0, - 0x2b,0x3d,0xbe,0xf7,0x5e,0x4b,0xd1,0xb2,0xd3,0x59,0x97,0xac,0x30,0xa3,0xce,0xba, - 0x0a,0x7a,0x63,0x1e,0x16,0x33,0x6a,0xf5,0xc9,0xc8,0xfc,0x34,0x59,0x35,0xd3,0x84, - 0x88,0xa0,0x29,0xbc,0x5f,0x6b,0x9a,0xf1,0xb9,0x30,0x1a,0xc6,0xdb,0x3a,0xf2,0xd4, - 0x2b,0xb0,0x43,0x22,0xfa,0x31,0xed,0x85,0xb1,0xba,0x58,0x72,0x3d,0x57,0xb4,0x75, - 0xe4,0x9a,0xef,0x4a,0xb2,0xbe,0xde,0x4c,0xc6,0x0b,0x62,0xd8,0x6d,0xc6,0x7e,0x1a, - 0xd5,0xd1,0xac,0xef,0xc5,0x56,0xd0,0xa9,0x8e,0x1b,0x18,0x44,0x65,0x06,0xd0,0xe0, - 0x78,0x36,0xba,0xa1,0xbd,0x61,0x53,0xdf,0x9c,0x1a,0x69,0x92,0x0e,0x62,0x4c,0x50, - 0xba,0x56,0x05,0x28,0x12,0x8e,0x1a,0xe2,0xcc,0x5e,0xba,0xf2,0x0c,0xd1,0xef,0xe6, - 0x45,0x69,0x17,0x2a,0x7e,0x8b,0xe4,0xc3,0x64,0x1c,0x48,0x17,0xba,0x0b,0x96,0xdc, - 0x93,0x79,0x4f,0x3c,0xbc,0x83,0x7c,0xfc,0x42,0xd3,0x26,0x7b,0xd9,0x62,0x26,0x4b, - 0xaa,0x98,0x86,0x62,0x14,0x81,0x8b,0xe5,0x79,0x6a,0x73,0xb2,0xf1,0x81,0x8c,0xb2, - 0xab,0x31,0x84,0x37,0x8c,0x6b,0x81,0x42,0xa9,0x2e,0x96,0x0c,0x09,0xba,0xa1,0xb4, - 0x18,0x4e,0xa8,0xe9,0x4f,0xbd,0x76,0x7c,0xc3,0xca,0x54,0x55,0x4e,0x5b,0x52,0x2d, - 0xb8,0xb6,0xd6,0x2a,0xf0,0xe8,0x86,0xc4,0xfd,0xfe,0xe2,0xa4,0x98,0xf7,0x82,0x4e, - 0x84,0x69,0x9e,0x37,0xd4,0xc2,0x0e,0x9d,0xf0,0x85,0xed,0x62,0x10,0xa1,0x0c,0x7b, - 0xf5,0xfc,0x75,0x6d,0x9e,0xa8,0x37,0x5d,0x91,0x4d,0xfc,0x2f,0x5f,0xa9,0x26,0xf0, - 0xf9,0x5b,0xcd,0x3f,0x99,0xfa,0x45,0x22,0xc1,0xc9,0x2a,0x60,0x86,0x31,0xe8,0x07, - 0x28,0xd1,0xea,0x19,0x74,0x75,0xff,0xb4,0x12,0x22,0x13,0xad,0xfd,0x0c,0x63,0xd9, - 0x4e,0xb1,0x92,0x8f,0xc7,0xb9,0x3b,0x47,0x6b,0xa6,0x08,0x89,0x42,0xe0,0xf9,0xc5, - 0x1c,0x33,0x77,0x2d,0x48,0x94,0x94,0xbd,0x11,0x75,0xe7,0x32,0x52,0x4c,0xa6,0xf9, - 0x75,0x55,0x7b,0x81,0xdf,0x60,0x7d,0x8c,0x9a,0x4d,0xab,0x3f,0x41,0x8f,0x50,0xf7, - 0xd2,0xf1,0xf1,0xc6,0xb1,0x15,0xd1,0x7f,0x79,0xf1,0xdf,0x2c,0xa1,0xeb,0x7d,0x73, - 0xda,0x21,0x20,0xd4,0x70,0x16,0x73,0x64,0x9c,0x31,0xcf,0xd0,0x48,0x89,0x4e,0x8a, - 0x73,0x9a,0xa8,0xe0,0x60,0xac,0x9d,0xd1,0xb6,0x0d,0xb3,0xe9,0xe7,0x85,0xf1,0xf1, - 0xb6,0xb8,0x18,0xcf,0x68,0xe4,0x80,0x28,0x8b,0x08,0x93,0x13,0x7a,0xa5,0xbc,0xa2, - 0x6d,0x4e,0xd4,0x9f,0x1a,0x61,0xa0,0x4a,0x2c,0x68,0x7c,0xcb,0x1d,0xdc,0x05,0xdc, - 0x4c,0x03,0x8f,0xbc,0x36,0xf5,0xb5,0xda,0xf2,0xfb,0x98,0x4d,0xd0,0x02,0x6c,0x19, - 0x04,0x63,0x64,0xbe,0x44,0xe6,0x0b,0x91,0xac,0x2a,0xe2,0x28,0xd9,0x6e,0xb2,0xeb, - 0x40,0x2a,0xd5,0x43,0x72,0x51,0x9e,0xd4,0x90,0xf8,0xdb,0xc1,0x0f,0xc2,0xe4,0xaf, - 0x26,0x12,0xf8,0x2d,0xa1,0xc0,0xfb,0x05,0x44,0xca,0x61,0xae,0x3d,0xe1,0xd7,0x74, - 0x5a,0xbc,0xaa,0x75,0x0d,0x2b,0xd9,0x60,0x7e,0xd1,0xb7,0x1f,0x27,0x63,0xfb,0x91, - 0x5e,0x3e,0x7a,0x5f,0xe5,0x02,0x13,0xf4,0xaf,0x10,0x6e,0x9d,0x29,0x4e,0x3e,0x44, - 0xfc,0x61,0x5b,0x66,0xb3,0xd3,0xa1,0x4a,0x3e,0xe2,0x5e,0xc9,0x13,0xd7,0xd1,0x97, - 0x6c,0x9e,0x52,0x33,0x4d,0x67,0x97,0x8c,0x5c,0x25,0xa1,0xea,0xb2,0x2b,0x65,0xa8, - 0xfa,0x5e,0x74,0x43,0x37,0xb8,0x7d,0x61,0x5f,0xe9,0x23,0x33,0xca,0xaa,0xca,0x78, - 0x56,0xbc,0x8e,0xc4,0xaa,0xb2,0x78,0x01,0x99,0x35,0x14,0xc0,0x15,0x0f,0x52,0xb1, - 0xd5,0x84,0x2d,0x45,0x31,0x86,0x9f,0xf3,0x31,0xec,0xf6,0xf5,0xf3,0x1c,0x7d,0x5b, - 0xad,0x03,0xf0,0x8d,0x0c,0x03,0xf4,0x5b,0x0f,0x23,0x54,0x9d,0xda,0x9d,0xf5,0x10, - 0x89,0xa0,0xea,0x35,0x17,0xf3,0xcf,0xa7,0x9f,0x4f,0x87,0xdc,0x5d,0xe8,0x39,0xe2, - 0x17,0xf0,0xe5,0x14,0xfc,0x49,0xae,0x20,0xd2,0x11,0x6f,0xbc,0xcc,0x55,0x73,0x9e, - 0xf6,0xfa,0x86,0xa1,0x05,0x8d,0x02,0x76,0x57,0x13,0xcd,0x69,0x16,0x2d,0xc9,0xcd, - 0xb5,0x74,0x34,0x5e,0xe9,0x62,0x5b,0x61,0xf2,0x8a,0x07,0xf3,0x2a,0xcc,0x54,0x7f, - 0xdb,0xde,0x79,0x72,0x4d,0xfe,0xeb,0x22,0x9a,0x79,0x4a,0xe8,0x90,0xf1,0x61,0x65, - 0xae,0x29,0x04,0x1f,0x02,0x06,0xc1,0x4d,0x10,0x19,0x88,0x19,0xda,0xad,0x87,0xb4, - 0xf2,0x0f,0xa3,0x6d,0xf2,0xb8,0xe4,0x3c,0x62,0x0e,0xeb,0x8d,0x20,0x9a,0x6c,0x3f, - 0x59,0xec,0xee,0x2c,0xc8,0x35,0xdf,0x45,0x19,0x95,0x43,0x5a,0x7e,0xe9,0xc1,0x2d, - 0xe8,0x0a,0xca,0x88,0xfe,0xe4,0x63,0x30,0x13,0xf2,0x47,0x32,0x54,0x88,0x4a,0x9a, - 0x87,0xc6,0x66,0x72,0x46,0x57,0x8c,0x6e,0xda,0xcd,0xed,0x9d,0x36,0xbc,0x21,0x56, - 0x2d,0x45,0x92,0x23,0x29,0x45,0x60,0x74,0x47,0x58,0x58,0x71,0x71,0x56,0xcc,0x10, - 0xd4,0x30,0x92,0x54,0x72,0xa3,0x5f,0xb5,0xcc,0xc7,0xd3,0x16,0x1f,0x8a,0xb6,0x06, - 0x46,0xc1,0x81,0x96,0xfa,0xcb,0x7e,0xc4,0x89,0x91,0x26,0x3a,0x43,0xaa,0xea,0x56, - 0xd7,0xfd,0x82,0x06,0x9d,0x61,0x0a,0x1e,0x69,0x1a,0x2a,0x0b,0xdb,0x1d,0xf4,0xf3, - 0xa1,0x7e,0x96,0xb6,0x03,0xc1,0x3b,0x15,0xa9,0xe2,0x1b,0xb0,0xb5,0x1a,0x1a,0x0b, - 0x36,0x03,0xe9,0xc6,0xa5,0xf4,0x11,0xc8,0x36,0x13,0xfd,0x72,0x22,0x3e,0xf4,0x71, - 0xf1,0x19,0x7d,0xe0,0xec,0x6c,0x70,0xba,0xd4,0x98,0x23,0x5a,0x2d,0x07,0x2d,0xc2, - 0x53,0xf2,0x86,0x8b,0xc0,0x68,0xd3,0xfc,0x0b,0x76,0x4f,0xd8,0x31,0x58,0xae,0x0c, - 0x87,0xa4,0x51,0xc3,0xcc,0xdb,0x9a,0x8c,0x87,0x20,0xeb,0x39,0x52,0x22,0xa4,0x34, - 0x91,0x12,0x41,0x85,0x30,0x97,0xe3,0xbc,0xb2,0x0c,0x8a,0xd1,0xfd,0xb2,0xcb,0xd2, - 0x57,0x2c,0xde,0x48,0xba,0xcb,0x55,0xb4,0xdb,0x05,0x3a,0x78,0xd2,0x8e,0x72,0x2c, - 0x49,0x55,0xd7,0xe6,0x1d,0x78,0x6b,0x09,0x93,0xf8,0x6a,0xac,0xc3,0x44,0x7b,0xe8, - 0xd9,0x4a,0x3c,0xa3,0x1e,0x86,0x27,0x1c,0x61,0xf2,0x3b,0x01,0x4f,0x99,0x91,0x4f, - 0x1e,0xdd,0x2e,0x01,0x9a,0x42,0x0d,0xbc,0xbc,0xac,0xcf,0x70,0x31,0x66,0xd5,0x45, - 0x5f,0xb2,0x08,0x2c,0x1a,0x4e,0xd3,0xa5,0xd0,0x30,0x3f,0xa5,0x4d,0x5b,0xfd,0x62, - 0x4e,0x6d,0xab,0xaa,0x18,0x03,0xd7,0x1b,0x82,0xd3,0x9f,0x11,0xc9,0x70,0xf6,0x59, - 0xd6,0x7d,0x3b,0xad,0x9e,0x93,0xfc,0x55,0x8d,0x36,0x62,0xdf,0x80,0xbc,0x4e,0x2c, - 0xb0,0xe0,0xcc,0x48,0x5a,0xa3,0xc3,0xef,0xd9,0x80,0xf0,0xc9,0xcc,0x09,0x55,0x3d, - 0xc0,0x75,0x3d,0x82,0x87,0x35,0xce,0x1f,0x21,0x81,0xc8,0x59,0x6c,0x2f,0x6c,0x57, - 0x62,0xbb,0x8c,0x16,0x6b,0xc6,0x32,0x63,0xbd,0x82,0x97,0x08,0x2a,0xcb,0x28,0x59, - 0x44,0x27,0xb8,0xb7,0x5c,0x94,0x22,0x3f,0xb2,0xbb,0x19,0xcd,0xf9,0xf1,0xa2,0x70, - 0x8c,0x9f,0x28,0xf7,0x5f,0x90,0x60,0xe5,0x5f,0xed,0x56,0xfd,0xd3,0x16,0xf7,0x40, - 0x5c,0x9d,0x98,0x39,0xab,0xec,0xf3,0x1f,0xf7,0x23,0xfb,0x41,0xc1,0xed,0x39,0x4a, - 0xe6,0xd9,0x0c,0xba,0x0b,0x97,0x1a,0xdd,0x29,0x4c,0x58,0xa6,0x7c,0xd7,0x9d,0x52, - 0x61,0xa0,0xec,0x1e,0xac,0x60,0x4e,0x30,0x3b,0xb1,0xa5,0x04,0x3f,0x17,0xe8,0x2b, - 0x9c,0x97,0xd5,0xcc,0xaa,0x79,0x8d,0x0f,0xcc,0x3d,0x79,0x1b,0x05,0xe4,0xe5,0xdb, - 0x2c,0x42,0x6c,0x88,0x9e,0x9c,0x6c,0x5d,0x18,0xbf,0xaf,0xdb,0x36,0xb3,0xaa,0x36, - 0x70,0xae,0x45,0xd9,0xcc,0x0d,0x7e,0x8d,0xb3,0x74,0x46,0xe3,0x0c,0xde,0x7d,0x5c, - 0x5d,0x87,0x9f,0x7d,0x5c,0xa2,0x67,0xbc,0x3e,0x50,0xbf,0x89,0x59,0xf4,0x91,0x1a, - 0xf9,0xaa,0xf7,0x59,0x16,0x4b,0xaa,0x83,0xf2,0x44,0x64,0x64,0x02,0x55,0x04,0xa8, - 0xb8,0x12,0xef,0x9d,0x16,0xa2,0x78,0xa1,0x1d,0xba,0x99,0x90,0x72,0xcd,0x49,0xeb, - 0x33,0x1a,0x08,0xc6,0x32,0x30,0xb6,0x11,0x07,0xdb,0x4b,0x03,0x1d,0xa7,0x57,0x80, - 0x0b,0x0f,0xf5,0x4e,0x68,0x03,0xbd,0x0c,0x0d,0xc9,0x45,0x15,0x28,0x22,0xb9,0xe8, - 0x5b,0x08,0xe9,0x6f,0x9d,0x7f,0x84,0x46,0x36,0x58,0x6e,0xc2,0x1c,0x1f,0x79,0x7d, - 0xe2,0xdd,0x3b,0xc0,0x96,0xbe,0x9b,0x92,0x5a,0x24,0x1f,0x4d,0x55,0x70,0xe2,0xba, - 0xb3,0x35,0x87,0xa4,0xda,0xe6,0xa9,0xc6,0x17,0x91,0xbc,0x00,0x3f,0x16,0x27,0xb4, - 0x9f,0x04,0x26,0x35,0xf8,0xc2,0xc6,0x5c,0x06,0x3c,0xf2,0x8f,0x7a,0xe5,0x1c,0xb4, - 0x5d,0x0d,0x70,0xbd,0x8e,0x5d,0xf0,0x93,0xca,0x12,0x0e,0x03,0x67,0x15,0x5b,0xd2, - 0x90,0x26,0xc1,0x34,0xbb,0x60,0x0f,0x46,0x60,0xe2,0x39,0x9f,0x7f,0x0a,0x45,0x34, - 0xde,0xf5,0x8b,0x34,0x8b,0x67,0x66,0x97,0xf9,0xe6,0x79,0x34,0x4e,0x45,0x72,0x2a, - 0xa1,0x4b,0x32,0x67,0x4e,0xba,0x52,0x59,0x33,0x18,0xca,0x16,0x5a,0xb3,0x20,0xcc, - 0x74,0x1f,0xd9,0x39,0x1c,0x70,0x84,0x19,0xc3,0xcb,0x67,0x7b,0xd0,0x7e,0xd5,0x79, - 0xca,0x68,0x0b,0x5d,0x6f,0x30,0xe9,0x53,0x0e,0xf9,0x2e,0xa5,0x8b,0xc2,0xa7,0xbe, - 0x9a,0xaa,0xba,0x7c,0x2b,0x64,0x6e,0xc1,0x93,0xad,0xd5,0x24,0xba,0x75,0xd4,0x68, - 0xce,0x58,0x75,0x2e,0xe9,0x28,0x0d,0x8c,0x56,0x5e,0xea,0x27,0x17,0x5c,0xb6,0x5e, - 0xb0,0x8b,0x1a,0xf4,0x1d,0x2e,0xd2,0x1f,0xe1,0xa4,0x7c,0xe7,0xa8,0x34,0x25,0x70, - 0x79,0x99,0xcd,0x9a,0x6a,0x09,0x8b,0x24,0xc5,0x32,0xb1,0xbe,0xd1,0x7a,0x57,0xbc, - 0x28,0x96,0x13,0xe5,0xbb,0x84,0x1a,0xa7,0xf4,0xe8,0x0c,0x82,0xe4,0xaa,0x7c,0xd7, - 0x4b,0x25,0xa9,0xfa,0x7e,0x72,0x29,0x44,0x43,0xd4,0xab,0xcf,0x3c,0xaf,0xc9,0x6c, - 0x57,0x06,0x5e,0xc0,0x4b,0x77,0x77,0x21,0x2b,0x97,0x45,0xe0,0xae,0xa2,0x07,0xb6, - 0xd9,0x80,0x4d,0xbf,0x90,0x18,0xdd,0x7c,0x62,0x85,0x29,0xcd,0xe9,0x29,0xfd,0x95, - 0x02,0xd0,0x6a,0x75,0xf7,0x73,0x6e,0xa6,0x44,0x8e,0x2f,0xf8,0xe0,0x25,0xe8,0xf0, - 0xcb,0xb8,0x5c,0x7a,0x5e,0x2b,0xa2,0x3a,0x92,0x76,0x9a,0xbb,0xbb,0x4f,0x64,0x7d, - 0xb7,0x64,0x59,0x33,0x4f,0x5d,0xac,0xec,0xde,0xa1,0xe6,0x10,0xc3,0x66,0x53,0x6b, - 0x4d,0xcd,0xc6,0x6f,0xaa,0xfd,0xf1,0x6b,0x3d,0x9f,0x82,0xb4,0xc3,0xb7,0x1a,0x42, - 0x3e,0xc1,0x1a,0x21,0x3e,0x69,0x4a,0x52,0x08,0xa4,0x21,0xb4,0xce,0xf7,0xec,0x13, - 0x1b,0xf9,0xa0,0x1d,0x35,0x71,0x60,0xb4,0xdb,0x61,0xa6,0xfd,0x27,0x6b,0x2f,0x71, - 0x1d,0xe3,0xe5,0xdf,0x22,0x4d,0x88,0xb0,0x74,0xf3,0xcc,0xe6,0xc1,0xb5,0x88,0x7b, - 0x65,0xc1,0x33,0xd6,0xe1,0x7e,0x24,0x2f,0x56,0xdc,0xb9,0x21,0xe1,0x17,0xd2,0xdb, - 0xb6,0x15,0x2b,0xca,0xf1,0x88,0x95,0x18,0xaf,0x7f,0x7d,0x8b,0xb3,0x1f,0x6c,0x22, - 0xe4,0x34,0xdc,0x9a,0x81,0x87,0x2d,0x23,0x99,0x5a,0x70,0x4b,0x72,0x31,0xa6,0xdd, - 0x94,0x66,0xaf,0x12,0x2c,0x6d,0x56,0x2b,0x85,0x01,0x80,0x5f,0x55,0xcc,0x84,0x38, - 0x05,0xaa,0x35,0x2d,0x3f,0x85,0x90,0x18,0xc6,0x4d,0x31,0x11,0x41,0x6b,0x79,0x58, - 0x59,0x5e,0x99,0x83,0x8b,0x41,0x1e,0x4d,0xf7,0x80,0x65,0x26,0x53,0x58,0x9d,0xd8, - 0xc4,0x0c,0xc9,0x42,0x06,0x12,0xe4,0xaf,0x90,0x99,0x2e,0x46,0x95,0xe8,0x79,0x42, - 0x4b,0x28,0x8c,0xc5,0x18,0xb0,0xf4,0xb3,0xa1,0x65,0x55,0xf3,0x26,0xdf,0xc1,0x6d, - 0xcc,0x2b,0x2b,0xaa,0x8b,0xc5,0xa2,0xa2,0x87,0x68,0x11,0x71,0x63,0x36,0xa1,0xd1, - 0x31,0x5a,0x9e,0x14,0x4e,0x66,0x83,0xfe,0xc7,0x42,0x57,0x13,0x2e,0x68,0x36,0xe8, - 0x0d,0x75,0x12,0x92,0xcf,0xab,0x72,0x95,0xd4,0x03,0x4e,0x45,0xac,0xd3,0xb9,0xa0, - 0x30,0x59,0x58,0x72,0x1c,0x98,0x59,0x68,0x76,0x4d,0x46,0xb9,0x5e,0xce,0x93,0xde, - 0x05,0x9f,0x8b,0x0a,0x6c,0x29,0x65,0x22,0x91,0x26,0x30,0x5e,0xb7,0x5d,0x60,0xdd, - 0x99,0x28,0x34,0x58,0xc1,0x69,0x01,0x9c,0x69,0x28,0x0b,0xa9,0x09,0x3e,0x18,0xc9, - 0xc5,0x23,0x6c,0x58,0xf4,0xae,0x83,0x52,0x7c,0x45,0x1d,0x33,0xd2,0x8f,0x44,0xf5, - 0xd5,0xac,0x07,0x8b,0xf5,0x05,0xa6,0x5a,0xaf,0xd6,0x05,0x99,0xf6,0xcd,0x6d,0x29, - 0xa6,0x1f,0x69,0x72,0xdb,0x53,0x42,0xfd,0xf0,0xe6,0xf9,0xbb,0x1f,0xad,0x2a,0xca, - 0x44,0xfb,0x29,0x46,0x76,0x17,0x5c,0x93,0xf4,0xd3,0x0c,0x7e,0xc0,0xa9,0x9a,0x90, - 0x0d,0x2f,0x86,0x70,0x43,0xbf,0x6e,0x6b,0x8c,0xbc,0xf3,0x65,0x74,0xf3,0x95,0xe8, - 0x0e,0x57,0xa0,0x3b,0xeb,0x89,0x5b,0x58,0xce,0xd4,0x1b,0x1b,0x6b,0x43,0x9c,0x1d, - 0x42,0xb4,0x27,0xed,0xae,0xb1,0x2e,0x9c,0x0c,0x59,0xa1,0x67,0xb3,0xb3,0xa6,0x28, - 0xc0,0x41,0x82,0x96,0xa0,0x69,0x12,0x80,0x8b,0x04,0x73,0xc7,0x3e,0xef,0x9a,0xdb, - 0xed,0x8c,0xfa,0x3e,0xf6,0x75,0x80,0x3f,0x1f,0xd0,0x0c,0xb2,0xe3,0x21,0x41,0xa2, - 0x22,0x19,0xd7,0xe0,0xe8,0x9d,0xe0,0x18,0x59,0x0a,0xcb,0x22,0x12,0x9b,0x23,0xda, - 0x89,0x33,0x16,0xd7,0x9d,0x88,0xac,0x06,0x3f,0xf7,0xca,0x04,0xb2,0xab,0x1a,0x19, - 0xc1,0x9c,0x8c,0x3f,0xec,0x8f,0xfa,0x65,0x8b,0x8f,0xa9,0xde,0x9c,0x09,0xc4,0xb3, - 0xdc,0x35,0x21,0xa2,0xe9,0xee,0x07,0x85,0x23,0x27,0xd0,0x73,0x74,0xeb,0xf4,0x46, - 0x7d,0x08,0x5c,0x50,0xc6,0x33,0x98,0xea,0x89,0x2b,0x01,0xd8,0x41,0xd1,0x47,0x06, - 0xca,0xf1,0x97,0xe3,0xaf,0x02,0x98,0x5f,0x9e,0x92,0xa3,0xe5,0x7a,0xd7,0x90,0x41, - 0x18,0x8a,0x8b,0xda,0x38,0x14,0x1e,0x29,0xa5,0x90,0xff,0xe1,0x94,0x5e,0x84,0xaa, - 0xc6,0x76,0x4d,0x1c,0x68,0x35,0xa7,0xc8,0xd4,0x79,0x77,0x42,0x31,0x36,0xbe,0x4d, - 0x34,0x43,0xb6,0x03,0x53,0x07,0xcf,0x3c,0xd1,0x65,0x4c,0x7e,0xe9,0x5c,0x59,0x51, - 0xf3,0xca,0x1f,0xa8,0x07,0x14,0xbd,0x31,0xfb,0x3b,0x1b,0xb4,0xa0,0x7f,0x9f,0x93, - 0xb3,0x93,0xc8,0xf9,0xb7,0xb5,0x85,0xb9,0x80,0xa7,0x6f,0x74,0x19,0x59,0x9b,0x07, - 0x25,0x26,0xdb,0x02,0x67,0x89,0x2c,0x35,0x74,0x23,0x76,0xa7,0xca,0xce,0x20,0x80, - 0xa4,0xbf,0xc1,0x9e,0xc3,0xb5,0x86,0x61,0x44,0xdc,0xe0,0xa3,0x5e,0x1c,0xbb,0xce, - 0x6d,0xa4,0xb2,0xfc,0xfd,0xd2,0x70,0x7a,0x1f,0x23,0x82,0x9c,0x01,0x7d,0x47,0xb6, - 0x46,0xb3,0x6b,0x32,0x72,0xb9,0x76,0x83,0xf3,0x5f,0x19,0xab,0x22,0xfe,0x9e,0xf2, - 0xdf,0xd5,0x81,0x32,0xab,0xbe,0xb4,0x3c,0x70,0x53,0x53,0xce,0x7c,0x25,0x49,0xf3, - 0x90,0xa4,0x39,0x93,0x34,0x27,0x92,0xe6,0xb5,0x24,0xf1,0xf7,0x74,0xfe,0xe5,0x24, - 0xcd,0x2d,0x49,0xd6,0x88,0xe5,0xe0,0xd5,0x9b,0x43,0x9e,0x86,0xcc,0xc5,0x8d,0xcc, - 0x3c,0xa8,0x64,0x20,0x42,0x06,0x25,0x9f,0x5e,0x94,0xa4,0xf9,0x55,0x99,0xf7,0x9c, - 0x36,0x86,0x10,0xf2,0x75,0x67,0xc4,0x2b,0xaf,0xf9,0x86,0x37,0xd6,0x2a,0x3c,0x7e, - 0xbc,0xfb,0xb8,0x1b,0xb5,0x21,0xce,0x97,0x11,0x05,0xe4,0x8d,0xfc,0xa3,0x11,0x4a, - 0x9e,0xc9,0xae,0x59,0x1f,0x15,0x9d,0xdd,0xb3,0xeb,0xa3,0x7c,0x98,0x13,0x7e,0xcc, - 0x02,0xfc,0x1b,0x25,0x2a,0x39,0x44,0x27,0x24,0x0b,0x90,0x16,0x40,0x25,0xf1,0x54, - 0xa1,0x69,0xf7,0x60,0x29,0xe7,0x57,0x9e,0x30,0x86,0x34,0xa0,0xb3,0xa8,0x68,0x91, - 0x19,0xde,0x0d,0xb6,0x20,0xb7,0x5b,0x37,0x62,0x5f,0x43,0x0f,0xb0,0x25,0x30,0xf4, - 0xd1,0xd2,0x43,0xea,0x60,0x5e,0xcc,0xfe,0xf3,0xf7,0xc3,0x48,0x5f,0x71,0xd4,0x20, - 0x6b,0x63,0x19,0xbd,0xe8,0xef,0x3c,0x7e,0xbc,0xfd,0x67,0xfa,0x86,0xf0,0x91,0x64, - 0x77,0x3e,0xfe,0x64,0x24,0x31,0x41,0xa1,0x8b,0x7e,0x6c,0xd6,0x4e,0x60,0xc7,0x62, - 0xad,0x02,0x65,0x07,0x21,0x50,0x32,0x3e,0x38,0xce,0x22,0x3e,0x05,0xdb,0x3f,0xf8, - 0x2b,0xc9,0x53,0xbc,0x81,0x2a,0xb7,0x68,0x3e,0x7c,0xec,0x1f,0x60,0x1c,0xfe,0xf7, - 0xdb,0x17,0x07,0x79,0x0c,0x5d,0x30,0xd5,0x75,0x4a,0xfb,0x9e,0x22,0x9b,0x5f,0xcf, - 0x3f,0xc0,0x60,0x8f,0x8a,0xc8,0x44,0xbc,0xce,0x3e,0xce,0xa6,0x1f,0x28,0x99,0x7f, - 0xd1,0xe7,0xb2,0x1e,0x15,0xf1,0x01,0xb9,0xb0,0x99,0xa2,0x99,0xa1,0x77,0x5a,0x64, - 0xa2,0xdc,0xe8,0x11,0x38,0xed,0x46,0xe6,0xa4,0x85,0xce,0x68,0x59,0xfb,0x20,0xdc, - 0x8a,0x9d,0x21,0x6e,0x4b,0xdf,0x7f,0xf3,0xeb,0xdb,0xe7,0xaf,0x5f,0xbe,0x79,0xad, - 0xb6,0x4e,0xc1,0xa9,0x8c,0x1e,0x3b,0xaf,0x3a,0x8a,0xa9,0xb7,0xfe,0x38,0x97,0x03, - 0xd0,0xfb,0x1b,0x70,0xfc,0x8b,0xd6,0x1a,0x35,0x36,0x24,0xfc,0x14,0xe0,0x25,0x47, - 0x44,0x53,0xa3,0xbf,0xd6,0xc9,0xaa,0x8c,0x4a,0xbd,0x3b,0x87,0xbe,0xc6,0xdb,0x9b, - 0x33,0xb1,0xee,0xd2,0xc3,0x32,0x1a,0x6e,0x4c,0x00,0xa0,0x3c,0xcd,0x18,0x54,0x9f, - 0xa8,0x6d,0x87,0xe6,0x3f,0xf0,0x99,0x34,0xa8,0x11,0xa0,0x25,0xdf,0x60,0xc4,0x19, - 0xf8,0x24,0x83,0x84,0x39,0x85,0xe8,0x44,0xf2,0xc1,0xcb,0x7d,0x36,0x81,0xbe,0x53, - 0x49,0x28,0x64,0x73,0x67,0x51,0x39,0x26,0x1c,0x8a,0x06,0x35,0x8a,0xe4,0x4b,0xa4, - 0x9f,0x90,0x93,0x68,0xc7,0x5e,0xc0,0x82,0x99,0xf1,0xa2,0x87,0xa2,0xea,0x7d,0x11, - 0xe6,0x5b,0x83,0x29,0xce,0x44,0x04,0x11,0x75,0xdc,0x4a,0xe7,0x64,0x89,0x05,0x3d, - 0xe8,0xaf,0xe8,0xc0,0xf8,0x65,0x8b,0x84,0xc1,0xb5,0x8e,0x65,0xff,0xcc,0x5c,0x51, - 0x6b,0x66,0xe2,0x10,0x40,0x04,0x3f,0x9e,0xf4,0xa4,0x15,0xcf,0x1d,0xa3,0x65,0xce, - 0x64,0x50,0x61,0x88,0x40,0x8f,0x69,0x0a,0x50,0x2b,0x2e,0xd1,0x8a,0x9b,0x82,0xf6, - 0x01,0xb8,0xbe,0x24,0xe4,0x61,0x81,0xd1,0x9e,0x5e,0x4b,0x31,0xba,0xbf,0xc6,0x00, - 0xad,0xc3,0x50,0x29,0x6d,0x06,0x63,0x66,0xe7,0x84,0x36,0xf0,0xe3,0x10,0x56,0x74, - 0xdf,0x62,0x4c,0x4d,0x6e,0x65,0x46,0x1a,0x4a,0x37,0x3c,0x5d,0x37,0xfd,0x66,0xc4, - 0x64,0xbc,0xbb,0xa0,0xb5,0x4c,0xf5,0xd7,0xba,0x42,0x4e,0xc6,0x6b,0xa8,0xe0,0x21, - 0x0c,0xd5,0x3c,0x7e,0x57,0xc1,0x45,0x06,0x2e,0x52,0x40,0xdb,0x68,0x4c,0x5e,0xef, - 0xca,0x61,0x89,0x91,0x8c,0x4b,0xed,0x28,0xfa,0xce,0x78,0xf4,0xab,0xf2,0xac,0x13, - 0x69,0xc2,0x53,0x34,0x79,0x73,0x32,0x63,0xcf,0x01,0xcf,0xa2,0xa7,0x50,0xcc,0x3e, - 0x8b,0x9d,0x43,0x38,0xcb,0x66,0x97,0xbf,0x9a,0xbd,0x2d,0xa0,0x6c,0xf2,0xaa,0xdd, - 0x04,0xc7,0x6f,0xd0,0x5f,0xc2,0x78,0x10,0xe6,0x2f,0x32,0x8b,0x1a,0x42,0x00,0xa9, - 0x7d,0xc4,0x98,0xd2,0x64,0x15,0xad,0xdc,0x43,0x8a,0x51,0x31,0xfb,0x88,0xc3,0x30, - 0xd5,0xa0,0x4d,0xc6,0x5b,0x22,0xcf,0x86,0x96,0x95,0x18,0xa2,0xbc,0xd5,0x05,0xea, - 0xc0,0x98,0x12,0xcf,0x83,0xb1,0x38,0xa6,0xd7,0x63,0x96,0xb5,0x36,0x7a,0x83,0x92, - 0x1d,0xa5,0xba,0x47,0xf8,0x64,0x3f,0xa0,0x27,0xf7,0xb2,0xe7,0xd2,0x49,0xc3,0x98, - 0x31,0x44,0xc9,0x4f,0x18,0xc3,0xd5,0xe1,0x73,0x47,0xd6,0xce,0xef,0xdb,0xdf,0xb7, - 0x53,0x7b,0x94,0xaf,0x68,0xf0,0x58,0x87,0xc5,0xda,0x32,0x8a,0x36,0x0c,0xa3,0x00, - 0x62,0x83,0x6c,0xbd,0x44,0x59,0x0a,0xbe,0x1c,0xee,0xbf,0xb5,0xbc,0xa5,0x25,0x59, - 0x6d,0x52,0xbf,0xde,0x5e,0xf5,0x0b,0x4d,0x46,0xc3,0x6a,0xa7,0x6b,0xcd,0x93,0xfa, - 0x35,0x8a,0xd6,0x3b,0x8d,0x93,0xee,0x9f,0x49,0x6d,0x94,0xd6,0x66,0xb3,0xc6,0x92, - 0xee,0x5c,0x86,0xc4,0xc9,0xac,0x57,0x99,0x4e,0x8a,0x93,0x9c,0xda,0xda,0x85,0xe6, - 0x96,0x41,0x4e,0xff,0x74,0x37,0x33,0x4a,0x80,0xdb,0x15,0xa8,0xc6,0xd8,0x90,0x0e, - 0xab,0xb5,0x51,0x0e,0x9e,0x41,0xae,0xae,0x7c,0x76,0xfd,0xad,0x47,0x40,0x1d,0xca, - 0xe8,0x48,0xb5,0x3a,0xb0,0x69,0x91,0x94,0x28,0xa1,0xe7,0xa6,0xd9,0xfc,0x3b,0x39, - 0xbf,0xc2,0x9c,0xe5,0xab,0xcd,0x51,0x36,0x8e,0x6b,0x64,0x90,0xff,0x2b,0x1a,0x73, - 0xfc,0x7f,0xc6,0x1c,0xa1,0x65,0x84,0x2b,0x0a,0x4d,0x67,0x83,0x4b,0xcc,0x7a,0x2a, - 0x10,0xaa,0x15,0xc6,0x4a,0x1b,0x90,0xa8,0xde,0x50,0x62,0xbd,0x6d,0x48,0xb4,0xde, - 0x36,0xe4,0x0b,0x6d,0x2c,0xa2,0x7f,0xdd,0xc6,0x22,0xfa,0x0a,0x1b,0x0b,0x45,0xb0, - 0xe6,0x40,0xff,0xeb,0x4c,0x2d,0xb4,0xfa,0x77,0x5b,0x5a,0x7c,0xbd,0x2a,0xea,0x8b, - 0xf5,0x4e,0xa1,0x85,0xc7,0xbe,0x35,0x25,0xa4,0xb2,0xec,0xec,0xfc,0xf5,0x87,0x74, - 0x75,0x07,0x80,0xa1,0x31,0x76,0x62,0x1e,0x74,0x52,0x14,0xeb,0xc2,0x9a,0x93,0x04, - 0x1d,0x3f,0xb3,0xc9,0x5c,0x0e,0x9d,0xec,0xf8,0xd4,0xa4,0x28,0x69,0xab,0xa5,0x90, - 0x51,0x8d,0x62,0x59,0xd5,0x8d,0xb1,0xa0,0x6c,0x2f,0xfe,0x4c,0x67,0xe0,0xdf,0xb7, - 0x17,0x3b,0xdf,0x19,0xe9,0xc8,0x1a,0x8f,0x9a,0x61,0x62,0xad,0x4d,0xdd,0x63,0xe7, - 0xc0,0x96,0xd6,0x42,0x85,0x66,0xa4,0x28,0xc5,0x14,0xf9,0x65,0x16,0xb2,0x96,0x9c, - 0xd0,0x28,0x76,0xc9,0xfe,0x35,0xe4,0xce,0x5d,0x07,0xff,0x0c,0xcf,0x67,0xff,0x10, - 0xc6,0x56,0x5a,0x85,0xdc,0xff,0x1c,0x3e,0xba,0xfb,0x1c,0xfe,0x8e,0xe3,0x68,0xe5, - 0x1a,0x31,0xc2,0x1c,0xa9,0x63,0xf6,0x59,0x73,0x80,0x1f,0x76,0x33,0x73,0x70,0xbf, - 0x60,0xc3,0xf0,0x7f,0xef,0x31,0x76,0x70,0xd4,0x1c,0x25,0xf4,0xd8,0x84,0x7e,0x64, - 0x3a,0xad,0xef,0xb1,0xbe,0x3a,0x94,0x48,0x7a,0x59,0x56,0xeb,0x66,0x62,0x5d,0x5a, - 0xe1,0x16,0xdc,0x84,0xef,0xf2,0xb1,0xe3,0x93,0x57,0x40,0x2e,0x8e,0x4f,0x38,0xf8, - 0xb1,0xe6,0x88,0x6f,0x3d,0x5c,0x14,0x65,0xab,0xd4,0xeb,0x95,0x21,0xea,0xd4,0xa0, - 0x56,0x7b,0xcc,0x3a,0x47,0x1f,0xea,0xf0,0xd8,0x3a,0x5f,0x20,0xc7,0xcb,0x09,0xf9, - 0xfd,0x18,0xe1,0x11,0xe7,0x42,0x0b,0x3d,0x8a,0x5a,0x98,0xd1,0xf9,0xde,0x9c,0xa2, - 0x57,0xbe,0x3a,0x8e,0xda,0xc7,0xa9,0x75,0x80,0xcf,0xd6,0x7b,0xf9,0xb2,0x00,0x61, - 0x7c,0xac,0x2c,0xc5,0xff,0x54,0xea,0xd6,0xf8,0x95,0x4b,0xc4,0x5b,0x48,0x62,0xa6, - 0x85,0x85,0x39,0x1a,0x5f,0x18,0x17,0x23,0xec,0x5c,0x44,0x3a,0x17,0xff,0x94,0x0b, - 0xa3,0x78,0xc0,0xe9,0xc1,0x82,0xcf,0x3f,0x16,0x7a,0x00,0xb4,0x10,0xf7,0x23,0xe2, - 0x78,0x84,0xce,0xec,0xd2,0xb0,0x56,0x55,0x75,0x93,0xf7,0xe6,0xec,0x2d,0xdd,0x63, - 0x3e,0xd0,0x7b,0x75,0x20,0x96,0xee,0xa5,0xdf,0x78,0xb5,0xdf,0x40,0xa5,0xc5,0x39, - 0xd6,0x27,0x61,0x85,0x32,0x16,0x1f,0x54,0x0d,0x48,0x0d,0x94,0xdf,0xb0,0xc6,0xb6, - 0xd3,0xdc,0xce,0xe6,0x27,0xc3,0x0e,0x39,0xdd,0x82,0x98,0x24,0xbf,0xd7,0x48,0xed, - 0xcf,0x68,0x1e,0xe8,0xc4,0x71,0x56,0x5e,0x7c,0x44,0x32,0x6d,0x36,0x91,0x8c,0x18, - 0x2d,0x1d,0xb9,0x0f,0x8c,0x7d,0xd9,0xd8,0x3c,0xd3,0x90,0x93,0xa7,0x5b,0xbf,0x8b, - 0x1d,0x82,0x51,0xaa,0xa5,0xe5,0x11,0xc5,0x7e,0x40,0x8f,0x4c,0x27,0xcb,0x2a,0xe7, - 0x33,0x99,0x6d,0x89,0xcc,0x78,0xa4,0x3a,0x36,0x37,0xe7,0x3b,0x46,0x0d,0x6a,0xd5, - 0xcc,0x79,0x5e,0xa1,0xd2,0xbe,0x85,0x8f,0x54,0x11,0x69,0xf9,0xaa,0x93,0xe6,0x61, - 0x57,0xd4,0xeb,0x92,0x49,0x05,0xb2,0x57,0xa3,0xe6,0xea,0x54,0x97,0xfb,0x52,0xdb, - 0x5b,0xaa,0x4e,0x5e,0xdf,0x41,0x80,0x97,0xda,0xb5,0xcc,0x3f,0x1d,0xed,0xc2,0xe7, - 0xd5,0x4d,0xdc,0xc0,0x53,0x23,0xbe,0x8d,0xcd,0xdd,0x4a,0x6a,0xa2,0x9d,0x63,0xba, - 0xad,0xbb,0x93,0xce,0xa5,0x85,0x64,0x03,0x04,0x38,0x9a,0x9c,0x3e,0x1d,0x6d,0x1f, - 0x1f,0xa7,0x2e,0xdc,0xb6,0x85,0x2b,0x15,0x8e,0xf0,0x45,0x31,0xc3,0x36,0x50,0x18, - 0x32,0xdc,0xd6,0xb8,0xf1,0x22,0x7a,0xbc,0x32,0x82,0x5b,0xe8,0xd8,0x02,0xe8,0xcd, - 0xf8,0x3a,0x47,0x5f,0x40,0xeb,0x94,0x1d,0xe6,0x8f,0x2c,0x02,0x4d,0xa1,0x03,0xfb, - 0xed,0xdd,0x6e,0x14,0xf8,0xf9,0xba,0x8d,0x99,0xc0,0xca,0xe3,0xd0,0x98,0x3c,0x0e, - 0x8d,0x5d,0x8f,0x43,0x63,0xf6,0x38,0xa4,0x5a,0xe9,0x65,0xc6,0x9e,0xf1,0xc8,0xb3, - 0x8d,0x45,0xc1,0x12,0x89,0x07,0xd4,0xfe,0xaa,0x67,0xd5,0x9b,0xda,0x7e,0x75,0xc5, - 0x39,0xd1,0xb8,0x11,0xb7,0xe2,0x06,0x32,0x64,0xea,0x84,0x88,0x92,0x22,0x24,0x81, - 0xd5,0x41,0x15,0xc3,0x3c,0x80,0xac,0xcf,0xa7,0x41,0x37,0xa4,0xc7,0xe5,0xf3,0xae, - 0xed,0x98,0xda,0x2d,0x1d,0x07,0xee,0x41,0xb0,0xa1,0xc1,0x0b,0x72,0x43,0x9f,0xd0, - 0x60,0x34,0x5d,0x66,0x94,0xd3,0x73,0x8b,0x1d,0xe5,0xd1,0x04,0xe3,0x78,0x20,0x4a, - 0xde,0x5f,0x35,0x68,0x70,0x9b,0xb8,0xa9,0xc2,0x87,0x11,0x11,0x40,0x95,0x57,0x85, - 0x7d,0x6a,0xe7,0x4c,0xa4,0x84,0x01,0xb0,0x3c,0x07,0xf1,0x58,0x24,0x6f,0x53,0x58, - 0xa9,0xd0,0xc1,0x10,0x55,0xd9,0x28,0x7d,0xc5,0xde,0x0c,0xcd,0x64,0xf1,0x87,0xcc, - 0x8d,0xd8,0x12,0xb3,0x02,0x55,0x1c,0x95,0x72,0xda,0xce,0x31,0x38,0xf7,0x92,0x3b, - 0xbb,0xa8,0x21,0x30,0xf9,0x1d,0x47,0x31,0x06,0x9d,0x75,0xef,0x28,0xde,0x26,0xf4, - 0x3b,0xf4,0xff,0x2e,0xfd,0xff,0x88,0xfe,0x7f,0x4c,0xff,0x3f,0x89,0x33,0x44,0x33, - 0x40,0x78,0x01,0x44,0x43,0x88,0xb7,0xdb,0xf8,0x03,0xc8,0x6d,0x80,0x6e,0xef,0xc6, - 0xc7,0x1d,0x2e,0xd1,0xce,0xf6,0x3a,0x46,0x97,0x3c,0xf0,0xe3,0xab,0xfa,0x71,0x12, - 0x37,0x57,0x42,0x63,0x49,0xae,0xf7,0xa5,0x47,0xd1,0x8b,0xd6,0x57,0xd3,0x69,0x1c, - 0xdb,0x47,0x55,0x8f,0x2f,0xe2,0xd4,0x94,0x6a,0xfb,0xf5,0x1f,0x54,0xc6,0x1f,0x4f, - 0xfd,0x93,0x5e,0x2d,0xed,0x0f,0x94,0x66,0x5c,0xef,0xf8,0x10,0x47,0x7f,0x88,0xcf, - 0xac,0x13,0xe1,0x3a,0x15,0xb5,0xb9,0x59,0x9d,0xe2,0x9c,0x60,0x3a,0x57,0x82,0x4e, - 0x8e,0x1e,0x1d,0xef,0xe1,0x4f,0x1d,0x11,0x2e,0xef,0xc3,0xbe,0x46,0x8e,0x97,0x68, - 0xda,0x2c,0x33,0xa8,0xe8,0x84,0x0a,0x68,0xc8,0xf8,0x4a,0x3d,0xf4,0x42,0x4d,0x7a, - 0x51,0x6d,0x7f,0x6f,0xfe,0x62,0xdc,0xcf,0x29,0xa1,0x72,0xf9,0x3b,0x6d,0xe0,0x4d, - 0x2c,0xe4,0x7f,0xe6,0x20,0x7c,0xcf,0x9c,0xef,0x92,0xd2,0xd4,0xeb,0xd0,0x7d,0x1b, - 0x42,0xe8,0x94,0xb6,0xd7,0x73,0x0d,0xe8,0x0a,0x67,0xa6,0x97,0x28,0xa3,0x2f,0x47, - 0x57,0xaf,0xa9,0x1f,0xe6,0x44,0x52,0xb7,0xef,0xdd,0x41,0xc7,0x73,0x77,0x03,0xd8, - 0x71,0xdc,0x3e,0x26,0x47,0x1e,0x24,0xbe,0x24,0x7d,0xca,0xc7,0xfe,0x4b,0x12,0xa6, - 0x04,0x69,0x7c,0xd5,0x58,0x9d,0xa6,0x3d,0xa2,0x5d,0x28,0xbe,0xc8,0x4d,0x62,0xc9, - 0x83,0x77,0xd6,0x76,0xf3,0xab,0xf4,0x6b,0xae,0x5b,0xea,0xd5,0x6d,0xa9,0x26,0x55, - 0x27,0xee,0x87,0x5c,0xfc,0x0b,0x8d,0xa9,0xf4,0x46,0x2a,0xa9,0x4c,0x8d,0x3f,0xf2, - 0x15,0x1d,0xaa,0x98,0xe6,0xf2,0xf3,0xb0,0x52,0x9a,0x72,0xb9,0x9c,0xf6,0x3d,0xf1, - 0xc7,0x98,0x36,0x0e,0xe6,0x30,0x48,0x6f,0xa1,0x4d,0xd0,0x7e,0x48,0xfa,0xa1,0x07, - 0x18,0xea,0xc1,0x55,0xd6,0xc1,0x98,0xbd,0x17,0xd3,0x88,0xf5,0x22,0x4a,0x5b,0x58, - 0x6a,0xd9,0x8a,0xae,0xf2,0x73,0x09,0xdb,0x12,0x3a,0x44,0xe0,0x93,0x96,0xb8,0x41, - 0xab,0xf4,0x6c,0xfe,0x57,0x40,0xa5,0xdd,0x00,0xcc,0x13,0xf5,0x4c,0x44,0xee,0x44, - 0xcf,0x7d,0x25,0x71,0x83,0x26,0xa5,0xcb,0xbd,0xf7,0xfd,0xc6,0xfb,0x96,0xfe,0x71, - 0xdc,0x5e,0x9d,0x5d,0x31,0xd4,0x1e,0xb2,0xf2,0xcd,0x31,0xbd,0x86,0x05,0xe5,0x12, - 0xee,0x72,0xd9,0x1b,0x61,0xd6,0xe3,0x23,0x32,0x42,0xfc,0xc7,0xf4,0xc0,0xb7,0x98, - 0xe2,0x65,0xfa,0x0f,0xd4,0xcf,0x11,0xce,0xde,0x20,0xc4,0xc3,0xc8,0x1b,0x87,0x00, - 0x53,0xac,0x3a,0x06,0xad,0xb9,0xed,0x25,0x2e,0x4d,0x45,0xe9,0x1e,0x37,0x36,0xe2, - 0xf7,0xf6,0xba,0xdc,0x53,0xb2,0x10,0x7e,0x66,0xfc,0x2c,0xbd,0x37,0xea,0xa6,0xf7, - 0x71,0x8b,0x9e,0x9f,0x36,0x23,0x2e,0x9b,0x3e,0x4a,0x03,0x96,0x7a,0x04,0xf0,0xf1, - 0x62,0x80,0xf3,0x24,0x38,0xd6,0x2a,0x5b,0xe2,0x99,0x2d,0x20,0xee,0x10,0x97,0x8f, - 0x71,0x66,0x64,0xae,0xb1,0x95,0x17,0xa3,0x11,0x29,0xf6,0xe4,0x38,0xcf,0x9c,0x54, - 0x70,0x91,0x24,0xfc,0x00,0x2b,0x56,0x2f,0xdc,0xca,0x05,0xb6,0xa0,0x6b,0xfd,0x4c, - 0x58,0xac,0x07,0xfc,0x92,0x7b,0xc3,0xa1,0x51,0xd8,0x6e,0x6e,0x2e,0xc9,0xd1,0x37, - 0x46,0xba,0x6e,0x41,0x0a,0x4b,0xe9,0x81,0x4e,0x11,0x12,0x73,0x7e,0x75,0x6c,0xa3, - 0x46,0x6a,0x9f,0xb5,0xed,0x8d,0x53,0x87,0x38,0x13,0x40,0x37,0x99,0x18,0x1a,0x67, - 0x1b,0xd0,0x06,0x47,0x5b,0x66,0x63,0xea,0xff,0x53,0xc5,0xb3,0xa7,0x06,0x7e,0x3f, - 0x06,0x9f,0xb1,0xd0,0x62,0x5e,0x7d,0x16,0x85,0xff,0xa0,0x5e,0x8b,0x7a,0xba,0x83, - 0x11,0xe8,0xb2,0x82,0x7e,0xca,0x97,0x80,0x6d,0x2e,0x71,0xdd,0x53,0x07,0xef,0xec, - 0xd3,0x23,0xd9,0xc3,0x00,0xde,0x18,0xec,0x96,0x0a,0x17,0xaa,0x84,0x15,0x2e,0xd4, - 0xec,0x2a,0xea,0x24,0x64,0xeb,0x9e,0x51,0x66,0x47,0x35,0xff,0xa0,0xce,0x8e,0xcc, - 0xe7,0x50,0xb3,0x4a,0xd8,0x3a,0x1b,0xe6,0x6c,0x20,0xda,0xb2,0x4e,0x02,0x34,0x2f, - 0x5f,0x81,0xe0,0xe8,0xd6,0x24,0xa9,0xbf,0x1f,0x0b,0x16,0x02,0xb4,0xe7,0xa1,0x02, - 0x17,0x1e,0x87,0x12,0x5e,0x0c,0x3c,0xc7,0xc9,0x36,0xd7,0xd2,0x35,0xf8,0xb5,0xd5, - 0x5c,0xb6,0xfb,0x7d,0x3f,0x46,0xcb,0x38,0x56,0xb3,0x4e,0x75,0xa6,0x85,0x9c,0xda, - 0xe8,0xa1,0xbe,0xdd,0xfb,0xa2,0xd4,0x0e,0x8f,0x78,0x33,0x4e,0xea,0xb8,0x31,0x0b, - 0xf5,0xb4,0x4b,0x53,0x4a,0x8c,0x3e,0xaf,0x1d,0x1e,0xfb,0xe8,0xcf,0x3a,0x20,0x92, - 0xb8,0x61,0xf7,0x03,0x66,0x02,0x6f,0xc4,0xf6,0xbc,0xf5,0xd3,0x18,0x9e,0x2e,0x5b, - 0x3c,0x84,0xdf,0xf2,0x80,0x2f,0xa1,0x9a,0xa0,0x39,0x05,0x36,0xfe,0x18,0x9e,0xb0, - 0x44,0x46,0xd1,0x23,0x51,0x46,0xb2,0x6a,0xae,0x68,0xc9,0x41,0x61,0x44,0xea,0xf5, - 0xf9,0xa0,0x30,0x86,0xa8,0xc6,0x77,0x3d,0xc8,0xab,0x9d,0x45,0xc3,0x61,0x78,0x70, - 0xf1,0x11,0x71,0x25,0xec,0x26,0xf8,0x41,0x95,0x8d,0x76,0x3f,0x9e,0xbb,0x16,0x3e, - 0x4c,0x1b,0x8c,0x4b,0x75,0xed,0x12,0x8c,0x67,0x4a,0x23,0x64,0x84,0xa8,0x1e,0x41, - 0x10,0x33,0x3a,0x00,0x0a,0x57,0x87,0x16,0x25,0x93,0x3b,0x64,0x79,0x2c,0x86,0x14, - 0x13,0xc7,0x2f,0xed,0x15,0xbc,0x2a,0x26,0xe7,0xbd,0xcf,0xd9,0x3f,0xbc,0x48,0x22, - 0xff,0x30,0x62,0xc2,0xd6,0xfb,0xb2,0xb1,0xb5,0x24,0x0a,0x01,0xc6,0x93,0x85,0x30, - 0xab,0x98,0xb0,0x21,0xe4,0x54,0x92,0xd0,0x19,0x3b,0x28,0x9b,0x9a,0x3e,0x6d,0x7b, - 0xe1,0x89,0x6e,0xeb,0xc2,0x13,0x29,0x55,0xbf,0xb2,0x2c,0x4b,0x3b,0x5e,0xdd,0xf5, - 0xe5,0xf4,0xcc,0xce,0xd0,0xe8,0x38,0x92,0x96,0x13,0x10,0xc5,0x2b,0xa7,0x78,0x98, - 0x34,0x88,0x6f,0x86,0x66,0xfb,0x49,0xdd,0xa5,0xd3,0xbe,0x35,0x41,0x5b,0x58,0xa2, - 0xe3,0xd0,0xfe,0x82,0xb5,0x94,0x5c,0x97,0x9a,0x8b,0x20,0x04,0x72,0x38,0xc9,0x4b, - 0x5f,0x59,0x01,0x44,0x39,0xe1,0x1b,0x82,0x49,0xe0,0xe2,0x86,0xed,0x7e,0x35,0xde, - 0xdd,0x0d,0xb1,0xf3,0xbc,0x20,0xc1,0xcb,0xc7,0x24,0x36,0x38,0x15,0x53,0x86,0x13, - 0x28,0x42,0xda,0x29,0xe1,0x97,0xfd,0x43,0x41,0x10,0xea,0xc0,0x96,0x4b,0x33,0xcc, - 0x7d,0xfa,0xa8,0x4d,0x73,0xb8,0x36,0xd3,0x3c,0xa3,0x8c,0x29,0xbe,0x6b,0x36,0xbb, - 0x77,0x03,0x2a,0xc9,0xe3,0x71,0x03,0xc9,0xea,0x10,0xf6,0x49,0x3b,0x65,0xd6,0x68, - 0xcb,0x11,0x87,0x5c,0x50,0xe0,0xb5,0xc0,0x8f,0x00,0x2c,0x7c,0x74,0x1b,0x27,0xe4, - 0xa5,0xee,0x40,0xca,0x6a,0xff,0x41,0xf3,0x0c,0x35,0x4f,0xf2,0xfe,0xa0,0x91,0xe2, - 0xb7,0xf5,0x6d,0xb5,0x03,0x79,0x30,0x4a,0x5d,0x41,0xd3,0x6e,0x77,0x75,0x4b,0x83, - 0xbd,0x83,0x01,0x45,0xfa,0x9a,0x66,0xc5,0x7c,0xd7,0xa7,0x42,0x95,0x5a,0xad,0x52, - 0x73,0x44,0xfb,0x5e,0xe5,0x43,0x06,0xc3,0x99,0x7e,0x8e,0x24,0xb3,0xa7,0x27,0x19, - 0x89,0xd3,0x5a,0x34,0x94,0xe6,0x2f,0x4d,0x63,0xc4,0x99,0xe9,0x48,0xf4,0x19,0x51, - 0x93,0x6e,0x80,0xbb,0x61,0x00,0xb5,0x00,0xfa,0x46,0x36,0x6e,0x5d,0x4e,0xf4,0x3e, - 0xc9,0x87,0x5b,0xed,0x41,0xfc,0x29,0xe8,0x45,0x10,0xcd,0xd0,0x79,0x50,0xa7,0xe5, - 0x6e,0x73,0x69,0x4c,0x00,0xfd,0x4c,0x4b,0x5d,0x85,0x90,0x98,0xad,0x26,0x93,0x77, - 0x99,0x69,0x4b,0xbc,0xa6,0xd3,0x7f,0xe6,0x1c,0xf9,0x35,0xd7,0x9d,0xa5,0xcb,0x38, - 0xca,0xc8,0x9c,0x43,0x36,0x9d,0x33,0x41,0xa5,0xbe,0xd4,0xb7,0x2f,0xb0,0x62,0x73, - 0x93,0x11,0xd1,0x42,0xa0,0xb7,0xb3,0x94,0xbd,0xa2,0x8a,0x71,0x04,0x47,0x82,0x45, - 0x30,0x47,0x38,0x3b,0xca,0x70,0xd3,0xa4,0x9f,0x78,0x62,0xc0,0xb6,0x12,0x0e,0xc8, - 0x50,0x10,0x66,0xc6,0xc1,0x18,0xf3,0x41,0x08,0x25,0x8e,0xa7,0x89,0x13,0xc6,0x9c, - 0x4b,0xbd,0xc6,0x73,0x32,0x2d,0xfc,0x92,0xba,0x2e,0x1f,0xac,0xc5,0x20,0xd5,0x2d, - 0x65,0x55,0x33,0x32,0x96,0x4f,0x54,0xee,0x0b,0x3c,0xce,0xcb,0x33,0x7a,0x6b,0xae, - 0x9e,0x89,0xf7,0x62,0x5a,0x34,0x2e,0x8d,0xcb,0x27,0x5e,0x10,0x2f,0xc6,0x17,0x25, - 0xa4,0xd4,0xc4,0x80,0xc9,0xfe,0x98,0x00,0x55,0x84,0x05,0xb0,0x5e,0x00,0x81,0xfd, - 0x0b,0x49,0x2d,0x22,0xd4,0xa2,0x88,0x90,0xc5,0xb2,0x81,0x0e,0x58,0x2c,0x1a,0x90, - 0x6a,0xdb,0xac,0xbd,0x04,0x25,0x3a,0x5b,0x68,0x04,0xca,0x22,0xbc,0xd6,0x7c,0x0c, - 0x42,0xbc,0x52,0xe5,0x98,0x6b,0xed,0x6d,0x3f,0xee,0x8c,0x51,0xb8,0x5b,0xd7,0x70, - 0x55,0x4b,0xaa,0x31,0x5e,0x4d,0xcc,0xfe,0x82,0xc8,0xb2,0x18,0x61,0xd1,0xd5,0x66, - 0xd4,0x42,0xbf,0x73,0x56,0x1c,0x19,0x7c,0x74,0xa6,0x9a,0xfb,0x8b,0x95,0x8c,0x74, - 0x01,0xaf,0xbc,0x66,0xba,0x2b,0xa0,0xe7,0xb1,0xf7,0x3c,0x07,0x79,0x02,0x5d,0x33, - 0xf9,0x22,0x90,0x9b,0x9d,0x19,0xe0,0xb3,0x9f,0x67,0x61,0x1d,0xbf,0x23,0xf4,0x89, - 0x94,0xa6,0x04,0xd2,0x95,0x86,0x5f,0xe5,0x1b,0x82,0xb1,0x35,0x72,0x2f,0x1c,0x40, - 0xf9,0xd1,0x04,0xee,0x1e,0x68,0x94,0x37,0x44,0x04,0x78,0xd8,0x90,0x1c,0x7b,0xf1, - 0xd3,0x0b,0x0a,0x0f,0x80,0xf2,0x10,0x1c,0x80,0x9e,0x79,0x8c,0xa5,0x0d,0x94,0x21, - 0xe1,0x02,0x20,0x2a,0x16,0x34,0x34,0xc9,0x7f,0xd8,0xc0,0x04,0x88,0xc3,0x6b,0x2a, - 0xd1,0x05,0x34,0x44,0xb7,0xc4,0x14,0x90,0x91,0x4b,0x5c,0x72,0x43,0xba,0x75,0xf1, - 0xbe,0xca,0xb5,0x1c,0x7f,0xb4,0xbb,0xd1,0x76,0xd8,0x78,0x6f,0x49,0xc8,0x60,0x7f, - 0x85,0xdf,0xb8,0x7c,0x8f,0x5a,0xe5,0xc7,0xfa,0x50,0x36,0x15,0x0b,0x49,0xe9,0x39, - 0xa0,0xae,0x62,0x5a,0x10,0xf1,0x45,0xea,0xa3,0x18,0x4d,0xc6,0xd2,0x86,0x50,0xaa, - 0x11,0x90,0x90,0x42,0xb7,0x94,0x27,0x14,0xbd,0xf1,0x2a,0x5d,0x4a,0x49,0x6e,0xd8, - 0x90,0xa3,0x43,0x23,0xaf,0x07,0x31,0x30,0xbe,0x95,0xe9,0x2a,0x5c,0xfc,0x51,0xc5, - 0xbe,0x3d,0x07,0x40,0xa7,0xf2,0x97,0xb6,0xee,0x86,0x21,0x4d,0x49,0xa4,0x0e,0x9f, - 0xf4,0xc9,0x05,0x5d,0xbb,0xe3,0xc3,0x37,0xb7,0xd3,0x4e,0x62,0x60,0x1a,0xfd,0x46, - 0x80,0xec,0x3f,0xfc,0x77,0x60,0x55,0x9e,0x85,0x34,0x3d,0x67,0x67,0xbf,0x89,0x32, - 0xa8,0xc8,0x4d,0x56,0x9a,0x61,0xba,0x20,0xb3,0xf0,0x82,0x21,0x0f,0xc6,0xd3,0xdc, - 0x1d,0x23,0x84,0x8e,0x92,0x64,0xa0,0xb0,0x70,0xd0,0xa5,0x57,0x2b,0x48,0x02,0x17, - 0x69,0xcc,0x79,0xa4,0xe8,0x98,0xeb,0xaa,0xf5,0xf3,0xac,0x68,0xca,0x4c,0xd0,0x89, - 0x7a,0x2a,0xe9,0x8a,0x73,0xd5,0x79,0xef,0x13,0x8b,0xc7,0x11,0x59,0xc9,0x40,0x6b, - 0x22,0xfe,0xbe,0x48,0xa4,0xc7,0xa9,0x34,0x97,0x55,0xfa,0xb5,0x80,0xe8,0x42,0xaa, - 0xad,0xa4,0x9e,0xb5,0x37,0x55,0xd1,0x2b,0xf9,0x8e,0x49,0x4a,0xd9,0xc9,0x2b,0xa5, - 0xe5,0x8c,0x49,0xf5,0x87,0x2c,0x42,0x3c,0xd6,0xcc,0x15,0x35,0x82,0x5c,0x36,0x3c, - 0x9d,0x2a,0x4f,0x89,0x3f,0x60,0x91,0xce,0x27,0xab,0x05,0xad,0x31,0x75,0x79,0x51, - 0xed,0x8c,0x9f,0x52,0x7e,0x43,0x2b,0xc5,0xb4,0x7a,0x0a,0x1e,0x57,0xaf,0xf8,0x84, - 0xdb,0x53,0xcf,0xe7,0xc9,0x18,0x6b,0x29,0x3e,0xda,0x84,0x94,0xf4,0xc7,0xdd,0x0d, - 0x14,0x0f,0x38,0x9d,0x2e,0x9c,0xe0,0x5c,0x16,0xf3,0x33,0xaa,0x4f,0xc5,0xad,0x9a, - 0x7a,0x01,0x03,0xa6,0x3d,0x7f,0xee,0xb2,0x3c,0x12,0x47,0x80,0xee,0x58,0xac,0x8d, - 0xc8,0x3d,0x9a,0x60,0x19,0xa1,0x9d,0x4c,0x10,0x95,0xbb,0xb8,0xc4,0xac,0x03,0xd8, - 0x1f,0xe5,0x14,0x36,0x49,0x41,0x62,0x88,0xef,0xfe,0x11,0xbe,0x67,0x75,0x11,0xbe, - 0x31,0x3b,0x48,0x17,0x98,0x69,0x9f,0x76,0xaa,0xd0,0x98,0x55,0xd1,0x87,0x06,0xc2, - 0x22,0x7f,0xc6,0x81,0x80,0x82,0xbd,0x96,0x74,0x31,0xe9,0xd8,0xe5,0xfc,0x48,0x1f, - 0xaa,0x61,0x89,0xb3,0x09,0x86,0xab,0xbe,0x4c,0x35,0xab,0x70,0x3d,0xc8,0xf1,0xec, - 0x49,0xdb,0x82,0x92,0x8f,0xf7,0xb3,0x79,0x38,0x70,0x82,0x4d,0x14,0xc1,0xe9,0x3c, - 0xb2,0x6a,0x48,0xa2,0x8e,0x41,0x31,0x6e,0x4c,0x7c,0x83,0xfc,0xa9,0x74,0xf3,0x16, - 0x9f,0x65,0xe5,0xd5,0x30,0xee,0x6a,0xd9,0x01,0x86,0x5b,0x25,0xaa,0x91,0xf7,0x03, - 0x34,0x9a,0xa3,0xed,0xa6,0x3f,0x0b,0x11,0x70,0x69,0x5a,0x2b,0x3b,0x6b,0x54,0x24, - 0xdc,0xca,0x3e,0xc1,0x7e,0x09,0x98,0x8c,0xa0,0x8d,0xde,0x1a,0x2a,0x43,0xc5,0x52, - 0x5e,0xcd,0x76,0xe4,0x3d,0xf6,0x06,0xa9,0xd4,0x98,0x07,0x7a,0x5b,0x98,0xe3,0x2e, - 0x27,0x63,0xea,0xff,0xb7,0x72,0xf9,0x83,0x5a,0x12,0xf1,0x16,0xfc,0xde,0x1e,0xf6, - 0x31,0x0d,0x0e,0x67,0xfb,0x98,0x5b,0x0b,0x1d,0x12,0xe8,0xad,0x77,0x21,0x82,0x95, - 0xc0,0xcc,0xc3,0xe3,0x5c,0x72,0xb1,0xd5,0xca,0xe8,0x76,0xce,0xbd,0xd0,0xf1,0x1c, - 0x1b,0xd2,0xf5,0xd3,0x60,0x7e,0x3f,0x62,0x48,0xe8,0xaa,0x19,0x87,0x72,0x54,0x80, - 0xb1,0x43,0xdf,0xe5,0xb0,0x0d,0x72,0x15,0x4d,0xae,0x71,0xed,0x20,0xed,0xda,0x99, - 0xd7,0xce,0x0a,0x9a,0xeb,0x39,0x22,0x23,0xff,0x36,0x8d,0x17,0x0b,0xfb,0xfa,0x23, - 0xca,0x34,0xe5,0xf4,0xf3,0x20,0x7d,0x6f,0xbb,0x83,0xee,0x5e,0x57,0x0e,0x90,0xba, - 0x9a,0x88,0xd4,0x2e,0xa6,0x5d,0x74,0x9a,0x60,0x60,0x04,0x8e,0xc4,0xb9,0x9c,0x17, - 0xd0,0x1e,0xa1,0xec,0xfb,0xe0,0xdf,0xdc,0xbc,0xe7,0x5a,0xc0,0x99,0x4e,0x46,0x03, - 0x20,0xa9,0x29,0xb3,0xa4,0x73,0x9c,0x02,0x85,0x86,0xf4,0xd7,0x0b,0x83,0x10,0xb8, - 0xa5,0x2b,0x43,0x22,0xb4,0xfd,0xcc,0x47,0x2d,0xb8,0x87,0xca,0xd8,0x57,0x31,0x91, - 0x4b,0x95,0x3a,0x9d,0xcf,0x86,0xd4,0x12,0xf5,0x0d,0x65,0x95,0xee,0xb7,0x1b,0xf7, - 0xe9,0x1f,0xac,0x54,0xae,0xeb,0x1d,0xa7,0x27,0xe8,0x1e,0x84,0x6e,0xca,0x0a,0xd1, - 0x1f,0x71,0xa8,0xbf,0x10,0x8d,0x92,0x9f,0x6a,0x66,0xa1,0x13,0x4f,0x7c,0xc0,0x41, - 0x46,0x7e,0x7a,0xd2,0xa2,0x79,0x19,0x30,0x49,0x8c,0x84,0x38,0x85,0x9e,0x5c,0xe0, - 0xb7,0x8e,0xde,0xcf,0xde,0x8f,0x8f,0xcd,0xd6,0x00,0x5f,0x53,0x45,0x50,0xdb,0x70, - 0x42,0x13,0x2e,0x61,0xb1,0x84,0x33,0x2b,0x0b,0xce,0xa4,0x1f,0xe0,0x9a,0x23,0xb7, - 0x5c,0xe5,0x32,0x38,0xb1,0x35,0x9f,0x0d,0x46,0x68,0x67,0xe4,0xb5,0xf3,0x13,0xbd, - 0xe0,0xbc,0x8b,0x41,0x1a,0xe6,0xad,0xeb,0xb5,0x8a,0x44,0xfe,0xf0,0x72,0x05,0x3a, - 0x3e,0xda,0x5f,0x22,0x84,0x98,0xaa,0xe4,0x9a,0x4d,0x91,0x69,0xc0,0x51,0x56,0x8c, - 0xc3,0x65,0x79,0xa5,0xd8,0x6b,0xc5,0xde,0xc0,0x71,0xf0,0xe6,0x38,0xe2,0xbe,0x71, - 0xca,0x56,0x72,0xc2,0x65,0x38,0x98,0x13,0xd1,0xd2,0xc6,0x81,0x37,0x72,0x84,0x4b, - 0x99,0xcf,0x26,0x69,0x53,0xdd,0xc5,0x23,0x49,0x95,0x63,0x68,0x86,0xc5,0xfb,0xd9, - 0xe2,0xfd,0x78,0xab,0x46,0xa2,0xb6,0xfa,0xab,0x61,0x4e,0xcf,0x86,0x9b,0xd2,0x84, - 0xc3,0xc5,0x62,0xa8,0x42,0x48,0x9b,0xad,0x62,0xfe,0x14,0x6b,0x1b,0x46,0xe1,0xbf, - 0xad,0x2d,0xb9,0x25,0x24,0x46,0x45,0xe0,0x0a,0x35,0x6f,0xb9,0x31,0xcc,0x87,0x8e, - 0x28,0x95,0xec,0x75,0x8e,0x9e,0x7d,0x73,0xbc,0xd0,0xcb,0x1f,0xef,0xcb,0x6f,0xe9, - 0xfd,0x4f,0xc7,0x69,0xa5,0x2c,0x03,0x9e,0xf9,0x64,0xc8,0xde,0x55,0xa2,0x9e,0xf0, - 0xba,0x2f,0x96,0x7f,0xa7,0xb3,0xc1,0x74,0xce,0xd2,0x8e,0x55,0x34,0x0c,0x7d,0xe3, - 0x0f,0x4a,0x77,0xaf,0x80,0xbd,0x7b,0x79,0xf0,0x0b,0xec,0x68,0xb7,0xfe,0xce,0x77, - 0x79,0xbe,0xa1,0x22,0xf8,0xa1,0xac,0xf1,0xb1,0x56,0x73,0xbf,0xc7,0x35,0xf1,0x74, - 0xef,0xfa,0x00,0x61,0xe5,0x43,0x8e,0x70,0xca,0x46,0xde,0x77,0xc8,0xa9,0x3a,0x64, - 0x49,0x06,0x0e,0x93,0xd1,0xc9,0x55,0x0f,0x90,0xa8,0x73,0xb8,0x85,0x3a,0x93,0x4b, - 0x09,0x9a,0x13,0xcb,0xd0,0xe3,0x1c,0xe0,0xad,0xef,0x40,0x02,0xeb,0x1b,0xdf,0x81, - 0xa5,0x75,0x1e,0x58,0x94,0xec,0x4c,0x5f,0x4f,0x38,0x3c,0xdf,0x81,0xa5,0xc1,0xe1, - 0x1b,0x32,0x83,0x4f,0x48,0x29,0x97,0x4c,0x99,0x59,0x73,0x16,0x49,0x88,0xa2,0x04, - 0x36,0x6a,0x0b,0x32,0x88,0xa1,0xc6,0xa3,0x0c,0x26,0x40,0x90,0x18,0x58,0x60,0xa8, - 0xf8,0x6e,0xe0,0xfb,0xe4,0x6f,0xc7,0x41,0x11,0x84,0x37,0xf2,0x30,0xcc,0x97,0x22, - 0x1a,0x6c,0xb9,0x56,0x1b,0x5e,0x24,0x02,0x94,0xc4,0x96,0x7d,0x0a,0x4a,0xaa,0x7f, - 0xfa,0x28,0x8d,0x57,0xa8,0xf7,0xff,0xd1,0x45,0xa9,0x41,0xfa,0x2c,0x09,0x6c,0x87, - 0xe9,0x15,0x3c,0x0b,0xcc,0x66,0x81,0xbc,0x17,0x5d,0xcd,0xe0,0xf7,0x8a,0x47,0xae, - 0x6c,0x67,0xa4,0x6a,0xda,0x0a,0xea,0x44,0xc2,0xc1,0x0c,0xb3,0xda,0xa5,0x1a,0x9d, - 0xa9,0x91,0xed,0xbf,0x82,0x55,0x35,0x3e,0x21,0xd6,0xf0,0xe6,0x8d,0xa5,0x81,0x8c, - 0x95,0xdf,0x63,0xed,0xe7,0x1c,0x66,0x00,0x96,0x2b,0x3a,0x74,0x68,0x2f,0xf7,0x6e, - 0x50,0x7e,0x2a,0x65,0xce,0xd1,0xb0,0xf8,0xc5,0x98,0x22,0x1a,0x54,0x4a,0x42,0x7c, - 0x5a,0x9e,0x4a,0x4e,0x09,0x5a,0x47,0x5d,0xf8,0xd5,0x86,0xbd,0xa4,0x89,0x4f,0x96, - 0x04,0x04,0x57,0x7c,0x00,0xcc,0x47,0x33,0xb6,0x37,0xb9,0xb1,0xcf,0x64,0x3e,0x53, - 0x8d,0x70,0x24,0x60,0xa9,0xab,0x1b,0xe8,0x96,0xea,0x60,0xae,0xd4,0xe9,0x90,0x7a, - 0x46,0xee,0xcc,0xc4,0xcf,0x8c,0x73,0x73,0x9e,0xde,0xf0,0x31,0xc5,0x47,0x81,0xd0, - 0x5d,0x95,0x01,0xd1,0x5b,0xb4,0x60,0x45,0xee,0xf3,0x24,0x23,0xcd,0x5a,0x1e,0xcc, - 0xef,0xdd,0x15,0x36,0x07,0x19,0x34,0x4a,0x77,0x58,0x0c,0x10,0x88,0x63,0x33,0x10, - 0x23,0x33,0x62,0x5b,0xc6,0x46,0x89,0x7c,0x47,0xf6,0x73,0x37,0x2f,0x82,0x50,0x9e, - 0x7b,0x06,0x07,0x44,0xeb,0x1e,0x2e,0x61,0x71,0xd3,0xeb,0x62,0xb5,0x17,0x77,0x12, - 0x93,0x58,0x94,0xd0,0xbb,0x69,0x6d,0x82,0xb3,0x2a,0xea,0x5a,0xd4,0xab,0x8a,0xd9, - 0x9e,0x92,0xe9,0x1a,0x2d,0x68,0x8c,0xfe,0x2b,0x0d,0xdc,0xef,0x2e,0xa5,0xe6,0x57, - 0x72,0x95,0xf3,0xcf,0xc3,0x02,0x22,0xbc,0x86,0x88,0x4c,0xe2,0x66,0x93,0x24,0xd6, - 0xe4,0xaa,0x81,0xf0,0x6f,0x34,0x2a,0xd3,0x95,0x7d,0x4a,0xf5,0x3d,0x77,0x1a,0x5e, - 0xf4,0x5d,0x3e,0x0c,0xc7,0x86,0x7b,0xe3,0x95,0xb9,0x4a,0x14,0x3a,0xf6,0x78,0xc5, - 0x91,0xa4,0x49,0x8a,0xed,0x7d,0x4e,0xae,0x9a,0xa6,0x52,0x83,0xc6,0xb6,0x56,0x86, - 0x9e,0x34,0xc8,0x0d,0xa2,0x18,0xf2,0x27,0xe2,0x56,0x44,0x45,0xf5,0x3d,0xce,0xd0, - 0xc6,0xdc,0x4f,0x08,0x68,0x38,0xa4,0x32,0x61,0xdf,0x41,0x43,0xa0,0x86,0xaf,0x7d, - 0xe9,0xe9,0xda,0x45,0xf5,0xc0,0xe6,0x8e,0xea,0xcf,0xdd,0xea,0x5f,0x11,0x49,0x73, - 0xaf,0x6a,0xf1,0x1b,0xb8,0x91,0xb3,0x37,0x24,0xe3,0x86,0xe9,0xe7,0x8d,0xd8,0x9c, - 0x3b,0xd2,0x7c,0xab,0x8e,0x9d,0xfb,0x32,0x7f,0x17,0xbc,0x86,0x49,0xcc,0x16,0x4c, - 0xdf,0x50,0xc7,0xc7,0xcb,0xf4,0xce,0x55,0x33,0x8c,0xb1,0xa2,0x1d,0x40,0x77,0xef, - 0x77,0x50,0x3d,0x0b,0xa9,0x9e,0xf9,0x54,0xff,0xfe,0xfc,0xdd,0xeb,0x97,0xaf,0xff, - 0xd2,0x91,0xa0,0x22,0x71,0x43,0x8a,0x90,0x36,0xe8,0xf2,0x2c,0x0f,0xe5,0x64,0x1d, - 0x55,0x33,0x50,0x55,0x6b,0x85,0x41,0xb3,0x0e,0xe4,0x71,0x5a,0xb8,0x8c,0xcc,0x88, - 0x0b,0xd6,0xde,0x2c,0x66,0xe6,0x18,0x5a,0x8a,0x65,0x91,0x59,0x54,0x8b,0xbd,0x5a, - 0xa1,0x12,0xd4,0x6d,0xaa,0x67,0x91,0x77,0xd4,0x71,0x1a,0xd6,0x71,0xba,0xa2,0x8e, - 0xe2,0x85,0x37,0x9c,0xd3,0xa5,0xc1,0x3a,0x2c,0x81,0x06,0x26,0x1f,0x4d,0x7d,0x23, - 0xdb,0x0f,0x39,0x50,0xd6,0x98,0x2c,0xb2,0xe6,0xd2,0x81,0xf4,0x45,0x89,0x3b,0x89, - 0x6a,0x3b,0xc2,0x0c,0xd0,0x5b,0x4c,0x72,0x69,0x03,0x17,0x6c,0x8a,0x3a,0x06,0x4e, - 0xab,0xcb,0xf4,0x27,0xf3,0x71,0x79,0x47,0x1d,0x01,0xe2,0x56,0x13,0xef,0x66,0x04, - 0x7e,0x9c,0xac,0xcc,0x2b,0x77,0x76,0x28,0xfb,0xc7,0x89,0x9b,0xf9,0xe3,0x84,0xb2, - 0x52,0x52,0xdd,0x34,0xa6,0x13,0xd7,0xaa,0x29,0xab,0x0a,0x2e,0x72,0x8f,0x52,0xc7, - 0x93,0x20,0x9e,0x57,0x8f,0xce,0xd9,0x87,0x54,0x36,0xa8,0xf7,0x78,0xf1,0x71,0x22, - 0x55,0xf4,0x47,0x39,0x12,0x03,0xa6,0x01,0xc8,0x95,0xd1,0x21,0x4d,0x0e,0x2b,0x09, - 0x1d,0x5f,0x55,0x3d,0x6e,0xe8,0xbc,0x8b,0xb1,0x65,0xd0,0x79,0xca,0x65,0x6b,0xb2, - 0x90,0x06,0xde,0x28,0x80,0x7f,0x93,0x71,0xa5,0xa5,0xcb,0xc7,0xfe,0xeb,0x9d,0x3a, - 0xbb,0xae,0x20,0x60,0xb5,0x5c,0xee,0x6b,0x3a,0x50,0x21,0x6d,0x8e,0xb1,0x09,0x80, - 0xd3,0xd1,0x97,0x95,0x0d,0x03,0xa8,0xb4,0x6b,0x4c,0x79,0x00,0x82,0x32,0xc6,0xeb, - 0xca,0x30,0xed,0x31,0x94,0xe9,0x68,0x6c,0xf6,0x62,0x08,0x48,0x57,0x82,0x5d,0xf1, - 0x2a,0xcb,0xb1,0x65,0xf3,0x3a,0xe2,0x50,0xda,0xbd,0xcb,0x2a,0xce,0x47,0x06,0x15, - 0x0f,0xb5,0x91,0x75,0xee,0xa1,0x76,0x18,0x91,0x39,0x91,0x83,0x4b,0xc1,0x92,0xa6, - 0x46,0xbd,0x9b,0x34,0xa2,0x3f,0x38,0xc5,0x22,0x1a,0x03,0xb9,0x44,0xb5,0x0a,0x2c, - 0xfe,0xa8,0x51,0xd3,0x7a,0x55,0x7c,0x86,0x29,0xd9,0x6a,0xc3,0x74,0x53,0x16,0xec, - 0x0f,0xb1,0x45,0x03,0x60,0x85,0xcb,0x53,0x6e,0x3a,0x7a,0x39,0xb3,0x25,0x67,0xa4, - 0x79,0x2e,0xc1,0x2d,0x48,0xe7,0x60,0xdf,0x69,0xd8,0xdc,0x58,0xbd,0x82,0xdd,0xc6, - 0xda,0x3c,0x6c,0x51,0x65,0xb3,0xec,0x21,0x83,0x9a,0x75,0xb9,0xf0,0x95,0xa4,0x74, - 0x04,0xd0,0xe3,0xd4,0x6e,0xad,0xad,0x80,0x26,0x9f,0x6c,0x36,0xd3,0x29,0x34,0x39, - 0x60,0xdf,0x0f,0xc4,0x2d,0xea,0x6f,0xc4,0x3e,0xe5,0x1d,0x4d,0x06,0x61,0x73,0x69, - 0xd0,0x44,0xfd,0xd4,0xe2,0x4f,0x1f,0x27,0xe1,0x27,0xb0,0x0c,0x07,0x41,0x46,0xcd, - 0xc1,0x5b,0x82,0x5f,0x0b,0xf2,0xa6,0x90,0xc4,0xb4,0xed,0xe2,0x3b,0x0b,0x9d,0x33, - 0x70,0x2f,0x4e,0xe5,0x63,0x51,0xa6,0xf7,0xb1,0xac,0xb1,0xbd,0xba,0xde,0xc6,0x4d, - 0x0e,0x2e,0x38,0x49,0x21,0x6d,0xfd,0xb5,0x92,0x12,0x08,0x4b,0xad,0xda,0x54,0x00, - 0x2d,0xfe,0x31,0x20,0xf3,0x80,0x4f,0xef,0x8a,0x7f,0xbc,0xec,0x6b,0xa2,0xd8,0x3b, - 0xe5,0xbe,0xba,0xc2,0x95,0x73,0xb7,0xf7,0xe2,0x99,0x19,0x90,0xed,0xad,0x60,0x48, - 0xca,0x78,0x95,0xf1,0xe8,0x06,0xfe,0xe2,0xbb,0x3b,0x37,0x5c,0x5e,0x87,0xff,0x32, - 0xc6,0x0e,0xfe,0xd4,0x85,0x02,0x43,0x67,0xa3,0xe1,0x93,0x58,0xd0,0xac,0x9d,0x31, - 0x61,0x78,0x68,0xaf,0x8a,0xe8,0xb5,0xe1,0x86,0xf4,0xca,0xab,0x90,0x5e,0x37,0xca, - 0x04,0xb6,0xbb,0x49,0xbb,0x82,0xc8,0x4e,0x96,0xca,0x2b,0xce,0x2d,0x1f,0x29,0xf3, - 0xa3,0xf6,0x23,0xce,0x49,0x56,0xaf,0x89,0x24,0x8a,0x4b,0x6c,0x6b,0xce,0x77,0xde, - 0xc3,0x7e,0x47,0x6f,0x22,0x45,0x34,0x25,0x70,0x33,0xd7,0xcf,0x28,0xab,0x8b,0xf9, - 0x33,0xe9,0xe5,0x5a,0x5c,0x53,0x3a,0x13,0xe0,0xdf,0xa5,0x72,0x9f,0x03,0x5f,0x31, - 0xd3,0x89,0xc2,0x89,0xf5,0xa8,0x2d,0x41,0x65,0x72,0x78,0xc7,0x88,0x4d,0x55,0x87, - 0x9f,0xd7,0x15,0xd8,0x5e,0x2c,0xdc,0xf7,0xed,0xdd,0xb0,0x3c,0xe5,0x21,0xc7,0x22, - 0xd3,0xa8,0x97,0x27,0x36,0xa2,0xa5,0x8b,0xfc,0x3e,0x4d,0xa5,0x8b,0x7d,0xd5,0x4f, - 0xf3,0x1b,0x73,0x91,0x1e,0x77,0x63,0xa8,0x52,0x1d,0xd8,0x97,0xcc,0xca,0xc9,0x8c, - 0x1e,0x70,0x65,0x07,0xbf,0x53,0xc2,0x4a,0x35,0x93,0x1b,0x31,0xd8,0x1d,0xb2,0xb1, - 0x76,0xf6,0xc7,0xe4,0x44,0x1e,0x0a,0x44,0xac,0x2d,0x3b,0xed,0xe0,0xb2,0x8c,0x14, - 0xc0,0x51,0x75,0xd0,0x93,0x78,0x3e,0xb2,0xfa,0x73,0xf3,0xb9,0xc5,0x85,0x10,0x5d, - 0x36,0xc5,0x10,0xe4,0xdb,0x14,0x13,0x69,0x79,0xdb,0x79,0x17,0x22,0x29,0xc9,0xc9, - 0x48,0x04,0xe5,0x20,0xa8,0xde,0x14,0x59,0x93,0x84,0x5a,0xe4,0x0c,0x3a,0x63,0x30, - 0xd6,0x05,0x1c,0x42,0xbc,0x2e,0xec,0x98,0x56,0xf0,0x68,0x67,0xf5,0xfa,0xcd,0xe0, - 0x57,0xd8,0x9e,0xa3,0x08,0x8f,0xfa,0xc5,0xc2,0x7f,0x6f,0xc1,0x64,0x78,0xcc,0xfb, - 0x8a,0xd4,0xaf,0xa6,0x6f,0x05,0x1b,0xab,0x88,0x84,0x20,0xf0,0x70,0xe5,0x95,0x7b, - 0xd0,0xae,0x7c,0xd1,0xc0,0xb3,0xd5,0xde,0xbd,0x9f,0x6d,0x7d,0xb4,0xd9,0xc1,0x53, - 0x8f,0xc3,0xf0,0xb1,0x43,0x8e,0x43,0x72,0x7a,0xdc,0xdc,0xa4,0x3f,0x2d,0x56,0x73, - 0xe2,0x81,0x0d,0x40,0x8e,0x65,0x15,0xab,0xb9,0x6a,0x87,0x48,0x43,0xcc,0xf3,0x7a, - 0x2a,0x72,0xc1,0xbb,0xa7,0xf4,0x76,0xf4,0xc1,0x6c,0xd9,0xd9,0x1b,0xd3,0x93,0xfb, - 0x1b,0xc0,0xd7,0x37,0xa7,0x4e,0xcb,0xf5,0xcb,0x34,0xd2,0xd6,0xee,0x15,0xb0,0x73, - 0xa4,0x1e,0x41,0xc5,0xc3,0xcd,0xeb,0x8c,0xaa,0x59,0xf0,0x13,0x81,0xe8,0x9c,0x0c, - 0xbb,0x04,0xb3,0x1c,0x90,0xd7,0xea,0xdb,0xd4,0xb5,0x06,0xa7,0xae,0x87,0xcb,0xc0, - 0xe6,0xe4,0xbc,0xb8,0x3e,0x65,0x21,0x23,0x6e,0xf8,0x79,0x1a,0x31,0x8d,0x70,0xda, - 0x7e,0x74,0xd7,0xcc,0x5d,0x66,0xd7,0xf3,0x60,0x69,0xd4,0xa4,0x4b,0x29,0xce,0xaa, - 0x12,0xac,0x41,0xc1,0xd0,0xb9,0xa9,0x16,0x02,0xbd,0x25,0x96,0x71,0x93,0x76,0xda, - 0x66,0x62,0x60,0x45,0x26,0xb5,0x0c,0x9d,0x04,0x14,0x2d,0xd2,0xeb,0x41,0x0a,0xb3, - 0x38,0xe0,0x4c,0x24,0x58,0x31,0x83,0x6f,0x37,0x2b,0x7a,0x94,0x12,0xba,0x44,0xba, - 0xf6,0x60,0xe6,0x57,0x5e,0xd3,0xd9,0xba,0x1b,0x78,0xc6,0xdc,0xd0,0x68,0x78,0x73, - 0x45,0x17,0xe9,0x86,0xde,0xdc,0xd2,0x1b,0x9a,0x90,0x6f,0xfd,0x9d,0x9d,0xe1,0xbc, - 0x2f,0x35,0x8a,0xae,0x29,0x2b,0xdd,0x33,0x5e,0x72,0xbe,0x35,0xff,0xe2,0x8e,0x7e, - 0x01,0x8a,0x70,0x76,0xf1,0x16,0x58,0x6d,0xc9,0x38,0xab,0xa6,0x56,0xf3,0xcb,0x6c, - 0x34,0x04,0x67,0x06,0x9f,0xe2,0xad,0x59,0x7b,0xa5,0x87,0x86,0xad,0x99,0xe7,0x4b, - 0x2d,0xcd,0xb3,0x7e,0xfd,0x4a,0xbc,0x02,0xcb,0x03,0x8b,0xc5,0xe9,0xfa,0xba,0x14, - 0x3d,0xc3,0xca,0xb4,0xb9,0xa9,0xaf,0x4f,0x1f,0x07,0xeb,0xd4,0xe3,0xf6,0x6e,0xd8, - 0xab,0xbd,0x85,0x4a,0x3b,0xb8,0x86,0x69,0x46,0xb7,0x5d,0x5e,0xfa,0xd2,0x1b,0xaf, - 0xc5,0x28,0xb0,0x63,0xed,0x4c,0xee,0x4e,0xd1,0x72,0xe0,0x1c,0xae,0x2d,0xde,0xe9, - 0x61,0x0d,0x53,0xea,0xbb,0x24,0xbe,0xdf,0xbd,0x2c,0xd5,0x0f,0xb2,0xc5,0xc2,0x26, - 0x99,0xc5,0xd1,0x5b,0x13,0xd6,0x74,0xe8,0xa5,0x8c,0x26,0x24,0x39,0xf5,0x9c,0xa0, - 0xff,0xec,0x29,0x96,0xb8,0x21,0x93,0x0c,0x39,0xa0,0x83,0xb5,0xfe,0x64,0x8c,0x8d, - 0xa3,0x36,0x5f,0x23,0xde,0x64,0x45,0x39,0x41,0x85,0x8b,0x63,0x76,0x63,0xbc,0x5d, - 0x74,0xa8,0x01,0xdb,0x70,0xa2,0xb8,0x14,0xd3,0xb2,0x86,0x1c,0x89,0x47,0x7e,0x57, - 0xaf,0xb9,0x09,0xf9,0xac,0x42,0x48,0xcd,0x3a,0x2b,0xa1,0xa1,0x11,0x5e,0x3c,0x0d, - 0x66,0xc2,0x03,0xf8,0xbc,0xd3,0xfa,0xaa,0xb3,0xa3,0xe2,0x7a,0x8a,0xcb,0x96,0x26, - 0xd2,0xb3,0xf5,0x0a,0x64,0xfa,0x91,0xb7,0x32,0x13,0x5e,0xc9,0xc5,0x17,0x77,0x96, - 0xc5,0x83,0x99,0x79,0x60,0x1a,0x14,0x76,0x73,0xd3,0xeb,0x68,0xa9,0x7d,0xab,0x9f, - 0x34,0x4c,0x66,0x6c,0xfd,0xd2,0x9b,0xa0,0x87,0xe4,0xbe,0x4d,0x80,0x65,0x49,0xd6, - 0xb6,0x3c,0xa9,0x9d,0xf5,0x04,0xab,0x18,0xbb,0x40,0xcc,0x0c,0xfa,0xb4,0x2b,0x32, - 0xf2,0x52,0x3b,0xe3,0x69,0x2e,0xcf,0xcd,0xfc,0x81,0x84,0x3e,0x75,0x05,0x69,0xc3, - 0xe7,0xe8,0x02,0xc9,0x51,0xcd,0x0c,0x79,0x8c,0x08,0xbf,0xb5,0x73,0x16,0x30,0x37, - 0x1a,0x15,0xe4,0x53,0xcd,0x6c,0xf7,0x72,0xc1,0xcc,0xae,0x14,0xdd,0x35,0x4c,0x35, - 0x06,0x76,0xa4,0xa4,0x5b,0x56,0x36,0x1d,0x0e,0x3f,0xdb,0x6d,0xd3,0xbf,0x95,0xcb, - 0xa3,0x5e,0xbb,0x10,0x9f,0xea,0x17,0x43,0x09,0x1c,0x7d,0x52,0x85,0xaf,0x2f,0xfa, - 0x1a,0x79,0x5d,0x65,0x61,0xeb,0x3f,0x84,0xa3,0x3b,0xf4,0xe0,0x96,0x43,0xbb,0x4c, - 0xc8,0x5b,0x9d,0x2e,0xee,0xdd,0x9c,0x5e,0xa5,0xf7,0xc8,0xcb,0x6b,0x07,0x53,0x58, - 0xed,0x9c,0xfb,0xef,0x18,0x56,0xe1,0xec,0xb9,0xed,0x6f,0x1c,0xda,0xbb,0xc1,0xfb, - 0xa3,0xc5,0xa2,0xd1,0x08,0xc7,0xe2,0xb3,0x9d,0xf6,0xda,0x79,0x5b,0xb7,0xb1,0x4b, - 0x83,0xee,0x7f,0x82,0x81,0xdf,0xb5,0xed,0x0e,0x44,0xf6,0xe5,0x75,0x56,0x0c,0x44, - 0x88,0x38,0x00,0x0d,0xd6,0xc1,0x1a,0x41,0x47,0x69,0xd0,0x80,0xbe,0xc1,0xda,0x3b, - 0x2a,0x28,0xfe,0x67,0xbf,0x03,0x77,0xe0,0x87,0x71,0x86,0xd8,0x01,0x3d,0x84,0x22, - 0xec,0x60,0xba,0xcd,0x60,0x1c,0x5b,0xd0,0x96,0xe5,0x26,0x36,0xd2,0x67,0x13,0xb7, - 0xe0,0x68,0xbf,0x4c,0xfa,0x24,0xf5,0xb8,0xbf,0xf5,0x47,0x09,0xb7,0x10,0x19,0xa9, - 0x4c,0xfb,0x9f,0x3b,0xff,0x79,0xf0,0xe6,0x75,0x4b,0xfc,0x75,0x53,0x20,0xd6,0xa4, - 0x5a,0xda,0x43,0xba,0x64,0x91,0xf7,0x56,0xb6,0xc6,0x76,0xb5,0xd8,0xbb,0x4e,0xce, - 0x6e,0xd3,0xfa,0x28,0xc1,0xc1,0xf9,0xbf,0xbf,0x1f,0x24,0x37,0x99,0x68,0xc2,0x60, - 0xb8,0xc9,0x47,0x57,0x87,0x88,0xb6,0xd5,0xdd,0xf5,0x52,0x8c,0x6a,0x7f,0xbb,0xe2, - 0xc8,0xd0,0xe1,0x87,0x35,0xe2,0x74,0xb8,0xd3,0x44,0x3c,0x4a,0xdd,0x6c,0x52,0xe1, - 0x65,0x36,0xe8,0x0f,0x8b,0xd2,0x73,0x01,0x4c,0xb9,0xb6,0xc4,0x6b,0xfb,0x1e,0x67, - 0xac,0x5f,0xd8,0xf8,0x13,0x96,0x35,0x60,0x24,0x10,0xfc,0xdc,0x63,0x25,0x93,0xd9, - 0x14,0x04,0x70,0x04,0x71,0x94,0x1e,0x63,0x8e,0x5c,0xbf,0x9b,0x7f,0x35,0x81,0x43, - 0xc9,0x19,0xa2,0x85,0x4c,0xce,0xe4,0xec,0x4c,0x37,0xf6,0xb2,0x8f,0xc7,0x21,0x3b, - 0x5f,0x7a,0xd4,0x99,0x46,0x8f,0x55,0x81,0xc1,0xdb,0x7d,0xdb,0xf2,0x73,0x2d,0x5f, - 0xa8,0xc2,0x23,0xc9,0x50,0xe9,0x4d,0xbd,0x8f,0xe4,0x7b,0xf3,0x12,0x57,0x3b,0x32, - 0x9e,0x74,0xb4,0x48,0xbf,0x32,0xf6,0x54,0x60,0x8c,0xa3,0x72,0x75,0x3e,0xd8,0x77, - 0x9d,0x16,0xfb,0x1b,0x08,0x22,0x58,0xda,0x83,0xfc,0x39,0x1f,0x1d,0xd7,0x58,0x8d, - 0x5c,0xe3,0x58,0x2e,0x10,0x99,0x79,0x7d,0x01,0x85,0x8d,0xc1,0xb1,0xac,0xba,0xb2, - 0x0d,0xfe,0x94,0x27,0xd7,0x14,0x1e,0xfb,0x81,0x78,0x8b,0xde,0xc3,0x73,0xe7,0x01, - 0xac,0x6a,0xbf,0xa5,0x2a,0xa8,0x78,0x7d,0xcd,0xdb,0xcc,0xcf,0x4e,0x3e,0x7e,0xcf, - 0xbd,0x0f,0x8e,0x21,0xc9,0xb3,0xf7,0xe5,0x9e,0xbd,0x5d,0xc5,0x20,0xa9,0x92,0x33, - 0xf9,0xb4,0xc7,0x5b,0xdd,0x8e,0x4c,0x64,0xfc,0x51,0x07,0x0f,0xc8,0xcb,0x83,0xea, - 0xe9,0x59,0x65,0xd0,0x53,0x68,0x11,0xd5,0x96,0xf2,0x54,0x6b,0x69,0xcd,0xe8,0xa9, - 0xb4,0x6d,0xd2,0x2d,0x1b,0x71,0x9d,0xd2,0xad,0xbb,0xf1,0xc5,0x0d,0xad,0x1a,0x9a, - 0xdb,0x6c,0xe7,0x71,0xdb,0x13,0x67,0x43,0x05,0x59,0x38,0xf4,0xed,0xe2,0xcf,0x08, - 0x67,0xff,0x7e,0x7d,0x9c,0xea,0xad,0xee,0xd4,0xcf,0x69,0x67,0x9c,0xb0,0x03,0xb3, - 0x62,0xc6,0x4a,0xba,0x5e,0x24,0x4d,0x82,0xbb,0xc6,0xfe,0x78,0x0b,0xc6,0x12,0xfa, - 0xfd,0xd3,0x9d,0xf6,0x57,0x8c,0x9a,0xc6,0xb6,0x99,0x83,0x6e,0xb1,0xf6,0x58,0xe4, - 0xb5,0x53,0x00,0x51,0x6b,0x2f,0x8f,0x8a,0xe8,0xe9,0x9f,0x07,0x60,0x0b,0xae,0xad, - 0x7f,0xcf,0x99,0x21,0xdc,0x7a,0x04,0x4d,0xa5,0x27,0xbe,0x93,0x0b,0x42,0xd1,0x17, - 0x01,0x61,0x8d,0xcd,0x05,0x98,0xe2,0x59,0x88,0xe8,0x09,0x65,0x6a,0x8e,0x39,0x65, - 0x23,0x21,0x60,0x09,0x71,0x6d,0xa1,0xb0,0xa9,0x0b,0xac,0xc5,0x31,0xb0,0x1e,0x40, - 0x9b,0xc4,0x14,0x75,0x12,0x57,0x65,0x07,0x93,0xb3,0xb9,0x4a,0xbe,0x98,0x46,0xe5, - 0x5c,0xf4,0x03,0x6e,0xa5,0xc3,0x22,0x2e,0x10,0x23,0xc4,0x88,0x2e,0x12,0x20,0xe1, - 0x90,0xbd,0x00,0x0d,0xd6,0xd9,0xad,0x60,0xf4,0x13,0x82,0x10,0x73,0x6c,0x6d,0xf0, - 0xd3,0xb9,0xc7,0x6e,0x05,0x36,0xdb,0xff,0x83,0xf2,0xa9,0x58,0x78,0xe9,0x79,0xc7, - 0x2f,0x89,0xed,0x63,0x83,0x52,0xed,0xb0,0x70,0x50,0x15,0x1d,0x7a,0x36,0x49,0x90, - 0x07,0xd1,0x50,0x55,0x04,0xfd,0xa8,0xf2,0x1a,0xd8,0x1b,0x42,0x3d,0x9b,0x81,0x17, - 0x6e,0xa9,0xeb,0x1b,0xa1,0xd6,0x74,0xcb,0x32,0x78,0x15,0x81,0x9c,0xc7,0x38,0xec, - 0x6c,0x45,0xef,0x94,0x18,0x49,0x07,0x7d,0x27,0xf8,0x0a,0xd6,0x20,0x78,0x15,0x51, - 0x25,0xda,0xd6,0xf8,0xad,0x9b,0x4f,0xb4,0xf9,0x2a,0x5c,0xbb,0xe6,0x69,0xb6,0xfc, - 0x7f,0x1f,0x83,0xc2,0xfe,0x2c,0xe6,0xcb,0xea,0x2c,0xe8,0x32,0x37,0x62,0xdd,0xe5, - 0xa0,0xbc,0xe8,0x0d,0x71,0xcb,0x06,0x26,0x65,0x99,0x55,0x8f,0xaa,0xa5,0x3b,0xed, - 0xd6,0x38,0xa9,0x49,0x18,0xd6,0xde,0x46,0x16,0xb8,0xcb,0x26,0x49,0x65,0x6b,0xe1, - 0xac,0xdb,0x1c,0x63,0x84,0x72,0xce,0x32,0x0b,0x34,0xc8,0x51,0xfd,0xbf,0xad,0x2d, - 0x66,0xb3,0x7a,0x49,0xe0,0x5c,0x64,0x43,0x57,0xc0,0xc9,0xb2,0x64,0x96,0xab,0x9f, - 0x97,0xde,0xbe,0x1e,0x9e,0x0b,0xf3,0xb9,0xf1,0x5f,0xa5,0x72,0x11,0x3e,0x14,0x70, - 0xef,0x86,0x7a,0x8e,0x7a,0x7c,0x7c,0xf4,0x11,0x31,0x0d,0x2e,0xd8,0x3f,0xe7,0x3e, - 0x2b,0x7d,0xa9,0xbd,0x89,0x53,0xe4,0x8a,0x62,0x4e,0x9c,0x6d,0xce,0xef,0x00,0x68, - 0x3c,0x11,0xb4,0xe5,0x09,0xf3,0x0e,0x2e,0xda,0x4e,0x7a,0x33,0xb9,0x0b,0x51,0x9e, - 0xd4,0x32,0x02,0xcd,0x4e,0x8c,0x60,0x42,0x1a,0x39,0x01,0x2d,0x13,0x39,0x27,0x09, - 0x6f,0x75,0xc9,0xf4,0xb5,0x79,0x79,0x69,0xb2,0x91,0x30,0x28,0x79,0x7a,0x88,0x15, - 0x95,0x73,0x94,0x85,0x19,0x72,0x25,0x04,0x22,0xfc,0x69,0x22,0x03,0x17,0x27,0xad, - 0xca,0x90,0x4f,0xc1,0xa1,0x34,0x68,0x05,0xe4,0x46,0x40,0xbf,0x84,0x5c,0x02,0x66, - 0x0c,0x46,0xe2,0xdd,0xf4,0x1a,0xc6,0x2b,0xb5,0x36,0x43,0xb8,0x3d,0xc2,0x91,0x05, - 0x9d,0x62,0x7d,0xa6,0x7f,0xdb,0x6e,0x3d,0xd9,0x11,0x24,0xe9,0x2a,0x2d,0xfc,0x5d, - 0x27,0xc1,0x32,0xb9,0xd4,0x76,0x59,0xea,0xd1,0xb5,0xe9,0x35,0x1b,0x16,0x1a,0x55, - 0x83,0x7f,0x16,0x71,0x26,0x63,0x21,0xed,0xde,0x3b,0xa3,0xd0,0xa2,0x19,0xfd,0x81, - 0x45,0x80,0xc5,0x8c,0x1a,0x07,0x43,0xab,0xaa,0x94,0xf1,0x2d,0xb2,0x32,0x62,0x82, - 0x31,0x80,0x79,0x60,0xdd,0x90,0xd8,0x6b,0x25,0xe8,0x1c,0xd8,0x5c,0xea,0xa3,0xcc, - 0xfe,0x8e,0xc7,0x15,0xdd,0x92,0x55,0x0c,0x4b,0x20,0x8e,0xd8,0x73,0x71,0xab,0xa4, - 0x19,0x94,0x78,0xa7,0x15,0x72,0x82,0x15,0xb2,0x77,0xd2,0x8d,0x80,0x11,0x51,0x00, - 0x20,0x41,0x0f,0xe6,0x1b,0x3a,0x2b,0x70,0xe9,0x5f,0x7b,0x00,0x7b,0x63,0x2c,0x16, - 0x0e,0x98,0x2c,0xde,0xbb,0xc9,0x24,0xc4,0xf3,0x1b,0x3d,0x3d,0xdd,0x12,0x7b,0xe1, - 0x67,0xf4,0x84,0x7d,0x1a,0x7e,0xcf,0xe7,0xa3,0xe1,0xb3,0x8d,0xff,0x3f,0x0d,0xa7, - 0x4f,0x34,0x3c,0xce,0x01,0x00, + 0x67,0xee,0x95,0x37,0x7d,0x3d,0x73,0x1d,0xdf,0xab,0x02,0x67,0xff,0xcf,0xce,0x93, + 0x76,0xb7,0x8d,0x23,0xf9,0xbd,0x7f,0x45,0x3d,0xee,0x7b,0x89,0xfc,0x36,0xa2,0x2d, + 0x59,0x56,0x0e,0xc7,0xea,0x97,0xa3,0xef,0x8e,0xed,0x8d,0x3d,0xd7,0xa7,0x7d,0x10, + 0x09,0x59,0x9c,0x50,0x04,0x07,0x80,0x22,0xab,0x7f,0xfd,0x56,0x15,0x00,0x51,0x14, + 0x4d,0x85,0x3e,0xf6,0x9e,0x99,0xee,0x96,0x84,0xb3,0x50,0x55,0xa8,0x1b,0xae,0x53, + 0x07,0x11,0x5c,0x49,0x6c,0x17,0x4b,0x7b,0x7b,0xe8,0x4a,0xea,0xf1,0x8b,0x7f,0x02, + 0x40,0xfe,0x85,0x7f,0x10,0x20,0x35,0x7e,0xc1,0x5a,0x5a,0x70,0x15,0xfe,0xd1,0x70, + 0x1c,0x81,0xb3,0x7a,0xf8,0x3b,0x97,0xf0,0xbf,0x57,0xb7,0x67,0x11,0xd7,0x24,0x8d, + 0xf0,0x9f,0x08,0x28,0x58,0x7f,0x16,0x11,0x6b,0x47,0x60,0xac,0x56,0x5f,0xe4,0x59, + 0x54,0x45,0x31,0x42,0x5b,0x3f,0xac,0x18,0x1a,0x58,0x0b,0x26,0xa2,0x3c,0x8b,0xf8, + 0x14,0x11,0x6e,0x9c,0x64,0x3a,0xc9,0x25,0x24,0xb8,0xfe,0x00,0xc7,0x25,0x6b,0xf7, + 0xa9,0x71,0x56,0x3c,0x0c,0x1b,0x35,0x97,0xf6,0x9b,0x1f,0xe2,0x0a,0xa5,0xb0,0x73, + 0x48,0xcf,0xa2,0x4f,0x2f,0xe3,0x97,0x80,0xff,0x8a,0x31,0x8c,0xe1,0xc8,0xff,0xff, + 0x55,0x3c,0xfe,0x34,0x18,0xc7,0xc7,0xb5,0x8e,0x81,0xef,0x18,0xc5,0xaf,0x01,0xff, + 0x15,0x03,0x6c,0xe2,0xe1,0xae,0x77,0x14,0x0f,0x3f,0x0d,0x5e,0xc7,0x83,0x9d,0xbe, + 0x81,0xef,0xe3,0x4d,0x0f,0x11,0x61,0xf8,0x81,0x26,0x39,0x24,0xb9,0x30,0xe6,0x2c, + 0xe2,0x4a,0x63,0x7e,0x64,0x31,0x80,0x2c,0xc5,0xdf,0x7d,0x7a,0x4a,0x11,0x6d,0x5e, + 0x39,0x20,0xea,0x07,0x6e,0x86,0xef,0x36,0xcb,0x69,0x34,0x49,0x54,0x81,0x18,0xb1, + 0x48,0xab,0x67,0x73,0x36,0x59,0x4e,0xdf,0x1e,0xe2,0x10,0x1c,0xe8,0x3f,0xa8,0x2e, + 0x23,0x6c,0xc1,0xa5,0xa6,0x40,0x01,0x85,0xc8,0xaf,0xc1,0x2d,0xd1,0x04,0xc1,0xc1, + 0x61,0x38,0xda,0xb1,0x7b,0x18,0xcf,0x45,0xaf,0xb5,0xf1,0x09,0xfb,0xc6,0xf8,0x93, + 0xab,0xf3,0x22,0x37,0x3c,0x02,0x55,0x20,0x73,0x26,0x5f,0xce,0x22,0x36,0x43,0x3e, + 0xb8,0x41,0xbd,0x83,0xe8,0x3b,0x7a,0x91,0x81,0xe3,0x7c,0x0b,0xf4,0xfb,0x60,0xbe, + 0x64,0x25,0x70,0xb5,0x2b,0x88,0x22,0x85,0x52,0x18,0x2b,0x41,0x40,0xa9,0x25,0x65, + 0x84,0x52,0x48,0xf8,0x2d,0x47,0xf4,0x9d,0xd0,0x99,0xe8,0x73,0x15,0xe3,0x59,0x74, + 0x51,0xca,0x02,0xc2,0xd6,0x93,0x67,0x37,0xf6,0xf4,0xdf,0xdf,0x1e,0xba,0xbd,0x03, + 0x4b,0x32,0x13,0x2e,0x44,0x46,0x0d,0xc6,0xf9,0xd9,0x0c,0xf2,0xd7,0x7e,0xae,0xf0, + 0xae,0x45,0xe1,0x48,0x7c,0x98,0x3a,0xe2,0x29,0x18,0xce,0x78,0x1f,0x4e,0xde,0xa5, + 0x8b,0xac,0x00,0x9e,0x81,0xcb,0x0e,0x89,0x39,0x80,0x39,0xff,0x2c,0xaa,0x07,0xa6, + 0x5a,0x6f,0x75,0x50,0x31,0x7c,0x87,0xa3,0xc9,0x0f,0x84,0x0f,0xb0,0xf3,0xcc,0x40, + 0xa1,0x52,0xf9,0xdc,0x80,0xe0,0x2d,0x42,0xfd,0x23,0xf4,0xec,0x5c,0x82,0x41,0x42, + 0x83,0x2a,0x24,0x2c,0x8d,0x4c,0x61,0xa6,0x34,0x68,0xb9,0x50,0x56,0xc2,0x87,0xdf, + 0x7f,0x71,0x13,0x0e,0xe2,0xb7,0x87,0x25,0x82,0x43,0x21,0x38,0x3e,0x17,0xc3,0xd8, + 0xa7,0x9f,0x3b,0xa7,0x99,0x21,0x35,0x19,0x6d,0xb4,0x4e,0x18,0x57,0xae,0xf0,0x84, + 0x97,0x7e,0xcf,0xb7,0x87,0xdc,0x8f,0xd3,0xb8,0x7a,0xc3,0x93,0x32,0x40,0xe4,0x28, + 0x5d,0x4d,0xe3,0x92,0xe2,0x44,0x2d,0xca,0x5c,0x5a,0x1c,0x86,0x32,0x4f,0x4b,0xc4, + 0x44,0x18,0xee,0xfa,0xd9,0xca,0x9a,0x30,0xcb,0x35,0x98,0x08,0xb5,0x4b,0x60,0x17, + 0xe4,0xd8,0x45,0x66,0xb7,0x77,0xa0,0xce,0xc9,0x15,0xda,0xb1,0x90,0x15,0x81,0xa4, + 0xf5,0xf3,0xf8,0xe8,0x62,0x6d,0x16,0xb6,0x45,0x9b,0xdd,0x0e,0x09,0x09,0x15,0xbf, + 0x1f,0x3a,0xea,0x37,0xf9,0x60,0x95,0xfd,0x81,0x84,0xde,0xc7,0x08,0x85,0xb2,0x9e, + 0xd1,0x93,0x42,0xf4,0xf9,0xd7,0xe4,0x97,0x02,0x88,0x42,0x7f,0xc9,0x7e,0xcc,0xc0, + 0xb0,0xbd,0x5d,0x40,0xa9,0xca,0x65,0xf9,0x3d,0xfc,0x62,0x71,0xa2,0x32,0xd2,0x40, + 0x36,0x83,0xb5,0x5a,0x6a,0x28,0xe7,0x44,0x44,0x93,0x4b,0x59,0x9a,0xf8,0xbb,0xb7, + 0x02,0xe6,0x5a,0xce,0xce,0xa2,0x7f,0xd9,0xba,0x20,0x38,0xf7,0x62,0x69,0x7b,0x07, + 0xa7,0x5a,0xda,0xa5,0x2e,0x60,0x26,0x72,0x23,0xa3,0xc0,0x64,0x4d,0x5f,0x23,0x9a, + 0x30,0xf3,0x67,0x85,0xdb,0x61,0xaa,0xd5,0xca,0x48,0xfd,0xf6,0x50,0x4c,0xc0,0x2a, + 0xf8,0x82,0x3b,0xf9,0xad,0xb5,0xba,0xd1,0xd2,0x98,0x98,0xf1,0x50,0x3f,0x17,0x27, + 0x13,0x10,0x61,0x19,0x9f,0xcd,0xd8,0x72,0xb0,0xc1,0x82,0x2a,0x08,0x91,0xd9,0x56, + 0xdf,0x70,0xb7,0xe1,0x78,0xb7,0x61,0xe4,0x1b,0xaa,0x8d,0xb8,0x67,0xf5,0xc7,0xa0, + 0xfd,0x62,0x5d,0x21,0x08,0x30,0x80,0x67,0x8b,0x2c,0x4d,0x95,0x3d,0x65,0x7c,0x3e, + 0xc9,0x0d,0xf3,0x5b,0x23,0x75,0x67,0x19,0x4a,0xa7,0x72,0x1d,0x4d,0x3e,0x38,0x91, + 0x58,0xdd,0x3a,0xc2,0x14,0x23,0x89,0xa9,0x58,0x48,0x8b,0x8c,0xfb,0x05,0x8c,0x82, + 0x0c,0x29,0x28,0x0a,0xd0,0x52,0x24,0x73,0x26,0xf3,0xa7,0x7f,0xbb,0xbe,0x06,0xc4, + 0x2f,0x5a,0xcc,0x84,0xc9,0xb2,0xc9,0x1f,0x78,0xf6,0xe9,0xe4,0x92,0x85,0x15,0xca, + 0xdc,0xed,0xbb,0x9a,0xca,0x32,0x57,0xeb,0x85,0x2c,0xec,0xf7,0xc8,0xc9,0x13,0xb8, + 0xa6,0xed,0x1d,0xd3,0x81,0x95,0xc6,0x9a,0x8a,0x91,0x5c,0xb8,0x04,0x27,0x4e,0x95, + 0xb2,0x4e,0x42,0xa7,0xc2,0x8a,0x3e,0x6b,0xb6,0xe3,0xe1,0xcb,0x31,0x3e,0xa7,0x83, + 0x65,0x91,0x4b,0x63,0x08,0x70,0x10,0xb9,0x51,0xf4,0xde,0xae,0xb8,0x91,0xbc,0x88, + 0x99,0xb3,0xa8,0xfc,0xe1,0xea,0xb2,0x7f,0x7e,0xf1,0x17,0xee,0x29,0x64,0xee,0x85, + 0x78,0x0c,0xbf,0xcc,0x78,0x54,0x05,0xd0,0xe6,0xcc,0x8c,0x10,0x0b,0xe2,0xab,0xc8, + 0x72,0xb2,0x67,0x60,0x2e,0xb5,0x7c,0x41,0x62,0x07,0xfe,0x74,0xf5,0x9e,0x4e,0x9e, + 0x89,0x1c,0x84,0x05,0x3c,0xa4,0x13,0xc4,0xf1,0x42,0x9a,0x79,0x82,0xd0,0xc6,0x99, + 0xe2,0x63,0x91,0xd0,0xd6,0xcb,0x82,0x46,0x90,0x7b,0x4b,0x78,0x8f,0x8d,0xc9,0x52, + 0x88,0xe3,0x38,0x0c,0xa8,0x75,0x96,0xab,0x4d,0x5f,0x8c,0x48,0x91,0x8e,0x24,0x54, + 0x5e,0xc2,0x18,0x59,0xe0,0x28,0x3b,0xa7,0x88,0x4d,0xa5,0xca,0xdc,0x26,0xd2,0xea, + 0x0c,0xc7,0x88,0x19,0x89,0xd0,0xea,0x30,0x8e,0xc3,0x5b,0x84,0xde,0xe4,0xdc,0x9f, + 0x94,0x74,0x27,0xf4,0xae,0xae,0x7e,0xf9,0x78,0x10,0xe4,0x5d,0x6d,0x06,0xde,0xa3, + 0xcd,0xad,0xf3,0xd6,0x6e,0xb4,0x23,0x11,0x9d,0xd4,0x61,0xc2,0xe0,0xc5,0xdd,0x1c, + 0x74,0xc3,0x72,0xfc,0xc3,0x89,0x47,0x51,0x66,0x56,0xe4,0xc8,0xba,0x78,0xa3,0x66, + 0xb3,0x20,0x33,0x35,0x05,0x7c,0x5d,0x4b,0xd8,0xca,0x39,0xc7,0xd1,0x5d,0x42,0x12, + 0x8c,0x4c,0xaa,0xb5,0x13,0xc1,0xc2,0x71,0x57,0xd1,0xb2,0x56,0xa4,0x30,0x9b,0x56, + 0x39,0x4e,0xe3,0x61,0x9c,0xe3,0xf4,0x5d,0xf2,0x16,0x7f,0xa5,0x12,0x17,0xf1,0x82, + 0x45,0x15,0x0b,0x45,0x5a,0x45,0xad,0x8a,0xb3,0x88,0x13,0x6b,0x71,0xa9,0xf9,0xf3, + 0xa3,0x33,0x5b,0x51,0x4b,0x57,0xd2,0x49,0x95,0xb2,0xb8,0xc2,0x35,0x7b,0xcf,0xfd, + 0xf9,0x9e,0x1f,0x44,0x13,0x6a,0xa8,0x64,0xb3,0xc3,0xfe,0x3e,0x1a,0x34,0x14,0x4d, + 0x6d,0x18,0x97,0xb7,0x46,0xad,0xca,0x27,0xa0,0x3b,0xb0,0x4e,0xfd,0x82,0x73,0x03, + 0x46,0xd0,0x72,0x59,0xdc,0x90,0x61,0x38,0x1e,0xd5,0xf5,0x13,0x23,0xbb,0x15,0xbb, + 0x60,0x16,0xe0,0xca,0x6a,0xef,0x44,0x6b,0x49,0xf2,0xb3,0x42,0x5d,0x1d,0xd7,0x75, + 0x18,0x2a,0x8c,0x59,0x75,0x73,0x93,0x4b,0xba,0xd5,0xe1,0xd4,0x3d,0x92,0x3b,0x84, + 0x36,0xdc,0x67,0x17,0x6d,0x75,0x83,0x2f,0x2b,0x6c,0x34,0xf9,0x5d,0xe2,0x4d,0x80, + 0x69,0x2e,0x8a,0x2f,0x2c,0x4d,0x44,0x01,0x44,0x85,0x70,0x65,0x63,0xa8,0xe4,0xc3, + 0x66,0xff,0x3e,0x4d,0x65,0x34,0x97,0x73,0x2d,0x48,0x03,0x2d,0xc4,0x1a,0xa6,0x12, + 0x96,0x25,0xc9,0xba,0xf1,0x31,0x3f,0xce,0x15,0x89,0x95,0xda,0x9c,0x82,0x80,0xf1, + 0xa8,0xbf,0x69,0x00,0xcc,0xec,0xc1,0x62,0x69,0x2c,0x8d,0x9f,0xcb,0x5b,0x91,0xca, + 0x24,0x5b,0x88,0x3c,0xf6,0xe2,0x03,0x86,0xf1,0xe8,0x99,0xc5,0x0d,0x4c,0x79,0xfa, + 0xd3,0xcf,0x7f,0x04,0x38,0x0c,0xa8,0x22,0x5f,0xc7,0x7b,0xa8,0xdf,0x10,0x61,0x81, + 0x1d,0x82,0x98,0x3a,0x64,0xe1,0x17,0xa4,0xd5,0xdd,0x56,0x88,0x7b,0x02,0x52,0xb1, + 0x81,0x34,0x25,0xea,0xc1,0xd8,0xcf,0x41,0xda,0x67,0xc8,0xc6,0x03,0xe6,0x01,0xfc, + 0x3c,0xa6,0x7b,0x25,0x4b,0x6a,0x09,0x17,0xac,0xca,0x17,0x0f,0x86,0x47,0x7c,0xa7, + 0x9b,0x28,0xff,0x44,0xa7,0x5f,0x08,0xeb,0x84,0xfe,0xee,0x81,0xb5,0x5a,0x22,0x9a, + 0x58,0x04,0x49,0xd4,0x03,0xeb,0x20,0x66,0x59,0x6e,0xc5,0x40,0xb7,0xa1,0x60,0xd1, + 0x9f,0xe5,0x39,0x4b,0x30,0x3f,0xe3,0xb9,0x09,0x47,0x8b,0xe1,0x4f,0x46,0x32,0xbe, + 0x40,0x84,0x36,0x28,0xa5,0x5e,0x64,0xd6,0xca,0x14,0x72,0x95,0x88,0x1c,0x71,0x09, + 0xef,0x36,0x32,0x5d,0x7c,0x91,0x06,0xe4,0x6c,0x26,0x13,0xeb,0xe4,0x9d,0xd7,0x0d, + 0x2f,0xc0,0x28,0x87,0xb5,0xcc,0xc0,0xdf,0x55,0x56,0xc8,0xd4,0xf7,0xf3,0xbe,0x3c, + 0x06,0xac,0x52,0x71,0x87,0x5b,0x79,0x8e,0xe0,0xb3,0x58,0xac,0x30,0xdf,0x2e,0xed, + 0x68,0x5c,0xed,0xa6,0x1d,0x0f,0xee,0x42,0x65,0xb8,0x9c,0x34,0x9c,0x99,0xd2,0xb1, + 0x7d,0x01,0xca,0x99,0x4d,0xa4,0x3c,0x18,0x93,0x59,0xe1,0x75,0xab,0x15,0x76,0x69, + 0xa8,0xdd,0x88,0x1b,0x69,0xea,0x70,0xb7,0xdb,0x8f,0xe1,0xbe,0xd1,0x66,0x3f,0xa9, + 0xde,0x10,0xaf,0xd7,0x39,0xc2,0xfb,0x06,0x3e,0x8b,0x34,0x53,0x77,0xdf,0x32,0x07, + 0xda,0xb0,0xa3,0xe5,0xcf,0x06,0xca,0xb0,0x32,0x50,0x78,0xe1,0x27,0xb1,0x50,0x18, + 0xf1,0xee,0xfa,0xc0,0x5c,0x0a,0x0d,0x6c,0x6d,0x28,0x44,0x8f,0x06,0x36,0x4e,0x65, + 0xc1,0x65,0xb3,0xa0,0x69,0x4b,0x72,0x8d,0x48,0x05,0x9a,0x18,0x2e,0xf1,0xc0,0x8c, + 0x45,0x12,0x4c,0xd2,0xb2,0x09,0xe3,0x98,0xc7,0xe1,0x75,0x69,0x18,0x81,0x65,0x1b, + 0xc1,0x31,0xab,0x99,0xa9,0xc2,0xcf,0xae,0x88,0xee,0x9e,0xf5,0x04,0xca,0xe9,0x92, + 0x91,0xcb,0x7c,0x48,0x0d,0x7c,0xee,0x2b,0x99,0x07,0x29,0x86,0x52,0x81,0xc7,0xef, + 0x21,0xbe,0x2e,0xfb,0xc9,0x12,0x0d,0xf2,0x0e,0x3c,0x78,0xfd,0x57,0x28,0xd5,0x4a, + 0x6a,0xe8,0xa5,0xef,0x17,0x07,0xdd,0x44,0x80,0xbd,0xf5,0xd7,0xbe,0xff,0xda,0xdf, + 0xfb,0xe3,0xa3,0xfb,0x5d,0x77,0xf7,0x37,0x05,0x20,0x97,0x37,0x22,0xf7,0xfb,0x7f, + 0x15,0x6c,0x5b,0x4c,0xd7,0xa0,0x19,0x4b,0x48,0xf8,0x54,0x98,0xf9,0x29,0x70,0x29, + 0xbb,0xc7,0xb2,0x5e,0xe6,0x0d,0x16,0x6d,0x98,0x83,0xe7,0x52,0xa6,0x81,0x68,0x24, + 0x0e,0x84,0x05,0xaa,0x6c,0x7c,0x6e,0x81,0xea,0x8d,0x64,0xfa,0x3d,0x7c,0x98,0x2b, + 0x65,0x24,0xd9,0x44,0xbf,0x91,0xb9,0xee,0x3d,0xa8,0xcd,0x1c,0x32,0x8c,0x5e,0x00, + 0x55,0x63,0x98,0xb9,0x73,0x8c,0x5f,0x10,0xd5,0x0b,0x6a,0x92,0x7d,0xbb,0x2c,0x24, + 0x64,0xee,0x36,0x35,0x1d,0x8a,0xe0,0x71,0xbf,0x2b,0xcb,0x5d,0x97,0x02,0x7d,0xd9, + 0xaf,0xa2,0x48,0x10,0x38,0x99,0x66,0x56,0xb1,0xcb,0x10,0xd7,0x2e,0x5a,0xe3,0x2a, + 0x6c,0xbc,0xd2,0x7e,0xc3,0x25,0x0e,0x3d,0x4f,0x73,0x23,0x3e,0x4b,0x0e,0xb6,0x3b, + 0xe9,0x39,0x13,0x09,0x82,0xb7,0xde,0x6c,0x11,0x93,0x63,0x95,0x19,0xe7,0x0b,0x5b, + 0x05,0xc6,0x79,0x87,0x6c,0xaa,0x42,0x2e,0x82,0x6c,0xb6,0xca,0x79,0xc6,0x99,0x09, + 0xe2,0x90,0xe4,0xb3,0x37,0xc6,0xf1,0xaa,0x51,0xd4,0x7b,0x23,0x83,0xf6,0x5d,0x93, + 0x73,0xb9,0x82,0xb2,0xa3,0x6b,0x1c,0x78,0x32,0xb4,0xd4,0x44,0xe4,0xe0,0x64,0xd7, + 0x18,0x29,0xe4,0xaa,0x72,0x94,0xf7,0xb1,0xe6,0xe0,0x64,0x4b,0x63,0x77,0x11,0xe6, + 0xfc,0x17,0x2f,0xf4,0xe2,0x7e,0x80,0x63,0x3c,0xf3,0x81,0xa0,0xb7,0xf2,0x0d,0xdb, + 0xd1,0xed,0xd6,0x6c,0x5d,0x6c,0x0f,0x50,0x9e,0xbc,0xc7,0x10,0x64,0x90,0xd7,0x6d, + 0xf3,0x38,0xe2,0xb4,0x6b,0x32,0x07,0x69,0xc3,0x52,0xb2,0x4f,0x51,0xa4,0xda,0xf2, + 0x57,0xd8,0xc0,0xb2,0xab,0x87,0x9b,0xd0,0x0f,0xe0,0x81,0xfb,0xb6,0xda,0xbf,0x43, + 0x81,0xfa,0xa5,0xb6,0x03,0xea,0xf4,0xb0,0x81,0x53,0x3e,0xac,0xd1,0x9a,0xba,0xa7, + 0xa1,0x82,0x8e,0xef,0xa3,0x82,0x8e,0x2b,0x15,0xe4,0x96,0xc7,0x8e,0x16,0x1e,0xb8, + 0x98,0x3a,0x4f,0xd5,0xfb,0x3a,0x4a,0x67,0x78,0xd1,0x0e,0xba,0x68,0xf7,0xc5,0x3f, + 0xac,0x8d,0xdd,0xf8,0xbb,0x1d,0x98,0xbb,0x78,0xf5,0x67,0xb5,0x72,0x2e,0xb5,0x0a, + 0xfb,0x3a,0xd5,0x35,0x23,0x41,0x9a,0x59,0x23,0xf3,0x19,0x90,0xa4,0x58,0x4e,0x73, + 0x94,0x64,0x32,0xf5,0xba,0xfe,0xb0,0x44,0x8a,0x4b,0x5b,0xa9,0x7c,0xf8,0xa5,0x98, + 0x29,0xed,0x4a,0xd2,0x44,0xee,0xf4,0x62,0x90,0xbe,0x85,0xb2,0x55,0x0c,0xcc,0xaa, + 0x32,0x4b,0x70,0x3b,0x4d,0x20,0xce,0x59,0x4b,0xf2,0x24,0xd4,0x8c,0x5a,0x92,0xf5, + 0x25,0x53,0xf6,0x1d,0xab,0xcb,0x4f,0x88,0xe8,0x72,0x7b,0x7e,0x79,0x77,0xfd,0x2e, + 0x08,0xfe,0x04,0x27,0x76,0xc6,0x59,0x86,0x3f,0xea,0x66,0x51,0x13,0x7f,0xd5,0x45, + 0xde,0x30,0x58,0x6b,0x81,0x6b,0x17,0xf5,0x75,0x2e,0x85,0x96,0xc6,0x82,0xc8,0x34, + 0x95,0x7d,0x31,0xc0,0x2f,0x40,0xc6,0x37,0x31,0xa9,0x94,0x8f,0x3f,0x9c,0x93,0x02, + 0x61,0x93,0x93,0xcd,0x2c,0xc6,0x1a,0x50,0x4c,0xbb,0x93,0x20,0xb9,0x58,0x15,0x52, + 0x3b,0xa2,0x25,0xe4,0x1a,0x74,0x67,0x1f,0x9a,0xd8,0x74,0xc6,0xba,0x78,0xc3,0x75, + 0x59,0xd3,0xce,0x71,0x17,0xa5,0xe3,0x91,0xc0,0x1e,0xc1,0x8f,0x21,0xb7,0x65,0x0b, + 0x64,0x50,0x3e,0xfc,0x46,0x2b,0x8a,0x02,0xa7,0x30,0x37,0x10,0xa3,0x25,0xf9,0x32, + 0x65,0xb4,0x30,0x0b,0xc1,0xaf,0x7f,0xb9,0x36,0x60,0x14,0x47,0x78,0xb2,0x44,0x7a, + 0x75,0x6d,0x96,0x25,0x21,0x36,0x44,0x83,0x72,0x67,0x6a,0x11,0x28,0xd9,0xa2,0x0a, + 0x22,0x75,0x47,0x26,0xbf,0x59,0xbf,0x1b,0x8f,0xdc,0xb5,0x83,0x48,0x6e,0x6b,0x62, + 0xae,0x33,0x52,0x38,0x38,0x94,0xdd,0x75,0x54,0xbe,0x45,0x7c,0x0c,0xb4,0x33,0xaa, + 0x93,0x90,0xd5,0x69,0xd4,0x42,0x06,0x34,0xec,0xf0,0x09,0x8b,0x22,0x17,0x02,0xab, + 0xa4,0xcf,0x26,0x2e,0x91,0x2b,0x6b,0x9e,0x4a,0x1f,0x0c,0x3b,0xea,0x83,0x1d,0x41, + 0xdd,0x90,0xfb,0x9f,0x10,0x8d,0x41,0xec,0x07,0xa1,0xdc,0x5d,0xea,0xd7,0x45,0x7c, + 0x58,0xeb,0xb3,0xa4,0xb4,0x55,0x07,0xe9,0x3e,0xea,0x26,0xdd,0x37,0xca,0x85,0xd7, + 0xed,0x73,0x5e,0x24,0x72,0x22,0x7f,0x54,0x89,0x7c,0xb7,0x2b,0x3c,0x13,0x8b,0xf2, + 0x94,0x43,0x64,0x4d,0x0a,0xb8,0x05,0xda,0x49,0x10,0xec,0xd2,0x2b,0xf1,0x95,0xa8, + 0x5e,0x45,0x1e,0x9d,0x1d,0x2f,0x53,0xf6,0x27,0x5f,0x00,0x85,0x41,0xb8,0x23,0x24, + 0x26,0x0a,0xdc,0x38,0xc4,0x09,0x45,0x9a,0x52,0x30,0xc4,0x1b,0xa2,0xce,0xcf,0x34, + 0x80,0xfc,0xa7,0xc0,0xd5,0xd7,0x50,0x8c,0x42,0x7b,0x69,0x7c,0xed,0xe3,0xd0,0xec, + 0xaa,0xa0,0x88,0xaf,0xc2,0x8b,0xce,0x5c,0x7b,0x51,0x8b,0x17,0xca,0xe9,0x32,0x03, + 0x55,0xb0,0xd0,0xba,0x37,0xff,0xd4,0x91,0x48,0xe9,0xcc,0x5d,0x9e,0x3a,0x0e,0x3c, + 0xf5,0x00,0xc5,0x4f,0x08,0xdf,0x5e,0x8f,0x63,0xb7,0x88,0x47,0xc9,0xcc,0x85,0x9f, + 0x8e,0x30,0x1e,0x1f,0x0d,0xde,0x68,0xcb,0x5a,0xf0,0xda,0xd8,0xb0,0x4b,0xb3,0xca, + 0x8a,0x6e,0x96,0x91,0x57,0x19,0x62,0x2e,0xe8,0x8c,0x26,0xf7,0xb2,0xfd,0xef,0xb2, + 0xce,0xcb,0xdb,0x3b,0x5d,0x02,0x36,0x8c,0xdb,0x93,0x26,0xa2,0x2c,0xf7,0xf1,0xb7, + 0x15,0x53,0xc3,0x47,0x74,0xdf,0x2a,0x64,0xb3,0x84,0x43,0x69,0xcf,0xb6,0x54,0x2d, + 0xdb,0x50,0xf3,0xd8,0x1b,0x13,0x58,0x24,0x46,0x13,0xbe,0xc4,0x6d,0x63,0x38,0x36, + 0x18,0x4d,0x88,0x8d,0xdb,0xc7,0x90,0xf1,0x61,0x90,0x6a,0xf4,0xd1,0x3e,0x2a,0xc9, + 0x71,0x21,0x4c,0xb2,0xb5,0x47,0x10,0xac,0x33,0x07,0x5b,0xef,0x35,0x7b,0xf7,0xfb, + 0xac,0xb4,0xf3,0xad,0x88,0xcb,0x3d,0x03,0x2e,0xdf,0x8c,0xb3,0x0d,0xc6,0xc7,0xaf, + 0x46,0x9b,0x9d,0xde,0xe7,0x4b,0x69,0x95,0xb2,0xf3,0xce,0x51,0x9e,0x69,0x98,0x11, + 0xdf,0xb5,0x3d,0x6c,0x55,0x44,0x9d,0x45,0x14,0xd2,0x0a,0xa9,0xe8,0xfe,0xb3,0xdc, + 0x9e,0x6e,0x2c,0x2e,0xca,0xc7,0xee,0x57,0x55,0x41,0xd5,0x43,0x05,0x22,0xff,0x1d, + 0x40,0x6f,0xb1,0xc1,0x76,0x0c,0xd4,0x2a,0x98,0xa9,0x3c,0x57,0xab,0xae,0x66,0x5d, + 0x0d,0x23,0xe3,0x93,0x93,0xe3,0x71,0x13,0x23,0x41,0xa0,0xdd,0x0f,0x29,0x0b,0x91, + 0xd4,0x70,0x32,0x1c,0x35,0x71,0x12,0xdc,0xd7,0xb0,0xc3,0x9d,0x88,0xa0,0x71,0x1f, + 0x86,0xf8,0xcc,0x0e,0x1f,0x77,0xbc,0x39,0x3e,0x7e,0x33,0x1a,0xbd,0x39,0x39,0x41, + 0xb1,0x28,0x8a,0x54,0x2d,0xc2,0x67,0x9f,0xa3,0x8d,0x7d,0x17,0xf6,0x53,0x3a,0xb4, + 0x72,0xb8,0xaf,0xef,0x73,0x23,0x31,0x7c,0xc8,0xa5,0xc0,0x3e,0x69,0x70,0x53,0x36, + 0x60,0x1a,0x10,0xc4,0x2e,0xf3,0x94,0x2a,0xc9,0xc9,0x9e,0x5a,0xde,0xc8,0x4a,0x91, + 0x23,0x36,0x66,0xb9,0xb8,0xe9,0x88,0x50,0xac,0x0f,0x3c,0x7a,0x39,0x6c,0x62,0x34, + 0xac,0xd5,0x88,0x2b,0x35,0xd1,0xe8,0x47,0xe2,0x1a,0x8a,0x19,0x02,0xbe,0x8a,0x7c, + 0x19,0x2c,0x9c,0x8b,0xd9,0xec,0xed,0xa1,0x6b,0x6f,0xf4,0x17,0xd8,0x5d,0x54,0xbd, + 0xed,0x91,0x28,0xcc,0xd2,0xa6,0xb2,0x94,0x5c,0x68,0x05,0x8a,0xb3,0x5f,0x01,0x1b, + 0x21,0xcc,0x12,0xc3,0xbb,0x94,0x1f,0xa8,0x1b,0xe9,0x55,0x58,0xbe,0x86,0x65,0x61, + 0xb3,0x1c,0xf8,0x4f,0xdb,0x41,0x29,0x32,0x8d,0xe3,0xbc,0xca,0x13,0x49,0x22,0x4b, + 0xeb,0x9c,0x13,0x36,0x12,0xa7,0xaa,0x20,0xf3,0xaa,0x94,0x52,0xe3,0x52,0xc5,0x66, + 0x79,0xad,0xac,0x60,0xa0,0xb5,0xa4,0xb0,0xbd,0x09,0xeb,0x20,0xa5,0x18,0xef,0x38, + 0x42,0xfe,0x63,0x99,0x69,0x09,0xc2,0xeb,0x8d,0x8e,0x88,0x1f,0x8e,0x87,0x83,0xd1, + 0x28,0x64,0xbd,0x0d,0xca,0x21,0x59,0xe6,0xeb,0xbe,0x3f,0xce,0x86,0x20,0xbf,0x53, + 0x97,0xf3,0xb4,0xd8,0x84,0x04,0x1e,0xd6,0x46,0x15,0x5e,0x29,0xe6,0x21,0xad,0xe4, + 0x80,0x9e,0x2f,0x68,0x3a,0x68,0x23,0x4c,0xa1,0x5c,0x08,0x67,0x0d,0xe7,0xaa,0x6d, + 0xcc,0x5a,0x9a,0x30,0xe8,0x6f,0xd2,0x74,0x21,0x62,0x35,0x1a,0x94,0xc6,0x95,0x49, + 0x12,0x44,0xef,0x16,0xf0,0x0b,0x10,0xd0,0xdf,0x47,0x30,0xd3,0x6a,0xc1,0x46,0x11, + 0x92,0x41,0x67,0x5f,0x85,0x95,0xc4,0xdb,0x9c,0x37,0xb4,0x22,0xb1,0x06,0x56,0x48, + 0x39,0x36,0x73,0x83,0x74,0xc9,0x4c,0x65,0x8b,0xc4,0x40,0xeb,0x73,0x42,0x51,0x4b, + 0xd0,0x34,0x3b,0xcf,0x16,0x99,0x95,0x69,0x0c,0x7f,0x63,0xef,0x61,0xae,0xfc,0x1c, + 0xb7,0x87,0xaa,0xad,0xd5,0x46,0x35,0xb6,0x58,0x6a,0x17,0x26,0x6a,0xd3,0x04,0xbf, + 0x0b,0x9b,0xd9,0x65,0xe5,0x6d,0xee,0x8d,0x7a,0xe6,0xc2,0x86,0xe4,0x86,0x28,0xd6, + 0x2d,0xaa,0xa0,0x62,0x82,0xe2,0xe6,0x1e,0x4b,0xab,0xe2,0xae,0xa5,0x9f,0x2a,0x36, + 0xd8,0xb4,0x44,0xd1,0xae,0x31,0x21,0x82,0xc7,0xb1,0xbb,0x2d,0x7f,0x5e,0x9a,0x90, + 0x3f,0xe7,0x68,0x1e,0xa9,0x8a,0x05,0x0e,0x31,0xf5,0xf8,0xdd,0xae,0x8a,0xa8,0x0c, + 0xce,0x10,0x4d,0xad,0xa2,0x87,0x7b,0x62,0x6a,0xff,0xed,0x21,0xc0,0xff,0x1d,0x31, + 0xbd,0x8a,0xc2,0xc8,0x59,0x9f,0x85,0x4f,0x4c,0xd4,0x2a,0xc9,0xa8,0x70,0x10,0xa4, + 0xd6,0x5b,0xc5,0x61,0x3c,0x8a,0x9f,0xf0,0x47,0x93,0x4d,0x66,0x0a,0x44,0xc9,0xe2, + 0x88,0x53,0x8b,0x6d,0x0c,0xf2,0x23,0x89,0x48,0x59,0x24,0xeb,0x17,0x30,0x45,0xda, + 0xfb,0xbf,0x0d,0x7c,0xf5,0x23,0xf3,0xca,0x87,0xcf,0xb0,0xa8,0xf2,0x75,0xec,0xe7, + 0x73,0xf6,0x43,0xde,0x22,0x65,0xb7,0x42,0x47,0x02,0x56,0x1a,0xaf,0x01,0xcb,0x9f, + 0x90,0x51,0xdb,0x72,0x79,0x67,0x5e,0x2b,0x64,0x7a,0x23,0xf5,0x6f,0x65,0xca,0x5c, + 0xe6,0xcb,0x1e,0xda,0xbc,0x91,0x16,0x72,0x55,0x50,0x43,0xef,0xd3,0xcf,0x7f,0x1c, + 0x7c,0xfb,0xea,0xe9,0x1b,0x9c,0x8e,0x93,0xc2,0xe5,0x3b,0x8a,0x8f,0x8e,0x06,0x21, + 0xa5,0x79,0x72,0xe4,0x93,0x1b,0x43,0x7c,0x40,0xf1,0x0d,0x46,0x79,0x1f,0x90,0x04, + 0xbd,0x2f,0x9d,0x77,0x9e,0xae,0xaa,0x7d,0x37,0xdb,0xbe,0xf4,0x9b,0xd6,0xf6,0xbc, + 0x1f,0x1a,0xae,0x4a,0x2d,0x05,0xd5,0x8a,0x7a,0x3b,0xa4,0xa9,0x7a,0x02,0x04,0x86, + 0x26,0x79,0x3d,0x70,0xb2,0xab,0x37,0x26,0xe3,0x46,0xcb,0xcb,0x46,0xcb,0xab,0x46, + 0xcb,0xeb,0x46,0xcb,0xe0,0xa8,0xd9,0x34,0x68,0x36,0x0d,0x9b,0x2a,0xe9,0x1b,0x97, + 0x93,0xce,0xc8,0x7a,0xa3,0xfd,0x84,0x89,0x7e,0xfc,0x09,0x5b,0xc1,0xba,0x7f,0x5e, + 0xed,0x09,0xd3,0x6a,0xfb,0x85,0xc5,0x96,0x14,0xf0,0xb5,0xcc,0xc1,0x4e,0x31,0x5e, + 0x8e,0x7c,0x74,0xcd,0x2c,0x01,0x3a,0xb3,0xd6,0x45,0x01,0x53,0x61,0xad,0xd4,0x1b, + 0x7b,0x66,0xc7,0x9c,0x09,0xbb,0xc5,0x0b,0x95,0xca,0x47,0xdb,0x97,0xb5,0xde,0x50, + 0x1a,0x32,0x79,0xcf,0x9f,0x6d,0xa3,0xbc,0xb5,0x47,0xc5,0x95,0xfc,0x85,0x2d,0xc6, + 0xfd,0x4b,0xf6,0xfd,0x9c,0xb0,0x34,0xfc,0x2b,0xf8,0x96,0xb6,0x79,0x24,0xc5,0x29, + 0x5e,0x9e,0xa0,0x07,0x1f,0xbe,0xde,0x93,0x7d,0xaf,0xb3,0x85,0xa4,0x1a,0xab,0x9e, + 0x91,0x89,0x2a,0x52,0xd3,0x8d,0x47,0x02,0x7a,0xad,0x9b,0xbd,0x53,0x7e,0x81,0x4f, + 0xc0,0x8f,0xaa,0x02,0x8c,0x07,0x8a,0x8f,0x8b,0x82,0x2b,0xcf,0x98,0x7b,0xbf,0x45, + 0xe5,0xa5,0x99,0xfe,0xa7,0x52,0xfa,0x9f,0x94,0x66,0x14,0x3f,0x92,0xda,0x6c,0xcc, + 0x57,0xe0,0xfb,0x40,0xa3,0xb1,0x42,0x87,0x9a,0xef,0x90,0x0a,0x42,0x83,0x3d,0xcb, + 0xa5,0xd3,0xcb,0x65,0x49,0x96,0x37,0x82,0xe1,0x3c,0x5d,0x36,0xcb,0x3f,0x54,0x05, + 0x81,0x6c,0xf8,0x19,0x1e,0xea,0x41,0x25,0x8d,0xef,0xd0,0x0c,0x4a,0x07,0xbc,0x02, + 0xeb,0x64,0xe3,0x02,0xf9,0x2b,0xb4,0x01,0x20,0xb3,0x71,0xc5,0x60,0x90,0x4a,0xeb, + 0xc3,0x5b,0xce,0x5f,0x34,0xa1,0x50,0x65,0xaa,0x84,0x4e,0xe3,0x4e,0x26,0x51,0x08, + 0xa2,0xb5,0xcb,0xb2,0x36,0x8f,0x6e,0x43,0xa3,0x77,0x99,0x26,0x24,0x07,0x8d,0xd9, + 0x85,0x40,0x62,0x56,0xa9,0xef,0xa0,0xbd,0x8f,0x5a,0x4b,0x72,0xc4,0xac,0x9f,0x22, + 0x0f,0x75,0xf3,0x34,0x47,0x55,0xc5,0xc8,0x5f,0x21,0x95,0x39,0x95,0x92,0x09,0xd3, + 0xcd,0x97,0xd0,0xb7,0x3c,0xa1,0x09,0xdb,0xc6,0x9c,0x69,0x1a,0x16,0x6d,0x70,0x9c, + 0x0c,0x86,0x15,0x17,0x07,0x48,0xee,0x81,0x22,0xfb,0x4d,0x58,0xf6,0xe9,0xb7,0x06, + 0x6c,0xa6,0xe6,0xd6,0x51,0x39,0x9b,0x33,0x62,0xa7,0x93,0x0f,0xef,0x3e,0x42,0x8f, + 0xab,0x3b,0x8a,0x50,0xca,0xcb,0xc9,0xbd,0x45,0x46,0x3e,0xf3,0x14,0xa1,0x9c,0x7c, + 0xf0,0x55,0x5f,0x08,0x7d,0xf6,0x35,0xb3,0xeb,0x8a,0xf3,0x5c,0xe9,0x34,0x2f,0x55, + 0x7f,0x9c,0x61,0x6f,0xf2,0xa8,0x7e,0x40,0xae,0x45,0x99,0xaa,0xdb,0xea,0x88,0x89, + 0x20,0xc3,0x7d,0x89,0x0b,0x2c,0xc3,0x22,0xdf,0x84,0x7c,0x30,0xae,0x40,0x27,0x0a, + 0x4f,0x95,0xa2,0xba,0x14,0xb8,0x11,0x59,0xe1,0xa1,0xbd,0xfa,0xeb,0x60,0x38,0xbe, + 0x05,0x2d,0x13,0x99,0x51,0xde,0x87,0x65,0xdb,0xa3,0x00,0x65,0x67,0x20,0xd6,0xb7, + 0xb4,0xc9,0xbd,0x21,0x1e,0x1e,0x8d,0xb6,0xd1,0xfd,0xe3,0x0f,0x9f,0x20,0xc0,0xed, + 0x01,0xfe,0xe1,0xd6,0x4a,0x4d,0x91,0xc5,0x99,0xa6,0x10,0xb7,0x2c,0xd2,0x3e,0x2a, + 0x86,0x65,0x2e,0xe1,0xf7,0xf3,0x77,0x4f,0x00,0xf8,0x4c,0x2e,0x1e,0x0a,0xfc,0xab, + 0xc1,0xeb,0xe1,0x16,0xf0,0x1f,0x39,0x7a,0xe0,0xc5,0x8f,0xe1,0x9c,0x8c,0x3f,0xc3, + 0x67,0x99,0x2e,0x13,0x19,0x42,0x15,0x24,0x17,0x7f,0xba,0xbc,0x82,0x2c,0xcd,0xfd, + 0xe8,0x47,0x1d,0x83,0x57,0x70,0xdb,0xed,0x3b,0xc1,0x96,0x10,0x38,0x7a,0x3d,0xf6, + 0x7e,0xdc,0x6d,0x69,0xf8,0xdd,0x59,0xd4,0x38,0x66,0x8d,0x8f,0xee,0x38,0xd2,0xc7, + 0xa5,0x5d,0xf7,0x93,0x75,0xe2,0x85,0x3a,0x3b,0x8f,0x81,0xa9,0x4e,0xc9,0x07,0x63, + 0xbf,0xdd,0x70,0xc4,0x26,0x2b,0x96,0x6a,0x69,0x42,0xf7,0xc3,0x0f,0x4b,0xe0,0x52, + 0x26,0x84,0x62,0x3c,0x1d,0x2e,0x07,0x0b,0xe9,0xea,0x9c,0x4e,0xb5,0x9a,0x36,0xf3, + 0x04,0xcf,0x89,0x34,0xc9,0xe5,0x57,0x99,0xb7,0x58,0xfd,0xbc,0x3b,0x0f,0x68,0x58, + 0x25,0xa8,0x25,0x07,0xd0,0xc3,0xb3,0x52,0x9e,0x95,0xff,0xc4,0x40,0x6b,0x44,0x0d, + 0x39,0x66,0xd8,0xd6,0x77,0x1c,0x4d,0x8e,0xdb,0xfa,0x50,0x74,0x8f,0xda,0xfa,0x4e, + 0xa2,0xc9,0x09,0xf4,0xa6,0x22,0x67,0x6d,0xd5,0xba,0x35,0x4a,0x87,0x71,0x5b,0xdf, + 0xcb,0x68,0xf2,0xb2,0xa5,0x8f,0x04,0xe2,0xab,0xb6,0xbe,0xd7,0x51,0xc3,0x31,0xab, + 0xb0,0x72,0x84,0x68,0x39,0x6a,0xeb,0x5d,0x88,0x62,0x29,0x10,0x95,0x9f,0xf8,0x13, + 0x2c,0xa7,0xae,0xef,0x0a,0x1f,0xd6,0x58,0xc2,0x3d,0xe0,0x6f,0x4a,0x9f,0xd2,0xb4, + 0x78,0xd2,0x15,0x03,0x90,0xf7,0xba,0x40,0xd6,0xe9,0xcf,0x32,0x99,0xa7,0x55,0x09, + 0xbb,0x6f,0xde,0x47,0xf5,0x30,0xb5,0x41,0xf8,0x23,0x67,0xfe,0xf8,0x80,0x65,0xc3, + 0x3f,0x6e,0xc1,0xcb,0x18,0xf1,0x32,0x06,0xb3,0x5e,0x4c,0x55,0x6e,0x5a,0x99,0x61, + 0x88,0xdc,0x30,0x0c,0xa3,0xba,0x3b,0x8b,0xcc,0xf7,0xc1,0x4d,0x0b,0x67,0x0f,0xc8, + 0x6e,0xe3,0x7d,0x77,0x35,0x61,0x95,0x15,0x29,0x4e,0xee,0x61,0x96,0x3a,0xd1,0xea, + 0xb4,0x8b,0x45,0x49,0xcb,0xd3,0x26,0xc1,0x86,0x3c,0x3a,0x3a,0xda,0x38,0x99,0xfc, + 0xbf,0x86,0x29,0xd9,0x1a,0x5e,0xc8,0xa5,0x2c,0x1f,0x0e,0x82,0xa1,0xe9,0xed,0x50, + 0x74,0x37,0x68,0x2b,0xac,0xf1,0xcf,0x6a,0xf8,0x7e,0x75,0xc0,0x04,0xab,0xa4,0xa6, + 0x2c,0xa5,0x08,0x3a,0xec,0x47,0xa5,0x57,0x42,0xa7,0x2e,0x9a,0x65,0xb5,0x98,0xcd, + 0xb2,0x24,0x06,0x0a,0xc0,0x9f,0x81,0x33,0x2e,0xfa,0x9c,0x7e,0xe8,0x19,0x9b,0xe5, + 0x79,0xa8,0xba,0x32,0xac,0x29,0x42,0x91,0x95,0x39,0x88,0x1f,0xa7,0xed,0x18,0xa0, + 0xae,0x52,0x33,0x18,0x4f,0x55,0x6e,0x1a,0x53,0xd3,0xb5,0xec,0xdb,0xa8,0x3d,0xf8, + 0xcd,0x15,0xb5,0x82,0x73,0x30,0xd0,0x43,0x7a,0x74,0xf3,0x4b,0xdc,0x84,0x18,0x51, + 0x4e,0x32,0x34,0xdf,0x35,0xe8,0x46,0x77,0x9a,0xc0,0x93,0x23,0x38,0x23,0x6d,0xd3, + 0xa1,0x62,0xe7,0xc7,0x5c,0xa9,0x74,0x03,0xd6,0x5c,0x77,0x74,0x97,0x66,0x34,0x2d, + 0xde,0x0f,0xdc,0x60,0xfc,0x6a,0x1f,0x70,0x2f,0x40,0xe6,0x46,0xc2,0xf1,0xb3,0x82, + 0xe3,0x97,0x38,0x9a,0x01,0xed,0x16,0x8d,0xdf,0x8e,0xb8,0x12,0x2c,0xb5,0xa8,0x3c, + 0x9f,0x89,0x04,0x8e,0xab,0x56,0xc0,0x5f,0xa5,0x69,0x0b,0xbd,0xfe,0xac,0x4a,0x97, + 0x06,0x71,0xc5,0x42,0xbc,0x56,0x60,0xc6,0xad,0xf0,0xe9,0xcc,0xf1,0xaa,0xc1,0x38, + 0x3c,0x6b,0x7d,0x96,0x46,0x4e,0x8f,0x8b,0xac,0xc0,0x31,0x99,0x59,0x43,0x41,0x6f, + 0xbe,0xa7,0x6a,0x49,0x6f,0x4e,0xac,0x52,0xb8,0xf1,0xca,0xc7,0x61,0x4b,0xa1,0xad, + 0x09,0x89,0x39,0xe6,0x77,0xb5,0xb4,0xf4,0x9b,0x5f,0xde,0xc5,0x1d,0x92,0x2a,0xc3, + 0x57,0xad,0x9c,0x85,0xf1,0x7e,0x0f,0xf7,0x9c,0x0f,0xda,0x99,0x7c,0x48,0xa5,0x1a, + 0xc9,0x9a,0xfc,0x1b,0x28,0xe6,0x69,0x34,0x1e,0xc5,0xe0,0x5f,0x4d,0x01,0x7e,0xef, + 0xc0,0x5e,0x08,0x5b,0x60,0xae,0xfb,0x03,0xe7,0xf9,0xeb,0xe1,0x30,0xbe,0x0a,0x20, + 0x76,0xf1,0xbf,0x18,0xc9,0x35,0xc0,0x97,0x85,0x49,0x54,0x29,0xd3,0x07,0x63,0x37, + 0x0e,0x2b,0x34,0x8f,0x70,0x9f,0xfa,0xfd,0x77,0xa5,0xcb,0xdb,0x59,0x05,0xae,0x96, + 0xd4,0xb8,0xb2,0xcf,0x42,0x85,0x1a,0x4e,0xde,0x25,0x86,0x80,0x83,0xbd,0xb4,0xe9, + 0x20,0xc6,0x86,0x27,0xe3,0x2d,0xb9,0xa5,0xca,0xca,0x79,0xdb,0x93,0x57,0x55,0x65, + 0xec,0x86,0xdd,0x3b,0x3a,0x45,0x45,0xec,0x0b,0x36,0x7a,0xdc,0x97,0xd6,0x71,0x2a, + 0x95,0x14,0x7f,0xc6,0x81,0xfe,0x5b,0xdb,0x48,0x63,0x75,0x46,0x80,0x5c,0xf1,0x67, + 0xa7,0xe4,0xeb,0x47,0x8d,0xe4,0xf5,0x94,0x76,0x58,0x0e,0x8f,0x19,0x72,0xb2,0x5f, + 0xd6,0x80,0x02,0x46,0xaf,0x6b,0x2f,0xd9,0xe7,0x82,0x12,0x73,0x6e,0x0f,0xa9,0xe1, + 0x0c,0x66,0x92,0x64,0x83,0xd3,0x29,0x44,0xae,0x9c,0x81,0x4c,0x83,0x8f,0x9c,0xe2, + 0x16,0x25,0xca,0xa5,0x3b,0xb9,0xb2,0x59,0x77,0xc3,0x95,0x40,0xdd,0x2a,0xa7,0xf9, + 0x69,0x91,0x0b,0x1c,0xb1,0x39,0xbf,0xa7,0x1e,0x67,0xbf,0x46,0x0c,0x25,0x99,0xc1, + 0x9b,0x80,0x1f,0xf8,0x1b,0xd0,0x06,0x15,0xed,0x1b,0xc8,0xbb,0x5e,0xea,0xc2,0xa5, + 0x98,0x54,0x15,0xc2,0x22,0xd4,0xe5,0xf4,0x60,0xfb,0x8b,0xd4,0x21,0xd4,0x45,0xee, + 0x8f,0xab,0xc5,0x94,0x99,0xae,0x9e,0xfa,0x34,0x11,0xd2,0x7a,0xd4,0x5f,0xb8,0xe6, + 0xda,0xae,0x1f,0x5e,0x18,0xfe,0xdf,0x5e,0x17,0x1e,0xc2,0x7f,0xa7,0x90,0x35,0x2a, + 0xc1,0x63,0x78,0xcf,0x29,0xde,0xb3,0xa7,0x29,0xe8,0xfe,0x6f,0xaf,0xe7,0x7e,0x50, + 0xed,0xf5,0x7f,0x4e,0xe9,0x75,0x3b,0x05,0x5b,0xcb,0xaa,0x59,0x5f,0xf3,0x6e,0xcf, + 0x4d,0xbd,0xba,0x9a,0xd8,0xca,0x57,0x77,0x1d,0x3c,0xb0,0x32,0xba,0x63,0x61,0x74, + 0xb7,0x6b,0x71,0xe9,0xb8,0x0b,0x6f,0x53,0x9b,0xa5,0x73,0x1d,0x24,0x17,0xf3,0x19, + 0x3f,0xed,0xa4,0x9a,0xd4,0x65,0x99,0x2b,0x91,0xf2,0x23,0x2c,0xba,0xbd,0x2c,0x49, + 0xfa,0x80,0x53,0x68,0x2d,0xe7,0xc1,0x09,0x7f,0x89,0x01,0x17,0xc8,0x8a,0xbf,0x73, + 0x70,0xda,0xd5,0xc2,0x06,0x73,0xc6,0x61,0xa0,0x3d,0x5c,0xc2,0x45,0x82,0xfe,0x3d, + 0x84,0xb7,0xfe,0x2f,0xa5,0xce,0x54,0x8a,0x98,0x9e,0x73,0x71,0xd4,0x21,0x75,0x1a, + 0xe0,0x35,0xc3,0x48,0x57,0xca,0xff,0x28,0xfb,0x9e,0xf1,0xe8,0x56,0x6b,0x31,0xf2, + 0xdb,0x40,0x0e,0x18,0xf5,0xca,0x20,0x80,0xfd,0x49,0xf0,0x73,0x2b,0x83,0x0a,0x38, + 0x99,0xbb,0xf7,0xca,0x79,0xee,0xc7,0x6c,0xec,0x46,0xa4,0xae,0x5a,0x3d,0x1e,0x6e, + 0xb7,0xea,0xbd,0x01,0x7f,0x97,0xa6,0xa0,0xc5,0x0a,0xf8,0xcf,0x17,0x07,0xb8,0xdf, + 0xe5,0x5c,0xf6,0x5f,0xa4,0xae,0x62,0x6e,0x99,0xe7,0xcc,0xed,0x3c,0x26,0x60,0x1d, + 0x27,0x3d,0x15,0xca,0x71,0xa9,0x7b,0x82,0x1d,0xbc,0xed,0xb4,0x8e,0x70,0x6c,0x2e, + 0x95,0xb6,0xa1,0x91,0x1f,0x90,0xba,0xaa,0x85,0x50,0xce,0xf0,0x04,0xc0,0xde,0x3e, + 0x90,0x37,0x82,0xc5,0xaf,0x1b,0x4c,0x1d,0x3a,0xc0,0xb2,0xfa,0x14,0x45,0xea,0x6c, + 0x34,0x03,0xbd,0xcb,0xab,0xcf,0xef,0x3e,0xb9,0x7c,0x8b,0x8b,0x33,0x1f,0x3c,0xfe, + 0x04,0x1b,0x38,0x1e,0xe7,0xc9,0xb6,0xa6,0xd4,0x7c,0x70,0xdf,0x56,0xd4,0x69,0x35, + 0x04,0x19,0x1e,0x7b,0xfb,0xa0,0x14,0xe5,0xbb,0x3c,0x87,0xeb,0xbf,0xb6,0x8d,0xf0, + 0xde,0x00,0x89,0x52,0x70,0xdf,0x1d,0xfe,0x3a,0x99,0x77,0x75,0x36,0xaa,0xcc,0x38, + 0xbe,0x13,0x9d,0x1e,0x0a,0x5d,0x39,0x99,0x14,0x9c,0xdd,0xae,0x3e,0x7c,0x40,0x49, + 0x98,0xb7,0x93,0x55,0x1c,0x57,0xe9,0xa1,0xa7,0xa1,0xd5,0x79,0x60,0x85,0x2d,0x48, + 0xe7,0x6a,0xd9,0xd5,0xb1,0xaf,0xb3,0x53,0x03,0xea,0x61,0x88,0x1f,0x1d,0x8f,0x5b, + 0x6d,0x21,0x35,0xb3,0xb2,0x00,0xab,0x82,0xc5,0xc3,0x17,0x75,0xe7,0x42,0xf4,0x06, + 0xc3,0x3e,0xae,0xf1,0x02,0x7c,0xa9,0x25,0x0c,0x47,0x07,0xf1,0x7d,0xfc,0xff,0x7d, + 0xcf,0x74,0x30,0x97,0xba,0xff,0x9d,0x4e,0x7d,0x15,0xce,0x18,0xfb,0x58,0xc1,0xd5, + 0xf9,0xa7,0xcb,0xbd,0xc5,0xec,0xd7,0x97,0xfe,0xcf,0xe3,0x74,0xb5,0x55,0x0a,0x5b, + 0xde,0x6d,0x9a,0xd4,0x2b,0xa9,0x4b,0xa5,0xfe,0xa3,0xbd,0x7f,0xef,0x6f,0xdb,0x46, + 0xf6,0xc7,0xf1,0xff,0xfd,0x28,0x18,0x6e,0x8f,0x43,0x56,0x94,0x2c,0xdb,0x49,0xda, + 0x4a,0x61,0xf4,0x72,0xdd,0xb4,0xcd,0x69,0x6e,0x27,0x76,0xb7,0x7b,0x3e,0x8e,0x37, + 0x1f,0xd9,0x92,0x6d,0xd5,0xba,0xad,0x28,0x5f,0xb2,0x92,0x7f,0x8f,0xfd,0xf7,0x9e, + 0xc1,0x70,0x08,0x10,0x94,0xec,0x6c,0xce,0x7e,0xef,0xed,0x2b,0x16,0x09,0x0e,0x06, + 0x83,0x01,0x30,0x00,0x06,0x83,0x99,0x21,0xc1,0x62,0xf5,0x79,0x5e,0xc5,0x59,0x71, + 0xa4,0x05,0xd9,0x43,0x6e,0xdb,0x64,0xb6,0x06,0x04,0xc4,0xe1,0x7a,0xcb,0xcc,0x75, + 0xc7,0xe4,0xff,0x04,0x2a,0x08,0xa4,0x77,0x07,0xaf,0xfe,0xf6,0x90,0xd5,0xf1,0x5c, + 0xb2,0x3c,0xa4,0x3e,0x6f,0x0e,0x0e,0xbf,0x7b,0xf3,0xd3,0x61,0xf2,0x66,0xb7,0xb1, + 0xd3,0x68,0x26,0x6f,0x10,0x61,0x65,0xbb,0xb1,0xc2,0xae,0xab,0x6a,0x33,0x4c,0x1e, + 0x2e,0x95,0xd6,0xdf,0x0f,0xf7,0x69,0x77,0x81,0xed,0xc2,0x43,0xfa,0xb0,0xd2,0xd9, + 0x30,0x79,0x72,0x33,0x1f,0xed,0xbc,0xdb,0x4f,0x94,0x8e,0xfb,0x04,0x3d,0xf5,0x87, + 0x00,0x6b,0xf5,0xf1,0x5c,0xa7,0x23,0x3e,0xc8,0xcf,0x8d,0x9a,0x7b,0x5f,0x25,0xbb, + 0xb3,0xf1,0x68,0xba,0x5e,0x62,0xbb,0x8d,0xc6,0xe4,0xb0,0x85,0xe8,0x15,0x42,0x17, + 0xdc,0xbb,0x5c,0x96,0x12,0x1a,0x9a,0xa1,0xba,0xe1,0xee,0xdb,0x88,0xb2,0xd7,0x95, + 0x07,0x6e,0x44,0x8d,0x83,0x13,0xdd,0x88,0xae,0x5a,0x8b,0xb2,0x69,0x38,0xad,0x2f, + 0x19,0x7e,0xc6,0x3c,0x95,0x5b,0x5a,0x9a,0x59,0x5d,0x12,0xb0,0xb0,0x36,0x17,0xab, + 0x6e,0xa0,0x08,0xe6,0x6d,0x34,0xcf,0xa8,0xd6,0x9d,0x77,0x0c,0x79,0x8c,0x04,0xb5, + 0x66,0xb0,0xae,0x72,0x35,0x82,0x9f,0x07,0x80,0xc5,0x3e,0x8c,0x53,0x5f,0xbd,0xe7, + 0x35,0xad,0xb1,0xa3,0x14,0x4f,0x27,0x13,0xb3,0x96,0x10,0xe7,0x4f,0xe2,0x66,0xef, + 0xff,0x1a,0x5e,0x96,0x50,0xaf,0x7f,0x9f,0x9b,0x25,0x20,0xff,0x3f,0xdf,0xcf,0x12, + 0x88,0xf8,0xbf,0x92,0xa3,0x25,0x90,0xf3,0x7f,0xbe,0xa7,0x25,0x10,0xf1,0xff,0x0a, + 0x57,0x4b,0xff,0x4f,0x70,0xa6,0xa4,0x96,0x2e,0xdb,0xf5,0xed,0xdd,0xe0,0x86,0x4d, + 0xfc,0xc5,0xc1,0x51,0xe1,0xf2,0x88,0xfd,0xbe,0xad,0x77,0xac,0x64,0x19,0x79,0x43, + 0xa7,0xd8,0x1f,0xe6,0x8e,0xe0,0xb0,0x6f,0x20,0xfc,0xbd,0xbc,0x91,0xc4,0xed,0x12, + 0xc9,0x33,0xa9,0x47,0x1b,0x0f,0x5f,0x75,0xd3,0x66,0xbb,0xb9,0xf3,0xa4,0x18,0x52, + 0xb9,0x55,0x83,0x7f,0xf4,0xeb,0x8e,0x18,0x82,0x23,0xb0,0xb0,0x42,0x9d,0x2b,0xaa, + 0xdc,0xab,0xd1,0xea,0x1b,0x34,0x63,0x64,0x7c,0xcb,0xeb,0x8f,0x21,0x30,0x65,0x73, + 0xbe,0x2a,0x0b,0x63,0xf2,0xb8,0x3a,0x0b,0xb7,0x45,0xe1,0x2f,0x24,0x12,0xbb,0xd8, + 0xf8,0xe1,0x27,0xc0,0xae,0xc2,0x14,0xa7,0x36,0x28,0x8e,0x2c,0x03,0xaa,0xcd,0xd8, + 0xbe,0xfc,0x2a,0x76,0x6f,0xf2,0x81,0x99,0xce,0x97,0xa7,0xf9,0x89,0xdb,0xf5,0x8b, + 0xef,0x76,0x8b,0x97,0x4f,0xf4,0x15,0x96,0xcb,0x76,0x01,0xaf,0x39,0x39,0x8a,0xc5, + 0x63,0x28,0x9e,0x2d,0xec,0xf7,0x4c,0xe2,0xac,0x5f,0x79,0xe0,0x2c,0x2e,0x36,0x3b, + 0x2c,0x0d,0x38,0x3b,0x67,0xae,0x63,0x06,0xb6,0xa8,0x9d,0x74,0xe7,0x12,0xc9,0xc7, + 0x8d,0x7e,0xe0,0x85,0x33,0x43,0x5b,0x7b,0x91,0xcc,0xb0,0x12,0x5c,0x79,0x27,0x82, + 0x83,0x1f,0x32,0x1f,0xe4,0xf1,0x61,0x4d,0x8a,0xeb,0x08,0x24,0x64,0xba,0xd3,0x20, + 0xfa,0xed,0xc7,0x98,0xd1,0x3e,0x37,0xe1,0xfb,0x18,0x15,0x0a,0x9b,0x5d,0xd6,0xe9, + 0x7b,0xe1,0x9c,0x99,0x8f,0x39,0xb6,0x0c,0x50,0x7e,0x99,0x75,0x90,0xf5,0xf9,0x14, + 0x40,0x4d,0xc9,0x2b,0xf1,0x8c,0x09,0xae,0x1a,0xd1,0xda,0x33,0x4b,0xde,0x14,0x48, + 0x63,0xd4,0xcb,0x0a,0xfc,0xac,0x72,0x37,0x43,0xb0,0xb2,0x9d,0x79,0xb0,0xd3,0x21, + 0x1a,0x5a,0x3c,0x5c,0x83,0xcf,0xfd,0x79,0xe3,0xbe,0xae,0x81,0xfe,0x75,0x5f,0xc7, + 0xd0,0xa2,0xed,0x58,0xa6,0x25,0x38,0x72,0x19,0x4e,0x75,0x94,0x27,0xff,0x23,0x22, + 0xc4,0x84,0xa5,0x55,0x72,0x36,0xf5,0x7c,0x2f,0x3b,0xf3,0xa5,0x4b,0x97,0x22,0xaf, + 0xb3,0x9b,0xa8,0x87,0x2d,0x3a,0x36,0x74,0x00,0xd1,0x74,0xfc,0x07,0xdf,0x69,0xa7, + 0x21,0xb4,0x39,0xc4,0x81,0x4e,0x3b,0x60,0x4c,0x3a,0x8c,0xaa,0x89,0xf8,0xc2,0xc5, + 0x0d,0x7e,0x7e,0xed,0x0f,0xa7,0x54,0xc8,0x05,0x7e,0x05,0xf9,0x17,0xd6,0xb0,0x38, + 0x46,0xf9,0xd2,0x6a,0x0e,0xce,0xa2,0x47,0x78,0x6c,0x9c,0x5c,0x65,0x9f,0x63,0x3c, + 0x7c,0xb8,0x1a,0x47,0x47,0x8f,0x0b,0x7c,0x8f,0x8f,0x41,0x58,0xf1,0xfa,0x3f,0x5e, + 0x77,0xbe,0xa1,0x4b,0x95,0xe7,0xdd,0xe9,0xda,0x65,0x49,0x1e,0xac,0x46,0xea,0x2d, + 0x6f,0x95,0xbb,0x44,0x2b,0x74,0x0d,0xbe,0xbb,0x1f,0x38,0x2c,0x4d,0xa0,0x0c,0xd4, + 0xa4,0x35,0x06,0xc0,0x1a,0x52,0xa4,0xdc,0x23,0x25,0xd6,0x87,0xf1,0xb2,0xad,0x5d, + 0xd3,0x5f,0xb0,0x6b,0x39,0x83,0xb1,0xbf,0x30,0xac,0x5c,0x9a,0x57,0xad,0xe0,0x37, + 0xb2,0x29,0x9c,0x96,0xf3,0xce,0x50,0x17,0x83,0xec,0xd4,0x00,0x2b,0x27,0x5a,0x5e, + 0x60,0xd7,0x30,0x29,0xed,0xac,0x89,0x88,0xa0,0x9b,0xdf,0x13,0xf4,0x27,0x2a,0x26, + 0x8a,0x72,0x7d,0x79,0x33,0x6e,0xd8,0xcd,0x78,0xc0,0xbe,0xaa,0xa9,0x1d,0x67,0x57, + 0xde,0xaa,0xbc,0xaa,0x31,0xc5,0x3d,0xbf,0x30,0x14,0x92,0x1d,0x7e,0xfa,0x5f,0x1c, + 0x76,0x4f,0x9e,0x6f,0xd1,0x83,0xde,0x81,0x17,0x9e,0x5a,0x30,0x9b,0x57,0x34,0x12, + 0x19,0x4c,0x12,0x7a,0x45,0x02,0x9a,0x35,0xa3,0xdb,0xdd,0x92,0xcd,0xc6,0xfd,0x32, + 0x3b,0x15,0x18,0xf4,0xe6,0xd1,0x20,0xcb,0x1c,0xd4,0xc6,0xb1,0xfa,0x08,0x35,0x1b, + 0xa0,0x5c,0x0e,0xfb,0xc7,0xe7,0x0b,0xa8,0x0d,0xad,0xaa,0xcc,0xdd,0x35,0xa1,0xc6, + 0xab,0x96,0xef,0x4b,0x7b,0x8b,0x7d,0xab,0x3b,0x15,0x96,0x08,0xd1,0xdc,0x17,0xf4, + 0x85,0xda,0x43,0x13,0xea,0x58,0x09,0xb1,0xe2,0xe0,0x3e,0x99,0xe7,0xed,0x1e,0xac, + 0x21,0x45,0xad,0x34,0x9b,0x43,0x37,0xca,0x2b,0x0b,0x7e,0x59,0xbf,0xa8,0x18,0x15, + 0x14,0x39,0x4b,0x08,0xde,0x58,0x38,0xee,0x3c,0x64,0xe1,0xb8,0x76,0x8c,0x6a,0x14, + 0x51,0x1d,0x60,0xee,0x76,0x70,0x36,0xa1,0x79,0xc1,0x9c,0x3d,0x86,0x81,0xed,0xb5, + 0x9e,0x1c,0x37,0x9d,0x7c,0x76,0x9c,0x4e,0x67,0x02,0x61,0x0c,0x16,0xd1,0x59,0x67, + 0x57,0xe5,0xe9,0x46,0x62,0xab,0x86,0x2f,0x4c,0x76,0xcd,0xc9,0x3c,0x74,0x17,0x4b, + 0x0f,0xe2,0xe3,0xd7,0x48,0x33,0xd6,0x4b,0xf0,0x3e,0x95,0x08,0x65,0xf6,0x67,0xee, + 0x1e,0xf5,0xdf,0x53,0x2e,0xbb,0x55,0xe7,0x72,0x51,0xe6,0x3e,0xbd,0x68,0x91,0xe5, + 0xe9,0x5b,0x23,0xbb,0xe6,0xbc,0xc7,0x19,0x0a,0xa9,0x13,0x87,0xb8,0xd9,0x2d,0x49, + 0x34,0x11,0xe4,0xac,0xe6,0x7c,0x2b,0xbd,0xae,0xe8,0xec,0xce,0x7a,0x8a,0x52,0xaf, + 0x1d,0x8c,0x95,0xdf,0xf7,0x9d,0xd7,0x73,0x8c,0x52,0xee,0x2a,0xfc,0x58,0x2d,0xd1, + 0x25,0x34,0xa8,0x01,0xeb,0xdf,0x72,0x0c,0x37,0xe9,0x0b,0xfe,0xfe,0xeb,0x09,0xed, + 0xbf,0xca,0xc1,0x8a,0x25,0x58,0x84,0x00,0xfb,0x8e,0x16,0xfd,0xf0,0xa4,0xe0,0xa6, + 0x31,0xbd,0xee,0xfb,0x1e,0xe5,0x39,0xba,0xc4,0x64,0x58,0xb1,0xc8,0x7a,0xea,0xc5, + 0x37,0xfc,0xa1,0xed,0x04,0xbd,0xd9,0x29,0x47,0x39,0x39,0x3b,0x8f,0x89,0xb8,0xe1, + 0x00,0x02,0x70,0xca,0x6e,0xca,0x44,0x6b,0x4b,0xd6,0x08,0xf4,0xbe,0x4f,0x5b,0x8f, + 0x21,0xa5,0xc4,0xb9,0x77,0x4b,0xcc,0x16,0x74,0x46,0xcc,0xa7,0xce,0x83,0x4c,0x4c, + 0x3e,0x1b,0xcf,0x4f,0x66,0x22,0xf4,0xaa,0x56,0x7f,0x95,0x6b,0x3f,0xb8,0x3f,0xef, + 0x66,0x97,0xfd,0x5e,0x12,0x9c,0xaa,0xe7,0x4d,0xf2,0xc0,0xf1,0x87,0xf8,0x19,0x7f, + 0x45,0x9c,0xc0,0xb0,0x62,0x7a,0xb6,0xe8,0xeb,0xc1,0x1c,0x7b,0x7a,0xbd,0x78,0x44, + 0xe9,0xc5,0x16,0x1d,0x75,0xe0,0x8a,0xb0,0x1b,0xfe,0x83,0xee,0x19,0xba,0x14,0x69, + 0xcc,0xf6,0x2f,0xa0,0x46,0xeb,0x7b,0x4e,0x02,0x14,0xfc,0x17,0xf2,0x5f,0x00,0xdc, + 0x15,0x54,0x7f,0x37,0xbd,0xb5,0x1a,0xfd,0x6a,0x36,0xc4,0x3a,0x69,0x3e,0x9f,0xb6, + 0xb6,0xb6,0x70,0x75,0xa0,0x01,0x43,0xc0,0xc6,0x93,0xc6,0x36,0x11,0x21,0xd8,0xb6, + 0x26,0x43,0x5f,0x89,0x58,0x75,0x2e,0xb2,0xfd,0x04,0x98,0x4b,0x95,0x01,0x15,0x36, + 0x85,0x8f,0x33,0xaa,0x2f,0x2f,0xfa,0x58,0x30,0x31,0x0f,0x54,0xff,0xf1,0xdf,0x76, + 0x24,0x01,0x73,0x5d,0x7f,0x90,0xc1,0x95,0x29,0x1b,0xff,0x0c,0xe4,0xba,0xb4,0xa5, + 0x97,0xec,0x07,0x06,0x93,0x6a,0x30,0xa5,0x29,0xa5,0x4f,0x25,0xa2,0x0f,0x18,0x90, + 0x8f,0x35,0xb8,0x1a,0x13,0x8f,0xef,0xd8,0xd2,0xcf,0xfa,0x60,0x26,0x45,0x9a,0x55, + 0x73,0xa0,0x87,0xbb,0x43,0x6a,0xae,0x74,0x87,0xd4,0x43,0x14,0x0a,0xf6,0x10,0x7f, + 0xde,0x9f,0xbf,0x1c,0xf6,0xe9,0xf1,0xc7,0xcf,0xaf,0x7a,0xd1,0x63,0x19,0x5d,0x8f, + 0xe3,0x06,0x73,0xf0,0xf5,0x80,0x9d,0x60,0x8c,0x50,0x9b,0xe8,0x31,0xad,0x8a,0x1f, + 0x3f,0xd0,0x7f,0x12,0x1a,0x95,0x7c,0x4e,0xa9,0xdf,0x24,0xa1,0xfc,0xbe,0xc1,0xcd, + 0xda,0x08,0x1d,0xde,0x04,0xea,0x89,0x16,0x2d,0xd2,0x0c,0xf7,0xdd,0x27,0x1a,0x0f, + 0x98,0x9f,0x55,0xf2,0xf8,0x03,0x9e,0xfd,0x43,0x05,0x1c,0xb0,0xda,0x29,0x8d,0x3d, + 0x8c,0xc9,0x56,0xdc,0x0d,0x0f,0xc3,0x03,0x7d,0x6a,0xc3,0x8e,0xb2,0x73,0x25,0xc0, + 0x77,0xe0,0xea,0x0a,0xa1,0x50,0xaa,0x3e,0xf5,0x17,0xee,0x82,0x6d,0x30,0x5d,0xdd, + 0x39,0xdf,0xfa,0x4e,0xc6,0x5a,0x18,0xe2,0x68,0x4f,0x17,0x03,0xad,0x4d,0x2f,0x43, + 0x6d,0x63,0xbf,0x41,0x40,0x8a,0x17,0x48,0x9c,0x48,0xeb,0x2a,0x79,0xd5,0x24,0xb4, + 0x2d,0x14,0xcf,0x7c,0x14,0x4e,0x45,0x4e,0x27,0x70,0x15,0x10,0x56,0x36,0x35,0xba, + 0xf0,0x60,0x8a,0x93,0xd6,0x90,0x42,0x27,0x88,0xb9,0x5d,0x7b,0x03,0x5c,0x0b,0x0e, + 0x5e,0xbe,0x3d,0x7c,0xf5,0xf6,0xe5,0xeb,0x34,0xfc,0x56,0xfe,0x33,0x1f,0x00,0x95, + 0x2e,0xc8,0x84,0xaf,0x15,0x86,0x09,0x3b,0xc0,0xe8,0xb5,0xb8,0xb7,0x25,0xb0,0xa3, + 0x23,0xaf,0x73,0xc5,0xdb,0xfe,0x70,0x20,0x2f,0xa4,0x6a,0x7a,0x9f,0x5d,0x3e,0x7b, + 0x22,0xef,0xb9,0xfa,0xf6,0xc0,0xb8,0x2c,0x54,0x14,0x63,0x38,0x21,0xce,0xde,0xcb, + 0x47,0x49,0x63,0xeb,0xe0,0xdc,0x05,0x93,0xa4,0x65,0xb9,0x97,0x54,0xeb,0xdd,0x2a, + 0x1b,0xcb,0xf3,0xac,0xd5,0x4c,0x4e,0xcf,0xce,0x5b,0x63,0x98,0x48,0x24,0x64,0x0a, + 0xd6,0x5a,0xdc,0x25,0x3d,0xdc,0x57,0xfc,0x4c,0x0f,0xc6,0x97,0x74,0xd6,0x3a,0x3a, + 0x4e,0xc6,0xbc,0x27,0x07,0x34,0x6f,0xe6,0xe9,0x38,0x6d,0x86,0x17,0x5a,0xad,0xb6, + 0x16,0xa4,0x66,0x20,0x18,0x56,0x13,0xe0,0xe1,0x2e,0xa1,0x69,0xfa,0x10,0x2d,0xd1, + 0x9f,0xa3,0xfa,0xfc,0x26,0x39,0xf8,0xf9,0xe5,0x74,0x72,0x7a,0x81,0x67,0x13,0x72, + 0x22,0x7f,0x13,0xff,0x6b,0xf8,0x4e,0xb2,0x57,0xeb,0x6a,0x80,0x5e,0xc3,0x6a,0x67, + 0xbf,0x3b,0xc5,0xa0,0xed,0x1b,0x5a,0x99,0x55,0xc2,0x01,0xba,0x7d,0xc1,0xdb,0xb0, + 0x3c,0xd3,0x1d,0x62,0x89,0x5d,0x8d,0xcd,0xb1,0xca,0x37,0x51,0x16,0x2f,0x64,0xb8, + 0xab,0xc4,0xc0,0x6a,0x78,0xf6,0xd9,0xa8,0x1d,0x27,0x33,0x00,0xdc,0x59,0xf0,0x76, + 0x86,0xbd,0xd9,0x0c,0xb7,0x64,0x21,0x22,0xe7,0x13,0x5a,0xe0,0x34,0xb2,0x21,0x89, + 0x7d,0x52,0x77,0x46,0xd5,0xb8,0xb0,0x6e,0x45,0x76,0x1b,0x1f,0xaf,0x08,0xa2,0x51, + 0xbc,0xa0,0x4e,0x31,0x4f,0xbf,0x89,0xc2,0xbf,0x70,0x52,0x18,0xb7,0xe7,0x0d,0x12, + 0x7d,0x34,0x45,0x03,0x4f,0x3a,0xc2,0x7b,0x21,0xaf,0x30,0x5a,0x22,0xde,0xc2,0x03, + 0x8e,0x77,0x96,0x72,0xd1,0x37,0x9a,0x37,0x3e,0x5d,0x20,0x2b,0xfe,0xa6,0x68,0x9b, + 0x3c,0x35,0x2f,0x2e,0x8a,0x17,0x73,0x5f,0xea,0x09,0xa2,0xbb,0x64,0x07,0xb7,0x7a, + 0x6d,0xe2,0xb0,0xbe,0xb3,0x6a,0x4b,0xb6,0x9d,0xe3,0x73,0x24,0x20,0x1f,0x6f,0xc2, + 0xa2,0xad,0xa3,0xcd,0xe7,0x2f,0xc2,0xe3,0xad,0xf3,0x44,0x0b,0x38,0xcd,0xc1,0x17, + 0xe1,0x66,0xd8,0x0a,0xf9,0x20,0x39,0x4c,0xc2,0xe7,0xf4,0x3c,0x9c,0xd3,0xe3,0x0b, + 0x7a,0x3c,0xa7,0xc7,0xc7,0xe1,0x63,0x3c,0xfe,0xe3,0x6a,0x82,0x97,0xbb,0xa3,0xd3, + 0xe3,0x3b,0x87,0x31,0xbe,0x7e,0x1f,0x0b,0xca,0x78,0xc1,0xa3,0x87,0x77,0xa0,0x69, + 0xb5,0x84,0x67,0x38,0x4a,0xda,0x9b,0x83,0x60,0x2c,0x14,0x51,0x41,0xe7,0x48,0x21, + 0x8c,0x11,0xe4,0x8c,0xf4,0x02,0x8c,0x25,0x36,0xe4,0xca,0xa8,0x04,0x23,0x52,0x4e, + 0x6e,0xf0,0x8a,0x35,0xb5,0xce,0x48,0x90,0xa7,0xf8,0x40,0x80,0x1d,0xb3,0xf9,0x6d, + 0xd9,0x20,0x28,0xda,0x6e,0x35,0x81,0xfb,0x15,0x42,0x11,0x70,0x07,0x78,0x11,0x98, + 0xcc,0x27,0x4f,0x8e,0x41,0xc2,0x84,0xf3,0x98,0x15,0x6a,0x4b,0xb6,0xc1,0x71,0x65, + 0x2e,0xdd,0x5d,0x84,0x49,0xe4,0x17,0x14,0xd7,0x42,0xb3,0xdb,0x50,0xf2,0xe2,0xbc, + 0x0a,0x1c,0xa0,0x29,0xc2,0xab,0xc5,0x6f,0x20,0x98,0xcd,0xff,0xda,0x9f,0x45,0xc2, + 0xe2,0xb3,0x9b,0x34,0x03,0xe4,0xcd,0x72,0x89,0x21,0x3a,0x4a,0xb7,0xfe,0x1e,0x5d, + 0x77,0x3e,0xf6,0x6a,0x1f,0x1b,0xf9,0x9f,0xa8,0xd3,0xe2,0xdf,0xb8,0x13,0x6f,0x35, + 0xfa,0xb7,0xfd,0xd3,0xe8,0xec,0x26,0x16,0x36,0xa6,0xa3,0xce,0xe8,0x68,0xfb,0xb8, + 0x15,0x71,0xfe,0xab,0xf1,0xe5,0x98,0xc2,0x00,0x90,0x3e,0x8f,0xf6,0x45,0x86,0xfd, + 0x5b,0x75,0x2c,0x42,0xa2,0xfa,0xf2,0x1b,0x64,0x27,0xbf,0x94,0x94,0x3d,0xce,0x6a, + 0x69,0x48,0xe9,0x61,0x3b,0xb0,0xfe,0xdb,0xda,0x0a,0xde,0x1d,0xee,0x7d,0xda,0xff, + 0x75,0xef,0x2d,0x64,0xe9,0xa7,0xc3,0xbd,0x5f,0x52,0x44,0x79,0xef,0x12,0xe0,0x06, + 0xdf,0x9b,0x60,0x74,0x94,0x54,0x85,0x8f,0x3f,0x00,0xa1,0x60,0xea,0x06,0x9c,0x97, + 0xed,0xfe,0xe4,0xd0,0x20,0x01,0x02,0x3e,0x85,0xd8,0x90,0xae,0x8e,0x9a,0xc3,0x31, + 0xe5,0xb0,0xd7,0xc9,0xc0,0xc4,0x28,0xac,0xe5,0xef,0xb5,0x30,0x0e,0x5b,0x99,0xc3, + 0x37,0xe8,0x30,0x22,0xf2,0xaf,0x9b,0x40,0xf5,0x9e,0x81,0x77,0xf4,0x93,0xd2,0x9f, + 0xe5,0x72,0x71,0x67,0xfa,0x19,0xbd,0x41,0x2a,0x40,0xb1,0x11,0xeb,0x23,0xab,0xfd, + 0xeb,0xec,0xb7,0x0d,0xa4,0x81,0xac,0xc1,0xbb,0x83,0x80,0x3f,0x64,0xa4,0xe1,0xc0, + 0x1c,0xf5,0xeb,0x21,0xcc,0x2b,0xf6,0xde,0xbf,0x0a,0x7e,0x79,0x09,0xe7,0xad,0x5d, + 0xdc,0x74,0x62,0xff,0x65,0x19,0xb1,0x30,0x23,0xbc,0x8c,0x4b,0xae,0xe7,0x6f,0x6e, + 0xca,0x0a,0x79,0xef,0x04,0xcd,0xb8,0x6f,0x7a,0x3a,0x2c,0xae,0xa5,0x31,0xe1,0x1b, + 0x27,0xa5,0x03,0xdf,0xd2,0x57,0x74,0x01,0x46,0x42,0x4e,0xd5,0xbb,0xc3,0x14,0x50, + 0xf2,0xd8,0xde,0xa8,0x16,0x1e,0x04,0xd1,0x25,0x1c,0x11,0xa4,0x85,0x5d,0x3e,0xf7, + 0xa5,0x7c,0xd5,0xd4,0xc7,0xb1,0x8d,0xc5,0x93,0x06,0xb9,0x77,0x2a,0xb0,0x80,0x26, + 0xa2,0x7e,0x26,0x96,0x88,0x18,0x63,0x4f,0x9a,0xdb,0xf1,0x82,0x3a,0xf0,0x6b,0x8a, + 0xe7,0x05,0xa2,0xe6,0x17,0x74,0x3f,0x8d,0x08,0x7e,0x39,0x9b,0x41,0x02,0x87,0x34, + 0x43,0x86,0xb1,0x96,0x30,0x6b,0xfc,0x99,0x11,0x3d,0xe0,0x24,0x15,0xa5,0xa8,0x73, + 0xcc,0x93,0xcb,0xd8,0x43,0x71,0x35,0x26,0xcb,0x75,0xb6,0xb7,0x61,0x8f,0x67,0x7c, + 0xf2,0xad,0xa7,0xe6,0xd4,0x27,0x05,0x39,0xb5,0xda,0x5d,0x99,0xe8,0x3f,0x0d,0xea, + 0x47,0x84,0x7b,0x73,0x33,0xa7,0xfd,0x51,0x9a,0x22,0x2c,0xae,0xf0,0xb8,0x9f,0x16, + 0xa5,0xfd,0xd9,0xe8,0xd3,0xef,0x72,0x19,0x85,0xdc,0x8c,0x61,0x2d,0xcf,0x02,0xd9, + 0xd3,0xcf,0x6b,0x9e,0xa7,0x21,0x05,0x87,0x55,0x58,0x6a,0xfc,0x69,0x7e,0xf1,0x0e, + 0x8d,0x17,0xde,0xf0,0x57,0x78,0xd1,0xb7,0xf8,0xfb,0x27,0x9e,0x89,0xdf,0xee,0xf8, + 0x9d,0x4e,0xb2,0xb9,0x61,0x3a,0x05,0x63,0x54,0xa1,0xad,0xdd,0x73,0x31,0xea,0x63, + 0xc3,0xd3,0x6b,0x85,0xb0,0x70,0x39,0x0c,0x13,0x13,0x25,0x2f,0x6b,0x2d,0x42,0x11, + 0x55,0xf5,0x43,0xc8,0x35,0xc8,0x0e,0x72,0xd1,0x24,0xae,0xb5,0xb7,0x88,0xcb,0xe1, + 0x1d,0x23,0x6c,0xfd,0xe7,0xc1,0xbb,0xb7,0x8d,0x8c,0xa7,0x80,0xc1,0xd9,0xe7,0x88, + 0x0b,0x71,0x04,0xf6,0xe8,0xf2,0x43,0xff,0x1f,0x90,0xbe,0xc2,0x8e,0x2e,0xb3,0xe3, + 0x77,0xa8,0xed,0xbe,0xe7,0x69,0x32,0xfa,0xde,0x0c,0x7b,0xe9,0xa7,0xa7,0xb3,0xcf, + 0xd3,0xf9,0x64,0x73,0xd3,0xfc,0x92,0xb8,0xfe,0xc0,0x1e,0x0e,0xff,0xca,0x77,0x89, + 0xe2,0xea,0xe4,0xa8,0x0b,0x1c,0x3c,0xe0,0xcf,0xc0,0x64,0x9e,0x08,0xd2,0x66,0x7b, + 0xf0,0xfc,0xfb,0xf6,0xa0,0x56,0x8b,0xbb,0x47,0x83,0xe3,0xf4,0x0d,0xea,0xda,0xe0, + 0x23,0x8b,0x88,0x1f,0x67,0x9c,0x3d,0x8a,0xbf,0xc5,0x35,0x0e,0x64,0x5e,0x31,0x71, + 0x8f,0xba,0x53,0x33,0x6d,0x77,0x8b,0x99,0xec,0x24,0x5e,0x18,0x70,0x3c,0x3e,0xdf, + 0x7e,0xd6,0x09,0x9b,0xe0,0x0e,0xa4,0x2a,0x5c,0x62,0x4c,0x64,0x2a,0xdc,0x06,0x4a, + 0xea,0x2b,0x14,0x8b,0x25,0xc2,0xb7,0x92,0x60,0x40,0x2f,0xfb,0xb9,0xdf,0x05,0x06, + 0x50,0x0e,0x64,0x58,0x3a,0x3c,0x3e,0xca,0x0f,0x1a,0x8f,0xb1,0xfd,0x40,0x25,0x5e, + 0x76,0xed,0xfe,0xdb,0x1f,0x02,0xac,0x3f,0xb4,0x66,0x68,0x33,0x0b,0x46,0x66,0x59, + 0x9d,0x3c,0x8a,0x90,0x84,0xcc,0xd9,0xe6,0x5b,0x3e,0xcc,0x8d,0x00,0x4b,0x08,0xb3, + 0x3e,0x27,0xc7,0x31,0x51,0x20,0x32,0x98,0x2f,0x6f,0xec,0x63,0xc9,0xc4,0x6b,0x0a, + 0xef,0x72,0x98,0x69,0x0c,0x05,0x8a,0xf5,0xe9,0x01,0x85,0x47,0xb8,0x1b,0xb4,0x04, + 0x3f,0xb9,0x3c,0xd4,0x2a,0x6c,0xb8,0xee,0xe0,0x56,0xd4,0x6c,0x5d,0xc5,0x90,0xe2, + 0xad,0x66,0x63,0x54,0x45,0x99,0xe6,0x5a,0x27,0x54,0x72,0x4f,0xca,0xc0,0x0e,0xe5, + 0xb5,0x31,0x53,0x00,0x52,0x5d,0x32,0x77,0xb0,0x6a,0x7e,0xb6,0xab,0x18,0xfd,0x53, + 0xfd,0x75,0x0d,0x62,0x4f,0xe9,0x0e,0xd6,0x8d,0x4e,0x10,0xfe,0x0f,0x5b,0x03,0x84, + 0x1b,0xad,0x87,0xe2,0x6c,0x84,0xa6,0xb9,0xa9,0x81,0xdd,0x58,0x08,0xf1,0x5a,0x4e, + 0x3b,0x7b,0x01,0xd3,0x11,0x28,0xd9,0xec,0x35,0xf2,0x19,0x63,0x38,0x80,0xb6,0x3a, + 0x05,0xaf,0xfe,0x42,0xce,0x7c,0xc5,0xb9,0xca,0x91,0xed,0x2a,0x17,0x1c,0x6b,0x23, + 0xab,0x81,0x8c,0xcd,0x4f,0xbe,0xa4,0x14,0xaa,0xcc,0x71,0x5a,0xec,0x2e,0x5c,0x85, + 0x14,0x1e,0x2d,0xc8,0x8f,0x44,0xd9,0xf3,0x38,0x4b,0xb1,0x11,0x12,0xd6,0x51,0x40, + 0xdf,0x73,0x12,0x04,0x36,0x96,0x5f,0x8f,0x08,0x86,0xad,0xa6,0x42,0xd9,0xb7,0xbb, + 0x1e,0x20,0x9b,0x4f,0xef,0x81,0x28,0x9f,0x65,0xae,0x05,0x76,0x62,0x14,0xc6,0x4e, + 0xff,0x0a,0xbf,0x24,0x62,0x61,0x26,0x11,0x52,0xaf,0x8c,0xfb,0x6d,0x36,0x0c,0x73, + 0x1c,0x5d,0x06,0x48,0xe4,0xbc,0xaf,0xf7,0xde,0x36,0x42,0x2d,0x5c,0x43,0x34,0x95, + 0x0b,0xe7,0x80,0x4d,0x28,0x50,0x42,0x12,0x51,0xf1,0x99,0x1d,0xbf,0xc9,0xc2,0xa1, + 0x91,0x31,0x3c,0x24,0xc6,0x71,0xb9,0x42,0x3a,0x6e,0xce,0x01,0x3b,0x40,0xfd,0x66, + 0xbf,0x1e,0xbe,0xc1,0xae,0x58,0xa2,0x5c,0xac,0x76,0x79,0xee,0x21,0x21,0x95,0x0b, + 0x70,0xe4,0x6a,0x1e,0x6b,0xee,0x17,0x2f,0xf2,0x77,0x8e,0x14,0x66,0x23,0x04,0xf4, + 0x69,0x9a,0x07,0xc3,0x2d,0xfc,0xdd,0x92,0x0b,0x10,0xe5,0x19,0x3e,0x03,0x50,0x36, + 0x67,0x8f,0x52,0x69,0xc6,0x3f,0x6d,0xbc,0x9a,0xad,0x39,0x12,0xe8,0xa1,0x5d,0x74, + 0xd5,0xf4,0xd1,0x23,0x00,0xe1,0xa1,0xad,0x03,0x87,0x93,0x40,0x54,0x9b,0xd0,0x64, + 0x73,0x72,0x07,0x70,0x48,0x26,0x2f,0x18,0x63,0xfc,0x69,0x2e,0x2f,0x9f,0xcc,0x37, + 0x64,0xd4,0x24,0x18,0x72,0xa4,0x16,0x00,0x24,0xd8,0x27,0x39,0xd1,0x5a,0x2e,0x9f, + 0x3e,0xd9,0x96,0x6e,0xec,0x1e,0x84,0xae,0x1b,0xe3,0x1e,0x01,0xe8,0x75,0xb6,0xd8, + 0x62,0x7a,0xe8,0xed,0xd3,0x94,0x5e,0xf9,0xa3,0x27,0x7e,0x09,0x48,0x53,0x3f,0x65, + 0x79,0x32,0xd1,0xed,0x28,0x18,0x18,0x8e,0x53,0x3e,0xe5,0xd0,0x8c,0xd0,0x91,0x32, + 0x0c,0xc4,0x29,0x9f,0x26,0x92,0xc4,0x40,0x9c,0xef,0x80,0xd4,0x86,0x16,0x9a,0x8c, + 0xde,0xdb,0x32,0xdb,0xa4,0x19,0xfd,0x74,0x4f,0x06,0xd0,0xe1,0x0f,0xfa,0x58,0x55, + 0x37,0x39,0xa3,0x51,0x38,0xa4,0x45,0x8b,0x74,0x78,0xba,0x47,0x6d,0xa3,0xac,0xc1, + 0x7e,0x76,0xfa,0x9f,0x08,0x04,0x19,0x50,0x30,0x39,0x79,0x1c,0x69,0x42,0x33,0xf1, + 0x92,0xca,0x79,0x9a,0x71,0xab,0x49,0x82,0x11,0xc8,0xb8,0x35,0x46,0xbd,0xec,0x45, + 0x33,0x86,0x6f,0xf0,0x4f,0x6f,0xf6,0xfe,0x96,0x16,0x89,0x4c,0x0b,0x6d,0x95,0x64, + 0xa7,0xd4,0xce,0x77,0x0a,0x48,0xe1,0xdf,0x4f,0x90,0x57,0xfd,0xfc,0x0b,0x9f,0x0e, + 0x65,0xfc,0xa3,0xc0,0x13,0x9a,0xa2,0x33,0xf3,0x4b,0x89,0xbc,0xf4,0xfe,0x91,0xde, + 0xf6,0x81,0x3f,0x92,0x2f,0x5c,0x98,0xc8,0x0e,0x09,0x05,0xed,0x8c,0x39,0x60,0x40, + 0x22,0x61,0xcd,0xbd,0x72,0xcb,0xc0,0xe1,0xc0,0xd0,0x2e,0xac,0x50,0x80,0x9d,0xcd, + 0xb7,0x58,0x98,0x16,0xfb,0x3e,0x49,0x90,0x12,0x8d,0x14,0x3e,0x49,0x19,0x89,0x44, + 0x86,0x46,0x74,0x7e,0x4f,0x7b,0xa0,0x72,0x4d,0xb8,0x35,0xe9,0xf1,0xb6,0xd9,0xd8, + 0x24,0xc4,0x8b,0x93,0x92,0x78,0x79,0x79,0xf8,0xfb,0xfb,0x50,0xd1,0xa8,0x6c,0x14, + 0xf0,0x3b,0x5a,0xdc,0x95,0xf3,0x40,0x72,0x85,0x77,0x52,0x19,0xb1,0x47,0x5d,0x2d, + 0x5c,0x4b,0xab,0x2e,0x5d,0xf1,0x59,0x1d,0xa5,0x10,0x05,0xa2,0xc0,0x0a,0xbd,0x8d, + 0x84,0x2a,0x31,0x0a,0x15,0xd7,0xdd,0x5d,0xdc,0xb2,0x5f,0x2b,0x36,0x09,0x53,0x23, + 0x42,0x04,0x28,0x9d,0xca,0x13,0xba,0xd3,0xd1,0xb1,0xce,0xb2,0x46,0xa2,0x38,0xfb, + 0x9d,0x3b,0xdd,0xc4,0xe2,0x7b,0x99,0x81,0x96,0x9d,0x86,0x00,0x2e,0xd4,0xd1,0x3f, + 0x12,0xee,0x3c,0xda,0xfb,0x66,0xab,0xd2,0x6f,0xc8,0xcd,0x4a,0x6c,0x52,0x64,0xff, + 0xb4,0x58,0xd5,0x21,0x42,0xcb,0xce,0xf8,0xac,0x3b,0xa0,0x50,0x3a,0x75,0x8e,0xb8, + 0xfa,0x99,0x3c,0x06,0xb5,0xad,0xbd,0x20,0xfb,0x23,0xdf,0x69,0xb2,0x9a,0xa8,0xb4, + 0x01,0x21,0x42,0xa3,0xeb,0x78,0x71,0x14,0xfe,0x25,0x0f,0xb3,0x9d,0xd0,0xa3,0x51, + 0xdc,0xf1,0x33,0x07,0x10,0x38,0xf6,0x97,0x59,0x83,0x1e,0x68,0xa3,0xbf,0xd5,0xad, + 0x8a,0x82,0xbe,0x01,0xe6,0x35,0x5d,0x4f,0x35,0x41,0xb4,0x2d,0xa9,0x80,0xc3,0x02, + 0xc2,0xac,0x44,0xda,0x46,0x07,0x00,0xa7,0xf5,0xdd,0xd9,0x88,0x2e,0x23,0x7f,0xe6, + 0x99,0x0d,0xdf,0x03,0x9e,0x4f,0x72,0xaf,0xd1,0x26,0xd8,0xf6,0x20,0xe3,0x47,0x0e, + 0xe3,0x4c,0xf3,0xe2,0xc6,0xd5,0x94,0x86,0x33,0x9d,0x16,0xff,0x48,0x56,0x1d,0x4e, + 0xed,0xb5,0x39,0xb9,0xc9,0xa2,0x82,0x0b,0xb1,0xe9,0xbc,0x56,0x8c,0xee,0x98,0x6a, + 0xf7,0x92,0xce,0x3b,0x89,0xca,0xfe,0x18,0xa3,0x2f,0x8f,0x86,0x9d,0x14,0xed,0x78, + 0x4d,0x6b,0xcf,0x6b,0xef,0x64,0x54,0x06,0xe6,0x7c,0x9c,0x16,0x58,0xf1,0x86,0xba, + 0x91,0x8a,0x08,0x13,0x04,0xdf,0x56,0x4e,0x49,0x7f,0xd4,0x2e,0x20,0xb0,0x1f,0x2d, + 0x37,0x3a,0x24,0x04,0x6f,0xd5,0x65,0x30,0x18,0x62,0xbf,0x66,0x9f,0xb8,0x51,0xb5, + 0x51,0x5c,0xe4,0x93,0x42,0x4b,0x89,0xa1,0x35,0x37,0x88,0x61,0x53,0xc6,0x3b,0xb4, + 0xee,0x86,0xaf,0x21,0x70,0x37,0xfa,0xde,0x6e,0x5c,0xc7,0x67,0xd6,0xca,0x37,0xd1, + 0xc9,0x9f,0xad,0x3f,0xef,0xaa,0xb0,0xdd,0x82,0x8d,0x0e,0x67,0x58,0xa5,0xc6,0xe3, + 0xf1,0xb6,0x41,0xea,0x07,0x74,0xe7,0x78,0xa1,0x23,0x53,0x19,0xe7,0xd3,0x4a,0x2c, + 0x7b,0xc0,0x20,0x2d,0x8f,0x51,0x19,0xde,0xeb,0xda,0xe2,0xb6,0xa1,0x1a,0x83,0x90, + 0x61,0x64,0x18,0xf2,0x02,0xdf,0x17,0x4e,0x15,0xd5,0xf1,0xb1,0x57,0x0f,0x6f,0x2e, + 0x25,0xcc,0xf5,0x07,0xda,0x7d,0x0b,0x73,0xca,0x05,0x2b,0x12,0xb4,0x4b,0x20,0x0d, + 0x7d,0xc2,0x13,0x75,0xca,0x30,0x25,0xc0,0x1a,0x00,0x55,0x24,0x3b,0xaa,0x02,0x1c, + 0x29,0x60,0x43,0x1f,0x5d,0xc6,0x0b,0x1a,0x8c,0xd8,0x7c,0x63,0x73,0xf4,0xbf,0xc1, + 0xcb,0xff,0xcd,0xbb,0xa2,0xb9,0x2c,0x6c,0x8d,0x2f,0x6f,0x71,0xe1,0x6c,0x3a,0x54, + 0x62,0xb4,0x36,0x28,0x1b,0x28,0xcc,0x3e,0x25,0x35,0x2f,0xc9,0x28,0x99,0xa5,0xa7, + 0x66,0x89,0x91,0xfc,0x03,0x4f,0xb4,0x38,0x83,0x0a,0x8e,0xe7,0x73,0x3e,0x74,0xb8, + 0x41,0x22,0xad,0x79,0xb8,0xe5,0xa3,0x51,0x7a,0xd9,0x18,0x31,0x91,0x5b,0x7f,0x27, + 0xd0,0xe8,0x68,0xbb,0xfe,0xc3,0x71,0xfc,0xb1,0x11,0x7d,0xbc,0xa9,0xc5,0xdf,0x6c, + 0xc5,0xb1,0x51,0xc9,0x67,0x69,0xf4,0x8f,0x06,0x23,0x21,0x29,0x1e,0x1f,0xd5,0x48, + 0xaf,0x59,0xdf,0x3e,0x66,0xed,0x1e,0x01,0x5c,0xa7,0xd9,0xd1,0xe8,0x68,0xe7,0xf8, + 0x58,0x0e,0x0d,0x91,0x90,0xd2,0x11,0x44,0x27,0x0c,0x5b,0xa2,0x26,0xb8,0x46,0xdd, + 0xcd,0x1d,0x59,0xaa,0xf2,0x06,0xdd,0x0d,0x37,0x11,0x3e,0x5a,0xda,0xcd,0xe9,0xb5, + 0xcd,0x1f,0xdc,0x28,0x1c,0x16,0x88,0x7e,0xf8,0x44,0x1f,0xcc,0x52,0x41,0x73,0x68, + 0x88,0x8a,0xca,0x0c,0x48,0xaf,0x84,0x97,0x58,0x0c,0x95,0x79,0xe4,0x5b,0x87,0xee, + 0x22,0xb6,0xc8,0x3c,0x4b,0xb2,0x5b,0x41,0x03,0xac,0x7c,0x94,0xf8,0x89,0x13,0xd3, + 0xd4,0xb8,0xfb,0x5f,0x2e,0xdd,0x54,0x0e,0x14,0xd0,0xb1,0xd3,0x5c,0xac,0xdd,0xb9, + 0xa2,0x13,0xb6,0x01,0xb6,0x0b,0xc5,0xa2,0x14,0x3a,0xf6,0x3f,0x23,0x31,0x96,0xec, + 0xf3,0x5b,0xff,0xf3,0xfc,0x56,0x32,0x77,0xcf,0xfc,0x8f,0xdd,0x33,0xc9,0xaa,0x4e, + 0x2b,0x3d,0x10,0xf9,0x20,0x48,0xe6,0xab,0xc0,0xe4,0x83,0xa0,0x23,0xa7,0x8c,0x16, + 0x5f,0xf0,0x66,0x73,0x90,0x21,0x1c,0x6f,0x88,0x0a,0x2a,0x09,0x3e,0xbf,0xd5,0x07, + 0xa1,0x9f,0x05,0x89,0x9f,0xd6,0x67,0x63,0xaf,0x67,0x9a,0x01,0x2f,0xfb,0x3c,0xf4, + 0xae,0xfa,0xd1,0x4c,0x08,0xb6,0x9d,0x03,0x5a,0xa8,0xad,0x54,0x0f,0xb7,0xe3,0x68, + 0x59,0xf3,0x44,0x66,0x20,0x36,0xe4,0x23,0x0d,0x90,0x98,0x21,0xd0,0xf5,0xc4,0xf0, + 0xc7,0xcd,0x2e,0xba,0x63,0xaf,0xdd,0x2b,0x11,0x09,0xec,0x72,0xb9,0xfd,0x54,0x08, + 0xf7,0x1d,0x01,0xaf,0xa5,0x04,0x50,0x9f,0xd6,0x52,0x03,0x80,0x87,0x53,0x24,0x08, + 0x7d,0xaa,0xc4,0x89,0x96,0xdd,0xae,0x9c,0xe0,0x33,0x51,0x1d,0xe3,0xf8,0x5d,0x8a, + 0x3f,0xd1,0x36,0x50,0x90,0x7a,0x5e,0x80,0xd6,0x64,0xf9,0x64,0x20,0x34,0xa7,0xe7, + 0x7e,0x67,0x5d,0xde,0x1c,0x46,0x72,0x5b,0x8e,0x6c,0xec,0x1a,0x51,0xea,0x27,0x93, + 0x6a,0xe0,0x3c,0xc7,0x5c,0x5e,0x11,0x06,0xe0,0x53,0x0e,0xe0,0x52,0xb7,0x3e,0xb7, + 0x12,0xb8,0x02,0x87,0x1e,0x6f,0x49,0x36,0x95,0x73,0x7a,0x7b,0x4c,0x11,0xde,0xf0, + 0xab,0x19,0x85,0xaa,0x4b,0xd4,0x8f,0x78,0x93,0x6f,0xee,0x9d,0x0e,0x0b,0x42,0xd3, + 0xa4,0x08,0xe7,0x0e,0x8d,0x47,0xf8,0x4d,0xc3,0x7c,0xff,0x24,0xdf,0xd1,0x4d,0x84, + 0x68,0xc7,0xb1,0x8c,0x66,0xfb,0x47,0x9e,0xe2,0x75,0x16,0xc7,0x17,0x8b,0x82,0x4b, + 0x02,0xd3,0x6c,0x79,0x30,0xd1,0xef,0xfc,0x6a,0x23,0x10,0xd5,0x87,0x02,0x48,0x82, + 0x27,0xa1,0x1c,0x87,0x0b,0x0a,0x9d,0xa7,0xf8,0xd4,0xa9,0x97,0x03,0x85,0xa5,0xb7, + 0x6a,0xb4,0x90,0xd4,0x0a,0x85,0x17,0xeb,0xcb,0xcc,0xfa,0x82,0x97,0xea,0x62,0x56, + 0xf6,0x12,0xd4,0xd6,0xed,0x18,0x65,0x67,0x00,0x8a,0x5b,0xd3,0xfc,0x8a,0xbb,0x59, + 0xd6,0x94,0xa5,0x30,0x5e,0x77,0xd4,0x7b,0xce,0x5a,0x1e,0xbd,0xe9,0x47,0x75,0xd8, + 0xa2,0x9f,0xcd,0xbb,0x96,0x2f,0x9e,0x4e,0xac,0xef,0xfc,0x2e,0x08,0xf4,0xd6,0x71, + 0xf1,0x39,0x4f,0x62,0x0c,0xe5,0xeb,0xbe,0x1e,0xe5,0x0a,0xfe,0xc9,0x00,0x08,0xd9, + 0x7c,0x37,0xd6,0x42,0x4a,0xaf,0x1e,0x77,0xdc,0xfb,0xb3,0x25,0xe8,0x4f,0xfa,0x41, + 0x8e,0xaa,0x64,0x28,0xda,0xe6,0x04,0x43,0x5a,0xf5,0xf5,0x87,0xb2,0x41,0x1d,0xea, + 0x19,0xbb,0x5e,0x06,0x8e,0x05,0x25,0xbe,0x71,0x5a,0x69,0x28,0xe8,0x57,0xb3,0x1e, + 0x77,0x90,0xa3,0x2e,0x2f,0x09,0x79,0x72,0xbd,0x06,0x7d,0x81,0x37,0x8d,0xae,0xf1, + 0x89,0x90,0xcb,0x91,0x92,0x62,0x4d,0xaf,0x1d,0xbc,0x12,0x5c,0x6b,0x5f,0xed,0x4c, + 0x5e,0xf6,0xb0,0x3a,0x8d,0x4e,0x8d,0xb5,0x89,0x1c,0x0b,0xca,0x9b,0xa3,0xc0,0x46, + 0xb3,0x66,0xe9,0xbb,0x13,0xf2,0x10,0x63,0x9d,0x34,0x41,0x09,0x01,0x97,0x0d,0xef, + 0x67,0x14,0x31,0x11,0xac,0xa2,0xdc,0x04,0x68,0x4e,0x9f,0x04,0x8d,0xa1,0x23,0x4b, + 0x2c,0x09,0x16,0x6f,0x6c,0x6e,0xba,0x5f,0x8f,0xac,0xaf,0xc7,0xd8,0xe3,0x67,0x46, + 0x3e,0x38,0xc9,0xc8,0xf4,0x68,0x2d,0x76,0x96,0x80,0x8c,0x5c,0xb3,0x6b,0xea,0x31, + 0xf8,0x93,0x9b,0x2f,0xa1,0x9a,0x6e,0x6e,0x07,0x0e,0xcd,0xac,0x9f,0x2b,0x0d,0x6f, + 0x64,0x57,0x25,0x0a,0xff,0xfb,0x40,0x53,0x06,0xf6,0x2b,0xec,0x92,0x16,0x86,0x72, + 0x52,0x21,0x50,0xbd,0x03,0x54,0x39,0x7d,0x18,0x2f,0x3b,0x6b,0x58,0xd9,0xaa,0x62, + 0x24,0xb7,0x93,0x53,0x50,0x35,0xc3,0xbf,0x8a,0x8f,0x0a,0x75,0x3f,0x37,0x65,0x0b, + 0x7b,0xc7,0x1d,0xb7,0x44,0xda,0x8a,0xbe,0xc0,0xba,0xa9,0xfb,0x9a,0x07,0xff,0x4b, + 0x8f,0xc5,0x46,0x2c,0x2b,0xf1,0xd0,0x3f,0x1f,0xe3,0xed,0x8c,0xd9,0x04,0x95,0xaa, + 0x75,0x79,0x6c,0xcc,0xc4,0xd2,0xeb,0x82,0x1c,0x24,0x3a,0xe7,0x79,0xab,0x4f,0xdc, + 0x50,0x23,0xeb,0x64,0xf3,0x12,0x0c,0x44,0x41,0xd6,0x00,0x6f,0x57,0x1e,0x25,0x72, + 0x81,0xa1,0x29,0x57,0xd4,0x53,0x40,0x64,0x5e,0x01,0xc6,0x0f,0xa0,0x01,0xe3,0x9b, + 0xd9,0xd6,0xeb,0x73,0x10,0x42,0xeb,0x0b,0xef,0x89,0x2b,0x19,0x70,0x6a,0x82,0x31, + 0x55,0xb3,0xc0,0x39,0xd9,0x3d,0x1b,0xad,0xac,0x96,0x5b,0x2b,0x40,0x72,0xbd,0x54, + 0xec,0x94,0xcb,0x02,0x41,0x77,0xb1,0xd4,0x42,0x09,0xe1,0x55,0x3d,0x4a,0xf4,0x89, + 0x94,0x6f,0x6b,0x1a,0x09,0xb7,0x10,0x94,0x4e,0x8a,0x4f,0xf3,0xb8,0x76,0x59,0x7b, + 0x2c,0x47,0x68,0x44,0xa0,0x32,0xd8,0x41,0x08,0x32,0xac,0x53,0x65,0x91,0x86,0x3d, + 0x36,0x1b,0x4c,0x19,0x60,0x7f,0x02,0xef,0xc3,0x51,0x9c,0xf0,0xcb,0x4f,0xdc,0xe8, + 0x8f,0x4e,0x29,0xed,0xe5,0x3f,0x22,0x07,0x3c,0x91,0x7e,0x20,0x84,0x4a,0x5f,0x10, + 0x72,0x56,0x72,0x6d,0x4d,0x53,0x5b,0x45,0xc6,0xc2,0x27,0x49,0xb1,0x9b,0xdc,0x14, + 0x97,0x3a,0xa4,0xf8,0x3d,0x40,0x01,0x5d,0x21,0xc5,0x1b,0x28,0x9f,0xdf,0xfa,0xe9, + 0xa1,0xec,0x06,0xe8,0x43,0x18,0x0e,0xb0,0x82,0xdf,0xb0,0x76,0x05,0xd1,0x17,0x1f, + 0x90,0xc8,0x37,0x2e,0x28,0xd9,0x99,0x99,0x9c,0xed,0x9c,0x1a,0xa8,0x50,0xf2,0x27, + 0x59,0x48,0xca,0x84,0x24,0xd3,0x27,0x51,0xc5,0xce,0xc9,0x53,0x31,0x1f,0x10,0x60, + 0x4e,0x8b,0xe9,0x5c,0x24,0x77,0x62,0x5d,0x02,0xc8,0x93,0x09,0x86,0xd9,0xcc,0x39, + 0x5e,0xa4,0xdb,0x9b,0x9b,0xfc,0xf4,0x3c,0xdd,0x6e,0xe6,0x45,0x71,0x02,0x8e,0x11, + 0xf8,0xb7,0x16,0x45,0x8a,0x32,0x4d,0xb7,0x9f,0x2d,0x97,0xd6,0xeb,0xee,0x4e,0xdc, + 0x09,0x83,0x3c,0x01,0x59,0xf2,0xc7,0x16,0x9b,0x52,0xf8,0xdb,0x71,0x50,0x32,0xc3, + 0x1e,0x05,0x9a,0x98,0x67,0x4f,0x9f,0xed,0x3c,0xc5,0x81,0x05,0x32,0xb9,0xdf,0xd9, + 0xc3,0xb3,0x01,0x69,0xe2,0x3f,0x57,0x43,0x4d,0xbe,0xdd,0x98,0x9b,0xb9,0x59,0x94, + 0x70,0xa9,0xdc,0x4e,0x92,0x4c,0x2d,0x95,0x70,0x35,0xca,0x00,0x9c,0xc8,0x0d,0xc9, + 0x3c,0x17,0xf8,0xe5,0xf2,0x11,0x7f,0xd0,0x55,0x80,0xa4,0xeb,0x92,0xe3,0x51,0xa9, + 0x75,0x4c,0x8b,0x8c,0x57,0xb5,0x46,0x1b,0x4f,0x2a,0x1d,0xc6,0xcc,0xed,0x31,0x71, + 0xba,0x23,0x55,0x1e,0xc7,0x2d,0xf1,0x90,0x8e,0xb6,0x2d,0x51,0x98,0xb3,0x92,0x88, + 0x14,0x0c,0x2e,0xa3,0x4a,0xcd,0xe2,0xa5,0xa2,0x75,0x3a,0xa5,0xc4,0x56,0x33,0xf6, + 0xca,0x99,0xdd,0x56,0x96,0xe0,0x35,0x95,0x97,0x91,0x1b,0xca,0xc9,0xbb,0xb6,0x19, + 0x9d,0xc1,0xc0,0xb3,0x9f,0xdb,0xb4,0xf6,0xe7,0x11,0xee,0x24,0x3f,0xb8,0x81,0xf3, + 0xc6,0x59,0xdf,0xd0,0x42,0xa5,0x69,0x30,0xc3,0xf3,0xd4,0x64,0x48,0xd5,0x4b,0x7d, + 0x31,0x78,0xee,0x6d,0x0b,0x73,0x34,0x67,0x7b,0x5d,0x5f,0x73,0x98,0x6b,0x20,0x62, + 0xc9,0xe3,0x7b,0xa9,0x5f,0x93,0x57,0xb3,0x82,0x6c,0xdb,0xf5,0x18,0x77,0x5b,0x61, + 0x02,0x73,0x8a,0xbe,0x18,0x60,0x58,0xb4,0xac,0x69,0x62,0x1e,0x71,0xeb,0x5b,0x12, + 0xe6,0x2b,0x65,0x19,0x20,0xf4,0xf2,0x49,0x54,0x33,0x5c,0x37,0xe6,0xef,0x98,0x52, + 0xb9,0x0f,0xc7,0xe5,0x78,0x3e,0xfc,0x79,0xd8,0x19,0x08,0xe9,0x3a,0x56,0xd3,0x98, + 0x35,0x07,0x75,0x80,0xcd,0x4d,0x4e,0xb6,0x56,0x1f,0x0e,0x0e,0x67,0xf2,0x41,0xca, + 0xbf,0x34,0xfd,0xf4,0xec,0x99,0x87,0x7b,0x1d,0xfd,0xe1,0xd9,0x27,0xb2,0x4b,0x4b, + 0x98,0x94,0xc4,0x10,0x6d,0x37,0x64,0x85,0x01,0x46,0x2e,0x4c,0xc8,0xb2,0x08,0x0e, + 0xe2,0x5a,0x7e,0xe8,0x0c,0x71,0x07,0x6f,0xc7,0xcd,0x18,0x7e,0x66,0xb3,0x21,0x6d, + 0xc1,0x70,0xff,0x0a,0x93,0xdd,0x28,0xcf,0xb2,0x95,0x59,0x6e,0xf3,0x4d,0xc4,0x53, + 0x3e,0xbd,0x21,0xc7,0x95,0x23,0x9c,0x82,0x41,0x4d,0xd0,0x1f,0x7e,0x26,0x57,0x1c, + 0xc8,0x41,0x2e,0xbc,0xf1,0x81,0x03,0x0d,0x8b,0xe7,0x0c,0x46,0x1e,0xbe,0xa6,0xc6, + 0x94,0x18,0x0c,0x38,0x19,0x23,0xe4,0xdd,0xe1,0xe9,0xd5,0x90,0x9d,0xfa,0x82,0x77, + 0x6e,0x58,0x79,0x89,0xd7,0xa8,0x11,0x1c,0xf9,0x60,0xcd,0xc4,0x52,0x6d,0xb8,0xbb, + 0x42,0x6b,0x11,0x21,0xa3,0x76,0x9a,0x42,0xb7,0x4e,0x76,0x65,0xba,0x38,0x58,0x65, + 0x52,0x36,0x3d,0xb2,0x56,0x54,0x80,0x4b,0x73,0x79,0x79,0x57,0x4c,0x20,0xd3,0x06, + 0x85,0x59,0xac,0x85,0x09,0x3a,0x5b,0xe3,0xe4,0x46,0x1e,0xb2,0x33,0x79,0x38,0x9d, + 0x79,0x73,0x84,0xd9,0xeb,0x45,0xfc,0x28,0x1b,0x3b,0x11,0x27,0x74,0x17,0x21,0xad, + 0x91,0x39,0xb0,0x75,0x39,0x81,0x9b,0xdf,0x06,0xb6,0x9e,0x1b,0xf4,0xcc,0x50,0x29, + 0x67,0x56,0xaa,0x8a,0x43,0x68,0x83,0xc9,0xb3,0x47,0x39,0x35,0x13,0x3a,0xe7,0x42, + 0x2f,0x76,0x8b,0x8c,0x05,0x8b,0xec,0x03,0x8c,0x7a,0x32,0x3d,0x6d,0x4b,0x5f,0x27, + 0xfe,0xe5,0xab,0x1a,0x79,0xd6,0xbb,0x1e,0xb2,0x77,0x90,0x24,0xb6,0x65,0x51,0x2c, + 0xf7,0xed,0x37,0x5c,0x6b,0xad,0x05,0x1b,0x38,0x1c,0xd0,0xd9,0x08,0x3a,0x74,0xe1, + 0x67,0x2e,0x6e,0x3b,0x1f,0x60,0xba,0x23,0xe9,0x77,0x1b,0x45,0xa3,0x5e,0xae,0x6c, + 0x53,0xe6,0xf4,0x65,0x6a,0x6f,0x00,0x92,0xeb,0x54,0x8f,0x8c,0x88,0x4e,0xae,0xa4, + 0x59,0xca,0xbb,0xbb,0x02,0xff,0xe8,0x57,0xc6,0xaa,0xc8,0x40,0x98,0x44,0x11,0x62, + 0xbe,0x51,0x4a,0xa7,0x5c,0x8d,0x33,0x7c,0xa1,0x0f,0x68,0x1f,0x7c,0xdb,0xdc,0xc4, + 0x1f,0xf7,0xc6,0x06,0x60,0x28,0xba,0x69,0xc8,0x6b,0x36,0x30,0xfe,0xf4,0x22,0xc7, + 0x2c,0xab,0x34,0xa9,0x92,0xac,0xfd,0x57,0xdb,0x3e,0xea,0x11,0xa2,0x66,0xd2,0xce, + 0xbd,0x3e,0x8f,0xce,0x8d,0x72,0xba,0x55,0xea,0xf2,0xeb,0xab,0x9d,0x9b,0x07,0x7a, + 0x81,0x18,0xd7,0x4c,0x38,0xa7,0x0d,0x81,0x96,0x25,0xba,0x97,0x39,0x30,0x26,0x3c, + 0x47,0xa5,0x58,0x78,0xc7,0xc9,0x7a,0x48,0x2f,0x10,0xde,0x3a,0xa1,0x2b,0x73,0xc0, + 0xa3,0x48,0xa9,0xd9,0xdc,0xd4,0xc7,0x86,0x60,0xe0,0xba,0xeb,0x41,0xa8,0xe6,0xa2, + 0x4a,0x67,0x9f,0xc7,0xa7,0x12,0x66,0x52,0x6c,0x17,0xd8,0x1a,0x44,0x97,0x80,0xc2, + 0x4c,0x24,0xe9,0xae,0xc4,0xdb,0xd2,0xb4,0xbb,0x67,0xbf,0x42,0x42,0x53,0xbe,0xc2, + 0xde,0x78,0x1b,0xf6,0xc6,0xa9,0x1a,0x20,0xb1,0xe1,0xf1,0x42,0x56,0x1f,0xd4,0xe3, + 0x7f,0xa6,0x29,0x39,0x8b,0xbe,0x71,0x47,0x44,0x32,0x88,0xdb,0x95,0x40,0x32,0x3a, + 0x04,0xe6,0x8e,0xc9,0x7e,0x4f,0x6a,0x56,0xc0,0x0c,0x21,0x81,0x99,0xe8,0x6a,0x15, + 0x94,0x23,0x72,0xda,0x65,0xd3,0x04,0x15,0x34,0xb2,0xb3,0x77,0x97,0x4b,0x95,0xdc, + 0x59,0x6c,0x1c,0x85,0xc2,0xe0,0x30,0xb1,0x8f,0x45,0xaa,0x4c,0x36,0xa6,0xa8,0xce, + 0xe0,0x56,0x46,0x2b,0x1f,0x87,0xdb,0xd3,0xf5,0xe3,0x9a,0xf9,0x5e,0x7b,0xdc,0xc0, + 0x37,0x77,0xe5,0x53,0x0d,0x26,0x27,0x29,0x0c,0xa9,0x2d,0x1a,0xc9,0x39,0x3b,0x2f, + 0x5a,0x96,0x4b,0x7d,0x1b,0x17,0x2f,0xda,0xfb,0x7c,0x8b,0xf8,0x62,0x32,0x86,0x00, + 0x49,0x72,0xc5,0xc2,0x75,0x6a,0x2b,0x24,0xe2,0x85,0xaf,0x06,0x30,0x07,0xf8,0x8e, + 0xc6,0x80,0xb7,0x84,0xc0,0xb0,0x6e,0x35,0x70,0x19,0x0c,0xc6,0x8a,0xc6,0xac,0x09, + 0x48,0x73,0x41,0xa7,0x8f,0xb1,0x76,0x24,0x4d,0xb5,0x8f,0xd0,0x50,0x1b,0x4e,0xf3, + 0x0e,0xb4,0xe2,0xca,0x76,0xf2,0xda,0xda,0xa9,0xb5,0x14,0xa5,0x97,0x12,0xb8,0x27, + 0x72,0x00,0x40,0x16,0x61,0x8f,0x1c,0x25,0x25,0xa0,0x53,0xb8,0xf0,0xc9,0xfa,0x3f, + 0x93,0x07,0xa3,0xc8,0x6e,0x1b,0x90,0xad,0xad,0x46,0x2a,0x52,0x67,0x95,0x32,0xc8, + 0xe0,0x47,0x10,0x77,0xea,0x23,0x1c,0xa3,0x6e,0x6e,0x76,0xcf,0x5e,0xa4,0xcd,0x4e, + 0xf8,0xff,0xc3,0x72,0x4e,0x8c,0xee,0x71,0x55,0xb2,0x17,0x51,0x84,0x9d,0x2d,0x40, + 0xd4,0xb6,0xe3,0x78,0x0b,0x1b,0xc4,0x5a,0xf8,0x1f,0x41,0x0f,0x31,0xc1,0x02,0x8e, + 0x09,0x16,0xb6,0x8c,0x76,0x58,0x4d,0x77,0x7c,0x93,0x18,0xbe,0xac,0xe4,0x5a,0xc4, + 0xe8,0xd6,0x1a,0x86,0x31,0x73,0xbe,0x41,0xd8,0xf6,0xb5,0x45,0x96,0xa1,0x38,0x14, + 0xa0,0x80,0x24,0xc3,0x55,0x9a,0xce,0xec,0xdb,0x64,0xf1,0x83,0xa6,0x3b,0x1f,0xb1, + 0x6a,0x11,0x4f,0x09,0xf8,0xd5,0x18,0x56,0xb2,0x14,0x36,0xde,0x46,0x4d,0xb9,0x06, + 0xbd,0x44,0xd5,0xdd,0x71,0x19,0x95,0x28,0x15,0xfc,0x0d,0xbe,0x68,0xf4,0x5c,0x68, + 0xd6,0x30,0xb9,0xc3,0xc6,0xfe,0x5a,0x7b,0x5c,0x2d,0x48,0x27,0xac,0x71,0x9a,0x60, + 0xed,0xa0,0xaa,0x86,0x89,0x45,0x13,0x0d,0x16,0x1d,0x21,0x4e,0x71,0x05,0x10,0x9e, + 0x94,0x26,0x4f,0x7b,0x55,0xd6,0x7b,0x29,0x5d,0x0a,0xf1,0x20,0xca,0x26,0x32,0xc9, + 0xe9,0xca,0xcd,0x2f,0x51,0xa6,0x3a,0xd5,0x35,0x3a,0x32,0x7a,0xfd,0x5c,0x2a,0xc5, + 0x4d,0x56,0x0f,0x5b,0x4b,0x41,0x29,0x53,0x82,0xcb,0x99,0x90,0x13,0x01,0xa7,0x77, + 0xdb,0x72,0x7b,0x64,0x2c,0x0a,0xf8,0xe6,0x96,0x46,0x9f,0x37,0x96,0x6e,0x81,0xb1, + 0xfa,0x63,0xcf,0x9c,0xe4,0xe1,0x02,0xa1,0x52,0xc6,0x10,0xe0,0xbc,0x78,0x82,0x7e, + 0xb8,0x21,0x41,0xe6,0x1a,0xc6,0x97,0x62,0x2e,0x41,0xd3,0xfa,0x76,0xfb,0xc3,0xde, + 0x4f,0xaf,0xde,0x7d,0x7a,0xff,0xe1,0x25,0xac,0x24,0x0f,0x2a,0x44,0x6e,0x32,0x60, + 0xc6,0xe5,0xca,0x35,0x53,0x8e,0xe1,0xc3,0x34,0x06,0x81,0xf1,0x28,0x1d,0xf0,0xdc, + 0x27,0x2c,0x1d,0xbd,0x48,0x55,0x59,0x30,0x8a,0x5b,0x51,0x5e,0x17,0x47,0x50,0x75, + 0x42,0xa2,0x3f,0x6c,0x49,0x26,0x51,0x32,0x59,0x8a,0x75,0xe2,0x8e,0x77,0xcb,0xd6, + 0x56,0x4a,0x6e,0x6e,0x16,0x4b,0x2a,0xfb,0xb9,0x50,0x94,0x61,0x0f,0x11,0xfb,0x6a, + 0x5d,0x5f,0x19,0x6e,0x7f,0x3d,0x4e,0xb5,0x1b,0xae,0x1f,0xe2,0x8c,0x66,0xbd,0xba, + 0xfc,0xd1,0x2a,0x21,0x40,0xe4,0x4a,0x21,0x84,0x33,0x34,0x95,0x5f,0xd1,0xdf,0x3d, + 0x05,0xad,0xfb,0x5d,0x37,0x1f,0x60,0x4e,0x75,0xff,0x75,0xce,0x8a,0xa4,0xb3,0x39, + 0x6f,0xb4,0x56,0xd7,0xca,0x54,0x2c,0xf6,0x1c,0x9e,0xf8,0x74,0xaa,0x64,0x71,0xca, + 0xe1,0x24,0xfb,0x45,0x4b,0x51,0x95,0x63,0x09,0x41,0xa9,0x98,0x3b,0xd7,0x54,0xac, + 0x34,0xf9,0x2c,0x44,0x89,0x65,0x6b,0x48,0xb5,0x73,0x49,0x27,0x97,0xb9,0x66,0x3a, + 0xfd,0xeb,0x20,0x1b,0x90,0x86,0xe4,0xd1,0x37,0x91,0x98,0x83,0x3a,0x0b,0x51,0x89, + 0x20,0x95,0xb9,0x77,0x25,0xc4,0x99,0x50,0xe5,0x92,0x95,0x6f,0x2e,0x27,0x63,0x04, + 0x3c,0xda,0x2c,0xd0,0x5b,0xf9,0xea,0xe3,0xd2,0xfe,0x7a,0x5c,0x8b,0xc6,0xa4,0xf3, + 0xea,0x84,0xe2,0xef,0x27,0x6c,0xe5,0x4f,0x59,0xe9,0x02,0x97,0xe5,0x6a,0x68,0x61, + 0x6d,0x0b,0xcb,0x1b,0x35,0xd9,0x4a,0xd3,0xd0,0xd4,0x67,0x73,0xab,0x3b,0x34,0xfe, + 0x89,0xfa,0x3d,0x5a,0x87,0x9b,0x31,0x75,0xf0,0xfa,0xdd,0x21,0x99,0x90,0xbf,0x7e, + 0xf9,0x36,0x5d,0xcc,0x11,0x47,0x62,0xdc,0x7a,0xf2,0x5d,0x02,0xb7,0x01,0x33,0x32, + 0xea,0x6a,0xed,0x6e,0xeb,0xa5,0x7e,0xdc,0x56,0x4a,0x8c,0x0f,0x3c,0x7a,0xe2,0x48, + 0x04,0xad,0x1f,0x9e,0xc2,0x57,0x40,0x6f,0x40,0xae,0x9a,0x90,0x78,0x67,0xd8,0xfa, + 0xfe,0xb7,0xc3,0x4f,0x87,0xff,0xfd,0xfe,0xe5,0x41,0x7a,0x74,0xd4,0x4c,0xc2,0x0f, + 0x2f,0xff,0x0b,0x2b,0xf1,0xa3,0x6d,0x7a,0x3a,0x78,0xff,0xee,0xed,0xc1,0x4b,0x7a, + 0xdd,0x49,0xc2,0xc3,0xbf,0xa1,0xe4,0x83,0x5f,0xe8,0x6d,0x37,0x09,0xf7,0xf6,0x7f, + 0xa3,0xa7,0x27,0x78,0xfa,0xe9,0xaf,0x2f,0x3f,0x1c,0xe2,0x65,0xe3,0xe8,0x69,0x12, + 0xfe,0xf2,0xe1,0xfd,0x27,0x40,0xd2,0xb7,0x67,0xe6,0xed,0x27,0x44,0x53,0xa1,0xd7, + 0xef,0x00,0xfa,0xf6,0xdd,0xdb,0x4f,0x52,0xc0,0xf7,0x49,0xf8,0x7e,0xef,0xf0,0x57, + 0x7a,0xfc,0x01,0xc8,0x3f,0xec,0xed,0xbf,0x64,0x1c,0xdb,0xa0,0xe1,0xcd,0xef,0xaf, + 0x0f,0x5f,0xbd,0xdf,0x23,0xac,0xa0,0x04,0xa4,0xec,0xbf,0x7b,0x7b,0xf8,0xe1,0xdd, + 0x6b,0x7e,0x05,0x29,0xb3,0x3e,0xd7,0xac,0xc7,0xef,0xbb,0xa5,0xf7,0x27,0xce,0x3b, + 0x10,0x82,0xaa,0x0f,0x7b,0x7f,0x7c,0xda,0xff,0xfd,0xe0,0xf0,0xdd,0x9b,0xf0,0xf8, + 0xb8,0xa8,0xf6,0xdb,0xbd,0x37,0x2f,0x7f,0xca,0x7b,0x1e,0xdc,0x88,0xa0,0x5f,0x46, + 0x64,0x7b,0x87,0x76,0x54,0xae,0x54,0xc8,0x51,0x6e,0xaa,0xe9,0xd1,0x36,0x1d,0x9b, + 0x16,0x65,0xc5,0x8a,0xf1,0x88,0xbe,0xa1,0x8b,0x71,0x74,0xb3,0x7d,0x0c,0x8b,0x28, + 0x3e,0x4e,0xa7,0x47,0xcd,0x63,0x67,0x1c,0x9c,0xf1,0x02,0x1d,0x21,0x30,0x2e,0x23, + 0xea,0x60,0x32,0x10,0xe6,0xb2,0x5b,0xe3,0xb4,0xc2,0x12,0x90,0x21,0x1a,0xf8,0x32, + 0x92,0x45,0xe0,0x9c,0xe5,0xcd,0x72,0xc9,0xbf,0x38,0xaf,0xd4,0xa3,0xef,0xe6,0xed, + 0xcf,0xf8,0x4f,0x61,0x8c,0x73,0x50,0xfd,0x28,0x1a,0x48,0x14,0x9a,0x36,0x93,0xc9, + 0xa5,0x9c,0xdb,0x61,0x2f,0x8f,0x7e,0x87,0x0e,0x97,0x54,0xcd,0x7f,0x58,0xe0,0x29, + 0x75,0xc8,0x42,0xaf,0x42,0x49,0x32,0xa6,0x69,0x87,0x2f,0x63,0xff,0xfd,0xa8,0x09, + 0xfb,0xc7,0xda,0x37,0x72,0x77,0x1a,0x80,0x71,0x3c,0x36,0x6b,0xc3,0x57,0x63,0x7e, + 0x4f,0xb0,0x84,0x53,0xc9,0x46,0x09,0x2e,0x87,0x68,0x52,0x51,0x0e,0x22,0x6b,0xc1, + 0x4d,0x0f,0xd4,0x1c,0xa7,0x8e,0x9f,0x37,0x97,0xcb,0xf1,0x0b,0x58,0x4e,0x2d,0x40, + 0x95,0x59,0x72,0x99,0x6a,0xde,0x6d,0x50,0x05,0x97,0x69,0xb4,0xfd,0xfc,0xf9,0x58, + 0xd6,0xf5,0xc2,0x80,0xc9,0x65,0x87,0xbe,0xb5,0x72,0x2e,0xdd,0x95,0xdb,0xe3,0x10, + 0x8c,0x8e,0x08,0x84,0xa5,0x20,0x3f,0x81,0x8b,0x06,0x5c,0xb8,0xc8,0xec,0x6e,0xdb, + 0x5f,0xe5,0x83,0xe1,0xb5,0x9c,0xde,0xc3,0xbf,0x00,0x59,0xed,0xbb,0x17,0x4d,0xb7, + 0x9f,0xf1,0x86,0x4f,0xb2,0x6e,0x12,0x81,0x83,0x38,0x06,0x6c,0x63,0x7a,0x95,0x5d, + 0x44,0x03,0x25,0x94,0xf2,0xcb,0xb5,0xd0,0xa4,0x24,0x56,0xb2,0x7c,0x03,0xf8,0xeb, + 0x7c,0x34,0x8c,0x06,0xc9,0x59,0x42,0x86,0x01,0x09,0x5f,0xe4,0x4f,0x48,0x23,0xa8, + 0xf7,0x4e,0x1f,0x3b,0x4e,0x6a,0x83,0xec,0xac,0xfe,0xb8,0x76,0x56,0x7b,0xac,0xde, + 0x69,0x1f,0xd7,0xf8,0xb7,0xf6,0xb8,0xd2,0xf7,0xf9,0xe3,0x1a,0xfd,0x02,0xdc,0x71, + 0xc1,0xff,0xb8,0x36,0xc0,0x6e,0x8b,0xf1,0x3c,0xd8,0x8d,0xb6,0xef,0xd0,0x0f,0x45, + 0x47,0x44,0x6a,0xc7,0x21,0x91,0x52,0xe8,0x13,0xfd,0x82,0x28,0x76,0x8e,0xf2,0xb8, + 0xf5,0xf8,0x71,0xac,0x2f,0xee,0x8d,0x65,0x6b,0x9f,0x6b,0x78,0x21,0xbd,0x14,0xa6, + 0x1a,0xfd,0x2c,0xd5,0x11,0x4c,0xb7,0x73,0x9d,0xd1,0xab,0xec,0xe1,0x5a,0xab,0x87, + 0xeb,0xcb,0xf5,0x2e,0xe6,0xa7,0xf0,0x1d,0xc3,0xb5,0x0f,0x45,0x15,0x8e,0x37,0x1a, + 0xd4,0xc4,0xd0,0xc0,0x78,0xc9,0xcb,0x13,0x02,0x7a,0xd8,0xc6,0x83,0xfa,0x7d,0x12, + 0x86,0xbb,0xb7,0x7d,0x57,0x36,0x93,0xe9,0x8a,0xda,0x4e,0x66,0x43,0xcf,0x54,0x65, + 0x8a,0x6a,0x03,0xd8,0x2b,0xa3,0xd6,0x7a,0x8d,0x25,0xd8,0x38,0x8b,0x14,0x25,0x15, + 0x3e,0x27,0x6e,0x33,0xb7,0x94,0xc3,0x1e,0x4c,0x17,0x64,0xac,0xf3,0xb4,0x39,0x1c, + 0x5f,0x2a,0x83,0xb0,0x00,0x10,0x1e,0xb5,0x30,0x46,0x38,0x04,0x89,0xba,0x5a,0x63, + 0xcc,0xff,0x02,0xa2,0xc2,0xb9,0xb1,0x83,0xca,0xf1,0x79,0x84,0x0c,0x57,0x23,0xd7, + 0x9f,0x1a,0x03,0xf9,0x9d,0xeb,0x8f,0x8b,0xc1,0x29,0x45,0x21,0xfa,0x4c,0x13,0x32, + 0xd3,0x61,0xf4,0xd9,0x26,0x70,0x53,0xe1,0xe0,0x4a,0x82,0x34,0x35,0x02,0x2b,0x5c, + 0x20,0x7c,0xa1,0xe5,0x01,0x8c,0x8c,0xae,0xbb,0x7b,0x23,0xf9,0xb2,0xb6,0x04,0x59, + 0xe2,0x74,0xb5,0xed,0x62,0xcc,0x63,0x9a,0xc3,0x45,0xb8,0x90,0xef,0x6a,0x5e,0x53, + 0x42,0xc0,0x8b,0xd7,0x6a,0x70,0x3f,0x47,0x92,0xc7,0x89,0x52,0x47,0xd3,0x7e,0x97, + 0xf7,0xd5,0x3b,0xee,0xde,0xee,0x9b,0x34,0x94,0xe6,0xae,0xde,0x39,0xe5,0xdb,0x85, + 0x41,0x7a,0xa1,0x2b,0xb6,0x15,0x76,0xec,0x5b,0xf1,0xd1,0xb6,0x4c,0x95,0x74,0x1d, + 0x15,0x19,0x0a,0xad,0x27,0x89,0x20,0x51,0x07,0xd0,0x37,0x11,0x7f,0xd6,0xdc,0x62, + 0xcd,0x6d,0x17,0xba,0x2f,0x20,0x50,0xdf,0x9d,0x8d,0x90,0xae,0xa3,0xab,0x9a,0xf0, + 0xd3,0x13,0x5a,0xa6,0x9f,0xe8,0x51,0x68,0x21,0x3f,0x75,0x8a,0xc1,0x57,0x2e,0x89, + 0xe6,0x99,0x38,0xc6,0xd4,0xdc,0x2c,0xcc,0x0e,0xd0,0x3d,0x52,0xbf,0x78,0xd4,0xc4, + 0xf4,0x1c,0x33,0xa5,0xe2,0x29,0xc6,0x3f,0x67,0xb9,0xe7,0xc8,0xff,0x0e,0x49,0x7e, + 0xd3,0x69,0xc2,0x96,0x0a,0xff,0x4e,0x28,0xed,0xa6,0x9d,0x28,0x6c,0x95,0xe7,0x12, + 0x21,0x83,0xe2,0xa0,0x3b,0x8c,0x3c,0x93,0xa2,0xe9,0x43,0x4c,0x7f,0x56,0xef,0x33, + 0xad,0x06,0x73,0xf6,0x5f,0x5c,0xc9,0x55,0x62,0x71,0x9f,0x17,0xa6,0x3d,0xcc,0x12, + 0xdc,0x4e,0x0b,0x6b,0xf6,0xff,0xfa,0xf6,0x20,0xc2,0x8b,0x26,0x89,0x65,0xce,0x5d, + 0xd9,0x24,0x45,0x6b,0x88,0x74,0x0a,0x81,0x5e,0xbb,0x2b,0x54,0xf4,0x65,0xa6,0xb9, + 0x97,0xf7,0xd5,0xfa,0xa1,0xba,0x5b,0x5f,0xe4,0x87,0x79,0x54,0x88,0xa3,0xb9,0xc3, + 0xbb,0x3f,0x6c,0x5c,0x96,0x59,0xe7,0x0d,0x99,0x1e,0x21,0x5c,0x4c,0x32,0xf8,0x53, + 0xe2,0x04,0xee,0xe9,0xf4,0xee,0xf4,0xf4,0x0b,0xcc,0x39,0xbc,0xe7,0x5b,0xaf,0xdc, + 0x65,0x58,0xf6,0xea,0xf2,0xb8,0xd2,0x6f,0x7b,0x3d,0xa0,0xdf,0xa0,0xae,0xce,0xd7, + 0x1f,0xb7,0xad,0x5b,0x80,0x95,0xcb,0x4f,0xc2,0x56,0x2b,0xa3,0x03,0x83,0xc8,0xdf, + 0xd2,0x94,0xef,0x7d,0xc4,0x34,0x2b,0x95,0x12,0x8a,0x02,0x88,0x47,0xd5,0x38,0x4e, + 0xf9,0xe0,0x2f,0x7c,0x61,0x7e,0x1b,0x8d,0x86,0x4d,0x15,0x55,0x18,0x59,0x6c,0xa9, + 0x4a,0xf5,0x14,0xa9,0x4d,0x8f,0xd2,0x67,0xfc,0xb9,0x26,0x9b,0x87,0x1c,0x01,0x06, + 0x30,0x01,0x83,0x40,0x98,0x7b,0x82,0xda,0x0b,0x48,0xc1,0x2c,0xd0,0xc5,0x49,0x45, + 0x6c,0x2c,0x46,0x25,0xac,0xa2,0xfa,0x72,0xa5,0x80,0xdb,0x80,0x16,0x05,0x94,0xd7, + 0x4c,0x21,0x6f,0x9d,0xc2,0x44,0x8d,0xbf,0xf1,0xb8,0x77,0x7a,0x4a,0x7e,0x0a,0xf3, + 0x2f,0x61,0x5c,0x91,0x2d,0xdf,0x68,0xe1,0x3b,0x49,0x09,0xfc,0xfc,0xae,0x29,0xd5, + 0x39,0xb4,0x00,0xe7,0xf1,0xbd,0x3e,0x56,0xe7,0x32,0x1b,0xb7,0xa2,0x94,0x03,0x7e, + 0xe7,0x2e,0xb9,0xb2,0xa0,0xc9,0x8c,0xbe,0x49,0x94,0x06,0x14,0x61,0xde,0x9b,0x01, + 0x68,0xe6,0x6b,0x88,0x1a,0x1d,0x0a,0x90,0x1c,0x2e,0xb9,0x6b,0x22,0xd7,0x65,0x06, + 0xf7,0xef,0x1f,0x5e,0x57,0xe2,0xe5,0x9d,0x63,0x41,0xc9,0x21,0xbd,0x06,0xf3,0xfe, + 0x68,0x4a,0x07,0xb7,0x54,0x4e,0xe1,0x4e,0x39,0x6b,0x05,0x0b,0x32,0x19,0xbf,0x0b, + 0x16,0xc6,0x3f,0x24,0x1e,0x48,0x5a,0xe2,0x87,0xb9,0x7a,0x57,0x59,0x80,0xec,0x48, + 0x2d,0x9e,0xfe,0xe7,0x1f,0x87,0x81,0x95,0x9a,0xdf,0x01,0x0f,0xea,0x56,0xb4,0x0d, + 0x6a,0x89,0x2d,0xe2,0x68,0xc0,0x77,0x53,0x81,0xb8,0x62,0x39,0xb8,0xe1,0x2c,0x1c, + 0x89,0x7b,0x96,0xef,0x00,0xea,0xcd,0x8e,0x14,0xf0,0x0f,0x58,0x28,0x47,0x42,0xab, + 0x4a,0x7f,0xfc,0xeb,0xb4,0x88,0x54,0x57,0x88,0x8a,0xc8,0x92,0xf1,0xa0,0x32,0xb4, + 0x7a,0xb6,0x34,0x5d,0xf7,0xe5,0xd0,0x9b,0x9d,0x04,0x4f,0x75,0x57,0x67,0x7c,0x9c, + 0x9f,0xba,0x5e,0x9a,0x23,0xb1,0x8d,0x4c,0xd0,0xd8,0xbc,0x79,0x6c,0xdf,0x23,0x4a, + 0x40,0x95,0x11,0x10,0x98,0xca,0x58,0x4e,0x50,0xc6,0x69,0x2e,0xa9,0xf9,0x3e,0x7d, + 0x6a,0x3e,0xab,0x70,0xe8,0xe4,0x0f,0xad,0x08,0xc0,0x1d,0xfc,0x6b,0x30,0x5c,0x4b, + 0xf6,0x9a,0x85,0x2b,0xb4,0x37,0xdd,0x69,0xae,0xa5,0x60,0x08,0x42,0x22,0xe3,0x4b, + 0x55,0x16,0xfa,0x81,0x52,0xa8,0x41,0xb1,0xa9,0x95,0x34,0x2d,0x31,0xd9,0xc8,0xc7, + 0xce,0x7a,0xf0,0x1c,0xaa,0x0a,0x85,0xe8,0x42,0x7c,0xd4,0x34,0x1c,0xfc,0x64,0xee, + 0xf6,0x7e,0x72,0xde,0x2d,0xfd,0x2f,0x66,0xf6,0x6a,0x51,0x9d,0x1e,0xe5,0xdb,0xee, + 0x3b,0xd7,0x1a,0x54,0x58,0x52,0x31,0x81,0x9d,0xc9,0x34,0x71,0x53,0xbd,0x4a,0xc1, + 0x96,0x20,0xac,0x9d,0x71,0x17,0xba,0x89,0x6f,0x56,0x9f,0xbc,0x4a,0x01,0x47,0x67, + 0x62,0x02,0xb8,0xfe,0x78,0x44,0xf4,0x57,0xf7,0x9c,0x8f,0x24,0x23,0x4f,0x7d,0xba, + 0xb9,0x19,0x8d,0x52,0x24,0xac,0x5f,0x41,0x4a,0xb7,0x33,0x57,0x21,0x37,0x8e,0xec, + 0xf3,0xcc,0xc4,0x3a,0xb7,0xf4,0xcf,0x06,0x79,0xca,0xad,0x3a,0x13,0xe5,0x0f,0x09, + 0xdf,0xa0,0x8c,0x57,0xa9,0xf9,0xa7,0xc4,0x4a,0x1d,0x9d,0xf8,0xe0,0xad,0x5a,0xa9, + 0x36,0x3c,0x0e,0x2b,0x16,0x4a,0x2e,0xa6,0x84,0xc1,0xda,0xa2,0xc0,0x5c,0xc3,0x49, + 0xbe,0xfa,0x5d,0xc5,0xc8,0x93,0x82,0x8f,0x39,0x21,0x1d,0x2f,0x85,0x8e,0x1f,0x74, + 0xdb,0x83,0x13,0x88,0x16,0x8f,0x5b,0x96,0x39,0x27,0xae,0xb0,0x20,0xaf,0xb8,0xe9, + 0x89,0x52,0x48,0x19,0x54,0x75,0xd3,0xa2,0x13,0xe0,0x94,0x41,0xb0,0x07,0x4d,0xb0, + 0x52,0x35,0x2f,0x60,0x56,0xae,0x22,0xb2,0xc4,0xd6,0xc9,0xfd,0xab,0xf9,0xaf,0x5e, + 0x1f,0x5a,0xcb,0x75,0x94,0x4e,0x2c,0x5c,0xb3,0x34,0x2d,0xdd,0x27,0x26,0x9b,0x89, + 0x9f,0x27,0xe4,0xa0,0x2a,0x81,0xe6,0x68,0x94,0x91,0xf2,0xbb,0xda,0x00,0x43,0x28, + 0xc7,0x07,0x87,0x57,0x98,0x90,0xd2,0xf5,0xc6,0x18,0x80,0x88,0xf1,0x4f,0xcd,0x31, + 0x84,0x3b,0xea,0x15,0x52,0x14,0x82,0xe2,0x18,0x32,0x0a,0x69,0x6f,0x49,0xdd,0xe7, + 0xd4,0x8c,0xbf,0xb7,0x24,0x14,0x43,0x42,0x47,0xc7,0x96,0xd0,0x2b,0x85,0x93,0x4b, + 0x34,0x02,0xdf,0x9e,0x6e,0x9f,0x3a,0x9b,0x08,0x90,0xdf,0xde,0xa8,0x20,0xc6,0xf8, + 0x5e,0x8c,0x1b,0x14,0x6f,0x6d,0xdc,0xdb,0xbf,0xc0,0x22,0x34,0x3a,0x75,0x57,0xa6, + 0xa4,0x83,0x36,0x9c,0xca,0x22,0x60,0x9c,0x75,0x13,0xe2,0x2c,0x53,0x8a,0xb6,0x87, + 0x62,0x83,0x95,0xf1,0xd5,0xba,0xf3,0x0c,0x82,0xcd,0x52,0x33,0x27,0x92,0x11,0xdd, + 0x28,0xdd,0xd2,0xd1,0x29,0xfa,0xba,0x6e,0xdc,0xd1,0x9c,0x47,0xdd,0x63,0x55,0x1c, + 0x76,0x9a,0xad,0xed,0xb8,0xb5,0x23,0xfd,0xef,0xc4,0xcf,0x78,0x62,0x67,0x3c,0xf1, + 0x33,0xaa,0x15,0x15,0xba,0xcc,0xc9,0x72,0xd9,0x6d,0x70,0x38,0xa7,0x3e,0x4e,0x9d, + 0xd0,0x3b,0xfb,0xc8,0x8e,0xea,0x56,0x1b,0x41,0x9b,0xfa,0xd1,0xf1,0xb9,0x7d,0xb6, + 0x2e,0xcd,0x44,0x9e,0x02,0x52,0x02,0x69,0x19,0x30,0xe3,0x29,0xd1,0xb0,0x68,0x73, + 0x93,0x7f,0x1a,0xc6,0xf8,0x0c,0x96,0xb0,0x91,0x13,0x08,0x6e,0x2c,0x9c,0x2b,0x3e, + 0x4c,0x6f,0xbc,0x74,0xf7,0x62,0x5e,0xf9,0xab,0x7b,0x63,0xda,0xfd,0xe8,0x5f,0x8f, + 0xb6,0x01,0x62,0x22,0x5c,0x28,0x13,0xe5,0x2b,0xe8,0xb6,0xdb,0x4f,0x00,0xe5,0xe4, + 0x83,0x36,0x98,0x38,0x83,0xb6,0x72,0xc5,0x0b,0x39,0x1c,0x78,0x2b,0xbb,0xce,0xf9, + 0xc4,0x38,0x3a,0x8a,0x55,0xfb,0x49,0x0c,0x32,0x0e,0x01,0xd5,0xa7,0x5e,0x5b,0x30, + 0x50,0x22,0xff,0xb5,0x8e,0x38,0xd8,0xf9,0x43,0xc9,0xf1,0xc3,0x86,0xde,0xe2,0x57, + 0x03,0xb3,0x84,0x50,0xf8,0xf7,0xf8,0xa7,0xf0,0x04,0x09,0x47,0xfe,0x57,0x43,0xda, + 0xee,0x25,0x4d,0xfc,0x4f,0x08,0x12,0x2e,0x24,0x91,0xca,0xe0,0x1e,0xc2,0x7d,0x5e, + 0x46,0x52,0xd7,0xcb,0x88,0x47,0x98,0x9e,0xaa,0xf3,0xa6,0x33,0x3e,0x3d,0x61,0x45, + 0x7d,0xc2,0x69,0x5a,0x73,0xc6,0x68,0xfb,0x85,0x84,0x86,0xd8,0x7e,0xdf,0xde,0x45, + 0xa9,0xeb,0xd1,0x33,0x0a,0x6a,0x09,0x40,0x3e,0xc8,0xda,0xcc,0x3f,0x5a,0x34,0xd9, + 0x55,0x82,0x09,0x91,0x89,0x56,0x15,0x37,0x88,0x67,0x7d,0x13,0xf8,0xbb,0xb0,0x3a, + 0xa9,0xac,0x16,0xcf,0x6f,0xa6,0xb9,0x23,0x3b,0x3b,0x87,0x9b,0x28,0x70,0xd4,0x0c, + 0xc5,0x9d,0xb0,0x05,0x51,0xc4,0x8f,0x64,0x0d,0x0b,0xb4,0xb9,0x40,0xf4,0x19,0xf3, + 0x83,0x50,0x2e,0x5d,0x22,0x35,0x9d,0xe2,0x61,0xad,0xa9,0xdc,0x5e,0xcf,0xc9,0x7b, + 0xab,0x14,0xee,0x8d,0xd9,0x49,0x98,0x1c,0x9f,0x05,0xa4,0x75,0xeb,0xa3,0x47,0xab, + 0x71,0xa9,0xf8,0x90,0x31,0xae,0x65,0xe1,0x2e,0xc0,0xa9,0x91,0x4f,0x29,0x97,0xe0, + 0x92,0xea,0x29,0x47,0x34,0x66,0x87,0x11,0x85,0x66,0x48,0xc9,0x54,0x94,0x7a,0x72, + 0x42,0xe4,0x8e,0x2f,0x29,0xf4,0x8b,0x2f,0x2b,0xfc,0xef,0xbe,0xb4,0xf0,0x3f,0xfb, + 0xf2,0x42,0x40,0x44,0xde,0xa1,0x60,0x78,0x06,0x4d,0xbb,0x3d,0x58,0xcf,0xbe,0xe7, + 0x67,0x74,0x2d,0x87,0x7a,0xb3,0xb0,0x31,0x70,0xa8,0x5d,0xb5,0xdb,0x3b,0x31,0x84, + 0xe6,0x39,0x9b,0x17,0x2d,0x34,0xed,0x71,0x6b,0x48,0x4e,0x87,0xc5,0xf6,0xe4,0xe3, + 0xb2,0xd1,0x65,0x3e,0xe6,0xbc,0x2c,0x19,0xf4,0x86,0xfd,0x2c,0xe9,0xd2,0x74,0x2f, + 0x6d,0x60,0x3c,0xd2,0xcc,0xd9,0x44,0x9c,0x40,0x52,0xfc,0x61,0xff,0x5b,0x0c,0x9a, + 0xf2,0x5f,0x7a,0x15,0xb4,0xe2,0x3b,0x08,0x4d,0xf3,0x45,0xfd,0x8a,0x4b,0x74,0xfa, + 0x15,0xa7,0x74,0x78,0x90,0xf4,0x12,0xaa,0x7f,0x20,0x27,0xee,0x5d,0x2e,0xe4,0xa6, + 0x9b,0x05,0xe4,0x44,0x82,0xbb,0x97,0x51,0x03,0x4f,0xc8,0xb5,0x30,0x9c,0xcd,0x84, + 0x2d,0xce,0x55,0xf8,0x30,0xe2,0xf5,0x8b,0x1d,0x45,0x55,0x6c,0x9c,0x67,0x64,0x1a, + 0xb9,0x51,0xb6,0xc1,0xdd,0x9a,0x31,0x4b,0x3a,0x66,0x4c,0x61,0x28,0x8e,0x4f,0x61, + 0x85,0xf5,0xfb,0x87,0x57,0x34,0xdb,0x4d,0xc6,0xb4,0x8a,0x30,0xc3,0x2c,0x59,0x88, + 0xb9,0x5a,0x0b,0x22,0xaa,0x79,0xb7,0xd2,0xc3,0x2d,0x43,0x3f,0xd2,0xc1,0x69,0xd8, + 0xa3,0xc3,0x4f,0x9d,0xe0,0xb2,0xf0,0xa4,0x25,0x04,0xdb,0xb1,0x2d,0x2a,0x5d,0xef, + 0x7a,0x23,0x9b,0xd9,0xcf,0xa3,0xdb,0x6b,0xae,0xbb,0x04,0x64,0x55,0x94,0xc3,0x1b, + 0x9b,0x1e,0xef,0xf1,0x98,0x40,0x46,0xf1,0xfc,0xc9,0xfa,0x12,0xfd,0x4e,0x52,0xdb, + 0x96,0x6e,0xe2,0x97,0xfb,0x9d,0x5d,0xae,0x5d,0x5d,0xee,0x8f,0xeb,0xfb,0x05,0x8f, + 0x13,0xca,0x93,0xa5,0x4d,0xbe,0xd9,0x25,0x21,0x04,0xf3,0xcf,0xcc,0x4f,0x50,0x23, + 0x9e,0x58,0x2a,0xbc,0x48,0xcd,0x73,0x65,0xdd,0x25,0xdc,0x55,0xbf,0xfb,0x6d,0x6b, + 0x60,0x96,0x38,0x03,0x71,0x57,0x22,0xb7,0x75,0x70,0xb2,0xc9,0xa5,0xd4,0x6a,0xe6, + 0xfd,0x14,0x66,0xbf,0xe4,0xd4,0x57,0xeb,0x81,0xed,0xd1,0x80,0x27,0x73,0x1e,0xc7, + 0x5a,0x3b,0x40,0xe4,0xeb,0x18,0xf3,0x99,0x16,0x4b,0xfa,0x39,0x4f,0x8b,0xd5,0x9e, + 0xd0,0x85,0xe5,0xb2,0xcc,0x73,0x9a,0xca,0x30,0x96,0x66,0xd8,0x32,0x72,0xc0,0x23, + 0x37,0xb6,0x98,0xa0,0x17,0x34,0x65,0x7b,0xb7,0xc2,0x55,0xfd,0x63,0x63,0x54,0x11, + 0x58,0x4a,0x57,0x53,0xa6,0xe8,0x30,0xc4,0x8c,0xd1,0x5d,0x9d,0xd3,0xda,0xf7,0xdd, + 0x6f,0x61,0x2b,0x2f,0xb8,0x70,0xef,0xfe,0x77,0x48,0x94,0x68,0x32,0x8b,0x3b,0x47, + 0xad,0xe4,0xb8,0xf3,0x31,0xfb,0x76,0x6b,0x40,0xda,0x2b,0x11,0xcb,0x85,0x5f,0xd9, + 0x9b,0xee,0x6c,0xbc,0xce,0xa2,0xd8,0xaa,0x08,0xd3,0x20,0xdb,0x8b,0x68,0xe6,0x74, + 0x52,0x6e,0x15,0x31,0x9d,0x30,0x2d,0x14,0x06,0x62,0x48,0x1c,0x65,0xb1,0xce,0x97, + 0x41,0x1d,0xa9,0x18,0xe3,0xbc,0xa9,0x0c,0xad,0x23,0xe9,0x99,0xae,0xb0,0x36,0x6c, + 0xe3,0x77,0x66,0x99,0x0a,0xe9,0x3d,0x13,0x66,0x22,0x9f,0x32,0xec,0x46,0xaf,0x12, + 0xf4,0xda,0xfa,0x25,0x34,0x07,0x46,0xd4,0xaf,0x45,0xa3,0x13,0x82,0x87,0x8a,0xf6, + 0xf9,0x12,0x1f,0x73,0x66,0xfc,0x30,0x0e,0xa6,0x74,0x6d,0xe3,0x30,0x8f,0xe1,0x4c, + 0x47,0x8c,0xfd,0x9e,0x7b,0xa3,0x82,0xec,0x96,0x10,0x3a,0x55,0xc3,0x3f,0x93,0x28, + 0x93,0xa0,0x19,0x41,0x46,0x51,0x5e,0xae,0x8d,0xf5,0x4b,0x70,0x83,0x8d,0x08,0x87, + 0x59,0x31,0xec,0xc8,0x1a,0xf0,0xaa,0x29,0x22,0xd0,0xb8,0x02,0x9d,0x92,0x45,0x5a, + 0x30,0xa1,0xdd,0xd8,0x14,0x7a,0x12,0x73,0x66,0xd6,0x9d,0xe7,0x9e,0x45,0x13,0x2a, + 0x57,0x82,0xe1,0xe2,0x29,0x2f,0x84,0x6f,0x81,0xac,0xe0,0xa3,0x43,0x3c,0x08,0x94, + 0x10,0x30,0xb4,0x18,0x80,0xdf,0xa3,0x0b,0x0d,0x38,0xfd,0x63,0x9e,0x5d,0x91,0x06, + 0xe8,0x87,0xd8,0x4b,0x33,0x04,0x76,0x73,0x16,0x44,0x7f,0x0c,0x31,0x9d,0x70,0xc4, + 0xd7,0xa0,0x4b,0x3e,0x6e,0x12,0xae,0x32,0xd9,0xfb,0x32,0x52,0x8d,0x6d,0x3d,0xe8, + 0x01,0x14,0x7e,0x07,0x84,0x40,0xbf,0x85,0xd6,0x13,0xa8,0xb8,0xf8,0x72,0x4a,0x20, + 0x6d,0x06,0xff,0xc9,0xdd,0xf3,0x46,0xf0,0x6a,0x9e,0x29,0x93,0x29,0x8c,0xd4,0xe9, + 0x67,0xca,0x0d,0x89,0x63,0xd0,0x36,0x82,0x3f,0x88,0x55,0x7c,0x67,0x87,0x70,0x49, + 0xe6,0xc4,0x50,0x39,0x81,0xa2,0xa9,0x6d,0x6e,0xd2,0x60,0x84,0x60,0xe2,0xd1,0x66, + 0xb8,0xca,0x00,0x6d,0x15,0x6a,0xd4,0xad,0x5c,0x81,0x87,0x91,0xc9,0xbd,0x21,0x1f, + 0x1d,0x4e,0x0b,0x97,0x1a,0x93,0x79,0x26,0x4d,0x29,0x78,0xbb,0xcc,0x6d,0x09,0xc0, + 0x5b,0xef,0x66,0xe4,0xf2,0x1d,0x18,0xb5,0x99,0x93,0x0d,0xb3,0x12,0x5b,0xd1,0xd6, + 0x9d,0xd0,0x6b,0x45,0xa1,0xe9,0xe8,0xdd,0x6f,0xc7,0x41,0x5d,0xba,0x1d,0xbb,0x13, + 0xf2,0x5a,0xc3,0x47,0x21,0x2c,0x5b,0x89,0x22,0x3c,0x90,0x4a,0xae,0x82,0x48,0x74, + 0x08,0x25,0x26,0xf1,0x80,0x78,0x01,0x7d,0xd3,0xcc,0x59,0x42,0xdb,0x0b,0xd7,0x03, + 0xc5,0x44,0xf2,0xa3,0xb0,0xed,0x3a,0x98,0x9c,0xcd,0xcd,0xbd,0x8e,0x87,0x6f,0x77, + 0x64,0x56,0x7f,0xe8,0x16,0xa6,0xf9,0xa4,0x32,0x07,0x26,0xd7,0xe7,0x3b,0xcd,0x87, + 0xcf,0xc4,0xb5,0x6d,0x59,0x00,0x3c,0x7c,0x26,0xf6,0x17,0xd3,0xe5,0x8a,0x2f,0xc4, + 0x35,0x22,0x1d,0xb7,0x05,0xec,0x5b,0x46,0xce,0x95,0xb2,0xe0,0x46,0xa2,0x65,0x41, + 0x71,0x73,0x72,0xd2,0xe7,0xf3,0x6f,0x33,0x19,0xb3,0xa6,0x27,0xdb,0x78,0xd0,0x75, + 0x26,0xbd,0xa6,0xf4,0x2f,0xdf,0x03,0x32,0x57,0xb8,0x57,0x5c,0x06,0x32,0x1f,0x8d, + 0x22,0xc1,0x39,0x63,0xb5,0xa6,0x6e,0xc0,0x3d,0x4a,0x05,0xd2,0x72,0x29,0x60,0x7d, + 0x2e,0xdd,0xa7,0x41,0x0f,0xd7,0xcb,0x34,0xe2,0x7e,0xb3,0xc2,0x71,0x80,0x22,0x12, + 0xcc,0x6b,0xef,0xe4,0xa8,0x6b,0x82,0x47,0x51,0xa1,0xf1,0x76,0xe8,0x8d,0xff,0x95, + 0x4b,0x45,0xcc,0x2f,0xfb,0x76,0xfe,0x91,0xdc,0x71,0xe1,0xfb,0x6f,0x49,0xfe,0x72, + 0x72,0xa3,0x8f,0xd9,0x99,0x3e,0x9e,0xce,0x8e,0xd5,0x5c,0xc9,0xbb,0x13,0x63,0x21, + 0xe5,0x52,0xd8,0xe2,0xd9,0x94,0xe1,0x9b,0x14,0x33,0xbb,0xd5,0x01,0x80,0x7b,0xb7, + 0x3e,0xb1,0x30,0x09,0x0b,0x14,0x55,0xec,0xdf,0xc6,0xd7,0xf2,0xf8,0xf1,0x3d,0x6b, + 0x4f,0x23,0xcd,0xd0,0x71,0x21,0x5b,0x36,0x6e,0xcb,0x1e,0xee,0x61,0x97,0xad,0xc4, + 0xac,0xa2,0x77,0x9b,0x2e,0x88,0x5b,0xad,0x66,0x72,0x72,0xd3,0xda,0x4e,0xb2,0xb3, + 0xd6,0x4e,0x72,0x3a,0x6b,0xed,0xde,0x95,0x0c,0x71,0xdb,0x1b,0xca,0xfc,0x82,0xb8, + 0x23,0xe4,0x3f,0x5e,0xeb,0x9b,0x42,0x89,0xe7,0xc1,0xf8,0x7f,0xf2,0xb5,0x22,0xbd, + 0x94,0xe2,0xdf,0x27,0xa9,0xf4,0xe0,0xe8,0x0a,0x0f,0x75,0x70,0xe9,0xba,0x61,0x49, + 0x17,0x64,0xed,0xdd,0xca,0xad,0x7b,0x13,0x23,0x3f,0x28,0x5a,0x94,0x6c,0xe2,0xe8, + 0x19,0x8b,0xb2,0x2a,0xa3,0xf2,0x54,0x70,0x98,0x05,0x52,0x24,0x38,0x5c,0x11,0x1d, + 0x09,0x8c,0xaf,0xc8,0xa2,0xee,0x54,0x89,0x35,0x4d,0xf3,0x3c,0x95,0x9f,0x69,0x17, + 0x5a,0x2d,0xf2,0xbf,0x12,0x65,0xb5,0x13,0x5e,0x99,0x82,0x7e,0xe6,0x2d,0x2a,0xcd, + 0xd6,0xbc,0x85,0xcd,0xa5,0xe6,0x46,0x15,0x97,0xf7,0x8d,0xd3,0x63,0xaa,0xa3,0x72, + 0x1d,0x60,0xeb,0x7d,0xf3,0xab,0x82,0x40,0x76,0x5e,0x0c,0x1a,0xc6,0x5f,0x79,0xfa, + 0x11,0x89,0xd5,0x17,0x1a,0xc5,0x39,0xdf,0xe0,0x41,0x66,0x53,0xe3,0x8f,0x33,0xf6, + 0xc4,0x7a,0x5b,0x31,0x36,0x00,0x9c,0xdc,0x82,0xa5,0x27,0x7c,0x28,0x74,0x94,0x5f, + 0xb8,0x30,0x36,0x26,0xc6,0x71,0x0f,0x7e,0x4c,0xc8,0xf6,0xc4,0xd4,0xce,0xc7,0x8d, + 0x55,0x3f,0x53,0x80,0x83,0xb6,0xf9,0xea,0x9d,0xc8,0xfc,0x51,0x6a,0x9d,0xbf,0xcc, + 0xf3,0xbb,0xdb,0x56,0x12,0xe8,0x90,0xa2,0x62,0x13,0xef,0x94,0x9e,0x23,0xd1,0x4f, + 0x64,0x58,0x2d,0x4b,0xc2,0x6a,0x9f,0xc3,0x52,0xa2,0xfa,0x1c,0x4e,0x4a,0xd8,0x29, + 0xcd,0x2b,0x56,0x3f,0x98,0x06,0x1f,0x0e,0xa8,0x04,0xd7,0xdc,0x78,0x34,0xff,0x7d, + 0x4a,0x5e,0xea,0xf9,0x74,0xd8,0x8e,0x73,0x92,0x6d,0x7d,0xff,0x8c,0x36,0xfc,0xc9, + 0x85,0x93,0xfa,0x1f,0x9c,0xba,0xb5,0xfb,0x8c,0x3e,0x8d,0xdc,0x4f,0x94,0xb8,0xf5, + 0xac,0x59,0x98,0xab,0xf6,0x5e,0x34,0x3b,0xbd,0x5a,0xd8,0x83,0x02,0xf2,0xa2,0x16, + 0xc2,0x23,0x68,0x74,0x81,0x14,0x7a,0x44,0xca,0xa8,0x16,0xe2,0xb0,0x98,0xff,0x3a, + 0x11,0xba,0x06,0xa8,0xe6,0x20,0x39,0x49,0x40,0x54,0x85,0x25,0x24,0x7d,0x26,0x8b, + 0xcc,0x17,0x62,0x2f,0x32,0x80,0x01,0x09,0x9e,0x4f,0xe8,0x99,0x1e,0xa2,0xac,0xf3, + 0x18,0x76,0x97,0x78,0x32,0x26,0x1f,0x25,0x53,0x51,0xab,0x20,0xbb,0x21,0x16,0x76, + 0x1b,0xd0,0xba,0x28,0x7f,0x06,0xe7,0x8b,0xd8,0x73,0x29,0x98,0xfa,0x4a,0x1c,0xb3, + 0x45,0x0a,0x95,0xec,0x36,0xdd,0xf8,0x66,0x16,0x2e,0x3a,0x48,0x77,0x50,0xc4,0x0b, + 0xb9,0xe0,0x25,0x58,0xdc,0x8f,0xa5,0xe2,0x9a,0x77,0x16,0x56,0x2d,0xcf,0x8f,0x3b, + 0x50,0x1d,0x76,0x80,0x8a,0xf6,0x15,0x41,0xa6,0x43,0x73,0xae,0x3a,0x24,0x88,0xef, + 0xd3,0x77,0x48,0x1b,0x43,0x40,0xc2,0xca,0x27,0xd4,0xa5,0xde,0xda,0x3c,0xa1,0x4c, + 0xdf,0x27,0xa9,0x75,0x4d,0x2f,0x6b,0x50,0x80,0xbe,0x4f,0x98,0x45,0xfa,0xb8,0xa5, + 0xb7,0xf3,0x44,0x76,0xf6,0xd4,0x7c,0x99,0x13,0xac,0x61,0x83,0x1b,0x3c,0xfc,0x7d, + 0x4a,0xca,0xaf,0x30,0x91,0x0e,0xd9,0xb8,0xe2,0xf7,0x4f,0x59,0x1c,0xd7,0x04,0xe2, + 0xc7,0xee,0x1c,0x4c,0xc3,0x74,0x87,0xaf,0x27,0x78,0xfe,0x34,0xba,0x06,0x66,0xb0, + 0x1e,0x63,0xe3,0xe7,0xc1,0x2d,0x0e,0x0d,0x77,0xe2,0x24,0xfc,0x6b,0xa8,0x19,0x7e, + 0x46,0xd9,0x01,0x51,0x81,0x19,0xf2,0x24,0x09,0x7f,0xfb,0x11,0x8e,0xe8,0xa1,0x28, + 0x45,0xd7,0xf3,0xe9,0x44,0xba,0x21,0x53,0x73,0x23,0x7a,0x42,0xd0,0x1d,0xe2,0x5c, + 0x2a,0x4c,0x3c,0x70,0xf6,0x6a,0xc9,0x1f,0x4d,0x26,0x42,0x5e,0x94,0xfb,0x96,0x22, + 0x12,0x06,0x3c,0x28,0xc2,0x24,0x6b,0x8c,0xe9,0x35,0x09,0x7b,0x3f,0x8e,0x0a,0x90, + 0xd7,0x90,0xd6,0xc1,0x87,0x83,0x83,0x57,0x04,0x30,0xc3,0x5e,0x89,0xbf,0x83,0xbe, + 0x83,0xb7,0x1f,0xd8,0x59,0x7e,0x36,0x9e,0x29,0xf0,0xde,0x60,0x46,0xbc,0x08,0x0e, + 0xff,0x56,0xb0,0x07,0x1b,0x41,0xe1,0x8f,0x07,0xf6,0xc1,0x02,0x9b,0x81,0x4c,0x1f, + 0xd2,0xcc,0xd9,0x19,0x43,0x02,0xa6,0x7f,0x7a,0x9d,0xd0,0x09,0x25,0x0a,0xe6,0x1c, + 0x78,0xf4,0x40,0x0f,0x19,0x34,0x43,0x7b,0x17,0xec,0x25,0xf7,0x99,0xc0,0xb1,0x75, + 0xa8,0x68,0x3e,0x51,0xa5,0x31,0xe0,0x83,0x2d,0xc2,0xc5,0xe0,0x26,0x49,0x33,0xc1, + 0xfe,0x0e,0xdd,0xab,0x94,0xab,0xc7,0x89,0x4e,0x36,0x49,0xd3,0x7c,0x87,0x7f,0x0b, + 0xa0,0x93,0xba,0xea,0x53,0x9e,0xf9,0xed,0x27,0x7e,0xc6,0xc7,0xc8,0x72,0xc0,0x2f, + 0xcd,0xf6,0x5f,0x87,0x87,0x05,0x28,0x09,0x7b,0x01,0x6e,0x85,0x05,0xfb,0x69,0x9b, + 0xab,0xec,0xe7,0x6d,0x9e,0xb6,0x41,0x01,0xf4,0xea,0x3d,0x7d,0x1d,0x4c,0x71,0xb2, + 0x52,0x27,0xd1,0xca,0xb6,0xf8,0x54,0x1e,0xc4,0x31,0xf7,0x02,0xf4,0xaa,0xb8,0x6d, + 0xa7,0x4a,0x53,0x4b,0x93,0x23,0x4b,0x36,0x85,0xc9,0x21,0xaf,0x9c,0xf8,0xa9,0xce, + 0x9d,0x31,0x4e,0x6c,0x24,0x71,0xbb,0x0c,0xc4,0x99,0x0b,0x28,0x41,0xe6,0xb9,0x49, + 0x30,0x0b,0xf3,0x61,0x9a,0x15,0x7e,0xa4,0xdb,0x3a,0x4e,0x79,0x99,0xe6,0x8e,0xb3, + 0x6c,0x28,0x87,0x87,0x1d,0x3c,0x39,0xb6,0xef,0xb7,0x82,0xec,0x2c,0x8d,0x6e,0xc9, + 0xf0,0x52,0x2e,0x98,0xc4,0x74,0xc3,0xc4,0x91,0xbd,0x97,0xd7,0x2c,0x79,0x59,0xe8, + 0xba,0x41,0x87,0x25,0xb8,0x29,0x66,0x86,0x8a,0x58,0xc9,0x62,0x03,0x13,0x3c,0xde, + 0x60,0xcb,0x43,0x29,0x43,0x6c,0x64,0xa1,0x32,0x8a,0xca,0x96,0xb2,0xb1,0x6d,0x2a, + 0x2b,0xf0,0x71,0xec,0x58,0x07,0x1a,0x91,0xc3,0xc1,0x53,0x33,0x22,0x7b,0x72,0x69, + 0x88,0x5e,0x2e,0x6f,0xc9,0xe5,0xb9,0x55,0x03,0xf2,0x2d,0x43,0xdf,0xd1,0xbd,0x26, + 0x97,0xdc,0xc3,0x18,0x02,0xaf,0xf8,0xab,0xde,0x1f,0x2b,0xea,0x29,0x66,0x89,0x00, + 0x1f,0x4b,0x0c,0x0b,0x43,0xbd,0xd8,0x4d,0xca,0xd4,0xe3,0x5a,0x9c,0x0f,0x86,0x43, + 0xe4,0x30,0x70,0xd4,0x0e,0x62,0x71,0xe9,0xa6,0x88,0xfd,0x3f,0x92,0x0d,0xfd,0x4e, + 0xc5,0x6a,0x67,0xce,0x6d,0x80,0x16,0xa4,0x89,0xd8,0xe2,0x15,0x41,0x79,0xc4,0xd9, + 0xc9,0x43,0xd6,0xd3,0xdc,0x3d,0xbb,0xe4,0xbd,0xb2,0xdb,0xe0,0xe7,0x6b,0x5e,0x62, + 0x75,0xa5,0x2f,0xbc,0xc0,0x6c,0xdd,0x6d,0x64,0x17,0x03,0xda,0xa8,0x5b,0xd9,0x4c, + 0x9f,0x84,0x5c,0xa0,0xa5,0x84,0x74,0x8f,0xde,0x74,0x96,0x4a,0x98,0x35,0xa3,0x58, + 0x7a,0x0f,0xa1,0x3b,0xfc,0xd0,0x45,0x06,0xb8,0xa0,0x25,0x47,0xe8,0xd7,0xb4,0x38, + 0xc4,0xe0,0xfd,0x83,0x5c,0xb3,0x60,0xdd,0xf0,0xf4,0x59,0x7b,0x03,0x89,0x37,0xf4, + 0x9a,0xde,0x7c,0x0b,0x04,0x6d,0xbc,0x9a,0x90,0xc3,0xe9,0x05,0xbf,0x33,0xe6,0x73, + 0xca,0x7a,0xde,0xe7,0x19,0x85,0x5a,0x3c,0xdc,0xa1,0x23,0xd0,0xf3,0x46,0x46,0x36, + 0x01,0x11,0xc0,0x12,0xfc,0xa3,0x04,0x9e,0x3b,0xa1,0x94,0x9a,0x47,0x74,0xb2,0x77, + 0x93,0x5c,0x98,0x61,0x41,0x44,0x4a,0x85,0x9e,0xef,0xb8,0x66,0xe7,0xe3,0x34,0x0f, + 0xe0,0xd2,0xe0,0x18,0x1e,0x7c,0x3a,0x64,0x6a,0x95,0x8c,0x6e,0xe5,0x63,0xf7,0xd6, + 0xfb,0xc8,0x78,0x01,0x90,0xa6,0xa3,0x71,0xbc,0x18,0xdd,0xd6,0xb0,0x95,0x1a,0x8d, + 0xeb,0xe9,0xf6,0xdd,0x06,0xe8,0x9a,0xd3,0x35,0x80,0x03,0xee,0xff,0x4c,0xf6,0x68, + 0x0a,0xa5,0x57,0x8f,0x13,0x8a,0x10,0xad,0xf9,0x83,0x98,0x8a,0xc4,0x54,0xc3,0xdc, + 0x43,0xa7,0xf1,0xae,0x16,0xd6,0xeb,0xdd,0xd3,0xd3,0x30,0xbf,0xc1,0x05,0x41,0xf3, + 0x97,0x9d,0x93,0xef,0x7a,0xfd,0x1f,0xc2,0x36,0x4a,0xa1,0x68,0xe8,0xcc,0xc9,0x74, + 0xa7,0x6d,0xde,0xfe,0x13,0x9d,0x22,0x0d,0x79,0x22,0x0a,0x91,0x74,0xd2,0x87,0x2a, + 0xe5,0x3d,0x6a,0xc0,0xeb,0x46,0x50,0xed,0xaf,0x5f,0xaf,0x93,0xfc,0xf6,0xcb,0x6d, + 0x3a,0xd8,0xb2,0x19,0x55,0xdf,0x8e,0xbf,0x8d,0x6e,0xea,0x4f,0xe2,0xda,0x4e,0xf2, + 0x39,0xbd,0xa8,0x3f,0xa9,0x47,0xd7,0x75,0xd4,0x75,0x0b,0xb5,0xc6,0x2f,0x3e,0x02, + 0xa4,0x49,0x7c,0xe8,0x98,0xc2,0x0f,0x27,0xd1,0x6d,0xf2,0x39,0x6e,0x9d,0x37,0x48, + 0xed,0x20,0x6f,0xbc,0x9a,0x54,0x8e,0x44,0xfc,0x8c,0xd1,0x3a,0x14,0xde,0xd8,0x9c, + 0x02,0xc1,0x24,0x2a,0xd2,0x90,0x82,0x6b,0xe3,0xca,0x02,0xf6,0x09,0xa3,0xfa,0xd5, + 0x80,0x2a,0x42,0x8d,0xbe,0x47,0xa1,0xb8,0x51,0x39,0xea,0x1b,0x61,0x8e,0x86,0xc7, + 0x3f,0x11,0x7d,0xe4,0x50,0x7e,0x9c,0xdc,0xd4,0x77,0x92,0x6d,0xd7,0x0f,0x1b,0xdf, + 0x8c,0xfe,0xad,0xff,0x99,0xc3,0xcc,0x44,0x66,0x7f,0x51,0x18,0xae,0x99,0xf7,0xcd, + 0xcd,0xea,0xe0,0xae,0x0a,0xdf,0x56,0x87,0x0c,0xd0,0x31,0xce,0x72,0xeb,0x9f,0x6e, + 0x3f,0xd5,0x7c,0x26,0xa0,0x8f,0x64,0xe5,0x5e,0xd2,0xed,0xe3,0x96,0x28,0x6d,0xc5, + 0x9c,0xa5,0x3b,0xa5,0x31,0x92,0x58,0x7e,0xdd,0xb3,0x52,0x56,0x9e,0x52,0xd8,0x61, + 0xa5,0x14,0xa8,0xe4,0x99,0x96,0x6b,0xb4,0xd3,0x66,0x7f,0x00,0x10,0xf9,0x6e,0x8c, + 0x62,0xb5,0xc5,0xc0,0x97,0x22,0xe2,0xb1,0x54,0xb0,0x9d,0xd7,0xf7,0x9e,0x7a,0x26, + 0x90,0x3f,0x80,0xe2,0xe9,0x02,0x38,0xea,0xfc,0x1a,0x4a,0x75,0xcf,0xa0,0x1d,0xe3, + 0x1b,0xd7,0xfe,0x8d,0x84,0xb3,0xcd,0xcd,0xb3,0x06,0x64,0x03,0xd0,0xbd,0x85,0xd2, + 0x37,0xb6,0x5f,0x30,0xd7,0x64,0xe8,0xdb,0x3f,0xf6,0xd1,0x0b,0xfb,0x11,0x63,0x4c, + 0x60,0x03,0x8a,0x26,0x3c,0x18,0xb0,0x1e,0x1b,0x28,0x38,0x75,0x75,0xc4,0x15,0xfe, + 0x5c,0x15,0x8f,0x56,0xae,0x31,0x25,0x45,0xe0,0x5a,0x51,0x47,0x30,0xf5,0x7c,0xf0, + 0x57,0x95,0xad,0x7f,0x0b,0x8c,0x74,0xf5,0x22,0xf1,0x39,0xeb,0xc7,0xc2,0x55,0x35, + 0xc8,0x17,0xe3,0xe4,0x5c,0xd5,0x48,0xab,0x7a,0xe5,0xaa,0x38,0xa8,0x55,0xb0,0x77, + 0xc9,0xf6,0x53,0xea,0xe8,0xbc,0x5b,0xe1,0x0e,0xc3,0xa8,0x6d,0x61,0xcd,0xcd,0xc4, + 0x9f,0xd0,0x8b,0xdc,0x26,0x5d,0x17,0x2e,0xce,0x85,0x5b,0xcb,0x75,0xae,0xd4,0x97, + 0x33,0xdd,0x67,0xed,0x97,0xe7,0x74,0xc2,0x50,0x4b,0x97,0x97,0xcd,0x92,0xfd,0x96, + 0x9a,0xf8,0x5d,0x1a,0xe8,0xbb,0x56,0x73,0x46,0x9b,0xc5,0xbd,0xc9,0xec,0x94,0x74, + 0x30,0x0f,0xc7,0x5b,0xf6,0xd1,0xa5,0x65,0x58,0x4c,0x24,0xe7,0x69,0xd5,0x75,0x3a, + 0xb9,0xca,0x3e,0x2b,0x07,0xfd,0x1c,0xba,0x3e,0x93,0x0b,0x14,0xb2,0xa8,0x22,0x89, + 0x58,0xef,0x92,0x48,0x6c,0x9d,0xf2,0xde,0x1d,0x43,0xa3,0x47,0xfb,0xb7,0xd6,0x36, + 0xc5,0xe0,0x7f,0xe1,0xc5,0xf6,0x2f,0x5f,0x73,0x6b,0xb3,0x25,0x4c,0x51,0xe3,0x8e, + 0xec,0x16,0x91,0x00,0x43,0x04,0xfa,0x49,0xb7,0xc3,0x56,0x91,0x18,0x26,0x5c,0xc3, + 0xd2,0x05,0x98,0x2e,0x54,0x7a,0xb4,0x32,0x36,0xea,0x81,0x71,0x4a,0xcf,0x2f,0xea, + 0x4f,0x9f,0x76,0x9e,0xb4,0xcc,0xe3,0xb3,0xef,0x3a,0xbb,0xf2,0xf8,0xdd,0xf7,0x9d, + 0x9d,0xd6,0x76,0x9b,0x00,0x27,0x55,0xf7,0x5f,0x9e,0xb0,0xf6,0x71,0x52,0x4b,0xe5, + 0x92,0x9e,0xd4,0x54,0xbc,0xd3,0xb4,0x06,0x63,0x9a,0x64,0xea,0x27,0xd8,0x53,0x5d, + 0xb6,0x79,0xc5,0xd0,0xda,0x45,0xe8,0x7c,0x89,0xac,0xcf,0xd3,0x42,0x6b,0x1b,0x09, + 0x27,0x50,0x6b,0xf7,0x67,0x1c,0x25,0xf0,0x2a,0xe3,0x14,0xb3,0x9e,0x68,0x61,0xeb, + 0xbf,0x5b,0x1b,0x7c,0xbb,0x8b,0xf5,0x15,0x81,0x61,0xdf,0x72,0xce,0x33,0x25,0x7d, + 0x40,0xf1,0xe3,0x4e,0xc8,0x6b,0x52,0x9a,0x71,0xb1,0xbe,0x94,0x17,0x2a,0x33,0x0e, + 0x91,0x45,0xf9,0xf7,0x58,0x57,0x84,0xeb,0xc8,0x3c,0x1b,0xf6,0x6f,0xdb,0xdc,0x3e, + 0xf5,0x01,0xe6,0xb1,0xac,0x45,0x09,0x75,0x6c,0xb1,0x73,0x6a,0xb6,0x9f,0x4e,0x6f, + 0xf9,0xea,0x49,0x2d,0x14,0xc4,0xa1,0xc5,0x58,0x6d,0x9b,0xab,0xd9,0xd0,0x30,0xde, + 0x73,0xcb,0xa6,0xbd,0x4c,0xd7,0x33,0x68,0x2a,0x82,0xf7,0xcd,0x42,0xee,0xcf,0xea, + 0xda,0x84,0xd0,0xf7,0xb1,0xd1,0x05,0x38,0x5d,0xbd,0x5a,0x28,0x29,0xad,0x7e,0x67, + 0x61,0xd9,0xd4,0x74,0x2d,0x0c,0xc7,0x14,0xa3,0x0c,0xa5,0xc9,0x41,0xa1,0x58,0x55, + 0x98,0xe5,0x7c,0x81,0x76,0xac,0xb1,0x98,0xc6,0x6c,0x58,0x45,0xab,0x08,0xca,0xe9, + 0x5b,0xa7,0x2a,0xe0,0x09,0xef,0x93,0xeb,0x5d,0xfe,0xd1,0x83,0x89,0x7e,0x7f,0x4c, + 0xa7,0xf1,0x5c,0x2a,0x23,0xa8,0x28,0x09,0xb5,0x27,0xb8,0x23,0x53,0xd4,0xb1,0xeb, + 0xe5,0xce,0xfe,0x82,0x8e,0x6a,0xb9,0xb7,0xa2,0x32,0x1e,0x3e,0xc0,0x19,0xdb,0xfa, + 0x11,0xce,0xf4,0xc9,0x1e,0x8c,0x9f,0x9d,0x5d,0xd8,0x58,0x6f,0x20,0xaf,0xbf,0x10, + 0x8b,0x9c,0x72,0xb5,0x8a,0x68,0xce,0xef,0x77,0x99,0x1a,0xc4,0x7a,0x2f,0x5b,0xcc, + 0xce,0x8a,0xcf,0x92,0x40,0x01,0x7b,0x64,0x4f,0xc2,0xa3,0x7b,0xcc,0xec,0x8c,0xcb, + 0x57,0x67,0xb3,0x0c,0x10,0x0e,0x62,0xed,0xc6,0x35,0x24,0xc1,0x84,0xa9,0x13,0x6e, + 0xfe,0x05,0x01,0x7b,0x77,0xbe,0x7b,0xd2,0xe6,0x00,0xc6,0x00,0xc8,0x46,0x50,0x89, + 0xbc,0xc0,0x45,0xda,0xd0,0x2b,0xb3,0x43,0x00,0x1a,0x8f,0x13,0x00,0xa6,0x5c,0xc6, + 0xca,0xb9,0xf4,0x16,0x6f,0xe8,0x6e,0x7f,0x1e,0x3f,0x9f,0xe6,0x43,0xb0,0xbc,0xb1, + 0x2c,0x44,0xe2,0x0e,0x8d,0x35,0xec,0x93,0xf2,0x3e,0x17,0x9c,0xd1,0xc0,0xc7,0x25, + 0xb5,0x29,0x0d,0x67,0x7f,0x97,0x74,0xef,0x88,0xf9,0x1f,0x6e,0xf8,0x87,0x57,0x02, + 0x03,0x4d,0x82,0x74,0x09,0xf9,0x65,0xcd,0xfd,0x1a,0xf7,0x50,0x72,0x31,0x83,0x17, + 0x5c,0xd4,0x64,0x8b,0xdc,0x44,0xf0,0x55,0x2f,0xad,0x5a,0xfe,0xe4,0xc1,0x62,0x39, + 0x5a,0x49,0xe5,0x5a,0x06,0x8f,0x16,0x08,0xc9,0x74,0xc1,0x98,0x32,0xd6,0xd5,0xab, + 0x69,0xfe,0x2c,0x47,0x71,0x78,0xb6,0xe5,0x10,0x91,0xb7,0xc6,0xd5,0xbd,0x69,0x9a, + 0x95,0x4e,0xb4,0x50,0x26,0xf0,0xc9,0x11,0x99,0x78,0xeb,0xbf,0xdf,0xe3,0x96,0x66, + 0x51,0x5f,0xf8,0x8e,0xdb,0x71,0x3e,0xb8,0xe0,0xb8,0xe2,0xfc,0xa4,0x1e,0xc2,0xe0, + 0x89,0xf2,0x04,0x96,0x2f,0x59,0x2b,0x97,0x06,0x36,0x7c,0xa5,0xe3,0x9f,0x14,0x90, + 0x52,0x1e,0x4d,0x18,0xd4,0xeb,0x0c,0x4a,0x3b,0x27,0x37,0xa8,0x63,0x83,0xab,0xf4, + 0x3d,0xb2,0x7c,0xfa,0x0b,0xc4,0xfd,0xee,0xf5,0x35,0xb7,0x6a,0x62,0xb9,0x93,0x3c, + 0xb8,0x56,0x02,0xfd,0xc5,0x75,0x92,0x7c,0x52,0x23,0xaf,0xfb,0x7f,0xed,0x89,0x10, + 0xcd,0x20,0xde,0x79,0xd0,0x3d,0xbb,0x1b,0x67,0x4b,0x14,0x33,0xb8,0x5a,0x3a,0x59, + 0x27,0x34,0x1c,0xae,0x67,0x63,0xcd,0x50,0x72,0xf0,0x24,0x39,0x86,0xd8,0x3a,0x9e, + 0xcd,0xd3,0x38,0xc9,0xe5,0xcb,0xbd,0x2c,0x17,0xc2,0x8c,0x74,0x54,0xaf,0xe9,0x05, + 0x79,0xf2,0xc1,0x8c,0x1f,0x0d,0x8f,0xbe,0xbb,0xf3,0xdd,0xb3,0xef,0x71,0x08,0x2e, + 0x5f,0xe1,0xb8,0x5b,0x9f,0xe1,0xbe,0x7b,0x77,0x73,0xd3,0x3a,0x8a,0xc9,0x31,0x60, + 0x88,0xc8,0x63,0xd9,0xd9,0x9b,0x6b,0x9d,0x5c,0x7d,0x5b,0x87,0x57,0x25,0xa7,0x17, + 0xae,0xbb,0x50,0x25,0x0e,0x1f,0xbe,0xb4,0xde,0x22,0xcc,0x8a,0xfd,0x8a,0x75,0xfb, + 0xdb,0xf1,0x52,0x96,0x1e,0x6d,0x2c,0x70,0xda,0xfb,0xfb,0xc1,0xde,0xd6,0x7e,0x77, + 0xdc,0xed,0x75,0x83,0x88,0x4c,0x91,0x46,0x68,0x68,0x56,0x0f,0x26,0x67,0xad,0xf0, + 0x87,0xed,0x66,0xe3,0xe9,0xce,0xd3,0x90,0x8e,0xd4,0xc3,0x67,0x3b,0x0d,0x3c,0x65, + 0x48,0xfe,0x2e,0xa4,0x93,0xf5,0xf0,0x69,0x78,0x97,0x30,0x8e,0xbd,0x2b,0xe8,0x20, + 0xb0,0x52,0xeb,0x4a,0xa6,0xa7,0x8d,0xef,0x9b,0x4d,0x93,0x69,0xe7,0x69,0xd3,0xe4, + 0xd9,0x6e,0xae,0xca,0x14,0x44,0x6f,0xbb,0x30,0xaa,0xbe,0xc9,0x8b,0x7c,0xd6,0x78, + 0xfa,0xdd,0xaa,0x22,0xbf,0xaf,0xc8,0xfd,0x06,0x72,0x58,0x0b,0x6e,0xe6,0x59,0xb7, + 0x77,0x24,0xe7,0x0f,0xab,0xca,0x6d,0x05,0x07,0x7b,0x49,0xf0,0xc7,0x9e,0xc9,0xbb, + 0xb3,0xdb,0xd8,0xf6,0x6b,0xfa,0xbd,0x16,0xeb,0x65,0xfe,0xaf,0xd7,0x3f,0xad,0xcf, + 0xe9,0x16,0xfb,0xe3,0xac,0xfb,0xcf,0xc1,0xf0,0x4b,0xca,0x7a,0xf9,0xfb,0xd6,0xef, + 0xbf,0xb9,0xcc,0xf9,0xfe,0xd9,0x0f,0x8d,0x67,0xdb,0xdf,0x3f,0x30,0xe7,0x4f,0xfd, + 0x29,0x79,0x7a,0xc6,0x08,0xd2,0xdc,0xd2,0x9a,0x4e,0xc3,0x6c,0x97,0x28,0xdd,0xff, + 0x67,0x1f,0xeb,0x8b,0x0f,0xfd,0xe9,0xd5,0x09,0x84,0x89,0x4f,0xc0,0x93,0xdd,0x9d, + 0xb5,0x1d,0x82,0x09,0x08,0x9e,0xec,0xee,0xbe,0xf9,0xf5,0x9f,0x41,0xf4,0x7a,0x02, + 0xa5,0xf3,0x07,0xb2,0x1d,0x33,0x18,0x90,0xde,0x78,0x46,0x65,0xaf,0x27,0x42,0x31, + 0xb8,0xe5,0x6b,0xee,0xf5,0x0c,0x78,0xdb,0xa7,0xdb,0x0d,0x43,0x6c,0x74,0x33,0x97, + 0x6f,0xeb,0xc9,0x7e,0x8b,0xd1,0xf5,0xbf,0xfa,0x5d,0xca,0x27,0x1d,0xea,0xbb,0xc6, + 0xee,0x77,0xeb,0x19,0xe6,0x66,0x73,0xa9,0xd5,0xfc,0x6b,0x8b,0xe5,0xfb,0xe2,0x57, + 0xe7,0xdd,0x21,0xd5,0x58,0x6b,0xe9,0xe5,0xd3,0x9e,0xfc,0xcc,0xcb,0xf7,0xfd,0xb3, + 0xef,0xd7,0x57,0xd3,0xcd,0x77,0x00,0x93,0xb0,0x7f,0x1a,0xf6,0x7c,0x49,0xaf,0xfa, + 0xeb,0xa0,0x3f,0x87,0x5e,0xbe,0x54,0xc5,0x9d,0x66,0x03,0x9c,0x59,0xdf,0xfb,0x35, + 0xaf,0xdf,0x27,0x25,0xff,0x6a,0x16,0x6f,0x1c,0x5b,0x27,0xe9,0xae,0xdf,0xc4,0x45, + 0xe1,0x26,0x7c,0x8d,0x8f,0x70,0x6b,0x61,0x27,0xa6,0x4d,0xbc,0xe5,0x61,0x8b,0xb9, + 0x31,0x66,0xb8,0x19,0xfa,0xf8,0xa9,0xb9,0x13,0xd7,0x0a,0x4c,0x15,0xd2,0x94,0x7f, + 0x41,0x4c,0xc0,0x34,0xe1,0x1d,0x3f,0x8d,0x66,0xc8,0x8b,0xad,0x2e,0xa2,0x45,0x9c, + 0xb8,0x1b,0x1c,0xd1,0xfe,0x76,0x2d,0xe3,0x25,0x28,0x7c,0x4f,0xac,0xd7,0xb2,0x3b, + 0xaa,0x27,0xb9,0x37,0x2a,0x99,0x99,0x6e,0x8f,0x06,0xc7,0xe4,0x39,0x45,0x5e,0x3f, + 0xd3,0xab,0x5b,0x46,0xc9,0x2b,0x70,0x99,0x29,0x3f,0x61,0x3b,0x50,0xe6,0x49,0x40, + 0xe3,0x47,0x37,0x04,0x3f,0xfe,0x91,0xb3,0x48,0xd3,0xe0,0xeb,0x5d,0xb8,0x65,0xa5, + 0xed,0x7f,0xf0,0x18,0x77,0xf3,0x4f,0x36,0x7d,0xfa,0x79,0xc0,0x1e,0xf5,0xf2,0x29, + 0xdf,0x76,0xa7,0x99,0x20,0xe6,0xab,0xeb,0x8c,0x93,0x76,0x41,0x85,0xb7,0x0e,0xcf, + 0xdd,0x05,0xd6,0xe1,0xfd,0xa1,0xda,0x35,0xcf,0xfa,0xe7,0xf8,0xb6,0x79,0xd1,0x1f, + 0x0e,0x07,0xd3,0xb6,0xe5,0xf9,0x82,0x11,0xf0,0x1d,0x67,0xf6,0x77,0xf6,0x10,0x3f, + 0x9b,0x1b,0xab,0x1d,0x6d,0x82,0xc8,0x38,0x36,0xd8,0x06,0xea,0x54,0xc3,0xf3,0xe5, + 0x31,0xb0,0x3d,0x78,0xcc,0xb1,0x93,0x03,0x6f,0x7a,0xdd,0xec,0xa2,0x8d,0x63,0x27, + 0x87,0xd9,0xb6,0x63,0x0f,0x33,0xcb,0x56,0xa3,0x64,0x37,0x9d,0x2f,0x7e,0xc3,0x5f, + 0x0d,0x8d,0x9b,0xdb,0xff,0xda,0x08,0xc0,0x52,0xcf,0x49,0x02,0xea,0xc2,0xf4,0xc2, + 0x1f,0x68,0x9c,0x95,0xdd,0x8a,0xf3,0x17,0xbd,0x3d,0x2b,0xa1,0x2e,0x37,0x37,0xcd, + 0xaf,0x78,0xa9,0xe4,0x68,0xb7,0x1b,0xda,0x52,0x75,0x10,0xe0,0xec,0x9b,0xc2,0x7d, + 0x43,0x11,0x82,0xba,0x06,0x38,0x6a,0x33,0xdb,0xca,0x53,0x36,0x3c,0x8c,0xfd,0x1e, + 0x24,0x9f,0xd1,0x8b,0xe2,0x52,0x37,0x92,0x0f,0xd9,0x59,0xec,0xf6,0x25,0xf9,0x80, + 0xfe,0xc4,0xfb,0x5b,0x94,0xb0,0x51,0x33,0x84,0x3f,0xc7,0xd9,0x64,0x80,0xa3,0x9c, + 0x7e,0x36,0x7e,0x3c,0x37,0x6d,0x1c,0x74,0xa5,0x27,0x74,0x87,0xd2,0xad,0x63,0xde, + 0xf8,0x82,0x37,0xeb,0x3d,0xc4,0xfb,0x7d,0x15,0xbd,0x4b,0x3c,0xca,0x54,0xb8,0xd0, + 0x17,0x6f,0xb4,0xca,0xd0,0x84,0xfb,0x0b,0x73,0xfb,0x5a,0xbc,0xfb,0xe1,0x57,0x1a, + 0x2e,0x5e,0xf0,0x57,0xb7,0x77,0x8b,0x41,0xa9,0x89,0x79,0xe0,0xf4,0xca,0xa3,0xda, + 0xf5,0x71,0xdb,0xe4,0x70,0x7b,0xdf,0xdd,0xc3,0xcd,0x19,0xe5,0xbe,0x39,0x63,0xb1, + 0x65,0xca,0xbf,0x64,0xe5,0x38,0x2d,0x0c,0x1c,0x37,0xd6,0x59,0x38,0x72,0x69,0x9e, + 0x4b,0x5d,0xd3,0xaf,0xb3,0x2f,0xcf,0xe8,0x7b,0xe2,0x15,0x48,0xff,0x8c,0xe6,0x8f, + 0xe2,0xf0,0x05,0x76,0xf7,0x6a,0x10,0xe8,0x1d,0xca,0xe8,0x16,0x65,0xf5,0x81,0x8d, + 0x1e,0xf9,0xe8,0x26,0xdc,0x0f,0x75,0x6f,0x8a,0x5b,0x6d,0xfd,0x68,0x50,0x7f,0xb5, + 0x01,0xa4,0xa0,0x79,0x88,0x0d,0xa4,0x7a,0x1f,0xfd,0x7a,0xbb,0xc5,0x47,0x82,0x4a, + 0x79,0xe5,0xc8,0xee,0x76,0x15,0xbb,0x7d,0xed,0x8d,0xf2,0xc6,0xc8,0x86,0x52,0x08, + 0x0b,0xa1,0xc5,0x89,0x91,0xd1,0xfe,0x6a,0xc2,0xa5,0xac,0xb8,0x9a,0xc2,0xf2,0x18, + 0xff,0x65,0x12,0x8d,0xc5,0x3b,0x4c,0x61,0xb0,0x81,0x28,0x4b,0x14,0xfe,0x28,0x1e, + 0x43,0x11,0x0e,0xef,0xa3,0xc9,0x4e,0xb2,0x9b,0x3c,0xa9,0xb0,0x38,0xc4,0x24,0x21, + 0x12,0x11,0x8e,0xb0,0x56,0x9b,0x1c,0x0e,0xd0,0xa7,0xc7,0x71,0x6e,0xf0,0x31,0xf5, + 0x61,0xd5,0x06,0x72,0xf0,0x9c,0x01,0xc5,0x26,0x91,0x89,0x40,0x11,0x15,0x81,0x3a, + 0x8c,0xe6,0x1e,0x9b,0x44,0x94,0xbd,0xab,0x77,0xbd,0xec,0x18,0xb1,0x96,0x83,0x99, + 0x51,0xaa,0x76,0xd2,0x26,0x6e,0xb8,0x0c,0x30,0x79,0x0b,0x43,0x2e,0x6d,0x42,0x91, + 0x22,0xcd,0x50,0x47,0xfd,0xe1,0xdb,0x5b,0x5e,0xd2,0xf1,0xa8,0x3d,0xf9,0xe2,0xed, + 0x23,0xf9,0x0c,0x96,0x2a,0x3c,0x89,0xd9,0x39,0x17,0x3c,0xe1,0x0e,0xfa,0x37,0xb4, + 0x8d,0x14,0xc3,0x84,0xec,0x74,0x36,0xc1,0xb1,0xf1,0x84,0xec,0x03,0xca,0xcd,0x02, + 0x9f,0x4c,0xdc,0xdb,0xa2,0x15,0x72,0x97,0x1b,0x6e,0xb7,0x9c,0xeb,0x20,0x07,0x8b, + 0xb4,0x49,0x8d,0x10,0xc9,0xfd,0x0f,0x69,0x67,0xb6,0x71,0xca,0x88,0xaf,0x36,0x3e, + 0xf7,0x92,0xe7,0xb7,0xff,0x6e,0x73,0x72,0x57,0xfe,0x59,0x62,0xdb,0xc8,0xde,0x7b, + 0x26,0xb0,0xd8,0x9a,0xa4,0x41,0x9a,0xbd,0x72,0x70,0xbe,0xac,0x43,0xe2,0x68,0x1f, + 0x10,0xad,0x77,0x75,0x98,0x46,0xbd,0xf5,0x20,0x34,0x83,0x3d,0xac,0xb5,0xbe,0x9f, + 0x4a,0xcf,0xe2,0x9c,0xdb,0xd4,0xb6,0x11,0xdb,0x6d,0x3d,0xa9,0xe8,0x16,0xf4,0x29, + 0xaa,0x1e,0x14,0x8c,0xe0,0x49,0x55,0xa7,0xa8,0xca,0xc4,0xad,0x5e,0xed,0x77,0xc3, + 0xaf,0xac,0xf8,0x92,0x15,0xf7,0x38,0x9d,0xd6,0xc7,0xc6,0x92,0x7d,0xe4,0x7c,0x6c, + 0xc4,0xc6,0x8b,0x06,0x20,0xe2,0xea,0x70,0x92,0x0f,0x0c,0x78,0xb9,0x1e,0xbb,0xe3, + 0x34,0xbd,0x82,0xef,0xae,0xdf,0xf4,0x07,0x35,0xc1,0x03,0x6e,0x1f,0x6c,0x3c,0xe8, + 0xfa,0xc1,0xc6,0xfa,0xfb,0x07,0x02,0x54,0x75,0x03,0xa1,0xba,0x17,0xf8,0x8d,0x38, + 0x9d,0x4c,0xdf,0x5d,0xcd,0x5d,0x5b,0x5a,0xf2,0xf9,0xd4,0x1d,0x6e,0xf5,0x6f,0x07, + 0x24,0x7d,0x46,0xd8,0xa8,0x4f,0x7a,0xd8,0xca,0xbe,0x3b,0x38,0x0c,0x57,0xde,0xc6, + 0xde,0xdc,0x9c,0x35,0xe8,0x54,0x8e,0xc8,0xa3,0x8c,0x75,0xbc,0x94,0x0c,0x64,0x19, + 0xa0,0xbd,0xa1,0x10,0x93,0x6b,0xff,0x58,0x9e,0x3d,0x8e,0x57,0x5e,0x91,0x50,0xcf, + 0x1e,0xfb,0x93,0xab,0x61,0x8f,0x96,0xa3,0xb3,0x3e,0x9a,0xba,0xb8,0x78,0x57,0x0f, + 0xc8,0x1b,0x02,0xdf,0x65,0x0c,0xe3,0xb2,0xa1,0xff,0x19,0x02,0x83,0xe8,0xc6,0xab, + 0x74,0x7f,0xa9,0x63,0xf5,0xaa,0x56,0x94,0xb7,0xba,0x34,0xb5,0x85,0xc4,0x75,0x2f, + 0x70,0x86,0x10,0x1d,0x19,0x99,0xeb,0x15,0xf2,0x30,0xbf,0x6e,0x74,0x70,0x35,0x25, + 0x16,0xea,0x04,0xaf,0x27,0x06,0x29,0xd1,0x11,0xe6,0x60,0xb4,0x23,0x4b,0x9d,0x18, + 0x0f,0xfa,0xc9,0x0e,0xe9,0x02,0xe4,0x5a,0x16,0x6f,0x1c,0xd8,0xb9,0x56,0xe1,0x63, + 0xff,0xd1,0x34,0x2f,0xe6,0x80,0x5c,0xaf,0x0a,0x9d,0x81,0xa2,0x62,0x0c,0x11,0xcc, + 0x37,0x4f,0x63,0x9c,0x1a,0x60,0xbe,0x3c,0xcd,0xe1,0xf7,0x1c,0xc0,0x2c,0xe8,0x4d, + 0xc0,0x49,0x59,0xe6,0x23,0x5b,0x65,0x94,0x69,0x67,0xbe,0x11,0x37,0x11,0x08,0x7b, + 0x06,0x6f,0xce,0x49,0x4f,0xe7,0xc2,0xb6,0xc2,0xd3,0xc7,0x88,0xa3,0x46,0x13,0x94, + 0x31,0xbd,0xab,0xb2,0x31,0x84,0xb3,0xe5,0x5a,0x48,0xa6,0x84,0xba,0xbf,0xb9,0x8e, + 0x91,0xa0,0xf6,0x80,0xd4,0x10,0xc0,0x20,0x26,0xab,0x72,0xc0,0x15,0x26,0x3d,0xe7, + 0xd0,0x44,0x67,0xdf,0x52,0x6a,0x18,0x51,0xb5,0x78,0xa7,0x52,0x38,0x8c,0x90,0xcb, + 0x92,0xf7,0xc5,0x90,0x36,0xe1,0x8e,0x7b,0x76,0x3c,0xe7,0xb6,0x45,0x89,0x72,0x39, + 0x29,0x50,0x76,0xa2,0x9e,0x1d,0x78,0xb8,0x13,0x7e,0xcb,0xff,0x61,0x97,0x14,0xd1, + 0xc2,0x29,0xa7,0x1e,0xc4,0x68,0x6f,0x73,0xe1,0x23,0xbd,0x01,0x1b,0x57,0x64,0x32, + 0x0b,0x18,0x57,0x1d,0xce,0x04,0xc1,0x21,0x7d,0xfd,0xed,0xbb,0x3f,0x60,0xdb,0xc9, + 0xa4,0xe5,0x3a,0x6d,0xf8,0x87,0x37,0x4f,0x38,0x6e,0x44,0xff,0xf3,0x3c,0x72,0xc4, + 0x35,0xd0,0x5b,0x4e,0x04,0x15,0x81,0x78,0xd0,0x20,0x67,0x39,0x57,0x83,0x99,0x21, + 0x26,0x2f,0xbe,0x57,0xb1,0xdc,0x31,0x54,0xbc,0xa5,0xb1,0x68,0x7c,0x3e,0x56,0x02, + 0xc9,0x91,0x13,0x3c,0x49,0xe5,0x3a,0x08,0x4f,0x25,0x91,0xcc,0xa6,0xbc,0xe6,0xbc, + 0x5f,0x97,0xb0,0x2e,0x62,0xc7,0xec,0x34,0x8e,0x81,0x68,0x7a,0x97,0x37,0xd8,0x07, + 0xb3,0xc1,0xb1,0xd7,0x27,0xf0,0x83,0x81,0xc7,0x29,0xae,0x0a,0x39,0x3c,0x8f,0x66, + 0xd3,0xce,0x6c,0xda,0x20,0x53,0xec,0x7a,0x60,0x8e,0x75,0x67,0xa7,0xd6,0x6a,0x41, + 0xce,0x65,0xc1,0x69,0xe6,0x9e,0xa1,0x9c,0x8d,0x6c,0x1d,0x3c,0xca,0xab,0xf9,0x2d, + 0xf3,0x86,0xac,0xb7,0xa7,0xe4,0xa8,0x3d,0x4c,0x28,0x0d,0xd8,0xd9,0xd0,0x9a,0x81, + 0x7c,0xf1,0xc1,0xd7,0xdd,0xcb,0xc3,0x7d,0xb9,0x2c,0x89,0x90,0xd8,0x60,0x76,0x87, + 0x72,0x98,0x94,0xa0,0x3a,0x21,0x47,0xab,0x77,0x06,0x82,0x94,0xaa,0xeb,0x72,0xe1, + 0x8b,0x58,0x55,0x13,0x56,0x36,0x22,0x0f,0x93,0x4a,0x1e,0xd9,0x0e,0xe6,0x14,0x8b, + 0x66,0x7c,0x77,0x22,0x7e,0x33,0xa5,0x23,0x1c,0xb9,0xcb,0x67,0x6d,0x73,0x2f,0xdd, + 0xa5,0x90,0x71,0xbd,0xa2,0x08,0x09,0x49,0x94,0xe3,0x20,0x17,0x9a,0x3e,0x06,0x49, + 0x75,0xf2,0x63,0xf9,0xff,0x3b,0xe8,0x16,0xb7,0xf8,0xb1,0xc6,0x8d,0x4f,0x73,0x54, + 0x78,0xee,0xcf,0x7c,0x5c,0x92,0x9c,0x47,0x8f,0x8f,0x4d,0x8d,0x28,0x31,0xc0,0x5a, + 0x26,0x4c,0x90,0x96,0x9b,0x0d,0x6f,0xef,0x74,0xe8,0x2d,0x83,0x12,0xbe,0x8f,0xb5, + 0xf6,0xf6,0x0e,0x84,0x16,0x5d,0x18,0x69,0x21,0x55,0x0a,0xec,0x8f,0xb4,0xbc,0xfe, + 0x08,0x27,0xda,0x7e,0x79,0x9c,0x2c,0xe5,0xf5,0x47,0x76,0x71,0xe6,0x4b,0x82,0xc4, + 0x07,0xb9,0xd1,0x9d,0x4a,0x49,0xe2,0x3b,0xd8,0x8c,0x07,0xaf,0x3c,0xf7,0x23,0x97, + 0x3a,0xc5,0xc4,0xa0,0x6e,0x19,0x0d,0x01,0x6c,0xf4,0x0d,0xd0,0x64,0x6a,0xc5,0xac, + 0x61,0xcf,0x61,0x4e,0x2c,0x92,0x9e,0x6f,0xd3,0xa2,0xf3,0xec,0xa3,0xad,0xbf,0x47, + 0x24,0xd6,0xb0,0xe4,0x32,0xd2,0xe5,0x63,0x2e,0x5e,0xbe,0x59,0xe6,0x5d,0xf3,0x9b, + 0x25,0xf5,0x90,0x6f,0x96,0x3c,0x82,0xbe,0x59,0xce,0x6f,0xbf,0x59,0x12,0x8d,0x1f, + 0xa5,0x4b,0xc8,0x0b,0xb5,0xae,0x3c,0x72,0xe3,0xc8,0x33,0xb3,0x87,0x9f,0xbd,0x05, + 0xe3,0x5d,0x2c,0x4d,0xc4,0xf5,0x63,0xba,0x85,0xb1,0x96,0x4f,0xa5,0x2c,0x4c,0xf8, + 0x8b,0xe3,0x09,0x23,0xb4,0x56,0xf9,0x3c,0xcd,0x39,0xaa,0x38,0x9a,0xc5,0x64,0xf4, + 0x97,0x75,0x5a,0xbc,0x1f,0xa6,0xd5,0x96,0xee,0x90,0x64,0x36,0x2c,0xc5,0xb0,0x7f, + 0x54,0x7d,0xde,0x2f,0x65,0xb2,0x87,0x3c,0xf7,0x5e,0xd1,0xfb,0x61,0x1f,0x3d,0x98, + 0x48,0x84,0xee,0xcd,0x9e,0xff,0x02,0x8c,0x3c,0xe8,0x2b,0xb7,0x63,0xeb,0x86,0x92, + 0x14,0xac,0x12,0x6e,0x73,0xd3,0xdb,0xb2,0xb0,0xf6,0xec,0xfe,0x02,0xc1,0xa4,0xc9, + 0x04,0x3f,0x5d,0x73,0x41,0x58,0x94,0x7d,0x52,0xe6,0x4e,0x1c,0xd4,0x79,0xd9,0x95, + 0x05,0x58,0x98,0x4c,0x8d,0xff,0x04,0x74,0x9f,0xfa,0xef,0x07,0xb9,0x27,0xdd,0xcc, + 0xa2,0x6a,0xa5,0x93,0x26,0xda,0x29,0xd8,0xbe,0x99,0xd6,0x90,0x65,0x00,0x6a,0xa1, + 0x52,0x60,0xe1,0x2f,0x89,0xb2,0x9c,0x03,0xf2,0x86,0xf0,0x1b,0x7b,0xf5,0xff,0xd5, + 0xad,0xff,0xf3,0x78,0xb1,0x7b,0x97,0xbb,0xe6,0xd3,0xd6,0x79,0x90,0x58,0x09,0x69, + 0x67,0x70,0x2f,0xc7,0xd8,0x44,0x11,0x0c,0xdb,0xad,0x63,0xb7,0x42,0x8f,0x24,0xbb, + 0x44,0x5d,0x1a,0x9c,0xd2,0xc4,0x18,0xf1,0xbd,0x1c,0xaa,0x80,0x45,0xfe,0x1a,0xc4, + 0xb2,0x72,0x3c,0x49,0x05,0xc4,0xf8,0xb2,0x4b,0x4e,0xd8,0x39,0x62,0x7a,0x62,0x03, + 0xb7,0x4f,0xca,0x5e,0xea,0x9c,0xcf,0xe9,0x7a,0x57,0x5c,0xec,0x11,0x8a,0x2e,0x9f, + 0xc8,0x57,0x96,0x62,0xe1,0x21,0x38,0x85,0x44,0xee,0x75,0x94,0xd2,0x76,0xbc,0x5e, + 0x2d,0xcc,0x02,0xc1,0xe8,0x25,0x92,0x62,0x4b,0x20,0x5e,0xa7,0x16,0x20,0xa0,0xe4, + 0x85,0xc8,0xa5,0x88,0x6b,0x21,0x2a,0x31,0xd9,0x47,0x48,0x4e,0xdb,0x87,0x4b,0xe1, + 0xb2,0x03,0x26,0x8b,0xfd,0xe9,0x5c,0x3d,0xb7,0x18,0xed,0x3c,0xfb,0x3b,0xc6,0xea, + 0x8d,0xdc,0x53,0xe3,0x9d,0x5d,0x5a,0x31,0x80,0xe3,0xd6,0x8a,0x5d,0xef,0xa8,0x73, + 0x2b,0x78,0x1e,0x39,0x93,0x08,0x03,0x82,0x86,0xa7,0x4e,0xb8,0x7a,0x60,0xdf,0x1d, + 0xd0,0x9e,0xf4,0xfb,0x46,0x0f,0x99,0x05,0x1f,0x43,0xa3,0x16,0x34,0x0e,0x32,0x1e, + 0x7d,0x0c,0xc9,0xe7,0x87,0xe5,0xff,0x85,0xbb,0x3e,0x38,0xb9,0xdb,0x04,0x2e,0x76, + 0x8d,0x41,0xd8,0x01,0xc0,0x6e,0x63,0x32,0xf1,0x6e,0x78,0x35,0xe5,0x30,0x8e,0x09, + 0x72,0x59,0xae,0x44,0x50,0x98,0x7c,0x24,0x06,0x33,0x62,0x89,0x0d,0xc2,0x35,0x50, + 0x9f,0x3c,0xec,0x8d,0xa7,0x70,0x1d,0x62,0x39,0xed,0xa0,0x73,0x8a,0xba,0xf8,0xe7, + 0xd2,0xad,0x10,0x24,0x93,0xe3,0xa3,0x47,0xad,0x6c,0xd6,0xf5,0xb4,0x55,0xdb,0x2a, + 0x71,0xa0,0x88,0xd0,0x0c,0xec,0xed,0x0b,0x75,0xcd,0xc4,0xa1,0x4a,0x80,0xa7,0x6c, + 0x4e,0x57,0x7d,0xc0,0x60,0xb7,0x2a,0xe2,0xe4,0x86,0x7d,0x81,0x35,0x42,0x8b,0x00, + 0xcb,0x0d,0x95,0xeb,0x71,0xca,0x9f,0x47,0x6e,0x75,0x1e,0xb1,0xdd,0x4d,0xdd,0x8a, + 0xfb,0x26,0xd1,0xe3,0x31,0x2a,0x11,0xf5,0xeb,0x46,0x28,0xc3,0x79,0xd7,0xbd,0x64, + 0x3f,0x78,0xcb,0x3e,0x9c,0xd8,0x3f,0xa0,0xa0,0x57,0xd3,0x3b,0xba,0xef,0x54,0x76, + 0x15,0xa8,0x1e,0x51,0xaa,0xfb,0xa9,0xfa,0x17,0x7a,0x2c,0xeb,0x6d,0x15,0xf3,0xe4, + 0x87,0x3b,0x7c,0xfc,0xef,0xf5,0x32,0x24,0xdc,0xaf,0x76,0x31,0xa4,0x1d,0x88,0xbb, + 0x9b,0xe0,0xab,0xf0,0xfa,0x12,0x64,0x93,0xc9,0x78,0xad,0xeb,0x17,0x59,0xfd,0x99, + 0x75,0x87,0x2c,0x0a,0x65,0x9b,0x91,0xae,0x93,0x33,0x8e,0x77,0xa6,0xc8,0xcd,0x28, + 0x5e,0x84,0x30,0xee,0xc8,0xaa,0x2b,0xc8,0xb7,0x33,0x82,0x86,0x79,0xe5,0xf8,0xe5, + 0x09,0xb0,0x92,0xce,0x1d,0xf6,0x40,0xd3,0xcb,0xf6,0x04,0x8d,0xc0,0x69,0x85,0xac, + 0xaa,0x11,0xd0,0x06,0x4e,0x00,0xee,0x80,0x84,0xf3,0x3d,0x5b,0xa4,0xb0,0x11,0xa8, + 0xfb,0xa0,0x8a,0xf2,0x55,0xea,0x98,0xa2,0x7b,0x83,0x1e,0x1e,0xa8,0xf1,0xd8,0x9b, + 0x7c,0x97,0x1d,0x29,0xc9,0xa4,0xad,0xad,0xe1,0x7a,0x15,0xaa,0xa6,0xb3,0x11,0x70, + 0x9f,0x81,0x6e,0x8e,0x5b,0x5d,0xbc,0x0a,0x51,0xb3,0x3f,0x46,0x7d,0x41,0x00,0xb6, + 0xe3,0x8f,0x29,0xfb,0xd9,0x80,0x85,0x52,0xe6,0xb7,0xf5,0xfd,0x1e,0x7e,0x68,0xab, + 0x55,0xd9,0xc2,0x8e,0x10,0x29,0xeb,0xf7,0x4b,0x19,0x74,0x30,0xb1,0x26,0xc8,0x7c, + 0xfc,0x34,0x18,0x7f,0x1a,0x65,0x9d,0xfc,0x72,0x59,0xb4,0x9d,0xf0,0xe3,0x69,0x1f, + 0xfe,0x72,0x5c,0x18,0x73,0x81,0x39,0x6e,0xed,0x36,0xed,0x8b,0x4c,0xe2,0xd4,0x2c, + 0x5f,0x4f,0x89,0x40,0x8f,0x42,0x93,0xcc,0xa2,0xc8,0xf0,0x1b,0x6d,0xd5,0x09,0xf3, + 0xb3,0x78,0xc7,0x3b,0x2b,0x17,0x42,0x5a,0x2c,0x4f,0x71,0x55,0x31,0x78,0x7d,0xbf, + 0x50,0xf6,0x58,0xbd,0x21,0x49,0x07,0x79,0x46,0xec,0x56,0x29,0xce,0xd1,0x9b,0x68, + 0x8e,0x21,0x35,0x01,0x44,0x1d,0xbb,0x0c,0x5c,0xe5,0xe3,0x68,0xad,0xcb,0x0a,0x43, + 0x88,0x18,0xbd,0x92,0x28,0x52,0xd0,0xb2,0x32,0xcb,0x22,0x1b,0xbe,0x93,0x13,0xa5, + 0x25,0x81,0x9b,0xae,0x61,0x3f,0xc1,0x70,0x95,0x89,0x48,0x04,0xa2,0xe1,0x41,0x9d, + 0xbf,0x96,0xc4,0x22,0xa7,0x2d,0x97,0xa6,0x70,0xbd,0xed,0x6e,0xe7,0x42,0x09,0xc8, + 0xe3,0xf9,0x6b,0xe6,0x9d,0xc8,0x14,0xab,0xe1,0xd4,0x82,0x25,0xdf,0xd1,0x28,0x1e, + 0x37,0x03,0x2e,0xdd,0xe4,0x3a,0x25,0xc9,0x96,0x93,0xc4,0x26,0xe5,0x86,0x2e,0x10, + 0x61,0x87,0xe6,0xf3,0x69,0x6b,0x6b,0x0b,0xfb,0x8c,0x69,0x2d,0xdc,0x0a,0xdb,0x26, + 0xb3,0x53,0x1c,0xe0,0xf2,0xe4,0x0b,0x68,0x43,0xe5,0x1d,0x25,0xaf,0xbc,0x3e,0x25, + 0xe7,0xbe,0x15,0xb8,0xc2,0xd0,0x41,0x15,0xfe,0x25,0xf4,0x50,0x61,0xfc,0x28,0x1e, + 0x8b,0x0f,0xeb,0x94,0x95,0x12,0xa2,0x51,0x98,0xbe,0x5c,0xee,0x36,0xdb,0x56,0x46, + 0xbe,0xdb,0x5a,0x0e,0x93,0x68,0xf2,0xcc,0x1d,0x47,0x0a,0x76,0xcf,0x1c,0xd7,0xeb, + 0xf7,0xe2,0x80,0x07,0x89,0x31,0x54,0x13,0x12,0xed,0x2d,0x7d,0xba,0xb9,0xa9,0x3d, + 0x01,0x18,0xce,0xfa,0xe8,0x7d,0x96,0x6f,0x84,0xab,0x0c,0x83,0xe0,0x14,0x33,0x7b, + 0x9f,0x02,0x11,0xd4,0xd9,0x0c,0xb7,0x52,0x9b,0xcb,0x13,0xdc,0xe4,0xb2,0xec,0xa0, + 0x01,0x66,0xa4,0xe4,0x9b,0x9a,0xa0,0x1a,0xc6,0x31,0x28,0x2e,0xca,0xae,0xbc,0x78, + 0x2b,0x34,0x35,0x2b,0xb0,0x6c,0x78,0xf5,0xb2,0xf7,0x57,0x5a,0x05,0xc4,0x3e,0xeb, + 0x06,0xa6,0x95,0xb6,0xc2,0x17,0x1f,0xb8,0xc4,0xe7,0x5b,0x5d,0xb8,0xb1,0x08,0xff, + 0x7b,0x72,0x85,0x13,0x61,0xb9,0xef,0x15,0xcc,0xf3,0x01,0x2a,0x77,0x81,0x13,0x16, + 0x25,0xf9,0x52,0x63,0xff,0xf5,0x2b,0x0a,0x08,0x99,0xee,0x3c,0x69,0xeb,0x3b,0x02, + 0x32,0xfe,0x48,0xa6,0x95,0x47,0xa1,0x89,0x22,0xf2,0x33,0x84,0xca,0x0d,0x05,0xa3, + 0xc2,0x6b,0x86,0x4a,0x70,0x5c,0xc4,0x90,0x6f,0x9f,0xe1,0xeb,0x8f,0xf4,0xcb,0x93, + 0xcf,0x05,0x1e,0x18,0x6e,0x30,0x3e,0x9b,0x18,0x20,0x90,0x40,0xa6,0xbc,0xe1,0x01, + 0x7a,0x02,0x8b,0x7f,0x59,0x19,0x71,0x7a,0x10,0xfd,0x7e,0xb8,0x1f,0x1b,0x40,0xf6, + 0x48,0x10,0xb2,0x30,0x26,0x38,0x01,0x58,0xb0,0xed,0x7d,0x5d,0x7a,0xce,0x9d,0x01, + 0x35,0xdb,0x05,0x0b,0xa9,0x75,0xdf,0x39,0x90,0x8f,0x0c,0x38,0x42,0xaf,0x27,0x3f, + 0x10,0xe1,0xaf,0xb8,0x3f,0xcf,0x14,0xbe,0x3f,0xf8,0xb0,0xf7,0x26,0x60,0x5f,0x13, + 0xe4,0xc8,0x61,0x48,0x76,0xbb,0xd9,0x3c,0xe0,0xcb,0x44,0x26,0x8f,0x46,0xdf,0x42, + 0xb6,0xb7,0xbc,0x7d,0xbb,0xe8,0x8b,0xf3,0x3c,0x36,0x30,0x49,0x78,0x39,0xcb,0x3e, + 0x01,0x18,0x23,0xf8,0xea,0x66,0x94,0xb1,0x46,0x75,0xf9,0x69,0x86,0x75,0x07,0xad, + 0x42,0xe4,0x1b,0xe6,0xa7,0xc5,0xb3,0x27,0xb8,0xdc,0x7f,0x4b,0xd7,0x2e,0x66,0x75, + 0x2c,0xaa,0xa4,0x4a,0xd8,0x05,0x9c,0x22,0xd3,0xac,0x61,0x17,0xbf,0x97,0x5d,0x16, + 0x39,0x39,0x84,0x18,0xbb,0x1a,0x94,0x85,0xec,0x08,0xe6,0x0c,0xd7,0xfd,0xac,0x94, + 0x1f,0x3f,0xd3,0x3e,0x65,0xde,0x37,0xfe,0x39,0xac,0xa2,0xcd,0xa7,0x20,0x62,0x75, + 0x19,0xb3,0x4d,0x0b,0x33,0x4a,0x6b,0x69,0x09,0x0c,0x39,0xe8,0x84,0x46,0x79,0x63, + 0x74,0x59,0xea,0x3f,0xce,0x82,0xbd,0xfd,0xd7,0x01,0x7d,0x18,0x64,0xd4,0x07,0x32, + 0xbf,0x2a,0xc1,0x02,0xfe,0x9c,0xbe,0x97,0x1a,0x75,0x7b,0x20,0x67,0xce,0x38,0x88, + 0x4b,0xe3,0xc0,0x24,0xd0,0x4c,0x14,0x44,0xec,0xea,0x01,0xdb,0x18,0x1b,0xb4,0x01, + 0x6b,0xbe,0xc9,0xc5,0x64,0xea,0x65,0xb1,0x79,0xc0,0x53,0x8c,0x2c,0x1c,0xe0,0x5d, + 0xdf,0xe4,0xa7,0x68,0x32,0x66,0x07,0x8e,0xbc,0x87,0x98,0x7f,0xf8,0x85,0xcc,0x4f, + 0xba,0xa3,0xc2,0x75,0x5c,0x66,0x76,0x6f,0x7c,0x20,0x8a,0xe3,0xd0,0x84,0xbc,0x8f, + 0xcd,0x84,0x58,0x1e,0x83,0x41,0xee,0xe2,0x07,0xae,0xee,0xa4,0x13,0xda,0xd1,0xda, + 0x18,0x27,0x8f,0xc7,0xfe,0x4c,0xb8,0xce,0x19,0x30,0x46,0x67,0x7d,0x62,0x38,0x7e, + 0xf4,0x7b,0x10,0xb1,0xb3,0x0c,0xde,0x7e,0x24,0x81,0x78,0xd6,0x88,0xed,0x5c,0x8c, + 0x9a,0x8b,0x7b,0xdf,0x9f,0xc9,0x5b,0x9d,0xd4,0xeb,0x95,0x65,0x88,0xe9,0x89,0xd1, + 0xd0,0x5a,0xa5,0x50,0x37,0x4c,0xc8,0x17,0x48,0x12,0x18,0xef,0x0f,0x5e,0xa6,0x7a, + 0x6f,0xd0,0x3d,0x47,0xce,0x97,0xb7,0x73,0xb6,0x89,0x96,0x8a,0x50,0xea,0x78,0x92, + 0x61,0x5a,0x96,0x72,0x86,0x13,0x82,0xfa,0xe9,0x6a,0x34,0x15,0x27,0x6e,0x79,0xe5, + 0xf1,0x21,0xd3,0xb0,0x76,0x85,0x2b,0x63,0xcd,0x45,0x6c,0x33,0x0d,0x4d,0xbf,0x56, + 0xae,0x73,0xf1,0x2e,0x4f,0x8c,0xc4,0xd6,0xa5,0x6f,0x6e,0x72,0xdb,0xf9,0x4c,0x63, + 0xe3,0xa7,0x94,0xab,0x80,0xe9,0xcf,0xa0,0x35,0x20,0xba,0xf8,0x74,0x93,0x51,0xf9, + 0xd4,0xe5,0xdd,0x76,0x9c,0xd1,0x6a,0x7f,0x90,0x11,0x31,0x34,0x07,0x05,0xf0,0xfd, + 0x02,0x79,0x0e,0x60,0xf3,0xcd,0x05,0xa4,0xe5,0x21,0x37,0x76,0xb7,0xc7,0x63,0x54, + 0x92,0x17,0x03,0x70,0xe9,0xf6,0xce,0x01,0xcd,0x0c,0xe8,0x1f,0x64,0xff,0x5f,0x01, + 0x1b,0x2c,0x58,0x6b,0x24,0x79,0x08,0xf8,0x7c,0x9a,0x01,0x8e,0xda,0x96,0x94,0xd9, + 0x70,0x57,0xc1,0x94,0xff,0xf2,0xfe,0xa0,0x04,0x72,0x76,0xa6,0x30,0x1c,0xaa,0xdb, + 0x81,0x22,0x08,0x3a,0xb6,0xf4,0x84,0x22,0x75,0xc7,0x7c,0xaa,0x81,0x2c,0x9b,0x8c, + 0xfc,0x7c,0x28,0x01,0x10,0xdc,0x2b,0xa7,0x2c,0x2d,0xd4,0x66,0x0f,0x60,0x68,0x8d, + 0x5b,0x88,0x68,0xf2,0xfd,0xd5,0x9d,0x6f,0x0d,0x41,0xa8,0xe6,0xd3,0x41,0x3a,0x66, + 0xae,0xf3,0x71,0x17,0x40,0x4f,0x87,0x57,0xbd,0x3e,0x67,0xc5,0xca,0x71,0x40,0xe5, + 0x22,0x51,0x80,0x33,0x2f,0x37,0x6f,0x4f,0x48,0x7e,0xf1,0xeb,0x20,0x33,0xed,0x36, + 0x1c,0x5c,0xbb,0x28,0xbc,0x7c,0x53,0x4c,0x66,0x99,0x97,0x4f,0xda,0xdb,0x25,0xb5, + 0x0f,0x68,0x62,0x9b,0x19,0xd4,0xf6,0x54,0xc0,0xc9,0x75,0x93,0xce,0x1a,0x05,0x61, + 0xb9,0x9b,0xc3,0xb4,0xce,0x4b,0xf2,0x9b,0x2a,0x59,0x44,0x3e,0x54,0x42,0x4b,0x43, + 0xfd,0x34,0xc8,0x7c,0x78,0xa5,0xc7,0xf5,0xde,0x6b,0x51,0xe4,0xbb,0x2b,0x75,0xc9, + 0x72,0x32,0xaa,0xd4,0x15,0xd0,0x85,0x3c,0x2c,0x67,0x68,0xf5,0xc9,0x48,0x7e,0xea, + 0xac,0x9a,0xa9,0xd3,0x12,0x21,0x4f,0xe1,0xfd,0x5a,0x5d,0xc6,0xe7,0x52,0x34,0x8c, + 0x77,0x3e,0x79,0xea,0x15,0xd8,0x26,0x91,0xfa,0x31,0xf9,0x7d,0xa2,0x0e,0xa2,0xe4, + 0x3a,0xae,0x68,0xab,0xc8,0x95,0xef,0x42,0xb2,0x82,0x2f,0x26,0xe3,0x25,0x18,0x76, + 0x97,0xb0,0x9f,0x46,0x71,0x34,0x5b,0xf2,0x62,0xcb,0xe8,0xf4,0xf8,0x85,0x30,0x18, + 0x95,0x19,0x83,0xba,0xc7,0xb3,0xc1,0x02,0x7b,0xc3,0x7a,0xfe,0x56,0xd4,0x48,0x01, + 0x64,0x10,0xb3,0x80,0x92,0xb9,0xaa,0x8c,0x22,0xe2,0xa8,0x21,0x96,0xf4,0xca,0x67, + 0x9e,0x21,0xf5,0x3b,0x52,0x9b,0xe8,0xac,0xc3,0x6f,0x81,0xf9,0x30,0x19,0x97,0x57, + 0x17,0xb2,0xdf,0x35,0xb9,0x27,0xf3,0xae,0xf1,0xf0,0xce,0xe4,0xe3,0x97,0x35,0x6d, + 0xbc,0x97,0xed,0xcf,0xcc,0x94,0x6a,0x4c,0x43,0x79,0x14,0x81,0x8b,0xd9,0x45,0xac, + 0x39,0x25,0x8e,0x39,0x8f,0xb2,0x9b,0x31,0x2d,0xde,0x78,0x5c,0x33,0x14,0x97,0x6a, + 0x61,0x11,0x75,0x85,0x6c,0xd5,0x14,0xc3,0x09,0x9a,0xfe,0xd4,0x69,0xc7,0x77,0xac, + 0x4c,0x65,0x55,0xab,0x47,0xaa,0x80,0x4b,0x6b,0xad,0x02,0x0f,0x16,0x58,0xee,0xf7, + 0x96,0x27,0xfd,0x79,0xb7,0xd4,0x89,0x48,0xcc,0xf3,0x86,0xda,0xb0,0x43,0x05,0x3e, + 0xb3,0xdd,0x18,0x44,0xe4,0x0c,0x7b,0xbd,0xf7,0xb6,0x32,0x4f,0xd0,0x9d,0xae,0xca, + 0xc6,0xfe,0x97,0x6f,0x72,0x4d,0xe0,0xde,0xfb,0x3c,0xff,0x64,0xea,0x16,0x89,0x04, + 0x3b,0xab,0x01,0x13,0xc6,0xf0,0xcc,0x2d,0xc8,0x45,0xcf,0x27,0xb3,0xfb,0xe5,0x4a, + 0x88,0xc4,0x68,0xed,0x67,0x3c,0xcc,0x55,0xc4,0x9a,0x7c,0x3c,0xce,0x2d,0x19,0xad, + 0x99,0x48,0x1e,0x08,0x81,0x17,0x57,0x73,0x92,0xdc,0x95,0x20,0xd0,0xc3,0x77,0x47, + 0xe8,0xce,0x20,0x56,0x30,0x49,0xf3,0xe7,0xb3,0xda,0x4b,0xfa,0x2d,0xcd,0x8f,0x41, + 0xbd,0xae,0xfa,0x13,0xea,0x11,0xea,0x5e,0x3a,0x3c,0xde,0x38,0x2e,0x96,0xe8,0xbf, + 0xbd,0xfc,0x6f,0xb3,0x42,0x97,0xfb,0xe6,0xd8,0x21,0x20,0x14,0x2c,0x70,0x72,0x64, + 0x9c,0x31,0x49,0x68,0x4e,0x09,0x4e,0xfa,0x17,0x10,0x54,0xe4,0x60,0xac,0x99,0x60, + 0xdb,0x46,0xd2,0xf4,0xf3,0x52,0x7c,0xbc,0x2d,0xaf,0xc6,0x33,0x8c,0x1c,0x26,0x4a, + 0x11,0x41,0x38,0x71,0xaf,0x34,0xaf,0xd4,0x36,0x27,0xe2,0x4f,0x8d,0x30,0xa0,0x12, + 0x4b,0x8c,0x6f,0x73,0x07,0x77,0x49,0x6e,0xa6,0x81,0x47,0x5e,0xeb,0xf9,0xab,0x6e, + 0xf9,0x5d,0xcc,0x12,0xb4,0x80,0xb6,0x0c,0x06,0x63,0x20,0x5f,0x02,0xf9,0x02,0x92, + 0x73,0x15,0x71,0x10,0x6d,0xd7,0xd9,0x75,0x20,0x4a,0x75,0x90,0x5c,0x65,0x27,0x15, + 0x24,0xfe,0x7e,0xf0,0xa3,0x61,0xf2,0x57,0x13,0x09,0xfc,0x16,0xa1,0xc0,0xfb,0x25, + 0x44,0x9a,0xc3,0x5c,0xeb,0x84,0x5f,0xd2,0x31,0x79,0xe9,0xbc,0x16,0xe0,0x65,0x30, + 0xbf,0xea,0xe9,0x47,0x9a,0xd5,0xf4,0x23,0x5e,0xce,0x9d,0xaf,0xe6,0x02,0x13,0xe9, + 0x5f,0x69,0x71,0x6b,0x89,0x38,0xf3,0x21,0xe0,0x0f,0xdb,0x46,0x9a,0x9d,0x0e,0xf3, + 0x95,0x8f,0x71,0xaf,0xe4,0x2c,0xd7,0xd1,0x97,0xac,0x3c,0x59,0x9e,0x69,0x3a,0xbb, + 0x26,0xe4,0xba,0x12,0xd2,0xcb,0xae,0xc8,0xa0,0x7d,0x2f,0x58,0xe0,0x06,0x77,0x69, + 0xdf,0x22,0xf4,0xc1,0x8c,0x52,0xab,0xcc,0xcf,0x82,0xd7,0x5d,0xb1,0xf2,0x5a,0xbc, + 0xcf,0x6b,0x56,0x77,0x01,0xae,0x78,0x28,0x95,0xb6,0x9a,0xf8,0xb9,0xc2,0xad,0x71, + 0x0e,0x7e,0x00,0xbb,0xfd,0xfc,0xf3,0x1c,0x7d,0x5b,0xad,0x03,0xf0,0x8d,0x0d,0x03, + 0xe4,0x5b,0x17,0x23,0x54,0x9d,0xda,0x9d,0x75,0x4f,0x41,0xbd,0xf6,0x9a,0xab,0xf9, + 0xe7,0xd3,0xcf,0xa7,0x43,0xee,0x2e,0x78,0x0e,0xf8,0x85,0xf8,0x72,0x4a,0xfc,0x89, + 0x6e,0x68,0x49,0x07,0xde,0x38,0x99,0xb5,0x39,0x4f,0xbb,0x3d,0x61,0x68,0x1f,0xa3, + 0x80,0xdd,0xd5,0x04,0x73,0x48,0xd1,0x0c,0x6e,0xae,0x4d,0x47,0xe3,0x99,0x2e,0x2c, + 0x2a,0x0c,0xaf,0x78,0x6c,0x5e,0x05,0x49,0xf5,0xb7,0xed,0x9d,0x67,0xb7,0xf0,0x5f, + 0x17,0x40,0xf2,0x64,0xa4,0x43,0xe6,0x0f,0xab,0x72,0x4d,0x33,0xe4,0x01,0x30,0x11, + 0x5c,0x67,0x22,0x9d,0x65,0x86,0x76,0xeb,0x21,0x66,0xfe,0x61,0xb0,0x0d,0x8f,0x4b, + 0xd6,0x23,0xc9,0xb0,0xee,0x88,0x96,0x26,0xdb,0xcf,0x96,0xbb,0x3b,0x4b,0xb8,0xe6, + 0xbb,0xc2,0x1a,0x70,0x88,0xe9,0x17,0x0f,0x76,0x41,0x37,0xa4,0x8c,0xe8,0x4d,0xce, + 0x4b,0x92,0x90,0x3f,0xc2,0x50,0x21,0xc8,0x20,0x87,0xc6,0x22,0x9c,0xa9,0x2b,0x06, + 0x8b,0x66,0x7d,0x7b,0xa7,0x49,0xde,0x10,0xb5,0xa5,0xb0,0x72,0x84,0x52,0x84,0x8c, + 0xee,0x80,0x85,0x15,0x17,0x67,0xfd,0x19,0x05,0x35,0x0c,0x4c,0x2a,0xdc,0xe8,0x6b, + 0xcb,0x9c,0x9f,0x36,0xf8,0x50,0xb4,0x31,0x10,0x05,0x07,0xb5,0xd4,0x2f,0xfb,0x01, + 0x27,0x06,0x79,0xa2,0x35,0xa4,0xb4,0x5b,0xdd,0xf6,0xfa,0x18,0x74,0xc2,0x14,0x7a, + 0x84,0x18,0xca,0xfa,0xda,0x1d,0xf4,0xf3,0xa1,0x7c,0x96,0xb6,0x23,0x82,0x77,0x94, + 0x54,0xe3,0x1b,0xb0,0xb1,0x12,0x9a,0x27,0x6c,0x03,0x24,0x1b,0x8a,0xcc,0x45,0x20, + 0xdb,0x4c,0xf4,0xcb,0x89,0xf1,0xa1,0x4f,0x17,0x9f,0xa9,0x0f,0x9c,0x9d,0x0d,0x4e, + 0xbd,0xc6,0x1c,0x61,0xb6,0x1c,0x34,0x80,0x27,0xe3,0x0d,0x17,0xc0,0xb0,0x69,0xfe, + 0x8d,0x77,0x4f,0xd8,0x31,0x14,0x5c,0x19,0x0e,0xa1,0x51,0x23,0xc9,0xdb,0x98,0x8c, + 0x87,0x44,0xd6,0x1e,0xa5,0x04,0x94,0x52,0xa7,0x14,0x3c,0x8d,0x26,0x73,0x73,0x9c, + 0x97,0x65,0x5e,0x31,0xbc,0x5c,0x76,0x58,0xfa,0x9a,0x97,0x37,0x9c,0xee,0x72,0x15, + 0xed,0x76,0x45,0x1d,0x3c,0x6a,0x06,0x29,0x4d,0x49,0xda,0xb5,0x79,0x07,0xde,0xf0, + 0x31,0xb1,0xaf,0xc6,0x2a,0x4c,0xd8,0x43,0xcf,0x56,0xe2,0x19,0x75,0x31,0x3c,0xd9, + 0x11,0x26,0xbf,0x03,0x78,0xca,0x8c,0x7c,0xf6,0xe4,0xce,0x03,0x94,0x42,0x05,0xde, + 0xbc,0xac,0xcf,0x70,0x35,0x66,0xd5,0x45,0x4f,0xb2,0x10,0x2c,0x37,0x5c,0x9e,0x6e, + 0x0a,0x2d,0xe7,0x47,0xda,0x14,0xfe,0xe7,0xe6,0x68,0x5b,0x51,0xc5,0xe4,0x70,0xdd, + 0x21,0x71,0x1a,0xb2,0x00,0x57,0x00,0x3f,0x63,0x70,0x39,0x2b,0xc7,0x0b,0xac,0xbf, + 0x74,0xb4,0x81,0x7d,0x83,0x51,0x17,0x16,0x14,0xf8,0x36,0xc3,0x6a,0x0d,0x87,0xdf, + 0xb3,0x01,0xf0,0xc9,0xea,0x15,0x6b,0x60,0x02,0xcf,0xe7,0xa3,0xf7,0x48,0xe0,0xfc, + 0xbc,0xc0,0x07,0x39,0xcb,0xed,0x65,0xd1,0x95,0xd8,0x2e,0xa3,0xc1,0x9a,0xb1,0x44, + 0xac,0x57,0xe8,0x25,0x20,0x95,0x65,0x10,0x2d,0x83,0x13,0x0c,0x00,0xf4,0x2e,0xb3, + 0x7e,0x34,0xee,0x66,0x24,0xe7,0xf9,0x55,0xdf,0x32,0x7e,0x42,0xee,0x5f,0x28,0x41, + 0x57,0xb7,0xda,0xad,0x7a,0xa7,0x0d,0xee,0x81,0x74,0x75,0x62,0x66,0xcd,0xb2,0x7b, + 0x3f,0xed,0x07,0xf6,0x07,0x06,0xb7,0xce,0x51,0x12,0xc7,0x66,0xd0,0x99,0xb8,0xd4, + 0xe8,0x4e,0x60,0x9c,0x32,0xf5,0xbb,0xec,0x94,0xfa,0x39,0x94,0xee,0xc1,0xfa,0xcc, + 0x09,0x66,0x27,0x6d,0x29,0x89,0x9f,0x4b,0xea,0x2b,0x9c,0x97,0xd5,0xcc,0xb9,0xe6, + 0x35,0x3c,0x90,0x7b,0xf2,0x45,0x14,0x90,0x57,0xef,0x93,0x80,0x62,0x43,0x74,0xcd, + 0xc9,0x16,0xfb,0x79,0x95,0xe9,0x45,0x32,0xe7,0xaa,0x0d,0x3a,0xd7,0x42,0x36,0x73, + 0x83,0x5f,0xe3,0x2c,0x9d,0x61,0x9c,0x91,0x77,0x1f,0x47,0xd7,0xe1,0x64,0x1f,0x67, + 0xd4,0x33,0xde,0x1e,0xe4,0x7e,0x13,0x93,0xe0,0x1c,0x8d,0x7c,0xd3,0xfd,0x6c,0x26, + 0x4b,0xd4,0x21,0xe7,0x89,0x59,0x23,0x03,0x54,0x10,0x08,0xf7,0x84,0x78,0xe7,0xb4, + 0x10,0xc5,0x33,0xed,0xa2,0x22,0xf4,0x28,0xe7,0x9c,0x98,0x9f,0xa9,0x81,0xc8,0x58, + 0x86,0x8c,0x6d,0x8c,0x83,0x6d,0x6f,0xa0,0xf3,0xe9,0x15,0xe0,0xca,0x87,0x7a,0x27, + 0xd8,0x40,0xfb,0xd0,0xb4,0x72,0x11,0x05,0x8a,0xac,0x5c,0xe4,0xcd,0x83,0x74,0xb7, + 0xce,0x3f,0xb1,0x46,0xd6,0x9b,0x6e,0x9c,0x1c,0xe7,0x3c,0x3f,0xd1,0xee,0x9d,0xc1, + 0xbc,0xef,0x52,0x52,0x03,0xeb,0xa3,0xa9,0x2e,0x9c,0xa8,0xee,0x6c,0xcd,0xc1,0xa9, + 0x56,0xf3,0xe8,0xf8,0x02,0xc9,0x4b,0xe2,0xc7,0xf2,0x04,0xfb,0x49,0xc6,0x24,0x06, + 0x5f,0xbc,0x31,0xa7,0x5e,0xc7,0xf9,0x47,0x38,0xff,0x21,0xda,0x6e,0x06,0x74,0xbd, + 0x8e,0x5d,0xf0,0x43,0x65,0x49,0x0e,0x03,0x67,0xca,0x96,0xd8,0xa3,0x89,0x31,0xcd, + 0xae,0xd8,0x83,0x11,0x31,0xf1,0x82,0xcf,0x3f,0x0d,0x45,0x18,0xef,0xf2,0x45,0x9a, + 0xc5,0x31,0xb3,0x4b,0x5c,0xf3,0x3c,0x8c,0x53,0xb3,0x72,0xca,0x48,0x97,0x24,0x67, + 0x4e,0x3a,0x53,0xa9,0x19,0x0c,0xb2,0x79,0xd6,0x2c,0x57,0x19,0x72,0x20,0x3b,0x87, + 0x03,0x0e,0x48,0x62,0xb8,0xf9,0xb4,0x07,0xed,0x6b,0xe7,0xc9,0x82,0x2d,0xea,0x7a, + 0x83,0x49,0x0f,0x39,0xcc,0x77,0x53,0xba,0x51,0xf8,0x54,0x57,0x33,0x57,0x5d,0xbe, + 0x37,0x64,0x6e,0xb1,0x27,0x5b,0xd5,0x13,0x3a,0x75,0xe4,0xfd,0x0e,0x03,0xef,0x5d, + 0xe3,0x28,0x8d,0x18,0x9d,0xf3,0x52,0x3e,0x39,0xe0,0x66,0xeb,0x45,0x76,0x51,0x83, + 0x9e,0xc5,0x45,0xfc,0x31,0x9c,0x34,0xdf,0x39,0x2a,0x0d,0x6b,0x47,0x9c,0xcc,0x3c, + 0xa7,0xda,0x84,0xc9,0x2c,0xab,0x4c,0x5c,0xd1,0x68,0xdd,0x1b,0x9e,0x14,0xb3,0x49, + 0xce,0x77,0x13,0x6a,0x1c,0xe9,0xc1,0x19,0x16,0x92,0x2b,0xf3,0xdd,0x7a,0x25,0xe5, + 0xea,0xfb,0xc9,0xb5,0x10,0x8d,0xa5,0x5e,0x75,0xe6,0x79,0x55,0x66,0x9d,0x19,0x78, + 0x02,0xcf,0xec,0xdd,0x85,0x4c,0x63,0x8a,0xc0,0x9e,0x45,0x0f,0xa4,0xd9,0x04,0x5b, + 0xfe,0x05,0xcb,0xe8,0xfa,0x33,0x5d,0x4c,0x69,0x4e,0x47,0xe9,0x2f,0x14,0xa0,0x64, + 0xfb,0xd8,0x60,0xce,0xcd,0x14,0x99,0xe3,0x0b,0x3e,0x78,0x59,0xd5,0xe1,0x15,0x97, + 0x4d,0xcf,0x5b,0x45,0x54,0x41,0xd2,0x4e,0x7d,0x77,0xf7,0x99,0x99,0xdf,0x5d,0xb2, + 0x78,0xc6,0xd2,0xc9,0xaa,0xd8,0x3b,0xf8,0x9a,0x7f,0x27,0x9b,0xd8,0x64,0xda,0x16, + 0x9a,0xb9,0xf6,0xc7,0xad,0xf5,0x7c,0x4a,0xa4,0x1d,0xbe,0x0f,0x64,0xac,0x45,0x34, + 0x47,0x18,0x9f,0x34,0x19,0x14,0x02,0x71,0x19,0x5a,0xe4,0xbd,0xf1,0x89,0xcd,0xf9, + 0xa0,0x1d,0x95,0x38,0x30,0x79,0xb7,0x23,0x49,0xfb,0x4f,0xd6,0x5e,0xd2,0x75,0x8c, + 0x57,0x7f,0x0b,0xf2,0x04,0x0c,0xa5,0x99,0x91,0x6c,0x0e,0x5c,0x03,0xdc,0x43,0x9f, + 0x07,0x38,0x8e,0xa2,0x02,0xf3,0x52,0x2c,0x77,0x16,0x58,0xfc,0xd2,0xea,0x6d,0xbb, + 0x58,0x56,0x64,0xe3,0x11,0x2b,0x31,0xde,0xbe,0x79,0x8f,0xb3,0x1f,0xde,0x44,0xc8, + 0x69,0xb8,0x9a,0x81,0x7b,0x2d,0xc3,0x99,0x1a,0xe4,0x96,0xe4,0x6a,0x4c,0x3b,0x79, + 0xc9,0xae,0x09,0x0e,0x6d,0xa2,0x95,0xe2,0x01,0x80,0x5f,0xd5,0xe3,0xb8,0x38,0x05, + 0xaa,0x31,0xcd,0x2e,0xcb,0x90,0x34,0x8c,0xeb,0x62,0x22,0x82,0xc6,0x71,0xb0,0xf2, + 0x7a,0x65,0xce,0x5c,0x74,0xf3,0x48,0xba,0x0b,0x6c,0x24,0x99,0xc2,0x8a,0x60,0x33, + 0x66,0x48,0x0e,0xa4,0xdd,0xd7,0xde,0xd0,0x9a,0xe9,0x6a,0xa4,0x4b,0xcf,0x13,0x4c, + 0xa1,0x64,0x2c,0xc6,0x80,0x99,0x9b,0x8d,0x5a,0x56,0x34,0x6f,0xf2,0x1d,0xdc,0x66, + 0xb9,0xb2,0xa2,0xba,0x34,0x59,0x28,0x3d,0xa0,0xc5,0x2c,0x37,0x66,0x13,0x8c,0x8e, + 0x91,0x2f,0x14,0x4e,0x66,0x83,0xde,0x79,0xdf,0x9a,0x4d,0x0e,0x20,0x57,0xd1,0xe7, + 0x45,0x08,0x99,0xcf,0xab,0x72,0x65,0xe8,0x01,0xa7,0xdc,0x8f,0x54,0x16,0xf4,0x25, + 0x0b,0xaf,0x1c,0x07,0x22,0x85,0x66,0xb7,0x30,0xca,0x75,0x72,0x9e,0x74,0xaf,0xf8, + 0x5c,0xd4,0xc0,0x66,0xa6,0x4c,0x4a,0x84,0x00,0xe3,0x79,0xdb,0x06,0x96,0x9d,0x89, + 0x42,0x13,0x2b,0x24,0xcd,0x81,0x93,0x86,0x2a,0x20,0x35,0xc1,0x01,0xc3,0xba,0x78, + 0x44,0x1b,0x16,0xbd,0xeb,0x20,0x14,0xdf,0xa0,0x63,0x06,0xf2,0x91,0xa8,0xbe,0x99, + 0x75,0xc9,0x62,0x7d,0x09,0x91,0xea,0xd6,0xba,0x0f,0xd3,0xbe,0x79,0x51,0x8a,0xf4, + 0xa3,0x3c,0xb9,0xe9,0x28,0xa1,0x7e,0x7c,0xb7,0xf7,0xe1,0xa7,0x42,0x15,0x25,0xd1, + 0x7e,0xfa,0x23,0xdd,0x05,0x7b,0x49,0xbc,0xc3,0x27,0x3f,0xe0,0xa8,0x26,0xad,0x0d, + 0xaf,0x86,0xe4,0x86,0x7e,0xcd,0xd6,0x98,0xf3,0xce,0x7d,0x74,0xf3,0x95,0xe8,0x0e, + 0x57,0xa0,0x3b,0xeb,0x1a,0xb7,0xb0,0x9c,0xa9,0x3b,0x16,0x6b,0x43,0x3a,0x3b,0xa4, + 0xa5,0x3d,0xb4,0xbb,0x62,0x5d,0x38,0x19,0x1a,0x85,0x9e,0x66,0x67,0x4d,0x51,0x09, + 0x07,0x16,0x5a,0x06,0x4d,0x1d,0x00,0x0e,0x12,0xc8,0x8e,0x7d,0xde,0x35,0x37,0x9b, + 0x09,0xfa,0x3e,0xed,0xeb,0x08,0xfe,0x62,0x00,0x09,0xb2,0xe3,0x22,0x41,0x62,0x8e, + 0x64,0x5c,0x81,0xa3,0x7b,0x42,0xc7,0xc8,0xa6,0xb0,0x24,0xc0,0xb2,0x39,0xc0,0x4e, + 0x9c,0xb1,0x38,0xee,0x44,0x78,0x36,0xf8,0xb5,0x9b,0x45,0xb4,0x76,0x55,0x23,0x23, + 0x6c,0x18,0xf8,0xc3,0xfe,0x08,0xe6,0x96,0x7c,0x4c,0xf5,0xee,0xcc,0x40,0xbc,0x48, + 0x6d,0x13,0x22,0x88,0xbb,0x1f,0x73,0x38,0x38,0x81,0x9e,0x53,0xb7,0x8e,0x17,0xb9, + 0x0f,0x81,0x2b,0x64,0x3c,0x23,0x53,0x3d,0x76,0x25,0xc0,0x57,0x4e,0xf0,0x91,0x81, + 0x52,0xfc,0x95,0xf8,0xab,0x00,0xe6,0x97,0xe7,0x70,0xb4,0x5c,0xe5,0x1a,0xd2,0x0b, + 0x43,0x71,0x55,0x19,0x87,0xc2,0x21,0x25,0x33,0xe4,0x7f,0x3a,0xc5,0x8b,0xa1,0xaa, + 0xb6,0xad,0x71,0xa0,0x7d,0x73,0x8a,0x24,0x77,0xde,0x1d,0x21,0xc6,0xc6,0xb7,0x51, + 0x9e,0x21,0xd9,0x61,0xab,0x29,0xdb,0x3c,0xd1,0x66,0x4c,0x7a,0x6d,0x5f,0x59,0x11, + 0xf3,0xca,0x1f,0xd1,0x03,0xfa,0xdd,0x31,0xfb,0x3b,0x1b,0x34,0x48,0xff,0x3e,0x87, + 0xb3,0x93,0xc0,0xfa,0x6f,0x6b,0x4b,0x8e,0x05,0x46,0x23,0x74,0x19,0x99,0x9b,0x07, + 0x19,0x09,0xdb,0x3e,0x9d,0x25,0xf2,0xaa,0xa1,0x1d,0xb0,0x3b,0x55,0x76,0x06,0xc1, + 0x4a,0xfc,0x0d,0xf6,0x1c,0xae,0x35,0x2c,0x79,0x79,0x76,0x3f,0xea,0xc5,0xb1,0xdb, + 0xb4,0x88,0x54,0x96,0x7e,0xf4,0x86,0xd3,0xc7,0x90,0x22,0xc8,0x09,0xe8,0x07,0xd8, + 0x1a,0xcd,0x6e,0x61,0xe4,0x72,0x6b,0x07,0xe7,0xbf,0x11,0xab,0x22,0xfe,0x1e,0xf3, + 0xdf,0xd5,0x81,0x32,0xb5,0x2f,0xf9,0x03,0x37,0x96,0x72,0xe6,0x2b,0x49,0x9a,0x97, + 0x49,0x9a,0x33,0x49,0x73,0x90,0x34,0xaf,0x24,0x89,0xbf,0xc7,0xf3,0x2f,0x27,0x69, + 0x2e,0x24,0x39,0x46,0x2c,0x07,0xaf,0xdf,0x1d,0xb2,0x18,0x92,0x8b,0x1b,0x89,0x79, + 0xd0,0x95,0x81,0x59,0x64,0x20,0xf9,0xf4,0x2a,0x83,0xe6,0x37,0x5f,0xf3,0x5e,0x60, + 0x63,0xc8,0x3b,0x5e,0xd9,0x19,0xf1,0xcc,0x2b,0xdf,0xe8,0x8d,0xb5,0x0a,0x4f,0x9f, + 0xee,0x3e,0x6d,0x07,0x4d,0x5a,0xce,0x67,0x01,0x02,0xf2,0x06,0xee,0xd1,0x08,0x92, + 0x67,0xa2,0xfa,0xd5,0x47,0xfe,0x60,0xed,0xd9,0xf5,0x91,0x3f,0xcc,0x81,0x9f,0xa4, + 0x00,0xff,0x06,0x51,0xbe,0x72,0x08,0x4e,0xb0,0x16,0x80,0x16,0x20,0x5f,0x89,0xc7, + 0x02,0x4d,0xbb,0x87,0x82,0x72,0x7e,0x65,0x81,0x01,0x55,0x32,0x64,0x58,0xbf,0x01, + 0x33,0xbc,0x05,0x6d,0x41,0xee,0xb6,0x16,0xc6,0xbe,0x06,0x0f,0x64,0x4b,0x20,0xf4, + 0x61,0xea,0x81,0x3a,0x98,0x27,0xb3,0xff,0xfc,0xe3,0x30,0xc8,0x5f,0xe9,0xa8,0xc1, + 0xcc,0x8d,0x59,0xf0,0xb2,0xb7,0xf3,0xf4,0xe9,0xf6,0x0f,0xf8,0x46,0xe1,0x23,0x61, + 0x77,0x3e,0xbe,0x94,0x95,0x98,0x41,0x91,0x4f,0xfa,0xa1,0xcc,0x9d,0x84,0x1d,0x53, + 0xa2,0x2e,0xd0,0x5b,0x14,0x02,0x25,0xe1,0x83,0xe3,0x24,0xe0,0x53,0xb0,0xfd,0x83, + 0xbf,0x62,0x3d,0xc5,0x1b,0xa8,0x6c,0x0b,0xf2,0xf0,0xa9,0x7b,0x80,0x71,0xf8,0xdf, + 0xef,0x5f,0x1e,0xa4,0x21,0xe9,0x82,0x51,0xd7,0x29,0xf6,0x3d,0xfd,0x64,0x7e,0x3b, + 0xff,0x44,0x06,0x7b,0x28,0x22,0x31,0xcb,0xeb,0xe4,0x7c,0x36,0xfd,0x84,0x64,0xfe, + 0xa5,0x3e,0x97,0x74,0x51,0xc4,0x27,0xca,0x45,0x9b,0x29,0x48,0x06,0x04,0x8a,0x4d, + 0x8c,0x72,0xa3,0x0b,0x70,0xec,0x46,0xe6,0xd0,0x42,0x27,0x98,0xd6,0x3e,0x19,0x6e, + 0x85,0xd6,0x10,0x2f,0x4a,0xdf,0x7f,0xf7,0xe6,0xfd,0xde,0xdb,0x57,0xef,0xde,0xaa, + 0xad,0x93,0x7b,0x2a,0xa3,0xc7,0xce,0x2b,0x8e,0x62,0xaa,0xad,0x3f,0x2e,0xcc,0x01, + 0xe8,0xc3,0x0d,0x38,0xfe,0x55,0x6b,0x0d,0xdf,0x86,0x84,0x9f,0x4a,0x78,0xe1,0x88, + 0x68,0xaa,0x07,0x02,0x46,0x58,0x65,0x41,0x26,0x77,0xe7,0xb8,0xaf,0xf1,0xf6,0xe6, + 0x4c,0xac,0xbb,0xe4,0xb0,0x0c,0xc3,0x8d,0x09,0x20,0x28,0x5b,0x33,0xc6,0xaa,0x4f, + 0xaa,0x6d,0x0b,0xf2,0x8f,0xf8,0x0c,0x0d,0x6a,0xc0,0xd0,0x9c,0x6f,0x30,0xe2,0x0c, + 0x7c,0x92,0x81,0xc5,0x5c,0x0e,0xd1,0x0a,0xe4,0x83,0x9d,0xfb,0x6c,0x42,0xfa,0xce, + 0x9c,0x84,0x3e,0x6f,0xee,0x2c,0x54,0xb6,0x09,0x87,0xa0,0xa1,0x1a,0x05,0xe6,0x4b, + 0x20,0x9f,0x38,0x27,0x68,0xa7,0xbd,0x80,0x0d,0xc6,0xe3,0x45,0x0e,0x45,0xd5,0xa7, + 0x23,0x99,0x6f,0x0d,0xa6,0x74,0x26,0x62,0x10,0xa1,0xe3,0xaa,0xce,0xa9,0x20,0x16, + 0xf4,0x70,0x7f,0x45,0x07,0xe6,0x5f,0xb6,0x48,0x18,0xdc,0xe6,0x63,0xd9,0x3d,0x33, + 0x57,0xd4,0x92,0x19,0x1c,0x62,0x10,0xc6,0x8f,0x27,0x3d,0x69,0xa5,0xe7,0x96,0x68, + 0x99,0x13,0x33,0xa8,0x78,0x88,0x40,0x8f,0x29,0x05,0xf4,0x85,0x6e,0xa3,0x15,0x97, + 0x82,0xd8,0x77,0xe7,0xda,0x92,0x38,0x0f,0x2f,0x18,0x75,0x0d,0x6d,0x8a,0xd1,0xfd, + 0x35,0x06,0x68,0x25,0x06,0x55,0xda,0x0c,0xc6,0xcc,0xce,0x09,0x36,0xf0,0xe3,0x32, + 0x2c,0xeb,0xbe,0xc5,0x98,0x1a,0x6e,0x65,0x46,0x1a,0x4a,0xb7,0x74,0xba,0x2e,0xfd, + 0x66,0xc4,0x64,0x7c,0xb8,0xc2,0x5c,0x26,0xfa,0x6b,0x9d,0x21,0x27,0xe3,0x35,0x54, + 0xf0,0x10,0x66,0xc3,0x2d,0xfc,0xae,0x82,0x0b,0x04,0x2e,0x50,0x40,0x6d,0x34,0x26, + 0xaf,0x7b,0x63,0xb1,0x44,0x56,0xc6,0x99,0xf6,0x21,0x79,0x37,0x78,0xe4,0x2d,0xe7, + 0x59,0x4b,0xb7,0x40,0xcf,0xa9,0xc9,0xeb,0x93,0x19,0x7b,0x0e,0x78,0x11,0x3c,0x27, + 0xc5,0xec,0x8b,0xd0,0x3a,0x84,0x2b,0xd8,0x6c,0xf1,0x57,0xb3,0x37,0xa5,0x3d,0xd0, + 0x3f,0xb4,0x9b,0xd0,0xf1,0x1b,0xf4,0x97,0x6c,0x3c,0x08,0xf3,0x17,0xd9,0x3a,0x09, + 0x21,0x04,0x99,0xf7,0x11,0x31,0xa5,0x49,0x94,0x56,0xee,0x21,0x7d,0x38,0x76,0x3b, + 0xe7,0xc3,0x30,0xd1,0xa0,0x4d,0xc6,0x5b,0x58,0x6f,0xfa,0x96,0x95,0x3c,0x44,0x79, + 0xab,0xcb,0xa8,0x1d,0x63,0x4a,0x7e,0x1e,0x8c,0x8d,0x63,0x7a,0x3d,0x66,0x59,0x67, + 0xa3,0x37,0xc8,0xd8,0x51,0xaa,0x7d,0x84,0x0f,0xfb,0x01,0x3d,0xb9,0xa7,0x3d,0x97, + 0x0a,0x0d,0x31,0x63,0x08,0xa2,0x9f,0x69,0x0c,0xeb,0xe1,0x73,0xcb,0xcc,0x9d,0xdf, + 0x37,0xbf,0x6f,0xc6,0xd6,0x51,0xbe,0xa0,0xc1,0x63,0x25,0x16,0x3d,0x89,0x15,0x55, + 0x2a,0x8f,0x82,0x89,0x1c,0x91,0x9f,0x88,0xb2,0x14,0x7c,0x39,0xdc,0x7f,0x5f,0xf0, + 0x16,0x53,0xb2,0xd8,0xa4,0x7e,0xbd,0xbd,0xea,0x97,0x9a,0x8c,0x96,0xab,0x1d,0xaf, + 0x35,0x4f,0xea,0xf9,0x8a,0xd6,0x7b,0x8d,0x93,0x34,0xd3,0xc3,0x6d,0x94,0xd6,0x67, + 0x53,0x63,0x49,0x5b,0x96,0x51,0xe2,0x64,0xd6,0x55,0xd3,0x49,0xe3,0x24,0xc7,0xab, + 0x5d,0x95,0xb9,0x65,0x29,0xa7,0x7b,0xba,0x9b,0x88,0x12,0xe0,0x6e,0x05,0xaa,0x31, + 0x6d,0x48,0x87,0x3a,0x37,0xca,0xc1,0x33,0xc8,0xd5,0x99,0x4f,0xe7,0xdf,0x6a,0x04, + 0xe8,0x50,0xa2,0x23,0x95,0xea,0xb0,0x4d,0x0b,0xa7,0x20,0x0b,0x9e,0xeb,0xb2,0xf9, + 0xb7,0x72,0x7e,0x85,0x39,0xcb,0x57,0x9b,0xa3,0x6c,0x1c,0x57,0xad,0x41,0x74,0x07, + 0x8d,0xce,0x2e,0x41,0xf0,0x49,0x76,0xe1,0xa5,0x2e,0x55,0xa1,0x2d,0xa8,0x5c,0xd1, + 0xc3,0x83,0x61,0xd0,0x74,0x36,0xb8,0xee,0xce,0x59,0x11,0xa0,0xf3,0x64,0xa1,0xa1, + 0x1c,0x4f,0x96,0x9f,0x79,0x5e,0xf9,0xff,0x6c,0x44,0xfe,0xaf,0x65,0x23,0xe2,0x1a, + 0x5c,0x38,0x2b,0x2c,0x69,0x51,0x5d,0x67,0x8a,0x71,0xc7,0x6a,0xd3,0x92,0xa0,0xda, + 0xfe,0x62,0xbd,0xc9,0x49,0xb0,0xde,0xe4,0xe4,0x0b,0x4d,0x37,0x82,0x7f,0xdd,0x74, + 0x23,0xf8,0x0a,0xd3,0x0d,0x41,0xb0,0xc6,0x4e,0xe0,0xab,0x2d,0x38,0xb8,0xfa,0xf7, + 0x19,0x70,0x7c,0x8d,0x86,0xeb,0x6b,0xd4,0x59,0xae,0xe1,0xc8,0xbe,0x5a,0x28,0xa2, + 0x2c,0x57,0xe8,0x7f,0xfd,0xd9,0x9f,0x7f,0xae,0x58,0xb2,0xf1,0x8e,0xe4,0x41,0x65, + 0x2d,0xeb,0x3b,0xfc,0x03,0x0a,0x1d,0x3f,0xf0,0x24,0x23,0x67,0x59,0x3a,0x3e,0xf3, + 0x24,0xb2,0x30,0x10,0x03,0x24,0xd1,0xb8,0xf2,0x6c,0x2d,0xfb,0x6d,0x83,0xb2,0xb9, + 0xfc,0x01,0x47,0xeb,0xdf,0x37,0x97,0x3b,0xdf,0xc9,0xa2,0xab,0xb0,0x49,0x95,0x61, + 0xa2,0x46,0xac,0xce,0x69,0xb6,0x63,0x69,0xeb,0x40,0xb9,0xd6,0xa9,0x5c,0x8a,0x14, + 0xf9,0x65,0x86,0xb7,0x4a,0x8e,0x67,0x6b,0xeb,0x99,0xd5,0xfa,0x2d,0xb3,0xde,0x9e, + 0x80,0xe1,0xd9,0xa4,0x00,0xe0,0xc1,0x4a,0x63,0x93,0x87,0x1f,0xef,0x07,0xeb,0x8f, + 0xf7,0xef,0x3f,0xe5,0x56,0xae,0x81,0x11,0x72,0x52,0x0f,0xe9,0xb3,0xde,0x2e,0xc0, + 0xed,0x66,0x62,0x0f,0xb0,0x64,0x7b,0xf3,0x7f,0xe7,0xe9,0xb8,0x77,0x82,0x1d,0x44, + 0x78,0xac,0x93,0xda,0x65,0x3a,0xad,0xee,0xb1,0xae,0x96,0x15,0x24,0xbd,0xca,0x74, + 0xde,0x8c,0x0a,0x4f,0x59,0x34,0x61,0x4f,0xf8,0x8a,0x20,0xfb,0x53,0x79,0x0d,0xe4, + 0xe2,0x4f,0x85,0x63,0x2a,0xe7,0x39,0xc2,0x3b,0x07,0x17,0x82,0x77,0x65,0x7a,0x6b, + 0xb3,0x84,0x3a,0x36,0xa8,0xd5,0xcc,0xb3,0xca,0x7f,0xc8,0x86,0xc0,0x14,0x3e,0x1d, + 0xe0,0xcf,0x39,0x82,0x3b,0x91,0x11,0x3d,0xd2,0x71,0xd3,0x32,0x3f,0xe1,0x5a,0xca, + 0xe8,0xfc,0x28,0x87,0xf3,0xea,0x02,0xe4,0xa8,0x79,0x1c,0x5b,0x7e,0xf5,0xc9,0x28, + 0x30,0xf5,0xd7,0x25,0xe2,0xba,0xc5,0x0b,0x2b,0xaa,0xd4,0xad,0x76,0x57,0x17,0x19, + 0x27,0x24,0x91,0x88,0x85,0xa5,0x9c,0xb8,0x2f,0xc5,0x73,0x09,0xfb,0x2c,0x31,0x9d, + 0x8b,0x7f,0xb2,0xa5,0xe8,0x33,0xe8,0x50,0x62,0xc9,0xc7,0x2a,0xcb,0xfc,0x5c,0x69, + 0x69,0xbc,0x9a,0x18,0x7f,0x26,0x38,0x0a,0x8c,0xcb,0xb5,0xd2,0xea,0x46,0x1f,0xe5, + 0x48,0x2f,0xee,0x30,0x1f,0xf0,0xae,0xe7,0x6c,0x71,0x27,0xfe,0xc6,0xa9,0xfd,0x06, + 0x2a,0x2d,0x3e,0xb7,0x2e,0x85,0x15,0xc2,0x58,0xfa,0x20,0xda,0x45,0x6a,0xaf,0x74, + 0xc1,0x8a,0xe0,0x56,0x7d,0x3b,0x99,0x9f,0x0c,0x5b,0xf0,0xe5,0x45,0xcb,0x24,0xf3, + 0x7b,0x4b,0xa9,0xbd,0x19,0xe4,0x40,0x2b,0x0c,0x93,0xec,0xea,0x9c,0x92,0xb1,0x87, + 0xa5,0x64,0x0a,0xfd,0xd2,0x32,0xd7,0x8c,0x69,0xbb,0x37,0x96,0x67,0x0c,0x39,0xf3, + 0x74,0xe7,0x76,0xb1,0x43,0x62,0x94,0x28,0x7f,0xcd,0x88,0x62,0xf7,0xa2,0x47,0xd2, + 0xc9,0x12,0xf5,0x69,0x93,0x14,0x2d,0x91,0x88,0xa3,0xab,0x63,0xb9,0x90,0xdf,0x12, + 0xed,0x6a,0xa1,0xbd,0x4e,0x53,0x45,0x95,0xf7,0x2d,0xfa,0x88,0x8a,0x98,0x96,0xd7, + 0x4e,0x9a,0x96,0xbb,0x62,0x7e,0x0b,0x33,0x52,0x90,0x4e,0x85,0xf6,0xac,0xa5,0x77, + 0x06,0xe3,0xa2,0xb7,0x68,0x27,0xaf,0xec,0x20,0x8c,0x17,0xed,0x9a,0xa5,0x97,0x47, + 0xbb,0xe4,0x4a,0x6b,0x11,0xd6,0xe8,0xa9,0x16,0xde,0x85,0x72,0x65,0x13,0x4d,0xb4, + 0x73,0x8c,0x4b,0xc0,0x3b,0xf1,0xdc,0xb4,0x90,0xd9,0x57,0x11,0x1c,0x84,0xd3,0xe5, + 0xd1,0xf6,0xf1,0x71,0x6c,0xc3,0x6d,0x17,0x70,0x99,0xc2,0xd5,0xc2,0x20,0x64,0xd8, + 0x1a,0x15,0x46,0x19,0xee,0x2a,0xbc,0x83,0x81,0x1e,0xa7,0x0c,0xf7,0x72,0x3b,0xef, + 0x2c,0xe4,0xc2,0x7d,0xa5,0xff,0x30,0x42,0xeb,0x94,0xed,0xe6,0x0f,0x14,0x81,0xe4, + 0x60,0x3b,0x80,0xed,0xdd,0x76,0x50,0x72,0x1f,0x76,0x17,0x32,0x81,0xea,0xc8,0x68, + 0x0c,0x47,0x46,0x63,0xdb,0x91,0xd1,0x98,0x1d,0x19,0xe5,0xca,0x6e,0x9f,0xb1,0x67, + 0x66,0xe4,0x69,0x63,0x21,0x06,0x23,0x78,0x80,0xf6,0xcf,0xd5,0xb7,0x7a,0x01,0xdc, + 0xa9,0xae,0xf1,0x79,0x34,0xc6,0x15,0xfe,0xb0,0x46,0x19,0x12,0xf1,0x6d,0x44,0x49, + 0x01,0x92,0x98,0xd5,0x6e,0x15,0xbd,0x3c,0x04,0x59,0x9d,0x4f,0xae,0xc5,0x4b,0x8f, + 0x4b,0xe7,0x6d,0xed,0x98,0xda,0x2d,0x2d,0xbf,0xf0,0x00,0x75,0x46,0xc4,0x4b,0x78, + 0xb7,0x8f,0x30,0x18,0xa5,0xcb,0x8c,0x52,0x3c,0x37,0xd8,0xff,0x1e,0x04,0x8c,0xe5, + 0xd8,0x28,0xfa,0x78,0x53,0xc3,0xe0,0x96,0x70,0xac,0x86,0x0f,0x23,0x10,0x40,0x95, + 0x97,0x73,0x80,0xb8,0x90,0x99,0x26,0xc5,0x75,0x77,0xe1,0xf8,0x9d,0xa7,0x49,0xf2, + 0x2e,0x26,0xe3,0x17,0x9c,0x37,0xa1,0xca,0xa2,0x4b,0x36,0x66,0x6c,0xdc,0x4c,0x82, + 0xdf,0x67,0x6e,0xc0,0x06,0x9e,0x0a,0x9a,0xe3,0x50,0x9d,0x77,0x21,0x63,0xe8,0x38, + 0x4d,0xae,0x02,0xa3,0x56,0x84,0xa9,0xd4,0xf1,0x04,0x63,0xa9,0xb3,0x76,0x8e,0xc2, + 0x6d,0xa0,0xdf,0xc1,0xbf,0x5d,0xfc,0x7b,0x82,0x7f,0x4f,0xf1,0xef,0x19,0xfe,0x7d, + 0x87,0x7f,0xdf,0xe3,0xdf,0x0f,0xf8,0xb7,0xdd,0xa4,0x3f,0x04,0xb9,0x4d,0xa0,0xdb, + 0xbb,0xe1,0x71,0xcb,0x94,0xa8,0xd2,0x5e,0xc7,0x68,0xd9,0xb1,0x3f,0x7d,0x15,0x9f, + 0x21,0xc6,0x7b,0x96,0xd0,0x98,0xc1,0xa3,0xbf,0xe9,0x51,0x78,0xc9,0xeb,0x2b,0xe9, + 0x34,0x8e,0x8b,0xc7,0x5c,0xeb,0xbe,0x0c,0x63,0x2e,0xd5,0xee,0xd7,0x7f,0xa2,0x8c, + 0x3f,0x9f,0xbb,0x07,0xc8,0x79,0x69,0x7f,0x52,0x69,0xe2,0xd1,0xc7,0x85,0x38,0xfa, + 0xd3,0xb8,0xe2,0x3a,0x31,0x5c,0x47,0x51,0x9b,0x9b,0x7a,0x38,0x74,0xc2,0xe2,0x5c, + 0x08,0x3a,0x39,0x7a,0x72,0xdc,0xc1,0x9f,0x4a,0x22,0x5c,0xde,0xbb,0x7d,0x0d,0xfe, + 0x9c,0x20,0x36,0xb3,0x84,0x34,0x7f,0x42,0x05,0x66,0x17,0xbe,0xa9,0x4f,0xea,0xa6, + 0x3a,0x5e,0xf2,0x43,0x84,0xee,0xfc,0xe5,0xb8,0x97,0x22,0x41,0x3d,0x09,0x4f,0x6b, + 0x78,0x93,0xb8,0xc6,0xbf,0x72,0x6c,0xbf,0x17,0xd6,0x77,0x93,0x52,0xcf,0x6f,0x59, + 0xf7,0x8a,0xc8,0x44,0xa7,0x33,0xd2,0xb2,0x4a,0x70,0x22,0xf2,0x91,0x7a,0xcd,0xd1, + 0x40,0xcd,0x89,0xd8,0x5b,0xf4,0xc3,0x14,0x24,0xb5,0x7b,0xae,0x57,0x02,0x3c,0xb7, + 0x37,0x08,0x3b,0x9d,0xe2,0x8f,0xe1,0x1f,0x04,0xcb,0x97,0xa8,0x87,0x7c,0xec,0x16, + 0x25,0x62,0x4a,0x28,0x8d,0x6f,0x30,0xe7,0xbe,0xd8,0x9e,0x60,0x17,0x8a,0x2f,0x72, + 0x41,0x99,0xf3,0x30,0x24,0x2b,0xd1,0xf9,0xd5,0xf4,0x6b,0xae,0x5b,0xec,0xd4,0xcd, + 0xab,0x89,0x76,0xe2,0x5e,0x99,0x8b,0xbf,0x60,0x4c,0xc5,0x0b,0x53,0xc9,0x9c,0xa9, + 0xe1,0x39,0xdf,0xfc,0x41,0xc5,0xf2,0x5c,0x6e,0x1e,0xd6,0x75,0x23,0x97,0xc3,0x69, + 0xc7,0xc1,0x7f,0x48,0x62,0xe3,0x60,0x4e,0x76,0xee,0x34,0xe3,0xf3,0x51,0x34,0x25, + 0xfd,0xd8,0x25,0x18,0xf4,0x60,0xcd,0x3a,0x18,0xb3,0x53,0x64,0x8c,0x58,0x27,0x50, + 0xb5,0x05,0xbb,0xd8,0x50,0xba,0x70,0xe7,0x86,0x4c,0x56,0x70,0x36,0xc1,0x07,0x38, + 0x61,0x0d,0xb3,0xf4,0x6c,0xfe,0x57,0x82,0x02,0x2f,0x5c,0x30,0x67,0xa9,0x27,0x81, + 0xbe,0xa3,0xfc,0x38,0xd9,0x24,0x6e,0x40,0x28,0x5d,0x77,0x3e,0xf6,0x6a,0x1f,0x1b, + 0xf9,0x1f,0xcb,0x9b,0xd6,0xd9,0x0d,0x43,0x75,0x28,0x2b,0x5f,0x48,0x93,0xdb,0x5d, + 0xac,0xb3,0xc2,0x15,0x31,0xeb,0xa2,0x99,0xe5,0x48,0x12,0x19,0x69,0xf9,0x4f,0xe2, + 0x81,0x2f,0x47,0x85,0x3e,0xfd,0x07,0xea,0x3e,0x89,0x8e,0xf4,0xb0,0x88,0x27,0xdb, + 0x71,0x3a,0x5b,0x98,0xd2,0xac,0x23,0x68,0xe5,0x12,0x99,0xf1,0x94,0xca,0xba,0x7c, + 0xd0,0xbf,0x11,0x7e,0x2c,0x6e,0xe1,0x3d,0x87,0xe1,0xf1,0x0b,0x71,0xdf,0xf4,0x51, + 0xb4,0x58,0x1f,0xc3,0x06,0x9e,0x9f,0xd7,0x03,0x2e,0x1b,0x1f,0x4d,0x03,0x66,0xf9, + 0xc9,0xc2,0xf9,0x15,0x94,0x15,0x3d,0xf6,0xd7,0x95,0x35,0xd8,0xe1,0x5b,0x99,0xb8, + 0x43,0xba,0xd3,0x4c,0x47,0x51,0x72,0x3b,0x2e,0xbb,0x1a,0x8d,0xa0,0x2f,0x94,0x53, + 0x42,0x73,0x00,0xc2,0x45,0x62,0xf1,0x03,0xac,0xbc,0x1a,0xa1,0xcb,0xbe,0x8c,0xcd, + 0x6d,0xc0,0x5f,0x81,0xa5,0x70,0xac,0x9f,0x71,0x6f,0x38,0x14,0x3d,0xf0,0xe6,0xa6, + 0xb7,0x8e,0x5e,0xc8,0xea,0xba,0x41,0xab,0xb0,0x18,0x0f,0x38,0x9c,0x88,0xe4,0x58, + 0xec,0xb8,0x08,0x46,0x29,0x7d,0xd6,0x6e,0x6f,0x1c,0x66,0x84,0x89,0x01,0xb4,0x93, + 0xc1,0x50,0x78,0x8d,0x21,0x25,0x73,0xb0,0x25,0x1b,0x53,0xe7,0x3f,0xd5,0x67,0x3b, + 0xda,0xe5,0x8f,0x63,0xf0,0x99,0x27,0x5a,0x92,0xab,0x2f,0x4a,0x59,0x02,0x36,0xfb, + 0x07,0x27,0x64,0x07,0x63,0xa0,0x33,0x85,0x7e,0xce,0x77,0x8b,0x35,0x97,0xb8,0x12, + 0xaa,0x82,0xb7,0xf6,0xe9,0x81,0xd9,0xc3,0x10,0xbc,0xd8,0x01,0x67,0x02,0xe7,0x69, + 0x9a,0x05,0xce,0x57,0x18,0x0b,0xea,0xa8,0xcc,0xd6,0x8e,0xe8,0xc8,0x03,0xff,0x3f, + 0xd6,0x92,0x07,0xe6,0xb3,0xa7,0xb0,0x05,0xb6,0xd6,0x86,0x1c,0x39,0x80,0x7d,0x6a, + 0xa7,0x28,0x59,0xcd,0xcd,0x0a,0x0e,0x9a,0x8d,0x95,0xfa,0xc7,0xb1,0xc1,0x02,0xc0, + 0xe2,0x98,0x55,0x00,0x4b,0xa7,0xac,0xc0,0x8b,0x81,0x67,0xfb,0xee,0xe6,0x5a,0xda, + 0x76,0xc4,0x45,0x35,0x7d,0x73,0xe2,0x8f,0xe0,0xa6,0x40,0x8b,0xae,0xb5,0xf8,0x6f, + 0xda,0x37,0x87,0x41,0x62,0x2b,0x60,0xed,0x7d,0xa9,0xd4,0x16,0x8f,0x78,0x19,0x27, + 0x55,0xdc,0x98,0x95,0xd5,0xbf,0x9e,0x48,0x09,0xd1,0xe7,0xb5,0xc3,0xd3,0x3e,0xfa, + 0x73,0x3e,0x20,0xa2,0xb0,0x56,0xec,0x07,0x44,0x80,0xd7,0xc2,0xe2,0x18,0xf7,0x72, + 0x4c,0x0e,0x34,0x1b,0x3c,0x84,0xdf,0xf3,0x80,0xcf,0x48,0x35,0x01,0x99,0x42,0x57, + 0x07,0x78,0x78,0x62,0xbb,0xc5,0x7e,0x22,0x8c,0x32,0x92,0x55,0x73,0xfd,0x06,0x9f, + 0x3f,0xd2,0xc9,0x12,0x6c,0xd2,0xfb,0x62,0xdf,0x2a,0x2e,0xf1,0x89,0xbc,0x2a,0x29, + 0xea,0x0d,0xc3,0x83,0xab,0x73,0x84,0xab,0xb0,0x36,0xc1,0x8f,0x34,0x1b,0x76,0x3f, + 0x8e,0x17,0x18,0x56,0x4b,0x0f,0xc6,0x99,0x7a,0x8c,0x71,0xc7,0x33,0xd2,0x80,0x0c, + 0x88,0xaa,0x10,0x78,0xa1,0xa8,0x5d,0x20,0x6f,0x76,0x68,0x20,0x19,0x5e,0x96,0xcd, + 0x63,0x7f,0x88,0x50,0x3b,0x6e,0x69,0xaf,0xc9,0x59,0x63,0x74,0xd1,0xfd,0x9c,0xfc, + 0xc3,0x09,0x50,0xf2,0x0f,0x59,0x26,0x6c,0x7d,0xcc,0x6a,0x5b,0xde,0x52,0x88,0x61, + 0x9c,0xb5,0x10,0xa4,0x8a,0x44,0x23,0x81,0xaf,0x4a,0xa0,0x53,0xf3,0xaa,0x3c,0x35, + 0x7e,0xde,0x74,0xa2,0x1e,0xdd,0x55,0x46,0x3d,0x12,0xaa,0xde,0xf0,0x5a,0x16,0x3b, + 0x5e,0xa1,0x29,0x4b,0xf1,0xcc,0x67,0x00,0x38,0xe5,0xc4,0x74,0x42,0x44,0xf1,0xcc, + 0x69,0x1c,0x57,0x0a,0xe2,0xc5,0x50,0xb6,0x9f,0xe8,0x2e,0xad,0xe6,0x9d,0xc4,0x82, + 0xe1,0x15,0xdd,0x5f,0x49,0x5e,0x18,0xac,0x99,0xc9,0x75,0x9d,0xe7,0x02,0x84,0x81, + 0x1c,0x4e,0xd2,0xcc,0x55,0x56,0x10,0xa2,0x14,0xf8,0x86,0xc4,0x24,0xe2,0xe2,0x86, + 0x76,0xbf,0x2a,0xa7,0xf1,0x42,0xec,0x3c,0xed,0x63,0xe1,0xe5,0x60,0x12,0xd3,0x1e, + 0x65,0xca,0x70,0x42,0x8a,0x90,0x66,0x0c,0xfc,0x66,0xff,0xd0,0x07,0x44,0xee,0x17, + 0x97,0x4b,0x13,0xe6,0x3e,0x7f,0xd2,0xdc,0xdc,0xd4,0x66,0x9a,0x27,0xc8,0x18,0xd3, + 0x77,0xcd,0xa6,0x7b,0x37,0xa0,0x92,0x3c,0x0e,0x37,0x90,0xac,0x7e,0x66,0x9f,0x35, + 0x63,0x66,0x4d,0xde,0x72,0xe0,0x90,0x0d,0xca,0x78,0x15,0xf8,0x89,0x00,0x83,0x8f, + 0x4e,0xe3,0xb8,0xbc,0xd4,0x1d,0x48,0xa6,0xfb,0x0f,0xc8,0x19,0x34,0x4f,0xf4,0xf1, + 0xa0,0x16,0xd3,0x6f,0xe3,0x5b,0xdd,0x81,0x3c,0x1a,0xc5,0xce,0x42,0x53,0xb7,0xbb, + 0xb2,0xa5,0xe1,0xbd,0x83,0x80,0x22,0x7d,0x6d,0xb3,0x42,0xde,0xf5,0xd2,0x4c,0xa9, + 0xcd,0xab,0x54,0x1f,0x61,0xdf,0x9b,0xf3,0x21,0x21,0x7b,0x9c,0x5e,0x4a,0x49,0xb2, + 0xa7,0xc7,0x1a,0x89,0xd3,0x1a,0x18,0x4a,0xf3,0x57,0xd2,0x18,0x61,0x22,0x1d,0x09, + 0x9f,0x29,0x18,0xd3,0x82,0x70,0xd7,0x0c,0xa0,0x16,0x80,0x6f,0x30,0x9d,0x6b,0x73, + 0xa2,0xf3,0xc9,0x7c,0xb8,0x93,0x1e,0x24,0x9f,0xdc,0x5e,0x84,0xa5,0x19,0x77,0x1e, + 0xaa,0x93,0xdf,0x6d,0xae,0xc5,0xb2,0xd0,0xcd,0xe4,0x75,0x15,0x20,0x91,0xad,0x26, + 0x93,0x77,0x9d,0xe4,0x2d,0xf1,0x16,0x46,0x05,0xcc,0x39,0xb8,0x4b,0x97,0x9d,0xa5, + 0xd3,0xac,0xc8,0xc8,0x9c,0xa3,0x6c,0xb9,0xcc,0x64,0x2a,0xe5,0xc5,0x6f,0x5f,0xc5, + 0x8a,0xb9,0x36,0x01,0xd1,0x4c,0xa0,0xb3,0xb3,0x94,0xbd,0xa2,0x2c,0xe3,0x78,0x2b, + 0x0a,0x20,0x57,0x46,0xe8,0x8e,0xd2,0xdf,0x34,0xe9,0x27,0x12,0x0c,0xbc,0xad,0x84, + 0xaa,0x82,0x0a,0x22,0xc9,0x38,0x18,0x43,0x1e,0xf8,0x50,0xec,0xa0,0x07,0x9c,0x10, + 0x2b,0xb1,0xdc,0x19,0x3d,0x27,0x63,0xe2,0x37,0xa9,0x6b,0xf2,0xb1,0x11,0x1a,0xad, + 0xea,0xbc,0xac,0x62,0x9d,0xc6,0xeb,0x13,0x55,0xf6,0xba,0x8e,0xec,0xe5,0x99,0x7a, + 0x6b,0x9a,0x3b,0x3c,0xee,0x84,0x98,0x34,0xae,0xc5,0x93,0x14,0x4f,0x88,0x57,0x63, + 0xa0,0xc2,0x2a,0x35,0x12,0x30,0xb3,0x3f,0x06,0xa0,0x2e,0x61,0x01,0xac,0xf7,0x4a, + 0x60,0x56,0x83,0x55,0x8b,0x59,0xd4,0xa2,0x08,0x8f,0xc5,0x66,0x03,0xed,0xb2,0x58, + 0x7c,0x86,0xe9,0xb6,0x59,0x7b,0x09,0x4a,0xb4,0xb6,0xd0,0x14,0x7f,0x0b,0x78,0x2d, + 0xab,0x34,0x5a,0x95,0x0b,0x55,0x96,0x15,0x58,0x67,0xfb,0x69,0x6b,0xcc,0x85,0x6b, + 0x5d,0xfd,0x59,0x2d,0xd2,0x31,0xae,0x82,0xd9,0x9d,0x10,0x79,0x2d,0x06,0x2c,0xf9, + 0x6c,0x33,0x6a,0x50,0xbf,0xb3,0x66,0x1c,0x71,0x46,0x3b,0xb9,0x4d,0xdd,0xc9,0x4a, + 0x84,0x02,0x83,0xab,0x33,0x4e,0x7b,0x06,0x74,0x1c,0x01,0x5f,0xb0,0x5b,0x5b,0x81, + 0xf6,0x85,0x2f,0xc7,0x87,0x53,0xc9,0x40,0xa1,0x00,0x48,0x0a,0xeb,0xf8,0x1d,0x51, + 0x9f,0x88,0x21,0x12,0xa0,0x2b,0x2d,0x7f,0x95,0x6f,0x88,0xf1,0x56,0x4b,0x9d,0x28, + 0x03,0xd9,0xb9,0xc4,0x03,0x1f,0x68,0xf0,0x38,0x04,0x1a,0x78,0x5c,0x33,0x39,0x3a, + 0xe1,0xf3,0x2b,0x44,0x1d,0xa0,0xf2,0x28,0xe6,0x00,0x9e,0x79,0x8c,0xc5,0x35,0x2a, + 0x43,0x22,0xa2,0x61,0x0d,0xd6,0xc7,0xd0,0x84,0x5b,0xb2,0x81,0xc4,0x9d,0xa3,0xd7, + 0xd8,0x04,0x2d,0x90,0xc8,0xdf,0x12,0xaa,0xc0,0x8c,0x5c,0x70,0xc9,0x8e,0x14,0xd7, + 0xc6,0xfb,0x4a,0x8f,0x75,0xf4,0xd1,0xda,0x8d,0x36,0xcb,0x8d,0xf7,0x1e,0x8b,0x0c, + 0x76,0x83,0xf8,0x8d,0xcd,0xf7,0xa0,0x81,0x6a,0x55,0xc6,0x3c,0x51,0x16,0x42,0xe9, + 0x39,0x40,0x57,0x91,0x16,0xd4,0xb0,0x25,0x5e,0x70,0xa4,0xc9,0xd8,0xb4,0x21,0x29, + 0xd5,0x00,0x64,0x48,0xc1,0xe5,0xe7,0x09,0x82,0x42,0xde,0xc4,0x5e,0x4a,0xb4,0x60, + 0xfb,0x90,0x16,0x46,0x5e,0x97,0x96,0x81,0x21,0x2b,0xc1,0x62,0x6f,0xf2,0xa7,0x2a, + 0xf6,0xe4,0x1c,0x40,0x3a,0x95,0x3b,0xb5,0x49,0x5f,0x43,0xe7,0x92,0x5f,0x74,0xf8, + 0xa8,0x07,0xcf,0x76,0xcd,0x96,0x0b,0x5f,0xdf,0x8e,0x5b,0x91,0xc0,0xd4,0x7a,0xb5, + 0x12,0xb2,0xff,0x70,0xdf,0x09,0xab,0xf0,0xcc,0xa3,0x69,0x8f,0x7d,0x08,0x47,0x39, + 0x83,0xfa,0xa9,0x64,0x85,0x84,0xe1,0x18,0xcb,0x7d,0x27,0xc6,0x32,0x22,0x30,0xa5, + 0xf6,0x18,0x01,0x3a,0x24,0x99,0x81,0xc2,0x8b,0x83,0x36,0xbd,0xea,0x42,0x92,0x70, + 0x41,0x63,0xce,0x23,0x25,0x1f,0x73,0xed,0xdc,0xa8,0x1a,0xd7,0x56,0x8c,0x24,0x80, + 0x31,0xa9,0xda,0x8e,0xb1,0xcf,0xd6,0x79,0xf7,0x92,0x97,0xc7,0x01,0x8c,0x6f,0x58, + 0x6b,0xc2,0x6e,0xc4,0xb0,0xa4,0xa7,0x53,0x69,0x2e,0x2b,0xd3,0x5a,0xa8,0x26,0x1d, + 0xaa,0xad,0xa8,0x9a,0xb5,0x0b,0x2d,0x7a,0x25,0xdf,0x59,0x48,0x09,0x3b,0x79,0xa6, + 0x54,0xce,0xe4,0xa9,0xee,0x90,0xa5,0xc8,0x91,0x15,0xb2,0xa2,0x62,0x21,0x97,0x0c, + 0x4f,0xa7,0xca,0xd3,0x26,0xa9,0xd3,0x54,0x9e,0xac,0x5e,0x68,0x8d,0xd1,0xe5,0x8d, + 0x6a,0x67,0xfc,0x1c,0xf9,0x85,0x56,0x84,0xca,0x7a,0x4e,0x3c,0xd6,0x57,0xfa,0x44, + 0x97,0xb2,0xf6,0xe6,0xd1,0x98,0xe6,0x52,0xfe,0xa8,0x09,0x31,0xf4,0xc7,0xed,0x0d, + 0x2a,0x1e,0xff,0x54,0x5c,0x58,0x31,0xbf,0x0a,0xcc,0x2f,0x50,0x1f,0xe5,0x56,0x45, + 0xbd,0x08,0x03,0x89,0x3d,0x57,0x76,0x15,0x3c,0x32,0xfe,0x05,0xed,0xb1,0x58,0x19, + 0xe8,0x7b,0x34,0xa1,0x69,0x04,0x3b,0x99,0x52,0xb0,0xef,0xfe,0x35,0x49,0x1d,0x82, + 0xfd,0xc9,0x9c,0xc2,0x46,0x31,0x48,0xf4,0xf1,0x3d,0x38,0x70,0xf8,0xac,0x2a,0x70, + 0x38,0x4b,0x07,0xee,0x02,0x33,0x7b,0xb4,0x49,0x15,0x6a,0x33,0x0d,0x6a,0x34,0x10, + 0x16,0x39,0x12,0x87,0x16,0x28,0xb4,0xd7,0x32,0x5d,0x8c,0x3b,0x36,0xe8,0x38,0xca, + 0x1f,0x74,0x58,0xd2,0xd9,0x04,0xc3,0xe9,0x97,0xa9,0x66,0x6d,0xdb,0x59,0x73,0xd6, + 0x63,0xed,0xaa,0x49,0x70,0x1d,0x7f,0x36,0x77,0x07,0x8e,0xa7,0x14,0x01,0x9c,0xca, + 0x91,0xea,0x21,0x29,0x63,0xc0,0x29,0xc6,0x0e,0xb5,0x2f,0xc8,0x9f,0x9b,0x6e,0xde, + 0xe0,0xb3,0xac,0x54,0x87,0x71,0x3b,0x2f,0xbb,0x84,0xe1,0x2e,0x27,0xaa,0x96,0xf6, + 0x4a,0x68,0xf2,0x1c,0x4d,0x3b,0xfd,0x45,0x19,0x01,0x95,0xa6,0xb5,0x2a,0xa4,0x86, + 0x92,0x70,0x27,0xfb,0x04,0xfd,0x52,0x62,0x32,0xc5,0x82,0x74,0xe6,0x50,0x19,0x2a, + 0x9a,0x41,0xa5,0x1d,0x9c,0xd2,0x2e,0x28,0x15,0x8d,0x79,0x90,0x5f,0x42,0xe6,0x70, + 0xce,0xd1,0x18,0xfd,0xff,0xce,0xdc,0x29,0x41,0x4b,0x52,0x18,0x07,0x87,0x75,0x5e, + 0x1f,0xd3,0x98,0x73,0xda,0xc7,0x9c,0x5a,0xc8,0x90,0x90,0xde,0xba,0x1e,0x11,0xac, + 0x04,0x66,0x0e,0x1e,0xeb,0xee,0x4c,0x51,0xad,0x04,0x97,0x7e,0x1e,0x84,0x8e,0x65, + 0x6c,0x99,0xae,0x9f,0x07,0xf3,0x87,0x11,0x83,0x45,0x57,0xc5,0x38,0x34,0x47,0x05, + 0x34,0x76,0xf0,0xdd,0x1c,0xb6,0xd1,0xba,0x0a,0xc2,0x35,0xac,0x1c,0xa4,0xed,0x42, + 0xf2,0xaa,0x54,0xd0,0x5c,0x7b,0x14,0x70,0xf9,0xf7,0x29,0xc2,0x92,0x16,0xaf,0x3f, + 0x51,0x99,0x52,0x4e,0x2f,0x2d,0xa5,0x77,0xb6,0x5b,0xd4,0xdd,0xab,0xca,0x21,0xa4, + 0xb6,0x26,0x22,0x2e,0x26,0xd3,0x36,0x77,0x1a,0x67,0x60,0xb8,0xfe,0xc9,0x85,0x9c, + 0x97,0xa4,0x3d,0x42,0xd9,0x0f,0xc2,0xbf,0xb9,0xf9,0xc0,0xb9,0x80,0x33,0x9d,0x8c, + 0x06,0x84,0xa4,0xa2,0xcc,0x0c,0xe7,0x38,0x7d,0x14,0xea,0xd1,0x5f,0xbd,0x18,0xa4, + 0x05,0xb7,0xf4,0x7d,0xd1,0x71,0x48,0x3f,0x73,0x50,0x1b,0xdc,0xc3,0x9c,0xb1,0xaf, + 0x43,0x90,0x8b,0x4a,0x9d,0xce,0x67,0x43,0xb4,0xc4,0xca,0x86,0x12,0xa5,0x3b,0xfa, + 0xfc,0x03,0xfa,0x07,0x2b,0x95,0xab,0x7a,0xc7,0xe9,0x09,0x75,0x0f,0xa0,0x9b,0xb2, + 0x42,0xf4,0x27,0x3a,0xd4,0x5f,0x8a,0x46,0xc9,0x49,0x15,0x29,0x74,0xe2,0x2c,0x1f, + 0xe8,0x20,0x23,0x3d,0x3d,0x69,0x40,0x2e,0x13,0x4c,0x14,0x52,0x42,0x18,0x6b,0x5c, + 0xc8,0x47,0x5b,0x47,0x1f,0x67,0x1f,0xc7,0xc7,0xb2,0x35,0xa0,0xaf,0xb1,0x22,0xa8, + 0x6c,0x38,0xa6,0x89,0xee,0x76,0xf1,0x0a,0x67,0x96,0xf5,0x39,0x93,0x7c,0x60,0x8f, + 0x1f,0x69,0xc1,0x55,0x2e,0x83,0x13,0x1b,0xb8,0x32,0x36,0xe2,0x76,0x46,0x5e,0x95, + 0x4f,0xf4,0x42,0xe7,0x5d,0x0c,0x52,0x93,0xb7,0xb6,0xd3,0x2a,0x26,0xa0,0x88,0x9b, + 0xcb,0xd5,0xf1,0x61,0x7f,0x49,0x91,0xc9,0x72,0x95,0x5c,0xbd,0x6e,0xd6,0x34,0xcc, + 0x51,0x52,0x8c,0x93,0x27,0x74,0x55,0xec,0x35,0x42,0x67,0xe0,0x58,0x78,0x53,0x3a, + 0xe2,0x5e,0x58,0x65,0x0b,0x39,0xfe,0x34,0xec,0xca,0x44,0x6a,0x69,0xf1,0x0b,0x4e, + 0x39,0xaa,0xa6,0x32,0x65,0x93,0xb4,0x69,0xbe,0x8b,0xa7,0x24,0x55,0x8e,0xa1,0x19, + 0x96,0x1f,0x67,0xcb,0x8f,0xe3,0x2d,0x7f,0x45,0x6d,0xe9,0xaf,0x86,0x29,0x9e,0x85, + 0x9b,0xa6,0x09,0x87,0xcb,0xe5,0x30,0x5f,0x84,0x34,0xd9,0x2a,0xe6,0x2f,0x7a,0x10, + 0xed,0xe9,0x4c,0xb7,0xb6,0xcc,0xe5,0x23,0x36,0x2a,0x62,0xae,0xa0,0x79,0xb3,0x8d, + 0x61,0x3a,0xb4,0x96,0x52,0x88,0x52,0x78,0xf4,0xe2,0x9b,0xe3,0x65,0x7e,0xa7,0xe4, + 0x63,0xf6,0x2d,0xde,0xff,0x72,0x1c,0xab,0xb2,0x0c,0x78,0xc0,0xef,0x21,0x3b,0x6d, + 0x09,0xba,0x86,0xd7,0x3d,0x63,0xf9,0x77,0x3a,0x1b,0x4c,0xe7,0xbc,0xda,0x29,0x14, + 0x0d,0x43,0xd7,0xf8,0x03,0xe9,0xf6,0xcd,0xb2,0x0f,0xaf,0x0e,0x7e,0x23,0xf3,0xdc, + 0xad,0xbf,0xf3,0x15,0xa1,0x6f,0x50,0x04,0x3f,0x64,0x55,0xae,0xdb,0xbc,0x6b,0x43, + 0x8e,0x89,0xa7,0x73,0x85,0x08,0x08,0xd5,0x35,0x1d,0x70,0x9a,0x8d,0xbc,0xeb,0xe7, + 0x53,0x74,0xc8,0x92,0x4c,0x38,0x24,0xa3,0xe6,0x5a,0x05,0x10,0xe5,0x3e,0xe7,0x96, + 0xb9,0x8f,0xba,0x18,0xd0,0x9c,0x98,0x79,0x8e,0xec,0x00,0x5f,0xb8,0x24,0x04,0x58, + 0x4f,0x5c,0x12,0x66,0x85,0x4f,0xc2,0x7e,0x46,0x7e,0x69,0xf4,0x84,0xc3,0x71,0x49, + 0x98,0x09,0x0e,0xd7,0x3e,0x9a,0xf8,0x44,0x29,0x99,0x67,0x21,0xcd,0x9a,0xb3,0xc0, + 0x44,0x3e,0x8a,0xc8,0x46,0x6d,0x09,0x83,0x18,0x34,0x1e,0x32,0x48,0xdc,0x21,0x36, + 0xb0,0xe0,0xa1,0xe2,0x7a,0x97,0xef,0xc1,0x8d,0x8f,0x85,0xa2,0x14,0x35,0xc9,0xc1, + 0x30,0xf7,0x02,0x25,0x6c,0xd9,0x56,0x1b,0x4e,0x80,0x03,0x94,0x24,0xd1,0x4e,0x04, + 0x14,0xaa,0x7f,0x7c,0x34,0x8d,0xd7,0xcf,0x83,0x0a,0x8c,0xae,0x32,0x89,0xfd,0x67, + 0x91,0xc0,0x76,0x98,0x4e,0xc1,0xb3,0xb2,0xd9,0x2c,0x90,0x77,0x83,0x9b,0x19,0xb9, + 0xd3,0xe2,0x91,0x2b,0xdb,0x19,0xaa,0x9a,0xb6,0x82,0xfa,0xa6,0x28,0x30,0x93,0x59, + 0xad,0x57,0xa3,0x33,0x35,0xb2,0xfd,0x17,0xb0,0xe6,0x1a,0x1f,0x0f,0xab,0x7f,0xa1, + 0x47,0x68,0x80,0xb1,0xf2,0x47,0x9a,0xfb,0x39,0x87,0x0c,0xc0,0xac,0xb2,0x43,0xfb, + 0xf6,0x72,0x1f,0x06,0xd9,0x65,0xc6,0x32,0x47,0xa3,0xed,0xf7,0xc7,0x08,0x94,0xa0, + 0x4a,0x42,0xfa,0xe4,0x8b,0x92,0x53,0x40,0xe7,0xa3,0xce,0xfb,0xaa,0xd1,0x34,0x21, + 0xf8,0xcc,0x94,0x40,0x31,0x1b,0x1f,0x11,0xe6,0xa3,0x19,0xdb,0x9b,0x2c,0x8a,0x67, + 0x98,0xcf,0xe8,0x08,0xa7,0x04,0x99,0xea,0xfc,0x81,0xae,0x54,0x97,0x65,0xa5,0x88, + 0x43,0xf4,0x8c,0xd4,0x92,0xc4,0x2f,0xc4,0x67,0x3a,0x8b,0x37,0xfa,0x18,0xd3,0x47, + 0x86,0xd0,0x5d,0x95,0x80,0xe4,0x97,0x73,0x89,0x15,0xa9,0xcb,0x93,0x04,0x9a,0xb5, + 0xb4,0x24,0xdf,0xdb,0x2b,0x6c,0x0e,0x12,0xa8,0x3f,0xee,0xb3,0x18,0x00,0x88,0x65, + 0x33,0x10,0x72,0x66,0x84,0xcc,0x0c,0x45,0x89,0x7c,0x4f,0xf6,0x0b,0x3b,0xef,0x05, + 0x32,0x5d,0x38,0x06,0x07,0xa0,0xb5,0xc3,0x77,0xbb,0xb8,0xe9,0x65,0xb2,0xea,0x40, + 0xff,0x27,0x89,0xfd,0x8c,0xf4,0x6e,0x5c,0x1b,0xff,0xac,0x0a,0x5d,0x0b,0xbd,0xaa, + 0x3f,0xeb,0x08,0x99,0x8e,0xd1,0x42,0x1e,0xfa,0xff,0x26,0x3d,0x60,0x27,0x18,0xf6, + 0x94,0x17,0xcb,0xaf,0xc9,0x95,0xcd,0x3f,0x0f,0xfb,0xb4,0x84,0xcf,0x23,0x4f,0x46, + 0x61,0xbd,0x8e,0x15,0x6b,0x74,0x53,0xa3,0xa8,0x72,0x18,0x95,0xf1,0xca,0x3e,0x25, + 0xfa,0x9e,0xfb,0x0d,0x2f,0x7a,0x36,0x1f,0x86,0x63,0xe1,0xde,0x78,0x65,0xae,0x8c, + 0x0a,0x1d,0x3b,0xbc,0xe2,0x00,0xd5,0x58,0xc5,0x76,0x3f,0x47,0x37,0x75,0xa9,0xd4, + 0xa0,0xb6,0x9d,0x57,0x06,0x4f,0x1a,0x3b,0x07,0x3a,0x31,0xfe,0x04,0x6e,0x05,0x28, + 0xaa,0xe7,0x70,0x06,0x1b,0x73,0x37,0xa1,0x44,0xc3,0x21,0xca,0x24,0xfb,0x0e,0x0c, + 0x81,0x0a,0xbe,0xf6,0xa4,0xa7,0x4b,0x17,0xd5,0x03,0x9b,0xf5,0xd5,0x9f,0xdb,0xd5, + 0xbf,0x01,0x49,0x73,0xa7,0x6a,0xe1,0x3b,0x78,0xa7,0xb3,0x2e,0x5e,0x86,0x35,0xe9, + 0xe7,0xb5,0x50,0xce,0x1d,0x21,0x6f,0x73,0x7f,0xd1,0x3d,0x23,0xbf,0xfb,0x3c,0x87, + 0x71,0x28,0x18,0x16,0xdf,0xa4,0x8e,0x0f,0x7d,0x7a,0xe7,0xb9,0x66,0x98,0xc7,0x8a, + 0xf0,0x4a,0x77,0xef,0xeb,0xa9,0x9e,0x95,0xa9,0x9e,0xb9,0x54,0xff,0xb1,0xf7,0xe1, + 0xed,0xab,0xb7,0xbf,0xb4,0x38,0x56,0x09,0x88,0xe6,0x22,0xa4,0x0d,0xda,0x2c,0xe5, + 0x49,0x39,0x59,0x45,0xd5,0x4c,0xa8,0xf2,0xad,0x30,0x36,0x37,0x79,0x47,0x8d,0x89, + 0x4b,0xd6,0x8c,0x74,0x6f,0xdb,0x91,0x62,0x22,0x63,0x30,0x15,0x9b,0x49,0x66,0xa9, + 0x93,0xbd,0x5a,0xa1,0x9e,0x62,0x6f,0xa6,0xa1,0x09,0xd7,0xd7,0x71,0x5a,0xae,0xe3, + 0x74,0x45,0x1d,0xf9,0xce,0x9f,0x27,0xd3,0x4d,0x83,0xb5,0x78,0x05,0x5a,0x32,0xf9, + 0xa8,0xe7,0x6f,0xb0,0xfd,0x30,0x07,0xca,0x12,0xea,0x45,0xe6,0x5c,0x1c,0x48,0x5f, + 0x65,0x7c,0xd5,0x51,0x6c,0x47,0x98,0x01,0x72,0x39,0x4a,0x2e,0x6d,0x7c,0xc6,0x6b, + 0xbf,0x8a,0x81,0x53,0xbd,0xa3,0x7f,0x32,0x1f,0x67,0xf7,0xd4,0x91,0x40,0xec,0x6a, + 0xd2,0xbb,0x8c,0xc0,0xf3,0xc9,0xca,0xbc,0xe6,0xce,0x0e,0xb2,0x9f,0x4f,0xec,0xcc, + 0xe7,0x13,0x64,0x45,0x52,0x95,0x18,0x13,0xc1,0xb5,0x52,0x64,0x69,0xcc,0x92,0x07, + 0x94,0x3a,0x76,0x8b,0x08,0xf7,0xbb,0x38,0x67,0x1f,0xa2,0x6c,0xa2,0xde,0xe1,0xc5, + 0xf9,0x44,0xaa,0xe8,0x8c,0x72,0x24,0x96,0x99,0x46,0x40,0xd6,0x1a,0x9d,0x57,0x93, + 0x43,0x5d,0xa1,0x33,0x0a,0x51,0x8f,0x0b,0x9d,0xf7,0x31,0x36,0x2b,0x75,0x9e,0xcc, + 0xb3,0x26,0xf3,0x68,0xe0,0x8d,0x02,0xf1,0x6f,0x32,0x56,0x2d,0x5d,0x3a,0x76,0x5f, + 0xef,0xd5,0xd9,0xb5,0x0d,0x02,0x56,0xcb,0xa5,0x8e,0xa6,0x83,0x2b,0x94,0x37,0xc7, + 0x58,0xe2,0xea,0xb4,0xf2,0x97,0x95,0x0d,0x43,0x50,0x71,0x5b,0x4c,0x79,0x08,0x84, + 0xca,0x18,0xaf,0x2b,0x43,0xda,0x63,0x68,0xc4,0xd1,0x58,0xf6,0x62,0x14,0xe7,0x2e, + 0x23,0x76,0x85,0xab,0x2c,0xc7,0x7c,0xf3,0x3a,0x70,0x28,0x6e,0xdf,0x67,0x15,0xe7, + 0x22,0x23,0x15,0x0f,0xda,0x48,0x7d,0x86,0xa8,0x1d,0x46,0x20,0x27,0x72,0xe4,0xa9, + 0x30,0x83,0x68,0xcc,0xef,0x26,0x8d,0xf0,0x87,0x4e,0xb1,0x40,0xa3,0xbb,0x2e,0x51, + 0xad,0x02,0x2f,0x7f,0xd4,0xa8,0x69,0xad,0x2a,0x3e,0x21,0x91,0x6c,0x69,0xc3,0x64, + 0x53,0xe6,0xec,0x0f,0x65,0x8b,0x06,0x40,0xc5,0xe5,0x28,0x37,0x2d,0xbd,0x9c,0x6c, + 0xc9,0x19,0x69,0x9a,0x9a,0x98,0x19,0xd0,0x39,0x14,0xef,0x18,0x36,0x0b,0xd5,0x2b, + 0x38,0xdb,0x58,0x81,0x61,0x8b,0x2a,0x2b,0x4b,0x07,0x19,0xc4,0xac,0xcb,0x85,0xd7, + 0x95,0xd2,0x11,0x81,0x1e,0xc7,0x3a,0x1d,0x58,0x0b,0x34,0xf9,0xa4,0xd9,0x4c,0xa7, + 0xd0,0xe4,0x12,0xfb,0x7e,0x04,0xb7,0xd0,0xdf,0xc0,0xbe,0x9c,0x77,0x10,0x06,0xe5, + 0xe6,0xd2,0x58,0x8c,0xf2,0xa9,0xc1,0x9f,0xce,0x27,0xee,0x27,0xc3,0x32,0x3a,0x08, + 0x12,0x35,0x07,0x6f,0x09,0xde,0xf4,0xe1,0xa4,0x21,0x0a,0xb1,0xed,0xe2,0x3b,0x0b, + 0xad,0x33,0xe2,0x1e,0x32,0xf2,0xc7,0x7e,0x16,0x3f,0xc8,0xb2,0x46,0x7b,0x75,0xb5, + 0x8d,0x9b,0x39,0xb8,0xe0,0x24,0x85,0xd4,0xfa,0x4b,0x25,0x25,0x60,0xa8,0x5a,0xb5, + 0x99,0xbe,0x81,0x5d,0xc3,0x00,0xe6,0x01,0x97,0x1f,0xfa,0xff,0x78,0xd5,0x93,0x44, + 0xb9,0x26,0x9b,0xba,0xea,0x0a,0x7b,0x9d,0xbb,0xdd,0x09,0x67,0x32,0x20,0x9b,0x5b, + 0xa5,0x21,0x69,0xc6,0x2b,0x8f,0x47,0x27,0x9e,0x18,0xdf,0xdd,0x59,0x70,0x79,0x2d, + 0xfe,0xcb,0x18,0x5b,0xf4,0xa7,0x22,0xc2,0x18,0x77,0x36,0x0c,0x9f,0xa8,0x00,0x4d, + 0x9a,0x09,0x13,0x46,0x0f,0xcd,0x55,0x81,0xc2,0x36,0xec,0x48,0x61,0xa9,0x46,0x0a, + 0x5b,0xe4,0x4c,0x60,0xbb,0x9b,0xb8,0xcd,0x88,0x54,0x58,0x2a,0xaf,0x4c,0x6e,0xf3, + 0x11,0x99,0x9f,0x34,0x9f,0x70,0x4e,0x58,0xbd,0x46,0x26,0x51,0x3c,0x6d,0xab,0x39, + 0xdf,0x45,0x97,0xf6,0x3b,0xf9,0x4d,0xa4,0x00,0x22,0x81,0x9b,0xb9,0x5a,0xa2,0xac, + 0x2e,0xe6,0x07,0xe8,0xe5,0x1a,0x5c,0x53,0x9c,0x09,0xf0,0xaf,0x57,0xee,0x1e,0xe1, + 0xeb,0xcf,0x44,0x50,0xd8,0x21,0x24,0xa5,0x25,0xa8,0x4c,0x8e,0x1a,0x19,0xb0,0xa9, + 0xea,0xf0,0xf3,0xba,0x02,0x9b,0xcb,0xa5,0xfd,0xbe,0xbd,0x5b,0x2e,0x4f,0x79,0xc8, + 0x21,0xce,0x24,0x98,0xe6,0x49,0x11,0x28,0xd3,0x46,0xfe,0x80,0xa6,0xd2,0xc9,0x5e, + 0xfb,0x69,0xba,0x90,0xfb,0xf9,0x74,0x37,0x06,0x95,0x6a,0x91,0x7d,0xc9,0x2c,0x9b, + 0xcc,0xf0,0x40,0x57,0x76,0xe8,0x77,0x0a,0xac,0xa8,0x99,0xdc,0x8d,0x81,0x4c,0x65, + 0x63,0xed,0xe4,0xcf,0xc9,0x89,0x79,0xe8,0x53,0x20,0xdc,0xac,0xd5,0x74,0x2f,0xcb, + 0x48,0x01,0x1c,0xac,0x87,0x7a,0x12,0xcb,0x23,0xd5,0x9f,0xab,0xb1,0x30,0x17,0x02, + 0xba,0x8a,0x14,0x21,0xc8,0xb5,0x29,0x06,0x69,0x69,0xd3,0x7a,0x37,0x44,0x22,0xc9, + 0xca,0x08,0x82,0xd4,0xee,0xd8,0x33,0x45,0xd6,0x24,0x43,0x2d,0xe7,0x74,0x3b,0xa3, + 0x3b,0xd6,0x05,0x9c,0x16,0xf1,0x32,0xb1,0xb3,0x58,0xe1,0x47,0xc3,0xf1,0x95,0x9b, + 0xc1,0xaf,0xb0,0x3d,0xa7,0x22,0x1c,0xea,0x97,0x4b,0xf7,0xbd,0x41,0x26,0xc3,0x63, + 0xde,0x57,0xc4,0x6e,0x35,0x5d,0x2b,0xd8,0x30,0x8c,0xf5,0xf2,0xd0,0x09,0x79,0x08, + 0x4b,0x6d,0x68,0x67,0xd7,0x50,0xa3,0xe7,0x42,0x7b,0xf7,0x71,0xb6,0x75,0x5e,0x64, + 0x27,0x9e,0x3a,0x1c,0x26,0xd7,0x3d,0xf0,0x47,0x92,0xe2,0x71,0x73,0x13,0x7f,0x1a, + 0xac,0xe6,0xa4,0x07,0x36,0x00,0x39,0x96,0x59,0xcc,0xbb,0x6a,0xc7,0x01,0x8c,0xb4, + 0xb5,0x7c,0x2a,0x52,0x83,0xb7,0x93,0xd3,0xdb,0xca,0x1f,0x64,0xcb,0xce,0x4e,0x9e, + 0x9e,0x3d,0xdc,0x00,0xbe,0xba,0x39,0x55,0x2c,0x57,0x4f,0xd3,0x48,0x5b,0xbb,0x57, + 0xa0,0x9d,0x23,0x7a,0x04,0x8a,0x27,0xef,0xb1,0x33,0x54,0xb3,0xcf,0x4f,0x00,0xc9, + 0x65,0x32,0xd9,0x25,0xc8,0x74,0x00,0x67,0xd8,0xbc,0x7d,0xd0,0x96,0x41,0xd7,0xa3, + 0xcb,0xc0,0x72,0x72,0xde,0xbf,0x3d,0xe5,0x45,0x46,0x58,0x73,0xf3,0xd4,0x42,0x8c, + 0x70,0x6c,0x3f,0xda,0x6b,0x64,0x97,0xec,0x7a,0x1e,0x79,0xa3,0x26,0xf6,0x52,0xac, + 0x59,0xc5,0x9b,0x83,0x9c,0xa1,0xb3,0xd0,0x89,0x40,0x58,0x1e,0x27,0xdc,0xa4,0xad, + 0xa6,0x08,0x06,0x56,0x64,0xa2,0x65,0x70,0x12,0xd0,0x6f,0x40,0xaf,0xc7,0xab,0x30, + 0xc5,0x41,0x3e,0x4a,0xbc,0x19,0xd3,0xf9,0xb6,0x58,0xd1,0xa3,0x72,0x42,0x3d,0xd2, + 0xb5,0x07,0x13,0xbf,0xd2,0x8a,0xce,0xd6,0xde,0xc0,0x33,0xcb,0x86,0x5a,0xcd,0x91, + 0x15,0x6d,0x4a,0x17,0x7a,0x53,0xa5,0xd7,0x33,0x21,0xdf,0xfa,0x3b,0xfb,0xd8,0xf9, + 0x98,0xe5,0xc1,0x79,0xa5,0xac,0xb8,0x23,0xce,0x77,0xbe,0x95,0xff,0xc2,0x96,0x7c, + 0x01,0x0a,0x5f,0xba,0x38,0x13,0x6c,0xde,0x92,0x61,0xa2,0xa2,0x55,0x7e,0x99,0x8d, + 0x42,0x70,0x22,0xf8,0x72,0xbc,0xfe,0xdc,0xcb,0x3d,0xd4,0x6f,0xcd,0x34,0xf5,0x5a, + 0x9a,0xa5,0xfe,0x9a,0x99,0xd8,0xc7,0xf2,0x48,0xb1,0x58,0x5d,0x5f,0xa7,0xa6,0x17, + 0x34,0x33,0x61,0x2a,0x94,0xd7,0xe7,0x4f,0x4b,0xf3,0xd4,0xd3,0xe6,0xae,0xd7,0xab, + 0xed,0x89,0x4a,0x3a,0xb8,0x46,0x7f,0xa6,0x6e,0xeb,0x4f,0x7d,0xf1,0xc2,0x69,0x31, + 0xc4,0x8b,0xac,0x92,0xe4,0x8e,0x88,0x36,0x07,0xce,0xde,0xdc,0x62,0x9f,0x1e,0xfa, + 0x4c,0xf1,0xbb,0xa4,0x7e,0xbf,0x7f,0x5a,0xaa,0x1e,0x64,0xcb,0x65,0x91,0x24,0x93, + 0xa3,0x33,0x27,0xac,0xe9,0xd0,0x5e,0x46,0x89,0x74,0x8e,0x9e,0x53,0xea,0x3f,0x1d, + 0x9d,0x07,0x6b,0x46,0xc8,0xc0,0xaf,0x1d,0x59,0xeb,0x4f,0xc6,0xb4,0x71,0x94,0x8f, + 0x50,0x8b,0x6c,0xb2,0xa2,0x1c,0x50,0xe5,0xc9,0x31,0x59,0x88,0xb7,0x8b,0x16,0x1a, + 0xb0,0x09,0xdf,0x8c,0x7e,0xa8,0x4c,0x9f,0x1c,0x09,0x73,0x7e,0x5f,0xaf,0x59,0xb8, + 0x7c,0x74,0x16,0x21,0xde,0x3c,0xcb,0x01,0x39,0xc9,0x75,0x4a,0x5c,0x92,0x84,0x07, + 0xe4,0x4a,0x2f,0xaf,0xaf,0xf8,0x50,0x82,0x58,0x9c,0xd2,0x65,0x4b,0x09,0x20,0xad, + 0xce,0x86,0xf2,0x7e,0xe4,0xcc,0xcc,0xc0,0x6b,0x72,0xf1,0xc5,0x1d,0x7f,0x79,0x30, + 0x93,0x07,0xa2,0x41,0x61,0x37,0x37,0x9d,0x8e,0x66,0x49,0xcc,0x6a,0xa1,0x21,0x99, + 0x69,0xeb,0x87,0x7a,0xbb,0x3d,0x24,0xb5,0x6c,0x02,0x1c,0x96,0x24,0x4d,0xe5,0x49, + 0xb5,0xd4,0x13,0xac,0x6c,0xec,0x82,0x65,0xa6,0xdb,0xa7,0xdd,0xa5,0x30,0x4f,0xb5, + 0x33,0x16,0x73,0x69,0x2a,0xf2,0x83,0x12,0x7a,0xe8,0x0a,0xa6,0x0d,0xf7,0xa8,0x0b, + 0x44,0x47,0x15,0x12,0xf2,0x98,0x02,0x07,0x57,0xcb,0x2c,0x60,0xae,0xd5,0x14,0xf2, + 0x39,0x3d,0xb9,0xc7,0xa4,0xae,0xf4,0x56,0x8a,0xee,0x1d,0xa6,0x12,0x5a,0x3b,0xc8, + 0x49,0x2f,0x58,0x59,0xb7,0x38,0xfc,0x62,0xb7,0x89,0xff,0x56,0x4f,0x8f,0x72,0xed, + 0xc2,0xb8,0x6a,0xbf,0x1a,0x9a,0x78,0xd4,0x27,0x1a,0x15,0xbf,0xdf,0x93,0x80,0xee, + 0xba,0x16,0x56,0xff,0x21,0x26,0x68,0x44,0x97,0xdc,0x72,0x48,0x97,0xf1,0x79,0x2b, + 0xe2,0xe2,0xc1,0xcd,0xe9,0x54,0xba,0x03,0xe7,0xb1,0x2d,0x88,0xb0,0x6a,0x99,0xfb, + 0x6f,0x18,0x56,0x9e,0xf4,0xdc,0x76,0x37,0x0e,0xcd,0xdd,0xd2,0xfb,0x93,0xe5,0xb2, + 0x56,0x2b,0x8f,0xc5,0x17,0x3b,0xcd,0xb5,0x72,0x3b,0xdf,0xc6,0x7a,0x83,0xee,0x7f, + 0x82,0x81,0xdf,0x09,0xbb,0x28,0x93,0xec,0xcb,0x2b,0xac,0x18,0x40,0x88,0xf1,0x2b, + 0xea,0xcc,0x83,0x95,0x0b,0x1d,0xa1,0x41,0xe2,0x04,0x7b,0x73,0xef,0x08,0x7e,0xf0, + 0x27,0xbd,0x16,0x79,0x19,0x87,0xb3,0x6a,0x0a,0x49,0xd0,0xa5,0x08,0x87,0x2d,0x12, + 0xb7,0x09,0x19,0xc7,0xf6,0xb1,0x65,0x59,0x84,0xb2,0xfa,0xac,0xd3,0x2d,0x38,0xec, + 0x97,0xa1,0x4f,0xca,0x1d,0xf9,0x6f,0xfd,0x99,0x91,0x5b,0x88,0x04,0x2a,0xd3,0xde, + 0xe7,0xd6,0x7f,0x1e,0xbc,0x7b,0xdb,0x30,0x6e,0xc0,0x11,0xdf,0x35,0xd2,0xa9,0xdd, + 0xa3,0x8b,0x27,0x79,0x67,0x66,0xab,0x6d,0xeb,0x64,0x6f,0xfb,0x4e,0xbb,0x8b,0x2b, + 0x83,0x0f,0x7b,0xe7,0xff,0xce,0x7e,0x10,0xde,0x37,0xe3,0x85,0xb7,0x71,0xe1,0x8f, + 0xb6,0x0e,0x91,0xdb,0x56,0x76,0xd7,0x7e,0xe8,0x6b,0x77,0xbb,0x62,0xad,0xa1,0xdd, + 0x0f,0x6b,0x96,0xd3,0xfe,0x4e,0x93,0xc2,0x5c,0xe6,0x9b,0x4d,0x14,0x9e,0x25,0x83, + 0x1e,0x8e,0xdd,0x1d,0xcf,0xc2,0xc8,0xb5,0x65,0x9c,0xc1,0x77,0x38,0x63,0xf5,0xc4, + 0xc6,0x9f,0x68,0x5a,0x23,0x8c,0x00,0xa1,0x9f,0x87,0xcc,0x64,0x2c,0x4d,0x89,0x00, + 0x0e,0x4c,0x4e,0xa5,0x87,0x90,0x91,0xeb,0x77,0xf3,0xec,0xc2,0x8b,0xac,0x0e,0x20, + 0x45,0x26,0x67,0x7c,0x76,0xa6,0x1b,0x7b,0xb3,0x8f,0xa7,0x43,0x76,0xbe,0xf4,0xa8, + 0x92,0x46,0x8e,0x55,0xb9,0x24,0x67,0x6b,0xaf,0xe5,0xa7,0x79,0xf9,0x86,0x2a,0x7a, + 0xc4,0x1a,0x2a,0x5e,0x54,0xbb,0x5e,0x7e,0x28,0x2f,0xd9,0xbf,0x72,0x42,0x42,0x47, + 0x8b,0x2c,0x55,0x46,0x4f,0x05,0xc6,0x74,0x54,0x9e,0xfb,0x34,0xec,0xd9,0xbe,0x90, + 0xdd,0x0d,0x04,0x08,0x36,0xed,0x01,0x37,0xd1,0x47,0xc7,0x15,0x56,0x23,0xb7,0x7c, + 0x2c,0xe7,0x2e,0x99,0x79,0x7e,0x21,0x0a,0x6b,0x83,0x63,0x9e,0x75,0x65,0x1b,0x7c, + 0x99,0x46,0xb7,0x88,0xba,0xfd,0xc8,0x38,0xa1,0xee,0xd0,0x73,0xeb,0x11,0x59,0xd5, + 0x7e,0x8b,0x2a,0xe4,0xcb,0xeb,0x5b,0xe3,0x3c,0xcd,0xca,0xc7,0xef,0xa9,0xf3,0xc1, + 0x32,0x24,0x79,0xf1,0x31,0xeb,0x14,0xb7,0xab,0x18,0x44,0xd7,0x10,0x93,0xcb,0x0e, + 0x6f,0x75,0x5b,0x46,0x90,0xf1,0x47,0x19,0x3c,0x4c,0x5e,0xea,0x56,0x4f,0xcf,0x2a, + 0x4b,0x3d,0x85,0x26,0x51,0x69,0x29,0x47,0xb5,0x16,0x57,0x8c,0x1e,0xd5,0xb6,0x99, + 0x6e,0x59,0x0b,0xab,0x94,0x6e,0xed,0x8d,0x2f,0x6f,0x68,0xd1,0xd0,0xdc,0x25,0x3b, + 0x4f,0x9b,0xce,0x72,0xb6,0xac,0x20,0xf3,0x86,0xbe,0x4e,0xfe,0x8c,0x70,0xf6,0xef, + 0xd7,0xc7,0xf9,0x7a,0xab,0x6a,0xfd,0x9c,0x76,0xc6,0x09,0x3b,0x30,0xeb,0xcf,0x58, + 0x49,0xd7,0x95,0x70,0x10,0x7c,0xd7,0xd8,0x19,0x6f,0xa5,0xb1,0x44,0xfd,0xfe,0xf9, + 0x4e,0xf3,0x2b,0x46,0x4d,0x6d,0x5b,0x64,0xd0,0x1d,0xcf,0x3d,0x8a,0xbc,0x52,0x04, + 0x80,0xda,0xe2,0xf2,0xa8,0x2c,0x3d,0xed,0xf3,0x00,0xde,0x82,0x4b,0xeb,0x3f,0x54, + 0x32,0xf8,0x5b,0x0f,0xb7,0xa9,0xe4,0xc4,0x77,0x72,0x05,0x14,0x3d,0x59,0x20,0xac, + 0xb1,0xb9,0x00,0x53,0x6c,0x0b,0x11,0x3d,0xa1,0x8c,0xe5,0x98,0x53,0x36,0x12,0x0c, + 0x16,0x81,0x6b,0xcb,0x1c,0x36,0xb6,0x81,0xa5,0x38,0x01,0x96,0x03,0x68,0x49,0x8c, + 0xa9,0x4e,0xc6,0x55,0xd9,0xc1,0xe4,0x6c,0x9e,0xaf,0x7c,0x59,0x8c,0xf2,0xb9,0xe8, + 0x27,0xba,0x95,0x4e,0x16,0x71,0xfe,0xaa,0x0d,0x46,0x74,0x81,0x01,0x12,0x0e,0xe9, + 0x05,0x68,0x66,0x9d,0x6e,0x05,0x83,0x9f,0x29,0xb6,0xb1,0x84,0xec,0xbe,0x1a,0x5b, + 0xf7,0xd8,0x75,0xc1,0x66,0xf7,0x7f,0xb7,0x7c,0x14,0x4b,0x5e,0x7a,0x3e,0xf0,0x4b, + 0x54,0xf4,0xb1,0x41,0x26,0x76,0x58,0x54,0x5e,0x23,0x38,0x74,0x6d,0x92,0xb0,0x1e, + 0xa4,0x86,0xd2,0xc0,0xfc,0x81,0x7a,0x0d,0xec,0x0e,0x49,0x3d,0x9b,0x10,0x2f,0x9c, + 0x52,0xd7,0x36,0x42,0xb5,0xe9,0x96,0x32,0x78,0x15,0x81,0x9c,0x47,0xfc,0x80,0x36, + 0x82,0x0f,0x4a,0x0c,0xa7,0x13,0x7d,0x27,0xfc,0x15,0xac,0xa1,0x98,0x58,0xa0,0xca, + 0x68,0x5b,0xc3,0xf7,0x56,0x3e,0xd1,0xe6,0xe7,0x8b,0x6b,0xdb,0x3c,0x4d,0xcb,0xff, + 0x37,0x32,0xc8,0xef,0xcf,0x6c,0xbe,0x2c,0xce,0x82,0xae,0x53,0x59,0xd6,0x5d,0x0f, + 0xb2,0xab,0xee,0x90,0x6e,0xd9,0x90,0x49,0x59,0x52,0xa8,0x47,0x73,0x4b,0x77,0xec, + 0xd6,0x38,0xa9,0x0e,0x0c,0x6b,0x6f,0x23,0x1b,0xb8,0xeb,0x3a,0x56,0x65,0x6b,0xe1, + 0x0a,0xb7,0x39,0x62,0x84,0x72,0xc1,0x6b,0x16,0xd2,0x20,0x07,0xd5,0xff,0x6d,0x6d, + 0x31,0x9b,0xd5,0xff,0x32,0xe5,0x82,0x0d,0x5d,0x9f,0x7c,0x37,0x9b,0xcc,0xe6,0xea, + 0xe7,0xb5,0xbd,0xaf,0x67,0xcf,0x85,0xe9,0x5c,0xfc,0x57,0xc9,0xba,0x88,0x3f,0xf4, + 0xc9,0xbd,0x1b,0xd5,0x73,0xd4,0xe5,0xe3,0xa3,0x73,0x0a,0x95,0x70,0xc5,0xfe,0x39, + 0xf7,0x59,0xe9,0x8b,0xf6,0x06,0xa7,0xe0,0x8a,0x62,0x0e,0xce,0xd6,0xe7,0xf7,0x00, + 0xd4,0x9e,0x89,0x1e,0xe1,0x84,0x79,0x47,0x2e,0xda,0x4e,0xba,0x33,0x73,0x17,0x22, + 0x3b,0xa9,0x64,0x04,0x35,0x3b,0x18,0xc1,0x84,0xd4,0x52,0x00,0xf9,0x44,0xce,0xb1, + 0xc2,0x5b,0x5d,0x32,0xbe,0xd6,0xaf,0xaf,0x25,0x1b,0x16,0x83,0x26,0x4f,0x97,0x42, + 0x50,0xa5,0x1c,0xbc,0x61,0x46,0xb9,0x22,0x80,0x18,0xfe,0xd4,0x29,0x03,0x17,0x67, + 0x5a,0x95,0x21,0x9f,0x13,0x87,0x62,0xb7,0x15,0x4c,0x6e,0x78,0x91,0x8b,0xe0,0x12, + 0x30,0x61,0x30,0x2c,0xef,0xa6,0xb7,0x6c,0xbc,0x52,0x69,0x33,0x84,0xdb,0x23,0x1c, + 0xb0,0xd0,0x2a,0xd6,0x65,0xfa,0xb7,0xcd,0xc6,0xb3,0x1d,0x83,0x24,0x5e,0xa5,0x85, + 0xbf,0xf7,0x24,0x98,0x85,0x4b,0x65,0x97,0x45,0x8f,0xae,0x4c,0xaf,0xd8,0xb0,0x60, + 0x54,0x0d,0xfe,0x89,0xed,0x8a,0x19,0x0b,0x71,0xfb,0xc1,0x19,0x0d,0x2d,0x9a,0xd1, + 0x19,0x58,0x00,0xec,0xcf,0xd0,0x38,0x34,0xb4,0xb4,0x52,0xe2,0x5b,0x64,0x65,0x20, + 0x06,0x31,0x80,0x79,0xa4,0x06,0x30,0xd6,0xb5,0x12,0x76,0x6d,0x16,0x2f,0xf4,0x91, + 0xa5,0xbf,0xed,0x9d,0x45,0xb7,0x64,0x39,0xc3,0x22,0x2c,0x47,0xec,0x73,0x71,0x55, + 0xd2,0x0c,0x32,0x7e,0xbf,0x41,0x14,0x51,0xa4,0x76,0x4f,0xda,0x01,0x61,0xa4,0xe0, + 0x02,0xb4,0x82,0x1e,0xcc,0x37,0x44,0x2a,0x98,0xd2,0xbf,0xf6,0x00,0x76,0x21,0x16, + 0x0b,0x07,0x4c,0x16,0xef,0xdd,0x8c,0x10,0x62,0xf9,0x86,0xa7,0xe7,0x5b,0xc6,0x5e, + 0xf8,0x05,0x9e,0x68,0x9f,0x46,0xbf,0x17,0xf3,0xd1,0xf0,0xc5,0xc6,0xff,0x1f,0x8e, + 0x09,0x99,0xed,0x9f,0xd0,0x01,0x00, }; const uint8_t WEBCONFIG_HTML_SUCCESS[] PROGMEM = { diff --git a/src/helpers/esp32/WebConfigServer.cpp b/src/helpers/esp32/WebConfigServer.cpp index 255b50b08..686c12f5d 100644 --- a/src/helpers/esp32/WebConfigServer.cpp +++ b/src/helpers/esp32/WebConfigServer.cpp @@ -2092,6 +2092,8 @@ void WebConfigServer::handleConfigGet(AsyncWebServerRequest* req) { radio["bluetooth_name"] = (const char*)node.bluetooth_name; radio["bluetooth_mac"] = (const char*)node.bluetooth_mac; radio["bluetooth_stealth"] = node.bluetooth_stealth; + static const char* const LOST_REPLY_MODES[] = { "off", "no", "yes" }; + radio["lost_reply"] = LOST_REPLY_MODES[node.lost_reply <= 2 ? node.lost_reply : 0]; radio["lat"] = node.lat; radio["lon"] = node.lon; radio["advert_interval"] = node.advert_interval; @@ -2215,6 +2217,21 @@ void WebConfigServer::handleConfigPost(AsyncWebServerRequest* req) { return; } + if (set.containsKey("lost.reply")) { + NodeSnapshot node = {}; + _cb->getNodeSnapshot(node); + if (!(node.capabilities & CAP_LOST_REPLY)) { + req->send(400, "application/json", "{\"error\":\"setting unavailable\",\"key\":\"lost.reply\"}"); + return; + } + const char* value = set["lost.reply"]; + if (!value || (strcmp(value, "off") != 0 && strcmp(value, "no") != 0 + && strcmp(value, "yes") != 0)) { + req->send(400, "application/json", "{\"error\":\"expected off, no or yes\",\"key\":\"lost.reply\"}"); + return; + } + } + if (_mode == MODE_SETUP && _initial_setup && !set.containsKey("password") && (reboot_after || set.containsKey("wifi.ssid"))) { req->send(400, "application/json", diff --git a/src/helpers/esp32/WebConfigServer.h b/src/helpers/esp32/WebConfigServer.h index ff91b7430..aa67aa0f5 100644 --- a/src/helpers/esp32/WebConfigServer.h +++ b/src/helpers/esp32/WebConfigServer.h @@ -92,6 +92,7 @@ public: CAP_ESPNOW_CHANNEL = 1UL << 15, CAP_BLUETOOTH_MAC = 1UL << 16, CAP_BLUETOOTH_STEALTH = 1UL << 17, + CAP_LOST_REPLY = 1UL << 18, CAP_DELAYS = CAP_RX_DELAY | CAP_TX_DELAY, }; @@ -103,6 +104,7 @@ public: char bluetooth_name[32]; // empty = transport's default device name char bluetooth_mac[24]; // empty = chipset factory address bool bluetooth_stealth; // independent of the address policy + uint8_t lost_reply; // 0=off, 1=no, 2=yes (Companion only) char admin_password[32]; // empty = trusted LAN/no login prompt double lat; double lon; diff --git a/test/fixtures/client_acl_infrastructure/test_client_acl_infrastructure.cpp b/test/fixtures/client_acl_infrastructure/test_client_acl_infrastructure.cpp index fa312740a..c746e98e4 100644 --- a/test/fixtures/client_acl_infrastructure/test_client_acl_infrastructure.cpp +++ b/test/fixtures/client_acl_infrastructure/test_client_acl_infrastructure.cpp @@ -9,6 +9,9 @@ #include #include #include +#ifndef TEST_SENSOR +#include +#endif #define REQ_TYPE_GET_ACCESS_LIST 0x05 #define REQ_TYPE_GET_TELEMETRY_DATA 0x04 @@ -16,6 +19,9 @@ #define SERVER_RESPONSE_DELAY 300 #define OUT_PATH_UNKNOWN 0xFF #define PERM_ACL_ROLE_MASK 7 +#define PERM_ACL_GUEST 0 +#define PERM_ACL_READ_ONLY 1 +#define PERM_ACL_READ_WRITE 2 #define PERM_ACL_ADMIN 3 namespace mesh { @@ -141,6 +147,7 @@ public: size_t = mesh::CLIENT_ACL_DIRECT_REPLY_CAPACITY); int telemetryPrefix(uint8_t*, size_t); MemoryFS fs; + MemoryFS* _fs = &fs; mesh::RoomAccessPolicy room_access; mesh::LogicalMessageCache<8> recent_room_polls; TARGET_CLASS() { metadata_filesystem = &fs; assert(room_access.load(&fs)); } @@ -223,7 +230,75 @@ static void print_legacy(const uint8_t* body, unsigned count, size_t length) { for (size_t i = 0; i < length; ++i) std::cout << hex[body[i] >> 4] << hex[body[i] & 15]; std::cout << '\n'; } +#ifndef TEST_SENSOR +static void verify_mailbox_access() { + const uint8_t roles[] = {0, 1, 2, 3, 4, 5, 6, 7, 131, 255}; + for (uint8_t permissions : roles) { + for (bool active : {false, true}) { + TARGET_CLASS target; + memset(target.sender.id.pub_key, 0xa1, PUB_KEY_SIZE); + target.sender.permissions = permissions; + target.sender.last_activity = active ? 12 : 0; + uint8_t settings[] = {mesh::ROOM_MAIL_REQUEST_SUBTYPE, 0, 0, 0, 0, 0, 0}; + const int length = request(target, &target.sender, settings, sizeof(settings)); + const uint8_t role = permissions & PERM_ACL_ROLE_MASK; + const bool admitted = role == PERM_ACL_READ_ONLY || role == PERM_ACL_READ_WRITE + || role == PERM_ACL_ADMIN || (role == PERM_ACL_GUEST && active); + if (!admitted) assert(length == 0); + else { + assert(length == 17 && target.reply_data[4] == mesh::ROOM_MAIL_REQUEST_SUBTYPE); + assert(target.reply_data[5] == 0 && target.reply_data[6] == 0); + assert(target.reply_data[11] == 0); // Default closed mailbox. + } + assert(target.fs.files.empty()); // A read never provisions an inbox. + + uint8_t recipient[PUB_KEY_SIZE]; memset(recipient, 0xb2, sizeof(recipient)); + uint8_t provision[] = {mesh::ROOM_MAIL_REQUEST_SUBTYPE, 8, 0, 0, 0, 0, 1}; + uint8_t reply[32] = {}; + assert(mesh::handleRoomMailRequest(&target.fs, recipient, false, 1, + provision, sizeof(provision), reply, sizeof(reply)) == 7 && reply[2] == 0); + std::vector send(38); + send[0] = mesh::ROOM_MAIL_REQUEST_SUBTYPE; send[1] = 3; + memcpy(send.data() + 2, recipient, PUB_KEY_SIZE); + mesh::room_mail_protocol_detail::put16(send.data() + 34, 2); + send[36] = 'h'; send[37] = 'i'; + const int sent = request(target, &target.sender, send.data(), send.size()); + const bool can_send = role == PERM_ACL_READ_WRITE || role == PERM_ACL_ADMIN; + if (!admitted) assert(sent == 0); + else { + assert(sent == 11 && target.reply_data[5] == 3); + assert(target.reply_data[6] == (can_send ? 0 : 6)); + } + mesh::RoomMailStatus status; + assert(mesh::getRoomMailStatus(&target.fs, recipient, status) == mesh::RoomMailResult::Success); + assert(status.count == unsigned(admitted && can_send)); + } + } + TARGET_CLASS banned; + memset(banned.sender.id.pub_key, 0xa1, PUB_KEY_SIZE); + banned.sender.permissions = PERM_ACL_READ_WRITE; + uint8_t recipient[PUB_KEY_SIZE]; memset(recipient, 0xb2, sizeof(recipient)); + assert(banned.room_access.addBan(&banned.fs, recipient) == mesh::RoomAccessPolicy::BanResult::Saved); + std::vector send(38); + send[0] = mesh::ROOM_MAIL_REQUEST_SUBTYPE; send[1] = 3; + memcpy(send.data() + 2, recipient, PUB_KEY_SIZE); + mesh::room_mail_protocol_detail::put16(send.data() + 34, 2); + send[36] = 'h'; send[37] = 'i'; + assert(request(banned, &banned.sender, send.data(), send.size()) == 7); + assert(banned.reply_data[6] == 6); + assert(!banned.fs.files.count(mesh::ROOM_MAIL_PRIMARY_PATH)); + for (size_t length = 0; length < send.size(); ++length) { + std::vector truncated(send.begin(), send.begin() + length); + const int used = request(banned, &banned.sender, truncated.data(), length); + assert(used == 0 || used == 7); + } + std::cout << "Room mailbox guest, reader, writer and recipient-ban boundaries passed\n"; +} +#endif int main() { +#ifndef TEST_SENSOR + verify_mailbox_access(); +#endif uint8_t query[] = {REQ_TYPE_GET_ACCESS_LIST, 0, 0}; uint8_t secret[PUB_KEY_SIZE] = {}; unsigned paths = 0; diff --git a/test/fixtures/companion_lost_reply.cpp b/test/fixtures/companion_lost_reply.cpp new file mode 100644 index 000000000..54957363c --- /dev/null +++ b/test/fixtures/companion_lost_reply.cpp @@ -0,0 +1,491 @@ +#include "CompanionFeatures.h" +#include "production_lost_include.inc" +#include +#include +#include +#include +#include +#include +#include + +#define PUB_KEY_SIZE 32 +#define MAX_HASH_SIZE 8 +#define MAX_TEXT_LEN 150 +#define MAX_FRAME_SIZE 172 +#define EXPECTED_ACK_TABLE_SIZE 8 +#define TXT_TYPE_PLAIN 0 +#define TXT_TYPE_CLI_COMMAND 1 +#define TXT_TYPE_SIGNED_PLAIN 2 +#define ADV_TYPE_CHAT 1 +#define ADV_TYPE_ROOM 3 +#define OUT_PATH_UNKNOWN 255 +#define MSG_SEND_FAILED 0 +#define MSG_SEND_SENT_FLOOD 1 +#define MSG_SEND_SENT_DIRECT 2 +#define PAYLOAD_TYPE_TXT_MSG 2 +#define PAYLOAD_TYPE_ACK 3 +#define PAYLOAD_TYPE_RESPONSE 1 +#define ONE_KEY_DM_ID_SIZE 8 +#include "production_constants.inc" + +namespace mesh { +struct Identity { uint8_t pub_key[PUB_KEY_SIZE] = {}; }; +struct GroupChannel { uint8_t secret[16] = {}; }; +struct Packet { + static bool isValidPathLen(uint8_t value) { return value != 254; } + uint8_t path_len = 0; + uint8_t path[8] = {}; + uint8_t payload[5 + MAX_TEXT_LEN + 1] = {}; + uint8_t recipient[PUB_KEY_SIZE] = {}; + bool flood = false, used = false, do_not_retransmit = false; + uint8_t hash = 0; + void calculatePacketHash(uint8_t* out) { memset(out, hash, MAX_HASH_SIZE); } + bool isRouteFlood() const { return flood; } + bool isRouteDirect() const { return !flood; } + int getSNR() const { return 1; } + int getPathHashCount() const { return 0; } + void markDoNotRetransmit() { do_not_retransmit = true; } +}; +namespace Utils { +static void sha256(uint8_t* out, size_t count, const uint8_t* a, size_t alen, + const uint8_t* b, size_t blen) { + // Hashing/encryption are the transport boundary; production composes the + // actual private payload and retains its independently matched ACK here. + uint32_t value = 2166136261U; + for (size_t i = 0; i < alen; ++i) value = (value ^ a[i]) * 16777619U; + for (size_t i = 0; i < blen; ++i) value = (value ^ b[i]) * 16777619U; + for (size_t i = 0; i < count; ++i) out[i] = uint8_t(value >> ((i % 4) * 8)); +} +} +} + +struct ContactInfo { + mesh::Identity id; + uint8_t type = ADV_TYPE_CHAT, out_path_len = 0, flags = 0; + bool transient = false; + uint32_t lastmod = 0; + uint8_t path[8] = {}; + const uint8_t* getPath() const { return path; } + const uint8_t* getSharedSecret(const mesh::Identity&) const { return id.pub_key; } + bool isRemoteCLIAllowed() const { return flags & 0x10; } + bool setPath(const uint8_t* value, uint8_t length) { + if (!mesh::Packet::isValidPathLen(length) || length > sizeof(path)) return false; + memcpy(path, value, length); out_path_len = length; return true; + } +}; +struct Clock { + uint32_t now = 0, sequence = 100; + uint32_t getMillis() const { return now; } + uint32_t getCurrentTimeUnique() { return sequence++; } + uint32_t getCurrentTime() const { return sequence; } +}; +struct Manager { int free = 16; int getFreeCount() const { return free; } }; +struct BaseSerialInterface { + unsigned writes = 0; + bool isConnected() const { return false; } + bool isReplyRouteAvailable(BaseSerialInterface*) const { return true; } + size_t writeFrameToRoute(BaseSerialInterface*, const uint8_t*, size_t n) { ++writes; return n; } + size_t writeFrame(const uint8_t*, size_t n) { ++writes; return n; } +}; +struct UI { void setMessageNotificationOverride(bool) {} }; +struct Terminal { + void print(const char*) {} + template void printf(const char*, T...) {} +}; +struct TerminalDisplay { bool shouldShowChannel(bool) const { return false; } }; +struct ChannelDetails { char name[32] = {}; }; +static const uint8_t EMERGENCY_CHANNEL_SECRET[16] = {1}; +struct Random { int nextInt(int, int) { return 0; } }; +struct LostSnapshot { uint8_t lost_reply = 0; uint32_t capabilities = 0; }; +struct WebConfigServer { static constexpr uint32_t CAP_LOST_REPLY = 1UL << 18; }; + +class MyMesh { +public: + struct Prefs { uint8_t lost_reply = 0; } _prefs; + Clock clock, *_ms = &clock; + Manager manager, *_mgr = &manager; + BaseSerialInterface serial, *_serial = &serial; + UI ui, *_ui = &ui; + mesh::Identity self_id; +#include "production_lost_state.inc" +#include "production_entry.inc" + AckTableEntry expected_ack_table[EXPECTED_ACK_TABLE_SIZE] = {}; + unsigned long txt_send_timeout = 0, next_ack_expiry = 0; + bool has_next_ack_expiry = false; + uint8_t next_ack_idx = 3; + std::vector contacts; + mesh::Packet packets[16]; + mesh::Packet incoming; + unsigned queued = 0, dropped = 0, sends = 0, saves = 0, cancellations = 0; + unsigned normal_marks = 0, contact_writes = 0, replacements = 0; + unsigned path_updates = 0, path_retries = 0, contact_responses = 0; + bool queue_available = true, radio_available = true, allocation_available = true; + bool save_available = true, delivered = false; + std::string last_answer; + uint8_t last_recipient[PUB_KEY_SIZE] = {}; + uint8_t out_frame[MAX_FRAME_SIZE] = {}; + uint8_t app_target_ver = 3; + uint16_t emergency_client_repeats[EMERGENCY_CLIENT_REPEAT_TABLE_SIZE] = {}; + uint8_t emergency_client_repeat_next = 0; + mesh::Packet* emergency_client_repeat_packet = NULL; + uint16_t emergency_client_repeat_key = 0; + unsigned long emergency_client_repeat_send_at = 0; + Random random; + Terminal terminal; + TerminalDisplay _terminal_display; + uint8_t held_dm_count = 0; + unsigned offline_queue_len = 0; + struct Held { uint8_t sender_key[32] = {}, id[ONE_KEY_DM_ID_SIZE] = {}; } held_dms[1]; + + MyMesh() { contacts.reserve(8); } + ContactInfo& contact(uint8_t key, uint8_t suffix = 0) { + contacts.emplace_back(); + contacts.back().id.pub_key[0] = key; + contacts.back().id.pub_key[31] = suffix; + return contacts.back(); + } + void receive(ContactInfo& from, uint32_t timestamp, const char* question = "Am I lost?") { + onMessageRecv(from, &incoming, timestamp, question); + } + bool isTransientContact(const ContactInfo& value) const { return value.transient; } + ContactInfo* lookupPersistentContactByPubKey(const uint8_t* key, int n) { + assert(n == PUB_KEY_SIZE); + for (ContactInfo& c : contacts) if (!c.transient && memcmp(c.id.pub_key, key, n) == 0) return &c; + return NULL; + } + void markConnectionActive(const ContactInfo&) { ++normal_marks; } + void scheduleContactWrite(const ContactInfo&) { ++contact_writes; } + bool queueMessage(const ContactInfo&, uint8_t, mesh::Packet*, uint32_t, + const uint8_t*, size_t, const char*) { + if (queue_available) { ++queued; return true; } ++dropped; return false; + } + bool addToOfflineQueue(const uint8_t*, int) { ++queued; return true; } + bool savePrefs() { ++saves; return save_available; } + void makeOneKeyDMId(uint8_t* id, uint32_t timestamp, const char*) { memset(id, uint8_t(timestamp), ONE_KEY_DM_ID_SIZE); } + bool wasDeliveredOneKeyDM(const uint8_t*, const uint8_t*) { return delivered; } + void removeHeldOneKeyDM(uint8_t) { held_dm_count = 0; } + unsigned getOfflineQueueCapacity() const { return 1; } + void rememberDeliveredOneKeyDM(const uint8_t*, const uint8_t*) {} + bool hasTerminalOutput() const { return false; } + Terminal& terminalOutput() { return terminal; } + void rememberOneKeyAck(ContactInfo&) {} + uint8_t findChannelIdx(const mesh::GroupChannel&) { return 0; } + bool getChannel(int, ChannelDetails&) { return false; } + uint16_t emergencyClientRepeatKey(mesh::Packet*) { return 0; } + bool hasEmergencyClientRepeat(uint16_t) { return false; } + mesh::Packet* obtainNewPacket() { return NULL; } + Random* getRNG() { return &random; } + Clock* getRTCClock() { return &clock; } + unsigned long futureMillis(int millis) const { return uint32_t(clock.now + millis); } + uint32_t getTransmitAirtime(mesh::Packet*) { return 10; } + uint32_t calcFloodTimeoutMillisFor(uint32_t) { return 6000; } + uint32_t calcDirectTimeoutMillisFor(uint32_t, uint8_t) { return 3000; } + bool checkConnectionsAck(const uint8_t*, ContactInfo*& peer) { peer = NULL; return false; } + bool canMutateContacts() const { return true; } + void onContactPathUpdated(const ContactInfo&) { ++path_updates; } + void onContactResponse(const ContactInfo&, uint8_t*, uint8_t) { ++contact_responses; } + void handleReturnPathRetry(const ContactInfo&, const uint8_t*, uint8_t) { ++path_retries; } + bool hasActiveRetries(const uint8_t*) const { return false; } + void cancelActiveRetries(const uint8_t*) { ++cancellations; } + void replaceActiveRetries(mesh::Packet*, const uint8_t*) { ++replacements; } + void replaceActiveMessageRetries(mesh::Packet*, const uint8_t*, uint32_t) { ++replacements; } + mesh::Packet* createDatagram(uint8_t type, const mesh::Identity& to, + const uint8_t*, const uint8_t* data, int len) { + assert(type == PAYLOAD_TYPE_TXT_MSG); + if (!allocation_available) return NULL; + for (mesh::Packet& p : packets) if (!p.used) { + p.used = true; --manager.free; + memset(p.payload, 0, sizeof(p.payload)); memcpy(p.payload, data, len); + memcpy(p.recipient, to.pub_key, 32); p.hash = uint8_t(clock.sequence); + return &p; + } + return NULL; + } + void releasePacket(mesh::Packet* p) { if (p->used) { p->used = false; ++manager.free; } } + bool sendFloodScoped(const ContactInfo&, mesh::Packet* p, uint32_t) { return send(p); } + bool sendDirect(mesh::Packet* p, const uint8_t*, uint8_t, uint32_t) { return send(p); } + bool send(mesh::Packet* p) { + if (radio_available) { + ++sends; last_answer = reinterpret_cast(p->payload + 5); + memcpy(last_recipient, p->recipient, 32); + assert(p->payload[4] == TXT_TYPE_PLAIN); + } + releasePacket(p); return radio_available; + } + void clearExpectedAck(AckTableEntry&, bool = true); + void expireExpectedAcks(); + bool processAck(const uint8_t*, ContactInfo*&); + void onAckRecv(mesh::Packet*, uint32_t); + bool onContactPathRecv(ContactInfo&, uint8_t*, uint8_t, uint8_t*, uint8_t, + uint8_t, uint8_t*, uint8_t); + void snapshot(LostSnapshot&); + void onMessageRecv(const ContactInfo&, mesh::Packet*, uint32_t, const char*); + void onCLICommandRecv(const ContactInfo&, mesh::Packet*, uint32_t, const char*, char*); + bool onSignedMessageRecv(const ContactInfo&, mesh::Packet*, uint32_t, const uint8_t*, const char*); + void onChannelMessageRecv(const mesh::GroupChannel&, mesh::Packet*, uint32_t, const char*); + bool handleDirectCommand(const char*, char*, size_t); + bool handleCommand(const char*, uint32_t, char*); + mesh::Packet* composeMsgPacket(const ContactInfo&, uint32_t, uint8_t, const char*, uint32_t&); + int sendMessage(const ContactInfo&, uint32_t, uint8_t, const char*, uint32_t&, uint32_t&, + uint8_t* = NULL, const uint8_t* = NULL, const uint8_t* = NULL, + uint32_t = 0); + int sendMessageDetached(const ContactInfo&, uint32_t, const char*, uint32_t&, + uint32_t&, uint8_t*); +}; + +#include "production_methods.inc" + +#if MESH_ENABLE_LOST_REPLY +static void matchingAndOrdinaryInbox() { + for (const char* text : {"am i lost", "Am I lost?", "\t AM I LOST? \r\n", "\vam i lost\f"}) { + MyMesh m; ContactInfo& peer = m.contact(1); m._prefs.lost_reply = 2; + m.receive(peer, 7, text); + assert(m.sends == 1 && m.last_answer == "Yes" && m.queued == 1); + assert(m.last_recipient[0] == 1 && m.serial.writes == 0); + assert(m.has_next_ack_expiry && m.expected_ack_table[0].reply_route == NULL); + } + for (const char* text : {"", "a", "am i los", "am i lost??", "am i lost ?", "am i lost?", + "please am i lost?", "am i lost? yes", "am i lost\n?", "Yes", "No", + "!mail send 0123 Am I lost?", "set lost.reply yes", "am i lost\xc2\xa0"}) { + MyMesh m; auto& peer = m.contact(1); m._prefs.lost_reply = 2; + m.receive(peer, 7, text); assert(m.sends == 0 && m.queued == 1); + } + for (uint8_t setting : {uint8_t(0), uint8_t(255)}) { + MyMesh m; auto& peer = m.contact(1); m._prefs.lost_reply = setting; + m.receive(peer, 7); assert(m.sends == 0 && m.queued == 1); + } + MyMesh full; auto& peer = full.contact(1); full._prefs.lost_reply = 1; + LostSnapshot saved; full.snapshot(saved); + assert(saved.lost_reply == 1 && (saved.capabilities & WebConfigServer::CAP_LOST_REPLY)); + full.queue_available = false; full.offline_queue_len = full.getOfflineQueueCapacity(); + for (uint32_t question = 1; question <= 8; ++question) { + full.clock.now = question * 60000; full.receive(peer, question); + } + assert(full.sends == 8 && full.last_answer == "No" && full.dropped == 8); +#if MESH_ENABLE_ONE_KEY_DM + MyMesh held; auto& h = held.contact(2); held._prefs.lost_reply = 2; + held.queue_available = false; held.offline_queue_len = 1; held.held_dm_count = 1; + memcpy(held.held_dms[0].sender_key, h.id.pub_key, 32); + held.makeOneKeyDMId(held.held_dms[0].id, 7, "Am I lost?"); + held.receive(h, 7); assert(held.sends == 1); + held.delivered = true; held.clock.now = 60000; held.receive(h, 7); assert(held.sends == 1); +#endif +} + +static void admissionAndLoops() { + MyMesh m; auto& peer = m.contact(1); m._prefs.lost_reply = 2; + for (uint8_t type : {uint8_t(0), uint8_t(2), uint8_t(ADV_TYPE_ROOM)}) { + peer.type = type; m.receive(peer, 7); assert(m.sends == 0); + } + peer.type = ADV_TYPE_CHAT; peer.transient = true; m.receive(peer, 7); assert(m.sends == 0); + peer.transient = false; + ContactInfo unknown; unknown.id.pub_key[0] = 2; m.receive(unknown, 7); assert(m.sends == 0); + ContactInfo collision = peer; collision.id.pub_key[31] = 1; + m.receive(collision, 7); assert(m.sends == 0); + uint8_t prefix[4] = {}; m.onSignedMessageRecv(peer, &m.incoming, 7, prefix, "Am I lost?"); + mesh::GroupChannel channel; m.onChannelMessageRecv(channel, &m.incoming, 7, "Am I lost?"); + char reply[160] = {}; m.onCLICommandRecv(peer, &m.incoming, 7, "Am I lost?", reply); + peer.flags = 0x10; reply[0] = 0; + m.onCLICommandRecv(peer, &m.incoming, 7, "Am I lost?", reply); + assert(m.sends == 0); + m.receive(peer, 7); assert(m.sends == 1); + m.receive(peer, 8, "Yes"); m.receive(peer, 9, "No"); assert(m.sends == 1); +} + +static void retriesCooldownAndFullKeys() { + MyMesh m; auto& one = m.contact(1); auto& same_prefix = m.contact(1, 1); + m._prefs.lost_reply = 2; + m.receive(one, 7); assert(m.sends == 1); + for (uint32_t time : {uint32_t(1), uint32_t(59999), uint32_t(60000), uint32_t(3600000)}) { + m.clock.now = time; m.receive(one, 7); assert(m.sends == 1); + } + m.clock.now = 59999; m.receive(one, 8); assert(m.sends == 1); + m.clock.now = 60000; m.receive(one, 8); assert(m.sends == 2); + m.clock.now = 69999; m.receive(same_prefix, 8); assert(m.sends == 2); + m.clock.now = 70000; m.receive(same_prefix, 8); assert(m.sends == 3 && m.last_recipient[31] == 1); + m.clock.now = 120000; m.receive(one, 9); assert(m.sends == 4); + using mesh::companion::LostReplyLimiter; + LostReplyLimiter limiter; + uint8_t keys[5][32] = {}; + for (size_t i = 0; i < 5; ++i) keys[i][31] = uint8_t(i); + for (size_t i = 0; i < 4; ++i) { + uint32_t now = uint32_t(i * 10000); + assert(limiter.canReply(keys[i], 1, now)); limiter.rememberReply(keys[i], 1, now); + } + assert(!limiter.canReply(keys[4], 1, 40000)); + assert(!limiter.canReply(keys[0], 2, 59999)); + assert(limiter.canReply(keys[4], 1, 60000)); + LostReplyLimiter wrap; + const uint32_t start = 0xfffffff0U; + wrap.rememberReply(keys[0], 1, start); + assert(!wrap.canReply(keys[0], 2, uint32_t(start + 59999U))); + assert(wrap.canReply(keys[0], 2, uint32_t(start + 60000U))); + assert(!wrap.canReply(keys[1], 1, uint32_t(start + 9999U))); + assert(wrap.canReply(keys[1], 1, uint32_t(start + 10000U))); +} + +static void queueReserveUserOwnershipAndAck() { + MyMesh normal; auto& ordinary = normal.contact(3); + normal.clock.now = 100; normal.txt_send_timeout = 42; + uint32_t expected = 0, timeout = 0; + assert(normal.sendMessage(ordinary, 1, 0, "ordinary", expected, timeout) != MSG_SEND_FAILED); + assert(expected != 0 && normal.txt_send_timeout == normal.futureMillis(timeout)); + MyMesh m; auto& peer = m.contact(1); m._prefs.lost_reply = 2; + auto& user = m.expected_ack_table[0]; + user.ack = 10; user.expires_at = 123456; user.msg_sent = 20; + user.contact = &peer; user.reply_route = &m.serial; + user.retry_key[0] = 31; user.text_fingerprint[0] = 47; + const auto snapshot = user; + m.txt_send_timeout = 654321; + m.receive(peer, 7); + assert(m.sends == 1 && m.txt_send_timeout == 654321 && m.next_ack_idx == 3); + assert(memcmp(&user, &snapshot, sizeof(user)) == 0 && m.replacements == 0); + auto& automatic = m.expected_ack_table[1]; + assert(automatic.ack != 0 && automatic.contact == &peer && automatic.reply_route == NULL); + uint32_t ack = automatic.ack; ContactInfo* matched = NULL; + assert(m.processAck(reinterpret_cast(&ack), matched)); + assert(matched == &peer && automatic.ack == 0 && m.cancellations == 1); + assert(memcmp(&user, &snapshot, sizeof(user)) == 0 && m.serial.writes == 0); + assert(!m.processAck(reinterpret_cast(&ack), matched)); + for (auto& entry : m.expected_ack_table) { entry.ack = 1; entry.expires_at = 123456; } + m.clock.now = 60000; m.receive(peer, 8); assert(m.sends == 1); + m.expected_ack_table[1].ack = 0; + for (int available : {0, 1, 2}) { + m.manager.free = available; m.receive(peer, 8); assert(m.sends == 1); + } + m.manager.free = 3; m.receive(peer, 8); assert(m.sends == 2); + assert(m.txt_send_timeout == 654321 && m.replacements == 0); + for (int failure = 0; failure < 3; ++failure) { + MyMesh f; auto& p = f.contact(1); f._prefs.lost_reply = 1; f.txt_send_timeout = 1234; + if (failure == 0) f.allocation_available = false; + if (failure == 1) f.radio_available = false; + if (failure == 2) p.out_path_len = 254; + f.receive(p, 7); assert(f.sends == 0 && f.txt_send_timeout == 1234); + assert(f.manager.free == 16 && f.expected_ack_table[0].ack == 0); + f.allocation_available = true; f.radio_available = true; p.out_path_len = OUT_PATH_UNKNOWN; + f.receive(p, 7); assert(f.sends == 1 && f.last_answer == "No"); + } +} + +static void automaticAckReceivePreservesUserExpiry() { + for (bool encoded_path : {false, true}) { + for (uint32_t user_deadline : {uint32_t(1000), uint32_t(9000)}) { + MyMesh m; auto& owner = m.contact(1); auto& user_peer = m.contact(2); + m.clock.now = 100; m._prefs.lost_reply = 2; + auto& user = m.expected_ack_table[0]; + user.ack = 10; user.msg_sent = 20; user.expires_at = user_deadline; + user.contact = &user_peer; user.reply_route = &m.serial; + user.retry_key[0] = 31; user.text_fingerprint[0] = 47; + const auto snapshot = user; + m.txt_send_timeout = user_deadline; + m.receive(owner, 7); + auto& automatic = m.expected_ack_table[1]; + const uint32_t automatic_ack = automatic.ack; + assert(automatic_ack != 0 && automatic_ack != user.ack); + assert(m.txt_send_timeout == user_deadline); + assert(m.next_ack_expiry == std::min(user_deadline, automatic.expires_at)); + + mesh::Packet ack_packet; ack_packet.flood = true; + uint8_t ack_bytes[4], path[2] = {3, 4}; + memcpy(ack_bytes, &automatic_ack, sizeof(ack_bytes)); + if (encoded_path) { + assert(m.onContactPathRecv(owner, path, 2, path, 2, + PAYLOAD_TYPE_ACK, ack_bytes, sizeof(ack_bytes))); + assert(m.path_updates == 1 && owner.out_path_len == 2); + } else { + m.onAckRecv(&ack_packet, automatic_ack); + assert(ack_packet.do_not_retransmit && m.path_retries == 1); + } + // BaseChatMesh keeps its existing shared-timer ACK behavior. Companion + // owns each delivery's deadline separately and services it from loop(). + assert(m.txt_send_timeout == 0 && automatic.ack == 0); + assert(memcmp(&user, &snapshot, sizeof(user)) == 0); + assert(m.has_next_ack_expiry && m.next_ack_expiry == user_deadline); + assert(m.cancellations == 1 && m.serial.writes == 0 && m.next_ack_idx == 3); + + // A late duplicate cannot clear a newer shared timer or the user entry. + m.txt_send_timeout = 99999; + if (encoded_path) { + assert(m.onContactPathRecv(owner, path, 2, path, 2, + PAYLOAD_TYPE_ACK, ack_bytes, sizeof(ack_bytes))); + } else { + ack_packet.do_not_retransmit = false; + m.onAckRecv(&ack_packet, automatic_ack); + assert(!ack_packet.do_not_retransmit && m.path_retries == 1); + } + assert(m.txt_send_timeout == 99999 && m.cancellations == 1); + assert(memcmp(&user, &snapshot, sizeof(user)) == 0); + assert(m.has_next_ack_expiry && m.next_ack_expiry == user_deadline); + + // Expiry still works through the actual Companion service without the + // compatibility timer being involved, including after the automatic ACK. + m.txt_send_timeout = 0; + m.clock.now = user_deadline - 1; m.expireExpectedAcks(); + assert(memcmp(&user, &snapshot, sizeof(user)) == 0); + assert(m.has_next_ack_expiry && m.next_ack_expiry == user_deadline); + m.clock.now = user_deadline; m.expireExpectedAcks(); + assert(user.ack == 0 && !m.has_next_ack_expiry && m.next_ack_expiry == 0); + assert(m.serial.writes == 0 && m.cancellations == 1); + } + } +} + +static void localPolicyAndRemoteBoundary() { + MyMesh m; char reply[160] = {}; + assert(m.handleCommand("get lost.reply", 0, reply) && std::string(reply) == "> off"); + for (const char* value : {"no", "yes", "off"}) { + const std::string command = std::string("set lost.reply ") + value; + assert(m.handleCommand(command.c_str(), 0, reply)); + assert(std::string(reply) == std::string("> lost.reply ") + value); + } + assert(m.saves == 3); + for (const char* invalid : {"YES", "on", "yes now", "", "1"}) { + const std::string command = std::string("set lost.reply ") + invalid; + assert(m.handleCommand(command.c_str(), 0, reply)); + assert(std::string(reply).find("Error:") == 0 && m._prefs.lost_reply == 0 && m.saves == 3); + } + m.save_available = false; + assert(m.handleCommand("set lost.reply yes", 0, reply)); + assert(m._prefs.lost_reply == 0 && std::string(reply).find("Error:") == 0); + m.save_available = true; + auto& peer = m.contact(1); peer.flags = 0x10; + for (uint32_t timestamp : {uint32_t(0), uint32_t(1), uint32_t(0xffffffffU)}) { + reply[0] = 0; + m.onCLICommandRecv(peer, &m.incoming, timestamp, "set lost.reply yes", reply); + assert(m._prefs.lost_reply == 0 && m.saves == 4); + reply[0] = 0; + m.onCLICommandRecv(peer, &m.incoming, timestamp, "get lost.reply", reply); + assert(std::string(reply) == "Unknown command"); + } + assert(m.handleCommand("set lost.reply yes", 0, reply) && m._prefs.lost_reply == 2); + m.receive(peer, 7, "set lost.reply no"); assert(m._prefs.lost_reply == 2 && m.saves == 5 && m.sends == 0); +} +#else +// The actual gated MyMesh header fragment supplies neither runtime state nor +// a responder method in this build. The callbacks still admit normal text. +static void excludedFeature() { + MyMesh m; auto& peer = m.contact(1); m._prefs.lost_reply = 2; + for (uint32_t poll = 0; poll < 8; ++poll) { + m.clock.now = poll * 60000; m.receive(peer, poll); + } + assert(m.sends == 0 && m.queued == 8 && m.normal_marks == 8); + char reply[160] = {}; + for (const char* command : {"get lost.reply", "set lost.reply yes", "set lost.reply no", "set lost.reply off"}) { + assert(!m.handleCommand(command, 0, reply)); + assert(m.saves == 0 && m._prefs.lost_reply == 2 && reply[0] == 0); + } + LostSnapshot hidden; m.snapshot(hidden); + assert(hidden.lost_reply == 0 && !(hidden.capabilities & WebConfigServer::CAP_LOST_REPLY)); +} +#endif + +int main() { +#if MESH_ENABLE_LOST_REPLY + matchingAndOrdinaryInbox(); admissionAndLoops(); retriesCooldownAndFullKeys(); + queueReserveUserOwnershipAndAck(); automaticAckReceivePreservesUserExpiry(); + localPolicyAndRemoteBoundary(); +#else + excludedFeature(); +#endif + std::puts("PASS: Companion lost reply production paths"); +} diff --git a/test/fixtures/companion_prefs_storage/legacy_loader.inc b/test/fixtures/companion_prefs_storage/legacy_loader.inc index 1f5ef925c..ef6dc26b3 100644 --- a/test/fixtures/companion_prefs_storage/legacy_loader.inc +++ b/test/fixtures/companion_prefs_storage/legacy_loader.inc @@ -1,5 +1,6 @@ // Frozen sequential preference serializer from 54e5b0b99. -// Independent of the new storage table; keep its historical field order. +// Independent of the new storage table; historical fields stay unchanged. +// New append-only tails are added explicitly to this scalar reference. bool DataStore::loadPrefsLegacy(const char *filename, CompanionNodePrefs& _prefs, double& node_lat, double& node_lon) { @@ -13,6 +14,7 @@ bool DataStore::loadPrefsLegacy(const char *filename, // Older images have no independent debug preference. Never inherit a // runtime-on value when loading one of those images. loaded_prefs.usb_debug_enabled = 0; + loaded_prefs.lost_reply = 0; double loaded_lat = node_lat; double loaded_lon = node_lon; // The original image ended after ble_pin at byte 84. Later releases only @@ -81,6 +83,13 @@ bool DataStore::loadPrefsLegacy(const char *filename, 332, #else 235, +#endif +#ifdef TBEAM_1W + 243, +#elif defined(RP2040_PLATFORM) && defined(ENABLE_WIFI_INTERFACE) + 333, +#else + 236, #endif }; const uint32_t prefs_size = file.size(); @@ -229,6 +238,7 @@ bool DataStore::loadPrefsLegacy(const char *filename, sizeof(loaded_prefs.gps_sync_interval_hours)); readOptionalField(&loaded_prefs.usb_debug_enabled, sizeof(loaded_prefs.usb_debug_enabled)); + readOptionalField(&loaded_prefs.lost_reply, sizeof(loaded_prefs.lost_reply)); // Any bytes left over form only part of a historically appended field. // Preserve the file and defaults rather than treating that tail as EOF. @@ -237,6 +247,7 @@ bool DataStore::loadPrefsLegacy(const char *filename, file.close(); if (!success) return false; loaded_prefs.usb_debug_enabled = loaded_prefs.usb_debug_enabled == 1 ? 1 : 0; + loaded_prefs.lost_reply = loaded_prefs.lost_reply <= 2 ? loaded_prefs.lost_reply : 0; _prefs = loaded_prefs; node_lat = loaded_lat; node_lon = loaded_lon; diff --git a/test/fixtures/companion_prefs_storage/legacy_writer.inc b/test/fixtures/companion_prefs_storage/legacy_writer.inc index c30cf87be..8bbe0aa70 100644 --- a/test/fixtures/companion_prefs_storage/legacy_writer.inc +++ b/test/fixtures/companion_prefs_storage/legacy_writer.inc @@ -138,6 +138,7 @@ bool DataStore::savePrefsLegacy(const CompanionNodePrefs& _prefs, double node_la success = success && file.write((uint8_t *)&_prefs.bluetooth_enabled, 1) == 1; success = success && file.write((uint8_t *)&_prefs.gps_sync_interval_hours, 2) == 2; success = success && file.write((uint8_t *)&_prefs.usb_debug_enabled, 1) == 1; + success = success && file.write((uint8_t *)&_prefs.lost_reply, 1) == 1; #if defined(NRF52_PLATFORM) || defined(STM32_PLATFORM) || defined(ESP32_PLATFORM) || defined(RP2040_PLATFORM) success = file.commit(success); diff --git a/test/fixtures/room_receive_admission/test.cpp b/test/fixtures/room_receive_admission/test.cpp index d596401e0..e37e28e50 100644 --- a/test/fixtures/room_receive_admission/test.cpp +++ b/test/fixtures/room_receive_admission/test.cpp @@ -132,6 +132,9 @@ struct MyMesh : BaseChatMesh { std::vector> saved; MyMesh() { contacts[0].id.pub_key[0] = 77; contacts[1].id.pub_key[0] = 77; contacts[1].id.pub_key[31] = 1; } void markConnectionActive(const ContactInfo&) { ++active; } + // This admission suite keeps the new optional responder disabled; the + // enabled private reply path executes separately in its production suite. + void maybeReplyToLostQuestion(const ContactInfo&, uint32_t, const char*) {} bool scheduleContactWrite(const ContactInfo& from) { saved.emplace_back(from.sync_since, from.lastmod); return true; } int getOfflineQueueCapacity() const; Frame& offlineQueueFrameAt(int); diff --git a/test/test_client_acl_infrastructure.py b/test/test_client_acl_infrastructure.py index ec4fc8eb8..db990747a 100644 --- a/test/test_client_acl_infrastructure.py +++ b/test/test_client_acl_infrastructure.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 """Execute Room/Sensor ACL handlers and encrypted packet assembly with bounds.""" from pathlib import Path +import os import re import shutil import subprocess @@ -15,6 +16,18 @@ ROOT = Path(__file__).resolve().parents[1] FIXTURE = ROOT / "test/fixtures/client_acl_infrastructure/test_client_acl_infrastructure.cpp" +def room_mail_crypto_arguments(role): + if role == "sensor": + return [] + candidates = [Path(os.environ["MESHCORE_CRYPTO_DIR"])] if os.environ.get("MESHCORE_CRYPTO_DIR") else [] + candidates += sorted((ROOT / ".pio/libdeps").glob("*/Crypto")) + crypto = next((path for path in candidates if (path / "SHA256.cpp").is_file()), None) + if crypto is None: + raise RuntimeError("Install rweather/Crypto or set MESHCORE_CRYPTO_DIR (no hash mock fallback)") + return ["-DHOST_BUILD", "-I" + str(crypto), str(crypto / "SHA256.cpp"), + str(crypto / "Hash.cpp"), str(crypto / "Crypto.cpp")] + + def production_methods(role, transform=None): sensor = role == "sensor" path = ROOT / ("examples/simple_sensor/SensorMesh.cpp" if sensor @@ -28,7 +41,8 @@ def production_methods(role, transform=None): else " if (payload[0] == REQ_TYPE_GET_STATUS)") prefix = handler[:begin] # The new board protocol has its own admission/storage regression suite. - # Keep this legacy ACL/telemetry fixture on its original request families. + # Keep the complete mailbox prefix: its role/send gates also protect this + # authenticated request dispatcher, and use the actual protocol and store. if not sensor and "if (payload[0] == mesh::ROOM_BOARD_REQUEST_SUBTYPE)" in prefix: board = extract_braced(prefix, "if (payload[0] == mesh::ROOM_BOARD_REQUEST_SUBTYPE)") prefix = prefix.replace(board, "", 1) @@ -74,7 +88,8 @@ class ClientAclInfrastructureTest(unittest.TestCase): (work / "production.inc").write_text(production_methods(role, transform), encoding="ascii") binary = work / "acl.exe" command = [compiler, "-std=c++17", "-Wall", "-Wextra", "-Werror", "-Wno-unused-parameter", - "-I" + str(work), "-I" + str(ROOT / "test/fixtures/room_history_store"), "-I" + str(ROOT / "src"), str(FIXTURE), "-o", str(binary)] + "-I" + str(work), "-I" + str(ROOT / "test/fixtures/room_history_store"), "-I" + str(ROOT / "src"), + str(FIXTURE), *room_mail_crypto_arguments(role), "-o", str(binary)] if role == "sensor": command.insert(1, "-DTEST_SENSOR=1") if sys.platform.startswith("linux"): command[1:1] = ["-fsanitize=address,undefined", "-fno-sanitize-recover=all", "-fno-pie", "-no-pie"] @@ -87,6 +102,8 @@ class ClientAclInfrastructureTest(unittest.TestCase): run = self.execute(role) self.assertEqual(run.returncode, 0, run.stdout + run.stderr) self.assertIn("Room/Sensor ACL route, input, and permission checks passed", run.stdout) + if role == "room": + self.assertIn("Room mailbox guest, reader, writer and recipient-ban boundaries passed", run.stdout) decoded = 0 for line in run.stdout.splitlines(): if not line.startswith("LEGACY:"): continue @@ -116,6 +133,24 @@ class ClientAclInfrastructureTest(unittest.TestCase): return source.replace(" if (payload_len < 3) return 0;", "", 1) self.assertNotEqual(self.execute("room", old).returncode, 0) + def test_room_mailbox_inactive_guest_cannot_bypass_session_gate(self): + def old(source): + handler = extract_braced(source, "int MyMesh::handleRequest(") + mailbox = extract_braced(handler, "if (payload[0] == mesh::ROOM_MAIL_REQUEST_SUBTYPE)") + guard = "role == PERM_ACL_GUEST && sender->last_activity != 0" + self.assertIn(guard, mailbox) + return source.replace(mailbox, mailbox.replace(guard, "role == PERM_ACL_GUEST"), 1) + self.assertNotEqual(self.execute("room", old).returncode, 0) + + def test_room_mailbox_reader_cannot_bypass_send_permission(self): + def old(source): + handler = extract_braced(source, "int MyMesh::handleRequest(") + mailbox = extract_braced(handler, "if (payload[0] == mesh::ROOM_MAIL_REQUEST_SUBTYPE)") + guard = "role == PERM_ACL_READ_WRITE || role == PERM_ACL_ADMIN" + self.assertIn(guard, mailbox) + return source.replace(mailbox, mailbox.replace(guard, "true"), 1) + self.assertNotEqual(self.execute("room", old).returncode, 0) + def test_old_sensor_truncated_packet_overread_is_rejected(self): def old(source): self.assertIn(" if (len < 5) return;", source) diff --git a/test/test_companion_bluetooth_persistence.py b/test/test_companion_bluetooth_persistence.py index 01bc261b5..26ffc2498 100644 --- a/test/test_companion_bluetooth_persistence.py +++ b/test/test_companion_bluetooth_persistence.py @@ -32,13 +32,13 @@ int main(){ assert(mesh.savePrefs()); const auto on_disk=mesh.store.fs.files["/new_prefs"]; #if defined(TBEAM_1W) - assert(on_disk.size()==242); + assert(on_disk.size()==243); #elif defined(RP2040_PLATFORM) && defined(ENABLE_WIFI_INTERFACE) - assert(on_disk.size()==332); + assert(on_disk.size()==333); #else - assert(on_disk.size()==235); + assert(on_disk.size()==236); #endif - const size_t bluetooth_offset=on_disk.size()-4; + const size_t bluetooth_offset=on_disk.size()-5; assert(on_disk[bluetooth_offset]==1&&on_disk.back()==0); // Both choices survive a fresh instance reading the actual on-device image. for(bool enabled : {false,true,false}){ diff --git a/test/test_companion_identity_cli.py b/test/test_companion_identity_cli.py index a7c01bbaf..1483d8e35 100644 --- a/test/test_companion_identity_cli.py +++ b/test/test_companion_identity_cli.py @@ -180,7 +180,7 @@ class CompanionIdentityCliTests(unittest.TestCase): terminal = method(source, 'void MyMesh::handleTerminalCommand(') self.assertIn('handleLocalControlCommand(command, local_reply, sizeof(local_reply))', terminal) self.assertIn('terminalOutput().printf(" -> %s\\r\\n", local_reply);', terminal) - self.assertIn('terminalOutput().print(" get public.key\\r\\n");', terminal) + self.assertIn('" get public.key\\r\\n"', terminal) shared = method(source, 'bool MyMesh::handleCommand(') self.assertIn('if (handleLocalControlCommand(command, reply, reply_capacity)) return true;', shared) self.assertIn('return handleCommand(command, 0, reply);', diff --git a/test/test_companion_lost_reply.py b/test/test_companion_lost_reply.py new file mode 100644 index 000000000..290d5875c --- /dev/null +++ b/test/test_companion_lost_reply.py @@ -0,0 +1,99 @@ +#!/usr/bin/env python3 +"""Exercise actual Companion private receive, reply send and local CLI paths.""" + +from pathlib import Path +import os +import re +import shutil +import subprocess +import sys +import tempfile +import unittest + +from test_replay_reset_integration import extract_braced + +ROOT = Path(__file__).resolve().parents[1] +FIXTURE = ROOT / "test/fixtures/companion_lost_reply.cpp" +SANITIZERS = (["-fsanitize=address,undefined", "-fno-sanitize-recover=all", + "-fno-pie", "-no-pie"] if sys.platform.startswith("linux") else []) + + +class CompanionLostReplyTests(unittest.TestCase): + def test_actual_private_callbacks_reply_transport_and_local_config(self): + compiler = os.environ.get("CXX") or shutil.which("g++") or shutil.which("clang++") + if compiler is None: + self.skipTest("a host C++ compiler is required") + source = (ROOT / "examples/companion_radio/MyMesh.cpp").read_text() + header = (ROOT / "examples/companion_radio/MyMesh.h").read_text() + base = (ROOT / "src/helpers/BaseChatMesh.cpp").read_text() + methods = "#if MESH_ENABLE_LOST_REPLY\n" + extract_braced( + source, "void MyMesh::maybeReplyToLostQuestion(") + "\n#endif\n" + methods += "\n".join(extract_braced(source, signature) for signature in ( + "void MyMesh::onMessageRecv(", + "void MyMesh::onCLICommandRecv(", "bool MyMesh::onSignedMessageRecv(", + "void MyMesh::onChannelMessageRecv(", "void MyMesh::clearExpectedAck(", + "void MyMesh::expireExpectedAcks(", "bool MyMesh::processAck(", + )) + methods += "\n" + "\n".join(extract_braced(base, signature).replace( + "BaseChatMesh::", "MyMesh::") for signature in ( + "mesh::Packet* BaseChatMesh::composeMsgPacket(", + "int BaseChatMesh::sendMessage(", + "int BaseChatMesh::sendMessageDetached(", + "void BaseChatMesh::onAckRecv(", + "bool BaseChatMesh::onContactPathRecv(", + )) + direct = extract_braced(source, "bool MyMesh::handleDirectCommand(") + direct_prefix = direct[:direct.index("#ifdef MESH_BUTTON_AUDIO_HIL")] + methods += "\n" + direct_prefix + " return false;\n}\n" + guard = re.search(r"if \(sender_timestamp == 0 && handleDirectCommand\([^\n]+", source) + self.assertIsNotNone(guard) + methods += "\nbool MyMesh::handleCommand(const char* command, uint32_t sender_timestamp, char* reply) {\n" + methods += " const size_t reply_capacity = 160;\n " + guard.group() + methods += '\n return false;\n}\n' + snapshot = extract_braced(source, "void MyMesh::getNodeSnapshot(") + saved = re.search(r"#if MESH_ENABLE_LOST_REPLY\n s\.lost_reply[\s\S]*?#endif", snapshot) + capability = re.search(r"#if MESH_ENABLE_LOST_REPLY\n s\.capabilities \|=[\s\S]*?#endif", snapshot) + self.assertIsNotNone(saved) + self.assertIsNotNone(capability) + methods += "\nvoid MyMesh::snapshot(LostSnapshot& s) {\n" + saved.group() + "\n" + capability.group() + "\n}\n" + include = re.search(r"#if MESH_ENABLE_LOST_REPLY\n#include \n#endif", header) + state = re.search(r"#if MESH_ENABLE_LOST_REPLY\n mesh::companion::LostReplyLimiter[\s\S]*?#endif", header) + self.assertIsNotNone(include) + self.assertIsNotNone(state) + constants = "\n".join(re.findall( + r"^#define (?:EXPECTED_ACK_[A-Z_]+|PUSH_CODE_SEND_CONFIRMED|RESP_CODE_CHANNEL_MSG_RECV(?:_V3)?|PUSH_CODE_MSG_WAITING|EMERGENCY_CLIENT_REPEAT_[A-Z_]+)\s+.+$", + source, re.MULTILINE)) + with tempfile.TemporaryDirectory(prefix="meshcore-lost-reply-") as directory: + work = Path(directory) + (work / "production_constants.inc").write_text(constants, encoding="ascii") + (work / "production_entry.inc").write_text( + extract_braced(header, "struct AckTableEntry") + ";\n", encoding="ascii") + (work / "production_methods.inc").write_text(methods, encoding="ascii") + (work / "production_lost_include.inc").write_text(include.group(), encoding="ascii") + (work / "production_lost_state.inc").write_text(state.group(), encoding="ascii") + variants = ((0, 0, 0, []), (0, 0, 1, []), (1, 0, 0, []), (1, 1, 0, []), + (0, 0, 0, ["-DSTM32_PLATFORM=1", "-DMESH_ENABLE_LOST_REPLY=1"]), + (0, 0, 0, ["-DSTM32_PLATFORM=1"]), + (0, 0, 0, ["-DMESH_ENABLE_LOST_REPLY=0"])) + for number, (one_key, shared, terminal, feature_flags) in enumerate(variants): + with self.subTest(one_key=one_key, shared=shared, terminal=terminal, flags=feature_flags): + binary = work / f"lost-{number}.exe" + compiled = subprocess.run([ + compiler, "-std=c++11", "-Wall", "-Wextra", "-Werror", + "-Wno-unused-parameter", "-Wno-unused-variable", *SANITIZERS, + f"-DMESH_ENABLE_ONE_KEY_DM={one_key}", + f"-DONE_KEY_DM_SHARED_OFFLINE_QUEUE={shared}", + *(["-DENABLE_USB_INTERFACE=1"] if terminal else []), + *feature_flags, + "-DCOMPANION_FEATURE_NOTIFICATIONS=0", + f"-I{work}", f"-I{ROOT / 'src'}", + f"-I{ROOT / 'examples/companion_radio'}", str(FIXTURE), "-o", str(binary), + ], capture_output=True, text=True, timeout=60) + self.assertEqual(compiled.returncode, 0, compiled.stdout + compiled.stderr) + checked = subprocess.run([str(binary)], capture_output=True, text=True, timeout=20) + self.assertEqual(checked.returncode, 0, checked.stdout + checked.stderr) + self.assertIn("PASS: Companion lost reply production paths", checked.stdout) + + +if __name__ == "__main__": + unittest.main() diff --git a/test/test_companion_offline_delivery.py b/test/test_companion_offline_delivery.py index c020e453e..5503b91f8 100644 --- a/test/test_companion_offline_delivery.py +++ b/test/test_companion_offline_delivery.py @@ -2,7 +2,9 @@ """Run real Companion inbox downloads against bounded UART/TCP transports.""" from pathlib import Path +import configparser import re +import shlex import subprocess import tempfile import unittest @@ -24,7 +26,9 @@ HARNESS = r''' #include #define DISPLAY_CLASS TestDisplay #define MESH_DEBUG_PRINTLN(...) ((void)0) +#ifndef OFFLINE_QUEUE_SIZE #define OFFLINE_QUEUE_SIZE 256 +#endif @CONSTANTS@ @STREAM@ std::deque WiFiServer::incoming; @@ -284,6 +288,33 @@ int main() { class CompanionOfflineDeliveryTest(unittest.TestCase): + def test_tag_ble_capacity_preserves_contacts_channels_and_full_queue(self): + config = configparser.ConfigParser(interpolation=None) + config.read(ROOT / "variants/rak_wismesh_tag/platformio.ini") + flags = shlex.split(config["env:RAK_WisMesh_Tag_companion_radio_ble"]["build_flags"]) + self.assertEqual(flags.count("OFFLINE_QUEUE_SIZE=240"), 1) + self.assertIn("MAX_CONTACTS=350", flags) + self.assertIn("MAX_GROUP_CHANNELS=40", flags) + # Run the production Full overlay without resolving or building any + # PlatformIO environment. It must explicitly replace a BLE override + # if a future Full recipe inherits the BLE base instead of USB. + result = subprocess.run(["bash", "-c", r''' +set -euo pipefail +source build.sh +pio() { echo "unexpected PlatformIO invocation" >&2; return 127; } +PIO_ENV_PLATFORM_BY_NAME[RAK_WisMesh_Tag_companion_radio_full]=NRF52_PLATFORM +PLATFORMIO_BUILD_FLAGS='-DMAX_CONTACTS=350 -DMAX_GROUP_CHANNELS=40' +pio_env_option_contains() { return 1; } +apply_companion_radio_full_profile RAK_WisMesh_Tag_companion_radio_full RAK_WisMesh_Tag_companion_radio_usb +printf '%s\n' "$PLATFORMIO_BUILD_FLAGS" "$PLATFORMIO_BUILD_UNFLAGS" +'''], cwd=ROOT, text=True, capture_output=True, timeout=20) + self.assertEqual(result.returncode, 0, result.stdout + result.stderr) + self.assertIn("-DMAX_CONTACTS=350", result.stdout) + self.assertIn("-DMAX_GROUP_CHANNELS=40", result.stdout) + self.assertIn("-DOFFLINE_QUEUE_SIZE=256", result.stdout) + self.assertIn("-DOTA_SHARED_COMPANION_QUEUE=1", result.stdout) + self.assertIn("-D OFFLINE_QUEUE_SIZE=240", result.stdout) + def test_real_download_paths_in_every_queue_layout(self): source = (ROOT / "examples/companion_radio/MyMesh.cpp").read_text() header = (ROOT / "examples/companion_radio/MyMesh.h").read_text() @@ -312,6 +343,7 @@ class CompanionOfflineDeliveryTest(unittest.TestCase): configurations = { "circular": [], "held-dm": ["-DONE_KEY_DM_SHARED_OFFLINE_QUEUE=1"], + "tag-ble": ["-DONE_KEY_DM_SHARED_OFFLINE_QUEUE=1", "-DOFFLINE_QUEUE_SIZE=240"], "mota": ["-DOTA_SHARED_COMPANION_QUEUE=1"], "psram": ["-DESP32_PLATFORM=1", "-DBOARD_HAS_PSRAM=1"], } diff --git a/test/test_companion_preferences_transaction.py b/test/test_companion_preferences_transaction.py index 662db367c..f215b23d2 100644 --- a/test/test_companion_preferences_transaction.py +++ b/test/test_companion_preferences_transaction.py @@ -58,6 +58,7 @@ int main(int argc,char** argv){ original.one_key_dm_enabled=1; original.gps_sync_interval_hours=336; original.usb_debug_enabled=1; + original.lost_reply=2; #ifdef TBEAM_1W strcpy(original.fan_mode,"on");original.fan_lo=33;original.fan_hi=42; #endif @@ -96,6 +97,7 @@ int main(int argc,char** argv){ assert(loaded.one_key_dm_enabled==1); assert(loaded.gps_sync_interval_hours==336); assert(loaded.usb_debug_enabled==1); + assert(loaded.lost_reply==2); #ifdef TBEAM_1W assert(!strcmp(loaded.fan_mode,"on")&&loaded.fan_lo==33&&loaded.fan_hi==42); #endif @@ -162,6 +164,7 @@ int main(int argc,char** argv){ assert(reboot.loadPrefs(loaded,lat,lon)); assert(loaded.freq==original.freq&&loaded.ble_pin==original.ble_pin); assert(lat==47.1&&lon==-122.2); + assert(loaded.lost_reply==2); #endif } else if(scenario==3){ // Copy the real adapter-bearing preferences from dirty storage. This @@ -200,7 +203,7 @@ int main(int argc,char** argv){ } else if(scenario==7){ // Pre-consent image: all earlier settings survive with default-off consent. DataStore legacy;legacy.fs.files["/new_prefs"]=disk; - legacy.fs.files["/new_prefs"].resize(disk.size()-5); + legacy.fs.files["/new_prefs"].resize(disk.size()-6); CompanionNodePrefs loaded;double lat=0,lon=0; assert(legacy.loadPrefs(loaded,lat,lon)); assert(loaded.flood_retry_advert_enabled==0); @@ -209,7 +212,7 @@ int main(int argc,char** argv){ // The previous complete image loads with the board policy even when the // receiving prefs object previously held an explicit configured interval. DataStore legacy;legacy.fs.files["/new_prefs"]=disk; - legacy.fs.files["/new_prefs"].resize(disk.size()-3); + legacy.fs.files["/new_prefs"].resize(disk.size()-4); CompanionNodePrefs loaded;loaded.gps_sync_interval_hours=24;loaded.usb_debug_enabled=1; double lat=0,lon=0; assert(legacy.loadPrefs(loaded,lat,lon)); @@ -217,12 +220,12 @@ int main(int argc,char** argv){ assert(loaded.usb_debug_enabled==0); // Half of the two-byte append is never accepted as a complete image. DataStore torn;torn.fs.files["/new_prefs"]=disk; - torn.fs.files["/new_prefs"].resize(disk.size()-2); + torn.fs.files["/new_prefs"].resize(disk.size()-3); assert(!torn.loadPrefsInt("/new_prefs",loaded,lat,lon)); // The complete published GPS image is accepted without borrowing either // GPS byte as the new debug preference. DataStore gps_image;gps_image.fs.files["/new_prefs"]=disk; - gps_image.fs.files["/new_prefs"].resize(disk.size()-1); + gps_image.fs.files["/new_prefs"].resize(disk.size()-2); loaded.usb_debug_enabled=1; assert(gps_image.loadPrefsInt("/new_prefs",loaded,lat,lon)); assert(loaded.gps_sync_interval_hours==336&&loaded.usb_debug_enabled==0); diff --git a/test/test_companion_prefs_image.py b/test/test_companion_prefs_image.py index a8f769b6d..1c16833d0 100644 --- a/test/test_companion_prefs_image.py +++ b/test/test_companion_prefs_image.py @@ -40,6 +40,7 @@ TAIL_FIELDS = ( ('flood_retry_group_max_path', 1), ('flood_retry_advert_enabled', 1), ('one_key_dm_enabled', 1), ('bluetooth_enabled', 1), ('gps_sync_interval_hours', 2), ('usb_debug_enabled', 1), + ('lost_reply', 1), ) OPTIONAL_FIELDS = ( ('defined(TBEAM_1W)', (('fan_mode', 5), ('fan_lo', 1), ('fan_hi', 1))), @@ -48,6 +49,7 @@ OPTIONAL_FIELDS = ( ) TESTS = r''' +#include #include static void seed(CompanionNodePrefs& prefs, uint32_t& random) { @@ -70,11 +72,11 @@ static std::vector golden(const CompanionNodePrefs& prefs, }; @GOLDEN@ #if defined(TBEAM_1W) - assert(bytes.size() == 242); + assert(bytes.size() == 243); #elif defined(RP2040_PLATFORM) && defined(ENABLE_WIFI_INTERFACE) - assert(bytes.size() == 332); + assert(bytes.size() == 333); #else - assert(bytes.size() == 235); + assert(bytes.size() == 236); #endif return bytes; } @@ -102,19 +104,122 @@ int main() { } CompanionNodePrefs original; + assert(original.lost_reply == 0); strcpy(original.node_name, "durable image"); original.freq = 915.25f; original.ble_pin = 123456; original.bluetooth_enabled = 1; original.usb_debug_enabled = 1; original.gps_sync_interval_hours = 336; + original.lost_reply = 2; DataStore initial; assert(initial.savePrefs(original, 47.125, -122.25)); const auto before = golden(original, 47.125, -122.25); assert(initial.fs.files.at("/new_prefs") == before); + + // Every complete historical wire boundary stays readable, and an old + // image always disables the new opt-in response even if live RAM was on. + const std::vector legacy_sizes = { + 84, 85, 90, 91, 92, 93, 140, 141, 142, 143, 144, 155, + 156, 157, 158, 159, 191, 193, 200, 207, 214, 215, 226, +#if defined(TBEAM_1W) + // The generic 231-byte compatibility boundary also ends at TBeam's + // complete fan-mode string; preserve that existing accepted image. + 231, 233, 237, 238, 239, 241, 242 +#elif defined(RP2040_PLATFORM) && defined(ENABLE_WIFI_INTERFACE) + 323, 327, 328, 329, 331, 332 +#else + 230, 231, 232, 234, 235 +#endif + }; + for (size_t length : legacy_sizes) { + DataStore reboot; + auto historical = before; historical.resize(length); + reboot.fs.files["/new_prefs"] = historical; + CompanionNodePrefs live; live.lost_reply = 2; + live.getCustom()->setByKey("local_tag", "unchanged"); + double lat = 1, lon = 2; + assert(reboot.loadPrefsInt("/new_prefs", live, lat, lon)); + assert(live.lost_reply == 0 && live.ble_pin == original.ble_pin); + assert(live.freq == original.freq && !strcmp(live.node_name, original.node_name)); + assert(lat == 47.125 && lon == -122.25); + assert(reboot.fs.files.at("/new_prefs") == historical); + char tag[16] = {}; + assert(live.getCustom()->getByKey("local_tag", tag, sizeof(tag))); + assert(!strcmp(tag, "unchanged")); + ++comparisons; + } + // The accepted-size table is an exact allowlist. Check every length through + // a full extra byte range, including sizes that could alias legacy values + // if the underlying file size were accidentally narrowed with the table. + std::vector accepted_sizes = legacy_sizes; + accepted_sizes.push_back(before.size()); + for (size_t length = 0; length <= before.size() + 256; ++length) { + DataStore reboot; + auto candidate = before; + candidate.resize(length); + reboot.fs.files["/new_prefs"] = candidate; + CompanionNodePrefs live; + live.freq = 920.5f; + live.lost_reply = 1; + live.getCustom()->setByKey("length_tag", "unchanged"); + double lat = 1, lon = 2; + const bool expected = std::find(accepted_sizes.begin(), accepted_sizes.end(), + length) != accepted_sizes.end(); + assert(reboot.loadPrefsInt("/new_prefs", live, lat, lon) == expected); + if (expected) { + assert(live.freq == original.freq); + assert(live.lost_reply == (length == before.size() ? 2 : 0)); + assert(lat == 47.125 && lon == -122.25); + } else { + assert(live.freq == 920.5f && live.lost_reply == 1); + assert(lat == 1 && lon == 2); + } + char tag[16] = {}; + assert(live.getCustom()->getByKey("length_tag", tag, sizeof(tag))); + assert(!strcmp(tag, "unchanged")); + assert(reboot.fs.files.at("/new_prefs") == candidate); + ++comparisons; + } + // All 256 byte encodings are preserved by the append-only serializer. + // Only off/no/yes are accepted on reboot; corrupt values normalize off + // without erasing radio settings or changing the committed image. + for (unsigned value = 0; value < 256; ++value) { + CompanionNodePrefs saved; + assert(saved.copyPersistedValuesFrom(original)); + saved.lost_reply = static_cast(value); + DataStore writer; + assert(writer.savePrefs(saved, 47.125, -122.25)); + const auto disk = writer.fs.files.at("/new_prefs"); + assert(disk.back() == value); + assert(std::equal(disk.begin(), disk.end() - 1, before.begin())); + DataStore reboot; reboot.fs.files["/new_prefs"] = disk; + CompanionNodePrefs live; live.lost_reply = 2; + double lat = 1, lon = 2; + assert(reboot.loadPrefsInt("/new_prefs", live, lat, lon)); + assert(live.lost_reply == (value <= 2 ? value : 0)); + assert(live.ble_pin == original.ble_pin && live.freq == original.freq); + assert(live.gps_sync_interval_hours == 336 && live.usb_debug_enabled == 1); + assert(lat == 47.125 && lon == -122.25); + assert(reboot.fs.files.at("/new_prefs") == disk); + ++comparisons; + } + { + DataStore torn; torn.fs.files["/new_prefs"] = before; + torn.fs.fail_read_after = static_cast(before.size() - 1); + CompanionNodePrefs live; live.lost_reply = 1; live.freq = 920.5f; + strcpy(live.node_name, "live unchanged"); + double lat = 1, lon = 2; + assert(!torn.loadPrefsInt("/new_prefs", live, lat, lon)); + assert(live.lost_reply == 1 && live.freq == 920.5f); + assert(!strcmp(live.node_name, "live unchanged") && lat == 1 && lon == 2); + assert(torn.fs.files.at("/new_prefs") == before); + ++comparisons; + } CompanionNodePrefs changed; assert(changed.copyPersistedValuesFrom(original)); strcpy(changed.node_name, "replacement image"); changed.freq = 910.5f; changed.usb_debug_enabled = 0; changed.gps_sync_interval_hours = 24; + changed.lost_reply = 1; const auto after = golden(changed, 42.25, -121.125); // Every possible short write and readback, including every tail byte, @@ -166,6 +271,7 @@ int main() { assert(!strcmp(loaded.node_name, changed.node_name)); assert(loaded.freq == changed.freq && loaded.ble_pin == changed.ble_pin); assert(loaded.gps_sync_interval_hours == 24 && loaded.usb_debug_enabled == 0); + assert(loaded.lost_reply == 1); assert(lat == 42.25 && lon == -121.125); #if defined(STM32_PLATFORM) @@ -208,10 +314,10 @@ class CompanionPrefsImageTests(unittest.TestCase): method(source, signature) for signature in ( 'bool DataStore::loadPrefs(', 'bool DataStore::loadPrefsInt(') ) + '\n' + save - for suffix, capacity in (('TooSmall', 234), ('TooLarge', 236)): + for suffix, capacity in (('TooSmall', 235), ('TooLarge', 237)): variant = save.replace('DataStore::savePrefs(', 'DataStore::savePrefs' + suffix + '(', 1) - self.assertIn('uint8_t image[235];', variant) - variant = variant.replace('uint8_t image[235];', f'uint8_t image[{capacity}];', 1) + self.assertIn('uint8_t image[236];', variant) + variant = variant.replace('uint8_t image[236];', f'uint8_t image[{capacity}];', 1) methods += '\n#if defined(STM32_PLATFORM)\n' + variant + '\n#endif\n' code = HARNESS.split('int main(')[0].replace('@METHODS@', methods) code = code.replace(' bool savePrefs(const CompanionNodePrefs&, double, double);', @@ -219,7 +325,7 @@ class CompanionPrefsImageTests(unittest.TestCase): ' bool savePrefsTooSmall(const CompanionNodePrefs&, double, double);\n' ' bool savePrefsTooLarge(const CompanionNodePrefs&, double, double);') self.assertEqual(sum(size for _, size in WIRE_FIELDS), 226) - self.assertEqual(sum(size for _, size in TAIL_FIELDS), 9) + self.assertEqual(sum(size for _, size in TAIL_FIELDS), 10) generated = {} for seed in (False, True): rows = [field_code(WIRE_FIELDS, seed)] diff --git a/test/test_companion_prefs_tail.py b/test/test_companion_prefs_tail.py index 1fcee61c0..ea5d537f7 100644 --- a/test/test_companion_prefs_tail.py +++ b/test/test_companion_prefs_tail.py @@ -19,6 +19,7 @@ LEGACY_TAIL = r''' success = success && file.write((uint8_t *)&_prefs.bluetooth_enabled, 1) == 1; success = success && file.write((uint8_t *)&_prefs.gps_sync_interval_hours, 2) == 2; success = success && file.write((uint8_t *)&_prefs.usb_debug_enabled, 1) == 1; + success = success && file.write((uint8_t *)&_prefs.lost_reply, 1) == 1; ''' TESTS = r''' @@ -30,6 +31,7 @@ int main() { original.flood_retry_group_max_path=2; original.flood_retry_advert_enabled=1; original.one_key_dm_enabled=1; original.bluetooth_enabled=0; original.gps_sync_interval_hours=336; original.usb_debug_enabled=1; + original.lost_reply=2; #ifdef TBEAM_1W strcpy(original.fan_mode,"on"); original.fan_lo=32; original.fan_hi=45; #endif @@ -48,24 +50,27 @@ int main() { prefs.bluetooth_enabled=uint8_t(value+89); prefs.gps_sync_interval_hours=uint16_t(value*257); prefs.usb_debug_enabled=uint8_t(value+103); + prefs.lost_reply=uint8_t(value); DataStore compact, legacy; assert(compact.savePrefs(prefs,47.1,-122.2)); assert(legacy.savePrefsLegacy(prefs,47.1,-122.2)); const auto& image=compact.fs.files["/new_prefs"]; assert(image==legacy.fs.files["/new_prefs"]); #if defined(TBEAM_1W) - assert(image.size()==242); + assert(image.size()==243); #elif defined(RP2040_PLATFORM) && defined(ENABLE_WIFI_INTERFACE) - assert(image.size()==332); + assert(image.size()==333); #else - assert(image.size()==235); + assert(image.size()==236); #endif const uint8_t expected[]={prefs.flood_retry_attempts,prefs.flood_retry_max_path, prefs.flood_retry_group_max_path,prefs.flood_retry_advert_enabled, - prefs.one_key_dm_enabled,prefs.bluetooth_enabled,0,0,prefs.usb_debug_enabled}; - assert(!memcmp(image.data()+image.size()-9,expected,6)); - assert(!memcmp(image.data()+image.size()-3,&prefs.gps_sync_interval_hours,2)); - assert(image.back()==prefs.usb_debug_enabled); + prefs.one_key_dm_enabled,prefs.bluetooth_enabled,0,0,prefs.usb_debug_enabled, + prefs.lost_reply}; + assert(!memcmp(image.data()+image.size()-10,expected,6)); + assert(!memcmp(image.data()+image.size()-4,&prefs.gps_sync_interval_hours,2)); + assert(image[image.size()-2]==prefs.usb_debug_enabled); + assert(image.back()==prefs.lost_reply); } DataStore initial; assert(initial.savePrefs(original,47.1,-122.2)); const auto disk=initial.fs.files["/new_prefs"]; @@ -73,6 +78,7 @@ int main() { strcpy(changed.node_name,"new complete image"); changed.freq=910.5f; changed.flood_retry_attempts=7; changed.bluetooth_enabled=1; changed.gps_sync_interval_hours=24; changed.usb_debug_enabled=0; + changed.lost_reply=1; auto expectOld=[&](DataStore& store) { assert(store.fs.files["/new_prefs"]==disk); assert(!store.fs.exists("/new_prefs.tmp")); @@ -83,13 +89,14 @@ int main() { assert(loaded.freq==original.freq && loaded.ble_pin==original.ble_pin); assert(loaded.flood_retry_attempts==4 && loaded.bluetooth_enabled==0); assert(loaded.gps_sync_interval_hours==336 && loaded.usb_debug_enabled==1); + assert(loaded.lost_reply==2); assert(lat==47.1 && lon==-122.2); }; // A short return at each boundary of the single final write must abort the // transaction, including either byte of the two-byte GPS field. - for (unsigned boundary=0; boundary<9; ++boundary) { + for (unsigned boundary=0; boundary<10; ++boundary) { DataStore store; store.fs.files["/new_prefs"]=disk; - store.fs.fail_write_after=int(disk.size()-9+boundary); + store.fs.fail_write_after=int(disk.size()-10+boundary); assert(!store.savePrefs(changed,42.3,-121.2)); expectOld(store); store.fs.fail_write_after=-1; assert(store.savePrefs(changed,42.3,-121.2)); @@ -97,9 +104,9 @@ int main() { } // Fully written bytes still cannot replace the live image until readback // verifies every final-tail boundary. LittleFS's retries also must fail. - for (unsigned boundary=0; boundary<9; ++boundary) { + for (unsigned boundary=0; boundary<10; ++boundary) { DataStore store; store.fs.files["/new_prefs"]=disk; - store.fs.fail_read_after=int(disk.size()-9+boundary); + store.fs.fail_read_after=int(disk.size()-10+boundary); assert(!store.savePrefs(changed,42.3,-121.2)); expectOld(store); } { @@ -123,6 +130,7 @@ int main() { assert(!strcmp(loaded.node_name,changed.node_name)); assert(loaded.flood_retry_attempts==7 && loaded.bluetooth_enabled==1); assert(loaded.gps_sync_interval_hours==24 && loaded.usb_debug_enabled==0); + assert(loaded.lost_reply==1); assert(lat==42.3 && lon==-121.2); } ''' diff --git a/test/test_companion_prefs_values.py b/test/test_companion_prefs_values.py index 3aa67a737..6df510dd4 100644 --- a/test/test_companion_prefs_values.py +++ b/test/test_companion_prefs_values.py @@ -36,9 +36,9 @@ static size_t adapterOffset(const CompanionNodePrefs& prefs) { // The value helper does not copy the adapters or their inter-field padding. // Use the complete object's byte representation for bounded observation. const uintptr_t first = reinterpret_cast(&prefs); - const uintptr_t last = reinterpret_cast(&prefs.usb_debug_enabled); + const uintptr_t last = reinterpret_cast(&prefs.lost_reply); assert(last >= first && last - first < sizeof(prefs)); - return static_cast(last - first) + sizeof(prefs.usb_debug_enabled); + return static_cast(last - first) + sizeof(prefs.lost_reply); } static std::vector adapterBytes(const CompanionNodePrefs& prefs) { @@ -132,7 +132,7 @@ int main() { 4, 32, 4, 8, 8, 4, 1, 1, 1, 1, 4, 1, 1, 1, 1, 4, 1, 1, 1, 1, 4}; assert(expected && READ_CALLS == mandatory); - unsigned optional_fields = 45; + unsigned optional_fields = 46; #ifdef TBEAM_1W optional_fields += 3; #endif @@ -185,7 +185,7 @@ class CompanionPrefsValuesTests(unittest.TestCase): r'^\s*(?:float|char|u?int(?:8|16|32)_t)\s+([A-Za-z_][A-Za-z_0-9]*)', prefix, re.M) self.assertEqual(declarations[0], 'airtime_factor') - self.assertEqual(declarations[-1], 'usb_debug_enabled') + self.assertEqual(declarations[-1], 'lost_reply') optional = { 'fan_mode': 'TBEAM_1W', 'fan_lo': 'TBEAM_1W', 'fan_hi': 'TBEAM_1W', 'wifi_ssid': 'defined(RP2040_PLATFORM) && defined(ENABLE_WIFI_INTERFACE)', diff --git a/test/test_companion_settings_persistence_contract.py b/test/test_companion_settings_persistence_contract.py index 29d269792..b9f7bb921 100644 --- a/test/test_companion_settings_persistence_contract.py +++ b/test/test_companion_settings_persistence_contract.py @@ -122,7 +122,12 @@ class CompanionSettingsPersistenceContractTests(unittest.TestCase): "bool copyPersistedValuesFrom(const CompanionNodePrefs& source)", ) self.assertIn("reinterpret_cast(&airtime_factor)", copy) - self.assertIn("reinterpret_cast(&usb_debug_enabled)", copy) + # The appended lost-reply byte is the last persisted value. Both + # snapshots must stop there before either runtime adapter begins. + self.assertIn("reinterpret_cast(&lost_reply)", copy) + self.assertIn("reinterpret_cast(&values.lost_reply)", copy) + self.assertIn("+ sizeof(lost_reply)", copy) + self.assertIn("end - begin == size - sizeof(values.lost_reply)", copy) self.assertIn("reinterpret_cast(&values.radio)", copy) self.assertIn("reinterpret_cast(&values.custom)", copy) self.assertIn("size <= radio_begin - begin", copy) diff --git a/test/test_companion_usb_logging.py b/test/test_companion_usb_logging.py index a61522782..289404fb7 100644 --- a/test/test_companion_usb_logging.py +++ b/test/test_companion_usb_logging.py @@ -55,15 +55,17 @@ int main(){ assert(node.savePrefs()); const auto original=node.store.fs.files["/new_prefs"]; #if defined(TBEAM_1W) - assert(original.size()==242); + assert(original.size()==243); #elif defined(RP2040_PLATFORM) && defined(ENABLE_WIFI_INTERFACE) - assert(original.size()==332); + assert(original.size()==333); #else - assert(original.size()==235); + assert(original.size()==236); #endif - assert(original.back()==0&&original[original.size()-4]==0); - assert(original[original.size()-3]==1&&original[original.size()-2]==1); - assert(original[original.size()-5]==1&&original[158]==1); + const size_t debug_offset=original.size()-2; + assert(original[debug_offset]==0&&original[debug_offset-3]==0); + assert(original[debug_offset-2]==1&&original[debug_offset-1]==1); + assert(original[debug_offset-4]==1&&original[158]==1); + assert(original.back()==0); char reply[160]={}; for(const char* malformed : {"set usb.debug","set usb.debug ", "set usb.debug 1","set usb.debug ON","set usb.debug on ", @@ -81,8 +83,9 @@ int main(){ assert(!strncmp(reply,"OK - USB debug on (saved)",24)); assert(node._prefs.usb_debug_enabled==1&&mesh::debug_enabled); const auto enabled_disk=node.store.fs.files["/new_prefs"]; - assert(enabled_disk.back()==1); - for(size_t i=0;i+1\r\n")!=std::string::npos); +#else + assert(text.find("lost.reply")==std::string::npos); +#endif assert(text.find(" get usb.debug\r\n set usb.debug \r\n")!=std::string::npos); #if MESH_USB_CONSOLE_COOPERATIVE assert(text.find(" get usb.watchdog\r\n get usb.watchdog.last\r\n set usb.watchdog (saved; default auto)\r\n")!=std::string::npos); @@ -445,10 +453,12 @@ int main(){ work = Path(directory) self.prepare(work) for native in (0, 1): - with self.subTest(native=native): - self.compile_and_run(work, harness, - [flag + '=1' for flag in features] + ['WIFI_SSID="test"', - 'MESH_USB_CONSOLE_COOPERATIVE=' + str(native)]) + for lost in (0, 1): + with self.subTest(native=native, lost=lost): + self.compile_and_run(work, harness, + [flag + '=1' for flag in features] + ['WIFI_SSID="test"', + 'MESH_USB_CONSOLE_COOPERATIVE=' + str(native), + 'MESH_ENABLE_LOST_REPLY=' + str(lost)]) if __name__ == '__main__': diff --git a/test/test_local_cli_access.py b/test/test_local_cli_access.py index 6eebc2d13..cc19309a1 100644 --- a/test/test_local_cli_access.py +++ b/test/test_local_cli_access.py @@ -20,6 +20,7 @@ PREAMBLE = r''' #include #include #include +#include #include "companion_fleet_dispatch.h" #define ESP32 1 #define WIFI_SSID "test" @@ -72,6 +73,7 @@ struct Store { bool formatFileSystem(){++erased;return success;} }; struct Prefs { + uint8_t lost_reply=0; float tx_delay_factor=0.5f, direct_tx_delay_factor=0.2f; uint8_t interference_threshold=0, agc_reset_interval=0; int8_t tz_offset=0; @@ -164,6 +166,22 @@ SCENARIOS = r''' int main() { MyMesh node; char reply[160] = {}; + assert(node.handleCommand("set lost.reply yes",0,reply)); + assert(node._prefs.lost_reply==2 && !strcmp(reply,"> lost.reply yes")); + assert(node.handleCommand("get lost.reply",0,reply) && !strcmp(reply,"> yes")); + const int lost_saves=node.saves; + for(uint32_t stamp:{0u,100u}) { + reply[0]=0; + node.onCLICommandRecv(ContactInfo{},nullptr,stamp,"set lost.reply no",reply); + assert(node._prefs.lost_reply==2 && node.saves==lost_saves); + reply[0]=0; + node.onCLICommandRecv(ContactInfo{},nullptr,stamp,"A7|get lost.reply",reply); + assert(!strstr(reply,"> yes") && node.saves==lost_saves); + } + node.save_ok=false; + assert(node.handleCommand("set lost.reply no",0,reply)); + assert(node._prefs.lost_reply==2 && strstr(reply,"could not save")); + node.save_ok=true; for (uint32_t timestamp : {0u, 100u}) { node.onCLICommandRecv(ContactInfo{}, nullptr, timestamp, "fleet send 1 all set radio2 off", reply); @@ -373,6 +391,7 @@ int main() { "c++", "-std=c++17", "-x", "c++", "-", "-I"+str(ROOT / "src"), "-I"+str(ROOT / "test/fixtures"), "-DENABLE_PRIVATE_KEY_EXPORT="+str(export), + "-DMESH_ENABLE_LOST_REPLY=1", *(["-DWITH_WEBCONFIG=1"] if webconfig else []), *SANITIZER_FLAGS, "-o", str(binary), ], input=PREAMBLE+implementation+SCENARIOS, text=True, capture_output=True) diff --git a/test/test_stored_client_reply_routes.py b/test/test_stored_client_reply_routes.py index 2fec3bd64..9599abeac 100644 --- a/test/test_stored_client_reply_routes.py +++ b/test/test_stored_client_reply_routes.py @@ -8,7 +8,7 @@ import tempfile import unittest from test_replay_reset_integration import extract_braced -from test_client_acl_infrastructure import production_methods +from test_client_acl_infrastructure import production_methods, room_mail_crypto_arguments ROOT = Path(__file__).resolve().parents[1] @@ -142,7 +142,8 @@ int main() { # Actual Mesh::createMultiAck has a pre-existing signed-size comparison. # Keep other fixture warnings fatal without changing production code. args = [compiler, "-std=c++17", "-Wall", "-Wextra", "-Werror", "-Wno-unused-parameter", "-Wno-sign-compare", - "-I" + str(work), "-I" + str(ROOT / "test/fixtures/room_history_store"), "-I" + str(ROOT / "src"), str(work / "test.cpp"), "-o", str(binary)] + "-I" + str(work), "-I" + str(ROOT / "test/fixtures/room_history_store"), "-I" + str(ROOT / "src"), + str(work / "test.cpp"), *room_mail_crypto_arguments(role), "-o", str(binary)] if sensor: args.insert(1, "-DTEST_SENSOR=1") if sys.platform.startswith("linux"): args[1:1] = ["-fsanitize=address,undefined", "-fno-sanitize-recover=all", "-fno-pie", "-no-pie"] diff --git a/test/test_webconfig_lost_reply.py b/test/test_webconfig_lost_reply.py new file mode 100644 index 000000000..a3b573423 --- /dev/null +++ b/test/test_webconfig_lost_reply.py @@ -0,0 +1,250 @@ +#!/usr/bin/env python3 +"""Exercise the shipped Lost-status control and actual WebConfig JSON handlers.""" + +import json +import html +from pathlib import Path +import re +import unittest +from unittest import mock + +from test_replay_reset_integration import extract_braced +import test_webconfig_recovery_auth as auth_fixture +import test_webconfig_ui_runtime as browser_fixture + + +ROOT = Path(__file__).resolve().parents[1] + + +class LostReplyWebConfigTest(unittest.TestCase): + compile_run = auth_fixture.WebConfigRecoveryAuthTest.compile_run + setup_values = browser_fixture.WebConfigUiRuntimeTest.setup_values + + def run_page(self, prelude, virtual_time=1500): + # Snap Chromium has a private /tmp. Put the HTML in the shared + # workspace, as the Room browser fixture does, so it can load it. + temporary_directory = browser_fixture.tempfile.TemporaryDirectory + cache = ROOT / ".pio" + cache.mkdir(exist_ok=True) + + def workspace_temporary_directory(*args, **kwargs): + kwargs.setdefault("dir", cache) + return temporary_directory(*args, **kwargs) + + with mock.patch.object(browser_fixture.tempfile, "TemporaryDirectory", + workspace_temporary_directory): + return browser_fixture.WebConfigUiRuntimeTest.run_page(self, prelude, virtual_time) + + def fixture(self): + server = (ROOT / "src/helpers/esp32/WebConfigServer.cpp").read_text() + header = (ROOT / "src/helpers/esp32/WebConfigServer.h").read_text() + capability = extract_braced(header, "enum Capability : uint32_t") + ";" + snapshot = extract_braced(header, "struct NodeSnapshot") + ";" + batch_entry = extract_braced(header, "struct BatchEntry") + ";" + allowed = extract_braced(server, "static bool isAllowedSetKey(") + secret = extract_braced(server, "static bool isSecretKey(") + post = extract_braced(server, "void WebConfigServer::handleConfigPost(") + get = extract_braced(server, "void WebConfigServer::handleConfigGet(") + # Execute the actual snapshot-to-radio JSON branch. WiFi/MQTT fields + # after this boundary are unrelated and require peripheral fixtures. + get = get[:get.index(' JsonObject wifi =')] + r''' + } + String out; + serializeJson(doc, out); + req->send(200, "application/json", out); +} +''' + return r''' +#include +#include +#include +#include +#include +#include +#include "helpers/WebConfigKeys.h" +#include "helpers/WebConfigBatch.h" +using String = std::string; +struct WCLock { explicit WCLock(int) {} }; +uint32_t millis() { return 1; } +namespace mesh { +struct Port { template void printf(const char*, Args...) {} }; +Port& usbDebugPort() { static Port port; return port; } +namespace wifi { bool parseEspNowChannel(const char*, uint8_t&) { return false; } } +} +static const char SECRET_SENTINEL[] = "********"; +@ALLOWED@ +@SECRET@ +struct AsyncWebServerRequest { + String input, output; + void* _tempObject = nullptr; + int status = 0; + explicit AsyncWebServerRequest(String body = "") : input(body) { _tempObject = input.data(); } + size_t contentLength() const { return input.size(); } + void send(int code, const char* = nullptr, const String& body = "") { status = code; output = body; } +}; +struct WebConfigServer { + @CAPABILITY@ + @SNAPSHOT@ + @BATCH_ENTRY@ + struct Callbacks { + NodeSnapshot node = {}; + void getNodeSnapshot(NodeSnapshot& result) { result = node; } + } callbacks; + Callbacks* _cb = &callbacks; + enum { MODE_OFF, MODE_SETUP, MODE_LAN, BATCH_CONFIG, BATCH_CLI }; + static constexpr size_t MAX_BODY = 4096; + static constexpr int MAX_BATCH = WebConfigBatch::kMaxBatch; + int _mode = MODE_LAN, _mux = 0, _batch_kind = BATCH_CONFIG; + bool authorized = true, _initial_setup = false, _batch_reboot = false; + bool _batch_reboot_armed = false, _batch_all_ok = true; + bool _standalone_wifi_dirty = false, _setup_wifi_handoff_pending = false; + uint32_t _setup_wifi_handoff_deadline = 0, _diag_until = 0; + char _setup_wifi_handoff_ip[32] = {}, _batch_reqid[17] = {}; + int _batch_count = 0, _batch_next = 0; + void* _mqtt_prefs = nullptr; + BatchEntry _batch[MAX_BATCH] = {}; + WebConfigBatch::State _batch_state = WebConfigBatch::State::Idle; + static constexpr auto BATCH_PENDING = WebConfigBatch::State::Pending; + static WebConfigBatch::State toSpecState(WebConfigBatch::State state) { return state; } + bool checkAuth(AsyncWebServerRequest*) { return authorized; } + void handleConfigGet(AsyncWebServerRequest*); + void handleConfigPost(AsyncWebServerRequest*); +}; +@GET@ +@POST@ +String writeBody(const char* value) { + return String("{\"reqid\":\"0123456789abcdef\",\"set\":{\"lost.reply\":") + value + "}}"; +} +int main() { + const char* modes[] = {"off", "no", "yes"}; + for (int value : {0, 1, 2, 255}) { + WebConfigServer server; + server.callbacks.node.lost_reply = uint8_t(value); + server.callbacks.node.capabilities = WebConfigServer::CAP_LOST_REPLY; + AsyncWebServerRequest get; + server.handleConfigGet(&get); + JsonDocument snapshot; + assert(get.status == 200 && deserializeJson(snapshot, get.output) == DeserializationError::Ok); + assert(strcmp(snapshot["radio"]["lost_reply"].as(), modes[value <= 2 ? value : 0]) == 0); + assert(snapshot["radio"]["capabilities"].as() == (1UL << 18)); + } + for (const char* mode : modes) { + WebConfigServer server; + server.callbacks.node.capabilities = WebConfigServer::CAP_LOST_REPLY; + AsyncWebServerRequest save(writeBody((String("\"") + mode + "\"").c_str())); + server.handleConfigPost(&save); + assert(save.status == 202 && server._batch_count == 1 && !server._batch_reboot); + assert(strcmp(server._batch[0].key, "lost.reply") == 0); + assert(String(server._batch[0].cmd) == String("set lost.reply ") + mode); + // A correlated retry retains the established batch, including when the + // retry carries an invalid value. Classification precedes new validation. + AsyncWebServerRequest retry(writeBody("\"invalid\"")); + server.handleConfigPost(&retry); + assert(retry.status == 202 && String(server._batch[0].cmd) == String("set lost.reply ") + mode); + } + for (const char* invalid : {"null", "true", "2", "\"on\"", "\"YES\"", "\"yes\\n\""}) { + WebConfigServer server; + server.callbacks.node.capabilities = WebConfigServer::CAP_LOST_REPLY; + AsyncWebServerRequest save(writeBody(invalid)); + server.handleConfigPost(&save); + assert(save.status == 400 && save.output.find("expected off, no or yes") != String::npos); + assert(server._batch_count == 0 && server._batch_state == WebConfigBatch::State::Idle); + } + WebConfigServer infrastructure; + AsyncWebServerRequest forged(writeBody("\"yes\"")); + infrastructure.handleConfigPost(&forged); + assert(forged.status == 400 && forged.output.find("setting unavailable") != String::npos); + assert(infrastructure._batch_count == 0); + infrastructure.authorized = false; + AsyncWebServerRequest unauthorized(writeBody("\"yes\"")); + infrastructure.handleConfigPost(&unauthorized); + assert(unauthorized.status == 401 && infrastructure._batch_count == 0); + assert(wcIsAllowedSetKey("lost.reply") && !wcIsAllowedSetKey("lost.reply.extra")); + assert(!wcSetKeyRequiresReboot("lost.reply")); +} +'''.replace("@CAPABILITY@", capability).replace("@SNAPSHOT@", snapshot).replace( + "@BATCH_ENTRY@", batch_entry).replace("@ALLOWED@", allowed).replace( + "@SECRET@", secret).replace("@GET@", get).replace("@POST@", post) + + def test_actual_json_strings_and_capability_gated_settings_batch(self): + # The shared compiler helper needs the production helper include path. + self.compile_run(self.fixture().replace('"helpers/', '"' + (ROOT / "src/helpers").as_posix() + '/')) + + def test_shipped_control_defaults_off_and_saves_no_yes_off(self): + status, config = self.setup_values() + status.update(mode="lan", capabilities=1 << 18) + config["radio"]["lost_reply"] = "off" + prelude = r'''''' % (json.dumps(status), json.dumps(config)) + dom = self.run_page(prelude, virtual_time=3500) + for key, value in (("visible", "true"), ("default", "off"), ("choices", "off,no,yes"), + ("enum", "off,no,yes"), ("saved-no", "no"), ("saved-yes", "yes"), + ("saved-off", "off"), ("reboot", "false"), ("done", "true")): + self.assertIn('data-test-%s="%s"' % (key, value), dom) + saved = re.search(r'data-test-saves="([^"]*)"', dom) + self.assertIsNotNone(saved) + self.assertEqual(json.loads(html.unescape(saved.group(1))), + [{"lost.reply": "no"}, {"lost.reply": "yes"}, {"lost.reply": "off"}]) + self.assertIn("Lost-status auto reply", dom) + self.assertIn("Am I lost?", dom) + + def test_other_roles_hide_setting_and_do_not_offer_cli_key(self): + for role in ("Repeater", "Room Server"): + with self.subTest(role=role): + status, config = self.setup_values() + status.update(mode="lan", role=role, capabilities=1) + config["radio"]["lost_reply"] = "off" + prelude = r'''''' % (json.dumps(status), json.dumps(config)) + dom = self.run_page(prelude) + self.assertIn('data-test-hidden="true"', dom) + self.assertIn('data-test-no-cli="true"', dom) + + +if __name__ == "__main__": + unittest.main() diff --git a/variants/rak_wismesh_tag/platformio.ini b/variants/rak_wismesh_tag/platformio.ini index 8a4e190f3..c9f94a564 100644 --- a/variants/rak_wismesh_tag/platformio.ini +++ b/variants/rak_wismesh_tag/platformio.ini @@ -96,7 +96,8 @@ build_flags = -D MAX_GROUP_CHANNELS=40 -D BLE_PIN_CODE=123456 -D BLE_DEBUG_LOGGING=1 - -D OFFLINE_QUEUE_SIZE=256 + ; Retain 350 contacts/40 channels and the runtime heap reserve for BLE. + -D OFFLINE_QUEUE_SIZE=240 -D PIN_GPS_EN=34 ; -D MESH_PACKET_LOGGING=1 ; -D MESH_DEBUG=1 diff --git a/variants/tiny_relay/platformio.ini b/variants/tiny_relay/platformio.ini index 3f7cd01d0..dbae4c1c6 100644 --- a/variants/tiny_relay/platformio.ini +++ b/variants/tiny_relay/platformio.ini @@ -76,6 +76,7 @@ build_flags = ${Tiny_Relay.build_flags} -Oz -flto -fno-inline-small-functions + -fno-tree-dominator-opts ; preserve Companion features and the 32 KiB filesystem -fipa-pta -fmerge-all-constants -fno-ipa-cp-clone diff --git a/variants/wio-e5-dev/platformio.ini b/variants/wio-e5-dev/platformio.ini index e278562b7..ab3d0d1cc 100644 --- a/variants/wio-e5-dev/platformio.ini +++ b/variants/wio-e5-dev/platformio.ini @@ -94,6 +94,7 @@ build_flags = ${lora_e5.build_flags} -Oz -flto -fno-inline-small-functions + -fno-tree-dominator-opts ; preserve Companion features and the 32 KiB filesystem -fipa-pta -fmerge-all-constants -fno-ipa-cp-clone diff --git a/webui/index.html b/webui/index.html index 4c54ccd15..49319f3d3 100644 --- a/webui/index.html +++ b/webui/index.html @@ -365,6 +365,9 @@ body.tab-cli{padding-bottom:0}
Independent of the address setting. Advertise normally until first pairing, then accept only that bonded peer. An address rotation reopens pairing. Changes require a reboot.
+
+ +
Reply Yes or No to "Am I lost?" from saved private chat contacts when this device is available. Replies are rate limited. Your choice is saved on this device.
@@ -810,6 +813,7 @@ function cfgVal(k){ // map a `set` key to its current value string, from st.cfg case"name":return r.name;case"bluetooth.name":return r.bluetooth_name||""; case"bluetooth.mac":return r.bluetooth_mac||""; case"bluetooth.stealth":return r.bluetooth_stealth?"on":"off"; + case"lost.reply":return r.lost_reply==="yes"||r.lost_reply==="no"?r.lost_reply:"off"; case"lat":return String(r.lat);case"lon":return String(r.lon); case"tx":return String(r.tx);case"af":return String(r.af); case"rxdelay":return String(r.rxdelay);case"txdelay":return String(r.txdelay); @@ -2084,6 +2088,7 @@ var CLI_COMPANION_VERBS=[ ["reboot","Restart the node"] ]; var CLI_COMPANION_KEYS=[ + ["lost.reply","Lost-status auto reply to saved private chat contacts",0,"off|no|yes"], ["display.inbox","Companion inbox behavior",0,"history|pending|unread"], ["display.mode","Display on battery",0,"off|on|button|pairing|button-pairing|automatic"], ["display.timeout","Battery display timeout in seconds (1-3600)",0],