diff --git a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h index 14ca9aaf1..a5604e53f 100644 --- a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h +++ b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h @@ -917,7 +917,7 @@ #define DZOOM_FUNC ENABLE #define HUNTING_MCU_I2C DISABLE #define HUNTING_MCU_UART ENABLE -#define HUNTING_IR_LED_940 DISABLE +#define HUNTING_IR_LED_940 ENABLE #define SF_BASE_VERSION "7MD4RCwD6T2" #define HW_S530 1 #define DCF_DIR_NAME "MEDIA" /* 100MEDIA */ @@ -929,7 +929,7 @@ #define SF_THUMB_SEND_LIST SF_SEND_LIST_DIR"send.list" #define SF_THUMB_SEND_AUTO SF_SEND_LIST_DIR"auto.list" -#define SF_IQ_TEST ENABLE +#define SF_IQ_TEST DISABLE #define PHOTO_ISP_STAMP DISABLE #define SF_BASE_VERSION_FEA "R2.3" diff --git a/code/application/source/sf_app/Makefile b/code/application/source/sf_app/Makefile index a0863207a..f41efb567 100644 --- a/code/application/source/sf_app/Makefile +++ b/code/application/source/sf_app/Makefile @@ -332,4 +332,7 @@ install: @mkdir -p $(APP_DIR)/output @cp -avf $(BIN) $(APP_DIR)/output @cp -avf ${BIN} $(ROOTFS_DIR)/rootfs/usr/bin + @cp -avf $(APP_DIR)/source/sf_app/build/QFirehose $(ROOTFS_DIR)/rootfs/usr/bin + @cp -avf $(APP_DIR)/source/sf_app/build/QLog $(ROOTFS_DIR)/rootfs/usr/bin + @cp -avf $(APP_DIR)/source/sf_app/build/quectel-CM $(ROOTFS_DIR)/rootfs/usr/bin diff --git a/code/application/source/sf_app/build/QFirehose b/code/application/source/sf_app/build/QFirehose new file mode 100755 index 000000000..76618f86d Binary files /dev/null and b/code/application/source/sf_app/build/QFirehose differ diff --git a/code/application/source/sf_app/build/QLog b/code/application/source/sf_app/build/QLog new file mode 100755 index 000000000..547a88208 Binary files /dev/null and b/code/application/source/sf_app/build/QLog differ diff --git a/code/application/source/sf_app/build/quectel-CM b/code/application/source/sf_app/build/quectel-CM new file mode 100755 index 000000000..5675721e4 Binary files /dev/null and b/code/application/source/sf_app/build/quectel-CM differ diff --git a/code/application/source/sf_app/code/include/sf_commu_mcu_reg.h b/code/application/source/sf_app/code/include/sf_commu_mcu_reg.h index 9d32985f0..dd77af089 100644 --- a/code/application/source/sf_app/code/include/sf_commu_mcu_reg.h +++ b/code/application/source/sf_app/code/include/sf_commu_mcu_reg.h @@ -354,10 +354,12 @@ UINT8 sf_convert_power_on_mode(void); int sf_mcu_init(void); unsigned char sf_mcu_wdg_off(void); void sf_set_module_sleep_flag(UINT8 flag); +UINT8 sf_get_module_sleep_flag(void); int sf_app_while_flag(void); void sf_set_sim_insert(UINT32 sim); UINT32 sf_get_sim_insert(void); int sf_get_signal_ready(void); +int sf_set_signal_ready(int value); void sf_set_sim_pin_flag(UINT8 simPin, UINT8 simPins, UINT8 simPinPuk); void sf_set_cq_signal(UINT8 csq); UINT8 sf_get_cq_signal(void); @@ -373,7 +375,8 @@ UINT8 sf_get_module_update(void); void sf_set_module_update(UINT8 flag); UINT8 sf_get_fw_update(void); void sf_set_fw_update(UINT8 flag); - +void sf_set_gprs_errno(SINT32 value); +SINT32 sf_get_gprs_errno(void); extern unsigned short TrigType; diff --git a/code/application/source/sf_app/code/include/sf_eg91_sim.h b/code/application/source/sf_app/code/include/sf_eg91_sim.h index 36c2107c5..8467fd6be 100644 --- a/code/application/source/sf_app/code/include/sf_eg91_sim.h +++ b/code/application/source/sf_app/code/include/sf_eg91_sim.h @@ -262,6 +262,12 @@ void sf_get_send_video_fname(UINT8 *videoDirKey, UINT8 *videoFname); void sf_gsm_para_buff_clear(void); +void sf_gprs_init(UINT32 param); + +void sf_4g_module_sleep(void); + +void sf_4g_set_module_minimun_fun(void); + #ifdef __cplusplus #if __cplusplus } diff --git a/code/application/source/sf_app/code/include/sf_file.h b/code/application/source/sf_app/code/include/sf_file.h index feeb1fa41..e882f655f 100644 --- a/code/application/source/sf_app/code/include/sf_file.h +++ b/code/application/source/sf_app/code/include/sf_file.h @@ -31,6 +31,8 @@ void sf_custom_send_str_get(UINT8 *sendName, UINT8 *pStr); BOOL sf_is_enough_power_to_update(void); +BOOL sf_is_4g_module_usb_update_file_exist(UINT8 *updateFname); + #ifdef __cplusplus #if __cplusplus } diff --git a/code/application/source/sf_app/code/include/sf_ftp.h b/code/application/source/sf_app/code/include/sf_ftp.h index 4c069f02d..99100e85f 100644 --- a/code/application/source/sf_app/code/include/sf_ftp.h +++ b/code/application/source/sf_app/code/include/sf_ftp.h @@ -212,5 +212,7 @@ SINT32 sf_simcom_ftp_dailyreport_send(void); SINT32 sf_check_ftp_send(UINT8 mode); SINT32 sf_simcom_ftp_send(UINT8 mode); SINT32 sf_4g_module_ota_ftp(void); +UINT32 sf_connect_ftps_server(void); +UINT32 sf_camera_ota_ftp(void); #endif /*_SF_FTP_H_*/ diff --git a/code/application/source/sf_app/code/include/sf_param_enum.h b/code/application/source/sf_app/code/include/sf_param_enum.h index a6bde9e80..f35231d94 100644 --- a/code/application/source/sf_app/code/include/sf_param_enum.h +++ b/code/application/source/sf_app/code/include/sf_param_enum.h @@ -138,7 +138,7 @@ extern "C" { #define DEFAULT_RTC_DEVICE "/dev/rtc0" -#define SF_SD_ROOT "/mnt/sd/" +//#define SF_SD_ROOT "/mnt/sd/" #define SIFAR_CUSTOMER_PARAM_PATH "/misc/sfSysParm.bin" #define SIFAR_STATISTICS_PARAM_PATH "/mnt/sd/THUMB/sfStatisticsParm.bin" @@ -161,8 +161,8 @@ extern "C" { #define SF_4G_SMALL_VIDEO_STREAM_PATH SF_SD_ROOT"DCIM/SMALL/" #define SIM_AUTO_MATCH_FILE_PATH SF_SD_ROOT"SIM Auto Match.TXT" -#define SF_DCF_DIR_NAME_SUFFIX "SYCAM" /**< DCF Directory Name (it must be 5-characters) */ -#define SF_DCF_ROOT_DIR_NAME "DCIM" /**< DCF Root Directory Name */ +#define SF_DCF_DIR_NAME_SUFFIX DCF_FILE_NAME /**< DCF Directory Name (it must be 5-characters) */ +#define SF_DCF_ROOT_DIR_NAME DCF_DIR_NAME /**< DCF Root Directory Name */ #define SF_DCF_THM_DIR_NAME "THUMB" /**< DCF Directory Name (it must be 5-characters) */ #define SF_DCF_EXT_PHOTO "jpg" /**< File extenstion name for Date DB */ @@ -403,7 +403,7 @@ typedef enum sf_MESSAGE_CMD_SD_e CMD_SD_STRG_CB_MOUNT_FINISH = 3, ///< The type for calling after storage mounted CMD_SD_STRG_CB_UNMOUNT_FINISH = 4, ///< The type for calling after storage unmounted CMD_SD_FULL = 5, - + CMD_SD_FORMAT = 6, CMD_SD_SYSTEM_CB_CONFIG = 0xFFFFFFFF, }SF_MESSAGE_CMD_SD_E; @@ -473,6 +473,7 @@ typedef enum sf_PARA_MESSAGE_TYPE_E { SF_PARA_CMD_UPDATE = 0x1A00, SF_PARA_CMD_DOMN = 0x1B00, + SF_PARA_CMD_RESET = 0x1C00, }SF_PARA_MESSAGE_TYPE_E; diff --git a/code/application/source/sf_app/code/include/sf_sms.h b/code/application/source/sf_app/code/include/sf_sms.h index 7d8988d42..8582f20f0 100644 --- a/code/application/source/sf_app/code/include/sf_sms.h +++ b/code/application/source/sf_app/code/include/sf_sms.h @@ -248,5 +248,16 @@ void sf_video_add_to_list(UINT8 *fileName); void sf_video_list_print(void); SINT32 sf_power_off_check_sms(void); SINT32 sf_power_off_module_ota(void); +UINT32 sf_4g_module_sd_usb_update(UINT8 *upFname); +SINT32 sf_power_off_module_sd_update(void); +SINT32 sf_power_off_check_para(void); +SINT32 sf_power_off_check_retset_para(void); +SINT32 sf_power_off_check_format_sd(void); +SINT32 sf_power_off_check_sd(void); +SINT32 sf_power_off_check_gprs(void); +SINT32 sf_power_off_check_fw_update(void); +SINT32 sf_power_off_check_module_sleep(void); +SINT32 sf_power_off_check_camera_restart(void); +SINT32 sf_power_off_check_ui_para_sava(void); #endif /*_SF_SMS_H_*/ diff --git a/code/application/source/sf_app/code/include/sf_storeMng.h b/code/application/source/sf_app/code/include/sf_storeMng.h index 964fe5d02..f39e3d325 100644 --- a/code/application/source/sf_app/code/include/sf_storeMng.h +++ b/code/application/source/sf_app/code/include/sf_storeMng.h @@ -41,7 +41,7 @@ extern "C" { } while (0) -typedef enum { +typedef enum { SF_SD_FORMAT_SUCUSS = 0, SF_SD_FORMAT_NO_CARD = 1, SF_SD_FORMAT_NOT_SUPPORT_FAT =2, @@ -69,6 +69,7 @@ SF_SD_STATUS_E sf_sd_status_get(void); SINT32 sf_sd_status_set(SF_SD_STATUS_E enStatus); +UINT32 sf_delete_send_flie_list(void); #ifdef __cplusplus #if __cplusplus diff --git a/code/application/source/sf_app/code/include/sf_wifi_svr.h b/code/application/source/sf_app/code/include/sf_wifi_svr.h index 83f668f93..83e8182d3 100644 --- a/code/application/source/sf_app/code/include/sf_wifi_svr.h +++ b/code/application/source/sf_app/code/include/sf_wifi_svr.h @@ -49,10 +49,8 @@ #define SF_DCF_SD_ROOT "/mnt/sd/" /**< DCF File Name (it must be 4-characters) */ #define SD_PATH SF_DCF_SD_ROOT //"/sdcard/mmcblk0p1" //mnt/hgfs -#define THUMB_PATH SD_PATH "Thumb" +#define THUMB_PATH SF_SEND_LIST_DIR #define THUMB_HD_PATH SD_PATH "/DCIM/THUMB/LARGE" -#define SF_DCF_SD_ROOT2 "/sdcard/mmcblk0p1/" /**< DCF File Name (it must be 4-characters) */ -#define SD_PATH2 SF_DCF_SD_ROOT2 //"/sdcard/mmcblk0p1" //mnt/hgfs /*typedef enum { POWEROFF_COUNTDOWN = 1, diff --git a/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c b/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c index a64c81313..f96809766 100644 --- a/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c @@ -21,6 +21,8 @@ extern "C" { #include "sf_common.h" #include "sf_commu_mcu_reg.h" #include "sf_datahttp.h" +#include "sf_service.h" +#include "sf_ftp.h" unsigned long int LocateTime = 0; @@ -4012,6 +4014,224 @@ void sf_get_send_video_fname(UINT8 *videoDirKey, UINT8 *videoFname) } +void sf_gprs_init(UINT32 param) +{ + UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + SF_FN_PARAM_S stpfncallback = { 0 }; + stpfncallback.pstParam = sf_customer_param_get(); + stpfncallback.pstaticParam = sf_app_ui_para_get(); + + stpfncallback.pfn_AT_instruction_exit = (void *)app_disconnect_4g_module; + + sf_set_signal_ready(0); + eg91_register_net_manual(&stpfncallback); + + if(puiPara->GprsMode == 1) + { + if(sf_connect_ftps_server() == SUCCESS) + { + printf("open ftps ok\n"); + } + else + { + printf("open ftps fail, reconnect\n"); + if(sf_connect_ftps_server() == SUCCESS) + { + printf("open ftps ok\n"); + } + else + { + printf("open ftps fail\n"); + } + } + } +} + +/************************************************************************** +* F U N C T I O N D E C L A R A T I O N S * +**************************************************************************/ + +/************************************************* + Function: sf_sim7xxx_qsclk + Description: module sleep + Input: N/A + Output: N/A + Return: N/A + Others: N/A +*************************************************/ +UINT32 sf_sim_qsclk(UINT8 mode) //mode = 2, gprsmode = 1 +{ + SINT32 ret = 0; //0:start; 1:success; 2:timeout; 3:fail; + UINT8 time = 0; + UINT8 calltime = 0; + SF_SIM_E eSmsLocation = SMS_SIM_INIT_DTRUP; + int ttyRet = 0; + UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + + printf("[%s:%d] s\n", __FUNCTION__, __LINE__); + + if(SUCCESS != app_ttyusb_IsOpen()) + { + printf("%s:%d tty usb err", __FUNCTION__, __LINE__); + + if(sf_ttyusb_restart() != SUCCESS) + { + return ret; + } + } + + sf_gsm_para_buff_clear(); + + while(sf_app_while_flag()) + { + time++; + + if(time >= 100) + { + ret = SF_SIM_ERROR_AT_TIMEOUT; + sprintf((char *)logStr, "ReadMsg Wait Init Timeout.\n[ERROR]eSmsLocation=%d", eSmsLocation); + SLOGE(logStr); + time = 0; + return ret; + } + + sf_gsm_para_buff_clear(); + + sf_hal_ttyusb2_read(gsmPara, 200); + printf("---time:%d---eSmsLocation:%d---\ngsmPara:%s\n", time, eSmsLocation, gsmPara); + + switch(eSmsLocation) + { + case SMS_SIM_INIT_DTRUP: + + if(strstr((const char *)gsmPara, "OK")) + { + strcpy((char *)gsmPara, "AT+QSCLK=1\r"); //sleep + ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); + SF_CHECK_RETURN(ttyRet, SF_SIM_ERROR_AT_TIMEOUT); + eSmsLocation = SMS_SIM_INIT_EXIT; + } + else if(strstr((const char *)gsmPara, "ERROR")) + { + goto SF_RETURN; + } + else + { + strcpy((char *)gsmPara, "AT\r"); //sleep + ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); + SF_CHECK_RETURN(ttyRet, SF_SIM_ERROR_AT_TIMEOUT); + + if(!puiPara->GprsMode) + { + sf_sleep_ms(800); + } + } + + break; + + case SMS_SIM_INIT_EXIT: + + if(strstr((const char *)gsmPara, "OK")) + { + goto SF_RETURN; + } + else + { + calltime++; + + if(calltime > 20) + { + ret = SF_SIM_ERROR_AT_TIMEOUT; + sprintf((char *)logStr, "[%s:%d]ErrorCode=0x%08x,AT+QSCLK Timeout.", __FUNCTION__, __LINE__, ret); + SLOGE(logStr); + goto SF_RETURN; + } + } + + break; + + default: + break; + } + } + + SF_RETURN: + + printf("[%s:%d] ret:%d\n", __FUNCTION__, __LINE__, ret); + return ret; +} + +/************************************************* + Function: sf_4g_module_sleep + Description: 4g module enter sleep mode + Input: N/A + Output: N/A + Return: N/A + Others: N/A +*************************************************/ +void sf_4g_module_sleep(void) +{ + UIMenuStoreInfo *pPara = sf_app_ui_para_get(); + + if((pPara->GpsSwitch) && (pPara->NeedTimeSyncStartUp == 1)) + { + return; + } + + sf_sim_qsclk(1); + return; +} + +/************************************************* + Function: sf_4g_set_module_minimun_fun + Description: 4g module enter minimun fun + Input: N/A + Output: N/A + Return: N/A + Others: N/A +*************************************************/ +void sf_4g_set_module_minimun_fun(void) +{ + UIMenuStoreInfo *pPara = sf_app_ui_para_get(); + UINT8 time = 25; + UINT8 responseOk = 0; + + printf("%s", __FUNCTION__); + + if(/*(pPara->GpsSwitch) && */(pPara->NeedTimeSyncStartUp == 1) || pPara->FristSendDailyAndGps) + { + return; + } + + SF_STRCPY(gsmPara, "AT+CGATT=0\r"); + sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); + + while(time--) + { + sf_hal_ttyusb2_read(gsmPara, 200); + + if(SF_STRSTR(gsmPara, "OK")) + { + printf("set CGATT=%s\n", gsmPara); + responseOk = 1; + break; + } + } + + if(responseOk) + { + SF_STRCPY(gsmPara, "AT+CFUN=0\r"); + sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); + sf_hal_ttyusb2_read(gsmPara, 200); + printf("set minimun_fun=%s\n", gsmPara); + } + else + { + printf("AT+CGATT timeout\n"); + } +} + + #ifdef __cplusplus #if __cplusplus } diff --git a/code/application/source/sf_app/code/source/4gMng/sf_ftp.c b/code/application/source/sf_app/code/source/4gMng/sf_ftp.c index bc93f9cda..c59649d2e 100644 --- a/code/application/source/sf_app/code/source/4gMng/sf_ftp.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_ftp.c @@ -2147,6 +2147,1154 @@ SINT32 sf_4g_module_ota_ftp(void) return sts; } + +/************************************************* + Function: sf_connect_ftps_server + Description: connect ftps server + Input: N/A + Output: N/A + Return: SUCCESS/FAIL + Others: N/A +*************************************************/ +UINT32 sf_connect_ftps_server(void) +{ + UINT32 ftpOpenOk = FAIL; + #if 0 + UINT32 location = FTP_ATQICSGP; + UINT32 sts = 0; + UINT16 time = 0; + UINT16 calltime=0; + UINT8 pdpIndex = 0; + SINT32 ttyRet = 0; + + uiPara_t *pPara = appUiParaGet(); + + printf("sf_Connect_ftps_server s\n"); + + while((sts == 0) && (!IS_USB_IN) && (POWEROFF != 1) && (ModuleUpdating != 1) && (FwUpdate == 0)) + { + if(!ConfigureModeFlag) + sf_mcu_dataready_get(); //Read MCU must be after reading uart data + + time++; + if(time >= 300) + { + printf("connect ftps timeout!\n"); + location = FTP_JPG0; + time = 250; + } + + sf_4g_get_data(gsmPara, 200, 1); + printf("time=%d mmc=%d\n", time, location); + sf_tty_data_printf(gsmPara); + + switch(location) + { + case FTP_ATQICSGP: + if(SF_STRSTR(pPara->Sim4gApn, APN_4G_VERIZON)) + { + pdpIndex = V_PDP_INDEX; + SF_SPRINTF(gsmPara,"AT+QICSGP=%d\r", V_PDP_INDEX); + location = FTP_ATQICSGP1; + } + else if(SF_STRSTR(pPara->Sim4gApn, APN_4G_ATT)) + { + pdpIndex = A_PDP_INDEX; + SF_SPRINTF(gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r",A_PDP_INDEX, pPara->Sim4gApn,pPara->Sim4gUserName,pPara->Sim4gPassword); + location = FTP_ATQFTPCFG0; + } + else + { + pdpIndex = E_PDP_INDEX; + SF_SPRINTF(gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r",E_PDP_INDEX, pPara->Sim4gApn,pPara->Sim4gUserName,pPara->Sim4gPassword); + location = FTP_ATQFTPCFG0; + } + + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + + break; + + case FTP_ATQICSGP1: + if(SF_STRSTR(gsmPara, "OK")) + { + if(SF_STRSTR(gsmPara, "+QICSGP: 0") || SF_STRSTR(gsmPara, "+QICSGP: 1,\"\"")) + { + SF_SPRINTF(gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r",V_PDP_INDEX, pPara->Sim4gApn,pPara->Sim4gUserName,pPara->Sim4gPassword); + } + else + { + SF_SPRINTF(gsmPara, "AT\r"); + } + + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + location = FTP_ATQFTPCFG0; + } + break; + + case FTP_ATQFTPCFG0: + if(SF_STRSTR(gsmPara, "OK")) + { + SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"contextid\",%d\r", pdpIndex); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + location++; + } + break; + + case FTP_ATQFTPCFG1: + SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"account\",\"%s\",\"%s\"\r",pPara->FtpUserName,pPara->FtpPassWord); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + #if SF_NEW_AT_FLOW + location = FTP_QSSLCFG0; + #else + location = FTP_ATQFTPCFG2; + #endif + break; + + case FTP_ATQFTPCFG2: + SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"filetype\",0\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + location++; + break; + + case FTP_ATQFTPCFG3: + SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"transmode\",1\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + location=FTP_QSSLCFG0; + break; + + case FTP_QSSLCFG0: + SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"restenable\",0\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + location++; + break; + + case FTP_QSSLCFG1: + SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"ssltype\",2\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + location++; + break; + + case FTP_QSSLCFG2: + SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"sslctxid\",1\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + #if SF_NEW_AT_FLOW + if(sf_pdp_flg_get()) + { + location = FTP_ATQFTPCFG5; + } + else + { + location = FTP_ATQQIACT; + } + #else + location = FTP_QSSLCFG3; + #endif + break; + + case FTP_QSSLCFG3: + SF_SPRINTF(gsmPara, "AT+QSSLCFG=\"ciphersuite\",1,0xffff\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + location++; + break; + + case FTP_QSSLCFG4: + SF_SPRINTF(gsmPara, "AT+QSSLCFG=\"seclevel\",1,0\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + location++; + break; + + case FTP_QSSLCFG5: + SF_SPRINTF(gsmPara, "AT+QSSLCFG=\"sslversion\",1,4\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + if(sf_pdp_flg_get()) + { + location = FTP_ATQFTPOPEN; + } + else + { + location = FTP_ATQQIACT; + } + break; + + case FTP_ATQQIACT: + if(SF_STRSTR(gsmPara, "OK")) + { + SF_SPRINTF(gsmPara, "AT+QIACT=%d\r", pdpIndex); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + location = FTP_ATQFTPCFG4; + calltime = 0; + printf("calltime=%d\n",calltime); + appTimeDelayMs(1000); + } + break; + + case FTP_ATQFTPCFG4: + if(SF_STRSTR(gsmPara, "OK")) + { + sf_pdp_flg_set(1); + calltime=0; + SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"rsptimeout\",30\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + location=FTP_ATQFTPOPEN; + } + else if(SF_STRSTR(gsmPara,"ERROR")) + { + calltime++; + printf("calltime++=%d\n",calltime); + + if(calltime<6) + { + SF_SPRINTF(gsmPara, "AT+QIACT=%d\r", pdpIndex); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + appTimeDelayMs(1800); + } + else + { + sf_error_log((SINT8 *)"[ERROR]FTP AT+QIACT over try 6 times"); + location=FTP_JPG0; + calltime=0; + } + } + break; + + case FTP_ATQFTPCFG5: + SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"rsptimeout\",30\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + location=FTP_ATQFTPOPEN; + break; + + case FTP_ATQFTPOPEN: + if(SF_STRSTR(gsmPara, "OK")) + { + sf_pdp_flg_set(1); + location = FTP_ATQFTPCFG; + calltime=0; + SF_SPRINTF(gsmPara, "AT+QFTPOPEN=\"%s\",%s\r",pPara->FtpIp,pPara->FtpPort); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + } + + break; + + case FTP_ATQFTPCFG: + if(SF_STRSTR(gsmPara, "+QFTPOPEN:")) + { + if(SF_STRSTR(gsmPara, "+QFTPOPEN: 0")) + { + ftpOpenOk = SUCCESS; + location = FTP_CLOSE; + } + else + { + sf_error_log((SINT8 *)gsmPara); + sf_error_log((SINT8 *)"FTP Open Failed."); + location = FTP_JPG0; + } + } + else if(SF_STRSTR(gsmPara, "+CME ERROR")) + { + sf_error_log((SINT8 *)gsmPara); + sf_error_log((SINT8 *)"FTP Open error."); + location = FTP_JPG0; + } + break; + + case FTP_CLOSE: + SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + location = FTP_JPG0; + break; + + case FTP_JPG0: + + calltime=0; + SF_SPRINTF(gsmPara, "AT+QIDEACT=%d\r", pdpIndex); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + sf_pdp_flg_set(0); + location = FTP_JPG1; + break; + + case FTP_JPG1: + if(SF_STRSTR(gsmPara, "OK")) + { + sts = SF_FTP_SUCCESS; + } + else + { + calltime++; + if(calltime % 10) + { + SF_SPRINTF(gsmPara, "AT+QIDEACT=%d\r", pdpIndex); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); + sf_pdp_flg_set(0); + } + } + break; + } + + } + + if(ftpOpenOk == FAIL) + { + sf_error_log((SINT8 *)"connect ftps fail\n"); + } + + FtpOpenOk = ftpOpenOk; + #endif + return ftpOpenOk; +} + + +/************************************************* + Function: sf_camera_ota_ftp + Description: camera ftp ota update + Input: N/A + Output: N/A + Return: N/A + Others: N/A +*************************************************/ +UINT32 sf_camera_ota_ftp(void) +{ + #if 0 + UINT32 location = CAMERA_OTA_FTP_FRIST; + UINT32 sts = OTA_NOUPDATE; /*0:updating 1:no update 2:update fail 3:update success*/ + UINT32 errorCode = 0; + UINT32 calltime=0; + UINT32 time = 0; + UINT8 ftpIp[40]= {0}; + UINT8 ftpPort[6]= {0}; + UINT8 ftpUsername[40]= {0}; + UINT8 ftpPassword[40]= {0}; + UINT8 pdpInedx = 0; + UINT32 ret = 0; + UINT32 fileSize = 0; + UINT32 cfgFileSize = 0; + UINT32 brnFileSize = 0; + UINT32 rxFileSize = 0; + UINT8 *pTemp = NULL; + UINT8 *pTemp1 = NULL; + UINT8 *pTemp2 = NULL; + UINT8 *pTemp3 = NULL; + UINT8 *pTemp4 = NULL; + SF_NET_TRANSFER_S *transfer = NULL; + SINT32 ttyRet = 0; + + uiPara_t *puiPara = appUiParaGet(); + //sfPara_t* pSifarPara = sf_ParaGet(); + + printf("sf_camera_ota_ftp s\n"); + + appBtnDisable(BTN_ALL); + //appBtnDisable(BTN_S1); + + if(isSignalReady==0) + { + printf("no signal no update\n"); + appBtnEnable(BTN_ALL); + return sts; + } + + transfer = sp5kMalloc(sizeof(SF_NET_TRANSFER_S)); + + if (transfer == NULL) + { + printf("sf_camera_ota_ftp malloc fail\n"); + appBtnEnable(BTN_ALL); + sts = OTA_FAIL; + return sts; + } + + SF_STRCPY(ftpIp, puiPara->OtaFtpIp); + SF_STRCPY(ftpPort, puiPara->OtaFtpPort); + SF_STRCPY(ftpUsername, puiPara->OtaFtpUserName); + SF_STRCPY(ftpPassword, puiPara->OtaFtpPassWord); + + sts = OTA_UPDATING; + + sf_mcu_wdg_set(15); + sf_sys_status_led_set(SF_LED_SYS_STATE_UPDATE); + sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 1); + + while(sts == OTA_UPDATING) + { + time++; + if(time >= 300) + { + if((location > CAMERA_OTA_FTP_QIACT) && (location < CAMERA_OTA_FTP_QIDEACT)) + { + location = CAMERA_OTA_FTP_QIDEACT; + errorCode = SF_OTA_ERROR_TIME_OUT; + time = 250; + calltime = 0; + SF_SPRINTF(gsmPara, "AT\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + } + else + { + sts = OTA_TIME_OUT; + } + + printf("update timeout!\n"); + } + + sf_4g_get_data(gsmPara, 200, 1); + + if(location != CAMERA_OTA_FTP_SAVE_BRN) + { + sf_tty_data_printf(gsmPara); + } + + switch(location) + { + case CAMERA_OTA_FTP_FRIST: + SF_SPRINTF(gsmPara, "AT+QFDEL=\"*\"\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + location = OTA_FTP_QICSGP; + + break; + + case CAMERA_OTA_FTP_QICSGP: + if(SF_STRSTR(gsmPara,"OK")) + { + if(SF_STRSTR(puiPara->Sim4gApn, APN_4G_VERIZON)) + { + pdpInedx = V_PDP_INDEX; + SF_SPRINTF(gsmPara,"AT+QICSGP=%d\r", V_PDP_INDEX); + location= CAMERA_OTA_FTP_QICSGP1; + } + else if(SF_STRSTR(puiPara->Sim4gApn, APN_4G_ATT)) + { + pdpInedx = A_PDP_INDEX; + SF_SPRINTF(gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r",A_PDP_INDEX, puiPara->Sim4gApn,puiPara->Sim4gUserName,puiPara->Sim4gPassword); + location=CAMERA_OTA_FTP_QIACT; + } + else + { + pdpInedx = E_PDP_INDEX; + SF_SPRINTF(gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r",E_PDP_INDEX, puiPara->Sim4gApn,puiPara->Sim4gUserName,puiPara->Sim4gPassword); + location=CAMERA_OTA_FTP_QIACT; + } + + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + } + + break; + + case CAMERA_OTA_FTP_QICSGP1: + if(SF_STRSTR(gsmPara, "OK")) + { + if(SF_STRSTR(gsmPara, "+QICSGP: 0") || SF_STRSTR(gsmPara, "+QICSGP: 1,\"\"")) + { + SF_SPRINTF(gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r",V_PDP_INDEX, puiPara->Sim4gApn,puiPara->Sim4gUserName,puiPara->Sim4gPassword); + } + else + { + SF_SPRINTF(gsmPara, "AT\r"); + } + + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + location = CAMERA_OTA_FTP_QIACT; + } + break; + + case CAMERA_OTA_FTP_QIACT: + if(SF_STRSTR(gsmPara, "OK")) + { + if((puiPara->GprsMode == 1) && sf_pdp_flg_get()) + { + SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"contextid\",%d\r", pdpInedx); + location = CAMERA_OTA_FTP_QFTPCFG2; + } + else + { + SF_SPRINTF(gsmPara, "AT+QIACT=%d\r", pdpInedx); + location = CAMERA_OTA_FTP_QFTPCFG1; + } + + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + calltime=0; + } + + break; + + case CAMERA_OTA_FTP_QFTPCFG1: + if(SF_STRSTR(gsmPara, "OK")) + { + sf_pdp_flg_set(1); + SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"contextid\",%d\r", pdpInedx); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + location = CAMERA_OTA_FTP_QFTPCFG2; + calltime=0; + } + else if(SF_STRSTR(gsmPara,"ERROR")) + { + calltime++; + if(calltime < 6) + { + SF_SPRINTF(gsmPara, "AT+QIACT=%d\r", pdpInedx); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + appTimeDelayMs(1800); + } + else + { + location = CAMERA_OTA_FTP_QIDEACT; + calltime=0; + errorCode = SF_OTA_ERROR_QIACT; + sf_error_log((SINT8 *)"[ERROR]CAMERA_OTA_FTP QIACT over try 6 times"); + SF_STRCPY(gsmPara, "AT\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + } + } + + break; + + case CAMERA_OTA_FTP_QFTPCFG2: + //if(SF_STRSTR(gsmPara, "OK")) + { + SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"account\",\"%s\",\"%s\"\r", ftpUsername, ftpPassword); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + location = CAMERA_OTA_FTP_QFTPCFG3; + } + break; + + case CAMERA_OTA_FTP_QFTPCFG3: + //if(SF_STRSTR(gsmPara, "OK")) + { + SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"filetype\",1\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + location = CAMERA_OTA_FTP_QFTPCFG4; + } + + break; + + case CAMERA_OTA_FTP_QFTPCFG4: + //if(SF_STRSTR(gsmPara, "OK")) + { + SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"transmode\",1\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + location=CAMERA_OTA_FTP_QFTPCFG5; + } + + break; + + case CAMERA_OTA_FTP_QFTPCFG5: + //if(SF_STRSTR(gsmPara, "OK")) + { + SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"restenable\",0\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + location=CAMERA_OTA_FTP_QFTPOPEN; + } + + break; + + case CAMERA_OTA_FTP_QFTPOPEN: + if(SF_STRSTR(gsmPara, "OK")) + { + SF_SPRINTF(gsmPara, "AT+QFTPOPEN=\"%s\",%s\r", ftpIp, ftpPort); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + location = CAMERA_OTA_FTP_QFTPNLST; + } + + break; + + case CAMERA_OTA_FTP_QFTPNLST: + if(SF_STRSTR(gsmPara, "+QFTPOPEN:")) + { + if(SF_STRSTR(gsmPara, "+QFTPOPEN: 0")) + { + SF_SPRINTF(gsmPara, "AT+QFTPNLST=\"%s\",\"COM:\"\r", CAM_OTA_DIR); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + location = CAMERA_OTA_FTP_QFTPGETCFG; + } + else + { + location = CAMERA_OTA_FTP_QIDEACT; + errorCode = SF_OTA_ERROR_FTP_OPEN; + sf_error_log((SINT8 *)"CAMERA_OTA_FTP Open Failed."); + SF_STRCPY(gsmPara, "AT\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + } + } + else if(SF_STRSTR(gsmPara, "+CME ERROR")) + { + location = CAMERA_OTA_FTP_QIDEACT; + errorCode = SF_OTA_ERROR_FTP_OPEN; + sf_error_log((SINT8 *)"CAMERA_OTA_FTP QFTPOPEN CME ERROR."); + SF_STRCPY(gsmPara, "AT\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + } + + break; + + case CAMERA_OTA_FTP_QFTPGETCFG: + if(SF_STRSTR(gsmPara, "+QFTPNLST:")) + { + if((SF_STRSTR(gsmPara, SF_FW_FILE_NAME)!= NULL) && (SF_STRSTR(gsmPara, SF_FW_CFG_FILE_NAME)!= NULL)) + { + #if SF_4G_USB_NET_DOWNLOAD + SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + location = CAMERA_OTA_FTP_QIDEACT; + #else + SF_SPRINTF(gsmPara, "AT+QFTPGET=\"%s/%s\",\"%s\"\r", CAM_OTA_DIR, SF_FW_CFG_FILE_NAME, SF_FW_CFG_FILE_NAME); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + location = CAMERA_OTA_FTP_QFTPGETBRN; + calltime = 0; + #endif + } + else + { + location = CAMERA_OTA_FTP_QIDEACT; + errorCode = SF_OTA_ERROR_FTP_NLST; + sf_error_log((SINT8 *)"CAMERA_OTA_FTP NO NEED UPDATA FILE."); + SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + } + } + else if(SF_STRSTR(gsmPara, "+CME ERROR")) + { + location = CAMERA_OTA_FTP_QIDEACT; + errorCode = SF_OTA_ERROR_FTP_NLST; + sf_error_log((SINT8 *)"CAMERA_OTA_FTP QFTPNLST CME ERROR."); + SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + } + + break; + + case CAMERA_OTA_FTP_QFTPGETBRN: + if(SF_STRSTR(gsmPara, "+QFTPGET:")) + { + if(SF_STRSTR(gsmPara, "+QFTPGET: 0")) + { + SF_SPRINTF(gsmPara, "AT+QFTPGET=\"%s/%s\",\"%s\"\r", CAM_OTA_DIR, SF_FW_FILE_NAME, SF_FW_FILE_NAME); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + location = CAMERA_OTA_FTP_QFTPCLOSE; + } + else + { + location = CAMERA_OTA_FTP_QIDEACT; + errorCode = SF_OTA_ERROR_FTP_GET; + sf_error_log((SINT8 *)"CAMERA_OTA_FTP GET CFG FILE FAIL."); + SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + } + + calltime = 0; + } + else if(SF_STRSTR(gsmPara, "+CME ERROR")) + { + location= CAMERA_OTA_FTP_QIDEACT; + errorCode = SF_OTA_ERROR_FTP_GET; + calltime = 0; + sf_error_log((SINT8 *)"CAMERA_OTA_FTP QFTPGET CME ERROR."); + SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + } + else + { + time = 0; + calltime++; + + if(calltime > 150) + { + location= CAMERA_OTA_FTP_QIDEACT; + errorCode = SF_OTA_ERROR_FTP_GET; + calltime = 0; + sf_error_log((SINT8 *)"CAMERA_OTA_FTP GET CFG FILE TIMEOUT."); + SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + } + } + + break; + + case CAMERA_OTA_FTP_QFTPCLOSE: + if(SF_STRSTR(gsmPara, "+QFTPGET:")) + { + if(SF_STRSTR(gsmPara, "+QFTPGET: 0")) + { + SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + location = CAMERA_OTA_FTP_QIDEACT; + } + else + { + location = CAMERA_OTA_FTP_QIDEACT; + errorCode = SF_OTA_ERROR_FTP_GET; + sf_error_log((SINT8 *)"CAMERA_OTA_FTP GET BRN FILE FAIL."); + SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + } + + calltime = 0; + } + else if(SF_STRSTR(gsmPara, "+CME ERROR")) + { + location= CAMERA_OTA_FTP_QIDEACT; + errorCode = SF_OTA_ERROR_FTP_GET; + calltime = 0; + sf_error_log((SINT8 *)"CAMERA_OTA_FTP QFTPGET CME ERROR."); + SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + } + else + { + time = 0; + calltime++; + appTimeDelayMs(800); + + if(calltime > 300) + { + location= CAMERA_OTA_FTP_QIDEACT; + errorCode = SF_OTA_ERROR_FTP_GET; + calltime = 0; + sf_error_log((SINT8 *)"CAMERA_OTA_FTP GET BRN FILE TIMEOUT."); + SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + } + } + + break; + + case CAMERA_OTA_FTP_QIDEACT: + //if(SF_STRSTR(gsmPara, "OK")) + { + calltime = 0; + SF_SPRINTF(gsmPara, "AT+QIDEACT=%d\r", pdpInedx); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + sf_pdp_flg_set(0); + + if(errorCode == 0) + location = CAMERA_OTA_FTP_READSIZE; + else + location = CAMERA_OTA_FTP_END; + } + + break; + + case CAMERA_OTA_FTP_READSIZE: + if(SF_STRSTR(gsmPara, "OK")) + { + #if SF_4G_USB_NET_DOWNLOAD + SF_STRCPY(transfer->ServerIp, ftpIp); + SF_STRCPY(transfer->ServerPort, ftpPort); + //sf_url_convert(ftpUsername, transfer->ServerUsername); + //sf_url_convert(ftpPassword, transfer->ServerPassword); + SF_STRCPY(transfer->ServerUsername, ftpUsername); + SF_STRCPY(transfer->ServerPassword, ftpPassword); + SF_STRCPY(transfer->ServerFileDir, CAM_OTA_DIR); + SF_STRCPY(transfer->ServerFileName, SF_FW_CFG_FILE_NAME); + SF_STRCPY(transfer->ClientFilePath, SF_FW_CFG_FILE_PATH); + + if (sf_4g_usb_net_ftp_download(transfer) != 1) + { + printf("download cfg file err\n"); + sf_error_log((SINT8 *)"download cfg file err\n"); + errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; + location = CAMERA_OTA_FTP_END; + break; + } + + SF_STRCPY(transfer->ServerFileName, SF_FW_FILE_NAME); + SF_STRCPY(transfer->ClientFilePath, SF_FW_FILE_PATH); + + if (sf_4g_usb_net_ftp_download(transfer) != 1) + { + printf("download brn file err\n"); + sf_error_log((SINT8 *)"download brn file err\n"); + errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; + location = CAMERA_OTA_FTP_END; + } + else + { + sts = OTA_SUCCESS; + } + #else + SF_SPRINTF(gsmPara, "AT+QFLST=\"*\"\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + location = CAMERA_OTA_FTP_DOWNLOAD_CFG; + calltime = 0; + #endif + } + else if(SF_STRSTR(gsmPara,"ERROR")) + { + calltime++; + if(calltime < 6) + { + SF_SPRINTF(gsmPara, "AT+QIDEACT=%d\r", pdpInedx); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + appTimeDelayMs(1800); + sf_pdp_flg_set(0); + } + else + { + location = CAMERA_OTA_FTP_END; + calltime=0; + errorCode = SF_OTA_ERROR_QIDEACT; + sf_error_log((SINT8 *)"[ERROR]OTA_FTP QIDEACT over try 6 times"); + SF_STRCPY(gsmPara, "AT\r"); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + } + } + + break; + + case CAMERA_OTA_FTP_DOWNLOAD_CFG: + if(SF_STRSTR(gsmPara, "+QFLST:")) + { + UINT8 str[30] = {0}; + + SF_SPRINTF(str, "+QFLST: \"%s\",", SF_FW_CFG_FILE_NAME); + pTemp1 = SF_STRSTR(gsmPara, str); + SF_SPRINTF(str, "+QFLST: \"%s\",", SF_FW_FILE_NAME); + pTemp2 = SF_STRSTR(gsmPara, str); + + if((pTemp1 != NULL) && (pTemp2 != NULL)) + { + pTemp1 = pTemp1+28; + pTemp2 = pTemp2+28; + + pTemp3 = SF_STRTOK(pTemp1, "\r\n"); + pTemp4 = SF_STRTOK(pTemp2, "\r\n"); + + printf("pTemp1=%s\n", pTemp1); + printf("pTemp2=%s\n", pTemp2); + printf("pTemp3=%s\n", pTemp3); + printf("pTemp4=%s\n", pTemp4); + cfgFileSize = atoi((const char *)pTemp3); + brnFileSize = atoi((const char *)pTemp4); + + printf("cfgSzie=%d\n", cfgFileSize); + printf("brnSzie=%d\n", brnFileSize); + + if((brnFileSize < cfgFileSize) || (brnFileSize == 0)) + { + sf_error_log((SINT8 *)"CAMERA_OTA_FTP QFLST FILE SIZE ERROR."); + location = CAMERA_OTA_FTP_END; + errorCode = OTA_ERROR_FTP_DOWNLOAD; + break; + } + + DownloadFlieBuff = sp5kMalloc(brnFileSize + 300); + + if(DownloadFlieBuff != NULL) + { + DownloadFileSize = cfgFileSize; + DownloadIndex = 0; + printf("download %s to DSP size=%d\n", SF_FW_CFG_FILE_NAME, DownloadFileSize); + DownloadFrom4gFlag = TRUE; + SF_SPRINTF(gsmPara, "AT+QFDWL=\"%s\"\r", SF_FW_CFG_FILE_NAME); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + location = CAMERA_OTA_FTP_DOWNLOAD_BRN; + } + else + { + printf("memory malloc fial\n"); + sf_error_log((SINT8 *)"CAMERA_OTA_FTP DOWNLOAD CFG NO MEMORY ERROR."); + location = CAMERA_OTA_FTP_END; + errorCode = OTA_ERROR_FTP_DOWNLOAD; + } + } + else + { + sf_error_log((SINT8 *)"CAMERA_OTA_FTP QFLST NULL ERROR."); + location = CAMERA_OTA_FTP_END; + errorCode = OTA_ERROR_FTP_DOWNLOAD; + } + } + else if(SF_STRSTR(gsmPara, "+CME ERROR")) + { + sf_error_log((SINT8 *)"OTA_FTP QFOPEN CME ERROR."); + location = CAMERA_OTA_FTP_END; + errorCode = OTA_ERROR_FTP_DOWNLOAD; + } + + break; + + case CAMERA_OTA_FTP_DOWNLOAD_BRN: + + if(rxFileSize == DownloadIndex) + { + *(DownloadFlieBuff + rxFileSize) = '\0'; + printf("rxFileSize=%d\n", rxFileSize); + DownloadFrom4gFlag = FALSE; + DownloadIndex = 0; + calltime = 0; + + pTemp = SF_STRSTR(DownloadFlieBuff, "CONNECT"); + + if(pTemp == NULL) + { + printf("download cfg file err\n"); + sf_error_log((SINT8 *)"download cfg file err\n"); + location = CAMERA_OTA_FTP_END; + errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; + break; + } + + pTemp1 = pTemp + 9; + pTemp2 = pTemp1 + DownloadFileSize + 2; + + //pTemp = DownloadFlieBuff + DownloadFileSize + 1; + + printf("CAMERA_OTA_FTP_DOWNLOAD_BRN:pTemp2=%s", pTemp2); + + pTemp3 = SF_STRSTR(pTemp2, "+QFDWL: "); + + if(pTemp3 == NULL) + { + printf("download cfg file err\n"); + sf_error_log((SINT8 *)"download cfg file err\n"); + location = CAMERA_OTA_FTP_END; + errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; + break; + } + + pTemp3 = pTemp3 + 8; + pTemp4 = SF_STRTOK(pTemp3, ","); + fileSize = atoi((const char *)pTemp4); + + if(DownloadFileSize != fileSize) + { + printf("download cfg file size err\n"); + sf_error_log((SINT8 *)"download cfg file size err\n"); + location = CAMERA_OTA_FTP_END; + errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; + break; + } + + ret = sf_save_file(SF_FW_CFG_FILE_PATH, pTemp1, DownloadFileSize); + + if(ret == SUCCESS) + { + DownloadFileSize = brnFileSize; + printf("download %s to DSP size=%d\n", SF_FW_FILE_NAME, DownloadFileSize); + DownloadIndex = 0; + rxFileSize = 0; + DownloadFrom4gFlag = TRUE; + SF_SPRINTF(gsmPara, "AT+QFDWL=\"%s\"\r", SF_FW_FILE_NAME); + ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); + location = CAMERA_OTA_FTP_SAVE_BRN; + } + else + { + printf("save cfg file err\n"); + sf_error_log((SINT8 *)"save cfg file err\n"); + location = CAMERA_OTA_FTP_END; + errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; + } + } + else + { + rxFileSize = DownloadIndex; + time = 0; + calltime++; + printf("rxFileSize=%d calltime=%d\n", rxFileSize, calltime); + + if(calltime > 300) + { + DownloadFrom4gFlag = FALSE; + DownloadIndex = 0; + sf_error_log((SINT8 *)"CAMERA_OTA_FTP DOWNLOAD CFG TO DSP TIMEOUT."); + location= CAMERA_OTA_FTP_END; + errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; + calltime = 0; + } + } + + break; + + case CAMERA_OTA_FTP_SAVE_BRN: + if(rxFileSize == DownloadIndex) + { + *(DownloadFlieBuff + rxFileSize) = '\0'; + printf("rxFileSize=%d\n", rxFileSize); + DownloadFrom4gFlag = FALSE; + DownloadIndex = 0; + calltime = 0; + pTemp = SF_STRSTR(DownloadFlieBuff, "CONNECT"); + + if(pTemp == NULL) + { + printf("download brn file err\n"); + sf_error_log((SINT8 *)"download brn file err\n"); + location = CAMERA_OTA_FTP_END; + errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; + break; + } + + pTemp1 = pTemp + 9; + pTemp2 = pTemp1 + DownloadFileSize + 2; + + pTemp3 = SF_STRSTR(pTemp2, "+QFDWL: "); + + if(pTemp3 == NULL) + { + printf("download brn file err\n"); + sf_error_log((SINT8 *)"download brn file err\n"); + location = CAMERA_OTA_FTP_END; + errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; + break; + } + + pTemp3 = pTemp3 + 8; + pTemp4 = SF_STRTOK(pTemp3, ","); + fileSize = atoi((const char *)pTemp4); + + if(DownloadFileSize != fileSize) + { + printf("download brn file size err\n"); + sf_error_log((SINT8 *)"download brn file size err\n"); + location = CAMERA_OTA_FTP_END; + errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; + break; + } + + ret = sf_save_file(SF_FW_FILE_PATH, pTemp1, DownloadFileSize); + + if(ret == SUCCESS) + { + sts = OTA_SUCCESS; + } + else + { + printf("save brn file err\n"); + sf_error_log((SINT8 *)"save brn file err\n"); + errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; + location = CAMERA_OTA_FTP_END; + } + } + else + { + rxFileSize = DownloadIndex; + time = 0; + calltime++; + printf("rxFileSize=%d calltime=%d\n", rxFileSize, calltime); + appTimeDelayMs(800); + + if(calltime > 240) + { + DownloadFrom4gFlag = FALSE; + DownloadIndex = 0; + sf_error_log((SINT8 *)"CAMERA_OTA_FTP S BRN TO DSP TIMEOUT."); + location= CAMERA_OTA_FTP_END; + errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; + calltime = 0; + } + } + + break; + + case CAMERA_OTA_FTP_END: + sts = OTA_FAIL; + break; + } + } + + if(DownloadFlieBuff != NULL) + sp5kFree(DownloadFlieBuff); + + if(transfer != NULL) + sp5kFree(transfer); + + if(sf_is_enough_power_to_update() == FALSE) + { + appBtnEnable(BTN_ALL); + + return sts; + } + + sf_mcu_wdg_set(5); + + if(sts == OTA_SUCCESS) + { + if(sf_camera_sd_update() != SUCCESS) + { + sts = OTA_UPDATED_ERROR; + } + } + else + { + if(errorCode == SF_OTA_ERROR_FTP_NLST) + { + sts = OTA_NOUPDATE; + sf_sys_status_led_set(SF_LED_SYS_STATE_NORMAL); + } + else + { + sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR); + } + } + + printf("Camera OTA Update sts:%d errorCode:%d\n", sts, errorCode); + + printf("sf_camera_ota_ftp e\n"); + + appTimeDelayMs(2000); + + appBtnEnable(BTN_ALL); + + if(sts == OTA_SUCCESS) + return SUCCESS; + #endif + return FAIL; +} + + #ifdef __cplusplus #if __cplusplus } diff --git a/code/application/source/sf_app/code/source/4gMng/sf_sms.c b/code/application/source/sf_app/code/source/4gMng/sf_sms.c index 73244ed24..496c8d2af 100644 --- a/code/application/source/sf_app/code/source/4gMng/sf_sms.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_sms.c @@ -23,6 +23,7 @@ #include "UIInfo/UIInfo.h" #include "sf_hal_ttyusb.h" #include "sf_param_common.h" +#include "sf_param_enum.h" #include "sf_sms.h" #include "sf_common.h" #include "sf_commu_mcu_reg.h" @@ -30,6 +31,12 @@ #include "sf_log.h" #include "sf_ftp.h" #include "sf_service.h" +#include "sf_file.h" +#include "sf_ledmng.h" +#include "sf_message_queue.h" +#include "sf_device.h" +#include "sf_storeMng.h" +#include "sf_commMng.h" /************************************************************************** * C O N S T A N T S * **************************************************************************/ @@ -54,6 +61,7 @@ UIMenuStoreInfo *pPara_sms_saved = NULL; SubImgList_t *pSubImgListHead = NULL; SubImgList_t *pSubVideoListHead = NULL; static SF_CAMERA_CMD_S CameraCmd = {0}; +BOOL NeedOffModule = FALSE; /************************************************************************** * G L O B A L D A T A * @@ -2293,4 +2301,377 @@ SINT32 sf_power_off_module_ota(void) } } return 0; -} \ No newline at end of file +} + + + +UINT32 sf_4g_module_sd_usb_update(UINT8 *upFname) +{ + UINT32 sts = OTA_NOUPDATE; /*0:updating 1:no update 2:update fail 3:update success*/ + char *arg[3] = {0}; + int ret = -1; + + printf("sf_4g_module_sd_usb_update s\n"); + + if(sf_is_enough_power_to_update() == FALSE) + { + return OTA_BATTERY_LOW; + } + + sf_set_module_update(1); + sf_sleep_ms(1000); + sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 1); + sf_sys_status_led_set(SF_LED_SYS_STATE_UPDATE); + arg[0] = "qFireUpd"; + arg[1] = "-f"; + arg[2] = (char *)upFname; + + //ret = firehose_main_entry(3, arg); + + sf_set_module_update(0); + sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 0); + printf("sf_4g_module_sd_usb_update e ret=%d\n", ret); + + if (ret == 0) + sts = OTA_SUCCESS; + else + sts = OTA_UPDATED_ERROR; + + if((sts == OTA_NOUPDATE) || (sts == OTA_SUCCESS)) + { + sf_sys_status_led_set(SF_LED_SYS_STATE_NORMAL); + } + else + { + sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR); + } + + return sts; +} + +/************************************************* + Function: sf_power_off_module_sd_update + Description: sf power off module sd update. + Input: N/A + Output: N/A + Return: 0:SUCCESS, errcode:FAIL + Others: N/A +*************************************************/ +SINT32 sf_power_off_module_sd_update(void) +{ + SINT32 ret = SF_FAILURE; + UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + UINT8 updateFileName[60] = {0}; + /*instant, hybrid mode*/ + if(CameraCmd.moduleUpdateOTA) + { + if(app_ttyusb_IsOpen() != SUCCESS) + { + CameraCmd.cameraRestart = 1; //usb error,need restart + } + else + { + ret = OTA_NOUPDATE; + if(sf_is_4g_module_usb_update_file_exist(updateFileName)) + { + ret = sf_4g_module_sd_usb_update(updateFileName); + } + + if(ret == OTA_UPDATED_ERROR || ret == OTA_SUCCESS || ret == OTA_VERTION_ERROR || ret == OTA_TIME_OUT) + { + if(CameraCmd.setPara) + pPara_sms_saved->NetWorkNeedSearch = 3; + else + puiPara->NetWorkNeedSearch = 3; + + sf_set_para_sava(); + } + } + } + return 0; +} +/************************************************* + Function: sf_power_off_module_sd_update + Description: sf power off module sd update. + Input: N/A + Output: N/A + Return: 0:SUCCESS, errcode:FAIL + Others: N/A +*************************************************/ +SINT32 sf_power_off_check_para(void) +{ + UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + + if(CameraCmd.setPara) + { + if (((puiPara->GprsMode == 1) && (pPara_sms_saved->GprsMode == 2)) || ((puiPara->GprsMode == 2) && (pPara_sms_saved->GprsMode == 1)) || ((puiPara->GprsMode == 0) && (pPara_sms_saved->GprsMode == 1))) + { + NeedOffModule = TRUE; + } + + memcpy((UINT8 *)puiPara, (UINT8 *)pPara_sms_saved, sizeof(UIMenuStoreInfo)); + free(pPara_sms_saved); + } + + return 0; +} + +/************************************************* + Function: sf_power_off_check_retset_para + Description: sf power off . + Input: N/A + Output: N/A + Return: 0:SUCCESS, errcode:FAIL + Others: N/A +*************************************************/ +SINT32 sf_power_off_check_retset_para(void) +{ + SF_MESSAGE_BUF_S stMessageBuf = {0}; + SF_PDT_PARAM_STATISTICS_S *pSifarPara = sf_statistics_param_get(); + if(CameraCmd.cameraReset) + { + //appUIParaReset(0); + sf_statistics_param_reset(pSifarPara); + //NeedSavePara = TRUE; + CameraCmd.setPara = 0; + + stMessageBuf.arg1 = SF_PARA_CMD_UPDATE; + stMessageBuf.cmdId = CMD_PARA; + sf_com_message_send_to_cardv(&stMessageBuf); + + } + + return 0; +} + +/************************************************* + Function: sf_power_off_chaeck_format_sd + Description: sf power off . + Input: N/A + Output: N/A + Return: 0:SUCCESS, errcode:FAIL + Others: N/A +*************************************************/ +SINT32 sf_power_off_check_format_sd(void) +{ + SF_MESSAGE_BUF_S stMessageBuf = {0}; + + if(CameraCmd.formatSD) + { + if((sf_in_card_exist()) && (sf_is_card())) + { + stMessageBuf.arg1 = CMD_SD_FORMAT; + stMessageBuf.cmdId = CMD_SD; + sf_com_message_send_to_cardv(&stMessageBuf); + } + } + return 0; +} + +/************************************************* + Function: sf_power_off_check_format_sd + Description: sf power off . + Input: N/A + Output: N/A + Return: 0:SUCCESS, errcode:FAIL + Others: N/A +*************************************************/ +SINT32 sf_power_off_check_sd(void) +{ + UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + /******************** SD cycle *************************/ + if((sf_in_card_exist() && (sf_is_card())) || (sf_get_mode_flag() == 1)) + { + //sf_ErrorLogCopyToCard(); + //sf_FlowLogCopyToCard(); + + if((puiPara->SdLoopSwitch) && (!sf_get_mode_flag())) + { + sf_sd_loopremove(SF_DCIM_DIR); + } + + if(sf_in_card_exist()) + { + if(sf_get_mode_flag() /*|| (PowerOnMode == PWR_ON_GPRS_INIT)*/) + sf_delete_send_flie_list(); + } + + /*check disk free size*/ + SF_STORE_ATTR_S storeattrs = {0}; + sf_sd_info_get(&storeattrs); + + printf("SD free=%dM/%dM\n", storeattrs.SDFree, storeattrs.SDTotalSize); + + if(storeattrs.SDFree < 30) /* 30MB */ + { + if(puiPara->SdLoopSwitch == 0) + { + sf_set_card_full(1); + } + } + } + return 0; +} + +SINT32 sf_power_off_check_gprs(void) +{ + UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + UINT8 PowerOnMode = sf_poweron_type_get(); + if((sf_get_mode_flag() == 0) && sf_get_sim_insert() && (puiPara->GprsSwitch) && (sf_get_power_off_flag() == 0)) + { + if((CameraCmd.cameraReset == 0) && (CameraCmd.cameraRestart == 0) && (puiPara->NetWorkNeedSearch != 3)) + { + if (((puiPara->GprsMode == 1) && sf_get_gprs_errno() && ((PowerOnMode == PWR_ON_DAILY_REPORT) || (((PowerOnMode == PWR_ON_PIR) || (PowerOnMode == PWR_ON_TIMELAPSE)) ))) + ||(CameraCmd.moduleUpdateOTA == 1) + || (NeedOffModule == TRUE)) + { + sf_mcu_wdg_set(5); + + if (sf_ttyusb_restart() == SUCCESS) + { + sf_gprs_init(0); + sf_set_para_sava(); + } + else + { + CameraCmd.cameraRestart = 1; //usb error,need restart + } + } + } + } +} + +/************************************************* + Function: sf_power_off_check_fw_update + Description: sf power off . + Input: N/A + Output: N/A + Return: 0:SUCCESS, errcode:FAIL + Others: N/A +*************************************************/ +SINT32 sf_power_off_check_fw_update(void) +{ + UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + + if(CameraCmd.firmwareUpdateOTA) + { + if(sf_in_card_exist() && sf_is_card()) + { + + if(app_ttyusb_IsOpen() != SUCCESS) + { + CameraCmd.cameraRestart = 1; //usb error,need restart + } + else + { + if(sf_camera_ota_ftp() == SUCCESS) + { + CameraCmd.setPara = 0; + CameraCmd.cameraRestart = 1; + } + else + { + if (puiPara->GprsMode != 0) + { + sf_mcu_wdg_set(5); + + if (sf_ttyusb_restart() == SUCCESS) + { + sf_gprs_init(0); + } + else + { + CameraCmd.cameraRestart = 1; //usb error,need restart + } + } + } + } + } + } + return 0; +} + +/************************************************* + Function: sf_power_off_check_module_sleep + Description: sf power off . + Input: N/A + Output: N/A + Return: 0:SUCCESS, errcode:FAIL + Others: N/A +*************************************************/ +SINT32 sf_power_off_check_module_sleep(void) +{ + UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + UINT8 PowerOnMode = sf_poweron_type_get(); + if(sf_get_sim_insert() && puiPara->GprsSwitch && (sf_get_fw_update() == 0) && (sf_get_power_off_flag() == 0) && (!CameraCmd.cameraRestart) && (puiPara->NetWorkNeedSearch != 3)) + { + if (!(sf_get_mode_flag() && sf_get_pir_statu_flag() == 0)) //setup mode, !go to pir mode, no set cfun or sleep + { + if(!((puiPara->SendType != 0) && ((PowerOnMode == PWR_ON_TIMELAPSE) || (PowerOnMode == PWR_ON_PIR)))) + { + if((puiPara->GprsMode != 0) && sf_get_module_sleep_flag())//hybrid mode 4G module keep sleep + { + if(puiPara->NetWorkNeedSearch != 3) + { + if(app_ttyusb_IsOpen() != SUCCESS) + { + CameraCmd.cameraRestart = 1; //usb error,need restart + } + else + { + sf_4g_module_sleep(); + } + } + } + else + { + if(app_ttyusb_IsOpen() != SUCCESS) + { + CameraCmd.cameraRestart = 1; //usb error,need restart + } + else + { + sf_4g_set_module_minimun_fun(); + } + } + } + } + } + + return 0; +} +/************************************************* + Function: sf_power_off_check_camera_restart + Description: sf power off . + Input: N/A + Output: N/A + Return: 0:SUCCESS, errcode:FAIL + Others: N/A +*************************************************/ +SINT32 sf_power_off_check_camera_restart(void) +{ + if(CameraCmd.cameraRestart) + { + sf_mcu_reg_set(SF_MCU_POWER_RESTART, 0); + sf_sleep_ms(500); + } + return 0; +} + +/************************************************* + Function: sf_power_off_check_camera_restart + Description: sf power off . + Input: N/A + Output: N/A + Return: 0:SUCCESS, errcode:FAIL + Others: N/A +*************************************************/ +SINT32 sf_power_off_check_ui_para_sava(void) +{ + if(CameraCmd.setPara == 1) + { + sf_share_mem_customer_down(1); + } + return 0; +} + diff --git a/code/application/source/sf_app/code/source/app/sf_common.c b/code/application/source/sf_app/code/source/app/sf_common.c index df6606fc6..4a3d0107e 100644 --- a/code/application/source/sf_app/code/source/app/sf_common.c +++ b/code/application/source/sf_app/code/source/app/sf_common.c @@ -338,13 +338,13 @@ static SINT32 process_cmd_longclick(SF_MESSAGE_BUF_S *pMessageBuf) break; } MLOGI("BatRemainCap = [%d]\n", sf_statistics_param_get()->BatRemainCap); - if((access("/mnt/mmc/EG95", F_OK) == 0) && (sf_statistics_param_get()->BatRemainCap > 40)) + if((access("/mnt/sd/EG95", F_OK) == 0) && (sf_statistics_param_get()->BatRemainCap > 40)) { MLOGI("eg95\n"); bmoduleupdate = 1; if(sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY) sf_led_event_process(LED_STATUS_QUICKFLASH_ON,LED_GROUP_SD,LED_TYPE_GREEN); - system("/customer/QFirehose -f /mnt/mmc/EG95"); + system("/usr/bin/QFirehose -f /mnt/sd/EG95"); app_system_poweroff(SF_POWEROFF_REBOOT); } diff --git a/code/application/source/sf_app/code/source/app/sf_service.c b/code/application/source/sf_app/code/source/app/sf_service.c index 4d1b12c9a..bda821e51 100644 --- a/code/application/source/sf_app/code/source/app/sf_service.c +++ b/code/application/source/sf_app/code/source/app/sf_service.c @@ -111,6 +111,8 @@ SINT32 sf_ttyusb_restart(void) } else { + sf_mcu_reg_set(SF_MCU_RESET_MODULE, 0); + sleep(5); ret = app_ttyusb_IsOpen(); } return ret; @@ -138,14 +140,14 @@ static SINT16 app_Qlog_procress(void) struct tm *p; time(&timep); p = gmtime(&timep); - if(access("/mnt/mmc/qlog", F_OK) != 0) + if(access("/mnt/sd/qlog", F_OK) != 0) { - s32ret = mkdir("/mnt/mmc/qlog", S_IRWXU); + s32ret = mkdir("/mnt/sd/qlog", S_IRWXU); if (s32ret != 0) return s32ret; } sprintf(qlogPath, "%04d%02d%02d%02d%02d%02d", p->tm_year + 1900, p->tm_mon + 1, p->tm_mday, p->tm_hour, p->tm_min, p->tm_sec); - sprintf(qlogDirCmd, "/customer/QLog -s %s%s &", QLOG_PATH, qlogPath); + sprintf(qlogDirCmd, "/usr/bin/QLog -s %s%s &", QLOG_PATH, qlogPath); MLOGD("%s\n", qlogDirCmd); s32ret = system(qlogDirCmd); @@ -163,16 +165,16 @@ SINT32 sf_USB_net_init(void) flag = 1; /*if(strstr(sfPara->ApnGPRS, V_MODULE_APN)) { - sprintf(cmdStr, "/customer/quectel-CM -n %d&", V_PDP_INDEX); + sprintf(cmdStr, "/usr/bin/quectel-CM -n %d&", V_PDP_INDEX); } else if(strstr(sfPara->ApnGPRS, A_MODULE_APN)) { - sprintf(cmdStr, "/customer/quectel-CM -n %d&", A_PDP_INDEX); + sprintf(cmdStr, "/usr/bin/quectel-CM -n %d&", A_PDP_INDEX); } else*/ { - sprintf(cmdStr, "/customer/quectel-CM -n %d&", E_PDP_INDEX); + sprintf(cmdStr, "/usr/bin/quectel-CM -n %d&", E_PDP_INDEX); } } @@ -1149,7 +1151,10 @@ SINT32 app_FileSend_thread(void) } s32ret = app_file_transfer(&stpfncallback); - //if(s32ret == SF_APP_ERROR_NO_SUPPOET) + if(s32ret != SF_SUCCESS) + { + sf_set_gprs_errno(s32ret); + } // app_file_transfer_Error_return_server(&stpfncallback); ThumbSend.IsRun = 0; sf_file_thumb_cfg_clear(); diff --git a/code/application/source/sf_app/code/source/app/sf_system.c b/code/application/source/sf_app/code/source/app/sf_system.c index eff2ecab6..e80af0192 100644 --- a/code/application/source/sf_app/code/source/app/sf_system.c +++ b/code/application/source/sf_app/code/source/app/sf_system.c @@ -884,7 +884,7 @@ void sf_power_off(void) SF_MESSAGE_BUF_S stMessageBuf = {0}; UINT8 PowerOnMode = sf_poweron_type_get(); printf("[%s:%d] s\n", __FUNCTION__, __LINE__); - UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + //UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); SF_PDT_PARAM_STATISTICS_S *psfPara = sf_statistics_param_get(); if((PowerOnMode == PWR_ON_TIMELAPSE) || (PowerOnMode == PWR_ON_PIR)) @@ -897,6 +897,27 @@ void sf_power_off(void) sf_power_off_module_ota(); + sf_power_off_module_sd_update(); + + sf_power_off_check_para(); + + sf_power_off_check_retset_para(); + + sf_power_off_check_format_sd(); + + sf_power_off_check_sd(); + + sf_power_off_check_gprs(); + + sf_power_off_check_fw_update(); + + sf_power_off_check_module_sleep(); + + sf_power_off_check_camera_restart(); + + sf_power_off_check_ui_para_sava(); + sf_statistics_param_save(psfPara); + MLOGI(" SF_KEY_PIN_AOTU_MODE_POWOFF CMD_KEY\n"); stMessageBuf.cmdId = CMD_KEY; stMessageBuf.arg1 = SF_EVENT_KEY_SHORT_CLICK; diff --git a/code/application/source/sf_app/code/source/fileMng/sf_file.c b/code/application/source/sf_app/code/source/fileMng/sf_file.c index 12f4d49ba..e88ea1f23 100644 --- a/code/application/source/sf_app/code/source/fileMng/sf_file.c +++ b/code/application/source/sf_app/code/source/fileMng/sf_file.c @@ -23,7 +23,7 @@ #include #include #include - +#include #ifdef __cplusplus #if __cplusplus @@ -917,7 +917,7 @@ UINT32 sf_create_dailyreport_file(void) //sfPara_t* pSifarPara = sf_ParaGet(); SF_PDT_PARAM_STATISTICS_S *pSifarPara = sf_statistics_param_get(); UIMenuStoreInfo *pPara = sf_app_ui_para_get(); - UINT32 dskfree=0;// totalSize = 0; + //UINT32 dskfree=0;// totalSize = 0; char dskfreeStr[20]= {0}; UINT8 cameraID[20]= {0}; char str[50]= {0}; @@ -969,7 +969,7 @@ UINT32 sf_create_dailyreport_file(void) { SF_STORE_ATTR_S storeattrs = {0}; sf_sd_info_get(&storeattrs); - dskfree=dskfree/1024; + //dskfree=dskfree/1024; sprintf(dskfreeStr, "%dM/%dM", storeattrs.SDFree, storeattrs.SDTotalSize); } else @@ -1274,6 +1274,42 @@ BOOL sf_is_enough_power_to_update(void) return TRUE; } + +BOOL sf_is_4g_module_usb_update_file_exist(UINT8 *updateFname) +{ + DIR *dirp = NULL; + struct dirent *ptr = NULL; + + UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + if ((dirp=opendir((char *)SF_SD_ROOT)) != NULL) + { + while ((ptr=readdir(dirp)) != NULL) + { + if(strcmp(ptr->d_name,".")==0 || strcmp(ptr->d_name,"..")==0) ///current dir OR parrent dir + continue; + else if(ptr->d_type == 8) ///file + { + if(SF_STRNCMP(ptr->d_name, puiPara->ModuleVer, 6) == 0) + { + SF_SPRINTF(updateFname, "%s%s", SF_SD_ROOT, ptr->d_name); + closedir(dirp); + printf("updateFname:%s\n", updateFname); + + return TRUE; + } + } + else + { + continue; + } + } + } + closedir(dirp); + + printf("no update file\n"); + return FALSE; +} + #endif #ifdef __cplusplus diff --git a/code/application/source/sf_app/code/source/paramMng/sf_param_common.c b/code/application/source/sf_app/code/source/paramMng/sf_param_common.c index 44a5742e8..864f3d154 100644 --- a/code/application/source/sf_app/code/source/paramMng/sf_param_common.c +++ b/code/application/source/sf_app/code/source/paramMng/sf_param_common.c @@ -999,12 +999,6 @@ SINT32 sf_statistics_param_save(SF_PDT_PARAM_STATISTICS_S* pStatisticsParam) fd = open(SIFAR_STATISTICS_PARAM_PATH, O_CREAT|O_RDWR, 0); if(fd < 0) { -// MLOGE("errno = [%d,%s]\n",errno,strerror(errno)); - SF_MESSAGE_BUF_S stMessageBuf = {0}; - stMessageBuf.cmdId = 0x0113; - stMessageBuf.arg1 = 0; - sf_com_message_send_to_cardv(&stMessageBuf); - usleep(500000); fd = open(SIFAR_STATISTICS_PARAM_PATH, O_CREAT|O_RDWR, 0); /*open jpg file*/ if(fd < 0) { MLOGE("errno = [%d,%s]\n",errno,strerror(errno)); diff --git a/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c b/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c index 43adf12a3..1be6b3646 100644 --- a/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c +++ b/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c @@ -211,7 +211,7 @@ SINT32 sf_sd_loopremove(const char *path) memset(strdirTmp, '\0', FILENAMELEN); strcpy(strdirTmp, namelist[index]->d_name); /*filter not xxxSYCAM dir*/ - if(!strstr(strdirTmp, SF_DCF_DIR_NAME_SUFFIX)) { + if(!strstr(strdirTmp, DCF_DIR_NAME)) { index++; continue; } @@ -250,7 +250,7 @@ SINT32 sf_sd_loopremove(const char *path) if(SF_NULL != g_cFileList[FileCount]) { - pTemp = strstr(g_cFileList[FileCount], SF_DCF_DIR_NAME_SUFFIX); + pTemp = strstr(g_cFileList[FileCount], DCF_DIR_NAME); if(pTemp) { pTemp = pTemp - 3; @@ -260,7 +260,7 @@ SINT32 sf_sd_loopremove(const char *path) filedir[2] = *pTemp++; /*get file group ID*/ filedir[3] = '\0'; - pTemp = strstr(g_cFileList[FileCount], SF_DCF_FILE_NAME_PREFIX); + pTemp = strstr(g_cFileList[FileCount], DCF_FILE_NAME); if(pTemp) { @@ -279,13 +279,13 @@ SINT32 sf_sd_loopremove(const char *path) if(strstr(filetype, SF_DCF_EXT_MOV)) { - sprintf(fname, "%sW%s%s.JPG",SF_4G_PIC_THUMB_PATH, filedir, filenum); + sprintf(fname, "%sW%s%s.JPG",SF_SEND_LIST_DIR, filedir, filenum); if(SF_SUCCESS == sd_file_Isexsit(fname)) { sf_file_remove(fname); MLOGD("Will Delete video sub File Name:%s\n", fname); } - sprintf(fname, "%sS%s%s.MP4", SF_4G_SMALL_VIDEO_STREAM_PATH,filedir, filenum); + sprintf(fname, "%sS%s%s.JPG", SF_SEND_LIST_DIR,filedir, filenum); if(SF_SUCCESS == sd_file_Isexsit(fname)) { sf_file_remove(fname); @@ -299,7 +299,7 @@ SINT32 sf_sd_loopremove(const char *path) } else if(strstr(filetype, SF_DCF_EXT_PHOTO)) { - sprintf(fname, "%sW%s%s.JPG",SF_4G_PIC_THUMB_PATH, filedir, filenum); + sprintf(fname, "%sW%s%s.JPG",SF_SEND_LIST_DIR, filedir, filenum); if(SF_SUCCESS == sd_file_Isexsit(fname)) { sf_file_remove(fname); @@ -382,6 +382,22 @@ SINT32 sf_sd_status_set(SF_SD_STATUS_E enStatus) return SF_SUCCESS; } + +/************************************************* + Function: sf_delete_send_flie_list + Description:del send file list + Input: N/A + Output: N/A + Return: N/A + Others: N/A +*************************************************/ +UINT32 sf_delete_send_flie_list(void) +{ + printf("delete %s\n", SF_SEND_LIST_DIR); + sf_file_remove(SF_THUMB_SEND_LIST); + return 0; +} + #ifdef __cplusplus #if __cplusplus } diff --git a/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu_reg.c b/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu_reg.c index 0fc757954..5cecb1f93 100644 --- a/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu_reg.c +++ b/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu_reg.c @@ -57,7 +57,7 @@ static UINT8 PowerOnMode = 0; //=>PWR_ON_SETUP static UINT32 simCardInsert=0; static UINT8 gModuleSleep = 1; static int isSignalReady = -1; -static UINT32 GPRS_ERRNO = 0; +static SINT32 GPRS_ERRNO = 0; static UINT32 SmsCheck = 0; static UINT8 SIMPIN1 = 1; static UINT8 SIMPIN11 = 1; @@ -68,6 +68,7 @@ static UINT8 SetMcuRtcFlag = 0; static UINT8 ModuleUpdating = 0; static UINT8 FwUpdate = 0; + UINT8 sf_mcu_read(UINT32 reg, UINT8 *data) { *data = sf_commu_get_mcu(reg); @@ -551,7 +552,7 @@ unsigned char sf_mcu_reg_set(MCUParam_t attrId, unsigned char val) } else { - if (((puiPara->GprsMode) == 2) && isSignalReady && (GPRS_ERRNO == 0)) + if (((puiPara->GprsMode) == 2) && isSignalReady && (sf_get_gprs_errno() == 0)) temp |= 0x20; //sf_pdp_flg_set(0); @@ -1127,6 +1128,11 @@ void sf_set_module_sleep_flag(UINT8 flag) gModuleSleep = flag; } +UINT8 sf_get_module_sleep_flag(void) +{ + return gModuleSleep; +} + int sf_app_while_flag(void) { if((!sf_usb_IsInsert()) && (sf_get_power_off_flag() != 1) @@ -1172,6 +1178,10 @@ int sf_get_signal_ready(void) return isSignalReady; } +int sf_set_signal_ready(int value) +{ + isSignalReady = value; +} UINT8 sf_get_cq_signal(void) { printf("[%s:%d]cq_Signal=%d\n", __FUNCTION__, __LINE__, cq_Signal); @@ -1354,6 +1364,15 @@ void sf_set_fw_update(UINT8 flag) FwUpdate = flag; } +void sf_set_gprs_errno(SINT32 value) +{ + GPRS_ERRNO = value; +} + +SINT32 sf_get_gprs_errno(void) +{ + return GPRS_ERRNO; +} #ifdef __cplusplus #if __cplusplus } diff --git a/code/hdal/vendor/isp/configs/dtsi/os05b10_iq_0_cap.dtsi b/code/hdal/vendor/isp/configs/dtsi/os05b10_iq_0_cap.dtsi index 0273c553f..770eac8e2 100755 --- a/code/hdal/vendor/isp/configs/dtsi/os05b10_iq_0_cap.dtsi +++ b/code/hdal/vendor/isp/configs/dtsi/os05b10_iq_0_cap.dtsi @@ -27,15 +27,15 @@ }; iq_ccm { size = [40 02 00 00]; - data = [00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ee 19 00 00 9d 01 82 ff e2 ff 53 ff 35 02 78 ff e2 ff 85 ff 99 01 8d 8f 84 82 80 8d 8f 88 86 84 7e 80 80 80 80 7c 7c 7e 80 80 84 82 82 8b 00 00 ec ff ff ff f0 ff ff ff ed ff ff ff f2 ff ff ff f6 ff ff ff 14 00 00 00 2e 00 00 00 39 00 00 00 40 00 00 00 26 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 09 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 f0 ff ff ff ee ff ff ff e9 ff ff ff e6 ff ff ff d8 0e 00 00 4c 01 be ff 09 00 8f ff 80 01 f1 ff 08 00 6b ff 8c 01 80 82 8b 8b 88 88 88 86 84 7e 80 80 80 80 80 80 80 80 80 80 80 80 80 84 00 00 fe ff ff ff fe ff ff ff 00 00 00 00 06 00 00 00 0c 00 00 00 15 00 00 00 1d 00 00 00 29 00 00 00 35 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fe ff ff ff a0 0b 00 00 38 01 cd ff fb ff 66 ff b0 01 eb ff 25 00 ca fe 11 02 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]; + data = [00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ee 19 00 00 9d 01 82 ff e2 ff 53 ff 35 02 78 ff e2 ff 85 ff 99 01 86 8b 82 82 88 96 93 8f 88 84 82 80 80 80 80 7c 7c 7e 80 80 84 82 82 88 00 00 f3 ff ff ff fb ff ff ff fe ff ff ff ff ff ff ff 02 00 00 00 19 00 00 00 30 00 00 00 3c 00 00 00 41 00 00 00 25 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 09 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 f0 ff ff ff ee ff ff ff ed ff ff ff ee ff ff ff d8 0e 00 00 4c 01 be ff 09 00 8f ff 80 01 f1 ff 08 00 6b ff 8c 01 80 82 8b 8b 88 88 88 86 84 7e 80 80 80 80 80 80 80 80 80 80 80 80 80 84 00 00 fe ff ff ff fe ff ff ff 00 00 00 00 06 00 00 00 0c 00 00 00 15 00 00 00 1d 00 00 00 29 00 00 00 35 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fe ff ff ff a0 0b 00 00 38 01 cd ff fb ff 66 ff b0 01 eb ff 25 00 ca fe 11 02 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]; }; iq_color { size = [ec 06 00 00]; - data = [00 00 00 00 80 80 40 10 00 00 00 00 00 00 00 00 00 00 00 00 00 14 0f 0a 05 00 00 00 00 00 00 00 00 00 05 0a 0f 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 a8 89 4d 2e 18 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 76 00 00 00 7b 00 00 00 85 00 00 00 a1 00 00 00 a8 00 00 00 a1 00 00 00 94 00 00 00 85 00 00 00 85 00 00 00 85 00 00 00 94 00 00 00 94 00 00 00 94 00 00 00 94 00 00 00 8e 00 00 00 8e 00 00 00 85 00 00 00 8d 49 2a 12 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 72 00 00 00 5f 00 00 00 7b 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 7c ff b7 7e 4f 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 6e 40 20 10 04 00 00 00 00 00 00 00 00 00 00 00 6e 40 20 10 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 64 00 00 00 73 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 82 40 20 10 08 00 00 00 00 00 00 00 00 00 00 00 00 40 20 10 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 50 00 00 00 64 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 60 40 20 10 08 00 00 00 00 00 00 00 00 00 00 00 60 40 20 10 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 50 00 00 00 64 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 6e c8 78 46 20 10 00 00 00 00 00 00 00 00 00 00 00 c8 78 46 20 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 20 00 00 00 46 00 00 00 5a 00 00 00 6e 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 78 b4 6e 40 20 10 00 00 00 00 00 00 00 00 00 00 00 b4 6e 40 20 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 50 00 00 00 64 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00]; + data = [00 00 00 00 80 80 40 10 00 00 00 00 00 00 00 00 00 00 00 00 00 14 0f 0a 05 00 00 00 00 00 00 00 00 00 05 0a 0f 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 ac 89 4d 2e 18 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 76 00 00 00 7b 00 00 00 85 00 00 00 a1 00 00 00 a8 00 00 00 a1 00 00 00 94 00 00 00 85 00 00 00 85 00 00 00 85 00 00 00 94 00 00 00 94 00 00 00 94 00 00 00 94 00 00 00 8e 00 00 00 8e 00 00 00 85 00 00 00 a6 49 2a 12 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 72 00 00 00 5f 00 00 00 7b 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 96 ff b7 7e 4f 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 6e 40 20 10 04 00 00 00 00 00 00 00 00 00 00 00 6e 40 20 10 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 64 00 00 00 73 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 82 40 20 10 08 00 00 00 00 00 00 00 00 00 00 00 00 40 20 10 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 50 00 00 00 64 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 60 40 20 10 08 00 00 00 00 00 00 00 00 00 00 00 60 40 20 10 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 50 00 00 00 64 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 6e c8 78 46 20 10 00 00 00 00 00 00 00 00 00 00 00 c8 78 46 20 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 20 00 00 00 46 00 00 00 5a 00 00 00 6e 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 78 b4 6e 40 20 10 00 00 00 00 00 00 00 00 00 00 00 b4 6e 40 20 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 50 00 00 00 64 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00]; }; iq_contrast { size = [b0 00 00 00]; - data = [00 00 00 00 80 00 00 00 00 00 00 00 00 00 88 15 17 1b 1f 1f 1f 21 21 1f 88 15 17 1a 1f 1f 1f 1f 1f 1e 88 14 1e 2b 2d 32 32 2b 28 24 88 17 21 26 2d 2f 2f 2f 2f 25 8f 0e 0f 1c 28 28 28 28 28 23 97 00 0a 19 1e 1e 1e 1e 14 0a 96 00 05 0a 14 14 14 14 0a 00 be 00 00 00 00 00 00 00 00 00 80 05 05 05 05 05 05 05 05 05 80 0a 0a 0a 0a 0a 0a 0a 0a 0a 80 0a 0a 0a 0a 0a 0a 0a 0a 0a 80 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00]; + data = [00 00 00 00 80 00 00 00 00 00 00 00 00 00 8d 15 17 1b 1f 1f 1f 21 21 1f 8d 15 17 1a 1f 1f 1f 1f 1f 1e 8a 14 1e 2b 2d 32 32 2b 28 24 88 17 21 26 2d 2f 2f 2f 2f 25 8f 0e 0f 1c 28 28 28 28 28 23 97 00 0a 19 1e 1e 1e 1e 14 0a 96 00 05 0a 14 14 14 14 0a 00 be 00 00 00 00 00 00 00 00 00 80 05 05 05 05 05 05 05 05 05 80 0a 0a 0a 0a 0a 0a 0a 0a 0a 80 0a 0a 0a 0a 0a 0a 0a 0a 0a 80 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00]; }; iq_edge { size = [e0 05 00 00]; @@ -43,7 +43,7 @@ }; iq_3dnr { size = [64 1f 00 00]; - data = [01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 40 00 00 00 40 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 c8 00 00 00 c8 00 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 05 00 00 00 05 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 08 00 00 00 80 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 b4 00 00 00 e6 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 80 00 00 00 40 00 00 00 00 01 00 00 00 01 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 08 00 00 00 10 00 00 00 40 00 00 00 40 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 06 00 00 00 0c 00 00 00 18 00 00 00 28 00 00 00 4c 00 00 00 60 00 00 00 70 00 00 00 80 00 00 00 40 00 00 00 00 00 00 00 06 00 00 00 0c 00 00 00 18 00 00 00 28 00 00 00 4c 00 00 00 60 00 00 00 70 00 00 00 80 00 00 00 40 00 00 00 04 01 00 00 00 00 00 00 08 00 00 00 46 00 00 00 46 00 00 00 00 00 00 00 8c 00 00 00 8c 00 00 00 8c 00 00 00 fa 00 00 00 fa 00 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 c3 00 00 00 08 00 00 00 32 00 00 00 3c 00 00 00 46 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 11 00 00 00 10 00 00 00 10 00 00 00 11 00 00 00 0f 00 00 00 0f 00 00 00 0f 00 00 00 0f 00 00 00 be 00 00 00 be 00 00 00 be 00 00 00 be 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 21 00 00 00 21 00 00 00 1c 00 00 00 1c 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 08 00 00 00 10 00 00 00 03 00 00 00 10 00 00 00 14 00 00 00 04 00 00 00 01 01 01 00 01 00 00 00 00 04 0c 0a 02 00 02 00 00 00 00 00 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 08 00 00 00 e0 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 18 00 00 00 18 00 00 00 18 00 00 00 18 00 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 30 00 00 00 48 00 00 00 20 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 0c 00 00 00 1b 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0d 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 00 00 00 00 08 00 00 00 5a 00 00 00 5a 00 00 00 00 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 22 01 00 00 22 01 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 9d 00 00 00 08 00 00 00 32 00 00 00 3c 00 00 00 46 00 00 00 50 00 00 00 5a 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 17 00 00 00 16 00 00 00 16 00 00 00 17 00 00 00 15 00 00 00 15 00 00 00 15 00 00 00 15 00 00 00 82 00 00 00 82 00 00 00 82 00 00 00 82 00 00 00 78 00 00 00 78 00 00 00 78 00 00 00 78 00 00 00 23 00 00 00 23 00 00 00 1e 00 00 00 1e 00 00 00 19 00 00 00 19 00 00 00 19 00 00 00 19 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 04 00 00 00 01 01 01 00 01 00 00 00 00 04 10 0a 02 01 0a 04 01 00 00 00 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 08 00 00 00 f4 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 18 00 00 00 18 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 30 00 00 00 48 00 00 00 20 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 0c 00 00 00 1c 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0d 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 01 00 00 00 08 00 00 00 64 00 00 00 64 00 00 00 00 00 00 00 c8 00 00 00 c8 00 00 00 2c 01 00 00 2c 01 00 00 2c 01 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 b4 00 00 00 08 00 00 00 04 01 00 00 04 01 00 00 04 01 00 00 04 01 00 00 c8 00 00 00 c8 00 00 00 c8 00 00 00 c8 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 15 00 00 00 15 00 00 00 15 00 00 00 15 00 00 00 d2 00 00 00 c8 00 00 00 c8 00 00 00 c8 00 00 00 be 00 00 00 be 00 00 00 be 00 00 00 be 00 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 46 64 10 0c 06 10 00 00 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 f4 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 02 00 00 00 40 00 00 00 80 00 00 00 30 00 00 00 0e 00 00 00 08 00 00 00 00 00 00 00 0c 00 00 00 16 00 00 00 25 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 10 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 02 00 00 01 00 00 00 08 00 00 00 a0 00 00 00 a0 00 00 00 00 00 00 00 40 01 00 00 40 01 00 00 40 01 00 00 f4 01 00 00 f4 01 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 cb 00 00 00 08 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 1f 00 00 00 1e 00 00 00 1e 00 00 00 1f 00 00 00 1d 00 00 00 1d 00 00 00 1d 00 00 00 1d 00 00 00 0e 01 00 00 04 01 00 00 04 01 00 00 04 01 00 00 fa 00 00 00 fa 00 00 00 fa 00 00 00 fa 00 00 00 37 00 00 00 37 00 00 00 32 00 00 00 32 00 00 00 2d 00 00 00 2d 00 00 00 2d 00 00 00 2d 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 50 78 12 0e 08 00 00 00 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 bc 02 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 40 00 00 00 40 00 00 00 40 00 00 00 20 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 64 00 00 00 c8 00 00 00 40 00 00 00 18 00 00 00 0c 00 00 00 00 00 00 00 0c 00 00 00 19 00 00 00 28 00 00 00 3c 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 10 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 02 00 00 00 08 00 00 00 b4 00 00 00 b4 00 00 00 00 00 00 00 1c 02 00 00 1c 02 00 00 1c 02 00 00 80 02 00 00 80 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 98 00 00 00 08 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 78 00 00 00 78 00 00 00 78 00 00 00 78 00 00 00 1e 00 00 00 1d 00 00 00 1d 00 00 00 1e 00 00 00 1c 00 00 00 1c 00 00 00 1c 00 00 00 1c 00 00 00 e6 00 00 00 dc 00 00 00 dc 00 00 00 dc 00 00 00 d2 00 00 00 d2 00 00 00 d2 00 00 00 d2 00 00 00 34 00 00 00 34 00 00 00 2f 00 00 00 2f 00 00 00 2a 00 00 00 2a 00 00 00 2a 00 00 00 2a 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 50 78 14 0e 08 00 00 00 00 00 00 0c 00 00 00 10 00 00 00 18 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 f4 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 40 00 00 00 40 00 00 00 40 00 00 00 20 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 50 00 00 00 a0 00 00 00 40 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 0c 00 00 00 19 00 00 00 25 00 00 00 34 00 00 00 4a 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0d 00 00 00 20 00 00 00 30 00 00 00 3e 00 00 00 48 00 00 00 57 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 02 00 00 00 08 00 00 00 c8 00 00 00 c8 00 00 00 00 00 00 00 7c 01 00 00 7c 01 00 00 7c 01 00 00 20 03 00 00 20 03 00 00 03 00 00 00 03 00 00 00 02 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 d8 00 00 00 08 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 1d 00 00 00 1c 00 00 00 1c 00 00 00 1d 00 00 00 1b 00 00 00 1b 00 00 00 1b 00 00 00 1b 00 00 00 5e 01 00 00 54 01 00 00 54 01 00 00 54 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 48 00 00 00 48 00 00 00 43 00 00 00 43 00 00 00 3e 00 00 00 3e 00 00 00 3e 00 00 00 3e 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 b4 c8 14 0a 05 20 08 02 00 00 00 0c 00 00 00 10 00 00 00 18 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 f4 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 64 00 00 00 64 00 00 00 40 00 00 00 20 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 ff 00 00 00 ff 00 00 00 40 00 00 00 0c 00 00 00 06 00 00 00 00 00 00 00 07 00 00 00 10 00 00 00 2c 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0d 00 00 00 15 00 00 00 1e 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 2c 01 00 00 2c 01 00 00 00 00 00 00 f4 01 00 00 f4 01 00 00 f4 01 00 00 20 03 00 00 20 03 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 c3 00 00 00 08 00 00 00 96 00 00 00 96 00 00 00 96 00 00 00 96 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 1e 00 00 00 1d 00 00 00 1d 00 00 00 1e 00 00 00 1c 00 00 00 1c 00 00 00 1c 00 00 00 1c 00 00 00 2c 01 00 00 22 01 00 00 22 01 00 00 22 01 00 00 18 01 00 00 18 01 00 00 18 01 00 00 18 01 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 32 64 14 0a 05 40 0c 02 00 00 00 0c 00 00 00 10 00 00 00 18 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 20 03 00 00 2c 01 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 80 00 00 00 ff 00 00 00 40 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 06 00 00 00 0f 00 00 00 29 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 0b 00 00 00 13 00 00 00 1c 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 40 00 00 00 20 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 2c 01 00 00 2c 01 00 00 00 00 00 00 f4 01 00 00 f4 01 00 00 f4 01 00 00 e8 03 00 00 e8 03 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 c3 00 00 00 08 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 28 00 00 00 27 00 00 00 27 00 00 00 28 00 00 00 26 00 00 00 26 00 00 00 26 00 00 00 26 00 00 00 90 01 00 00 86 01 00 00 86 01 00 00 86 01 00 00 7c 01 00 00 7c 01 00 00 7c 01 00 00 7c 01 00 00 62 00 00 00 62 00 00 00 5d 00 00 00 5d 00 00 00 58 00 00 00 58 00 00 00 58 00 00 00 58 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 3c 64 82 40 0c 04 40 0c 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 e8 03 00 00 e8 03 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 0c 00 00 00 50 00 00 00 78 00 00 00 80 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 0d 00 00 00 1b 00 00 00 2c 00 00 00 38 00 00 00 3f 00 00 00 45 00 00 00 4b 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 0b 00 00 00 13 00 00 00 1c 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 40 00 00 00 20 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 96 00 00 00 96 00 00 00 00 00 00 00 dc 00 00 00 dc 00 00 00 dc 00 00 00 20 03 00 00 20 03 00 00 03 00 00 00 03 00 00 00 02 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 80 00 00 00 07 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 21 00 00 00 20 00 00 00 20 00 00 00 21 00 00 00 1f 00 00 00 1f 00 00 00 1f 00 00 00 1f 00 00 00 ea 01 00 00 e0 01 00 00 e0 01 00 00 e0 01 00 00 d6 01 00 00 d6 01 00 00 d6 01 00 00 d6 01 00 00 49 00 00 00 49 00 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 46 69 8c 1e 08 04 14 08 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 e8 03 00 00 e8 03 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 3c 00 00 00 6e 00 00 00 64 00 00 00 20 00 00 00 10 00 00 00 00 00 00 00 09 00 00 00 11 00 00 00 17 00 00 00 1f 00 00 00 27 00 00 00 2d 00 00 00 36 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0b 00 00 00 13 00 00 00 1c 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 96 00 00 00 96 00 00 00 00 00 00 00 dc 00 00 00 dc 00 00 00 dc 00 00 00 84 03 00 00 84 03 00 00 02 00 00 00 02 00 00 00 01 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 80 00 00 00 07 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 2c 00 00 00 2b 00 00 00 2b 00 00 00 2c 00 00 00 2a 00 00 00 2a 00 00 00 2a 00 00 00 2a 00 00 00 80 02 00 00 76 02 00 00 76 02 00 00 76 02 00 00 6c 02 00 00 6c 02 00 00 6c 02 00 00 6c 02 00 00 49 00 00 00 49 00 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 64 6e 8c 32 08 04 14 08 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 e8 03 00 00 e8 03 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 3c 00 00 00 6e 00 00 00 64 00 00 00 20 00 00 00 10 00 00 00 00 00 00 00 07 00 00 00 0c 00 00 00 15 00 00 00 1e 00 00 00 26 00 00 00 2c 00 00 00 34 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 08 00 00 00 11 00 00 00 1a 00 00 00 21 00 00 00 27 00 00 00 2f 00 00 00 3a 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 96 00 00 00 96 00 00 00 00 00 00 00 dc 00 00 00 dc 00 00 00 dc 00 00 00 84 03 00 00 84 03 00 00 02 00 00 00 02 00 00 00 01 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 80 00 00 00 07 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 2f 00 00 00 2e 00 00 00 2e 00 00 00 2f 00 00 00 2d 00 00 00 2d 00 00 00 2d 00 00 00 2d 00 00 00 81 02 00 00 77 02 00 00 77 02 00 00 77 02 00 00 6d 02 00 00 6d 02 00 00 6d 02 00 00 6d 02 00 00 49 00 00 00 49 00 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 b4 78 a0 50 08 04 14 08 02 00 00 00 10 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 40 00 00 00 20 00 00 00 e8 03 00 00 e8 03 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 3c 00 00 00 6e 00 00 00 64 00 00 00 20 00 00 00 10 00 00 00 00 00 00 00 07 00 00 00 0c 00 00 00 15 00 00 00 1e 00 00 00 26 00 00 00 2c 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 0b 00 00 00 13 00 00 00 1c 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 c8 00 00 00 c8 00 00 00 00 00 00 00 90 01 00 00 90 01 00 00 90 01 00 00 58 02 00 00 58 02 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 07 00 00 00 05 00 00 00 05 00 00 00 05 00 00 00 0f 00 00 00 0f 00 00 00 0f 00 00 00 0f 00 00 00 af 00 00 00 03 00 00 00 00 04 00 00 4c 04 00 00 b0 04 00 00 14 05 00 00 14 05 00 00 14 05 00 00 14 05 00 00 14 05 00 00 19 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 23 00 00 00 23 00 00 00 14 00 00 00 14 00 00 00 50 00 00 00 6e 00 00 00 6e 00 00 00 6e 00 00 00 8c 00 00 00 96 00 00 00 a0 00 00 00 a0 00 00 00 3c 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 44 00 00 00 50 00 00 00 50 00 00 00 5a 00 00 00 10 00 00 00 14 00 00 00 03 00 00 00 b4 00 00 00 c8 00 00 00 04 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8c 00 00 00 96 00 00 00 a0 00 00 00 aa 00 00 00 80 00 00 00 40 00 00 00 b8 0b 00 00 70 17 00 00 10 00 00 00 10 00 00 00 20 00 00 00 20 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 40 00 00 00 80 00 00 00 ff 00 00 00 10 00 00 00 06 00 00 00 00 00 00 00 06 00 00 00 0d 00 00 00 15 00 00 00 1c 00 00 00 26 00 00 00 2f 00 00 00 3a 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 08 00 00 00 09 00 00 00 09 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0b 00 00 00 0b 00 00 00 96 00 00 00 03 00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 18 00 00 00 18 00 00 00 17 00 00 00 15 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 08 00 00 00 10 00 00 00 14 00 00 00 b4 00 00 00 e6 00 00 00 02 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 6e 00 00 00 78 00 00 00 82 00 00 00 80 00 00 00 40 00 00 00 b0 04 00 00 d0 07 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 14 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 20 00 00 00 80 00 00 00 ff 00 00 00 20 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 08 00 00 00 09 00 00 00 09 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0b 00 00 00 0b 00 00 00 96 00 00 00 03 00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 18 00 00 00 18 00 00 00 17 00 00 00 15 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 08 00 00 00 10 00 00 00 14 00 00 00 b4 00 00 00 e6 00 00 00 02 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 6e 00 00 00 78 00 00 00 82 00 00 00 80 00 00 00 40 00 00 00 b0 04 00 00 d0 07 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 14 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 20 00 00 00 80 00 00 00 ff 00 00 00 20 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 08 00 00 00 09 00 00 00 09 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0b 00 00 00 0b 00 00 00 96 00 00 00 03 00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 18 00 00 00 18 00 00 00 17 00 00 00 15 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 08 00 00 00 10 00 00 00 14 00 00 00 b4 00 00 00 e6 00 00 00 02 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 6e 00 00 00 78 00 00 00 82 00 00 00 80 00 00 00 40 00 00 00 b0 04 00 00 d0 07 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 14 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 20 00 00 00 80 00 00 00 ff 00 00 00 20 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 08 00 00 00 09 00 00 00 09 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0b 00 00 00 0b 00 00 00 96 00 00 00 03 00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 18 00 00 00 18 00 00 00 17 00 00 00 15 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 08 00 00 00 10 00 00 00 14 00 00 00 b4 00 00 00 e6 00 00 00 02 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 6e 00 00 00 78 00 00 00 82 00 00 00 80 00 00 00 40 00 00 00 b0 04 00 00 d0 07 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 14 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 20 00 00 00 80 00 00 00 ff 00 00 00 20 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00]; + data = [01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 40 00 00 00 40 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 c8 00 00 00 c8 00 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 05 00 00 00 05 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 08 00 00 00 80 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 b4 00 00 00 e6 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 80 00 00 00 40 00 00 00 00 01 00 00 00 01 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 08 00 00 00 10 00 00 00 40 00 00 00 40 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 06 00 00 00 0c 00 00 00 18 00 00 00 28 00 00 00 4c 00 00 00 60 00 00 00 70 00 00 00 80 00 00 00 40 00 00 00 00 00 00 00 06 00 00 00 0c 00 00 00 18 00 00 00 28 00 00 00 4c 00 00 00 60 00 00 00 70 00 00 00 80 00 00 00 40 00 00 00 04 01 00 00 00 00 00 00 08 00 00 00 46 00 00 00 46 00 00 00 00 00 00 00 8c 00 00 00 8c 00 00 00 8c 00 00 00 fa 00 00 00 fa 00 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 c3 00 00 00 08 00 00 00 32 00 00 00 3c 00 00 00 46 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 11 00 00 00 10 00 00 00 10 00 00 00 11 00 00 00 0f 00 00 00 0f 00 00 00 0f 00 00 00 0f 00 00 00 be 00 00 00 be 00 00 00 be 00 00 00 be 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 21 00 00 00 21 00 00 00 1c 00 00 00 1c 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 08 00 00 00 10 00 00 00 03 00 00 00 10 00 00 00 14 00 00 00 04 00 00 00 01 01 01 00 01 00 00 00 00 08 1a 0a 04 02 0a 02 01 00 00 00 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 08 00 00 00 e0 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 18 00 00 00 18 00 00 00 18 00 00 00 18 00 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 38 00 00 00 5a 00 00 00 20 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 0c 00 00 00 1b 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0d 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 00 00 00 00 08 00 00 00 5a 00 00 00 5a 00 00 00 00 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 22 01 00 00 22 01 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 9d 00 00 00 08 00 00 00 32 00 00 00 3c 00 00 00 46 00 00 00 50 00 00 00 5a 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 17 00 00 00 16 00 00 00 16 00 00 00 17 00 00 00 15 00 00 00 15 00 00 00 15 00 00 00 15 00 00 00 82 00 00 00 82 00 00 00 82 00 00 00 82 00 00 00 78 00 00 00 78 00 00 00 78 00 00 00 78 00 00 00 23 00 00 00 23 00 00 00 1e 00 00 00 1e 00 00 00 19 00 00 00 19 00 00 00 19 00 00 00 19 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 04 00 00 00 01 01 01 00 01 00 00 00 00 0a 20 0a 04 03 0a 04 01 00 00 00 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 08 00 00 00 f4 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 18 00 00 00 18 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 38 00 00 00 5a 00 00 00 20 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 0c 00 00 00 1c 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0d 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 01 00 00 00 08 00 00 00 64 00 00 00 64 00 00 00 00 00 00 00 c8 00 00 00 c8 00 00 00 2c 01 00 00 2c 01 00 00 2c 01 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 b4 00 00 00 08 00 00 00 04 01 00 00 04 01 00 00 04 01 00 00 04 01 00 00 c8 00 00 00 c8 00 00 00 c8 00 00 00 c8 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 15 00 00 00 15 00 00 00 15 00 00 00 15 00 00 00 d2 00 00 00 c8 00 00 00 c8 00 00 00 c8 00 00 00 be 00 00 00 be 00 00 00 be 00 00 00 be 00 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 46 64 10 0c 06 10 00 00 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 f4 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 02 00 00 00 40 00 00 00 80 00 00 00 30 00 00 00 0e 00 00 00 08 00 00 00 00 00 00 00 0c 00 00 00 16 00 00 00 25 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 10 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 02 00 00 01 00 00 00 08 00 00 00 a0 00 00 00 a0 00 00 00 00 00 00 00 40 01 00 00 40 01 00 00 40 01 00 00 f4 01 00 00 f4 01 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 cb 00 00 00 08 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 1f 00 00 00 1e 00 00 00 1e 00 00 00 1f 00 00 00 1d 00 00 00 1d 00 00 00 1d 00 00 00 1d 00 00 00 0e 01 00 00 04 01 00 00 04 01 00 00 04 01 00 00 fa 00 00 00 fa 00 00 00 fa 00 00 00 fa 00 00 00 37 00 00 00 37 00 00 00 32 00 00 00 32 00 00 00 2d 00 00 00 2d 00 00 00 2d 00 00 00 2d 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 50 78 12 0e 08 00 00 00 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 bc 02 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 40 00 00 00 40 00 00 00 40 00 00 00 20 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 64 00 00 00 c8 00 00 00 40 00 00 00 18 00 00 00 0c 00 00 00 00 00 00 00 0c 00 00 00 19 00 00 00 28 00 00 00 3c 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 10 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 02 00 00 00 08 00 00 00 b4 00 00 00 b4 00 00 00 00 00 00 00 1c 02 00 00 1c 02 00 00 1c 02 00 00 80 02 00 00 80 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 98 00 00 00 08 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 78 00 00 00 78 00 00 00 78 00 00 00 78 00 00 00 1e 00 00 00 1d 00 00 00 1d 00 00 00 1e 00 00 00 1c 00 00 00 1c 00 00 00 1c 00 00 00 1c 00 00 00 e6 00 00 00 dc 00 00 00 dc 00 00 00 dc 00 00 00 d2 00 00 00 d2 00 00 00 d2 00 00 00 d2 00 00 00 34 00 00 00 34 00 00 00 2f 00 00 00 2f 00 00 00 2a 00 00 00 2a 00 00 00 2a 00 00 00 2a 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 50 78 14 0e 08 00 00 00 00 00 00 0c 00 00 00 10 00 00 00 18 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 f4 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 40 00 00 00 40 00 00 00 40 00 00 00 20 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 50 00 00 00 a0 00 00 00 40 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 0c 00 00 00 19 00 00 00 25 00 00 00 34 00 00 00 4a 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0d 00 00 00 20 00 00 00 30 00 00 00 3e 00 00 00 48 00 00 00 57 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 02 00 00 00 08 00 00 00 c8 00 00 00 c8 00 00 00 00 00 00 00 7c 01 00 00 7c 01 00 00 7c 01 00 00 20 03 00 00 20 03 00 00 03 00 00 00 03 00 00 00 02 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 d8 00 00 00 08 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 1d 00 00 00 1c 00 00 00 1c 00 00 00 1d 00 00 00 1b 00 00 00 1b 00 00 00 1b 00 00 00 1b 00 00 00 5e 01 00 00 54 01 00 00 54 01 00 00 54 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 48 00 00 00 48 00 00 00 43 00 00 00 43 00 00 00 3e 00 00 00 3e 00 00 00 3e 00 00 00 3e 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 b4 c8 14 0a 05 20 08 02 00 00 00 0c 00 00 00 10 00 00 00 18 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 f4 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 64 00 00 00 64 00 00 00 40 00 00 00 20 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 ff 00 00 00 ff 00 00 00 40 00 00 00 0c 00 00 00 06 00 00 00 00 00 00 00 07 00 00 00 10 00 00 00 2c 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0d 00 00 00 15 00 00 00 1e 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 2c 01 00 00 2c 01 00 00 00 00 00 00 f4 01 00 00 f4 01 00 00 f4 01 00 00 20 03 00 00 20 03 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 c3 00 00 00 08 00 00 00 96 00 00 00 96 00 00 00 96 00 00 00 96 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 1e 00 00 00 1d 00 00 00 1d 00 00 00 1e 00 00 00 1c 00 00 00 1c 00 00 00 1c 00 00 00 1c 00 00 00 2c 01 00 00 22 01 00 00 22 01 00 00 22 01 00 00 18 01 00 00 18 01 00 00 18 01 00 00 18 01 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 32 64 14 0a 05 40 0c 02 00 00 00 0c 00 00 00 10 00 00 00 18 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 20 03 00 00 2c 01 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 80 00 00 00 ff 00 00 00 40 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 06 00 00 00 0f 00 00 00 29 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 0b 00 00 00 13 00 00 00 1c 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 40 00 00 00 20 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 2c 01 00 00 2c 01 00 00 00 00 00 00 f4 01 00 00 f4 01 00 00 f4 01 00 00 e8 03 00 00 e8 03 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 c3 00 00 00 08 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 28 00 00 00 27 00 00 00 27 00 00 00 28 00 00 00 26 00 00 00 26 00 00 00 26 00 00 00 26 00 00 00 90 01 00 00 86 01 00 00 86 01 00 00 86 01 00 00 7c 01 00 00 7c 01 00 00 7c 01 00 00 7c 01 00 00 62 00 00 00 62 00 00 00 5d 00 00 00 5d 00 00 00 58 00 00 00 58 00 00 00 58 00 00 00 58 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 3c 64 82 40 0c 04 40 0c 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 e8 03 00 00 e8 03 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 0c 00 00 00 50 00 00 00 78 00 00 00 80 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 0d 00 00 00 1b 00 00 00 2c 00 00 00 38 00 00 00 3f 00 00 00 45 00 00 00 4b 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 0b 00 00 00 13 00 00 00 1c 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 40 00 00 00 20 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 96 00 00 00 96 00 00 00 00 00 00 00 dc 00 00 00 dc 00 00 00 dc 00 00 00 20 03 00 00 20 03 00 00 03 00 00 00 03 00 00 00 02 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 80 00 00 00 07 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 21 00 00 00 20 00 00 00 20 00 00 00 21 00 00 00 1f 00 00 00 1f 00 00 00 1f 00 00 00 1f 00 00 00 ea 01 00 00 e0 01 00 00 e0 01 00 00 e0 01 00 00 d6 01 00 00 d6 01 00 00 d6 01 00 00 d6 01 00 00 49 00 00 00 49 00 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 46 69 8c 1e 08 04 14 08 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 e8 03 00 00 e8 03 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 3c 00 00 00 6e 00 00 00 64 00 00 00 20 00 00 00 10 00 00 00 00 00 00 00 09 00 00 00 11 00 00 00 17 00 00 00 1f 00 00 00 27 00 00 00 2d 00 00 00 36 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0b 00 00 00 13 00 00 00 1c 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 96 00 00 00 96 00 00 00 00 00 00 00 dc 00 00 00 dc 00 00 00 dc 00 00 00 84 03 00 00 84 03 00 00 02 00 00 00 02 00 00 00 01 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 80 00 00 00 07 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 2c 00 00 00 2b 00 00 00 2b 00 00 00 2c 00 00 00 2a 00 00 00 2a 00 00 00 2a 00 00 00 2a 00 00 00 80 02 00 00 76 02 00 00 76 02 00 00 76 02 00 00 6c 02 00 00 6c 02 00 00 6c 02 00 00 6c 02 00 00 49 00 00 00 49 00 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 64 6e 8c 32 08 04 14 08 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 e8 03 00 00 e8 03 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 3c 00 00 00 6e 00 00 00 64 00 00 00 20 00 00 00 10 00 00 00 00 00 00 00 07 00 00 00 0c 00 00 00 15 00 00 00 1e 00 00 00 26 00 00 00 2c 00 00 00 34 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 08 00 00 00 11 00 00 00 1a 00 00 00 21 00 00 00 27 00 00 00 2f 00 00 00 3a 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 96 00 00 00 96 00 00 00 00 00 00 00 dc 00 00 00 dc 00 00 00 dc 00 00 00 84 03 00 00 84 03 00 00 02 00 00 00 02 00 00 00 01 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 80 00 00 00 07 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 2f 00 00 00 2e 00 00 00 2e 00 00 00 2f 00 00 00 2d 00 00 00 2d 00 00 00 2d 00 00 00 2d 00 00 00 81 02 00 00 77 02 00 00 77 02 00 00 77 02 00 00 6d 02 00 00 6d 02 00 00 6d 02 00 00 6d 02 00 00 49 00 00 00 49 00 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 b4 78 a0 50 08 04 14 08 02 00 00 00 10 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 40 00 00 00 20 00 00 00 e8 03 00 00 e8 03 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 3c 00 00 00 6e 00 00 00 64 00 00 00 20 00 00 00 10 00 00 00 00 00 00 00 07 00 00 00 0c 00 00 00 15 00 00 00 1e 00 00 00 26 00 00 00 2c 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 0b 00 00 00 13 00 00 00 1c 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 c8 00 00 00 c8 00 00 00 00 00 00 00 90 01 00 00 90 01 00 00 90 01 00 00 58 02 00 00 58 02 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 07 00 00 00 05 00 00 00 05 00 00 00 05 00 00 00 0f 00 00 00 0f 00 00 00 0f 00 00 00 0f 00 00 00 af 00 00 00 03 00 00 00 00 04 00 00 4c 04 00 00 b0 04 00 00 14 05 00 00 14 05 00 00 14 05 00 00 14 05 00 00 14 05 00 00 19 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 23 00 00 00 23 00 00 00 14 00 00 00 14 00 00 00 50 00 00 00 6e 00 00 00 6e 00 00 00 6e 00 00 00 8c 00 00 00 96 00 00 00 a0 00 00 00 a0 00 00 00 3c 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 44 00 00 00 50 00 00 00 50 00 00 00 5a 00 00 00 10 00 00 00 14 00 00 00 03 00 00 00 b4 00 00 00 c8 00 00 00 04 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8c 00 00 00 96 00 00 00 a0 00 00 00 aa 00 00 00 80 00 00 00 40 00 00 00 b8 0b 00 00 70 17 00 00 10 00 00 00 10 00 00 00 20 00 00 00 20 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 40 00 00 00 80 00 00 00 ff 00 00 00 10 00 00 00 06 00 00 00 00 00 00 00 06 00 00 00 0d 00 00 00 15 00 00 00 1c 00 00 00 26 00 00 00 2f 00 00 00 3a 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 08 00 00 00 09 00 00 00 09 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0b 00 00 00 0b 00 00 00 96 00 00 00 03 00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 18 00 00 00 18 00 00 00 17 00 00 00 15 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 08 00 00 00 10 00 00 00 14 00 00 00 b4 00 00 00 e6 00 00 00 02 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 6e 00 00 00 78 00 00 00 82 00 00 00 80 00 00 00 40 00 00 00 b0 04 00 00 d0 07 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 14 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 20 00 00 00 80 00 00 00 ff 00 00 00 20 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 08 00 00 00 09 00 00 00 09 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0b 00 00 00 0b 00 00 00 96 00 00 00 03 00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 18 00 00 00 18 00 00 00 17 00 00 00 15 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 08 00 00 00 10 00 00 00 14 00 00 00 b4 00 00 00 e6 00 00 00 02 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 6e 00 00 00 78 00 00 00 82 00 00 00 80 00 00 00 40 00 00 00 b0 04 00 00 d0 07 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 14 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 20 00 00 00 80 00 00 00 ff 00 00 00 20 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 08 00 00 00 09 00 00 00 09 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0b 00 00 00 0b 00 00 00 96 00 00 00 03 00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 18 00 00 00 18 00 00 00 17 00 00 00 15 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 08 00 00 00 10 00 00 00 14 00 00 00 b4 00 00 00 e6 00 00 00 02 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 6e 00 00 00 78 00 00 00 82 00 00 00 80 00 00 00 40 00 00 00 b0 04 00 00 d0 07 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 14 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 20 00 00 00 80 00 00 00 ff 00 00 00 20 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 08 00 00 00 09 00 00 00 09 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0b 00 00 00 0b 00 00 00 96 00 00 00 03 00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 18 00 00 00 18 00 00 00 17 00 00 00 15 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 08 00 00 00 10 00 00 00 14 00 00 00 b4 00 00 00 e6 00 00 00 02 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 6e 00 00 00 78 00 00 00 82 00 00 00 80 00 00 00 40 00 00 00 b0 04 00 00 d0 07 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 14 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 20 00 00 00 80 00 00 00 ff 00 00 00 20 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00]; }; iq_wdr { size = [e4 02 00 00]; diff --git a/code/hdal/vendor/output/libvendor_ai2_pub.a b/code/hdal/vendor/output/libvendor_ai2_pub.a index 8a491d8cb..21d4de6cf 100644 Binary files a/code/hdal/vendor/output/libvendor_ai2_pub.a and b/code/hdal/vendor/output/libvendor_ai2_pub.a differ diff --git a/code/hdal/vendor/output/libvendor_ai2_pub2.a b/code/hdal/vendor/output/libvendor_ai2_pub2.a index 17059f3e5..86c7e3fc2 100644 Binary files a/code/hdal/vendor/output/libvendor_ai2_pub2.a and b/code/hdal/vendor/output/libvendor_ai2_pub2.a differ diff --git a/code/lib/source/sifar/code/source/common/sf_common.c b/code/lib/source/sifar/code/source/common/sf_common.c index 262abb5c0..5caa05453 100644 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -1501,7 +1501,9 @@ static SINT32 sf_cardv_proccess_cmd_para_update(SF_MESSAGE_BUF_S *pMessageBuf) sf_share_mem_customer_update(); //MLOGI("NeedTimeSyncStartUp = %d\n",puiPara->NeedTimeSyncStartUp); break; - + case SF_PARA_CMD_RESET: + Reset_MenuInfo(); + break; default: break; } @@ -1601,6 +1603,29 @@ static SINT32 sf_cardv_proccess_cmd_dev(SF_MESSAGE_BUF_S *pMessageBuf) } return SF_SUCCESS; } +static SINT32 sf_cardv_proccess_cmd_sd(SF_MESSAGE_BUF_S *pMessageBuf) +{ + UINT32 ret = 0; + + MLOGI("ID = %#x\n",pMessageBuf->arg1); + + switch(pMessageBuf->arg1) + { + case CMD_SD_FORMAT: + sf_set_card_statu(CMD_FORMAT_SD_STA); + BKG_PostEvent(NVTEVT_BKW_FORMAT_CARD); + while(CMD_FORMAT_SD_STA == sf_get_card_statu()) + { + usleep(10*1000); + } + ret = sf_get_card_statu(); + MLOGI("FORMAT_CARD ret:%d\n",ret); + break; + default: + break; + } + return SF_SUCCESS; +} void* sf_cardv_message_thread(void *argv) { @@ -1638,7 +1663,9 @@ void* sf_cardv_message_thread(void *argv) case CMD_DEV: sf_cardv_proccess_cmd_dev(&stMessagebuf); break; - default: + case CMD_SD: + sf_cardv_proccess_cmd_sd(&stMessagebuf); + break; default: break; } } diff --git a/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxHunting.c b/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxHunting.c index b3d5c5cc6..7bddfee8a 100644 --- a/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxHunting.c +++ b/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxHunting.c @@ -163,15 +163,17 @@ UINT32 DrvGPIO_GetPhotoMovieModeFromMonitor(void) switch(value) { - case 0: + case PWR_OFF: sf_mcu_reg_set(SF_MCU_POWEROFF,0); break; - case 1: + case PWR_ON_SETUP: #if SF_IQ_TEST == DISABLE - case 3: - case 8: - case 10://A - case 11://B + case PWR_ON_AUTO: + case PWR_ON_SMS: + case PWR_ON_DAILY_REPORT: + case PWR_ON_GPRS_INIT://A + case PWR_ON_TIME_SYNC://B + case PWR_ON_TIME_SEND: #endif g_uiBootMode = DX_HUNTING_MODE_OTHER; break; diff --git a/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h b/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h index 7c4216120..fd9837c32 100644 --- a/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h +++ b/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h @@ -952,11 +952,11 @@ #define MOVIE_AI_DEMO DISABLE #define HUNTING_MCU_I2C DISABLE #define HUNTING_MCU_UART ENABLE -#define HUNTING_IR_LED_940 DISABLE +#define HUNTING_IR_LED_940 ENABLE #define SF_EXIF_MN_BUF_SIZE 256 #define SF_BASE_VERSION "7MD4RCwD6T2" #define SF_TRIGGER_TIME_TEST DISABLE -#define SF_IQ_TEST ENABLE +#define SF_IQ_TEST DISABLE #define HUNTING_PHOTO_FAST_AE_60_FPS ENABLE #define HW_S530 1 diff --git a/rtos/code/hdal/vendor/isp/configs/dtsi/os05b10_iq_0_cap.dtsi b/rtos/code/hdal/vendor/isp/configs/dtsi/os05b10_iq_0_cap.dtsi index 0273c553f..770eac8e2 100755 --- a/rtos/code/hdal/vendor/isp/configs/dtsi/os05b10_iq_0_cap.dtsi +++ b/rtos/code/hdal/vendor/isp/configs/dtsi/os05b10_iq_0_cap.dtsi @@ -27,15 +27,15 @@ }; iq_ccm { size = [40 02 00 00]; - data = [00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ee 19 00 00 9d 01 82 ff e2 ff 53 ff 35 02 78 ff e2 ff 85 ff 99 01 8d 8f 84 82 80 8d 8f 88 86 84 7e 80 80 80 80 7c 7c 7e 80 80 84 82 82 8b 00 00 ec ff ff ff f0 ff ff ff ed ff ff ff f2 ff ff ff f6 ff ff ff 14 00 00 00 2e 00 00 00 39 00 00 00 40 00 00 00 26 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 09 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 f0 ff ff ff ee ff ff ff e9 ff ff ff e6 ff ff ff d8 0e 00 00 4c 01 be ff 09 00 8f ff 80 01 f1 ff 08 00 6b ff 8c 01 80 82 8b 8b 88 88 88 86 84 7e 80 80 80 80 80 80 80 80 80 80 80 80 80 84 00 00 fe ff ff ff fe ff ff ff 00 00 00 00 06 00 00 00 0c 00 00 00 15 00 00 00 1d 00 00 00 29 00 00 00 35 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fe ff ff ff a0 0b 00 00 38 01 cd ff fb ff 66 ff b0 01 eb ff 25 00 ca fe 11 02 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]; + data = [00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ee 19 00 00 9d 01 82 ff e2 ff 53 ff 35 02 78 ff e2 ff 85 ff 99 01 86 8b 82 82 88 96 93 8f 88 84 82 80 80 80 80 7c 7c 7e 80 80 84 82 82 88 00 00 f3 ff ff ff fb ff ff ff fe ff ff ff ff ff ff ff 02 00 00 00 19 00 00 00 30 00 00 00 3c 00 00 00 41 00 00 00 25 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 09 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 f0 ff ff ff ee ff ff ff ed ff ff ff ee ff ff ff d8 0e 00 00 4c 01 be ff 09 00 8f ff 80 01 f1 ff 08 00 6b ff 8c 01 80 82 8b 8b 88 88 88 86 84 7e 80 80 80 80 80 80 80 80 80 80 80 80 80 84 00 00 fe ff ff ff fe ff ff ff 00 00 00 00 06 00 00 00 0c 00 00 00 15 00 00 00 1d 00 00 00 29 00 00 00 35 00 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fe ff ff ff a0 0b 00 00 38 01 cd ff fb ff 66 ff b0 01 eb ff 25 00 ca fe 11 02 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00]; }; iq_color { size = [ec 06 00 00]; - data = [00 00 00 00 80 80 40 10 00 00 00 00 00 00 00 00 00 00 00 00 00 14 0f 0a 05 00 00 00 00 00 00 00 00 00 05 0a 0f 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 a8 89 4d 2e 18 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 76 00 00 00 7b 00 00 00 85 00 00 00 a1 00 00 00 a8 00 00 00 a1 00 00 00 94 00 00 00 85 00 00 00 85 00 00 00 85 00 00 00 94 00 00 00 94 00 00 00 94 00 00 00 94 00 00 00 8e 00 00 00 8e 00 00 00 85 00 00 00 8d 49 2a 12 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 72 00 00 00 5f 00 00 00 7b 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 7c ff b7 7e 4f 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 6e 40 20 10 04 00 00 00 00 00 00 00 00 00 00 00 6e 40 20 10 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 64 00 00 00 73 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 82 40 20 10 08 00 00 00 00 00 00 00 00 00 00 00 00 40 20 10 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 50 00 00 00 64 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 60 40 20 10 08 00 00 00 00 00 00 00 00 00 00 00 60 40 20 10 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 50 00 00 00 64 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 6e c8 78 46 20 10 00 00 00 00 00 00 00 00 00 00 00 c8 78 46 20 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 20 00 00 00 46 00 00 00 5a 00 00 00 6e 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 78 b4 6e 40 20 10 00 00 00 00 00 00 00 00 00 00 00 b4 6e 40 20 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 50 00 00 00 64 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00]; + data = [00 00 00 00 80 80 40 10 00 00 00 00 00 00 00 00 00 00 00 00 00 14 0f 0a 05 00 00 00 00 00 00 00 00 00 05 0a 0f 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 ac 89 4d 2e 18 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 76 00 00 00 7b 00 00 00 85 00 00 00 a1 00 00 00 a8 00 00 00 a1 00 00 00 94 00 00 00 85 00 00 00 85 00 00 00 85 00 00 00 94 00 00 00 94 00 00 00 94 00 00 00 94 00 00 00 8e 00 00 00 8e 00 00 00 85 00 00 00 a6 49 2a 12 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 72 00 00 00 5f 00 00 00 7b 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 8a 00 00 00 96 ff b7 7e 4f 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 6e 40 20 10 04 00 00 00 00 00 00 00 00 00 00 00 6e 40 20 10 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 64 00 00 00 73 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 82 40 20 10 08 00 00 00 00 00 00 00 00 00 00 00 00 40 20 10 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 50 00 00 00 64 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 8c 60 40 20 10 08 00 00 00 00 00 00 00 00 00 00 00 60 40 20 10 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 50 00 00 00 64 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 6e c8 78 46 20 10 00 00 00 00 00 00 00 00 00 00 00 c8 78 46 20 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 20 00 00 00 46 00 00 00 5a 00 00 00 6e 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 78 b4 6e 40 20 10 00 00 00 00 00 00 00 00 00 00 00 b4 6e 40 20 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 50 00 00 00 64 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00]; }; iq_contrast { size = [b0 00 00 00]; - data = [00 00 00 00 80 00 00 00 00 00 00 00 00 00 88 15 17 1b 1f 1f 1f 21 21 1f 88 15 17 1a 1f 1f 1f 1f 1f 1e 88 14 1e 2b 2d 32 32 2b 28 24 88 17 21 26 2d 2f 2f 2f 2f 25 8f 0e 0f 1c 28 28 28 28 28 23 97 00 0a 19 1e 1e 1e 1e 14 0a 96 00 05 0a 14 14 14 14 0a 00 be 00 00 00 00 00 00 00 00 00 80 05 05 05 05 05 05 05 05 05 80 0a 0a 0a 0a 0a 0a 0a 0a 0a 80 0a 0a 0a 0a 0a 0a 0a 0a 0a 80 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00]; + data = [00 00 00 00 80 00 00 00 00 00 00 00 00 00 8d 15 17 1b 1f 1f 1f 21 21 1f 8d 15 17 1a 1f 1f 1f 1f 1f 1e 8a 14 1e 2b 2d 32 32 2b 28 24 88 17 21 26 2d 2f 2f 2f 2f 25 8f 0e 0f 1c 28 28 28 28 28 23 97 00 0a 19 1e 1e 1e 1e 14 0a 96 00 05 0a 14 14 14 14 0a 00 be 00 00 00 00 00 00 00 00 00 80 05 05 05 05 05 05 05 05 05 80 0a 0a 0a 0a 0a 0a 0a 0a 0a 80 0a 0a 0a 0a 0a 0a 0a 0a 0a 80 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00]; }; iq_edge { size = [e0 05 00 00]; @@ -43,7 +43,7 @@ }; iq_3dnr { size = [64 1f 00 00]; - data = [01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 40 00 00 00 40 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 c8 00 00 00 c8 00 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 05 00 00 00 05 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 08 00 00 00 80 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 b4 00 00 00 e6 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 80 00 00 00 40 00 00 00 00 01 00 00 00 01 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 08 00 00 00 10 00 00 00 40 00 00 00 40 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 06 00 00 00 0c 00 00 00 18 00 00 00 28 00 00 00 4c 00 00 00 60 00 00 00 70 00 00 00 80 00 00 00 40 00 00 00 00 00 00 00 06 00 00 00 0c 00 00 00 18 00 00 00 28 00 00 00 4c 00 00 00 60 00 00 00 70 00 00 00 80 00 00 00 40 00 00 00 04 01 00 00 00 00 00 00 08 00 00 00 46 00 00 00 46 00 00 00 00 00 00 00 8c 00 00 00 8c 00 00 00 8c 00 00 00 fa 00 00 00 fa 00 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 c3 00 00 00 08 00 00 00 32 00 00 00 3c 00 00 00 46 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 11 00 00 00 10 00 00 00 10 00 00 00 11 00 00 00 0f 00 00 00 0f 00 00 00 0f 00 00 00 0f 00 00 00 be 00 00 00 be 00 00 00 be 00 00 00 be 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 21 00 00 00 21 00 00 00 1c 00 00 00 1c 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 08 00 00 00 10 00 00 00 03 00 00 00 10 00 00 00 14 00 00 00 04 00 00 00 01 01 01 00 01 00 00 00 00 04 0c 0a 02 00 02 00 00 00 00 00 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 08 00 00 00 e0 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 18 00 00 00 18 00 00 00 18 00 00 00 18 00 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 30 00 00 00 48 00 00 00 20 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 0c 00 00 00 1b 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0d 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 00 00 00 00 08 00 00 00 5a 00 00 00 5a 00 00 00 00 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 22 01 00 00 22 01 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 9d 00 00 00 08 00 00 00 32 00 00 00 3c 00 00 00 46 00 00 00 50 00 00 00 5a 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 17 00 00 00 16 00 00 00 16 00 00 00 17 00 00 00 15 00 00 00 15 00 00 00 15 00 00 00 15 00 00 00 82 00 00 00 82 00 00 00 82 00 00 00 82 00 00 00 78 00 00 00 78 00 00 00 78 00 00 00 78 00 00 00 23 00 00 00 23 00 00 00 1e 00 00 00 1e 00 00 00 19 00 00 00 19 00 00 00 19 00 00 00 19 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 04 00 00 00 01 01 01 00 01 00 00 00 00 04 10 0a 02 01 0a 04 01 00 00 00 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 08 00 00 00 f4 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 18 00 00 00 18 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 30 00 00 00 48 00 00 00 20 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 0c 00 00 00 1c 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0d 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 01 00 00 00 08 00 00 00 64 00 00 00 64 00 00 00 00 00 00 00 c8 00 00 00 c8 00 00 00 2c 01 00 00 2c 01 00 00 2c 01 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 b4 00 00 00 08 00 00 00 04 01 00 00 04 01 00 00 04 01 00 00 04 01 00 00 c8 00 00 00 c8 00 00 00 c8 00 00 00 c8 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 15 00 00 00 15 00 00 00 15 00 00 00 15 00 00 00 d2 00 00 00 c8 00 00 00 c8 00 00 00 c8 00 00 00 be 00 00 00 be 00 00 00 be 00 00 00 be 00 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 46 64 10 0c 06 10 00 00 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 f4 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 02 00 00 00 40 00 00 00 80 00 00 00 30 00 00 00 0e 00 00 00 08 00 00 00 00 00 00 00 0c 00 00 00 16 00 00 00 25 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 10 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 02 00 00 01 00 00 00 08 00 00 00 a0 00 00 00 a0 00 00 00 00 00 00 00 40 01 00 00 40 01 00 00 40 01 00 00 f4 01 00 00 f4 01 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 cb 00 00 00 08 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 1f 00 00 00 1e 00 00 00 1e 00 00 00 1f 00 00 00 1d 00 00 00 1d 00 00 00 1d 00 00 00 1d 00 00 00 0e 01 00 00 04 01 00 00 04 01 00 00 04 01 00 00 fa 00 00 00 fa 00 00 00 fa 00 00 00 fa 00 00 00 37 00 00 00 37 00 00 00 32 00 00 00 32 00 00 00 2d 00 00 00 2d 00 00 00 2d 00 00 00 2d 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 50 78 12 0e 08 00 00 00 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 bc 02 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 40 00 00 00 40 00 00 00 40 00 00 00 20 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 64 00 00 00 c8 00 00 00 40 00 00 00 18 00 00 00 0c 00 00 00 00 00 00 00 0c 00 00 00 19 00 00 00 28 00 00 00 3c 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 10 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 02 00 00 00 08 00 00 00 b4 00 00 00 b4 00 00 00 00 00 00 00 1c 02 00 00 1c 02 00 00 1c 02 00 00 80 02 00 00 80 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 98 00 00 00 08 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 78 00 00 00 78 00 00 00 78 00 00 00 78 00 00 00 1e 00 00 00 1d 00 00 00 1d 00 00 00 1e 00 00 00 1c 00 00 00 1c 00 00 00 1c 00 00 00 1c 00 00 00 e6 00 00 00 dc 00 00 00 dc 00 00 00 dc 00 00 00 d2 00 00 00 d2 00 00 00 d2 00 00 00 d2 00 00 00 34 00 00 00 34 00 00 00 2f 00 00 00 2f 00 00 00 2a 00 00 00 2a 00 00 00 2a 00 00 00 2a 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 50 78 14 0e 08 00 00 00 00 00 00 0c 00 00 00 10 00 00 00 18 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 f4 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 40 00 00 00 40 00 00 00 40 00 00 00 20 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 50 00 00 00 a0 00 00 00 40 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 0c 00 00 00 19 00 00 00 25 00 00 00 34 00 00 00 4a 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0d 00 00 00 20 00 00 00 30 00 00 00 3e 00 00 00 48 00 00 00 57 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 02 00 00 00 08 00 00 00 c8 00 00 00 c8 00 00 00 00 00 00 00 7c 01 00 00 7c 01 00 00 7c 01 00 00 20 03 00 00 20 03 00 00 03 00 00 00 03 00 00 00 02 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 d8 00 00 00 08 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 1d 00 00 00 1c 00 00 00 1c 00 00 00 1d 00 00 00 1b 00 00 00 1b 00 00 00 1b 00 00 00 1b 00 00 00 5e 01 00 00 54 01 00 00 54 01 00 00 54 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 48 00 00 00 48 00 00 00 43 00 00 00 43 00 00 00 3e 00 00 00 3e 00 00 00 3e 00 00 00 3e 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 b4 c8 14 0a 05 20 08 02 00 00 00 0c 00 00 00 10 00 00 00 18 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 f4 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 64 00 00 00 64 00 00 00 40 00 00 00 20 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 ff 00 00 00 ff 00 00 00 40 00 00 00 0c 00 00 00 06 00 00 00 00 00 00 00 07 00 00 00 10 00 00 00 2c 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0d 00 00 00 15 00 00 00 1e 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 2c 01 00 00 2c 01 00 00 00 00 00 00 f4 01 00 00 f4 01 00 00 f4 01 00 00 20 03 00 00 20 03 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 c3 00 00 00 08 00 00 00 96 00 00 00 96 00 00 00 96 00 00 00 96 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 1e 00 00 00 1d 00 00 00 1d 00 00 00 1e 00 00 00 1c 00 00 00 1c 00 00 00 1c 00 00 00 1c 00 00 00 2c 01 00 00 22 01 00 00 22 01 00 00 22 01 00 00 18 01 00 00 18 01 00 00 18 01 00 00 18 01 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 32 64 14 0a 05 40 0c 02 00 00 00 0c 00 00 00 10 00 00 00 18 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 20 03 00 00 2c 01 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 80 00 00 00 ff 00 00 00 40 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 06 00 00 00 0f 00 00 00 29 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 0b 00 00 00 13 00 00 00 1c 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 40 00 00 00 20 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 2c 01 00 00 2c 01 00 00 00 00 00 00 f4 01 00 00 f4 01 00 00 f4 01 00 00 e8 03 00 00 e8 03 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 c3 00 00 00 08 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 28 00 00 00 27 00 00 00 27 00 00 00 28 00 00 00 26 00 00 00 26 00 00 00 26 00 00 00 26 00 00 00 90 01 00 00 86 01 00 00 86 01 00 00 86 01 00 00 7c 01 00 00 7c 01 00 00 7c 01 00 00 7c 01 00 00 62 00 00 00 62 00 00 00 5d 00 00 00 5d 00 00 00 58 00 00 00 58 00 00 00 58 00 00 00 58 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 3c 64 82 40 0c 04 40 0c 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 e8 03 00 00 e8 03 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 0c 00 00 00 50 00 00 00 78 00 00 00 80 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 0d 00 00 00 1b 00 00 00 2c 00 00 00 38 00 00 00 3f 00 00 00 45 00 00 00 4b 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 0b 00 00 00 13 00 00 00 1c 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 40 00 00 00 20 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 96 00 00 00 96 00 00 00 00 00 00 00 dc 00 00 00 dc 00 00 00 dc 00 00 00 20 03 00 00 20 03 00 00 03 00 00 00 03 00 00 00 02 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 80 00 00 00 07 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 21 00 00 00 20 00 00 00 20 00 00 00 21 00 00 00 1f 00 00 00 1f 00 00 00 1f 00 00 00 1f 00 00 00 ea 01 00 00 e0 01 00 00 e0 01 00 00 e0 01 00 00 d6 01 00 00 d6 01 00 00 d6 01 00 00 d6 01 00 00 49 00 00 00 49 00 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 46 69 8c 1e 08 04 14 08 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 e8 03 00 00 e8 03 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 3c 00 00 00 6e 00 00 00 64 00 00 00 20 00 00 00 10 00 00 00 00 00 00 00 09 00 00 00 11 00 00 00 17 00 00 00 1f 00 00 00 27 00 00 00 2d 00 00 00 36 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0b 00 00 00 13 00 00 00 1c 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 96 00 00 00 96 00 00 00 00 00 00 00 dc 00 00 00 dc 00 00 00 dc 00 00 00 84 03 00 00 84 03 00 00 02 00 00 00 02 00 00 00 01 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 80 00 00 00 07 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 2c 00 00 00 2b 00 00 00 2b 00 00 00 2c 00 00 00 2a 00 00 00 2a 00 00 00 2a 00 00 00 2a 00 00 00 80 02 00 00 76 02 00 00 76 02 00 00 76 02 00 00 6c 02 00 00 6c 02 00 00 6c 02 00 00 6c 02 00 00 49 00 00 00 49 00 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 64 6e 8c 32 08 04 14 08 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 e8 03 00 00 e8 03 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 3c 00 00 00 6e 00 00 00 64 00 00 00 20 00 00 00 10 00 00 00 00 00 00 00 07 00 00 00 0c 00 00 00 15 00 00 00 1e 00 00 00 26 00 00 00 2c 00 00 00 34 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 08 00 00 00 11 00 00 00 1a 00 00 00 21 00 00 00 27 00 00 00 2f 00 00 00 3a 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 96 00 00 00 96 00 00 00 00 00 00 00 dc 00 00 00 dc 00 00 00 dc 00 00 00 84 03 00 00 84 03 00 00 02 00 00 00 02 00 00 00 01 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 80 00 00 00 07 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 2f 00 00 00 2e 00 00 00 2e 00 00 00 2f 00 00 00 2d 00 00 00 2d 00 00 00 2d 00 00 00 2d 00 00 00 81 02 00 00 77 02 00 00 77 02 00 00 77 02 00 00 6d 02 00 00 6d 02 00 00 6d 02 00 00 6d 02 00 00 49 00 00 00 49 00 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 b4 78 a0 50 08 04 14 08 02 00 00 00 10 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 40 00 00 00 20 00 00 00 e8 03 00 00 e8 03 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 3c 00 00 00 6e 00 00 00 64 00 00 00 20 00 00 00 10 00 00 00 00 00 00 00 07 00 00 00 0c 00 00 00 15 00 00 00 1e 00 00 00 26 00 00 00 2c 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 0b 00 00 00 13 00 00 00 1c 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 c8 00 00 00 c8 00 00 00 00 00 00 00 90 01 00 00 90 01 00 00 90 01 00 00 58 02 00 00 58 02 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 07 00 00 00 05 00 00 00 05 00 00 00 05 00 00 00 0f 00 00 00 0f 00 00 00 0f 00 00 00 0f 00 00 00 af 00 00 00 03 00 00 00 00 04 00 00 4c 04 00 00 b0 04 00 00 14 05 00 00 14 05 00 00 14 05 00 00 14 05 00 00 14 05 00 00 19 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 23 00 00 00 23 00 00 00 14 00 00 00 14 00 00 00 50 00 00 00 6e 00 00 00 6e 00 00 00 6e 00 00 00 8c 00 00 00 96 00 00 00 a0 00 00 00 a0 00 00 00 3c 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 44 00 00 00 50 00 00 00 50 00 00 00 5a 00 00 00 10 00 00 00 14 00 00 00 03 00 00 00 b4 00 00 00 c8 00 00 00 04 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8c 00 00 00 96 00 00 00 a0 00 00 00 aa 00 00 00 80 00 00 00 40 00 00 00 b8 0b 00 00 70 17 00 00 10 00 00 00 10 00 00 00 20 00 00 00 20 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 40 00 00 00 80 00 00 00 ff 00 00 00 10 00 00 00 06 00 00 00 00 00 00 00 06 00 00 00 0d 00 00 00 15 00 00 00 1c 00 00 00 26 00 00 00 2f 00 00 00 3a 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 08 00 00 00 09 00 00 00 09 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0b 00 00 00 0b 00 00 00 96 00 00 00 03 00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 18 00 00 00 18 00 00 00 17 00 00 00 15 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 08 00 00 00 10 00 00 00 14 00 00 00 b4 00 00 00 e6 00 00 00 02 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 6e 00 00 00 78 00 00 00 82 00 00 00 80 00 00 00 40 00 00 00 b0 04 00 00 d0 07 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 14 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 20 00 00 00 80 00 00 00 ff 00 00 00 20 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 08 00 00 00 09 00 00 00 09 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0b 00 00 00 0b 00 00 00 96 00 00 00 03 00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 18 00 00 00 18 00 00 00 17 00 00 00 15 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 08 00 00 00 10 00 00 00 14 00 00 00 b4 00 00 00 e6 00 00 00 02 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 6e 00 00 00 78 00 00 00 82 00 00 00 80 00 00 00 40 00 00 00 b0 04 00 00 d0 07 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 14 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 20 00 00 00 80 00 00 00 ff 00 00 00 20 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 08 00 00 00 09 00 00 00 09 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0b 00 00 00 0b 00 00 00 96 00 00 00 03 00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 18 00 00 00 18 00 00 00 17 00 00 00 15 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 08 00 00 00 10 00 00 00 14 00 00 00 b4 00 00 00 e6 00 00 00 02 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 6e 00 00 00 78 00 00 00 82 00 00 00 80 00 00 00 40 00 00 00 b0 04 00 00 d0 07 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 14 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 20 00 00 00 80 00 00 00 ff 00 00 00 20 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 08 00 00 00 09 00 00 00 09 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0b 00 00 00 0b 00 00 00 96 00 00 00 03 00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 18 00 00 00 18 00 00 00 17 00 00 00 15 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 08 00 00 00 10 00 00 00 14 00 00 00 b4 00 00 00 e6 00 00 00 02 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 6e 00 00 00 78 00 00 00 82 00 00 00 80 00 00 00 40 00 00 00 b0 04 00 00 d0 07 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 14 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 20 00 00 00 80 00 00 00 ff 00 00 00 20 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00]; + data = [01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0f 00 00 00 40 00 00 00 40 00 00 00 00 00 00 00 80 00 00 00 80 00 00 00 80 00 00 00 c8 00 00 00 c8 00 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 05 00 00 00 05 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 08 00 00 00 80 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 b4 00 00 00 e6 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 80 00 00 00 40 00 00 00 00 01 00 00 00 01 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 08 00 00 00 10 00 00 00 40 00 00 00 40 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 06 00 00 00 0c 00 00 00 18 00 00 00 28 00 00 00 4c 00 00 00 60 00 00 00 70 00 00 00 80 00 00 00 40 00 00 00 00 00 00 00 06 00 00 00 0c 00 00 00 18 00 00 00 28 00 00 00 4c 00 00 00 60 00 00 00 70 00 00 00 80 00 00 00 40 00 00 00 04 01 00 00 00 00 00 00 08 00 00 00 46 00 00 00 46 00 00 00 00 00 00 00 8c 00 00 00 8c 00 00 00 8c 00 00 00 fa 00 00 00 fa 00 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 c3 00 00 00 08 00 00 00 32 00 00 00 3c 00 00 00 46 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 11 00 00 00 10 00 00 00 10 00 00 00 11 00 00 00 0f 00 00 00 0f 00 00 00 0f 00 00 00 0f 00 00 00 be 00 00 00 be 00 00 00 be 00 00 00 be 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 21 00 00 00 21 00 00 00 1c 00 00 00 1c 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 08 00 00 00 10 00 00 00 03 00 00 00 10 00 00 00 14 00 00 00 04 00 00 00 01 01 01 00 01 00 00 00 00 08 1a 0a 04 02 0a 02 01 00 00 00 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 08 00 00 00 e0 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 18 00 00 00 18 00 00 00 18 00 00 00 18 00 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 38 00 00 00 5a 00 00 00 20 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 0c 00 00 00 1b 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0d 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 00 00 00 00 08 00 00 00 5a 00 00 00 5a 00 00 00 00 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 22 01 00 00 22 01 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 9d 00 00 00 08 00 00 00 32 00 00 00 3c 00 00 00 46 00 00 00 50 00 00 00 5a 00 00 00 64 00 00 00 64 00 00 00 64 00 00 00 17 00 00 00 16 00 00 00 16 00 00 00 17 00 00 00 15 00 00 00 15 00 00 00 15 00 00 00 15 00 00 00 82 00 00 00 82 00 00 00 82 00 00 00 82 00 00 00 78 00 00 00 78 00 00 00 78 00 00 00 78 00 00 00 23 00 00 00 23 00 00 00 1e 00 00 00 1e 00 00 00 19 00 00 00 19 00 00 00 19 00 00 00 19 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 04 00 00 00 01 01 01 00 01 00 00 00 00 0a 20 0a 04 03 0a 04 01 00 00 00 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 08 00 00 00 f4 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 18 00 00 00 18 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 38 00 00 00 5a 00 00 00 20 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 0c 00 00 00 1c 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0d 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 01 00 00 00 08 00 00 00 64 00 00 00 64 00 00 00 00 00 00 00 c8 00 00 00 c8 00 00 00 2c 01 00 00 2c 01 00 00 2c 01 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 b4 00 00 00 08 00 00 00 04 01 00 00 04 01 00 00 04 01 00 00 04 01 00 00 c8 00 00 00 c8 00 00 00 c8 00 00 00 c8 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 17 00 00 00 15 00 00 00 15 00 00 00 15 00 00 00 15 00 00 00 d2 00 00 00 c8 00 00 00 c8 00 00 00 c8 00 00 00 be 00 00 00 be 00 00 00 be 00 00 00 be 00 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 46 64 10 0c 06 10 00 00 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 f4 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 02 00 00 00 40 00 00 00 80 00 00 00 30 00 00 00 0e 00 00 00 08 00 00 00 00 00 00 00 0c 00 00 00 16 00 00 00 25 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 10 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 02 00 00 01 00 00 00 08 00 00 00 a0 00 00 00 a0 00 00 00 00 00 00 00 40 01 00 00 40 01 00 00 40 01 00 00 f4 01 00 00 f4 01 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 cb 00 00 00 08 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 1f 00 00 00 1e 00 00 00 1e 00 00 00 1f 00 00 00 1d 00 00 00 1d 00 00 00 1d 00 00 00 1d 00 00 00 0e 01 00 00 04 01 00 00 04 01 00 00 04 01 00 00 fa 00 00 00 fa 00 00 00 fa 00 00 00 fa 00 00 00 37 00 00 00 37 00 00 00 32 00 00 00 32 00 00 00 2d 00 00 00 2d 00 00 00 2d 00 00 00 2d 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 50 78 12 0e 08 00 00 00 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 bc 02 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 40 00 00 00 40 00 00 00 40 00 00 00 20 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 64 00 00 00 c8 00 00 00 40 00 00 00 18 00 00 00 0c 00 00 00 00 00 00 00 0c 00 00 00 19 00 00 00 28 00 00 00 3c 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 10 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 02 00 00 00 08 00 00 00 b4 00 00 00 b4 00 00 00 00 00 00 00 1c 02 00 00 1c 02 00 00 1c 02 00 00 80 02 00 00 80 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 98 00 00 00 08 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 b4 00 00 00 78 00 00 00 78 00 00 00 78 00 00 00 78 00 00 00 1e 00 00 00 1d 00 00 00 1d 00 00 00 1e 00 00 00 1c 00 00 00 1c 00 00 00 1c 00 00 00 1c 00 00 00 e6 00 00 00 dc 00 00 00 dc 00 00 00 dc 00 00 00 d2 00 00 00 d2 00 00 00 d2 00 00 00 d2 00 00 00 34 00 00 00 34 00 00 00 2f 00 00 00 2f 00 00 00 2a 00 00 00 2a 00 00 00 2a 00 00 00 2a 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 50 78 14 0e 08 00 00 00 00 00 00 0c 00 00 00 10 00 00 00 18 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 f4 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 40 00 00 00 40 00 00 00 40 00 00 00 20 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 50 00 00 00 a0 00 00 00 40 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 0c 00 00 00 19 00 00 00 25 00 00 00 34 00 00 00 4a 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0d 00 00 00 20 00 00 00 30 00 00 00 3e 00 00 00 48 00 00 00 57 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 02 00 00 00 08 00 00 00 c8 00 00 00 c8 00 00 00 00 00 00 00 7c 01 00 00 7c 01 00 00 7c 01 00 00 20 03 00 00 20 03 00 00 03 00 00 00 03 00 00 00 02 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 d8 00 00 00 08 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 1d 00 00 00 1c 00 00 00 1c 00 00 00 1d 00 00 00 1b 00 00 00 1b 00 00 00 1b 00 00 00 1b 00 00 00 5e 01 00 00 54 01 00 00 54 01 00 00 54 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 48 00 00 00 48 00 00 00 43 00 00 00 43 00 00 00 3e 00 00 00 3e 00 00 00 3e 00 00 00 3e 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 b4 c8 14 0a 05 20 08 02 00 00 00 0c 00 00 00 10 00 00 00 18 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 f4 01 00 00 c8 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 64 00 00 00 64 00 00 00 40 00 00 00 20 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 ff 00 00 00 ff 00 00 00 40 00 00 00 0c 00 00 00 06 00 00 00 00 00 00 00 07 00 00 00 10 00 00 00 2c 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0d 00 00 00 15 00 00 00 1e 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 2c 01 00 00 2c 01 00 00 00 00 00 00 f4 01 00 00 f4 01 00 00 f4 01 00 00 20 03 00 00 20 03 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 c3 00 00 00 08 00 00 00 96 00 00 00 96 00 00 00 96 00 00 00 96 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 1e 00 00 00 1d 00 00 00 1d 00 00 00 1e 00 00 00 1c 00 00 00 1c 00 00 00 1c 00 00 00 1c 00 00 00 2c 01 00 00 22 01 00 00 22 01 00 00 22 01 00 00 18 01 00 00 18 01 00 00 18 01 00 00 18 01 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 00 32 64 14 0a 05 40 0c 02 00 00 00 0c 00 00 00 10 00 00 00 18 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 20 03 00 00 2c 01 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 80 00 00 00 ff 00 00 00 40 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 06 00 00 00 0f 00 00 00 29 00 00 00 40 00 00 00 50 00 00 00 60 00 00 00 70 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 0b 00 00 00 13 00 00 00 1c 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 40 00 00 00 20 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 2c 01 00 00 2c 01 00 00 00 00 00 00 f4 01 00 00 f4 01 00 00 f4 01 00 00 e8 03 00 00 e8 03 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 c3 00 00 00 08 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 28 00 00 00 27 00 00 00 27 00 00 00 28 00 00 00 26 00 00 00 26 00 00 00 26 00 00 00 26 00 00 00 90 01 00 00 86 01 00 00 86 01 00 00 86 01 00 00 7c 01 00 00 7c 01 00 00 7c 01 00 00 7c 01 00 00 62 00 00 00 62 00 00 00 5d 00 00 00 5d 00 00 00 58 00 00 00 58 00 00 00 58 00 00 00 58 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 3c 64 82 40 0c 04 40 0c 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 e8 03 00 00 e8 03 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 0c 00 00 00 50 00 00 00 78 00 00 00 80 00 00 00 10 00 00 00 08 00 00 00 00 00 00 00 0d 00 00 00 1b 00 00 00 2c 00 00 00 38 00 00 00 3f 00 00 00 45 00 00 00 4b 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 0b 00 00 00 13 00 00 00 1c 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 40 00 00 00 20 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 96 00 00 00 96 00 00 00 00 00 00 00 dc 00 00 00 dc 00 00 00 dc 00 00 00 20 03 00 00 20 03 00 00 03 00 00 00 03 00 00 00 02 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 80 00 00 00 07 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 21 00 00 00 20 00 00 00 20 00 00 00 21 00 00 00 1f 00 00 00 1f 00 00 00 1f 00 00 00 1f 00 00 00 ea 01 00 00 e0 01 00 00 e0 01 00 00 e0 01 00 00 d6 01 00 00 d6 01 00 00 d6 01 00 00 d6 01 00 00 49 00 00 00 49 00 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 46 69 8c 1e 08 04 14 08 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 e8 03 00 00 e8 03 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 3c 00 00 00 6e 00 00 00 64 00 00 00 20 00 00 00 10 00 00 00 00 00 00 00 09 00 00 00 11 00 00 00 17 00 00 00 1f 00 00 00 27 00 00 00 2d 00 00 00 36 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 0b 00 00 00 13 00 00 00 1c 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 96 00 00 00 96 00 00 00 00 00 00 00 dc 00 00 00 dc 00 00 00 dc 00 00 00 84 03 00 00 84 03 00 00 02 00 00 00 02 00 00 00 01 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 80 00 00 00 07 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 2c 00 00 00 2b 00 00 00 2b 00 00 00 2c 00 00 00 2a 00 00 00 2a 00 00 00 2a 00 00 00 2a 00 00 00 80 02 00 00 76 02 00 00 76 02 00 00 76 02 00 00 6c 02 00 00 6c 02 00 00 6c 02 00 00 6c 02 00 00 49 00 00 00 49 00 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 64 6e 8c 32 08 04 14 08 02 00 00 00 04 00 00 00 08 00 00 00 10 00 00 00 20 00 00 00 40 00 00 00 20 00 00 00 e8 03 00 00 e8 03 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 3c 00 00 00 6e 00 00 00 64 00 00 00 20 00 00 00 10 00 00 00 00 00 00 00 07 00 00 00 0c 00 00 00 15 00 00 00 1e 00 00 00 26 00 00 00 2c 00 00 00 34 00 00 00 64 00 00 00 30 00 00 00 00 00 00 00 08 00 00 00 11 00 00 00 1a 00 00 00 21 00 00 00 27 00 00 00 2f 00 00 00 3a 00 00 00 64 00 00 00 30 00 00 00 02 01 00 00 03 00 00 00 08 00 00 00 96 00 00 00 96 00 00 00 00 00 00 00 dc 00 00 00 dc 00 00 00 dc 00 00 00 84 03 00 00 84 03 00 00 02 00 00 00 02 00 00 00 01 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 07 00 00 00 07 00 00 00 08 00 00 00 80 00 00 00 07 00 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 4a 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 0e 01 00 00 2f 00 00 00 2e 00 00 00 2e 00 00 00 2f 00 00 00 2d 00 00 00 2d 00 00 00 2d 00 00 00 2d 00 00 00 81 02 00 00 77 02 00 00 77 02 00 00 77 02 00 00 6d 02 00 00 6d 02 00 00 6d 02 00 00 6d 02 00 00 49 00 00 00 49 00 00 00 44 00 00 00 44 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 3f 00 00 00 08 00 00 00 10 00 00 00 04 00 00 00 10 00 00 00 14 00 00 00 06 00 00 00 01 01 01 00 01 00 00 00 b4 78 a0 50 08 04 14 08 02 00 00 00 10 00 00 00 20 00 00 00 30 00 00 00 40 00 00 00 40 00 00 00 20 00 00 00 e8 03 00 00 e8 03 00 00 08 00 00 00 08 00 00 00 08 00 00 00 08 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 3c 00 00 00 6e 00 00 00 64 00 00 00 20 00 00 00 10 00 00 00 00 00 00 00 07 00 00 00 0c 00 00 00 15 00 00 00 1e 00 00 00 26 00 00 00 2c 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 0b 00 00 00 13 00 00 00 1c 00 00 00 23 00 00 00 29 00 00 00 31 00 00 00 3c 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 c8 00 00 00 c8 00 00 00 00 00 00 00 90 01 00 00 90 01 00 00 90 01 00 00 58 02 00 00 58 02 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 03 00 00 00 07 00 00 00 05 00 00 00 05 00 00 00 05 00 00 00 0f 00 00 00 0f 00 00 00 0f 00 00 00 0f 00 00 00 af 00 00 00 03 00 00 00 00 04 00 00 4c 04 00 00 b0 04 00 00 14 05 00 00 14 05 00 00 14 05 00 00 14 05 00 00 14 05 00 00 19 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 23 00 00 00 23 00 00 00 14 00 00 00 14 00 00 00 50 00 00 00 6e 00 00 00 6e 00 00 00 6e 00 00 00 8c 00 00 00 96 00 00 00 a0 00 00 00 a0 00 00 00 3c 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 44 00 00 00 50 00 00 00 50 00 00 00 5a 00 00 00 10 00 00 00 14 00 00 00 03 00 00 00 b4 00 00 00 c8 00 00 00 04 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8c 00 00 00 96 00 00 00 a0 00 00 00 aa 00 00 00 80 00 00 00 40 00 00 00 b8 0b 00 00 70 17 00 00 10 00 00 00 10 00 00 00 20 00 00 00 20 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 40 00 00 00 80 00 00 00 ff 00 00 00 10 00 00 00 06 00 00 00 00 00 00 00 06 00 00 00 0d 00 00 00 15 00 00 00 1c 00 00 00 26 00 00 00 2f 00 00 00 3a 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 08 00 00 00 09 00 00 00 09 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0b 00 00 00 0b 00 00 00 96 00 00 00 03 00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 18 00 00 00 18 00 00 00 17 00 00 00 15 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 08 00 00 00 10 00 00 00 14 00 00 00 b4 00 00 00 e6 00 00 00 02 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 6e 00 00 00 78 00 00 00 82 00 00 00 80 00 00 00 40 00 00 00 b0 04 00 00 d0 07 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 14 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 20 00 00 00 80 00 00 00 ff 00 00 00 20 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 08 00 00 00 09 00 00 00 09 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0b 00 00 00 0b 00 00 00 96 00 00 00 03 00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 18 00 00 00 18 00 00 00 17 00 00 00 15 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 08 00 00 00 10 00 00 00 14 00 00 00 b4 00 00 00 e6 00 00 00 02 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 6e 00 00 00 78 00 00 00 82 00 00 00 80 00 00 00 40 00 00 00 b0 04 00 00 d0 07 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 14 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 20 00 00 00 80 00 00 00 ff 00 00 00 20 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 08 00 00 00 09 00 00 00 09 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0b 00 00 00 0b 00 00 00 96 00 00 00 03 00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 18 00 00 00 18 00 00 00 17 00 00 00 15 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 08 00 00 00 10 00 00 00 14 00 00 00 b4 00 00 00 e6 00 00 00 02 00 00 00 01 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 6e 00 00 00 78 00 00 00 82 00 00 00 80 00 00 00 40 00 00 00 b0 04 00 00 d0 07 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 14 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 20 00 00 00 80 00 00 00 ff 00 00 00 20 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00 00 00 00 00 0f 00 00 00 80 00 00 00 80 00 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 02 00 00 04 00 00 00 04 00 00 00 03 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00 00 08 00 00 00 09 00 00 00 09 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 0b 00 00 00 0b 00 00 00 96 00 00 00 03 00 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00 18 00 00 00 18 00 00 00 17 00 00 00 15 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 16 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 3c 00 00 00 08 00 00 00 10 00 00 00 14 00 00 00 b4 00 00 00 e6 00 00 00 02 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 00 00 6e 00 00 00 78 00 00 00 82 00 00 00 80 00 00 00 40 00 00 00 b0 04 00 00 d0 07 00 00 14 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 14 00 00 00 18 00 00 00 18 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 00 00 00 00 20 00 00 00 80 00 00 00 ff 00 00 00 20 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 40 00 00 00 20 00 00 00 00 00 00 00 06 00 00 00 0b 00 00 00 0b 00 00 00 13 00 00 00 18 00 00 00 21 00 00 00 34 00 00 00 40 00 00 00 20 00 00 00 04 01 00 00]; }; iq_wdr { size = [e4 02 00 00];