Lizzy WangZhiming ZhaoXuchen ZhouQirui LiuYawen Guo
Published

Wake Word Detection

Always-on wake-word detection running on Arduino Nano 33 BLE

BeginnerShowcase (no instructions)571
Wake Word Detection

Things used in this project

Hardware components

Arduino Nano 33 BLE
Arduino Nano 33 BLE
×1

Software apps and online services

Arduino IDE
Arduino IDE
Google Colab

Hand tools and fabrication machines

TensorFlow Lite
TensorFlow Lite

Story

Read more

Schematics

Schematics

yes-no vedio

Code

left-right speech

C/C++
This is the code for discriminating word 'left' from 'right'
/* Copyright 2019 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.
==============================================================================*/

// Provides an interface to take an action based on an audio command.

#ifndef TENSORFLOW_LITE_MICRO_EXAMPLES_MICRO_SPEECH_COMMAND_RESPONDER_H_
#define TENSORFLOW_LITE_MICRO_EXAMPLES_MICRO_SPEECH_COMMAND_RESPONDER_H_

#include "tensorflow/lite/c/common.h"
#include "tensorflow/lite/micro/micro_error_reporter.h"

// Called every time the results of an audio recognition run are available. The
// human-readable name of any recognized command is in the `found_command`
// argument, `score` has the numerical confidence, and `is_new_command` is set
// if the previous command was different to this one.
void RespondToCommand(tflite::ErrorReporter* error_reporter,
                      int32_t current_time, const char* found_command,
                      uint8_t score, bool is_new_command);

#endif  // TENSORFLOW_LITE_MICRO_EXAMPLES_MICRO_SPEECH_COMMAND_RESPONDER_H_

micro_features_micro_model_settings.cpp

C/C++
/* Copyright 2018 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.
==============================================================================*/

#include "micro_features_micro_model_settings.h"

const char* kCategoryLabels[kCategoryCount] = {
    "silence",
    "unknown",
    "left",
    "right",
};

arduino_main.cpp

C/C++
/* Copyright 2019 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.
==============================================================================*/

#include "main_functions.h"

// Arduino automatically calls the setup() and loop() functions in a sketch, so
// where other systems need their own main routine in this file, it can be left
// empty.

micro_features_micro_features_generator.cpp

C/C++
/* Copyright 2019 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.
==============================================================================*/

#include "micro_features_micro_features_generator.h"

#include <cmath>
#include <cstring>

#include "tensorflow/lite/experimental/microfrontend/lib/frontend.h"
#include "tensorflow/lite/experimental/microfrontend/lib/frontend_util.h"
#include "micro_features_micro_model_settings.h"

// Configure FFT to output 16 bit fixed point.
#define FIXED_POINT 16

namespace {

FrontendState g_micro_features_state;
bool g_is_first_time = true;

}  // namespace

TfLiteStatus InitializeMicroFeatures(tflite::ErrorReporter* error_reporter) {
  FrontendConfig config;
  config.window.size_ms = kFeatureSliceDurationMs;
  config.window.step_size_ms = kFeatureSliceStrideMs;
  config.noise_reduction.smoothing_bits = 10;
  config.filterbank.num_channels = kFeatureSliceSize;
  config.filterbank.lower_band_limit = 125.0;
  config.filterbank.upper_band_limit = 7500.0;
  config.noise_reduction.smoothing_bits = 10;
  config.noise_reduction.even_smoothing = 0.025;
  config.noise_reduction.odd_smoothing = 0.06;
  config.noise_reduction.min_signal_remaining = 0.05;
  config.pcan_gain_control.enable_pcan = 1;
  config.pcan_gain_control.strength = 0.95;
  config.pcan_gain_control.offset = 80.0;
  config.pcan_gain_control.gain_bits = 21;
  config.log_scale.enable_log = 1;
  config.log_scale.scale_shift = 6;
  if (!FrontendPopulateState(&config, &g_micro_features_state,
                             kAudioSampleFrequency)) {
    TF_LITE_REPORT_ERROR(error_reporter, "FrontendPopulateState() failed");
    return kTfLiteError;
  }
  g_is_first_time = true;
  return kTfLiteOk;
}

// This is not exposed in any header, and is only used for testing, to ensure
// that the state is correctly set up before generating results.
void SetMicroFeaturesNoiseEstimates(const uint32_t* estimate_presets) {
  for (int i = 0; i < g_micro_features_state.filterbank.num_channels; ++i) {
    g_micro_features_state.noise_reduction.estimate[i] = estimate_presets[i];
  }
}

TfLiteStatus GenerateMicroFeatures(tflite::ErrorReporter* error_reporter,
                                   const int16_t* input, int input_size,
                                   int output_size, int8_t* output,
                                   size_t* num_samples_read) {
  const int16_t* frontend_input;
  if (g_is_first_time) {
    frontend_input = input;
    g_is_first_time = false;
  } else {
    frontend_input = input + 160;
  }
  FrontendOutput frontend_output = FrontendProcessSamples(
      &g_micro_features_state, frontend_input, input_size, num_samples_read);

  for (int i = 0; i < frontend_output.size; ++i) {
    // These scaling values are derived from those used in input_data.py in the
    // training pipeline.
    // The feature pipeline outputs 16-bit signed integers in roughly a 0 to 670
    // range. In training, these are then arbitrarily divided by 25.6 to get
    // float values in the rough range of 0.0 to 26.0. This scaling is performed
    // for historical reasons, to match up with the output of other feature
    // generators.
    // The process is then further complicated when we quantize the model. This
    // means we have to scale the 0.0 to 26.0 real values to the -128 to 127
    // signed integer numbers.
    // All this means that to get matching values from our integer feature
    // output into the tensor input, we have to perform:
    // input = (((feature / 25.6) / 26.0) * 256) - 128
    // To simplify this and perform it in 32-bit integer math, we rearrange to:
    // input = (feature * 256) / (25.6 * 26.0) - 128
    constexpr int32_t value_scale = 256;
    constexpr int32_t value_div = static_cast<int32_t>((25.6f * 26.0f) + 0.5f);
    int32_t value =
        ((frontend_output.values[i] * value_scale) + (value_div / 2)) /
        value_div;
    value -= 128;
    if (value < -128) {
      value = -128;
    }
    if (value > 127) {
      value = 127;
    }
    output[i] = value;
  }

  return kTfLiteOk;
}

micro_features_model.cpp

C/C++
/* Copyright 2020 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.
==============================================================================*/

// This is a standard TensorFlow Lite FlatBuffer model file that has been
// converted into a C data array, so it can be easily compiled into a binary
// for devices that don't have a file system. It was created using the command:
// xxd -i model.tflite > model.cc

#include "micro_features_model.h"

// We need to keep the data array aligned on some architectures.
#ifdef __has_attribute
#define HAVE_ATTRIBUTE(x) __has_attribute(x)
#else
#define HAVE_ATTRIBUTE(x) 0
#endif
#if HAVE_ATTRIBUTE(aligned) || (defined(__GNUC__) && !defined(__clang__))
#define DATA_ALIGN_ATTRIBUTE __attribute__((aligned(4)))
#else
#define DATA_ALIGN_ATTRIBUTE
#endif

const unsigned char g_model[] DATA_ALIGN_ATTRIBUTE = {
  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, 0x94, 0x48, 0x00, 0x00, 0x34, 0x42, 0x00, 0x00,
  0x1c, 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, 0xd4, 0x41, 0x00, 0x00,
  0xb4, 0x41, 0x00, 0x00, 0x24, 0x03, 0x00, 0x00, 0xf4, 0x02, 0x00, 0x00,
  0xec, 0x02, 0x00, 0x00, 0xe4, 0x02, 0x00, 0x00, 0xc4, 0x02, 0x00, 0x00,
  0xbc, 0x02, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
  0x1c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x16, 0xbd, 0xff, 0xff,
  0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x31, 0x2e, 0x35, 0x2e,
  0x30, 0x00, 0x00, 0x00, 0x94, 0xba, 0xff, 0xff, 0x98, 0xba, 0xff, 0xff,
  0x32, 0xbd, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00,
  0x37, 0xc7, 0xe1, 0xdc, 0x4a, 0x06, 0x08, 0x48, 0xd9, 0x81, 0xf2, 0x10,
  0x37, 0xd8, 0xfc, 0x14, 0x34, 0x06, 0xfd, 0x30, 0x32, 0xe8, 0x0d, 0x2a,
  0xe7, 0xa7, 0xcf, 0x03, 0x24, 0x2f, 0x0f, 0xf8, 0x74, 0x32, 0xcc, 0x40,
  0x08, 0x9d, 0x2b, 0x23, 0xaa, 0xc5, 0xfa, 0x19, 0xf5, 0xd2, 0xf5, 0x09,
  0x54, 0x47, 0xdc, 0x45, 0xcb, 0xd5, 0x24, 0x0b, 0xac, 0xe4, 0x25, 0xe1,
  0xb0, 0xe7, 0x16, 0xe5, 0x1e, 0xf6, 0xe9, 0xa5, 0x54, 0x0b, 0xe9, 0x30,
  0xe2, 0xde, 0x00, 0xea, 0x23, 0xf4, 0x0d, 0x17, 0x13, 0x2e, 0x01, 0x1e,
  0x3d, 0x03, 0x2d, 0x0c, 0xfa, 0x02, 0xd8, 0xe1, 0x12, 0x42, 0xf3, 0x0a,
  0x74, 0x32, 0xd7, 0x4e, 0x16, 0xbd, 0xf8, 0x11, 0xc9, 0x0a, 0x0c, 0xf9,
  0xf1, 0xea, 0x26, 0xfa, 0x69, 0x43, 0xbc, 0x5d, 0xd2, 0xed, 0x0d, 0xe8,
  0xe6, 0x2f, 0x10, 0x0f, 0xa8, 0xfa, 0x0f, 0xd0, 0x07, 0x3e, 0x22, 0xa1,
  0x49, 0x03, 0xe0, 0x21, 0xdc, 0x3a, 0x02, 0xd6, 0x18, 0x13, 0xc9, 0x1c,
  0x07, 0x48, 0x04, 0x03, 0x2a, 0x02, 0x2a, 0x02, 0x05, 0x2a, 0xec, 0xd6,
  0x04, 0x56, 0x06, 0x09, 0x57, 0x40, 0xdf, 0x46, 0x0c, 0xd2, 0xe1, 0xf0,
  0xf6, 0x2d, 0x05, 0xe1, 0xe9, 0xed, 0xf6, 0xe5, 0x5e, 0x19, 0xc6, 0x6e,
  0xc9, 0x0c, 0x17, 0xde, 0x0a, 0x2c, 0x03, 0x0d, 0xae, 0xfe, 0x0c, 0xc9,
  0xfc, 0x5c, 0x3e, 0xac, 0x64, 0x05, 0xd8, 0x03, 0xc2, 0x44, 0x19, 0xc4,
  0x18, 0x1a, 0xb8, 0x21, 0x11, 0x42, 0x0a, 0x0b, 0x2d, 0xe9, 0xb1, 0xec,
  0xf1, 0x01, 0xf8, 0xd0, 0x08, 0x7f, 0xa7, 0x06, 0x53, 0x12, 0xd8, 0x44,
  0xf4, 0xa1, 0xcb, 0xe5, 0xe2, 0xe9, 0x02, 0xd8, 0xf5, 0xf4, 0xed, 0x01,
  0x64, 0xe5, 0xc4, 0x70, 0xb6, 0xfa, 0x10, 0xdb, 0x0f, 0xd6, 0xee, 0x0e,
  0xa7, 0xff, 0x00, 0xd0, 0xeb, 0x29, 0x50, 0xad, 0x6f, 0xf5, 0x06, 0xb4,
  0xbc, 0x04, 0x21, 0xcd, 0x13, 0x29, 0xdb, 0xf3, 0x13, 0xe9, 0xf6, 0x04,
  0x2d, 0xf8, 0xb1, 0xca, 0xe8, 0xc6, 0xef, 0xd2, 0x05, 0x7d, 0xc4, 0xf4,
  0x52, 0xc0, 0xcf, 0x3b, 0xe1, 0x98, 0xe3, 0xbb, 0xe1, 0xb8, 0xfe, 0xce,
  0xeb, 0x09, 0xa5, 0xe2, 0x57, 0x83, 0x9f, 0x68, 0x9a, 0xf9, 0xd7, 0xe0,
  0x06, 0x96, 0xc4, 0x0c, 0xad, 0x0c, 0xba, 0xd5, 0xbc, 0xc7, 0x62, 0xb9,
  0x77, 0xe1, 0x10, 0x8d, 0xa1, 0xdd, 0x3e, 0xe3, 0x21, 0x25, 0x47, 0xd6,
  0xed, 0xa1, 0x0e, 0x03, 0x21, 0xe5, 0x3f, 0xaa, 0xf4, 0xba, 0xf2, 0xe4,
  0x06, 0x66, 0x21, 0xfd, 0x3b, 0xa6, 0xf1, 0x3b, 0xaa, 0x8a, 0x46, 0xcc,
  0x01, 0xca, 0x03, 0xe4, 0xec, 0x0d, 0x05, 0xfa, 0x46, 0x9b, 0xa7, 0x6a,
  0x81, 0xf7, 0xe4, 0x0b, 0x09, 0xb2, 0xaa, 0x2a, 0xc8, 0x0b, 0xec, 0xfe,
  0xbd, 0xb2, 0x6b, 0xbb, 0x60, 0xd7, 0x18, 0xa1, 0xa0, 0xea, 0x56, 0xd6,
  0x16, 0x10, 0x75, 0xd0, 0xce, 0xc6, 0x12, 0xf7, 0xf4, 0xfa, 0x53, 0xe9,
  0xf8, 0x13, 0xfc, 0xe8, 0xfe, 0x7f, 0x3d, 0x05, 0x28, 0x00, 0x0b, 0x2b,
  0x99, 0x8e, 0x51, 0x00, 0x01, 0x3d, 0x09, 0xf2, 0xed, 0x17, 0x29, 0x31,
  0x38, 0x29, 0xb6, 0x5c, 0x96, 0xeb, 0x13, 0x60, 0x03, 0x3c, 0xa7, 0x3a,
  0xdf, 0x18, 0xf3, 0x38, 0xc6, 0xb0, 0x73, 0xcf, 0x2e, 0xd2, 0xff, 0xd7,
  0x9d, 0xf1, 0x2c, 0xd9, 0x09, 0x12, 0x3c, 0xef, 0xc0, 0xf8, 0x10, 0xdc,
  0xe4, 0x01, 0x30, 0x0d, 0x08, 0x3e, 0xed, 0xf2, 0xff, 0x47, 0x56, 0x04,
  0xf0, 0x1e, 0xf8, 0x03, 0xb3, 0x9e, 0x32, 0x41, 0x11, 0x49, 0xfa, 0x06,
  0x10, 0xfd, 0xfc, 0x39, 0x05, 0x26, 0xc7, 0x35, 0xae, 0xfb, 0x0d, 0x7f,
  0x0f, 0x51, 0xb1, 0x5c, 0x09, 0x11, 0x0e, 0x37, 0xba, 0xc1, 0x7f, 0xd5,
  0xe2, 0xb8, 0x9b, 0xf3, 0x81, 0xf9, 0x2f, 0xcc, 0xdc, 0x14, 0xc2, 0xe9,
  0xb5, 0xf6, 0x1e, 0xc4, 0xba, 0xf1, 0xd2, 0x18, 0xe0, 0x1c, 0xe3, 0xd6,
  0xed, 0x52, 0x17, 0xf2, 0xd5, 0x1f, 0x22, 0xcb, 0xc2, 0x9c, 0xc1, 0x3f,
  0xd5, 0x2a, 0xfa, 0xdb, 0x12, 0x0d, 0x09, 0x15, 0xbf, 0x12, 0xeb, 0xcd,
  0xd7, 0xed, 0x08, 0x57, 0xc0, 0x20, 0xc8, 0x39, 0x12, 0x15, 0x10, 0x13,
  0xd3, 0xaf, 0x5e, 0xc9, 0x8e, 0xc3, 0xd3, 0x11, 0x92, 0xb6, 0x17, 0xd4,
  0x9b, 0xe8, 0xb2, 0xe7, 0xd5, 0xf0, 0x30, 0xbc, 0xa7, 0xee, 0x81, 0x1f,
  0xcd, 0xe9, 0xe5, 0xbc, 0xd9, 0x3b, 0xb6, 0xec, 0xd6, 0xf2, 0x12, 0xae,
  0xc8, 0xaf, 0x8e, 0x33, 0xa4, 0xe9, 0xfa, 0x81, 0x16, 0xfd, 0x02, 0xea,
  0xbb, 0x00, 0x24, 0x92, 0xd8, 0xf7, 0xf2, 0x35, 0x9a, 0xdf, 0xce, 0xbc,
  0x28, 0xf4, 0xf6, 0xf8, 0x28, 0xbd, 0xff, 0xff, 0xc2, 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,
  0x48, 0xbd, 0xff, 0xff, 0x4c, 0xbd, 0xff, 0xff, 0xe6, 0xbf, 0xff, 0xff,
  0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0xeb, 0xfd, 0xff, 0xff,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfd, 0xff, 0xff,
  0xa7, 0xfc, 0xff, 0xff, 0x2a, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
  0x74, 0x00, 0x00, 0x00, 0x12, 0xc0, 0xff, 0xff, 0x04, 0x00, 0x00, 0x00,
  0x80, 0x3e, 0x00, 0x00, 0xda, 0xd0, 0x0e, 0x16, 0xed, 0xf3, 0xf0, 0xec,
  0x02, 0xdc, 0xf0, 0x0d, 0x2a, 0xfa, 0xfb, 0xb1, 0x06, 0xe8, 0xea, 0xe8,
  0x0f, 0x04, 0xe4, 0xbe, 0x0b, 0xf1, 0xca, 0x08, 0xf0, 0xfb, 0xe7, 0xcd,
  0xe8, 0xfb, 0xd0, 0xf1, 0x13, 0xe4, 0x0b, 0xc9, 0x03, 0xfb, 0xc7, 0x1b,
  0x16, 0xe9, 0xfb, 0xd2, 0x06, 0xfa, 0xd7, 0x08, 0xe3, 0x0a, 0xe5, 0xe8,
  0xf0, 0xe0, 0xea, 0x0d, 0x0e, 0x17, 0xda, 0xd6, 0x09, 0x07, 0x05, 0xf8,
  0x04, 0xfb, 0xdd, 0xce, 0xf8, 0xfe, 0xcf, 0x14, 0xef, 0xd5, 0xe2, 0xcd,
  0xf6, 0xfb, 0x00, 0x1d, 0x25, 0x0f, 0x09, 0xc9, 0x06, 0xf0, 0xd4, 0xff,
  0x15, 0x02, 0xfc, 0xde, 0xf2, 0xe6, 0xdb, 0x1c, 0xfd, 0x26, 0x1b, 0xd2,
  0xee, 0xf0, 0xe6, 0x13, 0x1d, 0xe4, 0x0e, 0xdc, 0xfd, 0xec, 0xeb, 0x1b,
  0xef, 0x12, 0xf7, 0xe2, 0xf2, 0xfb, 0xef, 0xef, 0x04, 0xff, 0xf3, 0xb6,
  0xf5, 0x10, 0xe9, 0xe1, 0xf5, 0xfa, 0xfc, 0xc3, 0xf6, 0x03, 0x13, 0x12,
  0xfe, 0x0f, 0xe1, 0xfc, 0x02, 0xfd, 0x05, 0xf4, 0x02, 0xf2, 0xf7, 0xe5,
  0x0e, 0xfd, 0xea, 0xee, 0x1f, 0xe0, 0xf4, 0x03, 0xfb, 0xef, 0x1d, 0xee,
  0xfe, 0x0a, 0xe7, 0xbb, 0x12, 0xde, 0xfd, 0x00, 0xfc, 0xfd, 0xf0, 0xd1,
  0xf3, 0x0c, 0xfa, 0x07, 0x0c, 0xd6, 0x0b, 0xff, 0x0e, 0xf6, 0x03, 0xfb,
  0xdb, 0xda, 0x04, 0xeb, 0x29, 0x0a, 0xd7, 0x26, 0x07, 0xd7, 0x15, 0xe4,
  0x0f, 0xeb, 0xc7, 0x0c, 0x1c, 0xf0, 0x17, 0xcf, 0xf6, 0xfc, 0xea, 0xe6,
  0x10, 0xeb, 0x0c, 0x03, 0xfb, 0x0c, 0xd5, 0x10, 0xf4, 0xed, 0x11, 0x0b,
  0x0a, 0x25, 0xf9, 0x17, 0xf0, 0xee, 0xe3, 0x0b, 0x00, 0xf3, 0x00, 0xff,
  0x18, 0xef, 0xed, 0xe6, 0x0f, 0x1f, 0xee, 0xfe, 0x09, 0xf5, 0xe2, 0xe7,
  0x09, 0x0d, 0xd8, 0x1f, 0x15, 0xfa, 0xf7, 0xd1, 0x01, 0x26, 0xfb, 0xdc,
  0xe7, 0xfb, 0x01, 0xf2, 0x1a, 0x03, 0xf0, 0xf5, 0x00, 0x08, 0xee, 0xe6,
  0x08, 0xfd, 0x07, 0xf0, 0xf7, 0xea, 0xf4, 0xc9, 0xf3, 0x0b, 0xfb, 0x07,
  0xe6, 0xd9, 0xfa, 0xe9, 0xee, 0xe8, 0x0f, 0xfd, 0x11, 0xf6, 0xfa, 0x03,
  0xe3, 0x23, 0x01, 0xfc, 0x00, 0xff, 0xf2, 0xdc, 0x0b, 0x17, 0x06, 0x17,
  0x17, 0x1f, 0xf3, 0xe1, 0x03, 0x02, 0xf8, 0xed, 0x11, 0xda, 0xfc, 0x01,
  0xf8, 0x0f, 0xf4, 0xf3, 0x1a, 0xef, 0x18, 0xf0, 0xef, 0xde, 0xe6, 0x06,
  0xf5, 0xeb, 0x03, 0xe3, 0x00, 0xdd, 0x00, 0x04, 0x3c, 0xf3, 0x05, 0x12,
  0x05, 0x0f, 0xea, 0x02, 0xf1, 0xef, 0x13, 0x10, 0xd0, 0x0b, 0xf0, 0x02,
  0xf7, 0xf6, 0xf3, 0x0d, 0xcc, 0x05, 0xe1, 0xfe, 0xea, 0xf6, 0x15, 0x3a,
  0xdb, 0xed, 0x00, 0xfa, 0xef, 0x00, 0xed, 0x18, 0xff, 0xf8, 0xe8, 0xe1,
  0x1a, 0xfd, 0x10, 0x2f, 0xd8, 0x07, 0xff, 0xed, 0x00, 0x07, 0x05, 0xfc,
  0xee, 0x08, 0xff, 0xe8, 0x00, 0x12, 0x00, 0x13, 0xf0, 0xfd, 0x0b, 0x14,
  0xf6, 0xe0, 0xfe, 0x1b, 0xe6, 0xf1, 0x04, 0x05, 0x22, 0x0c, 0x11, 0x0d,
  0xfa, 0x16, 0xd7, 0x1a, 0x13, 0xf3, 0x0e, 0x31, 0xfe, 0xeb, 0x07, 0x1a,
  0x15, 0x1b, 0x03, 0xf7, 0x0d, 0x0b, 0xe5, 0xfd, 0x05, 0xf5, 0xea, 0x35,
  0x0b, 0x02, 0xfd, 0x1b, 0xf4, 0xf3, 0xf3, 0x0b, 0x1a, 0x1e, 0x19, 0xf3,
  0x0a, 0x05, 0xea, 0x1c, 0xea, 0x13, 0x06, 0x2a, 0xee, 0xfe, 0xf4, 0x1b,
  0x23, 0xeb, 0xf2, 0xed, 0x15, 0x1b, 0xe9, 0x22, 0x0f, 0x08, 0x0c, 0xf1,
  0x07, 0x12, 0xeb, 0x1d, 0xf7, 0xfb, 0xfb, 0xf9, 0xf1, 0x07, 0x07, 0xef,
  0xfe, 0xfb, 0x16, 0xd5, 0x03, 0xe5, 0xf8, 0x00, 0xf3, 0xe8, 0x07, 0xec,
  0x1e, 0xef, 0x1c, 0x08, 0xe2, 0x1a, 0x06, 0xf0, 0xca, 0x09, 0xec, 0x10,
  0xd8, 0x0d, 0x0a, 0xd8, 0xce, 0x07, 0x06, 0x24, 0xe2, 0xe2, 0x1b, 0xe6,
  0xdc, 0x1a, 0xfd, 0x1e, 0x04, 0x0b, 0xd6, 0xf9, 0xfc, 0x07, 0xf3, 0xf6,
  0xf1, 0xfc, 0x1c, 0xdf, 0xf5, 0xfa, 0x0b, 0x18, 0xdd, 0x08, 0x19, 0xd8,
  0x05, 0xfd, 0x19, 0x28, 0xd4, 0x0f, 0x00, 0xdf, 0xfe, 0x03, 0xf8, 0x1a,
  0xfd, 0x17, 0x19, 0xf6, 0x02, 0xfd, 0x18, 0x0c, 0xf6, 0x18, 0xef, 0xe1,
  0x02, 0x16, 0x0c, 0x1f, 0xfc, 0x00, 0xf3, 0xfe, 0xf0, 0x1b, 0x0f, 0x04,
  0x02, 0xf7, 0xe0, 0xff, 0x19, 0xf9, 0x0d, 0x10, 0x0c, 0xfd, 0xe7, 0x21,
  0x07, 0x11, 0x14, 0x05, 0x13, 0x01, 0xfd, 0x0a, 0x05, 0x20, 0xe8, 0xf9,
  0x16, 0xf8, 0xf1, 0x06, 0xf5, 0xef, 0x0a, 0x11, 0x04, 0xf4, 0xe8, 0x09,
  0xf1, 0xf4, 0x11, 0x1a, 0x13, 0x14, 0x05, 0xe8, 0x0b, 0x0b, 0xeb, 0x1a,
  0x17, 0x0a, 0x13, 0x0d, 0x03, 0x08, 0x29, 0xfc, 0xdf, 0x00, 0xd8, 0xfc,
  0xe2, 0x1a, 0xe5, 0xf4, 0xcf, 0x26, 0xfc, 0xd5, 0x19, 0x07, 0x2f, 0xef,
  0xd1, 0x14, 0xfa, 0x05, 0x00, 0xe8, 0xe6, 0x26, 0xe8, 0x1a, 0xe0, 0xc8,
  0xd4, 0xfa, 0x00, 0xfb, 0xdd, 0x18, 0x13, 0xc8, 0x0a, 0xfc, 0x00, 0xfb,
  0xfd, 0xfe, 0xf2, 0xf4, 0xe4, 0x01, 0xfd, 0x1a, 0x02, 0x20, 0xe9, 0xe9,
  0xd4, 0x23, 0x06, 0xf2, 0xe9, 0x18, 0x12, 0xcd, 0xfc, 0x1b, 0xf4, 0x10,
  0xdd, 0xfc, 0x1d, 0xcd, 0xe7, 0x26, 0xf3, 0x07, 0xec, 0xf7, 0xf0, 0xe3,
  0x21, 0x05, 0x13, 0x10, 0xe7, 0x24, 0x0e, 0xe3, 0x00, 0x0a, 0x01, 0x1f,
  0xe1, 0xf7, 0x12, 0xdc, 0x03, 0x23, 0xfa, 0x2a, 0x19, 0x1f, 0x02, 0x13,
  0x06, 0x12, 0x06, 0x18, 0x0a, 0xf4, 0xfb, 0x1d, 0xfd, 0x17, 0xf3, 0x18,
  0xff, 0x04, 0x0b, 0x00, 0xf6, 0xf8, 0x1d, 0x04, 0x0a, 0x2b, 0xf9, 0x17,
  0xd5, 0xf9, 0xf6, 0x29, 0x31, 0x16, 0xf0, 0xfc, 0x02, 0x2c, 0xfd, 0x17,
  0x1f, 0x27, 0xd0, 0x08, 0xf1, 0xf6, 0x20, 0x09, 0x08, 0x11, 0x18, 0xe8,
  0x03, 0x15, 0xfe, 0x12, 0xf4, 0x1b, 0x05, 0x1d, 0xff, 0x22, 0x1a, 0x0f,
  0xda, 0x07, 0x09, 0xf9, 0x03, 0x1c, 0x2f, 0xda, 0xe6, 0x12, 0xf5, 0xc8,
  0xeb, 0xfd, 0x01, 0xec, 0xe2, 0x11, 0xfc, 0xff, 0xfb, 0xf0, 0xf0, 0x0f,
  0xd4, 0xfe, 0xf1, 0xf7, 0xe3, 0xeb, 0x0c, 0x0c, 0xca, 0x2e, 0x0c, 0xe8,
  0xe9, 0xfa, 0x0a, 0x06, 0xf5, 0x06, 0xf9, 0xe8, 0xe5, 0xf9, 0x2a, 0x1e,
  0xe4, 0x26, 0xe7, 0x01, 0xde, 0xdc, 0x1e, 0x0e, 0xe3, 0x24, 0x0a, 0xc2,
  0xf2, 0x10, 0xfd, 0x28, 0xe0, 0x15, 0x02, 0xd1, 0xe3, 0x14, 0xf4, 0x0a,
  0xc8, 0x08, 0xf5, 0xf6, 0xf6, 0x0b, 0xef, 0xfe, 0xe6, 0x1c, 0x0c, 0xe9,
  0x01, 0xfa, 0x07, 0x0b, 0xf3, 0x26, 0xea, 0xe6, 0xf5, 0x10, 0xed, 0xf3,
  0x03, 0x01, 0xfd, 0xf1, 0xed, 0x37, 0xf4, 0x14, 0xf1, 0x17, 0x1b, 0x0a,
  0xea, 0xed, 0x22, 0x19, 0x12, 0x05, 0xf7, 0x24, 0xec, 0x2b, 0xe4, 0x1d,
  0xf1, 0x04, 0xe8, 0x03, 0xea, 0x18, 0xe1, 0x16, 0x20, 0x21, 0x13, 0x00,
  0xeb, 0x17, 0xf8, 0x05, 0x23, 0x0b, 0x08, 0x15, 0xed, 0x3f, 0xf6, 0x25,
  0x23, 0x0b, 0x01, 0x1d, 0x0e, 0x0c, 0x1a, 0x27, 0xf7, 0xe2, 0x0d, 0xf8,
  0xed, 0x08, 0x0c, 0x10, 0xd4, 0x11, 0xef, 0xea, 0xfc, 0x05, 0x1b, 0xe9,
  0xe2, 0x24, 0x14, 0xcb, 0xf8, 0xff, 0x16, 0xed, 0xbd, 0xf4, 0xff, 0xd5,
  0xfe, 0xfe, 0xef, 0x1c, 0xbc, 0x13, 0x12, 0xd1, 0xbe, 0xe3, 0xe9, 0x06,
  0xe0, 0xfb, 0x0d, 0xd1, 0x03, 0x12, 0x0c, 0x0d, 0xe0, 0xfb, 0x0a, 0xe4,
  0xe9, 0x03, 0xf2, 0x22, 0xd9, 0x27, 0xf3, 0xc0, 0xf4, 0xfd, 0xf8, 0x1f,
  0xdf, 0x24, 0xfc, 0x04, 0x06, 0x06, 0x14, 0x05, 0xff, 0x14, 0x1b, 0xd9,
  0xfc, 0x04, 0xfe, 0x1d, 0xff, 0x20, 0xe4, 0xd7, 0xfe, 0xf7, 0x0a, 0xfa,
  0xe6, 0x07, 0xe8, 0xdf, 0xfa, 0xfb, 0x20, 0x2f, 0x10, 0xfe, 0xd7, 0xd5,
  0xf8, 0x0a, 0x0b, 0x17, 0xf2, 0x27, 0x16, 0xea, 0xd1, 0x0f, 0x25, 0x2c,
  0x1f, 0x23, 0xfc, 0x20, 0xf8, 0x1a, 0xfc, 0x1c, 0xfa, 0x05, 0x0a, 0x09,
  0xfc, 0x24, 0x1d, 0x17, 0x1d, 0x19, 0x15, 0xf6, 0x0e, 0x0e, 0x08, 0x32,
  0x1c, 0x33, 0xea, 0x07, 0xd0, 0x0c, 0x1c, 0x0e, 0x1c, 0x17, 0xd8, 0x01,
  0xec, 0x3b, 0x04, 0x15, 0x07, 0x2d, 0x16, 0x0e, 0x15, 0x0e, 0xed, 0x0f,
  0xe4, 0x0d, 0x0c, 0xec, 0xfd, 0x22, 0x14, 0x24, 0xda, 0x16, 0xf4, 0xda,
  0xe8, 0x27, 0x01, 0xda, 0xe3, 0x24, 0xf8, 0xdd, 0xfb, 0x0d, 0x0a, 0xfd,
  0x01, 0x06, 0xe6, 0xec, 0xde, 0x07, 0xe1, 0x04, 0xde, 0x08, 0xf9, 0xcf,
  0xce, 0x08, 0x0e, 0x28, 0xe9, 0xfa, 0x09, 0xd1, 0xd5, 0x27, 0xec, 0xfd,
  0xde, 0xf0, 0x03, 0xcf, 0xce, 0x13, 0xf8, 0x27, 0xe9, 0x0d, 0xec, 0xe1,
  0xed, 0xf7, 0xf7, 0x23, 0xf7, 0x0b, 0x06, 0xbf, 0xea, 0xf0, 0x1f, 0x01,
  0xe5, 0x0b, 0xed, 0xc8, 0x0d, 0xfa, 0xf7, 0x0d, 0xe5, 0x2f, 0xe7, 0xda,
  0xf0, 0x1a, 0xfa, 0x0b, 0xd7, 0x11, 0x09, 0x12, 0x09, 0xf9, 0xf7, 0x0a,
  0x0f, 0x1e, 0xf8, 0xf1, 0x07, 0xf7, 0xff, 0x10, 0xf3, 0x1a, 0xf8, 0x14,
  0xe6, 0xfb, 0x25, 0x09, 0x11, 0x04, 0x16, 0xef, 0xf0, 0xf0, 0x01, 0x2b,
  0xf8, 0xf3, 0xea, 0xdc, 0xe7, 0x18, 0x06, 0x0b, 0x04, 0x30, 0xf7, 0xee,
  0xf7, 0x11, 0xf5, 0x1c, 0x04, 0x33, 0x13, 0xcf, 0xe3, 0xf9, 0x0d, 0x10,
  0x23, 0x27, 0xfd, 0xd2, 0xd5, 0x0c, 0x1d, 0x11, 0x25, 0x1d, 0x14, 0x22,
  0x32, 0x1e, 0x1d, 0x2e, 0xf3, 0x07, 0x00, 0x10, 0x04, 0x0e, 0xff, 0x00,
  0xd4, 0x0d, 0xff, 0xe6, 0x19, 0x16, 0xf1, 0x02, 0xcd, 0xfe, 0xfd, 0xd6,
  0x02, 0x13, 0xef, 0xee, 0xd2, 0x20, 0xf9, 0xcd, 0xd1, 0x10, 0x0d, 0x2d,
  0xe2, 0x25, 0xd4, 0xd4, 0xce, 0x17, 0xfa, 0x2e, 0xdd, 0x14, 0x04, 0xcc,
  0x0c, 0x1d, 0xf2, 0x0d, 0xdb, 0x03, 0xeb, 0xce, 0xbe, 0x07, 0xed, 0xf7,
  0x02, 0xf5, 0xeb, 0x00, 0xcc, 0xee, 0x0e, 0xf4, 0xc7, 0x0a, 0x09, 0xd8,
  0x16, 0x0b, 0x0e, 0x09, 0xd9, 0x12, 0xfa, 0xca, 0x16, 0xf5, 0xf2, 0xee,
  0xd1, 0x13, 0xeb, 0xe7, 0xf9, 0x05, 0x07, 0x0d, 0xef, 0x2a, 0x16, 0xd2,
  0xfd, 0xfc, 0x12, 0xed, 0xd7, 0xfd, 0x0a, 0xe8, 0xf5, 0x00, 0x13, 0x21,
  0xe9, 0x28, 0x1f, 0xff, 0xea, 0x12, 0x22, 0x09, 0xff, 0xff, 0x11, 0x1c,
  0x02, 0xf7, 0xfe, 0x09, 0xe2, 0x16, 0x03, 0xf0, 0xd9, 0x05, 0x12, 0x0d,
  0xee, 0x22, 0x0e, 0xe0, 0xee, 0xf7, 0x25, 0x25, 0xed, 0x33, 0x19, 0xf5,
  0xfa, 0xfd, 0xee, 0xeb, 0x15, 0x19, 0xf1, 0xf6, 0xe0, 0xf1, 0x2c, 0x25,
  0x21, 0x01, 0x02, 0xeb, 0x16, 0x21, 0x33, 0x0b, 0x0f, 0x10, 0xfa, 0x0d,
  0x0a, 0x0b, 0x1f, 0x19, 0x9f, 0x25, 0xea, 0xe9, 0xee, 0x08, 0xe3, 0x0a,
  0xf5, 0xf8, 0xe4, 0xe6, 0x00, 0x15, 0x0c, 0xf4, 0xe7, 0x1f, 0xf7, 0xf5,
  0xd9, 0x17, 0x06, 0x03, 0xc1, 0xf3, 0xf6, 0xcd, 0xda, 0x1e, 0xe8, 0x06,
  0xbd, 0x0f, 0xe6, 0xcf, 0xf1, 0x18, 0x21, 0xfa, 0xdb, 0x12, 0xed, 0xda,
  0xc6, 0x02, 0xfe, 0x0a, 0xe3, 0x0a, 0xe8, 0xc4, 0xd7, 0x08, 0x1c, 0x22,
  0xdc, 0x29, 0xf2, 0xfa, 0x16, 0x06, 0x0e, 0xf0, 0xd1, 0x1e, 0xe1, 0xc4,
  0x21, 0x09, 0x23, 0x1e, 0xe2, 0x21, 0xcc, 0xd4, 0xde, 0x00, 0x0d, 0xef,
  0xef, 0x01, 0x03, 0x0a, 0xfb, 0xf6, 0x0a, 0x01, 0xe0, 0x20, 0x0f, 0xe2,
  0xda, 0x03, 0xff, 0x0a, 0xe7, 0x28, 0xf4, 0x0a, 0xd4, 0x01, 0x30, 0x0f,
  0xd9, 0x17, 0x27, 0xe5, 0x0c, 0xee, 0x03, 0x2c, 0x12, 0x12, 0xf8, 0x01,
  0xe5, 0x11, 0x05, 0x07, 0xd8, 0x1a, 0xe4, 0xe4, 0x05, 0xfb, 0xfa, 0x15,
  0xfd, 0x2a, 0x0f, 0xfe, 0xf5, 0xf4, 0x01, 0x12, 0x27, 0x12, 0xee, 0x0b,
  0xf8, 0x06, 0x04, 0x0c, 0xe8, 0x25, 0x09, 0xf5, 0x25, 0xfe, 0xf0, 0x0d,
  0xe3, 0x09, 0xec, 0xf0, 0x02, 0x07, 0x09, 0x14, 0xac, 0x0a, 0xf7, 0xda,
  0xe9, 0x12, 0xff, 0xe7, 0xe2, 0x01, 0xed, 0xcc, 0xfb, 0x15, 0x19, 0xef,
  0xd1, 0x14, 0xe9, 0xd8, 0xca, 0x20, 0xe6, 0x10, 0xbb, 0xef, 0xef, 0xec,
  0xde, 0x23, 0x09, 0x22, 0xc8, 0x0b, 0xf9, 0xc0, 0x07, 0x21, 0x2a, 0xfb,
  0xd0, 0xfb, 0xfd, 0xc8, 0xee, 0x07, 0x05, 0xfb, 0xe3, 0x12, 0xf9, 0xf1,
  0xd3, 0xf5, 0x00, 0x02, 0xee, 0x14, 0xfc, 0xe1, 0xfa, 0x13, 0x1e, 0x25,
  0xda, 0x0f, 0xd6, 0xdf, 0x0c, 0x16, 0x05, 0xff, 0xe1, 0x1b, 0x0d, 0xb9,
  0x06, 0x0f, 0x07, 0xfc, 0xea, 0x21, 0xfe, 0xee, 0x19, 0x12, 0xe7, 0x22,
  0xdc, 0x0c, 0x03, 0x0c, 0xed, 0xf4, 0x06, 0x1a, 0xf8, 0xff, 0x0f, 0x03,
  0xf8, 0xed, 0x09, 0xf0, 0xe4, 0x16, 0xf8, 0xf3, 0x0f, 0xf9, 0xf5, 0x12,
  0xf3, 0x0b, 0xea, 0xea, 0xfc, 0x07, 0x20, 0x02, 0x00, 0x13, 0xf4, 0xed,
  0x01, 0xff, 0x08, 0x0c, 0xfd, 0xfa, 0x02, 0xd5, 0xf7, 0x05, 0x25, 0x21,
  0xf4, 0x37, 0x08, 0xec, 0xf0, 0x01, 0x00, 0x23, 0x0b, 0x25, 0xfa, 0xf8,
  0x18, 0xfd, 0x15, 0x12, 0x06, 0x19, 0xe4, 0x0c, 0x00, 0x01, 0x1e, 0xf9,
  0xb3, 0x11, 0xe6, 0xd4, 0xff, 0x17, 0x1f, 0xf7, 0xdf, 0x03, 0x01, 0xdf,
  0xed, 0x03, 0xfd, 0xe8, 0xc8, 0x1d, 0xec, 0xd2, 0xdc, 0x34, 0x0b, 0x1b,
  0xc1, 0x07, 0xea, 0xaf, 0xdc, 0x31, 0x0f, 0x1a, 0xd5, 0x08, 0xe1, 0xd3,
  0xef, 0x2d, 0x17, 0x02, 0xdd, 0xe7, 0x04, 0xf8, 0xcc, 0x18, 0x2e, 0x18,
  0xed, 0x10, 0x01, 0xe9, 0xd8, 0xf9, 0x03, 0xfc, 0xd0, 0x0d, 0xe7, 0xde,
  0x07, 0xee, 0x11, 0x02, 0xc9, 0x17, 0xe3, 0xf1, 0x17, 0xf1, 0x0d, 0xfd,
  0xdb, 0x09, 0xe9, 0xe6, 0x0c, 0x00, 0xef, 0x0a, 0xfc, 0x18, 0x07, 0xe9,
  0xfb, 0xfa, 0x12, 0x0c, 0xf4, 0xfe, 0x0c, 0xfa, 0xef, 0xed, 0x30, 0x0b,
  0xef, 0x3b, 0x03, 0xfe, 0xe7, 0xfd, 0x01, 0x0b, 0x0b, 0x2b, 0xfc, 0xe4,
  0x07, 0xf3, 0xe5, 0x1c, 0xe7, 0x23, 0x1c, 0xe9, 0x0b, 0x04, 0x08, 0xec,
  0x0f, 0x0f, 0x14, 0xfb, 0xf4, 0xf3, 0xf5, 0x26, 0xe9, 0x1c, 0x1f, 0x01,
  0xe9, 0x05, 0xf0, 0x10, 0x17, 0x25, 0xe1, 0xee, 0xcb, 0xfb, 0x12, 0x04,
  0x0b, 0xfc, 0x03, 0x10, 0x0c, 0xf4, 0x1e, 0x1b, 0x02, 0x27, 0x01, 0x18,
  0x02, 0xf9, 0x20, 0x08, 0xa1, 0xfa, 0x1a, 0xd1, 0xf5, 0x17, 0x14, 0xf5,
  0xe8, 0x02, 0xdb, 0xdf, 0xec, 0x0b, 0x30, 0x0d, 0xe1, 0x1b, 0xdd, 0xe7,
  0xd7, 0x29, 0xea, 0x23, 0xdc, 0x29, 0xdc, 0xcb, 0xbe, 0x29, 0x10, 0x09,
  0xba, 0x0a, 0xf3, 0xea, 0xea, 0x1e, 0x02, 0x11, 0xe0, 0x05, 0x00, 0xe0,
  0xe5, 0x13, 0x17, 0x12, 0x02, 0x15, 0xf2, 0xd5, 0x07, 0xf2, 0xe3, 0x09,
  0xee, 0x04, 0xda, 0xee, 0xe9, 0xf2, 0x1b, 0xf2, 0xed, 0x14, 0xf7, 0xb4,
  0xf8, 0x16, 0xf3, 0x24, 0xe2, 0x11, 0x04, 0xde, 0xf9, 0xfc, 0x2f, 0x05,
  0xd3, 0x03, 0x10, 0xc8, 0x24, 0xee, 0xff, 0x13, 0x09, 0x16, 0xef, 0x02,
  0xfa, 0xf1, 0x28, 0x1e, 0xea, 0x25, 0x09, 0xfe, 0x12, 0xf2, 0x08, 0x2c,
  0x0d, 0x36, 0x24, 0xe9, 0x06, 0xf9, 0xfb, 0x17, 0xce, 0x1e, 0x10, 0xe1,
  0xf1, 0x0e, 0x10, 0xfc, 0xf9, 0x0c, 0x06, 0xf6, 0xeb, 0xf0, 0x16, 0x06,
  0x01, 0x00, 0x0c, 0x00, 0xdf, 0xf4, 0x06, 0x06, 0xde, 0x0d, 0xe9, 0xf6,
  0xcc, 0xf0, 0x14, 0x21, 0x22, 0x02, 0x06, 0xd4, 0xfb, 0x09, 0x12, 0x13,
  0xf8, 0x06, 0x10, 0xe0, 0x03, 0xfe, 0x31, 0x20, 0xa6, 0x1b, 0x0a, 0xce,
  0xe4, 0x23, 0x1b, 0x00, 0xca, 0xfb, 0xed, 0xed, 0x00, 0x14, 0x16, 0xea,
  0xbe, 0x0d, 0xda, 0xd9, 0xd9, 0x24, 0x18, 0x0c, 0xf1, 0xfa, 0xe8, 0xc0,
  0xc0, 0x41, 0x1e, 0x21, 0xeb, 0x02, 0xf4, 0xde, 0xd3, 0x24, 0x13, 0x13,
  0xee, 0x0e, 0x01, 0xe2, 0xcd, 0x17, 0x12, 0x03, 0xf3, 0x03, 0x04, 0xe3,
  0xee, 0xfe, 0x00, 0x23, 0xde, 0x10, 0xd2, 0xf0, 0xfb, 0x05, 0x03, 0xfb,
  0xf8, 0x0b, 0xe2, 0xc9, 0x05, 0x07, 0x15, 0x06, 0xc6, 0x18, 0xf9, 0xf1,
  0x0f, 0x06, 0x14, 0x1f, 0xe3, 0xfa, 0x03, 0xf9, 0x18, 0xe9, 0x2c, 0x04,
  0xe5, 0x18, 0xe0, 0xdc, 0xe4, 0xf9, 0x04, 0x03, 0xfb, 0x02, 0x1f, 0xf1,
  0x0a, 0xf9, 0xea, 0x00, 0xf8, 0x14, 0x14, 0xd7, 0x08, 0xfb, 0x25, 0x16,
  0xff, 0x2d, 0x05, 0x05, 0xfa, 0xfe, 0xff, 0x18, 0xf7, 0x07, 0xee, 0xf1,
  0xe4, 0x00, 0x1e, 0x1c, 0xe8, 0x0c, 0xdd, 0x07, 0xf6, 0xff, 0x0b, 0xf0,
  0x0c, 0x2b, 0xdd, 0xf0, 0xf5, 0xf1, 0x0e, 0x09, 0xf2, 0x14, 0xfd, 0x0c,
  0x0b, 0x06, 0x1f, 0x0f, 0xda, 0x2a, 0xe6, 0x15, 0x12, 0xf3, 0x29, 0x10,
  0x9d, 0x2f, 0xf1, 0xc5, 0xf8, 0x27, 0x11, 0xef, 0xd4, 0x2c, 0xf0, 0xc7,
  0xd6, 0xff, 0x17, 0xe6, 0xe9, 0x10, 0xce, 0xde, 0xe9, 0x29, 0x01, 0x12,
  0xc5, 0xfb, 0xe6, 0xb7, 0xcd, 0x34, 0x07, 0x1f, 0xf7, 0xf1, 0x0f, 0xbd,
  0xca, 0x38, 0x1f, 0x1b, 0xe1, 0x25, 0xf2, 0xc7, 0xd7, 0x15, 0xfc, 0x10,
  0xd3, 0x0f, 0x0b, 0xec, 0xda, 0xfb, 0x1e, 0x24, 0xd8, 0x09, 0x05, 0xeb,
  0xfa, 0x0b, 0x05, 0x1d, 0xde, 0x10, 0xf9, 0xd0, 0xfa, 0x08, 0x37, 0xf5,
  0xe7, 0x02, 0xdd, 0xc8, 0x16, 0x07, 0x0e, 0xf4, 0xe7, 0x11, 0xea, 0xef,
  0xfe, 0x06, 0xf3, 0x01, 0xcc, 0x25, 0x02, 0xf3, 0x0d, 0xe9, 0x15, 0x03,
  0xf8, 0x25, 0x22, 0xf7, 0x1a, 0xf0, 0x00, 0x12, 0x05, 0x3d, 0x16, 0x09,
  0x02, 0xf3, 0x1c, 0xf2, 0x08, 0x0a, 0x19, 0xe6, 0x04, 0x06, 0x09, 0x0b,
  0x14, 0x0d, 0xe0, 0xc9, 0xdb, 0xf3, 0x21, 0x21, 0xfc, 0x15, 0xe2, 0xe7,
  0xdc, 0xe6, 0xef, 0x17, 0xe8, 0x06, 0xf2, 0x06, 0xeb, 0xfc, 0x0b, 0xfe,
  0xf3, 0xfb, 0x04, 0x09, 0xf9, 0xf6, 0x09, 0x14, 0xd9, 0x22, 0xf7, 0xe4,
  0xfe, 0xf2, 0x00, 0x15, 0xa4, 0x14, 0x08, 0xe2, 0x0c, 0x0d, 0xf9, 0xfd,
  0xe7, 0x06, 0xf8, 0xcd, 0xc4, 0x08, 0x1f, 0x1e, 0xf4, 0x0a, 0xee, 0xce,
  0xb6, 0x24, 0x20, 0x19, 0xc0, 0x11, 0xda, 0xc2, 0xbf, 0x2b, 0x09, 0xfa,
  0xb8, 0x17, 0x01, 0xdc, 0xd6, 0x2a, 0x02, 0x12, 0xd5, 0xef, 0x0e, 0xc6,
  0xdb, 0x16, 0x11, 0x04, 0xe3, 0x0c, 0x00, 0xd4, 0xe4, 0xf7, 0xfc, 0x09,
  0xdf, 0x22, 0xe2, 0xcd, 0xe8, 0x02, 0x20, 0xea, 0xcd, 0x14, 0x03, 0xc9,
  0xfe, 0x05, 0x20, 0x18, 0xf8, 0x20, 0x11, 0xc0, 0xec, 0x0b, 0x26, 0x12,
  0xe6, 0x1f, 0x06, 0xd2, 0xef, 0x01, 0x1a, 0xfc, 0xd7, 0x14, 0xf5, 0xf4,
  0xe4, 0x02, 0x08, 0xf3, 0x0b, 0x27, 0xf1, 0xfc, 0xec, 0xf1, 0xf3, 0x20,
  0xd1, 0x04, 0x1e, 0x01, 0x08, 0xf0, 0x10, 0xfe, 0xe9, 0x35, 0xf3, 0xe4,
  0xfa, 0x08, 0x00, 0x28, 0x1a, 0x27, 0xf5, 0xee, 0xe1, 0xfc, 0x02, 0x0c,
  0xeb, 0xfe, 0x01, 0xf1, 0xe0, 0xf2, 0x17, 0xf7, 0xe4, 0x1b, 0xea, 0xe8,
  0xcf, 0x03, 0x1b, 0x0a, 0xfb, 0x07, 0xf0, 0xea, 0xf3, 0xec, 0x02, 0x18,
  0x1f, 0x13, 0x02, 0xeb, 0xf6, 0xfe, 0x1d, 0xeb, 0xb5, 0x1e, 0xfc, 0xe2,
  0xdd, 0x24, 0x34, 0xdc, 0xf4, 0x3c, 0xec, 0xc5, 0xee, 0x0c, 0x2a, 0x0d,
  0xc8, 0xf4, 0xe5, 0xe0, 0xcd, 0x17, 0xec, 0x07, 0xca, 0x0d, 0xe8, 0xb9,
  0xa1, 0x46, 0x09, 0x22, 0xce, 0x17, 0xfc, 0xd4, 0xd4, 0x2e, 0x28, 0x08,
  0xdb, 0x05, 0x13, 0xcf, 0xe0, 0x01, 0x20, 0x09, 0x0b, 0x02, 0xff, 0xe3,
  0x0d, 0x06, 0x11, 0x15, 0xf6, 0x0f, 0x05, 0xe6, 0xfa, 0xec, 0x0f, 0xfc,
  0xbc, 0x29, 0xf3, 0xbe, 0xdf, 0x09, 0x19, 0xe1, 0xeb, 0xfe, 0xeb, 0xde,
  0xe5, 0x16, 0x11, 0xfe, 0x0c, 0x24, 0x07, 0xcd, 0xfd, 0xe8, 0x05, 0x1a,
  0xd0, 0x1a, 0x12, 0xda, 0xe2, 0x02, 0x0b, 0x26, 0x07, 0x2e, 0x20, 0x01,
  0xfd, 0xe9, 0x02, 0x0e, 0x09, 0x28, 0xf5, 0xfd, 0xec, 0xfb, 0x17, 0x12,
  0xe5, 0x28, 0x04, 0xf4, 0xf3, 0xe6, 0x08, 0xfd, 0xf7, 0x32, 0xec, 0x02,
  0xda, 0x03, 0x27, 0x11, 0xfb, 0x21, 0xe9, 0xde, 0xcf, 0xea, 0x16, 0x1b,
  0xf6, 0x25, 0xe5, 0x14, 0xf5, 0xed, 0x1e, 0x0a, 0xf1, 0x0c, 0x02, 0x08,
  0x0c, 0xe3, 0x26, 0x0a, 0x05, 0x21, 0xff, 0x09, 0xf0, 0xff, 0x12, 0x26,
  0xc4, 0x0b, 0xf7, 0xc9, 0xe9, 0x22, 0x1c, 0x03, 0x00, 0x01, 0xdb, 0xed,
  0x04, 0x0d, 0x16, 0xf0, 0xc7, 0x25, 0xdd, 0xd1, 0xe2, 0x1b, 0xec, 0x29,
  0xd3, 0x0c, 0xee, 0xbe, 0xaf, 0x2e, 0x22, 0x22, 0xba, 0xf3, 0xe3, 0xc0,
  0xd9, 0x2d, 0x0c, 0x1b, 0xe6, 0x25, 0xf1, 0xe9, 0xb5, 0x08, 0x02, 0xf6,
  0xc2, 0xfa, 0x14, 0xe2, 0xd6, 0xfd, 0x11, 0xf1, 0x00, 0xf3, 0xe7, 0xd3,
  0x02, 0x05, 0x1a, 0x28, 0xc5, 0x06, 0xfb, 0xa4, 0xc6, 0x18, 0xfe, 0xfb,
  0xed, 0x1c, 0x06, 0x04, 0x01, 0x1b, 0x02, 0x17, 0xd9, 0x16, 0xff, 0xdd,
  0x07, 0xeb, 0x03, 0x12, 0xdd, 0x08, 0xf9, 0xe6, 0xf7, 0xec, 0x15, 0x1d,
  0xf5, 0x21, 0x11, 0xea, 0xf0, 0xff, 0x06, 0x0e, 0xe0, 0x0e, 0x12, 0x00,
  0x01, 0xf5, 0x24, 0x08, 0xf1, 0x33, 0x27, 0x11, 0xf3, 0xfe, 0x23, 0x19,
  0xf8, 0x24, 0x16, 0xca, 0xc5, 0x00, 0xfc, 0x00, 0x11, 0x1f, 0xfa, 0xfa,
  0xfd, 0xf3, 0x09, 0x10, 0xe5, 0x1d, 0xe5, 0xe7, 0xc8, 0xf0, 0x15, 0x0c,
  0xe3, 0x13, 0x0e, 0xe8, 0x13, 0xe7, 0xfa, 0x05, 0xf8, 0x03, 0x0a, 0x09,
  0x00, 0xe6, 0x21, 0xf5, 0xb5, 0x20, 0xf2, 0xeb, 0x1f, 0x2e, 0x27, 0x05,
  0xec, 0xff, 0xef, 0xdc, 0xfc, 0x0d, 0x25, 0x03, 0xd1, 0x00, 0x02, 0xfd,
  0xe7, 0x32, 0xfb, 0x29, 0xed, 0x13, 0xdf, 0xc0, 0xba, 0x4b, 0x17, 0x18,
  0xcd, 0x16, 0x23, 0xe5, 0xde, 0x31, 0xfa, 0x27, 0xda, 0x27, 0x05, 0xce,
  0xd3, 0x16, 0x17, 0x0a, 0xf0, 0xf2, 0x25, 0xcf, 0xd7, 0x13, 0x0a, 0x21,
  0xbe, 0x1b, 0xfc, 0xd9, 0xd3, 0xf3, 0x0f, 0x04, 0xb5, 0x26, 0x12, 0xbd,
  0xe4, 0x04, 0xff, 0x1a, 0xf0, 0x1f, 0x12, 0xcc, 0xff, 0x13, 0x2c, 0xfb,
  0xea, 0x2e, 0xe9, 0xd9, 0xfa, 0xf2, 0xf9, 0x00, 0xfe, 0x17, 0x00, 0xdc,
  0xe3, 0x04, 0x01, 0x17, 0xed, 0x0f, 0x22, 0x02, 0xf7, 0x0d, 0x02, 0x13,
  0xf3, 0x1d, 0xfe, 0x1f, 0xf4, 0xea, 0x0a, 0xf9, 0x07, 0x21, 0xf2, 0xfb,
  0x02, 0x02, 0x01, 0x07, 0xd2, 0x05, 0x0d, 0xe2, 0xd0, 0xf3, 0x06, 0x0b,
  0xee, 0x25, 0xf8, 0x0e, 0xd4, 0xf6, 0x1e, 0x1c, 0x08, 0x06, 0xf3, 0x01,
  0xd6, 0xfa, 0x1a, 0x2c, 0xf4, 0x0b, 0x07, 0x07, 0xea, 0xfb, 0x0a, 0x18,
  0xfd, 0x0f, 0x10, 0x04, 0xed, 0xf9, 0x0d, 0x0a, 0xa9, 0x1a, 0x10, 0xd6,
  0x0a, 0x1f, 0x12, 0x01, 0xf3, 0xfe, 0xfc, 0xdf, 0xd9, 0x24, 0x2e, 0xf8,
  0xe2, 0xe7, 0xe0, 0xf1, 0xd2, 0x14, 0x02, 0x05, 0xc3, 0x24, 0xe0, 0xd1,
  0xc6, 0x59, 0xec, 0x2e, 0xc5, 0xf3, 0xf5, 0xca, 0xc1, 0x2d, 0x0f, 0x14,
  0xdd, 0x02, 0x0a, 0xde, 0xd7, 0x26, 0x08, 0xe8, 0xf8, 0x1e, 0x0a, 0xdf,
  0xd7, 0x01, 0x17, 0x02, 0xf8, 0x2e, 0xdf, 0xd7, 0xd5, 0x09, 0xef, 0x09,
  0xf4, 0x12, 0xe8, 0xc6, 0xe4, 0xff, 0x1b, 0x15, 0xe0, 0x1d, 0xe6, 0xf1,
  0xeb, 0x0f, 0x1e, 0x1f, 0xe4, 0x10, 0x09, 0xdb, 0x12, 0x0a, 0x1b, 0x11,
  0xfd, 0x1a, 0x16, 0xec, 0xf2, 0xef, 0xf3, 0x34, 0xeb, 0xfc, 0xea, 0xfe,
  0x0f, 0xfe, 0x01, 0x07, 0xe6, 0x0c, 0x0a, 0xfe, 0xeb, 0xfa, 0x31, 0x1c,
  0xf4, 0x1d, 0x09, 0xf2, 0xe2, 0x04, 0x0f, 0x27, 0xf6, 0x3d, 0xf1, 0xeb,
  0xda, 0xee, 0x1e, 0x20, 0xe1, 0x2d, 0x1d, 0x00, 0xe8, 0xe8, 0x15, 0x16,
  0xcf, 0x2d, 0x06, 0xf7, 0xd9, 0xf2, 0xfd, 0x19, 0xe5, 0x32, 0xfe, 0x00,
  0xe7, 0xfd, 0xf7, 0x0f, 0x16, 0x00, 0x09, 0xf7, 0x02, 0xfa, 0x01, 0xf8,
  0xa4, 0x07, 0xdd, 0xdc, 0x09, 0x42, 0x05, 0x09, 0xe0, 0x17, 0xfc, 0xd4,
  0xf3, 0x2d, 0x14, 0xef, 0xdd, 0x17, 0xf4, 0xc3, 0xb5, 0x2d, 0x0b, 0x21,
  0xd4, 0x27, 0xf6, 0xc5, 0xb0, 0x5c, 0x31, 0x05, 0xbc, 0x27, 0x1a, 0xd9,
  0xd5, 0x33, 0x18, 0x2c, 0xe8, 0xed, 0x1b, 0xe5, 0xe9, 0x3b, 0x01, 0x10,
  0xdf, 0x2c, 0xfe, 0xe7, 0x09, 0x02, 0x0c, 0x12, 0xd1, 0x12, 0x12, 0xd3,
  0xda, 0x17, 0x0b, 0x09, 0xda, 0x10, 0xfc, 0x9f, 0xce, 0x06, 0x1a, 0xfa,
  0xc4, 0x0a, 0x05, 0xd9, 0xf6, 0x11, 0x1f, 0x25, 0xe4, 0x2e, 0xfc, 0xe7,
  0x0a, 0xfe, 0x12, 0x0e, 0xe8, 0x0c, 0xf8, 0xf2, 0xec, 0xe5, 0x14, 0x2b,
  0xdb, 0xf9, 0x1a, 0x1f, 0x15, 0xee, 0xf7, 0x1a, 0xee, 0xf4, 0x00, 0xfc,
  0x03, 0x01, 0x0a, 0x04, 0xdd, 0x17, 0xf8, 0xe7, 0xd6, 0xf1, 0x2f, 0x08,
  0x01, 0x20, 0x08, 0xe8, 0xe9, 0x00, 0x16, 0x0f, 0xf1, 0x15, 0xe5, 0xef,
  0xc5, 0xf2, 0x09, 0xf3, 0x0b, 0x31, 0xe7, 0xfe, 0xe2, 0xfe, 0xfe, 0x05,
  0xe4, 0x13, 0x15, 0xe7, 0x11, 0xf4, 0x22, 0x2d, 0x05, 0x09, 0x17, 0x29,
  0x18, 0xf6, 0x05, 0x10, 0xb9, 0xf3, 0x16, 0xcb, 0x02, 0x4f, 0x01, 0xfc,
  0xfb, 0x27, 0xf7, 0xd9, 0xbd, 0x20, 0x0a, 0xe8, 0xbd, 0x02, 0xde, 0xe5,
  0xe2, 0x39, 0x0c, 0x02, 0xc6, 0x05, 0xeb, 0xc8, 0xb7, 0x49, 0x08, 0x12,
  0xb2, 0x11, 0x21, 0xc4, 0xf4, 0x6a, 0x19, 0xf5, 0xfd, 0x1d, 0x0e, 0xd1,
  0xc8, 0x3e, 0x20, 0xf3, 0xd9, 0x23, 0x14, 0xec, 0xda, 0x16, 0x09, 0xf2,
  0xf0, 0x24, 0xef, 0xe2, 0xcd, 0x0b, 0x13, 0x29, 0xe3, 0x0e, 0x1a, 0xb2,
  0xde, 0x15, 0x31, 0xed, 0xf1, 0xfc, 0xe8, 0xc0, 0x0f, 0x17, 0x0e, 0xfc,
  0xea, 0x19, 0xf0, 0xf4, 0xe8, 0xfb, 0xfe, 0x18, 0xfe, 0x0a, 0xd5, 0xe7,
  0xee, 0x08, 0x0d, 0x00, 0xe5, 0x08, 0xe4, 0xf4, 0xe3, 0xfd, 0x1c, 0x0f,
  0xef, 0xfe, 0x1b, 0xf1, 0xf3, 0xf8, 0x08, 0x1c, 0x08, 0x28, 0xf7, 0xf3,
  0xe6, 0xf9, 0x1d, 0x1c, 0xf0, 0x21, 0xf2, 0xf3, 0xbf, 0x12, 0x1e, 0x07,
  0xed, 0x16, 0x0c, 0xdc, 0xee, 0xfd, 0x04, 0x29, 0xff, 0x31, 0x04, 0x03,
  0xde, 0x00, 0xff, 0x37, 0xf0, 0x3c, 0xf4, 0xf9, 0xff, 0xfb, 0x1b, 0x18,
  0xf2, 0x1c, 0x0d, 0xf2, 0xfd, 0xf4, 0xfd, 0x06, 0xce, 0x21, 0xde, 0xf9,
  0xf9, 0x4f, 0x1c, 0xf3, 0xdf, 0x23, 0x26, 0xf5, 0x08, 0x2b, 0x03, 0xe5,
  0xd9, 0x0e, 0xfa, 0x03, 0xc4, 0x4e, 0x1e, 0x16, 0xc2, 0x0d, 0x0a, 0xcc,
  0xba, 0x7f, 0x17, 0x20, 0xcf, 0x21, 0x10, 0xb6, 0xe3, 0x75, 0x21, 0xfa,
  0xf4, 0x0e, 0x03, 0xd9, 0xe2, 0x58, 0x00, 0xf8, 0xce, 0xfc, 0xff, 0xd0,
  0xe0, 0x36, 0xf3, 0xee, 0xc2, 0x1a, 0xf1, 0xde, 0xe8, 0x13, 0x1a, 0x02,
  0xd1, 0x09, 0xea, 0xc5, 0xf8, 0x1f, 0x03, 0x13, 0xd7, 0xfd, 0xda, 0xcc,
  0xff, 0x28, 0xf2, 0x04, 0xed, 0x0e, 0xf0, 0xf8, 0xed, 0x04, 0x09, 0xe1,
  0xef, 0x05, 0xf1, 0xd9, 0xf2, 0x0a, 0x09, 0xeb, 0x02, 0x1a, 0x1a, 0xef,
  0x01, 0x04, 0x03, 0xf1, 0xf7, 0x38, 0x2d, 0xf2, 0xfd, 0x1c, 0x13, 0x1f,
  0xf7, 0x19, 0xe9, 0xf2, 0xd7, 0xf7, 0x1d, 0x04, 0xff, 0x11, 0xed, 0xe5,
  0xdc, 0x1a, 0xf6, 0x1b, 0xd1, 0x26, 0xec, 0x04, 0xf8, 0xf8, 0x03, 0x15,
  0xee, 0x1e, 0xf7, 0xea, 0xe0, 0x03, 0x21, 0x27, 0xe0, 0x1d, 0x10, 0xff,
  0xf5, 0x0e, 0xfd, 0x28, 0x08, 0x1b, 0xfa, 0x02, 0xf3, 0xe4, 0x0c, 0xfa,
  0xe5, 0xe0, 0x22, 0xee, 0xe8, 0x6e, 0x03, 0x0d, 0xaa, 0x19, 0x0c, 0xcf,
  0xeb, 0x41, 0xff, 0x09, 0xda, 0xf3, 0xe9, 0xee, 0xe7, 0x65, 0xf0, 0xe9,
  0xcd, 0xe5, 0xf0, 0xd4, 0xce, 0x70, 0x15, 0xf2, 0xe9, 0xf9, 0x29, 0x01,
  0xec, 0x74, 0x20, 0xfc, 0xda, 0x04, 0x07, 0xe5, 0xe7, 0x52, 0xf1, 0xfe,
  0xe2, 0x17, 0x04, 0xe1, 0xdf, 0x32, 0x05, 0x23, 0xd2, 0x06, 0x15, 0xce,
  0xde, 0x23, 0xf5, 0xde, 0xd8, 0x07, 0xfd, 0xd1, 0xcd, 0x2a, 0x1f, 0xe9,
  0xdd, 0x1d, 0x17, 0x05, 0xea, 0x36, 0xeb, 0xf6, 0xe6, 0xf6, 0xe8, 0xeb,
  0x08, 0x13, 0x0b, 0xf4, 0x09, 0xef, 0xf7, 0x12, 0x0a, 0x14, 0x16, 0xfe,
  0x08, 0xe9, 0x12, 0x02, 0x19, 0x13, 0x0b, 0xff, 0x05, 0x06, 0x0e, 0x08,
  0x1e, 0x15, 0xf9, 0xf9, 0xf8, 0x3c, 0xe9, 0xf1, 0xe4, 0x06, 0x15, 0x0c,
  0x0d, 0x23, 0xf3, 0xeb, 0xb3, 0x0f, 0xfe, 0x0a, 0xfe, 0x02, 0xf4, 0xec,
  0xcb, 0x12, 0x2c, 0x17, 0xe7, 0x25, 0x03, 0xfa, 0xf4, 0x07, 0x08, 0xfc,
  0xe5, 0x28, 0x0b, 0xd9, 0x16, 0xfd, 0x17, 0xe8, 0xe9, 0xf0, 0x1f, 0xde,
  0xf8, 0xf7, 0x1b, 0xf2, 0xc7, 0xd9, 0x0d, 0xc5, 0xf3, 0x37, 0x00, 0xd4,
  0xb0, 0x18, 0xde, 0xd3, 0x08, 0x40, 0xe8, 0xf2, 0xa5, 0x03, 0xf8, 0xf1,
  0xc3, 0x21, 0xeb, 0x1c, 0xad, 0x06, 0x11, 0xd0, 0xd6, 0x41, 0xf3, 0xf4,
  0xdd, 0x01, 0x11, 0xfa, 0xe0, 0x41, 0xf6, 0xf7, 0xd4, 0x10, 0xe8, 0xca,
  0xdc, 0x24, 0xfe, 0xfa, 0xd2, 0xff, 0x26, 0xe8, 0xfe, 0x14, 0x24, 0xe5,
  0xc5, 0x11, 0x07, 0xf2, 0xc3, 0x25, 0x04, 0x1d, 0xcd, 0x09, 0x1d, 0xe0,
  0xe3, 0x28, 0x10, 0x21, 0xf4, 0x21, 0x00, 0xff, 0xde, 0x16, 0x15, 0xec,
  0xfb, 0xf6, 0x09, 0xee, 0xf6, 0x1a, 0xf6, 0x0e, 0xf2, 0xfd, 0x17, 0xf7,
  0xf8, 0x10, 0xf1, 0xf0, 0xcd, 0x2d, 0xf9, 0xed, 0x0f, 0xf2, 0xe8, 0x07,
  0xf9, 0xf2, 0xfb, 0x02, 0x02, 0x00, 0x0d, 0xfe, 0xdc, 0x00, 0x22, 0xf9,
  0xe3, 0x10, 0x0f, 0x16, 0xf9, 0x17, 0x07, 0xfb, 0xd0, 0x03, 0x16, 0xee,
  0xfa, 0x08, 0x01, 0xfa, 0xd8, 0xfb, 0x09, 0xf8, 0xf1, 0x18, 0x04, 0x06,
  0xf0, 0x06, 0x09, 0x1d, 0xf0, 0xea, 0x07, 0x0e, 0x0f, 0x02, 0x0a, 0xe1,
  0x10, 0x0d, 0x04, 0x01, 0x04, 0x04, 0xf5, 0xf2, 0xea, 0x09, 0xe3, 0xfa,
  0x23, 0xf2, 0x13, 0x02, 0x0c, 0xfb, 0x03, 0x07, 0x15, 0xe8, 0xfe, 0x0f,
  0xf5, 0x04, 0x01, 0x0a, 0x19, 0xe6, 0x0b, 0xfc, 0x0b, 0x01, 0x1c, 0xe0,
  0x08, 0x10, 0x03, 0x13, 0x13, 0xfc, 0xfd, 0x04, 0x0b, 0xf3, 0x16, 0x0f,
  0x07, 0xfe, 0x07, 0xfb, 0xf5, 0x0e, 0x06, 0x13, 0xfb, 0x05, 0x0b, 0xef,
  0x05, 0xfd, 0x0d, 0x11, 0x0f, 0xfd, 0x06, 0xe2, 0x11, 0x0e, 0x0b, 0x1e,
  0x0e, 0x02, 0x06, 0xfe, 0x27, 0x0d, 0xf4, 0x0d, 0x1b, 0xfe, 0xfa, 0xe1,
  0xe3, 0x03, 0x07, 0x0c, 0x0c, 0xf6, 0x0e, 0x0b, 0xe7, 0xfe, 0xf2, 0x1e,
  0x06, 0x18, 0x13, 0x02, 0x22, 0xf1, 0xee, 0x00, 0x1c, 0xf3, 0x0d, 0xff,
  0x0a, 0xd5, 0x09, 0x18, 0x07, 0xf2, 0x00, 0xe2, 0xfe, 0x04, 0x05, 0x0a,
  0xf0, 0x14, 0x02, 0x05, 0xfc, 0xec, 0xe6, 0x07, 0xeb, 0xf5, 0x07, 0xdf,
  0xed, 0x0d, 0xf7, 0x0a, 0x1d, 0x20, 0x15, 0x08, 0xfd, 0xe5, 0x0e, 0x1b,
  0x0f, 0x05, 0x13, 0xf5, 0xff, 0xe9, 0x0e, 0x1d, 0x0d, 0x06, 0x01, 0xde,
  0xfd, 0x15, 0x07, 0xfb, 0xe1, 0x08, 0xe6, 0x01, 0xfa, 0x0a, 0xdb, 0x16,
  0xe7, 0xf5, 0x11, 0xfa, 0x0c, 0x02, 0x15, 0x11, 0x18, 0x07, 0xf5, 0xf2,
  0xf7, 0xf9, 0xfc, 0xf8, 0x03, 0xf3, 0x1d, 0x01, 0x00, 0xe3, 0x01, 0x03,
  0x1d, 0xf9, 0x19, 0x05, 0x19, 0x04, 0x1c, 0x03, 0x1c, 0x11, 0xfe, 0x0a,
  0x07, 0xe6, 0x19, 0xfc, 0xfe, 0xfe, 0x06, 0x1b, 0xeb, 0xf8, 0x0f, 0x13,
  0xea, 0x08, 0x05, 0x15, 0x21, 0xea, 0x03, 0x07, 0xea, 0x01, 0x25, 0xed,
  0xfa, 0xee, 0xf4, 0x1c, 0x0b, 0x06, 0x09, 0xe1, 0xfd, 0xf9, 0xe6, 0xfd,
  0xf4, 0x16, 0xe0, 0xfa, 0x11, 0xf6, 0x17, 0x0e, 0x16, 0x03, 0xe4, 0x05,
  0x1a, 0x00, 0xda, 0x00, 0xf9, 0x14, 0x0f, 0xfa, 0x03, 0xf0, 0xff, 0x0f,
  0xf5, 0x17, 0x1a, 0x03, 0x04, 0xfc, 0x08, 0xeb, 0x0d, 0x20, 0xf9, 0x28,
  0xf1, 0x0b, 0xfe, 0x02, 0x03, 0x0c, 0xfe, 0x17, 0xfb, 0x00, 0x0e, 0x0d,
  0x01, 0x07, 0xfa, 0x07, 0xe5, 0xe8, 0xf6, 0x17, 0x1e, 0xfa, 0x0c, 0xf2,
  0xdf, 0xf3, 0xe8, 0xfc, 0xfa, 0x11, 0x12, 0xfe, 0x05, 0x06, 0x01, 0x17,
  0xfa, 0xeb, 0x00, 0x00, 0xf4, 0x0d, 0xf3, 0x21, 0x05, 0x04, 0xf8, 0xef,
  0xf4, 0x10, 0xfc, 0x05, 0xfb, 0x00, 0x0e, 0xf3, 0xe5, 0x12, 0x08, 0x0b,
  0x01, 0x15, 0xdd, 0x06, 0x1d, 0x16, 0xea, 0x04, 0x07, 0xf3, 0x00, 0xfa,
  0xf9, 0x03, 0xfc, 0xfd, 0xff, 0xff, 0x05, 0x00, 0x0d, 0xf0, 0x1f, 0x04,
  0xfe, 0x0f, 0x0c, 0x0c, 0xf1, 0x0b, 0x05, 0xf7, 0x00, 0xfb, 0x11, 0x09,
  0x05, 0x10, 0xf9, 0xfb, 0x08, 0xea, 0xfe, 0x15, 0xe6, 0x0e, 0xf3, 0xf0,
  0x1d, 0x01, 0xf7, 0x09, 0x22, 0x01, 0xe3, 0xdb, 0x08, 0x1e, 0xd3, 0x08,
  0xfb, 0xf3, 0x08, 0xf1, 0x11, 0x09, 0xf7, 0xff, 0x26, 0xfd, 0x13, 0x27,
  0x08, 0x0d, 0x0f, 0xde, 0x0a, 0x0a, 0xda, 0x17, 0x0d, 0x0e, 0x15, 0xff,
  0x09, 0xf6, 0xff, 0x00, 0x0f, 0x02, 0xef, 0xf2, 0x0c, 0x0a, 0x12, 0x0c,
  0x1c, 0x09, 0xfa, 0x01, 0xfd, 0x0f, 0xee, 0xff, 0xfe, 0xe8, 0xde, 0x07,
  0xf8, 0x0f, 0xf1, 0x00, 0xf8, 0x05, 0x07, 0x0b, 0xf7, 0x17, 0xea, 0x03,
  0xf0, 0xee, 0x08, 0x10, 0xf9, 0xec, 0xed, 0xff, 0x07, 0x18, 0xfa, 0x06,
  0x01, 0x06, 0x06, 0xfd, 0x1f, 0xed, 0x0f, 0xff, 0x03, 0xf5, 0xf4, 0xfa,
  0xf6, 0xf1, 0x01, 0x0a, 0x00, 0x0e, 0xfa, 0x1a, 0x08, 0x0d, 0x1e, 0x02,
  0xfd, 0xfb, 0x16, 0x0b, 0x0d, 0xfe, 0x0c, 0xed, 0x17, 0x0d, 0x01, 0x00,
  0x1f, 0xe4, 0x00, 0xfa, 0x03, 0xea, 0x14, 0xfa, 0x0d, 0xf9, 0x14, 0xf0,
  0x05, 0x11, 0xef, 0xf2, 0x03, 0x06, 0xf0, 0xf2, 0xf6, 0xdf, 0xea, 0x00,
  0xf8, 0xf1, 0x0a, 0x02, 0xf9, 0x10, 0x15, 0xe9, 0x24, 0xf2, 0xfd, 0x09,
  0x08, 0x15, 0x0a, 0xeb, 0x02, 0x18, 0x09, 0xf0, 0x14, 0xf8, 0x18, 0xf1,
  0xfc, 0x07, 0xed, 0x09, 0x31, 0xf7, 0x00, 0x12, 0xea, 0x17, 0xfe, 0xd9,
  0x10, 0x08, 0xe9, 0x21, 0x00, 0xe9, 0xd8, 0xfb, 0x23, 0xfe, 0x1e, 0x08,
  0x1b, 0x10, 0xff, 0x09, 0x24, 0xf8, 0xe1, 0x06, 0x16, 0xd9, 0xfb, 0x00,
  0x0c, 0xfa, 0x17, 0x05, 0x0d, 0x01, 0xed, 0x0f, 0x02, 0xfc, 0x05, 0xe9,
  0x03, 0xfb, 0x05, 0x0d, 0xfd, 0xee, 0xf5, 0xf7, 0xf3, 0xeb, 0xf7, 0xed,
  0x00, 0x19, 0xf3, 0xff, 0x0d, 0x05, 0xfa, 0xf5, 0x0d, 0xf3, 0x1a, 0xf4,
  0x0f, 0xf9, 0x0c, 0xfa, 0xf2, 0xeb, 0x24, 0x0c, 0x1a, 0xf7, 0x0f, 0xe7,
  0xfd, 0xf9, 0xe6, 0xf1, 0x0a, 0x21, 0x16, 0x07, 0x01, 0x00, 0xf3, 0xfd,
  0x0f, 0xfc, 0xf3, 0x03, 0xfb, 0xfe, 0xec, 0x11, 0x13, 0xfd, 0xef, 0xff,
  0x0b, 0xe6, 0x1b, 0x03, 0x2f, 0xfd, 0x17, 0xfc, 0x01, 0x04, 0xfc, 0x12,
  0x01, 0xe9, 0x16, 0xe1, 0x01, 0xf8, 0x15, 0xf4, 0x09, 0xf5, 0xff, 0xdf,
  0xf1, 0xf8, 0xe3, 0x0d, 0xfa, 0xf1, 0xfe, 0x0d, 0x03, 0xf9, 0xf9, 0xe7,
  0xfd, 0x04, 0xfd, 0x2f, 0x1f, 0xec, 0xf1, 0xf2, 0xff, 0x18, 0x00, 0xed,
  0x18, 0xf2, 0xe6, 0xf4, 0x01, 0xf3, 0xe4, 0xed, 0x2c, 0xe6, 0x02, 0xf9,
  0xec, 0x04, 0xf1, 0xc6, 0x1e, 0x02, 0xe3, 0x37, 0xfc, 0x1a, 0xd6, 0xeb,
  0x10, 0xf5, 0xfb, 0x25, 0x04, 0x05, 0xfe, 0xe5, 0x12, 0x1b, 0xed, 0xe7,
  0x22, 0xed, 0xfc, 0x05, 0x13, 0xf2, 0xf1, 0xf9, 0x0c, 0xfd, 0xe9, 0x18,
  0xf8, 0x00, 0xfd, 0xf1, 0xfb, 0x05, 0xf2, 0xed, 0x24, 0xe4, 0x0d, 0xfa,
  0xfe, 0xde, 0xf0, 0xde, 0x0d, 0xf0, 0xf4, 0x09, 0x16, 0xe9, 0xf7, 0xf6,
  0xf8, 0x09, 0x25, 0xff, 0x0b, 0xfd, 0x0c, 0x1c, 0x18, 0x05, 0x02, 0x12,
  0x1b, 0x0a, 0x04, 0x14, 0xfa, 0xec, 0x1c, 0xfc, 0xf9, 0x1f, 0x05, 0xf7,
  0x00, 0xf8, 0xf0, 0xea, 0x11, 0x00, 0xf4, 0x0e, 0xfc, 0x11, 0xfe, 0x0f,
  0x33, 0xf2, 0x0c, 0xf7, 0xea, 0xee, 0xeb, 0xf9, 0x1b, 0x00, 0xfb, 0x11,
  0xff, 0x12, 0xf4, 0x08, 0xfd, 0x12, 0x19, 0xf3, 0x0b, 0xea, 0xf9, 0xfe,
  0x12, 0xde, 0xfb, 0xed, 0x09, 0x10, 0x03, 0xf6, 0x02, 0x16, 0xe9, 0x02,
  0xfd, 0xf1, 0xf6, 0xef, 0x0b, 0xfb, 0x02, 0x12, 0x0b, 0xec, 0xf1, 0xf1,
  0xe7, 0x10, 0xf4, 0xf0, 0x31, 0x04, 0x16, 0xf9, 0x05, 0xff, 0xdc, 0xec,
  0x56, 0xeb, 0xfa, 0x24, 0xe9, 0x10, 0xdb, 0xe3, 0x1a, 0xfc, 0xf0, 0x15,
  0xe5, 0x00, 0xd3, 0xdd, 0x3c, 0xfb, 0xfa, 0x29, 0x01, 0x0c, 0xe0, 0xf1,
  0x2d, 0x0b, 0x0a, 0x0a, 0x18, 0xec, 0x0a, 0xee, 0x04, 0xff, 0x0c, 0xfb,
  0xff, 0x0a, 0x07, 0x10, 0x03, 0x02, 0xf5, 0xfd, 0xe0, 0xed, 0x00, 0xff,
  0x1b, 0x07, 0xf2, 0xfb, 0xee, 0xdb, 0xf5, 0xe9, 0x1f, 0xea, 0xe8, 0x0a,
  0xe9, 0xde, 0xff, 0x03, 0xf9, 0xfe, 0xfc, 0x03, 0x01, 0xf4, 0x25, 0x02,
  0x13, 0xe9, 0xf4, 0xfa, 0x0a, 0x06, 0x0d, 0x2b, 0x04, 0xdf, 0xf4, 0x00,
  0x1d, 0x08, 0x14, 0x17, 0xe9, 0xf8, 0xfd, 0xfd, 0x16, 0xff, 0x12, 0xfd,
  0x08, 0x03, 0xe1, 0x0a, 0x27, 0xff, 0xdf, 0xee, 0xf9, 0xf3, 0x0a, 0x0d,
  0x10, 0xf3, 0xfc, 0x22, 0xf9, 0x00, 0x01, 0x13, 0xed, 0x12, 0x16, 0xe2,
  0x1a, 0xf3, 0x06, 0x24, 0x03, 0xef, 0x01, 0x0c, 0x0e, 0xfc, 0x0a, 0x13,
  0xf5, 0xed, 0xf6, 0x18, 0x0f, 0x00, 0xf5, 0x1a, 0xff, 0xf9, 0xef, 0x14,
  0x30, 0x06, 0xf3, 0x0a, 0xf7, 0x02, 0x05, 0x1a, 0x3c, 0x00, 0x12, 0x17,
  0x02, 0x08, 0xd0, 0xfc, 0x4d, 0x03, 0x02, 0x18, 0xe6, 0x12, 0xcd, 0xeb,
  0x42, 0xf2, 0xf3, 0x27, 0xf2, 0x21, 0xe2, 0xe5, 0x3e, 0x16, 0x07, 0x1e,
  0xfa, 0xec, 0xe2, 0x03, 0x2b, 0x17, 0x02, 0xf8, 0xf9, 0x04, 0xf3, 0x13,
  0x01, 0xfc, 0x02, 0x08, 0x09, 0xef, 0xfc, 0x12, 0x04, 0xf9, 0xfc, 0x08,
  0x03, 0xed, 0xf7, 0x0b, 0x25, 0x05, 0x0c, 0xf8, 0xd8, 0xf1, 0xfc, 0xd6,
  0x33, 0x0a, 0x08, 0x19, 0x07, 0xf4, 0xe0, 0xee, 0x21, 0x02, 0x0d, 0xf4,
  0x22, 0xfa, 0x07, 0xf9, 0x10, 0x08, 0x01, 0x03, 0x36, 0xec, 0x10, 0x1f,
  0xf4, 0x08, 0xf5, 0xf9, 0x05, 0x12, 0x10, 0x07, 0xf7, 0x09, 0x14, 0xf6,
  0x2a, 0xe1, 0x09, 0xf9, 0xeb, 0x1b, 0x23, 0xf5, 0x0f, 0x01, 0x03, 0x0b,
  0xf3, 0xfd, 0xe9, 0xed, 0x40, 0x00, 0x11, 0x07, 0x17, 0xfc, 0xe6, 0x1e,
  0xf0, 0xeb, 0x00, 0xd6, 0x2b, 0xf7, 0x12, 0x1f, 0xe9, 0xfa, 0x0b, 0x17,
  0x32, 0x13, 0xf3, 0x03, 0xe4, 0xf9, 0xf0, 0xfc, 0x07, 0x03, 0x15, 0xfe,
  0xea, 0xfa, 0x00, 0x1b, 0x1e, 0x03, 0x19, 0xfd, 0xf9, 0xff, 0xf2, 0x06,
  0x39, 0xea, 0x05, 0x16, 0xfb, 0x0a, 0xe3, 0xee, 0x41, 0x0b, 0x00, 0x32,
  0xeb, 0x01, 0xd0, 0xf1, 0x25, 0xf8, 0x15, 0x28, 0xf0, 0xfb, 0xd7, 0x00,
  0x4a, 0x01, 0x00, 0x1a, 0xf7, 0x05, 0xf3, 0x01, 0x3a, 0x19, 0x19, 0x09,
  0xfd, 0xfa, 0xf4, 0x1b, 0x08, 0xf3, 0x21, 0xf3, 0xef, 0x03, 0xf3, 0x21,
  0x14, 0xfd, 0xfa, 0x00, 0xe4, 0xf0, 0xfc, 0xe8, 0x1b, 0x09, 0x12, 0x0f,
  0xfe, 0xd8, 0xf3, 0xf4, 0x1d, 0x18, 0x14, 0x05, 0xdc, 0xf2, 0x26, 0xd7,
  0x25, 0x09, 0xf4, 0x08, 0x09, 0x05, 0x0f, 0x01, 0x13, 0x1e, 0x13, 0x05,
  0x0c, 0x0a, 0x00, 0x05, 0x07, 0xfc, 0xec, 0xfb, 0xfa, 0x0c, 0x03, 0x22,
  0x05, 0x08, 0x06, 0x0a, 0x20, 0xf3, 0x11, 0x08, 0x08, 0x17, 0xe9, 0x14,
  0x08, 0x06, 0x04, 0x07, 0x18, 0x06, 0xf3, 0x1d, 0x1f, 0x03, 0xec, 0x14,
  0x1b, 0xf8, 0xf9, 0x17, 0xf6, 0x08, 0xf4, 0xfc, 0x2f, 0xfa, 0x0d, 0x13,
  0xf7, 0xdf, 0xf8, 0x06, 0x1b, 0xf5, 0x11, 0x10, 0xed, 0xdf, 0xed, 0x06,
  0x13, 0x00, 0xf3, 0xf6, 0xe4, 0xe7, 0xe1, 0x2a, 0x37, 0xea, 0x24, 0x0a,
  0x10, 0xf6, 0xf6, 0x24, 0x4a, 0xf7, 0xfc, 0x21, 0xf7, 0x1e, 0xdd, 0xff,
  0x44, 0xff, 0xe7, 0x16, 0xdf, 0x11, 0xc0, 0xf5, 0x43, 0xfd, 0xee, 0x27,
  0xf1, 0xfe, 0xbc, 0x06, 0x2c, 0x06, 0x08, 0x13, 0x02, 0xe1, 0xee, 0xf6,
  0x18, 0x0a, 0x23, 0x14, 0x10, 0xe8, 0xfc, 0x21, 0x1c, 0x0e, 0xfd, 0x07,
  0x0b, 0xd8, 0xe7, 0x1a, 0xff, 0x02, 0xf4, 0xf4, 0xfc, 0xed, 0xfd, 0xe6,
  0x33, 0x04, 0xf8, 0x00, 0xfe, 0xe2, 0xfc, 0xeb, 0x2a, 0xfb, 0x0b, 0x0e,
  0xe6, 0xec, 0x01, 0x05, 0x32, 0x09, 0x07, 0xff, 0xe4, 0x02, 0xf5, 0xf4,
  0x21, 0xf9, 0xed, 0xf8, 0x0d, 0xd6, 0x08, 0xe6, 0xf6, 0x11, 0x03, 0xf6,
  0x10, 0xfc, 0x00, 0x18, 0x07, 0xee, 0x0c, 0xe6, 0x0d, 0xfa, 0xf9, 0x15,
  0xe3, 0xf8, 0xed, 0x1c, 0x0b, 0x08, 0xff, 0x14, 0x1f, 0x08, 0xcf, 0x19,
  0x42, 0xe7, 0xf1, 0x18, 0x1a, 0x03, 0xeb, 0x0f, 0xf9, 0xd5, 0x01, 0x02,
  0x3b, 0xf8, 0x05, 0xf5, 0x08, 0xdd, 0xef, 0xf2, 0x2b, 0x06, 0x19, 0x0a,
  0xfa, 0xe1, 0xfc, 0x16, 0x15, 0x04, 0xf8, 0xed, 0xe7, 0xf3, 0xec, 0x3f,
  0x24, 0x08, 0x15, 0xfd, 0xf8, 0xfa, 0xf9, 0x18, 0x69, 0xfd, 0x00, 0x0a,
  0xf7, 0x0e, 0xf3, 0x17, 0x43, 0x01, 0xf9, 0x32, 0xea, 0x16, 0xbe, 0x08,
  0x4b, 0xf0, 0x06, 0x35, 0xed, 0xff, 0xd3, 0x10, 0x2c, 0x0a, 0x0f, 0x0f,
  0xf1, 0xee, 0xe2, 0x16, 0x04, 0x09, 0xfe, 0xf5, 0xf5, 0xea, 0x03, 0xfa,
  0x10, 0x05, 0x0d, 0xfc, 0xd3, 0xe1, 0x0c, 0xff, 0x1a, 0xf4, 0xf2, 0xfb,
  0xea, 0xdd, 0x01, 0x06, 0x0e, 0x05, 0x20, 0xfc, 0xff, 0xf6, 0xec, 0xed,
  0x1d, 0xfc, 0xe4, 0x01, 0xef, 0xee, 0xfd, 0xed, 0x27, 0xf8, 0x0f, 0x14,
  0x00, 0xea, 0x10, 0xe0, 0x12, 0xfd, 0xeb, 0x05, 0x0e, 0xd9, 0x13, 0x22,
  0xf9, 0xf9, 0xee, 0xe9, 0x05, 0xfc, 0xf6, 0xee, 0x00, 0x06, 0xe8, 0xee,
  0x0e, 0xeb, 0x1a, 0x11, 0xf6, 0x00, 0xf9, 0x12, 0x05, 0xfc, 0x08, 0x0a,
  0x38, 0x0d, 0xea, 0x08, 0x2b, 0x04, 0x09, 0x31, 0x26, 0x10, 0xf0, 0x26,
  0x05, 0xdc, 0xf8, 0xf1, 0x3c, 0xf6, 0xf0, 0x1a, 0xf8, 0xea, 0x07, 0x07,
  0x3a, 0x06, 0x20, 0x07, 0x0a, 0xe1, 0x01, 0x20, 0x05, 0xf8, 0x14, 0xfb,
  0xfa, 0xde, 0x00, 0x2b, 0x29, 0xf6, 0x12, 0x0a, 0x0c, 0x13, 0xe5, 0x2f,
  0x58, 0xfd, 0x06, 0x1c, 0x03, 0x1e, 0xd7, 0x12, 0x43, 0x10, 0x1f, 0x12,
  0x08, 0x0a, 0xc8, 0xf4, 0x35, 0x04, 0x0a, 0x16, 0xff, 0xee, 0xce, 0x01,
  0x39, 0x17, 0x0b, 0x14, 0xdf, 0x01, 0x0b, 0x0f, 0x10, 0x01, 0x08, 0xee,
  0xe9, 0xd6, 0xf5, 0xed, 0x23, 0xe8, 0x0d, 0xf8, 0xea, 0xe5, 0x02, 0xf5,
  0x1d, 0x01, 0xfc, 0xeb, 0xe2, 0xe7, 0xea, 0x15, 0x11, 0x02, 0x02, 0xef,
  0x0b, 0xe6, 0xf3, 0x04, 0x29, 0x04, 0xd4, 0xf9, 0x00, 0xe1, 0xfe, 0x06,
  0x1a, 0x03, 0xfe, 0x0b, 0x00, 0xd1, 0x0f, 0x03, 0x23, 0x0d, 0xe5, 0xf7,
  0x1c, 0xf7, 0x0b, 0xfa, 0xf7, 0x05, 0xe3, 0xf9, 0xf7, 0xd5, 0xef, 0xfd,
  0xfd, 0x07, 0xdd, 0xf5, 0x1d, 0xdf, 0x06, 0x16, 0xfe, 0x04, 0xe6, 0x0d,
  0xfb, 0xee, 0xd1, 0x0c, 0x34, 0x00, 0xf0, 0x00, 0x42, 0xf9, 0xf7, 0x27,
  0x36, 0x1c, 0xed, 0x1f, 0x0d, 0xfa, 0x13, 0xf9, 0x33, 0x0b, 0xfc, 0x12,
  0xf3, 0xea, 0xfb, 0x0b, 0x29, 0x12, 0x0f, 0x05, 0xf4, 0xed, 0x17, 0x1a,
  0x13, 0x05, 0xfa, 0xee, 0xf9, 0xea, 0xef, 0x3e, 0x1a, 0xfc, 0xfc, 0x07,
  0xf8, 0x03, 0xf6, 0x2e, 0x4c, 0xeb, 0x0b, 0xf7, 0x09, 0xf8, 0xf7, 0x17,
  0x60, 0xf6, 0xfc, 0x35, 0xd6, 0x02, 0xc5, 0x11, 0x50, 0xf0, 0x06, 0x22,
  0xe1, 0x04, 0xe1, 0x01, 0x4f, 0x0b, 0xf5, 0x26, 0xf6, 0xf1, 0xe0, 0x25,
  0x27, 0xff, 0x09, 0xef, 0xf3, 0xd8, 0xfc, 0xf8, 0x1a, 0xfd, 0x02, 0xf7,
  0xf4, 0xf5, 0x05, 0x00, 0x1a, 0xf4, 0x07, 0xec, 0xec, 0xd9, 0x08, 0x0a,
  0x0c, 0xf9, 0xf8, 0xfa, 0x11, 0xdd, 0xed, 0x12, 0x30, 0xfa, 0xe5, 0x03,
  0xff, 0xd2, 0x1a, 0x16, 0x21, 0x0c, 0xda, 0x03, 0xfe, 0xcf, 0x01, 0x14,
  0x0d, 0xff, 0xd4, 0xfc, 0x1d, 0xe4, 0x0a, 0xfe, 0x08, 0xfa, 0xee, 0x08,
  0x0e, 0xf3, 0x14, 0x13, 0x08, 0xff, 0xd3, 0x03, 0x21, 0xe9, 0xf0, 0x10,
  0x33, 0x15, 0xe1, 0xfc, 0xf8, 0xf3, 0xe3, 0x0d, 0x3c, 0x04, 0xe6, 0x11,
  0x2a, 0x0b, 0x04, 0x2b, 0x30, 0x01, 0xe5, 0x22, 0x19, 0xe1, 0x05, 0xfa,
  0x37, 0x0a, 0xed, 0x17, 0x15, 0xda, 0xff, 0xff, 0x28, 0x0e, 0xf8, 0xf9,
  0x0f, 0xd8, 0x1d, 0x2b, 0x0d, 0xf8, 0xe5, 0xf3, 0x00, 0x03, 0x17, 0x47,
  0x2e, 0xf3, 0xe3, 0x15, 0x11, 0xf3, 0x02, 0x1f, 0x45, 0xf4, 0xe3, 0x0c,
  0x16, 0x08, 0xd3, 0x16, 0x46, 0x12, 0xf1, 0x2a, 0xf2, 0xfe, 0xd3, 0x06,
  0x66, 0xf5, 0xf2, 0x31, 0xfd, 0x02, 0xe9, 0x0a, 0x4f, 0xf1, 0xf5, 0x1a,
  0x17, 0xe6, 0xfd, 0x10, 0x29, 0xfd, 0x0b, 0xfe, 0xea, 0xec, 0x06, 0xda,
  0x38, 0xfc, 0xf7, 0xf8, 0xea, 0xcb, 0xef, 0xff, 0x05, 0xf3, 0x05, 0xe8,
  0xf3, 0xde, 0x07, 0x02, 0x1b, 0xf8, 0xf8, 0xf9, 0xf1, 0xdd, 0xf2, 0x17,
  0x2a, 0xf8, 0xeb, 0xf9, 0xfc, 0xbf, 0x13, 0x0e, 0x1d, 0x06, 0xf9, 0xfa,
  0x01, 0xdb, 0xf6, 0x08, 0x20, 0xee, 0xd3, 0xf2, 0xef, 0xe4, 0x28, 0xde,
  0xfc, 0x10, 0xe6, 0xe5, 0x19, 0xf5, 0x1b, 0x0c, 0xfd, 0xfc, 0xdb, 0xfc,
  0x20, 0xd8, 0xd8, 0x06, 0x08, 0x1a, 0xfe, 0x0b, 0xe8, 0xf0, 0xf7, 0x07,
  0x41, 0x14, 0xea, 0x0f, 0x27, 0xdb, 0x05, 0x23, 0x2f, 0xf5, 0xee, 0x00,
  0x15, 0xd3, 0x01, 0xff, 0x2f, 0x17, 0xfa, 0x02, 0x01, 0xd4, 0xf7, 0x11,
  0x1f, 0x13, 0xf7, 0xfb, 0x17, 0xec, 0xee, 0x30, 0x17, 0xf2, 0xf4, 0xe4,
  0x17, 0xec, 0x0a, 0x4e, 0x2c, 0x02, 0xe2, 0xf8, 0x1b, 0xeb, 0xee, 0x1c,
  0x42, 0xfd, 0xfa, 0x0f, 0x01, 0x0f, 0xe5, 0x09, 0x59, 0x00, 0x19, 0x32,
  0x01, 0x04, 0xcc, 0x00, 0x5c, 0xfc, 0xed, 0x3c, 0xed, 0xe6, 0xce, 0x10,
  0x48, 0xf6, 0x15, 0x0f, 0x0f, 0xd7, 0xfc, 0xfc, 0x12, 0x0b, 0xed, 0xfa,
  0xf1, 0xd3, 0xf0, 0xea, 0x27, 0xfe, 0xf5, 0x04, 0xef, 0xe6, 0x0f, 0x11,
  0x1d, 0xf7, 0xeb, 0xef, 0xeb, 0xcf, 0x12, 0x16, 0x23, 0xef, 0xf3, 0xf6,
  0xf0, 0xba, 0xe6, 0xf9, 0x21, 0x0e, 0xf4, 0x01, 0x03, 0xc7, 0x01, 0xf8,
  0x12, 0x08, 0xd9, 0xf5, 0xeb, 0xbf, 0x0a, 0x05, 0x07, 0xf6, 0xe5, 0xf9,
  0x0c, 0xc3, 0x09, 0xea, 0x17, 0x0d, 0xec, 0xf1, 0xfe, 0xd1, 0xfb, 0xe6,
  0x14, 0xf5, 0xf8, 0x0b, 0x22, 0xec, 0xfb, 0x00, 0xf3, 0x1c, 0xea, 0x09,
  0x01, 0xea, 0xf1, 0x0f, 0x3b, 0xf7, 0xcb, 0x0d, 0x21, 0xec, 0xf3, 0x1b,
  0x24, 0xf0, 0xd4, 0x34, 0x0e, 0xdc, 0xed, 0xf6, 0x37, 0x10, 0xf2, 0x20,
  0x13, 0xf1, 0xf3, 0xfd, 0x27, 0x16, 0x1a, 0xfe, 0x02, 0xe5, 0x1e, 0x1e,
  0x1a, 0xfc, 0x09, 0xec, 0x11, 0x0a, 0xe9, 0x3e, 0x25, 0xee, 0xfc, 0xee,
  0x08, 0xf4, 0xf6, 0x1f, 0x4f, 0xfa, 0xfa, 0x1e, 0x0e, 0x13, 0xe6, 0x01,
  0x57, 0x0a, 0x06, 0x2c, 0xe9, 0x12, 0xc0, 0xff, 0x5f, 0xfe, 0xfc, 0x3a,
  0xdd, 0xd7, 0xcd, 0x07, 0x31, 0x00, 0xf3, 0x0a, 0x01, 0xca, 0xeb, 0x11,
  0x35, 0xf8, 0xef, 0xe6, 0xfe, 0xc5, 0xeb, 0xde, 0x2c, 0xf8, 0xf6, 0xf2,
  0x05, 0xe3, 0xfb, 0x07, 0x17, 0xf0, 0xfa, 0xee, 0xf3, 0xcc, 0x01, 0x0b,
  0x26, 0xf6, 0xe2, 0xdf, 0xee, 0xcc, 0xf9, 0x00, 0x25, 0xfa, 0xde, 0x08,
  0xe8, 0xd3, 0x14, 0x01, 0x36, 0xf7, 0xf1, 0xe5, 0xfb, 0xc3, 0x13, 0x13,
  0x01, 0xf8, 0xcf, 0xee, 0x0c, 0xdb, 0x0a, 0xf6, 0x06, 0xf8, 0xf8, 0xea,
  0xf1, 0xdc, 0x01, 0xfb, 0x02, 0xf1, 0xe0, 0xde, 0x21, 0xe1, 0x1e, 0x18,
  0x2f, 0x00, 0xff, 0x02, 0xfb, 0xfa, 0xf1, 0xf4, 0x4b, 0xf5, 0xe2, 0x1b,
  0x17, 0xea, 0xde, 0x0f, 0x0e, 0xef, 0xe0, 0x1d, 0xff, 0xd3, 0x0b, 0x00,
  0x3e, 0xf2, 0x01, 0xee, 0x03, 0xe8, 0x0b, 0xff, 0x25, 0x02, 0xf2, 0x09,
  0xfc, 0xc6, 0xf6, 0x14, 0x21, 0xff, 0x02, 0xef, 0x11, 0xea, 0xf7, 0x57,
  0x2f, 0xee, 0x09, 0xfc, 0x0c, 0xfe, 0xfd, 0x31, 0x37, 0xee, 0x04, 0x09,
  0xfb, 0x0c, 0xcd, 0x03, 0x50, 0xf8, 0x20, 0x31, 0xe7, 0xf4, 0xf5, 0xf9,
  0x56, 0x06, 0x02, 0x24, 0xf1, 0x06, 0xf3, 0x05, 0x46, 0xff, 0xe6, 0xfe,
  0x11, 0xcf, 0x00, 0x09, 0x23, 0x13, 0xed, 0xfa, 0x00, 0xd4, 0xf9, 0xed,
  0x27, 0xee, 0xe9, 0xd8, 0xe8, 0xdc, 0xf5, 0x00, 0xf7, 0xf2, 0xfd, 0xf0,
  0xe2, 0xbf, 0xfc, 0x07, 0x2b, 0x01, 0x00, 0x02, 0xf4, 0xbd, 0xf2, 0x0c,
  0x22, 0x08, 0xde, 0x05, 0xfc, 0xd7, 0x18, 0x20, 0x2e, 0xf9, 0xcc, 0xf5,
  0xf0, 0xbd, 0x0d, 0x14, 0x17, 0x05, 0xd7, 0xf5, 0x08, 0xcd, 0x00, 0xe9,
  0xf4, 0xf4, 0xe4, 0xe1, 0xda, 0xf2, 0x09, 0x03, 0xfa, 0x07, 0xba, 0x02,
  0x31, 0xd1, 0xf0, 0x1d, 0x25, 0x0a, 0x10, 0xfb, 0xfc, 0xf2, 0xff, 0xf7,
  0x49, 0xf9, 0xe3, 0x0e, 0x1c, 0xf7, 0xe8, 0x20, 0x17, 0xf5, 0xf7, 0x16,
  0x0a, 0xdd, 0x0e, 0xfd, 0x37, 0x04, 0x1c, 0x10, 0xfe, 0xf2, 0x07, 0xf9,
  0x2e, 0x12, 0x01, 0xfc, 0x00, 0xcc, 0x02, 0x1c, 0x0f, 0xeb, 0xfc, 0xf5,
  0x0e, 0xef, 0xfd, 0x4c, 0x34, 0x05, 0xd6, 0x05, 0xfb, 0x0a, 0xf7, 0x24,
  0x41, 0xe6, 0xdd, 0xfc, 0x02, 0xf6, 0xda, 0x1e, 0x4a, 0x06, 0x1a, 0x1b,
  0xfa, 0x13, 0xd6, 0xff, 0x50, 0x0c, 0xfd, 0x3f, 0xe0, 0xff, 0xda, 0xfa,
  0x3f, 0xf0, 0x01, 0x0b, 0x03, 0xe7, 0x0c, 0x0c, 0x1a, 0x0f, 0x0e, 0x05,
  0xfb, 0xe0, 0xf6, 0xfa, 0x0f, 0xed, 0xf9, 0xff, 0xdb, 0xda, 0xe6, 0xef,
  0x04, 0x01, 0xe0, 0xdb, 0xf4, 0xbf, 0x06, 0x0b, 0x2c, 0xdf, 0xdf, 0x01,
  0x01, 0xde, 0x12, 0xfe, 0x19, 0x04, 0xd5, 0xf2, 0xf4, 0xb3, 0x09, 0x09,
  0x1c, 0xf6, 0xf5, 0xeb, 0x00, 0xcd, 0x0e, 0xfc, 0xe9, 0xf1, 0xef, 0xdd,
  0x00, 0xc7, 0x10, 0xfc, 0x0a, 0xed, 0xda, 0xe2, 0xdb, 0xdf, 0xf9, 0x0e,
  0xf4, 0x01, 0xd6, 0x09, 0x36, 0xdf, 0x0b, 0x02, 0x0c, 0x05, 0xdc, 0x0f,
  0xf8, 0xcc, 0xe9, 0x03, 0x3e, 0xea, 0xe2, 0x09, 0x13, 0xfa, 0xde, 0x14,
  0x29, 0xf2, 0xd2, 0x06, 0x09, 0xe9, 0x10, 0xf7, 0x4e, 0xe2, 0xed, 0x05,
  0x0b, 0xf4, 0xe4, 0x03, 0x1d, 0x07, 0x21, 0x20, 0x13, 0xe2, 0xf3, 0x05,
  0x15, 0xe4, 0xef, 0xf0, 0x25, 0xf8, 0xf1, 0x65, 0x27, 0xe5, 0xf8, 0x0d,
  0x06, 0xfa, 0xed, 0x24, 0x4e, 0xfc, 0xf0, 0xff, 0x00, 0xf6, 0xe4, 0x02,
  0x44, 0x18, 0xff, 0x13, 0xf6, 0x16, 0xff, 0x0c, 0x4c, 0x14, 0xfc, 0x1f,
  0xe8, 0xfc, 0xec, 0x00, 0x39, 0xf8, 0x18, 0x02, 0xff, 0xda, 0xfd, 0x00,
  0x26, 0xf9, 0x12, 0xe3, 0xf9, 0xe2, 0xf8, 0xf4, 0x16, 0x08, 0xdb, 0xf6,
  0xe6, 0xc5, 0xef, 0xfa, 0xfa, 0xf0, 0xfe, 0xf0, 0xdc, 0xe2, 0xfd, 0x11,
  0x39, 0xf1, 0xf0, 0xf5, 0xf3, 0xb5, 0xf8, 0x1c, 0x35, 0x0b, 0xe0, 0xf7,
  0x17, 0xcf, 0x14, 0x12, 0x2e, 0xfe, 0xe3, 0xe9, 0xf4, 0xc0, 0x06, 0x04,
  0x01, 0xf7, 0xf0, 0xc9, 0x0a, 0xcc, 0xfc, 0xf3, 0x1b, 0xf3, 0xd7, 0xff,
  0xe8, 0xda, 0x09, 0xe7, 0x0f, 0xe5, 0xf1, 0xe8, 0x35, 0xe2, 0xfc, 0x16,
  0xf8, 0x1b, 0xe9, 0x15, 0x0c, 0xdc, 0xeb, 0xf1, 0x5a, 0xe4, 0xfd, 0xee,
  0x27, 0xef, 0xee, 0x26, 0x1e, 0x01, 0x03, 0x08, 0x16, 0xf0, 0xef, 0xfc,
  0x50, 0xfa, 0xd4, 0xef, 0x0f, 0xf3, 0xfb, 0x03, 0x1c, 0x0e, 0x05, 0x23,
  0x13, 0xdf, 0xfe, 0x22, 0x0b, 0x00, 0x17, 0xfd, 0x07, 0xf9, 0x01, 0x49,
  0x25, 0x12, 0xed, 0xfb, 0xf1, 0x0d, 0xf2, 0x21, 0x32, 0xd7, 0xf2, 0x14,
  0x06, 0xfc, 0x04, 0x0d, 0x3c, 0xff, 0x22, 0x0c, 0xf0, 0x1b, 0xed, 0x04,
  0x58, 0x11, 0x13, 0x27, 0xed, 0xf5, 0xf4, 0xfd, 0x49, 0xfc, 0x12, 0xfb,
  0xfe, 0xd4, 0x07, 0x13, 0x1b, 0x1a, 0x16, 0xdf, 0xee, 0xdf, 0xfd, 0xfb,
  0x28, 0x0f, 0xe6, 0xea, 0xef, 0xcc, 0xf9, 0xed, 0x10, 0xeb, 0xe5, 0xef,
  0xd7, 0xd9, 0xfd, 0x10, 0x25, 0xf8, 0xea, 0xe6, 0xea, 0xc6, 0x22, 0x13,
  0x27, 0xfe, 0xeb, 0xf5, 0x0e, 0xba, 0x12, 0x12, 0x22, 0x02, 0xec, 0xf1,
  0x0f, 0xc1, 0xfa, 0x11, 0x1d, 0xff, 0xc6, 0xf4, 0x13, 0xd5, 0x09, 0xd6,
  0xf4, 0xfc, 0xcd, 0xee, 0xec, 0xdd, 0x09, 0x18, 0xfb, 0x03, 0xdb, 0x05,
  0x20, 0xda, 0x0b, 0x11, 0x02, 0xf3, 0xce, 0xf9, 0x05, 0xeb, 0xdf, 0x0a,
  0x50, 0xf2, 0xd3, 0xe7, 0x0e, 0xe5, 0xe2, 0x0f, 0x23, 0xe4, 0xf6, 0xec,
  0x01, 0xf9, 0x19, 0x0f, 0x44, 0x10, 0xe9, 0xf0, 0x06, 0xe3, 0xe1, 0xf8,
  0x1e, 0x0d, 0x1c, 0x02, 0xfe, 0xf2, 0x25, 0x19, 0x1f, 0x09, 0xf9, 0xda,
  0x06, 0xf8, 0xfc, 0x46, 0x34, 0xea, 0xe9, 0xff, 0xf2, 0x0c, 0x01, 0x29,
  0x3b, 0xf1, 0xed, 0xf4, 0xf0, 0x10, 0xdb, 0x2e, 0x59, 0xf4, 0x19, 0x27,
  0xfa, 0xf7, 0xfb, 0x09, 0x63, 0x10, 0x14, 0x05, 0xdf, 0x05, 0xf9, 0x00,
  0x37, 0x11, 0xf9, 0x0d, 0x0e, 0xf0, 0x15, 0x26, 0x25, 0x0a, 0x11, 0xec,
  0xe6, 0xdc, 0x17, 0xfc, 0x0d, 0xfe, 0x0d, 0xef, 0xea, 0xe5, 0xf4, 0x04,
  0x00, 0xfc, 0x03, 0xdf, 0xe7, 0xdd, 0xfe, 0x0f, 0x38, 0xfd, 0xef, 0xf0,
  0xf3, 0xdb, 0xfc, 0x07, 0x31, 0xf8, 0xf5, 0xf4, 0xff, 0xc8, 0x17, 0x0e,
  0x31, 0xf5, 0xff, 0xd3, 0xe4, 0xcb, 0x07, 0xfc, 0x0e, 0xff, 0xd5, 0xe3,
  0x13, 0xcc, 0x05, 0xf8, 0xfe, 0x07, 0xec, 0xe5, 0xfd, 0xd5, 0x02, 0x11,
  0xff, 0xff, 0xe0, 0x00, 0x1e, 0xd4, 0xfd, 0x10, 0x1e, 0x0b, 0xf5, 0xfc,
  0xf8, 0xdc, 0xe4, 0xf0, 0x53, 0xf9, 0xdc, 0xfe, 0x0d, 0x16, 0xeb, 0x06,
  0x13, 0xf0, 0xf7, 0xfb, 0xfc, 0xf7, 0x04, 0x0c, 0x32, 0xf4, 0x06, 0x24,
  0x0a, 0xe7, 0xf9, 0xeb, 0x1b, 0x08, 0xfe, 0x12, 0x07, 0xdc, 0x01, 0x12,
  0x06, 0x06, 0x1f, 0x11, 0x19, 0x02, 0x06, 0x40, 0x35, 0xdd, 0xfe, 0xf8,
  0xf6, 0x0d, 0xe9, 0x29, 0x3b, 0xf8, 0xdc, 0x27, 0xf8, 0xf3, 0xed, 0x11,
  0x38, 0xff, 0xfa, 0x01, 0xdb, 0xfb, 0x0a, 0xfe, 0x47, 0x0e, 0x09, 0x1a,
  0xf6, 0x06, 0x07, 0x09, 0x2c, 0x09, 0x0b, 0x02, 0x09, 0xf3, 0x23, 0x15,
  0x18, 0xf2, 0x0e, 0xea, 0xed, 0xd4, 0x08, 0x02, 0x18, 0xf4, 0xee, 0xec,
  0xf5, 0xca, 0xf2, 0xfc, 0xff, 0x00, 0x0c, 0xd2, 0xe9, 0xdb, 0x07, 0x01,
  0x1f, 0xec, 0xec, 0xe3, 0xfe, 0xc9, 0xf6, 0x0f, 0x30, 0x09, 0x0c, 0xf3,
  0xf4, 0xee, 0x0e, 0x15, 0x16, 0x04, 0x03, 0xcd, 0xfd, 0xbf, 0xf6, 0x0f,
  0x0b, 0xfd, 0xe3, 0xe6, 0x03, 0xdf, 0x07, 0xef, 0x24, 0xfb, 0xe0, 0xe6,
  0x02, 0xfb, 0x07, 0x02, 0x15, 0xfc, 0xdf, 0x02, 0x38, 0xdc, 0x24, 0xf8,
  0x27, 0xec, 0xe7, 0x0e, 0x06, 0xe6, 0xd0, 0x02, 0x15, 0xd3, 0xf5, 0xde,
  0x15, 0xd5, 0x08, 0x19, 0x3a, 0xdd, 0xdd, 0xee, 0x02, 0x0a, 0x05, 0x11,
  0x2c, 0xdb, 0xf1, 0xf3, 0xff, 0xf5, 0x00, 0xf5, 0x0c, 0x23, 0x0b, 0x0e,
  0xff, 0xd1, 0x03, 0x01, 0x07, 0x0b, 0x0e, 0xeb, 0x16, 0x0b, 0xf5, 0x5a,
  0x3e, 0xf3, 0xdd, 0xf7, 0x08, 0x02, 0x0b, 0x1f, 0x48, 0xee, 0xf7, 0x13,
  0xfc, 0xfc, 0xe8, 0x05, 0x52, 0xfc, 0x05, 0x0c, 0xe1, 0x06, 0x01, 0xfc,
  0x50, 0x0e, 0xfc, 0x27, 0x04, 0xe8, 0x07, 0x07, 0x3e, 0x00, 0x22, 0xf1,
  0x0c, 0xee, 0x02, 0x0c, 0x06, 0x15, 0xf6, 0xf9, 0xe6, 0xdf, 0x05, 0xf6,
  0x0f, 0x07, 0x0d, 0xf4, 0xe8, 0xcf, 0xf1, 0x0a, 0xff, 0xe3, 0xd9, 0xe6,
  0xed, 0xd6, 0xe9, 0x1a, 0x1f, 0xee, 0xf5, 0xeb, 0x0a, 0xf0, 0x04, 0xff,
  0x2c, 0x10, 0xe4, 0xdd, 0x00, 0xd3, 0x04, 0x05, 0x20, 0x01, 0x02, 0xe2,
  0x0e, 0xd9, 0x0b, 0x11, 0x22, 0x01, 0x04, 0xea, 0x1a, 0xca, 0xed, 0xed,
  0xfc, 0xfb, 0xe1, 0xe6, 0x06, 0xd5, 0xf7, 0x01, 0xf4, 0xfa, 0xdb, 0xf3,
  0x18, 0xfb, 0x0b, 0x03, 0x07, 0xcf, 0xfc, 0xf6, 0x03, 0xe3, 0xff, 0xf7,
  0x32, 0xd6, 0xf4, 0x01, 0x09, 0xf4, 0xe5, 0x0d, 0x27, 0xe7, 0xfe, 0x0f,
  0xff, 0x04, 0xeb, 0x1c, 0x34, 0xd9, 0xf3, 0x07, 0x15, 0xf7, 0xee, 0xfe,
  0x17, 0x16, 0xf2, 0x26, 0x02, 0x06, 0xf3, 0xf3, 0xf3, 0x0a, 0xf6, 0xfc,
  0x08, 0x05, 0x0b, 0x47, 0x1e, 0xf2, 0x0a, 0x11, 0x01, 0x12, 0x06, 0x28,
  0x33, 0xe3, 0x03, 0x31, 0x00, 0xff, 0xec, 0x07, 0x46, 0x0f, 0xfc, 0x19,
  0xe7, 0x04, 0xf6, 0x0e, 0x3c, 0x1e, 0x0f, 0x25, 0x05, 0xf1, 0xfd, 0x0e,
  0x37, 0xfc, 0x0c, 0x06, 0xf9, 0xeb, 0x21, 0x11, 0x1f, 0x07, 0xed, 0xf9,
  0x07, 0xe5, 0x08, 0x17, 0x04, 0xf4, 0xeb, 0xdc, 0xff, 0xf8, 0xf1, 0xfb,
  0xfe, 0xf4, 0xf6, 0xe0, 0xe1, 0xd5, 0xef, 0x24, 0x23, 0xda, 0xf2, 0xec,
  0x16, 0xcc, 0xff, 0xfc, 0x3d, 0x07, 0xe1, 0xc4, 0x05, 0xcf, 0x07, 0xfe,
  0x08, 0xfe, 0xe6, 0xe0, 0x05, 0xef, 0xeb, 0x16, 0x0d, 0xf7, 0x00, 0xea,
  0x21, 0xe1, 0xf6, 0xe6, 0xec, 0x06, 0xf6, 0xe2, 0x02, 0xfd, 0xfd, 0x0e,
  0xeb, 0xe8, 0xed, 0xef, 0x1e, 0xd6, 0x1c, 0x07, 0xfa, 0xc8, 0xeb, 0xe0,
  0x17, 0xfb, 0xca, 0x0b, 0x30, 0xec, 0xc7, 0xe8, 0x25, 0xe5, 0xcf, 0xf8,
  0x35, 0xd1, 0xe9, 0xe7, 0x11, 0xe3, 0xe1, 0x0c, 0x2e, 0xbf, 0x07, 0x0a,
  0xf5, 0x04, 0x03, 0xfc, 0xf7, 0x0a, 0xf5, 0x0f, 0xf8, 0xf5, 0xf1, 0xf6,
  0x05, 0xf6, 0xf0, 0xf2, 0x0d, 0x10, 0xef, 0x39, 0x15, 0xef, 0xdf, 0xeb,
  0x0b, 0x1e, 0xf5, 0x1f, 0x41, 0xdf, 0xdb, 0xfb, 0xe3, 0xfc, 0x01, 0x00,
  0x35, 0x26, 0xf6, 0x07, 0xef, 0xef, 0x1b, 0xed, 0x2a, 0x0c, 0xfc, 0xfb,
  0xf1, 0xf7, 0x07, 0xef, 0x29, 0x12, 0xe5, 0x0a, 0xfa, 0x03, 0x04, 0xf4,
  0x17, 0xfb, 0xff, 0x14, 0xfc, 0xf2, 0xfd, 0x0d, 0x0d, 0xf7, 0xf2, 0xee,
  0xfd, 0xf2, 0x07, 0x05, 0x06, 0xf5, 0xdd, 0xe8, 0x08, 0xe1, 0xeb, 0x20,
  0x0f, 0xdb, 0xf6, 0x0c, 0x02, 0xe6, 0xe0, 0x02, 0x32, 0xff, 0xd4, 0xec,
  0x06, 0xc9, 0xe2, 0xe8, 0x07, 0x03, 0xfb, 0x0b, 0x13, 0xf6, 0xf5, 0x06,
  0x0f, 0xf3, 0xca, 0xff, 0x24, 0xfa, 0xe7, 0xf5, 0xf4, 0xec, 0xd5, 0xf6,
  0xf3, 0xcc, 0xe3, 0x0a, 0xee, 0xed, 0xe9, 0xfe, 0x14, 0x0b, 0x0d, 0x0d,
  0xd6, 0xc1, 0xea, 0x03, 0x2f, 0xd0, 0x07, 0x24, 0x1e, 0xcd, 0xda, 0xfc,
  0x23, 0xfd, 0x11, 0xff, 0x0e, 0xc4, 0xfd, 0x0a, 0x19, 0x1e, 0x00, 0x1c,
  0x1a, 0xde, 0x06, 0x09, 0x07, 0xf7, 0x05, 0xe4, 0xdb, 0xfb, 0x06, 0xe5,
  0x0d, 0xe4, 0xf7, 0x0f, 0xed, 0x00, 0xe2, 0xe0, 0x11, 0x0d, 0x1b, 0x1f,
  0x16, 0xd4, 0xfe, 0xff, 0xfc, 0x17, 0xfa, 0x2a, 0x3f, 0x01, 0x00, 0xfe,
  0xf5, 0x12, 0xf0, 0x0e, 0x48, 0xf3, 0x0f, 0x22, 0xef, 0x23, 0x11, 0xf8,
  0x31, 0xfd, 0x04, 0xf6, 0xfd, 0x14, 0x06, 0x18, 0x27, 0x00, 0xea, 0x07,
  0xe8, 0xf9, 0x0b, 0x0c, 0x0c, 0x15, 0x16, 0x0c, 0xf9, 0xfd, 0xd5, 0xdc,
  0xfe, 0xfc, 0xfc, 0x15, 0xf0, 0x0c, 0xef, 0xf3, 0xf7, 0xee, 0xd4, 0xf1,
  0xee, 0x01, 0x11, 0x0d, 0x19, 0xd7, 0xe2, 0xfd, 0xef, 0xeb, 0x0b, 0xe9,
  0x1b, 0xee, 0xf7, 0x14, 0xfd, 0xe9, 0x09, 0xd9, 0xfa, 0x0e, 0x04, 0xf0,
  0x1c, 0xf8, 0xee, 0x0b, 0x08, 0xf3, 0xdf, 0xf5, 0x10, 0xfa, 0xf8, 0xfa,
  0xe9, 0xf9, 0xff, 0x1c, 0x1b, 0xfe, 0xeb, 0xfb, 0xff, 0xed, 0x06, 0x07,
  0x10, 0x17, 0x0c, 0x1c, 0xe8, 0x01, 0x0c, 0x06, 0x19, 0x03, 0xff, 0xef,
  0x10, 0x14, 0x04, 0x1b, 0x0c, 0x08, 0xf1, 0xef, 0xfd, 0xfb, 0x01, 0x01,
  0xea, 0x18, 0x05, 0xec, 0xeb, 0x12, 0x17, 0x0e, 0x09, 0x05, 0x08, 0x1b,
  0x11, 0x13, 0x0c, 0x16, 0x06, 0xfd, 0x07, 0xf3, 0x06, 0x1d, 0xfa, 0x15,
  0x1b, 0x05, 0x07, 0x0d, 0xf3, 0x19, 0x18, 0x10, 0x20, 0xeb, 0x07, 0x16,
  0x08, 0xe8, 0xfd, 0x1c, 0xf3, 0x09, 0x10, 0xed, 0x0d, 0x01, 0x02, 0x0c,
  0xff, 0x09, 0x0d, 0x06, 0x12, 0xf1, 0x00, 0x14, 0x0f, 0xe3, 0x1d, 0xf7,
  0x06, 0x1c, 0xe6, 0x18, 0xf3, 0x0e, 0x09, 0xfb, 0x09, 0x11, 0x0c, 0x07,
  0x02, 0xfd, 0x04, 0xdb, 0x16, 0xe4, 0x11, 0x1a, 0xfb, 0x0c, 0x0e, 0x1e,
  0xf0, 0x25, 0xf1, 0x05, 0xfb, 0xe4, 0x15, 0xde, 0x01, 0xeb, 0x03, 0x03,
  0x01, 0xfb, 0x1f, 0xeb, 0xed, 0x0d, 0xfe, 0xfe, 0xf8, 0x00, 0x2c, 0x08,
  0xfd, 0xfd, 0x09, 0x10, 0xef, 0x20, 0x13, 0x01, 0xed, 0xf4, 0xf2, 0x0f,
  0xfc, 0xfc, 0x07, 0x13, 0x12, 0x01, 0xf3, 0xfd, 0x21, 0x0c, 0xea, 0x07,
  0x03, 0xf0, 0x01, 0x16, 0x00, 0x00, 0xf5, 0x02, 0x0b, 0x14, 0xf8, 0x18,
  0xeb, 0x01, 0xfc, 0xfa, 0x23, 0x09, 0x08, 0x03, 0xe4, 0xf8, 0x00, 0xe1,
  0x0e, 0x1a, 0x01, 0x05, 0x07, 0x02, 0x14, 0xf8, 0xe0, 0x32, 0x07, 0x05,
  0x05, 0xfb, 0x27, 0xda, 0x12, 0x0e, 0x19, 0x08, 0x0c, 0x11, 0xf3, 0xf5,
  0xfa, 0x07, 0x04, 0x11, 0xfc, 0x05, 0x0b, 0x05, 0x0c, 0x05, 0x17, 0xf3,
  0x14, 0x10, 0x27, 0x07, 0xf0, 0xf7, 0x16, 0x11, 0x01, 0x03, 0xf7, 0x0b,
  0xf5, 0x09, 0xe6, 0x0b, 0xf4, 0x15, 0xf9, 0xf9, 0x0c, 0x17, 0xed, 0x12,
  0x1c, 0xde, 0xfb, 0xfd, 0x19, 0x0d, 0x10, 0x09, 0xe8, 0x13, 0x0b, 0x07,
  0x12, 0xf7, 0xea, 0xef, 0x26, 0x0c, 0x07, 0xe9, 0xe8, 0x1c, 0x0a, 0xe9,
  0x08, 0x0c, 0x02, 0xf0, 0x04, 0x0d, 0xfe, 0x0a, 0x1b, 0x1c, 0x0d, 0x0c,
  0xf9, 0x0b, 0xfd, 0x02, 0x20, 0x10, 0x06, 0x10, 0xec, 0x02, 0x00, 0x0e,
  0x01, 0x12, 0x12, 0x0f, 0xe8, 0xfa, 0xf7, 0x03, 0x0b, 0xfb, 0x24, 0xfb,
  0xed, 0x15, 0x04, 0xff, 0xe4, 0x02, 0x07, 0x01, 0xf5, 0xf2, 0x01, 0x10,
  0xeb, 0xf8, 0xf7, 0xec, 0xf5, 0x0a, 0x04, 0x24, 0x00, 0xf8, 0x14, 0xff,
  0x0f, 0x01, 0xf0, 0x0f, 0x0e, 0xfd, 0xeb, 0x22, 0xfe, 0x2c, 0x27, 0x0b,
  0x29, 0xfd, 0x07, 0x0b, 0xee, 0x04, 0xf3, 0xef, 0x2b, 0x08, 0xf7, 0x30,
  0x07, 0xfd, 0x0a, 0xdd, 0x23, 0xdc, 0x0a, 0x2d, 0xf8, 0xfe, 0x21, 0xe3,
  0xff, 0xeb, 0x0d, 0x19, 0x00, 0x00, 0xf7, 0xf0, 0xfa, 0xfa, 0x08, 0x17,
  0xfc, 0x16, 0xe7, 0xf1, 0x02, 0x10, 0x1c, 0x0a, 0x06, 0x0b, 0xfa, 0xe2,
  0xf8, 0x03, 0xe5, 0xed, 0xda, 0xfa, 0xde, 0xf4, 0x03, 0x1e, 0x20, 0xe0,
  0x12, 0x07, 0x04, 0xfa, 0x0f, 0x15, 0x07, 0xe7, 0xfb, 0x09, 0x04, 0x09,
  0xf4, 0x09, 0xf7, 0xee, 0xf9, 0xf5, 0xf7, 0x25, 0xf8, 0x17, 0xf5, 0xec,
  0xff, 0x10, 0xf2, 0x17, 0xdd, 0x06, 0x1e, 0xf9, 0x01, 0x31, 0xf8, 0x15,
  0xf3, 0xf1, 0x08, 0x03, 0x08, 0x0b, 0x0f, 0x10, 0x0b, 0x1b, 0x24, 0x20,
  0xf4, 0x01, 0xd8, 0xf3, 0xed, 0x1e, 0x1a, 0x0f, 0xf5, 0x18, 0xe9, 0x1a,
  0xd0, 0x0f, 0x16, 0xee, 0xe1, 0x1e, 0xf5, 0xf1, 0xe2, 0xe4, 0xf9, 0xf6,
  0xf7, 0x0b, 0xe4, 0x03, 0xdc, 0xeb, 0x08, 0xf7, 0x02, 0xfe, 0x00, 0xf7,
  0x1a, 0xfc, 0x09, 0x10, 0xe7, 0x13, 0xf3, 0x12, 0xef, 0xec, 0xfb, 0x05,
  0xfb, 0x07, 0xf9, 0x14, 0x09, 0x12, 0xfb, 0x12, 0xf7, 0x19, 0xe7, 0xdd,
  0x3b, 0xd4, 0xf5, 0x4c, 0xd7, 0x16, 0x2d, 0xe7, 0x2c, 0x09, 0xf8, 0x5e,
  0xf1, 0x01, 0x16, 0xdb, 0x25, 0x0d, 0x1c, 0x23, 0xf9, 0xf8, 0xe2, 0xd8,
  0x27, 0x06, 0x26, 0x13, 0xf8, 0x1b, 0x05, 0xf8, 0xff, 0x04, 0x11, 0x00,
  0xe5, 0x17, 0xf3, 0xfc, 0xfc, 0xfa, 0xfa, 0x02, 0x07, 0x12, 0xf2, 0xef,
  0x09, 0xfd, 0xfc, 0xfb, 0xf8, 0xeb, 0x10, 0xee, 0xf3, 0x0e, 0x14, 0xde,
  0x08, 0xf2, 0x09, 0x00, 0xf1, 0x11, 0xdf, 0xe2, 0x00, 0x0b, 0xe1, 0x1b,
  0xec, 0xee, 0x10, 0xed, 0xfd, 0x1a, 0x10, 0x00, 0xef, 0x13, 0xf5, 0xf2,
  0x20, 0x08, 0xff, 0xf5, 0xe9, 0xf9, 0x0a, 0x06, 0x08, 0x14, 0xf8, 0x0a,
  0x14, 0xe9, 0x0f, 0xfd, 0xf6, 0x0e, 0x1d, 0xfc, 0x07, 0x01, 0x02, 0x01,
  0x09, 0x03, 0xf4, 0x00, 0xe9, 0x0a, 0x17, 0xe3, 0xdf, 0xfc, 0x05, 0x03,
  0xe1, 0x0e, 0x08, 0x05, 0xf4, 0x1f, 0xdb, 0xf9, 0x08, 0x10, 0x19, 0x00,
  0x02, 0xf9, 0x00, 0xe7, 0x16, 0xf2, 0xfe, 0x0b, 0xeb, 0xf6, 0xf7, 0x19,
  0xf4, 0x05, 0x1b, 0x11, 0x03, 0xf5, 0x06, 0x14, 0x1b, 0x18, 0x13, 0x20,
  0xfd, 0x16, 0x17, 0xeb, 0x3a, 0xec, 0x17, 0x40, 0xde, 0xf2, 0x06, 0xe1,
  0x47, 0xd4, 0x23, 0x48, 0xdf, 0x08, 0xdd, 0xef, 0x11, 0xeb, 0x02, 0x4c,
  0xf2, 0xf0, 0x0b, 0xd9, 0x15, 0xee, 0x07, 0x19, 0x16, 0x17, 0xfb, 0xdd,
  0x05, 0x1c, 0x04, 0xfb, 0x06, 0xf1, 0x08, 0xff, 0x0a, 0x19, 0xf3, 0x14,
  0xfa, 0x14, 0x20, 0xe9, 0x05, 0xec, 0x0f, 0xe9, 0xfa, 0x0b, 0xf0, 0x0f,
  0xef, 0x10, 0x01, 0xf4, 0x0f, 0xdd, 0xfb, 0x03, 0xf7, 0x25, 0xd1, 0xcf,
  0xd8, 0x03, 0x1a, 0x03, 0xf6, 0x01, 0xe8, 0xde, 0x00, 0xde, 0xde, 0x10,
  0xeb, 0x14, 0x03, 0xee, 0xf9, 0x04, 0xf8, 0x02, 0xe1, 0xfa, 0xe8, 0xff,
  0xf5, 0xfc, 0x0a, 0x04, 0x1d, 0xed, 0x25, 0x0e, 0xf3, 0xf4, 0xef, 0x10,
  0xfc, 0xfc, 0x36, 0xf8, 0xf8, 0xe5, 0xef, 0xee, 0xf4, 0x03, 0x10, 0x23,
  0xee, 0x11, 0xfd, 0x15, 0xf3, 0xf5, 0x09, 0xe7, 0xf9, 0x06, 0xf8, 0xf4,
  0x1a, 0x1b, 0x0b, 0x27, 0x03, 0xe3, 0x04, 0x0e, 0x1e, 0xfd, 0x0c, 0x11,
  0x0f, 0x04, 0xef, 0x06, 0xf9, 0xee, 0x22, 0x0a, 0x1c, 0xf5, 0x0b, 0x02,
  0x26, 0x15, 0x1e, 0x1e, 0xdb, 0x0b, 0x0a, 0xf2, 0x35, 0xe1, 0x26, 0x4a,
  0xdf, 0xfd, 0xef, 0xe1, 0x43, 0xfc, 0x02, 0x4a, 0xe7, 0x0d, 0xff, 0xe2,
  0x15, 0x10, 0x19, 0x34, 0xd3, 0xd7, 0x0a, 0xd8, 0x16, 0xf5, 0x11, 0x17,
  0xf4, 0xf3, 0x0f, 0xea, 0xf4, 0x02, 0x0f, 0x09, 0xe2, 0xfa, 0x00, 0xe6,
  0x15, 0xf1, 0x08, 0x0e, 0xfa, 0xf7, 0x0a, 0x05, 0x02, 0x0c, 0x08, 0x09,
  0x03, 0xec, 0x0d, 0xe4, 0xf0, 0x14, 0xf2, 0xc4, 0x14, 0xf4, 0xee, 0x2a,
  0xea, 0x10, 0xc9, 0xe6, 0xec, 0x08, 0xdd, 0x0f, 0xea, 0xf7, 0xfa, 0xd1,
  0x02, 0xf4, 0xe8, 0x18, 0xed, 0x01, 0x06, 0x07, 0x11, 0xfa, 0xe6, 0xfc,
  0xfc, 0xff, 0x1c, 0xf8, 0xf9, 0xed, 0xe0, 0x09, 0x0c, 0xe7, 0x21, 0x07,
  0xef, 0xe2, 0xf3, 0x11, 0x01, 0x04, 0x0f, 0x23, 0xe9, 0xe1, 0xf1, 0x05,
  0xdc, 0x10, 0x13, 0x03, 0xe1, 0xea, 0xe7, 0xf2, 0xef, 0xee, 0x11, 0x0a,
  0xf8, 0xe6, 0xef, 0xf9, 0x06, 0xf8, 0x13, 0x1b, 0xed, 0xe7, 0x08, 0xf1,
  0x13, 0xfb, 0x12, 0x03, 0xd9, 0xf2, 0xf5, 0x07, 0x02, 0xf1, 0xf2, 0x03,
  0xfc, 0xfc, 0x06, 0x10, 0x36, 0x06, 0x22, 0x35, 0xde, 0xfb, 0xf1, 0xe8,
  0x27, 0x05, 0x16, 0x3d, 0xc1, 0xf9, 0xe2, 0xf3, 0x4e, 0xe1, 0x1e, 0x5d,
  0xcc, 0x05, 0x24, 0xe9, 0x26, 0xf1, 0x11, 0x49, 0xdf, 0xf1, 0xf3, 0xf6,
  0x0f, 0x03, 0x1e, 0x17, 0x02, 0xfe, 0xdb, 0xf7, 0x00, 0xfc, 0x0e, 0x15,
  0x03, 0xf8, 0xf5, 0xf3, 0x02, 0x17, 0xfd, 0x17, 0xe7, 0x02, 0xf7, 0xea,
  0x01, 0x17, 0x0e, 0x09, 0xed, 0x01, 0xeb, 0xe5, 0xf6, 0x29, 0xf7, 0xd8,
  0x06, 0x07, 0x02, 0x06, 0xec, 0x0f, 0xce, 0xe2, 0xf9, 0x17, 0xd2, 0x0e,
  0xe0, 0x0b, 0xf8, 0xef, 0xf4, 0x07, 0x19, 0x18, 0x02, 0x09, 0x08, 0xf9,
  0x0a, 0x05, 0xf8, 0x13, 0x09, 0xfb, 0x0c, 0x11, 0x0e, 0xff, 0xed, 0x03,
  0xf5, 0x0f, 0xfa, 0x22, 0xed, 0x02, 0xee, 0x02, 0x1c, 0xef, 0x09, 0x38,
  0xf4, 0xf1, 0xef, 0xf0, 0xf0, 0xf8, 0x08, 0x2b, 0xd3, 0xfe, 0x13, 0xfb,
  0xe8, 0xef, 0x14, 0x02, 0xe2, 0xe8, 0x15, 0xed, 0xf8, 0x06, 0x13, 0xfd,
  0xf8, 0x04, 0x1a, 0xfb, 0x2b, 0xfa, 0xfe, 0xff, 0xee, 0x04, 0xfa, 0xf3,
  0xfd, 0x08, 0x19, 0x17, 0xe8, 0xfc, 0x04, 0xef, 0x54, 0xef, 0x26, 0x1f,
  0xe8, 0xf0, 0x0b, 0xf0, 0x3f, 0xe6, 0x05, 0x29, 0xbe, 0xff, 0x00, 0xe2,
  0x26, 0xf2, 0x23, 0x5a, 0xd1, 0xfe, 0x00, 0xcc, 0x24, 0xf7, 0x0b, 0x36,
  0xdb, 0x00, 0xff, 0xe3, 0x05, 0xee, 0x0f, 0x04, 0xe1, 0xfd, 0xe4, 0xe2,
  0x03, 0x17, 0x05, 0xf2, 0xe1, 0xe1, 0x04, 0x02, 0x0a, 0x15, 0x08, 0xef,
  0xe0, 0x06, 0xf7, 0xfe, 0xfe, 0x06, 0xff, 0x05, 0xe7, 0x06, 0xd9, 0xfa,
  0xf6, 0x28, 0xf9, 0xe0, 0x15, 0xf6, 0x06, 0x0b, 0x07, 0x31, 0xe4, 0xe6,
  0x06, 0x22, 0xd1, 0x19, 0xe8, 0x13, 0xd9, 0xe7, 0xfb, 0xf7, 0xe6, 0x06,
  0xf5, 0x21, 0xfb, 0xf1, 0x0e, 0x01, 0xf8, 0x11, 0xf9, 0x0f, 0x00, 0x0f,
  0xf0, 0x0f, 0x14, 0x14, 0xf8, 0xfe, 0xfa, 0x2c, 0xf4, 0x0f, 0x0e, 0x01,
  0x04, 0xf4, 0x33, 0x24, 0xe0, 0xe5, 0x06, 0xfd, 0xe8, 0x11, 0x31, 0x29,
  0xe0, 0x01, 0xef, 0xf9, 0xe9, 0x13, 0x01, 0x01, 0xf2, 0xdb, 0xf8, 0x01,
  0xf7, 0xe3, 0x08, 0x16, 0x07, 0x04, 0xff, 0x0d, 0x29, 0x00, 0xfe, 0x0d,
  0xf5, 0xf2, 0x1a, 0x0a, 0xff, 0x0b, 0xf2, 0x1f, 0xe0, 0x09, 0x0d, 0x14,
  0x36, 0x01, 0x14, 0x27, 0xd6, 0xe4, 0x02, 0xe1, 0x3c, 0x0e, 0x18, 0x40,
  0xa0, 0xf8, 0xff, 0xe3, 0x31, 0xd8, 0x03, 0x42, 0xb3, 0xf0, 0xff, 0xd9,
  0x37, 0xf6, 0x07, 0x31, 0xdd, 0xfa, 0x0b, 0xe5, 0x0b, 0xe0, 0x05, 0x0c,
  0xeb, 0xe9, 0xe3, 0xd7, 0x11, 0x0f, 0x0b, 0xf2, 0xec, 0xf6, 0x05, 0xfb,
  0xfc, 0x1a, 0x14, 0xef, 0xe5, 0xf4, 0xf3, 0xe3, 0xf1, 0x2d, 0x08, 0x0b,
  0xea, 0xf7, 0xd8, 0xfe, 0x0a, 0x15, 0xf8, 0xda, 0xf4, 0x03, 0xf1, 0x12,
  0x02, 0x1a, 0xfb, 0xdc, 0xec, 0x21, 0xfe, 0x1c, 0xf2, 0x12, 0xef, 0xfa,
  0xf8, 0x16, 0xe8, 0x13, 0x07, 0xfd, 0xea, 0x0c, 0xf2, 0x03, 0xcd, 0x0b,
  0x03, 0x13, 0x07, 0xfa, 0x05, 0x01, 0x09, 0xfd, 0xfd, 0xf4, 0x05, 0x2a,
  0xf0, 0xf7, 0xf2, 0xf0, 0xfb, 0x08, 0x13, 0x46, 0xe6, 0xfa, 0xf5, 0xf5,
  0xf2, 0x0f, 0x24, 0x35, 0xdc, 0xf9, 0xdb, 0x06, 0xe1, 0xf8, 0x1a, 0x04,
  0xdd, 0x00, 0x00, 0xfd, 0xf4, 0xee, 0x07, 0xe1, 0x0a, 0xea, 0x11, 0xe3,
  0x15, 0x01, 0xff, 0x1c, 0xdb, 0xd6, 0x05, 0x15, 0xfa, 0x04, 0xf2, 0x28,
  0xee, 0x0c, 0xf0, 0x0f, 0x54, 0x07, 0x1a, 0x26, 0xc7, 0xf1, 0x0a, 0xd9,
  0x30, 0xce, 0x1e, 0x43, 0x98, 0xfe, 0x05, 0xcd, 0x42, 0xde, 0x10, 0x1b,
  0xbd, 0xe4, 0x16, 0xdf, 0x3c, 0xee, 0x0c, 0x38, 0xf0, 0xf4, 0x0c, 0xe4,
  0x15, 0xec, 0x0d, 0x09, 0xd1, 0x00, 0x15, 0xe6, 0x06, 0x12, 0x1b, 0xd6,
  0x02, 0xf7, 0xf3, 0xea, 0xf3, 0x25, 0xfa, 0x0b, 0xfc, 0xf4, 0xf6, 0xfe,
  0xff, 0x21, 0x05, 0x05, 0xfc, 0x00, 0xf3, 0x0c, 0x01, 0x10, 0xf8, 0xcf,
  0xfa, 0x0d, 0xcf, 0x05, 0xed, 0x23, 0xd0, 0xe4, 0xe6, 0x1e, 0x07, 0x03,
  0xeb, 0x26, 0xfe, 0xec, 0xe5, 0x10, 0x01, 0x0d, 0xef, 0x19, 0xf6, 0xfe,
  0x0a, 0xfd, 0xe2, 0x13, 0x0f, 0x03, 0xdf, 0x06, 0xf6, 0x06, 0xfa, 0xfa,
  0x01, 0x28, 0x06, 0x09, 0xf0, 0xf6, 0xff, 0x01, 0x00, 0x11, 0x1e, 0x2b,
  0xed, 0xf2, 0x09, 0x03, 0xf5, 0x14, 0x13, 0x1a, 0xd9, 0xfa, 0x04, 0xfa,
  0xf4, 0xff, 0x0c, 0x25, 0xde, 0xf2, 0x0a, 0xe7, 0xef, 0xed, 0xfb, 0xea,
  0xfc, 0x04, 0xf8, 0xfd, 0x20, 0x0a, 0x04, 0x0f, 0xfe, 0xe7, 0xfb, 0x05,
  0xf0, 0x09, 0x12, 0x1a, 0xfc, 0x06, 0xef, 0xff, 0x3e, 0x07, 0x34, 0x27,
  0xd9, 0xf5, 0x1e, 0xf2, 0x3b, 0xeb, 0x24, 0x35, 0xa7, 0xf1, 0x0d, 0xe7,
  0x2e, 0x01, 0x20, 0x2c, 0xb7, 0xf5, 0x05, 0xe9, 0x2c, 0x00, 0x1d, 0x3a,
  0xe8, 0xf8, 0x03, 0xf2, 0x14, 0xf4, 0x28, 0xef, 0xd3, 0xf8, 0xfd, 0xef,
  0x0a, 0x13, 0x01, 0xf0, 0xec, 0x16, 0x14, 0xee, 0x02, 0x2d, 0x03, 0x02,
  0xf6, 0xfb, 0x06, 0xf0, 0x16, 0x1d, 0x14, 0xf2, 0xdd, 0x09, 0xe6, 0xe3,
  0x11, 0x19, 0xf6, 0xbf, 0x00, 0x1c, 0x04, 0x06, 0xdb, 0x29, 0xfc, 0xdf,
  0xea, 0x0a, 0x13, 0x00, 0x01, 0x19, 0xec, 0xeb, 0x05, 0xf5, 0xd2, 0x0f,
  0x0e, 0x1d, 0xea, 0x01, 0x0e, 0x07, 0x03, 0xfd, 0xf9, 0x20, 0xd9, 0x12,
  0xf2, 0x09, 0xd9, 0xfe, 0xff, 0x17, 0x07, 0x0e, 0xf4, 0xf9, 0xf7, 0xfc,
  0x14, 0xf7, 0x18, 0x26, 0xcb, 0xff, 0x03, 0x08, 0xff, 0x16, 0x2f, 0x2a,
  0xe4, 0x0e, 0x18, 0xf1, 0xf2, 0x18, 0x07, 0x2a, 0xe2, 0xff, 0xff, 0x05,
  0xf7, 0xf4, 0xf2, 0xe2, 0xfe, 0xfd, 0x0c, 0xfc, 0x21, 0xf6, 0x0e, 0x15,
  0xfa, 0xdf, 0x1c, 0xff, 0xf6, 0x04, 0x16, 0x21, 0xe2, 0xff, 0x09, 0xf0,
  0x5a, 0x1a, 0x2b, 0x22, 0xe1, 0x02, 0x0c, 0xe4, 0x3d, 0xfa, 0x36, 0x3a,
  0xa7, 0x05, 0xff, 0xd5, 0x24, 0xe8, 0x1c, 0x40, 0xb9, 0xf0, 0x23, 0xe8,
  0x18, 0xfd, 0x0f, 0x36, 0xfa, 0x0d, 0xf6, 0xfa, 0x0c, 0xf5, 0x01, 0xf7,
  0xc7, 0xff, 0xfc, 0xef, 0xf5, 0x21, 0x15, 0xdf, 0xcd, 0xf5, 0x03, 0xe5,
  0x00, 0xf7, 0x13, 0x13, 0x0f, 0xe1, 0xf7, 0xfc, 0xed, 0x25, 0x08, 0x12,
  0xe9, 0xe3, 0xe8, 0xf2, 0xfb, 0x1d, 0x12, 0xd1, 0x0b, 0x08, 0xf5, 0x14,
  0xdd, 0x25, 0xec, 0xeb, 0xed, 0x13, 0x05, 0x07, 0x08, 0x17, 0xe0, 0x0c,
  0x04, 0xfa, 0xe6, 0x22, 0x0d, 0x2e, 0xd7, 0xfe, 0xfb, 0xf4, 0xf7, 0x06,
  0xfb, 0x24, 0xe4, 0x05, 0xea, 0x03, 0x0a, 0xff, 0x02, 0x15, 0xf5, 0x1a,
  0xfb, 0xf3, 0xf7, 0x03, 0xfe, 0x20, 0x28, 0x2c, 0xe4, 0x0e, 0x02, 0xfd,
  0xf5, 0x09, 0x11, 0x36, 0xdf, 0x0a, 0x0a, 0xed, 0xfe, 0x18, 0x0c, 0x29,
  0xf1, 0xf5, 0xe9, 0x0d, 0xfa, 0xe9, 0x0e, 0x12, 0x04, 0xfa, 0x14, 0xed,
  0x26, 0xfa, 0xf4, 0x14, 0x05, 0xea, 0xfa, 0xfb, 0x00, 0x0a, 0x05, 0x24,
  0xd5, 0x0b, 0x06, 0x0d, 0x3a, 0x13, 0x2f, 0x20, 0xdc, 0xed, 0xfd, 0xe5,
  0x3f, 0xf6, 0x1d, 0x2f, 0x9f, 0xfa, 0xf2, 0xe8, 0x48, 0xfc, 0x28, 0x2e,
  0xc0, 0xe6, 0x07, 0xda, 0x27, 0xf0, 0x1e, 0x3f, 0xeb, 0x01, 0xfc, 0xf3,
  0x0e, 0xf4, 0x19, 0xf8, 0xcd, 0xf5, 0xf7, 0x03, 0x1a, 0x08, 0x16, 0xd1,
  0xd3, 0xf7, 0xee, 0xfb, 0x0b, 0xf3, 0x18, 0x06, 0xfc, 0x00, 0xe3, 0xee,
  0x06, 0x27, 0x16, 0x04, 0xeb, 0xe7, 0xe5, 0x04, 0x0a, 0x24, 0x06, 0xdc,
  0x09, 0xff, 0xda, 0x15, 0xfc, 0x35, 0xe4, 0xd5, 0x06, 0x0b, 0x03, 0x17,
  0xfd, 0x23, 0xf1, 0xf2, 0x0c, 0xf9, 0xee, 0x13, 0xfe, 0x1e, 0xc3, 0x00,
  0xe8, 0xfe, 0xf2, 0x01, 0xf7, 0x23, 0xf4, 0xfb, 0xf3, 0x0e, 0xf2, 0x14,
  0xfa, 0x1f, 0xfa, 0x1a, 0xfb, 0xf4, 0xf7, 0x00, 0x0f, 0x00, 0x27, 0x29,
  0xe1, 0xfb, 0x1e, 0xf8, 0xf3, 0x15, 0x1d, 0x1b, 0xed, 0xfc, 0x0f, 0xf1,
  0xdb, 0x0e, 0x18, 0x23, 0xdf, 0x15, 0x02, 0xfa, 0xf4, 0x13, 0x1d, 0xfd,
  0xf9, 0xfe, 0x23, 0xf4, 0x23, 0x04, 0xdb, 0x0a, 0x1d, 0xfb, 0xeb, 0x09,
  0xef, 0x12, 0x0a, 0x26, 0xec, 0x15, 0xf3, 0x00, 0x39, 0xf1, 0x49, 0x27,
  0xda, 0xea, 0x0f, 0xcb, 0x47, 0xf4, 0x43, 0x35, 0xac, 0x0b, 0x01, 0xda,
  0x33, 0xe3, 0x31, 0x33, 0xbe, 0xe5, 0xf1, 0xdb, 0x38, 0x0b, 0x06, 0x3e,
  0xfa, 0xfd, 0x05, 0xfc, 0x14, 0xed, 0x28, 0xee, 0xd2, 0x03, 0xfe, 0xe2,
  0x12, 0xe5, 0xf8, 0xd7, 0xd8, 0x05, 0xfa, 0x01, 0x08, 0x0a, 0x15, 0xff,
  0x05, 0xfa, 0xe8, 0xfa, 0x11, 0x1e, 0x0d, 0x0b, 0xf5, 0xf8, 0xe1, 0x15,
  0x0c, 0x0b, 0xeb, 0xee, 0x0c, 0x02, 0xfa, 0x03, 0xfc, 0x1a, 0xe8, 0xc6,
  0xe4, 0x0b, 0xe5, 0x1b, 0xf2, 0x21, 0xf1, 0x04, 0x00, 0xf6, 0xea, 0x20,
  0x07, 0x25, 0xe7, 0x01, 0x02, 0xf8, 0xf3, 0x11, 0xf3, 0x1c, 0x08, 0x0c,
  0x0e, 0xf9, 0xed, 0x0b, 0xff, 0x0a, 0xf4, 0x0c, 0xfd, 0xff, 0x06, 0x07,
  0x08, 0x1e, 0x08, 0x18, 0xde, 0x04, 0x03, 0xf0, 0xe3, 0x06, 0x11, 0xfe,
  0xe1, 0x01, 0x07, 0xf5, 0xf6, 0x03, 0x00, 0x26, 0xfc, 0x12, 0x06, 0x0d,
  0xf3, 0xee, 0xf8, 0xe5, 0x11, 0xf5, 0x2f, 0x06, 0x25, 0x04, 0xff, 0xfe,
  0xe0, 0xff, 0xf1, 0xfe, 0x0b, 0x0e, 0x0b, 0x25, 0xca, 0xff, 0x0d, 0xf8,
  0x35, 0x07, 0x2f, 0x25, 0xda, 0xf6, 0x08, 0xf1, 0x38, 0x01, 0x13, 0x30,
  0xb7, 0xf8, 0x03, 0xea, 0x3b, 0x01, 0x35, 0x3d, 0xd4, 0xf1, 0x11, 0xd6,
  0x2b, 0xff, 0x17, 0x4e, 0x02, 0xf8, 0xff, 0xea, 0x0c, 0x05, 0x05, 0xe4,
  0xcc, 0x04, 0x05, 0xe5, 0x00, 0xef, 0x02, 0xd1, 0xf7, 0x09, 0xf0, 0x05,
  0xfc, 0x13, 0x0c, 0xf6, 0xf9, 0xee, 0x0c, 0xe7, 0xf9, 0x16, 0xed, 0x05,
  0xdc, 0xe7, 0xfa, 0x0f, 0x00, 0x0a, 0xe6, 0xeb, 0xeb, 0x14, 0xd1, 0x05,
  0xec, 0x08, 0xe0, 0xd2, 0x0e, 0x05, 0xfa, 0x0c, 0xf5, 0x0e, 0xc2, 0xf5,
  0x09, 0xeb, 0xe2, 0x0e, 0x14, 0x24, 0xe8, 0xff, 0x03, 0xf4, 0x02, 0x0f,
  0x05, 0x1d, 0xf3, 0xfc, 0xef, 0x03, 0xdb, 0x08, 0x00, 0x2d, 0x02, 0x02,
  0xef, 0xf4, 0x0b, 0x05, 0xf9, 0x3e, 0x1c, 0x19, 0xf2, 0xfa, 0x07, 0xe6,
  0xf5, 0x10, 0x28, 0x0d, 0xdf, 0x14, 0x0e, 0xef, 0xf5, 0x28, 0x0a, 0x0f,
  0xe8, 0x01, 0x0b, 0xfb, 0xe5, 0xfd, 0xfe, 0x04, 0xff, 0xf4, 0x0d, 0xfd,
  0x1f, 0x05, 0x00, 0x0f, 0x07, 0xde, 0xff, 0x02, 0x04, 0x20, 0x32, 0x09,
  0xed, 0x08, 0xfc, 0x19, 0x2b, 0x15, 0x2c, 0x18, 0xc7, 0xf2, 0x25, 0xf2,
  0x29, 0x01, 0x34, 0x49, 0xbf, 0xe6, 0x06, 0xbe, 0x2a, 0xf0, 0x44, 0x39,
  0xbe, 0xe3, 0x21, 0xd6, 0x08, 0xd7, 0xfe, 0x38, 0x10, 0xeb, 0xf5, 0xe4,
  0x09, 0xfa, 0x13, 0xee, 0xd0, 0xfa, 0x00, 0xf4, 0x01, 0xf0, 0xea, 0xee,
  0xdb, 0xf2, 0xe3, 0xdd, 0xf6, 0x0f, 0x14, 0xfe, 0xe8, 0xe9, 0xe4, 0xef,
  0xf9, 0x1b, 0xfe, 0xfc, 0xe4, 0xe1, 0xf2, 0x04, 0x0b, 0x14, 0xfb, 0xe5,
  0xfe, 0x15, 0xc9, 0x0b, 0xf5, 0x10, 0xdc, 0xd8, 0xf1, 0x10, 0xfb, 0x11,
  0xf4, 0x0b, 0xeb, 0xf5, 0x05, 0xf0, 0xf9, 0x00, 0x0a, 0x25, 0xe0, 0xfb,
  0xf1, 0xf1, 0xd6, 0x14, 0xf9, 0x1f, 0xf6, 0x00, 0xfc, 0x10, 0xe4, 0x0f,
  0x06, 0x23, 0xfe, 0x01, 0xec, 0xfd, 0xff, 0x11, 0x06, 0x29, 0x1d, 0x2d,
  0xf1, 0xf7, 0x06, 0xf5, 0xf3, 0x11, 0x2b, 0x05, 0xd9, 0x1c, 0x14, 0x03,
  0x03, 0x22, 0xee, 0x11, 0xe2, 0xff, 0x01, 0xf2, 0xe9, 0x27, 0x05, 0xf2,
  0xf5, 0x08, 0x16, 0xfe, 0x1b, 0xf1, 0x09, 0x1c, 0xef, 0xf7, 0xff, 0xf3,
  0x05, 0x1e, 0xfd, 0x0a, 0xe6, 0x0d, 0x27, 0x03, 0x37, 0x0b, 0x46, 0x2e,
  0xda, 0xf7, 0x2c, 0xe8, 0x3e, 0x0c, 0x49, 0x39, 0xc6, 0xf4, 0x08, 0xe2,
  0x29, 0xee, 0x3c, 0x36, 0xd9, 0xd6, 0xe7, 0xda, 0x13, 0xe5, 0x00, 0x35,
  0xef, 0xd7, 0xfd, 0xe7, 0x13, 0xf7, 0x15, 0xf2, 0xd5, 0x0a, 0x04, 0xf1,
  0xf8, 0x15, 0x0b, 0xde, 0xe6, 0xf5, 0xd1, 0xdb, 0x03, 0xf1, 0x09, 0x0c,
  0xe7, 0xe6, 0xfe, 0xef, 0x0a, 0x1a, 0xe1, 0x06, 0xe2, 0xed, 0xd7, 0x1c,
...

This file has been truncated, please download it to see its full contents.

feature_provider.cpp

C/C++
/* Copyright 2018 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.
==============================================================================*/

#include "feature_provider.h"

#include "audio_provider.h"
#include "micro_features_micro_features_generator.h"
#include "micro_features_micro_model_settings.h"

FeatureProvider::FeatureProvider(int feature_size, int8_t* feature_data)
    : feature_size_(feature_size),
      feature_data_(feature_data),
      is_first_run_(true) {
  // Initialize the feature data to default values.
  for (int n = 0; n < feature_size_; ++n) {
    feature_data_[n] = 0;
  }
}

FeatureProvider::~FeatureProvider() {}

TfLiteStatus FeatureProvider::PopulateFeatureData(
    tflite::ErrorReporter* error_reporter, int32_t last_time_in_ms,
    int32_t time_in_ms, int* how_many_new_slices) {
  if (feature_size_ != kFeatureElementCount) {
    TF_LITE_REPORT_ERROR(error_reporter,
                         "Requested feature_data_ size %d doesn't match %d",
                         feature_size_, kFeatureElementCount);
    return kTfLiteError;
  }

  // Quantize the time into steps as long as each window stride, so we can
  // figure out which audio data we need to fetch.
  const int last_step = (last_time_in_ms / kFeatureSliceStrideMs);
  const int current_step = (time_in_ms / kFeatureSliceStrideMs);

  int slices_needed = current_step - last_step;
  // If this is the first call, make sure we don't use any cached information.
  if (is_first_run_) {
    TfLiteStatus init_status = InitializeMicroFeatures(error_reporter);
    if (init_status != kTfLiteOk) {
      return init_status;
    }
    is_first_run_ = false;
    slices_needed = kFeatureSliceCount;
  }
  if (slices_needed > kFeatureSliceCount) {
    slices_needed = kFeatureSliceCount;
  }
  *how_many_new_slices = slices_needed;

  const int slices_to_keep = kFeatureSliceCount - slices_needed;
  const int slices_to_drop = kFeatureSliceCount - slices_to_keep;
  // If we can avoid recalculating some slices, just move the existing data
  // up in the spectrogram, to perform something like this:
  // last time = 80ms          current time = 120ms
  // +-----------+             +-----------+
  // | data@20ms |         --> | data@60ms |
  // +-----------+       --    +-----------+
  // | data@40ms |     --  --> | data@80ms |
  // +-----------+   --  --    +-----------+
  // | data@60ms | --  --      |  <empty>  |
  // +-----------+   --        +-----------+
  // | data@80ms | --          |  <empty>  |
  // +-----------+             +-----------+
  if (slices_to_keep > 0) {
    for (int dest_slice = 0; dest_slice < slices_to_keep; ++dest_slice) {
      int8_t* dest_slice_data =
          feature_data_ + (dest_slice * kFeatureSliceSize);
      const int src_slice = dest_slice + slices_to_drop;
      const int8_t* src_slice_data =
          feature_data_ + (src_slice * kFeatureSliceSize);
      for (int i = 0; i < kFeatureSliceSize; ++i) {
        dest_slice_data[i] = src_slice_data[i];
      }
    }
  }
  // Any slices that need to be filled in with feature data have their
  // appropriate audio data pulled, and features calculated for that slice.
  if (slices_needed > 0) {
    for (int new_slice = slices_to_keep; new_slice < kFeatureSliceCount;
         ++new_slice) {
      const int new_step = (current_step - kFeatureSliceCount + 1) + new_slice;
      const int32_t slice_start_ms = (new_step * kFeatureSliceStrideMs);
      int16_t* audio_samples = nullptr;
      int audio_samples_size = 0;
      // TODO(petewarden): Fix bug that leads to non-zero slice_start_ms
      GetAudioSamples(error_reporter, (slice_start_ms > 0 ? slice_start_ms : 0),
                      kFeatureSliceDurationMs, &audio_samples_size,
                      &audio_samples);
      if (audio_samples_size < kMaxAudioSampleSize) {
        TF_LITE_REPORT_ERROR(error_reporter,
                             "Audio data size %d too small, want %d",
                             audio_samples_size, kMaxAudioSampleSize);
        return kTfLiteError;
      }
      int8_t* new_slice_data = feature_data_ + (new_slice * kFeatureSliceSize);
      size_t num_samples_read;
      TfLiteStatus generate_status = GenerateMicroFeatures(
          error_reporter, audio_samples, audio_samples_size, kFeatureSliceSize,
          new_slice_data, &num_samples_read);
      if (generate_status != kTfLiteOk) {
        return generate_status;
      }
    }
  }
  return kTfLiteOk;
}

Github file (Model Training)

Here is the code we use to train the model and obtain the parameters we need.

Complete code for Wake Word Detection(left,right)

Here are all the files for our project. And these codes are designed to distinguish left and right. The codes for Detection of 'yes', 'no' are very similar to these. Just with different parameters and titles.

Credits

Lizzy Wang
1 project • 1 follower
Contact
Zhiming Zhao
0 projects • 0 followers
Contact
Xuchen Zhou
0 projects • 0 followers
Contact
Qirui Liu
0 projects • 0 followers
Contact
Yawen Guo
0 projects • 0 followers
Contact
Thanks to Pete Warden, Daniel Situnayake, and Ray Simar.

Comments

Please log in or sign up to comment.