diff options
| -rw-r--r-- | VERSION | 2 | ||||
| -rw-r--r-- | libloragw/Makefile | 19 | ||||
| -rw-r--r-- | libloragw/inc/loragw_hal.h | 32 | ||||
| -rw-r--r-- | libloragw/inc/loragw_reg.h | 3 | ||||
| -rw-r--r-- | libloragw/library.cfg | 5 | ||||
| -rw-r--r-- | libloragw/src/agc_fw.var | 328 | ||||
| -rw-r--r-- | libloragw/src/cal_fw.var | 720 | ||||
| -rw-r--r-- | libloragw/src/loragw_hal.c | 162 | ||||
| -rw-r--r-- | libloragw/src/loragw_reg.c | 3 | ||||
| -rw-r--r-- | libloragw/tst/test_loragw_hal.c | 4 | ||||
| -rw-r--r-- | readme.md | 12 |
11 files changed, 736 insertions, 554 deletions
@@ -1 +1 @@ -1.5.0
\ No newline at end of file +1.6.0
\ No newline at end of file diff --git a/libloragw/Makefile b/libloragw/Makefile index f6ba783..2b2090e 100644 --- a/libloragw/Makefile +++ b/libloragw/Makefile @@ -74,6 +74,13 @@ else ifeq ($(CFG_BAND),eu433) else $(error The selected radio(s) cannot work in the selected band.) endif +else ifeq ($(CFG_BAND),cn780) + ifeq ($(CFG_RADIO),sx1257) + CFG_BAND_MSG := China 780 MHz band + CFG_BAND_OPT := CFG_BAND_780 + else + $(error The selected radio(s) cannot work in the selected band.) + endif else $(warning [Warning] No frequency band selected, full radio capability assumed.) CFG_BAND_MSG := Full range supported by the radio(s) @@ -92,6 +99,18 @@ else ifeq ($(CFG_BRD),ref_1301_433) else ifeq ($(CFG_BRD),kerlink_868) CFG_BRD_MSG := Kerlink LoRa 868MHz gateway CFG_BRD_OPT := CFG_BRD_KERLINK868 +else ifeq ($(CFG_BRD),kerlink_433) + CFG_BRD_MSG := Kerlink LoRa 433MHz gateway + CFG_BRD_OPT := CFG_BRD_KERLINK433 +else ifeq ($(CFG_BRD),cisco_433) + CFG_BRD_MSG := Cisco LoRa 433MHz gateway + CFG_BRD_OPT := CFG_BRD_CISCO433 +else ifeq ($(CFG_BRD),cisco_470) + CFG_BRD_MSG := Cisco LoRa 470MHz gateway + CFG_BRD_OPT := CFG_BRD_CISCO470 +else ifeq ($(CFG_BRD),cisco_780) + CFG_BRD_MSG := Cisco LoRa 780MHz gateway + CFG_BRD_OPT := CFG_BRD_CISCO780 else $(info [Info] No specific board selected.) CFG_BRD_MSG := None diff --git a/libloragw/inc/loragw_hal.h b/libloragw/inc/loragw_hal.h index 187fca3..1ddbd0f 100644 --- a/libloragw/inc/loragw_hal.h +++ b/libloragw/inc/loragw_hal.h @@ -56,9 +56,9 @@ Maintainer: Sylvain Miermont /* to use array parameters, declare a local const and use 'rf_chain' as index */ #if (CFG_BAND_FULL == 1) #if (CFG_RADIO_1257 == 1) - #define LGW_RF_RX_LOWFREQ { 862000000, 862000000} /* lower limit of the usable band in RX for each radio */ + #define LGW_RF_RX_LOWFREQ { 778000000, 778000000} /* lower limit of the usable band in RX for each radio */ #define LGW_RF_RX_UPFREQ {1020000000,1020000000} /* upper limit of the usable band in RX for each radio */ - #define LGW_RF_TX_LOWFREQ { 862000000, 862000000} /* lower limit of the usable band in TX for each radio */ + #define LGW_RF_TX_LOWFREQ { 778000000, 778000000} /* lower limit of the usable band in TX for each radio */ #define LGW_RF_TX_UPFREQ {1020000000,1020000000} /* upper limit of the usable band in TX for each radio */ #elif (CFG_RADIO_1255 == 1) #define LGW_RF_RX_LOWFREQ { 400000000, 400000000} @@ -86,6 +86,11 @@ Maintainer: Sylvain Miermont #define LGW_RF_RX_UPFREQ { 434790000, 434790000} #define LGW_RF_TX_LOWFREQ { 433050000, 433050000} #define LGW_RF_TX_UPFREQ { 434790000, 434790000} +#elif (CFG_BAND_780 == 1) + #define LGW_RF_RX_LOWFREQ { 779000000, 779000000} + #define LGW_RF_RX_UPFREQ { 787000000, 787000000} + #define LGW_RF_TX_LOWFREQ { 779000000, 779000000} + #define LGW_RF_TX_UPFREQ { 787000000, 787000000} #endif /* type of if_chain + modem */ @@ -136,9 +141,12 @@ Maintainer: Sylvain Miermont #if (CFG_BRD_NANO868 == 1) #define LGW_RF_TX_ENABLE { true, true} /* both radio A and B are usable in TX */ #define LGW_RF_CLKOUT { true, true} /* both radios have clkout enabled */ -#elif ((CFG_BRD_1301REF868 == 1) || (CFG_BRD_1301REF433 == 1) || (CFG_BRD_KERLINK868 == 1)) +#elif ((CFG_BRD_1301REF868 == 1) || (CFG_BRD_1301REF433 == 1) || (CFG_BRD_KERLINK868 == 1) || (CFG_BRD_KERLINK433 == 1)) #define LGW_RF_TX_ENABLE { true,false} /* radio B TX output is disconnected */ #define LGW_RF_CLKOUT {false, true} /* radio A clkout disabled for spur optimization */ +#elif ((CFG_BRD_CISCO433 == 1) || (CFG_BRD_CISCO470 == 1) || (CFG_BRD_CISCO780 == 1)) + #define LGW_RF_TX_ENABLE { true,false} /* radio B TX output is disconnected */ + #define LGW_RF_CLKOUT { true, true} /* Do not know */ /* === ADD CUSTOMIZATION FOR YOUR OWN BOARD HERE === #elif (CFG_BRD_MYBOARD == 1) */ @@ -237,11 +245,13 @@ struct lgw_conf_rxrf_s { @brief Configuration structure for an IF chain */ struct lgw_conf_rxif_s { - bool enable; /*!> enable or disable that IF chain */ - uint8_t rf_chain; /*!> to which RF chain is that IF chain associated */ - int32_t freq_hz; /*!> center frequ of the IF chain, relative to RF chain frequency */ - uint8_t bandwidth; /*!> RX bandwidth, 0 for default */ - uint32_t datarate; /*!> RX datarate, 0 for default */ + bool enable; /*!> enable or disable that IF chain */ + uint8_t rf_chain; /*!> to which RF chain is that IF chain associated */ + int32_t freq_hz; /*!> center frequ of the IF chain, relative to RF chain frequency */ + uint8_t bandwidth; /*!> RX bandwidth, 0 for default */ + uint32_t datarate; /*!> RX datarate, 0 for default */ + uint8_t sync_word_size; /*!> size of FSK sync word (number of bytes, 0 for default) */ + uint64_t sync_word; /*!> FSK sync word (ALIGN RIGHT, eg. 0xC194C1) */ }; /** @@ -345,6 +355,12 @@ int lgw_send(struct lgw_pkt_tx_s pkt_data); int lgw_status(uint8_t select, uint8_t *code); /** +@brief Abort a currently scheduled or ongoing TX +@return LGW_HAL_ERROR id the operation failed, LGW_HAL_SUCCESS else +*/ +int lgw_abort_tx(void); + +/** @brief Return value of internal counter when latest event (eg GPS pulse) was captured @param trig_cnt_us pointer to receive timestamp value @return LGW_HAL_ERROR id the operation failed, LGW_HAL_SUCCESS else diff --git a/libloragw/inc/loragw_reg.h b/libloragw/inc/loragw_reg.h index 1c6e9e7..49a03c9 100644 --- a/libloragw/inc/loragw_reg.h +++ b/libloragw/inc/loragw_reg.h @@ -366,8 +366,9 @@ this file is autogenerated from registers description #define LGW_DATA_MNGT_CPT_FRAME_ALLOCATED 322 #define LGW_DATA_MNGT_CPT_FRAME_FINISHED 323 #define LGW_DATA_MNGT_CPT_FRAME_READEN 324 +#define LGW_TX_TRIG_ALL 325 -#define LGW_TOTALREGS 325 +#define LGW_TOTALREGS 326 /* -------------------------------------------------------------------------- */ /* --- PUBLIC FUNCTIONS PROTOTYPES ------------------------------------------ */ diff --git a/libloragw/library.cfg b/libloragw/library.cfg index 1db5195..52ca305 100644 --- a/libloragw/library.cfg +++ b/libloragw/library.cfg @@ -29,6 +29,7 @@ CFG_RADIO= sx1257 # us915 FCC 915 MHz band # cn470 China 470 MHz band # eu433 ETSI 433 MHz band +# cn780 China 780 MHz band CFG_BAND= eu868 @@ -41,6 +42,10 @@ CFG_BAND= eu868 # ref_1301_868 SX1301 reference board with SX1257 radios, 868 MHz filters # ref_1301_433 SX1301 reference board with SX1255 radios, 433 MHz filters # kerlink_868 Kerlink LoRa 868MHz gateway +# kerlink_433 Kerlink LoRa 433MHz gateway +# cisco_433 Cisco LoRa 433MHz gateway +# cisco_470 Cisco LoRa 470MHz gateway +# cisco_780 Cisco LoRa 780MHz gateway # Keep empty for no calibration parameters (neutral values will be used). CFG_BRD= ref_1301_868 diff --git a/libloragw/src/agc_fw.var b/libloragw/src/agc_fw.var index 45955f7..4c3f17f 100644 --- a/libloragw/src/agc_fw.var +++ b/libloragw/src/agc_fw.var @@ -14,14 +14,170 @@ Maintainer: Matthieu Leurent */ static uint8_t agc_firmware[MCU_AGC_FW_BYTE] = { -0x8A, 0x51, 0x03, 0xAD, 0x00, 0xB0, 0x8A, 0xC0, 0x04, 0x88, 0x84, 0x0A, 0x82, 0x47, 0x00, 0xF4, -0x00, 0xF4, 0x00, 0xF4, 0x00, 0xF4, 0x00, 0xF4, 0x00, 0xF4, 0x02, 0x34, 0x04, 0x34, 0x05, 0x74, -0x06, 0x74, 0x07, 0xB4, 0x08, 0x34, 0x09, 0x74, 0x0A, 0x74, 0x0A, 0x74, 0x0B, 0xB4, 0x0B, 0xB4, -0x0C, 0x74, 0x0D, 0xB4, 0x0D, 0xB4, 0x0E, 0xB4, 0x0E, 0xB4, 0x0E, 0xB4, 0x0F, 0xF4, 0x0F, 0xF4, -0x00, 0xF4, 0x06, 0x74, 0x0C, 0x74, 0x12, 0x74, 0x18, 0x74, 0x1E, 0xF4, 0x24, 0x74, 0x2A, 0xB4, -0x30, 0x74, 0x36, 0xF4, 0x01, 0x34, 0x01, 0x34, 0x01, 0x34, 0x02, 0x34, 0x03, 0x74, 0x04, 0x34, -0x05, 0x74, 0x05, 0x74, 0x06, 0x74, 0x06, 0x74, 0x0F, 0xF4, 0x0C, 0x74, 0x09, 0x74, 0x09, 0x74, -0x09, 0x74, 0x0C, 0x74, 0x0F, 0xF4, 0x0C, 0x74, 0x0F, 0xF4, 0x0C, 0x74, 0xFF, 0xBF, 0xFF, 0xBF, +0x8A, 0x51, 0x11, 0x28, 0xFF, 0xBF, 0xFF, 0xBF, 0x80, 0x40, 0x03, 0x4E, 0x83, 0x52, 0x03, 0x53, +0xAC, 0x00, 0x04, 0x88, 0xAD, 0x40, 0x0A, 0xC8, 0xAE, 0x40, 0x01, 0x88, 0xAF, 0x80, 0x8A, 0x51, +0x13, 0x68, 0x8A, 0x51, 0xCB, 0x2C, 0x8B, 0xDC, 0x1C, 0x68, 0x9E, 0xA0, 0x8A, 0x51, 0x29, 0x20, +0x40, 0xF0, 0x9B, 0x40, 0x04, 0xF0, 0x9E, 0x40, 0x10, 0xF0, 0x8B, 0x00, 0x2F, 0x88, 0x81, 0x80, +0x2E, 0x48, 0x8A, 0xC0, 0x2D, 0x48, 0x84, 0x80, 0x2C, 0x8E, 0x83, 0xC0, 0x80, 0x0E, 0x00, 0xCE, +0x09, 0x80, 0x95, 0x41, 0x96, 0x41, 0x97, 0x81, 0x98, 0x01, 0x99, 0x41, 0x9A, 0x41, 0x9B, 0x81, +0x9C, 0x41, 0x20, 0xF0, 0x9B, 0x40, 0x02, 0xF0, 0x9E, 0x40, 0x19, 0x54, 0x19, 0x95, 0x8B, 0x41, +0xD6, 0x81, 0x02, 0xF0, 0x56, 0x42, 0x03, 0x18, 0x5D, 0xE8, 0x56, 0x48, 0x53, 0x7E, 0x84, 0x80, +0x83, 0x93, 0x80, 0x81, 0x56, 0x48, 0x5F, 0xFE, 0x84, 0x80, 0x07, 0x70, 0x80, 0x40, 0x56, 0x48, +0x73, 0xA0, 0x8A, 0x51, 0x56, 0x48, 0x5F, 0xFE, 0x84, 0x80, 0x00, 0xCE, 0xF0, 0x39, 0x96, 0x00, +0x56, 0xDC, 0x56, 0xA8, 0x83, 0x52, 0x03, 0x53, 0x18, 0x14, 0x59, 0xA8, 0x83, 0x52, 0x03, 0x53, +0x18, 0xD0, 0x18, 0x55, 0x18, 0x11, 0xD6, 0xCA, 0x39, 0xA8, 0xD5, 0x81, 0x08, 0xF0, 0x55, 0x42, +0x03, 0x18, 0x08, 0x40, 0x55, 0x48, 0x57, 0xBE, 0x84, 0x80, 0x04, 0xF0, 0x83, 0x93, 0x80, 0x40, +0x55, 0x48, 0x57, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x96, 0x00, 0x55, 0x48, 0x95, 0x00, 0x98, 0x54, +0x98, 0x10, 0xD5, 0xCA, 0x5E, 0xE8, 0xAB, 0x40, 0x53, 0x7E, 0x84, 0x80, 0x00, 0x48, 0xAA, 0x00, +0x23, 0x3E, 0x84, 0x80, 0x8A, 0x51, 0x8F, 0xE4, 0x8A, 0x51, 0xA7, 0x40, 0x05, 0x30, 0x03, 0xD0, +0xA7, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, 0x7F, 0x68, 0x2A, 0x08, 0x2D, 0x7E, 0x84, 0x80, 0x8A, 0x51, +0x8F, 0xE4, 0x8A, 0x51, 0xA8, 0xC0, 0x28, 0x47, 0x27, 0x44, 0x01, 0x38, 0xA9, 0x00, 0x2B, 0x48, +0x22, 0xFE, 0x84, 0x80, 0x29, 0x08, 0x80, 0x40, 0x2B, 0x48, 0x22, 0xFE, 0x84, 0x80, 0x00, 0x48, +0xA4, 0xC0, 0x2B, 0x48, 0xA5, 0x00, 0x0C, 0x30, 0x90, 0x21, 0x08, 0x40, 0x18, 0x12, 0x80, 0xF0, +0x9B, 0x40, 0x08, 0xF0, 0x9E, 0x40, 0x13, 0x1F, 0xA9, 0xA8, 0x83, 0x52, 0x03, 0x53, 0x18, 0x14, +0xAC, 0xA8, 0x83, 0x52, 0x03, 0x53, 0x18, 0xD0, 0x13, 0x08, 0xA9, 0x00, 0x0F, 0xB0, 0xA9, 0x85, +0x29, 0x08, 0x41, 0xFE, 0x84, 0x80, 0x83, 0x93, 0x00, 0x48, 0xA1, 0xC0, 0x21, 0xC8, 0xAA, 0x00, +0x3F, 0x30, 0xAA, 0x85, 0x2A, 0x08, 0xA4, 0xC0, 0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, 0xA5, 0x00, +0x08, 0xF0, 0x90, 0x21, 0x8A, 0x51, 0x21, 0xDF, 0xC9, 0xA8, 0x83, 0x52, 0x03, 0x53, 0x19, 0x96, +0xCC, 0xA8, 0x83, 0x52, 0x03, 0x53, 0x19, 0x52, 0xA1, 0x1F, 0xD2, 0xA8, 0x83, 0x52, 0x03, 0x53, +0x99, 0xD6, 0xD5, 0xE8, 0x83, 0x52, 0x03, 0x53, 0x99, 0x92, 0x10, 0x1C, 0xE2, 0xA8, 0x6C, 0xB0, +0xA4, 0xC0, 0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, 0xA5, 0x00, 0x0A, 0x30, 0x90, 0x21, 0x8A, 0x51, +0x04, 0xF0, 0xEC, 0xE8, 0x60, 0x30, 0xA4, 0xC0, 0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, 0xA5, 0x00, +0x0A, 0x30, 0x90, 0x21, 0x8A, 0x51, 0x05, 0x30, 0xA4, 0xC0, 0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, +0xA5, 0x00, 0x0B, 0x70, 0x90, 0x21, 0x8A, 0x51, 0x12, 0xC8, 0xA4, 0xC0, 0x00, 0xB0, 0x13, 0xDB, +0x01, 0xF0, 0xA5, 0x00, 0x04, 0xF0, 0x90, 0x21, 0x8A, 0x51, 0x11, 0xC8, 0xA4, 0xC0, 0x00, 0xB0, +0x13, 0xDB, 0x01, 0xF0, 0xA5, 0x00, 0x05, 0x30, 0x90, 0x21, 0x8A, 0x51, 0x10, 0x88, 0xA4, 0xC0, +0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, 0xA5, 0x00, 0x06, 0x30, 0x90, 0x21, 0x8A, 0x51, 0x00, 0xB0, +0xA4, 0x01, 0xA4, 0x4A, 0x13, 0xDB, 0x01, 0xF0, 0xA5, 0x00, 0x00, 0xB0, 0x90, 0x21, 0x8A, 0x51, +0x35, 0xB0, 0xA7, 0x40, 0xA7, 0x0B, 0x1A, 0xA9, 0x05, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA4, 0xC0, +0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, 0xA5, 0x00, 0x00, 0xB0, 0x90, 0x21, 0x8A, 0x51, 0x03, 0x30, +0xA8, 0xC0, 0x7D, 0x30, 0xA7, 0x40, 0xA7, 0x0B, 0x2B, 0xE9, 0xA8, 0x8B, 0x2B, 0xE9, 0x83, 0x52, +0x03, 0x53, 0x13, 0x1F, 0x35, 0xE9, 0x19, 0x51, 0x36, 0xE9, 0x19, 0x10, 0x05, 0x30, 0xA7, 0x40, +0xA7, 0x0B, 0x38, 0xA9, 0x83, 0x52, 0x03, 0x53, 0x13, 0x1F, 0x40, 0x29, 0x99, 0xD5, 0x41, 0x69, +0x99, 0x94, 0x15, 0x70, 0xA8, 0xC0, 0xC6, 0xB0, 0xA7, 0x40, 0xA7, 0x0B, 0x45, 0xA9, 0xA8, 0x8B, +0x45, 0xA9, 0x00, 0x00, 0x0D, 0x70, 0x83, 0x52, 0x03, 0x53, 0xA4, 0xC0, 0x00, 0xB0, 0x13, 0xDB, +0x01, 0xF0, 0xA5, 0x00, 0x00, 0xB0, 0x90, 0x21, 0x8A, 0x51, 0x10, 0xF0, 0x9E, 0x40, 0x93, 0x1B, +0x57, 0x29, 0x08, 0xF0, 0x9E, 0x40, 0x99, 0x92, 0x19, 0x52, 0x00, 0xB0, 0xA4, 0x01, 0xA4, 0x4A, +0x13, 0xDB, 0x01, 0xF0, 0xA5, 0x00, 0x00, 0xB0, 0x90, 0x21, 0x8A, 0x51, 0x13, 0x1F, 0x6A, 0xE9, +0x99, 0x91, 0x6B, 0x29, 0x99, 0x50, 0xE4, 0xB0, 0xA7, 0x40, 0x6E, 0x29, 0x6F, 0x69, 0xA7, 0x0B, +0x6D, 0x29, 0x72, 0xE9, 0x00, 0x00, 0x83, 0x52, 0x03, 0x53, 0x13, 0x1F, 0x79, 0x29, 0x19, 0x95, +0x7A, 0x29, 0x19, 0x54, 0x03, 0x30, 0xA4, 0xC0, 0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, 0xA5, 0x00, +0x00, 0xB0, 0x90, 0x21, 0x8A, 0x51, 0x05, 0x30, 0xA8, 0xC0, 0x26, 0x70, 0xA7, 0x40, 0xA7, 0x0B, +0x87, 0xE9, 0xA8, 0x8B, 0x87, 0xE9, 0x00, 0x00, 0x83, 0x52, 0x03, 0x53, 0x18, 0x56, 0x08, 0x40, +0xA6, 0x00, 0x25, 0x08, 0x03, 0x59, 0x9A, 0xE9, 0x24, 0xC8, 0x88, 0x80, 0x26, 0x08, 0x80, 0x38, +0x86, 0xC0, 0x08, 0x40, 0x24, 0xC8, 0x88, 0x80, 0x26, 0x08, 0x80, 0x38, 0x85, 0xC0, 0x08, 0x40, +0x11, 0x30, 0xC0, 0x80, 0x03, 0x30, 0xA0, 0x80, 0x8A, 0x51, 0x19, 0xA3, 0x8A, 0x51, 0xBF, 0x01, +0x10, 0xF0, 0x3F, 0xC2, 0x03, 0x18, 0xDD, 0x69, 0x40, 0x88, 0x10, 0x7A, 0x03, 0x59, 0xB5, 0x29, +0x8A, 0x51, 0xF8, 0xE4, 0x8A, 0x51, 0xC0, 0x80, 0xAC, 0xE9, 0x3F, 0xC8, 0x20, 0x38, 0x9B, 0x40, +0x02, 0xF0, 0x9E, 0x40, 0x40, 0x88, 0x10, 0x7A, 0x03, 0x9D, 0xC3, 0xE9, 0x8A, 0x51, 0xF8, 0xE4, +0x8A, 0x51, 0xC0, 0x80, 0xBA, 0x29, 0x40, 0x88, 0x11, 0xBA, 0x03, 0x9D, 0xCC, 0xE9, 0x30, 0x30, +0x9B, 0x40, 0x03, 0x30, 0x9E, 0x40, 0xDD, 0x69, 0x3F, 0xC8, 0x41, 0xFE, 0x84, 0x80, 0x40, 0x88, +0x83, 0x93, 0x80, 0x40, 0x3F, 0xC8, 0x30, 0x78, 0x9B, 0x40, 0x03, 0x30, 0x9E, 0x40, 0xBF, 0x4A, +0xA8, 0xA9, 0x8A, 0x51, 0xF8, 0xE4, 0x8A, 0x51, 0xC0, 0x80, 0x40, 0x88, 0x10, 0x7A, 0x03, 0x9D, +0xD9, 0x29, 0x20, 0xF0, 0x9B, 0x40, 0x02, 0xF0, 0x9E, 0x40, 0x40, 0x88, 0x10, 0x7A, 0x03, 0x9D, +0xEE, 0x69, 0x8A, 0x51, 0xF8, 0xE4, 0x8A, 0x51, 0xC0, 0x80, 0xE5, 0x29, 0x40, 0x88, 0xBE, 0x80, +0x30, 0x78, 0x9B, 0x40, 0x03, 0x30, 0x9E, 0x40, 0x40, 0x88, 0x10, 0x7A, 0x03, 0x59, 0xFD, 0xA9, +0x8A, 0x51, 0xF8, 0xE4, 0x8A, 0x51, 0xC0, 0x80, 0xF4, 0x29, 0x20, 0xF0, 0x9B, 0x40, 0x02, 0xF0, +0x9E, 0x40, 0x40, 0x88, 0x10, 0x7A, 0x03, 0x9D, 0x0A, 0x6A, 0x8A, 0x51, 0xF8, 0xE4, 0x8A, 0x51, +0xC0, 0x80, 0x01, 0x2A, 0x40, 0xF0, 0x9B, 0x40, 0x04, 0xF0, 0x9E, 0x40, 0x93, 0x5F, 0x17, 0xEA, +0x8A, 0x51, 0x8D, 0xE3, 0x8A, 0x51, 0x40, 0xF0, 0x9B, 0x40, 0x04, 0xF0, 0x9E, 0x40, 0xD5, 0x81, +0x08, 0xF0, 0x55, 0x42, 0x03, 0x18, 0x4F, 0x2A, 0x55, 0x48, 0x95, 0x00, 0x85, 0x70, 0x0D, 0x02, +0x03, 0x5C, 0x2F, 0x2A, 0x55, 0x48, 0x57, 0xBE, 0x84, 0x80, 0x0E, 0x70, 0x83, 0x93, 0x00, 0x42, +0x03, 0x18, 0x2F, 0x2A, 0x55, 0x48, 0x57, 0xBE, 0x84, 0x80, 0x00, 0x8A, 0x40, 0x2A, 0x34, 0x70, +0x0D, 0x02, 0x03, 0x18, 0x4D, 0xEA, 0x55, 0x48, 0x57, 0xBE, 0x84, 0x80, 0x05, 0x30, 0x83, 0x93, +0x00, 0x42, 0x03, 0x5C, 0x4D, 0xEA, 0x55, 0x48, 0x57, 0xBE, 0x84, 0x80, 0x00, 0x48, 0xFF, 0x7E, +0xB8, 0x00, 0x55, 0x48, 0x57, 0xBE, 0x84, 0x80, 0x38, 0x08, 0x80, 0x40, 0x55, 0x48, 0x57, 0xBE, +0x84, 0x80, 0x00, 0x48, 0x96, 0x00, 0x98, 0x54, 0x98, 0x10, 0xD5, 0xCA, 0x18, 0x6A, 0xD6, 0x81, +0x02, 0xF0, 0x56, 0x42, 0x03, 0x18, 0xC3, 0xEA, 0x56, 0xDC, 0x5A, 0xEA, 0x83, 0x52, 0x03, 0x53, +0x18, 0x14, 0x5D, 0x2A, 0x83, 0x52, 0x03, 0x53, 0x18, 0xD0, 0x56, 0x48, 0x53, 0x7E, 0x84, 0x80, +0x83, 0x93, 0x00, 0x48, 0x03, 0x9D, 0x66, 0xEA, 0x64, 0x70, 0x67, 0x2A, 0x73, 0xF0, 0xB9, 0x40, +0x0E, 0x08, 0x39, 0x42, 0x03, 0x18, 0x78, 0xEA, 0x56, 0x48, 0x5F, 0xFE, 0x84, 0x80, 0x0B, 0x70, +0x00, 0x42, 0x03, 0x18, 0x78, 0xEA, 0x56, 0x48, 0x5F, 0xFE, 0x84, 0x80, 0x00, 0x8A, 0x88, 0x6A, +0x2D, 0xB0, 0x0E, 0x02, 0x03, 0x18, 0x96, 0xEA, 0x56, 0x48, 0x5F, 0xFE, 0x84, 0x80, 0x08, 0xF0, +0x00, 0x42, 0x03, 0x5C, 0x96, 0xEA, 0x56, 0x48, 0x5F, 0xFE, 0x84, 0x80, 0x00, 0x48, 0xFF, 0x7E, +0xB8, 0x00, 0x56, 0x48, 0x5F, 0xFE, 0x84, 0x80, 0x38, 0x08, 0x80, 0x40, 0x56, 0x48, 0x5F, 0xFE, +0x84, 0x80, 0x00, 0xCE, 0xF0, 0x39, 0x96, 0x00, 0x18, 0x55, 0x18, 0x11, 0x24, 0x30, 0x0F, 0x42, +0x03, 0x5C, 0xA6, 0xEA, 0x56, 0x48, 0x53, 0x7E, 0x84, 0x80, 0x09, 0x30, 0x00, 0x42, 0x03, 0x18, +0xA6, 0xEA, 0x56, 0x48, 0x53, 0x7E, 0x84, 0x80, 0x00, 0x8A, 0xB5, 0x2A, 0x10, 0xF0, 0x0F, 0x42, +0x03, 0x18, 0xC1, 0xAA, 0x56, 0x48, 0x53, 0x7E, 0x84, 0x80, 0x80, 0x88, 0x03, 0x59, 0xC1, 0xAA, +0x56, 0x48, 0x53, 0x7E, 0x84, 0x80, 0x00, 0x48, 0xFF, 0x7E, 0xB8, 0x00, 0x56, 0x48, 0x53, 0x7E, +0x84, 0x80, 0x38, 0x08, 0x80, 0x40, 0x56, 0x48, 0x8A, 0x51, 0x63, 0xE3, 0x8A, 0x51, 0x98, 0x95, +0x98, 0x51, 0xD6, 0xCA, 0x50, 0x6A, 0x53, 0x48, 0x19, 0x3E, 0x84, 0x80, 0x8A, 0x51, 0x8F, 0xE4, +0x8A, 0x51, 0xBC, 0x40, 0x06, 0x30, 0xB0, 0xC0, 0x5F, 0xC8, 0xF9, 0xFE, 0x8A, 0x51, 0x07, 0xA5, +0x8A, 0x51, 0xBD, 0x80, 0x3C, 0xC7, 0x97, 0x40, 0x54, 0x08, 0x19, 0x3E, 0x84, 0x80, 0x8A, 0x51, +0x8F, 0xE4, 0x8A, 0x51, 0xBC, 0x40, 0x06, 0x30, 0xB0, 0xC0, 0x60, 0xC8, 0xF9, 0xFE, 0x8A, 0x51, +0x07, 0xA5, 0x8A, 0x51, 0xBD, 0x80, 0x3C, 0xC7, 0x9C, 0x00, 0x3E, 0x88, 0x95, 0x00, 0x0D, 0x08, +0xB8, 0x00, 0x03, 0xD0, 0xB8, 0x8C, 0x03, 0xD0, 0xB8, 0x8C, 0x03, 0xD0, 0xB8, 0x8C, 0x38, 0x08, +0x01, 0xBE, 0x84, 0x80, 0x8A, 0x51, 0x8F, 0xE4, 0x8A, 0x51, 0xBB, 0x80, 0x06, 0x30, 0xB0, 0xC0, +0x3E, 0x88, 0x57, 0xBE, 0x84, 0x80, 0x83, 0x93, 0x00, 0x48, 0xFC, 0xFE, 0x8A, 0x51, 0x07, 0xA5, +0x8A, 0x51, 0xBA, 0x40, 0x01, 0xF0, 0xB8, 0x00, 0x3E, 0xCA, 0x08, 0x6B, 0x03, 0xD0, 0xB8, 0xCD, +0xFF, 0x7E, 0x03, 0x9D, 0x06, 0xAB, 0x38, 0x08, 0x14, 0x05, 0x03, 0x59, 0x12, 0xAB, 0x3A, 0x48, +0x1C, 0x87, 0x14, 0xAB, 0x3A, 0x48, 0x17, 0xC7, 0xB8, 0x00, 0x3B, 0x88, 0x38, 0x87, 0x9A, 0x00, +0x0E, 0xAA, 0x95, 0x41, 0x96, 0x41, 0x97, 0x81, 0x98, 0x01, 0x99, 0x41, 0x9A, 0x41, 0x9B, 0x81, +0x9C, 0x41, 0x20, 0xF0, 0x9B, 0x40, 0x02, 0xF0, 0x9E, 0x40, 0x19, 0x54, 0x19, 0x95, 0x8B, 0x41, +0xD6, 0x81, 0x02, 0xF0, 0x56, 0x42, 0x03, 0x18, 0x4D, 0x2B, 0x56, 0x48, 0x53, 0x7E, 0x84, 0x80, +0x83, 0x93, 0x80, 0x81, 0x56, 0x48, 0x5F, 0xFE, 0x84, 0x80, 0x07, 0x70, 0x80, 0x40, 0x56, 0x48, +0x63, 0xE3, 0x8A, 0x51, 0x56, 0x48, 0x5F, 0xFE, 0x84, 0x80, 0x00, 0xCE, 0xF0, 0x39, 0x96, 0x00, +0x56, 0xDC, 0x46, 0xEB, 0x83, 0x52, 0x03, 0x53, 0x18, 0x14, 0x49, 0xEB, 0x83, 0x52, 0x03, 0x53, +0x18, 0xD0, 0x18, 0x55, 0x18, 0x11, 0xD6, 0xCA, 0x29, 0xEB, 0xD5, 0x81, 0x08, 0xF0, 0x55, 0x42, +0x03, 0x18, 0x08, 0x40, 0x55, 0x48, 0x57, 0xBE, 0x84, 0x80, 0x04, 0xF0, 0x83, 0x93, 0x80, 0x40, +0x55, 0x48, 0x57, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x96, 0x00, 0x55, 0x48, 0x95, 0x00, 0x98, 0x54, +0x98, 0x10, 0xD5, 0xCA, 0x4E, 0x2B, 0xB7, 0x80, 0x53, 0x7E, 0x84, 0x80, 0x00, 0x48, 0xB6, 0x40, +0x23, 0x3E, 0x84, 0x80, 0x8A, 0x51, 0x8F, 0xE4, 0x8A, 0x51, 0xB3, 0x40, 0x05, 0x30, 0x03, 0xD0, +0xB3, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, 0x6F, 0xAB, 0x36, 0x48, 0x2D, 0x7E, 0x84, 0x80, 0x8A, 0x51, +0x8F, 0xE4, 0x8A, 0x51, 0xB4, 0x00, 0x34, 0x87, 0x33, 0x44, 0x01, 0x38, 0xB5, 0x40, 0x37, 0x88, +0x22, 0xFE, 0x84, 0x80, 0x35, 0x48, 0x80, 0x40, 0x37, 0x88, 0x22, 0xFE, 0x84, 0x80, 0x00, 0x48, +0xB0, 0xC0, 0x37, 0x88, 0xB1, 0x00, 0x0C, 0x30, 0x7F, 0xAC, 0x18, 0x12, 0x80, 0xF0, 0x9B, 0x40, +0x08, 0xF0, 0x9E, 0x40, 0x13, 0x1F, 0x98, 0xEB, 0x83, 0x52, 0x03, 0x53, 0x18, 0x14, 0x9B, 0x6B, +0x83, 0x52, 0x03, 0x53, 0x18, 0xD0, 0x13, 0x08, 0xB5, 0x40, 0x0F, 0xB0, 0xB5, 0xC5, 0x35, 0x48, +0x41, 0xFE, 0x84, 0x80, 0x83, 0x93, 0x00, 0x48, 0xA1, 0xC0, 0x21, 0xC8, 0xB6, 0x40, 0x3F, 0x30, +0xB6, 0xC5, 0x36, 0x48, 0xB0, 0xC0, 0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, 0xB1, 0x00, 0x08, 0xF0, +0x7F, 0x64, 0x8A, 0x51, 0x21, 0xDF, 0xB8, 0x2B, 0x83, 0x52, 0x03, 0x53, 0x19, 0x96, 0xBB, 0xAB, +0x83, 0x52, 0x03, 0x53, 0x19, 0x52, 0xA1, 0x1F, 0xC1, 0xEB, 0x83, 0x52, 0x03, 0x53, 0x99, 0xD6, +0xC4, 0xEB, 0x83, 0x52, 0x03, 0x53, 0x99, 0x92, 0x10, 0x1C, 0xD1, 0x2B, 0x6C, 0xB0, 0xB0, 0xC0, +0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, 0xB1, 0x00, 0x0A, 0x30, 0x7F, 0x64, 0x8A, 0x51, 0x04, 0xF0, +0xDB, 0xAB, 0x60, 0x30, 0xB0, 0xC0, 0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, 0xB1, 0x00, 0x0A, 0x30, +0x7F, 0x64, 0x8A, 0x51, 0x05, 0x30, 0xB0, 0xC0, 0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, 0xB1, 0x00, +0x0B, 0x70, 0x7F, 0x64, 0x8A, 0x51, 0x12, 0xC8, 0xB0, 0xC0, 0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, +0xB1, 0x00, 0x04, 0xF0, 0x7F, 0x64, 0x8A, 0x51, 0x11, 0xC8, 0xB0, 0xC0, 0x00, 0xB0, 0x13, 0xDB, +0x01, 0xF0, 0xB1, 0x00, 0x05, 0x30, 0x7F, 0x64, 0x8A, 0x51, 0x10, 0x88, 0xB0, 0xC0, 0x00, 0xB0, +0x13, 0xDB, 0x01, 0xF0, 0xB1, 0x00, 0x06, 0x30, 0x7F, 0x64, 0x8A, 0x51, 0x00, 0xB0, 0xB0, 0x01, +0xB0, 0x4A, 0x13, 0xDB, 0x01, 0xF0, 0xB1, 0x00, 0x00, 0xB0, 0x7F, 0x64, 0x8A, 0x51, 0x35, 0xB0, +0xB3, 0x40, 0xB3, 0x0B, 0x09, 0x6C, 0x05, 0x30, 0x83, 0x52, 0x03, 0x53, 0xB0, 0xC0, 0x00, 0xB0, +0x13, 0xDB, 0x01, 0xF0, 0xB1, 0x00, 0x00, 0xB0, 0x7F, 0x64, 0x8A, 0x51, 0x03, 0x30, 0xB4, 0x00, +0x7D, 0x30, 0xB3, 0x40, 0xB3, 0x0B, 0x1A, 0xAC, 0xB4, 0xCB, 0x1A, 0xAC, 0x83, 0x52, 0x03, 0x53, +0x13, 0x1F, 0x24, 0x6C, 0x19, 0x51, 0x25, 0xAC, 0x19, 0x10, 0x05, 0x30, 0xB3, 0x40, 0xB3, 0x0B, +0x27, 0xEC, 0x83, 0x52, 0x03, 0x53, 0x13, 0x1F, 0x2F, 0x2C, 0x99, 0xD5, 0x30, 0x6C, 0x99, 0x94, +0x15, 0x70, 0xB4, 0x00, 0xC6, 0xB0, 0xB3, 0x40, 0xB3, 0x0B, 0x34, 0xAC, 0xB4, 0xCB, 0x34, 0xAC, +0x00, 0x00, 0x0D, 0x70, 0x83, 0x52, 0x03, 0x53, 0xB0, 0xC0, 0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, +0xB1, 0x00, 0x00, 0xB0, 0x7F, 0x64, 0x8A, 0x51, 0x10, 0xF0, 0x9E, 0x40, 0x93, 0x1B, 0x46, 0xAC, +0x08, 0xF0, 0x9E, 0x40, 0x99, 0x92, 0x19, 0x52, 0x00, 0xB0, 0xB0, 0x01, 0xB0, 0x4A, 0x13, 0xDB, +0x01, 0xF0, 0xB1, 0x00, 0x00, 0xB0, 0x7F, 0x64, 0x8A, 0x51, 0x13, 0x1F, 0x59, 0xEC, 0x99, 0x91, +0x5A, 0xEC, 0x99, 0x50, 0xE4, 0xB0, 0xB3, 0x40, 0x5D, 0x2C, 0x5E, 0x2C, 0xB3, 0x0B, 0x5C, 0xEC, +0x61, 0xAC, 0x00, 0x00, 0x83, 0x52, 0x03, 0x53, 0x13, 0x1F, 0x68, 0xAC, 0x19, 0x95, 0x69, 0xEC, +0x19, 0x54, 0x03, 0x30, 0xB0, 0xC0, 0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, 0xB1, 0x00, 0x00, 0xB0, +0x7F, 0x64, 0x8A, 0x51, 0x05, 0x30, 0xB4, 0x00, 0x26, 0x70, 0xB3, 0x40, 0xB3, 0x0B, 0x76, 0x2C, +0xB4, 0xCB, 0x76, 0x2C, 0x00, 0x00, 0x83, 0x52, 0x03, 0x53, 0x18, 0x56, 0x08, 0x40, 0xB2, 0x00, +0x31, 0x08, 0x03, 0x59, 0x89, 0xAC, 0x30, 0xC8, 0x88, 0x80, 0x32, 0x08, 0x80, 0x38, 0x86, 0xC0, +0x08, 0x40, 0x30, 0xC8, 0x88, 0x80, 0x32, 0x08, 0x80, 0x38, 0x85, 0xC0, 0x08, 0x40, 0x04, 0xF0, +0x8A, 0xC0, 0x04, 0x88, 0x84, 0x0A, 0x82, 0x47, 0x00, 0xF4, 0x00, 0xF4, 0x00, 0xF4, 0x00, 0xF4, +0x00, 0xF4, 0x00, 0xF4, 0x02, 0x34, 0x04, 0x34, 0x05, 0x74, 0x06, 0x74, 0x07, 0xB4, 0x08, 0x34, +0x09, 0x74, 0x0A, 0x74, 0x0A, 0x74, 0x0B, 0xB4, 0x0B, 0xB4, 0x0C, 0x74, 0x0D, 0xB4, 0x0D, 0xB4, +0x0E, 0xB4, 0x0E, 0xB4, 0x0E, 0xB4, 0x0F, 0xF4, 0x0F, 0xF4, 0x00, 0xF4, 0x06, 0x74, 0x0C, 0x74, +0x12, 0x74, 0x18, 0x74, 0x1E, 0xF4, 0x24, 0x74, 0x2A, 0xB4, 0x30, 0x74, 0x36, 0xF4, 0x01, 0x34, +0x01, 0x34, 0x01, 0x34, 0x02, 0x34, 0x03, 0x74, 0x04, 0x34, 0x05, 0x74, 0x05, 0x74, 0x06, 0x74, +0x06, 0x74, 0x0F, 0xF4, 0x0C, 0x74, 0x09, 0x74, 0x09, 0x74, 0x09, 0x74, 0x0C, 0x74, 0x0F, 0xF4, +0x0C, 0x74, 0x0F, 0xF4, 0x0C, 0x74, 0x83, 0x93, 0x53, 0xB0, 0x84, 0x80, 0x61, 0x70, 0x8A, 0x51, +0x15, 0xA5, 0x38, 0x70, 0xC1, 0xC0, 0x3A, 0xB0, 0xC2, 0xC0, 0x3C, 0xB0, 0xC3, 0x00, 0x78, 0xB0, +0xC4, 0xC0, 0x7A, 0xF0, 0xC5, 0x00, 0x7C, 0xF0, 0xC6, 0x00, 0x7D, 0x30, 0xC7, 0x40, 0x7F, 0x70, +0xC8, 0xC0, 0xB9, 0xF0, 0xC9, 0x00, 0xBA, 0xF0, 0xCA, 0x00, 0xBB, 0x30, 0xCB, 0x40, 0xFA, 0x30, +0xCC, 0x00, 0xFB, 0x70, 0xCD, 0x40, 0xFC, 0x30, 0xCE, 0x40, 0xFD, 0x70, 0xCF, 0x80, 0xFF, 0xB0, +0xD0, 0xC0, 0x00, 0xB0, 0xD1, 0x00, 0x01, 0xF0, 0xD2, 0x00, 0x83, 0x01, 0x8A, 0x51, 0xA0, 0x69, +0x52, 0x08, 0xB1, 0x00, 0x51, 0x08, 0xB0, 0xC0, 0x31, 0x08, 0x30, 0x06, 0x03, 0x59, 0x05, 0xAD, +0x14, 0xC8, 0xB0, 0xC0, 0x14, 0xC8, 0xB1, 0x00, 0xFC, 0x6C, 0x31, 0x08, 0x08, 0x40, 0xB2, 0x00, +0xB1, 0x41, 0x30, 0xC8, 0x32, 0x58, 0xB1, 0xC7, 0x03, 0xD0, 0xB0, 0x8D, 0x03, 0xD0, 0xB2, 0x8C, +0xB2, 0x48, 0x03, 0x9D, 0x09, 0xAD, 0x31, 0x08, 0x08, 0x40, 0x64, 0xC0, 0x80, 0x81, 0x84, 0x0A, +0x04, 0xC6, 0x03, 0x59, 0x00, 0xF4, 0x04, 0xC6, 0x16, 0xED, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, @@ -169,162 +325,6 @@ static uint8_t agc_firmware[MCU_AGC_FW_BYTE] = { 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0x64, 0xC0, 0x80, 0x81, -0x84, 0x0A, 0x04, 0xC6, 0x03, 0x59, 0x00, 0xF4, 0x04, 0xC6, 0xDF, 0xAC, 0xB8, 0x00, 0xB7, 0xC1, -0x36, 0x48, 0x38, 0x58, 0xB7, 0x47, 0x03, 0xD0, 0xB6, 0x0D, 0x03, 0xD0, 0xB8, 0x8C, 0xB8, 0x48, -0x03, 0x9D, 0xE8, 0xEC, 0x37, 0x88, 0x08, 0x40, 0x35, 0x48, 0xB7, 0x80, 0x34, 0x08, 0xB6, 0x40, -0x37, 0x88, 0x36, 0x86, 0x03, 0x59, 0x01, 0x6D, 0x14, 0xC8, 0xB6, 0x40, 0x14, 0xC8, 0xB7, 0x80, -0xF8, 0x2C, 0x37, 0x88, 0x08, 0x40, 0x83, 0x93, 0x47, 0xB0, 0x84, 0x80, 0x55, 0xB0, 0x8A, 0x51, -0xDE, 0x24, 0x38, 0x70, 0xA4, 0xC0, 0x3A, 0xB0, 0xA5, 0x00, 0x3C, 0xB0, 0xA6, 0x00, 0x78, 0xB0, -0xA7, 0x40, 0x7A, 0xF0, 0xA8, 0xC0, 0x7C, 0xF0, 0xA9, 0x00, 0x7D, 0x30, 0xAA, 0x00, 0x7F, 0x70, -0xAB, 0x40, 0xB9, 0xF0, 0xAC, 0x00, 0xBA, 0xF0, 0xAD, 0x40, 0xBB, 0x30, 0xAE, 0x40, 0xFA, 0x30, -0xAF, 0x80, 0xFB, 0x70, 0xB0, 0xC0, 0xFC, 0x30, 0xB1, 0x00, 0xFD, 0x70, 0xB2, 0x00, 0xFF, 0xB0, -0xB3, 0x40, 0x00, 0xB0, 0xB4, 0x00, 0x01, 0xF0, 0xB5, 0x40, 0x83, 0x01, 0x8A, 0x51, 0x89, 0xEE, -0x02, 0xF0, 0xA0, 0x80, 0x95, 0x41, 0x96, 0x41, 0x97, 0x81, 0x98, 0x01, 0x99, 0x41, 0x9A, 0x41, -0x9B, 0x81, 0x9C, 0x41, 0x20, 0xF0, 0x9B, 0x40, 0x02, 0xF0, 0x9E, 0x40, 0x19, 0x54, 0x19, 0x95, -0x8B, 0x41, 0xCA, 0x41, 0x4A, 0x02, 0x03, 0x18, 0x66, 0x2D, 0x4A, 0x08, 0x47, 0x7E, 0x84, 0x80, -0x83, 0x93, 0x80, 0x81, 0x4A, 0x08, 0x53, 0x7E, 0x84, 0x80, 0x07, 0x70, 0x80, 0x40, 0x4A, 0x08, -0x7C, 0x25, 0x8A, 0x51, 0x4A, 0x08, 0x53, 0x7E, 0x84, 0x80, 0x00, 0xCE, 0xF0, 0x39, 0x96, 0x00, -0x4A, 0x9C, 0x5E, 0x6D, 0x83, 0x52, 0x03, 0x53, 0x18, 0x14, 0x61, 0xED, 0x83, 0x52, 0x03, 0x53, -0x18, 0xD0, 0x18, 0x55, 0x18, 0x11, 0x02, 0xF0, 0xCA, 0x8A, 0x42, 0xAD, 0xC9, 0x41, 0x08, 0xF0, -0x49, 0x02, 0x03, 0x18, 0x08, 0x40, 0x49, 0x08, 0x4B, 0x7E, 0x84, 0x80, 0x04, 0xF0, 0x83, 0x93, -0x80, 0x40, 0x49, 0x08, 0x4B, 0x7E, 0x84, 0x80, 0x00, 0x48, 0x96, 0x00, 0x49, 0x08, 0x95, 0x00, -0x98, 0x54, 0x98, 0x10, 0xC9, 0x8A, 0x67, 0x6D, 0xBD, 0x80, 0x47, 0x7E, 0x84, 0x80, 0x00, 0x48, -0xBC, 0x40, 0x23, 0x3E, 0x84, 0x80, 0x8A, 0x51, 0x02, 0xA0, 0x8A, 0x51, 0xB9, 0x40, 0x05, 0x30, -0x03, 0xD0, 0xB9, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, 0x88, 0xAD, 0x3C, 0x48, 0x2D, 0x7E, 0x84, 0x80, -0x8A, 0x51, 0x02, 0xA0, 0x8A, 0x51, 0xBA, 0x40, 0x3A, 0xC7, 0x39, 0x44, 0x01, 0x38, 0xBB, 0x80, -0x3D, 0x88, 0x22, 0xFE, 0x84, 0x80, 0x3B, 0x88, 0x80, 0x40, 0x3D, 0x88, 0x22, 0xFE, 0x84, 0x80, -0x00, 0x48, 0xB6, 0x40, 0x3D, 0x88, 0xB7, 0x80, 0x0C, 0x30, 0x79, 0x6E, 0x18, 0x12, 0x80, 0xF0, -0x9B, 0x40, 0x08, 0xF0, 0x9E, 0x40, 0x13, 0x1F, 0xB1, 0x2D, 0x83, 0x52, 0x03, 0x53, 0x18, 0x14, -0xB4, 0x2D, 0x83, 0x52, 0x03, 0x53, 0x18, 0xD0, 0x13, 0x08, 0xBB, 0x80, 0x0F, 0xB0, 0xBB, 0x05, -0x3B, 0x88, 0x24, 0xFE, 0x84, 0x80, 0x83, 0x93, 0x00, 0x48, 0xA1, 0xC0, 0x21, 0xC8, 0xBC, 0x40, -0x3F, 0x30, 0xBC, 0xC5, 0x3C, 0x48, 0xB6, 0x40, 0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, 0xB7, 0x80, -0x08, 0xF0, 0x79, 0x26, 0x8A, 0x51, 0x21, 0xDF, 0xD1, 0x2D, 0x83, 0x52, 0x03, 0x53, 0x19, 0x96, -0xD4, 0x2D, 0x83, 0x52, 0x03, 0x53, 0x19, 0x52, 0xA1, 0x1F, 0xDA, 0x6D, 0x83, 0x52, 0x03, 0x53, -0x99, 0xD6, 0xDD, 0xAD, 0x83, 0x52, 0x03, 0x53, 0x99, 0x92, 0x12, 0xC8, 0xB6, 0x40, 0x00, 0xB0, -0x13, 0xDB, 0x01, 0xF0, 0xB7, 0x80, 0x04, 0xF0, 0x79, 0x26, 0x8A, 0x51, 0x11, 0xC8, 0xB6, 0x40, -0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, 0xB7, 0x80, 0x05, 0x30, 0x79, 0x26, 0x8A, 0x51, 0x10, 0x88, -0xB6, 0x40, 0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, 0xB7, 0x80, 0x06, 0x30, 0x79, 0x26, 0x8A, 0x51, -0x00, 0xB0, 0xB6, 0x81, 0xB6, 0xCA, 0x13, 0xDB, 0x01, 0xF0, 0xB7, 0x80, 0x00, 0xB0, 0x79, 0x26, -0x8A, 0x51, 0x35, 0xB0, 0xB9, 0x40, 0xB9, 0x0B, 0x03, 0xAE, 0x05, 0x30, 0x83, 0x52, 0x03, 0x53, -0xB6, 0x40, 0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, 0xB7, 0x80, 0x00, 0xB0, 0x79, 0x26, 0x8A, 0x51, -0x03, 0x30, 0xBA, 0x40, 0x7D, 0x30, 0xB9, 0x40, 0xB9, 0x0B, 0x14, 0xAE, 0xBA, 0x0B, 0x14, 0xAE, -0x83, 0x52, 0x03, 0x53, 0x13, 0x1F, 0x1E, 0x2E, 0x19, 0x51, 0x1F, 0x6E, 0x19, 0x10, 0x05, 0x30, -0xB9, 0x40, 0xB9, 0x0B, 0x21, 0xAE, 0x83, 0x52, 0x03, 0x53, 0x13, 0x1F, 0x29, 0xEE, 0x99, 0xD5, -0x2A, 0xEE, 0x99, 0x94, 0x15, 0x70, 0xBA, 0x40, 0xC6, 0xB0, 0xB9, 0x40, 0xB9, 0x0B, 0x2E, 0x2E, -0xBA, 0x0B, 0x2E, 0x2E, 0x00, 0x00, 0x0D, 0x70, 0x83, 0x52, 0x03, 0x53, 0xB6, 0x40, 0x00, 0xB0, -0x13, 0xDB, 0x01, 0xF0, 0xB7, 0x80, 0x00, 0xB0, 0x79, 0x26, 0x8A, 0x51, 0x10, 0xF0, 0x9E, 0x40, -0x93, 0x1B, 0x40, 0x6E, 0x08, 0xF0, 0x9E, 0x40, 0x99, 0x92, 0x19, 0x52, 0x00, 0xB0, 0xB6, 0x81, -0xB6, 0xCA, 0x13, 0xDB, 0x01, 0xF0, 0xB7, 0x80, 0x00, 0xB0, 0x79, 0x26, 0x8A, 0x51, 0x13, 0x1F, -0x53, 0x2E, 0x99, 0x91, 0x54, 0xEE, 0x99, 0x50, 0xE4, 0xB0, 0xB9, 0x40, 0x57, 0x6E, 0x58, 0xEE, -0xB9, 0x0B, 0x56, 0x2E, 0x5B, 0x6E, 0x00, 0x00, 0x83, 0x52, 0x03, 0x53, 0x13, 0x1F, 0x62, 0xEE, -0x19, 0x95, 0x63, 0x2E, 0x19, 0x54, 0x03, 0x30, 0xB6, 0x40, 0x00, 0xB0, 0x13, 0xDB, 0x01, 0xF0, -0xB7, 0x80, 0x00, 0xB0, 0x79, 0x26, 0x8A, 0x51, 0x05, 0x30, 0xBA, 0x40, 0x26, 0x70, 0xB9, 0x40, -0xB9, 0x0B, 0x70, 0xEE, 0xBA, 0x0B, 0x70, 0xEE, 0x00, 0x00, 0x83, 0x52, 0x03, 0x53, 0x18, 0x56, -0x08, 0x40, 0xB8, 0x00, 0x37, 0x88, 0x03, 0x59, 0x83, 0xEE, 0x36, 0x48, 0x88, 0x80, 0x38, 0x08, -0x80, 0x38, 0x86, 0xC0, 0x08, 0x40, 0x36, 0x48, 0x88, 0x80, 0x38, 0x08, 0x80, 0x38, 0x85, 0xC0, -0x08, 0x40, 0x11, 0x30, 0xC6, 0x00, 0x8A, 0x51, 0x30, 0x65, 0x8A, 0x51, 0xC5, 0x41, 0x10, 0xF0, -0x45, 0x02, 0x03, 0x18, 0xC4, 0xEE, 0x46, 0x08, 0x10, 0x7A, 0x03, 0x59, 0x9C, 0x2E, 0x8A, 0x51, -0xF4, 0xE4, 0x8A, 0x51, 0xC6, 0x00, 0x93, 0x2E, 0x45, 0x08, 0x20, 0x38, 0x9B, 0x40, 0x02, 0xF0, -0x9E, 0x40, 0x46, 0x08, 0x10, 0x7A, 0x03, 0x9D, 0xAA, 0x2E, 0x8A, 0x51, 0xF4, 0xE4, 0x8A, 0x51, -0xC6, 0x00, 0xA1, 0xEE, 0x46, 0x08, 0x11, 0xBA, 0x03, 0x9D, 0xB3, 0x6E, 0x30, 0x30, 0x9B, 0x40, -0x03, 0x30, 0x9E, 0x40, 0xC4, 0xEE, 0x45, 0x08, 0x24, 0xFE, 0x84, 0x80, 0x46, 0x08, 0x83, 0x93, -0x80, 0x40, 0x45, 0x08, 0x30, 0x78, 0x9B, 0x40, 0x03, 0x30, 0x9E, 0x40, 0xC5, 0x8A, 0x8F, 0x6E, -0x8A, 0x51, 0xF4, 0xE4, 0x8A, 0x51, 0xC6, 0x00, 0x46, 0x08, 0x10, 0x7A, 0x03, 0x9D, 0xC0, 0xAE, -0x20, 0xF0, 0x9B, 0x40, 0x02, 0xF0, 0x9E, 0x40, 0x46, 0x08, 0x10, 0x7A, 0x03, 0x9D, 0xD5, 0x6E, -0x8A, 0x51, 0xF4, 0xE4, 0x8A, 0x51, 0xC6, 0x00, 0xCC, 0x2E, 0x46, 0x08, 0xC4, 0xC0, 0x30, 0x78, -0x9B, 0x40, 0x03, 0x30, 0x9E, 0x40, 0x46, 0x08, 0x10, 0x7A, 0x03, 0x59, 0xE4, 0x2E, 0x8A, 0x51, -0xF4, 0xE4, 0x8A, 0x51, 0xC6, 0x00, 0xDB, 0xAE, 0x20, 0xF0, 0x9B, 0x40, 0x02, 0xF0, 0x9E, 0x40, -0x46, 0x08, 0x10, 0x7A, 0x03, 0x9D, 0xF1, 0x6E, 0x8A, 0x51, 0xF4, 0xE4, 0x8A, 0x51, 0xC6, 0x00, -0xE8, 0x2E, 0x40, 0xF0, 0x9B, 0x40, 0x04, 0xF0, 0x9E, 0x40, 0x93, 0x5F, 0xFE, 0xEE, 0x8A, 0x51, -0xA6, 0xE5, 0x8A, 0x51, 0x40, 0xF0, 0x9B, 0x40, 0x04, 0xF0, 0x9E, 0x40, 0xC9, 0x41, 0x08, 0xF0, -0x49, 0x02, 0x03, 0x18, 0x36, 0x6F, 0x49, 0x08, 0x95, 0x00, 0x85, 0x70, 0x0D, 0x02, 0x03, 0x5C, -0x16, 0x2F, 0x49, 0x08, 0x4B, 0x7E, 0x84, 0x80, 0x0E, 0x70, 0x83, 0x93, 0x00, 0x42, 0x03, 0x18, -0x16, 0x2F, 0x49, 0x08, 0x4B, 0x7E, 0x84, 0x80, 0x00, 0x8A, 0x27, 0x6F, 0x34, 0x70, 0x0D, 0x02, -0x03, 0x18, 0x34, 0x2F, 0x49, 0x08, 0x4B, 0x7E, 0x84, 0x80, 0x05, 0x30, 0x83, 0x93, 0x00, 0x42, -0x03, 0x5C, 0x34, 0x2F, 0x49, 0x08, 0x4B, 0x7E, 0x84, 0x80, 0x00, 0x48, 0xFF, 0x7E, 0xBE, 0x80, -0x49, 0x08, 0x4B, 0x7E, 0x84, 0x80, 0x3E, 0x88, 0x80, 0x40, 0x49, 0x08, 0x4B, 0x7E, 0x84, 0x80, -0x00, 0x48, 0x96, 0x00, 0x98, 0x54, 0x98, 0x10, 0xC9, 0x8A, 0xFF, 0x2E, 0xCA, 0x41, 0x02, 0xF0, -0x4A, 0x02, 0x03, 0x18, 0xAA, 0x6F, 0x4A, 0x9C, 0x41, 0xEF, 0x83, 0x52, 0x03, 0x53, 0x18, 0x14, -0x44, 0xEF, 0x83, 0x52, 0x03, 0x53, 0x18, 0xD0, 0x4A, 0x08, 0x47, 0x7E, 0x84, 0x80, 0x83, 0x93, -0x00, 0x48, 0x03, 0x9D, 0x4D, 0x6F, 0x64, 0x70, 0x4E, 0x6F, 0x73, 0xF0, 0xBF, 0xC0, 0x0E, 0x08, -0x3F, 0xC2, 0x03, 0x18, 0x5F, 0xEF, 0x4A, 0x08, 0x53, 0x7E, 0x84, 0x80, 0x0B, 0x70, 0x00, 0x42, -0x03, 0x18, 0x5F, 0xEF, 0x4A, 0x08, 0x53, 0x7E, 0x84, 0x80, 0x00, 0x8A, 0x6F, 0xEF, 0x2D, 0xB0, -0x0E, 0x02, 0x03, 0x18, 0x7D, 0xEF, 0x4A, 0x08, 0x53, 0x7E, 0x84, 0x80, 0x08, 0xF0, 0x00, 0x42, -0x03, 0x5C, 0x7D, 0xEF, 0x4A, 0x08, 0x53, 0x7E, 0x84, 0x80, 0x00, 0x48, 0xFF, 0x7E, 0xBE, 0x80, -0x4A, 0x08, 0x53, 0x7E, 0x84, 0x80, 0x3E, 0x88, 0x80, 0x40, 0x4A, 0x08, 0x53, 0x7E, 0x84, 0x80, -0x00, 0xCE, 0xF0, 0x39, 0x96, 0x00, 0x18, 0x55, 0x18, 0x11, 0x24, 0x30, 0x0F, 0x42, 0x03, 0x5C, -0x8D, 0x6F, 0x4A, 0x08, 0x47, 0x7E, 0x84, 0x80, 0x09, 0x30, 0x00, 0x42, 0x03, 0x18, 0x8D, 0x6F, -0x4A, 0x08, 0x47, 0x7E, 0x84, 0x80, 0x00, 0x8A, 0x9C, 0x6F, 0x10, 0xF0, 0x0F, 0x42, 0x03, 0x18, -0xA8, 0x2F, 0x4A, 0x08, 0x47, 0x7E, 0x84, 0x80, 0x80, 0x88, 0x03, 0x59, 0xA8, 0x2F, 0x4A, 0x08, -0x47, 0x7E, 0x84, 0x80, 0x00, 0x48, 0xFF, 0x7E, 0xBE, 0x80, 0x4A, 0x08, 0x47, 0x7E, 0x84, 0x80, -0x3E, 0x88, 0x80, 0x40, 0x4A, 0x08, 0x8A, 0x51, 0x7C, 0x25, 0x8A, 0x51, 0x98, 0x95, 0x98, 0x51, -0xCA, 0x8A, 0x37, 0xAF, 0x47, 0x48, 0x19, 0x3E, 0x84, 0x80, 0x8A, 0x51, 0x02, 0xA0, 0x8A, 0x51, -0xC2, 0xC0, 0x06, 0x30, 0xB6, 0x40, 0x53, 0x48, 0xF9, 0xFE, 0x8A, 0x51, 0xE6, 0xE4, 0x8A, 0x51, -0xC3, 0x00, 0x42, 0x47, 0x97, 0x40, 0x48, 0xC8, 0x19, 0x3E, 0x84, 0x80, 0x8A, 0x51, 0x02, 0xA0, -0x8A, 0x51, 0xC2, 0xC0, 0x06, 0x30, 0xB6, 0x40, 0x54, 0x08, 0xF9, 0xFE, 0x8A, 0x51, 0xE6, 0xE4, -0x8A, 0x51, 0xC3, 0x00, 0x42, 0x47, 0x9C, 0x00, 0x44, 0xC8, 0x95, 0x00, 0x0D, 0x08, 0xBE, 0x80, -0x03, 0xD0, 0xBE, 0x0C, 0x03, 0xD0, 0xBE, 0x0C, 0x03, 0xD0, 0xBE, 0x0C, 0x3E, 0x88, 0x01, 0xBE, -0x84, 0x80, 0x8A, 0x51, 0x02, 0xA0, 0x8A, 0x51, 0xC1, 0xC0, 0x06, 0x30, 0xB6, 0x40, 0x44, 0xC8, -0x4B, 0x7E, 0x84, 0x80, 0x83, 0x93, 0x00, 0x48, 0xFC, 0xFE, 0x8A, 0x51, 0xE6, 0xE4, 0x8A, 0x51, -0xC0, 0x80, 0x01, 0xF0, 0xBE, 0x80, 0x44, 0x0A, 0xEF, 0x2F, 0x03, 0xD0, 0xBE, 0x4D, 0xFF, 0x7E, -0x03, 0x9D, 0xED, 0xEF, 0x3E, 0x88, 0x14, 0x05, 0x03, 0x59, 0xF9, 0xEF, 0x40, 0x88, 0x1C, 0x87, -0xFB, 0x2F, 0x40, 0x88, 0x17, 0xC7, 0xBE, 0x80, 0x41, 0xC8, 0x3E, 0x07, 0x9A, 0x00, 0xF5, 0xAE, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, diff --git a/libloragw/src/cal_fw.var b/libloragw/src/cal_fw.var index e1aa570..43b4c40 100644 --- a/libloragw/src/cal_fw.var +++ b/libloragw/src/cal_fw.var @@ -14,285 +14,274 @@ Maintainer: Matthieu Leurent */ static uint8_t cal_firmware[MCU_AGC_FW_BYTE] = { -0x8A, 0x51, 0xB7, 0x28, 0x00, 0xB0, 0x8A, 0xC0, 0x04, 0x88, 0x84, 0x0A, 0x82, 0x47, 0x00, 0xF4, -0x18, 0x74, 0x1C, 0xB4, 0x1E, 0xF4, 0x20, 0x34, 0x22, 0x74, 0x23, 0xB4, 0x24, 0x74, 0x25, 0xB4, -0x26, 0xB4, 0x27, 0xF4, 0x28, 0x74, 0x28, 0x74, 0x29, 0xB4, 0x2A, 0xB4, 0x2A, 0xB4, 0x2B, 0xF4, -0x2B, 0xF4, 0x2C, 0xB4, 0x2C, 0xB4, 0x2D, 0xF4, 0x2D, 0xF4, 0x2D, 0xF4, 0x2E, 0xF4, 0x2E, 0xF4, -0x2E, 0xF4, 0x2F, 0x34, 0x2F, 0x34, 0x2F, 0x34, 0x30, 0x74, 0x30, 0x74, 0x00, 0xF4, 0x00, 0xF4, -0x06, 0x74, 0x0A, 0x74, 0x0C, 0x74, 0x0E, 0xB4, 0x10, 0x34, 0x11, 0x74, 0x12, 0x74, 0x13, 0xB4, -0x14, 0x74, 0x15, 0xB4, 0x16, 0xB4, 0x16, 0xB4, 0x17, 0xF4, 0x18, 0x74, 0x02, 0x34, 0x02, 0x34, -0x03, 0x74, 0x04, 0x34, 0x05, 0x74, 0x06, 0x74, 0x07, 0xB4, 0x40, 0x34, 0x20, 0x34, 0x10, 0x34, -0x08, 0x34, 0x04, 0x34, 0x02, 0x34, 0x01, 0x34, 0x06, 0x74, 0x06, 0x74, 0x07, 0xB4, 0x07, 0xB4, -0x07, 0xB4, 0x10, 0x34, 0x08, 0x34, 0x04, 0x34, 0x02, 0x34, 0x01, 0x34, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, -0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0x64, 0xC0, -0x80, 0x81, 0x84, 0x0A, 0x04, 0xC6, 0x03, 0x59, 0x00, 0xF4, 0x04, 0xC6, 0x98, 0x68, 0xA1, 0xC0, -0x10, 0xF0, 0x21, 0xC2, 0x21, 0xC8, 0x03, 0x18, 0xAA, 0xA8, 0x1F, 0xBE, 0x84, 0x80, 0x8A, 0x51, -0x02, 0xA0, 0x08, 0x40, 0xA0, 0x80, 0x03, 0xD0, 0xA0, 0x0C, 0x03, 0xD0, 0xA0, 0x0C, 0x03, 0xD0, -0xA0, 0x0C, 0x20, 0x88, 0x01, 0xBE, 0x84, 0x80, 0x8A, 0x51, 0x02, 0xA0, 0x08, 0x40, 0xEE, 0xC1, -0xEF, 0x01, 0x83, 0x93, 0x54, 0x70, 0x84, 0x80, 0x64, 0x70, 0x8A, 0x51, 0x97, 0xA0, 0x8A, 0x51, -0xDA, 0xF0, 0x84, 0x80, 0xED, 0x30, 0x8A, 0x51, 0x97, 0xA0, 0x01, 0xF0, 0xE4, 0x00, 0x01, 0xF0, -0xE5, 0x40, 0x07, 0x70, 0xE6, 0x40, 0x06, 0x30, 0xE7, 0x80, 0x0F, 0xB0, 0xE8, 0x00, 0x01, 0xF0, -0xE9, 0x40, 0x05, 0x30, 0xEA, 0x40, 0x01, 0xF0, 0xEB, 0x80, 0x03, 0x30, 0xEC, 0x40, 0x08, 0xF0, -0xED, 0x80, 0x83, 0x01, 0x8A, 0x51, 0x6A, 0xEC, 0xA2, 0x01, 0x22, 0xC8, 0xDE, 0xFE, 0x84, 0x80, -0x22, 0xC8, 0xA0, 0x80, 0x01, 0xF0, 0x3E, 0xE1, 0x8A, 0x51, 0x83, 0x93, 0x80, 0x40, 0x22, 0xC8, -0x54, 0x3E, 0x84, 0x80, 0x22, 0xC8, 0xA0, 0x80, 0x02, 0xF0, 0x3E, 0xE1, 0x8A, 0x51, 0x80, 0x40, -0x22, 0xC8, 0xDC, 0xBE, 0x84, 0x80, 0x22, 0xC8, 0xA0, 0x80, 0x03, 0x30, 0x3E, 0xE1, 0x8A, 0x51, -0x80, 0x40, 0x22, 0xC8, 0xEA, 0xBE, 0x84, 0x80, 0x22, 0xC8, 0xA0, 0x80, 0x08, 0xF0, 0x3E, 0xE1, -0x8A, 0x51, 0x80, 0x40, 0x22, 0xC8, 0xE6, 0xBE, 0x84, 0x80, 0x22, 0xC8, 0xA0, 0x80, 0x0A, 0x30, -0x3E, 0xE1, 0x8A, 0x51, 0x80, 0x40, 0x22, 0xC8, 0xE8, 0x7E, 0x84, 0x80, 0x22, 0xC8, 0xA0, 0x80, -0x0B, 0x70, 0x3E, 0xE1, 0x8A, 0x51, 0x80, 0x40, 0x22, 0xC8, 0xE0, 0x3E, 0x84, 0x80, 0x22, 0xC8, -0xA0, 0x80, 0x0C, 0x30, 0x3E, 0xE1, 0x8A, 0x51, 0x80, 0x40, 0x22, 0xC8, 0xE2, 0x7E, 0x84, 0x80, -0x22, 0xC8, 0xA0, 0x80, 0x0D, 0x70, 0x3E, 0xE1, 0x8A, 0x51, 0x80, 0x40 |
