diff --git a/samples/modules/tflite-micro/micro_speech/CMakeLists.txt b/samples/modules/tflite-micro/micro_speech/CMakeLists.txt new file mode 100644 index 0000000000000..a8ee09e207c1d --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/CMakeLists.txt @@ -0,0 +1,71 @@ +cmake_minimum_required(VERSION 3.20.0) + +find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) +project(micro_speech_openamp) + +# These samples use local static initialization. Since Zephyr doesn't support the +# C++ ABI for thread-safe initialization of local statics and the constructors don't +# appear to require thread safety, we turn it off in the C++ compiler. +set(NO_THREADSAFE_STATICS $) +zephyr_compile_options($<$:${NO_THREADSAFE_STATICS}>) + +# Define common paths +set(OPTIONAL_TFLITE_DIR $ENV{ZEPHYR_BASE}/../optional/modules/lib/tflite-micro/signal) + +file( + GLOB + app_sources + src/* + src/inference/* + src/transport/* +) + +target_include_directories( + app + PRIVATE + src + ${ZEPHYR_TFLITE_MICRO_MODULE_DIR}/signal + ${ZEPHYR_TFLITE_MICRO_MODULE_DIR}/signal/micro/kernels/ + ${ZEPHYR_TFLITE_MICRO_MODULE_DIR}/signal/src + ${LIBMETAL_INCLUDE_DIR} + ${OPENAMP_INCLUDE_DIR} + ${PLATFORM_DIR} +) + +target_sources( + app + PRIVATE + ${app_sources} + + # Signal processing + ${OPTIONAL_TFLITE_DIR}/src/fft_auto_scale.cc + ${OPTIONAL_TFLITE_DIR}/src/max_abs.cc + ${OPTIONAL_TFLITE_DIR}/src/msb_32.cc + ${OPTIONAL_TFLITE_DIR}/src/energy.cc + ${OPTIONAL_TFLITE_DIR}/src/filter_bank.cc + ${OPTIONAL_TFLITE_DIR}/src/pcan_argc_fixed.cc + ${OPTIONAL_TFLITE_DIR}/src/filter_bank_log.cc + ${OPTIONAL_TFLITE_DIR}/src/log.cc + ${OPTIONAL_TFLITE_DIR}/src/filter_bank_spectral_subtraction.cc + + # Micro kernels + ${OPTIONAL_TFLITE_DIR}/micro/kernels/energy.cc + ${OPTIONAL_TFLITE_DIR}/micro/kernels/fft_auto_scale_common.cc + ${OPTIONAL_TFLITE_DIR}/micro/kernels/filter_bank_square_root_common.cc + ${OPTIONAL_TFLITE_DIR}/micro/kernels/filter_bank_spectral_subtraction.cc + ${OPTIONAL_TFLITE_DIR}/micro/kernels/filter_bank.cc + ${OPTIONAL_TFLITE_DIR}/micro/kernels/pcan.cc + ${OPTIONAL_TFLITE_DIR}/micro/kernels/filter_bank_log.cc +) + +if ("${BOARD_ARCH}" STREQUAL "xtensa") + target_sources( + app + PRIVATE + + # Xtensa kernels + ${OPTIONAL_TFLITE_DIR}/micro/kernels/xtensa/fft_auto_scale_kernel.cc + ${OPTIONAL_TFLITE_DIR}/micro/kernels/xtensa/filter_bank_square_root.cc + ${OPTIONAL_TFLITE_DIR}/micro/kernels/xtensa/xtensa_square_root.S + ) +endif() diff --git a/samples/modules/tflite-micro/micro_speech/README.rst b/samples/modules/tflite-micro/micro_speech/README.rst new file mode 100644 index 0000000000000..ec7449eb76d9a --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/README.rst @@ -0,0 +1,154 @@ +.. zephyr:code-sample:: tflite-micro-speech-openamp + :name: Micro Speech OpenAMP + + Recognize speech commands from audio input received on Cortex-A cores and + processed on the HiFi4 DSP of the i.MX8M Plus EVK board using TensorFlow Lite + for Microcontrollers with a 20KB neural network. + +Overview +******** + +This sample requires an application running on the Cortex-A cores of the i.MX8M Plus +to capture audio and send it to the HiFi4 DSP using OpenAMP. The DSP processes +the audio data and performs inference using TensorFlow Lite Micro that +detects 2 speech commands ("yes" and "no"), as well as "silence" and "unknown". + +.. code-block:: text + + +------------------------- Cortex A (main core) -------------+ +--------------- HiFi4 DSP (remote core) --------------+ + | | | | + | [ALSA/arecord] -> [Linux userspace] -> [/dev/ttyRPMSG*] |----------> [RPMsg] ------->| [ring/msgq] -> [frontend] -> [TFLM] -> [output] | + | | | | + +------------------------------------------------------------+ +------------------------------------------------------+ + +.. Note:: + This README and sample have been modified from + `the TensorFlow Hello World sample`_, + `the OpenAMP using resource table from Zephyr`_ and + `the Micro Speech Example from TensorFlow Lite for Microcontrollers`_. + +.. _the TensorFlow Hello World sample: + https://github.com/tensorflow/tflite-micro-arduino-examples/tree/main/examples/hello_world + +.. _the OpenAMP using resource table from Zephyr: + https://github.com/zephyrproject-rtos/zephyr/tree/main/samples/subsys/ipc/openamp_rsc_table + +.. _the Micro Speech Example from TensorFlow Lite for Microcontrollers: + https://github.com/tensorflow/tflite-micro/tree/main/tensorflow/lite/micro/examples/micro_speech + +Audio contract +-------------- +- Sample rate: 16kHz +- Sample format: S16_LE +- Frame size (samples per RPMsg payload): 20ms (320 samples or 640 bytes) +- Endianness: LE + +Compatibility +------------- +- Validated Platform: i.MX8MP with the HiFi4 DSP core. +- Porting: It is compatible with other boards, but this requires creating a new board configuration and updating the DTS overlays to match the target hardware. + +Building and Running +******************** + +West Module Filters +------------------- +This sample requires the tflite-micro module. + +DSP Firmware +------------ + +Add the tflite-micro module to your West manifest and pull it: + +.. code-block:: console + + west config manifest.project-filter -- +tflite-micro + west update + +The sample can be built for the :zephyr:board:`imx8mp_evk/mimx8ml8/adsp` as follows: + +.. zephyr-app-commands:: + :zephyr-app: samples/modules/tflite-micro/micro_speech + :host-os: unix + :board: imx8mp_evk/mimx8ml8/adsp + :goals: run + :compact: + +Linux Application +----------------- + +The Linux application is not part of the Zephyr repository. It can be found in the `this repository`_. + +.. _this repository: + https://github.com/thong-phn/linux-app + +Sample Output +************* + +Linux Application +----- + +Simulation with a WAV file as input + +.. code-block:: console + + root@imx8mpevk:~# ./send default16.wav + [L] Using TTY device: /dev/ttyRPMSG0 + [L] Expect audio frames: 500 + [L] Consumer: Consumer thread started + [L] Producer: Producer thread started + [L] Producer: End of file reached + [L] Producer: Producer stopping + [L] Consumer: EOF frame received, stopping + [L] Consumer: EOF marker sent to Zephyr + [L] Consumer: Consumer thread finished + +Real-time Recording + +.. code-block:: console + + root@imx8mpevk:~# ./record hw:5,0 /dev/ttyRPMSG0 + [L] Using PCM device: hw:5,0 + [L] Using TTY device: /dev/ttyRPMSG0 + [L] PCM device hw:5,0 configured for 16kHz, S16_LE, Mono + [L] Consumer: Consumer thread started + [L] Producer: Producer thread started + ^C + [L] Ctrl+C detected. Stopping.. + [L] Producer: Sending EOF to consumer + [L] Producer: Producer stopping + [L] Consumer: EOF frame received, stopping + [L] Consumer: EOF marker sent to Zephyr + [L] Consumer: Consumer thread finished + [L] Application finished. + +DSP Firmware +------------ + +.. code-block:: console + + [00:00:00.697,000] micro_speech_openamp: Starting Micro Speech OpenAMP application + [00:00:01.231,000] micro_speech_openamp: Audio processing thread started + [00:00:02.321,000] micro_speech_openamp: Audio processing thread started + [00:00:03.591,000] model_runner: Initializing static interpreters + [00:00:03.941,000] model_runner: Static interpreters initialized successfully + [00:00:04.981,000] model_runner: Detected: yes + [00:00:06.102,000] model_runner: Detected: no + [00:00:07.202,000] model_runner: Detected: silence + +Training +******** +To train your own model for use in this sample, follow the instructions in `this link`_. + +.. _this link: + https://github.com/tensorflow/tflite-micro/tree/main/tensorflow/lite/micro/examples/micro_speech/train + +Limitations +******** +The basic model uses an inference audio frame size of 1000 ms. +As a result, there are some limitations: + +#. If two commands are spoken within 1000 ms, the second command may not be detected. +#. If a command lasts longer than 1000 ms, it may be detected as two separate commands. + +Potential solution: Retrain the model with a smaller input frame size. diff --git a/samples/modules/tflite-micro/micro_speech/boards/imx8mp_evk_mimx8ml8_adsp.conf b/samples/modules/tflite-micro/micro_speech/boards/imx8mp_evk_mimx8ml8_adsp.conf new file mode 100644 index 0000000000000..1422e67dc6729 --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/boards/imx8mp_evk_mimx8ml8_adsp.conf @@ -0,0 +1,8 @@ +CONFIG_LOG_PRINTK=n +CONFIG_IPM_IMX_MAX_DATA_SIZE_16=n +CONFIG_IPM_IMX_MAX_DATA_SIZE_4=y +CONFIG_OPENAMP_WITH_DCACHE=y + +#vendor-specific resource table +CONFIG_OPENAMP_VENDOR_RSC_TABLE=y +CONFIG_OPENAMP_VENDOR_RSC_TABLE_FILE="nxp_resource_table.c" diff --git a/samples/modules/tflite-micro/micro_speech/boards/imx8mp_evk_mimx8ml8_adsp.overlay b/samples/modules/tflite-micro/micro_speech/boards/imx8mp_evk_mimx8ml8_adsp.overlay new file mode 100644 index 0000000000000..8fefebe548500 --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/boards/imx8mp_evk_mimx8ml8_adsp.overlay @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2023 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + chosen { + /* + * shared memory reserved for the inter-processor communication + */ + zephyr,ipc_shm = &dspsram3; + zephyr,ipc = &mailbox0; + }; + + dspsram3: memory@942f0000 { + compatible = "mmio-sram"; + reg = <0x942f0000 0x110000>; + }; +}; + +&mailbox0 { + status = "okay"; +}; diff --git a/samples/modules/tflite-micro/micro_speech/prj.conf b/samples/modules/tflite-micro/micro_speech/prj.conf new file mode 100644 index 0000000000000..6ad5c19939d34 --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/prj.conf @@ -0,0 +1,21 @@ +# tflite +CONFIG_CPP=y +CONFIG_STD_CPP17=y +CONFIG_TENSORFLOW_LITE_MICRO=y +CONFIG_MAIN_STACK_SIZE=6144 # tflm arena size +CONFIG_REQUIRES_FLOAT_PRINTF=y + +# rpmsg +CONFIG_KERNEL_BIN_NAME="micro_speech_openamp" +CONFIG_PRINTK=n +CONFIG_IPM=y +CONFIG_HEAP_MEM_POOL_SIZE=5120 # rpmsg buffers +CONFIG_OPENAMP=y +CONFIG_OPENAMP_RSC_TABLE_NUM_RPMSG_BUFF=8 +CONFIG_OPENAMP_RSC_TABLE=y +CONFIG_OPENAMP_MASTER=n +CONFIG_SHELL=n + +# logging +CONFIG_LOG=y +CONFIG_LOG_DEFAULT_LEVEL=3 diff --git a/samples/modules/tflite-micro/micro_speech/sample.yaml b/samples/modules/tflite-micro/micro_speech/sample.yaml new file mode 100644 index 0000000000000..e80ae1234120e --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/sample.yaml @@ -0,0 +1,20 @@ +sample: + description: Micro Speech OpenAMP Sample + name: micro speech openamp +common: + tags: tensorflow + modules: + - tflite-micro + harness: console + harness_config: + type: multi_line + ordered: false + regex: + - "Detected: (yes|no|silence|unknown)" +tests: + sample.tensorflow.micro_speech_openamp: + platform_allow: + - imx8mp_evk/mimx8ml8/adsp + integration_platforms: + - imx8mp_evk/mimx8ml8/adsp + tags: tensorflow, openamp, ipc, audio diff --git a/samples/modules/tflite-micro/micro_speech/snippets/nxp-openamp-imx8-adsp.conf b/samples/modules/tflite-micro/micro_speech/snippets/nxp-openamp-imx8-adsp.conf new file mode 100644 index 0000000000000..b154e3c04cfeb --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/snippets/nxp-openamp-imx8-adsp.conf @@ -0,0 +1,9 @@ +CONFIG_LOG_PRINTK=n +CONFIG_IPM_IMX_MAX_DATA_SIZE_16=n +CONFIG_IPM_IMX_MAX_DATA_SIZE_4=y +CONFIG_OPENAMP_WITH_DCACHE=y +CONFIG_SHELL=n + +#vendor-specific resource table +CONFIG_OPENAMP_VENDOR_RSC_TABLE=y +CONFIG_OPENAMP_VENDOR_RSC_TABLE_FILE="nxp_resource_table.c" diff --git a/samples/modules/tflite-micro/micro_speech/snippets/nxp-openamp-imx8-adsp.overlay b/samples/modules/tflite-micro/micro_speech/snippets/nxp-openamp-imx8-adsp.overlay new file mode 100644 index 0000000000000..56843c499c350 --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/snippets/nxp-openamp-imx8-adsp.overlay @@ -0,0 +1,24 @@ +/* + * Copyright 2024 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + chosen { + /* + * shared memory reserved for the inter-processor communication + */ + zephyr,ipc_shm = &dspsram3; + zephyr,ipc = &mailbox0; + }; + + dspsram3: memory@942f0000 { + compatible = "mmio-sram"; + reg = <0x942f0000 0x110000>; + }; +}; + +&mailbox0 { + status = "okay"; +}; diff --git a/samples/modules/tflite-micro/micro_speech/snippets/snippet.yml b/samples/modules/tflite-micro/micro_speech/snippets/snippet.yml new file mode 100644 index 0000000000000..1768672fd2ebd --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/snippets/snippet.yml @@ -0,0 +1,6 @@ +name: nxp-openamp-imx8-adsp +boards: + /imx8qxp_mek\/mimx8qx6\/adsp|imx8qm_mek\/mimx8qm6\/adsp/: + append: + EXTRA_DTC_OVERLAY_FILE: nxp-openamp-imx8-adsp.overlay + EXTRA_CONF_FILE: nxp-openamp-imx8-adsp.conf diff --git a/samples/modules/tflite-micro/micro_speech/src/inference/audio_preprocessor_int8_model.cpp b/samples/modules/tflite-micro/micro_speech/src/inference/audio_preprocessor_int8_model.cpp new file mode 100644 index 0000000000000..4eca135dcaf9d --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/src/inference/audio_preprocessor_int8_model.cpp @@ -0,0 +1,755 @@ +/* + * Copyright 2025 The TensorFlow Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "audio_preprocessor_int8_model.hpp" + +alignas(8) const unsigned char g_audio_preprocessor_int8_model[] = { + 0x1c, 0x00, 0x00, 0x00, 0x54, 0x46, 0x4c, 0x33, 0x14, 0x00, 0x20, 0x00, + 0x1c, 0x00, 0x18, 0x00, 0x14, 0x00, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x04, 0x00, 0x14, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x88, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, + 0x90, 0x0e, 0x00, 0x00, 0xcc, 0x1f, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xe2, 0xeb, 0xff, 0xff, + 0x0c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x5f, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x94, 0xff, 0xff, 0xff, 0x2a, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x5f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0xc2, 0xf5, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x00, 0x02, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0xdc, 0xff, 0xff, 0xff, 0x2d, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x43, 0x4f, 0x4e, 0x56, + 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, + 0x41, 0x54, 0x41, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x04, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x00, + 0x2e, 0x00, 0x00, 0x00, 0x9c, 0x0d, 0x00, 0x00, 0x94, 0x0d, 0x00, 0x00, + 0xc4, 0x09, 0x00, 0x00, 0x6c, 0x09, 0x00, 0x00, 0x48, 0x09, 0x00, 0x00, + 0x34, 0x09, 0x00, 0x00, 0x20, 0x09, 0x00, 0x00, 0x0c, 0x09, 0x00, 0x00, + 0xf8, 0x08, 0x00, 0x00, 0xec, 0x07, 0x00, 0x00, 0x88, 0x07, 0x00, 0x00, + 0x24, 0x07, 0x00, 0x00, 0xc0, 0x06, 0x00, 0x00, 0x38, 0x04, 0x00, 0x00, + 0xb0, 0x01, 0x00, 0x00, 0x9c, 0x01, 0x00, 0x00, 0x88, 0x01, 0x00, 0x00, + 0x74, 0x01, 0x00, 0x00, 0x60, 0x01, 0x00, 0x00, 0x4c, 0x01, 0x00, 0x00, + 0x44, 0x01, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, 0x34, 0x01, 0x00, 0x00, + 0x2c, 0x01, 0x00, 0x00, 0x24, 0x01, 0x00, 0x00, 0x1c, 0x01, 0x00, 0x00, + 0x14, 0x01, 0x00, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x04, 0x01, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, + 0xe4, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, + 0xcc, 0x00, 0x00, 0x00, 0xc4, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, + 0xb4, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x00, + 0x9c, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, + 0x6c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xf2, 0xf6, 0xff, 0xff, + 0x04, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0c, 0x00, + 0x08, 0x00, 0x07, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, + 0x10, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x32, 0x2e, 0x31, 0x32, 0x2e, 0x30, 0x00, 0x00, + 0x56, 0xf7, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x32, 0x2e, 0x38, 0x2e, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xd4, 0xe1, 0xff, 0xff, 0xd8, 0xe1, 0xff, 0xff, + 0xdc, 0xe1, 0xff, 0xff, 0xe0, 0xe1, 0xff, 0xff, 0xe4, 0xe1, 0xff, 0xff, + 0xe8, 0xe1, 0xff, 0xff, 0xec, 0xe1, 0xff, 0xff, 0xf0, 0xe1, 0xff, 0xff, + 0xf4, 0xe1, 0xff, 0xff, 0xf8, 0xe1, 0xff, 0xff, 0xfc, 0xe1, 0xff, 0xff, + 0x00, 0xe2, 0xff, 0xff, 0x04, 0xe2, 0xff, 0xff, 0x08, 0xe2, 0xff, 0xff, + 0x0c, 0xe2, 0xff, 0xff, 0x10, 0xe2, 0xff, 0xff, 0x14, 0xe2, 0xff, 0xff, + 0x18, 0xe2, 0xff, 0xff, 0x1c, 0xe2, 0xff, 0xff, 0x20, 0xe2, 0xff, 0xff, + 0x24, 0xe2, 0xff, 0xff, 0x28, 0xe2, 0xff, 0xff, 0x2c, 0xe2, 0xff, 0xff, + 0x30, 0xe2, 0xff, 0xff, 0xd2, 0xf7, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x9a, 0x02, 0x00, 0x00, 0xe2, 0xf7, 0xff, 0xff, + 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0xf2, 0xf7, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0x02, 0xf8, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x12, 0xf8, 0xff, 0xff, + 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x22, 0xf8, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x78, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x61, 0x05, 0x00, 0x00, 0x00, 0x00, 0x23, 0x0b, 0x41, 0x01, + 0x00, 0x00, 0x00, 0x00, 0xb3, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x74, 0x0e, 0x80, 0x05, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x0c, + 0x63, 0x04, 0x00, 0x00, 0x00, 0x00, 0x34, 0x0c, 0x3f, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x81, 0x0c, 0xf7, 0x04, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x0d, + 0x77, 0x06, 0x00, 0x00, 0x00, 0x00, 0x7b, 0x0f, 0xa9, 0x08, 0x01, 0x02, + 0x7f, 0x0b, 0x22, 0x05, 0x00, 0x00, 0x00, 0x00, 0xe9, 0x0e, 0xd1, 0x08, + 0xdb, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0d, 0x4a, 0x07, 0xad, 0x01, + 0x2c, 0x0c, 0xc6, 0x06, 0x79, 0x01, 0x00, 0x00, 0x00, 0x00, 0x45, 0x0c, + 0x29, 0x07, 0x23, 0x02, 0x34, 0x0d, 0x5b, 0x08, 0x96, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe5, 0x0e, 0x48, 0x0a, 0xbd, 0x05, 0x45, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0x0c, 0x88, 0x08, 0x43, 0x04, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe9, 0x0b, + 0xd3, 0x07, 0xcb, 0x03, 0xd2, 0x0f, 0xe7, 0x0b, 0x09, 0x08, 0x39, 0x04, + 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x0c, + 0x14, 0x09, 0x75, 0x05, 0xe2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5a, 0x0e, 0xdd, 0x0a, 0x6b, 0x07, 0x03, 0x04, 0xa6, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x53, 0x0d, 0x09, 0x0a, 0xc9, 0x06, 0x93, 0x03, + 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x0d, + 0x25, 0x0a, 0x12, 0x07, 0x07, 0x04, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x0a, 0x0e, 0x17, 0x0b, 0x2c, 0x08, 0x49, 0x05, 0x6d, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x0f, 0xcb, 0x0c, 0x04, 0x0a, + 0x44, 0x07, 0x8b, 0x04, 0xd8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x0f, + 0x87, 0x0c, 0xe7, 0x09, 0x4e, 0x07, 0xba, 0x04, 0x2d, 0x02, 0x00, 0x00, + 0x00, 0x00, 0xa5, 0x0f, 0x23, 0x0d, 0xa7, 0x0a, 0x30, 0x08, 0xbe, 0x05, + 0x52, 0x03, 0xeb, 0x00, 0x89, 0x0e, 0x2c, 0x0c, 0xd4, 0x09, 0x81, 0x07, + 0x33, 0x05, 0xe9, 0x02, 0xa5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0e, + 0x29, 0x0c, 0xf1, 0x09, 0xbe, 0x07, 0x90, 0x05, 0x65, 0x03, 0x3f, 0x01, + 0x1d, 0x0f, 0xff, 0x0c, 0xe5, 0x0a, 0xcf, 0x08, 0xbc, 0x06, 0xae, 0x04, + 0xa3, 0x02, 0x9c, 0x00, 0x99, 0x0e, 0x99, 0x0c, 0x9d, 0x0a, 0xa4, 0x08, + 0xaf, 0x06, 0xbd, 0x04, 0xcf, 0x02, 0xe4, 0x00, 0xfc, 0x0e, 0x17, 0x0d, + 0x36, 0x0b, 0x57, 0x09, 0x7c, 0x07, 0xa4, 0x05, 0xcf, 0x03, 0xfd, 0x01, + 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x0e, + 0x98, 0x0c, 0xd2, 0x0a, 0x0e, 0x09, 0x4d, 0x07, 0x8f, 0x05, 0xd4, 0x03, + 0x1b, 0x02, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x0e, 0x00, 0x0d, + 0x52, 0x0b, 0xa6, 0x09, 0xfd, 0x07, 0x56, 0x06, 0xb1, 0x04, 0x0f, 0x03, + 0x6f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd2, 0x0f, + 0x37, 0x0e, 0x9e, 0x0c, 0x08, 0x0b, 0x73, 0x09, 0xe1, 0x07, 0x52, 0x06, + 0xc4, 0x04, 0x38, 0x03, 0xaf, 0x01, 0x28, 0x00, 0xa3, 0x0e, 0x1f, 0x0d, + 0x9e, 0x0b, 0x1f, 0x0a, 0xa2, 0x08, 0x27, 0x07, 0xae, 0x05, 0x37, 0x04, + 0xc2, 0x02, 0x4e, 0x01, 0x00, 0x00, 0x00, 0x00, 0xdd, 0x0f, 0x6d, 0x0e, + 0xff, 0x0c, 0x93, 0x0b, 0x29, 0x0a, 0xc1, 0x08, 0x5a, 0x07, 0xf5, 0x05, + 0x92, 0x04, 0x30, 0x03, 0xd1, 0x01, 0x73, 0x00, 0x16, 0x0f, 0xbc, 0x0d, + 0x62, 0x0c, 0x0b, 0x0b, 0xb5, 0x09, 0x61, 0x08, 0x0e, 0x07, 0xbd, 0x05, + 0x6d, 0x04, 0x1f, 0x03, 0xd3, 0x01, 0x88, 0x00, 0x3e, 0x0f, 0xf6, 0x0d, + 0xaf, 0x0c, 0x6a, 0x0b, 0x27, 0x0a, 0xe4, 0x08, 0xa3, 0x07, 0x64, 0x06, + 0x26, 0x05, 0xe9, 0x03, 0xae, 0x02, 0x74, 0x01, 0x3b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0f, 0xce, 0x0d, 0x99, 0x0c, + 0x66, 0x0b, 0x34, 0x0a, 0x03, 0x09, 0xd3, 0x07, 0xa5, 0x06, 0x78, 0x05, + 0x4c, 0x04, 0x22, 0x03, 0xf8, 0x01, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xa9, 0x0f, 0x83, 0x0e, 0x5f, 0x0d, 0x3b, 0x0c, 0x19, 0x0b, 0xf8, 0x09, + 0xd8, 0x08, 0xb9, 0x07, 0x9b, 0x06, 0x7e, 0x05, 0x63, 0x04, 0x48, 0x03, + 0x2f, 0x02, 0x17, 0x01, 0x00, 0x00, 0x00, 0x00, 0xa6, 0xfa, 0xff, 0xff, + 0x04, 0x00, 0x00, 0x00, 0x78, 0x02, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x0a, + 0x00, 0x00, 0x00, 0x00, 0xdc, 0x04, 0xbe, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x4c, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8b, 0x01, + 0x7f, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x03, 0x9c, 0x0b, 0x00, 0x00, + 0x00, 0x00, 0xcb, 0x03, 0xc0, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x03, + 0x08, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x60, 0x02, 0x88, 0x09, 0x00, 0x00, + 0x00, 0x00, 0x84, 0x00, 0x56, 0x07, 0xfe, 0x0d, 0x80, 0x04, 0xdd, 0x0a, + 0x00, 0x00, 0x00, 0x00, 0x16, 0x01, 0x2e, 0x07, 0x24, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x02, 0xb5, 0x08, 0x52, 0x0e, 0xd3, 0x03, 0x39, 0x09, + 0x86, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xba, 0x03, 0xd6, 0x08, 0xdc, 0x0d, + 0xcb, 0x02, 0xa4, 0x07, 0x69, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x01, + 0xb7, 0x05, 0x42, 0x0a, 0xba, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x21, 0x03, 0x77, 0x07, 0xbc, 0x0b, 0xf1, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x04, 0x2c, 0x08, 0x34, 0x0c, + 0x2d, 0x00, 0x18, 0x04, 0xf6, 0x07, 0xc6, 0x0b, 0x89, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x03, 0xeb, 0x06, 0x8a, 0x0a, + 0x1d, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x01, + 0x22, 0x05, 0x94, 0x08, 0xfc, 0x0b, 0x59, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0xac, 0x02, 0xf6, 0x05, 0x36, 0x09, 0x6c, 0x0c, 0x9a, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x02, 0xda, 0x05, 0xed, 0x08, + 0xf8, 0x0b, 0xfa, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x01, 0xe8, 0x04, + 0xd3, 0x07, 0xb6, 0x0a, 0x92, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x67, 0x00, 0x34, 0x03, 0xfb, 0x05, 0xbb, 0x08, 0x74, 0x0b, + 0x27, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x00, 0x78, 0x03, 0x18, 0x06, + 0xb1, 0x08, 0x45, 0x0b, 0xd2, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, + 0xdc, 0x02, 0x58, 0x05, 0xcf, 0x07, 0x41, 0x0a, 0xad, 0x0c, 0x14, 0x0f, + 0x76, 0x01, 0xd3, 0x03, 0x2b, 0x06, 0x7e, 0x08, 0xcc, 0x0a, 0x16, 0x0d, + 0x5a, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x01, 0xd6, 0x03, 0x0e, 0x06, + 0x41, 0x08, 0x6f, 0x0a, 0x9a, 0x0c, 0xc0, 0x0e, 0xe2, 0x00, 0x00, 0x03, + 0x1a, 0x05, 0x30, 0x07, 0x43, 0x09, 0x51, 0x0b, 0x5c, 0x0d, 0x63, 0x0f, + 0x66, 0x01, 0x66, 0x03, 0x62, 0x05, 0x5b, 0x07, 0x50, 0x09, 0x42, 0x0b, + 0x30, 0x0d, 0x1b, 0x0f, 0x03, 0x01, 0xe8, 0x02, 0xc9, 0x04, 0xa8, 0x06, + 0x83, 0x08, 0x5b, 0x0a, 0x30, 0x0c, 0x02, 0x0e, 0xd1, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x01, 0x67, 0x03, 0x2d, 0x05, + 0xf1, 0x06, 0xb2, 0x08, 0x70, 0x0a, 0x2b, 0x0c, 0xe4, 0x0d, 0x9a, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x4e, 0x01, 0xff, 0x02, 0xad, 0x04, 0x59, 0x06, + 0x02, 0x08, 0xa9, 0x09, 0x4e, 0x0b, 0xf0, 0x0c, 0x90, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0xc8, 0x01, 0x61, 0x03, + 0xf7, 0x04, 0x8c, 0x06, 0x1e, 0x08, 0xad, 0x09, 0x3b, 0x0b, 0xc7, 0x0c, + 0x50, 0x0e, 0xd7, 0x0f, 0x5c, 0x01, 0xe0, 0x02, 0x61, 0x04, 0xe0, 0x05, + 0x5d, 0x07, 0xd8, 0x08, 0x51, 0x0a, 0xc8, 0x0b, 0x3d, 0x0d, 0xb1, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x92, 0x01, 0x00, 0x03, 0x6c, 0x04, + 0xd6, 0x05, 0x3e, 0x07, 0xa5, 0x08, 0x0a, 0x0a, 0x6d, 0x0b, 0xcf, 0x0c, + 0x2e, 0x0e, 0x8c, 0x0f, 0xe9, 0x00, 0x43, 0x02, 0x9d, 0x03, 0xf4, 0x04, + 0x4a, 0x06, 0x9e, 0x07, 0xf1, 0x08, 0x42, 0x0a, 0x92, 0x0b, 0xe0, 0x0c, + 0x2c, 0x0e, 0x77, 0x0f, 0xc1, 0x00, 0x09, 0x02, 0x50, 0x03, 0x95, 0x04, + 0xd8, 0x05, 0x1b, 0x07, 0x5c, 0x08, 0x9b, 0x09, 0xd9, 0x0a, 0x16, 0x0c, + 0x51, 0x0d, 0x8b, 0x0e, 0xc4, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfb, 0x00, 0x31, 0x02, 0x66, 0x03, 0x99, 0x04, 0xcb, 0x05, + 0xfc, 0x06, 0x2c, 0x08, 0x5a, 0x09, 0x87, 0x0a, 0xb3, 0x0b, 0xdd, 0x0c, + 0x07, 0x0e, 0x2f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x56, 0x00, 0x7c, 0x01, + 0xa0, 0x02, 0xc4, 0x03, 0xe6, 0x04, 0x07, 0x06, 0x27, 0x07, 0x46, 0x08, + 0x64, 0x09, 0x81, 0x0a, 0x9c, 0x0b, 0xb7, 0x0c, 0xd0, 0x0d, 0xe8, 0x0e, + 0x00, 0x10, 0x00, 0x00, 0x2a, 0xfd, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x08, 0x00, 0x08, 0x00, + 0x0a, 0x00, 0x0c, 0x00, 0x0e, 0x00, 0x10, 0x00, 0x12, 0x00, 0x16, 0x00, + 0x18, 0x00, 0x1a, 0x00, 0x1e, 0x00, 0x20, 0x00, 0x24, 0x00, 0x26, 0x00, + 0x2a, 0x00, 0x2e, 0x00, 0x32, 0x00, 0x36, 0x00, 0x3a, 0x00, 0x40, 0x00, + 0x44, 0x00, 0x4a, 0x00, 0x4e, 0x00, 0x54, 0x00, 0x5a, 0x00, 0x62, 0x00, + 0x68, 0x00, 0x70, 0x00, 0x78, 0x00, 0x80, 0x00, 0x88, 0x00, 0x92, 0x00, + 0x9a, 0x00, 0xa6, 0x00, 0xb0, 0x00, 0xbc, 0x00, 0xc8, 0x00, 0xd4, 0x00, + 0xe2, 0x00, 0x00, 0x00, 0x8a, 0xfd, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x0c, 0x00, + 0x10, 0x00, 0x14, 0x00, 0x18, 0x00, 0x1c, 0x00, 0x20, 0x00, 0x24, 0x00, + 0x28, 0x00, 0x2c, 0x00, 0x30, 0x00, 0x34, 0x00, 0x38, 0x00, 0x3c, 0x00, + 0x44, 0x00, 0x4c, 0x00, 0x50, 0x00, 0x58, 0x00, 0x60, 0x00, 0x68, 0x00, + 0x70, 0x00, 0x78, 0x00, 0x80, 0x00, 0x88, 0x00, 0x90, 0x00, 0x98, 0x00, + 0xa0, 0x00, 0xa8, 0x00, 0xb0, 0x00, 0xb8, 0x00, 0xc4, 0x00, 0xd0, 0x00, + 0xdc, 0x00, 0xe8, 0x00, 0xf4, 0x00, 0x00, 0x01, 0x0c, 0x01, 0x1c, 0x01, + 0x2c, 0x01, 0x00, 0x00, 0xea, 0xfd, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, + 0x52, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, + 0x08, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, + 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, + 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, + 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x10, 0x00, 0x10, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x4a, 0xfe, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, + 0xfa, 0x00, 0x00, 0x00, 0x7c, 0x7f, 0x79, 0x7f, 0x76, 0x7f, 0xfa, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x7f, 0xf4, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x64, 0x7f, 0xe9, 0xff, 0xfe, 0xff, 0x00, 0x00, 0x4b, 0x7f, 0xd0, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x1b, 0x7f, 0xa0, 0xff, 0x00, 0x00, 0x00, 0x00, + 0xbb, 0x7e, 0x42, 0xff, 0x00, 0x00, 0x00, 0x00, 0xfd, 0x7d, 0x86, 0xfe, + 0x04, 0x00, 0x00, 0x00, 0x87, 0x7c, 0x1d, 0xfd, 0x12, 0x00, 0x00, 0x00, + 0xb6, 0x79, 0x7f, 0xfa, 0x3e, 0x00, 0x00, 0x00, 0x73, 0x74, 0xf9, 0xf5, + 0xca, 0x00, 0x00, 0x00, 0x36, 0x6b, 0x33, 0xef, 0x32, 0x02, 0x00, 0x00, + 0x9b, 0x5c, 0x87, 0xe7, 0xce, 0x04, 0x00, 0x00, 0xf0, 0x48, 0xde, 0xe2, + 0xa0, 0x07, 0x00, 0x00, 0x6e, 0x33, 0x8a, 0xe4, 0xa4, 0x08, 0x00, 0x00, + 0x9c, 0x20, 0x22, 0xeb, 0x4c, 0x07, 0x00, 0x00, 0x0a, 0x13, 0x7d, 0xf2, + 0x02, 0x05, 0x00, 0x00, 0x89, 0x0a, 0x17, 0xf8, 0x06, 0x03, 0x00, 0x00, + 0xa6, 0x05, 0xa0, 0xfb, 0xb4, 0x01, 0x00, 0x00, 0xfa, 0x02, 0xac, 0xfd, + 0xe8, 0x00, 0x00, 0x00, 0x8e, 0x01, 0xc7, 0xfe, 0x7a, 0x00, 0x00, 0x00, + 0xcf, 0x00, 0x5c, 0xff, 0x40, 0x00, 0x00, 0x00, 0x6b, 0x00, 0xab, 0xff, + 0x22, 0x00, 0x00, 0x00, 0x38, 0x00, 0xd3, 0xff, 0x12, 0x00, 0x00, 0x00, + 0x1d, 0x00, 0xea, 0xff, 0x08, 0x00, 0x00, 0x00, 0x0f, 0x00, 0xf3, 0xff, + 0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0xf8, 0xff, 0x04, 0x00, 0x00, 0x00, + 0x04, 0x00, 0xfe, 0xff, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0xfd, 0xff, + 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xfd, 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x52, 0xff, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x62, 0xff, 0xff, 0xff, + 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x00, + 0x72, 0xff, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x82, 0xff, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x4d, 0x01, 0x00, 0x00, 0x92, 0xff, 0xff, 0xff, + 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xb2, 0xff, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, + 0x08, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, + 0x04, 0x00, 0x05, 0x00, 0x07, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x10, 0x00, + 0x13, 0x00, 0x17, 0x00, 0x1b, 0x00, 0x20, 0x00, 0x25, 0x00, 0x2a, 0x00, + 0x30, 0x00, 0x35, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x49, 0x00, 0x51, 0x00, + 0x58, 0x00, 0x60, 0x00, 0x68, 0x00, 0x71, 0x00, 0x7a, 0x00, 0x83, 0x00, + 0x8d, 0x00, 0x97, 0x00, 0xa1, 0x00, 0xac, 0x00, 0xb7, 0x00, 0xc2, 0x00, + 0xcd, 0x00, 0xd9, 0x00, 0xe5, 0x00, 0xf2, 0x00, 0xff, 0x00, 0x0c, 0x01, + 0x19, 0x01, 0x27, 0x01, 0x35, 0x01, 0x43, 0x01, 0x52, 0x01, 0x61, 0x01, + 0x70, 0x01, 0x7f, 0x01, 0x8f, 0x01, 0x9f, 0x01, 0xaf, 0x01, 0xc0, 0x01, + 0xd1, 0x01, 0xe2, 0x01, 0xf3, 0x01, 0x05, 0x02, 0x17, 0x02, 0x29, 0x02, + 0x3c, 0x02, 0x4e, 0x02, 0x61, 0x02, 0x75, 0x02, 0x88, 0x02, 0x9c, 0x02, + 0xb0, 0x02, 0xc4, 0x02, 0xd8, 0x02, 0xed, 0x02, 0x02, 0x03, 0x17, 0x03, + 0x2c, 0x03, 0x41, 0x03, 0x57, 0x03, 0x6d, 0x03, 0x83, 0x03, 0x99, 0x03, + 0xb0, 0x03, 0xc7, 0x03, 0xdd, 0x03, 0xf4, 0x03, 0x0c, 0x04, 0x23, 0x04, + 0x3b, 0x04, 0x52, 0x04, 0x6a, 0x04, 0x82, 0x04, 0x9a, 0x04, 0xb3, 0x04, + 0xcb, 0x04, 0xe4, 0x04, 0xfd, 0x04, 0x16, 0x05, 0x2f, 0x05, 0x48, 0x05, + 0x61, 0x05, 0x7a, 0x05, 0x94, 0x05, 0xad, 0x05, 0xc7, 0x05, 0xe1, 0x05, + 0xfb, 0x05, 0x15, 0x06, 0x2f, 0x06, 0x49, 0x06, 0x63, 0x06, 0x7e, 0x06, + 0x98, 0x06, 0xb2, 0x06, 0xcd, 0x06, 0xe7, 0x06, 0x02, 0x07, 0x1d, 0x07, + 0x37, 0x07, 0x52, 0x07, 0x6d, 0x07, 0x87, 0x07, 0xa2, 0x07, 0xbd, 0x07, + 0xd8, 0x07, 0xf3, 0x07, 0x0d, 0x08, 0x28, 0x08, 0x43, 0x08, 0x5e, 0x08, + 0x79, 0x08, 0x93, 0x08, 0xae, 0x08, 0xc9, 0x08, 0xe3, 0x08, 0xfe, 0x08, + 0x19, 0x09, 0x33, 0x09, 0x4e, 0x09, 0x68, 0x09, 0x82, 0x09, 0x9d, 0x09, + 0xb7, 0x09, 0xd1, 0x09, 0xeb, 0x09, 0x05, 0x0a, 0x1f, 0x0a, 0x39, 0x0a, + 0x53, 0x0a, 0x6c, 0x0a, 0x86, 0x0a, 0x9f, 0x0a, 0xb8, 0x0a, 0xd1, 0x0a, + 0xea, 0x0a, 0x03, 0x0b, 0x1c, 0x0b, 0x35, 0x0b, 0x4d, 0x0b, 0x66, 0x0b, + 0x7e, 0x0b, 0x96, 0x0b, 0xae, 0x0b, 0xc5, 0x0b, 0xdd, 0x0b, 0xf4, 0x0b, + 0x0c, 0x0c, 0x23, 0x0c, 0x39, 0x0c, 0x50, 0x0c, 0x67, 0x0c, 0x7d, 0x0c, + 0x93, 0x0c, 0xa9, 0x0c, 0xbf, 0x0c, 0xd4, 0x0c, 0xe9, 0x0c, 0xfe, 0x0c, + 0x13, 0x0d, 0x28, 0x0d, 0x3c, 0x0d, 0x50, 0x0d, 0x64, 0x0d, 0x78, 0x0d, + 0x8b, 0x0d, 0x9f, 0x0d, 0xb2, 0x0d, 0xc4, 0x0d, 0xd7, 0x0d, 0xe9, 0x0d, + 0xfb, 0x0d, 0x0d, 0x0e, 0x1e, 0x0e, 0x2f, 0x0e, 0x40, 0x0e, 0x51, 0x0e, + 0x61, 0x0e, 0x71, 0x0e, 0x81, 0x0e, 0x90, 0x0e, 0x9f, 0x0e, 0xae, 0x0e, + 0xbd, 0x0e, 0xcb, 0x0e, 0xd9, 0x0e, 0xe7, 0x0e, 0xf4, 0x0e, 0x01, 0x0f, + 0x0e, 0x0f, 0x1b, 0x0f, 0x27, 0x0f, 0x33, 0x0f, 0x3e, 0x0f, 0x49, 0x0f, + 0x54, 0x0f, 0x5f, 0x0f, 0x69, 0x0f, 0x73, 0x0f, 0x7d, 0x0f, 0x86, 0x0f, + 0x8f, 0x0f, 0x98, 0x0f, 0xa0, 0x0f, 0xa8, 0x0f, 0xaf, 0x0f, 0xb7, 0x0f, + 0xbe, 0x0f, 0xc4, 0x0f, 0xcb, 0x0f, 0xd0, 0x0f, 0xd6, 0x0f, 0xdb, 0x0f, + 0xe0, 0x0f, 0xe5, 0x0f, 0xe9, 0x0f, 0xed, 0x0f, 0xf0, 0x0f, 0xf3, 0x0f, + 0xf6, 0x0f, 0xf9, 0x0f, 0xfb, 0x0f, 0xfc, 0x0f, 0xfe, 0x0f, 0xff, 0x0f, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0xff, 0x0f, 0xfe, 0x0f, + 0xfc, 0x0f, 0xfb, 0x0f, 0xf9, 0x0f, 0xf6, 0x0f, 0xf3, 0x0f, 0xf0, 0x0f, + 0xed, 0x0f, 0xe9, 0x0f, 0xe5, 0x0f, 0xe0, 0x0f, 0xdb, 0x0f, 0xd6, 0x0f, + 0xd0, 0x0f, 0xcb, 0x0f, 0xc4, 0x0f, 0xbe, 0x0f, 0xb7, 0x0f, 0xaf, 0x0f, + 0xa8, 0x0f, 0xa0, 0x0f, 0x98, 0x0f, 0x8f, 0x0f, 0x86, 0x0f, 0x7d, 0x0f, + 0x73, 0x0f, 0x69, 0x0f, 0x5f, 0x0f, 0x54, 0x0f, 0x49, 0x0f, 0x3e, 0x0f, + 0x33, 0x0f, 0x27, 0x0f, 0x1b, 0x0f, 0x0e, 0x0f, 0x01, 0x0f, 0xf4, 0x0e, + 0xe7, 0x0e, 0xd9, 0x0e, 0xcb, 0x0e, 0xbd, 0x0e, 0xae, 0x0e, 0x9f, 0x0e, + 0x90, 0x0e, 0x81, 0x0e, 0x71, 0x0e, 0x61, 0x0e, 0x51, 0x0e, 0x40, 0x0e, + 0x2f, 0x0e, 0x1e, 0x0e, 0x0d, 0x0e, 0xfb, 0x0d, 0xe9, 0x0d, 0xd7, 0x0d, + 0xc4, 0x0d, 0xb2, 0x0d, 0x9f, 0x0d, 0x8b, 0x0d, 0x78, 0x0d, 0x64, 0x0d, + 0x50, 0x0d, 0x3c, 0x0d, 0x28, 0x0d, 0x13, 0x0d, 0xfe, 0x0c, 0xe9, 0x0c, + 0xd4, 0x0c, 0xbf, 0x0c, 0xa9, 0x0c, 0x93, 0x0c, 0x7d, 0x0c, 0x67, 0x0c, + 0x50, 0x0c, 0x39, 0x0c, 0x23, 0x0c, 0x0c, 0x0c, 0xf4, 0x0b, 0xdd, 0x0b, + 0xc5, 0x0b, 0xae, 0x0b, 0x96, 0x0b, 0x7e, 0x0b, 0x66, 0x0b, 0x4d, 0x0b, + 0x35, 0x0b, 0x1c, 0x0b, 0x03, 0x0b, 0xea, 0x0a, 0xd1, 0x0a, 0xb8, 0x0a, + 0x9f, 0x0a, 0x86, 0x0a, 0x6c, 0x0a, 0x53, 0x0a, 0x39, 0x0a, 0x1f, 0x0a, + 0x05, 0x0a, 0xeb, 0x09, 0xd1, 0x09, 0xb7, 0x09, 0x9d, 0x09, 0x82, 0x09, + 0x68, 0x09, 0x4e, 0x09, 0x33, 0x09, 0x19, 0x09, 0xfe, 0x08, 0xe3, 0x08, + 0xc9, 0x08, 0xae, 0x08, 0x93, 0x08, 0x79, 0x08, 0x5e, 0x08, 0x43, 0x08, + 0x28, 0x08, 0x0d, 0x08, 0xf3, 0x07, 0xd8, 0x07, 0xbd, 0x07, 0xa2, 0x07, + 0x87, 0x07, 0x6d, 0x07, 0x52, 0x07, 0x37, 0x07, 0x1d, 0x07, 0x02, 0x07, + 0xe7, 0x06, 0xcd, 0x06, 0xb2, 0x06, 0x98, 0x06, 0x7e, 0x06, 0x63, 0x06, + 0x49, 0x06, 0x2f, 0x06, 0x15, 0x06, 0xfb, 0x05, 0xe1, 0x05, 0xc7, 0x05, + 0xad, 0x05, 0x94, 0x05, 0x7a, 0x05, 0x61, 0x05, 0x48, 0x05, 0x2f, 0x05, + 0x16, 0x05, 0xfd, 0x04, 0xe4, 0x04, 0xcb, 0x04, 0xb3, 0x04, 0x9a, 0x04, + 0x82, 0x04, 0x6a, 0x04, 0x52, 0x04, 0x3b, 0x04, 0x23, 0x04, 0x0c, 0x04, + 0xf4, 0x03, 0xdd, 0x03, 0xc7, 0x03, 0xb0, 0x03, 0x99, 0x03, 0x83, 0x03, + 0x6d, 0x03, 0x57, 0x03, 0x41, 0x03, 0x2c, 0x03, 0x17, 0x03, 0x02, 0x03, + 0xed, 0x02, 0xd8, 0x02, 0xc4, 0x02, 0xb0, 0x02, 0x9c, 0x02, 0x88, 0x02, + 0x75, 0x02, 0x61, 0x02, 0x4e, 0x02, 0x3c, 0x02, 0x29, 0x02, 0x17, 0x02, + 0x05, 0x02, 0xf3, 0x01, 0xe2, 0x01, 0xd1, 0x01, 0xc0, 0x01, 0xaf, 0x01, + 0x9f, 0x01, 0x8f, 0x01, 0x7f, 0x01, 0x70, 0x01, 0x61, 0x01, 0x52, 0x01, + 0x43, 0x01, 0x35, 0x01, 0x27, 0x01, 0x19, 0x01, 0x0c, 0x01, 0xff, 0x00, + 0xf2, 0x00, 0xe5, 0x00, 0xd9, 0x00, 0xcd, 0x00, 0xc2, 0x00, 0xb7, 0x00, + 0xac, 0x00, 0xa1, 0x00, 0x97, 0x00, 0x8d, 0x00, 0x83, 0x00, 0x7a, 0x00, + 0x71, 0x00, 0x68, 0x00, 0x60, 0x00, 0x58, 0x00, 0x51, 0x00, 0x49, 0x00, + 0x42, 0x00, 0x3c, 0x00, 0x35, 0x00, 0x30, 0x00, 0x2a, 0x00, 0x25, 0x00, + 0x20, 0x00, 0x1b, 0x00, 0x17, 0x00, 0x13, 0x00, 0x10, 0x00, 0x0d, 0x00, + 0x0a, 0x00, 0x07, 0x00, 0x05, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x34, 0xee, 0xff, 0xff, 0x38, 0xee, 0xff, 0xff, + 0x0f, 0x00, 0x00, 0x00, 0x4d, 0x4c, 0x49, 0x52, 0x20, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x18, 0x00, 0x14, 0x00, + 0x10, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xf4, 0x05, 0x00, 0x00, + 0xf8, 0x05, 0x00, 0x00, 0xfc, 0x05, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0xa0, 0x05, 0x00, 0x00, 0x68, 0x05, 0x00, 0x00, 0x24, 0x05, 0x00, 0x00, + 0xc8, 0x04, 0x00, 0x00, 0x70, 0x04, 0x00, 0x00, 0x4c, 0x04, 0x00, 0x00, + 0x10, 0x04, 0x00, 0x00, 0xc8, 0x03, 0x00, 0x00, 0xa4, 0x03, 0x00, 0x00, + 0x4c, 0x03, 0x00, 0x00, 0x14, 0x03, 0x00, 0x00, 0x10, 0x02, 0x00, 0x00, + 0xc8, 0x01, 0x00, 0x00, 0x6c, 0x01, 0x00, 0x00, 0x48, 0x01, 0x00, 0x00, + 0x14, 0x01, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0xf6, 0xfa, 0xff, 0xff, 0x0c, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x16, 0xfb, 0xff, 0xff, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x3a, 0xfb, 0xff, 0xff, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0xa6, 0xfc, 0xff, 0xff, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, + 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x68, 0xef, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0xd6, 0xfc, 0xff, 0xff, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, + 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x98, 0xef, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x06, 0xfd, 0xff, 0xff, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, + 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0xc8, 0xef, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x36, 0xfd, 0xff, 0xff, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, + 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0xf8, 0xef, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x1e, 0xfc, 0xff, 0xff, 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x84, 0xfc, 0xff, 0xff, + 0x10, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x5f, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x62, 0x69, 0x74, 0x73, 0x00, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x00, 0x02, 0x24, 0x0f, 0x02, 0x01, + 0x02, 0x03, 0x40, 0x04, 0x04, 0x04, 0x24, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0xdc, 0xfc, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x73, 0x6e, 0x72, 0x5f, 0x73, 0x68, 0x69, 0x66, 0x74, 0x00, 0x01, 0x0b, + 0x01, 0x01, 0x01, 0x06, 0x04, 0x02, 0x24, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x21, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x20, 0xfd, 0xff, 0xff, + 0x10, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x61, 0x6c, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x6d, 0x69, + 0x6e, 0x75, 0x73, 0x5f, 0x73, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x69, 0x6e, + 0x67, 0x00, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x5f, + 0x73, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x00, 0x63, 0x6c, + 0x61, 0x6d, 0x70, 0x69, 0x6e, 0x67, 0x00, 0x6d, 0x69, 0x6e, 0x5f, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, + 0x69, 0x6e, 0x67, 0x00, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x00, 0x6f, 0x6e, 0x65, 0x5f, 0x6d, 0x69, 0x6e, + 0x75, 0x73, 0x5f, 0x73, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x69, 0x6e, 0x67, + 0x00, 0x73, 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x00, 0x73, + 0x6d, 0x6f, 0x6f, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x69, 0x74, + 0x73, 0x00, 0x73, 0x70, 0x65, 0x63, 0x74, 0x72, 0x61, 0x6c, 0x5f, 0x73, + 0x75, 0x62, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, + 0x69, 0x74, 0x73, 0x00, 0x09, 0xa5, 0x88, 0x75, 0x6d, 0x59, 0x4d, 0x3a, + 0x31, 0x23, 0x09, 0x00, 0x01, 0x00, 0x09, 0x00, 0x29, 0x3c, 0xd7, 0x03, + 0x00, 0x00, 0x33, 0x03, 0x28, 0x00, 0x67, 0x3e, 0x99, 0x01, 0x0a, 0x00, + 0x0e, 0x00, 0x05, 0x05, 0x69, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x1b, + 0x25, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x20, 0xfe, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x24, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x54, 0xfe, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x73, 0x00, 0x01, 0x0e, 0x01, 0x01, 0x01, 0x28, 0x04, + 0x02, 0x24, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x09, 0x00, 0x00, 0x00, 0x62, 0xfe, 0xff, 0xff, 0x0c, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0xca, 0xff, 0xff, 0xff, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, + 0x10, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x8c, 0xf2, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x18, 0x00, 0x14, 0x00, + 0x10, 0x00, 0x0c, 0x00, 0x0b, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0xd0, 0xf2, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xff, 0xff, 0x0c, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x64, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x65, 0x6e, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x00, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x00, 0x02, 0x17, + 0x0e, 0x00, 0x03, 0x00, 0x01, 0x00, 0x02, 0x00, 0xf1, 0x00, 0x05, 0x00, + 0x05, 0x05, 0x06, 0x25, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, + 0xb8, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x34, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x54, 0x00, 0x66, 0x66, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x00, 0x02, 0x0e, 0x0d, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x07, 0x00, + 0x00, 0x02, 0x05, 0x05, 0x06, 0x25, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x17, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x14, 0x00, 0x10, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x24, 0x01, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, + 0x10, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x73, 0x68, 0x69, 0x66, + 0x74, 0x00, 0x01, 0x07, 0x01, 0x01, 0x01, 0x0c, 0x04, 0x02, 0x24, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x2a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0xc4, 0x0a, 0x00, 0x00, 0x74, 0x0a, 0x00, 0x00, + 0x3c, 0x0a, 0x00, 0x00, 0x04, 0x0a, 0x00, 0x00, 0xd0, 0x09, 0x00, 0x00, + 0x88, 0x09, 0x00, 0x00, 0x40, 0x09, 0x00, 0x00, 0xfc, 0x08, 0x00, 0x00, + 0xb8, 0x08, 0x00, 0x00, 0x6c, 0x08, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, + 0xd4, 0x07, 0x00, 0x00, 0x88, 0x07, 0x00, 0x00, 0x3c, 0x07, 0x00, 0x00, + 0xf8, 0x06, 0x00, 0x00, 0xb8, 0x06, 0x00, 0x00, 0x84, 0x06, 0x00, 0x00, + 0x50, 0x06, 0x00, 0x00, 0x1c, 0x06, 0x00, 0x00, 0xd8, 0x05, 0x00, 0x00, + 0xa0, 0x05, 0x00, 0x00, 0x58, 0x05, 0x00, 0x00, 0x14, 0x05, 0x00, 0x00, + 0xd8, 0x04, 0x00, 0x00, 0x98, 0x04, 0x00, 0x00, 0x60, 0x04, 0x00, 0x00, + 0x20, 0x04, 0x00, 0x00, 0xe8, 0x03, 0x00, 0x00, 0xb0, 0x03, 0x00, 0x00, + 0x6c, 0x03, 0x00, 0x00, 0x1c, 0x03, 0x00, 0x00, 0xc4, 0x02, 0x00, 0x00, + 0x68, 0x02, 0x00, 0x00, 0x2c, 0x02, 0x00, 0x00, 0xe4, 0x01, 0x00, 0x00, + 0xac, 0x01, 0x00, 0x00, 0x78, 0x01, 0x00, 0x00, 0x44, 0x01, 0x00, 0x00, + 0x08, 0x01, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x48, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xfe, 0xf5, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x20, 0x00, 0x00, 0x00, + 0x44, 0xf5, 0xff, 0xff, 0x11, 0x00, 0x00, 0x00, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x6c, 0x3a, + 0x30, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x3e, 0xf6, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x1c, 0x00, 0x00, 0x00, 0x84, 0xf5, 0xff, 0xff, 0x0d, 0x00, 0x00, 0x00, + 0x63, 0x6c, 0x69, 0x70, 0x5f, 0x62, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x7a, 0xf6, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x24, 0x00, 0x00, 0x00, 0xc0, 0xf5, 0xff, 0xff, 0x15, 0x00, 0x00, 0x00, + 0x63, 0x6c, 0x69, 0x70, 0x5f, 0x62, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x2f, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xbe, 0xf6, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x14, 0x00, 0x00, 0x00, + 0x04, 0xf6, 0xff, 0xff, 0x05, 0x00, 0x00, 0x00, 0x61, 0x64, 0x64, 0x5f, + 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0xf2, 0xf6, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x18, 0x00, 0x00, 0x00, 0x38, 0xf6, 0xff, 0xff, 0x0b, 0x00, 0x00, 0x00, + 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x44, 0x69, 0x76, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x2a, 0xf7, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, 0x00, + 0x70, 0xf6, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x61, 0x64, 0x64, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x5a, 0xf7, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, 0x00, + 0xa0, 0xf6, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x6d, 0x75, 0x6c, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x8a, 0xf7, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x14, 0x00, 0x00, 0x00, + 0xd0, 0xf6, 0xff, 0xff, 0x06, 0x00, 0x00, 0x00, 0x43, 0x61, 0x73, 0x74, + 0x5f, 0x32, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0xbe, 0xf7, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x24, 0x00, 0x00, 0x00, 0x04, 0xf7, 0xff, 0xff, 0x16, 0x00, 0x00, 0x00, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x5f, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x6c, 0x6f, 0x67, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x02, 0xf8, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x18, 0x00, 0x00, 0x00, + 0x48, 0xf7, 0xff, 0xff, 0x0b, 0x00, 0x00, 0x00, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x5f, 0x70, 0x63, 0x61, 0x6e, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x3a, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, + 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0f, 0x38, 0x00, 0x00, 0x00, 0x80, 0xf7, 0xff, 0xff, + 0x28, 0x00, 0x00, 0x00, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x74, 0x72, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, + 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x92, 0xf8, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x34, 0x00, 0x00, 0x00, + 0xd8, 0xf7, 0xff, 0xff, 0x27, 0x00, 0x00, 0x00, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x62, 0x61, + 0x6e, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x74, 0x72, 0x61, 0x6c, 0x5f, + 0x73, 0x75, 0x62, 0x74, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xe6, 0xf8, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x2c, 0x00, 0x00, 0x00, + 0x2c, 0xf8, 0xff, 0xff, 0x1e, 0x00, 0x00, 0x00, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x62, 0x61, + 0x6e, 0x6b, 0x5f, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5f, 0x72, 0x6f, + 0x6f, 0x74, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x32, 0xf9, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, + 0x20, 0x00, 0x00, 0x00, 0x78, 0xf8, 0xff, 0xff, 0x12, 0x00, 0x00, 0x00, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x5f, 0x62, 0x61, 0x6e, 0x6b, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x72, 0xf9, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, + 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0f, 0x14, 0x00, 0x00, 0x00, 0xb8, 0xf8, 0xff, 0xff, + 0x06, 0x00, 0x00, 0x00, 0x43, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xa6, 0xf9, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x14, 0x00, 0x00, 0x00, + 0xec, 0xf8, 0xff, 0xff, 0x06, 0x00, 0x00, 0x00, 0x63, 0x6f, 0x6e, 0x63, + 0x61, 0x74, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0xda, 0xf9, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x1c, 0x00, 0x00, 0x00, 0x20, 0xf9, 0xff, 0xff, 0x0d, 0x00, 0x00, 0x00, + 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x64, 0x5f, 0x73, 0x6c, 0x69, 0x63, + 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, + 0x16, 0xfa, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x14, 0x00, 0x00, 0x00, 0x5c, 0xf9, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, + 0x43, 0x61, 0x73, 0x74, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x00, 0x00, 0x4a, 0xfa, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, + 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0f, 0x1c, 0x00, 0x00, 0x00, 0x90, 0xf9, 0xff, 0xff, + 0x0d, 0x00, 0x00, 0x00, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x65, + 0x6e, 0x65, 0x72, 0x67, 0x79, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x00, 0x00, 0x86, 0xfa, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, + 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x18, 0x00, 0x00, 0x00, 0xcc, 0xf9, 0xff, 0xff, + 0x0b, 0x00, 0x00, 0x00, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x72, + 0x66, 0x66, 0x74, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, + 0xbe, 0xfa, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x24, 0x00, 0x00, 0x00, 0x04, 0xfa, 0xff, 0xff, 0x16, 0x00, 0x00, 0x00, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x66, 0x74, 0x5f, 0x61, + 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x31, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfa, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, + 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x24, 0x00, 0x00, 0x00, 0x44, 0xfa, 0xff, 0xff, + 0x15, 0x00, 0x00, 0x00, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x66, + 0x66, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x63, 0x61, 0x6c, + 0x65, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, + 0x42, 0xfb, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x14, 0x00, 0x00, 0x00, 0x88, 0xfa, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x52, 0x65, 0x73, 0x68, 0x61, 0x70, 0x65, 0x00, 0x01, 0x00, 0x00, 0x00, + 0xe0, 0x01, 0x00, 0x00, 0x76, 0xfb, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, + 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x1c, 0x00, 0x00, 0x00, 0xbc, 0xfa, 0xff, 0xff, + 0x0d, 0x00, 0x00, 0x00, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0xb6, 0xfb, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x14, 0x00, 0x00, 0x00, + 0xfc, 0xfa, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x43, 0x6f, 0x6e, 0x73, + 0x74, 0x5f, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe6, 0xfb, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x14, 0x00, 0x00, 0x00, + 0x2c, 0xfb, 0xff, 0xff, 0x06, 0x00, 0x00, 0x00, 0x43, 0x6f, 0x6e, 0x73, + 0x74, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0xfc, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x14, 0x00, 0x00, 0x00, + 0x5c, 0xfb, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x43, 0x6f, 0x6e, 0x73, + 0x74, 0x5f, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0xfc, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x1c, 0x00, 0x00, 0x00, + 0x8c, 0xfb, 0xff, 0xff, 0x0d, 0x00, 0x00, 0x00, 0x52, 0x65, 0x73, 0x68, + 0x61, 0x70, 0x65, 0x2f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x82, 0xfc, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x24, 0x00, 0x00, 0x00, + 0xc8, 0xfb, 0xff, 0xff, 0x17, 0x00, 0x00, 0x00, 0x63, 0x6c, 0x69, 0x70, + 0x5f, 0x62, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2f, 0x4d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x2f, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc2, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x28, 0x00, 0x00, 0x00, 0x08, 0xfc, 0xff, 0xff, 0x18, 0x00, 0x00, 0x00, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x5f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x43, 0x6f, 0x6e, 0x73, 0x74, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, + 0x0a, 0xfd, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x28, 0x00, 0x00, 0x00, 0x50, 0xfc, 0xff, 0xff, 0x1a, 0x00, 0x00, 0x00, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x5f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x43, 0x6f, 0x6e, 0x73, 0x74, + 0x5f, 0x31, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, + 0x52, 0xfd, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x28, 0x00, 0x00, 0x00, 0x98, 0xfc, 0xff, 0xff, 0x1a, 0x00, 0x00, 0x00, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x5f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x43, 0x6f, 0x6e, 0x73, 0x74, + 0x5f, 0x32, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x9a, 0xfd, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x28, 0x00, 0x00, 0x00, 0xe0, 0xfc, 0xff, 0xff, 0x1a, 0x00, 0x00, 0x00, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x5f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x43, 0x6f, 0x6e, 0x73, 0x74, + 0x5f, 0x33, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0xe2, 0xfd, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x28, 0x00, 0x00, 0x00, 0x28, 0xfd, 0xff, 0xff, 0x1a, 0x00, 0x00, 0x00, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x5f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x43, 0x6f, 0x6e, 0x73, 0x74, + 0x5f, 0x34, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x00, + 0x2a, 0xfe, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x20, 0x00, 0x00, 0x00, 0x70, 0xfd, 0xff, 0xff, 0x11, 0x00, 0x00, 0x00, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x63, 0x61, 0x6e, 0x2f, + 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x7d, 0x00, 0x00, 0x00, 0x6a, 0xfe, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, + 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0xb0, 0xfd, 0xff, 0xff, + 0x13, 0x00, 0x00, 0x00, 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x64, 0x5f, + 0x73, 0x6c, 0x69, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xaa, 0xfe, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x24, 0x00, 0x00, 0x00, + 0xf0, 0xfd, 0xff, 0xff, 0x15, 0x00, 0x00, 0x00, 0x73, 0x74, 0x72, 0x69, + 0x64, 0x65, 0x64, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x2f, 0x73, 0x74, + 0x61, 0x63, 0x6b, 0x5f, 0x31, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xee, 0xfe, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, + 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x24, 0x00, 0x00, 0x00, 0x34, 0xfe, 0xff, 0xff, + 0x15, 0x00, 0x00, 0x00, 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x64, 0x5f, + 0x73, 0x6c, 0x69, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f, + 0x32, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x32, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x14, 0x00, 0x00, 0x00, 0x78, 0xfe, 0xff, 0xff, 0x06, 0x00, 0x00, 0x00, + 0x43, 0x61, 0x73, 0x74, 0x5f, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x62, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x14, 0x00, 0x00, 0x00, 0xa8, 0xfe, 0xff, 0xff, 0x05, 0x00, 0x00, 0x00, + 0x7a, 0x65, 0x72, 0x6f, 0x73, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x05, 0x00, 0x00, 0x00, 0x96, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x01, + 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x14, 0x00, 0x00, 0x00, 0xdc, 0xfe, 0xff, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x7a, 0x65, 0x72, 0x6f, 0x73, 0x5f, 0x31, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xca, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x14, 0x00, 0x00, 0x00, + 0x10, 0xff, 0xff, 0xff, 0x05, 0x00, 0x00, 0x00, 0x43, 0x6f, 0x6e, 0x73, + 0x74, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x16, 0x00, 0x1c, 0x00, 0x18, 0x00, 0x17, 0x00, 0x10, 0x00, + 0x0c, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, + 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x2c, 0x00, 0x00, 0x00, 0x5c, 0xff, 0xff, 0xff, 0x1d, 0x00, 0x00, 0x00, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x3a, 0x30, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x1c, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xc8, 0x01, 0x00, 0x00, + 0xa4, 0x01, 0x00, 0x00, 0x7c, 0x01, 0x00, 0x00, 0x68, 0x01, 0x00, 0x00, + 0x4c, 0x01, 0x00, 0x00, 0x3c, 0x01, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, + 0xdc, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, + 0x50, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x24, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x50, 0xfe, 0xff, 0xff, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, + 0x5c, 0xfe, 0xff, 0xff, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, + 0x68, 0xfe, 0xff, 0xff, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, + 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0xff, + 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x70, 0xfe, 0xff, 0xff, + 0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x13, 0x00, 0x00, 0x00, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x42, 0x61, 0x6e, 0x6b, 0x4c, 0x6f, 0x67, 0x00, + 0x98, 0xfe, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x0a, 0x00, 0x00, 0x00, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x50, 0x43, 0x41, 0x4e, 0x00, 0x00, 0xb8, 0xfe, 0xff, 0xff, + 0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x23, 0x00, 0x00, 0x00, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x42, 0x61, 0x6e, 0x6b, 0x53, 0x70, 0x65, 0x63, + 0x74, 0x72, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x00, 0xf0, 0xfe, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x1a, 0x00, 0x00, 0x00, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x42, 0x61, 0x6e, 0x6b, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x52, 0x6f, + 0x6f, 0x74, 0x00, 0x00, 0x20, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x42, 0x61, 0x6e, 0x6b, 0x00, 0x00, 0x00, 0x00, 0x60, 0xff, 0xff, 0xff, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x6c, 0xff, 0xff, 0xff, + 0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x0c, 0x00, 0x10, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x35, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, + 0x7c, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x0c, 0x00, 0x00, 0x00, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x00, 0x00, 0x00, 0x00, + 0xa0, 0xff, 0xff, 0xff, 0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x0a, 0x00, 0x00, 0x00, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x52, 0x66, 0x66, 0x74, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x12, 0x00, 0x00, 0x00, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x46, 0x66, + 0x74, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x00, 0x00, + 0x0c, 0x00, 0x0c, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, + 0x0c, 0x00, 0x10, 0x00, 0x0f, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x0c, 0x00, 0x00, 0x00, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x00, 0x00, 0x00, 0x00 +}; + +const unsigned int g_audio_preprocessor_int8_model_len = 8772; diff --git a/samples/modules/tflite-micro/micro_speech/src/inference/audio_preprocessor_int8_model.hpp b/samples/modules/tflite-micro/micro_speech/src/inference/audio_preprocessor_int8_model.hpp new file mode 100644 index 0000000000000..e77b3760de1f3 --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/src/inference/audio_preprocessor_int8_model.hpp @@ -0,0 +1,25 @@ +/* + * Copyright 2025 The TensorFlow Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef MICRO_SPEECH_OPENAMP_AUDIO_PREPROCESSOR_INT8_MODEL_H_ +#define MICRO_SPEECH_OPENAMP_AUDIO_PREPROCESSOR_INT8_MODEL_H_ + +extern const unsigned char g_audio_preprocessor_int8_model[]; +extern const unsigned int g_audio_preprocessor_int8_model_len; + +#endif /* MICRO_SPEECH_OPENAMP_AUDIO_PREPROCESSOR_INT8_MODEL_H_ */ diff --git a/samples/modules/tflite-micro/micro_speech/src/inference/micro_model_settings.h b/samples/modules/tflite-micro/micro_speech/src/inference/micro_model_settings.h new file mode 100644 index 0000000000000..6af099065c12b --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/src/inference/micro_model_settings.h @@ -0,0 +1,36 @@ +/* + * Copyright 2025 The TensorFlow Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef MICRO_SPEECH_OPENAMP_MODEL_SETTINGS_H_ +#define MICRO_SPEECH_OPENAMP_MODEL_SETTINGS_H_ + +/* The following values are derived from values used during model training. + * If you change the way you preprocess the input, update all these constants. + */ +constexpr int kAudioSampleFrequency = 16000; +constexpr int kFeatureSize = 40; +constexpr int kFeatureCount = 49; +constexpr int kFeatureElementCount = (kFeatureSize * kFeatureCount); +constexpr int kFeatureStrideMs = 20; +constexpr int kFeatureDurationMs = 30; + +/* Variables for the model's output categories. */ +constexpr int kCategoryCount = 4; +constexpr const char *kCategoryLabels[kCategoryCount] = {"silence", "unknown", "yes", "no"}; + +#endif /* MICRO_SPEECH_OPENAMP_MODEL_SETTINGS_H_ */ diff --git a/samples/modules/tflite-micro/micro_speech/src/inference/micro_speech_quantized_model.cpp b/samples/modules/tflite-micro/micro_speech/src/inference/micro_speech_quantized_model.cpp new file mode 100644 index 0000000000000..b494255f130d1 --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/src/inference/micro_speech_quantized_model.cpp @@ -0,0 +1,1590 @@ +/* + * Copyright 2025 The TensorFlow Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "micro_speech_quantized_model.hpp" + +alignas(8) const unsigned char g_micro_speech_quantized_model[] = { + 0x20, 0x00, 0x00, 0x00, 0x54, 0x46, 0x4c, 0x33, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x12, 0x00, 0x1c, 0x00, 0x04, 0x00, 0x08, 0x00, 0x0c, 0x00, + 0x10, 0x00, 0x14, 0x00, 0x00, 0x00, 0x18, 0x00, 0x12, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0xec, 0x48, 0x00, 0x00, 0x8c, 0x42, 0x00, 0x00, + 0x74, 0x42, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0c, 0x00, + 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x0b, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x6d, 0x69, 0x6e, 0x5f, + 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x28, 0x42, 0x00, 0x00, + 0xfc, 0x41, 0x00, 0x00, 0x68, 0x03, 0x00, 0x00, 0x34, 0x03, 0x00, 0x00, + 0x28, 0x03, 0x00, 0x00, 0x14, 0x03, 0x00, 0x00, 0xe8, 0x02, 0x00, 0x00, + 0xdc, 0x02, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, + 0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xbe, 0xbc, 0xff, 0xff, + 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x31, 0x2e, 0x35, 0x2e, + 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xba, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x50, 0xba, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xee, 0xbc, 0xff, 0xff, + 0x04, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0xfa, 0xee, 0x28, 0xc4, + 0xee, 0xfe, 0xcf, 0x0f, 0x1e, 0xf7, 0x1f, 0x06, 0x0d, 0xed, 0xe9, 0x83, + 0x5c, 0xc9, 0x18, 0xe3, 0xf9, 0x14, 0x28, 0x2a, 0x09, 0xf2, 0x18, 0x34, + 0x62, 0xea, 0xef, 0xd6, 0x36, 0xb7, 0x1e, 0xf7, 0x3b, 0x22, 0x28, 0x39, + 0xc2, 0x9d, 0xf1, 0x07, 0x5e, 0x0b, 0x1e, 0x2c, 0x07, 0xdd, 0xfd, 0xc3, + 0xd8, 0x4a, 0xf3, 0x28, 0xa7, 0x16, 0xd5, 0xf1, 0xc3, 0x05, 0xfd, 0x27, + 0xcc, 0xba, 0x1e, 0xcb, 0xd7, 0x3d, 0xd4, 0x29, 0x00, 0xfd, 0x28, 0x44, + 0xfb, 0xf2, 0xf3, 0xb6, 0x4f, 0xcf, 0x09, 0xf0, 0xfa, 0x45, 0x41, 0x49, + 0x05, 0xc5, 0x17, 0x5d, 0x64, 0x00, 0xf8, 0xee, 0x48, 0x17, 0xf4, 0xe9, + 0x2e, 0x4b, 0x2e, 0x3f, 0xdf, 0xee, 0xe4, 0x08, 0x38, 0xf1, 0x16, 0x13, + 0x2f, 0x2a, 0xed, 0xc2, 0xbf, 0x36, 0xf4, 0x02, 0xcf, 0xaa, 0xd2, 0xfa, + 0xac, 0x13, 0xf6, 0xe8, 0xb5, 0x68, 0x12, 0xb6, 0xce, 0x0e, 0xdf, 0x58, + 0xe4, 0x49, 0x14, 0x15, 0x03, 0xed, 0xfa, 0xd4, 0x40, 0xa7, 0xf6, 0xca, + 0xfb, 0x00, 0x4d, 0x5e, 0xe4, 0x55, 0x1d, 0x30, 0x45, 0xe2, 0xfc, 0x01, + 0x48, 0x81, 0xe9, 0xf1, 0x1e, 0xfc, 0x21, 0x32, 0xed, 0x4b, 0xed, 0xfa, + 0x2f, 0xd2, 0xfa, 0xfb, 0x4d, 0xa7, 0xed, 0xc7, 0x92, 0xdf, 0xe6, 0xdb, + 0xf8, 0x1f, 0xd9, 0xfa, 0x91, 0xf5, 0xe5, 0xc5, 0x8c, 0x17, 0x0f, 0xb9, + 0xd2, 0xc7, 0xfe, 0x68, 0xd3, 0x51, 0x2e, 0x49, 0x1f, 0xbd, 0x01, 0xeb, + 0x31, 0x17, 0xf0, 0xef, 0xff, 0xb8, 0x5d, 0x62, 0x02, 0x0f, 0x1f, 0x78, + 0x6a, 0xb0, 0xf9, 0xfe, 0x4f, 0xcc, 0xd3, 0xff, 0x0a, 0x96, 0x1e, 0x2c, + 0xed, 0xbc, 0xf4, 0x0b, 0x42, 0xc8, 0xf1, 0xea, 0x6e, 0x58, 0xec, 0xc4, + 0x99, 0xae, 0xdc, 0xd7, 0x12, 0x87, 0xd8, 0x06, 0xa2, 0xc2, 0xe6, 0xa2, + 0x81, 0x24, 0xe9, 0xac, 0xce, 0xb6, 0x15, 0x6b, 0xba, 0x00, 0x19, 0x58, + 0x29, 0xb6, 0xfe, 0x01, 0x25, 0x96, 0xd2, 0xec, 0x0e, 0x9c, 0x60, 0x5f, + 0xe9, 0xf4, 0xf5, 0x69, 0x6b, 0xb5, 0xe1, 0xf6, 0x5e, 0xb7, 0xb1, 0xe5, + 0x11, 0x9b, 0x18, 0x10, 0xe3, 0xe1, 0xe0, 0x0d, 0x4f, 0xa5, 0xde, 0xe5, + 0x6f, 0xe2, 0xfb, 0x99, 0x82, 0xa5, 0xc9, 0xb6, 0x1f, 0x46, 0xf3, 0x04, + 0xc6, 0xca, 0xd6, 0x97, 0x90, 0x1d, 0xc0, 0x95, 0xf0, 0x19, 0x30, 0x77, + 0xc2, 0x3c, 0xfa, 0x24, 0x02, 0x4d, 0x06, 0x07, 0x15, 0x02, 0xb0, 0xe7, + 0x27, 0x22, 0x67, 0x4d, 0xf1, 0xc2, 0xf4, 0x64, 0x38, 0x40, 0xdf, 0xf6, + 0x3a, 0x43, 0xb8, 0xe1, 0x0d, 0x15, 0x11, 0xfe, 0xf5, 0xec, 0xf9, 0xe5, + 0x22, 0x36, 0xe4, 0xfd, 0x6d, 0xbf, 0x0d, 0x8e, 0xb7, 0x15, 0xbf, 0x9f, + 0x16, 0xad, 0x0a, 0x02, 0x8e, 0x14, 0xda, 0x9b, 0x8e, 0xc3, 0xa6, 0xca, + 0xf5, 0x7f, 0x51, 0x56, 0xc1, 0xb3, 0xd9, 0x35, 0xf8, 0x7f, 0x04, 0x0a, + 0x03, 0x3f, 0xbe, 0xee, 0x19, 0x68, 0x78, 0x50, 0xf9, 0xa7, 0xf7, 0x7f, + 0x1d, 0x76, 0xdb, 0xe8, 0x33, 0xb9, 0xd7, 0xe7, 0xe8, 0x69, 0x15, 0xf7, + 0xf5, 0xb2, 0xfe, 0xe8, 0xf3, 0x5b, 0xe2, 0x06, 0x6e, 0x09, 0x36, 0xb7, + 0xcc, 0x38, 0xbf, 0x8a, 0x28, 0x14, 0x2e, 0x18, 0xa7, 0x26, 0xcb, 0xb2, + 0x95, 0x37, 0xac, 0xcd, 0xd7, 0x51, 0x67, 0x44, 0xcd, 0x31, 0xde, 0x04, + 0xe9, 0x6a, 0x00, 0x13, 0x0a, 0x0c, 0xdd, 0x16, 0xe0, 0x24, 0x7e, 0x49, + 0xf1, 0xb5, 0x04, 0x52, 0x01, 0x50, 0xdd, 0xf5, 0x26, 0xc9, 0xf4, 0xf8, + 0xd6, 0x31, 0x1b, 0xd0, 0xef, 0x03, 0x0a, 0xc0, 0xd4, 0x4f, 0xe2, 0xfd, + 0x72, 0xf4, 0x5a, 0xc9, 0xd7, 0x31, 0xc0, 0x8e, 0x17, 0x5e, 0x57, 0x00, + 0xb4, 0x3a, 0xc8, 0xd2, 0x92, 0x32, 0xcb, 0xd8, 0xc3, 0xa6, 0x63, 0x26, + 0xcf, 0xbc, 0xe8, 0x57, 0x9b, 0xe9, 0xf7, 0x1c, 0xea, 0x12, 0xf1, 0xf7, + 0xdb, 0xb9, 0x7f, 0x16, 0xf6, 0xe0, 0x08, 0x70, 0xa2, 0xed, 0xcc, 0xf1, + 0x1e, 0x10, 0x04, 0xf7, 0xa9, 0xb7, 0x34, 0xaa, 0x0a, 0xdb, 0x2a, 0xa6, + 0xb6, 0x10, 0xea, 0xf8, 0x5e, 0x06, 0x72, 0xdd, 0xd0, 0xb9, 0xd6, 0xa0, + 0x10, 0x9f, 0x5a, 0x17, 0xb1, 0xe7, 0xc0, 0x01, 0x9d, 0x01, 0xe0, 0xe0, + 0xaf, 0x9c, 0x46, 0xd8, 0xaf, 0xe8, 0xce, 0x02, 0x8a, 0xbb, 0xe4, 0xf6, + 0xf3, 0x36, 0x07, 0xca, 0xcb, 0x87, 0x6e, 0xcc, 0xd6, 0x9e, 0x0a, 0x2a, + 0x81, 0xd7, 0xcf, 0xc0, 0x04, 0xeb, 0x24, 0xcc, 0xc9, 0x95, 0x33, 0x81, + 0xf7, 0xad, 0x1c, 0x9c, 0xa4, 0xd6, 0xf9, 0xe6, 0x3d, 0x84, 0x7f, 0xcc, + 0xd4, 0xb0, 0xf4, 0xa2, 0xe9, 0x3c, 0x36, 0xee, 0xd5, 0xcf, 0xcd, 0x2d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xbc, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x8e, 0xbf, 0xff, 0xff, + 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x31, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0xbd, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x30, 0xbd, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0xce, 0xbf, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, + 0x8a, 0xfe, 0xff, 0xff, 0xa9, 0x00, 0x00, 0x00, 0xd0, 0xff, 0xff, 0xff, + 0xd0, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x4f, 0xfb, 0xff, 0xff, 0x4a, 0xfd, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xbf, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x80, 0x3e, 0x00, 0x00, + 0xff, 0xf9, 0xfd, 0x0a, 0x07, 0x08, 0x07, 0x03, 0x07, 0xf2, 0xd1, 0x09, + 0xf0, 0xe9, 0x28, 0x09, 0xdf, 0x05, 0xfa, 0xf0, 0xe8, 0xe3, 0x13, 0x0e, + 0x08, 0xef, 0xd3, 0xee, 0x0f, 0xe8, 0xeb, 0x14, 0xf7, 0xed, 0xfd, 0x1f, + 0xe8, 0xd5, 0xeb, 0xfc, 0x0e, 0xf4, 0xf7, 0x07, 0x05, 0xea, 0xf6, 0x1f, + 0xf8, 0xdb, 0xdc, 0x0b, 0x03, 0xdd, 0xd8, 0xf3, 0x0f, 0x19, 0xe1, 0x09, + 0xfc, 0xe4, 0x02, 0x04, 0xf1, 0x04, 0xeb, 0xf3, 0x1e, 0x06, 0xfd, 0x11, + 0xfc, 0xfa, 0xf6, 0x1f, 0x0f, 0x02, 0xf5, 0xf7, 0xff, 0x24, 0xdf, 0xf7, + 0xf8, 0xf3, 0xf6, 0xe9, 0xef, 0x03, 0xdd, 0xf2, 0x28, 0xe1, 0xf2, 0x22, + 0xf4, 0x09, 0xf7, 0xf9, 0xf0, 0xd4, 0xf9, 0xee, 0xff, 0x14, 0xda, 0xf3, + 0x11, 0xe2, 0xf6, 0x0c, 0xf2, 0xeb, 0xf8, 0xe8, 0xe3, 0x08, 0x02, 0x17, + 0xf4, 0x0b, 0x0c, 0x27, 0xe6, 0x02, 0x03, 0xf9, 0x14, 0x18, 0xf6, 0xeb, + 0x1f, 0x0c, 0xf1, 0xee, 0xfc, 0x08, 0xf0, 0xfe, 0xfd, 0xee, 0x17, 0xfd, + 0x1c, 0xef, 0xfd, 0xde, 0x04, 0x05, 0xf0, 0x31, 0xfa, 0x0b, 0xdc, 0x0d, + 0xed, 0xf5, 0xfa, 0xf4, 0x08, 0x0c, 0xd7, 0x1e, 0x15, 0x03, 0xf5, 0x02, + 0xf4, 0xfb, 0xed, 0x01, 0xfe, 0xd6, 0x1f, 0xfd, 0xfd, 0x0e, 0xfa, 0x06, + 0xf1, 0xf9, 0xe2, 0x16, 0xe9, 0xf1, 0x03, 0x0d, 0x0d, 0xdf, 0xf9, 0x1a, + 0x0e, 0xf6, 0xfc, 0x0a, 0x19, 0xe2, 0xe0, 0x09, 0x15, 0xf0, 0xf1, 0x06, + 0xf1, 0xe1, 0xef, 0x1a, 0x08, 0xe8, 0xfd, 0x12, 0x14, 0x06, 0xf1, 0xfc, + 0xea, 0xfb, 0xf7, 0xea, 0x1d, 0x09, 0xfa, 0xf6, 0x08, 0xf2, 0xe7, 0xf8, + 0xfc, 0x16, 0xf5, 0x0e, 0x08, 0xf9, 0x0a, 0x03, 0x26, 0xd8, 0x02, 0xf5, + 0xf6, 0xf6, 0xef, 0x1f, 0xe4, 0xe2, 0xfb, 0x02, 0x1b, 0xe6, 0xde, 0x00, + 0xf2, 0xed, 0xfb, 0x18, 0xe4, 0x16, 0x1a, 0x1d, 0xf1, 0xf6, 0xea, 0x16, + 0x05, 0xde, 0xfb, 0x18, 0xf5, 0xe4, 0xfe, 0xe2, 0x1b, 0x1c, 0x0c, 0xe8, + 0x02, 0xee, 0xfb, 0x07, 0x24, 0xf2, 0xe9, 0xfa, 0x0d, 0x05, 0xf1, 0x03, + 0xfe, 0xf6, 0x19, 0x06, 0xff, 0xf9, 0x04, 0xfb, 0x15, 0xef, 0xf1, 0xf8, + 0xe9, 0xe1, 0x10, 0x04, 0xfc, 0xe6, 0x1f, 0xed, 0x0b, 0xef, 0x00, 0x1e, + 0xe6, 0x16, 0xf3, 0x09, 0xfd, 0x08, 0x08, 0x06, 0x06, 0x23, 0xdf, 0xfc, + 0x08, 0xf4, 0xea, 0x0c, 0xf2, 0xe6, 0x18, 0xf5, 0x02, 0xf9, 0x50, 0x09, + 0x01, 0xda, 0x0b, 0x05, 0x12, 0x18, 0xef, 0x04, 0x0e, 0xd9, 0xff, 0xdc, + 0xf6, 0x16, 0xf9, 0xf4, 0xec, 0xff, 0xea, 0xe6, 0xfa, 0x0a, 0xed, 0xef, + 0x02, 0xf0, 0x25, 0x21, 0xf1, 0x26, 0xf5, 0xed, 0x09, 0xea, 0xea, 0x24, + 0xfa, 0x11, 0xfc, 0xdf, 0xf3, 0x0a, 0x28, 0x0c, 0x19, 0xff, 0xf5, 0xd6, + 0x0e, 0xe2, 0x2a, 0x06, 0xfa, 0x03, 0xf9, 0xe6, 0xef, 0x23, 0xf9, 0xfa, + 0xe6, 0xfe, 0xfc, 0x03, 0x06, 0x1a, 0xf9, 0x08, 0xe0, 0xe5, 0xff, 0x05, + 0x01, 0xe7, 0x12, 0x02, 0x1d, 0x05, 0x03, 0x05, 0x0b, 0xee, 0xed, 0xfc, + 0x0f, 0xf3, 0x02, 0xe0, 0x15, 0xdf, 0x02, 0xed, 0x10, 0x26, 0xef, 0x0d, + 0x06, 0xee, 0xef, 0xf6, 0xeb, 0x11, 0x09, 0xf4, 0xf7, 0x06, 0x0f, 0x01, + 0x2a, 0x0b, 0x01, 0xdd, 0xfc, 0xf4, 0xf1, 0x17, 0x03, 0x04, 0x07, 0xfc, + 0x22, 0xfc, 0xde, 0xfe, 0x0b, 0x03, 0xf3, 0xfb, 0x0c, 0x25, 0x04, 0x19, + 0x04, 0x03, 0x01, 0xfa, 0xfb, 0xf7, 0xf6, 0x0e, 0x15, 0x0e, 0x09, 0xff, + 0x06, 0xfa, 0xfb, 0x1e, 0xfb, 0x05, 0x22, 0xf9, 0xfe, 0xf7, 0x1d, 0xed, + 0xdf, 0x18, 0x09, 0xeb, 0xef, 0x04, 0x12, 0xea, 0xdf, 0xfb, 0xda, 0xf6, + 0xdf, 0x17, 0xef, 0xef, 0xe1, 0x1a, 0xd9, 0xe2, 0xe2, 0xfc, 0x05, 0x11, + 0xf6, 0xee, 0xe8, 0xf2, 0xe1, 0x08, 0x26, 0x04, 0xed, 0x03, 0xe0, 0xfb, + 0xee, 0x0c, 0xee, 0xf6, 0x04, 0x2d, 0xf2, 0xd3, 0xf4, 0xe0, 0xf8, 0x0c, + 0xfe, 0x11, 0x0b, 0xd7, 0xfd, 0x18, 0x07, 0x0d, 0x07, 0x08, 0xf4, 0xc6, + 0x0a, 0x0a, 0x1f, 0x0c, 0xf4, 0x1d, 0x02, 0x0b, 0x09, 0x0e, 0x21, 0xff, + 0x17, 0x0b, 0x0d, 0xf2, 0xed, 0xd7, 0x0a, 0xf8, 0x03, 0x06, 0xfa, 0xe5, + 0xfd, 0x03, 0x14, 0x0f, 0xe9, 0x1a, 0xf4, 0xda, 0x01, 0xe6, 0x09, 0x06, + 0x11, 0x0d, 0xfd, 0xeb, 0x16, 0x23, 0xfa, 0x00, 0x0b, 0x17, 0xf7, 0xda, + 0xd7, 0x1b, 0xfa, 0x01, 0x03, 0x05, 0xfe, 0xd6, 0x02, 0xee, 0xee, 0x02, + 0xf3, 0x06, 0xed, 0x03, 0xec, 0x01, 0xf2, 0x0f, 0x05, 0x17, 0x0b, 0xfb, + 0x0f, 0x05, 0x03, 0x13, 0xff, 0x06, 0x02, 0xf5, 0xf4, 0x18, 0x2b, 0xf0, + 0x00, 0x17, 0xfc, 0xfd, 0x05, 0x0b, 0x0e, 0x14, 0xe1, 0x24, 0x08, 0x24, + 0xe6, 0xeb, 0x21, 0x12, 0xfb, 0x12, 0xe7, 0xf4, 0xe8, 0x0e, 0x18, 0xee, + 0xf5, 0xf3, 0xd9, 0xf3, 0xdb, 0xec, 0x0c, 0x1e, 0xcf, 0x14, 0xdb, 0xe3, + 0xdc, 0x02, 0x0c, 0xfb, 0xdb, 0x1b, 0xd0, 0xfe, 0xf9, 0xfe, 0x2a, 0xf5, + 0x00, 0x0b, 0xcd, 0xe0, 0xe2, 0x0e, 0x04, 0xf8, 0xda, 0x1c, 0xe5, 0x0f, + 0xe8, 0xf4, 0xf7, 0x15, 0x06, 0xf8, 0x02, 0xf7, 0x0f, 0xfb, 0x17, 0xf9, + 0xda, 0x01, 0xda, 0xd1, 0xf6, 0x02, 0xfd, 0x16, 0xf1, 0xe4, 0xfa, 0x07, + 0xee, 0x0a, 0xf3, 0xfd, 0xf2, 0x23, 0xf0, 0xe1, 0x0a, 0x1a, 0x12, 0x1f, + 0xef, 0x27, 0x09, 0xf1, 0x0c, 0x13, 0x23, 0xfd, 0xf5, 0x03, 0xfe, 0x09, + 0xfd, 0x16, 0xf8, 0x07, 0x08, 0x25, 0x08, 0xf8, 0xf6, 0x0a, 0xf1, 0xf5, + 0x07, 0x09, 0x05, 0xcc, 0xf8, 0x08, 0x13, 0xf9, 0x1d, 0x11, 0x0f, 0xdc, + 0xee, 0xf3, 0x27, 0xf9, 0xf9, 0x22, 0xfa, 0x0d, 0xe2, 0x13, 0xfb, 0x11, + 0x03, 0x1e, 0xff, 0xfb, 0xed, 0xf1, 0x0e, 0x0b, 0x0f, 0x00, 0x06, 0xe0, + 0x15, 0xf3, 0x13, 0xfc, 0x18, 0xf9, 0xff, 0x09, 0xfa, 0x1f, 0x12, 0xe5, + 0xe2, 0x06, 0xf9, 0xf4, 0x07, 0x15, 0x0b, 0x04, 0xdb, 0x0d, 0xeb, 0xf3, + 0xe6, 0x06, 0xe5, 0xee, 0xd8, 0x22, 0xd8, 0x10, 0xea, 0xf9, 0x1c, 0xf7, + 0xd3, 0x11, 0xc3, 0xf8, 0xde, 0x05, 0x00, 0xe6, 0x07, 0xfd, 0xd3, 0x03, + 0xea, 0xe0, 0x13, 0x14, 0xcf, 0xeb, 0xcd, 0xd3, 0xde, 0xf5, 0xf0, 0x0c, + 0x0c, 0xfa, 0xeb, 0xd3, 0xfb, 0xfd, 0x08, 0xf9, 0xf4, 0x10, 0xfa, 0xd3, + 0xf4, 0x11, 0x11, 0xf8, 0xef, 0xf8, 0xf8, 0xf1, 0xfc, 0xe1, 0xf7, 0x12, + 0x04, 0xf4, 0xfb, 0xed, 0xef, 0x0c, 0xfd, 0x1c, 0xfe, 0x0e, 0xfd, 0xe2, + 0xfe, 0x0a, 0x02, 0xfe, 0xe6, 0x1f, 0xef, 0xe5, 0xe6, 0xf8, 0x16, 0x27, + 0xe8, 0x20, 0x05, 0xe3, 0xf1, 0xef, 0xee, 0xed, 0x0d, 0x11, 0x16, 0xfb, + 0xf3, 0xff, 0x14, 0x01, 0xff, 0x15, 0x10, 0x02, 0xe5, 0x28, 0x29, 0x13, + 0x13, 0x16, 0xe6, 0x00, 0xd2, 0x26, 0xfd, 0x03, 0x04, 0x05, 0x07, 0x06, + 0xf1, 0x0e, 0x05, 0x0d, 0xe2, 0x0f, 0x02, 0xe1, 0x07, 0xf7, 0x1c, 0xfa, + 0x14, 0x30, 0xf7, 0xee, 0x00, 0xfa, 0x3d, 0x06, 0x1c, 0x04, 0x06, 0x07, + 0x05, 0x1a, 0x10, 0xf6, 0xee, 0x0a, 0xeb, 0x04, 0xeb, 0xdf, 0x1d, 0x09, + 0xd5, 0xe8, 0xd6, 0xf4, 0xf0, 0x0f, 0x1d, 0xea, 0xf2, 0xf8, 0xa6, 0x0b, + 0xdc, 0x09, 0x08, 0x24, 0xee, 0x24, 0xaa, 0xe4, 0xcb, 0x15, 0xef, 0xe7, + 0xe9, 0x0c, 0xcf, 0x06, 0xe3, 0x12, 0x11, 0x00, 0x07, 0x14, 0xd7, 0xde, + 0xf6, 0x0f, 0x0b, 0x04, 0xfb, 0x0d, 0xf8, 0x0d, 0xf6, 0x1b, 0xf1, 0x21, + 0xdd, 0xfc, 0xf4, 0xe9, 0xf8, 0xe8, 0xf7, 0x06, 0x03, 0x1e, 0xce, 0xe1, + 0xea, 0xf6, 0x05, 0xf9, 0x16, 0x15, 0x04, 0xe0, 0x14, 0xf7, 0x1e, 0x1c, + 0x0a, 0x27, 0xef, 0xf3, 0x0f, 0xf3, 0xee, 0x04, 0xf8, 0xf1, 0x07, 0xe3, + 0x05, 0x0b, 0x00, 0x1c, 0x15, 0x27, 0x07, 0xf7, 0xfa, 0x0b, 0xfa, 0xfa, + 0x17, 0x13, 0xe1, 0xf5, 0xfb, 0x0c, 0x21, 0x2f, 0xd7, 0xfb, 0xf5, 0xfd, + 0xd3, 0xf4, 0x07, 0x0e, 0xfd, 0x0b, 0xfc, 0xfa, 0xf5, 0x0e, 0x02, 0xfa, + 0xfa, 0x19, 0xfd, 0xfa, 0xfc, 0x13, 0x24, 0x0c, 0xe4, 0x31, 0xf8, 0x12, + 0xf4, 0x04, 0x18, 0x29, 0x27, 0x19, 0xfc, 0x08, 0x11, 0xe3, 0x07, 0xfe, + 0x26, 0x40, 0x05, 0x02, 0x04, 0x02, 0x0f, 0xee, 0xf4, 0x27, 0xea, 0xf4, + 0xf5, 0x11, 0x26, 0x0b, 0xe7, 0x05, 0xd2, 0xf6, 0xea, 0xfa, 0x0b, 0xf9, + 0xfa, 0x16, 0xba, 0x00, 0xfb, 0x0d, 0x0b, 0xf9, 0xe6, 0xf6, 0xc5, 0xf8, + 0xf6, 0x01, 0x0f, 0xed, 0xed, 0x13, 0xcd, 0x0d, 0xda, 0x06, 0x17, 0xee, + 0x07, 0x1d, 0xb8, 0xfa, 0xe2, 0xea, 0xf2, 0xee, 0x04, 0x00, 0xdc, 0xd0, + 0xfb, 0xf5, 0xec, 0xfe, 0xf1, 0x0d, 0xf0, 0xdb, 0xf9, 0x0d, 0x03, 0x03, + 0x0e, 0x0a, 0xda, 0xd6, 0x01, 0xf2, 0x06, 0x14, 0x1c, 0x1f, 0xe8, 0xe8, + 0x0e, 0xfd, 0x0c, 0xf5, 0xf3, 0x3d, 0xf3, 0x05, 0x10, 0xfa, 0x1b, 0x18, + 0x08, 0x36, 0x09, 0xf1, 0xeb, 0xf9, 0x22, 0x01, 0xf3, 0xf7, 0xff, 0xf0, + 0x0c, 0xe9, 0x01, 0x29, 0x21, 0x15, 0x03, 0xee, 0xe9, 0x1a, 0xf7, 0x15, + 0x06, 0x25, 0xfa, 0xf0, 0xe4, 0xf1, 0x1f, 0x01, 0xdc, 0x2d, 0xce, 0xe9, + 0xea, 0x0b, 0x06, 0x2c, 0x0a, 0x30, 0xe7, 0x09, 0xf4, 0xf0, 0x10, 0x29, + 0xf9, 0x3d, 0xe7, 0xdc, 0xe4, 0xf7, 0x3b, 0x27, 0x23, 0x3a, 0x0a, 0x06, + 0x0e, 0xfd, 0x2c, 0x07, 0x2b, 0x1c, 0xfa, 0x00, 0xf9, 0x11, 0xea, 0x14, + 0xeb, 0xfc, 0x18, 0x03, 0xf1, 0x16, 0x12, 0x04, 0xcf, 0x12, 0xdd, 0xe4, + 0x0e, 0xf0, 0x09, 0xe8, 0xf3, 0xfb, 0xa8, 0xf9, 0xee, 0xfb, 0x1e, 0x1d, + 0xfd, 0x05, 0xab, 0xe5, 0xff, 0x01, 0xfe, 0x04, 0xf9, 0x02, 0xb9, 0xdc, + 0xdf, 0x05, 0xf1, 0xef, 0xf1, 0x1e, 0xc7, 0xee, 0xf7, 0x1e, 0x00, 0x00, + 0xf8, 0x10, 0xec, 0xe8, 0x04, 0x0f, 0xf6, 0xff, 0x04, 0x09, 0xe0, 0x0a, + 0x0e, 0xe4, 0xf0, 0xf1, 0x16, 0x2b, 0xd3, 0xe1, 0x0a, 0xef, 0xf9, 0xfe, + 0x0b, 0x22, 0xf5, 0x01, 0x0a, 0xf8, 0x02, 0x00, 0x17, 0x19, 0xf3, 0x05, + 0x21, 0xfa, 0xee, 0xee, 0x12, 0xf2, 0xfa, 0xf5, 0x05, 0x12, 0xee, 0xe4, + 0x28, 0xfa, 0xf1, 0x03, 0x15, 0x16, 0x18, 0xfd, 0x0f, 0x21, 0x04, 0xf4, + 0xe5, 0x0c, 0x06, 0x13, 0xde, 0x36, 0xe8, 0xfb, 0xe7, 0xfd, 0xf6, 0x12, + 0x0e, 0x1d, 0xea, 0xf8, 0xd4, 0xe8, 0x19, 0x07, 0xe5, 0x1c, 0xf7, 0x0c, + 0xef, 0x05, 0x0f, 0x09, 0xdd, 0x1a, 0xea, 0xd7, 0xf9, 0xf9, 0x12, 0x17, + 0x2e, 0x10, 0x08, 0xfe, 0x14, 0xf5, 0x1d, 0xfa, 0x06, 0x33, 0xed, 0xfe, + 0xf7, 0x11, 0xf0, 0x15, 0xe2, 0x24, 0xf6, 0x0a, 0xe2, 0xfc, 0x23, 0x12, + 0xdd, 0x11, 0xfd, 0xe5, 0x08, 0xff, 0x15, 0xf6, 0xf1, 0x1b, 0xae, 0xfe, + 0xe6, 0x15, 0x2c, 0x2d, 0x15, 0x15, 0xc5, 0xf8, 0xea, 0xe7, 0x07, 0x04, + 0xfe, 0x28, 0xa1, 0xf2, 0xe1, 0xf9, 0xf8, 0xff, 0xf4, 0x22, 0xb4, 0xdb, + 0x03, 0x20, 0xe6, 0xf3, 0x0e, 0x19, 0xe3, 0x0a, 0xfa, 0xee, 0xf3, 0xe5, + 0xd8, 0xf9, 0xf1, 0xde, 0x06, 0x05, 0xf2, 0xf5, 0xe7, 0x16, 0xd8, 0xfe, + 0x07, 0xea, 0xee, 0x0e, 0xfa, 0xff, 0xdb, 0xe7, 0x03, 0xed, 0x01, 0xfd, + 0x09, 0x1a, 0xfa, 0xe6, 0x05, 0x10, 0xe9, 0x01, 0x1f, 0x13, 0xf7, 0xf6, + 0xfb, 0x13, 0xff, 0xdb, 0xed, 0xfe, 0x0a, 0x10, 0x09, 0x29, 0xf5, 0x04, + 0xf5, 0x26, 0x0d, 0x0c, 0xf9, 0x16, 0xfa, 0x02, 0xf4, 0x2e, 0xde, 0xf5, + 0xe1, 0x1d, 0xfb, 0x02, 0x0b, 0x23, 0x07, 0xea, 0xd9, 0x0a, 0xf3, 0x0a, + 0x0f, 0x1e, 0xe7, 0xf1, 0xd7, 0x0b, 0xf6, 0xff, 0x0d, 0x24, 0xcc, 0x0a, + 0xee, 0xda, 0x14, 0x12, 0x11, 0x29, 0xf4, 0x1a, 0xef, 0x0b, 0xfa, 0xec, + 0x0c, 0x1b, 0xf4, 0xff, 0xf5, 0xef, 0x0f, 0x10, 0xd4, 0x04, 0xf9, 0xf8, + 0xec, 0xf9, 0x21, 0x05, 0xd3, 0x27, 0xf3, 0x17, 0xff, 0xf6, 0x15, 0xf9, + 0xed, 0x0a, 0xac, 0x02, 0xfd, 0xfb, 0x04, 0x29, 0x06, 0x03, 0xb8, 0xe6, + 0xd5, 0x17, 0x09, 0x1b, 0xf6, 0x1b, 0xab, 0xdc, 0xdf, 0xfd, 0x06, 0x09, + 0x09, 0x37, 0xbb, 0xed, 0x19, 0xd7, 0xe2, 0xdd, 0x05, 0x01, 0xec, 0xfb, + 0xe4, 0x0e, 0xeb, 0xf0, 0x03, 0x17, 0x04, 0xeb, 0x09, 0xee, 0xeb, 0xe7, + 0x0c, 0x16, 0xcb, 0x0e, 0x17, 0xd8, 0xe1, 0xf8, 0x2b, 0x19, 0xde, 0xeb, + 0x10, 0xf2, 0xff, 0xf8, 0xee, 0x0e, 0xe7, 0xf0, 0x15, 0x08, 0xf8, 0xdf, + 0x06, 0x0d, 0xf9, 0x14, 0xfa, 0x0b, 0x04, 0xfd, 0x15, 0x23, 0x20, 0xff, + 0xfd, 0x1d, 0x0c, 0xf1, 0xfe, 0x15, 0x0a, 0x02, 0xed, 0xfe, 0xfb, 0x04, + 0xfb, 0x1e, 0xdd, 0x05, 0xe0, 0x16, 0xf9, 0xf6, 0xfd, 0x32, 0xdc, 0xf2, + 0xd3, 0x08, 0xf4, 0xec, 0x17, 0x25, 0xe2, 0xf0, 0xee, 0xf1, 0x0d, 0xfe, + 0x13, 0x2d, 0x01, 0x11, 0xd4, 0xe4, 0x07, 0xfb, 0x32, 0x11, 0x14, 0x07, + 0xd7, 0x02, 0x10, 0xeb, 0x2b, 0x1d, 0x01, 0xfc, 0xf3, 0xf0, 0x13, 0x1a, + 0xdb, 0x20, 0x00, 0xf0, 0xf0, 0x05, 0x16, 0x03, 0xd4, 0xe3, 0xc2, 0xf0, + 0x06, 0x02, 0x1e, 0x0a, 0xec, 0x1f, 0xab, 0xea, 0xfa, 0xe3, 0x20, 0x22, + 0x03, 0x1b, 0xb3, 0x0e, 0xe3, 0xf3, 0x1d, 0x27, 0xe3, 0x10, 0xa7, 0xda, + 0xf3, 0x00, 0x0a, 0x0a, 0x04, 0xfb, 0xb2, 0x0f, 0x0c, 0xf5, 0x07, 0xff, + 0x13, 0x1e, 0xdb, 0xf6, 0xf9, 0xef, 0xe8, 0xe7, 0xfb, 0x18, 0xeb, 0xec, + 0x09, 0xda, 0xf1, 0xf0, 0x0b, 0x04, 0xe1, 0xfa, 0x1c, 0x25, 0xee, 0x01, + 0x0b, 0x29, 0xd7, 0x0c, 0x04, 0x0b, 0xef, 0xfd, 0x1c, 0xfc, 0xf1, 0xfb, + 0x0b, 0x0f, 0xdf, 0xed, 0x17, 0x38, 0x0c, 0xd7, 0xff, 0xfd, 0x01, 0xfc, + 0xfb, 0xfb, 0x18, 0x1a, 0x18, 0xe3, 0xf9, 0xf4, 0xfa, 0x20, 0x06, 0x09, + 0x11, 0x08, 0x1d, 0xf8, 0xfa, 0x1d, 0xf5, 0x1c, 0xf5, 0xfe, 0x03, 0x07, + 0xe4, 0x33, 0xc8, 0x0c, 0xe1, 0x13, 0xff, 0xe5, 0x10, 0x2c, 0xd3, 0xf0, + 0xed, 0x04, 0x07, 0x01, 0xf1, 0x16, 0xe0, 0x13, 0xfa, 0x11, 0x07, 0xfa, + 0x19, 0x16, 0x01, 0x00, 0x07, 0x26, 0x00, 0xec, 0x1d, 0x23, 0x05, 0xf4, + 0x07, 0x17, 0x2c, 0x1d, 0xee, 0xf0, 0x0c, 0x09, 0xe3, 0x1a, 0x24, 0x0b, + 0xf3, 0x1e, 0xce, 0xfe, 0xfe, 0x12, 0x21, 0x1a, 0xf6, 0x23, 0xc3, 0x03, + 0xf4, 0x10, 0x1a, 0x2a, 0xf4, 0x08, 0xbf, 0xff, 0x04, 0xf4, 0x0b, 0x1d, + 0x1a, 0xf8, 0xcc, 0x00, 0xf7, 0x13, 0xf4, 0xfd, 0xf4, 0x19, 0xbd, 0xef, + 0x0c, 0x0d, 0x02, 0xfc, 0x12, 0x13, 0xe9, 0xe7, 0xf5, 0xfa, 0xfa, 0xf6, + 0x1a, 0x2e, 0xce, 0xd4, 0x01, 0x12, 0xfd, 0xfc, 0x26, 0x10, 0xcc, 0xe7, + 0xee, 0x13, 0xee, 0xff, 0xef, 0xea, 0x00, 0x0e, 0x1a, 0x17, 0x04, 0x0c, + 0x04, 0x0c, 0xe6, 0xf3, 0xf6, 0xdb, 0xdd, 0x04, 0xf4, 0x22, 0x11, 0x16, + 0xf3, 0x07, 0xec, 0xf8, 0xf2, 0x07, 0x03, 0x02, 0xf5, 0x0a, 0xf6, 0x02, + 0x1d, 0x1b, 0x11, 0x06, 0xf8, 0x06, 0x02, 0xea, 0xf3, 0x1d, 0xce, 0x00, + 0xed, 0xf9, 0xef, 0xf6, 0xec, 0x22, 0xc7, 0xf0, 0xed, 0xdb, 0xe0, 0x02, + 0x11, 0x07, 0xe8, 0xf0, 0xd1, 0xed, 0xff, 0xfd, 0x0c, 0x2e, 0xd4, 0xed, + 0xec, 0x0e, 0xf1, 0x07, 0x01, 0x0e, 0x0e, 0xfe, 0xda, 0x0b, 0x0a, 0x0a, + 0x1f, 0x2e, 0x13, 0x07, 0x00, 0x07, 0x14, 0x21, 0xe9, 0xfc, 0xf0, 0x1e, + 0xd7, 0xea, 0x34, 0x07, 0xc6, 0x0c, 0xd4, 0xec, 0xfd, 0x06, 0x24, 0x0a, + 0xf3, 0x15, 0xaf, 0xff, 0xe9, 0xf1, 0x0d, 0x3e, 0xe9, 0x18, 0xba, 0x13, + 0xed, 0xd7, 0x0b, 0x31, 0x05, 0x0e, 0xaf, 0x13, 0xd6, 0x0e, 0x10, 0x02, + 0x02, 0x14, 0xcb, 0xd5, 0xf9, 0x0c, 0xf9, 0x0e, 0x1f, 0x24, 0xd5, 0xeb, + 0xff, 0xf1, 0xf5, 0x0c, 0x08, 0x07, 0xf4, 0xd7, 0x06, 0x10, 0xe8, 0xef, + 0xfc, 0x2f, 0xee, 0xf1, 0x18, 0xf8, 0xf4, 0x02, 0x11, 0x21, 0xd3, 0x12, + 0x14, 0xe4, 0xf4, 0x02, 0x05, 0x24, 0xca, 0xf2, 0xf3, 0xeb, 0xe7, 0xf8, + 0x16, 0x1a, 0xeb, 0x0d, 0x05, 0x16, 0xf1, 0xec, 0x11, 0x1c, 0x09, 0x1e, + 0xe0, 0xe6, 0xfa, 0x0e, 0x0d, 0x2a, 0xea, 0x2e, 0xed, 0xf9, 0xf7, 0x16, + 0x09, 0x05, 0xdd, 0xd6, 0x02, 0xeb, 0xf5, 0xf3, 0xe4, 0x3b, 0xed, 0x04, + 0xe0, 0x0e, 0xfd, 0x09, 0xfd, 0x35, 0xdc, 0x18, 0xf3, 0x04, 0xfa, 0x05, + 0x15, 0x34, 0xe5, 0xe1, 0xe4, 0xf4, 0xe0, 0xf9, 0x08, 0x32, 0x04, 0x08, + 0xf4, 0x0f, 0xff, 0x08, 0x09, 0x2f, 0x06, 0x02, 0xfd, 0x05, 0x0c, 0x24, + 0xe3, 0x1e, 0xf5, 0x0c, 0xdd, 0xf8, 0x18, 0x20, 0xd8, 0x14, 0xef, 0xf4, + 0x17, 0x08, 0x25, 0x14, 0x04, 0x06, 0xb0, 0xf5, 0xf5, 0x09, 0x0f, 0x3e, + 0xff, 0x28, 0xb3, 0xf5, 0x19, 0xd8, 0x14, 0x21, 0xd9, 0xf7, 0xb7, 0xe5, + 0xfe, 0xe7, 0x07, 0x1e, 0x04, 0x15, 0xc5, 0xf9, 0x14, 0x20, 0xeb, 0x01, + 0x01, 0x18, 0xce, 0x00, 0xe6, 0xe2, 0xf7, 0xfb, 0xf3, 0x0d, 0xd3, 0xf3, + 0x04, 0xf8, 0xf0, 0x03, 0xf1, 0x25, 0xb5, 0xef, 0x05, 0xe0, 0x01, 0xf6, + 0x04, 0x16, 0xd1, 0x01, 0x0a, 0x21, 0x01, 0x05, 0x0e, 0x01, 0xf0, 0x0a, + 0xf3, 0x00, 0x03, 0xf8, 0xfa, 0x03, 0x0b, 0xde, 0xfe, 0xff, 0xfb, 0xea, + 0x09, 0x02, 0xf5, 0xe8, 0xe7, 0x08, 0x00, 0xf5, 0xf8, 0x0f, 0x13, 0xfa, + 0xeb, 0xe8, 0xfb, 0x1f, 0x08, 0x16, 0xe6, 0xfa, 0xe1, 0x00, 0x03, 0xdd, + 0xf1, 0x26, 0xe5, 0x1d, 0xd9, 0xff, 0xf2, 0xf8, 0xff, 0x33, 0xea, 0xe5, + 0x03, 0x0c, 0x07, 0xf9, 0xf8, 0x0f, 0xe1, 0x1e, 0xdd, 0x0f, 0x00, 0xf1, + 0x06, 0x21, 0x09, 0x05, 0xf3, 0xec, 0xe6, 0x04, 0x07, 0x32, 0xf1, 0xf9, + 0xf2, 0x01, 0x18, 0x1f, 0xd2, 0xe2, 0x0a, 0xf4, 0xca, 0xfc, 0x28, 0x16, + 0xc2, 0x10, 0xf2, 0xfc, 0x08, 0xe9, 0x2a, 0x0f, 0xfa, 0xf5, 0xa9, 0x07, + 0xec, 0xe9, 0x19, 0x43, 0x0b, 0x1c, 0xa6, 0xe9, 0xf4, 0x16, 0x0d, 0x2b, + 0xfc, 0x11, 0x9a, 0xe1, 0xf1, 0x1c, 0xf5, 0x0f, 0xe4, 0x18, 0xc0, 0xd9, + 0x14, 0x26, 0xe6, 0xf8, 0x0a, 0x17, 0xec, 0xfb, 0xe1, 0x22, 0xdf, 0xf2, + 0xfe, 0x1e, 0xd4, 0xeb, 0xd7, 0x0e, 0x08, 0xf6, 0xef, 0xfc, 0xe6, 0xd4, + 0xf7, 0x0b, 0xfb, 0xf5, 0x01, 0x25, 0xd7, 0xfb, 0x0d, 0xfe, 0xff, 0xf3, + 0x1d, 0x32, 0xfe, 0xee, 0x12, 0xf2, 0x0c, 0xec, 0x02, 0x10, 0xef, 0x01, + 0xf2, 0x0b, 0xf3, 0xf7, 0xfa, 0x25, 0xfb, 0x0d, 0x11, 0x15, 0x04, 0xfc, + 0x0c, 0x21, 0x12, 0x29, 0x00, 0xfa, 0xf6, 0xf5, 0x06, 0x22, 0xea, 0xe2, + 0xee, 0x00, 0xfd, 0xf0, 0x0b, 0x1d, 0xd3, 0xe4, 0xe4, 0x0a, 0xfc, 0xe8, + 0xea, 0x2c, 0xed, 0xed, 0xef, 0xe8, 0xf2, 0x05, 0xfd, 0x15, 0xd8, 0xda, + 0xca, 0xee, 0xfa, 0x00, 0xfe, 0x0e, 0xf2, 0xf0, 0x0e, 0xf5, 0x04, 0x03, + 0x1d, 0x2b, 0xee, 0x05, 0x0f, 0x10, 0x13, 0x35, 0xe2, 0x04, 0x10, 0xdf, + 0xcf, 0xeb, 0x40, 0x26, 0xe4, 0x03, 0xf3, 0xf9, 0xf5, 0x14, 0x24, 0x2a, + 0xdf, 0xfe, 0xab, 0xe5, 0xfe, 0x1c, 0x27, 0x35, 0xdb, 0xff, 0xac, 0x01, + 0xf6, 0xfc, 0x19, 0x1a, 0x11, 0x1f, 0xa8, 0xf5, 0x02, 0x0f, 0x1a, 0x1f, + 0xf7, 0xf2, 0xa2, 0x00, 0x15, 0x22, 0xe4, 0x13, 0x00, 0x09, 0xd9, 0xd5, + 0x02, 0x19, 0xfd, 0xf8, 0xe7, 0xff, 0xfb, 0xe0, 0xef, 0xf7, 0xee, 0xf3, + 0xf3, 0x19, 0xb0, 0xdf, 0x00, 0x0f, 0x08, 0xf3, 0x15, 0x17, 0xec, 0x0f, + 0x11, 0x14, 0x02, 0x08, 0x10, 0x17, 0xe6, 0x08, 0xf7, 0x00, 0xed, 0xf7, + 0x29, 0x07, 0x10, 0x05, 0x05, 0xe7, 0xed, 0xf4, 0xf9, 0x15, 0xf9, 0xf0, + 0x08, 0x00, 0x03, 0x09, 0x21, 0x28, 0xf6, 0x0e, 0xfb, 0xf3, 0x03, 0xf7, + 0x0f, 0x0c, 0xf0, 0xf5, 0xe3, 0xd8, 0xf8, 0xf2, 0x09, 0x1c, 0xe7, 0xfb, + 0xe4, 0xf6, 0xfa, 0xf8, 0xf1, 0x42, 0xf6, 0xda, 0xdd, 0xd7, 0xfa, 0xff, + 0x2f, 0x2c, 0xda, 0x0a, 0xde, 0xec, 0xf1, 0x14, 0xfb, 0x1d, 0xeb, 0xee, + 0xf2, 0xeb, 0xf3, 0xed, 0x0e, 0x35, 0xf0, 0x06, 0x19, 0x04, 0x2f, 0x23, + 0xe2, 0x07, 0x13, 0x0f, 0xe9, 0xf0, 0x22, 0x2e, 0xd9, 0x1a, 0xcb, 0xed, + 0xfd, 0x04, 0x27, 0x1e, 0xf6, 0x07, 0x96, 0xd6, 0xd8, 0x11, 0x18, 0x56, + 0xd2, 0xfb, 0x92, 0xfc, 0x0b, 0x0a, 0x17, 0x2c, 0xe5, 0x04, 0xa2, 0xf8, + 0xe2, 0x04, 0x1a, 0x0d, 0xeb, 0x11, 0xa2, 0xe5, 0xe5, 0xf8, 0x02, 0xf7, + 0x17, 0x03, 0xca, 0xe9, 0x0c, 0x1f, 0xfe, 0xf5, 0x18, 0x12, 0xdd, 0x08, + 0x15, 0xff, 0xfc, 0xf6, 0xe1, 0x1d, 0xe2, 0xe1, 0xfe, 0xfc, 0x03, 0xff, + 0xf2, 0x23, 0xd2, 0x01, 0x13, 0xdd, 0xf3, 0xf4, 0xf2, 0x07, 0xef, 0x03, + 0x15, 0x21, 0xd8, 0xf8, 0x09, 0xf3, 0xe8, 0xea, 0xe8, 0xf2, 0x08, 0xf0, + 0x04, 0x1a, 0xf2, 0x19, 0xfb, 0x1b, 0x15, 0xfc, 0x1d, 0x30, 0xe5, 0x1e, + 0x09, 0xe8, 0xe9, 0x09, 0xf7, 0x2a, 0xe1, 0x0e, 0x00, 0x21, 0xf3, 0xff, + 0xfb, 0x01, 0xdf, 0xf2, 0xfe, 0xf4, 0xfc, 0xf0, 0x0b, 0x0b, 0xdd, 0xe4, + 0xd2, 0x14, 0xf7, 0xfe, 0x0b, 0x39, 0x01, 0xe6, 0xe4, 0x27, 0xfa, 0xe4, + 0x04, 0x2c, 0xe2, 0x04, 0xf5, 0x07, 0xf2, 0x03, 0xf0, 0x10, 0xf5, 0xf6, + 0xfc, 0x16, 0x22, 0x1b, 0xf8, 0x11, 0xe4, 0x09, 0xf6, 0xf0, 0x41, 0x1e, + 0xcf, 0x04, 0xea, 0xee, 0x0e, 0xf6, 0x1b, 0x2f, 0xc7, 0xf1, 0xba, 0xef, + 0x0f, 0x16, 0x1e, 0x39, 0x05, 0x1e, 0x90, 0xe6, 0x0d, 0xfa, 0x22, 0x3f, + 0xe3, 0x23, 0xa5, 0xe3, 0xe9, 0x0f, 0x05, 0x27, 0x02, 0x11, 0x99, 0x05, + 0xfa, 0x05, 0x03, 0x01, 0xff, 0x26, 0xd3, 0xf7, 0xf7, 0xf9, 0x05, 0xf4, + 0xef, 0x23, 0xd2, 0xdd, 0x05, 0x08, 0xfa, 0xff, 0x03, 0x04, 0xbd, 0xd7, + 0x14, 0x06, 0xef, 0x06, 0xe5, 0x05, 0xea, 0xea, 0x02, 0xfd, 0x0d, 0x00, + 0x08, 0xff, 0xe7, 0xfb, 0xfe, 0x13, 0xfe, 0xec, 0xf9, 0x02, 0xf3, 0xff, + 0xff, 0x08, 0x04, 0xed, 0x19, 0x1d, 0xfa, 0x0a, 0x0d, 0xf2, 0x0f, 0xec, + 0x25, 0x1c, 0xec, 0x0b, 0x01, 0xff, 0x01, 0xf6, 0x08, 0x09, 0xe8, 0xe2, + 0xec, 0x23, 0xe5, 0xe9, 0xf0, 0x2e, 0xbd, 0xe1, 0xef, 0x14, 0xe9, 0xf6, + 0xf5, 0x1d, 0xdc, 0xe3, 0xd7, 0xfc, 0xf9, 0xf2, 0xfe, 0x24, 0xf2, 0x05, + 0xd5, 0xed, 0xe9, 0xf9, 0xfa, 0x2d, 0xf0, 0xfe, 0xee, 0xf2, 0xe8, 0xf7, + 0x06, 0x14, 0x01, 0x10, 0x06, 0xf3, 0x0e, 0x0e, 0xc2, 0x1d, 0xf2, 0x1c, + 0xed, 0xe3, 0x53, 0x21, 0xb8, 0x0c, 0xde, 0x03, 0x15, 0xeb, 0x46, 0x39, + 0xdf, 0xf6, 0xa3, 0xee, 0xf6, 0xe0, 0x33, 0x50, 0xdd, 0x27, 0x9f, 0x07, + 0x13, 0xe2, 0x1f, 0x35, 0xed, 0x1f, 0xb7, 0x07, 0x11, 0xed, 0x17, 0x28, + 0xf4, 0x20, 0xc1, 0xec, 0xef, 0x16, 0x02, 0xfa, 0xe0, 0x1b, 0xf7, 0xdb, + 0xfd, 0x0a, 0xe7, 0xfb, 0xe7, 0x25, 0xe2, 0xe7, 0xf8, 0xf0, 0xee, 0xe9, + 0x02, 0x06, 0xc9, 0xe4, 0x14, 0xe3, 0xe2, 0xf7, 0xf8, 0xfd, 0xdd, 0xe2, + 0x08, 0x0a, 0xe4, 0x05, 0xf5, 0x16, 0xe7, 0x01, 0x00, 0x1c, 0xe7, 0xf0, + 0xf6, 0x19, 0xfe, 0x0c, 0xf2, 0x06, 0x03, 0xe8, 0x0b, 0xfe, 0xe3, 0x19, + 0x08, 0x1a, 0x10, 0xfd, 0x00, 0x21, 0xf0, 0xeb, 0x18, 0x02, 0xf3, 0x04, + 0xf0, 0x18, 0xdb, 0x05, 0x01, 0xde, 0xed, 0xe9, 0x23, 0x15, 0xaf, 0xe6, + 0xf1, 0x0a, 0xe6, 0xea, 0x01, 0x18, 0xd8, 0xfd, 0xf1, 0xe6, 0xec, 0xf5, + 0x0e, 0x1e, 0xcc, 0xfc, 0xe7, 0x00, 0xe9, 0x11, 0x00, 0x30, 0xf9, 0x14, + 0xf4, 0x19, 0xdd, 0xf7, 0xf7, 0x2f, 0xf4, 0xf2, 0xff, 0x27, 0x15, 0x1c, + 0xbc, 0x2f, 0xe9, 0x14, 0xf5, 0xe8, 0x44, 0x30, 0xe8, 0x1d, 0xe4, 0x18, + 0x11, 0x00, 0x0c, 0x2b, 0xf3, 0x29, 0x96, 0xe0, 0x06, 0xee, 0x3e, 0x55, + 0xdc, 0x13, 0x98, 0xdf, 0xf0, 0xfe, 0x17, 0x33, 0xe8, 0x09, 0xa3, 0x07, + 0xef, 0x0e, 0x1d, 0x37, 0xdd, 0xfe, 0xb5, 0x00, 0xf7, 0xe0, 0xea, 0xfd, + 0xfd, 0x19, 0xbc, 0xfd, 0x15, 0xfe, 0x01, 0xf3, 0xd5, 0x20, 0xbf, 0xe3, + 0x15, 0x0e, 0xf0, 0xf6, 0xf2, 0x14, 0xcc, 0xf0, 0xf7, 0x04, 0xf2, 0xff, + 0x0b, 0x02, 0xd2, 0xd8, 0xfa, 0xfc, 0xe5, 0x02, 0x00, 0xfb, 0xf0, 0xdc, + 0x1e, 0x10, 0x02, 0x01, 0x00, 0x18, 0xe9, 0xdb, 0x1e, 0xf6, 0xfc, 0x03, + 0xef, 0x0a, 0x00, 0x16, 0x00, 0x0f, 0xf4, 0x16, 0xfa, 0x0b, 0xe2, 0xfa, + 0xe0, 0x07, 0xfb, 0x02, 0x21, 0x0e, 0xdd, 0x0b, 0xea, 0xf0, 0xeb, 0xfb, + 0x19, 0x09, 0xd4, 0xf2, 0xef, 0x0b, 0x00, 0xeb, 0x1a, 0x2f, 0xea, 0x06, + 0x03, 0xf6, 0xf8, 0xfb, 0xfe, 0x1d, 0xea, 0xdd, 0xed, 0xfd, 0xfb, 0xe7, + 0xfe, 0x18, 0xf4, 0xfc, 0x0b, 0xf6, 0xfc, 0x0b, 0xfb, 0x28, 0x07, 0xff, + 0x07, 0x1e, 0x03, 0x21, 0xcf, 0x22, 0x05, 0xe6, 0xea, 0xe7, 0x43, 0x2e, + 0xe7, 0x14, 0xfb, 0x0a, 0x1e, 0xfe, 0x2c, 0x24, 0xd5, 0xfd, 0x9e, 0xd1, + 0xf2, 0x1c, 0x32, 0x51, 0x01, 0xf3, 0xac, 0xe1, 0xf4, 0xe5, 0x1c, 0x37, + 0xf1, 0x0f, 0xa7, 0xdb, 0x00, 0xf6, 0x0f, 0x18, 0xe1, 0x10, 0xc9, 0xc5, + 0xe8, 0xeb, 0xf2, 0xfd, 0xf6, 0x02, 0xc2, 0xff, 0x00, 0x19, 0x03, 0x0f, + 0x02, 0x22, 0xd4, 0xe7, 0x07, 0x0f, 0xe5, 0x1a, 0x09, 0x0b, 0xdc, 0xd2, + 0x00, 0x05, 0xee, 0xf8, 0xdc, 0x14, 0xd0, 0x0a, 0x0a, 0xfa, 0xeb, 0x04, + 0xf3, 0x06, 0xde, 0x05, 0xfb, 0xfd, 0xe3, 0xec, 0xfd, 0x14, 0xd7, 0x11, + 0x0e, 0xe6, 0x06, 0xec, 0xde, 0x22, 0xd7, 0x00, 0x03, 0xf5, 0xf5, 0x0d, + 0x01, 0x05, 0xea, 0x0b, 0x16, 0x04, 0xff, 0x13, 0xf3, 0x12, 0xd2, 0xdf, + 0x0b, 0xe4, 0x06, 0xf6, 0x08, 0x2d, 0xd3, 0xd6, 0xe7, 0x0a, 0xec, 0xff, + 0xfe, 0x01, 0xdf, 0xf4, 0xdf, 0x1c, 0xfe, 0xf9, 0xf7, 0x13, 0xca, 0xff, + 0x03, 0x06, 0xe9, 0xf7, 0x06, 0x08, 0xd7, 0xf3, 0xed, 0x08, 0xe3, 0xfd, + 0x0c, 0x11, 0x15, 0xfb, 0x15, 0x08, 0x28, 0x40, 0xe7, 0x0d, 0x08, 0xec, + 0xe8, 0x16, 0x67, 0x46, 0xc8, 0x16, 0xf1, 0x02, 0x24, 0x00, 0x3a, 0x43, + 0xd6, 0x12, 0xae, 0xe7, 0xf4, 0xf8, 0x3a, 0x65, 0xe4, 0x0c, 0xb2, 0xef, + 0x1f, 0xe8, 0x29, 0x59, 0xf8, 0x11, 0xc4, 0xe1, 0xfe, 0xfa, 0x27, 0x43, + 0xc9, 0x1e, 0xbb, 0xfb, 0xf3, 0x13, 0x15, 0x0d, 0xf1, 0x13, 0xcd, 0xf0, + 0x07, 0x19, 0x07, 0x00, 0xd8, 0xeb, 0xbf, 0xf0, 0xfc, 0xf6, 0xef, 0x16, + 0x01, 0x02, 0xc1, 0xdf, 0xfd, 0xe9, 0x06, 0x06, 0xf1, 0x08, 0xd7, 0xcc, + 0xfb, 0x0e, 0xfc, 0x14, 0xf2, 0x1a, 0xe2, 0x0d, 0xeb, 0x09, 0x07, 0x10, + 0xe6, 0x13, 0xeb, 0xf5, 0x15, 0x14, 0xeb, 0xfe, 0xf9, 0x17, 0xd2, 0xe3, + 0x1e, 0xf5, 0x04, 0x0a, 0xf1, 0x0e, 0xde, 0xe7, 0x01, 0x20, 0x0c, 0xfc, + 0xdc, 0xf9, 0xe5, 0xe9, 0xff, 0x1d, 0x0a, 0xfe, 0xec, 0x25, 0xaf, 0xd2, + 0x01, 0x16, 0xfc, 0x17, 0xe8, 0x1e, 0xcd, 0xd9, 0xe2, 0xf1, 0xeb, 0x08, + 0xff, 0x33, 0xe5, 0xfb, 0xeb, 0x04, 0xfe, 0xf7, 0xfd, 0x1f, 0xee, 0xff, + 0xed, 0xf8, 0xe0, 0xff, 0xfd, 0x2b, 0x0a, 0xf5, 0x15, 0x1d, 0xf3, 0x3f, + 0x16, 0xf6, 0xf2, 0xee, 0xf4, 0xef, 0xf0, 0x56, 0x0a, 0x1a, 0xbc, 0xfc, + 0x2f, 0xfb, 0xf0, 0x56, 0x1e, 0x0e, 0xc6, 0xe8, 0x06, 0x0b, 0x11, 0x62, + 0x3e, 0xf9, 0xb8, 0xc9, 0xed, 0xeb, 0x02, 0x63, 0x2c, 0xfd, 0xc5, 0xe9, + 0x00, 0x17, 0x0f, 0x37, 0xfe, 0x20, 0xcc, 0xe0, 0xe0, 0x0e, 0xe6, 0x20, + 0x0a, 0xfd, 0xdf, 0xee, 0x0b, 0x02, 0xee, 0x1f, 0xfb, 0x06, 0xd2, 0xed, + 0xfe, 0xeb, 0xfc, 0x12, 0xfd, 0x14, 0x00, 0xd8, 0x08, 0xf6, 0xec, 0x17, + 0xf9, 0x10, 0x00, 0xd9, 0x18, 0xf1, 0xee, 0x0f, 0xf4, 0x03, 0xee, 0xeb, + 0xf0, 0xef, 0xf2, 0x06, 0x04, 0x00, 0xf4, 0x0f, 0x09, 0x06, 0xf7, 0x0b, + 0xfd, 0x01, 0x03, 0x03, 0xf4, 0xf6, 0xdd, 0x14, 0x1c, 0xef, 0xf1, 0xdd, + 0xf7, 0x13, 0xd9, 0x15, 0xef, 0x02, 0xd2, 0xe7, 0x05, 0x05, 0xe2, 0x09, + 0xf2, 0x11, 0xf5, 0xba, 0xf0, 0x04, 0xe0, 0x01, 0x06, 0x10, 0xe6, 0xef, + 0xfc, 0x12, 0xf9, 0xf4, 0x1b, 0x2f, 0xe3, 0x0f, 0xd7, 0xf6, 0x0b, 0x11, + 0xf7, 0x0c, 0x00, 0x06, 0x18, 0xef, 0x06, 0x03, 0x0a, 0x09, 0xf6, 0x1a, + 0x0d, 0xed, 0xfe, 0x2c, 0x43, 0xf4, 0xe5, 0xde, 0xf5, 0x02, 0x25, 0x5a, + 0x49, 0xd4, 0xe6, 0x24, 0x1e, 0xf7, 0x0e, 0x5c, 0x5d, 0xf0, 0xf9, 0xe4, + 0x1c, 0xeb, 0x28, 0x7f, 0x5b, 0xec, 0xfa, 0xdb, 0x0c, 0xf5, 0x20, 0x49, + 0x51, 0xe1, 0xed, 0xe6, 0x0e, 0x26, 0x28, 0x33, 0x35, 0x05, 0xe1, 0xe4, + 0x1f, 0xfc, 0xf9, 0x39, 0x18, 0x04, 0xed, 0xed, 0x01, 0xe7, 0xe6, 0x08, + 0x09, 0x03, 0xe7, 0xf9, 0x0e, 0x06, 0xec, 0x08, 0x12, 0x1a, 0xda, 0xef, + 0xdf, 0xf9, 0xe2, 0x1e, 0x1c, 0x00, 0x12, 0xd7, 0x01, 0xf7, 0x21, 0x17, + 0x13, 0x19, 0xde, 0xe0, 0xec, 0x16, 0x01, 0x1b, 0x06, 0x0c, 0xf0, 0xe8, + 0x18, 0x03, 0x06, 0x0e, 0x09, 0xfa, 0x03, 0xf3, 0xdd, 0x01, 0xfb, 0x0a, + 0x2a, 0xf4, 0xf6, 0xda, 0xe9, 0xfe, 0xe9, 0x12, 0x19, 0xe9, 0x05, 0xdf, + 0x00, 0xeb, 0xf2, 0x10, 0x0c, 0xe1, 0xcd, 0xcb, 0xf2, 0x1f, 0xd9, 0x0c, + 0xfa, 0xfb, 0xe8, 0xde, 0x00, 0xfc, 0xe5, 0x00, 0x11, 0x02, 0xe6, 0x17, + 0x14, 0x00, 0xf2, 0xfd, 0x00, 0xe1, 0x10, 0x24, 0x12, 0xec, 0xed, 0x1e, + 0x09, 0x18, 0x03, 0x0c, 0x04, 0xf4, 0x15, 0x0f, 0x10, 0x18, 0xd6, 0x29, + 0x10, 0x04, 0x1c, 0xef, 0x0f, 0x0c, 0xc7, 0x04, 0xfe, 0xeb, 0xff, 0xf5, + 0xe3, 0x15, 0xfe, 0xcb, 0x10, 0xff, 0x12, 0xfb, 0xe4, 0xeb, 0xf9, 0x00, + 0x02, 0xf1, 0x14, 0x13, 0x01, 0x02, 0xf9, 0x01, 0x06, 0x0c, 0xf5, 0x0a, + 0x1e, 0x01, 0x19, 0x0e, 0x05, 0xf5, 0x0a, 0xff, 0xff, 0xf2, 0xfb, 0xdb, + 0xf8, 0x06, 0x17, 0xf2, 0xf7, 0x0d, 0x0e, 0xf4, 0xfa, 0xf7, 0x14, 0xdb, + 0xe0, 0xfd, 0x08, 0x16, 0xf7, 0x16, 0xfc, 0x09, 0x27, 0x07, 0x09, 0xfb, + 0x0a, 0xfc, 0x0c, 0xe4, 0xdb, 0xee, 0xff, 0x10, 0xf3, 0x09, 0xfa, 0xf4, + 0x23, 0xf3, 0xf4, 0x19, 0xff, 0xfa, 0xff, 0x19, 0x0f, 0x11, 0xed, 0xec, + 0xf8, 0x0f, 0x10, 0xf3, 0xff, 0x0b, 0xf7, 0x06, 0x0b, 0x0e, 0x07, 0xe4, + 0x18, 0x0a, 0x08, 0x0e, 0x02, 0x0a, 0x05, 0x19, 0x02, 0xf3, 0xfe, 0xfe, + 0x0b, 0x0f, 0xfc, 0xfa, 0x05, 0xf9, 0xe2, 0xf9, 0x1b, 0xf7, 0x0f, 0x07, + 0xfc, 0x12, 0xfe, 0x01, 0xfd, 0xf0, 0x04, 0xf4, 0xfd, 0x07, 0xf2, 0x04, + 0x04, 0x07, 0xef, 0x0c, 0xed, 0x0e, 0xf6, 0xef, 0x08, 0x07, 0x04, 0xe9, + 0xf3, 0x20, 0xda, 0x15, 0xf8, 0xff, 0xec, 0xe0, 0xf6, 0xff, 0xe9, 0x08, + 0x01, 0x10, 0xf0, 0xfc, 0xe9, 0x08, 0xe8, 0xf5, 0xf8, 0xe5, 0x17, 0xe6, + 0x03, 0xfc, 0x09, 0xf5, 0xdd, 0xf2, 0xff, 0x05, 0xf6, 0xf8, 0xf5, 0x07, + 0xfc, 0xf1, 0x04, 0xf3, 0x13, 0xe1, 0x0f, 0xf2, 0x0a, 0xf9, 0xfd, 0x1c, + 0xe0, 0x11, 0x1b, 0xe6, 0xef, 0x05, 0x05, 0x0c, 0x23, 0x10, 0x09, 0xfe, + 0xf7, 0x1a, 0xf1, 0xfc, 0x11, 0x1d, 0xff, 0x03, 0x03, 0xe6, 0x07, 0x11, + 0x0c, 0x0d, 0x16, 0x05, 0x05, 0x25, 0xf3, 0x10, 0x10, 0x06, 0x09, 0xe8, + 0x1a, 0xf0, 0xee, 0x09, 0xff, 0x24, 0xf7, 0xfb, 0xe6, 0x06, 0xfa, 0x08, + 0x03, 0x00, 0xf2, 0x04, 0xf0, 0xeb, 0x14, 0x1c, 0x03, 0x21, 0x14, 0x1d, + 0xfe, 0x03, 0xf6, 0x02, 0x09, 0xff, 0x00, 0x13, 0xef, 0x10, 0x1e, 0x0b, + 0x1d, 0x1c, 0xf1, 0xf6, 0xe7, 0xfd, 0x14, 0x01, 0xff, 0x13, 0xf7, 0xfc, + 0x00, 0x21, 0xe3, 0xeb, 0x07, 0x0e, 0x09, 0xf1, 0xf8, 0xfd, 0x03, 0xee, + 0x19, 0xfd, 0xff, 0xfb, 0xff, 0xea, 0xfb, 0x07, 0xf0, 0x0a, 0x04, 0x04, + 0x0b, 0x12, 0xfe, 0x0b, 0xe0, 0xff, 0xf6, 0xe5, 0xfc, 0x11, 0xed, 0xfd, + 0x15, 0x03, 0xdd, 0xdb, 0x04, 0xfe, 0xff, 0x0e, 0xff, 0xfa, 0xfb, 0xe5, + 0xef, 0xf6, 0xfe, 0x22, 0x0f, 0xe8, 0xfe, 0xf4, 0xfd, 0xd9, 0x03, 0x0a, + 0xdf, 0xcf, 0xf1, 0x14, 0x05, 0xfd, 0xfb, 0xf3, 0xfb, 0xfb, 0x0f, 0xf8, + 0x05, 0x09, 0x03, 0xf7, 0x05, 0x05, 0x13, 0xfb, 0xeb, 0x23, 0xe7, 0x18, + 0xfb, 0x00, 0xfe, 0xdd, 0xe9, 0xea, 0xd3, 0xe8, 0x1a, 0xef, 0x01, 0xf1, + 0x09, 0x1d, 0xd8, 0xfc, 0xda, 0x19, 0x03, 0xec, 0xe5, 0xf3, 0xed, 0x0a, + 0xf4, 0x13, 0x0b, 0xf7, 0x0c, 0x00, 0xf9, 0xea, 0xe3, 0xfe, 0xff, 0x0d, + 0x0a, 0x1b, 0xd7, 0x17, 0xeb, 0xe9, 0x00, 0x0e, 0xee, 0x24, 0xef, 0x09, + 0x07, 0xf0, 0xf5, 0x07, 0xf5, 0xf5, 0x10, 0x17, 0x06, 0xf7, 0xfc, 0x02, + 0xfb, 0xf9, 0xe7, 0x0a, 0x26, 0xf3, 0x01, 0x01, 0x09, 0x0b, 0x02, 0x27, + 0xf8, 0xee, 0xfd, 0x1c, 0xf8, 0xf2, 0x0f, 0xfc, 0x0d, 0xe0, 0xea, 0x02, + 0x0b, 0x00, 0xe0, 0x08, 0xfe, 0x10, 0x04, 0xfe, 0xeb, 0x13, 0x01, 0x0c, + 0x0e, 0xed, 0x09, 0x01, 0x0c, 0xe3, 0x10, 0xdf, 0xd1, 0x14, 0xf3, 0xef, + 0x09, 0xf0, 0xee, 0xe5, 0x11, 0xf4, 0xf6, 0x00, 0xe8, 0x20, 0x0a, 0xfc, + 0xea, 0xf7, 0x02, 0x16, 0xe7, 0xf3, 0x0d, 0xe4, 0x04, 0xe6, 0xef, 0xf8, + 0x0f, 0x23, 0x02, 0xe0, 0x01, 0x01, 0x01, 0x05, 0xf5, 0x0d, 0xf5, 0xf5, + 0xe1, 0xff, 0x04, 0x00, 0xf4, 0x0d, 0xee, 0xf1, 0xef, 0xf7, 0x0b, 0xff, + 0x1b, 0xec, 0x05, 0xe7, 0xf3, 0x13, 0x12, 0xf2, 0xf3, 0xfc, 0xea, 0x06, + 0xfe, 0x13, 0x12, 0xdb, 0x11, 0xe2, 0xfc, 0x0d, 0x1c, 0xe8, 0x1d, 0xfc, + 0xf2, 0xe2, 0x13, 0x1d, 0xda, 0xf6, 0x1c, 0x18, 0x1e, 0xf4, 0xfa, 0x03, + 0xdc, 0x0f, 0xff, 0xff, 0x18, 0x0b, 0xed, 0xf1, 0xf8, 0x02, 0xf4, 0x10, + 0xf9, 0xeb, 0x0b, 0x0e, 0x0f, 0x01, 0x02, 0x1b, 0x06, 0x10, 0x00, 0xe7, + 0x23, 0x0d, 0xf6, 0x11, 0x08, 0xf5, 0x0f, 0x05, 0x13, 0xf7, 0x01, 0x01, + 0x0c, 0xf6, 0xf9, 0xf0, 0x29, 0x01, 0xe9, 0x11, 0x02, 0xfa, 0xeb, 0x16, + 0x0e, 0x10, 0x09, 0x0e, 0x1c, 0x0a, 0xe3, 0xd3, 0x01, 0xe3, 0x00, 0x06, + 0xe2, 0xe9, 0x19, 0xef, 0x12, 0xf3, 0xfc, 0x02, 0x0b, 0x0c, 0x0d, 0xed, + 0xfd, 0xf6, 0xf9, 0xe9, 0xf2, 0x28, 0xfe, 0x03, 0xec, 0x03, 0x00, 0xf8, + 0xde, 0x0d, 0x25, 0x07, 0x1a, 0xe7, 0xfd, 0x29, 0xd8, 0xf7, 0xfb, 0xde, + 0x0c, 0x08, 0x06, 0x22, 0xee, 0x1d, 0x05, 0x07, 0xf0, 0xfb, 0xfe, 0x07, + 0xf1, 0x04, 0xe9, 0x01, 0xfc, 0xf1, 0x00, 0xeb, 0xe3, 0x08, 0xec, 0xfe, + 0x04, 0xeb, 0xfc, 0x01, 0xf6, 0x0e, 0xdf, 0xf8, 0x12, 0xe3, 0x16, 0xdc, + 0x21, 0x0a, 0xe6, 0x06, 0xe5, 0x10, 0x07, 0xf7, 0x1e, 0xde, 0xe3, 0x07, + 0x16, 0xed, 0x23, 0xf2, 0x12, 0x0d, 0xe9, 0xf9, 0xe8, 0xfe, 0x0e, 0x02, + 0x18, 0x0a, 0xea, 0xec, 0xfb, 0xfe, 0x0c, 0x1b, 0x19, 0x20, 0xfa, 0x07, + 0xe5, 0x0c, 0x04, 0x27, 0xdb, 0xe6, 0xfe, 0x0d, 0x0a, 0x0a, 0xfe, 0x39, + 0xdd, 0xde, 0x05, 0xec, 0x09, 0x05, 0x0a, 0x2c, 0xf4, 0x02, 0x1f, 0xd3, + 0x24, 0xee, 0x0f, 0x3c, 0xf5, 0xfd, 0xf8, 0xf8, 0x12, 0xf5, 0xf3, 0x19, + 0xf9, 0xda, 0xf6, 0x0a, 0x0a, 0xf4, 0x09, 0x0f, 0xfc, 0x00, 0x01, 0x01, + 0xf3, 0xf8, 0x05, 0xf3, 0x0c, 0x19, 0x0e, 0xfd, 0xfa, 0xe1, 0xfc, 0x0c, + 0x03, 0xfb, 0x1b, 0x06, 0xcc, 0xe4, 0x08, 0xf9, 0x10, 0xe9, 0x06, 0x00, + 0x17, 0xe8, 0x0d, 0x12, 0xca, 0xf5, 0x23, 0xe4, 0x21, 0xf6, 0x19, 0x33, + 0xdd, 0xfa, 0x0c, 0x01, 0x14, 0x07, 0x00, 0x34, 0xda, 0x05, 0x07, 0x01, + 0x07, 0xe4, 0x06, 0x24, 0x02, 0xff, 0xf0, 0x09, 0xfc, 0xf4, 0x03, 0x06, + 0xee, 0x08, 0xe2, 0x1d, 0xfa, 0x0c, 0xfc, 0x02, 0x03, 0xe5, 0xf0, 0xe2, + 0x0a, 0x18, 0x12, 0x0c, 0x1e, 0x20, 0xed, 0x20, 0xe4, 0x01, 0x2a, 0x09, + 0x0d, 0x0e, 0xd0, 0xf4, 0xdd, 0xfd, 0x2b, 0xf2, 0x08, 0x0c, 0xf8, 0xf7, + 0xfc, 0xf9, 0x15, 0xef, 0x19, 0x1c, 0x01, 0xff, 0xe2, 0x01, 0xf3, 0x30, + 0x0e, 0xfb, 0x15, 0xe8, 0x1c, 0x00, 0xfa, 0x16, 0xef, 0xea, 0xfb, 0x05, + 0xf0, 0x0e, 0x02, 0x13, 0xf4, 0x01, 0x03, 0xe5, 0x29, 0x07, 0x09, 0x24, + 0xf9, 0xe3, 0xf8, 0xde, 0x2d, 0xf4, 0xf5, 0x40, 0xed, 0xdf, 0x07, 0xef, + 0x0f, 0x0a, 0x0b, 0x32, 0x0d, 0xe8, 0x00, 0xe6, 0xf6, 0xfc, 0xfd, 0x19, + 0x11, 0x09, 0xf3, 0x03, 0xea, 0xf1, 0xfb, 0x02, 0xfd, 0x06, 0xff, 0xfe, + 0x09, 0xec, 0x06, 0x0c, 0x15, 0xf9, 0x06, 0xd7, 0xe3, 0xf7, 0xed, 0x01, + 0x03, 0xfd, 0x14, 0x01, 0x0e, 0xe0, 0x37, 0x0d, 0xd2, 0x18, 0x2f, 0xea, + 0x12, 0x0d, 0x05, 0x3a, 0xd5, 0x07, 0x1e, 0xf2, 0x21, 0x11, 0xf9, 0x36, + 0xd3, 0xf5, 0x12, 0xf6, 0xfb, 0xf6, 0x06, 0x0f, 0xde, 0xf9, 0x06, 0x09, + 0xdf, 0xff, 0x0b, 0xf3, 0xf5, 0x01, 0xf1, 0xea, 0xf2, 0x02, 0x12, 0xfc, + 0x0e, 0xee, 0xf8, 0xeb, 0x00, 0xef, 0x21, 0x0f, 0x09, 0xef, 0xeb, 0x1e, + 0xef, 0xf2, 0x26, 0xf9, 0x17, 0xf1, 0xf1, 0xf0, 0x0c, 0x10, 0x1d, 0xff, + 0x1d, 0x06, 0x03, 0xf6, 0xfb, 0x14, 0x1b, 0x03, 0x22, 0xfd, 0xec, 0x03, + 0xfa, 0xf8, 0x01, 0x2b, 0x1e, 0x1b, 0x09, 0x09, 0x07, 0xff, 0xf0, 0x20, + 0xee, 0x14, 0xfb, 0xf6, 0xf8, 0x11, 0xd9, 0x29, 0xf4, 0xfa, 0x07, 0xef, + 0x20, 0xf9, 0xf2, 0x30, 0xee, 0xf0, 0xf3, 0xd6, 0x0d, 0xfe, 0x03, 0x36, + 0xf5, 0xd7, 0x01, 0xe6, 0x04, 0xf0, 0x05, 0x1f, 0x0f, 0xdd, 0xff, 0xf8, + 0x1f, 0xf2, 0x04, 0x37, 0xfa, 0x00, 0xfd, 0xf8, 0x10, 0xe1, 0xfb, 0x0d, + 0xed, 0xf6, 0xe2, 0xfe, 0x08, 0xfe, 0x07, 0x08, 0x08, 0x11, 0x0a, 0xf0, + 0xf8, 0xf5, 0x04, 0xea, 0x08, 0x12, 0x06, 0x0d, 0x0f, 0x10, 0x40, 0x28, + 0xc0, 0xfb, 0x3f, 0x08, 0x1d, 0x09, 0x1b, 0x3d, 0xee, 0xf4, 0x29, 0x13, + 0x20, 0xfc, 0x11, 0x4c, 0xdb, 0x02, 0x15, 0x05, 0xec, 0xeb, 0x0a, 0x22, + 0xe7, 0x00, 0x02, 0x01, 0xd4, 0xea, 0x0a, 0xf3, 0xe3, 0xf8, 0xf5, 0xfa, + 0x01, 0x0d, 0x19, 0x06, 0x24, 0x13, 0x02, 0xf5, 0xf1, 0xf1, 0x1b, 0x0f, + 0x19, 0x04, 0xe3, 0xf9, 0xe7, 0x02, 0x29, 0xfc, 0x29, 0xec, 0xe9, 0x04, + 0xdc, 0x22, 0x1d, 0xfd, 0x1f, 0x01, 0xec, 0xe8, 0xf5, 0x14, 0x1b, 0x19, + 0x06, 0x0e, 0x02, 0x0d, 0xf9, 0x06, 0xfc, 0x15, 0x07, 0xfa, 0x0c, 0xe1, + 0x18, 0x1a, 0xe8, 0x1b, 0xe9, 0xef, 0x0a, 0x18, 0xfc, 0x05, 0xf9, 0x14, + 0xdc, 0x04, 0x01, 0xff, 0x07, 0xfd, 0xf0, 0x2c, 0xf2, 0xec, 0x0e, 0xe7, + 0x1a, 0x05, 0xe8, 0x35, 0x13, 0x09, 0xf9, 0x07, 0xfe, 0xfa, 0x0d, 0x40, + 0x0c, 0xea, 0xf4, 0x04, 0x01, 0x11, 0xfc, 0x23, 0xeb, 0xf4, 0xe9, 0x04, + 0xeb, 0xe7, 0x07, 0x09, 0xfb, 0xf1, 0xf6, 0xfd, 0x02, 0xfa, 0x02, 0xff, + 0x00, 0xff, 0xf1, 0xf1, 0x1a, 0xe9, 0x10, 0xe3, 0x0b, 0x0c, 0x08, 0x04, + 0x1b, 0x0a, 0x2b, 0x10, 0xe1, 0x01, 0x1f, 0x06, 0x04, 0xec, 0x19, 0x49, + 0xee, 0xf8, 0x22, 0x0c, 0x20, 0x02, 0x07, 0x31, 0xe7, 0xff, 0x0f, 0xf0, + 0xfd, 0xea, 0x13, 0x26, 0xce, 0xfa, 0xff, 0xee, 0xe9, 0xfe, 0x15, 0x08, + 0x04, 0x05, 0x0d, 0xfa, 0xdd, 0xf8, 0x07, 0x0b, 0x33, 0xef, 0xec, 0xf9, + 0xd9, 0xe6, 0x1d, 0x10, 0x41, 0xf6, 0xdf, 0x11, 0xe3, 0x14, 0x1d, 0xfb, + 0x2b, 0x15, 0xdc, 0x09, 0xf6, 0x05, 0x16, 0x00, 0x1c, 0x27, 0xe4, 0xfc, + 0xf7, 0x16, 0x08, 0x08, 0x2f, 0xdd, 0xf8, 0xfa, 0xe9, 0x0e, 0x0b, 0x0b, + 0x02, 0x12, 0x02, 0xfd, 0x19, 0x03, 0xeb, 0x11, 0xf4, 0x09, 0x09, 0x15, + 0x12, 0x0d, 0xef, 0x1c, 0xe4, 0xfe, 0x17, 0x0c, 0x09, 0x04, 0xea, 0x2f, + 0xf2, 0x1e, 0x02, 0xfb, 0xfe, 0xe3, 0x00, 0x2e, 0x04, 0xf9, 0x0c, 0x05, + 0x27, 0x0c, 0x07, 0x2d, 0xf7, 0x0b, 0xfb, 0xf9, 0x1c, 0xdf, 0x11, 0x36, + 0x05, 0xf2, 0x02, 0xf8, 0x0b, 0x07, 0x05, 0xfb, 0xfc, 0x0e, 0x13, 0xfa, + 0xfb, 0x09, 0xf5, 0xfd, 0x06, 0x15, 0xf9, 0x03, 0x18, 0xfd, 0x1a, 0x0a, + 0x03, 0xe2, 0xfb, 0x00, 0x1e, 0xfe, 0x4f, 0x27, 0xe1, 0xf7, 0x31, 0xf0, + 0x1b, 0xec, 0x07, 0x5f, 0xe2, 0xf8, 0x40, 0x05, 0x17, 0x24, 0x0c, 0x3c, + 0xf3, 0x10, 0x13, 0xf8, 0x0b, 0xf3, 0xf9, 0x36, 0xe1, 0xf3, 0xf4, 0xe8, + 0xef, 0xf8, 0xfc, 0xeb, 0xe3, 0xfb, 0xf0, 0xee, 0xdb, 0x06, 0x0c, 0x11, + 0x1e, 0x10, 0xe2, 0xe9, 0xeb, 0x0d, 0x34, 0x0f, 0x43, 0xd9, 0xef, 0x08, + 0xec, 0x05, 0x1d, 0x02, 0x33, 0xef, 0xf4, 0xf7, 0xe6, 0xf9, 0x22, 0x07, + 0x04, 0x06, 0xe9, 0x02, 0xf0, 0xfc, 0x24, 0x20, 0x24, 0x17, 0xe6, 0x0f, + 0x05, 0xf6, 0xfc, 0x1f, 0xf2, 0x01, 0x0d, 0xe7, 0xff, 0x1d, 0xf0, 0xfa, + 0xd0, 0x00, 0xff, 0x0e, 0x23, 0xf9, 0xf3, 0x11, 0xde, 0x0d, 0x05, 0x04, + 0x0b, 0x0b, 0xfb, 0x26, 0x0d, 0x0d, 0xff, 0xe8, 0x16, 0xe8, 0x0b, 0x3c, + 0x18, 0xe4, 0x04, 0xff, 0xfa, 0xf3, 0xff, 0x40, 0xee, 0x06, 0xfc, 0x0d, + 0x00, 0xf7, 0x13, 0x3f, 0xf7, 0x13, 0x06, 0x08, 0xf9, 0x13, 0xf2, 0x19, + 0xfd, 0xf9, 0xf3, 0xe6, 0xfc, 0x07, 0xf6, 0xfd, 0x0a, 0x22, 0x00, 0x01, + 0x19, 0xff, 0xe7, 0xff, 0x08, 0xfd, 0x03, 0xfd, 0x1f, 0xe7, 0x28, 0x08, + 0xde, 0xf3, 0x43, 0xf6, 0x0c, 0xfe, 0x1e, 0x52, 0xf2, 0x04, 0x17, 0xf2, + 0x08, 0x0d, 0x04, 0x38, 0xde, 0x0c, 0x10, 0xef, 0xdf, 0x0f, 0x01, 0x24, + 0xde, 0xe1, 0x0d, 0xfd, 0xd4, 0xf6, 0x12, 0x0e, 0xed, 0x01, 0xf0, 0xf3, + 0xfd, 0xff, 0x18, 0xf3, 0x36, 0xda, 0xf6, 0xef, 0xe8, 0xef, 0x37, 0x27, + 0x4e, 0xf8, 0xf4, 0xff, 0xe5, 0xf3, 0x32, 0x0b, 0x36, 0x08, 0xe9, 0xf6, + 0xe2, 0x13, 0x21, 0xfe, 0x12, 0xed, 0xdd, 0xfb, 0xf8, 0x05, 0x0f, 0x03, + 0x1c, 0x04, 0xfc, 0xf2, 0x23, 0x0e, 0x03, 0xfc, 0xf9, 0x18, 0xf7, 0x01, + 0x1b, 0x03, 0xf5, 0xfd, 0xde, 0xf3, 0x19, 0xfc, 0x11, 0x02, 0xe7, 0x13, + 0xde, 0xd8, 0xf2, 0x05, 0x28, 0x02, 0x02, 0x27, 0x07, 0x08, 0xff, 0x07, + 0x27, 0x0e, 0x19, 0x40, 0xfb, 0x02, 0x0c, 0xf6, 0x0d, 0x07, 0x0f, 0x47, + 0xf8, 0x05, 0x0e, 0xfd, 0x03, 0x1e, 0x07, 0x32, 0xe7, 0xf6, 0x24, 0x01, + 0x01, 0x02, 0x0a, 0xff, 0xf6, 0x26, 0x15, 0xf0, 0x04, 0x13, 0x03, 0xfa, + 0xfe, 0xf6, 0xf1, 0x09, 0x2a, 0xe6, 0xea, 0xf6, 0x17, 0x13, 0xeb, 0xff, + 0x15, 0xeb, 0x23, 0x06, 0xc8, 0xf6, 0x33, 0xeb, 0xf4, 0xe7, 0x12, 0x2a, + 0xe3, 0xe6, 0x32, 0xfa, 0x16, 0x15, 0x17, 0x40, 0xf1, 0x08, 0x1a, 0xf3, + 0xf6, 0x0c, 0x0c, 0x11, 0xd0, 0x22, 0x02, 0xee, 0xea, 0xf4, 0xf8, 0xf9, + 0x13, 0x10, 0x17, 0xf5, 0xf1, 0x0a, 0x0e, 0xfd, 0x32, 0xda, 0xf1, 0xe2, + 0xdb, 0xf2, 0x34, 0x1f, 0x53, 0xfc, 0xe4, 0xf2, 0xf6, 0xf2, 0x1d, 0x04, + 0x4a, 0xec, 0xee, 0x06, 0xdf, 0x01, 0x1a, 0x04, 0x27, 0xfc, 0xe6, 0xfd, + 0xd9, 0xfd, 0x0e, 0x00, 0x0c, 0x16, 0xf3, 0x03, 0xf7, 0xfc, 0x0e, 0x0f, + 0x09, 0x06, 0x06, 0x04, 0x08, 0x02, 0xed, 0xf5, 0xe4, 0xe6, 0x07, 0x06, + 0x03, 0x18, 0xea, 0x13, 0xe2, 0xfa, 0x10, 0xf2, 0x02, 0xec, 0x03, 0x3c, + 0xf6, 0xf6, 0x0a, 0x10, 0x09, 0xf8, 0x15, 0x24, 0xfd, 0x0d, 0x09, 0x01, + 0x00, 0xff, 0x00, 0x1a, 0xf0, 0xee, 0x08, 0x03, 0x1d, 0x05, 0x16, 0x46, + 0xe6, 0xf8, 0x08, 0x00, 0x09, 0x09, 0xff, 0x01, 0xfc, 0x20, 0xfc, 0xec, + 0x05, 0x1b, 0x03, 0xf1, 0x12, 0xe4, 0xfa, 0x24, 0x1c, 0xf5, 0xf2, 0x05, + 0x11, 0xe7, 0xfa, 0x02, 0x20, 0xea, 0x31, 0x10, 0xcf, 0xd8, 0x33, 0xee, + 0xff, 0x09, 0x20, 0x3f, 0xe2, 0x0a, 0x29, 0xee, 0x3a, 0xf2, 0x1e, 0x39, + 0x02, 0x1e, 0xfe, 0xf2, 0xef, 0xe2, 0x0d, 0x0f, 0xf1, 0x19, 0x02, 0xe7, + 0xec, 0xff, 0xfe, 0xe4, 0xfe, 0xfb, 0x02, 0xf6, 0xf1, 0xf4, 0x07, 0x1a, + 0x2a, 0xf9, 0x06, 0xf9, 0xda, 0xf4, 0x22, 0x02, 0x4f, 0x0a, 0xf3, 0xfc, + 0xf3, 0xf6, 0x25, 0x0a, 0x28, 0x01, 0xf7, 0x09, 0xe6, 0x05, 0x28, 0xf7, + 0x1e, 0xf2, 0xee, 0x13, 0xee, 0x05, 0x0f, 0x0a, 0x09, 0xe8, 0xe8, 0x0e, + 0x05, 0x12, 0x0f, 0x15, 0x02, 0xec, 0xf8, 0x02, 0xf7, 0x05, 0xf8, 0xff, + 0xdc, 0x00, 0x01, 0x00, 0x12, 0x17, 0xec, 0x19, 0xfa, 0x09, 0xfa, 0xf3, + 0x1d, 0x0b, 0x07, 0x25, 0xea, 0x0c, 0xf5, 0xfa, 0x04, 0xf7, 0xfe, 0x33, + 0xfe, 0x14, 0xef, 0x04, 0xf0, 0x00, 0x00, 0x3a, 0xea, 0xfa, 0x10, 0x01, + 0xe4, 0x00, 0xff, 0x23, 0xe9, 0x26, 0x15, 0x10, 0x04, 0x14, 0x0d, 0x08, + 0xf8, 0xfd, 0x10, 0xfb, 0x00, 0x21, 0x06, 0xfa, 0x0f, 0x08, 0xf1, 0x09, + 0x28, 0xf0, 0xd8, 0x0d, 0x08, 0x09, 0x02, 0xfb, 0x12, 0x03, 0x0e, 0xfb, + 0xce, 0xf0, 0x39, 0xe5, 0x09, 0xf6, 0x1f, 0x35, 0xdd, 0x1c, 0x25, 0xef, + 0x17, 0x0c, 0xf6, 0x3e, 0xf0, 0x21, 0x08, 0xff, 0xd7, 0xfc, 0xfd, 0x1f, + 0xe5, 0x18, 0x12, 0xe9, 0xf5, 0xe9, 0x12, 0xf6, 0x02, 0x13, 0xf4, 0x0a, + 0xfd, 0x03, 0x09, 0x08, 0x2f, 0x07, 0xee, 0xfd, 0xd7, 0x00, 0x2b, 0x29, + 0x3b, 0xdb, 0xde, 0xf1, 0xe1, 0xf7, 0x47, 0x12, 0x35, 0x0c, 0xe4, 0x09, + 0xef, 0x17, 0x2b, 0xea, 0x2d, 0xf8, 0xe8, 0x18, 0xef, 0x03, 0x11, 0x0a, + 0x10, 0xff, 0xe8, 0x07, 0x0c, 0x07, 0x03, 0x18, 0x05, 0x08, 0xf8, 0xf8, + 0x06, 0x18, 0xe9, 0xf9, 0xe0, 0x0f, 0x0d, 0x18, 0x04, 0x01, 0xf0, 0x1c, + 0xf6, 0x14, 0xfd, 0x12, 0x0c, 0x0c, 0x02, 0x34, 0xf6, 0xe6, 0xfd, 0xf9, + 0xf9, 0xfd, 0x00, 0x2a, 0xfc, 0xf9, 0xff, 0x0a, 0xfe, 0x1b, 0xf5, 0x34, + 0xdc, 0xf9, 0x15, 0x13, 0xe7, 0x1b, 0xf7, 0x25, 0xfd, 0x09, 0x08, 0x0a, + 0xf0, 0x17, 0x0f, 0x04, 0xf4, 0xe9, 0x06, 0x07, 0xf5, 0x02, 0xfc, 0xf5, + 0x09, 0xee, 0xf1, 0x07, 0x38, 0x03, 0x05, 0x0f, 0x16, 0x0f, 0xed, 0xff, + 0x21, 0xf8, 0x34, 0x07, 0xd1, 0xf9, 0x27, 0x00, 0x0c, 0x21, 0x18, 0x42, + 0xe6, 0x02, 0x1a, 0xf1, 0x2f, 0xf1, 0x0e, 0x3b, 0xee, 0xf8, 0x08, 0xea, + 0xfe, 0xf9, 0x03, 0x18, 0xf5, 0xf8, 0x0d, 0xeb, 0x01, 0x10, 0x09, 0x02, + 0x15, 0xfb, 0xf1, 0x0b, 0xf2, 0x06, 0x08, 0x09, 0x2f, 0x19, 0x02, 0xfe, + 0xe4, 0x06, 0x1f, 0x17, 0x49, 0xf2, 0xe2, 0x02, 0xef, 0x04, 0x26, 0x16, + 0x3f, 0x08, 0xf1, 0x0a, 0xfd, 0xf9, 0x28, 0x01, 0x15, 0x0b, 0xf9, 0x10, + 0xdc, 0x02, 0x20, 0xf7, 0x16, 0xe6, 0x09, 0x03, 0xf1, 0xf5, 0x12, 0x1c, + 0xfb, 0x2a, 0x08, 0xfa, 0x0a, 0x16, 0xf6, 0x15, 0xf0, 0x06, 0x11, 0xfd, + 0x0e, 0xf9, 0xf6, 0x12, 0xed, 0xf3, 0xfd, 0x1f, 0x0b, 0xfa, 0x08, 0x30, + 0xf8, 0xff, 0x0b, 0xeb, 0x10, 0xff, 0x07, 0x22, 0x0d, 0x07, 0x09, 0x03, + 0xf6, 0xf8, 0xfc, 0x26, 0xf8, 0xee, 0x11, 0x02, 0x03, 0x0a, 0xef, 0x38, + 0xfe, 0x13, 0x1b, 0x09, 0xfe, 0x06, 0x05, 0xf3, 0x04, 0xdf, 0xfc, 0x00, + 0xe7, 0x15, 0xec, 0xf1, 0xf8, 0xfc, 0xed, 0x05, 0x0e, 0xf3, 0x15, 0x09, + 0x01, 0x0d, 0xfd, 0x00, 0x24, 0xe2, 0x31, 0x13, 0xd5, 0x1b, 0x2b, 0xe8, + 0x03, 0x08, 0x1d, 0x33, 0xdc, 0xfd, 0x24, 0xe4, 0x20, 0xfa, 0x07, 0x33, + 0x01, 0x12, 0x06, 0xf5, 0xef, 0xf7, 0xfa, 0x13, 0x01, 0xec, 0xee, 0xe0, + 0xfd, 0x0d, 0xff, 0x09, 0xf6, 0x00, 0xed, 0x07, 0xea, 0x0e, 0xff, 0x0e, + 0x26, 0xfc, 0xf0, 0xe7, 0xe7, 0xfe, 0x30, 0xff, 0x24, 0x04, 0x06, 0xf4, + 0xf5, 0xf8, 0x23, 0x0e, 0x3d, 0xf2, 0xfd, 0x04, 0xe8, 0xfb, 0x23, 0xfe, + 0x33, 0xe1, 0x01, 0xfd, 0xdc, 0xfb, 0x0e, 0xfa, 0x22, 0xfb, 0x11, 0xfa, + 0xff, 0x08, 0x21, 0x30, 0x13, 0x03, 0xf2, 0x03, 0xf8, 0x0f, 0xec, 0x0d, + 0xef, 0x0f, 0x10, 0x10, 0x0f, 0xf6, 0xf9, 0x1e, 0xf7, 0xe5, 0x08, 0xfa, + 0x09, 0xff, 0x00, 0x15, 0x02, 0x00, 0x08, 0xfe, 0xfb, 0x0e, 0x15, 0x28, + 0xfa, 0xfb, 0x13, 0x06, 0xfb, 0x05, 0xf6, 0x11, 0xf6, 0x0b, 0x06, 0x15, + 0xe1, 0x00, 0xe9, 0x0f, 0xe1, 0x1d, 0x18, 0xfd, 0x0b, 0x0f, 0xff, 0xf2, + 0xf5, 0xfd, 0x14, 0xff, 0xf4, 0xfe, 0xe2, 0xf8, 0x14, 0x0b, 0xeb, 0x07, + 0x35, 0xe2, 0xeb, 0x0b, 0x04, 0x22, 0xfe, 0x0e, 0x1d, 0xf2, 0x24, 0x11, + 0xcc, 0xec, 0x25, 0xf7, 0xff, 0xf9, 0x06, 0x29, 0xe4, 0x07, 0x1c, 0xdb, + 0xf8, 0x1d, 0xfa, 0x44, 0xf2, 0x01, 0x0f, 0xe6, 0x11, 0x03, 0xee, 0x17, + 0x06, 0xe0, 0x0c, 0xd8, 0xe9, 0xfd, 0x11, 0xfe, 0x07, 0xdd, 0xea, 0xff, + 0xde, 0xdd, 0x0a, 0x09, 0x30, 0xf2, 0x01, 0xe4, 0xe0, 0xeb, 0x2d, 0x12, + 0x2d, 0xeb, 0xfc, 0xf0, 0xe8, 0xf9, 0x1f, 0x08, 0x3f, 0xeb, 0x0e, 0x13, + 0xf9, 0x0c, 0x1c, 0x02, 0x25, 0xec, 0xf6, 0x05, 0xf3, 0xf4, 0x18, 0x08, + 0x12, 0xe9, 0xfb, 0xfd, 0xf9, 0x08, 0x13, 0x1c, 0x08, 0xec, 0xfe, 0x02, + 0xf1, 0x19, 0xf3, 0x1d, 0xf1, 0x07, 0x11, 0x12, 0xfa, 0xf2, 0xf6, 0x0d, + 0xff, 0x17, 0x0a, 0xfb, 0x1f, 0xf8, 0x11, 0x24, 0xf6, 0xfc, 0xfe, 0x07, + 0xed, 0x05, 0x1c, 0x21, 0xfe, 0xfe, 0x16, 0x0d, 0x08, 0x0f, 0x09, 0x33, + 0xf4, 0x1f, 0x14, 0x0c, 0xfe, 0xf5, 0xeb, 0x2a, 0xee, 0xf3, 0x12, 0x19, + 0xec, 0x01, 0x06, 0xf7, 0x05, 0x22, 0x0b, 0xeb, 0xeb, 0x06, 0xe1, 0xf5, + 0x0d, 0xee, 0xfb, 0x0a, 0x31, 0xff, 0xe3, 0xea, 0x18, 0x09, 0xe3, 0x07, + 0x1a, 0xf8, 0x15, 0xfc, 0xcc, 0xf2, 0x2a, 0xe5, 0x01, 0xea, 0x10, 0x1f, + 0xd9, 0x02, 0x13, 0xf6, 0x16, 0x01, 0x0e, 0x3c, 0x02, 0x17, 0x04, 0xf1, + 0xf7, 0x02, 0x07, 0x0c, 0x02, 0x1f, 0xf4, 0xe6, 0xf0, 0xe9, 0x05, 0xf4, + 0xfd, 0xe4, 0xf7, 0xe9, 0xfc, 0xef, 0x06, 0x02, 0x26, 0xf1, 0xf1, 0xeb, + 0xe9, 0xe6, 0x30, 0x1c, 0x38, 0x0f, 0x03, 0xf1, 0x10, 0x04, 0x30, 0x19, + 0x1f, 0xfb, 0xfc, 0x05, 0xe2, 0xfe, 0x18, 0xf2, 0x1c, 0xf2, 0xf5, 0x0e, + 0xf2, 0x05, 0x1d, 0x28, 0x12, 0xf0, 0xf0, 0x0f, 0x0a, 0x03, 0x1a, 0x1a, + 0xf3, 0x08, 0x13, 0xef, 0xf5, 0x1c, 0x06, 0x00, 0xee, 0x12, 0x1d, 0x03, + 0x18, 0x06, 0x0a, 0x0e, 0xf0, 0xeb, 0xfa, 0x0d, 0x08, 0xff, 0x06, 0x24, + 0x0f, 0x03, 0x0a, 0x0f, 0x0e, 0xff, 0x08, 0x33, 0xfc, 0x00, 0x0e, 0xfb, + 0xfb, 0x05, 0x07, 0x19, 0xe8, 0xe7, 0x12, 0x11, 0x15, 0xf7, 0x0c, 0x1a, + 0xf6, 0x28, 0x08, 0xeb, 0xf2, 0x25, 0xee, 0x01, 0x03, 0xec, 0xed, 0xfa, + 0xf0, 0xf2, 0xef, 0xf1, 0x02, 0x23, 0xef, 0x01, 0x41, 0xfa, 0xf4, 0xf4, + 0x15, 0xf5, 0xf5, 0xf9, 0x28, 0xde, 0x20, 0xf6, 0xc7, 0xde, 0x21, 0xe4, + 0xfe, 0xec, 0x0d, 0x2c, 0xee, 0x24, 0x10, 0xf0, 0x1d, 0x12, 0x0e, 0x2b, + 0x06, 0xf8, 0xfd, 0x01, 0x08, 0xef, 0xfd, 0x0f, 0xeb, 0xed, 0xe1, 0xdf, + 0xf1, 0xe5, 0x16, 0xe3, 0x08, 0xfc, 0xf6, 0xf6, 0xd8, 0xf0, 0x23, 0xfc, + 0x2b, 0xf5, 0xff, 0xe7, 0xf4, 0xe9, 0x29, 0x09, 0x2b, 0x0c, 0xff, 0x08, + 0x0b, 0xed, 0x29, 0x14, 0x3c, 0xf5, 0xeb, 0x18, 0xf6, 0x10, 0x22, 0xf9, + 0x17, 0x23, 0x02, 0x0c, 0xf6, 0xfa, 0x2f, 0xfe, 0x1e, 0xeb, 0xfd, 0x03, + 0xf0, 0x07, 0x1c, 0x09, 0xfa, 0xe1, 0x0d, 0x0f, 0x18, 0x03, 0xfe, 0xf0, + 0xec, 0x0b, 0x10, 0x02, 0x14, 0x06, 0xef, 0xf7, 0xea, 0x0b, 0x05, 0xfe, + 0x1f, 0x06, 0x0e, 0x07, 0x00, 0xe1, 0x01, 0x01, 0x07, 0x05, 0x09, 0xf7, + 0xef, 0x15, 0xf7, 0x12, 0x05, 0x03, 0x04, 0x1d, 0x04, 0x10, 0x12, 0x06, + 0x05, 0x00, 0x08, 0x18, 0xd6, 0xf2, 0xfa, 0x07, 0xf8, 0x12, 0x07, 0xfd, + 0xdd, 0x00, 0x04, 0xfb, 0xf8, 0x09, 0xf3, 0x09, 0xfb, 0xf0, 0xe8, 0x09, + 0x27, 0xf5, 0xf8, 0x06, 0x01, 0x02, 0x0e, 0xf6, 0x1f, 0xfa, 0x29, 0xf8, + 0xd6, 0x01, 0x22, 0xf8, 0x1d, 0xe3, 0x1a, 0x39, 0x0a, 0x0d, 0x19, 0xf5, + 0x12, 0xfb, 0x1d, 0x2a, 0x03, 0xf6, 0x0c, 0xf2, 0xfd, 0xec, 0x18, 0x13, + 0xfe, 0x1a, 0xe8, 0xdd, 0x01, 0xf8, 0x30, 0x01, 0xf8, 0xfe, 0xe4, 0xe7, + 0xff, 0xeb, 0x23, 0xfa, 0x2c, 0xf0, 0xfc, 0xe7, 0x0a, 0xf8, 0x18, 0x10, + 0x23, 0x01, 0xfa, 0xe8, 0xf1, 0xfa, 0x1d, 0x0e, 0x17, 0xe7, 0xe4, 0xf5, + 0xf9, 0x0c, 0x17, 0x0c, 0x13, 0xe8, 0xe1, 0x17, 0x19, 0x05, 0x0b, 0x0f, + 0x23, 0xed, 0xff, 0xfe, 0xe0, 0x14, 0x16, 0x00, 0x0d, 0x1c, 0x0b, 0xf5, + 0xfb, 0x18, 0xee, 0xff, 0xff, 0xf3, 0x18, 0x0c, 0x05, 0xfa, 0xf6, 0xfe, + 0xfe, 0xf8, 0xf8, 0x09, 0xef, 0xf8, 0x0e, 0xf0, 0x00, 0xf8, 0x0c, 0xf8, + 0xf6, 0x07, 0x16, 0x11, 0xf8, 0xea, 0xff, 0xff, 0x01, 0x20, 0x07, 0x08, + 0xfd, 0x1c, 0xfc, 0x06, 0xed, 0x0d, 0x08, 0x15, 0xf0, 0x25, 0x01, 0x1b, + 0x00, 0x02, 0xfe, 0x01, 0x05, 0x01, 0xfd, 0xf1, 0xe5, 0x0c, 0xe4, 0xe1, + 0xf0, 0xfa, 0xee, 0x0e, 0x35, 0xee, 0x15, 0xef, 0x0a, 0xf9, 0x01, 0xf5, + 0x1f, 0x05, 0x1f, 0x0d, 0xe1, 0xf4, 0xff, 0xf5, 0x23, 0x02, 0x18, 0x30, + 0xfc, 0xf0, 0x0d, 0x04, 0x0d, 0x06, 0x29, 0x1d, 0xf9, 0x08, 0x06, 0xe5, + 0x13, 0xfd, 0x0d, 0x26, 0xef, 0x09, 0xdc, 0xf2, 0x05, 0xdf, 0x0c, 0xf6, + 0xf3, 0xd9, 0xf8, 0x08, 0xef, 0xeb, 0x0f, 0xf9, 0x3a, 0x03, 0xff, 0xe0, + 0xf7, 0xf0, 0x15, 0x12, 0x41, 0x0b, 0xf1, 0x04, 0x04, 0xe2, 0x0e, 0x0b, + 0x2c, 0x03, 0xea, 0x02, 0xfb, 0xe7, 0x08, 0xe9, 0x22, 0xf3, 0xf2, 0x1c, + 0xfa, 0xf3, 0x11, 0x04, 0x1f, 0xf5, 0x02, 0x0f, 0x1a, 0x1f, 0x24, 0x0b, + 0x06, 0x1f, 0xf3, 0x06, 0x00, 0x02, 0xe8, 0xf6, 0xf4, 0xe8, 0x07, 0x2e, + 0xfb, 0xf8, 0x10, 0x09, 0xf0, 0x0e, 0xff, 0xfe, 0x1c, 0x14, 0x17, 0x06, + 0xe2, 0xf1, 0xfa, 0x01, 0x11, 0x13, 0x12, 0x29, 0xf1, 0x0f, 0x1f, 0xfa, + 0xfd, 0xfd, 0x02, 0x07, 0x0e, 0xfb, 0x0e, 0x04, 0x01, 0x01, 0xed, 0xfe, + 0xde, 0xfd, 0x08, 0xef, 0xf6, 0x0a, 0xff, 0x0f, 0xe7, 0xf2, 0x0f, 0x02, + 0xea, 0x10, 0xf9, 0xec, 0xfd, 0x09, 0xea, 0x1f, 0x46, 0xdd, 0xe2, 0xf7, + 0x08, 0xf5, 0xf7, 0xe9, 0x33, 0xfb, 0x2f, 0xf6, 0xb5, 0x1d, 0x15, 0xeb, + 0x11, 0xf7, 0x2a, 0x2e, 0x08, 0x1d, 0xf4, 0xfb, 0x15, 0xfa, 0x22, 0x34, + 0xff, 0x06, 0xf6, 0xfd, 0xfa, 0xf9, 0x03, 0xf5, 0xf4, 0xf4, 0xd5, 0xea, + 0x01, 0x08, 0x22, 0xf1, 0xf2, 0x06, 0xd1, 0xe5, 0x0c, 0xef, 0x12, 0x03, + 0x08, 0x02, 0xf7, 0x05, 0x1b, 0x07, 0x39, 0x34, 0x21, 0xe2, 0xe3, 0x0b, + 0x0c, 0xf6, 0x29, 0xf7, 0x24, 0x0a, 0xfc, 0xff, 0x1a, 0xfd, 0x05, 0xff, + 0xff, 0x0e, 0x0a, 0x1a, 0x09, 0xfb, 0x15, 0x04, 0x03, 0xf7, 0xfe, 0x00, + 0xfc, 0xfb, 0x11, 0xfa, 0x1d, 0x0e, 0x06, 0xed, 0xfc, 0x23, 0xd8, 0xf2, + 0x04, 0xe5, 0x0f, 0x16, 0x29, 0xfe, 0xf5, 0xec, 0xe2, 0x0e, 0xeb, 0x09, + 0x1d, 0x11, 0x05, 0x11, 0xe4, 0x29, 0x12, 0x02, 0x12, 0x19, 0x0e, 0x1a, + 0xee, 0xf9, 0x05, 0x09, 0xf5, 0xfd, 0x05, 0x04, 0xe4, 0xf1, 0x17, 0x01, + 0xf2, 0xfe, 0x0b, 0xf4, 0x0d, 0x04, 0x06, 0xfe, 0xff, 0xec, 0xe9, 0x00, + 0xff, 0x03, 0x03, 0xfd, 0xf1, 0x15, 0xfc, 0xf3, 0xff, 0xfe, 0x09, 0xee, + 0x3c, 0x01, 0xec, 0x02, 0xf0, 0xf6, 0x20, 0xeb, 0x16, 0x07, 0x32, 0xf3, + 0xce, 0xf0, 0x02, 0xd4, 0x11, 0xe6, 0x28, 0x0e, 0xe3, 0x21, 0xee, 0xce, + 0x1e, 0xd9, 0x23, 0x26, 0x06, 0xfa, 0xf9, 0xf1, 0x01, 0xe6, 0x0b, 0x07, + 0xdc, 0x21, 0xbc, 0xe3, 0xef, 0xf8, 0x12, 0xfc, 0xe6, 0xfe, 0xf5, 0xd4, + 0x15, 0x0a, 0x00, 0x13, 0xfc, 0xec, 0xf3, 0xd6, 0x1a, 0xe3, 0x21, 0x36, + 0x2a, 0x03, 0xe9, 0xe3, 0xff, 0x00, 0x13, 0x1c, 0x0e, 0x20, 0xe5, 0xf5, + 0x24, 0x0b, 0x20, 0x14, 0x13, 0xf8, 0x04, 0x1b, 0x2f, 0x0a, 0x15, 0x00, + 0xf4, 0x1a, 0x11, 0x0d, 0x03, 0x18, 0x0f, 0x18, 0x04, 0x1f, 0xfb, 0xf2, + 0x1f, 0x15, 0x03, 0xfb, 0x0b, 0x17, 0xfb, 0x0b, 0x1b, 0x1f, 0xf4, 0x07, + 0xf9, 0xf9, 0xf8, 0xf4, 0x14, 0x0f, 0xf6, 0xfe, 0xdd, 0x0b, 0xff, 0x01, + 0x18, 0x04, 0x1b, 0x0a, 0xed, 0xe7, 0xf9, 0x16, 0x02, 0x01, 0x00, 0xf7, + 0xf1, 0x07, 0xf0, 0x06, 0xf8, 0x0b, 0x02, 0xf3, 0xff, 0x20, 0xfd, 0x01, + 0x04, 0xf5, 0xd9, 0xf4, 0xf4, 0xf2, 0xe8, 0xff, 0x04, 0x00, 0xf0, 0xe2, + 0xfe, 0xed, 0x1b, 0xef, 0x20, 0xfa, 0xfb, 0xf4, 0x02, 0x18, 0x07, 0xfb, + 0xef, 0xe4, 0x08, 0x0d, 0xe1, 0x0e, 0x25, 0xc6, 0xfd, 0x0c, 0x1c, 0x0b, + 0xf0, 0x01, 0x1c, 0xd4, 0x11, 0xf5, 0x1b, 0x09, 0xfb, 0xda, 0x13, 0xe3, + 0xf9, 0x10, 0x14, 0xf0, 0xf0, 0xfd, 0x1f, 0xcf, 0xf4, 0xe4, 0xfb, 0x0e, + 0x0a, 0x11, 0xed, 0xdc, 0xfc, 0xe6, 0xf7, 0xfc, 0x13, 0xe1, 0x0b, 0xe4, + 0x04, 0x11, 0xee, 0x21, 0x14, 0xe1, 0x07, 0xe4, 0xfb, 0x08, 0x03, 0x2b, + 0x27, 0xf6, 0x0d, 0x02, 0x1b, 0x09, 0x09, 0xf8, 0x14, 0x19, 0x0f, 0x0b, + 0x01, 0x10, 0x09, 0x12, 0x03, 0xf5, 0x18, 0xf3, 0xfb, 0xf5, 0x02, 0x0e, + 0x0d, 0x00, 0x07, 0xfc, 0x18, 0x25, 0x0b, 0xf0, 0xf9, 0xe6, 0x08, 0x01, + 0x24, 0x14, 0xfa, 0xed, 0xe5, 0x1f, 0x09, 0xfe, 0x08, 0xee, 0x1a, 0x1a, + 0x05, 0x00, 0xff, 0x0c, 0xfe, 0xf9, 0x11, 0x11, 0xea, 0xfe, 0x08, 0xf9, + 0xf0, 0xe4, 0x01, 0x0d, 0xf1, 0x00, 0x0b, 0xea, 0x19, 0xea, 0xf3, 0xf8, + 0x08, 0x12, 0x1c, 0x1f, 0xfb, 0xef, 0xf0, 0xf2, 0x14, 0xe1, 0x03, 0xfa, + 0xf9, 0xda, 0xe9, 0xfc, 0xf3, 0xff, 0x12, 0x04, 0xf7, 0xfc, 0x17, 0x0f, + 0xfc, 0x29, 0x03, 0xe5, 0xf2, 0xee, 0x1e, 0xfa, 0x04, 0xed, 0x25, 0xf4, + 0xe1, 0x15, 0x10, 0x1e, 0xef, 0x1c, 0x04, 0xde, 0xe5, 0x08, 0x21, 0xfd, + 0xfd, 0xea, 0x03, 0xca, 0xda, 0x26, 0x00, 0x0a, 0xfd, 0x05, 0xf0, 0xd4, + 0xe1, 0x1a, 0xe4, 0xf5, 0x07, 0xe7, 0xfa, 0xdf, 0xd4, 0x03, 0xf0, 0x10, + 0x15, 0x0c, 0xf4, 0xed, 0xe3, 0xfb, 0x0f, 0x1e, 0x16, 0x09, 0x00, 0xec, + 0xea, 0x13, 0x16, 0x0b, 0x01, 0xfb, 0xff, 0x00, 0xfb, 0x07, 0x13, 0x08, + 0xf4, 0xe4, 0x12, 0x00, 0xfb, 0xfa, 0xfc, 0x08, 0xeb, 0x19, 0x02, 0x1c, + 0xe8, 0x26, 0xf3, 0x10, 0x09, 0x0f, 0x19, 0x02, 0xfb, 0xec, 0xf7, 0xe2, + 0xfb, 0xfa, 0x11, 0xf3, 0x0b, 0x08, 0xff, 0xd9, 0xf8, 0x12, 0x18, 0x06, + 0x07, 0x22, 0xff, 0x19, 0xf5, 0x0b, 0x0a, 0x13, 0xf2, 0xfa, 0x02, 0x21, + 0xeb, 0x11, 0x17, 0x17, 0xec, 0xe1, 0x0e, 0xf7, 0xe8, 0xd8, 0x0e, 0x01, + 0xf1, 0xed, 0xed, 0xf0, 0x09, 0xf7, 0xe7, 0xfd, 0xf0, 0xf9, 0xdb, 0xee, + 0xdc, 0xfb, 0xf8, 0x0a, 0xf5, 0x0b, 0xd4, 0xd7, 0x08, 0x06, 0x18, 0x06, + 0x0c, 0x13, 0xfd, 0x09, 0x13, 0x26, 0x12, 0xf4, 0xef, 0x00, 0xf5, 0x28, + 0x18, 0xfe, 0x04, 0x0e, 0x21, 0x1a, 0x0a, 0x1e, 0x09, 0xf0, 0x0d, 0x0f, + 0xec, 0xf3, 0x17, 0x22, 0x00, 0xec, 0x0e, 0x01, 0xe9, 0x08, 0x09, 0xf2, + 0xf2, 0x08, 0xf0, 0x0b, 0xd9, 0x09, 0x14, 0xf5, 0xf6, 0x04, 0x19, 0xf4, + 0x11, 0xe9, 0xf2, 0x0d, 0x20, 0x17, 0x0a, 0x05, 0x0c, 0x04, 0x01, 0xfd, + 0xf4, 0xfb, 0x1b, 0x0c, 0xf2, 0x0b, 0xff, 0xfe, 0x01, 0xd8, 0xfa, 0x0e, + 0xf5, 0x14, 0xf9, 0x01, 0x04, 0xf8, 0xfa, 0x02, 0xe8, 0xf9, 0xf9, 0xea, + 0xf1, 0x07, 0xff, 0x1e, 0x01, 0x0b, 0xf7, 0x0a, 0xf7, 0x0c, 0xfd, 0xec, + 0xf3, 0x05, 0xf8, 0xda, 0x0b, 0x15, 0xf6, 0xee, 0xf9, 0x10, 0xfa, 0xfe, + 0x08, 0xf0, 0xe6, 0xec, 0x05, 0xff, 0x15, 0x19, 0x1f, 0x11, 0xfc, 0x09, + 0x08, 0x01, 0x06, 0xfe, 0x04, 0x08, 0xfb, 0xfb, 0x08, 0xf4, 0xf6, 0x28, + 0x10, 0xf9, 0x28, 0x0b, 0xf8, 0x0d, 0x01, 0x00, 0xff, 0x02, 0x05, 0x08, + 0xea, 0xe9, 0xf4, 0xf6, 0x01, 0xea, 0xdf, 0x1f, 0xfe, 0x0a, 0xf9, 0xf7, + 0x0c, 0x1b, 0x06, 0xed, 0xf6, 0xf2, 0x03, 0x03, 0xfd, 0x04, 0xf5, 0x10, + 0x0a, 0x0b, 0xf4, 0xf8, 0xf1, 0xe7, 0x05, 0xfe, 0xe7, 0x0b, 0xf1, 0xec, + 0xf4, 0xec, 0x06, 0xee, 0xde, 0x05, 0x1b, 0xfe, 0x13, 0xf3, 0xd9, 0xea, + 0x04, 0x10, 0x05, 0xed, 0x15, 0x02, 0x0b, 0x10, 0xfa, 0x02, 0x05, 0x0b, + 0x02, 0x07, 0xfc, 0xf5, 0x15, 0x14, 0x05, 0xf7, 0x0c, 0xfe, 0xf6, 0xf4, + 0xfa, 0x06, 0xfc, 0x13, 0xdc, 0xe4, 0x09, 0xfa, 0x02, 0x23, 0xec, 0x06, + 0x11, 0x13, 0xf8, 0xfa, 0x27, 0x28, 0x0b, 0x23, 0xec, 0xf1, 0x09, 0x17, + 0x0f, 0x13, 0xff, 0xf2, 0xfc, 0x0a, 0xf5, 0x0d, 0x03, 0x26, 0x01, 0x0f, + 0xfe, 0xf1, 0xfb, 0xe6, 0xf0, 0x02, 0xf2, 0xff, 0x02, 0x11, 0xff, 0xfd, + 0x1c, 0x02, 0x0b, 0xf6, 0x14, 0x0c, 0x0b, 0x21, 0x28, 0xf0, 0x11, 0x05, + 0x06, 0xed, 0xf9, 0x0a, 0xf2, 0xef, 0xf8, 0xf1, 0xfe, 0x0d, 0xf9, 0xf7, + 0xea, 0x00, 0x08, 0xdb, 0x02, 0x0f, 0xfe, 0x04, 0xef, 0x20, 0x16, 0x01, + 0xe8, 0xed, 0xe4, 0x22, 0xf6, 0x19, 0x00, 0x04, 0x01, 0x13, 0xeb, 0x0d, + 0xec, 0x01, 0x08, 0x05, 0x0c, 0x0e, 0xfe, 0x02, 0x12, 0xf7, 0x27, 0xf9, + 0xfd, 0x18, 0xfe, 0x24, 0xf7, 0x13, 0xed, 0x1e, 0x09, 0xff, 0xd8, 0xf4, + 0x12, 0xf8, 0x04, 0x0c, 0x1c, 0x11, 0xfd, 0x17, 0x1d, 0x01, 0x13, 0xee, + 0x11, 0xf3, 0xf8, 0x06, 0xf6, 0x16, 0xfe, 0x15, 0x16, 0xdc, 0x1f, 0x00, + 0x25, 0xee, 0xff, 0xf7, 0xf6, 0x02, 0xdd, 0x15, 0xf1, 0x14, 0x08, 0xe8, + 0xe5, 0x21, 0xea, 0xf0, 0x1a, 0x07, 0xea, 0x08, 0xea, 0xe4, 0x1e, 0x00, + 0x13, 0x17, 0xec, 0x11, 0xd6, 0x11, 0x18, 0x17, 0x04, 0x15, 0x03, 0x3a, + 0xd6, 0x02, 0x07, 0x04, 0xe6, 0xe5, 0xfe, 0x0e, 0xff, 0xed, 0xfc, 0xfb, + 0xff, 0x1c, 0x06, 0x0a, 0xfb, 0xf9, 0xea, 0x1a, 0x21, 0xf5, 0x04, 0x06, + 0x0a, 0xe3, 0x16, 0xea, 0x04, 0xe2, 0xf9, 0xf9, 0xe6, 0xfb, 0x0f, 0xfc, + 0x06, 0xfb, 0x10, 0x07, 0x07, 0x13, 0x07, 0xfc, 0x16, 0xef, 0x07, 0xdc, + 0x12, 0x1f, 0x08, 0xf4, 0xe9, 0x14, 0x06, 0xf7, 0xf1, 0x0c, 0x01, 0x0c, + 0xe6, 0x04, 0xf3, 0xf2, 0xe5, 0xf3, 0xef, 0x1d, 0xf6, 0x20, 0x07, 0xfe, + 0xf4, 0x05, 0xee, 0x10, 0xfd, 0x0e, 0x0b, 0x02, 0x0d, 0xd8, 0x07, 0xfb, + 0x26, 0x0a, 0x1c, 0x21, 0x06, 0x1f, 0xf4, 0x06, 0x37, 0x18, 0xfa, 0x16, + 0x1e, 0x24, 0xfb, 0xf0, 0x12, 0xf9, 0x02, 0x09, 0x17, 0x16, 0xf3, 0xf9, + 0x17, 0xf2, 0x02, 0x0a, 0x2d, 0xe7, 0xe3, 0x25, 0xf0, 0xf9, 0x0f, 0xdd, + 0x15, 0xe6, 0x04, 0xfc, 0xf1, 0x17, 0x0a, 0xea, 0x24, 0x07, 0xf1, 0x11, + 0x13, 0x29, 0xf4, 0xc5, 0xfb, 0x07, 0xef, 0x13, 0x0b, 0xe1, 0xf1, 0xeb, + 0xf8, 0x1b, 0x09, 0x08, 0x1f, 0x15, 0xf2, 0x05, 0x02, 0xdd, 0x09, 0x0f, + 0x16, 0x10, 0x01, 0x30, 0xf2, 0xe0, 0x27, 0xfe, 0xf1, 0x0e, 0x0e, 0x07, + 0xe6, 0x07, 0x0b, 0x18, 0xfe, 0x0f, 0x01, 0x07, 0xf4, 0x07, 0x10, 0xe7, + 0xfb, 0xf3, 0xf7, 0x0b, 0xf9, 0x15, 0x18, 0x25, 0x0c, 0x14, 0x02, 0x08, + 0x0a, 0x0f, 0x10, 0xec, 0xee, 0x1a, 0x03, 0x14, 0x0f, 0xfa, 0x25, 0xff, + 0x18, 0x0d, 0x0b, 0xea, 0x1f, 0x28, 0x10, 0x0c, 0xe7, 0xee, 0xf7, 0xfa, + 0x03, 0x15, 0x0c, 0x1d, 0x01, 0x00, 0x12, 0xee, 0x01, 0xf1, 0xf8, 0x0b, + 0xf3, 0xfd, 0x04, 0xf8, 0x02, 0x1e, 0x0e, 0xf3, 0x02, 0x10, 0xfd, 0x07, + 0x0b, 0x09, 0x03, 0x10, 0x3e, 0x08, 0x0e, 0x0c, 0xf4, 0xe7, 0xfd, 0x1c, + 0x27, 0x1a, 0xed, 0xe1, 0x08, 0xdc, 0xd9, 0xf1, 0x1e, 0x07, 0x12, 0xf1, + 0x10, 0xfb, 0xc8, 0x08, 0x0f, 0x03, 0x1d, 0xdc, 0x23, 0x04, 0xf9, 0x0a, + 0xff, 0x08, 0x0e, 0xc9, 0x39, 0x0a, 0x01, 0x07, 0xec, 0xe0, 0x05, 0xe8, + 0x14, 0xd8, 0xe1, 0xfa, 0xd6, 0xf8, 0xed, 0xdb, 0xff, 0x1d, 0xf5, 0x17, + 0x0f, 0x1c, 0xdc, 0xed, 0xff, 0xff, 0x04, 0x13, 0xf5, 0xe7, 0xd2, 0x12, + 0xdb, 0xe1, 0x13, 0x11, 0x23, 0x0e, 0xf9, 0x31, 0xdc, 0xef, 0x07, 0x0a, + 0x20, 0xf2, 0xf9, 0x13, 0xff, 0x1c, 0x2a, 0xdf, 0xdb, 0xe7, 0x11, 0xf2, + 0xfd, 0xfb, 0x28, 0x00, 0x15, 0x03, 0x02, 0x20, 0x07, 0xf7, 0x19, 0x13, + 0x13, 0xf6, 0x09, 0xfe, 0xfd, 0x20, 0x14, 0xf5, 0xf5, 0xfc, 0x14, 0x0e, + 0x17, 0xfe, 0x15, 0x04, 0xf9, 0xf6, 0x1d, 0xf6, 0x1b, 0xe4, 0xee, 0xfd, + 0x00, 0xe9, 0xee, 0xce, 0x0f, 0x20, 0x05, 0x02, 0x0d, 0x06, 0x05, 0xf8, + 0xef, 0xdf, 0x16, 0x17, 0xe6, 0xf1, 0x10, 0xf3, 0x06, 0x04, 0xdb, 0xfb, + 0xe7, 0xf8, 0x02, 0x11, 0xff, 0x0d, 0x0a, 0xfa, 0x27, 0x0a, 0xfc, 0xe8, + 0x11, 0x17, 0xf0, 0x0d, 0x0d, 0xee, 0xdf, 0xdd, 0xf1, 0x15, 0xd6, 0xf7, + 0x00, 0xef, 0x2e, 0xe6, 0x24, 0xfd, 0xd5, 0x04, 0xf0, 0x08, 0x08, 0xed, + 0x22, 0x07, 0xe1, 0x09, 0xd0, 0x0b, 0x18, 0xe6, 0x3f, 0x0a, 0xe5, 0xe2, + 0xf9, 0x08, 0x02, 0xd6, 0x13, 0x15, 0xbd, 0x00, 0x0e, 0xf8, 0xe2, 0xca, + 0xec, 0x0e, 0xe6, 0xef, 0x15, 0x11, 0xcb, 0xdf, 0xf9, 0x03, 0x22, 0x10, + 0xfb, 0xf9, 0xe5, 0x08, 0xe1, 0x11, 0x10, 0xfc, 0xfa, 0x00, 0xf8, 0x30, + 0xe5, 0x08, 0x14, 0xe8, 0x12, 0xe2, 0x04, 0x19, 0x0b, 0xfa, 0x33, 0xf3, + 0xec, 0xfe, 0xf8, 0x25, 0xf8, 0x21, 0x28, 0xef, 0x00, 0xde, 0xff, 0x2b, + 0x03, 0xfc, 0x10, 0x0c, 0xcf, 0xfd, 0x19, 0x0a, 0x0c, 0xf2, 0xf7, 0x0c, + 0xfd, 0x02, 0x1c, 0xdf, 0x26, 0x0d, 0xf0, 0x0b, 0xce, 0x15, 0xfb, 0xec, + 0x27, 0xf6, 0xf9, 0xe5, 0xe2, 0xfb, 0xfd, 0xd8, 0x28, 0xec, 0xe9, 0xf2, + 0xca, 0x09, 0x02, 0x06, 0x0c, 0xfa, 0x05, 0x01, 0xd5, 0x0a, 0x02, 0xfb, + 0x04, 0x17, 0xdd, 0xfe, 0xeb, 0xf1, 0x09, 0x10, 0x12, 0xff, 0x00, 0xe0, + 0x26, 0xf7, 0xed, 0xf4, 0x00, 0xf2, 0xfa, 0x07, 0x02, 0xf5, 0x06, 0xe8, + 0x03, 0xfd, 0xdc, 0xf2, 0xc2, 0xff, 0x0b, 0xd6, 0x25, 0x04, 0xe9, 0xf0, + 0xd9, 0x08, 0x09, 0xc5, 0x23, 0x12, 0xf6, 0x13, 0x11, 0xf3, 0x18, 0xf0, + 0x34, 0xfe, 0xfe, 0xed, 0xea, 0x02, 0x17, 0xdc, 0x1b, 0x1b, 0xea, 0xfe, + 0xea, 0xfe, 0xf2, 0xc4, 0xfd, 0x04, 0xe9, 0x0d, 0x0d, 0x09, 0xca, 0xd4, + 0xe1, 0x04, 0x1e, 0xff, 0x0f, 0xef, 0xd6, 0x0f, 0xd5, 0xf8, 0x26, 0xd6, + 0x33, 0xe8, 0xf5, 0x3b, 0xf1, 0xe8, 0x39, 0xe8, 0x08, 0xe5, 0x01, 0x02, + 0x04, 0xf6, 0x19, 0x0a, 0xd0, 0xeb, 0x0b, 0x15, 0xf7, 0x0e, 0x23, 0xf6, + 0xf4, 0xd8, 0xf4, 0x17, 0x23, 0x25, 0x14, 0x01, 0xd7, 0xfd, 0xf9, 0x1f, + 0x1b, 0x11, 0x0a, 0x18, 0xf5, 0xf5, 0x0f, 0xe0, 0x2e, 0x01, 0xe5, 0xdb, + 0xe2, 0xf2, 0x14, 0xfa, 0x2a, 0x00, 0xe2, 0xea, 0xfd, 0x0e, 0xfc, 0xc1, + 0x35, 0x08, 0xf6, 0xf9, 0xec, 0x00, 0x06, 0x00, 0x0b, 0xf6, 0x01, 0xfe, + 0xea, 0x0b, 0x08, 0x05, 0xe4, 0xea, 0xd7, 0xfd, 0xee, 0xf3, 0x0c, 0x0c, + 0x0d, 0x02, 0xfd, 0xee, 0x17, 0x10, 0x13, 0xfd, 0x07, 0x03, 0xf8, 0x0c, + 0xd4, 0xed, 0xfe, 0x07, 0xf4, 0xee, 0xf4, 0x03, 0xc2, 0x18, 0x2c, 0xd1, + 0x33, 0xd8, 0xdb, 0xfa, 0xed, 0x10, 0x1c, 0xe3, 0x37, 0x0a, 0xea, 0xfe, + 0xf6, 0xef, 0x20, 0xed, 0x32, 0xf7, 0xf5, 0xf3, 0xca, 0xfd, 0x0a, 0xcf, + 0x0d, 0x10, 0xde, 0x07, 0x18, 0x10, 0xf0, 0xd6, 0x0c, 0x04, 0xeb, 0x1a, + 0xf9, 0x08, 0xc4, 0xcb, 0xe4, 0x0b, 0x19, 0xfc, 0x29, 0xf6, 0xec, 0x07, + 0xf3, 0xed, 0x2b, 0xe9, 0xfa, 0x02, 0xec, 0x2b, 0xf0, 0xf2, 0x2d, 0xe8, + 0xed, 0x00, 0x12, 0x13, 0xed, 0x1a, 0x3d, 0xf0, 0x05, 0x04, 0xfc, 0x13, + 0x10, 0x01, 0x40, 0xf2, 0x06, 0x02, 0xf9, 0x22, 0x24, 0xff, 0x18, 0x00, + 0xeb, 0xe8, 0x14, 0xf9, 0x25, 0xe0, 0xff, 0x03, 0xe5, 0xfd, 0x08, 0xea, + 0x2e, 0x0b, 0x05, 0xe7, 0xde, 0xe4, 0xf5, 0xea, 0x3a, 0xf4, 0xf4, 0xe7, + 0xed, 0xec, 0xf8, 0xee, 0x30, 0x0a, 0xdb, 0x05, 0xf7, 0x16, 0xff, 0xf7, + 0xfa, 0x1f, 0xef, 0xe4, 0xce, 0xf8, 0x13, 0x04, 0xf9, 0x01, 0xe1, 0x03, + 0xf9, 0xf9, 0x08, 0x04, 0xfa, 0xe4, 0xe7, 0xf7, 0x28, 0xfd, 0xfd, 0x00, + 0xfc, 0xfb, 0xef, 0x0a, 0xec, 0x0c, 0x0a, 0xd2, 0x05, 0xfb, 0xcd, 0xfb, + 0x9d, 0xea, 0x1c, 0xe5, 0x25, 0xe8, 0xea, 0x0b, 0xf0, 0xf3, 0x0d, 0xab, + 0x49, 0x0e, 0xeb, 0x00, 0xe2, 0x03, 0x29, 0xe0, 0x3d, 0x06, 0xf7, 0xf8, + 0xcf, 0x0c, 0x1a, 0xd6, 0x1f, 0xef, 0xfd, 0xff, 0xef, 0x0c, 0xdb, 0xe0, + 0x20, 0x06, 0xdf, 0x1a, 0xe7, 0xfc, 0xb2, 0xd1, 0xdf, 0x13, 0x07, 0x1f, + 0x0c, 0xf7, 0xde, 0x0a, 0xdb, 0xdf, 0x1a, 0xf5, 0x29, 0x0d, 0xeb, 0x2c, + 0xcf, 0x0e, 0x26, 0xfe, 0xef, 0x04, 0xf5, 0x14, 0x09, 0x13, 0x34, 0xff, + 0xfe, 0x0e, 0x06, 0x0e, 0x10, 0xf9, 0x2a, 0x0b, 0xe6, 0xfe, 0xf1, 0x1a, + 0x36, 0x29, 0x29, 0x05, 0x05, 0xd8, 0x14, 0x12, 0x26, 0x0b, 0x18, 0xff, + 0xd7, 0xdf, 0x0f, 0xed, 0x31, 0xf7, 0xfc, 0xec, 0x0b, 0xef, 0x0c, 0xd2, + 0x30, 0xf9, 0x04, 0xfe, 0xef, 0xe4, 0xfb, 0xd1, 0x32, 0xe5, 0xee, 0xf0, + 0x0c, 0xe6, 0x13, 0xed, 0x1e, 0x0b, 0xe4, 0xe0, 0xfa, 0xf4, 0x14, 0xf4, + 0x18, 0xf7, 0xd9, 0xf6, 0xed, 0xea, 0xfc, 0x06, 0xfc, 0xf5, 0xed, 0xeb, + 0x05, 0x03, 0x1b, 0x0b, 0xff, 0x0b, 0xef, 0x01, 0xf1, 0x16, 0x05, 0x00, + 0xee, 0x0a, 0xdb, 0x10, 0xb4, 0x14, 0x0f, 0xe1, 0x1c, 0xfd, 0xf0, 0xf8, + 0xc3, 0x11, 0x17, 0xba, 0x47, 0x15, 0xe6, 0x01, 0xea, 0xf1, 0x0c, 0x08, + 0x4a, 0x15, 0xf0, 0xf7, 0xea, 0x00, 0xf5, 0xd4, 0xf1, 0xff, 0xe0, 0x0c, + 0xf4, 0x17, 0xd8, 0xea, 0x03, 0xff, 0xd5, 0x18, 0xfb, 0x07, 0xc7, 0xc9, + 0xdd, 0xf3, 0x15, 0x0d, 0x22, 0xea, 0xdb, 0x0a, 0xd6, 0x09, 0x1d, 0xe5, + 0x2d, 0x04, 0xfc, 0x35, 0xc6, 0x0e, 0x33, 0xf1, 0xd7, 0xea, 0x01, 0x1b, + 0x0e, 0x01, 0x2a, 0xff, 0xef, 0xf1, 0xf7, 0x0f, 0xff, 0x00, 0x3b, 0xe8, + 0x0a, 0xff, 0xf4, 0x0d, 0x1f, 0x04, 0x17, 0xf7, 0xdf, 0xec, 0x12, 0x26, + 0x36, 0x07, 0x0c, 0x06, 0xe7, 0xd6, 0x13, 0xe3, 0x30, 0x09, 0x00, 0xf5, + 0xe0, 0xf3, 0x11, 0xe2, 0x38, 0x0d, 0xf6, 0x05, 0xec, 0x05, 0x00, 0xe5, + 0x24, 0xef, 0xfe, 0xf8, 0x00, 0xd8, 0x18, 0xf1, 0x26, 0x0b, 0xf2, 0xfc, + 0xe0, 0xe4, 0x06, 0x0b, 0x1a, 0x05, 0xc6, 0xf6, 0xe8, 0xde, 0xfe, 0x0c, + 0x03, 0x09, 0xfe, 0xe2, 0x18, 0x1b, 0xfb, 0xf7, 0x06, 0xf1, 0xfe, 0xf6, + 0xef, 0x1b, 0x07, 0x0d, 0x01, 0x0a, 0xed, 0xf0, 0xad, 0x1a, 0x17, 0xd6, + 0x37, 0xfd, 0xd8, 0xec, 0xca, 0xf1, 0x15, 0xc4, 0x33, 0xf1, 0xed, 0xf0, + 0xe9, 0x15, 0x0d, 0xf2, 0x36, 0xde, 0xfd, 0x0e, 0xfb, 0x10, 0x0f, 0xf6, + 0xf9, 0x0c, 0xea, 0xf0, 0xe5, 0x0b, 0xee, 0xc1, 0x10, 0xf4, 0xe8, 0x1f, + 0xee, 0x00, 0xd0, 0xe4, 0xe7, 0x13, 0x07, 0x27, 0x12, 0xea, 0xea, 0x0f, + 0xea, 0xf4, 0x14, 0xee, 0xfe, 0x09, 0xfb, 0x31, 0xdb, 0x1b, 0x1c, 0xe7, + 0xef, 0xf5, 0xf7, 0x1a, 0x06, 0x01, 0x2c, 0xed, 0xfb, 0x04, 0xfa, 0x07, + 0x19, 0xec, 0x2b, 0x0d, 0xfc, 0xd8, 0xfc, 0x0f, 0x1f, 0xfc, 0x2d, 0xf3, + 0xc9, 0xda, 0x0a, 0xfe, 0x29, 0x00, 0xfa, 0x09, 0xe8, 0xf6, 0x21, 0xf3, + 0x4a, 0x1a, 0xf8, 0x00, 0xe7, 0xf0, 0x21, 0x01, 0x22, 0xf3, 0x00, 0xe9, + 0x06, 0xe3, 0x15, 0xd7, 0x3d, 0x0c, 0x07, 0xf1, 0xf3, 0xec, 0x17, 0xdf, + 0x29, 0x1b, 0xfd, 0xfe, 0xeb, 0xed, 0x17, 0xf6, 0x23, 0x0a, 0xea, 0xee, + 0xf9, 0xf3, 0x0f, 0x0c, 0xf8, 0xf5, 0xed, 0xe8, 0x1c, 0x14, 0x07, 0x17, + 0x0b, 0x0d, 0xed, 0xf7, 0xed, 0x10, 0x07, 0xd5, 0xf2, 0x09, 0xd6, 0xf7, + 0xb5, 0xf6, 0x19, 0xc9, 0x25, 0x15, 0xe8, 0xf5, 0xc4, 0xf9, 0x2a, 0xb0, + 0x39, 0x0e, 0x02, 0x11, 0xf0, 0xf7, 0x1d, 0xeb, 0x39, 0x10, 0x02, 0x15, + 0xe0, 0x08, 0x01, 0xee, 0x1c, 0x1e, 0x08, 0x04, 0xf2, 0x02, 0xe8, 0xda, + 0xfa, 0xfb, 0xe0, 0xfe, 0x05, 0x02, 0xd3, 0xca, 0xf4, 0xec, 0x10, 0x16, + 0x05, 0x0d, 0xd7, 0x09, 0xdc, 0xf6, 0x1e, 0xf8, 0x10, 0xed, 0xf7, 0x27, + 0xf5, 0x08, 0x28, 0xee, 0xec, 0xe0, 0xf8, 0x17, 0xfb, 0x23, 0x2e, 0xf1, + 0xfa, 0xf5, 0xfc, 0x1a, 0x10, 0xf7, 0x32, 0xfb, 0xfb, 0xe8, 0xf1, 0x03, + 0x24, 0xeb, 0x25, 0xf9, 0xca, 0xf1, 0xfe, 0x01, 0x2e, 0x07, 0x18, 0x03, + 0xe5, 0xea, 0x10, 0xfa, 0x3b, 0x07, 0x0f, 0x11, 0x04, 0xf7, 0x1d, 0xf1, + 0x24, 0xd9, 0x08, 0xef, 0x02, 0xdd, 0x07, 0xc8, 0x2c, 0x0d, 0x06, 0xec, + 0x17, 0xda, 0x21, 0xdf, 0x34, 0xd9, 0xfb, 0xf2, 0xf4, 0xec, 0x0e, 0x0a, + 0x0f, 0x0f, 0xdb, 0xf0, 0xfb, 0xe6, 0x0f, 0x00, 0x04, 0xf9, 0x01, 0x05, + 0x05, 0xfe, 0x08, 0xf3, 0x0e, 0xf2, 0xfb, 0x01, 0xfd, 0x18, 0x1d, 0xf6, + 0xee, 0x06, 0xcf, 0xfc, 0xae, 0x27, 0x21, 0xd2, 0x33, 0x03, 0xe0, 0xe0, + 0xc9, 0xfb, 0x3a, 0xbd, 0x4d, 0x04, 0xe8, 0xf5, 0xe6, 0xeb, 0x19, 0xf2, + 0x4b, 0x1d, 0xfc, 0xf7, 0xd9, 0xff, 0xfe, 0xea, 0x0f, 0x04, 0x0e, 0x00, + 0xed, 0x19, 0xe9, 0xe9, 0xff, 0x11, 0xef, 0x14, 0x01, 0x17, 0xbc, 0xb5, + 0xef, 0x0c, 0x22, 0x27, 0x0f, 0x01, 0xd4, 0x03, 0xce, 0x01, 0x25, 0xff, + 0xf9, 0xf0, 0x0a, 0x1c, 0xe5, 0x0f, 0x1c, 0xee, 0xf4, 0xf1, 0xf4, 0x0c, + 0x00, 0x08, 0x1c, 0xf4, 0xd5, 0xf1, 0xfc, 0x1f, 0x11, 0x00, 0x18, 0x03, + 0xf7, 0xe4, 0xff, 0x07, 0x09, 0x1a, 0x18, 0xff, 0xea, 0xec, 0xfd, 0x13, + 0x2b, 0xf8, 0x0c, 0xfa, 0xdf, 0xf6, 0x11, 0xda, 0x2a, 0xdc, 0xfc, 0xff, + 0xff, 0xec, 0x12, 0xe1, 0x37, 0xfd, 0xeb, 0xfe, 0xea, 0xd1, 0x12, 0xfa, + 0x28, 0x1a, 0x0d, 0xf0, 0xf7, 0xe0, 0x0c, 0xeb, 0x35, 0x14, 0xeb, 0x00, + 0xeb, 0xe7, 0x1b, 0xfc, 0x09, 0x00, 0xf2, 0x04, 0xf9, 0xe5, 0x1a, 0x0e, + 0x08, 0x12, 0xf8, 0xfe, 0x09, 0x0f, 0x0d, 0xea, 0x03, 0xe1, 0xfe, 0xf2, + 0xec, 0x0d, 0x02, 0xdb, 0x04, 0x1d, 0xd4, 0x01, 0xca, 0x13, 0x29, 0xca, + 0x28, 0x04, 0xe2, 0xf1, 0xdb, 0x0b, 0x2c, 0xcd, 0x44, 0x00, 0xe7, 0xf4, + 0xd0, 0x12, 0x15, 0xff, 0x42, 0x11, 0x05, 0xfd, 0xd9, 0x11, 0x1c, 0xf4, + 0x15, 0xec, 0xf2, 0x24, 0xd6, 0x1d, 0xec, 0xda, 0xf5, 0xec, 0xe5, 0x22, + 0xf2, 0x0b, 0xbd, 0xd0, 0xeb, 0x05, 0x07, 0x1b, 0x01, 0xed, 0xf5, 0x02, + 0xcf, 0x08, 0x15, 0xfd, 0x1c, 0xe5, 0x04, 0x19, 0xc7, 0x25, 0x22, 0xf3, + 0xde, 0xfb, 0xfb, 0x20, 0xf6, 0xeb, 0x25, 0xfe, 0xf5, 0x08, 0xf5, 0x17, + 0x0e, 0x04, 0x1c, 0xf9, 0xee, 0xec, 0xe1, 0x06, 0x12, 0xff, 0x2a, 0x13, + 0xed, 0xfe, 0x05, 0x18, 0x25, 0x20, 0x09, 0x13, 0xea, 0xd7, 0x05, 0x06, + 0x33, 0x25, 0xff, 0x0a, 0xf0, 0xea, 0x17, 0xe1, 0x30, 0xfa, 0x0d, 0x0a, + 0x04, 0x00, 0x0e, 0xe9, 0x16, 0x20, 0x0d, 0x02, 0xe8, 0xed, 0x07, 0xe8, + 0x3c, 0xf1, 0xd9, 0xfa, 0xe1, 0xed, 0x18, 0xfc, 0xf0, 0x09, 0xe3, 0x05, + 0xfe, 0xd1, 0x0b, 0x0e, 0xf5, 0x25, 0xfd, 0xfb, 0x30, 0x1e, 0x08, 0xfc, + 0x0c, 0x21, 0xea, 0xfc, 0xe5, 0x1e, 0x16, 0xf5, 0xf4, 0xfc, 0xf0, 0xea, + 0xc4, 0x21, 0x27, 0xe9, 0x2b, 0xdb, 0xdb, 0xec, 0xe5, 0xfe, 0x37, 0xe2, + 0x46, 0x25, 0xfa, 0xec, 0xe4, 0xf3, 0x19, 0xf2, 0x4c, 0x06, 0x00, 0xfb, + 0xeb, 0x10, 0x10, 0xf7, 0x2a, 0xf8, 0xe9, 0x18, 0xee, 0x21, 0xe8, 0xd5, + 0xf4, 0x0a, 0xed, 0x24, 0xfe, 0xf9, 0xb2, 0xbc, 0xf3, 0x1d, 0x00, 0x2f, + 0x07, 0x08, 0xe1, 0xf1, 0xed, 0x27, 0x27, 0xfe, 0x22, 0xfd, 0x02, 0x20, + 0xd8, 0x05, 0x25, 0xec, 0xf1, 0xff, 0x0a, 0x0f, 0xe6, 0xfe, 0x46, 0xfd, + 0xe1, 0xca, 0xf7, 0x22, 0x03, 0x08, 0x21, 0xf5, 0x0f, 0xf7, 0xfb, 0x0c, + 0xfb, 0x14, 0x2d, 0x03, 0xe5, 0xe4, 0x09, 0x0b, 0x1a, 0xe6, 0x01, 0x28, + 0xe9, 0xd6, 0x0b, 0xf7, 0x2c, 0xfb, 0x11, 0xee, 0x0b, 0xed, 0x17, 0xf0, + 0x3c, 0xf5, 0x08, 0xfa, 0xf8, 0xcd, 0x17, 0xfa, 0x39, 0xea, 0x11, 0xf5, + 0xed, 0xee, 0x0a, 0xec, 0x41, 0xd6, 0xe7, 0xf9, 0xfa, 0xc8, 0x15, 0xf7, + 0x08, 0x0e, 0xe3, 0x08, 0xe8, 0xec, 0xfd, 0xfe, 0xf1, 0x00, 0xe9, 0xf4, + 0x09, 0x26, 0x02, 0x16, 0xf0, 0x01, 0xef, 0x01, 0xff, 0x03, 0x22, 0xdb, + 0xfc, 0xf5, 0xde, 0xe5, 0xc4, 0x01, 0x28, 0xd4, 0x38, 0x08, 0xd0, 0xec, + 0xd5, 0x04, 0x2f, 0xce, 0x4e, 0xeb, 0xf9, 0xe7, 0xdf, 0xf0, 0x1b, 0xf5, + 0x42, 0xf1, 0xf6, 0x09, 0xd5, 0x0a, 0x0d, 0x08, 0x04, 0x05, 0xe2, 0x0e, + 0xd7, 0x19, 0xdb, 0xda, 0xe1, 0x25, 0xde, 0x15, 0x0e, 0x14, 0xbd, 0xb0, + 0xe3, 0xe5, 0x24, 0x1e, 0xf8, 0x0d, 0xd8, 0xf7, 0xf2, 0xff, 0x18, 0xf5, + 0x07, 0xf0, 0x02, 0x25, 0xd5, 0x1e, 0x2e, 0xdf, 0xe7, 0x05, 0xef, 0x11, + 0xe8, 0xe7, 0x47, 0xf4, 0xe1, 0xde, 0x09, 0x36, 0x1a, 0x11, 0x11, 0xf5, + 0x12, 0xe5, 0xe7, 0x18, 0x01, 0x17, 0x2a, 0x03, 0x05, 0xea, 0x09, 0x0b, + 0x12, 0x04, 0x17, 0xf0, 0xee, 0xd7, 0x11, 0xed, 0x3c, 0x17, 0x16, 0xff, + 0x02, 0xdc, 0x21, 0xf3, 0x2e, 0xe5, 0x13, 0xef, 0xec, 0xe2, 0x10, 0xd0, + 0x2e, 0xee, 0xff, 0x01, 0xe0, 0xe5, 0x0b, 0xda, 0x1f, 0xf8, 0xf6, 0xfb, + 0x07, 0xdb, 0x05, 0xf6, 0x0c, 0xf3, 0xf0, 0x10, 0xf9, 0xf5, 0xf2, 0x0d, + 0x10, 0xf7, 0xf6, 0xff, 0x2b, 0x0d, 0x06, 0x1e, 0xf3, 0x0c, 0xe9, 0x01, + 0xf2, 0x23, 0xfe, 0xe9, 0xdd, 0x12, 0xdd, 0xf7, 0xbb, 0x22, 0x1b, 0xd4, + 0x38, 0x29, 0xd4, 0xcf, 0xf5, 0xf9, 0x27, 0xdd, 0x47, 0x00, 0xf2, 0xe5, + 0x09, 0xfc, 0x0e, 0xf9, 0x34, 0x0a, 0x02, 0xfd, 0xec, 0x25, 0x1d, 0x03, + 0x15, 0x09, 0xf1, 0x1b, 0xd0, 0x17, 0xda, 0xda, 0xe7, 0x07, 0xe3, 0x15, + 0xf1, 0x02, 0xb9, 0xce, 0xe6, 0x0c, 0x10, 0x31, 0xfe, 0xf7, 0xd9, 0xfa, + 0xed, 0xed, 0x33, 0xf4, 0x19, 0xe7, 0xfe, 0x3f, 0xe5, 0x06, 0x2e, 0xe6, + 0xf2, 0xdc, 0xf5, 0x18, 0xe6, 0x01, 0x2f, 0xee, 0xe7, 0xe4, 0xfe, 0x2c, + 0x03, 0xf7, 0x20, 0x05, 0x07, 0xe2, 0x06, 0x1e, 0x05, 0xed, 0x2f, 0x03, + 0xea, 0xf8, 0x0e, 0x0c, 0x1f, 0xff, 0x20, 0xf4, 0xe8, 0xe1, 0x1c, 0xec, + 0x22, 0x1e, 0x05, 0xfd, 0xf5, 0xca, 0x30, 0xe9, 0x30, 0xe4, 0x14, 0xff, + 0xf2, 0xdc, 0x17, 0xf8, 0x26, 0xe1, 0x0b, 0x01, 0x11, 0xc2, 0x02, 0xf1, + 0x36, 0x10, 0x02, 0x05, 0xed, 0xf1, 0x15, 0xfa, 0x17, 0xf8, 0xf7, 0xf1, + 0xe8, 0xd3, 0xfd, 0x08, 0xfb, 0x27, 0xf5, 0xf5, 0x13, 0x06, 0x0b, 0xf0, + 0x01, 0xf9, 0xd7, 0x0e, 0xec, 0x12, 0xfe, 0xfd, 0xee, 0x25, 0xd8, 0xf1, + 0xb2, 0x09, 0x1c, 0xbf, 0x34, 0xea, 0xc8, 0xea, 0xdb, 0x0e, 0x24, 0xde, + 0x47, 0xfe, 0xdc, 0xe0, 0xf3, 0x06, 0x20, 0xfe, 0x2b, 0xf6, 0x18, 0x14, + 0xcd, 0x19, 0x16, 0xfe, 0x1a, 0x15, 0xf8, 0x11, 0xf4, 0x22, 0xd7, 0xcc, + 0xdd, 0x15, 0xdc, 0x14, 0xf9, 0x02, 0xbb, 0xca, 0xe3, 0xf3, 0x0d, 0x1e, + 0x2a, 0x0c, 0xe4, 0x05, 0xe0, 0x18, 0x2a, 0x07, 0x20, 0xed, 0xf6, 0x17, + 0xcf, 0xf4, 0x2a, 0xd6, 0xfb, 0xce, 0x03, 0x37, 0xe2, 0xfd, 0x1d, 0xfb, + 0xe5, 0xe0, 0x05, 0x29, 0xef, 0x16, 0x23, 0xf7, 0x01, 0xf4, 0x0c, 0x14, + 0xff, 0xee, 0x31, 0xf9, 0x12, 0xf9, 0x14, 0xf6, 0x0c, 0xf6, 0x0b, 0x0f, + 0xd8, 0xdc, 0xfe, 0x0f, 0x37, 0xfa, 0x01, 0x09, 0x04, 0xd1, 0x0b, 0x0c, + 0x29, 0xf3, 0x0a, 0xf9, 0xed, 0xc2, 0x18, 0xf4, 0x25, 0x18, 0x0f, 0x08, + 0xf7, 0xed, 0x1f, 0xf7, 0x4f, 0x0e, 0xf0, 0xe4, 0x00, 0xeb, 0xfa, 0x1a, + 0x0c, 0x03, 0xe9, 0xfc, 0xf0, 0xcc, 0x06, 0x05, 0xf2, 0x12, 0x04, 0xe2, + 0x16, 0x0a, 0x0a, 0xf3, 0x0b, 0xf3, 0xdc, 0xfd, 0x10, 0xfc, 0x0e, 0xe2, + 0xe0, 0xfe, 0xf0, 0xff, 0xb1, 0x06, 0x1b, 0xe4, 0x30, 0x13, 0xc6, 0xc3, + 0xfa, 0x0c, 0x1e, 0xd9, 0x57, 0x11, 0xe1, 0xd6, 0xfa, 0xee, 0x1d, 0xf7, + 0x37, 0xea, 0xf0, 0x05, 0xef, 0x24, 0x1e, 0xf1, 0x10, 0xe8, 0xeb, 0x19, + 0xd1, 0x18, 0xf5, 0xc8, 0xf8, 0xec, 0xf5, 0x1f, 0xf2, 0xff, 0xb3, 0xd2, + 0xe6, 0x0e, 0x06, 0x2e, 0x07, 0x17, 0xe0, 0xf5, 0x02, 0xf9, 0x20, 0x07, + 0x16, 0x08, 0xe8, 0x1d, 0xd3, 0x08, 0x34, 0xda, 0xf2, 0xce, 0xfb, 0x1f, + 0xe1, 0x00, 0x2d, 0xdb, 0xdf, 0xcc, 0x05, 0xfb, 0xf7, 0x00, 0x33, 0xf9, + 0x0b, 0x01, 0x13, 0x28, 0xf8, 0x07, 0x24, 0xf8, 0x0f, 0x03, 0x0d, 0xe9, + 0x06, 0xfe, 0x18, 0xf9, 0xed, 0xf5, 0x0c, 0xe0, 0x2c, 0x0e, 0xf9, 0x06, + 0xfb, 0xce, 0x27, 0xe8, 0x29, 0x19, 0xf9, 0x01, 0x0e, 0xc8, 0x25, 0xed, + 0x30, 0xeb, 0x01, 0xfe, 0x10, 0xdc, 0x1e, 0x00, 0x1e, 0x10, 0xf9, 0x00, + 0xfc, 0xc8, 0x0e, 0x04, 0x13, 0x04, 0xf0, 0x02, 0xfe, 0xd8, 0x0f, 0x1b, + 0xf7, 0xe1, 0xf8, 0xde, 0x12, 0xe2, 0xef, 0x0a, 0x02, 0xe0, 0xdd, 0xf1, + 0x0e, 0x2a, 0x25, 0x15, 0xeb, 0x02, 0xf4, 0xf0, 0xbf, 0xfc, 0x27, 0xdc, + 0x42, 0x0f, 0xe9, 0xbf, 0xe8, 0x20, 0x33, 0xc9, 0x3f, 0x10, 0xec, 0xf3, + 0x03, 0x02, 0x2c, 0x04, 0x38, 0x06, 0x0a, 0xf9, 0xe5, 0x1c, 0x3f, 0x0f, + 0x0c, 0x25, 0xe2, 0x06, 0xe6, 0x03, 0xf4, 0xd7, 0xfe, 0xf6, 0xe7, 0x2f, + 0xfa, 0x03, 0xb6, 0xcb, 0xf1, 0x11, 0x0a, 0x2c, 0xfc, 0x1e, 0xe0, 0xff, + 0xc2, 0xdd, 0x1d, 0xf3, 0x10, 0xfa, 0x07, 0x1e, 0xf6, 0x20, 0x07, 0xe6, + 0xf1, 0x0a, 0xe8, 0x27, 0xf1, 0xf5, 0x24, 0xed, 0xfd, 0xee, 0x13, 0x15, + 0xe9, 0xe2, 0x22, 0xe5, 0xf9, 0xdd, 0x1d, 0x32, 0x04, 0xfa, 0x25, 0x00, + 0xee, 0xfd, 0x0b, 0x0e, 0x23, 0xfa, 0x0f, 0x01, 0xf8, 0xf0, 0x15, 0xe4, + 0x21, 0xf7, 0x10, 0xf9, 0xe7, 0xc3, 0x19, 0xe1, 0x34, 0xff, 0xed, 0xf4, + 0xef, 0xd7, 0x21, 0x01, 0x31, 0xee, 0xf7, 0xf2, 0xf3, 0xe5, 0x0a, 0xee, + 0x2e, 0x1e, 0xf2, 0x0c, 0x07, 0xc2, 0x08, 0x0a, 0x14, 0x14, 0x00, 0xfc, + 0xf9, 0xd6, 0xfb, 0xf8, 0xe5, 0xf1, 0xfa, 0xe0, 0x15, 0x21, 0xef, 0x06, + 0xf9, 0x00, 0xf5, 0xf4, 0x0b, 0x0b, 0x18, 0x02, 0xf5, 0x04, 0xdb, 0xfd, + 0xcc, 0x32, 0x1d, 0xc9, 0x3b, 0x12, 0xd9, 0xaf, 0xcf, 0x0f, 0x26, 0xde, + 0x35, 0xe4, 0xdb, 0xd3, 0x22, 0x11, 0x2e, 0xfb, 0x36, 0xfa, 0xfd, 0x02, + 0xeb, 0x0f, 0x37, 0x0b, 0x14, 0x1d, 0xdd, 0x18, 0xe0, 0x10, 0xe0, 0xdf, + 0x14, 0xf9, 0xf0, 0x19, 0xf7, 0xfb, 0xc4, 0xe5, 0xe7, 0x11, 0x01, 0x31, + 0x1a, 0xf7, 0xd8, 0xf1, 0xe9, 0xf3, 0x21, 0xf9, 0xfe, 0xe4, 0xe9, 0x02, + 0xd0, 0x06, 0x14, 0xd7, 0xfc, 0xec, 0x06, 0x10, 0xfc, 0xf0, 0x1c, 0xe7, + 0xec, 0xe3, 0x03, 0x21, 0xe4, 0x04, 0x12, 0xf0, 0xf3, 0xed, 0x16, 0x36, + 0x02, 0xfd, 0x13, 0x11, 0xdf, 0xeb, 0x19, 0x07, 0x10, 0x0c, 0xf9, 0x08, + 0xf8, 0xf4, 0x1d, 0xfd, 0x1d, 0x16, 0xf4, 0x0a, 0x08, 0xec, 0x0c, 0x09, + 0x3d, 0xe0, 0x0b, 0xee, 0x10, 0xd1, 0x1e, 0x15, 0x43, 0xeb, 0xfa, 0xf3, + 0x05, 0xc7, 0xf2, 0xd9, 0x25, 0x20, 0xee, 0xe9, 0xfd, 0xce, 0x16, 0x0c, + 0x27, 0x06, 0x0a, 0x06, 0xf9, 0xd6, 0x0b, 0x05, 0xe8, 0x02, 0xe8, 0xd2, + 0x10, 0x01, 0xf2, 0x15, 0x09, 0x04, 0xd3, 0xe2, 0xfe, 0xf0, 0x32, 0x1b, + 0xd9, 0xf5, 0xea, 0xcc, 0xcb, 0x10, 0x1c, 0xf1, 0x3b, 0x02, 0xd4, 0xbf, + 0xca, 0xfe, 0x12, 0xdb, 0x3b, 0xf8, 0xd5, 0xe7, 0x13, 0x10, 0x1a, 0xf4, + 0x38, 0x09, 0x08, 0xee, 0xf4, 0xf4, 0x3c, 0xf7, 0x15, 0x04, 0xe4, 0xfa, + 0xf4, 0x04, 0xee, 0xf4, 0x07, 0xf8, 0xe9, 0x3b, 0xe2, 0x1f, 0xd5, 0xed, + 0xe6, 0xfd, 0x18, 0x49, 0x21, 0x06, 0xd8, 0xde, 0xfa, 0xf0, 0x1b, 0xfe, + 0xde, 0x08, 0xf7, 0x14, 0xc7, 0x0f, 0x1d, 0xcf, 0x00, 0xea, 0xff, 0x1b, + 0xd5, 0x08, 0x0d, 0xd9, 0xf1, 0xf4, 0x16, 0x23, 0xd8, 0x0c, 0x29, 0xdc, + 0xf1, 0xf2, 0x21, 0x49, 0xfc, 0xe2, 0x08, 0x01, 0xf0, 0xf8, 0x17, 0xf9, + 0x0f, 0xf5, 0xfa, 0x1a, 0xef, 0xec, 0x09, 0xeb, 0x1a, 0x0c, 0x17, 0x09, + 0x11, 0xe9, 0x1a, 0xf7, 0x29, 0xf9, 0xfd, 0x07, 0x01, 0xdd, 0x0a, 0xec, + 0x22, 0x15, 0x03, 0xfd, 0xe2, 0xd2, 0x15, 0xec, 0x4d, 0xd7, 0xfc, 0xf6, + 0x0b, 0xcc, 0x0e, 0x04, 0x03, 0xf7, 0xfb, 0xfb, 0x0d, 0xeb, 0x19, 0x07, + 0xf4, 0xf4, 0xe5, 0xde, 0x22, 0x07, 0xea, 0xf7, 0xeb, 0x23, 0xc8, 0xee, + 0x03, 0x04, 0x0f, 0x19, 0xc3, 0xf8, 0x06, 0xd0, 0xf7, 0xfe, 0x0e, 0xe7, + 0x0a, 0x02, 0xb0, 0xb8, 0x00, 0xfb, 0x18, 0x0f, 0x22, 0xf7, 0xe9, 0xdc, + 0x09, 0x15, 0x23, 0x0d, 0x22, 0x13, 0xe2, 0xed, 0xeb, 0x18, 0x20, 0x0b, + 0x12, 0xfc, 0x02, 0xf1, 0xdb, 0x0e, 0xe1, 0x04, 0xdb, 0x0f, 0xf3, 0x1a, + 0x06, 0xef, 0xdb, 0xdc, 0xdd, 0xfb, 0x00, 0x2a, 0x20, 0xfd, 0xc1, 0xe3, + 0xef, 0x01, 0x14, 0xf2, 0x14, 0x00, 0x0f, 0x28, 0xd9, 0xff, 0xf4, 0xdc, + 0x09, 0xfa, 0x1c, 0x08, 0xd1, 0x03, 0x0a, 0xf4, 0xe4, 0xdb, 0x20, 0x30, + 0xea, 0x06, 0x11, 0xe2, 0x26, 0xf7, 0x16, 0x22, 0xf9, 0x07, 0x02, 0xf5, + 0xf6, 0xfb, 0x1d, 0x0c, 0x16, 0x0a, 0x07, 0xf9, 0x11, 0xde, 0x20, 0x08, + 0x19, 0x04, 0x0a, 0x0b, 0x0c, 0xf7, 0xf4, 0xfc, 0x41, 0xf1, 0xf8, 0x16, + 0x09, 0xdc, 0x0e, 0x1a, 0x2b, 0x1f, 0xe7, 0xfe, 0x01, 0xe0, 0xfd, 0xe2, + 0x34, 0xec, 0xf3, 0xf5, 0x03, 0xec, 0x0b, 0xfb, 0x04, 0xf6, 0xdd, 0xfd, + 0x06, 0x14, 0x0d, 0xfa, 0xfc, 0xf1, 0x0a, 0xca, 0x01, 0xec, 0x0e, 0x0e, + 0xec, 0xd7, 0xee, 0xd4, 0xf2, 0xfe, 0x16, 0xfa, 0xbd, 0x0d, 0xef, 0xcb, + 0xc4, 0xee, 0xed, 0x13, 0x10, 0x19, 0xf8, 0xb1, 0xf1, 0xe3, 0x00, 0xf3, + 0x0c, 0xf6, 0xde, 0xc6, 0x15, 0x27, 0x14, 0x29, 0x15, 0xf6, 0xf4, 0xf5, + 0xe7, 0x00, 0x0b, 0x2f, 0x0c, 0xef, 0x03, 0x0f, 0xfd, 0x08, 0xf3, 0xf9, + 0xf9, 0x05, 0x0d, 0x34, 0x15, 0x1b, 0xc8, 0xd1, 0xf2, 0x1b, 0x0a, 0x22, + 0x12, 0x11, 0xe9, 0xf4, 0xe1, 0x2a, 0x20, 0x03, 0xf2, 0xf8, 0x14, 0x0b, + 0xd0, 0xf4, 0x0e, 0xbf, 0xc6, 0xd8, 0x04, 0x05, 0xf8, 0xf4, 0x04, 0xc9, + 0xea, 0xfd, 0xf7, 0xfa, 0xe3, 0x1b, 0x11, 0xde, 0x0c, 0x11, 0x25, 0x29, + 0xe5, 0x02, 0xef, 0xef, 0x02, 0xfa, 0x1a, 0x21, 0x19, 0x09, 0x08, 0x05, + 0x04, 0xe5, 0xfa, 0xed, 0x2d, 0x26, 0xfa, 0x17, 0xf6, 0xe8, 0x12, 0x12, + 0x31, 0xfc, 0x0d, 0x00, 0xf7, 0xeb, 0x19, 0xf1, 0x2a, 0x06, 0x14, 0xec, + 0x08, 0xd3, 0x21, 0x07, 0x32, 0xe3, 0x02, 0x0b, 0xfb, 0xd8, 0x27, 0x07, + 0x05, 0xe6, 0xf5, 0xf5, 0x0a, 0xf7, 0x2c, 0x2a, 0xd8, 0x1b, 0xda, 0xf7, + 0xea, 0xf6, 0xf9, 0x0e, 0xf8, 0x0c, 0x05, 0xc7, 0xd6, 0x06, 0x12, 0xe3, + 0xe1, 0xe1, 0xd8, 0xdb, 0xc6, 0xf8, 0xe6, 0xfa, 0x0c, 0x07, 0xf8, 0xe7, + 0xe1, 0x0f, 0x00, 0xf3, 0x03, 0xf0, 0xde, 0xcc, 0xf5, 0xfc, 0xef, 0x1e, + 0x16, 0x13, 0xfb, 0xf4, 0x03, 0xe9, 0xfc, 0xfa, 0x15, 0xe8, 0x15, 0x09, + 0xf1, 0x0d, 0xdb, 0x0a, 0xe8, 0x09, 0xf5, 0x1a, 0x04, 0xf8, 0xd8, 0xd4, + 0x04, 0xee, 0x25, 0x29, 0x09, 0xfe, 0xf3, 0xf5, 0xd4, 0x0a, 0x15, 0x19, + 0xf5, 0x12, 0xfe, 0x04, 0xe7, 0x01, 0xeb, 0xde, 0xbe, 0xfe, 0x09, 0x12, + 0xdf, 0x13, 0xe0, 0xef, 0xc7, 0xff, 0x03, 0x08, 0xfe, 0xf2, 0x19, 0xe0, + 0xe4, 0x0c, 0x22, 0x1e, 0x05, 0xf7, 0x16, 0xf2, 0xf9, 0x06, 0x17, 0xf6, + 0x0c, 0x1e, 0x23, 0x08, 0xfe, 0xdc, 0xfd, 0x17, 0x11, 0xdf, 0xf5, 0x0f, + 0x01, 0x03, 0x08, 0xee, 0x1b, 0x02, 0x0b, 0x1b, 0x0c, 0x16, 0x1a, 0x00, + 0x0f, 0x26, 0x14, 0xf8, 0xf4, 0xf3, 0x19, 0x16, 0x22, 0x0a, 0xd0, 0xf9, + 0xf1, 0x05, 0x2b, 0x1e, 0x1e, 0xef, 0xf5, 0x06, 0x05, 0xe7, 0x3f, 0x2a, + 0x06, 0xf0, 0x15, 0x14, 0x13, 0x20, 0x1b, 0xde, 0x10, 0x05, 0x33, 0xf8, + 0x08, 0x04, 0x17, 0x0d, 0x0f, 0xf6, 0x01, 0xed, 0x28, 0x25, 0x1c, 0x13, + 0xfb, 0xea, 0xfb, 0xf3, 0x1c, 0xf9, 0x1f, 0xf0, 0xfb, 0x17, 0xf8, 0xff, + 0x10, 0xf7, 0x0b, 0x24, 0x04, 0x00, 0x0d, 0x0c, 0xf7, 0x0a, 0x16, 0x13, + 0xf8, 0x05, 0x0a, 0xf1, 0xf5, 0xee, 0xf8, 0x14, 0x0e, 0xed, 0xfe, 0x1b, + 0xfe, 0x17, 0x13, 0x10, 0x12, 0x21, 0x1c, 0xfa, 0xe5, 0x0b, 0x08, 0x0c, + 0x10, 0x1b, 0x03, 0xef, 0x0d, 0x05, 0x0a, 0xf0, 0x04, 0x11, 0x15, 0x00, + 0xfd, 0xef, 0x02, 0x18, 0xf4, 0x09, 0xfa, 0xf6, 0x02, 0xf7, 0xfd, 0x13, + 0xef, 0x13, 0xf7, 0xf9, 0x17, 0x0f, 0xfa, 0xf8, 0x15, 0xff, 0x04, 0xef, + 0xf0, 0x15, 0xfa, 0xfe, 0xf0, 0xf4, 0xed, 0x06, 0x1c, 0x02, 0xfb, 0xf7, + 0x05, 0xfb, 0x0c, 0xef, 0xf4, 0xf0, 0xf6, 0xec, 0x17, 0xf3, 0xf5, 0xef, + 0x02, 0xfd, 0xe5, 0x21, 0x0c, 0xf1, 0x1e, 0x08, 0xf1, 0x0b, 0xf7, 0x09, + 0x1d, 0xf2, 0xf9, 0xf2, 0xfb, 0x0e, 0xed, 0xf8, 0xfa, 0xdd, 0xf0, 0xfd, + 0xdb, 0x1a, 0xf4, 0xef, 0x0c, 0x06, 0x0f, 0xdf, 0xe2, 0x06, 0x06, 0xee, + 0xfa, 0x0d, 0x17, 0xfc, 0xf9, 0x15, 0x1a, 0xe4, 0xfb, 0x0c, 0x1a, 0xfc, + 0x1b, 0x04, 0x07, 0x20, 0xff, 0x09, 0x0f, 0xf2, 0x26, 0x19, 0x1f, 0x0d, + 0x02, 0x16, 0x03, 0x03, 0xfd, 0x05, 0x01, 0x1b, 0x0a, 0x11, 0xfa, 0x21, + 0x13, 0xfb, 0x0c, 0x05, 0xf3, 0xdd, 0xe4, 0xdc, 0x22, 0x1b, 0x15, 0x14, + 0x0e, 0xe8, 0x00, 0xf7, 0xf8, 0xf4, 0x0b, 0x0b, 0xfd, 0x21, 0xe3, 0x0f, + 0xe1, 0x22, 0x01, 0x21, 0x0b, 0x1f, 0x09, 0x10, 0xe2, 0x18, 0x11, 0x0e, + 0xed, 0x01, 0x14, 0x12, 0xfd, 0x11, 0xf6, 0xe9, 0x20, 0xe1, 0xf5, 0x1b, + 0x27, 0x22, 0xfa, 0xf7, 0xfe, 0x13, 0xf6, 0xdc, 0x06, 0x0d, 0xf4, 0x05, + 0x20, 0x0d, 0x0b, 0xe4, 0x15, 0x28, 0x0c, 0x00, 0xf5, 0x07, 0x0c, 0x0a, + 0x06, 0x0e, 0xf3, 0xfb, 0xfe, 0x04, 0x08, 0xf4, 0xef, 0x03, 0xe4, 0xeb, + 0x06, 0xee, 0xed, 0xdb, 0xeb, 0x1d, 0xf4, 0xfa, 0x0c, 0xfc, 0xfe, 0x11, + 0xf7, 0xf8, 0xf5, 0xef, 0xe7, 0xfc, 0x1b, 0xdc, 0x17, 0xfd, 0xfe, 0x00, + 0xea, 0xf4, 0xf1, 0xf7, 0x0f, 0x21, 0x04, 0xfd, 0x0d, 0x0c, 0x0a, 0x14, + 0xfd, 0x19, 0x09, 0x01, 0xfd, 0xe2, 0x0c, 0x0c, 0xe0, 0x25, 0xfb, 0xff, + 0x0d, 0x18, 0xf6, 0x0b, 0x19, 0x12, 0x10, 0x09, 0x0b, 0x06, 0x12, 0x1c, + 0x10, 0x03, 0x13, 0x0a, 0x05, 0x0f, 0x09, 0x01, 0x21, 0xe4, 0x01, 0x26, + 0xf9, 0xf4, 0x05, 0x19, 0x00, 0xff, 0x0b, 0xff, 0x16, 0x09, 0xe7, 0xee, + 0xed, 0xf5, 0x0f, 0x2f, 0xee, 0x19, 0x03, 0x0a, 0x10, 0xee, 0xf7, 0x2e, + 0xf4, 0x08, 0xf7, 0xee, 0x07, 0x00, 0xfc, 0x0e, 0xf0, 0x12, 0x08, 0x05, + 0xed, 0x11, 0xfc, 0xfb, 0xf7, 0x25, 0xf1, 0x05, 0x0c, 0xf9, 0xfa, 0x03, + 0x0c, 0x16, 0x04, 0x25, 0xf8, 0xe7, 0xfc, 0x11, 0x0d, 0x19, 0xd8, 0xfa, + 0x0b, 0x06, 0xfd, 0xef, 0x13, 0xf6, 0xff, 0x0e, 0xf9, 0x04, 0xf1, 0xdc, + 0xfb, 0xe1, 0xf6, 0x0b, 0x15, 0x07, 0xf7, 0x02, 0x0e, 0xf1, 0xfd, 0xe3, + 0xeb, 0x07, 0xf1, 0xef, 0x03, 0xfe, 0xf8, 0x07, 0x10, 0xf7, 0x00, 0xf9, + 0xf2, 0x0e, 0xf9, 0xf2, 0x1d, 0xf5, 0xd8, 0xff, 0xe6, 0x18, 0x2a, 0x1b, + 0x03, 0x16, 0xfe, 0xf4, 0xf5, 0xfd, 0x04, 0x01, 0xfe, 0xfe, 0x07, 0xfc, + 0x0e, 0xfa, 0x15, 0xeb, 0x02, 0x15, 0xea, 0xfd, 0x04, 0xe5, 0xfe, 0xed, + 0xfe, 0x1a, 0x09, 0x2a, 0x1b, 0xdf, 0xfb, 0xf8, 0xf1, 0x04, 0x1a, 0x34, + 0x07, 0xf9, 0x0d, 0xf5, 0xef, 0xec, 0x10, 0x1a, 0x0b, 0x0f, 0x13, 0xfe, + 0x10, 0x22, 0x1e, 0x02, 0xe6, 0xf7, 0x11, 0xfa, 0x11, 0xfc, 0x1b, 0x21, + 0x12, 0xf4, 0x18, 0x16, 0x29, 0xe4, 0x0c, 0x2e, 0x12, 0x07, 0x20, 0xf6, + 0x1d, 0xf4, 0x12, 0x33, 0xf4, 0xee, 0xfe, 0x05, 0x06, 0xfb, 0x13, 0x0c, + 0x0e, 0xf0, 0x00, 0xf8, 0xee, 0xf3, 0x17, 0x00, 0xf7, 0xfb, 0xfc, 0x0f, + 0xf4, 0xd5, 0x0a, 0xed, 0xeb, 0xf5, 0xe9, 0xef, 0xd8, 0xf0, 0xf8, 0xe2, + 0x19, 0xf7, 0xf8, 0x0a, 0x0b, 0x09, 0xfa, 0xe7, 0x0f, 0xfc, 0xe8, 0x02, + 0x00, 0x1a, 0xfe, 0xfd, 0x1b, 0xe6, 0xef, 0x0f, 0xe3, 0x10, 0xf1, 0xe2, + 0x0b, 0x0e, 0x06, 0x29, 0x00, 0x01, 0xf3, 0x00, 0x11, 0x04, 0xf2, 0xf7, + 0xea, 0xf8, 0xe0, 0x09, 0x0e, 0x13, 0xf4, 0x00, 0x09, 0xfa, 0xf5, 0x0c, + 0xff, 0x18, 0x08, 0x0d, 0xfa, 0xde, 0xfa, 0x03, 0xf2, 0xf3, 0x1b, 0xeb, + 0x06, 0xea, 0xfb, 0xff, 0x0d, 0xf5, 0x10, 0x17, 0xf8, 0xe8, 0xf1, 0xf1, + 0xf5, 0x00, 0x03, 0x0a, 0x09, 0x0a, 0xf3, 0xfb, 0x33, 0x26, 0xe7, 0x17, + 0xe3, 0xfa, 0x1f, 0x24, 0xfc, 0x07, 0x02, 0xe2, 0xeb, 0x08, 0x2c, 0xf8, + 0x02, 0x1f, 0x04, 0xeb, 0x0b, 0x04, 0x17, 0xf7, 0xff, 0x1c, 0xed, 0x00, + 0x3f, 0xd5, 0x17, 0x1d, 0xfe, 0x03, 0xf1, 0x1c, 0x17, 0xec, 0x0e, 0x54, + 0xee, 0xf5, 0x25, 0xfa, 0x08, 0xee, 0x13, 0x32, 0x0e, 0xd8, 0x09, 0x0f, + 0xee, 0xe5, 0x06, 0x10, 0xf4, 0xfb, 0xe4, 0xfb, 0x09, 0xde, 0x13, 0xff, + 0x02, 0xf9, 0xec, 0x0a, 0x00, 0xe9, 0xfd, 0xdc, 0x06, 0x04, 0xdb, 0x06, + 0x01, 0xf8, 0x09, 0xe2, 0x0c, 0x14, 0xda, 0xfe, 0x20, 0xe3, 0x09, 0xda, + 0x14, 0x12, 0xe1, 0x05, 0xff, 0xf3, 0x00, 0x08, 0xfb, 0xf1, 0xfd, 0xf3, + 0x04, 0xfa, 0x08, 0xff, 0x01, 0x1d, 0x0b, 0xfd, 0x0a, 0xf4, 0xfb, 0xfc, + 0xf9, 0x19, 0xed, 0xfc, 0xf2, 0x06, 0xe7, 0x02, 0xf6, 0x0c, 0xfc, 0xfb, + 0x01, 0x0c, 0xeb, 0x1b, 0xff, 0xff, 0x08, 0x1d, 0xf7, 0xe8, 0xfc, 0xf4, + 0x0c, 0xfa, 0xf1, 0xee, 0xed, 0xdd, 0xfc, 0x06, 0x05, 0xdc, 0x1a, 0xfc, + 0xf9, 0x07, 0xdf, 0x1b, 0x14, 0x0c, 0xfc, 0x01, 0x16, 0xe1, 0xed, 0x09, + 0x34, 0xee, 0xe4, 0x1c, 0x1b, 0xfc, 0x3b, 0x03, 0x15, 0xf2, 0xeb, 0x14, + 0x00, 0xdd, 0x24, 0x04, 0xf1, 0xed, 0xfd, 0xe6, 0x32, 0xf9, 0x24, 0x04, + 0x0e, 0x22, 0x03, 0x14, 0x2f, 0xf5, 0x1a, 0x37, 0xf4, 0x18, 0x03, 0x0f, + 0x4b, 0xe6, 0x0d, 0x5c, 0xf7, 0x1f, 0x1c, 0xe6, 0x23, 0x0c, 0x15, 0x4e, + 0xe0, 0x05, 0x1c, 0xec, 0xff, 0x04, 0x13, 0x15, 0xee, 0x07, 0xec, 0x0c, + 0xdd, 0xf8, 0x0e, 0x03, 0x0c, 0x1f, 0xe8, 0x0e, 0xf5, 0xec, 0xfc, 0xe2, + 0xe8, 0xfb, 0xf6, 0x00, 0xe5, 0xea, 0xf3, 0xd3, 0xf5, 0xfd, 0xd2, 0xfd, + 0x1b, 0xed, 0x09, 0xd1, 0x23, 0xfa, 0xd4, 0xf7, 0xe9, 0xf0, 0x0a, 0xd6, + 0x14, 0x03, 0xe6, 0x10, 0xf4, 0x18, 0xfe, 0xe1, 0x0b, 0x25, 0xf5, 0xfc, + 0xe9, 0xf2, 0xe9, 0xf4, 0x0d, 0xf5, 0x00, 0xf9, 0x17, 0x02, 0xfd, 0x03, + 0x04, 0xf8, 0xf5, 0x14, 0xe3, 0xd3, 0xeb, 0xe7, 0x09, 0xf3, 0x14, 0x17, + 0xee, 0xe6, 0xf6, 0xff, 0x11, 0x26, 0xf4, 0xf7, 0x02, 0xfa, 0x05, 0x08, + 0x16, 0xff, 0x0d, 0xf7, 0xf1, 0xf7, 0xe6, 0xfb, 0x04, 0x04, 0x07, 0x02, + 0x04, 0x09, 0xf5, 0xfc, 0x5f, 0xd6, 0xe7, 0x2a, 0x23, 0xf4, 0x1b, 0x06, + 0x01, 0xea, 0xe7, 0x05, 0x25, 0xe3, 0x25, 0x07, 0xea, 0xfb, 0xfb, 0x09, + 0x25, 0xde, 0x37, 0x04, 0x07, 0xe5, 0xff, 0x14, 0x2f, 0x0a, 0x30, 0x23, + 0x04, 0xf0, 0x23, 0xfe, 0x1c, 0xd2, 0x2b, 0x55, 0x01, 0xe5, 0x26, 0xfe, + 0x14, 0xed, 0x24, 0x46, 0xe6, 0xee, 0x0f, 0xfd, 0xed, 0xef, 0x0e, 0x1e, + 0x05, 0x0a, 0x12, 0xff, 0xe4, 0xf5, 0x0c, 0xed, 0xfd, 0xea, 0x0d, 0x13, + 0x1a, 0xe5, 0xfc, 0xc2, 0xef, 0x0a, 0xe2, 0x0f, 0xfe, 0xff, 0x0c, 0xf0, + 0xff, 0xdf, 0xea, 0x00, 0xf6, 0xe1, 0x04, 0xd8, 0x26, 0x20, 0xdc, 0xf4, + 0x19, 0x06, 0xe8, 0xd2, 0x10, 0x04, 0xf1, 0x02, 0x0c, 0x06, 0xf0, 0xf0, + 0x04, 0x1f, 0xf4, 0xf5, 0xed, 0xf1, 0xfa, 0xf1, 0x04, 0x02, 0xf8, 0xfb, + 0x04, 0xf1, 0xe5, 0xe4, 0x0a, 0xf0, 0xfe, 0xef, 0x1c, 0xe3, 0xeb, 0xf3, + 0x00, 0x17, 0x01, 0x13, 0x19, 0xda, 0xf8, 0x06, 0xde, 0x11, 0xea, 0xf7, + 0xf4, 0xef, 0x03, 0x04, 0x0b, 0xe8, 0x08, 0x0e, 0xe2, 0xee, 0xde, 0x06, + 0x0e, 0x29, 0xfb, 0xfa, 0x00, 0x02, 0xec, 0x1b, 0x52, 0xff, 0xde, 0x3a, + 0x2f, 0x13, 0x30, 0xe9, 0xff, 0xf6, 0xe7, 0x15, 0x1d, 0xd9, 0x3c, 0x0f, + 0xe6, 0x14, 0xee, 0x13, 0x1f, 0xe7, 0x33, 0x08, 0xfc, 0x06, 0x0c, 0x08, + 0x19, 0xd9, 0x2b, 0x1f, 0x07, 0x10, 0x24, 0x16, 0x29, 0xfc, 0x31, 0x4d, + 0xf0, 0xd9, 0x3f, 0xf2, 0x20, 0xe2, 0x25, 0x49, 0xe5, 0xec, 0x0a, 0xf5, + 0xf2, 0xd9, 0x22, 0x1f, 0xed, 0x22, 0x02, 0x0a, 0x16, 0x08, 0xf7, 0xfb, + 0x0e, 0xfb, 0xfb, 0x1d, 0xf3, 0x1c, 0xf6, 0xe1, 0xcf, 0x19, 0xf4, 0x0f, + 0xee, 0xf9, 0x04, 0xd1, 0xf9, 0xe2, 0xda, 0xf1, 0x24, 0xf5, 0x07, 0xdf, + 0x1d, 0xf9, 0xdb, 0x18, 0x0b, 0xea, 0x08, 0xca, 0xf2, 0xfa, 0xec, 0x04, + 0x0e, 0x17, 0xed, 0xf1, 0x06, 0x15, 0xfc, 0xfd, 0x08, 0xfa, 0xe3, 0xe4, + 0x0a, 0xfc, 0xee, 0x08, 0xf5, 0x09, 0xef, 0xee, 0x06, 0xef, 0xe1, 0x19, + 0x07, 0xe8, 0xe6, 0xdf, 0xea, 0x0d, 0xf1, 0x16, 0xee, 0xed, 0xf8, 0x09, + 0xfa, 0xfb, 0x0c, 0xf8, 0xeb, 0xda, 0x00, 0xfc, 0x04, 0xfe, 0xf5, 0xff, + 0xf6, 0xe1, 0x0c, 0x0a, 0x13, 0x0d, 0xf6, 0xf5, 0x15, 0x07, 0xca, 0xec, + 0x50, 0x0e, 0xd0, 0x26, 0x4c, 0xf8, 0x23, 0xeb, 0xff, 0x08, 0xe3, 0x11, + 0x2c, 0xf9, 0x2a, 0xf1, 0xe9, 0x0b, 0xe9, 0x0f, 0x15, 0xec, 0x33, 0x11, + 0x0c, 0x0d, 0x01, 0x01, 0x32, 0xe3, 0x41, 0x27, 0x11, 0x02, 0x2e, 0x07, + 0x09, 0xe3, 0x22, 0x4d, 0xf1, 0x05, 0x27, 0x03, 0x25, 0xf5, 0x2c, 0x3b, + 0xf4, 0x00, 0x16, 0x0b, 0xec, 0xfe, 0x17, 0x0d, 0xff, 0xe7, 0xfe, 0x24, + 0x06, 0xee, 0xf0, 0xe9, 0xfa, 0x1c, 0xf2, 0x19, 0x08, 0xfa, 0xff, 0xd2, + 0x01, 0x02, 0xea, 0x05, 0xf2, 0xf4, 0x0b, 0xd2, 0xf9, 0x0d, 0xcd, 0x0d, + 0x12, 0xf2, 0x0e, 0xe1, 0x1f, 0x00, 0xe7, 0x14, 0x04, 0xff, 0x09, 0xdb, + 0xfc, 0xd9, 0x06, 0xf9, 0xeb, 0x01, 0xef, 0xfa, 0xfb, 0xf5, 0xfc, 0xfb, + 0x14, 0xe2, 0xf9, 0xf5, 0x02, 0xfd, 0xfc, 0x01, 0xf7, 0xf3, 0x00, 0xec, + 0xe7, 0xf2, 0x00, 0xf1, 0x11, 0xec, 0xf0, 0xe9, 0x11, 0x0a, 0x07, 0x04, + 0x01, 0xee, 0xfb, 0xf2, 0x14, 0x01, 0x12, 0xf0, 0xf2, 0xf1, 0xf0, 0xfb, + 0x08, 0x03, 0xf8, 0x01, 0xe8, 0xf9, 0x17, 0x26, 0x0f, 0xea, 0xf7, 0xf8, + 0x1e, 0xfe, 0xf2, 0xf8, 0x3f, 0x00, 0xd4, 0x1c, 0x53, 0xfe, 0x1e, 0x0f, + 0xef, 0xdd, 0xed, 0x10, 0x19, 0xe7, 0x34, 0x0e, 0xde, 0xdf, 0xfa, 0x0e, + 0x29, 0xe3, 0x16, 0x09, 0x06, 0x12, 0xeb, 0xf9, 0x32, 0xe0, 0x1a, 0x1d, + 0xf3, 0xed, 0x10, 0x07, 0x31, 0xf2, 0x12, 0x52, 0xeb, 0xf7, 0x1e, 0xf7, + 0x1a, 0xdc, 0x3e, 0x33, 0xe3, 0xfb, 0x1f, 0x0b, 0x08, 0xfe, 0x13, 0x1a, + 0xf4, 0xf8, 0xfe, 0x08, 0xfc, 0xe9, 0xfe, 0xeb, 0xe6, 0xf6, 0x02, 0x18, + 0x02, 0xe8, 0xfb, 0xf3, 0x01, 0x08, 0xd7, 0x13, 0x04, 0xe6, 0x02, 0xe6, + 0xd7, 0x01, 0xd4, 0xf0, 0x0e, 0x05, 0x18, 0xe5, 0x08, 0xe5, 0xd2, 0x16, + 0x12, 0xfe, 0x0e, 0xd3, 0xfc, 0x1f, 0xe9, 0xf8, 0x11, 0x06, 0xf3, 0xd5, + 0xf8, 0xff, 0xf0, 0x04, 0x0a, 0xd9, 0xf8, 0xfd, 0xf5, 0x12, 0xff, 0x06, + 0x1b, 0xe6, 0xfe, 0xfe, 0xde, 0xee, 0xf6, 0x18, 0xf1, 0xf8, 0x06, 0xf3, + 0x02, 0xea, 0x04, 0x14, 0xfc, 0xee, 0xe6, 0x09, 0xf9, 0xee, 0xe3, 0xe7, + 0xfc, 0xd9, 0xef, 0xfc, 0x0a, 0x0c, 0x03, 0xf6, 0xe2, 0x11, 0x0f, 0x19, + 0x18, 0x10, 0xef, 0xe5, 0x22, 0xf5, 0xe5, 0xe9, 0x4b, 0xf7, 0xdb, 0x0c, + 0x4f, 0xde, 0x22, 0x16, 0x09, 0x16, 0xd1, 0xf8, 0x19, 0xe0, 0x24, 0xfe, + 0xb8, 0xfb, 0xe5, 0x12, 0x1c, 0xe3, 0x22, 0x09, 0x05, 0x29, 0xf7, 0x10, + 0x31, 0xe1, 0x33, 0x3f, 0xfd, 0xed, 0x04, 0x03, 0x2e, 0xed, 0x30, 0x36, + 0xee, 0x16, 0x2f, 0xf5, 0x1b, 0xdc, 0x3a, 0x56, 0xe5, 0xef, 0x26, 0xff, + 0x03, 0xd7, 0x31, 0x16, 0xef, 0xf1, 0x08, 0x13, 0x01, 0x02, 0x03, 0xf1, + 0xf2, 0x08, 0xff, 0x05, 0x12, 0xf2, 0xee, 0xda, 0xed, 0xec, 0xea, 0xf7, + 0x0c, 0xf1, 0x09, 0xe6, 0xe6, 0x00, 0xcc, 0x10, 0x0d, 0x0d, 0x20, 0xf4, + 0x18, 0x23, 0xec, 0xf9, 0x00, 0xe4, 0x07, 0xd4, 0xfb, 0x16, 0xd2, 0x01, + 0xe6, 0x01, 0x06, 0xf0, 0xfe, 0x03, 0xf3, 0x09, 0x01, 0x0d, 0x05, 0xf7, + 0xd4, 0x02, 0xfb, 0xfb, 0x08, 0xf0, 0x1f, 0xf3, 0xfe, 0xeb, 0x02, 0x0e, + 0x1b, 0x0f, 0x04, 0xf5, 0xf0, 0x1f, 0x14, 0xf7, 0x06, 0xdc, 0xf9, 0xe9, + 0x01, 0xff, 0x08, 0xf2, 0x06, 0xff, 0xff, 0xf3, 0x05, 0x1a, 0xfc, 0xfa, + 0xeb, 0xfb, 0xfa, 0x12, 0x20, 0xf6, 0xe0, 0xe8, 0x1c, 0xfa, 0xd6, 0x0d, + 0x2c, 0x04, 0xe1, 0x09, 0x3b, 0xd3, 0x2a, 0xee, 0xf7, 0xed, 0xf1, 0xf7, + 0x0d, 0xf0, 0x32, 0x0f, 0xc9, 0x0e, 0x00, 0x10, 0x24, 0xfb, 0x31, 0xf0, + 0xf4, 0xdd, 0xf5, 0x04, 0x25, 0xc7, 0x27, 0x25, 0x16, 0x11, 0x2e, 0x09, + 0x30, 0xd1, 0x2c, 0x34, 0xe6, 0xf0, 0x21, 0xf5, 0x21, 0xc8, 0x40, 0x39, + 0xde, 0xf0, 0x12, 0xf3, 0x10, 0xe8, 0x1f, 0x18, 0xfa, 0xea, 0x07, 0x11, + 0xdf, 0xed, 0xfa, 0xf0, 0x07, 0xef, 0xf3, 0x05, 0x10, 0xe5, 0xf3, 0xe9, + 0xe9, 0xe8, 0xd6, 0x01, 0xf9, 0x05, 0x0b, 0xee, 0xf9, 0x12, 0xe3, 0x05, + 0xfd, 0xe6, 0x16, 0xe2, 0x1b, 0x12, 0xc5, 0x00, 0xfd, 0x02, 0x04, 0xd2, + 0xff, 0xec, 0xf6, 0xfd, 0x00, 0xe4, 0xf7, 0xf3, 0xeb, 0xfa, 0xf8, 0x0d, + 0x03, 0xfa, 0xfe, 0xe4, 0xdb, 0xe3, 0x06, 0xff, 0xf4, 0xf2, 0x1b, 0xf1, + 0xf7, 0x02, 0x01, 0x04, 0x13, 0xe5, 0x0c, 0x05, 0xf7, 0x0a, 0x03, 0x03, + 0x0b, 0x03, 0xee, 0xf7, 0x21, 0x20, 0xff, 0xf3, 0x09, 0xe5, 0xff, 0xec, + 0x17, 0x00, 0x06, 0x14, 0xeb, 0xf2, 0x18, 0x16, 0x1f, 0xec, 0xee, 0xe1, + 0x1e, 0x03, 0xfa, 0xfe, 0x28, 0x03, 0xc9, 0x0c, 0x3f, 0xd8, 0x30, 0x16, + 0x03, 0xf8, 0xe9, 0xfb, 0x28, 0xe1, 0x36, 0x0a, 0xdf, 0xe5, 0xeb, 0x08, + 0x1c, 0xcd, 0x29, 0xf2, 0xfc, 0x0a, 0xed, 0x01, 0x29, 0xf1, 0x20, 0x13, + 0x04, 0xec, 0x17, 0x0a, 0x35, 0xc3, 0x1a, 0x46, 0xe0, 0xd7, 0x3c, 0x09, + 0x28, 0xd1, 0x22, 0x20, 0xd5, 0xfa, 0x28, 0xfa, 0xff, 0xea, 0x1d, 0x23, + 0xe0, 0x07, 0x07, 0x0f, 0xf1, 0xf1, 0x08, 0xf0, 0xf8, 0xff, 0x05, 0x1b, + 0x05, 0xfa, 0xf0, 0xfb, 0xe3, 0xe4, 0xcc, 0x1a, 0xf9, 0x09, 0x06, 0xee, + 0xf4, 0x03, 0xd0, 0x14, 0xf4, 0xff, 0x1d, 0xe8, 0x11, 0xf4, 0xd1, 0xf4, + 0x04, 0x0b, 0xfb, 0xdc, 0x0a, 0x0c, 0xeb, 0xed, 0x06, 0xf3, 0x04, 0xdd, + 0xdf, 0xf9, 0xea, 0xfc, 0xf5, 0xf2, 0xfb, 0xea, 0xe3, 0x03, 0xee, 0x0e, + 0xff, 0xdb, 0x1e, 0x04, 0xf7, 0x1a, 0x04, 0x0c, 0x0d, 0xda, 0x04, 0xe9, + 0xff, 0x04, 0x00, 0x0c, 0xf9, 0xe4, 0xfb, 0xf6, 0x14, 0xde, 0x1b, 0x00, + 0x0b, 0xfe, 0x06, 0xf8, 0x0f, 0xdc, 0x01, 0xef, 0xef, 0x0d, 0xf8, 0xf1, + 0x0f, 0xf9, 0xf9, 0xdf, 0x0d, 0xe4, 0xd9, 0xf9, 0x2b, 0xee, 0xe8, 0x09, + 0x40, 0xf9, 0x2f, 0x0a, 0xfa, 0xe8, 0xe9, 0x01, 0x0e, 0xe7, 0x23, 0x0a, + 0xd0, 0x19, 0xd3, 0x0e, 0x04, 0xda, 0x2b, 0x0f, 0xe7, 0xe6, 0xf3, 0xfb, + 0x2c, 0xd3, 0x36, 0x19, 0x0e, 0xfe, 0x03, 0x1a, 0x2e, 0xd0, 0x23, 0x32, + 0xf1, 0xe1, 0x2a, 0x09, 0x1b, 0xf6, 0x29, 0x3e, 0xce, 0x15, 0x0a, 0xe8, + 0xec, 0xdf, 0x44, 0x28, 0xd9, 0xfd, 0xfa, 0x09, 0xff, 0xe7, 0x08, 0xec, + 0xf4, 0xef, 0x01, 0x19, 0x11, 0xf3, 0xeb, 0xeb, 0xed, 0x1a, 0xdd, 0x15, + 0x0f, 0x07, 0xfe, 0xeb, 0xff, 0xd6, 0xd5, 0x04, 0xf5, 0x07, 0x10, 0xe6, + 0x0c, 0xe4, 0xda, 0x0c, 0x08, 0xee, 0x06, 0xd8, 0xf8, 0xf1, 0xe0, 0x01, + 0x08, 0xfe, 0xf9, 0xf3, 0xdf, 0x03, 0xe6, 0xf4, 0x0a, 0xff, 0xf2, 0xe0, + 0xd9, 0xeb, 0x01, 0x10, 0x02, 0xfc, 0x0d, 0x14, 0xea, 0xf8, 0x03, 0x18, + 0xf3, 0x09, 0xfc, 0x0c, 0x0b, 0x1f, 0xf5, 0x05, 0xf7, 0xf9, 0x00, 0xfd, + 0x04, 0xfc, 0x16, 0x07, 0x00, 0xdf, 0xf9, 0xfa, 0x0c, 0xfb, 0xf4, 0xf7, + 0xf0, 0xeb, 0x07, 0x17, 0x20, 0xfb, 0xf0, 0xec, 0x04, 0x00, 0xf8, 0xf2, + 0x2d, 0xf9, 0xd9, 0x0b, 0x55, 0xec, 0x33, 0x26, 0xf8, 0x0a, 0xf2, 0x0b, + 0x25, 0xdf, 0x29, 0x05, 0xd1, 0x14, 0xe2, 0xf2, 0x12, 0xdd, 0x28, 0xfc, + 0xec, 0x08, 0xfd, 0x02, 0x3a, 0xe6, 0x29, 0x25, 0x0d, 0x10, 0x09, 0x0a, + 0x32, 0xf5, 0x17, 0x2d, 0xea, 0xfb, 0x35, 0xfc, 0x28, 0xd0, 0x29, 0x2f, + 0xcb, 0x06, 0x0f, 0x04, 0xf2, 0xf3, 0x34, 0x1c, 0xf4, 0x08, 0x05, 0xfc, + 0xfd, 0xed, 0x0f, 0xf8, 0xe9, 0xf0, 0x09, 0x16, 0xfe, 0x02, 0xff, 0xd4, + 0xea, 0x0a, 0xeb, 0x0c, 0xf8, 0xf4, 0x09, 0xf4, 0xf2, 0x07, 0xd9, 0x0b, + 0xfd, 0xe4, 0x1a, 0xef, 0x14, 0x08, 0xd8, 0xfc, 0xf5, 0xe1, 0x03, 0xcf, + 0xf1, 0x11, 0xdb, 0x15, 0x07, 0x10, 0xf8, 0xfc, 0xe2, 0xf1, 0xf5, 0xde, + 0xff, 0xe7, 0x01, 0xea, 0xee, 0xe9, 0x02, 0x0a, 0x18, 0xec, 0xfe, 0xf9, + 0x09, 0xf3, 0x0e, 0x02, 0xf1, 0xfc, 0xf9, 0x16, 0x05, 0x07, 0x09, 0x0d, + 0x0e, 0xf7, 0x04, 0xed, 0x04, 0xdb, 0x04, 0x04, 0xf6, 0xdc, 0xee, 0xec, + 0xf5, 0xfe, 0xf4, 0x02, 0xe4, 0x0b, 0xe0, 0x17, 0x0a, 0xe0, 0xf7, 0xdc, + 0x11, 0xd6, 0xfe, 0xfa, 0x35, 0xde, 0xe6, 0x06, 0x44, 0xf9, 0x35, 0x0a, + 0xfb, 0xff, 0xec, 0xfb, 0x16, 0xd9, 0x23, 0x0f, 0xd4, 0xef, 0xdf, 0x06, + 0x0b, 0xd9, 0x25, 0xff, 0xf8, 0xeb, 0xf4, 0x0a, 0x20, 0xe5, 0x22, 0x1c, + 0xeb, 0xf4, 0x0d, 0x0c, 0x19, 0xe1, 0x1e, 0x31, 0xe9, 0xfb, 0x20, 0xf0, + 0x23, 0xfe, 0x35, 0x28, 0xb4, 0x06, 0x28, 0xe7, 0xfb, 0xe9, 0x2a, 0x1a, + 0xef, 0x15, 0x0c, 0xed, 0xf1, 0x04, 0x0e, 0x0a, 0xff, 0x16, 0x01, 0x04, + 0x17, 0xea, 0xec, 0xdc, 0xf4, 0xf7, 0x04, 0x16, 0x1f, 0x0a, 0x11, 0xef, + 0x12, 0xdf, 0xd9, 0x0c, 0xf5, 0x10, 0x02, 0xf3, 0x10, 0x03, 0xd3, 0xf5, + 0x0b, 0x02, 0x00, 0xcb, 0xf6, 0x23, 0xf6, 0xf1, 0x1f, 0xf9, 0xfc, 0xf0, + 0xf6, 0xfe, 0xfa, 0xf8, 0xf9, 0xf4, 0xfb, 0x0a, 0xd6, 0x29, 0x09, 0x02, + 0x00, 0xfc, 0xfc, 0xee, 0xf5, 0x05, 0xfb, 0x1e, 0xf1, 0xf1, 0xf3, 0x02, + 0xec, 0x1c, 0x0c, 0x0e, 0x0b, 0x04, 0xf6, 0xe7, 0x14, 0x08, 0x27, 0x01, + 0xfe, 0xe5, 0xe7, 0x01, 0x1b, 0xf0, 0xf6, 0xff, 0xf4, 0xe7, 0xee, 0x18, + 0x0d, 0x08, 0xf8, 0xd6, 0x07, 0xf4, 0x08, 0xff, 0x1d, 0x13, 0xe7, 0x0b, + 0x42, 0xef, 0x28, 0x00, 0xf9, 0xf0, 0xf3, 0x00, 0x15, 0xfd, 0x1a, 0x22, + 0xc1, 0xf5, 0xe0, 0xf8, 0x09, 0xe6, 0x0e, 0x05, 0xf9, 0xf6, 0x01, 0x01, + 0x13, 0xdc, 0x1f, 0x0d, 0xfb, 0x04, 0x08, 0x0b, 0x15, 0xdb, 0x28, 0x34, + 0xed, 0x0b, 0x3a, 0xed, 0x16, 0xe3, 0x39, 0x32, 0xc4, 0x0b, 0x20, 0xe7, + 0xf7, 0x02, 0x35, 0x24, 0xfc, 0xe8, 0x1c, 0xf8, 0xf1, 0xfa, 0x0c, 0x1d, + 0xf2, 0x05, 0xff, 0x12, 0x0f, 0x01, 0xec, 0xea, 0xf0, 0x03, 0xe7, 0x15, + 0xfd, 0x05, 0x08, 0xe0, 0x1b, 0xf8, 0xe1, 0x1e, 0xed, 0xdc, 0x11, 0xeb, + 0xfd, 0x1a, 0xeb, 0x09, 0xf9, 0xf3, 0x00, 0xe8, 0xe6, 0x08, 0xf7, 0xde, + 0x1e, 0x00, 0x00, 0x00, 0xe4, 0x09, 0xf2, 0xf8, 0xe7, 0xf2, 0x0d, 0xfa, + 0xe2, 0x0f, 0x04, 0x08, 0xf2, 0x13, 0xf8, 0xf9, 0xf1, 0xff, 0x03, 0x11, + 0x12, 0xe9, 0xf4, 0x13, 0x07, 0x0c, 0x13, 0x2b, 0xf7, 0xdd, 0xf9, 0xe9, + 0xfa, 0xdb, 0x1d, 0xf6, 0xf6, 0xf9, 0xe4, 0xf6, 0x0d, 0xeb, 0x0d, 0x08, + 0xe7, 0xe7, 0xf2, 0x03, 0x1d, 0xd9, 0xd8, 0xe4, 0xf7, 0xea, 0xdc, 0xdc, + 0x26, 0x02, 0xee, 0xfa, 0x38, 0xfc, 0x1a, 0xef, 0xda, 0xf1, 0xdf, 0x0b, + 0x1a, 0xe0, 0x16, 0x16, 0xdc, 0x04, 0xfa, 0xf7, 0xee, 0x02, 0x25, 0x02, + 0xf5, 0xfb, 0x08, 0xf6, 0x11, 0xf5, 0x12, 0x08, 0xf4, 0xe3, 0x1b, 0xf5, + 0x3a, 0xdc, 0x20, 0x2e, 0xe0, 0xf5, 0x30, 0xe4, 0x09, 0xf8, 0x3c, 0x45, + 0xd3, 0x08, 0x23, 0xd8, 0x09, 0xe4, 0x35, 0x30, 0xe4, 0xfe, 0x07, 0xf6, + 0x05, 0x01, 0x05, 0xff, 0xf6, 0x0d, 0x02, 0xfd, 0x03, 0x05, 0x0d, 0x00, + 0xf5, 0xd6, 0xcf, 0x19, 0x06, 0xee, 0x0d, 0xf2, 0x01, 0x18, 0xef, 0x12, + 0x04, 0x02, 0x21, 0xd9, 0x02, 0x0d, 0xeb, 0xe9, 0x13, 0x08, 0x15, 0xf0, + 0xee, 0x03, 0xec, 0x06, 0x17, 0xed, 0x00, 0x1a, 0xee, 0xf2, 0xfc, 0x09, + 0xec, 0xf8, 0xf8, 0x18, 0xf4, 0x13, 0x04, 0xf6, 0x02, 0xf0, 0xfc, 0xfe, + 0xe3, 0x01, 0x0a, 0x1c, 0x1b, 0xec, 0x0e, 0x01, 0xfb, 0x08, 0x11, 0xf5, + 0x00, 0x14, 0xe6, 0x12, 0x07, 0xf4, 0x15, 0x07, 0xfc, 0xfb, 0xf5, 0xf1, + 0x01, 0x21, 0x01, 0xe9, 0xe8, 0xef, 0xdb, 0xdf, 0x1f, 0x0a, 0xdd, 0xd1, + 0x16, 0x04, 0xfd, 0xe1, 0x24, 0xf0, 0xec, 0xf4, 0x38, 0xe1, 0x16, 0xfd, + 0xe0, 0xec, 0xe7, 0x0c, 0x2a, 0x04, 0x0c, 0x17, 0xdc, 0xe8, 0xf2, 0x03, + 0xec, 0xfd, 0x19, 0xfe, 0xf3, 0xf0, 0xf3, 0xfb, 0x18, 0xdf, 0x1c, 0x00, + 0x09, 0xf4, 0x18, 0x0b, 0x1f, 0xf6, 0x34, 0x22, 0xf4, 0x22, 0x45, 0xeb, + 0x23, 0xcf, 0x32, 0x34, 0xf2, 0xf9, 0x29, 0xd4, 0xf7, 0x0b, 0x38, 0x2a, + 0x09, 0xe6, 0x05, 0x01, 0x0b, 0xfe, 0x17, 0xfb, 0x00, 0xeb, 0x08, 0xfd, + 0x0c, 0x02, 0x1d, 0xea, 0xfa, 0x0b, 0xeb, 0x09, 0xfe, 0xfe, 0x10, 0xe0, + 0xf6, 0x06, 0xf0, 0x15, 0xf3, 0x09, 0x11, 0xe4, 0xf9, 0x07, 0xe1, 0xed, + 0x17, 0x05, 0x0c, 0xe1, 0xdb, 0xf2, 0xf8, 0xea, 0x22, 0xe9, 0x02, 0x00, + 0xfd, 0xe7, 0xf2, 0xf8, 0xf9, 0xfc, 0xfa, 0xe8, 0xe8, 0xeb, 0xe9, 0x0d, + 0x04, 0xf8, 0xf8, 0xf7, 0xf8, 0x0d, 0x03, 0x0c, 0x13, 0xf2, 0x0f, 0xf9, + 0xe6, 0xfd, 0x0f, 0x19, 0x08, 0xf7, 0xfa, 0x01, 0xf3, 0x12, 0x1e, 0x05, + 0x0a, 0x09, 0xfd, 0x0b, 0x07, 0x08, 0x02, 0xfc, 0xd6, 0xe8, 0x14, 0x01, + 0x13, 0x19, 0xef, 0xda, 0x0e, 0x0a, 0x07, 0xef, 0x34, 0xe0, 0x05, 0x1e, + 0x4e, 0xe9, 0x19, 0xff, 0xe1, 0x04, 0xfb, 0x0e, 0x11, 0x05, 0x1f, 0x15, + 0xd4, 0xec, 0xf9, 0xe7, 0xf9, 0xfc, 0x25, 0xff, 0x06, 0xf2, 0x01, 0xf6, + 0x2a, 0x17, 0x24, 0x11, 0xf3, 0x1a, 0x1f, 0xfb, 0x32, 0xeb, 0x33, 0x2f, + 0x00, 0x08, 0x2c, 0xf0, 0x26, 0xf4, 0x25, 0x36, 0xd9, 0xf1, 0x1a, 0xd5, + 0xec, 0xf9, 0x32, 0x27, 0xfc, 0xf4, 0xf0, 0xe3, 0xfa, 0x0c, 0x16, 0x17, + 0xfa, 0xf9, 0xe5, 0x1f, 0x1f, 0xfa, 0xff, 0xfd, 0x0d, 0x02, 0xe9, 0x0e, + 0xf0, 0x12, 0x09, 0xda, 0x02, 0xea, 0xe5, 0x0a, 0xff, 0x03, 0x13, 0xf0, + 0x0a, 0xf9, 0xe9, 0xff, 0x10, 0xfc, 0x1a, 0xf3, 0xf7, 0x0f, 0xf4, 0xfa, + 0xf4, 0x05, 0x10, 0x0a, 0xdd, 0x09, 0xf7, 0xf0, 0xe5, 0x07, 0x07, 0xfa, + 0x02, 0xd7, 0xf8, 0xf7, 0x01, 0xfb, 0x0e, 0xf8, 0x07, 0x0f, 0xfe, 0x03, + 0x12, 0x05, 0x09, 0x13, 0xf8, 0xdc, 0xfd, 0x27, 0x0f, 0xec, 0xf7, 0x07, + 0x00, 0xfc, 0x12, 0xf8, 0xfb, 0xea, 0xe4, 0xe9, 0xe9, 0xe0, 0xff, 0xdc, + 0xd6, 0xeb, 0xf2, 0xf7, 0x0d, 0x1b, 0xe9, 0xc4, 0x06, 0x00, 0xfd, 0x04, + 0x46, 0xf9, 0xe9, 0x13, 0x2d, 0x0c, 0x1f, 0xf8, 0xd3, 0x0c, 0x14, 0x11, + 0x05, 0xe5, 0x27, 0x08, 0xc5, 0xef, 0xdf, 0xdd, 0x04, 0xf8, 0x11, 0x10, + 0xf0, 0xe7, 0xfb, 0x03, 0x3c, 0xe7, 0x14, 0x0c, 0xf4, 0xf6, 0x1b, 0x0a, + 0x23, 0xf2, 0x2d, 0x1a, 0x08, 0xff, 0x32, 0xe7, 0x1a, 0x05, 0x2b, 0x34, + 0xf1, 0x0a, 0x00, 0xe8, 0x02, 0xdf, 0x2c, 0x2a, 0x03, 0xe6, 0xfc, 0xef, + 0xfc, 0xe4, 0x03, 0x01, 0x03, 0xee, 0xe9, 0x15, 0x05, 0x03, 0x13, 0x11, + 0x0e, 0xee, 0xf5, 0x22, 0x1b, 0x0e, 0xfd, 0xf3, 0x0a, 0x02, 0xdd, 0x20, + 0xeb, 0x06, 0xf8, 0xe2, 0x06, 0x0e, 0xde, 0x0d, 0xf9, 0x16, 0x1c, 0x0c, + 0xe0, 0xf0, 0xec, 0x0c, 0x0f, 0xf2, 0x27, 0x1d, 0xde, 0xe6, 0xf0, 0xf9, + 0xf0, 0x02, 0x0a, 0x07, 0x06, 0xf9, 0x0f, 0xfa, 0xf0, 0xee, 0xf1, 0xf7, + 0xff, 0x02, 0x0b, 0x0d, 0x1b, 0xee, 0xf6, 0x05, 0xff, 0x1c, 0x17, 0x04, + 0x05, 0x17, 0x00, 0xff, 0x0d, 0xf3, 0x23, 0x10, 0xfd, 0x05, 0xfb, 0xea, + 0x03, 0x10, 0x07, 0xd7, 0xf7, 0xff, 0xf3, 0xf1, 0x17, 0xed, 0xd3, 0xcb, + 0x14, 0x1c, 0xf5, 0x03, 0x47, 0xf6, 0xf7, 0xf2, 0x3e, 0xf2, 0x22, 0xf4, + 0xed, 0xfc, 0xee, 0x0b, 0xf4, 0xf1, 0x25, 0x10, 0xd0, 0xf6, 0x00, 0xef, + 0x10, 0xfc, 0x15, 0xe5, 0xdb, 0xf3, 0xea, 0x10, 0x22, 0xf2, 0x2b, 0x11, + 0xf9, 0x0a, 0xfc, 0xf5, 0x53, 0x16, 0x25, 0x43, 0xe0, 0x0e, 0x13, 0xfc, + 0x2d, 0xe2, 0x55, 0x65, 0xf4, 0x08, 0x01, 0xdf, 0x0a, 0x00, 0x49, 0x1c, + 0xfe, 0xdf, 0xef, 0xf2, 0xf9, 0xf6, 0xfd, 0xff, 0xf3, 0x02, 0xf6, 0x14, + 0x0b, 0xe8, 0x09, 0xfc, 0xfc, 0xe2, 0xe5, 0x11, 0x03, 0x09, 0xfb, 0x06, + 0x10, 0x1a, 0xf3, 0x0d, 0xfa, 0x0a, 0xd5, 0xf5, 0x1a, 0x11, 0xf2, 0xfc, + 0x1f, 0xfe, 0x0e, 0xe4, 0xef, 0xd7, 0xee, 0x06, 0x1e, 0x04, 0x12, 0x28, + 0xf7, 0x0e, 0x06, 0xf8, 0xee, 0xf0, 0x1a, 0x01, 0xf7, 0xfd, 0x03, 0x11, + 0x19, 0x10, 0x04, 0xfb, 0xd7, 0xfa, 0x16, 0x06, 0x07, 0x23, 0xfa, 0x14, + 0x11, 0xf1, 0x12, 0x10, 0x04, 0xe1, 0xee, 0xf7, 0x21, 0x0e, 0x0a, 0x0a, + 0xf8, 0x07, 0x0a, 0xee, 0x03, 0x1f, 0xfa, 0xc4, 0xec, 0x12, 0x01, 0x1e, + 0xfd, 0xf1, 0xe8, 0xcc, 0xf4, 0x17, 0xff, 0xdd, 0x45, 0x10, 0xee, 0xfa, + 0x3d, 0xe7, 0x27, 0xdd, 0xd7, 0xf9, 0xf4, 0xf6, 0x06, 0xf8, 0x1e, 0x13, + 0xe7, 0xe2, 0xf1, 0xe3, 0xf3, 0xf7, 0x18, 0x12, 0xe4, 0x0a, 0xdb, 0xff, + 0xff, 0xfe, 0x20, 0x09, 0x00, 0xf7, 0x23, 0xf6, 0x2d, 0x14, 0x26, 0x28, + 0xe5, 0xff, 0x0f, 0xe3, 0x1d, 0xe8, 0x56, 0x43, 0xe7, 0xfb, 0xf9, 0xe6, + 0xe9, 0xe2, 0x19, 0x19, 0x08, 0xfa, 0xf3, 0xe5, 0x23, 0x07, 0x0f, 0xf8, + 0xf8, 0xf3, 0xfc, 0x11, 0x2a, 0x05, 0xf4, 0xf1, 0xfa, 0xfb, 0xf1, 0x1e, + 0x13, 0x0f, 0xf9, 0xf5, 0xfa, 0x09, 0xf9, 0x03, 0xf0, 0xf0, 0xe7, 0xec, + 0xf1, 0x0c, 0xe6, 0xee, 0xf6, 0x20, 0x0f, 0xe9, 0x00, 0xf4, 0xfe, 0xf0, + 0x13, 0x0a, 0x17, 0x13, 0xee, 0x13, 0xfb, 0xff, 0xf8, 0xfd, 0xf4, 0xe2, + 0xe8, 0x06, 0xfc, 0x14, 0x03, 0x17, 0x00, 0x03, 0xe6, 0xfd, 0xf2, 0x12, + 0x12, 0x20, 0xeb, 0x10, 0x02, 0xf7, 0x13, 0x0d, 0x11, 0xfd, 0xde, 0xf5, + 0x07, 0xf3, 0x04, 0xff, 0x06, 0x05, 0xfb, 0xea, 0xf0, 0x0a, 0x00, 0xb5, + 0xe8, 0x1a, 0x03, 0xfe, 0x0d, 0x1a, 0xe7, 0xc0, 0xd6, 0xdc, 0xf6, 0xf8, + 0x39, 0xf5, 0xd5, 0xf8, 0x22, 0xfa, 0x22, 0x05, 0xd0, 0xf4, 0x2d, 0xfc, + 0x00, 0x0a, 0x1b, 0xfc, 0xe6, 0x09, 0x14, 0xfa, 0x00, 0x1d, 0x1a, 0xfd, + 0xf3, 0x18, 0xfc, 0xeb, 0x15, 0xf5, 0x0e, 0x0a, 0xf3, 0xf1, 0x1b, 0x05, + 0x14, 0x03, 0x2d, 0x27, 0xfb, 0x18, 0x22, 0xef, 0xf6, 0x06, 0x28, 0x2b, + 0xde, 0xec, 0xef, 0xe8, 0xd3, 0xfe, 0x17, 0x12, 0x01, 0x13, 0x05, 0xf7, + 0x00, 0xde, 0xf3, 0xe5, 0x03, 0xfb, 0x07, 0x0b, 0xfd, 0xdc, 0xdf, 0x03, + 0x0c, 0x00, 0xfa, 0x06, 0x0e, 0x02, 0x05, 0xfa, 0xfd, 0xed, 0x09, 0x0c, + 0xfd, 0xfb, 0x0c, 0xf0, 0xe4, 0x04, 0xd6, 0xf3, 0x09, 0x0a, 0xf9, 0xf8, + 0xe2, 0xef, 0xdf, 0xf0, 0xf8, 0x03, 0x0f, 0x20, 0xf4, 0xe3, 0xf8, 0x02, + 0xe2, 0xe5, 0x25, 0x0f, 0xeb, 0xf8, 0xe9, 0xfd, 0x04, 0x0c, 0x0c, 0xfe, + 0x01, 0x08, 0xfc, 0xfc, 0x1b, 0x01, 0xe5, 0x13, 0xf9, 0xe8, 0x07, 0x20, + 0xfe, 0x06, 0xec, 0xfe, 0x09, 0xef, 0x14, 0x04, 0x0b, 0xf5, 0xe7, 0xff, + 0x0a, 0x02, 0x09, 0xe9, 0xc4, 0x16, 0x0d, 0xe7, 0x15, 0x14, 0xf1, 0xd0, + 0xec, 0xe7, 0xf0, 0xf0, 0x33, 0x05, 0xda, 0xf2, 0x0b, 0x08, 0x38, 0x01, + 0x07, 0xfd, 0xd8, 0x06, 0xd9, 0xf0, 0x16, 0x1f, 0xff, 0xf7, 0xe0, 0xd8, + 0xf3, 0xf7, 0x12, 0x08, 0x0e, 0x05, 0xf6, 0x03, 0xef, 0x1b, 0x12, 0xf4, + 0xe8, 0x0f, 0x02, 0xfd, 0xf2, 0x16, 0x26, 0x22, 0xe0, 0x07, 0xf7, 0xe6, + 0xeb, 0x16, 0x22, 0x1a, 0x0b, 0x01, 0xf5, 0xea, 0xd2, 0x22, 0x0f, 0x13, + 0x15, 0x08, 0xf0, 0xfb, 0xed, 0x11, 0xf3, 0xe9, 0xff, 0xde, 0x0a, 0x18, + 0x0f, 0x02, 0xfb, 0xf9, 0xfb, 0xe8, 0x12, 0x18, 0x01, 0xf4, 0xf6, 0xf8, + 0xf0, 0x1f, 0x24, 0x15, 0xf5, 0x00, 0x1c, 0xf9, 0x01, 0x0a, 0x11, 0xd5, + 0x01, 0x12, 0x02, 0xec, 0xfd, 0x07, 0xf2, 0xea, 0xf9, 0xff, 0xf7, 0xfb, + 0x15, 0xec, 0xe5, 0x01, 0xeb, 0x05, 0xf9, 0x10, 0xfe, 0x28, 0xe5, 0x0a, + 0xeb, 0x1b, 0x0e, 0xf9, 0xde, 0x02, 0x15, 0x0a, 0xff, 0xfe, 0x11, 0x24, + 0x03, 0xf8, 0x00, 0x08, 0xfd, 0x0e, 0xeb, 0xf3, 0xf6, 0xf7, 0x14, 0x0e, + 0xfc, 0xf5, 0xde, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x8e, 0xfe, 0xff, 0xff, + 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xab, 0x01, 0x00, 0x00, + 0xfa, 0xfd, 0xff, 0xff, 0xa2, 0xff, 0xff, 0xff, 0xba, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x54, 0x4f, 0x43, 0x4f, 0x20, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, + 0x65, 0x64, 0x2e, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x24, 0xfb, 0xff, 0xff, 0x68, 0x01, 0x00, 0x00, 0x5c, 0x01, 0x00, 0x00, + 0x50, 0x01, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0xf4, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0xce, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x09, + 0x03, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x1a, 0xff, 0xff, 0xff, 0x00, 0x00, 0x80, 0x3f, + 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x18, 0x00, 0x08, 0x00, + 0x0c, 0x00, 0x10, 0x00, 0x07, 0x00, 0x14, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xc4, 0xfc, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x16, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0c, 0x00, + 0x07, 0x00, 0x10, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x38, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x14, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0c, 0x00, + 0x10, 0x00, 0x07, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x1a, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x10, 0x00, + 0x07, 0x00, 0x14, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, + 0x02, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x08, 0x00, 0x04, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x34, 0x04, 0x00, 0x00, + 0xcc, 0x03, 0x00, 0x00, 0x4c, 0x03, 0x00, 0x00, 0xdc, 0x02, 0x00, 0x00, + 0x60, 0x02, 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0xb0, 0x01, 0x00, 0x00, + 0x44, 0x01, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x02, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x00, 0x09, 0x44, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0xf4, 0xfb, 0xff, 0xff, 0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3b, 0x0e, 0x00, 0x00, 0x00, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x5f, 0x73, 0x6f, 0x66, 0x74, 0x6d, + 0x61, 0x78, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x1a, 0x00, 0x08, 0x00, + 0x07, 0x00, 0x0c, 0x00, 0x10, 0x00, 0x14, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x09, 0xb4, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x94, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x12, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x11, 0x1e, 0x23, 0x3a, + 0x9e, 0xa1, 0x15, 0x39, 0x23, 0x69, 0x45, 0x3a, 0x09, 0xe4, 0xe4, 0x39, + 0x65, 0xd7, 0x13, 0x3a, 0xe0, 0xb2, 0xfd, 0x39, 0x1b, 0xc1, 0x53, 0x3a, + 0xc2, 0x50, 0x2d, 0x3a, 0x12, 0x00, 0x00, 0x00, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x2f, 0x72, 0x65, + 0x61, 0x64, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x0a, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x3a, 0xfd, 0xff, 0xff, 0x00, 0x00, 0x00, 0x09, 0x54, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x2c, 0xfd, 0xff, 0xff, 0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xb5, 0xfa, 0xfa, 0x39, 0x1f, 0x00, 0x00, 0x00, + 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x63, 0x5f, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x73, 0x2f, 0x72, 0x65, 0x61, 0x64, 0x2f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x73, 0x65, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0xa0, 0x0f, 0x00, 0x00, 0xa2, 0xfd, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x09, 0x58, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x74, 0xfe, 0xff, 0xff, + 0x30, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0xf2, 0xdd, 0xbb, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x32, 0xa3, 0x25, 0x41, + 0x01, 0x00, 0x00, 0x00, 0xf6, 0xa0, 0x50, 0xc1, 0x05, 0x00, 0x00, 0x00, + 0x61, 0x64, 0x64, 0x5f, 0x31, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0e, 0xfe, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x02, 0x2c, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x52, 0x65, 0x73, 0x68, + 0x61, 0x70, 0x65, 0x5f, 0x32, 0x2f, 0x73, 0x68, 0x61, 0x70, 0x65, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x4a, 0xfe, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x09, 0x5c, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1c, 0xff, 0xff, 0xff, + 0x30, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x50, 0x50, 0xd0, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xcf, 0x41, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x52, 0x65, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x32, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, + 0x28, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc2, 0xfe, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x09, 0x58, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x94, 0xff, 0xff, 0xff, + 0x2c, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x50, 0x50, 0xd0, 0x3d, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xcf, 0x41, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x52, 0x65, 0x73, 0x68, + 0x61, 0x70, 0x65, 0x5f, 0x31, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0xa8, 0x07, 0x00, 0x00, 0x2e, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x09, 0x60, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, + 0x4c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x14, 0x00, + 0x04, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x10, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x2c, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x3a, 0x6a, 0xac, 0x3d, + 0x01, 0x00, 0x00, 0x00, 0xd0, 0xbd, 0xab, 0x41, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x52, 0x65, 0x6c, 0x75, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x19, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0xaa, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x02, 0x44, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x9c, 0xff, 0xff, 0xff, 0x18, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x96, 0x08, 0x29, 0x38, + 0x0b, 0x00, 0x00, 0x00, 0x4d, 0x61, 0x74, 0x4d, 0x75, 0x6c, 0x5f, 0x62, + 0x69, 0x61, 0x73, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x18, 0x00, 0x08, 0x00, 0x07, 0x00, 0x0c, 0x00, + 0x10, 0x00, 0x14, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0xa0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x9a, 0xbb, 0x84, 0x38, 0x83, 0x84, 0x73, 0x37, + 0x5b, 0xa3, 0xa0, 0x38, 0x16, 0x41, 0x3a, 0x38, 0xc7, 0x9a, 0x70, 0x38, + 0xed, 0x70, 0x4e, 0x38, 0x54, 0x4f, 0xac, 0x38, 0xfd, 0x07, 0x8d, 0x38, + 0x0b, 0x00, 0x00, 0x00, 0x43, 0x6f, 0x6e, 0x76, 0x32, 0x44, 0x5f, 0x62, + 0x69, 0x61, 0x73, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xe6, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x19, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, + 0x06, 0x00, 0x05, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x16, 0x0a, 0x00, + 0x0e, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, + 0x0c, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0a, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x03, 0x00, 0x00, 0x00 +}; +const unsigned int g_micro_speech_quantized_model_len = 18800; diff --git a/samples/modules/tflite-micro/micro_speech/src/inference/micro_speech_quantized_model.hpp b/samples/modules/tflite-micro/micro_speech/src/inference/micro_speech_quantized_model.hpp new file mode 100644 index 0000000000000..dcdce111b0695 --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/src/inference/micro_speech_quantized_model.hpp @@ -0,0 +1,25 @@ +/* + * Copyright 2025 The TensorFlow Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef MICRO_SPEECH_OPENAMP_MICRO_SPEECH_QUANTIZED_MODEL_H_ +#define MICRO_SPEECH_OPENAMP_MICRO_SPEECH_QUANTIZED_MODEL_H_ + +extern const unsigned char g_micro_speech_quantized_model[]; +extern const unsigned int g_micro_speech_quantized_model_len; + +#endif /* MICRO_SPEECH_OPENAMP_MICRO_SPEECH_QUANTIZED_MODEL_H_ */ \ No newline at end of file diff --git a/samples/modules/tflite-micro/micro_speech/src/inference/model_runner.cpp b/samples/modules/tflite-micro/micro_speech/src/inference/model_runner.cpp new file mode 100644 index 0000000000000..a7b2ba5c69315 --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/src/inference/model_runner.cpp @@ -0,0 +1,315 @@ +/* + * Copyright 2025 The TensorFlow Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "model_runner.hpp" + +#include +LOG_MODULE_REGISTER(model_runner); + +#include "tensorflow/lite/core/c/common.h" +#include "tensorflow/lite/micro/micro_interpreter.h" +#include "tensorflow/lite/micro/micro_log.h" +#include "tensorflow/lite/micro/micro_mutable_op_resolver.h" + +#include "audio_preprocessor_int8_model.hpp" +#include "micro_speech_quantized_model.hpp" + +#include "transport/rpmsg_transport.h" // For sending results back + +#include +#include +#include +#include + +/* Features type for audio processing */ +Features g_features; + +namespace { + +/* Arena size for model operations - split for two models */ +constexpr size_t kAudioPreprocessorArenaSize = 16384; /* ~16KB for audio preprocessor */ +constexpr size_t kMicroSpeechArenaSize = 12200; /* ~12KB for micro speech */ +alignas(16) uint8_t g_audio_preprocessor_arena[kAudioPreprocessorArenaSize]; +alignas(16) uint8_t g_micro_speech_arena[kMicroSpeechArenaSize]; + +/* Audio sample constants */ +constexpr int kAudioSampleDurationCount = kFeatureDurationMs * kAudioSampleFrequency / 1000; +constexpr int kAudioSampleStrideCount = kFeatureStrideMs * kAudioSampleFrequency / 1000; + +/* Operation resolver types */ +using MicroSpeechOpResolver = tflite::MicroMutableOpResolver<4>; +using AudioPreprocessorOpResolver = tflite::MicroMutableOpResolver<18>; + +/* Static interpreters and models - initialized once */ +static const tflite::Model* g_audio_preprocessor_model = nullptr; +static const tflite::Model* g_micro_speech_model = nullptr; +static AudioPreprocessorOpResolver* g_audio_preprocessor_op_resolver = nullptr; +static MicroSpeechOpResolver* g_micro_speech_op_resolver = nullptr; +static tflite::MicroInterpreter* g_audio_preprocessor_interpreter = nullptr; +static tflite::MicroInterpreter* g_micro_speech_interpreter = nullptr; +static bool g_interpreters_initialized = false; + + +TfLiteStatus register_micro_speech_ops(MicroSpeechOpResolver& op_resolver) { + TF_LITE_ENSURE_STATUS(op_resolver.AddReshape()); + TF_LITE_ENSURE_STATUS(op_resolver.AddFullyConnected()); + TF_LITE_ENSURE_STATUS(op_resolver.AddDepthwiseConv2D()); + TF_LITE_ENSURE_STATUS(op_resolver.AddSoftmax()); + return kTfLiteOk; +} + +TfLiteStatus register_audio_preprocessor_ops(AudioPreprocessorOpResolver& op_resolver) { + TF_LITE_ENSURE_STATUS(op_resolver.AddReshape()); + TF_LITE_ENSURE_STATUS(op_resolver.AddCast()); + TF_LITE_ENSURE_STATUS(op_resolver.AddStridedSlice()); + TF_LITE_ENSURE_STATUS(op_resolver.AddConcatenation()); + TF_LITE_ENSURE_STATUS(op_resolver.AddMul()); + TF_LITE_ENSURE_STATUS(op_resolver.AddAdd()); + TF_LITE_ENSURE_STATUS(op_resolver.AddDiv()); + TF_LITE_ENSURE_STATUS(op_resolver.AddMinimum()); + TF_LITE_ENSURE_STATUS(op_resolver.AddMaximum()); + TF_LITE_ENSURE_STATUS(op_resolver.AddWindow()); + TF_LITE_ENSURE_STATUS(op_resolver.AddFftAutoScale()); + TF_LITE_ENSURE_STATUS(op_resolver.AddRfft()); + TF_LITE_ENSURE_STATUS(op_resolver.AddEnergy()); + TF_LITE_ENSURE_STATUS(op_resolver.AddFilterBank()); + TF_LITE_ENSURE_STATUS(op_resolver.AddFilterBankSquareRoot()); + TF_LITE_ENSURE_STATUS(op_resolver.AddFilterBankSpectralSubtraction()); + TF_LITE_ENSURE_STATUS(op_resolver.AddPCAN()); + TF_LITE_ENSURE_STATUS(op_resolver.AddFilterBankLog()); + return kTfLiteOk; +} + +TfLiteStatus initialize_interpreters() { + if (g_interpreters_initialized) { + return kTfLiteOk; // Already initialized + } + + LOG_INF("Initializing static interpreters"); + + /* Audio preprocessor: Get model */ + g_audio_preprocessor_model = tflite::GetModel(g_audio_preprocessor_int8_model); + if (g_audio_preprocessor_model->version() != TFLITE_SCHEMA_VERSION) { + LOG_ERR("Audio preprocessor model version mismatch: %d vs %d", g_audio_preprocessor_model->version(), TFLITE_SCHEMA_VERSION); + return kTfLiteError; + } + /* Audio preprocessor: OpResolver */ + static AudioPreprocessorOpResolver audio_preprocessor_op_resolver; + g_audio_preprocessor_op_resolver = &audio_preprocessor_op_resolver; + if (register_audio_preprocessor_ops(*g_audio_preprocessor_op_resolver) != kTfLiteOk) { + LOG_ERR("Failed to register audio preprocessor ops"); + return kTfLiteError; + } + /* Audio preprocessor: Interpreter */ + static tflite::MicroInterpreter audio_preprocessor_interpreter(g_audio_preprocessor_model, *g_audio_preprocessor_op_resolver, g_audio_preprocessor_arena, kAudioPreprocessorArenaSize); + g_audio_preprocessor_interpreter = &audio_preprocessor_interpreter; + if (g_audio_preprocessor_interpreter->AllocateTensors() != kTfLiteOk) { + LOG_ERR("Failed to allocate tensors for audio preprocessor"); + return kTfLiteError; + } + + /* Micro speech: Get model */ + g_micro_speech_model = tflite::GetModel(g_micro_speech_quantized_model); + if (g_micro_speech_model->version() != TFLITE_SCHEMA_VERSION) { + LOG_ERR("MicroSpeech model version mismatch: %d vs %d", + g_micro_speech_model->version(), TFLITE_SCHEMA_VERSION); + return kTfLiteError; + } + + /* Micro speech: Op Resolver */ + static MicroSpeechOpResolver micro_speech_op_resolver; + g_micro_speech_op_resolver = µ_speech_op_resolver; + if (register_micro_speech_ops(*g_micro_speech_op_resolver) != kTfLiteOk) { + LOG_ERR("Failed to register MicroSpeech ops"); + return kTfLiteError; + } + + /* Micro speech: Interpreter */ + static tflite::MicroInterpreter micro_speech_interpreter(g_micro_speech_model, *g_micro_speech_op_resolver, g_micro_speech_arena, kMicroSpeechArenaSize); + g_micro_speech_interpreter = µ_speech_interpreter; + if (g_micro_speech_interpreter->AllocateTensors() != kTfLiteOk) { + LOG_ERR("Failed to allocate tensors for MicroSpeech"); + return kTfLiteError; + } + + g_interpreters_initialized = true; + LOG_INF("Static interpreters initialized successfully"); + + return kTfLiteOk; +} + +TfLiteStatus generate_single_feature(const int16_t* audio_data, + const int audio_data_size, + int8_t* feature_output) { + if (!g_interpreters_initialized) { + LOG_ERR("Interpreters not initialized"); + return kTfLiteError; + } + + TfLiteTensor* input = g_audio_preprocessor_interpreter->input(0); + if (!input) { + LOG_ERR("Failed to get input tensor"); + return kTfLiteError; + } + + /* Check input shape is compatible with our audio sample size */ + if (audio_data_size != kAudioSampleDurationCount) { + LOG_ERR("Audio data size mismatch: %d vs %d", audio_data_size, kAudioSampleDurationCount); + return kTfLiteError; + } + + TfLiteTensor* output = g_audio_preprocessor_interpreter->output(0); + if (!output) { + LOG_ERR("Failed to get output tensor"); + return kTfLiteError; + } + + /* Copy audio data to input tensor */ + std::copy_n(audio_data, audio_data_size, tflite::GetTensorData(input)); + + /* Run inference */ + if (g_audio_preprocessor_interpreter->Invoke() != kTfLiteOk) { + LOG_ERR("Invoke failed"); + return kTfLiteError; + } + + /* Copy output to feature buffer */ + std::copy_n(tflite::GetTensorData(output), kFeatureSize, feature_output); + + return kTfLiteOk; +} + +TfLiteStatus generate_features(const int16_t* audio_data, + const size_t audio_data_size, + Features* features_output) { + if (!g_interpreters_initialized) { + LOG_ERR("Interpreters not initialized"); + return kTfLiteError; + } + + /* Clear previous features */ + memset(features_output, 0, sizeof(Features)); + + /* Process audio in stride windows */ + size_t remaining_samples = audio_data_size; + size_t feature_index = 0; + const int16_t* current_audio = audio_data; + + while (remaining_samples >= kAudioSampleDurationCount && feature_index < kFeatureCount) { + if (generate_single_feature(current_audio, kAudioSampleDurationCount, + (*features_output)[feature_index]) != kTfLiteOk) { + LOG_ERR("Failed to generate feature %d", feature_index); + return kTfLiteError; + } + + feature_index++; + current_audio += kAudioSampleStrideCount; + remaining_samples -= kAudioSampleStrideCount; + } + + return kTfLiteOk; +} + +TfLiteStatus run_micro_speech_inference(const Features& features) { + if (!g_interpreters_initialized) { + LOG_ERR("Interpreters not initialized"); + return kTfLiteError; + } + + /* Get input tensor */ + TfLiteTensor* input = g_micro_speech_interpreter->input(0); + if (!input) { + LOG_ERR("Failed to get input tensor"); + return kTfLiteError; + } + + /* Check input shape is compatible with our feature data size */ + if (input->dims->data[input->dims->size - 1] != kFeatureElementCount) { + LOG_ERR("Input tensor size mismatch"); + return kTfLiteError; + } + + TfLiteTensor* output = g_micro_speech_interpreter->output(0); + if (!output) { + LOG_ERR("Failed to get output tensor"); + return kTfLiteError; + } + + /* Check output shape is compatible with our number of categories */ + if (output->dims->data[output->dims->size - 1] != kCategoryCount) { + LOG_ERR("Output tensor size mismatch"); + return kTfLiteError; + } + + float output_scale = output->params.scale; + int output_zero_point = output->params.zero_point; + + /* Copy feature data to input tensor */ + std::copy_n(&features[0][0], kFeatureElementCount, tflite::GetTensorData(input)); + + /* Run inference */ + if (g_micro_speech_interpreter->Invoke() != kTfLiteOk) { + LOG_ERR("Invoke failed"); + return kTfLiteError; + } + + /* Dequantize and print results */ + float category_predictions[kCategoryCount]; + for (int i = 0; i < kCategoryCount; i++) { + category_predictions[i] = (tflite::GetTensorData(output)[i] - output_zero_point) * output_scale; + } + + int prediction_index = std::distance( + std::begin(category_predictions), + std::max_element(std::begin(category_predictions), std::end(category_predictions)) + ); + + LOG_INF("Detected: %s", kCategoryLabels[prediction_index]); + + return kTfLiteOk; +} + +} /* namespace */ + +/* C API implementation */ +extern "C" { + +void model_runner_init(void) { + /* Initialize static interpreters */ + if (initialize_interpreters() != kTfLiteOk) { + LOG_ERR("Failed to initialize interpreters"); + return; + } +} + +int micro_speech_process_audio(const int16_t *audio_data, + size_t audio_data_size) { + /* Generate features */ + if (generate_features(audio_data, audio_data_size, &g_features) != kTfLiteOk) { + LOG_ERR("Failed to generate features"); + return -1; + } + /* Run inference */ + if (run_micro_speech_inference(g_features) != kTfLiteOk) { + LOG_ERR("Inference failed"); + return -2; + } + return 0; +} + +} /* extern "C" */ diff --git a/samples/modules/tflite-micro/micro_speech/src/inference/model_runner.hpp b/samples/modules/tflite-micro/micro_speech/src/inference/model_runner.hpp new file mode 100644 index 0000000000000..d2d931e93395d --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/src/inference/model_runner.hpp @@ -0,0 +1,35 @@ +/* + * Copyright 2025 The TensorFlow Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef MICRO_SPEECH_OPENAMP_MODEL_RUNNER_H_ +#define MICRO_SPEECH_OPENAMP_MODEL_RUNNER_H_ + +#include +#include +#include "micro_model_settings.h" + +using Features = int8_t[kFeatureCount][kFeatureSize]; + +extern Features g_features; + +extern "C" { +void model_runner_init(void); +int micro_speech_process_audio(const int16_t *audio_data, size_t audio_data_size); +} + +#endif /* MICRO_SPEECH_OPENAMP_MODEL_RUNNER_H_ */ \ No newline at end of file diff --git a/samples/modules/tflite-micro/micro_speech/src/main.cpp b/samples/modules/tflite-micro/micro_speech/src/main.cpp new file mode 100644 index 0000000000000..bf998245073d2 --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/src/main.cpp @@ -0,0 +1,28 @@ +/* + * Copyright 2025 The TensorFlow Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "main_functions.hpp" + +int main(int argc, char *argv[]) +{ + setup(); + while (1) { + loop(); + } + return 0; +} diff --git a/samples/modules/tflite-micro/micro_speech/src/main_functions.cpp b/samples/modules/tflite-micro/micro_speech/src/main_functions.cpp new file mode 100644 index 0000000000000..e25411ab523a0 --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/src/main_functions.cpp @@ -0,0 +1,194 @@ +/* + * Copyright 2025 The TensorFlow Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "main_functions.hpp" + +#include +LOG_MODULE_REGISTER(micro_speech_openamp); + +#include "inference/model_runner.hpp" +#include "transport/rpmsg_transport.h" + +#include +#include +#include +#include +#include +#include +#include + +/* Stack sizes threads */ +#define APP_RECEIVE_TASK_STACK_SIZE (2048) +#define APP_AUDIO_PROCESSING_TASK_STACK_SIZE (4096) +/* Audio pipeline constants */ +#define SAMPLE_SIZE_BYTES (sizeof(int16_t)) +#define SAMPLES_PER_SECOND (16000) +#define BUFFER_SIZE_SAMPLES (SAMPLES_PER_SECOND) +#define BUFFER_SIZE_BYTES (BUFFER_SIZE_SAMPLES * SAMPLE_SIZE_BYTES) +/* Double buffering for receiving and processing */ +static int16_t buffer_a[BUFFER_SIZE_SAMPLES]; +static int16_t buffer_b[BUFFER_SIZE_SAMPLES]; +static int16_t *write_buffer = buffer_a; +static int16_t *processing_buffer = buffer_b; +/* Threading & Synchronization */ +K_THREAD_STACK_DEFINE(thread_receive_stack, APP_RECEIVE_TASK_STACK_SIZE); +K_THREAD_STACK_DEFINE(thread_audio_processing_stack, APP_AUDIO_PROCESSING_TASK_STACK_SIZE); +static struct k_thread thread_receive_data; +static struct k_thread thread_audio_processing_data; +static K_SEM_DEFINE(processing_buffer_ready_sem, 0, 1); +static K_SEM_DEFINE(ml_complete_sem, 1, 1); /* Starts at 1 to allow the first file */ +static K_MUTEX_DEFINE(buffer_access_mutex); +/* Shared State (protected by buffer_access_mutex) */ +static uint16_t g_samples_in_write_buffer = 0; +static uint16_t g_samples_in_processing_buffer = 0; +static bool g_eof_received = false; + +extern "C" { + +void app_receive_data_thread(void *arg1, void *arg2, void *arg3) +{ + ARG_UNUSED(arg1); + ARG_UNUSED(arg2); + ARG_UNUSED(arg3); + + int ret; + + LOG_INF("Receiving data thread started"); + + k_sem_take(&data_tty_ready_sem, K_FOREVER); + ret = rpmsg_create_ept(&tty_ept, rpdev, "audio_pcm", RPMSG_ADDR_ANY, RPMSG_ADDR_ANY, rpmsg_recv_tty_callback, NULL); + if (ret != 0) { + LOG_ERR("Could not create RPMsg endpoint"); + return; + } + + while (1) { + /* Wait for previous buffer to be fully processed */ + k_sem_take(&ml_complete_sem, K_FOREVER); + + while(1) { + struct rpmsg_rcv_msg rx_msg; + /* Wait for messages */ + k_msgq_get(&tty_msgq, &rx_msg, K_FOREVER); + + bool should_break = false; + + if (rx_msg.len == 3 && memcmp(rx_msg.data, "EOF", 3) == 0) { /* EOF */ + k_mutex_lock(&buffer_access_mutex, K_FOREVER); + g_eof_received = true; + /* Swap and process any leftover data */ + if (g_samples_in_write_buffer > 0) { + int16_t *temp = write_buffer; + write_buffer = processing_buffer; + processing_buffer = temp; + g_samples_in_processing_buffer = g_samples_in_write_buffer; + g_samples_in_write_buffer = 0; + k_sem_give(&processing_buffer_ready_sem); + } else { /* Still signal to trigger final processing if needed */ + k_sem_give(&processing_buffer_ready_sem); + } + k_mutex_unlock(&buffer_access_mutex); + should_break = true; + } else { /* Receive data */ + k_mutex_lock(&buffer_access_mutex, K_FOREVER); + size_t bytes_to_copy = MIN(rx_msg.len, (BUFFER_SIZE_SAMPLES - g_samples_in_write_buffer) * SAMPLE_SIZE_BYTES); + memcpy((uint8_t*)write_buffer + g_samples_in_write_buffer * SAMPLE_SIZE_BYTES, rx_msg.data, bytes_to_copy); + g_samples_in_write_buffer += bytes_to_copy / SAMPLE_SIZE_BYTES; + /* Buffer is full. Swap buffer */ + if (g_samples_in_write_buffer >= BUFFER_SIZE_SAMPLES) { + int16_t *temp = write_buffer; + write_buffer = processing_buffer; + processing_buffer = temp; + g_samples_in_processing_buffer = g_samples_in_write_buffer; + g_samples_in_write_buffer = 0; + k_sem_give(&processing_buffer_ready_sem); + } + k_mutex_unlock(&buffer_access_mutex); + } + rpmsg_release_rx_buffer(&tty_ept, rx_msg.data); + if (should_break) { + break; /* Wait for ml_complete_sem */ + } + } + } +} + +void app_audio_processing_thread(void *arg1, void *arg2, void *arg3) +{ + ARG_UNUSED(arg1); + ARG_UNUSED(arg2); + ARG_UNUSED(arg3); + + LOG_INF("Audio processing thread started"); + + while (1) { + /* Wait for a full buffer or EOF */ + k_sem_take(&processing_buffer_ready_sem, K_FOREVER); + + k_mutex_lock(&buffer_access_mutex, K_FOREVER); + size_t samples_to_process = g_samples_in_processing_buffer; + bool is_eof = g_eof_received; + g_samples_in_processing_buffer = 0; /* Mark buffer as claimed */ + k_mutex_unlock(&buffer_access_mutex); + + /* Run inference if data is available */ + if (samples_to_process > 0) { + LOG_DBG("Running inferences with %zu samples", samples_to_process); + + if (micro_speech_process_audio(processing_buffer, samples_to_process) != 0) { + LOG_DBG("Failed to process audio"); + } + /* Clear the buffer after processing */ + memset(processing_buffer, 0, BUFFER_SIZE_BYTES); + } + + if (is_eof) { /* EOF processing */ + k_mutex_lock(&buffer_access_mutex, K_FOREVER); + g_eof_received = false; + k_mutex_unlock(&buffer_access_mutex); + + LOG_DBG("Buffer processing complete. Ready for next buffer."); + k_sem_give(&ml_complete_sem); + } + k_sem_give(&ml_complete_sem); + } +} + +void setup() { + + LOG_INF("Starting Micro Speech OpenAMP application"); + + /* Initialize model runner */ + model_runner_init(); + + /* Initialize RPMsg transport */ + rpmsg_transport_start(); + + /* Create data receiving thread (higher priority) */ + k_thread_create(&thread_receive_data, thread_receive_stack, APP_RECEIVE_TASK_STACK_SIZE, + app_receive_data_thread, NULL, NULL, NULL, 5, 0, K_NO_WAIT); + + /* Create audio processing thread (lower priority) */ + k_thread_create(&thread_audio_processing_data, thread_audio_processing_stack, APP_AUDIO_PROCESSING_TASK_STACK_SIZE, + app_audio_processing_thread, NULL, NULL, NULL, 6, 0, K_NO_WAIT); +} + +void loop() { + k_sleep(K_FOREVER); +} +} /* extern "C" */ diff --git a/samples/modules/tflite-micro/micro_speech/src/main_functions.hpp b/samples/modules/tflite-micro/micro_speech/src/main_functions.hpp new file mode 100644 index 0000000000000..562fab72aac82 --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/src/main_functions.hpp @@ -0,0 +1,41 @@ +/* + * Copyright 2025 The TensorFlow Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef MICRO_SPEECH_OPENAMP_MAIN_FUNCTIONS_H_ +#define MICRO_SPEECH_OPENAMP_MAIN_FUNCTIONS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Initializes all data needed for the example. The name is important, and needs + * to be setup() for Arduino compatibility. + */ +void setup(void); + +/* Runs one iteration of data gathering and inference. This should be called + * repeatedly from the application code. The name needs to be loop() for Arduino + * compatibility. + */ +void loop(void); + +#ifdef __cplusplus +} +#endif + +#endif /* MICRO_SPEECH_OPENAMP_MAIN_FUNCTIONS_H_ */ diff --git a/samples/modules/tflite-micro/micro_speech/src/transport/rpmsg_transport.c b/samples/modules/tflite-micro/micro_speech/src/transport/rpmsg_transport.c new file mode 100644 index 0000000000000..8873de8a4f9f2 --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/src/transport/rpmsg_transport.c @@ -0,0 +1,229 @@ +/* + * Copyright (c) 2020, STMICROELECTRONICS + * Author: Thong Phan + * + * Heavily based on pwm_mcux_ftm.c, which is: + * Copyright (c) 2017, NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "rpmsg_transport.h" + +#include +LOG_MODULE_REGISTER(rpmsg_transport); +#include +#include + +#include +#include +#include +#include + +#if !DT_HAS_CHOSEN(zephyr_ipc_shm) +#error "Sample requires definition of shared memory for rpmsg" +#endif + +/* Constants from device tree */ +#define SHM_NODE DT_CHOSEN(zephyr_ipc_shm) +#define SHM_START_ADDR DT_REG_ADDR(SHM_NODE) +#define SHM_SIZE DT_REG_SIZE(SHM_NODE) +/* Stack size for the management thread */ +#define APP_TASK_STACK_SIZE (1024) + +#if CONFIG_IPM_MAX_DATA_SIZE > 0 +#define IPM_SEND(dev, w, id, d, s) ipm_send(dev, w, id, d, s) +#else +#define IPM_SEND(dev, w, id, d, s) ipm_send(dev, w, id, NULL, 0) +#endif +/* Thread definitions */ +K_THREAD_STACK_DEFINE(thread_mng_stack, APP_TASK_STACK_SIZE); +static struct k_thread thread_mng_data; +/* OpenAMP components */ +static const struct device *const ipm_handle = DEVICE_DT_GET(DT_CHOSEN(zephyr_ipc)); +static metal_phys_addr_t shm_physmap = SHM_START_ADDR; +static metal_phys_addr_t rsc_tab_physmap; +static struct metal_io_region shm_io_data; +static struct metal_io_region rsc_io_data; +static struct metal_io_region *shm_io = &shm_io_data; +static struct metal_io_region *rsc_io = &rsc_io_data; +static struct rpmsg_virtio_device rvdev; +static void *rsc_table; +/* Public variables */ +struct rpmsg_device *rpdev; +struct rpmsg_endpoint tty_ept; +K_MSGQ_DEFINE(tty_msgq, sizeof(struct rpmsg_rcv_msg), 16, 4); +/* 16 messages * 20ms per frames covers 320ms of data */ +K_SEM_DEFINE(data_tty_ready_sem, 0, 1); +/* Internal semaphore, hidden from other files */ +static K_SEM_DEFINE(data_sem, 0, 1); + +static void platform_ipm_callback(const struct device *dev, void *context, uint32_t id, + volatile void *data) + +{ + LOG_DBG("%s: msg received from mb %d", __func__, id); + k_sem_give(&data_sem); +} + +int rpmsg_recv_tty_callback(struct rpmsg_endpoint *ept, void *data, size_t len, uint32_t src, + void *priv) +{ + struct rpmsg_rcv_msg msg = {.data = data, .len = len}; + + rpmsg_hold_rx_buffer(ept, data); + + if (k_msgq_put(&tty_msgq, &msg, K_NO_WAIT) != 0) { + LOG_WRN("tty_msgq full, dropping frame len %zu\n", len); + rpmsg_release_rx_buffer(ept, data); + } + return RPMSG_SUCCESS; +} + +static void receive_message(unsigned char **msg, unsigned int *len) +{ + if (k_sem_take(&data_sem, K_FOREVER) == 0) { + rproc_virtio_notified(rvdev.vdev, VRING1_ID); + } +} + +static void new_service_cb(struct rpmsg_device *rdev, const char *name, uint32_t src) +{ + LOG_ERR("%s: unexpected ns service receive for name %s", __func__, name); +} + +static int mailbox_notify(void *priv, uint32_t id) +{ + ARG_UNUSED(priv); + LOG_DBG("%s: msg received", __func__); + IPM_SEND(ipm_handle, 0, id, &id, 4); + return 0; +} + +static int platform_init(void) +{ + int rsc_size; + struct metal_init_params metal_params = METAL_INIT_DEFAULTS; + int status; + + status = metal_init(&metal_params); + if (status) { + LOG_ERR("metal_init: failed: %d", status); + return -1; + } + + metal_io_init(shm_io, (void *)SHM_START_ADDR, &shm_physmap, SHM_SIZE, -1, 0, + addr_translation_get_ops(shm_physmap)); + + rsc_table_get(&rsc_table, &rsc_size); + rsc_tab_physmap = (uintptr_t)rsc_table; + metal_io_init(rsc_io, rsc_table, &rsc_tab_physmap, rsc_size, -1, 0, NULL); + + if (!device_is_ready(ipm_handle)) { + LOG_ERR("IPM device is not ready"); + return -1; + } + + ipm_register_callback(ipm_handle, platform_ipm_callback, NULL); + + status = ipm_set_enabled(ipm_handle, 1); + if (status) { + LOG_ERR("ipm_set_enabled failed"); + return -1; + } + + return 0; +} + +static void cleanup_system(void) +{ + ipm_set_enabled(ipm_handle, 0); + rpmsg_deinit_vdev(&rvdev); + metal_finish(); +} + +static struct rpmsg_device *platform_create_rpmsg_vdev(rpmsg_ns_bind_cb ns_cb) +{ + struct fw_rsc_vdev_vring *vring_rsc; + struct virtio_device *vdev; + int ret; + + vdev = rproc_virtio_create_vdev(VIRTIO_DEV_DEVICE, VDEV_ID, rsc_table_to_vdev(rsc_table), + rsc_io, NULL, mailbox_notify, NULL); + if (!vdev) { + LOG_ERR("failed to create vdev"); + return NULL; + } + + rproc_virtio_wait_remote_ready(vdev); + + vring_rsc = rsc_table_get_vring0(rsc_table); + ret = rproc_virtio_init_vring(vdev, 0, vring_rsc->notifyid, (void *)vring_rsc->da, rsc_io, + vring_rsc->num, vring_rsc->align); + if (ret) { + LOG_ERR("failed to init vring 0"); + goto failed; + } + + vring_rsc = rsc_table_get_vring1(rsc_table); + ret = rproc_virtio_init_vring(vdev, 1, vring_rsc->notifyid, (void *)vring_rsc->da, rsc_io, + vring_rsc->num, vring_rsc->align); + if (ret) { + LOG_ERR("failed to init vring 1"); + goto failed; + } + + ret = rpmsg_init_vdev(&rvdev, vdev, ns_cb, shm_io, NULL); + if (ret) { + LOG_ERR("failed rpmsg_init_vdev"); + goto failed; + } + + return rpmsg_virtio_get_rpmsg_device(&rvdev); + +failed: + rproc_virtio_remove_vdev(vdev); + return NULL; +} + +static void rpmsg_mng_task(void *arg1, void *arg2, void *arg3) +{ + ARG_UNUSED(arg1); + ARG_UNUSED(arg2); + ARG_UNUSED(arg3); + + unsigned char *msg; + unsigned int len; + int ret = 0; + + LOG_INF("Microspeech sample with OpenAMP started"); + + ret = platform_init(); + if (ret) { + LOG_ERR("Failed to initialize platform"); + goto task_end; + } + + rpdev = platform_create_rpmsg_vdev(new_service_cb); + if (!rpdev) { + LOG_ERR("Failed to create rpmsg virtio device"); + goto task_end; + } + + k_sem_give(&data_tty_ready_sem); + + while (1) { + receive_message(&msg, &len); + } + +task_end: + cleanup_system(); + LOG_INF("Microspeech sample with OpenAMP ended"); +} + +/* Public Function */ +void rpmsg_transport_start(void) +{ + k_thread_create(&thread_mng_data, thread_mng_stack, APP_TASK_STACK_SIZE, rpmsg_mng_task, + NULL, NULL, NULL, K_PRIO_COOP(8), 0, K_NO_WAIT); +} diff --git a/samples/modules/tflite-micro/micro_speech/src/transport/rpmsg_transport.h b/samples/modules/tflite-micro/micro_speech/src/transport/rpmsg_transport.h new file mode 100644 index 0000000000000..59a4c8bf4f23b --- /dev/null +++ b/samples/modules/tflite-micro/micro_speech/src/transport/rpmsg_transport.h @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2020, STMICROELECTRONICS + * Author: Thong Phan + * + * Heavily based on pwm_mcux_ftm.c, which is: + * Copyright (c) 2017, NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef RPMSG_TRANSPORT_H +#define RPMSG_TRANSPORT_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +struct rpmsg_rcv_msg { + void *data; + size_t len; +}; + +extern struct k_msgq tty_msgq; +extern struct rpmsg_endpoint tty_ept; +extern struct k_sem data_tty_ready_sem; +extern struct rpmsg_device *rpdev; + +void rpmsg_transport_start(void); +int rpmsg_recv_tty_callback(struct rpmsg_endpoint *ept, void *data, size_t len, uint32_t src, + void *priv); + +#ifdef __cplusplus +} +#endif + +#endif /* RPMSG_TRANSPORT_H */