mirror of https://github.com/rusefi/bldc.git
Merge pull request #556 from luna-cycle/luna_m600
luna_m600: Add hardware support files
This commit is contained in:
commit
db7b39e0b7
|
@ -5,7 +5,8 @@ HWSRC = \
|
||||||
hwconf/drv8305.c \
|
hwconf/drv8305.c \
|
||||||
hwconf/drv8320s.c \
|
hwconf/drv8320s.c \
|
||||||
hwconf/drv8323s.c \
|
hwconf/drv8323s.c \
|
||||||
hwconf/luna/luna_display_serial.c \
|
hwconf/luna/bbshd/luna_display_serial.c \
|
||||||
|
hwconf/luna/m600/luna_m600_display.c \
|
||||||
hwconf/si8900.c \
|
hwconf/si8900.c \
|
||||||
hwconf/shutdown.c \
|
hwconf/shutdown.c \
|
||||||
|
|
||||||
|
|
|
@ -21,12 +21,14 @@
|
||||||
#include "ch.h"
|
#include "ch.h"
|
||||||
#include "hal.h"
|
#include "hal.h"
|
||||||
#include "stm32f4xx_conf.h"
|
#include "stm32f4xx_conf.h"
|
||||||
#include "utils_math.h"
|
#include "utils.h"
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include "mc_interface.h"
|
#include "mc_interface.h"
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
#include "commands.h"
|
#include "commands.h"
|
||||||
#include "stdio.h"
|
#include "stdio.h"
|
||||||
|
#include "app.h"
|
||||||
|
#include "mempools.h"
|
||||||
|
|
||||||
#define EEPROM_ADDR_INITIAL_ASSIST_LEVEL 0
|
#define EEPROM_ADDR_INITIAL_ASSIST_LEVEL 0
|
||||||
#define EEPROM_ADDR_MOTOR_HAS_PTC_SENSOR 1
|
#define EEPROM_ADDR_MOTOR_HAS_PTC_SENSOR 1
|
||||||
|
@ -42,6 +44,7 @@ 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_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_has_PTC_sensor(int argc, const char **argv);
|
||||||
static void terminal_cmd_set_bbshd_use_fixed_throttle_level(int argc, const char **argv);
|
static void terminal_cmd_set_bbshd_use_fixed_throttle_level(int argc, const char **argv);
|
||||||
|
static void hw_override_pairing_done(void);
|
||||||
|
|
||||||
int8_t hw_read_initial_assist_level(void);
|
int8_t hw_read_initial_assist_level(void);
|
||||||
bool hw_bbshd_has_PTC_sensor(void);
|
bool hw_bbshd_has_PTC_sensor(void);
|
||||||
|
@ -139,6 +142,7 @@ void hw_init_gpio(void) {
|
||||||
|
|
||||||
int8_t initial_assist_level = hw_read_initial_assist_level();
|
int8_t initial_assist_level = hw_read_initial_assist_level();
|
||||||
motor_has_PTC_sensor = true;// hw_bbshd_has_PTC_sensor();
|
motor_has_PTC_sensor = true;// hw_bbshd_has_PTC_sensor();
|
||||||
|
hw_override_pairing_done();
|
||||||
|
|
||||||
luna_display_serial_start(initial_assist_level);
|
luna_display_serial_start(initial_assist_level);
|
||||||
}
|
}
|
||||||
|
@ -275,6 +279,7 @@ void hw_try_restore_i2c(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static float wheel_rpm_filtered = 0;
|
static float wheel_rpm_filtered = 0;
|
||||||
|
static float trip_odometer = 0;
|
||||||
|
|
||||||
void hw_update_speed_sensor(void) {
|
void hw_update_speed_sensor(void) {
|
||||||
static float wheel_rpm = 0;
|
static float wheel_rpm = 0;
|
||||||
|
@ -289,12 +294,14 @@ void hw_update_speed_sensor(void) {
|
||||||
float revolution_duration = current_time - last_sensor_event_time;
|
float revolution_duration = current_time - last_sensor_event_time;
|
||||||
|
|
||||||
if (revolution_duration > 0.05) { //ignore periods <50ms
|
if (revolution_duration > 0.05) { //ignore periods <50ms
|
||||||
|
|
||||||
last_sensor_event_time = current_time;
|
last_sensor_event_time = current_time;
|
||||||
|
|
||||||
wheel_rpm = 60.0 / revolution_duration;
|
wheel_rpm = 60.0 / revolution_duration;
|
||||||
// Apply averaging filter
|
|
||||||
UTILS_LP_FAST(wheel_rpm_filtered, (float)wheel_rpm, 0.5);
|
UTILS_LP_FAST(wheel_rpm_filtered, (float)wheel_rpm, 0.5);
|
||||||
|
|
||||||
|
|
||||||
|
const volatile mc_configuration *conf = mc_interface_get_configuration();
|
||||||
|
trip_odometer += conf->si_wheel_diameter * M_PI;
|
||||||
|
//trip_odometer += mc_interface_get_configuration()->si_wheel_diameter * M_PI; test this
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// After 3 seconds without sensor signal, set RPM as zero
|
// After 3 seconds without sensor signal, set RPM as zero
|
||||||
|
@ -312,6 +319,14 @@ float hw_get_speed(void) {
|
||||||
return speed;
|
return speed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Get trip distance in meters */
|
||||||
|
float hw_get_distance(void) {
|
||||||
|
return trip_odometer;
|
||||||
|
}
|
||||||
|
|
||||||
|
float hw_get_distance_abs(void) {
|
||||||
|
return trip_odometer;
|
||||||
|
}
|
||||||
/* Gear Shift sensor support
|
/* Gear Shift sensor support
|
||||||
* Read the gear sensor and use it to override the brake adc signal to reduce motor
|
* Read the gear sensor and use it to override the brake adc signal to reduce motor
|
||||||
* power during shifting to extend gearing life.
|
* power during shifting to extend gearing life.
|
||||||
|
@ -548,3 +563,17 @@ bool hw_bbshd_has_fixed_throttle_level(void) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Users are getting locked out because they don't know what pairing means. Lets disable the pairing
|
||||||
|
static void hw_override_pairing_done(void) {
|
||||||
|
if( app_get_configuration()->pairing_done == true) {
|
||||||
|
app_configuration *appconf = mempools_alloc_appconf();
|
||||||
|
*appconf = *app_get_configuration();
|
||||||
|
appconf->pairing_done = false;
|
||||||
|
|
||||||
|
conf_general_store_app_configuration(appconf);
|
||||||
|
app_set_configuration(appconf);
|
||||||
|
|
||||||
|
mempools_free_appconf(appconf);
|
||||||
|
}
|
||||||
|
}
|
|
@ -22,11 +22,11 @@
|
||||||
#define HW_LUNA_BBSHD_H_
|
#define HW_LUNA_BBSHD_H_
|
||||||
|
|
||||||
#define HW_NAME "LUNA_BBSHD"
|
#define HW_NAME "LUNA_BBSHD"
|
||||||
#include "mcconf_luna_bbshd_52v.h"
|
#include "mcconf_luna_bbshd.h"
|
||||||
#include "appconf_luna_bbshd.h"
|
#include "appconf_luna_bbshd.h"
|
||||||
|
|
||||||
#define QMLUI_SOURCE_HW "hwconf/luna/qmlui_luna_v1.c"
|
#define QMLUI_SOURCE_HW "hwconf/luna/bbshd/qmlui_luna_bbshd.c"
|
||||||
#define QMLUI_HEADER_HW "hwconf/luna/qmlui_luna_v1.h"
|
#define QMLUI_HEADER_HW "hwconf/luna/bbshd/qmlui_luna_bbshd.h"
|
||||||
#define QMLUI_HW_FULLSCREEN
|
#define QMLUI_HW_FULLSCREEN
|
||||||
|
|
||||||
// HW properties
|
// HW properties
|
||||||
|
@ -120,6 +120,11 @@
|
||||||
// Voltage on ADC channel
|
// Voltage on ADC channel
|
||||||
#define ADC_VOLTS(ch) ((float)ADC_Value[ch] / 4096.0 * V_REG)
|
#define ADC_VOLTS(ch) ((float)ADC_Value[ch] / 4096.0 * V_REG)
|
||||||
|
|
||||||
|
//log throttle data
|
||||||
|
#define NTC_TEMP_MOS2() ((float)ADC_VOLTS(ADC_IND_EXT))
|
||||||
|
// log gate driver supply voltage
|
||||||
|
#define NTC_TEMP_MOS3() GET_GATE_DRIVER_SUPPLY_VOLTAGE()
|
||||||
|
|
||||||
// Double samples in beginning and end for positive current measurement.
|
// Double samples in beginning and end for positive current measurement.
|
||||||
// Useful when the shunt sense traces have noise that causes offset.
|
// Useful when the shunt sense traces have noise that causes offset.
|
||||||
#ifndef CURR1_DOUBLE_SAMPLE
|
#ifndef CURR1_DOUBLE_SAMPLE
|
||||||
|
@ -255,6 +260,8 @@
|
||||||
// HW-specific functions
|
// HW-specific functions
|
||||||
void hw_update_speed_sensor(void);
|
void hw_update_speed_sensor(void);
|
||||||
float hw_get_speed(void);
|
float hw_get_speed(void);
|
||||||
|
float hw_get_distance(void);
|
||||||
|
float hw_get_distance_abs(void);
|
||||||
void hw_brake_override(float *brake);
|
void hw_brake_override(float *brake);
|
||||||
float hw_read_motor_temp(float beta);
|
float hw_read_motor_temp(float beta);
|
||||||
bool hw_bbshd_has_fixed_throttle_level(void);
|
bool hw_bbshd_has_fixed_throttle_level(void);
|
|
@ -26,7 +26,7 @@
|
||||||
#include "packet.h"
|
#include "packet.h"
|
||||||
#include "commands.h"
|
#include "commands.h"
|
||||||
#include "mc_interface.h"
|
#include "mc_interface.h"
|
||||||
#include "utils_math.h"
|
#include "utils.h"
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "comm_can.h"
|
#include "comm_can.h"
|
|
@ -478,7 +478,7 @@
|
||||||
#define MCCONF_SI_GEAR_RATIO 7
|
#define MCCONF_SI_GEAR_RATIO 7
|
||||||
|
|
||||||
// Wheel Diameter
|
// Wheel Diameter
|
||||||
#define MCCONF_SI_WHEEL_DIAMETER 0.66
|
#define MCCONF_SI_WHEEL_DIAMETER 0.572 //banana bike wheel outer diameter
|
||||||
|
|
||||||
// Battery Type
|
// Battery Type
|
||||||
#define MCCONF_SI_BATTERY_TYPE 0
|
#define MCCONF_SI_BATTERY_TYPE 0
|
|
@ -0,0 +1,379 @@
|
||||||
|
// This file is autogenerated by VESC Tool
|
||||||
|
|
||||||
|
#include "qmlui_luna_bbshd.h"
|
||||||
|
|
||||||
|
uint8_t data_qml_hw[5953] = {
|
||||||
|
0x00, 0x01, 0x73, 0xa7, 0x78, 0xda, 0xed, 0x3d, 0xdb, 0x72, 0xdb, 0xb8, 0x92, 0xef, 0xfe, 0x0a,
|
||||||
|
0x8c, 0xb6, 0x76, 0x56, 0x3e, 0xeb, 0x43, 0x49, 0xbe, 0x65, 0x46, 0x5b, 0xd9, 0x54, 0xe2, 0xc4,
|
||||||
|
0x89, 0xab, 0xe2, 0x73, 0x3c, 0x96, 0xe3, 0xbc, 0xa4, 0xca, 0x05, 0x4b, 0x90, 0x8c, 0x0a, 0x6f,
|
||||||
|
0x03, 0x40, 0xb6, 0x73, 0xa6, 0x5c, 0xb5, 0x1f, 0xb0, 0x5f, 0xb9, 0x5f, 0xb2, 0x00, 0x6f, 0x22,
|
||||||
|
0x25, 0x5e, 0x00, 0x12, 0xb4, 0x24, 0x07, 0x9c, 0x19, 0x8f, 0x4d, 0x02, 0xdd, 0xb8, 0xf4, 0x0d,
|
||||||
|
0x0d, 0x74, 0x03, 0x3b, 0xbe, 0x47, 0x18, 0xb8, 0x46, 0x93, 0x09, 0x22, 0xd6, 0x3d, 0xa2, 0xe3,
|
||||||
|
0xe0, 0x07, 0x76, 0x19, 0x22, 0x53, 0x38, 0x46, 0x60, 0x60, 0xf5, 0xff, 0x0b, 0x87, 0x85, 0x3a,
|
||||||
|
0x7f, 0x92, 0xf1, 0xb0, 0xe7, 0x78, 0xb7, 0xd8, 0x46, 0x9d, 0xf8, 0xe5, 0x1f, 0xec, 0x8f, 0x39,
|
||||||
|
0x1e, 0x7f, 0x07, 0xfb, 0xd6, 0xab, 0x9d, 0xec, 0x2b, 0xeb, 0xc4, 0x73, 0x19, 0xf1, 0x6c, 0xca,
|
||||||
|
0xbf, 0xed, 0x2f, 0x7f, 0xfb, 0x0c, 0x7f, 0x78, 0x73, 0x46, 0x39, 0xf8, 0x83, 0xc5, 0x27, 0xcb,
|
||||||
|
0x86, 0xb7, 0xd4, 0xa2, 0x88, 0x31, 0xec, 0xce, 0xc4, 0xb7, 0x3e, 0x80, 0x14, 0xfc, 0x31, 0x8a,
|
||||||
|
0x5e, 0xc4, 0x05, 0x4b, 0x1b, 0x9b, 0x57, 0xe8, 0xd6, 0x46, 0x73, 0xc8, 0xdf, 0x15, 0x7c, 0x1e,
|
||||||
|
0x7b, 0x8e, 0x03, 0xdd, 0x09, 0x2d, 0xfe, 0xee, 0x4e, 0xf1, 0xcc, 0x87, 0x04, 0x3a, 0x85, 0x65,
|
||||||
|
0xe6, 0x0c, 0xdb, 0x98, 0xfd, 0x08, 0x3e, 0xef, 0x9c, 0x31, 0xe4, 0x80, 0xbf, 0x76, 0x00, 0x7f,
|
||||||
|
0xf0, 0x64, 0x08, 0x1c, 0x88, 0x5d, 0xf1, 0x2a, 0x78, 0x01, 0xdd, 0xf1, 0x9d, 0x47, 0xa8, 0x35,
|
||||||
|
0xc5, 0xb6, 0x3d, 0x04, 0x1c, 0x28, 0x72, 0x59, 0xf0, 0xa1, 0xd7, 0x8b, 0x3f, 0x39, 0x90, 0xcc,
|
||||||
|
0xb0, 0x4b, 0x87, 0x60, 0xd0, 0x0f, 0x3f, 0x4c, 0xf1, 0x23, 0x60, 0x77, 0x98, 0xee, 0x04, 0x05,
|
||||||
|
0x7d, 0xe2, 0xf9, 0x88, 0x70, 0x5c, 0xef, 0x6c, 0xf4, 0x45, 0x74, 0xcb, 0xe1, 0xbf, 0x0c, 0x79,
|
||||||
|
0x6b, 0xe8, 0xf8, 0x6c, 0x2a, 0xfa, 0xfa, 0x1e, 0xdd, 0xe3, 0x31, 0xea, 0xee, 0x66, 0x4b, 0x9f,
|
||||||
|
0xc4, 0xbd, 0x74, 0xe2, 0xdf, 0x92, 0x3a, 0xf1, 0x00, 0x2c, 0x57, 0xb9, 0x87, 0x04, 0x4c, 0x1f,
|
||||||
|
0xae, 0x11, 0xa1, 0xd8, 0x73, 0x87, 0x8b, 0x8a, 0xd6, 0x0c, 0xb1, 0xd3, 0xf8, 0xfd, 0x2a, 0x1e,
|
||||||
|
0x31, 0x5a, 0x17, 0xe1, 0x68, 0x39, 0xe7, 0x63, 0xf1, 0x77, 0x82, 0xc9, 0x19, 0x87, 0x9f, 0xcb,
|
||||||
|
0x2b, 0xbd, 0xf5, 0xfd, 0x4c, 0x2d, 0x18, 0xfe, 0x5d, 0x55, 0xed, 0xcc, 0x9d, 0x7a, 0x99, 0x7a,
|
||||||
|
0x38, 0x7a, 0xb1, 0x5a, 0xf1, 0xd6, 0xf3, 0x6c, 0x80, 0xe9, 0x27, 0x8f, 0xe0, 0x7f, 0x71, 0x2a,
|
||||||
|
0x85, 0x7c, 0x2a, 0x1e, 0xf0, 0x84, 0xdd, 0x81, 0xff, 0x06, 0x77, 0x08, 0xcf, 0xee, 0xd8, 0x4e,
|
||||||
|
0x4e, 0x79, 0x3a, 0xbe, 0x43, 0x93, 0xb9, 0x8d, 0x04, 0xc8, 0xaf, 0x04, 0x33, 0x3e, 0xe8, 0x53,
|
||||||
|
0x68, 0x53, 0x94, 0x53, 0x94, 0xcf, 0x18, 0x9a, 0x5c, 0xdd, 0x11, 0x8f, 0x31, 0x3b, 0x29, 0xb6,
|
||||||
|
0x3a, 0xb8, 0xe1, 0xf4, 0x5f, 0xc1, 0xdb, 0x77, 0x90, 0xc4, 0xc4, 0x60, 0xb1, 0xe0, 0xcf, 0x84,
|
||||||
|
0x60, 0x82, 0x1f, 0x7c, 0xe4, 0x7d, 0xcf, 0x15, 0x5f, 0x3d, 0x57, 0xfc, 0x6e, 0x23, 0x86, 0x38,
|
||||||
|
0x65, 0x85, 0x34, 0x16, 0x80, 0x4d, 0x41, 0xb2, 0xee, 0x31, 0xc5, 0x9c, 0x0e, 0xc0, 0x6b, 0xc0,
|
||||||
|
0xc8, 0x1c, 0xe5, 0x97, 0x41, 0x2e, 0xe4, 0x45, 0x26, 0xe9, 0x32, 0x4f, 0x3b, 0x11, 0x2e, 0x7b,
|
||||||
|
0xee, 0xb8, 0x21, 0x83, 0xa6, 0x30, 0xe4, 0x12, 0x6e, 0xf2, 0x35, 0x84, 0x9a, 0x2a, 0x1e, 0x13,
|
||||||
|
0x7f, 0xd8, 0x9b, 0xcc, 0xeb, 0xb0, 0xee, 0x30, 0xd3, 0x9e, 0x4c, 0x81, 0x3c, 0x54, 0x62, 0x24,
|
||||||
|
0x32, 0x85, 0xc6, 0x73, 0x22, 0xde, 0x9f, 0xb9, 0x13, 0xf4, 0x38, 0x04, 0xf4, 0x01, 0xfb, 0xe8,
|
||||||
|
0x1a, 0xa3, 0x07, 0x2b, 0xfd, 0x3e, 0x53, 0x21, 0xec, 0x51, 0x00, 0xf4, 0xab, 0x98, 0xeb, 0x61,
|
||||||
|
0x76, 0x74, 0x82, 0x06, 0xf3, 0x91, 0xc5, 0x63, 0xcc, 0xa2, 0xef, 0xfd, 0x2c, 0x42, 0x1b, 0xfb,
|
||||||
|
0x51, 0x9d, 0x6c, 0x77, 0xe2, 0x19, 0xe5, 0x72, 0x08, 0xdc, 0xce, 0x19, 0xf3, 0x04, 0xef, 0x1e,
|
||||||
|
0x56, 0x95, 0x89, 0x70, 0x0c, 0xfa, 0xfd, 0x2c, 0x38, 0x31, 0x1e, 0x41, 0x81, 0xa5, 0xc1, 0x14,
|
||||||
|
0x0f, 0x43, 0x8f, 0x7c, 0xdc, 0xfe, 0xa4, 0x57, 0xa4, 0xdb, 0xb9, 0xc4, 0x13, 0xd4, 0xd9, 0x5d,
|
||||||
|
0x29, 0xf2, 0x10, 0x82, 0x3d, 0x87, 0xec, 0x8e, 0x0b, 0x92, 0xc7, 0x6e, 0x38, 0xfe, 0x56, 0x0a,
|
||||||
|
0xe7, 0xde, 0x4a, 0x9d, 0x15, 0x34, 0x61, 0x9d, 0x90, 0x23, 0x7a, 0x20, 0x03, 0x82, 0x66, 0x51,
|
||||||
|
0x3e, 0xd5, 0x6a, 0xfb, 0xd5, 0xdc, 0xdd, 0xda, 0xb6, 0xbf, 0xc3, 0xdf, 0x11, 0x38, 0x39, 0xfd,
|
||||||
|
0xb8, 0xad, 0xed, 0x3f, 0xc5, 0xc4, 0x79, 0xe0, 0x2c, 0xb5, 0x49, 0xed, 0x7f, 0x5a, 0xb0, 0xc0,
|
||||||
|
0x28, 0x66, 0xe4, 0x1c, 0x59, 0x92, 0x30, 0x79, 0x89, 0x20, 0x88, 0x10, 0xca, 0x48, 0x81, 0x4f,
|
||||||
|
0x81, 0xa4, 0xcf, 0x11, 0x03, 0x05, 0x92, 0x42, 0x4a, 0x1a, 0x5c, 0xc0, 0x19, 0xca, 0x99, 0x81,
|
||||||
|
0x4b, 0xf6, 0x1e, 0x32, 0xc8, 0x2d, 0x99, 0xb9, 0x9f, 0xf3, 0xb5, 0xd0, 0x28, 0x28, 0x9e, 0xee,
|
||||||
|
0x27, 0x29, 0xb4, 0xb7, 0x70, 0xfc, 0x7d, 0x46, 0xbc, 0xb9, 0xcb, 0x47, 0xef, 0x12, 0x8d, 0x19,
|
||||||
|
0x74, 0x67, 0x76, 0x5e, 0x39, 0xf1, 0x78, 0x3e, 0xe4, 0xa2, 0xef, 0x07, 0x17, 0x7b, 0x56, 0x3f,
|
||||||
|
0x07, 0xf9, 0xca, 0xab, 0x02, 0x3d, 0x91, 0xd7, 0x2f, 0xe6, 0xf9, 0xe7, 0x81, 0x51, 0x33, 0x04,
|
||||||
|
0x47, 0xa5, 0x05, 0x6f, 0xb9, 0xc2, 0xf4, 0x9c, 0xb8, 0xec, 0x80, 0xdb, 0x3e, 0x36, 0x82, 0xf7,
|
||||||
|
0x08, 0x50, 0x5f, 0x98, 0x77, 0x53, 0x8f, 0x00, 0xca, 0x20, 0x9b, 0xd3, 0x5b, 0x48, 0xde, 0x94,
|
||||||
|
0x02, 0xca, 0xd7, 0x52, 0xab, 0x13, 0xb8, 0x50, 0xe0, 0xcb, 0x4f, 0xa4, 0x44, 0x73, 0xc8, 0x23,
|
||||||
|
0x7e, 0x44, 0xa3, 0xb8, 0x5d, 0x2a, 0xfa, 0x94, 0xfb, 0x3d, 0x57, 0x27, 0x2e, 0xd3, 0x34, 0xd7,
|
||||||
|
0x0c, 0xbc, 0xad, 0x88, 0x2e, 0xeb, 0xc0, 0x62, 0x0a, 0x8f, 0x6a, 0x8c, 0xf2, 0x35, 0x5e, 0x21,
|
||||||
|
0x90, 0x8c, 0xe1, 0x61, 0x43, 0xca, 0x2e, 0x42, 0x38, 0x11, 0x54, 0x39, 0x20, 0x12, 0x3a, 0x54,
|
||||||
|
0x5a, 0x9f, 0xca, 0x70, 0x53, 0xb5, 0x9e, 0x3d, 0x50, 0x29, 0x5f, 0xa4, 0x73, 0x65, 0xe5, 0x68,
|
||||||
|
0x91, 0x4c, 0x1d, 0x31, 0x82, 0x10, 0xfb, 0xe6, 0xda, 0x68, 0x06, 0xed, 0x1c, 0xc1, 0x5a, 0x26,
|
||||||
|
0x64, 0x2b, 0x25, 0xea, 0xa2, 0x3b, 0x31, 0xa1, 0xa8, 0x49, 0xe4, 0x9c, 0xfa, 0xb1, 0x74, 0x5e,
|
||||||
|
0x85, 0x49, 0x8b, 0x1b, 0xff, 0xa4, 0x75, 0xc8, 0xae, 0x08, 0xc4, 0x66, 0xa8, 0xa4, 0x86, 0xea,
|
||||||
|
0xf3, 0x7c, 0x82, 0xc7, 0x5c, 0x88, 0xd3, 0x9f, 0x6b, 0xb8, 0x9e, 0xf2, 0x79, 0xb4, 0xc8, 0x40,
|
||||||
|
0x28, 0x10, 0xac, 0xa3, 0x5c, 0x9b, 0xa1, 0x52, 0xba, 0xd2, 0x52, 0x23, 0x42, 0xd5, 0xa0, 0x50,
|
||||||
|
0x35, 0x2e, 0x8a, 0x44, 0x63, 0x61, 0xa1, 0x5e, 0x0f, 0x84, 0x32, 0x08, 0x7c, 0x16, 0x22, 0xa8,
|
||||||
|
0xb0, 0x5c, 0x60, 0x26, 0x14, 0x7e, 0x2d, 0x27, 0x49, 0x09, 0x7d, 0x5f, 0x4b, 0xf7, 0xb7, 0x62,
|
||||||
|
0x07, 0xd4, 0xb3, 0x09, 0x54, 0xec, 0x03, 0x35, 0x5b, 0x41, 0xc5, 0x6e, 0xc8, 0x50, 0x3b, 0x67,
|
||||||
|
0x7c, 0xdb, 0xae, 0x20, 0xf7, 0x2c, 0x25, 0x48, 0x19, 0x93, 0x15, 0x94, 0x26, 0x55, 0xdc, 0x73,
|
||||||
|
0x19, 0x07, 0x1d, 0x11, 0x71, 0xe4, 0xbc, 0x08, 0xf8, 0x5f, 0xaa, 0x7a, 0x11, 0xdf, 0x48, 0x55,
|
||||||
|
0x56, 0xa4, 0xc5, 0x46, 0x34, 0x59, 0x41, 0x9b, 0xca, 0xf5, 0xd5, 0xc8, 0xb0, 0x0e, 0x39, 0xd6,
|
||||||
|
0x23, 0xcb, 0x3a, 0xe4, 0x19, 0x3f, 0x29, 0x8f, 0xa7, 0xec, 0x23, 0x44, 0x96, 0xe0, 0x66, 0xa2,
|
||||||
|
0x54, 0x4b, 0xd1, 0x00, 0xd5, 0x21, 0xb0, 0x25, 0xf5, 0x52, 0xde, 0xf3, 0x91, 0x6b, 0x6d, 0xff,
|
||||||
|
0x9d, 0xf7, 0xa8, 0x38, 0x34, 0xc1, 0x5a, 0x37, 0x10, 0xe7, 0x57, 0x1e, 0xf9, 0x73, 0x8e, 0x38,
|
||||||
|
0x04, 0xc5, 0xa1, 0x65, 0x38, 0xf0, 0x3b, 0x46, 0xa6, 0x56, 0xe4, 0x87, 0x04, 0x21, 0xb4, 0x0a,
|
||||||
|
0x2b, 0xa2, 0xa9, 0xbe, 0xca, 0x7b, 0x2e, 0xbd, 0x07, 0x65, 0x5e, 0x4d, 0xd1, 0x49, 0x23, 0xb6,
|
||||||
|
0x5d, 0x15, 0x8c, 0x75, 0x19, 0x58, 0x0f, 0x23, 0x37, 0x61, 0xe8, 0x66, 0x8c, 0x9d, 0xc3, 0xe0,
|
||||||
|
0xaa, 0x55, 0xaf, 0xb8, 0x59, 0x5a, 0x63, 0x0e, 0x17, 0x16, 0x6d, 0x42, 0x8c, 0xdf, 0xdc, 0xb7,
|
||||||
|
0x8e, 0x4f, 0x3b, 0xb5, 0x40, 0x8d, 0x3d, 0xdb, 0x23, 0xc3, 0xbf, 0x82, 0xff, 0xbd, 0xfe, 0x12,
|
||||||
|
0xee, 0xbc, 0x88, 0x3d, 0x89, 0xb7, 0xbe, 0xff, 0x09, 0x3d, 0x9e, 0x88, 0xd7, 0xdd, 0x8e, 0x2d,
|
||||||
|
0x58, 0x5b, 0xb4, 0xb7, 0xb3, 0xfb, 0x54, 0x0b, 0xcb, 0x5d, 0xb2, 0x39, 0xf0, 0x96, 0xc3, 0x72,
|
||||||
|
0x9d, 0xc0, 0x67, 0x2d, 0x00, 0x5a, 0xc1, 0xdf, 0x9f, 0x4e, 0x90, 0xd8, 0x77, 0xaa, 0x05, 0x3a,
|
||||||
|
0xe2, 0x29, 0x07, 0xbb, 0xd8, 0x99, 0x3b, 0xa9, 0x55, 0xa9, 0x2a, 0x20, 0xf5, 0x9e, 0x8d, 0x6c,
|
||||||
|
0x3c, 0x41, 0xa4, 0xe6, 0x1c, 0x2e, 0x0b, 0xa6, 0x10, 0x58, 0x2d, 0x50, 0x94, 0x21, 0x7f, 0x84,
|
||||||
|
0xff, 0x85, 0x44, 0xbf, 0x6b, 0x01, 0x98, 0x12, 0xcf, 0x19, 0x82, 0xfd, 0x7a, 0x95, 0xef, 0xa1,
|
||||||
|
0x3d, 0xe7, 0xa8, 0x0f, 0xeb, 0xd5, 0x66, 0x1e, 0x6f, 0xf5, 0x51, 0x9f, 0x8b, 0x14, 0xbe, 0xcc,
|
||||||
|
0x02, 0xfe, 0x1d, 0xa4, 0x08, 0x40, 0x4e, 0xcd, 0x4d, 0x68, 0xa1, 0x91, 0x7c, 0x4d, 0xd8, 0xd3,
|
||||||
|
0xf3, 0xec, 0x2b, 0xec, 0xd7, 0x9c, 0xdd, 0xf4, 0xde, 0xcc, 0xea, 0x2c, 0x5b, 0x77, 0xd0, 0x9d,
|
||||||
|
0xd8, 0xa8, 0x36, 0xe4, 0x44, 0x66, 0xe5, 0x80, 0xf6, 0x09, 0xa2, 0x14, 0x4d, 0x6a, 0xc3, 0x0e,
|
||||||
|
0x65, 0x4b, 0x0e, 0xe0, 0x60, 0x9e, 0xb9, 0xde, 0x38, 0x15, 0xfb, 0x71, 0xdd, 0xda, 0xf0, 0x17,
|
||||||
|
0xcf, 0x60, 0xb7, 0x16, 0x90, 0xa7, 0x96, 0x39, 0xfb, 0x69, 0x23, 0xad, 0x97, 0x0b, 0x48, 0x55,
|
||||||
|
0x4d, 0x97, 0x75, 0x5b, 0x1b, 0x46, 0xb7, 0x37, 0xd0, 0xed, 0x17, 0x6f, 0x47, 0x46, 0xad, 0x6f,
|
||||||
|
0xb5, 0x5a, 0xe7, 0x1c, 0xab, 0x47, 0xa7, 0x37, 0x50, 0xe9, 0x8d, 0x34, 0xfa, 0x7e, 0x7d, 0x8d,
|
||||||
|
0xde, 0xae, 0xfa, 0x18, 0xec, 0x72, 0x73, 0xe1, 0xdf, 0x81, 0x37, 0x7d, 0xc9, 0xf6, 0x42, 0x42,
|
||||||
|
0x3e, 0x9a, 0x8d, 0x85, 0x05, 0x5c, 0x9d, 0x96, 0xc2, 0x02, 0xaa, 0x31, 0x13, 0xd6, 0x6a, 0x26,
|
||||||
|
0x78, 0x0f, 0x88, 0x18, 0x43, 0xe1, 0x67, 0x32, 0x14, 0xc4, 0x8c, 0x1b, 0x23, 0x61, 0x5b, 0x8d,
|
||||||
|
0x04, 0x31, 0x7b, 0x5a, 0xcc, 0x84, 0xfd, 0xa3, 0xfe, 0xba, 0x0c, 0x85, 0x57, 0x47, 0xf5, 0x2d,
|
||||||
|
0x05, 0x5e, 0x57, 0x2c, 0xfe, 0xc7, 0xde, 0xdc, 0x9e, 0x80, 0x5b, 0x04, 0xe6, 0xfe, 0x04, 0x32,
|
||||||
|
0x34, 0x09, 0x9a, 0x05, 0x6e, 0x21, 0x63, 0xf1, 0x9e, 0x22, 0xb0, 0xb1, 0x83, 0x19, 0xf8, 0x4f,
|
||||||
|
0x20, 0xfc, 0x04, 0xf7, 0x9e, 0xcd, 0xe0, 0x0c, 0xbd, 0x3c, 0xa5, 0xbf, 0x20, 0x07, 0xdd, 0x6a,
|
||||||
|
0x3f, 0x05, 0x59, 0xab, 0xe2, 0x4f, 0xc1, 0x35, 0xaa, 0x7f, 0x9d, 0xaa, 0xff, 0xd2, 0x77, 0x8c,
|
||||||
|
0xe2, 0xff, 0x89, 0x14, 0xff, 0xe5, 0xc5, 0xb9, 0x51, 0xfb, 0x5b, 0xaa, 0xf6, 0x39, 0xaf, 0x6e,
|
||||||
|
0x80, 0xd2, 0x3f, 0xea, 0x37, 0x52, 0xfb, 0x07, 0xfd, 0x7e, 0x7d, 0xbd, 0x7f, 0x5c, 0x17, 0xf9,
|
||||||
|
0x26, 0xab, 0xef, 0x64, 0x5a, 0x35, 0x2b, 0xef, 0x05, 0x5c, 0x9d, 0xaa, 0x7b, 0x01, 0xd5, 0x28,
|
||||||
|
0xee, 0x75, 0x2a, 0xee, 0x78, 0x1b, 0xf7, 0x12, 0x51, 0xdf, 0x73, 0x29, 0x32, 0x5a, 0xfc, 0x27,
|
||||||
|
0xd2, 0xe2, 0x8b, 0x3d, 0xfc, 0x78, 0xfa, 0x8d, 0x52, 0xdf, 0xd6, 0x7d, 0xfc, 0x25, 0x3e, 0xd6,
|
||||||
|
0xa2, 0xe1, 0xfb, 0x56, 0x13, 0xff, 0xff, 0x41, 0x13, 0xfd, 0xde, 0xb7, 0x7e, 0xaf, 0xad, 0xde,
|
||||||
|
0xfb, 0xd6, 0xc1, 0xcb, 0xdb, 0xc1, 0xcf, 0x9d, 0x5f, 0xdd, 0x7b, 0xf9, 0xf9, 0x48, 0xb4, 0xee,
|
||||||
|
0xea, 0xe7, 0xa3, 0x30, 0x46, 0xc0, 0x26, 0x18, 0x01, 0x1f, 0x1e, 0x7d, 0xcf, 0x18, 0x00, 0x3f,
|
||||||
|
0xa5, 0x01, 0xf0, 0x19, 0xbb, 0x08, 0x12, 0xae, 0xb7, 0x8d, 0x05, 0xb0, 0xe5, 0x16, 0x80, 0x60,
|
||||||
|
0xe2, 0xed, 0xde, 0xfb, 0xff, 0xbd, 0xc1, 0x69, 0xbe, 0x17, 0xb8, 0xb0, 0x5f, 0x9d, 0xd8, 0x96,
|
||||||
|
0xd4, 0x7e, 0x0a, 0x41, 0x1b, 0x2a, 0x3f, 0x05, 0x3e, 0xab, 0xee, 0x5f, 0x80, 0xae, 0x7e, 0x36,
|
||||||
|
0x55, 0x7d, 0x9a, 0x4e, 0x48, 0xa2, 0x49, 0x57, 0xaf, 0x55, 0x55, 0x1b, 0x4d, 0x2d, 0xa5, 0xa9,
|
||||||
|
0x83, 0x79, 0x07, 0xe6, 0xd0, 0xfd, 0x7a, 0x55, 0xf5, 0xc9, 0x1d, 0x1a, 0x7f, 0x57, 0x67, 0xdf,
|
||||||
|
0x0a, 0x36, 0x0e, 0xa0, 0xde, 0x2a, 0xf2, 0x72, 0x32, 0x9d, 0xa2, 0xb2, 0xc8, 0x21, 0x54, 0x8f,
|
||||||
|
0x25, 0x34, 0x89, 0x85, 0xf5, 0x4b, 0xd7, 0xea, 0x52, 0xe5, 0x25, 0x9e, 0x8a, 0x3e, 0xec, 0xd4,
|
||||||
|
0x58, 0xa1, 0xf5, 0x7a, 0x20, 0x88, 0x8b, 0x2f, 0x8f, 0xdf, 0x35, 0x61, 0xba, 0x35, 0xe5, 0xba,
|
||||||
|
0x09, 0xd3, 0x35, 0x61, 0xba, 0x2d, 0x3b, 0x06, 0x4c, 0x98, 0xae, 0x2e, 0xd5, 0xb0, 0x1d, 0x61,
|
||||||
|
0xba, 0x4c, 0x88, 0x6b, 0x13, 0xa5, 0x6b, 0xa2, 0x74, 0x5f, 0xaa, 0x83, 0xcf, 0x2c, 0x18, 0xb6,
|
||||||
|
0xd2, 0xb7, 0x97, 0x92, 0x4b, 0xdb, 0x1e, 0xa4, 0x3b, 0xe8, 0x9b, 0x28, 0xdd, 0x02, 0x47, 0xdf,
|
||||||
|
0xca, 0x2c, 0x6b, 0xf3, 0xf0, 0xad, 0x42, 0xd6, 0xe3, 0xda, 0x5b, 0x85, 0x6b, 0xb6, 0xf0, 0xd6,
|
||||||
|
0x68, 0xb9, 0x98, 0x08, 0x5d, 0x13, 0xa1, 0x6b, 0x54, 0xfa, 0x16, 0xa9, 0xf4, 0xed, 0x0f, 0xd0,
|
||||||
|
0x3d, 0xaa, 0xad, 0xcc, 0x5b, 0xd5, 0x1d, 0x2f, 0x3c, 0x3e, 0x37, 0x4b, 0x3c, 0x7a, 0xcd, 0x04,
|
||||||
|
0xdd, 0xd1, 0xb9, 0x4b, 0x40, 0x8d, 0x81, 0xb0, 0x4e, 0x03, 0xc1, 0xc4, 0xe6, 0x9a, 0xd8, 0x5c,
|
||||||
|
0x63, 0x1e, 0x6c, 0x8d, 0x79, 0xf0, 0x12, 0x42, 0x73, 0xf7, 0x8f, 0xfa, 0x26, 0x36, 0x57, 0x8f,
|
||||||
|
0xc2, 0x6f, 0x21, 0x34, 0x77, 0x05, 0xb0, 0x4e, 0xa5, 0x6f, 0x02, 0x73, 0x37, 0x43, 0xed, 0x9b,
|
||||||
|
0xb8, 0x5c, 0x13, 0x97, 0x6b, 0x54, 0xfe, 0x56, 0xa8, 0xfc, 0x17, 0x11, 0x96, 0x7b, 0x64, 0xc2,
|
||||||
|
0x72, 0xb3, 0x9a, 0x5b, 0x7f, 0x54, 0xee, 0x12, 0x58, 0x8d, 0x5a, 0xdb, 0xc4, 0xe4, 0x6e, 0x84,
|
||||||
|
0xce, 0x36, 0x21, 0xb9, 0x3f, 0xb1, 0x02, 0x37, 0x21, 0xb9, 0x2f, 0x45, 0x9f, 0xbf, 0xbc, 0x88,
|
||||||
|
0xdc, 0x43, 0x13, 0x91, 0x9b, 0xda, 0xad, 0x6f, 0x37, 0x20, 0xb7, 0x0c, 0x87, 0xce, 0x1d, 0x7c,
|
||||||
|
0x13, 0x8e, 0xbb, 0xb1, 0xfa, 0xdf, 0x44, 0xe3, 0x9a, 0x68, 0x5c, 0xa3, 0xfc, 0xb7, 0x5b, 0xf9,
|
||||||
|
0x9b, 0x60, 0xdc, 0x97, 0xa9, 0xf5, 0x5b, 0x88, 0xc5, 0x2d, 0x82, 0xdf, 0x82, 0xb6, 0x2f, 0x8c,
|
||||||
|
0xc4, 0x35, 0x9a, 0xfe, 0x99, 0x82, 0x79, 0x83, 0xe9, 0x30, 0xb1, 0xbc, 0x26, 0x96, 0xd7, 0x1c,
|
||||||
|
0xcd, 0xdf, 0xe2, 0x58, 0xde, 0x55, 0x2e, 0x36, 0xa1, 0xbc, 0xe5, 0x25, 0x65, 0x0b, 0x6a, 0x0b,
|
||||||
|
0xf9, 0x2d, 0xb7, 0x1a, 0x9e, 0x6a, 0x06, 0xf7, 0x26, 0x37, 0x39, 0x6f, 0x69, 0x80, 0xaf, 0x89,
|
||||||
|
0xe1, 0xcd, 0x4e, 0xa8, 0x89, 0xe1, 0xd5, 0x4b, 0x76, 0x4d, 0xc9, 0x4f, 0x8f, 0x3b, 0xc1, 0xc4,
|
||||||
|
0xf0, 0xea, 0xd2, 0x09, 0x5b, 0x12, 0xc3, 0x6b, 0xc2, 0x77, 0x4d, 0xf8, 0xee, 0x0b, 0xf5, 0x08,
|
||||||
|
0x9a, 0x35, 0xc2, 0x76, 0x3a, 0x03, 0x5f, 0x46, 0xe4, 0xee, 0x91, 0x89, 0xdc, 0x2d, 0xf2, 0x0a,
|
||||||
|
0xb6, 0x12, 0xb4, 0xdb, 0x42, 0xbc, 0xae, 0x09, 0xd5, 0x5d, 0xbf, 0x81, 0xe2, 0x9b, 0x28, 0x5d,
|
||||||
|
0x13, 0xa5, 0x6b, 0x34, 0xf7, 0x56, 0x68, 0x6e, 0x7f, 0xdb, 0x03, 0x74, 0x0f, 0x1a, 0x04, 0xe8,
|
||||||
|
0x9a, 0xd8, 0xdc, 0x3a, 0xb6, 0x80, 0xaf, 0x3d, 0x2c, 0xd7, 0xd7, 0x1c, 0x91, 0xeb, 0x9b, 0x60,
|
||||||
|
0xdc, 0x75, 0x9b, 0x00, 0x26, 0x0e, 0xd7, 0xc4, 0xe1, 0x1a, 0x03, 0x60, 0x1b, 0x0c, 0x80, 0x17,
|
||||||
|
0x72, 0x3b, 0xae, 0x09, 0xc1, 0x6d, 0xac, 0xd7, 0x5b, 0x88, 0xbe, 0xf5, 0xb5, 0x07, 0xde, 0xfa,
|
||||||
|
0x26, 0xe6, 0x76, 0xed, 0xda, 0x9d, 0x98, 0x70, 0x5b, 0x13, 0x6e, 0x6b, 0x34, 0xfb, 0x86, 0x6b,
|
||||||
|
0x76, 0xf2, 0x12, 0x22, 0x6d, 0x8f, 0x8f, 0x4c, 0xa4, 0x6d, 0xac, 0xa0, 0x89, 0xf6, 0x20, 0x5b,
|
||||||
|
0xa2, 0x39, 0xbe, 0x96, 0x98, 0xd0, 0xda, 0x35, 0xab, 0x66, 0x66, 0xa2, 0x6a, 0x81, 0xd9, 0x47,
|
||||||
|
0x37, 0x51, 0xb5, 0x5b, 0xbc, 0x97, 0xfe, 0xe2, 0x02, 0x6a, 0x0f, 0x4c, 0x40, 0x6d, 0xb8, 0x89,
|
||||||
|
0xde, 0x72, 0x2c, 0x6d, 0xab, 0x61, 0xb4, 0x26, 0x82, 0x76, 0x13, 0xd5, 0xbc, 0x09, 0x9e, 0x35,
|
||||||
|
0xc1, 0xb3, 0x46, 0xc7, 0x6f, 0xad, 0x8e, 0x37, 0x71, 0xb3, 0x2f, 0x4e, 0xb9, 0xb7, 0x11, 0x32,
|
||||||
|
0xdb, 0x5a, 0xb4, 0xac, 0x09, 0x94, 0xd5, 0x59, 0xb2, 0x81, 0x3e, 0x9f, 0x9a, 0x18, 0x59, 0x13,
|
||||||
|
0x23, 0x6b, 0xce, 0xbf, 0x6f, 0x6f, 0x8c, 0xec, 0xd4, 0x84, 0xc7, 0x6e, 0x70, 0x78, 0x6c, 0xbd,
|
||||||
|
0xaf, 0xf9, 0x5f, 0xf2, 0xdf, 0xca, 0x08, 0xd0, 0xe0, 0xb8, 0x05, 0xf1, 0xf8, 0xb4, 0x20, 0xca,
|
||||||
|
0xcb, 0xef, 0x34, 0x91, 0x85, 0x72, 0x32, 0x4f, 0x26, 0x60, 0xef, 0xdd, 0x9c, 0x31, 0xcf, 0xad,
|
||||||
|
0x20, 0xfd, 0x78, 0x23, 0x10, 0xc1, 0xc9, 0x37, 0x77, 0x84, 0x18, 0xe3, 0x50, 0x2b, 0x04, 0x55,
|
||||||
|
0x44, 0x84, 0xe3, 0x20, 0x1e, 0x73, 0xe4, 0x43, 0x77, 0x08, 0xf6, 0x65, 0x2a, 0x70, 0xd3, 0x66,
|
||||||
|
0x8a, 0x08, 0x41, 0x93, 0x88, 0x74, 0xf7, 0x2b, 0x44, 0xc0, 0x72, 0xb5, 0x38, 0x72, 0xef, 0x37,
|
||||||
|
0xa9, 0x6a, 0x2a, 0x3c, 0xe2, 0xb9, 0x27, 0x36, 0x0e, 0x79, 0xb3, 0x5a, 0x50, 0xb0, 0xb9, 0x8b,
|
||||||
|
0xbe, 0xf2, 0xe5, 0x19, 0x8a, 0x47, 0x2b, 0x1c, 0x67, 0x0b, 0xb9, 0x90, 0xcf, 0xdb, 0x04, 0xbc,
|
||||||
|
0x96, 0xe3, 0xc9, 0x5b, 0xfc, 0x5d, 0x06, 0x4c, 0x25, 0x1c, 0xe7, 0xc4, 0x73, 0x1c, 0x6e, 0x8f,
|
||||||
|
0x52, 0xa1, 0x13, 0xce, 0xc7, 0x63, 0xcf, 0x9d, 0x76, 0x77, 0xd5, 0x6a, 0x71, 0x4d, 0x72, 0x12,
|
||||||
|
0x56, 0xab, 0xac, 0xd7, 0xeb, 0x85, 0x62, 0x2c, 0xb8, 0x53, 0x19, 0x02, 0x07, 0xb2, 0xf1, 0x1d,
|
||||||
|
0xc0, 0x6e, 0x78, 0x78, 0x83, 0x1b, 0x0c, 0x93, 0xe8, 0x64, 0x6c, 0x7c, 0xb0, 0x86, 0x79, 0x80,
|
||||||
|
0x22, 0x1b, 0x8d, 0xf9, 0x6f, 0x77, 0x28, 0xe6, 0x91, 0xea, 0xd8, 0x6a, 0x48, 0xc0, 0x9c, 0xa2,
|
||||||
|
0x33, 0xc7, 0x47, 0x04, 0x43, 0x9b, 0x8f, 0xc5, 0x35, 0xa2, 0xe3, 0xb3, 0xa9, 0x95, 0x7a, 0xf9,
|
||||||
|
0xc5, 0xc5, 0x8c, 0x4a, 0xf4, 0x54, 0xc0, 0xc2, 0x8e, 0x7f, 0x0a, 0x79, 0x1b, 0x5e, 0x67, 0xa0,
|
||||||
|
0xbe, 0x01, 0x07, 0xbf, 0x5b, 0x07, 0xaf, 0xfa, 0x03, 0x10, 0xa8, 0xa3, 0xbe, 0xd5, 0xdf, 0x91,
|
||||||
|
0x82, 0x16, 0xf6, 0xf5, 0x35, 0x70, 0xce, 0xc7, 0x62, 0xd8, 0xc4, 0x08, 0x5e, 0x40, 0x02, 0x9d,
|
||||||
|
0xf7, 0xde, 0x9c, 0xcf, 0x1c, 0xd7, 0xc5, 0x37, 0x0f, 0x90, 0xb1, 0x1b, 0x07, 0x3e, 0x76, 0xe4,
|
||||||
|
0x9a, 0x17, 0x1e, 0x57, 0x2e, 0x85, 0x18, 0x8d, 0x67, 0x08, 0x54, 0x45, 0x90, 0x0a, 0xf8, 0xc4,
|
||||||
|
0x77, 0x4a, 0x81, 0x73, 0xa0, 0x37, 0x88, 0x17, 0xe2, 0x90, 0x7b, 0xe0, 0xd0, 0x12, 0x67, 0xa6,
|
||||||
|
0xba, 0x87, 0xbc, 0x9b, 0x36, 0x9f, 0x31, 0x88, 0x09, 0x95, 0xeb, 0x85, 0x0f, 0xa9, 0xc0, 0x12,
|
||||||
|
0x11, 0xd3, 0x0a, 0x1a, 0xe8, 0xfb, 0x37, 0xbc, 0xc8, 0x8d, 0x20, 0x50, 0x2b, 0xee, 0x0e, 0x1d,
|
||||||
|
0x43, 0x9b, 0xd3, 0x3e, 0x47, 0xfc, 0xb7, 0x68, 0x14, 0xe4, 0x06, 0x6c, 0xc9, 0x67, 0x59, 0x85,
|
||||||
|
0x17, 0x4e, 0xc6, 0x21, 0x5e, 0xfe, 0xde, 0xbf, 0x61, 0xd8, 0x41, 0x37, 0xbe, 0x47, 0x65, 0x67,
|
||||||
|
0x27, 0xb5, 0x96, 0xe2, 0x88, 0x06, 0x82, 0x50, 0xc0, 0xdf, 0x41, 0x57, 0x0e, 0x63, 0x5c, 0xfb,
|
||||||
|
0x06, 0x3d, 0xfa, 0x9d, 0x5d, 0xd1, 0xcf, 0xbf, 0xef, 0x0b, 0x4a, 0x93, 0xc1, 0x2c, 0x8e, 0xa8,
|
||||||
|
0x9d, 0xf0, 0x91, 0x2a, 0x9d, 0x3c, 0xec, 0x66, 0x89, 0x43, 0x1e, 0x32, 0xb2, 0x6d, 0x9a, 0x03,
|
||||||
|
0xfa, 0xcc, 0x65, 0xdd, 0x0e, 0xc5, 0x37, 0xa2, 0x0c, 0x22, 0x3f, 0x6e, 0xc6, 0xa2, 0x5c, 0x86,
|
||||||
|
0xe8, 0xea, 0xa9, 0xf4, 0x18, 0xef, 0x3f, 0xef, 0x11, 0x89, 0xce, 0xd8, 0x55, 0x52, 0xe5, 0x3d,
|
||||||
|
0x76, 0x15, 0x7a, 0xf4, 0xc5, 0x9d, 0x24, 0xa0, 0x47, 0x0c, 0x12, 0x56, 0x0a, 0x3f, 0xe9, 0xdf,
|
||||||
|
0x9c, 0xd3, 0xa1, 0x28, 0x5d, 0x13, 0xd3, 0x07, 0x77, 0x22, 0x8d, 0x07, 0xb9, 0x13, 0x49, 0x2c,
|
||||||
|
0x0f, 0x77, 0x08, 0xd9, 0xef, 0x31, 0x74, 0x10, 0x2b, 0x15, 0x36, 0x7c, 0xa2, 0x82, 0xa2, 0x37,
|
||||||
|
0x93, 0xa8, 0x6c, 0xc0, 0x4b, 0x91, 0xc0, 0xab, 0x96, 0x67, 0x78, 0x0a, 0xba, 0xdd, 0x48, 0xa0,
|
||||||
|
0xbd, 0x06, 0x94, 0x11, 0xc4, 0xe1, 0x2f, 0x1f, 0xc4, 0xdb, 0x05, 0xbf, 0xfe, 0x0a, 0xba, 0xb1,
|
||||||
|
0x94, 0x8a, 0x8b, 0xad, 0x5e, 0x80, 0xc6, 0xc9, 0x5b, 0xce, 0xce, 0x8e, 0x6d, 0xa5, 0x77, 0x90,
|
||||||
|
0x58, 0x14, 0x05, 0x34, 0xce, 0xe9, 0xf7, 0x8c, 0x0f, 0xea, 0x63, 0xb7, 0xbf, 0x2b, 0xe7, 0xf0,
|
||||||
|
0x29, 0x6a, 0x84, 0x50, 0x9c, 0x72, 0x92, 0x64, 0x01, 0x65, 0xa5, 0xc7, 0x1c, 0x48, 0x38, 0x28,
|
||||||
|
0x0d, 0x1f, 0x85, 0x36, 0x2c, 0x25, 0x2f, 0xe7, 0x2d, 0xe0, 0x12, 0x59, 0xa5, 0x0f, 0xd9, 0xd0,
|
||||||
|
0x08, 0xd1, 0x03, 0x48, 0x55, 0x46, 0xb2, 0x64, 0x1f, 0x48, 0x8c, 0xe9, 0xd2, 0xe7, 0x1a, 0x90,
|
||||||
|
0x97, 0x9d, 0x51, 0x29, 0xa8, 0xe2, 0x53, 0x43, 0x6b, 0x7f, 0x95, 0x9a, 0xf3, 0x6f, 0x72, 0x59,
|
||||||
|
0x26, 0xe6, 0x82, 0xcb, 0xfc, 0xb4, 0xd0, 0xf2, 0x40, 0x92, 0x96, 0x0b, 0xda, 0xa0, 0x46, 0xca,
|
||||||
|
0xf9, 0xdd, 0x7d, 0x56, 0x4a, 0xce, 0xcb, 0xc2, 0xaf, 0x40, 0xc8, 0x79, 0xf7, 0xed, 0x29, 0xd0,
|
||||||
|
0x71, 0x65, 0x42, 0xe0, 0xba, 0x64, 0x5c, 0x9a, 0x7b, 0xb0, 0x6d, 0x2a, 0xf6, 0x2b, 0x09, 0xb8,
|
||||||
|
0x1d, 0xda, 0xdd, 0x97, 0x73, 0xef, 0xb2, 0x86, 0x54, 0xeb, 0xb7, 0x44, 0xb0, 0x52, 0xc8, 0x49,
|
||||||
|
0x6d, 0x52, 0xf5, 0xeb, 0x53, 0x69, 0x1b, 0x04, 0xaa, 0x8b, 0x36, 0x65, 0x06, 0x2e, 0xb6, 0x4a,
|
||||||
|
0xdf, 0x79, 0x8f, 0x16, 0x41, 0xd0, 0xbe, 0x8e, 0x30, 0x69, 0x34, 0x51, 0x13, 0xf3, 0xb4, 0x0a,
|
||||||
|
0x47, 0x81, 0xad, 0x2a, 0x85, 0x20, 0x65, 0x87, 0xca, 0x77, 0x45, 0xde, 0x28, 0xcd, 0x35, 0x48,
|
||||||
|
0xe5, 0x11, 0xd5, 0xb1, 0x4e, 0x73, 0x2c, 0xd3, 0x7a, 0x08, 0xe5, 0xcc, 0xd4, 0x8c, 0x89, 0x2a,
|
||||||
|
0x8b, 0xa8, 0xdc, 0x5e, 0xd5, 0xe9, 0xce, 0x93, 0x76, 0x81, 0x05, 0xfb, 0xb6, 0xf9, 0x4e, 0x9d,
|
||||||
|
0xda, 0x12, 0x26, 0x72, 0xab, 0x05, 0x20, 0x65, 0xfd, 0x6a, 0x91, 0xe7, 0x47, 0xc6, 0x3f, 0xfc,
|
||||||
|
0x93, 0xbb, 0xe0, 0x36, 0xd7, 0x3f, 0x84, 0xa7, 0xdd, 0xb4, 0x52, 0x1d, 0xa7, 0x34, 0xaa, 0xd0,
|
||||||
|
0xd5, 0x7d, 0x59, 0xcd, 0x1c, 0xb3, 0x4f, 0x18, 0xb2, 0x56, 0xe2, 0x0c, 0xda, 0x2b, 0x5e, 0x8d,
|
||||||
|
0x35, 0x47, 0x94, 0xf8, 0xb1, 0xf6, 0x0a, 0x97, 0x86, 0xcd, 0x91, 0x24, 0xde, 0xa7, 0xbd, 0x82,
|
||||||
|
0x95, 0xd0, 0xdf, 0x84, 0x4f, 0x4a, 0x12, 0x51, 0xec, 0x93, 0xc9, 0xc1, 0x54, 0xea, 0x80, 0xda,
|
||||||
|
0x2b, 0x58, 0x45, 0xf5, 0x9a, 0x0e, 0x6f, 0x45, 0x83, 0x0a, 0x3c, 0x53, 0x7b, 0x12, 0x8b, 0xb2,
|
||||||
|
0x5d, 0xa0, 0xe9, 0xd1, 0xdb, 0x91, 0x8c, 0xc3, 0x6b, 0x0f, 0x74, 0x63, 0x7f, 0x59, 0xf9, 0x5a,
|
||||||
|
0x50, 0x78, 0x1e, 0x03, 0xc7, 0x98, 0xdc, 0xb0, 0x66, 0x36, 0xe5, 0x40, 0xec, 0x91, 0xc8, 0xcd,
|
||||||
|
0x64, 0x6b, 0x45, 0xdb, 0x6e, 0x5a, 0x0c, 0xf3, 0x52, 0xe6, 0x1e, 0xb4, 0xc0, 0xdc, 0x45, 0xab,
|
||||||
|
0x53, 0xad, 0xbc, 0x5d, 0xb0, 0x50, 0xd6, 0xca, 0xda, 0xb9, 0x4b, 0xc3, 0xe7, 0xe1, 0xec, 0xdc,
|
||||||
|
0x65, 0x65, 0xaf, 0xe1, 0xd0, 0xd6, 0xe5, 0xeb, 0xca, 0x45, 0xea, 0x96, 0xb1, 0x75, 0xe9, 0xda,
|
||||||
|
0xb8, 0x21, 0x57, 0x17, 0xa7, 0xa7, 0x7e, 0x3e, 0xa6, 0xde, 0x6f, 0x83, 0xa9, 0x5b, 0xe6, 0x67,
|
||||||
|
0xbf, 0x5d, 0x56, 0x26, 0x6b, 0xe1, 0x62, 0x7f, 0x95, 0x81, 0x9f, 0x9d, 0x77, 0x5f, 0x10, 0xdb,
|
||||||
|
0xb6, 0xc3, 0xb1, 0xd3, 0x96, 0x99, 0xb5, 0x94, 0x44, 0x97, 0xdc, 0x0c, 0x7b, 0xf9, 0x9e, 0x8a,
|
||||||
|
0xdd, 0x3a, 0x48, 0xf2, 0xfd, 0x0c, 0x7b, 0x05, 0x8e, 0x8a, 0xdd, 0x66, 0x13, 0x5c, 0xc9, 0x87,
|
||||||
|
0xc2, 0x01, 0xb1, 0x57, 0xe6, 0xc2, 0xd8, 0x6d, 0x86, 0x63, 0xd5, 0xf7, 0xb0, 0x57, 0xed, 0xcd,
|
||||||
|
0xd0, 0x88, 0x53, 0xb8, 0x1f, 0xf6, 0xaa, 0x9c, 0x19, 0x8d, 0xf0, 0xad, 0x7a, 0x21, 0xf6, 0x4a,
|
||||||
|
0xbc, 0x19, 0xbd, 0x78, 0x81, 0x58, 0x8d, 0x93, 0x72, 0x5a, 0x9f, 0xcc, 0x39, 0xed, 0x73, 0xc4,
|
||||||
|
0xc1, 0xe2, 0x5f, 0xf6, 0x38, 0x48, 0xf3, 0xc3, 0x4a, 0xd9, 0x37, 0x4b, 0xd1, 0x2a, 0x05, 0xe9,
|
||||||
|
0xfc, 0x6f, 0xe1, 0xf8, 0xfb, 0x8c, 0x78, 0x73, 0x97, 0x2f, 0xbb, 0x2f, 0xd1, 0x98, 0x41, 0x77,
|
||||||
|
0x66, 0x17, 0xa5, 0xfd, 0xf7, 0xc4, 0x91, 0x23, 0xf6, 0x43, 0xc4, 0x6e, 0xf5, 0x73, 0x90, 0xaf,
|
||||||
|
0xbc, 0x92, 0xc8, 0xd7, 0x2e, 0x9d, 0xea, 0xb9, 0x20, 0x99, 0x33, 0xe8, 0xf5, 0x6c, 0x04, 0xef,
|
||||||
|
0x51, 0x70, 0x1c, 0x0a, 0x05, 0x67, 0x52, 0x38, 0xbd, 0xb2, 0x39, 0xbd, 0x85, 0xe4, 0x4d, 0x29,
|
||||||
|
0xa0, 0xea, 0x10, 0x15, 0xa9, 0x2c, 0xfc, 0x8a, 0x99, 0xf7, 0x25, 0xb2, 0xed, 0xd7, 0xc8, 0xb0,
|
||||||
|
0xaf, 0x9a, 0xdc, 0xbc, 0xd7, 0xbb, 0x15, 0x33, 0x4e, 0xdf, 0xa1, 0x3b, 0x78, 0x8f, 0x3d, 0x32,
|
||||||
|
0x04, 0x23, 0x3e, 0x01, 0x6f, 0x39, 0x3b, 0x8b, 0xb7, 0x85, 0xd5, 0x3e, 0x12, 0x3c, 0x91, 0x3a,
|
||||||
|
0x4a, 0x2c, 0xfc, 0x69, 0x33, 0x5e, 0xb8, 0xdc, 0x23, 0xa5, 0x7c, 0xb8, 0x38, 0x74, 0x76, 0xd1,
|
||||||
|
0x70, 0xda, 0x31, 0xfd, 0x94, 0x1c, 0x58, 0x05, 0x6f, 0x40, 0xe0, 0xa2, 0x91, 0xa8, 0x3d, 0x92,
|
||||||
|
0x3b, 0x12, 0x4c, 0xbc, 0x87, 0xa4, 0xe4, 0xa0, 0xc2, 0xeb, 0xa3, 0x70, 0x36, 0x5c, 0x0c, 0x8c,
|
||||||
|
0x10, 0x6b, 0xa3, 0xe0, 0x44, 0x94, 0x27, 0x95, 0x46, 0x2d, 0x93, 0xdb, 0xfd, 0x5d, 0x28, 0x24,
|
||||||
|
0xc1, 0x05, 0x41, 0x14, 0x31, 0x19, 0x47, 0x77, 0xcd, 0x03, 0xa3, 0x39, 0xfe, 0xc5, 0x41, 0xb5,
|
||||||
|
0xf3, 0x4b, 0xf5, 0xac, 0x79, 0xed, 0xf3, 0xe5, 0xc9, 0xe9, 0xc7, 0x03, 0xb9, 0xfd, 0x55, 0x29,
|
||||||
|
0x37, 0xf0, 0xf2, 0x4c, 0x3d, 0x78, 0xf6, 0x34, 0xac, 0x28, 0x5d, 0x2d, 0xf6, 0xfa, 0xf2, 0x9a,
|
||||||
|
0xdf, 0xdc, 0xa3, 0xfd, 0x6b, 0xf9, 0x03, 0xdf, 0xca, 0x0e, 0x5d, 0x0d, 0xce, 0x5d, 0x19, 0x47,
|
||||||
|
0xef, 0x2b, 0x65, 0x10, 0xb5, 0xa3, 0x77, 0x94, 0x3c, 0xc0, 0x32, 0x1b, 0x52, 0xaf, 0x64, 0xce,
|
||||||
|
0x59, 0x49, 0x6d, 0x3b, 0x0d, 0x0e, 0x95, 0xe1, 0x94, 0xec, 0x2e, 0x1d, 0xd7, 0x69, 0x57, 0xe5,
|
||||||
|
0x56, 0xd2, 0xe1, 0xa1, 0xb5, 0xdf, 0x08, 0x6a, 0xce, 0x6e, 0xd1, 0xa1, 0x6a, 0x98, 0x76, 0xaf,
|
||||||
|
0x57, 0xef, 0x38, 0x6a, 0x09, 0x8c, 0xc5, 0xe1, 0x54, 0x59, 0x00, 0x4f, 0x92, 0xa7, 0xcb, 0xdb,
|
||||||
|
0x11, 0x1d, 0x91, 0x0c, 0x78, 0x8f, 0x09, 0x02, 0x46, 0x10, 0xd4, 0x08, 0x52, 0xd0, 0x2e, 0x07,
|
||||||
|
0x06, 0xfd, 0x23, 0x7d, 0x82, 0x40, 0xfb, 0x52, 0xde, 0x08, 0x8d, 0xad, 0x12, 0x1a, 0x6d, 0xca,
|
||||||
|
0x8c, 0xc0, 0x05, 0x1f, 0x09, 0x8d, 0x57, 0x46, 0x68, 0xac, 0x55, 0x68, 0x1c, 0x6b, 0x33, 0x1e,
|
||||||
|
0xf6, 0xfb, 0xfa, 0xa5, 0xc1, 0x6f, 0xc7, 0x6d, 0x48, 0x83, 0xe3, 0x03, 0xc5, 0x64, 0x32, 0x12,
|
||||||
|
0xd2, 0xe0, 0xe8, 0x95, 0x75, 0xfc, 0xf3, 0x4a, 0x83, 0xaa, 0x00, 0x35, 0xdd, 0x2b, 0xcb, 0xe8,
|
||||||
|
0x04, 0x9f, 0xcc, 0xc2, 0xb2, 0xd7, 0xcb, 0x5d, 0x5b, 0x9a, 0x35, 0x65, 0x5f, 0xce, 0x30, 0x54,
|
||||||
|
0x0c, 0x11, 0x8e, 0x44, 0x7c, 0x34, 0x41, 0xdf, 0xdc, 0x73, 0xf8, 0x28, 0x2f, 0xdf, 0xdb, 0x0b,
|
||||||
|
0x01, 0xd6, 0x1c, 0xf6, 0xdb, 0x28, 0xd4, 0x57, 0xd2, 0x22, 0x0f, 0x7d, 0xb8, 0x23, 0x1f, 0xbb,
|
||||||
|
0x6a, 0x81, 0xbd, 0x69, 0x1e, 0x51, 0x09, 0xc4, 0x6f, 0xa8, 0x99, 0x26, 0x68, 0x8c, 0x1d, 0x68,
|
||||||
|
0x53, 0x15, 0x95, 0x9c, 0x08, 0xd0, 0xa1, 0xa2, 0xf1, 0x2a, 0x2a, 0x9e, 0x86, 0xb9, 0x3f, 0x14,
|
||||||
|
0x6b, 0x5d, 0x79, 0xaa, 0xb8, 0x84, 0xb6, 0xc7, 0x8f, 0x9c, 0xa6, 0xcf, 0xf8, 0x7f, 0xf2, 0x37,
|
||||||
|
0x4d, 0xce, 0xa7, 0x61, 0x2d, 0xf0, 0xb6, 0xb3, 0xe6, 0x28, 0xe0, 0x9a, 0x32, 0xf6, 0x37, 0x19,
|
||||||
|
0xe2, 0xd1, 0x29, 0x23, 0x37, 0x51, 0x44, 0xb6, 0x28, 0x21, 0x83, 0xad, 0x35, 0x23, 0x1a, 0x6b,
|
||||||
|
0xd8, 0x23, 0x8d, 0x25, 0x63, 0x64, 0xbe, 0x3e, 0xbf, 0x68, 0xec, 0xd7, 0x12, 0x8d, 0x87, 0xb5,
|
||||||
|
0x24, 0xe3, 0xe0, 0xa0, 0x86, 0x68, 0xdc, 0x57, 0x91, 0xa7, 0x89, 0x8c, 0xa3, 0x5b, 0x2a, 0xe2,
|
||||||
|
0x8c, 0x84, 0x6b, 0xd5, 0x08, 0x4c, 0x2d, 0xec, 0x8c, 0xa0, 0x5b, 0x8b, 0x0d, 0x98, 0x5d, 0x5a,
|
||||||
|
0x6f, 0x89, 0x29, 0x78, 0xdc, 0x7f, 0x36, 0x4b, 0x50, 0xc9, 0xbf, 0x90, 0x18, 0x82, 0xd7, 0xf5,
|
||||||
|
0x0c, 0xc1, 0xeb, 0x2d, 0x95, 0x92, 0xfb, 0x46, 0x4c, 0xb6, 0x2a, 0x26, 0xd3, 0x9e, 0xa5, 0x6f,
|
||||||
|
0xee, 0xc9, 0x9c, 0x79, 0xd3, 0x29, 0x08, 0x1c, 0x57, 0x46, 0x6a, 0xae, 0x45, 0x6a, 0xe6, 0x39,
|
||||||
|
0x10, 0xb7, 0x44, 0x76, 0x2a, 0x6d, 0x74, 0x18, 0xd9, 0xd9, 0xba, 0xec, 0x3c, 0x30, 0xb2, 0xf3,
|
||||||
|
0xf9, 0x65, 0xe7, 0x07, 0x77, 0x62, 0x24, 0xe7, 0xda, 0x25, 0x67, 0xb8, 0x49, 0xb2, 0x2d, 0x72,
|
||||||
|
0x53, 0x65, 0x33, 0xd7, 0xc8, 0x4d, 0x45, 0xf2, 0xaa, 0x21, 0x38, 0x0f, 0x95, 0x0f, 0x0d, 0x8e,
|
||||||
|
0x7c, 0x84, 0x26, 0xde, 0x33, 0xef, 0xeb, 0xfc, 0x64, 0xe2, 0xf6, 0xab, 0x38, 0x3c, 0xfe, 0xcd,
|
||||||
|
0x8d, 0x8f, 0x8f, 0x1b, 0x29, 0xfb, 0xec, 0x52, 0x76, 0xf9, 0xf8, 0xfe, 0xf3, 0xcb, 0xd7, 0xa2,
|
||||||
|
0x10, 0xf4, 0x9a, 0xa9, 0xb6, 0x77, 0xc1, 0x1b, 0xb0, 0x0f, 0x6a, 0xba, 0x46, 0x35, 0xb7, 0x25,
|
||||||
|
0x6c, 0x0c, 0x97, 0xcf, 0xbc, 0x3d, 0xc7, 0xcf, 0xe8, 0x86, 0x18, 0x1c, 0xf5, 0xfb, 0x75, 0x94,
|
||||||
|
0xc2, 0xff, 0xfd, 0xef, 0xff, 0xd4, 0x51, 0x0b, 0x5a, 0x47, 0x4d, 0x0c, 0x59, 0x07, 0x73, 0xb1,
|
||||||
|
0xd5, 0xe1, 0x83, 0xd6, 0x71, 0x9c, 0x4d, 0x30, 0xd4, 0x75, 0x2b, 0xa3, 0x23, 0x65, 0x65, 0x74,
|
||||||
|
0x8e, 0xe9, 0xd8, 0xa8, 0xa2, 0x36, 0x55, 0xd1, 0x7b, 0x34, 0x85, 0x73, 0x9b, 0x7d, 0x73, 0xc3,
|
||||||
|
0xd3, 0x64, 0x9f, 0xd1, 0x3d, 0xb2, 0x8d, 0x3e, 0x5a, 0x8b, 0xd5, 0x2f, 0x4e, 0x1a, 0x1c, 0x6d,
|
||||||
|
0xd1, 0x7e, 0xda, 0xb3, 0xc9, 0xf5, 0xdf, 0xad, 0xfe, 0x76, 0xba, 0x2d, 0x8e, 0x15, 0x04, 0x5e,
|
||||||
|
0xe7, 0x3d, 0x64, 0x10, 0x7c, 0xf6, 0x66, 0x33, 0x11, 0xc0, 0xbc, 0x39, 0xa7, 0xaa, 0x46, 0x0f,
|
||||||
|
0x58, 0x24, 0x6d, 0xae, 0x8e, 0xe1, 0x22, 0x8c, 0x37, 0xfe, 0x83, 0x5b, 0xd5, 0xe5, 0x48, 0xee,
|
||||||
|
0x7c, 0x08, 0xb2, 0x17, 0x81, 0xcb, 0x2b, 0x20, 0xdf, 0xef, 0x58, 0x94, 0x8e, 0x03, 0xde, 0x3f,
|
||||||
|
0x73, 0xa5, 0xc4, 0x69, 0x8d, 0x81, 0xca, 0x3d, 0x1f, 0xab, 0x2f, 0x1d, 0x91, 0x48, 0xd8, 0x17,
|
||||||
|
0xc5, 0x38, 0xcb, 0x66, 0x0b, 0x10, 0x55, 0x22, 0x73, 0xc3, 0xf3, 0x91, 0x7b, 0x29, 0x86, 0xfa,
|
||||||
|
0x14, 0xdb, 0x48, 0xdd, 0xd6, 0x20, 0x71, 0xd5, 0x40, 0x96, 0x8a, 0xc9, 0x90, 0x4e, 0xff, 0x27,
|
||||||
|
0x9e, 0x58, 0xc6, 0x07, 0x71, 0xbe, 0x1f, 0x5d, 0x4a, 0x4f, 0x3d, 0x82, 0xc2, 0x90, 0xd0, 0x11,
|
||||||
|
0x22, 0xf7, 0x78, 0x8c, 0x14, 0x8e, 0x4d, 0x46, 0x3d, 0xa2, 0x88, 0x7d, 0x85, 0xdf, 0xd1, 0x67,
|
||||||
|
0x6f, 0xfc, 0xbd, 0x2b, 0xe6, 0x66, 0x57, 0x17, 0xb3, 0x03, 0x64, 0x53, 0x24, 0xd9, 0xb9, 0xa8,
|
||||||
|
0x2d, 0x63, 0xdb, 0xa3, 0x68, 0x31, 0xbc, 0x72, 0x4d, 0x59, 0x0c, 0x8a, 0xe7, 0x17, 0x8d, 0x89,
|
||||||
|
0xf4, 0x34, 0xff, 0xb2, 0x30, 0x2b, 0x93, 0x51, 0x51, 0x9a, 0xa2, 0x9c, 0x51, 0x0d, 0x32, 0x84,
|
||||||
|
0xed, 0x6e, 0x82, 0x0b, 0xe3, 0x0a, 0x3b, 0x52, 0x17, 0x66, 0x11, 0xe4, 0x23, 0xc8, 0x24, 0x85,
|
||||||
|
0x1a, 0x99, 0xbb, 0x6e, 0x60, 0x29, 0x49, 0x95, 0xc6, 0x42, 0x78, 0xdc, 0x43, 0x3b, 0xbc, 0x92,
|
||||||
|
0xba, 0xb2, 0xb8, 0xe7, 0x5e, 0x11, 0x3c, 0x9b, 0x21, 0x22, 0x7f, 0x58, 0x5c, 0x4c, 0xe3, 0x42,
|
||||||
|
0x1a, 0x4a, 0xe7, 0x33, 0x48, 0x3f, 0xbf, 0xfe, 0x0a, 0x62, 0x42, 0xc0, 0x34, 0xa0, 0xc7, 0x7f,
|
||||||
|
0x72, 0xbe, 0xef, 0xd6, 0xe4, 0xd5, 0x86, 0x64, 0xa9, 0x8d, 0x34, 0x9b, 0x93, 0xa7, 0x1c, 0x89,
|
||||||
|
0x2a, 0x18, 0x6d, 0xab, 0xf3, 0xb4, 0x48, 0x0f, 0x97, 0x19, 0xf9, 0x67, 0xbc, 0x5d, 0x44, 0x97,
|
||||||
|
0x1d, 0xd2, 0xeb, 0x29, 0x59, 0x22, 0x8b, 0x23, 0xde, 0x9b, 0x6a, 0x8b, 0xac, 0x67, 0xfd, 0x75,
|
||||||
|
0xd4, 0x6e, 0xe8, 0xdf, 0xc9, 0x9d, 0xc7, 0x75, 0x8e, 0x18, 0x6d, 0xe1, 0x11, 0x24, 0x41, 0xa8,
|
||||||
|
0xf7, 0x0f, 0xcb, 0xb2, 0x3a, 0x3a, 0xe2, 0x69, 0x9a, 0x86, 0xf5, 0x0c, 0xf6, 0xfb, 0xed, 0x07,
|
||||||
|
0xd5, 0x08, 0xd9, 0x12, 0x0b, 0x2b, 0x82, 0xfe, 0x9c, 0x23, 0xca, 0x84, 0xf6, 0xbd, 0x40, 0xc4,
|
||||||
|
0xc1, 0x94, 0x62, 0xcf, 0xad, 0x7f, 0xff, 0x9c, 0xb2, 0x78, 0x12, 0x8f, 0x1d, 0x6a, 0xff, 0x0b,
|
||||||
|
0xd1, 0x19, 0xa2, 0x7a, 0x51, 0x4b, 0x39, 0xb0, 0xe8, 0xba, 0x9e, 0x3a, 0xc0, 0x94, 0xcc, 0x99,
|
||||||
|
0x1c, 0x89, 0x8b, 0x1c, 0xcc, 0xce, 0x11, 0xa5, 0x70, 0x86, 0xde, 0x63, 0xc8, 0x9b, 0xd5, 0xec,
|
||||||
|
0x56, 0xbf, 0x8e, 0xe8, 0x15, 0x58, 0xcc, 0x11, 0xed, 0xec, 0x35, 0x83, 0xf7, 0x25, 0x5c, 0x11,
|
||||||
|
0x30, 0x0f, 0x44, 0x34, 0x00, 0x44, 0x96, 0x2d, 0x40, 0x7f, 0x50, 0x86, 0x1c, 0xe0, 0x27, 0x88,
|
||||||
|
0xac, 0x86, 0x88, 0x02, 0x6d, 0xb3, 0x07, 0x14, 0x95, 0x8e, 0xbc, 0xe2, 0xd1, 0xae, 0xa2, 0x84,
|
||||||
|
0xa5, 0x7e, 0xe6, 0xfa, 0x4a, 0x77, 0xf2, 0xb5, 0xe7, 0x98, 0x49, 0x96, 0x7a, 0xf1, 0x22, 0x42,
|
||||||
|
0xba, 0xa6, 0x62, 0xf6, 0x93, 0xe2, 0xea, 0x4e, 0x90, 0xd0, 0x85, 0x72, 0x01, 0x27, 0x5d, 0x79,
|
||||||
|
0xea, 0xb9, 0x5c, 0xb8, 0x79, 0xdc, 0xf6, 0x8b, 0xee, 0x49, 0xdd, 0x57, 0x15, 0xd3, 0x56, 0x8f,
|
||||||
|
0xb3, 0x4c, 0x47, 0x5e, 0xa0, 0xfe, 0x11, 0x67, 0xf1, 0xb5, 0xe2, 0x5f, 0x14, 0x59, 0xd7, 0x27,
|
||||||
|
0x7c, 0xa9, 0x47, 0xd8, 0x0f, 0x00, 0x6d, 0x0c, 0x69, 0x38, 0xe6, 0xc3, 0x9c, 0xf5, 0x5b, 0x63,
|
||||||
|
0xa0, 0xe1, 0x52, 0x7c, 0x08, 0x1a, 0x9a, 0xac, 0x4b, 0xa0, 0xa3, 0x2c, 0x79, 0x41, 0x66, 0xbc,
|
||||||
|
0x21, 0x28, 0xca, 0x99, 0xa7, 0x84, 0xa1, 0x49, 0x73, 0xd2, 0x79, 0x59, 0x87, 0x85, 0x59, 0x5a,
|
||||||
|
0x9b, 0x63, 0xb8, 0x80, 0x74, 0x98, 0x9f, 0x1c, 0x56, 0x03, 0x6c, 0xe1, 0xa2, 0x1d, 0x16, 0xe5,
|
||||||
|
0xd6, 0x6d, 0x0e, 0xff, 0xd2, 0x77, 0x86, 0xf9, 0x49, 0x75, 0x35, 0x8c, 0xfc, 0x52, 0x32, 0xbc,
|
||||||
|
0xa1, 0x44, 0xca, 0x5a, 0x7d, 0x58, 0x45, 0xde, 0xba, 0x61, 0x45, 0x4e, 0xd9, 0xe6, 0xd8, 0x32,
|
||||||
|
0xb9, 0x27, 0x87, 0x5a, 0xb2, 0xcc, 0xea, 0x22, 0xff, 0x54, 0xf6, 0xd2, 0x61, 0x51, 0x2a, 0xd3,
|
||||||
|
0xc6, 0xf0, 0x03, 0xda, 0xcf, 0x4b, 0x9f, 0xda, 0x1c, 0x72, 0x48, 0xf9, 0xf9, 0x99, 0x67, 0x1b,
|
||||||
|
0x43, 0x0f, 0xe8, 0x3e, 0x2f, 0xe3, 0x6c, 0xf3, 0x11, 0x5f, 0xa1, 0xfa, 0xca, 0x84, 0xae, 0xda,
|
||||||
|
0x70, 0x86, 0x34, 0x5f, 0x7e, 0x19, 0x49, 0x63, 0x64, 0x4b, 0x24, 0xaf, 0x21, 0x05, 0xab, 0x46,
|
||||||
|
0xa2, 0xb7, 0xe7, 0x13, 0x9c, 0xd0, 0xbc, 0x56, 0x72, 0x17, 0x90, 0x03, 0x6a, 0xf7, 0xf5, 0x11,
|
||||||
|
0x7a, 0x00, 0x33, 0xa4, 0x73, 0x5f, 0x27, 0x89, 0x0b, 0xb8, 0x01, 0x85, 0x13, 0x7d, 0xc4, 0x1d,
|
||||||
|
0x8c, 0xec, 0x2a, 0x6d, 0xb7, 0x44, 0xd6, 0x69, 0x6c, 0x11, 0x55, 0xb7, 0x20, 0xc3, 0x05, 0x96,
|
||||||
|
0x25, 0x72, 0x9e, 0x6e, 0x84, 0xec, 0x4e, 0x45, 0xea, 0x9f, 0xc3, 0xc7, 0xc8, 0x9a, 0x1c, 0xe6,
|
||||||
|
0xa7, 0xa2, 0x68, 0x8c, 0x47, 0xc4, 0xf4, 0xa1, 0x2c, 0x8e, 0x95, 0x2c, 0x15, 0x4d, 0x90, 0x78,
|
||||||
|
0xf7, 0x88, 0x5c, 0x47, 0x67, 0xc2, 0xd3, 0x58, 0x8a, 0xb2, 0x57, 0x34, 0xc1, 0x35, 0x17, 0xc7,
|
||||||
|
0x28, 0xaf, 0x53, 0x07, 0xd0, 0x33, 0x18, 0xcb, 0xf3, 0x5b, 0xe8, 0xc2, 0xfb, 0x41, 0x78, 0x5b,
|
||||||
|
0x0b, 0xb0, 0x2e, 0xe7, 0xbf, 0x68, 0x82, 0x33, 0x73, 0xa0, 0x29, 0xc1, 0x58, 0x9c, 0xa5, 0x74,
|
||||||
|
0xbb, 0x72, 0x5b, 0x9c, 0x09, 0x17, 0xc0, 0x5f, 0x32, 0x49, 0x2a, 0x44, 0x22, 0x46, 0x89, 0x73,
|
||||||
|
0x01, 0xcd, 0x5c, 0x96, 0xd2, 0xb9, 0x33, 0x55, 0x3d, 0xbf, 0x25, 0x43, 0x21, 0x7b, 0xb1, 0xb4,
|
||||||
|
0xb8, 0x28, 0xf8, 0x64, 0x3a, 0x33, 0xf7, 0x4a, 0xcb, 0xba, 0x38, 0xcd, 0xbd, 0xd2, 0x1a, 0xc0,
|
||||||
|
0x98, 0x7b, 0xa7, 0xcd, 0xbd, 0xd3, 0xe6, 0xde, 0xe9, 0xe5, 0x01, 0x33, 0xf7, 0x4e, 0x37, 0xbf,
|
||||||
|
0x77, 0xda, 0xdc, 0xff, 0x2c, 0x3d, 0x07, 0x6a, 0x37, 0x74, 0x3f, 0xe3, 0xbd, 0xd2, 0x32, 0x98,
|
||||||
|
0x32, 0x6b, 0x2d, 0x73, 0x13, 0xb5, 0x1c, 0x14, 0x73, 0x13, 0xb5, 0xb9, 0x89, 0xda, 0xdc, 0x44,
|
||||||
|
0xdd, 0x9c, 0x92, 0xcd, 0x4d, 0xd4, 0xe6, 0x26, 0x6a, 0x73, 0x13, 0x75, 0xc5, 0x80, 0x6d, 0xf2,
|
||||||
|
0x4d, 0xd4, 0xe6, 0x1a, 0x6a, 0x73, 0x0d, 0xf5, 0xcf, 0x77, 0x0d, 0x75, 0x81, 0xf3, 0xa6, 0xe5,
|
||||||
|
0xab, 0xa6, 0x6b, 0x4b, 0x2f, 0x73, 0x0d, 0xb5, 0xb9, 0x86, 0xda, 0x5c, 0x43, 0x9d, 0x83, 0xc8,
|
||||||
|
0x5c, 0x43, 0xdd, 0x92, 0x9d, 0x64, 0xae, 0xa1, 0x36, 0xd7, 0x50, 0x37, 0x61, 0x6d, 0x73, 0x0d,
|
||||||
|
0xb5, 0xce, 0x6b, 0xa8, 0xcd, 0x15, 0xd3, 0xc0, 0x5c, 0x31, 0x6d, 0xae, 0x98, 0xd6, 0xc9, 0x97,
|
||||||
|
0x65, 0x2c, 0x69, 0xae, 0x86, 0xae, 0x4b, 0x5a, 0x9b, 0x73, 0x35, 0xb4, 0xb9, 0xfd, 0xd9, 0xdc,
|
||||||
|
0xfe, 0xdc, 0xf4, 0x38, 0x51, 0xf5, 0x9b, 0x24, 0xec, 0x30, 0x8c, 0x52, 0x2b, 0xd0, 0x2f, 0xc2,
|
||||||
|
0xe3, 0x90, 0x89, 0x66, 0x93, 0xbf, 0x32, 0x39, 0xb7, 0xf7, 0x77, 0xde, 0xc3, 0x7b, 0x8f, 0xbd,
|
||||||
|
0x75, 0x27, 0xfc, 0x27, 0xff, 0xb7, 0x64, 0xb9, 0x9d, 0x1c, 0x46, 0x2a, 0x3e, 0xb3, 0x94, 0x75,
|
||||||
|
0x51, 0xe4, 0x2f, 0x79, 0x3d, 0x11, 0x5f, 0x19, 0xde, 0xa6, 0x5b, 0xbe, 0x62, 0x5f, 0x0d, 0xb2,
|
||||||
|
0x09, 0x24, 0x92, 0x8d, 0xfe, 0xc1, 0x67, 0x7c, 0x4b, 0xef, 0xd7, 0x3e, 0x7d, 0xf8, 0x12, 0x90,
|
||||||
|
0x76, 0xc5, 0xdd, 0xda, 0xa5, 0xd3, 0xb6, 0xdc, 0xa7, 0xec, 0x6f, 0x11, 0x52, 0x4e, 0xcd, 0x2e,
|
||||||
|
0x6f, 0xbb, 0x08, 0x09, 0x4c, 0xe1, 0xe2, 0x22, 0x60, 0x86, 0xf8, 0x1c, 0x47, 0x7c, 0xb6, 0x68,
|
||||||
|
0x9f, 0xe7, 0x86, 0xed, 0x5a, 0x99, 0x10, 0xa1, 0x75, 0x82, 0x74, 0x01, 0x96, 0x13, 0x54, 0xb9,
|
||||||
|
0x7c, 0x5c, 0x66, 0x0f, 0x15, 0xb4, 0x91, 0x9a, 0x53, 0xc2, 0x0b, 0xc3, 0x3a, 0xc5, 0x88, 0x13,
|
||||||
|
0xa3, 0x76, 0x39, 0xad, 0x81, 0x60, 0x95, 0xf0, 0x6a, 0xf1, 0xe0, 0xcb, 0xe2, 0x7d, 0x92, 0x7b,
|
||||||
|
0x60, 0x70, 0x9c, 0x72, 0x62, 0x25, 0x09, 0x0c, 0xb2, 0xf4, 0x1d, 0x27, 0x41, 0xc8, 0xbe, 0x2d,
|
||||||
|
0x49, 0x48, 0x30, 0x0e, 0xc7, 0x80, 0x2b, 0xce, 0x14, 0xdd, 0x46, 0x4e, 0x26, 0x3e, 0x0c, 0x27,
|
||||||
|
0xf1, 0xe7, 0x0b, 0x8f, 0x30, 0x41, 0xca, 0x4b, 0x8e, 0xa6, 0xa4, 0xba, 0xa0, 0x3d, 0x2b, 0x88,
|
||||||
|
0x1d, 0xe4, 0xf5, 0x3b, 0xff, 0x76, 0x38, 0x15, 0xff, 0x74, 0xf2, 0xc7, 0x3d, 0xaf, 0xeb, 0x73,
|
||||||
|
0x5c, 0xd8, 0xed, 0x7e, 0x5e, 0xb7, 0x33, 0x83, 0x9b, 0x9b, 0xfa, 0xa1, 0xb8, 0xd3, 0x22, 0xc8,
|
||||||
|
0x5d, 0xe4, 0x26, 0x48, 0x0d, 0xb7, 0x15, 0x01, 0x16, 0xfb, 0x4d, 0x39, 0x43, 0xf2, 0xcb, 0xeb,
|
||||||
|
0x8a, 0x41, 0x59, 0x31, 0xb0, 0x39, 0x8e, 0xc6, 0x83, 0xdb, 0xeb, 0x3d, 0xc9, 0x0f, 0x60, 0x42,
|
||||||
|
0x83, 0x1a, 0x86, 0x70, 0x27, 0xb5, 0x69, 0x16, 0x9e, 0x18, 0xbe, 0xf5, 0x3c, 0x1b, 0xc4, 0x4c,
|
||||||
|
0xb5, 0x4c, 0x5e, 0xd9, 0x52, 0x09, 0x0b, 0x14, 0x16, 0xe3, 0x0d, 0x03, 0x0f, 0x5c, 0x79, 0xf1,
|
||||||
|
0x56, 0x8c, 0x84, 0xea, 0xcd, 0xe4, 0x2b, 0x2b, 0xa1, 0xd5, 0x45, 0x1e, 0x88, 0x20, 0xe3, 0xe8,
|
||||||
|
0x47, 0x38, 0x9f, 0xa1, 0x2f, 0x14, 0xfd, 0x03, 0xcd, 0x20, 0xc3, 0xf7, 0x28, 0x50, 0xa6, 0x34,
|
||||||
|
0x2f, 0x35, 0x04, 0x5f, 0x1e, 0x31, 0x78, 0xbb, 0xb2, 0x32, 0x12, 0xb3, 0x7a, 0xc0, 0x67, 0x8e,
|
||||||
|
0xcf, 0xd5, 0xc4, 0x73, 0xff, 0x83, 0x89, 0x83, 0x61, 0xb6, 0x38, 0xf3, 0x27, 0x4e, 0xf4, 0x4d,
|
||||||
|
0x31, 0x71, 0x1e, 0xb8, 0x4c, 0x03, 0xa1, 0x7a, 0xe7, 0xf2, 0x6d, 0xb6, 0x2a, 0xc7, 0x53, 0x49,
|
||||||
|
0x76, 0x30, 0x15, 0xb3, 0x98, 0x4c, 0x69, 0x37, 0xd8, 0xba, 0x5c, 0xcc, 0xf5, 0x67, 0x48, 0xd9,
|
||||||
|
0xe9, 0xc3, 0xe5, 0x63, 0x60, 0x26, 0xd0, 0xee, 0xae, 0x75, 0xf7, 0x70, 0xf5, 0xc3, 0xe7, 0x76,
|
||||||
|
0x0e, 0xe1, 0x25, 0x5f, 0xf3, 0x86, 0x74, 0xae, 0x3f, 0x8c, 0x4e, 0x3a, 0x45, 0x0b, 0x35, 0xde,
|
||||||
|
0x83, 0x15, 0xd5, 0x5f, 0xb6, 0xa8, 0xe3, 0xe5, 0xd3, 0x23, 0x1c, 0x60, 0xa8, 0xf4, 0xc9, 0x2e,
|
||||||
|
0x8e, 0x4e, 0xd2, 0xe4, 0xc0, 0x65, 0x75, 0x76, 0x9d, 0x2c, 0x9e, 0x92, 0x74, 0x78, 0x52, 0xd1,
|
||||||
|
0xe8, 0x79, 0x0d, 0x97, 0xf2, 0x37, 0xe5, 0x9e, 0x16, 0xed, 0xf5, 0xa2, 0xd9, 0x4b, 0x2f, 0xc5,
|
||||||
|
0x10, 0x70, 0x4b, 0x4e, 0x3a, 0x17, 0x74, 0xab, 0x7c, 0xd7, 0x41, 0x3a, 0xd0, 0x3e, 0xaf, 0x7b,
|
||||||
|
0xf2, 0xab, 0xf3, 0xf4, 0xfc, 0xc4, 0x47, 0x5b, 0x83, 0x09, 0xd2, 0xe6, 0x4a, 0x59, 0xea, 0xf5,
|
||||||
|
0x81, 0xde, 0x8c, 0x49, 0xbc, 0xf7, 0x99, 0x45, 0x9a, 0x4a, 0xa6, 0x85, 0x74, 0xe7, 0x5d, 0x2e,
|
||||||
|
0x50, 0x89, 0x83, 0x5d, 0x68, 0x9f, 0x38, 0x93, 0x6e, 0x87, 0xc3, 0xbc, 0x89, 0xd7, 0x94, 0x60,
|
||||||
|
0xd0, 0x91, 0xcc, 0x5a, 0xa4, 0x9a, 0x1b, 0x41, 0xb6, 0x01, 0xfd, 0xce, 0xae, 0xc6, 0x1b, 0xb7,
|
||||||
|
0x96, 0x26, 0x44, 0x2e, 0xb5, 0x46, 0xde, 0x2a, 0xa1, 0xfc, 0xec, 0xbe, 0x5c, 0xa3, 0x4a, 0x16,
|
||||||
|
0x12, 0x4a, 0x54, 0xf7, 0xb4, 0x53, 0x74, 0x16, 0xe4, 0x97, 0x58, 0xc7, 0x94, 0x91, 0x86, 0xfc,
|
||||||
|
0xc1, 0xf0, 0x12, 0x44, 0x89, 0x9a, 0x92, 0xc6, 0x54, 0x7e, 0xc9, 0xeb, 0x93, 0xb2, 0xe9, 0x5b,
|
||||||
|
0xa4, 0xc9, 0x09, 0x2b, 0xd2, 0xe3, 0x47, 0x9a, 0x0d, 0xa1, 0x52, 0xfd, 0x95, 0x37, 0x2e, 0x22,
|
||||||
|
0x5a, 0x06, 0x3a, 0x7e, 0x98, 0x85, 0x6f, 0x22, 0x32, 0xfe, 0xf0, 0x65, 0x6d, 0xa8, 0x2f, 0xc7,
|
||||||
|
0x1e, 0x97, 0xb0, 0xc2, 0xa5, 0x34, 0x11, 0x66, 0x94, 0xd0, 0x96, 0x00, 0xd3, 0xe8, 0x88, 0x3c,
|
||||||
|
0x9a, 0xec, 0x01, 0x2f, 0x38, 0x19, 0xea, 0xe6, 0x81, 0xe4, 0xb0, 0xec, 0x30, 0x71, 0x90, 0xa8,
|
||||||
|
0xc2, 0xd7, 0xc1, 0x5c, 0x99, 0x5b, 0xe5, 0xba, 0x56, 0x22, 0xbf, 0x55, 0x3c, 0x6c, 0xe2, 0x8a,
|
||||||
|
0xe0, 0x7c, 0xb6, 0xc9, 0xcc, 0x6e, 0x64, 0x3d, 0xec, 0xca, 0x96, 0x1c, 0x21, 0x36, 0xf7, 0x0b,
|
||||||
|
0x8a, 0x2f, 0xdd, 0x0e, 0x7c, 0xe6, 0xcc, 0x45, 0x76, 0xa4, 0x6e, 0xff, 0xf1, 0x94, 0x3f, 0xd5,
|
||||||
|
0x55, 0x6e, 0x1d, 0xfa, 0xb1, 0xa4, 0x41, 0xa5, 0x92, 0x4b, 0x8c, 0x52, 0x9e, 0xad, 0x53, 0xa5,
|
||||||
|
0xff, 0xab, 0x47, 0xab, 0xc6, 0x38, 0xa8, 0xf3, 0xc4, 0xd3, 0xce, 0xff, 0x03, 0x34, 0x47, 0xf2,
|
||||||
|
0x86,
|
||||||
|
};
|
|
@ -0,0 +1,17 @@
|
||||||
|
// This file is autogenerated by VESC Tool
|
||||||
|
|
||||||
|
#ifndef QMLUI_LUNA_BBSHD_H_
|
||||||
|
#define QMLUI_LUNA_BBSHD_H_
|
||||||
|
|
||||||
|
#include "datatypes.h"
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
// Constants
|
||||||
|
#define DATA_QML_HW_SIZE 5953
|
||||||
|
|
||||||
|
// Variables
|
||||||
|
extern uint8_t data_qml_hw[];
|
||||||
|
|
||||||
|
// QMLUI_LUNA_BBSHD_H_
|
||||||
|
#endif
|
|
@ -0,0 +1,491 @@
|
||||||
|
// This file is autogenerated by VESC Tool
|
||||||
|
|
||||||
|
#ifndef APPCONF_LUNA_M600_H_
|
||||||
|
#define APPCONF_LUNA_M600_H_
|
||||||
|
|
||||||
|
// VESC ID
|
||||||
|
#define APPCONF_CONTROLLER_ID 100
|
||||||
|
|
||||||
|
// Timeout
|
||||||
|
#define APPCONF_TIMEOUT_MSEC 1000
|
||||||
|
|
||||||
|
// Timeout Brake Current
|
||||||
|
#define APPCONF_TIMEOUT_BRAKE_CURRENT 0
|
||||||
|
|
||||||
|
// Can Status Message Mode
|
||||||
|
#define APPCONF_SEND_CAN_STATUS 0
|
||||||
|
|
||||||
|
// Can Status Rate
|
||||||
|
#define APPCONF_SEND_CAN_STATUS_RATE_HZ 50
|
||||||
|
|
||||||
|
// CAN Baud Rate
|
||||||
|
#define APPCONF_CAN_BAUD_RATE 1
|
||||||
|
|
||||||
|
// Pairing Done
|
||||||
|
#define APPCONF_PAIRING_DONE 0
|
||||||
|
|
||||||
|
// Enable Permanent UART
|
||||||
|
#define APPCONF_PERMANENT_UART_ENABLED 1
|
||||||
|
|
||||||
|
// Shutdown Mode
|
||||||
|
#define APPCONF_SHUTDOWN_MODE 6
|
||||||
|
|
||||||
|
// CAN Mode
|
||||||
|
#define APPCONF_CAN_MODE 0
|
||||||
|
|
||||||
|
// UAVCAN ESC Index
|
||||||
|
#define APPCONF_UAVCAN_ESC_INDEX 0
|
||||||
|
|
||||||
|
// UAVCAN Raw Throttle Mode
|
||||||
|
#define APPCONF_UAVCAN_RAW_MODE 0
|
||||||
|
|
||||||
|
// Enable Servo Output
|
||||||
|
#define APPCONF_SERVO_OUT_ENABLE 0
|
||||||
|
|
||||||
|
// APP to Use
|
||||||
|
#define APPCONF_APP_TO_USE 11
|
||||||
|
|
||||||
|
// Control Type
|
||||||
|
#define APPCONF_PPM_CTRL_TYPE 0
|
||||||
|
|
||||||
|
// PID Max ERPM
|
||||||
|
#define APPCONF_PPM_PID_MAX_ERPM 15000
|
||||||
|
|
||||||
|
// Input Deadband
|
||||||
|
#define APPCONF_PPM_HYST 0.15
|
||||||
|
|
||||||
|
// Pulselength Start
|
||||||
|
#define APPCONF_PPM_PULSE_START 1
|
||||||
|
|
||||||
|
// Pulselength End
|
||||||
|
#define APPCONF_PPM_PULSE_END 2
|
||||||
|
|
||||||
|
// Pulselength Center
|
||||||
|
#define APPCONF_PPM_PULSE_CENTER 1.5
|
||||||
|
|
||||||
|
// Median Filter
|
||||||
|
#define APPCONF_PPM_MEDIAN_FILTER 1
|
||||||
|
|
||||||
|
// Safe Start
|
||||||
|
#define APPCONF_PPM_SAFE_START 1
|
||||||
|
|
||||||
|
// Throttle Expo
|
||||||
|
#define APPCONF_PPM_THROTTLE_EXP 0
|
||||||
|
|
||||||
|
// Throttle Expo Brake
|
||||||
|
#define APPCONF_PPM_THROTTLE_EXP_BRAKE 0
|
||||||
|
|
||||||
|
// Throttle Expo Mode
|
||||||
|
#define APPCONF_PPM_THROTTLE_EXP_MODE 2
|
||||||
|
|
||||||
|
// Positive Ramping Time
|
||||||
|
#define APPCONF_PPM_RAMP_TIME_POS 0.4
|
||||||
|
|
||||||
|
// Negative Ramping Time
|
||||||
|
#define APPCONF_PPM_RAMP_TIME_NEG 0.2
|
||||||
|
|
||||||
|
// Multiple VESCs Over CAN
|
||||||
|
#define APPCONF_PPM_MULTI_ESC 1
|
||||||
|
|
||||||
|
// Traction Control
|
||||||
|
#define APPCONF_PPM_TC 0
|
||||||
|
|
||||||
|
// TC Max ERPM Difference
|
||||||
|
#define APPCONF_PPM_TC_MAX_DIFF 3000
|
||||||
|
|
||||||
|
// Max ERPM for direction switch
|
||||||
|
#define APPCONF_PPM_MAX_ERPM_FOR_DIR 4000
|
||||||
|
|
||||||
|
// Smart Reverse Max Duty Cycle
|
||||||
|
#define APPCONF_PPM_SMART_REV_MAX_DUTY 0.07
|
||||||
|
|
||||||
|
// Smart Reverse Ramp Time
|
||||||
|
#define APPCONF_PPM_SMART_REV_RAMP_TIME 3
|
||||||
|
|
||||||
|
// Control Type
|
||||||
|
#define APPCONF_ADC_CTRL_TYPE 8
|
||||||
|
|
||||||
|
// Input Deadband
|
||||||
|
#define APPCONF_ADC_HYST 0.02
|
||||||
|
|
||||||
|
// ADC1 Min Voltage
|
||||||
|
#define APPCONF_ADC_VOLTAGE_START 0.55
|
||||||
|
|
||||||
|
// ADC1 Max Voltage
|
||||||
|
#define APPCONF_ADC_VOLTAGE_END 2.76
|
||||||
|
|
||||||
|
// ADC1 Center Voltage
|
||||||
|
#define APPCONF_ADC_VOLTAGE_CENTER 1.64
|
||||||
|
|
||||||
|
// ADC2 Min Voltage
|
||||||
|
#define APPCONF_ADC_VOLTAGE2_START 0
|
||||||
|
|
||||||
|
// ADC2 Max Voltage
|
||||||
|
#define APPCONF_ADC_VOLTAGE2_END 2
|
||||||
|
|
||||||
|
// Use Filter
|
||||||
|
#define APPCONF_ADC_USE_FILTER 1
|
||||||
|
|
||||||
|
// Safe Start
|
||||||
|
#define APPCONF_ADC_SAFE_START 1
|
||||||
|
|
||||||
|
// Invert Cruise Control Button
|
||||||
|
#define APPCONF_ADC_CC_BUTTON_INVERTED 1
|
||||||
|
|
||||||
|
// Invert Reverse Button
|
||||||
|
#define APPCONF_ADC_REV_BUTTON_INVERTED 0
|
||||||
|
|
||||||
|
// Invert ADC1 Voltage
|
||||||
|
#define APPCONF_ADC_VOLTAGE_INVERTED 0
|
||||||
|
|
||||||
|
// Invert ADC2 Voltage
|
||||||
|
#define APPCONF_ADC_VOLTAGE2_INVERTED 1
|
||||||
|
|
||||||
|
// Throttle Expo
|
||||||
|
#define APPCONF_ADC_THROTTLE_EXP 0
|
||||||
|
|
||||||
|
// Throttle Expo Brake
|
||||||
|
#define APPCONF_ADC_THROTTLE_EXP_BRAKE 0
|
||||||
|
|
||||||
|
// Throttle Expo Mode
|
||||||
|
#define APPCONF_ADC_THROTTLE_EXP_MODE 2
|
||||||
|
|
||||||
|
// Positive Ramping Time
|
||||||
|
#define APPCONF_ADC_RAMP_TIME_POS 0.3
|
||||||
|
|
||||||
|
// Negative Ramping Time
|
||||||
|
#define APPCONF_ADC_RAMP_TIME_NEG 0.1
|
||||||
|
|
||||||
|
// Multiple VESCs Over CAN
|
||||||
|
#define APPCONF_ADC_MULTI_ESC 1
|
||||||
|
|
||||||
|
// Traction Control
|
||||||
|
#define APPCONF_ADC_TC 0
|
||||||
|
|
||||||
|
// TC Max ERPM Difference
|
||||||
|
#define APPCONF_ADC_TC_MAX_DIFF 3000
|
||||||
|
|
||||||
|
// Update Rate
|
||||||
|
#define APPCONF_ADC_UPDATE_RATE_HZ 500
|
||||||
|
|
||||||
|
// Baudrate
|
||||||
|
#define APPCONF_UART_BAUDRATE 115200
|
||||||
|
|
||||||
|
// Control Type
|
||||||
|
#define APPCONF_CHUK_CTRL_TYPE 1
|
||||||
|
|
||||||
|
// Input Deadband
|
||||||
|
#define APPCONF_CHUK_HYST 0.15
|
||||||
|
|
||||||
|
// Positive Ramping Time
|
||||||
|
#define APPCONF_CHUK_RAMP_TIME_POS 0.4
|
||||||
|
|
||||||
|
// Negative Ramping Time
|
||||||
|
#define APPCONF_CHUK_RAMP_TIME_NEG 0.2
|
||||||
|
|
||||||
|
// ERPM Per Second Cruise Control
|
||||||
|
#define APPCONF_STICK_ERPM_PER_S_IN_CC 3000
|
||||||
|
|
||||||
|
// Throttle Expo
|
||||||
|
#define APPCONF_CHUK_THROTTLE_EXP 0
|
||||||
|
|
||||||
|
// Throttle Expo Brake
|
||||||
|
#define APPCONF_CHUK_THROTTLE_EXP_BRAKE 0
|
||||||
|
|
||||||
|
// Throttle Expo Mode
|
||||||
|
#define APPCONF_CHUK_THROTTLE_EXP_MODE 2
|
||||||
|
|
||||||
|
// Multiple VESCs Over CAN
|
||||||
|
#define APPCONF_CHUK_MULTI_ESC 1
|
||||||
|
|
||||||
|
// Traction Control
|
||||||
|
#define APPCONF_CHUK_TC 0
|
||||||
|
|
||||||
|
// TC Max ERPM Difference
|
||||||
|
#define APPCONF_CHUK_TC_MAX_DIFF 3000
|
||||||
|
|
||||||
|
// Use Smart Reverse
|
||||||
|
#define APPCONF_CHUK_USE_SMART_REV 1
|
||||||
|
|
||||||
|
// Smart Reverse Max Duty Cycle
|
||||||
|
#define APPCONF_CHUK_SMART_REV_MAX_DUTY 0.07
|
||||||
|
|
||||||
|
// Smart Reverse Ramp Time
|
||||||
|
#define APPCONF_CHUK_SMART_REV_RAMP_TIME 3
|
||||||
|
|
||||||
|
// Speed
|
||||||
|
#define APPCONF_NRF_SPEED 1
|
||||||
|
|
||||||
|
// TX Power
|
||||||
|
#define APPCONF_NRF_POWER 3
|
||||||
|
|
||||||
|
// CRC
|
||||||
|
#define APPCONF_NRF_CRC 1
|
||||||
|
|
||||||
|
// Retry Delay
|
||||||
|
#define APPCONF_NRF_RETR_DELAY 0
|
||||||
|
|
||||||
|
// Retries
|
||||||
|
#define APPCONF_NRF_RETRIES 3
|
||||||
|
|
||||||
|
// Radio Channel
|
||||||
|
#define APPCONF_NRF_CHANNEL 76
|
||||||
|
|
||||||
|
// Address 0
|
||||||
|
#define APPCONF_NRF_ADDR_B0 198
|
||||||
|
|
||||||
|
// Address 1
|
||||||
|
#define APPCONF_NRF_ADDR_B1 199
|
||||||
|
|
||||||
|
// Address 2
|
||||||
|
#define APPCONF_NRF_ADDR_B2 0
|
||||||
|
|
||||||
|
// Send ACK
|
||||||
|
#define APPCONF_NRF_SEND_CRC_ACK 1
|
||||||
|
|
||||||
|
// P
|
||||||
|
#define APPCONF_BALANCE_KP 0
|
||||||
|
|
||||||
|
// I
|
||||||
|
#define APPCONF_BALANCE_KI 0
|
||||||
|
|
||||||
|
// D
|
||||||
|
#define APPCONF_BALANCE_KD 0
|
||||||
|
|
||||||
|
// Loop Hertz
|
||||||
|
#define APPCONF_BALANCE_HERTZ 1000
|
||||||
|
|
||||||
|
// Pitch Axis Fault Cutoff
|
||||||
|
#define APPCONF_BALANCE_FAULT_PITCH 20
|
||||||
|
|
||||||
|
// Roll Axis Fault Cutoff
|
||||||
|
#define APPCONF_BALANCE_FAULT_ROLL 45
|
||||||
|
|
||||||
|
// Duty Cycle Fault Cutoff
|
||||||
|
#define APPCONF_BALANCE_FAULT_DUTY 0.9
|
||||||
|
|
||||||
|
// ADC1 Switch Voltage
|
||||||
|
#define APPCONF_BALANCE_FAULT_ADC1 0
|
||||||
|
|
||||||
|
// ADC2 Switch Voltage
|
||||||
|
#define APPCONF_BALANCE_FAULT_ADC2 0
|
||||||
|
|
||||||
|
// Pitch Fault Delay
|
||||||
|
#define APPCONF_BALANCE_FAULT_DELAY_PITCH 0
|
||||||
|
|
||||||
|
// Roll Fault Delay
|
||||||
|
#define APPCONF_BALANCE_FAULT_DELAY_ROLL 0
|
||||||
|
|
||||||
|
// Duty Fault Delay
|
||||||
|
#define APPCONF_BALANCE_FAULT_DELAY_DUTY 0
|
||||||
|
|
||||||
|
// Half Switch Fault Delay
|
||||||
|
#define APPCONF_BALANCE_FAULT_DELAY_SWITCH_HALF 0
|
||||||
|
|
||||||
|
// Full Switch Fault Delay
|
||||||
|
#define APPCONF_BALANCE_FAULT_DELAY_SWITCH_FULL 0
|
||||||
|
|
||||||
|
// ADC Half State Fault ERPM
|
||||||
|
#define APPCONF_BALANCE_FAULT_ADC_HALF_ERPM 1000
|
||||||
|
|
||||||
|
// Tiltback Angle
|
||||||
|
#define APPCONF_BALANCE_TILTBACK_ANGLE 15
|
||||||
|
|
||||||
|
// Tiltback Speed
|
||||||
|
#define APPCONF_BALANCE_TILTBACK_SPEED 5
|
||||||
|
|
||||||
|
// Duty Cycle Tiltback
|
||||||
|
#define APPCONF_BALANCE_TILTBACK_DUTY 0.75
|
||||||
|
|
||||||
|
// High Voltage Tiltback
|
||||||
|
#define APPCONF_BALANCE_TILTBACK_HIGH_V 200
|
||||||
|
|
||||||
|
// Low Voltage Tiltback
|
||||||
|
#define APPCONF_BALANCE_TILTBACK_LOW_V 0
|
||||||
|
|
||||||
|
// Constant Tiltback
|
||||||
|
#define APPCONF_BALANCE_TILTBACK_CONSTANT 0
|
||||||
|
|
||||||
|
// Constant Tiltback ERPM
|
||||||
|
#define APPCONF_BALANCE_TILTBACK_CONSTANT_ERPM 500
|
||||||
|
|
||||||
|
// Startup Pitch Axis Angle Tolerance
|
||||||
|
#define APPCONF_BALANCE_STARTUP_PITCH_TOLERANCE 20
|
||||||
|
|
||||||
|
// Startup Roll Axis Angle Tolerance
|
||||||
|
#define APPCONF_BALANCE_STARTUP_ROLL_TOLERANCE 8
|
||||||
|
|
||||||
|
// Startup Centering Speed
|
||||||
|
#define APPCONF_BALANCE_STARTUP_SPEED 30
|
||||||
|
|
||||||
|
// Deadzone
|
||||||
|
#define APPCONF_BALANCE_DEADZONE 0
|
||||||
|
|
||||||
|
// Multiple VESCs Over CAN
|
||||||
|
#define APPCONF_BALANCE_MULTI_ESC 0
|
||||||
|
|
||||||
|
// Yaw P
|
||||||
|
#define APPCONF_BALANCE_YAW_KP 0
|
||||||
|
|
||||||
|
// Yaw I
|
||||||
|
#define APPCONF_BALANCE_YAW_KI 0
|
||||||
|
|
||||||
|
// Yaw D
|
||||||
|
#define APPCONF_BALANCE_YAW_KD 0
|
||||||
|
|
||||||
|
// Roll Steer KP
|
||||||
|
#define APPCONF_BALANCE_ROLL_STEER_KP 0
|
||||||
|
|
||||||
|
// Roll Steer ERPM KP
|
||||||
|
#define APPCONF_BALANCE_ROLL_STEER_ERPM_KP 0
|
||||||
|
|
||||||
|
// Brake Current
|
||||||
|
#define APPCONF_BALANCE_BRAKE_CURRENT 0
|
||||||
|
|
||||||
|
// Yaw Current Clamp
|
||||||
|
#define APPCONF_BALANCE_YAW_CURRENT_CLAMP 0
|
||||||
|
|
||||||
|
// D term PT1 Filter
|
||||||
|
#define APPCONF_BALANCE_KD_PT1_FREQUENCY 0
|
||||||
|
|
||||||
|
// Start Angle
|
||||||
|
#define APPCONF_BALANCE_BOOSTER_ANGLE 8
|
||||||
|
|
||||||
|
// Ramp Up
|
||||||
|
#define APPCONF_BALANCE_BOOSTER_RAMP 1
|
||||||
|
|
||||||
|
// Current Boost
|
||||||
|
#define APPCONF_BALANCE_BOOSTER_CURRENT 0
|
||||||
|
|
||||||
|
// Start Current Threshold
|
||||||
|
#define APPCONF_BALANCE_TORQUETILT_START_CURRENT 10
|
||||||
|
|
||||||
|
// Tilitback Angle Limit
|
||||||
|
#define APPCONF_BALANCE_TORQUETILT_ANGLE_LIMIT 5
|
||||||
|
|
||||||
|
// Max Tiltback Speed
|
||||||
|
#define APPCONF_BALANCE_TORQUETILT_SPEED 5
|
||||||
|
|
||||||
|
// Strength
|
||||||
|
#define APPCONF_BALANCE_TORQUETILT_STRENGTH 0
|
||||||
|
|
||||||
|
// Current Filter
|
||||||
|
#define APPCONF_BALANCE_TORQUETILT_FILTER 0.95
|
||||||
|
|
||||||
|
// Strength
|
||||||
|
#define APPCONF_BALANCE_TURNTILT_STRENGTH 0
|
||||||
|
|
||||||
|
// Tilitback Angle Limit
|
||||||
|
#define APPCONF_BALANCE_TURNTILT_ANGLE_LIMIT 5
|
||||||
|
|
||||||
|
// Roll Angle Threshold
|
||||||
|
#define APPCONF_BALANCE_TURNTILT_START_ANGLE 1
|
||||||
|
|
||||||
|
// ERPM Threshold
|
||||||
|
#define APPCONF_BALANCE_TURNTILT_START_ERPM 100
|
||||||
|
|
||||||
|
// Max Tiltback Speed
|
||||||
|
#define APPCONF_BALANCE_TURNTILT_SPEED 5
|
||||||
|
|
||||||
|
// Speed Boost %
|
||||||
|
#define APPCONF_BALANCE_TURNTILT_ERPM_BOOST 20
|
||||||
|
|
||||||
|
// Speed Boost Max ERPM
|
||||||
|
#define APPCONF_BALANCE_TURNTILT_ERPM_BOOST_END 20000
|
||||||
|
|
||||||
|
// Control Type
|
||||||
|
#define APPCONF_PAS_CTRL_TYPE 2
|
||||||
|
|
||||||
|
// Sensor Type
|
||||||
|
#define APPCONF_PAS_SENSOR_TYPE 0
|
||||||
|
|
||||||
|
// PAS Max Current
|
||||||
|
#define APPCONF_PAS_CURRENT_SCALING 0.9
|
||||||
|
|
||||||
|
// Pedal RPM Start
|
||||||
|
#define APPCONF_PAS_PEDAL_RPM_START 10
|
||||||
|
|
||||||
|
// Pedal RPM End
|
||||||
|
#define APPCONF_PAS_PEDAL_RPM_END 120
|
||||||
|
|
||||||
|
// Invert Pedal Direction
|
||||||
|
#define APPCONF_PAS_INVERT_PEDAL_DIRECTION 0
|
||||||
|
|
||||||
|
// Sensor Magnets
|
||||||
|
#define APPCONF_PAS_MAGNETS 12
|
||||||
|
|
||||||
|
// Use Filter
|
||||||
|
#define APPCONF_PAS_USE_FILTER 1
|
||||||
|
|
||||||
|
// Positive Ramping Time
|
||||||
|
#define APPCONF_PAS_RAMP_TIME_POS 0.3
|
||||||
|
|
||||||
|
// Negative Ramping Time
|
||||||
|
#define APPCONF_PAS_RAMP_TIME_NEG 0.2
|
||||||
|
|
||||||
|
// Update Rate
|
||||||
|
#define APPCONF_PAS_UPDATE_RATE_HZ 500
|
||||||
|
|
||||||
|
// IMU Type
|
||||||
|
#define APPCONF_IMU_TYPE 1
|
||||||
|
|
||||||
|
// IMU AHRS Mode
|
||||||
|
#define APPCONF_IMU_AHRS_MODE 0
|
||||||
|
|
||||||
|
// Sample Rate
|
||||||
|
#define APPCONF_IMU_SAMPLE_RATE_HZ 200
|
||||||
|
|
||||||
|
// Accelerometer Confidence Decay
|
||||||
|
#define APPCONF_IMU_ACCEL_CONFIDENCE_DECAY 1
|
||||||
|
|
||||||
|
// Mahony KP
|
||||||
|
#define APPCONF_IMU_MAHONY_KP 0.3
|
||||||
|
|
||||||
|
// Mahony KI
|
||||||
|
#define APPCONF_IMU_MAHONY_KI 0
|
||||||
|
|
||||||
|
// Madgwick Beta
|
||||||
|
#define APPCONF_IMU_MADGWICK_BETA 0.1
|
||||||
|
|
||||||
|
// Imu Rotation Roll
|
||||||
|
#define APPCONF_IMU_ROT_ROLL 0
|
||||||
|
|
||||||
|
// Imu Rotation Pitch
|
||||||
|
#define APPCONF_IMU_ROT_PITCH 0
|
||||||
|
|
||||||
|
// Imu Rotation Yaw
|
||||||
|
#define APPCONF_IMU_ROT_YAW 0
|
||||||
|
|
||||||
|
// Accel Offset X
|
||||||
|
#define APPCONF_IMU_A_OFFSET_0 0
|
||||||
|
|
||||||
|
// Accel Offset Y
|
||||||
|
#define APPCONF_IMU_A_OFFSET_1 0
|
||||||
|
|
||||||
|
// Accel Offset Z
|
||||||
|
#define APPCONF_IMU_A_OFFSET_2 0
|
||||||
|
|
||||||
|
// Gyro Offset X
|
||||||
|
#define APPCONF_IMU_G_OFFSET_0 0
|
||||||
|
|
||||||
|
// Gyro Offset Y
|
||||||
|
#define APPCONF_IMU_G_OFFSET_1 0
|
||||||
|
|
||||||
|
// Gyro Offset Z
|
||||||
|
#define APPCONF_IMU_G_OFFSET_2 0
|
||||||
|
|
||||||
|
// Gyro Offset Comp X
|
||||||
|
#define APPCONF_IMU_G_OFFSET_COMP_FACT_0 0
|
||||||
|
|
||||||
|
// Gyro Offset Comp Y
|
||||||
|
#define APPCONF_IMU_G_OFFSET_COMP_FACT_1 0
|
||||||
|
|
||||||
|
// Gyro Offset Comp Z
|
||||||
|
#define APPCONF_IMU_G_OFFSET_COMP_FACT_2 0
|
||||||
|
|
||||||
|
// Gyro Offset Comp Clamp
|
||||||
|
#define APPCONF_IMU_G_OFFSET_COMP_CLAMP 5
|
||||||
|
|
||||||
|
// APPCONF_LUNA_M600_H_
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,347 @@
|
||||||
|
/*
|
||||||
|
Copyright 2020 Marcos Chaparro mchaparro@powerdesigns.ca
|
||||||
|
Copyright 2018 Benjamin Vedder benjamin@vedder.se
|
||||||
|
|
||||||
|
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 <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef HW_LUNA_M600_H_
|
||||||
|
#define HW_LUNA_M600_H_
|
||||||
|
|
||||||
|
#define FW_NAME "2022.11.18"
|
||||||
|
|
||||||
|
#include "mcconf_luna_m600.h"
|
||||||
|
#include "appconf_luna_m600.h"
|
||||||
|
|
||||||
|
#define QMLUI_SOURCE_HW "hwconf/luna/m600/qmlui_luna_m600.c"
|
||||||
|
#define QMLUI_HEADER_HW "hwconf/luna/m600/qmlui_luna_m600.h"
|
||||||
|
#define QMLUI_HW_FULLSCREEN
|
||||||
|
|
||||||
|
// HW properties
|
||||||
|
#define HW_HAS_GATE_DRIVER_SUPPLY_MONITOR
|
||||||
|
#define HW_HAS_WHEEL_SPEED_SENSOR
|
||||||
|
#define HW_HAS_PAS_TORQUE_SENSOR
|
||||||
|
#define HW_HAS_LUNA_CANBUS_DISPLAY
|
||||||
|
#define HW_USE_BRK
|
||||||
|
|
||||||
|
#ifdef M600_Rev5
|
||||||
|
#define HW_NAME "LUNA_M600_V2_Rev5"
|
||||||
|
#define HW_HAS_3_SHUNTS
|
||||||
|
#define HW_HAS_PHASE_FILTERS
|
||||||
|
#define HW_PHASE_A_FILTER_GPIO GPIOB
|
||||||
|
#define HW_PHASE_A_FILTER_PIN 5
|
||||||
|
#define HW_PHASE_B_FILTER_GPIO GPIOB
|
||||||
|
#define HW_PHASE_B_FILTER_PIN 4
|
||||||
|
#define HW_PHASE_C_FILTER_GPIO GPIOD
|
||||||
|
#define HW_PHASE_C_FILTER_PIN 2
|
||||||
|
#define PHASE_FILTER_ON() palClearPad(HW_PHASE_A_FILTER_GPIO, HW_PHASE_A_FILTER_PIN); \
|
||||||
|
palClearPad(HW_PHASE_B_FILTER_GPIO, HW_PHASE_B_FILTER_PIN); \
|
||||||
|
palClearPad(HW_PHASE_C_FILTER_GPIO, HW_PHASE_C_FILTER_PIN)
|
||||||
|
#define PHASE_FILTER_OFF() palSetPad(HW_PHASE_A_FILTER_GPIO, HW_PHASE_A_FILTER_PIN); \
|
||||||
|
palSetPad(HW_PHASE_B_FILTER_GPIO, HW_PHASE_B_FILTER_PIN); \
|
||||||
|
palSetPad(HW_PHASE_C_FILTER_GPIO, HW_PHASE_C_FILTER_PIN)
|
||||||
|
|
||||||
|
#else
|
||||||
|
#define HW_NAME "LUNA_M600_V2"
|
||||||
|
#define HW_HAS_PHASE_SHUNTS
|
||||||
|
// Some batches had the phase C shunt amplifier DNP, so this fills the gap
|
||||||
|
// Ia + Ib + Ic = 0 so Ic = -Ia - Ib
|
||||||
|
#define HW_HAS_3_SHUNTS
|
||||||
|
#define GET_CURRENT3() (-(GET_CURRENT1() - 2048.0 + GET_CURRENT2() -2048.0) + 2048.0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Macros
|
||||||
|
#define LED_GREEN_GPIO GPIOB
|
||||||
|
#define LED_GREEN_PIN 2
|
||||||
|
#define LED_RED_GPIO GPIOB
|
||||||
|
#define LED_RED_PIN 11
|
||||||
|
|
||||||
|
#define LED_GREEN_ON() palSetPad(LED_GREEN_GPIO, LED_GREEN_PIN)
|
||||||
|
#define LED_GREEN_OFF() palClearPad(LED_GREEN_GPIO, LED_GREEN_PIN)
|
||||||
|
#define LED_RED_ON() palSetPad(LED_RED_GPIO, LED_RED_PIN)
|
||||||
|
#define LED_RED_OFF() palClearPad(LED_RED_GPIO, LED_RED_PIN)
|
||||||
|
|
||||||
|
#define AUX_GPIO GPIOC
|
||||||
|
#define AUX_PIN 14
|
||||||
|
#define AUX_ON() palSetPad(AUX_GPIO, AUX_PIN)
|
||||||
|
#define AUX_OFF() palClearPad(AUX_GPIO, AUX_PIN)
|
||||||
|
|
||||||
|
#define MT6816_PROG_EN_GPIO GPIOD
|
||||||
|
#define MT6816_PROG_EN_PIN 2
|
||||||
|
#define MT6816_PROG_EN() palSetPad(MT6816_PROG_EN_GPIO, MT6816_PROG_EN_PIN)
|
||||||
|
#define MT6816_PROG_DISABLE() palClearPad(MT6816_PROG_EN_GPIO, MT6816_PROG_EN_PIN)
|
||||||
|
|
||||||
|
#define CURRENT_FILTER_ON()
|
||||||
|
#define CURRENT_FILTER_OFF()
|
||||||
|
|
||||||
|
#define BRK_GPIO GPIOB
|
||||||
|
#define BRK_PIN 12
|
||||||
|
|
||||||
|
// Shutdown pin
|
||||||
|
#define HW_SHUTDOWN_GPIO GPIOC
|
||||||
|
#define HW_SHUTDOWN_PIN 15
|
||||||
|
#define HW_SHUTDOWN_HOLD_ON() palSetPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN)
|
||||||
|
#define HW_SHUTDOWN_HOLD_OFF() palClearPad(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN)
|
||||||
|
#define HW_SAMPLE_SHUTDOWN() !hw_luna_m600_shutdown_button_down()
|
||||||
|
|
||||||
|
// Hold shutdown pin early to wake up on short pulses
|
||||||
|
#define HW_EARLY_INIT() palSetPadMode(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN, PAL_MODE_OUTPUT_PUSHPULL); \
|
||||||
|
HW_SHUTDOWN_HOLD_ON();
|
||||||
|
|
||||||
|
#define HW_ADC_CHANNELS 18
|
||||||
|
#define HW_ADC_INJ_CHANNELS 3
|
||||||
|
#define HW_ADC_NBR_CONV 6
|
||||||
|
|
||||||
|
// ADC Indexes
|
||||||
|
#define ADC_IND_SENS1 0
|
||||||
|
#define ADC_IND_SENS2 1
|
||||||
|
#define ADC_IND_SENS3 2
|
||||||
|
#define ADC_IND_CURR1 3
|
||||||
|
#define ADC_IND_CURR2 4
|
||||||
|
#define ADC_IND_CURR3 5
|
||||||
|
#define ADC_IND_VIN_SENS 11
|
||||||
|
#define ADC_IND_VOUT_GATE_DRV 12
|
||||||
|
#define ADC_IND_EXT 10
|
||||||
|
#define ADC_IND_EXT2 6
|
||||||
|
#define ADC_IND_EXT3 13
|
||||||
|
#define ADC_IND_TEMP_MOS 15
|
||||||
|
#define ADC_IND_ON_OFF_BUTTON 8
|
||||||
|
#define ADC_IND_TEMP_MOS_3 16
|
||||||
|
#define ADC_IND_TEMP_MOTOR 9
|
||||||
|
#define ADC_IND_VREFINT 16
|
||||||
|
|
||||||
|
// ADC macros and settings
|
||||||
|
|
||||||
|
// Component parameters (can be overridden)
|
||||||
|
#ifndef V_REG
|
||||||
|
#define V_REG 3.3
|
||||||
|
#endif
|
||||||
|
#ifndef VIN_R1
|
||||||
|
#define VIN_R1 66500.0
|
||||||
|
#endif
|
||||||
|
#ifndef VIN_R2
|
||||||
|
#define VIN_R2 2000.0
|
||||||
|
#endif
|
||||||
|
#ifndef CURRENT_AMP_GAIN
|
||||||
|
#define CURRENT_AMP_GAIN 20.0
|
||||||
|
#endif
|
||||||
|
#ifndef CURRENT_SHUNT_RES
|
||||||
|
#define CURRENT_SHUNT_RES (0.0005 / 2.0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Input voltage
|
||||||
|
#define GET_INPUT_VOLTAGE() ((V_REG / 4095.0) * (float)ADC_Value[ADC_IND_VIN_SENS] * ((VIN_R1 + VIN_R2) / VIN_R2))
|
||||||
|
|
||||||
|
// 12V supply voltage
|
||||||
|
#define GET_GATE_DRIVER_SUPPLY_VOLTAGE() ((float)ADC_VOLTS(ADC_IND_VOUT_GATE_DRV) * 11.0)
|
||||||
|
|
||||||
|
// ON-OFF button sense
|
||||||
|
#define GET_ON_OFF_BUTTON_VOLTAGE() ((float)ADC_VOLTS(ADC_IND_ON_OFF_BUTTON) * 4.57)
|
||||||
|
|
||||||
|
// NTC Termistors
|
||||||
|
#define NTC_RES(adc_val) (10000.0 * adc_val / ( 4095.0 - adc_val))
|
||||||
|
#define NTC_TEMP(adc_ind) hw_get_mosfet_temp_filtered()
|
||||||
|
#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.0 / con - 10.0)
|
||||||
|
#define PTC_TEMP_MOTOR_2(res, con, tbase) 0.0
|
||||||
|
#define MOTOR_TEMP_LPF 0.001
|
||||||
|
|
||||||
|
#define NTC_RES_MOTOR(adc_val) (1000.0 / ((4095.0 / (float)adc_val) - 1.0))
|
||||||
|
|
||||||
|
// Voltage on ADC channel
|
||||||
|
#define ADC_VOLTS(ch) ((float)ADC_Value[ch] / 4096.0 * V_REG)
|
||||||
|
|
||||||
|
// Use these temperature channels for extra logging insight
|
||||||
|
//log torque sensor data
|
||||||
|
#define NTC_TEMP_MOS1() hw_get_PAS_torque()
|
||||||
|
//log throttle data
|
||||||
|
#define NTC_TEMP_MOS2() ((float)ADC_VOLTS(ADC_IND_EXT))
|
||||||
|
// log gate driver supply voltage
|
||||||
|
//#define NTC_TEMP_MOS3() GET_GATE_DRIVER_SUPPLY_VOLTAGE()
|
||||||
|
#define NTC_TEMP_MOS3() hw_get_encoder_error()
|
||||||
|
|
||||||
|
// Double samples in beginning and end for positive current measurement.
|
||||||
|
// Useful when the shunt sense traces have noise that causes offset.
|
||||||
|
#ifndef CURR1_DOUBLE_SAMPLE
|
||||||
|
#define CURR1_DOUBLE_SAMPLE 0
|
||||||
|
#endif
|
||||||
|
#ifndef CURR2_DOUBLE_SAMPLE
|
||||||
|
#define CURR2_DOUBLE_SAMPLE 0
|
||||||
|
#endif
|
||||||
|
#ifndef CURR3_DOUBLE_SAMPLE
|
||||||
|
#define CURR3_DOUBLE_SAMPLE 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// COMM-port ADC GPIOs
|
||||||
|
#define HW_ADC_EXT_GPIO GPIOC
|
||||||
|
#define HW_ADC_EXT_PIN 5
|
||||||
|
#define HW_ADC_EXT2_GPIO GPIOB
|
||||||
|
#define HW_ADC_EXT2_PIN 0
|
||||||
|
|
||||||
|
// UART Peripheral
|
||||||
|
#define HW_UART_DEV SD3
|
||||||
|
#define HW_UART_GPIO_AF GPIO_AF_USART3
|
||||||
|
#define HW_UART_TX_PORT GPIOD
|
||||||
|
#define HW_UART_TX_PIN 8
|
||||||
|
#define HW_UART_RX_PORT GPIOD
|
||||||
|
#define HW_UART_RX_PIN 9
|
||||||
|
|
||||||
|
// Permanent UART Peripheral (for NRF51)
|
||||||
|
#define HW_UART_P_BAUD 115200
|
||||||
|
#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
|
||||||
|
#ifdef M600_Rev5
|
||||||
|
#define NRF5x_SWDIO_GPIO GPIOB
|
||||||
|
#define NRF5x_SWDIO_PIN 3
|
||||||
|
#define NRF5x_SWCLK_GPIO GPIOA
|
||||||
|
#define NRF5x_SWCLK_PIN 15
|
||||||
|
#else
|
||||||
|
#define NRF5x_SWDIO_GPIO GPIOA
|
||||||
|
#define NRF5x_SWDIO_PIN 15
|
||||||
|
#define NRF5x_SWCLK_GPIO GPIOB
|
||||||
|
#define NRF5x_SWCLK_PIN 3
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// 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 GPIOD
|
||||||
|
#define HW_ICU_PIN 12
|
||||||
|
|
||||||
|
// I2C Peripheral
|
||||||
|
#define HW_I2C_DEV I2CD2
|
||||||
|
#define HW_I2C_GPIO_AF GPIO_AF_I2C2
|
||||||
|
#define HW_I2C_SCL_PORT GPIOB
|
||||||
|
#define HW_I2C_SCL_PIN 10
|
||||||
|
#define HW_I2C_SDA_PORT GPIOB
|
||||||
|
#define HW_I2C_SDA_PIN 11
|
||||||
|
|
||||||
|
// Hall/encoder pins
|
||||||
|
#define HW_HALL_ENC_GPIO1 GPIOC
|
||||||
|
#define HW_HALL_ENC_PIN1 6
|
||||||
|
#define HW_HALL_ENC_GPIO2 GPIOC
|
||||||
|
#define HW_HALL_ENC_PIN2 7
|
||||||
|
#define HW_HALL_ENC_GPIO3 GPIOC
|
||||||
|
#define HW_HALL_ENC_PIN3 8
|
||||||
|
#define HW_ENC_TIM TIM3
|
||||||
|
#define HW_ENC_TIM_AF GPIO_AF_TIM3
|
||||||
|
#define HW_ENC_TIM_CLK_EN() RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE)
|
||||||
|
#define HW_ENC_EXTI_PORTSRC EXTI_PortSourceGPIOC
|
||||||
|
#define HW_ENC_EXTI_PINSRC EXTI_PinSource8
|
||||||
|
#define HW_ENC_EXTI_CH EXTI9_5_IRQn
|
||||||
|
#define HW_ENC_EXTI_LINE EXTI_Line8
|
||||||
|
#define HW_ENC_EXTI_ISR_VEC EXTI9_5_IRQHandler
|
||||||
|
#define HW_ENC_TIM_ISR_CH TIM3_IRQn
|
||||||
|
#define HW_ENC_TIM_ISR_VEC TIM3_IRQHandler
|
||||||
|
|
||||||
|
// SPI pins
|
||||||
|
#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 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 GPIOA
|
||||||
|
#define HW_PAS1_PIN 6
|
||||||
|
#define HW_PAS2_PORT GPIOA
|
||||||
|
#define HW_PAS2_PIN 7
|
||||||
|
|
||||||
|
#ifdef HW_HAS_WHEEL_SPEED_SENSOR
|
||||||
|
#define HW_SPEED_SENSOR_PORT GPIOC
|
||||||
|
#define HW_SPEED_SENSOR_PIN 9
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Measurement macros
|
||||||
|
#define ADC_V_L1 ADC_Value[ADC_IND_SENS1]
|
||||||
|
#define ADC_V_L2 ADC_Value[ADC_IND_SENS2]
|
||||||
|
#define ADC_V_L3 ADC_Value[ADC_IND_SENS3]
|
||||||
|
#define ADC_V_ZERO (ADC_Value[ADC_IND_VIN_SENS] / 2)
|
||||||
|
|
||||||
|
// Macros
|
||||||
|
#define READ_HALL1() palReadPad(HW_HALL_ENC_GPIO1, HW_HALL_ENC_PIN1)
|
||||||
|
#define READ_HALL2() palReadPad(HW_HALL_ENC_GPIO2, HW_HALL_ENC_PIN2)
|
||||||
|
#define READ_HALL3() palReadPad(HW_HALL_ENC_GPIO3, HW_HALL_ENC_PIN3)
|
||||||
|
|
||||||
|
// 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 150.0 // Input current limit in Amperes (Upper)
|
||||||
|
#endif
|
||||||
|
#ifndef MCCONF_L_IN_CURRENT_MIN
|
||||||
|
#define MCCONF_L_IN_CURRENT_MIN -150.0 // Input current limit in Amperes (Lower)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Setting limits
|
||||||
|
#define HW_LIM_CURRENT -100.0, 100.0
|
||||||
|
#define HW_LIM_CURRENT_IN -60.0, 60.0
|
||||||
|
#define HW_LIM_CURRENT_ABS 0.0, 200.0
|
||||||
|
#define HW_LIM_VIN 6.0, 86.0
|
||||||
|
#define HW_LIM_ERPM -200e3, 200e3
|
||||||
|
#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, 95.0
|
||||||
|
|
||||||
|
#define HW_GATE_DRIVER_SUPPLY_MIN_VOLTAGE 11.0
|
||||||
|
#define HW_GATE_DRIVER_SUPPLY_MAX_VOLTAGE 13.6
|
||||||
|
|
||||||
|
// HW-specific functions
|
||||||
|
void hw_update_speed_sensor(void);
|
||||||
|
float hw_get_speed(void);
|
||||||
|
float hw_get_distance(void);
|
||||||
|
float hw_get_distance_abs(void);
|
||||||
|
float hw_get_mosfet_temp_filtered(void);
|
||||||
|
bool hw_luna_m600_shutdown_button_down(void);
|
||||||
|
bool hw_luna_m600_minus_button_down(void);
|
||||||
|
float hw_get_PAS_torque(void);
|
||||||
|
bool hw_m600_has_fixed_throttle_level(void);
|
||||||
|
void hw_recover_encoder_offset(void);
|
||||||
|
float hw_get_encoder_error(void);
|
||||||
|
|
||||||
|
#endif /* HW_LUNA_M600_H_ */
|
|
@ -0,0 +1,27 @@
|
||||||
|
/*
|
||||||
|
Copyright 2016 - 2022 Benjamin Vedder benjamin@vedder.se
|
||||||
|
|
||||||
|
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 <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef HW_LUNA_M600_REV5_H_
|
||||||
|
#define HW_LUNA_M600_REV5_H_
|
||||||
|
|
||||||
|
#define M600_Rev5
|
||||||
|
|
||||||
|
#include "hw_luna_m600.h"
|
||||||
|
|
||||||
|
#endif /* HW_LUNA_M600_REV5_H_ */
|
|
@ -0,0 +1,488 @@
|
||||||
|
/*
|
||||||
|
Copyright 2020 Marcos Chaparro mchaparro@powerdesigns.ca
|
||||||
|
Copyright 2018 Benjamin Vedder benjamin@vedder.se
|
||||||
|
|
||||||
|
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 <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "hw.h"
|
||||||
|
#include "luna_m600_display.h"
|
||||||
|
#include "ch.h"
|
||||||
|
#include "hal.h"
|
||||||
|
#include "stm32f4xx_conf.h"
|
||||||
|
#include "utils.h"
|
||||||
|
#include <math.h>
|
||||||
|
#include "mc_interface.h"
|
||||||
|
#include "mempools.h"
|
||||||
|
#include "mcpwm_foc.h"
|
||||||
|
#include "app.h"
|
||||||
|
|
||||||
|
// for double pulse test:
|
||||||
|
#include "stdio.h"
|
||||||
|
#include "string.h"
|
||||||
|
#include "commands.h"
|
||||||
|
#include "terminal.h"
|
||||||
|
|
||||||
|
#define EEPROM_ADDR_FIXED_THROTTLE_LEVEL 2
|
||||||
|
|
||||||
|
// Variables
|
||||||
|
static volatile bool i2c_running = false;
|
||||||
|
|
||||||
|
// Private functions
|
||||||
|
static void terminal_cmd_set_m600_use_fixed_throttle_level(int argc, const char **argv);
|
||||||
|
static void terminal_cmd_m600_correct_encoder_offset(int argc, const char **argv);
|
||||||
|
static void hw_override_pairing_done(void);
|
||||||
|
|
||||||
|
// I2C configuration
|
||||||
|
static const I2CConfig i2cfg = {
|
||||||
|
OPMODE_I2C,
|
||||||
|
100000,
|
||||||
|
STD_DUTY_CYCLE
|
||||||
|
};
|
||||||
|
|
||||||
|
// Backup data that we want to preserve across firmware updates
|
||||||
|
typedef struct __attribute__((packed)) {
|
||||||
|
uint8_t encoder_offset_calibration_done;
|
||||||
|
float encoder_offset;
|
||||||
|
char fw_version[16];
|
||||||
|
}m600_backup_t;
|
||||||
|
|
||||||
|
// The config is stored in the backup struct so that it is stored while sleeping.
|
||||||
|
static volatile m600_backup_t *m600_backup = (m600_backup_t*)g_backup.hw_config;
|
||||||
|
|
||||||
|
void hw_init_gpio(void) {
|
||||||
|
|
||||||
|
//we can use __TIMESTAMP__ if we redefine it in the makefile gcc ... -Wno-builtin-macro-redefined -D__TIMESTAMP__=$(date +'"%Y-%m-%dT%H:%M:%S"') ...
|
||||||
|
// https://stackoverflow.com/questions/17498556/c-preprocessor-timestamp-in-iso-86012004/
|
||||||
|
|
||||||
|
// GPIO clock enable
|
||||||
|
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
|
||||||
|
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
|
||||||
|
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
|
||||||
|
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);
|
||||||
|
|
||||||
|
// 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(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);
|
||||||
|
palSetPadMode(HW_HALL_ENC_GPIO2, HW_HALL_ENC_PIN2, PAL_MODE_INPUT_PULLUP);
|
||||||
|
palSetPadMode(HW_HALL_ENC_GPIO3, HW_HALL_ENC_PIN3, PAL_MODE_INPUT_PULLUP);
|
||||||
|
|
||||||
|
#ifdef HW_USE_BRK
|
||||||
|
// BRK Fault pin
|
||||||
|
palSetPadMode(BRK_GPIO, BRK_PIN, PAL_MODE_ALTERNATE(GPIO_AF_TIM1));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HW_HAS_WHEEL_SPEED_SENSOR
|
||||||
|
palSetPadMode(HW_SPEED_SENSOR_PORT, HW_SPEED_SENSOR_PIN, PAL_MODE_INPUT_PULLUP);
|
||||||
|
#endif
|
||||||
|
// Current filter
|
||||||
|
palSetPadMode(GPIOC, 13, PAL_MODE_OUTPUT_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
|
||||||
|
CURRENT_FILTER_OFF();
|
||||||
|
|
||||||
|
#ifdef M600_Rev5
|
||||||
|
// Phase voltage filter. Disabled by default
|
||||||
|
palSetPadMode(HW_PHASE_A_FILTER_GPIO, HW_PHASE_A_FILTER_PIN, PAL_MODE_OUTPUT_OPENDRAIN | PAL_STM32_OSPEED_HIGHEST);
|
||||||
|
palSetPadMode(HW_PHASE_B_FILTER_GPIO, HW_PHASE_B_FILTER_PIN, PAL_MODE_OUTPUT_OPENDRAIN | PAL_STM32_OSPEED_HIGHEST);
|
||||||
|
palSetPadMode(HW_PHASE_C_FILTER_GPIO, HW_PHASE_C_FILTER_PIN, PAL_MODE_OUTPUT_OPENDRAIN | PAL_STM32_OSPEED_HIGHEST);
|
||||||
|
PHASE_FILTER_OFF();
|
||||||
|
#else
|
||||||
|
//MT6816 program enable
|
||||||
|
palSetPadMode(MT6816_PROG_EN_GPIO, MT6816_PROG_EN_PIN, PAL_MODE_OUTPUT_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
|
||||||
|
MT6816_PROG_DISABLE();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// AUX pin
|
||||||
|
AUX_OFF();
|
||||||
|
palSetPadMode(AUX_GPIO, AUX_PIN, PAL_MODE_OUTPUT_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
|
||||||
|
|
||||||
|
// Shutdown latch
|
||||||
|
palSetPadMode(HW_SHUTDOWN_GPIO, HW_SHUTDOWN_PIN, PAL_MODE_OUTPUT_PUSHPULL | PAL_STM32_OSPEED_HIGHEST);
|
||||||
|
HW_SHUTDOWN_HOLD_ON();
|
||||||
|
|
||||||
|
// 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); // ON-OFF button sense
|
||||||
|
palSetPadMode(GPIOA, 5, PAL_MODE_INPUT_ANALOG);
|
||||||
|
|
||||||
|
palSetPadMode(GPIOB, 0, PAL_MODE_INPUT_ANALOG);
|
||||||
|
palSetPadMode(GPIOB, 1, PAL_MODE_INPUT_ANALOG);
|
||||||
|
|
||||||
|
palSetPadMode(GPIOC, 0, PAL_MODE_INPUT_ANALOG);
|
||||||
|
palSetPadMode(GPIOC, 1, PAL_MODE_INPUT_ANALOG);
|
||||||
|
palSetPadMode(GPIOC, 2, PAL_MODE_INPUT_ANALOG);
|
||||||
|
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(
|
||||||
|
"fix_throttle",
|
||||||
|
"Usage: fix_throttle [1 or 0]",
|
||||||
|
0,
|
||||||
|
terminal_cmd_set_m600_use_fixed_throttle_level);
|
||||||
|
|
||||||
|
terminal_register_command_callback(
|
||||||
|
"correct_encoder",
|
||||||
|
"Detect and apply encoder offset",
|
||||||
|
0,
|
||||||
|
terminal_cmd_m600_correct_encoder_offset);
|
||||||
|
|
||||||
|
hw_override_pairing_done();
|
||||||
|
|
||||||
|
luna_canbus_start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void hw_setup_adc_channels(void) {
|
||||||
|
// ADC1 regular channels
|
||||||
|
ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_15Cycles); // 0 SENS1
|
||||||
|
ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 2, ADC_SampleTime_15Cycles); // 3 CURR1
|
||||||
|
ADC_RegularChannelConfig(ADC1, ADC_Channel_8, 3, ADC_SampleTime_15Cycles); // 6 ADC_IND_EXT2
|
||||||
|
ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 4, ADC_SampleTime_15Cycles); // 9 TEMP_MOTOR
|
||||||
|
ADC_RegularChannelConfig(ADC1, ADC_Channel_9, 5, ADC_SampleTime_15Cycles); // 12 V_GATE_DRIVER
|
||||||
|
ADC_RegularChannelConfig(ADC1, ADC_Channel_5, 6, ADC_SampleTime_15Cycles); // 15 TEMP_FET
|
||||||
|
|
||||||
|
// ADC2 regular channels
|
||||||
|
ADC_RegularChannelConfig(ADC2, ADC_Channel_1, 1, ADC_SampleTime_15Cycles); // 1 SENS2
|
||||||
|
ADC_RegularChannelConfig(ADC2, ADC_Channel_11, 2, ADC_SampleTime_15Cycles); // 4 CURR2
|
||||||
|
ADC_RegularChannelConfig(ADC2, ADC_Channel_6, 3, ADC_SampleTime_15Cycles); // 7 UNUSED
|
||||||
|
ADC_RegularChannelConfig(ADC2, ADC_Channel_15, 4, ADC_SampleTime_15Cycles); // 10 ADC_IND_EXT
|
||||||
|
ADC_RegularChannelConfig(ADC2, ADC_Channel_7, 5, ADC_SampleTime_15Cycles); // 13 ADC_IND_EXT3
|
||||||
|
ADC_RegularChannelConfig(ADC2, ADC_Channel_Vrefint, 6, ADC_SampleTime_15Cycles);// 16 ADC_IND_VREFINT
|
||||||
|
|
||||||
|
// ADC3 regular channels
|
||||||
|
ADC_RegularChannelConfig(ADC3, ADC_Channel_2, 1, ADC_SampleTime_15Cycles); // 2 SENS3
|
||||||
|
ADC_RegularChannelConfig(ADC3, ADC_Channel_12, 2, ADC_SampleTime_15Cycles); // 5 CURR3
|
||||||
|
ADC_RegularChannelConfig(ADC3, ADC_Channel_3, 3, ADC_SampleTime_15Cycles); // 8 ON-OFF button
|
||||||
|
ADC_RegularChannelConfig(ADC3, ADC_Channel_13, 4, ADC_SampleTime_15Cycles); // 11 VBUS
|
||||||
|
ADC_RegularChannelConfig(ADC3, ADC_Channel_1, 5, ADC_SampleTime_15Cycles); // 14 UNUSED
|
||||||
|
ADC_RegularChannelConfig(ADC3, ADC_Channel_Vrefint, 6, ADC_SampleTime_15Cycles);// 18 UNUSED
|
||||||
|
|
||||||
|
// Injected channels
|
||||||
|
ADC_InjectedChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_15Cycles);
|
||||||
|
ADC_InjectedChannelConfig(ADC2, ADC_Channel_11, 1, ADC_SampleTime_15Cycles);
|
||||||
|
ADC_InjectedChannelConfig(ADC3, ADC_Channel_12, 1, ADC_SampleTime_15Cycles);
|
||||||
|
ADC_InjectedChannelConfig(ADC1, ADC_Channel_10, 2, ADC_SampleTime_15Cycles);
|
||||||
|
ADC_InjectedChannelConfig(ADC2, ADC_Channel_11, 2, ADC_SampleTime_15Cycles);
|
||||||
|
ADC_InjectedChannelConfig(ADC3, ADC_Channel_12, 2, ADC_SampleTime_15Cycles);
|
||||||
|
ADC_InjectedChannelConfig(ADC1, ADC_Channel_10, 3, ADC_SampleTime_15Cycles);
|
||||||
|
ADC_InjectedChannelConfig(ADC2, ADC_Channel_11, 3, ADC_SampleTime_15Cycles);
|
||||||
|
ADC_InjectedChannelConfig(ADC3, ADC_Channel_12, 3, ADC_SampleTime_15Cycles);
|
||||||
|
}
|
||||||
|
|
||||||
|
void hw_start_i2c(void) {
|
||||||
|
i2cAcquireBus(&HW_I2C_DEV);
|
||||||
|
|
||||||
|
if (!i2c_running) {
|
||||||
|
palSetPadMode(HW_I2C_SCL_PORT, HW_I2C_SCL_PIN,
|
||||||
|
PAL_MODE_ALTERNATE(HW_I2C_GPIO_AF) |
|
||||||
|
PAL_STM32_OTYPE_OPENDRAIN |
|
||||||
|
PAL_STM32_OSPEED_MID1 |
|
||||||
|
PAL_STM32_PUDR_PULLUP);
|
||||||
|
palSetPadMode(HW_I2C_SDA_PORT, HW_I2C_SDA_PIN,
|
||||||
|
PAL_MODE_ALTERNATE(HW_I2C_GPIO_AF) |
|
||||||
|
PAL_STM32_OTYPE_OPENDRAIN |
|
||||||
|
PAL_STM32_OSPEED_MID1 |
|
||||||
|
PAL_STM32_PUDR_PULLUP);
|
||||||
|
|
||||||
|
i2cStart(&HW_I2C_DEV, &i2cfg);
|
||||||
|
i2c_running = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
i2cReleaseBus(&HW_I2C_DEV);
|
||||||
|
}
|
||||||
|
|
||||||
|
void hw_stop_i2c(void) {
|
||||||
|
i2cAcquireBus(&HW_I2C_DEV);
|
||||||
|
|
||||||
|
if (i2c_running) {
|
||||||
|
palSetPadMode(HW_I2C_SCL_PORT, HW_I2C_SCL_PIN, PAL_MODE_INPUT);
|
||||||
|
palSetPadMode(HW_I2C_SDA_PORT, HW_I2C_SDA_PIN, PAL_MODE_INPUT);
|
||||||
|
|
||||||
|
i2cStop(&HW_I2C_DEV);
|
||||||
|
i2c_running = false;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
i2cReleaseBus(&HW_I2C_DEV);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Try to restore the i2c bus
|
||||||
|
*/
|
||||||
|
void hw_try_restore_i2c(void) {
|
||||||
|
if (i2c_running) {
|
||||||
|
i2cAcquireBus(&HW_I2C_DEV);
|
||||||
|
|
||||||
|
palSetPadMode(HW_I2C_SCL_PORT, HW_I2C_SCL_PIN,
|
||||||
|
PAL_STM32_OTYPE_OPENDRAIN |
|
||||||
|
PAL_STM32_OSPEED_MID1 |
|
||||||
|
PAL_STM32_PUDR_PULLUP);
|
||||||
|
|
||||||
|
palSetPadMode(HW_I2C_SDA_PORT, HW_I2C_SDA_PIN,
|
||||||
|
PAL_STM32_OTYPE_OPENDRAIN |
|
||||||
|
PAL_STM32_OSPEED_MID1 |
|
||||||
|
PAL_STM32_PUDR_PULLUP);
|
||||||
|
|
||||||
|
palSetPad(HW_I2C_SCL_PORT, HW_I2C_SCL_PIN);
|
||||||
|
palSetPad(HW_I2C_SDA_PORT, HW_I2C_SDA_PIN);
|
||||||
|
|
||||||
|
chThdSleep(1);
|
||||||
|
|
||||||
|
for(int i = 0;i < 16;i++) {
|
||||||
|
palClearPad(HW_I2C_SCL_PORT, HW_I2C_SCL_PIN);
|
||||||
|
chThdSleep(1);
|
||||||
|
palSetPad(HW_I2C_SCL_PORT, HW_I2C_SCL_PIN);
|
||||||
|
chThdSleep(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Generate start then stop condition
|
||||||
|
palClearPad(HW_I2C_SDA_PORT, HW_I2C_SDA_PIN);
|
||||||
|
chThdSleep(1);
|
||||||
|
palClearPad(HW_I2C_SCL_PORT, HW_I2C_SCL_PIN);
|
||||||
|
chThdSleep(1);
|
||||||
|
palSetPad(HW_I2C_SCL_PORT, HW_I2C_SCL_PIN);
|
||||||
|
chThdSleep(1);
|
||||||
|
palSetPad(HW_I2C_SDA_PORT, HW_I2C_SDA_PIN);
|
||||||
|
|
||||||
|
palSetPadMode(HW_I2C_SCL_PORT, HW_I2C_SCL_PIN,
|
||||||
|
PAL_MODE_ALTERNATE(HW_I2C_GPIO_AF) |
|
||||||
|
PAL_STM32_OTYPE_OPENDRAIN |
|
||||||
|
PAL_STM32_OSPEED_MID1 |
|
||||||
|
PAL_STM32_PUDR_PULLUP);
|
||||||
|
|
||||||
|
palSetPadMode(HW_I2C_SDA_PORT, HW_I2C_SDA_PIN,
|
||||||
|
PAL_MODE_ALTERNATE(HW_I2C_GPIO_AF) |
|
||||||
|
PAL_STM32_OTYPE_OPENDRAIN |
|
||||||
|
PAL_STM32_OSPEED_MID1 |
|
||||||
|
PAL_STM32_PUDR_PULLUP);
|
||||||
|
|
||||||
|
HW_I2C_DEV.state = I2C_STOP;
|
||||||
|
i2cStart(&HW_I2C_DEV, &i2cfg);
|
||||||
|
|
||||||
|
i2cReleaseBus(&HW_I2C_DEV);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
volatile float wheel_rpm_filtered = 0;
|
||||||
|
volatile float trip_odometer = 1.0; //avoids huge consumption numbers in the gauges
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
sensor_state = palReadPad(HW_SPEED_SENSOR_PORT, HW_SPEED_SENSOR_PIN);
|
||||||
|
|
||||||
|
if(sensor_state == 0 && sensor_state_old == 1 ) {
|
||||||
|
float revolution_duration = current_time - last_sensor_event_time;
|
||||||
|
|
||||||
|
if (revolution_duration > 0.11) { //ignore periods <110ms, which is about 68km/h
|
||||||
|
last_sensor_event_time = current_time;
|
||||||
|
wheel_rpm = 60.0 / revolution_duration;
|
||||||
|
UTILS_LP_FAST(wheel_rpm_filtered, (float)wheel_rpm, 0.5);
|
||||||
|
|
||||||
|
// For some reason a race condition on startup crashes the OS if this is executed too soon.
|
||||||
|
// So don't track odometer for the first 4 seconds
|
||||||
|
if(current_time > 4.0) {
|
||||||
|
trip_odometer += mc_interface_get_configuration()->si_wheel_diameter * M_PI;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Get trip distance in meters */
|
||||||
|
float hw_get_distance(void) {
|
||||||
|
return trip_odometer;
|
||||||
|
}
|
||||||
|
|
||||||
|
float hw_get_distance_abs(void) {
|
||||||
|
return trip_odometer;
|
||||||
|
}
|
||||||
|
|
||||||
|
float hw_get_mosfet_temp_filtered(void) {
|
||||||
|
static float mosfet_temp_filtered = 25.0;
|
||||||
|
float mosfet_temp = (1.0 / ((logf(NTC_RES(ADC_Value[ADC_IND_TEMP_MOS]) / 10000.0) / 3455.0) + (1.0 / 298.15)) - 273.15);
|
||||||
|
|
||||||
|
UTILS_LP_FAST(mosfet_temp_filtered, (float)mosfet_temp, 0.1);
|
||||||
|
return mosfet_temp_filtered;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool hw_luna_m600_shutdown_button_down(void) {
|
||||||
|
static float button_filtered = 0.0;
|
||||||
|
UTILS_LP_FAST(button_filtered, GET_ON_OFF_BUTTON_VOLTAGE(), 0.01);
|
||||||
|
return (button_filtered < 1.35);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool hw_luna_m600_minus_button_down(void) {
|
||||||
|
static float button_filtered = 0.0;
|
||||||
|
UTILS_LP_FAST(button_filtered, GET_ON_OFF_BUTTON_VOLTAGE(), 0.05);
|
||||||
|
return (button_filtered >= 1.35 && button_filtered < 2.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void terminal_cmd_set_m600_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_m600_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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
float hw_get_PAS_torque(void) {
|
||||||
|
return luna_canbus_get_PAS_torque();
|
||||||
|
}
|
||||||
|
|
||||||
|
float hw_get_encoder_error(void) {
|
||||||
|
static float angle_diff_filtered = 0.0;
|
||||||
|
float angle_diff = 0.0;
|
||||||
|
|
||||||
|
// some batches have only 2 current sensors, so better rely only in
|
||||||
|
// the phase voltage tracker which runs with no modulation and is
|
||||||
|
// accurate at mid-high rpm
|
||||||
|
if(mc_interface_get_state() != MC_STATE_OFF && mc_interface_get_duty_cycle_now() > 0.4) {
|
||||||
|
angle_diff = utils_angle_difference(mcpwm_foc_get_phase_encoder(), mcpwm_foc_get_phase_observer());
|
||||||
|
}
|
||||||
|
|
||||||
|
UTILS_LP_FAST(angle_diff_filtered, angle_diff, 0.005);
|
||||||
|
return angle_diff_filtered;
|
||||||
|
}
|
||||||
|
|
||||||
|
void hw_recover_encoder_offset(void) {
|
||||||
|
if (mc_interface_get_configuration()->foc_encoder_offset > 360.0 ) {
|
||||||
|
//invalid encoder offset found in flash, probably its the first boot after a fw update
|
||||||
|
if (m600_backup->encoder_offset_calibration_done && m600_backup->encoder_offset <= 360.0) {
|
||||||
|
//invalid offset found in flash, but there is a valid offset backed up. Use it.
|
||||||
|
mc_configuration *mcconf = mempools_alloc_mcconf();
|
||||||
|
*mcconf = *mc_interface_get_configuration();
|
||||||
|
|
||||||
|
mcconf->foc_encoder_offset = m600_backup->encoder_offset;
|
||||||
|
mc_interface_set_configuration(mcconf);
|
||||||
|
conf_general_store_mc_configuration(mcconf, false);
|
||||||
|
|
||||||
|
mempools_free_mcconf(mcconf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
// encoder offset is valid, lets check that the backed up value is the same
|
||||||
|
float mc_conf_encoder_offset = mc_interface_get_configuration()->foc_encoder_offset;
|
||||||
|
|
||||||
|
if(mc_conf_encoder_offset <= 360.0) {
|
||||||
|
//user could have written a new offset angle. Update the backup.
|
||||||
|
if(m600_backup->encoder_offset_calibration_done == false || mc_conf_encoder_offset != m600_backup->encoder_offset) {
|
||||||
|
m600_backup->encoder_offset = mc_conf_encoder_offset;
|
||||||
|
m600_backup->encoder_offset_calibration_done = true;
|
||||||
|
conf_general_store_backup_data();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void terminal_cmd_m600_correct_encoder_offset(int argc, const char **argv) {
|
||||||
|
(void)argc;
|
||||||
|
(void)argv;
|
||||||
|
|
||||||
|
mc_configuration *mcconf = mempools_alloc_mcconf();
|
||||||
|
*mcconf = *mc_interface_get_configuration();
|
||||||
|
mc_configuration *mcconf_old = mempools_alloc_mcconf();
|
||||||
|
*mcconf_old = *mcconf;
|
||||||
|
|
||||||
|
float current = 15.0;
|
||||||
|
|
||||||
|
mcconf->motor_type = MOTOR_TYPE_FOC;
|
||||||
|
mcconf->foc_f_zv = 10000.0;
|
||||||
|
mcconf->foc_current_kp = 0.01;
|
||||||
|
mcconf->foc_current_ki = 10.0;
|
||||||
|
mc_interface_set_configuration(mcconf);
|
||||||
|
|
||||||
|
float offset = 0.0;
|
||||||
|
float ratio = 0.0;
|
||||||
|
bool inverted = false;
|
||||||
|
mcpwm_foc_encoder_detect(current, false, &offset, &ratio, &inverted);
|
||||||
|
|
||||||
|
mcconf_old->foc_encoder_offset = offset;
|
||||||
|
mcconf->foc_encoder_offset = offset;
|
||||||
|
mc_interface_set_configuration(mcconf_old);
|
||||||
|
mc_interface_set_configuration(mcconf);
|
||||||
|
|
||||||
|
mempools_free_mcconf(mcconf);
|
||||||
|
mempools_free_mcconf(mcconf_old);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Users are getting locked out because they don't know what pairing means. Lets disable the pairing
|
||||||
|
static void hw_override_pairing_done(void) {
|
||||||
|
if( app_get_configuration()->pairing_done == true) {
|
||||||
|
app_configuration *appconf = mempools_alloc_appconf();
|
||||||
|
*appconf = *app_get_configuration();
|
||||||
|
appconf->pairing_done = false;
|
||||||
|
|
||||||
|
conf_general_store_app_configuration(appconf);
|
||||||
|
app_set_configuration(appconf);
|
||||||
|
|
||||||
|
mempools_free_appconf(appconf);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,720 @@
|
||||||
|
/*
|
||||||
|
Copyright 2020 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 <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "conf_general.h"
|
||||||
|
#ifdef HW_HAS_LUNA_CANBUS_DISPLAY
|
||||||
|
#include "hw.h"
|
||||||
|
#include "luna_m600_display.h"
|
||||||
|
#include "app.h"
|
||||||
|
#include "ch.h"
|
||||||
|
#include "hal.h"
|
||||||
|
#include "packet.h"
|
||||||
|
#include "commands.h"
|
||||||
|
#include "mc_interface.h"
|
||||||
|
#include "utils.h"
|
||||||
|
#include <math.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include "comm_can.h"
|
||||||
|
#include "shutdown.h"
|
||||||
|
#include "datatypes.h"
|
||||||
|
#include "timeout.h"
|
||||||
|
|
||||||
|
#include "mcpwm_foc.h" // for encoder angle error
|
||||||
|
|
||||||
|
#define LUNA_TORQUE_SENSOR_DEFAULT_TORQUE 0x02EE
|
||||||
|
#define LUNA_TORQUE_SENSOR_MINIMUM_TORQUE 0x0300
|
||||||
|
#define LUNA_TORQUE_SENSOR_MAXIMUM_TORQUE 0x0600
|
||||||
|
|
||||||
|
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_DISPLAY_ID1 = 0x03106300,
|
||||||
|
LUNA_TORQUE_SENSOR_ID = 0x01F83100,
|
||||||
|
} LUNA_CAN_IDs;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
LUNA_DISPLAY_ID1_LENGTH_BYTES = 4,
|
||||||
|
LUNA_TORQUE_SENSOR_ID_LENGTH_BYTES = 4,
|
||||||
|
} LUNA_CAN_IDs_LENGTH_BYTES;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
LUNA_LIGHT_MODE_OFF = 0,
|
||||||
|
LUNA_LIGHT_MODE_ON = 1,
|
||||||
|
LUNA_LIGHT_MODE_TURNING_OFF = 2,
|
||||||
|
LUNA_LIGHT_MODE_TURNING_ON = 3,
|
||||||
|
} LUNA_LIGHT_CONTROL_MODE;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
LUNA_ERROR_NONE = 0x00,
|
||||||
|
LUNA_ERROR_BRAKES = 0x03,
|
||||||
|
LUNA_ERROR_THROTTLE = 0x05,
|
||||||
|
LUNA_ERROR_UNDER_VOLTAGE = 0x06,
|
||||||
|
LUNA_ERROR_HIGH_VOLTAGE = 0x07,
|
||||||
|
LUNA_ERROR_ENCODER = 0x08,
|
||||||
|
LUNA_ERROR_MOTOR_OVERTEMP = 0x10,
|
||||||
|
LUNA_ERROR_MOSFET_OVERTEMP = 0x11,
|
||||||
|
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 enum{
|
||||||
|
SEND_BATTERY_RANGE_STATE,
|
||||||
|
SEND_SPEED_CURRENT_VOLTAGE_STATE,
|
||||||
|
SEND_SPEED_LIMIT_WHEEL_SIZE_STATE,
|
||||||
|
SEND_CALORIES_STATE,
|
||||||
|
SEND_ERROR_STATE,
|
||||||
|
SEND_SHUTDOWN_STATE,
|
||||||
|
}can_display_process_states_t;
|
||||||
|
|
||||||
|
typedef struct{
|
||||||
|
LUNA_LIGHT_CONTROL_MODE light_mode;
|
||||||
|
LUNA_PAS_LEVEL pas_level;
|
||||||
|
LUNA_ERROR_CODES error_code;
|
||||||
|
bool torque_sensor_is_active;
|
||||||
|
float pas_torque;
|
||||||
|
uint8_t assist_code;
|
||||||
|
}luna_settings_t;
|
||||||
|
|
||||||
|
static volatile luna_settings_t luna_settings = { .light_mode = LUNA_LIGHT_MODE_OFF,
|
||||||
|
.pas_level = PAS_LEVEL_0,
|
||||||
|
.error_code = LUNA_ERROR_NONE,
|
||||||
|
.torque_sensor_is_active = false,
|
||||||
|
.pas_torque = 0.0
|
||||||
|
};
|
||||||
|
static volatile bool display_thread_is_running = false;
|
||||||
|
static volatile bool display_uart_is_running = false;
|
||||||
|
|
||||||
|
// Threads
|
||||||
|
static THD_WORKING_AREA(display_process_thread_wa, 1024);
|
||||||
|
static THD_FUNCTION(display_process_thread, arg);
|
||||||
|
|
||||||
|
static bool check_light_mode(uint8_t light_mode);
|
||||||
|
static bool check_assist_level(uint8_t assist_code);
|
||||||
|
static void set_assist_level(uint8_t assist_code);
|
||||||
|
static void can_bus_display_process(uint32_t dt_ms);
|
||||||
|
static bool can_bus_rx_callback(uint32_t id, uint8_t *data, uint8_t len);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize the display and torque sensor for M600 drive units
|
||||||
|
*/
|
||||||
|
void luna_canbus_start(void) {
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get torque applied to the crank arms
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* 0.0 for no torque applied, 1.0 for maximum torque applied
|
||||||
|
*/
|
||||||
|
float luna_canbus_get_PAS_torque(void){
|
||||||
|
return luna_settings.pas_torque / (LUNA_TORQUE_SENSOR_MAXIMUM_TORQUE - LUNA_TORQUE_SENSOR_MINIMUM_TORQUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
uint16_t luna_canbus_get_max_torque_level(void){
|
||||||
|
return (LUNA_TORQUE_SENSOR_MAXIMUM_TORQUE - LUNA_TORQUE_SENSOR_MINIMUM_TORQUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the current Pedal Assist level
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* Assist level from 0 (min) to 9 (max power).
|
||||||
|
*/
|
||||||
|
LUNA_PAS_LEVEL luna_canbus_get_pas_level(void){
|
||||||
|
return luna_settings.pas_level;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* checks if the light mode is valid
|
||||||
|
*
|
||||||
|
* @param light_mode
|
||||||
|
* Parameter to check
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* true if valid, false if not.
|
||||||
|
*/
|
||||||
|
static bool check_light_mode(uint8_t light_mode) {
|
||||||
|
bool ret = false;
|
||||||
|
|
||||||
|
switch (light_mode) {
|
||||||
|
case LUNA_LIGHT_MODE_OFF:
|
||||||
|
case LUNA_LIGHT_MODE_ON:
|
||||||
|
case LUNA_LIGHT_MODE_TURNING_OFF:
|
||||||
|
case LUNA_LIGHT_MODE_TURNING_ON:
|
||||||
|
ret = true;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the assist code corresponds to a current level
|
||||||
|
*
|
||||||
|
* @param assist_code
|
||||||
|
* Parameter to check
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* 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:
|
||||||
|
case PAS_LEVEL_WALK:
|
||||||
|
ret = true;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the PAS level according to the assist code
|
||||||
|
*
|
||||||
|
* @param assist_code
|
||||||
|
* Assist level to apply
|
||||||
|
*/
|
||||||
|
static void set_assist_level(uint8_t assist_code) {
|
||||||
|
float current_scale;
|
||||||
|
volatile mc_configuration *mcconf = (volatile mc_configuration*) mc_interface_get_configuration();
|
||||||
|
|
||||||
|
luna_settings.assist_code = assist_code;
|
||||||
|
|
||||||
|
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;
|
||||||
|
case PAS_LEVEL_WALK: current_scale = 1.0; break;
|
||||||
|
default: return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( hw_m600_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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
float distance;
|
||||||
|
float time_since_display_change=0;
|
||||||
|
uint16_t distance_display;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* State machine for display functions and error handling
|
||||||
|
*
|
||||||
|
* @param dt_ms
|
||||||
|
* Time since last call to this function
|
||||||
|
*/
|
||||||
|
static void can_bus_display_process(uint32_t dt_ms){
|
||||||
|
static uint8_t can_tx_buffer[8];
|
||||||
|
volatile mc_configuration *mcconf = (volatile mc_configuration*) mc_interface_get_configuration();
|
||||||
|
static can_display_process_states_t can_display_process_state = SEND_BATTERY_RANGE_STATE;
|
||||||
|
static uint32_t delay_between_states = 0;
|
||||||
|
static uint32_t delay_between_torque_sensor_message = 0;
|
||||||
|
|
||||||
|
//check if torque sensor is active or not
|
||||||
|
if(luna_settings.torque_sensor_is_active){
|
||||||
|
luna_settings.torque_sensor_is_active = false;
|
||||||
|
delay_between_torque_sensor_message = 0;
|
||||||
|
if( luna_settings.error_code == LUNA_ERROR_TORQUE_SENSOR){
|
||||||
|
luna_settings.error_code = LUNA_ERROR_NONE;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
//fault if sensor data stops for >500ms, but also allow 3sec for sensor to boot
|
||||||
|
delay_between_torque_sensor_message += dt_ms;
|
||||||
|
float uptime = (float)chVTGetSystemTimeX() / (float)CH_CFG_ST_FREQUENCY;
|
||||||
|
if(delay_between_torque_sensor_message > 500 && uptime > 3.0){
|
||||||
|
delay_between_torque_sensor_message = 0;
|
||||||
|
//luna_settings.error_code = LUNA_ERROR_TORQUE_SENSOR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(luna_settings.error_code == LUNA_ERROR_NONE){
|
||||||
|
//check if vesc has got any faults
|
||||||
|
mc_fault_code vesc_fault = mc_interface_get_fault();
|
||||||
|
switch(vesc_fault){
|
||||||
|
case FAULT_CODE_NONE:{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case FAULT_CODE_ABS_OVER_CURRENT:
|
||||||
|
case FAULT_CODE_HIGH_OFFSET_CURRENT_SENSOR_1:
|
||||||
|
case FAULT_CODE_HIGH_OFFSET_CURRENT_SENSOR_2:
|
||||||
|
case FAULT_CODE_HIGH_OFFSET_CURRENT_SENSOR_3:
|
||||||
|
case FAULT_CODE_UNBALANCED_CURRENTS:{
|
||||||
|
luna_settings.error_code = LUNA_ERROR_CURRENT_SENSOR;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case FAULT_CODE_OVER_TEMP_FET:
|
||||||
|
luna_settings.error_code = LUNA_ERROR_MOSFET_OVERTEMP;
|
||||||
|
break;
|
||||||
|
case FAULT_CODE_OVER_TEMP_MOTOR:{
|
||||||
|
luna_settings.error_code = LUNA_ERROR_MOTOR_OVERTEMP;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case FAULT_CODE_OVER_VOLTAGE:{
|
||||||
|
luna_settings.error_code = LUNA_ERROR_HIGH_VOLTAGE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case FAULT_CODE_UNDER_VOLTAGE:{
|
||||||
|
luna_settings.error_code = LUNA_ERROR_UNDER_VOLTAGE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case FAULT_CODE_ENCODER_SPI:
|
||||||
|
case FAULT_CODE_ENCODER_NO_MAGNET:{
|
||||||
|
luna_settings.error_code = LUNA_ERROR_ENCODER;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
;//luna_settings.error_code = LUNA_ERROR_COMMUNICATION;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(mc_interface_get_configuration()->foc_encoder_offset == 400.0) {
|
||||||
|
luna_settings.error_code = LUNA_ERROR_ENCODER;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(hw_luna_m600_shutdown_button_down()) {
|
||||||
|
can_display_process_state = SEND_SHUTDOWN_STATE;
|
||||||
|
}
|
||||||
|
|
||||||
|
delay_between_states += dt_ms;
|
||||||
|
|
||||||
|
//packets are typically sent every 11 msec
|
||||||
|
|
||||||
|
if(delay_between_states > 50){
|
||||||
|
delay_between_states = 0;
|
||||||
|
switch(can_display_process_state){
|
||||||
|
case SEND_BATTERY_RANGE_STATE:{
|
||||||
|
// This packet is sent every 250ms
|
||||||
|
float wh_left;
|
||||||
|
float battery_level = mc_interface_get_battery_level(&wh_left) * 100.0;
|
||||||
|
utils_truncate_number((float*)&battery_level, 0.0, 100.0);
|
||||||
|
|
||||||
|
static float last_distance = 0.0;
|
||||||
|
float distance_abs = mc_interface_get_distance_abs();
|
||||||
|
distance = distance_abs - last_distance;
|
||||||
|
|
||||||
|
// what is sent is 1 / 10 of the value in meters
|
||||||
|
distance_display = (uint16_t) (distance / 10.0);
|
||||||
|
|
||||||
|
static uint16_t time_at_last_distance_change = 0;
|
||||||
|
static uint16_t last_display_distance = 0;
|
||||||
|
|
||||||
|
// if distance_display doesn't change for 5 seconds, we have to reset it to zero
|
||||||
|
if (distance_display != last_display_distance) {
|
||||||
|
time_at_last_distance_change = (float)chVTGetSystemTimeX() / (float)CH_CFG_ST_FREQUENCY;
|
||||||
|
} else {
|
||||||
|
float current_time = (float)chVTGetSystemTimeX() / (float)CH_CFG_ST_FREQUENCY;
|
||||||
|
|
||||||
|
time_since_display_change = current_time - time_at_last_distance_change;//for debug
|
||||||
|
if(current_time - time_at_last_distance_change > 5.0){
|
||||||
|
time_at_last_distance_change = (float)chVTGetSystemTimeX() / (float)CH_CFG_ST_FREQUENCY;
|
||||||
|
last_distance = distance_abs;
|
||||||
|
distance = 0;
|
||||||
|
distance_display = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
last_display_distance = distance_display;
|
||||||
|
|
||||||
|
if(distance_display < 5) {
|
||||||
|
//make sure the first zero is not skipped. Apparently it's important and needs 4 consecutive zeroes
|
||||||
|
//(or maybe its 1 full second of zeroes)
|
||||||
|
distance_display = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static float distance_old = 0;
|
||||||
|
if(distance_abs != distance_old) {
|
||||||
|
// commands_printf("time_since_display_change: %.2f",(double)time_since_display_change);
|
||||||
|
// commands_printf("display_distance: %d",distance_display);
|
||||||
|
// commands_printf("distance: %.2f",(double)distance);
|
||||||
|
// commands_printf("odometer: %.2f\n", (double)distance_abs);
|
||||||
|
distance_old = distance_abs;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
memset(can_tx_buffer, 0, 8);
|
||||||
|
can_tx_buffer[0] = (uint8_t) battery_level;
|
||||||
|
can_tx_buffer[1] = (uint8_t)(distance_display & 0x00ff);
|
||||||
|
can_tx_buffer[2] = (uint8_t) 0;
|
||||||
|
can_tx_buffer[3] = (uint8_t) 0;
|
||||||
|
can_tx_buffer[4] = (uint8_t) 0;
|
||||||
|
can_tx_buffer[5] = (uint8_t) 0;
|
||||||
|
can_tx_buffer[6] = (uint8_t) 0;
|
||||||
|
can_tx_buffer[7] = (uint8_t) 0;
|
||||||
|
|
||||||
|
// If the distance value exceeds 1000 meters, it overflows back to 0 meter
|
||||||
|
if(distance > 1020) {
|
||||||
|
last_distance += distance;
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO: support RANGE parameter. 0x1FF = 511 sets RANGE as 5.11 km or 3 miles.
|
||||||
|
|
||||||
|
//can_tx_buffer[6] = RANGE LSB
|
||||||
|
//can_tx_buffer[7] = RANGE MSB
|
||||||
|
|
||||||
|
comm_can_transmit_eid(0x02F83200, can_tx_buffer, 8);
|
||||||
|
can_display_process_state = SEND_SPEED_CURRENT_VOLTAGE_STATE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SEND_SPEED_CURRENT_VOLTAGE_STATE:{
|
||||||
|
//this packet is sent every 280ms
|
||||||
|
|
||||||
|
memset(can_tx_buffer, 0, 8);
|
||||||
|
#ifdef HW_HAS_WHEEL_SPEED_SENSOR
|
||||||
|
//float wheel_rpm = hw_get_wheel_rpm();
|
||||||
|
//float wheelsize_in_meters = mcconf->si_wheel_diameter / 1000.0;
|
||||||
|
//float speed_km_h = (uint16_t)(wheel_rpm * wheelsize_in_meters * 60.0 / 1000.0);
|
||||||
|
|
||||||
|
//uint16_t speed_display = (uint16_t)(speed_km_h * 100.0);//the display needs [km_h * 100]
|
||||||
|
uint16_t speed_display = (uint16_t)(mc_interface_get_speed() * 3600.0 / 1000.0 * 100.0 ); //the display needs [km_h * 100]
|
||||||
|
|
||||||
|
can_tx_buffer[0] = (uint8_t)(speed_display & 0x00ff);
|
||||||
|
can_tx_buffer[1] = (uint8_t)((speed_display >> 8 ) & 0x00ff);
|
||||||
|
#endif
|
||||||
|
float current = mc_interface_get_tot_current_in_filtered();
|
||||||
|
|
||||||
|
uint16_t current_display = (uint16_t)(current * 100.0);
|
||||||
|
|
||||||
|
can_tx_buffer[2] = (uint8_t)(current_display & 0x00ff);
|
||||||
|
can_tx_buffer[3] = (uint8_t)((current_display >> 8 ) & 0x00ff);
|
||||||
|
|
||||||
|
float voltage = mc_interface_get_input_voltage_filtered();
|
||||||
|
uint16_t voltage_display = voltage * 100;
|
||||||
|
|
||||||
|
can_tx_buffer[4] = (uint8_t)(voltage_display & 0x00ff);
|
||||||
|
can_tx_buffer[5] = (uint8_t)((voltage_display >> 8 ) & 0x00ff);
|
||||||
|
|
||||||
|
can_tx_buffer[6] = (uint8_t) (mc_interface_temp_fet_filtered() - 40.0); // 10°C = 10+40=50(32Hex) = 32
|
||||||
|
can_tx_buffer[7] = (uint8_t) (mc_interface_temp_motor_filtered() - 40.0); // 20°C = 20+40=60(3CHex) = 3C
|
||||||
|
|
||||||
|
comm_can_transmit_eid(0x02F83201, can_tx_buffer, 8);
|
||||||
|
can_display_process_state = SEND_SPEED_LIMIT_WHEEL_SIZE_STATE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SEND_SPEED_LIMIT_WHEEL_SIZE_STATE:{
|
||||||
|
memset(can_tx_buffer, 0, 8);
|
||||||
|
|
||||||
|
//"speed limit" parameter [kmh *100]
|
||||||
|
float speed_limit = 32.2;// dummy 32.2km/h (20mph)
|
||||||
|
uint16_t speed_limit_display = speed_limit * 100;
|
||||||
|
can_tx_buffer[0] = (uint8_t)(speed_limit_display & 0x00ff);
|
||||||
|
can_tx_buffer[1] = (uint8_t)((speed_limit_display >> 8 ) & 0x00ff);
|
||||||
|
|
||||||
|
// Arbitrary wheel size definitions from the display
|
||||||
|
uint16_t wheelsize_display;
|
||||||
|
if(mcconf->si_wheel_diameter <= 0.7){
|
||||||
|
wheelsize_display = 416; //26"
|
||||||
|
}
|
||||||
|
if(mcconf->si_wheel_diameter >= 0.7){
|
||||||
|
wheelsize_display = 437; //27.5"
|
||||||
|
}
|
||||||
|
if(mcconf->si_wheel_diameter >= 0.75){
|
||||||
|
wheelsize_display = 464; //29"
|
||||||
|
}
|
||||||
|
|
||||||
|
can_tx_buffer[2] = (uint8_t)(wheelsize_display & 0x00ff);
|
||||||
|
can_tx_buffer[3] = (uint8_t)((wheelsize_display >> 8 ) & 0x00ff);
|
||||||
|
|
||||||
|
//these values are fixed
|
||||||
|
can_tx_buffer[4] = 182;
|
||||||
|
can_tx_buffer[5] = 8;
|
||||||
|
|
||||||
|
comm_can_transmit_eid(0x02F83203, can_tx_buffer, 6);
|
||||||
|
can_display_process_state = SEND_CALORIES_STATE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SEND_CALORIES_STATE:{
|
||||||
|
// this packet is sent every 300msec
|
||||||
|
memset(can_tx_buffer, 0, 8);
|
||||||
|
//TODO: support "KCAL" parameter in [kmh *100]
|
||||||
|
//conversion rate: KCAL = value * 0.621368.
|
||||||
|
//For example: 0xFFFF = 65535 sets KCAL as 40722
|
||||||
|
comm_can_transmit_eid(0x02F83205, can_tx_buffer, 2);
|
||||||
|
can_display_process_state = SEND_ERROR_STATE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SEND_ERROR_STATE:{
|
||||||
|
// this packet is sent every 500msec
|
||||||
|
static uint8_t send_error_counter = 0;
|
||||||
|
|
||||||
|
memset(can_tx_buffer, 0, 8);
|
||||||
|
|
||||||
|
if(luna_settings.error_code != LUNA_ERROR_NONE){
|
||||||
|
can_tx_buffer[0] = luna_settings.error_code ;
|
||||||
|
comm_can_transmit_eid(0x02FF1200, can_tx_buffer, 1);
|
||||||
|
send_error_counter++;
|
||||||
|
|
||||||
|
if(send_error_counter > 3){
|
||||||
|
send_error_counter = 0;
|
||||||
|
can_display_process_state = SEND_BATTERY_RANGE_STATE;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
send_error_counter = 0;
|
||||||
|
can_display_process_state = SEND_BATTERY_RANGE_STATE;
|
||||||
|
}
|
||||||
|
|
||||||
|
comm_can_transmit_eid(0x02FF1200, can_tx_buffer, 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SEND_SHUTDOWN_STATE:{
|
||||||
|
memset(can_tx_buffer, 0, 8);
|
||||||
|
can_tx_buffer[0] = 0;
|
||||||
|
comm_can_transmit_eid(0x02FF1204, can_tx_buffer, 1);
|
||||||
|
can_display_process_state = SEND_BATTERY_RANGE_STATE;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool can_bus_rx_callback(uint32_t id, uint8_t *data, uint8_t len) {
|
||||||
|
bool used_data = false;
|
||||||
|
LUNA_CAN_IDs cmd_id = id;
|
||||||
|
|
||||||
|
switch(cmd_id){
|
||||||
|
case LUNA_DISPLAY_ID1:{
|
||||||
|
if(len == LUNA_DISPLAY_ID1_LENGTH_BYTES){
|
||||||
|
if(data != NULL){
|
||||||
|
used_data = true;
|
||||||
|
|
||||||
|
if(check_assist_level(data[1])){
|
||||||
|
luna_settings.pas_level = data[1];
|
||||||
|
set_assist_level(luna_settings.pas_level);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(check_light_mode(data[2])){
|
||||||
|
luna_settings.light_mode = data[2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case LUNA_TORQUE_SENSOR_ID:{
|
||||||
|
if(len == LUNA_TORQUE_SENSOR_ID_LENGTH_BYTES){
|
||||||
|
if(data != NULL){
|
||||||
|
used_data = true;
|
||||||
|
luna_settings.torque_sensor_is_active = true;
|
||||||
|
uint16_t torque_raw_level = (((uint16_t)data[1] << 8 ) & 0xff00) | ((uint16_t)data[0]&0x00ff);
|
||||||
|
|
||||||
|
if(torque_raw_level > LUNA_TORQUE_SENSOR_MAXIMUM_TORQUE){
|
||||||
|
torque_raw_level = LUNA_TORQUE_SENSOR_MAXIMUM_TORQUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(torque_raw_level > LUNA_TORQUE_SENSOR_MINIMUM_TORQUE){
|
||||||
|
torque_raw_level = torque_raw_level - LUNA_TORQUE_SENSOR_MINIMUM_TORQUE;
|
||||||
|
}else{
|
||||||
|
torque_raw_level = 0;
|
||||||
|
}
|
||||||
|
UTILS_LP_FAST(luna_settings.pas_torque, (float)torque_raw_level, 0.1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return used_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool luna_display_shutdown_request(void) {
|
||||||
|
static uint16_t counter = 0;
|
||||||
|
|
||||||
|
bool button_down = hw_luna_m600_shutdown_button_down();
|
||||||
|
bool button_released = false;
|
||||||
|
static bool first_press = true;
|
||||||
|
|
||||||
|
// With the bike off, if you press the power button and never release it
|
||||||
|
// the bike shouldn't turn on and then power off, so ignore the first release
|
||||||
|
if (button_down && first_press) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
first_press = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// while button is pressed, increment a counter. If released, after 500ms reset the counter to 0
|
||||||
|
if(button_down) {
|
||||||
|
counter++;
|
||||||
|
} else {
|
||||||
|
button_released = true;
|
||||||
|
if (counter > 0) {
|
||||||
|
counter--;
|
||||||
|
|
||||||
|
if (counter < 50 ) {
|
||||||
|
counter = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return (counter > 100 && button_released);
|
||||||
|
}
|
||||||
|
|
||||||
|
// If user long-presses the (-) button, walk mode is engaged.
|
||||||
|
// Controller will target a specific RPM and hold it until the button is released
|
||||||
|
// The speed control must have a slow ramp, the allowed current is TBD.
|
||||||
|
bool luna_display_walk_mode_long_pressed(void) {
|
||||||
|
static systime_t time_last_button_down = 0;
|
||||||
|
const float long_press_time_seconds = 0.5; // bafang uses 2 sec, lets make it more responsive
|
||||||
|
|
||||||
|
if( time_last_button_down == 0) {
|
||||||
|
time_last_button_down = chVTGetSystemTimeX();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(hw_luna_m600_minus_button_down() == false) {
|
||||||
|
time_last_button_down = chVTGetSystemTimeX();
|
||||||
|
}
|
||||||
|
|
||||||
|
return (UTILS_AGE_S(time_last_button_down) > long_press_time_seconds);
|
||||||
|
}
|
||||||
|
|
||||||
|
// lets try using the sensorless observer to check if the encoder
|
||||||
|
// offset has been set correctly.
|
||||||
|
float encoder_error(void) {
|
||||||
|
static float angle_diff_filtered = 0.0;
|
||||||
|
float angle_diff = 0.0;
|
||||||
|
|
||||||
|
// some batches have only 2 current sensors, so better rely only in
|
||||||
|
// the phase voltage tracker which runs with no modulation and is
|
||||||
|
// accurate at mid-high rpm
|
||||||
|
if(/*mc_interface_get_state() != MC_STATE_OFF &&*/ mc_interface_get_duty_cycle_now() > 0.4) {
|
||||||
|
angle_diff = utils_angle_difference(mcpwm_foc_get_phase_encoder(), mcpwm_foc_get_phase_observer());
|
||||||
|
}
|
||||||
|
|
||||||
|
UTILS_LP_FAST(angle_diff_filtered, angle_diff, 0.01);
|
||||||
|
return angle_diff_filtered;
|
||||||
|
}
|
||||||
|
|
||||||
|
static THD_FUNCTION(display_process_thread, arg) {
|
||||||
|
(void)arg;
|
||||||
|
chRegSetThreadName("Luna CANbus display");
|
||||||
|
|
||||||
|
event_listener_t el;
|
||||||
|
chEvtRegisterMaskWithFlags(&HW_UART_DEV.event, &el, EVENT_MASK(0), CHN_INPUT_AVAILABLE);
|
||||||
|
|
||||||
|
// Set default power level
|
||||||
|
set_assist_level(PAS_LEVEL_1);
|
||||||
|
|
||||||
|
comm_can_set_eid_rx_callback( can_bus_rx_callback );
|
||||||
|
|
||||||
|
for(;;) {
|
||||||
|
float uptime = (float)chVTGetSystemTimeX() / (float)CH_CFG_ST_FREQUENCY;
|
||||||
|
chThdSleep(MS2ST(5));
|
||||||
|
can_bus_display_process(5);
|
||||||
|
|
||||||
|
static bool encoder_recovery_done = false;
|
||||||
|
if(encoder_recovery_done) {
|
||||||
|
// default motor config is set to an invalid 400° encoder offset. Make clear
|
||||||
|
// to the users that they need to run the encoder offset detection
|
||||||
|
if(mc_interface_get_configuration()->foc_encoder_offset == 400.0 /*|| fabsf(hw_get_encoder_error()) > 10.0*/) {
|
||||||
|
;//mc_interface_fault_stop(FAULT_CODE_ENCODER_SPI, false, false);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (uptime > 1.0 && !encoder_recovery_done) {
|
||||||
|
// recover encoder offset across fw updates
|
||||||
|
hw_recover_encoder_offset();
|
||||||
|
encoder_recovery_done = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// when PAS level set to 0, the system would shut down after 10 minutes of non-assisted pedaling
|
||||||
|
// so we force it to stay ON if there is pedal activity
|
||||||
|
if(luna_canbus_get_PAS_torque() > 0.25) {
|
||||||
|
shutdown_reset_timer();
|
||||||
|
}
|
||||||
|
|
||||||
|
// consider shutting down in case of battery undervoltage. Power button can turn it on only if Vin>25V
|
||||||
|
// BMS typically trips at 2.8V/cell
|
||||||
|
if(luna_display_shutdown_request()) {
|
||||||
|
conf_general_store_backup_data();
|
||||||
|
HW_SHUTDOWN_HOLD_OFF(); // night night
|
||||||
|
}
|
||||||
|
|
||||||
|
if (luna_settings.assist_code == PAS_LEVEL_WALK) {
|
||||||
|
//disable ADC & PAS apps for 50 millisec
|
||||||
|
app_disable_output(50);
|
||||||
|
|
||||||
|
if(luna_display_walk_mode_long_pressed()) {
|
||||||
|
//send speed command. Sloow 500rpm/sec ramp
|
||||||
|
mc_interface_set_pid_speed(2500.0);
|
||||||
|
timeout_reset();
|
||||||
|
} else {
|
||||||
|
//quickly release the motor
|
||||||
|
mc_interface_release_motor();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
|
@ -0,0 +1,28 @@
|
||||||
|
/*
|
||||||
|
Copyright 2020 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 <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef APP_LUNA_DISPLAY_CANBUS_H_
|
||||||
|
#define APP_LUNA_DISPLAY_CANBUS_H_
|
||||||
|
|
||||||
|
#include "stdint.h"
|
||||||
|
|
||||||
|
void luna_canbus_start(void);
|
||||||
|
float luna_canbus_get_PAS_torque(void);
|
||||||
|
float get_encoder_error(void);
|
||||||
|
#endif /* APP_LUNA_DISPLAY_CANBUS_H_ */
|
|
@ -0,0 +1,515 @@
|
||||||
|
// This file is autogenerated by VESC Tool
|
||||||
|
|
||||||
|
#ifndef MCCONF_LUNA_M600_H_
|
||||||
|
#define MCCONF_LUNA_M600_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 100
|
||||||
|
|
||||||
|
// Motor Current Max Brake
|
||||||
|
#define MCCONF_L_CURRENT_MIN -20
|
||||||
|
|
||||||
|
// Battery Current Max
|
||||||
|
#define MCCONF_L_IN_CURRENT_MAX 60
|
||||||
|
|
||||||
|
// Battery Current Max Regen
|
||||||
|
#define MCCONF_L_IN_CURRENT_MIN -20
|
||||||
|
|
||||||
|
// Absolute Maximum Current
|
||||||
|
#define MCCONF_L_MAX_ABS_CURRENT 200
|
||||||
|
|
||||||
|
// Max ERPM Reverse
|
||||||
|
#define MCCONF_L_RPM_MIN -100000
|
||||||
|
|
||||||
|
// Max ERPM
|
||||||
|
#define MCCONF_L_RPM_MAX 100000
|
||||||
|
|
||||||
|
// ERPM Limit Start
|
||||||
|
#define MCCONF_L_RPM_START 0.8
|
||||||
|
|
||||||
|
// 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 30
|
||||||
|
|
||||||
|
// Maximum Input Voltage
|
||||||
|
#define MCCONF_L_MAX_VOLTAGE 60.0
|
||||||
|
|
||||||
|
// Battery Voltage Cutoff Start
|
||||||
|
#define MCCONF_L_BATTERY_CUT_START 40.0
|
||||||
|
|
||||||
|
// Battery Voltage Cutoff End
|
||||||
|
#define MCCONF_L_BATTERY_CUT_END 39.0
|
||||||
|
|
||||||
|
// Slow ABS Current Limit
|
||||||
|
#define MCCONF_L_SLOW_ABS_OVERCURRENT 0
|
||||||
|
|
||||||
|
// MOSFET Temp Cutoff Start
|
||||||
|
#define MCCONF_L_LIM_TEMP_FET_START 85
|
||||||
|
|
||||||
|
// MOSFET Temp Cutoff End
|
||||||
|
#define MCCONF_L_LIM_TEMP_FET_END 95
|
||||||
|
|
||||||
|
// Motor Temp Cutoff Start
|
||||||
|
#define MCCONF_L_LIM_TEMP_MOTOR_START 105
|
||||||
|
|
||||||
|
// Motor Temp Cutoff End
|
||||||
|
#define MCCONF_L_LIM_TEMP_MOTOR_END 120
|
||||||
|
|
||||||
|
// 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 2500
|
||||||
|
|
||||||
|
// Maximum Braking Wattage
|
||||||
|
#define MCCONF_L_WATT_MIN -2500
|
||||||
|
|
||||||
|
// Max Current Scale
|
||||||
|
#define MCCONF_L_CURRENT_MAX_SCALE 1.0
|
||||||
|
|
||||||
|
// 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.106
|
||||||
|
|
||||||
|
// Current KI
|
||||||
|
#define MCCONF_FOC_CURRENT_KI 47.69
|
||||||
|
|
||||||
|
// Switching Frequency
|
||||||
|
#define MCCONF_FOC_F_ZV 30000
|
||||||
|
|
||||||
|
// Dead Time Compensation
|
||||||
|
#define MCCONF_FOC_DT_US 0.23
|
||||||
|
|
||||||
|
// Encoder Inverted
|
||||||
|
#define MCCONF_FOC_ENCODER_INVERTED 1
|
||||||
|
|
||||||
|
// Encoder Offset
|
||||||
|
#define MCCONF_FOC_ENCODER_OFFSET 400.0
|
||||||
|
|
||||||
|
// Encoder Ratio
|
||||||
|
#define MCCONF_FOC_ENCODER_RATIO 4
|
||||||
|
|
||||||
|
// 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 1
|
||||||
|
|
||||||
|
// 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.00010601
|
||||||
|
|
||||||
|
// Motor Inductance Difference (Ld - Lq)
|
||||||
|
#define MCCONF_FOC_MOTOR_LD_LQ_DIFF 0.0
|
||||||
|
|
||||||
|
// Motor Resistance (R)
|
||||||
|
#define MCCONF_FOC_MOTOR_R 0.0477
|
||||||
|
|
||||||
|
// Motor Flux Linkage (λ)
|
||||||
|
#define MCCONF_FOC_MOTOR_FLUX_LINKAGE 0.013687
|
||||||
|
|
||||||
|
// Observer Gain (x1M)
|
||||||
|
#define MCCONF_FOC_OBSERVER_GAIN 5.34e+06
|
||||||
|
|
||||||
|
// Observer Gain At Minimum Duty
|
||||||
|
#define MCCONF_FOC_OBSERVER_GAIN_SLOW 0.05
|
||||||
|
|
||||||
|
// 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 1500
|
||||||
|
|
||||||
|
// 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.05
|
||||||
|
|
||||||
|
// Hall Table [0]
|
||||||
|
#define MCCONF_FOC_HALL_TAB_0 255
|
||||||
|
|
||||||
|
// Hall Table [1]
|
||||||
|
#define MCCONF_FOC_HALL_TAB_1 255
|
||||||
|
|
||||||
|
// Hall Table [2]
|
||||||
|
#define MCCONF_FOC_HALL_TAB_2 255
|
||||||
|
|
||||||
|
// Hall Table [3]
|
||||||
|
#define MCCONF_FOC_HALL_TAB_3 255
|
||||||
|
|
||||||
|
// Hall Table [4]
|
||||||
|
#define MCCONF_FOC_HALL_TAB_4 255
|
||||||
|
|
||||||
|
// Hall Table [5]
|
||||||
|
#define MCCONF_FOC_HALL_TAB_5 255
|
||||||
|
|
||||||
|
// Hall Table [6]
|
||||||
|
#define MCCONF_FOC_HALL_TAB_6 255
|
||||||
|
|
||||||
|
// 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 30000
|
||||||
|
|
||||||
|
// 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
|
||||||
|
|
||||||
|
// Temp Comp
|
||||||
|
#define MCCONF_FOC_TEMP_COMP 0
|
||||||
|
|
||||||
|
// 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 2048.0
|
||||||
|
|
||||||
|
// Current Offset 1
|
||||||
|
#define MCCONF_FOC_OFFSETS_CURRENT_1 2048.0
|
||||||
|
|
||||||
|
// Current Offset 2
|
||||||
|
#define MCCONF_FOC_OFFSETS_CURRENT_2 2048.0
|
||||||
|
|
||||||
|
// Voltage Offset 0
|
||||||
|
#define MCCONF_FOC_OFFSETS_VOLTAGE_0 0.0
|
||||||
|
|
||||||
|
// Voltage Offset 1
|
||||||
|
#define MCCONF_FOC_OFFSETS_VOLTAGE_1 0.0
|
||||||
|
|
||||||
|
// Voltage Offset 2
|
||||||
|
#define MCCONF_FOC_OFFSETS_VOLTAGE_2 0.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 2500
|
||||||
|
|
||||||
|
// Field Weakening Current Max
|
||||||
|
#define MCCONF_FOC_FW_CURRENT_MAX 7
|
||||||
|
|
||||||
|
// Field Weakening Duty Start
|
||||||
|
#define MCCONF_FOC_FW_DUTY_START 0.9
|
||||||
|
|
||||||
|
// Field Weakening Ramp Time
|
||||||
|
#define MCCONF_FOC_FW_RAMP_TIME 0.2
|
||||||
|
|
||||||
|
// 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 100
|
||||||
|
|
||||||
|
// Allow Braking
|
||||||
|
#define MCCONF_S_PID_ALLOW_BRAKING 1
|
||||||
|
|
||||||
|
// Ramp eRPMs per second
|
||||||
|
#define MCCONF_S_PID_RAMP_ERPMS_S 1500
|
||||||
|
|
||||||
|
// 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
|
||||||
|
|
||||||
|
// Gain Decrease Angle
|
||||||
|
#define MCCONF_P_PID_GAIN_DEC_ANGLE 0
|
||||||
|
|
||||||
|
// Startup boost
|
||||||
|
#define MCCONF_CC_STARTUP_BOOST_DUTY 0.01
|
||||||
|
|
||||||
|
// Minimum Current
|
||||||
|
#define MCCONF_CC_MIN_CURRENT 0.05
|
||||||
|
|
||||||
|
// 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 7
|
||||||
|
|
||||||
|
// Invert Motor Direction
|
||||||
|
#define MCCONF_M_INVERT_DIRECTION 0
|
||||||
|
|
||||||
|
// 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 3380
|
||||||
|
|
||||||
|
// Auxiliary Output Mode
|
||||||
|
#define MCCONF_M_OUT_AUX_MODE 0
|
||||||
|
|
||||||
|
// Motor Temperature Sensor Type
|
||||||
|
#define MCCONF_M_MOTOR_TEMP_SENS_TYPE 1
|
||||||
|
|
||||||
|
// Coefficient for PTC Motor Thermistor
|
||||||
|
#define MCCONF_M_PTC_MOTOR_COEFF 0.25
|
||||||
|
|
||||||
|
// 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.714
|
||||||
|
|
||||||
|
// Battery Type
|
||||||
|
#define MCCONF_SI_BATTERY_TYPE 0
|
||||||
|
|
||||||
|
// Battery Cells Series
|
||||||
|
#define MCCONF_SI_BATTERY_CELLS 13
|
||||||
|
|
||||||
|
// Battery Capacity
|
||||||
|
#define MCCONF_SI_BATTERY_AH 14.5
|
||||||
|
|
||||||
|
// 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_M600_H_
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,422 @@
|
||||||
|
// This file is autogenerated by VESC Tool
|
||||||
|
|
||||||
|
#include "qmlui_luna_m600.h"
|
||||||
|
|
||||||
|
uint8_t data_qml_hw[6655] = {
|
||||||
|
0x00, 0x01, 0x70, 0x84, 0x78, 0xda, 0xed, 0x5d, 0x6d, 0x53, 0xe3, 0x38, 0xb6, 0xfe, 0xce, 0xaf,
|
||||||
|
0xd0, 0xe4, 0xd6, 0x6e, 0x25, 0x3b, 0x19, 0x93, 0x84, 0x86, 0x9e, 0x66, 0x2e, 0xbb, 0xd5, 0x4d,
|
||||||
|
0x37, 0x3d, 0xd4, 0x85, 0x6d, 0x06, 0xe8, 0xe6, 0x0b, 0x55, 0x94, 0xb0, 0x95, 0xc4, 0x85, 0xdf,
|
||||||
|
0xda, 0x56, 0x08, 0xec, 0x2c, 0xff, 0x69, 0x7f, 0xc3, 0xfe, 0xb2, 0x2b, 0xc9, 0xef, 0xef, 0xb2,
|
||||||
|
0x23, 0x07, 0x42, 0x2b, 0x3b, 0x33, 0x1b, 0x6c, 0xe9, 0x48, 0x96, 0xce, 0x39, 0x8f, 0xce, 0x91,
|
||||||
|
0xfc, 0x44, 0x37, 0x1d, 0xdb, 0xc5, 0xe0, 0x1b, 0xd2, 0x34, 0xe4, 0x2a, 0xf7, 0xc8, 0x53, 0xd9,
|
||||||
|
0x7f, 0x74, 0x0b, 0x23, 0x77, 0x0a, 0x55, 0x04, 0xc6, 0xca, 0xe8, 0x37, 0xdd, 0x2f, 0xd4, 0xfb,
|
||||||
|
0xee, 0xaa, 0xfb, 0xdb, 0xa6, 0x7d, 0xab, 0x1b, 0xa8, 0x17, 0x5e, 0xfc, 0x03, 0xff, 0xb1, 0xd0,
|
||||||
|
0xd5, 0x3b, 0x30, 0x51, 0xde, 0x6e, 0xa5, 0x2f, 0x29, 0x87, 0xb6, 0x85, 0x5d, 0xdb, 0xf0, 0xc8,
|
||||||
|
0xbd, 0x49, 0xf6, 0xde, 0x09, 0x7c, 0xb4, 0x17, 0xd8, 0x23, 0xe2, 0x77, 0xe2, 0x5b, 0x8a, 0x01,
|
||||||
|
0x6f, 0x3d, 0xc5, 0x43, 0x18, 0xeb, 0xd6, 0x8c, 0xde, 0x1b, 0x01, 0xe8, 0x81, 0x3f, 0x2e, 0x82,
|
||||||
|
0x0b, 0x61, 0xc1, 0xca, 0xce, 0x16, 0x15, 0xba, 0x35, 0xd0, 0x02, 0x92, 0x6b, 0x25, 0xb7, 0x55,
|
||||||
|
0xdb, 0x34, 0xa1, 0xa5, 0x79, 0xe5, 0xf7, 0xad, 0xa9, 0x3e, 0x73, 0xa0, 0x0b, 0xcd, 0xd2, 0x32,
|
||||||
|
0x0b, 0xac, 0x1b, 0x3a, 0x7e, 0x64, 0xb7, 0x8f, 0x31, 0x32, 0xc1, 0x9f, 0x5b, 0x80, 0x7c, 0x74,
|
||||||
|
0x6d, 0x1f, 0x98, 0x50, 0xb7, 0xe8, 0x25, 0x76, 0x01, 0x5a, 0xea, 0xdc, 0x76, 0x3d, 0x65, 0xaa,
|
||||||
|
0x1b, 0xc6, 0x3e, 0x20, 0x32, 0x91, 0x85, 0xd9, 0x8d, 0xed, 0xed, 0xf0, 0x96, 0x09, 0xdd, 0x99,
|
||||||
|
0x6e, 0x79, 0xfb, 0x60, 0x3c, 0xf2, 0x6f, 0x4c, 0xf5, 0x07, 0x80, 0xe7, 0xba, 0xc7, 0xca, 0x39,
|
||||||
|
0xae, 0xed, 0x20, 0x97, 0xb4, 0xf4, 0xc1, 0x40, 0x5f, 0xe9, 0x43, 0x99, 0xe4, 0xcb, 0x3e, 0xe9,
|
||||||
|
0x8b, 0xa7, 0x1e, 0x4f, 0xe9, 0x93, 0x7e, 0x44, 0xf7, 0xba, 0x8a, 0xfa, 0x83, 0x74, 0xe9, 0xc3,
|
||||||
|
0xf0, 0x19, 0xcd, 0xf0, 0x5b, 0x54, 0x27, 0x7c, 0xfc, 0x6c, 0x95, 0x7b, 0xe8, 0x82, 0xe9, 0xf2,
|
||||||
|
0x1b, 0x72, 0x3d, 0xdd, 0xb6, 0xf6, 0xe3, 0x8a, 0xca, 0x0c, 0xe1, 0xa3, 0xf0, 0x7a, 0xbe, 0x1d,
|
||||||
|
0x3a, 0x56, 0x67, 0xfe, 0x58, 0x99, 0xa7, 0x2a, 0xfd, 0x3b, 0x6a, 0xc9, 0x54, 0xfd, 0xdb, 0xd5,
|
||||||
|
0x95, 0xde, 0x3b, 0x4e, 0xaa, 0x16, 0xf4, 0xff, 0xae, 0xab, 0x76, 0x6c, 0x4d, 0xed, 0x54, 0x3d,
|
||||||
|
0x3d, 0xb8, 0x90, 0xaf, 0x78, 0x6b, 0xdb, 0x06, 0xd0, 0xbd, 0xdf, 0x6d, 0x57, 0xff, 0x17, 0xd1,
|
||||||
|
0x51, 0x48, 0x66, 0x62, 0xa9, 0x6b, 0x78, 0x0e, 0xfe, 0x0e, 0xe6, 0x48, 0x9f, 0xcd, 0x71, 0x41,
|
||||||
|
0x71, 0x4f, 0x9d, 0x23, 0x6d, 0x61, 0x20, 0x2a, 0xf1, 0xca, 0xd5, 0x31, 0x19, 0xf3, 0x29, 0x34,
|
||||||
|
0x3c, 0x54, 0x50, 0x94, 0xcc, 0x17, 0xd2, 0x2e, 0xe7, 0xae, 0x8d, 0xb1, 0x51, 0x5c, 0x8c, 0x0e,
|
||||||
|
0xad, 0x3f, 0xf7, 0x97, 0xf0, 0xf6, 0x03, 0x74, 0x43, 0x4d, 0x50, 0x30, 0xfb, 0x33, 0xd2, 0x16,
|
||||||
|
0xfa, 0x61, 0x5f, 0xc8, 0xd8, 0x3b, 0xb6, 0x45, 0x4b, 0xd8, 0x16, 0xfd, 0x6e, 0x20, 0x8c, 0x88,
|
||||||
|
0x6a, 0xfd, 0x19, 0x95, 0x4a, 0x4a, 0x53, 0xee, 0x75, 0x4f, 0x27, 0x9a, 0x00, 0x0e, 0x00, 0x76,
|
||||||
|
0x17, 0xa8, 0xb8, 0x0c, 0xb2, 0x20, 0x29, 0xa2, 0x65, 0xcb, 0xb8, 0x08, 0x6a, 0xa1, 0xbd, 0x05,
|
||||||
|
0xc3, 0xf6, 0xb4, 0x15, 0x74, 0xc1, 0x58, 0x98, 0x96, 0x6f, 0xb7, 0x89, 0x86, 0x0b, 0x15, 0x3a,
|
||||||
|
0xba, 0xeb, 0x37, 0x96, 0x28, 0x1e, 0x1a, 0x85, 0xff, 0xa0, 0xa9, 0xcb, 0x7e, 0xdd, 0xfd, 0x54,
|
||||||
|
0x37, 0x53, 0x05, 0x8a, 0x9a, 0x0a, 0x07, 0x28, 0xfc, 0xa8, 0x0b, 0x97, 0x5e, 0x3e, 0xb6, 0x34,
|
||||||
|
0xf4, 0xb0, 0x0f, 0xbc, 0xa5, 0xee, 0xa0, 0x6f, 0x3a, 0x5a, 0x2a, 0xc9, 0xeb, 0xa9, 0x0a, 0xfe,
|
||||||
|
0x03, 0x31, 0x99, 0x57, 0x54, 0x07, 0xf6, 0xd3, 0xe3, 0xc1, 0xfa, 0x4b, 0xc6, 0x5b, 0x57, 0x75,
|
||||||
|
0x1c, 0xdc, 0x1f, 0xa5, 0x1b, 0x34, 0x74, 0x27, 0xa8, 0x93, 0x7e, 0x9a, 0x70, 0xae, 0x89, 0x77,
|
||||||
|
0x02, 0xb7, 0x0b, 0x8c, 0x6d, 0x6a, 0xd2, 0x6f, 0xea, 0xca, 0x04, 0x6d, 0x8c, 0x47, 0xa3, 0xb4,
|
||||||
|
0x38, 0x3a, 0x1c, 0xac, 0x40, 0x66, 0x2c, 0xe9, 0x07, 0xa3, 0x07, 0x32, 0x6c, 0xdf, 0xbd, 0x4b,
|
||||||
|
0xb7, 0xdf, 0x3b, 0xd7, 0x35, 0xd4, 0x1b, 0xe4, 0x8a, 0x2c, 0x7d, 0xb1, 0xa7, 0x10, 0xcf, 0x89,
|
||||||
|
0x7f, 0x79, 0xe8, 0xfb, 0xc3, 0xaf, 0x24, 0xda, 0x1c, 0x06, 0x97, 0x7c, 0x43, 0xd8, 0x06, 0xa9,
|
||||||
|
0x12, 0x5e, 0x5a, 0xe2, 0x53, 0xab, 0xae, 0x5d, 0x2e, 0xac, 0x97, 0xda, 0xb5, 0x0f, 0xfa, 0x1d,
|
||||||
|
0x02, 0x87, 0x47, 0x9f, 0x5f, 0x68, 0xf7, 0x8e, 0x74, 0xd7, 0x5c, 0x12, 0x75, 0x5f, 0x63, 0xf7,
|
||||||
|
0x9e, 0x62, 0xf5, 0xbb, 0x08, 0x8d, 0xa8, 0xc0, 0x8c, 0x23, 0x03, 0xab, 0x30, 0xc2, 0xa0, 0x41,
|
||||||
|
0x1e, 0x0b, 0xfc, 0x9d, 0x79, 0xdf, 0x02, 0x13, 0xe4, 0xb0, 0xd2, 0x84, 0x21, 0x82, 0x82, 0xcf,
|
||||||
|
0x19, 0x9c, 0xa1, 0x82, 0x61, 0x0e, 0x3f, 0xe7, 0xf8, 0x23, 0xc4, 0x90, 0x78, 0xbe, 0x85, 0x53,
|
||||||
|
0x51, 0xaa, 0x12, 0xc1, 0xcb, 0x3e, 0x0b, 0x47, 0x83, 0x18, 0x51, 0xf1, 0x65, 0x0e, 0x09, 0x1c,
|
||||||
|
0x1c, 0x64, 0xbc, 0x4a, 0xb9, 0xce, 0x14, 0x5f, 0x2d, 0x79, 0xba, 0x5b, 0xa8, 0xde, 0xcd, 0x5c,
|
||||||
|
0x7b, 0x61, 0x91, 0xa9, 0x3a, 0x47, 0x2a, 0x86, 0xd6, 0xcc, 0x28, 0x1b, 0x05, 0xdb, 0x81, 0xc4,
|
||||||
|
0xc7, 0x3d, 0x12, 0xff, 0xa6, 0xe4, 0xfb, 0xf2, 0xb4, 0x95, 0xbb, 0x54, 0x82, 0x07, 0x45, 0x43,
|
||||||
|
0x85, 0x6d, 0xe7, 0x94, 0x2d, 0x6a, 0xf6, 0xc1, 0x6e, 0x65, 0xc1, 0x5b, 0x02, 0x99, 0xb6, 0x19,
|
||||||
|
0x96, 0x1d, 0x6f, 0x71, 0x8f, 0x7f, 0x61, 0x49, 0x5f, 0x23, 0x62, 0xf8, 0xcd, 0x7e, 0x3c, 0xfa,
|
||||||
|
0xc4, 0xd6, 0x8c, 0x76, 0xaa, 0xf0, 0x7e, 0x21, 0x78, 0x65, 0x2d, 0x80, 0xf8, 0x70, 0xd2, 0x13,
|
||||||
|
0xe4, 0x65, 0xc1, 0xaa, 0xdc, 0x1e, 0x82, 0x1a, 0x17, 0xf5, 0xd8, 0x54, 0x88, 0x15, 0x74, 0xed,
|
||||||
|
0x60, 0x40, 0x0f, 0x9f, 0xf9, 0x62, 0x02, 0xa1, 0x5c, 0x32, 0x38, 0xac, 0x88, 0x1b, 0xf7, 0x1a,
|
||||||
|
0x98, 0x5e, 0x39, 0x1c, 0xee, 0x34, 0x29, 0x5f, 0x06, 0x8d, 0xbc, 0x1e, 0xb5, 0xcc, 0xbb, 0x5e,
|
||||||
|
0x60, 0x17, 0x21, 0x7c, 0x6d, 0x19, 0x68, 0x06, 0x8d, 0x02, 0x17, 0x5b, 0xe5, 0x6e, 0x2b, 0x0b,
|
||||||
|
0xa7, 0x1f, 0x27, 0xd4, 0x92, 0x94, 0x6f, 0x6e, 0x53, 0x3f, 0x74, 0xe4, 0x79, 0x99, 0xde, 0xa0,
|
||||||
|
0xa1, 0x13, 0x69, 0x3b, 0x64, 0x97, 0x2e, 0xd4, 0xe5, 0x50, 0x71, 0x0d, 0xd5, 0xc9, 0x42, 0xd3,
|
||||||
|
0x55, 0xe2, 0x82, 0xbd, 0x1f, 0x6b, 0xb8, 0x8a, 0xaf, 0x96, 0x2d, 0x25, 0x4a, 0x9c, 0xea, 0x45,
|
||||||
|
0xe1, 0xea, 0xa2, 0xd6, 0xb3, 0x7a, 0x95, 0xcb, 0x8d, 0xa6, 0x4b, 0x8f, 0x15, 0x1c, 0x28, 0x87,
|
||||||
|
0x5f, 0xdc, 0xde, 0x06, 0xbe, 0xff, 0x01, 0x27, 0xd4, 0xfd, 0x94, 0x96, 0x63, 0x00, 0x5f, 0x7a,
|
||||||
|
0xb7, 0x5a, 0x1d, 0x39, 0x90, 0xba, 0x15, 0x6a, 0xb7, 0x45, 0xf0, 0x76, 0x68, 0xde, 0x04, 0xd9,
|
||||||
|
0x9b, 0xa0, 0x7c, 0x4a, 0x3f, 0x89, 0xa5, 0x1a, 0x46, 0x8d, 0x82, 0xa6, 0xa7, 0xaf, 0xf1, 0x72,
|
||||||
|
0xb0, 0x81, 0x72, 0xa4, 0x8a, 0xdb, 0x16, 0x26, 0xa2, 0x03, 0xb5, 0x0b, 0xd2, 0x05, 0xcc, 0x60,
|
||||||
|
0xb9, 0xaa, 0x97, 0x69, 0x3a, 0x57, 0xe5, 0x86, 0x0a, 0xb4, 0x92, 0x22, 0xad, 0xaa, 0x50, 0xab,
|
||||||
|
0x29, 0x56, 0x1b, 0x05, 0x0b, 0x3f, 0x41, 0xd6, 0xa5, 0xc1, 0x9c, 0x36, 0x55, 0xcf, 0xf0, 0x93,
|
||||||
|
0x48, 0x30, 0xf2, 0x7e, 0xa8, 0x9f, 0x21, 0x2d, 0x21, 0xb7, 0x51, 0xad, 0x86, 0xfe, 0x4e, 0x84,
|
||||||
|
0x8b, 0xe5, 0x88, 0x3c, 0xca, 0x3e, 0x9f, 0x09, 0xcc, 0x3a, 0x1f, 0xec, 0x87, 0x86, 0x43, 0xc3,
|
||||||
|
0xe2, 0x58, 0xe6, 0x83, 0x2f, 0x6d, 0xf7, 0xfb, 0x02, 0x11, 0x09, 0x22, 0x06, 0xa9, 0x91, 0x8c,
|
||||||
|
0x73, 0x7b, 0xd9, 0xd8, 0xbc, 0x12, 0x53, 0xbb, 0x92, 0xa5, 0xe5, 0x7d, 0x59, 0x5b, 0x9b, 0x13,
|
||||||
|
0x63, 0x7b, 0xab, 0xd8, 0x60, 0x81, 0x55, 0x35, 0xad, 0x7a, 0x49, 0x16, 0x6f, 0x2d, 0x66, 0x21,
|
||||||
|
0x5e, 0xf7, 0xf5, 0xc2, 0xd4, 0xef, 0xb5, 0xf5, 0xde, 0x74, 0xbc, 0x5e, 0x2b, 0x51, 0xaa, 0x6d,
|
||||||
|
0xd8, 0xee, 0xfe, 0x9f, 0xec, 0xff, 0x0e, 0xbe, 0xfa, 0x9b, 0x0b, 0x34, 0xf1, 0xfe, 0xde, 0x71,
|
||||||
|
0x7e, 0x47, 0x0f, 0x87, 0xf4, 0x72, 0xbf, 0x67, 0x50, 0x7b, 0xa2, 0xfd, 0xed, 0x0d, 0x9e, 0x5a,
|
||||||
|
0xb5, 0x32, 0x8f, 0x32, 0xe0, 0xef, 0x89, 0x2c, 0xcb, 0x64, 0xf9, 0x57, 0x2a, 0x50, 0x61, 0x7f,
|
||||||
|
0xff, 0x7e, 0x88, 0xe8, 0xd6, 0x4a, 0x2b, 0xd1, 0x81, 0x55, 0x98, 0xba, 0xa5, 0x9b, 0x0b, 0x33,
|
||||||
|
0x11, 0xbb, 0x35, 0x15, 0xd4, 0xfc, 0xc9, 0x2e, 0x0c, 0x5d, 0x43, 0x6e, 0xcb, 0x39, 0xcc, 0x7a,
|
||||||
|
0x03, 0x5f, 0x58, 0x2b, 0x51, 0x1e, 0x46, 0xce, 0x85, 0xfe, 0x2f, 0x44, 0x9f, 0xbb, 0x95, 0x80,
|
||||||
|
0xa9, 0x6b, 0x9b, 0xfb, 0x60, 0xd2, 0xae, 0xf2, 0x3d, 0x34, 0x16, 0xa4, 0xe9, 0x9d, 0x76, 0xb5,
|
||||||
|
0xb1, 0xcd, 0x66, 0x8b, 0x38, 0x05, 0x12, 0x8c, 0x00, 0x67, 0x0e, 0x3d, 0x04, 0x20, 0xd1, 0xe6,
|
||||||
|
0x55, 0x74, 0x61, 0x25, 0x0f, 0x19, 0x99, 0xa7, 0x6d, 0x1b, 0x97, 0xba, 0xd3, 0x72, 0x76, 0x93,
|
||||||
|
0xfb, 0x0c, 0xf9, 0x59, 0x56, 0xe6, 0xd0, 0xd2, 0x0c, 0xd4, 0x5a, 0x72, 0xb4, 0x02, 0x28, 0x10,
|
||||||
|
0xed, 0xb8, 0xc8, 0xf3, 0x90, 0xd6, 0x5a, 0xb6, 0xef, 0x5b, 0x0a, 0x04, 0xb3, 0x79, 0x26, 0x9e,
|
||||||
|
0xff, 0x88, 0xee, 0x3a, 0xf5, 0xc7, 0x83, 0x9f, 0x7b, 0xe0, 0x7d, 0x3b, 0x9f, 0xf3, 0xd4, 0xb1,
|
||||||
|
0x6d, 0x3e, 0xbd, 0x48, 0xd0, 0x3f, 0x83, 0xde, 0xa6, 0x21, 0xfe, 0x0f, 0x8e, 0xaf, 0x67, 0xef,
|
||||||
|
0x2f, 0x24, 0xb4, 0x6e, 0x34, 0xb4, 0x12, 0x9b, 0x13, 0x83, 0xab, 0x2b, 0xc0, 0xea, 0x4a, 0xa8,
|
||||||
|
0x3a, 0x69, 0x8f, 0xaa, 0xb5, 0x2e, 0xbc, 0x35, 0x44, 0xd0, 0xcf, 0x78, 0x40, 0x20, 0xfb, 0x2f,
|
||||||
|
0xc0, 0x9e, 0xbe, 0x66, 0xcc, 0x8e, 0xd4, 0x47, 0x30, 0x60, 0xc7, 0x72, 0x45, 0xa2, 0x75, 0x2c,
|
||||||
|
0x55, 0x42, 0xf5, 0x8a, 0x50, 0x6d, 0x2f, 0x91, 0x2b, 0xc1, 0x7a, 0xb3, 0xc0, 0x9a, 0xce, 0x99,
|
||||||
|
0x04, 0xea, 0x4d, 0x05, 0x6a, 0x3a, 0x7b, 0x42, 0xa0, 0x7a, 0xb2, 0x3b, 0x7a, 0x2e, 0xb0, 0xde,
|
||||||
|
0x1d, 0xb5, 0x47, 0xeb, 0x49, 0xdb, 0xca, 0x2f, 0x1a, 0x3f, 0xe3, 0x59, 0x15, 0x8d, 0xa0, 0x09,
|
||||||
|
0xc9, 0x42, 0x31, 0x34, 0x21, 0xb7, 0x00, 0x45, 0xaf, 0x24, 0x8a, 0xf2, 0xdb, 0xf4, 0x85, 0x83,
|
||||||
|
0x90, 0x26, 0x08, 0x45, 0x5b, 0xa8, 0x0a, 0x68, 0x03, 0x63, 0x12, 0x80, 0x5b, 0x03, 0x30, 0x9b,
|
||||||
|
0xee, 0x6b, 0xeb, 0x44, 0x37, 0x75, 0x2c, 0x71, 0x78, 0x43, 0x71, 0x98, 0x4d, 0xe2, 0xb3, 0x87,
|
||||||
|
0xcc, 0x93, 0xe7, 0x8a, 0x99, 0xf7, 0x5e, 0x1f, 0x06, 0x27, 0x66, 0x54, 0x30, 0x06, 0x27, 0x25,
|
||||||
|
0x8b, 0xc4, 0xe0, 0xa4, 0xdc, 0x2c, 0x06, 0x83, 0x9f, 0x41, 0x3f, 0x78, 0xed, 0x62, 0xe1, 0xa1,
|
||||||
|
0x63, 0xd3, 0x41, 0xae, 0x0e, 0x8d, 0xaf, 0x96, 0x8e, 0xbd, 0xfe, 0x00, 0xfc, 0x03, 0xf4, 0x80,
|
||||||
|
0xe9, 0xcc, 0x7b, 0xfb, 0x3d, 0x70, 0x67, 0x6e, 0xcf, 0x6b, 0x4e, 0x42, 0x49, 0xb4, 0x4e, 0xed,
|
||||||
|
0x42, 0x05, 0x9b, 0x89, 0xe7, 0xc8, 0x73, 0x6c, 0xcb, 0x43, 0x32, 0xfc, 0xdd, 0x28, 0xf4, 0x8d,
|
||||||
|
0xf7, 0x82, 0xc3, 0x09, 0x94, 0x18, 0xbc, 0xa9, 0xfb, 0xc1, 0x19, 0x4b, 0x14, 0x02, 0xc7, 0x23,
|
||||||
|
0x65, 0x15, 0x40, 0xde, 0x59, 0x05, 0x8f, 0x47, 0xca, 0xbb, 0xd6, 0x80, 0x3c, 0x52, 0x76, 0x5e,
|
||||||
|
0xdf, 0x4e, 0x70, 0xe1, 0xfc, 0x8a, 0xde, 0x13, 0x2e, 0x6e, 0x44, 0xe8, 0xee, 0x70, 0x71, 0x13,
|
||||||
|
0x05, 0x61, 0xb3, 0x87, 0x54, 0x19, 0x38, 0x37, 0x77, 0x00, 0x9f, 0x1e, 0x1c, 0x5b, 0xc2, 0xf0,
|
||||||
|
0x86, 0xc2, 0xf0, 0x89, 0x6e, 0x21, 0xe8, 0x12, 0xf4, 0x94, 0x38, 0xbc, 0xe1, 0x38, 0x4c, 0xcd,
|
||||||
|
0x70, 0xb3, 0x77, 0x91, 0xc7, 0xa3, 0x95, 0x0e, 0x67, 0xbd, 0x5a, 0x04, 0x8e, 0x67, 0xb6, 0x23,
|
||||||
|
0xf4, 0x4d, 0x34, 0xd0, 0x05, 0xf2, 0x26, 0xc4, 0xe7, 0x51, 0xf7, 0x2f, 0x9b, 0x0f, 0xb9, 0x6b,
|
||||||
|
0x43, 0xdc, 0x33, 0xe8, 0xc9, 0xb8, 0x77, 0x73, 0xcf, 0x68, 0xc9, 0x90, 0x77, 0xf3, 0xcf, 0x69,
|
||||||
|
0xbd, 0xa0, 0x68, 0x77, 0xac, 0xec, 0xae, 0x16, 0xef, 0xfe, 0x2a, 0xe3, 0xdd, 0xf4, 0x29, 0xaa,
|
||||||
|
0x4e, 0x43, 0xdd, 0xbc, 0x7c, 0xc1, 0xa7, 0xaa, 0x7e, 0x90, 0x00, 0x77, 0x6d, 0x68, 0x7b, 0x74,
|
||||||
|
0x25, 0x30, 0xb2, 0x7d, 0x56, 0x9c, 0xfd, 0x61, 0x60, 0xf6, 0x48, 0x47, 0x86, 0x76, 0x6d, 0x5d,
|
||||||
|
0x21, 0x78, 0x87, 0x2c, 0xd2, 0x0b, 0x89, 0xb4, 0x1b, 0x8a, 0xb4, 0x47, 0x57, 0x1b, 0x7e, 0x20,
|
||||||
|
0xba, 0x35, 0xb4, 0xbe, 0x15, 0x09, 0xac, 0x2f, 0x01, 0x57, 0xc3, 0xa9, 0x14, 0x0c, 0xa7, 0x91,
|
||||||
|
0x58, 0x91, 0x28, 0x1a, 0x09, 0x7d, 0x9d, 0x47, 0x93, 0xd7, 0x07, 0x9d, 0x49, 0xca, 0x3f, 0x89,
|
||||||
|
0xa0, 0x1b, 0x85, 0xa0, 0x64, 0xe6, 0x80, 0x7c, 0x65, 0xf7, 0x79, 0x51, 0xf4, 0x70, 0x8e, 0xd4,
|
||||||
|
0xbb, 0xe6, 0x06, 0x58, 0x63, 0x88, 0x4c, 0xea, 0x6d, 0x43, 0x6b, 0x8c, 0xa6, 0x93, 0x56, 0xa6,
|
||||||
|
0x24, 0x9b, 0xed, 0x94, 0x5a, 0x20, 0x48, 0x3d, 0xaf, 0x7f, 0xac, 0x2f, 0x55, 0x5d, 0xe2, 0xa9,
|
||||||
|
0xec, 0x46, 0x05, 0xa3, 0x50, 0x15, 0x5d, 0x0e, 0xe3, 0x9e, 0xaa, 0xe6, 0xc9, 0x91, 0x74, 0x38,
|
||||||
|
0x5c, 0xce, 0x56, 0xd2, 0xe1, 0x48, 0x3a, 0x9c, 0xee, 0xd0, 0x5d, 0x12, 0xdb, 0xd4, 0x79, 0xcd,
|
||||||
|
0x75, 0x2c, 0x4f, 0x31, 0xf5, 0x96, 0x92, 0xd7, 0x46, 0xf2, 0xda, 0x48, 0x5e, 0x1b, 0x99, 0x6a,
|
||||||
|
0x4a, 0x38, 0x83, 0x4d, 0xa7, 0xb5, 0x79, 0x2b, 0x69, 0x6d, 0x4a, 0x92, 0x50, 0xb9, 0x49, 0x16,
|
||||||
|
0x96, 0x87, 0xca, 0x4b, 0x16, 0x93, 0x8a, 0xca, 0xcb, 0x95, 0x2f, 0xca, 0xaf, 0x84, 0xf7, 0x92,
|
||||||
|
0xd2, 0x46, 0x52, 0xda, 0x48, 0x54, 0x5d, 0x2b, 0xaa, 0x6e, 0x3c, 0xa3, 0xcd, 0x5e, 0x7b, 0x40,
|
||||||
|
0xad, 0xf3, 0xdf, 0x92, 0xd0, 0xa6, 0x06, 0xad, 0xc5, 0xf3, 0xd9, 0x64, 0xc4, 0x0a, 0xc4, 0x69,
|
||||||
|
0xc9, 0x66, 0x23, 0x0a, 0xa4, 0x25, 0x99, 0x8d, 0x24, 0xb3, 0x91, 0x10, 0xbd, 0x46, 0x88, 0x7e,
|
||||||
|
0x0d, 0x5c, 0x36, 0x93, 0x91, 0x24, 0xb3, 0x49, 0x63, 0x67, 0x07, 0x5c, 0x36, 0x39, 0xc1, 0x22,
|
||||||
|
0xf1, 0x53, 0x32, 0xd9, 0x88, 0x42, 0x50, 0x49, 0x64, 0x23, 0x89, 0x6c, 0x24, 0x06, 0x6f, 0x14,
|
||||||
|
0x06, 0xbf, 0x06, 0x1e, 0x9b, 0x3d, 0xc9, 0x63, 0x13, 0xc3, 0x6f, 0x17, 0x34, 0x36, 0x39, 0xc1,
|
||||||
|
0x02, 0xe1, 0x57, 0x92, 0xd8, 0x3c, 0x03, 0x50, 0x4b, 0x0e, 0x9b, 0x8d, 0x06, 0x5e, 0xc9, 0x61,
|
||||||
|
0xf3, 0x5a, 0xe0, 0xf7, 0xf5, 0x51, 0xd8, 0xbc, 0x91, 0xaf, 0xf4, 0x25, 0x76, 0x7d, 0xbb, 0x65,
|
||||||
|
0xb0, 0xa9, 0x6a, 0x43, 0xe4, 0x4e, 0xb0, 0xe4, 0xaf, 0xe9, 0x14, 0x85, 0x25, 0x7d, 0x8d, 0xa4,
|
||||||
|
0xaf, 0x91, 0x10, 0xfc, 0xdc, 0x10, 0x2c, 0xd9, 0x6b, 0x5e, 0x29, 0xf8, 0x76, 0x40, 0x5e, 0x53,
|
||||||
|
0x26, 0xbf, 0x03, 0xd0, 0x95, 0xd4, 0x35, 0x62, 0xc0, 0x56, 0x32, 0xd7, 0x48, 0xe6, 0x1a, 0x89,
|
||||||
|
0xb2, 0xcf, 0x79, 0x1c, 0xeb, 0x35, 0x11, 0xd7, 0xec, 0xc9, 0x28, 0x37, 0x75, 0x5a, 0xaa, 0xcb,
|
||||||
|
0x00, 0xb7, 0x2b, 0xda, 0x9a, 0x12, 0xe1, 0x92, 0xb5, 0x66, 0x35, 0xa0, 0x95, 0xa4, 0x35, 0x92,
|
||||||
|
0xb4, 0x46, 0x82, 0xec, 0xb3, 0x80, 0xec, 0xa6, 0x73, 0xd6, 0xbc, 0x95, 0x9c, 0x35, 0x99, 0x99,
|
||||||
|
0x14, 0x8b, 0xa4, 0x82, 0x19, 0x6b, 0xd2, 0x32, 0x25, 0x61, 0xcd, 0x4a, 0xa8, 0x29, 0xf9, 0x6a,
|
||||||
|
0x24, 0x5f, 0x8d, 0x04, 0xd0, 0xd6, 0x1e, 0x40, 0x00, 0x5f, 0x4d, 0xde, 0x0e, 0x25, 0x5d, 0x4d,
|
||||||
|
0x75, 0x49, 0xde, 0x82, 0xeb, 0xa1, 0xb5, 0x69, 0x49, 0x5f, 0x73, 0xb2, 0xd0, 0x74, 0x95, 0x78,
|
||||||
|
0x6f, 0x4f, 0x52, 0xd8, 0xb4, 0xf5, 0xc7, 0x92, 0xc2, 0x26, 0x63, 0xad, 0x92, 0xc2, 0xa6, 0x1b,
|
||||||
|
0xc0, 0x97, 0x14, 0x36, 0x75, 0x1e, 0x72, 0x2d, 0x0b, 0x56, 0xc9, 0x5e, 0x23, 0xd9, 0x6b, 0x24,
|
||||||
|
0x7b, 0x8d, 0xcc, 0x39, 0xbd, 0x0a, 0xe2, 0x9a, 0x15, 0x4f, 0x4d, 0xbc, 0x6a, 0xe6, 0x9a, 0x4e,
|
||||||
|
0x48, 0x6b, 0x3a, 0xe0, 0xab, 0x91, 0x54, 0x35, 0x22, 0x70, 0xdd, 0x91, 0x2c, 0x35, 0x92, 0xa5,
|
||||||
|
0x46, 0xa2, 0xe7, 0x9a, 0xd0, 0xd3, 0xd9, 0x74, 0x82, 0x9a, 0x77, 0x2b, 0x10, 0xd4, 0x48, 0x6e,
|
||||||
|
0x9a, 0x36, 0x78, 0xec, 0x08, 0xa7, 0xa5, 0x71, 0x04, 0x33, 0xd2, 0x38, 0x92, 0x8c, 0x66, 0x75,
|
||||||
|
0x18, 0x96, 0x3c, 0x34, 0x92, 0x87, 0x46, 0x82, 0xf0, 0x7a, 0x40, 0xf8, 0x55, 0x50, 0xd0, 0xec,
|
||||||
|
0x4a, 0x0a, 0x9a, 0x08, 0x22, 0x3b, 0x60, 0x9f, 0x71, 0x84, 0x13, 0xcf, 0x38, 0x92, 0x73, 0x46,
|
||||||
|
0x00, 0x50, 0x7a, 0x92, 0x6e, 0x46, 0xd2, 0xcd, 0x48, 0xa8, 0xdd, 0x94, 0x9f, 0xd5, 0x93, 0x4c,
|
||||||
|
0x33, 0xaf, 0x06, 0x65, 0xbd, 0x0e, 0x48, 0x66, 0x3c, 0xe1, 0xfc, 0x32, 0x9e, 0xa4, 0x96, 0x59,
|
||||||
|
0x2b, 0x1e, 0x63, 0xc9, 0x2a, 0x03, 0x24, 0xab, 0x8c, 0x44, 0xd9, 0xe7, 0x44, 0x59, 0xfc, 0xea,
|
||||||
|
0x08, 0x65, 0x76, 0xe4, 0xab, 0x76, 0xfe, 0x66, 0x6c, 0xc7, 0x5c, 0x32, 0x9d, 0xd2, 0xc8, 0x48,
|
||||||
|
0x06, 0x99, 0xae, 0xc0, 0x56, 0x92, 0xc7, 0x48, 0xf2, 0x18, 0x89, 0xb4, 0xcf, 0x88, 0xb4, 0x9b,
|
||||||
|
0xcf, 0x1b, 0xf3, 0x6e, 0x57, 0xd2, 0xc6, 0xa4, 0x20, 0xb6, 0x0b, 0xc6, 0x98, 0xce, 0xc8, 0x62,
|
||||||
|
0x24, 0x4f, 0x8c, 0x28, 0x48, 0x75, 0x24, 0x45, 0x8c, 0xa4, 0x88, 0x91, 0x58, 0xfa, 0x3c, 0x67,
|
||||||
|
0xa1, 0x5e, 0x13, 0x3b, 0x8c, 0x0c, 0x59, 0xa3, 0xf3, 0x4a, 0x1d, 0x45, 0xab, 0x4e, 0x47, 0x9c,
|
||||||
|
0x30, 0xce, 0x8f, 0x42, 0x07, 0xc3, 0x5b, 0x70, 0x1d, 0xb8, 0x3b, 0x95, 0x8c, 0x31, 0x92, 0x31,
|
||||||
|
0x46, 0x62, 0xee, 0x9a, 0x31, 0x77, 0x2a, 0xc9, 0x62, 0xc0, 0x9a, 0xfd, 0x8d, 0x78, 0x84, 0x9d,
|
||||||
|
0x8a, 0xe6, 0x89, 0x99, 0x8a, 0xa5, 0x88, 0x99, 0x4a, 0x76, 0x98, 0x55, 0xc1, 0x51, 0x12, 0xc3,
|
||||||
|
0x48, 0x62, 0x18, 0x89, 0x93, 0xad, 0x8d, 0x5f, 0x00, 0x31, 0xcc, 0x54, 0x72, 0xc2, 0xbc, 0x42,
|
||||||
|
0x4e, 0x18, 0xfe, 0xab, 0x3c, 0x2e, 0x90, 0x65, 0x31, 0x5c, 0x9b, 0x4c, 0x0b, 0xf2, 0x48, 0xf9,
|
||||||
|
0xad, 0x55, 0xbc, 0x59, 0x82, 0xb4, 0xad, 0x62, 0x66, 0x79, 0xb8, 0x30, 0x3e, 0x2c, 0x30, 0xb6,
|
||||||
|
0xad, 0x1a, 0xd5, 0x0f, 0xdc, 0xd5, 0x39, 0x82, 0x64, 0x45, 0x7f, 0x81, 0x30, 0x26, 0x52, 0x6b,
|
||||||
|
0x1c, 0x55, 0xa0, 0x84, 0x2a, 0x23, 0x2d, 0xb9, 0x70, 0xa0, 0xb5, 0x0f, 0x26, 0x3c, 0x15, 0xc8,
|
||||||
|
0xa2, 0x62, 0x8a, 0x5c, 0x17, 0x69, 0x81, 0xea, 0x4e, 0x6a, 0x5c, 0x40, 0xb6, 0x5a, 0x48, 0x8a,
|
||||||
|
0xf1, 0x2b, 0x57, 0xb5, 0x26, 0x36, 0x62, 0x5b, 0x87, 0x86, 0xee, 0xdb, 0x66, 0xbd, 0xa3, 0x70,
|
||||||
|
0xc9, 0x50, 0x85, 0x03, 0xd5, 0x1f, 0xac, 0xa0, 0xe7, 0x4d, 0xf5, 0x93, 0x7b, 0x4e, 0xd9, 0x06,
|
||||||
|
0xd5, 0xc2, 0x42, 0x57, 0xae, 0x8e, 0x51, 0xd8, 0xd5, 0xa0, 0x66, 0xdb, 0xce, 0x06, 0x7a, 0xc2,
|
||||||
|
0x44, 0x4a, 0x45, 0xe1, 0x52, 0x94, 0x65, 0x72, 0xf8, 0xfb, 0x83, 0x8e, 0x7d, 0x55, 0xfa, 0x4a,
|
||||||
|
0xe6, 0x18, 0x42, 0x09, 0x89, 0xd5, 0x2d, 0x54, 0xef, 0x66, 0x64, 0x75, 0x6a, 0x91, 0xe7, 0x39,
|
||||||
|
0x47, 0x2a, 0x86, 0xd6, 0xcc, 0x28, 0x23, 0xbb, 0xb2, 0xa9, 0xc7, 0xc1, 0x8f, 0x34, 0x4b, 0x39,
|
||||||
|
0x2a, 0x68, 0x3c, 0x77, 0x89, 0x83, 0xd3, 0x88, 0x9b, 0x91, 0xa5, 0x09, 0xe7, 0x0a, 0xff, 0x66,
|
||||||
|
0x08, 0x17, 0x19, 0x55, 0x43, 0x02, 0x2a, 0x0e, 0xd2, 0xa9, 0x16, 0x44, 0x53, 0x4d, 0x99, 0x81,
|
||||||
|
0x3e, 0xbb, 0xba, 0xc6, 0xb5, 0x6e, 0xa7, 0x9e, 0x62, 0x46, 0x0a, 0x57, 0x9b, 0x65, 0xe3, 0x95,
|
||||||
|
0xbc, 0x6f, 0xf1, 0x5e, 0x5d, 0x7e, 0x20, 0x72, 0x0c, 0x3c, 0xcb, 0x74, 0xd7, 0x5e, 0x46, 0x25,
|
||||||
|
0xc7, 0xa3, 0xea, 0xe4, 0x76, 0x83, 0x88, 0x8b, 0x8e, 0xc0, 0x2d, 0xc4, 0xf8, 0x70, 0xe1, 0xd2,
|
||||||
|
0xc7, 0xe2, 0x89, 0xb1, 0xb0, 0x8e, 0x29, 0x3e, 0x7f, 0xf7, 0x2e, 0xc9, 0xc2, 0xfb, 0x03, 0xa9,
|
||||||
|
0x8b, 0xdc, 0x47, 0x8e, 0x43, 0xc2, 0x2d, 0xd7, 0x6e, 0x05, 0x4e, 0x74, 0x5c, 0x9f, 0xda, 0x6f,
|
||||||
|
0x1a, 0xb8, 0xb5, 0x0e, 0xd6, 0xa2, 0x85, 0xc8, 0x88, 0x6f, 0xbf, 0xa1, 0x61, 0x64, 0x15, 0xc0,
|
||||||
|
0x4e, 0x30, 0x3b, 0xd7, 0xd6, 0x29, 0x7c, 0xe0, 0x8f, 0xa2, 0xba, 0x8b, 0x9c, 0x04, 0x47, 0x4b,
|
||||||
|
0x2b, 0x45, 0x48, 0x9c, 0x27, 0xce, 0x3e, 0xda, 0x0b, 0xb2, 0xac, 0xbc, 0x70, 0x74, 0xab, 0x59,
|
||||||
|
0x3c, 0x94, 0x34, 0x90, 0x26, 0x19, 0x88, 0x15, 0x43, 0x15, 0x0d, 0xa9, 0xba, 0x49, 0x16, 0xca,
|
||||||
|
0x75, 0x4b, 0x86, 0xcc, 0xca, 0xcc, 0xf8, 0x16, 0xbe, 0xab, 0xa1, 0x8c, 0x1a, 0xd5, 0x3b, 0xf2,
|
||||||
|
0x73, 0x92, 0x0d, 0x6b, 0x5d, 0xda, 0x0d, 0x9b, 0xa2, 0x6b, 0x14, 0xfd, 0x81, 0x68, 0xf4, 0x31,
|
||||||
|
0xf9, 0x97, 0x9f, 0xf9, 0x6e, 0x31, 0xf5, 0x6b, 0xf1, 0xa6, 0xcd, 0xba, 0x0b, 0x9d, 0x5a, 0xba,
|
||||||
|
0xd7, 0x5f, 0x79, 0x54, 0x47, 0xa4, 0x87, 0x7c, 0x89, 0x0e, 0xb2, 0x43, 0xff, 0x88, 0x0c, 0xc3,
|
||||||
|
0x93, 0x8e, 0xb1, 0x4d, 0xde, 0x62, 0x65, 0xbf, 0x48, 0x87, 0xfe, 0x59, 0x1c, 0xe3, 0xa8, 0x8d,
|
||||||
|
0x63, 0x1c, 0xef, 0xb4, 0x72, 0x8c, 0x8d, 0xab, 0x51, 0xcf, 0x38, 0x69, 0xe2, 0x19, 0x23, 0x1f,
|
||||||
|
0xe7, 0x6d, 0xa8, 0x8b, 0x93, 0x1e, 0xae, 0xd3, 0x25, 0xe0, 0x97, 0x7b, 0xe4, 0xde, 0xdb, 0x06,
|
||||||
|
0x26, 0x91, 0xac, 0x74, 0x74, 0xcf, 0xb2, 0x02, 0x4c, 0xcc, 0xc0, 0xe6, 0x2c, 0x04, 0x77, 0x77,
|
||||||
|
0xd7, 0xb6, 0x10, 0xfc, 0x75, 0xaf, 0xcd, 0x42, 0xf0, 0x5b, 0xbb, 0x85, 0xe0, 0xb7, 0x0d, 0xf5,
|
||||||
|
0x92, 0x13, 0xe9, 0x26, 0x3b, 0x75, 0x93, 0x5f, 0x2d, 0x2d, 0xb2, 0xd2, 0x6b, 0xeb, 0x70, 0x81,
|
||||||
|
0xed, 0xe9, 0x14, 0x5c, 0x60, 0xe8, 0x62, 0xe9, 0x35, 0x9f, 0xc5, 0x6b, 0x26, 0x27, 0x84, 0xcd,
|
||||||
|
0xc3, 0xe6, 0xf8, 0xce, 0x37, 0x23, 0xe9, 0x3b, 0x5f, 0x92, 0xef, 0xdc, 0x91, 0xbe, 0x73, 0xfd,
|
||||||
|
0xbe, 0xf3, 0x93, 0xa5, 0x49, 0xcf, 0xf9, 0xec, 0x9e, 0x93, 0xcc, 0xc2, 0xe6, 0xf8, 0xcd, 0x9d,
|
||||||
|
0x77, 0xd2, 0x6f, 0xae, 0xe4, 0x37, 0x45, 0x3b, 0xce, 0x37, 0x8d, 0xb7, 0x75, 0x18, 0xdd, 0x94,
|
||||||
|
0xbd, 0xe6, 0x5d, 0x9d, 0x1f, 0xcc, 0xdd, 0x5e, 0xcd, 0x11, 0x32, 0xae, 0x2d, 0x7a, 0x92, 0x58,
|
||||||
|
0x7a, 0xd8, 0x9c, 0x09, 0x1c, 0xda, 0xe6, 0xad, 0x1d, 0xab, 0x39, 0x55, 0xe5, 0x25, 0x1d, 0xb0,
|
||||||
|
0x8f, 0x3a, 0x34, 0x11, 0x8e, 0x39, 0x62, 0xe9, 0x60, 0x9e, 0xdb, 0x54, 0x73, 0x7b, 0xf4, 0xab,
|
||||||
|
0x3f, 0x92, 0xaa, 0xbf, 0x5f, 0x76, 0x4c, 0x3c, 0xe8, 0x43, 0xa8, 0x59, 0xa6, 0xad, 0x21, 0xa2,
|
||||||
|
0x06, 0x27, 0xba, 0x87, 0x4f, 0xe9, 0xd7, 0xc4, 0x84, 0xe5, 0x84, 0xb3, 0x02, 0xd1, 0x6d, 0x5a,
|
||||||
|
0xe5, 0x93, 0x81, 0xe8, 0x88, 0xfc, 0xc9, 0xe6, 0xae, 0x37, 0xd9, 0xbb, 0xee, 0xf5, 0x7e, 0x4b,
|
||||||
|
0xfc, 0x22, 0xf6, 0xdb, 0x3d, 0xf0, 0xb4, 0xbd, 0xed, 0xea, 0xa6, 0x47, 0x66, 0xf3, 0xe7, 0xf1,
|
||||||
|
0x9e, 0x69, 0x56, 0xd5, 0x7e, 0xab, 0xec, 0xa6, 0xeb, 0xbf, 0x1d, 0xbf, 0x49, 0x38, 0x85, 0x82,
|
||||||
|
0x1a, 0xef, 0x32, 0xe5, 0x77, 0x27, 0x41, 0xf9, 0xa7, 0xad, 0x97, 0xe5, 0x6e, 0x90, 0xa5, 0x92,
|
||||||
|
0xb1, 0x73, 0x1b, 0x3b, 0x9c, 0x4f, 0x7e, 0x3d, 0xe9, 0x71, 0xf8, 0x3c, 0x0e, 0xd7, 0x39, 0xa8,
|
||||||
|
0x92, 0xb9, 0xf9, 0x32, 0x9d, 0x7a, 0x08, 0xfb, 0x12, 0x1a, 0x67, 0x21, 0x59, 0xdd, 0x6b, 0x22,
|
||||||
|
0x88, 0x18, 0x98, 0x8a, 0x75, 0xdb, 0xea, 0x35, 0xf5, 0x08, 0xb9, 0x63, 0x4a, 0x6f, 0x47, 0xad,
|
||||||
|
0x45, 0x84, 0x6e, 0xa5, 0x01, 0xb1, 0x5d, 0xa3, 0x23, 0x4c, 0xc9, 0x8f, 0xb9, 0x37, 0x1a, 0x69,
|
||||||
|
0xc4, 0x39, 0xa8, 0x98, 0x78, 0x09, 0xc3, 0x9e, 0x29, 0xb6, 0x83, 0xac, 0xfe, 0x40, 0xf0, 0x81,
|
||||||
|
0xf9, 0x35, 0xac, 0x2d, 0xd3, 0x6a, 0xf0, 0x1c, 0xab, 0xca, 0x71, 0x9b, 0x55, 0xe5, 0xfa, 0x82,
|
||||||
|
0xf1, 0x37, 0x7b, 0xad, 0x36, 0x6e, 0xfe, 0xfb, 0x9f, 0x0d, 0x8b, 0xab, 0xa5, 0x27, 0x6d, 0xbd,
|
||||||
|
0x76, 0x3b, 0xb6, 0xee, 0x91, 0x8b, 0xc1, 0xa9, 0x8d, 0x6d, 0xf7, 0xda, 0xfa, 0xa8, 0x37, 0x76,
|
||||||
|
0x86, 0x32, 0x52, 0x4e, 0x7c, 0x2e, 0x96, 0x3a, 0x56, 0xe7, 0x0d, 0xdd, 0x98, 0x49, 0xc7, 0x3e,
|
||||||
|
0x1a, 0xf9, 0x35, 0xf9, 0xb1, 0x17, 0x97, 0x13, 0xdb, 0x6b, 0xb0, 0xd2, 0xea, 0x7d, 0x84, 0x18,
|
||||||
|
0x82, 0x13, 0x7b, 0x36, 0xe3, 0x7a, 0x69, 0x75, 0x9d, 0xee, 0x61, 0x6b, 0x65, 0xf5, 0xa0, 0x03,
|
||||||
|
0xe2, 0x62, 0xf2, 0x70, 0x9f, 0x6a, 0x75, 0x21, 0xb0, 0xe1, 0x4f, 0x16, 0xa4, 0x44, 0xd6, 0xe7,
|
||||||
|
0x97, 0x80, 0x7f, 0x5c, 0x42, 0xb7, 0xa4, 0x32, 0x23, 0x3a, 0xb6, 0xb8, 0x5c, 0x53, 0x8b, 0x81,
|
||||||
|
0x2c, 0x3c, 0x3a, 0x2e, 0xee, 0x68, 0xb6, 0x3e, 0x05, 0xfd, 0xe0, 0x75, 0x9c, 0x01, 0xa7, 0xd9,
|
||||||
|
0xd1, 0x2a, 0x01, 0x67, 0x2c, 0x5d, 0xf8, 0x9c, 0xd3, 0xa1, 0x3e, 0xd2, 0x0d, 0xd4, 0xfc, 0x37,
|
||||||
|
0x6b, 0xdc, 0xb0, 0x2a, 0x73, 0x4a, 0x74, 0x32, 0x06, 0x83, 0x06, 0xb6, 0x1f, 0x3a, 0x4b, 0x8f,
|
||||||
|
0x6e, 0x26, 0x7c, 0xb6, 0x3c, 0xef, 0xc8, 0x76, 0x91, 0x7f, 0x8a, 0xfb, 0x02, 0xb9, 0xf7, 0xba,
|
||||||
|
0x8a, 0x1a, 0x2c, 0xca, 0x82, 0x27, 0x22, 0x0b, 0xa1, 0x2b, 0x78, 0x87, 0x4e, 0x6c, 0xf5, 0xae,
|
||||||
|
0x4f, 0xe7, 0x66, 0x20, 0xca, 0x19, 0x00, 0x64, 0x78, 0x88, 0xf3, 0xe1, 0x82, 0xbe, 0xa8, 0x86,
|
||||||
|
0xed, 0xa1, 0x78, 0x78, 0xf9, 0xba, 0x12, 0x0f, 0x8a, 0xed, 0x94, 0x8d, 0x09, 0xf7, 0x34, 0xff,
|
||||||
|
0x14, 0x73, 0x03, 0x47, 0xa3, 0xd2, 0x68, 0x8a, 0x0a, 0x46, 0x95, 0xbd, 0xf4, 0x33, 0x78, 0x09,
|
||||||
|
0xf9, 0xb3, 0x4b, 0xdd, 0xe4, 0x7a, 0x75, 0xdc, 0x45, 0x0e, 0x82, 0xbc, 0xbf, 0x41, 0xeb, 0x2e,
|
||||||
|
0x2c, 0x8b, 0xad, 0x3a, 0xb8, 0x4a, 0xeb, 0xd4, 0x79, 0x90, 0x60, 0x7e, 0x1f, 0xd0, 0xdf, 0x9f,
|
||||||
|
0xa8, 0x2d, 0x6e, 0x5b, 0x97, 0xae, 0x3e, 0x9b, 0x21, 0x97, 0x3f, 0x68, 0xa1, 0xd3, 0x18, 0x7b,
|
||||||
|
0x43, 0x25, 0xb0, 0xf5, 0x46, 0xa6, 0xfa, 0xd7, 0xbf, 0x82, 0x50, 0x11, 0x74, 0x8f, 0xe9, 0xe3,
|
||||||
|
0x17, 0x16, 0xf0, 0xb4, 0xb3, 0xd5, 0x15, 0xd5, 0x52, 0x98, 0x6a, 0xae, 0xae, 0x9e, 0xc2, 0x63,
|
||||||
|
0xb9, 0xfc, 0x3c, 0x81, 0x03, 0x50, 0x34, 0xf2, 0x1d, 0xbe, 0x0f, 0xb8, 0x91, 0x31, 0xc5, 0x0b,
|
||||||
|
0x0c, 0x3a, 0x76, 0x3b, 0x4a, 0xdf, 0x84, 0xe7, 0x5c, 0xe7, 0x36, 0x01, 0x07, 0xba, 0x54, 0x09,
|
||||||
|
0x83, 0x0e, 0xdb, 0x7d, 0x54, 0x14, 0x45, 0x48, 0x12, 0x66, 0x23, 0xb2, 0x30, 0xd4, 0x09, 0x84,
|
||||||
|
0x5e, 0xc5, 0x45, 0xdf, 0x17, 0xc8, 0xc3, 0x14, 0x26, 0xcf, 0x90, 0x6b, 0xea, 0x9e, 0x47, 0x02,
|
||||||
|
0x81, 0xe6, 0xee, 0x80, 0x7e, 0x0c, 0x1f, 0x6d, 0xcf, 0x68, 0x9f, 0x5c, 0x05, 0xb1, 0x95, 0x21,
|
||||||
|
0x35, 0xc3, 0x56, 0xaf, 0x17, 0xa7, 0x85, 0x85, 0x3f, 0x98, 0xd2, 0x42, 0x58, 0xa3, 0xe5, 0x43,
|
||||||
|
0x81, 0x87, 0x43, 0xa6, 0x8e, 0x4f, 0x91, 0xe7, 0xc1, 0x19, 0xf2, 0x73, 0x56, 0xab, 0xfd, 0xc0,
|
||||||
|
0x60, 0x8f, 0x3e, 0x15, 0x88, 0x87, 0xda, 0xeb, 0x0d, 0x57, 0x93, 0xf7, 0xd5, 0x5f, 0x81, 0x63,
|
||||||
|
0x1b, 0x04, 0x53, 0x09, 0xe8, 0x2b, 0xc4, 0xc0, 0x7b, 0xf4, 0xe8, 0xcf, 0xd6, 0x3b, 0x51, 0x43,
|
||||||
|
0xca, 0x8a, 0x0d, 0x31, 0xef, 0x3e, 0x04, 0x0d, 0x9d, 0x3c, 0xbf, 0xa3, 0x17, 0x0e, 0x09, 0x74,
|
||||||
|
0x65, 0x7c, 0x6c, 0x39, 0x8d, 0x78, 0x27, 0xba, 0xcb, 0x28, 0x44, 0xa1, 0x55, 0xb8, 0x68, 0xe7,
|
||||||
|
0xae, 0xd9, 0xf0, 0xed, 0xc1, 0xf2, 0xea, 0x26, 0x7b, 0xe7, 0xd1, 0x6b, 0x42, 0x5f, 0x33, 0xb5,
|
||||||
|
0x2d, 0xe2, 0xa3, 0x6c, 0xb2, 0xd6, 0x0a, 0xb8, 0x7a, 0x26, 0x4d, 0xbd, 0xad, 0xb2, 0x4d, 0x4c,
|
||||||
|
0xa6, 0xc7, 0xef, 0x17, 0xff, 0x08, 0x5f, 0x76, 0x55, 0xc2, 0x2f, 0x0d, 0x4d, 0xd7, 0x71, 0x49,
|
||||||
|
0x68, 0xe5, 0xe2, 0x47, 0x00, 0x0d, 0x1d, 0x7a, 0xfe, 0x98, 0xef, 0x17, 0xc4, 0x4b, 0x2b, 0x0b,
|
||||||
|
0xf5, 0x43, 0xdf, 0x7d, 0xb0, 0xe2, 0x12, 0x31, 0x23, 0x9a, 0x66, 0xc8, 0x03, 0x1a, 0x80, 0x60,
|
||||||
|
0xe7, 0x2d, 0x24, 0x05, 0xf8, 0x00, 0x5d, 0x25, 0xb9, 0x27, 0xb7, 0xb5, 0x6a, 0x33, 0x1e, 0x76,
|
||||||
|
0x11, 0xc2, 0x97, 0xec, 0x97, 0x54, 0xf7, 0x41, 0xf2, 0xaf, 0x24, 0xe5, 0x8e, 0x98, 0x56, 0xce,
|
||||||
|
0xa0, 0x17, 0x36, 0x71, 0x96, 0xfe, 0x85, 0x4f, 0x41, 0xf2, 0xe9, 0xef, 0xa1, 0x45, 0x2d, 0x64,
|
||||||
|
0x7f, 0x1c, 0x4d, 0x4c, 0x1b, 0x6c, 0x3f, 0x3f, 0x6c, 0xe3, 0x22, 0xfb, 0xd3, 0x30, 0x82, 0x66,
|
||||||
|
0x23, 0xc3, 0x73, 0x1f, 0xcd, 0x4b, 0x05, 0xff, 0xbd, 0xd8, 0x96, 0x29, 0x93, 0x5e, 0xb6, 0xd5,
|
||||||
|
0x2c, 0x35, 0xb0, 0x30, 0x9d, 0x48, 0x3f, 0x4e, 0x42, 0x43, 0xba, 0x7b, 0xce, 0xa3, 0xab, 0xb0,
|
||||||
|
0x99, 0xa3, 0xab, 0x0e, 0xa4, 0x27, 0x99, 0x5e, 0xa2, 0x86, 0x8a, 0xe8, 0x5f, 0x22, 0x67, 0xb1,
|
||||||
|
0x6a, 0xc3, 0xd8, 0x85, 0xba, 0x11, 0x5a, 0x71, 0xe2, 0x0f, 0x91, 0x0f, 0xc7, 0xc4, 0x32, 0x1b,
|
||||||
|
0x0e, 0xbf, 0x89, 0x97, 0xee, 0x5b, 0x70, 0xfc, 0x5d, 0x78, 0x0b, 0x81, 0xfd, 0xc6, 0xdf, 0x85,
|
||||||
|
0xb7, 0x90, 0xb7, 0xde, 0xc2, 0xcb, 0x9d, 0xb5, 0xeb, 0xdb, 0x6e, 0xee, 0x52, 0xb2, 0x3d, 0x20,
|
||||||
|
0x4a, 0x15, 0xd6, 0x6a, 0xba, 0xac, 0x51, 0x6a, 0xb9, 0xc1, 0x17, 0xf1, 0xb2, 0xd3, 0x76, 0x9b,
|
||||||
|
0xbf, 0x26, 0xdc, 0x6c, 0x8d, 0x85, 0xa6, 0x47, 0x56, 0x2b, 0xdc, 0x60, 0xa9, 0x74, 0x66, 0xaf,
|
||||||
|
0x8e, 0x58, 0x53, 0x65, 0x72, 0x7d, 0x4b, 0x75, 0x44, 0x1b, 0x29, 0x95, 0x1d, 0x62, 0xac, 0x68,
|
||||||
|
0xf3, 0x64, 0xa3, 0x9d, 0xb7, 0xce, 0x0e, 0x0d, 0x33, 0xd9, 0x62, 0x60, 0x97, 0x1d, 0xa1, 0x69,
|
||||||
|
0x30, 0xd7, 0x59, 0x83, 0x74, 0xba, 0x31, 0x45, 0xda, 0x1a, 0xb5, 0xc4, 0xe9, 0x95, 0x70, 0xa9,
|
||||||
|
0x69, 0x1b, 0x9c, 0x76, 0x6a, 0x7e, 0x09, 0xbe, 0x8e, 0x53, 0xf8, 0x10, 0xc4, 0x1a, 0x29, 0x96,
|
||||||
|
0x02, 0x25, 0x3a, 0x37, 0x21, 0xa4, 0x2d, 0xfa, 0x8a, 0x2f, 0x4a, 0xb7, 0x13, 0xbc, 0xf5, 0x2b,
|
||||||
|
0xae, 0x21, 0xfb, 0x1e, 0xb9, 0xdf, 0x82, 0xd7, 0x44, 0x92, 0x2d, 0xa5, 0xdf, 0xba, 0x13, 0xd7,
|
||||||
|
0xde, 0x82, 0x9e, 0xae, 0xfe, 0x96, 0x78, 0x2f, 0x25, 0xd5, 0x6a, 0xd1, 0x5b, 0x2b, 0xdd, 0xb4,
|
||||||
|
0xfd, 0xc9, 0xd2, 0x4a, 0x5b, 0xf6, 0x4f, 0x7d, 0x8b, 0x6b, 0x37, 0x75, 0xc6, 0x31, 0x6a, 0x35,
|
||||||
|
0x7b, 0xac, 0x32, 0x1d, 0xa9, 0xad, 0xd8, 0x64, 0xea, 0xb0, 0x51, 0xd4, 0x64, 0xf6, 0x08, 0x92,
|
||||||
|
0xb8, 0x47, 0x4c, 0x9f, 0x0a, 0x88, 0x1a, 0xcc, 0x1d, 0x16, 0x50, 0x1c, 0xdb, 0xd3, 0xe9, 0x77,
|
||||||
|
0xce, 0x54, 0x72, 0xd3, 0x34, 0x4f, 0xa7, 0x5b, 0x58, 0xc7, 0x34, 0x3d, 0x56, 0x9f, 0x5a, 0xd8,
|
||||||
|
0xde, 0x06, 0x94, 0x32, 0x88, 0xe3, 0xb0, 0xc7, 0x6a, 0x59, 0x7b, 0x6e, 0x5e, 0xa6, 0xba, 0x5d,
|
||||||
|
0x88, 0x06, 0x43, 0xc1, 0x4b, 0x4b, 0x78, 0xab, 0xdf, 0xa1, 0xc3, 0xe9, 0x4c, 0xb2, 0x12, 0xf2,
|
||||||
|
0x66, 0xf1, 0x5f, 0x05, 0x2b, 0xe1, 0xf3, 0xf1, 0x0e, 0x52, 0x7d, 0x2b, 0xe0, 0x1d, 0x94, 0xdc,
|
||||||
|
0x82, 0xcf, 0xc7, 0x2d, 0x48, 0x3f, 0x25, 0xd3, 0xa2, 0xc4, 0x0c, 0x80, 0x0a, 0x4b, 0x9c, 0x83,
|
||||||
|
0x03, 0x50, 0x99, 0x3a, 0xff, 0x10, 0x95, 0xef, 0x0d, 0x7e, 0x5b, 0x2b, 0xa3, 0x21, 0xfd, 0x44,
|
||||||
|
0x5b, 0x7e, 0xfe, 0xd6, 0x52, 0xc9, 0x38, 0x51, 0x35, 0x4c, 0x6d, 0x41, 0xf1, 0xf3, 0x04, 0x16,
|
||||||
|
0x3a, 0xb5, 0xb9, 0xbd, 0xfc, 0x68, 0xe3, 0xf7, 0x96, 0x46, 0xfe, 0x4b, 0xfe, 0xa9, 0x98, 0xca,
|
||||||
|
0x98, 0x48, 0xbd, 0xd4, 0x99, 0x06, 0x5b, 0x6b, 0x61, 0x91, 0x62, 0xaa, 0x45, 0xba, 0xb7, 0x79,
|
||||||
|
0x81, 0x0c, 0xf2, 0xac, 0xd5, 0xda, 0x90, 0xcf, 0x8c, 0x93, 0xf9, 0xa3, 0x09, 0xe7, 0x7f, 0x92,
|
||||||
|
0xc5, 0xcc, 0x86, 0xf2, 0x46, 0x1e, 0x2d, 0xbf, 0x3a, 0x1a, 0xc4, 0xa8, 0x86, 0x33, 0xb2, 0x76,
|
||||||
|
0xda, 0xb6, 0xb7, 0xe9, 0xc4, 0x7d, 0x75, 0x0c, 0x1b, 0x6a, 0xef, 0x0d, 0xc3, 0xd7, 0xf7, 0xb2,
|
||||||
|
0x99, 0xc9, 0x0e, 0x42, 0xfa, 0x1b, 0xe9, 0xe5, 0x74, 0x61, 0xb1, 0x95, 0x53, 0x96, 0xfd, 0xd5,
|
||||||
|
0xef, 0xa4, 0x79, 0x68, 0x9b, 0x26, 0xb4, 0x34, 0x8f, 0x1a, 0xcd, 0xa9, 0xaa, 0xda, 0xd6, 0x34,
|
||||||
|
0xb0, 0xc9, 0xd4, 0x1d, 0x62, 0x4e, 0x87, 0xfe, 0x2d, 0x76, 0xef, 0x1e, 0xba, 0x20, 0xf1, 0xf3,
|
||||||
|
0xe3, 0xf1, 0xa1, 0x87, 0xfc, 0x6f, 0x92, 0x47, 0xe5, 0x75, 0xd3, 0x39, 0x82, 0x2a, 0x9d, 0xe6,
|
||||||
|
0x64, 0xcd, 0x7f, 0x80, 0xb1, 0xb2, 0x37, 0x7a, 0xb7, 0xf3, 0x06, 0xd0, 0xdf, 0x2f, 0x1a, 0xc5,
|
||||||
|
0xe2, 0x59, 0x9c, 0x4f, 0x0a, 0x9b, 0xa7, 0x2a, 0x6d, 0x99, 0x76, 0xe2, 0x0c, 0xba, 0xd0, 0xf4,
|
||||||
|
0x8f, 0xcf, 0x13, 0x9b, 0xbe, 0x59, 0x92, 0x25, 0xf7, 0x8d, 0x09, 0x1f, 0x7a, 0x71, 0x1b, 0x7e,
|
||||||
|
0x46, 0xa3, 0xb2, 0x56, 0xb0, 0x42, 0xf6, 0x2b, 0x66, 0x4f, 0x24, 0x50, 0x19, 0x2c, 0x09, 0x40,
|
||||||
|
0x44, 0xfc, 0x52, 0x2e, 0xc3, 0xd4, 0xad, 0x1b, 0xe4, 0x3a, 0x26, 0x11, 0xb0, 0x1d, 0x3e, 0x57,
|
||||||
|
0xdc, 0x71, 0xb2, 0x9c, 0x25, 0x1d, 0x08, 0x46, 0x2c, 0x57, 0x1b, 0x3a, 0xce, 0x0d, 0x29, 0x72,
|
||||||
|
0x43, 0x47, 0x3a, 0x5c, 0xae, 0xdf, 0x78, 0x2a, 0x59, 0x06, 0x5b, 0x33, 0x22, 0xef, 0x6f, 0xc1,
|
||||||
|
0x33, 0xc4, 0x8f, 0x94, 0x49, 0x16, 0xd4, 0xc9, 0x86, 0x9a, 0xea, 0xcb, 0x26, 0xd7, 0x9d, 0x1b,
|
||||||
|
0xac, 0x9b, 0xe8, 0x86, 0xac, 0x97, 0x13, 0x63, 0x94, 0x08, 0xd0, 0xb9, 0xfb, 0x59, 0x26, 0x2b,
|
||||||
|
0x99, 0x5b, 0x20, 0xc2, 0xc6, 0x23, 0x62, 0x29, 0xe0, 0x17, 0xd0, 0xe7, 0xeb, 0x61, 0x58, 0xfb,
|
||||||
|
0x06, 0x3d, 0x38, 0xbd, 0x01, 0x7d, 0xf6, 0x5f, 0x22, 0xde, 0x25, 0x2a, 0x3d, 0x8c, 0x8a, 0x2b,
|
||||||
|
0xe7, 0x93, 0x4c, 0x45, 0x6a, 0x4a, 0x53, 0xb5, 0x13, 0x11, 0x68, 0xa5, 0x10, 0x52, 0xf3, 0xe6,
|
||||||
|
0x5e, 0xb7, 0x32, 0xb5, 0x73, 0x91, 0x64, 0xa5, 0x8c, 0x5b, 0x9f, 0x4e, 0x93, 0xf4, 0x86, 0xcc,
|
||||||
|
0x27, 0x63, 0xad, 0x28, 0x97, 0x46, 0xa2, 0x43, 0x6e, 0x59, 0x88, 0x02, 0x56, 0x7a, 0x4c, 0x68,
|
||||||
|
0x04, 0x5f, 0x50, 0xff, 0xd8, 0xc2, 0xfd, 0x9e, 0xa7, 0xc7, 0xb5, 0x19, 0xb5, 0x5a, 0x5c, 0x37,
|
||||||
|
0x15, 0xba, 0x55, 0xb4, 0x3f, 0xb5, 0xd5, 0x9b, 0xa0, 0xec, 0x8d, 0xcd, 0x0a, 0x27, 0x84, 0x4c,
|
||||||
|
0xe9, 0x2f, 0xe8, 0xd0, 0xdf, 0xcf, 0xa9, 0x11, 0x30, 0x5d, 0x96, 0xcc, 0x4b, 0x2a, 0xc1, 0x12,
|
||||||
|
0x5d, 0x4d, 0x47, 0x79, 0x05, 0xb2, 0x3f, 0xd8, 0xb6, 0xd1, 0xef, 0x99, 0x64, 0xbe, 0xe9, 0xf1,
|
||||||
|
0xfd, 0x1b, 0x2d, 0x3a, 0xb7, 0x1f, 0xb8, 0x24, 0x7a, 0xba, 0xa4, 0x1f, 0x38, 0x8d, 0x83, 0xb2,
|
||||||
|
0x1d, 0xb9, 0x01, 0x3d, 0x1a, 0xd7, 0x0f, 0xbd, 0xc4, 0x41, 0xe9, 0xee, 0x63, 0xea, 0x20, 0x4a,
|
||||||
|
0x72, 0x27, 0x94, 0x8c, 0xc5, 0x61, 0x22, 0xc4, 0xee, 0x8f, 0xe2, 0xf5, 0x4b, 0x99, 0x2c, 0x7a,
|
||||||
|
0x7a, 0x24, 0x36, 0xe9, 0xb8, 0x64, 0xae, 0x73, 0xa4, 0xa0, 0xdf, 0xff, 0x15, 0x3f, 0x99, 0x76,
|
||||||
|
0x72, 0x7b, 0x0e, 0xa4, 0x1d, 0xe6, 0xe3, 0xb2, 0xfd, 0x49, 0xa7, 0x6c, 0x69, 0x6f, 0xa0, 0x97,
|
||||||
|
0x7d, 0xba, 0x8a, 0xcc, 0x25, 0x7d, 0xce, 0xcc, 0xed, 0x7c, 0x0b, 0x25, 0x15, 0x13, 0x3e, 0x29,
|
||||||
|
0x53, 0x27, 0x9d, 0x74, 0x67, 0x6b, 0x84, 0x40, 0xff, 0x4a, 0xba, 0x96, 0xdb, 0x79, 0x38, 0x48,
|
||||||
|
0x79, 0xa9, 0x0c, 0x3e, 0xa6, 0xb5, 0xa6, 0x78, 0x17, 0x28, 0xab, 0x34, 0x25, 0x9b, 0x5d, 0xdc,
|
||||||
|
0x3a, 0x33, 0x8e, 0x75, 0xa6, 0x44, 0x54, 0x5e, 0x65, 0x8a, 0x7b, 0x26, 0x5c, 0x63, 0x8a, 0x37,
|
||||||
|
0xa9, 0x72, 0x0a, 0x53, 0xb4, 0x1b, 0x97, 0xd1, 0x97, 0xda, 0x1d, 0xa8, 0x2a, 0x75, 0x29, 0xde,
|
||||||
|
0xec, 0xa9, 0xd4, 0x96, 0x82, 0x1d, 0x9a, 0x42, 0x65, 0xa9, 0xde, 0xa5, 0x6a, 0xa0, 0x2b, 0x4e,
|
||||||
|
0xad, 0x9a, 0x14, 0x6a, 0x48, 0x6a, 0xb8, 0xab, 0xb4, 0x64, 0x92, 0xd0, 0x12, 0x0e, 0x05, 0x71,
|
||||||
|
0x3a, 0xd2, 0x8d, 0xd8, 0xca, 0x6a, 0xb5, 0xc2, 0xa9, 0x56, 0x88, 0x96, 0xba, 0xe0, 0x34, 0x52,
|
||||||
|
0x83, 0x29, 0x87, 0x06, 0xb4, 0x9a, 0xfc, 0xc2, 0x0c, 0x7d, 0xf3, 0x85, 0x49, 0x71, 0x02, 0xbe,
|
||||||
|
0x21, 0x96, 0x57, 0xe5, 0xd6, 0x1b, 0x2c, 0x73, 0xea, 0x93, 0xe5, 0xad, 0xd6, 0x3b, 0x75, 0x99,
|
||||||
|
0xf0, 0x16, 0x0b, 0x9f, 0x8a, 0x14, 0x70, 0x93, 0x85, 0x42, 0xa4, 0xcf, 0xfa, 0xb4, 0x5f, 0xd6,
|
||||||
|
0x05, 0x32, 0xe4, 0x2c, 0xa9, 0x4e, 0xea, 0xf9, 0x59, 0x75, 0x52, 0xed, 0x7f, 0x0f, 0xe8, 0x7b,
|
||||||
|
0xfb, 0x83, 0x3f, 0x2b, 0xb3, 0xed, 0x07, 0xa3, 0xa7, 0x3a, 0x33, 0x6a, 0xd8, 0xec, 0xdf, 0xb9,
|
||||||
|
0x9a, 0x1d, 0x77, 0xd3, 0xec, 0x6e, 0x5d, 0xbb, 0x93, 0xa7, 0x58, 0x7c, 0x7a, 0x61, 0x49, 0x04,
|
||||||
|
0xec, 0xec, 0x8d, 0x94, 0x71, 0x12, 0x0f, 0xcb, 0x77, 0x0d, 0xc0, 0x41, 0x2a, 0xbc, 0xce, 0x15,
|
||||||
|
0xf4, 0x99, 0x5f, 0xc0, 0x41, 0xef, 0xd3, 0xf9, 0xf9, 0x97, 0x73, 0xd0, 0xef, 0x95, 0x17, 0xf5,
|
||||||
|
0x5f, 0xe7, 0x25, 0x45, 0xff, 0xfb, 0x9f, 0x41, 0x5c, 0x0c, 0xc3, 0xdb, 0xec, 0x19, 0x36, 0xd2,
|
||||||
|
0xe6, 0xa4, 0x44, 0x4c, 0x69, 0x6e, 0xa9, 0xf7, 0x3f, 0xd3, 0xe9, 0xbb, 0xdd, 0x77, 0xbb, 0xbd,
|
||||||
|
0x38, 0x77, 0x54, 0x7a, 0x54, 0x37, 0x78, 0xd7, 0x1e, 0x1c, 0x92, 0xa8, 0xee, 0xd6, 0x85, 0x4c,
|
||||||
|
0x51, 0xcf, 0xd1, 0xf7, 0x05, 0x51, 0x45, 0xad, 0x37, 0xec, 0x7d, 0xb6, 0xe9, 0xb9, 0xd9, 0x0f,
|
||||||
|
0xc7, 0xff, 0xf7, 0x09, 0x1c, 0x1e, 0x7d, 0xa6, 0x1d, 0x1c, 0xd2, 0xb7, 0x50, 0x40, 0x41, 0x2d,
|
||||||
|
0x12, 0x7f, 0x13, 0xaf, 0x84, 0x2c, 0xc0, 0x32, 0x60, 0x20, 0x3a, 0xa5, 0x78, 0x6d, 0x5d, 0x5b,
|
||||||
|
0x27, 0xa4, 0x2c, 0xb9, 0x47, 0xe3, 0x7a, 0xd7, 0xdf, 0x09, 0x02, 0xc4, 0x7d, 0xd1, 0xfc, 0xc3,
|
||||||
|
0x94, 0x2c, 0x88, 0x8c, 0x47, 0xa0, 0x2d, 0x5c, 0x52, 0x18, 0xa8, 0xb1, 0x3c, 0xa5, 0x37, 0xcc,
|
||||||
|
0x1f, 0xa8, 0xcd, 0x1d, 0x55, 0xae, 0x9c, 0xac, 0xf4, 0x5c, 0xa7, 0x31, 0xa2, 0x7c, 0xf2, 0xf8,
|
||||||
|
0x66, 0xad, 0x57, 0x2a, 0x4b, 0x54, 0xca, 0x8f, 0xbe, 0x2e, 0x11, 0x67, 0x44, 0x32, 0xa9, 0xc8,
|
||||||
|
0x60, 0x08, 0x3a, 0x4e, 0x6e, 0x10, 0x7b, 0x29, 0x3b, 0x5b, 0x49, 0x97, 0x0d, 0xa3, 0xa4, 0xd9,
|
||||||
|
0x84, 0x76, 0xbb, 0x60, 0x79, 0xa5, 0x8a, 0x4c, 0xc6, 0xb0, 0x3c, 0x94, 0xe1, 0x13, 0x16, 0x25,
|
||||||
|
0x53, 0x86, 0xa5, 0xb1, 0x13, 0x9f, 0xa0, 0x28, 0x37, 0x32, 0x04, 0xbf, 0x94, 0x05, 0x20, 0x7f,
|
||||||
|
0x0b, 0xc7, 0x8b, 0x4b, 0x66, 0x41, 0x34, 0x39, 0x2c, 0x8c, 0x0e, 0x12, 0xd2, 0xc2, 0xfc, 0x43,
|
||||||
|
0x81, 0xb8, 0xca, 0x04, 0xcc, 0xb0, 0x24, 0x18, 0xda, 0xe6, 0x19, 0xdf, 0x9a, 0x46, 0x4b, 0x32,
|
||||||
|
0x33, 0x43, 0x8e, 0xd8, 0x6a, 0x00, 0x04, 0x7d, 0x9a, 0x8f, 0x50, 0x71, 0x67, 0x4b, 0x16, 0xe7,
|
||||||
|
0x2f, 0xa2, 0x9f, 0x16, 0x9a, 0xd5, 0xf5, 0x93, 0xcc, 0xe7, 0x64, 0xfd, 0x7d, 0x2d, 0x4e, 0x7c,
|
||||||
|
0x0d, 0x41, 0x3f, 0xcc, 0x9b, 0x55, 0x47, 0xb2, 0x34, 0xd9, 0xc8, 0x12, 0x64, 0xb1, 0xca, 0xa5,
|
||||||
|
0x72, 0x29, 0xe0, 0x80, 0xeb, 0xe0, 0x67, 0x32, 0xa0, 0xa9, 0xf4, 0x44, 0xe3, 0x96, 0x9e, 0xa8,
|
||||||
|
0x2c, 0x3e, 0x6e, 0xec, 0x88, 0x4a, 0xc2, 0xf1, 0xe6, 0x7e, 0xa8, 0x24, 0xac, 0x15, 0xe0, 0x86,
|
||||||
|
0x0a, 0xc2, 0x4e, 0x21, 0x5e, 0xa8, 0x30, 0xc2, 0xde, 0xe6, 0x18, 0xda, 0xb6, 0x3e, 0xa8, 0x36,
|
||||||
|
0x5e, 0x1f, 0xac, 0xee, 0x3a, 0xaa, 0xc2, 0xfa, 0x17, 0xe4, 0x39, 0x2a, 0xb3, 0x0f, 0xbc, 0x8e,
|
||||||
|
0x43, 0x9c, 0x53, 0xa8, 0xcc, 0x58, 0x70, 0xf8, 0x04, 0x8e, 0x43, 0xa5, 0xd9, 0x3c, 0x47, 0xa5,
|
||||||
|
0x5b, 0x98, 0xb4, 0x75, 0x0b, 0x02, 0x3c, 0x82, 0x23, 0x62, 0x51, 0xd2, 0x85, 0x1f, 0x98, 0x8a,
|
||||||
|
0x77, 0x01, 0x4e, 0xde, 0xfa, 0x3b, 0x31, 0xfc, 0x6e, 0x6d, 0xde, 0x79, 0xf1, 0xe6, 0xee, 0x94,
|
||||||
|
0x5a, 0xfa, 0xaf, 0xe0, 0x67, 0x12, 0x9b, 0x8e, 0x77, 0x07, 0x02, 0x8d, 0xb9, 0xbd, 0x1d, 0x4f,
|
||||||
|
0x39, 0x51, 0xbd, 0xd2, 0x10, 0x32, 0x49, 0xa9, 0x61, 0x71, 0x5e, 0x6b, 0x50, 0x26, 0xa8, 0x38,
|
||||||
|
0x2b, 0x35, 0x2c, 0x49, 0x6b, 0x0d, 0xea, 0xfb, 0x13, 0x66, 0xa4, 0x86, 0x55, 0x39, 0x2d, 0x0e,
|
||||||
|
0x39, 0xf9, 0x64, 0xd4, 0xb0, 0x3e, 0xbd, 0xd5, 0x50, 0x2e, 0xcd, 0x47, 0x0d, 0xeb, 0xb2, 0x5b,
|
||||||
|
0xb5, 0x32, 0xf3, 0x29, 0x97, 0x61, 0x9e, 0xbf, 0x92, 0x86, 0xb3, 0xfd, 0xca, 0xfc, 0xcb, 0x20,
|
||||||
|
0x69, 0xa1, 0x35, 0xde, 0x2a, 0xb3, 0x97, 0x37, 0x2c, 0x8f, 0xef, 0x4b, 0xc5, 0x95, 0x26, 0xd5,
|
||||||
|
0x86, 0x15, 0xc9, 0xb9, 0x01, 0x97, 0xf1, 0x7a, 0x44, 0x85, 0xb5, 0x05, 0x51, 0x69, 0xd2, 0xa4,
|
||||||
|
0x9f, 0xe5, 0x08, 0x5e, 0xb7, 0x0e, 0x4e, 0x58, 0x90, 0xeb, 0x96, 0x2f, 0x3b, 0xf9, 0x4e, 0x26,
|
||||||
|
0x99, 0x4c, 0x32, 0x46, 0xfb, 0x61, 0x5f, 0x63, 0xab, 0x09, 0x63, 0x7b, 0xdb, 0xf2, 0x0f, 0x63,
|
||||||
|
0x68, 0xfd, 0xec, 0x4b, 0xe5, 0xd4, 0x40, 0x19, 0x93, 0x88, 0x62, 0xb2, 0xba, 0xe7, 0x0f, 0xd9,
|
||||||
|
0x17, 0xbc, 0xa3, 0xb3, 0x13, 0x1c, 0xed, 0x07, 0x1e, 0xa1, 0x5d, 0x07, 0xa0, 0x5f, 0x39, 0xee,
|
||||||
|
0x41, 0x71, 0x17, 0xb2, 0xbc, 0x27, 0x3a, 0x7b, 0x1f, 0x10, 0xe2, 0x85, 0xc7, 0xee, 0xc4, 0xd7,
|
||||||
|
0x23, 0x72, 0x92, 0xf1, 0x5e, 0xe2, 0x70, 0x58, 0xc4, 0x70, 0x92, 0x3e, 0x41, 0x12, 0xb2, 0xa4,
|
||||||
|
0xa4, 0xaf, 0x56, 0x30, 0x96, 0xa8, 0xfe, 0x48, 0x10, 0x2f, 0x94, 0x38, 0xb3, 0x13, 0xe4, 0x46,
|
||||||
|
0xc8, 0x60, 0x1c, 0x86, 0xb7, 0xcf, 0x6c, 0x17, 0xd3, 0x63, 0x3c, 0x99, 0xc3, 0x5d, 0x51, 0x75,
|
||||||
|
0x7a, 0xee, 0x26, 0x91, 0x57, 0x7b, 0x33, 0xa5, 0xff, 0xeb, 0xf1, 0x3f, 0xfa, 0x42, 0x2f, 0x7d,
|
||||||
|
0xec, 0x51, 0xd1, 0x63, 0xa7, 0xe6, 0xb6, 0x90, 0x1b, 0xa6, 0xe4, 0xa1, 0x6b, 0x7b, 0x12, 0xcd,
|
||||||
|
0xa4, 0x80, 0xbe, 0x6c, 0xe5, 0x8e, 0x46, 0xdf, 0x12, 0xa3, 0x03, 0xa1, 0x8e, 0x66, 0xe7, 0x29,
|
||||||
|
0x5d, 0x2a, 0x52, 0xa4, 0xd2, 0x62, 0xa4, 0x63, 0x2c, 0xdf, 0x45, 0x7a, 0x71, 0x41, 0x1d, 0x57,
|
||||||
|
0x8a, 0x65, 0xaf, 0x62, 0xd2, 0x63, 0xc6, 0x15, 0x16, 0x40, 0x7d, 0x86, 0x8b, 0x19, 0xfa, 0xea,
|
||||||
|
0xa1, 0x7f, 0xa2, 0x19, 0xc4, 0xfa, 0x3d, 0x62, 0x6e, 0xc3, 0x2b, 0x22, 0x61, 0x21, 0xcb, 0xc8,
|
||||||
|
0xa2, 0xd4, 0xeb, 0x4f, 0x64, 0x09, 0xb9, 0x53, 0xc4, 0xf3, 0x90, 0x60, 0xa9, 0xd2, 0x3d, 0xaa,
|
||||||
|
0x42, 0x91, 0x3e, 0xf5, 0xd9, 0xd6, 0x5a, 0xac, 0x68, 0x27, 0xd0, 0xc3, 0x47, 0xcb, 0xf3, 0x07,
|
||||||
|
0xe6, 0x99, 0xbc, 0xfe, 0x40, 0x99, 0x2f, 0x2f, 0x1f, 0x1d, 0xe2, 0xe0, 0x5d, 0x52, 0xf2, 0x80,
|
||||||
|
0xc8, 0xef, 0x7d, 0xfb, 0x74, 0x71, 0xd8, 0x2b, 0x23, 0x93, 0x20, 0x1d, 0xcb, 0xf9, 0x9c, 0x2a,
|
||||||
|
0xe2, 0x09, 0x52, 0x3e, 0x39, 0x70, 0xac, 0x85, 0x51, 0x1d, 0x53, 0x45, 0x7c, 0x7a, 0xca, 0x8b,
|
||||||
|
0xce, 0x55, 0xd5, 0xd3, 0x53, 0xa5, 0xdb, 0xa9, 0xe0, 0x51, 0xe1, 0xa2, 0x97, 0x28, 0xea, 0xf8,
|
||||||
|
0x98, 0x87, 0x62, 0xa3, 0xfc, 0x50, 0x58, 0x83, 0xce, 0x57, 0x9f, 0x69, 0xe5, 0xe6, 0xc7, 0x28,
|
||||||
|
0x7a, 0x88, 0x09, 0x2f, 0x4f, 0x48, 0x6a, 0x16, 0xc2, 0x33, 0x6c, 0x6c, 0x1a, 0x1a, 0xad, 0x2d,
|
||||||
|
0x1b, 0x3c, 0xf5, 0x8e, 0x58, 0x62, 0x31, 0xf2, 0xf4, 0xa9, 0x75, 0x5f, 0x13, 0x82, 0x94, 0xe4,
|
||||||
|
0xc3, 0x5b, 0xc4, 0x67, 0xbb, 0x24, 0x0a, 0x82, 0xc6, 0xa1, 0xa9, 0x91, 0x55, 0x81, 0xfe, 0x70,
|
||||||
|
0x13, 0x2e, 0x45, 0xc1, 0xb8, 0xc7, 0x49, 0xee, 0xd5, 0x94, 0xd2, 0x84, 0xb7, 0x03, 0xa3, 0xde,
|
||||||
|
0x40, 0xe0, 0xaf, 0x22, 0x66, 0x26, 0x84, 0x8f, 0xd8, 0xa6, 0x68, 0x11, 0x52, 0xfd, 0x5a, 0x01,
|
||||||
|
0xef, 0xdb, 0x20, 0xe5, 0xa3, 0xd9, 0x44, 0xeb, 0x9e, 0x4a, 0x3c, 0x19, 0xe8, 0xff, 0x14, 0x02,
|
||||||
|
0x44, 0x95, 0x6a, 0xf0, 0x1b, 0x74, 0x45, 0x43, 0x11, 0xc6, 0x70, 0xb7, 0x14, 0x9f, 0x1a, 0x6d,
|
||||||
|
0x77, 0xa0, 0x37, 0x8b, 0xc3, 0x65, 0x30, 0xec, 0xe2, 0x32, 0x10, 0xde, 0x15, 0xb9, 0x1c, 0xa8,
|
||||||
|
0x43, 0xa9, 0x5a, 0x54, 0xe3, 0xa0, 0x62, 0x0b, 0xbb, 0x4e, 0xf4, 0x6f, 0xb7, 0x58, 0x75, 0x53,
|
||||||
|
0x23, 0x1c, 0xc0, 0xef, 0x80, 0xb7, 0xe4, 0x05, 0xc2, 0x0b, 0xa7, 0xa0, 0x78, 0xa5, 0x6d, 0xd3,
|
||||||
|
0x67, 0x28, 0xdc, 0x45, 0xad, 0xc1, 0xc1, 0xfa, 0x67, 0x69, 0xd8, 0xcb, 0xf6, 0x5a, 0xb3, 0x15,
|
||||||
|
0x9f, 0xc3, 0xa7, 0x3b, 0xb4, 0x19, 0xfd, 0xc9, 0xf2, 0x83, 0x27, 0x8e, 0x96, 0x91, 0x8e, 0x41,
|
||||||
|
0x57, 0xf3, 0xf7, 0x1f, 0xbd, 0xfd, 0xa0, 0xba, 0xf2, 0xe5, 0x0e, 0xfc, 0x3b, 0xfc, 0x7e, 0x08,
|
||||||
|
0x2d, 0x35, 0xf1, 0x8b, 0x03, 0xa6, 0xad, 0x51, 0xc5, 0x4b, 0xe9, 0x13, 0x09, 0xc2, 0x16, 0x5e,
|
||||||
|
0xe6, 0x1a, 0xe3, 0x8a, 0x3c, 0xb3, 0x0d, 0x5d, 0x7d, 0xdc, 0x07, 0x67, 0xb6, 0xb3, 0x70, 0x94,
|
||||||
|
0x43, 0x7a, 0xe9, 0x8b, 0xf5, 0xc9, 0x53, 0xa1, 0x93, 0x38, 0xd9, 0x14, 0x32, 0xc0, 0xb2, 0x0e,
|
||||||
|
0x82, 0x53, 0x38, 0xb3, 0x10, 0xd6, 0x55, 0x10, 0xd0, 0xee, 0x07, 0xbb, 0xc6, 0xf1, 0xf2, 0xf9,
|
||||||
|
0x81, 0xfd, 0xc8, 0x7c, 0xf8, 0x17, 0x11, 0x7e, 0x0a, 0xf1, 0x5c, 0x21, 0x81, 0x76, 0xbf, 0xef,
|
||||||
|
0x9f, 0x39, 0x57, 0xe6, 0xec, 0x45, 0x10, 0xf0, 0x0b, 0xf0, 0xbf, 0xd0, 0xdc, 0xc3, 0x64, 0x48,
|
||||||
|
0x2a, 0x0d, 0x12, 0x87, 0x6e, 0x5c, 0xc6, 0x3d, 0x4c, 0x0c, 0x98, 0x74, 0x90, 0x6d, 0x1d, 0x5f,
|
||||||
|
0xe9, 0x96, 0x66, 0x2f, 0x15, 0xfa, 0xae, 0xa7, 0x01, 0x1f, 0xa3, 0x92, 0x4b, 0xff, 0x15, 0x91,
|
||||||
|
0x40, 0x32, 0xfb, 0x8b, 0x08, 0x9e, 0x24, 0xd6, 0x96, 0x05, 0x2c, 0xcd, 0x74, 0xcc, 0xfd, 0xf1,
|
||||||
|
0x3e, 0x81, 0xe6, 0xad, 0x06, 0x4f, 0xe0, 0x6d, 0x62, 0x04, 0xfd, 0x58, 0x61, 0x15, 0x46, 0x24,
|
||||||
|
0x1a, 0xa3, 0x92, 0x6e, 0x17, 0xb3, 0x28, 0x7f, 0x2b, 0x60, 0x51, 0xae, 0x3d, 0x9a, 0xbf, 0x74,
|
||||||
|
0xa1, 0x43, 0x23, 0xf3, 0x40, 0xd0, 0x95, 0xed, 0x6a, 0x57, 0xe4, 0xd2, 0x56, 0xee, 0x5d, 0xa0,
|
||||||
|
0x9c, 0x76, 0xf6, 0x2e, 0xe7, 0xba, 0x07, 0xc8, 0x3f, 0x33, 0x9b, 0x6e, 0xc6, 0x63, 0x1b, 0xe0,
|
||||||
|
0x85, 0x6b, 0xb1, 0x8d, 0x7b, 0x16, 0x39, 0x03, 0xcf, 0xb0, 0x97, 0xc6, 0xa3, 0x02, 0x4e, 0xf4,
|
||||||
|
0x69, 0x6e, 0x3f, 0x9f, 0x6e, 0xff, 0x9b, 0xf0, 0x0e, 0x81, 0x1e, 0xf8, 0x39, 0x2f, 0xd9, 0x5b,
|
||||||
|
0xb8, 0x88, 0xd4, 0x80, 0x18, 0x58, 0x36, 0x9e, 0x53, 0xe9, 0xb4, 0x25, 0x5f, 0xf6, 0x12, 0x3e,
|
||||||
|
0x2a, 0xd7, 0xd6, 0xfb, 0x29, 0x79, 0xd2, 0x60, 0xa8, 0xc9, 0x1c, 0x0e, 0xfd, 0x1d, 0x6f, 0x56,
|
||||||
|
0xc0, 0x0b, 0x79, 0x8e, 0x68, 0x1b, 0x2c, 0xaf, 0xaa, 0x3e, 0xaa, 0x86, 0x7f, 0x8f, 0xe0, 0x03,
|
||||||
|
0x76, 0x6d, 0xc3, 0x40, 0x6e, 0x32, 0x2a, 0x4b, 0xb8, 0xc7, 0xf7, 0xaa, 0x8a, 0x9c, 0x82, 0x37,
|
||||||
|
0x3c, 0xb6, 0xb7, 0x2b, 0x30, 0x3f, 0xf8, 0xe1, 0x81, 0x30, 0x1d, 0x91, 0x01, 0xfd, 0xb8, 0xa2,
|
||||||
|
0x89, 0x20, 0x7d, 0xb2, 0x40, 0xbf, 0xfb, 0xe3, 0xdd, 0x64, 0x56, 0xac, 0xd0, 0xa8, 0x6b, 0x42,
|
||||||
|
0xf4, 0x50, 0xf2, 0x56, 0x51, 0x90, 0x1e, 0x34, 0xc3, 0x62, 0x09, 0x12, 0x98, 0x22, 0x12, 0xd3,
|
||||||
|
0x68, 0x7d, 0x17, 0x79, 0x83, 0xe2, 0x38, 0x88, 0x1e, 0xf6, 0xb8, 0x60, 0xa1, 0x77, 0x70, 0xe4,
|
||||||
|
0x23, 0xfa, 0xfd, 0x0b, 0x70, 0x8e, 0xbc, 0x85, 0x81, 0x41, 0x28, 0x84, 0xed, 0x24, 0x64, 0x17,
|
||||||
|
0xfc, 0x95, 0x47, 0x2b, 0x48, 0xab, 0x8a, 0x9f, 0xa3, 0xa9, 0xae, 0x53, 0x70, 0xaa, 0x82, 0xe3,
|
||||||
|
0x64, 0x45, 0xc1, 0xea, 0x22, 0x57, 0x23, 0xe4, 0xf9, 0xcf, 0xc5, 0x1e, 0xdd, 0x9c, 0xc6, 0x68,
|
||||||
|
0xf1, 0x8a, 0x57, 0xc1, 0x31, 0x9c, 0xf8, 0xd7, 0x54, 0xfe, 0x1f, 0x5d, 0xdf, 0xbf, 0xf4,
|
||||||
|
};
|
|
@ -1,17 +1,17 @@
|
||||||
// This file is autogenerated by VESC Tool
|
// This file is autogenerated by VESC Tool
|
||||||
|
|
||||||
#ifndef QMLUI_LUNA_V1_H_
|
#ifndef QMLUI_LUNA_M600_H_
|
||||||
#define QMLUI_LUNA_V1_H_
|
#define QMLUI_LUNA_M600_H_
|
||||||
|
|
||||||
#include "datatypes.h"
|
#include "datatypes.h"
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
// Constants
|
// Constants
|
||||||
#define DATA_QML_HW_SIZE 7270
|
#define DATA_QML_HW_SIZE 6655
|
||||||
|
|
||||||
// Variables
|
// Variables
|
||||||
extern uint8_t data_qml_hw[];
|
extern uint8_t data_qml_hw[];
|
||||||
|
|
||||||
// QMLUI_LUNA_V1_H_
|
// QMLUI_LUNA_M600_H_
|
||||||
#endif
|
#endif
|
|
@ -1,461 +0,0 @@
|
||||||
// This file is autogenerated by VESC Tool
|
|
||||||
|
|
||||||
#include "qmlui_luna_v1.h"
|
|
||||||
|
|
||||||
uint8_t data_qml_hw[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,
|
|
||||||
};
|
|
|
@ -61,6 +61,9 @@ package_dict["A200S_V4"] = [['a200s_v4', default_name]]
|
||||||
package_dict["100_250"] = [['100_250', default_name],
|
package_dict["100_250"] = [['100_250', default_name],
|
||||||
['100_250_no_limits', no_limits_name]]
|
['100_250_no_limits', no_limits_name]]
|
||||||
package_dict["LUNA_BBSHD"] = [['luna_bbshd', default_name]]
|
package_dict["LUNA_BBSHD"] = [['luna_bbshd', default_name]]
|
||||||
|
package_dict["LUNA_M600"] = [['luna_m600', default_name]]
|
||||||
|
package_dict["LUNA_M600_V2"] = [['luna_m600', default_name]]
|
||||||
|
package_dict["LUNA_M600_V2_Rev5"] = [['luna_m600_Rev5', default_name]]
|
||||||
package_dict["UNITY"] = [['unity', default_name],
|
package_dict["UNITY"] = [['unity', default_name],
|
||||||
['unity_no_limits', no_limits_name]]
|
['unity_no_limits', no_limits_name]]
|
||||||
package_dict["Cheap_FOCer_2"] = [['Cheap_FOCer_2', default_name]]
|
package_dict["Cheap_FOCer_2"] = [['Cheap_FOCer_2', default_name]]
|
||||||
|
|
Loading…
Reference in New Issue