From 627c12b1ca3400dd50e72c3707d6acac08176b76 Mon Sep 17 00:00:00 2001 From: Marcos Chaparro Date: Fri, 19 Nov 2021 16:21:39 -0300 Subject: [PATCH 1/4] bbshd: Ruggedize PAS against vibrations Also includes an update to set power limits from other threads (like a display) and prepares support for PAS torque sensors. Signed-off-by: Marcos Chaparro --- applications/app.c | 2 +- applications/app.h | 1 + applications/app_pas.c | 74 +++++++++++++++++++++++++++++++++--------- datatypes.h | 3 +- 4 files changed, 62 insertions(+), 18 deletions(-) diff --git a/applications/app.c b/applications/app.c index 75c434b8..319d9d82 100644 --- a/applications/app.c +++ b/applications/app.c @@ -125,7 +125,7 @@ void app_set_configuration(app_configuration *conf) { break; case APP_ADC_PAS: - app_adc_start(true); + app_adc_start(false); app_pas_start(false); break; diff --git a/applications/app.h b/applications/app.h index 2115cbf0..ccfe9ac1 100644 --- a/applications/app.h +++ b/applications/app.h @@ -81,6 +81,7 @@ void app_pas_stop(void); bool app_pas_is_running(void); void app_pas_configure(pas_config *conf); float app_pas_get_current_target_rel(void); +void app_pas_set_current_sub_scaling(float current_sub_scaling); // Custom apps void app_custom_start(void); diff --git a/applications/app_pas.c b/applications/app_pas.c index 71ec600c..aac02a5a 100644 --- a/applications/app_pas.c +++ b/applications/app_pas.c @@ -32,6 +32,7 @@ // Settings #define PEDAL_INPUT_TIMEOUT 0.2 +#define MAX_MS_WITHOUT_CADENCE 5000 #define MIN_MS_WITHOUT_POWER 500 #define FILTER_SAMPLES 5 #define RPM_FILTER_SAMPLES 8 @@ -42,6 +43,7 @@ static THD_WORKING_AREA(pas_thread_wa, 1024); // Private variables static volatile pas_config config; +static volatile float sub_scaling = 1.0; static volatile float output_current_rel = 0.0; static volatile float ms_without_power = 0.0; static volatile float max_pulse_period = 0.0; @@ -51,7 +53,14 @@ static volatile float pedal_rpm = 0; static volatile bool primary_output = false; static volatile bool stop_now = true; static volatile bool is_running = false; +static volatile float torque_ratio = 0.0; +/** + * Configure and initialize PAS application + * + * @param conf + * App config + */ void app_pas_configure(pas_config *conf) { config = *conf; ms_without_power = 0.0; @@ -63,10 +72,7 @@ void app_pas_configure(pas_config *conf) { // if pedal spins at x3 the end rpm, assume its beyond limits min_pedal_period = 1.0 / ((config.pedal_rpm_end * 3.0 / 60.0)); - if (config.invert_pedal_direction == true ) - direction_conf= -1.0; - else - direction_conf = 1.0; + (config.invert_pedal_direction) ? (direction_conf = -1.0) : (direction_conf = 1.0); } /** @@ -101,6 +107,10 @@ void app_pas_stop(void) { } } +void app_pas_set_current_sub_scaling(float current_sub_scaling) { + sub_scaling = current_sub_scaling; +} + float app_pas_get_current_target_rel(void) { return output_current_rel; } @@ -108,12 +118,13 @@ float app_pas_get_current_target_rel(void) { void pas_event_handler(void) { #ifdef HW_PAS1_PORT const int8_t QEM[] = {0,-1,1,2,1,0,2,-1,-1,2,0,1,2,1,-1,0}; // Quadrature Encoder Matrix - float direction_qem; + int8_t direction_qem; uint8_t new_state; static uint8_t old_state = 0; static float old_timestamp = 0; static float inactivity_time = 0; static float period_filtered = 0; + static int32_t correct_direction_counter = 0; uint8_t PAS1_level = palReadPad(HW_PAS1_PORT, HW_PAS1_PIN); uint8_t PAS2_level = palReadPad(HW_PAS2_PORT, HW_PAS2_PIN); @@ -122,10 +133,19 @@ void pas_event_handler(void) { direction_qem = (float) QEM[old_state * 4 + new_state]; old_state = new_state; + // Require several quadrature events in the right direction to prevent vibrations from + // engging PAS + int8_t direction = (direction_conf * direction_qem); + + switch(direction) { + case 1: correct_direction_counter++; break; + case -1:correct_direction_counter = 0; break; + } + const float timestamp = (float)chVTGetSystemTimeX() / (float)CH_CFG_ST_FREQUENCY; // sensors are poorly placed, so use only one rising edge as reference - if(new_state == 3) { + if( (new_state == 3) && (correct_direction_counter >= 4) ) { float period = (timestamp - old_timestamp) * (float)config.magnets; old_timestamp = timestamp; @@ -135,7 +155,7 @@ void pas_event_handler(void) { return; } pedal_rpm = 60.0 / period_filtered; - pedal_rpm *= (direction_conf * direction_qem); + pedal_rpm *= (direction_conf * (float)direction_qem); inactivity_time = 0.0; } else { @@ -177,7 +197,7 @@ static THD_FUNCTION(pas_thread, arg) { return; } - pas_event_handler(); // this should happen inside an ISR instead of being polled + pas_event_handler(); // this could happen inside an ISR instead of being polled // For safe start when fault codes occur if (mc_interface_get_fault() != FAULT_CODE_NONE) { @@ -188,28 +208,50 @@ static THD_FUNCTION(pas_thread, arg) { continue; } - // Map the rpm to assist level switch (config.ctrl_type) { case PAS_CTRL_TYPE_NONE: output = 0.0; break; case PAS_CTRL_TYPE_CADENCE: + // Map pedal rpm to assist level + // NOTE: If the limits are the same a numerical instability is approached, so in that case // just use on/off control (which is what setting the limits to the same value essentially means). if (config.pedal_rpm_end > (config.pedal_rpm_start + 1.0)) { - output = utils_map(pedal_rpm, config.pedal_rpm_start, config.pedal_rpm_end, 0.0, config.current_scaling); - utils_truncate_number(&output, 0.0, config.current_scaling); + output = utils_map(pedal_rpm, config.pedal_rpm_start, config.pedal_rpm_end, 0.0, config.current_scaling * sub_scaling); + utils_truncate_number(&output, 0.0, config.current_scaling * sub_scaling); } else { if (pedal_rpm > config.pedal_rpm_end) { - output = config.current_scaling; + output = config.current_scaling * sub_scaling; } else { output = 0.0; } } break; - case PAS_CTRL_TYPE_CONSTANT_TORQUE: - output = pedal_rpm > config.pedal_rpm_start ? config.current_scaling : 0; - break; + +#ifdef HW_HAS_PAS_TORQUE_SENSOR + case PAS_CTRL_TYPE_TORQUE: + { + torque_ratio = hw_get_PAS_torque(); + output = torque_ratio * config.current_scaling * sub_scaling; + utils_truncate_number(&output, 0.0, config.current_scaling * sub_scaling); + } + /* fall through */ + case PAS_CTRL_TYPE_TORQUE_WITH_CADENCE_TIMEOUT: + { + // disable assistance if torque has been sensed for >5sec without any pedal movement. Prevents + // motor overtemps when the rider is just resting on the pedals + static float ms_without_cadence_or_torque = 0.0; + if(output == 0.0 || pedal_rpm > 0) { + ms_without_cadence_or_torque = 0.0; + } else { + ms_without_cadence_or_torque += (1000.0 * (float)sleep_time) / (float)CH_CFG_ST_FREQUENCY; + if(ms_without_cadence_or_torque > MAX_MS_WITHOUT_CADENCE) { + output = 0.0; + } + } + } +#endif default: break; } @@ -222,7 +264,7 @@ static THD_FUNCTION(pas_thread, arg) { if (ramp_time > 0.01) { const float ramp_step = (float)ST2MS(chVTTimeElapsedSinceX(last_time)) / (ramp_time * 1000.0); utils_step_towards(&output_ramp, output, ramp_step); - utils_truncate_number(&output_ramp, 0.0, config.current_scaling); + utils_truncate_number(&output_ramp, 0.0, config.current_scaling * sub_scaling); last_time = chVTGetSystemTimeX(); output = output_ramp; diff --git a/datatypes.h b/datatypes.h index ee8dfca2..352d22ea 100644 --- a/datatypes.h +++ b/datatypes.h @@ -583,7 +583,8 @@ typedef enum { typedef enum { PAS_CTRL_TYPE_NONE = 0, PAS_CTRL_TYPE_CADENCE, - PAS_CTRL_TYPE_CONSTANT_TORQUE + PAS_CTRL_TYPE_TORQUE, + PAS_CTRL_TYPE_TORQUE_WITH_CADENCE_TIMEOUT } pas_control_type; // PAS sensor types From d6fc73989999190c6313fcbc5c112428b075b2b6 Mon Sep 17 00:00:00 2001 From: Marcos Chaparro Date: Fri, 19 Nov 2021 17:14:45 -0300 Subject: [PATCH 2/4] bbshd: Support display, assist levels, PTC temp sensor, wheel speed sensor, gearshift sensor, custom UI Signed-off-by: Marcos Chaparro --- hwconf/hw_luna_bbshd.c | 380 +++++++++++++++++++---- hwconf/hw_luna_bbshd.h | 134 +++++---- hwconf/hwconf.mk | 1 + hwconf/luna_display_serial.c | 533 +++++++++++++++++++++++++++++++++ hwconf/luna_display_serial.h | 27 ++ mcconf/mcconf_luna_bbshd_52v.h | 512 +++++++++++++++++++++++++++++++ qmlui/app/qmlui_luna_v1.c | 457 ++++++++++++++++++++++++++++ qmlui/app/qmlui_luna_v1.h | 17 ++ 8 files changed, 1943 insertions(+), 118 deletions(-) create mode 100644 hwconf/luna_display_serial.c create mode 100644 hwconf/luna_display_serial.h create mode 100644 mcconf/mcconf_luna_bbshd_52v.h create mode 100644 qmlui/app/qmlui_luna_v1.c create mode 100644 qmlui/app/qmlui_luna_v1.h diff --git a/hwconf/hw_luna_bbshd.c b/hwconf/hw_luna_bbshd.c index 750d61fa..95a88c93 100644 --- a/hwconf/hw_luna_bbshd.c +++ b/hwconf/hw_luna_bbshd.c @@ -17,18 +17,35 @@ */ #include "hw.h" - +#include "luna_display_serial.h" #include "ch.h" #include "hal.h" #include "stm32f4xx_conf.h" #include "utils.h" #include #include "mc_interface.h" +#include "terminal.h" +#include "commands.h" +#include "stdio.h" + +#define EEPROM_ADDR_INITIAL_ASSIST_LEVEL 0 +#define EEPROM_ADDR_MOTOR_HAS_PTC_SENSOR 1 +#define EEPROM_ADDR_FIXED_THROTTLE_LEVEL 2 +#define DEFAULT_INITIAL_ASSIST_LEVEL 1 // Variables static volatile bool i2c_running = false; +static volatile bool motor_has_PTC_sensor; void hw_luna_bbshd_setup_dac(void); +static void terminal_cmd_set_initial_assist_level(int argc, const char **argv); +static void terminal_cmd_read_initial_assist_level(int argc, const char **argv); +static void terminal_cmd_set_bbshd_has_PTC_sensor(int argc, const char **argv); +static void terminal_cmd_set_bbshd_use_fixed_throttle_level(int argc, const char **argv); + +int8_t hw_read_initial_assist_level(void); +bool hw_bbshd_has_PTC_sensor(void); +bool hw_bbshd_has_fixed_throttle_level(void); // I2C configuration static const I2CConfig i2cfg = { @@ -45,33 +62,17 @@ void hw_init_gpio(void) { RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE); // LEDs - palSetPadMode(LED_GREEN_GPIO, LED_GREEN_PIN, - PAL_MODE_OUTPUT_PUSHPULL | - PAL_STM32_OSPEED_HIGHEST); - palSetPadMode(LED_RED_GPIO, LED_RED_PIN, - PAL_MODE_OUTPUT_PUSHPULL | - PAL_STM32_OSPEED_HIGHEST); + palSetPadMode(LED_GREEN_GPIO, LED_GREEN_PIN, PAL_MODE_OUTPUT_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); + palSetPadMode(LED_RED_GPIO, LED_RED_PIN, PAL_MODE_OUTPUT_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); // GPIOA Configuration: Channel 1 to 3 as alternate function push-pull - palSetPadMode(GPIOA, 8, PAL_MODE_ALTERNATE(GPIO_AF_TIM1) | - PAL_STM32_OSPEED_HIGHEST | - PAL_STM32_PUDR_FLOATING); - palSetPadMode(GPIOA, 9, PAL_MODE_ALTERNATE(GPIO_AF_TIM1) | - PAL_STM32_OSPEED_HIGHEST | - PAL_STM32_PUDR_FLOATING); - palSetPadMode(GPIOA, 10, PAL_MODE_ALTERNATE(GPIO_AF_TIM1) | - PAL_STM32_OSPEED_HIGHEST | - PAL_STM32_PUDR_FLOATING); + palSetPadMode(GPIOA, 8, PAL_MODE_ALTERNATE(GPIO_AF_TIM1) | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUDR_FLOATING); + palSetPadMode(GPIOA, 9, PAL_MODE_ALTERNATE(GPIO_AF_TIM1) | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUDR_FLOATING); + palSetPadMode(GPIOA, 10, PAL_MODE_ALTERNATE(GPIO_AF_TIM1) | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUDR_FLOATING); - palSetPadMode(GPIOB, 13, PAL_MODE_ALTERNATE(GPIO_AF_TIM1) | - PAL_STM32_OSPEED_HIGHEST | - PAL_STM32_PUDR_FLOATING); - palSetPadMode(GPIOB, 14, PAL_MODE_ALTERNATE(GPIO_AF_TIM1) | - PAL_STM32_OSPEED_HIGHEST | - PAL_STM32_PUDR_FLOATING); - palSetPadMode(GPIOB, 15, PAL_MODE_ALTERNATE(GPIO_AF_TIM1) | - PAL_STM32_OSPEED_HIGHEST | - PAL_STM32_PUDR_FLOATING); + palSetPadMode(GPIOB, 13, PAL_MODE_ALTERNATE(GPIO_AF_TIM1) | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUDR_FLOATING); + palSetPadMode(GPIOB, 14, PAL_MODE_ALTERNATE(GPIO_AF_TIM1) | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUDR_FLOATING); + palSetPadMode(GPIOB, 15, PAL_MODE_ALTERNATE(GPIO_AF_TIM1) | PAL_STM32_OSPEED_HIGHEST | PAL_STM32_PUDR_FLOATING); // Hall sensors palSetPadMode(HW_HALL_ENC_GPIO1, HW_HALL_ENC_PIN1, PAL_MODE_INPUT_PULLUP); @@ -83,31 +84,24 @@ void hw_init_gpio(void) { palSetPadMode(BRK_GPIO, BRK_PIN, PAL_MODE_ALTERNATE(GPIO_AF_TIM1)); #endif - // Current filter - palSetPadMode(GPIOC, 13, - PAL_MODE_OUTPUT_PUSHPULL | - PAL_STM32_OSPEED_HIGHEST); + palSetPadMode(HW_SPEED_SENSOR_PORT, HW_SPEED_SENSOR_PIN, PAL_MODE_INPUT_PULLUP); + // Current filter + palSetPadMode(GPIOC, 13, PAL_MODE_OUTPUT_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); CURRENT_FILTER_OFF(); // AUX pin AUX_OFF(); - palSetPadMode(AUX_GPIO, AUX_PIN, - PAL_MODE_OUTPUT_PUSHPULL | - PAL_STM32_OSPEED_HIGHEST); + palSetPadMode(AUX_GPIO, AUX_PIN, PAL_MODE_OUTPUT_PUSHPULL | PAL_STM32_OSPEED_HIGHEST); // ADC Pins palSetPadMode(GPIOA, 0, PAL_MODE_INPUT_ANALOG); palSetPadMode(GPIOA, 1, PAL_MODE_INPUT_ANALOG); palSetPadMode(GPIOA, 2, PAL_MODE_INPUT_ANALOG); palSetPadMode(GPIOA, 3, PAL_MODE_INPUT_ANALOG); -#ifdef HW_BBSHD_USE_DAC - hw_luna_bbshd_setup_dac(); -#else palSetPadMode(GPIOA, 5, PAL_MODE_INPUT_ANALOG); -#endif - palSetPadMode(GPIOA, 6, PAL_MODE_INPUT_ANALOG); + palSetPadMode(GPIOA, 6, PAL_MODE_INPUT_ANALOG); palSetPadMode(GPIOB, 0, PAL_MODE_INPUT_ANALOG); palSetPadMode(GPIOB, 1, PAL_MODE_INPUT_ANALOG); @@ -117,6 +111,36 @@ void hw_init_gpio(void) { palSetPadMode(GPIOC, 3, PAL_MODE_INPUT_ANALOG); palSetPadMode(GPIOC, 4, PAL_MODE_INPUT_ANALOG); palSetPadMode(GPIOC, 5, PAL_MODE_INPUT_ANALOG); + + + terminal_register_command_callback( + "set_initial_assist_level", + "Set initial assist level [0 - 9].", + 0, + terminal_cmd_set_initial_assist_level); + + terminal_register_command_callback( + "read_initial_assist_level", + "Read initial assist level.", + 0, + terminal_cmd_read_initial_assist_level); + + terminal_register_command_callback( + "set_motor_temp_sensor", + "Usage: set_motor_temp_sensor [NTC or PTC]", + 0, + terminal_cmd_set_bbshd_has_PTC_sensor); + + terminal_register_command_callback( + "fix_throttle", + "Usage: fix_throttle [1 or 0]", + 0, + terminal_cmd_set_bbshd_use_fixed_throttle_level); + + int8_t initial_assist_level = hw_read_initial_assist_level(); + motor_has_PTC_sensor = true;// hw_bbshd_has_PTC_sensor(); + + luna_display_serial_start(initial_assist_level); } void hw_setup_adc_channels(void) { @@ -250,29 +274,277 @@ void hw_try_restore_i2c(void) { } } -void hw_luna_bbshd_setup_dac(void) { - // GPIOA clock enable - RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); +static float wheel_rpm_filtered = 0; - // DAC Periph clock enable - RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE); +void hw_update_speed_sensor(void) { + static float wheel_rpm = 0; + static uint8_t sensor_state = 0; + static uint8_t sensor_state_old = 0; + static float last_sensor_event_time = 0; + float current_time = (float)chVTGetSystemTimeX() / (float)CH_CFG_ST_FREQUENCY; - // DAC channel 1 & 2 (DAC_OUT1 = PA.4)(DAC_OUT2 = PA.5) configuration - palSetPadMode(GPIOA, 4, PAL_MODE_INPUT_ANALOG); - palSetPadMode(GPIOA, 5, PAL_MODE_INPUT_ANALOG); + sensor_state = palReadPad(HW_SPEED_SENSOR_PORT, HW_SPEED_SENSOR_PIN); - // Enable both DAC channels with output buffer disabled to achieve rail-to-rail output - DAC->CR |= DAC_CR_EN1 | DAC_CR_BOFF1 | DAC_CR_EN2 | DAC_CR_BOFF2; + if(sensor_state == 0 && sensor_state_old == 1 ) { + float revolution_duration = current_time - last_sensor_event_time; - // Set DAC channels at 1.65V - hw_luna_bbshd_DAC1_setdata(0x800); - hw_luna_bbshd_DAC2_setdata(0x800); + if (revolution_duration > 0.05) { //ignore periods <50ms + + last_sensor_event_time = current_time; + + wheel_rpm = 60.0 / revolution_duration; + // Apply averaging filter + UTILS_LP_FAST(wheel_rpm_filtered, (float)wheel_rpm, 0.5); + } + } else { + // After 3 seconds without sensor signal, set RPM as zero + if ( (current_time - last_sensor_event_time) > 3.0) { + wheel_rpm_filtered = 0.0; + } + } + sensor_state_old = sensor_state; } -void hw_luna_bbshd_DAC1_setdata(uint16_t data) { - DAC->DHR12R1 = data; +/* Get speed in m/s */ +float hw_get_speed(void) { + const volatile mc_configuration *conf = mc_interface_get_configuration(); + float speed = wheel_rpm_filtered * conf->si_wheel_diameter * M_PI / 60.0; + return speed; } -void hw_luna_bbshd_DAC2_setdata(uint16_t data) { - DAC->DHR12R2 = data; +/* Gear Shift sensor support + * Read the gear sensor and use it to override the brake adc signal to reduce motor + * power during shifting to extend gearing life. + */ +void hw_brake_override(float *brake_ptr) { + float brake = *brake_ptr; + + // Track an independent gearshift sensor ramping to be multiplied by the brake signal + static float gear = 0.0; + gear = (float)palReadPad(HW_GEAR_SENSOR_PORT, HW_GEAR_SENSOR_PIN); + + // hardcoded ramps for now + const float ramp_time_neg = 0.1; + const float ramp_time_pos = 0.3; + + // Apply ramping + static systime_t last_time = 0; + static float gear_ramp = 0.0; + float ramp_time = fabsf(gear) > fabsf(gear_ramp) ? ramp_time_pos : ramp_time_neg; + + if (ramp_time > 0.01) { + const float ramp_step = (float)ST2MS(chVTTimeElapsedSinceX(last_time)) / (ramp_time * 1000.0); + utils_step_towards(&gear_ramp, gear, ramp_step); + last_time = chVTGetSystemTimeX(); + *brake_ptr = brake * gear_ramp; + } + + static uint16_t delay_to_print = 0; + if(delay_to_print ++ > 250){ + delay_to_print = 0; + commands_printf("gear_ramp:%.2f",(double)gear_ramp); + commands_printf("brake_output:%.2f",(double)brake); + } +} + +// Lookup table linearly interpolated to support the new, undocumented PTC sensor used +// in these drives + +#define PTC_LUT_SIZE 20 +typedef struct { float x; float y; } coord_t; + +coord_t ptc_lut[PTC_LUT_SIZE] = +{ + {933.0, -15.0}, + {940.0, -11.0}, + {1090.0, 25.0}, + {1107.0, 30.0}, + {1124.0, 35.0}, + {1140.0, 40.0}, + {1155.0, 45.0}, + {1170.0, 50.0}, + {1181.0, 55.0}, + {1191.0, 60.0}, + {1198.0, 65.0}, + {1202.0, 70.0}, + {1211.0, 75.0}, + {1217.0, 80.0}, + {1224.0, 85.0}, + {1231.0, 90.0}, + {1274.0, 95.0}, + {1385.0, 100.0}, + {1390.0, 110.0},//made up + {1400.0, 200.0}//made up +}; + +float interp( coord_t* c, float x) +{ + int i; + const int n = PTC_LUT_SIZE; + + for( i = 0; i < n-1; i++ ) + { + if ( c[i].x <= x && c[i+1].x >= x ) + { + //utils_map() + float diffx = x - c[i].x; + float diffn = c[i+1].x - c[i].x; + + return c[i].y + ( c[i+1].y - c[i].y ) * diffx / diffn; + } + } + + return 200.0; // Not in range, trip a fault +} + + + +static void terminal_cmd_set_initial_assist_level(int argc, const char **argv) { + (void)argc; + (void)argv; + + eeprom_var initial_assist_level; + if( argc == 2 ) { + sscanf(argv[1], "%i", (int*) &(initial_assist_level.as_i32)); + + // Store data in eeprom + conf_general_store_eeprom_var_hw(&initial_assist_level, EEPROM_ADDR_INITIAL_ASSIST_LEVEL); + + //read back written data + int32_t assist_level = hw_read_initial_assist_level(); + + if(assist_level == initial_assist_level.as_i32) { + commands_printf("BBSHD initial assist level set to %d", assist_level); + } + else { + commands_printf("Error storing EEPROM data."); + } + } + else { + commands_printf("1 argument required, integer from 0 to 9. Here are some examples:"); + commands_printf("set_initial_assist_level 0"); + commands_printf("set_initial_assist_level 1"); + commands_printf("set_initial_assist_level 4"); + commands_printf("set_initial_assist_level 9"); + commands_printf(" "); + } + commands_printf(" "); + return; +} + +static void terminal_cmd_read_initial_assist_level(int argc, const char **argv) { + (void)argc; + (void)argv; + + commands_printf("BBSHD initial assist level is set at %i", hw_read_initial_assist_level()); + commands_printf(" "); + return; +} + +int8_t hw_read_initial_assist_level(void) { + eeprom_var assist_level; + bool var_not_found = !conf_general_read_eeprom_var_hw(&assist_level, EEPROM_ADDR_INITIAL_ASSIST_LEVEL); + + if( (assist_level.as_i32 < 0) || (assist_level.as_i32 >= 10) || var_not_found) + assist_level.as_i32 = DEFAULT_INITIAL_ASSIST_LEVEL; + return (int8_t)assist_level.as_i32; +} + +float hw_read_motor_temp(float beta) { + static float sensor_resistance = 1000; + UTILS_LP_FAST(sensor_resistance, NTC_RES_MOTOR(ADC_Value[ADC_IND_TEMP_MOTOR]), 0.1); + + // the ptc sensor has 1.3kOhm at 100°C and 930 Ohm at -15°C. If resistance is outside this + // range there is no way this is a PTC sensor + if( (sensor_resistance > 2000 ) || (sensor_resistance < 900) ) { + motor_has_PTC_sensor = false; + } + if( motor_has_PTC_sensor ) { + // PTC + return interp(ptc_lut, sensor_resistance); + } else { + // NTC + return (1.0 / ((logf(NTC_RES_MOTOR(ADC_Value[ADC_IND_TEMP_MOTOR]) / 10000.0) / beta) + (1.0 / 298.15)) - 273.15); + } +} + +static void terminal_cmd_set_bbshd_has_PTC_sensor(int argc, const char **argv) { + (void)argc; + (void)argv; + + eeprom_var has_ptc; + if( argc == 2 ) { + char sensor_type[32]; + + sscanf(argv[1], "%s", sensor_type); + + if( sensor_type[0] == 'N' ) { // NTC + has_ptc.as_i32 = 0; + } + if( sensor_type[0] == 'P' ) { // PTC + has_ptc.as_i32 = 1; + } + + // Store data in eeprom + conf_general_store_eeprom_var_hw(&has_ptc, EEPROM_ADDR_MOTOR_HAS_PTC_SENSOR); + + //read back written data + motor_has_PTC_sensor = hw_bbshd_has_PTC_sensor(); + + if( motor_has_PTC_sensor ) { + commands_printf("Set as PTC\n"); + } else { + commands_printf("Set as NTC\n"); + } + } + else { + commands_printf("1 argument required, NTC or PTC. Here are some examples:"); + commands_printf("set_motor_temp_sensor NTC"); + commands_printf("set_motor_temp_sensor PTC\n"); + } + return; +} + +bool hw_bbshd_has_PTC_sensor(void) { + eeprom_var has_ptc; + //return 1; + bool var_not_found = !conf_general_read_eeprom_var_hw(&has_ptc, EEPROM_ADDR_MOTOR_HAS_PTC_SENSOR); + + if( (has_ptc.as_i32 != 1) || var_not_found) { + return false; + } else { + return true; + } +} + +static void terminal_cmd_set_bbshd_use_fixed_throttle_level(int argc, const char **argv) { + (void)argc; + (void)argv; + + eeprom_var use_fixed_throttle; + if( argc == 2 ) { + char throttle_type[32]; + + sscanf(argv[1], "%s", throttle_type); + + use_fixed_throttle.as_i32 = (throttle_type[0] == '1') ? 1 : 0; + + // Store data in eeprom + conf_general_store_eeprom_var_hw(&use_fixed_throttle, EEPROM_ADDR_FIXED_THROTTLE_LEVEL); + } + else { + commands_printf("1 argument required: 1 (fixed) or 0 (follow display level)"); + } + return; +} + +bool hw_bbshd_has_fixed_throttle_level(void) { + eeprom_var use_fixed_throttle; + bool var_not_found = !conf_general_read_eeprom_var_hw(&use_fixed_throttle, EEPROM_ADDR_FIXED_THROTTLE_LEVEL); + + if( (use_fixed_throttle.as_i32 != 1) || var_not_found) { + return false; + } else { + return true; + } } diff --git a/hwconf/hw_luna_bbshd.h b/hwconf/hw_luna_bbshd.h index c69203bb..d6c4dd70 100644 --- a/hwconf/hw_luna_bbshd.h +++ b/hwconf/hw_luna_bbshd.h @@ -21,14 +21,21 @@ #ifndef HW_LUNA_BBSHD_H_ #define HW_LUNA_BBSHD_H_ -#define HW_NAME "LUNA_CYCLE_BBSHD" +#define HW_NAME "LUNA_BBSHD" +#include "mcconf_luna_bbshd_52v.h" +#include "appconf_luna_bbshd.h" + +#define QMLUI_SOURCE_APP "qmlui/app/qmlui_luna_v1.c" +#define QMLUI_HEADER_APP "qmlui/app/qmlui_luna_v1.h" +#define QMLUI_APP_FULLSCREEN // HW properties #define HW_HAS_3_SHUNTS #define HW_HAS_PHASE_SHUNTS #define HW_HAS_GATE_DRIVER_SUPPLY_MONITOR +#define HW_HAS_WHEEL_SPEED_SENSOR +#define HW_HAS_LUNA_SERIAL_DISPLAY #define HW_USE_BRK -//#define HW_BBSHD_USE_DAC // Macros #define LED_GREEN_GPIO GPIOB @@ -42,7 +49,7 @@ #define LED_RED_OFF() palClearPad(LED_RED_GPIO, LED_RED_PIN) #define AUX_GPIO GPIOC -#define AUX_PIN 9 +#define AUX_PIN 14 #define AUX_ON() palSetPad(AUX_GPIO, AUX_PIN) #define AUX_OFF() palClearPad(AUX_GPIO, AUX_PIN) @@ -103,9 +110,12 @@ #define NTC_RES(adc_val) (10000.0 * adc_val / ( 4095.0 - adc_val))//((4095.0 * 10000.0) / adc_val - 10000.0) #define NTC_TEMP(adc_ind) (1.0 / ((logf(NTC_RES(ADC_Value[adc_ind]) / 10000.0) / 3455.0) + (1.0 / 298.15)) - 273.15) -#define NTC_RES_MOTOR(adc_val) (10000.0 / ((4095.0 / (float)adc_val) - 1.0)) // Motor temp sensor on low side +#define NTC_TEMP_MOTOR(beta) (hw_read_motor_temp(beta)) +//#define NTC_TEMP_MOTOR(beta) (1.0 / ((logf(NTC_RES_MOTOR(ADC_Value[ADC_IND_TEMP_MOTOR]) / 10000.0) / beta) + (1.0 / 298.15)) - 273.15) +#define PTC_TEMP_MOTOR(res, con, tbase) (((NTC_RES_MOTOR(ADC_Value[ADC_IND_TEMP_MOTOR]) - res) / NTC_RES_MOTOR(ADC_Value[ADC_IND_TEMP_MOTOR])) * 100 / con - 10) +#define PTC_TEMP_MOTOR_2(res, con, tbase) 0.0 -#define NTC_TEMP_MOTOR(beta) (1.0 / ((logf(NTC_RES_MOTOR(ADC_Value[ADC_IND_TEMP_MOTOR]) / 10000.0) / beta) + (1.0 / 298.15)) - 273.15) +#define NTC_RES_MOTOR(adc_val) (10000.0 / ((4095.0 / (float)adc_val) - 1.0)) // Voltage on ADC channel #define ADC_VOLTS(ch) ((float)ADC_Value[ch] / 4096.0 * V_REG) @@ -129,37 +139,38 @@ #define HW_ADC_EXT2_PIN 0 // UART Peripheral -#define HW_UART_DEV SD1 -#define HW_UART_GPIO_AF GPIO_AF_USART1 -#define HW_UART_TX_PORT GPIOB -#define HW_UART_TX_PIN 6 -#define HW_UART_RX_PORT GPIOB -#define HW_UART_RX_PIN 7 +#define HW_UART_DEV SD4 +#define HW_UART_GPIO_AF GPIO_AF_UART4 +#define HW_UART_TX_PORT GPIOC +#define HW_UART_TX_PIN 10 +#define HW_UART_RX_PORT GPIOC +#define HW_UART_RX_PIN 11 // Permanent UART Peripheral (for NRF51) #define HW_UART_P_BAUD 115200 -#define HW_UART_P_DEV SD4 -#define HW_UART_P_GPIO_AF GPIO_AF_UART4 -#define HW_UART_P_TX_PORT GPIOC -#define HW_UART_P_TX_PIN 10 -#define HW_UART_P_RX_PORT GPIOC -#define HW_UART_P_RX_PIN 11 +#define HW_UART_P_DEV SD1 +#define HW_UART_P_GPIO_AF GPIO_AF_USART1 +#define HW_UART_P_TX_PORT GPIOB +#define HW_UART_P_TX_PIN 6 +#define HW_UART_P_RX_PORT GPIOB +#define HW_UART_P_RX_PIN 7 // NRF SWD #define NRF5x_SWDIO_GPIO GPIOA -#define NRF5x_SWDIO_PIN 13 -#define NRF5x_SWCLK_GPIO GPIOA -#define NRF5x_SWCLK_PIN 14 +#define NRF5x_SWDIO_PIN 15 +#define NRF5x_SWCLK_GPIO GPIOB +#define NRF5x_SWCLK_PIN 3 -// ICU Peripheral for servo decoding +// ICU Peripheral for servo decoding. Not used, routed to a pin not present in 64 pin +// package to free USART1 TX pad #define HW_USE_SERVO_TIM4 #define HW_ICU_TIMER TIM4 #define HW_ICU_TIM_CLK_EN() RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE) #define HW_ICU_DEV ICUD4 #define HW_ICU_CHANNEL ICU_CHANNEL_1 #define HW_ICU_GPIO_AF GPIO_AF_TIM4 -#define HW_ICU_GPIO GPIOB -#define HW_ICU_PIN 6 +#define HW_ICU_GPIO GPIOD +#define HW_ICU_PIN 12 // I2C Peripheral #define HW_I2C_DEV I2CD2 @@ -188,16 +199,30 @@ #define HW_ENC_TIM_ISR_VEC TIM3_IRQHandler // SPI pins -#define HW_SPI_DEV SPID1 -#define HW_SPI_GPIO_AF GPIO_AF_SPI1 +#define HW_SPI_DEV SPID3 +#define HW_SPI_GPIO_AF GPIO_AF_SPI3 #define HW_SPI_PORT_NSS GPIOA #define HW_SPI_PIN_NSS 4 -#define HW_SPI_PORT_SCK GPIOA -#define HW_SPI_PIN_SCK 5 -#define HW_SPI_PORT_MOSI GPIOA -#define HW_SPI_PIN_MOSI 7 -#define HW_SPI_PORT_MISO GPIOA -#define HW_SPI_PIN_MISO 6 +#define HW_SPI_PORT_SCK GPIOC +#define HW_SPI_PIN_SCK 10 +#define HW_SPI_PORT_MOSI GPIOC +#define HW_SPI_PIN_MOSI 12 +#define HW_SPI_PORT_MISO GPIOC +#define HW_SPI_PIN_MISO 11 + +// Pedal Assist pins +#define HW_PAS1_PORT GPIOB +#define HW_PAS1_PIN 5 +#define HW_PAS2_PORT GPIOB +#define HW_PAS2_PIN 4 + +#ifdef HW_HAS_WHEEL_SPEED_SENSOR +#define HW_SPEED_SENSOR_PORT GPIOC +#define HW_SPEED_SENSOR_PIN 9 +#endif + +#define HW_GEAR_SENSOR_PORT GPIOA +#define HW_GEAR_SENSOR_PIN 7 // Measurement macros #define ADC_V_L1 ADC_Value[ADC_IND_SENS1] @@ -213,44 +238,25 @@ // Override dead time. #define HW_DEAD_TIME_NSEC 460.0 -// Default setting overrides -#ifndef MCCONF_L_MAX_VOLTAGE -#define MCCONF_L_MAX_VOLTAGE 85.0 // Maximum input voltage -#endif -#ifndef MCCONF_DEFAULT_MOTOR_TYPE -#define MCCONF_DEFAULT_MOTOR_TYPE MOTOR_TYPE_FOC -#endif -#ifndef MCCONF_FOC_F_SW -#define MCCONF_FOC_F_SW 30000.0 -#endif -#ifndef MCCONF_L_MAX_ABS_CURRENT -#define MCCONF_L_MAX_ABS_CURRENT 250.0 // The maximum absolute current above which a fault is generated -#endif -#ifndef MCCONF_FOC_SAMPLE_V0_V7 -#define MCCONF_FOC_SAMPLE_V0_V7 false // Run control loop in both v0 and v7 (requires phase shunts) -#endif -#ifndef MCCONF_L_IN_CURRENT_MAX -#define MCCONF_L_IN_CURRENT_MAX 200.0 // Input current limit in Amperes (Upper) -#endif -#ifndef MCCONF_L_IN_CURRENT_MIN -#define MCCONF_L_IN_CURRENT_MIN -200.0 // Input current limit in Amperes (Lower) -#endif - // Setting limits #define HW_LIM_CURRENT -200.0, 200.0 -#define HW_LIM_CURRENT_IN -200.0, 200.0 -#define HW_LIM_CURRENT_ABS 0.0, 350.0 -#define HW_LIM_VIN 6.0, 90.0 -#define HW_LIM_ERPM -200e3, 200e3 +#define HW_LIM_CURRENT_IN -150.0, 150.0 +#define HW_LIM_CURRENT_ABS 0.0, 230.0 +#define HW_LIM_VIN 30.0, 86.0 +#define HW_LIM_ERPM -26e3, 26e3 #define HW_LIM_DUTY_MIN 0.0, 0.1 -#define HW_LIM_DUTY_MAX 0.0, 0.99 -#define HW_LIM_TEMP_FET -40.0, 110.0 +#define HW_LIM_DUTY_MAX 0.0, 0.95 +#define HW_LIM_TEMP_FET -40.0, 90.0 +#define HW_LIM_FOC_CTRL_LOOP_FREQ 49999.0, 50001.0 -#define HW_GATE_DRIVER_SUPPLY_MIN_VOLTAGE 10.0 -#define HW_GATE_DRIVER_SUPPLY_MAX_VOLTAGE 14.0 +#define HW_GATE_DRIVER_SUPPLY_MIN_VOLTAGE 11.0 +#define HW_GATE_DRIVER_SUPPLY_MAX_VOLTAGE 13.0 // HW-specific functions -void hw_luna_bbshd_DAC1_setdata(uint16_t data); -void hw_luna_bbshd_DAC2_setdata(uint16_t data); +void hw_update_speed_sensor(void); +float hw_get_speed(void); +void hw_brake_override(float *brake); +float hw_read_motor_temp(float beta); +bool hw_bbshd_has_fixed_throttle_level(void); #endif /* HW_LUNA_BBSHD_H_ */ diff --git a/hwconf/hwconf.mk b/hwconf/hwconf.mk index 0d384c25..04e47770 100644 --- a/hwconf/hwconf.mk +++ b/hwconf/hwconf.mk @@ -3,6 +3,7 @@ HWSRC = hwconf/hw.c \ hwconf/drv8305.c \ hwconf/drv8320s.c \ hwconf/drv8323s.c \ + hwconf/luna_display_serial.c \ hwconf/si8900.c HWINC = hwconf diff --git a/hwconf/luna_display_serial.c b/hwconf/luna_display_serial.c new file mode 100644 index 00000000..b7f51030 --- /dev/null +++ b/hwconf/luna_display_serial.c @@ -0,0 +1,533 @@ +/* + Copyright 2021 Marcos Chaparro mchaparro@powerdesigns.ca + Copyright 2021 Maximiliano Cordoba mcordoba@powerdesigns.ca + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ + +#include "conf_general.h" +#ifdef HW_HAS_LUNA_SERIAL_DISPLAY +#include "hw.h" +#include "luna_display_serial.h" +#include "app.h" +#include "ch.h" +#include "hal.h" +#include "packet.h" +#include "commands.h" +#include "mc_interface.h" +#include "utils.h" +#include +#include +#include "comm_can.h" +#include "datatypes.h" + +#define CMD_READ 0x11 +#define CMD_WRITE 0x16 + +#define CMD_CONNECT 0x51 +#define CMD_READ_BASIC 0x52 +#define CMD_WRITE_BASIC 0x52 +#define CMD_VERSION 0x90 +#define CMD_AMPS 0x0A +#define CMD_WHEEL_RPM 0x20 +#define CMD_MOVING 0x31 +#define CMD_LIGHT_ON 0xF1 +#define CMD_LIGHT_OFF 0xF0 +#define CMD_PEDAL_MOV 0x08 +#define CMD_BATT_SOC 0x11 +#define CMD_BATT_VOLTAGE 0x12 +#define CMD_PAS_LEVEL 0x0B + +#define CMD_READ_BASIC_LENGTH 26 +#define CMD_WRITE_BASIC_LENGTH 26 + +#define CMD_WRITE_BASIC_SUCCESS 0x18 + +#define LUNA_DISPLAY_BAUD 1200 +#define LUNA_SERIAL_BUFFER_SIZE 32 +#define LUNA_TX_SERIAL_BUFFER_SIZE 32 + +typedef enum { + PAS_LEVEL_0 = 0x00, + PAS_LEVEL_1 = 0x01, + PAS_LEVEL_2 = 0x0B, + PAS_LEVEL_3 = 0x0C, + PAS_LEVEL_4 = 0x0D, + PAS_LEVEL_5 = 0x02, + PAS_LEVEL_6 = 0x15, + PAS_LEVEL_7 = 0x16, + PAS_LEVEL_8 = 0x17, + PAS_LEVEL_9 = 0x03, + PAS_LEVEL_WALK = 0x06, +} LUNA_PAS_LEVEL; + +typedef enum { + WRITE_LOW_BATTERY_ERROR = 0x00, + WRITE_MAX_CURRENT_ERROR = 0x01, + WRITE_ASSIST_LEVEL_ERROR = 0x02, + WRITE_ASSIST_SPEED_ERROR = 0x0C, + WRITE_SPEEDOMETER_ERROR = 0x16, + WRITE_SPEEDOMETER_SIGNAL_ERROR = 0x17, + WRITE_BASIC_SUCCESS = 0x18 +} CMD_WRITE_BASIC_RESPONSE; + +typedef enum { + LUNA_ERROR_NONE = 0x00, + LUNA_ERROR_BRAKES = 0x03, + LUNA_ERROR_HIGH_VOLTAGE = 0x07, + LUNA_ERROR_MOTOR_HALL_SENSOR = 0x08, + LUNA_ERROR_OVER_TEMPERATURE = 0x10, + LUNA_ERROR_CURRENT_SENSOR = 0x12, + LUNA_ERROR_BATTERY_TEMPERATURE = 0x13, + LUNA_ERROR_WHEEL_SPEED_DETECTION = 0x21, + LUNA_ERROR_BMS_COMMUNICATION = 0x22, + LUNA_ERROR_TORQUE_SENSOR = 0x25, + LUNA_ERROR_SPEED_SENSOR = 0x26, + LUNA_ERROR_COMMUNICATION = 0x30, +} LUNA_ERROR_CODES; + +typedef struct { + uint8_t header; + uint8_t length; + uint8_t manufacturer[4]; + uint8_t model[4]; + uint8_t hardware_version[2]; + uint8_t firmware_version[2]; + uint8_t voltage; + uint8_t max_current; + uint8_t checksum; +} controller_info_t; + +typedef struct { + unsigned int rd_ptr; + unsigned int wr_ptr; + unsigned char data[LUNA_SERIAL_BUFFER_SIZE]; + unsigned char tx[LUNA_TX_SERIAL_BUFFER_SIZE]; +} luna_serial_buffer_t; + +static volatile LUNA_PAS_LEVEL pas_level = PAS_LEVEL_1; +static volatile bool display_thread_is_running = false; +static volatile bool display_uart_is_running = false; + +/* UART driver configuration structure */ +static SerialConfig uart_cfg = { + LUNA_DISPLAY_BAUD, + 0, + USART_CR2_LINEN, + 0 +}; + +static luna_serial_buffer_t serial_buffer; +static controller_info_t controller_info = {0x51,0x10,"LUNA","BBSH","12","55",0x05,250,00}; + +// Threads +static THD_WORKING_AREA(display_process_thread_wa, 1024); +static THD_FUNCTION(display_process_thread, arg); + +static bool check_assist_level(uint8_t assist_code); +static LUNA_PAS_LEVEL translate_assist_level(int8_t level); +static void set_assist_level(uint8_t assist_code); +static uint8_t checksum(uint8_t *buf, uint8_t len); +static void serial_send_packet(unsigned char *data, unsigned int len); +static void serial_display_byte_process(unsigned char byte); +static void serial_display_check_rx(void); + +void luna_display_serial_start(int8_t initial_level) { + pas_level = translate_assist_level(initial_level); + + if (!display_thread_is_running) { + chThdCreateStatic(display_process_thread_wa, sizeof(display_process_thread_wa), + NORMALPRIO, display_process_thread, NULL); + display_thread_is_running = true; + } + serial_buffer.rd_ptr = 0; + serial_buffer.wr_ptr = 0; + + sdStart(&HW_UART_DEV, &uart_cfg); + palSetPadMode(HW_UART_TX_PORT, HW_UART_TX_PIN, PAL_MODE_ALTERNATE(HW_UART_GPIO_AF) | + PAL_STM32_OSPEED_HIGHEST | + PAL_STM32_PUDR_PULLUP); + palSetPadMode(HW_UART_RX_PORT, HW_UART_RX_PIN, PAL_MODE_ALTERNATE(HW_UART_GPIO_AF) | + PAL_STM32_OSPEED_HIGHEST | + PAL_STM32_PUDR_PULLUP); + + display_uart_is_running = true; +} + +static LUNA_PAS_LEVEL translate_assist_level(int8_t level) { + switch (level) { + case 0: return PAS_LEVEL_0; + case 1: return PAS_LEVEL_1; + case 2: return PAS_LEVEL_2; + case 3: return PAS_LEVEL_3; + case 4: return PAS_LEVEL_4; + case 5: return PAS_LEVEL_5; + case 6: return PAS_LEVEL_6; + case 7: return PAS_LEVEL_7; + case 8: return PAS_LEVEL_8; + case 9: return PAS_LEVEL_9; + default: return -1; + } +} + +/* + * checks if the assist code to a current level + * + * returns true if valid, false if not. + */ +static bool check_assist_level(uint8_t assist_code) { + bool ret = false; + + switch (assist_code) { + case PAS_LEVEL_0: + case PAS_LEVEL_1: + case PAS_LEVEL_2: + case PAS_LEVEL_3: + case PAS_LEVEL_4: + case PAS_LEVEL_5: + case PAS_LEVEL_6: + case PAS_LEVEL_7: + case PAS_LEVEL_8: + case PAS_LEVEL_9: + ret = true; + break; + default: + break; + } + return ret; +} + +/* + * Sets the PAS current according to the assist code + * + */ +static void set_assist_level(uint8_t assist_code) { + float current_scale; + volatile mc_configuration *mcconf = (volatile mc_configuration*) mc_interface_get_configuration(); + + switch (assist_code) { + case PAS_LEVEL_0: current_scale = 0.0; break; + case PAS_LEVEL_1: current_scale = 1.0 / 9.0; break; + case PAS_LEVEL_2: current_scale = 2.0 / 9.0; break; + case PAS_LEVEL_3: current_scale = 3.0 / 9.0; break; + case PAS_LEVEL_4: current_scale = 4.0 / 9.0; break; + case PAS_LEVEL_5: current_scale = 5.0 / 9.0; break; + case PAS_LEVEL_6: current_scale = 6.0 / 9.0; break; + case PAS_LEVEL_7: current_scale = 7.0 / 9.0; break; + case PAS_LEVEL_8: current_scale = 8.0 / 9.0; break; + case PAS_LEVEL_9: current_scale = 1.0; break; + default: return; + } + + if( hw_bbshd_has_fixed_throttle_level() ) { + mcconf->l_current_max_scale = 1.0; + app_pas_set_current_sub_scaling(current_scale); + } else { + mcconf->l_current_max_scale = current_scale; + } + + // In level 0, both PAS and throttle should be disabled + if(current_scale == 0.0) { + mcconf->l_current_max_scale = current_scale; + } +} + +static uint8_t checksum(uint8_t *buf, uint8_t len) { + uint8_t sum = 0; + for(int i = 0; i 1) { + + if(serial_buffer.data[rd_ptr] == CMD_WRITE) { + // start byte found + uint8_t command = serial_buffer.data[rd_ptr + 1]; + uint8_t checksum_addr; + + switch (command) { + case CMD_PAS_LEVEL: + if ( (serial_buffer.wr_ptr - rd_ptr) < 4 ) { //this packet needs 4 bytes + break; + } + checksum_addr = rd_ptr + 3; + if(checksum_addr <= serial_buffer.wr_ptr) { //check the checksum has been received + // check sum + if( serial_buffer.data[checksum_addr] == + checksum(serial_buffer.data + rd_ptr, 3) ) { + + if(check_assist_level(serial_buffer.data[rd_ptr + 2])){ + pas_level = serial_buffer.data[rd_ptr + 2]; + set_assist_level(pas_level); + } + serial_buffer.rd_ptr = rd_ptr + 4; //mark bytes as read + } + } + break; + case CMD_WRITE_BASIC: + commands_printf("CMD_WRITE_BASIC"); + + if ( (serial_buffer.wr_ptr - rd_ptr) < CMD_WRITE_BASIC_LENGTH ) { //this packet needs 26 bytes + break; + } + + checksum_addr = rd_ptr + CMD_WRITE_BASIC_LENGTH - 1; + + if(checksum_addr <= serial_buffer.wr_ptr) { //check the checksum has been received + commands_printf("checksum received,calculated: %d %d",serial_buffer.data[checksum_addr], + checksum(serial_buffer.data + rd_ptr, CMD_WRITE_BASIC_LENGTH - 1)); + // check sum + if( serial_buffer.data[checksum_addr] == + checksum(serial_buffer.data + rd_ptr, CMD_WRITE_BASIC_LENGTH - 1) ) { + + volatile mc_configuration *mcconf = (volatile mc_configuration*) mc_interface_get_configuration(); + + mcconf->l_min_vin = (float) serial_buffer.data[rd_ptr + 2]; + mcconf->l_current_max = (float) serial_buffer.data[rd_ptr + 3]; + //skipping assist table for now + mcconf->si_wheel_diameter = (float)serial_buffer.data[rd_ptr + 24] * 25.4 / 2.0; + + //write settings to flash memory as motor_0 + conf_general_store_mc_configuration((mc_configuration*)mcconf, false); + + for(int i = 0; i<=CMD_WRITE_BASIC_LENGTH;i++) { + commands_printf("%02x ", serial_buffer.data[rd_ptr + i]); + } + + serial_buffer.rd_ptr = rd_ptr + CMD_WRITE_BASIC_LENGTH; //mark bytes as read + + serial_buffer.tx[0] = CMD_WRITE_BASIC; + serial_buffer.tx[1] = CMD_WRITE_BASIC_SUCCESS; + serial_send_packet(serial_buffer.tx, 2); + } + } + break; +/* case CMD_LIGHT_ON: + // TODO: turn ON the light + buffer.tx[0] = 0x01; + serial_send_packet(buffer.tx, 1); + rd_ptr +=2; + buffer.rd_ptr = rd_ptr; + continue; + case CMD_LIGHT_OFF: + // TODO: turn OFF the light + buffer.tx[0] = 0x01; + serial_send_packet(buffer.tx, 1); + rd_ptr +=2; + buffer.rd_ptr = rd_ptr; + continue; */ + default: + ++rd_ptr; + serial_buffer.rd_ptr = rd_ptr; //discard the CMD_WRITE byte as it wasn't followed by a supported command + continue; + } + } + + if(serial_buffer.data[rd_ptr] == CMD_READ) { + // start byte found + uint8_t command = serial_buffer.data[rd_ptr + 1]; + + switch (command) { + case CMD_VERSION: + serial_send_packet((uint8_t*)&controller_info, sizeof(controller_info_t)); + rd_ptr +=2; + serial_buffer.rd_ptr = rd_ptr; //mark bytes as read + continue; + case CMD_READ_BASIC: + { + commands_printf("CMD_READ_BASIC"); + + volatile mc_configuration *mcconf = (volatile mc_configuration*) mc_interface_get_configuration(); + + serial_buffer.tx[0] = 0x52; + serial_buffer.tx[1] = CMD_READ_BASIC_LENGTH - 2; + serial_buffer.tx[2] = (uint8_t) mcconf->l_min_vin; //low battery protection [V] + serial_buffer.tx[3] = (uint8_t) mcconf->l_current_max; //current limit [A] + + for(int i=0; i<10; i++) { + serial_buffer.tx[i+4] = (uint8_t) 20; //assist level [%] + } + + serial_buffer.tx[4] = 0; + serial_buffer.tx[5] = 28; + serial_buffer.tx[6] = 37; + serial_buffer.tx[7] = 46; + serial_buffer.tx[8] = 55; + serial_buffer.tx[9] = 64; + serial_buffer.tx[10] = 73; + serial_buffer.tx[11] = 82; + serial_buffer.tx[12] = 91; + serial_buffer.tx[13] = 100; + + for(int i=0; i<10; i++) { + serial_buffer.tx[i+14] = (uint8_t) 100; //speed level [%] + } + + serial_buffer.tx[24] = (uint8_t) (mcconf->si_wheel_diameter * 39.4 * 2.0); //wheel diameter [inch*2] + serial_buffer.tx[25] = 0x01; //speedometer [01 = internal] + serial_buffer.tx[26] = checksum(serial_buffer.tx + 2, CMD_READ_BASIC_LENGTH - 3); + + for(int i = 0; i<=CMD_READ_BASIC_LENGTH;i++) { + commands_printf("%02x ", serial_buffer.tx[i]); + } + serial_send_packet(serial_buffer.tx, CMD_READ_BASIC_LENGTH); + rd_ptr +=2; + serial_buffer.rd_ptr = rd_ptr; + continue; + } + case CMD_AMPS: + { + float current = mc_interface_get_tot_current_in_filtered() * 2.0; + utils_truncate_number(¤t, 0, 256); + serial_buffer.tx[0] = (uint8_t) (current); + serial_buffer.tx[1] = serial_buffer.tx[0]; + serial_send_packet(serial_buffer.tx, 2); + rd_ptr +=2; + serial_buffer.rd_ptr = rd_ptr; //mark bytes as read + continue; + } + case CMD_WHEEL_RPM: + { +#ifdef HW_HAS_WHEEL_SPEED_SENSOR + // rpm = spd [m/s] / perim [m] * 60[s/min] + const volatile mc_configuration *conf = mc_interface_get_configuration(); + uint16_t wheel_rpm = (uint16_t)(mc_interface_get_speed() / (M_PI * conf->si_wheel_diameter) * 60.0); + + serial_buffer.tx[0] = (uint8_t)(wheel_rpm / 256); + serial_buffer.tx[1] = (uint8_t)(wheel_rpm & 0xFFFF); + serial_buffer.tx[2] = serial_buffer.tx[0] + serial_buffer.tx[1] + 32; + serial_send_packet(serial_buffer.tx, 3); + rd_ptr +=2; + serial_buffer.rd_ptr = rd_ptr; +#endif + continue; + } + case CMD_MOVING: + if( mc_interface_get_speed() > 0.0) { + serial_buffer.tx[0] = 0x31; //0x31 0x31 indicates bike is in movement. + serial_buffer.tx[1] = 0x31; + } + else { + serial_buffer.tx[0] = 0x30; + serial_buffer.tx[1] = 0x30; + } + serial_send_packet(serial_buffer.tx, 2); + rd_ptr +=2; + serial_buffer.rd_ptr = rd_ptr; + continue; + case CMD_PEDAL_MOV: + // TODO: return pedal activity. 0: no activity + serial_buffer.tx[0] = 0x01; + serial_send_packet(serial_buffer.tx, 1); + rd_ptr +=2; + serial_buffer.rd_ptr = rd_ptr; + continue; + case CMD_BATT_SOC: + // Battery state of charge 0-100%. + { + float wh_left = 0.0; + float battery_level = mc_interface_get_battery_level(&wh_left) * 100.0; + utils_truncate_number((float*)&battery_level, 0.0, 100.0); + + serial_buffer.tx[0] = (uint8_t) battery_level; + serial_buffer.tx[1] = (uint8_t) battery_level; + serial_send_packet(serial_buffer.tx, 2); + rd_ptr +=2; + serial_buffer.rd_ptr = rd_ptr; + continue; + } + case CMD_BATT_VOLTAGE: + { + // This command was custom made for the eggrider display running at 72V + uint16_t batt_voltage = (uint16_t)(GET_INPUT_VOLTAGE() ) * 100.0; + serial_buffer.tx[0] = (uint8_t)(batt_voltage / 256); + serial_buffer.tx[1] = (uint8_t)(batt_voltage & 0xFFFF); + serial_buffer.tx[2] = serial_buffer.tx[0] + serial_buffer.tx[1] + 0x12; + serial_send_packet(serial_buffer.tx, 3); + rd_ptr +=2; + serial_buffer.rd_ptr = rd_ptr; + continue; + } + default: + ++rd_ptr; + serial_buffer.rd_ptr = rd_ptr; //discard the CMD_READ byte as it wasn't followed by a supported command + continue; + } + } + rd_ptr++; + } + + if(serial_buffer.rd_ptr > 0) { + memmove(serial_buffer.data, serial_buffer.data + serial_buffer.rd_ptr, LUNA_SERIAL_BUFFER_SIZE - serial_buffer.rd_ptr); + serial_buffer.wr_ptr -= serial_buffer.rd_ptr; + serial_buffer.rd_ptr = 0; + } + if(serial_buffer.wr_ptr == (LUNA_SERIAL_BUFFER_SIZE - 1) ) { + //shift buffer to the left discarding the oldest byte + memmove(serial_buffer.data,serial_buffer.data + 1, LUNA_SERIAL_BUFFER_SIZE - 1); + serial_buffer.wr_ptr -= 1; + } +} + +static void serial_display_check_rx(void){ + bool rx = true; + while (rx) { + rx = false; + + if (display_uart_is_running) { + msg_t res = sdGetTimeout(&HW_UART_DEV, TIME_IMMEDIATE); + if (res != MSG_TIMEOUT) { + serial_display_byte_process(res); + rx = true; + } + } + } +} + +static THD_FUNCTION(display_process_thread, arg) { + (void)arg; + chRegSetThreadName("Luna serial display"); + + event_listener_t el; + chEvtRegisterMaskWithFlags(&HW_UART_DEV.event, &el, EVENT_MASK(0), CHN_INPUT_AVAILABLE); + + // Wait for motor config initialization + chThdSleepMilliseconds(500); + + // Set default power level + set_assist_level(pas_level); + + for(;;) { + chEvtWaitAnyTimeout(ALL_EVENTS, ST2MS(100)); + serial_display_check_rx(); + set_assist_level(pas_level); //assert periodically to make sure changes are commited when a new motor config is written + } +} +#endif diff --git a/hwconf/luna_display_serial.h b/hwconf/luna_display_serial.h new file mode 100644 index 00000000..502fe687 --- /dev/null +++ b/hwconf/luna_display_serial.h @@ -0,0 +1,27 @@ +/* + Copyright 2021 Marcos Chaparro mchaparro@powerdesigns.ca + + This file is part of the VESC firmware. + + The VESC firmware is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + The VESC firmware is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + */ + +#ifndef APP_LUNA_DISPLAY_SERIAL_H_ +#define APP_LUNA_DISPLAY_SERIAL_H_ + +#include "stdint.h" + +void luna_display_serial_start(int8_t initial_level); + +#endif /* APP_LUNA_DISPLAY_SERIAL_H_ */ diff --git a/mcconf/mcconf_luna_bbshd_52v.h b/mcconf/mcconf_luna_bbshd_52v.h new file mode 100644 index 00000000..1d813d54 --- /dev/null +++ b/mcconf/mcconf_luna_bbshd_52v.h @@ -0,0 +1,512 @@ +// This file is autogenerated by VESC Tool + +#ifndef MCCONF_LUNA_BBSHD_52V_DIRE_WOLF_H_ +#define MCCONF_LUNA_BBSHD_52V_DIRE_WOLF_H_ + +// PWM Mode +#define MCCONF_PWM_MODE 1 + +// Commutation Mode +#define MCCONF_COMM_MODE 0 + +// Motor Type +#define MCCONF_DEFAULT_MOTOR_TYPE 2 + +// Sensor Mode +#define MCCONF_SENSOR_MODE 0 + +// Motor Current Max +#define MCCONF_L_CURRENT_MAX 180 + +// Motor Current Max Brake +#define MCCONF_L_CURRENT_MIN -30 + +// Battery Current Max +#define MCCONF_L_IN_CURRENT_MAX 105 + +// Battery Current Max Regen +#define MCCONF_L_IN_CURRENT_MIN -20 + +// Absolute Maximum Current +#define MCCONF_L_MAX_ABS_CURRENT 230 + +// Max ERPM Reverse +#define MCCONF_L_RPM_MIN -26000 + +// Max ERPM +#define MCCONF_L_RPM_MAX 26000 + +// ERPM Limit Start +#define MCCONF_L_RPM_START 0.85 + +// Max ERPM Full Brake +#define MCCONF_L_CURR_MAX_RPM_FBRAKE 300 + +// Max ERPM Full Brake Current Control +#define MCCONF_L_CURR_MAX_RPM_FBRAKE_CC 1500 + +// Minimum Input Voltage +#define MCCONF_L_MIN_VOLTAGE 35 + +// Maximum Input Voltage +#define MCCONF_L_MAX_VOLTAGE 63 + +// Battery Voltage Cutoff Start +#define MCCONF_L_BATTERY_CUT_START 44.2 + +// Battery Voltage Cutoff End +#define MCCONF_L_BATTERY_CUT_END 40.3 + +// Slow ABS Current Limit +#define MCCONF_L_SLOW_ABS_OVERCURRENT 1 + +// MOSFET Temp Cutoff Start +#define MCCONF_L_LIM_TEMP_FET_START 85 + +// MOSFET Temp Cutoff End +#define MCCONF_L_LIM_TEMP_FET_END 90 + +// Motor Temp Cutoff Start +#define MCCONF_L_LIM_TEMP_MOTOR_START 100 + +// Motor Temp Cutoff End +#define MCCONF_L_LIM_TEMP_MOTOR_END 110 + +// Acceleration Temperature Decrease +#define MCCONF_L_LIM_TEMP_ACCEL_DEC 0 + +// Minimum Duty Cycle +#define MCCONF_L_MIN_DUTY 0.005 + +// Maximum Duty Cycle +#define MCCONF_L_MAX_DUTY 0.95 + +// Maximum Wattage +#define MCCONF_L_WATT_MAX 7500 + +// Maximum Braking Wattage +#define MCCONF_L_WATT_MIN -1.5e+06 + +// Max Current Scale +#define MCCONF_L_CURRENT_MAX_SCALE 1 + +// Min Current Scale +#define MCCONF_L_CURRENT_MIN_SCALE 1 + +// Duty Cycle Current Limit Start +#define MCCONF_L_DUTY_START 1 + +// Minimum ERPM +#define MCCONF_SL_MIN_RPM 150 + +// Minimum ERPM Integrator +#define MCCONF_SL_MIN_ERPM_CYCLE_INT_LIMIT 1100 + +// Max Brake Current at Direction Change +#define MCCONF_SL_MAX_FB_CURR_DIR_CHANGE 10 + +// Cycle Integrator Limit +#define MCCONF_SL_CYCLE_INT_LIMIT 62 + +// Phase Advance at BR ERPM +#define MCCONF_SL_PHASE_ADVANCE_AT_BR 0.8 + +// BR ERPM +#define MCCONF_SL_CYCLE_INT_BR 80000 + +// BEMF Coupling +#define MCCONF_SL_BEMF_COUPLING_K 600 + +// Hall Table [0] +#define MCCONF_HALL_TAB_0 -1 + +// Hall Table [1] +#define MCCONF_HALL_TAB_1 1 + +// Hall Table [2] +#define MCCONF_HALL_TAB_2 3 + +// Hall Table [3] +#define MCCONF_HALL_TAB_3 2 + +// Hall Table [4] +#define MCCONF_HALL_TAB_4 5 + +// Hall Table [5] +#define MCCONF_HALL_TAB_5 6 + +// Hall Table [6] +#define MCCONF_HALL_TAB_6 4 + +// Hall Table [7] +#define MCCONF_HALL_TAB_7 -1 + +// Sensorless ERPM Hybrid +#define MCCONF_HALL_ERPM 2000 + +// Current KP +#define MCCONF_FOC_CURRENT_KP 0.1437 + +// Current KI +#define MCCONF_FOC_CURRENT_KI 32.6 + +// Switching Frequency +#define MCCONF_FOC_F_SW 50000 + +// Dead Time Compensation +#define MCCONF_FOC_DT_US 0.12 + +// Encoder Inverted +#define MCCONF_FOC_ENCODER_INVERTED 0 + +// Encoder Offset +#define MCCONF_FOC_ENCODER_OFFSET 180 + +// Encoder Ratio +#define MCCONF_FOC_ENCODER_RATIO 7 + +// Sin/Cos Sine Gain Compensation +#define MCCONF_FOC_ENCODER_SIN_GAIN 1 + +// Sin/Cos Cosine Gain Compensation +#define MCCONF_FOC_ENCODER_COS_GAIN 1 + +// Sin/Cos Sine Offset +#define MCCONF_FOC_ENCODER_SIN_OFFSET 1.65 + +// Sin/Cos Cosine Offset +#define MCCONF_FOC_ENCODER_COS_OFFSET 1.65 + +// Sin/Cos Filter Constant +#define MCCONF_FOC_ENCODER_SINCOS_FILTER 0.5 + +// Sensor Mode +#define MCCONF_FOC_SENSOR_MODE 2 + +// Speed Tracker Kp +#define MCCONF_FOC_PLL_KP 2000 + +// Speed Tracker Ki +#define MCCONF_FOC_PLL_KI 30000 + +// Motor Inductance (L) +#define MCCONF_FOC_MOTOR_L 0.00012374 + +// Motor Inductance Difference (Ld - Lq) +#define MCCONF_FOC_MOTOR_LD_LQ_DIFF 3e-05 + +// Motor Resistance (R) +#define MCCONF_FOC_MOTOR_R 0.0326 + +// Motor Flux Linkage (λ) +#define MCCONF_FOC_MOTOR_FLUX_LINKAGE 0.020798 + +// Observer Gain (x1M) +#define MCCONF_FOC_OBSERVER_GAIN 710000 + +// Observer Gain At Minimum Duty +#define MCCONF_FOC_OBSERVER_GAIN_SLOW 0.3 + +// Duty Downramp Kp +#define MCCONF_FOC_DUTY_DOWNRAMP_KP 10 + +// Duty Downramp Ki +#define MCCONF_FOC_DUTY_DOWNRAMP_KI 200 + +// Openloop ERPM +#define MCCONF_FOC_OPENLOOP_RPM 400 + +// Openloop ERPM at Min Current +#define MCCONF_FOC_OPENLOOP_RPM_LOW 0 + +// D Axis Gain Scaling Start +#define MCCONF_FOC_D_GAIN_SCALE_START 1 + +// D Axis Gain Scaling at Max Mod +#define MCCONF_FOC_D_GAIN_SCALE_MAX_MOD 0.2 + +// Openloop Hysteresis +#define MCCONF_FOC_SL_OPENLOOP_HYST 0.1 + +// Openloop Lock Time +#define MCCONF_FOC_SL_OPENLOOP_T_LOCK 0 + +// Openloop Ramp Time +#define MCCONF_FOC_SL_OPENLOOP_T_RAMP 0.1 + +// Openloop Time +#define MCCONF_FOC_SL_OPENLOOP_TIME 0.1 + +// Hall Table [0] +#define MCCONF_FOC_HALL_TAB_0 255 + +// Hall Table [1] +#define MCCONF_FOC_HALL_TAB_1 171 + +// Hall Table [2] +#define MCCONF_FOC_HALL_TAB_2 102 + +// Hall Table [3] +#define MCCONF_FOC_HALL_TAB_3 135 + +// Hall Table [4] +#define MCCONF_FOC_HALL_TAB_4 35 + +// Hall Table [5] +#define MCCONF_FOC_HALL_TAB_5 5 + +// Hall Table [6] +#define MCCONF_FOC_HALL_TAB_6 68 + +// Hall Table [7] +#define MCCONF_FOC_HALL_TAB_7 255 + +// Hall Interpolation ERPM +#define MCCONF_FOC_HALL_INTERP_ERPM 500 + +// Sensorless ERPM +#define MCCONF_FOC_SL_ERPM 8000 + +// Sample in V0 and V7 +#define MCCONF_FOC_SAMPLE_V0_V7 0 + +// High Current Sampling Mode +#define MCCONF_FOC_SAMPLE_HIGH_CURRENT 0 + +// Stator Saturation Compensation +#define MCCONF_FOC_SAT_COMP 0.2 + +// Temp Comp +#define MCCONF_FOC_TEMP_COMP 1 + +// Temp Comp Base Temp +#define MCCONF_FOC_TEMP_COMP_BASE_TEMP 25 + +// Current Filter Constant +#define MCCONF_FOC_CURRENT_FILTER_CONST 0.1 + +// Current Controller Decoupling +#define MCCONF_FOC_CC_DECOUPLING 0 + +// Observer Type +#define MCCONF_FOC_OBSERVER_TYPE 0 + +// HFI Start Voltage +#define MCCONF_FOC_HFI_VOLTAGE_START 20 + +// HFI Run Voltage +#define MCCONF_FOC_HFI_VOLTAGE_RUN 4 + +// HFI Max Voltage +#define MCCONF_FOC_HFI_VOLTAGE_MAX 10 + +// Sensorless ERPM HFI +#define MCCONF_FOC_SL_ERPM_HFI 2000 + +// HFI Start Samples +#define MCCONF_FOC_HFI_START_SAMPLES 65 + +// HFI Observer Override Time +#define MCCONF_FOC_HFI_OBS_OVR_SEC 0.001 + +// HFI Samples +#define MCCONF_FOC_HFI_SAMPLES 1 + +// Run calibration at boot +#define MCCONF_FOC_OFFSETS_CAL_ON_BOOT 1 + +// Current Offset 0 +#define MCCONF_FOC_OFFSETS_CURRENT_0 1795.9 + +// Current Offset 1 +#define MCCONF_FOC_OFFSETS_CURRENT_1 1796.08 + +// Current Offset 2 +#define MCCONF_FOC_OFFSETS_CURRENT_2 1795.74 + +// Voltage Offset 0 +#define MCCONF_FOC_OFFSETS_VOLTAGE_0 0 + +// Voltage Offset 1 +#define MCCONF_FOC_OFFSETS_VOLTAGE_1 0 + +// Voltage Offset 2 +#define MCCONF_FOC_OFFSETS_VOLTAGE_2 0 + +// Voltage Offset Undriven 0 +#define MCCONF_FOC_OFFSETS_VOLTAGE_UNDRIVEN_0 0 + +// Voltage Offset Undriven 1 +#define MCCONF_FOC_OFFSETS_VOLTAGE_UNDRIVEN_1 0 + +// Voltage Offset Undriven 2 +#define MCCONF_FOC_OFFSETS_VOLTAGE_UNDRIVEN_2 0 + +// Enable Phase Filters +#define MCCONF_FOC_PHASE_FILTER_ENABLE 1 + +// Maximum ERPM for phase filters +#define MCCONF_FOC_PHASE_FILTER_MAX_ERPM 10000 + +// Field Weakening Current Max +#define MCCONF_FOC_FW_CURRENT_MAX 30 + +// Field Weakening Duty Start +#define MCCONF_FOC_FW_DUTY_START 0.9 + +// Field Weakening Ramp Time +#define MCCONF_FOC_FW_RAMP_TIME 0.3 + +// Q Axis Current Factor +#define MCCONF_FOC_FW_Q_CURRENT_FACTOR 0.02 + +// Buffer Notification Length +#define MCCONF_GPD_BUFFER_NOTIFY_LEFT 200 + +// Buffer Sampling Interpolation +#define MCCONF_GPD_BUFFER_INTERPOL 0 + +// Current Filter Constant +#define MCCONF_GPD_CURRENT_FILTER_CONST 0.1 + +// Current KP +#define MCCONF_GPD_CURRENT_KP 0.03 + +// Current KI +#define MCCONF_GPD_CURRENT_KI 50 + +// Speed PID Kp +#define MCCONF_S_PID_KP 0.004 + +// Speed PID Ki +#define MCCONF_S_PID_KI 0.004 + +// Speed PID Kd +#define MCCONF_S_PID_KD 0.0001 + +// Speed PID Kd Filer +#define MCCONF_S_PID_KD_FILTER 0.2 + +// Minimum ERPM +#define MCCONF_S_PID_MIN_RPM 900 + +// Allow Braking +#define MCCONF_S_PID_ALLOW_BRAKING 1 + +// Ramp eRPMs per second +#define MCCONF_S_PID_RAMP_ERPMS_S -1 + +// Position PID Kp +#define MCCONF_P_PID_KP 0.03 + +// Position PID Ki +#define MCCONF_P_PID_KI 0 + +// Position PID Kd +#define MCCONF_P_PID_KD 0.0004 + +// Position PID Kd Filer +#define MCCONF_P_PID_KD_FILTER 0.2 + +// Position Angle Division +#define MCCONF_P_PID_ANG_DIV 1 + +// Startup boost +#define MCCONF_CC_STARTUP_BOOST_DUTY 0.01 + +// Minimum Current +#define MCCONF_CC_MIN_CURRENT 0.01 + +// Current Controller Gain +#define MCCONF_CC_GAIN 0.0046 + +// Current Control Ramp Step Max +#define MCCONF_CC_RAMP_STEP 0.04 + +// Fault Stop Time +#define MCCONF_M_FAULT_STOP_TIME 500 + +// Duty Ramp Step Max +#define MCCONF_M_RAMP_STEP 0.02 + +// Current Backoff Gain +#define MCCONF_M_CURRENT_BACKOFF_GAIN 0.5 + +// ABI Encoder Counts +#define MCCONF_M_ENCODER_COUNTS 8192 + +// Sensor Port Mode +#define MCCONF_M_SENSOR_PORT_MODE 0 + +// Invert Motor Direction +#define MCCONF_M_INVERT_DIRECTION 1 + +// DRV8301 OC Mode +#define MCCONF_M_DRV8301_OC_MODE 0 + +// DRV8301 OC Adjustment +#define MCCONF_M_DRV8301_OC_ADJ 16 + +// Minimum Switching Frequency +#define MCCONF_M_BLDC_F_SW_MIN 3000 + +// Maximum Switching Frequency +#define MCCONF_M_BLDC_F_SW_MAX 35000 + +// Switching Frequency +#define MCCONF_M_DC_F_SW 25000 + +// Beta Value for Motor Thermistor +#define MCCONF_M_NTC_MOTOR_BETA 3990 + +// Auxiliary Output Mode +#define MCCONF_M_OUT_AUX_MODE 0 + +// Motor Temperature Sensor Type +#define MCCONF_M_MOTOR_TEMP_SENS_TYPE 0 + +// Coefficient for PTC Motor Thermistor +#define MCCONF_M_PTC_MOTOR_COEFF 0.61 + +// Hall Sensor Extra Samples +#define MCCONF_M_HALL_EXTRA_SAMPLES 1 + +// Motor Poles +#define MCCONF_SI_MOTOR_POLES 8 + +// Gear Ratio +#define MCCONF_SI_GEAR_RATIO 7 + +// Wheel Diameter +#define MCCONF_SI_WHEEL_DIAMETER 0.66 + +// Battery Type +#define MCCONF_SI_BATTERY_TYPE 0 + +// Battery Cells Series +#define MCCONF_SI_BATTERY_CELLS 14 + +// Battery Capacity +#define MCCONF_SI_BATTERY_AH 21 + +// BMS Type +#define MCCONF_BMS_TYPE 1 + +// Temperature Limit Start +#define MCCONF_BMS_T_LIMIT_START 45 + +// Temperature Limit End +#define MCCONF_BMS_T_LIMIT_END 65 + +// SOC Limit Start +#define MCCONF_BMS_SOC_LIMIT_START 0.05 + +// SOC Limit End +#define MCCONF_BMS_SOC_LIMIT_END 0 + +// Forward CAN to Local +#define MCCONF_BMS_FWD_CAN_MODE 0 + +// MCCONF_LUNA_BBSHD_52V_DIRE_WOLF_H_ +#endif + diff --git a/qmlui/app/qmlui_luna_v1.c b/qmlui/app/qmlui_luna_v1.c new file mode 100644 index 00000000..536268c7 --- /dev/null +++ b/qmlui/app/qmlui_luna_v1.c @@ -0,0 +1,457 @@ +// This file is autogenerated by VESC Tool + +#include "qmlui_luna_v1.h" + +uint8_t data_qml_app[7202] = { + 0x00, 0x01, 0x90, 0x9d, 0x78, 0xda, 0xed, 0x3d, 0x6b, 0x73, 0xdb, 0x38, 0x92, 0xdf, 0xfd, 0x2b, + 0x30, 0xba, 0xba, 0x39, 0x69, 0xe3, 0xa1, 0x64, 0x3b, 0x76, 0x76, 0x74, 0x97, 0x9d, 0x8a, 0x9d, + 0x78, 0xc6, 0x55, 0xce, 0x8c, 0xc7, 0x72, 0x32, 0x1f, 0x36, 0x5b, 0x2e, 0x5a, 0x84, 0x64, 0x54, + 0xf8, 0x1a, 0x00, 0xf2, 0x63, 0xf7, 0x5c, 0x75, 0x3f, 0xe0, 0x7e, 0xe5, 0xfd, 0x92, 0x6b, 0x80, + 0xa4, 0x44, 0x52, 0x7c, 0x80, 0x2f, 0x5b, 0x76, 0xc0, 0xcc, 0x24, 0x36, 0x09, 0x74, 0x03, 0x8d, + 0x46, 0x77, 0xa3, 0xd1, 0x0d, 0x10, 0xc7, 0xf7, 0x28, 0x47, 0x9f, 0xb1, 0x65, 0x61, 0x6a, 0xdc, + 0x60, 0x36, 0x95, 0x7f, 0x11, 0x97, 0x63, 0x3a, 0x33, 0xa7, 0x18, 0xed, 0x18, 0xa3, 0xff, 0x24, + 0x41, 0xa1, 0xde, 0x9f, 0x74, 0x3a, 0x1e, 0x3a, 0xde, 0x15, 0xb1, 0x71, 0x2f, 0x7a, 0xf9, 0x3b, + 0xff, 0x7d, 0x41, 0xa6, 0x5f, 0xd1, 0xae, 0xf1, 0x66, 0x2b, 0xf9, 0xca, 0x38, 0xf2, 0x5c, 0x4e, + 0x3d, 0x9b, 0xc1, 0xb7, 0xdd, 0xf4, 0xb7, 0x53, 0xf3, 0xde, 0x5b, 0x70, 0x06, 0xe0, 0xf7, 0x56, + 0x9f, 0x0c, 0xdb, 0xbc, 0x62, 0x06, 0xc3, 0x9c, 0x13, 0x77, 0x2e, 0xbe, 0x8d, 0x90, 0xc9, 0xd0, + 0xef, 0x93, 0xf0, 0x45, 0x54, 0xb0, 0xb0, 0xb1, 0x59, 0x85, 0xae, 0x6c, 0xbc, 0x30, 0xe1, 0x5d, + 0xce, 0xe7, 0xa9, 0xe7, 0x38, 0xa6, 0x6b, 0xb1, 0xfc, 0xef, 0xee, 0x8c, 0xcc, 0x7d, 0x93, 0x9a, + 0x4e, 0x6e, 0x99, 0x05, 0x27, 0x36, 0xe1, 0xf7, 0xf2, 0xf3, 0xd6, 0x09, 0xc7, 0x0e, 0xfa, 0xd7, + 0x16, 0x82, 0x87, 0x58, 0x63, 0xe4, 0x98, 0xc4, 0x15, 0xaf, 0xe4, 0x0b, 0xd3, 0x9d, 0x5e, 0x7b, + 0x94, 0x19, 0x33, 0x62, 0xdb, 0x63, 0x04, 0x40, 0xb1, 0xcb, 0xe5, 0x87, 0xe1, 0x30, 0xfa, 0xe4, + 0x98, 0x74, 0x4e, 0x5c, 0x36, 0x46, 0x3b, 0xa3, 0xe0, 0xc3, 0x8c, 0xdc, 0x21, 0x7e, 0x4d, 0xd8, + 0x96, 0x2c, 0xe8, 0x53, 0xcf, 0xc7, 0x14, 0x70, 0x1d, 0xda, 0xf8, 0x93, 0xe8, 0x96, 0x03, 0x3f, + 0x8c, 0xa1, 0x35, 0x6c, 0x7a, 0x32, 0x13, 0x7d, 0x7d, 0x8f, 0x6f, 0xc8, 0x14, 0xf7, 0x07, 0xc9, + 0xd2, 0x47, 0x51, 0x2f, 0x9d, 0xe8, 0xa7, 0x65, 0x9d, 0x88, 0x00, 0xe9, 0x2a, 0x37, 0x26, 0x45, + 0xb3, 0xdb, 0xcf, 0x98, 0x32, 0xe2, 0xb9, 0xe3, 0x55, 0x45, 0x63, 0x8e, 0xf9, 0x71, 0xf4, 0x7e, + 0x1d, 0x8f, 0xa0, 0xd6, 0x59, 0x40, 0x2d, 0xe7, 0xe3, 0x54, 0xfc, 0xbe, 0xc4, 0xe4, 0x4c, 0x83, + 0xcf, 0xc5, 0x95, 0xde, 0xf9, 0x7e, 0xa2, 0x96, 0x19, 0xfc, 0x5e, 0x56, 0xed, 0xc4, 0x9d, 0x79, + 0x89, 0x7a, 0x24, 0x7c, 0xb1, 0x5e, 0xf1, 0xca, 0xf3, 0x6c, 0x44, 0xd8, 0x2f, 0x1e, 0x25, 0xff, + 0x04, 0x2e, 0x35, 0x61, 0x28, 0x6e, 0x89, 0xc5, 0xaf, 0xd1, 0xdf, 0xd0, 0x35, 0x26, 0xf3, 0x6b, + 0xbe, 0x95, 0x51, 0x9e, 0x4d, 0xaf, 0xb1, 0xb5, 0xb0, 0xb1, 0x00, 0xf9, 0x07, 0x25, 0x1c, 0x88, + 0x3e, 0x33, 0x6d, 0x86, 0x33, 0x8a, 0xc2, 0x88, 0x61, 0xeb, 0xe2, 0x9a, 0x7a, 0x9c, 0xdb, 0xcb, + 0x62, 0xeb, 0xc4, 0x0d, 0x86, 0xff, 0xc2, 0xbc, 0x3a, 0x34, 0x69, 0xc4, 0x0c, 0x06, 0x97, 0xbf, + 0x2e, 0x19, 0x46, 0xfe, 0x05, 0x94, 0xf7, 0x3d, 0x57, 0x7c, 0xf5, 0x5c, 0xf1, 0xb3, 0x8d, 0x39, + 0x06, 0xce, 0x0a, 0x78, 0x4c, 0x82, 0x8d, 0x41, 0x32, 0x6e, 0x08, 0x23, 0xc0, 0x07, 0xe8, 0x2d, + 0xe2, 0x74, 0x81, 0xb3, 0xcb, 0x60, 0xd7, 0x84, 0x22, 0x56, 0xbc, 0xcc, 0xc3, 0x56, 0x88, 0xcb, + 0x5e, 0x38, 0x6e, 0x30, 0x41, 0x63, 0x18, 0x32, 0x19, 0x77, 0xf9, 0x35, 0x80, 0x1a, 0x2b, 0x1e, + 0x31, 0x7f, 0xd0, 0x9b, 0xc4, 0xeb, 0xa0, 0xee, 0x38, 0xd1, 0x9e, 0x44, 0x81, 0x2c, 0x54, 0x82, + 0x12, 0x89, 0x42, 0xd3, 0x05, 0x15, 0xef, 0x4f, 0x5c, 0x0b, 0xdf, 0x8d, 0x11, 0xbb, 0x25, 0x3e, + 0xfe, 0x4c, 0xf0, 0xad, 0x11, 0x7f, 0x9f, 0xa8, 0x10, 0xf4, 0x48, 0x02, 0xfd, 0x43, 0x8c, 0xf5, + 0x38, 0x49, 0x1d, 0xd9, 0x60, 0xa0, 0x2c, 0x99, 0x12, 0x1e, 0x7e, 0x1f, 0x25, 0x11, 0xda, 0xc4, + 0x0f, 0xeb, 0x24, 0xbb, 0x13, 0x8d, 0x28, 0xc8, 0x21, 0x74, 0xb5, 0xe0, 0xdc, 0x13, 0x73, 0x77, + 0xbf, 0xac, 0x4c, 0x88, 0x63, 0x67, 0x34, 0x4a, 0x82, 0x13, 0xf4, 0x90, 0x05, 0x52, 0xc4, 0x14, + 0x0f, 0xc7, 0x77, 0x40, 0xb7, 0x3f, 0xd9, 0x05, 0xed, 0xf7, 0x80, 0x0b, 0x5d, 0x3c, 0xe5, 0xbd, + 0xc1, 0x5a, 0xa9, 0xdb, 0x00, 0xf2, 0x47, 0x93, 0x5f, 0x83, 0x2c, 0xb9, 0xeb, 0x07, 0x43, 0x60, + 0xc4, 0xd0, 0x6e, 0xaf, 0xd5, 0x59, 0xc3, 0x14, 0xd4, 0x09, 0x26, 0xc5, 0x10, 0x25, 0x40, 0xb0, + 0x24, 0xca, 0x87, 0x5a, 0xcd, 0x3f, 0x27, 0x16, 0x7e, 0xae, 0x6d, 0xbf, 0x58, 0xb8, 0xcf, 0xb6, + 0xed, 0x87, 0xe4, 0x2b, 0x46, 0x47, 0xc7, 0x3f, 0x3f, 0xd7, 0xf6, 0x1f, 0x13, 0xea, 0xdc, 0x82, + 0x44, 0xd8, 0xa4, 0xf6, 0x3f, 0xac, 0x66, 0xf0, 0x24, 0x92, 0x43, 0x19, 0xa2, 0x70, 0x29, 0xa3, + 0x0a, 0xe4, 0x58, 0x88, 0x50, 0x45, 0x88, 0xfd, 0x22, 0x15, 0x55, 0x86, 0x14, 0xcb, 0x11, 0x74, + 0x4a, 0xc2, 0xec, 0xcc, 0x9c, 0x63, 0x68, 0xfa, 0x1a, 0x9d, 0x7e, 0xa6, 0xc4, 0x5a, 0x53, 0x09, + 0xe9, 0x0e, 0xce, 0xa1, 0x50, 0xe6, 0xc7, 0x5c, 0xa3, 0x27, 0xfd, 0x64, 0xbe, 0x9c, 0x4a, 0x85, + 0x04, 0x32, 0x35, 0xae, 0xb0, 0xd1, 0x4f, 0x68, 0x17, 0x81, 0xf8, 0x2c, 0xa8, 0x31, 0xf1, 0x4d, + 0xb0, 0x0d, 0xe7, 0x69, 0x59, 0x1c, 0x3d, 0xd4, 0xbb, 0x5d, 0x96, 0xd8, 0x19, 0x6d, 0x65, 0x96, + 0x39, 0x71, 0x02, 0x7a, 0xe4, 0xb1, 0x8b, 0xe8, 0x35, 0x11, 0x65, 0x72, 0x4b, 0x84, 0x83, 0xb1, + 0x6c, 0x91, 0x5b, 0xa1, 0x1b, 0xb1, 0xfa, 0x3e, 0xc5, 0x33, 0x0c, 0x3c, 0x61, 0x45, 0x23, 0x1a, + 0xe3, 0x53, 0xe5, 0xba, 0x11, 0xc7, 0xf4, 0x99, 0xb7, 0xa0, 0x53, 0x3c, 0x21, 0xff, 0xc4, 0x46, + 0x60, 0xee, 0xa0, 0xbf, 0x64, 0x23, 0x1a, 0x94, 0x4e, 0x98, 0xf4, 0x33, 0x44, 0x31, 0xe0, 0x4a, + 0xcd, 0x33, 0x6d, 0x32, 0x77, 0x1d, 0x69, 0x11, 0xc0, 0x12, 0xe0, 0x9d, 0xf8, 0xed, 0x97, 0x23, + 0x2c, 0x6c, 0x7a, 0xf4, 0xdf, 0xcb, 0x37, 0x87, 0x60, 0x49, 0x79, 0x4e, 0x2e, 0xa8, 0x36, 0xa6, + 0x7e, 0x0d, 0x11, 0x10, 0x7f, 0x82, 0x6e, 0x8f, 0xc3, 0x55, 0x12, 0xc5, 0x6c, 0x68, 0x7b, 0x73, + 0xef, 0xf2, 0xf6, 0x1a, 0x0c, 0xc5, 0x4b, 0x7b, 0xe1, 0x9a, 0x97, 0xd8, 0x22, 0x1c, 0x0c, 0x66, + 0xc3, 0x77, 0xe7, 0xbd, 0x4c, 0x30, 0x0f, 0xd9, 0x4c, 0xf8, 0x33, 0xf5, 0x16, 0xfe, 0xa1, 0x77, + 0x57, 0xc2, 0x87, 0x57, 0xd2, 0x32, 0x05, 0x4a, 0xdd, 0xe5, 0x16, 0xe3, 0x44, 0x9a, 0xa3, 0xa1, + 0x26, 0x38, 0xfd, 0x80, 0x42, 0x23, 0x02, 0x5a, 0xd5, 0x1b, 0x94, 0x8d, 0x53, 0x91, 0xe1, 0x54, + 0xc2, 0xf1, 0x3b, 0x5b, 0xb9, 0xa5, 0x4b, 0x05, 0x4b, 0x5a, 0x86, 0x70, 0xcf, 0xff, 0x28, 0x17, + 0x48, 0x63, 0xf4, 0xc3, 0xbe, 0x52, 0x8d, 0x2b, 0xc9, 0x3b, 0x15, 0x2b, 0x65, 0x9b, 0xb9, 0x99, + 0xc2, 0x46, 0x8a, 0xd2, 0xd5, 0x4a, 0x20, 0xef, 0x09, 0xad, 0xf2, 0x12, 0xea, 0xa5, 0x25, 0xd3, + 0x0f, 0x3b, 0xa3, 0x62, 0xec, 0x2a, 0xa2, 0x2e, 0x06, 0x98, 0x95, 0x95, 0x59, 0x4a, 0xdb, 0x83, + 0xe2, 0x6e, 0xe7, 0x6a, 0xeb, 0x2c, 0xde, 0x84, 0x35, 0xfd, 0xaf, 0xa6, 0x83, 0x83, 0x3a, 0xe5, + 0x4a, 0x38, 0xa6, 0xef, 0x45, 0xb5, 0x5e, 0xb9, 0x18, 0xca, 0x60, 0xba, 0x5d, 0xd5, 0x4a, 0x69, + 0xd9, 0xba, 0x3b, 0x1a, 0xa9, 0x56, 0x55, 0x9d, 0x13, 0xd1, 0x13, 0xae, 0xba, 0xe4, 0x64, 0x85, + 0x89, 0x0a, 0xed, 0x5d, 0xc0, 0x82, 0xe0, 0x6f, 0x68, 0xb4, 0x55, 0x5a, 0x15, 0x16, 0x7e, 0xb0, + 0x36, 0xf9, 0x9a, 0x5c, 0xf6, 0x15, 0xd2, 0x7d, 0x86, 0xfa, 0x80, 0x46, 0x2c, 0x24, 0x99, 0x01, + 0x23, 0x7f, 0x24, 0x70, 0xf5, 0x07, 0x02, 0xdb, 0x40, 0x11, 0x84, 0x78, 0x00, 0x84, 0x18, 0x83, + 0xf7, 0xc4, 0x04, 0x79, 0x66, 0xc0, 0x32, 0x26, 0x5a, 0xf1, 0x97, 0x3d, 0x0f, 0x08, 0xc3, 0x94, + 0xa8, 0x80, 0x29, 0x5c, 0xb5, 0x63, 0x87, 0xf0, 0x8f, 0x98, 0x31, 0xd0, 0xaa, 0x01, 0xd2, 0x7e, + 0x65, 0x25, 0x24, 0x9e, 0xde, 0x04, 0x73, 0x24, 0x64, 0x5c, 0xe0, 0x0e, 0x41, 0x92, 0x91, 0xb6, + 0xeb, 0x81, 0xfa, 0xd5, 0x43, 0x56, 0x00, 0x85, 0x61, 0x1b, 0xe4, 0x25, 0xb6, 0x8c, 0x9a, 0xa0, + 0xa4, 0x98, 0xd8, 0x0e, 0xfe, 0x51, 0x24, 0xe3, 0x56, 0xb3, 0x12, 0x0f, 0x2d, 0x4d, 0xe3, 0x60, + 0x52, 0xf6, 0xce, 0x4c, 0x42, 0x7b, 0x5d, 0x4d, 0x8f, 0xe6, 0x13, 0x32, 0x29, 0x00, 0xda, 0x9f, + 0x54, 0x3e, 0x74, 0x3f, 0x36, 0x15, 0x42, 0x06, 0x1d, 0x6c, 0xc8, 0x18, 0x49, 0x51, 0x3b, 0x35, + 0xdd, 0x1a, 0x72, 0x76, 0x02, 0xd5, 0x9e, 0x8f, 0x9c, 0x6d, 0x7f, 0x60, 0x57, 0x64, 0x8b, 0xb9, + 0xc6, 0xca, 0x95, 0x7a, 0xf4, 0x08, 0x1f, 0xac, 0xc1, 0xb8, 0x49, 0xb9, 0x20, 0x64, 0xd7, 0x0c, + 0x71, 0xe4, 0x39, 0x57, 0x5e, 0xb1, 0x45, 0x98, 0xb2, 0x0c, 0x8b, 0xac, 0xc2, 0x82, 0xb1, 0x3d, + 0xe8, 0x78, 0xa6, 0x2b, 0xd9, 0xfe, 0x9f, 0x83, 0x37, 0xe5, 0xec, 0x4c, 0x4d, 0x97, 0xcd, 0x3c, + 0xea, 0xfc, 0x46, 0x89, 0x34, 0xf5, 0x84, 0xea, 0x33, 0xc2, 0xca, 0x4a, 0x93, 0xe1, 0xdc, 0x13, + 0xf6, 0x59, 0xef, 0x2b, 0xbe, 0x2f, 0x17, 0x71, 0x8e, 0x67, 0x61, 0xb0, 0x10, 0x4f, 0x09, 0xe3, + 0x1f, 0xc5, 0x8f, 0xaa, 0x5a, 0x39, 0x18, 0x0f, 0xa9, 0x95, 0x37, 0x48, 0x6a, 0x58, 0x84, 0x4d, + 0x83, 0xb5, 0x40, 0x0d, 0xd9, 0xf1, 0x7e, 0x59, 0x59, 0x41, 0x82, 0x2c, 0x4d, 0x20, 0xb5, 0xc9, + 0xf5, 0xf8, 0x36, 0x5a, 0xc6, 0x34, 0xd8, 0xeb, 0x40, 0xe0, 0x84, 0xd6, 0xce, 0x8a, 0xf0, 0x67, + 0x1e, 0xe5, 0x1b, 0xa5, 0x49, 0xea, 0x33, 0xc4, 0x91, 0xe6, 0x86, 0xa7, 0x31, 0xd6, 0x13, 0x43, + 0x56, 0x4b, 0x91, 0xc5, 0x58, 0x33, 0x02, 0x66, 0xe3, 0x7a, 0x16, 0xf8, 0xb2, 0x3f, 0x73, 0xcc, + 0xeb, 0x41, 0x08, 0xa1, 0xc8, 0x95, 0x52, 0xcc, 0x23, 0x3a, 0x30, 0x6e, 0x4c, 0x7b, 0xf1, 0x68, + 0xf6, 0x73, 0xb5, 0x2f, 0xcd, 0x9c, 0x38, 0x60, 0x4d, 0x82, 0xea, 0x9a, 0x2b, 0x3b, 0x71, 0xde, + 0x9b, 0xdc, 0x44, 0xa7, 0x41, 0xa5, 0xea, 0x2e, 0x9c, 0xdc, 0xf2, 0xc3, 0x61, 0xa6, 0x17, 0x27, + 0xbf, 0xf8, 0xe4, 0x96, 0xf0, 0xe9, 0x75, 0x41, 0xe7, 0x86, 0xc3, 0x58, 0xf7, 0x82, 0xd2, 0x05, + 0x65, 0xe3, 0xc2, 0xe4, 0x83, 0xe4, 0xe2, 0xa8, 0x6a, 0x41, 0x27, 0x87, 0xc3, 0x95, 0xfb, 0x66, + 0x2a, 0xb5, 0xfe, 0x89, 0x5b, 0xe8, 0x6d, 0x0e, 0x2a, 0xe5, 0x0f, 0x70, 0x69, 0xa7, 0xa2, 0x51, + 0xa3, 0x1c, 0x86, 0xe0, 0x83, 0x5b, 0x66, 0x64, 0x85, 0x4b, 0xa8, 0xb0, 0x43, 0xe7, 0x17, 0x28, + 0x31, 0x7a, 0x4a, 0x6e, 0x29, 0xe5, 0x7e, 0xd5, 0x14, 0x79, 0xd5, 0x97, 0x51, 0x95, 0x44, 0x9d, + 0x10, 0x73, 0xd3, 0x6b, 0x2c, 0x8a, 0x0f, 0x2a, 0x48, 0xc6, 0x50, 0x20, 0x89, 0x15, 0xd7, 0xb9, + 0x20, 0xf5, 0x31, 0xa9, 0x23, 0x93, 0x68, 0x54, 0xf5, 0x02, 0xc6, 0xc1, 0x10, 0x83, 0x31, 0xa8, + 0x22, 0x5b, 0x3f, 0x05, 0x21, 0x1e, 0x81, 0x95, 0xff, 0xb3, 0xcb, 0xd8, 0xb1, 0x47, 0xf1, 0x1c, + 0xa6, 0xb5, 0x6b, 0x4d, 0x30, 0x8d, 0x85, 0x5c, 0x54, 0x10, 0xb1, 0x0c, 0xf3, 0x3f, 0xcc, 0xaf, + 0xf8, 0xd4, 0x9b, 0x7e, 0xed, 0x8b, 0xb1, 0x69, 0x4d, 0xa4, 0x55, 0xf1, 0xbd, 0x44, 0xe2, 0xde, + 0xf6, 0x18, 0x5e, 0x91, 0x57, 0xad, 0x29, 0x2b, 0xa2, 0x78, 0x7e, 0x1e, 0x4d, 0x94, 0x87, 0xf9, + 0xbb, 0xb0, 0x25, 0x0b, 0x86, 0x97, 0x54, 0xa9, 0x34, 0x44, 0x19, 0x54, 0xdd, 0x1c, 0x4f, 0xcb, + 0x05, 0x71, 0x30, 0x55, 0xe8, 0x0c, 0xc5, 0x3e, 0x36, 0xb9, 0xa2, 0x79, 0x42, 0x17, 0xae, 0x2b, + 0x1d, 0xbf, 0x4a, 0xa5, 0x65, 0xa4, 0xd4, 0x8d, 0x88, 0x76, 0xd9, 0x1f, 0x29, 0xb9, 0x1c, 0x2f, + 0x60, 0x25, 0x35, 0xc7, 0xb4, 0x9a, 0x1d, 0xb3, 0x92, 0x86, 0x46, 0x38, 0xd7, 0x2b, 0x4d, 0xd5, + 0xef, 0xbf, 0x47, 0x11, 0x23, 0x10, 0x26, 0xf9, 0xf1, 0x37, 0xe9, 0x74, 0xac, 0x37, 0x57, 0x1b, + 0xb2, 0x65, 0x6b, 0xac, 0xd9, 0x9c, 0x3d, 0xd5, 0x58, 0x54, 0x81, 0x11, 0x13, 0xf2, 0x30, 0x31, + 0x4e, 0x60, 0x29, 0x66, 0x51, 0xfe, 0xd1, 0x2d, 0xa8, 0xe2, 0x37, 0x0f, 0x99, 0x5b, 0xd6, 0x6b, + 0x76, 0xa3, 0x39, 0xfd, 0x1a, 0x0c, 0xf9, 0x18, 0x9d, 0x83, 0x19, 0x6b, 0xba, 0x73, 0x3b, 0x4f, + 0x22, 0x7a, 0x62, 0xfb, 0x84, 0xdf, 0x8f, 0xd1, 0xc8, 0x18, 0x6d, 0x29, 0x50, 0x73, 0x38, 0x3c, + 0xe7, 0x42, 0x77, 0x4f, 0x30, 0x5f, 0xf8, 0x19, 0x30, 0x83, 0xaf, 0x7f, 0x10, 0x7e, 0x7d, 0x81, + 0x1d, 0x1f, 0x53, 0x93, 0x2f, 0x68, 0x1e, 0x6e, 0xa5, 0xbd, 0xf1, 0x4d, 0x23, 0x40, 0x4e, 0x8c, + 0x58, 0x56, 0xbf, 0x62, 0xfb, 0x75, 0xfb, 0x85, 0x05, 0x93, 0xdb, 0x74, 0x3b, 0x40, 0x64, 0x1b, + 0x9b, 0x37, 0x18, 0x31, 0x5f, 0x84, 0x76, 0xce, 0x3c, 0x8a, 0x40, 0xf3, 0xf2, 0x05, 0xbb, 0x32, + 0xe9, 0x4f, 0xea, 0x94, 0xcc, 0x8e, 0x0f, 0x28, 0xd9, 0xb2, 0x2b, 0xdf, 0xaa, 0x63, 0xab, 0x0d, + 0xb7, 0xcc, 0xef, 0x99, 0xf1, 0x70, 0x69, 0xb3, 0xd1, 0xa7, 0x1e, 0xb4, 0x15, 0xb3, 0x74, 0xfc, + 0x5b, 0xa2, 0xa9, 0x89, 0xf0, 0x90, 0xb0, 0xc6, 0x24, 0x3b, 0xda, 0x2d, 0x17, 0x48, 0x22, 0xe8, + 0xd0, 0x36, 0x19, 0x3f, 0x0b, 0xe0, 0x84, 0x50, 0xd5, 0x80, 0x54, 0xb4, 0x26, 0x0b, 0x63, 0xe9, + 0xd6, 0x07, 0xa3, 0x78, 0x3d, 0x92, 0x1d, 0x63, 0xb7, 0x57, 0xa5, 0x7c, 0x5e, 0xbc, 0x5d, 0x7a, + 0xd4, 0x54, 0x3c, 0x24, 0x09, 0xc7, 0x39, 0xa7, 0x18, 0xf3, 0x2f, 0xae, 0x8d, 0xe7, 0xa6, 0x5d, + 0xe2, 0xf1, 0x48, 0x87, 0x29, 0xa8, 0xca, 0xfd, 0x18, 0xa3, 0xd4, 0x8a, 0x69, 0x88, 0xd7, 0x8f, + 0xe2, 0x1a, 0xd6, 0x61, 0x16, 0x04, 0x37, 0x3c, 0xb4, 0x4a, 0xb2, 0x0b, 0x6a, 0x12, 0x4d, 0x2a, + 0x25, 0x52, 0x7d, 0x71, 0xc5, 0x9f, 0xd3, 0x85, 0x45, 0xa6, 0x20, 0xca, 0xd9, 0x4b, 0x25, 0x9a, + 0x78, 0xde, 0xb9, 0xc4, 0x31, 0x39, 0xb6, 0xca, 0x62, 0xae, 0xe2, 0x12, 0xd4, 0x0c, 0xeb, 0x94, + 0x16, 0x8e, 0x69, 0xa3, 0x55, 0xa0, 0xb5, 0xe7, 0x57, 0xa9, 0x17, 0x69, 0xa6, 0x91, 0x72, 0x25, + 0x1b, 0xcf, 0x96, 0x61, 0xce, 0xf2, 0x17, 0xe5, 0x9a, 0x34, 0x08, 0xd4, 0x0a, 0xab, 0xca, 0xdf, + 0x4a, 0xeb, 0x5e, 0x87, 0xd1, 0x5d, 0x07, 0xe5, 0x0d, 0x14, 0x32, 0x5c, 0x6c, 0x5a, 0x8c, 0x93, + 0x44, 0x37, 0xce, 0x28, 0x66, 0x60, 0x1f, 0xe3, 0x77, 0xcc, 0x07, 0x83, 0xe1, 0x98, 0x94, 0x23, + 0x5d, 0x8f, 0x7a, 0x02, 0xed, 0x42, 0x3d, 0xd7, 0x5c, 0xf0, 0x4b, 0xdf, 0x03, 0xe9, 0x0b, 0x4a, + 0xf2, 0xd2, 0xf2, 0x6e, 0x5d, 0x63, 0x4e, 0x66, 0xbd, 0xc7, 0x70, 0xb4, 0xe5, 0x45, 0x60, 0xe6, + 0x28, 0xdf, 0x49, 0x66, 0x50, 0x66, 0xa9, 0x06, 0x66, 0x85, 0x51, 0x9a, 0x39, 0x6a, 0x33, 0x37, + 0x62, 0xb3, 0x89, 0xab, 0x2e, 0xae, 0x3e, 0x8b, 0x5c, 0x63, 0x81, 0x9e, 0x42, 0xa7, 0x42, 0x4d, + 0xe5, 0x96, 0x93, 0xa6, 0x64, 0xee, 0xd7, 0x7f, 0x95, 0x6c, 0x4a, 0x96, 0xda, 0x84, 0xb5, 0xec, + 0xc3, 0x4e, 0x6c, 0xc5, 0x7a, 0x76, 0x63, 0x15, 0x1b, 0xb2, 0x9a, 0x3d, 0x59, 0xc5, 0xb6, 0x4c, + 0x70, 0x3b, 0xa8, 0x05, 0xdb, 0x2e, 0x61, 0xf7, 0x24, 0x27, 0x28, 0x07, 0xe3, 0x16, 0x70, 0x9a, + 0xe2, 0x5e, 0x04, 0x07, 0xd0, 0x21, 0x13, 0x87, 0xa2, 0xac, 0x38, 0x22, 0x54, 0x65, 0xde, 0x28, + 0x55, 0xae, 0xc8, 0x8b, 0x8d, 0x78, 0xb2, 0x84, 0x37, 0x2b, 0xd7, 0xaf, 0xc6, 0x86, 0x75, 0xd8, + 0xb1, 0x1e, 0x5b, 0xd6, 0x61, 0xcf, 0xe8, 0x89, 0x65, 0xc4, 0xa9, 0x3e, 0x42, 0x64, 0x89, 0xd9, + 0x4c, 0x2b, 0xd5, 0xaa, 0xb9, 0xcb, 0xd7, 0x44, 0x60, 0xd7, 0xf4, 0xbe, 0x28, 0x6e, 0x0a, 0xe5, + 0xa9, 0x2f, 0x26, 0xc5, 0xf9, 0x85, 0x47, 0xff, 0x5c, 0x28, 0x05, 0x77, 0xa4, 0xf6, 0x57, 0xe2, + 0x7b, 0x48, 0x51, 0x9e, 0x1a, 0x0a, 0xa0, 0xf5, 0x06, 0x6d, 0x50, 0xbc, 0x12, 0x8c, 0x73, 0xef, + 0xb6, 0xf2, 0x5c, 0x8d, 0xf1, 0x49, 0xa3, 0x69, 0xbb, 0x2e, 0x18, 0xeb, 0x4e, 0xe0, 0x76, 0x26, + 0x72, 0x93, 0x09, 0xdd, 0x6c, 0x62, 0x67, 0x4c, 0xf0, 0xaa, 0x55, 0xc5, 0xce, 0x4a, 0x8d, 0x31, + 0x8c, 0x6d, 0x8e, 0x45, 0xcc, 0xf8, 0xc5, 0x7d, 0xe7, 0xf8, 0xac, 0x57, 0x0b, 0xd4, 0xd4, 0xb3, + 0x3d, 0x0a, 0xb0, 0x64, 0xec, 0x7d, 0x3d, 0x10, 0xd7, 0xcb, 0x0c, 0x8d, 0x77, 0xab, 0x10, 0x25, + 0xb9, 0x6f, 0x14, 0x0f, 0x52, 0xaa, 0x05, 0x3a, 0x9c, 0x30, 0x0e, 0x01, 0xd3, 0x7b, 0xe1, 0xc4, + 0xdc, 0x12, 0x55, 0x01, 0x3d, 0x54, 0xae, 0x31, 0xb1, 0x89, 0xa5, 0xb4, 0x07, 0xa1, 0x22, 0x75, + 0x02, 0x60, 0xb5, 0x40, 0x31, 0x8e, 0x7d, 0x91, 0x20, 0x22, 0x13, 0x6f, 0xea, 0x00, 0x98, 0x51, + 0xcf, 0x11, 0x61, 0x1f, 0xb5, 0x2a, 0xcb, 0xe0, 0x81, 0x31, 0x7a, 0x5d, 0xaf, 0x36, 0xf7, 0xa0, + 0xd5, 0xfb, 0x23, 0x90, 0x17, 0xb0, 0xc2, 0x46, 0xfe, 0xb5, 0xc9, 0x30, 0x32, 0x81, 0x55, 0x9b, + 0xf0, 0x42, 0x23, 0xe1, 0xb9, 0x9c, 0x7b, 0x9e, 0x67, 0x5f, 0x10, 0xbf, 0xe6, 0xe8, 0xca, 0x65, + 0x7c, 0x98, 0x98, 0xbb, 0x3e, 0xca, 0xc6, 0xb5, 0xe9, 0x5a, 0x36, 0xae, 0x0d, 0x79, 0x29, 0x90, + 0x32, 0x40, 0xfb, 0xb0, 0x6a, 0x64, 0x15, 0xf7, 0x88, 0xd6, 0x05, 0x47, 0x06, 0x60, 0x39, 0xce, + 0xa0, 0x14, 0x8e, 0x45, 0x32, 0x76, 0xfd, 0x00, 0x94, 0xd5, 0xb3, 0x33, 0xa8, 0x05, 0xe4, 0xa1, + 0xe3, 0x99, 0xfd, 0xb0, 0x91, 0xa6, 0xc9, 0x99, 0xc9, 0xaa, 0xda, 0x25, 0x4f, 0x6d, 0x4a, 0x68, + 0xc5, 0xdd, 0x40, 0x71, 0x9f, 0xbd, 0x9b, 0x68, 0x9d, 0xbd, 0xb9, 0x3a, 0x1b, 0xa6, 0x63, 0x3b, + 0x0a, 0xbb, 0x81, 0xbe, 0x6e, 0xa4, 0xae, 0x77, 0xeb, 0xab, 0xeb, 0x6e, 0x75, 0xc3, 0xce, 0x00, + 0x6c, 0x81, 0x7f, 0x47, 0xde, 0xec, 0x25, 0x1b, 0x03, 0x4b, 0xf6, 0x69, 0xd9, 0x12, 0x58, 0xc1, + 0x6d, 0xd3, 0x0c, 0x58, 0x41, 0xd5, 0x36, 0xc0, 0x93, 0xda, 0x00, 0xde, 0x2d, 0xa6, 0xda, 0x0a, + 0xf8, 0x96, 0xac, 0x00, 0x31, 0xe2, 0xda, 0x02, 0xd8, 0x48, 0x0b, 0x40, 0x0c, 0x4d, 0x2b, 0x36, + 0xc0, 0xee, 0xfe, 0xe8, 0xa9, 0xac, 0x80, 0x37, 0xfb, 0xf5, 0xcd, 0x00, 0xa8, 0x2b, 0x96, 0xed, + 0x53, 0x6f, 0x61, 0x5b, 0xe8, 0x0a, 0xa3, 0x85, 0x6f, 0x89, 0xad, 0x4f, 0xd9, 0x2c, 0x74, 0x65, + 0x72, 0x1e, 0x6d, 0xf5, 0x21, 0x9b, 0x38, 0x84, 0xa3, 0x57, 0x48, 0xac, 0xf0, 0x6f, 0x3c, 0x9b, + 0x17, 0x1d, 0xf0, 0xf1, 0x6c, 0x35, 0xfa, 0x8a, 0x1d, 0xda, 0xd6, 0xe9, 0x31, 0xc8, 0xad, 0x6a, + 0xf5, 0x18, 0x5c, 0xad, 0xd7, 0x9f, 0x52, 0xaf, 0x9f, 0xfb, 0x8e, 0xd6, 0xea, 0xdf, 0x90, 0x56, + 0x3f, 0x3f, 0xfb, 0xa8, 0x75, 0xfa, 0x26, 0xea, 0x74, 0x98, 0x88, 0x1b, 0xa0, 0xd1, 0xf7, 0x47, + 0x8d, 0x74, 0xfa, 0xde, 0x68, 0x54, 0x5f, 0xa9, 0x1f, 0xd4, 0x45, 0xbe, 0xc9, 0xba, 0x79, 0x39, + 0xac, 0x2d, 0x6b, 0xe6, 0x15, 0xdc, 0x36, 0xf5, 0xf2, 0x0a, 0xaa, 0xd6, 0xca, 0x4f, 0xa9, 0x95, + 0xa3, 0xad, 0xd3, 0x73, 0xcc, 0x7c, 0xcf, 0x65, 0x58, 0xab, 0xe8, 0x6f, 0x48, 0x45, 0xaf, 0xf6, + 0xcd, 0xa3, 0xe1, 0xd7, 0x1a, 0x7b, 0x13, 0x35, 0x76, 0x7a, 0x92, 0xb6, 0xa2, 0xbe, 0x47, 0x46, + 0x13, 0xb7, 0xfc, 0x5e, 0x13, 0xe5, 0x3d, 0x32, 0x7e, 0xac, 0xad, 0xbb, 0x47, 0xc6, 0xde, 0xcb, + 0xdb, 0x35, 0xcf, 0x1c, 0xdf, 0xb6, 0xf7, 0xcf, 0xb3, 0x91, 0xb4, 0xba, 0x93, 0x9e, 0x8d, 0x42, + 0x6b, 0xf8, 0x4d, 0xd0, 0xf0, 0x1f, 0xee, 0x7c, 0x4f, 0x6b, 0xf7, 0x6f, 0x52, 0xbb, 0x9f, 0x12, + 0x17, 0x9b, 0x94, 0xf0, 0x7b, 0xad, 0xde, 0x37, 0x59, 0xbd, 0x8b, 0x19, 0xfa, 0xbc, 0xf7, 0xdb, + 0x7f, 0x6c, 0x10, 0x1e, 0xf7, 0x02, 0x97, 0xe4, 0xeb, 0x03, 0xdb, 0x91, 0x4e, 0x8f, 0x21, 0xe8, + 0x42, 0x9f, 0xc7, 0xc0, 0x6b, 0x5d, 0x5e, 0xbf, 0x64, 0x63, 0x55, 0x7e, 0x1c, 0xbf, 0x21, 0xa6, + 0x25, 0x5d, 0xfe, 0xa4, 0xaa, 0x5c, 0x6b, 0x72, 0x25, 0x4d, 0x2e, 0xc7, 0x1d, 0xe9, 0x28, 0xf7, + 0x0e, 0xa5, 0xc3, 0x91, 0x38, 0xcc, 0xa4, 0xfa, 0xdc, 0x2c, 0x99, 0xa3, 0x12, 0xea, 0x55, 0xc5, + 0x89, 0xba, 0x1c, 0xab, 0xe0, 0x7c, 0x95, 0xba, 0xfc, 0xde, 0xd2, 0x9c, 0x7f, 0x7a, 0xd1, 0xd9, + 0xf8, 0x88, 0xa5, 0xbc, 0x0f, 0x5b, 0x35, 0x96, 0x67, 0xc3, 0x21, 0x92, 0x27, 0x11, 0x14, 0x67, + 0xc3, 0xea, 0xa4, 0xd7, 0x9a, 0x42, 0x5b, 0x27, 0xbd, 0xea, 0xa4, 0xd7, 0x8e, 0xbd, 0x02, 0x3a, + 0xe9, 0xb5, 0x2d, 0xd5, 0xf0, 0x3c, 0x92, 0x5e, 0xb9, 0x10, 0xd7, 0x3a, 0xe7, 0x55, 0xe7, 0xbc, + 0xbe, 0x54, 0xef, 0x9e, 0x5e, 0x0d, 0x6c, 0x9e, 0x63, 0x2f, 0x26, 0x74, 0x9e, 0x7b, 0xca, 0xeb, + 0xce, 0x48, 0xe7, 0xbc, 0xe6, 0x78, 0xf9, 0xd6, 0x46, 0xb9, 0x35, 0xf7, 0xde, 0x3a, 0xe4, 0x76, + 0xfc, 0x7a, 0xeb, 0x70, 0xb5, 0x43, 0xef, 0x09, 0xcd, 0x12, 0x9d, 0xef, 0xaa, 0xf3, 0x5d, 0xb5, + 0xbe, 0xde, 0x14, 0x7d, 0xfd, 0xfc, 0xd3, 0x5d, 0xf7, 0x6b, 0x6b, 0xea, 0x4e, 0x15, 0xc3, 0x0b, + 0xcf, 0x76, 0x4d, 0x32, 0x4f, 0xbb, 0x36, 0x40, 0xdb, 0xb9, 0xae, 0x29, 0xa0, 0x5a, 0xfb, 0x3f, + 0xa5, 0xf6, 0xd7, 0x99, 0xae, 0x3a, 0xd3, 0x55, 0xeb, 0xfe, 0xcd, 0xd0, 0xfd, 0x2f, 0x21, 0xd1, + 0x75, 0x77, 0x7f, 0xa4, 0x33, 0x5d, 0xdb, 0xd1, 0xe6, 0x1d, 0x24, 0xba, 0xae, 0x01, 0x6e, 0x53, + 0xa3, 0xeb, 0x34, 0xd7, 0xcd, 0xd0, 0xe9, 0x3a, 0xcb, 0x55, 0x67, 0xb9, 0x6a, 0x7d, 0xfe, 0xf4, + 0xfa, 0xfc, 0x45, 0x24, 0xb9, 0xee, 0xeb, 0x24, 0xd7, 0xa4, 0x5a, 0x6e, 0x3f, 0xc7, 0x35, 0x05, + 0xb6, 0x45, 0x95, 0xac, 0x33, 0x5c, 0x37, 0x42, 0x21, 0xeb, 0x04, 0xd7, 0x6f, 0x58, 0x3b, 0xeb, + 0x04, 0xd7, 0x67, 0xa1, 0xac, 0x5f, 0x5e, 0x7e, 0xeb, 0x6b, 0x9d, 0xdf, 0x1a, 0xdb, 0x21, 0xef, + 0x36, 0xbd, 0xb5, 0x08, 0x47, 0x9b, 0xbb, 0xe6, 0x3a, 0xb9, 0x75, 0x63, 0x95, 0xbb, 0xce, 0x6d, + 0xd5, 0xb9, 0xad, 0x5a, 0xb3, 0x6f, 0xb0, 0x66, 0xd7, 0xa9, 0xad, 0x2f, 0x53, 0xa5, 0x77, 0x90, + 0xd9, 0x9a, 0x07, 0xbf, 0x03, 0x55, 0xae, 0xf3, 0x5a, 0x5b, 0x29, 0xd9, 0x54, 0x8b, 0xeb, 0xb4, + 0x56, 0x9d, 0xd6, 0xaa, 0x03, 0xd9, 0x3b, 0x11, 0x0e, 0x2d, 0xa4, 0xb5, 0xae, 0x4f, 0x51, 0x9d, + 0xd5, 0x5a, 0x5c, 0x52, 0xb5, 0x60, 0x6b, 0xd9, 0xaf, 0x5b, 0xb5, 0xef, 0xc8, 0x2d, 0xca, 0x73, + 0x5d, 0x5e, 0x20, 0xfd, 0x4c, 0x73, 0x5d, 0x75, 0x3a, 0x6b, 0x72, 0x40, 0x75, 0x3a, 0x6b, 0xbb, + 0x6c, 0xd7, 0x94, 0xfd, 0xda, 0x71, 0x04, 0xe8, 0x74, 0xd6, 0xb6, 0x74, 0xc2, 0x33, 0x49, 0x67, + 0xd5, 0x99, 0xac, 0x3a, 0x93, 0xf5, 0x85, 0xfa, 0xf2, 0xf4, 0x02, 0x60, 0x03, 0xdd, 0x78, 0x2f, + 0x23, 0x89, 0x75, 0x5f, 0x27, 0xb1, 0xe6, 0xf9, 0xf3, 0x3a, 0xc9, 0x5f, 0xed, 0x20, 0x75, 0x55, + 0x67, 0xad, 0x3e, 0xbd, 0xf5, 0xe1, 0xeb, 0x84, 0x55, 0x9d, 0xb0, 0xaa, 0xd5, 0xf2, 0xd3, 0xab, + 0x65, 0xff, 0xb9, 0xe7, 0xaa, 0xee, 0x35, 0xc8, 0x55, 0xd5, 0x69, 0xaa, 0x75, 0x14, 0xbd, 0xdf, + 0x7a, 0x86, 0xaa, 0xdf, 0x72, 0x72, 0xaa, 0xaf, 0xf3, 0x52, 0x9f, 0x5a, 0xbf, 0xeb, 0x94, 0x54, + 0x9d, 0x92, 0xaa, 0xb5, 0xfb, 0x93, 0x6b, 0xf7, 0x17, 0x72, 0xed, 0xaa, 0xce, 0x46, 0x6d, 0xac, + 0xb4, 0x3b, 0x48, 0x44, 0xf5, 0x5b, 0xcf, 0x41, 0xf5, 0x75, 0xfa, 0xe9, 0x93, 0xab, 0x6e, 0xaa, + 0x33, 0x4f, 0x75, 0xe6, 0xa9, 0x56, 0xdb, 0x4f, 0xa9, 0xb6, 0xe9, 0x4b, 0x48, 0x3a, 0x3d, 0xd8, + 0xd7, 0x49, 0xa7, 0x91, 0xf6, 0xa5, 0xad, 0xe7, 0x9b, 0xd2, 0x96, 0x53, 0x4d, 0xa9, 0xce, 0x32, + 0x7d, 0x62, 0xbd, 0xcb, 0x75, 0x82, 0x29, 0xd2, 0x7b, 0xd7, 0x3a, 0xc1, 0x74, 0x43, 0x75, 0x32, + 0x7f, 0x71, 0xb9, 0xa5, 0x7b, 0x3a, 0xb7, 0x34, 0xd8, 0xb8, 0xee, 0x38, 0xad, 0xb4, 0xd3, 0x8c, + 0x52, 0x9d, 0x4c, 0xba, 0x89, 0x3a, 0x5c, 0xe7, 0x91, 0xea, 0x3c, 0x52, 0xad, 0xc0, 0x37, 0x53, + 0x81, 0xeb, 0x14, 0xd2, 0x17, 0xa7, 0xb9, 0xbb, 0xc8, 0x1e, 0xed, 0x2c, 0x71, 0x54, 0xe7, 0x8c, + 0xb6, 0x59, 0xb2, 0x81, 0xb2, 0x9e, 0xe9, 0x74, 0x51, 0x9d, 0x2e, 0xaa, 0xa3, 0xc5, 0xbb, 0x90, + 0x0b, 0x2d, 0xa4, 0x8b, 0xce, 0x74, 0xa6, 0xe8, 0x06, 0x67, 0x8a, 0xd6, 0xfb, 0x9a, 0xfd, 0x25, + 0xfb, 0xad, 0x8a, 0x74, 0x94, 0x21, 0x0e, 0xd4, 0x83, 0x61, 0xc1, 0x0c, 0xca, 0x6f, 0x35, 0x11, + 0x74, 0x6a, 0x02, 0x4d, 0x25, 0x77, 0xed, 0x70, 0xc1, 0xb9, 0xe7, 0x96, 0xb0, 0x7e, 0xb4, 0xf9, + 0x86, 0x4d, 0xeb, 0x8b, 0x3b, 0xc1, 0x9c, 0x03, 0xd4, 0x12, 0x29, 0x14, 0x32, 0xe1, 0x54, 0xa6, + 0x26, 0x4e, 0x7c, 0xd3, 0x1d, 0xa3, 0x5d, 0x95, 0x0a, 0x60, 0xb7, 0xcc, 0x30, 0xa5, 0xd8, 0x0a, + 0x59, 0x77, 0xb7, 0x44, 0x04, 0xa4, 0xab, 0x45, 0x49, 0x6c, 0x7f, 0x55, 0xaa, 0x56, 0x65, 0x8e, + 0x78, 0xee, 0x91, 0x4d, 0x82, 0xb9, 0x59, 0x2e, 0x28, 0xf8, 0xc2, 0xc5, 0x7f, 0xc0, 0xc2, 0x0a, + 0x47, 0xd4, 0x0a, 0xe8, 0x6c, 0x60, 0xd7, 0x84, 0x71, 0xb3, 0xd0, 0x5b, 0xb5, 0x39, 0x79, 0x45, + 0xbe, 0xaa, 0x80, 0x29, 0x85, 0xe3, 0x1c, 0x79, 0x8e, 0x03, 0xc6, 0x26, 0x33, 0xe6, 0x98, 0x7f, + 0x9c, 0x4e, 0x3d, 0x77, 0xd6, 0x1f, 0x54, 0xab, 0xf5, 0xce, 0xf7, 0x8f, 0x82, 0x6a, 0xa5, 0xf5, + 0x86, 0xc3, 0x40, 0x8c, 0xc9, 0x9b, 0x76, 0x4d, 0xe4, 0x98, 0x7c, 0x7a, 0x8d, 0x88, 0x1b, 0x04, + 0x4c, 0x80, 0x35, 0x60, 0x85, 0xa1, 0xa6, 0x51, 0x30, 0x0b, 0xf7, 0x10, 0xc3, 0x36, 0x9e, 0xc2, + 0x4f, 0xd7, 0x38, 0x9a, 0x23, 0xe5, 0x69, 0xc6, 0x26, 0x45, 0x0b, 0x86, 0x4f, 0x1c, 0x1f, 0x53, + 0x62, 0xda, 0x40, 0x8b, 0xcf, 0x98, 0x4d, 0x4f, 0x66, 0x46, 0xec, 0xe5, 0x27, 0x97, 0x70, 0xa6, + 0xd0, 0x53, 0x01, 0x8b, 0x38, 0xfe, 0xb1, 0x09, 0x6d, 0x78, 0x9b, 0x80, 0xfa, 0x13, 0xda, 0xfb, + 0xd1, 0xd8, 0x7b, 0x33, 0xda, 0x41, 0x52, 0x1d, 0x8d, 0x8c, 0xd1, 0x96, 0x12, 0xb4, 0xa0, 0xaf, + 0x6f, 0x91, 0xf3, 0x71, 0x2a, 0xc8, 0x26, 0x28, 0x78, 0x66, 0x52, 0xd3, 0x79, 0xef, 0x2d, 0x60, + 0xe4, 0xfa, 0x3d, 0xfb, 0xf2, 0xd6, 0xe4, 0xfc, 0xd2, 0x31, 0xef, 0x7a, 0x6a, 0xcd, 0x0b, 0xe2, + 0x7f, 0x0b, 0x21, 0x86, 0xf4, 0x0c, 0x80, 0x56, 0x11, 0xa4, 0x02, 0x3e, 0xf5, 0x9d, 0x42, 0xe0, + 0x00, 0xf4, 0x12, 0x43, 0x21, 0x80, 0x3c, 0x44, 0xaf, 0x0d, 0x11, 0xa7, 0xd4, 0x7f, 0x0d, 0xdd, + 0xb4, 0x61, 0xc4, 0x4c, 0x42, 0x99, 0x5a, 0x2f, 0x7c, 0x93, 0x09, 0x2c, 0x21, 0x33, 0xad, 0xa1, + 0x31, 0x7d, 0xff, 0x12, 0x8a, 0x5c, 0x0a, 0x06, 0x35, 0xa2, 0xee, 0xb0, 0xa9, 0x69, 0x03, 0xef, + 0x03, 0xe2, 0xbf, 0x84, 0x54, 0x50, 0x23, 0x58, 0xca, 0xdb, 0x58, 0x86, 0xd7, 0xb4, 0xa6, 0x01, + 0x5e, 0x78, 0xef, 0x5f, 0x72, 0xe2, 0xe0, 0x4b, 0xdf, 0x63, 0xaa, 0xa3, 0x13, 0x5b, 0x28, 0x01, + 0xa2, 0x1d, 0xc1, 0x28, 0xe8, 0x07, 0xd4, 0x57, 0xc3, 0x18, 0xd5, 0xbe, 0xc4, 0x77, 0x7e, 0x6f, + 0x20, 0xfa, 0xf9, 0xc3, 0xae, 0xe0, 0x34, 0x15, 0xcc, 0x22, 0x2c, 0xec, 0x08, 0x28, 0x55, 0x38, + 0x78, 0xc4, 0x4d, 0x32, 0x87, 0x3a, 0x64, 0x6c, 0xdb, 0x2c, 0x03, 0xf4, 0x89, 0xcb, 0xfb, 0x3d, + 0x46, 0x2e, 0x45, 0x19, 0x4c, 0xef, 0x2f, 0xa7, 0xa2, 0x5c, 0x82, 0xe9, 0xea, 0xa9, 0xf4, 0x08, + 0xef, 0x6f, 0x37, 0x98, 0x86, 0x71, 0x6d, 0xa5, 0x5c, 0x79, 0x43, 0xdc, 0x0a, 0x3d, 0xfa, 0xe4, + 0x5a, 0x4b, 0xd0, 0x13, 0x6e, 0x52, 0x5e, 0x08, 0x7f, 0xd9, 0xbf, 0x05, 0xf0, 0xa1, 0x28, 0x5d, + 0x13, 0xd3, 0x07, 0xd7, 0x52, 0xc6, 0x83, 0x5d, 0x4b, 0x11, 0xcb, 0xed, 0x35, 0xc6, 0xf6, 0x7b, + 0x62, 0x3a, 0x98, 0x17, 0x0a, 0x1b, 0x18, 0x28, 0x59, 0xf4, 0xd2, 0x0a, 0xcb, 0xca, 0xb9, 0x14, + 0x0a, 0xbc, 0x72, 0x79, 0x46, 0x66, 0xa8, 0xdf, 0x0f, 0x05, 0xda, 0x5b, 0xc4, 0x38, 0xc5, 0x00, + 0x3f, 0x1d, 0xfc, 0x36, 0x40, 0xdf, 0x7f, 0x8f, 0xfa, 0x91, 0x94, 0x8a, 0x8a, 0xad, 0x5f, 0xae, + 0x05, 0xec, 0xad, 0x66, 0x67, 0x47, 0xb6, 0xd2, 0xa1, 0x49, 0x0d, 0x86, 0x25, 0x8f, 0x03, 0xff, + 0x9e, 0x00, 0x51, 0xef, 0xfa, 0xa3, 0x81, 0x9a, 0x37, 0x27, 0xaf, 0x11, 0x42, 0x71, 0xaa, 0x49, + 0x92, 0x15, 0x94, 0xb5, 0x1e, 0x03, 0x90, 0x80, 0x28, 0x0d, 0x9f, 0x0a, 0x6d, 0x48, 0x1d, 0xaf, + 0x0d, 0x2d, 0x00, 0x89, 0x5c, 0xa5, 0x0f, 0xc9, 0x5c, 0x03, 0xd1, 0x03, 0x93, 0x55, 0xa1, 0x64, + 0xc1, 0x0e, 0x8e, 0xa0, 0x69, 0xea, 0x73, 0x0d, 0xc8, 0x69, 0x4f, 0x53, 0x0c, 0xaa, 0xf8, 0xd4, + 0xd0, 0xda, 0x5f, 0xe7, 0xe6, 0xec, 0x8b, 0x44, 0xd2, 0xcc, 0x9c, 0x73, 0x51, 0x5c, 0x2b, 0xbc, + 0xbc, 0xa3, 0xc8, 0xcb, 0x39, 0x6d, 0xa8, 0xc6, 0xca, 0xd9, 0xdd, 0x7d, 0x54, 0x4e, 0xce, 0x3a, + 0x27, 0xbe, 0x02, 0x23, 0x67, 0xdd, 0xe5, 0x56, 0x81, 0x8f, 0x4b, 0x4f, 0xb5, 0xad, 0xcb, 0xc6, + 0x85, 0x67, 0xec, 0x75, 0xcd, 0xc5, 0x7e, 0x29, 0x03, 0x77, 0xc3, 0xbb, 0xbb, 0x6a, 0xbe, 0x5b, + 0xde, 0x90, 0x6b, 0xfd, 0x8e, 0x18, 0x56, 0x09, 0x39, 0xad, 0xcd, 0xaa, 0x7e, 0x7d, 0x2e, 0xed, + 0x82, 0x41, 0xdb, 0xe2, 0x4d, 0x15, 0xc2, 0x45, 0x56, 0xe9, 0xa1, 0x77, 0x67, 0x50, 0x6c, 0xda, + 0x9f, 0x43, 0x4c, 0x2d, 0x9a, 0xa8, 0x29, 0x33, 0x51, 0x1d, 0x93, 0xba, 0xcd, 0x98, 0x69, 0x2f, + 0xaa, 0x23, 0xaa, 0x63, 0x3c, 0x66, 0x18, 0x8e, 0xf5, 0x10, 0xaa, 0x59, 0x91, 0x09, 0x0b, 0x52, + 0x15, 0x51, 0xb1, 0x39, 0xd9, 0xa6, 0xb7, 0x4d, 0xd9, 0x43, 0x25, 0xf7, 0x4c, 0xb3, 0x7d, 0x2e, + 0xb5, 0x05, 0x40, 0xe8, 0xf5, 0x92, 0x20, 0x55, 0xdd, 0x5e, 0xa1, 0x63, 0x46, 0xc5, 0x7d, 0xfb, + 0x8d, 0x7b, 0xc8, 0x36, 0xd7, 0x7d, 0x43, 0x66, 0xfd, 0xb8, 0xce, 0x9b, 0xc6, 0x14, 0x9e, 0x50, + 0xa5, 0x23, 0x55, 0xc5, 0x19, 0x4d, 0x9f, 0x20, 0x8b, 0xab, 0xc0, 0x57, 0xb3, 0x9d, 0xbf, 0x58, + 0x6a, 0x8e, 0x68, 0xe9, 0x66, 0xda, 0xce, 0x5d, 0xb9, 0x35, 0x47, 0xb2, 0x74, 0x0e, 0x6d, 0xe7, + 0x2c, 0x54, 0xfe, 0x22, 0x5c, 0x46, 0x8a, 0x88, 0x22, 0x97, 0x49, 0x06, 0xa6, 0x42, 0xff, 0xd0, + 0x76, 0xce, 0x22, 0x67, 0xd8, 0x94, 0xbc, 0x25, 0x0d, 0xca, 0x71, 0x1c, 0x6d, 0x2b, 0xac, 0x99, + 0x06, 0xa8, 0xa5, 0xa7, 0xdd, 0x8e, 0x24, 0xfc, 0x51, 0xdb, 0xa8, 0x1f, 0xb9, 0xb3, 0x8a, 0x97, + 0x6a, 0xc2, 0x31, 0x28, 0xfd, 0x56, 0x6a, 0x64, 0x4d, 0xec, 0x99, 0xa1, 0xc8, 0x61, 0x90, 0x79, + 0xe6, 0xaa, 0x11, 0xee, 0x8a, 0xb5, 0x62, 0x37, 0x17, 0x4e, 0xee, 0x9d, 0x0e, 0x26, 0x77, 0xde, + 0xe2, 0xb1, 0xd5, 0xb9, 0x9d, 0xb3, 0x8e, 0x6d, 0x75, 0x6a, 0x67, 0xae, 0xdc, 0x1e, 0x67, 0x66, + 0x67, 0xae, 0xfa, 0x86, 0x0d, 0x49, 0x5b, 0x77, 0x5e, 0x97, 0xae, 0x21, 0x9f, 0xd9, 0xb4, 0x2e, + 0x5c, 0xba, 0x36, 0x9c, 0xd5, 0xf9, 0x07, 0x29, 0x3f, 0xde, 0xa4, 0xde, 0xed, 0x62, 0x52, 0x77, + 0x3c, 0x9f, 0xfd, 0x6e, 0xa7, 0x32, 0x7d, 0x92, 0x59, 0xec, 0xaf, 0x4f, 0xe0, 0x47, 0x9f, 0xbb, + 0x2f, 0x68, 0xda, 0x76, 0x33, 0x63, 0x67, 0x1d, 0x4f, 0xd6, 0x42, 0x16, 0x4d, 0x79, 0x01, 0xb6, + 0xb3, 0x1d, 0x09, 0x83, 0x3a, 0x48, 0xb2, 0xb7, 0xac, 0xb6, 0x57, 0xdb, 0x5c, 0x49, 0x14, 0xcd, + 0x06, 0xb8, 0x74, 0x1e, 0x0a, 0x07, 0xc4, 0x76, 0x91, 0x0b, 0x63, 0xd0, 0x0c, 0xc7, 0xba, 0xef, + 0x61, 0xbb, 0xdc, 0x9b, 0xd1, 0x22, 0x4e, 0xe1, 0x7e, 0xd8, 0x2e, 0x73, 0x66, 0x34, 0xc2, 0xb7, + 0xee, 0x85, 0xd8, 0x2e, 0xf0, 0x66, 0x0c, 0xa3, 0x05, 0x62, 0x39, 0x4e, 0x06, 0xbc, 0x6e, 0x2d, + 0x80, 0xf7, 0x01, 0xb1, 0x5c, 0xfc, 0xab, 0x46, 0x6b, 0x34, 0x8f, 0x25, 0x4a, 0xbe, 0x49, 0xa5, + 0x81, 0xe4, 0x1c, 0x3c, 0x7f, 0x65, 0x4e, 0xbf, 0xce, 0xa9, 0xb7, 0x70, 0x61, 0xd9, 0x7d, 0x8e, + 0xa7, 0xdc, 0x74, 0xe7, 0x76, 0xde, 0x01, 0xf5, 0x9e, 0x88, 0x08, 0xe2, 0xf7, 0x22, 0x29, 0x6a, + 0x94, 0x81, 0x7c, 0xed, 0x95, 0xc2, 0xc9, 0xe2, 0xca, 0x87, 0x12, 0xe7, 0x1c, 0x3b, 0x8c, 0x86, + 0x43, 0x1b, 0x9b, 0x37, 0x58, 0x46, 0x2b, 0x61, 0x19, 0x32, 0x02, 0xfc, 0xca, 0x17, 0xec, 0xca, + 0xa4, 0x3f, 0x15, 0x02, 0x2a, 0xcf, 0xfd, 0x50, 0x3a, 0x2f, 0xbe, 0xe2, 0x19, 0xf1, 0x0a, 0xe7, + 0xc2, 0xd7, 0x38, 0x0b, 0xbe, 0xea, 0x31, 0xdc, 0xc3, 0xe1, 0x95, 0x18, 0x71, 0x76, 0x88, 0xaf, + 0xcd, 0x1b, 0x22, 0xe2, 0x3a, 0x27, 0x30, 0x00, 0xef, 0x60, 0x3a, 0x8b, 0xb7, 0xb9, 0xd5, 0x7e, + 0xa6, 0xc4, 0x52, 0x0a, 0xe3, 0x15, 0xfe, 0xb4, 0x39, 0x14, 0x2e, 0xf6, 0x48, 0x55, 0x0e, 0xec, + 0x0d, 0x9c, 0x5d, 0x2c, 0x18, 0x76, 0xc2, 0x7e, 0x59, 0xc6, 0x93, 0xa2, 0x9f, 0x90, 0x74, 0xd1, + 0x28, 0xd4, 0x9e, 0xa8, 0x85, 0xe3, 0x52, 0xef, 0x76, 0x59, 0x72, 0xa7, 0xc4, 0xeb, 0x53, 0x21, + 0x2e, 0x5b, 0x10, 0x46, 0x88, 0xb5, 0x89, 0x0c, 0x58, 0xf2, 0x94, 0x8e, 0x0d, 0x4b, 0x9c, 0x42, + 0x7e, 0x18, 0x08, 0x49, 0x74, 0x46, 0x31, 0xc3, 0x5c, 0x25, 0xbe, 0xa4, 0x66, 0x3c, 0x67, 0x86, + 0x7f, 0x71, 0xa7, 0xdc, 0xf9, 0x55, 0x35, 0xce, 0xbb, 0x76, 0x6c, 0xf7, 0x32, 0x38, 0x71, 0x4f, + 0x6d, 0xfb, 0x53, 0xc9, 0x0d, 0x9c, 0x1e, 0xa9, 0x5b, 0xcf, 0x9e, 0x05, 0x15, 0x95, 0xab, 0x45, + 0x5e, 0x5f, 0xa8, 0xf9, 0xc5, 0xdd, 0xdf, 0xfd, 0xac, 0x1e, 0x29, 0x5d, 0xd9, 0xa1, 0xdb, 0x82, + 0x73, 0x57, 0xc5, 0xd1, 0xfb, 0xa6, 0x32, 0x88, 0xda, 0x99, 0x33, 0x95, 0x3c, 0xc0, 0x2a, 0xfb, + 0x45, 0x6f, 0x54, 0xc2, 0xa0, 0xd6, 0x00, 0xad, 0x59, 0x73, 0x22, 0x24, 0xeb, 0x75, 0x65, 0x38, + 0x05, 0xbb, 0x4b, 0x07, 0x75, 0xda, 0x55, 0xba, 0x95, 0xf4, 0xfa, 0xb5, 0xb1, 0xdb, 0x08, 0x6a, + 0xc6, 0x6e, 0xd1, 0xeb, 0xaa, 0xf9, 0xcf, 0xf5, 0x62, 0x45, 0x73, 0x21, 0xac, 0xe2, 0x46, 0x55, + 0xab, 0x3f, 0x28, 0x06, 0x7e, 0x77, 0x23, 0x36, 0xc2, 0xf9, 0xff, 0x9e, 0x50, 0x8c, 0xb4, 0x10, + 0xa8, 0x91, 0x3f, 0xd0, 0xba, 0x0c, 0xd8, 0x19, 0xed, 0xb7, 0x27, 0x04, 0x5a, 0x5f, 0xc6, 0xbf, + 0x4c, 0x81, 0xf1, 0x32, 0x25, 0x46, 0x97, 0x02, 0x43, 0xfa, 0xde, 0x43, 0x89, 0xf1, 0x46, 0x4b, + 0x8c, 0x27, 0x95, 0x18, 0x07, 0xad, 0x59, 0x0d, 0xbb, 0xa3, 0xf6, 0x45, 0xc1, 0x5f, 0x0f, 0xba, + 0x10, 0x05, 0x07, 0x7b, 0x15, 0x8f, 0x67, 0x51, 0x10, 0x05, 0xfb, 0x6f, 0x8c, 0x83, 0x6f, 0x53, + 0x12, 0x94, 0x25, 0x8d, 0xb5, 0xbd, 0x9c, 0x0c, 0xa3, 0xea, 0x54, 0x56, 0x93, 0xc3, 0x61, 0xe6, + 0x82, 0x52, 0x2f, 0x24, 0x47, 0x6a, 0x5a, 0xab, 0x62, 0x4e, 0x6e, 0x28, 0xde, 0xc3, 0x01, 0xfa, + 0xe2, 0x7e, 0x34, 0xef, 0xd4, 0x65, 0x7b, 0xcd, 0x9c, 0xdb, 0x96, 0xf3, 0x6c, 0x1b, 0xe5, 0xd6, + 0x2a, 0xda, 0xd9, 0x81, 0x57, 0x76, 0xe2, 0x13, 0xb7, 0x5a, 0x26, 0x6d, 0x7c, 0x02, 0x54, 0x49, + 0x6b, 0x6f, 0xa8, 0x72, 0x2c, 0x3c, 0x25, 0x8e, 0x69, 0xb3, 0x2a, 0xba, 0x76, 0x29, 0x19, 0xc7, + 0x15, 0x4d, 0x52, 0x51, 0xf1, 0x38, 0x38, 0x49, 0xa3, 0x62, 0xad, 0x0b, 0xaf, 0x2a, 0x2e, 0xa1, + 0xc6, 0xc9, 0x1d, 0xb0, 0xdc, 0x09, 0xfc, 0xaf, 0x7e, 0xcb, 0xe1, 0x62, 0x16, 0xd4, 0x42, 0xef, + 0x7a, 0x4f, 0x9c, 0x76, 0x5b, 0x53, 0x80, 0xfe, 0x55, 0x85, 0x79, 0xda, 0x14, 0x80, 0x9b, 0x28, + 0xff, 0x3a, 0x14, 0x7f, 0x72, 0xb3, 0xec, 0xdb, 0x92, 0x7b, 0x8f, 0x22, 0xf6, 0x42, 0xa3, 0xf3, + 0xf1, 0xe5, 0xde, 0xa8, 0x96, 0xdc, 0x7b, 0x5d, 0x4b, 0xec, 0xed, 0xec, 0xd5, 0x90, 0x7b, 0xbb, + 0x55, 0x84, 0xe5, 0x52, 0x80, 0xb1, 0x67, 0x2a, 0xbf, 0xb4, 0xf8, 0xea, 0xd4, 0x7c, 0x8b, 0x2d, + 0xc7, 0xb4, 0xf5, 0xd6, 0xbe, 0x18, 0x4b, 0xae, 0x76, 0x9f, 0x89, 0x11, 0x77, 0x30, 0x7a, 0x34, + 0x1b, 0xae, 0xd2, 0x92, 0x7f, 0x69, 0xc2, 0x7d, 0xae, 0x67, 0xc2, 0x7d, 0x7e, 0xa6, 0x22, 0x70, + 0x57, 0xcb, 0xc0, 0x4e, 0x65, 0x60, 0xdc, 0xd9, 0xf3, 0xc5, 0x3d, 0x5a, 0x70, 0x6f, 0x36, 0x43, + 0xd2, 0x97, 0xa4, 0x45, 0x62, 0xfb, 0x22, 0x31, 0xcb, 0x61, 0xf7, 0x4c, 0x04, 0x63, 0xa5, 0x5d, + 0x05, 0x2d, 0x18, 0x3b, 0x17, 0x8c, 0x7b, 0x5a, 0x30, 0x3e, 0xbe, 0x60, 0xfc, 0xe0, 0x5a, 0x5a, + 0x2c, 0x76, 0x2b, 0x16, 0x83, 0x1d, 0x87, 0xe7, 0x22, 0x14, 0xab, 0xc4, 0x51, 0x68, 0xa1, 0x58, + 0x91, 0xbd, 0x6a, 0x48, 0xc5, 0xd7, 0x95, 0x43, 0xef, 0x26, 0x3e, 0xc6, 0x96, 0xf7, 0xc8, 0x1b, + 0x25, 0xdf, 0x98, 0x2c, 0xfd, 0x43, 0x84, 0x60, 0x7f, 0x71, 0xa3, 0x20, 0x6c, 0x2d, 0x42, 0xdb, + 0x15, 0xa1, 0xe9, 0x08, 0xf7, 0xc7, 0x17, 0x9e, 0x79, 0x59, 0xda, 0x35, 0x4f, 0x82, 0x1e, 0xa0, + 0x9f, 0xd0, 0x2e, 0xaa, 0xe9, 0x8e, 0x6c, 0xb9, 0x2d, 0x41, 0x63, 0x40, 0xf8, 0x42, 0x7b, 0x0e, + 0x1e, 0xd1, 0x3b, 0xb0, 0xb3, 0x3f, 0x1a, 0xd5, 0x91, 0xf8, 0xff, 0xf7, 0xbf, 0xff, 0x53, 0x47, + 0xe6, 0xb7, 0x4a, 0x35, 0x41, 0xb2, 0x1e, 0x01, 0x99, 0xd4, 0x03, 0xa2, 0xf5, 0x1c, 0x67, 0x13, + 0x4c, 0xec, 0xb6, 0x35, 0xcd, 0x7e, 0x65, 0x4d, 0xf3, 0x91, 0xb0, 0xa9, 0xd6, 0x33, 0x5d, 0xea, + 0x99, 0xf7, 0x78, 0x66, 0x2e, 0x6c, 0xfe, 0xc5, 0x0d, 0xe2, 0xae, 0x4e, 0xf1, 0x0d, 0xb6, 0xb5, + 0xb2, 0x69, 0xdf, 0x5e, 0x17, 0xfb, 0xf2, 0xfb, 0xcf, 0x68, 0x83, 0xea, 0xd1, 0x84, 0xf6, 0x8f, + 0xc6, 0xe8, 0x79, 0x7a, 0x13, 0x0e, 0x2a, 0x48, 0xb3, 0xde, 0x7b, 0x93, 0x9b, 0xe8, 0xd4, 0x9b, + 0xcf, 0x45, 0x02, 0xef, 0xb7, 0x1e, 0x60, 0xb4, 0xdf, 0x6d, 0xc8, 0xf9, 0xd1, 0xb5, 0xe7, 0x31, + 0x2c, 0xa8, 0x2d, 0xec, 0x67, 0x2a, 0xd3, 0x8b, 0xee, 0x0d, 0xc3, 0xe8, 0xb5, 0x11, 0xca, 0xd9, + 0x34, 0xa2, 0x74, 0x67, 0x77, 0xd4, 0x7d, 0x3c, 0xa7, 0x38, 0xd4, 0xee, 0x13, 0x27, 0x36, 0xe1, + 0xf7, 0x06, 0xc5, 0x7f, 0x2e, 0x30, 0xe3, 0xc7, 0xc4, 0xc6, 0x67, 0x98, 0x3a, 0x84, 0x31, 0xe2, + 0xb9, 0xf5, 0xef, 0x1b, 0x51, 0x3e, 0xee, 0x2e, 0xfe, 0xd8, 0xde, 0x5c, 0xe2, 0x17, 0x9d, 0xa1, + 0x55, 0xcf, 0xee, 0x2e, 0x06, 0x16, 0x9e, 0xe0, 0x5e, 0x07, 0xd8, 0x03, 0xc2, 0x36, 0xc3, 0x35, + 0xba, 0x13, 0x1a, 0x7e, 0xd8, 0x21, 0xfc, 0x23, 0x66, 0xcc, 0x9c, 0x63, 0x58, 0x49, 0x40, 0xb3, + 0x9a, 0xdd, 0xe2, 0xd2, 0x13, 0xbd, 0x42, 0xab, 0x31, 0x62, 0xbd, 0xed, 0x66, 0xf0, 0x3e, 0x49, + 0x3a, 0x8b, 0x53, 0xc1, 0x43, 0x1e, 0x40, 0xe2, 0x64, 0x07, 0xc4, 0xee, 0x19, 0xc7, 0x0e, 0xf2, + 0x97, 0x88, 0x8c, 0x86, 0x88, 0xe4, 0x11, 0x5d, 0xdb, 0xc1, 0x3f, 0x83, 0x27, 0xbd, 0x1b, 0xe6, + 0x41, 0xdd, 0x52, 0x3a, 0x71, 0xfd, 0x4a, 0x77, 0xb0, 0xd4, 0xb4, 0x74, 0xe4, 0xc5, 0xce, 0xfc, + 0x34, 0x60, 0x59, 0x81, 0x57, 0xb9, 0x66, 0xc5, 0x74, 0xda, 0xfc, 0xea, 0x8e, 0xcc, 0x10, 0x06, + 0x43, 0xe0, 0x8d, 0x72, 0xe5, 0x19, 0xd8, 0x66, 0x86, 0xef, 0x11, 0x97, 0x87, 0x97, 0x5e, 0xed, + 0x56, 0x95, 0xc1, 0xc6, 0x10, 0xe6, 0x43, 0x4f, 0x5d, 0x5a, 0xfe, 0x1e, 0x1d, 0x0b, 0x67, 0x44, + 0x3f, 0x54, 0x9c, 0x97, 0x3e, 0xf5, 0x80, 0xa3, 0xf9, 0x3d, 0x32, 0x6d, 0x62, 0xb2, 0x80, 0xe6, + 0x29, 0xd2, 0x1b, 0xbc, 0x0a, 0xfd, 0x33, 0x80, 0x86, 0x67, 0xa3, 0xc8, 0xf3, 0x50, 0xc6, 0x28, + 0xef, 0xa4, 0x94, 0x4a, 0x18, 0x9a, 0x34, 0x27, 0x7e, 0x1a, 0xd7, 0x38, 0xf7, 0x6c, 0xae, 0xe6, + 0x18, 0xce, 0x4c, 0x36, 0xce, 0x3e, 0x12, 0xac, 0x05, 0xd8, 0x62, 0xd5, 0x31, 0xce, 0x3b, 0x51, + 0xad, 0x39, 0xfc, 0x73, 0xdf, 0x19, 0x67, 0x1f, 0xa5, 0xd6, 0x02, 0xe5, 0x53, 0x47, 0xa0, 0x8c, + 0x15, 0x0e, 0x2a, 0x6b, 0x0f, 0xab, 0x38, 0xad, 0x64, 0x5c, 0x72, 0x92, 0x58, 0x73, 0x6c, 0x89, + 0x13, 0x87, 0xc6, 0xad, 0x9c, 0x2d, 0xd6, 0x16, 0xfb, 0xc7, 0xce, 0xac, 0x1a, 0xe7, 0x1d, 0x60, + 0xd5, 0x18, 0xbe, 0xe4, 0xfd, 0xac, 0x43, 0xb3, 0x9a, 0x43, 0x0e, 0x38, 0x3f, 0xfb, 0xbc, 0xb1, + 0xc6, 0xd0, 0x25, 0xdf, 0x67, 0x9d, 0x33, 0xd6, 0x9c, 0xe2, 0x6b, 0x5c, 0x5f, 0x7a, 0x8c, 0x57, + 0x6b, 0x38, 0x03, 0x9e, 0x2f, 0x3e, 0x21, 0xba, 0x31, 0xb2, 0x14, 0xcb, 0xb7, 0x70, 0xf0, 0x56, + 0x8b, 0x4c, 0x6f, 0x2f, 0x2c, 0xb2, 0xe4, 0xf9, 0x56, 0xd9, 0x5d, 0x40, 0x96, 0xdc, 0xee, 0xb7, + 0xc7, 0xe8, 0x12, 0x66, 0xc0, 0xe7, 0x7e, 0x9b, 0x2c, 0x2e, 0xe0, 0x4a, 0x0e, 0xa7, 0xed, 0x31, + 0xb7, 0xa4, 0xec, 0x3a, 0x6f, 0x77, 0xc4, 0xd6, 0x71, 0x6c, 0x21, 0x57, 0x77, 0x20, 0xc3, 0x05, + 0x96, 0x14, 0x3b, 0xcf, 0x36, 0x42, 0x76, 0xc7, 0x52, 0xb5, 0x3e, 0x9a, 0x77, 0xa1, 0xc9, 0x37, + 0xce, 0xce, 0x43, 0x6c, 0x8c, 0x47, 0x84, 0x86, 0xe3, 0x24, 0x8e, 0xb5, 0x14, 0xc5, 0x26, 0x48, + 0xbc, 0x1b, 0x4c, 0x3f, 0x87, 0x01, 0x4a, 0x71, 0x2c, 0x79, 0xa9, 0x8b, 0x4d, 0x70, 0x2d, 0xc4, + 0xb6, 0xff, 0xe7, 0x58, 0x34, 0x54, 0x02, 0x63, 0x71, 0x72, 0x63, 0x5b, 0x78, 0x3f, 0xb8, 0x56, + 0x2e, 0xd6, 0x74, 0xf2, 0x63, 0x13, 0x9c, 0x89, 0x3d, 0xba, 0x25, 0xc6, 0xfc, 0xb3, 0xa9, 0x9e, + 0x57, 0x72, 0xe3, 0x89, 0x58, 0x84, 0xff, 0x4b, 0x25, 0x4b, 0x51, 0x1c, 0xbf, 0xa3, 0xe0, 0x0d, + 0x6f, 0xe6, 0x34, 0x54, 0x3e, 0x31, 0xa9, 0xb8, 0xe3, 0x79, 0x07, 0x74, 0x35, 0xba, 0xed, 0x4f, + 0xdc, 0xde, 0x76, 0x34, 0x9b, 0xeb, 0xcb, 0xfe, 0x54, 0x9d, 0x8c, 0xfa, 0xb2, 0xbf, 0x16, 0xc0, + 0xe8, 0xcb, 0x00, 0xf5, 0x65, 0x80, 0xfa, 0x32, 0xc0, 0x34, 0xc1, 0xf4, 0x65, 0x80, 0xcd, 0x2f, + 0x03, 0xd4, 0x97, 0xf2, 0x29, 0x8f, 0x41, 0xb5, 0x6b, 0x13, 0x1f, 0xf1, 0xb2, 0x3f, 0x15, 0x4c, + 0x89, 0xb5, 0x96, 0xbe, 0x1e, 0x50, 0x0d, 0x8a, 0xbe, 0x1e, 0x50, 0x5f, 0x0f, 0xa8, 0xaf, 0x07, + 0x6c, 0xce, 0xc9, 0xfa, 0x7a, 0x40, 0x7d, 0x3d, 0xa0, 0xbe, 0x1e, 0xb0, 0x84, 0x60, 0x9b, 0x7c, + 0x3d, 0xa0, 0xbe, 0x1b, 0x50, 0xdf, 0x0d, 0xb8, 0x71, 0x77, 0x03, 0xe6, 0xf8, 0x56, 0x3a, 0xbe, + 0xff, 0xaf, 0xb6, 0x70, 0xd1, 0x77, 0x03, 0xea, 0xbb, 0x01, 0xf5, 0xdd, 0x80, 0x19, 0x88, 0xf4, + 0xdd, 0x80, 0x1d, 0x99, 0x31, 0xfa, 0x6e, 0x40, 0x7d, 0x37, 0x60, 0x93, 0xa9, 0xad, 0xef, 0x06, + 0x6c, 0xf3, 0x6e, 0x40, 0x7d, 0xef, 0x1f, 0xd2, 0xf7, 0xfe, 0xe9, 0x7b, 0xff, 0xda, 0x9c, 0x97, + 0x45, 0x53, 0x52, 0xdf, 0xd7, 0x57, 0x97, 0xb5, 0x36, 0xe7, 0xbe, 0x3e, 0x7d, 0x25, 0x9f, 0xbe, + 0x92, 0xaf, 0x69, 0xb4, 0x4f, 0xf9, 0x9b, 0x65, 0x5e, 0x5e, 0x90, 0xc6, 0x95, 0xa3, 0x5f, 0x84, + 0xc7, 0x21, 0x91, 0xee, 0xa5, 0x7e, 0x8f, 0x5d, 0x66, 0xef, 0xaf, 0xbd, 0xdb, 0xf7, 0x1e, 0x7f, + 0xe7, 0x5a, 0xf0, 0x37, 0xfc, 0x57, 0xb0, 0xdc, 0x5e, 0xc6, 0x0a, 0xe5, 0x87, 0x14, 0x25, 0x5d, + 0x14, 0xd9, 0x4b, 0x5e, 0x4f, 0x24, 0x20, 0x06, 0x57, 0x9c, 0x15, 0xaf, 0xd8, 0xd7, 0x13, 0x55, + 0xa4, 0x44, 0xb2, 0xf1, 0xaf, 0x30, 0xe2, 0xcf, 0xf4, 0xd2, 0xc3, 0xe3, 0xdb, 0x4f, 0x92, 0xb5, + 0x4b, 0x2e, 0x3c, 0x2c, 0x1c, 0xb6, 0x74, 0x9f, 0x92, 0x3f, 0x85, 0x48, 0x2f, 0x40, 0x3d, 0xc5, + 0x59, 0x88, 0x88, 0xec, 0x71, 0x50, 0x09, 0x63, 0xb4, 0x1f, 0xf3, 0xdb, 0xd0, 0x85, 0xeb, 0xca, + 0xc0, 0xae, 0xef, 0x40, 0xa1, 0xba, 0xc9, 0x98, 0xa0, 0x55, 0x21, 0xec, 0x63, 0x93, 0xa7, 0xaf, + 0xeb, 0x5a, 0x06, 0x26, 0x02, 0x64, 0x64, 0x79, 0x3c, 0x91, 0x55, 0xed, 0xb9, 0x17, 0x94, 0xcc, + 0xe7, 0x98, 0xae, 0x8f, 0xb0, 0x0c, 0x62, 0x08, 0xc6, 0xb2, 0x37, 0x49, 0x3a, 0xbc, 0x44, 0x14, + 0x4f, 0x5f, 0xfa, 0x54, 0xe0, 0xe3, 0xe8, 0x3f, 0xe1, 0x9f, 0xff, 0x92, 0x90, 0xe1, 0xa7, 0x57, + 0xaf, 0xb2, 0xec, 0xad, 0x08, 0xce, 0x0f, 0x3d, 0xf4, 0x2a, 0xf8, 0xe5, 0x95, 0xf8, 0xa5, 0x68, + 0xcc, 0x05, 0xbc, 0x57, 0xaf, 0xb6, 0xd2, 0xfb, 0x19, 0xe2, 0x35, 0xfa, 0x1b, 0xda, 0xcb, 0xc2, + 0x22, 0xbf, 0xbd, 0x4d, 0xe5, 0x8c, 0xa7, 0xc0, 0xc6, 0xc8, 0x17, 0x36, 0x2a, 0x91, 0x58, 0xa5, + 0x38, 0x34, 0x3b, 0x59, 0x43, 0x93, 0x98, 0x8f, 0xd9, 0x63, 0x51, 0x40, 0x6e, 0xb0, 0x1a, 0x5c, + 0xe0, 0xe1, 0xb5, 0x70, 0xaf, 0x3e, 0xfc, 0x2b, 0xc2, 0x2d, 0x99, 0x41, 0xbd, 0xdb, 0x23, 0x60, + 0x76, 0xde, 0x1f, 0x00, 0x01, 0x72, 0xec, 0x84, 0xef, 0xbf, 0x47, 0xdf, 0x85, 0x6e, 0x32, 0xc2, + 0xce, 0x3c, 0xca, 0x8f, 0x02, 0xb0, 0xd8, 0xea, 0xcb, 0xed, 0x9e, 0xef, 0x9c, 0x43, 0x1b, 0xc3, + 0xa7, 0xf0, 0x35, 0xb4, 0x3b, 0xe5, 0x3d, 0xb3, 0x08, 0xcb, 0x6b, 0x49, 0x1e, 0xdc, 0x6c, 0xe2, + 0x45, 0x18, 0xc0, 0xce, 0x8a, 0xf5, 0x14, 0x54, 0xdb, 0x1c, 0x03, 0x59, 0x44, 0x33, 0x62, 0x54, + 0x99, 0xc0, 0xa8, 0xbc, 0xf7, 0x5c, 0x9c, 0x26, 0x4a, 0x30, 0xe2, 0x2e, 0xce, 0x1a, 0xed, 0xf5, + 0x89, 0x90, 0xa7, 0x0f, 0xd6, 0xc7, 0x3c, 0x3c, 0x0a, 0x0a, 0xde, 0xa7, 0x5c, 0xe0, 0x29, 0x6e, + 0x59, 0xd2, 0x7e, 0x6a, 0x63, 0x93, 0xa6, 0x23, 0xdd, 0x96, 0xd3, 0xc0, 0xb4, 0x2c, 0x2a, 0xc2, + 0xd9, 0x2c, 0x7c, 0xc3, 0xb2, 0x9a, 0x2a, 0xca, 0xb8, 0x20, 0x0b, 0x01, 0xb3, 0x28, 0xf2, 0x77, + 0x51, 0xfe, 0x1f, 0xb9, 0xa5, 0x76, 0xa1, 0x98, 0x2c, 0x0d, 0x73, 0x04, 0xfd, 0x5d, 0xcc, 0x18, + 0x09, 0x1f, 0x7e, 0xfb, 0x47, 0x2f, 0xb3, 0x12, 0xc3, 0xfc, 0xd7, 0x00, 0x7a, 0x38, 0x44, 0x40, + 0xe2, 0xc3, 0x40, 0xfa, 0xf6, 0x45, 0xd5, 0x75, 0x56, 0x11, 0x74, 0x0d, 0x6b, 0x19, 0x36, 0x76, + 0xe7, 0xfc, 0x5a, 0xb2, 0x54, 0x8e, 0xb0, 0x8b, 0xe0, 0xbf, 0x7a, 0xab, 0xd0, 0xa0, 0x04, 0xd9, + 0x08, 0x18, 0xd9, 0x94, 0xf7, 0x47, 0xdb, 0x15, 0x12, 0x22, 0x7b, 0x5f, 0xf1, 0x7d, 0x6f, 0x1c, + 0x21, 0x55, 0xcf, 0xee, 0xed, 0x49, 0x3b, 0x1a, 0x6a, 0x8a, 0xc6, 0xa9, 0x05, 0x49, 0xaf, 0x13, + 0x26, 0x4c, 0xab, 0x16, 0xf4, 0x11, 0x43, 0x00, 0x1d, 0x80, 0x65, 0xe4, 0x6f, 0xb3, 0x7e, 0xef, + 0xf3, 0x87, 0xc9, 0x51, 0x6f, 0x80, 0xbe, 0x83, 0x15, 0xe5, 0x0f, 0xb9, 0x3e, 0xa0, 0x36, 0xfa, + 0x2d, 0x39, 0xe0, 0x69, 0x7a, 0x5d, 0xd2, 0x29, 0x58, 0xdf, 0x80, 0xf5, 0xd8, 0x7f, 0x1e, 0x3d, + 0x2a, 0x9a, 0xd5, 0xdd, 0x8b, 0xda, 0x35, 0x29, 0x22, 0x8c, 0xde, 0xa4, 0x67, 0x22, 0xa6, 0xa6, + 0x1e, 0xe2, 0x0a, 0x02, 0x26, 0xee, 0x07, 0x4a, 0x45, 0xba, 0x76, 0x92, 0xd0, 0xb9, 0x79, 0xfb, + 0xbd, 0xc3, 0xd3, 0x0f, 0x48, 0x56, 0x81, 0x75, 0x11, 0x71, 0x67, 0xde, 0x76, 0x4e, 0x52, 0x7b, + 0x15, 0xf1, 0x1c, 0x98, 0xf7, 0xf1, 0x76, 0x05, 0xe6, 0x50, 0x96, 0xda, 0x9a, 0x49, 0x3d, 0x69, + 0x38, 0xb2, 0xca, 0xf9, 0x5d, 0x5a, 0x0a, 0x57, 0x41, 0x1b, 0xae, 0xae, 0x2b, 0xe1, 0x35, 0x83, + 0x3a, 0xf9, 0x88, 0x97, 0xbe, 0xb4, 0x35, 0x7d, 0x6e, 0x8d, 0xc3, 0x6b, 0xa6, 0xe5, 0x97, 0x2c, + 0x3d, 0x7f, 0x90, 0xa5, 0xe8, 0x93, 0x66, 0x75, 0xa4, 0xe9, 0x93, 0x6f, 0xcb, 0x35, 0x3d, 0xac, + 0xd7, 0x63, 0xe6, 0xf2, 0x4a, 0x72, 0x2f, 0xd9, 0x48, 0xf0, 0x94, 0x94, 0xe1, 0x83, 0xec, 0xea, + 0xc2, 0xe4, 0x35, 0x64, 0x6a, 0xbf, 0x30, 0xad, 0xfe, 0xed, 0xf5, 0x4c, 0xfc, 0xe9, 0x29, 0x9a, + 0x32, 0xd0, 0xaa, 0x05, 0xc9, 0xed, 0xf6, 0xa8, 0x9a, 0x7d, 0x53, 0xde, 0xe9, 0xe1, 0x50, 0xca, + 0xd4, 0xef, 0x62, 0xe4, 0x36, 0x42, 0xc0, 0x62, 0x22, 0x65, 0x90, 0x44, 0x48, 0xda, 0x42, 0xa2, + 0xac, 0x09, 0x61, 0xc0, 0xd1, 0x98, 0xb8, 0xc3, 0xe1, 0x83, 0x3a, 0x01, 0x97, 0x3c, 0xd8, 0x02, + 0x09, 0xd7, 0xcd, 0xf5, 0x2b, 0xcf, 0xb3, 0x51, 0x34, 0xa9, 0xd2, 0xec, 0x95, 0x2c, 0xb5, 0x9c, + 0x02, 0xb9, 0xc5, 0x84, 0xed, 0x7f, 0x0b, 0x6b, 0x66, 0x68, 0xc5, 0x44, 0xac, 0xf8, 0x13, 0x07, + 0x73, 0x15, 0xf0, 0x2a, 0x99, 0xf5, 0xb9, 0x79, 0xb5, 0xe6, 0x57, 0x15, 0x83, 0xf3, 0x1a, 0x06, + 0x00, 0x48, 0x0e, 0xe6, 0xd9, 0x7f, 0x70, 0x11, 0xf5, 0x6d, 0x0b, 0x0b, 0x48, 0x84, 0xeb, 0xcf, + 0x08, 0x75, 0x6e, 0x61, 0x45, 0x84, 0x02, 0xe7, 0x00, 0xac, 0x8e, 0xe6, 0x38, 0xd3, 0x02, 0x29, + 0x32, 0x54, 0x57, 0x43, 0x76, 0x6a, 0x32, 0x7e, 0x7c, 0x7b, 0x7e, 0x27, 0x9d, 0x0c, 0xac, 0x3f, + 0x30, 0xae, 0x6f, 0x2f, 0xee, 0x7d, 0x3c, 0xe1, 0x60, 0x8f, 0xa1, 0xb7, 0xd0, 0x90, 0x48, 0x37, + 0xe7, 0x2c, 0xc3, 0x67, 0xfd, 0x35, 0xc7, 0x41, 0x91, 0x4b, 0x18, 0xca, 0xc7, 0x09, 0x25, 0x31, + 0x94, 0xee, 0xe8, 0xae, 0xf2, 0x22, 0xd8, 0x32, 0x9b, 0x42, 0x0c, 0x6b, 0xb1, 0x53, 0x23, 0x89, + 0xa7, 0xe0, 0xf8, 0x36, 0xa5, 0xc3, 0x5e, 0xb2, 0x1a, 0xae, 0xb4, 0x5b, 0x95, 0x99, 0x0a, 0x32, + 0x1c, 0x86, 0xa3, 0x17, 0x77, 0xe4, 0x62, 0xe4, 0x16, 0xa4, 0x31, 0xe5, 0x74, 0xab, 0x38, 0x66, + 0x41, 0xf9, 0x1c, 0x9b, 0xac, 0xee, 0xa9, 0xfb, 0xf6, 0xe3, 0xe3, 0x13, 0xe5, 0xad, 0xc8, 0x01, + 0x6a, 0x6d, 0x23, 0x26, 0xd5, 0xeb, 0xf2, 0x63, 0x82, 0x2b, 0x9d, 0xe0, 0x03, 0xbd, 0x4f, 0xb8, + 0x78, 0xab, 0x1c, 0x64, 0x14, 0xef, 0xbc, 0x0b, 0x72, 0x91, 0x3a, 0xc4, 0x35, 0xed, 0x23, 0xc7, + 0xea, 0xf7, 0x00, 0xe6, 0x65, 0xe4, 0x91, 0x46, 0x3b, 0x3d, 0x35, 0xdf, 0x73, 0xe5, 0xa3, 0x87, + 0x54, 0x1b, 0x30, 0x52, 0x6d, 0x40, 0x9d, 0x01, 0x51, 0x3b, 0xb9, 0x2a, 0xcb, 0xc7, 0x58, 0x9c, + 0x98, 0xa7, 0xd6, 0xa8, 0x02, 0x37, 0x64, 0x25, 0xae, 0x7b, 0xc8, 0x91, 0x71, 0xa0, 0x5a, 0x23, + 0x55, 0x51, 0xc4, 0x1a, 0xea, 0x59, 0x5f, 0x05, 0x88, 0x96, 0xda, 0x46, 0x19, 0x53, 0xf1, 0x15, + 0x9e, 0x0f, 0x95, 0x1d, 0x67, 0x79, 0x0a, 0x99, 0xf2, 0x3c, 0x75, 0xbc, 0xdf, 0xb2, 0x3d, 0x53, + 0xa8, 0xbf, 0xb2, 0xe8, 0x22, 0x52, 0x61, 0x4d, 0xc7, 0x07, 0x2e, 0x3f, 0xbf, 0x40, 0x96, 0x38, + 0x50, 0xef, 0xf6, 0x1a, 0x07, 0xfa, 0x72, 0xea, 0x81, 0x84, 0x15, 0x1b, 0x52, 0x96, 0xb0, 0x86, + 0x84, 0xb6, 0x44, 0x84, 0x85, 0xf9, 0x6f, 0xd8, 0xda, 0x46, 0x9e, 0x4c, 0xfb, 0x70, 0xb3, 0x40, + 0x02, 0x2c, 0x3b, 0x38, 0x97, 0x4f, 0x54, 0x31, 0xc1, 0xb0, 0xbe, 0xc1, 0x46, 0xb1, 0xae, 0x3d, + 0x17, 0xce, 0xda, 0xdf, 0x60, 0x25, 0xd7, 0xcf, 0x8d, 0xee, 0x8d, 0xc8, 0x26, 0x2e, 0x7f, 0xcd, + 0x9e, 0x36, 0x89, 0xd1, 0x95, 0x8e, 0xfc, 0xbc, 0x28, 0xac, 0x8c, 0x92, 0x13, 0xcc, 0x17, 0x7e, + 0x4e, 0xf1, 0xe1, 0x30, 0x51, 0xe1, 0xc4, 0x59, 0x88, 0xc3, 0x07, 0xfb, 0xa3, 0xbb, 0x63, 0x78, + 0xca, 0xab, 0x5c, 0x39, 0xec, 0xe7, 0x82, 0x06, 0x15, 0x4a, 0x2e, 0x41, 0xa5, 0x2c, 0x5b, 0xa7, + 0x4c, 0x8d, 0x96, 0x53, 0xab, 0x06, 0x1d, 0xaa, 0xcf, 0x89, 0x87, 0xad, 0xff, 0x07, 0x68, 0x71, + 0x59, 0x64, +}; diff --git a/qmlui/app/qmlui_luna_v1.h b/qmlui/app/qmlui_luna_v1.h new file mode 100644 index 00000000..77115dfd --- /dev/null +++ b/qmlui/app/qmlui_luna_v1.h @@ -0,0 +1,17 @@ +// This file is autogenerated by VESC Tool + +#ifndef QMLUI_LUNA_V1_H_ +#define QMLUI_LUNA_V1_H_ + +#include "datatypes.h" +#include +#include + +// Constants +#define DATA_QML_APP_SIZE 7202 + +// Variables +extern uint8_t data_qml_app[]; + +// QMLUI_LUNA_V1_H_ +#endif From 2246be44405a7f21c87f37e154c83cd8e44e189a Mon Sep 17 00:00:00 2001 From: Marcos Chaparro Date: Mon, 22 Nov 2021 16:01:40 -0300 Subject: [PATCH 3/4] bbshd: update default motor config Signed-off-by: Marcos Chaparro --- mcconf/mcconf_luna_bbshd_52v.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mcconf/mcconf_luna_bbshd_52v.h b/mcconf/mcconf_luna_bbshd_52v.h index 1d813d54..e5cc45f4 100644 --- a/mcconf/mcconf_luna_bbshd_52v.h +++ b/mcconf/mcconf_luna_bbshd_52v.h @@ -16,13 +16,13 @@ #define MCCONF_SENSOR_MODE 0 // Motor Current Max -#define MCCONF_L_CURRENT_MAX 180 +#define MCCONF_L_CURRENT_MAX 160 // Motor Current Max Brake #define MCCONF_L_CURRENT_MIN -30 // Battery Current Max -#define MCCONF_L_IN_CURRENT_MAX 105 +#define MCCONF_L_IN_CURRENT_MAX 70 // Battery Current Max Regen #define MCCONF_L_IN_CURRENT_MIN -20 From b7caa46a8ebb5468c102592d280cbdf6b20db72d Mon Sep 17 00:00:00 2001 From: Marcos Chaparro Date: Tue, 28 Dec 2021 11:17:50 -0300 Subject: [PATCH 4/4] bbshd: update qmlui Signed-off-by: Marcos Chaparro --- qmlui/app/qmlui_luna_v1.c | 908 +++++++++++++++++++------------------- qmlui/app/qmlui_luna_v1.h | 2 +- 2 files changed, 457 insertions(+), 453 deletions(-) diff --git a/qmlui/app/qmlui_luna_v1.c b/qmlui/app/qmlui_luna_v1.c index 536268c7..6d3eee4b 100644 --- a/qmlui/app/qmlui_luna_v1.c +++ b/qmlui/app/qmlui_luna_v1.c @@ -2,456 +2,460 @@ #include "qmlui_luna_v1.h" -uint8_t data_qml_app[7202] = { - 0x00, 0x01, 0x90, 0x9d, 0x78, 0xda, 0xed, 0x3d, 0x6b, 0x73, 0xdb, 0x38, 0x92, 0xdf, 0xfd, 0x2b, - 0x30, 0xba, 0xba, 0x39, 0x69, 0xe3, 0xa1, 0x64, 0x3b, 0x76, 0x76, 0x74, 0x97, 0x9d, 0x8a, 0x9d, - 0x78, 0xc6, 0x55, 0xce, 0x8c, 0xc7, 0x72, 0x32, 0x1f, 0x36, 0x5b, 0x2e, 0x5a, 0x84, 0x64, 0x54, - 0xf8, 0x1a, 0x00, 0xf2, 0x63, 0xf7, 0x5c, 0x75, 0x3f, 0xe0, 0x7e, 0xe5, 0xfd, 0x92, 0x6b, 0x80, - 0xa4, 0x44, 0x52, 0x7c, 0x80, 0x2f, 0x5b, 0x76, 0xc0, 0xcc, 0x24, 0x36, 0x09, 0x74, 0x03, 0x8d, - 0x46, 0x77, 0xa3, 0xd1, 0x0d, 0x10, 0xc7, 0xf7, 0x28, 0x47, 0x9f, 0xb1, 0x65, 0x61, 0x6a, 0xdc, - 0x60, 0x36, 0x95, 0x7f, 0x11, 0x97, 0x63, 0x3a, 0x33, 0xa7, 0x18, 0xed, 0x18, 0xa3, 0xff, 0x24, - 0x41, 0xa1, 0xde, 0x9f, 0x74, 0x3a, 0x1e, 0x3a, 0xde, 0x15, 0xb1, 0x71, 0x2f, 0x7a, 0xf9, 0x3b, - 0xff, 0x7d, 0x41, 0xa6, 0x5f, 0xd1, 0xae, 0xf1, 0x66, 0x2b, 0xf9, 0xca, 0x38, 0xf2, 0x5c, 0x4e, - 0x3d, 0x9b, 0xc1, 0xb7, 0xdd, 0xf4, 0xb7, 0x53, 0xf3, 0xde, 0x5b, 0x70, 0x06, 0xe0, 0xf7, 0x56, - 0x9f, 0x0c, 0xdb, 0xbc, 0x62, 0x06, 0xc3, 0x9c, 0x13, 0x77, 0x2e, 0xbe, 0x8d, 0x90, 0xc9, 0xd0, - 0xef, 0x93, 0xf0, 0x45, 0x54, 0xb0, 0xb0, 0xb1, 0x59, 0x85, 0xae, 0x6c, 0xbc, 0x30, 0xe1, 0x5d, - 0xce, 0xe7, 0xa9, 0xe7, 0x38, 0xa6, 0x6b, 0xb1, 0xfc, 0xef, 0xee, 0x8c, 0xcc, 0x7d, 0x93, 0x9a, - 0x4e, 0x6e, 0x99, 0x05, 0x27, 0x36, 0xe1, 0xf7, 0xf2, 0xf3, 0xd6, 0x09, 0xc7, 0x0e, 0xfa, 0xd7, - 0x16, 0x82, 0x87, 0x58, 0x63, 0xe4, 0x98, 0xc4, 0x15, 0xaf, 0xe4, 0x0b, 0xd3, 0x9d, 0x5e, 0x7b, - 0x94, 0x19, 0x33, 0x62, 0xdb, 0x63, 0x04, 0x40, 0xb1, 0xcb, 0xe5, 0x87, 0xe1, 0x30, 0xfa, 0xe4, - 0x98, 0x74, 0x4e, 0x5c, 0x36, 0x46, 0x3b, 0xa3, 0xe0, 0xc3, 0x8c, 0xdc, 0x21, 0x7e, 0x4d, 0xd8, - 0x96, 0x2c, 0xe8, 0x53, 0xcf, 0xc7, 0x14, 0x70, 0x1d, 0xda, 0xf8, 0x93, 0xe8, 0x96, 0x03, 0x3f, - 0x8c, 0xa1, 0x35, 0x6c, 0x7a, 0x32, 0x13, 0x7d, 0x7d, 0x8f, 0x6f, 0xc8, 0x14, 0xf7, 0x07, 0xc9, - 0xd2, 0x47, 0x51, 0x2f, 0x9d, 0xe8, 0xa7, 0x65, 0x9d, 0x88, 0x00, 0xe9, 0x2a, 0x37, 0x26, 0x45, - 0xb3, 0xdb, 0xcf, 0x98, 0x32, 0xe2, 0xb9, 0xe3, 0x55, 0x45, 0x63, 0x8e, 0xf9, 0x71, 0xf4, 0x7e, - 0x1d, 0x8f, 0xa0, 0xd6, 0x59, 0x40, 0x2d, 0xe7, 0xe3, 0x54, 0xfc, 0xbe, 0xc4, 0xe4, 0x4c, 0x83, - 0xcf, 0xc5, 0x95, 0xde, 0xf9, 0x7e, 0xa2, 0x96, 0x19, 0xfc, 0x5e, 0x56, 0xed, 0xc4, 0x9d, 0x79, - 0x89, 0x7a, 0x24, 0x7c, 0xb1, 0x5e, 0xf1, 0xca, 0xf3, 0x6c, 0x44, 0xd8, 0x2f, 0x1e, 0x25, 0xff, - 0x04, 0x2e, 0x35, 0x61, 0x28, 0x6e, 0x89, 0xc5, 0xaf, 0xd1, 0xdf, 0xd0, 0x35, 0x26, 0xf3, 0x6b, - 0xbe, 0x95, 0x51, 0x9e, 0x4d, 0xaf, 0xb1, 0xb5, 0xb0, 0xb1, 0x00, 0xf9, 0x07, 0x25, 0x1c, 0x88, - 0x3e, 0x33, 0x6d, 0x86, 0x33, 0x8a, 0xc2, 0x88, 0x61, 0xeb, 0xe2, 0x9a, 0x7a, 0x9c, 0xdb, 0xcb, - 0x62, 0xeb, 0xc4, 0x0d, 0x86, 0xff, 0xc2, 0xbc, 0x3a, 0x34, 0x69, 0xc4, 0x0c, 0x06, 0x97, 0xbf, - 0x2e, 0x19, 0x46, 0xfe, 0x05, 0x94, 0xf7, 0x3d, 0x57, 0x7c, 0xf5, 0x5c, 0xf1, 0xb3, 0x8d, 0x39, - 0x06, 0xce, 0x0a, 0x78, 0x4c, 0x82, 0x8d, 0x41, 0x32, 0x6e, 0x08, 0x23, 0xc0, 0x07, 0xe8, 0x2d, - 0xe2, 0x74, 0x81, 0xb3, 0xcb, 0x60, 0xd7, 0x84, 0x22, 0x56, 0xbc, 0xcc, 0xc3, 0x56, 0x88, 0xcb, - 0x5e, 0x38, 0x6e, 0x30, 0x41, 0x63, 0x18, 0x32, 0x19, 0x77, 0xf9, 0x35, 0x80, 0x1a, 0x2b, 0x1e, - 0x31, 0x7f, 0xd0, 0x9b, 0xc4, 0xeb, 0xa0, 0xee, 0x38, 0xd1, 0x9e, 0x44, 0x81, 0x2c, 0x54, 0x82, - 0x12, 0x89, 0x42, 0xd3, 0x05, 0x15, 0xef, 0x4f, 0x5c, 0x0b, 0xdf, 0x8d, 0x11, 0xbb, 0x25, 0x3e, - 0xfe, 0x4c, 0xf0, 0xad, 0x11, 0x7f, 0x9f, 0xa8, 0x10, 0xf4, 0x48, 0x02, 0xfd, 0x43, 0x8c, 0xf5, - 0x38, 0x49, 0x1d, 0xd9, 0x60, 0xa0, 0x2c, 0x99, 0x12, 0x1e, 0x7e, 0x1f, 0x25, 0x11, 0xda, 0xc4, - 0x0f, 0xeb, 0x24, 0xbb, 0x13, 0x8d, 0x28, 0xc8, 0x21, 0x74, 0xb5, 0xe0, 0xdc, 0x13, 0x73, 0x77, - 0xbf, 0xac, 0x4c, 0x88, 0x63, 0x67, 0x34, 0x4a, 0x82, 0x13, 0xf4, 0x90, 0x05, 0x52, 0xc4, 0x14, - 0x0f, 0xc7, 0x77, 0x40, 0xb7, 0x3f, 0xd9, 0x05, 0xed, 0xf7, 0x80, 0x0b, 0x5d, 0x3c, 0xe5, 0xbd, - 0xc1, 0x5a, 0xa9, 0xdb, 0x00, 0xf2, 0x47, 0x93, 0x5f, 0x83, 0x2c, 0xb9, 0xeb, 0x07, 0x43, 0x60, - 0xc4, 0xd0, 0x6e, 0xaf, 0xd5, 0x59, 0xc3, 0x14, 0xd4, 0x09, 0x26, 0xc5, 0x10, 0x25, 0x40, 0xb0, - 0x24, 0xca, 0x87, 0x5a, 0xcd, 0x3f, 0x27, 0x16, 0x7e, 0xae, 0x6d, 0xbf, 0x58, 0xb8, 0xcf, 0xb6, - 0xed, 0x87, 0xe4, 0x2b, 0x46, 0x47, 0xc7, 0x3f, 0x3f, 0xd7, 0xf6, 0x1f, 0x13, 0xea, 0xdc, 0x82, - 0x44, 0xd8, 0xa4, 0xf6, 0x3f, 0xac, 0x66, 0xf0, 0x24, 0x92, 0x43, 0x19, 0xa2, 0x70, 0x29, 0xa3, - 0x0a, 0xe4, 0x58, 0x88, 0x50, 0x45, 0x88, 0xfd, 0x22, 0x15, 0x55, 0x86, 0x14, 0xcb, 0x11, 0x74, - 0x4a, 0xc2, 0xec, 0xcc, 0x9c, 0x63, 0x68, 0xfa, 0x1a, 0x9d, 0x7e, 0xa6, 0xc4, 0x5a, 0x53, 0x09, - 0xe9, 0x0e, 0xce, 0xa1, 0x50, 0xe6, 0xc7, 0x5c, 0xa3, 0x27, 0xfd, 0x64, 0xbe, 0x9c, 0x4a, 0x85, - 0x04, 0x32, 0x35, 0xae, 0xb0, 0xd1, 0x4f, 0x68, 0x17, 0x81, 0xf8, 0x2c, 0xa8, 0x31, 0xf1, 0x4d, - 0xb0, 0x0d, 0xe7, 0x69, 0x59, 0x1c, 0x3d, 0xd4, 0xbb, 0x5d, 0x96, 0xd8, 0x19, 0x6d, 0x65, 0x96, - 0x39, 0x71, 0x02, 0x7a, 0xe4, 0xb1, 0x8b, 0xe8, 0x35, 0x11, 0x65, 0x72, 0x4b, 0x84, 0x83, 0xb1, - 0x6c, 0x91, 0x5b, 0xa1, 0x1b, 0xb1, 0xfa, 0x3e, 0xc5, 0x33, 0x0c, 0x3c, 0x61, 0x45, 0x23, 0x1a, - 0xe3, 0x53, 0xe5, 0xba, 0x11, 0xc7, 0xf4, 0x99, 0xb7, 0xa0, 0x53, 0x3c, 0x21, 0xff, 0xc4, 0x46, - 0x60, 0xee, 0xa0, 0xbf, 0x64, 0x23, 0x1a, 0x94, 0x4e, 0x98, 0xf4, 0x33, 0x44, 0x31, 0xe0, 0x4a, - 0xcd, 0x33, 0x6d, 0x32, 0x77, 0x1d, 0x69, 0x11, 0xc0, 0x12, 0xe0, 0x9d, 0xf8, 0xed, 0x97, 0x23, - 0x2c, 0x6c, 0x7a, 0xf4, 0xdf, 0xcb, 0x37, 0x87, 0x60, 0x49, 0x79, 0x4e, 0x2e, 0xa8, 0x36, 0xa6, - 0x7e, 0x0d, 0x11, 0x10, 0x7f, 0x82, 0x6e, 0x8f, 0xc3, 0x55, 0x12, 0xc5, 0x6c, 0x68, 0x7b, 0x73, - 0xef, 0xf2, 0xf6, 0x1a, 0x0c, 0xc5, 0x4b, 0x7b, 0xe1, 0x9a, 0x97, 0xd8, 0x22, 0x1c, 0x0c, 0x66, - 0xc3, 0x77, 0xe7, 0xbd, 0x4c, 0x30, 0x0f, 0xd9, 0x4c, 0xf8, 0x33, 0xf5, 0x16, 0xfe, 0xa1, 0x77, - 0x57, 0xc2, 0x87, 0x57, 0xd2, 0x32, 0x05, 0x4a, 0xdd, 0xe5, 0x16, 0xe3, 0x44, 0x9a, 0xa3, 0xa1, - 0x26, 0x38, 0xfd, 0x80, 0x42, 0x23, 0x02, 0x5a, 0xd5, 0x1b, 0x94, 0x8d, 0x53, 0x91, 0xe1, 0x54, - 0xc2, 0xf1, 0x3b, 0x5b, 0xb9, 0xa5, 0x4b, 0x05, 0x4b, 0x5a, 0x86, 0x70, 0xcf, 0xff, 0x28, 0x17, - 0x48, 0x63, 0xf4, 0xc3, 0xbe, 0x52, 0x8d, 0x2b, 0xc9, 0x3b, 0x15, 0x2b, 0x65, 0x9b, 0xb9, 0x99, - 0xc2, 0x46, 0x8a, 0xd2, 0xd5, 0x4a, 0x20, 0xef, 0x09, 0xad, 0xf2, 0x12, 0xea, 0xa5, 0x25, 0xd3, - 0x0f, 0x3b, 0xa3, 0x62, 0xec, 0x2a, 0xa2, 0x2e, 0x06, 0x98, 0x95, 0x95, 0x59, 0x4a, 0xdb, 0x83, - 0xe2, 0x6e, 0xe7, 0x6a, 0xeb, 0x2c, 0xde, 0x84, 0x35, 0xfd, 0xaf, 0xa6, 0x83, 0x83, 0x3a, 0xe5, - 0x4a, 0x38, 0xa6, 0xef, 0x45, 0xb5, 0x5e, 0xb9, 0x18, 0xca, 0x60, 0xba, 0x5d, 0xd5, 0x4a, 0x69, - 0xd9, 0xba, 0x3b, 0x1a, 0xa9, 0x56, 0x55, 0x9d, 0x13, 0xd1, 0x13, 0xae, 0xba, 0xe4, 0x64, 0x85, - 0x89, 0x0a, 0xed, 0x5d, 0xc0, 0x82, 0xe0, 0x6f, 0x68, 0xb4, 0x55, 0x5a, 0x15, 0x16, 0x7e, 0xb0, - 0x36, 0xf9, 0x9a, 0x5c, 0xf6, 0x15, 0xd2, 0x7d, 0x86, 0xfa, 0x80, 0x46, 0x2c, 0x24, 0x99, 0x01, - 0x23, 0x7f, 0x24, 0x70, 0xf5, 0x07, 0x02, 0xdb, 0x40, 0x11, 0x84, 0x78, 0x00, 0x84, 0x18, 0x83, - 0xf7, 0xc4, 0x04, 0x79, 0x66, 0xc0, 0x32, 0x26, 0x5a, 0xf1, 0x97, 0x3d, 0x0f, 0x08, 0xc3, 0x94, - 0xa8, 0x80, 0x29, 0x5c, 0xb5, 0x63, 0x87, 0xf0, 0x8f, 0x98, 0x31, 0xd0, 0xaa, 0x01, 0xd2, 0x7e, - 0x65, 0x25, 0x24, 0x9e, 0xde, 0x04, 0x73, 0x24, 0x64, 0x5c, 0xe0, 0x0e, 0x41, 0x92, 0x91, 0xb6, - 0xeb, 0x81, 0xfa, 0xd5, 0x43, 0x56, 0x00, 0x85, 0x61, 0x1b, 0xe4, 0x25, 0xb6, 0x8c, 0x9a, 0xa0, - 0xa4, 0x98, 0xd8, 0x0e, 0xfe, 0x51, 0x24, 0xe3, 0x56, 0xb3, 0x12, 0x0f, 0x2d, 0x4d, 0xe3, 0x60, - 0x52, 0xf6, 0xce, 0x4c, 0x42, 0x7b, 0x5d, 0x4d, 0x8f, 0xe6, 0x13, 0x32, 0x29, 0x00, 0xda, 0x9f, - 0x54, 0x3e, 0x74, 0x3f, 0x36, 0x15, 0x42, 0x06, 0x1d, 0x6c, 0xc8, 0x18, 0x49, 0x51, 0x3b, 0x35, - 0xdd, 0x1a, 0x72, 0x76, 0x02, 0xd5, 0x9e, 0x8f, 0x9c, 0x6d, 0x7f, 0x60, 0x57, 0x64, 0x8b, 0xb9, - 0xc6, 0xca, 0x95, 0x7a, 0xf4, 0x08, 0x1f, 0xac, 0xc1, 0xb8, 0x49, 0xb9, 0x20, 0x64, 0xd7, 0x0c, - 0x71, 0xe4, 0x39, 0x57, 0x5e, 0xb1, 0x45, 0x98, 0xb2, 0x0c, 0x8b, 0xac, 0xc2, 0x82, 0xb1, 0x3d, - 0xe8, 0x78, 0xa6, 0x2b, 0xd9, 0xfe, 0x9f, 0x83, 0x37, 0xe5, 0xec, 0x4c, 0x4d, 0x97, 0xcd, 0x3c, - 0xea, 0xfc, 0x46, 0x89, 0x34, 0xf5, 0x84, 0xea, 0x33, 0xc2, 0xca, 0x4a, 0x93, 0xe1, 0xdc, 0x13, - 0xf6, 0x59, 0xef, 0x2b, 0xbe, 0x2f, 0x17, 0x71, 0x8e, 0x67, 0x61, 0xb0, 0x10, 0x4f, 0x09, 0xe3, - 0x1f, 0xc5, 0x8f, 0xaa, 0x5a, 0x39, 0x18, 0x0f, 0xa9, 0x95, 0x37, 0x48, 0x6a, 0x58, 0x84, 0x4d, - 0x83, 0xb5, 0x40, 0x0d, 0xd9, 0xf1, 0x7e, 0x59, 0x59, 0x41, 0x82, 0x2c, 0x4d, 0x20, 0xb5, 0xc9, - 0xf5, 0xf8, 0x36, 0x5a, 0xc6, 0x34, 0xd8, 0xeb, 0x40, 0xe0, 0x84, 0xd6, 0xce, 0x8a, 0xf0, 0x67, - 0x1e, 0xe5, 0x1b, 0xa5, 0x49, 0xea, 0x33, 0xc4, 0x91, 0xe6, 0x86, 0xa7, 0x31, 0xd6, 0x13, 0x43, - 0x56, 0x4b, 0x91, 0xc5, 0x58, 0x33, 0x02, 0x66, 0xe3, 0x7a, 0x16, 0xf8, 0xb2, 0x3f, 0x73, 0xcc, - 0xeb, 0x41, 0x08, 0xa1, 0xc8, 0x95, 0x52, 0xcc, 0x23, 0x3a, 0x30, 0x6e, 0x4c, 0x7b, 0xf1, 0x68, - 0xf6, 0x73, 0xb5, 0x2f, 0xcd, 0x9c, 0x38, 0x60, 0x4d, 0x82, 0xea, 0x9a, 0x2b, 0x3b, 0x71, 0xde, - 0x9b, 0xdc, 0x44, 0xa7, 0x41, 0xa5, 0xea, 0x2e, 0x9c, 0xdc, 0xf2, 0xc3, 0x61, 0xa6, 0x17, 0x27, - 0xbf, 0xf8, 0xe4, 0x96, 0xf0, 0xe9, 0x75, 0x41, 0xe7, 0x86, 0xc3, 0x58, 0xf7, 0x82, 0xd2, 0x05, - 0x65, 0xe3, 0xc2, 0xe4, 0x83, 0xe4, 0xe2, 0xa8, 0x6a, 0x41, 0x27, 0x87, 0xc3, 0x95, 0xfb, 0x66, - 0x2a, 0xb5, 0xfe, 0x89, 0x5b, 0xe8, 0x6d, 0x0e, 0x2a, 0xe5, 0x0f, 0x70, 0x69, 0xa7, 0xa2, 0x51, - 0xa3, 0x1c, 0x86, 0xe0, 0x83, 0x5b, 0x66, 0x64, 0x85, 0x4b, 0xa8, 0xb0, 0x43, 0xe7, 0x17, 0x28, - 0x31, 0x7a, 0x4a, 0x6e, 0x29, 0xe5, 0x7e, 0xd5, 0x14, 0x79, 0xd5, 0x97, 0x51, 0x95, 0x44, 0x9d, - 0x10, 0x73, 0xd3, 0x6b, 0x2c, 0x8a, 0x0f, 0x2a, 0x48, 0xc6, 0x50, 0x20, 0x89, 0x15, 0xd7, 0xb9, - 0x20, 0xf5, 0x31, 0xa9, 0x23, 0x93, 0x68, 0x54, 0xf5, 0x02, 0xc6, 0xc1, 0x10, 0x83, 0x31, 0xa8, - 0x22, 0x5b, 0x3f, 0x05, 0x21, 0x1e, 0x81, 0x95, 0xff, 0xb3, 0xcb, 0xd8, 0xb1, 0x47, 0xf1, 0x1c, - 0xa6, 0xb5, 0x6b, 0x4d, 0x30, 0x8d, 0x85, 0x5c, 0x54, 0x10, 0xb1, 0x0c, 0xf3, 0x3f, 0xcc, 0xaf, - 0xf8, 0xd4, 0x9b, 0x7e, 0xed, 0x8b, 0xb1, 0x69, 0x4d, 0xa4, 0x55, 0xf1, 0xbd, 0x44, 0xe2, 0xde, - 0xf6, 0x18, 0x5e, 0x91, 0x57, 0xad, 0x29, 0x2b, 0xa2, 0x78, 0x7e, 0x1e, 0x4d, 0x94, 0x87, 0xf9, - 0xbb, 0xb0, 0x25, 0x0b, 0x86, 0x97, 0x54, 0xa9, 0x34, 0x44, 0x19, 0x54, 0xdd, 0x1c, 0x4f, 0xcb, - 0x05, 0x71, 0x30, 0x55, 0xe8, 0x0c, 0xc5, 0x3e, 0x36, 0xb9, 0xa2, 0x79, 0x42, 0x17, 0xae, 0x2b, - 0x1d, 0xbf, 0x4a, 0xa5, 0x65, 0xa4, 0xd4, 0x8d, 0x88, 0x76, 0xd9, 0x1f, 0x29, 0xb9, 0x1c, 0x2f, - 0x60, 0x25, 0x35, 0xc7, 0xb4, 0x9a, 0x1d, 0xb3, 0x92, 0x86, 0x46, 0x38, 0xd7, 0x2b, 0x4d, 0xd5, - 0xef, 0xbf, 0x47, 0x11, 0x23, 0x10, 0x26, 0xf9, 0xf1, 0x37, 0xe9, 0x74, 0xac, 0x37, 0x57, 0x1b, - 0xb2, 0x65, 0x6b, 0xac, 0xd9, 0x9c, 0x3d, 0xd5, 0x58, 0x54, 0x81, 0x11, 0x13, 0xf2, 0x30, 0x31, - 0x4e, 0x60, 0x29, 0x66, 0x51, 0xfe, 0xd1, 0x2d, 0xa8, 0xe2, 0x37, 0x0f, 0x99, 0x5b, 0xd6, 0x6b, - 0x76, 0xa3, 0x39, 0xfd, 0x1a, 0x0c, 0xf9, 0x18, 0x9d, 0x83, 0x19, 0x6b, 0xba, 0x73, 0x3b, 0x4f, - 0x22, 0x7a, 0x62, 0xfb, 0x84, 0xdf, 0x8f, 0xd1, 0xc8, 0x18, 0x6d, 0x29, 0x50, 0x73, 0x38, 0x3c, - 0xe7, 0x42, 0x77, 0x4f, 0x30, 0x5f, 0xf8, 0x19, 0x30, 0x83, 0xaf, 0x7f, 0x10, 0x7e, 0x7d, 0x81, - 0x1d, 0x1f, 0x53, 0x93, 0x2f, 0x68, 0x1e, 0x6e, 0xa5, 0xbd, 0xf1, 0x4d, 0x23, 0x40, 0x4e, 0x8c, - 0x58, 0x56, 0xbf, 0x62, 0xfb, 0x75, 0xfb, 0x85, 0x05, 0x93, 0xdb, 0x74, 0x3b, 0x40, 0x64, 0x1b, - 0x9b, 0x37, 0x18, 0x31, 0x5f, 0x84, 0x76, 0xce, 0x3c, 0x8a, 0x40, 0xf3, 0xf2, 0x05, 0xbb, 0x32, - 0xe9, 0x4f, 0xea, 0x94, 0xcc, 0x8e, 0x0f, 0x28, 0xd9, 0xb2, 0x2b, 0xdf, 0xaa, 0x63, 0xab, 0x0d, - 0xb7, 0xcc, 0xef, 0x99, 0xf1, 0x70, 0x69, 0xb3, 0xd1, 0xa7, 0x1e, 0xb4, 0x15, 0xb3, 0x74, 0xfc, - 0x5b, 0xa2, 0xa9, 0x89, 0xf0, 0x90, 0xb0, 0xc6, 0x24, 0x3b, 0xda, 0x2d, 0x17, 0x48, 0x22, 0xe8, - 0xd0, 0x36, 0x19, 0x3f, 0x0b, 0xe0, 0x84, 0x50, 0xd5, 0x80, 0x54, 0xb4, 0x26, 0x0b, 0x63, 0xe9, - 0xd6, 0x07, 0xa3, 0x78, 0x3d, 0x92, 0x1d, 0x63, 0xb7, 0x57, 0xa5, 0x7c, 0x5e, 0xbc, 0x5d, 0x7a, - 0xd4, 0x54, 0x3c, 0x24, 0x09, 0xc7, 0x39, 0xa7, 0x18, 0xf3, 0x2f, 0xae, 0x8d, 0xe7, 0xa6, 0x5d, - 0xe2, 0xf1, 0x48, 0x87, 0x29, 0xa8, 0xca, 0xfd, 0x18, 0xa3, 0xd4, 0x8a, 0x69, 0x88, 0xd7, 0x8f, - 0xe2, 0x1a, 0xd6, 0x61, 0x16, 0x04, 0x37, 0x3c, 0xb4, 0x4a, 0xb2, 0x0b, 0x6a, 0x12, 0x4d, 0x2a, - 0x25, 0x52, 0x7d, 0x71, 0xc5, 0x9f, 0xd3, 0x85, 0x45, 0xa6, 0x20, 0xca, 0xd9, 0x4b, 0x25, 0x9a, - 0x78, 0xde, 0xb9, 0xc4, 0x31, 0x39, 0xb6, 0xca, 0x62, 0xae, 0xe2, 0x12, 0xd4, 0x0c, 0xeb, 0x94, - 0x16, 0x8e, 0x69, 0xa3, 0x55, 0xa0, 0xb5, 0xe7, 0x57, 0xa9, 0x17, 0x69, 0xa6, 0x91, 0x72, 0x25, - 0x1b, 0xcf, 0x96, 0x61, 0xce, 0xf2, 0x17, 0xe5, 0x9a, 0x34, 0x08, 0xd4, 0x0a, 0xab, 0xca, 0xdf, - 0x4a, 0xeb, 0x5e, 0x87, 0xd1, 0x5d, 0x07, 0xe5, 0x0d, 0x14, 0x32, 0x5c, 0x6c, 0x5a, 0x8c, 0x93, - 0x44, 0x37, 0xce, 0x28, 0x66, 0x60, 0x1f, 0xe3, 0x77, 0xcc, 0x07, 0x83, 0xe1, 0x98, 0x94, 0x23, - 0x5d, 0x8f, 0x7a, 0x02, 0xed, 0x42, 0x3d, 0xd7, 0x5c, 0xf0, 0x4b, 0xdf, 0x03, 0xe9, 0x0b, 0x4a, - 0xf2, 0xd2, 0xf2, 0x6e, 0x5d, 0x63, 0x4e, 0x66, 0xbd, 0xc7, 0x70, 0xb4, 0xe5, 0x45, 0x60, 0xe6, - 0x28, 0xdf, 0x49, 0x66, 0x50, 0x66, 0xa9, 0x06, 0x66, 0x85, 0x51, 0x9a, 0x39, 0x6a, 0x33, 0x37, - 0x62, 0xb3, 0x89, 0xab, 0x2e, 0xae, 0x3e, 0x8b, 0x5c, 0x63, 0x81, 0x9e, 0x42, 0xa7, 0x42, 0x4d, - 0xe5, 0x96, 0x93, 0xa6, 0x64, 0xee, 0xd7, 0x7f, 0x95, 0x6c, 0x4a, 0x96, 0xda, 0x84, 0xb5, 0xec, - 0xc3, 0x4e, 0x6c, 0xc5, 0x7a, 0x76, 0x63, 0x15, 0x1b, 0xb2, 0x9a, 0x3d, 0x59, 0xc5, 0xb6, 0x4c, - 0x70, 0x3b, 0xa8, 0x05, 0xdb, 0x2e, 0x61, 0xf7, 0x24, 0x27, 0x28, 0x07, 0xe3, 0x16, 0x70, 0x9a, - 0xe2, 0x5e, 0x04, 0x07, 0xd0, 0x21, 0x13, 0x87, 0xa2, 0xac, 0x38, 0x22, 0x54, 0x65, 0xde, 0x28, - 0x55, 0xae, 0xc8, 0x8b, 0x8d, 0x78, 0xb2, 0x84, 0x37, 0x2b, 0xd7, 0xaf, 0xc6, 0x86, 0x75, 0xd8, - 0xb1, 0x1e, 0x5b, 0xd6, 0x61, 0xcf, 0xe8, 0x89, 0x65, 0xc4, 0xa9, 0x3e, 0x42, 0x64, 0x89, 0xd9, - 0x4c, 0x2b, 0xd5, 0xaa, 0xb9, 0xcb, 0xd7, 0x44, 0x60, 0xd7, 0xf4, 0xbe, 0x28, 0x6e, 0x0a, 0xe5, - 0xa9, 0x2f, 0x26, 0xc5, 0xf9, 0x85, 0x47, 0xff, 0x5c, 0x28, 0x05, 0x77, 0xa4, 0xf6, 0x57, 0xe2, - 0x7b, 0x48, 0x51, 0x9e, 0x1a, 0x0a, 0xa0, 0xf5, 0x06, 0x6d, 0x50, 0xbc, 0x12, 0x8c, 0x73, 0xef, - 0xb6, 0xf2, 0x5c, 0x8d, 0xf1, 0x49, 0xa3, 0x69, 0xbb, 0x2e, 0x18, 0xeb, 0x4e, 0xe0, 0x76, 0x26, - 0x72, 0x93, 0x09, 0xdd, 0x6c, 0x62, 0x67, 0x4c, 0xf0, 0xaa, 0x55, 0xc5, 0xce, 0x4a, 0x8d, 0x31, - 0x8c, 0x6d, 0x8e, 0x45, 0xcc, 0xf8, 0xc5, 0x7d, 0xe7, 0xf8, 0xac, 0x57, 0x0b, 0xd4, 0xd4, 0xb3, - 0x3d, 0x0a, 0xb0, 0x64, 0xec, 0x7d, 0x3d, 0x10, 0xd7, 0xcb, 0x0c, 0x8d, 0x77, 0xab, 0x10, 0x25, - 0xb9, 0x6f, 0x14, 0x0f, 0x52, 0xaa, 0x05, 0x3a, 0x9c, 0x30, 0x0e, 0x01, 0xd3, 0x7b, 0xe1, 0xc4, - 0xdc, 0x12, 0x55, 0x01, 0x3d, 0x54, 0xae, 0x31, 0xb1, 0x89, 0xa5, 0xb4, 0x07, 0xa1, 0x22, 0x75, - 0x02, 0x60, 0xb5, 0x40, 0x31, 0x8e, 0x7d, 0x91, 0x20, 0x22, 0x13, 0x6f, 0xea, 0x00, 0x98, 0x51, - 0xcf, 0x11, 0x61, 0x1f, 0xb5, 0x2a, 0xcb, 0xe0, 0x81, 0x31, 0x7a, 0x5d, 0xaf, 0x36, 0xf7, 0xa0, - 0xd5, 0xfb, 0x23, 0x90, 0x17, 0xb0, 0xc2, 0x46, 0xfe, 0xb5, 0xc9, 0x30, 0x32, 0x81, 0x55, 0x9b, - 0xf0, 0x42, 0x23, 0xe1, 0xb9, 0x9c, 0x7b, 0x9e, 0x67, 0x5f, 0x10, 0xbf, 0xe6, 0xe8, 0xca, 0x65, - 0x7c, 0x98, 0x98, 0xbb, 0x3e, 0xca, 0xc6, 0xb5, 0xe9, 0x5a, 0x36, 0xae, 0x0d, 0x79, 0x29, 0x90, - 0x32, 0x40, 0xfb, 0xb0, 0x6a, 0x64, 0x15, 0xf7, 0x88, 0xd6, 0x05, 0x47, 0x06, 0x60, 0x39, 0xce, - 0xa0, 0x14, 0x8e, 0x45, 0x32, 0x76, 0xfd, 0x00, 0x94, 0xd5, 0xb3, 0x33, 0xa8, 0x05, 0xe4, 0xa1, - 0xe3, 0x99, 0xfd, 0xb0, 0x91, 0xa6, 0xc9, 0x99, 0xc9, 0xaa, 0xda, 0x25, 0x4f, 0x6d, 0x4a, 0x68, - 0xc5, 0xdd, 0x40, 0x71, 0x9f, 0xbd, 0x9b, 0x68, 0x9d, 0xbd, 0xb9, 0x3a, 0x1b, 0xa6, 0x63, 0x3b, - 0x0a, 0xbb, 0x81, 0xbe, 0x6e, 0xa4, 0xae, 0x77, 0xeb, 0xab, 0xeb, 0x6e, 0x75, 0xc3, 0xce, 0x00, - 0x6c, 0x81, 0x7f, 0x47, 0xde, 0xec, 0x25, 0x1b, 0x03, 0x4b, 0xf6, 0x69, 0xd9, 0x12, 0x58, 0xc1, - 0x6d, 0xd3, 0x0c, 0x58, 0x41, 0xd5, 0x36, 0xc0, 0x93, 0xda, 0x00, 0xde, 0x2d, 0xa6, 0xda, 0x0a, - 0xf8, 0x96, 0xac, 0x00, 0x31, 0xe2, 0xda, 0x02, 0xd8, 0x48, 0x0b, 0x40, 0x0c, 0x4d, 0x2b, 0x36, - 0xc0, 0xee, 0xfe, 0xe8, 0xa9, 0xac, 0x80, 0x37, 0xfb, 0xf5, 0xcd, 0x00, 0xa8, 0x2b, 0x96, 0xed, - 0x53, 0x6f, 0x61, 0x5b, 0xe8, 0x0a, 0xa3, 0x85, 0x6f, 0x89, 0xad, 0x4f, 0xd9, 0x2c, 0x74, 0x65, - 0x72, 0x1e, 0x6d, 0xf5, 0x21, 0x9b, 0x38, 0x84, 0xa3, 0x57, 0x48, 0xac, 0xf0, 0x6f, 0x3c, 0x9b, - 0x17, 0x1d, 0xf0, 0xf1, 0x6c, 0x35, 0xfa, 0x8a, 0x1d, 0xda, 0xd6, 0xe9, 0x31, 0xc8, 0xad, 0x6a, - 0xf5, 0x18, 0x5c, 0xad, 0xd7, 0x9f, 0x52, 0xaf, 0x9f, 0xfb, 0x8e, 0xd6, 0xea, 0xdf, 0x90, 0x56, - 0x3f, 0x3f, 0xfb, 0xa8, 0x75, 0xfa, 0x26, 0xea, 0x74, 0x98, 0x88, 0x1b, 0xa0, 0xd1, 0xf7, 0x47, - 0x8d, 0x74, 0xfa, 0xde, 0x68, 0x54, 0x5f, 0xa9, 0x1f, 0xd4, 0x45, 0xbe, 0xc9, 0xba, 0x79, 0x39, - 0xac, 0x2d, 0x6b, 0xe6, 0x15, 0xdc, 0x36, 0xf5, 0xf2, 0x0a, 0xaa, 0xd6, 0xca, 0x4f, 0xa9, 0x95, - 0xa3, 0xad, 0xd3, 0x73, 0xcc, 0x7c, 0xcf, 0x65, 0x58, 0xab, 0xe8, 0x6f, 0x48, 0x45, 0xaf, 0xf6, - 0xcd, 0xa3, 0xe1, 0xd7, 0x1a, 0x7b, 0x13, 0x35, 0x76, 0x7a, 0x92, 0xb6, 0xa2, 0xbe, 0x47, 0x46, - 0x13, 0xb7, 0xfc, 0x5e, 0x13, 0xe5, 0x3d, 0x32, 0x7e, 0xac, 0xad, 0xbb, 0x47, 0xc6, 0xde, 0xcb, - 0xdb, 0x35, 0xcf, 0x1c, 0xdf, 0xb6, 0xf7, 0xcf, 0xb3, 0x91, 0xb4, 0xba, 0x93, 0x9e, 0x8d, 0x42, - 0x6b, 0xf8, 0x4d, 0xd0, 0xf0, 0x1f, 0xee, 0x7c, 0x4f, 0x6b, 0xf7, 0x6f, 0x52, 0xbb, 0x9f, 0x12, - 0x17, 0x9b, 0x94, 0xf0, 0x7b, 0xad, 0xde, 0x37, 0x59, 0xbd, 0x8b, 0x19, 0xfa, 0xbc, 0xf7, 0xdb, - 0x7f, 0x6c, 0x10, 0x1e, 0xf7, 0x02, 0x97, 0xe4, 0xeb, 0x03, 0xdb, 0x91, 0x4e, 0x8f, 0x21, 0xe8, - 0x42, 0x9f, 0xc7, 0xc0, 0x6b, 0x5d, 0x5e, 0xbf, 0x64, 0x63, 0x55, 0x7e, 0x1c, 0xbf, 0x21, 0xa6, - 0x25, 0x5d, 0xfe, 0xa4, 0xaa, 0x5c, 0x6b, 0x72, 0x25, 0x4d, 0x2e, 0xc7, 0x1d, 0xe9, 0x28, 0xf7, - 0x0e, 0xa5, 0xc3, 0x91, 0x38, 0xcc, 0xa4, 0xfa, 0xdc, 0x2c, 0x99, 0xa3, 0x12, 0xea, 0x55, 0xc5, - 0x89, 0xba, 0x1c, 0xab, 0xe0, 0x7c, 0x95, 0xba, 0xfc, 0xde, 0xd2, 0x9c, 0x7f, 0x7a, 0xd1, 0xd9, - 0xf8, 0x88, 0xa5, 0xbc, 0x0f, 0x5b, 0x35, 0x96, 0x67, 0xc3, 0x21, 0x92, 0x27, 0x11, 0x14, 0x67, - 0xc3, 0xea, 0xa4, 0xd7, 0x9a, 0x42, 0x5b, 0x27, 0xbd, 0xea, 0xa4, 0xd7, 0x8e, 0xbd, 0x02, 0x3a, - 0xe9, 0xb5, 0x2d, 0xd5, 0xf0, 0x3c, 0x92, 0x5e, 0xb9, 0x10, 0xd7, 0x3a, 0xe7, 0x55, 0xe7, 0xbc, - 0xbe, 0x54, 0xef, 0x9e, 0x5e, 0x0d, 0x6c, 0x9e, 0x63, 0x2f, 0x26, 0x74, 0x9e, 0x7b, 0xca, 0xeb, - 0xce, 0x48, 0xe7, 0xbc, 0xe6, 0x78, 0xf9, 0xd6, 0x46, 0xb9, 0x35, 0xf7, 0xde, 0x3a, 0xe4, 0x76, - 0xfc, 0x7a, 0xeb, 0x70, 0xb5, 0x43, 0xef, 0x09, 0xcd, 0x12, 0x9d, 0xef, 0xaa, 0xf3, 0x5d, 0xb5, - 0xbe, 0xde, 0x14, 0x7d, 0xfd, 0xfc, 0xd3, 0x5d, 0xf7, 0x6b, 0x6b, 0xea, 0x4e, 0x15, 0xc3, 0x0b, - 0xcf, 0x76, 0x4d, 0x32, 0x4f, 0xbb, 0x36, 0x40, 0xdb, 0xb9, 0xae, 0x29, 0xa0, 0x5a, 0xfb, 0x3f, - 0xa5, 0xf6, 0xd7, 0x99, 0xae, 0x3a, 0xd3, 0x55, 0xeb, 0xfe, 0xcd, 0xd0, 0xfd, 0x2f, 0x21, 0xd1, - 0x75, 0x77, 0x7f, 0xa4, 0x33, 0x5d, 0xdb, 0xd1, 0xe6, 0x1d, 0x24, 0xba, 0xae, 0x01, 0x6e, 0x53, - 0xa3, 0xeb, 0x34, 0xd7, 0xcd, 0xd0, 0xe9, 0x3a, 0xcb, 0x55, 0x67, 0xb9, 0x6a, 0x7d, 0xfe, 0xf4, - 0xfa, 0xfc, 0x45, 0x24, 0xb9, 0xee, 0xeb, 0x24, 0xd7, 0xa4, 0x5a, 0x6e, 0x3f, 0xc7, 0x35, 0x05, - 0xb6, 0x45, 0x95, 0xac, 0x33, 0x5c, 0x37, 0x42, 0x21, 0xeb, 0x04, 0xd7, 0x6f, 0x58, 0x3b, 0xeb, - 0x04, 0xd7, 0x67, 0xa1, 0xac, 0x5f, 0x5e, 0x7e, 0xeb, 0x6b, 0x9d, 0xdf, 0x1a, 0xdb, 0x21, 0xef, - 0x36, 0xbd, 0xb5, 0x08, 0x47, 0x9b, 0xbb, 0xe6, 0x3a, 0xb9, 0x75, 0x63, 0x95, 0xbb, 0xce, 0x6d, - 0xd5, 0xb9, 0xad, 0x5a, 0xb3, 0x6f, 0xb0, 0x66, 0xd7, 0xa9, 0xad, 0x2f, 0x53, 0xa5, 0x77, 0x90, - 0xd9, 0x9a, 0x07, 0xbf, 0x03, 0x55, 0xae, 0xf3, 0x5a, 0x5b, 0x29, 0xd9, 0x54, 0x8b, 0xeb, 0xb4, - 0x56, 0x9d, 0xd6, 0xaa, 0x03, 0xd9, 0x3b, 0x11, 0x0e, 0x2d, 0xa4, 0xb5, 0xae, 0x4f, 0x51, 0x9d, - 0xd5, 0x5a, 0x5c, 0x52, 0xb5, 0x60, 0x6b, 0xd9, 0xaf, 0x5b, 0xb5, 0xef, 0xc8, 0x2d, 0xca, 0x73, - 0x5d, 0x5e, 0x20, 0xfd, 0x4c, 0x73, 0x5d, 0x75, 0x3a, 0x6b, 0x72, 0x40, 0x75, 0x3a, 0x6b, 0xbb, - 0x6c, 0xd7, 0x94, 0xfd, 0xda, 0x71, 0x04, 0xe8, 0x74, 0xd6, 0xb6, 0x74, 0xc2, 0x33, 0x49, 0x67, - 0xd5, 0x99, 0xac, 0x3a, 0x93, 0xf5, 0x85, 0xfa, 0xf2, 0xf4, 0x02, 0x60, 0x03, 0xdd, 0x78, 0x2f, - 0x23, 0x89, 0x75, 0x5f, 0x27, 0xb1, 0xe6, 0xf9, 0xf3, 0x3a, 0xc9, 0x5f, 0xed, 0x20, 0x75, 0x55, - 0x67, 0xad, 0x3e, 0xbd, 0xf5, 0xe1, 0xeb, 0x84, 0x55, 0x9d, 0xb0, 0xaa, 0xd5, 0xf2, 0xd3, 0xab, - 0x65, 0xff, 0xb9, 0xe7, 0xaa, 0xee, 0x35, 0xc8, 0x55, 0xd5, 0x69, 0xaa, 0x75, 0x14, 0xbd, 0xdf, - 0x7a, 0x86, 0xaa, 0xdf, 0x72, 0x72, 0xaa, 0xaf, 0xf3, 0x52, 0x9f, 0x5a, 0xbf, 0xeb, 0x94, 0x54, - 0x9d, 0x92, 0xaa, 0xb5, 0xfb, 0x93, 0x6b, 0xf7, 0x17, 0x72, 0xed, 0xaa, 0xce, 0x46, 0x6d, 0xac, - 0xb4, 0x3b, 0x48, 0x44, 0xf5, 0x5b, 0xcf, 0x41, 0xf5, 0x75, 0xfa, 0xe9, 0x93, 0xab, 0x6e, 0xaa, - 0x33, 0x4f, 0x75, 0xe6, 0xa9, 0x56, 0xdb, 0x4f, 0xa9, 0xb6, 0xe9, 0x4b, 0x48, 0x3a, 0x3d, 0xd8, - 0xd7, 0x49, 0xa7, 0x91, 0xf6, 0xa5, 0xad, 0xe7, 0x9b, 0xd2, 0x96, 0x53, 0x4d, 0xa9, 0xce, 0x32, - 0x7d, 0x62, 0xbd, 0xcb, 0x75, 0x82, 0x29, 0xd2, 0x7b, 0xd7, 0x3a, 0xc1, 0x74, 0x43, 0x75, 0x32, - 0x7f, 0x71, 0xb9, 0xa5, 0x7b, 0x3a, 0xb7, 0x34, 0xd8, 0xb8, 0xee, 0x38, 0xad, 0xb4, 0xd3, 0x8c, - 0x52, 0x9d, 0x4c, 0xba, 0x89, 0x3a, 0x5c, 0xe7, 0x91, 0xea, 0x3c, 0x52, 0xad, 0xc0, 0x37, 0x53, - 0x81, 0xeb, 0x14, 0xd2, 0x17, 0xa7, 0xb9, 0xbb, 0xc8, 0x1e, 0xed, 0x2c, 0x71, 0x54, 0xe7, 0x8c, - 0xb6, 0x59, 0xb2, 0x81, 0xb2, 0x9e, 0xe9, 0x74, 0x51, 0x9d, 0x2e, 0xaa, 0xa3, 0xc5, 0xbb, 0x90, - 0x0b, 0x2d, 0xa4, 0x8b, 0xce, 0x74, 0xa6, 0xe8, 0x06, 0x67, 0x8a, 0xd6, 0xfb, 0x9a, 0xfd, 0x25, - 0xfb, 0xad, 0x8a, 0x74, 0x94, 0x21, 0x0e, 0xd4, 0x83, 0x61, 0xc1, 0x0c, 0xca, 0x6f, 0x35, 0x11, - 0x74, 0x6a, 0x02, 0x4d, 0x25, 0x77, 0xed, 0x70, 0xc1, 0xb9, 0xe7, 0x96, 0xb0, 0x7e, 0xb4, 0xf9, - 0x86, 0x4d, 0xeb, 0x8b, 0x3b, 0xc1, 0x9c, 0x03, 0xd4, 0x12, 0x29, 0x14, 0x32, 0xe1, 0x54, 0xa6, - 0x26, 0x4e, 0x7c, 0xd3, 0x1d, 0xa3, 0x5d, 0x95, 0x0a, 0x60, 0xb7, 0xcc, 0x30, 0xa5, 0xd8, 0x0a, - 0x59, 0x77, 0xb7, 0x44, 0x04, 0xa4, 0xab, 0x45, 0x49, 0x6c, 0x7f, 0x55, 0xaa, 0x56, 0x65, 0x8e, - 0x78, 0xee, 0x91, 0x4d, 0x82, 0xb9, 0x59, 0x2e, 0x28, 0xf8, 0xc2, 0xc5, 0x7f, 0xc0, 0xc2, 0x0a, - 0x47, 0xd4, 0x0a, 0xe8, 0x6c, 0x60, 0xd7, 0x84, 0x71, 0xb3, 0xd0, 0x5b, 0xb5, 0x39, 0x79, 0x45, - 0xbe, 0xaa, 0x80, 0x29, 0x85, 0xe3, 0x1c, 0x79, 0x8e, 0x03, 0xc6, 0x26, 0x33, 0xe6, 0x98, 0x7f, - 0x9c, 0x4e, 0x3d, 0x77, 0xd6, 0x1f, 0x54, 0xab, 0xf5, 0xce, 0xf7, 0x8f, 0x82, 0x6a, 0xa5, 0xf5, - 0x86, 0xc3, 0x40, 0x8c, 0xc9, 0x9b, 0x76, 0x4d, 0xe4, 0x98, 0x7c, 0x7a, 0x8d, 0x88, 0x1b, 0x04, - 0x4c, 0x80, 0x35, 0x60, 0x85, 0xa1, 0xa6, 0x51, 0x30, 0x0b, 0xf7, 0x10, 0xc3, 0x36, 0x9e, 0xc2, - 0x4f, 0xd7, 0x38, 0x9a, 0x23, 0xe5, 0x69, 0xc6, 0x26, 0x45, 0x0b, 0x86, 0x4f, 0x1c, 0x1f, 0x53, - 0x62, 0xda, 0x40, 0x8b, 0xcf, 0x98, 0x4d, 0x4f, 0x66, 0x46, 0xec, 0xe5, 0x27, 0x97, 0x70, 0xa6, - 0xd0, 0x53, 0x01, 0x8b, 0x38, 0xfe, 0xb1, 0x09, 0x6d, 0x78, 0x9b, 0x80, 0xfa, 0x13, 0xda, 0xfb, - 0xd1, 0xd8, 0x7b, 0x33, 0xda, 0x41, 0x52, 0x1d, 0x8d, 0x8c, 0xd1, 0x96, 0x12, 0xb4, 0xa0, 0xaf, - 0x6f, 0x91, 0xf3, 0x71, 0x2a, 0xc8, 0x26, 0x28, 0x78, 0x66, 0x52, 0xd3, 0x79, 0xef, 0x2d, 0x60, - 0xe4, 0xfa, 0x3d, 0xfb, 0xf2, 0xd6, 0xe4, 0xfc, 0xd2, 0x31, 0xef, 0x7a, 0x6a, 0xcd, 0x0b, 0xe2, - 0x7f, 0x0b, 0x21, 0x86, 0xf4, 0x0c, 0x80, 0x56, 0x11, 0xa4, 0x02, 0x3e, 0xf5, 0x9d, 0x42, 0xe0, - 0x00, 0xf4, 0x12, 0x43, 0x21, 0x80, 0x3c, 0x44, 0xaf, 0x0d, 0x11, 0xa7, 0xd4, 0x7f, 0x0d, 0xdd, - 0xb4, 0x61, 0xc4, 0x4c, 0x42, 0x99, 0x5a, 0x2f, 0x7c, 0x93, 0x09, 0x2c, 0x21, 0x33, 0xad, 0xa1, - 0x31, 0x7d, 0xff, 0x12, 0x8a, 0x5c, 0x0a, 0x06, 0x35, 0xa2, 0xee, 0xb0, 0xa9, 0x69, 0x03, 0xef, - 0x03, 0xe2, 0xbf, 0x84, 0x54, 0x50, 0x23, 0x58, 0xca, 0xdb, 0x58, 0x86, 0xd7, 0xb4, 0xa6, 0x01, - 0x5e, 0x78, 0xef, 0x5f, 0x72, 0xe2, 0xe0, 0x4b, 0xdf, 0x63, 0xaa, 0xa3, 0x13, 0x5b, 0x28, 0x01, - 0xa2, 0x1d, 0xc1, 0x28, 0xe8, 0x07, 0xd4, 0x57, 0xc3, 0x18, 0xd5, 0xbe, 0xc4, 0x77, 0x7e, 0x6f, - 0x20, 0xfa, 0xf9, 0xc3, 0xae, 0xe0, 0x34, 0x15, 0xcc, 0x22, 0x2c, 0xec, 0x08, 0x28, 0x55, 0x38, - 0x78, 0xc4, 0x4d, 0x32, 0x87, 0x3a, 0x64, 0x6c, 0xdb, 0x2c, 0x03, 0xf4, 0x89, 0xcb, 0xfb, 0x3d, - 0x46, 0x2e, 0x45, 0x19, 0x4c, 0xef, 0x2f, 0xa7, 0xa2, 0x5c, 0x82, 0xe9, 0xea, 0xa9, 0xf4, 0x08, - 0xef, 0x6f, 0x37, 0x98, 0x86, 0x71, 0x6d, 0xa5, 0x5c, 0x79, 0x43, 0xdc, 0x0a, 0x3d, 0xfa, 0xe4, - 0x5a, 0x4b, 0xd0, 0x13, 0x6e, 0x52, 0x5e, 0x08, 0x7f, 0xd9, 0xbf, 0x05, 0xf0, 0xa1, 0x28, 0x5d, - 0x13, 0xd3, 0x07, 0xd7, 0x52, 0xc6, 0x83, 0x5d, 0x4b, 0x11, 0xcb, 0xed, 0x35, 0xc6, 0xf6, 0x7b, - 0x62, 0x3a, 0x98, 0x17, 0x0a, 0x1b, 0x18, 0x28, 0x59, 0xf4, 0xd2, 0x0a, 0xcb, 0xca, 0xb9, 0x14, - 0x0a, 0xbc, 0x72, 0x79, 0x46, 0x66, 0xa8, 0xdf, 0x0f, 0x05, 0xda, 0x5b, 0xc4, 0x38, 0xc5, 0x00, - 0x3f, 0x1d, 0xfc, 0x36, 0x40, 0xdf, 0x7f, 0x8f, 0xfa, 0x91, 0x94, 0x8a, 0x8a, 0xad, 0x5f, 0xae, - 0x05, 0xec, 0xad, 0x66, 0x67, 0x47, 0xb6, 0xd2, 0xa1, 0x49, 0x0d, 0x86, 0x25, 0x8f, 0x03, 0xff, - 0x9e, 0x00, 0x51, 0xef, 0xfa, 0xa3, 0x81, 0x9a, 0x37, 0x27, 0xaf, 0x11, 0x42, 0x71, 0xaa, 0x49, - 0x92, 0x15, 0x94, 0xb5, 0x1e, 0x03, 0x90, 0x80, 0x28, 0x0d, 0x9f, 0x0a, 0x6d, 0x48, 0x1d, 0xaf, - 0x0d, 0x2d, 0x00, 0x89, 0x5c, 0xa5, 0x0f, 0xc9, 0x5c, 0x03, 0xd1, 0x03, 0x93, 0x55, 0xa1, 0x64, - 0xc1, 0x0e, 0x8e, 0xa0, 0x69, 0xea, 0x73, 0x0d, 0xc8, 0x69, 0x4f, 0x53, 0x0c, 0xaa, 0xf8, 0xd4, - 0xd0, 0xda, 0x5f, 0xe7, 0xe6, 0xec, 0x8b, 0x44, 0xd2, 0xcc, 0x9c, 0x73, 0x51, 0x5c, 0x2b, 0xbc, - 0xbc, 0xa3, 0xc8, 0xcb, 0x39, 0x6d, 0xa8, 0xc6, 0xca, 0xd9, 0xdd, 0x7d, 0x54, 0x4e, 0xce, 0x3a, - 0x27, 0xbe, 0x02, 0x23, 0x67, 0xdd, 0xe5, 0x56, 0x81, 0x8f, 0x4b, 0x4f, 0xb5, 0xad, 0xcb, 0xc6, - 0x85, 0x67, 0xec, 0x75, 0xcd, 0xc5, 0x7e, 0x29, 0x03, 0x77, 0xc3, 0xbb, 0xbb, 0x6a, 0xbe, 0x5b, - 0xde, 0x90, 0x6b, 0xfd, 0x8e, 0x18, 0x56, 0x09, 0x39, 0xad, 0xcd, 0xaa, 0x7e, 0x7d, 0x2e, 0xed, - 0x82, 0x41, 0xdb, 0xe2, 0x4d, 0x15, 0xc2, 0x45, 0x56, 0xe9, 0xa1, 0x77, 0x67, 0x50, 0x6c, 0xda, - 0x9f, 0x43, 0x4c, 0x2d, 0x9a, 0xa8, 0x29, 0x33, 0x51, 0x1d, 0x93, 0xba, 0xcd, 0x98, 0x69, 0x2f, - 0xaa, 0x23, 0xaa, 0x63, 0x3c, 0x66, 0x18, 0x8e, 0xf5, 0x10, 0xaa, 0x59, 0x91, 0x09, 0x0b, 0x52, - 0x15, 0x51, 0xb1, 0x39, 0xd9, 0xa6, 0xb7, 0x4d, 0xd9, 0x43, 0x25, 0xf7, 0x4c, 0xb3, 0x7d, 0x2e, - 0xb5, 0x05, 0x40, 0xe8, 0xf5, 0x92, 0x20, 0x55, 0xdd, 0x5e, 0xa1, 0x63, 0x46, 0xc5, 0x7d, 0xfb, - 0x8d, 0x7b, 0xc8, 0x36, 0xd7, 0x7d, 0x43, 0x66, 0xfd, 0xb8, 0xce, 0x9b, 0xc6, 0x14, 0x9e, 0x50, - 0xa5, 0x23, 0x55, 0xc5, 0x19, 0x4d, 0x9f, 0x20, 0x8b, 0xab, 0xc0, 0x57, 0xb3, 0x9d, 0xbf, 0x58, - 0x6a, 0x8e, 0x68, 0xe9, 0x66, 0xda, 0xce, 0x5d, 0xb9, 0x35, 0x47, 0xb2, 0x74, 0x0e, 0x6d, 0xe7, - 0x2c, 0x54, 0xfe, 0x22, 0x5c, 0x46, 0x8a, 0x88, 0x22, 0x97, 0x49, 0x06, 0xa6, 0x42, 0xff, 0xd0, - 0x76, 0xce, 0x22, 0x67, 0xd8, 0x94, 0xbc, 0x25, 0x0d, 0xca, 0x71, 0x1c, 0x6d, 0x2b, 0xac, 0x99, - 0x06, 0xa8, 0xa5, 0xa7, 0xdd, 0x8e, 0x24, 0xfc, 0x51, 0xdb, 0xa8, 0x1f, 0xb9, 0xb3, 0x8a, 0x97, - 0x6a, 0xc2, 0x31, 0x28, 0xfd, 0x56, 0x6a, 0x64, 0x4d, 0xec, 0x99, 0xa1, 0xc8, 0x61, 0x90, 0x79, - 0xe6, 0xaa, 0x11, 0xee, 0x8a, 0xb5, 0x62, 0x37, 0x17, 0x4e, 0xee, 0x9d, 0x0e, 0x26, 0x77, 0xde, - 0xe2, 0xb1, 0xd5, 0xb9, 0x9d, 0xb3, 0x8e, 0x6d, 0x75, 0x6a, 0x67, 0xae, 0xdc, 0x1e, 0x67, 0x66, - 0x67, 0xae, 0xfa, 0x86, 0x0d, 0x49, 0x5b, 0x77, 0x5e, 0x97, 0xae, 0x21, 0x9f, 0xd9, 0xb4, 0x2e, - 0x5c, 0xba, 0x36, 0x9c, 0xd5, 0xf9, 0x07, 0x29, 0x3f, 0xde, 0xa4, 0xde, 0xed, 0x62, 0x52, 0x77, - 0x3c, 0x9f, 0xfd, 0x6e, 0xa7, 0x32, 0x7d, 0x92, 0x59, 0xec, 0xaf, 0x4f, 0xe0, 0x47, 0x9f, 0xbb, - 0x2f, 0x68, 0xda, 0x76, 0x33, 0x63, 0x67, 0x1d, 0x4f, 0xd6, 0x42, 0x16, 0x4d, 0x79, 0x01, 0xb6, - 0xb3, 0x1d, 0x09, 0x83, 0x3a, 0x48, 0xb2, 0xb7, 0xac, 0xb6, 0x57, 0xdb, 0x5c, 0x49, 0x14, 0xcd, - 0x06, 0xb8, 0x74, 0x1e, 0x0a, 0x07, 0xc4, 0x76, 0x91, 0x0b, 0x63, 0xd0, 0x0c, 0xc7, 0xba, 0xef, - 0x61, 0xbb, 0xdc, 0x9b, 0xd1, 0x22, 0x4e, 0xe1, 0x7e, 0xd8, 0x2e, 0x73, 0x66, 0x34, 0xc2, 0xb7, - 0xee, 0x85, 0xd8, 0x2e, 0xf0, 0x66, 0x0c, 0xa3, 0x05, 0x62, 0x39, 0x4e, 0x06, 0xbc, 0x6e, 0x2d, - 0x80, 0xf7, 0x01, 0xb1, 0x5c, 0xfc, 0xab, 0x46, 0x6b, 0x34, 0x8f, 0x25, 0x4a, 0xbe, 0x49, 0xa5, - 0x81, 0xe4, 0x1c, 0x3c, 0x7f, 0x65, 0x4e, 0xbf, 0xce, 0xa9, 0xb7, 0x70, 0x61, 0xd9, 0x7d, 0x8e, - 0xa7, 0xdc, 0x74, 0xe7, 0x76, 0xde, 0x01, 0xf5, 0x9e, 0x88, 0x08, 0xe2, 0xf7, 0x22, 0x29, 0x6a, - 0x94, 0x81, 0x7c, 0xed, 0x95, 0xc2, 0xc9, 0xe2, 0xca, 0x87, 0x12, 0xe7, 0x1c, 0x3b, 0x8c, 0x86, - 0x43, 0x1b, 0x9b, 0x37, 0x58, 0x46, 0x2b, 0x61, 0x19, 0x32, 0x02, 0xfc, 0xca, 0x17, 0xec, 0xca, - 0xa4, 0x3f, 0x15, 0x02, 0x2a, 0xcf, 0xfd, 0x50, 0x3a, 0x2f, 0xbe, 0xe2, 0x19, 0xf1, 0x0a, 0xe7, - 0xc2, 0xd7, 0x38, 0x0b, 0xbe, 0xea, 0x31, 0xdc, 0xc3, 0xe1, 0x95, 0x18, 0x71, 0x76, 0x88, 0xaf, - 0xcd, 0x1b, 0x22, 0xe2, 0x3a, 0x27, 0x30, 0x00, 0xef, 0x60, 0x3a, 0x8b, 0xb7, 0xb9, 0xd5, 0x7e, - 0xa6, 0xc4, 0x52, 0x0a, 0xe3, 0x15, 0xfe, 0xb4, 0x39, 0x14, 0x2e, 0xf6, 0x48, 0x55, 0x0e, 0xec, - 0x0d, 0x9c, 0x5d, 0x2c, 0x18, 0x76, 0xc2, 0x7e, 0x59, 0xc6, 0x93, 0xa2, 0x9f, 0x90, 0x74, 0xd1, - 0x28, 0xd4, 0x9e, 0xa8, 0x85, 0xe3, 0x52, 0xef, 0x76, 0x59, 0x72, 0xa7, 0xc4, 0xeb, 0x53, 0x21, - 0x2e, 0x5b, 0x10, 0x46, 0x88, 0xb5, 0x89, 0x0c, 0x58, 0xf2, 0x94, 0x8e, 0x0d, 0x4b, 0x9c, 0x42, - 0x7e, 0x18, 0x08, 0x49, 0x74, 0x46, 0x31, 0xc3, 0x5c, 0x25, 0xbe, 0xa4, 0x66, 0x3c, 0x67, 0x86, - 0x7f, 0x71, 0xa7, 0xdc, 0xf9, 0x55, 0x35, 0xce, 0xbb, 0x76, 0x6c, 0xf7, 0x32, 0x38, 0x71, 0x4f, - 0x6d, 0xfb, 0x53, 0xc9, 0x0d, 0x9c, 0x1e, 0xa9, 0x5b, 0xcf, 0x9e, 0x05, 0x15, 0x95, 0xab, 0x45, - 0x5e, 0x5f, 0xa8, 0xf9, 0xc5, 0xdd, 0xdf, 0xfd, 0xac, 0x1e, 0x29, 0x5d, 0xd9, 0xa1, 0xdb, 0x82, - 0x73, 0x57, 0xc5, 0xd1, 0xfb, 0xa6, 0x32, 0x88, 0xda, 0x99, 0x33, 0x95, 0x3c, 0xc0, 0x2a, 0xfb, - 0x45, 0x6f, 0x54, 0xc2, 0xa0, 0xd6, 0x00, 0xad, 0x59, 0x73, 0x22, 0x24, 0xeb, 0x75, 0x65, 0x38, - 0x05, 0xbb, 0x4b, 0x07, 0x75, 0xda, 0x55, 0xba, 0x95, 0xf4, 0xfa, 0xb5, 0xb1, 0xdb, 0x08, 0x6a, - 0xc6, 0x6e, 0xd1, 0xeb, 0xaa, 0xf9, 0xcf, 0xf5, 0x62, 0x45, 0x73, 0x21, 0xac, 0xe2, 0x46, 0x55, - 0xab, 0x3f, 0x28, 0x06, 0x7e, 0x77, 0x23, 0x36, 0xc2, 0xf9, 0xff, 0x9e, 0x50, 0x8c, 0xb4, 0x10, - 0xa8, 0x91, 0x3f, 0xd0, 0xba, 0x0c, 0xd8, 0x19, 0xed, 0xb7, 0x27, 0x04, 0x5a, 0x5f, 0xc6, 0xbf, - 0x4c, 0x81, 0xf1, 0x32, 0x25, 0x46, 0x97, 0x02, 0x43, 0xfa, 0xde, 0x43, 0x89, 0xf1, 0x46, 0x4b, - 0x8c, 0x27, 0x95, 0x18, 0x07, 0xad, 0x59, 0x0d, 0xbb, 0xa3, 0xf6, 0x45, 0xc1, 0x5f, 0x0f, 0xba, - 0x10, 0x05, 0x07, 0x7b, 0x15, 0x8f, 0x67, 0x51, 0x10, 0x05, 0xfb, 0x6f, 0x8c, 0x83, 0x6f, 0x53, - 0x12, 0x94, 0x25, 0x8d, 0xb5, 0xbd, 0x9c, 0x0c, 0xa3, 0xea, 0x54, 0x56, 0x93, 0xc3, 0x61, 0xe6, - 0x82, 0x52, 0x2f, 0x24, 0x47, 0x6a, 0x5a, 0xab, 0x62, 0x4e, 0x6e, 0x28, 0xde, 0xc3, 0x01, 0xfa, - 0xe2, 0x7e, 0x34, 0xef, 0xd4, 0x65, 0x7b, 0xcd, 0x9c, 0xdb, 0x96, 0xf3, 0x6c, 0x1b, 0xe5, 0xd6, - 0x2a, 0xda, 0xd9, 0x81, 0x57, 0x76, 0xe2, 0x13, 0xb7, 0x5a, 0x26, 0x6d, 0x7c, 0x02, 0x54, 0x49, - 0x6b, 0x6f, 0xa8, 0x72, 0x2c, 0x3c, 0x25, 0x8e, 0x69, 0xb3, 0x2a, 0xba, 0x76, 0x29, 0x19, 0xc7, - 0x15, 0x4d, 0x52, 0x51, 0xf1, 0x38, 0x38, 0x49, 0xa3, 0x62, 0xad, 0x0b, 0xaf, 0x2a, 0x2e, 0xa1, - 0xc6, 0xc9, 0x1d, 0xb0, 0xdc, 0x09, 0xfc, 0xaf, 0x7e, 0xcb, 0xe1, 0x62, 0x16, 0xd4, 0x42, 0xef, - 0x7a, 0x4f, 0x9c, 0x76, 0x5b, 0x53, 0x80, 0xfe, 0x55, 0x85, 0x79, 0xda, 0x14, 0x80, 0x9b, 0x28, - 0xff, 0x3a, 0x14, 0x7f, 0x72, 0xb3, 0xec, 0xdb, 0x92, 0x7b, 0x8f, 0x22, 0xf6, 0x42, 0xa3, 0xf3, - 0xf1, 0xe5, 0xde, 0xa8, 0x96, 0xdc, 0x7b, 0x5d, 0x4b, 0xec, 0xed, 0xec, 0xd5, 0x90, 0x7b, 0xbb, - 0x55, 0x84, 0xe5, 0x52, 0x80, 0xb1, 0x67, 0x2a, 0xbf, 0xb4, 0xf8, 0xea, 0xd4, 0x7c, 0x8b, 0x2d, - 0xc7, 0xb4, 0xf5, 0xd6, 0xbe, 0x18, 0x4b, 0xae, 0x76, 0x9f, 0x89, 0x11, 0x77, 0x30, 0x7a, 0x34, - 0x1b, 0xae, 0xd2, 0x92, 0x7f, 0x69, 0xc2, 0x7d, 0xae, 0x67, 0xc2, 0x7d, 0x7e, 0xa6, 0x22, 0x70, - 0x57, 0xcb, 0xc0, 0x4e, 0x65, 0x60, 0xdc, 0xd9, 0xf3, 0xc5, 0x3d, 0x5a, 0x70, 0x6f, 0x36, 0x43, - 0xd2, 0x97, 0xa4, 0x45, 0x62, 0xfb, 0x22, 0x31, 0xcb, 0x61, 0xf7, 0x4c, 0x04, 0x63, 0xa5, 0x5d, - 0x05, 0x2d, 0x18, 0x3b, 0x17, 0x8c, 0x7b, 0x5a, 0x30, 0x3e, 0xbe, 0x60, 0xfc, 0xe0, 0x5a, 0x5a, - 0x2c, 0x76, 0x2b, 0x16, 0x83, 0x1d, 0x87, 0xe7, 0x22, 0x14, 0xab, 0xc4, 0x51, 0x68, 0xa1, 0x58, - 0x91, 0xbd, 0x6a, 0x48, 0xc5, 0xd7, 0x95, 0x43, 0xef, 0x26, 0x3e, 0xc6, 0x96, 0xf7, 0xc8, 0x1b, - 0x25, 0xdf, 0x98, 0x2c, 0xfd, 0x43, 0x84, 0x60, 0x7f, 0x71, 0xa3, 0x20, 0x6c, 0x2d, 0x42, 0xdb, - 0x15, 0xa1, 0xe9, 0x08, 0xf7, 0xc7, 0x17, 0x9e, 0x79, 0x59, 0xda, 0x35, 0x4f, 0x82, 0x1e, 0xa0, - 0x9f, 0xd0, 0x2e, 0xaa, 0xe9, 0x8e, 0x6c, 0xb9, 0x2d, 0x41, 0x63, 0x40, 0xf8, 0x42, 0x7b, 0x0e, - 0x1e, 0xd1, 0x3b, 0xb0, 0xb3, 0x3f, 0x1a, 0xd5, 0x91, 0xf8, 0xff, 0xf7, 0xbf, 0xff, 0x53, 0x47, - 0xe6, 0xb7, 0x4a, 0x35, 0x41, 0xb2, 0x1e, 0x01, 0x99, 0xd4, 0x03, 0xa2, 0xf5, 0x1c, 0x67, 0x13, - 0x4c, 0xec, 0xb6, 0x35, 0xcd, 0x7e, 0x65, 0x4d, 0xf3, 0x91, 0xb0, 0xa9, 0xd6, 0x33, 0x5d, 0xea, - 0x99, 0xf7, 0x78, 0x66, 0x2e, 0x6c, 0xfe, 0xc5, 0x0d, 0xe2, 0xae, 0x4e, 0xf1, 0x0d, 0xb6, 0xb5, - 0xb2, 0x69, 0xdf, 0x5e, 0x17, 0xfb, 0xf2, 0xfb, 0xcf, 0x68, 0x83, 0xea, 0xd1, 0x84, 0xf6, 0x8f, - 0xc6, 0xe8, 0x79, 0x7a, 0x13, 0x0e, 0x2a, 0x48, 0xb3, 0xde, 0x7b, 0x93, 0x9b, 0xe8, 0xd4, 0x9b, - 0xcf, 0x45, 0x02, 0xef, 0xb7, 0x1e, 0x60, 0xb4, 0xdf, 0x6d, 0xc8, 0xf9, 0xd1, 0xb5, 0xe7, 0x31, - 0x2c, 0xa8, 0x2d, 0xec, 0x67, 0x2a, 0xd3, 0x8b, 0xee, 0x0d, 0xc3, 0xe8, 0xb5, 0x11, 0xca, 0xd9, - 0x34, 0xa2, 0x74, 0x67, 0x77, 0xd4, 0x7d, 0x3c, 0xa7, 0x38, 0xd4, 0xee, 0x13, 0x27, 0x36, 0xe1, - 0xf7, 0x06, 0xc5, 0x7f, 0x2e, 0x30, 0xe3, 0xc7, 0xc4, 0xc6, 0x67, 0x98, 0x3a, 0x84, 0x31, 0xe2, - 0xb9, 0xf5, 0xef, 0x1b, 0x51, 0x3e, 0xee, 0x2e, 0xfe, 0xd8, 0xde, 0x5c, 0xe2, 0x17, 0x9d, 0xa1, - 0x55, 0xcf, 0xee, 0x2e, 0x06, 0x16, 0x9e, 0xe0, 0x5e, 0x07, 0xd8, 0x03, 0xc2, 0x36, 0xc3, 0x35, - 0xba, 0x13, 0x1a, 0x7e, 0xd8, 0x21, 0xfc, 0x23, 0x66, 0xcc, 0x9c, 0x63, 0x58, 0x49, 0x40, 0xb3, - 0x9a, 0xdd, 0xe2, 0xd2, 0x13, 0xbd, 0x42, 0xab, 0x31, 0x62, 0xbd, 0xed, 0x66, 0xf0, 0x3e, 0x49, - 0x3a, 0x8b, 0x53, 0xc1, 0x43, 0x1e, 0x40, 0xe2, 0x64, 0x07, 0xc4, 0xee, 0x19, 0xc7, 0x0e, 0xf2, - 0x97, 0x88, 0x8c, 0x86, 0x88, 0xe4, 0x11, 0x5d, 0xdb, 0xc1, 0x3f, 0x83, 0x27, 0xbd, 0x1b, 0xe6, - 0x41, 0xdd, 0x52, 0x3a, 0x71, 0xfd, 0x4a, 0x77, 0xb0, 0xd4, 0xb4, 0x74, 0xe4, 0xc5, 0xce, 0xfc, - 0x34, 0x60, 0x59, 0x81, 0x57, 0xb9, 0x66, 0xc5, 0x74, 0xda, 0xfc, 0xea, 0x8e, 0xcc, 0x10, 0x06, - 0x43, 0xe0, 0x8d, 0x72, 0xe5, 0x19, 0xd8, 0x66, 0x86, 0xef, 0x11, 0x97, 0x87, 0x97, 0x5e, 0xed, - 0x56, 0x95, 0xc1, 0xc6, 0x10, 0xe6, 0x43, 0x4f, 0x5d, 0x5a, 0xfe, 0x1e, 0x1d, 0x0b, 0x67, 0x44, - 0x3f, 0x54, 0x9c, 0x97, 0x3e, 0xf5, 0x80, 0xa3, 0xf9, 0x3d, 0x32, 0x6d, 0x62, 0xb2, 0x80, 0xe6, - 0x29, 0xd2, 0x1b, 0xbc, 0x0a, 0xfd, 0x33, 0x80, 0x86, 0x67, 0xa3, 0xc8, 0xf3, 0x50, 0xc6, 0x28, - 0xef, 0xa4, 0x94, 0x4a, 0x18, 0x9a, 0x34, 0x27, 0x7e, 0x1a, 0xd7, 0x38, 0xf7, 0x6c, 0xae, 0xe6, - 0x18, 0xce, 0x4c, 0x36, 0xce, 0x3e, 0x12, 0xac, 0x05, 0xd8, 0x62, 0xd5, 0x31, 0xce, 0x3b, 0x51, - 0xad, 0x39, 0xfc, 0x73, 0xdf, 0x19, 0x67, 0x1f, 0xa5, 0xd6, 0x02, 0xe5, 0x53, 0x47, 0xa0, 0x8c, - 0x15, 0x0e, 0x2a, 0x6b, 0x0f, 0xab, 0x38, 0xad, 0x64, 0x5c, 0x72, 0x92, 0x58, 0x73, 0x6c, 0x89, - 0x13, 0x87, 0xc6, 0xad, 0x9c, 0x2d, 0xd6, 0x16, 0xfb, 0xc7, 0xce, 0xac, 0x1a, 0xe7, 0x1d, 0x60, - 0xd5, 0x18, 0xbe, 0xe4, 0xfd, 0xac, 0x43, 0xb3, 0x9a, 0x43, 0x0e, 0x38, 0x3f, 0xfb, 0xbc, 0xb1, - 0xc6, 0xd0, 0x25, 0xdf, 0x67, 0x9d, 0x33, 0xd6, 0x9c, 0xe2, 0x6b, 0x5c, 0x5f, 0x7a, 0x8c, 0x57, - 0x6b, 0x38, 0x03, 0x9e, 0x2f, 0x3e, 0x21, 0xba, 0x31, 0xb2, 0x14, 0xcb, 0xb7, 0x70, 0xf0, 0x56, - 0x8b, 0x4c, 0x6f, 0x2f, 0x2c, 0xb2, 0xe4, 0xf9, 0x56, 0xd9, 0x5d, 0x40, 0x96, 0xdc, 0xee, 0xb7, - 0xc7, 0xe8, 0x12, 0x66, 0xc0, 0xe7, 0x7e, 0x9b, 0x2c, 0x2e, 0xe0, 0x4a, 0x0e, 0xa7, 0xed, 0x31, - 0xb7, 0xa4, 0xec, 0x3a, 0x6f, 0x77, 0xc4, 0xd6, 0x71, 0x6c, 0x21, 0x57, 0x77, 0x20, 0xc3, 0x05, - 0x96, 0x14, 0x3b, 0xcf, 0x36, 0x42, 0x76, 0xc7, 0x52, 0xb5, 0x3e, 0x9a, 0x77, 0xa1, 0xc9, 0x37, - 0xce, 0xce, 0x43, 0x6c, 0x8c, 0x47, 0x84, 0x86, 0xe3, 0x24, 0x8e, 0xb5, 0x14, 0xc5, 0x26, 0x48, - 0xbc, 0x1b, 0x4c, 0x3f, 0x87, 0x01, 0x4a, 0x71, 0x2c, 0x79, 0xa9, 0x8b, 0x4d, 0x70, 0x2d, 0xc4, - 0xb6, 0xff, 0xe7, 0x58, 0x34, 0x54, 0x02, 0x63, 0x71, 0x72, 0x63, 0x5b, 0x78, 0x3f, 0xb8, 0x56, - 0x2e, 0xd6, 0x74, 0xf2, 0x63, 0x13, 0x9c, 0x89, 0x3d, 0xba, 0x25, 0xc6, 0xfc, 0xb3, 0xa9, 0x9e, - 0x57, 0x72, 0xe3, 0x89, 0x58, 0x84, 0xff, 0x4b, 0x25, 0x4b, 0x51, 0x1c, 0xbf, 0xa3, 0xe0, 0x0d, - 0x6f, 0xe6, 0x34, 0x54, 0x3e, 0x31, 0xa9, 0xb8, 0xe3, 0x79, 0x07, 0x74, 0x35, 0xba, 0xed, 0x4f, - 0xdc, 0xde, 0x76, 0x34, 0x9b, 0xeb, 0xcb, 0xfe, 0x54, 0x9d, 0x8c, 0xfa, 0xb2, 0xbf, 0x16, 0xc0, - 0xe8, 0xcb, 0x00, 0xf5, 0x65, 0x80, 0xfa, 0x32, 0xc0, 0x34, 0xc1, 0xf4, 0x65, 0x80, 0xcd, 0x2f, - 0x03, 0xd4, 0x97, 0xf2, 0x29, 0x8f, 0x41, 0xb5, 0x6b, 0x13, 0x1f, 0xf1, 0xb2, 0x3f, 0x15, 0x4c, - 0x89, 0xb5, 0x96, 0xbe, 0x1e, 0x50, 0x0d, 0x8a, 0xbe, 0x1e, 0x50, 0x5f, 0x0f, 0xa8, 0xaf, 0x07, - 0x6c, 0xce, 0xc9, 0xfa, 0x7a, 0x40, 0x7d, 0x3d, 0xa0, 0xbe, 0x1e, 0xb0, 0x84, 0x60, 0x9b, 0x7c, - 0x3d, 0xa0, 0xbe, 0x1b, 0x50, 0xdf, 0x0d, 0xb8, 0x71, 0x77, 0x03, 0xe6, 0xf8, 0x56, 0x3a, 0xbe, - 0xff, 0xaf, 0xb6, 0x70, 0xd1, 0x77, 0x03, 0xea, 0xbb, 0x01, 0xf5, 0xdd, 0x80, 0x19, 0x88, 0xf4, - 0xdd, 0x80, 0x1d, 0x99, 0x31, 0xfa, 0x6e, 0x40, 0x7d, 0x37, 0x60, 0x93, 0xa9, 0xad, 0xef, 0x06, - 0x6c, 0xf3, 0x6e, 0x40, 0x7d, 0xef, 0x1f, 0xd2, 0xf7, 0xfe, 0xe9, 0x7b, 0xff, 0xda, 0x9c, 0x97, - 0x45, 0x53, 0x52, 0xdf, 0xd7, 0x57, 0x97, 0xb5, 0x36, 0xe7, 0xbe, 0x3e, 0x7d, 0x25, 0x9f, 0xbe, - 0x92, 0xaf, 0x69, 0xb4, 0x4f, 0xf9, 0x9b, 0x65, 0x5e, 0x5e, 0x90, 0xc6, 0x95, 0xa3, 0x5f, 0x84, - 0xc7, 0x21, 0x91, 0xee, 0xa5, 0x7e, 0x8f, 0x5d, 0x66, 0xef, 0xaf, 0xbd, 0xdb, 0xf7, 0x1e, 0x7f, - 0xe7, 0x5a, 0xf0, 0x37, 0xfc, 0x57, 0xb0, 0xdc, 0x5e, 0xc6, 0x0a, 0xe5, 0x87, 0x14, 0x25, 0x5d, - 0x14, 0xd9, 0x4b, 0x5e, 0x4f, 0x24, 0x20, 0x06, 0x57, 0x9c, 0x15, 0xaf, 0xd8, 0xd7, 0x13, 0x55, - 0xa4, 0x44, 0xb2, 0xf1, 0xaf, 0x30, 0xe2, 0xcf, 0xf4, 0xd2, 0xc3, 0xe3, 0xdb, 0x4f, 0x92, 0xb5, - 0x4b, 0x2e, 0x3c, 0x2c, 0x1c, 0xb6, 0x74, 0x9f, 0x92, 0x3f, 0x85, 0x48, 0x2f, 0x40, 0x3d, 0xc5, - 0x59, 0x88, 0x88, 0xec, 0x71, 0x50, 0x09, 0x63, 0xb4, 0x1f, 0xf3, 0xdb, 0xd0, 0x85, 0xeb, 0xca, - 0xc0, 0xae, 0xef, 0x40, 0xa1, 0xba, 0xc9, 0x98, 0xa0, 0x55, 0x21, 0xec, 0x63, 0x93, 0xa7, 0xaf, - 0xeb, 0x5a, 0x06, 0x26, 0x02, 0x64, 0x64, 0x79, 0x3c, 0x91, 0x55, 0xed, 0xb9, 0x17, 0x94, 0xcc, - 0xe7, 0x98, 0xae, 0x8f, 0xb0, 0x0c, 0x62, 0x08, 0xc6, 0xb2, 0x37, 0x49, 0x3a, 0xbc, 0x44, 0x14, - 0x4f, 0x5f, 0xfa, 0x54, 0xe0, 0xe3, 0xe8, 0x3f, 0xe1, 0x9f, 0xff, 0x92, 0x90, 0xe1, 0xa7, 0x57, - 0xaf, 0xb2, 0xec, 0xad, 0x08, 0xce, 0x0f, 0x3d, 0xf4, 0x2a, 0xf8, 0xe5, 0x95, 0xf8, 0xa5, 0x68, - 0xcc, 0x05, 0xbc, 0x57, 0xaf, 0xb6, 0xd2, 0xfb, 0x19, 0xe2, 0x35, 0xfa, 0x1b, 0xda, 0xcb, 0xc2, - 0x22, 0xbf, 0xbd, 0x4d, 0xe5, 0x8c, 0xa7, 0xc0, 0xc6, 0xc8, 0x17, 0x36, 0x2a, 0x91, 0x58, 0xa5, - 0x38, 0x34, 0x3b, 0x59, 0x43, 0x93, 0x98, 0x8f, 0xd9, 0x63, 0x51, 0x40, 0x6e, 0xb0, 0x1a, 0x5c, - 0xe0, 0xe1, 0xb5, 0x70, 0xaf, 0x3e, 0xfc, 0x2b, 0xc2, 0x2d, 0x99, 0x41, 0xbd, 0xdb, 0x23, 0x60, - 0x76, 0xde, 0x1f, 0x00, 0x01, 0x72, 0xec, 0x84, 0xef, 0xbf, 0x47, 0xdf, 0x85, 0x6e, 0x32, 0xc2, - 0xce, 0x3c, 0xca, 0x8f, 0x02, 0xb0, 0xd8, 0xea, 0xcb, 0xed, 0x9e, 0xef, 0x9c, 0x43, 0x1b, 0xc3, - 0xa7, 0xf0, 0x35, 0xb4, 0x3b, 0xe5, 0x3d, 0xb3, 0x08, 0xcb, 0x6b, 0x49, 0x1e, 0xdc, 0x6c, 0xe2, - 0x45, 0x18, 0xc0, 0xce, 0x8a, 0xf5, 0x14, 0x54, 0xdb, 0x1c, 0x03, 0x59, 0x44, 0x33, 0x62, 0x54, - 0x99, 0xc0, 0xa8, 0xbc, 0xf7, 0x5c, 0x9c, 0x26, 0x4a, 0x30, 0xe2, 0x2e, 0xce, 0x1a, 0xed, 0xf5, - 0x89, 0x90, 0xa7, 0x0f, 0xd6, 0xc7, 0x3c, 0x3c, 0x0a, 0x0a, 0xde, 0xa7, 0x5c, 0xe0, 0x29, 0x6e, - 0x59, 0xd2, 0x7e, 0x6a, 0x63, 0x93, 0xa6, 0x23, 0xdd, 0x96, 0xd3, 0xc0, 0xb4, 0x2c, 0x2a, 0xc2, - 0xd9, 0x2c, 0x7c, 0xc3, 0xb2, 0x9a, 0x2a, 0xca, 0xb8, 0x20, 0x0b, 0x01, 0xb3, 0x28, 0xf2, 0x77, - 0x51, 0xfe, 0x1f, 0xb9, 0xa5, 0x76, 0xa1, 0x98, 0x2c, 0x0d, 0x73, 0x04, 0xfd, 0x5d, 0xcc, 0x18, - 0x09, 0x1f, 0x7e, 0xfb, 0x47, 0x2f, 0xb3, 0x12, 0xc3, 0xfc, 0xd7, 0x00, 0x7a, 0x38, 0x44, 0x40, - 0xe2, 0xc3, 0x40, 0xfa, 0xf6, 0x45, 0xd5, 0x75, 0x56, 0x11, 0x74, 0x0d, 0x6b, 0x19, 0x36, 0x76, - 0xe7, 0xfc, 0x5a, 0xb2, 0x54, 0x8e, 0xb0, 0x8b, 0xe0, 0xbf, 0x7a, 0xab, 0xd0, 0xa0, 0x04, 0xd9, - 0x08, 0x18, 0xd9, 0x94, 0xf7, 0x47, 0xdb, 0x15, 0x12, 0x22, 0x7b, 0x5f, 0xf1, 0x7d, 0x6f, 0x1c, - 0x21, 0x55, 0xcf, 0xee, 0xed, 0x49, 0x3b, 0x1a, 0x6a, 0x8a, 0xc6, 0xa9, 0x05, 0x49, 0xaf, 0x13, - 0x26, 0x4c, 0xab, 0x16, 0xf4, 0x11, 0x43, 0x00, 0x1d, 0x80, 0x65, 0xe4, 0x6f, 0xb3, 0x7e, 0xef, - 0xf3, 0x87, 0xc9, 0x51, 0x6f, 0x80, 0xbe, 0x83, 0x15, 0xe5, 0x0f, 0xb9, 0x3e, 0xa0, 0x36, 0xfa, - 0x2d, 0x39, 0xe0, 0x69, 0x7a, 0x5d, 0xd2, 0x29, 0x58, 0xdf, 0x80, 0xf5, 0xd8, 0x7f, 0x1e, 0x3d, - 0x2a, 0x9a, 0xd5, 0xdd, 0x8b, 0xda, 0x35, 0x29, 0x22, 0x8c, 0xde, 0xa4, 0x67, 0x22, 0xa6, 0xa6, - 0x1e, 0xe2, 0x0a, 0x02, 0x26, 0xee, 0x07, 0x4a, 0x45, 0xba, 0x76, 0x92, 0xd0, 0xb9, 0x79, 0xfb, - 0xbd, 0xc3, 0xd3, 0x0f, 0x48, 0x56, 0x81, 0x75, 0x11, 0x71, 0x67, 0xde, 0x76, 0x4e, 0x52, 0x7b, - 0x15, 0xf1, 0x1c, 0x98, 0xf7, 0xf1, 0x76, 0x05, 0xe6, 0x50, 0x96, 0xda, 0x9a, 0x49, 0x3d, 0x69, - 0x38, 0xb2, 0xca, 0xf9, 0x5d, 0x5a, 0x0a, 0x57, 0x41, 0x1b, 0xae, 0xae, 0x2b, 0xe1, 0x35, 0x83, - 0x3a, 0xf9, 0x88, 0x97, 0xbe, 0xb4, 0x35, 0x7d, 0x6e, 0x8d, 0xc3, 0x6b, 0xa6, 0xe5, 0x97, 0x2c, - 0x3d, 0x7f, 0x90, 0xa5, 0xe8, 0x93, 0x66, 0x75, 0xa4, 0xe9, 0x93, 0x6f, 0xcb, 0x35, 0x3d, 0xac, - 0xd7, 0x63, 0xe6, 0xf2, 0x4a, 0x72, 0x2f, 0xd9, 0x48, 0xf0, 0x94, 0x94, 0xe1, 0x83, 0xec, 0xea, - 0xc2, 0xe4, 0x35, 0x64, 0x6a, 0xbf, 0x30, 0xad, 0xfe, 0xed, 0xf5, 0x4c, 0xfc, 0xe9, 0x29, 0x9a, - 0x32, 0xd0, 0xaa, 0x05, 0xc9, 0xed, 0xf6, 0xa8, 0x9a, 0x7d, 0x53, 0xde, 0xe9, 0xe1, 0x50, 0xca, - 0xd4, 0xef, 0x62, 0xe4, 0x36, 0x42, 0xc0, 0x62, 0x22, 0x65, 0x90, 0x44, 0x48, 0xda, 0x42, 0xa2, - 0xac, 0x09, 0x61, 0xc0, 0xd1, 0x98, 0xb8, 0xc3, 0xe1, 0x83, 0x3a, 0x01, 0x97, 0x3c, 0xd8, 0x02, - 0x09, 0xd7, 0xcd, 0xf5, 0x2b, 0xcf, 0xb3, 0x51, 0x34, 0xa9, 0xd2, 0xec, 0x95, 0x2c, 0xb5, 0x9c, - 0x02, 0xb9, 0xc5, 0x84, 0xed, 0x7f, 0x0b, 0x6b, 0x66, 0x68, 0xc5, 0x44, 0xac, 0xf8, 0x13, 0x07, - 0x73, 0x15, 0xf0, 0x2a, 0x99, 0xf5, 0xb9, 0x79, 0xb5, 0xe6, 0x57, 0x15, 0x83, 0xf3, 0x1a, 0x06, - 0x00, 0x48, 0x0e, 0xe6, 0xd9, 0x7f, 0x70, 0x11, 0xf5, 0x6d, 0x0b, 0x0b, 0x48, 0x84, 0xeb, 0xcf, - 0x08, 0x75, 0x6e, 0x61, 0x45, 0x84, 0x02, 0xe7, 0x00, 0xac, 0x8e, 0xe6, 0x38, 0xd3, 0x02, 0x29, - 0x32, 0x54, 0x57, 0x43, 0x76, 0x6a, 0x32, 0x7e, 0x7c, 0x7b, 0x7e, 0x27, 0x9d, 0x0c, 0xac, 0x3f, - 0x30, 0xae, 0x6f, 0x2f, 0xee, 0x7d, 0x3c, 0xe1, 0x60, 0x8f, 0xa1, 0xb7, 0xd0, 0x90, 0x48, 0x37, - 0xe7, 0x2c, 0xc3, 0x67, 0xfd, 0x35, 0xc7, 0x41, 0x91, 0x4b, 0x18, 0xca, 0xc7, 0x09, 0x25, 0x31, - 0x94, 0xee, 0xe8, 0xae, 0xf2, 0x22, 0xd8, 0x32, 0x9b, 0x42, 0x0c, 0x6b, 0xb1, 0x53, 0x23, 0x89, - 0xa7, 0xe0, 0xf8, 0x36, 0xa5, 0xc3, 0x5e, 0xb2, 0x1a, 0xae, 0xb4, 0x5b, 0x95, 0x99, 0x0a, 0x32, - 0x1c, 0x86, 0xa3, 0x17, 0x77, 0xe4, 0x62, 0xe4, 0x16, 0xa4, 0x31, 0xe5, 0x74, 0xab, 0x38, 0x66, - 0x41, 0xf9, 0x1c, 0x9b, 0xac, 0xee, 0xa9, 0xfb, 0xf6, 0xe3, 0xe3, 0x13, 0xe5, 0xad, 0xc8, 0x01, - 0x6a, 0x6d, 0x23, 0x26, 0xd5, 0xeb, 0xf2, 0x63, 0x82, 0x2b, 0x9d, 0xe0, 0x03, 0xbd, 0x4f, 0xb8, - 0x78, 0xab, 0x1c, 0x64, 0x14, 0xef, 0xbc, 0x0b, 0x72, 0x91, 0x3a, 0xc4, 0x35, 0xed, 0x23, 0xc7, - 0xea, 0xf7, 0x00, 0xe6, 0x65, 0xe4, 0x91, 0x46, 0x3b, 0x3d, 0x35, 0xdf, 0x73, 0xe5, 0xa3, 0x87, - 0x54, 0x1b, 0x30, 0x52, 0x6d, 0x40, 0x9d, 0x01, 0x51, 0x3b, 0xb9, 0x2a, 0xcb, 0xc7, 0x58, 0x9c, - 0x98, 0xa7, 0xd6, 0xa8, 0x02, 0x37, 0x64, 0x25, 0xae, 0x7b, 0xc8, 0x91, 0x71, 0xa0, 0x5a, 0x23, - 0x55, 0x51, 0xc4, 0x1a, 0xea, 0x59, 0x5f, 0x05, 0x88, 0x96, 0xda, 0x46, 0x19, 0x53, 0xf1, 0x15, - 0x9e, 0x0f, 0x95, 0x1d, 0x67, 0x79, 0x0a, 0x99, 0xf2, 0x3c, 0x75, 0xbc, 0xdf, 0xb2, 0x3d, 0x53, - 0xa8, 0xbf, 0xb2, 0xe8, 0x22, 0x52, 0x61, 0x4d, 0xc7, 0x07, 0x2e, 0x3f, 0xbf, 0x40, 0x96, 0x38, - 0x50, 0xef, 0xf6, 0x1a, 0x07, 0xfa, 0x72, 0xea, 0x81, 0x84, 0x15, 0x1b, 0x52, 0x96, 0xb0, 0x86, - 0x84, 0xb6, 0x44, 0x84, 0x85, 0xf9, 0x6f, 0xd8, 0xda, 0x46, 0x9e, 0x4c, 0xfb, 0x70, 0xb3, 0x40, - 0x02, 0x2c, 0x3b, 0x38, 0x97, 0x4f, 0x54, 0x31, 0xc1, 0xb0, 0xbe, 0xc1, 0x46, 0xb1, 0xae, 0x3d, - 0x17, 0xce, 0xda, 0xdf, 0x60, 0x25, 0xd7, 0xcf, 0x8d, 0xee, 0x8d, 0xc8, 0x26, 0x2e, 0x7f, 0xcd, - 0x9e, 0x36, 0x89, 0xd1, 0x95, 0x8e, 0xfc, 0xbc, 0x28, 0xac, 0x8c, 0x92, 0x13, 0xcc, 0x17, 0x7e, - 0x4e, 0xf1, 0xe1, 0x30, 0x51, 0xe1, 0xc4, 0x59, 0x88, 0xc3, 0x07, 0xfb, 0xa3, 0xbb, 0x63, 0x78, - 0xca, 0xab, 0x5c, 0x39, 0xec, 0xe7, 0x82, 0x06, 0x15, 0x4a, 0x2e, 0x41, 0xa5, 0x2c, 0x5b, 0xa7, - 0x4c, 0x8d, 0x96, 0x53, 0xab, 0x06, 0x1d, 0xaa, 0xcf, 0x89, 0x87, 0xad, 0xff, 0x07, 0x68, 0x71, - 0x59, 0x64, +uint8_t data_qml_app[7270] = { + 0x00, 0x01, 0x92, 0x40, 0x78, 0xda, 0xed, 0x3d, 0xdb, 0x72, 0xdb, 0xb8, 0x92, 0xef, 0xfe, 0x0a, + 0x44, 0x5b, 0x9b, 0x23, 0x4d, 0x1c, 0x4a, 0xb6, 0x63, 0x67, 0x46, 0x67, 0x73, 0x52, 0xb1, 0x13, + 0x67, 0x5c, 0xe5, 0xcc, 0x78, 0x2c, 0x27, 0x79, 0x38, 0x39, 0xe5, 0xa2, 0x45, 0x48, 0x42, 0x85, + 0xb7, 0x01, 0x21, 0x5f, 0xce, 0xac, 0xab, 0xf6, 0x03, 0xf6, 0x2b, 0xf7, 0x4b, 0xb6, 0x01, 0x92, + 0x12, 0x49, 0xf1, 0x02, 0xde, 0x6c, 0xc9, 0x01, 0x33, 0x93, 0xd8, 0x24, 0xd0, 0x0d, 0x34, 0x1a, + 0xdd, 0x8d, 0x46, 0x37, 0x40, 0x2c, 0xd7, 0xa1, 0x0c, 0x7d, 0xc1, 0x86, 0x81, 0xa9, 0x76, 0x8d, + 0xbd, 0xb1, 0xf8, 0x8b, 0xd8, 0x0c, 0xd3, 0x89, 0x3e, 0xc6, 0x68, 0x47, 0x1b, 0xfc, 0x9d, 0xf8, + 0x85, 0x3a, 0x7f, 0xd2, 0xf1, 0xb0, 0x6f, 0x39, 0x57, 0xc4, 0xc4, 0x9d, 0xf0, 0xe5, 0x1f, 0xec, + 0x8f, 0x39, 0x19, 0x7f, 0x47, 0xbb, 0xda, 0xeb, 0xad, 0xf8, 0x2b, 0xed, 0xc8, 0xb1, 0x19, 0x75, + 0x4c, 0x0f, 0xbe, 0xed, 0x26, 0xbf, 0x9d, 0xea, 0x77, 0xce, 0x9c, 0x79, 0x00, 0x7e, 0x6f, 0xf9, + 0x49, 0x33, 0xf5, 0x2b, 0x4f, 0xf3, 0x30, 0x63, 0xc4, 0x9e, 0xf2, 0x6f, 0x03, 0xa4, 0x7b, 0xe8, + 0x8f, 0x51, 0xf0, 0x22, 0x2c, 0x98, 0xdb, 0xd8, 0xb4, 0x42, 0x57, 0x26, 0x9e, 0xeb, 0xf0, 0x2e, + 0xe3, 0xf3, 0xd8, 0xb1, 0x2c, 0xdd, 0x36, 0xbc, 0xec, 0xef, 0xf6, 0x84, 0x4c, 0x5d, 0x9d, 0xea, + 0x56, 0x66, 0x99, 0x39, 0x23, 0x26, 0x61, 0x77, 0xe2, 0xf3, 0xd6, 0x09, 0xc3, 0x16, 0xfa, 0x6b, + 0x0b, 0xc1, 0x43, 0x8c, 0x21, 0xb2, 0x74, 0x62, 0xf3, 0x57, 0xe2, 0x85, 0x6e, 0x8f, 0x67, 0x0e, + 0xf5, 0xb4, 0x09, 0x31, 0xcd, 0x21, 0x02, 0xa0, 0xd8, 0x66, 0xe2, 0x43, 0xbf, 0x1f, 0x7e, 0xb2, + 0x74, 0x3a, 0x25, 0xb6, 0x37, 0x44, 0x3b, 0x03, 0xff, 0xc3, 0x84, 0xdc, 0x22, 0x36, 0x23, 0xde, + 0x96, 0x28, 0xe8, 0x52, 0xc7, 0xc5, 0x14, 0x70, 0x1d, 0x9a, 0xf8, 0x33, 0xef, 0x96, 0x05, 0x3f, + 0x0c, 0xa1, 0x35, 0xde, 0xf8, 0x64, 0xc2, 0xfb, 0xfa, 0x1e, 0x5f, 0x93, 0x31, 0xee, 0xf6, 0xe2, + 0xa5, 0x8f, 0xc2, 0x5e, 0x5a, 0xe1, 0x4f, 0x8b, 0x3a, 0x21, 0x01, 0x92, 0x55, 0xae, 0x75, 0x8a, + 0x26, 0x37, 0x5f, 0x30, 0xf5, 0x88, 0x63, 0x0f, 0x97, 0x15, 0xb5, 0x29, 0x66, 0xc7, 0xe1, 0xfb, + 0x55, 0x3c, 0x9c, 0x5a, 0x67, 0x3e, 0xb5, 0xac, 0x4f, 0x63, 0xfe, 0xfb, 0x02, 0x93, 0x35, 0xf6, + 0x3f, 0xe7, 0x57, 0x7a, 0xe7, 0xba, 0xb1, 0x5a, 0xba, 0xff, 0x7b, 0x51, 0xb5, 0x13, 0x7b, 0xe2, + 0xc4, 0xea, 0x91, 0xe0, 0xc5, 0x6a, 0xc5, 0x2b, 0xc7, 0x31, 0x11, 0xf1, 0x7e, 0x75, 0x28, 0xf9, + 0x37, 0x70, 0xa9, 0x0e, 0x43, 0x71, 0x43, 0x0c, 0x36, 0x43, 0xff, 0x40, 0x33, 0x4c, 0xa6, 0x33, + 0xb6, 0x95, 0x52, 0xde, 0x1b, 0xcf, 0xb0, 0x31, 0x37, 0x31, 0x07, 0xf9, 0x95, 0x12, 0x06, 0x44, + 0x9f, 0xe8, 0xa6, 0x87, 0x53, 0x8a, 0xc2, 0x88, 0x61, 0xe3, 0x62, 0x46, 0x1d, 0xc6, 0xcc, 0x45, + 0xb1, 0x55, 0xe2, 0xfa, 0xc3, 0x7f, 0xa1, 0x5f, 0x1d, 0xea, 0x34, 0x64, 0x06, 0x8d, 0x89, 0x5f, + 0x17, 0x0c, 0x23, 0xfe, 0x02, 0xca, 0xbb, 0x8e, 0xcd, 0xbf, 0x3a, 0x36, 0xff, 0xd9, 0xc4, 0x0c, + 0x03, 0x67, 0xf9, 0x3c, 0x26, 0xc0, 0x46, 0x20, 0x69, 0xd7, 0xc4, 0x23, 0xc0, 0x07, 0xe8, 0x0d, + 0x62, 0x74, 0x8e, 0xd3, 0xcb, 0x60, 0x5b, 0x87, 0x22, 0x46, 0xb4, 0xcc, 0xfd, 0x56, 0x80, 0xcb, + 0x9c, 0x5b, 0xb6, 0x3f, 0x41, 0x23, 0x18, 0x52, 0x19, 0x77, 0xf1, 0xd5, 0x87, 0x1a, 0x29, 0x1e, + 0x32, 0xbf, 0xdf, 0x9b, 0xd8, 0x6b, 0xbf, 0xee, 0x30, 0xd6, 0x9e, 0x58, 0x81, 0x34, 0x54, 0x9c, + 0x12, 0xb1, 0x42, 0xe3, 0x39, 0xe5, 0xef, 0x4f, 0x6c, 0x03, 0xdf, 0x0e, 0x91, 0x77, 0x43, 0x5c, + 0xfc, 0x85, 0xe0, 0x1b, 0x2d, 0xfa, 0x3e, 0x56, 0xc1, 0xef, 0x91, 0x00, 0xfa, 0x95, 0x8f, 0xf5, + 0x30, 0x4e, 0x1d, 0xd1, 0x60, 0xa0, 0x2c, 0x19, 0x13, 0x16, 0x7c, 0x1f, 0xc4, 0x11, 0x9a, 0xc4, + 0x0d, 0xea, 0xc4, 0xbb, 0x13, 0x8e, 0x28, 0xc8, 0x21, 0x74, 0x35, 0x67, 0xcc, 0xe1, 0x73, 0x77, + 0xbf, 0xa8, 0x4c, 0x80, 0x63, 0x67, 0x30, 0x88, 0x83, 0xe3, 0xf4, 0x10, 0x05, 0x12, 0xc4, 0xe4, + 0x0f, 0xc3, 0xb7, 0x40, 0xb7, 0x3f, 0xbd, 0x0b, 0xda, 0xed, 0x00, 0x17, 0xda, 0x78, 0xcc, 0x3a, + 0xbd, 0x95, 0x52, 0x37, 0x3e, 0xe4, 0x4f, 0x3a, 0x9b, 0x81, 0x2c, 0xb9, 0xed, 0xfa, 0x43, 0xa0, + 0x45, 0xd0, 0x6e, 0xaf, 0xd4, 0x59, 0xc1, 0xe4, 0xd7, 0xf1, 0x27, 0x45, 0x1f, 0xc5, 0x40, 0x78, + 0x71, 0x94, 0xf7, 0x95, 0x9a, 0x7f, 0x4e, 0x0c, 0xbc, 0xa9, 0x6d, 0xbf, 0x98, 0xdb, 0x1b, 0xdb, + 0xf6, 0x43, 0xf2, 0x1d, 0xa3, 0xa3, 0xe3, 0x8f, 0x9b, 0xda, 0xfe, 0x63, 0x42, 0xad, 0x1b, 0x90, + 0x08, 0xeb, 0xd4, 0xfe, 0xfb, 0xe5, 0x0c, 0x1e, 0x85, 0x72, 0x28, 0x45, 0x14, 0x2e, 0x64, 0x54, + 0x8e, 0x1c, 0x0b, 0x10, 0xca, 0x08, 0xb1, 0x5f, 0x85, 0xa2, 0x4a, 0x91, 0x62, 0x19, 0x82, 0x4e, + 0x4a, 0x98, 0x9d, 0xe9, 0x53, 0x0c, 0x4d, 0x5f, 0xa1, 0xd3, 0x47, 0x4a, 0x8c, 0x15, 0x95, 0x90, + 0xec, 0xe0, 0x14, 0x0a, 0xa5, 0x7e, 0xcc, 0x34, 0x7a, 0x92, 0x4f, 0xea, 0xcb, 0xb1, 0x50, 0x48, + 0x20, 0x53, 0xa3, 0x0a, 0x1b, 0xbd, 0x45, 0xbb, 0x08, 0xc4, 0x67, 0x4e, 0x8d, 0x91, 0xab, 0x83, + 0x6d, 0x38, 0x4d, 0xca, 0xe2, 0xf0, 0xa1, 0xce, 0xcd, 0xa2, 0xc4, 0xce, 0x60, 0x2b, 0xb5, 0xcc, + 0x89, 0xe5, 0xd3, 0x23, 0x8b, 0x5d, 0x78, 0xaf, 0x09, 0x2f, 0x93, 0x59, 0x22, 0x18, 0x8c, 0x45, + 0x8b, 0xec, 0x12, 0xdd, 0x88, 0xd4, 0x77, 0x29, 0x9e, 0x60, 0xe0, 0x09, 0x23, 0x1c, 0xd1, 0x08, + 0x9f, 0x4a, 0xd7, 0x0d, 0x39, 0xa6, 0xeb, 0x39, 0x73, 0x3a, 0xc6, 0x23, 0xf2, 0x6f, 0xac, 0xf9, + 0xe6, 0x0e, 0xfa, 0x29, 0x1d, 0x51, 0xaf, 0x70, 0xc2, 0x24, 0x9f, 0x3e, 0x8a, 0x00, 0x97, 0x6a, + 0x9e, 0x6e, 0x92, 0xa9, 0x6d, 0x09, 0x8b, 0x00, 0x96, 0x00, 0xef, 0xf8, 0x6f, 0xbf, 0x1e, 0x61, + 0x6e, 0xd3, 0xa3, 0xff, 0x5e, 0xbc, 0x39, 0x04, 0x4b, 0xca, 0xb1, 0x32, 0x41, 0x35, 0x31, 0xf5, + 0x2b, 0x88, 0x80, 0xe8, 0xe3, 0x77, 0x7b, 0x28, 0x56, 0x49, 0x1d, 0xf4, 0x02, 0x7d, 0xf6, 0x57, + 0x04, 0xdc, 0x56, 0xbe, 0x98, 0x61, 0x0b, 0x9f, 0x41, 0xdb, 0xba, 0x3d, 0xf8, 0xd0, 0xe9, 0x9b, + 0xce, 0xd4, 0xd1, 0x5c, 0x7b, 0xda, 0x49, 0x05, 0x76, 0x9f, 0xce, 0x8a, 0x1f, 0xa9, 0x33, 0x77, + 0x0f, 0x9d, 0xdb, 0x02, 0x6e, 0xbc, 0x12, 0xf6, 0x29, 0xd0, 0xeb, 0x36, 0xb3, 0x18, 0x23, 0xc2, + 0x28, 0x0d, 0xf4, 0xc1, 0xe9, 0x07, 0x14, 0x98, 0x12, 0x60, 0xcc, 0x77, 0x7a, 0x45, 0xa3, 0x95, + 0x67, 0x3e, 0x15, 0xf0, 0xfd, 0xce, 0x56, 0x66, 0xe9, 0x42, 0xf1, 0x92, 0x94, 0x24, 0xcc, 0x71, + 0x3f, 0x89, 0x65, 0xd2, 0x10, 0xbd, 0xdc, 0x97, 0xaa, 0x71, 0x25, 0x38, 0xa8, 0x64, 0xa5, 0x74, + 0x63, 0x37, 0x55, 0xe4, 0x08, 0x81, 0xba, 0x5c, 0x0f, 0x64, 0x3d, 0x81, 0x6d, 0x5e, 0x40, 0xbd, + 0xa4, 0x7c, 0x7a, 0xb9, 0x33, 0xc8, 0xc7, 0x2e, 0x23, 0xf0, 0x22, 0x80, 0xbd, 0xa2, 0x32, 0x0b, + 0x99, 0x7b, 0x90, 0xdf, 0xed, 0x4c, 0x9d, 0x9d, 0xc6, 0x9b, 0xb0, 0xb2, 0xff, 0x4d, 0xb7, 0xb0, + 0x5f, 0xa7, 0x58, 0x15, 0x47, 0xb4, 0x3e, 0xaf, 0xd6, 0x29, 0x16, 0x46, 0x29, 0x4c, 0xb7, 0x2b, + 0x5b, 0x29, 0x29, 0x61, 0x77, 0x07, 0x03, 0xd9, 0xaa, 0xb2, 0x73, 0x22, 0x7c, 0x82, 0xb5, 0x97, + 0x98, 0xac, 0x30, 0x51, 0xa1, 0xbd, 0x73, 0x58, 0x16, 0xfc, 0x03, 0x0d, 0xb6, 0x0a, 0xab, 0xc2, + 0xf2, 0x0f, 0x56, 0x28, 0xdf, 0xe3, 0x8b, 0xbf, 0x5c, 0xba, 0x4f, 0x50, 0x17, 0xd0, 0xf0, 0xe5, + 0xa4, 0xa7, 0xc1, 0xc8, 0x1f, 0x71, 0x5c, 0x20, 0x87, 0x00, 0x5b, 0x4f, 0x12, 0x04, 0x7f, 0x00, + 0x04, 0x1f, 0x83, 0xf7, 0x44, 0x07, 0xe1, 0xa5, 0xc1, 0x62, 0x26, 0x5c, 0xf7, 0x17, 0x3d, 0xf7, + 0x08, 0xc3, 0x94, 0x28, 0x81, 0x29, 0x58, 0xbb, 0x63, 0x8b, 0xb0, 0x4f, 0xd8, 0xf3, 0x40, 0xb7, + 0xfa, 0x48, 0xbb, 0xa5, 0x55, 0x11, 0x7f, 0x3a, 0x23, 0xcc, 0x10, 0x97, 0x71, 0xbe, 0x53, 0x04, + 0x09, 0x46, 0xda, 0xae, 0x06, 0xea, 0x37, 0x07, 0x19, 0x3e, 0x14, 0x0f, 0x9b, 0x20, 0x2f, 0xb1, + 0xa1, 0x55, 0x04, 0x25, 0xc4, 0xc4, 0xb6, 0xff, 0x8f, 0x24, 0x19, 0xb7, 0xea, 0x95, 0xb8, 0x6f, + 0x68, 0x1a, 0xfb, 0x93, 0xb2, 0x73, 0xa6, 0x13, 0xda, 0x69, 0x6b, 0x7a, 0xd4, 0x9f, 0x90, 0x71, + 0x01, 0xd0, 0xfc, 0xa4, 0x72, 0xa1, 0xfb, 0x91, 0xa9, 0x10, 0x30, 0x68, 0x6f, 0x4d, 0xc6, 0x48, + 0x88, 0xda, 0xb1, 0x6e, 0x57, 0x90, 0xb3, 0x23, 0xa8, 0xb6, 0x39, 0x72, 0xb6, 0xf9, 0x81, 0x5d, + 0x92, 0x2d, 0xe2, 0x20, 0x2b, 0x56, 0xea, 0xe1, 0xc3, 0x3d, 0xb1, 0x9a, 0xc7, 0x74, 0xca, 0x38, + 0x21, 0xdb, 0x66, 0x88, 0x23, 0xc7, 0xba, 0x72, 0xf2, 0x2d, 0xc2, 0x84, 0x65, 0x98, 0x67, 0x15, + 0xe6, 0x8c, 0xed, 0x41, 0xcb, 0x33, 0x5d, 0x6a, 0x05, 0xf0, 0xc5, 0x7f, 0x53, 0xcc, 0xce, 0x54, + 0xb7, 0xbd, 0x89, 0x43, 0xad, 0xdf, 0x29, 0x11, 0xa6, 0x1e, 0x57, 0x7d, 0x5a, 0x50, 0x59, 0x6a, + 0x32, 0x9c, 0x3b, 0xdc, 0x3e, 0xeb, 0x7c, 0xc7, 0x77, 0xc5, 0x22, 0xce, 0x72, 0x0c, 0x0c, 0x16, + 0xe2, 0x29, 0xf1, 0xd8, 0x27, 0xfe, 0xa3, 0xac, 0x56, 0xf6, 0xc7, 0x43, 0x68, 0xe5, 0x35, 0x92, + 0x1a, 0x06, 0xf1, 0xc6, 0xfe, 0x5a, 0xa0, 0x82, 0xec, 0x78, 0xbf, 0xa8, 0x2c, 0x21, 0x41, 0x16, + 0x26, 0x90, 0xdc, 0xe4, 0x7a, 0x78, 0x1b, 0x2d, 0x65, 0x1a, 0xec, 0xb5, 0x20, 0x70, 0x02, 0x6b, + 0x67, 0x49, 0xf8, 0x33, 0x87, 0xb2, 0xb5, 0xd2, 0x24, 0xd5, 0x19, 0xe2, 0x48, 0x71, 0xc3, 0xe3, + 0x18, 0xeb, 0xb1, 0x21, 0xab, 0xa4, 0xc8, 0x22, 0xac, 0x19, 0x02, 0x33, 0x71, 0x35, 0x0b, 0x7c, + 0xd1, 0x9f, 0x29, 0x66, 0xd5, 0x20, 0x04, 0x50, 0xc4, 0x4a, 0x29, 0xe2, 0x17, 0xed, 0x69, 0xd7, + 0xba, 0x39, 0x7f, 0x30, 0xfb, 0xb9, 0xdc, 0x97, 0x7a, 0x4e, 0x1c, 0xb0, 0x26, 0x41, 0x75, 0x4d, + 0xa5, 0x9d, 0x38, 0xef, 0x75, 0xa6, 0xa3, 0x53, 0xbf, 0x52, 0x79, 0x17, 0x4e, 0x66, 0xf9, 0x7e, + 0x3f, 0xd5, 0x8b, 0x93, 0x5d, 0x7c, 0x74, 0x43, 0xd8, 0x78, 0x96, 0xd3, 0xb9, 0x7e, 0x3f, 0xd2, + 0x3d, 0xbf, 0x74, 0x4e, 0xd9, 0xa8, 0x30, 0xf9, 0x20, 0xb8, 0x38, 0xac, 0x9a, 0xd3, 0xc9, 0x7e, + 0x7f, 0xe9, 0xbe, 0x19, 0x0b, 0xad, 0x7f, 0x62, 0xe7, 0xfa, 0x9c, 0xfd, 0x4a, 0xd9, 0x03, 0x5c, + 0xd8, 0xa9, 0x70, 0xd4, 0x28, 0x83, 0x21, 0xf8, 0x60, 0x17, 0x19, 0x59, 0xc1, 0x12, 0x2a, 0xe8, + 0xd0, 0xf9, 0x05, 0x8a, 0x8d, 0x9e, 0x94, 0x5b, 0x4a, 0xba, 0x5f, 0x15, 0x45, 0x5e, 0xf9, 0x65, + 0x54, 0x29, 0x51, 0xc7, 0xc5, 0xdc, 0x78, 0x86, 0x79, 0xf1, 0x5e, 0x09, 0xc9, 0x18, 0x08, 0x24, + 0xbe, 0xe2, 0x3a, 0xe7, 0xa4, 0x3e, 0x26, 0x55, 0x64, 0x12, 0x0d, 0xab, 0x5e, 0xc0, 0x38, 0x68, + 0x7c, 0x30, 0x7a, 0x65, 0x64, 0x6b, 0xe8, 0xd6, 0x15, 0x56, 0xfe, 0x47, 0xdb, 0xf3, 0x8e, 0x1d, + 0x8a, 0xa7, 0x30, 0xad, 0x6d, 0x63, 0x84, 0x69, 0x24, 0xf0, 0xa2, 0x84, 0x88, 0xf5, 0x30, 0xfb, + 0xaa, 0x7f, 0xc7, 0xa7, 0xce, 0xf8, 0x7b, 0x97, 0x8f, 0x4d, 0x63, 0x22, 0xad, 0x8c, 0xef, 0x25, + 0x14, 0xf7, 0xa6, 0xe3, 0xe1, 0x25, 0x79, 0xe5, 0x9a, 0xb2, 0x24, 0x8a, 0xe3, 0x66, 0xd1, 0x44, + 0x7a, 0x98, 0x9f, 0x05, 0x2d, 0x99, 0x7b, 0x78, 0x41, 0x95, 0x52, 0x43, 0x94, 0x42, 0xd5, 0xf5, + 0xf1, 0xb4, 0x5c, 0x10, 0x0b, 0x53, 0x89, 0xce, 0x50, 0xec, 0x62, 0x9d, 0x49, 0x9a, 0x27, 0x74, + 0x6e, 0xdb, 0xc2, 0xf1, 0x2b, 0x55, 0x5a, 0xc4, 0x4b, 0x5d, 0xf3, 0x98, 0x97, 0xfd, 0x81, 0x94, + 0xcb, 0xf1, 0x02, 0x56, 0x52, 0x53, 0x4c, 0xcb, 0xd9, 0x31, 0x4b, 0x69, 0xa8, 0x05, 0x73, 0xbd, + 0xd4, 0x54, 0x7d, 0xfe, 0x1c, 0x85, 0x8c, 0x40, 0x3c, 0xc1, 0x8f, 0xbf, 0x0b, 0xa7, 0x63, 0xb5, + 0xb9, 0x5a, 0x93, 0x2d, 0x1b, 0x63, 0xcd, 0xfa, 0xec, 0x29, 0xc7, 0xa2, 0x12, 0x8c, 0x18, 0x93, + 0x87, 0xb1, 0x71, 0x02, 0x4b, 0x31, 0x8d, 0xf2, 0x0f, 0x6e, 0x41, 0xe5, 0xbf, 0xb9, 0x4f, 0xdd, + 0xb8, 0x5e, 0xb1, 0x1b, 0xf5, 0xf1, 0x77, 0x7f, 0xc8, 0x87, 0xe8, 0x1c, 0xcc, 0x58, 0xdd, 0x9e, + 0x9a, 0x59, 0x12, 0xd1, 0xe1, 0xdb, 0x27, 0xec, 0x6e, 0x88, 0x06, 0xda, 0x60, 0x4b, 0x82, 0x9a, + 0xe7, 0x8c, 0x6b, 0xee, 0x11, 0x66, 0x73, 0x37, 0x05, 0x62, 0xbf, 0xef, 0x7f, 0xff, 0x4a, 0xd8, + 0xec, 0x02, 0x5b, 0x2e, 0xa6, 0x3a, 0x9b, 0xd3, 0x2c, 0xdc, 0x52, 0x3b, 0xe4, 0xeb, 0x46, 0x80, + 0x8c, 0x48, 0xb1, 0xb4, 0x7e, 0x45, 0xf6, 0xeb, 0xf6, 0x73, 0x0b, 0xc6, 0xb7, 0xe9, 0x76, 0x80, + 0x8c, 0x26, 0xd6, 0xaf, 0x31, 0xf2, 0x5c, 0x1e, 0xe0, 0x39, 0x71, 0x28, 0x02, 0xcd, 0xcb, 0xe6, + 0xde, 0x95, 0x4e, 0xdf, 0xca, 0x53, 0x32, 0x3d, 0x4a, 0xa0, 0x60, 0xcb, 0xae, 0x78, 0xab, 0xce, + 0x5b, 0x6e, 0xb8, 0xa5, 0x7e, 0x4f, 0x8d, 0x8a, 0x4b, 0x9a, 0x8d, 0x2e, 0x75, 0xa0, 0xad, 0xd8, + 0x4b, 0x46, 0xc1, 0xc5, 0x9a, 0x1a, 0x0b, 0x12, 0x09, 0x6a, 0x8c, 0xd2, 0x63, 0xde, 0x32, 0x81, + 0xc4, 0x42, 0x0f, 0x4d, 0xdd, 0x63, 0x67, 0x3e, 0x9c, 0x00, 0xaa, 0x1c, 0x90, 0x92, 0xd6, 0x64, + 0x6e, 0x44, 0xdd, 0xea, 0x60, 0xe4, 0xaf, 0x47, 0xd2, 0x23, 0xed, 0xf6, 0xca, 0x94, 0xcf, 0x8a, + 0xba, 0x4b, 0x8e, 0x9a, 0x8c, 0x87, 0x24, 0xe6, 0x38, 0x67, 0x14, 0x63, 0xf6, 0xcd, 0x36, 0xf1, + 0x54, 0x37, 0x0b, 0x3c, 0x1e, 0xc9, 0x60, 0x05, 0x59, 0xb9, 0x1f, 0x61, 0x94, 0x4a, 0x91, 0x0d, + 0xd1, 0xfa, 0x61, 0x74, 0xc3, 0x2a, 0xcc, 0x9c, 0x10, 0x87, 0xfb, 0x46, 0x49, 0x76, 0x41, 0x75, + 0xa2, 0x48, 0x25, 0x45, 0xaa, 0x6f, 0x36, 0xff, 0x73, 0x3a, 0x37, 0xc8, 0x18, 0x44, 0xb9, 0xf7, + 0x54, 0x89, 0x86, 0xfa, 0x3f, 0xc1, 0x5f, 0xef, 0x6c, 0x62, 0xe9, 0x0c, 0x1b, 0x45, 0xb1, 0x57, + 0x51, 0x19, 0xaa, 0x07, 0x75, 0x0a, 0x0b, 0x47, 0xf4, 0xd1, 0x32, 0xe0, 0xda, 0x71, 0xcb, 0xd4, + 0x0b, 0x75, 0xd3, 0x40, 0xba, 0x92, 0x89, 0x27, 0x8b, 0x70, 0x67, 0xf1, 0x8b, 0x74, 0x4d, 0xea, + 0x07, 0x6c, 0x05, 0x55, 0xc5, 0x6f, 0x85, 0x75, 0x67, 0x41, 0x94, 0xd7, 0x41, 0x71, 0x03, 0xb9, + 0x14, 0xe7, 0xdb, 0x16, 0xc3, 0x38, 0xd1, 0xb5, 0x33, 0x8a, 0x3d, 0xb0, 0x90, 0xf1, 0x3b, 0xcf, + 0x05, 0x93, 0xe1, 0x98, 0x14, 0x23, 0x8d, 0x46, 0x3f, 0x0d, 0xfb, 0x50, 0xbd, 0x0f, 0xfa, 0x85, + 0x3a, 0xb6, 0x3e, 0x67, 0x97, 0xae, 0x03, 0xf2, 0x17, 0xd4, 0xe4, 0xa5, 0xe1, 0xdc, 0xd8, 0xda, + 0x94, 0x4c, 0xf2, 0x9d, 0x1c, 0xf7, 0x3f, 0xf5, 0x9b, 0x71, 0xb6, 0x65, 0xc5, 0x62, 0x66, 0x28, + 0xe0, 0x51, 0x6a, 0x78, 0x66, 0xa1, 0x16, 0xf6, 0x72, 0xe3, 0x35, 0x33, 0x54, 0x67, 0x66, 0xec, + 0x66, 0x1d, 0x77, 0x5d, 0x54, 0x85, 0xe6, 0xb9, 0xc7, 0x7c, 0x5d, 0x85, 0x4e, 0xb9, 0xaa, 0xca, + 0x2c, 0x27, 0xcc, 0xc9, 0xcc, 0xaf, 0x7f, 0x15, 0x6c, 0x4c, 0x16, 0xda, 0x85, 0x95, 0x6c, 0xc4, + 0x56, 0xec, 0xc5, 0x6a, 0xb6, 0x63, 0x19, 0x3b, 0xb2, 0x9c, 0x4d, 0x59, 0xc6, 0xbe, 0x8c, 0x71, + 0x3b, 0xa8, 0x06, 0xd3, 0x2c, 0x60, 0xf7, 0x38, 0x27, 0x48, 0x87, 0xe5, 0xe6, 0x70, 0x9a, 0xe4, + 0x7e, 0x04, 0x03, 0xd0, 0x01, 0x13, 0x07, 0xc2, 0x2c, 0x3f, 0x36, 0x54, 0x66, 0xde, 0x48, 0x55, + 0x2e, 0xc9, 0x8b, 0xb5, 0x78, 0xb2, 0x80, 0x37, 0x4b, 0xd7, 0x2f, 0xc7, 0x86, 0x55, 0xd8, 0xb1, + 0x1a, 0x5b, 0x56, 0x61, 0xcf, 0xf0, 0x89, 0xe4, 0xc6, 0xc9, 0x3e, 0x5c, 0x64, 0xf1, 0xd9, 0x4c, + 0x4b, 0xd5, 0xaa, 0xb8, 0xd3, 0x57, 0x47, 0x60, 0x57, 0xf4, 0xc0, 0x48, 0x6e, 0x0c, 0x65, 0xa9, + 0x2f, 0x4f, 0x88, 0xf3, 0x0b, 0x87, 0xfe, 0x39, 0x97, 0x0a, 0xf0, 0x48, 0xec, 0xb1, 0x44, 0xf7, + 0x91, 0xc2, 0x8c, 0x35, 0xe4, 0x43, 0xeb, 0xf4, 0x9a, 0xa0, 0x78, 0x29, 0x18, 0xe7, 0xce, 0x4d, + 0xe9, 0xb9, 0x1a, 0xe1, 0x93, 0x5a, 0xd3, 0x76, 0x55, 0x30, 0x56, 0x9d, 0xc0, 0xcd, 0x4c, 0xe4, + 0x3a, 0x13, 0xba, 0xde, 0xc4, 0x4e, 0x99, 0xe0, 0x65, 0xab, 0xf2, 0xdd, 0x95, 0x0a, 0x63, 0x18, + 0xd9, 0x20, 0x0b, 0x99, 0xf1, 0x9b, 0xfd, 0xce, 0x72, 0xbd, 0x4e, 0x25, 0x50, 0x63, 0xc7, 0x74, + 0x28, 0xc0, 0xba, 0x99, 0x11, 0x86, 0xab, 0x81, 0x98, 0x2d, 0x72, 0x35, 0xde, 0x2d, 0xc3, 0x94, + 0xc4, 0xde, 0x51, 0x34, 0x50, 0xa9, 0x12, 0xe8, 0x60, 0xc2, 0x58, 0x04, 0x8c, 0xef, 0xb9, 0x15, + 0x71, 0x4d, 0x94, 0x05, 0x74, 0x5f, 0xba, 0xc6, 0xc8, 0x24, 0x86, 0xd4, 0x3e, 0x84, 0x8c, 0xd4, + 0xf1, 0x81, 0x55, 0x02, 0xe5, 0x31, 0xec, 0xf2, 0x54, 0x11, 0x91, 0x82, 0x53, 0x05, 0xc0, 0x84, + 0x3a, 0x16, 0x0f, 0xfd, 0xa8, 0x54, 0x59, 0x04, 0x10, 0x0c, 0xd1, 0xab, 0x6a, 0xb5, 0x99, 0x03, + 0xad, 0x3e, 0x18, 0x80, 0xbc, 0x80, 0x55, 0x36, 0x72, 0x67, 0xba, 0x87, 0x91, 0x0e, 0xac, 0x5a, + 0x87, 0x17, 0x6a, 0x09, 0xcf, 0xc5, 0xdc, 0x73, 0x1c, 0xf3, 0x82, 0xb8, 0x15, 0x47, 0x57, 0x2c, + 0xe5, 0x83, 0x14, 0xdd, 0xd5, 0x51, 0xd6, 0x66, 0xba, 0x6d, 0x98, 0xb8, 0x32, 0xe4, 0x85, 0x40, + 0x4a, 0x01, 0xed, 0xc2, 0xba, 0xd1, 0x2b, 0xb9, 0x4f, 0xb4, 0x2a, 0x38, 0x52, 0x00, 0x8b, 0x71, + 0x06, 0xa5, 0x70, 0xcc, 0xd3, 0xb2, 0xab, 0x07, 0xa1, 0x2c, 0x9f, 0x9d, 0x5e, 0x25, 0x20, 0xf7, + 0x2d, 0xcf, 0xec, 0xfb, 0xb5, 0x34, 0x4d, 0xce, 0x74, 0xaf, 0xac, 0x5d, 0xf2, 0xd8, 0xa6, 0x84, + 0x52, 0xdc, 0x35, 0x14, 0xf7, 0xd9, 0xbb, 0x91, 0xd2, 0xd9, 0xeb, 0xab, 0xb3, 0x61, 0x3a, 0x36, + 0xa3, 0xb0, 0x6b, 0xe8, 0xeb, 0x5a, 0xea, 0x7a, 0xb7, 0xba, 0xba, 0x6e, 0x57, 0x37, 0xec, 0xf4, + 0xc0, 0x16, 0xf8, 0x4f, 0xe4, 0x4c, 0x9e, 0xb2, 0x31, 0xb0, 0x60, 0x9f, 0x86, 0x2d, 0x81, 0x25, + 0xdc, 0x26, 0xcd, 0x80, 0x25, 0x54, 0x65, 0x03, 0x3c, 0xaa, 0x0d, 0xe0, 0xdc, 0x60, 0xaa, 0xac, + 0x80, 0x1f, 0xc9, 0x0a, 0xe0, 0x23, 0xae, 0x2c, 0x80, 0xb5, 0xb4, 0x00, 0xf8, 0xd0, 0x34, 0x62, + 0x03, 0xec, 0xee, 0x0f, 0x1e, 0xcb, 0x0a, 0x78, 0xbd, 0x5f, 0xdd, 0x0c, 0x80, 0xba, 0x7c, 0xd9, + 0x3e, 0x76, 0xe6, 0xa6, 0x81, 0xae, 0x30, 0x9a, 0xbb, 0x06, 0xdf, 0xfc, 0x14, 0xcd, 0x42, 0x57, + 0x3a, 0x63, 0xe1, 0x56, 0x1f, 0x32, 0x89, 0x45, 0x18, 0x7a, 0x81, 0xf8, 0x0a, 0xff, 0xda, 0x31, + 0x59, 0xde, 0x51, 0x1f, 0x1b, 0xab, 0xd1, 0x97, 0xec, 0xd0, 0xb4, 0x4e, 0x8f, 0x40, 0x6e, 0x54, + 0xab, 0x47, 0xe0, 0x2a, 0xbd, 0xfe, 0x98, 0x7a, 0xfd, 0xdc, 0xb5, 0x94, 0x56, 0xff, 0x81, 0xb4, + 0xfa, 0xf9, 0xd9, 0x27, 0xa5, 0xd3, 0xd7, 0x51, 0xa7, 0xc3, 0x44, 0x5c, 0x03, 0x8d, 0xbe, 0x3f, + 0xa8, 0xa5, 0xd3, 0xf7, 0x06, 0x83, 0xea, 0x4a, 0xfd, 0xa0, 0x2a, 0xf2, 0x75, 0xd6, 0xcd, 0x8b, + 0x61, 0x6d, 0x58, 0x33, 0x2f, 0xe1, 0x36, 0xa9, 0x97, 0x97, 0x50, 0x95, 0x56, 0x7e, 0x4c, 0xad, + 0x1c, 0x6e, 0x9d, 0x9e, 0x63, 0xcf, 0x75, 0x6c, 0x0f, 0x2b, 0x15, 0xfd, 0x03, 0xa9, 0xe8, 0xe5, + 0xbe, 0x79, 0x38, 0xfc, 0x4a, 0x63, 0xaf, 0xa3, 0xc6, 0x4e, 0x4e, 0xd2, 0x46, 0xd4, 0xf7, 0x40, + 0xab, 0xe3, 0x96, 0xdf, 0xab, 0xa3, 0xbc, 0x07, 0xda, 0x2f, 0x95, 0x75, 0xf7, 0x40, 0xdb, 0x7b, + 0x7a, 0xbb, 0xe6, 0xa9, 0xe3, 0xdb, 0xf4, 0xfe, 0x79, 0x3a, 0x92, 0x46, 0x77, 0xd2, 0xd3, 0x51, + 0x28, 0x0d, 0xbf, 0x0e, 0x1a, 0xfe, 0xc3, 0xad, 0xeb, 0x28, 0xed, 0xfe, 0x43, 0x6a, 0xf7, 0x53, + 0x62, 0x63, 0x9d, 0x12, 0x76, 0xa7, 0xd4, 0xfb, 0x3a, 0xab, 0x77, 0x3e, 0x43, 0x37, 0x7b, 0xbf, + 0xfd, 0x97, 0x1a, 0xe1, 0x71, 0x4f, 0x70, 0x49, 0xbe, 0x3a, 0xb0, 0x2d, 0xe9, 0xf4, 0x08, 0x82, + 0x36, 0xf4, 0x79, 0x04, 0xbc, 0xd2, 0xe5, 0xd5, 0x4b, 0xd6, 0x56, 0xe5, 0xc7, 0xd1, 0xbb, 0x62, + 0x1a, 0xd2, 0xe5, 0x8f, 0xaa, 0xca, 0x95, 0x26, 0x97, 0xd2, 0xe4, 0x62, 0xdc, 0x91, 0x8a, 0x72, + 0x6f, 0x51, 0x3a, 0x1c, 0xf1, 0x03, 0x4d, 0xca, 0xcf, 0xcd, 0x82, 0x39, 0x2a, 0xa0, 0x5e, 0x95, + 0x9c, 0xa8, 0x8b, 0xb1, 0xf2, 0xcf, 0x58, 0xa9, 0xca, 0xef, 0x0d, 0xcd, 0xf9, 0xc7, 0x17, 0x9d, + 0xb5, 0x8f, 0x59, 0xca, 0xfa, 0xb0, 0x55, 0x61, 0x79, 0xd6, 0xef, 0x23, 0x71, 0x1a, 0x41, 0x7e, + 0x36, 0xac, 0x4a, 0x7a, 0xad, 0x28, 0xb4, 0x55, 0xd2, 0xab, 0x4a, 0x7a, 0x6d, 0xd9, 0x2b, 0xa0, + 0x92, 0x5e, 0x9b, 0x52, 0x0d, 0x9b, 0x91, 0xf4, 0xca, 0xb8, 0xb8, 0x56, 0x39, 0xaf, 0x2a, 0xe7, + 0xf5, 0xa9, 0x7a, 0xf7, 0xd4, 0x6a, 0x60, 0xfd, 0x1c, 0x7b, 0x11, 0xa1, 0xb3, 0xe9, 0x29, 0xaf, + 0x3b, 0x03, 0x95, 0xf3, 0x9a, 0xe1, 0xe5, 0x5b, 0x19, 0xe5, 0xc6, 0xdc, 0x7b, 0xab, 0x90, 0x9b, + 0xf1, 0xeb, 0xad, 0xc2, 0x55, 0x0e, 0xbd, 0x47, 0x34, 0x4b, 0x54, 0xbe, 0xab, 0xca, 0x77, 0x55, + 0xfa, 0x7a, 0x5d, 0xf4, 0xf5, 0xe6, 0xa7, 0xbb, 0xee, 0x57, 0xd6, 0xd4, 0xad, 0x2a, 0x86, 0x27, + 0x9e, 0xed, 0x1a, 0x67, 0x9e, 0x66, 0x6d, 0x80, 0xa6, 0x73, 0x5d, 0x13, 0x40, 0x95, 0xf6, 0x7f, + 0x4c, 0xed, 0xaf, 0x32, 0x5d, 0x55, 0xa6, 0xab, 0xd2, 0xfd, 0xeb, 0xa1, 0xfb, 0x9f, 0x42, 0xa2, + 0xeb, 0xee, 0xfe, 0x40, 0x65, 0xba, 0x36, 0xa3, 0xcd, 0x5b, 0x48, 0x74, 0x5d, 0x01, 0xdc, 0xa4, + 0x46, 0x57, 0x69, 0xae, 0xeb, 0xa1, 0xd3, 0x55, 0x96, 0xab, 0xca, 0x72, 0x55, 0xfa, 0xfc, 0xf1, + 0xf5, 0xf9, 0x93, 0x48, 0x72, 0xdd, 0x57, 0x49, 0xae, 0x71, 0xb5, 0xdc, 0x7c, 0x8e, 0x6b, 0x02, + 0x6c, 0x83, 0x2a, 0x59, 0x65, 0xb8, 0xae, 0x85, 0x42, 0x56, 0x09, 0xae, 0x3f, 0xb0, 0x76, 0x56, + 0x09, 0xae, 0x1b, 0xa1, 0xac, 0x9f, 0x5e, 0x7e, 0xeb, 0x2b, 0x95, 0xdf, 0x1a, 0xd9, 0x21, 0x6f, + 0x37, 0xbd, 0x35, 0x0f, 0x47, 0x93, 0xbb, 0xe6, 0x2a, 0xb9, 0x75, 0x6d, 0x95, 0xbb, 0xca, 0x6d, + 0x55, 0xb9, 0xad, 0x4a, 0xb3, 0xaf, 0xb1, 0x66, 0x57, 0xa9, 0xad, 0x4f, 0x53, 0xa5, 0xb7, 0x90, + 0xd9, 0x9a, 0x05, 0xbf, 0x05, 0x55, 0xae, 0xf2, 0x5a, 0x1b, 0x29, 0x59, 0x57, 0x8b, 0xab, 0xb4, + 0x56, 0x95, 0xd6, 0xaa, 0x02, 0xd9, 0x5b, 0x11, 0x0e, 0x0d, 0xa4, 0xb5, 0xae, 0x4e, 0x51, 0x95, + 0xd5, 0x9a, 0x5f, 0x52, 0xb6, 0x60, 0x63, 0xd9, 0xaf, 0xf9, 0x26, 0xc1, 0x7d, 0xc5, 0x3c, 0xd7, + 0xc5, 0x25, 0xd2, 0x1b, 0x9a, 0xeb, 0xaa, 0xd2, 0x59, 0xe3, 0x03, 0xaa, 0xd2, 0x59, 0x9b, 0x65, + 0xbb, 0xba, 0xec, 0xd7, 0x8c, 0x23, 0x40, 0xa5, 0xb3, 0x36, 0xa5, 0x13, 0x36, 0x24, 0x9d, 0x55, + 0x65, 0xb2, 0xaa, 0x4c, 0xd6, 0x27, 0xea, 0xcb, 0x53, 0x0b, 0x80, 0x35, 0x74, 0xe3, 0x3d, 0x8d, + 0x24, 0xd6, 0x03, 0x95, 0xc4, 0x9a, 0xe5, 0xcf, 0x6b, 0x25, 0x7f, 0xb5, 0x85, 0xd4, 0x55, 0x95, + 0xb5, 0xfa, 0xf8, 0xd6, 0x87, 0xab, 0x12, 0x56, 0x55, 0xc2, 0xaa, 0x52, 0xcb, 0x8f, 0xaf, 0x96, + 0xdd, 0x4d, 0xcf, 0x55, 0xdd, 0xab, 0x91, 0xab, 0xaa, 0xd2, 0x54, 0xab, 0x28, 0x7a, 0xb7, 0xf1, + 0x0c, 0x55, 0xb7, 0xe1, 0xe4, 0x54, 0x57, 0xe5, 0xa5, 0x3e, 0xb6, 0x7e, 0x57, 0x29, 0xa9, 0x2a, + 0x25, 0x55, 0x69, 0xf7, 0x47, 0xd7, 0xee, 0x4f, 0xe4, 0xda, 0x55, 0x95, 0x8d, 0x5a, 0x5b, 0x69, + 0xb7, 0x90, 0x88, 0xea, 0x36, 0x9e, 0x83, 0xea, 0xaa, 0xf4, 0xd3, 0x47, 0x57, 0xdd, 0x54, 0x65, + 0x9e, 0xaa, 0xcc, 0x53, 0xa5, 0xb6, 0x1f, 0x53, 0x6d, 0xd3, 0xa7, 0x90, 0x74, 0x7a, 0xb0, 0xaf, + 0x92, 0x4e, 0x43, 0xed, 0x4b, 0x1b, 0xcf, 0x37, 0xa5, 0x0d, 0xa7, 0x9a, 0x52, 0x95, 0x65, 0xfa, + 0xc8, 0x7a, 0x97, 0xa9, 0x04, 0x53, 0xa4, 0xf6, 0xae, 0x55, 0x82, 0xe9, 0x9a, 0xea, 0x64, 0xf6, + 0xe4, 0x72, 0x4b, 0xf7, 0x54, 0x6e, 0xa9, 0xbf, 0x71, 0xdd, 0x72, 0x5a, 0x69, 0xab, 0x19, 0xa5, + 0x2a, 0x99, 0x74, 0x1d, 0x75, 0xb8, 0xca, 0x23, 0x55, 0x79, 0xa4, 0x4a, 0x81, 0xaf, 0xa7, 0x02, + 0x57, 0x29, 0xa4, 0x4f, 0x4e, 0x73, 0xb7, 0x91, 0x3d, 0xda, 0x5a, 0xe2, 0xa8, 0xca, 0x19, 0x6d, + 0xb2, 0x64, 0x0d, 0x65, 0x3d, 0x51, 0xe9, 0xa2, 0x2a, 0x5d, 0x54, 0x45, 0x8b, 0xb7, 0x21, 0x17, + 0x1a, 0x48, 0x17, 0x9d, 0xa8, 0x4c, 0xd1, 0x35, 0xce, 0x14, 0xad, 0xf6, 0x35, 0xfd, 0x4b, 0xfa, + 0x5b, 0x19, 0xe9, 0x28, 0x42, 0x1c, 0xa8, 0x03, 0xc3, 0x82, 0x3d, 0x28, 0xbf, 0x55, 0x47, 0xd0, + 0xc9, 0x09, 0x34, 0x99, 0xdc, 0xb5, 0xc3, 0x39, 0x63, 0x8e, 0x5d, 0xc0, 0xfa, 0xe1, 0xe6, 0x1b, + 0xd6, 0x8d, 0x6f, 0xf6, 0x08, 0x33, 0x06, 0x50, 0x0b, 0xa4, 0x50, 0xc0, 0x84, 0x63, 0x91, 0x9a, + 0x38, 0x72, 0x75, 0x7b, 0x88, 0x76, 0x65, 0x2a, 0x80, 0xdd, 0x32, 0xc1, 0x94, 0x62, 0x23, 0x60, + 0xdd, 0xdd, 0x02, 0x11, 0x90, 0xac, 0x16, 0x26, 0xb1, 0xfd, 0x2c, 0x55, 0xad, 0xcc, 0x1c, 0x71, + 0xec, 0x23, 0x93, 0xf8, 0x73, 0xb3, 0x58, 0x50, 0xb0, 0xb9, 0x8d, 0xbf, 0xc2, 0xc2, 0x0a, 0x87, + 0xd4, 0xf2, 0xe9, 0xac, 0x61, 0x5b, 0x87, 0x71, 0x33, 0xd0, 0x1b, 0xb9, 0x39, 0x79, 0x45, 0xbe, + 0xcb, 0x80, 0x29, 0x84, 0x63, 0x1d, 0x39, 0x96, 0x05, 0xc6, 0xa6, 0xa7, 0x4d, 0x31, 0xfb, 0x34, + 0x1e, 0x3b, 0xf6, 0xa4, 0xdb, 0x2b, 0x57, 0xeb, 0x9d, 0xeb, 0x1e, 0xf9, 0xd5, 0x0a, 0xeb, 0xf5, + 0xfb, 0xbe, 0x18, 0x13, 0x37, 0xed, 0xea, 0xc8, 0xd2, 0xd9, 0x78, 0x86, 0x88, 0xed, 0x07, 0x4c, + 0x80, 0x35, 0x60, 0x04, 0xa1, 0xa6, 0x61, 0x30, 0x0b, 0x73, 0x90, 0x87, 0x4d, 0x3c, 0x86, 0x9f, + 0x66, 0x38, 0x9c, 0x23, 0xc5, 0x69, 0xc6, 0x3a, 0x45, 0x73, 0x0f, 0x9f, 0x58, 0x2e, 0xa6, 0x44, + 0x37, 0x81, 0x16, 0x5f, 0xb0, 0x37, 0x3e, 0x99, 0x68, 0x91, 0x97, 0x9f, 0x6d, 0xc2, 0x3c, 0x89, + 0x9e, 0x72, 0x58, 0xc4, 0x72, 0x8f, 0x75, 0x68, 0xc3, 0x9b, 0x18, 0xd4, 0xb7, 0x68, 0xef, 0x17, + 0x6d, 0xef, 0xf5, 0x60, 0x07, 0x09, 0x75, 0x34, 0xd0, 0x06, 0x5b, 0x52, 0xd0, 0xfc, 0xbe, 0xbe, + 0x41, 0xd6, 0xa7, 0x31, 0x27, 0x1b, 0xa7, 0xe0, 0x99, 0x4e, 0x75, 0xeb, 0xbd, 0x33, 0x87, 0x91, + 0xeb, 0x76, 0xcc, 0xcb, 0x1b, 0x9d, 0xb1, 0x4b, 0x4b, 0xbf, 0xed, 0xc8, 0x35, 0xcf, 0x8f, 0xff, + 0xcd, 0x85, 0x18, 0xd0, 0xd3, 0x07, 0x5a, 0x46, 0x90, 0x72, 0xf8, 0xd4, 0xb5, 0x72, 0x81, 0x03, + 0xd0, 0x4b, 0x0c, 0x85, 0x00, 0x72, 0x1f, 0xbd, 0xd2, 0x78, 0x9c, 0x52, 0xf7, 0x15, 0x74, 0xd3, + 0x84, 0x11, 0xd3, 0x09, 0xf5, 0xe4, 0x7a, 0xe1, 0xea, 0x1e, 0xc7, 0x12, 0x30, 0xd3, 0x0a, 0x1a, + 0xdd, 0x75, 0x2f, 0xa1, 0xc8, 0x25, 0x67, 0x50, 0x2d, 0xec, 0x8e, 0x37, 0xd6, 0x4d, 0xe0, 0x7d, + 0x40, 0xfc, 0x53, 0x40, 0x05, 0x39, 0x82, 0x25, 0xbc, 0x8d, 0x45, 0x78, 0x75, 0x63, 0xec, 0xe3, + 0x85, 0xf7, 0xee, 0x25, 0x23, 0x16, 0xbe, 0x74, 0x1d, 0x4f, 0x76, 0x74, 0x22, 0x0b, 0x25, 0x40, + 0xb4, 0xc3, 0x19, 0x05, 0xbd, 0x44, 0x5d, 0x39, 0x8c, 0x61, 0xed, 0x4b, 0x7c, 0xeb, 0x76, 0x7a, + 0xbc, 0x9f, 0x2f, 0x77, 0x39, 0xa7, 0xc9, 0x60, 0xe6, 0x61, 0x61, 0x47, 0x40, 0xa9, 0xdc, 0xc1, + 0x23, 0x76, 0x9c, 0x39, 0xe4, 0x21, 0x63, 0xd3, 0xf4, 0x52, 0x40, 0x9f, 0xd8, 0xac, 0xdb, 0xf1, + 0xc8, 0x25, 0x2f, 0x83, 0xe9, 0xdd, 0xe5, 0x98, 0x97, 0x8b, 0x31, 0x5d, 0x35, 0x95, 0x1e, 0xe2, + 0xfd, 0xfd, 0x1a, 0xd3, 0x20, 0xae, 0xad, 0x90, 0x2b, 0xaf, 0x89, 0x5d, 0xa2, 0x47, 0x9f, 0x6d, + 0x63, 0x01, 0x7a, 0xc4, 0x74, 0xca, 0x72, 0xe1, 0x2f, 0xfa, 0x37, 0x07, 0x3e, 0xe4, 0xa5, 0x2b, + 0x62, 0xfa, 0x60, 0x1b, 0xd2, 0x78, 0xb0, 0x6d, 0x48, 0x62, 0xb9, 0x99, 0x61, 0x6c, 0xbe, 0x27, + 0xba, 0x85, 0x59, 0xae, 0xb0, 0x81, 0x81, 0x12, 0x45, 0x2f, 0x8d, 0xa0, 0xac, 0x98, 0x4b, 0x81, + 0xc0, 0x2b, 0x96, 0x67, 0x64, 0x82, 0xba, 0xdd, 0x40, 0xa0, 0xbd, 0x41, 0x1e, 0xa3, 0x18, 0xe0, + 0x27, 0x83, 0xdf, 0x7a, 0xe8, 0xf9, 0x73, 0xd4, 0x0d, 0xa5, 0x54, 0x58, 0x6c, 0xf5, 0x72, 0x2d, + 0x60, 0x6f, 0x39, 0x3b, 0x3b, 0xb4, 0x95, 0x0e, 0x75, 0xaa, 0x79, 0x58, 0xf0, 0x38, 0xf0, 0xef, + 0x09, 0x10, 0xf5, 0xb6, 0x3b, 0xe8, 0xc9, 0x79, 0x73, 0xb2, 0x1a, 0xc1, 0x15, 0xa7, 0x9c, 0x24, + 0x59, 0x42, 0x59, 0xe9, 0x31, 0x00, 0xf1, 0x89, 0x52, 0xf3, 0x29, 0xd1, 0x86, 0xc4, 0xf1, 0xda, + 0xd0, 0x02, 0x90, 0xc8, 0x65, 0xfa, 0x10, 0xcf, 0x35, 0xe0, 0x3d, 0xd0, 0xbd, 0x32, 0x94, 0xcc, + 0xd9, 0xc1, 0xe1, 0x34, 0x4d, 0x7c, 0xae, 0x00, 0x39, 0xe9, 0x69, 0x8a, 0x40, 0xe5, 0x9f, 0x6a, + 0x5a, 0xfb, 0xab, 0xdc, 0x9c, 0x7e, 0x91, 0x48, 0x92, 0x99, 0x33, 0x2e, 0x8a, 0x6b, 0x84, 0x97, + 0x77, 0x24, 0x79, 0x39, 0xa3, 0x0d, 0xe5, 0x58, 0x39, 0xbd, 0xbb, 0x0f, 0xca, 0xc9, 0x69, 0xe7, + 0xc4, 0x97, 0x60, 0xe4, 0xb4, 0xbb, 0xdc, 0x4a, 0xf0, 0x71, 0xe1, 0xa9, 0xb6, 0x55, 0xd9, 0x38, + 0xf7, 0x8c, 0xbd, 0xb6, 0xb9, 0xd8, 0x2d, 0x64, 0xe0, 0x76, 0x78, 0x77, 0x57, 0xce, 0x77, 0xcb, + 0x6a, 0x72, 0xad, 0xdb, 0x12, 0xc3, 0x4a, 0x21, 0xa7, 0x95, 0x59, 0xd5, 0xad, 0xce, 0xa5, 0x6d, + 0x30, 0x68, 0x53, 0xbc, 0x29, 0x43, 0xb8, 0xd0, 0x2a, 0x3d, 0x74, 0x6e, 0x35, 0x8a, 0x75, 0xf3, + 0x4b, 0x80, 0xa9, 0x41, 0x13, 0x75, 0x61, 0x9e, 0x16, 0xe1, 0xc8, 0xb0, 0x55, 0xa5, 0x10, 0x44, + 0xec, 0x50, 0xf9, 0xae, 0xc8, 0x1b, 0xa5, 0xa9, 0x06, 0xa9, 0x3c, 0xa2, 0x2a, 0xd6, 0x69, 0x8a, + 0x65, 0x5a, 0x0d, 0xa1, 0x9c, 0x99, 0x1a, 0x33, 0x51, 0x65, 0x11, 0xe5, 0xdb, 0xab, 0x4d, 0xba, + 0xf3, 0xa4, 0x5d, 0x60, 0x62, 0x53, 0x36, 0xdd, 0xa9, 0x53, 0x59, 0xc2, 0x04, 0x6e, 0x35, 0x01, + 0x52, 0xd6, 0xaf, 0x16, 0x78, 0x7e, 0x64, 0xfc, 0xc3, 0x3f, 0xb8, 0x0b, 0x6e, 0x7d, 0xfd, 0x43, + 0x64, 0xd2, 0x8d, 0x2a, 0xd5, 0x71, 0x44, 0xa3, 0x72, 0x5d, 0x3d, 0x90, 0xd5, 0xcc, 0xe1, 0xf4, + 0xf1, 0xd3, 0xc4, 0x72, 0x9c, 0x41, 0xdb, 0xd9, 0xab, 0xb1, 0xfa, 0x88, 0x16, 0x7e, 0xac, 0xed, + 0xcc, 0xa5, 0x61, 0x7d, 0x24, 0x0b, 0xef, 0xd3, 0x76, 0xc6, 0x4a, 0xe8, 0x27, 0xee, 0x93, 0x92, + 0x44, 0x14, 0xfa, 0x64, 0x52, 0x30, 0xe5, 0x3a, 0xa0, 0xb6, 0x33, 0x56, 0x51, 0xfd, 0xba, 0xe4, + 0x2d, 0x68, 0x50, 0x86, 0x67, 0x6a, 0x5b, 0x62, 0x51, 0xd6, 0x43, 0x0d, 0x3d, 0xcd, 0x76, 0x24, + 0xe6, 0xf0, 0xda, 0x46, 0xdd, 0xd0, 0x5f, 0x96, 0xbf, 0x16, 0xe4, 0x9e, 0x47, 0xe1, 0x18, 0x93, + 0x23, 0x6b, 0x6c, 0x53, 0x0e, 0x85, 0x1e, 0x89, 0xd4, 0x43, 0x5d, 0xb5, 0x60, 0xdb, 0xad, 0x11, + 0xc3, 0x3c, 0x77, 0x72, 0xef, 0xb4, 0x30, 0xb9, 0xb3, 0x56, 0xa7, 0x8d, 0xce, 0xed, 0x8c, 0x85, + 0x72, 0xa3, 0x53, 0x3b, 0x75, 0x69, 0xf8, 0x30, 0x33, 0x3b, 0x75, 0x59, 0xd9, 0xaf, 0x49, 0xda, + 0xaa, 0xf3, 0xba, 0x70, 0x91, 0xba, 0x61, 0xd3, 0x3a, 0x77, 0x6d, 0x5c, 0x73, 0x56, 0x67, 0x9f, + 0xd4, 0xfc, 0x70, 0x93, 0x7a, 0xb7, 0x8d, 0x49, 0xdd, 0xf2, 0x7c, 0x76, 0xdb, 0x9d, 0xca, 0xf4, + 0x51, 0x66, 0xb1, 0xbb, 0x3a, 0x81, 0x1f, 0x7c, 0xee, 0x3e, 0xa1, 0x69, 0xdb, 0xce, 0x8c, 0x9d, + 0xb4, 0x3c, 0x59, 0x73, 0x59, 0x34, 0xe1, 0x66, 0xd8, 0x4e, 0xf7, 0x54, 0xf4, 0xaa, 0x20, 0x49, + 0xf7, 0x33, 0x6c, 0x67, 0x38, 0x2a, 0x7a, 0xf5, 0x06, 0xb8, 0x70, 0x1e, 0x72, 0x07, 0xc4, 0x76, + 0x9e, 0x0b, 0xa3, 0x57, 0x0f, 0xc7, 0xaa, 0xef, 0x61, 0xbb, 0xd8, 0x9b, 0xd1, 0x20, 0x4e, 0xee, + 0x7e, 0xd8, 0x2e, 0x72, 0x66, 0xd4, 0xc2, 0xb7, 0xea, 0x85, 0xd8, 0xce, 0xf1, 0x66, 0xf4, 0xc3, + 0x05, 0x62, 0x31, 0x4e, 0x0f, 0x78, 0xdd, 0x98, 0x03, 0xef, 0x03, 0x62, 0xb1, 0xf8, 0x97, 0x0d, + 0x07, 0xa9, 0x1f, 0xac, 0x14, 0x7f, 0x93, 0xc8, 0x33, 0xc9, 0x38, 0xd9, 0xfe, 0x4a, 0x1f, 0x7f, + 0x9f, 0x52, 0x67, 0x6e, 0xc3, 0xb2, 0xfb, 0x1c, 0x8f, 0x99, 0x6e, 0x4f, 0xcd, 0xac, 0x13, 0xf0, + 0x1d, 0x1e, 0x72, 0xc4, 0xee, 0x78, 0xd6, 0xd5, 0x20, 0x05, 0xf9, 0xca, 0x2b, 0x89, 0xa3, 0xcb, + 0xa5, 0x4f, 0x3d, 0xce, 0x38, 0xd7, 0x18, 0xf5, 0xfb, 0x26, 0xd6, 0xaf, 0xb1, 0x08, 0x87, 0xc2, + 0x22, 0x26, 0x05, 0xf8, 0x95, 0xcd, 0xbd, 0x2b, 0x9d, 0xbe, 0xcd, 0x05, 0x54, 0x9c, 0x5c, 0x22, + 0x75, 0x20, 0x7d, 0xc9, 0x43, 0xe8, 0x25, 0x0e, 0x9e, 0xaf, 0x70, 0xd8, 0x7c, 0xd9, 0x73, 0xbe, + 0xfb, 0xfd, 0x2b, 0x3e, 0xe2, 0xde, 0x21, 0x9e, 0xe9, 0xd7, 0x84, 0x07, 0x8e, 0x8e, 0x60, 0x00, + 0xde, 0xc1, 0x74, 0xe6, 0x6f, 0x33, 0xab, 0x7d, 0xa4, 0xc4, 0x90, 0x8a, 0x13, 0xe6, 0xfe, 0xb4, + 0x29, 0x14, 0xce, 0xf7, 0x48, 0x95, 0x8e, 0x1c, 0xf6, 0x9d, 0x5d, 0x9e, 0x3f, 0xec, 0xc4, 0xfb, + 0x75, 0x11, 0xb0, 0x8a, 0xde, 0x22, 0xe1, 0xa2, 0x91, 0xa8, 0x3d, 0x92, 0x8b, 0xf7, 0xa5, 0xce, + 0xcd, 0xa2, 0xe4, 0x4e, 0x81, 0xd7, 0xa7, 0x44, 0xe0, 0x37, 0x27, 0x0c, 0x17, 0x6b, 0x23, 0x11, + 0x11, 0xe5, 0x48, 0x9d, 0x4b, 0x16, 0x3b, 0xe6, 0xfc, 0xd0, 0x17, 0x92, 0xe8, 0x8c, 0x62, 0x0f, + 0x33, 0x19, 0x47, 0x77, 0xc5, 0x80, 0xd1, 0x14, 0xff, 0xe2, 0x4e, 0xb1, 0xf3, 0xab, 0x6c, 0x20, + 0x79, 0xe5, 0xe0, 0xf1, 0x45, 0xf4, 0xe3, 0x9e, 0xdc, 0xfe, 0xaa, 0x94, 0x1b, 0x38, 0x39, 0x52, + 0x37, 0x8e, 0x39, 0xf1, 0x2b, 0x4a, 0x57, 0x0b, 0xbd, 0xbe, 0x50, 0xf3, 0x9b, 0xbd, 0xbf, 0xfb, + 0x45, 0x3e, 0x14, 0xbb, 0xb4, 0x43, 0xb7, 0x01, 0xe7, 0xae, 0x8c, 0xa3, 0xf7, 0x75, 0x69, 0x10, + 0x95, 0x53, 0x73, 0x4a, 0x79, 0x80, 0x65, 0x36, 0xa4, 0x5e, 0xcb, 0xc4, 0x59, 0x49, 0x6d, 0x3b, + 0xed, 0xbc, 0x2a, 0x0d, 0x27, 0x67, 0x77, 0xe9, 0xa0, 0x4a, 0xbb, 0x0a, 0xb7, 0x92, 0x5e, 0xbd, + 0xd2, 0x76, 0x6b, 0x41, 0x4d, 0xd9, 0x2d, 0x7a, 0x55, 0x36, 0xc1, 0xba, 0xdf, 0xaf, 0x16, 0x8e, + 0x9a, 0x03, 0x63, 0x19, 0x9c, 0x2a, 0x0b, 0xe0, 0x5e, 0x32, 0xba, 0xbc, 0x1d, 0xd1, 0x11, 0xc8, + 0x80, 0xf7, 0x84, 0x62, 0xa4, 0x04, 0x41, 0x85, 0x24, 0x85, 0xc6, 0xe5, 0xc0, 0xce, 0x60, 0xbf, + 0x39, 0x41, 0xd0, 0xf8, 0x52, 0x5e, 0x09, 0x8d, 0x8d, 0x12, 0x1a, 0x6d, 0xca, 0x0c, 0xe1, 0x82, + 0x0f, 0x84, 0xc6, 0x6b, 0x25, 0x34, 0x1e, 0x55, 0x68, 0x1c, 0x34, 0x66, 0x3c, 0xec, 0x0e, 0x9a, + 0x97, 0x06, 0x3f, 0x1f, 0xb4, 0x21, 0x0d, 0x0e, 0xf6, 0x4a, 0x1e, 0x03, 0x23, 0x21, 0x0d, 0xf6, + 0x5f, 0x6b, 0x07, 0x3f, 0xae, 0x34, 0x28, 0x4a, 0x50, 0x6b, 0x7a, 0x65, 0x19, 0x44, 0xf0, 0xc9, + 0x2c, 0x2c, 0xfb, 0xfd, 0xd4, 0xb5, 0xa5, 0x5a, 0x53, 0x0e, 0xe4, 0x0c, 0xc3, 0x92, 0xf9, 0xbf, + 0x81, 0x88, 0x0f, 0x06, 0xe8, 0x9b, 0xfd, 0x49, 0xbf, 0x95, 0x97, 0xef, 0x15, 0xf3, 0x7b, 0x1b, + 0xce, 0xe9, 0xad, 0x95, 0xc7, 0x2b, 0x69, 0x6e, 0xfb, 0x0e, 0xda, 0x91, 0x4b, 0xec, 0x72, 0x59, + 0xbb, 0xd1, 0x09, 0x50, 0x26, 0x85, 0xbe, 0xa6, 0xda, 0x31, 0xf0, 0x98, 0x58, 0xba, 0xe9, 0x95, + 0xd1, 0xb7, 0x0b, 0xe9, 0x38, 0x2c, 0x69, 0x99, 0xf2, 0x8a, 0xc7, 0xfe, 0xa9, 0x1d, 0x25, 0x6b, + 0x5d, 0x38, 0x65, 0x71, 0x71, 0x55, 0x4e, 0x6e, 0x81, 0xe5, 0x4e, 0xe0, 0x7f, 0xf9, 0x1b, 0x15, + 0xe7, 0x13, 0xbf, 0x16, 0x7a, 0xd7, 0x79, 0xe4, 0x14, 0xdf, 0x8a, 0x02, 0xf4, 0x67, 0x19, 0xe6, + 0x69, 0x52, 0x00, 0xae, 0xa3, 0xfc, 0x6b, 0x51, 0xfc, 0x89, 0x7d, 0xb3, 0x1f, 0x4b, 0xee, 0x3d, + 0x88, 0xd8, 0x0b, 0x0c, 0xcf, 0x87, 0x97, 0x7b, 0x83, 0x4a, 0x72, 0xef, 0x55, 0x25, 0xb1, 0xb7, + 0xb3, 0x57, 0x41, 0xee, 0xed, 0x96, 0x11, 0x96, 0x0b, 0x01, 0xe6, 0x6d, 0xa8, 0xfc, 0x52, 0xe2, + 0xab, 0x55, 0xf3, 0x2d, 0xb2, 0x24, 0x53, 0xd6, 0x5b, 0xf3, 0x62, 0x2c, 0xbe, 0xe2, 0xdd, 0x10, + 0x23, 0xee, 0x60, 0xf0, 0x60, 0x36, 0x5c, 0xa9, 0x65, 0xff, 0xc2, 0x84, 0xfb, 0x52, 0xcd, 0x84, + 0xfb, 0xb2, 0xa1, 0x22, 0x70, 0x57, 0xc9, 0xc0, 0x56, 0x65, 0x60, 0xd4, 0xe1, 0xf3, 0xcd, 0x3e, + 0x9a, 0x33, 0x67, 0x32, 0x41, 0xc2, 0x9f, 0xa4, 0x44, 0x62, 0xf3, 0x22, 0x31, 0xcd, 0x69, 0xb7, + 0x21, 0x82, 0xb1, 0xd4, 0xe6, 0x82, 0x12, 0x8c, 0xad, 0x0b, 0xc6, 0x3d, 0x25, 0x18, 0x1f, 0x5e, + 0x30, 0x7e, 0xb0, 0x0d, 0x25, 0x16, 0xdb, 0x15, 0x8b, 0xfe, 0xae, 0xc3, 0xa6, 0x08, 0xc5, 0x32, + 0xbb, 0xa3, 0x4a, 0x28, 0x96, 0x64, 0xaf, 0x0a, 0x52, 0xf1, 0x55, 0xe9, 0x28, 0xbc, 0x91, 0x8b, + 0xb1, 0xe1, 0x3c, 0xf0, 0x46, 0xc9, 0x0f, 0x26, 0x4b, 0xbf, 0xf2, 0x68, 0xec, 0x6f, 0x76, 0x18, + 0x8f, 0xad, 0x44, 0x68, 0xb3, 0x22, 0x34, 0x19, 0xec, 0xfe, 0xf0, 0xc2, 0x33, 0x2b, 0x61, 0xbb, + 0xe2, 0xa9, 0xd3, 0x3d, 0xf4, 0x16, 0xed, 0xa2, 0x8a, 0xee, 0xc8, 0x86, 0xdb, 0xe2, 0x37, 0x06, + 0x84, 0x2f, 0xb4, 0xe7, 0xe0, 0x01, 0xbd, 0x03, 0x3b, 0xfb, 0x83, 0x41, 0x15, 0x89, 0xff, 0x7f, + 0xff, 0xfb, 0x3f, 0x55, 0x64, 0x7e, 0xa3, 0x54, 0xe3, 0x24, 0xeb, 0x10, 0x90, 0x49, 0x1d, 0x20, + 0x5a, 0xc7, 0xb2, 0xd6, 0xc1, 0xc4, 0x6e, 0x5a, 0xd3, 0xec, 0x97, 0xd6, 0x34, 0x9f, 0x88, 0x37, + 0x56, 0x7a, 0xa6, 0x4d, 0x3d, 0xf3, 0x1e, 0x4f, 0xf4, 0xb9, 0xc9, 0xbe, 0xd9, 0x7e, 0xec, 0xd5, + 0x29, 0xbe, 0xc6, 0xa6, 0x52, 0x36, 0xcd, 0xdb, 0xeb, 0x7c, 0x5f, 0x7e, 0x7f, 0x83, 0x36, 0xa8, + 0x1e, 0x4c, 0x68, 0xff, 0xa2, 0x0d, 0x36, 0xd3, 0x9b, 0x70, 0x50, 0x42, 0x9a, 0x75, 0xde, 0xeb, + 0x4c, 0x47, 0xa7, 0xce, 0x74, 0xca, 0x73, 0x79, 0x7f, 0xf4, 0x00, 0xa3, 0xfd, 0x76, 0x23, 0xcf, + 0x8f, 0x66, 0x8e, 0xe3, 0x61, 0x4e, 0x6d, 0x6e, 0x3f, 0x53, 0x91, 0x69, 0x74, 0xa7, 0x69, 0x5a, + 0xa7, 0x89, 0x70, 0xce, 0xba, 0x51, 0xa5, 0x3b, 0xbb, 0x83, 0xf6, 0x63, 0x3a, 0xf9, 0x01, 0x7a, + 0x9f, 0x19, 0x31, 0x09, 0xbb, 0xd3, 0x28, 0xfe, 0x73, 0x8e, 0x3d, 0x76, 0x4c, 0x4c, 0x7c, 0x86, + 0xa9, 0x45, 0x3c, 0x8f, 0x38, 0x76, 0xf5, 0xbb, 0x4d, 0xa4, 0x8f, 0xd6, 0x8b, 0x3e, 0xa6, 0x33, + 0x15, 0xf8, 0x79, 0x67, 0x68, 0xd9, 0x73, 0xc2, 0xf3, 0x81, 0x05, 0xa7, 0xc5, 0x57, 0x01, 0x76, + 0x8f, 0xb0, 0xe9, 0xe1, 0x0a, 0xdd, 0x09, 0x0c, 0x3f, 0x6c, 0x11, 0xf6, 0x09, 0x7b, 0x9e, 0x3e, + 0xc5, 0xb0, 0x92, 0x80, 0x66, 0xd5, 0xbb, 0x31, 0xa6, 0xc3, 0x7b, 0x85, 0x96, 0x63, 0xe4, 0x75, + 0xb6, 0xeb, 0xc1, 0xfb, 0x2c, 0xe8, 0xcc, 0x4f, 0x20, 0x0f, 0x78, 0x00, 0xf1, 0x43, 0x1e, 0x90, + 0x77, 0xe7, 0x31, 0x6c, 0x21, 0x77, 0x81, 0x48, 0xab, 0x89, 0x48, 0x9c, 0xd6, 0xb5, 0xed, 0xff, + 0xd3, 0x7b, 0xd4, 0x7b, 0x68, 0xee, 0xe5, 0x2d, 0xa5, 0x13, 0xdb, 0x2d, 0x75, 0xdf, 0x4b, 0x45, + 0x4b, 0x47, 0x5c, 0x22, 0xcd, 0x4e, 0x7d, 0x96, 0xe5, 0x78, 0xa5, 0x6b, 0x96, 0xcc, 0xac, 0xcd, + 0xae, 0x6e, 0x89, 0x64, 0x61, 0x30, 0x04, 0x5e, 0x4b, 0x57, 0x9e, 0x80, 0x6d, 0xa6, 0xb9, 0x0e, + 0xb1, 0x59, 0x70, 0xc1, 0xd6, 0x6e, 0x59, 0x19, 0xac, 0xf5, 0x61, 0x3e, 0x74, 0xe4, 0xa5, 0xe5, + 0x1f, 0xe1, 0x09, 0x71, 0x5a, 0xf8, 0x43, 0xc9, 0x79, 0xe9, 0x52, 0x07, 0x38, 0x9a, 0xdd, 0x21, + 0xdd, 0x24, 0xba, 0xe7, 0xd3, 0x3c, 0x41, 0x7a, 0x8d, 0x95, 0xa1, 0x7f, 0x0a, 0xd0, 0xe0, 0x98, + 0x14, 0x71, 0x34, 0xca, 0x10, 0x65, 0x1d, 0x9a, 0x52, 0x0a, 0x43, 0x9d, 0xe6, 0x44, 0x0f, 0xe6, + 0x1a, 0x66, 0x1e, 0xd3, 0x55, 0x1f, 0xc3, 0x99, 0xee, 0x0d, 0xd3, 0x4f, 0x07, 0x6b, 0x00, 0x36, + 0x5f, 0x75, 0x0c, 0xb3, 0x0e, 0x57, 0xab, 0x0f, 0xff, 0xdc, 0xb5, 0x86, 0xe9, 0xa7, 0xaa, 0x35, + 0x40, 0xf9, 0xc4, 0x69, 0x28, 0x43, 0x89, 0x33, 0xcb, 0x9a, 0xc3, 0xca, 0x0f, 0x2e, 0x19, 0x16, + 0x1c, 0x2a, 0x56, 0x1f, 0x5b, 0xec, 0xf0, 0xa1, 0x61, 0x23, 0xc7, 0x8c, 0x35, 0xc5, 0xfe, 0x91, + 0xe3, 0xab, 0x86, 0x59, 0x67, 0x59, 0xd5, 0x86, 0x2f, 0x78, 0x3f, 0xed, 0xfc, 0xac, 0xfa, 0x90, + 0x7d, 0xce, 0x4f, 0x3f, 0x7a, 0xac, 0x36, 0x74, 0xc1, 0xf7, 0x69, 0x47, 0x8e, 0xd5, 0xa7, 0xf8, + 0x0a, 0xd7, 0x17, 0x9e, 0xe8, 0xd5, 0x18, 0x4e, 0x9f, 0xe7, 0xf3, 0x4f, 0xa3, 0xae, 0x8d, 0x2c, + 0xc1, 0xf2, 0x0d, 0x9c, 0xc1, 0xd5, 0x20, 0xd3, 0x9b, 0x73, 0x83, 0x2c, 0x78, 0xbe, 0x51, 0x76, + 0xe7, 0x90, 0x05, 0xb7, 0xbb, 0xcd, 0x31, 0xba, 0x80, 0xe9, 0xf3, 0xb9, 0xdb, 0x24, 0x8b, 0x73, + 0xb8, 0x82, 0xc3, 0x69, 0x73, 0xcc, 0x2d, 0x28, 0xbb, 0xca, 0xdb, 0x2d, 0xb1, 0x75, 0x14, 0x5b, + 0xc0, 0xd5, 0x2d, 0xc8, 0x70, 0x8e, 0x25, 0xc1, 0xce, 0x93, 0xb5, 0x90, 0xdd, 0x91, 0x54, 0xad, + 0x4f, 0xfa, 0x6d, 0x60, 0xf2, 0x0d, 0xd3, 0x73, 0x11, 0x6b, 0xe3, 0xe1, 0xa1, 0xe1, 0x38, 0x8e, + 0x63, 0x25, 0x4d, 0xb1, 0x0e, 0x12, 0xe7, 0x1a, 0xd3, 0x2f, 0x41, 0x80, 0x52, 0x14, 0x4b, 0x56, + 0xfa, 0x62, 0x1d, 0x5c, 0x73, 0xbe, 0xed, 0xff, 0x25, 0x12, 0x0d, 0x15, 0xc3, 0x98, 0x9f, 0xe0, + 0xd8, 0x14, 0xde, 0x0f, 0xb6, 0x91, 0x89, 0x35, 0x99, 0x00, 0x59, 0x07, 0x67, 0x6c, 0x8f, 0x6e, + 0x81, 0x31, 0xfb, 0x98, 0xaa, 0xcd, 0x4a, 0x6e, 0x3c, 0xe1, 0x8b, 0xf0, 0xbf, 0x64, 0xb2, 0x14, + 0xf9, 0x49, 0x3c, 0x12, 0xde, 0xf0, 0x7a, 0x4e, 0x43, 0xe9, 0xc3, 0x93, 0xf2, 0x3b, 0x9e, 0x75, + 0x56, 0x57, 0xad, 0x9b, 0x05, 0xf9, 0x4d, 0x71, 0x47, 0x93, 0xa9, 0xba, 0x58, 0x50, 0xd6, 0xc9, + 0xa8, 0x2e, 0x16, 0x6c, 0x00, 0x8c, 0xba, 0x78, 0x50, 0x5d, 0x3c, 0xa8, 0x2e, 0x1e, 0x4c, 0x12, + 0x4c, 0x5d, 0x3c, 0x58, 0xff, 0xe2, 0x41, 0x75, 0x01, 0xa0, 0xf4, 0x18, 0x94, 0xbb, 0xa2, 0xf1, + 0x01, 0x2f, 0x16, 0x94, 0xc1, 0x14, 0x5b, 0x6b, 0xa9, 0xab, 0x08, 0xe5, 0xa0, 0xa8, 0xab, 0x08, + 0xd5, 0x55, 0x84, 0xea, 0x2a, 0xc2, 0xfa, 0x9c, 0xac, 0xae, 0x22, 0x54, 0x57, 0x11, 0xaa, 0xab, + 0x08, 0x0b, 0x08, 0xb6, 0xce, 0x57, 0x11, 0xaa, 0x7b, 0x08, 0xd5, 0x3d, 0x84, 0x3f, 0xde, 0x3d, + 0x84, 0x19, 0xce, 0x9b, 0x96, 0xef, 0x1a, 0xac, 0x2c, 0xbd, 0xd4, 0x3d, 0x84, 0xea, 0x1e, 0x42, + 0x75, 0x0f, 0x61, 0x0a, 0x22, 0x75, 0x0f, 0x61, 0x4b, 0x76, 0x92, 0xba, 0x87, 0x50, 0xdd, 0x43, + 0x58, 0x67, 0x6a, 0xab, 0x7b, 0x08, 0x9b, 0xbc, 0x87, 0x50, 0xdd, 0x31, 0x88, 0xd4, 0x1d, 0x83, + 0xea, 0x8e, 0xc1, 0x26, 0xe7, 0x65, 0xde, 0x94, 0x54, 0x77, 0x03, 0x56, 0x65, 0xad, 0xf5, 0xb9, + 0x1b, 0x50, 0x5d, 0xff, 0xa7, 0xae, 0xff, 0xab, 0x1b, 0x4e, 0x54, 0xfc, 0x66, 0x91, 0xf8, 0xe7, + 0xe7, 0x89, 0x65, 0xe8, 0x17, 0xee, 0x71, 0x88, 0xe5, 0x93, 0xc9, 0xdf, 0x99, 0x97, 0xda, 0xfb, + 0x99, 0x73, 0xf3, 0xde, 0x61, 0xef, 0x6c, 0x03, 0xfe, 0x86, 0xff, 0x72, 0x96, 0xdb, 0x8b, 0x60, + 0xa4, 0xec, 0x98, 0xa5, 0xb8, 0x8b, 0x22, 0x7d, 0xc9, 0xeb, 0xf0, 0x0c, 0x47, 0xff, 0x3a, 0xb5, + 0xfc, 0x15, 0xfb, 0x6a, 0x26, 0x8c, 0x90, 0x48, 0x26, 0xfe, 0x0d, 0x46, 0x7c, 0x43, 0x2f, 0x58, + 0x3c, 0xbe, 0xf9, 0x2c, 0x58, 0xbb, 0xe0, 0x72, 0xc5, 0xdc, 0x61, 0x4b, 0xf6, 0x29, 0xfe, 0x53, + 0x80, 0xf4, 0x02, 0xd4, 0x53, 0x94, 0x85, 0x08, 0x4f, 0x4f, 0x07, 0x95, 0x30, 0x44, 0xfb, 0x11, + 0xbf, 0x0d, 0x9d, 0xdb, 0xb6, 0x88, 0x1c, 0x7b, 0x06, 0x0a, 0xd5, 0x8e, 0x07, 0x1d, 0x2d, 0x0b, + 0x61, 0x17, 0xeb, 0x2c, 0x79, 0x35, 0xd8, 0x22, 0xf2, 0x11, 0x20, 0x23, 0xc3, 0x61, 0xb1, 0xb4, + 0x6d, 0xc7, 0xbe, 0xa0, 0x64, 0x3a, 0xc5, 0x74, 0x75, 0x84, 0x45, 0x94, 0x84, 0x3f, 0x96, 0x9d, + 0x51, 0xdc, 0xe1, 0xc5, 0xc3, 0x84, 0xba, 0xc2, 0xa7, 0x02, 0x1f, 0x07, 0x7f, 0x87, 0x7f, 0xfe, + 0x4b, 0x40, 0x86, 0x9f, 0x5e, 0xbc, 0x48, 0xb3, 0xb7, 0x42, 0x38, 0x2f, 0x3b, 0xe8, 0x85, 0xff, + 0xcb, 0x0b, 0xfe, 0x4b, 0xde, 0x98, 0x73, 0x78, 0x2f, 0x5e, 0x6c, 0x25, 0x37, 0x4c, 0xf8, 0x6b, + 0xf4, 0x0f, 0xb4, 0x97, 0x86, 0x45, 0x7c, 0x7b, 0x93, 0x48, 0x4a, 0x4f, 0x80, 0x8d, 0x90, 0x2f, + 0x68, 0x54, 0x2c, 0x73, 0x4b, 0x72, 0x68, 0x76, 0xd2, 0x86, 0x26, 0x36, 0x1f, 0xd3, 0xc7, 0x22, + 0x87, 0xdc, 0x60, 0x35, 0xd8, 0xc0, 0xc3, 0x2b, 0xf1, 0x64, 0x5d, 0xf8, 0x97, 0xc7, 0x73, 0x7a, + 0x1a, 0x75, 0x6e, 0x8e, 0x80, 0xd9, 0x59, 0xb7, 0x07, 0x04, 0xc8, 0xb0, 0x13, 0x9e, 0x3f, 0x47, + 0xcf, 0x02, 0x37, 0x19, 0xf1, 0xce, 0x1c, 0xca, 0x8e, 0x7c, 0xb0, 0xd8, 0xe8, 0x8a, 0xfd, 0xa4, + 0x67, 0xd6, 0xa1, 0x89, 0xe1, 0x53, 0xf0, 0x1a, 0xda, 0x9d, 0xf0, 0x9e, 0x19, 0xc4, 0xcb, 0x6a, + 0x49, 0x16, 0xdc, 0x74, 0xe2, 0x85, 0x18, 0xc0, 0xce, 0x8a, 0xf4, 0x14, 0x54, 0xdb, 0x14, 0x03, + 0x59, 0x78, 0x33, 0x22, 0x54, 0x19, 0xc1, 0xa8, 0xbc, 0x77, 0x6c, 0x9c, 0x24, 0x8a, 0x3f, 0xe2, + 0x36, 0x4e, 0x1b, 0xed, 0xd5, 0x89, 0x90, 0xa5, 0x0f, 0x56, 0xc7, 0x3c, 0x38, 0x6b, 0x0a, 0xde, + 0x27, 0x5c, 0xe0, 0x09, 0x6e, 0x59, 0xd0, 0x7e, 0x6c, 0x62, 0x9d, 0x26, 0x43, 0xe9, 0x16, 0xd3, + 0x40, 0x37, 0x0c, 0xca, 0xe3, 0xe5, 0x0c, 0x7c, 0xed, 0xa5, 0x35, 0x95, 0x97, 0xb1, 0x41, 0x16, + 0x02, 0x66, 0x5e, 0xe4, 0x9f, 0xbc, 0xfc, 0xbf, 0x32, 0x4b, 0xed, 0x42, 0x31, 0x51, 0x1a, 0xe6, + 0x08, 0xfa, 0x27, 0x9f, 0x31, 0x02, 0x3e, 0xfc, 0xf6, 0xaf, 0x4e, 0x6a, 0x25, 0x0f, 0xb3, 0xdf, + 0x7c, 0xe8, 0xc1, 0x10, 0x01, 0x89, 0x0f, 0x7d, 0xe9, 0xdb, 0xe5, 0x55, 0x57, 0x59, 0x85, 0xd3, + 0x35, 0xa8, 0xa5, 0x99, 0xd8, 0x9e, 0xb2, 0x99, 0x60, 0xa9, 0x0c, 0x61, 0x17, 0xc2, 0x7f, 0xf1, + 0x46, 0xa2, 0x41, 0x31, 0xb2, 0x11, 0x30, 0xb2, 0x29, 0xeb, 0x0e, 0xb6, 0x4b, 0x64, 0x5c, 0x76, + 0xbe, 0xe3, 0xbb, 0xce, 0x30, 0x44, 0x2a, 0x9f, 0x3e, 0xdc, 0x11, 0x76, 0x34, 0xd4, 0xe4, 0x8d, + 0x93, 0x8b, 0xc2, 0x5e, 0x25, 0x4c, 0x90, 0xb7, 0xcd, 0xe9, 0xc3, 0x87, 0x00, 0x3a, 0x00, 0xcb, + 0xc8, 0xdf, 0x27, 0xdd, 0xce, 0x97, 0x0f, 0xa3, 0xa3, 0x4e, 0x0f, 0x3d, 0x83, 0x15, 0xe5, 0xcb, + 0x4c, 0x1f, 0x50, 0x13, 0xfd, 0x16, 0x1c, 0xf0, 0x38, 0xbd, 0x2e, 0xe8, 0x14, 0xac, 0x6f, 0xc0, + 0x7a, 0xec, 0x6e, 0x46, 0x8f, 0xf2, 0x66, 0x75, 0xfb, 0xa2, 0x76, 0x45, 0x8a, 0x70, 0xa3, 0x37, + 0xee, 0x99, 0x88, 0xa8, 0xa9, 0xfb, 0xa8, 0x82, 0x80, 0x89, 0xfb, 0x81, 0x52, 0x9e, 0x0f, 0x1e, + 0x27, 0x74, 0xe6, 0xc1, 0x00, 0x9d, 0xc3, 0xd3, 0x0f, 0x48, 0x54, 0x81, 0x75, 0x11, 0xb1, 0x27, + 0xce, 0x76, 0x46, 0xd6, 0x7c, 0x19, 0xf1, 0xec, 0x9b, 0xf7, 0xd1, 0x76, 0xf9, 0xe6, 0x50, 0x9a, + 0xda, 0x9a, 0x08, 0x3d, 0xa9, 0x59, 0xa2, 0xca, 0xf9, 0x6d, 0x52, 0x0a, 0x97, 0x41, 0x1b, 0xac, + 0xae, 0x4b, 0xe1, 0xd5, 0xfd, 0x3a, 0xd9, 0x88, 0x17, 0xbe, 0xb4, 0x15, 0x7d, 0x6e, 0x0c, 0x83, + 0x2b, 0xad, 0xc5, 0x97, 0x34, 0x3d, 0x7f, 0x90, 0xa6, 0xe8, 0xe3, 0x66, 0x75, 0xa8, 0xe9, 0xe3, + 0x6f, 0x8b, 0x35, 0x3d, 0xac, 0xd7, 0x23, 0xe6, 0xf2, 0x52, 0x72, 0x2f, 0xd8, 0x88, 0xf3, 0x94, + 0x90, 0xe1, 0xbd, 0xf4, 0xea, 0xdc, 0xe4, 0xd5, 0xc4, 0xd9, 0x01, 0xdc, 0xb4, 0xfa, 0x8f, 0x57, + 0x13, 0xfe, 0xa7, 0x23, 0x69, 0xca, 0x40, 0xab, 0xe6, 0x24, 0xb3, 0xdb, 0x83, 0x72, 0xf6, 0x4d, + 0x71, 0xa7, 0xfb, 0x7d, 0x21, 0x53, 0x9f, 0x45, 0xc8, 0xad, 0x05, 0x80, 0xf9, 0x44, 0x4a, 0x21, + 0x09, 0x97, 0xb4, 0xb9, 0x44, 0x59, 0x11, 0xc2, 0x80, 0xa3, 0x36, 0x71, 0xfb, 0xfd, 0x7b, 0x79, + 0x02, 0x2e, 0x78, 0xb0, 0x01, 0x12, 0xae, 0x9a, 0xeb, 0x57, 0x8e, 0x63, 0xa2, 0x70, 0x52, 0x25, + 0xd9, 0x2b, 0x5e, 0x6a, 0x31, 0x05, 0x32, 0x8b, 0x71, 0xdb, 0xff, 0x06, 0xd6, 0xcc, 0xd0, 0x8a, + 0x11, 0x5f, 0xf1, 0xc7, 0x4e, 0xfe, 0xca, 0xe1, 0x55, 0x32, 0xe9, 0x32, 0xfd, 0x2a, 0xc5, 0xaf, + 0xea, 0xef, 0x84, 0xf4, 0xfb, 0x33, 0x62, 0x60, 0x98, 0xbf, 0x57, 0xb0, 0x18, 0xa3, 0xc2, 0x20, + 0xba, 0x12, 0x90, 0xd0, 0x54, 0x9f, 0x4f, 0xf1, 0x6a, 0xa4, 0x8c, 0xbf, 0x52, 0xba, 0xf0, 0x41, + 0x2e, 0xcf, 0x57, 0x59, 0x5d, 0xa8, 0x66, 0xaa, 0xa4, 0x0c, 0x08, 0x21, 0x65, 0xb7, 0xb2, 0xb5, + 0x40, 0x46, 0x5f, 0x38, 0xa3, 0xbd, 0x12, 0x7d, 0x81, 0x05, 0x84, 0xfd, 0x37, 0xc6, 0x43, 0xe4, + 0x4d, 0x6e, 0xcd, 0xf1, 0xdc, 0x86, 0x09, 0xa1, 0xd6, 0x0d, 0x60, 0x44, 0xbe, 0xa3, 0x03, 0xb0, + 0x4f, 0x71, 0xaa, 0x35, 0x95, 0x67, 0x74, 0x2f, 0xd9, 0xef, 0x54, 0xf7, 0xd8, 0xf1, 0xcd, 0xf9, + 0xad, 0x70, 0x98, 0x78, 0xdd, 0x9e, 0x36, 0xbb, 0xb9, 0xb8, 0x73, 0xf1, 0x88, 0x81, 0x6d, 0x29, + 0x88, 0x1a, 0xda, 0x19, 0x19, 0x2e, 0x85, 0x49, 0x77, 0xc5, 0x09, 0x92, 0xe7, 0xde, 0x86, 0xf2, + 0xd1, 0x41, 0x17, 0x18, 0x0a, 0x77, 0xa7, 0x97, 0x49, 0x24, 0xde, 0x22, 0xf5, 0x84, 0x53, 0x37, + 0xdf, 0x41, 0x13, 0xc7, 0x93, 0x73, 0xd6, 0x9d, 0xd4, 0xc9, 0x38, 0x69, 0x0d, 0x97, 0xda, 0x79, + 0x4b, 0xcd, 0x9b, 0xe9, 0xf7, 0x83, 0xd1, 0x8b, 0x3a, 0xa5, 0x31, 0xb2, 0x73, 0x72, 0xbe, 0x32, + 0xba, 0x95, 0x1f, 0x7f, 0x21, 0x7d, 0xe8, 0x4f, 0x5a, 0xf7, 0xe4, 0xf7, 0x29, 0xa2, 0xe3, 0x13, + 0x26, 0xf9, 0x88, 0x01, 0x6a, 0x6c, 0x53, 0x29, 0xd1, 0xeb, 0xe2, 0x33, 0x95, 0x4b, 0x1d, 0x77, + 0x04, 0xbd, 0x8f, 0xb9, 0xab, 0xcb, 0x9c, 0xfa, 0x14, 0xed, 0xbc, 0x0d, 0x32, 0x9e, 0x5a, 0xc4, + 0xd6, 0xcd, 0x23, 0xcb, 0xe8, 0x76, 0x00, 0xe6, 0x65, 0xe8, 0x5d, 0x47, 0x3b, 0x1d, 0x39, 0x3f, + 0x7a, 0xe9, 0x73, 0x9a, 0x64, 0x1b, 0x30, 0x90, 0x6d, 0x40, 0x95, 0x01, 0x91, 0x3b, 0xe6, 0x2b, + 0xcd, 0x5f, 0x9a, 0x9f, 0xc5, 0x28, 0xd7, 0xa8, 0x1c, 0x97, 0x6a, 0x29, 0xae, 0xbb, 0xcf, 0x90, + 0x71, 0x60, 0x26, 0x84, 0x6a, 0x2f, 0x8f, 0x35, 0xe4, 0x53, 0xe4, 0x72, 0x10, 0x2d, 0x34, 0xa7, + 0x34, 0xa6, 0xfc, 0xfb, 0x4e, 0xef, 0x4b, 0x3b, 0x01, 0xb3, 0x8c, 0x0b, 0xca, 0xb2, 0x4c, 0x8b, + 0xfd, 0x86, 0x6d, 0xb3, 0x5c, 0xfd, 0x95, 0x46, 0x17, 0x9e, 0x37, 0xac, 0x5b, 0x2e, 0x70, 0xf9, + 0xf9, 0x05, 0x32, 0xf8, 0xe9, 0x83, 0x37, 0x33, 0xec, 0xeb, 0xcb, 0xb1, 0x03, 0x12, 0x96, 0x6f, + 0xae, 0x19, 0xdc, 0xb2, 0xe3, 0xda, 0x12, 0x11, 0x2f, 0x48, 0x16, 0xc4, 0xc6, 0x36, 0x72, 0x44, + 0x8e, 0x8c, 0x9d, 0x06, 0x12, 0x60, 0x99, 0xfe, 0x21, 0x86, 0xbc, 0x8a, 0x0e, 0x8b, 0x84, 0x6b, + 0xac, 0xe5, 0xeb, 0xda, 0x73, 0xee, 0x78, 0xfe, 0x1d, 0x56, 0xa5, 0xdd, 0xcc, 0x50, 0xe8, 0x90, + 0x6c, 0xfc, 0xb6, 0xdc, 0xf4, 0x69, 0x13, 0x1b, 0x5d, 0xb1, 0x29, 0x91, 0x15, 0x51, 0x96, 0x52, + 0x72, 0x84, 0xd9, 0xdc, 0xcd, 0x28, 0x9e, 0xb8, 0x28, 0xf7, 0xc4, 0x9a, 0xf3, 0x93, 0x1a, 0xbb, + 0x83, 0xdb, 0x63, 0x78, 0x8a, 0xab, 0x5c, 0x59, 0xde, 0xc7, 0x9c, 0x06, 0xe5, 0x4a, 0x2e, 0x4e, + 0xa5, 0x74, 0xbb, 0x2d, 0x5f, 0x8d, 0x16, 0x53, 0xab, 0x02, 0x1d, 0xca, 0xcf, 0x89, 0xfb, 0xad, + 0xff, 0x07, 0xa0, 0xd2, 0xc9, 0x84, }; diff --git a/qmlui/app/qmlui_luna_v1.h b/qmlui/app/qmlui_luna_v1.h index 77115dfd..de678dc6 100644 --- a/qmlui/app/qmlui_luna_v1.h +++ b/qmlui/app/qmlui_luna_v1.h @@ -8,7 +8,7 @@ #include // Constants -#define DATA_QML_APP_SIZE 7202 +#define DATA_QML_APP_SIZE 7270 // Variables extern uint8_t data_qml_app[];