[Feature][ZXW-41] merged 0601 version

Change-Id: I667af6bb09d65581d455b73f8984c160b2c67ad8
diff --git a/ap/app/Script/scripts/defwan_set.sh b/ap/app/Script/scripts/defwan_set.sh
index bac6f8f..40386c8 100644
--- a/ap/app/Script/scripts/defwan_set.sh
+++ b/ap/app/Script/scripts/defwan_set.sh
@@ -35,7 +35,7 @@
 if [ "-$ipaddr_type" == "-IPv4" -o "-$ipaddr_type" == "-IPv4v6" -o "-$ipaddr_type" == "-IPV4V6" -o "-$ipaddr_type" == "-" ];then
 	#ÉèÖÃIPv4µÄĬÈÏÍø¹Ø
 	route del default
-	Flag=`route | grep -w "default"`
+	Flag=`ip route | grep -w "default"`
 	if [ "-$Flag" != "-" ];then
 	    echo "Error: route del default failed." >> $test_log
 	fi
diff --git a/ap/app/Script/scripts/ppp_updown.sh b/ap/app/Script/scripts/ppp_updown.sh
index 7425a33..f36ea86 100755
--- a/ap/app/Script/scripts/ppp_updown.sh
+++ b/ap/app/Script/scripts/ppp_updown.sh
@@ -95,7 +95,7 @@
 	#±¾µØÍøÂçÅäÖÃ
     iptables -t nat -I POSTROUTING -s $ps_ip -o $ps_if -j SNAT --to $pdp_ip
     
-	route_info=`route|grep default`
+	route_info=`ip route|grep default`
 	
 	if [ "$route_info" == "" ];then
 		route add default dev $ps_if
diff --git a/ap/app/Script/scripts/psext_up.sh b/ap/app/Script/scripts/psext_up.sh
index ecd67ba..7a51bbf 100755
--- a/ap/app/Script/scripts/psext_up.sh
+++ b/ap/app/Script/scripts/psext_up.sh
@@ -46,7 +46,7 @@
 	    echo "Error: ifconfig $ps_if $ps_ip up failed." >> $test_log
     fi
 	nv set default_wan_rel=$ps_if
-	nv set default_cid=$c_id
+	#nv set default_cid=$c_id
 	nv set $ext_br"_ip"=$br_ip
 	ifconfig $ext_br $br_ip 2>>$test_log
 	if [ $? -ne 0 ];then
@@ -76,7 +76,7 @@
     #±¾µØÍøÂçÅäÖÃ
     iptables -t nat -I POSTROUTING -s $ps_ip -o $ps_if -j SNAT --to $pdp_ip
     
-	route_info=`route|grep default`
+	route_info=`ip route|grep default`
 	
 	if [ "$route_info" == "" ];then
 		route add default dev $ps_if
diff --git a/ap/app/Script/scripts/psext_updown.sh b/ap/app/Script/scripts/psext_updown.sh
index 7723f5b..890a6f1 100755
--- a/ap/app/Script/scripts/psext_updown.sh
+++ b/ap/app/Script/scripts/psext_updown.sh
@@ -282,7 +282,7 @@
 	    echo "Error: ifconfig $ps_if $ps_ip up failed." >> $test_log
     fi
 	nv set default_wan_rel=$ps_if
-	nv set default_cid=$c_id
+	#nv set default_cid=$c_id
 	nv set $ext_br"_ip"=$br_ip
 	ifconfig $ext_br $br_ip 2>>$test_log
 	if [ $? -ne 0 ];then
@@ -312,7 +312,7 @@
     #±¾µØÍøÂçÅäÖÃ
     iptables -t nat -I POSTROUTING -s $ps_ip -o $ps_if -j SNAT --to $pdp_ip
     
-	route_info=`route|grep default`
+	route_info=`ip route|grep default`
 	
 	if [ "$route_info" == "" ];then
 		route add default dev $ps_if
diff --git a/ap/app/Script/scripts/wan_ipv6.sh b/ap/app/Script/scripts/wan_ipv6.sh
index d7045caa..3f4330f 100755
--- a/ap/app/Script/scripts/wan_ipv6.sh
+++ b/ap/app/Script/scripts/wan_ipv6.sh
@@ -328,7 +328,7 @@
 		#if [ $? -ne 0 ];then
 	        #echo "Error: ip -6 rule del from $wan_addr table $rt_num failed." >> $test_log
         #fi
-		if [ -n "$default_gw_addr_temp" ] ; then
+		if [ -n "$default_gw_addr_temp" ] && [ "-$default_gw_addr_temp" != "-::" ] ; then
 			ip -6 route del default via $default_gw_addr_temp dev $wan_if table $rt_num 
 			#if [ $? -ne 0 ];then
 	            #echo "Error: ip -6 route del default via $default_gw_addr_temp dev $wan_if table $rt_num failed." >> $test_log
diff --git a/ap/app/busybox/src/networking/udhcp/dhcpd.c b/ap/app/busybox/src/networking/udhcp/dhcpd.c
index 279a059..550b1d6 100755
--- a/ap/app/busybox/src/networking/udhcp/dhcpd.c
+++ b/ap/app/busybox/src/networking/udhcp/dhcpd.c
@@ -542,7 +542,11 @@
 
 		case DHCPDISCOVER:
 			log1("Received DISCOVER");
-
+			//update br mac
+			udhcp_read_interface(server_config.interface,
+				&server_config.ifindex,
+				&server_config.server_nip,
+				server_config.server_mac);
 			send_offer(&packet, static_lease_nip, lease, requested_ip_opt);
 			break;
 
diff --git a/ap/app/crc/crc.c b/ap/app/crc/crc.c
index ee14405..bb4aa1b 100755
--- a/ap/app/crc/crc.c
+++ b/ap/app/crc/crc.c
@@ -329,6 +329,24 @@
 

 }

 

+static void com_SetIO_Para(int32_t iFdCom)

+{

+    struct termios tOldTermios = {0};

+

+    bzero(&tOldTermios, sizeof(tOldTermios));

+    tcgetattr(iFdCom, &tOldTermios); // get the serial port attributions

+	tOldTermios.c_iflag &= ~(ICRNL | IXON);

+	tOldTermios.c_lflag &= ~(ICANON | ECHO | ECHOE | ECHOK | ISIG);

+	tOldTermios.c_oflag &= ~OPOST;

+	if(tcsetattr(iFdCom, TCSANOW, &tOldTermios) != 0)  //设置新属性, TCSANOW: 所由改变立即生效

+	{	

+        printf("Set TimeOut error. iFd == %d\n", iFdCom);

+		return;

+	}

+	tcflush(iFdCom, TCIOFLUSH);

+	printf("com_SetIO_Para over.\n");

+}

+

 

 static int zUP_SetPort_0(int32_t iFd ,int ctsrts_en, int iBaud, int iDelay)

 {		

@@ -338,6 +356,7 @@
 	//com_SetParity(iFd, 'O');

 	com_SetnStop(iFd,1);

 	com_SetCtrl(iFd,ctsrts_en); //add flow control

+	com_SetIO_Para(iFd);

 	com_SetTimeOut(iFd,iDelay); //timeout 100ms

 	

 	printf("set serial port done!\n");

diff --git a/ap/app/crc_mcu/uartcrc_mcu.c b/ap/app/crc_mcu/uartcrc_mcu.c
index 96e1341..ce350ca 100755
--- a/ap/app/crc_mcu/uartcrc_mcu.c
+++ b/ap/app/crc_mcu/uartcrc_mcu.c
Binary files differ
diff --git a/ap/app/crc_modem/uartcrc_modem.c b/ap/app/crc_modem/uartcrc_modem.c
index 261856a..bd3b690 100755
--- a/ap/app/crc_modem/uartcrc_modem.c
+++ b/ap/app/crc_modem/uartcrc_modem.c
Binary files differ
diff --git a/ap/app/dnsmasq/dnsmasq-2.86/Makefile b/ap/app/dnsmasq/dnsmasq-2.86/Makefile
index 824e838..63e8ddf 100755
--- a/ap/app/dnsmasq/dnsmasq-2.86/Makefile
+++ b/ap/app/dnsmasq/dnsmasq-2.86/Makefile
@@ -31,6 +31,9 @@
 CFLAGS        += -Wall -W
 LDFLAGS       += 
 endif
+ifeq ($(USE_VEHICLE_DC),yes)
+CFLAGS += -DUSE_CAP_SUPPORT
+endif
 COPTS         = 
 RPM_OPT_FLAGS = 
 LIBS          =  -L$(zte_lib_path)/libnvram -lnvram_sc
diff --git a/ap/app/dnsmasq/dnsmasq-2.86/src/forward.c b/ap/app/dnsmasq/dnsmasq-2.86/src/forward.c
index f962f6f..1b92a60 100755
--- a/ap/app/dnsmasq/dnsmasq-2.86/src/forward.c
+++ b/ap/app/dnsmasq/dnsmasq-2.86/src/forward.c
@@ -1557,7 +1557,7 @@
       else if (udp_size < PACKETSZ)
 	udp_size = PACKETSZ; /* Sanity check - can't reduce below default. RFC 6891 6.2.3 */
     }
-#if 1  
+#ifndef USE_CAP_SUPPORT
 	//printf("@!@dnsmasq %s len=%d\n",daemon->namebuff,strlen(daemon->namebuff));
 	if(strlen(daemon->namebuff) == 0)//nessus DNS Server Spoofed Request Amplification DDoS
 	  return;
diff --git a/ap/app/fs_check/mtd.c b/ap/app/fs_check/mtd.c
index 9a60714..633b625 100755
--- a/ap/app/fs_check/mtd.c
+++ b/ap/app/fs_check/mtd.c
@@ -804,11 +804,11 @@
 			ret = -1;

 			goto out;

 		}

-		ret = write(fd_mtd, buf, meminfo.erasesize);

-		if (ret != meminfo.erasesize) 

+		ret = write(fd_mtd, buf, (size_t)meminfo.erasesize);

+		if (ret < 0 || ret != meminfo.erasesize) 

 		{

-			printf("fs_check mtd, write error = %d!\n", ret);

-			sc_debug_info_record(MODULE_ID_AP_FS_CHECK, "fs_check mtd, write error = %d!\n", ret);

+			printf("fs_check mtd, write %s error = %d!\n", partition_name, ret);

+			sc_debug_info_record(MODULE_ID_AP_FS_CHECK, "fs_check mtd, write %s error = %d!\n", partition_name, ret);

 			ret = -1;

 			goto out;

 		}

diff --git a/ap/app/goahead/interface5.0/wifi/zte_web_lan.c b/ap/app/goahead/interface5.0/wifi/zte_web_lan.c
index 4f63fd8..3435a33 100755
--- a/ap/app/goahead/interface5.0/wifi/zte_web_lan.c
+++ b/ap/app/goahead/interface5.0/wifi/zte_web_lan.c
@@ -1456,8 +1456,7 @@
 #else
 				pass_phrase_str_decode = (char*)zte_base64_decode((const unsigned char *)pass_phrase_str, strlen(pass_phrase_str), (unsigned int*)&pass_phrase_str_decode_length);
 #endif
-				slog(MISC_PRINT, SLOG_DEBUG,"[%s][%s]login2 -> password:%s.\n", __FILE__, __FUNCTION__, pass_phrase_str_decode); /*lint !e26*/
-
+				
 				if (NULL == pass_phrase_str_decode) {
 					slog(MISC_PRINT, SLOG_DEBUG,"pass_phrase_str_decode: psw is empty.\n");/*lint !e26*/
 					free(pass_phrase_str_decode);
diff --git a/ap/app/goahead/interface5.0/wifi/zte_web_mgmt_wifi.c b/ap/app/goahead/interface5.0/wifi/zte_web_mgmt_wifi.c
index 89b9248..62b65a7 100755
--- a/ap/app/goahead/interface5.0/wifi/zte_web_mgmt_wifi.c
+++ b/ap/app/goahead/interface5.0/wifi/zte_web_mgmt_wifi.c
@@ -137,8 +137,7 @@
 #else
 		pass_phrase_str_decode = zte_base64_decode((const unsigned char *)pass_phrase_str, strlen(pass_phrase_str), &pass_phrase_str_decode_length);
 #endif
-		slog(MISC_PRINT, SLOG_DEBUG, "login2 ->  password:%s.\n", pass_phrase_str_decode); /*lint !e26*/
-
+		
 		if (NULL == pass_phrase_str_decode) {
 			slog(MISC_PRINT, SLOG_DEBUG, "pass_phrase_str_decode: psw is empty.\n"); /*lint !e26*/
 			free(pass_phrase_str_decode);
@@ -178,8 +177,7 @@
 #else
 		pass_phrase_str_decode = zte_base64_decode((const unsigned char *)pass_phrase_str, strlen(pass_phrase_str), &pass_phrase_str_decode_length);
 #endif
-		slog(MISC_PRINT, SLOG_DEBUG, "login2 -> password:%s.\n", pass_phrase_str_decode); /*lint !e26*/
-
+		
 		if (NULL == pass_phrase_str_decode) {
 			slog(MISC_PRINT, SLOG_DEBUG, "pass_phrase_str_decode: psw is empty.\n"); /*lint !e26*/
 			free(pass_phrase_str_decode);
@@ -336,8 +334,7 @@
 		pass_phrase_str = websGetVar(wp, T("passphrase"), T(""));
 		slog(MISC_PRINT, SLOG_DEBUG, "pass_phrase_str:%s.\n", pass_phrase_str); /*lint !e26*/
 		pass_phrase_str_decode = zte_base64_decode((const unsigned char *)pass_phrase_str, strlen(pass_phrase_str), &pass_phrase_str_decode_length);
-		slog(MISC_PRINT, SLOG_DEBUG, "login2 ->  password:%s.\n", pass_phrase_str_decode); /*lint !e26*/
-
+		
 		if (NULL == pass_phrase_str_decode) {
 			slog(MISC_PRINT, SLOG_DEBUG, "pass_phrase_str_decode: psw is empty.\n"); /*lint !e26*/
 			free(pass_phrase_str_decode);
@@ -371,8 +368,7 @@
 		pass_phrase_str = websGetVar(wp, T("passphrase"), T(""));
 		slog(MISC_PRINT, SLOG_DEBUG, "pass_phrase_str:%s.\n", pass_phrase_str); /*lint !e26*/
 		pass_phrase_str_decode = zte_base64_decode((const unsigned char *)pass_phrase_str, strlen(pass_phrase_str), &pass_phrase_str_decode_length);
-		slog(MISC_PRINT, SLOG_DEBUG, "login2 -> password:%s.\n", pass_phrase_str_decode); /*lint !e26*/
-
+		
 		if (NULL == pass_phrase_str_decode) {
 			slog(MISC_PRINT, SLOG_DEBUG, "pass_phrase_str_decode: psw is empty.\n"); /*lint !e26*/
 			free(pass_phrase_str_decode);
diff --git a/ap/app/include/absvr_msg.h b/ap/app/include/absvr_msg.h
new file mode 100755
index 0000000..e156d9c
--- /dev/null
+++ b/ap/app/include/absvr_msg.h
@@ -0,0 +1,82 @@
+/**

+ * @file absvr_msg.h

+ * @brief Extern MSG APIs of absvr_msg

+ *

+ * Copyright (C) 2023 Sanechips Technology Co., Ltd.

+ * @author 

+ * @ingroup 

+ * 

+ * This program is free software; you can redistribute it and/or modify

+ * it under the terms of the GNU General Public License version 2 as

+ * published by the Free Software Foundation. 

+ *

+ */

+

+

+#ifndef _ABSVR_MSG_H

+#define _ABSVR_MSG_H

+

+

+/*******************************************************************************

+ *                           Include header files                              *

+ ******************************************************************************/

+#include "message.h"

+

+

+/*******************************************************************************

+ *                             Macro definitions                               *

+ ******************************************************************************/

+

+

+/*******************************************************************************

+ *                             Type definitions                                *

+ ******************************************************************************/

+enum absvr_msg_cmd

+{

+	ABSVR_GET_UPGRADE_TYPE_REQ = MSG_CMD_ABSVR_BASE,

+	ABSVR_GET_UPGRADE_TYPE_RSP,

+

+	ABSVR_VRITFY_REQ,

+	ABSVR_VRITFY_RSP,

+

+	ABSVR_UPDATE_REQ,

+	ABSVR_UPDATING_RSP,

+	ABSVR_UPDATE_RSP,

+

+	ABSVR_SYNC_REQ,

+	ABSVR_SYNC_RSP,

+

+	ABSVR_GET_UPGRADE_STATUS_REQ,

+	ABSVR_GET_UPGRADE_STATUS_RSP,

+

+	ABSVR_GET_CURRENT_SYSTEM_REQ,

+	ABSVR_GET_CURRENT_SYSTEM_RSP,

+	

+	ABSVR_GET_BOOT_TO_SYSTEM_REQ,

+	ABSVR_GET_BOOT_TO_SYSTEM_RSP,

+

+	ABSVR_SET_BOOT_TO_SYSTEM_REQ,

+	ABSVR_SET_BOOT_TO_SYSTEM_RSP,

+

+	ABSVR_GET_SYSTEM_STATUS_REQ,

+	ABSVR_GET_SYSTEM_STATUS_RSP,

+

+	ABSVR_SET_SYSTEM_STATUS_REQ,

+	ABSVR_SET_SYSTEM_STATUS_RSP,

+

+	ABSVR_GET_FOTA_STATUS_FOR_NV_REQ,

+	ABSVR_GET_FOTA_STATUS_FOR_NV_RSP,

+

+	ABSVR_SET_FOTA_STATUS_FOR_NV_REQ,

+	ABSVR_SET_FOTA_STATUS_FOR_NV_RSP,

+

+	ABSVR_GET_SYNC_STATUS_REQ,

+	ABSVR_GET_SYNC_STATUS_RSP,

+

+	ABSVR_SET_SYNC_STATUS_REQ,

+	ABSVR_SET_SYNC_STATUS_RSP

+};

+

+

+#endif

+

diff --git a/ap/app/include/at_msg.h b/ap/app/include/at_msg.h
index 434faea..cd36562 100755
--- a/ap/app/include/at_msg.h
+++ b/ap/app/include/at_msg.h
@@ -258,6 +258,8 @@
 	MSG_CMD_ROAM_SET_REQ, 		//webuiÑ¡Ôñroam
 	MSG_CMD_ZCARDSWITCHIND_IND,		//ZCARDSWITCHIND
 	MSG_CMD_VSIMDEBUG_IND, 	//VSIMDEBUG
+	MSG_CMD_ZSCISCAN_REQ,	//VSIM cell info
+	MSG_CMD_ZSCISCAN_IND,	//VSIM cell info
 };
 #endif
 
diff --git a/ap/app/include/message.h b/ap/app/include/message.h
index 86f0fb2..def1e19 100755
--- a/ap/app/include/message.h
+++ b/ap/app/include/message.h
@@ -108,7 +108,11 @@
 	MODULE_ID_SOCKET_PROXY_END = MODULE_ID_SOCKET_PROXY + 3, 
 	MODULE_ID_GUODIAN_BASE,
 	MODULE_ID_GPS,  //	GPSÓ¦ÓÃÄ£¿éID
-
+	
+	//absvr
+	MODULE_ID_ABSVR,
+	MODULE_ID_ABCLIENT,
+	
 	// for audio-ctrl
 	MODULE_ID_ZCORE,
 	MODULE_ID_CALL_23G,
@@ -139,6 +143,10 @@
 	MODULE_ID_SECURITY_LOG,
 	MODULE_ID_MBIM,
 	MODULE_ID_VSIM,
+
+    //voice
+    MODULE_ID_VOICE_SERVER,
+    MODULE_ID_VOICE_CLIENT,
 } T_AP_Module_ID;
 
 /* ------------- CPºË´æÔÚµÄÄ£¿éID£¬Æ½Ì¨ÄÚ²¿Ê¹Ó㬲»¿ª·Å¸ø¿Í»§ ------------- */
@@ -261,10 +269,18 @@
 	//amt device test
 	MSG_CMD_AMT_DEVICE_TEST_BASE      = 0x9001,
 	MSG_CMD_AMT_DEVICE_TEST_END      = 0x90C8,
+
+    //VOICE
+	MSG_CMD_VOICE_BASE      = 0x90D0,
+	MSG_CMD_VOICE_END      = 0x90FF,
 	
 	//pocsvr
 	MSG_CMD_POCSVR_BASE      = 0x9101,
 	MSG_CMD_POCSVR_END      = 0x9200,
+	
+	//absvr
+	MSG_CMD_ABSVR_BASE      = 0x9201,
+	MSG_CMD_ABSVR_END      = 0x9300,
 };
 #endif
 
diff --git a/ap/app/include/netotherapi.h b/ap/app/include/netotherapi.h
index 4df92ef..fcf872d 100755
--- a/ap/app/include/netotherapi.h
+++ b/ap/app/include/netotherapi.h
@@ -32,6 +32,10 @@
 #define TXPACKET	1
 #define RXBYTE		2       //½ÓÊÕÊý¾Ý
 #define RXPACKET	3
+#define TXERR		4
+#define TXDROP		5
+#define RXERR		6
+#define RXDROP		7
 
 #define  PC_MAX_NUM  100
 #define     DEV_NAME_LEN 50
diff --git a/ap/app/include/rtc_timer.h b/ap/app/include/rtc_timer.h
index 8069d93..77a3c5c 100755
--- a/ap/app/include/rtc_timer.h
+++ b/ap/app/include/rtc_timer.h
@@ -71,6 +71,8 @@
 	RTC_ID_TRACK_AGPS,
 	RTC_ID_TRACK_WEATHER_UPDATE,
 	RTC_ID_TRACK_END,
+	RTC_ID_SC_TIMER,
+	RTC_ID_SC_ALARM,
 	RTC_ID_END,
 } RTC_ID;
 #endif
@@ -92,6 +94,7 @@
 	RTC_MSG_ALARM_ELAPSED,					//µ±¶¨Ê±Æ÷´¥·¢Ê±»á·¢Õâ¸öÏûÏ¢¸ø¶¨Ê±Æ÷ÓµÓÐÕß
 	RTC_MSG_DEL_ALL,						//Çå³ýËùÓйػú²»±£´æµÄ¶¨Ê±Æ÷£¬·ñÔòrtc¶¨Ê±Æ÷µ½µã»¹»áÉϱ¨
 	RTC_MSG_TIME_CHANGED,					//RTCʱ¼ä¸üÐÂ:±íʾÊÀ½çʱ¼ä·¢Éú±ä»¯£¬¼´Ê±¼äͬ²½Íê³É»òÕßÓû§ÊÖ¶¯ÖØÐÂÉèÖõ±Ç°µÄÊÀ½çʱ¼äÁË£¬´ËʱRTC½ø³Ì»á¹ã²¥¸øÒÑ×¢²áÊÀ½çʱ¼äµÄÄ£¿é£¬ÒÔÈÃÏà¹ØÄ£¿é½øÐÐÊÀ½çʱ¼ä¶¨Ê±Æ÷µÄÖØÐÂÉèÖÃ
+	RTC_MSG_SNTP_UPDATE,					//SNTPͬ²½
 };
 #endif
 
diff --git a/ap/app/include/softap_log.h b/ap/app/include/softap_log.h
index 88ac791..c82dc3f 100755
--- a/ap/app/include/softap_log.h
+++ b/ap/app/include/softap_log.h
@@ -40,6 +40,7 @@
 #define SMS_PRINT       "[sms]"
 #define MISC_MBIM      "[mbim]"
 #define DRVCOMMNG_PRINT       "[drvcommng]"
+#define ABSVR_PRINT		"[absvr]"
 
 extern int asprintf(char **strp, const char *fmt, ...);
 
diff --git a/ap/app/sc_absvr/Makefile b/ap/app/sc_absvr/Makefile
new file mode 100755
index 0000000..8c3893b
--- /dev/null
+++ b/ap/app/sc_absvr/Makefile
@@ -0,0 +1,110 @@
+# /*****************************************************************************
+#* °æÈ¨ËùÓÐ (C)2015, ÖÐÐËͨѶ¹É·ÝÓÐÏÞ¹«Ë¾¡£
+#* 
+#* ÎļþÃû³Æ:     Makefile
+#* Îļþ±êʶ:     Makefile
+#* ÄÚÈÝÕªÒª:     Makefile of ZTE applications
+#* ʹÓ÷½·¨:     void
+#* 
+#* ÐÞ¸ÄÈÕÆÚ        °æ±¾ºÅ      Ð޸ıê¼Ç        ÐÞ¸ÄÈË          ÐÞ¸ÄÄÚÈÝ
+#* -----------------------------------------------------------------------------
+#* 2022/07/13      V1.0        Create          zln          ´´½¨
+#* 
+# ******************************************************************************/
+
+#*******************************************************************************
+# include ZTE application makefile
+#*******************************************************************************
+.EXPORT_ALL_VARIABLES:
+include $(COMMON_MK)
+#*******************************************************************************
+# execute
+#*******************************************************************************
+EXEC = sc_absvr
+
+#*******************************************************************************
+# objects
+#*******************************************************************************
+SRCS=$(wildcard ./*.c)
+OBJS = $(patsubst %.c,%.o,$(SRCS))
+
+#*******************************************************************************
+# include path
+#*******************************************************************************
+
+
+
+CFLAGS +=	-Wall -g
+
+CFLAGS += -Werror=implicit-int \
+		  -Werror=implicit-function-declaration \
+		  -Werror=float-equal \
+		  -Werror=return-type \
+		  -Werror=enum-compare \
+		  -Werror=init-self 
+
+CFLAGS +=	-O2
+CFLAGS +=	-I../include
+CFLAGS +=	-I./inc	\
+			-I$(zte_lib_path)/libssl/install/include \
+			-I$(zte_lib_path)/libupi_ab/inc
+#*******************************************************************************
+# macro definition
+#*******************************************************************************
+
+ifeq ($(PRJ_IS_MIN),yes)
+
+CFLAGS += -D_IS_MIN
+
+endif
+
+ifeq ($(CONFIG_USER_FOTA_OPEN_SOURCE),n)
+CFLAGS += -D_USE_SYSTEM_COMMAND
+endif
+
+
+#*******************************************************************************
+# library
+#*******************************************************************************
+LDLIBS  += -lsoft_timer_sc -L$(zte_lib_path)/libsoft_timer
+
+LDLIBS += -lpthread
+LDLIBS += -lsoftap
+LDLIBS +=  -lnvram_sc
+
+# SHA512 functions in libcrypto.a not libssl
+#LDLIBS +=  -lssl
+LDLIBS += -lcrypto
+LDLIBS +=  -L$(zte_lib_path)/libssl/install/lib
+LDLIBS += -L$(zte_lib_path)/libnvram
+LDLIBS  += -L$(zte_lib_path)/libsoftap 
+	
+LDLIBS  += 	-lcpnv -L$(LIB_DIR)/libcpnv 
+
+LDLIBS += -lupi_ab
+LDLIBS += -L$(zte_lib_path)/libupi_ab
+
+CFLAGS += -I$(zte_lib_path)/libnvram 
+
+#*******************************************************************************
+# library path
+#*******************************************************************************
+
+#*******************************************************************************
+# targets
+#*******************************************************************************
+all: $(EXEC)
+
+
+$(EXEC): $(OBJS)
+	$(CC) $(LDFLAGS) -o $@ $^ -Wl,--start-group $(LDLIBS) $(LDLIBS_$@) -Wl,--end-group
+	cp $(EXEC) $(EXEC).elf
+	
+
+
+romfs root_fs:
+	$(ROMFSINST) /bin/$(EXEC)
+
+
+clean:
+	-rm -f $(EXEC) *.elf *.gdb *.o ./src/*.o
diff --git a/ap/app/sc_absvr/sc_absvr.c b/ap/app/sc_absvr/sc_absvr.c
new file mode 100755
index 0000000..595f6a7
--- /dev/null
+++ b/ap/app/sc_absvr/sc_absvr.c
@@ -0,0 +1,426 @@
+/**

+ * @file sc_absvr.c

+ * @brief Implementation of sc_absvr.

+ *

+ * Copyright (C) 2023 Sanechips Technology Co., Ltd.

+ * @author 

+ * 

+ * This program is free software; you can redistribute it and/or modify

+ * it under the terms of the GNU General Public License version 2 as

+ * published by the Free Software Foundation. £¨±ØÑ¡£ºGPLv2 Licence£©

+ *

+ */

+

+

+/*******************************************************************************

+ *                           Include header files                              *

+ ******************************************************************************/

+#include <stdio.h>

+#include <string.h>

+#include <stdlib.h>

+#include <assert.h>

+#include <syslog.h>

+#include <sys/klog.h>

+#include <sys/msg.h>

+#include <sys/un.h>

+#include <errno.h>

+#include <sys/types.h>

+#include <sys/wait.h>

+

+#include "absvr_msg.h"

+#include "zxic_fota_ab_upgrade.h"

+#include "softap_log.h"

+#include "at_reg.h"

+#include "softap_api.h"

+

+

+/*******************************************************************************

+ *                             Macro definitions                               *

+ ******************************************************************************/	

+#define MSG_DATABUF_MAX_LEN (128)

+

+#define DEBUG 1

+

+//#define ABSVR_PRINT "SC_AB_SVR"

+

+/*******************************************************************************

+ *                             Type definitions                                *

+ ******************************************************************************/

+typedef struct

+{

+	int result; // 0: ³É¹¦ ·Ç0: ʧ°Ü

+	unsigned char dataBuf[MSG_DATABUF_MAX_LEN];

+} absvr_common_result_t;

+

+

+typedef struct

+{

+	int boot_to_system;

+	int reboot_flag;

+

+	int system;

+	int status;

+

+	int status_for_nv;

+

+	int sync_status;

+} absvr_common_req_msg_t;

+

+

+/*******************************************************************************

+ *						   Local variable definitions						   *

+ ******************************************************************************/

+

+

+/*******************************************************************************

+ *						  Global variable definitions						   *

+ ******************************************************************************/

+

+

+/*******************************************************************************

+ * 					   Local function declarations							   *

+ ******************************************************************************/

+static void flush_upgrade_status(z_upgrade_status_info_t *p_status);

+

+static int absvr_get_upgrade_type(MSG_BUF *msg);

+static int absvr_verify(MSG_BUF *msg);

+static int absvr_update(MSG_BUF *msg);

+static int absvr_sync(MSG_BUF *msg);

+static int absvr_get_upgrade_status(MSG_BUF *msg);

+static int absvr_get_current_system(MSG_BUF *msg);

+static int absvr_get_boot_to_system(MSG_BUF *msg);

+static int absvr_set_boot_to_system(MSG_BUF *msg);

+static int absvr_get_system_status(MSG_BUF *msg);

+static int absvr_set_system_status(MSG_BUF *msg);

+static int absvr_get_fota_status_for_nv(MSG_BUF *msg);

+static int absvr_set_fota_status_for_nv(MSG_BUF *msg);

+static int absvr_get_sync_status(MSG_BUF *msg);

+static int absvr_set_sync_status(MSG_BUF *msg);

+

+static int absvr_msg_proc(MSG_BUF *msg);

+

+

+/*******************************************************************************

+ * 					 Local function implementations 						   *

+ ******************************************************************************/

+static void flush_upgrade_status(z_upgrade_status_info_t *p_status)

+{

+	absvr_common_result_t absvr_common_result = {0};

+	

+	memcpy(absvr_common_result.dataBuf, p_status, sizeof(z_upgrade_status_info_t));

+	

+	if (0 != send_soc_msg(FAR_PS, MODULE_ID_ABCLIENT, (unsigned short)ABSVR_UPDATING_RSP, sizeof(absvr_common_result), (unsigned char *)(&absvr_common_result)))

+	{

+		slog(ABSVR_PRINT, SLOG_ERR, "Err: flush_upgrade_status send_soc_msg fail \n");

+	}

+

+	return;

+}

+

+

+static int absvr_get_upgrade_type(MSG_BUF *msg)

+{

+	absvr_common_result_t absvr_common_result = {0};

+	int ret = -1;

+

+	ret = zxic_dual_get_upgrade_type();

+

+	absvr_common_result.result = ret;

+

+	return send_soc_msg(FAR_PS, MODULE_ID_ABCLIENT, (unsigned short)ABSVR_GET_UPGRADE_TYPE_RSP, sizeof(absvr_common_result), (unsigned char *)(&absvr_common_result));

+}

+ 

+

+static int absvr_verify(MSG_BUF *msg)

+{

+	absvr_common_result_t absvr_common_result = {0};

+

+	absvr_common_result.result = zxic_dual_verify();

+

+	return send_soc_msg(FAR_PS, MODULE_ID_ABCLIENT, (unsigned short)ABSVR_VRITFY_RSP, sizeof(absvr_common_result), (unsigned char *)(&absvr_common_result));

+}

+

+

+static int absvr_update(MSG_BUF *msg)

+{

+	absvr_common_result_t absvr_common_result = {0};

+	

+	z_upgrade_status_info_t status = {0};

+	z_upgrade_flush_status_t flush_status = {0};

+

+	flush_status.status = &status;

+	flush_status.status_cb = &flush_upgrade_status;

+

+	absvr_common_result.result = zxic_dual_upgrade(&flush_status);

+

+	return send_soc_msg(FAR_PS, MODULE_ID_ABCLIENT, (unsigned short)ABSVR_UPDATE_RSP, sizeof(absvr_common_result), (unsigned char *)(&absvr_common_result));

+}

+

+

+static int absvr_sync(MSG_BUF *msg)

+{

+	absvr_common_result_t absvr_common_result = {0};

+

+	absvr_common_result.result = zxic_dual_sync_system();

+

+	return send_soc_msg(FAR_PS, MODULE_ID_ABCLIENT, (unsigned short)ABSVR_SYNC_RSP, sizeof(absvr_common_result), (unsigned char *)(&absvr_common_result));

+}

+

+

+static int absvr_get_upgrade_status(MSG_BUF *msg)

+{

+	absvr_common_result_t absvr_common_result = {0};

+	int ret = -1;

+

+	z_upgrade_status_info_t upgrade_info = {0};

+

+	ret = zxic_dual_get_upgrade_status(&upgrade_info);

+

+	absvr_common_result.result = ret;

+	memcpy(absvr_common_result.dataBuf, &upgrade_info, sizeof(z_upgrade_status_info_t));

+

+	return send_soc_msg(FAR_PS, MODULE_ID_ABCLIENT, (unsigned short)ABSVR_GET_UPGRADE_STATUS_RSP, sizeof(absvr_common_result), (unsigned char *)(&absvr_common_result));

+}

+

+

+static int absvr_get_current_system(MSG_BUF *msg)

+{

+	absvr_common_result_t absvr_common_result = {0};

+	int ret = -1;

+

+	ret = zxic_dual_get_current_system();

+

+	absvr_common_result.result = ret;

+

+	return send_soc_msg(FAR_PS, MODULE_ID_ABCLIENT, (unsigned short)ABSVR_GET_CURRENT_SYSTEM_RSP, sizeof(absvr_common_result), (unsigned char *)(&absvr_common_result));

+}

+

+

+static int absvr_get_boot_to_system(MSG_BUF *msg)

+{

+	absvr_common_result_t absvr_common_result = {0};

+	int ret = -1;

+

+	ret = zxic_dual_get_boot_to_system();

+

+	absvr_common_result.result = ret;

+

+	return send_soc_msg(FAR_PS, MODULE_ID_ABCLIENT, (unsigned short)ABSVR_GET_BOOT_TO_SYSTEM_RSP, sizeof(absvr_common_result), (unsigned char *)(&absvr_common_result));

+}

+

+

+static int absvr_set_boot_to_system(MSG_BUF *msg)

+{

+	absvr_common_req_msg_t *common_req_msg = NULL;

+	

+	absvr_common_result_t absvr_common_result = {0};

+	int ret = -1;

+

+	common_req_msg = (absvr_common_req_msg_t *)(msg->aucDataBuf);

+

+	ret = zxic_dual_set_boot_to_system(common_req_msg->boot_to_system, common_req_msg->reboot_flag);

+	

+	absvr_common_result.result = ret;

+

+	return send_soc_msg(FAR_PS, MODULE_ID_ABCLIENT, (unsigned short)ABSVR_SET_BOOT_TO_SYSTEM_RSP, sizeof(absvr_common_result), (unsigned char *)(&absvr_common_result));

+}

+

+

+static int absvr_get_system_status(MSG_BUF *msg)

+{

+	absvr_common_result_t absvr_common_result = {0};

+	int ret = -1;

+

+	z_upgrade_system_info_t system_info = {0};

+

+	ret = zxic_dual_get_system_status(&system_info);

+

+	absvr_common_result.result = ret;

+	memcpy(absvr_common_result.dataBuf, &system_info, sizeof(z_upgrade_system_info_t));

+

+	return send_soc_msg(FAR_PS, MODULE_ID_ABCLIENT, (unsigned short)ABSVR_GET_SYSTEM_STATUS_RSP, sizeof(absvr_common_result), (unsigned char *)(&absvr_common_result));

+}

+

+

+static int absvr_set_system_status(MSG_BUF *msg)

+{

+	absvr_common_req_msg_t *common_req_msg = NULL;

+	

+	absvr_common_result_t absvr_common_result = {0};

+	int ret = -1;

+

+	common_req_msg = (absvr_common_req_msg_t *)(msg->aucDataBuf);

+

+	ret = zxic_dual_set_system_status(common_req_msg->system, common_req_msg->status);

+	

+	absvr_common_result.result = ret;

+

+	return send_soc_msg(FAR_PS, MODULE_ID_ABCLIENT, (unsigned short)ABSVR_SET_SYSTEM_STATUS_RSP, sizeof(absvr_common_result), (unsigned char *)(&absvr_common_result));

+}

+

+

+static int absvr_get_fota_status_for_nv(MSG_BUF *msg)

+{

+	absvr_common_result_t absvr_common_result = {0};

+	int ret = -1;

+

+	ret = zxic_dual_get_fota_status_for_nv();

+

+	absvr_common_result.result = ret;

+

+	return send_soc_msg(FAR_PS, MODULE_ID_ABCLIENT, (unsigned short)ABSVR_GET_FOTA_STATUS_FOR_NV_RSP, sizeof(absvr_common_result), (unsigned char *)(&absvr_common_result));

+}

+

+

+static int absvr_set_fota_status_for_nv(MSG_BUF *msg)

+{

+	absvr_common_req_msg_t *common_req_msg = NULL;

+	

+	absvr_common_result_t absvr_common_result = {0};

+	int ret = -1;

+

+	common_req_msg = (absvr_common_req_msg_t *)(msg->aucDataBuf);

+

+	ret = zxic_dual_set_fota_status_for_nv(common_req_msg->status_for_nv);

+	

+	absvr_common_result.result = ret;

+

+	return send_soc_msg(FAR_PS, MODULE_ID_ABCLIENT, (unsigned short)ABSVR_SET_FOTA_STATUS_FOR_NV_RSP, sizeof(absvr_common_result), (unsigned char *)(&absvr_common_result));

+}

+

+

+static int absvr_get_sync_status(MSG_BUF *msg)

+{	

+	absvr_common_result_t absvr_common_result = {0};

+

+	zxic_dual_get_sync_status(&(absvr_common_result.result));

+	

+	return send_soc_msg(FAR_PS, MODULE_ID_ABCLIENT, (unsigned short)ABSVR_GET_SYNC_STATUS_RSP, sizeof(absvr_common_result), (unsigned char *)(&absvr_common_result));

+}

+

+

+static int absvr_set_sync_status(MSG_BUF *msg)

+{

+	absvr_common_req_msg_t *common_req_msg = NULL;

+	

+	absvr_common_result_t absvr_common_result = {0};

+	int ret = -1;

+

+	common_req_msg = (absvr_common_req_msg_t *)(msg->aucDataBuf);

+

+	ret = zxic_dual_set_sync_status(common_req_msg->sync_status);

+	

+	absvr_common_result.result = ret;

+

+	return send_soc_msg(FAR_PS, MODULE_ID_ABCLIENT, (unsigned short)ABSVR_SET_SYNC_STATUS_RSP, sizeof(absvr_common_result), (unsigned char *)(&absvr_common_result));

+}

+

+

+static int absvr_msg_proc(MSG_BUF *msg)

+{

+	int ret = 0;

+

+	if( NULL == msg)

+	{

+		slog(ABSVR_PRINT, SLOG_ERR, "Err: absvr_msg_proc msg is NULL \n");

+		return -1;

+	}

+

+	slog(ABSVR_PRINT, SLOG_NORMAL, "absvr_msg_proc start process msg [%hu] \n", msg->usMsgCmd);

+	

+	switch(msg->usMsgCmd)

+	{		

+		case ABSVR_GET_UPGRADE_TYPE_REQ:

+			ret = absvr_get_upgrade_type(msg);

+			break;

+		case ABSVR_VRITFY_REQ:

+			ret = absvr_verify(msg);

+			break;

+		case ABSVR_UPDATE_REQ:

+			ret = absvr_update(msg);

+			break;

+		case ABSVR_SYNC_REQ:

+			ret = absvr_sync(msg);

+			break;

+		case ABSVR_GET_UPGRADE_STATUS_REQ:

+			ret = absvr_get_upgrade_status(msg);

+			break;

+		case ABSVR_GET_CURRENT_SYSTEM_REQ:

+			ret = absvr_get_current_system(msg);

+			break;

+		case ABSVR_GET_BOOT_TO_SYSTEM_REQ:

+			ret = absvr_get_boot_to_system(msg);

+			break;

+		case ABSVR_SET_BOOT_TO_SYSTEM_REQ:

+			ret = absvr_set_boot_to_system(msg);

+			break;

+		case ABSVR_GET_SYSTEM_STATUS_REQ:

+			ret = absvr_get_system_status(msg);

+			break;

+		case ABSVR_SET_SYSTEM_STATUS_REQ:

+			ret = absvr_set_system_status(msg);

+			break;

+		case ABSVR_GET_FOTA_STATUS_FOR_NV_REQ:

+			ret = absvr_get_fota_status_for_nv(msg);

+			break;

+		case ABSVR_SET_FOTA_STATUS_FOR_NV_REQ:

+			ret = absvr_set_fota_status_for_nv(msg);

+			break;

+		case ABSVR_GET_SYNC_STATUS_REQ:

+			ret = absvr_get_sync_status(msg);

+			break;

+		case ABSVR_SET_SYNC_STATUS_REQ:

+			ret = absvr_set_sync_status(msg);

+			break;

+		default:

+			slog(ABSVR_PRINT, SLOG_ERR, "Err: absvr_msg_proc unknow usMsgCmd [%hu] \n", msg->usMsgCmd);

+			break;

+	}

+

+	return ret;

+}

+

+

+/*******************************************************************************

+ * 					 Global function implementations						*

+ ******************************************************************************/

+

+int main(void)

+{

+	int iRet = 0;

+

+	int iMsgHandle = 0;	

+	MSG_BUF stMsg = {0};

+	LONG msgSize =  sizeof(MSG_BUF) - sizeof(LONG);

+

+	/*¸ù¾ÝNV³õʼ»¯´òÓ¡¼¶±ð£¬²¢×¢²á¶¯Ì¬µ÷Õû´òÓ¡¼¶±ðÐźÅÁ¿*/

+	loglevel_init();

+	slog(ABSVR_PRINT, SLOG_NORMAL, "sc_absvr begin ======= build date: %s %s \n", __DATE__, __TIME__);

+	

+	iMsgHandle = msgget(MODULE_ID_ABSVR, IPC_CREAT | 0600);

+	if (-1 == iMsgHandle)

+	{

+		slog(ABSVR_PRINT, SLOG_ERR, "Err: can not create msg queue for sc_absvr \n");

+		return -1;

+	}

+

+	for (;;)

+	{

+		memset(&stMsg, 0, sizeof(stMsg));

+		iRet = 0;

+		iRet = msgrcv(iMsgHandle, &stMsg, msgSize, 0, 0);

+		if (-1 == iRet)

+		{

+			slog(ABSVR_PRINT, SLOG_ERR, "Err: recv msg fail errno = %d \n", errno);

+			continue;

+		}

+		

+		if (0 != absvr_msg_proc(&stMsg))

+		{

+			slog(ABSVR_PRINT, SLOG_ERR, "Err: absvr_msg_proc src_id[%d] usMsgCmd[%hu] fail \n", stMsg.src_id, stMsg.usMsgCmd);			

+		}

+	}

+	

+	return 0;

+}

+

diff --git a/ap/app/zte_amt/amt.c b/ap/app/zte_amt/amt.c
index 63aa40d..6178997 100755
--- a/ap/app/zte_amt/amt.c
+++ b/ap/app/zte_amt/amt.c
@@ -1178,7 +1178,7 @@
 

     AmtPrintf(AMT_INFO "%s: execute \"%s\"!\n", __FUNCTION__, pcmd);

 

-    if ((pPipe = popen(pcmd, "rb")) == NULL)

+    if ((pPipe = popen(pcmd, "r")) == NULL)

     {

         AmtPrintf(AMT_ERROR "popen \"%s\" failure.\n", pcmd);

         return -1;

diff --git a/ap/app/zte_comm/at_ctl/inc/ps_normal.h b/ap/app/zte_comm/at_ctl/inc/ps_normal.h
index 8acf526..e5f6d8d 100755
--- a/ap/app/zte_comm/at_ctl/inc/ps_normal.h
+++ b/ap/app/zte_comm/at_ctl/inc/ps_normal.h
@@ -683,6 +683,8 @@
 

 char *start_setroam_cmd(void *msg,struct at_context *context);

 

+char *start_zsciscan_cmd(void *msg,struct at_context *context);

+

 int sysconfigread_ok_act(char *at_str,struct at_context *context,void **next_req,int *next_len);

 

 int sysconfigread_err_act(char *at_str,struct at_context *context,void **next_req,int *next_len);

@@ -875,5 +877,6 @@
 

 int cusd_auto_act(char *at_paras ,int is_query_report);

 int zcardswitch_auto_act(char *at_paras ,int is_query_report);

+int zsciscan_auto_act(char *at_paras ,int is_query_report);

 

 #endif

diff --git a/ap/app/zte_comm/at_ctl/inc/ps_pdp.h b/ap/app/zte_comm/at_ctl/inc/ps_pdp.h
index 3958e2b..4a18e90 100755
--- a/ap/app/zte_comm/at_ctl/inc/ps_pdp.h
+++ b/ap/app/zte_comm/at_ctl/inc/ps_pdp.h
@@ -209,5 +209,6 @@
 int  cgcontrdp_err_act(char *at_str,struct at_context *context,void **next_req,int *next_len);

 int cidreserved_set_func(int at_fd, char *at_paras,void ** res_msg, int *res_msglen);

 int ciddefattach_set_func(int at_fd, char *at_paras,void ** res_msg, int *res_msglen);

+int fluxstat_query_func(int at_fd, char *at_paras,void ** res_msg, int *res_msglen);

 

 #endif

diff --git a/ap/app/zte_comm/at_ctl/src/atconfig/config_linux.c b/ap/app/zte_comm/at_ctl/src/atconfig/config_linux.c
index 40e2241..a935448 100755
--- a/ap/app/zte_comm/at_ctl/src/atconfig/config_linux.c
+++ b/ap/app/zte_comm/at_ctl/src/atconfig/config_linux.c
@@ -79,6 +79,7 @@
 	//register_serv_func2("getcid=",0,0,0,gcid_req_func,0);//getidlecid×÷Ϊserverʱ£¬ÊÇÔÚCP²àµÄat ctlʹÓÃ

     register_serv_func2("cidreserved=",0,0,0,cidreserved_set_func,0);

     register_serv_func2("ciddefattach=",0,0,0,ciddefattach_set_func,0);

+    register_serv_func2("fluxstat=",0,0,0,fluxstat_query_func,0);

     register_serv_func2("zgact?",0,0,0,zgact_query_func,0);

 	//register_serv_func2("zdefaultapn=", 0,0,0,save_default_apn,0);

 

@@ -221,6 +222,7 @@
     register_psclt_func( MSG_CMD_AIRMODE_SET_REQ,0,start_airmode_cmd);//ÉèÖ÷ÉÐÐģʽʼþ

     //register_psclt_func(MSG_CMD_CELL_LOCK_REQ,0,start_celllock_cmd);//web uiÉÏÎ޴˹¦ÄÜ£¬µ«ÊÇweb serverÓз¢Ë͸ÃÏûÏ¢´¦

     register_psclt_func( MSG_CMD_ROAM_SET_REQ,0,start_setroam_cmd);//ÉèÖÃroam

+    register_psclt_func( MSG_CMD_ZSCISCAN_REQ,0,start_zsciscan_cmd);//VSIM cell info

     

     /**********************×¢²áat_ctlÄÚ²¿µÄpsÏà¹ØµÄatÃüÁî**********************/

     register_clt_func("SYSCONFIG?",sysconfigread_ok_act,sysconfigread_err_act);

@@ -277,6 +279,7 @@
     register_inform_func("CLCK",clck_auto_act);

     register_inform_func("CNUM",cnum_auto_act);

 	register_inform_func("CUSD",cusd_auto_act);//corem0620

+    register_inform_func("ZSCISCAN",zsciscan_auto_act);

 	if(g_customer_type)

     {	

     	register_psclt_func(ATCTL_INNER_CVMOD_MSG,0,start_cvmod_cmd);//¹Ø±ÕVOLTE

diff --git a/ap/app/zte_comm/at_ctl/src/atconfig/ps_normal.c b/ap/app/zte_comm/at_ctl/src/atconfig/ps_normal.c
index 230fd8e..498d51e 100755
--- a/ap/app/zte_comm/at_ctl/src/atconfig/ps_normal.c
+++ b/ap/app/zte_comm/at_ctl/src/atconfig/ps_normal.c
@@ -5842,3 +5842,73 @@
 	return AT_END;

 }

 

+char *start_zsciscan_cmd(void *msg,struct at_context *context)

+{

+	char *at_next=NULL;

+	at_next=malloc(AT_CMD_MAX);

+	if(at_next == NULL){

+		softap_assert("");

+		return NULL;

+	}

+	memset(at_next,0,AT_CMD_MAX);

+	sprintf(at_next,"AT+ZSCISCAN=?\r\n");

+	return at_next;

+}

+

+typedef struct{

+    unsigned short mcc;

+    unsigned short mnc;

+	unsigned int tac;

+	unsigned int cell_id;

+    unsigned short bandwidth;

+    unsigned short pcid;//short  rxlev;

+    unsigned int arfcn;

+}base_cell_info_t;//Hex format

+

+

+typedef struct

+{

+    unsigned short  roamingFlag; ///< 1:roaming,0:non roaming

+    short  rsrp;

+    short  rsrq;

+    unsigned short SINR;

+    unsigned short netMode;  //0--tdd  1--fdd

+    unsigned short band;

+    base_cell_info_t base_Scell_info;

+} lte_Scell_t;

+

+int zsciscan_auto_act(char *at_paras ,int is_query_report)

+{

+	int num = 0;

+	int ret = 0;

+	int i = 0;

+	char *cellinfo = at_paras;

+	lte_Scell_t cell[20] = {0};

+	void *p[1] = {&num};

+	ret = parse_param2("%d", at_paras, p);

+	at_print(AT_ERR,"zcardswitch_auto_act ret=%d num=%d\n",ret,num);

+	cellinfo = strstr(cellinfo,",\"");

+	for(i = 0; i < num && i < 20 && cellinfo; i++)

+	{

+		char plmn[8] = {0};

+		char mcc[4] = {0};

+		char mnc[4] = {0};

+		int rssi = 0;

+		void *p1[] = {plmn, &cell[i].base_Scell_info.arfcn, &cell[i].base_Scell_info.cell_id,

+			&rssi, &cell[i].rsrp, &cell[i].rsrq, &cell[i].SINR, &cell[i].base_Scell_info.tac,

+			&cell[i].base_Scell_info.pcid, &cell[i].band, &cell[i].base_Scell_info.bandwidth};

+		cellinfo++;

+		parse_param2("%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d", cellinfo, p1);

+		if(cell[i].band < 33 || cell[i].band > 52)

+			cell[i].netMode = 1;

+		memcpy(mcc, plmn, 3);

+		memcpy(mnc, plmn+3, 3);

+		cell[i].base_Scell_info.mcc = atoi(mcc);

+		cell[i].base_Scell_info.mnc = atoi(mnc);

+		cellinfo = strstr(cellinfo,",\"");

+	}

+	ipc_send_message(MODULE_ID_AT_CTL, MODULE_ID_VSIM, MSG_CMD_ZSCISCAN_IND, sizeof(lte_Scell_t)*20, cell, 0);

+	return AT_END;

+}

+

+

diff --git a/ap/app/zte_comm/at_ctl/src/atconfig/ps_pdp.c b/ap/app/zte_comm/at_ctl/src/atconfig/ps_pdp.c
index 945d298..6995f74 100755
--- a/ap/app/zte_comm/at_ctl/src/atconfig/ps_pdp.c
+++ b/ap/app/zte_comm/at_ctl/src/atconfig/ps_pdp.c
@@ -619,6 +619,7 @@
 {

     int i = 0;

     int iIpv6Item[16] = {0};

+	int flag = 0;

 

     //at_print(AT_DEBUG,"IPV6 before change == %s\n", pstrIpv6);

     sscanf(pstrIpv6, "%d.%d.%d.%d.%d.%d.%d.%d.%d.%d.%d.%d.%d.%d.%d.%d",

@@ -630,12 +631,18 @@
     memset(s_strIpv6Addr, 0, v6AddrLen);

     for(i=0; i<=15; i++)

     {

+		if(iIpv6Item[i] != 0)

+			flag++;

         snprintf(s_strIpv6Addr+strlen(s_strIpv6Addr), v6AddrLen-strlen(s_strIpv6Addr), "%02x", iIpv6Item[i]);

         if((i%2==1) && (i<15))

         {

             snprintf(s_strIpv6Addr+strlen(s_strIpv6Addr), v6AddrLen-strlen(s_strIpv6Addr), ":");

         }

     }

+	if(flag == 0){

+		memset(s_strIpv6Addr, 0, v6AddrLen);

+		at_print(AT_ERR,"IPV6 %s is ::\n", s_strIpv6Addr);

+	}

     //at_print(AT_DEBUG,"IPV6 after change == %s\n", s_strIpv6Addr);

 }

 

@@ -1304,12 +1311,21 @@
 

 	if(p_fwd_info->cgact_ok && p_fwd_info->zgact_ok && pdpInfo)

 	{

+#ifdef USE_CAP_SUPPORT

+		char defcid[CID_LEN_MAX] = {0};

+		sc_cfg_get("defrt_cid", defcid, sizeof(defcid));

+		if(atoi(defcid) == pdpInfo->c_id)

+			pdp_act_proc_for_module(pdpInfo, PDP_NORMAL);

+		else

+			pdp_act_proc_for_module(pdpInfo, PDP_EXT);

+#else

 		char LanEnable[CID_LEN_MAX] = {0};

 		sc_cfg_get("LanEnable", LanEnable, sizeof(LanEnable));

         if(atoi(LanEnable) == 1)

             pdp_act_proc_for_module(pdpInfo, PDP_NORMAL);

         else

             pdp_act_proc_for_module(pdpInfo, PDP_EXT);

+#endif

 		if(g_pdpinfo_mng[cid-1].fwd_info.zconstat_flag == 0)

 		{

 			send_zconstat_auto_report(1, cid);

@@ -1712,7 +1728,17 @@
 				}

 				else

 				{//·Ç×Ô¶¯²¦ºÅÓ¦Óã¬ÓÃLOCAL²¦ºÅ

+#ifdef USE_CAP_SUPPORT

+					AT_PDP_ACT_RSP_INFO rsp = {0};

+					memset(&rsp, 0x00, sizeof(AT_PDP_ACT_RSP_INFO));

+					rsp.result = AT_RSP_ERR;

+					rsp.errcode = ATERR_NOT_ALLOWED;

+					send_rsp_msg(context->source,context->msg_id,MSG_CMD_PDP_ACT_RSP,sizeof(AT_PDP_ACT_RSP_INFO),&rsp);

+

+					return	NULL;

+#else

 					pdp_type = PDP_LOCAL;

+#endif

 				}

 			}

 			else if(g_defcid_mng.cid == 0)

@@ -3464,3 +3490,38 @@
     return AT_END;

 }

 

+int fluxstat_query_func(int at_fd, char *at_paras,void ** res_msg, int *res_msglen)

+{

+	unsigned long long tx_bytes = 0;

+	unsigned long long tx_packets = 0;

+	unsigned long long tx_errors = 0;

+	unsigned long long tx_dropped = 0;

+	unsigned long long rx_bytes = 0;

+	unsigned long long rx_packets = 0;

+	unsigned long long rx_errors = 0;

+	unsigned long long rx_dropped = 0;

+	char *at_str = malloc(AT_CMD_MAX);

+	if(at_str == NULL){

+		softap_assert("");

+		return AT_END;

+	}

+	memset(at_str, 0, AT_CMD_MAX);

+	if(at_paras){

+		getIfStatistic(at_paras, TXBYTE, &tx_bytes);

+		getIfStatistic(at_paras, TXPACKET, &tx_packets);

+		getIfStatistic(at_paras, TXERR, &tx_errors);

+		getIfStatistic(at_paras, TXDROP, &tx_dropped);

+		getIfStatistic(at_paras, RXBYTE, &rx_bytes);

+		getIfStatistic(at_paras, RXPACKET, &rx_packets);

+		getIfStatistic(at_paras, RXERR, &rx_errors);

+		getIfStatistic(at_paras, RXDROP, &rx_dropped);

+		snprintf(at_str, AT_CMD_MAX, "\r\n+FLUXSTAT: %llu,%llu,%llu,%llu,%llu,%llu,%llu,%llu\r\n\r\nOK\r\n",

+			tx_bytes,tx_packets,tx_errors,tx_dropped,rx_bytes,rx_packets,rx_errors,rx_dropped);

+	}else{

+		sprintf(at_str,"\r\n+CME ERROR: %d\r\n",ATERR_PARAM_INVALID);

+	}

+	*res_msg = at_str;

+	*res_msglen = strlen(at_str);

+	return AT_END;

+}

+

diff --git a/ap/app/zte_comm/at_ctl/src/atctrl/at_com.c b/ap/app/zte_comm/at_ctl/src/atctrl/at_com.c
index 0e6e2a2..1d42f11 100755
--- a/ap/app/zte_comm/at_ctl/src/atctrl/at_com.c
+++ b/ap/app/zte_comm/at_ctl/src/atctrl/at_com.c
@@ -617,7 +617,7 @@
 

 

 #if (APP_OS_TYPE == APP_OS_LINUX)

-static int at_sys_write(int fd,char *buf,int len)

+int at_sys_write(int fd,char *buf,int len)

 {

 	int resendcnt = 0;

 	int written_bytes = 0; 

diff --git a/ap/app/zte_comm/at_ctl/src/atctrl/at_context.c b/ap/app/zte_comm/at_ctl/src/atctrl/at_context.c
index 87a9022..b4bb4c5 100755
--- a/ap/app/zte_comm/at_ctl/src/atctrl/at_context.c
+++ b/ap/app/zte_comm/at_ctl/src/atctrl/at_context.c
@@ -28,7 +28,7 @@
 #include <termios.h>        //termios, tcgetattr(), tcsetattr()

 #include <limits.h>

 #endif

-

+#include <sys/syscall.h>

 

 /*******************************************************************************

  *                             Macro definitions                               *

@@ -128,7 +128,135 @@
 			at_print(AT_ERR,"ERR: cap_at_chn_init at_portmng_set_state_proc error\n");

 		}

 		at_print(AT_NORMAL,"cap_at_chn_init success!ch_name %s fd %d\n",ch_name, fd);

-    }		

+	}

+}

+

+#define USB_PORT_MAX 2

+#define PROT_NAME_SIZE_MAX 16

+extern int at_sys_write(int fd,char *buf,int len);

+struct cap_usb_proxy_info

+{

+	char usb_name[PROT_NAME_SIZE_MAX];

+	char rpm_name[PROT_NAME_SIZE_MAX];

+	int usbtocap_pid;

+	int usb_fd;

+	int captoap_pid;

+	int rpm_fd;

+};

+struct cap_usb_proxy_info g_cap_usb_proxy[USB_PORT_MAX];

+int g_usbtocap_plug_flag;

+int g_captoap_plug_flag;

+static void usbtocap_mainloop(void *param)

+{

+	int i = (int)param;

+	int ret, datalen;

+	char buf[AT_CHAN_MAX_BUF_LEN];

+	int rfd = -1;

+	int wfd = -1;

+	struct cap_usb_proxy_info *proxy = &g_cap_usb_proxy[i];

+

+	prctl(PR_SET_NAME, "usbtocap", 0, 0, 0);

+	wfd = proxy->rpm_fd;

+	proxy->usbtocap_pid = syscall(SYS_gettid);

+	

+	while(i < USB_PORT_MAX){

+		rfd = proxy->usb_fd;

+		datalen = at_read(rfd, buf, sizeof(buf));

+		if(datalen <= 0)

+		{	

+			at_print(AT_ERR,"usbtocap_read from %d failed, len:%d, errno:%d\n", rfd, datalen, errno);

+			continue;

+		}

+		ret = at_sys_write(wfd, buf, datalen);

+		if(ret <= 0)

+		{	

+			at_print(AT_ERR,"usbtocap_write from %d failed, len:%d, ret:%d\n", wfd, datalen, ret);

+			continue;

+		}

+	}

+	at_print(AT_ERR,"ERR: usbtocap i=%d err\n",i);

+}

+

+static void captoap_mainloop(void *param)

+{

+	int i = (int)param;

+	int ret, datalen;

+	char buf[AT_CHAN_MAX_BUF_LEN];

+	int rfd = -1;

+	int wfd = -1;

+	struct cap_usb_proxy_info *proxy = &g_cap_usb_proxy[i];

+	

+	prctl(PR_SET_NAME, "captoap", 0, 0, 0);

+	rfd = proxy->rpm_fd;

+	proxy->captoap_pid = syscall(SYS_gettid);

+	while(i < USB_PORT_MAX){

+		wfd = proxy->usb_fd;

+		datalen = at_read(rfd, buf, sizeof(buf));

+		if(datalen <= 0)

+		{	

+			at_print(AT_ERR,"captoap_read from %d failed, len:%d, errno:%d\n", rfd, datalen, errno);

+			continue;

+		}

+		ret = at_sys_write(wfd, buf, datalen);

+		if(ret <= 0)

+		{	

+			at_print(AT_ERR,"captoap_write from %d failed, len:%d, ret:%d\n", wfd, datalen, ret);

+			continue;

+		}

+	}

+	at_print(AT_ERR,"ERR: captoap i=%d err\n",i);

+}

+

+static void cap_usb_proxy_init(unsigned int i)

+{

+	if(i < USB_PORT_MAX){

+		pthread_t recv_thread_tid0;

+		pthread_t recv_thread_tid1;

+

+		g_cap_usb_proxy[i].rpm_fd = at_open(g_cap_usb_proxy[i].rpm_name,O_RDWR);

+		if(g_cap_usb_proxy[i].rpm_fd < 0) {

+			at_print(AT_ERR,"ERR: captoap at_open %s err%d\n",g_cap_usb_proxy[i].rpm_name, errno);

+			return;

+		}

+		channel_config(g_cap_usb_proxy[i].rpm_fd);

+		g_cap_usb_proxy[i].usb_fd = at_open(g_cap_usb_proxy[i].usb_name,O_RDWR);

+		if(g_cap_usb_proxy[i].usb_fd < 0) {

+			at_print(AT_ERR,"ERR: captoap at_open %s err%d\n",g_cap_usb_proxy[i].usb_name, errno);

+		}

+		if (pthread_create(&recv_thread_tid0, NULL, (void *)usbtocap_mainloop, i) != 0)

+			at_print(AT_ERR,"%s->cap proxyth create fail\n",g_cap_usb_proxy[i].usb_name);

+		if (pthread_create(&recv_thread_tid1, NULL, (void *)captoap_mainloop, i) != 0)

+			at_print(AT_ERR,"%s->ap proxyth create fail\n",g_cap_usb_proxy[i].rpm_name);

+		at_print(AT_NORMAL,"cap_usb_proxy_init success!%s<->%s\n",g_cap_usb_proxy[i].usb_name, g_cap_usb_proxy[i].rpm_name);

+		return;

+	}

+	at_print(AT_NORMAL,"cap_at_chn_init %d fail\n", i);

+}

+

+int cap_usb_hotplug(const char *name, int is_open)

+{

+	int i;

+	

+	for(i = 0; i < USB_PORT_MAX; i++){

+		if(strcmp(name, g_cap_usb_proxy[i].usb_name) == 0){

+			if(is_open == 0)

+				return 1;

+			if(g_cap_usb_proxy[i].usb_fd >= 0)

+				at_close(g_cap_usb_proxy[i].usb_fd);

+			g_cap_usb_proxy[i].usb_fd = at_open(g_cap_usb_proxy[i].usb_name,O_RDWR);

+			if(g_cap_usb_proxy[i].usb_fd < 0) 

+				at_print(AT_ERR,"ERR: cap_usb_hotplug at_open %s err%d\n",g_cap_usb_proxy[i].usb_name, errno);

+			else{

+				at_print(AT_NORMAL,"cap_usb_hotplug %s fd=%d\n",g_cap_usb_proxy[i].usb_name, g_cap_usb_proxy[i].usb_fd);

+				if(g_cap_usb_proxy[i].usbtocap_pid > 0)

+					kill(g_cap_usb_proxy[i].usbtocap_pid, SIGUSR1);

+				if(g_cap_usb_proxy[i].captoap_pid > 0)

+					kill(g_cap_usb_proxy[i].captoap_pid, SIGUSR1);

+			}

+			return 1;

+		}

+	}

+	return 0;

 }

 #endif

 

@@ -290,7 +418,7 @@
 		ÎÞÐèÔÙ´ò¿ª¡£

 	*/

 	char port_name[20] = {0};

-	sc_cfg_get("notify_forbiden_ports",port_name,sizeof(port_name));	

+	sc_cfg_get("notify_forbiden_ports",port_name,sizeof(port_name));

 	

 	if(strcmp("/dev/ttyS0",port_name))

 	{

@@ -303,22 +431,42 @@
 			}

 		}

 	}

-	g_farps_fd1 = at_open("/dev/ttyGS0",O_RDWR);

-	at_print(AT_ERR,"init open ttyGS0 => fd: %d er_no: %d\n", g_farps_fd1, errno);

-	if(g_farps_fd1 >= 0){

-		if(at_portmng_set_state_proc("/dev/ttyGS0",1,g_farps_fd1) != 0){

-			at_close(g_farps_fd1);

-			g_farps_fd1=-1;

+#ifdef USE_CAP_SUPPORT

+	sc_cfg_get("cap_port_name",port_name,sizeof(port_name));

+	

+	if(strstr("/dev/ttyGS0",port_name) == NULL){

+#endif

+		g_farps_fd1 = at_open("/dev/ttyGS0",O_RDWR);

+		at_print(AT_ERR,"init open ttyGS0 => fd: %d er_no: %d\n", g_farps_fd1, errno);

+		if(g_farps_fd1 >= 0){

+			if(at_portmng_set_state_proc("/dev/ttyGS0",1,g_farps_fd1) != 0){

+				at_close(g_farps_fd1);

+				g_farps_fd1=-1;

+			}

 		}

+#ifdef USE_CAP_SUPPORT

+	}else{

+		strncpy(g_cap_usb_proxy[0].usb_name, "/dev/ttyGS0", sizeof(g_cap_usb_proxy[0].usb_name)-1);

+		strncpy(g_cap_usb_proxy[0].rpm_name, "/dev/rpmsg30", sizeof(g_cap_usb_proxy[0].rpm_name)-1);

+		cap_usb_proxy_init(0);

 	}

-	g_farps_fd2 = at_open("/dev/ttyGS1",O_RDWR);

-	at_print(AT_ERR,"init open ttyGS1 => fd: %d er_no: %d\n", g_farps_fd2, errno);

-	if(g_farps_fd2 >= 0){

-		if(at_portmng_set_state_proc("/dev/ttyGS1",1,g_farps_fd2) != 0){

-			at_close(g_farps_fd2);

-			g_farps_fd2=-1;

+	if(strstr("/dev/ttyGS1",port_name) == NULL){

+#endif

+		g_farps_fd2 = at_open("/dev/ttyGS1",O_RDWR);

+		at_print(AT_ERR,"init open ttyGS1 => fd: %d er_no: %d\n", g_farps_fd2, errno);

+		if(g_farps_fd2 >= 0){

+			if(at_portmng_set_state_proc("/dev/ttyGS1",1,g_farps_fd2) != 0){

+				at_close(g_farps_fd2);

+				g_farps_fd2=-1;

+			}

 		}

+#ifdef USE_CAP_SUPPORT

+	}else{

+		strncpy(g_cap_usb_proxy[1].usb_name, "/dev/ttyGS1", sizeof(g_cap_usb_proxy[1].usb_name)-1);

+		strncpy(g_cap_usb_proxy[1].rpm_name, "/dev/rpmsg31", sizeof(g_cap_usb_proxy[1].rpm_name)-1);

+		cap_usb_proxy_init(1);

 	}

+#endif

 	{

 		char echo_nv[20] = {0};

 		int echo;

diff --git a/ap/app/zte_comm/at_ctl/src/atctrl/at_ctl.c b/ap/app/zte_comm/at_ctl/src/atctrl/at_ctl.c
index 5aa9194..d84fd62 100755
--- a/ap/app/zte_comm/at_ctl/src/atctrl/at_ctl.c
+++ b/ap/app/zte_comm/at_ctl/src/atctrl/at_ctl.c
@@ -59,6 +59,7 @@
 extern T_ZDrvSys_PowerOn_Type g_powerOnType;

 extern void recv_mainloop_farps(void);

 extern void at_comm_init(void);

+extern char PsmIndAtCmdPrefix[AT_CMD_MAX];

 /*******************************************************************************

  *                         Local variable definitions                          *

  ******************************************************************************/

@@ -789,7 +790,7 @@
 		/* Æô¶¯ÏûÏ¢¶¨Ê±²éѯ*/

 		at_timeout_start_perio_query();

 	}

-

+	sc_cfg_get("customIndCmdList", PsmIndAtCmdPrefix, sizeof(PsmIndAtCmdPrefix));

     while(g_powerOnType != POWER_ON_LOCALUPDATE)

     {

         iRet = 0;

diff --git a/ap/app/zte_comm/at_ctl/src/atctrl/at_portmng.c b/ap/app/zte_comm/at_ctl/src/atctrl/at_portmng.c
index a87c8d5..9049199 100755
--- a/ap/app/zte_comm/at_ctl/src/atctrl/at_portmng.c
+++ b/ap/app/zte_comm/at_ctl/src/atctrl/at_portmng.c
@@ -376,6 +376,7 @@
 

 //´¦Àí´ò¿ª¹Ø±ÕÕæÊµµÄͨµÀÏûÏ¢£¬Ä¿Ç°ÓÃÓÚ´¦ÀíÀ´×Ôzte_drvcommngÓ¦ÓÃ

 //µÄ´®¿ÚºÍcmuxÉ豸µÄ´ò¿ª»òÕ߹رÕ

+extern int cap_usb_hotplug(const char *name, int is_open);

 int  proc_at_port_hotplug(MSG_BUF *msg_buf)

 {

 	switch (msg_buf->usMsgCmd)

@@ -387,6 +388,10 @@
 			at_print(AT_ERR,"PORT_OPEN: port name %s error\n", msg_buf->aucDataBuf);

 			return 1;

 		}

+#ifdef USE_CAP_SUPPORT

+		if(cap_usb_hotplug(msg_buf->aucDataBuf, 1))

+			return 1;

+#endif

 		if(at_portmng_get_fd_by_name((msg_buf->aucDataBuf)) >= 0 && g_farps_hotplug_flag == 0)

 		{

 			at_print(AT_ERR,"PORT_OPEN: %s is opened\n", msg_buf->aucDataBuf);

@@ -404,6 +409,10 @@
 			at_print(AT_ERR,"PORT_CLOSE: port name %s error\n", msg_buf->aucDataBuf);

 			return 1;

 		}

+#ifdef USE_CAP_SUPPORT

+		if(cap_usb_hotplug(msg_buf->aucDataBuf, 0))

+			return 1;

+#endif

 		pthread_mutex_lock(&g_hotplug_mutex);

         at_hotplug_set_state((const char *)(msg_buf->aucDataBuf),0);

 		g_farps_hotplug_flag=1;

diff --git a/ap/app/zte_comm/at_ctl/src/atctrl/at_rcvmsg.c b/ap/app/zte_comm/at_ctl/src/atctrl/at_rcvmsg.c
index 4d7317e..d0afa68 100755
--- a/ap/app/zte_comm/at_ctl/src/atctrl/at_rcvmsg.c
+++ b/ap/app/zte_comm/at_ctl/src/atctrl/at_rcvmsg.c
@@ -859,9 +859,9 @@
     return 0;

 }

 

+char PsmIndAtCmdPrefix[AT_CMD_MAX] = {0};	 /*À©Õ¹ÃüÁîÅäÖõÄÖ÷¶¯Éϱ¨µÄATÃüÁîǰ׺*/

 void rcv_at_inform_filter(int at_fd, void *at_cmd_prefix, int prefix_len)

 {	

-	char PsmIndAtCmdPrefix[AT_CMD_MAX] = {0};    /*À©Õ¹ÃüÁîÅäÖõÄÖ÷¶¯Éϱ¨µÄATÃüÁîǰ׺*/

     int position = at_context_get_pos_by_fd(at_fd);

 	char temp_prefix[21]= {0};

 	int tempPrefixlen = 0;

@@ -875,11 +875,12 @@
 	{

 		strcpy(PsmIndAtCmdPrefix, "+CGREG+CREG");

 	}

+#ifndef USE_CAP_SUPPORT

 	else

 	{

 		sc_cfg_get("customIndCmdList", PsmIndAtCmdPrefix, sizeof(PsmIndAtCmdPrefix));

 	}

-	

+#endif

 	//at_print(AT_ERR,"[XXX]customIndCmdList =%s\n",PsmIndAtCmdPrefix);

 	//at_print(AT_ERR,"[XXX]FwIndAtCmdPrefix =%s\n",FwIndAtCmdPrefix);	

 	//at_print(AT_ERR,"[XXX]at_cmd_prefix =%s\n",temp_prefix);

diff --git a/ap/app/zte_comm/nvserver/nvserver.c b/ap/app/zte_comm/nvserver/nvserver.c
index b7a197d..d00b176 100755
--- a/ap/app/zte_comm/nvserver/nvserver.c
+++ b/ap/app/zte_comm/nvserver/nvserver.c
@@ -30,144 +30,143 @@
 file,char*key,char*value);static int nvunset(char*file,char*key);static int 
 nvclear(char*file);static int nvreset(char*file);static int nvcommit(char*file);
 T_NV_NODE*nv_list;int nvserver_main(int argc,char*argv[]){int msgId=
-(0x21b7+228-0x229b);T_NV_MSG_INFO rcvBuf;T_NV_MSG_RESULT sndBuf;struct msqid_ds 
-msgInfo;prctl(PR_SET_NAME,"\x6e\x76\x73\x65\x72\x76\x65\x72",(0x8ac+1107-0xcff),
-(0x325+7130-0x1eff),(0xac5+7170-0x26c7));memset(&rcvBuf,(0x1bd7+1186-0x2079),
-sizeof(rcvBuf));memset(&sndBuf,(0xc5f+4745-0x1ee8),sizeof(sndBuf));memset(&
-msgInfo,(0x12e2+609-0x1543),sizeof(msgInfo));msgId=msgget(MODULE_ID_NV,IPC_CREAT
-|(0x14e3+145-0x13f4));if(-(0x1096+3747-0x1f38)==msgId){printf(
+(0xf9d+1777-0x168e);T_NV_MSG_INFO rcvBuf;T_NV_MSG_RESULT sndBuf;struct msqid_ds 
+msgInfo;prctl(PR_SET_NAME,"\x6e\x76\x73\x65\x72\x76\x65\x72",(0x692+5200-0x1ae2)
+,(0x37d+8962-0x267f),(0xe2a+4064-0x1e0a));memset(&rcvBuf,(0x2bf+4784-0x156f),
+sizeof(rcvBuf));memset(&sndBuf,(0x135+7123-0x1d08),sizeof(sndBuf));memset(&
+msgInfo,(0x1335+1600-0x1975),sizeof(msgInfo));msgId=msgget(MODULE_ID_NV,
+IPC_CREAT|(0x1cf7+159-0x1c16));if(-(0x550+6473-0x1e98)==msgId){printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x65\x72\x72\x6f\x72\x3a\x20\x6d\x73\x67\x67\x65\x74\x20\x6d\x73\x67\x49\x64\x20\x66\x61\x69\x6c\x2c\x20\x65\x72\x72\x6e\x6f\x20\x3d\x20\x25\x64" "\n"
-,errno);return-(0x39a+1709-0xa46);}if(-(0x59b+239-0x689)!=msgctl(msgId,IPC_STAT,
-&msgInfo)){msgInfo.msg_qbytes=262144;if(-(0x1594+3177-0x21fc)==msgctl(msgId,
-IPC_SET,&msgInfo))printf(
+,errno);return-(0x1e2+4748-0x146d);}if(-(0x15fb+3897-0x2533)!=msgctl(msgId,
+IPC_STAT,&msgInfo)){msgInfo.msg_qbytes=262144;if(-(0x4a0+8126-0x245d)==msgctl(
+msgId,IPC_SET,&msgInfo))printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x65\x72\x72\x6f\x72\x3a\x20\x6d\x73\x67\x63\x74\x6c\x20\x6d\x73\x67\x49\x64\x20\x66\x61\x69\x6c\x2c\x20\x65\x72\x72\x6e\x6f\x20\x3d\x20\x25\x64" "\n"
-,errno);}if(nvDirInit()!=(0xe14+3810-0x1cf6)){printf(
+,errno);}if(nvDirInit()!=(0x1386+1034-0x1790)){printf(
 "\x6e\x76\x44\x69\x72\x49\x6e\x69\x74\x20\x66\x61\x69\x6c\x65\x21" "\n");return-
-(0x983+7212-0x25ae);}nvConfig();nvInit();while((0x4a8+5403-0x19c2)){if(-
-(0x7a0+694-0xa55)==msgrcv(msgId,&rcvBuf,sizeof(T_NV_MSG_INFO)-sizeof(long),
-MSG_TYPE_NV,(0x1555+856-0x18ad))){printf(
+(0x103+4607-0x1301);}nvConfig();nvInit();while((0x92a+6724-0x236d)){if(-
+(0x713+565-0x947)==msgrcv(msgId,&rcvBuf,sizeof(T_NV_MSG_INFO)-sizeof(long),
+MSG_TYPE_NV,(0x160d+1056-0x1a2d))){printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x65\x72\x72\x6f\x72\x3a\x20\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x6d\x73\x67\x72\x63\x76\x20\x66\x61\x69\x6c\x2c\x20\x65\x72\x72\x6e\x6f\x20\x3d\x20\x25\x64\x21" "\n"
-,errno);continue;}analyMsg(&rcvBuf,&sndBuf);if(-(0x93+7684-0x1e96)==msgsnd(msgId
-,&sndBuf,sizeof(T_NV_MSG_RESULT)-sizeof(long),(0x1429+1555-0x1a3c))){printf(
+,errno);continue;}analyMsg(&rcvBuf,&sndBuf);if(-(0x1723+2233-0x1fdb)==msgsnd(
+msgId,&sndBuf,sizeof(T_NV_MSG_RESULT)-sizeof(long),(0xc5a+11-0xc65))){printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x65\x72\x72\x6f\x72\x3a\x20\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x6d\x73\x67\x73\x6e\x64\x20\x66\x61\x69\x6c\x2c\x20\x65\x72\x72\x6e\x6f\x20\x3d\x20\x25\x64\x21" "\n"
-,errno);continue;}}return((0xb32+2857-0x165b));}static void configdir(char*dir){
+,errno);continue;}}return((0x3b8+8720-0x25c8));}static void configdir(char*dir){
 DIR*dp;int ret;struct dirent*entry;struct stat statbuf;if((dp=opendir(dir))==
 NULL){fprintf(stderr,
 "\x63\x61\x6e\x6e\x6f\x74\x20\x6f\x70\x65\x6e\x20\x64\x69\x72\x65\x63\x74\x6f\x72\x79\x3a\x20\x25\x73" "\n"
 ,dir);return;}chdir(dir);while((entry=readdir(dp))!=NULL){ret=lstat(entry->
-d_name,&statbuf);if(ret<(0xda4+2642-0x17f6)){fprintf(stderr,
+d_name,&statbuf);if(ret<(0x409+5808-0x1ab9)){fprintf(stderr,
 "\x6c\x73\x74\x61\x74\x20\x65\x72\x72\x6f\x72\x3a\x20\x25\x73" "\n",strerror(
 errno));chdir("\x2e\x2e");closedir(dp);return;}if(!S_ISDIR(statbuf.st_mode)){if(
-strcmp("\x2e",entry->d_name)==(0x3a5+2764-0xe71)||strcmp("\x2e\x2e",entry->
-d_name)==(0x7cd+7314-0x245f))continue;if(!isNvConfiged(entry->d_name)){if(
+strcmp("\x2e",entry->d_name)==(0xb93+2285-0x1480)||strcmp("\x2e\x2e",entry->
+d_name)==(0xce3+3622-0x1b09))continue;if(!isNvConfiged(entry->d_name)){if(
 addConfigFile(entry->d_name,NULL)!=RESULT_SUCCESS)printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x65\x72\x72\x6f\x72\x3a\x63\x6f\x6e\x66\x69\x67\x20\x25\x73\x20\x65\x72\x72\x6f\x72\x21" "\n"
 ,entry->d_name);}}}chdir("\x2e\x2e");closedir(dp);}static void nvConfig(){char*
-val=NULL;FILE*fp=NULL;char buf[NV_MAX_CONFIG_LEN]={(0x100c+1798-0x1712)};fp=
-fopen(NV_CONFIG_FILE,"\x72\x6f");if(!fp){printf(
+val=NULL;FILE*fp=NULL;char buf[NV_MAX_CONFIG_LEN]={(0x97b+272-0xa8b)};fp=fopen(
+NV_CONFIG_FILE,"\x72\x6f");if(!fp){printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x65\x72\x72\x6f\x72\x3a\x6f\x70\x65\x6e\x20\x25\x73\x20\x66\x69\x6c\x65\x20\x66\x61\x69\x6c\x20\x65\x72\x72\x6e\x6f\x20\x3d\x20\x25\x64\x21" "\n"
 ,NV_CONFIG_FILE,errno);return;}while(fgets(buf,NV_MAX_CONFIG_LEN,fp)){if(buf[
-(0xcf6+6519-0x266d)]=='\n'||buf[(0x12ec+869-0x1651)]==
-((char)(0x837+2206-0x10b2)))continue;val=strchr(buf,((char)(0xbd8+3563-0x1986)))
-;if(!val){printf(
+(0xf7d+5635-0x2580)]=='\n'||buf[(0x572+6671-0x1f81)]==((char)(0x377+1667-0x9d7))
+)continue;val=strchr(buf,((char)(0x17ab+3339-0x2479)));if(!val){printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x65\x72\x72\x6f\x72\x3a\x25\x73\x20\x66\x69\x6c\x65\x20\x66\x6f\x72\x6d\x61\x74\x20\x65\x72\x72\x6f\x72\x3a\x20\x73\x74\x72\x20\x3d\x20\x25\x73\x21" "\n"
-,NV_CONFIG_FILE,buf);continue;}buf[strlen(buf)-(0x394+4011-0x133e)]='\0';*val++=
-'\0';if(!isCfgConfiged(buf)){if(addConfigFile(val,buf)!=RESULT_SUCCESS)printf(
+,NV_CONFIG_FILE,buf);continue;}buf[strlen(buf)-(0x1cb9+1681-0x2349)]='\0';*val++
+='\0';if(!isCfgConfiged(buf)){if(addConfigFile(val,buf)!=RESULT_SUCCESS)printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x65\x72\x72\x6f\x72\x3a\x63\x6f\x6e\x66\x69\x67\x20\x25\x73\x20\x65\x72\x72\x6f\x72\x21" "\n"
 ,buf);}}fclose(fp);configdir(NV_FS_MAIN_PATH);}static int nvDirInit(){if(access(
-NV_FS_PATH,F_OK)!=(0x41a+6568-0x1dc2)){if(mkdir(NV_FS_PATH,(0x9fc+7306-0x2499))
-!=(0x2a5+5311-0x1764)){printf(
+NV_FS_PATH,F_OK)!=(0x967+3017-0x1530)){if(mkdir(NV_FS_PATH,(0xaba+2657-0x132e))
+!=(0xbc7+1659-0x1242)){printf(
 "\x6e\x65\x72\x76\x65\x72\x20\x6d\x6b\x64\x69\x72\x20\x25\x73\x20\x66\x61\x6c\x69\x2c\x65\x72\x72\x6e\x6f\x3d\x25\x64" "\n"
-,NV_FS_PATH,errno);return-(0x1034+4881-0x2344);}if(mkdir(NV_FS_MAIN_PATH,
-(0x588+2040-0xb93))!=(0x7bc+4919-0x1af3)){printf(
+,NV_FS_PATH,errno);return-(0x8d6+3871-0x17f4);}if(mkdir(NV_FS_MAIN_PATH,
+(0xe1a+713-0xef6))!=(0x1124+2701-0x1bb1)){printf(
 "\x6e\x65\x72\x76\x65\x72\x20\x6d\x6b\x64\x69\x72\x20\x25\x73\x20\x66\x61\x6c\x69\x2c\x65\x72\x72\x6e\x6f\x3d\x25\x64" "\n"
-,NV_FS_MAIN_PATH,errno);return-(0x1d8+243-0x2ca);}if(mkdir(NV_FS_BACKUP_PATH,
-(0xcaf+1773-0x11af))!=(0x7ad+7206-0x23d3)){printf(
+,NV_FS_MAIN_PATH,errno);return-(0xadc+3711-0x195a);}if(mkdir(NV_FS_BACKUP_PATH,
+(0x1133+5774-0x25d4))!=(0x10ef+1653-0x1764)){printf(
 "\x6e\x65\x72\x76\x65\x72\x20\x6d\x6b\x64\x69\x72\x20\x25\x73\x20\x66\x61\x6c\x69\x2c\x65\x72\x72\x6e\x6f\x3d\x25\x64" "\n"
-,NV_FS_BACKUP_PATH,errno);return-(0x3ca+3435-0x1134);}}else{if(access(
-NV_FS_MAIN_PATH,F_OK)!=(0x605+6134-0x1dfb)){if(mkdir(NV_FS_MAIN_PATH,
-(0x7a3+436-0x76a))!=(0x1805+667-0x1aa0)){printf(
+,NV_FS_BACKUP_PATH,errno);return-(0x5b1+3287-0x1287);}}else{if(access(
+NV_FS_MAIN_PATH,F_OK)!=(0x838+2209-0x10d9)){if(mkdir(NV_FS_MAIN_PATH,
+(0x25a+3379-0xda0))!=(0x63d+3509-0x13f2)){printf(
 "\x6e\x65\x72\x76\x65\x72\x20\x6d\x6b\x64\x69\x72\x20\x25\x73\x20\x66\x61\x6c\x69\x2c\x65\x72\x72\x6e\x6f\x3d\x25\x64" "\n"
-,NV_FS_MAIN_PATH,errno);return-(0xdf7+1150-0x1274);}}if(access(NV_FS_BACKUP_PATH
-,F_OK)!=(0x1b69+1144-0x1fe1)){if(mkdir(NV_FS_BACKUP_PATH,(0x1721+808-0x185c))!=
-(0xcd+9272-0x2505)){printf(
+,NV_FS_MAIN_PATH,errno);return-(0xd01+6301-0x259d);}}if(access(NV_FS_BACKUP_PATH
+,F_OK)!=(0x1a7f+1439-0x201e)){if(mkdir(NV_FS_BACKUP_PATH,(0xd63+905-0xeff))!=
+(0x13a9+1438-0x1947)){printf(
 "\x6e\x65\x72\x76\x65\x72\x20\x6d\x6b\x64\x69\x72\x20\x25\x73\x20\x66\x61\x6c\x69\x2c\x65\x72\x72\x6e\x6f\x3d\x25\x64" "\n"
-,NV_FS_BACKUP_PATH,errno);return-(0x1ad+9035-0x24f7);}}}return
-(0x148c+3042-0x206e);}static void nvInit(){T_NV_NODE*list=NULL;char nvMainFile[
-NV_PATH_LEN]={(0x2e8+5704-0x1930)};char nvBackupFile[NV_PATH_LEN]={
-(0x1c4c+977-0x201d)};for(list=nv_list;list;list=list->next){snprintf(nvMainFile,
-NV_PATH_LEN,"\x25\x73\x2f\x25\x73",NV_FS_MAIN_PATH,list->nvFile);snprintf(
+,NV_FS_BACKUP_PATH,errno);return-(0x14c2+732-0x179d);}}}return
+(0xdc8+1270-0x12be);}static void nvInit(){T_NV_NODE*list=NULL;char nvMainFile[
+NV_PATH_LEN]={(0x1067+1826-0x1789)};char nvBackupFile[NV_PATH_LEN]={
+(0x15bd+2250-0x1e87)};for(list=nv_list;list;list=list->next){snprintf(nvMainFile
+,NV_PATH_LEN,"\x25\x73\x2f\x25\x73",NV_FS_MAIN_PATH,list->nvFile);snprintf(
 nvBackupFile,NV_PATH_LEN,"\x25\x73\x2f\x25\x73",NV_FS_BACKUP_PATH,list->nvFile);
 if(checkNvFs(nvMainFile)){if(!checkNvFs(nvBackupFile))restoreNvFs(nvBackupFile,
 nvMainFile);}else if(checkNvFs(nvBackupFile)){restoreNvFs(nvMainFile,
 nvBackupFile);}else{loadFactroyParam(list);nvcommit(list->nvFile);continue;}
 loadNvFs(list->nvFile);if(!strcmp(list->nvFile,NV_CFG)&&get_update_status()==
-(0x802+3439-0x156f)){reloadFactroyParam(list);delete_not_needed(list);nvcommit(
+(0x658+3729-0x14e7)){reloadFactroyParam(list);delete_not_needed(list);nvcommit(
 list->nvFile);
 #ifdef FOTA_AB
-dual_AB_set_fota_status_for_nv((0x230+1171-0x6c3));
+dual_AB_set_fota_status_for_nv((0x10f+5819-0x17ca));
 #endif
-}}}uint hash(const char*s){uint hash=(0x7d1+4436-0x1925);while(*s){hash=
+}}}uint hash(const char*s){uint hash=(0x506+7684-0x230a);while(*s){hash=
 NV_HASH_MUL*hash+*s++;}return hash;}static int loadFactroyParam(T_NV_NODE*list){
 char*val=NULL;FILE*fp=NULL;T_NV_CONFIG*config=NULL;char buf[NV_MAX_ITEM_LEN]={
-(0xb55+863-0xeb4)};for(config=list->fileList;config;config=config->next){fp=
+(0x1810+1389-0x1d7d)};for(config=list->fileList;config;config=config->next){fp=
 fopen(config->configFile,"\x72\x6f");if(!fp){printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x65\x72\x72\x6f\x72\x3a\x6f\x70\x65\x6e\x20\x25\x73\x20\x66\x69\x6c\x65\x20\x66\x61\x69\x6c\x20\x65\x72\x72\x6e\x6f\x20\x3d\x20\x25\x64\x21" "\n"
 ,config->configFile,errno);return RESULT_FILE_OPEN_FAIL;}while(fgets(buf,
-NV_MAX_ITEM_LEN,fp)){if(buf[(0x11fb+960-0x15bb)]=='\n'||buf[(0x8dc+1148-0xd58)]
-==((char)(0x12d5+4039-0x2279)))continue;val=strchr(buf,((char)(0xe7+1722-0x764))
-);if(!val){printf(
+NV_MAX_ITEM_LEN,fp)){if(buf[(0x519+663-0x7b0)]=='\n'||buf[(0x17dd+2775-0x22b4)]
+==((char)(0x5b+5361-0x1529)))continue;val=strchr(buf,((char)(0x210+1561-0x7ec)))
+;if(!val){printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x65\x72\x72\x6f\x72\x3a\x25\x73\x20\x66\x69\x6c\x65\x20\x66\x6f\x72\x6d\x61\x74\x20\x65\x72\x72\x6f\x72\x3a\x73\x74\x72\x69\x6e\x67\x20\x3d\x20\x25\x73" "\n"
-,config->configFile,buf);continue;}if(buf[strlen(buf)-(0xa3b+7323-0x26d5)]=='\n'
-)buf[strlen(buf)-(0x1654+2547-0x2046)]='\0';*val++='\0';nvset(list->nvFile,buf,
-val,(0x54c+3663-0x139a));}printf(
+,config->configFile,buf);continue;}if(buf[strlen(buf)-(0x1d91+1330-0x22c2)]==
+'\n')buf[strlen(buf)-(0x3ca+3390-0x1107)]='\0';*val++='\0';nvset(list->nvFile,
+buf,val,(0x1faa+588-0x21f5));}printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x6c\x6f\x61\x64\x46\x61\x63\x74\x72\x6f\x79\x50\x61\x72\x61\x6d\x20\x25\x73\x21" "\n"
 ,config->configFile);fclose(fp);}return RESULT_SUCCESS;}static bool checkNvFs(
-char*file){int len=(0x425+8073-0x23ae);int cnt=(0x32f+3665-0x1180);FILE*fp=NULL;
-char*buf=NULL;struct stat statbuff={(0x68+901-0x3ed)};if(stat(file,&statbuff)<
-(0x1bc8+365-0x1d35))return false;len=statbuff.st_size;if(len<NV_CHECK_SIZE)
+char*file){int len=(0x203+5707-0x184e);int cnt=(0xd2+428-0x27e);FILE*fp=NULL;
+char*buf=NULL;struct stat statbuff={(0xec2+4197-0x1f27)};if(stat(file,&statbuff)
+<(0x12e6+1104-0x1736))return false;len=statbuff.st_size;if(len<NV_CHECK_SIZE)
 return false;fp=fopen(file,"\x72\x6f");if(!fp)return false;buf=(char*)malloc(len
-);if(!buf){fclose(fp);return false;}cnt=(0x1362+2711-0x1df9);while(cnt<len){cnt=
-cnt+fread(buf+cnt,(0x109a+5013-0x242e),len-cnt,fp);if(ferror(fp)){clearerr(fp);
+);if(!buf){fclose(fp);return false;}cnt=(0x256+5568-0x1816);while(cnt<len){cnt=
+cnt+fread(buf+cnt,(0x1865+293-0x1989),len-cnt,fp);if(ferror(fp)){clearerr(fp);
 free(buf);fclose(fp);return false;}}if(len!=cnt){free(buf);fclose(fp);return 
 false;}if(getSum(buf,len-NV_CHECK_SIZE)+NV_FILE_FLAG!=*(uint*)(buf+len-
 NV_CHECK_SIZE)){free(buf);fclose(fp);return false;}free(buf);fclose(fp);return 
 true;}static int copyfile(const char*from,const char*to){int fd_to;int fd_from;
-char buf[(0x136b+5791-0x1a0a)];ssize_t nread;int ret=-(0xf07+2228-0x17ba);
-fd_from=open(from,O_RDONLY);if(fd_from<(0x5c1+8279-0x2618))return-
-(0xa30+6645-0x2423);fd_to=open(to,O_RDWR|O_CREAT|O_TRUNC|O_SYNC,
-(0x1701+3253-0x2216));if(fd_to<(0x18c9+425-0x1a72)){ret=-(0x6f9+2022-0xedc);goto
- out_error;}while((0xdb6+6155-0x25c0)){char*out_ptr;ssize_t nwritten;nread=read(
-fd_from,buf,sizeof(buf));if(nread==(0x160d+3003-0x21c8)){break;}else{if(nread<
-(0x158+5810-0x180a)){if(errno==EINTR||errno==EAGAIN){continue;}else{ret=-
-(0x147+3804-0x101f);goto out_error;}}}out_ptr=buf;do{nwritten=write(fd_to,
-out_ptr,nread);if(nwritten>(0x274+6785-0x1cf5)){nread-=nwritten;out_ptr+=
-nwritten;}else{if(nwritten<(0x1e6d+1603-0x24b0)){if(errno==EINTR||errno==EAGAIN)
-{continue;}else{ret=-(0x470+7125-0x2040);goto out_error;}}}}while(nread>
-(0x1466+4545-0x2627));}ret=fsync(fd_to);if(ret<(0x860+2703-0x12ef)){printf(
+char buf[(0x246b+2358-0x1da1)];ssize_t nread;int ret=-(0xb67+718-0xe34);fd_from=
+open(from,O_RDONLY);if(fd_from<(0x44a+113-0x4bb))return-(0x451+1685-0xae4);fd_to
+=open(to,O_RDWR|O_CREAT|O_TRUNC|O_SYNC,(0x73d+8248-0x25d5));if(fd_to<
+(0x102b+4386-0x214d)){ret=-(0xd21+6588-0x26da);goto out_error;}while(
+(0x677+4919-0x19ad)){char*out_ptr;ssize_t nwritten;nread=read(fd_from,buf,sizeof
+(buf));if(nread==(0x407+5708-0x1a53)){break;}else{if(nread<(0x1e38+2156-0x26a4))
+{if(errno==EINTR||errno==EAGAIN){continue;}else{ret=-(0x8b9+5996-0x2021);goto 
+out_error;}}}out_ptr=buf;do{nwritten=write(fd_to,out_ptr,nread);if(nwritten>
+(0x1ad4+690-0x1d86)){nread-=nwritten;out_ptr+=nwritten;}else{if(nwritten<
+(0x13d5+2399-0x1d34)){if(errno==EINTR||errno==EAGAIN){continue;}else{ret=-
+(0x4ad+5382-0x19ae);goto out_error;}}}}while(nread>(0x935+2807-0x142c));}ret=
+fsync(fd_to);if(ret<(0xf8c+3864-0x1ea4)){printf(
 "\x53\x79\x6e\x63\x20\x46\x61\x69\x6c\x65\x64\x3a\x25\x73\x2c\x20\x66\x69\x6c\x65\x20\x70\x61\x74\x68\x3a\x25\x73"
-,strerror(errno),to);goto out_error;}if(close(fd_to)<(0x4f3+3686-0x1359)){fd_to=
--(0xa63+6633-0x244b);ret=-(0x6c7+1636-0xd25);goto out_error;}close(fd_from);
-return(0x112a+739-0x140d);out_error:printf(
+,strerror(errno),to);goto out_error;}if(close(fd_to)<(0x1182+5388-0x268e)){fd_to
+=-(0x1fc9+961-0x2389);ret=-(0x13c5+1023-0x17be);goto out_error;}close(fd_from);
+return(0x1137+617-0x13a0);out_error:printf(
 "\x63\x6f\x70\x79\x66\x69\x6c\x65\x20\x25\x73\x20\x74\x6f\x20\x25\x73\x20\x65\x72\x72\x6f\x72\x3a\x25\x64" "\n"
-,from,to,ret);close(fd_from);if(fd_to>=(0x668+3927-0x15bf))close(fd_to);return 
+,from,to,ret);close(fd_from);if(fd_to>=(0x9fd+3476-0x1791))close(fd_to);return 
 ret;}static int restoreNvFs(char*dstFile,char*srcFile){if(copyfile(srcFile,
-dstFile)!=(0xb6b+697-0xe24))return RESULT_FAIL;return RESULT_SUCCESS;}static int
- loadNvFs(char*file){int len=(0xf85+835-0x12c8);int cnt=(0x3b1+4574-0x158f);FILE
-*fp=NULL;char*buf=NULL;char*name=NULL;char*value=NULL;char*eq=NULL;struct stat 
-statbuff={(0x19e4+2563-0x23e7)};char nvFile[NV_PATH_LEN]={(0x89a+7054-0x2428)};
-sprintf(nvFile,"\x25\x73\x2f\x25\x73",NV_FS_MAIN_PATH,file);if(stat(nvFile,&
-statbuff)<(0xf39+3366-0x1c5f))return RESULT_FAIL;len=statbuff.st_size;if(
-NV_CHECK_SIZE>len)return RESULT_FAIL;fp=fopen(nvFile,"\x72\x6f");if(!fp)return 
-RESULT_FILE_OPEN_FAIL;len=len-NV_CHECK_SIZE;buf=(char*)malloc(len+
-(0x16f2+2490-0x20ab));if(!buf){fclose(fp);return RESULT_MALLOC_FAIL;}memset(buf,
-(0x1787+1795-0x1e8a),len+(0x777+1771-0xe61));cnt=(0x36d+8250-0x23a7);while(cnt<
-len){cnt=cnt+fread(buf+cnt,(0x205d+1677-0x26e9),len-cnt,fp);if(ferror(fp)){
+dstFile)!=(0x1721+2720-0x21c1))return RESULT_FAIL;return RESULT_SUCCESS;}static 
+int loadNvFs(char*file){int len=(0xf3f+654-0x11cd);int cnt=(0x1630+323-0x1773);
+FILE*fp=NULL;char*buf=NULL;char*name=NULL;char*value=NULL;char*eq=NULL;struct 
+stat statbuff={(0x70a+3788-0x15d6)};char nvFile[NV_PATH_LEN]={
+(0xe23+2248-0x16eb)};sprintf(nvFile,"\x25\x73\x2f\x25\x73",NV_FS_MAIN_PATH,file)
+;if(stat(nvFile,&statbuff)<(0x502+149-0x597))return RESULT_FAIL;len=statbuff.
+st_size;if(NV_CHECK_SIZE>len)return RESULT_FAIL;fp=fopen(nvFile,"\x72\x6f");if(!
+fp)return RESULT_FILE_OPEN_FAIL;len=len-NV_CHECK_SIZE;buf=(char*)malloc(len+
+(0xb1b+3129-0x1753));if(!buf){fclose(fp);return RESULT_MALLOC_FAIL;}memset(buf,
+(0xd63+4577-0x1f44),len+(0x1a7b+645-0x1cff));cnt=(0x8ef+2116-0x1133);while(cnt<
+len){cnt=cnt+fread(buf+cnt,(0x496+3505-0x1246),len-cnt,fp);if(ferror(fp)){
 clearerr(fp);fclose(fp);free(buf);return RESULT_FILE_READ_FAIL;}}if(cnt!=len){
 fclose(fp);free(buf);return RESULT_FILE_READ_FAIL;}buf[len]='\0';name=buf;while(
-*name){if(!(eq=strchr(name,((char)(0xe94+4620-0x2063))))){break;}*eq='\0';value=
-eq+(0x218+4518-0x13bd);nvset(file,name,value,(0x1c68+107-0x1cd2));*eq=
-((char)(0xb08+4409-0x1c04));name=value+strlen(value)+(0x1a2d+3131-0x2667);}free(
+*name){if(!(eq=strchr(name,((char)(0x1ab1+653-0x1d01))))){break;}*eq='\0';value=
+eq+(0x50b+5471-0x1a69);nvset(file,name,value,(0xeb1+3329-0x1bb1));*eq=
+((char)(0x1805+782-0x1ad6));name=value+strlen(value)+(0x141+9350-0x25c6);}free(
 buf);fclose(fp);return RESULT_SUCCESS;}static void analyMsg(T_NV_MSG_INFO*
 msgrecv,T_NV_MSG_RESULT*msgsnd){switch(msgrecv->nvType){case MSG_GET:msgsnd->
 result=nvget(msgrecv->file,msgrecv->key,msgsnd->value);break;case MSG_SET:msgsnd
@@ -183,101 +182,101 @@
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x65\x72\x72\x6f\x72\x3a\x20\x70\x61\x72\x61\x6d\x20\x69\x6c\x6c\x65\x67\x61\x6c\x21" "\n"
 );return RESULT_INVAL;}if(configFile){newConfig=(T_NV_CONFIG*)malloc(sizeof(
 T_NV_CONFIG));if(!newConfig)return RESULT_MALLOC_FAIL;strncpy(newConfig->
-configFile,configFile,NV_PATH_LEN-(0xdb7+785-0x10c7));newConfig->configFile[
-NV_PATH_LEN-(0x111a+2299-0x1a14)]='\0';newConfig->next=NULL;}for(list=nv_list;
-list;list=list->next){if(strcmp(list->nvFile,nvFile)==(0x1cc7+754-0x1fb9))break;
-}if(!list){newList=(T_NV_NODE*)malloc(sizeof(T_NV_NODE));if(!newList){if(
+configFile,configFile,NV_PATH_LEN-(0x8e2+877-0xc4e));newConfig->configFile[
+NV_PATH_LEN-(0x827+4579-0x1a09)]='\0';newConfig->next=NULL;}for(list=nv_list;
+list;list=list->next){if(strcmp(list->nvFile,nvFile)==(0x7ff+236-0x8eb))break;}
+if(!list){newList=(T_NV_NODE*)malloc(sizeof(T_NV_NODE));if(!newList){if(
 newConfig)free(newConfig);return RESULT_MALLOC_FAIL;}newList->next=NULL;strncpy(
-newList->nvFile,nvFile,NV_PATH_LEN-(0x57a+1342-0xab7));newList->nvFile[
-NV_PATH_LEN-(0x158f+3870-0x24ac)]='\0';memset(newList->nvTable,(0x4a3+762-0x79d)
-,NV_HASH_LEN*(0x92a+7293-0x25a3));newList->fileList=newConfig;if(!nv_list)
-nv_list=newList;else{newList->next=nv_list->next;nv_list->next=newList;}}else if
-(!list->fileList)list->fileList=newConfig;else{if(newConfig==NULL)return 
-RESULT_FAIL;newConfig->next=list->fileList->next;list->fileList->next=newConfig;
-}return RESULT_SUCCESS;}static bool isCfgConfiged(char*configFile){T_NV_NODE*
-list=NULL;T_NV_CONFIG*config=NULL;for(list=nv_list;list;list=list->next){for(
-config=list->fileList;config;config=config->next){if(!strcmp(config->configFile,
-configFile))return true;}}return false;}static bool isNvConfiged(char*nvFile){
-T_NV_NODE*list=NULL;for(list=nv_list;list;list=list->next){if(!strcmp(list->
-nvFile,nvFile))return true;}return false;}static uint getSum(const char*s,int 
-len){uint sum=(0x1d4a+1848-0x2482);char*data=(char*)s;while(len-- >
-(0x939+7536-0x26a9)){sum+=(*data++);}return sum;}static int saveNvFs(char*nvName
-,char*nvFile){int i=(0x8ad+7758-0x26fb);int sum=(0xb0d+6120-0x22f5);int bufSize=
-(0xd5+7480-0x1e0d);int itemSize=(0x3a5+878-0x713);int ret=(0x14e0+4574-0x26be);
-int fp=(0x371+7724-0x219d);char*buf=NULL;T_NV_NODE*list=NULL;T_NV_ITEM*item=NULL
-;for(list=nv_list;list;list=list->next){if(strcmp(list->nvFile,nvName))continue;
-fp=open(nvFile,O_SYNC|O_RDWR|O_CREAT|O_TRUNC,(0xea3+1522-0x12f5));if(fp==-
-(0x20b+9077-0x257f)){printf(
+newList->nvFile,nvFile,NV_PATH_LEN-(0x6d1+2315-0xfdb));newList->nvFile[
+NV_PATH_LEN-(0xcc4+406-0xe59)]='\0';memset(newList->nvTable,(0xca0+493-0xe8d),
+NV_HASH_LEN*(0xdd1+1493-0x13a2));newList->fileList=newConfig;if(!nv_list)nv_list
+=newList;else{newList->next=nv_list->next;nv_list->next=newList;}}else if(!list
+->fileList)list->fileList=newConfig;else{if(newConfig==NULL)return RESULT_FAIL;
+newConfig->next=list->fileList->next;list->fileList->next=newConfig;}return 
+RESULT_SUCCESS;}static bool isCfgConfiged(char*configFile){T_NV_NODE*list=NULL;
+T_NV_CONFIG*config=NULL;for(list=nv_list;list;list=list->next){for(config=list->
+fileList;config;config=config->next){if(!strcmp(config->configFile,configFile))
+return true;}}return false;}static bool isNvConfiged(char*nvFile){T_NV_NODE*list
+=NULL;for(list=nv_list;list;list=list->next){if(!strcmp(list->nvFile,nvFile))
+return true;}return false;}static uint getSum(const char*s,int len){uint sum=
+(0x1424+4397-0x2551);char*data=(char*)s;while(len-- >(0x109d+4867-0x23a0)){sum+=
+(*data++);}return sum;}static int saveNvFs(char*nvName,char*nvFile){int i=
+(0xcaf+3241-0x1958);int sum=(0x7b1+3097-0x13ca);int bufSize=(0x38+2128-0x888);
+int itemSize=(0x194+5992-0x18fc);int ret=(0x11a+7134-0x1cf8);int fp=
+(0x779+6093-0x1f46);char*buf=NULL;T_NV_NODE*list=NULL;T_NV_ITEM*item=NULL;for(
+list=nv_list;list;list=list->next){if(strcmp(list->nvFile,nvName))continue;fp=
+open(nvFile,O_SYNC|O_RDWR|O_CREAT|O_TRUNC,(0x590+8888-0x26a8));if(fp==-
+(0x7c2+6181-0x1fe6)){printf(
 "\x6f\x70\x65\x6e\x20\x25\x73\x20\x66\x61\x69\x6c\x2c\x65\x72\x72\x6e\x6f\x20\x3d\x20\x25\x64" "\n"
 ,nvFile,errno);return RESULT_FILE_OPEN_FAIL;}buf=(char*)malloc(NV_BLOCK_SIZE);if
-(!buf){close(fp);return RESULT_MALLOC_FAIL;}for(i=(0xbcd+3580-0x19c9);i<
+(!buf){close(fp);return RESULT_MALLOC_FAIL;}for(i=(0x855+4427-0x19a0);i<
 NV_HASH_LEN;i++){for(item=list->nvTable[i];item;item=item->next){if(strcmp(
 nvFile,NV_FS_SHOW)&&!item->saveFlag)continue;itemSize=strlen(item->key)+strlen(
-item->value)+(0x1985+1354-0x1ecd);if(bufSize+itemSize>NV_BLOCK_SIZE){if(write(fp
-,buf,bufSize)<(0x77a+5645-0x1d87)){printf(
+item->value)+(0xaed+3813-0x19d0);if(bufSize+itemSize>NV_BLOCK_SIZE){if(write(fp,
+buf,bufSize)<(0x207+773-0x50c)){printf(
 "\x65\x72\x72\x6f\x72\x20\x25\x73\x20\x25\x64\x3a\x20\x77\x72\x69\x74\x65\x20\x66\x61\x69\x6c\x20\x65\x72\x72\x6e\x6f\x20\x3d\x20\x25\x64" "\n"
 ,__FILE__,__LINE__,errno);close(fp);free(buf);return RESULT_FILE_WRITE_FAIL;}sum
-+=getSum(buf,bufSize);bufSize=(0x105d+5503-0x25dc);}sprintf(buf+bufSize,
++=getSum(buf,bufSize);bufSize=(0x72c+3029-0x1301);}sprintf(buf+bufSize,
 "\x25\x73\x3d\x25\x73",item->key,item->value);bufSize+=itemSize;}}if(bufSize!=
-(0x690+6537-0x2019)){if(write(fp,buf,bufSize)<(0x3a1+3191-0x1018)){printf(
+(0x9e0+6384-0x22d0)){if(write(fp,buf,bufSize)<(0x757+853-0xaac)){printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x65\x72\x72\x6f\x72\x3a\x20\x77\x72\x69\x74\x65\x20\x66\x61\x69\x6c\x20\x65\x72\x72\x6e\x6f\x20\x3d\x20\x25\x64" "\n"
 ,errno);close(fp);free(buf);return RESULT_FILE_WRITE_FAIL;}sum+=getSum(buf,
-bufSize);}sum+=NV_FILE_FLAG;if(write(fp,&sum,NV_CHECK_SIZE)<(0x2f6+7424-0x1ff6))
-{printf(
+bufSize);}sum+=NV_FILE_FLAG;if(write(fp,&sum,NV_CHECK_SIZE)<(0x127a+1921-0x19fb)
+){printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x65\x72\x72\x6f\x72\x3a\x20\x77\x72\x69\x74\x65\x20\x66\x61\x69\x6c\x20\x65\x72\x72\x6e\x6f\x20\x3d\x20\x25\x64" "\n"
 ,errno);close(fp);free(buf);return RESULT_FILE_WRITE_FAIL;}ret=fsync(fp);free(
-buf);close(fp);if(ret<(0xc80+2216-0x1528)){printf(
+buf);close(fp);if(ret<(0x69c+591-0x8eb)){printf(
 "\x53\x79\x6e\x63\x20\x46\x61\x69\x6c\x65\x64\x3a\x25\x73\x2c\x20\x66\x69\x6c\x65\x20\x70\x61\x74\x68\x3a\x25\x73"
 ,strerror(errno),nvFile);return ret;}return RESULT_SUCCESS;}return 
 RESULT_NO_FILE;}static int nvget(char*file,char*key,char*value){int index=
-(0x352+8306-0x23c4);T_NV_NODE*list=NULL;T_NV_ITEM*item=NULL;for(list=nv_list;
-list;list=list->next){if(strcmp(list->nvFile,file))continue;index=hash(key)%
+(0x1718+29-0x1735);T_NV_NODE*list=NULL;T_NV_ITEM*item=NULL;for(list=nv_list;list
+;list=list->next){if(strcmp(list->nvFile,file))continue;index=hash(key)%
 NV_HASH_LEN;for(item=list->nvTable[index];item;item=item->next){if(strcmp(item->
-key,key))continue;strncpy(value,item->value,NV_MAX_VAL_LEN-(0xc33+382-0xdb0));
-value[NV_MAX_VAL_LEN-(0xb2+565-0x2e6)]='\0';return RESULT_SUCCESS;}}return 
+key,key))continue;strncpy(value,item->value,NV_MAX_VAL_LEN-(0x124d+3545-0x2025))
+;value[NV_MAX_VAL_LEN-(0x181c+268-0x1927)]='\0';return RESULT_SUCCESS;}}return 
 RESULT_NO_ITEM;}static int nvset(char*file,const char*key,const char*value,int 
-saveFlag){int index=(0x1c7f+1589-0x22b4);int ret=(0x1a7+5591-0x177e);int 
-key_buf_len=(0x179d+2165-0x2012);int value_buf_len=(0x435+4824-0x170d);T_NV_NODE
-*list=NULL;T_NV_ITEM*item=NULL;T_NV_ITEM*newItem=NULL;if(NULL==key||NULL==value)
-return RESULT_FAIL;key_buf_len=strlen(key)+(0x167d+3527-0x2443);value_buf_len=
-strlen(value)+(0x25d+3937-0x11bd);for(list=nv_list;list;list=list->next){if(
+saveFlag){int index=(0x15ff+1341-0x1b3c);int ret=(0x153a+1644-0x1ba6);int 
+key_buf_len=(0x67+8383-0x2126);int value_buf_len=(0x7ad+5162-0x1bd7);T_NV_NODE*
+list=NULL;T_NV_ITEM*item=NULL;T_NV_ITEM*newItem=NULL;if(NULL==key||NULL==value)
+return RESULT_FAIL;key_buf_len=strlen(key)+(0x200b+73-0x2053);value_buf_len=
+strlen(value)+(0x54d+4926-0x188a);for(list=nv_list;list;list=list->next){if(
 strcmp(list->nvFile,file))continue;index=hash(key)%NV_HASH_LEN;for(item=list->
 nvTable[index];item;item=item->next){if(strcmp(item->key,key))continue;if(
 saveFlag)item->saveFlag=saveFlag;if(!strcmp(item->value,value))return 
 RESULT_SUCCESS;free(item->value);item->value=(char*)malloc(value_buf_len);if(!
 item->value)return RESULT_MALLOC_FAIL;strncpy(item->value,value,value_buf_len-
-(0xdf+3010-0xca0));item->value[value_buf_len-(0x14c0+1618-0x1b11)]='\0';return 
+(0xd1f+3066-0x1918));item->value[value_buf_len-(0x814+2114-0x1055)]='\0';return 
 RESULT_SUCCESS;}newItem=(T_NV_ITEM*)malloc(sizeof(T_NV_ITEM));if(!newItem)return
  RESULT_MALLOC_FAIL;newItem->key=(char*)malloc(key_buf_len);if(!newItem->key){
 free(newItem);return RESULT_MALLOC_FAIL;}newItem->value=(char*)malloc(
 value_buf_len);if(!newItem->value){free(newItem->key);free(newItem);return 
-RESULT_MALLOC_FAIL;}strncpy(newItem->key,key,key_buf_len-(0x258b+13-0x2597));
-newItem->key[key_buf_len-(0x3ab+5388-0x18b6)]='\0';strncpy(newItem->value,value,
-value_buf_len-(0x130+917-0x4c4));newItem->value[value_buf_len-
-(0xe9c+2115-0x16de)]='\0';newItem->next=NULL;newItem->saveFlag=saveFlag;newItem
-->update_flag=(0x2530+259-0x2633);if(!list->nvTable[index])list->nvTable[index]=
+RESULT_MALLOC_FAIL;}strncpy(newItem->key,key,key_buf_len-(0xa8+6175-0x18c6));
+newItem->key[key_buf_len-(0x7d2+1506-0xdb3)]='\0';strncpy(newItem->value,value,
+value_buf_len-(0xfa0+3677-0x1dfc));newItem->value[value_buf_len-
+(0x8c9+7665-0x26b9)]='\0';newItem->next=NULL;newItem->saveFlag=saveFlag;newItem
+->update_flag=(0x179+2470-0xb1f);if(!list->nvTable[index])list->nvTable[index]=
 newItem;else{newItem->next=list->nvTable[index]->next;list->nvTable[index]->next
 =newItem;}return RESULT_SUCCESS;}ret=addConfigFile(file,NULL);if(ret==
 RESULT_SUCCESS)return nvset(file,key,value,saveFlag);else return ret;}static int
- nvunset(char*file,char*key){int index=(0xe95+1128-0x12fd);T_NV_NODE*list=NULL;
+ nvunset(char*file,char*key){int index=(0x825+7553-0x25a6);T_NV_NODE*list=NULL;
 T_NV_ITEM*item=NULL;T_NV_ITEM*prev=NULL;for(list=nv_list;list;list=list->next){
 if(strcmp(list->nvFile,file))continue;index=hash(key)%NV_HASH_LEN;for(item=list
 ->nvTable[index];item;prev=item,item=item->next){if(strcmp(item->key,key))
 continue;if(!prev)list->nvTable[index]=item->next;else prev->next=item->next;
 free(item->key);free(item->value);free(item);return RESULT_SUCCESS;}}return 
-RESULT_NO_ITEM;}static int nvreset(char*file){int ret=(0x2db+5059-0x169e);
+RESULT_NO_ITEM;}static int nvreset(char*file){int ret=(0x5ca+4630-0x17e0);
 T_NV_NODE*list=NULL;for(list=nv_list;list;list=list->next){if(strcmp(list->
 nvFile,file))continue;ret=nvclear(file);if(ret!=RESULT_SUCCESS)return ret;if(
 loadFactroyParam(list)!=RESULT_SUCCESS)return RESULT_FAIL;return nvcommit(file);
-}return RESULT_NO_FILE;}static int nvclear(char*file){int i=(0x33c+2603-0xd67);
+}return RESULT_NO_FILE;}static int nvclear(char*file){int i=(0x821+6218-0x206b);
 T_NV_NODE*list=NULL;T_NV_ITEM*cur=NULL;T_NV_ITEM*item=NULL;for(list=nv_list;list
 ;list=list->next){if(strcmp(list->nvFile,file))continue;for(i=
-(0xdef+2131-0x1642);i<NV_HASH_LEN;i++){for(item=list->nvTable[i];item;){cur=item
-;item=item->next;free(cur->key);free(cur->value);free(cur);}list->nvTable[i]=
-NULL;}return RESULT_SUCCESS;}return RESULT_NO_FILE;}static int nvcommit(char*
-file){int ret=(0x585+2926-0x10f3);char nvMainFile[NV_PATH_LEN]={
-(0x827+4455-0x198e)};char nvBackupFile[NV_PATH_LEN]={(0xd3d+693-0xff2)};sprintf(
-nvMainFile,"\x25\x73\x2f\x25\x73",NV_FS_MAIN_PATH,file);sprintf(nvBackupFile,
+(0x1772+1118-0x1bd0);i<NV_HASH_LEN;i++){for(item=list->nvTable[i];item;){cur=
+item;item=item->next;free(cur->key);free(cur->value);free(cur);}list->nvTable[i]
+=NULL;}return RESULT_SUCCESS;}return RESULT_NO_FILE;}static int nvcommit(char*
+file){int ret=(0x125b+636-0x14d7);char nvMainFile[NV_PATH_LEN]={
+(0x689+7094-0x223f)};char nvBackupFile[NV_PATH_LEN]={(0xff4+613-0x1259)};sprintf
+(nvMainFile,"\x25\x73\x2f\x25\x73",NV_FS_MAIN_PATH,file);sprintf(nvBackupFile,
 "\x25\x73\x2f\x25\x73",NV_FS_BACKUP_PATH,file);ret=saveNvFs(file,nvMainFile);if(
 ret!=RESULT_SUCCESS)return ret;return restoreNvFs(nvBackupFile,nvMainFile);}
 #ifdef __cplusplus
diff --git a/ap/app/zte_comm/nvserver/nvserver_rpc.c b/ap/app/zte_comm/nvserver/nvserver_rpc.c
index f165cdc..eb1efee 100755
--- a/ap/app/zte_comm/nvserver/nvserver_rpc.c
+++ b/ap/app/zte_comm/nvserver/nvserver_rpc.c
@@ -18,6 +18,7 @@
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <assert.h>
 #include <dirent.h>
 #include <string.h>
 #include <sys/file.h>
@@ -65,6 +66,10 @@
 *                                È«¾Ö±äÁ¿¶¨Òå                                  *
 *******************************************************************************/
 static int g_rpc_fd = -1;
+static unsigned int g_msgRcvCnt = 0;
+static unsigned int g_msgRcvErrCnt = 0;
+static unsigned int g_msgSndCnt = 0;
+static unsigned int g_msgSndErrCnt = 0;
 
 /*******************************************************************************
 *                                ¾Ö²¿º¯ÊýʵÏÖ                                  *
@@ -100,11 +105,42 @@
         try_cnt++;
         //sleep(1);
         //continue;
-    } while (0 != sc_rpc_recv(g_rpc_fd, rpc_data2, timeout)); // µÈ´ýCAPºË´´½¨Í¨µÀ
+    } while (0 != sc_rpc_recv(g_rpc_fd, rpc_data2, timeout)); //µÈ´ýÍê³É
+    if (rpc_data2->msg_type != RPC_MSG_TYPE_REPLY)
+        assert(0);
 
     memcpy(msgsnd, rpc_data2->data, sizeof(T_NV_MSG_RESULT));
 }
 
+static int nv_rpc_wait_ready(int fd)
+{
+    T_sc_rpc_header *rpc_data;
+    unsigned int timeout = 200; // ms
+    int write_flag = 1;
+
+    rpc_data = malloc(sizeof(T_sc_rpc_header));
+    if (rpc_data == NULL)
+        return -1;
+    while(1)
+    {
+        rpc_data->msg_type = RPC_MSG_TYPE_READY;
+        if (write_flag)
+        {
+            if (write(fd, rpc_data, sizeof(T_sc_rpc_header)) != 0)
+                write_flag = 0; // write ok and write sonly once
+        }
+        if (read(fd, rpc_data, sizeof(T_sc_rpc_header)) == 0)
+        {
+            usleep(timeout * 1000);
+            continue;
+        }
+        break; /* read some data mean channel ok */
+    }
+
+    free(rpc_data);
+    return 0;
+}
+
 /*******************************************************************************
 *                                È«¾Öº¯ÊýʵÏÖ                                  *
 *******************************************************************************/
@@ -125,6 +161,7 @@
     struct msqid_ds msgInfo;
     T_sc_rpc_header *rpc_data;
     T_sc_rpc_header *rpc_data2;
+    long pid_backup;       /*  app-libnvram pid backup */
 
     prctl(PR_SET_NAME, "nvserver", 0, 0, 0);
 
@@ -162,24 +199,47 @@
         return -3;
     }
 
+    if (nv_rpc_wait_ready(g_rpc_fd) < 0)
+    {
+       assert(0);
+    }
+    sc_rpc_clear(g_rpc_fd);
+    printf("apnv and nv-rpc-daemon are ready both.");
+
     // ÏûÏ¢½»»¥
     while (1)
     {
         memset(&rcvBuf, 0, sizeof(rcvBuf));
         memset(&sndBuf, 0, sizeof(sndBuf));
+        if (g_msgRcvCnt != g_msgSndCnt)
+        {
+            printf("[nvserver_rpc]Rcv:%u Snd:%u RcvErr:%u SndErr:%u\n", g_msgRcvCnt, g_msgSndCnt, g_msgRcvErrCnt, g_msgSndErrCnt);
+            assert(0);
+        }
         if (-1 == msgrcv(msgId, &rcvBuf, sizeof(T_NV_MSG_INFO) - sizeof(long), MSG_TYPE_NV, 0))
         {
+            g_msgRcvErrCnt++;
             printf("nvserver error: nvserver msgrcv fail, errno = %d!\n", errno);
             continue;
         }
+        //printf("apnv nvserver_rpc msgrcv pid:%d\n", rcvBuf.pid);
+        pid_backup = rcvBuf.pid;
+        g_msgRcvCnt++;  /* msgrcv success count */
 
         analyMsg(&rcvBuf, &sndBuf, rpc_data, rpc_data2);
 
+        //printf("apnv nvserver_rpc msgsnd pid:%d, backup:%d\n", sndBuf.msgType, pid_backup);
         if (-1 == msgsnd(msgId, &sndBuf, sizeof(T_NV_MSG_RESULT) - sizeof(long), 0))
         {
+            g_msgSndErrCnt++;
             printf("nvserver error: nvserver msgsnd fail, errno = %d!\n", errno);
             continue;
         }
+        g_msgSndCnt++;  /* msgsnd success count */
+        if (sndBuf.msgType != pid_backup)
+        {
+            assert(0);
+        }
     }
 
     free(rpc_data);
diff --git a/ap/app/zte_comm/nvserver/nvupdate.c b/ap/app/zte_comm/nvserver/nvupdate.c
index 1311b5f..34b867f 100755
--- a/ap/app/zte_comm/nvserver/nvupdate.c
+++ b/ap/app/zte_comm/nvserver/nvupdate.c
@@ -23,82 +23,81 @@
 extern T_NV_NODE*nv_list;
 #ifdef FOTA_AB
 int get_update_status(void){int ret=dual_AB_get_fota_status_for_nv();if(ret==
-(0x1384+2398-0x1ce1))return(0x1f54+1972-0x2706);else return(0x12db+3847-0x21e2);
-}
+(0x1b20+1519-0x210e))return(0x306+5932-0x1a30);else return(0x1f8f+1256-0x2477);}
 #else
-int get_update_status(void){int update_status;FILE*fd=(0x5f+2264-0x937);int ret;
-char*filename=NULL;if(access(FOTA_UPDATE_STATUS_FILE_OLD,R_OK)==
-(0x145b+1369-0x19b4)){filename=FOTA_UPDATE_STATUS_FILE_OLD;}else{filename=
+int get_update_status(void){int update_status;FILE*fd=(0xa5f+1004-0xe4b);int ret
+;char*filename=NULL;if(access(FOTA_UPDATE_STATUS_FILE_OLD,R_OK)==
+(0x20d+3207-0xe94)){filename=FOTA_UPDATE_STATUS_FILE_OLD;}else{filename=
 FOTA_UPDATE_STATUS_FILE;}printf(
 "get_update_status, read_update_status from %s\n",filename);fd=fopen(filename,
 "\x72\x62\x2b");if(fd==NULL){printf(
 "\x5b\x6e\x76\x73\x65\x72\x76\x65\x72\x5d\x75\x70\x64\x61\x74\x65\x5f\x73\x74\x61\x74\x75\x73\x20\x6f\x70\x65\x6e\x20\x20\x65\x72\x72\x6f\x72\x3a\x25\x73" "\n"
 ,strerror(errno));goto error0;}ret=fscanf(fd,"\x25\x64",(int*)&update_status);if
-(ret<(0x689+3651-0x14cc)){printf(
+(ret<(0xa56+5614-0x2044)){printf(
 "\x67\x65\x74\x20\x69\x6e\x66\x6f\x20\x66\x72\x6f\x6d\x20\x66\x69\x6c\x65\x20\x65\x72\x72\x6f\x72\x3a\x25\x73" "\n"
 ,strerror(errno));fclose(fd);goto error0;}printf(
 "\x75\x70\x64\x61\x74\x65\x5f\x73\x74\x61\x74\x75\x73\x3d\x25\x64" "\n",
-update_status);fclose(fd);return update_status;error0:return-(0x8f0+3167-0x154e)
-;}
+update_status);fclose(fd);return update_status;error0:return-
+(0x16ed+1906-0x1e5e);}
 #endif
 int nvupdate(char*nv_file,char*config_file,const char*key,const char*value,int 
-saveFlag){int index=(0xeb+3008-0xcab);int key_buf_len=(0x779+3965-0x16f6);int 
-value_buf_len=(0x96d+6057-0x2116);T_NV_NODE*list=NULL;T_NV_ITEM*item=NULL;
+saveFlag){int index=(0x217d+308-0x22b1);int key_buf_len=(0x870+5158-0x1c96);int 
+value_buf_len=(0x151f+3443-0x2292);T_NV_NODE*list=NULL;T_NV_ITEM*item=NULL;
 T_NV_ITEM*newItem=NULL;if(NULL==key||NULL==value)return RESULT_FAIL;printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x6e\x76\x75\x70\x64\x61\x74\x65\x20\x6e\x76\x5f\x66\x69\x6c\x65\x3a\x25\x73\x20\x6b\x65\x79\x3a\x25\x73\x20\x76\x61\x6c\x75\x65\x3a\x25\x73" "\n"
-,nv_file,key,value);key_buf_len=strlen(key)+(0xd92+6511-0x2700);value_buf_len=
-strlen(value)+(0x1a6c+1049-0x1e84);for(list=nv_list;list;list=list->next){if(
+,nv_file,key,value);key_buf_len=strlen(key)+(0x1395+382-0x1512);value_buf_len=
+strlen(value)+(0x11ca+3310-0x1eb7);for(list=nv_list;list;list=list->next){if(
 strcmp(list->nvFile,nv_file))continue;index=hash(key)%NV_HASH_LEN;for(item=list
 ->nvTable[index];item;item=item->next){if(strcmp(item->key,key))continue;if(
 saveFlag)item->saveFlag=saveFlag;if(!strcmp(item->value,value)){item->
-update_flag=(0x362+838-0x6a7);printf(
+update_flag=(0xa11+4766-0x1cae);printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x6e\x76\x75\x70\x64\x61\x74\x65\x20\x73\x61\x6d\x65\x73\x6b\x69\x70\x3a\x69\x74\x65\x6d\x2d\x3e\x6b\x65\x79\x3a\x25\x73\x20\x69\x74\x65\x6d\x2d\x3e\x76\x61\x6c\x75\x65\x3a\x25\x73\x20\x76\x61\x6c\x75\x65\x3a\x25\x73\x20\x63\x6f\x6e\x66\x69\x67\x5f\x66\x69\x6c\x65\x3a\x25\x73" "\n"
 ,item->key,item->value,value,config_file);return RESULT_SUCCESS;}if(strstr(
-config_file,"\x75\x73\x65\x72")){if((0x1adf+887-0x1e55)==item->update_flag){
+config_file,"\x75\x73\x65\x72")){if((0x366+6518-0x1cdb)==item->update_flag){
 printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x6e\x76\x75\x70\x64\x61\x74\x65\x20\x73\x65\x63\x6f\x6e\x64\x20\x63\x68\x61\x6e\x67\x65\x3a\x69\x74\x65\x6d\x2d\x3e\x6b\x65\x79\x3a\x25\x73\x20\x69\x74\x65\x6d\x2d\x3e\x76\x61\x6c\x75\x65\x3a\x25\x73\x20\x76\x61\x6c\x75\x65\x3a\x25\x73\x20\x63\x6f\x6e\x66\x69\x67\x5f\x66\x69\x6c\x65\x3a\x25\x73" "\n"
 ,item->key,item->value,value,config_file);}else{item->update_flag=
-(0x1280+1768-0x1967);printf(
+(0x1f23+1956-0x26c6);printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x6e\x76\x75\x70\x64\x61\x74\x65\x20\x75\x73\x65\x72\x73\x6b\x69\x70\x3a\x69\x74\x65\x6d\x2d\x3e\x6b\x65\x79\x3a\x25\x73\x20\x69\x74\x65\x6d\x2d\x3e\x76\x61\x6c\x75\x65\x31\x3a\x25\x73\x20\x76\x61\x6c\x75\x65\x3a\x25\x73\x20\x63\x6f\x6e\x66\x69\x67\x5f\x66\x69\x6c\x65\x3a\x25\x73" "\n"
 ,item->key,item->value,value,config_file);return RESULT_SUCCESS;}}printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x6b\x65\x79\x3d\x25\x73\x20\x63\x68\x61\x6e\x67\x65\x20\x76\x61\x6c\x75\x65\x3a\x25\x73\x20\x74\x6f\x20\x76\x61\x6c\x75\x65\x3d\x25\x73\x20" "\n"
 ,item->key,item->value,value);free(item->value);item->value=(char*)malloc(
 value_buf_len);if(!item->value)return RESULT_MALLOC_FAIL;strncpy(item->value,
-value,value_buf_len-(0x50b+821-0x83f));item->value[value_buf_len-
-(0x15dd+3361-0x22fd)]='\0';item->update_flag=(0x465+7676-0x2260);return 
+value,value_buf_len-(0x2f0+7223-0x1f26));item->value[value_buf_len-
+(0xced+6218-0x2536)]='\0';item->update_flag=(0xd9+8465-0x21e9);return 
 RESULT_SUCCESS;}newItem=(T_NV_ITEM*)malloc(sizeof(T_NV_ITEM));if(!newItem){
 printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x52\x45\x53\x55\x4c\x54\x5f\x4d\x41\x4c\x4c\x4f\x43\x5f\x46\x41\x49\x4c\x31\x20" "\n"
 );return RESULT_MALLOC_FAIL;}newItem->key=(char*)malloc(strlen(key)+
-(0x10c+8803-0x236e));if(!newItem->key){free(newItem);printf(
+(0xbb3+3338-0x18bc));if(!newItem->key){free(newItem);printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x52\x45\x53\x55\x4c\x54\x5f\x4d\x41\x4c\x4c\x4f\x43\x5f\x46\x41\x49\x4c\x32" "\n"
 );return RESULT_MALLOC_FAIL;}newItem->value=(char*)malloc(value_buf_len);if(!
 newItem->value){free(newItem->key);free(newItem);printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x52\x45\x53\x55\x4c\x54\x5f\x4d\x41\x4c\x4c\x4f\x43\x5f\x46\x41\x49\x4c\x33\x20" "\n"
 );return RESULT_MALLOC_FAIL;}strncpy(newItem->key,key,key_buf_len-
-(0xebf+1478-0x1484));newItem->key[key_buf_len-(0x1eb7+225-0x1f97)]='\0';strncpy(
-newItem->value,value,value_buf_len-(0x9ca+1274-0xec3));newItem->value[
-value_buf_len-(0x13d+4777-0x13e5)]='\0';newItem->next=NULL;newItem->saveFlag=
-saveFlag;newItem->update_flag=(0x1a25+2722-0x24c6);printf(
+(0x990+5357-0x1e7c));newItem->key[key_buf_len-(0x665+5789-0x1d01)]='\0';strncpy(
+newItem->value,value,value_buf_len-(0x1819+248-0x1910));newItem->value[
+value_buf_len-(0x1249+3460-0x1fcc)]='\0';newItem->next=NULL;newItem->saveFlag=
+saveFlag;newItem->update_flag=(0x456+5565-0x1a12);printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x61\x64\x64\x20\x6b\x65\x79\x3d\x25\x73\x2c\x20\x76\x61\x6c\x75\x65\x3d\x25\x73\x20" "\n"
 ,newItem->key,newItem->value);if(!list->nvTable[index])list->nvTable[index]=
 newItem;else{newItem->next=list->nvTable[index]->next;list->nvTable[index]->next
 =newItem;}return RESULT_SUCCESS;}return RESULT_FAIL;}int reloadFactroyParam(
 T_NV_NODE*list){char*val=NULL;FILE*fp=NULL;T_NV_CONFIG*config=NULL;char buf[
-NV_MAX_ITEM_LEN]={(0xc30+6083-0x23f3)};printf(
+NV_MAX_ITEM_LEN]={(0x1b5f+1247-0x203e)};printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x72\x65\x6c\x6f\x61\x64\x46\x61\x63\x74\x72\x6f\x79\x50\x61\x72\x61\x6d\x20\x6e\x76\x46\x69\x6c\x65\x3a\x25\x73" "\n"
 ,list->nvFile);for(config=list->fileList;config;config=config->next){printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x72\x65\x6c\x6f\x61\x64\x46\x61\x63\x74\x72\x6f\x79\x50\x61\x72\x61\x6d\x20\x63\x6f\x6e\x66\x69\x67\x46\x69\x6c\x65\x20\x73\x74\x61\x72\x74\x3a\x25\x73\x21" "\n"
 ,config->configFile);fp=fopen(config->configFile,"\x72\x6f");if(!fp){printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x65\x72\x72\x6f\x72\x3a\x6f\x70\x65\x6e\x20\x25\x73\x20\x66\x69\x6c\x65\x20\x66\x61\x69\x6c\x20\x65\x72\x72\x6e\x6f\x20\x3d\x20\x25\x64\x21" "\n"
 ,config->configFile,errno);return RESULT_FILE_OPEN_FAIL;}while(fgets(buf,
-NV_MAX_ITEM_LEN,fp)){if(buf[(0x8a1+6770-0x2313)]=='\n'||buf[(0x3ca+5804-0x1a76)]
-==((char)(0xd60+736-0x101d)))continue;val=strchr(buf,
-((char)(0x1979+1893-0x20a1)));if(!val){printf(
+NV_MAX_ITEM_LEN,fp)){if(buf[(0x1d54+38-0x1d7a)]=='\n'||buf[(0xe01+639-0x1080)]==
+((char)(0x263+1910-0x9b6)))continue;val=strchr(buf,((char)(0x543+1228-0x9d2)));
+if(!val){printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x65\x72\x72\x6f\x72\x3a\x25\x73\x20\x66\x69\x6c\x65\x20\x66\x6f\x72\x6d\x61\x74\x20\x65\x72\x72\x6f\x72\x3a\x73\x74\x72\x69\x6e\x67\x20\x3d\x20\x25\x73" "\n"
-,config->configFile,buf);continue;}buf[strlen(buf)-(0x8ca+1543-0xed0)]='\0';*val
-++='\0';nvupdate(list->nvFile,config->configFile,buf,val,(0x9d4+653-0xc60));}
-printf(
+,config->configFile,buf);continue;}buf[strlen(buf)-(0x16b+4876-0x1476)]='\0';*
+val++='\0';nvupdate(list->nvFile,config->configFile,buf,val,(0x75a+7588-0x24fd))
+;}printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x72\x65\x6c\x6f\x61\x64\x46\x61\x63\x74\x72\x6f\x79\x50\x61\x72\x61\x6d\x20\x63\x6f\x6e\x66\x69\x67\x46\x69\x6c\x65\x20\x65\x6e\x64\x3a\x25\x73\x21" "\n"
 ,config->configFile);fclose(fp);}return RESULT_SUCCESS;}void dump_list(T_NV_ITEM
 *list){if(list==NULL){printf(
@@ -106,11 +105,11 @@
 list->next;while(p!=NULL){printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x64\x75\x6d\x70\x20\x6b\x65\x79\x3d\x25\x73\x2c\x20\x76\x61\x6c\x75\x65\x3d\x25\x73\x2c\x20\x70\x3d\x30\x78\x25\x78" "\n"
 ,p->key,p->value,((unsigned int)p));p=p->next;}}int delete_not_needed(T_NV_NODE*
-list){int index=(0x1051+2140-0x18ad);T_NV_ITEM*item=NULL;T_NV_ITEM head={
-(0x16f9+1283-0x1bfc)};T_NV_ITEM*prev=&head;printf(
+list){int index=(0x197+7483-0x1ed2);T_NV_ITEM*item=NULL;T_NV_ITEM head={
+(0x21c1+57-0x21fa)};T_NV_ITEM*prev=&head;printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x64\x65\x6c\x65\x74\x65\x5f\x6e\x6f\x74\x5f\x6e\x65\x65\x64\x65\x64\x20\x65\x6e\x74\x65\x72\x20\x2a\x2a\x2a" "\n"
-);for(index=(0xc70+2727-0x1717);index<NV_HASH_LEN;index++){head.next=list->
-nvTable[index];prev=&head;for(item=prev->next;item;){if((0xda8+5426-0x22d9)==
+);for(index=(0x1d1c+2424-0x2694);index<NV_HASH_LEN;index++){head.next=list->
+nvTable[index];prev=&head;for(item=prev->next;item;){if((0x1b62+698-0x1e1b)==
 item->update_flag){prev=item;item=item->next;}else{printf(
 "\x6e\x76\x73\x65\x72\x76\x65\x72\x20\x64\x65\x6c\x65\x74\x65\x20\x6b\x65\x79\x3d\x25\x73\x2c\x20\x76\x61\x6c\x75\x65\x3d\x25\x73\x20" "\n"
 ,item->key,item->value);prev->next=item->next;free(item->key);free(item->value);
diff --git a/ap/app/zte_comm/nvserver/sc_rpc.h b/ap/app/zte_comm/nvserver/sc_rpc.h
index 58dc960..e49be97 100755
--- a/ap/app/zte_comm/nvserver/sc_rpc.h
+++ b/ap/app/zte_comm/nvserver/sc_rpc.h
@@ -17,7 +17,8 @@
 enum 
 {
     RPC_MSG_TYPE_REQUEST = 0xAA,
-    RPC_MSG_TYPE_REPLY = 0xBB
+    RPC_MSG_TYPE_REPLY = 0xBB,
+    RPC_MSG_TYPE_READY = 0x55
 };
 
 enum
diff --git a/ap/app/zte_comm/phonebook/src/pb_db.c b/ap/app/zte_comm/phonebook/src/pb_db.c
index aa6d36f..1c2b923 100755
--- a/ap/app/zte_comm/phonebook/src/pb_db.c
+++ b/ap/app/zte_comm/phonebook/src/pb_db.c
@@ -1,8 +1,8 @@
 
 #include "pb_com.h"

 T_zPb_DbResult atPb_CreatDb(){T_zPb_DbResult result=ZPB_DB_OK;CHAR sql[
-ZPB_MAX_BYTES_DB]={(0x1269+2064-0x1a79)};UINT32 count=(0x24d+5100-0x1639);result
-=atPb_ExecDbSql(ZPB_CREATE_PBM_TABLE,NULL,NULL);if(ZPB_DB_OK!=result){slog(
+ZPB_MAX_BYTES_DB]={(0x6aa+7403-0x2395)};UINT32 count=(0x62f+7694-0x243d);result=
+atPb_ExecDbSql(ZPB_CREATE_PBM_TABLE,NULL,NULL);if(ZPB_DB_OK!=result){slog(
 PB_PRINT,SLOG_ERR,
 "\x70\x62\x3a\x70\x62\x6d\x3a\x63\x72\x65\x61\x74\x65\x20\x70\x62\x6d\x20\x74\x61\x62\x6c\x65\x20\x72\x65\x73\x75\x6c\x74\x20\x69\x73\x20\x25\x64" "\n"
 ,result);return result;}result=atPb_ExecDbSql(
@@ -18,18 +18,18 @@
 ,ZPB_DB_PBM_TABLE,ZPB_LOCATION_USIM);result=atPb_ExecDbSql(sql,NULL,NULL);if(
 ZPB_DB_OK!=result){slog(PB_PRINT,SLOG_ERR,
 "\x70\x62\x3a\x70\x62\x6d\x3a\x63\x72\x65\x61\x74\x65\x20\x70\x62\x6d\x5f\x64\x65\x76\x69\x63\x65\x5f\x63\x61\x70\x61\x62\x69\x6c\x69\x74\x79\x20\x74\x61\x62\x6c\x65\x20\x72\x65\x73\x75\x6c\x74\x20\x69\x73\x20\x25\x64" "\n"
-,result);return result;}memset(sql,(0x1a9a+2148-0x22fe),sizeof(sql));snprintf(
-sql,sizeof(sql)-(0xbe1+6662-0x25e6),
+,result);return result;}memset(sql,(0x8ac+3747-0x174f),sizeof(sql));snprintf(sql
+,sizeof(sql)-(0x121c+3753-0x20c4),
 "\x73\x65\x6c\x65\x63\x74\x20\x63\x6f\x75\x6e\x74\x28\x2a\x29\x20\x66\x72\x6f\x6d\x20\x25\x73"
 ,ZPB_DB_SIM_CAPABILITY_TABLE);(VOID)atPb_ExecDbSql(sql,atPb_DbCountTableLineCb,&
-count);if((0x144+9195-0x252f)<count){memset(sql,(0xc4d+5225-0x20b6),sizeof(sql))
-;snprintf(sql,sizeof(sql)-(0x79a+4694-0x19ef),
+count);if((0xb70+2933-0x16e5)<count){memset(sql,(0x4d1+8143-0x24a0),sizeof(sql))
+;snprintf(sql,sizeof(sql)-(0x1495+1867-0x1bdf),
 "\x64\x65\x6c\x65\x74\x65\x20\x66\x72\x6f\x6d\x20\x25\x73\x20\x77\x68\x65\x72\x65\x20\x53\x69\x6d\x5f\x74\x79\x70\x65\x3e\x3d\x30"
 ,ZPB_DB_SIM_CAPABILITY_TABLE);result=atPb_ExecDbSql(sql,NULL,NULL);if(ZPB_DB_OK
 !=result){slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x53\x65\x74\x53\x69\x6d\x43\x61\x70\x61\x63\x69\x74\x79\x54\x61\x62\x6c\x65\x3a\x66\x61\x69\x6c\x21" "\n"
 );return result;}}return ZPB_DB_OK;}T_zPb_DbResult atPb_DropDb(){T_zPb_DbResult 
-result=ZPB_DB_OK;CHAR sql[ZPB_MAX_BYTES_DB]={(0xb7d+6309-0x2422)};result=
+result=ZPB_DB_OK;CHAR sql[ZPB_MAX_BYTES_DB]={(0x199+7350-0x1e4f)};result=
 atPb_ExecDbSql(ZTE_DROP_PBM_SQL,NULL,NULL);if(ZPB_DB_OK!=result){slog(PB_PRINT,
 SLOG_ERR,
 "\x61\x74\x50\x62\x5f\x44\x72\x6f\x70\x44\x62\x3a\x64\x65\x6c\x20\x70\x62\x6d\x20\x74\x61\x62\x6c\x65\x20\x72\x65\x73\x75\x6c\x74\x20\x69\x73\x20\x25\x64" "\n"
@@ -51,7 +51,7 @@
 );return ZPB_DB_ERROR_INVALIDPTR;}slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x73\x71\x6c\x69\x74\x65\x33\x5f\x6f\x70\x65\x6e\x20\x63\x61\x6c\x6c"
 );
-#if (0xa7+1802-0x7b1)

+#if (0x75+1715-0x728)

 if(!fopen(ZPB_DB_PATH,"\x72")){file=fopen(ZPB_DB_PATH,"\x77");if(!file){printf(
 "\x75\x6e\x61\x62\x6c\x65\x20\x74\x6f\x20\x6f\x70\x65\x6e\x20\x20\x66\x69\x6c\x65\x20\x65\x74\x63\x5f\x72\x77\x2f\x70\x62\x6d\x2e\x64\x62" "\n"
 );}else{printf(
@@ -68,32 +68,32 @@
 "\x70\x62\x3a\x70\x62\x6d\x3a\x63\x61\x6e\x20\x6e\x6f\x74\x20\x63\x6c\x6f\x73\x65\x20\x64\x62"
 );return ZPB_DB_ERROR;}
 #ifdef WEBS_SECURITY

-if(access(ZPB_TMP_PATH,F_OK)==(0x156a+3703-0x23e1)){slog(PB_PRINT,SLOG_ERR,
+if(access(ZPB_TMP_PATH,F_OK)==(0x8e8+4281-0x19a1)){slog(PB_PRINT,SLOG_ERR,
 "\x70\x62\x3a\x70\x62\x6d\x3a\x74\x6d\x70\x20\x64\x62\x20\x73\x74\x61\x79");if(
-remove(ZPB_TMP_PATH)!=(0x1077+4706-0x22d9)){slog(PB_PRINT,SLOG_ERR,
+remove(ZPB_TMP_PATH)!=(0x612+4795-0x18cd)){slog(PB_PRINT,SLOG_ERR,
 "\x72\x65\x6d\x6f\x76\x65\x20\x5a\x50\x42\x5f\x54\x4d\x50\x5f\x50\x41\x54\x48\x20\x66\x61\x69\x6c"
-);}}if(rename(ZPB_SEC_PATH,ZPB_TMP_PATH)!=(0x12ed+2542-0x1cdb)){slog(PB_PRINT,
+);}}if(rename(ZPB_SEC_PATH,ZPB_TMP_PATH)!=(0x11f0+150-0x1286)){slog(PB_PRINT,
 SLOG_ERR,
 "\x72\x65\x6e\x61\x6d\x65\x20\x5a\x50\x42\x5f\x53\x45\x43\x5f\x50\x41\x54\x48\x20\x66\x61\x69\x6c"
-);}{char rnum_buf[(0x4f0+4858-0x17d2)]={(0x334+8814-0x25a2)};char cmd[
-(0x6b1+2297-0xf2a)]={(0xd59+1462-0x130f)};sc_cfg_get(
+);}{char rnum_buf[(0x7d5+553-0x9e6)]={(0xa89+5833-0x2152)};char cmd[
+(0x1193+2709-0x1ba8)]={(0x187b+1074-0x1cad)};sc_cfg_get(
 "\x72\x6e\x75\x6d\x5f\x61\x74",rnum_buf,sizeof(rnum_buf));snprintf(cmd,sizeof(
 cmd),
 "\x2f\x62\x69\x6e\x2f\x6f\x70\x65\x6e\x73\x73\x6c\x20\x65\x6e\x63\x20\x2d\x65\x20\x2d\x61\x65\x73\x32\x35\x36\x20\x2d\x73\x61\x6c\x74\x20\x2d\x69\x6e\x20\x25\x73\x20\x2d\x6f\x75\x74\x20\x25\x73\x20\x2d\x70\x61\x73\x73\x20\x70\x61\x73\x73\x3a\x25\x73"
 ,ZPB_DB_PATH,ZPB_SEC_PATH,rnum_buf);zxic_system(cmd);if(access(ZPB_SEC_PATH,F_OK
-)==(0xf8+8322-0x217a)){if(remove(ZPB_TMP_PATH)!=(0xd0b+1033-0x1114)){slog(
+)==(0x248+2657-0xca9)){if(remove(ZPB_TMP_PATH)!=(0x8c6+4527-0x1a75)){slog(
 PB_PRINT,SLOG_ERR,
 "\x72\x65\x6d\x6f\x76\x65\x20\x5a\x50\x42\x5f\x54\x4d\x50\x5f\x50\x41\x54\x48\x31\x20\x66\x61\x69\x6c"
 );}}}
 #endif	

 return ZPB_DB_OK;}static check_sql_cmd(const char*pSql){if(pSql!=NULL){if(strstr
-(pSql,"\x3b")||strstr(pSql,"\x2d\x2d")){return(0xb30+551-0xd57);}return
-(0x12+2186-0x89b);}return(0x1854+101-0x18b9);}T_zPb_DbResult atPb_ExecDbSql(
+(pSql,"\x3b")||strstr(pSql,"\x2d\x2d")){return(0x622+8367-0x26d1);}return
+(0x1327+2405-0x1c8b);}return(0x1b4b+253-0x1c48);}T_zPb_DbResult atPb_ExecDbSql(
 const char*pSql,sqlite3_callback callback,VOID*pFvarg){sqlite3*pDb=NULL;CHAR 
-dbErrMsg[(0x2c3+5000-0x15cb)]={(0x381+3350-0x1097)};if(NULL==pSql){return 
+dbErrMsg[(0x1790+92-0x176c)]={(0x7b1+6581-0x2166)};if(NULL==pSql){return 
 ZPB_DB_ERROR_INVALIDPTR;}
 #ifdef WEBS_SECURITY

-if(check_sql_cmd(pSql)==(0x434+807-0x75b)){slog(PB_PRINT,SLOG_ERR,
+if(check_sql_cmd(pSql)==(0xa41+5720-0x2099)){slog(PB_PRINT,SLOG_ERR,
 "\x21\x21\x61\x74\x50\x62\x5f\x45\x78\x65\x63\x44\x62\x53\x71\x6c\x3a\x78\x73\x73\x20\x25\x73" "\n"
 ,pSql);return ZPB_DB_ERROR_INVALIDPTR;}
 #endif	

@@ -102,34 +102,34 @@
 );return ZPB_DB_ERROR_NOTOPENDB;}slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x45\x78\x65\x63\x44\x62\x53\x71\x6c\x3a\x25\x73" "\n"
 ,pSql);if(sqlite3_exec(pDb,pSql,callback,pFvarg,NULL)){strncpy(dbErrMsg,
-sqlite3_errmsg(pDb),sizeof(dbErrMsg)-(0x167c+3269-0x2340));slog(PB_PRINT,
-SLOG_ERR,
+sqlite3_errmsg(pDb),sizeof(dbErrMsg)-(0x806+5766-0x1e8b));slog(PB_PRINT,SLOG_ERR
+,
 "\x70\x62\x3a\x70\x62\x6d\x3a\x63\x61\x6e\x20\x6e\x6f\x74\x20\x65\x78\x65\x63\x20\x73\x71\x6c\x2c\x73\x71\x6c\x69\x74\x65\x33\x5f\x65\x72\x72\x6d\x73\x67\x3a\x25\x73\x2e"
 ,dbErrMsg);(VOID)sqlite3_close(pDb);return ZPB_DB_ERROR;}(VOID)atPb_DbClose(pDb)
 ;return ZPB_DB_OK;}SINT32 atPb_InitApIndexCb(VOID*fvarg,int line,char**zresult,
-char**lname){SINT32 index=(0x98d+6714-0x23c7);if((0xcb+3831-0xfc1)>line){slog(
+char**lname){SINT32 index=(0xe2f+5051-0x21ea);if((0x202+6081-0x19c2)>line){slog(
 PB_PRINT,SLOG_ERR,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x49\x6e\x69\x74\x41\x70\x49\x6e\x64\x65\x78\x43\x62\x3a\x72\x65\x63\x6f\x72\x64\x20\x6e\x6f\x20\x64\x61\x74\x61\x2e" "\n"
-);return-(0x12b3+1416-0x183a);}index=atoi(zresult[(0x136c+514-0x156e)]);if(index
+);return-(0x71d+3326-0x141a);}index=atoi(zresult[(0x1940+1579-0x1f6b)]);if(index
 >ZPB_AP_MAX_RECORD){slog(PB_PRINT,SLOG_ERR,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x49\x6e\x69\x74\x41\x70\x49\x6e\x64\x65\x78\x43\x62\x3a\x69\x6e\x64\x65\x78\x20\x6f\x76\x65\x72\x66\x6c\x6f\x77\x2e" "\n"
-);return-(0x12d6+2149-0x1b3a);}slog(PB_PRINT,SLOG_DEBUG,
+);return-(0x953+3426-0x16b4);}slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x49\x6e\x69\x74\x41\x70\x49\x6e\x64\x65\x78\x43\x62\x3a\x70\x62\x6d\x5f\x69\x6e\x64\x65\x78\x3d\x25\x64" "\n"
-,index);g_zPb_ApIndex[index]=PBM_SUCCESS;return(0x5f5+1143-0xa6c);}
+,index);g_zPb_ApIndex[index]=PBM_SUCCESS;return(0xe0c+2704-0x189c);}
 T_zPb_DbResult atPb_InitApIndex(){CHAR sql[ZPB_MAX_BYTES_DB]={
-(0x198+7417-0x1e91)};SINT32 i=(0x819+7440-0x2528);g_zPb_ApIndex[
-(0x116+1507-0x6f9)]=ZPB_AP_MAX_RECORD;for(i=(0x43+5399-0x1559);i<=g_zPb_ApIndex[
-(0x558+1098-0x9a2)];i++){g_zPb_ApIndex[i]=PBM_ERROR_NOT_FOUND;}snprintf(sql,
-sizeof(sql),
+(0x231+8830-0x24af)};SINT32 i=(0x1261+978-0x1632);g_zPb_ApIndex[
+(0xeb1+5161-0x22da)]=ZPB_AP_MAX_RECORD;for(i=(0x11d5+3664-0x2024);i<=
+g_zPb_ApIndex[(0x2147+776-0x244f)];i++){g_zPb_ApIndex[i]=PBM_ERROR_NOT_FOUND;}
+snprintf(sql,sizeof(sql),
 "\x73\x65\x6c\x65\x63\x74\x20\x50\x62\x6d\x5f\x69\x6e\x64\x65\x78\x20\x66\x72\x6f\x6d\x20\x25\x73\x20\x77\x68\x65\x72\x65\x20\x4c\x6f\x63\x61\x74\x69\x6f\x6e\x3d\x25\x64"
 ,ZPB_DB_PBM_TABLE,ZPB_LOCATION_AP);return atPb_ExecDbSql(sql,atPb_InitApIndexCb,
-ZUFI_NULL);}INT zte_pbm_check_and_creat_dir(char*path){if(-(0x167c+2657-0x20dc)
-==access(path,(0x20d6+1239-0x25ad))){slog(PB_PRINT,SLOG_DEBUG,
+ZUFI_NULL);}INT zte_pbm_check_and_creat_dir(char*path){if(-(0x2c+5623-0x1622)==
+access(path,(0x7d7+4994-0x1b59))){slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x70\x62\x6d\x3a\x25\x73\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x65\x78\x69\x73\x74\x2c\x73\x6f\x63\x72\x65\x61\x74\x65\x20\x69\x74\x2e" "\n"
-,ZPB_DB_DIR);if(-(0xfb8+3614-0x1dd5)==mkdir(path,(0x26b2+258-0x25b5))){slog(
-PB_PRINT,SLOG_ERR,
+,ZPB_DB_DIR);if(-(0x8e0+7707-0x26fa)==mkdir(path,(0xf60+5-0xd66))){slog(PB_PRINT
+,SLOG_ERR,
 "\x70\x62\x3a\x3a\x66\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x63\x72\x65\x61\x74\x65\x20\x64\x62\x20\x64\x69\x72\x2e" "\n"
-);return-(0x11c2+3332-0x1ec5);}}return(0x75+3738-0xf0f);}UINT8 
+);return-(0x1259+3197-0x1ed5);}}return(0xf03+3889-0x1e34);}UINT8 
 zte_pbm_check_web_pbm_dir(VOID){
 #ifdef _MBB_OS_UCLINUX

 (VOID)zte_pbm_check_and_creat_dir(
@@ -143,24 +143,24 @@
 "\x2f\x65\x74\x63\x5f\x72\x77\x2f\x63\x6f\x6e\x66\x69\x67");
 #endif

 return ZUFI_SUCC;}T_zPb_DbResult atPb_DelSimRecFromPbTable(SINT32 index){
-T_zPb_DbResult result=ZPB_DB_OK;CHAR sql[ZPB_MAX_BYTES_DB]={(0x18dc+1770-0x1fc6)
-};snprintf(sql,sizeof(sql),
+T_zPb_DbResult result=ZPB_DB_OK;CHAR sql[ZPB_MAX_BYTES_DB]={(0x3c3+1019-0x7be)};
+snprintf(sql,sizeof(sql),
 "\x64\x65\x6c\x65\x74\x65\x20\x66\x72\x6f\x6d\x20\x25\x73\x20\x77\x68\x65\x72\x65\x20\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x3d\x25\x64\x20\x61\x6e\x64\x20\x50\x62\x6d\x5f\x69\x6e\x64\x65\x78\x3d\x25\x64"
 ,ZPB_DB_PBM_TABLE,ZPB_LOCATION_USIM,index);result=atPb_ExecDbSql(sql,NULL,NULL);
 if(ZPB_DB_OK==result){g_zPb_SimIndex[index]=PBM_ERROR_NOT_FOUND;}return result;}
 T_zPb_DbResult atPb_LoadARecToPbmTable(T_zPb_WebContact*pbPara){T_zPb_DbResult 
-result=ZPB_DB_ERROR;CHAR sql[ZPB_MAX_BYTES_DB]={(0xfe0+3102-0x1bfe)};if(NULL==
+result=ZPB_DB_ERROR;CHAR sql[ZPB_MAX_BYTES_DB]={(0x1542+3015-0x2109)};if(NULL==
 pbPara){slog(PB_PRINT,SLOG_ERR,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x4c\x6f\x61\x64\x41\x52\x65\x63\x54\x6f\x50\x62\x6d\x54\x61\x62\x6c\x65\x3a\x69\x6e\x76\x61\x6c\x69\x64\x20\x69\x6e\x70\x75\x74"
 );return ZPB_DB_ERROR_INVALIDPTR;}snprintf(sql,sizeof(sql),"insert into %s (Pbm_index,Location,Number,Type,Name,Anr,Anr1,Email,Sne) \

 			values(\'%d\',\'%d\',\'%s\',\'%d\',\'%s\',\'%s\',\'%s\',\'%s\',\'%s\')",ZPB_DB_PBM_TABLE,pbPara->pbIndex,pbPara->pbLocation,pbPara->mobilNumber,pbPara
 ->pbType,pbPara->name,pbPara->homeNumber,pbPara->officeNumber,pbPara->email,
 pbPara->sne);result=atPb_ExecDbSql(sql,NULL,NULL);if(ZPB_DB_OK==result){CHAR 
-pbMax[(0xc92+6383-0x254f)]={(0x120d+105-0x1276)};sc_cfg_get(ZPB_NV_USIMINDEXMAX,
-pbMax,sizeof(pbMax));if((pbPara->pbIndex>=(0x3e1+8853-0x2675))&&(pbPara->pbIndex
-<=atoi(pbMax))){g_zPb_SimIndex[pbPara->pbIndex]=PBM_SUCCESS;}(VOID)sc_cfg_set(
-ZPB_NV_WRITE_FLAG,ZPB_OPERATE_SUC);}else{(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,
-ZPB_NEW_ERROR);}slog(PB_PRINT,SLOG_DEBUG,
+pbMax[(0xa08+935-0xd7d)]={(0x134f+451-0x1512)};sc_cfg_get(ZPB_NV_USIMINDEXMAX,
+pbMax,sizeof(pbMax));if((pbPara->pbIndex>=(0x1048+4268-0x20f3))&&(pbPara->
+pbIndex<=atoi(pbMax))){g_zPb_SimIndex[pbPara->pbIndex]=PBM_SUCCESS;}(VOID)
+sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_OPERATE_SUC);}else{(VOID)sc_cfg_set(
+ZPB_NV_WRITE_FLAG,ZPB_NEW_ERROR);}slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x70\x62\x6d\x3a\x65\x78\x65\x63\x20\x74\x61\x62\x6c\x65\x20\x25\x73\x20\x72\x65\x73\x75\x6c\x74\x20\x25\x64" "\n"
 ,ZPB_DB_PBM_TABLE,result);return result;}VOID atPb_SqlModifyOneRec(
 T_zPb_WebContact*pbmPara,char*sql,int len){printf(
@@ -174,17 +174,17 @@
 pbmPara->pbType,pbmPara->name,pbmPara->homeNumber,pbmPara->officeNumber,pbmPara
 ->email,pbmPara->sne,pbmPara->group,pbmPara->pbId);}}T_zPb_DbResult 
 atPb_DbGetParamCb(VOID*fvarg,int line,char**zresult,char**lname){T_zPb_Header 
-para={(0xd48+176-0xdf8)};if((0x703+5753-0x1d7b)>line){slog(PB_PRINT,SLOG_ERR,
+para={(0xf9a+5446-0x24e0)};if((0x539+3417-0x1291)>line){slog(PB_PRINT,SLOG_ERR,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x44\x62\x47\x65\x74\x50\x61\x72\x61\x6d\x43\x62\x3a\x72\x65\x63\x6f\x72\x64\x20\x6e\x6f\x20\x64\x61\x74\x61\x2e"
-);return ZPB_DB_ERROR;}para.pbIndex=atoi(zresult[(0x438+5020-0x17d4)]);para.
-pbLocation=atoi(zresult[(0x2112+1113-0x256a)]);slog(PB_PRINT,SLOG_DEBUG,
+);return ZPB_DB_ERROR;}para.pbIndex=atoi(zresult[(0xa3+4999-0x142a)]);para.
+pbLocation=atoi(zresult[(0x7bc+2221-0x1068)]);slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x44\x62\x47\x65\x74\x50\x61\x72\x61\x6d\x43\x62\x3a\x20\x69\x6e\x64\x65\x78\x3d\x25\x64\x2c\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x3d\x25\x64"
 ,para.pbIndex,para.pbLocation);memcpy(fvarg,&para,sizeof(para));return ZPB_DB_OK
 ;}T_zPb_DbResult atPb_GetIndexLocationById(T_zPb_Header*pbPara){CHAR sql[
-ZPB_MAX_BYTES_DB]={(0x1822+2103-0x2059)};snprintf(sql,sizeof(sql)-
-(0x1039+3121-0x1c69),
+ZPB_MAX_BYTES_DB]={(0x23d0+757-0x26c5)};snprintf(sql,sizeof(sql)-
+(0x73b+2296-0x1032),
 "\x73\x65\x6c\x65\x63\x74\x20\x50\x62\x6d\x5f\x69\x6e\x64\x65\x78\x2c\x4c\x6f\x63\x61\x74\x69\x6f\x6e\x20\x66\x72\x6f\x6d\x20\x25\x73\x20\x77\x68\x65\x72\x65\x20\x69\x64\x3d\x25\x64"
-,ZPB_DB_PBM_TABLE,pbPara->pbId);memset(pbPara,(0x289+6984-0x1dd1),sizeof(
+,ZPB_DB_PBM_TABLE,pbPara->pbId);memset(pbPara,(0x16a+3990-0x1100),sizeof(
 T_zPb_Header));return atPb_ExecDbSql(sql,atPb_DbGetParamCb,pbPara);}VOID 
 atPb_SqlNewOneRec(T_zPb_WebContact*pbmPara,CHAR*sql,int len){if(
 ZPB_LOCATION_USIM==pbmPara->pbLocation){snprintf(sql,len,"insert into %s (Pbm_index,Location,Number,Type,Name,Anr,Anr1,Email,Sne)\

@@ -196,8 +196,8 @@
 pbmPara->pbType,pbmPara->name,pbmPara->homeNumber,pbmPara->officeNumber,pbmPara
 ->email,pbmPara->sne,pbmPara->group);}}T_zPb_DbResult 
 atPb_WriteContactToPbmTable(T_zPb_WebContact*pPbRecord,BOOL pbNewFlag){
-T_zPb_DbResult result=ZPB_DB_OK;CHAR sql[ZPB_MAX_BYTES_DB]={(0xdd4+3412-0x1b28)}
-;if(NULL==pPbRecord){slog(PB_PRINT,SLOG_ERR,
+T_zPb_DbResult result=ZPB_DB_OK;CHAR sql[ZPB_MAX_BYTES_DB]={(0x144d+3678-0x22ab)
+};if(NULL==pPbRecord){slog(PB_PRINT,SLOG_ERR,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x57\x72\x69\x74\x65\x43\x6f\x6e\x74\x61\x63\x74\x54\x6f\x50\x62\x6d\x54\x61\x62\x6c\x65\x3a\x69\x6e\x76\x61\x6c\x69\x64\x20\x69\x6e\x70\x75\x74"
 );return ZPB_DB_ERROR_INVALIDPTR;}slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x57\x72\x69\x74\x65\x43\x6f\x6e\x74\x61\x63\x74\x54\x6f\x50\x62\x6d\x54\x61\x62\x6c\x65\x3a\x69\x6e\x70\x75\x74\x20\x69\x6e\x64\x65\x78\x20\x69\x73\x20\x25\x64\x2c\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x3d\x25\x64" "\n"
@@ -207,75 +207,75 @@
 ZPB_LOCATION_USIM==pPbRecord->pbLocation){g_zPb_SimIndex[(pPbRecord->pbIndex)]=
 PBM_SUCCESS;}else if(ZPB_LOCATION_AP==pPbRecord->pbLocation){g_zPb_ApIndex[(
 pPbRecord->pbIndex)]=PBM_SUCCESS;}}return result;}SINT32 atPb_DbCountTableLineCb
-(VOID*fvarg,int line,char**zresult,char**lname){if((0x34a+331-0x494)>line){slog(
-PB_PRINT,SLOG_ERR,
+(VOID*fvarg,int line,char**zresult,char**lname){if((0x14ec+1309-0x1a08)>line){
+slog(PB_PRINT,SLOG_ERR,
 "\x70\x62\x3a\x70\x62\x6d\x3a\x72\x65\x63\x6f\x72\x64\x20\x6e\x6f\x20\x64\x61\x74\x61\x2e"
-);return-(0x11a6+5130-0x25af);}*(int*)fvarg=atoi(zresult[(0x187+7729-0x1fb8)]);
-return(0x18e0+42-0x190a);}T_zPb_DbResult atPb_SetSimCapacityTable(
+);return-(0x1048+881-0x13b8);}*(int*)fvarg=atoi(zresult[(0x232d+194-0x23ef)]);
+return(0x140+353-0x2a1);}T_zPb_DbResult atPb_SetSimCapacityTable(
 T_zPb_UsimCapacity pbPara){T_zPb_DbResult result=ZPB_DB_OK;CHAR sql[
-ZPB_MAX_BYTES_DB]={(0x2398+68-0x23dc)};UINT32 count=(0x1199+4572-0x2375);
-snprintf(sql,sizeof(sql)-(0x1a88+3188-0x26fb),
+ZPB_MAX_BYTES_DB]={(0x224c+720-0x251c)};UINT32 count=(0x388+6815-0x1e27);
+snprintf(sql,sizeof(sql)-(0x738+202-0x801),
 "\x73\x65\x6c\x65\x63\x74\x20\x63\x6f\x75\x6e\x74\x28\x2a\x29\x20\x66\x72\x6f\x6d\x20\x25\x73"
 ,ZPB_DB_SIM_CAPABILITY_TABLE);(VOID)atPb_ExecDbSql(sql,atPb_DbCountTableLineCb,&
-count);if((0x845+2461-0x11e2)<count){memset(sql,(0x56+583-0x29d),sizeof(sql));
-snprintf(sql,sizeof(sql)-(0x7ab+347-0x905),
+count);if((0x148+2212-0x9ec)<count){memset(sql,(0x3a4+2655-0xe03),sizeof(sql));
+snprintf(sql,sizeof(sql)-(0xae5+3159-0x173b),
 "\x64\x65\x6c\x65\x74\x65\x20\x66\x72\x6f\x6d\x20\x25\x73\x20\x77\x68\x65\x72\x65\x20\x53\x69\x6d\x5f\x74\x79\x70\x65\x3e\x3d\x30"
 ,ZPB_DB_SIM_CAPABILITY_TABLE);result=atPb_ExecDbSql(sql,NULL,NULL);if(ZPB_DB_OK
 !=result){slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x53\x65\x74\x53\x69\x6d\x43\x61\x70\x61\x63\x69\x74\x79\x54\x61\x62\x6c\x65\x3a\x66\x61\x69\x6c\x21" "\n"
-);return result;}}memset(sql,(0x95f+1871-0x10ae),sizeof(sql));snprintf(sql,
-sizeof(sql)-(0x859+1735-0xf1f),"insert into %s (Sim_type,Max_record_number,Used_record_number,Max_number_len,Max_name_len,Max_anr_len,Max_anr1_len, \

+);return result;}}memset(sql,(0x40f+3467-0x119a),sizeof(sql));snprintf(sql,
+sizeof(sql)-(0x8bd+6412-0x21c8),"insert into %s (Sim_type,Max_record_number,Used_record_number,Max_number_len,Max_name_len,Max_anr_len,Max_anr1_len, \

 	          Max_email_len,Max_sne_len) values(\'%d\',\'%d\',\'%d\',\'%d\',\'%d\',\'%d\',\'%d\',\'%d\',\'%d\')",ZPB_DB_SIM_CAPABILITY_TABLE,pbPara.simType,pbPara.maxRecordNum,pbPara.
 usedRecordNum,pbPara.maxNumberLen,pbPara.maxNameLen,pbPara.maxAnrLen,pbPara.
 maxAnr1Len,pbPara.maxEmailLen,pbPara.maxSneLen);slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x53\x65\x74\x53\x69\x6d\x43\x61\x70\x61\x63\x69\x74\x79\x54\x61\x62\x6c\x65\x3a\x6f\x6b\x21" "\n"
 );return atPb_ExecDbSql(sql,NULL,NULL);}T_zPb_DbResult atPb_SetApCapacityTable()
 {T_zPb_DbResult result=ZPB_DB_OK;CHAR sql[ZPB_MAX_BYTES_DB]={
-(0x1415+2057-0x1c1e)};SINT32 count=(0x18f6+2800-0x23e6);T_zPb_ApCapacity pbPara=
-{(0x1595+4212-0x2609)};snprintf(sql,sizeof(sql)-(0xfeb+5135-0x23f9),
+(0x1547+3287-0x221e)};SINT32 count=(0x11fb+537-0x1414);T_zPb_ApCapacity pbPara={
+(0x1651+1723-0x1d0c)};snprintf(sql,sizeof(sql)-(0x1343+3795-0x2215),
 "\x73\x65\x6c\x65\x63\x74\x20\x63\x6f\x75\x6e\x74\x28\x2a\x29\x20\x66\x72\x6f\x6d\x20\x25\x73"
 ,ZPB_DB_DEVICE_CAPABILITY_TABLE);(VOID)atPb_ExecDbSql(sql,
-atPb_DbCountTableLineCb,&count);if((0x17c+7400-0x1e64)<count){memset(sql,
-(0x7f+8817-0x22f0),sizeof(sql));snprintf(sql,sizeof(sql)-(0x105d+5204-0x24b0),
+atPb_DbCountTableLineCb,&count);if((0xce7+6026-0x2471)<count){memset(sql,
+(0x668+5791-0x1d07),sizeof(sql));snprintf(sql,sizeof(sql)-(0x26a4+24-0x26bb),
 "\x64\x65\x6c\x65\x74\x65\x20\x66\x72\x6f\x6d\x20\x25\x73",
 ZPB_DB_DEVICE_CAPABILITY_TABLE);result=atPb_ExecDbSql(sql,NULL,NULL);if(
 ZPB_DB_OK!=result){slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x53\x65\x74\x41\x70\x43\x61\x70\x61\x63\x69\x74\x79\x54\x61\x62\x6c\x65\x3a\x66\x61\x69\x6c\x21" "\n"
-);return result;}}memset(sql,(0xdb3+2164-0x1627),sizeof(sql));snprintf(sql,
-sizeof(sql)-(0x1dfa+1226-0x22c3),
+);return result;}}memset(sql,(0x296+2858-0xdc0),sizeof(sql));snprintf(sql,sizeof
+(sql)-(0x817+5342-0x1cf4),
 "\x73\x65\x6c\x65\x63\x74\x20\x63\x6f\x75\x6e\x74\x28\x2a\x29\x20\x66\x72\x6f\x6d\x20\x25\x73\x20\x77\x68\x65\x72\x65\x20\x4c\x6f\x63\x61\x74\x69\x6f\x6e\x3d\x25\x64"
 ,ZPB_DB_PBM_TABLE,ZPB_LOCATION_AP);result=atPb_ExecDbSql(sql,
 atPb_DbCountTableLineCb,&count);if(ZPB_DB_OK==result){pbPara.usedRecordNum=count
 ;pbPara.maxRecordNum=ZPB_AP_MAX_RECORD;}slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x6d\x61\x78\x5f\x72\x65\x63\x5f\x6e\x75\x6d\x3d\x25\x64\x2c\x75\x73\x65\x64\x3d\x25\x64"
-,pbPara.maxRecordNum,pbPara.usedRecordNum);memset(sql,(0x18e6+1949-0x2083),
-sizeof(sql));snprintf(sql,sizeof(sql)-(0xa92+4452-0x1bf5),
+,pbPara.maxRecordNum,pbPara.usedRecordNum);memset(sql,(0x6d6+265-0x7df),sizeof(
+sql));snprintf(sql,sizeof(sql)-(0x168+5714-0x17b9),
 "\x69\x6e\x73\x65\x72\x74\x20\x69\x6e\x74\x6f\x20\x25\x73\x20\x28\x4d\x61\x78\x5f\x72\x65\x63\x6f\x72\x64\x5f\x6e\x75\x6d\x62\x65\x72\x2c\x55\x73\x65\x64\x5f\x72\x65\x63\x6f\x72\x64\x5f\x6e\x75\x6d\x62\x65\x72\x29\x20\x76\x61\x6c\x75\x65\x73\x28" "\'" "\x25\x64" "\'" "\x2c" "\'" "\x25\x64" "\'" "\x29"
 ,ZPB_DB_DEVICE_CAPABILITY_TABLE,pbPara.maxRecordNum,pbPara.usedRecordNum);return
  atPb_ExecDbSql(sql,NULL,NULL);}T_zPb_DbResult atPb_DbGetIndexByGroupCb(VOID*
 fvarg,int line,char**zresult,char**lname){T_zPb_ApIndex*pbIndex=NULL;int i=
-(0x16b6+2017-0x1e97);if((0x146+4296-0x120d)>line){return ZPB_DB_ERROR;}pbIndex=(
+(0x736+5237-0x1bab);if((0xcac+5641-0x22b4)>line){return ZPB_DB_ERROR;}pbIndex=(
 T_zPb_ApIndex*)fvarg;i=pbIndex->count;slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x44\x62\x47\x65\x74\x49\x6e\x64\x65\x78\x42\x79\x47\x72\x6f\x75\x70\x43\x62\x20\x65\x6e\x74\x65\x72\x2c\x69\x3d\x25\x64" "\n"
-,i);pbIndex->apIndex[i+(0x19ed+2439-0x2373)]=atoi(zresult[(0x7c8+3305-0x14b1)]);
+,i);pbIndex->apIndex[i+(0x226d+230-0x2352)]=atoi(zresult[(0x1490+2841-0x1fa9)]);
 slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x67\x65\x74\x5f\x69\x6e\x64\x65\x78\x5f\x62\x79\x5f\x67\x72\x6f\x75\x70\x5f\x63\x62\x3a\x70\x62\x6d\x5f\x69\x6e\x64\x65\x78\x3d\x25\x64"
-,pbIndex->apIndex[i+(0x185a+3420-0x25b5)]);pbIndex->count=i+(0x17aa+1527-0x1da0)
-;slog(PB_PRINT,SLOG_DEBUG,
+,pbIndex->apIndex[i+(0x1118+368-0x1287)]);pbIndex->count=i+(0xa2f+1598-0x106c);
+slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x67\x65\x74\x5f\x69\x6e\x64\x65\x78\x5f\x62\x79\x5f\x67\x72\x6f\x75\x70\x5f\x63\x62\x3a\x70\x62\x6d\x20\x63\x6f\x75\x6e\x74\x20\x69\x73\x20\x25\x64"
 ,pbIndex->count);return ZPB_DB_OK;}T_zPb_DbResult atPb_DelRecFromPbmTableByGroup
 (T_zPb_ApIndex*index){T_zPb_DbResult result=ZPB_DB_OK;CHAR sql[ZPB_MAX_BYTES_DB]
-={(0x4fb+326-0x641)};SINT32 countByGroup=(0x1748+2440-0x20d0);CHAR pbGroup[
-ZPB_PARAM_SIZE20]={(0x414+8778-0x265e)};sc_cfg_get(ZPB_NV_GROUP,pbGroup,sizeof(
-pbGroup));snprintf(sql,sizeof(sql)-(0x1210+2872-0x1d47),
+={(0x1144+3752-0x1fec)};SINT32 countByGroup=(0x1a22+2768-0x24f2);CHAR pbGroup[
+ZPB_PARAM_SIZE20]={(0xca4+6062-0x2452)};sc_cfg_get(ZPB_NV_GROUP,pbGroup,sizeof(
+pbGroup));snprintf(sql,sizeof(sql)-(0x19ac+492-0x1b97),
 "\x73\x65\x6c\x65\x63\x74\x20\x63\x6f\x75\x6e\x74\x28\x2a\x29\x20\x66\x72\x6f\x6d\x20\x25\x73\x20\x77\x68\x65\x72\x65\x20\x4c\x6f\x63\x61\x74\x69\x6f\x6e\x3d\x25\x64\x20\x61\x6e\x64\x20\x28\x50\x62\x6d\x5f\x67\x72\x6f\x75\x70\x3d" "\"" "\x25\x73" "\"" "\x29"
 ,ZPB_DB_PBM_TABLE,ZPB_LOCATION_AP,pbGroup);(VOID)atPb_ExecDbSql(sql,
-atPb_DbCountTableLineCb,&countByGroup);memset(sql,(0xfdf+1078-0x1415),sizeof(sql
-));snprintf(sql,sizeof(sql)-(0x540+380-0x6bb),
+atPb_DbCountTableLineCb,&countByGroup);memset(sql,(0x106f+1802-0x1779),sizeof(
+sql));snprintf(sql,sizeof(sql)-(0x9f2+899-0xd74),
 "\x73\x65\x6c\x65\x63\x74\x20\x50\x62\x6d\x5f\x69\x6e\x64\x65\x78\x20\x66\x72\x6f\x6d\x20\x25\x73\x20\x77\x68\x65\x72\x65\x20\x4c\x6f\x63\x61\x74\x69\x6f\x6e\x3d\x25\x64\x20\x61\x6e\x64\x20\x28\x50\x62\x6d\x5f\x67\x72\x6f\x75\x70\x3d" "\"" "\x25\x73" "\"" "\x29"
 ,ZPB_DB_PBM_TABLE,ZPB_LOCATION_AP,pbGroup);result=atPb_ExecDbSql(sql,
 atPb_DbGetIndexByGroupCb,index);if(countByGroup==index->count){memset(sql,
-(0xc08+6189-0x2435),sizeof(sql));snprintf(sql,sizeof(sql)-(0xa70+648-0xcf7),
+(0x8ef+4796-0x1bab),sizeof(sql));snprintf(sql,sizeof(sql)-(0x107d+1155-0x14ff),
 "\x64\x65\x6c\x65\x74\x65\x20\x66\x72\x6f\x6d\x20\x25\x73\x20\x77\x68\x65\x72\x65\x20\x4c\x6f\x63\x61\x74\x69\x6f\x6e\x3d\x25\x64\x20\x61\x6e\x64\x20\x28\x50\x62\x6d\x5f\x67\x72\x6f\x75\x70\x3d" "\"" "\x25\x73" "\"" "\x29"
 ,ZPB_DB_PBM_TABLE,ZPB_LOCATION_AP,pbGroup);if(ZPB_DB_OK==atPb_ExecDbSql(sql,NULL
 ,NULL)){(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_OPERATE_SUC);}slog(PB_PRINT,
@@ -283,7 +283,7 @@
 "\x70\x62\x3a\x70\x62\x6d\x3a\x65\x78\x65\x63\x20\x74\x61\x62\x6c\x65\x20\x25\x73\x20\x72\x65\x73\x75\x6c\x74\x20\x25\x64" "\n"
 ,ZPB_DB_PBM_TABLE,result);}else{return ZPB_DB_ERROR;}(VOID)sc_cfg_set(
 ZPB_NV_GROUP,"");return result;}VOID atPb_GetLocationIndexForDel(T_zPb_DelInfo*
-recData,SINT32 delTime){T_zPb_Header pbHeader={(0x1812+2053-0x2017)};if(NULL==
+recData,SINT32 delTime){T_zPb_Header pbHeader={(0x554+2866-0x1086)};if(NULL==
 recData){slog(PB_PRINT,SLOG_ERR,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x47\x65\x74\x4c\x6f\x63\x61\x74\x69\x6f\x6e\x49\x6e\x64\x65\x78\x46\x6f\x72\x44\x65\x6c\x2d\x2d\x69\x6e\x76\x61\x6c\x69\x64\x20\x69\x6e\x70\x75\x74" "\n"
 );return;}pbHeader.pbId=recData->delId[delTime];if(ZPB_DB_OK!=
@@ -294,30 +294,30 @@
 "\x70\x62\x3a\x70\x62\x6d\x3a\x64\x65\x6c\x20\x69\x6e\x64\x65\x78\x3d\x25\x64\x2c\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x3d\x25\x64\x2c\x64\x65\x6c\x5f\x70\x62\x6d\x5f\x74\x69\x6d\x65\x3d\x25\x64"
 ,recData->delIndex[delTime],recData->delLocation,delTime);}T_zPb_DbResult 
 atPb_DelARecFromPbmTable(T_zPb_DelInfo*pbPara,SINT32 delTime){T_zPb_DbResult 
-result=ZPB_DB_OK;CHAR sql[ZPB_MAX_BYTES_DB]={(0x1c1+7606-0x1f77)};if(NULL==
+result=ZPB_DB_OK;CHAR sql[ZPB_MAX_BYTES_DB]={(0x24f0+296-0x2618)};if(NULL==
 pbPara){slog(PB_PRINT,SLOG_ERR,
 "\x70\x62\x3a\x70\x62\x6d\x3a\x69\x6e\x76\x61\x6c\x69\x64\x20\x69\x6e\x70\x75\x74"
 );return ZPB_DB_ERROR_INVALIDPTR;}atPb_GetLocationIndexForDel(pbPara,delTime);
 slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x44\x65\x6c\x41\x52\x65\x63\x46\x72\x6f\x6d\x50\x62\x6d\x54\x61\x62\x6c\x65\x20\x65\x6e\x74\x65\x72\x2c\x64\x65\x6c\x54\x69\x6d\x65\x3d\x25\x64\x2c\x69\x64\x3d\x25\x64" "\n"
-,delTime,pbPara->delId[delTime]);snprintf(sql,sizeof(sql)-(0x8a7+4250-0x1940),
+,delTime,pbPara->delId[delTime]);snprintf(sql,sizeof(sql)-(0xe25+5486-0x2392),
 "\x64\x65\x6c\x65\x74\x65\x20\x66\x72\x6f\x6d\x20\x25\x73\x20\x77\x68\x65\x72\x65\x20\x69\x64\x3d\x25\x64"
 ,ZPB_DB_PBM_TABLE,pbPara->delId[delTime]);result=atPb_ExecDbSql(sql,NULL,NULL);
 if(ZPB_DB_OK==result){if(ZPB_LOCATION_AP==pbPara->delLocation){g_zPb_ApIndex[(
 pbPara->delIndex[delTime])]=PBM_ERROR_NOT_FOUND;}else if(ZPB_LOCATION_USIM==
 pbPara->delLocation){g_zPb_SimIndex[(pbPara->delIndex[delTime])]=
 PBM_ERROR_NOT_FOUND;}}return result;}VOID atPb_ClearSimPbmIndexArray(VOID){
-SINT32 i=(0xf75+4562-0x2146);for(i=(0x3f5+6315-0x1c9f);(i<=g_zPb_SimIndex[
-(0x6f1+6158-0x1eff)])&&(i<(ZPB_SIM_MAX_RECORD+(0x495+6172-0x1cb0)));i++){
+SINT32 i=(0x2102+1131-0x256c);for(i=(0x176b+3593-0x2573);(i<=g_zPb_SimIndex[
+(0xb33+4281-0x1bec)])&&(i<(ZPB_SIM_MAX_RECORD+(0x1cd+3374-0xefa)));i++){
 g_zPb_SimIndex[i]=PBM_ERROR_NOT_FOUND;}}VOID atPb_ClearApPbmIndexArray(VOID){
-SINT32 i=(0x42d+3849-0x1335);for(i=(0x899+148-0x92c);(i<=g_zPb_ApIndex[
-(0xd02+2983-0x18a9)])&&(i<(ZPB_AP_MAX_RECORD+(0x133+2506-0xafc)));i++){
+SINT32 i=(0x1253+3993-0x21eb);for(i=(0x2228+944-0x25d7);(i<=g_zPb_ApIndex[
+(0xf3a+966-0x1300)])&&(i<(ZPB_AP_MAX_RECORD+(0x164+4881-0x1474)));i++){
 g_zPb_ApIndex[i]=PBM_ERROR_NOT_FOUND;}}T_zPb_DbResult 
 atPb_DelAllRecsFromPbmTable(T_zPb_DelInfo*pbPara){T_zPb_DbResult result=
-ZPB_DB_OK;CHAR sql[ZPB_MAX_BYTES_DB]={(0x3e6+7705-0x21ff)};if(NULL==pbPara){slog
-(PB_PRINT,SLOG_ERR,
+ZPB_DB_OK;CHAR sql[ZPB_MAX_BYTES_DB]={(0x1616+3044-0x21fa)};if(NULL==pbPara){
+slog(PB_PRINT,SLOG_ERR,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x44\x65\x6c\x41\x6c\x6c\x52\x65\x63\x73\x46\x72\x6f\x6d\x50\x62\x6d\x54\x61\x62\x6c\x65\x3a\x69\x6e\x76\x61\x6c\x69\x64\x20\x69\x6e\x70\x75\x74" "\n"
-);return ZPB_DB_ERROR_INVALIDPTR;}snprintf(sql,sizeof(sql)-(0x18e9+3216-0x2578),
+);return ZPB_DB_ERROR_INVALIDPTR;}snprintf(sql,sizeof(sql)-(0x24b4+435-0x2666),
 "\x64\x65\x6c\x65\x74\x65\x20\x66\x72\x6f\x6d\x20\x25\x73\x20\x77\x68\x65\x72\x65\x20\x4c\x6f\x63\x61\x74\x69\x6f\x6e\x3d\x25\x64"
 ,ZPB_DB_PBM_TABLE,pbPara->delLocation);result=atPb_ExecDbSql(sql,NULL,NULL);slog
 (PB_PRINT,SLOG_DEBUG,
diff --git a/ap/app/zte_comm/phonebook/src/pb_main.c b/ap/app/zte_comm/phonebook/src/pb_main.c
index b970a36..6fe67ee 100755
--- a/ap/app/zte_comm/phonebook/src/pb_main.c
+++ b/ap/app/zte_comm/phonebook/src/pb_main.c
@@ -7,9 +7,9 @@
 VOID(*func_ptr)(UINT8*pDatabuf);BOOL need_block;}T_zPbHandleTable;VOID 
 atWeb_AddOneContact(UINT8*pDatabuf);VOID atWeb_DelOneContact(UINT8*pDatabuf);
 VOID atWeb_DelMultiContact(UINT8*pDatabuf);VOID atWeb_DelAllContact(UINT8*
-pDatabuf);T_zPb_optRsp g_PbOptRsp={(0xa3b+4621-0x1c48)};sem_t g_Pb_sem_id={
-(0x1a53+2034-0x2245)};int g_zPb_MsqId=-(0x527+4220-0x15a2);int g_zPb_LocalMsqId=
--(0x2b4+163-0x356);VOID atWeb_AddOneContact(UINT8*pDatabuf){T_zPb_WebContact*
+pDatabuf);T_zPb_optRsp g_PbOptRsp={(0x1564+460-0x1730)};sem_t g_Pb_sem_id={
+(0x174d+3937-0x26ae)};int g_zPb_MsqId=-(0x197+3498-0xf40);int g_zPb_LocalMsqId=-
+(0x1459+3542-0x222e);VOID atWeb_AddOneContact(UINT8*pDatabuf){T_zPb_WebContact*
 webPbContact=NULL;if(pDatabuf==NULL){printf(
 "\x5b\x70\x62\x5d\x2c\x20\x61\x74\x57\x65\x62\x5f\x41\x64\x64\x4f\x6e\x65\x43\x6f\x6e\x74\x61\x63\x74\x20\x70\x61\x72\x61\x20\x69\x73\x20\x6e\x75\x6c\x6c" "\n"
 );return;}webPbContact=(T_zPb_WebContact*)pDatabuf;atWeb_AddOnePb(webPbContact,
@@ -35,22 +35,21 @@
 zPb_RecvZpbicInd(UINT8*pDatabuf){T_zAt_ZpbicRes*ptPara=ZUFI_NULL;if(pDatabuf==
 NULL){return;}ptPara=(T_zAt_ZpbicRes*)(pDatabuf);printf(
 "\x7a\x50\x62\x5f\x52\x65\x63\x76\x5a\x70\x62\x69\x63\x49\x6e\x64\x20\x70\x61\x72\x61\x2c\x72\x65\x73\x75\x6c\x74\x3a\x25\x64\x2c\x20\x74\x79\x70\x65\x3a\x25\x64" "\n"
-,ptPara->result,ptPara->opertype);if(((0xc9f+5171-0x20d1)==ptPara->result)&&(
-(0x55b+930-0x8fc)==ptPara->opertype)){CHAR needPb[(0x135f+300-0x1459)]={
-(0x12f9+5110-0x26ef)};sc_cfg_get(NV_NEED_SUPPORT_PB,needPb,sizeof(needPb));if(
-(0xdaf+4637-0x1fcc)!=strcmp(needPb,"\x6e\x6f")){ipc_send_message(MODULE_ID_PB,
-MODULE_ID_AT_CTL,MSG_CMD_PBINIT_REQ,(0x139d+2339-0x1cc0),NULL,
-(0x16b6+3354-0x23d0));}}}VOID zPb_RecvZuslotInd(UINT8*pDatabuf){T_zAt_ZuslotRes*
-ptPara=ZUFI_NULL;if(pDatabuf==NULL){return;}ptPara=(T_zAt_ZuslotRes*)(pDatabuf);
-printf(
+,ptPara->result,ptPara->opertype);if(((0x171b+1788-0x1e16)==ptPara->result)&&(
+(0x1763+3708-0x25de)==ptPara->opertype)){CHAR needPb[(0xe9a+733-0x1145)]={
+(0x2293+568-0x24cb)};sc_cfg_get(NV_NEED_SUPPORT_PB,needPb,sizeof(needPb));if(
+(0x199b+2551-0x2392)!=strcmp(needPb,"\x6e\x6f")){ipc_send_message(MODULE_ID_PB,
+MODULE_ID_AT_CTL,MSG_CMD_PBINIT_REQ,(0x3e7+383-0x566),NULL,(0xce2+4158-0x1d20));
+}}}VOID zPb_RecvZuslotInd(UINT8*pDatabuf){T_zAt_ZuslotRes*ptPara=ZUFI_NULL;if(
+pDatabuf==NULL){return;}ptPara=(T_zAt_ZuslotRes*)(pDatabuf);printf(
 "\x7a\x50\x62\x5f\x52\x65\x63\x76\x5a\x70\x62\x69\x63\x49\x6e\x64\x20\x70\x61\x72\x61\x2c\x72\x65\x73\x75\x6c\x74\x3a\x25\x64\x2c\x20\x74\x79\x70\x65\x3a\x25\x64" "\n"
-,ptPara->slot,ptPara->slot_state);if(ptPara->slot_state==(0x176d+1630-0x1dcb)){
-CHAR needPb[(0xc6d+3116-0x1867)]={(0xcf8+6016-0x2478)};sc_cfg_get(
-NV_NEED_SUPPORT_PB,needPb,sizeof(needPb));if((0x1952+2729-0x23fb)!=strcmp(needPb
+,ptPara->slot,ptPara->slot_state);if(ptPara->slot_state==(0x19eb+1936-0x217b)){
+CHAR needPb[(0x84f+6067-0x1fd0)]={(0x14c4+1966-0x1c72)};sc_cfg_get(
+NV_NEED_SUPPORT_PB,needPb,sizeof(needPb));if((0x1660+2323-0x1f73)!=strcmp(needPb
 ,"\x6e\x6f")){atPb_CfgPbNvInit();atPb_DelAllRecsSimDb();}}}VOID 
-zPb_RecvPbInitRst(UINT8*pDatabuf){int pbReadRet=-(0xc62+2602-0x168b);memcpy(&
+zPb_RecvPbInitRst(UINT8*pDatabuf){int pbReadRet=-(0x1ee0+1332-0x2413);memcpy(&
 g_PbOptRsp,pDatabuf,sizeof(T_zPb_optRsp));if(g_PbOptRsp.result==-
-(0x30d+89-0x365)){atPb_IintPbErr(NULL);return;}pbReadRet=
+(0xb60+2845-0x167c)){atPb_IintPbErr(NULL);return;}pbReadRet=
 atPb_SendScpbrSet_repeat(g_Pb_sem_id);printf(
 "\x7a\x50\x62\x5f\x52\x65\x63\x76\x50\x62\x49\x6e\x69\x74\x52\x73\x74\x20\x72\x65\x73\x75\x6c\x74\x3a\x25\x64" "\n"
 ,pbReadRet);sc_cfg_set(ZPB_NV_INIT,ZPB_OPERATE_SUC);}void zPbLocalHandleWebMsg(
@@ -66,18 +65,17 @@
 ,ptMsgBuf->usMsgCmd);switch(ptMsgBuf->usMsgCmd){case MSG_CMD_WRITE_PB:case 
 MSG_CMD_DEL_A_PB:case MSG_CMD_DEL_MUTI_PB:case MSG_CMD_DEL_ALL_PB:
 ipc_send_message(MODULE_ID_PB,MODULE_ID_PB_LOCAL,ptMsgBuf->usMsgCmd,ptMsgBuf->
-usDataLen,(unsigned char*)ptMsgBuf->aucDataBuf,(0x762+7976-0x268a));break;
+usDataLen,(unsigned char*)ptMsgBuf->aucDataBuf,(0x1227+4894-0x2545));break;
 default:break;}}UINT8 zPbMsgCreat(VOID){g_zPb_MsqId=msgget(MODULE_ID_PB,
-IPC_CREAT|(0xbb2+2779-0x150d));if(g_zPb_MsqId==-(0x1ac7+2195-0x2359)){return 
+IPC_CREAT|(0x830+682-0x95a));if(g_zPb_MsqId==-(0xde9+5837-0x24b5)){return 
 ZUFI_FAIL;}g_zPb_LocalMsqId=msgget(MODULE_ID_PB_LOCAL,IPC_CREAT|
-(0xbbf+2763-0x150a));if(g_zPb_LocalMsqId==-(0x39d+3310-0x108a)){return ZUFI_FAIL
-;}sem_init(&g_Pb_sem_id,(0xb8c+2286-0x147a),(0x1158+3918-0x20a6));return 
-ZUFI_SUCC;}void detect_modem_state(void){CHAR state[(0x1072+135-0x10c7)]={
-(0xb2a+4293-0x1bef)};sc_cfg_get(
-"\x6d\x6f\x64\x65\x6d\x5f\x6d\x61\x69\x6e\x5f\x73\x74\x61\x74\x65",state,sizeof(
-state));if((0x678+7526-0x23de)==strcmp(state,
+(0x5d3+1259-0x93e));if(g_zPb_LocalMsqId==-(0x434+3029-0x1008)){return ZUFI_FAIL;
+}sem_init(&g_Pb_sem_id,(0xd07+716-0xfd3),(0x617+4986-0x1991));return ZUFI_SUCC;}
+void detect_modem_state(void){CHAR state[(0xe98+4947-0x21b9)]={(0x359+470-0x52f)
+};sc_cfg_get("\x6d\x6f\x64\x65\x6d\x5f\x6d\x61\x69\x6e\x5f\x73\x74\x61\x74\x65",
+state,sizeof(state));if((0x3f5+3145-0x103e)==strcmp(state,
 "\x6d\x6f\x64\x65\x6d\x5f\x73\x69\x6d\x5f\x75\x6e\x64\x65\x74\x65\x63\x74\x65\x64"
-)||(0xec5+4606-0x20c3)==strcmp(state,
+)||(0x1066+4166-0x20ac)==strcmp(state,
 "\x6d\x6f\x64\x65\x6d\x5f\x73\x69\x6d\x5f\x64\x65\x73\x74\x72\x6f\x79")){
 sc_cfg_set("\x70\x62\x6d\x5f\x69\x6e\x69\x74\x5f\x66\x6c\x61\x67","\x30");}}void
  zPbLocalHandleAtctlMsg(MSG_BUF*ptMsgBuf){assert(ptMsgBuf!=NULL);printf(
@@ -96,28 +94,28 @@
 MSG_CMD_ZUSLOT_IND:zPb_RecvZuslotInd(ptMsgBuf->aucDataBuf);break;case 
 MSG_CMD_PBINIT_RSP:ipc_send_message(MODULE_ID_PB,MODULE_ID_PB_LOCAL,ptMsgBuf->
 usMsgCmd,ptMsgBuf->usDataLen,(unsigned char*)ptMsgBuf->aucDataBuf,
-(0x1298+313-0x13d1));break;default:break;}}VOID zPbHandleResetToFactory(){CHAR 
-clearPb[(0x2e5+3873-0x11d4)]={(0x18ac+2638-0x22fa)};sc_cfg_get(
+(0x157b+138-0x1605));break;default:break;}}VOID zPbHandleResetToFactory(){CHAR 
+clearPb[(0x991+4308-0x1a33)]={(0x6b+382-0x1e9)};sc_cfg_get(
 NV_CLEAR_PB_WHEN_RESTORE,clearPb,sizeof(clearPb));printf(
 "\x61\x74\x57\x65\x62\x5f\x52\x65\x73\x74\x6f\x72\x65\x46\x61\x63\x74\x6f\x72\x79\x53\x65\x74\x74\x69\x6e\x67\x20\x65\x6e\x74\x65\x72\x65\x64\x21\x20" "\n"
 );printf(
 "\x63\x6c\x65\x61\x72\x5f\x70\x62\x5f\x77\x68\x65\x6e\x5f\x72\x65\x73\x74\x6f\x72\x65\x3d\x25\x73\x20" "\n"
-,clearPb);if(strcmp(clearPb,"\x79\x65\x73")==(0xdc9+3111-0x19f0)){atPb_DropDb();
-}ipc_send_message(MODULE_ID_PB,MODULE_ID_MAIN_CTRL,MSG_CMD_RESET_RSP,
-(0x146f+3884-0x239b),NULL,(0x2105+140-0x2191));}void zPbHandleMainCtrlMsg(
-MSG_BUF*ptMsgBuf){assert(ptMsgBuf!=NULL);printf(
+,clearPb);if(strcmp(clearPb,"\x79\x65\x73")==(0x17b8+2415-0x2127)){atPb_DropDb()
+;}ipc_send_message(MODULE_ID_PB,MODULE_ID_MAIN_CTRL,MSG_CMD_RESET_RSP,
+(0x11c4+4120-0x21dc),NULL,(0x3a3+2933-0xf18));}void zPbHandleMainCtrlMsg(MSG_BUF
+*ptMsgBuf){assert(ptMsgBuf!=NULL);printf(
 "\x50\x62\x20\x72\x65\x63\x76\x20\x6d\x61\x69\x6e\x20\x63\x74\x72\x6c\x20\x6d\x73\x67\x20\x63\x6d\x64\x3a\x25\x64" "\n"
 ,ptMsgBuf->usMsgCmd);switch(ptMsgBuf->usMsgCmd){case MSG_CMD_RESET_NOTIFY:
 zPbHandleResetToFactory(ptMsgBuf->aucDataBuf);break;default:break;}}void 
-pb_msg_thread_proc(void*arg){int iRet=(0x11d0+3479-0x1f67);MSG_BUF stMsg={
-(0x5f4+1689-0xc8d)};int msgSize=sizeof(MSG_BUF)-sizeof(SINT32);int queueId=*((
+pb_msg_thread_proc(void*arg){int iRet=(0x9d1+7427-0x26d4);MSG_BUF stMsg={
+(0x1420+1409-0x19a1)};int msgSize=sizeof(MSG_BUF)-sizeof(SINT32);int queueId=*((
 int*)arg);prctl(PR_SET_NAME,"\x70\x62\x5f\x6c\x6f\x63\x61\x6c",
-(0x974+1531-0xf6f),(0xd5c+3594-0x1b66),(0x888+6522-0x2202));while(
-(0x66+2978-0xc07)){iRet=(0x9a0+5963-0x20eb);memset(&stMsg,(0xe6+8143-0x20b5),
-sizeof(MSG_BUF));iRet=msgrcv(queueId,&stMsg,msgSize,(0x19d7+1789-0x20d4),
-(0x911+3997-0x18ae));printf(
+(0x9fd+7046-0x2583),(0x93f+413-0xadc),(0x3e6+6690-0x1e08));while(
+(0x1ff5+223-0x20d3)){iRet=(0x1334+2898-0x1e86);memset(&stMsg,(0x3dd+5359-0x18cc)
+,sizeof(MSG_BUF));iRet=msgrcv(queueId,&stMsg,msgSize,(0x18b6+1055-0x1cd5),
+(0x305+4752-0x1595));printf(
 "\x70\x62\x5f\x6d\x73\x67\x5f\x74\x68\x72\x65\x61\x64\x5f\x70\x72\x6f\x63\x3a\x25\x78\x2c\x25\x78\x20\x4d\x4f\x44\x55\x4c\x45\x5f\x49\x44\x5f\x41\x54\x5f\x43\x54\x4c\x3d\x25\x78" "\n"
-,stMsg.src_id,stMsg.usMsgCmd,MODULE_ID_AT_CTL);if(iRet>=(0x322+9048-0x267a)){
+,stMsg.src_id,stMsg.usMsgCmd,MODULE_ID_AT_CTL);if(iRet>=(0x1739+4047-0x2708)){
 switch(stMsg.src_id){case MODULE_ID_WEB_CGI:{zPbHandleWebMsg(&stMsg);break;}case
  MODULE_ID_AT_CTL:{zPbHandleAtctlMsg(&stMsg);break;}case MODULE_ID_PB:{
 zPbLocalHandleWebMsg(&stMsg);zPbLocalHandleAtctlMsg(&stMsg);break;}case 
@@ -125,29 +123,29 @@
 printf(
 "\x5b\x70\x62\x5d\x20\x65\x72\x72\x6e\x6f\x20\x3d\x20\x25\x64\x2c\x20\x65\x72\x72\x6d\x73\x67\x20\x3d\x20\x25\x73" "\n"
 ,errno,strerror(errno));}}}int phonebook_main(int argc,char*argv[]){pthread_t 
-recv_thread_tid=(0x16b7+2973-0x2254);MSG_BUF msgBuf={(0x1463+3871-0x2382)};CHAR 
-needPb[(0x438+1752-0xade)]={(0x95b+4829-0x1c38)};prctl(PR_SET_NAME,
-"\x70\x62\x5f\x6d\x61\x69\x6e",(0xb9f+2765-0x166c),(0x519+5578-0x1ae3),
-(0x90a+4470-0x1a80));loglevel_init();sc_cfg_get(NV_NEED_SUPPORT_PB,needPb,sizeof
-(needPb));if((0xfcd+2432-0x194d)!=strcmp(needPb,"\x6e\x6f")){
+recv_thread_tid=(0x502+2820-0x1006);MSG_BUF msgBuf={(0x19ba+2607-0x23e9)};CHAR 
+needPb[(0x1f66+869-0x2299)]={(0x10d8+4139-0x2103)};prctl(PR_SET_NAME,
+"\x70\x62\x5f\x6d\x61\x69\x6e",(0x983+2731-0x142e),(0x1bd0+822-0x1f06),
+(0x1d30+466-0x1f02));loglevel_init();sc_cfg_get(NV_NEED_SUPPORT_PB,needPb,sizeof
+(needPb));if((0xd77+1866-0x14c1)!=strcmp(needPb,"\x6e\x6f")){
 #ifdef WEBS_SECURITY

-if(access(ZPB_DB_PATH,F_OK)!=(0x1e79+1951-0x2618)){if(access(ZPB_TMP_PATH,F_OK)
-==(0x1460+4437-0x25b5)){if(remove(ZPB_SEC_PATH)!=(0xaf7+1735-0x11be)){slog(
-PB_PRINT,SLOG_ERR,
+if(access(ZPB_DB_PATH,F_OK)!=(0x969+3207-0x15f0)){if(access(ZPB_TMP_PATH,F_OK)==
+(0xd0d+2542-0x16fb)){if(remove(ZPB_SEC_PATH)!=(0x75a+5680-0x1d8a)){slog(PB_PRINT
+,SLOG_ERR,
 "\x72\x65\x6d\x6f\x76\x65\x20\x5a\x50\x42\x5f\x53\x45\x43\x5f\x50\x41\x54\x48\x20\x66\x61\x69\x6c"
-);}if(rename(ZPB_TMP_PATH,ZPB_SEC_PATH)!=(0xa81+2339-0x13a4)){slog(PB_PRINT,
+);}if(rename(ZPB_TMP_PATH,ZPB_SEC_PATH)!=(0x10bd+4943-0x240c)){slog(PB_PRINT,
 SLOG_ERR,
 "\x72\x65\x6e\x61\x6d\x65\x20\x5a\x50\x42\x5f\x54\x4d\x50\x5f\x50\x41\x54\x48\x20\x66\x61\x69\x6c"
-);}}if(access(ZPB_SEC_PATH,F_OK)==(0xb1f+3347-0x1832)){char rnum_buf[
-(0x2363+489-0x2534)]={(0xf73+5353-0x245c)};char cmd[(0x17c8+3190-0x23be)]={
-(0x175c+709-0x1a21)};sc_cfg_get("\x72\x6e\x75\x6d\x5f\x61\x74",rnum_buf,sizeof(
+);}}if(access(ZPB_SEC_PATH,F_OK)==(0x1b2d+2435-0x24b0)){char rnum_buf[
+(0x14a3+4562-0x265d)]={(0xdbd+245-0xeb2)};char cmd[(0x2106+5-0x208b)]={
+(0x747+669-0x9e4)};sc_cfg_get("\x72\x6e\x75\x6d\x5f\x61\x74",rnum_buf,sizeof(
 rnum_buf));snprintf(cmd,sizeof(cmd),
 "\x2f\x62\x69\x6e\x2f\x6f\x70\x65\x6e\x73\x73\x6c\x20\x65\x6e\x63\x20\x2d\x64\x20\x2d\x61\x65\x73\x32\x35\x36\x20\x2d\x73\x61\x6c\x74\x20\x2d\x69\x6e\x20\x25\x73\x20\x2d\x6f\x75\x74\x20\x25\x73\x20\x2d\x70\x61\x73\x73\x20\x70\x61\x73\x73\x3a\x25\x73"
 ,ZPB_SEC_PATH,ZPB_DB_PATH,rnum_buf);zxic_system(cmd);}}
 #endif		

-zPbMsgCreat();atPb_Init();}else{return-(0x433+4871-0x1739);}printf(
+zPbMsgCreat();atPb_Init();}else{return-(0xc01+1703-0x12a7);}printf(
 "\x50\x62\x20\x61\x70\x70\x20\x69\x6e\x69\x74\x20\x66\x69\x6e\x69\x73\x68\x65\x64\x2c\x20\x77\x69\x6c\x6c\x20\x74\x6f\x20\x72\x65\x63\x65\x69\x76\x65\x20\x6d\x73\x67\x2c\x20\x6d\x73\x67\x69\x64\x3a\x25\x64" "\n"
 ,g_zPb_MsqId);if(pthread_create(&recv_thread_tid,NULL,pb_msg_thread_proc,(void*)
-(&g_zPb_LocalMsqId))==-(0xa90+2823-0x1596)){assert((0x359+8030-0x22b7));}
-detect_modem_state();pb_msg_thread_proc(&g_zPb_MsqId);return(0x13b8+3333-0x20bd)
+(&g_zPb_LocalMsqId))==-(0x1e52+844-0x219d)){assert((0x197f+2023-0x2166));}
+detect_modem_state();pb_msg_thread_proc(&g_zPb_MsqId);return(0x1125+5261-0x25b2)
 ;}
diff --git a/ap/app/zte_comm/phonebook/src/pb_proc.c b/ap/app/zte_comm/phonebook/src/pb_proc.c
index 7b2942b..3e0d06d 100755
--- a/ap/app/zte_comm/phonebook/src/pb_proc.c
+++ b/ap/app/zte_comm/phonebook/src/pb_proc.c
@@ -3,185 +3,187 @@
 #include <semaphore.h>

 #include <limits.h>

 #include "pb_com.h"

-#define ZPB_UCS2                    (0x1556+615-0x17bc)

-#define ZPB_UCS2_PREFIX             (0x2196+769-0x2417)

-#define ZPB_UCS2_PREFIX_LEN         (0x61+564-0x293)

-#define ZPB_NON_GSM                     (0x18a9+2569-0x2292)

-#define ZPB_GSM_CHARACTER_SET_SIZE      (0x1b43+2252-0x238f)

-#define ZPB_INIT_LOAD_RECORD_NUM    (0x257+5593-0x17fe)

+#define ZPB_UCS2                    (0x4d9+208-0x5a8)

+#define ZPB_UCS2_PREFIX             (0x1c27+2704-0x2637)

+#define ZPB_UCS2_PREFIX_LEN         (0xd11+594-0xf61)

+#define ZPB_NON_GSM                     (0xf41+815-0x1250)

+#define ZPB_GSM_CHARACTER_SET_SIZE      (0x75b+5128-0x1ae3)

+#define ZPB_INIT_LOAD_RECORD_NUM    (0x10b+2557-0xad6)

 VOID atPb_CvtChCode(UINT16 basePointer,UINT8 srcData,UINT8*chMsb,UINT8*chLsb);
 BOOL atPb_CvtU82ToU80(const UINT8*srcData,UINT32 srcLen,UINT8*destData,UINT32 
 destLen);BOOL atPb_CvtU81ToU80(const UINT8*srcData,UINT32 srcLen,UINT8*destData,
 UINT32 destLen);extern VOID atPb_ClearSimPbmIndexArray(VOID);extern sem_t 
 g_Pb_sem_id;extern T_zPb_optRsp g_PbOptRsp;UINT32 g_zPb_DelIndex=
-(0x1313+1262-0x1801);SINT32 g_zPb_SimIndex[ZPB_SIM_MAX_RECORD+(0xaf2+735-0xdd0)]
-={(0x1bc4+1773-0x22b1)};SINT32 g_zPb_ApIndex[ZPB_AP_MAX_RECORD+
-(0x1989+3040-0x2568)]={(0x1248+2023-0x1a2f)};T_zPb_DelStatusMultiOrAll 
-g_zPb_DelStatusUsim={(0x13e6+2215-0x1c8d)};const unsigned char 
-G_ZPB_NEWUCS2TOGSM[ZPB_GSM_CHARACTER_SET_SIZE*(0x1307+3411-0x2058)]={ZPB_NON_GSM
-,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,
-ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,(0x44a+7764-0x2294),ZPB_NON_GSM,ZPB_NON_GSM,
-(0x3e9+4446-0x153a),ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,
+(0xe8b+4904-0x21b3);SINT32 g_zPb_SimIndex[ZPB_SIM_MAX_RECORD+
+(0x1808+3023-0x23d6)]={(0xae6+2771-0x15b9)};SINT32 g_zPb_ApIndex[
+ZPB_AP_MAX_RECORD+(0x5c1+2093-0xded)]={(0xaed+594-0xd3f)};
+T_zPb_DelStatusMultiOrAll g_zPb_DelStatusUsim={(0x232f+327-0x2476)};const 
+unsigned char G_ZPB_NEWUCS2TOGSM[ZPB_GSM_CHARACTER_SET_SIZE*(0x83c+2835-0x134d)]
+={ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,
+ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,(0x1f51+90-0x1fa1),ZPB_NON_GSM,
+ZPB_NON_GSM,(0xdcf+101-0xe27),ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,
 ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,
 ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,
-ZPB_NON_GSM,(0x5dc+2903-0x1113),(0x466+3624-0x126d),(0x23b5+111-0x2402),
-(0x3ec+8878-0x2677),(0xbfc+2168-0x1472),(0x240+8204-0x2227),(0xfd5+3270-0x1c75),
-(0x152+6454-0x1a61),(0x8a+1424-0x5f2),(0x16cc+2317-0x1fb0),(0x437+4334-0x14fb),
-(0x12f+1066-0x52e),(0x175+4871-0x1450),(0xfb1+1371-0x14df),(0x19b5+3306-0x2671),
-(0x2a8+9365-0x270e),(0x1d63+1638-0x2399),(0xb8a+3504-0x1909),(0x6ef+7415-0x23b4)
-,(0x6f6+6936-0x21db),(0x1ac7+2583-0x24aa),(0x602+2027-0xdb8),(0xd5c+2672-0x1796)
-,(0x128b+2122-0x1a9e),(0xf0+8300-0x2124),(0xe55+3108-0x1a40),(0x7e9+2446-0x113d)
-,(0x632+786-0x909),(0x188d+1899-0x1fbc),(0xd4c+3840-0x1c0f),(0x1eaa+49-0x1e9d),
-(0xa09+2272-0x12aa),(0x78+1521-0x669),(0x386+3562-0x112f),(0x9cd+5053-0x1d48),
-(0x17d6+1713-0x1e44),(0x1bc+3084-0xd84),(0x56a+3224-0x11bd),(0x785+3165-0x139c),
-(0xe3f+5968-0x2548),(0xcdf+5406-0x21b5),(0x402+1251-0x89c),(0xb0f+2505-0x148e),
-(0xe88+5186-0x227f),(0xf5b+6024-0x2697),(0x1393+3122-0x1f78),(0x23f+2104-0xa29),
-(0x11dc+1020-0x1589),(0x914+4912-0x1bf4),(0x1c2+239-0x260),(0x630+2826-0x10e8),
-(0xca6+5004-0x1fdf),(0x1893+1648-0x1eaf),(0x3ea+4529-0x1546),(0x8c+2463-0x9d5),
-(0xf9d+3079-0x1b4d),(0xf20+6078-0x2686),(0xaf8+6113-0x2280),(0xf9c+2508-0x190e),
-(0x4da+125-0x4fc),ZPB_NON_GSM,(0x1422+1341-0x1902),ZPB_NON_GSM,
-(0x24cc+476-0x2697),ZPB_NON_GSM,(0x1df2+1913-0x250a),(0x50f+7089-0x205e),
-(0x1d15+1043-0x20c5),(0x1721+3896-0x25f5),(0x582+2309-0xe22),(0x72c+21-0x6db),
-(0x7b4+2722-0x11ef),(0x2195+9-0x2136),(0x19d8+2672-0x23df),(0xc7d+4558-0x1de1),
-(0x9e7+5580-0x1f48),(0xba8+6892-0x2628),(0x894+6578-0x21d9),(0x150d+1775-0x1b8e)
-,(0xce4+3838-0x1b73),(0x130+4686-0x130e),(0xb74+6993-0x2654),
-(0x1c05+2695-0x261a),(0xb6+1285-0x548),(0x1579+168-0x15ad),(0x187+7158-0x1d08),
-(0x129+2434-0xa35),(0x1059+2061-0x17ef),(0xf8+830-0x3be),(0x613+5174-0x19d0),
-(0x73a+4636-0x18dc),ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,
+ZPB_NON_GSM,ZPB_NON_GSM,(0x1426+3015-0x1fcd),(0x4db+2508-0xe86),
+(0x839+3607-0x162e),(0x1347+1811-0x1a37),(0x11f3+5039-0x25a0),(0x458+2467-0xdd6)
+,(0xab7+7236-0x26d5),(0x3dd+4120-0x13ce),(0xf13+1795-0x15ee),
+(0x15b0+1602-0x1bc9),(0x1a6a+113-0x1ab1),(0x855+6245-0x208f),
+(0x1288+2440-0x1be4),(0x1f06+323-0x201c),(0x1739+629-0x1980),(0x5eb+5097-0x19a5)
+,(0x84a+6437-0x213f),(0xdbc+839-0x10d2),(0x217+7659-0x1fd0),(0x16d8+3842-0x25a7)
+,(0x15e8+1061-0x19d9),(0x76a+6187-0x1f60),(0x458+140-0x4ae),(0x21c1+891-0x2505),
+(0xa1d+2742-0x149b),(0x1365+730-0x1606),(0x234f+788-0x2629),(0x8f7+1030-0xcc2),
+(0xf88+3757-0x1df9),(0x22f+8988-0x250e),(0x4b8+1631-0xad9),(0x159+1094-0x560),
+(0x1426+3929-0x237f),(0x579+5990-0x1c9e),(0xc29+5556-0x219b),(0x21ec+213-0x227e)
+,(0xcf3+1396-0x1223),(0x9fc+3612-0x17d3),(0x158b+3351-0x225c),
+(0x57b+7247-0x2183),(0x618+7928-0x24c8),(0x1c58+7-0x1c16),(0x11b5+2157-0x19d8),
+(0x438+5909-0x1b02),(0x60f+1451-0xb6e),(0x4dc+2524-0xe6b),(0x96d+5862-0x2005),
+(0x217b+499-0x231f),(0xe3b+3906-0x1d2d),(0x551+2470-0xea6),(0x12e4+4276-0x2346),
+(0x238d+899-0x26bd),(0x725+7775-0x2530),(0x1afd+3056-0x2698),
+(0x10f4+1144-0x1516),(0x10b7+247-0x1157),(0xaff+3745-0x1948),
+(0x1a98+2525-0x241c),(0x857+4541-0x19ba),(0x2a8+4894-0x156b),ZPB_NON_GSM,
+(0x1e5+1470-0x746),ZPB_NON_GSM,(0x537+8236-0x2552),ZPB_NON_GSM,
+(0x667+8067-0x2589),(0x1737+1408-0x1c55),(0x73+5362-0x1502),(0x597+4393-0x165c),
+(0x42f+3587-0x11cd),(0x1e63+221-0x1eda),(0x142a+2646-0x1e19),(0x276+7699-0x2021)
+,(0x1385+3891-0x224f),(0x151d+2054-0x1cb9),(0xdf3+3844-0x1c8c),
+(0x125c+4130-0x2212),(0xfe2+2995-0x1b28),(0x481+8922-0x26ed),(0x528+626-0x72b),
+(0x1356+4706-0x2548),(0x367+8898-0x25b8),(0x172f+3904-0x25fd),
+(0x544+4206-0x153f),(0x13e0+4812-0x2638),(0x18a7+86-0x1888),(0xdf+4864-0x1369),
+(0xa20+7436-0x26b5),(0xc95+1767-0x1304),(0x178b+433-0x18c3),(0x2ef+3334-0xf7b),
 ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,
 ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,
 ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,
 ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,
 ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,
-ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,(0x1db5+1596-0x23b1),ZPB_NON_GSM,
-(0x16f3+1711-0x1da1),(0x770+1687-0xde3),(0x193b+183-0x19ef),ZPB_NON_GSM,
-(0x162f+159-0x166f),ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,
+ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,
+ZPB_NON_GSM,ZPB_NON_GSM,(0xb89+4453-0x1cae),ZPB_NON_GSM,(0x15d7+3484-0x2372),
+(0xf11+5796-0x2591),(0x23ef+622-0x265a),ZPB_NON_GSM,(0xdc6+294-0xe8d),
 ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,
 ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,
 ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,
-(0x1fb0+354-0x20b2),(0x150f+1799-0x1bd5),(0x709+5530-0x1c62),(0xf31+1176-0x1388)
-,(0x1b8c+2631-0x2592),(0x1a4b+1237-0x1ec5),(0x206c+60-0x209a),
-(0xd44+2347-0x1653),(0x4a+4309-0x1116),(0x119a+3151-0x1da4),(0xb39+734-0xdf8),
-(0xe44+1697-0x14a0),(0x542+2339-0xe20),(0xc1+2555-0xa73),(0x74+6406-0x1931),
-(0x9ad+2528-0x1344),(0x4c7+8432-0x256e),ZPB_NON_GSM,(0x82b+4086-0x17c4),
-(0x947+1404-0xe74),(0xf22+1550-0x14e1),(0x63b+1426-0xb7e),(0xd04+4140-0x1ce1),
-(0xdd6+5395-0x228d),ZPB_NON_GSM,(0x23c+5764-0x18b5),(0x3c4+8457-0x2478),
-(0x448+7335-0x209a),(0x2c6+7276-0x1edd),(0x259+5615-0x17ea),(0xdec+6212-0x25d7),
-ZPB_NON_GSM,(0x15f8+1105-0x1a2b),(0x6c6+36-0x66b),(0xb7a+6609-0x24ea),
-(0x722+1057-0xae2),(0xed+9671-0x2653),(0x1c00+664-0x1e1d),(0x10d3+2412-0x1a30),
-(0x958+2710-0x13d1),(0x1408+1393-0x1970),(0xf1d+4921-0x2252),(0x291+2198-0xb22),
-(0x1478+1386-0x197d),(0xe50+1097-0x1234),(0xf6a+1949-0x1700),(0x356+4227-0x1370)
-,(0xcba+3328-0x1951),(0x4b6+2164-0xcc1),ZPB_NON_GSM,(0x634+3304-0x129f),
-(0x3a4+9041-0x26ed),(0xa2c+2694-0x1443),(0x17aa+2569-0x2144),
-(0x17bf+3160-0x23a8),(0x1273+1026-0x15f9),ZPB_NON_GSM,(0x23ca+746-0x26a8),
-(0xcbc+502-0xeac),(0x185c+695-0x1a9e),(0x2f4+9262-0x26ad),(0x80+8902-0x22c8),
-(0x1d99+2185-0x25a9),ZPB_NON_GSM,(0x10c+3121-0xcc4)};VOID atPb_Init(VOID){UINT32
- pbCount=(0xd6+9507-0x25f9);g_zPb_SimIndex[(0x21c0+753-0x24b1)]=
-(0x495+7009-0x1ff6);sc_cfg_set(ZPB_NV_INIT,ZPB_LOADING);(VOID)sc_cfg_set(
-ZPB_NV_WRITE_FLAG,ZPB_OPERATE_SUC);for(pbCount=(0x1e7c+1690-0x2515);pbCount<=
-ZPB_SIM_MAX_RECORD;pbCount++){g_zPb_SimIndex[pbCount]=PBM_ERROR_NOT_FOUND;}if(
-ZPB_DB_OK!=atPb_CreatDb()){slog(PB_PRINT,SLOG_ERR,
-"pb:atPb_Init:create pbm table failed\n");return;}if(ZPB_DB_OK!=atPb_InitApIndex
-()){slog(PB_PRINT,SLOG_ERR,
+ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,ZPB_NON_GSM,(0xf2c+1294-0x13da),
+(0x560+1698-0xbc1),(0x5cc+1235-0xa5e),(0x2195+544-0x2374),(0x920+1745-0xfb0),
+(0x1dbd+1571-0x2385),(0x35b+4444-0x14a9),(0x8c4+7190-0x24be),
+(0x135c+1570-0x1975),(0x766+6544-0x20b1),(0x19d1+2614-0x23e8),
+(0x17e8+2132-0x1ff7),(0x108a+1646-0x16b3),(0x19e4+365-0x1b08),
+(0x193c+2173-0x2170),(0x9c0+546-0xb99),(0x898+1149-0xccc),ZPB_NON_GSM,
+(0x1a83+140-0x1ab2),(0xdbd+4824-0x2046),(0x99c+48-0x97d),(0x1c5a+457-0x1dd4),
+(0x4f5+8647-0x266d),(0xc8a+1495-0x1205),ZPB_NON_GSM,(0x152+2034-0x939),
+(0x1278+797-0x1540),(0xd91+5749-0x23b1),(0xacf+499-0xc6d),(0xa69+5753-0x2084),
+(0x724+5073-0x1a9c),ZPB_NON_GSM,(0x1131+4896-0x2433),(0x861+2657-0x1243),
+(0x15d9+2872-0x20b0),(0x14b6+1172-0x18e9),(0x486+3910-0x136b),
+(0x1407+1027-0x178f),(0x74c+3007-0x12fc),(0x1cc8+459-0x1e76),(0x20a4+999-0x2482)
+,(0x1e56+1645-0x24bf),(0x157f+1248-0x1a5a),(0x19d3+761-0x1c67),
+(0x1ca+3196-0xde1),(0x4fa+5054-0x18b1),(0x8f7+1126-0xcf4),(0x110+7034-0x1c21),
+(0x5aa+6587-0x1efc),ZPB_NON_GSM,(0x1128+1208-0x1563),(0x104+6902-0x1bf2),
+(0xa0+2205-0x8ce),(0x10c2+66-0x1095),(0xbfd+3057-0x177f),(0xf3b+5514-0x2449),
+ZPB_NON_GSM,(0x15e1+3566-0x23c3),(0x20d9+261-0x21d8),(0x13b8+1718-0x19f9),
+(0x950+3247-0x158a),(0x920+652-0xb2e),(0x1c7+6872-0x1c26),ZPB_NON_GSM,
+(0x1c7b+2671-0x2671)};VOID atPb_Init(VOID){UINT32 pbCount=(0xed8+1035-0x12e3);
+g_zPb_SimIndex[(0x16ca+4150-0x2700)]=(0x26c2+71-0x2709);sc_cfg_set(ZPB_NV_INIT,
+ZPB_LOADING);(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_OPERATE_SUC);for(pbCount=
+(0x9c9+4276-0x1a7c);pbCount<=ZPB_SIM_MAX_RECORD;pbCount++){g_zPb_SimIndex[
+pbCount]=PBM_ERROR_NOT_FOUND;}if(ZPB_DB_OK!=atPb_CreatDb()){slog(PB_PRINT,
+SLOG_ERR,"pb:atPb_Init:create pbm table failed\n");return;}if(ZPB_DB_OK!=
+atPb_InitApIndex()){slog(PB_PRINT,SLOG_ERR,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x49\x6e\x69\x74\x3a\x69\x6e\x69\x74\x20\x61\x70\x49\x6e\x64\x65\x78\x20\x66\x61\x69\x6c\x65\x64" "\n"
 );return;}(VOID)atPb_SetApCapacityTable();}VOID atPb_CfgPbNvInit(VOID){(VOID)
 sc_cfg_set(ZPB_NV_USIMINDEXMIN,"\x30");(VOID)sc_cfg_set(ZPB_NV_USIMINDEXMAX,
 "\x30");(VOID)sc_cfg_set(ZPB_NV_USIMMEMORYFULL,"\x6e\x6f");}int 
-atpb_CvtUcs2ToAlphaField(char*src,int srcLen,char*dest){int i=(0x176+3464-0xefe)
-;int min=32767;int max=(0x8e1+7265-0x2542);int temp=(0x9c6+1011-0xdb9);int 
-outOff=(0xe7+2541-0xad4);printf(
+atpb_CvtUcs2ToAlphaField(char*src,int srcLen,char*dest){int i=(0x5e8+2136-0xe40)
+;int min=32767;int max=(0x1a21+204-0x1aed);int temp=(0x1305+4781-0x25b2);int 
+outOff=(0x123c+678-0x14e2);printf(
 "\x5b\x50\x42\x5d\x20\x61\x74\x70\x62\x5f\x43\x76\x74\x55\x63\x73\x32\x54\x6f\x41\x6c\x70\x68\x61\x46\x69\x65\x6c\x64\x2c\x20\x73\x72\x63\x4c\x65\x6e\x3d\x25\x64" "\n"
-,srcLen);if(srcLen<=(0x16+3013-0xbdb)||src==NULL||dest==NULL){return-
-(0xb48+6371-0x242a);}if(srcLen<=(0x15f3+2721-0x2092)){dest[(0x5fd+8184-0x25f5)]=
-(0x2079+319-0x2138);memcpy(dest+(0x851+7263-0x24af),src,srcLen);printf(
+,srcLen);if(srcLen<=(0x216a+566-0x23a0)||src==NULL||dest==NULL){return-
+(0x2e2+6606-0x1caf);}if(srcLen<=(0xc71+2278-0x1555)){dest[(0x228+2680-0xca0)]=
+(0x1881+3371-0x252c);memcpy(dest+(0x57f+5337-0x1a57),src,srcLen);printf(
 "\x5b\x50\x42\x5d\x20\x61\x74\x70\x62\x5f\x43\x76\x74\x55\x63\x73\x32\x54\x6f\x41\x6c\x70\x68\x61\x46\x69\x65\x6c\x64\x2c\x20\x75\x73\x65\x20\x38\x30\x20\x63\x6f\x64\x65\x2c\x20\x6c\x65\x6e\x20\x3d\x25\x64" "\n"
-,srcLen+(0xf9+9719-0x26ef));return srcLen+(0x160c+3098-0x2225);}for(i=
-(0xb63+6977-0x26a4);i<srcLen;i+=(0x29d+1527-0x892)){if(src[i]!=
-(0x60c+1469-0xbc9)){temp=(int)(((src[i]<<(0x790+227-0x86b))&65280)|(src[i+
-(0x14f9+1947-0x1c93)]&(0xe6a+876-0x10d7)));
-#if (0xcdb+6316-0x2587) 
-if(temp<(0x42c+3556-0x1210)){max=min+(0x4e7+2235-0xd20);break;}
+,srcLen+(0x1d84+1488-0x2353));return srcLen+(0x45b+7700-0x226e);}for(i=
+(0x52b+8630-0x26e1);i<srcLen;i+=(0x6d8+6620-0x20b2)){if(src[i]!=
+(0x872+2489-0x122b)){temp=(int)(((src[i]<<(0x1e48+1896-0x25a8))&65280)|(src[i+
+(0x399+6095-0x1b67)]&(0x1516+4732-0x2693)));
+#if (0x3a5+4529-0x1556) 
+if(temp<(0xab1+2714-0x154b)){max=min+(0x1354+2133-0x1b27);break;}
 #endif            

 if(min>temp){min=temp;}if(max<temp){max=temp;}}}printf(
 "\x5b\x50\x42\x5d\x20\x61\x74\x70\x62\x5f\x43\x76\x74\x55\x63\x73\x32\x54\x6f\x41\x6c\x70\x68\x61\x46\x69\x65\x6c\x64\x2c\x20\x6d\x69\x6e\x3d\x25\x64\x2c\x20\x6d\x61\x78\x3d\x25\x64" "\n"
-,min,max);if((max-min)<(0x9e4+5063-0x1d2a)){if((unsigned char)(min&
-(0x1d85+1287-0x220c))==(unsigned char)(max&(0xae2+3816-0x194a))){dest[
-(0x7c2+7552-0x2541)]=(unsigned char)(srcLen/(0x6a1+6819-0x2142));dest[
-(0x7b9+7463-0x24e0)]=(unsigned char)(0xc36+4814-0x1e83);min=(int)(min&32640);
-dest[(0x1aa0+885-0x1e13)]=(unsigned char)((min>>(0x990+2665-0x13f2))&
-(0x1c26+2021-0x230c));outOff=(0xd2b+5908-0x243c);printf(
+,min,max);if((max-min)<(0x12af+1900-0x199a)){if((unsigned char)(min&
+(0x366+3361-0x1007))==(unsigned char)(max&(0x608+6351-0x1e57))){dest[
+(0x6a7+6745-0x20ff)]=(unsigned char)(srcLen/(0xb2c+5477-0x208f));dest[
+(0xdbc+1677-0x1449)]=(unsigned char)(0x29c+8301-0x2288);min=(int)(min&32640);
+dest[(0x172a+3076-0x232c)]=(unsigned char)((min>>(0xfd5+1767-0x16b5))&
+(0xe5b+735-0x103b));outOff=(0xf7+7909-0x1fd9);printf(
 "\x5b\x50\x42\x5d\x20\x61\x74\x70\x62\x5f\x43\x76\x74\x55\x63\x73\x32\x54\x6f\x41\x6c\x70\x68\x61\x46\x69\x65\x6c\x64\x2c\x20\x75\x73\x65\x20\x38\x31\x20\x63\x6f\x64\x65" "\n"
-);}else{dest[(0x450+3520-0x120f)]=(unsigned char)(srcLen/(0xa37+3007-0x15f4));
-dest[(0xdaa+5273-0x2243)]=(unsigned char)(0x941+3000-0x1477);dest[
-(0x1429+4080-0x2417)]=(unsigned char)((min>>(0x2369+258-0x2463))&
-(0x1b69+3230-0x2708));dest[(0x32+611-0x292)]=(unsigned char)(min&
-(0x1159+5778-0x26ec));outOff=(0x8a4+2954-0x142a);printf(
+);}else{dest[(0x1330+2748-0x1deb)]=(unsigned char)(srcLen/(0x2a1+3395-0xfe2));
+dest[(0xf62+6034-0x26f4)]=(unsigned char)(0x45f+4066-0x13bf);dest[
+(0x157c+4202-0x25e4)]=(unsigned char)((min>>(0x1226+3024-0x1dee))&
+(0x1d09+482-0x1dec));dest[(0x1062+3392-0x1d9f)]=(unsigned char)(min&
+(0xb90+6500-0x23f5));outOff=(0x24c1+58-0x24f7);printf(
 "\x5b\x50\x42\x5d\x20\x61\x74\x70\x62\x5f\x43\x76\x74\x55\x63\x73\x32\x54\x6f\x41\x6c\x70\x68\x61\x46\x69\x65\x6c\x64\x2c\x20\x75\x73\x65\x20\x38\x32\x20\x63\x6f\x64\x65" "\n"
-);}for(i=(0x16c5+1467-0x1c80);i<srcLen;i+=(0x846+823-0xb7b)){if(src[i]==
-(0x103a+829-0x1377)){dest[outOff]=(unsigned char)(src[i+(0x11d1+4892-0x24ec)]&
-(0x70a+4271-0x173a));}else{temp=(int)((((src[i]<<(0xb4a+7021-0x26af))&65280)|(
-src[i+(0x801+7007-0x235f)]&(0x200+1348-0x645)))-min);dest[outOff]=(unsigned char
-)(temp|(0x1ae3+2444-0x23ef));}outOff++;}printf(
+);}for(i=(0x9c5+4335-0x1ab4);i<srcLen;i+=(0x1565+4059-0x253e)){if(src[i]==
+(0xa03+803-0xd26)){dest[outOff]=(unsigned char)(src[i+(0x217a+496-0x2369)]&
+(0x4d3+4166-0x149a));}else{temp=(int)((((src[i]<<(0xe0d+3850-0x1d0f))&65280)|(
+src[i+(0xa2f+6351-0x22fd)]&(0xb68+2925-0x15d6)))-min);dest[outOff]=(unsigned 
+char)(temp|(0x1b8b+2015-0x22ea));}outOff++;}printf(
 "\x5b\x50\x42\x5d\x20\x61\x74\x70\x62\x5f\x43\x76\x74\x55\x63\x73\x32\x54\x6f\x41\x6c\x70\x68\x61\x46\x69\x65\x6c\x64\x2c\x20\x20\x6f\x75\x74\x4f\x66\x66\x3d\x25\x64\x2c\x64\x65\x73\x74\x5b\x25\x64\x5d\x3d\x25\x78" "\n"
-,outOff,outOff,dest[outOff]);return outOff;}dest[(0x2e6+7173-0x1eeb)]=
-(0x76c+1115-0xb47);memcpy(dest+(0x16a8+3125-0x22dc),src,srcLen);printf(
+,outOff,outOff,dest[outOff]);return outOff;}dest[(0x27d+8002-0x21bf)]=
+(0x84b+2293-0x10c0);memcpy(dest+(0x574+7969-0x2494),src,srcLen);printf(
 "\x5b\x50\x42\x5d\x20\x61\x74\x70\x62\x5f\x43\x76\x74\x55\x63\x73\x32\x54\x6f\x41\x6c\x70\x68\x61\x46\x69\x65\x6c\x64\x2c\x20\x75\x73\x65\x20\x38\x30\x20\x63\x6f\x64\x65\x2c\x20\x6c\x65\x6e\x20\x3d\x25\x64" "\n"
-,srcLen+(0x1b19+778-0x1e22));return srcLen+(0x11eb+2639-0x1c39);}int 
+,srcLen+(0x22ef+10-0x22f8));return srcLen+(0xac1+6748-0x251c);}int 
 atPb_GetU80Code(const UINT8*srcCode,UINT32 srcCodeLen,UINT8*destCode,UINT32 
 destCodeLen){assert(destCode!=NULL&&srcCode!=NULL);if(srcCodeLen==
-(0x71f+2065-0xf30)||destCodeLen==(0x175+6962-0x1ca7)||destCodeLen<srcCodeLen){
-return-(0x72c+6313-0x1fd4);}memset(destCode,(0x187d+804-0x1ba1),destCodeLen);
-destCode[(0x23ad+195-0x2470)]=(0xc37+5603-0x219a);printf(
+(0x2a2+2992-0xe52)||destCodeLen==(0x154+9034-0x249e)||destCodeLen<srcCodeLen){
+return-(0x25d+6229-0x1ab1);}memset(destCode,(0x1533+1389-0x1aa0),destCodeLen);
+destCode[(0x10d7+5150-0x24f5)]=(0x1980+580-0x1b44);printf(
 "\x63\x68\x65\x6e\x6a\x69\x65\x20\x2d\x2d\x2d\x2d\x2d\x61\x74\x50\x62\x5f\x47\x65\x74\x55\x38\x30\x43\x6f\x64\x65\x2d\x2d\x2d\x2d\x2d\x73\x72\x63\x43\x6f\x64\x65\x5b\x30\x5d\x20\x3d\x20\x25\x64" "\n"
-,srcCode[(0x6a1+6676-0x20b5)]);switch(srcCode[(0x8c1+5172-0x1cf5)]){case
-(0x8d1+3512-0x1609):{memcpy(destCode,srcCode,srcCodeLen);return srcCodeLen;}case
-(0xef+3825-0xf5f):{atPb_CvtU81ToU80(srcCode+(0x13a1+2836-0x1eb4),srcCodeLen-
-(0x1ff8+582-0x223d),destCode+(0x62c+4276-0x16df),destCodeLen-(0x427+7589-0x21cb)
-);return srcCode[(0xd61+2381-0x16ad)]*(0x1300+2127-0x1b4d)+(0x4c3+3685-0x1327);}
-case(0xa7+8688-0x2215):{atPb_CvtU82ToU80(srcCode+(0x1dea+184-0x1ea1),srcCodeLen-
-(0x1eb8+1525-0x24ac),destCode+(0x1029+1750-0x16fe),destCodeLen-
-(0x760+1287-0xc66));return srcCode[(0x104c+141-0x10d8)]*(0x5ac+7563-0x2335)+
-(0x285+2138-0xade);}default:{return-(0x8c1+4010-0x186a);}}}BOOL atPb_CvtU82ToU80
-(const UINT8*srcData,UINT32 srcLen,UINT8*destData,UINT32 destLen){UINT8 chNum=
-(0xd0+703-0x38f);UINT16 basePointer=(0xbec+4535-0x1da3);UINT8 iCurChar=
-(0x1985+1584-0x1fb5);UINT32 iCurSrc=(0xd7d+3458-0x1aff);chNum=(UINT32)srcData[
-(0x403+7649-0x21e4)];basePointer=(UINT16)srcData[(0xcf0+1976-0x14a7)];
-basePointer=basePointer<<(0xa52+3382-0x1780);basePointer=basePointer+srcData[
-(0x153+2304-0xa51)];if(chNum*(0x1e48+1119-0x22a5)>destLen){return FALSE;}for(
-iCurSrc=(0x6a3+5882-0x1d9a);iCurSrc<srcLen&&iCurChar<chNum;iCurSrc++,iCurChar++)
-{UINT8*curDest=destData+(0x658+1247-0xb35)*iCurChar;atPb_CvtChCode(basePointer,
-srcData[iCurSrc],curDest,curDest+(0x1123+3318-0x1e18));}return TRUE;}BOOL 
+,srcCode[(0x2012+1732-0x26d6)]);switch(srcCode[(0x18ab+1484-0x1e77)]){case
+(0xddd+5632-0x235d):{memcpy(destCode,srcCode,srcCodeLen);return srcCodeLen;}case
+(0x199b+804-0x1c3e):{atPb_CvtU81ToU80(srcCode+(0x1581+4312-0x2658),srcCodeLen-
+(0x52a+822-0x85f),destCode+(0x2421+343-0x2577),destCodeLen-(0xd34+3850-0x1c3d));
+return srcCode[(0x10bf+4125-0x20db)]*(0x1d92+1503-0x236f)+(0x82b+4594-0x1a1c);}
+case(0xacf+7237-0x2692):{atPb_CvtU82ToU80(srcCode+(0xdbd+1165-0x1249),srcCodeLen
+-(0x90c+3362-0x162d),destCode+(0x459+2295-0xd4f),destCodeLen-(0x2078+863-0x23d6)
+);return srcCode[(0x1787+3067-0x2381)]*(0x106b+1549-0x1676)+(0x9e8+5560-0x1f9f);
+}default:{return-(0x10b6+4564-0x2289);}}}BOOL atPb_CvtU82ToU80(const UINT8*
+srcData,UINT32 srcLen,UINT8*destData,UINT32 destLen){UINT8 chNum=
+(0xa16+5107-0x1e09);UINT16 basePointer=(0x1a7+7034-0x1d21);UINT8 iCurChar=
+(0x1125+5108-0x2519);UINT32 iCurSrc=(0xe86+3940-0x1dea);chNum=(UINT32)srcData[
+(0x780+4174-0x17ce)];basePointer=(UINT16)srcData[(0x1315+3900-0x2250)];
+basePointer=basePointer<<(0xd20+5685-0x234d);basePointer=basePointer+srcData[
+(0x129d+3149-0x1ee8)];if(chNum*(0x155+6153-0x195c)>destLen){return FALSE;}for(
+iCurSrc=(0x112b+5096-0x2510);iCurSrc<srcLen&&iCurChar<chNum;iCurSrc++,iCurChar++
+){UINT8*curDest=destData+(0x5bd+5249-0x1a3c)*iCurChar;atPb_CvtChCode(basePointer
+,srcData[iCurSrc],curDest,curDest+(0x14d5+4425-0x261d));}return TRUE;}BOOL 
 atPb_CvtU81ToU80(const UINT8*srcData,UINT32 srcLen,UINT8*destData,UINT32 destLen
-){UINT8 chNum=(0x1dad+1711-0x245c);UINT16 basePointer=(0x1d6+8729-0x23ef);UINT8 
-iCurChar=(0x1d2+4466-0x1344);UINT32 iCurSrc=(0x737+6240-0x1f97);chNum=srcData[
-(0xbef+5064-0x1fb7)];basePointer=((UINT16)srcData[(0x1724+2247-0x1fea)])<<
-(0xa25+7047-0x25a5);if(chNum*(0x251d+279-0x2632)>destLen){return FALSE;}for(
-iCurSrc=(0x3e4+1702-0xa88);iCurSrc<srcLen&&iCurChar<chNum;iCurSrc++,iCurChar++){
-UINT8*curDest=destData+(0xb9a+5123-0x1f9b)*iCurChar;atPb_CvtChCode(basePointer,
-srcData[iCurSrc],curDest,curDest+(0xf15+2251-0x17df));}return TRUE;}VOID 
+){UINT8 chNum=(0xecf+4685-0x211c);UINT16 basePointer=(0x129a+2396-0x1bf6);UINT8 
+iCurChar=(0x990+5736-0x1ff8);UINT32 iCurSrc=(0x139d+2734-0x1e4b);chNum=srcData[
+(0x1c10+1902-0x237e)];basePointer=((UINT16)srcData[(0x210+2912-0xd6f)])<<
+(0xf9+1476-0x6b6);if(chNum*(0x420+8102-0x23c4)>destLen){return FALSE;}for(
+iCurSrc=(0x328+1789-0xa23);iCurSrc<srcLen&&iCurChar<chNum;iCurSrc++,iCurChar++){
+UINT8*curDest=destData+(0x2bd+2948-0xe3f)*iCurChar;atPb_CvtChCode(basePointer,
+srcData[iCurSrc],curDest,curDest+(0xec3+2058-0x16cc));}return TRUE;}VOID 
 atPb_CvtChCode(UINT16 basePointer,UINT8 srcData,UINT8*chMsb,UINT8*chLsb){UINT16 
-curChar=(0x11a5+721-0x1476);assert(chMsb!=NULL&&chLsb!=NULL);if((srcData&
-(0xb0a+4691-0x1cdd))==(0x583+712-0x84b)){curChar=srcData;}else{curChar=
-basePointer+(srcData&(0x450+7019-0x1f3c));}*chMsb=(UINT8)(curChar>>
-(0x4a2+4722-0x170c));*chLsb=(UINT8)((curChar<<(0xb0a+4333-0x1bef))>>
-(0x697+1289-0xb98));return;}int atPb_String2Bytes(const char*pSrc,unsigned char*
-pDst,int nSrcLength){int i=(0xd58+299-0xe83);if(pSrc==NULL||pDst==NULL||
-nSrcLength<(0x1a11+3178-0x267b)){return-(0x1508+1155-0x198a);}for(i=
-(0x1b9+7470-0x1ee7);i<nSrcLength;i+=(0xdb2+354-0xf12)){if(*pSrc>=
-((char)(0xe2f+2368-0x173f))&&*pSrc<=((char)(0xeda+3783-0x1d68))){*pDst=(*pSrc-
-((char)(0x17d9+72-0x17f1)))<<(0x779+4991-0x1af4);}else{*pDst=((toupper(*pSrc)-
-((char)(0x1b1b+2666-0x2544)))+(0x49c+5856-0x1b72))<<(0x9b2+2906-0x1508);}pSrc++;
-if(*pSrc>=((char)(0xee0+124-0xf2c))&&*pSrc<=((char)(0x483+6076-0x1c06))){*pDst|=
-*pSrc-((char)(0x9c+5961-0x17b5));}else{*pDst|=(toupper(*pSrc)-
-((char)(0x8a9+5018-0x1c02)))+(0xe0d+5447-0x234a);}pSrc++;pDst++;}return 
-nSrcLength/(0x12da+4001-0x2279);}int atPb_Bytes2String(const unsigned char*pSrc,
+curChar=(0x3e9+8601-0x2582);assert(chMsb!=NULL&&chLsb!=NULL);if((srcData&
+(0x115a+5391-0x25e9))==(0x26c+4344-0x1364)){curChar=srcData;}else{curChar=
+basePointer+(srcData&(0x939+4934-0x1c00));}*chMsb=(UINT8)(curChar>>
+(0x20f9+1144-0x2569));*chLsb=(UINT8)((curChar<<(0xf35+5957-0x2672))>>
+(0xb3+713-0x374));return;}int atPb_String2Bytes(const char*pSrc,unsigned char*
+pDst,int nSrcLength){int i=(0x1ba+1960-0x962);if(pSrc==NULL||pDst==NULL||
+nSrcLength<(0xf85+4991-0x2304)){return-(0x633+785-0x943);}for(i=
+(0x63a+916-0x9ce);i<nSrcLength;i+=(0x17b9+2311-0x20be)){if(*pSrc>=
+((char)(0xbf5+6594-0x2587))&&*pSrc<=((char)(0x1864+3582-0x2629))){*pDst=(*pSrc-
+((char)(0x925+6275-0x2178)))<<(0xbbc+2605-0x15e5);}else{*pDst=((toupper(*pSrc)-
+((char)(0x181d+745-0x1ac5)))+(0xdb6+2128-0x15fc))<<(0x640+4679-0x1883);}pSrc++;
+if(*pSrc>=((char)(0x16c9+3858-0x25ab))&&*pSrc<=((char)(0xef5+3803-0x1d97))){*
+pDst|=*pSrc-((char)(0x1c3c+1280-0x210c));}else{*pDst|=(toupper(*pSrc)-
+((char)(0xaa9+6975-0x25a7)))+(0xcc3+3353-0x19d2);}pSrc++;pDst++;}return 
+nSrcLength/(0x47f+3588-0x1281);}int atPb_Bytes2String(const unsigned char*pSrc,
 char*pDst,int nSrcLength){const char tab[]=
 "\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x41\x42\x43\x44\x45\x46";int i=
-(0x7a0+3472-0x1530);if(pSrc==NULL||pDst==NULL||nSrcLength<(0xac1+6803-0x2554)){
-return-(0x1d+3545-0xdf5);}for(i=(0x447+5938-0x1b79);i<nSrcLength;i++){*pDst++=
-tab[*pSrc>>(0x12f4+1781-0x19e5)];*pDst++=tab[*pSrc&(0x1f30+1240-0x23f9)];pSrc++;
-}*pDst='\0';return nSrcLength*(0x665+5024-0x1a03);}static VOID 
-atPb_WebRecodeShow(T_zPb_WebContact const*pFromweb){slog(PB_PRINT,SLOG_DEBUG,
+(0x2b7+4211-0x132a);if(pSrc==NULL||pDst==NULL||nSrcLength<(0x1838+2404-0x219c)){
+return-(0x18cb+1118-0x1d28);}for(i=(0x11bf+723-0x1492);i<nSrcLength;i++){*pDst++
+=tab[*pSrc>>(0x18f+534-0x3a1)];*pDst++=tab[*pSrc&(0x19a4+1002-0x1d7f)];pSrc++;}*
+pDst='\0';return nSrcLength*(0x8a4+4567-0x1a79);}static VOID atPb_WebRecodeShow(
+T_zPb_WebContact const*pFromweb){slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x66\x72\x6f\x6d\x77\x65\x62\x2e\x49\x6e\x64\x65\x78\x3d\x25\x64" "\n"
 ,pFromweb->pbIndex);slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x66\x72\x6f\x6d\x77\x65\x62\x2e\x4e\x61\x6d\x65\x3d\x25\x73" "\n",
@@ -200,21 +202,20 @@
 ){sc_cfg_set(ZPB_NV_INIT,ZPB_OPERATE_SUC);printf(
 "\x5b\x50\x42\x5d\x20\x61\x74\x50\x62\x5f\x53\x65\x6e\x64\x53\x63\x70\x62\x72\x53\x65\x74\x20\x61\x74\x42\x61\x73\x65\x5f\x49\x69\x6e\x74\x50\x62\x4f\x6b\x20" "\n"
 );}VOID atPb_RecvCpbsReadRsp(T_zPb_AtCpbsReadRes*cpbsInd){CHAR resInfo[
-(0x288+5374-0x1772)]={(0x49b+4140-0x14c7)};if(strncmp(cpbsInd->locType,
-"\x53\x4d",(0x85f+1562-0xe77))==(0x152+5104-0x1542)){(VOID)snprintf(resInfo,
-(0x1166+2589-0x1b6f),"\x25\x64",cpbsInd->usedEntries);(VOID)sc_cfg_set(
-NV_PB_USEDENTRIES,resInfo);memset(resInfo,(0x661+5264-0x1af1),
-(0x2016+1162-0x248c));(VOID)snprintf(resInfo,(0xd7f+6464-0x26ab),"\x25\x64",
-cpbsInd->totalEntries);(VOID)sc_cfg_set(NV_PB_TOTALENTRIES,resInfo);
-g_zPb_SimIndex[(0x128+5559-0x16df)]=(UINT32)(cpbsInd->totalEntries);}else{printf
-(
+(0x2672+165-0x2703)]={(0x9d5+429-0xb82)};if(strncmp(cpbsInd->locType,"\x53\x4d",
+(0x536+5852-0x1c10))==(0x2c6+6425-0x1bdf)){(VOID)snprintf(resInfo,
+(0x1a7d+528-0x1c79),"\x25\x64",cpbsInd->usedEntries);(VOID)sc_cfg_set(
+NV_PB_USEDENTRIES,resInfo);memset(resInfo,(0xa02+586-0xc4c),(0xdc3+5417-0x22d8))
+;(VOID)snprintf(resInfo,(0x1017+2954-0x1b8d),"\x25\x64",cpbsInd->totalEntries);(
+VOID)sc_cfg_set(NV_PB_TOTALENTRIES,resInfo);g_zPb_SimIndex[(0x2d9+7887-0x21a8)]=
+(UINT32)(cpbsInd->totalEntries);}else{printf(
 "\x61\x74\x50\x62\x5f\x52\x65\x63\x76\x43\x70\x62\x73\x52\x65\x61\x64\x52\x73\x70\x20\x6e\x6f\x74\x20\x53\x4d\x3a\x25\x73" "\n"
 ,cpbsInd->locType);}}static VOID atPb_SetScpbrResToNv(CHAR const*pbNvKeyWord,
-UINT32 len){char converted[(0x1ba8+2093-0x23cb)]={(0x153b+3887-0x246a)};assert(
-pbNvKeyWord!=ZUFI_NULL);(VOID)snprintf(converted,(0x1718+2351-0x203d),"\x25\x64"
-,len);(VOID)sc_cfg_set(pbNvKeyWord,converted);}VOID atPb_ScpbrTestRsp(
-T_zPb_AtScpbrTestRes*scpbsInd){T_zPb_UsimCapacity pbPara={(0xb3a+3275-0x1805)};
-CHAR pbUsed[(0x381+5768-0x19d7)]={(0x1517+2703-0x1fa6)};sc_cfg_get(
+UINT32 len){char converted[(0x804+1287-0xd01)]={(0x5d2+1363-0xb25)};assert(
+pbNvKeyWord!=ZUFI_NULL);(VOID)snprintf(converted,(0x561+5020-0x18f3),"\x25\x64",
+len);(VOID)sc_cfg_set(pbNvKeyWord,converted);}VOID atPb_ScpbrTestRsp(
+T_zPb_AtScpbrTestRes*scpbsInd){T_zPb_UsimCapacity pbPara={(0xb25+2049-0x1326)};
+CHAR pbUsed[(0x830+4191-0x185d)]={(0xb30+4176-0x1b80)};sc_cfg_get(
 NV_PB_USEDENTRIES,pbUsed,sizeof(pbUsed));g_zPb_DelIndex=(UINT32)scpbsInd->
 minIndex;pbPara.simType=ZPB_USIM;pbPara.maxRecordNum=scpbsInd->maxIndex;pbPara.
 usedRecordNum=atoi(pbUsed);pbPara.maxNumberLen=scpbsInd->maxNumberLen;pbPara.
@@ -223,22 +224,22 @@
 atPb_SetScpbrResToNv(ZPB_NV_USIMINDEXMIN,(UINT32)scpbsInd->minIndex);
 atPb_SetScpbrResToNv(ZPB_NV_USIMINDEXMAX,(UINT32)scpbsInd->maxIndex);(VOID)
 atPb_SetSimCapacityTable(pbPara);}int atPb_SendScpbrSet_repeat(sem_t tSemId){int
- min=(0xae2+5312-0x1fa2);int max=(0xeb4+4417-0x1ff5);int res=
-(0x11b4+4462-0x2322);int index=(0xab5+688-0xd65);CHAR pbMin[(0x13bd+4720-0x25fb)
-]={(0x6d9+2492-0x1095)};CHAR pbMax[(0x1187+2901-0x1caa)]={(0x752+1364-0xca6)};
-int indexmin=(0x1565+1377-0x1ac6);int indexmax=(0x74a+1651-0xdbd);
-T_zPb_ScpbrReadRes scpbrReadInfo={(0x746+5890-0x1e48)};sc_cfg_get(
-ZPB_NV_USIMINDEXMIN,pbMin,sizeof(pbMin));sc_cfg_get(ZPB_NV_USIMINDEXMAX,pbMax,
-sizeof(pbMax));(VOID)sc_cfg_set(ZPB_NV_INIT,ZPB_LOADING);if(strcmp(pbMin,"\x30")
-==(0x1f9+2050-0x9fb)||strcmp(pbMax,"\x30")==(0x64+1505-0x645)){sc_cfg_set(
-ZPB_NV_INIT,ZPB_OPERATE_SUC);printf(
+ min=(0x578+7550-0x22f6);int max=(0x1628+570-0x1862);int res=
+(0x1867+2110-0x20a5);int index=(0x615+7034-0x218f);CHAR pbMin[
+(0xb47+4676-0x1d59)]={(0x10a2+2381-0x19ef)};CHAR pbMax[(0x153f+3863-0x2424)]={
+(0x13a+3065-0xd33)};int indexmin=(0x596+6290-0x1e28);int indexmax=
+(0x65a+2727-0x1101);T_zPb_ScpbrReadRes scpbrReadInfo={(0x349+6910-0x1e47)};
+sc_cfg_get(ZPB_NV_USIMINDEXMIN,pbMin,sizeof(pbMin));sc_cfg_get(
+ZPB_NV_USIMINDEXMAX,pbMax,sizeof(pbMax));(VOID)sc_cfg_set(ZPB_NV_INIT,
+ZPB_LOADING);if(strcmp(pbMin,"\x30")==(0x67a+6481-0x1fcb)||strcmp(pbMax,"\x30")
+==(0x1e74+1333-0x23a9)){sc_cfg_set(ZPB_NV_INIT,ZPB_OPERATE_SUC);printf(
 "\x61\x74\x50\x62\x5f\x53\x65\x6e\x64\x53\x63\x70\x62\x72\x53\x65\x74\x20\x63\x61\x72\x64\x20\x75\x6e\x73\x75\x70\x70\x6f\x72\x74\x20\x70\x62" "\n"
-);return-(0x7b3+6791-0x2239);}sscanf(pbMin,"\x25\x64",&min);sscanf(pbMax,
-"\x25\x64",&max);if((min<(0xf67+2085-0x178c)||min>INT_MAX-(0x336+5393-0x1846))||
-(max<(0x100a+5888-0x270a)||max>INT_MAX-(0x1740+591-0x198e))){printf(
+);return-(0x2bb+6268-0x1b36);}sscanf(pbMin,"\x25\x64",&min);sscanf(pbMax,
+"\x25\x64",&max);if((min<(0x8c+7596-0x1e38)||min>INT_MAX-(0x21a9+244-0x229c))||(
+max<(0x11ff+5373-0x26fc)||max>INT_MAX-(0x1187+2443-0x1b11))){printf(
 "\x61\x74\x50\x62\x5f\x53\x65\x6e\x64\x53\x63\x70\x62\x72\x53\x65\x74\x20\x70\x62\x20\x6e\x75\x6d\x20\x65\x72\x72\x20\x6d\x69\x6e\x3a\x25\x64\x2c\x20\x6d\x61\x78\x3a\x25\x64" "\n"
-,min,max);return-(0x147+884-0x4ba);}while((0x170f+795-0x1a29)){if(indexmin<min){
-indexmin=min;indexmax=min+ZPB_INIT_LOAD_RECORD_NUM-(0x5b7+4440-0x170e);if(
+,min,max);return-(0x561+2642-0xfb2);}while((0x830+6605-0x21fc)){if(indexmin<min)
+{indexmin=min;indexmax=min+ZPB_INIT_LOAD_RECORD_NUM-(0x18d9+3035-0x24b3);if(
 indexmax>max){indexmax=max;break;}printf(
 "\x5b\x50\x42\x5d\x20\x31\x31\x31\x20\x69\x6e\x64\x65\x78\x6d\x69\x6e\x3d\x25\x64\x2c\x20\x69\x6e\x64\x65\x78\x6d\x61\x78\x3d\x25\x64\x2c\x28\x25\x64\x2d\x25\x64\x29" "\n"
 ,indexmin,indexmax,min,max);}else{indexmin=indexmin+ZPB_INIT_LOAD_RECORD_NUM;if(
@@ -249,18 +250,18 @@
 "\x5b\x50\x42\x5d\x20\x32\x32\x32\x20\x69\x6e\x64\x65\x78\x6d\x69\x6e\x3d\x25\x64\x2c\x20\x69\x6e\x64\x65\x78\x6d\x61\x78\x3d\x25\x64\x2c\x28\x25\x64\x2d\x25\x64\x29" "\n"
 ,indexmin,indexmax,min,max);}scpbrReadInfo.minIndex=indexmin;scpbrReadInfo.
 maxIndex=indexmax;res=ipc_send_message(MODULE_ID_PB,MODULE_ID_AT_CTL,
-MSG_CMD_READ_PB_REQ,sizeof(T_zPb_ScpbrReadRes),&scpbrReadInfo,(0x857+57-0x890));
-sem_wait(&g_Pb_sem_id);if(g_PbOptRsp.result==-(0x573+126-0x5f0)){break;}}return 
-g_PbOptRsp.result;}
-#if (0x24fc+383-0x267b)

+MSG_CMD_READ_PB_REQ,sizeof(T_zPb_ScpbrReadRes),&scpbrReadInfo,(0xaf1+303-0xc20))
+;sem_wait(&g_Pb_sem_id);if(g_PbOptRsp.result==-(0x2232+827-0x256c)){break;}}
+return g_PbOptRsp.result;}
+#if (0x5e9+3236-0x128d)

 int atPb_SendScpbrSet(PSTR pAtCmdPara,int cid,PSTR pAtRst,int atRstSize){UINT32 
-indexmin=(0x16c7+2663-0x212e);UINT32 indexmax=(0x264+2777-0xd3d);CHAR atcmdMsg[
-(0xe0f+2140-0x1625)]={(0x6e8+1848-0xe20)};int res=(0xf39+5905-0x264a);CHAR pbMin
-[(0x97a+6464-0x2288)]={(0x55f+1400-0xad7)};CHAR pbMax[(0x5ef+4684-0x1809)]={
-(0x1fa8+491-0x2193)};sc_cfg_get(ZPB_NV_USIMINDEXMIN,pbMin,sizeof(pbMin));
+indexmin=(0x1424+2869-0x1f59);UINT32 indexmax=(0x126a+1247-0x1749);CHAR atcmdMsg
+[(0x1809+889-0x1b3c)]={(0x31c+2762-0xde6)};int res=(0x970+2035-0x1163);CHAR 
+pbMin[(0xdc2+1574-0x13b6)]={(0x70f+5465-0x1c68)};CHAR pbMax[(0xc11+1262-0x10cd)]
+={(0xfa2+5218-0x2404)};sc_cfg_get(ZPB_NV_USIMINDEXMIN,pbMin,sizeof(pbMin));
 sc_cfg_get(ZPB_NV_USIMINDEXMAX,pbMax,sizeof(pbMax));(VOID)sc_cfg_set(ZPB_NV_INIT
-,ZPB_LOADING);if(strcmp(pbMin,"\x30")==(0x5c9+5511-0x1b50)||strcmp(pbMax,"\x30")
-==(0xdb1+5863-0x2498)){printf(
+,ZPB_LOADING);if(strcmp(pbMin,"\x30")==(0xf5f+3244-0x1c0b)||strcmp(pbMax,"\x30")
+==(0x3da+1969-0xb8b)){printf(
 "\x61\x74\x50\x62\x5f\x53\x65\x6e\x64\x53\x63\x70\x62\x72\x53\x65\x74\x20\x63\x61\x72\x64\x20\x75\x6e\x73\x75\x70\x70\x6f\x72\x74\x20\x70\x62" "\n"
 );return ZAT_RESULT_OK;}sscanf(pbMin,"\x25\x64",&indexmin);sscanf(pbMax,
 "\x25\x64",&indexmax);(VOID)snprintf(atcmdMsg,sizeof(atcmdMsg),
@@ -269,47 +270,46 @@
 atcmdMsg,cid,pAtRst,atRstSize);pthread_mutex_unlock(&smsdb_mutex);return res;}
 #endif

 UINT8 atPb_EncodeText(CHAR*pbDst,CHAR const*pbTextSrc,UINT32 dstLen){UINT8 i=
-(0x2f5+1932-0xa81);CHAR strTarget[ZPB_TEXT_SIZE_BYTES]={(0x8b+4818-0x135d)};if(
-pbTextSrc!=ZUFI_NULL){if(strlen(pbTextSrc)*(0x691+6418-0x1f9f)+
-ZPB_UCS2_PREFIX_LEN<dstLen){snprintf((CHAR*)&strTarget[(0x9d4+3286-0x16aa)],
-sizeof(strTarget),"\x25\x30\x32\x58",ZPB_UCS2_PREFIX);for(i=(0xcf9+6609-0x26ca);
-(i<strlen(pbTextSrc))&&(i*(0x132f+2681-0x1da4)+ZPB_UCS2_PREFIX_LEN<dstLen);i++){
-snprintf(strTarget+i*(0xb02+4690-0x1d50)+ZPB_UCS2_PREFIX_LEN,sizeof(strTarget)-i
-*(0x695+2495-0x1050)-ZPB_UCS2_PREFIX_LEN,"\x30\x30\x25\x30\x32\x58",pbTextSrc[i]
-);}strncpy(pbDst,strTarget,dstLen-(0x14c3+3415-0x2219));return ZUFI_SUCC;}}
-return ZUFI_FAIL;}VOID atPb_ScpbrSetRsp(T_zPb_ScpbrSetRes*atRes){
-T_zPb_WebContact pbRecord={(0xf0b+2465-0x18ac)};CHAR pbDst[ZPB_TEXT_SIZE_BYTES]=
-{(0x2d2+3882-0x11fc)};CHAR text[ZPB_TEXT_SIZE_BYTES]={(0x207b+1471-0x263a)};int 
-text_len=(0x1e60+1140-0x22d4);int tmp_len=(0x55f+2549-0xf54);CHAR tmp[
-ZPB_TEXT_SIZE_BYTES]={(0x394+1290-0x89e)};if(atRes->coding!=ZPB_UCS2){if(
+(0xbcf+3817-0x1ab8);CHAR strTarget[ZPB_TEXT_SIZE_BYTES]={(0xd63+3499-0x1b0e)};if
+(pbTextSrc!=ZUFI_NULL){if(strlen(pbTextSrc)*(0x224+5696-0x1860)+
+ZPB_UCS2_PREFIX_LEN<dstLen){snprintf((CHAR*)&strTarget[(0xa3b+3623-0x1862)],
+sizeof(strTarget),"\x25\x30\x32\x58",ZPB_UCS2_PREFIX);for(i=(0x1601+3991-0x2598)
+;(i<strlen(pbTextSrc))&&(i*(0x1051+4985-0x23c6)+ZPB_UCS2_PREFIX_LEN<dstLen);i++)
+{snprintf(strTarget+i*(0xad8+866-0xe36)+ZPB_UCS2_PREFIX_LEN,sizeof(strTarget)-i*
+(0x1b88+1331-0x20b7)-ZPB_UCS2_PREFIX_LEN,"\x30\x30\x25\x30\x32\x58",pbTextSrc[i]
+);}strncpy(pbDst,strTarget,dstLen-(0x1b8f+572-0x1dca));return ZUFI_SUCC;}}return
+ ZUFI_FAIL;}VOID atPb_ScpbrSetRsp(T_zPb_ScpbrSetRes*atRes){T_zPb_WebContact 
+pbRecord={(0x79a+3309-0x1487)};CHAR pbDst[ZPB_TEXT_SIZE_BYTES]={
+(0x3f8+8646-0x25be)};CHAR text[ZPB_TEXT_SIZE_BYTES]={(0x23eb+328-0x2533)};int 
+text_len=(0x1e00+692-0x20b4);int tmp_len=(0x9a3+7060-0x2537);CHAR tmp[
+ZPB_TEXT_SIZE_BYTES]={(0x4d0+2335-0xdef)};if(atRes->coding!=ZPB_UCS2){if(
 atPb_EncodeText(pbDst,atRes->text,ZPB_TEXT_SIZE_BYTES)==ZUFI_SUCC){strncpy(atRes
-->text,pbDst+(0xbab+4310-0x1c7f),sizeof(atRes->text)-(0xc7d+5818-0x2336));}else{
-slog(PB_PRINT,SLOG_ERR,
+->text,pbDst+(0x16a9+1552-0x1cb7),sizeof(atRes->text)-(0x154a+3418-0x22a3));}
+else{slog(PB_PRINT,SLOG_ERR,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x53\x63\x70\x62\x72\x53\x65\x74\x52\x73\x70\x65\x6e\x63\x6f\x64\x65\x20\x65\x72\x72\x21\x2e" "\n"
 );return;}}else{text_len=atPb_String2Bytes(&atRes->text,&text,strlen(atRes->text
 ));tmp_len=atPb_GetU80Code(&text,text_len,&tmp,ZPB_TEXT_SIZE_BYTES);if(tmp_len<
-(0x1e0f+1111-0x2266))return;memset(&text,(0x1511+2090-0x1d3b),
-ZPB_TEXT_SIZE_BYTES);text_len=atPb_Bytes2String(&tmp,&text,tmp_len);if(text_len>
-(0x14d3+2325-0x1de6)){memset(&atRes->text,(0x627+3697-0x1498),
-ZPB_TEXT_SIZE_BYTES);memcpy(&atRes->text,text+(0x1a41+1149-0x1ebc),strlen(text)-
-(0x44d+4423-0x1592));}}pbRecord.pbId=-(0x2f+2317-0x93b);pbRecord.pbIndex=(SINT32
-)atRes->index;strncpy(pbRecord.name,atRes->text,sizeof(pbRecord.name)-
-(0x316+8796-0x2571));strncpy(pbRecord.mobilNumber,atRes->number1,sizeof(pbRecord
-.mobilNumber)-(0xb6b+2951-0x16f1));strncpy(pbRecord.officeNumber,atRes->number2,
-sizeof(pbRecord.officeNumber)-(0x1a6b+3098-0x2684));strncpy(pbRecord.homeNumber,
-atRes->number3,sizeof(pbRecord.homeNumber)-(0x1318+3192-0x1f8f));strncpy(
-pbRecord.email,atRes->email,sizeof(pbRecord.email)-(0x5fa+4084-0x15ed));pbRecord
-.pbLocation=ZPB_LOCATION_USIM;(VOID)atPb_LoadARecToPbmTable(&pbRecord);}VOID 
-atPb_SetDelStatusMultOrAll(){if(g_zPb_DelStatusUsim.dealFailNum>
-(0x21c3+1213-0x2680)){if(g_zPb_DelStatusUsim.dealSuccNum>(0xaff+3701-0x1974)){(
-VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_MUL_DEL_PART_SUC);}else{(VOID)sc_cfg_set(
-ZPB_NV_WRITE_FLAG,ZPB_DEL_ERROR);}}else{(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,
-ZPB_OPERATE_SUC);}}
-#if (0xbfc+4800-0x1ebc)

+(0x9ed+4942-0x1d3b))return;memset(&text,(0xe86+5747-0x24f9),ZPB_TEXT_SIZE_BYTES)
+;text_len=atPb_Bytes2String(&tmp,&text,tmp_len);if(text_len>(0x19fa+1009-0x1de9)
+){memset(&atRes->text,(0x6eb+2857-0x1214),ZPB_TEXT_SIZE_BYTES);memcpy(&atRes->
+text,text+(0x347+7888-0x2215),strlen(text)-(0x6b6+2101-0xee9));}}pbRecord.pbId=-
+(0x7fd+6108-0x1fd8);pbRecord.pbIndex=(SINT32)atRes->index;strncpy(pbRecord.name,
+atRes->text,sizeof(pbRecord.name)-(0x1ac+1634-0x80d));strncpy(pbRecord.
+mobilNumber,atRes->number1,sizeof(pbRecord.mobilNumber)-(0x1ad3+2316-0x23de));
+strncpy(pbRecord.officeNumber,atRes->number2,sizeof(pbRecord.officeNumber)-
+(0x17cb+3416-0x2522));strncpy(pbRecord.homeNumber,atRes->number3,sizeof(pbRecord
+.homeNumber)-(0x9f+783-0x3ad));strncpy(pbRecord.email,atRes->email,sizeof(
+pbRecord.email)-(0xc6+1685-0x75a));pbRecord.pbLocation=ZPB_LOCATION_USIM;(VOID)
+atPb_LoadARecToPbmTable(&pbRecord);}VOID atPb_SetDelStatusMultOrAll(){if(
+g_zPb_DelStatusUsim.dealFailNum>(0x217a+388-0x22fe)){if(g_zPb_DelStatusUsim.
+dealSuccNum>(0xca4+3123-0x18d7)){(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,
+ZPB_MUL_DEL_PART_SUC);}else{(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_DEL_ERROR);}}
+else{(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_OPERATE_SUC);}}
+#if (0x421+5641-0x1a2a)

 VOID atPb_RecvScpbwAddErr(UINT8*pErrCode){(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,
-ZPB_NEW_ERROR);if((strncmp(pErrCode,ZAT_ERRCODE_MEMORY_FULL,(0x56f+1322-0xa97))
-==(0x1812+863-0x1b71))){(VOID)sc_cfg_set(ZPB_NV_USIMMEMORYFULL,"\x79\x65\x73");
-printf(
+ZPB_NEW_ERROR);if((strncmp(pErrCode,ZAT_ERRCODE_MEMORY_FULL,(0x120d+2988-0x1db7)
+)==(0x15e7+1068-0x1a13))){(VOID)sc_cfg_set(ZPB_NV_USIMMEMORYFULL,"\x79\x65\x73")
+;printf(
 "\x70\x62\x3a\x52\x65\x63\x76\x20\x43\x4d\x45\x20\x45\x72\x72\x43\x6f\x64\x65\x3a\x20\x32\x30\x2e" "\n"
 );}else{printf(
 "\x70\x62\x3a\x52\x65\x63\x76\x20\x41\x74\x20\x53\x63\x70\x62\x77\x20\x61\x64\x64\x20\x45\x72\x72\x2e" "\n"
@@ -319,85 +319,84 @@
 ZPB_NEW_ERROR);printf(
 "\x70\x62\x3a\x52\x65\x63\x76\x20\x41\x74\x20\x53\x63\x70\x62\x77\x20\x6d\x6f\x64\x69\x66\x79\x20\x65\x72\x72\x2e" "\n"
 );}VOID pb_AsctoHex(UINT16*pcHex,SINT32 iDstLen,UINT8 const*pcASC,SINT32 iSrcLen
-){UINT32 iOddOrEven=(0x242b+203-0x24f6);UINT8 iTemp=(0x248+9200-0x2638);SINT32 i
-=(0xd4+1195-0x57f);if((NULL==pcHex)||(NULL==pcASC)||((0xaf8+1045-0xf0d)==iDstLen
-)||(iDstLen<(iSrcLen/(0x737+1363-0xc88)+(0x122f+4475-0x23a9)))){return;}for(i=
-(0xee6+866-0x1248);i<iSrcLen;i++){if(iOddOrEven%(0xaf+6673-0x1abe)==
-(0x20f+8817-0x2480)){iTemp=*(pcASC+i);if((iTemp>=((char)(0x2cc+4621-0x14a9)))&&(
-iTemp<=((char)(0x14f3+1262-0x19a8)))){*(pcHex+i/(0x201c+207-0x20e9))|=(UINT8)(
-iTemp-(0x12fc+4806-0x2592))<<(0x1ab5+1590-0x20e7);}else{*(pcHex+i/
-(0x1be0+1747-0x22b1))|=(UINT8)(iTemp-(0xb60+2977-0x16ca))<<(0x2bf+7304-0x1f43);}
-}else{iTemp=*(pcASC+i);if((iTemp>=((char)(0x571+3389-0x127e)))&&(iTemp<=
-((char)(0x108f+115-0x10c9)))){*(pcHex+i/(0x71a+3454-0x1496))|=iTemp-
-(0xd5c+6419-0x263f);}else{*(pcHex+i/(0xed2+3688-0x1d38))|=iTemp-
-(0x1892+3406-0x25a9);}}iOddOrEven++;}}SINT32 atPb_IfUcs2IsSMS7(UINT16*psUcs2,
-SINT32 iLength){int iRetVal=(0x1254+212-0x1327);char cTemp;int i=
-(0xaa1+3702-0x1917);if(NULL==psUcs2){return-(0x10d2+832-0x1411);}for(i=
-(0xb27+5158-0x1f4d);i<iLength;i++){if((0x11a+2148-0x87e)>psUcs2[i]){switch(
-psUcs2[i]){case(0x1a7b+653-0x1cfc):case(0x13ac+1612-0x199d):case
-(0x118+3180-0xd28):case(0x1d43+2041-0x24df):case(0x7e2+2374-0x10ca):case
-(0x484+8253-0x2446):case(0xb44+5153-0x1ee9):case(0xb8a+2849-0x162e):case
-(0x49b+3102-0x103b):case(0x5aa+1265-0x9f7):case(0x1527+524-0x1713):{break;}
-default:{cTemp=(char)G_ZPB_NEWUCS2TOGSM[psUcs2[i]];if(ZPB_NON_GSM==cTemp){
-iRetVal=(0x480+4883-0x1793);}break;}}}else{switch(psUcs2[i]){case
-(0xa7d+2296-0xfe1):case(0x3af+3037-0xbe6):case(0x1963+3335-0x22d7):case
-(0x933+3417-0x12f1):case(0x61a+1016-0x669):case(0x45b+2221-0x968):case
-(0x15cf+68-0x124b):case(0x4f3+2019-0x933):case(0xd34+1683-0x100f):case
-(0xdb3+4700-0x1c71):{break;}default:{iRetVal=(0x7ac+6568-0x2154);break;}}}if(
-(0x4b8+6625-0x1e99)==iRetVal){break;}}return iRetVal;}static UINT8 
-atPb_EncodeNameToUcs2(char*pbDst,UINT32 iDstLen,char const*pbSrc){UINT16 acHex[
-(0x488+8039-0x22ef)]={(0x2fd+1881-0xa56)};SINT32 srclen=(0x468+1882-0xbc2);
-SINT32 rest=(0xd0+436-0x284);assert(pbDst!=NULL&&pbSrc!=NULL);srclen=(SINT32)
-strlen(pbSrc);slog(PB_PRINT,SLOG_DEBUG,
+){UINT32 iOddOrEven=(0x1bc8+2420-0x253c);UINT8 iTemp=(0xca9+150-0xd3f);SINT32 i=
+(0x1a7b+1445-0x2020);if((NULL==pcHex)||(NULL==pcASC)||((0x5ca+5548-0x1b76)==
+iDstLen)||(iDstLen<(iSrcLen/(0x3cf+5937-0x1afe)+(0x900+5254-0x1d85)))){return;}
+for(i=(0x994+2957-0x1521);i<iSrcLen;i++){if(iOddOrEven%(0x50d+4090-0x1505)==
+(0x7cf+5583-0x1d9e)){iTemp=*(pcASC+i);if((iTemp>=((char)(0x1397+2639-0x1db6)))&&
+(iTemp<=((char)(0x120+1321-0x610)))){*(pcHex+i/(0x9b3+1014-0xda7))|=(UINT8)(
+iTemp-(0x868+5942-0x1f6e))<<(0x12c8+2633-0x1d0d);}else{*(pcHex+i/
+(0x18b+4338-0x127b))|=(UINT8)(iTemp-(0xc81+1139-0x10bd))<<(0x9c+6807-0x1b2f);}}
+else{iTemp=*(pcASC+i);if((iTemp>=((char)(0x1312+1277-0x17df)))&&(iTemp<=
+((char)(0xa5f+2109-0x1263)))){*(pcHex+i/(0x489+139-0x512))|=iTemp-
+(0xab1+1428-0x1015);}else{*(pcHex+i/(0x1ab1+397-0x1c3c))|=iTemp-
+(0xbf+6619-0x1a63);}}iOddOrEven++;}}SINT32 atPb_IfUcs2IsSMS7(UINT16*psUcs2,
+SINT32 iLength){int iRetVal=(0xd56+2847-0x1874);char cTemp;int i=
+(0x1adc+338-0x1c2e);if(NULL==psUcs2){return-(0x568+288-0x687);}for(i=
+(0x850+6082-0x2012);i<iLength;i++){if((0xeac+4281-0x1e65)>psUcs2[i]){switch(
+psUcs2[i]){case(0x5f2+680-0x88e):case(0x799+386-0x8c0):case(0x7da+4620-0x198a):
+case(0x1e78+2215-0x26c2):case(0x48b+8651-0x25f8):case(0x7e8+1104-0xbbd):case
+(0x2126+1097-0x24f3):case(0x1aa7+2060-0x2236):case(0x1fa0+1578-0x254c):case
+(0x1b3f+2077-0x22b8):case(0xb9b+4002-0x1b1d):{break;}default:{cTemp=(char)
+G_ZPB_NEWUCS2TOGSM[psUcs2[i]];if(ZPB_NON_GSM==cTemp){iRetVal=(0x302+5552-0x18b2)
+;}break;}}}else{switch(psUcs2[i]){case(0x1c0c+929-0x1c19):case
+(0x14db+4867-0x2438):case(0x20d3+198-0x1e06):case(0x53f+4340-0x1298):case
+(0x615+2380-0xbb8):case(0x1d62+70-0x1a08):case(0x78f+5955-0x1b0a):case
+(0xe40+3577-0x1896):case(0x1e90+599-0x1d2f):case(0x3d5+3910-0xf7d):{break;}
+default:{iRetVal=(0x812+3262-0x14d0);break;}}}if((0xd03+5694-0x2341)==iRetVal){
+break;}}return iRetVal;}static UINT8 atPb_EncodeNameToUcs2(char*pbDst,UINT32 
+iDstLen,char const*pbSrc){UINT16 acHex[(0x108b+527-0x119a)]={(0x4ea+6352-0x1dba)
+};SINT32 srclen=(0xe67+6101-0x263c);SINT32 rest=(0x2307+575-0x2546);assert(pbDst
+!=NULL&&pbSrc!=NULL);srclen=(SINT32)strlen(pbSrc);slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x61\x74\x50\x62\x5f\x45\x6e\x63\x6f\x64\x65\x4e\x61\x6d\x65\x54\x6f\x55\x63\x73\x32\x20\x69\x6e\x70\x75\x74\x20\x70\x73\x53\x72\x63\x3d\x25\x73\x2c\x69\x53\x72\x63\x4c\x65\x6e\x3d\x25\x64" "\n"
-,pbSrc,srclen);pb_AsctoHex(acHex,(0x1535+237-0x1522),(UINT8*)pbSrc,srclen);rest=
-atPb_IfUcs2IsSMS7(acHex,srclen/(0x249+1015-0x63c));if(rest==(0x748+7650-0x2529))
-{return atPb_EncodeText(pbDst,pbSrc,iDstLen);}else if(rest==(0x1740+337-0x1891))
-{if(strlen(pbSrc)+(0x317+5611-0x1900)<iDstLen){memcpy(pbDst,"\x38\x30",
-(0x30c+677-0x5af));memcpy(pbDst+(0x15a5+4200-0x260b),pbSrc,srclen);return 
-ZUFI_SUCC;}}return ZUFI_FAIL;}SINT32 atPb_FindIdleIndex(T_zPb_WebContact const*
-pbRecv,BOOL pbNewFlag){SINT32 count=(0x6b1+2336-0xfd0);SINT32 total=
-(0x1e88+1188-0x232c);SINT32*IndexType=NULL;if((NULL==pbRecv)){slog(PB_PRINT,
+,pbSrc,srclen);pb_AsctoHex(acHex,(0xa24+144-0x9b4),(UINT8*)pbSrc,srclen);rest=
+atPb_IfUcs2IsSMS7(acHex,srclen/(0xb74+6339-0x2433));if(rest==(0x787+7120-0x2356)
+){return atPb_EncodeText(pbDst,pbSrc,iDstLen);}else if(rest==
+(0x1c75+2134-0x24cb)){if(strlen(pbSrc)+(0x2fc+8481-0x241b)<iDstLen){memcpy(pbDst
+,"\x38\x30",(0x1b19+2361-0x2450));memcpy(pbDst+(0xd3+8109-0x207e),pbSrc,srclen);
+return ZUFI_SUCC;}}return ZUFI_FAIL;}SINT32 atPb_FindIdleIndex(T_zPb_WebContact 
+const*pbRecv,BOOL pbNewFlag){SINT32 count=(0x1814+67-0x1856);SINT32 total=
+(0xf55+5590-0x252b);SINT32*IndexType=NULL;if((NULL==pbRecv)){slog(PB_PRINT,
 SLOG_ERR,
 "\x70\x62\x3a\x66\x69\x6e\x64\x5f\x70\x62\x6d\x5f\x69\x6e\x64\x65\x78\x3a\x74\x68\x65\x20\x70\x61\x72\x61\x20\x6f\x66\x20\x66\x69\x6e\x64\x5f\x70\x62\x6d\x5f\x69\x6e\x64\x65\x78\x20\x61\x72\x65\x20\x4e\x55\x4c\x4c" "\n"
-);return-(0x272+3578-0x106b);}if(TRUE==pbNewFlag){if(ZPB_LOCATION_USIM==pbRecv->
-pbLocation){total=g_zPb_SimIndex[(0xe94+5997-0x2601)];IndexType=g_zPb_SimIndex;}
+);return-(0x975+884-0xce8);}if(TRUE==pbNewFlag){if(ZPB_LOCATION_USIM==pbRecv->
+pbLocation){total=g_zPb_SimIndex[(0x43+2176-0x8c3)];IndexType=g_zPb_SimIndex;}
 else if(ZPB_LOCATION_AP==pbRecv->pbLocation){total=g_zPb_ApIndex[
-(0xa0c+1571-0x102f)];IndexType=g_zPb_ApIndex;}for(;count<=total;count++){if((
+(0x1063+1120-0x14c3)];IndexType=g_zPb_ApIndex;}for(;count<=total;count++){if((
 NULL!=IndexType)&&(IndexType[count]==PBM_ERROR_NOT_FOUND)){break;}}if(count>
 total){slog(PB_PRINT,SLOG_ERR,
 "\x70\x62\x3a\x66\x69\x6e\x64\x5f\x70\x62\x6d\x5f\x69\x6e\x64\x65\x78\x3a\x63\x61\x6e\x20\x6e\x6f\x74\x20\x66\x69\x6e\x64\x20\x69\x6e\x64\x65\x78\x5f\x69\x64\x2c\x69\x6e\x64\x65\x78\x5f\x69\x64\x3d\x25\x64" "\n" "\x2e"
-,count);return-(0x1569+199-0x162f);}slog(PB_PRINT,SLOG_DEBUG,
+,count);return-(0x12a+1421-0x6b6);}slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x66\x69\x6e\x64\x5f\x70\x62\x6d\x5f\x69\x6e\x64\x65\x78\x3a\x20\x69\x6e\x64\x65\x78\x5f\x69\x64\x3d\x25\x64\x2c\x20\x74\x6f\x74\x61\x6c\x20\x69\x73\x20\x25\x64" "\n"
 ,count,total);return count;}else{return pbRecv->pbIndex;}}BOOL atPb_GetASCII(
-CHAR*pSrc,CHAR*pDst,SINT32 len){SINT32 j=(0xd+701-0x2ca);SINT32 i=
-(0x1ce7+795-0x2002);CHAR buf[ZPB_TEXT_SIZE_BYTES]={(0x251+543-0x470)};CHAR str[
-(0xc5b+4915-0x1f8b)]={(0x8fd+6813-0x239a)};SINT32 length=(0x11c7+2679-0x1c3e);
-length=atPb_String2Bytes(pSrc,buf,len);for(i=(0xda2+1104-0x11f2);i<length;i+=
-(0x10f8+1070-0x1524)){if(buf[i]!=(0x2516+163-0x25b9)||buf[i+(0x13af+682-0x1658)]
->(0x2c4+8290-0x22a7)){return FALSE;}pDst[j++]=buf[i+(0x19a+5973-0x18ee)];}return
- TRUE;}VOID atWeb_AddOrModOnePbUsim(T_zPb_WebContact*pWebPbContact,BOOL 
-pbNewFlag,sem_t semId){int atRes=(0xbb9+6105-0x2392);CHAR pbName[
-ZPB_TEXT_SIZE_BYTES+(0xbe6+6904-0x26db)]={(0x128c+1668-0x1910)};CHAR buf_src[
-ZPB_TEXT_SIZE_BYTES+(0x17bb+1763-0x1e9b)]={(0x266+6377-0x1b4f)};CHAR buf_dest[
-ZPB_TEXT_SIZE_BYTES+(0xbaf+2405-0x1511)]={(0x1b41+340-0x1c95)};T_zPb_ScpbwParam 
-scpbwParam={(0x2e5+3663-0x1134)};int len=(0x1165+4095-0x2164);atPb_WebRecodeShow
-(pWebPbContact);if(atPb_GetASCII(pWebPbContact->name,pbName,strlen(pWebPbContact
-->name))){scpbwParam.coding=(0xea1+5115-0x229c);}else{len=atPb_String2Bytes(
-pWebPbContact->name,buf_src,strlen(pWebPbContact->name));len=
-atpb_CvtUcs2ToAlphaField(buf_src,len,buf_dest);atPb_Bytes2String(buf_dest,pbName
-,len);scpbwParam.coding=(0x1e0a+627-0x207c);}scpbwParam.pbIndex=pWebPbContact->
-pbIndex;strncpy(scpbwParam.name,pbName,sizeof(scpbwParam.name)-
-(0x11a8+2358-0x1add));strncpy(scpbwParam.mobilNumber,pWebPbContact->mobilNumber,
-sizeof(scpbwParam.mobilNumber)-(0x22a4+109-0x2310));strncpy(scpbwParam.
-officeNumber,pWebPbContact->officeNumber,sizeof(scpbwParam.officeNumber)-
-(0x9bf+6627-0x23a1));strncpy(scpbwParam.homeNumber,pWebPbContact->homeNumber,
-sizeof(scpbwParam.homeNumber)-(0x2fa+257-0x3fa));strncpy(scpbwParam.email,
-pWebPbContact->email,sizeof(scpbwParam.email)-(0xbc8+2397-0x1524));
-ipc_send_message(MODULE_ID_PB,MODULE_ID_AT_CTL,MSG_CMD_ADD_MODIFY_PB_REQ,sizeof(
-T_zPb_ScpbwParam),(unsigned char*)&scpbwParam,(0x425+6434-0x1d47));sem_wait(&
-g_Pb_sem_id);if(g_PbOptRsp.result!=(0xeb4+3345-0x1bc4)){(VOID)sc_cfg_set(
-ZPB_NV_WRITE_FLAG,ZPB_NEW_ERROR);if(TRUE==pbNewFlag){printf(
+CHAR*pSrc,CHAR*pDst,SINT32 len){SINT32 j=(0x16f0+666-0x198a);SINT32 i=
+(0x1793+3123-0x23c6);CHAR buf[ZPB_TEXT_SIZE_BYTES]={(0xc4d+101-0xcb2)};CHAR str[
+(0xa6+7159-0x1c9a)]={(0x12a9+4756-0x253d)};SINT32 length=(0x201a+900-0x239e);
+length=atPb_String2Bytes(pSrc,buf,len);for(i=(0x543+7399-0x222a);i<length;i+=
+(0xc0+3578-0xeb8)){if(buf[i]!=(0x3cb+2983-0xf72)||buf[i+(0x15e1+97-0x1641)]>
+(0x3df+2303-0xc5f)){return FALSE;}pDst[j++]=buf[i+(0xc99+2031-0x1487)];}return 
+TRUE;}VOID atWeb_AddOrModOnePbUsim(T_zPb_WebContact*pWebPbContact,BOOL pbNewFlag
+,sem_t semId){int atRes=(0x284+3749-0x1129);CHAR pbName[ZPB_TEXT_SIZE_BYTES+
+(0x355+5089-0x1733)]={(0x4a4+4021-0x1459)};CHAR buf_src[ZPB_TEXT_SIZE_BYTES+
+(0x733+6799-0x21bf)]={(0x73d+4583-0x1924)};CHAR buf_dest[ZPB_TEXT_SIZE_BYTES+
+(0x2441+355-0x25a1)]={(0x1db+1165-0x668)};T_zPb_ScpbwParam scpbwParam={
+(0x223+596-0x477)};int len=(0x640+7965-0x255d);atPb_WebRecodeShow(pWebPbContact)
+;if(atPb_GetASCII(pWebPbContact->name,pbName,strlen(pWebPbContact->name))){
+scpbwParam.coding=(0x985+6081-0x2146);}else{len=atPb_String2Bytes(pWebPbContact
+->name,buf_src,strlen(pWebPbContact->name));len=atpb_CvtUcs2ToAlphaField(buf_src
+,len,buf_dest);atPb_Bytes2String(buf_dest,pbName,len);scpbwParam.coding=
+(0xd85+4476-0x1f00);}scpbwParam.pbIndex=pWebPbContact->pbIndex;strncpy(
+scpbwParam.name,pbName,sizeof(scpbwParam.name)-(0x52c+1275-0xa26));strncpy(
+scpbwParam.mobilNumber,pWebPbContact->mobilNumber,sizeof(scpbwParam.mobilNumber)
+-(0x145b+358-0x15c0));strncpy(scpbwParam.officeNumber,pWebPbContact->
+officeNumber,sizeof(scpbwParam.officeNumber)-(0xb8+7279-0x1d26));strncpy(
+scpbwParam.homeNumber,pWebPbContact->homeNumber,sizeof(scpbwParam.homeNumber)-
+(0xd69+6101-0x253d));strncpy(scpbwParam.email,pWebPbContact->email,sizeof(
+scpbwParam.email)-(0xdc1+2816-0x18c0));ipc_send_message(MODULE_ID_PB,
+MODULE_ID_AT_CTL,MSG_CMD_ADD_MODIFY_PB_REQ,sizeof(T_zPb_ScpbwParam),(unsigned 
+char*)&scpbwParam,(0x15b5+1136-0x1a25));sem_wait(&g_Pb_sem_id);if(g_PbOptRsp.
+result!=(0xb9d+6124-0x2388)){(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_NEW_ERROR);
+if(TRUE==pbNewFlag){printf(
 "\x70\x62\x3a\x61\x64\x64\x20\x53\x63\x70\x62\x77\x20\x65\x72\x72\x6f\x72\x2e" "\n"
 );}else{printf(
 "\x70\x62\x3a\x6d\x6f\x64\x69\x66\x79\x20\x53\x63\x70\x62\x77\x20\x65\x72\x72\x6f\x72\x2e" "\n"
@@ -409,17 +408,17 @@
 );}else{(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_NEW_ERROR);printf(
 "\x70\x62\x3a\x57\x72\x69\x74\x65\x43\x6f\x6e\x74\x61\x63\x74\x54\x6f\x50\x62\x6d\x54\x61\x62\x6c\x65\x20\x65\x72\x72\x6f\x72\x2e" "\n"
 );}}VOID atWeb_AddOnePb(T_zPb_WebContact*webPbContact,sem_t semId){SINT32 
-idleIndex=(0xacf+1959-0x1275);T_zPb_Header pbHeader={(0xfcc+3140-0x1c10)};BOOL 
-pbNewFlag=FALSE;T_zPb_DelInfo delRecord={(0x152a+826-0x1864)};CHAR ptFlag[
-(0x159+2258-0xa17)]={(0x273+1776-0x963)};printf(
+idleIndex=(0x9a+6214-0x18df);T_zPb_Header pbHeader={(0x3f4+236-0x4e0)};BOOL 
+pbNewFlag=FALSE;T_zPb_DelInfo delRecord={(0x1e32+825-0x216b)};CHAR ptFlag[
+(0x1169+860-0x14b1)]={(0x144+71-0x18b)};printf(
 "\x5b\x50\x42\x5d\x20\x61\x74\x57\x65\x62\x5f\x41\x64\x64\x4f\x6e\x65\x50\x62\x2c\x20\x70\x62\x49\x64\x3d\x25\x64\x21" "\n"
-,webPbContact->pbId);if(-(0x123b+3143-0x1e81)==webPbContact->pbId){slog(PB_PRINT
-,SLOG_DEBUG,
+,webPbContact->pbId);if(-(0x56b+8279-0x25c1)==webPbContact->pbId){slog(PB_PRINT,
+SLOG_DEBUG,
 "\x70\x62\x3a\x61\x74\x57\x65\x62\x5f\x41\x64\x64\x4f\x6e\x65\x50\x62\x20\x6e\x65\x77\x2e" "\n"
 );pbNewFlag=TRUE;idleIndex=atPb_FindIdleIndex(webPbContact,pbNewFlag);printf(
 "\x5b\x50\x42\x5d\x20\x61\x74\x57\x65\x62\x5f\x41\x64\x64\x4f\x6e\x65\x50\x62\x20\x69\x64\x6c\x65\x49\x6e\x64\x65\x78\x3d\x25\x64\x2e" "\n"
-,idleIndex);if(idleIndex!=-(0xdff+2524-0x17da)){webPbContact->pbIndex=idleIndex;
-}else{(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_NEW_ERROR);printf(
+,idleIndex);if(idleIndex!=-(0x1616+2846-0x2133)){webPbContact->pbIndex=idleIndex
+;}else{(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_NEW_ERROR);printf(
 "\x5b\x50\x42\x5d\x20\x6d\x65\x6d\x6f\x72\x79\x20\x69\x73\x20\x66\x75\x6c\x6c\x2c\x20\x63\x61\x6e\x20\x6e\x6f\x74\x20\x61\x64\x64\x20\x72\x65\x63\x6f\x64\x65\x20\x61\x6e\x79\x20\x6d\x6f\x72\x65\x2e" "\n"
 );return;}}else{printf(
 "\x5b\x50\x42\x5d\x20\x61\x74\x57\x65\x62\x5f\x41\x64\x64\x4f\x6e\x65\x50\x62\x20\x6d\x6f\x64\x69\x66\x79\x2e" "\n"
@@ -437,28 +436,28 @@
 );(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_LOCATION_IS_NULL);}printf(
 "\x5b\x50\x42\x5d\x20\x61\x74\x57\x65\x62\x5f\x41\x64\x64\x4f\x6e\x65\x50\x62\x20\x64\x65\x6c\x5f\x69\x64\x3d\x25\x64\x2e" "\n"
 ,webPbContact->del_id);sc_cfg_get(ZPB_NV_WRITE_FLAG,ptFlag,sizeof(ptFlag));if(
-(0xcba+741-0xf9f)==strcmp("\x30",ptFlag)&&-(0x4c0+2114-0xd01)!=webPbContact->
-del_id){delRecord.delId[(0xea1+3487-0x1c40)]=webPbContact->del_id;atWeb_DelOnepb
+(0x140+2640-0xb90)==strcmp("\x30",ptFlag)&&-(0x105b+5299-0x250d)!=webPbContact->
+del_id){delRecord.delId[(0x331+5897-0x1a3a)]=webPbContact->del_id;atWeb_DelOnepb
 (&delRecord,semId);}}VOID atWeb_DelOnepb(T_zPb_DelInfo*delRecord,sem_t semId){
-CHAR errCode[ZSVR_AT_RES_CODE_LEN]={(0x1187+3440-0x1ef7)};int atRes=
-(0x1d2+9099-0x255d);SINT32 delTime=(0xcd+5339-0x15a8);
+CHAR errCode[ZSVR_AT_RES_CODE_LEN]={(0x9bd+545-0xbde)};int atRes=
+(0x230b+694-0x25c1);SINT32 delTime=(0x30b+5678-0x1939);
 atPb_GetLocationIndexForDel(delRecord,delTime);printf(
 "\x5b\x50\x42\x5d\x20\x64\x65\x6c\x5f\x61\x5f\x70\x62\x6d\x5f\x72\x65\x63\x6f\x72\x64\x2d\x2d\x64\x65\x6c\x20\x69\x6e\x64\x65\x78\x3d\x25\x64\x2c\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x3d\x25\x64" "\n"
-,delRecord->delIndex[(0x270+1503-0x84f)],delRecord->delLocation);if(
+,delRecord->delIndex[(0x18f1+3341-0x25fe)],delRecord->delLocation);if(
 ZPB_LOCATION_AP==delRecord->delLocation){if(ZPB_DB_OK==atPb_DelARecFromPbmTable(
 delRecord,delTime)){(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_OPERATE_SUC);printf(
 "\x5b\x50\x42\x5d\x20\x61\x74\x57\x65\x62\x5f\x44\x65\x6c\x4f\x6e\x65\x70\x62\x2d\x2d\x64\x65\x6c\x20\x41\x50\x20\x73\x75\x63\x63\x65\x73\x73" "\n"
 );return;}slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x3a\x64\x65\x6c\x5f\x61\x5f\x70\x62\x6d\x5f\x72\x65\x63\x6f\x72\x64\x3a\x72\x65\x6d\x6f\x76\x65\x20\x72\x65\x63\x20\x66\x72\x6f\x6d\x20\x70\x62\x6d\x20\x74\x61\x62\x6c\x65\x20\x66\x61\x69\x6c\x65\x64" "\n"
 );(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_DEL_ERROR);}else if(ZPB_LOCATION_USIM==
-delRecord->delLocation){CHAR pbMax[(0xa99+3411-0x17ba)]={(0x16bd+1288-0x1bc5)};
+delRecord->delLocation){CHAR pbMax[(0x179c+3424-0x24ca)]={(0x1d48+832-0x2088)};
 sc_cfg_get(ZPB_NV_USIMINDEXMAX,pbMax,sizeof(pbMax));if((delRecord->delIndex[
-(0x9b4+7376-0x2684)]>=(0x520+8087-0x24b6))&&(delRecord->delIndex[
-(0x186+340-0x2da)]<=atoi(pbMax))){ipc_send_message(MODULE_ID_PB,MODULE_ID_AT_CTL
-,MSG_CMD_DELETE_PB_REQ,sizeof(int),(unsigned char*)&delRecord->delIndex[
-(0x75c+922-0xaf6)],(0x1850+309-0x1985));sem_wait(&g_Pb_sem_id);if(g_PbOptRsp.
-result!=(0x1122+2341-0x1a46)){sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_DEL_ERROR);}
-sc_cfg_set(ZPB_NV_USIMMEMORYFULL,"\x6e\x6f");}if(ZPB_DB_OK==
+(0x1c6+4886-0x14dc)]>=(0x109f+4749-0x232b))&&(delRecord->delIndex[
+(0x8eb+5516-0x1e77)]<=atoi(pbMax))){ipc_send_message(MODULE_ID_PB,
+MODULE_ID_AT_CTL,MSG_CMD_DELETE_PB_REQ,sizeof(int),(unsigned char*)&delRecord->
+delIndex[(0x53+8138-0x201d)],(0x10b9+2020-0x189d));sem_wait(&g_Pb_sem_id);if(
+g_PbOptRsp.result!=(0x1701+461-0x18cd)){sc_cfg_set(ZPB_NV_WRITE_FLAG,
+ZPB_DEL_ERROR);}sc_cfg_set(ZPB_NV_USIMMEMORYFULL,"\x6e\x6f");}if(ZPB_DB_OK==
 atPb_DelARecFromPbmTable(delRecord,delTime)){(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,
 ZPB_OPERATE_SUC);printf(
 "\x5b\x50\x42\x5d\x20\x61\x74\x57\x65\x62\x5f\x44\x65\x6c\x4f\x6e\x65\x70\x62\x2d\x2d\x64\x65\x6c\x20\x53\x49\x4d\x20\x73\x75\x63\x63\x65\x73\x73" "\n"
@@ -467,9 +466,9 @@
 "\x70\x62\x3a\x64\x65\x6c\x5f\x61\x5f\x70\x62\x6d\x5f\x72\x65\x63\x6f\x72\x64\x3a\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x20\x69\x73\x20\x4e\x55\x4c\x4c" "\n"
 );(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_LOCATION_IS_NULL);}}VOID 
 atWeb_DelMultPb(T_zPb_DelInfo*delRecord,sem_t semId){CHAR errCode[
-ZSVR_AT_RES_CODE_LEN]={(0xa07+294-0xb2d)};int atRes=(0x191+6236-0x19ed);SINT32 
-delCount=(0xa03+1956-0x11a7);(VOID)sc_cfg_set(NV_PHO_DEL,"");memset(&
-g_zPb_DelStatusUsim,(0x868+2642-0x12ba),sizeof(T_zPb_DelStatusMultiOrAll));
+ZSVR_AT_RES_CODE_LEN]={(0x1349+3598-0x2157)};int atRes=(0xc46+5924-0x236a);
+SINT32 delCount=(0x993+2971-0x152e);(VOID)sc_cfg_set(NV_PHO_DEL,"");memset(&
+g_zPb_DelStatusUsim,(0x1594+2146-0x1df6),sizeof(T_zPb_DelStatusMultiOrAll));
 g_zPb_DelStatusUsim.dealFlag=ZPB_DEL_MULTI_RECORD_USIM;for(;delCount<delRecord->
 delTotal;delCount++){slog(PB_PRINT,SLOG_DEBUG,
 "\x70\x62\x33\x3a\x64\x65\x6c\x49\x64\x5b\x25\x64\x5d\x3d\x25\x64\x2c\x64\x65\x6c\x5f\x70\x62\x6d\x5f\x69\x6e\x64\x65\x78\x5b\x25\x64\x5d\x3d\x25\x64" "\n"
@@ -480,14 +479,14 @@
 "\x70\x62\x3a\x70\x62\x6d\x3a\x72\x65\x6d\x6f\x76\x65\x20\x74\x68\x65\x20\x69\x28\x25\x64\x29\x20\x72\x65\x63\x20\x66\x72\x6f\x6d\x20\x70\x62\x6d\x20\x74\x61\x62\x6c\x65\x20\x66\x61\x69\x6c\x65\x64" "\n"
 ,delCount);g_zPb_DelStatusUsim.dealFailNum++;continue;}g_zPb_DelStatusUsim.
 dealSuccNum++;}else if(ZPB_LOCATION_USIM==delRecord->delLocation){CHAR pbMax[
-(0x2084+1370-0x25ac)]={(0x179c+3782-0x2662)};sc_cfg_get(ZPB_NV_USIMINDEXMAX,
-pbMax,sizeof(pbMax));if((delRecord->delIndex[delCount]>=(0xb29+7029-0x269d))&&(
+(0x2bc+2155-0xaf5)]={(0x76+3209-0xcff)};sc_cfg_get(ZPB_NV_USIMINDEXMAX,pbMax,
+sizeof(pbMax));if((delRecord->delIndex[delCount]>=(0xcb8+4181-0x1d0c))&&(
 delRecord->delIndex[delCount]<=atoi(pbMax))){printf(
 "\x70\x62\x39\x3a\x61\x74\x57\x65\x62\x5f\x44\x65\x6c\x4d\x75\x6c\x74\x50\x62\x3a\x72\x65\x6d\x6f\x76\x65\x20\x74\x68\x65\x20\x69\x6e\x64\x65\x78\x28\x25\x64\x29\x20\x72\x65\x63\x20\x66\x72\x6f\x6d\x20\x70\x62\x6d\x20\x74\x61\x62\x6c\x65" "\n"
 ,delRecord->delIndex[delCount]);ipc_send_message(MODULE_ID_PB,MODULE_ID_AT_CTL,
 MSG_CMD_DELETE_PB_REQ,sizeof(int),(unsigned char*)&delRecord->delIndex[delCount]
-,(0x9e6+498-0xbd8));sem_wait(&g_Pb_sem_id);if(g_PbOptRsp.result!=
-(0x232d+246-0x2422)){g_zPb_DelStatusUsim.dealFailNum++;sc_cfg_set(
+,(0x1107+3863-0x201e));sem_wait(&g_Pb_sem_id);if(g_PbOptRsp.result!=
+(0xf3b+4758-0x21d0)){g_zPb_DelStatusUsim.dealFailNum++;sc_cfg_set(
 ZPB_NV_WRITE_FLAG,ZPB_DEL_ERROR);}else{g_zPb_DelStatusUsim.dealSuccNum++;
 sc_cfg_set(ZPB_NV_USIMMEMORYFULL,"\x6e\x6f");}}else{continue;}(VOID)
 atPb_DelSimRecFromPbTable(delRecord->delIndex[delCount]);}else{slog(PB_PRINT,
@@ -495,14 +494,14 @@
 "\x70\x62\x3a\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x20\x69\x73\x20\x4e\x55\x4c\x4c" "\n"
 );(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_LOCATION_IS_NULL);}}
 atPb_SetDelStatusMultOrAll();}T_zPb_DbResult atPb_DelRecByGroup(VOID){
-T_zPb_DbResult result=ZPB_DB_OK;T_zPb_ApIndex index={(0x25c+8500-0x2390)};SINT32
- i=(0x1091+4169-0x20d9);result=atPb_DelRecFromPbmTableByGroup(&index);if(
+T_zPb_DbResult result=ZPB_DB_OK;T_zPb_ApIndex index={(0x6cd+3273-0x1396)};SINT32
+ i=(0x430+3400-0x1177);result=atPb_DelRecFromPbmTableByGroup(&index);if(
 ZPB_DB_OK!=result){(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_DEL_ERROR);return 
 result;}(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_OPERATE_SUC);for(i=
-(0x849+3802-0x1722);i<=ZPB_AP_MAX_RECORD;i++){if((0xc1d+6553-0x25b6)!=index.
+(0x3f+9695-0x261d);i<=ZPB_AP_MAX_RECORD;i++){if((0xcb6+1250-0x1198)!=index.
 apIndex[i]){g_zPb_ApIndex[(index.apIndex[i])]=PBM_ERROR_NOT_FOUND;}}return 
 result;}VOID atPb_DelAllRecsSimDb(VOID){CHAR sql[ZPB_MAX_BYTES_DB]={
-(0xee2+3158-0x1b38)};snprintf(sql,sizeof(sql)-(0x7d7+523-0x9e1),
+(0x1d55+1107-0x21a8)};snprintf(sql,sizeof(sql)-(0x15db+2952-0x2162),
 "\x64\x65\x6c\x65\x74\x65\x20\x66\x72\x6f\x6d\x20\x25\x73\x20\x77\x68\x65\x72\x65\x20\x4c\x6f\x63\x61\x74\x69\x6f\x6e\x3d\x25\x64"
 ,ZPB_DB_PBM_TABLE,ZPB_LOCATION_USIM);if(ZPB_DB_OK==atPb_ExecDbSql(sql,NULL,NULL)
 ){atPb_ClearSimPbmIndexArray();if(ZPB_DB_OK!=atPb_ExecDbSql(
@@ -511,28 +510,28 @@
 );(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_DEL_ERROR);return;}(VOID)sc_cfg_set(
 ZPB_NV_WRITE_FLAG,ZPB_OPERATE_SUC);}else{(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,
 ZPB_DEL_ERROR);}}VOID atPb_DelAllRecsSim(T_zPb_DelInfo*pdelRecord,sem_t semId){
-CHAR errCode[ZSVR_AT_RES_CODE_LEN]={(0x19f+1382-0x705)};int atRes=
-(0x74+6425-0x198d);UINT32 i=(0x1e80+510-0x207e);CHAR sql[ZPB_MAX_BYTES_DB]={
-(0x7b0+2171-0x102b)};UINT32 count=(0xf9f+2723-0x1a42);if(pdelRecord!=NULL){
-memset(&g_zPb_DelStatusUsim,(0x1032+5454-0x2580),sizeof(
-T_zPb_DelStatusMultiOrAll));g_zPb_DelStatusUsim.dealFlag=ZPB_DEL_ALL_RECORD_USIM
-;snprintf(sql,sizeof(sql)-(0xb97+3106-0x17b8),
+CHAR errCode[ZSVR_AT_RES_CODE_LEN]={(0x2011+1-0x2012)};int atRes=
+(0xf48+3144-0x1b90);UINT32 i=(0x1d61+1865-0x24aa);CHAR sql[ZPB_MAX_BYTES_DB]={
+(0x12b6+2281-0x1b9f)};UINT32 count=(0xdab+3843-0x1cae);if(pdelRecord!=NULL){
+memset(&g_zPb_DelStatusUsim,(0x22a9+975-0x2678),sizeof(T_zPb_DelStatusMultiOrAll
+));g_zPb_DelStatusUsim.dealFlag=ZPB_DEL_ALL_RECORD_USIM;snprintf(sql,sizeof(sql)
+-(0xc12+1442-0x11b3),
 "\x73\x65\x6c\x65\x63\x74\x20\x63\x6f\x75\x6e\x74\x28\x2a\x29\x20\x66\x72\x6f\x6d\x20\x25\x73\x20\x77\x68\x65\x72\x65\x20\x4c\x6f\x63\x61\x74\x69\x6f\x6e\x3d\x25\x64"
 ,ZPB_DB_PBM_TABLE,ZPB_LOCATION_USIM);(VOID)atPb_ExecDbSql(sql,
-atPb_DbCountTableLineCb,&count);if((0x155+80-0x1a5)<count){CHAR pbMin[
-(0xc49+307-0xd4a)]={(0x1144+3784-0x200c)};CHAR pbMax[(0x12e7+4088-0x22ad)]={
-(0x2d9+7839-0x2178)};UINT32 i_pbMin=(0xd14+316-0xe50);UINT32 i_pbMax=
-(0x1f9+2023-0x9e0);sc_cfg_get(ZPB_NV_USIMINDEXMIN,pbMin,sizeof(pbMin));
+atPb_DbCountTableLineCb,&count);if((0x56c+5884-0x1c68)<count){CHAR pbMin[
+(0x167+7210-0x1d5f)]={(0xf3a+4862-0x2238)};CHAR pbMax[(0x1ee0+1820-0x25ca)]={
+(0x1599+2544-0x1f89)};UINT32 i_pbMin=(0x25a7+260-0x26ab);UINT32 i_pbMax=
+(0xcc8+5545-0x2271);sc_cfg_get(ZPB_NV_USIMINDEXMIN,pbMin,sizeof(pbMin));
 sc_cfg_get(ZPB_NV_USIMINDEXMAX,pbMax,sizeof(pbMax));i_pbMin=atoi(pbMin);i_pbMax=
 atoi(pbMax);if(i_pbMin>ZPB_SIM_MAX_RECORD||i_pbMax>ZPB_SIM_MAX_RECORD){printf(
 "\x5b\x50\x42\x5d\x20\x61\x74\x50\x62\x5f\x44\x65\x6c\x41\x6c\x6c\x52\x65\x63\x73\x53\x69\x6d\x20\x73\x69\x6d\x20\x69\x6e\x64\x65\x78\x20\x74\x6f\x6f\x20\x6c\x61\x72\x67\x65" "\n"
 );return;}for(i=i_pbMin;i<=i_pbMax;i++){ipc_send_message(MODULE_ID_PB,
 MODULE_ID_AT_CTL,MSG_CMD_DELETE_PB_REQ,sizeof(int),(unsigned char*)&i,
-(0xe0+8110-0x208e));sem_wait(&g_Pb_sem_id);if(g_PbOptRsp.result!=
-(0x954+4250-0x19ed)){g_zPb_DelStatusUsim.dealFailNum++;sc_cfg_set(
+(0xaef+6524-0x246b));sem_wait(&g_Pb_sem_id);if(g_PbOptRsp.result!=
+(0x4ea+7613-0x22a6)){g_zPb_DelStatusUsim.dealFailNum++;sc_cfg_set(
 ZPB_NV_WRITE_FLAG,ZPB_DEL_ERROR);}else{g_zPb_DelStatusUsim.dealSuccNum++;
 sc_cfg_set(ZPB_NV_USIMMEMORYFULL,"\x6e\x6f");}}snprintf(sql,sizeof(sql)-
-(0x13c8+171-0x1472),
+(0x1e10+875-0x217a),
 "\x64\x65\x6c\x65\x74\x65\x20\x66\x72\x6f\x6d\x20\x25\x73\x20\x77\x68\x65\x72\x65\x20\x4c\x6f\x63\x61\x74\x69\x6f\x6e\x3d\x25\x64"
 ,ZPB_DB_PBM_TABLE,ZPB_LOCATION_USIM);if(ZPB_DB_OK==atPb_ExecDbSql(sql,NULL,NULL)
 ){(VOID)sc_cfg_set(ZPB_NV_WRITE_FLAG,ZPB_OPERATE_SUC);atPb_ClearSimPbmIndexArray
diff --git a/ap/app/zte_comm/rtc-service/rtc-service.c b/ap/app/zte_comm/rtc-service/rtc-service.c
index c5baf65..481c550 100755
--- a/ap/app/zte_comm/rtc-service/rtc-service.c
+++ b/ap/app/zte_comm/rtc-service/rtc-service.c
@@ -364,6 +364,26 @@
 }
 
 /********************************************
+ * ¹¦ÄÜ:sntpͬ²½ÏµÍ³Ê±¼ä
+ *******************************************/
+static int handle_sntp_update(MSG_BUF *pmsg_buf)
+{
+    time_t os_time = 0;
+	struct timeval time_tv = {0};
+	int ret = 0;
+
+	memcpy(&os_time, pmsg_buf->aucDataBuf, sizeof(time_t));
+
+	time_tv.tv_sec = os_time;
+	ret = settimeofday(&time_tv,NULL);
+	if(ret!=0)
+	{
+		slog(RTC_PRINT, SLOG_ERR, "handle_sntp_update is fail,ret:%d \n",ret);
+	}
+	return 0;
+}
+
+/********************************************
  * ¹¦ÄÜ:Ôö¼Ó¶¨Ê±Æ÷
  *******************************************/
 static int handle_alarm_add(MSG_BUF *pmsg_buf)
@@ -908,6 +928,9 @@
 		handle_set_time(pmsg_buf);
 		update_alarm();
 		break;
+	case RTC_MSG_SNTP_UPDATE:
+		handle_sntp_update(pmsg_buf);
+		break;
 	case RTC_MSG_ADD_ALARM:
 		slog(RTC_PRINT, SLOG_NORMAL, "rtc-service: process_msg RTC_MSG_ADD_ALARM, src:0x%x, g_clean_flag = %d.\n", pmsg_buf->src_id, g_clean_flag);
 		//Ìí¼ÓrtcǰÏÈɾ³ý´Ërtc_idÒÑÌí¼Ó¼Ç¼£¬Ã¿¸örtc_idÖ»±£Áô1¸ö¶¨Ê±Æ÷
diff --git a/ap/app/zte_comm/sms/src/sms_code.c b/ap/app/zte_comm/sms/src/sms_code.c
index 839727c..2ab9505 100755
--- a/ap/app/zte_comm/sms/src/sms_code.c
+++ b/ap/app/zte_comm/sms/src/sms_code.c
@@ -6,665 +6,661 @@
 #ifdef WIN32

 #include <wchar.h>

 #endif

-#define     NON_GSM                         (0xb6c+1270-0x1042)

+#define     NON_GSM                         (0x15e1+2196-0x1e55)

 #define     NON_GSM_P                       NON_GSM

 extern T_zUfiSms_ConcatInfo g_zUfiSms_ConcatSms;static const wms_udh_s_type*
-const_header;char g_zUfiSms_DigAscMap[(0x162+23-0x169)]={
-((char)(0x1780+3113-0x2379)),((char)(0x7d8+7672-0x259f)),
-((char)(0x44a+611-0x67b)),((char)(0xd21+4838-0x1fd4)),((char)(0x53+4610-0x1221))
-,((char)(0x150+3370-0xe45)),((char)(0xb4c+2922-0x1680)),
-((char)(0xbd7+5814-0x2256)),((char)(0x168+6324-0x19e4)),
-((char)(0x11fc+1867-0x190e)),((char)(0x13b5+1010-0x1766)),
-((char)(0x633+7438-0x22ff)),((char)(0x72a+4789-0x199c)),
-((char)(0xa81+4746-0x1cc7)),((char)(0x14c9+3707-0x22ff)),
-((char)(0x1c08+1817-0x22db))};extern SMS_PARAM g_zUfiSms_SendingSms;extern 
-UINT16 g_zUfiSms_IsLanguageShift;extern int g_zUfiSms_Language;static int 
-SerializeNumbers_sms(const char*pSrc,char*pDst,int nSrcLength);const unsigned 
-short g_zUfiSms_AsciiToGsmdefaultTable[]={((char)(0xc56+6295-0x24cd)),
-((char)(0xbb6+634-0xe10)),((char)(0x1d77+1144-0x21cf)),
-((char)(0x8d5+3508-0x1669)),((char)(0x18f6+2343-0x21fd)),
-((char)(0x1416+3723-0x2281)),((char)(0x1994+2527-0x2353)),
-((char)(0x406+5283-0x1889)),((char)(0x664+3908-0x1588)),
-((char)(0xe22+3845-0x1d07)),((char)(0xdb4+5057-0x2155)),((char)(0x568+26-0x562))
-,((char)(0x1073+646-0x12d9)),((char)(0x1845+1441-0x1dc6)),
-((char)(0x1d0c+1949-0x2489)),((char)(0x2ca+2716-0xd46)),
-((char)(0x18a6+3091-0x2499)),((char)(0xb4d+6907-0x2628)),
-((char)(0xaa2+2784-0x1562)),((char)(0x1a8a+2633-0x24b3)),
-((char)(0x13b2+4822-0x2668)),((char)(0x1f6+4060-0x11b2)),
-((char)(0x1320+2412-0x1c6c)),((char)(0x19f1+1022-0x1dcf)),
-((char)(0x133+818-0x445)),((char)(0x603+3856-0x14f3)),
-((char)(0xa9b+2252-0x1347)),((char)(0x1b67+302-0x1c75)),
-((char)(0x10f5+2968-0x1c6d)),((char)(0x6a1+6988-0x21cd)),
-((char)(0x9d+3114-0xca7)),((char)(0x90f+5673-0x1f18)),
-((char)(0x1187+3364-0x1e8b)),((char)(0xb1c+5189-0x1f40)),(0x7d8+5942-0x1eec),
-((char)(0xa61+6590-0x23fc)),(0xc94+962-0x1054),((char)(0x1112+147-0x1180)),
-((char)(0x673+8345-0x26e6)),(0x1379+361-0x14bb),((char)(0xf35+6104-0x26e5)),
-((char)(0x2510+326-0x262d)),((char)(0xea6+6017-0x25fd)),
-((char)(0x1455+1527-0x1a21)),((char)(0xfc5+1956-0x173d)),
-((char)(0x1057+993-0x140b)),((char)(0x1089+4903-0x2382)),
-((char)(0xd81+4789-0x2007)),((char)(0x1d3+573-0x3e0)),((char)(0x45b+543-0x649)),
-((char)(0x189+1749-0x82c)),((char)(0xd65+1739-0x13fd)),
-((char)(0x18f5+975-0x1c90)),((char)(0x844+7132-0x23eb)),
-((char)(0xe5+4494-0x123d)),((char)(0x496+8664-0x2637)),
-((char)(0x1f0+3500-0xf64)),((char)(0x12d+195-0x1b7)),((char)(0x49d+4088-0x145b))
-,((char)(0x2e1+6320-0x1b56)),((char)(0xb8d+6248-0x23b9)),
-((char)(0x1098+1693-0x16f8)),((char)(0x1490+2377-0x1d9b)),
-((char)(0x1705+462-0x1894)),(0x187+6867-0x1c5a),((char)(0x147d+4761-0x26d5)),
-((char)(0x5f5+2612-0xfe7)),((char)(0x1abb+2447-0x2407)),
-((char)(0xb87+1836-0x126f)),((char)(0x135f+2644-0x1d6e)),
-((char)(0x38b+1531-0x940)),((char)(0xb0+7435-0x1d74)),
-((char)(0xa29+2966-0x1577)),((char)(0x1adf+3122-0x26c8)),
-((char)(0x1a59+2623-0x244e)),((char)(0x8f7+7149-0x2499)),
-((char)(0x1d14+39-0x1cef)),((char)(0x383+1624-0x98e)),
-((char)(0x1a3c+110-0x1a5c)),((char)(0x1da9+244-0x1e4e)),
-((char)(0x1c28+358-0x1d3e)),((char)(0x128+2017-0x8b8)),
-((char)(0xa86+1412-0xfb8)),((char)(0x122b+474-0x13b2)),
-((char)(0xa26+6503-0x2339)),((char)(0x16a5+88-0x16a8)),
-((char)(0x168a+3988-0x25c8)),((char)(0x95c+3895-0x183c)),
-((char)(0x4cc+5988-0x1bd8)),((char)(0xac3+2237-0x1327)),
-((char)(0x836+7209-0x2405)),6972,(0x2527+2676-0x146c),(0x1f46+5421-0x1935),
-(0x1bb2+8004-0x1fe2),(0x91b+858-0xc64),((char)(0x184d+238-0x191b)),
-((char)(0x7ab+7239-0x2391)),((char)(0x21f0+1106-0x25e0)),
-((char)(0x567+6831-0x1fb3)),((char)(0x135c+3572-0x20ec)),
-((char)(0x1a4f+3165-0x2647)),((char)(0x4ac+3196-0x10c2)),
-((char)(0xb19+4576-0x1c92)),((char)(0x135+4159-0x110c)),
-((char)(0x11c8+1057-0x1580)),((char)(0x639+7042-0x2151)),
-((char)(0x177f+120-0x178c)),((char)(0xc5c+788-0xf04)),
-((char)(0x3e8+3295-0x105a)),((char)(0x1114+4056-0x207e)),
-((char)(0x16c4+392-0x17dd)),((char)(0x382+7190-0x1f28)),
-((char)(0x18ab+1002-0x1c24)),((char)(0xaf6+5605-0x2069)),
-((char)(0x314+5708-0x18ed)),((char)(0xe7b+6347-0x26d2)),
-((char)(0x1c06+2435-0x2514)),((char)(0x325+2537-0xc98)),
-((char)(0x2b9+5709-0x188f)),((char)(0x1017+1457-0x1550)),
-((char)(0x46f+1557-0xa0b)),((char)(0x142+961-0x489)),(0x2375+4987-0x1bc8),
-(0x1c52+114-0x184),(0x1d23+5167-0x1629),(0x25c7+3007-0x1649),
-((char)(0x1573+749-0x1840)),((char)(0x1a53+1211-0x1eee)),
-((char)(0xaa+2037-0x87f)),((char)(0xe2c+2478-0x17ba)),
-((char)(0x170a+127-0x1769)),((char)(0x1369+3726-0x21d7)),
-((char)(0x1ea+4964-0x152e)),((char)(0x5cd+140-0x639)),
-((char)(0x3f0+4979-0x1743)),((char)(0xd10+4311-0x1dc7)),
-((char)(0x1b95+2469-0x251a)),((char)(0x17b6+3759-0x2645)),
-((char)(0x14c5+1013-0x189a)),((char)(0x193+6062-0x1921)),
-((char)(0x63a+4173-0x1667)),((char)(0x78f+2440-0x10f7)),
-((char)(0x57+3152-0xc87)),((char)(0x628+4042-0x15d2)),
-((char)(0x4d5+5578-0x1a7f)),((char)(0xd84+3638-0x1b9a)),
-((char)(0x87+6395-0x1962)),((char)(0xe25+3538-0x1bd7)),
-((char)(0x259+5850-0x1913)),((char)(0x167+4785-0x13f8)),
-((char)(0xfda+1769-0x16a3)),((char)(0x61d+4479-0x177c)),
-((char)(0x14a8+1956-0x1c2c)),((char)(0x4e1+2868-0xff5)),
-((char)(0x1301+3767-0x2198)),((char)(0xb7b+3311-0x184a)),
-((char)(0x212+435-0x3a5)),((char)(0x1444+1943-0x1bbb)),
-((char)(0xdf2+2627-0x1815)),((char)(0x2a8+7809-0x2109)),(0x1091+4696-0x22a9),
-((char)(0x131d+4432-0x244d)),(0x97+9305-0x24ef),(0x1595+1607-0x1bb8),
-(0xd47+2725-0x17e9),((char)(0x99f+1250-0xe61)),(0x993+6704-0x2364),
-((char)(0x100b+147-0x107e)),((char)(0xa2d+667-0xca8)),
-((char)(0x1108+2258-0x19ba)),((char)(0x9c7+6823-0x244e)),
-((char)(0x13cf+830-0x16ed)),((char)(0xc15+5634-0x21f7)),
-((char)(0xa09+6004-0x215d)),((char)(0x447+4551-0x15ee)),
-((char)(0xdd5+832-0x10f5)),((char)(0xb07+3717-0x196c)),
-((char)(0x4a+9816-0x2682)),((char)(0x72+8368-0x2102)),
-((char)(0xd62+3649-0x1b83)),((char)(0x196+6910-0x1c74)),
-((char)(0x10b1+3599-0x1ea0)),((char)(0x1852+297-0x195b)),(0x525+8468-0x262e),
-((char)(0x138+3489-0xeb9)),((char)(0x325+1387-0x870)),
-((char)(0x10c8+2183-0x192f)),((char)(0x1261+5249-0x26c2)),
-((char)(0x19a0+137-0x1a09)),((char)(0x11b2+3607-0x1fa9)),(0x4e9+4381-0x15a6),
-((char)(0x2157+59-0x2172)),((char)(0xc0d+2239-0x14ac)),
-((char)(0x1c39+1102-0x2067)),((char)(0xc9d+1168-0x110d)),(0x18a0+1453-0x1df2),
-(0x409+6622-0x1dd9),(0xb11+2277-0x13da),(0x619+1422-0xb9e),
-((char)(0x22f+6083-0x19d2)),(0x2ed+4204-0x133a),((char)(0x3a6+8519-0x24cd)),
-((char)(0x144+5359-0x1613)),((char)(0x85f+3079-0x1446)),
-((char)(0x1967+266-0x1a51)),((char)(0x102+2805-0xbd7)),
-((char)(0x812+1836-0xf1e)),((char)(0x182+5212-0x15be)),(0x555+6484-0x1e4c),
-((char)(0x1b6+1984-0x956)),((char)(0xd20+3102-0x191e)),
-((char)(0xba+4711-0x1301)),((char)(0xf09+119-0xf60)),(0x1c97+1486-0x2209),
-((char)(0x693+1199-0xb22)),((char)(0xb36+2183-0x139d)),
-((char)(0x32b+2126-0xb59)),((char)(0xab+1108-0x4df)),
-((char)(0x120a+3782-0x20b0)),(0xd4a+239-0xddb),((char)(0xcc9+1882-0x1403)),
-((char)(0x263+3049-0xe2c)),(0xc6a+1382-0x11b2),(0x327+9164-0x2674),
-((char)(0xf2d+2393-0x1866)),((char)(0x1673+740-0x1937)),
-((char)(0x6c1+3988-0x1635)),(0x2bc+8904-0x2509),(0x126+6586-0x1ad1),
-(0x21f+825-0x53b),((char)(0x1843+1380-0x1d87)),(0xda5+685-0x104e),
-(0x1648+1869-0x1d90),((char)(0x19f8+1069-0x1e05)),((char)(0x625+2315-0xf10)),
-(0x7d7+3960-0x1748),((char)(0x12cd+2753-0x1d6e)),((char)(0x1945+453-0x1aea)),
-((char)(0x1228+473-0x13e1)),((char)(0x2c7+129-0x328)),(0xf2+4197-0x10da),
-(0x20b9+1306-0x25cb),((char)(0x337+4396-0x1443)),((char)(0xf19+1630-0x1557)),
-((char)(0x1e14+1770-0x24de)),(0x288+866-0x56e),((char)(0x2287+1130-0x26d1)),
-(0x1847+1671-0x1ec2),(0x6fa+7160-0x22ec),((char)(0x164a+3738-0x24c4)),
-((char)(0xffd+3321-0x1cd6)),(0x5b7+7455-0x2258),((char)(0x2e9+3320-0xfc1)),
-((char)(0x1714+766-0x19f2)),((char)(0x14db+1659-0x1b36)),};const unsigned short 
-zte_sms_GSM7_SPANISH_To_UCS2_Table_Ex[][(0x1d6f+1475-0x2330)]={{
-(0xa49+1389-0xfad),(0x5c5+1082-0x918)},{(0x5af+6672-0x1fb5),(0x9a+5216-0x14ee)},
-{(0x1522+4250-0x25af),(0x1e7b+2041-0x2667)},{(0x14d8+254-0x15c2),
-(0x3e9+2156-0xbf7)},{(0x1cd2+1469-0x2267),(0x1088+1701-0x16b2)},{
-(0x19e5+2635-0x2407),(0x248+2867-0xcfe)},{(0x1c9+1789-0x897),
-(0x108c+1119-0x148f)},{(0xefb+895-0x123e),(0x1d85+1182-0x21c8)},{
-(0x342+3996-0x12a1),(0x1865+1596-0x1e23)},{(0x111c+5061-0x24a3),
-(0xc81+5903-0x2333)},{(0x1c23+2419-0x2556),(0x175c+3401-0x2429)},{
-(0x4a0+1666-0xae1),(0xb25+4461-0x1bd1)},{(0x66+2218-0x8c7),(0x1838+1222-0x1c31)}
-,{(0x83b+5202-0x1c3e),(0x21c9+70-0x213c)},{(0xdc9+386-0xef6),(0x672+339-0x6eb)},
-{(0x1750+1544-0x1cf7),(0x4da+4940-0x1745)},{(0x17d1+958-0x1b2a),
-(0x26b4+4390-0x172e)},{(0xa80+2279-0x12fe),(0x8c5+2138-0x1032)},{
-(0x1bfa+914-0x1f1d),(0xd6d+3156-0x18ce)},{(0x51f+5656-0x1ac2),
-(0xa82+4959-0x1ce7)},};const unsigned short Ucs2_To_Gsm7_SPANISH_Table_UCS[][
-(0xec8+4082-0x1eb8)]={{(0x317+7228-0x1f43),(0x1014+6327-0x2537)},{
-(0x2043+861-0x238e),(0x9a5+3067-0x11fa)},{(0xd10+6032-0x248d),
-(0x1be0+1078-0x1c83)},{(0xfd9+3361-0x1ce6),(0x1ab7+320-0x185c)},{
-(0x103c+5660-0x2643),(0x1395+4051-0x1fbf)},{(0x69a+1384-0xbec),
-(0xacd+6717-0x216a)},{(0x3f8+8182-0x23d7),(0x5c3+737-0x4fc)},{
-(0xfc7+1450-0x1559),(0xb8d+5474-0x1d4c)},{(0x392+1493-0x94e),(0x6fb+5305-0x181c)
-},{(0x13a6+4859-0x2687),(0x857+7625-0x2282)},};const unsigned char 
-Ucs2_To_Gsm7_SPANISH_Table_ASC[]={NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,(0xa0c+2446-0x1390),NON_GSM,NON_GSM,
-(0x60c+2976-0x119f),NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+const_header;char g_zUfiSms_DigAscMap[(0x6af+2050-0xea1)]={
+((char)(0x1221+2380-0x1b3d)),((char)(0x427+4023-0x13ad)),
+((char)(0x11c6+3385-0x1ecd)),((char)(0x5f7+2875-0x10ff)),
+((char)(0x109c+2892-0x1bb4)),((char)(0xd18+286-0xe01)),
+((char)(0x3c7+4981-0x1706)),((char)(0xa2a+4248-0x1a8b)),
+((char)(0x17c+5632-0x1744)),((char)(0x13bc+336-0x14d3)),
+((char)(0xf60+4335-0x200e)),((char)(0x2613+195-0x2694)),
+((char)(0x15ff+3172-0x2220)),((char)(0xc1d+5434-0x2113)),
+((char)(0x49f+7922-0x234c)),((char)(0xaeb+577-0xce6))};extern SMS_PARAM 
+g_zUfiSms_SendingSms;extern UINT16 g_zUfiSms_IsLanguageShift;extern int 
+g_zUfiSms_Language;static int SerializeNumbers_sms(const char*pSrc,char*pDst,int
+ nSrcLength);const unsigned short g_zUfiSms_AsciiToGsmdefaultTable[]={
+((char)(0x905+4280-0x199d)),((char)(0xb2d+6393-0x2406)),
+((char)(0x17fb+1453-0x1d88)),((char)(0x1f21+657-0x2192)),
+((char)(0x12c1+2824-0x1da9)),((char)(0x1ab+2318-0xa99)),
+((char)(0xbad+2073-0x13a6)),((char)(0x1f39+1627-0x2574)),
+((char)(0x460+7444-0x2154)),((char)(0x3c4+2869-0xed9)),
+((char)(0x11a2+1264-0x1672)),((char)(0xdc0+3910-0x1ce6)),
+((char)(0xd9+2197-0x94e)),((char)(0x1205+556-0x1411)),
+((char)(0xa8c+1723-0x1127)),((char)(0x18c2+1099-0x1ced)),
+((char)(0x187+4650-0x1391)),((char)(0x1fc+2488-0xb94)),
+((char)(0x1284+2718-0x1d02)),((char)(0xbc6+4641-0x1dc7)),
+((char)(0xc01+4913-0x1f12)),((char)(0x3ff+1794-0xae1)),
+((char)(0x5f9+4282-0x1693)),((char)(0xf11+3674-0x1d4b)),
+((char)(0xa8d+4887-0x1d84)),((char)(0xbcf+1153-0x1030)),
+((char)(0x1276+2486-0x1c0c)),((char)(0x5c+9915-0x26f7)),
+((char)(0xcf9+3868-0x1bf5)),((char)(0xeba+652-0x1126)),((char)(0xea6+275-0xf99))
+,((char)(0x1cb+3167-0xe0a)),((char)(0x738+3003-0x12d3)),
+((char)(0x13e1+1187-0x1863)),(0x6fd+2394-0x1035),((char)(0xd8b+569-0xfa1)),
+(0x1329+838-0x166d),((char)(0x578+7878-0x2419)),((char)(0x5e1+5196-0x1a07)),
+(0x433+554-0x636),((char)(0x379+2940-0xecd)),((char)(0xa8f+5364-0x1f5a)),
+((char)(0x23b+7077-0x1db6)),((char)(0x152b+3649-0x2341)),
+((char)(0x1b54+1943-0x22bf)),((char)(0x695+3534-0x1436)),
+((char)(0x1ba4+1968-0x2326)),((char)(0x20e5+1173-0x254b)),
+((char)(0xc5f+4864-0x1f2f)),((char)(0x6c3+620-0x8fe)),
+((char)(0x1243+2407-0x1b78)),((char)(0x2a5+5201-0x16c3)),
+((char)(0xb71+295-0xc64)),((char)(0xa60+4843-0x1d16)),
+((char)(0xa10+7377-0x26ab)),((char)(0x16c2+2627-0x20ce)),
+((char)(0x1e2+2953-0xd33)),((char)(0x2dd+5614-0x1892)),
+((char)(0xc78+2166-0x14b4)),((char)(0xdad+617-0xfdb)),
+((char)(0x1da7+1971-0x251e)),((char)(0xfd3+1006-0x1384)),
+((char)(0x125f+4469-0x2396)),((char)(0x14e8+4304-0x2579)),(0x121f+159-0x12be),
+((char)(0xed+4813-0x1379)),((char)(0x17a+9659-0x26f3)),
+((char)(0x18f8+1517-0x1ea2)),((char)(0x3b9+5308-0x1831)),
+((char)(0x7c0+4011-0x1726)),((char)(0x1bad+1844-0x229b)),
+((char)(0x133+1959-0x893)),((char)(0xb48+3089-0x1711)),
+((char)(0x388+3277-0x100c)),((char)(0x16b5+1130-0x1ad5)),
+((char)(0x18a6+1068-0x1c87)),((char)(0xd85+6073-0x24f2)),
+((char)(0x39d+4674-0x1592)),((char)(0x13a4+1928-0x1ade)),
+((char)(0x1792+791-0x1a5a)),((char)(0x2ca+3672-0x10d2)),
+((char)(0xdcd+4221-0x1df9)),((char)(0x6f+2134-0x873)),
+((char)(0x85f+7788-0x2678)),((char)(0x1492+2972-0x1fda)),
+((char)(0x18cf+1660-0x1ef6)),((char)(0x940+94-0x948)),((char)(0x253+355-0x35f)),
+((char)(0x10df+693-0x133c)),((char)(0xdd9+2162-0x15f2)),
+((char)(0x3a9+6967-0x1e86)),(0x255a+163-0xac1),6959,6974,(0x1c87+5035-0x151e),
+(0xff+5685-0x1723),((char)(0xb26+1510-0x10ec)),((char)(0x1b89+3024-0x26f8)),
+((char)(0x344+7670-0x20d8)),((char)(0x1cd9+1082-0x20b0)),
+((char)(0x78+6308-0x18b8)),((char)(0x1b85+2158-0x238e)),
+((char)(0x2af+4568-0x1421)),((char)(0x1266+5353-0x26e8)),
+((char)(0x3e3+606-0x5d9)),((char)(0x962+3950-0x1867)),
+((char)(0x135a+1233-0x17c1)),((char)(0x4c5+6600-0x1e22)),
+((char)(0xe5d+3501-0x1b9e)),((char)(0x1a21+1798-0x20ba)),
+((char)(0x14cf+3463-0x21e8)),((char)(0xe1f+5711-0x23ff)),
+((char)(0x1350+1320-0x1808)),((char)(0x21fc+953-0x2544)),
+((char)(0x5f0+8354-0x2620)),((char)(0x13ef+3446-0x20f2)),
+((char)(0x140f+1790-0x1a99)),((char)(0xa56+5317-0x1ea6)),
+((char)(0x5f1+6755-0x1fde)),((char)(0x9fc+2632-0x13cd)),((char)(0x6c0+88-0x6a0))
+,((char)(0x1742+3799-0x25a0)),((char)(0x1842+2910-0x2326)),(0x24ba+3517-0x174f),
+(0x1e13+2652-0xd2f),(0x2007+282-0x5f8),(0x2306+6712-0x2201),
+((char)(0x149b+2620-0x1eb7)),((char)(0x2ab+7108-0x1e4f)),
+((char)(0x1f66+443-0x2101)),((char)(0x9a+419-0x21d)),((char)(0xb69+5719-0x21a0))
+,((char)(0x1caa+1374-0x21e8)),((char)(0x1329+4616-0x2511)),
+((char)(0xa19+2971-0x1594)),((char)(0x7b0+7184-0x23a0)),
+((char)(0x76a+7619-0x250d)),((char)(0xe2+3182-0xd30)),((char)(0x71a+269-0x807)),
+((char)(0xab3+832-0xdd3)),((char)(0x26+9850-0x2680)),((char)(0x9f1+4299-0x1a9c))
+,((char)(0x2e0+5931-0x19eb)),((char)(0x19b9+3248-0x2649)),
+((char)(0x87f+4043-0x182a)),((char)(0xcbc+2637-0x16e9)),
+((char)(0x9d0+285-0xacd)),((char)(0x1a0f+279-0x1b06)),
+((char)(0x5c4+7236-0x21e8)),((char)(0x2d3+2892-0xdff)),
+((char)(0x939+2851-0x143c)),((char)(0x17a+3090-0xd6c)),
+((char)(0x1127+4274-0x21b9)),((char)(0x21e5+781-0x24d2)),
+((char)(0x7c2+6354-0x2074)),((char)(0x97+1353-0x5c0)),
+((char)(0x11bb+1907-0x190e)),((char)(0xa96+3880-0x199e)),
+((char)(0x1d3a+1831-0x2441)),((char)(0x1156+3871-0x2055)),
+((char)(0x57f+5208-0x19b7)),(0x79b+2886-0x12a1),((char)(0x3a0+5768-0x1a08)),
+(0x1aa+2996-0xd5d),(0x198+8507-0x22af),(0x19a7+241-0x1a95),
+((char)(0x1888+1102-0x1cb6)),(0x13b1+4344-0x244a),((char)(0x15e6+25-0x15df)),
+((char)(0x2008+454-0x21ae)),((char)(0x8bc+4176-0x18ec)),
+((char)(0x1921+1064-0x1d29)),((char)(0xa68+4174-0x1a96)),
+((char)(0x6c9+3104-0x12c9)),((char)(0xf94+149-0x1009)),
+((char)(0xa92+2192-0x1302)),((char)(0xf84+1023-0x1363)),
+((char)(0x76c+2268-0x1028)),((char)(0x1c0+6516-0x1b14)),
+((char)(0x1aac+780-0x1d98)),((char)(0xc60+6536-0x25c8)),
+((char)(0x1823+879-0x1b72)),((char)(0x1d7+1642-0x821)),
+((char)(0x145d+1238-0x1913)),(0xa67+6884-0x2540),((char)(0x193a+1306-0x1e34)),
+((char)(0xaa8+5980-0x21e4)),((char)(0x683+2513-0x1034)),
+((char)(0x393+5910-0x1a89)),((char)(0xe34+5837-0x24e1)),
+((char)(0xdb8+5884-0x2494)),(0xdd+998-0x463),((char)(0x158c+4110-0x257a)),
+((char)(0x3cf+8358-0x2455)),((char)(0x1272+3412-0x1fa6)),
+((char)(0x107d+1280-0x155d)),(0x16c3+2924-0x21d4),(0xbc3+5043-0x1f68),
+(0x74f+7887-0x2602),(0xb9+6575-0x1a5f),((char)(0x1961+2678-0x23b7)),
+(0x68+9864-0x26d1),((char)(0x153f+83-0x1572)),((char)(0x53d+7255-0x2174)),
+((char)(0x1bf+6346-0x1a69)),((char)(0x1824+1367-0x1d5b)),
+((char)(0xfb7+158-0x1035)),((char)(0x1e24+308-0x1f38)),
+((char)(0x2142+1452-0x26ce)),(0x2065+486-0x21ee),((char)(0x15ad+371-0x1700)),
+((char)(0xcb9+4898-0x1fbb)),((char)(0x23a7+588-0x25d3)),
+((char)(0x1d57+1149-0x21b4)),(0xa33+3257-0x1690),((char)(0x1390+4580-0x2554)),
+((char)(0x6a7+63-0x6c6)),((char)(0xc7c+4101-0x1c61)),((char)(0x4e1+5245-0x193e))
+,((char)(0x6ab+5303-0x1b42)),(0x745+1075-0xb1a),((char)(0x1c69+147-0x1cdc)),
+((char)(0xb2f+6706-0x2541)),(0x6b8+470-0x870),(0xe7d+3801-0x1cd7),
+((char)(0xa4a+2102-0x1260)),((char)(0x4ac+8822-0x2702)),
+((char)(0x10dc+1999-0x188b)),(0x1051+1548-0x15e2),(0x1560+2864-0x2081),
+(0xee5+3468-0x1c54),((char)(0x1807+2630-0x222d)),(0x171d+1789-0x1e16),
+(0x9d5+1524-0xfc4),((char)(0x863+612-0xaa7)),((char)(0x17ad+1631-0x1dec)),
+(0x29b+1346-0x7d6),((char)(0x3ef+4187-0x142a)),((char)(0x1ab4+1787-0x218f)),
+((char)(0x1805+2013-0x1fc2)),((char)(0x1285+2705-0x1cf6)),(0xa43+669-0xc63),
+(0x16f8+2922-0x225a),((char)(0xc11+1824-0x1311)),((char)(0x127c+4673-0x249d)),
+((char)(0x147c+2234-0x1d16)),(0x10d3+1581-0x1684),((char)(0xff3+5598-0x25b1)),
+(0x56b+3073-0x1160),(0x1dca+444-0x1f80),((char)(0x8f2+4240-0x1962)),
+((char)(0x47+8864-0x22c7)),(0x6ac+1975-0xde5),((char)(0xff7+1450-0x1581)),
+((char)(0x45c+3337-0x1145)),((char)(0x12c5+1911-0x1a1c)),};const unsigned short 
+zte_sms_GSM7_SPANISH_To_UCS2_Table_Ex[][(0x8ca+3851-0x17d3)]={{
+(0xc19+6622-0x25ee),(0x2ca+430-0x391)},{(0x607+6827-0x20a8),(0x41d+3412-0x1165)}
+,{(0x25c+68-0x293),(0x5d4+2418-0xf39)},{(0x19a1+2712-0x2425),(0x2148+460-0x22b6)
+},{(0x2a9+454-0x447),(0x1527+3160-0x2104)},{(0x94d+1275-0xe1f),
+(0x1dd+4845-0x144d)},{(0xf81+5452-0x249e),(0x673+4545-0x17d8)},{
+(0x65f+7637-0x23f8),(0x21fc+259-0x22a4)},{(0x33b+7918-0x21ec),
+(0xb20+6405-0x23a7)},{(0x1554+800-0x1836),(0x1017+5354-0x24a4)},{
+(0x720+7909-0x25c5),(0x502+2749-0xf43)},{(0xd4+5023-0x1432),(0x20f+7124-0x1d22)}
+,{(0xcb1+3944-0x1bd0),(0x2ad+4484-0x1364)},{(0x130f+3137-0x1f01),
+(0x1415+2043-0x1b3d)},{(0x194a+174-0x19a3),(0x641+8197-0x256c)},{
+(0x29b+2562-0xc3c),(0x7cf+6132-0x1ee2)},{(0x1db4+2457-0x26e8),8364},{
+(0x802+2600-0x11c1),(0x2495+676-0x264c)},{(0x33d+7586-0x2070),
+(0x15b9+2435-0x1e49)},{(0xcd5+2665-0x16c9),(0x15a+3110-0xc86)},};const unsigned 
+short Ucs2_To_Gsm7_SPANISH_Table_UCS[][(0x1228+554-0x1450)]={{
+(0x21ba+975-0x2579),(0xe75+1258-0xfcb)},{(0xdcc+5162-0x21e4),
+(0x1167+1704-0x1469)},{(0x751+2842-0x1258),(0x1cb6+3396-0x2667)},{
+(0x9fa+2366-0x1324),(0xe12+4520-0x1c1f)},{(0xd80+27-0xd86),(0x99f+6961-0x2127)},
+{(0x53+8587-0x21c8),(0xc4a+6460-0x21e6)},{(0x1ca0+1478-0x224f),
+(0xc30+5552-0x1e38)},{(0x13cd+4893-0x26d2),931},{(0xaf4+6814-0x2579),
+(0x613+3438-0xfe9)},{(0x9c0+1407-0xf25),(0xdba+6848-0x24dc)},};const unsigned 
+char Ucs2_To_Gsm7_SPANISH_Table_ASC[]={NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,(0x18f2+1388-0x1e54),NON_GSM,NON_GSM,
+(0xa98+5467-0x1fe6),NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
 NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-NON_GSM,(0xb13+1870-0x1241),(0x15a7+3246-0x2234),(0x497+5100-0x1861),
-(0x199b+93-0x19d5),(0x12a7+2502-0x1c6b),(0x12cb+4539-0x2461),(0xb2c+1067-0xf31),
-(0x26b+8077-0x21d1),(0x147a+1452-0x19fe),(0xe6+1976-0x875),(0x40c+8125-0x239f),
-(0x1520+4620-0x2701),(0x1136+3348-0x1e1e),(0x6c3+4826-0x1970),(0x87+3101-0xc76),
-(0x21b8+115-0x21fc),(0xac8+5184-0x1ed8),(0x525+5060-0x18b8),(0x1215+5148-0x25ff)
-,(0x315+4575-0x14c1),(0x438+414-0x5a2),(0x1608+4253-0x2670),(0x55d+597-0x77c),
-(0xc37+4649-0x1e29),(0x329+3836-0x11ed),(0x14fb+4019-0x2475),(0x2092+900-0x23dc)
-,(0x44b+8187-0x240b),(0x7a5+7782-0x25cf),(0x2fd+1824-0x9e0),(0x7ec+1144-0xc26),
-(0x1532+2152-0x1d5b),(0xe29+6348-0x26f5),(0x4d7+1884-0xbf2),(0x7a5+7640-0x253b),
-(0x129a+2585-0x1c70),(0x1a56+2825-0x251b),(0x697+1535-0xc51),(0x814+7436-0x24da)
-,(0x200+1714-0x86b),(0xddf+5619-0x238a),(0x551+5574-0x1ace),(0x144d+1614-0x1a51)
-,(0x224+3605-0xfee),(0x59d+859-0x8ac),(0x182d+1181-0x1c7d),(0x6da+501-0x881),
-(0x10e5+3873-0x1fb7),(0x11b6+2940-0x1ce2),(0x134b+3579-0x20f5),
-(0x57+4618-0x120f),(0x10ec+2332-0x19b5),(0x1992+969-0x1d07),(0x1e2f+427-0x1f85),
-(0x12d8+2940-0x1dfe),(0x1033+4237-0x2069),(0x3a6+6877-0x1e2b),
-(0x15d9+3298-0x2262),(0x784+1165-0xbb7),NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-(0x1741+2855-0x2257),NON_GSM,(0xf5c+5653-0x2510),(0x236+6400-0x1ad4),
-(0x1f15+1021-0x22af),(0x1ad0+2703-0x24fb),(0xd2f+6110-0x24a8),
-(0x2035+689-0x2280),(0x53d+99-0x539),(0xf22+5279-0x2359),(0x2e0+1029-0x67c),
-(0xfcd+4383-0x2082),(0x23bb+867-0x26b3),(0x848+6677-0x21f1),(0x147f+1519-0x1a01)
-,(0xd23+3258-0x196f),(0x1359+2527-0x1cc9),(0x21f+2646-0xc05),
-(0x1625+4222-0x2632),(0x21a0+862-0x248c),(0x18e1+3413-0x25c3),(0x703+2325-0xfa4)
-,(0x22ea+1047-0x268c),(0xb0a+3356-0x17b0),(0x5d1+2499-0xf1d),(0xe9c+5996-0x2590)
-,(0x8b2+7167-0x2438),(0xd84+1574-0x1330),NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM
-,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM
-,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM
-,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM
-,NON_GSM,NON_GSM,(0xbe3+3169-0x1829),(0x2d3+7940-0x2197),NON_GSM,
-(0x2b6+3597-0x10c2),(0x201b+1344-0x2537),(0x1a3c+1370-0x1f93),NON_GSM,
-(0xeaf+5863-0x2537),NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,(0x1fcc+1358-0x24ba),NON_GSM,
-NON_GSM,NON_GSM,NON_GSM,(0x4d1+5492-0x19ea),(0x7a9+1893-0xf00),
-(0x605+2047-0xde8),(0x745+2251-0x1007),NON_GSM,(0x1cc+2249-0xa76),NON_GSM,
-NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,(0x38c+1949-0xacc),NON_GSM,
-NON_GSM,NON_GSM,NON_GSM,(0xc39+5203-0x2030),NON_GSM,(0x81c+7477-0x2546),NON_GSM,
-NON_GSM,NON_GSM,(0xc92+6428-0x2550),NON_GSM,NON_GSM,(0xbed+4474-0x1d49),
-(0x1f9+1868-0x8c6),NON_GSM,NON_GSM,NON_GSM,(0xe84+2854-0x192f),
-(0x3c3+5266-0x1846),(0x12fd+2976-0x1e80),NON_GSM,(0xb5+2071-0x8c8),
-(0x1b46+1303-0x2058),NON_GSM,NON_GSM,(0x838+3207-0x14b8),NON_GSM,NON_GSM,NON_GSM
-,NON_GSM,(0xec1+1790-0x1542),(0x21ad+241-0x2296),NON_GSM,NON_GSM,NON_GSM,
-(0x282+5925-0x192b),NON_GSM,(0x12ff+2753-0x1db4),(0xb5c+2348-0x1482),NON_GSM,
-NON_GSM,(0xed4+3630-0x1c84),NON_GSM,NON_GSM,NON_GSM};const unsigned short 
-zte_sms_GSM7_PORTUGUESE_To_UCS2_Table_Ex[][(0x2ff+1586-0x92f)]={{
-(0x1c6c+687-0x1f16),(0x78b+2259-0xf74)},{(0x12c1+540-0x14d4),(0x6a0+1979-0xd74)}
-,{(0x1d93+1051-0x21a4),(0x17b+6390-0x1a65)},{(0xddd+5592-0x23aa),
-(0x8f3+880-0xb8f)},{(0xca3+3915-0x1be2),(0xfad+4292-0x1f7d)},{
-(0x16d+5998-0x18ce),(0x83f+2100-0x1066)},{(0x1231+616-0x148b),
-(0x1a45+302-0x1ab2)},{(0x99b+7454-0x26aa),(0x1322+1910-0x19b7)},{
-(0x1d4a+1469-0x22f5),(0x1081+5539-0x227e)},{(0xf86+2470-0x1919),
-(0x1a7d+1839-0x1e19)},{(0x1e6c+1331-0x238b),(0xeb8+1044-0x126e)},{
-(0x80f+1295-0xd09),(0x90a+3046-0x1147)},{(0x1982+3203-0x25ef),(0x69a+1355-0x845)
-},{(0x2d5+5954-0x1a00),(0x18e1+3164-0x2195)},{(0xae5+4689-0x1d1e),
-(0x14b2+894-0x148d)},{(0x689+2932-0x11e4),(0x1994+2711-0x2093)},{
-(0x127+9033-0x2451),(0x14ad+4079-0x23d2)},{(0x181c+1990-0x1fba),
-(0x5ed+2181-0xdf7)},{(0x1429+4356-0x2504),(0x11cb+592-0x139e)},{
-(0x5a8+6718-0x1fb7),(0x360+7134-0x1ee2)},{(0x1b83+1533-0x2144),
-(0x3f0+3766-0x124b)},{(0x1759+1085-0x1b59),(0x1974+2981-0x249b)},{
-(0xaa3+5677-0x2092),(0x605+4649-0x17d1)},{(0x131c+3094-0x1ef2),
-(0x21d8+1003-0x2547)},{(0x2fd+7200-0x1edc),(0x433+6101-0x1b48)},{
-(0x456+2178-0xc8f),(0x141f+4480-0x24d2)},{(0x12e6+1546-0x18a1),
-(0x1ad3+3328-0x2700)},{(0x1b43+1140-0x1f62),(0x4f8+7699-0x2231)},{
-(0x371+5787-0x19b1),(0x861+1509-0xd83)},{(0x1824+943-0x1b77),(0x1773+602-0x18f8)
-},{(0x46f+8934-0x26f4),(0x559+6243-0x1cfa)},{(0x18ba+2406-0x21bb),8364},{
-(0xab4+5294-0x1ef9),(0xc2f+4479-0x1cc1)},{(0x39d+8409-0x2407),
-(0xdf1+1685-0x1393)},{(0x193d+2406-0x222e),(0x12db+3028-0x1db5)},{
-(0x13a5+1191-0x17d1),(0x766+1963-0xe2e)},{(0x885+3244-0x14b5),(0x708+2455-0xfaa)
-},{(0x2182+443-0x22be),(0xda6+2838-0x17da)},};const unsigned short 
-Ucs2_To_Gsm7_PORTUGUESE_Table_UCS[][(0x2098+978-0x2468)]={{(0x331+2885-0xe66),
-(0xb55+6553-0x215a)},{(0x1355+771-0x1643),(0x23ba+6536-0x1a61)},{
-(0x15e8+3869-0x24ed),(0x227a+2703-0xc5d)},{(0x392+4215-0x13a4),8364},};const 
-unsigned char Ucs2_To_Gsm7_PORTUGUESE_Table_ASC[]={NON_GSM,NON_GSM,NON_GSM,
-NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,(0x26d+775-0x56a),
-NON_GSM,NON_GSM,(0xa57+2689-0x14cb),NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-NON_GSM,NON_GSM,NON_GSM,(0x1a7+6295-0x1a1e),(0x12fc+3270-0x1fa1),
-(0x533+3647-0x1350),(0xf74+302-0x107f),(0x138+6149-0x193b),(0x15da+4290-0x2677),
-(0x819+7356-0x24af),(0x109a+5783-0x270a),(0x1321+502-0x14ef),(0x339+3776-0x11d0)
-,(0xa1d+1627-0x104e),(0x21bf+1240-0x266c),(0x1825+2460-0x2195),(0x992+911-0xcf4)
-,(0xe9d+3853-0x1d7c),(0x144a+964-0x17df),(0xc70+2388-0x1594),
-(0x1532+4017-0x24b2),(0xe8a+1345-0x1399),(0x2125+267-0x21fd),(0x7b0+5708-0x1dc8)
-,(0x361+7061-0x1ec1),(0x1055+1235-0x14f2),(0x1ef+7813-0x203d),
-(0x1db9+2191-0x2610),(0xc03+6351-0x2499),(0x19fa+1194-0x1e6a),
-(0x45a+6615-0x1df6),(0x1791+285-0x1872),(0xd1c+6358-0x25b5),(0x81d+7688-0x25e7),
-(0x1a16+1318-0x1efd),(0xa78+941-0xe25),(0x1ea3+838-0x21a8),(0x170c+3727-0x2559),
-(0x1181+1676-0x17ca),(0xcf1+4640-0x1ecd),(0x83d+1954-0xf9a),(0x5b6+7760-0x23c0),
-(0x1544+3195-0x2178),(0x932+673-0xb8b),(0x15d4+626-0x17fd),(0x10fd+4437-0x2208),
-(0x22c4+731-0x2554),(0xc22+4089-0x1bcf),(0x1d0f+2556-0x26be),(0x679+2686-0x10a9)
-,(0x10f+4898-0x13e2),(0xc1f+2449-0x1560),(0x1714+2270-0x1fa1),
-(0x4db+6701-0x1eb6),(0x1900+2651-0x2308),(0x115d+1432-0x16a1),
-(0x864+2820-0x1313),(0x13e4+1837-0x1abb),(0x9c1+5577-0x1f33),(0x8cd+6065-0x2026)
-,(0xcf0+4721-0x1f08),(0x5c2+4508-0x1704),NON_GSM,(0x26f+1698-0x8fa),NON_GSM,
-(0x12b0+4061-0x2277),(0x325+7522-0x2076),(0x8ff+7289-0x24fb),(0x13a+2090-0x903),
-(0x527+6680-0x1edd),(0x72b+7494-0x240e),(0x8c2+1024-0xc5e),(0x4b4+7434-0x2159),
-(0x224c+253-0x22e3),(0x926+3674-0x1719),(0x466+2975-0xf9d),(0x96+3248-0xcdd),
-(0x16f+3907-0x1048),(0xb69+163-0xba1),(0x110d+837-0x13e6),(0x15f+7311-0x1d81),
-(0x1c85+788-0x1f2b),(0xd8+1290-0x573),(0x129c+3507-0x1fdf),(0x2042+1725-0x268e),
-(0x16b7+1029-0x1a4a),(0x123c+2946-0x1d4b),(0x1f26+1887-0x2611),
-(0x162a+4274-0x2667),(0x119c+50-0x1158),(0x11cf+5379-0x265b),(0x563+5820-0x1ba7)
-,(0x1013+644-0x121e),(0x1964+617-0x1b53),NON_GSM,(0x16ba+3176-0x2308),NON_GSM,
-(0x8d9+6647-0x2270),NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,(0x1ed9+1324-0x23ea),NON_GSM_P,
-NON_GSM,(0xd9d+2977-0x193d),NON_GSM_P,(0x1a45+2752-0x2502),NON_GSM,
-(0x1fef+1736-0x2658),NON_GSM,NON_GSM,(0xd8b+1920-0x14f9),NON_GSM,NON_GSM,NON_GSM
-,NON_GSM,NON_GSM,(0x179+1564-0x771),NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-(0xa78+3165-0x16c1),(0x1c2a+698-0x1ed6),(0x18ff+1195-0x1d8e),
-(0x1126+3075-0x1cce),NON_GSM_P,NON_GSM_P,NON_GSM_P,(0x11a7+1044-0x15a8),NON_GSM,
-(0xa60+2903-0x1598),(0x5a+9575-0x25a3),NON_GSM,NON_GSM,(0x1986+2813-0x2443),
-NON_GSM,NON_GSM,NON_GSM,NON_GSM_P,NON_GSM,(0xc20+3179-0x1872),
-(0x2237+565-0x2461),(0x1106+3131-0x1ce5),NON_GSM_P,NON_GSM,NON_GSM_P,NON_GSM,
-(0x35a+4262-0x13a3),NON_GSM,(0x379+1311-0x83a),NON_GSM,NON_GSM,NON_GSM_P,
-(0x1038+5126-0x23bf),(0x1472+1465-0x1a1c),(0x8c5+4600-0x1aa0),
-(0x2d7+9362-0x26ee),NON_GSM_P,NON_GSM_P,NON_GSM_P,(0x412+6302-0x1ca7),NON_GSM_P,
-(0x6c2+1045-0xad2),(0x20a+3116-0xe32),NON_GSM,NON_GSM_P,(0x1e82+2030-0x2669),
-NON_GSM,NON_GSM,NON_GSM,NON_GSM_P,NON_GSM_P,(0xa3c+1786-0x112e),
-(0x1cec+1884-0x243c),(0x79b+2891-0x126a),NON_GSM_P,NON_GSM,NON_GSM_P,NON_GSM_P,
-(0x35c+3445-0x10cb),NON_GSM,(0x2fd+202-0x349),NON_GSM,NON_GSM,NON_GSM};const 
-unsigned short zte_sms_GSMDefault_To_UCS2_Table_Ex[][(0x922+6740-0x2374)]={{
-(0x1dd7+875-0x2138),(0xeef+2013-0x16c0)},{(0x6e0+6661-0x20d1),
-(0x1318+2289-0x1bab)},{(0x4b9+2563-0xe94),(0x134a+2542-0x1cbd)},{
-(0xcc5+5826-0x235e),(0x19a3+2074-0x2140)},{(0x4c7+5352-0x1980),
-(0xb2c+1241-0xfa9)},{(0x499+7661-0x224a),(0xecc+5652-0x2485)},{
-(0x40a+8116-0x2381),(0x99a+6390-0x2212)},{(0x573+5152-0x1955),
-(0x12fc+3050-0x1e89)},{(0x1e71+1171-0x22c4),(0x2537+481-0x269c)},{
-(0x62b+6377-0x1eaf),(0x25ff+3496-0x12fb)},};const unsigned short 
-UCS2_To_GSMDefault_Table_UCS2[][(0x9ef+1945-0x1186)]={{(0x8ea+6335-0x2199),
-(0xe84+1872-0x1240)},{(0x1cdc+680-0x1f72),(0x3c9+678-0x2c9)},{(0x76+9380-0x2507)
-,(0xef8+2451-0x14f8)},{(0x187f+522-0x1a75),(0x751+3088-0xfc6)},{
-(0x787+535-0x989),(0x15d5+1521-0x181d)},{(0x235+2892-0xd6b),(0xbd5+5647-0x1e44)}
-,{(0x21c+4594-0x13f7),(0xb6d+936-0xb6d)},{(0xaf2+6318-0x2388),
-(0x1df9+3056-0x2646)},{(0x3bf+2378-0xcf0),(0x26d5+699-0x25f8)},{
-(0x2fb+8929-0x25c2),(0x1c65+361-0x1a30)},};const unsigned char 
-UCS2_To_GSMDefault_Table_ASC[]={NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-NON_GSM,NON_GSM,NON_GSM,NON_GSM,(0xb74+2376-0x14b2),NON_GSM,NON_GSM,
-(0x552+2722-0xfe7),NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-NON_GSM,(0x2b+6241-0x186c),(0x2058+919-0x23ce),(0x4d8+5597-0x1a93),
-(0xbd9+2870-0x16ec),(0x11a1+3514-0x1f59),(0x1110+2479-0x1a9a),
-(0x15ba+1881-0x1ced),(0x1510+4461-0x2656),(0x113+8155-0x20c6),
-(0x6fa+6988-0x221d),(0x8df+2215-0x115c),(0x1aac+1383-0x1fe8),
-(0x1804+2560-0x21d8),(0x75b+6304-0x1fce),(0x17ef+2919-0x2328),(0x78+3742-0xee7),
-(0x127+9018-0x2431),(0x254+3803-0x10fe),(0x16a0+3704-0x24e6),(0xcb4+5158-0x20a7)
-,(0x39a+1012-0x75a),(0x6d7+4726-0x1918),(0x153c+1475-0x1ac9),(0x1192+258-0x125d)
-,(0x249+2066-0xa23),(0x497+1154-0x8e0),(0xf16+3396-0x1c20),(0x4a0+839-0x7ac),
-(0x1bc9+2462-0x252b),(0x1ed+8445-0x22ad),(0x2f7+7785-0x2122),(0x7fb+1975-0xf73),
-(0xb12+7105-0x26d3),(0x381+6896-0x1e30),(0x11d9+4941-0x24e4),(0x10d+5640-0x16d2)
-,(0x53a+5411-0x1a19),(0x1238+3992-0x218b),(0x487+5895-0x1b48),
-(0x1621+4361-0x26e3),(0x311+4733-0x1546),(0x10ef+1885-0x1803),
-(0x646+5863-0x1ce3),(0xfab+2452-0x18f4),(0x1d8c+1781-0x2435),(0x412+1925-0xb4a),
-(0x1042+4659-0x2227),(0x4c9+4723-0x16ed),(0x115a+4402-0x223c),
-(0xab3+6797-0x24ef),(0x2109+1176-0x254f),(0x1359+680-0x15ae),(0xc6c+773-0xf1d),
-(0x1177+2174-0x19a0),(0x79a+7868-0x2600),(0x2642+98-0x264d),(0x1003+5659-0x25c6)
-,(0x905+1784-0xfa4),(0xb60+7118-0x26d4),NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-(0x13a5+2355-0x1cc7),NON_GSM,(0x997+2680-0x13ae),(0xdc7+5837-0x2432),
-(0xaef+986-0xe66),(0xb9c+3363-0x185b),(0xfd3+1096-0x13b6),(0xf07+852-0x11f5),
-(0x4a0+2947-0xfbc),(0x5d4+4619-0x1777),(0x47f+5337-0x18ef),(0xa72+619-0xc73),
-(0x1509+3357-0x21bb),(0xd28+1636-0x1320),(0x1229+4043-0x2187),
-(0x267+9419-0x26c4),(0x1a27+2100-0x21ec),(0xca+7701-0x1e6f),(0x1825+763-0x1aaf),
-(0xe8d+4050-0x1ded),(0x89c+2226-0x10db),(0x5af+8089-0x24d4),(0x9ad+3444-0x16ac),
-(0xd94+4112-0x1d2e),(0x51a+3795-0x1376),(0x1cdc+2350-0x2592),(0x3a6+840-0x675),
-(0x34d+442-0x48d),NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+NON_GSM,(0x638+135-0x69f),(0x88+4804-0x132b),(0xf68+4423-0x208d),
+(0x14f+826-0x466),(0x1f0c+476-0x20e6),(0x4c7+3161-0x10fb),(0xf05+337-0x1030),
+(0x1c05+2758-0x26a4),(0x13b7+2554-0x1d89),(0x110b+4342-0x21d8),
+(0x4a7+6872-0x1f55),(0x793+230-0x84e),(0x19d8+247-0x1aa3),(0x69f+391-0x7f9),
+(0x8b9+6824-0x2333),(0x9f4+6770-0x2437),(0x1da5+2148-0x25d9),(0xe53+1937-0x15b3)
+,(0x1d93+2358-0x2697),(0x2f7+2403-0xc27),(0x2356+736-0x2602),(0x17a+5993-0x18ae)
+,(0x79+7237-0x1c88),(0x1f1d+1190-0x238c),(0x1695+2490-0x2017),
+(0x7c1+2626-0x11ca),(0x16ca+1508-0x1c74),(0x138b+152-0x13e8),
+(0x142c+2367-0x1d2f),(0x220+5743-0x1852),(0x1976+57-0x1971),(0x7b7+1910-0xeee),
+(0x982+2568-0x138a),(0x476+5722-0x1a8f),(0x927+3328-0x15e5),(0xc64+5524-0x21b5),
+(0xf38+3849-0x1dfd),(0x84+6748-0x1a9b),(0xf52+1398-0x1482),(0x119+3266-0xd94),
+(0xa04+6094-0x218a),(0x1cbd+835-0x1fb7),(0x14f7+4281-0x2566),
+(0x11d8+3563-0x1f78),(0x81d+7120-0x23a1),(0x971+7409-0x2615),
+(0x118c+3266-0x1e00),(0xe0+1239-0x568),(0x3ad+7250-0x1faf),(0xc30+827-0xf1a),
+(0x17b2+1982-0x1f1e),(0xcf1+2295-0x1595),(0x18ca+721-0x1b47),(0xcbd+2595-0x168b)
+,(0xba9+3646-0x1991),(0xa59+1079-0xe39),(0x4e9+4130-0x14b3),(0x155+3858-0x100e),
+(0x6b4+2403-0xfbd),NON_GSM,NON_GSM,NON_GSM,NON_GSM,(0xb59+741-0xe2d),NON_GSM,
+(0xd1+7841-0x1f11),(0x1bf+5035-0x1508),(0x180a+995-0x1b8a),(0x613+7427-0x22b2),
+(0x142a+1799-0x1acc),(0x1951+2281-0x21d4),(0xd93+5941-0x2461),
+(0x6c3+7693-0x2468),(0x2fb+1898-0x9fc),(0x5d1+118-0x5dd),(0xb02+3927-0x19ee),
+(0xaa7+6686-0x2459),(0xf8b+3727-0x1dad),(0x18a8+2150-0x20a0),
+(0x123d+3898-0x2108),(0x166a+3801-0x24d3),(0xfa+6968-0x1bc1),(0x4d5+4141-0x1490)
+,(0x22b+4035-0x117b),(0xcdb+369-0xdd8),(0xd29+62-0xcf2),(0xe17+84-0xdf5),
+(0x150+8074-0x2063),(0xf44+4810-0x2196),(0x11e2+30-0x1187),(0x2457+487-0x25c4),
 NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
 NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
 NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-(0x1bcc+2435-0x2534),(0xa11+5589-0x1fa6),NON_GSM,(0x15aa+2028-0x1d95),
-(0x149a+3588-0x227a),(0x71c+3085-0x1326),NON_GSM,(0x5f0+6782-0x200f),NON_GSM,
+NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,(0xd0b+0-0xcf0),
+(0x335+5869-0x19e2),NON_GSM,(0x4a6+815-0x7d4),(0x1911+2966-0x2483),
+(0x1a95+2352-0x23c2),NON_GSM,(0xe9+2484-0xa3e),NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+(0x1200+1752-0x1878),NON_GSM,NON_GSM,NON_GSM,NON_GSM,(0xab5+4124-0x1a76),
+(0x403+4311-0x14cc),(0x1f2f+1470-0x24d1),(0x3c3+6645-0x1daf),NON_GSM,
+(0x4f0+7682-0x22d3),NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+(0x985+7016-0x2490),NON_GSM,NON_GSM,NON_GSM,NON_GSM,(0xc54+5787-0x2293),NON_GSM,
+(0x1d00+1753-0x23ce),NON_GSM,NON_GSM,NON_GSM,(0x5a9+6358-0x1e21),NON_GSM,NON_GSM
+,(0x1c77+300-0x1d85),(0x187f+3108-0x2424),NON_GSM,NON_GSM,NON_GSM,
+(0xc2+9081-0x23c0),(0x8dc+1707-0xf78),(0x85b+144-0x8ce),NON_GSM,(0x48+449-0x205)
+,(0xaa4+7270-0x2705),NON_GSM,NON_GSM,(0xdeb+489-0xfcd),NON_GSM,NON_GSM,NON_GSM,
+NON_GSM,(0x8c6+4680-0x1a91),(0x721+7374-0x23e7),NON_GSM,NON_GSM,NON_GSM,
+(0x5df+3228-0x11ff),NON_GSM,(0x333+915-0x6ba),(0x15fd+2794-0x20e1),NON_GSM,
+NON_GSM,(0x719+6865-0x216c),NON_GSM,NON_GSM,NON_GSM};const unsigned short 
+zte_sms_GSM7_PORTUGUESE_To_UCS2_Table_Ex[][(0x5e9+1514-0xbd1)]={{
+(0x9b9+7003-0x250f),(0x1f0+2481-0xab7)},{(0x1c61+1334-0x218e),(0x495+744-0x696)}
+,{(0x122a+6-0x1226),(0x2236+846-0x2578)},{(0xb5f+1382-0x10ba),
+(0x1748+2894-0x21c2)},{(0xb2f+3339-0x182e),(0x19b+4445-0x1204)},{
+(0x1b52+413-0x1ce2),(0xc80+2883-0x17b6)},{(0x237a+627-0x25df),(0x383+2535-0xca9)
+},{(0x1e5d+1980-0x260a),(0x444+3773-0x1220)},{(0x1286+3091-0x1e87),
+(0x105a+2372-0x15f8)},{(0x2f2+395-0x46a),(0x1797+3853-0x2311)},{
+(0x384+4740-0x15f4),(0x9c+560-0x26e)},{(0x2ec+6797-0x1d64),(0x19f8+119-0x16c6)},
+{(0x898+7459-0x25a5),(0x684+2832-0xdf4)},{(0x86+7835-0x1f0a),
+(0x11e3+4511-0x1fda)},{(0x1e0+9059-0x252b),(0x786+8572-0x255f)},{
+(0x52+9825-0x269a),(0x137d+4662-0x221b)},{(0x145d+2725-0x1ee3),
+(0x18ff+650-0x1abf)},{(0xf99+3313-0x1c62),(0x9dd+6614-0x2338)},{
+(0xa40+6044-0x21b3),(0xfd+6968-0x1bb8)},{(0x1f0+2737-0xc72),(0x2b6+6503-0x1bc1)}
+,{(0x1568+631-0x17a3),(0x107+8376-0x2164)},{(0x67a+6763-0x20a8),
+(0x1264+2036-0x19da)},{(0x227c+321-0x237f),(0x1c47+1475-0x21ad)},{
+(0x69c+6690-0x207e),(0x1e50+1362-0x2326)},{(0x143+3460-0xe86),
+(0xfa2+3423-0x1c41)},{(0x39a+7738-0x218b),(0x12b2+2052-0x19e9)},{
+(0x49b+4769-0x16ed),(0x26a+1085-0x5d4)},{(0x298+2656-0xca3),(0x1122+5468-0x25a4)
+},{(0xe1+3439-0xdf5),(0x15ec+1377-0x1a8a)},{(0xb3+8640-0x2217),
+(0x1918+979-0x1c16)},{(0x3bd+3956-0x12d0),(0x49c+5763-0x1a5d)},{
+(0xdda+1629-0x13d2),8364},{(0x3c7+658-0x5f0),(0x99b+2538-0x1298)},{
+(0xc11+3229-0x183f),(0x43f+4148-0x1380)},{(0x207+3836-0x108e),
+(0x1c23+2066-0x233b)},{(0xd8f+1663-0x1393),(0x9d5+2037-0x10e7)},{
+(0x21e9+1226-0x2637),(0xfb5+1713-0x1571)},{(0xe93+4287-0x1ed3),
+(0x480+8589-0x252b)},};const unsigned short Ucs2_To_Gsm7_PORTUGUESE_Table_UCS[][
+(0x1423+117-0x1496)]={{(0xed8+3126-0x1afe),(0x704+1090-0x7b2)},{
+(0x194c+2206-0x21d5),8929},{(0xe81+347-0xfc4),(0x23d0+5690-0x195e)},{
+(0xc01+1256-0x1084),8364},};const unsigned char 
+Ucs2_To_Gsm7_PORTUGUESE_Table_ASC[]={NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,(0x770+1132-0xbd2),NON_GSM,NON_GSM,
+(0xcb5+6114-0x248a),NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+NON_GSM,(0x135+6146-0x1917),(0x1178+3415-0x1eae),(0x10d4+5386-0x25bc),
+(0x1853+2663-0x2297),(0x29a+4377-0x13b1),(0xc61+5333-0x2111),(0x4d3+1954-0xc4f),
+(0x5db+2757-0x1079),(0x46c+1160-0x8cc),(0x34a+4572-0x14fd),(0xfc1+5667-0x25ba),
+(0x1a40+2984-0x25bd),(0xe76+3229-0x1ae7),(0x1c85+2220-0x2504),
+(0x894+4437-0x19bb),(0x15ac+2035-0x1d70),(0x487+3731-0x12ea),(0x282+6929-0x1d62)
+,(0x6cf+2503-0x1064),(0x1764+2674-0x21a3),(0xa6b+6587-0x23f2),
+(0xde5+5255-0x2237),(0x56f+7803-0x23b4),(0xde5+5255-0x2235),(0x153+195-0x1de),
+(0x563+5276-0x19c6),(0x1ca6+2445-0x25f9),(0x636+4310-0x16d1),(0x973+2664-0x139f)
+,(0x1950+1167-0x1da2),(0x1949+1079-0x1d42),(0x399+4443-0x14b5),
+(0x18ff+2857-0x2428),(0x34f+4649-0x1537),(0x2b0+2149-0xad3),(0xfa4+3914-0x1eab),
+(0x140+9665-0x26bd),(0x5ba+5250-0x19f7),(0x1089+591-0x1292),(0x517+2537-0xeb9),
+(0x1b59+1722-0x21cb),(0x1366+4735-0x259c),(0x2095+479-0x222a),
+(0xb87+4383-0x1c5b),(0x1d17+2588-0x26e7),(0x10c7+2283-0x1965),
+(0xe5a+1597-0x1449),(0x2387+59-0x2373),(0x39c+4418-0x148e),(0xae6+2728-0x153d),
+(0xc21+3827-0x1ac2),(0x12ad+2198-0x1af0),(0x243a+17-0x23f7),(0xfa4+898-0x12d1),
+(0x76a+5228-0x1b80),(0x1723+3541-0x24a1),(0x1c43+272-0x1cfb),(0x14a+5754-0x176b)
+,(0x1283+4222-0x22a7),NON_GSM,(0x1352+942-0x16e9),NON_GSM,(0x1178+5293-0x260f),
+(0x791+2987-0x132b),(0x5f8+2289-0xe6c),(0x34c+2854-0xe11),(0x327+3726-0x1153),
+(0x1ad6+122-0x1aed),(0x7d4+2007-0xf47),(0x367+3978-0x128c),(0xd28+1688-0x135a),
+(0xa52+1448-0xf93),(0x1213+4358-0x22b1),(0x717+7665-0x249f),(0x1db1+1754-0x2421)
+,(0x354+3390-0x1027),(0x14bf+2020-0x1c37),(0x1a91+1860-0x2168),
+(0x836+3746-0x166a),(0x22a8+485-0x241e),(0x1217+1454-0x1755),
+(0x164c+1655-0x1c52),(0x4a2+4641-0x1651),(0x116+7125-0x1c78),(0x176+2555-0xafd),
+(0x881+3414-0x1562),(0x2224+860-0x250a),(0xde5+337-0xebf),(0x4e6+8678-0x2654),
+(0xfdc+967-0x132a),(0x12b5+5099-0x2626),NON_GSM,(0x5a+2870-0xb76),NON_GSM,
+(0x2c1+5432-0x1799),NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
 NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
 NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-NON_GSM,NON_GSM,(0xf0d+1713-0x155e),NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-(0x4bd+3634-0x1294),(0xc29+2468-0x15bf),(0x84c+3434-0x159a),(0xd16+4025-0x1cc6),
-NON_GSM,(0x7ef+2526-0x11ae),NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
-NON_GSM,(0x120+8849-0x2354),NON_GSM,NON_GSM,NON_GSM,NON_GSM,(0x3c7+4929-0x16ac),
-NON_GSM,(0x102a+778-0x1329),NON_GSM,NON_GSM,NON_GSM,(0x1216+1645-0x1825),NON_GSM
-,NON_GSM,(0x288+1158-0x6f0),(0x12c1+4529-0x23f3),NON_GSM,NON_GSM,NON_GSM,
-(0x422+4108-0x13b3),(0x1ecd+872-0x2226),(0x5f0+7638-0x23a9),NON_GSM,
-(0x240+2302-0xb3a),(0x4ad+7522-0x220a),NON_GSM,NON_GSM,(0x177f+1530-0x1d72),
-NON_GSM,NON_GSM,NON_GSM,NON_GSM,(0x871+3667-0x1647),(0x565+6946-0x207f),NON_GSM,
-NON_GSM,NON_GSM,(0x660+2415-0xf53),NON_GSM,(0x425+1901-0xb86),
-(0x12d9+1957-0x1a78),NON_GSM,NON_GSM,(0x1e32+1709-0x2461),NON_GSM,NON_GSM,
-NON_GSM};const unsigned short zte_sms_GSM7_PORTUGUESE_To_UCS2_Table[]={
-(0x14b1+1570-0x1a93),(0x4ef+1828-0xb70),(0x98a+3333-0x166b),(0x18f9+1564-0x1e70)
-,(0x11d+3598-0xe41),(0xb86+4660-0x1cd1),(0x4c6+4177-0x141d),(0x82f+2763-0x120d),
-(0x3fb+2933-0xe7d),(0x1c39+327-0x1c99),(0xfbb+4577-0x2192),(0x1226+2509-0x1b1f),
-(0x1fa1+1837-0x25da),(0x6f6+4245-0x177e),(0x9d8+3606-0x172d),
-(0x1822+2666-0x21ab),(0x1474+343-0x1237),(0x2354+303-0x2424),
-(0x1983+3142-0x251f),(0xd97+3420-0x1a2c),(0x1393+2462-0x1c71),8734,
-(0x1842+42-0x180e),(0x8a6+5117-0x1c47),8364,(0x16ba+746-0x18d1),
-(0xf9d+672-0x11c1),(0x42b+3498-0x1135),(0x137b+266-0x13c3),(0x1194+4166-0x20f8),
-(0x191+2728-0xb6f),(0x806+7334-0x23e3),(0xd27+2229-0x15bc),(0x1088+1810-0x1779),
-(0x3b2+2591-0xdaf),(0x1723+1603-0x1d43),(0x2d4+4241-0x12b5),(0x1303+1500-0x18ba)
-,(0x1296+2409-0x1bd9),(0x18a8+2678-0x22f7),(0x18dd+932-0x1c59),
-(0x5c3+7458-0x22bc),(0x1ea+4405-0x12f5),(0x82b+6147-0x2003),(0x13a3+257-0x1478),
-(0x1e32+29-0x1e22),(0xfef+1095-0x1408),(0x1f27+276-0x200c),(0xe38+6054-0x25ae),
-(0x1ab2+1798-0x2187),(0xbb1+641-0xe00),(0x1675+1752-0x1d1a),(0x1dc1+1169-0x221e)
-,(0x6cf+5913-0x1db3),(0xa5+5089-0x1450),(0x832+7727-0x262a),(0xa2f+2400-0x1357),
-(0x67a+4667-0x187c),(0xf11+2794-0x19c1),(0x434+5311-0x18b8),(0x16d4+2374-0x1fde)
-,(0x17fa+1364-0x1d11),(0x6ba+6293-0x1f11),(0x980+5300-0x1df5),
-(0x1469+1837-0x1ac9),(0x2242+28-0x221d),(0x46a+556-0x654),(0x1d7a+1357-0x2284),
-(0xc67+1080-0x105b),(0x65a+8082-0x25a7),(0x1d60+614-0x1f80),(0xebf+538-0x1092),
-(0x1cd7+121-0x1d08),(0xc58+3817-0x1af8),(0x89d+3933-0x17b0),(0xed6+5636-0x248f),
-(0x1561+37-0x153a),(0x802+2065-0xfc6),(0x569+5178-0x1955),(0x56a+6748-0x1f77),
-(0x1c55+2551-0x25fc),(0x1099+104-0x10b0),(0xaad+3656-0x18a3),(0x20ba+593-0x22b8)
-,(0x1457+1621-0x1a58),(0x6a0+6402-0x1f4d),(0x586+7719-0x2357),
-(0x29f+6467-0x1b8b),(0xd80+1898-0x1492),(0x2a3+8691-0x243d),(0xd3b+1793-0x13e2),
-(0x1b26+842-0x1dad),(0x3c6+6009-0x1a6a),(0x15b0+4545-0x2697),(0x1d3+3967-0x1076)
-,(0xca3+6710-0x2632),(0xda7+5522-0x22bb),(0x1193+3041-0x1d13),
-(0x176c+2845-0x2227),(0x1eea+1921-0x2608),(0x1f51+983-0x22c4),
-(0xb66+4409-0x1c3a),(0xe7c+624-0x1086),(0x1594+1991-0x1cf4),(0xc85+2843-0x1738),
-(0x12bd+4991-0x25d3),(0x14e7+1372-0x19d9),(0x18ba+2110-0x208d),
-(0x7f9+4391-0x18b4),(0x1667+3835-0x24f5),(0x74a+5720-0x1d34),(0x4dd+3377-0x119f)
-,(0x198a+175-0x19c9),(0x123a+2134-0x1a1f),(0x557+8146-0x24b7),
-(0xaf5+5664-0x20a2),(0x122a+5310-0x2674),(0x1a24+155-0x1a4a),
-(0x1347+4154-0x230b),(0x1d37+592-0x1f10),(0xa5d+1038-0xdf3),(0x350+9208-0x26cf),
-(0x11cb+3387-0x1e8c),(0x180b+1670-0x1dae),(0x706+4643-0x1834),
-(0x1a47+1900-0x2153),(0x1b7d+810-0x1dab),(0x411+5809-0x19e2)};const unsigned 
-short zte_sms_GSMDefault_To_UCS2_Table[]={(0x17fd+348-0x1919),
-(0x87b+2830-0x12e6),(0x9a+3425-0xdd7),(0x156c+3037-0x20a4),(0x1c02+1419-0x20a5),
-(0x1953+448-0x1a2a),(0x3cf+6392-0x1bce),(0x1b7b+1849-0x21c8),
-(0x1bd7+1744-0x21b5),(0x1ca+2344-0xa2b),(0x26b+1551-0x870),(0x20dc+487-0x21eb),
-(0x1ed9+977-0x21b2),(0x1f+3771-0xecd),(0x2ab+5367-0x16dd),(0x1c14+126-0x1bad),
-(0x4e0+7691-0x1f57),(0xce2+2034-0x1475),(0x7f4+447-0x60d),(0xb8f+840-0xb44),
-(0x1e18+1658-0x20f7),(0xb1f+7998-0x26b4),(0xb3f+158-0x83d),(0x576+91-0x229),
-(0x8aa+5957-0x1c4c),(0x3b6+6500-0x1982),(0x8e8+5660-0x1b66),(0x22c4+557-0x2451),
-(0x4a1+4636-0x15f7),(0x433+2354-0xc7f),(0x8c9+5503-0x1d69),(0xdd7+6651-0x2709),
-(0x1c36+2684-0x2692),(0x360+1451-0x8ea),(0x20df+3-0x20c0),(0x17f5+1232-0x1ca2),
-(0xc0d+2248-0x1431),(0x1281+4305-0x232d),(0x1d40+2186-0x25a4),
-(0x7db+2808-0x12ac),(0x1325+4863-0x25fc),(0x81d+188-0x8b0),(0xce7+833-0xffe),
-(0x1b41+2186-0x23a0),(0x1151+1085-0x1562),(0x233c+200-0x23d7),
-(0xe9d+2103-0x16a6),(0x195b+3096-0x2544),(0x1289+3855-0x2168),
-(0x1595+3086-0x2172),(0x1bd8+2817-0x26a7),(0x1061+4338-0x2120),
-(0x242+4453-0x1373),(0xfb5+4428-0x20cc),(0x326+7625-0x20b9),(0xe6+9100-0x243b),
-(0x138c+3331-0x2057),(0x5a0+696-0x81f),(0x12db+2926-0x1e0f),(0x120d+3338-0x1edc)
-,(0x1642+584-0x184e),(0x1463+1302-0x193c),(0x197+8519-0x22a0),(0x448+2793-0xef2)
-,(0x5a3+4046-0x14d0),(0xe4a+2384-0x1759),(0xb3b+2298-0x13f3),(0x91b+5432-0x1e10)
-,(0x67f+3426-0x139d),(0x3b1+2017-0xb4d),(0x1681+1936-0x1dcb),(0xeeb+460-0x1070),
-(0xb70+5317-0x1fed),(0x10e9+5453-0x25ed),(0xda5+5097-0x2144),(0x3c3+3367-0x109f)
-,(0x140+4500-0x1288),(0x176a+4015-0x26cc),(0x1f1c+2022-0x26b4),
-(0x197a+2962-0x24bd),(0x1447+2175-0x1c76),(0x12f4+3038-0x1e81),
-(0x2d3+3018-0xe4b),(0xf35+1875-0x1635),(0x1bf0+1273-0x2095),(0x182d+1915-0x1f53)
-,(0x6df+1490-0xc5b),(0x1c7a+1624-0x227b),(0x1541+2040-0x1ce1),
-(0x459+6851-0x1ec3),(0x97c+1436-0xebe),(0x11a4+4307-0x21b3),(0x672+7383-0x2273),
-(0xd3b+1501-0x1247),(0x2415+369-0x24aa),(0x2c7+707-0x4e3),(0xf10+4550-0x2017),
-(0xa26+5447-0x1f0c),(0x1095+5229-0x24a0),(0x9a+6579-0x19ea),(0xb6c+7044-0x268c),
-(0x5a8+6416-0x1e53),(0x1866+1808-0x1f10),(0x1033+4054-0x1fa2),
-(0x2093+1310-0x2549),(0x1716+4097-0x26ae),(0x96f+1985-0x10c6),
-(0x1118+4146-0x20df),(0x15fc+4125-0x25ad),(0x1b58+676-0x1d8f),
-(0x1733+149-0x175a),(0x1297+5278-0x26c6),(0x8eb+6171-0x2096),(0x867+1562-0xe10),
-(0x17c1+1981-0x1f0c),(0x149d+207-0x14f9),(0x500+1758-0xb6a),(0x1072+2189-0x188a)
-,(0x34c+511-0x4d5),(0x1e20+60-0x1de5),(0x5bb+5208-0x199b),(0xd5a+247-0xdd8),
-(0xf22+3883-0x1dd3),(0x1c65+243-0x1c74),(0x67a+7246-0x21d2),(0x1631+602-0x179a),
-(0x3b3+1638-0x91d),(0x108a+2646-0x1a00)};int Bytes2String(const unsigned char*
-pSrc,char*pDst,int nSrcLength){const char tab[]="0123456789ABCDEF";int i=
-(0xea9+3307-0x1b94);if(pSrc==NULL||pDst==NULL||nSrcLength<(0x52+689-0x303)){
-return-(0x1e5b+2135-0x26b1);}for(i=(0x67b+6320-0x1f2b);i<nSrcLength;i++){*pDst++
-=tab[*pSrc>>(0xb9+4033-0x1076)];*pDst++=tab[*pSrc&(0x55f+2065-0xd61)];pSrc++;}*
-pDst='\0';return nSrcLength*(0x10dc+2602-0x1b04);}int String2Bytes(const char*
-pSrc,unsigned char*pDst,int nSrcLength){int i=(0xd68+102-0xdce);if(pSrc==NULL||
-pDst==NULL||nSrcLength<(0x864+2826-0x136e)){return-(0x6d2+4476-0x184d);}for(i=
-(0x1ba+7739-0x1ff5);i<nSrcLength;i+=(0x10c0+4807-0x2385)){if(*pSrc>=
-((char)(0xf58+3743-0x1dc7))&&*pSrc<=((char)(0x1074+5576-0x2603))){*pDst=(*pSrc-
-((char)(0x78a+1403-0xcd5)))<<(0x9f7+6333-0x22b0);}else{*pDst=((toupper(*pSrc)-
-((char)(0x1285+308-0x1378)))+(0x1ad1+115-0x1b3a))<<(0x6db+416-0x877);}pSrc++;if(
-*pSrc>=((char)(0x995+2074-0x117f))&&*pSrc<=((char)(0x165f+347-0x1781))){*pDst|=*
-pSrc-((char)(0x126f+3852-0x214b));}else{*pDst|=(toupper(*pSrc)-
-((char)(0x12a9+388-0x13ec)))+(0x1005+4269-0x20a8);}pSrc++;pDst++;}return 
-nSrcLength/(0x1c2+4147-0x11f3);}int EncodeUcs2(const char*pSrc,unsigned char*
-pDst,int nSrcLength){if(pSrc==NULL||pDst==NULL||nSrcLength<(0x56a+4410-0x16a4)){
-return-(0x17c+7661-0x1f68);}(void)String2Bytes(pSrc,pDst,(int)nSrcLength);return
- nSrcLength/(0x1919+167-0x19be);}int Encode7bit(const char*pSrc,unsigned char*
-pDst,int nSrcLength){int nSrc;int nDst;int nChar;unsigned char nLeft=
-(0x71c+6697-0x2145);if(pSrc==NULL||pDst==NULL||nSrcLength<(0x1813+1671-0x1e9a)){
-return-(0xb7c+3894-0x1ab1);}nSrc=(0x65f+2195-0xef2);nDst=(0x1130+5414-0x2656);
-while(nSrc<nSrcLength){nChar=nSrc&(0x2bf+17-0x2c9);if(nChar==(0x1ba8+759-0x1e9f)
-){nLeft=*pSrc;if((g_zUfiSms_ConcatSms.total_msg>(0x833+2683-0x12ad))&&(nSrc==(
-nSrcLength-(0xab8+2731-0x1562)))){nDst++;}}else{*pDst=(*pSrc<<((0x1bb+665-0x44c)
--nChar))|nLeft;nLeft=*pSrc>>nChar;pDst++;nDst++;}pSrc++;nSrc++;}return nDst;}
-SINT32 zUfiSms_EncodePdu_DeliverReport(CHAR*pDst,UINT8 TP_FCS){SINT32 nLength=
-(0x205d+469-0x2232);SINT32 nDstLength=(0x301+6254-0x1b6f);UINT8 buf[
-(0x233+6958-0x1c61)]={(0x8ac+5449-0x1df5)};if(NULL==pDst){return-
-(0x83a+7223-0x2470);}if(TP_FCS!=(0x1e95+123-0x1f10)){buf[(0x110c+139-0x1197)]=
-(0x1598+3220-0x222c);buf[(0xbea+737-0xeca)]=TP_FCS;buf[(0x121a+423-0x13bf)]=
-(0xa6+6218-0x18f0);nDstLength+=Bytes2String(buf,&pDst[nDstLength],
-(0x215a+890-0x24d1));}else{buf[(0xff+1075-0x532)]=(0x19d5+2164-0x2249);buf[
-(0x3e2+4993-0x1762)]=(0x52d+3382-0x1263);nDstLength+=Bytes2String(buf,&pDst[
-nDstLength],(0xb6d+4629-0x1d80));}return nDstLength;}unsigned long 
-zUfiSms_ConvertAsciiToGsmDefault(const unsigned char*inputs,unsigned char*
-outputs,unsigned long len){unsigned long i=(0xb7b+2077-0x1398);unsigned long j=
-(0x163+5357-0x1650);unsigned long k=(0x209d+584-0x22e5);if(NULL==inputs||NULL==
-outputs){printf(
+NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,(0x1219+27-0x1219),NON_GSM_P,
+NON_GSM,(0xb8d+979-0xf5f),NON_GSM_P,(0xc5b+4352-0x1d58),NON_GSM,
+(0x518+8749-0x26e6),NON_GSM,NON_GSM,(0x1049+4344-0x212f),NON_GSM,NON_GSM,NON_GSM
+,NON_GSM,NON_GSM,(0x20ab+1042-0x2499),NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+(0x2078+1514-0x264e),(0x144c+4553-0x2607),(0xd0a+5853-0x23cb),(0xe8+1847-0x7c4),
+NON_GSM_P,NON_GSM_P,NON_GSM_P,(0x94d+925-0xcd7),NON_GSM,(0xa79+1545-0x1063),
+(0x1fe1+1354-0x250d),NON_GSM,NON_GSM,(0x1b69+5-0x1b2e),NON_GSM,NON_GSM,NON_GSM,
+NON_GSM_P,NON_GSM,(0x6a1+3394-0x13ca),(0x876+6810-0x2305),(0x1e40+83-0x1e37),
+NON_GSM_P,NON_GSM,NON_GSM_P,NON_GSM,(0x2363+796-0x2622),NON_GSM,
+(0x1249+1723-0x18a6),NON_GSM,NON_GSM,NON_GSM_P,(0x1f42+700-0x217f),
+(0xfb4+1268-0x1499),(0xec6+3169-0x1b0a),(0x2c0+1632-0x8a5),NON_GSM_P,NON_GSM_P,
+NON_GSM_P,(0xbb5+5627-0x21a7),NON_GSM_P,(0x152c+2137-0x1d80),(0x44b+1398-0x9bd),
+NON_GSM,NON_GSM_P,(0x313+3544-0x10e4),NON_GSM,NON_GSM,NON_GSM,NON_GSM_P,
+NON_GSM_P,(0x13b1+527-0x15b8),(0x9d3+5151-0x1de6),(0x650+7886-0x24a2),NON_GSM_P,
+NON_GSM,NON_GSM_P,NON_GSM_P,(0x370+6157-0x1b77),NON_GSM,(0xfb0+4205-0x1f9f),
+NON_GSM,NON_GSM,NON_GSM};const unsigned short 
+zte_sms_GSMDefault_To_UCS2_Table_Ex[][(0x685+1987-0xe46)]={{(0xf57+5247-0x23cc),
+(0xbc9+22-0xbd3)},{(0x295+7990-0x21b7),(0x80c+5835-0x1e79)},{(0x207+1741-0x8ac),
+(0x1160+2759-0x1bac)},{(0x42+613-0x27e),(0x1fb+5441-0x16bf)},{
+(0x13fd+686-0x167c),(0x1f7+4372-0x12af)},{(0x2177+1332-0x266f),
+(0x261+3125-0xe3b)},{(0x1df1+1228-0x2280),(0x476+6829-0x1ea5)},{
+(0x3f+5176-0x1439),(0x448+1862-0xb31)},{(0xd07+5185-0x2108),(0x117+7523-0x1dfe)}
+,{(0x1c48+903-0x1f6a),(0x23ac+4146-0x1332)},};const unsigned short 
+UCS2_To_GSMDefault_Table_UCS2[][(0x10a+968-0x4d0)]={{(0x1545+193-0x15f6),
+(0x2077+1819-0x23fe)},{(0xa84+3181-0x16df),(0xf11+5670-0x2191)},{
+(0x139b+4304-0x2458),(0xbf1+6974-0x239c)},{(0x467+7650-0x2235),
+(0x1f46+2322-0x24bd)},{(0x27a+3923-0x11b8),(0xe05+2694-0x14e2)},{
+(0x2e4+4537-0x1487),(0x1d3f+2955-0x252a)},{(0x107+652-0x37c),(0x7f4+600-0x6a4)},
+{(0x87+4696-0x12c7),(0x767+8262-0x240a)},{(0x1371+2796-0x1e44),
+(0xba7+5631-0x1e0e)},{(0x24fc+163-0x2585),(0x14aa+1902-0x187a)},};const unsigned
+ char UCS2_To_GSMDefault_Table_ASC[]={NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,(0xa68+1587-0x1091),NON_GSM,NON_GSM,
+(0x10c8+4196-0x211f),NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+NON_GSM,(0x774+1729-0xe15),(0x105c+1595-0x1676),(0xaad+1197-0xf38),
+(0x2f5+2248-0xb9a),(0x1e6c+812-0x2196),(0xa2c+1002-0xdf1),(0xcf+9218-0x24ab),
+(0x6bf+5780-0x1d2c),(0x256+7050-0x1db8),(0x141d+1901-0x1b61),(0x607+4544-0x179d)
+,(0x1d1f+859-0x204f),(0x14c6+1141-0x190f),(0x15ef+1197-0x1a6f),
+(0x3c5+2038-0xb8d),(0x14e4+2880-0x1ff5),(0xbb5+753-0xe76),(0x16f4+577-0x1904),
+(0x1634+2792-0x20ea),(0x19d6+2741-0x2458),(0x1155+1081-0x155a),
+(0xbd9+5723-0x21ff),(0x588+6348-0x1e1e),(0xff+2692-0xb4c),(0x852+4943-0x1b69),
+(0x107+8120-0x2086),(0x820+2703-0x1275),(0xff+254-0x1c2),(0x1128+4235-0x2177),
+(0x1586+2818-0x204b),(0x4e0+91-0x4fd),(0x3bd+3546-0x1158),(0x869+1921-0xfea),
+(0x14f0+1481-0x1a78),(0x9d4+7318-0x2628),(0x1537+4260-0x2598),
+(0x1c76+623-0x1ea1),(0x789+6657-0x2145),(0x1391+4468-0x24bf),(0x20b+2620-0xc00),
+(0x183f+3740-0x2693),(0x679+6972-0x216c),(0x678+54-0x664),(0xb50+6505-0x246e),
+(0x11b9+2331-0x1a88),(0x1d37+874-0x2054),(0xba8+4221-0x1bd7),(0xe58+4647-0x2030)
+,(0x971+6196-0x2155),(0x148f+403-0x15d1),(0x339+2464-0xc87),(0xe8c+4080-0x1e29),
+(0xe30+1692-0x1478),(0x5f1+6878-0x207a),(0x162b+677-0x187a),(0x2035+153-0x2077),
+(0xb11+3987-0x1a4c),(0x19d6+636-0x1bf9),(0x1fe8+897-0x230f),NON_GSM,NON_GSM,
+NON_GSM,NON_GSM,(0x8b5+4172-0x18f0),NON_GSM,(0x115c+1767-0x17e2),
+(0xa2a+3473-0x1759),(0xad2+565-0xca4),(0x2f5+5369-0x178a),(0x958+5849-0x1fcc),
+(0x118a+1595-0x175f),(0x83+7135-0x1bfb),(0x429+315-0x4fc),(0x14ed+3857-0x2395),
+(0x399+2665-0xd98),(0x11e5+2504-0x1b42),(0x1b08+2852-0x25c0),(0x1d04+929-0x2038)
+,(0x17fc+731-0x1a69),(0x542+4646-0x16f9),(0xa52+3951-0x1951),(0xd9+9742-0x2676),
+(0x1c7c+2675-0x267d),(0x160+5901-0x17fa),(0x26a4+222-0x270e),(0xeaf+2694-0x18c0)
+,(0x20f6+779-0x238b),(0x91a+2674-0x1315),(0x54c+7867-0x238f),(0x6c4+1826-0xd6d),
+(0xdaf+2169-0x15ae),NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+(0x2113+148-0x218c),(0x9a8+1964-0x1114),NON_GSM,(0xd14+4169-0x1d5c),
+(0x1209+4367-0x22f4),(0x17f1+2117-0x2033),NON_GSM,(0xf64+5654-0x251b),NON_GSM,
+NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+NON_GSM,NON_GSM,(0xf51+5036-0x229d),NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+(0xbb8+25-0xb76),(0x195b+1282-0x1e4f),(0x1f3+1398-0x74d),(0x51+8972-0x2354),
+NON_GSM,(0x1f49+1674-0x25b4),NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+NON_GSM,(0x102a+5826-0x268f),NON_GSM,NON_GSM,NON_GSM,NON_GSM,
+(0x1cc1+2470-0x260b),NON_GSM,(0x916+1941-0x10a0),NON_GSM,NON_GSM,NON_GSM,
+(0x4c4+2793-0xf4f),NON_GSM,NON_GSM,(0xa15+2263-0x12ce),(0x235d+419-0x2481),
+NON_GSM,NON_GSM,NON_GSM,(0x1714+3892-0x25cd),(0xb40+4298-0x1bfb),
+(0x1ad6+1878-0x220f),NON_GSM,(0x890+1233-0xd5d),(0xf83+1929-0x1707),NON_GSM,
+NON_GSM,(0x81f+2028-0x1004),NON_GSM,NON_GSM,NON_GSM,NON_GSM,(0x11dd+1401-0x16d9)
+,(0xf86+2980-0x1b22),NON_GSM,NON_GSM,NON_GSM,(0xa66+7080-0x2592),NON_GSM,
+(0xaa1+4695-0x1cec),(0x15b4+3890-0x24e0),NON_GSM,NON_GSM,(0x11e3+3877-0x208a),
+NON_GSM,NON_GSM,NON_GSM};const unsigned short 
+zte_sms_GSM7_PORTUGUESE_To_UCS2_Table[]={(0x4b2+7272-0x20da),
+(0x106a+5807-0x2676),(0x1119+4406-0x222b),(0x105b+3214-0x1c44),
+(0xc08+4581-0x1d03),(0x26f2+232-0x26f1),(0x3ef+7025-0x1e66),(0x384+7925-0x218c),
+(0x9d2+5086-0x1cbd),(0xa23+5530-0x1ed6),(0xfe9+5892-0x26e3),(0x660+854-0x8e2),
+(0x536+815-0x771),(0x14ef+62-0x1520),(0xc39+1705-0x1221),(0x34a+2437-0xbee),
+(0x964+6320-0x1e80),(0xb9b+3200-0x17bc),(0x832+4314-0x1862),(0x6bc+1796-0xcf9),
+(0x452+5602-0x1974),8734,(0xed5+583-0x10be),(0x15ec+162-0x1632),8364,
+(0xf71+3100-0x1aba),(0x7a0+6330-0x1fde),(0x840+3427-0x1503),(0x1985+1551-0x1ed2)
+,(0x16b+4015-0x1038),(0xe8f+565-0xffa),(0x1ac4+1900-0x2167),(0x3ed+4147-0x1400),
+(0x5f+2667-0xaa9),(0x3f4+198-0x498),(0x6bc+846-0x9e7),(0x8b0+6442-0x212a),
+(0xa2f+1765-0x10ef),(0x10ab+2598-0x1aab),(0xaca+2094-0x12d1),
+(0x135a+3522-0x20f4),(0xe3b+814-0x1140),(0x831+602-0xa61),(0x805+3388-0x1516),
+(0x165f+1763-0x1d16),(0x10fc+3323-0x1dca),(0x1735+2862-0x2235),
+(0x18b4+541-0x1aa2),(0x1082+5121-0x2453),(0xddd+4407-0x1ee3),(0xf91+3969-0x1ee0)
+,(0xa67+6090-0x21fe),(0x1aa+5679-0x17a5),(0x471+2560-0xe3c),(0x18b8+1002-0x1c6c)
+,(0xd71+953-0x10f3),(0x7d0+7087-0x2347),(0x680+3332-0x134b),(0x139c+4529-0x2513)
+,(0x452+215-0x4ee),(0x1b7c+1181-0x1fdd),(0x100d+241-0x10c1),(0xd12+1897-0x143d),
+(0xef7+5080-0x2290),(0x2b6+5872-0x18d9),(0x266+1688-0x8bd),(0x19a6+2126-0x21b2),
+(0x1d60+2453-0x26b2),(0x18aa+1451-0x1e11),(0xf62+4772-0x21c1),
+(0x1d13+1728-0x238d),(0x1955+840-0x1c56),(0x1494+4534-0x2602),
+(0x488+3590-0x1245),(0x1468+3603-0x2231),(0x1523+1144-0x1950),(0x374+3149-0xf75)
+,(0xba+2050-0x86f),(0xed4+4026-0x1e40),(0x130+5326-0x15af),(0xeec+4562-0x206e),
+(0x1854+229-0x18e8),(0x909+2441-0x1240),(0xb6b+2178-0x139a),(0x1350+3097-0x1f15)
+,(0xc41+4750-0x1e7a),(0x862+257-0x90d),(0x5c2+5667-0x1b8e),(0x48f+2930-0xfa9),
+(0xe6+2288-0x97d),(0xf26+3432-0x1c34),(0x17cd+1158-0x1b90),(0x151a+1199-0x18f4),
+(0x845+1937-0xefc),(0x1034+5378-0x245a),(0x9a3+939-0xca7),(0x5c8+6972-0x2086),
+(0x909+2762-0x1372),(0xbb5+1275-0x104e),(0xee3+4365-0x1f8d),(0x21f7+268-0x229f),
+(0x1dc+6217-0x19c0),(0xf1b+1688-0x154d),(0x6e9+1391-0xbf1),(0x2181+930-0x24bb),
+(0x11d7+4268-0x221a),(0xfe1+5953-0x26b8),(0x1316+3373-0x1fd8),
+(0x1727+882-0x1a2d),(0xecb+3638-0x1c94),(0x1263+1735-0x18bc),(0xd43+5867-0x23bf)
+,(0x8db+42-0x895),(0x48d+5485-0x1989),(0x41b+2793-0xe92),(0x356+8372-0x2397),
+(0x323+6481-0x1c00),(0x708+1977-0xe4c),(0xe6b+970-0x11bf),(0xdf+5558-0x161e),
+(0x5e1+2487-0xf20),(0x1f50+714-0x21a1),(0xe10+3633-0x1bc7),(0x6f2+8401-0x26e0),
+(0x96a+3322-0x156f),(0x6dc+2764-0x1148),(0xde8+4809-0x1fb5),(0xb87+3235-0x174a)}
+;const unsigned short zte_sms_GSMDefault_To_UCS2_Table[]={(0x18c7+600-0x1adf),
+(0x1c90+1430-0x2183),(0x249+6923-0x1d30),(0xc1+2121-0x865),(0x1ced+1958-0x23ab),
+(0x1e4+9004-0x2427),(0x287+2454-0xb24),(0x1b62+1924-0x21fa),(0x1814+2668-0x218e)
+,(0x128+6626-0x1a43),(0xd14+1707-0x13b5),(0x1aa1+25-0x19e2),(0x130a+2182-0x1a98)
+,(0x96b+4167-0x19a5),(0x6f5+5016-0x19c8),(0xb2f+5108-0x1e3e),(0xca9+3138-0x1557)
+,(0xbe6+263-0xc8e),(0x82a+5142-0x189a),(0x3ff+4562-0x123e),(0xe79+6929-0x25ef),
+(0x1b3c+3632-0x25c3),(0x728+8574-0x2506),(0xb49+2311-0x10a8),
+(0x1513+1051-0x158b),(0x1321+1749-0x165e),(0x796+1886-0xb56),(0xf03+1523-0x1456)
+,(0x1a8b+9-0x19ce),(0x650+7817-0x23f3),(0x4ef+1479-0x9d7),(0x545+6387-0x1d6f),
+(0x163a+141-0x16a7),(0x2309+222-0x23c6),(0x1f90+1376-0x24ce),
+(0x231f+1042-0x270e),(0xef1+1484-0x1419),(0x881+6643-0x224f),
+(0x101f+1783-0x16f0),(0x969+4335-0x1a31),(0x4f+6461-0x1964),(0x83b+7123-0x23e5),
+(0x22c3+57-0x22d2),(0x1fad+1846-0x26b8),(0x2a7+5591-0x1852),(0xf0a+4978-0x224f),
+(0x22c+8297-0x2267),(0x396+3426-0x10c9),(0x2144+184-0x21cc),(0xc88+2988-0x1803),
+(0x1e56+1409-0x23a5),(0x47c+2879-0xf88),(0x16b3+2720-0x211f),(0x694+3-0x662),
+(0xc0+3937-0xfeb),(0x1110+3859-0x1fec),(0x936+5423-0x1e2d),(0x9d4+4467-0x1b0e),
+(0x2147+560-0x233d),(0x1c19+680-0x1e86),(0x8cd+2490-0x124b),(0x1ab1+2394-0x23ce)
+,(0x7c+9569-0x259f),(0x9d9+2086-0x11c0),(0x1da+2970-0xcd3),(0x7f9+7720-0x25e0),
+(0x21af+302-0x229b),(0x1ee1+1856-0x25de),(0x125d+1865-0x1962),
+(0xa31+6852-0x24b0),(0xf90+600-0x11a2),(0x223b+921-0x258d),(0x7e6+1228-0xc6a),
+(0xbda+5319-0x2058),(0xbb2+2411-0x14d3),(0x1917+1671-0x1f53),(0x288+4943-0x158b)
+,(0x1ac+936-0x507),(0xb27+1734-0x119f),(0x9a8+3761-0x180a),(0x1b2f+2152-0x2347),
+(0x15f3+3325-0x229f),(0x11e9+2634-0x1be1),(0xe69+4290-0x1ed8),
+(0x11c1+3610-0x1f87),(0x112+6237-0x191a),(0x77f+717-0x9f6),(0x1015+4679-0x2205),
+(0x522+215-0x5a1),(0xbd8+6583-0x2536),(0x91f+2155-0x1130),(0x1e12+2084-0x2572),
+(0x1168+3296-0x1d72),(0x1001+2596-0x1954),(0x1a76+1738-0x2064),(0x965+257-0x9bf)
+,(0x18f4+1510-0x1e1b),(0x1c8f+954-0x1fe8),(0x1a3a+2574-0x23e6),
+(0x5bb+3612-0x1374),(0x1094+5497-0x25a9),(0x487+6880-0x1f02),
+(0x103c+5415-0x24fd),(0xa8d+6136-0x221e),(0x808+6006-0x1f16),(0x926+6240-0x211d)
+,(0x104d+3690-0x1e4d),(0x31f+6631-0x1c9b),(0xeb4+431-0xff7),(0x1b6f+1523-0x20f5)
+,(0x566+8355-0x259b),(0x93c+4032-0x188d),(0x166a+3801-0x24d3),
+(0xed3+1408-0x13e2),(0xee7+246-0xf6b),(0x1a52+884-0x1d53),(0x254b+187-0x2592),
+(0x1582+470-0x16e3),(0x2452+224-0x24bc),(0x1472+1149-0x1878),(0x1295+536-0x1435)
+,(0x427+4095-0x13ad),(0x5e0+6986-0x20b0),(0x3e6+5366-0x17f8),
+(0x1a7f+3043-0x256c),(0x111c+2184-0x18b3),(0xa70+5748-0x1fe8),
+(0x75f+3156-0x12d3)};int Bytes2String(const unsigned char*pSrc,char*pDst,int 
+nSrcLength){const char tab[]="0123456789ABCDEF";int i=(0x9a3+3334-0x16a9);if(
+pSrc==NULL||pDst==NULL||nSrcLength<(0x335+8953-0x262e)){return-
+(0xe51+922-0x11ea);}for(i=(0x1ad7+1428-0x206b);i<nSrcLength;i++){*pDst++=tab[*
+pSrc>>(0xcc7+1323-0x11ee)];*pDst++=tab[*pSrc&(0x9f9+6180-0x220e)];pSrc++;}*pDst=
+'\0';return nSrcLength*(0x1799+2932-0x230b);}int String2Bytes(const char*pSrc,
+unsigned char*pDst,int nSrcLength){int i=(0x8b5+3001-0x146e);if(pSrc==NULL||pDst
+==NULL||nSrcLength<(0xacf+1195-0xf7a)){return-(0x5aa+128-0x629);}for(i=
+(0x12ac+5200-0x26fc);i<nSrcLength;i+=(0x2d2+9201-0x26c1)){if(*pSrc>=
+((char)(0xb82+641-0xdd3))&&*pSrc<=((char)(0xed3+4889-0x21b3))){*pDst=(*pSrc-
+((char)(0x69d+1218-0xb2f)))<<(0x1d96+397-0x1f1f);}else{*pDst=((toupper(*pSrc)-
+((char)(0x139d+2311-0x1c63)))+(0x1c2+2931-0xd2b))<<(0xd81+2334-0x169b);}pSrc++;
+if(*pSrc>=((char)(0xdc8+4473-0x1f11))&&*pSrc<=((char)(0x9ec+464-0xb83))){*pDst|=
+*pSrc-((char)(0x924+6613-0x22c9));}else{*pDst|=(toupper(*pSrc)-
+((char)(0x5b6+1873-0xcc6)))+(0xa35+3496-0x17d3);}pSrc++;pDst++;}return 
+nSrcLength/(0xa55+2418-0x13c5);}int EncodeUcs2(const char*pSrc,unsigned char*
+pDst,int nSrcLength){if(pSrc==NULL||pDst==NULL||nSrcLength<(0x1400+4227-0x2483))
+{return-(0x436+7739-0x2270);}(void)String2Bytes(pSrc,pDst,(int)nSrcLength);
+return nSrcLength/(0x256+1171-0x6e7);}int Encode7bit(const char*pSrc,unsigned 
+char*pDst,int nSrcLength){int nSrc;int nDst;int nChar;unsigned char nLeft=
+(0x90+654-0x31e);if(pSrc==NULL||pDst==NULL||nSrcLength<(0xc96+940-0x1042)){
+return-(0xea1+178-0xf52);}nSrc=(0x119f+1688-0x1837);nDst=(0x10a6+4749-0x2333);
+while(nSrc<nSrcLength){nChar=nSrc&(0xb16+3956-0x1a83);if(nChar==
+(0x146+8706-0x2348)){nLeft=*pSrc;if((g_zUfiSms_ConcatSms.total_msg>
+(0xac8+1292-0xfd3))&&(nSrc==(nSrcLength-(0x1391+1514-0x197a)))){nDst++;}}else{*
+pDst=(*pSrc<<((0x12cf+1570-0x18e9)-nChar))|nLeft;nLeft=*pSrc>>nChar;pDst++;nDst
+++;}pSrc++;nSrc++;}return nDst;}SINT32 zUfiSms_EncodePdu_DeliverReport(CHAR*pDst
+,UINT8 TP_FCS){SINT32 nLength=(0xc07+2603-0x1632);SINT32 nDstLength=
+(0x481+281-0x59a);UINT8 buf[(0x92b+6721-0x226c)]={(0x1ccc+2011-0x24a7)};if(NULL
+==pDst){return-(0x6cf+2675-0x1141);}if(TP_FCS!=(0x7d1+7393-0x24b2)){buf[
+(0xccb+1431-0x1262)]=(0x1d70+1231-0x223f);buf[(0x1b+8018-0x1f6c)]=TP_FCS;buf[
+(0x1074+5596-0x264e)]=(0x1919+1339-0x1e54);nDstLength+=Bytes2String(buf,&pDst[
+nDstLength],(0xbd9+6269-0x2453));}else{buf[(0xb51+5643-0x215c)]=
+(0x8b+8570-0x2205);buf[(0xa28+5399-0x1f3e)]=(0x4b6+485-0x69b);nDstLength+=
+Bytes2String(buf,&pDst[nDstLength],(0x688+2900-0x11da));}return nDstLength;}
+unsigned long zUfiSms_ConvertAsciiToGsmDefault(const unsigned char*inputs,
+unsigned char*outputs,unsigned long len){unsigned long i=(0x593+3368-0x12bb);
+unsigned long j=(0x256+7690-0x2060);unsigned long k=(0x7b5+3688-0x161d);if(NULL
+==inputs||NULL==outputs){printf(
 "\x73\x6d\x73\x3a\x69\x6e\x76\x61\x6c\x69\x64\x20\x69\x6e\x70\x75\x74\x73");
-return(0x92c+3594-0x1736);}for(i=(0x1e88+1604-0x24cc);i<len;i++){j=inputs[i];if(
-g_zUfiSms_AsciiToGsmdefaultTable[j]<(0x897+2447-0x1127)){outputs[k]=
+return(0x150a+3755-0x23b5);}for(i=(0x248d+640-0x270d);i<len;i++){j=inputs[i];if(
+g_zUfiSms_AsciiToGsmdefaultTable[j]<(0x452+4028-0x130f)){outputs[k]=
 g_zUfiSms_AsciiToGsmdefaultTable[j];}else{outputs[k]=(
-g_zUfiSms_AsciiToGsmdefaultTable[j]&65280)>>(0x230b+1030-0x2709);k++;outputs[k]=
-(g_zUfiSms_AsciiToGsmdefaultTable[j]&(0x869+4737-0x19eb));}k++;}return k;}
+g_zUfiSms_AsciiToGsmdefaultTable[j]&65280)>>(0x64b+2213-0xee8);k++;outputs[k]=(
+g_zUfiSms_AsciiToGsmdefaultTable[j]&(0x17b6+1157-0x1b3c));}k++;}return k;}
 unsigned long zUfiSms_ConvertUcs2ToSpanish(const unsigned char*def,unsigned char
-*gsm_default,unsigned long len){unsigned long i=(0x1232+2520-0x1c0a);unsigned 
-long k=(0x16bc+1206-0x1b72);unsigned long p=(0x4c2+6704-0x1ef2);unsigned long 
-tmp=(0x2f0+8377-0x23a9);unsigned long s1=(0x12eb+436-0x149f),s2=
-(0x894+1082-0xcce);unsigned long q=(0x15d1+888-0x1949);s1=sizeof(
+*gsm_default,unsigned long len){unsigned long i=(0x1b71+915-0x1f04);unsigned 
+long k=(0xd63+2192-0x15f3);unsigned long p=(0x7c3+4410-0x18fd);unsigned long tmp
+=(0x11c4+4317-0x22a1);unsigned long s1=(0x4bd+642-0x73f),s2=(0x3ad+8936-0x2695);
+unsigned long q=(0x613+7939-0x2516);s1=sizeof(
 zte_sms_GSM7_SPANISH_To_UCS2_Table_Ex)/sizeof(
-zte_sms_GSM7_SPANISH_To_UCS2_Table_Ex[(0xc5d+1601-0x129e)]);s2=sizeof(
+zte_sms_GSM7_SPANISH_To_UCS2_Table_Ex[(0x931+1755-0x100c)]);s2=sizeof(
 Ucs2_To_Gsm7_SPANISH_Table_UCS)/sizeof(Ucs2_To_Gsm7_SPANISH_Table_UCS[
-(0x26a+2832-0xd7a)]);for(i=(0x132a+76-0x1376);i<len;i++){if(def[i]==
-(0x172+6150-0x1978)){i++;if(Ucs2_To_Gsm7_SPANISH_Table_ASC[def[i]]!=NON_GSM){
+(0x1b9+4545-0x137a)]);for(i=(0xbaf+5204-0x2003);i<len;i++){if(def[i]==
+(0x149c+3036-0x2078)){i++;if(Ucs2_To_Gsm7_SPANISH_Table_ASC[def[i]]!=NON_GSM){
 gsm_default[k]=Ucs2_To_Gsm7_SPANISH_Table_ASC[def[i]];k++;continue;}else if((
-Ucs2_To_Gsm7_SPANISH_Table_ASC[def[i]]==NON_GSM)&&(def[i]==(0x1129+2511-0x1ad8))
-){gsm_default[k]=(0x1b6a+468-0x1d1e);k++;continue;}for(q=(0x1096+2447-0x1a25);q<
-s1;q++){if(def[i]==zte_sms_GSM7_SPANISH_To_UCS2_Table_Ex[q][(0x893+6226-0x20e4)]
-){gsm_default[k]=(0x120+3076-0xd09);k++;gsm_default[k]=
-zte_sms_GSM7_SPANISH_To_UCS2_Table_Ex[q][(0x177a+2469-0x211f)];break;}}}else{tmp
-=(def[i]<<(0x13db+2306-0x1cd5))+def[i+(0xf20+3107-0x1b42)];i++;if(tmp==
-(0x217c+5214-0x152e)){gsm_default[k]=(0xf76+342-0x10b1);k++;gsm_default[k]=
-(0x1ab5+2872-0x2588);k++;}for(p=(0x14cc+1243-0x19a7);p<s2;p++){if(tmp==
-Ucs2_To_Gsm7_SPANISH_Table_UCS[p][(0x1433+473-0x160b)]){gsm_default[k]=
-Ucs2_To_Gsm7_SPANISH_Table_UCS[p][(0xda6+6491-0x2701)];break;}}}k++;}gsm_default
-[k]='\0';return k;}unsigned long zUfiSms_ConvertUcs2ToPortuguese(const unsigned 
+Ucs2_To_Gsm7_SPANISH_Table_ASC[def[i]]==NON_GSM)&&(def[i]==(0x698+1069-0xaa5))){
+gsm_default[k]=(0x497+1153-0x8f8);k++;continue;}for(q=(0x1baa+464-0x1d7a);q<s1;q
+++){if(def[i]==zte_sms_GSM7_SPANISH_To_UCS2_Table_Ex[q][(0x3b3+1466-0x96c)]){
+gsm_default[k]=(0x9b8+6223-0x21ec);k++;gsm_default[k]=
+zte_sms_GSM7_SPANISH_To_UCS2_Table_Ex[q][(0x114a+987-0x1525)];break;}}}else{tmp=
+(def[i]<<(0x1b8f+829-0x1ec4))+def[i+(0x2bc+405-0x450)];i++;if(tmp==
+(0x24ef+6182-0x1c69)){gsm_default[k]=(0x299+1486-0x84c);k++;gsm_default[k]=
+(0xbd4+1182-0x100d);k++;}for(p=(0xd8d+3923-0x1ce0);p<s2;p++){if(tmp==
+Ucs2_To_Gsm7_SPANISH_Table_UCS[p][(0xfe1+1315-0x1503)]){gsm_default[k]=
+Ucs2_To_Gsm7_SPANISH_Table_UCS[p][(0x4a+7035-0x1bc5)];break;}}}k++;}gsm_default[
+k]='\0';return k;}unsigned long zUfiSms_ConvertUcs2ToPortuguese(const unsigned 
 char*def,unsigned char*gsm_default,unsigned long len){unsigned long i=
-(0x1547+2940-0x20c3);unsigned long k=(0xa9+9058-0x240b);unsigned long p=
-(0x150+9340-0x25cc);unsigned long tmp=(0xbc6+3856-0x1ad6);unsigned long s1=
-(0x6fd+5405-0x1c1a),s2=(0x77d+2927-0x12ec);unsigned long q=(0x1b06+424-0x1cae);
+(0x1477+2929-0x1fe8);unsigned long k=(0x404+1225-0x8cd);unsigned long p=
+(0x681+1259-0xb6c);unsigned long tmp=(0xb11+5801-0x21ba);unsigned long s1=
+(0x610+7549-0x238d),s2=(0x926+2497-0x12e7);unsigned long q=(0x1df9+402-0x1f8b);
 s1=sizeof(zte_sms_GSM7_PORTUGUESE_To_UCS2_Table_Ex)/sizeof(
-zte_sms_GSM7_PORTUGUESE_To_UCS2_Table_Ex[(0x583+7910-0x2469)]);s2=sizeof(
+zte_sms_GSM7_PORTUGUESE_To_UCS2_Table_Ex[(0x1206+4681-0x244f)]);s2=sizeof(
 Ucs2_To_Gsm7_PORTUGUESE_Table_UCS)/sizeof(Ucs2_To_Gsm7_PORTUGUESE_Table_UCS[
-(0x42d+5289-0x18d6)]);for(i=(0x1e56+621-0x20c3);i<len;i++){if(def[i]==
-(0x3fd+4215-0x1474)){i++;if(Ucs2_To_Gsm7_PORTUGUESE_Table_ASC[def[i]]!=NON_GSM){
+(0xd97+1629-0x13f4)]);for(i=(0x795+5296-0x1c45);i<len;i++){if(def[i]==
+(0xd27+6161-0x2538)){i++;if(Ucs2_To_Gsm7_PORTUGUESE_Table_ASC[def[i]]!=NON_GSM){
 gsm_default[k]=Ucs2_To_Gsm7_PORTUGUESE_Table_ASC[def[i]];k++;continue;}else if((
-Ucs2_To_Gsm7_PORTUGUESE_Table_ASC[def[i]]==NON_GSM)&&(def[i]==(0xc1+2206-0x93f))
-){gsm_default[k]=(0x16f4+3000-0x228c);k++;continue;}for(q=(0x92+7230-0x1cd0);q<
+Ucs2_To_Gsm7_PORTUGUESE_Table_ASC[def[i]]==NON_GSM)&&(def[i]==(0x17a+1565-0x777)
+)){gsm_default[k]=(0x9b+9835-0x26e6);k++;continue;}for(q=(0xbd6+2026-0x13c0);q<
 s1;q++){if(def[i]==zte_sms_GSM7_PORTUGUESE_To_UCS2_Table_Ex[q][
-(0x8fa+5987-0x205c)]){gsm_default[k]=(0x1637+1967-0x1dcb);k++;gsm_default[k]=
-zte_sms_GSM7_PORTUGUESE_To_UCS2_Table_Ex[q][(0x471+8122-0x242b)];break;}}}else{
-tmp=(def[i]<<(0x1f9+4613-0x13f6))+def[i+(0x1434+2087-0x1c5a)];i++;if(tmp==8364){
-gsm_default[k]=(0x108d+656-0x1302);k++;gsm_default[k]=(0x152+4114-0x10ff);k++;
-continue;}for(p=(0x89d+987-0xc78);p<s2;p++){if(tmp==
-Ucs2_To_Gsm7_PORTUGUESE_Table_UCS[p][(0x34b+9051-0x26a5)]){gsm_default[k]=
-Ucs2_To_Gsm7_PORTUGUESE_Table_UCS[p][(0xa6+7209-0x1ccf)];break;}}}k++;}
+(0xad6+4636-0x1cf1)]){gsm_default[k]=(0x149d+1605-0x1ac7);k++;gsm_default[k]=
+zte_sms_GSM7_PORTUGUESE_To_UCS2_Table_Ex[q][(0x12d0+4200-0x2338)];break;}}}else{
+tmp=(def[i]<<(0x2184+1198-0x262a))+def[i+(0x2275+407-0x240b)];i++;if(tmp==
+(0x2112+1696-0x706)){gsm_default[k]=(0xf2c+5312-0x23d1);k++;gsm_default[k]=
+(0x240f+62-0x23e8);k++;continue;}for(p=(0x105d+3974-0x1fe3);p<s2;p++){if(tmp==
+Ucs2_To_Gsm7_PORTUGUESE_Table_UCS[p][(0xdfc+4643-0x201e)]){gsm_default[k]=
+Ucs2_To_Gsm7_PORTUGUESE_Table_UCS[p][(0x13c9+2426-0x1d43)];break;}}}k++;}
 gsm_default[k]='\0';return k;}unsigned long zUfiSms_ConvertUcs2ToGsmDefault(
 const unsigned char*def,unsigned char*gsm_default,unsigned long len){unsigned 
-long i=(0x13c0+105-0x1429);unsigned long k=(0x1c56+1752-0x232e);unsigned long p=
-(0x2194+1204-0x2648);unsigned long tmp=(0x19c+2105-0x9d5);unsigned long s1=
-(0x60d+2465-0xfae),s2=(0xb43+3756-0x19ef);unsigned long q=(0x17b5+3705-0x262e);
-s1=sizeof(zte_sms_GSMDefault_To_UCS2_Table_Ex)/sizeof(
-zte_sms_GSMDefault_To_UCS2_Table_Ex[(0x1dd5+610-0x2037)]);s2=sizeof(
+long i=(0x14e1+4318-0x25bf);unsigned long k=(0x1240+4195-0x22a3);unsigned long p
+=(0x1909+323-0x1a4c);unsigned long tmp=(0x194c+178-0x19fe);unsigned long s1=
+(0x987+3630-0x17b5),s2=(0xe66+281-0xf7f);unsigned long q=(0x51a+6498-0x1e7c);s1=
+sizeof(zte_sms_GSMDefault_To_UCS2_Table_Ex)/sizeof(
+zte_sms_GSMDefault_To_UCS2_Table_Ex[(0x1b20+2951-0x26a7)]);s2=sizeof(
 UCS2_To_GSMDefault_Table_UCS2)/sizeof(UCS2_To_GSMDefault_Table_UCS2[
-(0x707+1218-0xbc9)]);for(i=(0x82d+1919-0xfac);i<len;i++){if(def[i]==
-(0xbfc+3067-0x17f7)){i++;if(UCS2_To_GSMDefault_Table_ASC[def[i]]!=NON_GSM){
+(0xff3+4074-0x1fdd)]);for(i=(0x477+1025-0x878);i<len;i++){if(def[i]==
+(0xf0f+5488-0x247f)){i++;if(UCS2_To_GSMDefault_Table_ASC[def[i]]!=NON_GSM){
 gsm_default[k]=UCS2_To_GSMDefault_Table_ASC[def[i]];k++;continue;}else if((
-UCS2_To_GSMDefault_Table_ASC[def[i]]==NON_GSM)&&(def[i]==(0x157b+1449-0x1b04))){
-gsm_default[k]=(0x10e2+1164-0x154e);k++;continue;}for(q=(0x1ae5+2805-0x25da);q<
-s1;q++){if(def[i]==zte_sms_GSMDefault_To_UCS2_Table_Ex[q][(0x1fe2+961-0x23a2)]){
-gsm_default[k]=(0x232+3757-0x10c4);k++;gsm_default[k]=
-zte_sms_GSMDefault_To_UCS2_Table_Ex[q][(0x15b4+819-0x18e7)];break;}}}else{tmp=(
-def[i]<<(0xe8d+6092-0x2651))+def[i+(0x8df+3699-0x1751)];i++;if(tmp==
-(0x2242+9433-0x266f)){gsm_default[k]=(0x702+3583-0x14e6);k++;gsm_default[k]=
-(0x165+1809-0x811);k++;continue;}for(p=(0xfa6+3990-0x1f3c);p<s2;p++){if(tmp==
-UCS2_To_GSMDefault_Table_UCS2[p][(0xd87+3484-0x1b22)]){gsm_default[k]=
-UCS2_To_GSMDefault_Table_UCS2[p][(0x5fb+2871-0x1132)];break;}}}k++;}gsm_default[
-k]='\0';return k;}UINT8 zUfiSms_TsIntToBcd(const UINT8 i){return(UINT8)(((i%
-(0x1ed+1316-0x707))+((i/(0x116c+4881-0x2473))<<(0x103f+4106-0x2045))));}void 
+UCS2_To_GSMDefault_Table_ASC[def[i]]==NON_GSM)&&(def[i]==(0x331+438-0x4c7))){
+gsm_default[k]=(0x7d9+4981-0x1b2e);k++;continue;}for(q=(0x8d0+3323-0x15cb);q<s1;
+q++){if(def[i]==zte_sms_GSMDefault_To_UCS2_Table_Ex[q][(0x18a+8822-0x23ff)]){
+gsm_default[k]=(0x2cd+3762-0x1164);k++;gsm_default[k]=
+zte_sms_GSMDefault_To_UCS2_Table_Ex[q][(0x102c+442-0x11e6)];break;}}}else{tmp=(
+def[i]<<(0xc21+5554-0x21cb))+def[i+(0x9b7+4465-0x1b27)];i++;if(tmp==8364){
+gsm_default[k]=(0x680+340-0x7b9);k++;gsm_default[k]=(0x255+2723-0xc93);k++;
+continue;}for(p=(0xa36+2701-0x14c3);p<s2;p++){if(tmp==
+UCS2_To_GSMDefault_Table_UCS2[p][(0x1e5+4927-0x1523)]){gsm_default[k]=
+UCS2_To_GSMDefault_Table_UCS2[p][(0x2ac+1231-0x77b)];break;}}}k++;}gsm_default[k
+]='\0';return k;}UINT8 zUfiSms_TsIntToBcd(const UINT8 i){return(UINT8)(((i%
+(0x823+7231-0x2458))+((i/(0x715+266-0x815))<<(0x102d+5061-0x23ee))));}void 
 zUfiSms_DecodeRelativeTime(UINT8 iValidTime,T_zUfiSms_TimeStamp*ptTimeStamp){
-uint32 i=(0x1a8c+1654-0x2102);if(ptTimeStamp!=NULL){memset((void*)ptTimeStamp,
-(0x4dc+7665-0x22cd),sizeof(wms_timestamp_s_type));if(iValidTime<
-(0x1f81+1381-0x2456)){i=(iValidTime+(0x54c+6340-0x1e0f))*(0x88f+1729-0xf4b);
-ptTimeStamp->hour=(UINT8)zUfiSms_TsIntToBcd((UINT8)(i/(0xf6a+3301-0x1c13)));
-ptTimeStamp->minute=(UINT8)zUfiSms_TsIntToBcd((UINT8)(i%(0x662+2583-0x103d)));}
-else if(iValidTime<(0x69b+4849-0x18e5)){i=(iValidTime-(0xd89+4699-0x1f55))*
-(0x11a9+1276-0x1687);ptTimeStamp->hour=(UINT8)zUfiSms_TsIntToBcd((UINT8)(
-(0x280+4066-0x1256)+i/(0x4cb+1637-0xaf4)));ptTimeStamp->minute=(UINT8)
-zUfiSms_TsIntToBcd((UINT8)(i%(0xc56+2114-0x145c)));}else if(iValidTime<
-(0xf08+3972-0x1dc7)){i=iValidTime-(0x1184+4749-0x236b);ptTimeStamp->month=(UINT8
-)zUfiSms_TsIntToBcd((UINT8)(i/(0x22cd+802-0x25d1)));ptTimeStamp->day=(UINT8)
-zUfiSms_TsIntToBcd((UINT8)(i%(0xa48+7395-0x270d)));}else{i=(iValidTime-
-(0x1c72+447-0x1d71))*(0x1717+3370-0x243a);ptTimeStamp->year=(UINT8)
-zUfiSms_TsIntToBcd((UINT8)(i/(0x2060+632-0x216b)));ptTimeStamp->month=(UINT8)
-zUfiSms_TsIntToBcd((UINT8)((i%(0x820+149-0x748))/(0x1d45+1419-0x22b2)));
-ptTimeStamp->day=(UINT8)zUfiSms_TsIntToBcd((UINT8)((i%(0x1751+3620-0x2408))%
-(0x151+4181-0x1188)));}}else{printf(
+uint32 i=(0xbdd+5047-0x1f94);if(ptTimeStamp!=NULL){memset((void*)ptTimeStamp,
+(0x7a3+3637-0x15d8),sizeof(wms_timestamp_s_type));if(iValidTime<
+(0x7f8+1545-0xd71)){i=(iValidTime+(0x619+6962-0x214a))*(0x977+113-0x9e3);
+ptTimeStamp->hour=(UINT8)zUfiSms_TsIntToBcd((UINT8)(i/(0x437+8460-0x2507)));
+ptTimeStamp->minute=(UINT8)zUfiSms_TsIntToBcd((UINT8)(i%(0x202b+304-0x211f)));}
+else if(iValidTime<(0x11da+4219-0x21ae)){i=(iValidTime-(0x118b+1007-0x14eb))*
+(0x773+5977-0x1eae);ptTimeStamp->hour=(UINT8)zUfiSms_TsIntToBcd((UINT8)(
+(0x17ab+850-0x1af1)+i/(0x1671+221-0x1712)));ptTimeStamp->minute=(UINT8)
+zUfiSms_TsIntToBcd((UINT8)(i%(0x185b+2921-0x2388)));}else if(iValidTime<
+(0x15d2+3561-0x22f6)){i=iValidTime-(0x7fb+4514-0x18f7);ptTimeStamp->month=(UINT8
+)zUfiSms_TsIntToBcd((UINT8)(i/(0x64+3443-0xdb9)));ptTimeStamp->day=(UINT8)
+zUfiSms_TsIntToBcd((UINT8)(i%(0x90c+4632-0x1b06)));}else{i=(iValidTime-
+(0x1ee3+226-0x1f05))*(0x13d8+2690-0x1e53);ptTimeStamp->year=(UINT8)
+zUfiSms_TsIntToBcd((UINT8)(i/(0x1a81+283-0x1a2f)));ptTimeStamp->month=(UINT8)
+zUfiSms_TsIntToBcd((UINT8)((i%(0x7a9+4636-0x1858))/(0x191a+3580-0x26f8)));
+ptTimeStamp->day=(UINT8)zUfiSms_TsIntToBcd((UINT8)((i%(0x1d48+728-0x1eb3))%
+(0x1a02+217-0x1abd)));}}else{printf(
 "\x6e\x75\x6c\x6c\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x64\x65\x63\x6f\x64\x65\x5f\x72\x65\x6c\x61\x74\x69\x76\x65\x5f\x74\x69\x6d\x65"
 );}}int zUfiSms_CharToInt(char*pCharArray,int iLen,unsigned char*pIntArray){int 
-i=(0xab4+1182-0xf52);if(pIntArray==NULL||pCharArray==NULL){return ZUFI_FAIL;}for
-(i=(0x10fd+2353-0x1a2e);i<iLen;i++){pIntArray[i]=pCharArray[i]-
-((char)(0x3c+7362-0x1cce));}return ZUFI_SUCC;}void zUfiSms_FillGlobalTpudGsm7(
+i=(0x199+1982-0x957);if(pIntArray==NULL||pCharArray==NULL){return ZUFI_FAIL;}for
+(i=(0x1401+420-0x15a5);i<iLen;i++){pIntArray[i]=pCharArray[i]-
+((char)(0x1f4+3580-0xfc0));}return ZUFI_SUCC;}void zUfiSms_FillGlobalTpudGsm7(
 T_zUfiSms_SubmitTpdu*ptSubmit,T_zUfiSms_ConcatInfo*ptConcatSms,
-T_zUfiSms_DbStoreData*ptDbSaveData){int i=(0x1238+139-0x12c3);if(ptConcatSms->
-total_msg>(0x110+3512-0xec7)){g_zUfiSms_SendingSms.TP_UDHI=(0xbbf+5749-0x2233);
-g_zUfiSms_SendingSms.TP_UD[(0x48f+2439-0xe16)]=(0x1787+1562-0x1d9c);
-g_zUfiSms_SendingSms.TP_UD[(0xc54+4163-0x1c96)]=(0x1352+288-0x146d);
-g_zUfiSms_SendingSms.TP_UD[(0x9b4+6277-0x2237)]=(0xddf+5997-0x2549);
-g_zUfiSms_SendingSms.TP_UD[(0x100c+4612-0x220d)]=(char)ptDbSaveData->concat_info
-[(0xb2+2596-0xad6)]%(0xc17+5322-0x1fe2);g_zUfiSms_SendingSms.TP_UD[
-(0x460+5578-0x1a26)]=(char)ptConcatSms->total_msg;g_zUfiSms_SendingSms.TP_UD[
-(0x26d+4930-0x15aa)]=(char)ptConcatSms->current_sending+(0xc06+618-0xe6f);
-g_zUfiSms_SendingSms.TP_UD[(0x1626+3954-0x2592)]=(0x8ef+6495-0x2248);for(i=
-(0x991+6627-0x2374);i<ptSubmit->user_data.sm_len;i++){g_zUfiSms_SendingSms.TP_UD
-[i+(0x127b+4967-0x25db)]=ptSubmit->user_data.sm_data[i];}g_zUfiSms_SendingSms.
-TP_UDLength=ptSubmit->user_data.sm_len+(0x39+20-0x46);}else{for(i=
-(0x1b00+986-0x1eda);i<ptSubmit->user_data.sm_len;i++){g_zUfiSms_SendingSms.TP_UD
+T_zUfiSms_DbStoreData*ptDbSaveData){int i=(0x2a5+4254-0x1343);if(ptConcatSms->
+total_msg>(0x1266+925-0x1602)){g_zUfiSms_SendingSms.TP_UDHI=(0x7+8121-0x1fbf);
+g_zUfiSms_SendingSms.TP_UD[(0x755+5590-0x1d2b)]=(0xda4+3318-0x1a95);
+g_zUfiSms_SendingSms.TP_UD[(0x8d5+7615-0x2693)]=(0x6f5+7553-0x2471);
+g_zUfiSms_SendingSms.TP_UD[(0x283+8710-0x2487)]=(0x101+4691-0x1351);
+g_zUfiSms_SendingSms.TP_UD[(0x281+3827-0x1171)]=(char)ptDbSaveData->concat_info[
+(0x1166+3727-0x1ff5)]%(0x1404+3900-0x2241);g_zUfiSms_SendingSms.TP_UD[
+(0x1e60+1951-0x25fb)]=(char)ptConcatSms->total_msg;g_zUfiSms_SendingSms.TP_UD[
+(0x40a+7053-0x1f92)]=(char)ptConcatSms->current_sending+(0x7c7+6781-0x2243);
+g_zUfiSms_SendingSms.TP_UD[(0x1fb3+966-0x2373)]=(0x1d5+1884-0x92b);for(i=
+(0xad+5524-0x1641);i<ptSubmit->user_data.sm_len;i++){g_zUfiSms_SendingSms.TP_UD[
+i+(0x7ad+2893-0x12f3)]=ptSubmit->user_data.sm_data[i];}g_zUfiSms_SendingSms.
+TP_UDLength=ptSubmit->user_data.sm_len+(0x51b+8147-0x24e7);}else{for(i=
+(0x48c+4594-0x167e);i<ptSubmit->user_data.sm_len;i++){g_zUfiSms_SendingSms.TP_UD
 [i]=ptSubmit->user_data.sm_data[i];}g_zUfiSms_SendingSms.TP_UDLength=ptSubmit->
 user_data.sm_len;}}void zUfiSms_FillGlobalTpudUcs2(T_zUfiSms_SubmitTpdu*ptSubmit
 ,T_zUfiSms_ConcatInfo*ptConcatSms,T_zUfiSms_DbStoreData*ptDbSaveData){if(
-ptConcatSms->total_msg>(0x10bc+1834-0x17e5)){g_zUfiSms_SendingSms.TP_UDHI=
-(0x1c9+4659-0x13fb);g_zUfiSms_SendingSms.TP_UD[(0xdb3+2187-0x163e)]=
-(0x1237+799-0x1551);g_zUfiSms_SendingSms.TP_UD[(0xa8f+6106-0x2268)]=
-(0x1e4a+1658-0x24bf);g_zUfiSms_SendingSms.TP_UD[(0x3c0+8161-0x239f)]=
-(0x69c+6601-0x2062);g_zUfiSms_SendingSms.TP_UD[(0x118+8530-0x2267)]=(char)
-ptDbSaveData->concat_info[(0xdc+3724-0xf68)]%(0x1cf7+1461-0x21ad);
-g_zUfiSms_SendingSms.TP_UD[(0xf9d+735-0x1278)]=(char)ptConcatSms->total_msg;
-g_zUfiSms_SendingSms.TP_UD[(0xb3f+5065-0x1f03)]=(char)ptConcatSms->
-current_sending+(0x1a3+2259-0xa75);(void)Bytes2String(ptSubmit->user_data.
-sm_data,&g_zUfiSms_SendingSms.TP_UD[(0x1fad+830-0x22e5)],ptSubmit->user_data.
-sm_len);}else{(void)Bytes2String(ptSubmit->user_data.sm_data,
-g_zUfiSms_SendingSms.TP_UD,ptSubmit->user_data.sm_len);}}unsigned char 
-zUfiSms_Low2High(unsigned char x){if(x>=((char)(0xe6c+3448-0x1b83))&&x<
-((char)(0x3c2+7155-0x1f4e))){x=(x-((char)(0x18a6+113-0x18b6)))+
-((char)(0x62+4339-0x1114));}return x;}unsigned char zUfiSms_Char2Dec(unsigned 
-char x){unsigned char d=(0x1946+1145-0x1dbf);if(x>=((char)(0x231+6199-0x1a27))&&
-x<((char)(0x202a+98-0x2045))){d=(x-((char)(0x1e6f+984-0x2206)))+
-(0x19bb+970-0x1d7b);}else{d=x-((char)(0x58+9059-0x238b));}return d;}unsigned 
-char zUfiSms_Char2Byte(unsigned char a,unsigned char b){unsigned char data=
-(0x8c6+50-0x8f8);unsigned char l=(0xde9+1301-0x12fe),h=(0x903+126-0x981);a=
-zUfiSms_Low2High(a);b=zUfiSms_Low2High(b);h=zUfiSms_Char2Dec(a);l=
-zUfiSms_Char2Dec(b);data=h*(0xda4+4649-0x1fbd)+l;return data;}void 
-zUfiSms_Str2Bytes(unsigned char*text,int text_len,unsigned char*data,int 
-data_len){int i=(0x9e5+5100-0x1dd1);while((0xa40+3420-0x179a)*i+
-(0x1b+3713-0xe9b)<text_len){data[i]=zUfiSms_Char2Byte(text[(0x37b+5313-0x183a)*i
-],text[(0x67c+7917-0x2567)*i+(0x4d2+4541-0x168e)]);i++;}}int zUfiSms_SplitString
-(char*input,char***output,char cMatchChar){int src=(0x6af+4199-0x1716);int dst=
-(0x19bb+2044-0x21b7);int count=(0x107+3939-0x106a);int size=(0x13d3+2668-0x1e37)
-;char quoted=(0x1f1+6101-0x19c6);char**tmpout=NULL;*output=(char**)malloc(sizeof
-(char*)*size);if(NULL==*output){return-(0x11a6+144-0x1235);}(*output)[count++]=
-input;for(src=dst=(0x11c6+1291-0x16d1);input[src];){char cInputChar=input[src];
-if(!quoted&&cInputChar==cMatchChar){input[dst++]=(0x872+2245-0x1137);while(input
-[++src]&&(int)isspace(input[src])){};if(count>=size){size+=(0x17cd+986-0x1b97);
+ptConcatSms->total_msg>(0x523+3023-0x10f1)){g_zUfiSms_SendingSms.TP_UDHI=
+(0x720+1445-0xcc4);g_zUfiSms_SendingSms.TP_UD[(0x19aa+1509-0x1f8f)]=
+(0x382+3058-0xf6f);g_zUfiSms_SendingSms.TP_UD[(0x5f3+7689-0x23fb)]=
+(0x1407+1401-0x197b);g_zUfiSms_SendingSms.TP_UD[(0x1a34+1968-0x21e2)]=
+(0x796+2694-0x1219);g_zUfiSms_SendingSms.TP_UD[(0x6c7+814-0x9f2)]=(char)
+ptDbSaveData->concat_info[(0x1417+3954-0x2389)]%(0xff5+240-0xfe6);
+g_zUfiSms_SendingSms.TP_UD[(0x1cb+9414-0x268d)]=(char)ptConcatSms->total_msg;
+g_zUfiSms_SendingSms.TP_UD[(0x2e9+5255-0x176b)]=(char)ptConcatSms->
+current_sending+(0xbac+151-0xc42);(void)Bytes2String(ptSubmit->user_data.sm_data
+,&g_zUfiSms_SendingSms.TP_UD[(0x32+6320-0x18dc)],ptSubmit->user_data.sm_len);}
+else{(void)Bytes2String(ptSubmit->user_data.sm_data,g_zUfiSms_SendingSms.TP_UD,
+ptSubmit->user_data.sm_len);}}unsigned char zUfiSms_Low2High(unsigned char x){if
+(x>=((char)(0x13d0+3478-0x2105))&&x<((char)(0x15a6+1193-0x19e8))){x=(x-
+((char)(0xcf7+2971-0x1831)))+((char)(0x175+6391-0x1a2b));}return x;}unsigned 
+char zUfiSms_Char2Dec(unsigned char x){unsigned char d=(0xa96+2689-0x1517);if(x
+>=((char)(0xc62+1501-0x11fe))&&x<((char)(0x6e8+4885-0x19b6))){d=(x-
+((char)(0x12aa+2301-0x1b66)))+(0x1069+5495-0x25d6);}else{d=x-
+((char)(0x34c+5898-0x1a26));}return d;}unsigned char zUfiSms_Char2Byte(unsigned 
+char a,unsigned char b){unsigned char data=(0x1f53+949-0x2308);unsigned char l=
+(0x552+2104-0xd8a),h=(0x2295+10-0x229f);a=zUfiSms_Low2High(a);b=zUfiSms_Low2High
+(b);h=zUfiSms_Char2Dec(a);l=zUfiSms_Char2Dec(b);data=h*(0xe6d+3094-0x1a73)+l;
+return data;}void zUfiSms_Str2Bytes(unsigned char*text,int text_len,unsigned 
+char*data,int data_len){int i=(0x726+3892-0x165a);while((0x77f+7606-0x2533)*i+
+(0x14a4+252-0x159f)<text_len){data[i]=zUfiSms_Char2Byte(text[(0x8d4+6855-0x2399)
+*i],text[(0xc49+2792-0x172f)*i+(0x4ea+5-0x4ee)]);i++;}}int zUfiSms_SplitString(
+char*input,char***output,char cMatchChar){int src=(0x44f+4787-0x1702);int dst=
+(0xc6d+1739-0x1338);int count=(0xaa3+3881-0x19cc);int size=(0x8a7+5710-0x1eed);
+char quoted=(0xb8f+1391-0x10fe);char**tmpout=NULL;*output=(char**)malloc(sizeof(
+char*)*size);if(NULL==*output){return-(0x668+1630-0xcc5);}(*output)[count++]=
+input;for(src=dst=(0x2370+860-0x26cc);input[src];){char cInputChar=input[src];if
+(!quoted&&cInputChar==cMatchChar){input[dst++]=(0x2c+1149-0x4a9);while(input[++
+src]&&(int)isspace(input[src])){};if(count>=size){size+=(0x152+8769-0x2383);
 tmpout=(char**)realloc(*output,sizeof(char*)*size);if(NULL==tmpout){return-
-(0x9e3+482-0xbc4);}*output=tmpout;}(*output)[count++]=input+dst;}else if(!quoted
-&&(cInputChar=='\''||cInputChar==((char)(0x107b+1601-0x169a)))){quoted=
-cInputChar;src++;}else if(cInputChar==quoted){quoted=(0xd25+2540-0x1711);src++;}
+(0xc9d+4264-0x1d44);}*output=tmpout;}(*output)[count++]=input+dst;}else if(!
+quoted&&(cInputChar=='\''||cInputChar==((char)(0x11b0+217-0x1267)))){quoted=
+cInputChar;src++;}else if(cInputChar==quoted){quoted=(0x52a+7228-0x2166);src++;}
 else{if(cInputChar=='\\'&&quoted!='\''){src++;cInputChar=input[src];if(!
-cInputChar){free(*output);*output=NULL;return-(0x1263+4600-0x245a);}}input[dst++
-]=cInputChar;src++;}}input[dst]=(0x1ab5+913-0x1e46);if(quoted){free(*output);*
-output=NULL;return-(0xad+9646-0x265a);}return count;}int zUfiSms_atohex(char c){
-int result=(0x8bd+2875-0x13f8);if(c>=((char)(0x4cb+5256-0x1923))&&c<=
-((char)(0x14af+76-0x14c2))){result=c-((char)(0x12a+4105-0x1103));}else if(c>=
-((char)(0x62+7130-0x1bdb))&&c<=((char)(0x317+5411-0x17d4))){result=(c-
-((char)(0x1814+3211-0x243e)))+(0xaa6+4580-0x1c80);}else if(c>=
-((char)(0x261+4768-0x14c0))&&c<=((char)(0x2210+38-0x21f0))){result=(c-
-((char)(0x141+7559-0x1e87)))+(0x7c7+6017-0x1f3e);}else{at_print(LOG_DEBUG,
+cInputChar){free(*output);*output=NULL;return-(0xb08+4257-0x1ba8);}}input[dst++]
+=cInputChar;src++;}}input[dst]=(0x1c48+1331-0x217b);if(quoted){free(*output);*
+output=NULL;return-(0xd9c+5222-0x2201);}return count;}int zUfiSms_atohex(char c)
+{int result=(0xa3+7521-0x1e04);if(c>=((char)(0x4ba+1147-0x905))&&c<=
+((char)(0x2bb+3183-0xef1))){result=c-((char)(0x134+1457-0x6b5));}else if(c>=
+((char)(0x1bbc+2880-0x269b))&&c<=((char)(0x171a+3136-0x22f4))){result=(c-
+((char)(0xb71+1366-0x1066)))+(0x169f+2876-0x21d1);}else if(c>=
+((char)(0x24f8+327-0x25fe))&&c<=((char)(0x995+3287-0x1626))){result=(c-
+((char)(0xd98+5571-0x231a)))+(0xab2+1111-0xeff);}else{at_print(LOG_DEBUG,
 "\x7a\x55\x66\x69\x53\x6d\x73\x5f\x61\x74\x6f\x68\x65\x78\x20\x65\x72\x72\x6f\x72\x2c\x63\x61\x6e\x20\x75\x6e\x6b\x6e\x6f\x77\x6e\x20\x63\x68\x61\x72\x3a\x25\x63" "\n"
 ,c);return result;}return result;}int zUfiSms_DispatchWtoi(unsigned char*in_ptr,
-int iLength,unsigned char*out_ptr){int low=(0x12ea+241-0x13db);int high=
-(0x527+199-0x5ee);if(in_ptr==NULL||out_ptr==NULL){printf(
+int iLength,unsigned char*out_ptr){int low=(0x7c0+5141-0x1bd5);int high=
+(0x1ba5+1678-0x2233);if(in_ptr==NULL||out_ptr==NULL){printf(
 "\x73\x6d\x73\x3a\x69\x6e\x76\x61\x69\x6c\x64\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72" "\n"
-);return ZUFI_FAIL;}while(iLength>(0x82c+3056-0x141c)){low=in_ptr[iLength-
-(0x1dbc+663-0x2052)]&(0x11c3+3237-0x1e59);high=(in_ptr[iLength-
-(0x1796+370-0x1907)]&(0x924+7021-0x23a1))>>(0x409+3122-0x1037);out_ptr[
-(0x19f8+1109-0x1e4b)*iLength-(0x741+5704-0x1d88)]=g_zUfiSms_DigAscMap[low];
-out_ptr[(0x2ea+1755-0x9c3)*iLength-(0x11+5529-0x15a8)]=g_zUfiSms_DigAscMap[high]
-;iLength--;}return ZUFI_SUCC;}unsigned int zte_wms_convert_PORTUGUESE_To_UCS2(
-const unsigned char*gsmdef,unsigned char*ucs2,unsigned int len){unsigned int i=
-(0x86d+4217-0x18e6);unsigned int j=(0x4ba+6045-0x1c57);unsigned int k=
-(0x6dc+4386-0x17fe);unsigned int p=(0x1cf1+854-0x2047);unsigned int s=
-(0x1fc7+293-0x20ec);s=sizeof(zte_sms_GSM7_PORTUGUESE_To_UCS2_Table_Ex)/sizeof(
-zte_sms_GSM7_PORTUGUESE_To_UCS2_Table_Ex[(0x1339+4943-0x2688)]);for(i=
-(0x1521+2956-0x20ad);i<len;i++){j=gsmdef[i];if(j==(0x1a08+1595-0x2028)){i++;for(
-p=(0x5c3+6041-0x1d5c);p<s;p++){if(zte_sms_GSM7_PORTUGUESE_To_UCS2_Table_Ex[p][
-(0x101+7426-0x1e03)]==gsmdef[i]){ucs2[k]=
-zte_sms_GSM7_PORTUGUESE_To_UCS2_Table_Ex[p][(0xb99+1715-0x124b)]>>
-(0x339+8570-0x24ab);k++;ucs2[k]=(unsigned char)(
-zte_sms_GSM7_PORTUGUESE_To_UCS2_Table_Ex[p][(0x1e6+623-0x454)]);break;}}}else{
-ucs2[k]=zte_sms_GSM7_PORTUGUESE_To_UCS2_Table[j]>>(0xb20+1155-0xf9b);k++;ucs2[k]
-=(unsigned char)(zte_sms_GSM7_PORTUGUESE_To_UCS2_Table[j]);}k++;}ucs2[k]='\0';
+);return ZUFI_FAIL;}while(iLength>(0x112f+2902-0x1c85)){low=in_ptr[iLength-
+(0xd85+4710-0x1fea)]&(0x2ba+7145-0x1e94);high=(in_ptr[iLength-
+(0x1311+447-0x14cf)]&(0x1ad2+1970-0x2194))>>(0x482+8337-0x250f);out_ptr[
+(0x1668+3178-0x22d0)*iLength-(0xaf6+5253-0x1f7a)]=g_zUfiSms_DigAscMap[low];
+out_ptr[(0x20e6+1341-0x2621)*iLength-(0x1412+1026-0x1812)]=g_zUfiSms_DigAscMap[
+high];iLength--;}return ZUFI_SUCC;}unsigned int 
+zte_wms_convert_PORTUGUESE_To_UCS2(const unsigned char*gsmdef,unsigned char*ucs2
+,unsigned int len){unsigned int i=(0x1726+3782-0x25ec);unsigned int j=
+(0x1001+1702-0x16a7);unsigned int k=(0x82f+1772-0xf1b);unsigned int p=
+(0x1860+675-0x1b03);unsigned int s=(0xc40+2459-0x15db);s=sizeof(
+zte_sms_GSM7_PORTUGUESE_To_UCS2_Table_Ex)/sizeof(
+zte_sms_GSM7_PORTUGUESE_To_UCS2_Table_Ex[(0x1eb6+1581-0x24e3)]);for(i=
+(0x490+4303-0x155f);i<len;i++){j=gsmdef[i];if(j==(0x1129+3311-0x1dfd)){i++;for(p
+=(0x19ef+605-0x1c4c);p<s;p++){if(zte_sms_GSM7_PORTUGUESE_To_UCS2_Table_Ex[p][
+(0x797+7482-0x24d1)]==gsmdef[i]){ucs2[k]=
+zte_sms_GSM7_PORTUGUESE_To_UCS2_Table_Ex[p][(0x520+4957-0x187c)]>>
+(0xbeb+2247-0x14aa);k++;ucs2[k]=(unsigned char)(
+zte_sms_GSM7_PORTUGUESE_To_UCS2_Table_Ex[p][(0x1280+2463-0x1c1e)]);break;}}}else
+{ucs2[k]=zte_sms_GSM7_PORTUGUESE_To_UCS2_Table[j]>>(0x1c3f+843-0x1f82);k++;ucs2[
+k]=(unsigned char)(zte_sms_GSM7_PORTUGUESE_To_UCS2_Table[j]);}k++;}ucs2[k]='\0';
 return k;}unsigned int zte_wms_convert_PORTUGUESE_To_UCS2_USE_GSM7_SS_PORTU_LS(
 const unsigned char*gsmdef,unsigned char*ucs2,unsigned int len){unsigned int i=
-(0x1495+973-0x1862);unsigned int j=(0x80b+4406-0x1941);unsigned int k=
-(0x1185+480-0x1365);unsigned int p=(0xd19+4580-0x1efd);unsigned int s=
-(0x204d+1500-0x2629);s=sizeof(zte_sms_GSMDefault_To_UCS2_Table_Ex)/sizeof(
-zte_sms_GSMDefault_To_UCS2_Table_Ex[(0x172d+2234-0x1fe7)]);for(i=
-(0xe53+1757-0x1530);i<len;i++){j=gsmdef[i];if(j==(0x19c8+2082-0x21cf)){i++;for(p
-=(0x11c5+1069-0x15f2);p<s;p++){if(zte_sms_GSMDefault_To_UCS2_Table_Ex[p][
-(0x296+6932-0x1daa)]==gsmdef[i]){ucs2[k]=zte_sms_GSMDefault_To_UCS2_Table_Ex[p][
-(0x542+3912-0x1489)]>>(0xe13+6204-0x2647);k++;ucs2[k]=(unsigned char)(
-zte_sms_GSMDefault_To_UCS2_Table_Ex[p][(0x62a+137-0x6b2)]);break;}}}else{ucs2[k]
-=zte_sms_GSM7_PORTUGUESE_To_UCS2_Table[j]>>(0x5f1+2380-0xf35);k++;ucs2[k]=(
+(0x150c+800-0x182c);unsigned int j=(0x554+3481-0x12ed);unsigned int k=
+(0x648+2516-0x101c);unsigned int p=(0x256+6292-0x1aea);unsigned int s=
+(0x467+7009-0x1fc8);s=sizeof(zte_sms_GSMDefault_To_UCS2_Table_Ex)/sizeof(
+zte_sms_GSMDefault_To_UCS2_Table_Ex[(0x1f04+1496-0x24dc)]);for(i=
+(0xb34+3980-0x1ac0);i<len;i++){j=gsmdef[i];if(j==(0x14b+5824-0x17f0)){i++;for(p=
+(0x973+4458-0x1add);p<s;p++){if(zte_sms_GSMDefault_To_UCS2_Table_Ex[p][
+(0x15a6+3353-0x22bf)]==gsmdef[i]){ucs2[k]=zte_sms_GSMDefault_To_UCS2_Table_Ex[p]
+[(0x1992+1273-0x1e8a)]>>(0x1f5c+1917-0x26d1);k++;ucs2[k]=(unsigned char)(
+zte_sms_GSMDefault_To_UCS2_Table_Ex[p][(0x84f+387-0x9d1)]);break;}}}else{ucs2[k]
+=zte_sms_GSM7_PORTUGUESE_To_UCS2_Table[j]>>(0x25f2+285-0x2707);k++;ucs2[k]=(
 unsigned char)(zte_sms_GSM7_PORTUGUESE_To_UCS2_Table[j]);}k++;}ucs2[k]='\0';
 return k;}unsigned long zte_wms_convert_GSMDefault_to_UCS2(const unsigned char*
-gsmdef,unsigned char*ucs2,unsigned long len){unsigned long i=(0x3ad+2639-0xdfc);
-unsigned long j=(0x4a5+3168-0x1105);unsigned long k=(0xe20+3285-0x1af5);unsigned
- long p=(0x728+3423-0x1487);unsigned long s=(0xadf+3845-0x19e4);unsigned long 
-is_find=(0xb22+2619-0x155d);s=sizeof(zte_sms_GSMDefault_To_UCS2_Table_Ex)/sizeof
-(zte_sms_GSMDefault_To_UCS2_Table_Ex[(0x304+4240-0x1394)]);for(i=
-(0x16e2+3466-0x246c);i<len;i++){j=gsmdef[i];if(j==(0xa89+6866-0x2540)){i++;for(p
-=(0x594+1508-0xb78);p<s;p++){if(zte_sms_GSMDefault_To_UCS2_Table_Ex[p][
-(0x2019+1208-0x24d1)]==gsmdef[i]){ucs2[k]=zte_sms_GSMDefault_To_UCS2_Table_Ex[p]
-[(0xd6d+3162-0x19c6)]>>(0x5a0+2173-0xe15);k++;ucs2[k]=(unsigned char)(
-zte_sms_GSMDefault_To_UCS2_Table_Ex[p][(0x5db+3081-0x11e3)]);is_find=
-(0x1512+3974-0x2497);break;}}if(!is_find){at_print(LOG_DEBUG,
+gsmdef,unsigned char*ucs2,unsigned long len){unsigned long i=(0xbcd+2576-0x15dd)
+;unsigned long j=(0xed0+5278-0x236e);unsigned long k=(0x16b8+657-0x1949);
+unsigned long p=(0x358+6031-0x1ae7);unsigned long s=(0x1b47+2433-0x24c8);
+unsigned long is_find=(0xc0b+725-0xee0);s=sizeof(
+zte_sms_GSMDefault_To_UCS2_Table_Ex)/sizeof(zte_sms_GSMDefault_To_UCS2_Table_Ex[
+(0xd9a+6485-0x26ef)]);for(i=(0x70d+6272-0x1f8d);i<len;i++){j=gsmdef[i];if(j==
+(0x830+5136-0x1c25)){i++;for(p=(0x13f7+4006-0x239d);p<s;p++){if(
+zte_sms_GSMDefault_To_UCS2_Table_Ex[p][(0x390+5546-0x193a)]==gsmdef[i]){ucs2[k]=
+zte_sms_GSMDefault_To_UCS2_Table_Ex[p][(0xc+9310-0x2469)]>>(0x12b9+4943-0x2600);
+k++;ucs2[k]=(unsigned char)(zte_sms_GSMDefault_To_UCS2_Table_Ex[p][
+(0x1847+2691-0x22c9)]);is_find=(0x14f9+2985-0x20a1);break;}}if(!is_find){
+at_print(LOG_DEBUG,
 "\x73\x6d\x73\x3a\x20\x64\x61\x74\x61\x20\x3d\x20\x25\x64\x20\x6e\x6f\x74\x20\x66\x69\x6e\x64\x20\x69\x6e\x20\x67\x73\x6d\x64\x65\x66\x61\x75\x6c\x74\x20\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x20\x74\x61\x62\x6c\x65" "\n"
-,gsmdef[i]);i--;ucs2[k]=zte_sms_GSMDefault_To_UCS2_Table[j]>>(0x639+8053-0x25a6)
-;k++;ucs2[k]=(unsigned char)(zte_sms_GSMDefault_To_UCS2_Table[j]);}}else{ucs2[k]
-=zte_sms_GSMDefault_To_UCS2_Table[j]>>(0x5d7+6022-0x1d55);k++;ucs2[k]=(unsigned 
+,gsmdef[i]);i--;ucs2[k]=zte_sms_GSMDefault_To_UCS2_Table[j]>>
+(0x12a7+3900-0x21db);k++;ucs2[k]=(unsigned char)(
+zte_sms_GSMDefault_To_UCS2_Table[j]);}}else{ucs2[k]=
+zte_sms_GSMDefault_To_UCS2_Table[j]>>(0x1491+1495-0x1a60);k++;ucs2[k]=(unsigned 
 char)(zte_sms_GSMDefault_To_UCS2_Table[j]);}k++;}ucs2[k]='\0';return k;}void 
 zUfiSms_ConvertUcs2(char*data,UINT16 sms_len,char*out_content){char 
-ascii_content[(0x1f49+515-0x214a)*ZTE_WMS_SMS_MSG_CONTENT_STORE_LEN_MAX+
-(0x874+4371-0x1986)]={(0x1d1d+686-0x1fcb)};UINT16 len=(0x1738+2785-0x2219);
+ascii_content[(0x1d25+2285-0x2610)*ZTE_WMS_SMS_MSG_CONTENT_STORE_LEN_MAX+
+(0x318+7522-0x2079)]={(0x11f0+1091-0x1633)};UINT16 len=(0x1391+1157-0x1816);
 switch(g_zUfiSms_Language){case DCS_PORTUGUESE:if(g_zUfiSms_IsLanguageShift==
 WMS_UDH_NAT_LANG_SS){len=zte_wms_convert_PORTUGUESE_To_UCS2((const UINT8*)data,(
 UINT8*)ascii_content,sms_len);}else if(g_zUfiSms_IsLanguageShift==
@@ -674,47 +670,47 @@
 sms_len);break;}(void)zUfiSms_DispatchWtoi((char*)ascii_content,len,(char*)
 out_content);}boolean zUfiSms_DecodeContent(char*msg_content,UINT16 sms_len,
 boolean isEsc,char*out_content){boolean endEsc=FALSE;char*p=NULL;static char 
-data[(0xd29+2412-0x1694)+(0x223a+1137-0x260b)+(0xb5c+5765-0x21e0)]={
-(0x612+4915-0x1945)};int len=(0x14dc+64-0x151c);if(msg_content==NULL||
-out_content==NULL||sms_len>(0xaa7+6087-0x212e)||sms_len<(0x13d3+337-0x1522)){
-return endEsc;}len=sms_len;memset(data,(0x5f0+4937-0x1939),(0x399+2539-0xce2));p
-=data;if(isEsc){*p=(0x4e1+6147-0x1cc9);p++;}zUfiSms_Str2Bytes((unsigned char*)
-msg_content,len,(unsigned char*)p,(0x19c1+33-0x1942));if(p[len/
-(0x14b1+4187-0x250a)-(0xdd3+3498-0x1b7c)]==(0xd30+2585-0x172e)){endEsc=TRUE;}
-zUfiSms_ConvertUcs2(data,len/(0x335+5300-0x17e7)+(isEsc?(0x1328+297-0x1450):
-(0x12ac+1810-0x19be))-(endEsc?(0x744+6693-0x2168):(0x1b01+1800-0x2209)),
-out_content);return endEsc;}byte*zUfiSms_SmsiUtilitoa(uint32 v,byte*s,UINT16 r){
-byte buf[(0x4f7+803-0x7f9)],c;int n;n=sizeof(buf)-(0xac2+3357-0x17de);buf[n]=
-'\0';do{c=(byte)(v%r);if(n<=(0x2587+240-0x2677)){printf(
+data[(0x1f19+774-0x221e)+(0x67c+8018-0x252e)+(0x18cc+1845-0x2000)]={
+(0xe9f+2904-0x19f7)};int len=(0x1207+1343-0x1746);if(msg_content==NULL||
+out_content==NULL||sms_len>(0x3e7+4986-0x1621)||sms_len<(0x1050+3415-0x1da5)){
+return endEsc;}len=sms_len;memset(data,(0x1452+1837-0x1b7f),(0xe5a+5833-0x2481))
+;p=data;if(isEsc){*p=(0xada+5159-0x1ee6);p++;}zUfiSms_Str2Bytes((unsigned char*)
+msg_content,len,(unsigned char*)p,(0x6b5+5246-0x1a93));if(p[len/
+(0x544+3627-0x136d)-(0xad+5964-0x17f8)]==(0x22b+5731-0x1873)){endEsc=TRUE;}
+zUfiSms_ConvertUcs2(data,len/(0x234f+218-0x2427)+(isEsc?(0x49c+8275-0x24ee):
+(0x5c5+4981-0x193a))-(endEsc?(0x9d7+1147-0xe51):(0x985+871-0xcec)),out_content);
+return endEsc;}byte*zUfiSms_SmsiUtilitoa(uint32 v,byte*s,UINT16 r){byte buf[
+(0x9ab+92-0x9e6)],c;int n;n=sizeof(buf)-(0x372+8602-0x250b);buf[n]='\0';do{c=(
+byte)(v%r);if(n<=(0x1dbd+2100-0x25f1)){printf(
 "\x4f\x56\x45\x52\x46\x4c\x4f\x57\x20");break;}buf[--n]=(byte)((c>
-(0x1e1b+1030-0x2218))?c+((char)(0x304+9114-0x265d))-(0xe58+860-0x11aa):c+
-((char)(0xfec+711-0x1283)));}while((v/=r)>(0xf5f+1946-0x16f9));while((*s++=buf[n
-++])!=(0xbe4+5958-0x232a));return(s-(0x14b2+1012-0x18a5));}byte*
+(0x9b2+2824-0x14b1))?c+((char)(0x15e5+2066-0x1db6))-(0x9a3+6221-0x21e6):c+
+((char)(0xedc+5374-0x23aa)));}while((v/=r)>(0x1baf+1296-0x20bf));while((*s++=buf
+[n++])!=(0x10fa+4639-0x2319));return(s-(0x116c+5316-0x262f));}byte*
 zUfiSms_SmsiAddrToStr(wms_address_s_type addr,byte*res_ptr,UINT8*type_of_addr){
-byte bcd_idx=(0x1802+3522-0x25c4);UINT8 temp=(0x677+1859-0xdba);*type_of_addr=
-(0x1df+5466-0x1739);temp=(UINT8)((uint32)addr.number_type&(0xf27+2499-0x18e3));*
-type_of_addr=(UINT8)((*type_of_addr|temp)<<(0xb5a+1422-0x10e4));temp=(UINT8)((
-uint32)addr.number_plan&(0x822+4908-0x1b47));*type_of_addr=*type_of_addr|temp;*
-type_of_addr=*type_of_addr|(0x354+4940-0x1620);while(bcd_idx<addr.
-number_of_digits){if(addr.digits[bcd_idx]==(0x1b26+2807-0x2613)){addr.digits[
-bcd_idx]=(0x357+7414-0x204d);}res_ptr=zUfiSms_SmsiUtilitoa((uint32)addr.digits[
-bcd_idx],res_ptr,(0x123b+941-0x15d8));bcd_idx++;}return res_ptr;}byte*
+byte bcd_idx=(0x52a+102-0x590);UINT8 temp=(0x8d8+1326-0xe06);*type_of_addr=
+(0xf90+4507-0x212b);temp=(UINT8)((uint32)addr.number_type&(0xc78+4375-0x1d88));*
+type_of_addr=(UINT8)((*type_of_addr|temp)<<(0xfa5+384-0x1121));temp=(UINT8)((
+uint32)addr.number_plan&(0x97d+390-0xafc));*type_of_addr=*type_of_addr|temp;*
+type_of_addr=*type_of_addr|(0x17d4+1976-0x1f0c);while(bcd_idx<addr.
+number_of_digits){if(addr.digits[bcd_idx]==(0x3e3+8807-0x2640)){addr.digits[
+bcd_idx]=(0x1f89+511-0x2188);}res_ptr=zUfiSms_SmsiUtilitoa((uint32)addr.digits[
+bcd_idx],res_ptr,(0x2e6+6343-0x1b9d));bcd_idx++;}return res_ptr;}byte*
 zUfiSms_SmsiUtilitoaFill(word v,byte*rb_ptr){int n;byte c,*ptr;ptr=rb_ptr+
-(0x297+2057-0xa9e);*ptr='\0';for(n=(0x2068+1384-0x25d0);n<(0x1586+493-0x1771);++
-n){c=(byte)(v%(0x1d74+132-0x1dee));v/=(0xeb0+3811-0x1d89);*--ptr=(c+
-((char)(0x4ac+3454-0x11fa)));}return rb_ptr+(0xa78+3187-0x16e9);}void 
-zUfiSms_SprintfTime(char*str_time,int len,int t){if(t<(0x18fd+2595-0x2316)){
+(0x34b+727-0x620);*ptr='\0';for(n=(0x1a9+9538-0x26eb);n<(0x1832+2763-0x22fb);++n
+){c=(byte)(v%(0x263+1655-0x8d0));v/=(0x12b9+4384-0x23cf);*--ptr=(c+
+((char)(0xf0d+2647-0x1934)));}return rb_ptr+(0x5c0+831-0x8fd);}void 
+zUfiSms_SprintfTime(char*str_time,int len,int t){if(t<(0xcb+3783-0xf88)){
 snprintf(str_time,len,"\x30\x25\x78",t);}else{snprintf(str_time,len,"\x25\x78",t
 );}}static void zUfiSms_ParseDeliverConcat8(T_zUfiSms_UdhConcat8*concat_8,
-T_zUfiSms_DbStoreData*db_data){int mux=(0x4a7+6704-0x1ed7);concat_8->seq_num--;
+T_zUfiSms_DbStoreData*db_data){int mux=(0x1d1+8258-0x2213);concat_8->seq_num--;
 if(concat_8->total_sm>ZTE_WMS_CONCAT_SMS_COUNT_MAX){mux=(concat_8->seq_num-
 concat_8->seq_num%ZTE_WMS_CONCAT_SMS_COUNT_MAX)/ZTE_WMS_CONCAT_SMS_COUNT_MAX;}
-db_data->concat_sms=(0x5b6+3208-0x123d);db_data->concat_info[
-(0x190f+1038-0x1d1d)]=(0x512+5474-0x1975)*mux+concat_8->msg_ref;db_data->
-concat_info[(0x5a5+4295-0x166a)]=concat_8->seq_num%ZTE_WMS_CONCAT_SMS_COUNT_MAX+
-(0x7ec+1390-0xd59);db_data->concat_info[(0x1887+2068-0x209a)]=concat_8->total_sm
--ZTE_WMS_CONCAT_SMS_COUNT_MAX*mux>ZTE_WMS_CONCAT_SMS_COUNT_MAX-
-(0x1f65+1944-0x26fc)?ZTE_WMS_CONCAT_SMS_COUNT_MAX:(concat_8->total_sm%
+db_data->concat_sms=(0xba0+4029-0x1b5c);db_data->concat_info[(0x2e0+4737-0x1561)
+]=(0xf4c+1466-0x1407)*mux+concat_8->msg_ref;db_data->concat_info[
+(0x1b9+6652-0x1bb3)]=concat_8->seq_num%ZTE_WMS_CONCAT_SMS_COUNT_MAX+
+(0x51a+1988-0xcdd);db_data->concat_info[(0xb04+6770-0x2575)]=concat_8->total_sm-
+ZTE_WMS_CONCAT_SMS_COUNT_MAX*mux>ZTE_WMS_CONCAT_SMS_COUNT_MAX-
+(0xded+5874-0x24de)?ZTE_WMS_CONCAT_SMS_COUNT_MAX:(concat_8->total_sm%
 ZTE_WMS_CONCAT_SMS_COUNT_MAX);}static void zUfiSms_ParserLangSs(wms_udh_s_type*
 user_data_header){if(user_data_header==NULL){return;}switch(user_data_header->u.
 nat_lang_ss.nat_lang_id){case WMS_UDH_NAT_LANG_PORTUGUESE:g_zUfiSms_Language=
@@ -723,27 +719,27 @@
 user_data_header->u.nat_lang_ss.nat_lang_id){case WMS_UDH_NAT_LANG_PORTUGUESE:
 g_zUfiSms_Language=DCS_PORTUGUESE;break;default:break;}}static void 
 zUfiSms_ParseDeliverConcat16(T_zUfiSms_UdhConcat16*concat_16,
-T_zUfiSms_DbStoreData*db_data){int mux=(0xba1+5466-0x20fb);concat_16->seq_num--;
-db_data->concat_sms=(0x23a5+424-0x254c);
-#if (0x899+137-0x922)

-db_data->concat_info[(0x19fb+2394-0x2355)]=concat_16->msg_ref;db_data->
-concat_info[(0xeac+1664-0x152b)]=concat_16->total_sm;db_data->concat_info[
-(0x227c+338-0x23cc)]=concat_16->seq_num;
+T_zUfiSms_DbStoreData*db_data){int mux=(0xde6+3664-0x1c36);concat_16->seq_num--;
+db_data->concat_sms=(0x1409+1861-0x1b4d);
+#if (0xd75+3882-0x1c9f)

+db_data->concat_info[(0xf4f+1352-0x1497)]=concat_16->msg_ref;db_data->
+concat_info[(0x18ed+480-0x1acc)]=concat_16->total_sm;db_data->concat_info[
+(0x37d+8198-0x2381)]=concat_16->seq_num;
 #endif

 if(concat_16->total_sm>ZTE_WMS_CONCAT_SMS_COUNT_MAX){mux=(concat_16->seq_num-
 concat_16->seq_num%ZTE_WMS_CONCAT_SMS_COUNT_MAX)/ZTE_WMS_CONCAT_SMS_COUNT_MAX;}
-db_data->concat_info[(0x14b+2947-0xcce)]=(0xb47+5965-0x2195)*mux+concat_16->
-msg_ref;db_data->concat_info[(0x2155+1195-0x25fe)]=concat_16->seq_num%
-ZTE_WMS_CONCAT_SMS_COUNT_MAX+(0xedd+1057-0x12fd);db_data->concat_info[
-(0x546+8649-0x270e)]=concat_16->total_sm-ZTE_WMS_CONCAT_SMS_COUNT_MAX*mux>
-ZTE_WMS_CONCAT_SMS_COUNT_MAX-(0xbb9+900-0xf3c)?ZTE_WMS_CONCAT_SMS_COUNT_MAX:(
+db_data->concat_info[(0x1376+1670-0x19fc)]=(0x1261+4718-0x23d0)*mux+concat_16->
+msg_ref;db_data->concat_info[(0x71b+7593-0x24c2)]=concat_16->seq_num%
+ZTE_WMS_CONCAT_SMS_COUNT_MAX+(0xd7b+1170-0x120c);db_data->concat_info[
+(0x95c+5793-0x1ffc)]=concat_16->total_sm-ZTE_WMS_CONCAT_SMS_COUNT_MAX*mux>
+ZTE_WMS_CONCAT_SMS_COUNT_MAX-(0x10b8+4715-0x2322)?ZTE_WMS_CONCAT_SMS_COUNT_MAX:(
 concat_16->total_sm%ZTE_WMS_CONCAT_SMS_COUNT_MAX);}static int 
 zUfiSms_ParseUdhiData(T_zUfiSms_Udh*user_data_header,T_zUfiSms_DbStoreData*
 db_data){if(NULL==user_data_header||NULL==db_data){printf(
 "\x69\x6e\x76\x61\x6c\x69\x64\x20\x69\x6e\x70\x75\x74\x73\x2e");return ZUFI_FAIL
 ;}switch(user_data_header->header_id){case WMS_UDH_CONCAT_8:db_data->concat_sms=
-(0x1c4+801-0x4e4);zUfiSms_ParseDeliverConcat8(&(user_data_header->u.concat_8),
-db_data);break;case WMS_UDH_CONCAT_16:db_data->concat_sms=(0x18aa+2066-0x20bb);
+(0x6e8+4313-0x17c0);zUfiSms_ParseDeliverConcat8(&(user_data_header->u.concat_8),
+db_data);break;case WMS_UDH_CONCAT_16:db_data->concat_sms=(0x20e1+418-0x2282);
 zUfiSms_ParseDeliverConcat16(&(user_data_header->u.concat_16),db_data);break;
 case WMS_UDH_NAT_LANG_SS:g_zUfiSms_IsLanguageShift=WMS_UDH_NAT_LANG_SS;
 zUfiSms_ParserLangSs(user_data_header);break;case WMS_UDH_NAT_LANG_LS:
@@ -753,156 +749,156 @@
 );break;}return ZUFI_SUCC;}int zUfiSms_FormatDeliverDbdata(
 T_zUfiSms_ClientTsData*ts_data_ptr,T_zUfiSms_DbStoreData*db_data){int result=
 ZUFI_SUCC;wms_address_s_type*address_ptr=NULL;wms_gw_alphabet_e_type tp_dcs=
-WMS_GW_ALPHABET_MAX32;int i=(0x12a1+4671-0x24e0);int ind=(0x176+1929-0x8ff);if((
+WMS_GW_ALPHABET_MAX32;int i=(0x12db+4278-0x2391);int ind=(0x8b+9376-0x252b);if((
 NULL==ts_data_ptr)||(NULL==db_data)){printf(
 "\x69\x6e\x76\x61\x6c\x69\x64\x20\x69\x6e\x70\x75\x74\x73\x2e");return ZUFI_FAIL
 ;}address_ptr=&(ts_data_ptr->u.gw_pp.u.deliver.address);if(
 WMS_NUMBER_INTERNATIONAL==address_ptr->number_type){memset(db_data->number,
-(0x1+6249-0x186a),ZTE_WMS_ADDRESS_LEN_MAX+(0x14d6+1037-0x18e2));db_data->number[
-(0xe1a+3776-0x1cda)]=((char)(0xa04+7410-0x26cb));for(i=(0x1dfa+1202-0x22ac);i<
-address_ptr->number_of_digits;i++){if((0x9b+2273-0x972)==address_ptr->digits[i])
-{db_data->number[i+(0x282+2992-0xe31)]=((char)(0x749+2241-0xfda));}else{db_data
-->number[i+(0x448+3521-0x1208)]=((char)(0xd9d+4455-0x1ed4))+address_ptr->digits[
-i];}}}else if(WMS_NUMBER_ALPHANUMERIC==address_ptr->number_type){memcpy(db_data
-->number,address_ptr->digits,address_ptr->number_of_digits);}else{if(address_ptr
-->digit_mode==WMS_DIGIT_MODE_8_BIT){memcpy(&(db_data->number[(0x1ac+9293-0x25f8)
-]),address_ptr->digits,address_ptr->number_of_digits);}else{for(i=
-(0x101+5459-0x1654);i<address_ptr->number_of_digits;i++){if((0x1445+1012-0x182f)
-==address_ptr->digits[i]){db_data->number[i]=((char)(0x62f+6573-0x1fac));}else{
-db_data->number[i]=((char)(0x40a+6723-0x1e1d))+address_ptr->digits[i];}}}}(void)
-zUfiSms_UtilTimeStamp(ts_data_ptr->u.gw_pp.u.deliver.timestamp,db_data->tp_scts,
-&db_data->julian_date);if(ts_data_ptr->u.gw_pp.u.deliver.
-user_data_header_present){db_data->tp_udhi=(0x858+7115-0x2422);}else{db_data->
-tp_udhi=(0x215f+776-0x2467);}if(db_data->tp_udhi==(0x8b9+4175-0x1907)){for(ind=
-(0x646+6641-0x2037);ind<ts_data_ptr->u.gw_pp.u.deliver.user_data.num_headers;ind
-++){result=zUfiSms_ParseUdhiData(&(ts_data_ptr->u.gw_pp.u.deliver.user_data.
-headers[ind]),db_data);if(ZTE_WMS_CONCAT_SMS_COUNT_MAX<db_data->concat_info[
-(0x687+6449-0x1fb7)]){printf(
+(0x1081+129-0x1102),ZTE_WMS_ADDRESS_LEN_MAX+(0x862+1541-0xe66));db_data->number[
+(0x11d6+266-0x12e0)]=((char)(0x1ec+8981-0x24d6));for(i=(0x230+389-0x3b5);i<
+address_ptr->number_of_digits;i++){if((0x15ec+1337-0x1b1b)==address_ptr->digits[
+i]){db_data->number[i+(0x18ba+1692-0x1f55)]=((char)(0x4bf+4164-0x14d3));}else{
+db_data->number[i+(0x1321+3688-0x2188)]=((char)(0x1299+4581-0x244e))+address_ptr
+->digits[i];}}}else if(WMS_NUMBER_ALPHANUMERIC==address_ptr->number_type){memcpy
+(db_data->number,address_ptr->digits,address_ptr->number_of_digits);}else{if(
+address_ptr->digit_mode==WMS_DIGIT_MODE_8_BIT){memcpy(&(db_data->number[
+(0x26f+1057-0x68f)]),address_ptr->digits,address_ptr->number_of_digits);}else{
+for(i=(0x1897+958-0x1c55);i<address_ptr->number_of_digits;i++){if(
+(0x2253+804-0x256d)==address_ptr->digits[i]){db_data->number[i]=
+((char)(0x125a+4578-0x240c));}else{db_data->number[i]=((char)(0xc0+580-0x2d4))+
+address_ptr->digits[i];}}}}(void)zUfiSms_UtilTimeStamp(ts_data_ptr->u.gw_pp.u.
+deliver.timestamp,db_data->tp_scts,&db_data->julian_date);if(ts_data_ptr->u.
+gw_pp.u.deliver.user_data_header_present){db_data->tp_udhi=(0x1c09+2306-0x250a);
+}else{db_data->tp_udhi=(0x1bfa+15-0x1c09);}if(db_data->tp_udhi==
+(0x2132+663-0x23c8)){for(ind=(0x1849+1538-0x1e4b);ind<ts_data_ptr->u.gw_pp.u.
+deliver.user_data.num_headers;ind++){result=zUfiSms_ParseUdhiData(&(ts_data_ptr
+->u.gw_pp.u.deliver.user_data.headers[ind]),db_data);if(
+ZTE_WMS_CONCAT_SMS_COUNT_MAX<db_data->concat_info[(0x1459+426-0x1602)]){printf(
 "\x74\x68\x65\x20\x63\x6f\x6e\x63\x61\x74\x20\x73\x6d\x73\x20\x73\x65\x67\x6d\x65\x6e\x74\x20\x69\x73\x20\x25\x64\x2c\x61\x6e\x64\x20\x6c\x61\x72\x67\x65\x72\x20\x74\x68\x65\x6e\x20\x74\x68\x65\x20\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x25\x64\x20\x73\x65\x67\x6d\x65\x6e\x74\x73\x2c\x73\x6f\x20\x64\x69\x64\x20\x6e\x6f\x74\x20\x64\x65\x61\x6c\x20\x74\x68\x65\x20\x63\x6f\x6e\x63\x61\x74\x20\x73\x6d\x73\x2e\x20"
-,db_data->concat_info[(0x369+4347-0x1463)],ZTE_WMS_CONCAT_SMS_COUNT_MAX);if(
+,db_data->concat_info[(0x1730+1562-0x1d49)],ZTE_WMS_CONCAT_SMS_COUNT_MAX);if(
 WMS_STORAGE_TYPE_NV_V01==db_data->mem_store){zUfiSms_DelModemSms(db_data->index)
 ;}result=ZUFI_FAIL;}}}tp_dcs=ts_data_ptr->u.gw_pp.u.deliver.dcs.alphabet;db_data
 ->sms_class=ts_data_ptr->u.gw_pp.u.deliver.dcs.msg_class;if(
 WMS_GW_ALPHABET_8_BIT>=tp_dcs){db_data->tp_dcs=(unsigned char)
-(0x1c71+214-0x1d46);}else if(WMS_GW_ALPHABET_UCS2==tp_dcs){db_data->tp_dcs=(
-unsigned char)(0x98f+1654-0x1003);}else{printf(
+(0x1a83+1768-0x216a);}else if(WMS_GW_ALPHABET_UCS2==tp_dcs){db_data->tp_dcs=(
+unsigned char)(0x130+3423-0xe8d);}else{printf(
 "\x69\x6e\x76\x61\x6c\x69\x64\x20\x74\x70\x5f\x64\x63\x73\x3d\x25\x64",tp_dcs);}
 db_data->tp_pid=(unsigned char)ts_data_ptr->u.gw_pp.u.deliver.pid;if(ts_data_ptr
 ->u.gw_pp.u.deliver.dcs.alphabet==WMS_GW_ALPHABET_UCS2){result=
 zUfiSms_DispatchWtoi(ts_data_ptr->u.gw_pp.u.deliver.user_data.sm_data,
 ts_data_ptr->u.gw_pp.u.deliver.user_data.sm_len,db_data->sms_content);db_data->
 alphabet=WMS_GW_ALPHABET_UCS2;}else if(ts_data_ptr->u.gw_pp.u.deliver.dcs.
-alphabet==WMS_GW_ALPHABET_8_BIT){for(ind=(0x1c6+3103-0xde5);ind<ts_data_ptr->u.
-gw_pp.u.deliver.user_data.sm_len;ind++){db_data->sms_content[
-(0x1100+2147-0x195f)*ind]=((char)(0x113+5433-0x161c));db_data->sms_content[
-(0x432+1146-0x8a8)*ind+(0x12f1+1444-0x1894)]=((char)(0x90a+5750-0x1f50));db_data
-->sms_content[(0x7ad+4588-0x1995)*ind+(0x1c27+2460-0x25c1)]=g_zUfiSms_DigAscMap[
-((ts_data_ptr->u.gw_pp.u.deliver.user_data.sm_data[ind]&(0xf37+3339-0x1b52))>>
-(0x678+5714-0x1cc6))];db_data->sms_content[(0x96+8838-0x2318)*ind+
-(0x1ef6+66-0x1f35)]=g_zUfiSms_DigAscMap[(ts_data_ptr->u.gw_pp.u.deliver.
-user_data.sm_data[ind]&(0x7b3+6135-0x1f9b))];db_data->alphabet=
-WMS_GW_ALPHABET_UCS2;}}else if(ts_data_ptr->u.gw_pp.u.deliver.dcs.alphabet==
+alphabet==WMS_GW_ALPHABET_8_BIT){for(ind=(0x7a9+1473-0xd6a);ind<ts_data_ptr->u.
+gw_pp.u.deliver.user_data.sm_len;ind++){db_data->sms_content[(0x16ec+18-0x16fa)*
+ind]=((char)(0x2fb+8149-0x22a0));db_data->sms_content[(0x2fd+7429-0x1ffe)*ind+
+(0x1bc2+1774-0x22af)]=((char)(0x45b+17-0x43c));db_data->sms_content[
+(0x1778+3486-0x2512)*ind+(0x37d+4853-0x1670)]=g_zUfiSms_DigAscMap[((ts_data_ptr
+->u.gw_pp.u.deliver.user_data.sm_data[ind]&(0x314+1403-0x79f))>>
+(0x1bdf+733-0x1eb8))];db_data->sms_content[(0x1d0d+123-0x1d84)*ind+
+(0xafb+288-0xc18)]=g_zUfiSms_DigAscMap[(ts_data_ptr->u.gw_pp.u.deliver.user_data
+.sm_data[ind]&(0x1010+3798-0x1ed7))];db_data->alphabet=WMS_GW_ALPHABET_UCS2;}}
+else if(ts_data_ptr->u.gw_pp.u.deliver.dcs.alphabet==
 WMS_GW_ALPHABET_7_BIT_DEFAULT){result=zUfiSms_DispatchWtoi(ts_data_ptr->u.gw_pp.
 u.deliver.user_data.sm_data,ts_data_ptr->u.gw_pp.u.deliver.user_data.sm_len,
 db_data->sms_content);db_data->alphabet=WMS_GW_ALPHABET_7_BIT_DEFAULT;db_data->
-tp_dcs=(unsigned char)(0x1b7f+829-0x1eba);}return result;}int 
+tp_dcs=(unsigned char)(0x13fc+341-0x154f);}return result;}int 
 zUfiSms_FormatSubmitDbdata(T_zUfiSms_ClientTsData*ts_data_ptr,
 T_zUfiSms_DbStoreData*db_data){int result=ZUFI_SUCC;wms_address_s_type*
 address_ptr=NULL;wms_gw_alphabet_e_type tp_dcs=WMS_GW_ALPHABET_MAX32;int i=
-(0x251+9329-0x26c2);int ind=(0x856+3873-0x1777);if((NULL==ts_data_ptr)||(NULL==
-db_data)){printf("\x69\x6e\x76\x61\x6c\x69\x64\x20\x69\x6e\x70\x75\x74\x73\x2e")
-;return ZUFI_FAIL;}address_ptr=&(ts_data_ptr->u.gw_pp.u.submit.address);if((
+(0x13ff+4534-0x25b5);int ind=(0x1fab+1236-0x247f);if((NULL==ts_data_ptr)||(NULL
+==db_data)){printf(
+"\x69\x6e\x76\x61\x6c\x69\x64\x20\x69\x6e\x70\x75\x74\x73\x2e");return ZUFI_FAIL
+;}address_ptr=&(ts_data_ptr->u.gw_pp.u.submit.address);if((
 WMS_NUMBER_INTERNATIONAL==address_ptr->number_type)){db_data->number[
-(0x56a+3311-0x1259)]=((char)(0x71a+6631-0x20d6));for(i=(0xe91+2212-0x1735);i<
-address_ptr->number_of_digits;i++){if((0xa03+3202-0x167b)==address_ptr->digits[i
-]){db_data->number[i+(0xac3+246-0xbb8)]=((char)(0x8ac+5668-0x1ea0));}else{
-db_data->number[i+(0x138+5568-0x16f7)]=((char)(0x1de2+189-0x1e6f))+address_ptr->
-digits[i];}}}else{for(i=(0x3ff+2588-0xe1b);i<address_ptr->number_of_digits;i++){
-if((0x6b6+2294-0xfa2)==address_ptr->digits[i]){db_data->number[i]=
-((char)(0x76f+5179-0x1b7a));}else{db_data->number[i]=((char)(0x104+5106-0x14c6))
-+address_ptr->digits[i];}}}tp_dcs=ts_data_ptr->u.gw_pp.u.submit.dcs.alphabet;
+(0x14aa+838-0x17f0)]=((char)(0x1d0b+591-0x1f2f));for(i=(0x48c+3706-0x1306);i<
+address_ptr->number_of_digits;i++){if((0x7ca+4803-0x1a83)==address_ptr->digits[i
+]){db_data->number[i+(0xd84+47-0xdb2)]=((char)(0xa4b+6258-0x228d));}else{db_data
+->number[i+(0x42+1683-0x6d4)]=((char)(0x1945+2889-0x245e))+address_ptr->digits[i
+];}}}else{for(i=(0x690+7111-0x2257);i<address_ptr->number_of_digits;i++){if(
+(0xa25+1485-0xfe8)==address_ptr->digits[i]){db_data->number[i]=
+((char)(0x551+1036-0x92d));}else{db_data->number[i]=((char)(0x126+9011-0x2429))+
+address_ptr->digits[i];}}}tp_dcs=ts_data_ptr->u.gw_pp.u.submit.dcs.alphabet;
 db_data->sms_class=ts_data_ptr->u.gw_pp.u.submit.dcs.msg_class;if(
-WMS_GW_ALPHABET_8_BIT>=tp_dcs){db_data->tp_dcs=(unsigned char)(0x3+37-0x27);}
-else if(WMS_GW_ALPHABET_UCS2==tp_dcs){db_data->tp_dcs=(unsigned char)
-(0x19d7+2927-0x2544);}else{printf(
+WMS_GW_ALPHABET_8_BIT>=tp_dcs){db_data->tp_dcs=(unsigned char)(0x451+2372-0xd94)
+;}else if(WMS_GW_ALPHABET_UCS2==tp_dcs){db_data->tp_dcs=(unsigned char)
+(0xc91+1027-0x1092);}else{printf(
 "\x69\x6e\x76\x61\x6c\x69\x64\x20\x74\x70\x5f\x64\x63\x73\x3d\x25\x64",tp_dcs);}
 db_data->tp_pid=(unsigned char)ts_data_ptr->u.gw_pp.u.submit.pid;db_data->
 msg_ref=(unsigned char)ts_data_ptr->u.gw_pp.u.submit.message_reference;if(
 ts_data_ptr->u.gw_pp.u.submit.user_data_header_present){db_data->tp_udhi=
-(0x5ef+1596-0xc2a);}else{db_data->tp_udhi=(0x5b2+3697-0x1423);}if(db_data->
-tp_udhi==(0xfc9+5420-0x24f4)){for(ind=(0xd81+1956-0x1525);ind<ts_data_ptr->u.
+(0x639+6836-0x20ec);}else{db_data->tp_udhi=(0x18c9+77-0x1916);}if(db_data->
+tp_udhi==(0xd03+909-0x108f)){for(ind=(0xff2+2059-0x17fd);ind<ts_data_ptr->u.
 gw_pp.u.submit.user_data.num_headers;ind++){result=zUfiSms_ParseUdhiData(&(
 ts_data_ptr->u.gw_pp.u.submit.user_data.headers[ind]),db_data);if(
-ZTE_WMS_CONCAT_SMS_COUNT_MAX<db_data->concat_info[(0xfec+3956-0x1f5f)]){printf(
+ZTE_WMS_CONCAT_SMS_COUNT_MAX<db_data->concat_info[(0x13fd+3525-0x21c1)]){printf(
 "\x74\x68\x65\x20\x63\x6f\x6e\x63\x61\x74\x20\x73\x6d\x73\x20\x73\x65\x67\x6d\x65\x6e\x74\x20\x69\x73\x20\x6c\x61\x72\x67\x65\x72\x20\x74\x68\x65\x6e\x20\x74\x68\x65\x20\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x73\x65\x67\x6d\x65\x6e\x74\x73\x2c\x73\x6f\x20\x64\x69\x64\x20\x6e\x6f\x74\x20\x64\x65\x61\x6c\x20\x74\x68\x65\x20\x63\x6f\x6e\x63\x61\x74\x20\x73\x6d\x73\x2e"
 );if(WMS_STORAGE_TYPE_NV_V01==db_data->mem_store){zUfiSms_DelModemSms(db_data->
 index);}result=ZUFI_FAIL;}}}if(ts_data_ptr->u.gw_pp.u.submit.dcs.alphabet==
 WMS_GW_ALPHABET_UCS2){result=zUfiSms_DispatchWtoi(ts_data_ptr->u.gw_pp.u.submit.
 user_data.sm_data,ts_data_ptr->u.gw_pp.u.submit.user_data.sm_len,db_data->
 sms_content);db_data->alphabet=WMS_GW_ALPHABET_UCS2;}else if(ts_data_ptr->u.
-gw_pp.u.submit.dcs.alphabet==WMS_GW_ALPHABET_8_BIT){for(ind=(0xcd+409-0x266);ind
-<ts_data_ptr->u.gw_pp.u.submit.user_data.sm_len;ind++){db_data->sms_content[
-(0x107+1658-0x77d)*ind]=((char)(0x547+2424-0xe8f));db_data->sms_content[
-(0xeb6+1150-0x1330)*ind+(0x11eb+2395-0x1b45)]=((char)(0x8ab+2226-0x112d));
-db_data->sms_content[(0x1496+3785-0x235b)*ind+(0xfb+3120-0xd29)]=
+gw_pp.u.submit.dcs.alphabet==WMS_GW_ALPHABET_8_BIT){for(ind=(0x195b+556-0x1b87);
+ind<ts_data_ptr->u.gw_pp.u.submit.user_data.sm_len;ind++){db_data->sms_content[
+(0xd43+2473-0x16e8)*ind]=((char)(0xe7a+1018-0x1244));db_data->sms_content[
+(0xa95+4279-0x1b48)*ind+(0x1922+2649-0x237a)]=((char)(0x20c0+1051-0x24ab));
+db_data->sms_content[(0x50d+5505-0x1a8a)*ind+(0x985+6645-0x2378)]=
 g_zUfiSms_DigAscMap[((ts_data_ptr->u.gw_pp.u.submit.user_data.sm_data[ind]&
-(0x8fc+3103-0x142b))>>(0x6e4+5742-0x1d4e))];db_data->sms_content[
-(0x8aa+284-0x9c2)*ind+(0x109+978-0x4d8)]=g_zUfiSms_DigAscMap[(ts_data_ptr->u.
-gw_pp.u.submit.user_data.sm_data[ind]&(0x74b+829-0xa79))];db_data->alphabet=
+(0x211c+1084-0x2468))>>(0xbc9+1643-0x1230))];db_data->sms_content[
+(0x4cb+4814-0x1795)*ind+(0x11e4+1770-0x18cb)]=g_zUfiSms_DigAscMap[(ts_data_ptr->
+u.gw_pp.u.submit.user_data.sm_data[ind]&(0x6d8+331-0x814))];db_data->alphabet=
 WMS_GW_ALPHABET_UCS2;}}else if(ts_data_ptr->u.gw_pp.u.submit.dcs.alphabet==
 WMS_GW_ALPHABET_7_BIT_DEFAULT){result=zUfiSms_DispatchWtoi(ts_data_ptr->u.gw_pp.
 u.submit.user_data.sm_data,ts_data_ptr->u.gw_pp.u.submit.user_data.sm_len,
 db_data->sms_content);db_data->alphabet=WMS_GW_ALPHABET_7_BIT_DEFAULT;db_data->
-tp_dcs=(unsigned char)(0x116a+362-0x12d2);}return result;}int InvertNumbers(
+tp_dcs=(unsigned char)(0x837+3165-0x1492);}return result;}int InvertNumbers(
 const char*pSrc,char*pDst,int nSrcLength){int nDstLength;char ch;int i=
-(0x391+7594-0x213b);if(pSrc==NULL||pDst==NULL||nSrcLength<(0xde2+1173-0x1277)){
-return-(0xeb7+802-0x11d8);}nDstLength=nSrcLength;for(i=(0x12a0+1567-0x18bf);i<
-nSrcLength;i+=(0x14a0+1933-0x1c2b)){ch=*pSrc++;*pDst++=*pSrc++;*pDst++=ch;}if(
-nSrcLength&(0x1ffd+1631-0x265b)){*(pDst-(0x17cb+2151-0x2030))=
-((char)(0x14da+896-0x1814));nDstLength++;}*pDst='\0';return nDstLength;}int 
+(0x10e9+4785-0x239a);if(pSrc==NULL||pDst==NULL||nSrcLength<(0x1cad+2356-0x25e1))
+{return-(0x245+6435-0x1b67);}nDstLength=nSrcLength;for(i=(0xdd3+1152-0x1253);i<
+nSrcLength;i+=(0xb64+3725-0x19ef)){ch=*pSrc++;*pDst++=*pSrc++;*pDst++=ch;}if(
+nSrcLength&(0xecd+2399-0x182b)){*(pDst-(0x288+9343-0x2705))=
+((char)(0x584+4233-0x15c7));nDstLength++;}*pDst='\0';return nDstLength;}int 
 code_is_gsm7(const SMS_PARAM*pSrc,unsigned char buf[],int nLength){if(pSrc->
-TP_UDHI==(0x697+6325-0x1f4b)){buf[(0x97b+2991-0x1527)]=(unsigned char)nLength;
-buf[(0x1d99+373-0x1f0a)]=(unsigned char)pSrc->TP_UD[(0x263+4514-0x1405)];buf[
-(0x1fd+8663-0x23cf)]=(0x162f+2770-0x2101);buf[(0xbcb+5728-0x2225)]=(unsigned 
-char)pSrc->TP_UD[(0x298+950-0x64c)];buf[(0xf99+803-0x12b5)]=(unsigned char)pSrc
-->TP_UD[(0x13a6+339-0x14f6)];buf[(0x1161+5185-0x259a)]=(unsigned char)pSrc->
-TP_UD[(0x16c5+3002-0x227b)];buf[(0xd95+4376-0x1ea4)]=(unsigned char)pSrc->TP_UD[
-(0x15d+3895-0x108f)];buf[(0xac1+5269-0x1f4c)]=(unsigned char)pSrc->TP_UD[
-(0x38c+2739-0xe38)];buf[(0x155+4486-0x12d1)]=(unsigned char)(buf[
-(0x18a1+3540-0x266b)]<<(0x1095+5671-0x26bb));nLength=nLength-
-(0x1801+3673-0x2653);nLength=Encode7bit(&(pSrc->TP_UD[(0x341+2174-0xbb7)]),&buf[
-(0x26b+637-0x4dd)],nLength+(0x14db+2160-0x1d4a))+(0x399+2738-0xe47)+
-(0x10b3+4797-0x236a);
-#if (0x41a+3762-0x12cc)
-nLength+=(0x1761+1885-0x1ebc);
+TP_UDHI==(0x13c1+3112-0x1fe8)){buf[(0x2666+73-0x26ac)]=(unsigned char)nLength;
+buf[(0x196d+137-0x19f2)]=(unsigned char)pSrc->TP_UD[(0xa05+93-0xa62)];buf[
+(0x305+2777-0xdd9)]=(0x177a+665-0x1a13);buf[(0xd9+3480-0xe6b)]=(unsigned char)
+pSrc->TP_UD[(0x24b+2593-0xc6a)];buf[(0x1fd7+563-0x2203)]=(unsigned char)pSrc->
+TP_UD[(0x114f+4097-0x214d)];buf[(0xe20+6313-0x26c1)]=(unsigned char)pSrc->TP_UD[
+(0xb4a+1918-0x12c4)];buf[(0x1881+2698-0x2302)]=(unsigned char)pSrc->TP_UD[
+(0x3a+2693-0xaba)];buf[(0xa85+3921-0x19cc)]=(unsigned char)pSrc->TP_UD[
+(0xd80+5773-0x2406)];buf[(0x63a+2105-0xe69)]=(unsigned char)(buf[
+(0xfd9+4249-0x2068)]<<(0x188d+2164-0x2100));nLength=nLength-(0x28d+4747-0x1511);
+nLength=Encode7bit(&(pSrc->TP_UD[(0x18e0+367-0x1a47)]),&buf[(0x8d6+3547-0x16a6)]
+,nLength+(0x49d+4000-0x143c))+(0x69c+3686-0x14fe)+(0x137a+263-0x147b);
+#if (0x16ab+2339-0x1fce)
+nLength+=(0x485+5213-0x18e0);
 #endif

-}else{nLength=pSrc->TP_UDLength;buf[(0xc9b+4922-0x1fd2)]=nLength;nLength=
-Encode7bit(pSrc->TP_UD,&buf[(0x1a8a+1112-0x1ede)],nLength+(0x1c85+559-0x1eb3))+
-(0xa67+2989-0x1610);}at_print(LOG_DEBUG,
+}else{nLength=pSrc->TP_UDLength;buf[(0x19d8+311-0x1b0c)]=nLength;nLength=
+Encode7bit(pSrc->TP_UD,&buf[(0x8a6+2593-0x12c3)],nLength+(0xaf5+3685-0x1959))+
+(0x1574+3945-0x24d9);}at_print(LOG_DEBUG,
 "\x62\x75\x66\x20\x69\x73\x20\x25\x73" "\n",buf);return nLength;}int 
 code_is_ucs2(const SMS_PARAM*pSrc,unsigned char buf[],int nLength){nLength=
-strlen(pSrc->TP_UD);if(pSrc->TP_UDHI==(0x1669+48-0x1698)){buf[
-(0x185a+2248-0x211f)]=(unsigned char)nLength;buf[(0xc92+1995-0x1459)]=(unsigned 
-char)pSrc->TP_UD[(0x982+4563-0x1b55)];buf[(0x149d+776-0x17a0)]=
-(0x9ad+2122-0x11f7);buf[(0x95b+5492-0x1ec9)]=(unsigned char)pSrc->TP_UD[
-(0x4d8+7635-0x22a9)];buf[(0x1b4+5023-0x154c)]=(unsigned char)pSrc->TP_UD[
-(0x21c6+1198-0x2671)];buf[(0x1b4a+1893-0x22a7)]=(unsigned char)pSrc->TP_UD[
-(0xf1f+4212-0x1f8f)];buf[(0xf9+8633-0x22a9)]=(unsigned char)pSrc->TP_UD[
-(0x1f88+721-0x2254)];buf[(0x289+1704-0x92e)]=(unsigned char)(EncodeUcs2(&(pSrc->
-TP_UD[(0x1683+2119-0x1ec4)]),&buf[(0x1a3f+3048-0x261d)],nLength-
-(0x25c+5834-0x1920))+(0xb11+1919-0x128a));nLength=buf[(0x8d2+7670-0x26c5)]+
-(0x15d1+4242-0x265f);}else{buf[(0x158+8927-0x2434)]=EncodeUcs2(pSrc->TP_UD,&buf[
-(0xbc3+2080-0x13df)],nLength);nLength=buf[(0x13dc+1986-0x1b9b)]+
-(0x70a+3134-0x1344);}return nLength;}int Encode8bit(const char*pSrc,unsigned 
+strlen(pSrc->TP_UD);if(pSrc->TP_UDHI==(0x374+2114-0xbb5)){buf[
+(0x1715+3819-0x25fd)]=(unsigned char)nLength;buf[(0x22dc+150-0x236e)]=(unsigned 
+char)pSrc->TP_UD[(0x232+1693-0x8cf)];buf[(0x30c+3924-0x125b)]=
+(0xcaf+4400-0x1ddf);buf[(0x4a1+1213-0x958)]=(unsigned char)pSrc->TP_UD[
+(0x1488+4532-0x263a)];buf[(0xfa4+3044-0x1b81)]=(unsigned char)pSrc->TP_UD[
+(0x607+8144-0x25d4)];buf[(0xe0+8862-0x2376)]=(unsigned char)pSrc->TP_UD[
+(0x1116+5299-0x25c5)];buf[(0x555+5180-0x1988)]=(unsigned char)pSrc->TP_UD[
+(0x1aab+2739-0x2559)];buf[(0xc17+1221-0x10d9)]=(unsigned char)(EncodeUcs2(&(pSrc
+->TP_UD[(0x14f8+675-0x1795)]),&buf[(0x4b+2126-0x88f)],nLength-
+(0x15d9+3954-0x2545))+(0x137a+1457-0x1925));nLength=buf[(0xbd1+1738-0x1298)]+
+(0x102c+173-0x10d5);}else{buf[(0x135+7590-0x1ed8)]=EncodeUcs2(pSrc->TP_UD,&buf[
+(0x1046+1292-0x154e)],nLength);nLength=buf[(0xad9+1498-0x10b0)]+
+(0x212d+693-0x23de);}return nLength;}int Encode8bit(const char*pSrc,unsigned 
 char*pDst,int nSrcLength){if(pSrc==NULL||pDst==NULL||nSrcLength<
-(0x8ea+7224-0x2522)){return-(0x3eb+8800-0x264a);}memcpy(pDst,pSrc,nSrcLength);
+(0xaaa+6408-0x23b2)){return-(0x3b0+7219-0x1fe2);}memcpy(pDst,pSrc,nSrcLength);
 return nSrcLength;}int EncodePdu_Submit(const SMS_PARAM*pSrc,char*pDst){int 
-nLength=(0x27b+557-0x4a8);int nDstLength=(0x2271+649-0x24fa);unsigned char buf[
-(0x298+8084-0x212c)]={(0x12f8+4891-0x2613)};char tmpSCA[(0x11d+8373-0x21ae)]={
-(0xccf+3686-0x1b35)};int check_udl=(0xfd5+1613-0x1622);memset(tmpSCA,
-(0x18d+2413-0xafa),sizeof(tmpSCA));if(pSrc==NULL||pDst==NULL){return-
-(0xdf0+4997-0x2174);}
-#if (0xdf2+4893-0x210e)
+nLength=(0x47c+2821-0xf81);int nDstLength=(0xf63+627-0x11d6);unsigned char buf[
+(0x9c9+3930-0x1823)]={(0x8b1+5758-0x1f2f)};char tmpSCA[(0x105+8898-0x23a3)]={
+(0xb12+5044-0x1ec6)};int check_udl=(0x15bb+1054-0x19d9);memset(tmpSCA,
+(0xda5+4260-0x1e49),sizeof(tmpSCA));if(pSrc==NULL||pDst==NULL){return-
+(0xb00+1289-0x1008);}
+#if (0x82a+5024-0x1bc9)
 printf(
 "\x5b\x53\x4d\x53\x63\x6f\x72\x65\x6d\x5d\x20\x45\x6e\x63\x6f\x64\x65\x50\x64\x75\x5f\x53\x75\x62\x6d\x69\x74\x20\x6d\x61\x6b\x65\x20\x70\x64\x75\x20\x64\x61\x74\x61" "\n"
 );printf(
@@ -913,392 +909,392 @@
 "\x5b\x53\x4d\x53\x63\x6f\x72\x65\x6d\x5d\x73\x63\x61\x3a\x25\x73" "\n",pSrc->
 SCA);
 #endif

-nLength=strlen(pSrc->SCA);buf[(0x1672+3434-0x23dc)]=(char)(((nLength)&
-(0x17bc+3808-0x269b))==(0x107d+2305-0x197e)?(nLength):nLength+
-(0x14bd+1705-0x1b65))/(0x1592+2970-0x212a)+(0x2d6+873-0x63e);buf[
-(0x1a89+637-0x1d05)]=(0x95a+4437-0x1a2e);strncpy(tmpSCA,pSrc->SCA,sizeof(tmpSCA)
--(0x11d3+3559-0x1fb9));if(!(strncmp(pSrc->SCA,"\x30\x30\x38\x36",
-(0x22+9183-0x23fd)))){memset(tmpSCA,(0x15af+1024-0x19af),sizeof(tmpSCA));nLength
-=nLength-(0x790+7810-0x2611);
-#if (0xcea+1290-0x11f3)
-nLength=nLength-(0x5a0+8366-0x264d);strncpy(tmpSCA,&(pSrc->SCA[
-(0x1401+635-0x167a)]),sizeof(tmpSCA)-(0xca7+1507-0x1289));
+nLength=strlen(pSrc->SCA);buf[(0xdd4+4230-0x1e5a)]=(char)(((nLength)&
+(0xb29+4144-0x1b58))==(0x3cb+4031-0x138a)?(nLength):nLength+(0x244b+657-0x26db))
+/(0x656+8171-0x263f)+(0x102+9188-0x24e5);buf[(0x189f+1051-0x1cb9)]=
+(0x1c8+1979-0x902);strncpy(tmpSCA,pSrc->SCA,sizeof(tmpSCA)-(0x7e6+1230-0xcb3));
+if(!(strncmp(pSrc->SCA,"\x30\x30\x38\x36",(0x892+2664-0x12f6)))){memset(tmpSCA,
+(0x10cb+3411-0x1e1e),sizeof(tmpSCA));nLength=nLength-(0x356+3779-0x1218);
+#if (0x14dc+534-0x16f1)
+nLength=nLength-(0x1822+2598-0x2247);strncpy(tmpSCA,&(pSrc->SCA[
+(0x93+1350-0x5d7)]),sizeof(tmpSCA)-(0xc3d+1423-0x11cb));
 #else

-tmpSCA[(0x166+8138-0x2130)]=((char)(0x1651+516-0x182a));strcpy(&(tmpSCA[
-(0x1515+1127-0x197b)]),&(pSrc->SCA[(0x3aa+710-0x66e)]));
+tmpSCA[(0x1413+3105-0x2034)]=((char)(0x8dd+7051-0x243d));strcpy(&(tmpSCA[
+(0x1455+1273-0x194d)]),&(pSrc->SCA[(0x106d+2293-0x1960)]));
 #endif

-buf[(0x9f3+7134-0x25d1)]=(char)((nLength&(0x1718+2965-0x22ac))==
-(0x27f+7766-0x20d5)?nLength:nLength+(0xfaf+2989-0x1b5b))/(0x139f+1709-0x1a4a)+
-(0xe81+2426-0x17fa);buf[(0x3c2+4039-0x1388)]=(0x501+3473-0x1201);}else if(
-((char)(0x199b+2866-0x24a2))==pSrc->SCA[(0x6e2+5484-0x1c4e)]){memset(tmpSCA,
-(0x1498+2651-0x1ef3),sizeof(tmpSCA));
-#if (0x7e4+3024-0x13b3)
-nLength=nLength-(0x8d6+7573-0x266a);strncpy(tmpSCA,&(pSrc->SCA[(0xb1f+357-0xc83)
-]),sizeof(tmpSCA)-(0x10b4+2230-0x1969));
+buf[(0x80f+4158-0x184d)]=(char)((nLength&(0x1c60+1544-0x2267))==(0xa48+12-0xa54)
+?nLength:nLength+(0x2cd+4036-0x1290))/(0x15c+1388-0x6c6)+(0x44f+6836-0x1f02);buf
+[(0x598+6600-0x1f5f)]=(0x6d2+5232-0x1ab1);}else if(((char)(0x190c+2701-0x236e))
+==pSrc->SCA[(0x1850+899-0x1bd3)]){memset(tmpSCA,(0x6bd+1219-0xb80),sizeof(tmpSCA
+));
+#if (0xd2b+2706-0x17bc)
+nLength=nLength-(0x1041+5494-0x25b6);strncpy(tmpSCA,&(pSrc->SCA[
+(0x1599+4088-0x2590)]),sizeof(tmpSCA)-(0xecf+860-0x122a));
 #else

 strcpy(tmpSCA,pSrc->SCA);
 #endif

-buf[(0xb16+6549-0x24ab)]=(char)((nLength&(0x107d+2428-0x19f8))==
-(0xe9f+2884-0x19e3)?(nLength):nLength+(0x1fac+413-0x2148))/(0x2b4+5010-0x1644)+
-(0xa2c+2161-0x129c);buf[(0xb79+3032-0x1750)]=(0x441+2412-0xd1c);}
-#if (0x176+4106-0x117f)
+buf[(0xcfa+3285-0x19cf)]=(char)((nLength&(0x1408+1404-0x1983))==
+(0xe2b+3267-0x1aee)?(nLength):nLength+(0x173f+1857-0x1e7f))/(0x9d7+3764-0x1889)+
+(0x2bc+4536-0x1473);buf[(0x2cd+925-0x669)]=(0x11d3+1721-0x17fb);}
+#if (0xf2b+3729-0x1dbb)
 printf(
 "\x5b\x53\x4d\x53\x63\x6f\x72\x65\x6d\x5d\x70\x64\x73\x74\x32\x3a\x25\x73" "\n",
 pDst);
 #endif

-if(nLength<(0xccf+4809-0x1f97)||nLength>=sizeof(tmpSCA))return-
-(0xecb+2068-0x16de);nDstLength=Bytes2String(buf,pDst,(0x439+3544-0x120f));
+if(nLength<(0x547+4242-0x15d8)||nLength>=sizeof(tmpSCA))return-
+(0xbb6+1006-0xfa3);nDstLength=Bytes2String(buf,pDst,(0xc60+1085-0x109b));
 nDstLength+=InvertNumbers(tmpSCA,&pDst[nDstLength],nLength);
-#if (0x648+191-0x706)
+#if (0x109+569-0x341)
 printf(
 "\x5b\x53\x4d\x53\x63\x6f\x72\x65\x6d\x5d\x70\x64\x73\x74\x33\x3a\x25\x73" "\n",
 pDst);
 #endif

-if(pSrc->TPA[(0xca7+1984-0x1467)]==((char)(0x31+8658-0x21d8))){nLength=strlen(&(
-pSrc->TPA[(0x436+8173-0x2422)]));}else{nLength=strlen(pSrc->TPA);}if(pSrc->
-TP_UDHI==(0x1554+3379-0x2287)){if(pSrc->TP_SRR==(0xbe2+1932-0x136e)){buf[
-(0x6b7+6634-0x20a1)]=(0xb37+6670-0x2534);}if(pSrc->TP_SRR==(0xd50+744-0x1037)){
-buf[(0x1631+235-0x171c)]=(0xd91+2569-0x1769);}}if(pSrc->TP_UDHI==
-(0xcbd+1429-0x1251)){if(pSrc->TP_SRR==(0x1260+2632-0x1ca8)){buf[
-(0x12e3+1957-0x1a88)]=(0x14f3+2743-0x1f59);}if(pSrc->TP_SRR==(0x1e58+64-0x1e97))
-{buf[(0xc0d+308-0xd41)]=(0xa4+6589-0x19f0);}}buf[(0x1cac+649-0x1f34)]=
-(0x1103+1627-0x175e);buf[(0x431+5467-0x198a)]=(char)nLength;if(pSrc->TPA[
-(0xf61+216-0x1039)]==((char)(0xd3b+1286-0x1216))){buf[(0x5d5+7803-0x244d)]=
-(0x17f8+3200-0x23e7);nDstLength+=Bytes2String(buf,&pDst[nDstLength],
-(0x1771+777-0x1a76));nDstLength+=InvertNumbers(&(pSrc->TPA[(0x1edc+414-0x2079)])
-,&pDst[nDstLength],nLength);}else if(!(strncmp(pSrc->TPA,"\x30\x30\x38\x36",
-(0x1a1f+2331-0x2336)))){buf[(0x1459+4444-0x25b3)]=(char)nLength-
-(0x5f9+8024-0x254f);buf[(0x1aad+691-0x1d5d)]=(0x1821+2407-0x20f7);nDstLength+=
-Bytes2String(buf,&pDst[nDstLength],(0x99b+2477-0x1344));nDstLength+=
-InvertNumbers(&(pSrc->TPA[(0xbd3+3376-0x1901)]),&pDst[nDstLength],nLength-
-(0x6f7+3909-0x163a));}else{buf[(0x9a8+2169-0x121e)]=(0x82b+3412-0x14fe);
-nDstLength+=Bytes2String(buf,&pDst[nDstLength],(0x13b3+1090-0x17f1));nDstLength
-+=InvertNumbers(pSrc->TPA,&pDst[nDstLength],nLength);}
-#if (0x3d4+1310-0x8f1)
+if(pSrc->TPA[(0x9cc+2131-0x121f)]==((char)(0x10fd+1121-0x1533))){nLength=strlen(
+&(pSrc->TPA[(0x6b7+6423-0x1fcd)]));}else{nLength=strlen(pSrc->TPA);}if(pSrc->
+TP_UDHI==(0x9aa+774-0xcb0)){if(pSrc->TP_SRR==(0xc81+3580-0x1a7d)){buf[
+(0xc89+1949-0x1426)]=(0x38b+994-0x75c);}if(pSrc->TP_SRR==(0x140a+108-0x1475)){
+buf[(0x2142+696-0x23fa)]=(0x1fb+5309-0x1687);}}if(pSrc->TP_UDHI==
+(0xced+3509-0x1aa1)){if(pSrc->TP_SRR==(0x11e9+150-0x127f)){buf[
+(0xcc4+6538-0x264e)]=(0x1848+1013-0x1bec);}if(pSrc->TP_SRR==(0x3b+2412-0x9a6)){
+buf[(0x37a+3731-0x120d)]=(0x14e8+4355-0x257a);}}buf[(0xf6a+1548-0x1575)]=
+(0x70a+3271-0x13d1);buf[(0x1653+1153-0x1ad2)]=(char)nLength;if(pSrc->TPA[
+(0xd0b+1976-0x14c3)]==((char)(0x3fc+7285-0x2046))){buf[(0x1c43+1737-0x2309)]=
+(0xab0+6609-0x23f0);nDstLength+=Bytes2String(buf,&pDst[nDstLength],
+(0x4c7+3769-0x137c));nDstLength+=InvertNumbers(&(pSrc->TPA[(0x420+1666-0xaa1)]),
+&pDst[nDstLength],nLength);}else if(!(strncmp(pSrc->TPA,"\x30\x30\x38\x36",
+(0x5c5+6128-0x1db1)))){buf[(0x128b+887-0x1600)]=(char)nLength-
+(0x785+8006-0x26c9);buf[(0x13ca+3013-0x1f8c)]=(0x7d7+3800-0x161e);nDstLength+=
+Bytes2String(buf,&pDst[nDstLength],(0x444+8125-0x23fd));nDstLength+=
+InvertNumbers(&(pSrc->TPA[(0xc2a+6576-0x25d8)]),&pDst[nDstLength],nLength-
+(0x3cd+3487-0x116a));}else{buf[(0x3b5+5790-0x1a50)]=(0x260+7062-0x1d75);
+nDstLength+=Bytes2String(buf,&pDst[nDstLength],(0x20c+6768-0x1c78));nDstLength+=
+InvertNumbers(pSrc->TPA,&pDst[nDstLength],nLength);}
+#if (0x2374+340-0x24c7)
 printf(
 "\x5b\x53\x4d\x53\x63\x6f\x72\x65\x6d\x5d\x70\x64\x73\x74\x34\x3a\x25\x73" "\n",
 pDst);
 #endif

-nLength=(int)pSrc->TP_UDLength;buf[(0xf94+187-0x104f)]=pSrc->TP_PID;buf[
-(0x157f+435-0x1731)]=pSrc->TP_DCS;buf[(0x455+201-0x51c)]=pSrc->TP_VP;if(pSrc->
+nLength=(int)pSrc->TP_UDLength;buf[(0x302+243-0x3f5)]=pSrc->TP_PID;buf[
+(0x833+7288-0x24aa)]=pSrc->TP_DCS;buf[(0x927+3131-0x1560)]=pSrc->TP_VP;if(pSrc->
 TP_DCS==CODE_GSM7){nLength=code_is_gsm7(pSrc,buf,nLength);}else if(pSrc->TP_DCS
 ==CODE_UCS2){nLength=code_is_ucs2(pSrc,buf,nLength);}else{nLength=strlen(pSrc->
-TP_UD);if(pSrc->TP_UDHI==(0x9ea+1936-0x1179)){buf[(0xa3d+3810-0x191c)]=(unsigned
- char)nLength;buf[(0x45+4420-0x1185)]=(unsigned char)pSrc->TP_UD[
-(0x137d+1917-0x1afa)];buf[(0x1887+1986-0x2044)]=(0xc8d+1152-0x110d);buf[
-(0x978+5612-0x1f5e)]=(unsigned char)pSrc->TP_UD[(0x1060+535-0x1275)];buf[
-(0xe2d+501-0x101b)]=(unsigned char)pSrc->TP_UD[(0x1497+3920-0x23e4)];buf[
-(0xf+8635-0x21c2)]=(unsigned char)pSrc->TP_UD[(0x3d5+1781-0xac6)];buf[
-(0x1996+2417-0x22fe)]=(unsigned char)pSrc->TP_UD[(0x45a+4064-0x1435)];if(nLength
--(0xbad+234-0xc91)<=(0xa46+691-0xcf9)||nLength-(0x117+4577-0x12f2)>=sizeof(buf)-
-(0x1c6+7767-0x2013))return-(0x15bc+3366-0x22e1);buf[(0x124c+3489-0x1fea)]=(
-unsigned char)(Encode8bit(&(pSrc->TP_UD[(0x579+5802-0x1c1d)]),&buf[
-(0x449+5626-0x1a39)],(unsigned short)(nLength-(0xb41+160-0xbdb)))+
-(0x22af+320-0x23e9));nLength=buf[(0x112c+4373-0x223e)]+(0x1c33+1479-0x21f6);}
-else{if(nLength<=(0xe86+3658-0x1cd0)||nLength>=sizeof(buf)-(0x9a5+3765-0x1856))
-return-(0x1227+4762-0x24c0);buf[(0x4f+837-0x391)]=Encode8bit(pSrc->TP_UD,&buf[
-(0x55c+7577-0x22f1)],nLength);nLength=buf[(0x19f3+207-0x1abf)]+
-(0xdf+6643-0x1ace);}}check_udl=nLength-(0x1cec+1419-0x2273);nDstLength+=
+TP_UD);if(pSrc->TP_UDHI==(0x319+4829-0x15f5)){buf[(0x1b42+2100-0x2373)]=(
+unsigned char)nLength;buf[(0x4ba+1274-0x9b0)]=(unsigned char)pSrc->TP_UD[
+(0x13ec+356-0x1550)];buf[(0xbba+1050-0xfcf)]=(0xd29+3184-0x1999);buf[
+(0x180a+1260-0x1cf0)]=(unsigned char)pSrc->TP_UD[(0x16e6+1938-0x1e76)];buf[
+(0x12d3+4015-0x227b)]=(unsigned char)pSrc->TP_UD[(0xfb+6316-0x19a4)];buf[
+(0x6d4+4351-0x17cb)]=(unsigned char)pSrc->TP_UD[(0x50b+4936-0x184f)];buf[
+(0x13fa+1400-0x1969)]=(unsigned char)pSrc->TP_UD[(0x197+1185-0x633)];if(nLength-
+(0x1648+35-0x1665)<=(0x159+7679-0x1f58)||nLength-(0xdd6+1670-0x1456)>=sizeof(buf
+)-(0x14ad+2567-0x1eaa))return-(0x7f4+7533-0x2560);buf[(0x4ba+600-0x70f)]=(
+unsigned char)(Encode8bit(&(pSrc->TP_UD[(0xd61+5117-0x2158)]),&buf[
+(0x856+1642-0xeb6)],(unsigned short)(nLength-(0x48d+7730-0x22b9)))+
+(0x5ed+961-0x9a8));nLength=buf[(0x1bc5+215-0x1c99)]+(0x17eb+2784-0x22c7);}else{
+if(nLength<=(0xf60+1656-0x15d8)||nLength>=sizeof(buf)-(0x1a8+8841-0x242d))return
+-(0x78a+7980-0x26b5);buf[(0x4b+3604-0xe5c)]=Encode8bit(pSrc->TP_UD,&buf[
+(0x103a+4920-0x236e)],nLength);nLength=buf[(0x1f2d+797-0x2247)]+
+(0x1be9+1390-0x2153);}}check_udl=nLength-(0x2464+217-0x2539);nDstLength+=
 Bytes2String(buf,&pDst[nDstLength],nLength);sc_cfg_set(NV_CHECK_UDL,"");if(
-check_udl>(0x694+3006-0x11c6)){sc_cfg_set(NV_CHECK_UDL,"\x65\x72\x72\x6f\x72");}
-#if (0x38a+4756-0x161d)
+check_udl>(0x2c5+5522-0x17cb)){sc_cfg_set(NV_CHECK_UDL,"\x65\x72\x72\x6f\x72");}
+#if (0xc3a+4860-0x1f35)
 printf(
 "\x5b\x53\x4d\x53\x63\x6f\x72\x65\x6d\x5d\x20\x45\x6e\x63\x6f\x64\x65\x50\x64\x75\x5f\x53\x75\x62\x6d\x69\x74\x20\x65\x6e\x64\x20\x6d\x61\x6b\x65\x20\x70\x64\x75\x20\x64\x61\x74\x61" "\n"
 );printf(
 "\x5b\x53\x4d\x53\x63\x6f\x72\x65\x6d\x5d\x6c\x65\x6e\x3a\x25\x64\x2c\x20\x74\x70\x75\x64\x3a\x25\x73" "\n"
 ,nDstLength,pSrc->TP_UD);
 #endif

-#if (0x5d2+4268-0x167d)
+#if (0xa57+3957-0x19cb)
 printf(
 "\x5b\x53\x4d\x53\x63\x6f\x72\x65\x6d\x5d\x70\x64\x73\x74\x35\x3a\x25\x73" "\n",
 pDst);
 #endif

 return nDstLength;}int Decode7bit(const unsigned char*pSrc,char*pDst,int 
 nSrcLength){int nSrc;int nDst;int nByte;unsigned char nLeft;if(pSrc==NULL||pDst
-==NULL||nSrcLength<(0x712+2847-0x1231)){return-(0x21c7+444-0x2382);}nSrc=
-(0x68b+4339-0x177e);nDst=(0x2b+7690-0x1e35);nByte=(0x431+3321-0x112a);nLeft=
-(0xb37+914-0xec9);while(nSrc<nSrcLength){*pDst=((*pSrc<<nByte)|nLeft)&
-(0x18e1+445-0x1a1f);nLeft=*pSrc>>((0x89a+1283-0xd96)-nByte);pDst++;nDst++;nByte
-++;if(nByte==(0x142f+3635-0x225b)){*pDst=nLeft;pDst++;nDst++;nByte=
-(0x19c+8302-0x220a);nLeft=(0x6c0+8210-0x26d2);}pSrc++;nSrc++;}*pDst='\0';return 
+==NULL||nSrcLength<(0xf4f+4500-0x20e3)){return-(0x768+3839-0x1666);}nSrc=
+(0xff7+1197-0x14a4);nDst=(0x2278+1142-0x26ee);nByte=(0x16c9+3823-0x25b8);nLeft=
+(0x101b+3335-0x1d22);while(nSrc<nSrcLength){*pDst=((*pSrc<<nByte)|nLeft)&
+(0x1213+4877-0x24a1);nLeft=*pSrc>>((0x23d+4770-0x14d8)-nByte);pDst++;nDst++;
+nByte++;if(nByte==(0x17b1+3567-0x2599)){*pDst=nLeft;pDst++;nDst++;nByte=
+(0xbed+6081-0x23ae);nLeft=(0xe1+4128-0x1101);}pSrc++;nSrc++;}*pDst='\0';return 
 nDst;}int DecodePushPdu(const char*pSrcPdu,SMS_PARAM*pDst){int nDstLength=
-(0x2283+176-0x2333);unsigned char tmp=(0x18ef+1319-0x1e16);int ud_length=
-(0xfd8+4566-0x21ae);unsigned char buf[(0x1f70+1416-0x23f8)]={(0x884+5429-0x1db9)
-};char temp_num[(0x1077+3755-0x1ebe)]={(0x1120+5346-0x2602)};unsigned char 
-first_octet=(0xd81+4110-0x1d8f);unsigned char udhl=(0x215d+662-0x23f3);unsigned 
-int halftmp=(0x2109+1513-0x26f2);char tp_ra[(0x106c+908-0x13f5)]={
-(0x163+3636-0xf97)};int tmplen=(0x1ba0+2732-0x264c);unsigned char IEIDL;int 
-pushType=(0x16af+2725-0x2154);const char*pSrc=pSrcPdu;if(pSrcPdu==NULL||pDst==
+(0x3f9+7678-0x21f7);unsigned char tmp=(0x93c+5752-0x1fb4);int ud_length=
+(0xa79+620-0xce5);unsigned char buf[(0x1f89+322-0x1fcb)]={(0xf57+5888-0x2657)};
+char temp_num[(0x958+5371-0x1def)]={(0x152+6675-0x1b65)};unsigned char 
+first_octet=(0x1a49+3057-0x263a);unsigned char udhl=(0xd22+5434-0x225c);unsigned
+ int halftmp=(0x622+2414-0xf90);char tp_ra[(0x1cfd+2134-0x2550)]={
+(0x1486+3775-0x2345)};int tmplen=(0x13b3+3855-0x22c2);unsigned char IEIDL;int 
+pushType=(0xe05+5709-0x2452);const char*pSrc=pSrcPdu;if(pSrcPdu==NULL||pDst==
 NULL){printf(
 "\x44\x65\x63\x6f\x64\x65\x50\x75\x73\x68\x50\x64\x75\x20\x70\x61\x72\x61\x20\x6e\x75\x6c\x6c\x2e\x20" "\n"
-);return-(0xf80+2036-0x1773);}String2Bytes(pSrc,&tmp,(0x5fa+3603-0x140b));
+);return-(0xdc6+2614-0x17fb);}String2Bytes(pSrc,&tmp,(0x11b0+2479-0x1b5d));
 at_print(LOG_DEBUG,
 "\x44\x65\x63\x6f\x64\x65\x50\x75\x73\x68\x50\x64\x75\x20\x74\x6d\x70\x20\x3d\x20\x25\x64\x2e" "\n"
-,tmp);if(tmp==(0x1f5+442-0x3af)){pSrc+=(0x10c+6433-0x1a2b);}else{tmp=(tmp-
-(0x3ad+1471-0x96b))*(0x8ff+7265-0x255e);pSrc+=(0x1a47+1554-0x2055);if(tmp>
-(0x1798+1342-0x1cb6)){SerializeNumbers_sms(pSrc,pDst->SCA,(0x368+7451-0x2063));
-tmp=(0x6ec+7062-0x2262);}else{SerializeNumbers_sms(pSrc,pDst->SCA,tmp);}pSrc+=
-tmp;}String2Bytes(pSrc,&tmp,(0x1009+4528-0x21b7));first_octet=tmp;pSrc+=
-(0x48f+8252-0x24c9);String2Bytes(pSrc,&tmp,(0x1686+1200-0x1b34));halftmp=tmp;if(
-tmp&(0x452+1441-0x9f2))tmp+=(0x627+5894-0x1d2c);pSrc+=(0x2017+129-0x2096);memset
-(tp_ra,(0x369+4443-0x14c4),sizeof(tp_ra));String2Bytes(pSrc,tp_ra,
-(0x1885+1980-0x203f));pSrc+=(0xc30+5103-0x201d);if((tp_ra[(0xa50+6744-0x24a8)]&
-(0x98b+1977-0x10f4))==(0xe01+3956-0x1d25)){char tempra[(0x4a8+3699-0x129b)];char
- acAsc[(0x17c0+472-0x1918)];if(halftmp>=(0x781+4579-0x1956)){halftmp=(tmp/
-(0x4c3+3581-0x12be))/(0x3b4+688-0x65d)+(tmp/(0x652+5103-0x1a3f));}else{halftmp=
-tmp/(0xba+5250-0x153a);}memset(tempra,(0x1d7c+633-0x1ff5),sizeof(tempra));memcpy
-(tempra,pSrc,tmp);memset(acAsc,(0x1f31+601-0x218a),sizeof(acAsc));nDstLength=
-String2Bytes(tempra,buf,halftmp&(0x643+2302-0xf3a)?(int)halftmp*
-(0x146+5023-0x14de)/(0x13a4+121-0x1419)+(0x87c+952-0xc32):(int)halftmp*
-(0x13fb+3346-0x2106)/(0x2149+859-0x24a0));halftmp=Decode7bit(buf,acAsc,
-nDstLength);memset(pDst->TPA,(0xa53+394-0xbdd),sizeof(pDst->TPA));if(halftmp>
-(0x2a8+8527-0x23d7)){memcpy(pDst->TPA,acAsc,(0x840+3308-0x150c));tmp=
-(0xae8+1401-0x1041);}else{memcpy(pDst->TPA,acAsc,halftmp);}}else{if(tmp>
-(0x4f7+5316-0x199b)){SerializeNumbers_sms(pSrc,pDst->TPA,(0x842+6976-0x2362));}
-else{SerializeNumbers_sms(pSrc,pDst->TPA,tmp);}if((tp_ra[(0x1055+726-0x132b)]&
-(0x15b+2034-0x8bc))==(0xa82+1284-0xef5)){memset(temp_num,(0x1819+307-0x194c),
-sizeof(temp_num));if(pDst->TPA[(0x18a1+2616-0x22d9)]!=
-((char)(0x567+7246-0x218a))){snprintf(temp_num,sizeof(temp_num),
-"\x25\x73\x25\x73","\x2b",pDst->TPA);if(strlen(temp_num)>(0x171c+2741-0x21b1)){
-snprintf(pDst->TPA,sizeof(pDst->TPA),"\x25\x33\x32\x73",temp_num);}else{snprintf
-(pDst->TPA,sizeof(pDst->TPA),"\x25\x73",temp_num);}}}}pSrc+=tmp;String2Bytes(
-pSrc,(unsigned char*)&pDst->TP_PID,(0x128+7116-0x1cf2));pSrc+=(0x997+1267-0xe88)
-;String2Bytes(pSrc,(unsigned char*)&pDst->TP_DCS,(0x745+2487-0x10fa));pSrc+=
-(0x1233+4338-0x2323);SerializeNumbers_sms(pSrc,pDst->TP_SCTS,(0x436+2074-0xc42))
-;pSrc+=(0xa40+531-0xc45);String2Bytes(pSrc,&tmp,(0xbc9+6227-0x241a));pSrc+=
-(0xd4b+563-0xf7c);memset(pDst->TP_UD,(0xe3c+4598-0x2032),sizeof(pDst->TP_UD));
+,tmp);if(tmp==(0x82f+7865-0x26e8)){pSrc+=(0x13ba+2984-0x1f60);}else{tmp=(tmp-
+(0xbb3+2025-0x139b))*(0x1454+3190-0x20c8);pSrc+=(0x4f7+4480-0x1673);if(tmp>
+(0xe96+1862-0x15bc)){SerializeNumbers_sms(pSrc,pDst->SCA,(0x18ad+2818-0x238f));
+tmp=(0x9d4+7426-0x26b6);}else{SerializeNumbers_sms(pSrc,pDst->SCA,tmp);}pSrc+=
+tmp;}String2Bytes(pSrc,&tmp,(0x14df+2686-0x1f5b));first_octet=tmp;pSrc+=
+(0xa31+7147-0x261a);String2Bytes(pSrc,&tmp,(0x625+8177-0x2614));halftmp=tmp;if(
+tmp&(0x69a+4778-0x1943))tmp+=(0x42d+4905-0x1755);pSrc+=(0x146a+2123-0x1cb3);
+memset(tp_ra,(0x485+6659-0x1e88),sizeof(tp_ra));String2Bytes(pSrc,tp_ra,
+(0xcc6+4214-0x1d3a));pSrc+=(0xcfd+3282-0x19cd);if((tp_ra[(0x53d+1354-0xa87)]&
+(0x126+453-0x29b))==(0x8cb+2903-0x13d2)){char tempra[(0x68c+2525-0xfe9)];char 
+acAsc[(0x1a26+1631-0x2005)];if(halftmp>=(0x1641+3606-0x2449)){halftmp=(tmp/
+(0x1569+2857-0x2090))/(0xd6d+1245-0x1243)+(tmp/(0x30b+1058-0x72b));}else{halftmp
+=tmp/(0x1007+2333-0x1922);}memset(tempra,(0x1c52+574-0x1e90),sizeof(tempra));
+memcpy(tempra,pSrc,tmp);memset(acAsc,(0x853+4519-0x19fa),sizeof(acAsc));
+nDstLength=String2Bytes(tempra,buf,halftmp&(0x12c9+1321-0x17eb)?(int)halftmp*
+(0x42c+4674-0x1667)/(0x11f1+370-0x135f)+(0x747+7587-0x24e8):(int)halftmp*
+(0x2bb+8780-0x2500)/(0xbf0+3284-0x18c0));halftmp=Decode7bit(buf,acAsc,nDstLength
+);memset(pDst->TPA,(0x1c38+1911-0x23af),sizeof(pDst->TPA));if(halftmp>
+(0x14d+2265-0xa06)){memcpy(pDst->TPA,acAsc,(0x2e4+6108-0x1aa0));tmp=
+(0x86b+2724-0x12ef);}else{memcpy(pDst->TPA,acAsc,halftmp);}}else{if(tmp>
+(0xa4a+1104-0xe7a)){SerializeNumbers_sms(pSrc,pDst->TPA,(0x12df+4291-0x2382));}
+else{SerializeNumbers_sms(pSrc,pDst->TPA,tmp);}if((tp_ra[(0x4f2+4937-0x183b)]&
+(0x6fd+1270-0xb62))==(0xf8d+1284-0x1400)){memset(temp_num,(0x6d8+7101-0x2295),
+sizeof(temp_num));if(pDst->TPA[(0x30d+4585-0x14f6)]!=((char)(0x8f5+448-0xa8a))){
+snprintf(temp_num,sizeof(temp_num),"\x25\x73\x25\x73","\x2b",pDst->TPA);if(
+strlen(temp_num)>(0x1d3+3618-0xfd5)){snprintf(pDst->TPA,sizeof(pDst->TPA),
+"\x25\x33\x32\x73",temp_num);}else{snprintf(pDst->TPA,sizeof(pDst->TPA),
+"\x25\x73",temp_num);}}}}pSrc+=tmp;String2Bytes(pSrc,(unsigned char*)&pDst->
+TP_PID,(0xa5+7132-0x1c7f));pSrc+=(0x26d0+18-0x26e0);String2Bytes(pSrc,(unsigned 
+char*)&pDst->TP_DCS,(0x1c66+1577-0x228d));pSrc+=(0x1832+2802-0x2322);
+SerializeNumbers_sms(pSrc,pDst->TP_SCTS,(0x899+1439-0xe2a));pSrc+=
+(0xecd+3950-0x1e2d);String2Bytes(pSrc,&tmp,(0x5d3+3293-0x12ae));pSrc+=
+(0xafd+1020-0xef7);memset(pDst->TP_UD,(0x1e61+1705-0x250a),sizeof(pDst->TP_UD));
 at_print(LOG_DEBUG,
 "\x44\x65\x63\x6f\x64\x65\x50\x75\x73\x68\x50\x64\x75\x20\x66\x69\x72\x73\x74\x5f\x6f\x63\x74\x65\x74\x20\x3d\x20\x30\x78\x25\x30\x32\x78\x2e" "\n"
-,first_octet);if(first_octet&(0x103b+1813-0x1710)){const char*temp=pSrc;unsigned
+,first_octet);if(first_octet&(0x10fa+3354-0x1dd4)){const char*temp=pSrc;unsigned
  char pduType;unsigned char wspLen;unsigned char udhLen;unsigned char DestPort1;
 unsigned char DestPort2;unsigned char RefNum1;unsigned char RefNum2;pushType=
-SMS_NO_PUSH;String2Bytes(temp,&udhl,(0x1594+645-0x1817));temp+=
-(0x499+4725-0x170c);tmplen=String2Bytes(temp,&pDst->TP_IEI,(0x2307+589-0x2552));
+SMS_NO_PUSH;String2Bytes(temp,&udhl,(0x15d+1895-0x8c2));temp+=
+(0x1593+685-0x183e);tmplen=String2Bytes(temp,&pDst->TP_IEI,(0x1cdd+944-0x208b));
 at_print(LOG_DEBUG,
 "\x44\x65\x63\x6f\x64\x65\x50\x75\x73\x68\x50\x64\x75\x20\x54\x50\x5f\x49\x45\x49\x20\x3d\x20\x30\x78\x25\x30\x32\x78\x2e" "\n"
-,pDst->TP_IEI);if(pDst->TP_IEI==(0xaf8+5321-0x1fbc)){temp+=(0xa60+871-0xdc5)*
-tmplen+(0x49c+8404-0x256e);tmplen=String2Bytes(temp,&DestPort1,
-(0x141a+3746-0x22ba));at_print(LOG_DEBUG,
+,pDst->TP_IEI);if(pDst->TP_IEI==(0x517+4396-0x163e)){temp+=(0xa32+5139-0x1e43)*
+tmplen+(0x3a5+7204-0x1fc7);tmplen=String2Bytes(temp,&DestPort1,
+(0xeed+4917-0x2220));at_print(LOG_DEBUG,
 "\x44\x65\x63\x6f\x64\x65\x50\x75\x73\x68\x50\x64\x75\x20\x44\x65\x73\x74\x50\x6f\x72\x74\x31\x20\x3d\x20\x30\x78\x25\x30\x32\x78\x2e" "\n"
-,DestPort1);temp+=(0x10a3+4684-0x22ed)*tmplen;tmplen=String2Bytes(temp,&
-DestPort2,(0xad5+2261-0x13a8));at_print(LOG_DEBUG,
+,DestPort1);temp+=(0x865+7162-0x245d)*tmplen;tmplen=String2Bytes(temp,&DestPort2
+,(0xdd4+2454-0x1768));at_print(LOG_DEBUG,
 "\x44\x65\x63\x6f\x64\x65\x50\x75\x73\x68\x50\x64\x75\x20\x44\x65\x73\x74\x50\x6f\x72\x74\x32\x20\x3d\x20\x30\x78\x25\x30\x32\x78\x2e" "\n"
-,DestPort2);if((DestPort1==(0xa48+679-0xce4))&&((DestPort2==(0x8b6+951-0xbe9))||
-(DestPort2==(0x1157+378-0x124c)))){pushType=SMS_PUSH;}}if(SMS_PUSH!=pushType){
-return pushType;}temp=pSrc+udhl*(0x63c+263-0x741)+(0x18ba+2646-0x230c);tmplen=
-String2Bytes(temp,&pduType,(0x1332+4769-0x25d1));if(pduType==(0x187+7235-0x1dc4)
-){pushType=SMS_PUSH;temp+=(0x1d46+1308-0x225e);tmplen=String2Bytes(temp,&pduType
-,(0xa78+3381-0x17ab));if(pduType==(0x14cb+4685-0x2654)){pushType=
-SMS_NOTIFICATION;}else{temp+=(0xaef+1762-0x11cd);tmplen=String2Bytes(temp,&
-pduType,(0x886+2959-0x1413));if((pduType==(0x13ed+3350-0x2041))||(pduType==
-(0xc78+1412-0x1146))){pushType=SMS_BOOTSTRAP;}}}if((pDst->TP_IEI==
-(0x10c2+4988-0x243a))||(pDst->TP_IEI==(0xa33+2066-0x1240))||(pDst->TP_IEI==
-(0xeba+5953-0x25f3))){temp=pSrc+(0x10d5+1503-0x16b0);tmplen=String2Bytes(temp,&
-IEIDL,(0x166b+2087-0x1e90));if(IEIDL==(udhl-(0x1670+2455-0x2005))){}else{temp+=
-(0xbc2+5266-0x2052)*(0x1bc7+1946-0x235b);tmplen=String2Bytes(temp,&udhLen,
-(0x2d2+1245-0x7ad));if(udhLen==(0x1fe5+917-0x2377)){temp+=(0x1ec4+1173-0x2357)*
-tmplen;tmplen=String2Bytes(temp,&RefNum1,(0x641+5892-0x1d43));pDst->TP_ReferNum=
-RefNum1;temp+=(0x13b5+2267-0x1c8e)*tmplen;tmplen=String2Bytes(temp,&pDst->
-TP_AllPieceNum,(0x59d+7622-0x2361));temp+=(0x1020+2609-0x1a4f)*tmplen;tmplen=
-String2Bytes(temp,&pDst->TP_CurrentPieceNum,(0xe90+4797-0x214b));temp+=
-(0x23c7+662-0x265b)*tmplen;}else if(udhLen==(0x1496+2176-0x1d12)){temp+=
-(0x8b9+7100-0x2473)*tmplen;tmplen=String2Bytes(temp,&RefNum1,(0xef8+4367-0x2005)
-);temp+=(0x112c+1879-0x1881)*tmplen;tmplen=String2Bytes(temp,&RefNum2,
-(0x3bf+19-0x3d0));int ReferNum=RefNum2+RefNum1*(0x2c9+6335-0x1a88);pDst->
-TP_ReferNum=ReferNum;temp+=(0x664+6586-0x201c)*tmplen;tmplen=String2Bytes(temp,&
-pDst->TP_AllPieceNum,(0x30b+3396-0x104d));temp+=(0x3f7+4389-0x151a)*tmplen;
-tmplen=String2Bytes(temp,&pDst->TP_CurrentPieceNum,(0x560+4115-0x1571));temp+=
-(0x517+650-0x79f)*tmplen;}}}at_print(LOG_DEBUG,
+,DestPort2);if((DestPort1==(0x370+3157-0xfba))&&((DestPort2==(0x91a+5454-0x1de4)
+)||(DestPort2==(0x12b1+832-0x156c)))){pushType=SMS_PUSH;}}if(SMS_PUSH!=pushType)
+{return pushType;}temp=pSrc+udhl*(0x16f0+3179-0x2359)+(0xc15+5205-0x2066);tmplen
+=String2Bytes(temp,&pduType,(0x57+9429-0x252a));if(pduType==(0x1e86+1716-0x2534)
+){pushType=SMS_PUSH;temp+=(0x25a+89-0x2af);tmplen=String2Bytes(temp,&pduType,
+(0x96c+6794-0x23f4));if(pduType==(0x201b+98-0x1fb9)){pushType=SMS_NOTIFICATION;}
+else{temp+=(0xccb+110-0xd35);tmplen=String2Bytes(temp,&pduType,
+(0x1537+693-0x17ea));if((pduType==(0xf92+960-0x1290))||(pduType==
+(0x16a1+3621-0x2410))){pushType=SMS_BOOTSTRAP;}}}if((pDst->TP_IEI==
+(0x3e9+6931-0x1ef8))||(pDst->TP_IEI==(0x1a87+1129-0x1eeb))||(pDst->TP_IEI==
+(0x1ecf+1807-0x25d6))){temp=pSrc+(0x1c1+2148-0xa21);tmplen=String2Bytes(temp,&
+IEIDL,(0x578+1083-0x9b1));if(IEIDL==(udhl-(0xf06+5651-0x2517))){}else{temp+=
+(0xec3+2086-0x16e7)*(0x159b+3312-0x2285);tmplen=String2Bytes(temp,&udhLen,
+(0xb03+6631-0x24e8));if(udhLen==(0x982+6064-0x212f)){temp+=(0x1627+1574-0x1c4b)*
+tmplen;tmplen=String2Bytes(temp,&RefNum1,(0xb20+7046-0x26a4));pDst->TP_ReferNum=
+RefNum1;temp+=(0xa67+4680-0x1cad)*tmplen;tmplen=String2Bytes(temp,&pDst->
+TP_AllPieceNum,(0x75a+1606-0xd9e));temp+=(0x6cc+1649-0xd3b)*tmplen;tmplen=
+String2Bytes(temp,&pDst->TP_CurrentPieceNum,(0xb7a+6962-0x26aa));temp+=
+(0x439+992-0x817)*tmplen;}else if(udhLen==(0x722+2294-0x1014)){temp+=
+(0x1ecb+370-0x203b)*tmplen;tmplen=String2Bytes(temp,&RefNum1,
+(0x1bcc+1596-0x2206));temp+=(0x12aa+2079-0x1ac7)*tmplen;tmplen=String2Bytes(temp
+,&RefNum2,(0x9eb+4789-0x1c9e));int ReferNum=RefNum2+RefNum1*(0xaad+4739-0x1c30);
+pDst->TP_ReferNum=ReferNum;temp+=(0x2f4+1437-0x88f)*tmplen;tmplen=String2Bytes(
+temp,&pDst->TP_AllPieceNum,(0x1145+733-0x1420));temp+=(0x55+2952-0xbdb)*tmplen;
+tmplen=String2Bytes(temp,&pDst->TP_CurrentPieceNum,(0xd4+1279-0x5d1));temp+=
+(0xf05+3911-0x1e4a)*tmplen;}}}at_print(LOG_DEBUG,
 "\x44\x65\x63\x6f\x64\x65\x50\x75\x73\x68\x50\x64\x75\x20\x52\x65\x66\x65\x72\x4e\x75\x6d\x20\x3d\x20\x25\x64\x2c\x41\x6c\x6c\x4e\x75\x6d\x20\x3d\x25\x64\x2c\x43\x75\x72\x4e\x75\x6d\x20\x3d\x25\x64\x2e" "\n"
 ,pDst->TP_ReferNum,pDst->TP_AllPieceNum,pDst->TP_CurrentPieceNum);if(
-SMS_NOTIFICATION==pushType){temp=pSrc+udhl*(0x1398+3430-0x20fc)+
-(0xa2a+7287-0x269b);tmplen=String2Bytes(temp,&wspLen,(0x7dd+639-0xa5a));temp=
-temp+wspLen*(0x7cc+1799-0xed1)+(0x1e4d+904-0x21d3);}else{temp=pSrc+udhl*
-(0x1430+3667-0x2281)+(0x448+1126-0x8ac);}nDstLength=((strlen(temp)<sizeof(pDst->
-TP_UD))?strlen(temp):(sizeof(pDst->TP_UD)-(0x1436+1903-0x1ba4)));memcpy(pDst->
+SMS_NOTIFICATION==pushType){temp=pSrc+udhl*(0xf06+834-0x1246)+
+(0x2035+539-0x224a);tmplen=String2Bytes(temp,&wspLen,(0x1e9f+1122-0x22ff));temp=
+temp+wspLen*(0x1cc7+1347-0x2208)+(0xcfb+4646-0x1f1f);}else{temp=pSrc+udhl*
+(0x1c73+2389-0x25c6)+(0xf4+7110-0x1cb8);}nDstLength=((strlen(temp)<sizeof(pDst->
+TP_UD))?strlen(temp):(sizeof(pDst->TP_UD)-(0x1015+4120-0x202c)));memcpy(pDst->
 TP_UD,temp,nDstLength);at_print(LOG_DEBUG,
 "\x44\x65\x63\x6f\x64\x65\x50\x75\x73\x68\x50\x64\x75\x20\x70\x44\x73\x74\x2d\x3e\x54\x50\x5f\x55\x44\x20\x3d\x20\x25\x73\x2e" "\n"
 ,pDst->TP_UD);}at_print(LOG_DEBUG,
 "\x44\x65\x63\x6f\x64\x65\x50\x75\x73\x68\x50\x64\x75\x20\x70\x75\x73\x68\x54\x79\x70\x65\x20\x3d\x20\x25\x64\x2e" "\n"
 ,pushType);return pushType;}static int SerializeNumbers_sms(const char*pSrc,char
-*pDst,int nSrcLength){int nDstLength;char ch;int i=(0x54b+4822-0x1821);if(pSrc==
-NULL||pDst==NULL||nSrcLength<(0x7ef+5405-0x1d0c)){return-(0xf67+2443-0x18f1);}
-nDstLength=nSrcLength;for(i=(0x6c9+5873-0x1dba);i<nSrcLength;i+=(0x8d+126-0x109)
-){ch=*pSrc++;*pDst++=*pSrc++;*pDst++=ch;}if(*(pDst-(0x1a7b+1906-0x21ec))==
-((char)(0x1c86+1322-0x216a))){pDst--;nDstLength--;}*pDst='\0';return nDstLength;
-}UINT16 wms_ts_pack_gw_7_bit_chars(const UINT8*in,UINT16 in_len,UINT16 shift,
-UINT16 out_len_max,UINT8*out){UINT16 i=(0x9a+1393-0x60b);UINT16 pos=
-(0x1ded+445-0x1faa);if(in==NULL||out==NULL){at_print(LOG_DEBUG,
+*pDst,int nSrcLength){int nDstLength;char ch;int i=(0x1735+535-0x194c);if(pSrc==
+NULL||pDst==NULL||nSrcLength<(0x647+2546-0x1039)){return-(0xb71+4202-0x1bda);}
+nDstLength=nSrcLength;for(i=(0xabf+1608-0x1107);i<nSrcLength;i+=
+(0x159d+1182-0x1a39)){ch=*pSrc++;*pDst++=*pSrc++;*pDst++=ch;}if(*(pDst-
+(0x174f+279-0x1865))==((char)(0x1314+4357-0x23d3))){pDst--;nDstLength--;}*pDst=
+'\0';return nDstLength;}UINT16 wms_ts_pack_gw_7_bit_chars(const UINT8*in,UINT16 
+in_len,UINT16 shift,UINT16 out_len_max,UINT8*out){UINT16 i=(0xb01+6918-0x2607);
+UINT16 pos=(0x806+2524-0x11e2);if(in==NULL||out==NULL){at_print(LOG_DEBUG,
 "\x6e\x75\x6c\x6c\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x70\x61\x63\x6b\x5f\x67\x77\x5f\x37\x5f\x62\x69\x74\x5f\x63\x68\x61\x72\x73"
-);return(0x1a03+1678-0x2091);}shift%=(0x394+4083-0x1380);if(shift!=
-(0x218b+865-0x24ec)){out[pos]|=(UINT8)(in[i]<<shift);shift=((0x11f7+3120-0x1e20)
--shift)+(0x779+7753-0x25c1);if(shift==(0x8c3+2833-0x13cd)){shift=
-(0xbd7+2375-0x151e);i++;}pos++;}for(;pos<out_len_max&&i<in_len;pos++,i++){out[
-pos]=in[i]>>shift;if(i+(0x473+1695-0xb11)<in_len){out[pos]|=(UINT8)(in[i+
-(0xba3+6864-0x2672)]<<((0x191a+2171-0x218e)-shift));shift++;if(shift==
-(0x7d6+5887-0x1ece)){shift=(0x176f+3805-0x264c);i++;}}}return pos;}UINT8 
+);return(0x172b+173-0x17d8);}shift%=(0x1619+3793-0x24e3);if(shift!=
+(0x1517+2877-0x2054)){out[pos]|=(UINT8)(in[i]<<shift);shift=(
+(0x1c63+2402-0x25be)-shift)+(0x1699+874-0x1a02);if(shift==(0x186a+359-0x19ca)){
+shift=(0xa53+1055-0xe72);i++;}pos++;}for(;pos<out_len_max&&i<in_len;pos++,i++){
+out[pos]=in[i]>>shift;if(i+(0x11a8+1878-0x18fd)<in_len){out[pos]|=(UINT8)(in[i+
+(0x22c+2130-0xa7d)]<<((0xb16+2135-0x1366)-shift));shift++;if(shift==
+(0x6b7+5536-0x1c50)){shift=(0x12e2+2535-0x1cc9);i++;}}}return pos;}UINT8 
 wms_ts_encode_address(const wms_address_s_type*addr,UINT8*data){UINT8 i,pos=
-(0xc95+5900-0x23a1);if(addr->number_of_digits>WMS_GW_ADDRESS_MAX){at_print(
+(0x2b0+4983-0x1627);if(addr->number_of_digits>WMS_GW_ADDRESS_MAX){at_print(
 LOG_DEBUG,
 "\x41\x64\x64\x72\x20\x6c\x65\x6e\x20\x74\x6f\x6f\x20\x6c\x6f\x6e\x67\x3a\x20\x25\x64"
-,addr->number_of_digits);return(0x257+373-0x3cc);}if(addr->number_type==
+,addr->number_of_digits);return(0xdff+84-0xe53);}if(addr->number_type==
 WMS_NUMBER_ALPHANUMERIC){data[pos]=(UINT8)((addr->number_of_digits*
-(0x732+2196-0xfbf)+(0x59d+2843-0x10b5))/(0x17bf+3319-0x24b2));}else{data[pos]=
-addr->number_of_digits;}pos++;data[pos]=(0x533+3365-0x11d8);data[pos]|=(UINT8)((
-UINT8)addr->number_type<<(0x1e0+1422-0x76a));data[pos]|=(UINT8)addr->number_plan
-;pos++;if(addr->number_type==WMS_NUMBER_ALPHANUMERIC){pos+=(UINT8)
-wms_ts_pack_gw_7_bit_chars(addr->digits,addr->number_of_digits,(0x550+208-0x620)
-,WMS_GW_ADDRESS_MAX,&data[pos]);}else{for(i=(0x167+4534-0x131d);i<addr->
-number_of_digits;i++){data[pos]=(UINT8)(addr->digits[i++]&(0x1526+1327-0x1a46));
-{data[pos]|=(UINT8)(addr->digits[i]<<(0x180+8045-0x20e9));}pos++;}}return pos;}
-UINT8 wms_ts_encode_dcs(const wms_gw_dcs_s_type*dcs,UINT8*data){UINT8 pos=
-(0xad9+1649-0x114a);if(dcs->msg_waiting==WMS_GW_MSG_WAITING_NONE){data[pos]=dcs
-->is_compressed?(0x1ea0+374-0x1ff6):(0xad5+1985-0x1296);data[pos]|=(dcs->
-msg_class!=WMS_MESSAGE_CLASS_NONE)?(0x7f+7215-0x1c9e):(0xf46+877-0x12b3);data[
-pos]|=dcs->alphabet<<(0x1eaf+1928-0x2635);data[pos]|=dcs->msg_class&
-(0x303+7551-0x207f);}else if(dcs->msg_waiting==WMS_GW_MSG_WAITING_NONE_1111){
-data[pos]=(0x17c3+4063-0x26b2);if(dcs->alphabet==WMS_GW_ALPHABET_8_BIT)data[pos]
-|=(0x1633+1670-0x1cb5);data[pos]|=dcs->msg_class&(0x412+3398-0x1155);}else{if(
-dcs->msg_waiting==WMS_GW_MSG_WAITING_DISCARD){data[pos]=(0x1879+3602-0x25cb);}
-else if(dcs->msg_waiting==WMS_GW_MSG_WAITING_STORE&&dcs->alphabet==
-WMS_GW_ALPHABET_7_BIT_DEFAULT){data[pos]=(0xa76+6620-0x2382);}else{data[pos]=
-(0x1b1+6617-0x1aaa);}data[pos]|=(dcs->msg_waiting_active==TRUE)?
-(0x843+5510-0x1dc1):(0x295+2381-0xbe2);data[pos]|=dcs->msg_waiting_kind&
-(0x1417+3719-0x229b);}pos++;return pos;}UINT8 wms_ts_bcd_to_int(const UINT8 bcd,
-UINT8*result){unsigned char low_bit=(bcd&(0x272+7801-0x20dc));unsigned char 
-high_bit=((bcd&(0x148+8516-0x219c))>>(0xbdc+199-0xc9f));if(low_bit>
-(0x1c0+9138-0x2569)||high_bit>(0x79b+4849-0x1a83)){at_print(LOG_DEBUG,
+(0x14e7+2787-0x1fc3)+(0xad2+5877-0x21c4))/(0x19fb+1415-0x1f7e));}else{data[pos]=
+addr->number_of_digits;}pos++;data[pos]=(0x248d+19-0x2420);data[pos]|=(UINT8)((
+UINT8)addr->number_type<<(0x7c8+5730-0x1e26));data[pos]|=(UINT8)addr->
+number_plan;pos++;if(addr->number_type==WMS_NUMBER_ALPHANUMERIC){pos+=(UINT8)
+wms_ts_pack_gw_7_bit_chars(addr->digits,addr->number_of_digits,
+(0x763+3552-0x1543),WMS_GW_ADDRESS_MAX,&data[pos]);}else{for(i=
+(0x2df+5851-0x19ba);i<addr->number_of_digits;i++){data[pos]=(UINT8)(addr->digits
+[i++]&(0x1326+1557-0x192c));{data[pos]|=(UINT8)(addr->digits[i]<<
+(0x520+6500-0x1e80));}pos++;}}return pos;}UINT8 wms_ts_encode_dcs(const 
+wms_gw_dcs_s_type*dcs,UINT8*data){UINT8 pos=(0x1ad1+2251-0x239c);if(dcs->
+msg_waiting==WMS_GW_MSG_WAITING_NONE){data[pos]=dcs->is_compressed?
+(0x1166+1620-0x179a):(0x1065+5478-0x25cb);data[pos]|=(dcs->msg_class!=
+WMS_MESSAGE_CLASS_NONE)?(0x150+8936-0x2428):(0x876+914-0xc08);data[pos]|=dcs->
+alphabet<<(0x565+2354-0xe95);data[pos]|=dcs->msg_class&(0xc59+1938-0x13e8);}else
+ if(dcs->msg_waiting==WMS_GW_MSG_WAITING_NONE_1111){data[pos]=
+(0x130d+3568-0x200d);if(dcs->alphabet==WMS_GW_ALPHABET_8_BIT)data[pos]|=
+(0x1210+5140-0x2620);data[pos]|=dcs->msg_class&(0x89d+3387-0x15d5);}else{if(dcs
+->msg_waiting==WMS_GW_MSG_WAITING_DISCARD){data[pos]=(0xb9c+4207-0x1b4b);}else 
+if(dcs->msg_waiting==WMS_GW_MSG_WAITING_STORE&&dcs->alphabet==
+WMS_GW_ALPHABET_7_BIT_DEFAULT){data[pos]=(0x18f+8919-0x2396);}else{data[pos]=
+(0x1eb6+1835-0x2501);}data[pos]|=(dcs->msg_waiting_active==TRUE)?
+(0x1dc+5445-0x1719):(0x2235+748-0x2521);data[pos]|=dcs->msg_waiting_kind&
+(0xa5f+2060-0x1268);}pos++;return pos;}UINT8 wms_ts_bcd_to_int(const UINT8 bcd,
+UINT8*result){unsigned char low_bit=(bcd&(0x646+2445-0xfc4));unsigned char 
+high_bit=((bcd&(0xd98+4550-0x1e6e))>>(0x1130+795-0x1447));if(low_bit>
+(0x295+2977-0xe2d)||high_bit>(0x6b3+5610-0x1c94)){at_print(LOG_DEBUG,
 "\x49\x6e\x76\x61\x6c\x69\x64\x20\x42\x43\x44\x20\x64\x69\x67\x69\x74\x21");*
-result=(0x638+6712-0x2070);return FALSE;}else{*result=((bcd&(0x7b2+4259-0x1846))
-+(((bcd&(0x2093+725-0x2278))>>(0x181f+1861-0x1f60))*(0x4d0+6916-0x1fca)));return
- TRUE;}}UINT8 wms_ts_encode_timestamp(const wms_timestamp_s_type*timestamp,UINT8
-*data){sint7 i;UINT8 pos=(0x52b+6451-0x1e5e),j;if(!wms_ts_bcd_to_int(timestamp->
-year,&j)){return(0x1a10+3260-0x26cc);}data[pos]=((timestamp->year&
-(0xbe9+2191-0x1469))<<(0xa02+5279-0x1e9d))+((timestamp->year&(0x119+1224-0x4f1))
->>(0x89a+4756-0x1b2a));pos++;if(wms_ts_bcd_to_int(timestamp->month,&j)){if(j>
-(0xda3+5690-0x23d1)||j<(0x4c1+8216-0x24d8)){at_print(LOG_DEBUG,
+result=(0x342+1964-0xaee);return FALSE;}else{*result=((bcd&(0x318+1051-0x724))+(
+((bcd&(0xc1d+1527-0x1124))>>(0xdff+4694-0x2051))*(0x5cd+7357-0x2280)));return 
+TRUE;}}UINT8 wms_ts_encode_timestamp(const wms_timestamp_s_type*timestamp,UINT8*
+data){sint7 i;UINT8 pos=(0x1220+2758-0x1ce6),j;if(!wms_ts_bcd_to_int(timestamp->
+year,&j)){return(0x2d5+4059-0x12b0);}data[pos]=((timestamp->year&
+(0xd42+1433-0x12cc))<<(0x2a6+870-0x608))+((timestamp->year&(0x1675+1259-0x1a70))
+>>(0x1f49+1278-0x2443));pos++;if(wms_ts_bcd_to_int(timestamp->month,&j)){if(j>
+(0x2276+647-0x24f1)||j<(0xb4+6686-0x1ad1)){at_print(LOG_DEBUG,
 "\x4d\x6f\x6e\x74\x68\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x3a\x20\x25\x64"
-,j);return(0x1c3+1626-0x81d);}}else{return(0x33+6660-0x1a37);}data[pos]=((
-timestamp->month&(0xefd+3626-0x1d18))<<(0xa3c+7021-0x25a5))+((timestamp->month&
-(0xfb+1629-0x668))>>(0x351+3434-0x10b7));pos++;if(wms_ts_bcd_to_int(timestamp->
-day,&j)){if(j>(0x1f5c+1588-0x2571)||j<(0x19a4+3208-0x262b)){at_print(LOG_DEBUG,
+,j);return(0x353+1926-0xad9);}}else{return(0x356+7241-0x1f9f);}data[pos]=((
+timestamp->month&(0x784+760-0xa6d))<<(0xb0+3970-0x102e))+((timestamp->month&
+(0xf70+2875-0x19bb))>>(0x19f7+1151-0x1e72));pos++;if(wms_ts_bcd_to_int(timestamp
+->day,&j)){if(j>(0x5b9+7000-0x20f2)||j<(0xb73+6654-0x2570)){at_print(LOG_DEBUG,
 "\x44\x61\x79\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x3a\x20\x25\x64",j);
-return(0x1353+2408-0x1cbb);}}else{return(0x1ebd+1490-0x248f);}data[pos]=((
-timestamp->day&(0x3a6+8364-0x2443))<<(0x607+8305-0x2674))+((timestamp->day&
-(0x1922+2174-0x20b0))>>(0x1233+3314-0x1f21));pos++;if(wms_ts_bcd_to_int(
-timestamp->hour,&j)){if(j>(0x11fb+1473-0x17a5)){at_print(LOG_DEBUG,
+return(0x406+1028-0x80a);}}else{return(0xb0f+1671-0x1196);}data[pos]=((timestamp
+->day&(0x146+8027-0x2092))<<(0x173+9513-0x2698))+((timestamp->day&
+(0x1e47+1790-0x2455))>>(0x10fa+959-0x14b5));pos++;if(wms_ts_bcd_to_int(timestamp
+->hour,&j)){if(j>(0x702+3268-0x13af)){at_print(LOG_DEBUG,
 "\x48\x6f\x75\x72\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x3a\x20\x25\x64",j
-);return(0xa81+168-0xb29);}}else{return(0x40b+3473-0x119c);}data[pos]=((
-timestamp->hour&(0x287+3112-0xea0))<<(0x1bf2+1110-0x2044))+((timestamp->hour&
-(0x54b+6881-0x1f3c))>>(0x638+3013-0x11f9));pos++;if(wms_ts_bcd_to_int(timestamp
-->minute,&j)){if(j>(0xd96+4219-0x1dd6)){at_print(LOG_DEBUG,
+);return(0x119c+2101-0x19d1);}}else{return(0x1b77+424-0x1d1f);}data[pos]=((
+timestamp->hour&(0x123c+5213-0x268a))<<(0x8ed+6573-0x2296))+((timestamp->hour&
+(0xbed+6585-0x24b6))>>(0x7a8+7509-0x24f9));pos++;if(wms_ts_bcd_to_int(timestamp
+->minute,&j)){if(j>(0x9dd+5445-0x1ee7)){at_print(LOG_DEBUG,
 "\x4d\x69\x6e\x75\x74\x65\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x3a\x20\x25\x64"
-,j);return(0x17d4+885-0x1b49);}}else{return(0xa90+5647-0x209f);}data[pos]=((
-timestamp->minute&(0x9eb+2784-0x14bc))<<(0x1d7b+866-0x20d9))+((timestamp->minute
-&(0x2e6+9464-0x26ee))>>(0x1ce0+2164-0x2550));pos++;if(wms_ts_bcd_to_int(
-timestamp->second,&j)){if(j>(0x1bc+7550-0x1eff)){at_print(LOG_DEBUG,
+,j);return(0x1767+2698-0x21f1);}}else{return(0x19bc+1815-0x20d3);}data[pos]=((
+timestamp->minute&(0xa70+3334-0x1767))<<(0xab7+1815-0x11ca))+((timestamp->minute
+&(0x7d1+554-0x90b))>>(0x729+7932-0x2621));pos++;if(wms_ts_bcd_to_int(timestamp->
+second,&j)){if(j>(0x1e89+606-0x20ac)){at_print(LOG_DEBUG,
 "\x53\x65\x63\x6f\x6e\x64\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x3a\x20\x25\x64"
-,j);return(0x2198+275-0x22ab);}}else{return(0x4d6+5964-0x1c22);}data[pos]=((
-timestamp->second&(0x7e1+6037-0x1f67))<<(0x949+3518-0x1703))+((timestamp->second
-&(0x43f+5404-0x186b))>>(0x111c+4820-0x23ec));pos++;i=(sint7)timestamp->timezone;
-if(i>(0x8d9+6157-0x20b6)||i<-(0xb49+4486-0x1c9f)){at_print(LOG_DEBUG,
+,j);return(0x7a8+242-0x89a);}}else{return(0x8d4+427-0xa7f);}data[pos]=((
+timestamp->second&(0x1aa0+338-0x1be3))<<(0x74b+6713-0x2180))+((timestamp->second
+&(0xb0a+6103-0x21f1))>>(0xaa5+5931-0x21cc));pos++;i=(sint7)timestamp->timezone;
+if(i>(0x75c+2834-0x123e)||i<-(0x991+210-0xa33)){at_print(LOG_DEBUG,
 "\x54\x69\x6d\x65\x7a\x6f\x6e\x65\x20\x69\x73\x20\x6f\x75\x74\x20\x6f\x66\x20\x62\x6f\x75\x6e\x64\x3a\x20\x25\x64"
-,i);return(0x10f+8881-0x23c0);}if(i>=(0x759+4508-0x18f5)){data[pos]=(UINT8)(((
-UINT8)(i%(0x227+4814-0x14eb)))<<(0x700+7461-0x2421));data[pos]|=(i/
-(0xd9+618-0x339));}else{i*=(-(0xf2c+2062-0x1739));data[pos]=(UINT8)(((UINT8)(i%
-(0x212+6888-0x1cf0)))<<(0x1fc6+472-0x219a));data[pos]|=(i/(0xac3+2076-0x12d5));
-data[pos]|=(0xac+7342-0x1d52);}pos++;return pos;}UINT8 wms_ts_get_udh_length(
-const wms_udh_s_type*udh){UINT8 length=(0x1e2c+473-0x2005);if(udh!=NULL){switch(
-udh->header_id){case WMS_UDH_CONCAT_8:length=(0x605+129-0x685)+
-(0x13f4+1218-0x18b5)+WMS_UDH_OCTETS_CONCAT8;break;case WMS_UDH_CONCAT_16:length=
-(0x1aaf+2194-0x2340)+(0x1b3c+2672-0x25ab)+WMS_UDH_OCTETS_CONCAT16;break;case 
-WMS_UDH_SPECIAL_SM:length=(0x130b+5042-0x26bc)+(0xe0a+165-0xeae)+
-WMS_UDH_OCTETS_SPECIAL_SM;break;case WMS_UDH_PORT_8:length=(0xad7+1960-0x127e)+
-(0x16f3+3246-0x23a0)+WMS_UDH_OCTETS_PORT8;break;case WMS_UDH_PORT_16:length=
-(0x54d+8242-0x257e)+(0x13ef+1810-0x1b00)+WMS_UDH_OCTETS_PORT16;break;case 
-WMS_UDH_SMSC_CONTROL:length=(0x1518+1334-0x1a4d)+(0x811+7924-0x2704)+udh->u.
-other.header_length;break;case WMS_UDH_SOURCE:length=(0x1cb4+228-0x1d97)+
-(0x15bb+2782-0x2098)+udh->u.other.header_length;break;case WMS_UDH_WCMP:length=
-(0xb50+6762-0x25b9)+(0xb66+2609-0x1596)+udh->u.other.header_length;break;case 
+,i);return(0x2f3+2132-0xb47);}if(i>=(0x28a+2320-0xb9a)){data[pos]=(UINT8)(((
+UINT8)(i%(0x743+1925-0xebe)))<<(0xcf1+4396-0x1e19));data[pos]|=(i/
+(0x199c+248-0x1a8a));}else{i*=(-(0x892+2263-0x1168));data[pos]=(UINT8)(((UINT8)(
+i%(0x129+1940-0x8b3)))<<(0xd36+2662-0x1798));data[pos]|=(i/(0x111f+4644-0x2339))
+;data[pos]|=(0x15a8+3760-0x2450);}pos++;return pos;}UINT8 wms_ts_get_udh_length(
+const wms_udh_s_type*udh){UINT8 length=(0x25+4111-0x1034);if(udh!=NULL){switch(
+udh->header_id){case WMS_UDH_CONCAT_8:length=(0x324+8824-0x259b)+
+(0x6d0+6890-0x21b9)+WMS_UDH_OCTETS_CONCAT8;break;case WMS_UDH_CONCAT_16:length=
+(0x65d+5151-0x1a7b)+(0x11bd+416-0x135c)+WMS_UDH_OCTETS_CONCAT16;break;case 
+WMS_UDH_SPECIAL_SM:length=(0xb31+414-0xcce)+(0x4f8+6599-0x1ebe)+
+WMS_UDH_OCTETS_SPECIAL_SM;break;case WMS_UDH_PORT_8:length=(0x1fbf+681-0x2267)+
+(0x6e1+2025-0xec9)+WMS_UDH_OCTETS_PORT8;break;case WMS_UDH_PORT_16:length=
+(0x1d15+1888-0x2474)+(0x10b3+650-0x133c)+WMS_UDH_OCTETS_PORT16;break;case 
+WMS_UDH_SMSC_CONTROL:length=(0x90f+523-0xb19)+(0xdbf+841-0x1107)+udh->u.other.
+header_length;break;case WMS_UDH_SOURCE:length=(0x76b+2743-0x1221)+
+(0x12e1+1521-0x18d1)+udh->u.other.header_length;break;case WMS_UDH_WCMP:length=
+(0x255+1992-0xa1c)+(0x148+7614-0x1f05)+udh->u.other.header_length;break;case 
 WMS_UDH_TEXT_FORMATING:if(!udh->u.text_formating.is_color_present){length=
-(0xa56+564-0xc89)+(0x1db+2736-0xc8a)+WMS_UDH_OCTETS_TEXT_FORMATTING;}else{length
-=(0x8fd+4866-0x1bfe)+(0x32+525-0x23e)+WMS_UDH_OCTETS_TEXT_FORMATTING+
-(0xa68+5118-0x1e65);}break;case WMS_UDH_PRE_DEF_SOUND:length=(0x8ea+3678-0x1747)
-+(0x1a13+3223-0x26a9)+WMS_UDH_OCTETS_PRE_DEF;break;case WMS_UDH_USER_DEF_SOUND:
-length=(0x2030+622-0x229d)+(0x8e7+6293-0x217b)+udh->u.user_def_sound.data_length
-+(0x1ef4+352-0x2053);break;case WMS_UDH_PRE_DEF_ANIM:length=(0x10ef+2584-0x1b06)
-+(0x305+4030-0x12c2)+WMS_UDH_OCTETS_PRE_DEF;break;case WMS_UDH_LARGE_ANIM:length
-=(0x15e3+2428-0x1f5e)+(0x2b5+7593-0x205d)+WMS_UDH_LARGE_BITMAP_SIZE*
-WMS_UDH_ANIM_NUM_BITMAPS+(0x121a+5256-0x26a1);break;case WMS_UDH_SMALL_ANIM:
-length=(0x1f1+5515-0x177b)+(0x285+7937-0x2185)+WMS_UDH_SMALL_BITMAP_SIZE*
-WMS_UDH_ANIM_NUM_BITMAPS+(0xc9+9577-0x2631);break;case WMS_UDH_LARGE_PICTURE:
-length=(0xaf6+4096-0x1af5)+(0x69+5397-0x157d)+WMS_UDH_LARGE_PIC_SIZE+
-(0x1169+4097-0x2169);break;case WMS_UDH_SMALL_PICTURE:length=
-(0x1733+2736-0x21e2)+(0x136f+1848-0x1aa6)+WMS_UDH_SMALL_PIC_SIZE+
-(0xab+5843-0x177d);break;case WMS_UDH_VAR_PICTURE:length=(0xef+7119-0x1cbd)+
-(0x1b29+2119-0x236f)+(UINT8)(udh->u.var_picture.height*udh->u.var_picture.width/
-(0x23a6+723-0x2671))+(0x24f+1858-0x98e);break;case WMS_UDH_RFC822:length=
-(0x98b+6410-0x2294)+(0x682+1915-0xdfc)+WMS_UDH_OCTETS_RFC822;break;case 
-WMS_UDH_NAT_LANG_SS:length=(0x387+2075-0xba1)+(0x1087+3289-0x1d5f)+
-WMS_UDH_OCTETS_NAT_LANG_SS;break;case WMS_UDH_NAT_LANG_LS:length=
-(0xb49+4197-0x1bad)+(0x1369+534-0x157e)+WMS_UDH_OCTETS_NAT_LANG_LS;break;case 
-WMS_UDH_USER_PROMPT:length=(0x336+4235-0x13c0)+(0x12bd+2187-0x1b47)+
-WMS_UDH_OCTETS_USER_PROMPT;break;case WMS_UDH_EXTENDED_OBJECT:length=
-(0x71d+4995-0x1a9f)+(0x77+7538-0x1de8)+udh->u.eo.content.length;if(udh->u.eo.
-first_segment==TRUE){length+=WMS_UDH_OCTETS_EO_HEADER;}break;default:length=
-(0x6b8+1343-0xbf6)+(0x814+929-0xbb4)+udh->u.other.header_length;break;}}return 
-length;}uint32 wms_ts_compute_user_data_header_length(const UINT8 num_headers,
-const wms_udh_s_type*headers){uint32 length=(0x1a44+1740-0x2110);uint32 i;if(
-headers==NULL){at_print(LOG_DEBUG,
+(0x2a1+7184-0x1eb0)+(0x178+9122-0x2519)+WMS_UDH_OCTETS_TEXT_FORMATTING;}else{
+length=(0xe9d+4313-0x1f75)+(0xf8f+2468-0x1932)+WMS_UDH_OCTETS_TEXT_FORMATTING+
+(0x5d8+1519-0xbc6);}break;case WMS_UDH_PRE_DEF_SOUND:length=(0xac7+1407-0x1045)+
+(0xb81+3004-0x173c)+WMS_UDH_OCTETS_PRE_DEF;break;case WMS_UDH_USER_DEF_SOUND:
+length=(0xf3c+2085-0x1760)+(0x75c+7075-0x22fe)+udh->u.user_def_sound.data_length
++(0xf73+3204-0x1bf6);break;case WMS_UDH_PRE_DEF_ANIM:length=(0x12a2+2572-0x1cad)
++(0x9f0+7189-0x2604)+WMS_UDH_OCTETS_PRE_DEF;break;case WMS_UDH_LARGE_ANIM:length
+=(0xfd7+3334-0x1cdc)+(0x150b+4162-0x254c)+WMS_UDH_LARGE_BITMAP_SIZE*
+WMS_UDH_ANIM_NUM_BITMAPS+(0x198+1064-0x5bf);break;case WMS_UDH_SMALL_ANIM:length
+=(0xfb0+3364-0x1cd3)+(0xa19+7223-0x264f)+WMS_UDH_SMALL_BITMAP_SIZE*
+WMS_UDH_ANIM_NUM_BITMAPS+(0x10ef+5650-0x2700);break;case WMS_UDH_LARGE_PICTURE:
+length=(0x3f+8781-0x228b)+(0x175c+588-0x19a7)+WMS_UDH_LARGE_PIC_SIZE+
+(0x572+6224-0x1dc1);break;case WMS_UDH_SMALL_PICTURE:length=(0x285+2471-0xc2b)+
+(0x853+5753-0x1ecb)+WMS_UDH_SMALL_PIC_SIZE+(0x382+3067-0xf7c);break;case 
+WMS_UDH_VAR_PICTURE:length=(0xfa8+4777-0x2250)+(0xdc3+4142-0x1df0)+(UINT8)(udh->
+u.var_picture.height*udh->u.var_picture.width/(0x1a45+3273-0x2706))+
+(0x6e1+5775-0x1d6d);break;case WMS_UDH_RFC822:length=(0x33b+6799-0x1dc9)+
+(0x150b+2762-0x1fd4)+WMS_UDH_OCTETS_RFC822;break;case WMS_UDH_NAT_LANG_SS:length
+=(0x16e6+3665-0x2536)+(0x2e6+6180-0x1b09)+WMS_UDH_OCTETS_NAT_LANG_SS;break;case 
+WMS_UDH_NAT_LANG_LS:length=(0xce5+5881-0x23dd)+(0x48d+5591-0x1a63)+
+WMS_UDH_OCTETS_NAT_LANG_LS;break;case WMS_UDH_USER_PROMPT:length=
+(0xbe5+2617-0x161d)+(0x15d6+1994-0x1d9f)+WMS_UDH_OCTETS_USER_PROMPT;break;case 
+WMS_UDH_EXTENDED_OBJECT:length=(0x2dc+9055-0x263a)+(0x1f34+106-0x1f9d)+udh->u.eo
+.content.length;if(udh->u.eo.first_segment==TRUE){length+=
+WMS_UDH_OCTETS_EO_HEADER;}break;default:length=(0xecb+2479-0x1879)+
+(0xbdc+1480-0x11a3)+udh->u.other.header_length;break;}}return length;}uint32 
+wms_ts_compute_user_data_header_length(const UINT8 num_headers,const 
+wms_udh_s_type*headers){uint32 length=(0x69c+4436-0x17f0);uint32 i;if(headers==
+NULL){at_print(LOG_DEBUG,
 "\x4e\x75\x6c\x6c\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x63\x6f\x6d\x70\x75\x74\x65\x5f\x75\x73\x65\x72\x5f\x64\x61\x74\x61\x5f\x68\x65\x61\x64\x65\x72\x5f\x6c\x65\x6e\x67\x74\x68\x21"
-);return(0x180a+2132-0x205e);}if(num_headers>(0x70a+6806-0x21a0)){length+=
-(0x125+2987-0xccf);for(i=(0xbd7+1546-0x11e1);i<num_headers&&i<WMS_MAX_UD_HEADERS
-;i++){length+=(uint32)wms_ts_get_udh_length(&headers[i]);}}return length;}uint32
- wms_ts_compute_gw_user_data_length(const wms_gw_dcs_s_type*dcs,const 
-wms_gw_user_data_s_type*user_data){uint32 length=(0x1a3+1994-0x96d);if(dcs==NULL
-||user_data==NULL){at_print(LOG_DEBUG,
+);return(0x545+7659-0x2330);}if(num_headers>(0x1269+3297-0x1f4a)){length+=
+(0x1431+3669-0x2285);for(i=(0x1861+2729-0x230a);i<num_headers&&i<
+WMS_MAX_UD_HEADERS;i++){length+=(uint32)wms_ts_get_udh_length(&headers[i]);}}
+return length;}uint32 wms_ts_compute_gw_user_data_length(const wms_gw_dcs_s_type
+*dcs,const wms_gw_user_data_s_type*user_data){uint32 length=(0x16d+757-0x462);if
+(dcs==NULL||user_data==NULL){at_print(LOG_DEBUG,
 "\x4e\x75\x6c\x6c\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x63\x6f\x6d\x70\x75\x74\x65\x5f\x67\x77\x5f\x75\x73\x65\x72\x5f\x64\x61\x74\x61\x5f\x6c\x65\x6e\x67\x74\x68\x21"
-);return(0x1204+4627-0x2417);}length+=wms_ts_compute_user_data_header_length(
+);return(0x460+532-0x674);}length+=wms_ts_compute_user_data_header_length(
 user_data->num_headers,user_data->headers);if(dcs->alphabet==
-WMS_GW_ALPHABET_7_BIT_DEFAULT){length+=((user_data->sm_len*(0x52b+8356-0x25c8))+
-(0x1bc5+383-0x1d3d))/(0x102a+2199-0x18b9);}else{length+=user_data->sm_len;}
-return length;}static int wms_ts_encode_udh_concat_8(UINT8*udh){int pos=
-(0x69a+3006-0x1258);if(const_header->u.concat_8.total_sm==(0x2257+728-0x252f)||
-const_header->u.concat_8.seq_num==(0x2632+84-0x2686)||const_header->u.concat_8.
+WMS_GW_ALPHABET_7_BIT_DEFAULT){length+=((user_data->sm_len*(0x5ef+427-0x793))+
+(0x1db+6654-0x1bd2))/(0xe17+2729-0x18b8);}else{length+=user_data->sm_len;}return
+ length;}static int wms_ts_encode_udh_concat_8(UINT8*udh){int pos=
+(0x1b61+1379-0x20c4);if(const_header->u.concat_8.total_sm==(0x841+5333-0x1d16)||
+const_header->u.concat_8.seq_num==(0xe72+3719-0x1cf9)||const_header->u.concat_8.
 seq_num>const_header->u.concat_8.total_sm){at_print(LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x69\x64\x20\x25\x64\x20\x50\x72\x65\x73\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x6e\x6f\x20\x44\x61\x74\x61"
-,const_header->header_id);return(0x1c4b+377-0x1dc4);}udh[pos++]=(UINT8)
+,const_header->header_id);return(0x12d0+216-0x13a8);}udh[pos++]=(UINT8)
 WMS_UDH_CONCAT_8;udh[pos++]=(UINT8)WMS_UDH_OCTETS_CONCAT8;udh[pos++]=
 const_header->u.concat_8.msg_ref;udh[pos++]=const_header->u.concat_8.total_sm;
 udh[pos++]=const_header->u.concat_8.seq_num;return pos;}static int 
-wms_ts_encode_udh_concat16(UINT8*udh){int pos=(0xe99+3851-0x1da4);if(
-const_header->u.concat_16.total_sm==(0x3c0+3359-0x10df)||const_header->u.
-concat_16.seq_num==(0x143f+3981-0x23cc)||const_header->u.concat_16.seq_num>
+wms_ts_encode_udh_concat16(UINT8*udh){int pos=(0x76a+3429-0x14cf);if(
+const_header->u.concat_16.total_sm==(0x75+9634-0x2617)||const_header->u.
+concat_16.seq_num==(0x89f+4827-0x1b7a)||const_header->u.concat_16.seq_num>
 const_header->u.concat_16.total_sm){at_print(LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x69\x64\x20\x25\x64\x20\x50\x72\x65\x73\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x6e\x6f\x20\x44\x61\x74\x61"
-,const_header->header_id);return(0x8a0+2683-0x131b);}udh[pos++]=(UINT8)
+,const_header->header_id);return(0x14ef+1330-0x1a21);}udh[pos++]=(UINT8)
 WMS_UDH_CONCAT_16;udh[pos++]=(UINT8)WMS_UDH_OCTETS_CONCAT16;udh[pos++]=(UINT8)((
-const_header->u.concat_16.msg_ref&65280)>>(0x419+5521-0x19a2));udh[pos++]=(UINT8
-)(const_header->u.concat_16.msg_ref&(0xb4c+2512-0x141d));udh[pos++]=const_header
+const_header->u.concat_16.msg_ref&65280)>>(0x4c9+3196-0x113d));udh[pos++]=(UINT8
+)(const_header->u.concat_16.msg_ref&(0x769+5247-0x1ae9));udh[pos++]=const_header
 ->u.concat_16.total_sm;udh[pos++]=const_header->u.concat_16.seq_num;return pos;}
-int wms_ts_encode_udh_nat_lang_ss(UINT8*udh){int pos=(0x485+7320-0x211d);udh[pos
-++]=(UINT8)WMS_UDH_NAT_LANG_SS;udh[pos++]=(UINT8)WMS_UDH_OCTETS_NAT_LANG_SS;udh[
-pos++]=(UINT8)const_header->u.nat_lang_ss.nat_lang_id;return pos;}int 
-wms_ts_encode_udh_nat_lang_ls(UINT8*udh){int pos=(0x701+29-0x71e);udh[pos++]=(
+int wms_ts_encode_udh_nat_lang_ss(UINT8*udh){int pos=(0x1d9b+1183-0x223a);udh[
+pos++]=(UINT8)WMS_UDH_NAT_LANG_SS;udh[pos++]=(UINT8)WMS_UDH_OCTETS_NAT_LANG_SS;
+udh[pos++]=(UINT8)const_header->u.nat_lang_ss.nat_lang_id;return pos;}int 
+wms_ts_encode_udh_nat_lang_ls(UINT8*udh){int pos=(0x9d8+1249-0xeb9);udh[pos++]=(
 UINT8)WMS_UDH_NAT_LANG_LS;udh[pos++]=(UINT8)WMS_UDH_OCTETS_NAT_LANG_LS;udh[pos++
 ]=(UINT8)const_header->u.nat_lang_ls.nat_lang_id;return pos;}int 
 wms_ts_encode_udh_other(UINT8*udh,wms_udh_id_e_type header_id){int i=
-(0x2448+642-0x26ca);int pos=(0x237+1424-0x7c7);udh[pos++]=(UINT8)const_header->u
-.other.header_id;udh[pos++]=const_header->u.other.header_length;for(i=
-(0x622+4915-0x1955);i<const_header->u.other.header_length;i++){udh[pos++]=
+(0x1051+1238-0x1527);int pos=(0x1198+1005-0x1585);udh[pos++]=(UINT8)const_header
+->u.other.header_id;udh[pos++]=const_header->u.other.header_length;for(i=
+(0x1606+718-0x18d4);i<const_header->u.other.header_length;i++){udh[pos++]=
 const_header->u.other.data[i];}return pos;}UINT8 wms_ts_encode_user_data_header(
 UINT8 num_headers,const wms_udh_s_type*headers,UINT8*data){int i,pos=
-(0x11b8+5443-0x26fb);if(num_headers==(0x5cf+5724-0x1c2b))return
-(0x1c3c+851-0x1f8f);++pos;for(i=(0x204f+711-0x2316);i<WMS_MAX_UD_HEADERS&&i<
-num_headers;i++){const_header=&headers[i];switch(const_header->header_id){case 
-WMS_UDH_CONCAT_8:pos+=wms_ts_encode_udh_concat_8(data+pos);break;case 
-WMS_UDH_CONCAT_16:pos+=wms_ts_encode_udh_concat16(data+pos);break;
-#if (0x15d6+91-0x1631)

+(0xaf4+6228-0x2348);if(num_headers==(0xe77+297-0xfa0))return(0x1762+1730-0x1e24)
+;++pos;for(i=(0x1e13+724-0x20e7);i<WMS_MAX_UD_HEADERS&&i<num_headers;i++){
+const_header=&headers[i];switch(const_header->header_id){case WMS_UDH_CONCAT_8:
+pos+=wms_ts_encode_udh_concat_8(data+pos);break;case WMS_UDH_CONCAT_16:pos+=
+wms_ts_encode_udh_concat16(data+pos);break;
+#if (0x537+985-0x910)

 case WMS_UDH_SPECIAL_SM:pos+=wms_ts_encode_udh_special_sm(data+pos);break;case 
 WMS_UDH_PORT_8:pos+=wms_ts_encode_udh_port_8(data+pos);break;case 
 WMS_UDH_PORT_16:pos+=wms_ts_encode_udh_port16(data+pos);break;case 
@@ -1318,49 +1314,49 @@
 case WMS_UDH_NAT_LANG_SS:pos+=wms_ts_encode_udh_nat_lang_ss(data+pos);break;case
  WMS_UDH_NAT_LANG_LS:pos+=wms_ts_encode_udh_nat_lang_ls(data+pos);break;default:
 pos+=wms_ts_encode_udh_other(data+pos,const_header->header_id);}}data[
-(0x996+2429-0x1313)]=(UINT8)(pos-(0xe58+2345-0x1780));return((UINT8)(pos-
-(0x926+1391-0xe94)));}UINT8 wms_ts_encode_gw_user_data(const wms_gw_dcs_s_type*
+(0x17a+2046-0x978)]=(UINT8)(pos-(0x217a+1005-0x2566));return((UINT8)(pos-
+(0xb5+1419-0x63f)));}UINT8 wms_ts_encode_gw_user_data(const wms_gw_dcs_s_type*
 dcs,const wms_gw_user_data_s_type*user_data,UINT8*data){UINT16 i,pos=
-(0xbd2+5877-0x22c7);UINT8 fill_bits=(0x268+1967-0xa17);UINT16 
-total_bits_occupied;UINT8 user_data_header_length;UINT16 user_data_length;data[
-pos]=(UINT8)user_data->sm_len;pos++;if(dcs->alphabet==
-WMS_GW_ALPHABET_7_BIT_DEFAULT){if(user_data->num_headers>(0x1e8+1928-0x970)){if(
-wms_ts_compute_user_data_header_length(user_data->num_headers,user_data->headers
-)<=WMS_SMS_UDL_MAX_8_BIT){user_data_header_length=wms_ts_encode_user_data_header
-(user_data->num_headers,user_data->headers,data+pos);pos+=
-user_data_header_length+(0x4f1+1552-0xb00);total_bits_occupied=(
-user_data_header_length+(0x17db+114-0x184c))*(0xbdc+2215-0x147b);fill_bits=(
-total_bits_occupied%(0xf8+759-0x3e8));if(fill_bits!=(0x1878+473-0x1a51)){
-fill_bits=(0xbdb+1281-0x10d5)-fill_bits;}user_data_length=(total_bits_occupied+
-fill_bits+(user_data->sm_len*(0x12c+5512-0x16ad)))/(0x4f8+2603-0xf1c);data[
-(0xf05+185-0xfbe)]=(UINT8)user_data_length;data[(0xcf5+4242-0x1d86)]=
-user_data_header_length;}else{at_print(LOG_DEBUG,
+(0x148+76-0x194);UINT8 fill_bits=(0xb2a+1502-0x1108);UINT16 total_bits_occupied;
+UINT8 user_data_header_length;UINT16 user_data_length;data[pos]=(UINT8)user_data
+->sm_len;pos++;if(dcs->alphabet==WMS_GW_ALPHABET_7_BIT_DEFAULT){if(user_data->
+num_headers>(0x481+3163-0x10dc)){if(wms_ts_compute_user_data_header_length(
+user_data->num_headers,user_data->headers)<=WMS_SMS_UDL_MAX_8_BIT){
+user_data_header_length=wms_ts_encode_user_data_header(user_data->num_headers,
+user_data->headers,data+pos);pos+=user_data_header_length+(0x8aa+4100-0x18ad);
+total_bits_occupied=(user_data_header_length+(0x19d0+2749-0x248c))*
+(0x1a48+3056-0x2630);fill_bits=(total_bits_occupied%(0x28d+5897-0x198f));if(
+fill_bits!=(0x22c3+201-0x238c)){fill_bits=(0xcb1+6461-0x25e7)-fill_bits;}
+user_data_length=(total_bits_occupied+fill_bits+(user_data->sm_len*
+(0x30d+5623-0x18fd)))/(0x98f+4534-0x1b3e);data[(0x5cf+6481-0x1f20)]=(UINT8)
+user_data_length;data[(0x7b9+3101-0x13d5)]=user_data_header_length;}else{
+at_print(LOG_DEBUG,
 "\x45\x6e\x63\x6f\x64\x65\x20\x55\x73\x65\x72\x20\x44\x61\x74\x61\x20\x48\x65\x61\x64\x65\x72\x20\x45\x78\x63\x65\x65\x64\x73\x20\x43\x61\x70\x61\x63\x69\x74\x79\x20\x2d\x20\x53\x6b\x69\x70\x70\x69\x6e\x67\x20\x55\x44\x48"
 );}}i=wms_ts_pack_gw_7_bit_chars(user_data->sm_data,user_data->sm_len,fill_bits,
 (UINT16)(WMS_MAX_LEN-pos),&data[pos]);pos+=i;}else{if(user_data->num_headers>
-(0xa78+2226-0x132a)){if(wms_ts_compute_user_data_header_length(user_data->
+(0x9b4+241-0xaa5)){if(wms_ts_compute_user_data_header_length(user_data->
 num_headers,user_data->headers)<=WMS_SMS_UDL_MAX_8_BIT){user_data_header_length=
 wms_ts_encode_user_data_header(user_data->num_headers,user_data->headers,data+
-pos);data[(0x3ab+2653-0xe08)]=(UINT8)(user_data->sm_len+user_data_header_length+
-(0x14cb+3914-0x2414));pos+=user_data_header_length+(0x1740+1377-0x1ca0);}else{
-at_print(LOG_DEBUG,
+pos);data[(0x17d2+1693-0x1e6f)]=(UINT8)(user_data->sm_len+
+user_data_header_length+(0x1ac0+2360-0x23f7));pos+=user_data_header_length+
+(0x126d+4108-0x2278);}else{at_print(LOG_DEBUG,
 "\x45\x6e\x63\x6f\x64\x65\x20\x55\x73\x65\x72\x20\x44\x61\x74\x61\x20\x48\x65\x61\x64\x65\x72\x20\x45\x78\x63\x65\x65\x64\x73\x20\x43\x61\x70\x61\x63\x69\x74\x79\x20\x2d\x20\x53\x6b\x69\x70\x70\x69\x6e\x67\x20\x55\x44\x48"
 );}}memcpy(&data[pos],user_data->sm_data,user_data->sm_len);pos+=user_data->
 sm_len;}return(UINT8)pos;}wms_status_e_type wms_ts_encode_deliver(const 
 wms_gw_deliver_s_type*deliver,T_zUfiSms_RawTsData*raw_ts_data_ptr){
-wms_status_e_type st=WMS_OK_S;UINT8*data;UINT8 pos=(0x2c9+3776-0x1189),i;if(
+wms_status_e_type st=WMS_OK_S;UINT8*data;UINT8 pos=(0x3d5+1789-0xad2),i;if(
 deliver==NULL||raw_ts_data_ptr==NULL){at_print(LOG_DEBUG,
 "\x4e\x75\x6c\x6c\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x65\x6e\x63\x6f\x64\x65\x5f\x64\x65\x6c\x69\x76\x65\x72\x21"
 );return WMS_NULL_PTR_S;}data=raw_ts_data_ptr->data;(void)memset(data,
-(0x736+8084-0x26ca),WMS_MAX_LEN);data[pos]=(0x307+7238-0x1f4d);data[pos]|=
-deliver->more?(0x232+5785-0x18cb):(0x16e7+734-0x19c1);data[pos]|=deliver->
-status_report_enabled?(0x3a6+8003-0x22c9):(0x542+7366-0x2208);data[pos]|=deliver
-->user_data_header_present?(0xb61+6798-0x25af):(0x127+994-0x509);data[pos]|=
-deliver->reply_path_present?(0x8ea+2158-0x10d8):(0x1601+1386-0x1b6b);pos++;i=
-wms_ts_encode_address(&deliver->address,&data[pos]);if(i==(0x1435+3205-0x20ba)){
+(0xf5a+4561-0x212b),WMS_MAX_LEN);data[pos]=(0x1020+3270-0x1ce6);data[pos]|=
+deliver->more?(0xcc2+959-0x1081):(0x3e2+756-0x6d2);data[pos]|=deliver->
+status_report_enabled?(0x2086+1075-0x2499):(0x119f+4044-0x216b);data[pos]|=
+deliver->user_data_header_present?(0x606+47-0x5f5):(0xefd+973-0x12ca);data[pos]
+|=deliver->reply_path_present?(0xca8+3190-0x189e):(0x854+2256-0x1124);pos++;i=
+wms_ts_encode_address(&deliver->address,&data[pos]);if(i==(0x9ca+4168-0x1a12)){
 return WMS_INVALID_PARM_SIZE_S;}pos+=i;data[pos]=deliver->pid;pos++;pos+=
 wms_ts_encode_dcs(&deliver->dcs,data+pos);i=wms_ts_encode_timestamp(&deliver->
-timestamp,data+pos);if(i==(0x277+5238-0x16ed)){return WMS_INVALID_PARM_VALUE_S;}
+timestamp,data+pos);if(i==(0x296+5440-0x17d6)){return WMS_INVALID_PARM_VALUE_S;}
 pos+=i;if(wms_ts_compute_gw_user_data_length(&deliver->dcs,&deliver->user_data)>
 WMS_SMS_UDL_MAX_8_BIT){at_print(LOG_DEBUG,
 "\x55\x73\x65\x72\x20\x44\x61\x74\x61\x20\x4c\x65\x6e\x67\x74\x68\x20\x68\x61\x73\x20\x65\x78\x63\x65\x65\x64\x65\x64\x20\x63\x61\x70\x61\x63\x69\x74\x79"
@@ -1368,56 +1364,56 @@
 dcs,&deliver->user_data,data+pos);pos+=i;}raw_ts_data_ptr->tpdu_type=
 WMS_TPDU_DELIVER;raw_ts_data_ptr->len=pos;return st;}UINT8 
 wms_ts_encode_relative_time(const wms_timestamp_s_type*timestamp){uint32 i;UINT8
- v=(0x2a+6315-0x18d5),j;if(timestamp!=NULL){if(!wms_ts_bcd_to_int(timestamp->
+ v=(0x8b8+7530-0x2622),j;if(timestamp!=NULL){if(!wms_ts_bcd_to_int(timestamp->
 year,&j)){at_print(LOG_DEBUG,
 "\x59\x65\x61\x72\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x3a\x20\x25\x64",j
-);}i=j*(0x1c68+273-0x1c0c);if(!wms_ts_bcd_to_int(timestamp->month,&j)){at_print(
+);}i=j*(0x764+1614-0xc45);if(!wms_ts_bcd_to_int(timestamp->month,&j)){at_print(
 LOG_DEBUG,
 "\x4d\x6f\x6e\x74\x68\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x3a\x20\x25\x64"
-,j);}i=i+j*(0x9f0+4386-0x1af4);if(!wms_ts_bcd_to_int(timestamp->day,&j)){
+,j);}i=i+j*(0xe15+925-0x1194);if(!wms_ts_bcd_to_int(timestamp->day,&j)){at_print
+(LOG_DEBUG,
+"\x44\x61\x79\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x3a\x20\x25\x64",j);}i
++=j;if(i>(0x1b0f+2905-0x264a)){v=(UINT8)((i+(0x131b+1574-0x193b))/
+(0x51a+709-0x7d8)+(0x101d+1959-0x1704));}else if(i>=(0x279+2440-0xc00)){v=(UINT8
+)(i+(0x150f+729-0x1742));}else{if(!wms_ts_bcd_to_int(timestamp->day,&j)){
 at_print(LOG_DEBUG,
 "\x44\x61\x79\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x3a\x20\x25\x64",j);}i
-+=j;if(i>(0x15a0+315-0x16bd)){v=(UINT8)((i+(0x93d+4859-0x1c32))/
-(0x127c+2163-0x1ae8)+(0xdc6+4338-0x1df8));}else if(i>=(0x183+6128-0x1972)){v=(
-UINT8)(i+(0x1206+4548-0x2324));}else{if(!wms_ts_bcd_to_int(timestamp->day,&j)){
-at_print(LOG_DEBUG,
-"\x44\x61\x79\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x3a\x20\x25\x64",j);}i
-=j*(0x575+5997-0x1cca)*(0x8b9+4921-0x1bb6);if(!wms_ts_bcd_to_int(timestamp->hour
+=j*(0x91a+5300-0x1db6)*(0x866+4498-0x19bc);if(!wms_ts_bcd_to_int(timestamp->hour
 ,&j)){at_print(LOG_DEBUG,
 "\x48\x6f\x75\x72\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x3a\x20\x25\x64",j
-);}i=i+j*(0x760+3609-0x153d);if(!wms_ts_bcd_to_int(timestamp->minute,&j)){
+);}i=i+j*(0x3d0+1202-0x846);if(!wms_ts_bcd_to_int(timestamp->minute,&j)){
 at_print(LOG_DEBUG,
 "\x4d\x69\x6e\x75\x74\x65\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x3a\x20\x25\x64"
-,j);}i+=j;if(i>(0x1641+3557-0x241a)*(0x4fc+8601-0x2659)){v=(UINT8)((i-((
-(0x1bf0+1166-0x2072)*(0x176d+3913-0x267a))+(0xf66+4375-0x2060)))/
-(0xb11+3607-0x190a)+(0xa3b+478-0xb8a));}else{v=(UINT8)((i+(0x7b2+5065-0x1b77))/
-(0xd7c+4793-0x2030)-(0x9c8+6411-0x22d2));}}}else{at_print(LOG_DEBUG,
+,j);}i+=j;if(i>(0x2ec+1115-0x73b)*(0xa55+1907-0x118c)){v=(UINT8)((i-((
+(0xcd5+68-0xd0d)*(0x87b+2756-0x1303))+(0x401+1932-0xb70)))/(0x91c+7248-0x254e)+
+(0x73c+2826-0x11b7));}else{v=(UINT8)((i+(0x2269+620-0x24d1))/(0x15b6+826-0x18eb)
+-(0x4f+6164-0x1862));}}}else{at_print(LOG_DEBUG,
 "\x6e\x75\x6c\x6c\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x65\x6e\x63\x6f\x64\x65\x5f\x72\x65\x6c\x61\x74\x69\x76\x65\x5f\x74\x69\x6d\x65"
 );}return v;}UINT8 wms_ts_encode_gw_validity(const wms_gw_validity_s_type*
-validity,UINT8*data){UINT8 i,pos=(0x4d3+588-0x71f);switch(validity->format){case
- WMS_GW_VALIDITY_NONE:break;case WMS_GW_VALIDITY_RELATIVE:data[pos]=
+validity,UINT8*data){UINT8 i,pos=(0x370+7977-0x2299);switch(validity->format){
+case WMS_GW_VALIDITY_NONE:break;case WMS_GW_VALIDITY_RELATIVE:data[pos]=
 wms_ts_encode_relative_time(&validity->u.time);pos++;break;case 
 WMS_GW_VALIDITY_ABSOLUTE:i=wms_ts_encode_timestamp(&validity->u.time,data+pos);
-if(i==(0x4d9+3275-0x11a4)){at_print(LOG_DEBUG,
+if(i==(0x2ab+9019-0x25e6)){at_print(LOG_DEBUG,
 "\x45\x72\x72\x6f\x72\x20\x77\x68\x69\x6c\x65\x20\x44\x65\x63\x6f\x64\x69\x6e\x67\x20\x41\x62\x73\x6f\x6c\x75\x74\x65\x20\x56\x61\x6c\x69\x64\x69\x74\x79\x20\x54\x69\x6d\x65\x73\x74\x61\x6d\x70"
 );}pos+=i;break;case WMS_GW_VALIDITY_ENHANCED:break;default:break;}return pos;}
 wms_status_e_type wms_ts_encode_submit(const wms_gw_submit_s_type*submit,
 T_zUfiSms_RawTsData*raw_ts_data_ptr){wms_status_e_type st=WMS_OK_S;UINT8*data;
-UINT8 pos=(0x23f+5982-0x199d),i;if(submit==NULL||raw_ts_data_ptr==NULL){at_print
-(LOG_DEBUG,
+UINT8 pos=(0x22d6+17-0x22e7),i;if(submit==NULL||raw_ts_data_ptr==NULL){at_print(
+LOG_DEBUG,
 "\x4e\x75\x6c\x6c\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x65\x6e\x63\x6f\x64\x65\x5f\x73\x75\x62\x6d\x69\x74\x21"
 );return WMS_NULL_PTR_S;}data=raw_ts_data_ptr->data;(void)memset(data,
-(0x111b+3749-0x1fc0),WMS_MAX_LEN);data[pos]=(0xf0c+4920-0x2243);data[pos]|=
-submit->reject_duplicates?(0x1613+2083-0x1e32):(0x651+7819-0x24dc);if(submit->
-validity.format>(0xe1c+477-0xff6)){return st=WMS_INVALID_VALIDITY_FORMAT_S;}data
-[pos]|=submit->validity.format<<(0xabf+336-0xc0c);data[pos]|=submit->
-status_report_enabled?(0x1a3d+2318-0x232b):(0x213d+1024-0x253d);data[pos]|=
-submit->user_data_header_present?(0x7a4+7742-0x25a2):(0x189a+341-0x19ef);data[
-pos]|=submit->reply_path_present?(0x6cc+3002-0x1206):(0x16b4+1782-0x1daa);pos++;
-data[pos]=(UINT8)submit->message_reference;pos++;i=wms_ts_encode_address(&submit
-->address,&data[pos]);if(i==(0x2+9311-0x2461)){return WMS_INVALID_PARM_SIZE_S;}
-pos+=i;data[pos]=submit->pid;pos++;pos+=wms_ts_encode_dcs(&submit->dcs,data+pos)
-;pos+=wms_ts_encode_gw_validity(&submit->validity,data+pos);if(
+(0x1c99+782-0x1fa7),WMS_MAX_LEN);data[pos]=(0x1d1d+1085-0x2159);data[pos]|=
+submit->reject_duplicates?(0x215+6019-0x1994):(0x1512+4039-0x24d9);if(submit->
+validity.format>(0x687+7659-0x246f)){return st=WMS_INVALID_VALIDITY_FORMAT_S;}
+data[pos]|=submit->validity.format<<(0xb03+5651-0x2113);data[pos]|=submit->
+status_report_enabled?(0x1cf+1090-0x5f1):(0xdb3+981-0x1188);data[pos]|=submit->
+user_data_header_present?(0x102f+915-0x1382):(0x438+6785-0x1eb9);data[pos]|=
+submit->reply_path_present?(0xd38+5011-0x204b):(0xc8+717-0x395);pos++;data[pos]=
+(UINT8)submit->message_reference;pos++;i=wms_ts_encode_address(&submit->address,
+&data[pos]);if(i==(0x13b+3354-0xe55)){return WMS_INVALID_PARM_SIZE_S;}pos+=i;
+data[pos]=submit->pid;pos++;pos+=wms_ts_encode_dcs(&submit->dcs,data+pos);pos+=
+wms_ts_encode_gw_validity(&submit->validity,data+pos);if(
 wms_ts_compute_gw_user_data_length(&submit->dcs,&submit->user_data)>
 WMS_SMS_UDL_MAX_8_BIT){at_print(LOG_DEBUG,
 "\x55\x73\x65\x72\x20\x44\x61\x74\x61\x20\x4c\x65\x6e\x67\x74\x68\x20\x68\x61\x73\x20\x65\x78\x63\x65\x65\x64\x65\x64\x20\x63\x61\x70\x61\x63\x69\x74\x79"
@@ -1426,21 +1422,21 @@
 WMS_TPDU_SUBMIT;raw_ts_data_ptr->len=pos;return st;}wms_status_e_type 
 wms_ts_encode_status_report(const wms_gw_status_report_s_type*status_report,
 T_zUfiSms_RawTsData*raw_ts_data_ptr){wms_status_e_type st=WMS_OK_S;UINT8*data;
-UINT8 pos=(0xc7+5533-0x1664),i;if(status_report==NULL||raw_ts_data_ptr==NULL){
+UINT8 pos=(0x5cc+1426-0xb5e),i;if(status_report==NULL||raw_ts_data_ptr==NULL){
 at_print(LOG_DEBUG,
 "\x4e\x75\x6c\x6c\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x65\x6e\x63\x6f\x64\x65\x5f\x73\x74\x61\x74\x75\x73\x5f\x72\x65\x70\x6f\x72\x74\x21"
 );return WMS_NULL_PTR_S;}data=raw_ts_data_ptr->data;(void)memset(data,
-(0x334+5457-0x1885),WMS_MAX_LEN);data[pos]=(0x29d+4360-0x1395);data[pos]|=
-status_report->more?(0x1157+5396-0x266b):(0x1640+1854-0x1d7a);data[pos]|=
-status_report->status_report_qualifier?(0x15c+5848-0x1814):(0x1603+1844-0x1d37);
-data[pos]|=status_report->user_data_header_present?(0xbf1+231-0xc98):
-(0xb96+5844-0x226a);pos++;data[pos]=(UINT8)status_report->message_reference;pos
+(0x1017+2598-0x1a3d),WMS_MAX_LEN);data[pos]=(0xbac+1881-0x12f5);data[pos]|=
+status_report->more?(0x1f95+592-0x21e5):(0x1111+3104-0x1d2d);data[pos]|=
+status_report->status_report_qualifier?(0x487+53-0x49c):(0x103d+2564-0x1a41);
+data[pos]|=status_report->user_data_header_present?(0x11ec+3568-0x1f9c):
+(0x2276+488-0x245e);pos++;data[pos]=(UINT8)status_report->message_reference;pos
 ++;i=wms_ts_encode_address(&status_report->address,&data[pos]);if(i==
-(0x172+378-0x2ec)){return WMS_INVALID_PARM_SIZE_S;}pos+=i;i=
+(0x1346+763-0x1641)){return WMS_INVALID_PARM_SIZE_S;}pos+=i;i=
 wms_ts_encode_timestamp(&status_report->timestamp,data+pos);if(i==
-(0x16ff+1369-0x1c58)){return WMS_INVALID_PARM_VALUE_S;}pos+=i;i=
+(0x154b+105-0x15b4)){return WMS_INVALID_PARM_VALUE_S;}pos+=i;i=
 wms_ts_encode_timestamp(&status_report->discharge_time,data+pos);if(i==
-(0x2d4+7487-0x2013)){return WMS_INVALID_PARM_VALUE_S;}pos+=i;data[pos]=
+(0x2191+1010-0x2583)){return WMS_INVALID_PARM_VALUE_S;}pos+=i;data[pos]=
 status_report->tp_status;pos++;data[pos]=(UINT8)status_report->mask;pos++;if(
 status_report->mask&WMS_TPDU_MASK_PID){data[pos]=status_report->pid;pos++;}if(
 status_report->mask&WMS_TPDU_MASK_DCS){pos+=wms_ts_encode_dcs(&status_report->
@@ -1455,7 +1451,7 @@
 T_zUfiSms_RawTsData*ptRawTsData){wms_status_e_type st=WMS_OK_S;const 
 wms_gw_pp_ts_data_s_type*msg;if(ptClientTsData==NULL||ptRawTsData==NULL){return 
 WMS_NULL_PTR_S;}msg=&ptClientTsData->u.gw_pp;switch(ptClientTsData->format){
-#if (0xea7+2829-0x19b4)

+#if (0x3a1+2915-0xf04)

 case WMS_FORMAT_CDMA:case WMS_FORMAT_ANALOG_AWISMS:case WMS_FORMAT_ANALOG_CLI:
 case WMS_FORMAT_ANALOG_VOICE_MAIL:case WMS_FORMAT_ANALOG_SMS:case WMS_FORMAT_MWI
 :st=wms_ts_encode_bearer_data(&ptClientTsData->u.cdma,ptRawTsData);break;
@@ -1465,7 +1461,7 @@
 ptRawTsData);break;case WMS_TPDU_SUBMIT:st=wms_ts_encode_submit(&msg->u.submit,
 ptRawTsData);break;case WMS_TPDU_STATUS_REPORT:st=wms_ts_encode_status_report(&
 msg->u.status_report,ptRawTsData);break;
-#if (0x9c2+5324-0x1e8e)

+#if (0x72a+3361-0x144b)

 case WMS_TPDU_SUBMIT_REPORT_ACK:st=wms_ts_encode_submit_report_ack(&msg->u.
 submit_report_ack,ptRawTsData);break;case WMS_TPDU_SUBMIT_REPORT_ERROR:st=
 wms_ts_encode_submit_report_error(&msg->u.submit_report_error,ptRawTsData);break
@@ -1482,361 +1478,359 @@
 "\x49\x6e\x76\x61\x6c\x69\x64\x20\x66\x6f\x72\x6d\x61\x74\x3a\x20\x25\x64",
 ptClientTsData->format);break;}ptRawTsData->format=ptClientTsData->format;return
  st;}UINT8 wms_ts_unpack_gw_7_bit_chars(const UINT8*in,UINT8 in_len,UINT8 
-out_len_max,UINT16 shift,UINT8*out){int i=(0x11ca+4781-0x2477);UINT16 pos=
-(0x19c1+2188-0x224d);if(in==NULL||out==NULL){at_print(LOG_DEBUG,
+out_len_max,UINT16 shift,UINT8*out){int i=(0xc62+877-0xfcf);UINT16 pos=
+(0x68c+302-0x7ba);if(in==NULL||out==NULL){at_print(LOG_DEBUG,
 "\x6e\x75\x6c\x6c\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x75\x6e\x70\x61\x63\x6b\x5f\x67\x77\x5f\x37\x5f\x62\x69\x74\x5f\x63\x68\x61\x72\x73"
-);return(0x168b+248-0x1783);}if(shift!=(0x387+1331-0x8ba))pos=pos+
-(0x5b2+715-0x87c);if(shift==(0xae3+4566-0x1cb2)){out[(0xa12+2915-0x1575)]=in[
-(0x57f+7011-0x20e2)]>>(0x243d+617-0x26a5);shift=(0x1a09+2129-0x225a);i=
-(0xdfc+4361-0x1f04);}for(i=i;i<out_len_max&&i<in_len;i++,pos++){out[i]=(in[pos]
-<<shift)&(0xf72+1930-0x167d);if(pos!=(0x1306+4447-0x2465)){
-#if (0x615+6133-0x1e09)       
-if(shift==(0xba5+1407-0x1124)){out[i]|=(0xc1a+6082-0x23dc);}else{out[i]|=in[pos-
-(0x1c4+8741-0x23e8)]>>((0x873+1931-0xff6)-shift);}
+);return(0xf17+3914-0x1e61);}if(shift!=(0x7a5+5568-0x1d65))pos=pos+
+(0x1fd+275-0x30f);if(shift==(0x1269+1706-0x190c)){out[(0x13d2+1501-0x19af)]=in[
+(0x2c5+4830-0x15a3)]>>(0xba7+1643-0x1211);shift=(0x2d9+2271-0xbb8);i=
+(0x1e3+2588-0xbfe);}for(i=i;i<out_len_max&&i<in_len;i++,pos++){out[i]=(in[pos]<<
+shift)&(0x12a+2035-0x89e);if(pos!=(0x2423+378-0x259d)){
+#if (0x771+2801-0x1261)       
+if(shift==(0x1fa+4715-0x1465)){out[i]|=(0xd74+5843-0x2447);}else{out[i]|=in[pos-
+(0x11f4+2311-0x1afa)]>>((0x231+3311-0xf18)-shift);}
 #else

-out[i]|=in[pos-(0x17c8+1798-0x1ecd)]>>((0x15cd+3195-0x2240)-shift);
+out[i]|=in[pos-(0x19c9+1976-0x2180)]>>((0x74c+4690-0x1996)-shift);
 #endif

-}shift++;if(shift==(0x1607+2956-0x218c)){shift=(0x2db+8844-0x2567);i++;if(i>=
+}shift++;if(shift==(0x123c+2064-0x1a45)){shift=(0x2cc+6144-0x1acc);i++;if(i>=
 out_len_max){at_print(LOG_DEBUG,
 "\x4e\x6f\x74\x20\x65\x6e\x6f\x75\x67\x68\x20\x6f\x75\x74\x70\x75\x74\x20\x62\x75\x66\x66\x65\x72\x20\x66\x6f\x72\x20\x75\x6e\x70\x61\x63\x6b\x69\x6e\x67\x21"
-);break;}out[i]=in[pos]>>(0x1a0+6380-0x1a8b);}}return(UINT8)(pos);}UINT8 
+);break;}out[i]=in[pos]>>(0x8ab+2543-0x1299);}}return(UINT8)(pos);}UINT8 
 wms_ts_decode_address(const UINT8*data,wms_address_s_type*addr){UINT8 i,pos=
-(0x44c+2195-0xcdf);i=data[pos];if(i>WMS_GW_ADDRESS_MAX){at_print(LOG_DEBUG,
+(0x60f+4460-0x177b);i=data[pos];if(i>WMS_GW_ADDRESS_MAX){at_print(LOG_DEBUG,
 "\x41\x64\x64\x72\x20\x6c\x65\x6e\x20\x74\x6f\x6f\x20\x6c\x6f\x6e\x67\x3a\x20\x25\x64"
-,i);return(0xc33+6364-0x250f);}addr->number_of_digits=i;pos++;addr->digit_mode=
+,i);return(0x1348+519-0x154f);}addr->number_of_digits=i;pos++;addr->digit_mode=
 WMS_DIGIT_MODE_4_BIT;addr->number_type=(wms_number_type_e_type)((data[pos]&
-(0x1cba+2712-0x26e2))>>(0x1c2b+1675-0x22b2));addr->number_plan=(
-wms_number_plan_e_type)(data[pos]&(0xb7c+3639-0x19a4));pos++;if(addr->
-number_type==WMS_NUMBER_ALPHANUMERIC){UINT8 bytes_increment=(0xddc+4860-0x20d8);
+(0x23f+4035-0x1192))>>(0x417+8328-0x249b));addr->number_plan=(
+wms_number_plan_e_type)(data[pos]&(0xf67+1412-0x14dc));pos++;if(addr->
+number_type==WMS_NUMBER_ALPHANUMERIC){UINT8 bytes_increment=(0xe2f+931-0x11d2);
 addr->digit_mode=WMS_DIGIT_MODE_8_BIT;bytes_increment=(addr->number_of_digits+
-(0x76c+1117-0xbc8))/(0x9d4+93-0xa2f);addr->number_of_digits=(UINT8)(addr->
-number_of_digits*(0x20c8+308-0x21f8)/(0x50d+3075-0x1109));(void)
+(0x84d+5761-0x1ecd))/(0x14c3+712-0x1789);addr->number_of_digits=(UINT8)(addr->
+number_of_digits*(0xefa+1581-0x1523)/(0xbe6+6065-0x2390));(void)
 wms_ts_unpack_gw_7_bit_chars(&data[pos],addr->number_of_digits,
-WMS_GW_ADDRESS_MAX,(0x16a5+945-0x1a56),addr->digits);pos+=bytes_increment;}else{
-for(i=(0xaa8+6618-0x2482);i<addr->number_of_digits;i++){addr->digits[i++]=data[
-pos]&(0x2e2+1726-0x991);addr->digits[i]=(data[pos]&(0x332+9391-0x26f1))>>
-(0x4b3+1237-0x984);pos++;}}return pos;}UINT8 wms_ts_decode_dcs(const UINT8*data,
-wms_gw_dcs_s_type*dcs){UINT8 pos=(0x7ec+1193-0xc95);UINT8 i;if(data==NULL||dcs==
-NULL){at_print(LOG_DEBUG,
+WMS_GW_ADDRESS_MAX,(0xdd2+736-0x10b2),addr->digits);pos+=bytes_increment;}else{
+for(i=(0x525+8013-0x2472);i<addr->number_of_digits;i++){addr->digits[i++]=data[
+pos]&(0x16dc+3719-0x2554);addr->digits[i]=(data[pos]&(0x1bf2+2920-0x266a))>>
+(0x10b+3109-0xd2c);pos++;}}return pos;}UINT8 wms_ts_decode_dcs(const UINT8*data,
+wms_gw_dcs_s_type*dcs){UINT8 pos=(0xe20+3098-0x1a3a);UINT8 i;if(data==NULL||dcs
+==NULL){at_print(LOG_DEBUG,
 "\x6e\x75\x6c\x6c\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x64\x65\x63\x6f\x64\x65\x5f\x64\x63\x73"
-);return(0x1257+386-0x13d9);}dcs->msg_class=WMS_MESSAGE_CLASS_NONE;dcs->
+);return(0x59c+5648-0x1bac);}dcs->msg_class=WMS_MESSAGE_CLASS_NONE;dcs->
 msg_waiting=WMS_GW_MSG_WAITING_NONE;dcs->alphabet=WMS_GW_ALPHABET_7_BIT_DEFAULT;
-dcs->is_compressed=FALSE;i=(data[pos]&(0x23d+9594-0x26f7))>>(0x8f4+7529-0x2657);
-switch(i){case(0x1901+2071-0x2118):dcs->is_compressed=data[pos]&
-(0x8c0+3773-0x175d);if(data[pos]&(0x1842+2690-0x22b4)){dcs->msg_class=(
-wms_message_class_e_type)(data[pos]&(0x18bb+2159-0x2127));}else{dcs->msg_class=
-WMS_MESSAGE_CLASS_NONE;}dcs->alphabet=(wms_gw_alphabet_e_type)((data[pos]&
-(0x1144+2232-0x19f0))>>(0x58c+4255-0x1629));break;case(0xe88+2002-0x1657):if((
-data[pos]&(0x269+5869-0x1926))==(0xe33+5162-0x222d)){dcs->alphabet=(data[pos]&
-(0x6c3+2638-0x110d))?WMS_GW_ALPHABET_8_BIT:WMS_GW_ALPHABET_7_BIT_DEFAULT;dcs->
-msg_class=(wms_message_class_e_type)(data[pos]&(0x3db+3331-0x10db));dcs->
+dcs->is_compressed=FALSE;i=(data[pos]&(0x1291+2515-0x1ba4))>>(0x2cc+2977-0xe67);
+switch(i){case(0x45f+517-0x664):dcs->is_compressed=data[pos]&(0x1c77+663-0x1eee)
+;if(data[pos]&(0x749+6757-0x219e)){dcs->msg_class=(wms_message_class_e_type)(
+data[pos]&(0x878+6213-0x20ba));}else{dcs->msg_class=WMS_MESSAGE_CLASS_NONE;}dcs
+->alphabet=(wms_gw_alphabet_e_type)((data[pos]&(0xa59+4776-0x1cf5))>>
+(0x61b+5728-0x1c79));break;case(0x2d9+7485-0x2013):if((data[pos]&
+(0x816+6508-0x2152))==(0xbf+4954-0x13e9)){dcs->alphabet=(data[pos]&
+(0x1c81+771-0x1f80))?WMS_GW_ALPHABET_8_BIT:WMS_GW_ALPHABET_7_BIT_DEFAULT;dcs->
+msg_class=(wms_message_class_e_type)(data[pos]&(0x1c44+2740-0x26f5));dcs->
 is_compressed=FALSE;dcs->msg_waiting=WMS_GW_MSG_WAITING_NONE_1111;}else{dcs->
 is_compressed=FALSE;dcs->msg_class=WMS_MESSAGE_CLASS_NONE;if((data[pos]&
-(0x705+5807-0x1d84))==(0x1ac6+1397-0x203b)){dcs->msg_waiting=
+(0xd7+5513-0x1630))==(0xd85+1547-0x1390)){dcs->msg_waiting=
 WMS_GW_MSG_WAITING_DISCARD;dcs->alphabet=WMS_GW_ALPHABET_7_BIT_DEFAULT;}else if(
-(data[pos]&(0x1d1f+63-0x1d2e))==(0x446+2893-0xf83)){dcs->msg_waiting=
+(data[pos]&(0x1a07+2216-0x227f))==(0x2131+570-0x235b)){dcs->msg_waiting=
 WMS_GW_MSG_WAITING_STORE;dcs->alphabet=WMS_GW_ALPHABET_7_BIT_DEFAULT;}else{dcs->
 msg_waiting=WMS_GW_MSG_WAITING_STORE;dcs->alphabet=WMS_GW_ALPHABET_UCS2;}dcs->
-msg_waiting_active=(data[pos]&(0xa10+3810-0x18ea))?TRUE:FALSE;dcs->
-msg_waiting_kind=(wms_gw_msg_waiting_kind_e_type)(data[pos]&(0x4ab+678-0x74e));}
-break;default:at_print(LOG_DEBUG,
+msg_waiting_active=(data[pos]&(0x91+7294-0x1d07))?TRUE:FALSE;dcs->
+msg_waiting_kind=(wms_gw_msg_waiting_kind_e_type)(data[pos]&(0xe5a+5359-0x2346))
+;}break;default:at_print(LOG_DEBUG,
 "\x49\x6e\x76\x61\x6c\x69\x64\x20\x44\x43\x53\x3a\x20\x25\x78",data[pos]);dcs->
 alphabet=WMS_GW_ALPHABET_7_BIT_DEFAULT;dcs->is_compressed=FALSE;dcs->msg_waiting
 =WMS_GW_MSG_WAITING_NONE;dcs->msg_class=WMS_MESSAGE_CLASS_NONE;break;}if(dcs->
 alphabet>WMS_GW_ALPHABET_UCS2){dcs->alphabet=WMS_GW_ALPHABET_7_BIT_DEFAULT;}dcs
 ->raw_dcs_data=data[pos];pos++;return pos;}UINT8 wms_ts_decode_timestamp(const 
-UINT8*data,wms_timestamp_s_type*timestamp){UINT8 pos=(0x80c+4767-0x1aab),i,j;if(
-data==NULL||timestamp==NULL){at_print(LOG_DEBUG,
+UINT8*data,wms_timestamp_s_type*timestamp){UINT8 pos=(0x1418+1762-0x1afa),i,j;if
+(data==NULL||timestamp==NULL){at_print(LOG_DEBUG,
 "\x6e\x75\x6c\x6c\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x64\x65\x63\x6f\x64\x65\x5f\x74\x69\x6d\x65\x73\x74\x61\x6d\x70"
-);return(0x29a+7146-0x1e84);}i=((data[pos]&(0x1369+202-0x1424))<<
-(0x1e96+1981-0x264f))+((data[pos]&(0xd22+3491-0x19d5))>>(0x7f3+594-0xa41));if(!
-wms_ts_bcd_to_int(i,&j)){at_print(LOG_DEBUG,
+);return(0x2070+974-0x243e);}i=((data[pos]&(0x3b5+3453-0x1123))<<
+(0xc6b+3654-0x1aad))+((data[pos]&(0xddb+3566-0x1ad9))>>(0x1d87+1964-0x252f));if(
+!wms_ts_bcd_to_int(i,&j)){at_print(LOG_DEBUG,
 "\x49\x6e\x76\x61\x6c\x69\x64\x20\x42\x43\x44\x20\x44\x69\x67\x69\x74\x73\x20\x69\x6e\x20\x45\x6e\x63\x6f\x64\x65\x64\x20\x54\x69\x6d\x65\x73\x74\x61\x6d\x70\x20\x59\x65\x61\x72\x20\x3a\x20\x25\x64"
-,data[pos]);i=(0x188f+1801-0x1f98);}timestamp->year=i;pos++;i=((data[pos]&
-(0x32d+6140-0x1b1a))<<(0x11d3+4438-0x2325))+((data[pos]&(0xb63+6571-0x241e))>>
-(0x82+7452-0x1d9a));if(wms_ts_bcd_to_int(i,&j)){if(j>(0x87d+3582-0x166f)||j<
-(0xf94+5534-0x2531)){at_print(LOG_DEBUG,
+,data[pos]);i=(0x1128+3451-0x1ea3);}timestamp->year=i;pos++;i=((data[pos]&
+(0xe2b+3431-0x1b83))<<(0x149a+2576-0x1ea6))+((data[pos]&(0x1f6+5521-0x1697))>>
+(0x905+5065-0x1cca));if(wms_ts_bcd_to_int(i,&j)){if(j>(0x51b+5985-0x1c70)||j<
+(0x35d+4151-0x1393)){at_print(LOG_DEBUG,
 "\x4d\x6f\x6e\x74\x68\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x3a\x20\x25\x64"
-,j);i=(0x9e4+3494-0x1789);}}else{at_print(LOG_DEBUG,
+,j);i=(0xebc+2712-0x1953);}}else{at_print(LOG_DEBUG,
 "\x49\x6e\x76\x61\x6c\x69\x64\x20\x42\x43\x44\x20\x44\x69\x67\x69\x74\x73\x20\x69\x6e\x20\x45\x6e\x63\x6f\x64\x65\x64\x20\x54\x69\x6d\x65\x73\x74\x61\x6d\x70\x20\x4d\x6f\x6e\x74\x68\x20\x3a\x20\x25\x64"
-,data[pos]);i=(0xbb+8185-0x20b3);}timestamp->month=i;pos++;i=((data[pos]&
-(0x10c9+1694-0x1758))<<(0x87d+5158-0x1c9f))+((data[pos]&(0x11c7+492-0x12c3))>>
-(0x1a1a+3182-0x2684));if(wms_ts_bcd_to_int(i,&j)){if(j>(0x1c6+441-0x360)||j<
-(0x5ad+6105-0x1d85)){at_print(LOG_DEBUG,
+,data[pos]);i=(0x454+3547-0x122e);}timestamp->month=i;pos++;i=((data[pos]&
+(0x14ec+4094-0x24db))<<(0x10b+5706-0x1751))+((data[pos]&(0x1b8f+942-0x1e4d))>>
+(0x1c8+4692-0x1418));if(wms_ts_bcd_to_int(i,&j)){if(j>(0x13db+4702-0x261a)||j<
+(0xbf8+153-0xc90)){at_print(LOG_DEBUG,
 "\x44\x61\x79\x20\x69\x73\x20\x69\x6e\x76\x61\x6c\x69\x64\x3a\x20\x25\x64",j);i=
-(0x11e3+4985-0x255b);}}else{at_print(LOG_DEBUG,
+(0x896+3106-0x14b7);}}else{at_print(LOG_DEBUG,
 "\x49\x6e\x76\x61\x6c\x69\x64\x20\x42\x43\x44\x20\x44\x69\x67\x69\x74\x73\x20\x69\x6e\x20\x45\x6e\x63\x6f\x64\x65\x64\x20\x54\x69\x6d\x65\x73\x74\x61\x6d\x70\x20\x44\x61\x79\x20\x3a\x20\x25\x64"
-,data[pos]);i=(0x68c+697-0x944);}timestamp->day=i;pos++;i=((data[pos]&
-(0x9a3+1712-0x1044))<<(0x20c6+53-0x20f7))+((data[pos]&(0xc23+1731-0x11f6))>>
-(0x726+1018-0xb1c));if(wms_ts_bcd_to_int(i,&j)){if(j>(0x1e6d+932-0x21fa)){
+,data[pos]);i=(0x862+90-0x8bb);}timestamp->day=i;pos++;i=((data[pos]&
+(0xe51+1247-0x1321))<<(0x1505+2051-0x1d04))+((data[pos]&(0x68f+1809-0xcb0))>>
+(0x16a1+2572-0x20a9));if(wms_ts_bcd_to_int(i,&j)){if(j>(0x1d0a+2287-0x25e2)){
 at_print(LOG_DEBUG,
 "\x48\x6f\x75\x72\x20\x69\x73\x20\x74\x6f\x6f\x20\x6c\x61\x72\x67\x65\x3a\x20\x25\x64"
-,j);i=(0x1043+1168-0x14d3);}}else{at_print(LOG_DEBUG,
+,j);i=(0x43c+1569-0xa5d);}}else{at_print(LOG_DEBUG,
 "\x49\x6e\x76\x61\x6c\x69\x64\x20\x42\x43\x44\x20\x44\x69\x67\x69\x74\x73\x20\x69\x6e\x20\x45\x6e\x63\x6f\x64\x65\x64\x20\x54\x69\x6d\x65\x73\x74\x61\x6d\x70\x20\x48\x6f\x75\x72\x20\x3a\x20\x25\x64"
-,data[pos]);i=(0x1864+7-0x186b);}timestamp->hour=i;pos++;i=((data[pos]&
-(0x907+4339-0x19eb))<<(0x152+2577-0xb5f))+((data[pos]&(0xe60+6388-0x2664))>>
-(0x1399+1963-0x1b40));if(wms_ts_bcd_to_int(i,&j)){if(j>(0x1d9a+855-0x20b6)){
+,data[pos]);i=(0x57b+14-0x589);}timestamp->hour=i;pos++;i=((data[pos]&
+(0x13d3+4271-0x2473))<<(0x265+4128-0x1281))+((data[pos]&(0x311+4666-0x145b))>>
+(0x1e73+2155-0x26da));if(wms_ts_bcd_to_int(i,&j)){if(j>(0x20cb+36-0x20b4)){
 at_print(LOG_DEBUG,
 "\x4d\x69\x6e\x75\x74\x65\x20\x69\x73\x20\x74\x6f\x6f\x20\x6c\x61\x72\x67\x65\x3a\x20\x25\x64"
-,j);i=(0xb20+3558-0x1906);}}else{at_print(LOG_DEBUG,
+,j);i=(0x178+4185-0x11d1);}}else{at_print(LOG_DEBUG,
 "\x49\x6e\x76\x61\x6c\x69\x64\x20\x42\x43\x44\x20\x44\x69\x67\x69\x74\x73\x20\x69\x6e\x20\x45\x6e\x63\x6f\x64\x65\x64\x20\x54\x69\x6d\x65\x73\x74\x61\x6d\x70\x20\x4d\x69\x6e\x75\x74\x65\x20\x3a\x20\x25\x64"
-,data[pos]);i=(0x1092+4536-0x224a);}timestamp->minute=i;pos++;i=((data[pos]&
-(0x1098+2203-0x1924))<<(0x407+1746-0xad5))+((data[pos]&(0x1546+304-0x1586))>>
-(0x17a+6065-0x1927));if(wms_ts_bcd_to_int(i,&j)){if(j>(0x692+1413-0xbdc)){
+,data[pos]);i=(0x822+2419-0x1195);}timestamp->minute=i;pos++;i=((data[pos]&
+(0xc1a+5529-0x21a4))<<(0xb79+7058-0x2707))+((data[pos]&(0x181b+563-0x195e))>>
+(0x186+2843-0xc9d));if(wms_ts_bcd_to_int(i,&j)){if(j>(0x3a0+5182-0x17a3)){
 at_print(LOG_DEBUG,
 "\x53\x65\x63\x6f\x6e\x64\x20\x69\x73\x20\x74\x6f\x6f\x20\x6c\x61\x72\x67\x65\x3a\x20\x25\x64"
-,i);i=(0xfc+4157-0x1139);}}else{at_print(LOG_DEBUG,
+,i);i=(0xca3+2387-0x15f6);}}else{at_print(LOG_DEBUG,
 "\x49\x6e\x76\x61\x6c\x69\x64\x20\x42\x43\x44\x20\x44\x69\x67\x69\x74\x73\x20\x69\x6e\x20\x45\x6e\x63\x6f\x64\x65\x64\x20\x54\x69\x6d\x65\x73\x74\x61\x6d\x70\x20\x53\x65\x63\x6f\x6e\x64\x20\x3a\x20\x25\x64"
-,data[pos]);i=(0x110+640-0x390);}timestamp->second=i;pos++;if(data[pos]&
-(0xb84+1756-0x1258)){timestamp->timezone=(data[pos]&(0x1eda+303-0x2002))*
-(0x419+5147-0x182a)+((data[pos]&(0x1503+4135-0x243a))>>(0x11e3+4622-0x23ed));
-timestamp->timezone*=(-(0xde0+2024-0x15c7));}else{timestamp->timezone=(sint7)((
-data[pos]&(0x79c+2047-0xf8c))*(0x1cca+1043-0x20d3)+((data[pos]&
-(0x842+6842-0x220c))>>(0x532+371-0x6a1)));}if(timestamp->timezone>
-(0x530+1620-0xb54)||timestamp->timezone<-(0xb27+3215-0x1786)){at_print(LOG_DEBUG
-,
+,data[pos]);i=(0xe19+1525-0x140e);}timestamp->second=i;pos++;if(data[pos]&
+(0x1db1+1492-0x237d)){timestamp->timezone=(data[pos]&(0xad4+416-0xc6d))*
+(0x105d+3596-0x1e5f)+((data[pos]&(0x30b+3133-0xe58))>>(0x12e6+2578-0x1cf4));
+timestamp->timezone*=(-(0x79b+4420-0x18de));}else{timestamp->timezone=(sint7)((
+data[pos]&(0x789+964-0xb3e))*(0x12b2+3958-0x221e)+((data[pos]&
+(0x3c0+4435-0x1423))>>(0x16d4+2787-0x21b3)));}if(timestamp->timezone>
+(0x7dd+2583-0x11c4)||timestamp->timezone<-(0x1920+789-0x1c05)){at_print(
+LOG_DEBUG,
 "\x54\x69\x6d\x65\x7a\x6f\x6e\x65\x20\x69\x73\x20\x6f\x75\x74\x20\x6f\x66\x20\x62\x6f\x75\x6e\x64\x3a\x20\x25\x64"
-,timestamp->timezone);timestamp->timezone=(0xd1c+309-0xe51);}pos++;return pos;}
-static UINT8 wms_ts_decode_udh_concat_8(const UINT8*udh,wms_udh_s_type*
-header_ptr){UINT8 pos=(0xc4+4080-0x10b4);if(udh==NULL||header_ptr==NULL){
+,timestamp->timezone);timestamp->timezone=(0x1c7f+2237-0x253c);}pos++;return pos
+;}static UINT8 wms_ts_decode_udh_concat_8(const UINT8*udh,wms_udh_s_type*
+header_ptr){UINT8 pos=(0x1a71+286-0x1b8f);if(udh==NULL||header_ptr==NULL){
 at_print(LOG_DEBUG,"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return
-(0x2c6+239-0x3b5);}if(udh[pos]<(0xa4c+4025-0x1a02)){at_print(LOG_DEBUG,
+(0x8d2+4091-0x18cd);}if(udh[pos]<(0x1f1d+603-0x2175)){at_print(LOG_DEBUG,
 "\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x43\x6f\x6e\x63\x61\x74\x20\x38\x20\x50\x72\x65\x73\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x64\x61\x74\x61\x20\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x25\x64"
-,udh[pos]);return(0x19b6+2117-0x21fb);}if(udh[pos+(0x16bf+3726-0x254b)]==
-(0x1eaf+261-0x1fb4)||udh[pos+(0xbc0+2060-0x13c9)]>udh[pos+(0x14d8+3192-0x214e)])
+,udh[pos]);return(0x92b+6225-0x217c);}if(udh[pos+(0xde8+1459-0x1399)]==
+(0xacc+6121-0x22b5)||udh[pos+(0x7e7+2772-0x12b8)]>udh[pos+(0x1850+2035-0x2041)])
 {at_print(LOG_DEBUG,
 "\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x43\x6f\x6e\x74\x61\x63\x74\x20\x38\x20\x77\x69\x74\x68\x20\x6f\x75\x74\x20\x6f\x66\x20\x62\x6f\x75\x6e\x64\x20\x6d\x61\x78\x20\x6d\x65\x73\x73\x61\x67\x65\x73"
-);return(0xe86+2563-0x1889);}pos++;header_ptr->header_id=WMS_UDH_CONCAT_8;
+);return(0x14d+9547-0x2698);}pos++;header_ptr->header_id=WMS_UDH_CONCAT_8;
 header_ptr->u.concat_8.msg_ref=udh[pos++];header_ptr->u.concat_8.total_sm=udh[
-pos++];header_ptr->u.concat_8.seq_num=udh[pos++];return(udh[(0xd11+2743-0x17c8)]
-+(0x1013+2985-0x1bbb));}static UINT8 wms_ts_decode_udh_concat16(const UINT8*udh,
-wms_udh_s_type*header_ptr){UINT8 pos=(0x8b9+3980-0x1845);if(udh==NULL||
+pos++];header_ptr->u.concat_8.seq_num=udh[pos++];return(udh[(0x1812+3737-0x26ab)
+]+(0x94d+4201-0x19b5));}static UINT8 wms_ts_decode_udh_concat16(const UINT8*udh,
+wms_udh_s_type*header_ptr){UINT8 pos=(0x1071+3812-0x1f55);if(udh==NULL||
 header_ptr==NULL){at_print(LOG_DEBUG,
-"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x1b61+2200-0x23f9);}if(
-udh[pos]<(0x2b0+5750-0x1922)){at_print(LOG_DEBUG,
+"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0xd07+5681-0x2338);}if(
+udh[pos]<(0xd6f+6556-0x2707)){at_print(LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x43\x6f\x6e\x63\x61\x74\x31\x36\x20\x50\x72\x65\x73\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x64\x61\x74\x61\x20\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x25\x64"
-,udh[pos]);return(0x171d+2051-0x1f20);}if(udh[pos+(0x8f6+3603-0x1706)]==
-(0x19f7+2579-0x240a)||udh[pos+(0x1d5b+194-0x1e19)]==(0x120b+5163-0x2636)||udh[
-pos+(0x1a16+1244-0x1eee)]>udh[pos+(0x9a2+4823-0x1c76)])return(0x24a6+563-0x26d9)
-;header_ptr->header_id=WMS_UDH_CONCAT_16;pos++;header_ptr->u.concat_16.msg_ref=
+,udh[pos]);return(0x6f1+7226-0x232b);}if(udh[pos+(0xab4+4349-0x1bae)]==
+(0xde0+3964-0x1d5c)||udh[pos+(0x983+2511-0x134e)]==(0x2a7+5473-0x1808)||udh[pos+
+(0x1471+1312-0x198d)]>udh[pos+(0x15f8+3207-0x227c)])return(0x7c7+3391-0x1506);
+header_ptr->header_id=WMS_UDH_CONCAT_16;pos++;header_ptr->u.concat_16.msg_ref=
 udh[pos++];header_ptr->u.concat_16.msg_ref=(UINT16)(header_ptr->u.concat_16.
-msg_ref<<(0x10d0+4803-0x238b))|udh[pos++];header_ptr->u.concat_16.total_sm=udh[
-pos++];header_ptr->u.concat_16.seq_num=udh[pos++];return(udh[(0xb40+2158-0x13ae)
-]+(0x783+2045-0xf7f));}static UINT8 wms_ts_udh_decode_first_seg_check(const 
+msg_ref<<(0x4b6+5298-0x1960))|udh[pos++];header_ptr->u.concat_16.total_sm=udh[
+pos++];header_ptr->u.concat_16.seq_num=udh[pos++];return(udh[(0x38f+8518-0x24d5)
+]+(0x3d1+4577-0x15b1));}static UINT8 wms_ts_udh_decode_first_seg_check(const 
 UINT8 len,const UINT8*data,UINT8*is_first_segment_ptr){UINT8 pos=
-(0xf21+2019-0x1704);UINT8 num_headers=(0x44b+7435-0x2156);UINT8 udhl=
-(0x1067+182-0x111d);UINT8 iedl=(0x7b5+4155-0x17f0);UINT8 iei=
-(0x1018+2553-0x1a11);*is_first_segment_ptr=TRUE;if(data==NULL||data[pos]==
-(0x14f+3671-0xfa6)||len==(0xb6+3749-0xf5b)){at_print(LOG_DEBUG,
+(0x3dd+6390-0x1cd3);UINT8 num_headers=(0xb54+3854-0x1a62);UINT8 udhl=
+(0xec6+1053-0x12e3);UINT8 iedl=(0x5d1+5984-0x1d31);UINT8 iei=
+(0x1102+4996-0x2486);*is_first_segment_ptr=TRUE;if(data==NULL||data[pos]==
+(0x10c2+3290-0x1d9c)||len==(0x569+7591-0x2310)){at_print(LOG_DEBUG,
 "\x6e\x75\x6c\x6c\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x75\x64\x68\x5f\x64\x65\x63\x6f\x64\x65\x5f\x66\x69\x72\x73\x74\x5f\x73\x65\x67\x5f\x63\x68\x65\x63\x6b"
 );return FALSE;}udhl=data[pos];pos++;while((pos<udhl)&&(num_headers<
-WMS_MAX_UD_HEADERS)){iei=data[pos];iedl=data[pos+(0x85a+6189-0x2086)];if(iei==
-WMS_UDH_CONCAT_16){if(data[pos+(0x461+1224-0x924)]!=(0x666+6866-0x2137)){
+WMS_MAX_UD_HEADERS)){iei=data[pos];iedl=data[pos+(0x17bd+2893-0x2309)];if(iei==
+WMS_UDH_CONCAT_16){if(data[pos+(0x1d60+1391-0x22ca)]!=(0xc7a+6586-0x2633)){
 at_print(LOG_DEBUG,
 "\x57\x4d\x53\x5f\x55\x44\x48\x5f\x43\x4f\x4e\x43\x41\x54\x5f\x31\x36\x20\x6e\x6f\x74\x20\x66\x69\x72\x73\x74\x20\x73\x65\x67\x6d\x65\x6e\x74\x21"
 );*is_first_segment_ptr=FALSE;return TRUE;}else{return TRUE;}}else{num_headers++
-;pos+=((0xdd9+4002-0x1d79)+iedl);}}return TRUE;}static UINT8 
+;pos+=((0x17b1+1316-0x1cd3)+iedl);}}return TRUE;}static UINT8 
 wms_ts_decode_udh_special_sm(const UINT8*udh,wms_udh_s_type*header_ptr){UINT8 
-pos=(0x1b00+1266-0x1ff2);if(udh==NULL||header_ptr==NULL){at_print(LOG_DEBUG,
-"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x7+3447-0xd7e);}if(udh[
-pos]<(0xc6+8760-0x22fc)){at_print(LOG_DEBUG,
+pos=(0x37b+8171-0x2366);if(udh==NULL||header_ptr==NULL){at_print(LOG_DEBUG,
+"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x200c+23-0x2023);}if(udh
+[pos]<(0x4cb+6293-0x1d5e)){at_print(LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x53\x70\x65\x63\x69\x61\x6c\x20\x53\x4d\x20\x50\x72\x65\x73\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x64\x61\x74\x61\x20\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x25\x64"
-,udh[pos]);return(0x8ed+5030-0x1c93);}pos++;header_ptr->header_id=
+,udh[pos]);return(0x1966+2033-0x2157);}pos++;header_ptr->header_id=
 WMS_UDH_SPECIAL_SM;header_ptr->u.special_sm.msg_waiting=(
-wms_gw_msg_waiting_e_type)((udh[pos]>>(0xad3+2992-0x167c)==(0xde9+3393-0x1b2a))?
+wms_gw_msg_waiting_e_type)((udh[pos]>>(0xbb2+4043-0x1b76)==(0x32+2569-0xa3b))?
 WMS_GW_MSG_WAITING_DISCARD:WMS_GW_MSG_WAITING_STORE);header_ptr->u.special_sm.
-msg_waiting_kind=(wms_gw_msg_waiting_kind_e_type)(udh[pos++]&(0xe65+1822-0x1504)
-);header_ptr->u.special_sm.message_count=udh[pos++];return(udh[
-(0xe35+3838-0x1d33)]+(0x18f9+2776-0x23d0));}static UINT8 
+msg_waiting_kind=(wms_gw_msg_waiting_kind_e_type)(udh[pos++]&
+(0x1be6+1362-0x20b9));header_ptr->u.special_sm.message_count=udh[pos++];return(
+udh[(0x159a+3858-0x24ac)]+(0x2461+393-0x25e9));}static UINT8 
 wms_ts_decode_udh_port_8(const UINT8*udh,wms_udh_s_type*header_ptr){UINT8 pos=
-(0x60a+6681-0x2023);if(udh==NULL||header_ptr==NULL){at_print(LOG_DEBUG,
-"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x827+7749-0x266c);}if(
-udh[pos]<(0x99+2789-0xb7c)){at_print(LOG_DEBUG,
+(0x4e5+2702-0xf73);if(udh==NULL||header_ptr==NULL){at_print(LOG_DEBUG,
+"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x141+9073-0x24b2);}if(
+udh[pos]<(0xda1+1202-0x1251)){at_print(LOG_DEBUG,
 "\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x50\x6f\x72\x74\x20\x38\x20\x50\x72\x65\x73\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x64\x61\x74\x61\x20\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x25\x64"
-,udh[pos]);return(0x16c8+2642-0x211a);}pos++;header_ptr->header_id=
+,udh[pos]);return(0x14e7+3059-0x20da);}pos++;header_ptr->header_id=
 WMS_UDH_PORT_8;header_ptr->u.wap_8.dest_port=udh[pos++];header_ptr->u.wap_8.
-orig_port=udh[pos++];return(udh[(0x15dd+3566-0x23cb)]+(0x3c5+4686-0x1612));}
-static UINT8 wms_ts_decode_udh_port16(const UINT8*udh,wms_udh_s_type*header_ptr)
-{UINT8 pos=(0x9a5+1750-0x107b);if(udh==NULL||header_ptr==NULL){at_print(
-LOG_DEBUG,"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return
-(0x724+127-0x7a3);}if(udh[pos]<(0x153d+1216-0x19f9)){at_print(LOG_DEBUG,
+orig_port=udh[pos++];return(udh[(0x1968+589-0x1bb5)]+(0x228+2952-0xdaf));}static
+ UINT8 wms_ts_decode_udh_port16(const UINT8*udh,wms_udh_s_type*header_ptr){UINT8
+ pos=(0xe33+2535-0x181a);if(udh==NULL||header_ptr==NULL){at_print(LOG_DEBUG,
+"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x609+8445-0x2706);}if(
+udh[pos]<(0x397+86-0x3e9)){at_print(LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x50\x6f\x72\x74\x31\x36\x20\x50\x72\x65\x73\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x64\x61\x74\x61\x20\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x25\x64"
-,udh[pos]);return(0x822+837-0xb67);}header_ptr->header_id=WMS_UDH_PORT_16;pos++;
-header_ptr->u.wap_16.dest_port=udh[pos++];header_ptr->u.wap_16.dest_port=(UINT16
-)(header_ptr->u.wap_16.dest_port<<(0x1433+3838-0x2329))|udh[pos++];header_ptr->u
-.wap_16.orig_port=udh[pos++];header_ptr->u.wap_16.orig_port=(UINT16)(header_ptr
-->u.wap_16.orig_port<<(0x8b2+1231-0xd79))|udh[pos++];return(udh[
-(0x1875+2056-0x207d)]+(0x4c2+3436-0x122d));}static UINT8 
+,udh[pos]);return(0x1110+5499-0x268b);}header_ptr->header_id=WMS_UDH_PORT_16;pos
+++;header_ptr->u.wap_16.dest_port=udh[pos++];header_ptr->u.wap_16.dest_port=(
+UINT16)(header_ptr->u.wap_16.dest_port<<(0x221+1075-0x64c))|udh[pos++];
+header_ptr->u.wap_16.orig_port=udh[pos++];header_ptr->u.wap_16.orig_port=(UINT16
+)(header_ptr->u.wap_16.orig_port<<(0x987+1886-0x10dd))|udh[pos++];return(udh[
+(0x3e6+2454-0xd7c)]+(0x1661+3736-0x24f8));}static UINT8 
 wms_ts_decode_udh_text_formatting(const UINT8*udh,wms_udh_s_type*header_ptr){
-UINT8 pos=(0x749+6386-0x203b);if(udh==NULL||header_ptr==NULL){at_print(LOG_DEBUG
-,"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x1d6b+1479-0x2332);}if(
-udh[pos]<(0x12a1+1211-0x1759)){at_print(LOG_DEBUG,
+UINT8 pos=(0x126b+2937-0x1de4);if(udh==NULL||header_ptr==NULL){at_print(
+LOG_DEBUG,"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return
+(0x57a+4740-0x17fe);}if(udh[pos]<(0x61+9878-0x26f4)){at_print(LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x54\x65\x78\x74\x20\x46\x6f\x72\x6d\x61\x74\x74\x69\x6e\x67\x20\x50\x72\x65\x73\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x64\x61\x74\x61\x20\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x25\x64"
-,udh[pos]);return(0x1269+1218-0x172b);}if(udh[pos]>=(0xccc+5956-0x240c)){
+,udh[pos]);return(0xb64+5935-0x2293);}if(udh[pos]>=(0xcca+3434-0x1a30)){
 header_ptr->u.text_formating.is_color_present=TRUE;}else{header_ptr->u.
 text_formating.is_color_present=FALSE;}pos++;header_ptr->header_id=
 WMS_UDH_TEXT_FORMATING;header_ptr->u.text_formating.start_position=udh[pos++];
 header_ptr->u.text_formating.text_formatting_length=udh[pos++];header_ptr->u.
 text_formating.alignment_type=(wms_udh_alignment_e_type)(udh[pos]&
-(0xfe2+3811-0x1ec2));header_ptr->u.text_formating.font_size=(
-wms_udh_font_size_e_type)((udh[pos]&(0xa28+2669-0x1489))>>(0x8ea+267-0x9f3));
-header_ptr->u.text_formating.style_bold=(udh[pos]&(0x1506+1388-0x1a62))>>
-(0x669+4526-0x1813);header_ptr->u.text_formating.style_italic=(udh[pos]&
-(0xf44+4670-0x2162))>>(0x1d23+543-0x1f3d);header_ptr->u.text_formating.
-style_underlined=(udh[pos]&(0x1a3+7154-0x1d55))>>(0x70a+5420-0x1c30);header_ptr
-->u.text_formating.style_strikethrough=(udh[pos]&(0xaaf+5886-0x212d))>>
-(0x5e6+2100-0xe13);pos++;if(header_ptr->u.text_formating.is_color_present){
+(0x1439+3106-0x2058));header_ptr->u.text_formating.font_size=(
+wms_udh_font_size_e_type)((udh[pos]&(0x153+4650-0x1371))>>(0x1302+4770-0x25a2));
+header_ptr->u.text_formating.style_bold=(udh[pos]&(0xbd9+395-0xd54))>>
+(0x1976+3436-0x26de);header_ptr->u.text_formating.style_italic=(udh[pos]&
+(0x198+1297-0x689))>>(0x1ad2+1929-0x2256);header_ptr->u.text_formating.
+style_underlined=(udh[pos]&(0x1a96+275-0x1b69))>>(0x5f1+4388-0x170f);header_ptr
+->u.text_formating.style_strikethrough=(udh[pos]&(0xc8+9643-0x25f3))>>
+(0x3a+4507-0x11ce);pos++;if(header_ptr->u.text_formating.is_color_present){
 header_ptr->u.text_formating.text_color_foreground=(wms_udh_text_color_e_type)(
-udh[pos]&(0x1afa+2611-0x251e));header_ptr->u.text_formating.
-text_color_background=(wms_udh_text_color_e_type)((udh[pos]&(0xc50+3975-0x1ae7))
->>(0xc6d+1731-0x132c));pos++;}return(udh[(0x20cf+1384-0x2637)]+
-(0x572+4314-0x164b));}static UINT8 wms_ts_decode_udh_pre_def_sound(const UINT8*
-udh,wms_udh_s_type*header_ptr){UINT8 pos=(0x91f+3763-0x17d2);if(udh==NULL||
-header_ptr==NULL){at_print(LOG_DEBUG,
-"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x14a1+2194-0x1d33);}if(
-udh[pos]<(0x4fa+6149-0x1cfd)){at_print(LOG_DEBUG,
+udh[pos]&(0x44c+3364-0x1161));header_ptr->u.text_formating.text_color_background
+=(wms_udh_text_color_e_type)((udh[pos]&(0x4f0+4907-0x172b))>>(0x1990+558-0x1bba)
+);pos++;}return(udh[(0xcab+4145-0x1cdc)]+(0x6ab+5401-0x1bc3));}static UINT8 
+wms_ts_decode_udh_pre_def_sound(const UINT8*udh,wms_udh_s_type*header_ptr){UINT8
+ pos=(0x422+1879-0xb79);if(udh==NULL||header_ptr==NULL){at_print(LOG_DEBUG,
+"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0xa60+6028-0x21ec);}if(
+udh[pos]<(0x9da+1656-0x1050)){at_print(LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x50\x72\x65\x20\x44\x65\x66\x69\x6e\x65\x64\x20\x53\x6f\x75\x6e\x64\x20\x50\x72\x65\x73\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x64\x61\x74\x61\x20\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x25\x64"
-,udh[pos]);return(0x6f0+2896-0x1240);}pos++;header_ptr->header_id=
+,udh[pos]);return(0x154+9349-0x25d9);}pos++;header_ptr->header_id=
 WMS_UDH_PRE_DEF_SOUND;header_ptr->u.pre_def_sound.position=udh[pos++];header_ptr
-->u.pre_def_sound.snd_number=udh[pos++];return(udh[(0x1621+250-0x171b)]+
-(0x52+5055-0x1410));}static UINT8 wms_ts_decode_udh_user_def_sound(const UINT8*
-udh,wms_udh_s_type*header_ptr){UINT8 pos=(0x1d87+1840-0x24b7),j;if(udh==NULL||
+->u.pre_def_sound.snd_number=udh[pos++];return(udh[(0x726+3328-0x1426)]+
+(0x17c5+3332-0x24c8));}static UINT8 wms_ts_decode_udh_user_def_sound(const UINT8
+*udh,wms_udh_s_type*header_ptr){UINT8 pos=(0x16e8+2011-0x1ec3),j;if(udh==NULL||
 header_ptr==NULL){at_print(LOG_DEBUG,
-"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x115f+3858-0x2071);}if(
-udh[pos]==(0xf62+4027-0x1f1d)){at_print(LOG_DEBUG,
+"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x14e7+2617-0x1f20);}if(
+udh[pos]==(0x11f+7096-0x1cd7)){at_print(LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x55\x73\x65\x72\x20\x44\x65\x66\x69\x6e\x65\x64\x20\x53\x6f\x75\x6e\x64\x20\x50\x72\x65\x73\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x6e\x6f\x20\x44\x61\x74\x61"
-);return(0x306+5430-0x183c);}header_ptr->header_id=WMS_UDH_USER_DEF_SOUND;
-header_ptr->u.user_def_sound.data_length=udh[pos++]-(0x432+4573-0x160e);
+);return(0x507+4952-0x185f);}header_ptr->header_id=WMS_UDH_USER_DEF_SOUND;
+header_ptr->u.user_def_sound.data_length=udh[pos++]-(0x74a+3620-0x156d);
 header_ptr->u.user_def_sound.position=udh[pos++];if(header_ptr->u.user_def_sound
 .data_length>WMS_UDH_MAX_SND_SIZE){at_print(LOG_DEBUG,
 "\x4d\x61\x78\x20\x53\x69\x7a\x65\x20\x45\x78\x63\x65\x65\x64\x20\x48\x65\x61\x64\x65\x72\x20\x69\x64\x20\x25\x64\x20"
-,header_ptr->header_id);return(0xcd+4727-0x1344);}memset(header_ptr->u.
-user_def_sound.user_def_sound,(0x2012+1604-0x2557),WMS_UDH_MAX_SND_SIZE);for(j=
-(0x1c72+523-0x1e7d);j<header_ptr->u.user_def_sound.data_length;j++)header_ptr->u
-.user_def_sound.user_def_sound[j]=udh[pos++];return pos;}static UINT8 
+,header_ptr->header_id);return(0xe5f+1276-0x135b);}memset(header_ptr->u.
+user_def_sound.user_def_sound,(0xd99+3886-0x1bc8),WMS_UDH_MAX_SND_SIZE);for(j=
+(0x733+464-0x903);j<header_ptr->u.user_def_sound.data_length;j++)header_ptr->u.
+user_def_sound.user_def_sound[j]=udh[pos++];return pos;}static UINT8 
 wms_ts_decode_udh_pre_def_anim(const UINT8*udh,wms_udh_s_type*header_ptr){UINT8 
-pos=(0x913+454-0xad9);if(udh==NULL||header_ptr==NULL){at_print(LOG_DEBUG,
-"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x14d0+4351-0x25cf);}if(
-udh[pos]!=(0x77f+45-0x7aa)){at_print(LOG_DEBUG,
+pos=(0x5d8+8228-0x25fc);if(udh==NULL||header_ptr==NULL){at_print(LOG_DEBUG,
+"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0xc09+1762-0x12eb);}if(
+udh[pos]!=(0x1f8a+1818-0x26a2)){at_print(LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x50\x72\x65\x20\x44\x65\x66\x69\x6e\x65\x64\x20\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x20\x50\x72\x65\x73\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x64\x61\x74\x61\x20\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x25\x64"
-,udh[pos]);return(0x137a+1071-0x17a9);}pos++;header_ptr->header_id=
+,udh[pos]);return(0xa23+5575-0x1fea);}pos++;header_ptr->header_id=
 WMS_UDH_PRE_DEF_ANIM;header_ptr->u.pre_def_anim.position=udh[pos++];header_ptr->
 u.pre_def_anim.animation_number=udh[pos++];return pos;}static UINT8 
 wms_ts_decode_udh_large_anim(const UINT8*udh,wms_udh_s_type*header_ptr){UINT8 
-pos=(0x1b0d+2003-0x22e0),j,k;if(udh==NULL||header_ptr==NULL){at_print(LOG_DEBUG,
-"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x8e0+6175-0x20ff);}if(
-udh[pos]!=(WMS_UDH_ANIM_NUM_BITMAPS*WMS_UDH_LARGE_BITMAP_SIZE+
-(0x757+7153-0x2347))){at_print(LOG_DEBUG,
+pos=(0x5ff+3616-0x141f),j,k;if(udh==NULL||header_ptr==NULL){at_print(LOG_DEBUG,
+"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x10c9+3294-0x1da7);}if(
+udh[pos]!=(WMS_UDH_ANIM_NUM_BITMAPS*WMS_UDH_LARGE_BITMAP_SIZE+(0x360+2669-0xdcc)
+)){at_print(LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x4c\x61\x72\x67\x65\x20\x44\x65\x66\x69\x6e\x65\x64\x20\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x20\x50\x72\x65\x73\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x64\x61\x74\x61\x20\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x25\x64"
-,udh[pos]);return(0xaa0+2145-0x1301);}header_ptr->header_id=WMS_UDH_LARGE_ANIM;
-pos++;header_ptr->u.large_anim.position=udh[pos++];for(j=(0x1af6+2618-0x2530);j<
-WMS_UDH_ANIM_NUM_BITMAPS;j++)for(k=(0x94a+3586-0x174c);k<
+,udh[pos]);return(0x12ed+3687-0x2154);}header_ptr->header_id=WMS_UDH_LARGE_ANIM;
+pos++;header_ptr->u.large_anim.position=udh[pos++];for(j=(0x1de1+1295-0x22f0);j<
+WMS_UDH_ANIM_NUM_BITMAPS;j++)for(k=(0x1a77+1719-0x212e);k<
 WMS_UDH_LARGE_BITMAP_SIZE;k++)header_ptr->u.large_anim.data[j][k]=udh[pos++];
 return pos;}static UINT8 wms_ts_decode_udh_small_anim(const UINT8*udh,
-wms_udh_s_type*header_ptr){UINT8 pos=(0xc55+710-0xf1b),j,k;if(udh==NULL||
+wms_udh_s_type*header_ptr){UINT8 pos=(0x40f+1109-0x864),j,k;if(udh==NULL||
 header_ptr==NULL){at_print(LOG_DEBUG,
-"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0xfcd+1448-0x1575);}if(
+"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x1abd+1494-0x2093);}if(
 udh[pos]!=(WMS_UDH_ANIM_NUM_BITMAPS*WMS_UDH_SMALL_BITMAP_SIZE+
-(0x197a+2329-0x2292))){at_print(LOG_DEBUG,
+(0x1324+769-0x1624))){at_print(LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x4c\x61\x72\x67\x65\x20\x44\x65\x66\x69\x6e\x65\x64\x20\x41\x6e\x69\x6d\x61\x74\x69\x6f\x6e\x20\x50\x72\x65\x73\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x64\x61\x74\x61\x20\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x25\x64"
-,udh[pos]);return(0x6e2+2663-0x1149);}header_ptr->header_id=WMS_UDH_SMALL_ANIM;
-pos++;header_ptr->u.small_anim.position=udh[pos++];for(j=(0x121+2129-0x972);j<
-WMS_UDH_ANIM_NUM_BITMAPS;j++)for(k=(0x1276+3546-0x2050);k<
+,udh[pos]);return(0x15c+2647-0xbb3);}header_ptr->header_id=WMS_UDH_SMALL_ANIM;
+pos++;header_ptr->u.small_anim.position=udh[pos++];for(j=(0x4e6+8662-0x26bc);j<
+WMS_UDH_ANIM_NUM_BITMAPS;j++)for(k=(0x1dcb+1439-0x236a);k<
 WMS_UDH_SMALL_BITMAP_SIZE;k++)header_ptr->u.small_anim.data[j][k]=udh[pos++];
 return pos;}static UINT8 wms_ts_decode_udh_large_picture(const UINT8*udh,
-wms_udh_s_type*header_ptr){UINT8 pos=(0x1185+3194-0x1dff),j;if(udh==NULL||
+wms_udh_s_type*header_ptr){UINT8 pos=(0xb55+3121-0x1786),j;if(udh==NULL||
 header_ptr==NULL){at_print(LOG_DEBUG,
-"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x8d0+7662-0x26be);}if(
-udh[pos]!=WMS_UDH_LARGE_PIC_SIZE+(0x86b+1731-0xf2d)){at_print(LOG_DEBUG,
+"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x8d5+32-0x8f5);}if(udh[
+pos]!=WMS_UDH_LARGE_PIC_SIZE+(0x70b+637-0x987)){at_print(LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x4c\x61\x72\x67\x65\x20\x50\x69\x63\x74\x75\x72\x65\x20\x50\x72\x65\x73\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x64\x61\x74\x61\x20\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x25\x64"
-,udh[pos]);return(0x1ef6+1401-0x246f);}header_ptr->header_id=
+,udh[pos]);return(0x1502+1949-0x1c9f);}header_ptr->header_id=
 WMS_UDH_LARGE_PICTURE;pos++;header_ptr->u.large_picture.position=udh[pos++];for(
-j=(0xa5d+3884-0x1989);j<WMS_UDH_LARGE_PIC_SIZE;j++)header_ptr->u.large_picture.
+j=(0x1d08+1797-0x240d);j<WMS_UDH_LARGE_PIC_SIZE;j++)header_ptr->u.large_picture.
 data[j]=udh[pos++];return pos;}static UINT8 wms_ts_decode_udh_small_picture(
-const UINT8*udh,wms_udh_s_type*header_ptr){UINT8 pos=(0xffc+1816-0x1714),j;if(
+const UINT8*udh,wms_udh_s_type*header_ptr){UINT8 pos=(0x19f6+2666-0x2460),j;if(
 udh==NULL||header_ptr==NULL){at_print(LOG_DEBUG,
-"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x2cd+4774-0x1573);}if(
-udh[pos]!=WMS_UDH_SMALL_PIC_SIZE+(0x17c1+1513-0x1da9)){at_print(LOG_DEBUG,
+"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x106d+1845-0x17a2);}if(
+udh[pos]!=WMS_UDH_SMALL_PIC_SIZE+(0xf70+1688-0x1607)){at_print(LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x53\x6d\x61\x6c\x6c\x20\x50\x69\x63\x74\x75\x72\x65\x20\x50\x72\x65\x73\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x64\x61\x74\x61\x20\x6c\x65\x67\x6e\x74\x68\x20\x3d\x20\x25\x64"
-,udh[pos]);return(0x534+3559-0x131b);}header_ptr->header_id=
+,udh[pos]);return(0x16ea+220-0x17c6);}header_ptr->header_id=
 WMS_UDH_SMALL_PICTURE;pos++;header_ptr->u.small_picture.position=udh[pos++];for(
-j=(0x1405+388-0x1589);j<WMS_UDH_SMALL_PIC_SIZE;j++)header_ptr->u.small_picture.
+j=(0x8c5+1293-0xdd2);j<WMS_UDH_SMALL_PIC_SIZE;j++)header_ptr->u.small_picture.
 data[j]=udh[pos++];return pos;}static UINT8 wms_ts_decode_udh_var_picture(const 
-UINT8*udh,wms_udh_s_type*header_ptr){UINT8 pos=(0xb04+5098-0x1eee),j,pic_size;if
+UINT8*udh,wms_udh_s_type*header_ptr){UINT8 pos=(0x61f+6820-0x20c3),j,pic_size;if
 (udh==NULL||header_ptr==NULL){at_print(LOG_DEBUG,
-"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x35d+5991-0x1ac4);}if(
-udh[pos]>WMS_UDH_VAR_PIC_SIZE+(0xb4c+5495-0x20c0)){at_print(LOG_DEBUG,
+"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x1676+893-0x19f3);}if(
+udh[pos]>WMS_UDH_VAR_PIC_SIZE+(0x1c21+486-0x1e04)){at_print(LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x56\x61\x72\x20\x50\x69\x63\x74\x75\x72\x65\x20\x50\x72\x65\x73\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x64\x61\x74\x61\x20\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x25\x64"
-,udh[pos]);return(0x9bf+5301-0x1e74);}if((udh[pos]-(0x9f+6040-0x1834))!=(udh[pos
-+(0x58+228-0x13a)]*udh[pos+(0x90+2684-0xb09)])){at_print(LOG_DEBUG,
+,udh[pos]);return(0x58+4248-0x10f0);}if((udh[pos]-(0x151b+2597-0x1f3d))!=(udh[
+pos+(0xaf7+989-0xed2)]*udh[pos+(0x707+413-0x8a1)])){at_print(LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x56\x61\x72\x20\x50\x69\x63\x74\x75\x72\x65\x2c\x20\x70\x69\x63\x20\x73\x69\x7a\x65\x20\x76\x61\x6c\x75\x65\x20\x6d\x69\x73\x6d\x61\x74\x63\x68\x20\x77\x69\x74\x68\x20\x68\x65\x69\x67\x74\x20\x61\x6e\x64\x20\x77\x65\x69\x67\x68\x74"
-);return(0x6a5+4407-0x17dc);}pic_size=udh[pos++]-(0x17ff+2015-0x1fdb);header_ptr
+);return(0xa80+5315-0x1f43);}pic_size=udh[pos++]-(0x167+6185-0x198d);header_ptr
 ->header_id=WMS_UDH_VAR_PICTURE;header_ptr->u.var_picture.position=udh[pos++];
-header_ptr->u.var_picture.width=(UINT8)(udh[pos++]*(0xeb5+5823-0x256c));
-header_ptr->u.var_picture.height=udh[pos++];for(j=(0xefc+4148-0x1f30);j<pic_size
+header_ptr->u.var_picture.width=(UINT8)(udh[pos++]*(0x1ac+3146-0xdee));
+header_ptr->u.var_picture.height=udh[pos++];for(j=(0xadd+4023-0x1a94);j<pic_size
 &&j<WMS_UDH_VAR_PIC_SIZE;j++)header_ptr->u.var_picture.data[j]=udh[pos++];return
  pos;}static UINT8 wms_ts_decode_udh_user_prompt(const UINT8*udh,wms_udh_s_type*
-header_ptr){UINT8 pos=(0x62+4360-0x116a);if(udh==NULL||header_ptr==NULL){
+header_ptr){UINT8 pos=(0x893+5402-0x1dad);if(udh==NULL||header_ptr==NULL){
 at_print(LOG_DEBUG,"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return
-(0x675+1297-0xb86);}if(udh[pos]<(0x72a+4776-0x19d1)){at_print(LOG_DEBUG,
+(0x1741+1888-0x1ea1);}if(udh[pos]<(0x295+7992-0x21cc)){at_print(LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x55\x73\x65\x72\x20\x50\x72\x6f\x6d\x70\x74\x20\x70\x72\x65\x73\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x64\x61\x74\x61\x20\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x25\x64"
-,udh[pos]);return(0xda6+4476-0x1f22);}pos++;header_ptr->header_id=
+,udh[pos]);return(0x319+7583-0x20b8);}pos++;header_ptr->header_id=
 WMS_UDH_USER_PROMPT;header_ptr->u.user_prompt.number_of_objects=udh[pos++];
-return(udh[(0xbdb+3174-0x1841)]+(0x734+4389-0x1858));}static UINT8 
+return(udh[(0xab1+7088-0x2661)]+(0x6e1+5065-0x1aa9));}static UINT8 
 wms_ts_decode_udh_eo(const UINT8*udh,UINT8 first_segment,wms_udh_s_type*
-header_ptr){UINT8 pos=(0x1324+4391-0x244b),udh_length;if(udh==NULL||header_ptr==
+header_ptr){UINT8 pos=(0x525+5766-0x1bab),udh_length;if(udh==NULL||header_ptr==
 NULL){at_print(LOG_DEBUG,"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return
-(0x10b9+3096-0x1cd1);}if(udh[pos]==(0x1fe9+224-0x20c9)){at_print(LOG_DEBUG,
+(0x18a+7070-0x1d28);}if(udh[pos]==(0xdff+966-0x11c5)){at_print(LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x45\x78\x74\x65\x6e\x64\x65\x64\x20\x4f\x62\x6a\x65\x63\x74\x20\x70\x72\x65\x73\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x6e\x6f\x20\x44\x61\x74\x61"
-);return(0x381+4135-0x13a8);}udh_length=udh[pos++];header_ptr->header_id=
+);return(0x4a2+6564-0x1e46);}udh_length=udh[pos++];header_ptr->header_id=
 WMS_UDH_EXTENDED_OBJECT;header_ptr->u.eo.first_segment=first_segment;if(
 first_segment==TRUE){if(udh_length<WMS_UDH_OCTETS_EO_HEADER){return
-(0x16c8+2719-0x2167);}header_ptr->u.eo.reference=udh[pos++];header_ptr->u.eo.
-length=udh[pos++]<<(0x13df+2410-0x1d41);header_ptr->u.eo.length|=udh[pos++];
+(0xc2d+3141-0x1872);}header_ptr->u.eo.reference=udh[pos++];header_ptr->u.eo.
+length=udh[pos++]<<(0x370+4987-0x16e3);header_ptr->u.eo.length|=udh[pos++];
 header_ptr->u.eo.control=udh[pos++];header_ptr->u.eo.type=(wms_udh_eo_id_e_type)
-udh[pos++];header_ptr->u.eo.position=udh[pos++]<<(0x116+1337-0x647);header_ptr->
-u.eo.position|=udh[pos++];}header_ptr->u.eo.content.length=(udh_length-pos)+
-(0x139b+2834-0x1eac);memcpy(header_ptr->u.eo.content.data,udh+pos,header_ptr->u.
+udh[pos++];header_ptr->u.eo.position=udh[pos++]<<(0xc80+4329-0x1d61);header_ptr
+->u.eo.position|=udh[pos++];}header_ptr->u.eo.content.length=(udh_length-pos)+
+(0x12d+5712-0x177c);memcpy(header_ptr->u.eo.content.data,udh+pos,header_ptr->u.
 eo.content.length);pos+=header_ptr->u.eo.content.length;return pos;}static UINT8
  wms_ts_decode_udh_rfc822(const UINT8*udh,wms_udh_s_type*header_ptr){UINT8 pos=
-(0x153c+4433-0x268d);if(udh==NULL||header_ptr==NULL){at_print(LOG_DEBUG,
-"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x529+6222-0x1d77);}if(
-udh[pos]<(0x700+5162-0x1b29)){at_print(LOG_DEBUG,
+(0xb0a+5626-0x2104);if(udh==NULL||header_ptr==NULL){at_print(LOG_DEBUG,
+"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x738+41-0x761);}if(udh[
+pos]<(0xcd5+5360-0x21c4)){at_print(LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x52\x66\x63\x38\x32\x32\x20\x50\x72\x65\x73\x65\x6e\x74\x20\x77\x69\x74\x68\x20\x69\x6e\x76\x61\x6c\x69\x64\x20\x64\x61\x74\x61\x20\x6c\x65\x6e\x67\x74\x68\x20\x3d\x20\x25\x64"
-,udh[pos]);return(0x713+7995-0x264e);}pos++;header_ptr->header_id=WMS_UDH_RFC822
-;header_ptr->u.rfc822.header_length=udh[pos++];return(udh[(0x8a2+172-0x94e)]+
-(0x655+3540-0x1428));}static UINT8 wms_ts_decode_udh_nat_lang_ss(const UINT8*udh
-,wms_udh_s_type*header_ptr){UINT8 pos=(0x1411+1323-0x193c);if(udh==NULL||
-header_ptr==NULL){return(0x848+7573-0x25dd);}if(udh[pos]!=
-WMS_UDH_OCTETS_NAT_LANG_SS){return(0x9ac+4545-0x1b6d);}pos++;header_ptr->
+,udh[pos]);return(0x3a1+1441-0x942);}pos++;header_ptr->header_id=WMS_UDH_RFC822;
+header_ptr->u.rfc822.header_length=udh[pos++];return(udh[(0x91c+7418-0x2616)]+
+(0xf1+1595-0x72b));}static UINT8 wms_ts_decode_udh_nat_lang_ss(const UINT8*udh,
+wms_udh_s_type*header_ptr){UINT8 pos=(0x2d9+4736-0x1559);if(udh==NULL||
+header_ptr==NULL){return(0x13a9+1325-0x18d6);}if(udh[pos]!=
+WMS_UDH_OCTETS_NAT_LANG_SS){return(0x1912+291-0x1a35);}pos++;header_ptr->
 header_id=WMS_UDH_NAT_LANG_SS;if((WMS_UDH_NAT_LANG_TURKISH>udh[pos])||(
-WMS_UDH_NAT_LANG_PORTUGUESE<udh[pos])){return(0x1463+1178-0x18fd);}header_ptr->u
-.nat_lang_ss.nat_lang_id=(wms_udh_nat_lang_id_e_type)udh[pos++];return(udh[
-(0x1136+1605-0x177b)]+(0x24cf+300-0x25fa));}static UINT8 
+WMS_UDH_NAT_LANG_PORTUGUESE<udh[pos])){return(0x2418+346-0x2572);}header_ptr->u.
+nat_lang_ss.nat_lang_id=(wms_udh_nat_lang_id_e_type)udh[pos++];return(udh[
+(0x782+6326-0x2038)]+(0x3c0+7161-0x1fb8));}static UINT8 
 wms_ts_decode_udh_nat_lang_ls(const UINT8*udh,wms_udh_s_type*header_ptr){UINT8 
-pos=(0x70a+5992-0x1e72);if(udh==NULL||header_ptr==NULL){return
-(0x14b4+2573-0x1ec1);}if(udh[pos]!=WMS_UDH_OCTETS_NAT_LANG_LS){return
-(0xe9b+433-0x104c);}pos++;header_ptr->header_id=WMS_UDH_NAT_LANG_LS;if((
-WMS_UDH_NAT_LANG_TURKISH>udh[pos])||(WMS_UDH_NAT_LANG_PORTUGUESE<udh[pos])){
-return(0x53b+6514-0x1ead);}header_ptr->u.nat_lang_ls.nat_lang_id=(
-wms_udh_nat_lang_id_e_type)udh[pos++];return(udh[(0x7a5+4875-0x1ab0)]+
-(0x11a1+4800-0x2460));}static UINT8 wms_ts_decode_udh_other(const UINT8*udh,
-wms_udh_s_type*header_ptr){UINT8 pos=(0xb5c+2816-0x165c),i=(0xf10+2733-0x19bd);
-if(udh==NULL||header_ptr==NULL){at_print(LOG_DEBUG,
-"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x2a1+9118-0x263f);}if(
-udh[pos+(0x675+4954-0x19ce)]>WMS_UDH_OTHER_SIZE){at_print(LOG_DEBUG,
+pos=(0xd3f+441-0xef8);if(udh==NULL||header_ptr==NULL){return(0x14c9+641-0x174a);
+}if(udh[pos]!=WMS_UDH_OCTETS_NAT_LANG_LS){return(0x14d5+1984-0x1c95);}pos++;
+header_ptr->header_id=WMS_UDH_NAT_LANG_LS;if((WMS_UDH_NAT_LANG_TURKISH>udh[pos])
+||(WMS_UDH_NAT_LANG_PORTUGUESE<udh[pos])){return(0x2ca+4478-0x1448);}header_ptr
+->u.nat_lang_ls.nat_lang_id=(wms_udh_nat_lang_id_e_type)udh[pos++];return(udh[
+(0x1c47+2011-0x2422)]+(0xc32+6169-0x244a));}static UINT8 wms_ts_decode_udh_other
+(const UINT8*udh,wms_udh_s_type*header_ptr){UINT8 pos=(0x1930+2146-0x2192),i=
+(0x1bcd+342-0x1d23);if(udh==NULL||header_ptr==NULL){at_print(LOG_DEBUG,
+"\x75\x64\x68\x20\x69\x73\x20\x4e\x55\x4c\x4c");return(0x997+2842-0x14b1);}if(
+udh[pos+(0x145+6568-0x1aec)]>WMS_UDH_OTHER_SIZE){at_print(LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x48\x65\x61\x64\x65\x72\x20\x4f\x74\x68\x65\x72\x20\x64\x61\x74\x61\x20\x6c\x65\x6e\x67\x74\x68\x20\x65\x78\x63\x65\x65\x64\x69\x6e\x67\x20\x32\x32\x36"
-);return(0xa9+2155-0x914);}header_ptr->header_id=(wms_udh_id_e_type)udh[pos];
+);return(0x106f+1779-0x1762);}header_ptr->header_id=(wms_udh_id_e_type)udh[pos];
 header_ptr->u.other.header_id=(wms_udh_id_e_type)udh[pos++];header_ptr->u.other.
-header_length=udh[pos++];for(i=(0x7b7+6818-0x2259);i<header_ptr->u.other.
+header_length=udh[pos++];for(i=(0x1013+3787-0x1ede);i<header_ptr->u.other.
 header_length;i++){header_ptr->u.other.data[i]=udh[pos++];}return pos;}UINT8 
 wms_ts_decode_user_data_header(const UINT8 len,const UINT8*data,UINT8*
-num_headers_ptr,wms_udh_s_type*udh_ptr){UINT8 pos=(0xea1+3673-0x1cfa);UINT8 
-header_length=(0x16fa+1392-0x1c6a),num_headers=(0x5df+3494-0x1385);UINT8 udhl;
-UINT8 first_segment=TRUE;if(data==NULL||len==(0x613+4360-0x171b)||data[pos]==
-(0x5+5916-0x1721)||num_headers_ptr==NULL||udh_ptr==NULL){at_print(LOG_DEBUG,
+num_headers_ptr,wms_udh_s_type*udh_ptr){UINT8 pos=(0x1ab3+2026-0x229d);UINT8 
+header_length=(0x3a0+5251-0x1823),num_headers=(0x1b99+2319-0x24a8);UINT8 udhl;
+UINT8 first_segment=TRUE;if(data==NULL||len==(0xbdb+1725-0x1298)||data[pos]==
+(0x2f8+3076-0xefc)||num_headers_ptr==NULL||udh_ptr==NULL){at_print(LOG_DEBUG,
 "\x6e\x75\x6c\x6c\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x64\x65\x63\x6f\x64\x65\x5f\x75\x73\x65\x72\x5f\x64\x61\x74\x61\x5f\x68\x65\x61\x64\x65\x72"
-);return(0x8ef+5906-0x2001);}udhl=data[pos];pos++;while((pos<udhl)&&(num_headers
+);return(0x535+4325-0x161a);}udhl=data[pos];pos++;while((pos<udhl)&&(num_headers
 <WMS_MAX_UD_HEADERS)){switch(data[pos++]){case WMS_UDH_CONCAT_8:header_length=
 wms_ts_decode_udh_concat_8(data+pos,&udh_ptr[num_headers]);break;case 
 WMS_UDH_CONCAT_16:header_length=wms_ts_decode_udh_concat16(data+pos,&udh_ptr[
@@ -1870,66 +1864,66 @@
 data+pos,&udh_ptr[num_headers]);break;}if((UINT16)pos+(UINT16)header_length>
 WMS_MAX_LEN){at_print(LOG_DEBUG,
 "\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x62\x79\x74\x65\x73\x20\x64\x65\x63\x6f\x64\x65\x64\x20\x68\x61\x73\x20\x65\x78\x63\x65\x65\x64\x65\x64\x20\x55\x44\x48\x4c\x20\x76\x61\x6c\x75\x65\x20\x6f\x66\x20\x25\x64"
-,udhl);return(0x86d+2916-0x13d1);}else if(header_length!=(0x407+6886-0x1eed)){
-pos+=header_length;num_headers++;}else{at_print(LOG_DEBUG,
+,udhl);return(0x14b+2530-0xb2d);}else if(header_length!=(0x1e46+840-0x218e)){pos
++=header_length;num_headers++;}else{at_print(LOG_DEBUG,
 "\x42\x61\x64\x20\x55\x44\x48\x3a\x20\x70\x6f\x73\x3d\x25\x64\x2c\x20\x64\x61\x74\x61\x5b\x70\x6f\x73\x5d\x3d\x25\x64"
-,pos,data[pos]);*num_headers_ptr=(0xf1+5369-0x15ea);return(0x1f78+540-0x2194);}}
-if(num_headers>=WMS_MAX_UD_HEADERS){at_print(LOG_DEBUG,
+,pos,data[pos]);*num_headers_ptr=(0xba6+5203-0x1ff9);return(0x1dcb+1635-0x242e);
+}}if(num_headers>=WMS_MAX_UD_HEADERS){at_print(LOG_DEBUG,
 "\x64\x65\x63\x6f\x64\x65\x5f\x75\x64\x68\x3a\x20\x4e\x75\x6d\x20\x48\x65\x61\x64\x65\x72\x73\x20\x68\x61\x73\x20\x65\x78\x63\x65\x65\x64\x65\x64\x20\x57\x4d\x53\x5f\x4d\x41\x58\x5f\x55\x44\x5f\x48\x45\x41\x44\x45\x52\x53"
-);pos=udhl+(0xb39+1095-0xf7f);}if(pos!=(udhl+(0x322+3297-0x1002))){at_print(
+);pos=udhl+(0x65a+2087-0xe80);}if(pos!=(udhl+(0x1924+545-0x1b44))){at_print(
 LOG_DEBUG,
 "\x53\x4d\x53\x20\x55\x44\x48\x20\x63\x6f\x75\x6c\x64\x20\x6e\x6f\x74\x20\x62\x65\x20\x64\x65\x63\x6f\x64\x65\x64"
-);num_headers=(0x2076+624-0x22e6);udhl=(0x943+2827-0x144e);}if(num_headers>
-(0x959+3306-0x1643)){*num_headers_ptr=num_headers;}return udhl;}UINT8 
+);num_headers=(0x1790+3813-0x2675);udhl=(0x9a6+925-0xd43);}if(num_headers>
+(0x6f6+6547-0x2089)){*num_headers_ptr=num_headers;}return udhl;}UINT8 
 wms_ts_decode_gw_user_data(const wms_gw_dcs_s_type*dcs,const UINT8 len,const 
 UINT8*data,const UINT8 user_data_header_present,wms_gw_user_data_s_type*
-user_data){UINT8 i,pos=(0x1a25+1021-0x1e22);UINT8 fill_bits=(0x1c+9965-0x2709);
-UINT8 user_data_length;UINT8 user_data_header_length=(0xf33+4227-0x1fb6);if(dcs
+user_data){UINT8 i,pos=(0x5ca+8118-0x2580);UINT8 fill_bits=(0x2ff+2982-0xea5);
+UINT8 user_data_length;UINT8 user_data_header_length=(0x19b1+2381-0x22fe);if(dcs
 ==NULL||data==NULL||user_data==NULL){at_print(LOG_DEBUG,
 "\x6e\x75\x6c\x6c\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x64\x65\x63\x6f\x64\x65\x5f\x67\x77\x5f\x75\x73\x65\x72\x5f\x64\x61\x74\x61"
-);return(0x212+6111-0x19f1);}(void)memset(user_data,(0x13b5+2481-0x1d66),sizeof(
-wms_gw_user_data_s_type));if(len==(0x62+1075-0x495)){return(0x1890+236-0x197c);}
-if(dcs->alphabet==WMS_GW_ALPHABET_7_BIT_DEFAULT){if(len>WMS_SMS_UDL_MAX_7_BIT){
+);return(0x1404+3591-0x220b);}(void)memset(user_data,(0x22b7+203-0x2382),sizeof(
+wms_gw_user_data_s_type));if(len==(0x6f7+3686-0x155d)){return(0xa42+1181-0xedf);
+}if(dcs->alphabet==WMS_GW_ALPHABET_7_BIT_DEFAULT){if(len>WMS_SMS_UDL_MAX_7_BIT){
 at_print(LOG_DEBUG,
 "\x75\x73\x65\x72\x20\x64\x61\x74\x61\x20\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x6d\x61\x78\x20\x76\x61\x6c\x75\x65\x20\x66\x6f\x72\x20\x67\x77\x20\x37\x2d\x62\x69\x74\x20\x61\x6c\x70\x68\x61\x62\x65\x74"
-);return(0xf90+5786-0x262a);}user_data_length=len;if(user_data_header_present){
+);return(0x1c2+4767-0x1461);}user_data_length=len;if(user_data_header_present){
 user_data_header_length=wms_ts_decode_user_data_header(data[pos],data+pos,&
 user_data->num_headers,user_data->headers);}if(user_data_header_length>len){
 at_print(LOG_DEBUG,
 "\x75\x73\x65\x72\x20\x64\x61\x74\x61\x20\x68\x65\x61\x64\x65\x72\x20\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x74\x6f\x74\x61\x6c\x20\x6c\x65\x6e\x67\x74\x68"
-);return(0x2199+156-0x2235);}if(user_data_header_length>(0x2120+1352-0x2668)){
-fill_bits=((len*(0x2447+362-0x25aa))-((user_data_header_length+
-(0x8fa+3222-0x158f))*(0x238a+787-0x2695)))%(0x80a+858-0xb5d);user_data_length=(
-UINT8)(((len*(0x71+7882-0x1f34))-((user_data_header_length+(0x14a1+2325-0x1db5))
-*(0x229c+629-0x2509)))/(0x1398+2503-0x1d58));pos=user_data_header_length+
-(0x2a8+5396-0x17bb);if(fill_bits!=(0x1c57+2317-0x2564)){fill_bits=
-(0xba3+2524-0x1577)-fill_bits;}}i=wms_ts_unpack_gw_7_bit_chars(&data[pos],
+);return(0x16b+342-0x2c1);}if(user_data_header_length>(0x1b54+764-0x1e50)){
+fill_bits=((len*(0x40c+5654-0x1a1b))-((user_data_header_length+
+(0x34c+2309-0xc50))*(0x16d0+2071-0x1edf)))%(0x56+3113-0xc78);user_data_length=(
+UINT8)(((len*(0x385+2940-0xefa))-((user_data_header_length+(0xbe8+5210-0x2041))*
+(0x1d1d+1868-0x2461)))/(0x1489+558-0x16b0));pos=user_data_header_length+
+(0x36d+955-0x727);if(fill_bits!=(0x6fd+6071-0x1eb4)){fill_bits=
+(0xff1+5715-0x263c)-fill_bits;}}i=wms_ts_unpack_gw_7_bit_chars(&data[pos],
 user_data_length,WMS_MAX_LEN,fill_bits,user_data->sm_data);user_data->sm_len=
 user_data_length;}else{if(len>WMS_SMS_UDL_MAX_8_BIT){at_print(LOG_DEBUG,
 "\x75\x73\x65\x72\x20\x64\x61\x74\x61\x20\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x6d\x61\x78\x20\x76\x61\x6c\x75\x65\x20\x66\x6f\x72\x20\x38\x2d\x62\x69\x74\x20\x63\x68\x61\x72\x61\x72\x61\x63\x74\x65\x72\x73"
-);return(0x2bf+4375-0x13d6);}user_data_length=len;if(user_data_header_present){
+);return(0xc06+1367-0x115d);}user_data_length=len;if(user_data_header_present){
 user_data_header_length=wms_ts_decode_user_data_header(data[pos],data+pos,&
 user_data->num_headers,user_data->headers);if(user_data_header_length>len){
 at_print(LOG_DEBUG,
 "\x75\x73\x65\x72\x20\x64\x61\x74\x61\x20\x68\x65\x61\x64\x65\x72\x20\x6c\x65\x6e\x67\x74\x68\x20\x3e\x20\x74\x6f\x74\x61\x6c\x20\x6c\x65\x6e\x67\x74\x68"
-);return(0x14cd+1744-0x1b9d);}pos+=user_data_header_length+(0xebf+1177-0x1357);
-user_data_length=(len-user_data_header_length)-(0x1219+3637-0x204d);}memcpy(
+);return(0xd18+2924-0x1884);}pos+=user_data_header_length+(0x5fa+693-0x8ae);
+user_data_length=(len-user_data_header_length)-(0xc5f+5532-0x21fa);}memcpy(
 user_data->sm_data,data+pos,user_data_length);user_data->sm_len=user_data_length
 ;i=(UINT8)user_data->sm_len;}pos+=i;return pos;}wms_status_e_type 
 wms_ts_decode_deliver(const T_zUfiSms_RawTsData*ptRawTsData,
 wms_gw_deliver_s_type*deliver){wms_status_e_type st=WMS_OK_S;uint32 pos=
-(0x655+3626-0x147f),i;const UINT8*data=ptRawTsData->data;if(ptRawTsData==NULL||
+(0x80+7950-0x1f8e),i;const UINT8*data=ptRawTsData->data;if(ptRawTsData==NULL||
 deliver==NULL){printf(
 "\x6e\x75\x6c\x6c\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x64\x65\x63\x6f\x64\x65\x5f\x64\x65\x6c\x69\x76\x65\x72"
-);return WMS_NULL_PTR_S;}else if((data[pos]&(0x1acd+532-0x1cde))!=
-(0x863+587-0xaae)){printf(
+);return WMS_NULL_PTR_S;}else if((data[pos]&(0x826+6159-0x2032))!=
+(0x1651+4235-0x26dc)){printf(
 "\x69\x6e\x76\x61\x6c\x69\x64\x20\x74\x70\x64\x75\x20\x74\x79\x70\x65\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x64\x65\x63\x6f\x64\x65\x5f\x64\x65\x6c\x69\x76\x65\x72"
 );return WMS_INVALID_TPDU_TYPE_S;}else{deliver->more=(data[pos]&
-(0xd1+7440-0x1ddd))?FALSE:TRUE;deliver->status_report_enabled=(data[pos]&
-(0x711+5407-0x1c10))?TRUE:FALSE;deliver->user_data_header_present=(data[pos]&
-(0x624+7703-0x23fb))?TRUE:FALSE;deliver->reply_path_present=(data[pos]&
-(0x8a5+5638-0x1e2b))?TRUE:FALSE;pos++;i=wms_ts_decode_address(&data[pos],&
-deliver->address);if(i==(0xcbc+1089-0x10fd)){printf(
+(0x13b8+773-0x16b9))?FALSE:TRUE;deliver->status_report_enabled=(data[pos]&
+(0x255+4383-0x1354))?TRUE:FALSE;deliver->user_data_header_present=(data[pos]&
+(0xf48+3035-0x1ae3))?TRUE:FALSE;deliver->reply_path_present=(data[pos]&
+(0xed2+3038-0x1a30))?TRUE:FALSE;pos++;i=wms_ts_decode_address(&data[pos],&
+deliver->address);if(i==(0x4f2+6802-0x1f84)){printf(
 "\x69\x6e\x76\x61\x6c\x69\x64\x20\x70\x61\x72\x61\x6d\x20\x73\x69\x7a\x65\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x64\x65\x63\x6f\x64\x65\x5f\x64\x65\x6c\x69\x76\x65\x72"
 );return WMS_INVALID_PARM_SIZE_S;}pos+=i;deliver->pid=(wms_pid_e_type)data[pos];
 pos++;pos+=wms_ts_decode_dcs(data+pos,&deliver->dcs);if(deliver->dcs.
@@ -1937,74 +1931,75 @@
 WMS_PID_RETURN_CALL){deliver->dcs.msg_waiting=WMS_GW_MSG_WAITING_STORE;deliver->
 dcs.msg_waiting_active=TRUE;deliver->dcs.msg_waiting_kind=
 WMS_GW_MSG_WAITING_VOICEMAIL;}}i=wms_ts_decode_timestamp(data+pos,&deliver->
-timestamp);if(i==(0x1971+2709-0x2406)){printf(
+timestamp);if(i==(0x2b7+8011-0x2202)){printf(
 "\x69\x6e\x76\x61\x6c\x69\x64\x20\x70\x61\x72\x61\x6d\x20\x76\x61\x6c\x75\x65\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x64\x65\x63\x6f\x64\x65\x5f\x64\x65\x6c\x69\x76\x65\x72"
 );return WMS_INVALID_PARM_VALUE_S;}pos+=i;pos++;i=wms_ts_decode_gw_user_data(&
-deliver->dcs,data[pos-(0x1527+4514-0x26c8)],data+pos,deliver->
+deliver->dcs,data[pos-(0x854+2650-0x12ad)],data+pos,deliver->
 user_data_header_present,&deliver->user_data);if(i>WMS_SMS_UDL_MAX_8_BIT){printf
 (
 "\x55\x73\x65\x72\x20\x44\x61\x74\x61\x20\x4c\x65\x6e\x67\x74\x68\x20\x68\x61\x73\x20\x65\x78\x63\x65\x65\x64\x65\x64\x20\x63\x61\x70\x61\x63\x69\x74\x79\x3a\x20\x55\x44\x4c\x20\x3d\x20\x25\x6c\x75"
 ,i);st=WMS_INVALID_USER_DATA_SIZE_S;}pos+=i;return st;}}UINT8 
 wms_ts_decode_gw_validity(const UINT8*data,wms_gw_validity_s_type*validity){
-UINT8 i,pos=(0x15b1+2300-0x1ead);if(data==NULL||validity==NULL){at_print(
+UINT8 i,pos=(0x1b92+932-0x1f36);if(data==NULL||validity==NULL){at_print(
 LOG_DEBUG,
 "\x6e\x75\x6c\x6c\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x64\x65\x63\x6f\x64\x65\x5f\x67\x77\x5f\x76\x61\x6c\x69\x64\x69\x74\x79"
-);return(0xe08+3374-0x1b36);}else{switch(validity->format){case 
-WMS_GW_VALIDITY_NONE:memset(validity,(0x9e8+5873-0x20d9),sizeof(
+);return(0x276+1460-0x82a);}else{switch(validity->format){case 
+WMS_GW_VALIDITY_NONE:memset(validity,(0xcbf+6250-0x2529),sizeof(
 wms_gw_validity_s_type));break;case WMS_GW_VALIDITY_RELATIVE:
 zUfiSms_DecodeRelativeTime(data[pos],&validity->u.time);pos++;break;case 
 WMS_GW_VALIDITY_ABSOLUTE:i=wms_ts_decode_timestamp(data+pos,&validity->u.time);
 pos+=i;break;case WMS_GW_VALIDITY_ENHANCED:break;default:break;}return pos;}}
 wms_status_e_type wms_ts_decode_submit(const T_zUfiSms_RawTsData*ptRawTsData,
 wms_gw_submit_s_type*submit){wms_status_e_type st=WMS_OK_S;uint32 pos=
-(0x1265+4244-0x22f9),i;const UINT8*data;if(ptRawTsData==NULL||submit==NULL){
-printf(
+(0x1ff+2166-0xa75),i;const UINT8*data;if(ptRawTsData==NULL||submit==NULL){printf
+(
 "\x4e\x75\x6c\x6c\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x64\x65\x63\x6f\x64\x65\x5f\x73\x75\x62\x6d\x69\x74\x21"
 );return WMS_NULL_PTR_S;}data=ptRawTsData->data;submit->reject_duplicates=(data[
-pos]&(0xa65+5000-0x1de9))?TRUE:FALSE;submit->validity.format=(
-wms_gw_validity_format_e_type)((data[pos]&(0x945+857-0xc86))>>(0x21c+2270-0xaf7)
-);submit->status_report_enabled=(data[pos]&(0x1b14+1686-0x218a))?TRUE:FALSE;
-submit->user_data_header_present=(data[pos]&(0x2bb+1896-0x9e3))?TRUE:FALSE;
-submit->reply_path_present=(data[pos]&(0x9c1+5942-0x2077))?TRUE:FALSE;pos++;
-submit->message_reference=data[pos];pos++;i=wms_ts_decode_address(&data[pos],&
-submit->address);if(i==(0xa2f+5437-0x1f6c)){return WMS_INVALID_PARM_SIZE_S;}pos
-+=i;submit->pid=(wms_pid_e_type)data[pos];pos++;pos+=wms_ts_decode_dcs(data+pos,
-&submit->dcs);i=wms_ts_decode_gw_validity(data+pos,&submit->validity);if((submit
-->validity.format!=WMS_GW_VALIDITY_NONE)&&(i==(0xc+3070-0xc0a))){return 
-WMS_INVALID_PARM_VALUE_S;}pos+=i;pos++;i=wms_ts_decode_gw_user_data(&submit->dcs
-,data[pos-(0x10ef+5389-0x25fb)],data+pos,submit->user_data_header_present,&
-submit->user_data);if(i>WMS_SMS_UDL_MAX_8_BIT){printf(
+pos]&(0x9e2+7434-0x26e8))?TRUE:FALSE;submit->validity.format=(
+wms_gw_validity_format_e_type)((data[pos]&(0xd2b+5884-0x240f))>>
+(0x91b+6018-0x209a));submit->status_report_enabled=(data[pos]&
+(0x63b+7042-0x219d))?TRUE:FALSE;submit->user_data_header_present=(data[pos]&
+(0xdcb+6309-0x2630))?TRUE:FALSE;submit->reply_path_present=(data[pos]&
+(0xb91+215-0xbe8))?TRUE:FALSE;pos++;submit->message_reference=data[pos];pos++;i=
+wms_ts_decode_address(&data[pos],&submit->address);if(i==(0x157c+223-0x165b)){
+return WMS_INVALID_PARM_SIZE_S;}pos+=i;submit->pid=(wms_pid_e_type)data[pos];pos
+++;pos+=wms_ts_decode_dcs(data+pos,&submit->dcs);i=wms_ts_decode_gw_validity(
+data+pos,&submit->validity);if((submit->validity.format!=WMS_GW_VALIDITY_NONE)&&
+(i==(0x170+8496-0x22a0))){return WMS_INVALID_PARM_VALUE_S;}pos+=i;pos++;i=
+wms_ts_decode_gw_user_data(&submit->dcs,data[pos-(0x300+4699-0x155a)],data+pos,
+submit->user_data_header_present,&submit->user_data);if(i>WMS_SMS_UDL_MAX_8_BIT)
+{printf(
 "\x55\x73\x65\x72\x20\x44\x61\x74\x61\x20\x4c\x65\x6e\x67\x74\x68\x20\x68\x61\x73\x20\x65\x78\x63\x65\x65\x64\x65\x64\x20\x63\x61\x70\x61\x63\x69\x74\x79\x3a\x20\x55\x44\x4c\x20\x3d\x20\x25\x6c\x75"
 ,i);st=WMS_INVALID_USER_DATA_SIZE_S;}pos+=i;return st;}wms_status_e_type 
 wms_ts_decode_status_report(const T_zUfiSms_RawTsData*ptRawTsData,
 wms_gw_status_report_s_type*status_report){wms_status_e_type st=WMS_OK_S;uint32 
-pos=(0x114a+2811-0x1c45),i;const UINT8*data;if(ptRawTsData==NULL||status_report
-==NULL){printf(
+pos=(0x604+4488-0x178c),i;const UINT8*data;if(ptRawTsData==NULL||status_report==
+NULL){printf(
 "\x4e\x75\x6c\x6c\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x69\x6e\x20\x77\x6d\x73\x5f\x74\x73\x5f\x64\x65\x63\x6f\x64\x65\x5f\x73\x74\x61\x74\x75\x73\x5f\x72\x65\x70\x6f\x72\x74\x21"
 );return WMS_NULL_PTR_S;}data=ptRawTsData->data;status_report->more=data[pos]&
-(0xa35+6628-0x2415)?FALSE:TRUE;status_report->status_report_qualifier=data[pos]&
-(0xe6d+3872-0x1d6d)?TRUE:FALSE;status_report->user_data_header_present=(data[pos
-]&(0x4f6+8427-0x25a1))?TRUE:FALSE;pos++;status_report->message_reference=data[
-pos];pos++;i=wms_ts_decode_address(&data[pos],&status_report->address);if(i==
-(0x1018+2908-0x1b74)){return WMS_INVALID_PARM_SIZE_S;}pos+=i;i=
+(0x3af+7306-0x2035)?FALSE:TRUE;status_report->status_report_qualifier=data[pos]&
+(0x1d8b+1681-0x23fc)?TRUE:FALSE;status_report->user_data_header_present=(data[
+pos]&(0x1a96+164-0x1afa))?TRUE:FALSE;pos++;status_report->message_reference=data
+[pos];pos++;i=wms_ts_decode_address(&data[pos],&status_report->address);if(i==
+(0x1a99+351-0x1bf8)){return WMS_INVALID_PARM_SIZE_S;}pos+=i;i=
 wms_ts_decode_timestamp(data+pos,&status_report->timestamp);if(i==
-(0x5d4+2212-0xe78)){return WMS_INVALID_PARM_VALUE_S;}pos+=i;i=
+(0x91+8381-0x214e)){return WMS_INVALID_PARM_VALUE_S;}pos+=i;i=
 wms_ts_decode_timestamp(data+pos,&status_report->discharge_time);if(i==
-(0x1afc+1666-0x217e)){return WMS_INVALID_PARM_VALUE_S;}pos+=i;status_report->
+(0xdb4+3490-0x1b56)){return WMS_INVALID_PARM_VALUE_S;}pos+=i;status_report->
 tp_status=(wms_tp_status_e_type)data[pos];pos++;status_report->mask=data[pos];
-status_report->pid=(wms_pid_e_type)(0x158+6267-0x19d3);status_report->user_data.
-sm_len=(0x17d4+2919-0x233b);status_report->mask&=(0x1c99+1910-0x2310);if((
-status_report->mask!=(0xb04+7032-0x257d))&&(status_report->mask!=
-(0x9f+6465-0x19e0))){pos++;if(status_report->mask&WMS_TPDU_MASK_PID){
+status_report->pid=(wms_pid_e_type)(0xcbf+3729-0x1b50);status_report->user_data.
+sm_len=(0x419+7372-0x20e5);status_report->mask&=(0xd21+1323-0x114d);if((
+status_report->mask!=(0x702+3348-0x1317))&&(status_report->mask!=
+(0x2089+628-0x22fd))){pos++;if(status_report->mask&WMS_TPDU_MASK_PID){
 status_report->pid=(wms_pid_e_type)data[pos];pos++;}if(status_report->mask&
 WMS_TPDU_MASK_DCS){pos+=wms_ts_decode_dcs(data+pos,&status_report->dcs);}if(
 status_report->mask&WMS_TPDU_MASK_USER_DATA){pos++;i=wms_ts_decode_gw_user_data(
-&status_report->dcs,data[pos-(0xf42+3118-0x1b6f)],data+pos,status_report->
+&status_report->dcs,data[pos-(0x10b6+2075-0x18d0)],data+pos,status_report->
 user_data_header_present,&status_report->user_data);if(i>WMS_SMS_UDL_MAX_8_BIT){
 printf(
 "\x55\x73\x65\x72\x20\x44\x61\x74\x61\x20\x4c\x65\x6e\x67\x74\x68\x20\x68\x61\x73\x20\x65\x78\x63\x65\x65\x64\x65\x64\x20\x63\x61\x70\x61\x63\x69\x74\x79\x3a\x20\x55\x44\x4c\x20\x3d\x20\x25\x6c\x75"
 ,i);st=WMS_INVALID_USER_DATA_SIZE_S;}pos+=i;}}else{status_report->mask=
-(0x1fc+5542-0x17a2);}return st;}wms_status_e_type wms_ts_decode(const 
+(0x99f+1376-0xeff);}return st;}wms_status_e_type wms_ts_decode(const 
 T_zUfiSms_RawTsData*ptRawTsData,T_zUfiSms_ClientTsData*ptClientTsData){
 wms_status_e_type st=WMS_OK_S;wms_gw_pp_ts_data_s_type*msg;if(ptRawTsData==NULL
 ||ptClientTsData==NULL){return WMS_NULL_PTR_S;}msg=&ptClientTsData->u.gw_pp;
diff --git a/ap/app/zte_comm/sms/src/sms_db.c b/ap/app/zte_comm/sms/src/sms_db.c
index 5843f7d..6115359 100755
--- a/ap/app/zte_comm/sms/src/sms_db.c
+++ b/ap/app/zte_comm/sms/src/sms_db.c
@@ -101,82 +101,82 @@
 #define OUTDATEINTERVAL 7776000

 typedef struct{char*buf_addr;int buf_len;}T_zUfiSms_BufInfo;typedef struct{int 
 valid;char*strSQL;}T_zUfiSms_SQLMap;sqlite3*g_zUfiSms_DbPointer=
-(0x167c+963-0x1a3f);extern T_zUfiSms_ParaInfo g_zUfiSms_CurSmsPara;extern 
+(0xf66+2238-0x1824);extern T_zUfiSms_ParaInfo g_zUfiSms_CurSmsPara;extern 
 unsigned long g_zUfiSms_StoreCapablity[ZTE_WMS_MEMORY_MAX];extern 
 T_zUfiSms_DelSms g_zUfiSms_DelMsg;static int isSucess(T_zUfiSms_DbResult dbRst){
 return dbRst==ZTE_WMS_DB_OK?ZUFI_SUCC:ZUFI_FAIL;}time_t zte_getsecond(
-T_zUfiSms_Date date){time_t timet;struct tm tmtime={(0x83f+7821-0x26cc)};int 
-tmp_i=(0x120d+3103-0x1e2c);
-#if (0xa55+4386-0x1b77)

-if(atoi(date.year)>(0x21d1+1207-0x2625)||atoi(date.year)<(0x41b+6744-0x1e73)){
+T_zUfiSms_Date date){time_t timet;struct tm tmtime={(0x31b+4607-0x151a)};int 
+tmp_i=(0xecb+5933-0x25f8);
+#if (0x20e1+1549-0x26ee)

+if(atoi(date.year)>(0xbbc+636-0xdd5)||atoi(date.year)<(0x1186+854-0x14dc)){
 printf("[SMS] getsecond error, year out of range: %d!!!",atoi(date.year));return
-(0x23c+2628-0xc80);}
+(0xa90+143-0xb1f);}
 #endif

-tmp_i=atoi(date.year);if(tmp_i<(0x1373+1521-0x1964)||tmp_i>INT_MAX-
-(0x1359+2818-0x1e5a)){at_print(LOG_ERR,
+tmp_i=atoi(date.year);if(tmp_i<(0x1153+5168-0x2583)||tmp_i>INT_MAX-
+(0x338+7879-0x21fe)){at_print(LOG_ERR,
 "\x5b\x53\x4d\x53\x5d\x64\x61\x74\x65\x2e\x79\x65\x61\x72\x20\x65\x72\x72\x3a\x25\x64" "\n"
-,tmp_i);return(0x6bc+2803-0x11af);}tmtime.tm_year=tmp_i+(0xa90+1031-0x6c7)-
-(0xe08+5072-0x1a6c);tmp_i=atoi(date.month);if(tmp_i<(0x22e1+341-0x2436)||tmp_i>
-INT_MAX-(0xec1+1186-0x1362)){at_print(LOG_ERR,
+,tmp_i);return(0xb79+147-0xc0c);}tmtime.tm_year=tmp_i+(0xe85+6737-0x2106)-
+(0x887+2563-0xb1e);tmp_i=atoi(date.month);if(tmp_i<(0x447+2597-0xe6c)||tmp_i>
+INT_MAX-(0x187f+2030-0x206c)){at_print(LOG_ERR,
 "\x5b\x53\x4d\x53\x5d\x64\x61\x74\x65\x2e\x6d\x6f\x6e\x74\x68\x20\x65\x72\x72\x3a\x25\x64" "\n"
-,tmp_i);return(0x1389+373-0x14fe);}tmtime.tm_mon=tmp_i-(0xd93+1707-0x143d);tmp_i
-=atoi(date.day);if(tmp_i<(0x1d4+720-0x4a4)||tmp_i>INT_MAX-(0x9e8+1391-0xf56)){
-at_print(LOG_ERR,
+,tmp_i);return(0x1d23+1310-0x2241);}tmtime.tm_mon=tmp_i-(0x190d+929-0x1cad);
+tmp_i=atoi(date.day);if(tmp_i<(0x74f+1040-0xb5f)||tmp_i>INT_MAX-
+(0xcc6+6573-0x2672)){at_print(LOG_ERR,
 "\x5b\x53\x4d\x53\x5d\x64\x61\x74\x65\x2e\x64\x61\x79\x20\x65\x72\x72\x3a\x25\x64" "\n"
-,tmp_i);return(0x153f+965-0x1904);}tmtime.tm_mday=tmp_i;tmp_i=atoi(date.hour);if
-(tmp_i<(0x8ef+5454-0x1e3d)||tmp_i>INT_MAX-(0x3ea+1231-0x8b8)){at_print(LOG_ERR,
+,tmp_i);return(0x8cd+963-0xc90);}tmtime.tm_mday=tmp_i;tmp_i=atoi(date.hour);if(
+tmp_i<(0x14a0+4036-0x2464)||tmp_i>INT_MAX-(0xc79+2321-0x1589)){at_print(LOG_ERR,
 "\x5b\x53\x4d\x53\x5d\x64\x61\x74\x65\x2e\x68\x6f\x75\x72\x20\x65\x72\x72\x3a\x25\x64" "\n"
-,tmp_i);return(0x13f7+3539-0x21ca);}tmtime.tm_hour=tmp_i;tmp_i=atoi(date.min);if
-(tmp_i<(0xbfd+133-0xc82)||tmp_i>INT_MAX-(0x2cc+4180-0x131f)){at_print(LOG_ERR,
+,tmp_i);return(0xc0c+2222-0x14ba);}tmtime.tm_hour=tmp_i;tmp_i=atoi(date.min);if(
+tmp_i<(0x1eb3+842-0x21fd)||tmp_i>INT_MAX-(0x1646+4279-0x26fc)){at_print(LOG_ERR,
 "\x5b\x53\x4d\x53\x5d\x64\x61\x74\x65\x2e\x6d\x69\x6e\x20\x65\x72\x72\x3a\x25\x64" "\n"
-,tmp_i);return(0x6e0+492-0x8cc);}tmtime.tm_min=tmp_i;tmp_i=atoi(date.sec);if(
-tmp_i<(0x1a41+1141-0x1eb6)||tmp_i>INT_MAX-(0x10f+4747-0x1399)){at_print(LOG_ERR,
+,tmp_i);return(0x15d7+852-0x192b);}tmtime.tm_min=tmp_i;tmp_i=atoi(date.sec);if(
+tmp_i<(0x122+7489-0x1e63)||tmp_i>INT_MAX-(0xefc+1397-0x1470)){at_print(LOG_ERR,
 "\x5b\x53\x4d\x53\x5d\x64\x61\x74\x65\x2e\x73\x65\x63\x20\x65\x72\x72\x3a\x25\x64" "\n"
-,tmp_i);return(0x1c2+661-0x457);}tmtime.tm_sec=tmp_i;timet=mktime(&tmtime);
+,tmp_i);return(0xcd0+3939-0x1c33);}tmtime.tm_sec=tmp_i;timet=mktime(&tmtime);
 return timet;}T_zUfiSms_DbResult zUfiSms_OpenDb(void){int retry_times=
-(0x1cd8+1938-0x246a);int open_rst=SQLITE_ERROR;if(g_zUfiSms_DbPointer!=NULL){
+(0x1e7+5301-0x169c);int open_rst=SQLITE_ERROR;if(g_zUfiSms_DbPointer!=NULL){
 sqlite3_close(g_zUfiSms_DbPointer);g_zUfiSms_DbPointer=NULL;}do{open_rst=
 sqlite3_open(ZTE_WMS_DB_PATH,&g_zUfiSms_DbPointer);}while(open_rst==
-SQLITE_CANTOPEN&&retry_times++<(0x9f5+3271-0x16b2));printf(
+SQLITE_CANTOPEN&&retry_times++<(0x223+8620-0x23c5));printf(
 "\x7a\x55\x66\x69\x53\x6d\x73\x5f\x4f\x70\x65\x6e\x44\x62\x3a\x20\x72\x65\x74\x72\x79\x5f\x74\x69\x6d\x65\x73\x20\x3d\x20\x25\x64\x2c\x20\x6f\x70\x65\x6e\x5f\x72\x73\x74\x20\x3d\x20\x25\x64" "\n"
 ,retry_times,open_rst);return open_rst==SQLITE_OK?ZTE_WMS_DB_OK:
 ZTE_SMS_DB_ERROR_NOT_OPEN_DB;}T_zUfiSms_DbResult zUfiSms_CloseDb(void){if(
 sqlite3_close(g_zUfiSms_DbPointer)!=SQLITE_OK){return ZTE_SMS_DB_ERROR;}
 g_zUfiSms_DbPointer=NULL;return ZTE_WMS_DB_OK;}T_zUfiSms_DbResult 
 zUfiSms_ExecSql(const char*exec_sql,zte_wms_db_callback callback,void*fvarg){int
- try_times=(0xdeb+5292-0x2297);int sqlRst=SQLITE_ERROR;while(try_times++<
-(0x6a7+2118-0xee3)){sqlRst=sqlite3_exec(g_zUfiSms_DbPointer,exec_sql,callback,
+ try_times=(0x4c3+212-0x597);int sqlRst=SQLITE_ERROR;while(try_times++<
+(0x7b+2164-0x8e5)){sqlRst=sqlite3_exec(g_zUfiSms_DbPointer,exec_sql,callback,
 fvarg,NULL);if(sqlRst!=SQLITE_BUSY&&sqlRst!=SQLITE_LOCKED&&sqlRst!=SQLITE_IOERR)
 {break;}printf(
 "\x7a\x55\x66\x69\x53\x6d\x73\x5f\x45\x78\x65\x63\x53\x71\x6c\x3a\x20\x74\x72\x79\x5f\x74\x69\x6d\x65\x73\x3d\x25\x64\x2c\x20\x53\x51\x4c\x3d\x25\x73\x2c\x20\x45\x72\x72\x6d\x73\x67\x3d\x25\x73" "\n"
 ,try_times,exec_sql,sqlite3_errmsg(g_zUfiSms_DbPointer));sleep(
-(0x3e8+2607-0xe16));}if(sqlRst!=SQLITE_OK){printf(
+(0x907+7333-0x25ab));}if(sqlRst!=SQLITE_OK){printf(
 "\x7a\x55\x66\x69\x53\x6d\x73\x5f\x45\x78\x65\x63\x53\x71\x6c\x3a\x20\x74\x72\x79\x5f\x74\x69\x6d\x65\x73\x3d\x25\x64\x2c\x20\x53\x51\x4c\x3d\x25\x73\x2c\x20\x45\x72\x72\x6d\x73\x67\x3d\x25\x73" "\n"
 ,try_times,exec_sql,sqlite3_errmsg(g_zUfiSms_DbPointer));return ZTE_SMS_DB_ERROR
 ;}else{
 #ifdef WEBS_SECURITY

-if(access(ZTE_WMS_TMP1_PATH,F_OK)==(0xe90+5013-0x2225)){slog(PB_PRINT,SLOG_ERR,
+if(access(ZTE_WMS_TMP1_PATH,F_OK)==(0xc1b+1740-0x12e7)){slog(PB_PRINT,SLOG_ERR,
 "\x7a\x55\x66\x69\x53\x6d\x73\x5f\x45\x78\x65\x63\x53\x71\x6c\x20\x64\x62\x20\x73\x74\x61\x79"
-);if(remove(ZTE_WMS_TMP1_PATH)!=(0xf59+3205-0x1bde)){slog(SMS_PRINT,SLOG_ERR,
+);if(remove(ZTE_WMS_TMP1_PATH)!=(0x1c62+634-0x1edc)){slog(SMS_PRINT,SLOG_ERR,
 "\x72\x65\x6d\x6f\x76\x65\x20\x57\x4d\x53\x5f\x54\x4d\x50\x31\x5f\x50\x41\x54\x48\x20\x66\x61\x69\x6c"
-);}}{char rnum_buf[(0x1ee1+1539-0x24cc)]={(0x1180+829-0x14bd)};char cmd[
-(0xbb1+4079-0x1b20)]={(0x1c7a+2052-0x247e)};sc_cfg_get(
+);}}{char rnum_buf[(0x22f+5661-0x1834)]={(0x1cfa+481-0x1edb)};char cmd[
+(0xb2a+4336-0x1b9a)]={(0x2c7+5549-0x1874)};sc_cfg_get(
 "\x72\x6e\x75\x6d\x5f\x61\x74",rnum_buf,sizeof(rnum_buf));snprintf(cmd,sizeof(
 cmd),
 "\x2f\x62\x69\x6e\x2f\x6f\x70\x65\x6e\x73\x73\x6c\x20\x65\x6e\x63\x20\x2d\x65\x20\x2d\x61\x65\x73\x32\x35\x36\x20\x2d\x73\x61\x6c\x74\x20\x2d\x69\x6e\x20\x25\x73\x20\x2d\x6f\x75\x74\x20\x25\x73\x20\x2d\x70\x61\x73\x73\x20\x70\x61\x73\x73\x3a\x25\x73"
 ,ZTE_WMS_DB_PATH,ZTE_WMS_TMP1_PATH,rnum_buf);zxic_system(cmd);if(access(
-ZTE_WMS_TMP1_PATH,F_OK)==(0x1016+3755-0x1ec1)){if(remove(ZTE_WMS_SEC_PATH)!=
-(0x760+2360-0x1098)){slog(SMS_PRINT,SLOG_ERR,
+ZTE_WMS_TMP1_PATH,F_OK)==(0x506+413-0x6a3)){if(remove(ZTE_WMS_SEC_PATH)!=
+(0x9e7+5168-0x1e17)){slog(SMS_PRINT,SLOG_ERR,
 "\x72\x65\x6d\x6f\x76\x65\x20\x57\x4d\x53\x5f\x53\x45\x43\x5f\x50\x41\x54\x48\x20\x66\x61\x69\x6c"
-);}if(rename(ZTE_WMS_TMP1_PATH,ZTE_WMS_SEC_PATH)!=(0x1387+1146-0x1801)){slog(
+);}if(rename(ZTE_WMS_TMP1_PATH,ZTE_WMS_SEC_PATH)!=(0x1c5+1403-0x740)){slog(
 SMS_PRINT,SLOG_ERR,
 "\x72\x65\x6e\x61\x6d\x65\x20\x57\x4d\x53\x5f\x54\x4d\x50\x31\x5f\x50\x41\x54\x48\x20\x66\x61\x69\x6c"
 );}}}
 #endif	

 return ZTE_WMS_DB_OK;}}int zUfiSms_GetFirstColumnInt(void*fvarg,int columns,char
-**zresult,char**lname){if(columns>=(0x119a+2569-0x1ba2)){if(zresult[
-(0x2542+407-0x26d9)]==NULL){*(int*)fvarg=(0xcf+2090-0x8f9);}else{*(int*)fvarg=
-atoi(zresult[(0xa84+676-0xd28)]);}return SQLITE_OK;}else{return SQLITE_ERROR;}}
+**zresult,char**lname){if(columns>=(0x893+7534-0x2600)){if(zresult[
+(0xc63+1383-0x11ca)]==NULL){*(int*)fvarg=(0x1ccb+1331-0x21fe);}else{*(int*)fvarg
+=atoi(zresult[(0xbf1+739-0xed4)]);}return SQLITE_OK;}else{return SQLITE_ERROR;}}
 int zUfiSms_SetCmdStatus(T_zUfiSms_StatusInfo*ptSetStatus){T_zUfiSms_DbResult 
 result=ZTE_WMS_DB_OK;char*strSQL=NULL;printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x53\x65\x74\x43\x6d\x64\x53\x74\x61\x74\x75\x73\x20\x65\x6e\x74\x65\x72\x2e" "\n"
@@ -187,28 +187,28 @@
 ptSetStatus->err_code,ptSetStatus->send_failed_count,ptSetStatus->
 delete_failed_count);result=zUfiSms_ExecSql(strSQL,NULL,NULL);sqlite3_free(
 strSQL);return isSucess(result);}void zUfiSms_SetParameterNv(T_zUfiSms_ParaInfo*
-para){if((0x1537+2237-0x1df4)==(int)para->status_report_on){sc_cfg_set(
+para){if((0xdd4+1695-0x1473)==(int)para->status_report_on){sc_cfg_set(
 NV_REPORT_ENABLE,"\x30");}else{sc_cfg_set(NV_REPORT_ENABLE,"\x31");}if(
-(0x5a7+6508-0x1f13)==(int)para->sendfail_retry_on){sc_cfg_set(NV_SENDFAIL_RETRY,
-"\x30");}else{sc_cfg_set(NV_SENDFAIL_RETRY,"\x31");}if((0x90f+5976-0x2067)==(int
-)para->outdate_delete_on){sc_cfg_set(NV_OUTDATE_DELETE,"\x30");}else{sc_cfg_set(
+(0x112f+5137-0x2540)==(int)para->sendfail_retry_on){sc_cfg_set(NV_SENDFAIL_RETRY
+,"\x30");}else{sc_cfg_set(NV_SENDFAIL_RETRY,"\x31");}if((0xc91+842-0xfdb)==(int)
+para->outdate_delete_on){sc_cfg_set(NV_OUTDATE_DELETE,"\x30");}else{sc_cfg_set(
 NV_OUTDATE_DELETE,"\x31");}if(*(para->default_store)!='\0'){sc_cfg_set(
-NV_DEFAULT_STORE,(char*)para->default_store);}if((0x1ded+486-0x1fd3)==(int)para
+NV_DEFAULT_STORE,(char*)para->default_store);}if((0x1245+254-0x1343)==(int)para
 ->mem_store){sc_cfg_set(NV_PRA_MEMSTORE,"\x30");}else{sc_cfg_set(NV_PRA_MEMSTORE
-,"\x31");}if((0xd7c+4499-0x1e10)==(int)para->tp_validity_period){sc_cfg_set(
-NV_SMS_VP,"\x6c\x6f\x6e\x67\x65\x73\x74");}else if((0x1476+311-0x1500)==(int)
+,"\x31");}if((0x96d+5006-0x1bfc)==(int)para->tp_validity_period){sc_cfg_set(
+NV_SMS_VP,"\x6c\x6f\x6e\x67\x65\x73\x74");}else if((0x667+3751-0x1461)==(int)
 para->tp_validity_period){sc_cfg_set(NV_SMS_VP,"\x6f\x6e\x65\x77\x65\x65\x6b");}
-else if((0x1f92+1612-0x2537)==(int)para->tp_validity_period){sc_cfg_set(
-NV_SMS_VP,"\x6f\x6e\x65\x5f\x64\x61\x79");}else if((0x213+3146-0xdce)==(int)para
-->tp_validity_period){sc_cfg_set(NV_SMS_VP,"\x74\x77\x65\x6c\x76\x65\x68");}
-printf(
+else if((0x769+3071-0x12c1)==(int)para->tp_validity_period){sc_cfg_set(NV_SMS_VP
+,"\x6f\x6e\x65\x5f\x64\x61\x79");}else if((0x1282+760-0x14eb)==(int)para->
+tp_validity_period){sc_cfg_set(NV_SMS_VP,"\x74\x77\x65\x6c\x76\x65\x68");}printf
+(
 "\x77\x6d\x73\x5f\x64\x62\x5f\x73\x65\x74\x5f\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x20\x3a\x3a\x20\x73\x65\x74\x20\x74\x70\x5f\x76\x61\x6c\x69\x64\x69\x74\x79\x5f\x70\x65\x72\x69\x6f\x64\x20\x25\x64" "\n"
 ,(int)para->tp_validity_period);}int zUfiSms_SetDbParameters(T_zUfiSms_ParaInfo*
 para){T_zUfiSms_DbResult result=ZTE_WMS_DB_OK;char*strSQL=NULL;int count=
-(0x19fb+3046-0x25e1);if(NULL==para){return-(0xaca+4784-0x1d79);}zUfiSms_ExecSql(
+(0x68a+2142-0xee8);if(NULL==para){return-(0x15b6+2627-0x1ff8);}zUfiSms_ExecSql(
 "\x53\x45\x4c\x45\x43\x54\x20\x63\x6f\x75\x6e\x74\x28\x2a\x29\x20\x46\x52\x4f\x4d\x20"
  ZTE_WMS_DB_PARAMETER_TABLE"\x20\x57\x48\x45\x52\x45\x20\x69\x64\x3d\x31\x3b",
-zUfiSms_GetFirstColumnInt,&count);if(count>(0x136b+37-0x1390)){strSQL=
+zUfiSms_GetFirstColumnInt,&count);if(count>(0xa2b+309-0xb60)){strSQL=
 sqlite3_mprintf(
 "\x55\x50\x44\x41\x54\x45\x20\x25\x73\x20\x53\x45\x54\x20\x53\x6d\x73\x5f\x52\x65\x70\x6f\x72\x74\x3d\x27\x25\x64\x27\x2c\x53\x6d\x73\x5f\x53\x63\x61\x3d\x27\x25\x71\x27\x2c\x4d\x65\x6d\x5f\x53\x74\x6f\x72\x65\x3d\x27\x25\x64\x27\x2c\x54\x70\x5f\x56\x61\x6c\x69\x64\x69\x74\x79\x3d\x27\x25\x64\x27\x2c\x53\x65\x6e\x64\x5f\x52\x65\x74\x72\x79\x3d\x27\x25\x64\x27\x2c\x4f\x75\x74\x64\x61\x74\x65\x5f\x44\x65\x6c\x65\x74\x65\x3d\x27\x25\x64\x27\x2c\x44\x65\x66\x61\x75\x6c\x74\x5f\x53\x74\x6f\x72\x65\x3d\x27\x25\x71\x27\x20\x57\x48\x45\x52\x45\x20\x69\x64\x3d\x31\x3b"
 ,ZTE_WMS_DB_PARAMETER_TABLE,(int)para->status_report_on,para->sca,(int)para->
@@ -221,13 +221,13 @@
 mem_store,(int)para->tp_validity_period,(int)para->sendfail_retry_on,(int)para->
 outdate_delete_on,para->default_store);}result=zUfiSms_ExecSql(strSQL,NULL,NULL)
 ;sqlite3_free(strSQL);if(result==ZTE_WMS_DB_OK){zUfiSms_SetParameterNv(para);
-return(0xc27+2882-0x1769);}return-(0xe3a+4512-0x1fd9);}int zUfiSms_GetTotalCount
-(const char*pDbTable,int*pTotalCount){T_zUfiSms_DbResult result=ZTE_WMS_DB_OK;
+return(0xf5c+2399-0x18bb);}return-(0x51a+1720-0xbd1);}int zUfiSms_GetTotalCount(
+const char*pDbTable,int*pTotalCount){T_zUfiSms_DbResult result=ZTE_WMS_DB_OK;
 char*strSQL=NULL;strSQL=sqlite3_mprintf(
 "\x53\x45\x4c\x45\x43\x54\x20\x63\x6f\x75\x6e\x74\x28\x2a\x29\x20\x46\x52\x4f\x4d\x20\x73\x6d\x73\x20\x57\x48\x45\x52\x45\x20\x4d\x65\x6d\x5f\x53\x74\x6f\x72\x65\x3d\x27\x25\x71\x27\x3b"
 ,pDbTable);result=zUfiSms_ExecSql(strSQL,zUfiSms_GetFirstColumnInt,pTotalCount);
 sqlite3_free(strSQL);return isSucess(result);}int zUfiSms_GetSmsMaxReferInDb(
-void){int max_sms_ref=-(0x102f+5418-0x2558);zUfiSms_ExecSql(
+void){int max_sms_ref=-(0x506+4985-0x187e);zUfiSms_ExecSql(
 "\x53\x45\x4c\x45\x43\x54\x20\x4d\x61\x78\x5f\x53\x6d\x73\x5f\x52\x65\x66\x20\x46\x52\x4f\x4d\x20"
  ZTE_WMS_DB_PARAMETER_TABLE
 "\x20\x57\x48\x45\x52\x45\x20\x69\x64\x20\x3d\x20\x31\x3b",
@@ -236,19 +236,19 @@
 content,int len){sqlite3_stmt*stmt=NULL;char*strSQL=sqlite3_mprintf(
 "\x53\x45\x4c\x45\x43\x54\x20\x69\x6e\x64\x2c\x43\x63\x5f\x53\x65\x71\x2c\x43\x63\x5f\x43\x6f\x6e\x74\x65\x6e\x74\x20\x46\x52\x4f\x4d\x20\x73\x6d\x73\x20\x57\x48\x45\x52\x45\x20\x69\x64\x3d\x27\x25\x64\x27\x20\x41\x4e\x44\x20\x4d\x65\x6d\x5f\x53\x74\x6f\x72\x65\x3d\x27\x25\x71\x27\x3b"
 ,id,mem_store);(void)sqlite3_prepare(g_zUfiSms_DbPointer,strSQL,-
-(0x1978+1566-0x1f95),&stmt,(0x560+3645-0x139d));while(SQLITE_ROW==sqlite3_step(
-stmt)){char*column_text=NULL;memset(pac->IndStr,(0xab9+2666-0x1523),sizeof(pac->
-IndStr));memset(pac->Seg_Seq,(0x592+1856-0xcd2),sizeof(pac->Seg_Seq));if((
-column_text=sqlite3_column_text(stmt,(0x92b+2041-0x1124)))!=NULL)strncpy(pac->
-IndStr,column_text,sizeof(pac->FormatInd)-(0x21fd+755-0x24ef));if((column_text=
-sqlite3_column_text(stmt,(0x15f9+1051-0x1a13)))!=NULL)strncpy(pac->Seg_Seq,
-column_text,sizeof(pac->FormatSeq)-(0x11b+2823-0xc21));if((column_text=
-sqlite3_column_text(stmt,(0x1410+1667-0x1a91)))!=NULL)strncpy(content,
-column_text,len-(0xb+7778-0x1e6c));printf(
+(0x12f9+3500-0x20a4),&stmt,(0x14e8+2788-0x1fcc));while(SQLITE_ROW==sqlite3_step(
+stmt)){char*column_text=NULL;memset(pac->IndStr,(0x972+3766-0x1828),sizeof(pac->
+IndStr));memset(pac->Seg_Seq,(0x166b+508-0x1867),sizeof(pac->Seg_Seq));if((
+column_text=sqlite3_column_text(stmt,(0x1377+550-0x159d)))!=NULL)strncpy(pac->
+IndStr,column_text,sizeof(pac->FormatInd)-(0x89f+5145-0x1cb7));if((column_text=
+sqlite3_column_text(stmt,(0x1dac+1662-0x2429)))!=NULL)strncpy(pac->Seg_Seq,
+column_text,sizeof(pac->FormatSeq)-(0x1429+560-0x1658));if((column_text=
+sqlite3_column_text(stmt,(0xa6+4958-0x1402)))!=NULL)strncpy(content,column_text,
+len-(0x20e2+383-0x2260));printf(
 "\x5b\x53\x4d\x53\x5d\x20\x74\x65\x65\x74\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x47\x65\x74\x43\x6f\x6e\x63\x61\x74\x49\x6e\x66\x6f\x3a\x25\x73\x2c\x25\x73" "\n"
 ,pac->IndStr,pac->Seg_Seq);}(void)sqlite3_finalize(stmt);sqlite3_free(strSQL);
-return(0x1b5+2937-0xd2e);}int zUfiSms_UpdateConcatSmsToDb(T_zUfiSms_DbStoreData*
-db_data,const char*mem_store,char*format_concat,char*content,
+return(0x1d31+677-0x1fd6);}int zUfiSms_UpdateConcatSmsToDb(T_zUfiSms_DbStoreData
+*db_data,const char*mem_store,char*format_concat,char*content,
 T_zUfiSms_DbStoreStr*pac,int concat_num,long id){char*sql=NULL;
 T_zUfiSms_DbResult result=ZTE_WMS_DB_OK;sql=sqlite3_mprintf(
 "\x55\x50\x44\x41\x54\x45\x20\x73\x6d\x73\x20\x53\x45\x54\x20\x69\x6e\x64\x3d\x27\x25\x73\x27\x2c\x54\x61\x67\x3d\x27\x25\x64\x27\x2c\x43\x63\x5f\x53\x65\x71\x3d\x27\x25\x73\x27\x2c\x43\x63\x5f\x4e\x75\x6d\x3d\x27\x25\x64\x27\x2c\x20"
@@ -269,8 +269,8 @@
 "\x43\x6f\x6e\x74\x65\x6e\x74\x2c\x53\x6d\x73\x5f\x52\x65\x70\x6f\x72\x74\x5f\x52\x65\x63\x69\x76\x65\x64\x2c\x44\x72\x61\x66\x74\x5f\x47\x72\x6f\x75\x70\x5f\x49\x64\x2c\x59\x65\x61\x72\x2c\x4d\x6f\x6e\x74\x68\x2c\x44\x61\x79\x2c\x48\x6f\x75\x72\x2c\x4d\x69\x6e\x75\x74\x65\x2c\x53\x65\x63\x6f\x6e\x64\x2c\x54\x69\x6d\x65\x5a\x6f\x6e\x65\x2c\x4d\x6b\x74\x69\x6d\x65\x2c\x44\x69\x73\x70\x6c\x61\x79\x4d\x6f\x64\x65\x29\x20"
 "\x56\x41\x4c\x55\x45\x53\x28" "\'" "\x25\x71" "\'" "\x2c" "\'" "\x25\x71" "\'" "\x2c\x20\x27\x25\x64\x27\x2c" "\'" "\x25\x71" "\'" "\x2c\x27\x25\x64\x27\x2c\x27\x25\x64\x27\x2c\x27\x25\x64\x27\x2c" "\'" "\x25\x71" "\'" "\x2c\x27\x25\x64\x27\x2c" "\'" "\x25\x71" "\'" "\x2c\x27\x25\x64\x27\x2c\x20\x27\x25\x64\x27\x2c" "\'" "\x25\x71" "\'" "\x2c" "\'" "\x25\x71" "\'" "\x2c" "\'" "\x25\x71" "\'" "\x2c" "\'" "\x25\x71" "\'" "\x2c" "\'" "\x25\x71" "\'" "\x2c" "\'" "\x25\x71" "\'" "\x2c" "\'" "\x25\x71" "\'" "\x2c\x20" "\'" "\x25\x71" "\'" "\x2c" "\'" "\x25\x71" "\'" "\x2c" "\'" "\x25\x71" "\'" "\x2c\x27\x25\x64\x27\x2c\x20\x27\x25\x64\x27\x29\x3b"
 ,pac->FormatInd,mem_store,db_data->tag,db_data->number,db_data->concat_sms,
-db_data->concat_info[(0x15f3+375-0x176a)],db_data->concat_info[
-(0xa54+1879-0x11aa)],pac->FormatSeq,concat_num,format_concat,db_data->tp_dcs,
+db_data->concat_info[(0x1065+5355-0x2550)],db_data->concat_info[
+(0x1c64+14-0x1c71)],pac->FormatSeq,concat_num,format_concat,db_data->tp_dcs,
 db_data->msg_ref,content,"\x30",db_data->draft_group_id,db_data->julian_date.
 year,db_data->julian_date.month,db_data->julian_date.day,db_data->julian_date.
 hour,db_data->julian_date.min,db_data->julian_date.sec,db_data->julian_date.
@@ -279,21 +279,21 @@
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x49\x6e\x73\x65\x72\x74\x43\x6f\x6e\x63\x61\x74\x53\x6d\x73\x54\x6f\x44\x62\x20\x73\x71\x6c\x3d\x25\x73\x2e" "\n"
 ,sql);result=zUfiSms_ExecSql(sql,NULL,NULL);sqlite3_free(sql);return isSucess(
 result);}int zUfiSms_GetConcatMaxReferInDb(void){int ConcatMaxRefer=
-(0x1ecc+2054-0x26d2);int result=(0xfb0+3508-0x1d64);result=zUfiSms_ExecSql(
+(0x9bd+5647-0x1fcc);int result=(0x15e5+2292-0x1ed9);result=zUfiSms_ExecSql(
 "\x53\x45\x4c\x45\x43\x54\x20\x4d\x61\x78\x5f\x43\x63\x5f\x52\x65\x66\x20\x46\x52\x4f\x4d\x20"
  ZTE_WMS_DB_PARAMETER_TABLE
 "\x20\x57\x48\x45\x52\x45\x20\x69\x64\x20\x3d\x20\x31\x3b",
 zUfiSms_GetFirstColumnInt,&ConcatMaxRefer);if(ZTE_WMS_DB_OK!=result){return-
-(0xe31+6075-0x25eb);}return ConcatMaxRefer;}int zUfiSms_CreateTables(){int iMap=
-(0x92+7809-0x1f13);const T_zUfiSms_SQLMap SQL_MAP[]={{(0x1c07+1175-0x209d),
-ZTE_WMS_CREATE_TABLE_SMS_SQL},{(0xcaa+1400-0x1221),ZTE_WMS_DEL_SIM_SQL},{
-(0x31b+4007-0x12c1),ZTE_WMS_CREATE_CMD_STATUS_SQL},{(0x1a75+640-0x1cf4),
-ZTE_WMS_CREATE_SMS_REP_SQL},{(0x10d9+911-0x1467),ZTE_WMS_CREATE_PAR_SQL},{
-(0xe30+1151-0x12ae),ZTE_WMS_CREATE_INFO_SQL},{(0x6b0+815-0x9de),
-ZTE_WMS_CREATE_CELL_BRO_SQL},{(0x4c0+4153-0x14f8),
-ZTE_WMS_CREATE_SEND_CONTENT_SQL},};for(iMap=(0xa01+5863-0x20e8);iMap<sizeof(
+(0xb73+1122-0xfd4);}return ConcatMaxRefer;}int zUfiSms_CreateTables(){int iMap=
+(0x38c+7303-0x2013);const T_zUfiSms_SQLMap SQL_MAP[]={{(0x31f+4145-0x134f),
+ZTE_WMS_CREATE_TABLE_SMS_SQL},{(0x15b0+1203-0x1a62),ZTE_WMS_DEL_SIM_SQL},{
+(0x1098+4243-0x212a),ZTE_WMS_CREATE_CMD_STATUS_SQL},{(0x119a+309-0x12ce),
+ZTE_WMS_CREATE_SMS_REP_SQL},{(0x1d1c+1422-0x22a9),ZTE_WMS_CREATE_PAR_SQL},{
+(0xbe0+6894-0x26cd),ZTE_WMS_CREATE_INFO_SQL},{(0xd59+3573-0x1b4d),
+ZTE_WMS_CREATE_CELL_BRO_SQL},{(0xf6a+1985-0x172a),
+ZTE_WMS_CREATE_SEND_CONTENT_SQL},};for(iMap=(0x6a3+303-0x7d2);iMap<sizeof(
 SQL_MAP)/sizeof(T_zUfiSms_SQLMap);iMap++){if(SQL_MAP[iMap].valid==
-(0x110+4484-0x1293)){if(zUfiSms_ExecSql(SQL_MAP[iMap].strSQL,NULL,NULL)!=
+(0xdd1+5214-0x222e)){if(zUfiSms_ExecSql(SQL_MAP[iMap].strSQL,NULL,NULL)!=
 ZTE_WMS_DB_OK){return ZUFI_FAIL;}}}return ZUFI_SUCC;}int zUfiSms_CreateAllTable(
 void){if(ZTE_WMS_DB_OK!=zUfiSms_OpenDb()){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x63\x61\x6e\x20\x6e\x6f\x74\x20\x6f\x70\x65\x6e\x20\x64\x61\x74\x61\x62\x61\x73\x65\x2e\x72\x65\x74\x75\x72\x6e\x2e" "\n"
@@ -324,9 +324,9 @@
 "\x27\x25\x64\x27\x2c\x27\x25\x71\x27\x2c\x27\x25\x64\x27\x2c\x27\x25\x64\x27\x2c\x27\x25\x64\x27\x2c\x27\x25\x64\x27\x2c\x27\x25\x64\x27\x2c\x27\x25\x64\x27\x2c\x27\x25\x71\x27\x2c\x27\x25\x71\x27\x2c\x27\x25\x71\x27\x2c\x27\x25\x71\x27\x2c\x27\x25\x71\x27\x2c\x27\x25\x71\x27\x2c\x27\x25\x71\x27\x2c\x27\x25\x71\x27\x2c\x20"
 "\x27\x25\x71\x27\x2c\x27\x25\x71\x27\x2c\x27\x25\x75\x27\x2c\x20\x27\x25\x64\x27\x29\x3b"
 ,ptDbSaveData->index,pStorePos,ptDbSaveData->tag,ptDbSaveData->number,
-ptDbSaveData->concat_sms,ptDbSaveData->concat_info[(0x13db+3321-0x20d4)],
-ptDbSaveData->concat_info[(0x1098+1814-0x17ad)],ptDbSaveData->concat_info[
-(0x364+1-0x363)],ptDbSaveData->tp_dcs,ptDbSaveData->msg_ref,pContent,"\x30",
+ptDbSaveData->concat_sms,ptDbSaveData->concat_info[(0x496+4322-0x1578)],
+ptDbSaveData->concat_info[(0x4c7+6660-0x1eca)],ptDbSaveData->concat_info[
+(0x15+2086-0x839)],ptDbSaveData->tp_dcs,ptDbSaveData->msg_ref,pContent,"\x30",
 ptDbSaveData->draft_group_id,ptDbSaveData->julian_date.year,ptDbSaveData->
 julian_date.month,ptDbSaveData->julian_date.day,ptDbSaveData->julian_date.hour,
 ptDbSaveData->julian_date.min,ptDbSaveData->julian_date.sec,ptDbSaveData->
@@ -348,25 +348,25 @@
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x55\x70\x64\x61\x74\x65\x4e\x6f\x72\x6d\x61\x6c\x53\x6d\x73\x54\x6f\x44\x62\x20\x73\x71\x6c\x3d\x25\x73" "\n"
 ,strSQL);result=zUfiSms_ExecSql(strSQL,NULL,NULL);sqlite3_free(strSQL);return 
 isSucess(result);}int zUfiSms_GetFirstColumnStr(void*fvarg,int columns,char**
-zresult,char**lname){if(columns>=(0xdb4+2894-0x1901)&&fvarg!=NULL){if(zresult[
-(0x905+6569-0x22ae)]!=NULL){T_zUfiSms_BufInfo*para=(T_zUfiSms_BufInfo*)fvarg;
-strncpy(para->buf_addr,zresult[(0xe68+4443-0x1fc3)],para->buf_len-
-(0x932+3681-0x1792));return SQLITE_OK;}}return SQLITE_ERROR;}int 
+zresult,char**lname){if(columns>=(0x690+5053-0x1a4c)&&fvarg!=NULL){if(zresult[
+(0x14e7+4378-0x2601)]!=NULL){T_zUfiSms_BufInfo*para=(T_zUfiSms_BufInfo*)fvarg;
+strncpy(para->buf_addr,zresult[(0x1e28+362-0x1f92)],para->buf_len-
+(0x100d+2700-0x1a98));return SQLITE_OK;}}return SQLITE_ERROR;}int 
 zUfiSms_GetStorePosById(char*item,char*item_data,int item_len,int id){
 T_zUfiSms_DbResult result=ZTE_WMS_DB_OK;T_zUfiSms_BufInfo buf_info={
-(0x1d6b+1246-0x2249)};char*strSQL=NULL;if(NULL==item||NULL==item_data){return 
+(0x1070+746-0x135a)};char*strSQL=NULL;if(NULL==item||NULL==item_data){return 
 ZUFI_FAIL;}buf_info.buf_addr=item_data;buf_info.buf_len=item_len;strSQL=
 sqlite3_mprintf(
 "\x53\x45\x4c\x45\x43\x54\x20\x25\x71\x20\x46\x52\x4f\x4d\x20\x73\x6d\x73\x20\x57\x48\x45\x52\x45\x20\x69\x64\x3d\x27\x25\x64\x27\x3b"
 ,item,id);result=zUfiSms_ExecSql(strSQL,zUfiSms_GetFirstColumnStr,&buf_info);
-sqlite3_free(strSQL);if((ZTE_WMS_DB_OK!=result)||((0x2146+985-0x251f)==strcmp(
+sqlite3_free(strSQL);if((ZTE_WMS_DB_OK!=result)||((0x18f+4574-0x136d)==strcmp(
 item_data,""))){at_print(LOG_ERR,
 "\x67\x65\x74\x20\x74\x61\x62\x6c\x65\x5f\x6d\x65\x6d\x62\x65\x72\x20\x62\x79\x20\x69\x64\x20\x66\x61\x69\x6c\x65\x64\x2e" "\n"
 );return ZUFI_FAIL;}return ZUFI_SUCC;}int zUfiSms_DeleteSmsInDb(void){char sql[
-(0x20b+3329-0xe8c)]={(0xdb+602-0x335)};snprintf(sql,sizeof(sql),
+(0x904+3428-0x15e8)]={(0x26f+9012-0x25a3)};snprintf(sql,sizeof(sql),
 "\x44\x45\x4c\x45\x54\x45\x20\x46\x52\x4f\x4d\x20\x73\x6d\x73\x20\x57\x48\x45\x52\x45\x20\x4d\x65\x6d\x5f\x53\x74\x6f\x72\x65\x3d\x27\x25\x73\x27\x20\x61\x6e\x64\x20\x69\x64\x3d\x27\x25\x64\x27\x3b"
 ,ZTE_WMS_DB_SIM_TABLE,g_zUfiSms_DelMsg.sim_id[g_zUfiSms_DelMsg.sim_index-
-(0x796+7463-0x24bc)]);return isSucess(zUfiSms_ExecSql(sql,NULL,NULL));}int 
+(0x1787+2603-0x21b1)]);return isSucess(zUfiSms_ExecSql(sql,NULL,NULL));}int 
 zUfiSms_DeleteAllSimSmsInDb(void){return isSucess(zUfiSms_ExecSql(
 "\x44\x45\x4c\x45\x54\x45\x20\x46\x52\x4f\x4d\x20\x73\x6d\x73\x20\x57\x48\x45\x52\x45\x20\x4d\x65\x6d\x5f\x53\x74\x6f\x72\x65\x3d\x27"
  ZTE_WMS_DB_SIM_TABLE"\x27\x3b",NULL,NULL));}int zUfiSms_DeleteNvSms(void){if(
@@ -375,11 +375,11 @@
 "\x44\x45\x4c\x45\x54\x45\x20\x46\x52\x4f\x4d\x20\x73\x6d\x73\x20\x57\x48\x45\x52\x45\x20\x4d\x65\x6d\x5f\x53\x74\x6f\x72\x65\x3d\x27"
  ZTE_WMS_DB_NV_TABLE"\x27\x3b",NULL,NULL)){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x44\x65\x6c\x65\x74\x65\x4e\x76\x53\x6d\x73\x3a\x64\x65\x6c\x65\x74\x65\x20\x66\x61\x69\x6c" "\n"
-);return WMS_CMD_FAILED;}}else{int i=(0x119f+2402-0x1b01);printf(
+);return WMS_CMD_FAILED;}}else{int i=(0x1880+3000-0x2438);printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x44\x65\x6c\x65\x74\x65\x4e\x76\x53\x6d\x73\x3a\x64\x65\x6c\x65\x74\x65\x20\x6e\x76\x5f\x63\x6f\x75\x6e\x74\x3d\x25\x64" "\n"
-,g_zUfiSms_DelMsg.nv_count);for(i=(0x1612+1439-0x1bb1);i<g_zUfiSms_DelMsg.
-nv_count;i++){char sql[(0x14b8+1237-0x190d)]={(0x367+2060-0xb73)};snprintf(sql,
-sizeof(sql),
+,g_zUfiSms_DelMsg.nv_count);for(i=(0xd1+905-0x45a);i<g_zUfiSms_DelMsg.nv_count;i
+++){char sql[(0x50c+7756-0x22d8)]={(0x19d4+2052-0x21d8)};snprintf(sql,sizeof(sql
+),
 "\x44\x45\x4c\x45\x54\x45\x20\x46\x52\x4f\x4d\x20\x73\x6d\x73\x20\x57\x48\x45\x52\x45\x20\x4d\x65\x6d\x5f\x53\x74\x6f\x72\x65\x3d\x27\x25\x73\x27\x20\x61\x6e\x64\x20\x69\x64\x3d\x27\x25\x64\x27\x3b"
 ,ZTE_WMS_DB_NV_TABLE,g_zUfiSms_DelMsg.nv_id[i]);if(ZTE_WMS_DB_OK!=
 zUfiSms_ExecSql(sql,NULL,NULL)){printf(
@@ -387,40 +387,39 @@
 ,i);return WMS_CMD_FAILED;}}}printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x44\x65\x6c\x65\x74\x65\x4e\x76\x53\x6d\x73\x3a\x64\x65\x6c\x65\x74\x65\x20\x73\x75\x63\x63\x65\x73\x73" "\n"
 );return WMS_CMD_SUCCESS;}int zUfiSms_GetSmsIndex(int id,T_zUfiSms_ModifyTag*
-ptModifyTag,int is_cc){char sql[(0x1141+963-0x1484)]={(0x67b+297-0x7a4)};
-T_zUfiSms_BufInfo buf_info={(0x268f+7-0x2696)};char str_index[
-(0x1bb5+267-0x1cbe)*WMS_MESSAGE_LIST_MAX]={(0x1541+3905-0x2482)};buf_info.
+ptModifyTag,int is_cc){char sql[(0xa0a+15-0x999)]={(0x1e38+141-0x1ec5)};
+T_zUfiSms_BufInfo buf_info={(0xd6d+1791-0x146c)};char str_index[
+(0x974+3195-0x15ed)*WMS_MESSAGE_LIST_MAX]={(0x825+7643-0x2600)};buf_info.
 buf_addr=str_index;buf_info.buf_len=sizeof(str_index);snprintf(sql,sizeof(sql),
 "\x53\x45\x4c\x45\x43\x54\x20\x69\x6e\x64\x20\x46\x52\x4f\x4d\x20\x73\x6d\x73\x20\x57\x48\x45\x52\x45\x20\x69\x64\x3d\x27\x25\x64\x27\x3b"
 ,id);if(zUfiSms_ExecSql(sql,zUfiSms_GetFirstColumnStr,&buf_info)!=ZTE_WMS_DB_OK)
 {at_print(LOG_ERR,
 "\x6f\x70\x65\x6e\x20\x74\x61\x62\x6c\x65\x20\x73\x6d\x73\x20\x66\x61\x69\x6c\x65\x64"
-);return ZUFI_FAIL;}if((0xc57+5861-0x233b)==is_cc){int i=(0x70d+6237-0x1f6a);int
- j=(0xef+2965-0xc84);int count=(0x619+4064-0x15f9);char**out_result=NULL;count=
-zUfiSms_SplitString(str_index,&out_result,((char)(0x1b25+836-0x1e2e)));for(i=
-(0x894+1243-0xd6f);i<count;i++){if((0x763+7096-0x231b)!=strcmp(out_result[i],"")
-){ptModifyTag->indices[j++]=atoi(out_result[i]);}}ptModifyTag->num_of_indices=j;
-free(out_result);}else{ptModifyTag->indices[(0x123b+4729-0x24b4)]=atoi(str_index
-);ptModifyTag->num_of_indices=(0x76c+2153-0xfd4);}ptModifyTag->total_indices=
-ptModifyTag->num_of_indices;printf(
+);return ZUFI_FAIL;}if((0xdc+1572-0x6ff)==is_cc){int i=(0xc39+5294-0x20e7);int j
+=(0x1409+3274-0x20d3);int count=(0x206+7055-0x1d95);char**out_result=NULL;count=
+zUfiSms_SplitString(str_index,&out_result,((char)(0x1550+896-0x1895)));for(i=
+(0x1143+5412-0x2667);i<count;i++){if((0x9e7+7426-0x26e9)!=strcmp(out_result[i],
+"")){ptModifyTag->indices[j++]=atoi(out_result[i]);}}ptModifyTag->num_of_indices
+=j;free(out_result);}else{ptModifyTag->indices[(0x697+6387-0x1f8a)]=atoi(
+str_index);ptModifyTag->num_of_indices=(0x1078+97-0x10d8);}ptModifyTag->
+total_indices=ptModifyTag->num_of_indices;printf(
 "\x6d\x6f\x64\x69\x66\x79\x5f\x74\x61\x67\x5f\x70\x74\x72\x2d\x3e\x74\x6f\x74\x61\x6c\x5f\x69\x6e\x64\x69\x63\x65\x73\x3d\x25\x64" "\n"
 ,ptModifyTag->total_indices);return ZUFI_SUCC;}int zUfiSms_IsConcatSms(int id){
-char sql[(0x1978+2102-0x212e)]={(0x4ff+3934-0x145d)};int is_cc=
-(0x741+6399-0x2040);T_zUfiSms_DbResult result=ZTE_WMS_DB_OK;snprintf(sql,sizeof(
-sql),
+char sql[(0x7bc+5864-0x1e24)]={(0x684+2192-0xf14)};int is_cc=(0x66b+4494-0x17f9)
+;T_zUfiSms_DbResult result=ZTE_WMS_DB_OK;snprintf(sql,sizeof(sql),
 "\x53\x45\x4c\x45\x43\x54\x20\x43\x63\x5f\x53\x6d\x73\x20\x46\x52\x4f\x4d\x20\x25\x73\x20\x57\x48\x45\x52\x45\x20\x69\x64\x3d\x27\x25\x64\x27\x3b"
 ,ZTE_WMS_DB_SMS_TABLE,id);result=zUfiSms_ExecSql(sql,zUfiSms_GetFirstColumnInt,&
 is_cc);if(ZTE_WMS_DB_OK!=result){at_print(LOG_ERR,
 "\x6f\x70\x65\x6e\x20\x74\x61\x62\x6c\x65\x20\x25\x73\x20\x66\x61\x69\x6c\x65\x64"
-,ZTE_WMS_DB_SMS_TABLE);return-(0x23a2+662-0x2637);}return is_cc;}int 
+,ZTE_WMS_DB_SMS_TABLE);return-(0x1559+3275-0x2223);}return is_cc;}int 
 zUfiSms_UpdateSmsTagInDb(unsigned long id,unsigned int tags){char sql[
-(0x12b+2468-0xa4f)]={(0x10a+4636-0x1326)};snprintf(sql,sizeof(sql),
+(0x2526+185-0x255f)]={(0x4f9+8144-0x24c9)};snprintf(sql,sizeof(sql),
 "\x55\x50\x44\x41\x54\x45\x20\x25\x73\x20\x53\x45\x54\x20\x54\x61\x67\x3d\x27\x25\x64\x27\x20\x57\x48\x45\x52\x45\x20\x69\x64\x3d\x27\x25\x64\x27\x3b"
 ,ZTE_WMS_DB_SMS_TABLE,tags,id);return isSucess(zUfiSms_ExecSql(sql,NULL,NULL));}
 int zUfiSms_GetTagCountInDb(T_zUfiSms_MemoryType mem_store,unsigned int tags,int
-*pTotalCount){T_zUfiSms_DbResult result=ZTE_WMS_DB_OK;char sql[(0x906+634-0xb00)
-]={(0x692+5267-0x1b25)};if(pTotalCount==NULL){return ZUFI_FAIL;}if(mem_store==
-ZTE_WMS_MEMORY_MAX){snprintf(sql,sizeof(sql),
+*pTotalCount){T_zUfiSms_DbResult result=ZTE_WMS_DB_OK;char sql[
+(0xeea+6096-0x263a)]={(0x29a+5700-0x18de)};if(pTotalCount==NULL){return 
+ZUFI_FAIL;}if(mem_store==ZTE_WMS_MEMORY_MAX){snprintf(sql,sizeof(sql),
 "\x53\x45\x4c\x45\x43\x54\x20\x63\x6f\x75\x6e\x74\x28\x2a\x29\x20\x46\x52\x4f\x4d\x20\x25\x73\x20\x57\x48\x45\x52\x45\x20\x54\x61\x67\x3d\x27\x25\x64\x27\x3b"
 ,ZTE_WMS_DB_SMS_TABLE,tags);}else if(mem_store==ZTE_WMS_MEMORY_NV){snprintf(sql,
 sizeof(sql),
@@ -429,18 +428,18 @@
 "\x53\x45\x4c\x45\x43\x54\x20\x63\x6f\x75\x6e\x74\x28\x2a\x29\x20\x46\x52\x4f\x4d\x20\x25\x73\x20\x57\x48\x45\x52\x45\x20\x4d\x65\x6d\x5f\x53\x74\x6f\x72\x65\x3d\x27\x25\x73\x27\x20\x41\x4e\x44\x20\x54\x61\x67\x3d\x27\x25\x64\x27\x3b"
 ,ZTE_WMS_DB_SMS_TABLE,ZTE_WMS_DB_SIM_TABLE,tags);}result=zUfiSms_ExecSql(sql,(
 zte_wms_db_callback)zUfiSms_GetFirstColumnInt,pTotalCount);return isSucess(
-result);}int zUfiSms_DeleteDraftSms(long iSmsId){char sql[(0x5cb+6757-0x1fb0)]={
-(0x707+4645-0x192c)};snprintf(sql,sizeof(sql),
+result);}int zUfiSms_DeleteDraftSms(long iSmsId){char sql[(0x7a3+5706-0x1d6d)]={
+(0x1339+3977-0x22c2)};snprintf(sql,sizeof(sql),
 "\x44\x45\x4c\x45\x54\x45\x20\x46\x52\x4f\x4d\x20\x25\x73\x20\x57\x48\x45\x52\x45\x20\x69\x64\x3d\x27\x25\x6c\x64\x27\x3b"
 ,ZTE_WMS_DB_SMS_TABLE,iSmsId);return isSucess(zUfiSms_ExecSql(sql,NULL,NULL));}
-int zUfiSms_SetConcatMaxRefer(int ref){char sql[(0x82f+6461-0x20ec)]={
-(0x8b4+5053-0x1c71)};if(ZTE_WMS_MAX_CONCAT_REF<ref){ref=(0x1c7+953-0x580);}
+int zUfiSms_SetConcatMaxRefer(int ref){char sql[(0x684+4447-0x1763)]={
+(0xe45+4859-0x2140)};if(ZTE_WMS_MAX_CONCAT_REF<ref){ref=(0x1196+682-0x1440);}
 snprintf(sql,sizeof(sql),
 "\x55\x50\x44\x41\x54\x45\x20\x25\x73\x20\x53\x45\x54\x20\x4d\x61\x78\x5f\x43\x63\x5f\x52\x65\x66\x3d\x27\x25\x64\x27\x20\x57\x48\x45\x52\x45\x20\x69\x64\x3d\x31\x3b"
 ,ZTE_WMS_DB_PARAMETER_TABLE,ref);return isSucess(zUfiSms_ExecSql(sql,NULL,NULL))
-;}int zUfiSms_SetMaxReference(int ref){char sql[(0x736+3449-0x142f)]={
-(0x189f+2653-0x22fc)};if(ZTE_WMS_MAX_SMS_REF<ref){ref=(0x28d+342-0x3e3);}
-snprintf(sql,sizeof(sql),
+;}int zUfiSms_SetMaxReference(int ref){char sql[(0x47a+6747-0x1e55)]={
+(0x8c0+2599-0x12e7)};if(ZTE_WMS_MAX_SMS_REF<ref){ref=(0x6b8+735-0x997);}snprintf
+(sql,sizeof(sql),
 "\x55\x50\x44\x41\x54\x45\x20\x25\x73\x20\x53\x45\x54\x20\x4d\x61\x78\x5f\x53\x6d\x73\x5f\x52\x65\x66\x3d\x27\x25\x64\x27\x20\x57\x48\x45\x52\x45\x20\x69\x64\x3d\x31\x3b"
 ,ZTE_WMS_DB_PARAMETER_TABLE,ref);return isSucess(zUfiSms_ExecSql(sql,NULL,NULL))
 ;}int zUfiSms_InsertReportStatusToDb(unsigned char*pNumber,T_zUfiSms_Date*
@@ -452,75 +451,74 @@
 ->hour,ptSmsDate->min,ptSmsDate->sec,ptSmsDate->timezone);result=zUfiSms_ExecSql
 (strSQL,NULL,NULL);sqlite3_free(strSQL);return isSucess(result);}int 
 zUfiSms_GetFirstColumnParaInfo(void*fvarg,int columns,char**zresult,char**lname)
-{if(columns>=(0x64c+7476-0x237f)&&fvarg!=NULL){if(zresult[(0x87a+6748-0x22d6)]!=
+{if(columns>=(0xbd+4557-0x1289)&&fvarg!=NULL){if(zresult[(0x15b8+2918-0x211e)]!=
 NULL){T_zUfiSms_ParaInfo*para=(T_zUfiSms_ParaInfo*)fvarg;strncpy(para->sca,
-zresult[(0xaa5+2537-0x148e)],sizeof(para->sca)-(0x1835+499-0x1a27));para->
-mem_store=atoi(zresult[(0x4bb+6923-0x1fc5)]);para->tp_validity_period=atoi(
-zresult[(0x5d8+7953-0x24e7)]);para->status_report_on=atoi(zresult[
-(0x585+5141-0x1997)]);para->sendfail_retry_on=atoi(zresult[(0x2006+1660-0x267e)]
-);para->outdate_delete_on=atoi(zresult[(0xcf6+4637-0x1f0e)]);(void)strncpy(para
-->default_store,zresult[(0xb9f+243-0xc8c)],sizeof(para->default_store)-
-(0x12e4+4863-0x25e2));return SQLITE_OK;}}return SQLITE_ERROR;}int 
+zresult[(0x252+2202-0xaec)],sizeof(para->sca)-(0xbd5+6844-0x2690));para->
+mem_store=atoi(zresult[(0x1455+2192-0x1ce4)]);para->tp_validity_period=atoi(
+zresult[(0xc91+1379-0x11f2)]);para->status_report_on=atoi(zresult[
+(0x1fb+892-0x574)]);para->sendfail_retry_on=atoi(zresult[(0x494+8210-0x24a2)]);
+para->outdate_delete_on=atoi(zresult[(0x1412+3408-0x215d)]);(void)strncpy(para->
+default_store,zresult[(0x2133+85-0x2182)],sizeof(para->default_store)-
+(0x401+6092-0x1bcc));return SQLITE_OK;}}return SQLITE_ERROR;}int 
 zUfiSms_GetDbParameters(void){char*strSQL=
 "\x53\x45\x4c\x45\x43\x54\x20\x53\x6d\x73\x5f\x53\x63\x61\x2c\x4d\x65\x6d\x5f\x53\x74\x6f\x72\x65\x2c\x54\x70\x5f\x56\x61\x6c\x69\x64\x69\x74\x79\x2c\x53\x6d\x73\x5f\x52\x65\x70\x6f\x72\x74\x2c\x53\x65\x6e\x64\x5f\x52\x65\x74\x72\x79\x2c\x4f\x75\x74\x64\x61\x74\x65\x5f\x44\x65\x6c\x65\x74\x65\x2c\x44\x65\x66\x61\x75\x6c\x74\x5f\x53\x74\x6f\x72\x65\x20\x46\x52\x4f\x4d\x20"
  ZTE_WMS_DB_PARAMETER_TABLE"\x3b";memset(&g_zUfiSms_CurSmsPara,
-(0x562+4540-0x171e),sizeof(T_zUfiSms_ParaInfo));return isSucess(zUfiSms_ExecSql(
-strSQL,zUfiSms_GetFirstColumnParaInfo,&g_zUfiSms_CurSmsPara));}int 
+(0x1446+1298-0x1958),sizeof(T_zUfiSms_ParaInfo));return isSucess(zUfiSms_ExecSql
+(strSQL,zUfiSms_GetFirstColumnParaInfo,&g_zUfiSms_CurSmsPara));}int 
 zUfiSms_GetSendContent(void*fvarg,int column,char**zresult,char**lname){
-T_zUfiSms_BufInfo*para=(T_zUfiSms_BufInfo*)fvarg;if(column>=(0x882+1734-0xf47)&&
-para!=NULL)(void)strncpy(para->buf_addr,zresult[(0x69a+4230-0x1720)],para->
-buf_len-(0x1399+2699-0x1e23));return(0x695+4906-0x19bf);}int 
+T_zUfiSms_BufInfo*para=(T_zUfiSms_BufInfo*)fvarg;if(column>=(0xf08+2893-0x1a54)
+&&para!=NULL)(void)strncpy(para->buf_addr,zresult[(0x1885+2779-0x2360)],para->
+buf_len-(0x254+5046-0x1609));return(0x1b95+2113-0x23d6);}int 
 zUfiSms_GetSmsContent(char*pSmsBuf,int len){T_zUfiSms_BufInfo buf_info={
-(0x6d5+8019-0x2628)};char*strSQL=
+(0xd9+298-0x203)};char*strSQL=
 "\x53\x45\x4c\x45\x43\x54\x20\x6d\x73\x67\x5f\x63\x6f\x6e\x74\x65\x6e\x74\x20\x46\x52\x4f\x4d\x20"
  ZTE_WMS_DB_SEND_CONTENT_TABLE"\x3b";buf_info.buf_addr=pSmsBuf;buf_info.buf_len=
-len;memset(buf_info.buf_addr,(0x495+8625-0x2646),len);return isSucess(
+len;memset(buf_info.buf_addr,(0x11b7+2855-0x1cde),len);return isSucess(
 zUfiSms_ExecSql(strSQL,zUfiSms_GetSendContent,&buf_info));}int 
 zUfiSms_SearchConcatSmsInDb(T_zUfiSms_DbStoreData*ptDbSaveData,char*pMemStore){
-char*sql=NULL;sqlite3_stmt*stmt=NULL;int id=-(0x9b+2174-0x918);switch(
+char*sql=NULL;sqlite3_stmt*stmt=NULL;int id=-(0xaba+6343-0x2380);switch(
 ptDbSaveData->tag){case WMS_TAG_TYPE_MO_SENT_V01:case 
 WMS_TAG_TYPE_MO_NOT_SENT_V01:{sql=sqlite3_mprintf(
 "\x53\x45\x4c\x45\x43\x54\x20\x43\x63\x5f\x53\x65\x71\x2c\x69\x64\x20\x46\x52\x4f\x4d\x20\x73\x6d\x73\x20\x57\x48\x45\x52\x45\x20\x4e\x75\x6d\x62\x65\x72\x3d\x27\x25\x71\x27\x20\x41\x4e\x44\x20\x43\x63\x5f\x52\x65\x66\x3d\x27\x25\x64\x27\x20\x41\x4e\x44\x20\x43\x63\x5f\x54\x6f\x74\x61\x6c\x3d\x27\x25\x64\x27\x20\x41\x4e\x44\x20\x4d\x65\x6d\x5f\x53\x74\x6f\x72\x65\x3d\x27\x25\x73\x27\x20\x41\x4e\x44\x20\x28\x54\x61\x67\x20\x3d\x20\x27\x25\x64\x27\x20\x4f\x52\x20\x54\x61\x67\x3d\x20\x27\x25\x64\x27\x29\x3b"
-,ptDbSaveData->number,ptDbSaveData->concat_info[(0x233f+698-0x25f9)],
-ptDbSaveData->concat_info[(0xfe7+4500-0x217a)],pMemStore,
+,ptDbSaveData->number,ptDbSaveData->concat_info[(0x7b3+5599-0x1d92)],
+ptDbSaveData->concat_info[(0x81c+5021-0x1bb8)],pMemStore,
 WMS_TAG_TYPE_MO_SENT_V01,WMS_TAG_TYPE_MO_NOT_SENT_V01);break;}case
-(0xa18+1776-0x1104):{sql=sqlite3_mprintf(
+(0xde8+3590-0x1bea):{sql=sqlite3_mprintf(
 "\x53\x45\x4c\x45\x43\x54\x20\x43\x63\x5f\x53\x65\x71\x2c\x69\x64\x20\x46\x52\x4f\x4d\x20\x73\x6d\x73\x20\x57\x48\x45\x52\x45\x20\x4e\x75\x6d\x62\x65\x72\x3d\x27\x25\x71\x27\x20\x41\x4e\x44\x20\x43\x63\x5f\x52\x65\x66\x3d\x27\x25\x64\x27\x20\x41\x4e\x44\x20\x43\x63\x5f\x54\x6f\x74\x61\x6c\x3d\x27\x25\x64\x27\x20\x41\x4e\x44\x20\x4d\x65\x6d\x5f\x53\x74\x6f\x72\x65\x3d\x27\x25\x73\x27\x20\x41\x4e\x44\x20\x54\x61\x67\x20\x3d\x20\x27\x25\x64\x27\x3b"
-,ptDbSaveData->number,ptDbSaveData->concat_info[(0x2487+33-0x24a8)],ptDbSaveData
-->concat_info[(0x17c2+3437-0x252e)],pMemStore,(0xc2b+5463-0x217e));break;}case 
+,ptDbSaveData->number,ptDbSaveData->concat_info[(0xcac+457-0xe75)],ptDbSaveData
+->concat_info[(0x8b7+6076-0x2072)],pMemStore,(0x783+4517-0x1924));break;}case 
 WMS_TAG_TYPE_MT_READ_V01:case WMS_TAG_TYPE_MT_NOT_READ_V01:{sql=sqlite3_mprintf(
 "\x53\x45\x4c\x45\x43\x54\x20\x43\x63\x5f\x53\x65\x71\x2c\x69\x64\x20\x46\x52\x4f\x4d\x20\x73\x6d\x73\x20\x57\x48\x45\x52\x45\x20\x4e\x75\x6d\x62\x65\x72\x3d\x27\x25\x71\x27\x20\x41\x4e\x44\x20\x43\x63\x5f\x52\x65\x66\x3d\x27\x25\x64\x27\x20\x41\x4e\x44\x20\x43\x63\x5f\x54\x6f\x74\x61\x6c\x3d\x27\x25\x64\x27\x20\x41\x4e\x44\x20\x4d\x65\x6d\x5f\x53\x74\x6f\x72\x65\x3d\x27\x25\x73\x27\x20\x41\x4e\x44\x20\x28\x54\x61\x67\x20\x3d\x20\x27\x25\x64\x27\x20\x4f\x52\x20\x54\x61\x67\x3d\x20\x27\x25\x64\x27\x29\x3b"
-,ptDbSaveData->number,ptDbSaveData->concat_info[(0x115f+4739-0x23e2)],
-ptDbSaveData->concat_info[(0x16a3+696-0x195a)],pMemStore,
-WMS_TAG_TYPE_MT_READ_V01,WMS_TAG_TYPE_MT_NOT_READ_V01);break;}default:{sql=
-sqlite3_mprintf(
+,ptDbSaveData->number,ptDbSaveData->concat_info[(0xd63+1880-0x14bb)],
+ptDbSaveData->concat_info[(0x77+1959-0x81d)],pMemStore,WMS_TAG_TYPE_MT_READ_V01,
+WMS_TAG_TYPE_MT_NOT_READ_V01);break;}default:{sql=sqlite3_mprintf(
 "\x53\x45\x4c\x45\x43\x54\x20\x43\x63\x5f\x53\x65\x71\x2c\x69\x64\x20\x46\x52\x4f\x4d\x20\x73\x6d\x73\x20\x57\x48\x45\x52\x45\x20\x4e\x75\x6d\x62\x65\x72\x3d\x27\x25\x71\x27\x20\x41\x4e\x44\x20\x43\x63\x5f\x52\x65\x66\x3d\x27\x25\x64\x27\x20\x41\x4e\x44\x20\x43\x63\x5f\x54\x6f\x74\x61\x6c\x3d\x27\x25\x64\x27\x20\x41\x4e\x44\x20\x4d\x65\x6d\x5f\x53\x74\x6f\x72\x65\x3d\x27\x25\x73\x27\x3b"
-,ptDbSaveData->number,ptDbSaveData->concat_info[(0x646+6394-0x1f40)],
-ptDbSaveData->concat_info[(0x3e1+2663-0xe47)],pMemStore);at_print(LOG_ERR,
+,ptDbSaveData->number,ptDbSaveData->concat_info[(0xd0+2439-0xa57)],ptDbSaveData
+->concat_info[(0x478+2631-0xebe)],pMemStore);at_print(LOG_ERR,
 "\x74\x61\x67\x20\x25\x64\x20\x69\x73\x20\x75\x6e\x6b\x6e\x6f\x77\x6e",
 ptDbSaveData->tag);break;}}printf(
 "\x5b\x53\x4d\x53\x5d\x20\x74\x65\x65\x74\x3a\x25\x73" "\n",sql);if(
-sqlite3_prepare(g_zUfiSms_DbPointer,sql,-(0x271+4376-0x1388),&stmt,
-(0x366+1194-0x810))!=SQLITE_OK){at_print(LOG_ERR,
+sqlite3_prepare(g_zUfiSms_DbPointer,sql,-(0x22aa+1000-0x2691),&stmt,
+(0x14ed+4258-0x258f))!=SQLITE_OK){at_print(LOG_ERR,
 "\x63\x61\x6e\x20\x6e\x6f\x74\x20\x65\x78\x65\x63\x20\x73\x71\x6c\x2c\x73\x71\x6c\x69\x74\x65\x33\x5f\x65\x72\x72\x6d\x73\x67\x3a\x25\x73\x2e" "\n"
-,sqlite3_errmsg(g_zUfiSms_DbPointer));sqlite3_free(sql);return-
-(0x1a48+3223-0x26de);}while(SQLITE_ROW==sqlite3_step(stmt)){int j=
-(0x86d+1382-0xdd3);char**out_result=NULL;char*column_text=sqlite3_column_text(
-stmt,(0x16b6+142-0x1744));int count=-(0x5d9+3002-0x1192);if(column_text!=NULL)
-count=zUfiSms_SplitString(column_text,&out_result,((char)(0xb4+6869-0x1b4e)));
-for(j=(0x22cc+596-0x2520);j<count;j++){if((0xd5b+6356-0x262f)==strcmp(out_result
-[j],"")){if(j+(0x161+7232-0x1da0)==ptDbSaveData->concat_info[
-(0x1731+1026-0x1b31)]){id=sqlite3_column_int(stmt,(0x19f0+2194-0x2281));break;}}
-}if(out_result!=NULL){free(out_result);out_result=NULL;}if(-(0x1890+2088-0x20b7)
-!=id){break;}}(void)sqlite3_finalize(stmt);sqlite3_free(sql);return id;}int 
+,sqlite3_errmsg(g_zUfiSms_DbPointer));sqlite3_free(sql);return-(0xd8+3778-0xf99)
+;}while(SQLITE_ROW==sqlite3_step(stmt)){int j=(0x35d+8266-0x23a7);char**
+out_result=NULL;char*column_text=sqlite3_column_text(stmt,(0x1f00+91-0x1f5b));
+int count=-(0x210d+283-0x2227);if(column_text!=NULL)count=zUfiSms_SplitString(
+column_text,&out_result,((char)(0x498+6962-0x1f8f)));for(j=(0x4+238-0xf2);j<
+count;j++){if((0xcaf+4990-0x202d)==strcmp(out_result[j],"")){if(j+
+(0x578+6683-0x1f92)==ptDbSaveData->concat_info[(0x168c+685-0x1937)]){id=
+sqlite3_column_int(stmt,(0x1f4d+1052-0x2368));break;}}}if(out_result!=NULL){free
+(out_result);out_result=NULL;}if(-(0x5c5+5798-0x1c6a)!=id){break;}}(void)
+sqlite3_finalize(stmt);sqlite3_free(sql);return id;}int 
 zUfiSms_CheckDbOutdateSms_Callback(void*fvarg,int columns,char**zresult,char**
-lname){if(fvarg!=NULL&&columns>=(0x2c8+3057-0xeb8)){if(zresult[
-(0x1d74+1740-0x2440)]!=NULL){T_zUfiSms_DelReq*result=(T_zUfiSms_DelReq*)fvarg;
-result->id[result->all_or_count]=atoi(zresult[(0x260+8277-0x22b5)]);result->
+lname){if(fvarg!=NULL&&columns>=(0x1bc+7159-0x1db2)){if(zresult[
+(0x12f9+4417-0x243a)]!=NULL){T_zUfiSms_DelReq*result=(T_zUfiSms_DelReq*)fvarg;
+result->id[result->all_or_count]=atoi(zresult[(0x127a+3234-0x1f1c)]);result->
 all_or_count++;return SQLITE_OK;}}return SQLITE_ERROR;}VOID 
 zUfiSms_CheckDbOutdateSms(const char*pDbTable,T_zUfiSms_DelReq*pSmsDel){char 
-acSql[(0x108c+2203-0x18a7)]={(0x17+6103-0x17ee)};struct timeval tp;if(
-(0xf2f+1483-0x14fa)!=gettimeofday(&tp,NULL)){printf(
+acSql[(0xd52+6455-0x2609)]={(0x269+8629-0x241e)};struct timeval tp;if(
+(0x2570+388-0x26f4)!=gettimeofday(&tp,NULL)){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x67\x65\x74\x74\x69\x6d\x65\x6f\x66\x64\x61\x79\x20\x65\x72\x72\x6f\x72\x21\x21\x21"
 );return;}if(tp.tv_sec<=OUTDATEINTERVAL){return;}snprintf(acSql,sizeof(acSql),
 "\x53\x45\x4c\x45\x43\x54\x20\x69\x64\x20\x46\x52\x4f\x4d\x20\x25\x73\x20\x57\x48\x45\x52\x45\x20\x4d\x6b\x74\x69\x6d\x65\x3c\x27\x25\x75\x27\x20\x41\x4e\x44\x20\x4d\x65\x6d\x5f\x53\x74\x6f\x72\x65\x3d\x27\x25\x73\x27\x3b"
@@ -530,21 +528,21 @@
 "\x6f\x70\x65\x6e\x20\x74\x61\x62\x6c\x65\x20\x25\x73\x20\x66\x61\x69\x6c\x65\x64"
 ,ZTE_WMS_DB_CMD_STATUS_TABLE);}return;}int 
 zUfiSms_GetCurrentRecvTotalSeq_Callback(void*fvarg,int column,char**zresult,char
-**lname){if(fvarg!=NULL&&column>=(0x56b+5321-0x1a32)){if(zresult[
-(0x6b1+5269-0x1b46)]!=NULL&&zresult[(0x14d4+135-0x155a)]!=NULL){SMS_MSG_INFO*msg
-=(SMS_MSG_INFO*)fvarg;memset(msg->id,(0x970+853-0xcc5),sizeof(msg->id));memset(
-msg->total_seq,(0xcfb+893-0x1078),sizeof(msg->total_seq));strncpy(msg->id,
-zresult[(0x35b+8358-0x2401)],sizeof(msg->id)-(0xefb+338-0x104c));strncpy(msg->
-total_seq,zresult[(0x207+3264-0xec6)],sizeof(msg->total_seq)-(0x986+6684-0x23a1)
-);printf(
+**lname){if(fvarg!=NULL&&column>=(0xc6+880-0x434)){if(zresult[(0xf14+272-0x1024)
+]!=NULL&&zresult[(0x7d9+5231-0x1c47)]!=NULL){SMS_MSG_INFO*msg=(SMS_MSG_INFO*)
+fvarg;memset(msg->id,(0x49b+762-0x795),sizeof(msg->id));memset(msg->total_seq,
+(0x1c51+1836-0x237d),sizeof(msg->total_seq));strncpy(msg->id,zresult[
+(0x21e7+564-0x241b)],sizeof(msg->id)-(0x17a5+1094-0x1bea));strncpy(msg->
+total_seq,zresult[(0x1a2+5534-0x173f)],sizeof(msg->total_seq)-
+(0x11b+5382-0x1620));printf(
 "\x5b\x53\x4d\x53\x5d\x5b\x74\x72\x61\x66\x66\x69\x63\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x47\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x52\x65\x63\x76\x54\x6f\x74\x61\x6c\x53\x65\x71\x5f\x43\x61\x6c\x6c\x62\x61\x63\x6b\x20\x69\x64\x20\x3d\x20\x25\x73\x2c\x20\x74\x6f\x74\x61\x6c\x5f\x73\x65\x71\x20\x3d\x20\x25\x73" "\n"
 ,msg->id,msg->total_seq);return SQLITE_OK;}}return SQLITE_ERROR;}int 
 zUfiSms_GetCurrentRecvTotalSeq(T_zUfiSms_DbStoreData*ptDbSaveData,SMS_MSG_INFO*
 pmsg){T_zUfiSms_DbResult result=ZTE_WMS_DB_OK;char*strSQL=NULL;strSQL=
 sqlite3_mprintf(
 "\x53\x45\x4c\x45\x43\x54\x20\x69\x64\x2c\x20\x43\x63\x5f\x4e\x75\x6d\x20\x46\x52\x4f\x4d\x20\x73\x6d\x73\x20\x57\x48\x45\x52\x45\x20\x20\x6e\x75\x6d\x62\x65\x72\x3d\x27\x25\x71\x27\x20\x41\x4e\x44\x20\x43\x63\x5f\x52\x65\x66\x3d\x27\x25\x64\x27\x20\x41\x4e\x44\x20\x43\x63\x5f\x54\x6f\x74\x61\x6c\x3d\x27\x25\x64\x27\x3b"
-,ptDbSaveData->number,ptDbSaveData->concat_info[(0xa3c+6601-0x2405)],
-ptDbSaveData->concat_info[(0x1b9b+1413-0x211f)]);printf(
+,ptDbSaveData->number,ptDbSaveData->concat_info[(0x1080+3751-0x1f27)],
+ptDbSaveData->concat_info[(0x1054+4264-0x20fb)]);printf(
 "\x5b\x53\x4d\x53\x5d\x5b\x74\x72\x61\x66\x66\x69\x63\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x47\x65\x74\x43\x75\x72\x72\x65\x6e\x74\x52\x65\x63\x76\x54\x6f\x74\x61\x6c\x53\x65\x71\x20\x73\x71\x6c\x20\x3a\x20\x25\x73\x20" "\n"
 ,strSQL);result=zUfiSms_ExecSql(strSQL,zUfiSms_GetCurrentRecvTotalSeq_Callback,
 pmsg);sqlite3_free(strSQL);return isSucess(result);}
diff --git a/ap/app/zte_comm/sms/src/sms_fnc.c b/ap/app/zte_comm/sms/src/sms_fnc.c
index eeff087..e233528 100755
--- a/ap/app/zte_comm/sms/src/sms_fnc.c
+++ b/ap/app/zte_comm/sms/src/sms_fnc.c
@@ -8,22 +8,22 @@
 #include "sms_fnc.h"

 #include "sms_db.h"

 #include "sms_code.h"

-#define SMS_RETRY_COUNT (0xac7+2690-0x1546)

-#define SHORT_INT_LEN (0xd6b+5994-0x24cf)

+#define SMS_RETRY_COUNT (0x11d1+2787-0x1cb1)

+#define SHORT_INT_LEN (0x1680+1880-0x1dd2)

 SMS_LOCATION g_zUfiSms_CurLocation=SMS_LOCATION_SIM;int 
-g_zUfiSms_ConcatSmsReference=(0xca7+5012-0x203b);T_zUfiSms_ParaInfo 
+g_zUfiSms_ConcatSmsReference=(0xe91+2934-0x1a07);T_zUfiSms_ParaInfo 
 g_zUfiSms_CurSmsPara={"",WMS_STORAGE_TYPE_UIM_V01,
-ZTE_WMS_SMS_DEFAULT_TP_VALIDITY_PERIOD_GW,(0x160+1379-0x6c3),(0xf46+4192-0x1fa6)
-,(0xec3+4771-0x2166),"\x6e\x76"};int g_zUfiSms_Language=NOT_DEFINE_LANGUAGE;int 
-g_zUfiSms_Dcs=(0x1437+3028-0x200b);unsigned long g_zUfiSms_StoreCapablity[
-ZTE_WMS_MEMORY_MAX]={(0x5cd+8104-0x2511),ZTE_WMS_DB_MSG_COUNT_MAX};
-T_zSms_SendSmsReq g_zUfiSms_FinalCmgsBuf;SMS_PARAM g_zUfiSms_SendingSms;UINT16 
-g_zUfiSms_IsLanguageShift=(0xa68+6670-0x2476);extern int g_zUfiSms_MsgRefer;
-extern T_zUfiSms_DelSms g_zUfiSms_DelMsg;extern T_zUfiSms_DelIndexInfo 
-g_deleteIndex;extern T_zUfiSms_ModifyIndexInfo g_modifyIndex;extern 
-T_zUfiSms_ModifySms g_zUfiSms_modifyMsg;extern UINT8 g_zUfiSms_MemFullFlag[
-ZTE_WMS_MEMORY_MAX];extern int g_zUfiSms_ConcatTotalNum;extern 
-T_zUfiSms_ConcatInfo g_zUfiSms_ConcatSms;extern T_zUfiSms_GroupInfo 
+ZTE_WMS_SMS_DEFAULT_TP_VALIDITY_PERIOD_GW,(0x1531+2356-0x1e65),
+(0x16c2+271-0x17d1),(0x2466+116-0x24da),"\x6e\x76"};int g_zUfiSms_Language=
+NOT_DEFINE_LANGUAGE;int g_zUfiSms_Dcs=(0x1902+2928-0x2472);unsigned long 
+g_zUfiSms_StoreCapablity[ZTE_WMS_MEMORY_MAX]={(0xb05+2939-0x161c),
+ZTE_WMS_DB_MSG_COUNT_MAX};T_zSms_SendSmsReq g_zUfiSms_FinalCmgsBuf;SMS_PARAM 
+g_zUfiSms_SendingSms;UINT16 g_zUfiSms_IsLanguageShift=(0x92a+1893-0x108f);extern
+ int g_zUfiSms_MsgRefer;extern T_zUfiSms_DelSms g_zUfiSms_DelMsg;extern 
+T_zUfiSms_DelIndexInfo g_deleteIndex;extern T_zUfiSms_ModifyIndexInfo 
+g_modifyIndex;extern T_zUfiSms_ModifySms g_zUfiSms_modifyMsg;extern UINT8 
+g_zUfiSms_MemFullFlag[ZTE_WMS_MEMORY_MAX];extern int g_zUfiSms_ConcatTotalNum;
+extern T_zUfiSms_ConcatInfo g_zUfiSms_ConcatSms;extern T_zUfiSms_GroupInfo 
 g_zUfiSms_GroupSms;extern int g_zUfiSms_UnitLen;extern UINT8 
 g_zUfiSms_IsConcatSendSuc;extern int g_zUfiSms_SendFailedCount;extern 
 T_zUfiSms_DbStoreData g_zUfiSms_DbStoreData[ZTE_WMS_CONCAT_SMS_COUNT_MAX];extern
@@ -31,17 +31,17 @@
 eLocation){switch(eLocation){case SMS_LOCATION_SIM:{g_zUfiSms_CurLocation=
 SMS_LOCATION_SIM;break;}case SMS_LOCATION_ME:{g_zUfiSms_CurLocation=
 SMS_LOCATION_ME;break;}default:{return;}}}int zUfiSms_SetDeleteInfo(
-T_zUfiSms_DelReq*ptDelMsg){char acStorePos[(0x1138+4219-0x2181)];int i=
-(0x797+513-0x998);g_zUfiSms_DelMsg.nv_count=(0x167d+708-0x1941);g_zUfiSms_DelMsg
-.nv_index=(0xacc+2390-0x1422);g_zUfiSms_DelMsg.sim_count=(0x1005+3655-0x1e4c);
-g_zUfiSms_DelMsg.sim_index=(0x1340+3528-0x2108);for(i=(0x1d49+721-0x201a);i<
-ptDelMsg->all_or_count;i++){memset(acStorePos,(0x90f+3104-0x152f),sizeof(
-acStorePos));if(ZUFI_FAIL==zUfiSms_GetStorePosById("Mem_Store",acStorePos,sizeof
-(acStorePos),ptDelMsg->id[i])){return ZUFI_FAIL;}if((0xa43+2775-0x151a)==strcmp(
-acStorePos,ZTE_WMS_DB_NV_TABLE)){g_zUfiSms_DelMsg.nv_id[g_zUfiSms_DelMsg.
-nv_count]=ptDelMsg->id[i];g_zUfiSms_DelMsg.nv_count++;g_zUfiSms_DelMsg.
-nv_index_count++;}else if((0x606+6951-0x212d)==strcmp(acStorePos,
-ZTE_WMS_DB_SIM_TABLE)){g_zUfiSms_DelMsg.sim_id[g_zUfiSms_DelMsg.sim_count]=
+T_zUfiSms_DelReq*ptDelMsg){char acStorePos[(0xfcf+745-0x1286)];int i=
+(0x39a+3711-0x1219);g_zUfiSms_DelMsg.nv_count=(0xd63+1463-0x131a);
+g_zUfiSms_DelMsg.nv_index=(0x1933+1591-0x1f6a);g_zUfiSms_DelMsg.sim_count=
+(0x149a+3626-0x22c4);g_zUfiSms_DelMsg.sim_index=(0x36+7679-0x1e35);for(i=
+(0x1ccd+2136-0x2525);i<ptDelMsg->all_or_count;i++){memset(acStorePos,
+(0x1be6+86-0x1c3c),sizeof(acStorePos));if(ZUFI_FAIL==zUfiSms_GetStorePosById(
+"Mem_Store",acStorePos,sizeof(acStorePos),ptDelMsg->id[i])){return ZUFI_FAIL;}if
+((0x1fb7+325-0x20fc)==strcmp(acStorePos,ZTE_WMS_DB_NV_TABLE)){g_zUfiSms_DelMsg.
+nv_id[g_zUfiSms_DelMsg.nv_count]=ptDelMsg->id[i];g_zUfiSms_DelMsg.nv_count++;
+g_zUfiSms_DelMsg.nv_index_count++;}else if((0x23e9+46-0x2417)==strcmp(acStorePos
+,ZTE_WMS_DB_SIM_TABLE)){g_zUfiSms_DelMsg.sim_id[g_zUfiSms_DelMsg.sim_count]=
 ptDelMsg->id[i];g_zUfiSms_DelMsg.sim_count++;g_zUfiSms_DelMsg.sim_index_count++;
 }}return ZUFI_SUCC;}void zUfiSms_ChangeMainState(T_zUfiSms_MainState iNewState){
 char*ptStrSmsState[]={"\x73\x6d\x73\x5f\x69\x6e\x69\x74\x69\x6e\x67",
@@ -68,95 +68,96 @@
 SMS_STATE_RECVING:case SMS_STATE_RECVED:case SMS_STATE_DELSAVING:case 
 SMS_STATE_DELSAVED:{break;}default:{return;}}sc_cfg_set(NV_SMS_STATE,
 ptStrSmsState[iNewState]);}int zUfiSms_CheckStoreDir(void){if(-
-(0xdd0+1623-0x1426)==access(ZTE_WMS_DB_DIR,F_OK)){printf(
+(0xf28+4673-0x2168)==access(ZTE_WMS_DB_DIR,F_OK)){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x73\x6d\x73\x3a\x25\x73\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x65\x78\x69\x73\x74\x2c\x73\x6f\x63\x72\x65\x61\x74\x65\x20\x69\x74\x2e" "\n"
-,ZTE_WMS_DB_DIR);if(-(0x61+7462-0x1d86)==mkdir(ZTE_WMS_DB_DIR,
-(0x1add+3141-0x2523))){printf(
+,ZTE_WMS_DB_DIR);if(-(0xc32+6207-0x2470)==mkdir(ZTE_WMS_DB_DIR,
+(0x9c5+7458-0x24e8))){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x73\x6d\x73\x3a\x66\x61\x69\x6c\x65\x64\x20\x74\x6f\x20\x63\x72\x65\x61\x74\x65\x20\x64\x62\x20\x64\x69\x72\x2e" "\n"
 );return ZUFI_FAIL;}}return ZUFI_SUCC;}int zUfiSms_CheckSmsDb(void){if(-
-(0x5a0+6280-0x1e27)==access(ZTE_WMS_DB_PATH,F_OK)){printf(
+(0x1c23+685-0x1ecf)==access(ZTE_WMS_DB_PATH,F_OK)){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x73\x6d\x73\x3a\x25\x73\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x65\x78\x69\x73\x74\x2c\x73\x6f\x20\x67\x65\x74\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x63\x6f\x6e\x66\x69\x67\x2e" "\n"
 ,ZTE_WMS_DB_PATH);return ZUFI_FAIL;}printf(
 "\x5b\x53\x4d\x53\x5d\x20\x3d\x3d\x3d\x3d\x3d\x3d\x25\x73\x20\x65\x78\x69\x73\x74\x2e" "\n"
 ,ZTE_WMS_DB_PATH);return ZUFI_SUCC;}void zUfiSms_GetDefaultCfgPara(void){
-unsigned char sts_flag=(0xecc+5325-0x2399);unsigned char mem_store_flag=
-(0x918+3146-0x1562);unsigned int tp_validity_period=(0x7e5+356-0x949);char 
-Temp_sms_vp[(0x89f+5234-0x1d09)]={(0xad3+7196-0x26ef)};CHAR reportEnable[
-(0x9fc+6139-0x21c5)]={(0x227+7278-0x1e95)};CHAR smsLocation[(0x6df+124-0x729)]={
-(0x1615+231-0x16fc)};CHAR sendfailRetry[(0xacb+6444-0x23c5)]={
-(0xfdc+3101-0x1bf9)};CHAR outdateDelete[(0x624+6369-0x1ed3)]={(0xa7d+354-0xbdf)}
-;CHAR defaultStore[(0x19df+884-0x1d21)]={(0xe96+4701-0x20f3)};sc_cfg_get(
+unsigned char sts_flag=(0xa20+6120-0x2208);unsigned char mem_store_flag=
+(0x912+1895-0x1079);unsigned int tp_validity_period=(0x850+3782-0x1716);char 
+Temp_sms_vp[(0xa41+7283-0x26ac)]={(0x45+7856-0x1ef5)};CHAR reportEnable[
+(0x1c6b+856-0x1f91)]={(0x38d+7373-0x205a)};CHAR smsLocation[(0x586+4555-0x171f)]
+={(0xa65+5441-0x1fa6)};CHAR sendfailRetry[(0x512+4583-0x16c7)]={
+(0xd07+4735-0x1f86)};CHAR outdateDelete[(0x18e2+2161-0x2121)]={(0x42+672-0x2e2)}
+;CHAR defaultStore[(0x5b2+6300-0x1e1c)]={(0x72b+2867-0x125e)};sc_cfg_get(
 NV_REPORT_ENABLE,reportEnable,sizeof(reportEnable));sc_cfg_get(
 NV_SMS_LOCATION_SET,smsLocation,sizeof(smsLocation));sc_cfg_get(
 NV_SENDFAIL_RETRY,sendfailRetry,sizeof(sendfailRetry));sc_cfg_get(
 NV_OUTDATE_DELETE,outdateDelete,sizeof(outdateDelete));sc_cfg_get(
-NV_DEFAULT_STORE,defaultStore,sizeof(defaultStore));if((0x16b9+1734-0x1d7f)==
-strcmp(reportEnable,"\x31")){sts_flag=(0x623+1274-0xb1c);}g_zUfiSms_CurSmsPara.
-status_report_on=sts_flag;if((0x924+1832-0x104c)==strcmp(smsLocation,"\x4d\x45")
-){mem_store_flag=(0x86d+2673-0x12de);}else{mem_store_flag=(0x33c+3557-0x1120);}
-g_zUfiSms_CurSmsPara.mem_store=(unsigned int)((0x32c+4127-0x134b)==
+NV_DEFAULT_STORE,defaultStore,sizeof(defaultStore));if((0x1a+8949-0x230f)==
+strcmp(reportEnable,"\x31")){sts_flag=(0x13e8+963-0x17aa);}g_zUfiSms_CurSmsPara.
+status_report_on=sts_flag;if((0xbd3+548-0xdf7)==strcmp(smsLocation,"\x4d\x45")){
+mem_store_flag=(0xeaf+1662-0x152d);}else{mem_store_flag=(0x1591+4270-0x263e);}
+g_zUfiSms_CurSmsPara.mem_store=(unsigned int)((0x2016+200-0x20de)==
 mem_store_flag?WMS_STORAGE_TYPE_NV_V01:WMS_STORAGE_TYPE_UIM_V01);sc_cfg_get(
 NV_SMS_VP,Temp_sms_vp,sizeof(Temp_sms_vp));tp_validity_period=
-(0x575+2969-0x100f);if((0xb6c+2801-0x165d)==strncmp(Temp_sms_vp,
-"\x6c\x6f\x6e\x67\x65\x73\x74",(0x2a5+1189-0x743))){tp_validity_period=
-(0x9d9+6172-0x20f6);}if((0x1529+2298-0x1e23)==strncmp(Temp_sms_vp,
-"\x6f\x6e\x65\x5f\x64\x61\x79",(0x127d+340-0x13ca))){tp_validity_period=
-(0x1b29+2618-0x24bc);}if((0x5a7+4982-0x191d)==strncmp(Temp_sms_vp,
-"\x6f\x6e\x65\x77\x65\x65\x6b",(0xd5b+3607-0x1b6b))){tp_validity_period=
-(0x20dd+1462-0x25e6);}if((0x140d+1853-0x1b4a)==strncmp(Temp_sms_vp,
-"\x74\x77\x65\x6c\x76\x65\x68",(0x2091+1133-0x24f7))){tp_validity_period=
-(0x463+7926-0x22ca);}g_zUfiSms_CurSmsPara.tp_validity_period=tp_validity_period;
-if((0x850+6293-0x20e5)==strcmp(sendfailRetry,"\x31")){g_zUfiSms_CurSmsPara.
-sendfail_retry_on=(0x1f60+50-0x1f91);}else{g_zUfiSms_CurSmsPara.
-sendfail_retry_on=(0x1693+3957-0x2608);}if((0x1558+4182-0x25ae)==strcmp(
-outdateDelete,"\x31")){g_zUfiSms_CurSmsPara.outdate_delete_on=(0xac+1732-0x76f);
-}else{g_zUfiSms_CurSmsPara.outdate_delete_on=(0xc18+2768-0x16e8);}if(
-(0xb64+6084-0x2328)==strcmp(defaultStore,"\x73\x69\x6d")){strncpy(
+(0x602+3995-0x149e);if((0xdf1+4513-0x1f92)==strncmp(Temp_sms_vp,
+"\x6c\x6f\x6e\x67\x65\x73\x74",(0x1d1a+948-0x20c7))){tp_validity_period=
+(0x1f7d+1789-0x257b);}if((0xb0+865-0x411)==strncmp(Temp_sms_vp,
+"\x6f\x6e\x65\x5f\x64\x61\x79",(0x13fc+598-0x164b))){tp_validity_period=
+(0x1ccf+533-0x1e3d);}if((0xb38+2311-0x143f)==strncmp(Temp_sms_vp,
+"\x6f\x6e\x65\x77\x65\x65\x6b",(0x293+7568-0x201c))){tp_validity_period=
+(0x5c2+610-0x777);}if((0x2281+1084-0x26bd)==strncmp(Temp_sms_vp,
+"\x74\x77\x65\x6c\x76\x65\x68",(0x684+3419-0x13d8))){tp_validity_period=
+(0x262a+96-0x25fb);}g_zUfiSms_CurSmsPara.tp_validity_period=tp_validity_period;
+if((0x1052+5222-0x24b8)==strcmp(sendfailRetry,"\x31")){g_zUfiSms_CurSmsPara.
+sendfail_retry_on=(0xf8f+3556-0x1d72);}else{g_zUfiSms_CurSmsPara.
+sendfail_retry_on=(0x19b9+2474-0x2363);}if((0x675+6638-0x2063)==strcmp(
+outdateDelete,"\x31")){g_zUfiSms_CurSmsPara.outdate_delete_on=(0x40+3829-0xf34);
+}else{g_zUfiSms_CurSmsPara.outdate_delete_on=(0x112b+4-0x112f);}if(
+(0x2fd+7768-0x2155)==strcmp(defaultStore,"\x73\x69\x6d")){strncpy(
 g_zUfiSms_CurSmsPara.default_store,"\x73\x69\x6d",sizeof(g_zUfiSms_CurSmsPara.
-default_store)-(0x35f+1631-0x9bd));}else{strncpy(g_zUfiSms_CurSmsPara.
+default_store)-(0x1f8+5731-0x185a));}else{strncpy(g_zUfiSms_CurSmsPara.
 default_store,"\x6e\x76",sizeof(g_zUfiSms_CurSmsPara.default_store)-
-(0x1b0+8072-0x2137));}}void zUfiSms_GetDefaultPara(void){memset(&
-g_zUfiSms_CurSmsPara,(0x148a+570-0x16c4),sizeof(T_zUfiSms_ParaInfo));
-g_zUfiSms_CurSmsPara.status_report_on=(0xaca+2814-0x15c8);g_zUfiSms_CurSmsPara.
+(0x1f+2619-0xa59));}}void zUfiSms_GetDefaultPara(void){memset(&
+g_zUfiSms_CurSmsPara,(0xc2+2842-0xbdc),sizeof(T_zUfiSms_ParaInfo));
+g_zUfiSms_CurSmsPara.status_report_on=(0x360+4812-0x162c);g_zUfiSms_CurSmsPara.
 mem_store=WMS_STORAGE_TYPE_NV_V01;g_zUfiSms_CurSmsPara.tp_validity_period=
 ZTE_WMS_SMS_DEFAULT_TP_VALIDITY_PERIOD_GW;g_zUfiSms_CurSmsPara.sendfail_retry_on
-=(0x733+258-0x835);g_zUfiSms_CurSmsPara.outdate_delete_on=(0x128d+657-0x151e);
-strncpy(g_zUfiSms_CurSmsPara.default_store,"\x6e\x76",sizeof(
-g_zUfiSms_CurSmsPara.default_store)-(0x2530+455-0x26f6));}
-#if (0x254+6416-0x1b64)

+=(0x1656+4247-0x26ed);g_zUfiSms_CurSmsPara.outdate_delete_on=(0xaac+7091-0x265f)
+;strncpy(g_zUfiSms_CurSmsPara.default_store,"\x6e\x76",sizeof(
+g_zUfiSms_CurSmsPara.default_store)-(0xe45+5031-0x21eb));}
+#if (0xb23+2714-0x15bd)

 T_zUfiSms_CmdStatus zUfiSms_SetParameters(T_zUfiSms_CmdMsgBuff*ptSmsBuffer){
 T_zUfiSms_ParaInfo*ptSmsParameter=NULL;T_zUfiSms_ParaInfo tNewSmsParameter={
-(0x5e2+394-0x76c)};if(NULL==ptSmsBuffer){return WMS_CMD_FAILED;}ptSmsParameter=(
-T_zUfiSms_ParaInfo*)(&(ptSmsBuffer->cmd_info.set_sms_para));memcpy((void*)&
-tNewSmsParameter,(void*)ptSmsParameter,sizeof(T_zUfiSms_ParaInfo));
+(0x1579+2051-0x1d7c)};if(NULL==ptSmsBuffer){return WMS_CMD_FAILED;}
+ptSmsParameter=(T_zUfiSms_ParaInfo*)(&(ptSmsBuffer->cmd_info.set_sms_para));
+memcpy((void*)&tNewSmsParameter,(void*)ptSmsParameter,sizeof(T_zUfiSms_ParaInfo)
+);
 #ifndef TSP_MODEL

 if((g_zUfiSms_CurSmsPara.mem_store!=ptSmsParameter->mem_store)){if(
 ZUFI_SMS_FAILURE==zUfiSms_SetCpms(ptSmsParameter)){at_print(LOG_ERR,
 "\x73\x65\x74\x20\x63\x66\x67\x20\x72\x6f\x75\x74\x65\x73\x20\x66\x61\x69\x6c\x65\x64\x2e"
 );return WMS_CMD_FAILED;}}
 #endif

-if(strlen(ptSmsParameter->sca)!=(0xa14+5182-0x1e52)){if(ZUFI_SMS_FAILURE==
+if(strlen(ptSmsParameter->sca)!=(0x1617+2530-0x1ff9)){if(ZUFI_SMS_FAILURE==
 zUfiSms_SetCsca(ptSmsParameter)){return WMS_CMD_FAILED;}}if(ZUFI_SMS_FAILURE==
 zUfiSms_SetDbParameters(ptSmsParameter)){return WMS_CMD_FAILED;}else{sc_cfg_set(
 "\x73\x6d\x73\x5f\x63\x65\x6e\x74\x65\x72\x5f\x6e\x75\x6d",ptSmsParameter->sca);
 }memcpy((void*)&g_zUfiSms_CurSmsPara,(void*)&tNewSmsParameter,sizeof(
 T_zUfiSms_ParaInfo));return WMS_CMD_SUCCESS;}
 #endif

-int zUfiSms_LoadSmsPara(){int count=(0x6c3+3596-0x14cf);if(ZUFI_SUCC!=
+int zUfiSms_LoadSmsPara(){int count=(0x47+7656-0x1e2f);if(ZUFI_SUCC!=
 zUfiSms_IsDbEmpty(ZTE_WMS_DB_PARAMETER_TABLE,&count)){return ZUFI_FAIL;}if(count
-==(0x1c8b+1314-0x21ad)){zUfiSms_GetDefaultCfgPara();if((0x9dc+4042-0x19a6)!=
+==(0x4c8+4959-0x1827)){zUfiSms_GetDefaultCfgPara();if((0x117a+27-0x1195)!=
 zUfiSms_SetDbParameters(&g_zUfiSms_CurSmsPara)){return ZUFI_FAIL;}}else{printf(
 "\x5b\x53\x4d\x53\x5d\x20\x68\x61\x76\x65\x20\x64\x65\x66\x61\x75\x6c\x74\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x20\x69\x6e\x20\x64\x61\x74\x61\x62\x61\x73\x65\x2e" "\n"
 );if(ZUFI_SUCC!=zUfiSms_GetDbParameters()){return ZUFI_FAIL;}if(
 WMS_STORAGE_TYPE_NV_V01!=g_zUfiSms_CurSmsPara.mem_store&&
 WMS_STORAGE_TYPE_UIM_V01!=g_zUfiSms_CurSmsPara.mem_store){zUfiSms_GetDefaultPara
-();if((0x1fd0+1023-0x23cf)!=zUfiSms_SetDbParameters(&g_zUfiSms_CurSmsPara)){
+();if((0x139b+698-0x1655)!=zUfiSms_SetDbParameters(&g_zUfiSms_CurSmsPara)){
 printf(
 "\x5b\x53\x4d\x53\x5d\x20\x73\x65\x74\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x20\x66\x61\x69\x6c\x73\x20\x32\x2e" "\n"
 );return ZUFI_FAIL;}}}printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x4c\x6f\x61\x64\x53\x6d\x73\x50\x61\x72\x61\x20\x73\x75\x63\x63\x2e" "\n"
 );return ZUFI_SUCC;}int zUfiSms_CheckMemoryFull(T_zUfiSms_MemoryType mem_store){
-int total_count=(0x1272+2581-0x1c87);if((ZTE_WMS_MEMORY_SIM==mem_store)||(
+int total_count=(0xa21+39-0xa48);if((ZTE_WMS_MEMORY_SIM==mem_store)||(
 ZTE_WMS_MEMORY_MAX==mem_store)){if(ZUFI_FAIL==zUfiSms_GetTotalCount(
 ZTE_WMS_DB_SIM_TABLE,&total_count)){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x73\x6d\x73\x3a\x67\x65\x74\x20\x74\x61\x62\x6c\x65\x20\x74\x6f\x74\x61\x6c\x20\x63\x6f\x75\x6e\x74\x20\x66\x61\x69\x6c\x65\x64\x2e" "\n"
@@ -173,13 +174,13 @@
 ,total_count);if(total_count>=(int)g_zUfiSms_StoreCapablity[
 WMS_STORAGE_TYPE_NV_V01]){g_zUfiSms_MemFullFlag[WMS_STORAGE_TYPE_NV_V01]=TRUE;}
 else{g_zUfiSms_MemFullFlag[WMS_STORAGE_TYPE_NV_V01]=FALSE;}}return ZUFI_SUCC;}
-int zUfiSms_SetStorePara(char*mem_store){if((0x224f+1159-0x26d6)==strcmp(
+int zUfiSms_SetStorePara(char*mem_store){if((0x1165+4910-0x2493)==strcmp(
 mem_store,"\x53\x4d")){g_zUfiSms_CurSmsPara.mem_store=(unsigned int)
 WMS_STORAGE_TYPE_UIM_V01;(void)sc_cfg_set(NV_SMS_LOCATION_SET,"\x30");}else if(
-(0x3e9+8538-0x2543)==strcmp(mem_store,"\x4d\x45")){g_zUfiSms_CurSmsPara.
+(0xea8+2305-0x17a9)==strcmp(mem_store,"\x4d\x45")){g_zUfiSms_CurSmsPara.
 mem_store=(unsigned int)WMS_STORAGE_TYPE_NV_V01;(void)sc_cfg_set(
-NV_SMS_LOCATION_SET,"\x31");}else if((0x1090+588-0x12dc)==strcmp(mem_store,
-"\x53\x52")){g_zUfiSms_CurSmsPara.mem_store=(unsigned int)(0x145f+935-0x1804);(
+NV_SMS_LOCATION_SET,"\x31");}else if((0x1d8c+125-0x1e09)==strcmp(mem_store,
+"\x53\x52")){g_zUfiSms_CurSmsPara.mem_store=(unsigned int)(0x1cd2+672-0x1f70);(
 void)sc_cfg_set(NV_SMS_LOCATION_SET,"\x32");}else{g_zUfiSms_CurSmsPara.mem_store
 =(unsigned int)WMS_STORAGE_TYPE_NONE_V01;(void)sc_cfg_set(NV_SMS_LOCATION_SET,
 "\x2d\x31");}if(ZUFI_FAIL==zUfiSms_SetDbParameters(&g_zUfiSms_CurSmsPara)){
@@ -187,40 +188,40 @@
 "\x63\x61\x6e\x20\x6e\x6f\x74\x20\x73\x65\x74\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e" "\n"
 );return ZUFI_FAIL;}return ZUFI_SUCC;}int zUfiSms_SetScaPara(char*sca){strncpy(
 g_zUfiSms_CurSmsPara.sca,sca,sizeof(g_zUfiSms_CurSmsPara.sca)-
-(0x18f9+1726-0x1fb6));if(ZUFI_FAIL==zUfiSms_SetDbParameters(&
-g_zUfiSms_CurSmsPara)){at_print(LOG_ERR,
+(0x2d6+7899-0x21b0));if(ZUFI_FAIL==zUfiSms_SetDbParameters(&g_zUfiSms_CurSmsPara
+)){at_print(LOG_ERR,
 "\x63\x61\x6e\x20\x6e\x6f\x74\x20\x73\x65\x74\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x2e" "\n"
 );return ZUFI_FAIL;}return ZUFI_SUCC;}void zUfiSms_SetGlobalDcsLang(unsigned 
-char cDcs){if(cDcs==(0x1662+2971-0x21fc)){g_zUfiSms_Dcs=DCS_ASC;
-g_zUfiSms_Language=NOT_DEFINE_LANGUAGE;}else if(cDcs==(0x20bc+203-0x2185)){
-g_zUfiSms_Dcs=DCS_USC;g_zUfiSms_Language=NOT_DEFINE_LANGUAGE;}else if(cDcs==
-(0xdff+490-0xfe6)){g_zUfiSms_Dcs=DCS_ASC;g_zUfiSms_Language=DCS_GSM7_SPANISH;}
-else if(cDcs==(0x5+3528-0xdc8)){g_zUfiSms_Dcs=DCS_ASC;g_zUfiSms_Language=
+char cDcs){if(cDcs==(0x3e0+779-0x6ea)){g_zUfiSms_Dcs=DCS_ASC;g_zUfiSms_Language=
+NOT_DEFINE_LANGUAGE;}else if(cDcs==(0xae1+7182-0x26ed)){g_zUfiSms_Dcs=DCS_USC;
+g_zUfiSms_Language=NOT_DEFINE_LANGUAGE;}else if(cDcs==(0x1c48+766-0x1f43)){
+g_zUfiSms_Dcs=DCS_ASC;g_zUfiSms_Language=DCS_GSM7_SPANISH;}else if(cDcs==
+(0x1fc2+1246-0x249b)){g_zUfiSms_Dcs=DCS_ASC;g_zUfiSms_Language=
 DCS_GSM7_PORTUGUESE;}else{g_zUfiSms_Dcs=DCS_ASC;g_zUfiSms_Language=
 DCS_GSM7_DEFAULT;}}int zUfiSms_FillGroupSms(T_zUfiSms_SendReq*ptSendMsg,
 T_zUfiSms_GroupInfo*ptGroupSms){int i;if(NULL==ptSendMsg||NULL==ptGroupSms||
 ZTE_WMS_SEND_NUM_MAX<ptSendMsg->receiver_count){return ZUFI_FAIL;}ptGroupSms->
-total_receiver=ptSendMsg->receiver_count;for(i=(0x14c9+2892-0x2015);i<ptGroupSms
+total_receiver=ptSendMsg->receiver_count;for(i=(0xc64+3718-0x1aea);i<ptGroupSms
 ->total_receiver;i++){strncpy(ptGroupSms->receivers[i],ptSendMsg->dest_num[i],
 ZTE_WMS_ADDRESS_LEN_MAX);printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x46\x69\x6c\x6c\x47\x72\x6f\x75\x70\x53\x6d\x73\x20\x72\x65\x63\x65\x69\x76\x65\x72\x73\x5b\x25\x64\x5d\x3d\x25\x73" "\n"
-,i,ptGroupSms->receivers[i]);}ptGroupSms->current_receiver=(0x1f29+857-0x2282);
+,i,ptGroupSms->receivers[i]);}ptGroupSms->current_receiver=(0xf49+5964-0x2695);
 return ZUFI_SUCC;}int zUfiSms_FillConcatSms(T_zUfiSms_SendReq*pSendSrcMsg,
-T_zUfiSms_ConcatInfo*pDestConcatMsg){int iTotalLen=(0x25b+2651-0xcb6);int 
-iUnitlen=(0x17a1+3175-0x2408);int iSegNo=(0xc01+4204-0x1c6d);unsigned char*
+T_zUfiSms_ConcatInfo*pDestConcatMsg){int iTotalLen=(0xf63+2508-0x192f);int 
+iUnitlen=(0x593+707-0x856);int iSegNo=(0x1357+3004-0x1f13);unsigned char*
 pSmsConverted=NULL;unsigned char acConvertContent[
-ZTE_WMS_SMS_MSG_CONTENT_LEN_MAX*ZTE_WMS_CONCAT_SMS_COUNT_MAX*(0x2b+6445-0x1954)+
-(0x28f+4514-0x142d)]={(0x8a6+4997-0x1c2b)};unsigned char acTmpContent[
-ZTE_WMS_SMS_MSG_CONTENT_LEN_MAX*ZTE_WMS_CONCAT_SMS_COUNT_MAX*
-(0x1686+3397-0x23c7)+(0xb53+4066-0x1b31)]={(0x10bf+1129-0x1528)};int iTimeZone=
-(0x95f+7083-0x250a);int tmp_i=(0x282+6023-0x1a09);if(NULL==pSendSrcMsg||NULL==
-pDestConcatMsg){return-(0x5f0+1355-0xb3a);}iTotalLen=pSendSrcMsg->msg_len;if(
-ZUFI_FAIL==zUfiSms_GetSmsContent(acTmpContent,sizeof(acTmpContent))){printf(
+ZTE_WMS_SMS_MSG_CONTENT_LEN_MAX*ZTE_WMS_CONCAT_SMS_COUNT_MAX*(0x875+3584-0x1671)
++(0xc6a+2318-0x1574)]={(0x972+2923-0x14dd)};unsigned char acTmpContent[
+ZTE_WMS_SMS_MSG_CONTENT_LEN_MAX*ZTE_WMS_CONCAT_SMS_COUNT_MAX*(0x3d2+6046-0x1b6c)
++(0x1671+555-0x1898)]={(0x378+7622-0x213e)};int iTimeZone=(0x16bf+1681-0x1d50);
+int tmp_i=(0xee6+1582-0x1514);if(NULL==pSendSrcMsg||NULL==pDestConcatMsg){return
+-(0x1424+3311-0x2112);}iTotalLen=pSendSrcMsg->msg_len;if(ZUFI_FAIL==
+zUfiSms_GetSmsContent(acTmpContent,sizeof(acTmpContent))){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x47\x65\x74\x53\x6d\x73\x43\x6f\x6e\x74\x65\x6e\x74\x20\x46\x61\x69\x6c\x2e" "\n"
-);return-(0xdc4+3966-0x1d41);}printf(
+);return-(0xb7a+1110-0xfcf);}printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x47\x65\x74\x53\x6d\x73\x43\x6f\x6e\x74\x65\x6e\x74\x3a\x25\x73\x2e" "\n"
 ,acTmpContent);(void)String2Bytes(acTmpContent,acConvertContent,(int)strlen(
-acTmpContent));memset(acTmpContent,(0xf2b+4060-0x1f07),sizeof(acTmpContent));if(
+acTmpContent));memset(acTmpContent,(0x453+3913-0x139c),sizeof(acTmpContent));if(
 DCS_USC==g_zUfiSms_Dcs){pSmsConverted=acConvertContent;}else{if(
 NOT_DEFINE_LANGUAGE==g_zUfiSms_Language){iTotalLen=
 zUfiSms_ConvertAsciiToGsmDefault(acConvertContent,acTmpContent,pSendSrcMsg->
@@ -230,96 +231,96 @@
 zUfiSms_ConvertUcs2ToPortuguese(acConvertContent,acTmpContent,pSendSrcMsg->
 msg_len);}else{iTotalLen=zUfiSms_ConvertUcs2ToGsmDefault(acConvertContent,
 acTmpContent,pSendSrcMsg->msg_len);}pSendSrcMsg->msg_len=iTotalLen;pSmsConverted
-=acTmpContent;}if(iTotalLen>(sizeof(acConvertContent)-(0xe19+570-0x1052))){
-iTotalLen=sizeof(acConvertContent)-(0x1f51+602-0x21aa);}pDestConcatMsg->sms_len=
+=acTmpContent;}if(iTotalLen>(sizeof(acConvertContent)-(0x1356+406-0x14eb))){
+iTotalLen=sizeof(acConvertContent)-(0xa91+6031-0x221f);}pDestConcatMsg->sms_len=
 iTotalLen;if((iTotalLen>ZTE_WMS_SMS_MSG_CONTENT_LEN_MAX)||(g_zUfiSms_Language==
-DCS_PORTUGUESE&&iTotalLen>(0xeb3+5538-0x23ba))||((g_zUfiSms_Dcs==DCS_USC)&&
+DCS_PORTUGUESE&&iTotalLen>(0x161+1249-0x5a7))||((g_zUfiSms_Dcs==DCS_USC)&&
 iTotalLen>ZTE_WMS_SMS_MSG_CHAR_MAX)){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x3d\x3d\x3d\x3d\x3d\x73\x65\x6e\x64\x20\x63\x6f\x6e\x74\x61\x63\x74\x20\x73\x6d\x73\x2e" "\n"
 );if(g_zUfiSms_Dcs==DCS_USC){iUnitlen=ZTE_WMS_SMS_CONCAT_ELEMNT_UCS_LEN*
-(0x40+6516-0x19b2);}else{if(g_zUfiSms_Language==NOT_DEFINE_LANGUAGE||
+(0xb9+3086-0xcc5);}else{if(g_zUfiSms_Language==NOT_DEFINE_LANGUAGE||
 g_zUfiSms_Language==DCS_GSM7_DEFAULT){iUnitlen=ZTE_WMS_SMS_CONCAT_ELEMNT_ASC_LEN
 ;}else{iUnitlen=ZTE_WMS_SMS_CONCAT_ELEMNT_LANGUAGE_LEN;}}while(iTotalLen>
-(0xb1f+6861-0x25ec)&&iSegNo<ZTE_WMS_CONCAT_SMS_COUNT_MAX){memcpy(pDestConcatMsg
-->msg_contents[iSegNo],pSmsConverted,iUnitlen);iTotalLen-=iUnitlen;pSmsConverted
-+=iUnitlen;iSegNo++;}pDestConcatMsg->total_msg=iSegNo;}else{iUnitlen=iTotalLen;
-pDestConcatMsg->total_msg=(0x89b+4820-0x1b6e);memcpy(pDestConcatMsg->
-msg_contents[(0x194c+609-0x1bad)],pSmsConverted,iTotalLen);printf(
+(0x57+5256-0x14df)&&iSegNo<ZTE_WMS_CONCAT_SMS_COUNT_MAX){memcpy(pDestConcatMsg->
+msg_contents[iSegNo],pSmsConverted,iUnitlen);iTotalLen-=iUnitlen;pSmsConverted+=
+iUnitlen;iSegNo++;}pDestConcatMsg->total_msg=iSegNo;}else{iUnitlen=iTotalLen;
+pDestConcatMsg->total_msg=(0x15fa+672-0x1899);memcpy(pDestConcatMsg->
+msg_contents[(0x41a+155-0x4b5)],pSmsConverted,iTotalLen);printf(
 "\x5b\x53\x4d\x53\x5d\x20\x3d\x3d\x3d\x3d\x3d\x73\x65\x6e\x64\x20\x6e\x6f\x72\x6d\x61\x6c\x20\x73\x6d\x73\x2e\x6c\x65\x6e\x3a\x25\x64\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x3a\x25\x73\x2e" "\n"
-,iUnitlen,pDestConcatMsg->msg_contents[(0x82+9158-0x2448)]);}
+,iUnitlen,pDestConcatMsg->msg_contents[(0x72+2545-0xa63)]);}
 g_zUfiSms_ConcatTotalNum=pDestConcatMsg->total_msg;pDestConcatMsg->
-current_sending=(0x23ab+801-0x26cc);memcpy(&(pDestConcatMsg->date),&(pSendSrcMsg
+current_sending=(0x7cd+1122-0xc2f);memcpy(&(pDestConcatMsg->date),&(pSendSrcMsg
 ->date),sizeof(T_zUfiSms_Date));tmp_i=atoi(pDestConcatMsg->date.timezone);if(
-tmp_i<INT_MIN+(0x15b+3291-0xe35)||tmp_i>INT_MAX-(0xa69+5995-0x21d3)){printf(
+tmp_i<INT_MIN+(0x1d21+104-0x1d88)||tmp_i>INT_MAX-(0x67a+2680-0x10f1)){printf(
 "\x75\x6e\x6b\x6e\x6f\x77\x6e\x20\x70\x44\x65\x73\x74\x43\x6f\x6e\x63\x61\x74\x4d\x73\x67\x20\x74\x69\x6d\x65\x7a\x6f\x6e\x65\x3a\x25\x64\x2e" "\n"
-,tmp_i);return ZUFI_FAIL;}iTimeZone=tmp_i*(0xf4d+730-0x1223);memset(
-pDestConcatMsg->date.timezone,(0x1030+1955-0x17d3),sizeof(pDestConcatMsg->date.
-timezone));if(iTimeZone>(0x911+128-0x991)){snprintf(pDestConcatMsg->date.
+,tmp_i);return ZUFI_FAIL;}iTimeZone=tmp_i*(0xd25+615-0xf88);memset(
+pDestConcatMsg->date.timezone,(0x163c+1439-0x1bdb),sizeof(pDestConcatMsg->date.
+timezone));if(iTimeZone>(0xb3d+1661-0x11ba)){snprintf(pDestConcatMsg->date.
 timezone,sizeof(pDestConcatMsg->date.timezone),"\x2b\x25\x64",iTimeZone);}else{
 snprintf(pDestConcatMsg->date.timezone,sizeof(pDestConcatMsg->date.timezone),
 "\x25\x64",iTimeZone);}pSmsConverted=NULL;return iUnitlen;}void 
 zUfiSms_FillDateheader(T_zUfiSms_SubmitTpdu*ptSubmit,T_zUfiSms_ConcatInfo*
 ptConcatSms,T_zUfiSms_DbStoreData*ptDbSaveData){unsigned char iHeaderNum=
-(0x12f2+819-0x1625);iHeaderNum=ptSubmit->user_data.num_headers;ptSubmit->
-user_data_header_present=TRUE;if((0x418+1266-0x90a)==ptConcatSms->
+(0x14f3+936-0x189b);iHeaderNum=ptSubmit->user_data.num_headers;ptSubmit->
+user_data_header_present=TRUE;if((0x4ef+1658-0xb69)==ptConcatSms->
 current_sending){g_zUfiSms_ConcatSmsReference++;(void)zUfiSms_SetConcatMaxRefer(
 g_zUfiSms_ConcatSmsReference);}ptSubmit->user_data.headers[iHeaderNum].header_id
 =WMS_UDH_CONCAT_8;ptSubmit->user_data.headers[iHeaderNum].u.concat_8.total_sm=
 ptConcatSms->total_msg;ptSubmit->user_data.headers[iHeaderNum].u.concat_8.
-seq_num=ptConcatSms->current_sending+(0x11e8+1275-0x16e2);ptSubmit->user_data.
+seq_num=ptConcatSms->current_sending+(0x2d8+204-0x3a3);ptSubmit->user_data.
 headers[iHeaderNum].u.concat_8.msg_ref=g_zUfiSms_ConcatSmsReference%
-(0x1379+4554-0x2444);ptSubmit->user_data.num_headers++;ptDbSaveData->concat_sms=
-(0x87b+1040-0xc8a);ptDbSaveData->concat_info[(0x1072+909-0x13ff)]=
+(0xb96+4008-0x1a3f);ptSubmit->user_data.num_headers++;ptDbSaveData->concat_sms=
+(0x1caa+1456-0x2259);ptDbSaveData->concat_info[(0x12cb+5130-0x26d5)]=
 g_zUfiSms_ConcatSmsReference;}int zUfiSms_MakeFinalCmgsBuf(){SMS_PARAM tSmsData;
-int iPduLength=(0x16d5+2702-0x2163);int nSmscLength=(0xb83+5762-0x2205);char 
-Tempstrr[(0x93c+5369-0x1e33)]={(0x1a06+2921-0x256f)};char Temp_sms_vp[
-(0x384+8201-0x2385)]={(0xc84+2001-0x1455)};char tmpBuf1[(0x3f9+4711-0x165d)]={
-(0x3c7+4888-0x16df)};char tmpBuf2[(0x164b+102-0x16ab)]={(0x1481+1538-0x1a83)};
-CHAR smsCenter[(0xb18+5435-0x2021)]={(0x13a9+4448-0x2509)};memset(&tSmsData,
-(0xcd1+3731-0x1b64),sizeof(SMS_PARAM));memset(&g_zUfiSms_FinalCmgsBuf,
-(0x26f+9245-0x268c),sizeof(T_zSms_SendSmsReq));if(CODE_GSM7==
-g_zUfiSms_SendingSms.TP_DCS){int i=(0xf55+4971-0x22c0);for(;i<
-g_zUfiSms_SendingSms.TP_UDLength;i++){tSmsData.TP_UD[i]=g_zUfiSms_SendingSms.
-TP_UD[i];}tSmsData.TP_UDLength=g_zUfiSms_SendingSms.TP_UDLength;}else{snprintf(
-tSmsData.TP_UD,sizeof(tSmsData.TP_UD),"\x25\x73",g_zUfiSms_SendingSms.TP_UD);
-tSmsData.TP_UDLength=strlen(tSmsData.TP_UD);}sc_cfg_get(NV_SMS_CENTER_NUM,
-smsCenter,sizeof(smsCenter));snprintf(tSmsData.SCA,sizeof(tSmsData.SCA),
-"\x25\x73",smsCenter);snprintf(tSmsData.TPA,sizeof(tSmsData.TPA),"\x25\x73",
-g_zUfiSms_SendingSms.TPA);tSmsData.TP_DCS=g_zUfiSms_SendingSms.TP_DCS;sc_cfg_get
-(NV_REPORT_ENABLE,Tempstrr,sizeof(Tempstrr));if(((0x1145+2465-0x1ae6)==strncmp(
-Tempstrr,"\x31",(0xa3f+6214-0x2284)))&&(g_zUfiSms_ConcatSms.current_sending==
-g_zUfiSms_ConcatSms.total_msg-(0xc66+13-0xc72))){tSmsData.TP_SRR=
-(0x22d6+78-0x2323);}else{tSmsData.TP_SRR=(0xac2+2975-0x1661);}tSmsData.TP_UDHI=
-g_zUfiSms_SendingSms.TP_UDHI;tSmsData.TP_VP=(0x694+3328-0x1295);sc_cfg_get(
-NV_SMS_VP,Temp_sms_vp,sizeof(Temp_sms_vp));if((0xe9f+1895-0x1606)==strncmp(
-Temp_sms_vp,"\x6c\x6f\x6e\x67\x65\x73\x74",(0x8a3+4435-0x19ef))){tSmsData.TP_VP=
-(0x82a+5538-0x1ccd);}else if((0x17e9+1171-0x1c7c)==strncmp(Temp_sms_vp,
-"\x6f\x6e\x65\x5f\x64\x61\x79",(0xaeb+283-0xbff))){tSmsData.TP_VP=
-(0x2e7+8646-0x2406);}else if((0x168c+2472-0x2034)==strncmp(Temp_sms_vp,
-"\x6f\x6e\x65\x77\x65\x65\x6b",(0xc3b+650-0xebe))){tSmsData.TP_VP=
-(0x13ef+270-0x1450);}else if((0x814+5783-0x1eab)==strncmp(Temp_sms_vp,
-"\x74\x77\x65\x6c\x76\x65\x68",(0x1cab+1922-0x2426))){tSmsData.TP_VP=
-(0x148+9057-0x241a);}tSmsData.TP_PID=(0xdc3+4851-0x20b6);
-#if (0x11b3+4161-0x21f3)
+int iPduLength=(0x68a+92-0x6e6);int nSmscLength=(0x4a8+2907-0x1003);char 
+Tempstrr[(0x206b+1589-0x269e)]={(0x23af+163-0x2452)};char Temp_sms_vp[
+(0xc64+4216-0x1cd4)]={(0x5f4+7774-0x2452)};char tmpBuf1[(0x138d+4691-0x25dd)]={
+(0x1921+3126-0x2557)};char tmpBuf2[(0x625+1079-0xa56)]={(0xd52+2407-0x16b9)};
+CHAR smsCenter[(0xba3+4872-0x1e79)]={(0x9+8341-0x209e)};memset(&tSmsData,
+(0x968+7438-0x2676),sizeof(SMS_PARAM));memset(&g_zUfiSms_FinalCmgsBuf,
+(0x231f+64-0x235f),sizeof(T_zSms_SendSmsReq));if(CODE_GSM7==g_zUfiSms_SendingSms
+.TP_DCS){int i=(0xc1c+1523-0x120f);for(;i<g_zUfiSms_SendingSms.TP_UDLength;i++){
+tSmsData.TP_UD[i]=g_zUfiSms_SendingSms.TP_UD[i];}tSmsData.TP_UDLength=
+g_zUfiSms_SendingSms.TP_UDLength;}else{snprintf(tSmsData.TP_UD,sizeof(tSmsData.
+TP_UD),"\x25\x73",g_zUfiSms_SendingSms.TP_UD);tSmsData.TP_UDLength=strlen(
+tSmsData.TP_UD);}sc_cfg_get(NV_SMS_CENTER_NUM,smsCenter,sizeof(smsCenter));
+snprintf(tSmsData.SCA,sizeof(tSmsData.SCA),"\x25\x73",smsCenter);snprintf(
+tSmsData.TPA,sizeof(tSmsData.TPA),"\x25\x73",g_zUfiSms_SendingSms.TPA);tSmsData.
+TP_DCS=g_zUfiSms_SendingSms.TP_DCS;sc_cfg_get(NV_REPORT_ENABLE,Tempstrr,sizeof(
+Tempstrr));if(((0x1d70+1097-0x21b9)==strncmp(Tempstrr,"\x31",(0x556+2254-0xe23))
+)&&(g_zUfiSms_ConcatSms.current_sending==g_zUfiSms_ConcatSms.total_msg-
+(0xf3b+3916-0x1e86))){tSmsData.TP_SRR=(0x965+4881-0x1c75);}else{tSmsData.TP_SRR=
+(0x15+9059-0x2378);}tSmsData.TP_UDHI=g_zUfiSms_SendingSms.TP_UDHI;tSmsData.TP_VP
+=(0x146c+1380-0x18d1);sc_cfg_get(NV_SMS_VP,Temp_sms_vp,sizeof(Temp_sms_vp));if(
+(0x120+8753-0x2351)==strncmp(Temp_sms_vp,"\x6c\x6f\x6e\x67\x65\x73\x74",
+(0x1b44+644-0x1dc1))){tSmsData.TP_VP=(0x131d+2425-0x1b97);}else if(
+(0x9f2+163-0xa95)==strncmp(Temp_sms_vp,"\x6f\x6e\x65\x5f\x64\x61\x79",
+(0x9fc+3456-0x1775))){tSmsData.TP_VP=(0x116b+2443-0x1a4f);}else if(
+(0x6ca+5285-0x1b6f)==strncmp(Temp_sms_vp,"\x6f\x6e\x65\x77\x65\x65\x6b",
+(0x1383+2528-0x1d5c))){tSmsData.TP_VP=(0xfa4+5632-0x24f7);}else if(
+(0x16ca+3678-0x2528)==strncmp(Temp_sms_vp,"\x74\x77\x65\x6c\x76\x65\x68",
+(0x1126+500-0x1313))){tSmsData.TP_VP=(0xe28+5012-0x212d);}tSmsData.TP_PID=
+(0x90a+3906-0x184c);
+#if (0x1386+4593-0x2576)
 printf(
 "\x5b\x53\x4d\x53\x63\x6f\x72\x65\x6d\x5d\x62\x65\x67\x69\x6e\x3a\x25\x73" "\n",
 g_zUfiSms_FinalCmgsBuf.pdu);
 #endif    
 iPduLength=EncodePdu_Submit(&tSmsData,g_zUfiSms_FinalCmgsBuf.pdu);
-#if (0xc95+3446-0x1a0a)
+#if (0x264+5717-0x18b8)
 printf(
 "\x5b\x53\x4d\x53\x63\x6f\x72\x65\x6d\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x4d\x61\x6b\x65\x46\x69\x6e\x61\x6c\x43\x6d\x67\x73\x42\x75\x66\x20\x6d\x61\x6b\x65\x20\x70\x64\x75\x20\x64\x61\x74\x61" "\n"
 );printf("\x5b\x53\x4d\x53\x63\x6f\x72\x65\x6d\x5d\x25\x73" "\n",
 g_zUfiSms_FinalCmgsBuf.pdu);
 #endif

-(void)String2Bytes(g_zUfiSms_FinalCmgsBuf.pdu,tmpBuf1,(0x1692+3294-0x236e));
+(void)String2Bytes(g_zUfiSms_FinalCmgsBuf.pdu,tmpBuf1,(0xd23+776-0x1029));
 Bytes2String(tmpBuf1,tmpBuf2,strlen(tmpBuf1));nSmscLength=atoi(tmpBuf2);if(
-nSmscLength<(0xf84+4116-0x1f98)||nSmscLength>INT_MAX-(0x11b3+4885-0x24c7)){
-at_print(LOG_ERR,
+nSmscLength<(0x175+2248-0xa3d)||nSmscLength>INT_MAX-(0xdfb+794-0x1114)){at_print
+(LOG_ERR,
 "\x5b\x53\x4d\x53\x5d\x6e\x53\x6d\x73\x63\x4c\x65\x6e\x67\x74\x68\x20\x65\x72\x72\x3a\x25\x64" "\n"
-,nSmscLength);nSmscLength=(0x284+5301-0x1739);;}nSmscLength++;
-g_zUfiSms_FinalCmgsBuf.length=iPduLength/(0xdb4+870-0x1118)-nSmscLength;
-#if (0x2d7+2446-0xc64)
+,nSmscLength);nSmscLength=(0x1e91+567-0x20c8);;}nSmscLength++;
+g_zUfiSms_FinalCmgsBuf.length=iPduLength/(0xfb5+5842-0x2685)-nSmscLength;
+#if (0x574+6780-0x1fef)
 printf(
 "\x5b\x53\x4d\x53\x63\x6f\x72\x65\x6d\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x4d\x61\x6b\x65\x46\x69\x6e\x61\x6c\x43\x6d\x67\x73\x42\x75\x66\x20\x6d\x61\x6b\x65\x20\x65\x6e\x64\x20\x70\x64\x75\x20\x64\x61\x74\x61" "\n"
 );printf(
@@ -329,22 +330,22 @@
 return ZUFI_SUCC;}int zUfiSms_FillSubmitTpdu(T_zUfiSms_ConcatInfo*ptConcatSms,
 T_zUfiSms_GroupInfo*ptGroupSms,int iSmsLen,T_zUfiSms_SubmitTpdu*ptSubmit,
 T_zUfiSms_DbStoreData*ptDbSaveData){if(NULL==ptSubmit||NULL==ptConcatSms||NULL==
-ptGroupSms||NULL==ptDbSaveData){return-(0x13d1+2543-0x1dbf);}ptSubmit->
+ptGroupSms||NULL==ptDbSaveData){return-(0x1918+741-0x1bfc);}ptSubmit->
 reject_duplicates=FALSE;ptSubmit->reply_path_present=FALSE;ptSubmit->
 user_data_header_present=FALSE;ptSubmit->status_report_enabled=
-g_zUfiSms_CurSmsPara.status_report_on;if(((0xc47+6597-0x260b)<ptConcatSms->
-total_msg)&&(ptConcatSms->current_sending+(0xf09+5372-0x2404)<ptConcatSms->
-total_msg)){ptSubmit->status_report_enabled=(0x1aa7+1546-0x20b1);}ptSubmit->
+g_zUfiSms_CurSmsPara.status_report_on;if(((0x439+3078-0x103e)<ptConcatSms->
+total_msg)&&(ptConcatSms->current_sending+(0x5d7+3159-0x122d)<ptConcatSms->
+total_msg)){ptSubmit->status_report_enabled=(0x29c+3381-0xfd1);}ptSubmit->
 message_reference=g_zUfiSms_MsgRefer;ptSubmit->pid=WMS_PID_DEFAULT;ptSubmit->dcs
-.msg_class=(wms_message_class_e_type)(0xac2+140-0xb4a);ptSubmit->dcs.
-is_compressed=(0xd1f+5441-0x2260);ptSubmit->dcs.alphabet=(g_zUfiSms_Dcs==DCS_ASC
-)?WMS_GW_ALPHABET_7_BIT_DEFAULT:WMS_GW_ALPHABET_UCS2;ptSubmit->validity.format=
+.msg_class=(wms_message_class_e_type)(0x8d3+4028-0x188b);ptSubmit->dcs.
+is_compressed=(0x3c7+39-0x3ee);ptSubmit->dcs.alphabet=(g_zUfiSms_Dcs==DCS_ASC)?
+WMS_GW_ALPHABET_7_BIT_DEFAULT:WMS_GW_ALPHABET_UCS2;ptSubmit->validity.format=
 WMS_GW_VALIDITY_RELATIVE;zUfiSms_DecodeRelativeTime(g_zUfiSms_CurSmsPara.
 tp_validity_period,&ptSubmit->validity.u.time);ptSubmit->user_data.num_headers=
-(0x6b+492-0x257);if(ptConcatSms->total_msg>(0x125b+4196-0x22be)){
+(0x96f+6043-0x210a);if(ptConcatSms->total_msg>(0x4a0+5068-0x186b)){
 zUfiSms_FillDateheader(ptSubmit,ptConcatSms,ptDbSaveData);ptDbSaveData->
-concat_info[(0x1cfb+2497-0x26ba)]=ptConcatSms->current_sending+
-(0xb8d+4186-0x1be6);ptDbSaveData->concat_info[(0x199b+453-0x1b5f)]=ptConcatSms->
+concat_info[(0x1deb+830-0x2127)]=ptConcatSms->current_sending+
+(0xe56+5846-0x252b);ptDbSaveData->concat_info[(0xc06+4891-0x1f20)]=ptConcatSms->
 total_msg;}if(g_zUfiSms_Language==DCS_PORTUGUESE){UINT8 i=ptSubmit->user_data.
 num_headers;ptSubmit->user_data_header_present=TRUE;ptSubmit->user_data.headers[
 i].header_id=WMS_UDH_NAT_LANG_SS;ptSubmit->user_data.headers[ptSubmit->user_data
@@ -352,29 +353,29 @@
 user_data.num_headers++;g_zUfiSms_IsLanguageShift=WMS_UDH_NAT_LANG_SS;}ptSubmit
 ->user_data.sm_len=iSmsLen;memcpy(ptSubmit->user_data.sm_data,ptConcatSms->
 msg_contents[ptConcatSms->current_sending],iSmsLen);if(ptGroupSms->receivers[
-ptGroupSms->current_receiver][(0x1306+705-0x15c7)]==((char)(0x1e62+952-0x21ef)))
+ptGroupSms->current_receiver][(0xd3f+3666-0x1b91)]==((char)(0xd7a+1072-0x117f)))
 {(void)zUfiSms_CharToInt(ptGroupSms->receivers[ptGroupSms->current_receiver]+
-(0x6c5+5146-0x1ade),strlen(ptGroupSms->receivers[ptGroupSms->current_receiver])-
-(0x1e80+1102-0x22cd),ptSubmit->address.digits);ptSubmit->address.number_type=
+(0xd6a+6292-0x25fd),strlen(ptGroupSms->receivers[ptGroupSms->current_receiver])-
+(0xea+861-0x446),ptSubmit->address.digits);ptSubmit->address.number_type=
 WMS_NUMBER_INTERNATIONAL;ptSubmit->address.number_of_digits=strlen(ptGroupSms->
-receivers[ptGroupSms->current_receiver])-(0x10e7+381-0x1263);}else if(ptGroupSms
-->receivers[ptGroupSms->current_receiver][(0xd5c+6176-0x257c)]==
-((char)(0xb61+394-0xcbb))&&ptGroupSms->receivers[ptGroupSms->current_receiver][
-(0x7c2+1741-0xe8e)]==((char)(0x9a8+583-0xbbf))){(void)zUfiSms_CharToInt(
-ptGroupSms->receivers[ptGroupSms->current_receiver]+(0x6c9+7183-0x22d6),strlen(
-ptGroupSms->receivers[ptGroupSms->current_receiver])-(0x1282+2578-0x1c92),
-ptSubmit->address.digits);ptSubmit->address.number_type=WMS_NUMBER_INTERNATIONAL
-;ptSubmit->address.number_of_digits=strlen(ptGroupSms->receivers[ptGroupSms->
-current_receiver])-(0xe88+1232-0x1356);}else{(void)zUfiSms_CharToInt(ptGroupSms
+receivers[ptGroupSms->current_receiver])-(0x2b7+1085-0x6f3);}else if(ptGroupSms
+->receivers[ptGroupSms->current_receiver][(0x23a+3149-0xe87)]==
+((char)(0x9cf+3989-0x1934))&&ptGroupSms->receivers[ptGroupSms->current_receiver]
+[(0x1892+3294-0x256f)]==((char)(0x12b9+4609-0x248a))){(void)zUfiSms_CharToInt(
+ptGroupSms->receivers[ptGroupSms->current_receiver]+(0xb6c+1299-0x107d),strlen(
+ptGroupSms->receivers[ptGroupSms->current_receiver])-(0x156+3727-0xfe3),ptSubmit
+->address.digits);ptSubmit->address.number_type=WMS_NUMBER_INTERNATIONAL;
+ptSubmit->address.number_of_digits=strlen(ptGroupSms->receivers[ptGroupSms->
+current_receiver])-(0xb53+3531-0x191c);}else{(void)zUfiSms_CharToInt(ptGroupSms
 ->receivers[ptGroupSms->current_receiver],strlen(ptGroupSms->receivers[
 ptGroupSms->current_receiver]),ptSubmit->address.digits);ptSubmit->address.
 number_type=WMS_NUMBER_UNKNOWN;ptSubmit->address.number_of_digits=strlen(
 ptGroupSms->receivers[ptGroupSms->current_receiver]);}ptSubmit->address.
-digit_mode=(wms_digit_mode_e_type)(0x1399+2942-0x1f17);ptSubmit->address.
-number_mode=(wms_number_mode_e_type)(0x1208+1677-0x1895);ptSubmit->address.
+digit_mode=(wms_digit_mode_e_type)(0xd4d+3473-0x1ade);ptSubmit->address.
+number_mode=(wms_number_mode_e_type)(0x935+4352-0x1a35);ptSubmit->address.
 number_plan=WMS_NUMBER_PLAN_TELEPHONY;memset(&g_zUfiSms_SendingSms,
-(0x4d8+7699-0x22eb),sizeof(SMS_PARAM));snprintf(g_zUfiSms_SendingSms.TPA,sizeof(
-g_zUfiSms_SendingSms.TPA),"\x25\x73",ptGroupSms->receivers[ptGroupSms->
+(0x1e26+1744-0x24f6),sizeof(SMS_PARAM));snprintf(g_zUfiSms_SendingSms.TPA,sizeof
+(g_zUfiSms_SendingSms.TPA),"\x25\x73",ptGroupSms->receivers[ptGroupSms->
 current_receiver]);if(g_zUfiSms_Language!=NOT_DEFINE_LANGUAGE){
 g_zUfiSms_SendingSms.TP_DCS=CODE_GSM7;}else{if(g_zUfiSms_Dcs==DCS_USC){
 g_zUfiSms_SendingSms.TP_DCS=CODE_UCS2;}else{g_zUfiSms_SendingSms.TP_DCS=
@@ -383,21 +384,21 @@
 zUfiSms_FillGlobalTpudUcs2(ptSubmit,ptConcatSms,ptDbSaveData);}(void)
 zUfiSms_MakeFinalCmgsBuf();return ZUFI_SUCC;}void zUfiSms_FillSca(
 T_zUfiSms_ClientMsg*ptClientMsg){char sca[ZTE_WMS_SCA_LEN_MAX]={
-(0x1edb+1178-0x2375)};int i=(0x1043+5518-0x25d1);if(NULL==ptClientMsg){return;}
+(0x1944+1176-0x1ddc)};int i=(0x212+50-0x244);if(NULL==ptClientMsg){return;}
 memcpy((void*)sca,(void*)(g_zUfiSms_CurSmsPara.sca),sizeof(g_zUfiSms_CurSmsPara.
-sca));if(sca[(0x108+6192-0x1938)]==((char)(0xbf9+2958-0x175c))){ptClientMsg->u.
+sca));if(sca[(0x4a0+6748-0x1efc)]==((char)(0x118+3829-0xfe2))){ptClientMsg->u.
 gw_message.sc_address.number_type=WMS_NUMBER_INTERNATIONAL;}ptClientMsg->u.
 gw_message.sc_address.digit_mode=WMS_DIGIT_MODE_8_BIT;ptClientMsg->u.gw_message.
 sc_address.number_plan=WMS_NUMBER_PLAN_TELEPHONY;ptClientMsg->u.gw_message.
-sc_address.number_of_digits=strlen(sca);if(sca[(0xe4a+3297-0x1b2b)]==
-((char)(0x1ea4+1887-0x25d8))){ptClientMsg->u.gw_message.sc_address.
-number_of_digits--;for(i=(0xce4+5719-0x233b);i<ptClientMsg->u.gw_message.
-sc_address.number_of_digits;i++){sca[i]=sca[i+(0x9ca+2922-0x1533)];}}else if(sca
-[(0x1118+1979-0x18d3)]==((char)(0x1edf+302-0x1fdd))&&sca[(0x63a+3833-0x1532)]==
-((char)(0xe5b+4338-0x1f1d))){ptClientMsg->u.gw_message.sc_address.
-number_of_digits-=(0x10cd+2350-0x19f9);for(i=(0xd49+1170-0x11db);i<ptClientMsg->
-u.gw_message.sc_address.number_of_digits;i++){sca[i]=sca[i+(0xce4+2964-0x1876)];
-}}(void)zUfiSms_CharToInt(sca,ptClientMsg->u.gw_message.sc_address.
+sc_address.number_of_digits=strlen(sca);if(sca[(0x4d5+5654-0x1aeb)]==
+((char)(0x184c+255-0x1920))){ptClientMsg->u.gw_message.sc_address.
+number_of_digits--;for(i=(0xac7+3466-0x1851);i<ptClientMsg->u.gw_message.
+sc_address.number_of_digits;i++){sca[i]=sca[i+(0xf82+5924-0x26a5)];}}else if(sca
+[(0x1bc+54-0x1f2)]==((char)(0xf21+6013-0x266e))&&sca[(0x3da+8764-0x2615)]==
+((char)(0x58f+2445-0xeec))){ptClientMsg->u.gw_message.sc_address.
+number_of_digits-=(0x911+6516-0x2283);for(i=(0x1e4+1112-0x63c);i<ptClientMsg->u.
+gw_message.sc_address.number_of_digits;i++){sca[i]=sca[i+(0x1bdf+844-0x1f29)];}}
+(void)zUfiSms_CharToInt(sca,ptClientMsg->u.gw_message.sc_address.
 number_of_digits,ptClientMsg->u.gw_message.sc_address.digits);}void 
 zUfiSms_FillDbSaveData(T_zUfiSms_ClientMsg*ptClientMsg,T_zUfiSms_ClientTsData*
 ptClientData,T_zUfiSms_ConcatInfo*ptConcatSms,T_zUfiSms_GroupInfo*ptGroupSms,int
@@ -407,12 +408,12 @@
 }ptDbSaveData->mem_store=ptClientMsg->msg_hdr.mem_store;ptDbSaveData->index=
 ptClientMsg->msg_hdr.index;ptDbSaveData->mode=ptClientMsg->msg_hdr.message_mode;
 ptDbSaveData->tag=ptClientMsg->msg_hdr.tag;memset(ptDbSaveData->number,
-(0xbb5+2423-0x152c),ZTE_WMS_ADDRESS_LEN_MAX+(0x6bf+7397-0x23a3));memcpy(
+(0x17d9+1508-0x1dbd),ZTE_WMS_ADDRESS_LEN_MAX+(0x136+7990-0x206b));memcpy(
 ptDbSaveData->number,ptGroupSms->receivers[ptGroupSms->current_receiver],strlen(
 ptGroupSms->receivers[ptGroupSms->current_receiver]));ptDbSaveData->tp_dcs=
 DCS_USC;ptDbSaveData->tp_pid=ptClientData->u.gw_pp.u.submit.pid;ptDbSaveData->
 msg_ref=ptClientData->u.gw_pp.u.submit.message_reference;memset(ptDbSaveData->
-sms_content,(0x158a+4111-0x2599),sizeof(ptDbSaveData->sms_content));if(
+sms_content,(0x671+6654-0x206f),sizeof(ptDbSaveData->sms_content));if(
 g_zUfiSms_Dcs==DCS_USC){ptDbSaveData->alphabet=WMS_GW_ALPHABET_UCS2;}else if(
 g_zUfiSms_Dcs==DCS_ASC){ptDbSaveData->alphabet=WMS_GW_ALPHABET_7_BIT_DEFAULT;}(
 void)zUfiSms_DispatchWtoi(ptConcatSms->msg_contents[ptConcatSms->current_sending
@@ -423,7 +424,7 @@
 ptDbSaveData){T_zUfiSms_ClientTsData tClientTsData;ptClientMsg->msg_hdr.
 mem_store=WMS_MEMORY_STORE_NV_GW;ptClientMsg->msg_hdr.tag=WMS_TAG_MO_NOT_SENT;
 ptClientMsg->msg_hdr.message_mode=WMS_MESSAGE_MODE_GW;ptClientMsg->u.gw_message.
-is_broadcast=FALSE;memset((void*)&tClientTsData,(0xf80+3265-0x1c41),sizeof(
+is_broadcast=FALSE;memset((void*)&tClientTsData,(0x2c5+1543-0x8cc),sizeof(
 wms_client_ts_data_s_type));tClientTsData.format=WMS_FORMAT_GW_PP;tClientTsData.
 u.gw_pp.tpdu_type=WMS_TPDU_SUBMIT;(void)zUfiSms_FillSubmitTpdu(&
 g_zUfiSms_ConcatSms,&g_zUfiSms_GroupSms,g_zUfiSms_UnitLen,&tClientTsData.u.gw_pp
@@ -432,95 +433,94 @@
 ptClientMsg,&tClientTsData,&g_zUfiSms_ConcatSms,&g_zUfiSms_GroupSms,
 g_zUfiSms_UnitLen,ptDbSaveData);}int zUfiSms_StoreNormalSmsToDb(
 T_zUfiSms_DbStoreData*ptDbSaveData,const char*pMemStore,long iSmsId){int result=
-ZUFI_SUCC;char*pContent=NULL;int iTotalCount=(0x2f1+4564-0x14c5);pContent=(char*
-)malloc((0xfcb+4968-0x232f)*ZTE_WMS_SMS_MSG_CONTENT_STORE_LEN_MAX);if(pContent==
-NULL){return ZUFI_FAIL;}memset(pContent,(0x23af+347-0x250a),(0x11d6+2310-0x1ad8)
+ZUFI_SUCC;char*pContent=NULL;int iTotalCount=(0x1c5f+1529-0x2258);pContent=(char
+*)malloc((0x117b+2033-0x1968)*ZTE_WMS_SMS_MSG_CONTENT_STORE_LEN_MAX);if(pContent
+==NULL){return ZUFI_FAIL;}memset(pContent,(0xff+5615-0x16ee),(0xfff+4825-0x22d4)
 *ZTE_WMS_SMS_MSG_CONTENT_STORE_LEN_MAX);if(WMS_GW_ALPHABET_7_BIT_DEFAULT==
-ptDbSaveData->alphabet){static char data[(0x77a+8025-0x26cf)*
-ZTE_WMS_SMS_MSG_CONTENT_LEN_MAX+(0xb95+253-0xc91)]={(0x117f+3049-0x1d68)};memset
-(data,(0x9ec+874-0xd56),(0x21f+659-0x4ae)*ZTE_WMS_SMS_MSG_CONTENT_LEN_MAX+
-(0x12a7+1328-0x17d6));(void)zUfiSms_DecodeContent((char*)ptDbSaveData->
-sms_content,strlen(ptDbSaveData->sms_content),FALSE,data);strncpy(pContent,data,
-(0x1864+1023-0x1c5f)*ZTE_WMS_SMS_MSG_CONTENT_STORE_LEN_MAX-(0x4c0+2861-0xfec));}
-else{strncpy(pContent,ptDbSaveData->sms_content,(0x28d+1137-0x6fa)*
-ZTE_WMS_SMS_MSG_CONTENT_STORE_LEN_MAX-(0x990+4808-0x1c57));}ptDbSaveData->tp_dcs
-=(unsigned char)(0x1ac+6230-0x1a00);if(-(0x1fb2+503-0x21a8)==iSmsId){if(
-ZUFI_FAIL==zUfiSms_GetTotalCount(pMemStore,&iTotalCount)){free(pContent);
-pContent=NULL;return ZUFI_FAIL;}printf(
+ptDbSaveData->alphabet){static char data[(0xc30+299-0xd57)*
+ZTE_WMS_SMS_MSG_CONTENT_LEN_MAX+(0x12ea+1421-0x1876)]={(0x1b3a+2299-0x2435)};
+memset(data,(0x4d0+1614-0xb1e),(0xa49+4968-0x1dad)*
+ZTE_WMS_SMS_MSG_CONTENT_LEN_MAX+(0xf88+5628-0x2583));(void)zUfiSms_DecodeContent
+((char*)ptDbSaveData->sms_content,strlen(ptDbSaveData->sms_content),FALSE,data);
+strncpy(pContent,data,(0x18b3+446-0x1a6d)*ZTE_WMS_SMS_MSG_CONTENT_STORE_LEN_MAX-
+(0x561+4896-0x1880));}else{strncpy(pContent,ptDbSaveData->sms_content,
+(0x1f59+619-0x21c0)*ZTE_WMS_SMS_MSG_CONTENT_STORE_LEN_MAX-(0xa37+6108-0x2212));}
+ptDbSaveData->tp_dcs=(unsigned char)(0xc8b+5880-0x2381);if(-(0x12cb+619-0x1535)
+==iSmsId){if(ZUFI_FAIL==zUfiSms_GetTotalCount(pMemStore,&iTotalCount)){free(
+pContent);pContent=NULL;return ZUFI_FAIL;}printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x53\x74\x6f\x72\x65\x4e\x6f\x72\x6d\x61\x6c\x53\x6d\x73\x54\x6f\x44\x62\x20\x69\x54\x6f\x74\x61\x6c\x43\x6f\x75\x6e\x74\x3d\x25\x64" "\n"
 ,iTotalCount);if(iTotalCount>=g_zUfiSms_StoreCapablity[(strcmp(pMemStore,
 "\x6e\x76")?ZTE_WMS_MEMORY_SIM:ZTE_WMS_MEMORY_NV)]){free(pContent);pContent=NULL
-;return-(0x1c05+1305-0x211d);}if(ZUFI_FAIL==zUfiSms_InsertNormalSmsToDb(
+;return-(0x1b3+204-0x27e);}if(ZUFI_FAIL==zUfiSms_InsertNormalSmsToDb(
 ptDbSaveData,pMemStore,pContent)){result=ZUFI_FAIL;}}else{if(ZUFI_FAIL==
 zUfiSms_UpdateNormalSmsToDb(ptDbSaveData,pMemStore,pContent,iSmsId)){result=
 ZUFI_FAIL;}}free(pContent);pContent=NULL;return result;}static int 
 zUfiSms_ConcatDataFree(T_zUfiSms_DbStoreData*ptDbSaveData,int count,char**
-out_result){int i=(0x1180+597-0x13d5);for(i=(0x74d+5167-0x1b7c);i<count;i++){if(
-ptDbSaveData->concat_info[(0x636+8373-0x26e9)]==i+(0x157b+2657-0x1fdb)){free(
-out_result[i]);out_result[i]=NULL;break;}}return(0x2400+328-0x2548);}int 
+out_result){int i=(0x167+6630-0x1b4d);for(i=(0x666+310-0x79c);i<count;i++){if(
+ptDbSaveData->concat_info[(0x1680+1043-0x1a91)]==i+(0x476+5529-0x1a0e)){free(
+out_result[i]);out_result[i]=NULL;break;}}return(0x172a+1917-0x1ea7);}int 
 zUfiSms_AddNewSmsToConcatData(T_zUfiSms_DbStoreData*ptDbSaveData,char*
 pOldContent,char*pFormatNewContent,char*pRealNewContent,T_zUfiSms_DbStoreStr*pac
-,int*pConcatTotalNum,int len){int count=(0x988+6610-0x235a);char**out_result=
-NULL;char cSegChar=((char)(0x1975+2732-0x23e6));int i=(0x1483+132-0x1507);int 
-iTotalSegNum=(0x912+4109-0x191f);char acContentSeg[(0x446+4153-0x147d)*
-ZTE_WMS_SMS_MSG_CONTENT_STORE_LEN_MAX*ZTE_WMS_SMS_COUNT_MAX]={
-(0xe0d+2227-0x16c0)};char*pCurConPos=acContentSeg;boolean isEsc=FALSE;if(NULL==
-pOldContent){return-(0xdb3+5706-0x23fc);}count=zUfiSms_SplitString(pOldContent,&
-out_result,cSegChar);for(i=(0x1099+3000-0x1c51);i<count;i++){if(ptDbSaveData->
-concat_info[(0x1c0b+1711-0x22b8)]==i+(0xe29+6193-0x2659)){out_result[i]=(char*)
-malloc(sizeof(ptDbSaveData->sms_content));memset(out_result[i],
-(0x147b+261-0x1580),sizeof(ptDbSaveData->sms_content));if(
-WMS_GW_ALPHABET_7_BIT_DEFAULT==ptDbSaveData->alphabet){isEsc=
-zUfiSms_DecodeContent(ptDbSaveData->sms_content,strlen(ptDbSaveData->sms_content
-),isEsc,out_result[i]);}else{strncpy(out_result[i],ptDbSaveData->sms_content,
-sizeof(ptDbSaveData->sms_content)-(0xce1+1650-0x1352));}break;}}for(i=
-(0x1902+2378-0x224c);i<count;i++){snprintf(acContentSeg+strlen(acContentSeg),
-sizeof(acContentSeg)-strlen(acContentSeg),"\x25\x73",out_result[i]);strcat(
-pFormatNewContent,out_result[i]);if(i!=count-(0x164a+2580-0x205d)){strcat(
-pFormatNewContent,"\x3b");}}strncpy(pRealNewContent,acContentSeg,len);
+,int*pConcatTotalNum,int len){int count=(0x182a+1703-0x1ed1);char**out_result=
+NULL;char cSegChar=((char)(0x1923+73-0x1931));int i=(0x1166+2264-0x1a3e);int 
+iTotalSegNum=(0xbea+3410-0x193c);char acContentSeg[(0xcf6+1229-0x11c1)*
+ZTE_WMS_SMS_MSG_CONTENT_STORE_LEN_MAX*ZTE_WMS_SMS_COUNT_MAX]={(0x291+3-0x294)};
+char*pCurConPos=acContentSeg;boolean isEsc=FALSE;if(NULL==pOldContent){return-
+(0xeea+1344-0x1429);}count=zUfiSms_SplitString(pOldContent,&out_result,cSegChar)
+;for(i=(0x408+8339-0x249b);i<count;i++){if(ptDbSaveData->concat_info[
+(0x165+9112-0x24fb)]==i+(0x348+7352-0x1fff)){out_result[i]=(char*)malloc(sizeof(
+ptDbSaveData->sms_content));memset(out_result[i],(0x2030+505-0x2229),sizeof(
+ptDbSaveData->sms_content));if(WMS_GW_ALPHABET_7_BIT_DEFAULT==ptDbSaveData->
+alphabet){isEsc=zUfiSms_DecodeContent(ptDbSaveData->sms_content,strlen(
+ptDbSaveData->sms_content),isEsc,out_result[i]);}else{strncpy(out_result[i],
+ptDbSaveData->sms_content,sizeof(ptDbSaveData->sms_content)-(0x10fc+1910-0x1871)
+);}break;}}for(i=(0x166+8791-0x23bd);i<count;i++){snprintf(acContentSeg+strlen(
+acContentSeg),sizeof(acContentSeg)-strlen(acContentSeg),"\x25\x73",out_result[i]
+);strcat(pFormatNewContent,out_result[i]);if(i!=count-(0x1990+1688-0x2027)){
+strcat(pFormatNewContent,"\x3b");}}strncpy(pRealNewContent,acContentSeg,len);
 zUfiSms_ConcatDataFree(ptDbSaveData,count,out_result);free(out_result);
 out_result=NULL;count=zUfiSms_SplitString(pac->IndStr,&out_result,cSegChar);for(
-i=(0x7fb+752-0xaeb);i<count;i++){if(ptDbSaveData->concat_info[
-(0x1432+3715-0x22b3)]==i+(0x23bc+43-0x23e6)){out_result[i]=(char*)malloc(
-SHORT_INT_LEN);memset(out_result[i],(0x17e3+455-0x19aa),SHORT_INT_LEN);snprintf(
-out_result[i],SHORT_INT_LEN,"\x25\x64",ptDbSaveData->index);break;}}for(i=
-(0x373+7144-0x1f5b);i<count;i++){snprintf(pac->FormatInd+strlen(pac->FormatInd),
+i=(0x18d0+3138-0x2512);i<count;i++){if(ptDbSaveData->concat_info[
+(0xf6d+518-0x1171)]==i+(0x2239+775-0x253f)){out_result[i]=(char*)malloc(
+SHORT_INT_LEN);memset(out_result[i],(0x107f+5682-0x26b1),SHORT_INT_LEN);snprintf
+(out_result[i],SHORT_INT_LEN,"\x25\x64",ptDbSaveData->index);break;}}for(i=
+(0xa95+1070-0xec3);i<count;i++){snprintf(pac->FormatInd+strlen(pac->FormatInd),
 sizeof(pac->FormatInd)-strlen(pac->FormatInd),"\x25\x73",out_result[i]);if(i!=
-count-(0x82+8580-0x2205)){snprintf(pac->FormatInd+strlen(pac->FormatInd),sizeof(
-pac->FormatInd)-strlen(pac->FormatInd),"\x3b");}}zUfiSms_ConcatDataFree(
+count-(0x447+8036-0x23aa)){snprintf(pac->FormatInd+strlen(pac->FormatInd),sizeof
+(pac->FormatInd)-strlen(pac->FormatInd),"\x3b");}}zUfiSms_ConcatDataFree(
 ptDbSaveData,count,out_result);free(out_result);out_result=NULL;count=
-zUfiSms_SplitString(pac->Seg_Seq,&out_result,cSegChar);for(i=(0xd95+4052-0x1d69)
-;i<count;i++){if(ptDbSaveData->concat_info[(0xa98+1308-0xfb2)]==i+
-(0x53c+789-0x850)){out_result[i]=(char*)malloc(SHORT_INT_LEN);memset(out_result[
-i],(0xc65+5850-0x233f),SHORT_INT_LEN);snprintf(out_result[i],SHORT_INT_LEN,
-"\x25\x64",ptDbSaveData->concat_info[(0x5+1628-0x65f)]);break;}}for(i=
-(0x11f7+275-0x130a);i<count;i++){snprintf(pac->FormatSeq+strlen(pac->FormatSeq),
-sizeof(pac->FormatSeq)-strlen(pac->FormatSeq),"\x25\x73",out_result[i]);if(i!=
-count-(0x5f4+1039-0xa02)){snprintf(pac->FormatSeq+strlen(pac->FormatSeq),sizeof(
-pac->FormatSeq)-strlen(pac->FormatSeq),"\x3b");}if((0xaf0+565-0xd25)!=strcmp(
-out_result[i],"")){iTotalSegNum++;}}*pConcatTotalNum=iTotalSegNum;
-zUfiSms_ConcatDataFree(ptDbSaveData,count,out_result);free(out_result);
-out_result=NULL;return(0xfc4+4623-0x21d3);}int zUfiSms_UpdateConcatSms(
-T_zUfiSms_DbStoreData*ptDbSaveData,const char*pStorePos,long iSmsId){
-T_zUfiSms_DbStoreStr ac={(0x391+6298-0x1c2b)};char*pOldContent=NULL;char*
-pFormatNewContent=NULL;char*pRealNewContent=NULL;int iTotalNum=
-(0x4a1+2140-0xcfd);int result=ZUFI_SUCC;int spaceLen=(0x11c9+1583-0x17f4)*
-ZTE_WMS_SMS_MSG_CONTENT_LEN_MAX*ZTE_WMS_CONCAT_SMS_COUNT_MAX+(0x8d9+1524-0xec9);
+zUfiSms_SplitString(pac->Seg_Seq,&out_result,cSegChar);for(i=(0xeff+2287-0x17ee)
+;i<count;i++){if(ptDbSaveData->concat_info[(0x22cf+785-0x25de)]==i+
+(0x81b+4042-0x17e4)){out_result[i]=(char*)malloc(SHORT_INT_LEN);memset(
+out_result[i],(0x1dac+328-0x1ef4),SHORT_INT_LEN);snprintf(out_result[i],
+SHORT_INT_LEN,"\x25\x64",ptDbSaveData->concat_info[(0x63a+7158-0x222e)]);break;}
+}for(i=(0x744+7216-0x2374);i<count;i++){snprintf(pac->FormatSeq+strlen(pac->
+FormatSeq),sizeof(pac->FormatSeq)-strlen(pac->FormatSeq),"\x25\x73",out_result[i
+]);if(i!=count-(0x1070+3187-0x1ce2)){snprintf(pac->FormatSeq+strlen(pac->
+FormatSeq),sizeof(pac->FormatSeq)-strlen(pac->FormatSeq),"\x3b");}if(
+(0x229+8886-0x24df)!=strcmp(out_result[i],"")){iTotalSegNum++;}}*pConcatTotalNum
+=iTotalSegNum;zUfiSms_ConcatDataFree(ptDbSaveData,count,out_result);free(
+out_result);out_result=NULL;return(0xb56+2749-0x1613);}int 
+zUfiSms_UpdateConcatSms(T_zUfiSms_DbStoreData*ptDbSaveData,const char*pStorePos,
+long iSmsId){T_zUfiSms_DbStoreStr ac={(0x21a+6547-0x1bad)};char*pOldContent=NULL
+;char*pFormatNewContent=NULL;char*pRealNewContent=NULL;int iTotalNum=
+(0x29c+8738-0x24be);int result=ZUFI_SUCC;int spaceLen=(0xf51+5956-0x2691)*
+ZTE_WMS_SMS_MSG_CONTENT_LEN_MAX*ZTE_WMS_CONCAT_SMS_COUNT_MAX+(0x65+3664-0xeb1);
 pOldContent=(char*)malloc(spaceLen);pFormatNewContent=(char*)malloc(spaceLen);
 pRealNewContent=(char*)malloc(spaceLen);if(pOldContent==NULL||pFormatNewContent
 ==NULL||pRealNewContent==NULL){if(pOldContent)free(pOldContent);if(
 pFormatNewContent)free(pFormatNewContent);if(pRealNewContent)free(
-pRealNewContent);return ZUFI_FAIL;}memset(pRealNewContent,(0x819+6529-0x219a),
-spaceLen);memset(pOldContent,(0xdfd+3229-0x1a9a),spaceLen);memset(
-pFormatNewContent,(0x740+6769-0x21b1),spaceLen);(void)zUfiSms_GetConcatInfo(
+pRealNewContent);return ZUFI_FAIL;}memset(pRealNewContent,(0x64b+1074-0xa7d),
+spaceLen);memset(pOldContent,(0x24c+8083-0x21df),spaceLen);memset(
+pFormatNewContent,(0x967+7303-0x25ee),spaceLen);(void)zUfiSms_GetConcatInfo(
 pStorePos,iSmsId,&ac,pOldContent,spaceLen);printf(
 "\x5b\x53\x4d\x53\x5d\x20\x74\x65\x65\x74\x20\x2d\x30\x20\x49\x6e\x64\x53\x74\x72\x3a\x25\x73\x2c\x53\x65\x67\x5f\x53\x65\x71\x3a\x25\x73\x2c\x46\x6f\x72\x6d\x61\x74\x49\x6e\x64\x3a\x25\x73\x2c\x46\x6f\x72\x6d\x61\x74\x53\x65\x71\x3a\x25\x73" "\n"
-,ac.IndStr,ac.Seg_Seq,ac.FormatInd,ac.FormatSeq);if(-(0x89d+2365-0x11d9)==
+,ac.IndStr,ac.Seg_Seq,ac.FormatInd,ac.FormatSeq);if(-(0xeb4+1221-0x1378)==
 zUfiSms_AddNewSmsToConcatData(ptDbSaveData,pOldContent,pFormatNewContent,
 pRealNewContent,&ac,&iTotalNum,spaceLen)){result=ZUFI_FAIL;}printf(
 "\x5b\x53\x4d\x53\x5d\x20\x74\x65\x65\x74\x20\x30\x20\x49\x6e\x64\x53\x74\x72\x3a\x25\x73\x2c\x53\x65\x67\x5f\x53\x65\x71\x3a\x25\x73\x2c\x46\x6f\x72\x6d\x61\x74\x49\x6e\x64\x3a\x25\x73\x2c\x46\x6f\x72\x6d\x61\x74\x53\x65\x71\x3a\x25\x73" "\n"
 ,ac.IndStr,ac.Seg_Seq,ac.FormatInd,ac.FormatSeq);ptDbSaveData->tp_dcs=
-(0xa66+2250-0x132e);if(ZUFI_FAIL==zUfiSms_UpdateConcatSmsToDb(ptDbSaveData,
+(0x16aa+2639-0x20f7);if(ZUFI_FAIL==zUfiSms_UpdateConcatSmsToDb(ptDbSaveData,
 pStorePos,pFormatNewContent,pRealNewContent,&ac,iTotalNum,iSmsId)){result=
 ZUFI_FAIL;}printf(
 "\x5b\x53\x4d\x53\x5d\x20\x74\x65\x65\x74\x20\x31\x20\x49\x6e\x64\x53\x74\x72\x3a\x25\x73\x2c\x53\x65\x67\x5f\x53\x65\x71\x3a\x25\x73\x2c\x46\x6f\x72\x6d\x61\x74\x49\x6e\x64\x3a\x25\x73\x2c\x46\x6f\x72\x6d\x61\x74\x53\x65\x71\x3a\x25\x73" "\n"
@@ -529,33 +529,34 @@
 pFormatNewContent=NULL;printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x55\x70\x64\x61\x74\x65\x43\x6f\x6e\x63\x61\x74\x53\x6d\x73\x20\x73\x75\x63\x63\x65\x73\x73\x2e" "\n"
 );return result;}int zUfiSms_InsertConcatSms(T_zUfiSms_DbStoreData*ptDbSaveData,
-const char*pStorePos){T_zUfiSms_DbStoreStr ac={(0xabf+974-0xe8d)};int 
-iSms_TotalCount=(0x105+6448-0x1a35);int i=(0x467+8838-0x26ed);char acTmpContent[
-(0x1880+1784-0x1e78)];int iConcatNum=(0x113c+4289-0x21fd);char*pFormatConcat=
-NULL;char*pContent=NULL;int spaceLen=(0x78f+3533-0x1558)*
-ZTE_WMS_SMS_MSG_CONTENT_LEN_MAX*ZTE_WMS_CONCAT_SMS_COUNT_MAX+(0x66a+139-0x6f1);
-if(NULL==ptDbSaveData||NULL==pStorePos){return ZUFI_FAIL;}printf(
+const char*pStorePos){T_zUfiSms_DbStoreStr ac={(0x940+4086-0x1936)};int 
+iSms_TotalCount=(0x1dd4+1077-0x2209);int i=(0x11df+3809-0x20c0);char 
+acTmpContent[(0x85a+5151-0x1b79)];int iConcatNum=(0x34b+2928-0xebb);char*
+pFormatConcat=NULL;char*pContent=NULL;int spaceLen=(0xec4+69-0xf05)*
+ZTE_WMS_SMS_MSG_CONTENT_LEN_MAX*ZTE_WMS_CONCAT_SMS_COUNT_MAX+
+(0x14d3+2874-0x2009);if(NULL==ptDbSaveData||NULL==pStorePos){return ZUFI_FAIL;}
+printf(
 "\x5b\x53\x4d\x53\x5d\x20\x65\x6e\x74\x65\x72\x20\x49\x6e\x73\x65\x72\x74\x43\x6f\x6e\x63\x61\x74\x53\x6d\x73\x2e" "\n"
-);memset(acTmpContent,(0x14f+1155-0x5d2),sizeof(acTmpContent));iSms_TotalCount=
-ptDbSaveData->concat_info[(0x132a+347-0x1484)];for(i=(0x4e5+3134-0x1122);i<
+);memset(acTmpContent,(0x1351+4122-0x236b),sizeof(acTmpContent));iSms_TotalCount
+=ptDbSaveData->concat_info[(0x11e9+1582-0x1816)];for(i=(0xc2f+1338-0x1168);i<
 iSms_TotalCount;i++){strcat(ac.IndStr,"\x3b");strcat(ac.Seg_Seq,"\x3b");strcat(
 acTmpContent,"\x3b");}pFormatConcat=(char*)malloc(spaceLen);if(NULL==
-pFormatConcat){return ZUFI_FAIL;}memset(pFormatConcat,(0x178c+743-0x1a73),
+pFormatConcat){return ZUFI_FAIL;}memset(pFormatConcat,(0x18c0+40-0x18e8),
 spaceLen);pContent=(char*)malloc(spaceLen);if(pContent==NULL){free(pFormatConcat
-);return ZUFI_FAIL;}memset(pContent,(0x1fc3+407-0x215a),spaceLen);if(-
-(0x4d3+4855-0x17c9)==zUfiSms_AddNewSmsToConcatData(ptDbSaveData,acTmpContent,
+);return ZUFI_FAIL;}memset(pContent,(0x1b0+3922-0x1102),spaceLen);if(-
+(0xa10+6021-0x2194)==zUfiSms_AddNewSmsToConcatData(ptDbSaveData,acTmpContent,
 pFormatConcat,pContent,&ac,&iConcatNum,spaceLen)){free(pFormatConcat);free(
 pContent);pFormatConcat=NULL;pContent=NULL;return ZUFI_FAIL;}ptDbSaveData->
-tp_dcs=(0x4fd+856-0x853);if(ZUFI_FAIL==zUfiSms_InsertConcatSmsToDb(ptDbSaveData,
-pStorePos,pFormatConcat,pContent,&ac,iConcatNum)){free(pFormatConcat);free(
-pContent);pFormatConcat=NULL;pContent=NULL;return ZUFI_FAIL;}free(pFormatConcat)
-;free(pContent);pFormatConcat=NULL;pContent=NULL;printf(
+tp_dcs=(0x1642+1740-0x1d0c);if(ZUFI_FAIL==zUfiSms_InsertConcatSmsToDb(
+ptDbSaveData,pStorePos,pFormatConcat,pContent,&ac,iConcatNum)){free(
+pFormatConcat);free(pContent);pFormatConcat=NULL;pContent=NULL;return ZUFI_FAIL;
+}free(pFormatConcat);free(pContent);pFormatConcat=NULL;pContent=NULL;printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x49\x6e\x73\x65\x72\x74\x43\x6f\x6e\x63\x61\x74\x53\x6d\x73\x20\x73\x75\x63\x63\x65\x73\x73\x2e" "\n"
 );return ZUFI_SUCC;}int zUfiSms_StoreConcatSmsToDb(T_zUfiSms_DbStoreData*
-ptDbSaveData,char*pMemStore){long iSmsId=(0x124f+1080-0x1687);int total_count=
-(0x6ed+2407-0x1054);if(NULL==ptDbSaveData||NULL==pMemStore){return ZUFI_FAIL;}
+ptDbSaveData,char*pMemStore){long iSmsId=(0x8b5+2799-0x13a4);int total_count=
+(0x658+4236-0x16e4);if(NULL==ptDbSaveData||NULL==pMemStore){return ZUFI_FAIL;}
 iSmsId=zUfiSms_SearchConcatSmsInDb(ptDbSaveData,pMemStore);if(-
-(0x11ec+318-0x1329)!=iSmsId){printf(
+(0x43c+6310-0x1ce1)!=iSmsId){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x53\x74\x6f\x72\x65\x43\x6f\x6e\x63\x61\x74\x53\x6d\x73\x54\x6f\x44\x62\x20\x45\x6e\x74\x65\x72\x20\x55\x70\x64\x61\x74\x65\x43\x6f\x6e\x63\x61\x74\x53\x6d\x73\x20\x53\x6d\x73\x49\x64\x3a\x25\x64\x2e" "\n"
 ,iSmsId);return zUfiSms_UpdateConcatSms(ptDbSaveData,pMemStore,iSmsId);}else{if(
 ZUFI_FAIL==zUfiSms_GetTotalCount(pMemStore,&total_count)){printf(
@@ -567,184 +568,184 @@
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x53\x74\x6f\x72\x65\x43\x6f\x6e\x63\x61\x74\x53\x6d\x73\x54\x6f\x44\x62\x20\x53\x6d\x73\x20\x6d\x65\x6d\x6f\x72\x79\x20\x69\x73\x20\x46\x75\x6c\x6c\x2e" "\n"
 );return ZUFI_FAIL;}return zUfiSms_InsertConcatSms(ptDbSaveData,pMemStore);}}int
  zUfiSms_WriteSmsToDb(T_zUfiSms_DbStoreData*ptDbSaveData,zUfiSms_StoreType 
-iMemStore,long iSmsId){char acDbMemStore[(0x380+3576-0x116e)];int iTotalCount=
-(0xd0f+3624-0x1b37);int id=(0x2260+713-0x2529);UINT8 needCheckMemory=
-(0x276+6599-0x1c3c);if(NULL==ptDbSaveData){return ZUFI_FAIL;}memset(acDbMemStore
-,(0x13a9+3429-0x210e),sizeof(acDbMemStore));if(WMS_STORAGE_TYPE_UIM_V01==
+iMemStore,long iSmsId){char acDbMemStore[(0x2365+643-0x25de)];int iTotalCount=
+(0x89b+1663-0xf1a);int id=(0xc73+1068-0x109f);UINT8 needCheckMemory=
+(0x694+8119-0x264a);if(NULL==ptDbSaveData){return ZUFI_FAIL;}memset(acDbMemStore
+,(0x10f7+4533-0x22ac),sizeof(acDbMemStore));if(WMS_STORAGE_TYPE_UIM_V01==
 iMemStore){strncpy(acDbMemStore,ZTE_WMS_DB_SIM_TABLE,sizeof(acDbMemStore)-
-(0xd98+1727-0x1456));}else{strncpy(acDbMemStore,ZTE_WMS_DB_NV_TABLE,sizeof(
-acDbMemStore)-(0x14e7+2030-0x1cd4));}if((0x11d4+968-0x159b)==ptDbSaveData->
+(0x1768+744-0x1a4f));}else{strncpy(acDbMemStore,ZTE_WMS_DB_NV_TABLE,sizeof(
+acDbMemStore)-(0x63b+6026-0x1dc4));}if((0x1113+5039-0x24c1)==ptDbSaveData->
 concat_sms){id=zUfiSms_SearchConcatSmsInDb(ptDbSaveData,&acDbMemStore);if(-
-(0x875+6624-0x2254)!=id){needCheckMemory=(0x8af+2204-0x114b);}}if(
-needCheckMemory==(0x594+1497-0xb6c)){if(ZUFI_FAIL==zUfiSms_GetTotalCount(
+(0x364+2154-0xbcd)!=id){needCheckMemory=(0x10e1+5027-0x2484);}}if(
+needCheckMemory==(0x1b59+630-0x1dce)){if(ZUFI_FAIL==zUfiSms_GetTotalCount(
 acDbMemStore,&iTotalCount)){return ZUFI_FAIL;}printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x57\x72\x69\x74\x65\x53\x6d\x73\x54\x6f\x44\x62\x20\x69\x54\x6f\x74\x61\x6c\x43\x6f\x75\x6e\x74\x3d\x25\x64\x28\x6e\x65\x65\x64\x43\x68\x65\x63\x6b\x4d\x65\x6d\x6f\x72\x79\x3d\x3d\x31\x29" "\n"
 ,iTotalCount);if(iTotalCount>=g_zUfiSms_StoreCapablity[(strcmp(acDbMemStore,
 "\x6e\x76")?ZTE_WMS_MEMORY_SIM:ZTE_WMS_MEMORY_NV)]){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x57\x72\x69\x74\x65\x53\x6d\x73\x54\x6f\x44\x62\x20\x6d\x65\x6d\x6f\x72\x79\x20\x66\x75\x6c\x6c\x2c\x20\x65\x72\x72\x6f\x72" "\n"
 );return ZTE_WMS_NV_MEMORY_FULL;}}if(ptDbSaveData->concat_info[
-(0x23e7+770-0x26e7)]==(0x15f4+2048-0x1df4)||ptDbSaveData->concat_info[
-(0x1966+652-0x1bf0)]>ptDbSaveData->concat_info[(0x90b+7433-0x2613)]){
-ptDbSaveData->concat_sms=(0x474+8789-0x26c9);}printf(
+(0xb76+5294-0x2022)]==(0x6ea+5813-0x1d9f)||ptDbSaveData->concat_info[
+(0x4d3+6995-0x2024)]>ptDbSaveData->concat_info[(0x16a4+3168-0x2303)]){
+ptDbSaveData->concat_sms=(0x23c6+91-0x2421);}printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x57\x72\x69\x74\x65\x53\x6d\x73\x54\x6f\x44\x62\x20\x54\x6f\x74\x61\x6c\x43\x6f\x75\x6e\x74\x3a\x25\x64\x2e\x63\x6f\x6e\x63\x61\x74\x5f\x73\x6d\x73\x3a\x25\x64\x2e\x63\x6f\x6e\x63\x61\x74\x5f\x69\x6e\x66\x6f\x5b\x31\x5d\x3a\x25\x64" "\n"
 ,iTotalCount,ptDbSaveData->concat_sms,ptDbSaveData->concat_info[
-(0x4ec+7055-0x207a)]);if((0xe57+2898-0x19a8)==ptDbSaveData->concat_sms){if(
-ZTE_WMS_CONCAT_SMS_COUNT_MAX<ptDbSaveData->concat_info[(0x1de3+2276-0x26c6)]){
+(0x1030+4712-0x2297)]);if((0x1418+479-0x15f6)==ptDbSaveData->concat_sms){if(
+ZTE_WMS_CONCAT_SMS_COUNT_MAX<ptDbSaveData->concat_info[(0x1628+3332-0x232b)]){
 return ZUFI_FAIL;}else{return zUfiSms_StoreConcatSmsToDb(ptDbSaveData,
 acDbMemStore);}}else{return zUfiSms_StoreNormalSmsToDb(ptDbSaveData,acDbMemStore
 ,iSmsId);}}T_zUfiSms_CmdStatus zUfiSms_SendOutSms(T_zUfiSms_DbStoreData*
-ptDbSaveData,int cid){int atRes=(0x1380+2242-0x1c42);if(NULL==ptDbSaveData){
-return WMS_CMD_FAILED;}if(!g_zUfiSms_IsConcatSendSuc){ptDbSaveData->tag=
+ptDbSaveData,int cid){int atRes=(0x610+195-0x6d3);if(NULL==ptDbSaveData){return 
+WMS_CMD_FAILED;}if(!g_zUfiSms_IsConcatSendSuc){ptDbSaveData->tag=
 WMS_TAG_TYPE_MO_NOT_SENT_V01;if(ZUFI_SUCC==zUfiSms_WriteSmsToDb(ptDbSaveData,
-WMS_STORAGE_TYPE_NV_V01,-(0xb8b+539-0xda5))){g_zUfiSms_MsgRefer++;ptDbSaveData->
-msg_ref=g_zUfiSms_MsgRefer;(void)zUfiSms_SetMaxReference(g_zUfiSms_MsgRefer);}}
-else{CHAR sendfailRetry[(0x7c1+7055-0x231e)]={(0xa3d+2232-0x12f5)};sc_cfg_get(
-NV_SENDFAIL_RETRY,sendfailRetry,sizeof(sendfailRetry));if((0xd8a+5779-0x241d)==
-strcmp("\x31",sendfailRetry)){g_zUfiSms_SendFailedRetry=(0xc44+735-0xf20);}atRes
-=zSms_SendCmgsReq();if(atRes!=ZSMS_RESULT_OK){zSms_RecvCmgsErr();}else{
+WMS_STORAGE_TYPE_NV_V01,-(0xe77+2743-0x192d))){g_zUfiSms_MsgRefer++;ptDbSaveData
+->msg_ref=g_zUfiSms_MsgRefer;(void)zUfiSms_SetMaxReference(g_zUfiSms_MsgRefer);}
+}else{CHAR sendfailRetry[(0xada+113-0xb19)]={(0x693+2279-0xf7a)};sc_cfg_get(
+NV_SENDFAIL_RETRY,sendfailRetry,sizeof(sendfailRetry));if((0x4ed+5942-0x1c23)==
+strcmp("\x31",sendfailRetry)){g_zUfiSms_SendFailedRetry=(0xdfc+2940-0x1975);}
+atRes=zSms_SendCmgsReq();if(atRes!=ZSMS_RESULT_OK){zSms_RecvCmgsErr();}else{
 zSms_RecvCmgsOk();}}return WMS_CMD_SUCCESS;}int zUfiSms_SendConcatSms(int cid){
-int atRes=(0x11b0+2921-0x1d19);T_zUfiSms_ClientMsg tClientMsg;
+int atRes=(0xd2f+6327-0x25e6);T_zUfiSms_ClientMsg tClientMsg;
 T_zUfiSms_DbStoreData tDbSaveData;int result=ZUFI_FAIL;if(g_zUfiSms_ConcatSms.
 current_sending>=g_zUfiSms_ConcatSms.total_msg){return ZUFI_FAIL;}memset((void*)
-&tClientMsg,(0x605+8142-0x25d3),sizeof(T_zUfiSms_ClientMsg));memset((void*)&
-tDbSaveData,(0x1f63+1955-0x2706),sizeof(tDbSaveData));zUfiSms_SetPduData(&
+&tClientMsg,(0x25f+1218-0x721),sizeof(T_zUfiSms_ClientMsg));memset((void*)&
+tDbSaveData,(0x841+219-0x91c),sizeof(tDbSaveData));zUfiSms_SetPduData(&
 tClientMsg,&tDbSaveData);if(!g_zUfiSms_IsConcatSendSuc){tDbSaveData.tag=
 WMS_TAG_TYPE_MO_NOT_SENT_V01;(void)zUfiSms_WriteSmsToDb(&tDbSaveData,
-WMS_STORAGE_TYPE_NV_V01,-(0x1cd8+2464-0x2677));g_zUfiSms_SendFailedCount++;}else
-{CHAR sendfailRetry[(0x5a0+5548-0x1b1a)]={(0x1d56+764-0x2052)};sc_cfg_get(
-NV_SENDFAIL_RETRY,sendfailRetry,sizeof(sendfailRetry));if((0x1ab+5726-0x1809)==
-strcmp("\x31",sendfailRetry)){g_zUfiSms_SendFailedRetry=(0x7e1+4175-0x182d);}
+WMS_STORAGE_TYPE_NV_V01,-(0x1ccc+218-0x1da5));g_zUfiSms_SendFailedCount++;}else{
+CHAR sendfailRetry[(0x15aa+1934-0x1d06)]={(0x14b+3031-0xd22)};sc_cfg_get(
+NV_SENDFAIL_RETRY,sendfailRetry,sizeof(sendfailRetry));if((0x719+228-0x7fd)==
+strcmp("\x31",sendfailRetry)){g_zUfiSms_SendFailedRetry=(0x1710+1378-0x1c6f);}
 atRes=zSms_SendCmgsReq();if(atRes!=ZSMS_RESULT_OK){zSms_RecvCmgsErr();}else{
 zSms_RecvCmgsOk();}}g_zUfiSms_ConcatSms.current_sending++;if(g_zUfiSms_ConcatSms
 .current_sending<g_zUfiSms_ConcatSms.total_msg){if(g_zUfiSms_ConcatSms.sms_len<
-g_zUfiSms_UnitLen*(g_zUfiSms_ConcatSms.current_sending+(0x11fa+3094-0x1e0f))){
+g_zUfiSms_UnitLen*(g_zUfiSms_ConcatSms.current_sending+(0x196+1922-0x917))){
 g_zUfiSms_UnitLen=g_zUfiSms_ConcatSms.sms_len-g_zUfiSms_UnitLen*
 g_zUfiSms_ConcatSms.current_sending;}}if(g_zUfiSms_ConcatSms.current_sending==
 g_zUfiSms_ConcatSms.total_msg&&!g_zUfiSms_IsConcatSendSuc){T_zUfiSms_StatusInfo 
-tSendStatus;memset((void*)&tSendStatus,(0x3ac+6623-0x1d8b),sizeof(
+tSendStatus;memset((void*)&tSendStatus,(0x14eb+583-0x1732),sizeof(
 T_zUfiSms_StatusInfo));tSendStatus.err_code=ZTE_SMS_CMS_NONE;tSendStatus.
 send_failed_count=g_zUfiSms_SendFailedCount;tSendStatus.delete_failed_count=
-(0x1af5+1584-0x2125);tSendStatus.cmd_status=WMS_CMD_FAILED;tSendStatus.cmd=
+(0x1082+3695-0x1ef1);tSendStatus.cmd_status=WMS_CMD_FAILED;tSendStatus.cmd=
 WMS_SMS_CMD_MSG_SEND;(void)zUfiSms_SetCmdStatus(&tSendStatus);sc_cfg_set(
 NV_SMS_SEND_RESULT,"\x66\x61\x69\x6c");sc_cfg_set(NV_SMS_DB_CHANGE,"\x31");
 return ZUFI_FAIL;}if(!g_zUfiSms_IsConcatSendSuc){zUfiSms_SendConcatSms(cid);}
-return result;}int zSvr_sendCmgs(VOID){int atRes=(0x10c5+5346-0x25a7);int i=
-(0x1135+2404-0x1a99);atRes=zSms_SendCmgsReq();if(atRes!=ZSMS_RESULT_OK){CHAR 
-sendfailRetry[(0x2053+1561-0x263a)]={(0x874+2213-0x1119)};sc_cfg_get(
-NV_SENDFAIL_RETRY,sendfailRetry,sizeof(sendfailRetry));if((0x1574+3020-0x2140)==
-strcmp("\x31",sendfailRetry)){for(i=(0x105c+3484-0x1df8);i<SMS_RETRY_COUNT;i++){
+return result;}int zSvr_sendCmgs(VOID){int atRes=(0xadb+1493-0x10b0);int i=
+(0x1238+3078-0x1e3e);atRes=zSms_SendCmgsReq();if(atRes!=ZSMS_RESULT_OK){CHAR 
+sendfailRetry[(0x6b6+1108-0xad8)]={(0xfa+1689-0x793)};sc_cfg_get(
+NV_SENDFAIL_RETRY,sendfailRetry,sizeof(sendfailRetry));if((0x14a0+3400-0x21e8)==
+strcmp("\x31",sendfailRetry)){for(i=(0x7e5+7761-0x2636);i<SMS_RETRY_COUNT;i++){
 atRes=zSms_SendCmgsReq();if(atRes==ZSMS_RESULT_OK){break;}}}}return atRes;}
 T_zUfiSms_CmdStatus zUfiSms_SendSms(VOID){T_zUfiSms_ClientMsg tClientMsg;
-T_zUfiSms_DbStoreData tDbSaveData;int res=(0x61f+1063-0xa46);if(-
-(0x11cd+4416-0x230c)==g_zUfiSms_UnitLen){printf(
+T_zUfiSms_DbStoreData tDbSaveData;int res=(0x1df+6999-0x1d36);if(-
+(0x111+6688-0x1b30)==g_zUfiSms_UnitLen){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x21\x21\x21\x7a\x55\x66\x69\x53\x6d\x73\x5f\x53\x65\x6e\x64\x53\x6d\x73\x3a\x20\x4e\x6f\x20\x63\x6f\x6e\x74\x65\x6e\x74\x21\x2e" "\n"
 );return WMS_CMD_FAILED;}while(g_zUfiSms_ConcatSms.current_sending<
-g_zUfiSms_ConcatSms.total_msg){memset((void*)&tClientMsg,(0x5ca+5358-0x1ab8),
-sizeof(T_zUfiSms_ClientMsg));memset((void*)&tDbSaveData,(0x18c4+2223-0x2173),
+g_zUfiSms_ConcatSms.total_msg){memset((void*)&tClientMsg,(0xc11+5637-0x2216),
+sizeof(T_zUfiSms_ClientMsg));memset((void*)&tDbSaveData,(0x10bd+752-0x13ad),
 sizeof(tDbSaveData));zUfiSms_SetPduData(&tClientMsg,&tDbSaveData);if(!
 g_zUfiSms_IsConcatSendSuc){tDbSaveData.tag=WMS_TAG_TYPE_MO_NOT_SENT_V01;(void)
-zUfiSms_WriteSmsToDb(&tDbSaveData,WMS_STORAGE_TYPE_NV_V01,-(0x8c5+5515-0x1e4f));
+zUfiSms_WriteSmsToDb(&tDbSaveData,WMS_STORAGE_TYPE_NV_V01,-(0xc69+3815-0x1b4f));
 g_zUfiSms_SendFailedCount++;}else{res=zSvr_sendCmgs();if(res!=ZSMS_RESULT_OK){
 zSms_RecvCmgsErr();}else{zSms_RecvCmgsOk();}}g_zUfiSms_ConcatSms.current_sending
 ++;if(g_zUfiSms_ConcatSms.current_sending<g_zUfiSms_ConcatSms.total_msg){if(
 g_zUfiSms_ConcatSms.sms_len<g_zUfiSms_UnitLen*(g_zUfiSms_ConcatSms.
-current_sending+(0x1131+2628-0x1b74))){g_zUfiSms_UnitLen=g_zUfiSms_ConcatSms.
+current_sending+(0xd97+3316-0x1a8a))){g_zUfiSms_UnitLen=g_zUfiSms_ConcatSms.
 sms_len-g_zUfiSms_UnitLen*g_zUfiSms_ConcatSms.current_sending;}}if(
 g_zUfiSms_ConcatSms.current_sending==g_zUfiSms_ConcatSms.total_msg&&!
 g_zUfiSms_IsConcatSendSuc){T_zUfiSms_StatusInfo tSendStatus;memset((void*)&
-tSendStatus,(0x368+3868-0x1284),sizeof(T_zUfiSms_StatusInfo));tSendStatus.
+tSendStatus,(0x71a+3209-0x13a3),sizeof(T_zUfiSms_StatusInfo));tSendStatus.
 err_code=ZTE_SMS_CMS_NONE;tSendStatus.send_failed_count=
-g_zUfiSms_SendFailedCount;tSendStatus.delete_failed_count=(0xd75+2504-0x173d);
+g_zUfiSms_SendFailedCount;tSendStatus.delete_failed_count=(0x1767+2409-0x20d0);
 tSendStatus.cmd_status=WMS_CMD_FAILED;tSendStatus.cmd=WMS_SMS_CMD_MSG_SEND;(void
 )zUfiSms_SetCmdStatus(&tSendStatus);sc_cfg_set(NV_SMS_SEND_RESULT,
 "\x66\x61\x69\x6c");sc_cfg_set(NV_SMS_DB_CHANGE,"\x31");}}
-#if (0x1001+2387-0x1954)	

-if(g_zUfiSms_ConcatSms.total_msg>(0xf4d+3042-0x1b2e)){printf(
+#if (0x119d+3502-0x1f4b)	

+if(g_zUfiSms_ConcatSms.total_msg>(0xb50+2406-0x14b5)){printf(
 "\x3d\x3d\x3d\x3d\x7a\x55\x66\x69\x53\x6d\x73\x5f\x53\x65\x6e\x64\x43\x6f\x6e\x63\x61\x74\x53\x6d\x73\x2e" "\n"
-);zUfiSms_SendConcatSms(cid);}else{memset((void*)&tClientMsg,
-(0x13c9+1242-0x18a3),sizeof(T_zUfiSms_ClientMsg));memset((void*)&tDbSaveData,
-(0x823+4573-0x1a00),sizeof(tDbSaveData));zUfiSms_SetPduData(&tClientMsg,&
-tDbSaveData);printf(
+);zUfiSms_SendConcatSms(cid);}else{memset((void*)&tClientMsg,(0x253+6550-0x1be9)
+,sizeof(T_zUfiSms_ClientMsg));memset((void*)&tDbSaveData,(0x950+3844-0x1854),
+sizeof(tDbSaveData));zUfiSms_SetPduData(&tClientMsg,&tDbSaveData);printf(
 "\x3d\x3d\x3d\x3d\x7a\x55\x66\x69\x53\x6d\x73\x5f\x53\x65\x6e\x64\x6e\x6f\x72\x61\x6d\x6c\x53\x6d\x73\x2e" "\n"
 );if(WMS_CMD_FAILED==zUfiSms_SendOutSms(&tDbSaveData,cid)){printf(
 "\x21\x21\x21\x21\x21\x7a\x55\x66\x69\x53\x6d\x73\x5f\x53\x65\x6e\x64\x4f\x75\x74\x53\x6d\x73\x20\x46\x61\x69\x6c\x2e" "\n"
 );g_zUfiSms_SendFailedCount++;return WMS_CMD_FAILED;}}
 #endif

 return WMS_CMD_SUCCESS;}int zUfiSms_FormatDeliverTimestamp(T_zUfiSms_Date tData,
-T_zUfiSms_TimeStamp*ptTimestamp){unsigned char tTimeZone[(0x5f3+8307-0x2661)]={
-(0xc52+186-0xd0c)};int tmp_i=(0xc40+4877-0x1f4d);memset(ptTimestamp,
-(0x1981+2514-0x2353),sizeof(T_zUfiSms_TimeStamp));if(strlen(tData.year)==
-(0x1453+2717-0x1eef)){ptTimestamp->year=zUfiSms_atohex(
-((char)(0x1a6c+2753-0x24fd)))*(0xcaa+387-0xe1d)+zUfiSms_atohex(tData.year[
-(0x586+3377-0x12b7)]);}else if(strlen(tData.year)==(0xe1c+6343-0x26e1)){
-ptTimestamp->year=zUfiSms_atohex(tData.year[(0x54f+6866-0x2021)])*
-(0x448+2072-0xc50)+zUfiSms_atohex(tData.year[(0x687+6854-0x214c)]);}else if(
-strlen(tData.year)==(0x94+7628-0x1e5c)){ptTimestamp->year=zUfiSms_atohex(tData.
-year[(0x85+3335-0xd8a)])*(0xfd+7347-0x1da0)+zUfiSms_atohex(tData.year[
-(0x2080+543-0x229c)]);}else{printf(
+T_zUfiSms_TimeStamp*ptTimestamp){unsigned char tTimeZone[(0x1b4+6198-0x19e5)]={
+(0xfc1+2460-0x195d)};int tmp_i=(0x884+2063-0x1093);memset(ptTimestamp,
+(0x857+949-0xc0c),sizeof(T_zUfiSms_TimeStamp));if(strlen(tData.year)==
+(0xe6c+1257-0x1354)){ptTimestamp->year=zUfiSms_atohex(
+((char)(0x257f+386-0x26d1)))*(0x6f4+3377-0x1415)+zUfiSms_atohex(tData.year[
+(0x1dc2+2225-0x2673)]);}else if(strlen(tData.year)==(0x2f6+1846-0xa2a)){
+ptTimestamp->year=zUfiSms_atohex(tData.year[(0xc93+3682-0x1af5)])*
+(0x362+4959-0x16b1)+zUfiSms_atohex(tData.year[(0x426+2262-0xcfb)]);}else if(
+strlen(tData.year)==(0xcad+4665-0x1ee2)){ptTimestamp->year=zUfiSms_atohex(tData.
+year[(0x45b+5661-0x1a76)])*(0xb40+4187-0x1b8b)+zUfiSms_atohex(tData.year[
+(0x8b8+2768-0x1385)]);}else{printf(
 "\x75\x6e\x6b\x6e\x6f\x77\x6e\x20\x79\x65\x61\x72\x2e");return ZUFI_FAIL;}if(
-strlen(tData.month)==(0xf27+1285-0x142b)){ptTimestamp->month=zUfiSms_atohex(
-((char)(0x2d6+1199-0x755)))*(0x3af+6472-0x1ce7)+zUfiSms_atohex(tData.month[
-(0x425+1607-0xa6c)]);}else if(strlen(tData.month)==(0x5ba+840-0x900)){
-ptTimestamp->month=zUfiSms_atohex(tData.month[(0x218c+1401-0x2705)])*
-(0x2133+446-0x22e1)+zUfiSms_atohex(tData.month[(0x1e2+4810-0x14ab)]);}else{
+strlen(tData.month)==(0x22bb+981-0x268f)){ptTimestamp->month=zUfiSms_atohex(
+((char)(0x1c39+2665-0x2672)))*(0xf16+1289-0x140f)+zUfiSms_atohex(tData.month[
+(0x1a1+493-0x38e)]);}else if(strlen(tData.month)==(0x1a3a+1862-0x217e)){
+ptTimestamp->month=zUfiSms_atohex(tData.month[(0x2387+239-0x2476)])*
+(0x2028+400-0x21a8)+zUfiSms_atohex(tData.month[(0xbc4+3469-0x1950)]);}else{
 printf("\x75\x6e\x6b\x6e\x6f\x77\x6e\x20\x64\x61\x79\x2e");}if(strlen(tData.day)
-==(0x1737+706-0x19f8)){ptTimestamp->day=zUfiSms_atohex(
-((char)(0x245+1687-0x8ac)))*(0xb09+2940-0x1675)+zUfiSms_atohex(tData.day[
-(0x18b9+212-0x198d)]);}else if(strlen(tData.day)==(0x5d7+7487-0x2314)){
-ptTimestamp->day=zUfiSms_atohex(tData.day[(0xf82+3604-0x1d96)])*
-(0x7b5+1748-0xe79)+zUfiSms_atohex(tData.day[(0x1c1d+922-0x1fb6)]);}else{printf(
+==(0x3fa+8351-0x2498)){ptTimestamp->day=zUfiSms_atohex(((char)(0xe69+153-0xed2))
+)*(0x7b0+5371-0x1c9b)+zUfiSms_atohex(tData.day[(0x561+6673-0x1f72)]);}else if(
+strlen(tData.day)==(0x818+3875-0x1739)){ptTimestamp->day=zUfiSms_atohex(tData.
+day[(0xc0+4411-0x11fb)])*(0x813+1323-0xd2e)+zUfiSms_atohex(tData.day[
+(0x733+2509-0x10ff)]);}else{printf(
 "\x75\x6e\x6b\x6e\x6f\x77\x6e\x20\x64\x61\x79\x2e");}if(strlen(tData.hour)==
-(0x1731+1304-0x1c48)){ptTimestamp->hour=zUfiSms_atohex(
-((char)(0x935+6727-0x234c)))*(0x1ed7+1820-0x25e3)+zUfiSms_atohex(tData.hour[
-(0x102d+1210-0x14e7)]);}else if(strlen(tData.hour)==(0x1dd6+665-0x206d)){
-ptTimestamp->hour=zUfiSms_atohex(tData.hour[(0x646+7557-0x23cb)])*
-(0x1535+3739-0x23c0)+zUfiSms_atohex(tData.hour[(0x35c+2599-0xd82)]);}else{printf
-("\x75\x6e\x6b\x6e\x6f\x77\x6e\x20\x68\x6f\x75\x72\x2e");}if(strlen(tData.min)==
-(0x811+901-0xb95)){ptTimestamp->minute=zUfiSms_atohex(
-((char)(0x1f4f+1078-0x2355)))*(0x594+3003-0x113f)+zUfiSms_atohex(tData.min[
-(0x5e6+7137-0x21c7)]);}else if(strlen(tData.min)==(0x1d70+442-0x1f28)){
-ptTimestamp->minute=zUfiSms_atohex(tData.min[(0xaf3+876-0xe5f)])*
-(0x15a7+2733-0x2044)+zUfiSms_atohex(tData.min[(0x810+4513-0x19b0)]);}else{printf
-("\x75\x6e\x6b\x6e\x6f\x77\x6e\x20\x6d\x69\x6e\x75\x74\x65\x2e");}if(strlen(
-tData.sec)==(0x1803+1620-0x1e56)){ptTimestamp->second=zUfiSms_atohex(
-((char)(0x14df+3241-0x2158)))*(0x1ed6+1202-0x2378)+zUfiSms_atohex(tData.sec[
-(0x89c+3056-0x148c)]);}else if(strlen(tData.sec)==(0x604+774-0x908)){ptTimestamp
-->second=zUfiSms_atohex(tData.sec[(0xc3f+5525-0x21d4)])*(0x2d9+9157-0x268e)+
-zUfiSms_atohex(tData.sec[(0x10e9+767-0x13e7)]);}else{printf(
+(0x583+8345-0x261b)){ptTimestamp->hour=zUfiSms_atohex(
+((char)(0x1048+361-0x1181)))*(0x1498+357-0x15ed)+zUfiSms_atohex(tData.hour[
+(0x105c+678-0x1302)]);}else if(strlen(tData.hour)==(0x13f5+1707-0x1a9e)){
+ptTimestamp->hour=zUfiSms_atohex(tData.hour[(0xef2+3196-0x1b6e)])*
+(0x1244+4608-0x2434)+zUfiSms_atohex(tData.hour[(0xcc8+2903-0x181e)]);}else{
+printf("\x75\x6e\x6b\x6e\x6f\x77\x6e\x20\x68\x6f\x75\x72\x2e");}if(strlen(tData.
+min)==(0x213f+190-0x21fc)){ptTimestamp->minute=zUfiSms_atohex(
+((char)(0x64c+5008-0x19ac)))*(0xc92+3216-0x1912)+zUfiSms_atohex(tData.min[
+(0x108+7927-0x1fff)]);}else if(strlen(tData.min)==(0x782+8004-0x26c4)){
+ptTimestamp->minute=zUfiSms_atohex(tData.min[(0x1da2+86-0x1df8)])*
+(0x9c7+247-0xaae)+zUfiSms_atohex(tData.min[(0x47f+7192-0x2096)]);}else{printf(
+"\x75\x6e\x6b\x6e\x6f\x77\x6e\x20\x6d\x69\x6e\x75\x74\x65\x2e");}if(strlen(tData
+.sec)==(0x1225+2456-0x1bbc)){ptTimestamp->second=zUfiSms_atohex(
+((char)(0x256+1257-0x70f)))*(0x893+5387-0x1d8e)+zUfiSms_atohex(tData.sec[
+(0x96c+5068-0x1d38)]);}else if(strlen(tData.sec)==(0x2a4+133-0x327)){ptTimestamp
+->second=zUfiSms_atohex(tData.sec[(0x181a+3389-0x2557)])*(0x1637+970-0x19f1)+
+zUfiSms_atohex(tData.sec[(0x92d+5316-0x1df0)]);}else{printf(
 "\x75\x6e\x6b\x6e\x6f\x77\x6e\x20\x73\x65\x63\x6f\x6e\x64\x2e");}tmp_i=atoi(
-tData.timezone);if(tmp_i<INT_MIN+(0x15+5496-0x158c)||tmp_i>INT_MAX-
-(0xd40+6240-0x259f)){printf(
+tData.timezone);if(tmp_i<INT_MIN+(0xeca+3824-0x1db9)||tmp_i>INT_MAX-
+(0x966+515-0xb68)){printf(
 "\x75\x6e\x6b\x6e\x6f\x77\x6e\x20\x74\x44\x61\x74\x61\x20\x74\x69\x6d\x65\x7a\x6f\x6e\x65\x3a\x25\x64\x2e" "\n"
-,tmp_i);return ZUFI_FAIL;}memset(tTimeZone,(0xeaa+5471-0x2409),sizeof(tTimeZone)
-);snprintf(tTimeZone,sizeof(tTimeZone),"\x25\x64",tmp_i*(0x11+4981-0x1382));if(
-tData.timezone[(0x1a0+4731-0x141b)]==((char)(0x927+2771-0x13cd))){if(strlen(
-tTimeZone)==(0x2c5+8968-0x25cb)){ptTimestamp->timezone=zUfiSms_atohex(
-((char)(0x1577+764-0x1843)))*(0x1f4+2761-0xcad)+zUfiSms_atohex(tTimeZone[
-(0x6cb+6374-0x1fb0)]);}else if(strlen(tTimeZone)==(0xec2+5796-0x2563)){
-ptTimestamp->timezone=zUfiSms_atohex(tTimeZone[(0x7d5+3338-0x14de)])*
-(0x777+4345-0x1866)+zUfiSms_atohex(tTimeZone[(0x2+8491-0x212b)]);}else{printf(
-"\x75\x6e\x6b\x6e\x6f\x77\x6e\x20\x2d\x74\x69\x6d\x65\x7a\x6f\x6e\x65\x2e");}
-ptTimestamp->timezone=(0x1c6+2613-0xbfb)-ptTimestamp->timezone;}else{if(strlen(
-tTimeZone)==(0xdaa+2234-0x1663)){ptTimestamp->timezone=zUfiSms_atohex(
-((char)(0x319+6269-0x1b66)))*(0xc5+3061-0xcaa)+zUfiSms_atohex(tTimeZone[
-(0xd84+989-0x1161)]);}else if(strlen(tTimeZone)==(0x5e8+5330-0x1ab8)){
-ptTimestamp->timezone=zUfiSms_atohex(tTimeZone[(0x636+807-0x95d)])*
-(0x3a7+7741-0x21da)+zUfiSms_atohex(tTimeZone[(0x24ba+455-0x2680)]);}else{printf(
+,tmp_i);return ZUFI_FAIL;}memset(tTimeZone,(0x308+3750-0x11ae),sizeof(tTimeZone)
+);snprintf(tTimeZone,sizeof(tTimeZone),"\x25\x64",tmp_i*(0x9ac+3566-0x1796));if(
+tData.timezone[(0x318+5742-0x1986)]==((char)(0x43c+866-0x771))){if(strlen(
+tTimeZone)==(0xba4+836-0xee6)){ptTimestamp->timezone=zUfiSms_atohex(
+((char)(0xb35+5164-0x1f31)))*(0x128a+239-0x1369)+zUfiSms_atohex(tTimeZone[
+(0x1beb+1846-0x2320)]);}else if(strlen(tTimeZone)==(0x339+3733-0x11cb)){
+ptTimestamp->timezone=zUfiSms_atohex(tTimeZone[(0x259+6825-0x1d01)])*
+(0x1725+1194-0x1bc5)+zUfiSms_atohex(tTimeZone[(0xcfc+3714-0x1b7c)]);}else{printf
+("\x75\x6e\x6b\x6e\x6f\x77\x6e\x20\x2d\x74\x69\x6d\x65\x7a\x6f\x6e\x65\x2e");}
+ptTimestamp->timezone=(0x1f28+1324-0x2454)-ptTimestamp->timezone;}else{if(strlen
+(tTimeZone)==(0x717+3198-0x1394)){ptTimestamp->timezone=zUfiSms_atohex(
+((char)(0xc20+4443-0x1d4b)))*(0x16cd+163-0x1760)+zUfiSms_atohex(tTimeZone[
+(0x1cd6+639-0x1f55)]);}else if(strlen(tTimeZone)==(0x982+4804-0x1c44)){
+ptTimestamp->timezone=zUfiSms_atohex(tTimeZone[(0x35f+6151-0x1b66)])*
+(0x19bc+1738-0x207c)+zUfiSms_atohex(tTimeZone[(0x1382+3065-0x1f7a)]);}else{
+printf(
 "\x75\x6e\x6b\x6e\x6f\x77\x6e\x20\x2b\x74\x69\x6d\x65\x7a\x6f\x6e\x65\x2e");}}
 return ZUFI_SUCC;}void zUfiSms_FillDeliver(T_zUfiSms_DeliverPdu*deliver,
 T_zUfiSms_ConcatInfo*concat_sms,T_zUfiSms_DbStoreData*ptDbSaveData){static 
-UINT16 msg_ref=(0x192a+2352-0x225a);deliver->user_data_header_present=TRUE;if(
-(0x258+9389-0x2705)==concat_sms->current_sending){g_zUfiSms_ConcatSmsReference++
+UINT16 msg_ref=(0x7c7+3167-0x1426);deliver->user_data_header_present=TRUE;if(
+(0x266+3705-0x10df)==concat_sms->current_sending){g_zUfiSms_ConcatSmsReference++
 ;(void)zUfiSms_SetConcatMaxRefer(g_zUfiSms_ConcatSmsReference);}deliver->
-user_data_header_present=TRUE;deliver->user_data.num_headers=(0xd59+2782-0x1836)
-;deliver->user_data.headers[(0xce5+4147-0x1d18)].header_id=WMS_UDH_CONCAT_8;
-deliver->user_data.headers[(0x8b3+5104-0x1ca3)].u.concat_8.msg_ref=msg_ref;
-deliver->user_data.headers[(0x1796+1476-0x1d5a)].u.concat_8.total_sm=concat_sms
-->total_msg;deliver->user_data.headers[(0x1009+2685-0x1a86)].u.concat_8.seq_num=
-concat_sms->current_sending+(0xb5f+968-0xf26);ptDbSaveData->concat_sms=
-(0x1a7a+2611-0x24ac);ptDbSaveData->concat_info[(0xfb5+1756-0x1691)]=msg_ref;}
-void zUfiSms_FillDeliverPdu(T_zUfiSms_DeliverPdu*ptDeliver,T_zUfiSms_ConcatInfo*
+user_data_header_present=TRUE;deliver->user_data.num_headers=(0xc54+2649-0x16ac)
+;deliver->user_data.headers[(0x59f+4692-0x17f3)].header_id=WMS_UDH_CONCAT_8;
+deliver->user_data.headers[(0x572+8604-0x270e)].u.concat_8.msg_ref=msg_ref;
+deliver->user_data.headers[(0x180b+2992-0x23bb)].u.concat_8.total_sm=concat_sms
+->total_msg;deliver->user_data.headers[(0x2188+637-0x2405)].u.concat_8.seq_num=
+concat_sms->current_sending+(0x8c4+5669-0x1ee8);ptDbSaveData->concat_sms=
+(0x412+410-0x5ab);ptDbSaveData->concat_info[(0x3c9+8198-0x23cf)]=msg_ref;}void 
+zUfiSms_FillDeliverPdu(T_zUfiSms_DeliverPdu*ptDeliver,T_zUfiSms_ConcatInfo*
 concat_sms,T_zUfiSms_GroupInfo*group_sms,int iSmsLen,T_zUfiSms_DbStoreData*
 ptDbSaveData){if(NULL==concat_sms||NULL==group_sms){return;}ptDeliver->more=
 FALSE;ptDeliver->reply_path_present=FALSE;ptDeliver->status_report_enabled=
@@ -752,22 +753,23 @@
 dcs.msg_class=WMS_MESSAGE_CLASS_NONE;ptDeliver->dcs.is_compressed=FALSE;if(
 g_zUfiSms_Dcs==DCS_ASC){ptDeliver->dcs.alphabet=WMS_GW_ALPHABET_7_BIT_DEFAULT;}
 else{ptDeliver->dcs.alphabet=WMS_GW_ALPHABET_UCS2;}if(concat_sms->total_msg>
-(0xb88+2849-0x16a8)){zUfiSms_FillDeliver(ptDeliver,concat_sms,ptDbSaveData);
-ptDbSaveData->concat_sms=(0x1c33+907-0x1fbd);ptDbSaveData->concat_info[
-(0xe01+811-0x112a)]=concat_sms->current_sending+(0x397+1968-0xb46);ptDbSaveData
-->concat_info[(0xddb+1525-0x13cf)]=concat_sms->total_msg;ptDbSaveData->
-concat_info[(0x54+23-0x6b)]=ptDeliver->user_data.headers[(0x1854+516-0x1a58)].u.
-concat_8.msg_ref;}else{ptDeliver->user_data_header_present=FALSE;ptDeliver->
-user_data.num_headers=(0x1925+6-0x192b);}ptDeliver->user_data.sm_len=iSmsLen;
-memcpy(ptDeliver->user_data.sm_data,concat_sms->msg_contents[concat_sms->
-current_sending],iSmsLen);if(group_sms->receivers[group_sms->current_receiver][
-(0x14f1+3886-0x241f)]==((char)(0x81+579-0x299))){(void)zUfiSms_CharToInt(
-group_sms->receivers[group_sms->current_receiver]+(0xc19+2874-0x1752),strlen(
-group_sms->receivers[group_sms->current_receiver])-(0x553+6455-0x1e89),ptDeliver
-->address.digits);ptDeliver->address.number_type=WMS_NUMBER_INTERNATIONAL;
-ptDeliver->address.number_of_digits=(UINT8)strlen(group_sms->receivers[group_sms
-->current_receiver])-(0xda6+3124-0x19d9);}else{(void)zUfiSms_CharToInt(group_sms
-->receivers[group_sms->current_receiver],strlen(group_sms->receivers[group_sms->
+(0x8c4+3311-0x15b2)){zUfiSms_FillDeliver(ptDeliver,concat_sms,ptDbSaveData);
+ptDbSaveData->concat_sms=(0x524+7082-0x20cd);ptDbSaveData->concat_info[
+(0x467+4793-0x171e)]=concat_sms->current_sending+(0x445+3012-0x1008);
+ptDbSaveData->concat_info[(0x110d+3466-0x1e96)]=concat_sms->total_msg;
+ptDbSaveData->concat_info[(0xdf0+954-0x11aa)]=ptDeliver->user_data.headers[
+(0x6ca+6217-0x1f13)].u.concat_8.msg_ref;}else{ptDeliver->
+user_data_header_present=FALSE;ptDeliver->user_data.num_headers=
+(0xb30+3863-0x1a47);}ptDeliver->user_data.sm_len=iSmsLen;memcpy(ptDeliver->
+user_data.sm_data,concat_sms->msg_contents[concat_sms->current_sending],iSmsLen)
+;if(group_sms->receivers[group_sms->current_receiver][(0x11e7+3889-0x2118)]==
+((char)(0x11e3+48-0x11e8))){(void)zUfiSms_CharToInt(group_sms->receivers[
+group_sms->current_receiver]+(0x987+3694-0x17f4),strlen(group_sms->receivers[
+group_sms->current_receiver])-(0x7d3+1759-0xeb1),ptDeliver->address.digits);
+ptDeliver->address.number_type=WMS_NUMBER_INTERNATIONAL;ptDeliver->address.
+number_of_digits=(UINT8)strlen(group_sms->receivers[group_sms->current_receiver]
+)-(0xd38+2304-0x1637);}else{(void)zUfiSms_CharToInt(group_sms->receivers[
+group_sms->current_receiver],strlen(group_sms->receivers[group_sms->
 current_receiver]),ptDeliver->address.digits);ptDeliver->address.number_type=
 WMS_NUMBER_UNKNOWN;ptDeliver->address.number_of_digits=(UINT8)strlen(group_sms->
 receivers[group_sms->current_receiver]);}ptDeliver->address.digit_mode=
@@ -779,7 +781,7 @@
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x53\x61\x76\x65\x43\x6f\x6e\x63\x61\x74\x53\x6d\x73\x20\x6d\x65\x6d\x5f\x73\x74\x6f\x72\x65\x3d\x25\x64\x28\x4e\x56\x3d\x3d\x30\x31\x29" "\n"
 ,ptSaveSms->mem_store);if(ptSaveSms->mem_store==WMS_STORAGE_TYPE_NV_V01){if(
 ZUFI_FAIL==zUfiSms_WriteSmsToDb(ptDbSaveData,WMS_STORAGE_TYPE_NV_V01,-
-(0x744+5273-0x1bdc))){at_print(LOG_ERR,
+(0x34d+1255-0x833))){at_print(LOG_ERR,
 "\x77\x72\x69\x74\x65\x20\x73\x6d\x73\x20\x74\x6f\x20\x6e\x76\x20\x66\x61\x69\x6c\x65\x64\x2e"
 );return WMS_CMD_FAILED;}}else{return WMS_CMD_FAILED;}g_zUfiSms_MsgRefer++;
 ptDbSaveData->msg_ref=g_zUfiSms_MsgRefer;(void)zUfiSms_SetMaxReference(
@@ -795,19 +797,19 @@
 ,T_zUfiSms_GroupInfo*ptGroupSms,int iSmsLength){T_zUfiSms_ClientTsData 
 tClientTsData;T_zUfiSms_ClientMsg tClientMsg;T_zUfiSms_DbStoreData tDbSaveData;
 T_zUfiSms_CmdStatus result=WMS_CMD_SUCCESS;int current_sending=
-(0xa02+7147-0x25ed);if(NULL==ptSaveSms||NULL==ptConcatSms||NULL==ptGroupSms||(-
-(0x1d35+849-0x2085)==iSmsLength)){return WMS_CMD_FAILED;}for(ptConcatSms->
-current_sending=(0x466+3778-0x1328);ptConcatSms->current_sending<ptConcatSms->
+(0x1cd1+1780-0x23c5);if(NULL==ptSaveSms||NULL==ptConcatSms||NULL==ptGroupSms||(-
+(0xa95+2854-0x15ba)==iSmsLength)){return WMS_CMD_FAILED;}for(ptConcatSms->
+current_sending=(0x148b+2197-0x1d20);ptConcatSms->current_sending<ptConcatSms->
 total_msg;ptConcatSms->current_sending++){memset((void*)&tClientMsg,
-(0x78f+6137-0x1f88),sizeof(T_zUfiSms_ClientMsg));memset((void*)&tClientTsData,
-(0x1f0+8688-0x23e0),sizeof(T_zUfiSms_ClientTsData));memset((void*)&tDbSaveData,
-(0x87+9380-0x252b),sizeof(T_zUfiSms_DbStoreData));tClientMsg.msg_hdr.mem_store=(
-ptSaveSms->mem_store==WMS_STORAGE_TYPE_UIM_V01)?WMS_STORAGE_TYPE_UIM_V01:
+(0x954+701-0xc11),sizeof(T_zUfiSms_ClientMsg));memset((void*)&tClientTsData,
+(0x1755+595-0x19a8),sizeof(T_zUfiSms_ClientTsData));memset((void*)&tDbSaveData,
+(0x13ad+3474-0x213f),sizeof(T_zUfiSms_DbStoreData));tClientMsg.msg_hdr.mem_store
+=(ptSaveSms->mem_store==WMS_STORAGE_TYPE_UIM_V01)?WMS_STORAGE_TYPE_UIM_V01:
 WMS_STORAGE_TYPE_NV_V01;tClientMsg.msg_hdr.tag=(T_zUfiSms_SmsTag)ptSaveSms->tags
 ;tClientMsg.msg_hdr.message_mode=WMS_MESSAGE_MODE_GW;tClientMsg.u.gw_message.
 is_broadcast=FALSE;tClientTsData.format=WMS_FORMAT_GW_PP;switch(ptSaveSms->tags)
 {case WMS_TAG_TYPE_MO_SENT_V01:case WMS_TAG_TYPE_MO_NOT_SENT_V01:case
-(0x528+5023-0x18c3):{tClientTsData.u.gw_pp.tpdu_type=WMS_TPDU_SUBMIT;(void)
+(0x8f2+2983-0x1495):{tClientTsData.u.gw_pp.tpdu_type=WMS_TPDU_SUBMIT;(void)
 zUfiSms_FillSubmitTpdu(ptConcatSms,ptGroupSms,iSmsLength,&tClientTsData.u.gw_pp.
 u.submit,&tDbSaveData);break;}case WMS_TAG_TYPE_MT_READ_V01:case 
 WMS_TAG_TYPE_MT_NOT_READ_V01:{tClientTsData.u.gw_pp.tpdu_type=WMS_TPDU_DELIVER;(
@@ -819,42 +821,42 @@
 zUfiSms_FillSca(&tClientMsg);zUfiSms_FillDbSaveData(&tClientMsg,&tClientTsData,
 ptConcatSms,ptGroupSms,iSmsLength,&tDbSaveData);strncpy(tDbSaveData.
 draft_group_id,ptSaveSms->draft_group_id,sizeof(tDbSaveData.draft_group_id)-
-(0x1249+3661-0x2095));if(TRUE==g_zUfiSms_MemFullFlag[ZTE_WMS_MEMORY_NV]){result=
+(0xd2b+494-0xf18));if(TRUE==g_zUfiSms_MemFullFlag[ZTE_WMS_MEMORY_NV]){result=
 WMS_CMD_FAILED;printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x53\x61\x76\x65\x53\x6d\x73\x54\x6f\x44\x62\x20\x4e\x56\x20\x6d\x65\x6d\x6f\x72\x79\x20\x69\x73\x20\x66\x75\x6c\x6c\x2c\x73\x61\x76\x65\x20\x65\x72\x72\x6f\x72" "\n"
-);}else{if(tDbSaveData.concat_sms==(0x15f2+1776-0x1ce1)){result=
+);}else{if(tDbSaveData.concat_sms==(0x305+654-0x592)){result=
 zUfiSms_SaveConcatSms(ptSaveSms,ptConcatSms,ptGroupSms,&tDbSaveData,iSmsLength);
-current_sending=ptConcatSms->current_sending+(0x48f+1638-0xaf4);if(ptConcatSms->
-sms_len<iSmsLength*(current_sending+(0x5cf+6774-0x2044))){iSmsLength=ptConcatSms
-->sms_len-iSmsLength*current_sending;}}else{result=zUfiSms_SaveNormalSms(
-ptSaveSms,&tDbSaveData);}}}return result;}int zUfiSms_DeleteSmsInSim(){char 
-str_index[(0x3f0+9061-0x26d5)]={(0x45+4521-0x11ee)};int index=
-(0x411+3242-0x10bb);int is_cc=(0xf68+343-0x10bf);int iSmsId=(0x1f7+7170-0x1df9);
-T_zUfiSms_ModifyTag tDeleteInfo={(0x498+5241-0x1911)};char StrValue[
-(0x1a13+2059-0x2214)]={(0xf29+864-0x1289)};memset(&tDeleteInfo,
-(0x1759+3384-0x2491),sizeof(T_zUfiSms_ModifyTag));iSmsId=g_zUfiSms_DelMsg.sim_id
-[g_zUfiSms_DelMsg.sim_index];if(-(0x119a+3636-0x1fcd)==(is_cc=
-zUfiSms_IsConcatSms(iSmsId))){printf(
+current_sending=ptConcatSms->current_sending+(0x405+3386-0x113e);if(ptConcatSms
+->sms_len<iSmsLength*(current_sending+(0x1a1+1953-0x941))){iSmsLength=
+ptConcatSms->sms_len-iSmsLength*current_sending;}}else{result=
+zUfiSms_SaveNormalSms(ptSaveSms,&tDbSaveData);}}}return result;}int 
+zUfiSms_DeleteSmsInSim(){char str_index[(0x86+8881-0x22b7)]={(0x890+4513-0x1a31)
+};int index=(0x19fa+2151-0x2261);int is_cc=(0x629+28-0x645);int iSmsId=
+(0x1869+3344-0x2579);T_zUfiSms_ModifyTag tDeleteInfo={(0x2114+903-0x249b)};char 
+StrValue[(0x16c3+3788-0x2585)]={(0x14f2+4473-0x266b)};memset(&tDeleteInfo,
+(0x1989+1580-0x1fb5),sizeof(T_zUfiSms_ModifyTag));iSmsId=g_zUfiSms_DelMsg.sim_id
+[g_zUfiSms_DelMsg.sim_index];if(-(0x46c+32-0x48b)==(is_cc=zUfiSms_IsConcatSms(
+iSmsId))){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x44\x65\x6c\x65\x74\x65\x53\x6d\x73\x49\x6e\x53\x69\x6d\x20\x63\x68\x65\x63\x6b\x20\x63\x6f\x6e\x63\x61\x74\x20\x66\x61\x69\x6c\x65\x64\x2e" "\n"
 );return ZUFI_FAIL;}printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x44\x65\x6c\x65\x74\x65\x53\x6d\x73\x49\x6e\x53\x69\x6d\x20\x69\x73\x5f\x63\x63\x3a\x25\x64\x2c\x20\x69\x64\x3d\x25\x64" "\n"
-,is_cc,iSmsId);if((0xd56+45-0xd82)==is_cc){if(ZUFI_FAIL==zUfiSms_GetSmsIndex(
+,is_cc,iSmsId);if((0x6d8+4244-0x176b)==is_cc){if(ZUFI_FAIL==zUfiSms_GetSmsIndex(
 iSmsId,&tDeleteInfo,is_cc)){return ZUFI_FAIL;}g_zUfiSms_DelMsg.sim_index++;
 g_zUfiSms_DelMsg.sim_index_count--;while(tDeleteInfo.num_of_indices>
-(0x133+4082-0x1125)){index=tDeleteInfo.indices[tDeleteInfo.id_index];
+(0x6a0+4583-0x1887)){index=tDeleteInfo.indices[tDeleteInfo.id_index];
 g_deleteIndex.index[g_deleteIndex.total]=index;g_deleteIndex.total++;tDeleteInfo
 .id_index++;tDeleteInfo.num_of_indices--;}}else{memset(str_index,
-(0x1876+2535-0x225d),sizeof(str_index));if(ZUFI_FAIL==zUfiSms_GetStorePosById(
+(0x709+4613-0x190e),sizeof(str_index));if(ZUFI_FAIL==zUfiSms_GetStorePosById(
 "\x69\x6e\x64",str_index,sizeof(str_index),iSmsId)){at_print(LOG_ERR,
 "\x67\x65\x74\x20\x69\x6e\x64\x65\x78\x20\x66\x72\x6f\x6d\x20\x64\x62\x20\x66\x61\x69\x6c\x64\x2e"
 );return ZUFI_FAIL;}index=atoi(str_index);g_deleteIndex.index[g_deleteIndex.
 total]=index;g_deleteIndex.total++;g_zUfiSms_DelMsg.sim_index++;g_zUfiSms_DelMsg
 .sim_index_count--;}(void)zUfiSms_DeleteSmsInDb();return ZUFI_SUCC;}
-T_zUfiSms_CmdStatus zUfiSms_DeleteSimSms(VOID){int atRes=(0xaa8+5250-0x1f2a);
-char StrValue[(0xedf+1529-0x14ce)]={(0x1dc1+194-0x1e83)};zUfiSms_SetSmsLocation(
-SMS_LOCATION_SIM);memset(&g_deleteIndex,(0xcdf+1907-0x1452),sizeof(
-T_zUfiSms_DelIndexInfo));while(g_zUfiSms_DelMsg.sim_index_count>(0x6a1+88-0x6f9)
-){if(ZUFI_FAIL==zUfiSms_DeleteSmsInSim()){printf(
+T_zUfiSms_CmdStatus zUfiSms_DeleteSimSms(VOID){int atRes=(0x1f21+1960-0x26c9);
+char StrValue[(0x10a8+2067-0x18b1)]={(0x46+1011-0x439)};zUfiSms_SetSmsLocation(
+SMS_LOCATION_SIM);memset(&g_deleteIndex,(0x266+5093-0x164b),sizeof(
+T_zUfiSms_DelIndexInfo));while(g_zUfiSms_DelMsg.sim_index_count>
+(0x550+6351-0x1e1f)){if(ZUFI_FAIL==zUfiSms_DeleteSmsInSim()){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x44\x65\x6c\x65\x74\x65\x53\x69\x6d\x53\x6d\x73\x20\x64\x65\x6c\x65\x74\x65\x20\x61\x6c\x6c\x3a\x25\x64\x20\x73\x6d\x73\x20\x66\x61\x69\x6c\x65\x64" "\n"
 ,WMS_STORAGE_TYPE_UIM_V01);return WMS_CMD_FAILED;}}while(g_deleteIndex.cur_index
 <g_deleteIndex.total){atRes=zSms_SendCmgdReq(g_deleteIndex.index[g_deleteIndex.
@@ -863,70 +865,69 @@
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x44\x65\x6c\x65\x74\x65\x53\x69\x6d\x53\x6d\x73\x20\x73\x75\x63\x63\x65\x73\x73" "\n"
 );return WMS_CMD_SUCCESS;}void zUfiSms_GetReportStatus(char*pdu_tmp,int*stat){
 unsigned char tmp;unsigned char first_octet;if(pdu_tmp==NULL){return;}(void)
-String2Bytes(pdu_tmp,&tmp,(0x1a98+580-0x1cda));if(tmp==(0xba9+6921-0x26b2)){
-pdu_tmp+=(0x193+4734-0x140f);}else{tmp=(tmp+(0x10bb+3926-0x2010))*
-(0x426+8826-0x269e);pdu_tmp+=tmp;}(void)String2Bytes(pdu_tmp,&tmp,
-(0x1cf+5704-0x1815));first_octet=tmp;if(first_octet&(0x1997+2423-0x230c)){*stat=
-(0x94a+894-0xcc3);}}T_zUfiSms_TpduType zUfiSms_GetTpduType(UINT8*pData){
-T_zUfiSms_TpduType iTpduType;UINT8 mti=(0x121+728-0x3f9);mti=(T_zUfiSms_TpduType
-)(pData[(0x1972+432-0x1b22)]&(0xac5+7029-0x2637));switch(mti){case
-(0x218d+442-0x2347):iTpduType=WMS_TPDU_DELIVER;break;case(0x209+932-0x5ac):
-iTpduType=WMS_TPDU_SUBMIT;break;case(0x3f9+6519-0x1d6e):iTpduType=
+String2Bytes(pdu_tmp,&tmp,(0xa65+7009-0x25c4));if(tmp==(0x2554+80-0x25a4)){
+pdu_tmp+=(0xaa6+6069-0x2259);}else{tmp=(tmp+(0x4bf+7236-0x2102))*
+(0x4e4+5053-0x189f);pdu_tmp+=tmp;}(void)String2Bytes(pdu_tmp,&tmp,
+(0x18fc+3179-0x2565));first_octet=tmp;if(first_octet&(0x1645+66-0x1685)){*stat=
+(0x58f+314-0x6c4);}}T_zUfiSms_TpduType zUfiSms_GetTpduType(UINT8*pData){
+T_zUfiSms_TpduType iTpduType;UINT8 mti=(0x136f+2187-0x1bfa);mti=(
+T_zUfiSms_TpduType)(pData[(0x659+6408-0x1f61)]&(0x9cd+793-0xce3));switch(mti){
+case(0x869+7266-0x24cb):iTpduType=WMS_TPDU_DELIVER;break;case(0x4dd+7970-0x23fe)
+:iTpduType=WMS_TPDU_SUBMIT;break;case(0x916+5223-0x1d7b):iTpduType=
 WMS_TPDU_STATUS_REPORT;break;default:iTpduType=WMS_TPDU_MAX;break;}return 
 iTpduType;}static void zUfiSms_FormatDeliverNumber(wms_address_s_type tAddress,
-unsigned char*pNumber){UINT8 number_type=(0x55f+5266-0x19f1);memset(pNumber,
-(0x1a61+2679-0x24d8),ZTE_WMS_ADDRESS_LEN_MAX+(0x19e9+2026-0x21d2));if(tAddress.
-number_type==WMS_NUMBER_INTERNATIONAL){pNumber[(0x1576+3840-0x2476)]=
-((char)(0x2a3+6247-0x1adf));pNumber++;}if(tAddress.digit_mode!=
+unsigned char*pNumber){UINT8 number_type=(0x13+6312-0x18bb);memset(pNumber,
+(0x1d99+2318-0x26a7),ZTE_WMS_ADDRESS_LEN_MAX+(0x722+7496-0x2469));if(tAddress.
+number_type==WMS_NUMBER_INTERNATIONAL){pNumber[(0xc02+3997-0x1b9f)]=
+((char)(0x1807+3498-0x2586));pNumber++;}if(tAddress.digit_mode!=
 WMS_DIGIT_MODE_8_BIT){(void)zUfiSms_SmsiAddrToStr(tAddress,(byte*)pNumber,&
 number_type);}else{memcpy(pNumber,tAddress.digits,tAddress.number_of_digits*
-sizeof(tAddress.digits[(0x11d9+596-0x142d)]));}}byte*zUfiSms_UtilTimeStamp(
+sizeof(tAddress.digits[(0x1bc5+1465-0x217e)]));}}byte*zUfiSms_UtilTimeStamp(
 T_zUfiSms_TimeStamp zte_wms_time,byte*res_ptr,T_zUfiSms_Date*date){UINT8 tmp;if(
-NULL==date){return NULL;}*res_ptr++=((char)(0x848+4772-0x1aca));tmp=zte_wms_time
-.year;res_ptr=zUfiSms_SmsiUtilitoaFill((tmp&(0x409+3981-0x1387))+((tmp>>
-(0xc1b+1208-0x10cf))*(0x240+6526-0x1bb4)),res_ptr);zUfiSms_SprintfTime(date->
-year,sizeof(date->year),zte_wms_time.year);*res_ptr++=
-((char)(0x16c3+3043-0x2277));tmp=zte_wms_time.month;res_ptr=
-zUfiSms_SmsiUtilitoaFill((tmp&(0x1904+630-0x1b6b))+((tmp>>(0xe05+1956-0x15a5))*
-(0xacf+4224-0x1b45)),res_ptr);zUfiSms_SprintfTime(date->month,sizeof(date->month
-),zte_wms_time.month);*res_ptr++=((char)(0x15e1+131-0x1635));tmp=zte_wms_time.
-day;res_ptr=zUfiSms_SmsiUtilitoaFill((tmp&(0xe89+3233-0x1b1b))+((tmp>>
-(0x1c8c+11-0x1c93))*(0x1df+6026-0x195f)),res_ptr);zUfiSms_SprintfTime(date->day,
-sizeof(date->day),zte_wms_time.day);*res_ptr++=((char)(0x1ac+2298-0xa7a));tmp=
-zte_wms_time.hour;res_ptr=zUfiSms_SmsiUtilitoaFill((tmp&(0x1217+4432-0x2358))+((
-tmp>>(0x8ed+4122-0x1903))*(0x8f7+6192-0x211d)),res_ptr);zUfiSms_SprintfTime(date
-->hour,sizeof(date->hour),zte_wms_time.hour);*res_ptr++=
-((char)(0x1608+2189-0x1e5b));tmp=zte_wms_time.minute;res_ptr=
-zUfiSms_SmsiUtilitoaFill((tmp&(0xa0a+1111-0xe52))+((tmp>>(0x15ba+3704-0x242e))*
-(0x152f+3860-0x2439)),res_ptr);zUfiSms_SprintfTime(date->min,sizeof(date->min),
-zte_wms_time.minute);*res_ptr++=((char)(0x5f+3465-0xdae));tmp=zte_wms_time.
-second;res_ptr=zUfiSms_SmsiUtilitoaFill((tmp&(0x1680+1232-0x1b41))+((tmp>>
-(0x7e6+1651-0xe55))*(0x255+7104-0x1e0b)),res_ptr);zUfiSms_SprintfTime(date->sec,
-sizeof(date->sec),zte_wms_time.second);if(zte_wms_time.timezone<
-(0xfd0+1058-0x13f2)){*res_ptr++=((char)(0xa4a+3103-0x163c));tmp=(UINT8)(
-zte_wms_time.timezone*(-(0x84+7661-0x1e70)));snprintf(date->timezone,sizeof(date
-->timezone),"\x2d\x25\x64",-(0x69b+6601-0x2063)*zte_wms_time.timezone);}else{*
-res_ptr++=((char)(0xfc8+5434-0x24d7));tmp=(UINT8)zte_wms_time.timezone;snprintf(
-date->timezone,sizeof(date->timezone),"\x2b\x25\x64",zte_wms_time.timezone);}
-res_ptr=zUfiSms_SmsiUtilitoaFill(tmp,res_ptr);*res_ptr++=
-((char)(0xeac+3101-0x1aa7));return res_ptr;}T_zUfiSms_CmdStatus 
-zUfiSms_HandleReport(unsigned char*ptPduData){T_zUfiSms_RawTsData tRawTsData;
-T_zUfiSms_ClientTsData tClientTsData;int iReportStatus=(0xe75+5267-0x2308);
-unsigned char acDeliverNumber[ZTE_WMS_ADDRESS_LEN_MAX+(0x3d8+3272-0x109f)];
-unsigned char tTpScts[ZTE_WMS_TP_SCTS_LEN_MAX+(0x1258+2616-0x1c8f)];
-T_zUfiSms_Date tSmsDate;char acRecFlag[(0x141c+357-0x157c)]={
-(0x1449+2961-0x1fda)};int iRpCount=(0x21d4+402-0x2366);char tmp[
-(0xe6+1946-0x876)];int tmp_i=(0x186+4226-0x1208);unsigned int pos=
-(0x1599+3219-0x222c);if(NULL==ptPduData){return WMS_CMD_FAILED;}memset(
-acDeliverNumber,(0x560+6061-0x1d0d),sizeof(acDeliverNumber));memset(&tSmsDate,
-(0x7a4+318-0x8e2),sizeof(T_zUfiSms_Date));memset(tTpScts,(0x16ea+268-0x17f6),
-sizeof(tTpScts));memset(&tRawTsData,(0x12aa+3549-0x2087),sizeof(
-T_zUfiSms_RawTsData));memset(&tClientTsData,(0x114f+2079-0x196e),sizeof(
+NULL==date){return NULL;}*res_ptr++=((char)(0x135+1013-0x508));tmp=zte_wms_time.
+year;res_ptr=zUfiSms_SmsiUtilitoaFill((tmp&(0x889+6805-0x230f))+((tmp>>
+(0x88+986-0x45e))*(0x22b+1499-0x7fc)),res_ptr);zUfiSms_SprintfTime(date->year,
+sizeof(date->year),zte_wms_time.year);*res_ptr++=((char)(0x560+1849-0xc6a));tmp=
+zte_wms_time.month;res_ptr=zUfiSms_SmsiUtilitoaFill((tmp&(0x1a1d+586-0x1c58))+((
+tmp>>(0x10bd+1943-0x1850))*(0x179b+2106-0x1fcb)),res_ptr);zUfiSms_SprintfTime(
+date->month,sizeof(date->month),zte_wms_time.month);*res_ptr++=
+((char)(0x707+3479-0x146f));tmp=zte_wms_time.day;res_ptr=
+zUfiSms_SmsiUtilitoaFill((tmp&(0x1370+2377-0x1caa))+((tmp>>(0x245d+118-0x24cf))*
+(0xa84+896-0xdfa)),res_ptr);zUfiSms_SprintfTime(date->day,sizeof(date->day),
+zte_wms_time.day);*res_ptr++=((char)(0xa8d+6417-0x2372));tmp=zte_wms_time.hour;
+res_ptr=zUfiSms_SmsiUtilitoaFill((tmp&(0x131a+5099-0x26f6))+((tmp>>
+(0x15eb+3240-0x228f))*(0x2d9+6890-0x1db9)),res_ptr);zUfiSms_SprintfTime(date->
+hour,sizeof(date->hour),zte_wms_time.hour);*res_ptr++=((char)(0x918+1714-0xf90))
+;tmp=zte_wms_time.minute;res_ptr=zUfiSms_SmsiUtilitoaFill((tmp&
+(0x139+2940-0xca6))+((tmp>>(0x5f6+2707-0x1085))*(0x7f8+6313-0x2097)),res_ptr);
+zUfiSms_SprintfTime(date->min,sizeof(date->min),zte_wms_time.minute);*res_ptr++=
+((char)(0xc03+4872-0x1ed1));tmp=zte_wms_time.second;res_ptr=
+zUfiSms_SmsiUtilitoaFill((tmp&(0xd1a+6404-0x260f))+((tmp>>(0x1721+3681-0x257e))*
+(0x14b8+2541-0x1e9b)),res_ptr);zUfiSms_SprintfTime(date->sec,sizeof(date->sec),
+zte_wms_time.second);if(zte_wms_time.timezone<(0xb58+2249-0x1421)){*res_ptr++=
+((char)(0x103c+371-0x1182));tmp=(UINT8)(zte_wms_time.timezone*(-
+(0x32f+9025-0x266f)));snprintf(date->timezone,sizeof(date->timezone),
+"\x2d\x25\x64",-(0x10f5+5018-0x248e)*zte_wms_time.timezone);}else{*res_ptr++=
+((char)(0x10d1+1460-0x165a));tmp=(UINT8)zte_wms_time.timezone;snprintf(date->
+timezone,sizeof(date->timezone),"\x2b\x25\x64",zte_wms_time.timezone);}res_ptr=
+zUfiSms_SmsiUtilitoaFill(tmp,res_ptr);*res_ptr++=((char)(0x188a+167-0x190f));
+return res_ptr;}T_zUfiSms_CmdStatus zUfiSms_HandleReport(unsigned char*ptPduData
+){T_zUfiSms_RawTsData tRawTsData;T_zUfiSms_ClientTsData tClientTsData;int 
+iReportStatus=(0x1432+4378-0x254c);unsigned char acDeliverNumber[
+ZTE_WMS_ADDRESS_LEN_MAX+(0x5bd+7660-0x23a8)];unsigned char tTpScts[
+ZTE_WMS_TP_SCTS_LEN_MAX+(0xbc8+5153-0x1fe8)];T_zUfiSms_Date tSmsDate;char 
+acRecFlag[(0x1b5+6917-0x1cb5)]={(0x34f+4100-0x1353)};int iRpCount=
+(0x1652+246-0x1748);char tmp[(0x605+8454-0x2701)];int tmp_i=(0xf7c+4617-0x2185);
+unsigned int pos=(0x10ab+4900-0x23cf);if(NULL==ptPduData){return WMS_CMD_FAILED;
+}memset(acDeliverNumber,(0x6bb+3904-0x15fb),sizeof(acDeliverNumber));memset(&
+tSmsDate,(0x1057+4268-0x2103),sizeof(T_zUfiSms_Date));memset(tTpScts,
+(0x1ee5+1953-0x2686),sizeof(tTpScts));memset(&tRawTsData,(0x9d9+6654-0x23d7),
+sizeof(T_zUfiSms_RawTsData));memset(&tClientTsData,(0x17d+4280-0x1235),sizeof(
 T_zUfiSms_ClientTsData));snprintf(tmp,sizeof(tmp),"\x25\x58",ptPduData[
-(0xa80+6689-0x24a1)]);tmp_i=atoi(tmp);if(tmp_i<(0x97c+6318-0x222a)||tmp_i>
-INT_MAX-(0x1db2+1137-0x2222)){at_print(LOG_ERR,
+(0xb1a+3317-0x180f)]);tmp_i=atoi(tmp);if(tmp_i<(0x16fc+745-0x19e5)||tmp_i>
+INT_MAX-(0xf8f+4918-0x22c4)){at_print(LOG_ERR,
 "\x5b\x53\x4d\x53\x5d\x70\x74\x50\x64\x75\x44\x61\x74\x61\x20\x65\x72\x72\x3a\x25\x64" "\n"
-,tmp_i);return WMS_CMD_FAILED;}pos=tmp_i+(0x11ca+3773-0x2086);if(pos>=
+,tmp_i);return WMS_CMD_FAILED;}pos=tmp_i+(0x3e8+6453-0x1d1c);if(pos>=
 ZSMS_PDU_SIZE){return WMS_CMD_FAILED;}memcpy((void*)tRawTsData.data,(void*)(
 ptPduData+pos),sizeof(tRawTsData.data));tRawTsData.tpdu_type=zUfiSms_GetTpduType
 (ptPduData+pos);tRawTsData.format=WMS_FORMAT_GW_PP;(void)wms_ts_decode(&
@@ -935,59 +936,59 @@
 "\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x67\x77\x2f\x77\x63\x64\x6d\x61\x20\x73\x6d\x73\x20\x72\x65\x70\x6f\x72\x74\x20\x73\x74\x61\x74\x75\x73\x2e"
 );return WMS_CMD_FAILED;}switch(tClientTsData.u.gw_pp.u.status_report.tp_status)
 {case WMS_TP_STATUS_RECEIVED_OK:case WMS_TP_STATUS_UNABLE_TO_CONFIRM_DELIVERY:
-case WMS_TP_STATUS_REPLACED:{iReportStatus=(0x1a2a+773-0x1d2e);break;}case 
+case WMS_TP_STATUS_REPLACED:{iReportStatus=(0x150d+1331-0x1a3f);break;}case 
 WMS_TP_STATUS_TRYING_CONGESTION:case WMS_TP_STATUS_TRYING_SME_BUSY:case 
 WMS_TP_STATUS_TRYING_NO_RESPONSE_FROM_SME:case 
 WMS_TP_STATUS_TRYING_SERVICE_REJECTED:case 
 WMS_TP_STATUS_TRYING_QOS_NOT_AVAILABLE:case WMS_TP_STATUS_TRYING_SME_ERROR:{
-iReportStatus=(0x4c4+6426-0x1ddb);break;}default:{iReportStatus=
-(0x399+8635-0x2552);break;}}zUfiSms_FormatDeliverNumber(tClientTsData.u.gw_pp.u.
-status_report.address,acDeliverNumber);(void)zUfiSms_UtilTimeStamp(tClientTsData
-.u.gw_pp.u.status_report.timestamp,tTpScts,&tSmsDate);if(ZUFI_FAIL==
+iReportStatus=(0x660+908-0x9e9);break;}default:{iReportStatus=(0xd81+497-0xf70);
+break;}}zUfiSms_FormatDeliverNumber(tClientTsData.u.gw_pp.u.status_report.
+address,acDeliverNumber);(void)zUfiSms_UtilTimeStamp(tClientTsData.u.gw_pp.u.
+status_report.timestamp,tTpScts,&tSmsDate);if(ZUFI_FAIL==
 zUfiSms_InsertReportStatusToDb(acDeliverNumber,&tSmsDate,iReportStatus)){
 at_print(LOG_ERR,
 "\x75\x70\x64\x61\x74\x65\x20\x73\x6d\x73\x20\x72\x65\x70\x6f\x72\x74\x20\x73\x74\x61\x74\x75\x73\x20\x66\x61\x69\x6c\x65\x64\x2e"
-);return WMS_CMD_FAILED;}memset(acRecFlag,(0xd60+2392-0x16b8),sizeof(acRecFlag))
-;sc_cfg_get(ZTE_WMS_NVCONFIG_SMS_REPORT,acRecFlag,sizeof(acRecFlag));iRpCount=
-atoi(acRecFlag);if(iRpCount<(0x10bb+1942-0x1851)||iRpCount>INT_MAX-
-(0x12fb+1780-0x19ee)){at_print(LOG_ERR,
+);return WMS_CMD_FAILED;}memset(acRecFlag,(0xc2c+244-0xd20),sizeof(acRecFlag));
+sc_cfg_get(ZTE_WMS_NVCONFIG_SMS_REPORT,acRecFlag,sizeof(acRecFlag));iRpCount=
+atoi(acRecFlag);if(iRpCount<(0xc45+3209-0x18ce)||iRpCount>INT_MAX-
+(0xf42+1826-0x1663)){at_print(LOG_ERR,
 "\x5b\x53\x4d\x53\x5d\x69\x52\x70\x43\x6f\x75\x6e\x74\x20\x65\x72\x72\x3a\x25\x64" "\n"
-,iRpCount);return WMS_CMD_FAILED;}memset(acRecFlag,(0xbaa+5250-0x202c),sizeof(
+,iRpCount);return WMS_CMD_FAILED;}memset(acRecFlag,(0xa1d+4518-0x1bc3),sizeof(
 acRecFlag));snprintf(acRecFlag,sizeof(acRecFlag),"\x25\x64",iRpCount+
-(0xd74+5812-0x2427));sc_cfg_set(ZTE_WMS_NVCONFIG_SMS_REPORT,acRecFlag);return 
+(0x5dd+4720-0x184c));sc_cfg_set(ZTE_WMS_NVCONFIG_SMS_REPORT,acRecFlag);return 
 WMS_CMD_SUCCESS;}void zUfiSms_DelModemSms(int in_index){
-#if (0x432+6529-0x1db3) 
-char StrValue[(0xc0c+1555-0x1215)]={(0x7b5+6420-0x20c9)};printf(
+#if (0xd62+4109-0x1d6f) 
+char StrValue[(0xb2b+6381-0x240e)]={(0x54d+1349-0xa92)};printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x44\x65\x6c\x4d\x6f\x64\x65\x6d\x53\x6d\x73\x20\x66\x75\x6e\x20\x75\x73\x65\x64\x21\x21\x21\x21\x21\x21\x21\x21\x21\x21\x21\x21\x21\x21\x21\x21\x21\x21\x21\x21\x21\x21\x21\x21\x21" "\n"
 );snat_print(LOG_DEBUGStrValue,sizeof(StrValue),"\x25\x64",in_index);
 zSvr_InnerSendMsg(ZUFI_MODULE_ID_AT_LOCAL,ZUFI_MODULE_ID_AT_UNSOLI,
 MSG_CMD_AT_DEL_SIM_SMS,strlen(StrValue),StrValue);
 #endif

-int atRes=(0x9e7+334-0xb35);atRes=zSms_SendCmgdReq(in_index);if(atRes==
+int atRes=(0x472+271-0x581);atRes=zSms_SendCmgdReq(in_index);if(atRes==
 ZSMS_RESULT_OK){zSms_RecvCmgdOk();}else{zSms_RecvCmgdErr();}zSms_RecvCmgdFinish(
 );}VOID zUfiSms_getModifyInfo(T_zUfiSms_ModifyFlag*ptModifyBuff){int i=
-(0x25b8+211-0x268b);memset(&g_zUfiSms_modifyMsg,(0x6b6+8113-0x2667),sizeof(
-T_zUfiSms_ModifySms));for(i=(0x11+3411-0xd64);i<ptModifyBuff->total_id;i++){
+(0x439+6667-0x1e44);memset(&g_zUfiSms_modifyMsg,(0x1d9+1265-0x6ca),sizeof(
+T_zUfiSms_ModifySms));for(i=(0x102c+915-0x13bf);i<ptModifyBuff->total_id;i++){
 g_zUfiSms_modifyMsg.sim_id[g_zUfiSms_modifyMsg.sim_count]=ptModifyBuff->id[i];
 g_zUfiSms_modifyMsg.sim_count++;g_zUfiSms_modifyMsg.sim_index_count++;}}int 
-zUfiSms_GetUnreadSmsIndexInSim(){char str_index[(0x1c06+1905-0x22f7)]={
-(0x51a+1444-0xabe)};int index=(0x1510+2046-0x1d0e);int is_cc=(0xdf0+5152-0x2210)
-;int iSmsId=(0x438+8248-0x2470);T_zUfiSms_ModifyTag tModifyInfo={
-(0x2606+220-0x26e2)};char StrValue[(0x694+2011-0xe65)]={(0x178f+1846-0x1ec5)};
-memset(&tModifyInfo,(0x5d5+5245-0x1a52),sizeof(T_zUfiSms_ModifyTag));iSmsId=
+zUfiSms_GetUnreadSmsIndexInSim(){char str_index[(0x1027+568-0x11df)]={
+(0x784+1964-0xf30)};int index=(0x16db+3263-0x239a);int is_cc=(0x346+6995-0x1e99)
+;int iSmsId=(0x5f6+2211-0xe99);T_zUfiSms_ModifyTag tModifyInfo={
+(0x7d3+6510-0x2141)};char StrValue[(0x1db+2807-0xcc8)]={(0x10e9+3788-0x1fb5)};
+memset(&tModifyInfo,(0x1d66+589-0x1fb3),sizeof(T_zUfiSms_ModifyTag));iSmsId=
 g_zUfiSms_modifyMsg.sim_id[g_zUfiSms_modifyMsg.sim_index];if(-
-(0x1efa+1664-0x2579)==(is_cc=zUfiSms_IsConcatSms(iSmsId))){at_print(LOG_ERR,
+(0x104d+3931-0x1fa7)==(is_cc=zUfiSms_IsConcatSms(iSmsId))){at_print(LOG_ERR,
 "\x63\x68\x65\x63\x6b\x20\x63\x6f\x6e\x63\x61\x74\x20\x66\x61\x69\x6c\x65\x64\x2e"
 );return ZUFI_FAIL;}printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x47\x65\x74\x55\x6e\x72\x65\x61\x64\x53\x6d\x73\x49\x6e\x64\x65\x78\x49\x6e\x53\x69\x6d\x20\x69\x73\x5f\x63\x63\x3a\x25\x64"
-,is_cc);if((0x92a+6705-0x235a)==is_cc){if(ZUFI_FAIL==zUfiSms_GetSmsIndex(iSmsId,
+,is_cc);if((0x583+7610-0x233c)==is_cc){if(ZUFI_FAIL==zUfiSms_GetSmsIndex(iSmsId,
 &tModifyInfo,is_cc)){return ZUFI_FAIL;}g_zUfiSms_modifyMsg.sim_index++;
 g_zUfiSms_modifyMsg.sim_index_count--;while(tModifyInfo.num_of_indices>
-(0x15c4+539-0x17df)){index=tModifyInfo.indices[tModifyInfo.id_index];
+(0x184d+2186-0x20d7)){index=tModifyInfo.indices[tModifyInfo.id_index];
 g_modifyIndex.index[g_modifyIndex.total]=index;g_modifyIndex.total++;tModifyInfo
 .id_index++;tModifyInfo.num_of_indices--;printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x47\x65\x74\x55\x6e\x72\x65\x61\x64\x53\x6d\x73\x49\x6e\x64\x65\x78\x49\x6e\x53\x69\x6d\x20\x5b\x31\x20\x3d\x3d\x20\x69\x73\x5f\x63\x63\x5d\x20\x69\x6e\x64\x65\x78\x20\x3d\x20\x25\x64\x2c\x20\x74\x6f\x74\x61\x6c\x3d\x25\x64" "\n"
-,index,g_modifyIndex.total);}}else{memset(str_index,(0xb1+1734-0x777),sizeof(
+,index,g_modifyIndex.total);}}else{memset(str_index,(0x85c+4842-0x1b46),sizeof(
 str_index));if(ZUFI_FAIL==zUfiSms_GetStorePosById("\x69\x6e\x64",str_index,
 sizeof(str_index),iSmsId)){at_print(LOG_ERR,
 "\x67\x65\x74\x20\x69\x6e\x64\x65\x78\x20\x66\x72\x6f\x6d\x20\x64\x62\x20\x66\x61\x69\x6c\x64\x2e"
@@ -996,14 +997,14 @@
 g_zUfiSms_modifyMsg.sim_index_count--;printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x47\x65\x74\x55\x6e\x72\x65\x61\x64\x53\x6d\x73\x49\x6e\x64\x65\x78\x49\x6e\x53\x69\x6d\x20\x5b\x31\x20\x21\x3d\x20\x69\x73\x5f\x63\x63\x5d\x69\x6e\x64\x65\x78\x20\x3d\x20\x25\x64\x2c\x20\x74\x6f\x74\x61\x6c\x3d\x25\x64" "\n"
 ,index,g_modifyIndex.total);}return ZUFI_SUCC;}void zUfiSms_ModifyModemSms(
-T_zUfiSms_ModifyFlag*ptModifyBuff){int atRes=(0x1697+1022-0x1a95);char StrValue[
-(0x6c8+5814-0x1d74)]={(0x329+4493-0x14b6)};printf(
+T_zUfiSms_ModifyFlag*ptModifyBuff){int atRes=(0x18f1+2752-0x23b1);char StrValue[
+(0x1235+1038-0x1639)]={(0xae6+1431-0x107d)};printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x4d\x6f\x64\x69\x66\x79\x4d\x6f\x64\x65\x6d\x53\x6d\x73\x20\x70\x74\x4d\x6f\x64\x69\x66\x79\x42\x75\x66\x66\x2d\x3e\x74\x79\x70\x65\x20\x3d\x20\x25\x64\x21" "\n"
 ,ptModifyBuff->type);{zUfiSms_getModifyInfo(ptModifyBuff);memset(&g_modifyIndex,
-(0x102+4180-0x1156),sizeof(T_zUfiSms_ModifyIndexInfo));printf(
+(0x108a+3016-0x1c52),sizeof(T_zUfiSms_ModifyIndexInfo));printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x4d\x6f\x64\x69\x66\x79\x4d\x6f\x64\x65\x6d\x53\x6d\x73\x20\x70\x74\x4d\x6f\x64\x69\x66\x79\x42\x75\x66\x66\x2d\x3e\x74\x6f\x74\x61\x6c\x5f\x69\x64\x20\x3d\x20\x25\x64\x21" "\n"
 ,ptModifyBuff->total_id);while(g_zUfiSms_modifyMsg.sim_index_count>
-(0x4e7+3851-0x13f2)){if(ZUFI_FAIL==zUfiSms_GetUnreadSmsIndexInSim()){at_print(
+(0xe8a+2322-0x179c)){if(ZUFI_FAIL==zUfiSms_GetUnreadSmsIndexInSim()){at_print(
 LOG_ERR,
 "\x64\x65\x6c\x65\x74\x65\x20\x61\x6c\x6c\x3a\x25\x64\x20\x73\x6d\x73\x20\x66\x61\x69\x6c\x65\x64" "\n"
 ,WMS_STORAGE_TYPE_UIM_V01);return;}}while(g_modifyIndex.cur_index<g_modifyIndex.
@@ -1022,22 +1023,22 @@
 zUfiSms_DecodeSmsData(T_zUfiSms_DbStoreData*pDb_Data,int msg_index,
 zUfiSms_StoreType iStorePos,T_SmsStatus bSms_Status,wms_message_format_enum_v01 
 format,long iPdu_Len,unsigned char*pPdu_Received){T_zUfiSms_RawTsData raw_ts;
-T_zUfiSms_ClientTsData ts_data_ptr;char tmp[(0xacb+6598-0x2487)];int tmp_i=
-(0x865+6286-0x20f3);unsigned int pos=(0x8c2+3190-0x1538);int result=ZUFI_SUCC;if
-(NULL==pDb_Data){return ZUFI_FAIL;}pDb_Data->mem_store=(unsigned long)iStorePos;
+T_zUfiSms_ClientTsData ts_data_ptr;char tmp[(0x5dc+5044-0x1986)];int tmp_i=
+(0xd88+385-0xf09);unsigned int pos=(0x1487+771-0x178a);int result=ZUFI_SUCC;if(
+NULL==pDb_Data){return ZUFI_FAIL;}pDb_Data->mem_store=(unsigned long)iStorePos;
 pDb_Data->index=(unsigned short)msg_index;if(RECEIVED_UNREAD==bSms_Status){
 pDb_Data->tag=WMS_TAG_TYPE_MT_NOT_READ_V01;}else if(RECEIVED_READ==bSms_Status){
 pDb_Data->tag=WMS_TAG_TYPE_MT_READ_V01;}else if(STORED_UNSEND==bSms_Status){
 pDb_Data->tag=WMS_TAG_TYPE_MO_NOT_SENT_V01;}else{pDb_Data->tag=
 WMS_TAG_TYPE_MO_SENT_V01;}pDb_Data->mode=(unsigned short)format;memset(&raw_ts,
-(0x815+742-0xafb),sizeof(T_zUfiSms_RawTsData));memset(&ts_data_ptr,
-(0xdb3+1314-0x12d5),sizeof(wms_client_ts_data_s_type));memset(tmp,
-(0xd78+5781-0x240d),sizeof(tmp));snprintf(tmp,sizeof(tmp),"\x25\x64",
-pPdu_Received[(0x93b+2583-0x1352)]);tmp_i=atoi(tmp);if(tmp_i<(0x104+6305-0x19a5)
-||tmp_i>INT_MAX-(0x1489+2880-0x1fc8)){at_print(LOG_ERR,
+(0x213+6220-0x1a5f),sizeof(T_zUfiSms_RawTsData));memset(&ts_data_ptr,
+(0x1d3f+467-0x1f12),sizeof(wms_client_ts_data_s_type));memset(tmp,
+(0x219d+1343-0x26dc),sizeof(tmp));snprintf(tmp,sizeof(tmp),"\x25\x64",
+pPdu_Received[(0xe64+3860-0x1d78)]);tmp_i=atoi(tmp);if(tmp_i<(0xfa9+4534-0x215f)
+||tmp_i>INT_MAX-(0x186b+3197-0x24e7)){at_print(LOG_ERR,
 "\x5b\x53\x4d\x53\x5d\x70\x50\x64\x75\x5f\x52\x65\x63\x65\x69\x76\x65\x64\x20\x65\x72\x72\x3a\x25\x64" "\n"
-,tmp_i);return ZUFI_FAIL;}pos=tmp_i+(0x1e0f+64-0x1e4e);if(pos>=iPdu_Len){return 
-ZUFI_FAIL;}raw_ts.len=iPdu_Len-pos;memcpy((void*)raw_ts.data,(void*)(
+,tmp_i);return ZUFI_FAIL;}pos=tmp_i+(0x4ab+7758-0x22f8);if(pos>=iPdu_Len){return
+ ZUFI_FAIL;}raw_ts.len=iPdu_Len-pos;memcpy((void*)raw_ts.data,(void*)(
 pPdu_Received+pos),WMS_MAX_LEN);raw_ts.tpdu_type=zUfiSms_GetTpduType(
 pPdu_Received+pos);raw_ts.format=(WMS_MESSAGE_FORMAT_CDMA_V01==format)?
 WMS_FORMAT_CDMA:WMS_FORMAT_GW_PP;(void)wms_ts_decode(&raw_ts,&ts_data_ptr);
@@ -1046,63 +1047,62 @@
 pDb_Data);break;}case WMS_MESSAGE_FORMAT_GW_BC_V01:case 
 WMS_MESSAGE_FORMAT_MWI_V01:{result=ZUFI_FAIL;break;}default:{result=ZUFI_FAIL;
 break;}}return result;}T_zUfiSms_CmdStatus IsSmsLoadSuccess(void){char IsInit[
-(0x12ad+4334-0x2377)]={(0x18b2+1591-0x1ee9)};sc_cfg_get(NV_SMS_LOAD_RESULT,
-IsInit,sizeof(IsInit));if((0x11a+8145-0x20eb)==strcmp("\x6f\x6b",IsInit)){printf
-(
+(0x63f+1990-0xde1)]={(0x22ea+774-0x25f0)};sc_cfg_get(NV_SMS_LOAD_RESULT,IsInit,
+sizeof(IsInit));if((0x1b86+2655-0x25e5)==strcmp("\x6f\x6b",IsInit)){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x73\x6d\x73\x20\x4c\x6f\x61\x64\x20\x73\x75\x63\x63\x65\x73\x73\x21" "\n"
 );return WMS_CMD_SUCCESS;}else{printf(
 "\x5b\x53\x4d\x53\x5d\x20\x73\x6d\x73\x20\x4c\x6f\x61\x64\x20\x77\x72\x6f\x6e\x67\x20\x21" "\n"
 );return WMS_CMD_FAILED;}}
-#if (0xf74+2015-0x1753)

+#if (0x1a6b+2428-0x23e7)

 int zUfiSms_FormatSms(CHAR*pSmsRawContent,int contentSize,T_zUfiSms_SmsItem*
-ptSmsPara,int iCmdId){char*P1=strchr(pSmsRawContent,((char)(0x312+5784-0x197e)))
-;if(NULL==P1){return ZUFI_FAIL;}char*P2=strchr((char*)(P1+(0xb44+2894-0x1691)),
-((char)(0x7e5+1816-0xed1)));if(NULL==P2){return ZUFI_FAIL;}char*P3=strchr((char*
-)(P2+(0xa95+3451-0x180f)),((char)(0x769+5027-0x1ae0)));atBase_PreProcRes(
-pSmsRawContent,contentSize);if((0x8ac+4123-0x18c6)==iCmdId){if(P3==P2+
-(0x1227+2176-0x1aa6)){sscanf(pSmsRawContent,
+ptSmsPara,int iCmdId){char*P1=strchr(pSmsRawContent,((char)(0x1484+2265-0x1d31))
+);if(NULL==P1){return ZUFI_FAIL;}char*P2=strchr((char*)(P1+(0x1fc+7754-0x2045)),
+((char)(0x35a+5694-0x196c)));if(NULL==P2){return ZUFI_FAIL;}char*P3=strchr((char
+*)(P2+(0x1121+2227-0x19d3)),((char)(0x1922+904-0x1c7e)));atBase_PreProcRes(
+pSmsRawContent,contentSize);if((0x706+2429-0x1082)==iCmdId){if(P3==P2+
+(0x1636+661-0x18ca)){sscanf(pSmsRawContent,
 "\x25\x64\x20\x25\x64\x20\x25\x64\x20",&ptSmsPara->index,&ptSmsPara->stat,&
 ptSmsPara->length);}else{sscanf(pSmsRawContent,
 "\x25\x64\x20\x25\x64\x20\x25\x33\x32\x73\x20\x25\x64\x20",&ptSmsPara->index,&
 ptSmsPara->stat,ptSmsPara->alpha,&ptSmsPara->length);}}else if(
-(0x1bd0+1979-0x2389)==iCmdId){if(P2==P1+(0xa96+5768-0x211d)){sscanf(
+(0x2023+334-0x216f)==iCmdId){if(P2==P1+(0x20df+1285-0x25e3)){sscanf(
 pSmsRawContent,"\x25\x64\x20\x25\x64\x20",&ptSmsPara->stat,&ptSmsPara->length);}
 else{sscanf(pSmsRawContent,"\x25\x64\x20\x25\x33\x32\x73\x20\x25\x64\x20",&
 ptSmsPara->stat,ptSmsPara->alpha,&ptSmsPara->length);}}atBase_RestoreString(
 ptSmsPara->alpha);atBase_RestoreString(ptSmsPara->pdu);return ZUFI_SUCC;}
 #endif

 void zUfiSms_CmglRespProc(T_zSms_SmsInd*pSmsItem){T_zUfiSms_CmdStatus result=
-WMS_CMD_PROCESSING;T_zUfiSms_DbStoreData db_data={(0x15f2+1502-0x1bd0)};
+WMS_CMD_PROCESSING;T_zUfiSms_DbStoreData db_data={(0xb57+5614-0x2145)};
 zUfiSms_StoreType mem_store=WMS_STORAGE_TYPE_UIM_V01;unsigned char pdu_tmp[
-ZSMS_PDU_SIZE]={(0x2f0+5117-0x16ed)};int total_count=(0xe79+1470-0x1437);int 
-sim_capability=(0x155d+585-0x17a6);printf(
+ZSMS_PDU_SIZE]={(0x1b2+3389-0xeef)};int total_count=(0x18e7+2842-0x2401);int 
+sim_capability=(0x108d+3546-0x1e67);printf(
 "\x5b\x53\x4d\x53\x5d\x20\x45\x6e\x74\x65\x72\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x43\x6d\x67\x6c\x52\x65\x73\x70\x50\x72\x6f\x63\x21\x20\x69\x6e\x64\x65\x78\x3a\x25\x64\x2f\x73\x74\x61\x74\x3a\x25\x64\x2f\x6c\x65\x6e\x67\x74\x68\x3a\x25\x64\x21" "\n"
 ,pSmsItem->index,pSmsItem->stat,pSmsItem->length);printf(
 "\x5b\x53\x4d\x53\x5d\x20\x70\x64\x75\x20\x64\x61\x74\x61\x5f\x6c\x65\x6e\x3a\x25\x64\x2c\x20\x73\x74\x72\x3a\x25\x73\x21" "\n"
-,strlen(pSmsItem->pdu),pSmsItem->pdu);memset(&db_data,(0x6a3+1177-0xb3c),sizeof(
-db_data));memset(pdu_tmp,(0x1c86+2050-0x2488),sizeof(pdu_tmp));(void)
+,strlen(pSmsItem->pdu),pSmsItem->pdu);memset(&db_data,(0x10a+8005-0x204f),sizeof
+(db_data));memset(pdu_tmp,(0x1380+3934-0x22de),sizeof(pdu_tmp));(void)
 String2Bytes(pSmsItem->pdu,pdu_tmp,(int)strlen(pSmsItem->pdu));
-#if (0xfe5+4848-0x22d4)
-zUfiSms_GetReportStatus(pSmsItem->pdu,&pSmsItem->stat);if((0x4e9+3626-0x130e)==
+#if (0x1beb+1621-0x223f)
+zUfiSms_GetReportStatus(pSmsItem->pdu,&pSmsItem->stat);if((0x2083+1264-0x256e)==
 pSmsItem->stat){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x45\x6e\x74\x65\x72\x20\x70\x53\x6d\x73\x49\x74\x65\x6d\x2d\x3e\x73\x74\x61\x74\x20\x3d\x3d\x20\x35" "\n"
 );(void)zUfiSms_HandleReport(pdu_tmp);zUfiSms_DelModemSms(pSmsItem->index);
 return;}
 #endif

-#if (0x1663+2601-0x208b)
+#if (0x1f5+2980-0xd98)
 printf("\x2a\x2a\x2a\x2a\x75\x6e\x64\x65\x63\x6f\x64\x65\x3a\x25\x73" "\n",
 pdu_tmp);
 #endif

 (void)zUfiSms_DecodeSmsData(&db_data,pSmsItem->index,mem_store,(T_SmsStatus)
 pSmsItem->stat,WMS_MESSAGE_FORMAT_GW_PP_V01,pSmsItem->length,pdu_tmp);
-#if (0x121b+425-0x13c3)
+#if (0x1877+82-0x18c8)
 printf("\x2a\x2a\x2a\x2a\x64\x65\x63\x6f\x64\x65\x65\x64\x3a\x25\x73" "\n",
 db_data.sms_content);
 #endif

-(void)zUfiSms_WriteSmsToDb(&db_data,mem_store,-(0x6a8+3237-0x134c));{}
-#if (0xb8f+1613-0x11db)
+(void)zUfiSms_WriteSmsToDb(&db_data,mem_store,-(0x9ca+436-0xb7d));{}
+#if (0x1ce0+61-0x1d1c)
 if(SMS_LOCATION_SIM==g_zUfiSms_CurLocation){CHAR simCapability[
-(0xfb4+823-0x12b9)]={(0x12e3+2022-0x1ac9)};sc_cfg_get(
+(0x2b9+3816-0x116f)]={(0x924+6078-0x20e2)};sc_cfg_get(
 ZTE_WMS_NVCONFIG_SIM_CAPABILITY,simCapability,sizeof(simCapability));
 sim_capability=atoi(simCapability);(void)zUfiSms_GetTotalCount(
 ZTE_WMS_DB_SIM_TABLE,&total_count);if(total_count==sim_capability){
@@ -1112,18 +1112,18 @@
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x43\x68\x65\x63\x6b\x73\x74\x6f\x72\x65\x44\x69\x72\x20\x66\x61\x69\x6c\x65\x64\x2e" "\n"
 );return;}
 #ifdef WEBS_SECURITY

-if(access(ZTE_WMS_DB_PATH,F_OK)!=(0x1392+1791-0x1a91)){if((access(
-ZTE_WMS_TMP1_PATH,F_OK)==(0x987+3552-0x1767))&&(access(ZTE_WMS_SEC_PATH,F_OK)!=
-(0x10d7+4047-0x20a6))){if(rename(ZTE_WMS_TMP1_PATH,ZTE_WMS_SEC_PATH)!=
-(0x77a+7678-0x2578)){printf(
+if(access(ZTE_WMS_DB_PATH,F_OK)!=(0x1522+2896-0x2072)){if((access(
+ZTE_WMS_TMP1_PATH,F_OK)==(0x6a4+3487-0x1443))&&(access(ZTE_WMS_SEC_PATH,F_OK)!=
+(0xc9b+4333-0x1d88))){if(rename(ZTE_WMS_TMP1_PATH,ZTE_WMS_SEC_PATH)!=
+(0x12c3+1141-0x1738)){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x57\x4d\x53\x5f\x54\x4d\x50\x31\x5f\x50\x41\x54\x48\x20\x66\x61\x69\x6c\x65\x64\x2e" "\n"
-);}}if((access(ZTE_WMS_TMP0_PATH,F_OK)==(0xa87+901-0xe0c))&&(access(
-ZTE_WMS_SEC_PATH,F_OK)!=(0xbb4+4777-0x1e5d))){if(rename(ZTE_WMS_TMP0_PATH,
-ZTE_WMS_SEC_PATH)!=(0xbbc+5920-0x22dc)){printf(
+);}}if((access(ZTE_WMS_TMP0_PATH,F_OK)==(0x1d5+3263-0xe94))&&(access(
+ZTE_WMS_SEC_PATH,F_OK)!=(0x2b9+6637-0x1ca6))){if(rename(ZTE_WMS_TMP0_PATH,
+ZTE_WMS_SEC_PATH)!=(0x203b+523-0x2246)){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x57\x4d\x53\x5f\x54\x4d\x50\x30\x5f\x50\x41\x54\x48\x20\x66\x61\x69\x6c\x65\x64\x2e" "\n"
-);}}if(access(ZTE_WMS_SEC_PATH,F_OK)==(0x1862+3178-0x24cc)){char rnum_buf[
-(0xd8c+3772-0x1c30)]={(0xd3f+5922-0x2461)};char cmd[(0x540+3849-0x13c9)]={
-(0x9a2+5862-0x2088)};sc_cfg_get("\x72\x6e\x75\x6d\x5f\x61\x74",rnum_buf,sizeof(
+);}}if(access(ZTE_WMS_SEC_PATH,F_OK)==(0x81c+1547-0xe27)){char rnum_buf[
+(0x6d8+1902-0xe2e)]={(0xd01+858-0x105b)};char cmd[(0x1e77+1390-0x2365)]={
+(0xa47+1975-0x11fe)};sc_cfg_get("\x72\x6e\x75\x6d\x5f\x61\x74",rnum_buf,sizeof(
 rnum_buf));snprintf(cmd,sizeof(cmd),
 "\x2f\x62\x69\x6e\x2f\x6f\x70\x65\x6e\x73\x73\x6c\x20\x65\x6e\x63\x20\x2d\x64\x20\x2d\x61\x65\x73\x32\x35\x36\x20\x2d\x73\x61\x6c\x74\x20\x2d\x69\x6e\x20\x25\x73\x20\x2d\x6f\x75\x74\x20\x25\x73\x20\x2d\x70\x61\x73\x73\x20\x70\x61\x73\x73\x3a\x25\x73"
 ,ZTE_WMS_SEC_PATH,ZTE_WMS_DB_PATH,rnum_buf);zxic_system(cmd);}}
@@ -1135,48 +1135,47 @@
 zUfiSms_CheckMemoryFull(ZTE_WMS_MEMORY_NV);zUfiSms_SendSmsStatusInfo(
 MSG_SMS_DEFAULT);g_zUfiSms_MsgRefer=zUfiSms_GetSmsMaxReferInDb();
 g_zUfiSms_ConcatSmsReference=zUfiSms_GetConcatMaxReferInDb();}void 
-zUfiSms_CfgSmsNvInit(void){char tmp[(0x472+3849-0x1371)]={(0x987+6636-0x2373)};
+zUfiSms_CfgSmsNvInit(void){char tmp[(0x1073+425-0x1212)]={(0x11f5+1896-0x195d)};
 sc_cfg_set(NV_SMS_STORE,"");sc_cfg_set(NV_SMS_LOAD_RESULT,"");sc_cfg_set(
 ZTE_WMS_NVCONFIG_RECEVIED,"");sc_cfg_set(NV_SMS_CENTER_NUM,"");snprintf(tmp,
 sizeof(tmp),"\x25\x64",ZTE_WMS_DB_MSG_COUNT_MAX);sc_cfg_set(
 ZTE_WMS_NVCONFIG_NV_CAPABILITY,tmp);}VOID zUfiSms_InitCmdStatus(
 T_zUfiSms_StatusInfo*pStatusInfo,T_zUfiSms_CmdType iCmdId){memset((void*)
-pStatusInfo,(0xdbb+1584-0x13eb),sizeof(T_zUfiSms_StatusInfo));pStatusInfo->cmd=
+pStatusInfo,(0xcba+1151-0x1139),sizeof(T_zUfiSms_StatusInfo));pStatusInfo->cmd=
 iCmdId;pStatusInfo->cmd_status=WMS_CMD_PROCESSING;pStatusInfo->err_code=
-ZTE_SMS_CMS_NONE;pStatusInfo->send_failed_count=(0xe42+4994-0x21c4);pStatusInfo
-->delete_failed_count=(0x1a83+1584-0x20b3);(void)zUfiSms_SetCmdStatus(
-pStatusInfo);}void zUfiSms_CfgInit(void){char tmp[(0x12b5+4718-0x2519)]={
-(0xa33+1100-0xe7f)};sc_cfg_set(NV_SMS_STATE,"");sc_cfg_set(
-ZTE_WMS_NVCONFIG_RECEVIED,"");sc_cfg_set(NV_SMS_LOAD_RESULT,"");sc_cfg_set(
-NV_SMS_RECV_RESULT,"");snprintf(tmp,sizeof(tmp),"\x25\x64",
-ZTE_WMS_DB_MSG_COUNT_MAX);sc_cfg_set(ZTE_WMS_NVCONFIG_NV_CAPABILITY,tmp);
-sc_cfg_set(ZTE_WMS_NVCONFIG_SIM_CAPABILITY,"");sc_cfg_set(
-ZTE_WMS_NVCONFIG_SMS_REPORT,"");sc_cfg_set(NV_SMS_DB_CHANGE,"\x31");sc_cfg_set(
-NV_SMS_CENTER_NUM,"");}int zUfiSms_IsUnreadSms(T_zUfiSms_MemoryType mem_store){
-int total_count=(0xdc8+3789-0x1c95);char buf[(0x1506+1536-0x1af2)]={
-(0x1ec+6474-0x1b36)};if(ZUFI_FAIL==zUfiSms_GetTagCountInDb(mem_store,
-WMS_TAG_TYPE_MT_NOT_READ_V01,&total_count)){return FALSE;}sprintf(buf,"\x25\x64"
-,total_count);sc_cfg_set(
+ZTE_SMS_CMS_NONE;pStatusInfo->send_failed_count=(0xd34+6478-0x2682);pStatusInfo
+->delete_failed_count=(0x971+7085-0x251e);(void)zUfiSms_SetCmdStatus(pStatusInfo
+);}void zUfiSms_CfgInit(void){char tmp[(0x2a3+6853-0x1d5e)]={(0xc7d+5599-0x225c)
+};sc_cfg_set(NV_SMS_STATE,"");sc_cfg_set(ZTE_WMS_NVCONFIG_RECEVIED,"");
+sc_cfg_set(NV_SMS_LOAD_RESULT,"");sc_cfg_set(NV_SMS_RECV_RESULT,"");snprintf(tmp
+,sizeof(tmp),"\x25\x64",ZTE_WMS_DB_MSG_COUNT_MAX);sc_cfg_set(
+ZTE_WMS_NVCONFIG_NV_CAPABILITY,tmp);sc_cfg_set(ZTE_WMS_NVCONFIG_SIM_CAPABILITY,
+"");sc_cfg_set(ZTE_WMS_NVCONFIG_SMS_REPORT,"");sc_cfg_set(NV_SMS_DB_CHANGE,
+"\x31");sc_cfg_set(NV_SMS_CENTER_NUM,"");}int zUfiSms_IsUnreadSms(
+T_zUfiSms_MemoryType mem_store){int total_count=(0x832+1031-0xc39);char buf[
+(0x439+8182-0x241b)]={(0x1c78+475-0x1e53)};if(ZUFI_FAIL==zUfiSms_GetTagCountInDb
+(mem_store,WMS_TAG_TYPE_MT_NOT_READ_V01,&total_count)){return FALSE;}sprintf(buf
+,"\x25\x64",total_count);sc_cfg_set(
 "\x73\x6d\x73\x5f\x75\x6e\x72\x65\x61\x64\x5f\x63\x6f\x75\x6e\x74",buf);if(
-(0x64+2457-0x9fd)==total_count){return FALSE;}else{return TRUE;}}VOID 
+(0x1335+284-0x1451)==total_count){return FALSE;}else{return TRUE;}}VOID 
 zUfiSms_SendSmsStatusInfo(wms_message_status_info sms_op){
-T_zUfi_SmsStatusInfoInd ind={(0x6e0+7184-0x22f0)};CHAR temp[(0x5a3+8181-0x2566)]
-={(0x119a+4579-0x237d)};if(sms_op==MSG_SMS_NEW){ind.sms_new_ind=
-(0x1489+3996-0x2424);}if(sms_op==MSG_SMS_READING){ind.sms_is_reading=
-(0x1526+3232-0x21c5);}if(zUfiSms_IsUnreadSms(ZTE_WMS_MEMORY_NV)){ind.
-sms_unread_ind=(0x1cf2+95-0x1d50);}else{ind.sms_unread_ind=(0x7e2+935-0xb89);}
+T_zUfi_SmsStatusInfoInd ind={(0x3e6+8101-0x238b)};CHAR temp[(0xd1a+1812-0x13fc)]
+={(0x1356+2198-0x1bec)};if(sms_op==MSG_SMS_NEW){ind.sms_new_ind=
+(0x4e5+1585-0xb15);}if(sms_op==MSG_SMS_READING){ind.sms_is_reading=
+(0x766+6940-0x2281);}if(zUfiSms_IsUnreadSms(ZTE_WMS_MEMORY_NV)){ind.
+sms_unread_ind=(0xf70+618-0x11d9);}else{ind.sms_unread_ind=(0x9a8+6002-0x211a);}
 sc_cfg_get("\x73\x6d\x73\x5f\x75\x6e\x72\x65\x61\x64\x5f\x63\x6f\x75\x6e\x74",
 temp,sizeof(temp));ind.sms_unread_count=atoi(temp);if((g_zUfiSms_MemFullFlag[
 WMS_STORAGE_TYPE_NV_V01]==TRUE)||(g_zUfiSms_MemFullFlag[WMS_STORAGE_TYPE_UIM_V01
-]==TRUE)){ind.sms_memory_full_ind=(0xb69+3763-0x1a1b);}else{ind.
-sms_memory_full_ind=(0x142f+1782-0x1b25);}printf(
+]==TRUE)){ind.sms_memory_full_ind=(0xe86+658-0x1117);}else{ind.
+sms_memory_full_ind=(0x1083+2158-0x18f1);}printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x53\x65\x6e\x64\x53\x6d\x73\x53\x74\x61\x74\x75\x73\x49\x6e\x66\x6f\x20\x75\x6e\x72\x65\x61\x64\x20\x3d\x20\x25\x64\x2c\x20\x66\x75\x6c\x6c\x3d\x25\x64\x2c\x20\x6e\x65\x77\x3d\x25\x64\x2c\x20\x72\x65\x61\x64\x69\x6e\x67\x3d\x25\x64" "\n"
 ,ind.sms_unread_ind,ind.sms_memory_full_ind,ind.sms_new_ind,ind.sms_is_reading);
 ipc_send_message(MODULE_ID_SMS,MODULE_ID_MMI,MSG_CMD_SMS_STATUS_INFO_IND,sizeof(
-T_zUfi_SmsStatusInfoInd),&ind,(0x100+1223-0x5c7));if(ind.sms_memory_full_ind==
-(0x5cd+6337-0x1e8d)){sc_cfg_set(NV_SMS_INIT_STATUS,
+T_zUfi_SmsStatusInfoInd),&ind,(0x26d+879-0x5dc));if(ind.sms_memory_full_ind==
+(0x1732+1698-0x1dd3)){sc_cfg_set(NV_SMS_INIT_STATUS,
 "\x73\x6d\x73\x5f\x6d\x65\x6d\x6f\x72\x79\x5f\x66\x75\x6c\x6c");}else if(ind.
-sms_unread_ind==(0x169+3090-0xd7a)){sc_cfg_set(NV_SMS_INIT_STATUS,
+sms_unread_ind==(0x190a+3562-0x26f3)){sc_cfg_set(NV_SMS_INIT_STATUS,
 "\x73\x6d\x73\x5f\x75\x6e\x72\x65\x61\x64");}else{sc_cfg_set(NV_SMS_INIT_STATUS,
 "\x73\x6d\x73\x5f\x6e\x6f\x72\x6d\x61\x6c");}return;}VOID BakNotificationSms(
 char*pushSms,int pushSmsLen){FILE*fp=NULL;int len;fp=fopen(
@@ -1185,7 +1184,7 @@
 "\x5b\x53\x4d\x53\x5d\x20\x42\x61\x6b\x4e\x6f\x74\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x53\x6d\x73\x20\x66\x6f\x70\x65\x6e\x20\x65\x72\x72\x6f\x72" "\n"
 );at_print(LOG_ERR,
 "\x66\x6f\x70\x65\x6e\x28\x20\x2f\x75\x73\x72\x2f\x64\x6d\x2f\x66\x6f\x74\x61\x5f\x70\x75\x73\x68\x5f\x6d\x73\x67\x2e\x64\x61\x74\x61\x20\x2c\x20\x27\x77\x2b\x27\x29\x20\x65\x72\x72\x6f\x72\x21"
-);return;}len=fwrite(pushSms,(0x487+1821-0xba3),pushSmsLen,fp);if(len==
+);return;}len=fwrite(pushSms,(0xfa+6552-0x1a91),pushSmsLen,fp);if(len==
 pushSmsLen){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x42\x61\x6b\x4e\x6f\x74\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x53\x6d\x73\x20\x77\x72\x69\x74\x65\x20\x74\x6f\x20\x4e\x6f\x74\x69\x66\x69\x63\x61\x74\x69\x6f\x6e\x62\x61\x6b\x20\x66\x69\x6c\x65\x20\x4f\x4b\x2c\x20\x6c\x65\x6e\x3d\x25\x64\x20" "\n"
 ,len);printf(
diff --git a/ap/app/zte_comm/sms/src/sms_main.c b/ap/app/zte_comm/sms/src/sms_main.c
index 137e8be..ff00818 100755
--- a/ap/app/zte_comm/sms/src/sms_main.c
+++ b/ap/app/zte_comm/sms/src/sms_main.c
@@ -15,43 +15,43 @@
 g_zUfiSms_FinalCmgsBuf;extern int g_zUfiSms_CurConcatSegNo;extern 
 T_zUfiSms_DbStoreData g_zUfiSms_DbStoreData[ZTE_WMS_CONCAT_SMS_COUNT_MAX];extern
  int g_zUfiSms_SendFailedCount;extern int g_zUfiSms_ConcatTotalNum;extern UINT8 
-g_zUfiSms_IsConcatSendSuc;int iSmsIndex=(0x9a8+6052-0x214c);int g_zSms_MsqId=-
-(0x2d+970-0x3f6);int g_zSms_LocalMsqId=-(0xd8d+1590-0x13c2);sem_t g_sms_sem_id;
-T_zSms_optRsp g_smsOptRsp={(0x11d+2800-0xc0d)};static const T_zSmsHandleTable 
-SmsHandleWebTab[]={{MSG_CMD_SEND_SMS,atWeb_SendSms,TRUE},{
+g_zUfiSms_IsConcatSendSuc;int iSmsIndex=(0x1611+4279-0x26c8);int g_zSms_MsqId=-
+(0x932+2791-0x1418);int g_zSms_LocalMsqId=-(0x11f4+312-0x132b);sem_t 
+g_sms_sem_id;T_zSms_optRsp g_smsOptRsp={(0xbec+3950-0x1b5a)};static const 
+T_zSmsHandleTable SmsHandleWebTab[]={{MSG_CMD_SEND_SMS,atWeb_SendSms,TRUE},{
 MSG_CMD_DEL_SMS_BY_INDEX,atWeb_DelSmsByIndex,TRUE},{MSG_CMD_SMS_MODIFY_TAG,
 atWeb_ReadSms,TRUE},{MSG_CMD_DRAFTS_SAVE,atWeb_SaveSms,FALSE},{
 MSG_CMD_SMS_LOCATION_SET,atWeb_SetSms,TRUE},{MSG_CMD_SMS_OUTDATE_CHECK,
-atWeb_OutdateSmsCheck,TRUE},{(0x1620+4016-0x25d0),NULL,FALSE}};VOID 
-atWeb_SendSms(UINT8*pDatabuf){T_zGoaheadMsgBuf*ptMessage=NULL;
-T_zUfiSms_StatusInfo tStatus={(0x18b+4116-0x119f)};assert(pDatabuf!=NULL);
-ptMessage=(T_zGoaheadMsgBuf*)pDatabuf;zUfiSms_InitCmdStatus(&tStatus,
-WMS_SMS_CMD_MSG_SEND);(void)zUfiSms_SendRawSms((T_zUfiSms_SendReq*)ptMessage->
-msg_data);}VOID atWeb_DelSmsByIndex(UINT8*pDatabuf){T_zUfiSms_DelReq tDelReq={
-(0x8c0+990-0xc9e)};T_zUfiSms_CmdStatus result=WMS_CMD_PROCESSING;
-T_zUfiSms_StatusInfo tStatus={(0x1539+3694-0x23a7)};assert(pDatabuf!=NULL);
-printf("[SMS] atWeb_DelSmsByIndex recv msg\n");memcpy(&tDelReq,pDatabuf,sizeof(
+atWeb_OutdateSmsCheck,TRUE},{(0x857+7200-0x2477),NULL,FALSE}};VOID atWeb_SendSms
+(UINT8*pDatabuf){T_zGoaheadMsgBuf*ptMessage=NULL;T_zUfiSms_StatusInfo tStatus={
+(0x1f8+9381-0x269d)};assert(pDatabuf!=NULL);ptMessage=(T_zGoaheadMsgBuf*)
+pDatabuf;zUfiSms_InitCmdStatus(&tStatus,WMS_SMS_CMD_MSG_SEND);(void)
+zUfiSms_SendRawSms((T_zUfiSms_SendReq*)ptMessage->msg_data);}VOID 
+atWeb_DelSmsByIndex(UINT8*pDatabuf){T_zUfiSms_DelReq tDelReq={(0x685+1667-0xd08)
+};T_zUfiSms_CmdStatus result=WMS_CMD_PROCESSING;T_zUfiSms_StatusInfo tStatus={
+(0x1e00+1566-0x241e)};assert(pDatabuf!=NULL);printf(
+"[SMS] atWeb_DelSmsByIndex recv msg\n");memcpy(&tDelReq,pDatabuf,sizeof(
 T_zUfiSms_DelReq));zUfiSms_InitCmdStatus(&tStatus,WMS_SMS_CMD_MSG_DELETE);result
 =zUfiSms_DeleteSms(&tDelReq);tStatus.cmd_status=result;(void)
 zUfiSms_SetCmdStatus(&tStatus);zUfiMmi_SendSmsStatus();}VOID atWeb_DelSmsByType(
 UINT8*pDatabuf){
-#if (0x1398+1357-0x18e5)

+#if (0x7f3+6205-0x2030)

 WEB_DEL_SMS_BY_TYPE*req=NULL;req=(WEB_DEL_SMS_BY_TYPE*)pDatabuf;assert(req!=NULL
 );if(req->eLocation!=ZSMS_LOCATION_SIM){ZTE_LOG(LOG_ERR,
 "\x7a\x53\x6d\x73\x5f\x50\x72\x65\x70\x44\x65\x6c\x42\x79\x54\x79\x70\x65\x20\x70\x61\x72\x61\x20\x4e\x55\x4c\x4c\x2e" "\n"
 );return;}zSms_ChangeMainState(ZSMS_STATE_DELING);ZTE_LOG(LOG_DEBUG,
 "\x7a\x53\x6d\x73\x5f\x50\x72\x65\x70\x44\x65\x6c\x42\x79\x54\x79\x70\x65\x20\x70\x73\x74\x52\x65\x71\x2d\x3e\x65\x42\x6f\x78\x4e\x61\x6d\x65\x3d\x25\x64" "\n"
-,req->eBoxName);SMS_DeleteRecordFromXML(SMS_LOCATION_SIM,(0xf1c+3330-0x1c1e),req
-->eBoxName);if(req->eBoxName==SMS_INBOX){sms_LoadSmsFromSim();}
+,req->eBoxName);SMS_DeleteRecordFromXML(SMS_LOCATION_SIM,(0x1c7b+2533-0x2660),
+req->eBoxName);if(req->eBoxName==SMS_INBOX){sms_LoadSmsFromSim();}
 #endif

 }VOID atWeb_ReadSms(UINT8*pDatabuf){T_zGoaheadMsgBuf*ptMessage=NULL;
 T_zUfiSms_CmdStatus result=WMS_CMD_PROCESSING;T_zUfiSms_StatusInfo tStatus={
-(0xab+2436-0xa2f)};assert(pDatabuf!=NULL);ptMessage=(T_zGoaheadMsgBuf*)pDatabuf;
-zUfiSms_InitCmdStatus(&tStatus,WMS_SMS_CMD_MSG_MODIFY_TAG);result=
+(0x1d48+545-0x1f69)};assert(pDatabuf!=NULL);ptMessage=(T_zGoaheadMsgBuf*)
+pDatabuf;zUfiSms_InitCmdStatus(&tStatus,WMS_SMS_CMD_MSG_MODIFY_TAG);result=
 zUfiSms_ModifySmsTag((T_zUfiSms_ModifyFlag*)ptMessage->msg_data);tStatus.
 cmd_status=result;(void)zUfiSms_SetCmdStatus(&tStatus);}VOID atWeb_SaveSms(UINT8
 *pDatabuf){T_zGoaheadMsgBuf*ptMessage=NULL;T_zUfiSms_CmdStatus result=
-WMS_CMD_PROCESSING;T_zUfiSms_StatusInfo tStatus={(0x594+267-0x69f)};assert(
+WMS_CMD_PROCESSING;T_zUfiSms_StatusInfo tStatus={(0xb97+637-0xe14)};assert(
 pDatabuf!=NULL);ptMessage=(T_zGoaheadMsgBuf*)pDatabuf;zUfiSms_InitCmdStatus(&
 tStatus,WMS_SMS_CMD_MSG_WRITE);result=zUfiSms_WriteRawSms((T_zUfiSms_SaveReq*)
 ptMessage->msg_data);if(g_zUfiSms_MemFullFlag[ZTE_WMS_MEMORY_NV]){tStatus.
@@ -61,250 +61,251 @@
 zUfiSms_ChangeMainState(SMS_STATE_SAVING);sc_cfg_set(NV_SMS_SAVE_RESULT,
 "\x6f\x6b");}VOID atWeb_SetSms(UINT8*pDatabuf){T_zGoaheadMsgBuf*ptMessage=NULL;
 T_zUfiSms_CmdStatus result=WMS_CMD_PROCESSING;T_zUfiSms_StatusInfo tStatus={
-(0xb08+5036-0x1eb4)};printf(
+(0xc8b+748-0xf77)};printf(
 "\x49\x4e\x54\x4f\x20\x61\x74\x57\x65\x62\x5f\x53\x65\x74\x53\x6d\x73\x2e" "\n")
 ;assert(pDatabuf!=NULL);ptMessage=(T_zGoaheadMsgBuf*)pDatabuf;
 zUfiSms_InitCmdStatus(&tStatus,WMS_SMS_CMD_CFG_SET_PARAMETERS);result=
 zUfiSms_SetSmsPara((T_zUfiSms_ParaInfo*)ptMessage->msg_data);tStatus.cmd_status=
 result;(void)zUfiSms_SetCmdStatus(&tStatus);}VOID atWeb_OutdateSmsCheck(UINT8*
-pDatabuf){T_zUfiSms_DelReq tSmsDel={(0xe20+2907-0x197b)};
+pDatabuf){T_zUfiSms_DelReq tSmsDel={(0x1696+667-0x1931)};
 zUfiSms_CheckDbOutdateSms(ZTE_WMS_DB_NV_TABLE,&tSmsDel);printf(
 "\x2d\x2d\x2d\x2d\x6f\x75\x74\x20\x63\x6f\x75\x6e\x20\x6e\x76\x74\x3a\x20\x25\x64\x2d\x2d\x2d\x2d" "\n"
-,tSmsDel.all_or_count);if(tSmsDel.all_or_count>(0xda+9499-0x25f5)){
-atWeb_DelSmsByIndex(&tSmsDel);}memset(&tSmsDel,(0x1b87+2201-0x2420),sizeof(
+,tSmsDel.all_or_count);if(tSmsDel.all_or_count>(0x32+1958-0x7d8)){
+atWeb_DelSmsByIndex(&tSmsDel);}memset(&tSmsDel,(0x718+1333-0xc4d),sizeof(
 T_zUfiSms_DelReq));zUfiSms_CheckDbOutdateSms(ZTE_WMS_DB_SIM_TABLE,&tSmsDel);
 printf(
 "\x2d\x2d\x2d\x2d\x6f\x75\x74\x20\x63\x6f\x75\x6e\x74\x20\x73\x69\x6d\x3a\x20\x25\x64\x2d\x2d\x2d\x2d" "\n"
-,tSmsDel.all_or_count);if(tSmsDel.all_or_count>(0x1428+2005-0x1bfd)){
+,tSmsDel.all_or_count);if(tSmsDel.all_or_count>(0x1cd3+776-0x1fdb)){
 atWeb_DelSmsByIndex(&tSmsDel);}}VOID zSms_HandleWebMsg(MSG_BUF*ptMsgBuf){UINT32 
-i=(0x25b+7658-0x2045);assert(ptMsgBuf!=NULL);printf(
+i=(0x14e9+573-0x1726);assert(ptMsgBuf!=NULL);printf(
 "\x73\x6d\x73\x20\x72\x65\x63\x76\x20\x6d\x73\x67\x20\x66\x72\x6f\x6d\x20\x77\x65\x62\x73\x65\x72\x76\x65\x72\x3a\x25\x64" "\n"
-,ptMsgBuf->usMsgCmd);while((0x45a+5350-0x1940)!=SmsHandleWebTab[i].msg_id){if(
+,ptMsgBuf->usMsgCmd);while((0x414+5567-0x19d3)!=SmsHandleWebTab[i].msg_id){if(
 ptMsgBuf->usMsgCmd==SmsHandleWebTab[i].msg_id){if(SmsHandleWebTab[i].need_block
 &&ptMsgBuf->src_id!=MODULE_ID_SMS){ipc_send_message(MODULE_ID_SMS,
 MODULE_ID_SMS_LOCAL,ptMsgBuf->usMsgCmd,ptMsgBuf->usDataLen,(unsigned char*)
-ptMsgBuf->aucDataBuf,(0xf5+4930-0x1437));}else if(NULL!=SmsHandleWebTab[i].
+ptMsgBuf->aucDataBuf,(0x10dd+3502-0x1e8b));}else if(NULL!=SmsHandleWebTab[i].
 func_ptr){SmsHandleWebTab[i].func_ptr(ptMsgBuf->aucDataBuf);}break;}i++;}}SINT32
  zSms_SendMsg(USHORT Msg_cmd,USHORT us_DataLen,UCHAR*pData){printf(
 "\x73\x6d\x73\x20\x73\x65\x6e\x64\x20\x6d\x73\x67\x20\x63\x6d\x64\x3a\x25\x64" "\n"
 ,Msg_cmd);ipc_send_message(MODULE_ID_SMS,MODULE_ID_AT_CTL,Msg_cmd,us_DataLen,(
-unsigned char*)pData,(0x1ccb+41-0x1cf4));return(0x1f8f+1521-0x2580);}SINT32 
-zSms_SendCmgsReq(VOID){T_zSms_SendSmsReq sendSmsInfo={(0x12d3+1423-0x1862)};
-memset(&sendSmsInfo,(0x151+1323-0x67c),sizeof(T_zSms_SendSmsReq));sendSmsInfo.
+unsigned char*)pData,(0x259+8491-0x2384));return(0x11+6864-0x1ae1);}SINT32 
+zSms_SendCmgsReq(VOID){T_zSms_SendSmsReq sendSmsInfo={(0x4cd+8483-0x25f0)};
+memset(&sendSmsInfo,(0x71b+2331-0x1036),sizeof(T_zSms_SendSmsReq));sendSmsInfo.
 length=g_zUfiSms_FinalCmgsBuf.length;if(strlen(g_zUfiSms_FinalCmgsBuf.pdu)<
-ZSMS_PDU_SIZE-(0xebf+1089-0x12ff)){memcpy(sendSmsInfo.pdu,g_zUfiSms_FinalCmgsBuf
+ZSMS_PDU_SIZE-(0x23d+9273-0x2675)){memcpy(sendSmsInfo.pdu,g_zUfiSms_FinalCmgsBuf
 .pdu,strlen(g_zUfiSms_FinalCmgsBuf.pdu));}else{printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x53\x65\x6e\x64\x43\x6d\x67\x73\x52\x65\x71\x20\x70\x64\x75\x20\x74\x6f\x6f\x20\x6c\x6f\x6e\x67\x3a\x25\x73" "\n"
 ,g_zUfiSms_FinalCmgsBuf.pdu);memcpy(sendSmsInfo.pdu,g_zUfiSms_FinalCmgsBuf.pdu,
-ZSMS_PDU_SIZE-(0x626+4885-0x1939));}*(sendSmsInfo.pdu+strlen(
+ZSMS_PDU_SIZE-(0x17ea+260-0x18ec));}*(sendSmsInfo.pdu+strlen(
 g_zUfiSms_FinalCmgsBuf.pdu))=ZSMS_CTRL_Z_CHAR;
-#if (0xbb1+5026-0x1f52)
+#if (0x1141+5052-0x24fc)
 printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x53\x65\x6e\x64\x43\x6d\x67\x73\x52\x65\x71\x20\x73\x65\x6e\x64\x20\x64\x61\x74\x61" "\n"
 );printf("\n" "\x5b\x53\x4d\x53\x5d\x25\x73" "\n",sendSmsInfo.pdu);
 #endif

 zSms_SendMsg(MSG_CMD_SENDSMS_REQ,sizeof(T_zSms_SendSmsReq),&sendSmsInfo);
-sem_wait(&g_sms_sem_id);if(g_smsOptRsp.result==(0x751+2675-0x11c3)){return 
+sem_wait(&g_sms_sem_id);if(g_smsOptRsp.result==(0xec8+4720-0x2137)){return 
 ZSMS_RESULT_OK;}else{return ZSMS_RESULT_ERROR;}}VOID zSms_RecvCmgsOk(VOID){
 printf(
 "\x73\x6d\x73\x20\x73\x65\x6e\x64\x65\x64\x20\x73\x75\x63\x63\x65\x73\x73\x2e\x20" "\n"
 );g_zUfiSms_CurConcatSegNo++;if(g_zUfiSms_CurConcatSegNo>
 ZTE_WMS_CONCAT_SMS_COUNT_MAX){return;}g_zUfiSms_DbStoreData[
-g_zUfiSms_CurConcatSegNo-(0x2223+375-0x2399)].tag=WMS_TAG_TYPE_MO_SENT_V01;
+g_zUfiSms_CurConcatSegNo-(0x1ca3+1898-0x240c)].tag=WMS_TAG_TYPE_MO_SENT_V01;
 zUfiSms_CmgsRespProc();}VOID zSms_RecvCmgsErr(VOID){printf(
 "\x73\x6d\x73\x20\x73\x65\x6e\x64\x65\x64\x20\x66\x61\x69\x6c\x2e\x20" "\n");
 g_zUfiSms_CurConcatSegNo++;if(g_zUfiSms_CurConcatSegNo>
 ZTE_WMS_CONCAT_SMS_COUNT_MAX){return;}g_zUfiSms_SendFailedCount++;printf(
 "\x73\x65\x6e\x64\x20\x73\x6d\x73\x20\x66\x61\x69\x6c\x65\x64\x2c\x73\x6f\x20\x77\x72\x69\x74\x65\x20\x73\x6d\x73\x20\x74\x6f\x20\x64\x72\x61\x66\x74\x62\x6f\x78\x2e" "\n"
-);g_zUfiSms_DbStoreData[g_zUfiSms_CurConcatSegNo-(0x17d5+1999-0x1fa3)].tag=
-WMS_TAG_TYPE_MO_NOT_SENT_V01;if(g_zUfiSms_ConcatTotalNum>(0xee6+4309-0x1fba)){
+);g_zUfiSms_DbStoreData[g_zUfiSms_CurConcatSegNo-(0x1c62+1721-0x231a)].tag=
+WMS_TAG_TYPE_MO_NOT_SENT_V01;if(g_zUfiSms_ConcatTotalNum>(0x1e2c+1853-0x2568)){
 g_zUfiSms_IsConcatSendSuc=FALSE;}zUfiSms_CmgsRespProc();}SINT32 zSms_SendCmgdReq
-(UINT8 index){T_zSms_DelSmsReq delSmsReq={(0x353+1336-0x88b)};delSmsReq.index=
+(UINT8 index){T_zSms_DelSmsReq delSmsReq={(0x281+2525-0xc5e)};delSmsReq.index=
 index;zSms_SendMsg(MSG_CMD_DELSMS_REQ,sizeof(T_zSms_DelSmsReq),&delSmsReq);
-sem_wait(&g_sms_sem_id);if(g_smsOptRsp.result==(0xf16+5782-0x25ab)){return 
+sem_wait(&g_sms_sem_id);if(g_smsOptRsp.result==(0x7f5+3361-0x1515)){return 
 ZSMS_RESULT_OK;}else{return ZSMS_RESULT_ERROR;}}VOID zSms_RecvCmgdOk(VOID){CHAR 
-strUsed[(0x4ea+5228-0x194c)]={(0xc7f+2301-0x157c)};int used=(0xb15+1096-0xf5d);
-int tmp_i=(0x2319+870-0x267f);sc_cfg_set(NV_SMS_DEL_RESULT,"\x6f\x6b");printf(
+strUsed[(0x8c7+6293-0x2152)]={(0x6d5+4757-0x196a)};int used=(0x2a3+5241-0x171c);
+int tmp_i=(0x689+5792-0x1d29);sc_cfg_set(NV_SMS_DEL_RESULT,"\x6f\x6b");printf(
 "\x5b\x53\x4d\x53\x5d\x20\x73\x65\x74\x20\x73\x69\x6d\x5f\x64\x65\x6c\x5f\x72\x65\x73\x75\x6c\x74\x20\x74\x6f\x20\x4f\x4b\x2e\x20" "\n"
 );sc_cfg_get(ZTE_WMS_NVCONFIG_SIM_CARD_USED,strUsed,sizeof(strUsed));tmp_i=atoi(
-strUsed);if(tmp_i<(0x97c+6996-0x24d0)||tmp_i>INT_MAX-(0x433+5251-0x18b5)){
+strUsed);if(tmp_i<(0x5a2+7225-0x21db)||tmp_i>INT_MAX-(0x7b0+2193-0x1040)){
 at_print(LOG_ERR,
 "\x5b\x53\x4d\x53\x5d\x57\x4d\x53\x5f\x4e\x56\x43\x4f\x4e\x46\x49\x47\x5f\x53\x49\x4d\x5f\x43\x41\x52\x44\x5f\x55\x53\x45\x44\x20\x74\x6d\x70\x5f\x69\x20\x65\x72\x72\x3a\x25\x64" "\n"
-,tmp_i);tmp_i=(0x57f+2718-0x101d);}used=tmp_i-(0x1065+628-0x12d8);if(used<
-(0xb74+2002-0x1346)){used=(0xe9f+5411-0x23c2);}memset(&strUsed,
-(0x19f6+852-0x1d4a),(0x62a+7858-0x24d2));snprintf(strUsed,sizeof(strUsed),
+,tmp_i);tmp_i=(0x1452+1958-0x1bf8);}used=tmp_i-(0x1cb+7937-0x20cb);if(used<
+(0x1f6c+1638-0x25d2)){used=(0xa18+7191-0x262f);}memset(&strUsed,
+(0x1dd0+658-0x2062),(0x70d+7522-0x2465));snprintf(strUsed,sizeof(strUsed),
 "\x25\x64",used);sc_cfg_set(ZTE_WMS_NVCONFIG_SIM_CARD_USED,strUsed);}VOID 
 zSms_RecvCmgdErr(VOID){sc_cfg_set(NV_SMS_DEL_RESULT,"\x66\x61\x69\x6c");printf(
 "\x5b\x53\x4d\x53\x5d\x20\x73\x65\x74\x20\x73\x69\x6d\x5f\x64\x65\x6c\x5f\x72\x65\x73\x75\x6c\x74\x20\x74\x6f\x20\x66\x61\x69\x6c\x2e\x20" "\n"
-);}VOID zSms_RecvCmgdFinish(VOID){char StrValue[(0x19d5+2534-0x23b1)]={
-(0x7aa+5185-0x1beb)};CHAR strTotal[(0x116+5395-0x161f)]={(0xe9d+4614-0x20a3)};
-CHAR strUsed[(0x8b4+4600-0x1aa2)]={(0x6d6+5107-0x1ac9)};int total=
-(0xf32+3383-0x1c69);int used=(0x6ba+6897-0x21ab);int remain=(0x72d+2613-0x1162);
+);}VOID zSms_RecvCmgdFinish(VOID){char StrValue[(0x1c9c+2538-0x267c)]={
+(0x16c+5986-0x18ce)};CHAR strTotal[(0xb0+4999-0x142d)]={(0x12f+3984-0x10bf)};
+CHAR strUsed[(0x15+9154-0x23cd)]={(0x31d+3650-0x115f)};int total=
+(0x268+6313-0x1b11);int used=(0x531+2620-0xf6d);int remain=(0xdb1+5336-0x2289);
 sc_cfg_get(ZTE_WMS_NVCONFIG_SIM_CARD_USED,strUsed,sizeof(strUsed));used=atoi(
-strUsed);if(used<(0x8eb+1558-0xf01)||used>INT_MAX-(0xa99+3230-0x1736)){at_print(
+strUsed);if(used<(0x56d+3400-0x12b5)||used>INT_MAX-(0x1a7+2169-0xa1f)){at_print(
 LOG_ERR,
 "\x5b\x53\x4d\x53\x5d\x57\x4d\x53\x5f\x4e\x56\x43\x4f\x4e\x46\x49\x47\x5f\x53\x49\x4d\x5f\x43\x41\x52\x44\x5f\x55\x53\x45\x44\x20\x65\x72\x72\x3a\x25\x64" "\n"
-,used);used=(0xd20+4210-0x1d92);}sc_cfg_get(ZTE_WMS_NVCONFIG_SIM_CARD_TOTAL,
-strTotal,sizeof(strTotal));total=atoi(strTotal);if(total<(0x488+1216-0x948)||
-total>INT_MAX-(0x557+240-0x646)){at_print(LOG_ERR,
+,used);used=(0x44d+2407-0xdb4);}sc_cfg_get(ZTE_WMS_NVCONFIG_SIM_CARD_TOTAL,
+strTotal,sizeof(strTotal));total=atoi(strTotal);if(total<(0x9e0+6314-0x228a)||
+total>INT_MAX-(0xd4+6815-0x1b72)){at_print(LOG_ERR,
 "\x5b\x53\x4d\x53\x5d\x57\x4d\x53\x5f\x4e\x56\x43\x4f\x4e\x46\x49\x47\x5f\x53\x49\x4d\x5f\x43\x41\x52\x44\x5f\x54\x4f\x54\x41\x4c\x20\x65\x72\x72\x3a\x25\x64" "\n"
-,total);total=(0x18d4+877-0x1c41);}remain=total-used;if(remain<
-(0x10c8+1778-0x17ba)){remain=(0x4ba+1844-0xbee);}memset(&StrValue,
-(0xaba+962-0xe7c),(0xc46+646-0xec2));snprintf(StrValue,sizeof(StrValue),
+,total);total=(0x2d5+6720-0x1d15);}remain=total-used;if(remain<
+(0x1384+2684-0x1e00)){remain=(0x1e9+6219-0x1a34);}memset(&StrValue,
+(0x9b3+5448-0x1efb),(0x1185+4486-0x2301));snprintf(StrValue,sizeof(StrValue),
 "\x25\x64",remain);sc_cfg_set(ZTE_WMS_NVCONFIG_SIM_CARD_REMAIN,StrValue);printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x44\x65\x6c\x65\x74\x65\x53\x69\x6d\x53\x6d\x73\x20\x75\x73\x65\x64\x3d\x25\x64\x2c\x72\x65\x6d\x61\x69\x6e\x3d\x25\x64\x2c\x74\x6f\x74\x61\x6c\x3d\x25\x64" "\n"
 ,used,remain,total);zUfiSms_ChangeMainState(SMS_STATE_DELED);sc_cfg_set(
 NV_SMS_DB_CHANGE,"\x31");}int zSms_SendZmenaReq(SINT32 avail){T_zSms_StroageReq 
-storageReq={(0x2f5+6657-0x1cf6)};storageReq.type=avail;zSms_SendMsg(
+storageReq={(0x1aad+1552-0x20bd)};storageReq.type=avail;zSms_SendMsg(
 MSG_CMD_STORAGE_CAP_REQ,sizeof(T_zSms_StroageReq),&storageReq);sem_wait(&
-g_sms_sem_id);if(g_smsOptRsp.result==(0x2300+775-0x2606)){return ZSMS_RESULT_OK;
-}else{return ZSMS_RESULT_ERROR;}}int zSms_SendCmgrReq(UINT8 index){
-T_zSms_ModifyTagReq modTagReq={(0x136+8273-0x2187)};modTagReq.index=index;
+g_sms_sem_id);if(g_smsOptRsp.result==(0xa36+290-0xb57)){return ZSMS_RESULT_OK;}
+else{return ZSMS_RESULT_ERROR;}}int zSms_SendCmgrReq(UINT8 index){
+T_zSms_ModifyTagReq modTagReq={(0x14f2+4142-0x2520)};modTagReq.index=index;
 zSms_SendMsg(MSG_CMD_MODIFY_TAG_REQ,sizeof(T_zSms_ModifyTagReq),&modTagReq);
-sem_wait(&g_sms_sem_id);if(g_smsOptRsp.result==(0x16d8+250-0x17d1)){return 
+sem_wait(&g_sms_sem_id);if(g_smsOptRsp.result==(0x22f6+449-0x24b6)){return 
 ZSMS_RESULT_OK;}else{return ZSMS_RESULT_ERROR;}}int zSms_SetCscaReq(PSTR sca){
 T_zSms_SetScaReq setscareq;strncpy(setscareq.sca,sca,sizeof(setscareq.sca)-
-(0x959+1638-0xfbe));zSms_SendMsg(MSG_CMD_SCA_SET_REQ,sizeof(T_zSms_SetScaReq),&
-setscareq);sem_wait(&g_sms_sem_id);if(g_smsOptRsp.result==(0x1734+1500-0x1d0f)){
-return ZSMS_RESULT_OK;}else{return ZSMS_RESULT_ERROR;}}int zSms_SendCnmiReq(PSTR
- pAtCmdPara){T_zSms_NotifySetReq notifySetReq={(0xdb7+2761-0x1880)};if(
-(0x1841+1852-0x1f7d)==strcmp(pAtCmdPara,"\x73\x69\x6d")){notifySetReq.mt=
-(0x773+6838-0x2228);}else{notifySetReq.mt=(0x1065+3866-0x1f7d);}zSms_SendMsg(
+(0x1327+4059-0x2301));zSms_SendMsg(MSG_CMD_SCA_SET_REQ,sizeof(T_zSms_SetScaReq),
+&setscareq);sem_wait(&g_sms_sem_id);if(g_smsOptRsp.result==(0x13c9+3455-0x2147))
+{return ZSMS_RESULT_OK;}else{return ZSMS_RESULT_ERROR;}}int zSms_SendCnmiReq(
+PSTR pAtCmdPara){T_zSms_NotifySetReq notifySetReq={(0xa5+9655-0x265c)};if(
+(0xe1d+236-0xf09)==strcmp(pAtCmdPara,"\x73\x69\x6d")){notifySetReq.mt=
+(0xfa5+5594-0x257e);}else{notifySetReq.mt=(0xda8+241-0xe97);}zSms_SendMsg(
 MSG_CMD_NOTIFY_SET_REQ,sizeof(T_zSms_NotifySetReq),&notifySetReq);sem_wait(&
-g_sms_sem_id);if(g_smsOptRsp.result==(0x1c71+812-0x1f9c)){return ZSMS_RESULT_OK;
+g_sms_sem_id);if(g_smsOptRsp.result==(0x1836+225-0x1916)){return ZSMS_RESULT_OK;
 }else{return ZSMS_RESULT_ERROR;}}VOID zSms_RecvCmtInd(UINT8*pDatabuf){CHAR 
-needSMS[(0xc37+6184-0x242d)]={(0x686+5892-0x1d8a)};sc_cfg_get(
-NV_NEED_SUPPORT_SMS,needSMS,sizeof(needSMS));if((0x1894+782-0x1ba2)==strcmp(
+needSMS[(0x1c0a+1202-0x208a)]={(0x144c+255-0x154b)};sc_cfg_get(
+NV_NEED_SUPPORT_SMS,needSMS,sizeof(needSMS));if((0x511+6880-0x1ff1)==strcmp(
 needSMS,"\x6e\x6f")){printf(
 "\x5b\x53\x4d\x53\x5d\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x6d\x74\x52\x73\x70\x20\x6e\x65\x65\x64\x53\x4d\x53\x3d\x6e\x6f\x21"
-);return;}T_zSms_SmsInd tCmtRsp={(0x7a2+2648-0x11fa)};memcpy(&tCmtRsp,(
+);return;}T_zSms_SmsInd tCmtRsp={(0x1b5+6838-0x1c6b)};memcpy(&tCmtRsp,(
 T_zSms_SmsInd*)pDatabuf,sizeof(T_zSms_SmsInd));zUfiSms_CmtRespProc(&tCmtRsp);
 zUfiMmi_SendSmsStatus();sc_cfg_set(NV_SMS_RECV_RESULT,"\x6f\x6b");}VOID 
-zSms_RecvCmtiInd(UINT8*pDatabuf){char sms_Main_state[(0x7c0+1117-0xbff)]={
-(0x17ed+3499-0x2598)};T_zSms_SmsIndexInd*smsIdxInd=(T_zSms_SmsIndexInd*)pDatabuf
-;CHAR needSMS[(0x5a5+3999-0x1512)]={(0x13a7+1686-0x1a3d)};sc_cfg_get(
-NV_NEED_SUPPORT_SMS,needSMS,sizeof(needSMS));if((0xc8b+6751-0x26ea)==strcmp(
+zSms_RecvCmtiInd(UINT8*pDatabuf){char sms_Main_state[(0xab0+6524-0x240e)]={
+(0xdfd+1280-0x12fd)};T_zSms_SmsIndexInd*smsIdxInd=(T_zSms_SmsIndexInd*)pDatabuf;
+CHAR needSMS[(0xc0d+449-0xd9c)]={(0x1c40+617-0x1ea9)};sc_cfg_get(
+NV_NEED_SUPPORT_SMS,needSMS,sizeof(needSMS));if((0x175+6704-0x1ba5)==strcmp(
 needSMS,"\x6e\x6f")){printf(
 "\x5b\x53\x4d\x53\x5d\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x6d\x74\x52\x73\x70\x20\x6e\x65\x65\x64\x53\x4d\x53\x3d\x6e\x6f\x21"
 );return;}sc_cfg_get(NV_SMS_STATE,sms_Main_state,sizeof(sms_Main_state));if(
 strcmp(sms_Main_state,"\x73\x6d\x73\x5f\x64\x65\x6c\x69\x6e\x67")==
-(0x1b7+7123-0x1d8a)){printf(
+(0x22f5+262-0x23fb)){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x6d\x74\x69\x52\x73\x70\x3a\x20\x73\x6d\x73\x5f\x64\x65\x6c\x69\x6e\x67" "\n"
-);return;}if((0x1519+3546-0x22f3)==strncmp("\x53\x4d",smsIdxInd->storetype,
-(0xecd+5270-0x2361))){zUfiSms_SetSmsLocation(SMS_LOCATION_SIM);
+);return;}if((0x2175+1004-0x2561)==strncmp("\x53\x4d",smsIdxInd->storetype,
+(0x72+849-0x3c1))){zUfiSms_SetSmsLocation(SMS_LOCATION_SIM);
 zUfiSms_ChangeMainState(SMS_STATE_RECVING);zSms_SendZmgrReq(smsIdxInd->index);}
 else{printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x6d\x74\x69\x52\x73\x70\x20\x3a\x73\x74\x6f\x72\x65\x20\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x20\x6e\x6f\x74\x20\x53\x4d\x2e" "\n"
 );}sc_cfg_set(NV_SMS_RECV_RESULT,"");}VOID zSms_RecvCdsInd(UINT8*pDatabuf){CHAR 
-needSMS[(0x430+7753-0x2247)]={(0x143b+669-0x16d8)};sc_cfg_get(
-NV_NEED_SUPPORT_SMS,needSMS,sizeof(needSMS));if((0x63b+4133-0x1660)==strcmp(
+needSMS[(0x202+5994-0x193a)]={(0x1969+1407-0x1ee8)};sc_cfg_get(
+NV_NEED_SUPPORT_SMS,needSMS,sizeof(needSMS));if((0x1099+4353-0x219a)==strcmp(
 needSMS,"\x6e\x6f")){printf(
 "\x5b\x53\x4d\x53\x5d\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x6d\x74\x52\x73\x70\x20\x6e\x65\x65\x64\x53\x4d\x53\x3d\x6e\x6f\x21"
-);return;}T_zSms_SmsInd tCmtRsp={(0x405+6987-0x1f50)};memcpy(&tCmtRsp,(
+);return;}T_zSms_SmsInd tCmtRsp={(0x2244+1176-0x26dc)};memcpy(&tCmtRsp,(
 T_zSms_SmsInd*)pDatabuf,sizeof(T_zSms_SmsInd));zUfiSms_CdsRespProc(&tCmtRsp);
 zUfiMmi_SendSmsStatus();sc_cfg_set(NV_SMS_RECV_RESULT,"\x6f\x6b");}VOID 
-zSms_RecvCdsiInd(UINT8*pDatabuf){char sms_Main_state[(0x10b9+666-0x1335)]={
-(0x728+1128-0xb90)};T_zSms_SmsIndexInd*smsIdxInd=(T_zSms_SmsIndexInd*)pDatabuf;
-CHAR needSMS[(0x6e5+7164-0x22af)]={(0x12b+7807-0x1faa)};sc_cfg_get(
-NV_NEED_SUPPORT_SMS,needSMS,sizeof(needSMS));if((0x1f7+8290-0x2259)==strcmp(
+zSms_RecvCdsiInd(UINT8*pDatabuf){char sms_Main_state[(0x14c2+2240-0x1d64)]={
+(0x41f+7919-0x230e)};T_zSms_SmsIndexInd*smsIdxInd=(T_zSms_SmsIndexInd*)pDatabuf;
+CHAR needSMS[(0x81b+6761-0x2252)]={(0x1738+272-0x1848)};sc_cfg_get(
+NV_NEED_SUPPORT_SMS,needSMS,sizeof(needSMS));if((0x1110+1666-0x1792)==strcmp(
 needSMS,"\x6e\x6f")){printf(
 "\x5b\x53\x4d\x53\x5d\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x6d\x74\x52\x73\x70\x20\x6e\x65\x65\x64\x53\x4d\x53\x3d\x6e\x6f\x21"
 );return;}sc_cfg_get(NV_SMS_STATE,sms_Main_state,sizeof(sms_Main_state));if(
 strcmp(sms_Main_state,"\x73\x6d\x73\x5f\x64\x65\x6c\x69\x6e\x67")==
-(0x9a4+1144-0xe1c)){printf(
+(0xd1c+3243-0x19c7)){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x64\x73\x69\x52\x73\x70\x3a\x20\x73\x6d\x73\x5f\x64\x65\x6c\x69\x6e\x67" "\n"
-);return;}if((0x1876+481-0x1a57)==strncmp("\x53\x4d",smsIdxInd->storetype,
-(0x189c+1771-0x1f85))){zUfiSms_SetSmsLocation(SMS_LOCATION_SIM);
+);return;}if((0x183d+3222-0x24d3)==strncmp("\x53\x4d",smsIdxInd->storetype,
+(0x152f+1227-0x19f8))){zUfiSms_SetSmsLocation(SMS_LOCATION_SIM);
 zUfiSms_ChangeMainState(SMS_STATE_RECVING);zSms_SendZmgrReq(smsIdxInd->index);}
 else{printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x64\x73\x69\x52\x73\x70\x20\x3a\x73\x74\x6f\x72\x65\x20\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x20\x6e\x6f\x74\x20\x53\x4d\x2e" "\n"
 );}sc_cfg_set(NV_SMS_RECV_RESULT,"");}int zSms_SendCnmaReq(int ack_mode){
-T_zSms_SmsAckReq ackReq={(0xd77+2651-0x17d2)};CHAR ackPduStr[(0x1c4f+617-0x1e86)
-]={(0xcc8+5329-0x2199)};ackReq.ackmode=ack_mode;if(ack_mode==(0x288+2519-0xc5d))
-{zUfiSms_EncodePdu_DeliverReport(ackPduStr,(0x2da+8212-0x221b));memcpy(ackReq.
-pdu,ackPduStr,strlen(ackPduStr));
-#if (0x19d3+1442-0x1f75)

-if(strlen(ackPduStr)<ZSMS_PDU_SIZE-(0x617+1084-0xa52)){memcpy(ackReq.pdu,
+T_zSms_SmsAckReq ackReq={(0x1cf8+2320-0x2608)};CHAR ackPduStr[(0x40d+1751-0xab2)
+]={(0x1081+4288-0x2141)};ackReq.ackmode=ack_mode;if(ack_mode==
+(0x1c49+776-0x1f4f)){zUfiSms_EncodePdu_DeliverReport(ackPduStr,
+(0x15e6+556-0x173f));memcpy(ackReq.pdu,ackPduStr,strlen(ackPduStr));
+#if (0x126b+4735-0x24ea)

+if(strlen(ackPduStr)<ZSMS_PDU_SIZE-(0x830+1020-0xc2b)){memcpy(ackReq.pdu,
 ackPduStr,strlen(ackPduStr));}else{at_print(LOG_DEBUG
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x53\x65\x6e\x64\x43\x6e\x6d\x61\x52\x65\x71\x20\x70\x64\x75\x20\x74\x6f\x6f\x20\x6c\x6f\x6e\x67\x3a\x25\x73" "\n"
-,ackPduStr);memcpy(ackReq.pdu,ackPduStr,ZSMS_PDU_SIZE-(0x1485+3647-0x22c2));}
+,ackPduStr);memcpy(ackReq.pdu,ackPduStr,ZSMS_PDU_SIZE-(0xcec+5037-0x2097));}
 #endif     

 *(ackReq.pdu+strlen(ackPduStr))=ZSMS_CTRL_Z_CHAR;printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x53\x65\x6e\x64\x43\x6e\x6d\x61\x52\x65\x71\x2e\x20\x70\x64\x75\x3d\x20\x25\x73" "\n"
-,ackReq.pdu);ackReq.length=strlen(ackPduStr)/(0x474+483-0x655);}zSms_SendMsg(
+,ackReq.pdu);ackReq.length=strlen(ackPduStr)/(0xadc+3938-0x1a3c);}zSms_SendMsg(
 MSG_CMD_SMSACK_REQ,sizeof(T_zSms_SmsAckReq),&ackReq);sem_wait(&g_sms_sem_id);if(
-g_smsOptRsp.result==(0x1578+262-0x167d)){return ZSMS_RESULT_OK;}else{return 
+g_smsOptRsp.result==(0x1e3f+2026-0x2628)){return ZSMS_RESULT_OK;}else{return 
 ZSMS_RESULT_ERROR;}}int zSms_SendZmgrReq(int index){T_zSms_ReadSmsReq readSmsReq
-={(0x140f+1078-0x1845)};iSmsIndex=index;printf(
+={(0x95b+1337-0xe94)};iSmsIndex=index;printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x53\x65\x6e\x64\x5a\x6d\x67\x72\x52\x65\x71\x20\x47\x65\x74\x20\x69\x6e\x64\x65\x78\x3a\x25\x64\x2e" "\n"
 ,iSmsIndex);readSmsReq.index=index;zSms_SendMsg(MSG_CMD_READSMS_REQ,sizeof(
-T_zSms_ReadSmsReq),&readSmsReq);return(0x5c8+8102-0x256e);}VOID zSms_RecvZmgrRsp
-(UINT8*pDatabuf){T_zSms_SmsInd tCmgrRsp={(0x48d+8325-0x2512)};memcpy(&tCmgrRsp,(
-T_zSms_SmsInd*)pDatabuf,sizeof(T_zSms_SmsInd));tCmgrRsp.index=iSmsIndex;
-zUfiSms_ZmgrRespProc(&tCmgrRsp);zUfiMmi_SendSmsStatus();}VOID zSms_RecvZmgrOk(
-UINT8*pDatabuf){T_zSms_optRsp smsOptRsp={(0x796+7878-0x265c)};memcpy(&smsOptRsp,
-(T_zSms_optRsp*)pDatabuf,sizeof(T_zSms_optRsp));if(smsOptRsp.result==
-(0x1183+2194-0x1a14)){sc_cfg_set(NV_SMS_RECV_RESULT,"\x6f\x6b");}else{printf(
+T_zSms_ReadSmsReq),&readSmsReq);return(0x107a+4409-0x21b3);}VOID 
+zSms_RecvZmgrRsp(UINT8*pDatabuf){T_zSms_SmsInd tCmgrRsp={(0x4d9+7539-0x224c)};
+memcpy(&tCmgrRsp,(T_zSms_SmsInd*)pDatabuf,sizeof(T_zSms_SmsInd));tCmgrRsp.index=
+iSmsIndex;zUfiSms_ZmgrRespProc(&tCmgrRsp);zUfiMmi_SendSmsStatus();}VOID 
+zSms_RecvZmgrOk(UINT8*pDatabuf){T_zSms_optRsp smsOptRsp={(0x22cb+911-0x265a)};
+memcpy(&smsOptRsp,(T_zSms_optRsp*)pDatabuf,sizeof(T_zSms_optRsp));if(smsOptRsp.
+result==(0xcf+9541-0x2613)){sc_cfg_set(NV_SMS_RECV_RESULT,"\x6f\x6b");}else{
+printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x5a\x6d\x67\x72\x45\x72\x72\x20\x20\x53\x4d\x53\x20\x7a\x6d\x67\x72\x20\x69\x73\x20\x66\x61\x69\x6c" "\n"
 );sc_cfg_set(NV_SMS_RECV_RESULT,"\x66\x61\x69\x6c");zUfiSms_ChangeMainState(
 SMS_STATE_RECVED);}}VOID zSms_RecvZpbicInd(UINT8*pDatabuf){T_zAt_ZpbicRes*ptPara
 =ZUFI_NULL;if(pDatabuf==NULL){return;}ptPara=(T_zAt_ZpbicRes*)(pDatabuf);if((
-(0x53d+229-0x621)==ptPara->result)&&((0xd41+4582-0x1f27)==ptPara->opertype)){
-CHAR needSms[(0xce0+2151-0x1515)]={(0x134c+2318-0x1c5a)};sc_cfg_get(
-NV_NEED_SUPPORT_SMS,needSms,sizeof(needSms));if((0x1adf+2576-0x24ef)!=strcmp(
+(0x1399+4356-0x249c)==ptPara->result)&&((0x690+8239-0x26bf)==ptPara->opertype)){
+CHAR needSms[(0x1bd8+309-0x1cdb)]={(0x101a+5418-0x2544)};sc_cfg_get(
+NV_NEED_SUPPORT_SMS,needSms,sizeof(needSms));if((0x1dc3+150-0x1e59)!=strcmp(
 needSms,"\x6e\x6f")){zSvr_Zpbic_Sms_Init();}}}VOID zSms_RecvCpmsInd(UINT8*
 pDatabuf){T_zSms_CpmsInd*cpmsInd=(T_zSms_CpmsInd*)pDatabuf;CHAR strBuf[
-(0x271+405-0x3fc)]={(0x736+6241-0x1f97)};int remainSpace=(0xe2+3793-0xfb3);
+(0x8a4+1201-0xd4b)]={(0x10c7+1067-0x14f2)};int remainSpace=(0x799+1464-0xd51);
 snprintf(strBuf,sizeof(strBuf),"\x25\x64",cpmsInd->total);sc_cfg_set(
 ZTE_WMS_NVCONFIG_SIM_CARD_TOTAL,strBuf);sc_cfg_set(
-ZTE_WMS_NVCONFIG_SIM_CAPABILITY,strBuf);memset(&strBuf,(0x4e3+7060-0x2077),
-(0x1151+3773-0x2004));snprintf(strBuf,sizeof(strBuf),"\x25\x64",cpmsInd->used);
+ZTE_WMS_NVCONFIG_SIM_CAPABILITY,strBuf);memset(&strBuf,(0x939+1233-0xe0a),
+(0x1d87+1212-0x2239));snprintf(strBuf,sizeof(strBuf),"\x25\x64",cpmsInd->used);
 sc_cfg_set(ZTE_WMS_NVCONFIG_SIM_CARD_USED,strBuf);remainSpace=cpmsInd->total-
-cpmsInd->used;memset(&strBuf,(0x1d13+2082-0x2535),(0x18a1+444-0x1a53));snprintf(
+cpmsInd->used;memset(&strBuf,(0x1cd3+809-0x1ffc),(0xb1a+3432-0x1878));snprintf(
 strBuf,sizeof(strBuf),"\x25\x64",remainSpace);sc_cfg_set(
 ZTE_WMS_NVCONFIG_SIM_CARD_REMAIN,strBuf);sc_cfg_set(NV_SMS_STORE,"\x6f\x6b");}
-#define AT_CMD_MAX (0x42d+1979-0xba8)

+#define AT_CMD_MAX (0x1cc+4271-0x123b)

 #define ZAT_TAB_REPLACE                     ((unsigned char )(\
-(0x1c4+6728-0x1b10)))    

+(0x8c4+6909-0x22c5)))    

 #define ZAT_NULL_FILL                       ((unsigned char )(\
-(0x1b7+5049-0x1473)))    

-#define ZAT_SPACE_REPLACE                   ((unsigned char )((0x878+1986-0xf3c)\
-))    

+(0xc8b+1926-0x1314)))    

+#define ZAT_SPACE_REPLACE                   ((unsigned char )(\
+(0x365+9154-0x2629)))    

 #define ZAT_LF_REPLACE                      ((unsigned char )(\
-(0x3f9+5840-0x19ce)))    

+(0x16ef+3872-0x2514)))    

 #define ZAT_CR_REPLACE                      ((unsigned char )(\
-(0xc10+6126-0x2304)))    

+(0x6ff+5873-0x1cf6)))    

 static void atBase_PreProcRes(char*pParaLine,int paraSize){signed long flg=
-(0x2310+141-0x239d);unsigned long i=(0x131+5383-0x1638);unsigned long length=
-(0x98b+369-0xafc);char*pSource=pParaLine;char*pDest=NULL;char*pStrDestMalloc=(
+(0xbc+3320-0xdb4);unsigned long i=(0xc51+265-0xd5a);unsigned long length=
+(0xe09+3514-0x1bc3);char*pSource=pParaLine;char*pDest=NULL;char*pStrDestMalloc=(
 char*)malloc(AT_CMD_MAX);if(NULL==pStrDestMalloc){return;}memset(pStrDestMalloc,
-(0x2a0+474-0x47a),AT_CMD_MAX);assert(pParaLine!=NULL);pDest=pStrDestMalloc;
-length=strlen(pParaLine);if((length==(0x149+5136-0x1559))||(length>=AT_CMD_MAX))
-{free(pStrDestMalloc);return;}for(i=(0x172+1508-0x756);(i<length)&&(pDest-
-pStrDestMalloc<AT_CMD_MAX);i++){if(((char)(0x1af6+1517-0x20c1))==*pSource){flg=(
-(0x14a8+3836-0x23a4)==flg)?(0x106f+602-0x12c8):(0x1bc4+1359-0x2113);if(
-((char)(0x17ea+1109-0x1c1d))==*(pSource+(0xc68+861-0xfc4))){*pDest++=(char)
-ZAT_NULL_FILL;}}else if((((char)(0xa15+1578-0x1013))==*pSource)&&(
-(0x78a+2018-0xf6c)==flg)){*pDest++=((char)(0x1da5+642-0x2007));if(
-((char)(0x202a+1236-0x24d2))==*(pSource+(0x1cb+2578-0xbdc))){*pDest++=
-((char)(0x1a8d+2824-0x255c));}else if('\0'==*(pSource+(0x45b+4524-0x1606))){*
-pDest++=(char)ZAT_NULL_FILL;}}else{if((((char)(0x187d+150-0x18f3))==*pSource)&&(
-(0x1212+4543-0x23d0)==flg)){*pDest++=(char)ZAT_SPACE_REPLACE;}else if(('\t'==*
-pSource)&&((0x7f6+3782-0x16bb)==flg)){*pDest++=(char)ZAT_TAB_REPLACE;}else if((
-'\n'==*pSource)&&((0x4f0+1242-0x9c9)==flg)){*pDest++=(char)ZAT_LF_REPLACE;}else 
-if(('\r'==*pSource)&&((0x91+7342-0x1d3e)==flg)){*pDest++=(char)ZAT_CR_REPLACE;}
-else{*pDest++=*pSource;}}pSource++;}memset(pParaLine,(0x17f3+2666-0x225d),
-paraSize);strncpy(pParaLine,pStrDestMalloc,paraSize-(0x1993+1535-0x1f91));free(
+(0x20df+239-0x21ce),AT_CMD_MAX);assert(pParaLine!=NULL);pDest=pStrDestMalloc;
+length=strlen(pParaLine);if((length==(0x449+2974-0xfe7))||(length>=AT_CMD_MAX)){
+free(pStrDestMalloc);return;}for(i=(0x348+2043-0xb43);(i<length)&&(pDest-
+pStrDestMalloc<AT_CMD_MAX);i++){if(((char)(0x171+5010-0x14e1))==*pSource){flg=(
+(0x11+2632-0xa59)==flg)?(0x10af+3255-0x1d65):(0x66c+913-0x9fd);if(
+((char)(0x882+3459-0x15e3))==*(pSource+(0x179b+432-0x194a))){*pDest++=(char)
+ZAT_NULL_FILL;}}else if((((char)(0xa63+1879-0x118e))==*pSource)&&(
+(0xabb+4577-0x1c9c)==flg)){*pDest++=((char)(0x191b+3159-0x2552));if(
+((char)(0x79d+4393-0x189a))==*(pSource+(0x115+3348-0xe28))){*pDest++=
+((char)(0xcb+8804-0x22f6));}else if('\0'==*(pSource+(0x1678+2026-0x1e61))){*
+pDest++=(char)ZAT_NULL_FILL;}}else{if((((char)(0x1336+2858-0x1e40))==*pSource)&&
+((0x53b+7144-0x2122)==flg)){*pDest++=(char)ZAT_SPACE_REPLACE;}else if(('\t'==*
+pSource)&&((0x152b+4427-0x2675)==flg)){*pDest++=(char)ZAT_TAB_REPLACE;}else if((
+'\n'==*pSource)&&((0xd5+5613-0x16c1)==flg)){*pDest++=(char)ZAT_LF_REPLACE;}else 
+if(('\r'==*pSource)&&((0x1723+3545-0x24fb)==flg)){*pDest++=(char)ZAT_CR_REPLACE;
+}else{*pDest++=*pSource;}}pSource++;}memset(pParaLine,(0x1641+1501-0x1c1e),
+paraSize);strncpy(pParaLine,pStrDestMalloc,paraSize-(0xd48+3440-0x1ab7));free(
 pStrDestMalloc);}VOID zSms_RecvCscaInd(UINT8*pDatabuf){T_zSms_CscaInd cscaInd={
-(0x1368+1201-0x1819)};
-#if (0x1bc7+226-0x1ca8)
+(0x12b4+1333-0x17e9)};
+#if (0x1237+3018-0x1e00)
 printf(
 "\x5b\x53\x4d\x53\x63\x6f\x72\x65\x6d\x5d\x7a\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x73\x63\x61\x49\x6e\x64\x20\x64\x61\x74\x61\x62\x75\x66\x3a\x25\x73" "\n"
 ,pDatabuf);
 #endif

 atBase_PreProcRes(pDatabuf,strlen(pDatabuf));sscanf(pDatabuf,
 "\x25\x32\x31\x73\x20\x25\x32\x31\x73",cscaInd.sca,cscaInd.tosca);
-#if (0x1277+2455-0x1c0d)
+#if (0x217+766-0x514)
 printf(
 "\x5b\x53\x4d\x53\x63\x6f\x72\x65\x6d\x5d\x7a\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x73\x63\x61\x49\x6e\x64\x20\x73\x63\x61\x3a\x25\x73\x2c\x20\x74\x6f\x73\x63\x61\x25\x73" "\n"
 ,cscaInd.sca,cscaInd.tosca);
@@ -312,22 +313,22 @@
 sc_cfg_set(NV_SMS_CENTER_NUM,cscaInd.sca);zUfiSms_SetScaPara(cscaInd.sca);}VOID 
 zSms_RecvZmglInd(UINT8*pDatabuf){zUfiSms_CmglRespProc((T_zSms_SmsInd*)pDatabuf);
 }int zSms_SendSmsInitReq(VOID){zSms_SendMsg(MSG_CMD_SMSINIT_REQ,
-(0x1522+2546-0x1f14),NULL);return(0x48f+7465-0x21b8);}VOID zSms_initAtOk(VOID){
-T_zUfiSms_StatusInfo tStatus={(0x1968+218-0x1a42)};sc_cfg_set(NV_SMS_STORE,
+(0x1d22+501-0x1f17),NULL);return(0xe2a+4445-0x1f87);}VOID zSms_initAtOk(VOID){
+T_zUfiSms_StatusInfo tStatus={(0x182b+3745-0x26cc)};sc_cfg_set(NV_SMS_STORE,
 "\x6f\x6b");sc_cfg_set(NV_SMS_LOAD_RESULT,"\x6f\x6b");tStatus.cmd_status=
 WMS_CMD_SUCCESS;tStatus.cmd=WMS_SMS_CMD_INIT;(void)zUfiSms_SetCmdStatus(&tStatus
 );zUfiSms_ChangeMainState(SMS_STATE_LOADED);}VOID zSms_initAtErr(VOID){
-T_zUfiSms_StatusInfo tStatus={(0x1465+539-0x1680)};sc_cfg_set(NV_SMS_LOAD_RESULT
+T_zUfiSms_StatusInfo tStatus={(0x23fb+393-0x2584)};sc_cfg_set(NV_SMS_LOAD_RESULT
 ,"\x66\x61\x69\x6c");zUfiSms_ChangeMainState(SMS_STATE_LOADED);tStatus.
 cmd_status=WMS_CMD_FAILED;tStatus.cmd=WMS_SMS_CMD_INIT;(void)
 zUfiSms_SetCmdStatus(&tStatus);}VOID zSms_RecvSmsInitRst(UINT8*pDatabuf){memcpy(
 &g_smsOptRsp,pDatabuf,sizeof(T_zSms_optRsp));if(g_smsOptRsp.result==
-(0x1830+3464-0x25b7)){zSms_initAtOk();}else{zSms_initAtErr();}}UINT8 
+(0x208+5715-0x185a)){zSms_initAtOk();}else{zSms_initAtErr();}}UINT8 
 zSms_SmsMsgCreat(VOID){g_zSms_MsqId=msgget(MODULE_ID_SMS,IPC_CREAT|
-(0x8a7+3090-0x1339));if(g_zSms_MsqId==-(0x2f7+1497-0x8cf)){return ZUFI_FAIL;}
-g_zSms_LocalMsqId=msgget(MODULE_ID_SMS_LOCAL,IPC_CREAT|(0x6ea+6763-0x1fd5));if(
-g_zSms_LocalMsqId==-(0xd28+2661-0x178c)){return ZUFI_FAIL;}sem_init(&
-g_sms_sem_id,(0x104+9111-0x249b),(0xa1f+5172-0x1e53));return ZUFI_SUCC;}void 
+(0x147a+4219-0x2375));if(g_zSms_MsqId==-(0x1bb8+2859-0x26e2)){return ZUFI_FAIL;}
+g_zSms_LocalMsqId=msgget(MODULE_ID_SMS_LOCAL,IPC_CREAT|(0x116c+3052-0x1bd8));if(
+g_zSms_LocalMsqId==-(0x6d6+1181-0xb72)){return ZUFI_FAIL;}sem_init(&g_sms_sem_id
+,(0x10a6+4900-0x23ca),(0x1c2c+127-0x1cab));return ZUFI_SUCC;}void 
 zSms_HandleAtctlLocalMsg(MSG_BUF*ptMsgBuf){assert(ptMsgBuf!=NULL);printf(
 "\x73\x6d\x73\x20\x6c\x6f\x63\x61\x6c\x20\x72\x65\x63\x76\x20\x6d\x73\x67\x20\x63\x6d\x64\x3a\x25\x64" "\n"
 ,ptMsgBuf->usMsgCmd);switch(ptMsgBuf->usMsgCmd){case MSG_CMD_ZPBIC_IND:
@@ -351,43 +352,44 @@
 case MSG_CMD_NEWSMS_IND:case MSG_CMD_ZPBIC_IND:case MSG_CMD_ZMGL_IND:case 
 MSG_CMD_NEWSMS_STATUS_IND:ipc_send_message(MODULE_ID_SMS,MODULE_ID_SMS_LOCAL,
 ptMsgBuf->usMsgCmd,ptMsgBuf->usDataLen,(unsigned char*)ptMsgBuf->aucDataBuf,
-(0xb75+5516-0x2101));break;default:break;}}VOID zSms_HandleResetToFactory(){CHAR
- clearSms[(0x1735+3665-0x2554)]={(0x344+7120-0x1f14)};sc_cfg_get(
+(0x820+2066-0x1032));break;default:break;}}VOID zSms_HandleResetToFactory(){CHAR
+ clearSms[(0x1085+981-0x1428)]={(0x73c+8014-0x268a)};sc_cfg_get(
 NV_CLEAR_SMS_WHEN_RESTORE,clearSms,sizeof(clearSms));printf(
 "\x61\x74\x57\x65\x62\x5f\x52\x65\x73\x74\x6f\x72\x65\x46\x61\x63\x74\x6f\x72\x79\x53\x65\x74\x74\x69\x6e\x67\x20\x65\x6e\x74\x65\x72\x65\x64\x21\x20" "\n"
 );printf(
 "\x63\x6c\x65\x61\x72\x5f\x73\x6d\x73\x5f\x77\x68\x65\x6e\x5f\x72\x65\x73\x74\x6f\x72\x65\x3d\x25\x73\x20" "\n"
-,clearSms);if(strcmp(clearSms,"\x79\x65\x73")==(0xd62+959-0x1121)){printf(
+,clearSms);if(strcmp(clearSms,"\x79\x65\x73")==(0x1db0+525-0x1fbd)){printf(
 "\x7a\x55\x66\x69\x53\x6d\x73\x5f\x44\x72\x6f\x70\x41\x6c\x6c\x54\x61\x62\x6c\x65\x20\x65\x6e\x74\x65\x72\x65\x64\x21\x20" "\n"
 );zUfiSms_DropAllTable();}else{printf(
 "\x7a\x55\x66\x69\x53\x6d\x73\x5f\x44\x72\x6f\x70\x41\x6c\x6c\x54\x61\x62\x6c\x65\x45\x78\x63\x65\x70\x74\x53\x6d\x73\x20\x65\x6e\x74\x65\x72\x65\x64\x21\x20" "\n"
 );zUfiSms_DropAllTableExceptSms();}ipc_send_message(MODULE_ID_SMS,
-MODULE_ID_MAIN_CTRL,MSG_CMD_RESET_RSP,(0x248b+143-0x251a),NULL,(0xe5+525-0x2f2))
-;}void zSms_HandleMainCtrlMsg(MSG_BUF*ptMsgBuf){assert(ptMsgBuf!=NULL);printf(
+MODULE_ID_MAIN_CTRL,MSG_CMD_RESET_RSP,(0x15bb+1681-0x1c4c),NULL,
+(0x50f+7918-0x23fd));}void zSms_HandleMainCtrlMsg(MSG_BUF*ptMsgBuf){assert(
+ptMsgBuf!=NULL);printf(
 "\x73\x6d\x73\x20\x72\x65\x63\x76\x20\x6d\x61\x69\x6e\x20\x63\x74\x72\x6c\x20\x6d\x73\x67\x20\x63\x6d\x64\x3a\x25\x64" "\n"
 ,ptMsgBuf->usMsgCmd);switch(ptMsgBuf->usMsgCmd){case MSG_CMD_RESET_NOTIFY:
 zSms_HandleResetToFactory(ptMsgBuf->aucDataBuf);break;default:break;}}void 
-sms_msg_thread_proc(void*arg){int iRet=(0x787+5142-0x1b9d);MSG_BUF stMsg={
-(0xab7+6413-0x23c4)};int msgSize=sizeof(MSG_BUF)-sizeof(long);int queueId=*((int
-*)arg);prctl(PR_SET_NAME,"\x73\x6d\x73\x5f\x6c\x6f\x63\x61\x6c",
-(0x9cc+3475-0x175f),(0x1529+4007-0x24d0),(0xa57+4052-0x1a2b));while(
-(0xcf4+1083-0x112e)){iRet=(0xc97+3262-0x1955);memset(&stMsg,(0x1187+5205-0x25dc)
-,sizeof(MSG_BUF));iRet=msgrcv(queueId,&stMsg,msgSize,(0xf23+2928-0x1a93),
-(0x383+4090-0x137d));if(iRet>=(0x753+1942-0xee9)){switch(stMsg.src_id){case 
-MODULE_ID_WEB_CGI:{zSms_HandleWebMsg(&stMsg);break;}case MODULE_ID_AT_CTL:{
-zSms_HandleAtctlMsg(&stMsg);break;}case MODULE_ID_SMS:{zSms_HandleWebMsg(&stMsg)
-;zSms_HandleAtctlLocalMsg(&stMsg);break;}case MODULE_ID_MAIN_CTRL:{
+sms_msg_thread_proc(void*arg){int iRet=(0x76c+321-0x8ad);MSG_BUF stMsg={
+(0x2497+43-0x24c2)};int msgSize=sizeof(MSG_BUF)-sizeof(long);int queueId=*((int*
+)arg);prctl(PR_SET_NAME,"\x73\x6d\x73\x5f\x6c\x6f\x63\x61\x6c",(0x8cc+126-0x94a)
+,(0x697+8151-0x266e),(0x1ac8+2666-0x2532));while((0xfb0+4668-0x21eb)){iRet=
+(0xd4b+5224-0x21b3);memset(&stMsg,(0x4f4+3010-0x10b6),sizeof(MSG_BUF));iRet=
+msgrcv(queueId,&stMsg,msgSize,(0xdf+1385-0x648),(0xeac+1288-0x13b4));if(iRet>=
+(0xfa1+4118-0x1fb7)){switch(stMsg.src_id){case MODULE_ID_WEB_CGI:{
+zSms_HandleWebMsg(&stMsg);break;}case MODULE_ID_AT_CTL:{zSms_HandleAtctlMsg(&
+stMsg);break;}case MODULE_ID_SMS:{zSms_HandleWebMsg(&stMsg);
+zSms_HandleAtctlLocalMsg(&stMsg);break;}case MODULE_ID_MAIN_CTRL:{
 zSms_HandleMainCtrlMsg(&stMsg);break;}default:{break;}}}else{at_print(AT_DEBUG,
 "\x65\x72\x72\x6e\x6f\x20\x3d\x20\x25\x64\x2c\x20\x65\x72\x72\x6d\x73\x67\x20\x3d\x20\x25\x73" "\n"
 ,errno,strerror(errno));}}}int sms_main(int argc,char*argv[]){pthread_t 
-recv_thread_tid=(0x2e1+4893-0x15fe);MSG_BUF msgBuf={(0x815+4647-0x1a3c)};CHAR 
-needSMS[(0x1ca8+1587-0x22a9)]={(0x1d8d+1563-0x23a8)};prctl(PR_SET_NAME,
-"\x73\x6d\x73\x5f\x6d\x61\x69\x6e",(0x348+818-0x67a),(0x1245+1748-0x1919),
-(0x1b3d+2000-0x230d));loglevel_init();sc_cfg_get(NV_NEED_SUPPORT_SMS,needSMS,
-sizeof(needSMS));if((0x3fb+4564-0x15cf)!=strcmp(needSMS,"\x6e\x6f")){
+recv_thread_tid=(0xa75+1154-0xef7);MSG_BUF msgBuf={(0x52+5063-0x1419)};CHAR 
+needSMS[(0x893+7802-0x26db)]={(0x5f8+3831-0x14ef)};prctl(PR_SET_NAME,
+"\x73\x6d\x73\x5f\x6d\x61\x69\x6e",(0x608+6753-0x2069),(0x469+474-0x643),
+(0xa3b+1418-0xfc5));loglevel_init();sc_cfg_get(NV_NEED_SUPPORT_SMS,needSMS,
+sizeof(needSMS));if((0xd78+5689-0x23b1)!=strcmp(needSMS,"\x6e\x6f")){
 zUfiSms_InitDb();zUfiSms_CfgSmsNvInit();zUfiMmi_SendSmsStatus();zSms_SmsMsgCreat
-();}else{return-(0x1268+4265-0x2310);}printf(
+();}else{return-(0x9e8+5377-0x1ee8);}printf(
 "\x73\x6d\x73\x20\x61\x70\x70\x20\x69\x6e\x69\x74\x20\x66\x69\x6e\x69\x73\x68\x65\x64\x2c\x20\x77\x69\x6c\x6c\x20\x74\x6f\x20\x72\x65\x63\x65\x69\x76\x65\x20\x6d\x73\x67\x2c\x20\x6d\x73\x67\x69\x64\x3a\x25\x64" "\n"
 ,g_zSms_MsqId);if(pthread_create(&recv_thread_tid,NULL,sms_msg_thread_proc,(void
-*)(&g_zSms_LocalMsqId))==-(0xc08+3513-0x19c0)){assert((0x632+6875-0x210d));}
-sms_msg_thread_proc(&g_zSms_MsqId);return(0x3ad+6330-0x1c67);}
+*)(&g_zSms_LocalMsqId))==-(0x1e18+992-0x21f7)){assert((0x18d4+36-0x18f8));}
+sms_msg_thread_proc(&g_zSms_MsqId);return(0x573+7697-0x2384);}
diff --git a/ap/app/zte_comm/sms/src/sms_proc.c b/ap/app/zte_comm/sms/src/sms_proc.c
index 1ac018a..c9acbb6 100755
--- a/ap/app/zte_comm/sms/src/sms_proc.c
+++ b/ap/app/zte_comm/sms/src/sms_proc.c
@@ -5,115 +5,115 @@
 T_zUfiSms_ConcatInfo g_zUfiSms_ConcatSms;T_zUfiSms_GroupInfo g_zUfiSms_GroupSms;
 T_zUfiSms_DbStoreData g_zUfiSms_DbStoreData[ZTE_WMS_CONCAT_SMS_COUNT_MAX];UINT8 
 g_zUfiSms_MemFullFlag[ZTE_WMS_MEMORY_MAX]={FALSE,FALSE};T_zUfiSms_DelSms 
-g_zUfiSms_DelMsg;T_zUfiSms_DelIndexInfo g_deleteIndex={(0x6b6+6149-0x1ebb)};
-T_zUfiSms_ModifySms g_zUfiSms_modifyMsg={(0x29b+6547-0x1c2e)};
-T_zUfiSms_ModifyIndexInfo g_modifyIndex={(0x77b+7607-0x2532)};int 
-g_zUfiSms_UnitLen=(0x13d3+4772-0x2677);int g_zUfiSms_ConcatTotalNum=
-(0x809+441-0x9c2);int g_zUfiSms_CurConcatSegNo=(0x1487+2984-0x202f);UINT8 
-g_zUfiSms_IsConcatSendSuc=TRUE;int g_zUfiSms_SendFailedCount=(0xd56+1243-0x1231)
-;int g_zUfiSms_MsgRefer=(0x1374+4768-0x2614);int g_zUfiSms_SendFailedRetry=
-(0xc3b+6081-0x23fc);char g_Zmena_value[(0x19b4+1834-0x20dc)]={
-(0x824+5684-0x1e58)};int g_displaymode=(0x283+5059-0x1646);extern SMS_LOCATION 
-g_zUfiSms_CurLocation;extern T_zUfiSms_CmdStatus zUfiSms_HandleReport(unsigned 
-char*ptPduData);extern void zUfiSms_GetReportStatus(char*pdu_tmp,int*stat);
-extern VOID zUfiSms_ResendAtCmdZmena(int cid);extern int zUfiSms_DecodeSmsData(
+g_zUfiSms_DelMsg;T_zUfiSms_DelIndexInfo g_deleteIndex={(0x12a6+1942-0x1a3c)};
+T_zUfiSms_ModifySms g_zUfiSms_modifyMsg={(0xf92+1909-0x1707)};
+T_zUfiSms_ModifyIndexInfo g_modifyIndex={(0x3b3+7000-0x1f0b)};int 
+g_zUfiSms_UnitLen=(0x72a+6246-0x1f90);int g_zUfiSms_ConcatTotalNum=
+(0x1297+3010-0x1e59);int g_zUfiSms_CurConcatSegNo=(0xbc1+3781-0x1a86);UINT8 
+g_zUfiSms_IsConcatSendSuc=TRUE;int g_zUfiSms_SendFailedCount=(0x81d+6024-0x1fa5)
+;int g_zUfiSms_MsgRefer=(0xfa1+5966-0x26ef);int g_zUfiSms_SendFailedRetry=
+(0x33a+7168-0x1f3a);char g_Zmena_value[(0x5a2+1198-0xa4e)]={(0xd02+457-0xecb)};
+int g_displaymode=(0x1780+2415-0x20ef);extern SMS_LOCATION g_zUfiSms_CurLocation
+;extern T_zUfiSms_CmdStatus zUfiSms_HandleReport(unsigned char*ptPduData);extern
+ void zUfiSms_GetReportStatus(char*pdu_tmp,int*stat);extern VOID 
+zUfiSms_ResendAtCmdZmena(int cid);extern int zUfiSms_DecodeSmsData(
 T_zUfiSms_DbStoreData*pDb_Data,int msg_index,zUfiSms_StoreType iStorePos,
 T_SmsStatus bSms_Status,wms_message_format_enum_v01 format,long iPdu_Len,
 unsigned char*pPdu_Received);typedef struct{long mtype;char mtext[
-(0x151b+97-0x1570)];}FOTA_MSG_BUF;
-#define WEBUI_NOTIFY_PUSH_MSG_  (0x241+5942-0x1974)

+(0x498+6833-0x1f3d)];}FOTA_MSG_BUF;
+#define WEBUI_NOTIFY_PUSH_MSG_  (0x92+1087-0x4ce)

 typedef struct{unsigned int isread_record;unsigned int inbox_full;}
 T_zUfiMmi_SmsRecord;void zUfiMmi_SendSmsStatus(void){int iSmsNum=
-(0x1d96+1218-0x2258);T_zUfiMmi_SmsRecord tRecord={(0x76a+5590-0x1d40)};CHAR 
-smsNum[(0x98+86-0xbc)]={(0x19d+65-0x1de)};sc_cfg_get(NV_SMS_IN_NUM,smsNum,sizeof
-(smsNum));iSmsNum=atoi(smsNum);tRecord.isread_record=zUfiSms_IsUnreadSms(
+(0x94+674-0x336);T_zUfiMmi_SmsRecord tRecord={(0x776+267-0x881)};CHAR smsNum[
+(0xcea+2253-0x1585)]={(0x29c+7457-0x1fbd)};sc_cfg_get(NV_SMS_IN_NUM,smsNum,
+sizeof(smsNum));iSmsNum=atoi(smsNum);tRecord.isread_record=zUfiSms_IsUnreadSms(
 ZTE_WMS_MEMORY_MAX);if(iSmsNum>=ZSMS_NUM_MAX_CPE){tRecord.inbox_full=
-(0x151c+4249-0x25b4);}else{tRecord.inbox_full=(0x939+3522-0x16fb);}}VOID 
+(0xa76+6410-0x237f);}else{tRecord.inbox_full=(0x67b+6642-0x206d);}}VOID 
 zUfiSms_Init(VOID){zUfiSms_CfgInit();zUfiSms_ChangeMainState(SMS_STATE_INITING);
-}VOID zSvr_Zpbic_Sms_Init(VOID){int atRes=(0x14ba+1333-0x19ef);
-T_zUfiSms_StatusInfo tStatus={(0x1118+490-0x1302)};CHAR outDate[
-(0x922+2729-0x1399)]={(0xe3d+654-0x10cb)};zUfiSms_Init();zUfiSms_InitCmdStatus(&
-tStatus,WMS_SMS_CMD_INIT);zSms_SendSmsInitReq();at_print(LOG_DEBUG,
+}VOID zSvr_Zpbic_Sms_Init(VOID){int atRes=(0x16b+1407-0x6ea);
+T_zUfiSms_StatusInfo tStatus={(0x12d9+3507-0x208c)};CHAR outDate[
+(0x374+3465-0x10cb)]={(0x18a1+2125-0x20ee)};zUfiSms_Init();zUfiSms_InitCmdStatus
+(&tStatus,WMS_SMS_CMD_INIT);zSms_SendSmsInitReq();at_print(LOG_DEBUG,
 "corem zSvr_Zpbic_Sms_Init has send init req\n");zSms_SendZmenaReq(
-(0x56a+3862-0x1480));at_print(LOG_DEBUG,
+(0x700+1345-0xc41));at_print(LOG_DEBUG,
 "\x63\x6f\x72\x65\x6d\x20\x7a\x53\x76\x72\x5f\x5a\x70\x62\x69\x63\x5f\x53\x6d\x73\x5f\x49\x6e\x69\x74\x20\x68\x61\x73\x20\x73\x65\x6e\x64\x20\x7a\x6d\x65\x6e\x61\x20\x72\x65\x71" "\n"
 );sc_cfg_get(NV_OUTDATE_DELETE,outDate,sizeof(outDate));at_print(LOG_DEBUG,
 "\x63\x6f\x72\x65\x6d\x20\x7a\x53\x76\x72\x5f\x5a\x70\x62\x69\x63\x5f\x53\x6d\x73\x5f\x49\x6e\x69\x74\x20\x6f\x75\x74\x64\x61\x74\x65\x20\x63\x68\x65\x63\x6b\x20\x25\x73" "\n"
-,outDate);if((0x3b1+8640-0x2571)==strcmp(outDate,"\x31")){atWeb_OutdateSmsCheck(
+,outDate);if((0x4e5+23-0x4fc)==strcmp(outDate,"\x31")){atWeb_OutdateSmsCheck(
 ZUFI_NULL);}}VOID zUfiSms_DeleteAllSimSms(VOID){zUfiSms_DeleteAllSimSmsInDb();}
-#if (0x620+1308-0xb3c)

-VOID zUfiSms_ResendAtCmdZmena(int cid){CHAR netType[(0x66a+5411-0x1b5b)]={
-(0x417+2697-0xea0)};sc_cfg_get(NV_NETWORK_TYPE,netType,sizeof(netType));if(!
-g_Zmena_rsp&&((0xda5+5066-0x216f)!=strcmp(
-"\x4e\x6f\x20\x53\x65\x72\x76\x69\x63\x65",netType)&&(0x141+4993-0x14c2)!=strcmp
+#if (0xb6a+2533-0x154f)

+VOID zUfiSms_ResendAtCmdZmena(int cid){CHAR netType[(0x2088+702-0x2314)]={
+(0x4bf+5083-0x189a)};sc_cfg_get(NV_NETWORK_TYPE,netType,sizeof(netType));if(!
+g_Zmena_rsp&&((0xdd8+2190-0x1666)!=strcmp(
+"\x4e\x6f\x20\x53\x65\x72\x76\x69\x63\x65",netType)&&(0x11c1+712-0x1489)!=strcmp
 ("\x4c\x69\x6d\x69\x74\x65\x64\x20\x53\x65\x72\x76\x69\x63\x65",netType))){
 atUnsoli_Report_Zmena(NULL,cid);}}
 #endif

 void zUfiSms_Ack_new_msg(BOOL needAck){
-#if (0x2b+8681-0x2214)

-CHAR ackPduStr[(0xbaf+3462-0x17a5)]={(0x359+9081-0x26d2)};SMS_PARAM reportParam=
-{(0xb59+650-0xde3)};int total_length=(0x612+3971-0x1595);UINT8 TP_FCS=
-(0x1be7+844-0x1f33);CHAR strValue[(0x109f+857-0x13f6)]={(0x1adc+2077-0x22f9)};if
-(needAck){TP_FCS=(0xba3+211-0xc76);sprintf(strValue,"\x25\x64",
-(0xa8+7928-0x1f9f));}else{TP_FCS=(0xd9+7888-0x1ed6);sprintf(strValue,"\x25\x64",
-(0xaeb+3090-0x16fb));}sprintf(reportParam.SCA,"\x25\x73",cfg_get(
+#if (0x2ba+6601-0x1c83)

+CHAR ackPduStr[(0x1cb2+1827-0x2245)]={(0x49+1221-0x50e)};SMS_PARAM reportParam={
+(0xb6d+501-0xd62)};int total_length=(0x557+2707-0xfea);UINT8 TP_FCS=
+(0xda4+6498-0x2706);CHAR strValue[(0x1740+1498-0x1d18)]={(0x532+1572-0xb56)};if(
+needAck){TP_FCS=(0xb29+3563-0x1914);sprintf(strValue,"\x25\x64",
+(0x16a9+3685-0x250d));}else{TP_FCS=(0xfa9+2174-0x1754);sprintf(strValue,
+"\x25\x64",(0x118d+995-0x156e));}sprintf(reportParam.SCA,"\x25\x73",cfg_get(
 "\x73\x6d\x73\x5f\x63\x65\x6e\x74\x65\x72\x5f\x6e\x75\x6d"));total_length=
 zUfiSms_EncodePdu_DeliverReport(&reportParam,ackPduStr,TP_FCS);memset(&
-g_zUfiSms_ackPdu,(0x93d+6424-0x2255),sizeof(g_zUfiSms_ackPdu));g_zUfiSms_ackPdu.
+g_zUfiSms_ackPdu,(0x5df+8061-0x255c),sizeof(g_zUfiSms_ackPdu));g_zUfiSms_ackPdu.
 length=String2Bytes(ackPduStr,g_zUfiSms_ackPdu.pdu,strlen(ackPduStr));memset(
-g_zUfiSms_ackPdu.pdu,(0x823+4194-0x1885),sizeof(g_zUfiSms_ackPdu.pdu));memcpy(&
+g_zUfiSms_ackPdu.pdu,(0x22ba+348-0x2416),sizeof(g_zUfiSms_ackPdu.pdu));memcpy(&
 g_zUfiSms_ackPdu.pdu,&ackPduStr,sizeof(ackPduStr));atBase_SendMsgToSelf(
 ZAT_CNMA_CMD,strValue,sizeof(strValue));
 #endif

-#if (0x9e6+4431-0x1b35)
-CHAR strValue[(0x2545+340-0x2697)]={(0x94f+4850-0x1c41)};if(needAck){snprintf(
-strValue,sizeof(strValue),"\x25\x64",(0xafd+5649-0x210d));}else{snprintf(
-strValue,sizeof(strValue),"\x25\x64",(0x4fc+3463-0x1281));}zSvr_InnerSendMsg(
+#if (0x3d3+290-0x4f5)
+CHAR strValue[(0x1eef+828-0x2229)]={(0x38f+7218-0x1fc1)};if(needAck){snprintf(
+strValue,sizeof(strValue),"\x25\x64",(0x103+6332-0x19be));}else{snprintf(
+strValue,sizeof(strValue),"\x25\x64",(0xfa4+2455-0x1939));}zSvr_InnerSendMsg(
 ZUFI_MODULE_ID_AT_LOCAL,ZUFI_MODULE_ID_AT_UNSOLI,MSG_CMD_AT_CNMA,strlen(strValue
 ),strValue);
 #endif

-if(needAck){zSms_SendCnmaReq((0x1372+959-0x1730));}else{zSms_SendCnmaReq(
-(0x2226+157-0x22c1));}}T_zUfiSms_CmdStatus zUfiSms_SendRawSms(T_zUfiSms_SendReq*
-ptSendMsg){if(NULL==ptSendMsg||(0x9ac+4705-0x1c0d)==ptSendMsg->receiver_count){
+if(needAck){zSms_SendCnmaReq((0x84f+7621-0x2613));}else{zSms_SendCnmaReq(
+(0xe67+815-0x1194));}}T_zUfiSms_CmdStatus zUfiSms_SendRawSms(T_zUfiSms_SendReq*
+ptSendMsg){if(NULL==ptSendMsg||(0x1023+773-0x1328)==ptSendMsg->receiver_count){
 return WMS_CMD_FAILED;}at_print(LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x53\x65\x6e\x64\x52\x61\x77\x53\x6d\x73\x20\x72\x65\x63\x65\x69\x76\x65\x72\x5f\x63\x6f\x75\x6e\x74\x3a\x25\x64\x2f\x64\x65\x73\x74\x5f\x6e\x75\x6d\x3a\x25\x73\x2f\x6d\x73\x67\x5f\x6c\x65\x6e\x3a\x25\x64\x2f\x69\x64\x3a\x25\x64\x2e" "\n"
-,ptSendMsg->receiver_count,ptSendMsg->dest_num[(0x1f02+1909-0x2677)],ptSendMsg->
+,ptSendMsg->receiver_count,ptSendMsg->dest_num[(0xa2c+3256-0x16e4)],ptSendMsg->
 msg_len,ptSendMsg->id);
-#if (0x1174+2957-0x1d00)
+#if (0x14a2+45-0x14ce)
 at_print(LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x53\x65\x6e\x64\x52\x61\x77\x53\x6d\x73\x20\x64\x63\x73\x3a\x25\x64" "\n"
 ,ptSendMsg->dcs);
 #endif

-sc_cfg_set(NV_SMS_SEND_RESULT,"");g_zUfiSms_SendFailedCount=(0xdca+1354-0x1314);
-if(ptSendMsg->isDelete==TRUE||-(0x80c+2909-0x1368)!=ptSendMsg->id){(void)
+sc_cfg_set(NV_SMS_SEND_RESULT,"");g_zUfiSms_SendFailedCount=(0x7f9+1255-0xce0);
+if(ptSendMsg->isDelete==TRUE||-(0x9d8+6802-0x2469)!=ptSendMsg->id){(void)
 zUfiSms_DeleteDraftSms(ptSendMsg->id);}zUfiSms_SetGlobalDcsLang(ptSendMsg->dcs);
-memset(&g_zUfiSms_GroupSms,(0x18d0+2657-0x2331),sizeof(g_zUfiSms_GroupSms));if(
+memset(&g_zUfiSms_GroupSms,(0x1043+4223-0x20c2),sizeof(g_zUfiSms_GroupSms));if(
 ZUFI_FAIL==zUfiSms_FillGroupSms(ptSendMsg,&g_zUfiSms_GroupSms)){return 
-WMS_CMD_FAILED;}memset(&g_zUfiSms_ConcatSms,(0x4dd+2729-0xf86),sizeof(
+WMS_CMD_FAILED;}memset(&g_zUfiSms_ConcatSms,(0x1a8a+858-0x1de4),sizeof(
 g_zUfiSms_ConcatSms));g_zUfiSms_UnitLen=zUfiSms_FillConcatSms(ptSendMsg,&
 g_zUfiSms_ConcatSms);g_zUfiSms_IsConcatSendSuc=TRUE;g_zUfiSms_CurConcatSegNo=
-(0x1143+4351-0x2242);memset(g_zUfiSms_DbStoreData,(0x1e9a+1245-0x2377),sizeof(
-g_zUfiSms_DbStoreData));if(ptSendMsg->mem_store==(0x10ac+4551-0x2269)){
-g_displaymode=(0xed2+6020-0x2655);at_print(LOG_DEBUG,
+(0x1122+146-0x11b4);memset(g_zUfiSms_DbStoreData,(0xdfb+2331-0x1716),sizeof(
+g_zUfiSms_DbStoreData));if(ptSendMsg->mem_store==(0x1c2c+2554-0x261c)){
+g_displaymode=(0x9f3+7452-0x270e);at_print(LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x5b\x74\x72\x61\x66\x66\x69\x63\x5d\x7a\x55\x66\x69\x53\x6d\x73\x5f\x53\x65\x6e\x64\x53\x6d\x73\x3a\x20\x6d\x73\x67\x5f\x64\x69\x73\x70\x6c\x61\x79\x6d\x6f\x64\x65\x20\x3d\x20\x31" "\n"
-);}else{g_displaymode=(0x1fc2+1428-0x2556);at_print(LOG_DEBUG,
+);}else{g_displaymode=(0x1646+3267-0x2309);at_print(LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x5b\x74\x72\x61\x66\x66\x69\x63\x5d\x7a\x55\x66\x69\x53\x6d\x73\x5f\x53\x65\x6e\x64\x53\x6d\x73\x3a\x20\x6d\x73\x67\x5f\x64\x69\x73\x70\x6c\x61\x79\x6d\x6f\x64\x65\x20\x3d\x20\x30" "\n"
 );}return zUfiSms_SendSms();}T_zUfiSms_CmdStatus zUfiSms_WriteRawSms(
 T_zUfiSms_SaveReq*pSaveBuff){T_zUfiSms_ConcatInfo tConcatSms;T_zUfiSms_GroupInfo
- tGroupSms;int iSmsLen=(0x3bc+3868-0x12d8);T_zUfiSms_CmdStatus result=
+ tGroupSms;int iSmsLen=(0x1d7+2768-0xca7);T_zUfiSms_CmdStatus result=
 WMS_CMD_SUCCESS;if(NULL==pSaveBuff){return WMS_CMD_FAILED;}if(
 g_zUfiSms_MemFullFlag[ZTE_WMS_MEMORY_NV]){at_print(LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x57\x72\x69\x74\x65\x52\x61\x77\x53\x6d\x73\x20\x6e\x76\x20\x6d\x65\x6d\x6f\x72\x79\x20\x69\x73\x20\x66\x75\x6c\x6c\x2c\x72\x65\x74\x75\x72\x6e" "\n"
 );return WMS_CMD_FAILED;}if(pSaveBuff->isDelete==TRUE){(void)
 zUfiSms_DeleteDraftSms(pSaveBuff->id);}zUfiSms_SetGlobalDcsLang(pSaveBuff->dcs);
-memset(&tConcatSms,(0x4c6+8489-0x25ef),sizeof(T_zUfiSms_ConcatInfo));memset(&
-tGroupSms,(0xec3+720-0x1193),sizeof(T_zUfiSms_GroupInfo));(void)
+memset(&tConcatSms,(0x2267+624-0x24d7),sizeof(T_zUfiSms_ConcatInfo));memset(&
+tGroupSms,(0x149d+3936-0x23fd),sizeof(T_zUfiSms_GroupInfo));(void)
 zUfiSms_FillGroupSms(pSaveBuff,&tGroupSms);iSmsLen=zUfiSms_FillConcatSms(
 pSaveBuff,&tConcatSms);at_print(LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x57\x72\x69\x74\x65\x52\x61\x77\x53\x6d\x73\x20\x74\x6f\x74\x61\x6c\x5f\x72\x65\x63\x65\x69\x76\x65\x72\x3d\x25\x64\x2c\x69\x53\x6d\x73\x4c\x65\x6e\x3d\x25\x64" "\n"
 ,tGroupSms.total_receiver,iSmsLen);for(tGroupSms.current_receiver=
-(0x94b+7451-0x2666);tGroupSms.current_receiver<tGroupSms.total_receiver;
-tGroupSms.current_receiver++){tConcatSms.current_sending=(0x13f0+3519-0x21af);
+(0xe1d+2778-0x18f7);tGroupSms.current_receiver<tGroupSms.total_receiver;
+tGroupSms.current_receiver++){tConcatSms.current_sending=(0x15b5+929-0x1956);
 result=zUfiSms_SaveSmsToDb(pSaveBuff,&tConcatSms,&tGroupSms,iSmsLen);at_print(
 LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x57\x72\x69\x74\x65\x52\x61\x77\x53\x6d\x73\x20\x63\x75\x72\x72\x65\x6e\x74\x5f\x72\x65\x63\x65\x69\x76\x65\x72\x3d\x25\x64\x2c\x72\x65\x73\x75\x6c\x74\x3d\x25\x64" "\n"
@@ -127,16 +127,16 @@
 memoryFullbeforeDelete=FALSE;BOOL unreadBeforeDelete=FALSE;if(NULL==ptDelBuff){
 return WMS_CMD_FAILED;}at_print(LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x20\x21\x21\x21\x21\x21\x7a\x55\x66\x69\x53\x6d\x73\x5f\x44\x65\x6c\x65\x74\x65\x53\x6d\x73\x21\x21\x63\x6f\x75\x6e\x74\x3a\x25\x64\x2f\x69\x64\x5b\x25\x64\x5d\x2e" "\n"
-,ptDelBuff->all_or_count,ptDelBuff->id[(0xa1b+72-0xa63)]);(void)
+,ptDelBuff->all_or_count,ptDelBuff->id[(0xead+6174-0x26cb)]);(void)
 zUfiSms_CheckMemoryFull(ZTE_WMS_MEMORY_NV);zUfiSms_ChangeMainState(
-SMS_STATE_DELING);memset(&g_zUfiSms_DelMsg,(0x9d2+7371-0x269d),sizeof(
+SMS_STATE_DELING);memset(&g_zUfiSms_DelMsg,(0xd60+3679-0x1bbf),sizeof(
 T_zUfiSms_DelSms));if(ZUFI_FAIL==zUfiSms_SetDeleteInfo(ptDelBuff)){at_print(
 LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x20\x21\x21\x21\x7a\x55\x66\x69\x53\x6d\x73\x5f\x53\x65\x74\x44\x65\x6c\x65\x74\x65\x49\x6e\x66\x6f\x20\x66\x61\x69\x6c\x2e" "\n"
 );zUfiSms_ChangeMainState(SMS_STATE_DELED);return WMS_CMD_FAILED;}at_print(
 LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x20\x21\x21\x21\x7a\x55\x66\x69\x53\x6d\x73\x5f\x53\x65\x74\x44\x65\x6c\x65\x74\x65\x49\x6e\x66\x6f\x20\x52\x65\x61\x64\x20\x74\x6f\x20\x44\x65\x6c\x65\x74\x65\x3a\x6e\x76\x5f\x63\x6f\x75\x6e\x74\x3a\x25\x64\x2f\x73\x69\x6d\x5f\x63\x6f\x75\x6e\x74\x3a\x25\x64\x2e" "\n"
-,g_zUfiSms_DelMsg.nv_count,g_zUfiSms_DelMsg.sim_count);if((0x668+2609-0x1099)<
+,g_zUfiSms_DelMsg.nv_count,g_zUfiSms_DelMsg.sim_count);if((0x222c+998-0x2612)<
 g_zUfiSms_DelMsg.nv_count){if(g_zUfiSms_MemFullFlag[WMS_STORAGE_TYPE_NV_V01]){
 memoryFullbeforeDelete=TRUE;}unreadBeforeDelete=zUfiSms_IsUnreadSms(
 ZTE_WMS_MEMORY_NV);result=(T_zUfiSms_CmdStatus)zUfiSms_DeleteNvSms();(void)
@@ -147,114 +147,113 @@
 memoryFullbeforeDelete&&!g_zUfiSms_MemFullFlag[WMS_STORAGE_TYPE_NV_V01]){
 at_print(LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x44\x65\x6c\x65\x74\x65\x4e\x76\x53\x6d\x73\x3a\x20\x73\x65\x6e\x64\x20\x41\x54\x2b\x5a\x4d\x45\x4e\x41\x3d\x30" "\n"
-);zSms_SendZmenaReq((0x56+9094-0x23dc));}if(memoryFullbeforeDelete&&!
+);zSms_SendZmenaReq((0xbfb+1215-0x10ba));}if(memoryFullbeforeDelete&&!
 g_zUfiSms_MemFullFlag[WMS_STORAGE_TYPE_NV_V01]||unreadBeforeDelete&&!
 zUfiSms_IsUnreadSms(ZTE_WMS_MEMORY_NV)){zUfiSms_SendSmsStatusInfo(
-MSG_SMS_DEFAULT);}}if((0x3fb+1922-0xb7d)<g_zUfiSms_DelMsg.sim_count){result=
+MSG_SMS_DEFAULT);}}if((0x26+9102-0x23b4)<g_zUfiSms_DelMsg.sim_count){result=
 zUfiSms_DeleteSimSms();(void)zUfiSms_CheckMemoryFull(ZTE_WMS_MEMORY_SIM);}
 at_print(LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x44\x65\x6c\x65\x74\x65\x53\x6d\x73\x20\x72\x65\x73\x75\x6c\x74\x3d\x25\x64" "\n"
 ,result);return result;}T_zUfiSms_CmdStatus zUfiSms_ModifySmsTag(
-T_zUfiSms_ModifyFlag*ptModifyBuff){unsigned long i=(0x18f0+1448-0x1e98);
-T_zUfiSms_CmdStatus result=WMS_CMD_SUCCESS;char acStorePos[(0x595+7223-0x219a)]=
-{(0xdf2+6406-0x26f8)};if(NULL==ptModifyBuff){at_print(LOG_ERR,
+T_zUfiSms_ModifyFlag*ptModifyBuff){unsigned long i=(0x1636+139-0x16c1);
+T_zUfiSms_CmdStatus result=WMS_CMD_SUCCESS;char acStorePos[(0x1a0+3231-0xe0d)]={
+(0xa9c+5508-0x2020)};if(NULL==ptModifyBuff){at_print(LOG_ERR,
 "\x69\x6e\x70\x75\x74\x73\x20\x69\x73\x20\x6e\x75\x6c\x6c\x2e");return 
-WMS_CMD_FAILED;}for(i=(0x9a8+5914-0x20c2);i<ptModifyBuff->total_id;i++){if(
-ptModifyBuff->id[i]<(0x994+59-0x9ce)||ZUFI_FAIL==zUfiSms_UpdateSmsTagInDb(
+WMS_CMD_FAILED;}for(i=(0x7f0+6183-0x2017);i<ptModifyBuff->total_id;i++){if(
+ptModifyBuff->id[i]<(0x2031+1232-0x2500)||ZUFI_FAIL==zUfiSms_UpdateSmsTagInDb(
 ptModifyBuff->id[i],ptModifyBuff->tags)){result=WMS_CMD_FAILED;}else{result=
 WMS_CMD_SUCCESS;}}if(ZUFI_FAIL==zUfiSms_GetStorePosById(
 "\x4d\x65\x6d\x5f\x53\x74\x6f\x72\x65",acStorePos,sizeof(acStorePos),
-ptModifyBuff->id[(0xed4+3508-0x1c88)])){return ZUFI_FAIL;}if((0x1f8+4445-0x1355)
+ptModifyBuff->id[(0x63c+7254-0x2292)])){return ZUFI_FAIL;}if((0x881+1456-0xe31)
 ==strcmp(acStorePos,ZTE_WMS_DB_NV_TABLE)){zUfiSms_SendSmsStatusInfo(
-MSG_SMS_READING);}if((0xc2f+5732-0x2293)==strcmp(acStorePos,ZTE_WMS_DB_SIM_TABLE
-)&&ptModifyBuff->total_id>(0x1937+585-0x1b80)){zUfiSms_ModifyModemSms(
+MSG_SMS_READING);}if((0x883+1299-0xd96)==strcmp(acStorePos,ZTE_WMS_DB_SIM_TABLE)
+&&ptModifyBuff->total_id>(0x615+6342-0x1edb)){zUfiSms_ModifyModemSms(
 ptModifyBuff);}return result;}T_zUfiSms_CmdStatus zUfiSms_SetSmsPara(
-T_zUfiSms_ParaInfo*ptParaBuff){int atRes=(0xf52+5583-0x2521);CHAR sca[
-ZTE_WMS_ADDRESS_DIGIT_MAX_V01+(0x301+276-0x414)]={(0xe81+1786-0x157b)};CHAR 
-store[(0x1008+5286-0x249a)]={(0x1102+78-0x1150)};CHAR defaultStore[
-(0x1e1c+1418-0x2374)]={(0x77+9292-0x24c3)};if(ptParaBuff==ZUFI_NULL){return 
-WMS_CMD_FAILED;}if(strlen(ptParaBuff->sca)!=(0x6a+9157-0x242f)){strncpy(sca,
-ptParaBuff->sca,sizeof(sca)-(0x18b+4469-0x12ff));at_print(LOG_DEBUG,
+T_zUfiSms_ParaInfo*ptParaBuff){int atRes=(0x844+2161-0x10b5);CHAR sca[
+ZTE_WMS_ADDRESS_DIGIT_MAX_V01+(0xd7c+3986-0x1d0d)]={(0xed9+2402-0x183b)};CHAR 
+store[(0x7b6+8016-0x26f2)]={(0xc04+27-0xc1f)};CHAR defaultStore[
+(0xf18+2788-0x19ca)]={(0xf34+3405-0x1c81)};if(ptParaBuff==ZUFI_NULL){return 
+WMS_CMD_FAILED;}if(strlen(ptParaBuff->sca)!=(0x98d+5322-0x1e57)){strncpy(sca,
+ptParaBuff->sca,sizeof(sca)-(0x951+5949-0x208d));at_print(LOG_DEBUG,
 "\x73\x65\x6e\x64\x20\x5a\x41\x54\x5f\x43\x53\x43\x41\x5f\x53\x45\x54\x5f\x43\x4d\x44\x20\x6d\x65\x73\x73\x61\x67\x65\x20\x63\x73\x63\x61\x20\x69\x73\x20\x25\x73\x2e" "\n"
 ,sca);atRes=zSms_SetCscaReq(ptParaBuff->sca);if(atRes!=ZSMS_RESULT_OK){return 
 WMS_CMD_FAILED;}}sc_cfg_get(NV_DEFAULT_STORE,defaultStore,sizeof(defaultStore));
-if((*(ptParaBuff->default_store)!='\0')&&((0x9fd+5614-0x1feb)!=strcmp(
+if((*(ptParaBuff->default_store)!='\0')&&((0x2513+370-0x2685)!=strcmp(
 defaultStore,ptParaBuff->default_store))){{strncpy(store,ptParaBuff->
-default_store,sizeof(store)-(0x1cc+2183-0xa52));}atRes=zSms_SendCnmiReq(store);
-if(atRes!=ZSMS_RESULT_OK){return WMS_CMD_FAILED;}}if(-(0x3c1+3853-0x12cd)==
+default_store,sizeof(store)-(0xf4f+3387-0x1c89));}atRes=zSms_SendCnmiReq(store);
+if(atRes!=ZSMS_RESULT_OK){return WMS_CMD_FAILED;}}if(-(0x1501+3451-0x227b)==
 zUfiSms_SetDbParameters(ptParaBuff)){at_print(LOG_ERR,
 "\x73\x65\x74\x20\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73\x20\x74\x6f\x20\x74\x61\x62\x6c\x65\x20\x66\x61\x69\x6c\x65\x64\x2e"
 );return WMS_CMD_FAILED;}return WMS_CMD_SUCCESS;}void zUfiSms_CmgrNvSet(void){
-char sms_rec_flag[(0x107a+234-0x115f)]={(0xd2+3263-0xd91)};char remind_flag[
-(0xe45+3865-0x1d59)];int sms_count=(0xf0b+59-0xf46);int remind_count=
-(0xd11+76-0xd5d);memset(sms_rec_flag,(0xb65+433-0xd16),sizeof(sms_rec_flag));
-sc_cfg_get(ZTE_WMS_NVCONFIG_RECEVIED,sms_rec_flag,sizeof(sms_rec_flag));
-sms_count=atoi(sms_rec_flag);if(sms_count<(0x1628+1716-0x1cdc)||sms_count>
-INT_MAX-(0x1350+2868-0x1e83)){at_print(LOG_ERR,
+char sms_rec_flag[(0x423+8585-0x25a7)]={(0xeef+3868-0x1e0b)};char remind_flag[
+(0xd2a+6370-0x2607)];int sms_count=(0x4ed+1530-0xae7);int remind_count=
+(0x222d+757-0x2522);memset(sms_rec_flag,(0x17c+7541-0x1ef1),sizeof(sms_rec_flag)
+);sc_cfg_get(ZTE_WMS_NVCONFIG_RECEVIED,sms_rec_flag,sizeof(sms_rec_flag));
+sms_count=atoi(sms_rec_flag);if(sms_count<(0x1e53+572-0x208f)||sms_count>INT_MAX
+-(0x16da+679-0x1980)){at_print(LOG_ERR,
 "\x5b\x53\x4d\x53\x5d\x73\x6d\x73\x5f\x63\x6f\x75\x6e\x74\x20\x65\x72\x72\x3a\x25\x64" "\n"
-,sms_count);return;}memset(sms_rec_flag,(0x1734+1594-0x1d6e),sizeof(sms_rec_flag
-));snprintf(sms_rec_flag,sizeof(sms_rec_flag),"\x25\x64",sms_count+
-(0xf57+3593-0x1d5f));sc_cfg_set(ZTE_WMS_NVCONFIG_RECEVIED,sms_rec_flag);
+,sms_count);return;}memset(sms_rec_flag,(0xa0b+6619-0x23e6),sizeof(sms_rec_flag)
+);snprintf(sms_rec_flag,sizeof(sms_rec_flag),"\x25\x64",sms_count+
+(0x59d+1892-0xd00));sc_cfg_set(ZTE_WMS_NVCONFIG_RECEVIED,sms_rec_flag);
 sc_cfg_set(ZTE_WMS_NVCONFIG_RECEVIED_LED,sms_rec_flag);memset(remind_flag,
-(0x7+2924-0xb73),sizeof(remind_flag));snprintf(remind_flag,sizeof(remind_flag),
-"\x25\x64",remind_count+(0x9c6+6417-0x22d6));sc_cfg_set(
+(0x971+3965-0x18ee),sizeof(remind_flag));snprintf(remind_flag,sizeof(remind_flag
+),"\x25\x64",remind_count+(0x4b3+616-0x71a));sc_cfg_set(
 ZTE_WMS_NVCONFIG_RECEVIED_REMIND,remind_flag);sc_cfg_set(NV_SMS_RECV_RESULT,
 "\x6f\x6b");sc_cfg_set(NV_SMS_DB_CHANGE,"\x31");}void zUfiSms_CdsRespProc(
 T_zSms_SmsInd*ptRespData){unsigned char acFormatPdu[ZSMS_PDU_SIZE]={
-(0x1166+620-0x13d2)};T_zUfiSms_DbStoreData tDbStoreData={(0xe34+4729-0x20ad)};
-int isPushSms=(0x23db+799-0x26fa);if(strcmp(ptRespData->pdu,"")==
-(0x91f+6077-0x20dc)){CHAR srState[(0x27b+6241-0x1aaa)]={(0x3ac+9048-0x2704)};
-sc_cfg_get(NV_SR_STATE,srState,sizeof(srState));if((0x34a+2535-0xd31)!=strcmp(
-srState,"\x73\x72\x5f\x72\x65\x63\x65\x69\x76\x69\x6e\x67")){sc_cfg_set(
+(0x1283+17-0x1294)};T_zUfiSms_DbStoreData tDbStoreData={(0x9b5+670-0xc53)};int 
+isPushSms=(0x685+5742-0x1cf3);if(strcmp(ptRespData->pdu,"")==(0xb31+6011-0x22ac)
+){CHAR srState[(0x1838+1111-0x1c5d)]={(0x77c+6459-0x20b7)};sc_cfg_get(
+NV_SR_STATE,srState,sizeof(srState));if((0x3cc+665-0x665)!=strcmp(srState,
+"\x73\x72\x5f\x72\x65\x63\x65\x69\x76\x69\x6e\x67")){sc_cfg_set(
 NV_SMS_RECV_RESULT,"\x66\x61\x69\x6c");zUfiSms_ChangeMainState(SMS_STATE_RECVED)
 ;}else{sc_cfg_set(NV_SR_STATE,"\x73\x72\x5f\x72\x65\x63\x65\x69\x76\x65\x64");}
 return;}zUfiSms_GetReportStatus(ptRespData->pdu,&ptRespData->stat);(void)
 String2Bytes(ptRespData->pdu,acFormatPdu,(int)strlen(ptRespData->pdu));if(
-(0xa6d+5855-0x2147)==ptRespData->stat){(void)zUfiSms_HandleReport(acFormatPdu);
+(0x1f1+9155-0x25af)==ptRespData->stat){(void)zUfiSms_HandleReport(acFormatPdu);
 sc_cfg_set(NV_SR_STATE,"\x73\x72\x5f\x72\x65\x63\x65\x69\x76\x65\x64");
 zUfiSms_Ack_new_msg(TRUE);return;}return;}int zUfiSms_CheckIfWholeSms(
 T_zUfiSms_DbStoreData*data,SMS_MSG_INFO*pmsg){if(data->concat_sms!=
-(0xd3c+2626-0x177d)){return(0x55c+6561-0x1efd);}zUfiSms_GetCurrentRecvTotalSeq(
+(0x3e5+1074-0x816)){return(0xa19+5796-0x20bd);}zUfiSms_GetCurrentRecvTotalSeq(
 data,pmsg);at_print(LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x5b\x74\x72\x61\x66\x66\x69\x63\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x43\x68\x65\x63\x6b\x49\x66\x57\x68\x6f\x6c\x65\x53\x6d\x73\x20\x69\x64\x20\x3d\x20\x25\x73\x2c\x20\x74\x6f\x74\x61\x6c\x53\x65\x71\x20\x3d\x20\x25\x64\x2c\x72\x65\x66\x20\x3d\x25\x64\x2c\x74\x6f\x74\x61\x6c\x20\x3d\x25\x64\x2c\x20\x73\x65\x71\x3d\x25\x64" "\n"
-,pmsg->id,atoi(pmsg->total_seq),data->concat_info[(0xe5c+5506-0x23de)],data->
-concat_info[(0x109f+3335-0x1da5)],data->concat_info[(0xaf5+420-0xc97)]);if(data
-->concat_info[(0xab1+1000-0xe98)]==atoi(pmsg->total_seq)){return
-(0x343+3922-0x1295);}return-(0xf93+1194-0x143c);}void 
+,pmsg->id,atoi(pmsg->total_seq),data->concat_info[(0x5f9+3191-0x1270)],data->
+concat_info[(0xc58+4419-0x1d9a)],data->concat_info[(0x9cb+4296-0x1a91)]);if(data
+->concat_info[(0x8af+778-0xbb8)]==atoi(pmsg->total_seq)){return
+(0x1477+178-0x1529);}return-(0x222+5550-0x17cf);}void 
 zUfiSms_TrafficChangeSmsTag(T_zUfiSms_DbStoreData*data){CHAR smsNumber[
-(0xa61+2845-0x154c)]={(0x3ab+5384-0x18b3)};sc_cfg_get(NV_TRAFFIC_SMS_NUMBER,
-smsNumber,sizeof(smsNumber));if((0x74a+7425-0x244b)==strcmp(smsNumber,data->
+(0x2115+301-0x2210)]={(0x834+2754-0x12f6)};sc_cfg_get(NV_TRAFFIC_SMS_NUMBER,
+smsNumber,sizeof(smsNumber));if((0x4f4+3639-0x132b)==strcmp(smsNumber,data->
 number)){data->tag=WMS_TAG_TYPE_MT_READ_V01;data->msg_displaymode=
-(0x2698+1-0x2698);}}void zUfiSms_HandleTrafficSms(T_zUfiSms_DbStoreData*data){
-int iSmsId=(0xc40+1260-0x112c);SMS_MSG_INFO msg={(0x1d80+1942-0x2516)};CHAR 
-smsNumber[(0x1068+4956-0x2392)]={(0x354+3225-0xfed)};sc_cfg_get(
+(0xc1d+4650-0x1e46);}}void zUfiSms_HandleTrafficSms(T_zUfiSms_DbStoreData*data){
+int iSmsId=(0x1084+4173-0x20d1);SMS_MSG_INFO msg={(0x17+3450-0xd91)};CHAR 
+smsNumber[(0x1f24+420-0x2096)]={(0x1aa+6209-0x19eb)};sc_cfg_get(
 NV_TRAFFIC_SMS_NUMBER,smsNumber,sizeof(smsNumber));at_print(LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x5b\x74\x72\x61\x66\x66\x69\x63\x5d\x20\x74\x44\x62\x53\x74\x6f\x72\x65\x44\x61\x74\x61\x2e\x6e\x75\x6d\x62\x65\x72\x20\x3d\x20\x25\x73\x2c\x20\x74\x72\x61\x66\x66\x69\x63\x5f\x73\x6d\x73\x5f\x6e\x75\x6d\x62\x65\x72\x20\x3d\x20\x25\x73" "\n"
-,data->number,smsNumber);if((0x1bfc+1598-0x223a)==strcmp(smsNumber,data->number)
-){if((0x1c93+1849-0x23cc)!=zUfiSms_CheckIfWholeSms(data,&msg)){at_print(
-LOG_DEBUG,
+,data->number,smsNumber);if((0x1248+3034-0x1e22)==strcmp(smsNumber,data->number)
+){if((0xfb7+868-0x131b)!=zUfiSms_CheckIfWholeSms(data,&msg)){at_print(LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x5b\x74\x72\x61\x66\x66\x69\x63\x5d\x20\x63\x6d\x74\x20\x69\x6e\x64\x2c\x20\x72\x65\x63\x76\x20\x73\x6d\x73\x2c\x20\x62\x75\x74\x20\x6e\x6f\x74\x20\x77\x68\x6f\x6c\x65\x20\x73\x6d\x73\x2c\x20\x77\x61\x69\x74\x20\x74\x6f\x20\x72\x65\x63\x76\x20\x6e\x65\x78\x74\x20\x73\x65\x67" "\n"
 );return;}sc_cfg_set(NV_TRAFFIC_RECV_SMS_ID,msg.id);sc_cfg_set(
 NV_TRAFFIC_SMS_NUMBER,"\x30");at_print(LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x5b\x74\x72\x61\x66\x66\x69\x63\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x48\x61\x6e\x64\x6c\x65\x54\x72\x61\x66\x66\x69\x63\x53\x6d\x73\x20\x20\x20\x74\x72\x61\x66\x66\x69\x63\x5f\x72\x65\x63\x76\x5f\x73\x6d\x73\x5f\x69\x64\x20\x3d\x20\x25\x73" "\n"
 ,msg.id);}}void zUfiSms_CmtRespProc(T_zSms_SmsInd*ptRespData){zUfiSms_StoreType 
 iStorePos=WMS_STORAGE_TYPE_NV_V01;unsigned char acFormatPdu[ZSMS_PDU_SIZE]={
-(0x5c9+1267-0xabc)};T_zUfiSms_DbStoreData tDbStoreData;int isPushSms=
-(0xa4f+1882-0x11a9);SMS_PARAM one_sms={(0x1674+1791-0x1d73)};int 
-unread_sms_before_recv_new_sms=(0x484+5077-0x1859);memset(&tDbStoreData,
-(0x168a+636-0x1906),sizeof(T_zUfiSms_DbStoreData));at_print(LOG_DEBUG,
+(0x12ba+1103-0x1709)};T_zUfiSms_DbStoreData tDbStoreData;int isPushSms=
+(0x499+2497-0xe5a);SMS_PARAM one_sms={(0x204+6709-0x1c39)};int 
+unread_sms_before_recv_new_sms=(0x49f+8771-0x26e2);memset(&tDbStoreData,
+(0x1771+2571-0x217c),sizeof(T_zUfiSms_DbStoreData));at_print(LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x20\x45\x6e\x74\x65\x72\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x43\x6d\x67\x72\x52\x65\x73\x70\x50\x72\x6f\x63\x21\x20\x69\x6e\x64\x65\x78\x3a\x25\x64\x2f\x73\x74\x61\x74\x3a\x25\x64\x2f\x6c\x65\x6e\x67\x74\x68\x3a\x25\x64\x2f\x70\x64\x75\x3a\x25\x73\x21" "\n"
 ,ptRespData->index,ptRespData->stat,ptRespData->length,ptRespData->pdu);if(
-strcmp(ptRespData->pdu,"")==(0xa24+940-0xdd0)){CHAR srState[(0xcfc+5553-0x227b)]
-={(0x49a+7498-0x21e4)};sc_cfg_get(NV_SR_STATE,srState,sizeof(srState));if(
-(0x1336+307-0x1469)!=strcmp(srState,
+strcmp(ptRespData->pdu,"")==(0x37f+6041-0x1b18)){CHAR srState[
+(0x1cd7+1063-0x20cc)]={(0x66+7635-0x1e39)};sc_cfg_get(NV_SR_STATE,srState,sizeof
+(srState));if((0x93c+5267-0x1dcf)!=strcmp(srState,
 "\x73\x72\x5f\x72\x65\x63\x65\x69\x76\x69\x6e\x67")){sc_cfg_set(
 NV_SMS_RECV_RESULT,"\x66\x61\x69\x6c");zUfiSms_ChangeMainState(SMS_STATE_RECVED)
 ;}else{sc_cfg_set(NV_SR_STATE,"\x73\x72\x5f\x72\x65\x63\x65\x69\x76\x65\x64");}
 return;}isPushSms=DecodePushPdu(ptRespData->pdu,&one_sms);at_print(LOG_DEBUG,
 "\x5b\x73\x6d\x73\x5d\x7a\x55\x66\x69\x53\x6d\x73\x5f\x43\x6d\x67\x72\x52\x65\x73\x70\x50\x72\x6f\x63\x20\x69\x73\x50\x75\x73\x68\x53\x6d\x73\x20\x3d\x20\x25\x64" "\n"
 ,isPushSms);if(SMS_NOTIFICATION==isPushSms){BakNotificationSms(one_sms.TP_UD,
-strlen(one_sms.TP_UD));zte_fota_notifyPushMsg((0x98b+4876-0x1c97));}if(
+strlen(one_sms.TP_UD));zte_fota_notifyPushMsg((0xb48+1324-0x1074));}if(
 SMS_NO_PUSH!=isPushSms){at_print(LOG_DEBUG,
 "\x20\x6f\x6e\x65\x5f\x73\x6d\x73\x2e\x69\x6e\x64\x65\x78\x20\x3d\x20\x25\x64" "\n"
 ,one_sms.index);at_print(LOG_DEBUG,
@@ -266,32 +265,32 @@
 ,one_sms.TP_CurrentPieceNum);zUfiSms_ChangeMainState(SMS_STATE_RECVED);
 zUfiSms_Ack_new_msg(TRUE);return;}zUfiSms_GetReportStatus(ptRespData->pdu,&
 ptRespData->stat);(void)String2Bytes(ptRespData->pdu,acFormatPdu,(int)strlen(
-ptRespData->pdu));if((0x56a+1686-0xbfb)==ptRespData->stat){(void)
+ptRespData->pdu));if((0x6c2+7883-0x2588)==ptRespData->stat){(void)
 zUfiSms_HandleReport(acFormatPdu);sc_cfg_set(NV_SR_STATE,
 "\x73\x72\x5f\x72\x65\x63\x65\x69\x76\x65\x64");zUfiSms_Ack_new_msg(TRUE);return
 ;}(void)zUfiSms_DecodeSmsData(&tDbStoreData,ptRespData->index,iStorePos,(
 T_SmsStatus)ptRespData->stat,WMS_MESSAGE_FORMAT_GW_PP_V01,ptRespData->length,
 acFormatPdu);if(tDbStoreData.sms_class==WMS_MESSAGE_CLASS_2){iStorePos=
 WMS_STORAGE_TYPE_UIM_V01;}if(zUfiSms_IsUnreadSms(ZTE_WMS_MEMORY_NV)){
-unread_sms_before_recv_new_sms=(0x291+4168-0x12d8);}else{
-unread_sms_before_recv_new_sms=(0x4c4+4708-0x1728);}zUfiSms_TrafficChangeSmsTag(
+unread_sms_before_recv_new_sms=(0x1714+854-0x1a69);}else{
+unread_sms_before_recv_new_sms=(0x5b0+7090-0x2162);}zUfiSms_TrafficChangeSmsTag(
 &tDbStoreData);if(ZTE_WMS_NV_MEMORY_FULL==zUfiSms_WriteSmsToDb(&tDbStoreData,
-iStorePos,-(0x108d+353-0x11ed))){zUfiSms_Ack_new_msg(FALSE);zSms_SendZmenaReq(
-(0x3c7+8021-0x231b));return;}if(tDbStoreData.sms_class!=WMS_MESSAGE_CLASS_2){
+iStorePos,-(0xf85+472-0x115c))){zUfiSms_Ack_new_msg(FALSE);zSms_SendZmenaReq(
+(0xc2b+666-0xec4));return;}if(tDbStoreData.sms_class!=WMS_MESSAGE_CLASS_2){
 zUfiSms_Ack_new_msg(TRUE);}zUfiSms_CmgrNvSet();zUfiSms_CheckMemoryFull(
 ZTE_WMS_MEMORY_NV);zUfiSms_ChangeMainState(SMS_STATE_RECVED);
 zUfiSms_SendSmsStatusInfo(MSG_SMS_NEW);zUfiSms_HandleTrafficSms(&tDbStoreData);
 return;}void zUfiSms_ZmgrRespProc(T_zSms_SmsInd*ptRespData){zUfiSms_StoreType 
 iStorePos=WMS_STORAGE_TYPE_NV_V01;unsigned char acFormatPdu[ZSMS_PDU_SIZE]={
-(0x1bd+5908-0x18d1)};T_zUfiSms_DbStoreData tDbStoreData;int isPushSms=
-(0x33f+4721-0x15b0);SMS_PARAM one_sms={(0xeb6+2046-0x16b4)};CHAR defaultStore[
-(0xd51+5503-0x229e)]={(0x7b5+7847-0x265c)};memset(&tDbStoreData,
-(0x14d3+1094-0x1919),sizeof(T_zUfiSms_DbStoreData));at_print(LOG_DEBUG,
+(0x4e1+6632-0x1ec9)};T_zUfiSms_DbStoreData tDbStoreData;int isPushSms=
+(0x404+6492-0x1d60);SMS_PARAM one_sms={(0x13ea+2643-0x1e3d)};CHAR defaultStore[
+(0x129d+2442-0x1bf5)]={(0x308+1580-0x934)};memset(&tDbStoreData,
+(0x25+3153-0xc76),sizeof(T_zUfiSms_DbStoreData));at_print(LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x20\x45\x6e\x74\x65\x72\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x43\x6d\x67\x72\x52\x65\x73\x70\x50\x72\x6f\x63\x21\x20\x69\x6e\x64\x65\x78\x3a\x25\x64\x2f\x73\x74\x61\x74\x3a\x25\x64\x2f\x6c\x65\x6e\x67\x74\x68\x3a\x25\x64\x2f\x70\x64\x75\x3a\x25\x73\x21" "\n"
 ,ptRespData->index,ptRespData->stat,ptRespData->length,ptRespData->pdu);if(
-strcmp(ptRespData->pdu,"")==(0x4d3+2205-0xd70)){CHAR srState[(0xd12+3260-0x199c)
-]={(0x13f8+4724-0x266c)};sc_cfg_get(NV_SR_STATE,srState,sizeof(srState));if(
-(0x9a4+3127-0x15db)!=strcmp(srState,
+strcmp(ptRespData->pdu,"")==(0x647+5195-0x1a92)){CHAR srState[(0x4e3+2649-0xf0a)
+]={(0x96b+7510-0x26c1)};sc_cfg_get(NV_SR_STATE,srState,sizeof(srState));if(
+(0x1a64+2557-0x2461)!=strcmp(srState,
 "\x73\x72\x5f\x72\x65\x63\x65\x69\x76\x69\x6e\x67")){sc_cfg_set(
 NV_SMS_RECV_RESULT,"\x66\x61\x69\x6c");zUfiSms_ChangeMainState(SMS_STATE_RECVED)
 ;}else{sc_cfg_set(NV_SR_STATE,"\x73\x72\x5f\x72\x65\x63\x65\x69\x76\x65\x64");}
@@ -300,8 +299,8 @@
 ,isPushSms);at_print(LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x43\x6d\x67\x72\x52\x65\x73\x70\x50\x72\x6f\x63\x20\x69\x73\x50\x75\x73\x68\x53\x6d\x73\x20\x3d\x25\x64\x20" "\n"
 ,isPushSms);if(SMS_NOTIFICATION==isPushSms){BakNotificationSms(one_sms.TP_UD,
-strlen(one_sms.TP_UD));zte_fota_notifyPushMsg((0x1c1d+1331-0x2150));}if(
-SMS_NO_PUSH!=isPushSms){at_print(LOG_DEBUG,
+strlen(one_sms.TP_UD));zte_fota_notifyPushMsg((0x951+823-0xc88));}if(SMS_NO_PUSH
+!=isPushSms){at_print(LOG_DEBUG,
 "\x20\x6f\x6e\x65\x5f\x73\x6d\x73\x2e\x69\x6e\x64\x65\x78\x20\x3d\x20\x25\x64" "\n"
 ,one_sms.index);at_print(LOG_DEBUG,
 "\x20\x6f\x6e\x65\x5f\x73\x6d\x73\x2e\x54\x50\x5f\x52\x65\x66\x65\x72\x4e\x75\x6d\x20\x3d\x20\x25\x64" "\n"
@@ -311,30 +310,30 @@
 "\x20\x6f\x6e\x65\x5f\x73\x6d\x73\x2e\x54\x50\x5f\x43\x75\x72\x72\x65\x6e\x74\x50\x69\x65\x63\x65\x4e\x75\x6d\x20\x3d\x20\x25\x64" "\n"
 ,one_sms.TP_CurrentPieceNum);zUfiSms_ChangeMainState(SMS_STATE_RECVED);return;}
 zUfiSms_GetReportStatus(ptRespData->pdu,&ptRespData->stat);(void)String2Bytes(
-ptRespData->pdu,acFormatPdu,(int)strlen(ptRespData->pdu));if((0x24a+2231-0xafc)
+ptRespData->pdu,acFormatPdu,(int)strlen(ptRespData->pdu));if((0x889+1938-0x1016)
 ==ptRespData->stat){(void)zUfiSms_HandleReport(acFormatPdu);sc_cfg_set(
 NV_SR_STATE,"\x73\x72\x5f\x72\x65\x63\x65\x69\x76\x65\x64");return;}sc_cfg_get(
-NV_DEFAULT_STORE,defaultStore,sizeof(defaultStore));if((0xd34+6149-0x2539)==
+NV_DEFAULT_STORE,defaultStore,sizeof(defaultStore));if((0x173b+2703-0x21ca)==
 strcmp(defaultStore,"\x73\x69\x6d")){iStorePos=WMS_STORAGE_TYPE_UIM_V01;}(void)
 zUfiSms_DecodeSmsData(&tDbStoreData,ptRespData->index,iStorePos,(T_SmsStatus)
 ptRespData->stat,WMS_MESSAGE_FORMAT_GW_PP_V01,ptRespData->length,acFormatPdu);if
 (tDbStoreData.sms_class==WMS_MESSAGE_CLASS_2){iStorePos=WMS_STORAGE_TYPE_UIM_V01
 ;}zUfiSms_TrafficChangeSmsTag(&tDbStoreData);if(ZTE_WMS_NV_MEMORY_FULL==
-zUfiSms_WriteSmsToDb(&tDbStoreData,iStorePos,-(0x12da+1704-0x1981))){return;}if(
+zUfiSms_WriteSmsToDb(&tDbStoreData,iStorePos,-(0x1331+2108-0x1b6c))){return;}if(
 tDbStoreData.sms_class!=WMS_MESSAGE_CLASS_2){}zUfiSms_CmgrNvSet();
 zUfiSms_CheckMemoryFull(ZTE_WMS_MEMORY_NV);zUfiSms_ChangeMainState(
 SMS_STATE_RECVED);zUfiSms_HandleTrafficSms(&tDbStoreData);return;}void 
 zUfiSms_CmgrRespProc(T_zSms_SmsInd*ptRespData){zUfiSms_StoreType iStorePos=
 WMS_STORAGE_TYPE_NV_V01;unsigned char acFormatPdu[ZSMS_PDU_SIZE]={
-(0x537+3798-0x140d)};T_zUfiSms_DbStoreData tDbStoreData;int isPushSms=
-(0x124b+1537-0x184c);SMS_PARAM one_sms={(0x16f4+2747-0x21af)};int 
-unread_sms_before_recv_new_sms=(0x887+5826-0x1f49);memset(&tDbStoreData,
-(0x160+6566-0x1b06),sizeof(T_zUfiSms_DbStoreData));at_print(LOG_DEBUG,
+(0x5e1+1167-0xa70)};T_zUfiSms_DbStoreData tDbStoreData;int isPushSms=
+(0x332+716-0x5fe);SMS_PARAM one_sms={(0x2a5+8058-0x221f)};int 
+unread_sms_before_recv_new_sms=(0xe63+1465-0x141c);memset(&tDbStoreData,
+(0x59a+1118-0x9f8),sizeof(T_zUfiSms_DbStoreData));at_print(LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x20\x45\x6e\x74\x65\x72\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x43\x6d\x67\x72\x52\x65\x73\x70\x50\x72\x6f\x63\x21\x20\x69\x6e\x64\x65\x78\x3a\x25\x64\x2f\x73\x74\x61\x74\x3a\x25\x64\x2f\x6c\x65\x6e\x67\x74\x68\x3a\x25\x64\x2f\x70\x64\x75\x3a\x25\x73\x21" "\n"
 ,ptRespData->index,ptRespData->stat,ptRespData->length,ptRespData->pdu);
 zUfiSms_SendSmsStatusInfo(MSG_SMS_READING);if(strcmp(ptRespData->pdu,"")==
-(0x684+2999-0x123b)){CHAR srState[(0x15c0+3924-0x24e2)]={(0x289+5920-0x19a9)};
-sc_cfg_get(NV_SR_STATE,srState,sizeof(srState));if((0x3a2+4858-0x169c)!=strcmp(
+(0x151d+4264-0x25c5)){CHAR srState[(0x607+7591-0x237c)]={(0x2a+6994-0x1b7c)};
+sc_cfg_get(NV_SR_STATE,srState,sizeof(srState));if((0x12e0+3074-0x1ee2)!=strcmp(
 srState,"\x73\x72\x5f\x72\x65\x63\x65\x69\x76\x69\x6e\x67")){sc_cfg_set(
 NV_SMS_RECV_RESULT,"\x66\x61\x69\x6c");zUfiSms_ChangeMainState(SMS_STATE_RECVED)
 ;}else{sc_cfg_set(NV_SR_STATE,"\x73\x72\x5f\x72\x65\x63\x65\x69\x76\x65\x64");}
@@ -343,7 +342,7 @@
 ,isPushSms);at_print(LOG_DEBUG,
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x43\x6d\x67\x72\x52\x65\x73\x70\x50\x72\x6f\x63\x20\x69\x73\x50\x75\x73\x68\x53\x6d\x73\x20\x3d\x25\x64\x20" "\n"
 ,isPushSms);if(SMS_NOTIFICATION==isPushSms){BakNotificationSms(one_sms.TP_UD,
-strlen(one_sms.TP_UD));zte_fota_notifyPushMsg((0x1981+1942-0x2117));}if(
+strlen(one_sms.TP_UD));zte_fota_notifyPushMsg((0xf29+2879-0x1a68));}if(
 SMS_NO_PUSH!=isPushSms){at_print(LOG_DEBUG,
 "\x20\x6f\x6e\x65\x5f\x73\x6d\x73\x2e\x69\x6e\x64\x65\x78\x20\x3d\x20\x25\x64" "\n"
 ,one_sms.index);at_print(LOG_DEBUG,
@@ -354,81 +353,82 @@
 "\x20\x6f\x6e\x65\x5f\x73\x6d\x73\x2e\x54\x50\x5f\x43\x75\x72\x72\x65\x6e\x74\x50\x69\x65\x63\x65\x4e\x75\x6d\x20\x3d\x20\x25\x64" "\n"
 ,one_sms.TP_CurrentPieceNum);zUfiSms_ChangeMainState(SMS_STATE_RECVED);return;}
 zUfiSms_GetReportStatus(ptRespData->pdu,&ptRespData->stat);(void)String2Bytes(
-ptRespData->pdu,acFormatPdu,(int)strlen(ptRespData->pdu));if((0x173+4974-0x14dc)
-==ptRespData->stat){(void)zUfiSms_HandleReport(acFormatPdu);sc_cfg_set(
-NV_SR_STATE,"\x73\x72\x5f\x72\x65\x63\x65\x69\x76\x65\x64");return;}(void)
-zUfiSms_DecodeSmsData(&tDbStoreData,ptRespData->index,iStorePos,(T_SmsStatus)
-ptRespData->stat,WMS_MESSAGE_FORMAT_GW_PP_V01,ptRespData->length,acFormatPdu);if
-(tDbStoreData.sms_class==WMS_MESSAGE_CLASS_2){iStorePos=WMS_STORAGE_TYPE_UIM_V01
-;}if(zUfiSms_IsUnreadSms(ZTE_WMS_MEMORY_NV)){unread_sms_before_recv_new_sms=
-(0x14+8854-0x22a9);}else{unread_sms_before_recv_new_sms=(0x1660+825-0x1999);}if(
-ZTE_WMS_NV_MEMORY_FULL==zUfiSms_WriteSmsToDb(&tDbStoreData,iStorePos,-
-(0x1c26+2693-0x26aa))){return;}if(tDbStoreData.sms_class!=WMS_MESSAGE_CLASS_2){}
-zUfiSms_CmgrNvSet();zUfiSms_CheckMemoryFull(ZTE_WMS_MEMORY_NV);
-zUfiSms_ChangeMainState(SMS_STATE_RECVED);return;}void zUfiSms_CmgsRespProc(VOID
-){T_zUfiSms_StatusInfo tStatusInfo={(0x738+2306-0x103a)};g_zUfiSms_DbStoreData->
-msg_displaymode=g_displaymode;if(g_zUfiSms_DbStoreData->msg_displaymode!=
-(0x6ec+6201-0x1f24)){if((0xf1f+665-0x11b8)==zUfiSms_WriteSmsToDb(&
-g_zUfiSms_DbStoreData[g_zUfiSms_CurConcatSegNo-(0xc46+3939-0x1ba8)],
-WMS_STORAGE_TYPE_NV_V01,-(0x1abf+2209-0x235f))){g_zUfiSms_MsgRefer++;(void)
-zUfiSms_SetMaxReference(g_zUfiSms_MsgRefer);}}printf(
+ptRespData->pdu,acFormatPdu,(int)strlen(ptRespData->pdu));if(
+(0x1b3a+2921-0x269e)==ptRespData->stat){(void)zUfiSms_HandleReport(acFormatPdu);
+sc_cfg_set(NV_SR_STATE,"\x73\x72\x5f\x72\x65\x63\x65\x69\x76\x65\x64");return;}(
+void)zUfiSms_DecodeSmsData(&tDbStoreData,ptRespData->index,iStorePos,(
+T_SmsStatus)ptRespData->stat,WMS_MESSAGE_FORMAT_GW_PP_V01,ptRespData->length,
+acFormatPdu);if(tDbStoreData.sms_class==WMS_MESSAGE_CLASS_2){iStorePos=
+WMS_STORAGE_TYPE_UIM_V01;}if(zUfiSms_IsUnreadSms(ZTE_WMS_MEMORY_NV)){
+unread_sms_before_recv_new_sms=(0x195c+1680-0x1feb);}else{
+unread_sms_before_recv_new_sms=(0x22e1+385-0x2462);}if(ZTE_WMS_NV_MEMORY_FULL==
+zUfiSms_WriteSmsToDb(&tDbStoreData,iStorePos,-(0x1169+2923-0x1cd3))){return;}if(
+tDbStoreData.sms_class!=WMS_MESSAGE_CLASS_2){}zUfiSms_CmgrNvSet();
+zUfiSms_CheckMemoryFull(ZTE_WMS_MEMORY_NV);zUfiSms_ChangeMainState(
+SMS_STATE_RECVED);return;}void zUfiSms_CmgsRespProc(VOID){T_zUfiSms_StatusInfo 
+tStatusInfo={(0xedc+2085-0x1701)};g_zUfiSms_DbStoreData->msg_displaymode=
+g_displaymode;if(g_zUfiSms_DbStoreData->msg_displaymode!=(0x907+253-0xa03)){if(
+(0x7bb+7670-0x25b1)==zUfiSms_WriteSmsToDb(&g_zUfiSms_DbStoreData[
+g_zUfiSms_CurConcatSegNo-(0x86+7032-0x1bfd)],WMS_STORAGE_TYPE_NV_V01,-
+(0x992+7395-0x2674))){g_zUfiSms_MsgRefer++;(void)zUfiSms_SetMaxReference(
+g_zUfiSms_MsgRefer);}}printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x6d\x67\x73\x52\x73\x70\x20\x73\x65\x67\x4e\x6f\x3a\x25\x64\x2f\x54\x6f\x74\x61\x6c\x4e\x75\x6d\x3a\x25\x64\x2f\x46\x61\x69\x6c\x4e\x75\x6d\x3a\x25\x64\x2e" "\n"
 ,g_zUfiSms_CurConcatSegNo,g_zUfiSms_ConcatTotalNum,g_zUfiSms_SendFailedCount);if
 (g_zUfiSms_CurConcatSegNo==g_zUfiSms_ConcatTotalNum){g_zUfiSms_CurConcatSegNo=
-(0x7cb+2772-0x129f);memset((void*)&tStatusInfo,(0x1121+5079-0x24f8),sizeof(
+(0x87a+7807-0x26f9);memset((void*)&tStatusInfo,(0x91+5267-0x1524),sizeof(
 T_zUfiSms_StatusInfo));tStatusInfo.err_code=ZTE_SMS_CMS_NONE;tStatusInfo.
 send_failed_count=g_zUfiSms_SendFailedCount;tStatusInfo.delete_failed_count=
-(0x59+2734-0xb07);if(g_zUfiSms_SendFailedCount==(0x1e11+2282-0x26fb)){
+(0x17b1+2425-0x212a);if(g_zUfiSms_SendFailedCount==(0x14f7+3191-0x216e)){
 tStatusInfo.cmd_status=WMS_CMD_SUCCESS;sc_cfg_set(NV_SMS_SEND_RESULT,"\x6f\x6b")
 ;}else{tStatusInfo.cmd_status=WMS_CMD_FAILED;sc_cfg_set(NV_SMS_SEND_RESULT,
 "\x66\x61\x69\x6c");}tStatusInfo.cmd=WMS_SMS_CMD_MSG_SEND;(void)
 zUfiSms_SetCmdStatus(&tStatusInfo);sc_cfg_set(NV_SMS_DB_CHANGE,"\x31");
 zUfiSms_CheckMemoryFull(ZTE_WMS_MEMORY_NV);if(g_zUfiSms_MemFullFlag[
 WMS_STORAGE_TYPE_NV_V01]){zUfiSms_SendSmsStatusInfo(MSG_SMS_DEFAULT);}}else{}}
-int zte_fota_notifyPushMsg(int cmd){FOTA_MSG_BUF msg={(0x204+7454-0x1f22)};int 
-errs=(0x21dd+1276-0x26d9);key_t req_id=ftok(
+int zte_fota_notifyPushMsg(int cmd){FOTA_MSG_BUF msg={(0x2e6+1648-0x956)};int 
+errs=(0x1348+4815-0x2617);key_t req_id=ftok(
 "\x2f\x6d\x65\x64\x69\x61\x2f\x7a\x74\x65\x2f\x7a\x74\x65\x5f\x73\x6f\x63\x6b\x65\x74\x2f\x66\x6f\x74\x61\x5f\x64\x6d\x61\x70\x70\x5f\x6d\x73\x67"
-,(0x37a+6804-0x1e0d));int msgid=msgget(req_id,(0xf39+5662-0x2557));if(msgid!=-
-(0x11cf+3489-0x1f6f)){msg.mtype=(0x12c1+2053-0x1ac5);msg.mtext[
-(0x1a98+2105-0x22d1)]=WEBUI_NOTIFY_PUSH_MSG_;errs=msgsnd(msgid,&msg,sizeof(msg)-
-sizeof(long),(0x1152+4283-0x220d));}return(errs<(0x1d71+2395-0x26cc)?
-(0x874+4738-0x1af6):(0xe66+5690-0x249f));}
-#if (0x455+3428-0x11b9)  
+,(0x898+6005-0x200c));int msgid=msgget(req_id,(0x7d0+229-0x8b5));if(msgid!=-
+(0x7a1+6778-0x221a)){msg.mtype=(0x11c9+5117-0x25c5);msg.mtext[
+(0x57c+4582-0x1762)]=WEBUI_NOTIFY_PUSH_MSG_;errs=msgsnd(msgid,&msg,sizeof(msg)-
+sizeof(long),(0x14f3+4041-0x24bc));}return(errs<(0x1b0+1537-0x7b1)?
+(0x920+3481-0x16b9):(0xf5b+1260-0x1446));}
+#if (0x901+1225-0xdca)  
 int atSms_SendCmglReq(PSTR pAtCmdPara,int cid,PSTR pAtRst,int atRstSize){return 
 zSvr_SendAtSyn(ZAT_CMGL_CMD,"\x41\x54\x2b\x43\x4d\x47\x4c\x3d\x30" "\r\n",cid,
 pAtRst,atRstSize);}VOID atSms_RecvCmglRsp(T_zAt_AtRes*pResLine){return;}
 #endif 

-#if (0x8c2+5680-0x1ef2) 
+#if (0x98d+1812-0x10a1) 
 int atSms_SendZmglReq(PSTR pAtCmdPara,int cid,PSTR pAtRst,int atRstSize){int res
-=(0x83f+7802-0x26b9);pthread_mutex_lock(&smsdb_mutex);res=zSvr_SendAtSyn(
+=(0x58d+4152-0x15c5);pthread_mutex_lock(&smsdb_mutex);res=zSvr_SendAtSyn(
 ZAT_ZMGL_CMD,"\x41\x54\x2b\x5a\x4d\x47\x4c\x3d\x34" "\r\n",cid,pAtRst,atRstSize)
 ;pthread_mutex_unlock(&smsdb_mutex);return res;}VOID atSms_initAtOk(VOID){
-T_zUfiSms_StatusInfo tStatus={(0x543+4548-0x1707)};sc_cfg_set(NV_SMS_LOAD_RESULT
+T_zUfiSms_StatusInfo tStatus={(0xfc9+5830-0x268f)};sc_cfg_set(NV_SMS_LOAD_RESULT
 ,"\x6f\x6b");tStatus.cmd_status=WMS_CMD_SUCCESS;tStatus.cmd=WMS_SMS_CMD_INIT;(
 void)zUfiSms_SetCmdStatus(&tStatus);zUfiSms_ChangeMainState(SMS_STATE_LOADED);}
 int atSms_initAtErr(UINT8*pErrCode){T_zUfiSms_StatusInfo tStatus={
-(0x160b+140-0x1697)};sc_cfg_set(NV_SMS_LOAD_RESULT,"\x66\x61\x69\x6c");
+(0x17a0+2225-0x2051)};sc_cfg_set(NV_SMS_LOAD_RESULT,"\x66\x61\x69\x6c");
 zUfiSms_ChangeMainState(SMS_STATE_LOADED);tStatus.cmd_status=WMS_CMD_FAILED;
 tStatus.cmd=WMS_SMS_CMD_INIT;(void)zUfiSms_SetCmdStatus(&tStatus);return FALSE;}
 VOID atSms_RecvZmglRsp(T_zAt_AtRes*pResLine){static T_zUfiSms_SmsItem tSmsPara={
-(0x7f4+2229-0x10a9)};printf(
+(0xa4a+4878-0x1d58)};printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x5a\x6d\x67\x6c\x52\x73\x70\x20\x45\x6e\x74\x65\x72\x20\x70\x64\x75\x46\x6c\x61\x67\x3a\x25\x64\x2f\x72\x65\x73\x75\x6c\x74\x3a\x25\x64\x2e" "\n"
 ,pResLine->pduFlag,pResLine->result);if(pResLine->pduFlag==ZAT_ATRES_PDU_FLAG){
 zUfiSms_CmglRespProc(pResLine,&tSmsPara);}else{memset(&tSmsPara,
-(0x939+5879-0x2030),sizeof(T_zUfiSms_SmsItem));(void)zUfiSms_FormatSms(pResLine
-->resParas,sizeof(pResLine->resParas),&tSmsPara,(0x82f+3551-0x160d));printf(
+(0x1495+4594-0x2687),sizeof(T_zUfiSms_SmsItem));(void)zUfiSms_FormatSms(pResLine
+->resParas,sizeof(pResLine->resParas),&tSmsPara,(0x134b+301-0x1477));printf(
 "\x5b\x53\x4d\x53\x5d\x20\x5a\x6d\x67\x6c\x20\x52\x65\x73\x70\x21\x20\x69\x6e\x64\x65\x78\x3a\x25\x64\x2f\x73\x74\x61\x74\x3a\x25\x64\x2f\x6c\x65\x6e\x67\x74\x68\x3a\x25\x64\x2e" "\n"
 ,tSmsPara.index,tSmsPara.stat,tSmsPara.length);}}int atSms_SendCmgrReq(PSTR 
-pAtCmdPara,int cid,PSTR pAtRst,int atRstSize){CHAR pAtcmdStr[(0x1aa+452-0x35a)]=
-{(0x2e5+56-0x31d)};iSmsIndex=atoi(pAtCmdPara);printf(
+pAtCmdPara,int cid,PSTR pAtRst,int atRstSize){CHAR pAtcmdStr[(0xe0a+6347-0x26c1)
+]={(0x12bd+3693-0x212a)};iSmsIndex=atoi(pAtCmdPara);printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x53\x65\x6e\x64\x43\x6d\x67\x72\x52\x65\x71\x20\x47\x65\x74\x20\x69\x6e\x64\x65\x78\x3a\x25\x64\x2e" "\n"
 ,iSmsIndex);snprintf(pAtcmdStr,sizeof(pAtcmdStr),
 "\x41\x54\x2b\x43\x4d\x47\x52\x3d\x25\x73" "\r\n",pAtCmdPara);return 
 zSvr_SendAtSyn(ZAT_CMGR_CMD,pAtcmdStr,cid,pAtRst,atRstSize);}VOID 
 atSms_RecvCmgrRsp(T_zAt_AtRes*pResLine){
-#if (0x347+3024-0xf17)

-static T_zUfiSms_SmsItem tSmsPara={(0x1acc+2245-0x2391)};T_zUfiSms_CmgrSetRsp 
-tCmgrRsp={(0x1089+4452-0x21ed)};printf(
+#if (0x114d+5259-0x25d8)

+static T_zUfiSms_SmsItem tSmsPara={(0x4b1+276-0x5c5)};T_zUfiSms_CmgrSetRsp 
+tCmgrRsp={(0xdba+661-0x104f)};printf(
 "\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x6d\x67\x72\x52\x73\x70\x20\x45\x6e\x74\x65\x72\x20\x70\x64\x75\x46\x6c\x61\x67\x3a\x25\x64\x2f\x50\x61\x72\x61\x73\x3a\x25\x73\x2f\x72\x65\x73\x75\x6c\x74\x3a\x25\x64\x2e" "\n"
 ,pResLine->pduFlag,pResLine->resParas,pResLine->result);if(pResLine->pduFlag==
 ZAT_ATRES_PDU_FLAG){if(ZAT_RESULT_AUTOREPORT!=pResLine->result){printf(
@@ -437,14 +437,14 @@
 .stat=tSmsPara.stat;sscanf(pResLine->resParas,"\x25\x35\x30\x30\x73",tCmgrRsp.
 pdu);zUfiSms_CmgrRespProc(&tCmgrRsp);zUfiMmi_SendSmsStatus();sc_cfg_set(
 "\x73\x6d\x73\x5f\x72\x65\x63\x76\x5f\x72\x65\x73\x75\x6c\x74","\x6f\x6b");}else
-{memset(&tSmsPara,(0x1e5+1316-0x709),sizeof(T_zUfiSms_SmsItem));(void)
-zUfiSms_FormatSms(pResLine->resParas,&tSmsPara,(0x47c+663-0x711));tSmsPara.index
-=iSmsIndex;printf(
+{memset(&tSmsPara,(0x15b+7594-0x1f05),sizeof(T_zUfiSms_SmsItem));(void)
+zUfiSms_FormatSms(pResLine->resParas,&tSmsPara,(0x140+5374-0x163c));tSmsPara.
+index=iSmsIndex;printf(
 "\x3d\x3d\x3d\x3d\x3d\x3d\x43\x6d\x67\x72\x20\x52\x65\x73\x70\x21\x20\x69\x6e\x64\x65\x78\x3a\x25\x64\x2f\x73\x74\x61\x74\x3a\x25\x64\x2f\x6c\x65\x6e\x67\x74\x68\x3a\x25\x64\x2e" "\n"
 ,tSmsPara.index,tSmsPara.stat,tSmsPara.length);}
 #endif

 }int atSms_SendZmgrReq(PSTR pAtCmdPara,int cid,PSTR pAtRst,int atRstSize){CHAR 
-pAtcmdStr[(0x1129+1210-0x15cf)]={(0xa3+3198-0xd21)};iSmsIndex=atoi(pAtCmdPara);
+pAtcmdStr[(0x19e6+2-0x19d4)]={(0xaaf+5297-0x1f60)};iSmsIndex=atoi(pAtCmdPara);
 printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x53\x65\x6e\x64\x5a\x6d\x67\x72\x52\x65\x71\x20\x47\x65\x74\x20\x69\x6e\x64\x65\x78\x3a\x25\x64\x2e" "\n"
 ,iSmsIndex);snprintf(pAtcmdStr,sizeof(pAtcmdStr),
@@ -457,8 +457,8 @@
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x5a\x6d\x67\x72\x45\x72\x72\x20\x20\x53\x4d\x53\x20\x7a\x6d\x67\x72\x20\x69\x73\x20\x66\x61\x69\x6c" "\n"
 );{sc_cfg_set(NV_SMS_RECV_RESULT,"\x66\x61\x69\x6c");zUfiSms_ChangeMainState(
 SMS_STATE_RECVED);}}VOID atSms_RecvZmgrRsp(T_zAt_AtRes*pResLine){static 
-T_zUfiSms_SmsItem tSmsPara={(0x94d+7332-0x25f1)};T_zUfiSms_CmgrSetRsp tCmgrRsp={
-(0x88d+3019-0x1458)};printf(
+T_zUfiSms_SmsItem tSmsPara={(0x1062+3695-0x1ed1)};T_zUfiSms_CmgrSetRsp tCmgrRsp=
+{(0xccf+3576-0x1ac7)};printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x5a\x6d\x67\x72\x52\x73\x70\x20\x45\x6e\x74\x65\x72\x20\x70\x64\x75\x46\x6c\x61\x67\x3a\x25\x64\x2f\x50\x61\x72\x61\x73\x3a\x25\x73\x2f\x72\x65\x73\x75\x6c\x74\x3a\x25\x64\x2e" "\n"
 ,pResLine->pduFlag,pResLine->resParas,pResLine->result);if(pResLine->pduFlag==
 ZAT_ATRES_PDU_FLAG){if(ZAT_RESULT_AUTOREPORT!=pResLine->result){printf(
@@ -466,57 +466,56 @@
 );return;}tCmgrRsp.index=tSmsPara.index;tCmgrRsp.length=tSmsPara.length;tCmgrRsp
 .stat=tSmsPara.stat;sscanf(pResLine->resParas,"\x25\x35\x30\x30\x73",tCmgrRsp.
 pdu);zUfiSms_ZmgrRespProc(&tCmgrRsp);zUfiMmi_SendSmsStatus();sc_cfg_set(
-NV_SMS_RECV_RESULT,"\x6f\x6b");}else{memset(&tSmsPara,(0x13fc+1926-0x1b82),
-sizeof(T_zUfiSms_SmsItem));(void)zUfiSms_FormatSms(pResLine->resParas,sizeof(
-pResLine->resParas),&tSmsPara,(0xc59+1014-0x104d));tSmsPara.index=iSmsIndex;
-printf(
+NV_SMS_RECV_RESULT,"\x6f\x6b");}else{memset(&tSmsPara,(0x523+6163-0x1d36),sizeof
+(T_zUfiSms_SmsItem));(void)zUfiSms_FormatSms(pResLine->resParas,sizeof(pResLine
+->resParas),&tSmsPara,(0x40b+2654-0xe67));tSmsPara.index=iSmsIndex;printf(
 "\x5b\x53\x4d\x53\x5d\x20\x5a\x6d\x67\x72\x20\x52\x65\x73\x70\x21\x20\x69\x6e\x64\x65\x78\x3a\x25\x64\x2f\x73\x74\x61\x74\x3a\x25\x64\x2f\x6c\x65\x6e\x67\x74\x68\x3a\x25\x64\x2e" "\n"
 ,tSmsPara.index,tSmsPara.stat,tSmsPara.length);}}int atSms_SendCmgdReq(PSTR 
-pAtCmdPara,int cid,PSTR pAtRst,int atRstSize){CHAR pAtcmdStr[(0x9bb+4693-0x1bfc)
-]={(0x218+5028-0x15bc)};snprintf(pAtcmdStr,sizeof(pAtcmdStr),
+pAtCmdPara,int cid,PSTR pAtRst,int atRstSize){CHAR pAtcmdStr[(0x1619+526-0x1813)
+]={(0x1750+2809-0x2249)};snprintf(pAtcmdStr,sizeof(pAtcmdStr),
 "\x41\x54\x2b\x43\x4d\x47\x44\x3d\x25\x73" "\r\n",pAtCmdPara);return 
 zSvr_SendAtSyn(ZAT_CMGD_CMD,pAtcmdStr,cid,pAtRst,atRstSize);}VOID 
-atSms_RecvCmgdOk(VOID){CHAR strUsed[(0x73b+3479-0x14c8)]={(0x1aa+1012-0x59e)};
-int used=(0x468+2044-0xc64);sc_cfg_set(NV_SMS_DEL_RESULT,"\x6f\x6b");printf(
+atSms_RecvCmgdOk(VOID){CHAR strUsed[(0xd41+2725-0x17dc)]={(0x1eb+3800-0x10c3)};
+int used=(0x407+4066-0x13e9);sc_cfg_set(NV_SMS_DEL_RESULT,"\x6f\x6b");printf(
 "\x5b\x53\x4d\x53\x5d\x20\x73\x65\x74\x20\x73\x69\x6d\x5f\x64\x65\x6c\x5f\x72\x65\x73\x75\x6c\x74\x20\x74\x6f\x20\x4f\x4b\x2e\x20" "\n"
 );sc_cfg_get(ZTE_WMS_NVCONFIG_SIM_CARD_USED,strUsed,sizeof(strUsed));used=atoi(
-strUsed)-(0x11bb+4997-0x253f);if(used<(0xdd7+1291-0x12e2)){used=
-(0x280+7315-0x1f13);}memset(&strUsed,(0x18b5+3439-0x2624),(0x446+8814-0x26aa));
-snprintf(strUsed,sizeof(strUsed),"\x25\x64",used);sc_cfg_set(
-ZTE_WMS_NVCONFIG_SIM_CARD_USED,strUsed);}VOID atSms_RecvCmgdErr(VOID){sc_cfg_set
-(NV_SMS_DEL_RESULT,"\x66\x61\x69\x6c");printf(
+strUsed)-(0xb67+5196-0x1fb2);if(used<(0x762+937-0xb0b)){used=(0x7d6+973-0xba3);}
+memset(&strUsed,(0x20f6+657-0x2387),(0xde8+6070-0x2594));snprintf(strUsed,sizeof
+(strUsed),"\x25\x64",used);sc_cfg_set(ZTE_WMS_NVCONFIG_SIM_CARD_USED,strUsed);}
+VOID atSms_RecvCmgdErr(VOID){sc_cfg_set(NV_SMS_DEL_RESULT,"\x66\x61\x69\x6c");
+printf(
 "\x5b\x53\x4d\x53\x5d\x20\x73\x65\x74\x20\x73\x69\x6d\x5f\x64\x65\x6c\x5f\x72\x65\x73\x75\x6c\x74\x20\x74\x6f\x20\x66\x61\x69\x6c\x2e\x20" "\n"
-);}VOID atSms_RecvCmgdFinish(VOID){char StrValue[(0x232+6923-0x1d33)]={
-(0x562+5169-0x1993)};CHAR strTotal[(0x10bb+616-0x1319)]={(0x147a+616-0x16e2)};
-CHAR strUsed[(0x187f+1462-0x1e2b)]={(0xaf0+5109-0x1ee5)};int total=
-(0x1daf+633-0x2028);int used=(0x120c+4762-0x24a6);int remain=(0xf23+4715-0x218e)
-;sc_cfg_get(ZTE_WMS_NVCONFIG_SIM_CARD_USED,strUsed,sizeof(strUsed));used=atoi(
+);}VOID atSms_RecvCmgdFinish(VOID){char StrValue[(0x1c84+983-0x2051)]={
+(0xc49+2424-0x15c1)};CHAR strTotal[(0x56a+3635-0x1393)]={(0xf18+2345-0x1841)};
+CHAR strUsed[(0x5fc+2898-0x1144)]={(0x1a17+2250-0x22e1)};int total=
+(0x845+2127-0x1094);int used=(0x872+5798-0x1f18);int remain=(0xf74+3779-0x1e37);
+sc_cfg_get(ZTE_WMS_NVCONFIG_SIM_CARD_USED,strUsed,sizeof(strUsed));used=atoi(
 strUsed);sc_cfg_get(ZTE_WMS_NVCONFIG_SIM_CARD_TOTAL,strTotal,sizeof(strTotal));
-total=atoi(strTotal);remain=total-used;if(remain<(0x675+4607-0x1874)){remain=
-(0xe1+4735-0x1360);}memset(&StrValue,(0x1238+2044-0x1a34),(0xa04+5197-0x1e47));
+total=atoi(strTotal);remain=total-used;if(remain<(0x2078+1178-0x2512)){remain=
+(0xecd+3185-0x1b3e);}memset(&StrValue,(0x33a+1109-0x78f),(0x7df+1582-0xe03));
 snprintf(StrValue,sizeof(StrValue),"\x25\x64",remain);sc_cfg_set(
 ZTE_WMS_NVCONFIG_SIM_CARD_REMAIN,StrValue);printf(
 "\x5b\x53\x4d\x53\x5d\x20\x7a\x55\x66\x69\x53\x6d\x73\x5f\x44\x65\x6c\x65\x74\x65\x53\x69\x6d\x53\x6d\x73\x20\x75\x73\x65\x64\x3d\x25\x64\x2c\x72\x65\x6d\x61\x69\x6e\x3d\x25\x64\x2c\x74\x6f\x74\x61\x6c\x3d\x25\x64" "\n"
 ,used,remain,total);zUfiSms_ChangeMainState(SMS_STATE_DELED);sc_cfg_set(
 NV_SMS_DB_CHANGE,"\x31");}int atSms_SendCmgsReq(PSTR pAtCmdPara,int cid,PSTR 
-pAtRst,int atRstSize){int atRes=(0x131d+3168-0x1f7d);CHAR pAtcmdStr[
-ZSMS_PDU_SIZE]={(0x1879+2769-0x234a)};snprintf(pAtcmdStr,sizeof(pAtcmdStr),
+pAtRst,int atRstSize){int atRes=(0x740+3241-0x13e9);CHAR pAtcmdStr[ZSMS_PDU_SIZE
+]={(0x6c0+7995-0x25fb)};snprintf(pAtcmdStr,sizeof(pAtcmdStr),
 "\x41\x54\x2b\x43\x4d\x47\x53\x3d\x25\x64" "\r\n",g_zUfiSms_FinalCmgsBuf.length)
 ;atRes=zSvr_SendAtSyn(ZAT_CMGS_CMD,pAtcmdStr,cid,pAtRst,atRstSize);if(atRes!=
-ZAT_RESULT_SMS){return atRes;}memset(pAtcmdStr,(0xe68+2819-0x196b),ZSMS_PDU_SIZE
-);if(strlen(g_zUfiSms_FinalCmgsBuf.pdu)<ZSMS_PDU_SIZE-(0x1fc+7730-0x202d)){
+ZAT_RESULT_SMS){return atRes;}memset(pAtcmdStr,(0x933+5519-0x1ec2),ZSMS_PDU_SIZE
+);if(strlen(g_zUfiSms_FinalCmgsBuf.pdu)<ZSMS_PDU_SIZE-(0xa4a+1485-0x1016)){
 memcpy(pAtcmdStr,g_zUfiSms_FinalCmgsBuf.pdu,strlen(g_zUfiSms_FinalCmgsBuf.pdu));
 }else{printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x53\x65\x6e\x64\x43\x6d\x67\x73\x52\x65\x71\x20\x70\x64\x75\x20\x74\x6f\x6f\x20\x6c\x6f\x6e\x67\x3a\x25\x73" "\n"
 ,g_zUfiSms_FinalCmgsBuf.pdu);memcpy(pAtcmdStr,g_zUfiSms_FinalCmgsBuf.pdu,
-ZSMS_PDU_SIZE-(0x911+6903-0x2406));}*(pAtcmdStr+strlen(g_zUfiSms_FinalCmgsBuf.
-pdu))=ZSMS_CTRL_Z_CHAR;memset(pAtRst,(0x42f+437-0x5e4),atRstSize);return 
+ZSMS_PDU_SIZE-(0x265+4821-0x1538));}*(pAtcmdStr+strlen(g_zUfiSms_FinalCmgsBuf.
+pdu))=ZSMS_CTRL_Z_CHAR;memset(pAtRst,(0x6c+8849-0x22fd),atRstSize);return 
 zSvr_SendAtSyn(ZAT_CMGS_CMD,pAtcmdStr,cid,pAtRst,atRstSize);}VOID 
 atSms_RecvCmgsOk(UINT8*pResLine,int cid){at_print(LOG_DEBUG,
 "\x73\x6d\x73\x20\x73\x65\x6e\x64\x65\x64\x20\x73\x75\x63\x63\x65\x73\x73\x2e\x20" "\n"
 );g_zUfiSms_CurConcatSegNo++;if(g_zUfiSms_CurConcatSegNo>
 ZTE_WMS_CONCAT_SMS_COUNT_MAX){return;}g_zUfiSms_DbStoreData[
-g_zUfiSms_CurConcatSegNo-(0x94a+2528-0x1329)].tag=WMS_TAG_TYPE_MO_SENT_V01;
+g_zUfiSms_CurConcatSegNo-(0x1587+4163-0x25c9)].tag=WMS_TAG_TYPE_MO_SENT_V01;
 zUfiSms_CmgsRespProc(cid);}VOID atSms_RecvCmgsErr(UINT8*pResLine,int cid){
 at_print(LOG_DEBUG,
 "\x73\x6d\x73\x20\x73\x65\x6e\x64\x65\x64\x20\x66\x61\x69\x6c\x2e\x20" "\n");
@@ -524,16 +523,16 @@
 ZTE_WMS_CONCAT_SMS_COUNT_MAX){return;}g_zUfiSms_SendFailedCount++;at_print(
 LOG_DEBUG,
 "\x73\x65\x6e\x64\x20\x73\x6d\x73\x20\x66\x61\x69\x6c\x65\x64\x2c\x73\x6f\x20\x77\x72\x69\x74\x65\x20\x73\x6d\x73\x20\x74\x6f\x20\x64\x72\x61\x66\x74\x62\x6f\x78\x2e" "\n"
-);g_zUfiSms_DbStoreData[g_zUfiSms_CurConcatSegNo-(0x1f39+1551-0x2547)].tag=
-WMS_TAG_TYPE_MO_NOT_SENT_V01;if(g_zUfiSms_ConcatTotalNum>(0x225+676-0x4c8)){
+);g_zUfiSms_DbStoreData[g_zUfiSms_CurConcatSegNo-(0x1455+4781-0x2701)].tag=
+WMS_TAG_TYPE_MO_NOT_SENT_V01;if(g_zUfiSms_ConcatTotalNum>(0x409+2826-0xf12)){
 g_zUfiSms_IsConcatSendSuc=FALSE;}zUfiSms_CmgsRespProc(cid);}VOID 
 atSms_RecvCmgsRsp(T_zAt_AtRes*pResLine){return;}VOID atSms_RecvCmtRsp(
-T_zAt_AtRes*pResLine){CHAR needSMS[(0xbef+4416-0x1cfd)]={(0x44b+2005-0xc20)};
-sc_cfg_get(NV_NEED_SUPPORT_SMS,needSMS,sizeof(needSMS));if((0x12c9+4242-0x235b)
-==strcmp(needSMS,"\x6e\x6f")){printf(
+T_zAt_AtRes*pResLine){CHAR needSMS[(0x3a8+2380-0xcc2)]={(0x1ab+5895-0x18b2)};
+sc_cfg_get(NV_NEED_SUPPORT_SMS,needSMS,sizeof(needSMS));if((0x23f1+789-0x2706)==
+strcmp(needSMS,"\x6e\x6f")){printf(
 "\x5b\x53\x4d\x53\x5d\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x6d\x74\x52\x73\x70\x20\x6e\x65\x65\x64\x53\x4d\x53\x3d\x6e\x6f\x21"
-);return;}static T_zUfiSms_SmsItem tSmsPara={(0x5b5+3888-0x14e5)};
-T_zUfiSms_CmtSetRsp tCmtRsp={(0x195d+1280-0x1e5d)};if(NULL==pResLine){return;}
+);return;}static T_zUfiSms_SmsItem tSmsPara={(0x6d2+3570-0x14c4)};
+T_zUfiSms_CmtSetRsp tCmtRsp={(0xf12+441-0x10cb)};if(NULL==pResLine){return;}
 printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x6d\x74\x52\x73\x70\x20\x45\x6e\x74\x65\x72\x20\x70\x64\x75\x46\x6c\x61\x67\x3a\x25\x64\x2f\x50\x61\x72\x61\x73\x3a\x25\x73\x2f\x72\x65\x73\x75\x6c\x74\x3a\x25\x64\x2e" "\n"
 ,pResLine->pduFlag,pResLine->resParas,pResLine->result);if(pResLine->pduFlag==
@@ -543,121 +542,119 @@
 "\x25\x35\x30\x30\x73",tCmtRsp.pdu);pthread_mutex_lock(&smsdb_mutex);
 zUfiSms_CmtRespProc(&tCmtRsp);zUfiMmi_SendSmsStatus();pthread_mutex_unlock(&
 smsdb_mutex);sc_cfg_set(NV_SMS_RECV_RESULT,"\x6f\x6b");}else{memset(&tSmsPara,
-(0x685+6385-0x1f76),sizeof(T_zUfiSms_SmsItem));atBase_PreProcRes(pResLine->
+(0x2633+137-0x26bc),sizeof(T_zUfiSms_SmsItem));atBase_PreProcRes(pResLine->
 resParas,sizeof(pResLine->resParas));printf(
 "\x5b\x53\x4d\x53\x5d\x20\x63\x6d\x74\x20\x69\x6e\x64\x21\x20\x70\x52\x65\x73\x4c\x69\x6e\x65\x2d\x3e\x72\x65\x73\x50\x61\x72\x61\x73\x3a\x25\x73\x2e" "\n"
 ,pResLine->resParas);sscanf(pResLine->resParas,"\x25\x73\x20\x25\x64",tSmsPara.
 alpha,&tSmsPara.length);printf(
 "\x5b\x53\x4d\x53\x5d\x20\x63\x6d\x74\x20\x69\x6e\x64\x21\x20\x6c\x65\x6e\x67\x74\x68\x3a\x25\x64\x2e" "\n"
 ,tSmsPara.length);}}VOID atSms_RecvCmtiRsp(T_zAt_AtRes*pResLine){CHAR needSMS[
-(0xac0+6217-0x22d7)]={(0x597+3467-0x1322)};sc_cfg_get(NV_NEED_SUPPORT_SMS,
-needSMS,sizeof(needSMS));if((0x646+7851-0x24f1)==strcmp(needSMS,"\x6e\x6f")){
-printf(
+(0x94c+7171-0x251d)]={(0x51+3978-0xfdb)};sc_cfg_get(NV_NEED_SUPPORT_SMS,needSMS,
+sizeof(needSMS));if((0x2f4+4647-0x151b)==strcmp(needSMS,"\x6e\x6f")){printf(
 "\x5b\x53\x4d\x53\x5d\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x6d\x74\x52\x73\x70\x20\x6e\x65\x65\x64\x53\x4d\x53\x3d\x6e\x6f\x21"
-);return;}char sms_Main_state[(0x6d1+6272-0x1f33)]={(0x129f+5090-0x2681)};char*
+);return;}char sms_Main_state[(0xa46+6941-0x2545)]={(0x104b+4851-0x233e)};char*
 memory=NULL;printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x6d\x74\x69\x52\x73\x70\x20\x65\x6e\x74\x65\x72\x20\x25\x73\x2e" "\n"
 ,pResLine->resParas);if(NULL==pResLine){return;}if(ZAT_CMTI_CMD!=pResLine->
 atCmdId){return;}sc_cfg_get(NV_SMS_STATE,sms_Main_state,sizeof(sms_Main_state));
 if(strcmp(sms_Main_state,"\x73\x6d\x73\x5f\x64\x65\x6c\x69\x6e\x67")==
-(0x10b5+893-0x1432)){printf(
+(0x1174+3150-0x1dc2)){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x6d\x74\x69\x52\x73\x70\x3a\x20\x73\x6d\x73\x5f\x64\x65\x6c\x69\x6e\x67" "\n"
 );return;}memory=strstr(pResLine->resParas,"\"");if(NULL!=memory){memory++;}if(
-(0xfd+9338-0x2577)==strncmp("\x53\x4d",memory,(0x9f6+5209-0x1e4d))){
+(0x440+6858-0x1f0a)==strncmp("\x53\x4d",memory,(0x8c1+5213-0x1d1c))){
 zUfiSms_SetSmsLocation(SMS_LOCATION_SIM);zUfiSms_ChangeMainState(
-SMS_STATE_RECVING);memory+=(0x395+6683-0x1dac);printf(
+SMS_STATE_RECVING);memory+=(0x1da4+2153-0x2609);printf(
 "\x5b\x53\x4d\x53\x5d\x20\x73\x65\x6e\x64\x20\x63\x6d\x67\x72\x3a\x20\x25\x73" "\n"
 ,memory);zSvr_InnerSendMsg(ZUFI_MODULE_ID_AT_LOCAL,ZUFI_MODULE_ID_AT_UNSOLI,
 MSG_CMD_AT_ZMGR,strlen(memory),memory);}else{printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x6d\x74\x69\x52\x73\x70\x20\x3a\x73\x74\x6f\x72\x65\x20\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x20\x6e\x6f\x74\x20\x53\x4d\x2e" "\n"
 );}sc_cfg_set(NV_SMS_RECV_RESULT,"");}VOID atSms_RecvCdsRsp(T_zAt_AtRes*pResLine
-){CHAR needSMS[(0xfca+674-0x123a)]={(0x87a+6492-0x21d6)};sc_cfg_get(
-NV_NEED_SUPPORT_SMS,needSMS,sizeof(needSMS));if((0x7d8+6247-0x203f)==strcmp(
+){CHAR needSMS[(0x362+3196-0xfac)]={(0x880+5542-0x1e26)};sc_cfg_get(
+NV_NEED_SUPPORT_SMS,needSMS,sizeof(needSMS));if((0x207+3149-0xe54)==strcmp(
 needSMS,"\x6e\x6f")){printf(
 "\x5b\x53\x4d\x53\x5d\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x6d\x74\x52\x73\x70\x20\x6e\x65\x65\x64\x53\x4d\x53\x3d\x6e\x6f\x21"
-);return;}static T_zUfiSms_SmsItem tSmsPara={(0x8a6+2842-0x13c0)};
-T_zUfiSms_CmgrSetRsp tCmgrRsp={(0xa12+5740-0x207e)};if(NULL==pResLine){return;}
-if(pResLine->pduFlag==ZAT_ATRES_PDU_FLAG){if(ZAT_RESULT_AUTOREPORT!=pResLine->
+);return;}static T_zUfiSms_SmsItem tSmsPara={(0x12e2+3804-0x21be)};
+T_zUfiSms_CmgrSetRsp tCmgrRsp={(0x2f+8270-0x207d)};if(NULL==pResLine){return;}if
+(pResLine->pduFlag==ZAT_ATRES_PDU_FLAG){if(ZAT_RESULT_AUTOREPORT!=pResLine->
 result){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x64\x73\x52\x73\x70\x20\x67\x65\x74\x20\x72\x65\x73\x75\x6c\x74\x20\x45\x72\x72\x6f\x72\x2e" "\n"
 );return;}tCmgrRsp.length=tSmsPara.length;sscanf(pResLine->resParas,
 "\x25\x35\x30\x30\x73",tCmgrRsp.pdu);pthread_mutex_lock(&smsdb_mutex);
 zUfiSms_CdsRespProc(&tCmgrRsp);zUfiMmi_SendSmsStatus();pthread_mutex_unlock(&
 smsdb_mutex);sc_cfg_set(NV_SMS_RECV_RESULT,"\x6f\x6b");}else{memset(&tSmsPara,
-(0xe43+1433-0x13dc),sizeof(T_zUfiSms_SmsItem));atBase_PreProcRes(pResLine->
+(0x9da+347-0xb35),sizeof(T_zUfiSms_SmsItem));atBase_PreProcRes(pResLine->
 resParas,sizeof(pResLine->resParas));printf(
 "\x5b\x53\x4d\x53\x5d\x20\x63\x64\x73\x20\x69\x6e\x64\x21\x20\x70\x52\x65\x73\x4c\x69\x6e\x65\x2d\x3e\x72\x65\x73\x50\x61\x72\x61\x73\x3a\x25\x73\x2e" "\n"
 ,pResLine->resParas);sscanf(pResLine->resParas,"\x25\x73\x20\x25\x64",tSmsPara.
 alpha,&tSmsPara.length);printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x64\x73\x52\x73\x70\x20\x63\x64\x73\x20\x69\x6e\x64\x21\x20\x6c\x65\x6e\x67\x74\x68\x3a\x25\x64\x2e" "\n"
 ,tSmsPara.length);}}VOID atSms_RecvCdsiRsp(T_zAt_AtRes*pResLine){CHAR needSMS[
-(0x651+7827-0x24b2)]={(0x1a89+2696-0x2511)};sc_cfg_get(NV_NEED_SUPPORT_SMS,
-needSMS,sizeof(needSMS));if((0x1cba+1671-0x2341)==strcmp(needSMS,"\x6e\x6f")){
+(0x76a+4519-0x18df)]={(0x1066+2419-0x19d9)};sc_cfg_get(NV_NEED_SUPPORT_SMS,
+needSMS,sizeof(needSMS));if((0x6f9+7757-0x2546)==strcmp(needSMS,"\x6e\x6f")){
 printf(
 "\x5b\x53\x4d\x53\x5d\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x6d\x74\x52\x73\x70\x20\x6e\x65\x65\x64\x53\x4d\x53\x3d\x6e\x6f\x21"
-);return;}char sms_Main_state[(0x1ba+3515-0xf57)]={(0xcc3+1462-0x1279)};char*
+);return;}char sms_Main_state[(0x258+7038-0x1db8)]={(0x1c3f+1106-0x2091)};char*
 memory=NULL;printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x64\x73\x69\x52\x73\x70\x20\x65\x6e\x74\x65\x72\x20\x25\x73\x2e" "\n"
 ,pResLine->resParas);if(NULL==pResLine){return;}if(ZAT_CDSI_CMD!=pResLine->
 atCmdId){return;}sc_cfg_get(NV_SMS_STATE,sms_Main_state,sizeof(sms_Main_state));
 if(strcmp(sms_Main_state,"\x73\x6d\x73\x5f\x64\x65\x6c\x69\x6e\x67")==
-(0xc98+2443-0x1623)){printf(
+(0x9a+3559-0xe81)){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x64\x73\x69\x52\x73\x70\x3a\x20\x73\x6d\x73\x5f\x64\x65\x6c\x69\x6e\x67" "\n"
 );return;}memory=strstr(pResLine->resParas,"\"");if(NULL!=memory){memory++;}
 printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x64\x73\x69\x52\x73\x70\x3a\x20\x6d\x65\x6d\x6f\x72\x79\x20\x3d\x20\x25\x73" "\n"
-,memory);if((0x134c+655-0x15db)==strncmp("\x53\x4d",memory,(0x278+4855-0x156d)))
-{zUfiSms_SetSmsLocation(SMS_LOCATION_SIM);zUfiSms_ChangeMainState(
-SMS_STATE_RECVING);memory+=(0x13a+7886-0x2004);printf(
+,memory);if((0x207d+239-0x216c)==strncmp("\x53\x4d",memory,(0x2102+1180-0x259c))
+){zUfiSms_SetSmsLocation(SMS_LOCATION_SIM);zUfiSms_ChangeMainState(
+SMS_STATE_RECVING);memory+=(0x1885+2652-0x22dd);printf(
 "\x5b\x53\x4d\x53\x5d\x20\x73\x65\x6e\x64\x20\x63\x6d\x67\x72\x3a\x20\x25\x73" "\n"
 ,memory);zSvr_InnerSendMsg(ZUFI_MODULE_ID_AT_LOCAL,ZUFI_MODULE_ID_AT_UNSOLI,
 MSG_CMD_AT_ZMGR,strlen(memory),memory);}else{printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x52\x65\x63\x76\x43\x64\x73\x69\x52\x73\x70\x20\x3a\x73\x74\x6f\x72\x65\x20\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x20\x6e\x6f\x74\x20\x53\x4d\x2e" "\n"
 );}sc_cfg_set(NV_SMS_RECV_RESULT,"");}int atSms_SendZmenaReq(PSTR pAtCmdPara,int
- cid,PSTR pAtRst,int atRstSize){CHAR pAtcmdStr[(0x45a+4214-0x14bc)]={
-(0x999+7454-0x26b7)};snprintf(pAtcmdStr,sizeof(pAtcmdStr),
+ cid,PSTR pAtRst,int atRstSize){CHAR pAtcmdStr[(0xe5f+5909-0x2560)]={
+(0xdfb+4485-0x1f80)};snprintf(pAtcmdStr,sizeof(pAtcmdStr),
 "\x41\x54\x2b\x5a\x4d\x45\x4e\x41\x3d\x25\x73" "\r\n",pAtCmdPara);return 
 zSvr_SendAtSyn(ZAT_ZMENA_CMD,pAtcmdStr,cid,pAtRst,atRstSize);}VOID 
 atSms_RecvZmenaOk(VOID){g_Zmena_rsp=TRUE;return;}VOID atSms_RecvZmenaErr(VOID){
 g_Zmena_rsp=FALSE;return;}int atSms_SendCnmaReq(PSTR pAtCmdPara,int cid,PSTR 
-pAtRst,int atRstSize){int atRes=(0x1039+4696-0x2291);CHAR pAtcmdStr[
-ZSMS_PDU_SIZE]={(0x11f3+5244-0x266f)};CHAR ackPduStr[(0xfba+887-0x12ff)]={
-(0x1626+2828-0x2132)};if(atoi(pAtCmdPara)==(0x1ebb+150-0x1f50)){snprintf(
-pAtcmdStr,sizeof(pAtcmdStr),"\x41\x54\x2b\x43\x4e\x4d\x41\x3d\x25\x73" "\r\n",
-pAtCmdPara);atRes=zSvr_SendAtSyn(ZAT_CNMA_CMD,pAtcmdStr,cid,pAtRst,atRstSize);
-printf(
+pAtRst,int atRstSize){int atRes=(0xdf2+589-0x103f);CHAR pAtcmdStr[ZSMS_PDU_SIZE]
+={(0x55b+7565-0x22e8)};CHAR ackPduStr[(0x8b7+5849-0x1f5e)]={(0xffc+5349-0x24e1)}
+;if(atoi(pAtCmdPara)==(0x252+5936-0x1981)){snprintf(pAtcmdStr,sizeof(pAtcmdStr),
+"\x41\x54\x2b\x43\x4e\x4d\x41\x3d\x25\x73" "\r\n",pAtCmdPara);atRes=
+zSvr_SendAtSyn(ZAT_CNMA_CMD,pAtcmdStr,cid,pAtRst,atRstSize);printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x53\x65\x6e\x64\x43\x6e\x6d\x61\x52\x65\x71\x20\x31\x31\x31\x31\x31\x31\x20\x61\x63\x6b\x20\x6f\x6b\x20\x3d\x20\x25\x73\x2e" "\n"
-,pAtcmdStr);return(0x3f6+7273-0x205f);}else{zUfiSms_EncodePdu_DeliverReport(
-ackPduStr,(0x27d+144-0x23a));snprintf(pAtcmdStr,sizeof(pAtcmdStr),
+,pAtcmdStr);return(0xa0f+539-0xc2a);}else{zUfiSms_EncodePdu_DeliverReport(
+ackPduStr,(0xf7f+555-0x10d7));snprintf(pAtcmdStr,sizeof(pAtcmdStr),
 "\x41\x54\x2b\x43\x4e\x4d\x41\x3d\x25\x73\x2c\x25\x64" "\r\n",pAtCmdPara,strlen(
-ackPduStr)/(0x4ed+5765-0x1b70));atRes=zSvr_SendAtSyn(ZAT_CNMA_CMD,pAtcmdStr,cid,
+ackPduStr)/(0x7bd+682-0xa65));atRes=zSvr_SendAtSyn(ZAT_CNMA_CMD,pAtcmdStr,cid,
 pAtRst,atRstSize);if(atRes!=ZAT_RESULT_SMS){return atRes;}printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x53\x65\x6e\x64\x43\x6e\x6d\x61\x52\x65\x71\x20\x3d\x20\x25\x73\x2e" "\n"
-,pAtcmdStr);memset(pAtcmdStr,(0x152c+2703-0x1fbb),ZSMS_PDU_SIZE);if(strlen(
-ackPduStr)<ZSMS_PDU_SIZE-(0x193c+2408-0x22a3)){memcpy(pAtcmdStr,ackPduStr,strlen
-(ackPduStr));}else{printf(
+,pAtcmdStr);memset(pAtcmdStr,(0x1386+4733-0x2603),ZSMS_PDU_SIZE);if(strlen(
+ackPduStr)<ZSMS_PDU_SIZE-(0x1a7+7860-0x205a)){memcpy(pAtcmdStr,ackPduStr,strlen(
+ackPduStr));}else{printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x53\x65\x6e\x64\x43\x6d\x67\x73\x52\x65\x71\x20\x70\x64\x75\x20\x74\x6f\x6f\x20\x6c\x6f\x6e\x67\x3a\x25\x73" "\n"
-,ackPduStr);memcpy(pAtcmdStr,ackPduStr,ZSMS_PDU_SIZE-(0xc48+6177-0x2467));}*(
+,ackPduStr);memcpy(pAtcmdStr,ackPduStr,ZSMS_PDU_SIZE-(0xd07+5959-0x244c));}*(
 pAtcmdStr+strlen(ackPduStr))=ZSMS_CTRL_Z_CHAR;printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x53\x6d\x73\x5f\x53\x65\x6e\x64\x43\x6e\x6d\x61\x52\x65\x71\x2e\x20\x70\x64\x75\x3d\x20\x25\x73" "\n"
-,pAtcmdStr);memset(pAtRst,(0xd06+2705-0x1797),atRstSize);return zSvr_SendAtSyn(
+,pAtcmdStr);memset(pAtRst,(0x1208+2303-0x1b07),atRstSize);return zSvr_SendAtSyn(
 ZAT_CNMA_CMD,pAtcmdStr,cid,pAtRst,atRstSize);}}VOID atSms_RecvCnmaRsp(
 T_zAt_AtRes*pResLine){return;}VOID atUnsoli_Delete_Sim_Sms(UINT8*pDatabuf,int 
-cid){CHAR errCode[ZSVR_AT_RES_CODE_LEN]={(0x1a7c+373-0x1bf1)};int atRes=
-(0x86f+4593-0x1a60);if(pDatabuf==NULL){return;}atRes=atSms_SendCmgdReq(pDatabuf,
+cid){CHAR errCode[ZSVR_AT_RES_CODE_LEN]={(0x199a+1544-0x1fa2)};int atRes=
+(0xf69+2605-0x1996);if(pDatabuf==NULL){return;}atRes=atSms_SendCmgdReq(pDatabuf,
 cid,errCode,ZSVR_AT_RES_CODE_LEN);if(atRes==ZSMS_RESULT_OK){atSms_RecvCmgdOk();}
 else{atSms_RecvCmgdErr();}atSms_RecvCmgdFinish();}VOID atUnsoli_Report_Cnma(
-UINT8*pDatabuf,int cid){CHAR errCode[ZSVR_AT_RES_CODE_LEN]={(0xb5a+5500-0x20d6)}
+UINT8*pDatabuf,int cid){CHAR errCode[ZSVR_AT_RES_CODE_LEN]={(0x11ef+902-0x1575)}
 ;if(pDatabuf==NULL){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x55\x6e\x73\x6f\x6c\x69\x5f\x52\x65\x70\x6f\x72\x74\x5f\x43\x6e\x6d\x61\x20\x6e\x75\x6c\x6c"
 );return;}atSms_SendCnmaReq(pDatabuf,cid,errCode,ZSVR_AT_RES_CODE_LEN);}VOID 
 atUnsoli_Report_Zmena(UINT8*pDatabuf,int cid){CHAR errCode[ZSVR_AT_RES_CODE_LEN]
-={(0x1994+2126-0x21e2)};int atRes=(0x404+1407-0x983);if(pDatabuf==NULL){printf(
+={(0x740+7773-0x259d)};int atRes=(0x6b+4278-0x1121);if(pDatabuf==NULL){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x55\x6e\x73\x6f\x6c\x69\x5f\x52\x65\x70\x6f\x72\x74\x5f\x5a\x6d\x65\x6e\x61\x20\x6e\x75\x6c\x6c"
 );return;}atRes=atSms_SendZmenaReq(pDatabuf,cid,errCode,ZSVR_AT_RES_CODE_LEN);if
 (atRes==ZSMS_RESULT_OK){atSms_RecvZmenaOk();}else{atSms_RecvZmenaErr();}}VOID 
 atUnsoli_Report_Zmgr(UINT8*pDatabuf,int cid){CHAR errCode[ZSVR_AT_RES_CODE_LEN]=
-{(0x237+4364-0x1343)};if(pDatabuf==NULL){printf(
+{(0x1f1+5195-0x163c)};if(pDatabuf==NULL){printf(
 "\x5b\x53\x4d\x53\x5d\x20\x61\x74\x55\x6e\x73\x6f\x6c\x69\x5f\x52\x65\x70\x6f\x72\x74\x5f\x5a\x6d\x67\x72\x20\x6e\x75\x6c\x6c"
 );return;}atSms_SendZmgrReq(pDatabuf,cid,errCode,ZSVR_AT_RES_CODE_LEN);}
 #endif

diff --git a/ap/app/zte_comm/wlan/src/wifi_ap_ctrl.c b/ap/app/zte_comm/wlan/src/wifi_ap_ctrl.c
index 814eb4a..7c10c50 100755
--- a/ap/app/zte_comm/wlan/src/wifi_ap_ctrl.c
+++ b/ap/app/zte_comm/wlan/src/wifi_ap_ctrl.c
@@ -643,8 +643,14 @@
      		"macaddr_acl=%d\n"
     		"accept_mac_file=/etc_rw/wifi/hostapd.accept\n"
     		"deny_mac_file=/etc_rw/wifi/hostapd.deny\n"
-
+#if defined(__AIC_8800DW_CHIP__)
+			//nangui use default
 			"ap_max_inactivity=10\n"
+#endif
+#if defined(__SSV_6X5X_CHIP__)
+			//nangui
+			"skip_inactivity_poll=1\n"
+#endif
     		"wps_state=2\n"
     		"eap_server=1\n"
     		"ap_setup_locked=1\n"
@@ -697,7 +703,12 @@
 			"macaddr_acl=%d\n"
     		"accept_mac_file=/etc_rw/wifi/hostapd.accept\n"
     		"deny_mac_file=/etc_rw/wifi/hostapd.deny\n"
+#if defined(__AIC_8800DW_CHIP__)
 			"ap_max_inactivity=10\n"
+#endif
+#if defined(__SSV_6X5X_CHIP__)
+			"skip_inactivity_poll=1\n"
+#endif
 			"wps_state=2\n"
     		"eap_server=1\n"
     		"ap_setup_locked=1\n"
diff --git a/ap/app/zte_comm/wlan/src/wifi_util.c b/ap/app/zte_comm/wlan/src/wifi_util.c
index 8acc480..946d86a 100755
--- a/ap/app/zte_comm/wlan/src/wifi_util.c
+++ b/ap/app/zte_comm/wlan/src/wifi_util.c
@@ -999,7 +999,7 @@
 	bs_aes_encrypt(w_code, WIFI_PSW_MAN_LEN, b_aes, wifi_aes_key, sizeof(wifi_aes_key));

 	wifi_bytes2string(b_aes, s_aes, WIFI_PSW_MAN_LEN);

 	sc_cfg_set("WPAPSK1_aes", s_aes);

-	printf("encrypt psk1 w_code=%s, s_aes=%s\n", w_code, s_aes);

+	printf("encrypt psk1\n");

 

 	memset(w_code, 0, sizeof(w_code));

 	memset(b_aes, 0, sizeof(b_aes));

@@ -1008,7 +1008,7 @@
 	bs_aes_encrypt(w_code, WIFI_PSW_MAN_LEN, b_aes, wifi_aes_key, sizeof(wifi_aes_key));

 	wifi_bytes2string(b_aes, s_aes, WIFI_PSW_MAN_LEN);

 	sc_cfg_set("m_WPAPSK1_aes", s_aes);

-	printf("encrypt psk2 w_code=%s, s_aes=%s\n", w_code, s_aes);

+	printf("encrypt psk2\n");

 

 	return 1;

 }

@@ -1025,7 +1025,7 @@
 		return 0;

 	}

 	sc_cfg_set("WPAPSK1", (char *)p_code);

-	printf("decrypt psk1 b_code=%s, p_code=%s\n", b_code, p_code);

+	printf("decrypt psk1\n");

 	free(p_code);

 

 	return 1;

@@ -1043,7 +1043,7 @@
 		return 0;

 	}

 	sc_cfg_set("m_WPAPSK1", (char *)p_code);

-	printf("decrypt psk2 b_code=%s, p_code=%s\n", b_code, p_code);

+	printf("decrypt psk2\n");

 	free(p_code);

 

 	return 1;

@@ -1062,7 +1062,7 @@
 		wifi_string2bytes(s_aes, b_aes, WIFI_PSW_MAN_LEN*2);

 		bs_aes_decrypt(b_aes, WIFI_PSW_MAN_LEN, w_code, wifi_aes_key, sizeof(wifi_aes_key));

 		sc_cfg_set("WPAPSK1", w_code);

-//		printf("decrypt psk1 w_code=%s, s_aes=%s\n", w_code, s_aes);

+		printf("dec1\n");

 	} else {

 		if (wifi_decode_b64_psk1()) {

 			flag = 1;

@@ -1079,7 +1079,7 @@
 		wifi_string2bytes(s_aes, b_aes, WIFI_PSW_MAN_LEN*2);

 		bs_aes_decrypt(b_aes, WIFI_PSW_MAN_LEN, w_code, wifi_aes_key, sizeof(wifi_aes_key));

 		sc_cfg_set("m_WPAPSK1", w_code);

-//		printf("decrypt psk2 w_code=%s, s_aes=%s\n", w_code, s_aes);

+		printf("dec2\n");

 	} else {

 		if (wifi_decode_b64_psk2()) {

 			flag = 1;

diff --git a/ap/app/zte_comm/zte_drv_ctrl/serial/zte_drv_serial_ctrl.c b/ap/app/zte_comm/zte_drv_ctrl/serial/zte_drv_serial_ctrl.c
index 4bf4fe9..7c5e459 100755
--- a/ap/app/zte_comm/zte_drv_ctrl/serial/zte_drv_serial_ctrl.c
+++ b/ap/app/zte_comm/zte_drv_ctrl/serial/zte_drv_serial_ctrl.c
@@ -1412,17 +1412,21 @@
 	int uart_wakeup16 = 0;

 	char uart_software[32] = {0};

 	int uart_software16 = 0;

+	char uart_app_ctrl[16] = {0};

+	int uart_app_ctrl16 = 0;

    	 int i = 0;

 	

 	sc_cfg_get("uart_control",uart_control,sizeof(uart_control));

 	sc_cfg_get("uart_ctstrs_enable",uart_ctsrts,sizeof(uart_ctsrts));

 	sc_cfg_get("uart_wakeup_enable",uart_wakeup,sizeof(uart_wakeup));

 	sc_cfg_get("uart_softcontrol_enable",uart_software,sizeof(uart_software));

+	sc_cfg_get("uart_app_ctrl",uart_app_ctrl,sizeof(uart_app_ctrl));

 			

 	uart_control16 = atoi(uart_control);

 	uart_ctsrts16 = atoi(uart_ctsrts);

 	uart_wakeup16 = atoi(uart_wakeup);

 	uart_software16 = atoi(uart_software);

+	uart_app_ctrl16 = atoi(uart_app_ctrl);

 	

 	for(i=0;i<4;i++)

 	{

@@ -1448,15 +1452,38 @@
 					//notify_atctl_open_atport(uart_control_nam,1);

 					slog(DRVCOMMNG_PRINT,SLOG_DEBUG,"drvcommng uart:%d,wakeup enable\n",i);

 				}

+				if((uart_app_ctrl16&0x1) == 1){

+					snprintf(uart_path, sizeof(uart_path) , "%s%d%s", Uart_Path, i, APP_CTRL_LOWPOWER);

+					writefile(uart_path,"1",1);

+					//notify_atctl_open_atport(uart_control_nam,1);

+					slog(DRVCOMMNG_PRINT,SLOG_DEBUG,"drvcommng uart:%d,uart_app_ctrl enable\n",i);

+				}

 			}

 		}

 		uart_control16=uart_control16>>1;

 		uart_ctsrts16=uart_ctsrts16>>1;

 		uart_wakeup16=uart_wakeup16>>1;

 		uart_software16=uart_software16>>1;

+		uart_app_ctrl16=uart_app_ctrl16>>1;

 	}

 

 }

+#ifdef USE_CAP_SUPPORT

+#define CORE_ID_OCCUPY_UART_PATH "/sys/devices/platform/zx29_uart.1/coreid_occupy_uart"

+void get_which_core_occupy_uart(void)

+{

+		char uart_occupy_core_id[4] = {0};

+		sc_cfg_get("uart_console_coreid",uart_occupy_core_id,sizeof(uart_occupy_core_id));

+		if(strcmp("1" , uart_occupy_core_id) == 0){

+			writefile(CORE_ID_OCCUPY_UART_PATH, "1", 1);

+			printf("uart_console_coreid is %s.",uart_occupy_core_id);

+		}

+		else if(strcmp("2" , uart_occupy_core_id) == 0){

+			writefile(CORE_ID_OCCUPY_UART_PATH, "2", 1);

+			printf("uart_console_coreid is %s.",uart_occupy_core_id);

+		}			

+}

+#endif

 void zte_drv_serial_ctrl_main()

 {

 	int iMsgHandle = 0;

@@ -1464,7 +1491,9 @@
     MSG_BUF stMsg;

     LONG msgSize =  sizeof(MSG_BUF)-sizeof(LONG);

     int interruptSIG = 0;

-

+#ifdef USE_CAP_SUPPORT

+	get_which_core_occupy_uart();

+#endif

 	prctl(PR_SET_NAME, "serial_ctrl", 0, 0, 0);

     sc_cfg_get("notify_forbiden_ports",notify_forbid_dev,sizeof(notify_forbid_dev));

     sc_cfg_get("self_adaption_port",g_selfAdaptionPort,sizeof(g_selfAdaptionPort));

diff --git a/ap/app/zte_comm/zte_drv_ctrl/serial/zte_drv_serial_ctrl.h b/ap/app/zte_comm/zte_drv_ctrl/serial/zte_drv_serial_ctrl.h
index 2f0a3bb..22016ef 100755
--- a/ap/app/zte_comm/zte_drv_ctrl/serial/zte_drv_serial_ctrl.h
+++ b/ap/app/zte_comm/zte_drv_ctrl/serial/zte_drv_serial_ctrl.h
@@ -20,6 +20,7 @@
 #define Uart_Path              "/sys/devices/platform/zx29_uart."

 #define CtsRts_EN              "/ctsrts_input"

 #define Wakeup_EN              "/wakeup_enable"

+#define APP_CTRL_LOWPOWER      "/app_ctrl"

 #define STR_USB_MODE_TYPE                "usb_modetype"

 

 #define CTSRTS_ENABLE 1

diff --git a/ap/app/zte_comm/zte_mainctrl/net_xfrm.c b/ap/app/zte_comm/zte_mainctrl/net_xfrm.c
index 87cba76..0f22c1d 100755
--- a/ap/app/zte_comm/zte_mainctrl/net_xfrm.c
+++ b/ap/app/zte_comm/zte_mainctrl/net_xfrm.c
@@ -1700,7 +1700,7 @@
 
 	INIT_LIST_HEAD(&ip_queue->list);
 	memset(ip_queue->ip, 0, ZTE_ROUTER_IP_ADDR_LEN);
-	strncpy(ip_queue->ip, ip, strlen(ip));
+	strncpy(ip_queue->ip, ip, sizeof(ip_queue->ip)-1);
 	list_add_tail(&ip_queue->list, head);
 
 	slog(NET_PRINT, SLOG_DEBUG, "notify_list_add_firewall ip:%s success\n", ip);
@@ -1736,7 +1736,7 @@
 	}
 }
 
-zte_iptables_firewall_rule_run(struct list_head *head)
+void zte_iptables_firewall_rule_run(struct list_head *head)
 {
 	int i = 0;
 	char nv_name[ROUTER_NV_ITEM_VALUE_MAX_LEN] = {0};
@@ -1746,12 +1746,12 @@
 	/*flush Firewall chain*/
 	memset(cmd, 0, sizeof(cmd));
 	sprintf(cmd, "iptables -F %s %s", FIREWALL_CHAIN, FMT_ECHO_IPTABLES_CMD);
-	system(cmd);
+	system_cmd_ex(cmd);
 
 	list_for_each_entry(tmp, head, list) {
 		memset(cmd, 0, sizeof(cmd));
 		sprintf(cmd, "iptables -A %s -s %s -j DROP", FIREWALL_CHAIN, tmp->ip);
-		system(cmd);
+		system_cmd_ex(cmd);
 		//slog(NET_PRINT, SLOG_NORMAL, "zte_iptables_firewall_rule_run cmd:%s\n", cmd);
 
 		//sprintf(nv_name, "Firewall_IP-%d", i++);
@@ -1788,11 +1788,11 @@
 	char cmd[1024] = {0};
 
 	sprintf(cmd, "iptables -N %s", FIREWALL_CHAIN);
-	system(cmd);
+	system_cmd_ex(cmd);
 
 	memset(cmd, 0, sizeof(cmd));
 	sprintf(cmd, "iptables -A INPUT -j %s", FIREWALL_CHAIN);
-	system(cmd);
+	system_cmd_ex(cmd);
 }
 #endif
 
diff --git a/ap/app/zte_comm/zte_mainctrl/netdev_proc.c b/ap/app/zte_comm/zte_mainctrl/netdev_proc.c
index af06226..3e6f34c 100755
--- a/ap/app/zte_comm/zte_mainctrl/netdev_proc.c
+++ b/ap/app/zte_comm/zte_mainctrl/netdev_proc.c
@@ -6,6 +6,11 @@
 #define IPV6_RA_FLAG_MANAGED (1<<1)
 #define IPV6_RA_FLAG_OTHER_CONFIG (1<<0)
 
+#define DEFAULT_IPV4_DNS1 "114.114.114.114"
+#define DEFAULT_IPV4_DNS2 "8.8.8.8"
+#define DEFAULT_IPV6_DNS1 "240c::6666"
+#define DEFAULT_IPV6_DNS2 "2001:4860:4860::8888"
+
 char defwan_if_old[ZTE_ROUTER_WAN_IF_NAME_LEN] = {0};
 char defwan6_if_old[ZTE_ROUTER_WAN_IF_NAME_LEN] = {0};
 
@@ -344,11 +349,11 @@
 	if(dns1)
 		snprintf(dns1_s, sizeof(dns1_s), "%s", actinfo->act_info.pri_dns);
 	else
-		snprintf(dns1_s, sizeof(dns1_s), "%s", "114.114.114.114");
+		snprintf(dns1_s, sizeof(dns1_s), "%s", DEFAULT_IPV4_DNS1);
 	if(dns2)
 		snprintf(dns2_s, sizeof(dns2_s), "%s", actinfo->act_info.sec_dns);
 	else
-		snprintf(dns2_s, sizeof(dns2_s), "%s", "8.8.8.8");
+		snprintf(dns2_s, sizeof(dns2_s), "%s", DEFAULT_IPV4_DNS2);
 
 #if 0 //btrunk
 	netmask = 0xffff0000;
@@ -417,6 +422,17 @@
 	return popen(cmd, "r");
 }
 
+static char *get_v6_dns(char *dns, int is_pri)
+{
+	if(dns && strlen(dns) < 3){
+		if(is_pri)
+			return DEFAULT_IPV6_DNS1;
+		else
+			return DEFAULT_IPV6_DNS2;
+	}
+	return dns;
+}
+
 static int config_dhcp6s(const char *path, struct dhcp6_conf_info *info, int M_O_flag)
 {
 	char buf[1024] = {0};
@@ -428,13 +444,13 @@
 	}
 	if(M_O_flag & IPV6_RA_FLAG_PD){
 		buf_len = snprintf(buf, sizeof(buf), g_dhcp6_pd_conf, info->interface, info->link, info->prefix, 
-			info->prefix_len, info->dns1, info->dns2);
+			info->prefix_len, get_v6_dns(info->dns1, 1), get_v6_dns(info->dns2, 0));
 	}else if(M_O_flag & IPV6_RA_FLAG_MANAGED){
 		buf_len = snprintf(buf, sizeof(buf), g_dhcp6_state_conf, info->interface, info->link, info->start, 
-			info->end, info->prefix_len, info->dns1, info->dns2);
+			info->end, info->prefix_len, get_v6_dns(info->dns1, 1), get_v6_dns(info->dns2, 0));
 	}else if(M_O_flag & IPV6_RA_FLAG_OTHER_CONFIG){
 		buf_len = snprintf(buf, sizeof(buf), g_dhcp6_stateless_conf, info->interface, info->link,
-			info->dns1, info->dns2);
+			get_v6_dns(info->dns1, 1), get_v6_dns(info->dns2, 0));
 	}else{
 		slog(NET_PRINT, SLOG_ERR, "config_dhcpd6s err m=0 o=0\n");
 		return 0;
@@ -461,7 +477,7 @@
 		buf_len = snprintf(buf, sizeof(buf), g_radvd_stateless_conf, info->interface, info->prefix, info->prefix_len);
 	}else{
 		buf_len = snprintf(buf, sizeof(buf), g_radvd_autocfg_conf, info->interface, info->prefix, info->prefix_len,
-			info->dns1, info->dns2);
+			get_v6_dns(info->dns1, 1), get_v6_dns(info->dns2, 0));
 	}
 	if(buf_len <= 0 || buf_len != strlen(buf)){
 		slog(NET_PRINT, SLOG_ERR, "config_radvd snprintf err ret=%d cur=%d\n", buf_len, strlen(buf));
@@ -583,9 +599,16 @@
 		pclose(fpv6);
 #ifdef USE_CAP_SUPPORT
 	{
-		char cmd[64] = {0};
-		snprintf(cmd, sizeof(cmd),"ifconfig br%d -arp", actinfo->c_id);
-		system_cmd_ex(cmd);
+		char nv_name[16] = {0};
+		char ps_ext[16] = {0};
+
+		snprintf(nv_name, sizeof(nv_name), "ps_ext%d", actinfo->c_id);
+		sc_cfg_get(nv_name, ps_ext, sizeof(ps_ext));
+		if(strncmp(ps_ext, "zvnet", strlen("zvnet")) == 0){
+			char cmd[64] = {0};
+			snprintf(cmd, sizeof(cmd),"ifconfig br%d -arp", actinfo->c_id);
+			system_cmd_ex(cmd);
+		}
 	}
 #endif
 }
@@ -917,11 +940,11 @@
 			if(dns1)
 				snprintf(dns1_s, sizeof(dns1_s), "%s", actinfo->act_info.pri_dns);
 			else
-				snprintf(dns1_s, sizeof(dns1_s), "%s", "114.114.114.114");
+				snprintf(dns1_s, sizeof(dns1_s), "%s", DEFAULT_IPV4_DNS1);
 			if(dns2)
 				snprintf(dns2_s, sizeof(dns2_s), "%s", actinfo->act_info.sec_dns);
 			else
-				snprintf(dns2_s, sizeof(dns2_s), "%s", "8.8.8.8");
+				snprintf(dns2_s, sizeof(dns2_s), "%s", DEFAULT_IPV4_DNS2);
 			config_dns(dns_path, dns1_s, dns2_s);
 			sc_cfg_get("dns_extern", ext_dns, sizeof(ext_dns));
 			zxic_inet_pton(AF_INET, ext_dns, &dns_ext);
@@ -938,7 +961,7 @@
 		
 			config_dns(dns_path, actinfo->act_info.pri_dns6, actinfo->act_info.sec_dns6);
 			sc_cfg_get("ipv6_dns_extern", ext_dns_v6, sizeof(ext_dns_v6));
-			if(inet_pton(AF_INET6, pdp_ip6, &ipv6_dns_ext) > 0){
+			if(inet_pton(AF_INET6, ext_dns_v6, &ipv6_dns_ext) > 0){
 				config_dns(dns_path, NULL, ext_dns_v6);
 			}
 			//set ipv6 addr for webui show
diff --git a/ap/app/zte_comm/zte_mainctrl/zte_mainctrl.c b/ap/app/zte_comm/zte_mainctrl/zte_mainctrl.c
index 2fbbaf2..f8f8554 100755
--- a/ap/app/zte_comm/zte_mainctrl/zte_mainctrl.c
+++ b/ap/app/zte_comm/zte_mainctrl/zte_mainctrl.c
@@ -1585,14 +1585,14 @@
 
 	if (signal(SIGUSR1, mainctrl_sig_usr1) == SIG_ERR)
 		slog(NET_PRINT, SLOG_ERR, "mainctrl cat not catch SIGUSR1!\n");
-
+#ifndef USE_CAP_SUPPORT
 	sc_cfg_get("nv_save_interval", nv_save_interval, sizeof(nv_save_interval));
 	interval_time = atoi(nv_save_interval);
 	if (interval_time < 0x400000) {//klocwork ΪÁ˲»Òç³ö
 		interval_time = interval_time*1000;
 		sc_timer_create(TIMER_MainCtrl_NvSaveID, TIMER_FLAG_RESTART, interval_time, nv_save_timeout, NULL);
 	}
-	
+#endif
 	/*init the router*/
 	//zte_router_init();
 	get_wan_name();
diff --git a/ap/app/zte_log_agent/log_agent_sdcard.c b/ap/app/zte_log_agent/log_agent_sdcard.c
index deb1bbe..e4a5117 100755
--- a/ap/app/zte_log_agent/log_agent_sdcard.c
+++ b/ap/app/zte_log_agent/log_agent_sdcard.c
@@ -49,16 +49,16 @@
 

 /*APFS ģʽ:±£´æµ½EMMC¿¨£¬¹ÒÔØÂ·¾¶ºÍ¹æÔò·¾¶ÓÉÓû§ÅäÖÃ*/

 #define ZCAT_FS_CFG_LOG_PATH     "/zcat"

-

 #define MAX_STRING_LENGTH        (256)

 #define MAX_NVCFG_LOG_SIZE       (1000)

 #define MAX_NUMSIZE_STRING_LEN   (16)

-#define ZCAT_RULE_DIR_MAXLEN     (0x100)

-#define ZCAT_MAX_LOG_NUM           (10)

-#define ZCAT_MAX_CFG_TOTAL_SIZE     (0x100000)

-#define ZCAT_ONE_MB_SIZE             (1024*1024)

 #define SINGLE_LOG_SIZE_TFCARD   (500*1024*1024)

 #define SINGLE_LOG_SIZE_APFS     (100*1024*1024)

+#define ZCAT_RULE_DIR_MAXLEN     (0x100)

+#define ZCAT_MAX_LOG_NUM         (10)

+#define ZCAT_MAX_CFG_TOTAL_SIZE  (0x100000)

+#define ZCAT_ONE_MB_SIZE         (1024*1024)

+#define ZCAT_MIN_VALUE(x, y)     ((x) < (y) ? (x) : (y))

 

 /**

  * È«¾Ö±äÁ¿¶¨Òå

@@ -126,6 +126,28 @@
 }

 

 /**

+ * @brief ½«NVÏîÖеÄ×Ö·û´®ÀàÐÍת»»ÎªÊýÖµÀàÐÍ

+ * @param[in]   nvItem_str ×Ö·û´®ÀàÐÍ

+ * @return[out] error:-1.

+ * @note  

+ * @see 

+ */

+int strtol_check(const char *nvItem_str)

+{

+    int nvItem_val = 0;

+

+    errno = 0;

+    nvItem_val = (int)strtol(nvItem_str, NULL, 0);

+

+    if(errno == ERANGE)

+    {

+        printf("[zcat] strtol error, return\n");

+        return -1;

+    }

+    return nvItem_val;

+}

+

+/**

  * @brief ³õʼ»¯sd¿¨´ælogµÄÅäÖòÎÊý

  * @return void

  * @note

@@ -137,6 +159,7 @@
 static void init_cfg_param(int zcat_mode)

 {

     int     nvint_size = 0;

+    int     nvint_num = 0;

     int     max_logNum = 0; 

     UINT64  total_size = 0;

     char nvstr_num[MAX_NUMSIZE_STRING_LEN] = {0};

@@ -145,16 +168,22 @@
     if(g_log_sdcard_para.max_file_num == 0) 

     {

         sc_cfg_get("zlog_num", nvstr_num, MAX_NUMSIZE_STRING_LEN - 1);

-        g_log_sdcard_para.max_file_num = (int)strtol(nvstr_num, NULL, 0);

+        nvint_num = strtol_check(nvstr_num);

+

+        if (nvint_num > 0)

+        {

+            g_log_sdcard_para.max_file_num = ZCAT_MIN_VALUE(nvint_num, ZCAT_MAX_LOG_NUM);

+        }

     }

-    

+

     if(g_log_sdcard_para.max_total_size == 0) 

     {

-        sc_cfg_get("zlog_size", nvstr_size, MAX_NUMSIZE_STRING_LEN - 1);

-        nvint_size = (int)strtol(nvstr_size, NULL, 0);

+        sc_cfg_get("zlog_size", nvstr_size, MAX_NUMSIZE_STRING_LEN - 1);    

+        nvint_size = strtol_check(nvstr_size);

+        

         if((nvint_size > 0) && (nvint_size < MAX_NVCFG_LOG_SIZE))

         {

-            g_log_sdcard_para.max_total_size = (UINT64)((nvint_size) * ZCAT_ONE_MB_SIZE);    

+            g_log_sdcard_para.max_total_size = (UINT64)(nvint_size) * ZCAT_ONE_MB_SIZE;    

         }

     }

     

diff --git a/ap/build/libps_libs.mk b/ap/build/libps_libs.mk
index 3a6de74..f51f92c 100755
--- a/ap/build/libps_libs.mk
+++ b/ap/build/libps_libs.mk
@@ -38,7 +38,9 @@
 	libps_libs_nolto +=  $(wildcard $(LIBPS_PATH)/psbase/*.a)
 	libps_libs_nolto +=  $(wildcard $(LIBPS_PATH)/usat/*.a)
 endif
-
+ifeq ($(USE_OPTEE),yes)
+libps_libs_nolto +=  $(wildcard $(LIBPS_PATH)/optee/*.a)
+endif
 libps_libs_nolto += $(CROSS_COMPILE_LIB_KERNEL)
 
 libps_libs += $(libps_libs_nolto) 
diff --git a/ap/build/scripts/trace32/zx297520v3/atag-list.cmm b/ap/build/scripts/trace32/zx297520v3/atag-list.cmm
index c31e974..ba8dc0b 100755
--- a/ap/build/scripts/trace32/zx297520v3/atag-list.cmm
+++ b/ap/build/scripts/trace32/zx297520v3/atag-list.cmm
@@ -3,7 +3,7 @@
 ; created by ZTE-TSP at 2015.08.07

 ;--------------------------------------------------------------------------

 

-&tagAddr=0x22300100

+&tagAddr=0x20400100

 

 ; ATAG_CORE

 data.set &tagAddr %LONG %LE 0x5

@@ -24,7 +24,7 @@
 &tagAddr=&tagAddr+0x4

 data.set &tagAddr %LONG %LE 0x3000000  // size 48MB

 &tagAddr=&tagAddr+0x4

-data.set &tagAddr %LONG %LE 0x22300000  // start

+data.set &tagAddr %LONG %LE 0x20400000  // start

 &tagAddr=&tagAddr+0x4

 

 ; ATAG_INITRD2

@@ -32,7 +32,7 @@
 &tagAddr=&tagAddr+0x4

 data.set &tagAddr %LONG %LE 0x54420005

 &tagAddr=&tagAddr+0x4

-data.set &tagAddr %LONG %LE 0x22D00000 // start

+data.set &tagAddr %LONG %LE 0x20800000 // start

 &tagAddr=&tagAddr+0x4

 &initrd_size=os.file.size(&INITRD_PATH)

 data.set &tagAddr %LONG %LE &initrd_size // file size in bytes

@@ -45,7 +45,7 @@
 ;&cmdline="console=ttyS0,115200 root=/dev/ram0 rw rdinit=/linuxrc mtdparts=denali-nand:1m@0x0(zloader),2m@0x100000(uboot),1m@0x300000(cpum0),1m@0x400000(nvro),8m@0x500000(nvrw),1m@0xd00000(fotaflag),9m@0xe00000(cpuzsp),1m@0x1700000(sms),15m@0x1800000(cpur7),10m@0x2700000(a9),1m@0x3100000(fotabackup),64m@0x3200000(fotaupdate),16m@0x7200000(cdrom),32m@0x8200000(userdata),80m@0xa200000(jffs2)" 

 ;&cmdline="console=ttyS0,115200 no_console_suspend mtdparts=denali-nand:1m@0x0(zloader),2m@0x100000(uboot),1m@0x300000(cpum0),1m@0x400000(nvro),8m@0x500000(nvrw),1m@0xd00000(fotaflag),9m@0xe00000(cpuzsp),1m@0x1700000(sms),15m@0x1800000(cpur7),10m@0x2700000(a9),1m@0x3100000(fotabackup),64m@0x3200000(fotaupdate),16m@0x7200000(cdrom),32m@0x8200000(userdata),80m@0xa200000(jffs2) root=/dev/mtdblock13 rw rootfstype=jffs2"

 ;&cmdline="console=ttyS0,115200 no_console_suspend mtdparts=denali-nand:1m@0x0(zloader),2m@0x100000(uboot),1m@0x300000(cpum0),1m@0x400000(nvro),8m@0x500000(nvrw),2m@0xd00000(nvfac),1m@0xf00000(fotaflag),7m@0x1000000(cpuzsp),1m@0x1700000(sms),15m@0x1800000(cpur7),10m@0x2700000(cpuap),4m@0x3100000(cpfs),8m@0x3500000(ramdisk),7m@0x3d00000(recovery),6m@0x4400000(recovery-kernel),80m@0x4a00000(cdrom),40m@0x9a00000(userdata),30m@0xc200000(fotaupdate) root=/dev/mtdblock16 rw rootfstype=jffs2"

-&cmdline="console=ttyS1,115200 root=/dev/ram0 rw rdinit=/linuxrc" 

+&cmdline="console=ttyS1,921600 root=/dev/ram0 rw rdinit=/linuxrc" 

 &cmdsize=(string.len("&cmdline")+16)&~0x3

 data.set &tagAddr %LONG %LE &cmdsize/4

 &tagAddr=&tagAddr+0x4

diff --git a/ap/build/scripts/trace32/zx297520v3/boot_attach_CortexA53_ap.cmm b/ap/build/scripts/trace32/zx297520v3/boot_attach_CortexA53_ap.cmm
index 699170f..c10949a 100755
--- a/ap/build/scripts/trace32/zx297520v3/boot_attach_CortexA53_ap.cmm
+++ b/ap/build/scripts/trace32/zx297520v3/boot_attach_CortexA53_ap.cmm
@@ -10,5 +10,5 @@
 data.set 0x0014801C %long 0x12340000  //m0

 

 //jtag0 to ap

-do .\sys\jtag_switch_script.cmm 0 1

-

+do .\sys\jtag_switch_script.cmm 0 1   ;ps

+;do .\sys\jtag_switch_script.cmm 0 3   ;cap

diff --git a/ap/build/scripts/trace32/zx297520v3/linux_297520V3_restore_ramdump_linux-kernel.cmm b/ap/build/scripts/trace32/zx297520v3/linux_297520V3_restore_ramdump_linux-kernel.cmm
index b161213..2d28e1d 100755
--- a/ap/build/scripts/trace32/zx297520v3/linux_297520V3_restore_ramdump_linux-kernel.cmm
+++ b/ap/build/scripts/trace32/zx297520v3/linux_297520V3_restore_ramdump_linux-kernel.cmm
@@ -24,7 +24,7 @@
 

 sys.down

 area.reset

-sys.cpu CortexA9

+sys.cpu CortexA53

 sys.jtagclock 3.0MHz           ; CPU needs 10M * 8 = 80M frequency. It should be reduced to 3.0MHz

 sys.option enreset Off

 sys.option resbreak off	

@@ -53,8 +53,8 @@
 TRANSlation.TableWalk ON  ;debugger uses table walk to decode virtual address

 TRANSlation.ON            ;switch on debugger address translation

 

-TASK.CONFIG         linux         //Init Multitask Debugger

-MENU.ReProgram      linux         //Init ARTK Spezific Menu Part's

+TASK.CONFIG ~~/demo/arm/kernel/linux/linux-3.x/linux3.t32

+MENU.ReProgram ~~/demo/arm/kernel/linux/linux-3.x/linux.men

 TASK.STacK.PATTERN  0xCC        //Init stack space with 0xCC

 //´úÂë¶Î±È½Ï

 do ./os_code_compare.cmm

diff --git a/ap/build/scripts/trace32/zx297520v3/linux_ap_attach.cmm b/ap/build/scripts/trace32/zx297520v3/linux_ap_attach.cmm
new file mode 100755
index 0000000..094e3d7
--- /dev/null
+++ b/ap/build/scripts/trace32/zx297520v3/linux_ap_attach.cmm
@@ -0,0 +1,93 @@
+;/*it is used for attaching while zx297510evb  running*/

+

+;do ./boot_attach_CortexA9.cmm

+

+GLOBAL &VMLINUX_PATH

+GLOBAL &SOURCE_PATH

+GLOBAL &DDR_BASE

+

+&VMLINUX_PATH= "P:\v3v16\ap-ps\ap\project\zx297520v3\prj_vehicle_dc\bin\220A1\elfs\vmlinux"

+&SOURCE_PATH="D:\gaohf\master\7520V3SC_VEC\elf_dc"

+

+&DDR_BASE=0x20400000

+

+ area.reset

+ sYmbol.RESet

+;MMU.RESet

+

+; setup of ICD

+ 

+ print "initializing..." 

+ SYStem.CPU CortexA53      			; ;ZX297520v3 CortexA53 core

+; SYStem.Option MMUSPACES ON     ; enable space ids to virtual addresses

+SYStem.JtagClock 30.0MHz    ; use adaptive clocking for most speed

+ 

+ system.option resbreak  off

+ system.option enreset   off

+ 

+Sys.Config.COREBASE 0x80410000  ; 

+Sys.Config.CTIBASE 0x80420000

+Sys.Config.debugaccessport 0

+Sys.Mode PREPARE

+

+ 

+ wait 0.1s

+ 

+ sys.mode attach

+ SETUP.IMASKASM ON          ; lock interrupts while single stepping

+ 

+; Load the Linux kernel symbols into the debugger

+ 

+ print "loading Linux kernel symbols..."

+

+ ;Data.LOAD.Elf &VMLINUX_PATH /gnu /nocode  /SourcePATH ..\..\..\..\

+ 

+Data.LOAD.Elf &VMLINUX_PATH /gnu /nocode 

+

+

+ 

+ ; set source path

+  print "set source path ..."

+  ;sYmbol.SourcePATH.RESet

+  ;sYmbol.SourcePATH.SetBaseDir &SOURCE_PATH

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\arch\arm

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\arch\arm\mach-zx297520v3 

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\init

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\kernel

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\drivers\base

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\drivers\tty

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\drivers\gpio

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\drivers\i2c

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\drivers\usb

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\drivers\mmc

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\mm

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\drivers

+  

+; Initialize Linux Awareness

+&ka_path="~~/demo/arm/kernel/linux/linux-3.x"

+&awareness="linux3.t32"  

+ ; Note that the Linux awareness needs the kernel symbols to work 

+ print "initializing multitask support..."

+&ka_path="~~/demo/arm/kernel/linux/linux-3.x"

+&awareness="linux3.t32"  

+print "initializing multitask support..."

+TASK.CONFIG &ka_path/&awareness               ; loads Linux awareness 

+MENU.ReProgram &ka_path/linux            ; loads Linux menu 

+; TASK.CONFIG .\linux       ; loads Linux awareness (linux.t32)

+; MENU.ReProgram .\linux    ; loads Linux menu (linux.men)

+; HELP.FILTER.Add rtoslinux  ; add linux awareness manual to help filter

+ ;MENU.ReProgram  .\sys\board      ; add board tools

+ 

+  ; Group kernel area to be displayed with red bar

+

+; GROUP.Create "kernel" 0xc0000000--0xffffffff /RED

+; GROUP.Create "module" 0xbf000000--0xbfffffff /blue

+; Ok, we're done, let's start Linux

+ 

+//do ./linux_cpko_attach.cmm

+break

+

+enddo

+ 

+

+

diff --git a/ap/build/scripts/trace32/zx297520v3/linux_cap_attach.cmm b/ap/build/scripts/trace32/zx297520v3/linux_cap_attach.cmm
new file mode 100755
index 0000000..0c3699b
--- /dev/null
+++ b/ap/build/scripts/trace32/zx297520v3/linux_cap_attach.cmm
@@ -0,0 +1,93 @@
+;/*it is used for attaching while zx297510evb  running*/

+

+;do ./boot_attach_CortexA9.cmm

+

+GLOBAL &VMLINUX_PATH

+GLOBAL &SOURCE_PATH

+GLOBAL &DDR_BASE

+

+;&VMLINUX_PATH= "P:\v3v0517\cap\cap\allbins\zx297520v3\vehicle_dc\elf\normal\vmlinux"

+&VMLINUX_PATH= "D:\gaohf\master\v3tvec\test\vehicle_dc\elf\normal\vmlinux"

+&SOURCE_PATH="Z:\v3_cap\code\ap\os\linux\linux-5.10.x"

+

+&DDR_BASE=0x22200000

+

+ area.reset

+ sYmbol.RESet

+MMU.RESet

+

+; setup of ICD

+ 

+ print "initializing..." 

+ SYStem.CPU CortexA53      			; ;ZX297520v3 CortexA53 core

+ SYStem.Option MMUSPACES ON     ; enable space ids to virtual addresses

+SYStem.JtagClock 30.0MHz    ; use adaptive clocking for most speed

+ 

+ system.option resbreak  off

+ system.option enreset   off

+ 

+Sys.Config.COREBASE 0x80410000  ; 

+Sys.Config.CTIBASE 0x80420000

+Sys.Config.debugaccessport 0

+Sys.Mode PREPARE

+

+ 

+ wait 0.1s

+ 

+ sys.mode attach

+ SETUP.IMASKASM ON          ; lock interrupts while single stepping

+ 

+; Load the Linux kernel symbols into the debugger

+ 

+ print "loading Linux kernel symbols..."

+

+ ;Data.LOAD.Elf &VMLINUX_PATH /gnu /nocode  /SourcePATH ..\..\..\..\

+ 

+Data.LOAD.Elf &VMLINUX_PATH /gnu /nocode 

+

+

+ 

+ ; set source path

+  print "set source path ..."

+  ;sYmbol.SourcePATH.RESet

+  ;sYmbol.SourcePATH.SetBaseDir &SOURCE_PATH

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\arch\arm

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\arch\arm\mach-zx297520v3 

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\init

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\kernel

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\drivers\base

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\drivers\tty

+  sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\drivers\gpio

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\drivers\i2c

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\drivers\usb

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\drivers\mmc

+  ;sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\mm

+ sYmbol.SourcePATH.SetRecurseDir &SOURCE_PATH\drivers\soc

+  

+; Initialize Linux Awareness

+&ka_path="C:\T32\demo\arm\kernel\linux\linux-3.x"

+&awareness="linux3.t32"  

+ ; Note that the Linux awareness needs the kernel symbols to work 

+ print "initializing multitask support..."

+&ka_path="~~/demo/arm/kernel/linux/linux-3.x"

+&awareness="linux3.t32"  

+print "initializing multitask support..."

+TASK.CONFIG &ka_path/&awareness               ; loads Linux awareness 

+MENU.ReProgram &ka_path/linux            ; loads Linux menu 

+; TASK.CONFIG .\linux       ; loads Linux awareness (linux.t32)

+; MENU.ReProgram .\linux    ; loads Linux menu (linux.men)

+ HELP.FILTER.Add rtoslinux  ; add linux awareness manual to help filter

+ ;MENU.ReProgram  .\sys\board      ; add board tools

+ 

+  ; Group kernel area to be displayed with red bar

+

+ GROUP.Create "kernel" 0xc0000000--0xffffffff /RED

+ GROUP.Create "module" 0xbf000000--0xbfffffff /blue

+; Ok, we're done, let's start Linux

+

+break

+

+enddo

+ 

+

+

diff --git a/ap/lib/libatext/ext_audio_func.c b/ap/lib/libatext/ext_audio_func.c
index f1b45a7..143a6d2 100755
--- a/ap/lib/libatext/ext_audio_func.c
+++ b/ap/lib/libatext/ext_audio_func.c
@@ -15,6 +15,7 @@
 #ifdef _USE_VOICE_ALSA

 #include "tinyalsa/audio_mixer_ctrl.h"

 #include "voice_lib.h"

+#include "voice_ipc.h"

 #endif

 //#include "ext_regist.h"

 //#include "softap_api.h"

@@ -479,6 +480,46 @@
 	return AT_END;

 }

 

+int extAt_CAP_VALSA_act_func (int at_fd, char * at_paras, void * *res_msg, int * res_msglen)

+{

+	char *at_str = NULL;

+	UINT32 ret = DRV_SUCCESS;

+

+	int mode = 0;

+    int enable = 0;

+	

+	UINT16 onOff = 0;

+	at_str = at_paras;

+	printf("extAt_CAP_VALSA_act_func, at_paras:%s \n", at_paras);

+

+	ret = sscanf (at_str, "%d,%d", &mode,&enable);

+	onOff = enable;

+	printf("extAt_CAP_VALSA_act_func mode=%d,enable=%d,ret=%d\n",mode,enable,ret);

+

+	if (ret == 2) {

+		if(onOff == 1)

+		{

+			ret = cap_alsa_voice_open(mode);

+			printf("extAt_CAP_VALSA_act_func alsa_voice_open,ret=%d\n",ret);

+		}

+		else

+		{

+			ret = cap_alsa_voice_close(mode);

+			printf("extAt_CAP_VALSA_act_func alsa_voice_close,ret=%d\n",ret);

+			

+		}		

+		if (ret == DRV_SUCCESS) {

+			*res_msg = at_ok_build();

+			*res_msglen = strlen (*res_msg);

+			return AT_END;

+		}

+	}

+	*res_msg = at_err_build(ATERR_PROC_FAILED);

+	*res_msglen = strlen (*res_msg);

+	

+	return AT_END;

+}

+

 #endif

 

 void ext_audio_regist_init(void)

@@ -501,6 +542,7 @@
 

 	register_serv_func2("VALSA=", 0, 0, 0, extAt_VALSA_act_func, NULL);

 	register_serv_func2("VPATH=", 0, 0, 0, extAt_VPATH_act_func, NULL);

+    register_serv_func2("CAP_VALSA=", 0, 0, 0, extAt_CAP_VALSA_act_func, NULL);

 	

 #endif

 }

diff --git a/ap/lib/libatext/ext_normal_func.c b/ap/lib/libatext/ext_normal_func.c
index 90116eb..3c170fa 100644
--- a/ap/lib/libatext/ext_normal_func.c
+++ b/ap/lib/libatext/ext_normal_func.c
@@ -1534,16 +1534,20 @@
 	{

 		*res_msg = at_err_build(retCode); 

 	}

-	if (cardSlotFlag == 1)

-	{

-		snprintf(tmp,sizeof(tmp),"%d,%d,%d,%d,%d",simCard0PreFlag, simCard0Flag, simCard1PreFlag, simCard1Flag, cardSlotFlag);

-	}

 	else

 	{

-		snprintf(tmp,sizeof(tmp),"%d,%d",simCard0PreFlag, simCard0Flag);

+		if (cardSlotFlag == 1)

+		{

+			snprintf(tmp,sizeof(tmp),"%d,%d,%d,%d,%d",simCard0PreFlag, simCard0Flag, simCard1PreFlag, simCard1Flag, cardSlotFlag);

+		}

+		else

+		{

+			snprintf(tmp,sizeof(tmp),"%d,%d",simCard0PreFlag, simCard0Flag);

+		}

+		

+		*res_msg = at_query_result_build("ZCARDSWITCH", tmp);

 	}

 	

-	*res_msg = at_query_result_build("ZCARDSWITCH", tmp);

 	*res_msglen = strlen(*res_msg);

 	return AT_END;

 }

diff --git a/ap/lib/libatext/ext_wdt_func.c b/ap/lib/libatext/ext_wdt_func.c
index db6806d..d0df9f6 100644
--- a/ap/lib/libatext/ext_wdt_func.c
+++ b/ap/lib/libatext/ext_wdt_func.c
@@ -244,11 +244,13 @@
 	ret=ioctl(fd, RPMSG_SET_INT_FLAG, NULL);

 	if(ret<0){

 	 	at_print(AT_DEBUG,"cap add  ioctl FAIL\n");

+		close(fd);

 		return AT_END;	

 	}		

 	ret=write(fd, &ctx, 4);

 	if(ret<0){

 	 	at_print(AT_DEBUG,"cap add  write FAIL\n");

+		close(fd);

 		return AT_END;	

 	}

 	

@@ -278,11 +280,13 @@
 	ret=ioctl(fd, RPMSG_SET_INT_FLAG, NULL);

 	if(ret<0){

 	 	at_print(AT_DEBUG,"cap add  ioctl FAIL\n");

+		close(fd);

 		return AT_END;	

 	}		

 	ret=write(fd, &ctx, 4);

 	if(ret<0){

 	 	at_print(AT_DEBUG,"cap add  write FAIL\n");

+		close(fd);

 		return AT_END;	

 	}

 

diff --git a/ap/lib/libatreg/atreg_common.h b/ap/lib/libatreg/atreg_common.h
index 3ea1dc3..7c51d29 100755
--- a/ap/lib/libatreg/atreg_common.h
+++ b/ap/lib/libatreg/atreg_common.h
Binary files differ
diff --git a/ap/lib/libatreg/atreg_thread.c b/ap/lib/libatreg/atreg_thread.c
index 714cd01..034c744 100755
--- a/ap/lib/libatreg/atreg_thread.c
+++ b/ap/lib/libatreg/atreg_thread.c
@@ -233,12 +233,12 @@
 static void atreg_ser_cb_proc(void *patreg_instance, unsigned char *aucDataBuf)

 {	

     int send_ret = -1;

-	unsigned char res_msg[MAX_MSG_LEN] = {0};

+	unsigned char res_msg[MSG_DATA_MAX_LEN] = {0};

 	struct atreg_ser_instance_t *patreg_ser_instance = (struct atreg_ser_instance_t *)patreg_instance;

 

 	patreg_ser_instance->cb(aucDataBuf, res_msg);

 	

-	send_ret = ipc_send_message2(atreg_common_ctx.modid, MODULE_ID_AT_CTL, patreg_ser_instance->rsp_msg_id, sizeof(res_msg), (unsigned char *)res_msg, 0);

+	send_ret = ipc_send_message2(atreg_common_ctx.modid, MODULE_ID_AT_CTL, patreg_ser_instance->rsp_msg_id, strlen(res_msg), (unsigned char *)res_msg, 0);

 	if (0 != send_ret) {	

 		slog(ATREG_PRINT, SLOG_ERR, "Err: atreg_ser_cb_proc ipc fail!\n");

 	}

diff --git a/ap/lib/libaudiomix/mix.c b/ap/lib/libaudiomix/mix.c
index f0de0f9..35a8c31 100755
--- a/ap/lib/libaudiomix/mix.c
+++ b/ap/lib/libaudiomix/mix.c
@@ -33,13 +33,13 @@
 { 

 	if(audio_mix_devfd == MIX_DEV_INVALID_ID)

 	{

-        printf("zte audio /dev/audio_mix_device zDrvAudioMix_WriteOneFrame invalid dev!\n");

+        printf("audio /dev/audio_mix_device zDrvAudioMix_WriteOneFrame invalid dev!\n");

         return DRV_ERROR;

 	} 

     

 	if(write(audio_mix_devfd, pBuf, uiLen) <= 0)

 	{

-        printf("zte audio /dev/audio_mix_device zDrvAudioMix_WriteOneFrame write failed!\n");

+        printf("audio /dev/audio_mix_device zDrvAudioMix_WriteOneFrame write failed!\n");

 		return DRV_ERROR;

 	} 

 

@@ -52,13 +52,13 @@
     printf("open end! audio_mix_devfd=%d, audioType=%d, sample_rate=%d\n", audio_mix_devfd, cfgParam->audioType, cfgParam->sample_rate);

 	if(audio_mix_devfd < 0)

 	{

-        printf("zte audio /dev/audio_mix_device zDrvAudioMix_Open failed!\n");

+        printf("audio /dev/audio_mix_device zDrvAudioMix_Open failed!\n");

 		return DRV_ERROR;

 	}  

      

 	if(ioctl(audio_mix_devfd, AUDIOMIX_IOCTL_SET_CFG, cfgParam) < 0)

 	{ 

-        printf("zte audio /dev/audio_mix_device set cfg failed!\n");

+        printf("audio /dev/audio_mix_device set cfg failed!\n");

 		goto err;

 	}

     

@@ -66,7 +66,7 @@
 err: 

 	close(audio_mix_devfd);

 	audio_mix_devfd = MIX_DEV_INVALID_ID;

-    printf("zte audio /dev/audio_mix_device zDrvAudioMix_Open failed!\n");

+    printf("audio /dev/audio_mix_device zDrvAudioMix_Open failed!\n");

 	return DRV_ERROR;

 

 }

@@ -75,7 +75,7 @@
 {

 	if(audio_mix_devfd == MIX_DEV_INVALID_ID)

 	{

-        printf("zte audio /dev/audio_mix_device zDrvAudioMix_Close invalid dev!\n");

+        printf("audio /dev/audio_mix_device zDrvAudioMix_Close invalid dev!\n");

 		return DRV_ERROR;

 	}

 	close(audio_mix_devfd); 

diff --git a/ap/lib/liblpa/libes10.a b/ap/lib/liblpa/libes10.a
index 427839c..0b47108 100644
--- a/ap/lib/liblpa/libes10.a
+++ b/ap/lib/liblpa/libes10.a
Binary files differ
diff --git a/ap/lib/libnvram/libnvram.a b/ap/lib/libnvram/libnvram.a
index f277738..41560ba 100644
--- a/ap/lib/libnvram/libnvram.a
+++ b/ap/lib/libnvram/libnvram.a
Binary files differ
diff --git a/ap/lib/libnvram/libnvram.so b/ap/lib/libnvram/libnvram.so
index 7272e8b..2c0325b 100755
--- a/ap/lib/libnvram/libnvram.so
+++ b/ap/lib/libnvram/libnvram.so
Binary files differ
diff --git a/ap/lib/libnvram/libnvram_sc.a b/ap/lib/libnvram/libnvram_sc.a
index 8b2c418..b37ddd2 100644
--- a/ap/lib/libnvram/libnvram_sc.a
+++ b/ap/lib/libnvram/libnvram_sc.a
Binary files differ
diff --git a/ap/lib/libnvram/libnvram_sc.so b/ap/lib/libnvram/libnvram_sc.so
index a654f8a..27f79e2 100755
--- a/ap/lib/libnvram/libnvram_sc.so
+++ b/ap/lib/libnvram/libnvram_sc.so
Binary files differ
diff --git a/ap/lib/libps/220A1_all/amt/amt.a b/ap/lib/libps/220A1_all/amt/amt.a
index 1ea0ba1..f6caacb 100644
--- a/ap/lib/libps/220A1_all/amt/amt.a
+++ b/ap/lib/libps/220A1_all/amt/amt.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/appstart/appstart.a b/ap/lib/libps/220A1_all/appstart/appstart.a
index c075c5c..a00fbb8 100644
--- a/ap/lib/libps/220A1_all/appstart/appstart.a
+++ b/ap/lib/libps/220A1_all/appstart/appstart.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/drv/amr.a b/ap/lib/libps/220A1_all/drv/amr.a
index a6ba81b..0622ef8 100644
--- a/ap/lib/libps/220A1_all/drv/amr.a
+++ b/ap/lib/libps/220A1_all/drv/amr.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/drv/audio_base.a b/ap/lib/libps/220A1_all/drv/audio_base.a
index 15e8f62..8805c80 100644
--- a/ap/lib/libps/220A1_all/drv/audio_base.a
+++ b/ap/lib/libps/220A1_all/drv/audio_base.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/drv/chip.a b/ap/lib/libps/220A1_all/drv/chip.a
index 304182b..ea2b416 100644
--- a/ap/lib/libps/220A1_all/drv/chip.a
+++ b/ap/lib/libps/220A1_all/drv/chip.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/drv/drv_sdk.a b/ap/lib/libps/220A1_all/drv/drv_sdk.a
index 9c92bec..5bc884d 100644
--- a/ap/lib/libps/220A1_all/drv/drv_sdk.a
+++ b/ap/lib/libps/220A1_all/drv/drv_sdk.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/drv/public.a b/ap/lib/libps/220A1_all/drv/public.a
index e905155..17c61e5 100644
--- a/ap/lib/libps/220A1_all/drv/public.a
+++ b/ap/lib/libps/220A1_all/drv/public.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/drv/webrtc.a b/ap/lib/libps/220A1_all/drv/webrtc.a
index e1014de..fa18ada 100644
--- a/ap/lib/libps/220A1_all/drv/webrtc.a
+++ b/ap/lib/libps/220A1_all/drv/webrtc.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/gsml1/dwddrv.a b/ap/lib/libps/220A1_all/gsml1/dwddrv.a
index 7dc8767..ee86db0 100644
--- a/ap/lib/libps/220A1_all/gsml1/dwddrv.a
+++ b/ap/lib/libps/220A1_all/gsml1/dwddrv.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/gsml1/l1g.a b/ap/lib/libps/220A1_all/gsml1/l1g.a
index 41d9d19..6a9cb35 100644
--- a/ap/lib/libps/220A1_all/gsml1/l1g.a
+++ b/ap/lib/libps/220A1_all/gsml1/l1g.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/phy/phy.a b/ap/lib/libps/220A1_all/phy/phy.a
index a139770..7b8097e 100644
--- a/ap/lib/libps/220A1_all/phy/phy.a
+++ b/ap/lib/libps/220A1_all/phy/phy.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_osa_linux.a b/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_osa_linux.a
index b985f16..ea713b1 100644
--- a/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_osa_linux.a
+++ b/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_osa_linux.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_psm.a b/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_psm.a
index 1a71317..99228b1 100644
--- a/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_psm.a
+++ b/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_psm.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_sup.a b/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_sup.a
index 3b802a3..46120f8 100644
--- a/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_sup.a
+++ b/ap/lib/libps/220A1_all/plat/armv7-a/GCC/plat_sup.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/plat/plat_osa_linux.a b/ap/lib/libps/220A1_all/plat/plat_osa_linux.a
index b985f16..ea713b1 100644
--- a/ap/lib/libps/220A1_all/plat/plat_osa_linux.a
+++ b/ap/lib/libps/220A1_all/plat/plat_osa_linux.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/plat/plat_psm.a b/ap/lib/libps/220A1_all/plat/plat_psm.a
index 1a71317..99228b1 100644
--- a/ap/lib/libps/220A1_all/plat/plat_psm.a
+++ b/ap/lib/libps/220A1_all/plat/plat_psm.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/plat/plat_sup.a b/ap/lib/libps/220A1_all/plat/plat_sup.a
index 3b802a3..46120f8 100644
--- a/ap/lib/libps/220A1_all/plat/plat_sup.a
+++ b/ap/lib/libps/220A1_all/plat/plat_sup.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/as_com.a b/ap/lib/libps/220A1_all/ps/as_com.a
index a604b29..db2c130 100644
--- a/ap/lib/libps/220A1_all/ps/as_com.a
+++ b/ap/lib/libps/220A1_all/ps/as_com.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/as_gsm.a b/ap/lib/libps/220A1_all/ps/as_gsm.a
index 66a95b5..ac6656e 100644
--- a/ap/lib/libps/220A1_all/ps/as_gsm.a
+++ b/ap/lib/libps/220A1_all/ps/as_gsm.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/ati.a b/ap/lib/libps/220A1_all/ps/ati.a
index 6813e4e..f7e0287 100644
--- a/ap/lib/libps/220A1_all/ps/ati.a
+++ b/ap/lib/libps/220A1_all/ps/ati.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/com.a b/ap/lib/libps/220A1_all/ps/com.a
index b6bd6a2..5458540 100644
--- a/ap/lib/libps/220A1_all/ps/com.a
+++ b/ap/lib/libps/220A1_all/ps/com.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/el2_up.a b/ap/lib/libps/220A1_all/ps/el2_up.a
index 3df271a..4768b9d 100644
--- a/ap/lib/libps/220A1_all/ps/el2_up.a
+++ b/ap/lib/libps/220A1_all/ps/el2_up.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/eudbg.a b/ap/lib/libps/220A1_all/ps/eudbg.a
index cb7d416..d572130 100644
--- a/ap/lib/libps/220A1_all/ps/eudbg.a
+++ b/ap/lib/libps/220A1_all/ps/eudbg.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/eurrc.a b/ap/lib/libps/220A1_all/ps/eurrc.a
index e2092c1..f81c062 100644
--- a/ap/lib/libps/220A1_all/ps/eurrc.a
+++ b/ap/lib/libps/220A1_all/ps/eurrc.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/l1e.a b/ap/lib/libps/220A1_all/ps/l1e.a
index 6a75108..ea5b4b9 100644
--- a/ap/lib/libps/220A1_all/ps/l1e.a
+++ b/ap/lib/libps/220A1_all/ps/l1e.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/nas.a b/ap/lib/libps/220A1_all/ps/nas.a
index 068b29f..359e324 100644
--- a/ap/lib/libps/220A1_all/ps/nas.a
+++ b/ap/lib/libps/220A1_all/ps/nas.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/ul1t.a b/ap/lib/libps/220A1_all/ps/ul1t.a
index f59136f..942fee6 100644
--- a/ap/lib/libps/220A1_all/ps/ul1t.a
+++ b/ap/lib/libps/220A1_all/ps/ul1t.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/ul2_up.a b/ap/lib/libps/220A1_all/ps/ul2_up.a
index 2010f2d..47efe8f 100644
--- a/ap/lib/libps/220A1_all/ps/ul2_up.a
+++ b/ap/lib/libps/220A1_all/ps/ul2_up.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/urrc.a b/ap/lib/libps/220A1_all/ps/urrc.a
index e9f7545..68c6061 100644
--- a/ap/lib/libps/220A1_all/ps/urrc.a
+++ b/ap/lib/libps/220A1_all/ps/urrc.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/wl1w.a b/ap/lib/libps/220A1_all/ps/wl1w.a
index b1507bf..be3964f 100644
--- a/ap/lib/libps/220A1_all/ps/wl1w.a
+++ b/ap/lib/libps/220A1_all/ps/wl1w.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ps/wl2_up.a b/ap/lib/libps/220A1_all/ps/wl2_up.a
index 3485b62..63ec98d 100644
--- a/ap/lib/libps/220A1_all/ps/wl2_up.a
+++ b/ap/lib/libps/220A1_all/ps/wl2_up.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/psbase/base.a b/ap/lib/libps/220A1_all/psbase/base.a
index 1fc3ccd..f266f65 100644
--- a/ap/lib/libps/220A1_all/psbase/base.a
+++ b/ap/lib/libps/220A1_all/psbase/base.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ref/com.a b/ap/lib/libps/220A1_all/ref/com.a
index f8ebb20..fe03e6d 100644
--- a/ap/lib/libps/220A1_all/ref/com.a
+++ b/ap/lib/libps/220A1_all/ref/com.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/ref/ref_drv.a b/ap/lib/libps/220A1_all/ref/ref_drv.a
index 7a252a9..f7706d9 100644
--- a/ap/lib/libps/220A1_all/ref/ref_drv.a
+++ b/ap/lib/libps/220A1_all/ref/ref_drv.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/tools/tools.a b/ap/lib/libps/220A1_all/tools/tools.a
index cbcb460..46c2304 100644
--- a/ap/lib/libps/220A1_all/tools/tools.a
+++ b/ap/lib/libps/220A1_all/tools/tools.a
Binary files differ
diff --git a/ap/lib/libps/220A1_all/usat/usat.a b/ap/lib/libps/220A1_all/usat/usat.a
index dd071f9..ce3444e 100644
--- a/ap/lib/libps/220A1_all/usat/usat.a
+++ b/ap/lib/libps/220A1_all/usat/usat.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/amt/amt.a b/ap/lib/libps/220A1_vehicle_dc/amt/amt.a
index 0ff39bc..84cd78d 100644
--- a/ap/lib/libps/220A1_vehicle_dc/amt/amt.a
+++ b/ap/lib/libps/220A1_vehicle_dc/amt/amt.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/appstart/appstart.a b/ap/lib/libps/220A1_vehicle_dc/appstart/appstart.a
index 626edae..54cd910 100644
--- a/ap/lib/libps/220A1_vehicle_dc/appstart/appstart.a
+++ b/ap/lib/libps/220A1_vehicle_dc/appstart/appstart.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/drv/amr.a b/ap/lib/libps/220A1_vehicle_dc/drv/amr.a
index 7ef398a..fb294e6 100644
--- a/ap/lib/libps/220A1_vehicle_dc/drv/amr.a
+++ b/ap/lib/libps/220A1_vehicle_dc/drv/amr.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/drv/audio_base.a b/ap/lib/libps/220A1_vehicle_dc/drv/audio_base.a
index 00f1ae9..29b01db 100644
--- a/ap/lib/libps/220A1_vehicle_dc/drv/audio_base.a
+++ b/ap/lib/libps/220A1_vehicle_dc/drv/audio_base.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/drv/chip.a b/ap/lib/libps/220A1_vehicle_dc/drv/chip.a
index 6cc286c..273fe4b 100644
--- a/ap/lib/libps/220A1_vehicle_dc/drv/chip.a
+++ b/ap/lib/libps/220A1_vehicle_dc/drv/chip.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/drv/drv_sdk.a b/ap/lib/libps/220A1_vehicle_dc/drv/drv_sdk.a
index e666538..f99861a 100644
--- a/ap/lib/libps/220A1_vehicle_dc/drv/drv_sdk.a
+++ b/ap/lib/libps/220A1_vehicle_dc/drv/drv_sdk.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/drv/public.a b/ap/lib/libps/220A1_vehicle_dc/drv/public.a
index d688b1b..5532b38 100644
--- a/ap/lib/libps/220A1_vehicle_dc/drv/public.a
+++ b/ap/lib/libps/220A1_vehicle_dc/drv/public.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/drv/webrtc.a b/ap/lib/libps/220A1_vehicle_dc/drv/webrtc.a
index 833c1e1..cfff397 100644
--- a/ap/lib/libps/220A1_vehicle_dc/drv/webrtc.a
+++ b/ap/lib/libps/220A1_vehicle_dc/drv/webrtc.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/gsml1/dwddrv.a b/ap/lib/libps/220A1_vehicle_dc/gsml1/dwddrv.a
index 2d89451..3120415 100644
--- a/ap/lib/libps/220A1_vehicle_dc/gsml1/dwddrv.a
+++ b/ap/lib/libps/220A1_vehicle_dc/gsml1/dwddrv.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/gsml1/l1g.a b/ap/lib/libps/220A1_vehicle_dc/gsml1/l1g.a
index f7d0c58..be6decb 100644
--- a/ap/lib/libps/220A1_vehicle_dc/gsml1/l1g.a
+++ b/ap/lib/libps/220A1_vehicle_dc/gsml1/l1g.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/optee/optee_crypto.a b/ap/lib/libps/220A1_vehicle_dc/optee/optee_crypto.a
new file mode 100644
index 0000000..58da128
--- /dev/null
+++ b/ap/lib/libps/220A1_vehicle_dc/optee/optee_crypto.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/optee/optee_mbedtls.a b/ap/lib/libps/220A1_vehicle_dc/optee/optee_mbedtls.a
new file mode 100644
index 0000000..c5b1b85
--- /dev/null
+++ b/ap/lib/libps/220A1_vehicle_dc/optee/optee_mbedtls.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/optee/optee_ta.a b/ap/lib/libps/220A1_vehicle_dc/optee/optee_ta.a
new file mode 100644
index 0000000..3f3b602
--- /dev/null
+++ b/ap/lib/libps/220A1_vehicle_dc/optee/optee_ta.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/optee/optee_tee.a b/ap/lib/libps/220A1_vehicle_dc/optee/optee_tee.a
new file mode 100644
index 0000000..23351a2
--- /dev/null
+++ b/ap/lib/libps/220A1_vehicle_dc/optee/optee_tee.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/optee/optee_tomcrypt.a b/ap/lib/libps/220A1_vehicle_dc/optee/optee_tomcrypt.a
new file mode 100644
index 0000000..cd12b4d
--- /dev/null
+++ b/ap/lib/libps/220A1_vehicle_dc/optee/optee_tomcrypt.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/optee/optee_utee.a b/ap/lib/libps/220A1_vehicle_dc/optee/optee_utee.a
new file mode 100644
index 0000000..843f9ad
--- /dev/null
+++ b/ap/lib/libps/220A1_vehicle_dc/optee/optee_utee.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/optee/optee_utils.a b/ap/lib/libps/220A1_vehicle_dc/optee/optee_utils.a
new file mode 100644
index 0000000..b0b9f29
--- /dev/null
+++ b/ap/lib/libps/220A1_vehicle_dc/optee/optee_utils.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/phy/phy.a b/ap/lib/libps/220A1_vehicle_dc/phy/phy.a
index 8768a92..2a5a990 100644
--- a/ap/lib/libps/220A1_vehicle_dc/phy/phy.a
+++ b/ap/lib/libps/220A1_vehicle_dc/phy/phy.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_osa_linux.a b/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_osa_linux.a
index 78968bc..b6d7df2 100644
--- a/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_osa_linux.a
+++ b/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_osa_linux.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_psm.a b/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_psm.a
index 1ea275a..0efbccb 100644
--- a/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_psm.a
+++ b/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_psm.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_sup.a b/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_sup.a
index de4e73b..257cca0 100644
--- a/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_sup.a
+++ b/ap/lib/libps/220A1_vehicle_dc/plat/armv7-a/GCC/plat_sup.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/plat/plat_osa_linux.a b/ap/lib/libps/220A1_vehicle_dc/plat/plat_osa_linux.a
index 78968bc..b6d7df2 100644
--- a/ap/lib/libps/220A1_vehicle_dc/plat/plat_osa_linux.a
+++ b/ap/lib/libps/220A1_vehicle_dc/plat/plat_osa_linux.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/plat/plat_psm.a b/ap/lib/libps/220A1_vehicle_dc/plat/plat_psm.a
index 1ea275a..0efbccb 100644
--- a/ap/lib/libps/220A1_vehicle_dc/plat/plat_psm.a
+++ b/ap/lib/libps/220A1_vehicle_dc/plat/plat_psm.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/plat/plat_sup.a b/ap/lib/libps/220A1_vehicle_dc/plat/plat_sup.a
index de4e73b..257cca0 100644
--- a/ap/lib/libps/220A1_vehicle_dc/plat/plat_sup.a
+++ b/ap/lib/libps/220A1_vehicle_dc/plat/plat_sup.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/as_com.a b/ap/lib/libps/220A1_vehicle_dc/ps/as_com.a
index 6a116b0..db3b5c7 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/as_com.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/as_com.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/as_gsm.a b/ap/lib/libps/220A1_vehicle_dc/ps/as_gsm.a
index ba47da1..7caad11 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/as_gsm.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/as_gsm.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/ati.a b/ap/lib/libps/220A1_vehicle_dc/ps/ati.a
index 25f4c4c..5b20b5d 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/ati.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/ati.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/com.a b/ap/lib/libps/220A1_vehicle_dc/ps/com.a
index 7ebc15f..9355aa9 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/com.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/com.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/el2_up.a b/ap/lib/libps/220A1_vehicle_dc/ps/el2_up.a
index 99afdd3..c61b12a 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/el2_up.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/el2_up.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/eudbg.a b/ap/lib/libps/220A1_vehicle_dc/ps/eudbg.a
index 1d7f9c4..dad6901 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/eudbg.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/eudbg.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/eurrc.a b/ap/lib/libps/220A1_vehicle_dc/ps/eurrc.a
index 7b87f6d..a30e758 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/eurrc.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/eurrc.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/l1e.a b/ap/lib/libps/220A1_vehicle_dc/ps/l1e.a
index 2c8d624..7b3a6f1 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/l1e.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/l1e.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/nas.a b/ap/lib/libps/220A1_vehicle_dc/ps/nas.a
index 84ae344..870ff76 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/nas.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/nas.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/ul1t.a b/ap/lib/libps/220A1_vehicle_dc/ps/ul1t.a
index b854971..47fdecc 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/ul1t.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/ul1t.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/ul2_up.a b/ap/lib/libps/220A1_vehicle_dc/ps/ul2_up.a
index 644783e..3de3f9e 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/ul2_up.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/ul2_up.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/urrc.a b/ap/lib/libps/220A1_vehicle_dc/ps/urrc.a
index bcabc2d..e4df089 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/urrc.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/urrc.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/wl1w.a b/ap/lib/libps/220A1_vehicle_dc/ps/wl1w.a
index e4ba53c..bac80c8 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/wl1w.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/wl1w.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ps/wl2_up.a b/ap/lib/libps/220A1_vehicle_dc/ps/wl2_up.a
index 610514a..bdd6ab4 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ps/wl2_up.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ps/wl2_up.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/psbase/base.a b/ap/lib/libps/220A1_vehicle_dc/psbase/base.a
index 1f15bda..d0a4e02 100644
--- a/ap/lib/libps/220A1_vehicle_dc/psbase/base.a
+++ b/ap/lib/libps/220A1_vehicle_dc/psbase/base.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ref/com.a b/ap/lib/libps/220A1_vehicle_dc/ref/com.a
index bdefe4e..0d10194 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ref/com.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ref/com.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/ref/ref_drv.a b/ap/lib/libps/220A1_vehicle_dc/ref/ref_drv.a
index 119084e..5fd74e3 100644
--- a/ap/lib/libps/220A1_vehicle_dc/ref/ref_drv.a
+++ b/ap/lib/libps/220A1_vehicle_dc/ref/ref_drv.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/tools/tools.a b/ap/lib/libps/220A1_vehicle_dc/tools/tools.a
index 737164e..3ed7a85 100644
--- a/ap/lib/libps/220A1_vehicle_dc/tools/tools.a
+++ b/ap/lib/libps/220A1_vehicle_dc/tools/tools.a
Binary files differ
diff --git a/ap/lib/libps/220A1_vehicle_dc/usat/usat.a b/ap/lib/libps/220A1_vehicle_dc/usat/usat.a
index fa62f75..af46dfc 100644
--- a/ap/lib/libps/220A1_vehicle_dc/usat/usat.a
+++ b/ap/lib/libps/220A1_vehicle_dc/usat/usat.a
Binary files differ
diff --git a/ap/lib/libsoft_timer/libsoft_timer.a b/ap/lib/libsoft_timer/libsoft_timer.a
index 5928666..35fb679 100644
--- a/ap/lib/libsoft_timer/libsoft_timer.a
+++ b/ap/lib/libsoft_timer/libsoft_timer.a
Binary files differ
diff --git a/ap/lib/libsoft_timer/libsoft_timer.so b/ap/lib/libsoft_timer/libsoft_timer.so
index 1eca733..95dbf22 100755
--- a/ap/lib/libsoft_timer/libsoft_timer.so
+++ b/ap/lib/libsoft_timer/libsoft_timer.so
Binary files differ
diff --git a/ap/lib/libsoft_timer/libsoft_timer_sc.a b/ap/lib/libsoft_timer/libsoft_timer_sc.a
index 027e69c..7016a73 100644
--- a/ap/lib/libsoft_timer/libsoft_timer_sc.a
+++ b/ap/lib/libsoft_timer/libsoft_timer_sc.a
Binary files differ
diff --git a/ap/lib/libsoft_timer/libsoft_timer_sc.so b/ap/lib/libsoft_timer/libsoft_timer_sc.so
index 1f59c76..8a9d759 100755
--- a/ap/lib/libsoft_timer/libsoft_timer_sc.so
+++ b/ap/lib/libsoft_timer/libsoft_timer_sc.so
Binary files differ
diff --git a/ap/lib/libsoftap/netotherapi.c b/ap/lib/libsoftap/netotherapi.c
index c1d73ce..62edaaf 100755
--- a/ap/lib/libsoftap/netotherapi.c
+++ b/ap/lib/libsoftap/netotherapi.c
@@ -320,6 +320,35 @@
 			return 0;
 		}
 		break;
+	case TXERR:
+		if ((field = getField(semiColon, " ", 10))) {
+			errno = 0;
+			result_data_num = strtoull(field, NULL, 10);
+			if (errno == ERANGE)// kw ERRNO.NOT_CHECKED
+			{
+				printf("strtoull errno %d: %s\n", errno, strerror(errno));
+			}
+			if (result_data_num < 0 || result_data_num > LLONG_MAX-1)
+				result_data_num = 0;
+			*result_data = result_data_num;
+			
+			return 0; //kw 3
+		}
+		break;
+	case TXDROP:
+		if ((field = getField(semiColon, " ", 11))) {
+			errno = 0;
+			result_data_num = strtoull(field, NULL, 10);
+			if (errno == ERANGE)// kw ERRNO.NOT_CHECKED
+			{
+				printf("strtoull errno %d: %s\n", errno, strerror(errno));
+			}
+			if (result_data_num < 0 || result_data_num > LLONG_MAX-1)
+				result_data_num = 0;
+			*result_data = result_data_num;
+			return 0;
+		}
+		break;
 	case RXBYTE:
 		if ((field = getField(semiColon, " ", 0))) {
 			errno = 0;
@@ -349,6 +378,34 @@
 			return 0;
 		}
 		break;
+	case RXERR:
+		if ((field = getField(semiColon, " ", 2))) {
+			errno = 0;
+			result_data_num = strtoull(field, NULL, 10);
+			if (errno == ERANGE)// kw ERRNO.NOT_CHECKED
+			{
+				printf("strtoull errno %d: %s\n", errno, strerror(errno));
+			}
+			if (result_data_num < 0 || result_data_num > LLONG_MAX-1)
+				result_data_num = 0;
+			*result_data = result_data_num;
+			return 0;
+		}
+		break;
+	case RXDROP:
+		if ((field = getField(semiColon, " ", 3))) {
+			errno = 0;
+			result_data_num = strtoull(field, NULL, 10);
+			if (errno == ERANGE)// kw ERRNO.NOT_CHECKED
+			{
+				printf("strtoull errno %d: %s\n", errno, strerror(errno));
+			}
+			if (result_data_num < 0 || result_data_num > LLONG_MAX-1)
+				result_data_num = 0;
+			*result_data = result_data_num;
+			return 0;
+		}
+		break;
 	}
 	return -1;
 }
diff --git a/ap/lib/libtinyalsa/audio_mixer_ctrl.c b/ap/lib/libtinyalsa/audio_mixer_ctrl.c
index c4ffb76..3ec6fe3 100755
--- a/ap/lib/libtinyalsa/audio_mixer_ctrl.c
+++ b/ap/lib/libtinyalsa/audio_mixer_ctrl.c
@@ -1718,7 +1718,7 @@
     string = mixer_ctl_get_enum_string(ctl, val);	
 
 	if(string == NULL){
-		fprintf(stderr, "Invalid string=%d\n",string);
+		fprintf(stderr, "err, string is NULL \n");
 		return -2;		
 	}
 	printf("%s: string=%s !\n",__func__,string);
diff --git a/ap/lib/libtinyalsa/tinyalsa_voice_ref.c b/ap/lib/libtinyalsa/tinyalsa_voice_ref.c
index 3e4923b..9cdc264 100644
--- a/ap/lib/libtinyalsa/tinyalsa_voice_ref.c
+++ b/ap/lib/libtinyalsa/tinyalsa_voice_ref.c
@@ -33,7 +33,7 @@
 	voice_mixer = mixer_open(0);

 	if(!voice_mixer)

 	{

-		printf("zte voice_mixer open failed!");

+		printf("voice_mixer open failed!");

 		goto err_ret;

 	}

 

@@ -60,26 +60,26 @@
 	voicePcmOut = pcm_open(0, 1, PCM_OUT, &config_voice);

 	if(!voicePcmOut || !pcm_is_ready(voicePcmOut))

 	{

-		printf( "zte voicePcmOut open failed!");	

+		printf( "voicePcmOut open failed!");	

 		goto err_ret;

 	}

 	

 	voicePcmIn = pcm_open(0, 1, PCM_IN, &config_voice);

 	if(!voicePcmIn || !pcm_is_ready(voicePcmIn))

 	{

-		printf( "zte voicePcmIn open failed!");

+		printf( "voicePcmIn open failed!");

 		goto err_ret;

 	}

 	

     if(0 != pcm_prepare(voicePcmOut)) 

 	{

-		printf("zte voicePcmOut pcm_prepare failed!");

+		printf("voicePcmOut pcm_prepare failed!");

 		goto err_ret;

 	}

 		

     if(0 != pcm_prepare(voicePcmIn)) 

 	{

-		printf("zte voicePcmIn pcm_prepare failed!");

+		printf("voicePcmIn pcm_prepare failed!");

 		goto err_ret;

 	}

 	return 0;

diff --git a/ap/lib/libupi_ab/libupi_ab.a b/ap/lib/libupi_ab/libupi_ab.a
index be2d42a..e7fac0f 100644
--- a/ap/lib/libupi_ab/libupi_ab.a
+++ b/ap/lib/libupi_ab/libupi_ab.a
Binary files differ
diff --git a/ap/lib/libupi_ab/libupi_ab.so b/ap/lib/libupi_ab/libupi_ab.so
index 5435c24..4047d48 100755
--- a/ap/lib/libupi_ab/libupi_ab.so
+++ b/ap/lib/libupi_ab/libupi_ab.so
Binary files differ
diff --git a/ap/lib/libvoice/Makefile b/ap/lib/libvoice/Makefile
index 31a4d66..a7f371a 100644
--- a/ap/lib/libvoice/Makefile
+++ b/ap/lib/libvoice/Makefile
@@ -54,7 +54,7 @@
 # objects

 #*******************************************************************************

 ifeq ($(USE_VOICE_ALSA),yes)

-voiceipc_OBJECTS += voice_api.o voiceipc.o

+voiceipc_OBJECTS += alsa_call.o voice_api.o voiceipc.o

 endif

 

 

@@ -69,6 +69,9 @@
 SHAREDFLAG := -shared -lc

 LDLIBS += -L$(LIB_DIR)/libtinyalsa

 LDLIBS += -ltinyalsa

+LDLIBS  += -lnvram_sc -L$(zte_lib_path)/libnvram

+LDLIBS  += -lsoftap -L$(zte_lib_path)/libsoftap

+LDLIBS  += -lsoft_timer_sc -L$(zte_lib_path)/libsoft_timer

 

 ifeq ($(USE_VOICE_ALSA),yes)

 all: $(LIB_STATIC) $(LIB_SHARED) $(EXEC_voiceipc)

diff --git a/ap/lib/libvoice/include/voice_ipc.h b/ap/lib/libvoice/include/voice_ipc.h
index abe83b2..3b58efb 100755
--- a/ap/lib/libvoice/include/voice_ipc.h
+++ b/ap/lib/libvoice/include/voice_ipc.h
@@ -1,4 +1,5 @@
 #ifdef USE_CAP_SUPPORT

+#include "message.h"

 

 #define VOICEIPC_OK 0

 #define VOICEIPC_ERROR -1

@@ -10,7 +11,7 @@
 #define VOICE_HEAD_LEN (2 * sizeof(int))

 #define VOICE_CONTROL_MAX_LEN 32

 

-enum  voice_ipc_func_type {

+enum  voice_ipc_func_type{

 	IPC_SET_VOICE_DEVICE_MODE = 0,

     IPC_GET_VOICE_DEVICE_MODE = 1,

     IPC_SET_RX_VOICE_VOL = 2,

@@ -23,30 +24,57 @@
     IPC_GET_RX_VOICE_MUTE_STATE = 9,

     IPC_SET_LOOPBACK_ENABLE_STATE = 10,

     IPC_GET_LOOPBACK_ENABLE_STATE = 11,

+    IPC_AP_ALSA_VOICE_OPEN = 12,

+    IPC_AP_ALSA_VOICE_CLOSE = 13,

+    IPC_CAP_ALSA_VOICE_OPEN = 14,

+    IPC_CAP_ALSA_VOICE_CLOSE = 15,

 

     IPC_VOICE_FUNC_MAX

 };

 

-typedef struct {

+enum  voice_msg_cmd{

+    MSG_CMD_CAP_VALSA_OPEN = MSG_CMD_VOICE_BASE + 0x0, //37070

+    MSG_CMD_CAP_VALSA_CLOSE

+};

+

+typedef struct{

     int func_id;

     int param_len;

     unsigned char param[VOICE_CONTROL_MAX_LEN];

 }voice_ipc_control_msg;

 

-int voice_ipc_init(void);

-void Voice_Ctrl_Rpmsg_Recv(void);

+//msg

+int cap_alsa_voice_open(int vmode);

+int cap_alsa_voice_close(int vmode);

+int recv_msg_proc(MSG_BUF msg);

+void recv_cap_voice_alsa(void);

 

-void ipc_set_voice_device_mode(voice_ipc_control_msg msg);

-void ipc_get_voice_device_mode(voice_ipc_control_msg msg);

-void ipc_set_rx_voice_vol(voice_ipc_control_msg msg);

-void ipc_get_rx_voice_vol(voice_ipc_control_msg msg);

-void ipc_set_tx_voice_vol(voice_ipc_control_msg msg);

-void ipc_get_tx_voice_vol(voice_ipc_control_msg msg);

-void ipc_set_tx_voice_mute_state(voice_ipc_control_msg msg);

-void ipc_get_tx_voice_mute_state(voice_ipc_control_msg msg);

-void ipc_set_rx_voice_mute_state(voice_ipc_control_msg msg);

-void ipc_get_rx_voice_mute_state(voice_ipc_control_msg msg);

-void ipc_set_loopback_enable_state(voice_ipc_control_msg msg);

-void ipc_get_loopback_enable_state(voice_ipc_control_msg msg);

+//voice ipc interface

+int voice_ipc_init(void);

+int Voice_Ctrl_Rpmsg_Send(int func_id, int *msg);

+void Voice_Ctrl_Rpmsg_Recv(void);

+void voice_ipc_recv_proc(voice_ipc_control_msg msg);

+

+//send message to cap

+int ipc_cap_alsa_voice_open(int vmode);

+int ipc_cap_alsa_voice_close(int vmode);

+

+//receive message from cap

+void ipc_set_voice_device_mode_rcv(voice_ipc_control_msg msg);

+void ipc_get_voice_device_mode_rcv(voice_ipc_control_msg msg);

+void ipc_set_rx_voice_vol_rcv(voice_ipc_control_msg msg);

+void ipc_get_rx_voice_vol_rcv(voice_ipc_control_msg msg);

+void ipc_set_tx_voice_vol_rcv(voice_ipc_control_msg msg);

+void ipc_get_tx_voice_vol_rcv(voice_ipc_control_msg msg);

+void ipc_set_tx_voice_mute_state_rcv(voice_ipc_control_msg msg);

+void ipc_get_tx_voice_mute_state_rcv(voice_ipc_control_msg msg);

+void ipc_set_rx_voice_mute_state_rcv(voice_ipc_control_msg msg);

+void ipc_get_rx_voice_mute_state_rcv(voice_ipc_control_msg msg);

+void ipc_set_loopback_enable_state_rcv(voice_ipc_control_msg msg);

+void ipc_get_loopback_enable_state_rcv(voice_ipc_control_msg msg);

+#ifdef _USE_VOICE_ALSA

+void ipc_ap_alsa_voice_open_rcv(voice_ipc_control_msg msg);

+void ipc_ap_alsa_voice_close_rcv(voice_ipc_control_msg msg);

+#endif

 

 #endif

diff --git a/ap/lib/libvoice/include/voice_lib.h b/ap/lib/libvoice/include/voice_lib.h
index 6788b77..572592e 100644
--- a/ap/lib/libvoice/include/voice_lib.h
+++ b/ap/lib/libvoice/include/voice_lib.h
@@ -15,7 +15,7 @@
 #define AVOICE_4G_DEV_NUM 1
 #define AVOICE_5G_DEV_NUM 1
 
-#ifdef _USE_VOICE_ALSA
+
 
 
  typedef enum
@@ -29,6 +29,7 @@
 	 AVOICE_5G_WB,		 
 	 MAX_AVOICE_MODE			   
  }T_Alsa_Voice_Mode;
+#ifdef _USE_VOICE_ALSA	 
 int alsa_voice_open(int vmode);
 int alsa_voice_close(int vmode);
 
diff --git a/ap/lib/libvoice/voice.c b/ap/lib/libvoice/voice.c
index fbc8bf1..33b3bed 100644
--- a/ap/lib/libvoice/voice.c
+++ b/ap/lib/libvoice/voice.c
@@ -23,6 +23,8 @@
 #include <fcntl.h>

 #include <tinyalsa/audio_mixer_ctrl.h>

 #include "voice_lib.h"

+#include "voice_ipc.h"

+

 

 

 #define VOICE_DEV_NAME "/dev/voice_device"

@@ -197,12 +199,15 @@
 

 }

 

+static T_ZDrvVoice_Cfg s_cfgParam = {0};

+static int cur_vmode = MAX_AVOICE_MODE;

+

 int zDrvVolte_PreOpen(T_ZDrvVolte_Cfg *cfgParam)

 {

 

-

 	struct mixer *voice_mixer = NULL;

 	struct pcm_config config_voice = {0};

+	int ret = 0;

 	printf(" voice lib zDrvVolte_PreOpen!\n");

 

 	if (slic_flag_already == 1) {

@@ -218,17 +223,44 @@
 			return 0;

 		}

 	}

-#ifdef _ALSA_CODEC_IN_CAP

+#if defined(_ALSA_CODEC_IN_CAP) && defined(_USE_ALSA_AT_INTF)

 

-		printf("%s: i2s and codec not need config,return!\n",__func__);	

-		return 0;

+   

+	   printf("%s: i2s and codec not need config,return!\n",__func__); 

+	   return 0;

+

+#elif defined(_ALSA_CODEC_IN_CAP)

+

+

+	   if(cfgParam->clock_rate == 8000){

+

+		    ret = cap_alsa_voice_open(AVOICE_4G_NB);

+			printf("%s:cap_alsa_voice_open clock_rate(%d) ret=%d!\n",__func__,cfgParam->clock_rate,ret); 

+	        cur_vmode = AVOICE_4G_NB;

+

+	   }

+	   else if(cfgParam->clock_rate == 16000){

+

+		   ret = cap_alsa_voice_open(AVOICE_4G_WB);

+		   printf("%s:cap_alsa_voice_open clock_rate(%d) ret=%d!\n",__func__,cfgParam->clock_rate,ret);	

+	        cur_vmode = AVOICE_4G_WB;

+	   }

+	   else{

+

+		   printf("%s:cap_alsa_voice_open clock_rate(%d) not support!\n",__func__,cfgParam->clock_rate);	

+		   return -2;

+

+	   }

+	   s_cfgParam = *cfgParam;

+	   return ret;

+    

 #endif

 

 

 	//open mixer dev for codec control

 	voice_mixer = mixer_open(0);

 	if (!voice_mixer) {

-		printf("zte voice_mixer open failed!\n");

+		printf("voice_mixer open failed!\n");

 		return -1;

 	}

 

@@ -254,23 +286,23 @@
 	//23G card 0 dev 2

 	volte_pcm_voice_out = pcm_open(0, 1, PCM_OUT, &config_voice);

 	if (!pcm_is_ready(volte_pcm_voice_out)) {

-		printf("zte volte_pcm_voice_out open failed!\n");

+		printf("volte_pcm_voice_out open failed!\n");

 		goto err_ret;

 	}

 

 	volte_pcm_voice_in = pcm_open(0, 1, PCM_IN, &config_voice);

 	if (!pcm_is_ready(volte_pcm_voice_in)) {

-		printf("zte volte_pcm_voice_in open failed!\n");

+		printf("volte_pcm_voice_in open failed!\n");

 		goto err_ret;

 	}

 

 	if (0 != pcm_prepare(volte_pcm_voice_out)) {

-		printf("zte volte_pcm_voice_out pcm_prepare failed!\n");

+		printf("volte_pcm_voice_out pcm_prepare failed!\n");

 		goto err_ret;

 	}

 

 	if (0 != pcm_prepare(volte_pcm_voice_in)) {

-		printf("zte volte_pcm_voice_in pcm_prepare failed!\n");

+		printf("volte_pcm_voice_in pcm_prepare failed!\n");

 		goto err_ret;

 	}

 	return 0;

@@ -289,25 +321,49 @@
 

 void zDrvVolte_PreClose(void)

 {

+	int ret = 0;

 

 	printf(" voice lib zDrvVolte_PreClose!\n");

 

 	if (slic_flag_already == 1) {

 		printf(" voice  slic flag already get, slic_flag=%d!\n", slic_flag);

 		if (slic_flag == 1) {

-			return ;

+			return;

 		}

 

 	} else {

 		slic_flag = voice_GetSlicFlag();

 		printf(" voice  slic flag  get, slic_flag=%d!\n", slic_flag);

 		if (slic_flag == 1) {

-			return ;

+			return;

 		}

 	}

-#ifdef _ALSA_CODEC_IN_CAP

+#if defined(_ALSA_CODEC_IN_CAP) && defined(_USE_ALSA_AT_INTF)

+	

 		printf("%s: i2s and codec not need config,return!\n",__func__); 

 		return ;

+#elif defined(_ALSA_CODEC_IN_CAP)

+		if(s_cfgParam.clock_rate == 8000){

+		

+			 ret = cap_alsa_voice_close(AVOICE_4G_NB);

+			 printf("%s:cap_alsa_voice_close clock_rate(%d) ret=%d!\n",__func__,s_cfgParam.clock_rate,ret); 

+		

+		}

+		else if(s_cfgParam.clock_rate == 16000){

+		

+			ret = cap_alsa_voice_close(AVOICE_4G_WB);

+			printf("%s:cap_alsa_voice_close clock_rate(%d) ret=%d!\n",__func__,s_cfgParam.clock_rate,ret); 

+		

+		}

+		else{

+		

+			printf("%s:cap_alsa_voice_close clock_rate(%d) not support!\n",__func__,s_cfgParam.clock_rate);	 

+		

+		}

+		return;

+

+

+

 #endif

 

 

diff --git a/ap/lib/libvoice/voice_api.c b/ap/lib/libvoice/voice_api.c
index e6262fb..ba07e83 100755
--- a/ap/lib/libvoice/voice_api.c
+++ b/ap/lib/libvoice/voice_api.c
@@ -122,6 +122,7 @@
 

 int sc_audio_get_voice_device_mode(int *p_dev_mode)

 {

+    int ret = 0;

 	struct mixer *voice_mixer = NULL;

 	printf("%s: start!\n",__func__);

 

@@ -138,7 +139,7 @@
 	

 	if((*p_dev_mode < T_OUTPUT_HANDSET ) ||(*p_dev_mode >= T_OUTPUT_MAX)){

 		printf("%s: dev_mode not support, *p_dev_mode=%d!\n",__func__, *p_dev_mode);

-		//return -1;

+		ret = -1;

 	}

 	printf("%s: start *p_dev_mode=%d!\n",__func__, *p_dev_mode);

 

@@ -146,7 +147,7 @@
 	mixer_close(voice_mixer);

 	voice_mixer = NULL;

 

-	return 0;

+	return ret;

 	

 }

 

@@ -187,6 +188,7 @@
 

 int sc_audio_get_rx_voice_vol(int     * p_vol)

 {

+    int ret = 0;

 	struct mixer *voice_mixer = NULL;

 

 	printf("%s: start!\n",__func__);

@@ -204,7 +206,7 @@
 

 	if ((*p_vol < 0 ) ||(*p_vol > 11)){

 		printf("%s: vol not support, *p_vol=%d!\n",__func__, *p_vol);

-		//return -1;

+		ret = -1;

 	}

 	printf("%s:  *p_vol=%d!\n",__func__, *p_vol);

 

@@ -213,7 +215,7 @@
 	voice_mixer = NULL;

 

 

-	return 0;

+	return ret;

 

 	

 	

@@ -255,6 +257,7 @@
 

 int sc_audio_get_tx_voice_vol(int  *p_vol)

 {

+    int ret = 0;

 	struct mixer *voice_mixer = NULL;

 	printf("%s: start!\n",__func__);

 

@@ -272,14 +275,14 @@
 

 	if((*p_vol < 0 ) ||(*p_vol > 5)){

 		printf("%s: vol not support, *p_vol=%d!\n",__func__, *p_vol);

-		//return -1;

+		ret = -1;

 	}

 	printf("%s:  *p_vol=%d!\n",__func__, *p_vol);

 

 	//close mixer

 	mixer_close(voice_mixer);

 	voice_mixer = NULL;	

-    return 0;	

+    return ret;	

 }

 

 

@@ -313,6 +316,7 @@
 

 int sc_audio_get_tx_voice_mute_state(int *p_mute)

 {

+    int ret = 0;

 	struct mixer *voice_mixer = NULL;

 

 	printf("%s: start!\n",__func__);

@@ -330,10 +334,8 @@
 

 	if((*p_mute != 0 ) &&(*p_mute != 1)) {

 		printf("%s: *p_mute not support, *p_mute=%d!\n",__func__, *p_mute);

-		//close mixer

-	    mixer_close(voice_mixer);

-	    voice_mixer = NULL;	

-		return -1;

+			

+		ret = -1;

 	}

 	printf("%s:  *p_mute=%d!\n",__func__, *p_mute);

 

@@ -341,7 +343,7 @@
 	mixer_close(voice_mixer);

 	voice_mixer = NULL;	

 

-    return 0;

+    return ret;

 }

 

 

@@ -378,7 +380,9 @@
 }

 

 

-int sc_audio_get_rx_voice_mute_state(int *p_mute){

+int sc_audio_get_rx_voice_mute_state(int *p_mute)

+{

+    int ret = 0;

 	struct mixer *voice_mixer = NULL;

 

 	printf("%s: start!\n",__func__);

@@ -396,10 +400,7 @@
 	if((*p_mute != 0 ) &&(*p_mute != 1)) {

 

 		printf("%s: *p_mute not support, *p_mute=%d!\n",__func__, *p_mute);

-		//close mixer

-	    mixer_close(voice_mixer);

-	    voice_mixer = NULL;

-		return -1;

+		ret = -1;

 	}

 	printf("%s:  *p_mute=%d!\n",__func__, *p_mute);

 

@@ -407,7 +408,7 @@
 	mixer_close(voice_mixer);

 	voice_mixer = NULL;	

 

-    return 0;

+    return ret;

 

 }

 

diff --git a/ap/lib/libvoice/voiceipc.c b/ap/lib/libvoice/voiceipc.c
index 198fe19..998d7a5 100755
--- a/ap/lib/libvoice/voiceipc.c
+++ b/ap/lib/libvoice/voiceipc.c
@@ -7,7 +7,10 @@
 #include <sys/ioctl.h>

 #include <fcntl.h>

 #include "voice_ipc.h"

+#include "voice_lib.h"

 #include "linux/rpmsg_zx29.h"

+#include "softap_api.h"

+#include "pthread.h"

 

 extern int sc_audio_set_voice_device_mode(int dev_mode);

 extern int sc_audio_get_voice_device_mode(int *p_dev_mode);

@@ -22,10 +25,148 @@
 extern int sc_audio_set_loopback_enable_state(int enable);

 extern int sc_audio_get_loopback_enable_state(int *p_enable);

 

-int voice_ipc_fd = -1;

-voice_ipc_control_msg voice_ctrl_recvmsg[IPC_VOICE_FUNC_MAX] = {0};

+static int voice_ipc_fd = -1;

+static voice_ipc_control_msg voice_ctrl_recvmsg[IPC_VOICE_FUNC_MAX] = {0};

 

-void ipc_set_voice_device_mode(voice_ipc_control_msg msg)

+int cap_alsa_voice_open(int vmode)

+{

+    int ret = 0;

+    int msg_handle = 0;

+	MSG_BUF msg;

+	LONG msg_size =  sizeof(MSG_BUF)-sizeof(LONG);

+    int module_id = MODULE_ID_VOICE_CLIENT;

+    int dst_id = MODULE_ID_VOICE_SERVER;

+    int msg_cmd = MSG_CMD_CAP_VALSA_OPEN;

+

+    //´´½¨ÏûÏ¢¶ÓÁÐ

+	msg_handle = msgget(module_id, IPC_CREAT|0600);

+    

+    //·¢ËÍÏûÏ¢

+    ret = ipc_send_message(module_id, dst_id, msg_cmd, sizeof(int), (unsigned char *)(&vmode), 0);

+    if(0 != ret){

+        printf("%s: send msg error(%d)!\n", __func__, ret);

+        msgctl(msg_handle,IPC_RMID,0);

+        return ret;

+    }

+    printf("%s: send msg success(%d)!\n", __func__, ret);

+    

+    //½ÓÊÕÏûÏ¢

+    while(1)

+	{

+		memset(&msg, 0x00, sizeof(MSG_BUF));

+

+		//»ñÈ¡ÏûÏ¢¶ÓÁÐÏûÏ¢²¢´¦Àí

+		ret = msgrcv(msg_handle, &msg, msg_size, 0, 0);

+        if(0 > ret){

+            continue;

+        }

+

+        //Æ¥Åäµ½ÊÇMSG_CMD_CAP_VALSA_OPENʱ²Å´¦Àí

+        if(msg_cmd == msg.usMsgCmd){

+            ret = *((int *)msg.aucDataBuf);

+            msgctl(msg_handle,IPC_RMID,0);

+            printf("%s: receive msg success(%d)!\n", __func__, ret);

+            break;

+        }

+	}

+

+    return ret;

+}

+

+int cap_alsa_voice_close(int vmode)

+{

+    int ret = 0;

+    int msg_handle = 0;

+	MSG_BUF msg;

+	LONG msg_size =  sizeof(MSG_BUF)-sizeof(LONG);

+    int module_id = MODULE_ID_VOICE_CLIENT;

+    int dst_id = MODULE_ID_VOICE_SERVER;

+    int msg_cmd = MSG_CMD_CAP_VALSA_CLOSE;

+

+    //´´½¨ÏûÏ¢¶ÓÁÐ

+	msg_handle = msgget(module_id, IPC_CREAT|0600);

+    

+    //·¢ËÍÏûÏ¢

+    ret = ipc_send_message(module_id, dst_id, msg_cmd, sizeof(int), (unsigned char *)(&vmode), 0);

+    if(0 != ret){

+        printf("%s: send msg error(%d)!\n", __func__, ret);

+        msgctl(msg_handle,IPC_RMID,0);

+        return ret;

+    }

+    printf("%s: send msg success(%d)!\n", __func__, ret);

+

+    //½ÓÊÕÏûÏ¢

+    while(1)

+	{

+		memset(&msg, 0x00, sizeof(MSG_BUF));

+

+		//»ñÈ¡ÏûÏ¢¶ÓÁÐÏûÏ¢²¢´¦Àí

+		ret = msgrcv(msg_handle, &msg, msg_size, 0, 0);

+        if(0 > ret){

+            continue;

+        }

+

+        //Æ¥Åäµ½ÊÇMSG_CMD_CAP_VALSA_CLOSEʱ²Å´¦Àí

+        if(msg_cmd == msg.usMsgCmd){

+            ret = *((int *)msg.aucDataBuf);

+            msgctl(msg_handle,IPC_RMID,0);

+            printf("%s: receive msg success(%d)!\n", __func__, ret);

+            break;

+        }

+	}

+

+    return ret;

+}

+

+int ipc_cap_alsa_voice_open(int vmode)

+{

+    int ret = 0;

+    int func_id = IPC_CAP_ALSA_VOICE_OPEN;

+    voice_ctrl_recvmsg[func_id].func_id = VOICE_WAIT_MSG_FROM_CAP;

+

+    ret = Voice_Ctrl_Rpmsg_Send(func_id, &vmode);

+    

+    if (0 >= ret){

+		printf("%s: Voice_Ctrl_Rpmsg_Send error, return %d!\n", __func__, ret);

+		return VOICEIPC_ERROR;

+	}

+    printf("%s: Voice_Ctrl_Rpmsg_Send success, write_len=%d!\n", __func__, ret);

+    

+    while(func_id != voice_ctrl_recvmsg[func_id].func_id){

+        usleep(1);

+    }

+    

+    memcpy(&ret, voice_ctrl_recvmsg[func_id].param, voice_ctrl_recvmsg[func_id].param_len);

+    printf("%s: ipc receive success, ret=%d!\n", __func__, ret);

+

+    return ret;

+}

+

+int ipc_cap_alsa_voice_close(int vmode)

+{

+    int ret = 0;

+    int func_id = IPC_CAP_ALSA_VOICE_CLOSE;

+    voice_ctrl_recvmsg[func_id].func_id = VOICE_WAIT_MSG_FROM_CAP;

+    

+    ret = Voice_Ctrl_Rpmsg_Send(func_id, &vmode);

+    

+    if (0 >= ret){

+		printf("%s: Voice_Ctrl_Rpmsg_Send error, return %d!\n", __func__, ret);

+		return VOICEIPC_ERROR;

+	}

+    printf("%s: Voice_Ctrl_Rpmsg_Send success, write_len=%d!\n", __func__, ret);

+

+    while(func_id != voice_ctrl_recvmsg[func_id].func_id){

+        usleep(1);

+    }

+

+    memcpy(&ret, voice_ctrl_recvmsg[func_id].param, voice_ctrl_recvmsg[func_id].param_len);

+    printf("%s: ipc receive success, ret=%d!\n", __func__, ret);

+

+    return ret;

+}

+

+void ipc_set_voice_device_mode_rcv(voice_ipc_control_msg msg)

 {

     int ret = VOICEIPC_OK;

     int msg_len = 0;

@@ -47,7 +188,7 @@
 	}

 }

 

-void ipc_get_voice_device_mode(voice_ipc_control_msg msg)

+void ipc_get_voice_device_mode_rcv(voice_ipc_control_msg msg)

 {

     int ret = VOICEIPC_OK;

     int msg_len = 0;

@@ -58,7 +199,10 @@
 	

     //msg.func_id不变

     msg.param_len = sizeof(int);

-    memcpy(msg.param, &ret, msg.param_len);

+    if(0 == ret)

+        memcpy(msg.param, p_dev_mode, msg.param_len);

+    else

+        memcpy(msg.param, &ret, msg.param_len);

     msg_len = VOICE_HEAD_LEN + msg.param_len;

 

     ret = write(voice_ipc_fd, &msg, msg_len);

@@ -68,7 +212,7 @@
 	}

 }

 

-void ipc_set_rx_voice_vol(voice_ipc_control_msg msg)

+void ipc_set_rx_voice_vol_rcv(voice_ipc_control_msg msg)

 {

     int ret = VOICEIPC_OK;

     int msg_len = 0;

@@ -90,7 +234,7 @@
 	}

 }

 

-void ipc_get_rx_voice_vol(voice_ipc_control_msg msg)

+void ipc_get_rx_voice_vol_rcv(voice_ipc_control_msg msg)

 {

     int ret = VOICEIPC_OK;

     int msg_len = 0;

@@ -101,7 +245,10 @@
 	

     //msg.func_id不变

     msg.param_len = sizeof(int);

-    memcpy(msg.param, &ret, msg.param_len);

+    if(0 == ret)

+        memcpy(msg.param, p_vol, msg.param_len);

+    else

+        memcpy(msg.param, &ret, msg.param_len);

     msg_len = VOICE_HEAD_LEN + msg.param_len;

 

     ret = write(voice_ipc_fd, &msg, msg_len);

@@ -111,7 +258,7 @@
 	}

 }

 

-void ipc_set_tx_voice_vol(voice_ipc_control_msg msg)

+void ipc_set_tx_voice_vol_rcv(voice_ipc_control_msg msg)

 {

     int ret = VOICEIPC_OK;

     int msg_len = 0;

@@ -133,7 +280,7 @@
 	}

 }

 

-void ipc_get_tx_voice_vol(voice_ipc_control_msg msg)

+void ipc_get_tx_voice_vol_rcv(voice_ipc_control_msg msg)

 {

     int ret = VOICEIPC_OK;

     int msg_len = 0;

@@ -144,7 +291,10 @@
 	

     //msg.func_id不变

     msg.param_len = sizeof(int);

-    memcpy(msg.param, &ret, msg.param_len);

+    if(0 == ret)

+        memcpy(msg.param, p_vol, msg.param_len);

+    else

+        memcpy(msg.param, &ret, msg.param_len);

     msg_len = VOICE_HEAD_LEN + msg.param_len;

 

     ret = write(voice_ipc_fd, &msg, msg_len);

@@ -154,7 +304,7 @@
 	}

 }

 

-void ipc_set_tx_voice_mute_state(voice_ipc_control_msg msg)

+void ipc_set_tx_voice_mute_state_rcv(voice_ipc_control_msg msg)

 {

     int ret = VOICEIPC_OK;

     int msg_len = 0;

@@ -176,7 +326,7 @@
 	}

 }

 

-void ipc_get_tx_voice_mute_state(voice_ipc_control_msg msg)

+void ipc_get_tx_voice_mute_state_rcv(voice_ipc_control_msg msg)

 {

     int ret = VOICEIPC_OK;

     int msg_len = 0;

@@ -187,7 +337,10 @@
 	

     //msg.func_id不变

     msg.param_len = sizeof(int);

-    memcpy(msg.param, &ret, msg.param_len);

+    if(0 == ret)

+        memcpy(msg.param, p_mute, msg.param_len);

+    else

+        memcpy(msg.param, &ret, msg.param_len);

     msg_len = VOICE_HEAD_LEN + msg.param_len;

 

     ret = write(voice_ipc_fd, &msg, msg_len);

@@ -197,7 +350,7 @@
 	}

 }

 

-void ipc_set_rx_voice_mute_state(voice_ipc_control_msg msg)

+void ipc_set_rx_voice_mute_state_rcv(voice_ipc_control_msg msg)

 {

     int ret = VOICEIPC_OK;

     int msg_len = 0;

@@ -219,7 +372,7 @@
 	}

 }

 

-void ipc_get_rx_voice_mute_state(voice_ipc_control_msg msg)

+void ipc_get_rx_voice_mute_state_rcv(voice_ipc_control_msg msg)

 {

     int ret = VOICEIPC_OK;

     int msg_len = 0;

@@ -230,7 +383,10 @@
 	

     //msg.func_id不变

     msg.param_len = sizeof(int);

-    memcpy(msg.param, &ret, msg.param_len);

+    if(0 == ret)

+        memcpy(msg.param, p_mute, msg.param_len);

+    else

+        memcpy(msg.param, &ret, msg.param_len);

     msg_len = VOICE_HEAD_LEN + msg.param_len;

 

     ret = write(voice_ipc_fd, &msg, msg_len);

@@ -240,7 +396,7 @@
 	}

 }

 

-void ipc_set_loopback_enable_state(voice_ipc_control_msg msg)

+void ipc_set_loopback_enable_state_rcv(voice_ipc_control_msg msg)

 {

     int ret = VOICEIPC_OK;

     int msg_len = 0;

@@ -262,7 +418,7 @@
 	}

 }

 

-void ipc_get_loopback_enable_state(voice_ipc_control_msg msg)

+void ipc_get_loopback_enable_state_rcv(voice_ipc_control_msg msg)

 {

     int ret = VOICEIPC_OK;

     int msg_len = 0;

@@ -273,6 +429,31 @@
 	

     //msg.func_id不变

     msg.param_len = sizeof(int);

+    if(0 == ret)

+        memcpy(msg.param, p_enable, msg.param_len);

+    else

+        memcpy(msg.param, &ret, msg.param_len);

+    msg_len = VOICE_HEAD_LEN + msg.param_len;

+

+    ret = write(voice_ipc_fd, &msg, msg_len);

+    

+    if (0 >= ret){

+		printf("%s: write error(%d)!\n", __func__, ret);

+	}

+}

+

+#ifdef _USE_VOICE_ALSA

+void ipc_ap_alsa_voice_open_rcv(voice_ipc_control_msg msg)

+{

+    int ret = VOICEIPC_OK;

+    int msg_len = 0;

+    int vmode = 0;

+

+    vmode = *((int *)msg.param);

+    ret = alsa_voice_open(vmode);

+	

+    //msg.func_id不变

+    msg.param_len = sizeof(int);

     memcpy(msg.param, &ret, msg.param_len);

     msg_len = VOICE_HEAD_LEN + msg.param_len;

 

@@ -283,48 +464,77 @@
 	}

 }

 

-void voice_msg_proc(voice_ipc_control_msg msg)

+void ipc_ap_alsa_voice_close_rcv(voice_ipc_control_msg msg)

+{

+    int ret = VOICEIPC_OK;

+    int msg_len = 0;

+    int vmode = 0;

+

+    vmode = *((int *)msg.param);

+    ret = alsa_voice_close(vmode);

+	

+    //msg.func_id不变

+    msg.param_len = sizeof(int);

+    memcpy(msg.param, &ret, msg.param_len);

+    msg_len = VOICE_HEAD_LEN + msg.param_len;

+

+    ret = write(voice_ipc_fd, &msg, msg_len);

+    

+    if (0 >= ret){

+		printf("%s: write error(%d)!\n", __func__, ret);

+	}

+}

+#endif

+

+void voice_ipc_recv_proc(voice_ipc_control_msg msg)

 {

 	switch(msg.func_id){

 		case IPC_SET_VOICE_DEVICE_MODE:

-			ipc_set_voice_device_mode(voice_ctrl_recvmsg[msg.func_id]);

+			ipc_set_voice_device_mode_rcv(voice_ctrl_recvmsg[msg.func_id]);

 			break;

 		case IPC_GET_VOICE_DEVICE_MODE:

-			ipc_get_voice_device_mode(voice_ctrl_recvmsg[msg.func_id]);

+			ipc_get_voice_device_mode_rcv(voice_ctrl_recvmsg[msg.func_id]);

 			break;

         case IPC_SET_RX_VOICE_VOL:

-			ipc_set_rx_voice_vol(voice_ctrl_recvmsg[msg.func_id]);

+			ipc_set_rx_voice_vol_rcv(voice_ctrl_recvmsg[msg.func_id]);

 			break;

         case IPC_GET_RX_VOICE_VOL:

-			ipc_get_rx_voice_vol(voice_ctrl_recvmsg[msg.func_id]);

+			ipc_get_rx_voice_vol_rcv(voice_ctrl_recvmsg[msg.func_id]);

 			break;

         case IPC_SET_TX_VOICE_VOL:

-			ipc_set_tx_voice_vol(voice_ctrl_recvmsg[msg.func_id]);

+			ipc_set_tx_voice_vol_rcv(voice_ctrl_recvmsg[msg.func_id]);

 			break;

         case IPC_GET_TX_VOICE_VOL:

-			ipc_get_tx_voice_vol(voice_ctrl_recvmsg[msg.func_id]);

+			ipc_get_tx_voice_vol_rcv(voice_ctrl_recvmsg[msg.func_id]);

 			break;

         case IPC_SET_TX_VOICE_MUTE_STATE:

-			ipc_set_tx_voice_mute_state(voice_ctrl_recvmsg[msg.func_id]);

+			ipc_set_tx_voice_mute_state_rcv(voice_ctrl_recvmsg[msg.func_id]);

 			break;

         case IPC_GET_TX_VOICE_MUTE_STATE:

-			ipc_get_tx_voice_mute_state(voice_ctrl_recvmsg[msg.func_id]);

+			ipc_get_tx_voice_mute_state_rcv(voice_ctrl_recvmsg[msg.func_id]);

 			break;

         case IPC_SET_RX_VOICE_MUTE_STATE:

-			ipc_set_rx_voice_mute_state(voice_ctrl_recvmsg[msg.func_id]);

+			ipc_set_rx_voice_mute_state_rcv(voice_ctrl_recvmsg[msg.func_id]);

 			break;

         case IPC_GET_RX_VOICE_MUTE_STATE:

-			ipc_get_rx_voice_mute_state(voice_ctrl_recvmsg[msg.func_id]);

+			ipc_get_rx_voice_mute_state_rcv(voice_ctrl_recvmsg[msg.func_id]);

 			break;

         case IPC_SET_LOOPBACK_ENABLE_STATE:

-			ipc_set_loopback_enable_state(voice_ctrl_recvmsg[msg.func_id]);

+			ipc_set_loopback_enable_state_rcv(voice_ctrl_recvmsg[msg.func_id]);

 			break;

         case IPC_GET_LOOPBACK_ENABLE_STATE:

-			ipc_get_loopback_enable_state(voice_ctrl_recvmsg[msg.func_id]);

+			ipc_get_loopback_enable_state_rcv(voice_ctrl_recvmsg[msg.func_id]);

 			break;

+#ifdef _USE_VOICE_ALSA        

+        case IPC_AP_ALSA_VOICE_OPEN:

+			ipc_ap_alsa_voice_open_rcv(voice_ctrl_recvmsg[msg.func_id]);

+			break;

+        case IPC_AP_ALSA_VOICE_CLOSE:

+			ipc_ap_alsa_voice_close_rcv(voice_ctrl_recvmsg[msg.func_id]);

+			break;

+#endif        

 		default:

-			printf("%s: msg func_id(%d) error\n", __func__, msg.func_id);

-			break;

+		    break;

 	}

 }

 

@@ -333,23 +543,52 @@
     int read_len = 0;

     voice_ipc_control_msg tmpbuf = {0};

     

-    for(;;){

+    while(1){

         read_len = 0;

 		read_len = read(voice_ipc_fd, &tmpbuf, (VOICE_HEAD_LEN + VOICE_CONTROL_MAX_LEN));

+        

         if (0 >= read_len){

+            sleep(1);

 			continue;

 		}

-

-        //最后再改变func_id,确保其他地方判断func_id改变后有数据可读

-        memcpy(voice_ctrl_recvmsg[tmpbuf.func_id].param, tmpbuf.param, tmpbuf.param_len);

+        printf("%s: voice_ipc_fd=%d, read_len=%d\n", __func__, voice_ipc_fd, read_len);

+        

+        //Êý¾Ý¶ÁÈ¡ÍêºóÔٸıäfuc_id

+        if(0 != tmpbuf.param_len){

+            memcpy(voice_ctrl_recvmsg[tmpbuf.func_id].param, tmpbuf.param, tmpbuf.param_len);

+        }

         voice_ctrl_recvmsg[tmpbuf.func_id].param_len = tmpbuf.param_len;

         voice_ctrl_recvmsg[tmpbuf.func_id].func_id = tmpbuf.func_id;

+        printf("%s: tmpbuf.param_len=%d, tmpbuf.func_id=%d\n", __func__, tmpbuf.param_len, tmpbuf.func_id);

         

-        voice_msg_proc(voice_ctrl_recvmsg[tmpbuf.func_id]);

+        voice_ipc_recv_proc(voice_ctrl_recvmsg[tmpbuf.func_id]);

     }

 }

 

-int voice_ipc_init(void) //通道初始化

+int Voice_Ctrl_Rpmsg_Send(int func_id, int *msg)

+{

+    voice_ipc_control_msg tmpbuf = {0};

+    int tmpbuf_len = 0;

+    int write_len = 0;

+    

+    tmpbuf.func_id = func_id;

+    

+    if(NULL == msg){

+        tmpbuf.param_len = 0;

+    }else{

+        tmpbuf.param_len = sizeof(int);

+        memcpy(tmpbuf.param, msg, tmpbuf.param_len);

+    }

+    

+    tmpbuf_len = VOICE_HEAD_LEN + tmpbuf.param_len;

+

+    //printf("Voice_Ctrl_Rpmsg_Send, voice_ipc_fd = %d\n", voice_ipc_fd);

+    write_len = write(voice_ipc_fd, &tmpbuf, tmpbuf_len);

+

+    return write_len;

+}

+

+int voice_ipc_init(void) //通道初始åŒ?

 {

     voice_ipc_fd = open(VOICE_IPC_CONTROL_CHANNEL, O_RDWR);

 

@@ -365,35 +604,104 @@
         return VOICEIPC_ERROR;

     }

     

-    if(0 > ioctl(voice_ipc_fd, RPMSG_SET_INT_FLAG, NULL)){ //写中断

+    if(0 > ioctl(voice_ipc_fd, RPMSG_SET_INT_FLAG, NULL)){ //写中æ–?

         printf("%s: ioctl RPMSG_SET_INT_FLAG fail!\n", __func__);

         close(voice_ipc_fd);

         voice_ipc_fd = -1;

         return VOICEIPC_ERROR;

     }

     

-    if(0 > ioctl(voice_ipc_fd, RPMSG_CLEAR_POLL_FLAG, NULL)){ //阻塞方式读数据

+    if(0 > ioctl(voice_ipc_fd, RPMSG_CLEAR_POLL_FLAG, NULL)){ //阻塞方式读数æ?

         printf("%s: ioctl RPMSG_CLEAR_POLL_FLAG fail!\n", __func__);

         close(voice_ipc_fd);

         voice_ipc_fd = -1;

         return VOICEIPC_ERROR;

     }

+

+    printf("voice_ipc_init %s create success! voice_ipc_fd = %d\n", VOICE_IPC_CONTROL_CHANNEL, voice_ipc_fd);

+    

     return VOICEIPC_OK;

 }

 

+int recv_msg_proc(MSG_BUF msg)

+{

+    int ret = 0;

+    int vmode = 0;

+    int module_id = MODULE_ID_VOICE_SERVER;

+    int dst_id = MODULE_ID_VOICE_CLIENT;

+    

+    switch(msg.usMsgCmd){

+		case MSG_CMD_CAP_VALSA_OPEN:

+            vmode = *((int *)msg.aucDataBuf);

+			ret = ipc_cap_alsa_voice_open(vmode);

+            //dst_id = MODULE_ID_CAP_VALSA_OPEN;

+            ret = ipc_send_message(module_id, dst_id, msg.usMsgCmd, sizeof(int), (unsigned char *)(&ret), 0);

+            if(0 != ret){

+                printf("%s: ipc_send_message error, return %d!\n", __func__, ret);

+            }

+			break;

+        case MSG_CMD_CAP_VALSA_CLOSE:

+            vmode = *((int *)msg.aucDataBuf);

+			ret = ipc_cap_alsa_voice_close(vmode);

+			//dst_id = MODULE_ID_CAP_VALSA_CLOSE;

+            ret = ipc_send_message(module_id, dst_id, msg.usMsgCmd, sizeof(int), (unsigned char *)(&ret), 0);

+            if(0 != ret){

+                printf("%s: ipc_send_message error, return %d!\n", __func__, ret);

+            }

+			break;

+        default:

+            printf("%s: msg.usMsgCmd=%d, not support!\n", __func__, msg.usMsgCmd);

+            break;

+    }

+    

+    return ret;

+}

+

+void recv_cap_voice_alsa(void)

+{

+    int ret = 0;

+    int msg_handle = 0;

+	MSG_BUF msg;

+	LONG msg_size =  sizeof(MSG_BUF)-sizeof(LONG);

+    int module_id = MODULE_ID_VOICE_SERVER;

+

+    //´´½¨ÏûÏ¢¶ÓÁÐ

+	msg_handle = msgget(module_id, IPC_CREAT|0600);

+

+    //½ÓÊÕÏûÏ¢

+    while(1)

+	{

+		memset(&msg, 0x00, sizeof(MSG_BUF));

+

+		//»ñÈ¡ÏûÏ¢¶ÓÁÐÏûÏ¢²¢´¦Àí

+		ret = msgrcv(msg_handle, &msg, msg_size, 0, 0);

+        

+        if(0 > ret){

+            continue;

+        }

+

+        recv_msg_proc(msg);

+    }

+}

+

 int main(int argc, char **argv)

 {

     int ret = 0;

     

+    //ipcͨµÀ³õʼ»¯

     ret = voice_ipc_init();

-    

-    if(ret < 0){

-        printf("voice_ipc_init error!\n");

+    if(0 > ret){

+        printf("voice_ipc_init %s error!\n", VOICE_IPC_CONTROL_CHANNEL);

         return -1;

     }

-

-    printf("voice_ipc_init %s create success!\n", VOICE_IPC_CONTROL_CHANNEL);

     

+    //ipc³õʼ»¯ºó£¬´´½¨msgÏûÏ¢½ÓÊÕÏß³Ì

+	pthread_t recv_thread_tid;

+	if(0 != pthread_create(&recv_thread_tid, NULL, (void *)recv_cap_voice_alsa, NULL)){

+		printf("recv_cap_voice_alsa create error!\n");

+	}

+

+    sleep(4);

     Voice_Ctrl_Rpmsg_Recv();

     

     return 0;

diff --git a/ap/lib/libvsim/ght_vsim_api.c b/ap/lib/libvsim/ght_vsim_api.c
index 12a5afa..11b7bd1 100755
--- a/ap/lib/libvsim/ght_vsim_api.c
+++ b/ap/lib/libvsim/ght_vsim_api.c
@@ -47,7 +47,7 @@
 

 extern int32_t zte_GetRegInfobySimid(RegInfo_t *reg_info, uint8_t nSimID);

 

-extern int32_t zte_GetCellInfobySimId(CellInfo_t *pcellinfo, uint8_t nSimID);

+extern int32_t zte_GetCellInfobySimId(uint8_t nSimID);

 

 extern int32_t zte_GetNetInfobySimId(NetInfo_t *pNetInfo, uint8_t nSimID);

 

@@ -340,9 +340,9 @@
 **

 ***********************************************************/

 

-int32_t fibo_get_CellInfo_by_simid(CellInfo_t *pcellinfo, uint8_t nSimID)

+int32_t fibo_get_CellInfo_by_simid(uint8_t nSimID)

 {

-    return zte_GetCellInfobySimId(pcellinfo, nSimID);

+    return zte_GetCellInfobySimId(nSimID);

 }

 

 

diff --git a/ap/lib/libvsim/ght_vsim_api.h b/ap/lib/libvsim/ght_vsim_api.h
index b381421..5fd8568 100755
--- a/ap/lib/libvsim/ght_vsim_api.h
+++ b/ap/lib/libvsim/ght_vsim_api.h
@@ -48,10 +48,8 @@
 

 typedef enum {

     E_NW_STATUS_SRV_NONE = 0,

-    E_NW_STATUS_CURRENT_SERVING = 1,

-    E_NW_STATUS_SRV_LIMITED = 2,

-    E_NW_STATUS_SRV_AVAILABLE = 3,

-    E_NW_STATUS_SRV_FORBIDDEN = 4,

+    E_NW_STATUS_SRV_LIMITED = 1,

+    E_NW_STATUS_SRV_AVAILABLE = 2,

 }e_nw_srv_status_t;

 

 

@@ -59,6 +57,7 @@
 {

 	uint32_t tac;

 	uint32_t cell_id;

+	uint32_t roamingFlag; ///< 1:roaming,0:non roaming

 }lte_scell_info_t;

 

 typedef struct

@@ -83,15 +82,14 @@
 	uint32_t tac;

 	uint32_t cell_id;

     uint16_t bandwidth;

-    int16_t  rxlev;

+    uint16_t pcid;//int16_t  rxlev;

     uint32_t arfcn;

-    uint16_t pcid;

 }base_cell_info_t;//Hex format

 

 

 typedef struct

 {

-    uint8_t  roamingFlag; ///< 1:roaming,0:non roaming

+    uint16_t  roamingFlag; ///< 1:roaming,0:non roaming

     int16_t  rsrp;

     int16_t  rsrq;

     uint16_t SINR;

@@ -227,6 +225,7 @@
   E_RF_RESOURCE_CALLBACK_EVENT = 0x00,   /**< É䯵×ÊÔ´Çл». */

   E_NW_ATTACH_COMMPLETE_EVENT  = 0x32,   /**< ×¢ÍøÍê³É. */

   E_DATA_PDN_ACT_SUCC_EVENT = 0x64,      /**< PDN¼¤»îÍê³É ,ind_dataÖÐЯ´øZGIPDNS:µØÖ·ÐÅÏ¢  */

+  E_GET_CELLINFO_BY_SIMID_EVENT  = 0x65,	 /**< É¨ÍøÍê³É. */

 }E_MODEM_EVENT_ID;

 

 typedef enum

@@ -470,7 +469,7 @@
 **

 ***********************************************************/

 

-extern int32_t fibo_get_CellInfo_by_simid(CellInfo_t *pcellinfo, uint8_t nSimID);

+extern int32_t fibo_get_CellInfo_by_simid(uint8_t nSimID);

 

 /**********************************************************

 ** Function Name: fibo_get_NetInfo_by_simid

diff --git a/ap/lib/libvsim/libvsim.c b/ap/lib/libvsim/libvsim.c
index e0f275b..210e3e6 100755
--- a/ap/lib/libvsim/libvsim.c
+++ b/ap/lib/libvsim/libvsim.c
@@ -9,6 +9,7 @@
 
 #define VSIM_MAX_MSG_LEN	1024
 #define vsim_debug_printf printf 
+uint8_t bWithVsimApp = 1; //  0 ²»´øÓ¦ÓÃ    1 ´øÓ¦ÓÃ
 
 enum{
 	MSG_CMD_VSIM_GET_SWITCH = 1,//ATÔÚÄÄÒ»´ý·¢
@@ -23,6 +24,8 @@
 	MSG_CMD_VSIM_APDU,
 	MSG_CMD_VSIM_GET_FLOW_STATISTIC,//»ñÈ¡µ±Ç°Á÷Á¿Í³¼Æ
 	MSG_CMD_VSIM_RESET_FLOW_STATISTIC,//ÖØÖõ±Ç°Á÷Á¿Í³¼Æ
+	MSG_CMD_VSIM_GET_SCANING,//Õýscan,´Ëʱ½ûÖ¹TAU
+	MSG_CMD_VSIM_SET_SCANING,
 	MSG_CMD_VSIM_MAX,
 };
 
@@ -32,6 +35,7 @@
     unsigned char aucDataBuf[VSIM_MAX_MSG_LEN];  /* ÏûÏ¢ÕýÎÄ */  
 } VSIM_MSG_BUF;
 
+pthread_mutex_t vsim_at_mutex = PTHREAD_MUTEX_INITIALIZER;
 pthread_t read_thread_tid;
 pthread_t msg_thread_tid;
 int g_read_thread_state = -1;
@@ -40,9 +44,11 @@
 SoftSim_COMMAND g_softsim_apdu_process_cb;
 zte_mdm_event_ind_callback g_vsim_event_ind_cb;
 unsigned char g_vsim_slot[2];
+int g_sim_status[2] = {-1,-1};
 
 int32_t zte_mdm_event_ind_cb(E_MODEM_EVENT_ID event_id, void *ind_data, uint32_t  ind_data_len)
 {
+	printf("##vsim## [%s] event_id=%d len=%d \n", __FUNCTION__, event_id, ind_data_len);
 	return 0;
 }
 int zte_vsim_ind_cb(uint8_t *apdu_req, uint16_t apdu_req_len,uint8_t *apdu_rsp, uint16_t *apdu_rsp_len, uint8_t slot)
@@ -59,13 +65,23 @@
 	return 0;
 }
 
+
+static int vsim_send_at(char *req_at, char *info_fmt, void **pval)
+{
+	int ret;
+	pthread_mutex_lock(&vsim_at_mutex);
+	ret = get_modem_info(req_at,info_fmt,pval);
+	pthread_mutex_unlock(&vsim_at_mutex);
+	return ret;
+}
+
 static int vsim_card_switch_req(unsigned char sim)
 {
 	int ret = 0;
 	if(sim)
-		ret = get_modem_info("AT+ZCARDSWITCHREQ=0,1\r\n", NULL, NULL);
+		ret = vsim_send_at("AT+ZCARDSWITCHREQ=0,1\r\n", NULL, NULL);
 	else
-		ret = get_modem_info("AT+ZCARDSWITCHREQ=1,0\r\n", NULL, NULL);
+		ret = vsim_send_at("AT+ZCARDSWITCHREQ=1,0\r\n", NULL, NULL);
 	if(ret != 0){
 		printf("##vsim## [%s] sim=%d ret=%d err\n", __FUNCTION__, sim, ret);
 	}
@@ -82,7 +98,11 @@
 	msg_in.usMsgCmd = msg;
 	msg_in.aucDataBuf[0] = param;
 	vsim_debug_printf("##vsim## [%s] msg=%d param=%d start\n", __FUNCTION__, msg, param);
+	if(msg == MSG_CMD_VSIM_SET_SWITCH)
+		pthread_mutex_lock(&vsim_at_mutex);
 	ret = syscall(__NR_vsim_proc,(unsigned char *)&msg_in, (unsigned char *)&msg_out);
+	if(msg == MSG_CMD_VSIM_SET_SWITCH)
+		pthread_mutex_unlock(&vsim_at_mutex);
 	if(ret == 0){
 		printf("##vsim## [%s] msg=%d param=%d err\n", __FUNCTION__, msg, param);
 	}
@@ -133,6 +153,7 @@
 		VSIM_MSG_BUF msg_out = {0};
 		int ret = 0;
 		int is_auth = 0;
+		int is_slot1 = 0;
 		vsim_debug_printf("##vsim## [%s] start\n", __FUNCTION__);
 		ret = syscall(__NR_vsim_read,(unsigned char *)&msg_out);
 		if(ret == 0){
@@ -143,8 +164,9 @@
 			printf("##vsim## read msg=%d ret=%d err\n", msg_out.usMsgCmd, ret);
 		}
 		is_auth = msg_out.aucDataBuf[1];
+		is_slot1 = msg_out.aucDataBuf[0];
 		//ÇÐʵÌ忨
-		if(is_auth){
+		if(is_auth && g_vsim_slot[msg_out.aucDataBuf[0]] && is_slot1){
 			printf("##vsim## vsim_apdu_auth standby=%d\n", vsim_get(MSG_CMD_VSIM_GET_STANDBY));
 			vsim_set(MSG_CMD_VSIM_SET_AUTHING,1);
 			usleep(20000);//±£»¤´ëÊ©,ÑÓ³Ù20ºÁÃëÔÙÏ·¢Çп¨£¬±£Ö¤¼øÈ¨ÇëÇóµÄrlc ack»Ø¸´¸øÍø²à
@@ -162,7 +184,7 @@
 		}
 		vsim_debug_printf("##vsim## g_vsim_apdu_process_cb ret=0x%x len=%d\n", ret, msg_in.usDataLen);
 		//ÇÐÐéÄ⿨
-		if(is_auth){
+		if(is_auth && g_vsim_slot[msg_out.aucDataBuf[0]] && is_slot1){
 			vsim_set(MSG_CMD_VSIM_SET_STANDBY,1);//´ËÊ±ÔÆ¿¨Ó¦¸Ãδ½¨ÍøÂçÁ´½Ó£¬ÏÈÇÐÊý¾ÝÔÙÇÐÍø
 			vsim_card_switch_req(1);
 			vsim_set(MSG_CMD_VSIM_SET_AUTHING,0);
@@ -197,7 +219,7 @@
 			case MSG_CMD_ZCARDSWITCHIND_IND:
 				//callback todo
 				SwitchStat = stMsg.aucDataBuf[1];
-				if(vsim_get(MSG_CMD_VSIM_GET_AUTHING)){
+				if(vsim_get(MSG_CMD_VSIM_GET_AUTHING) || vsim_get(MSG_CMD_VSIM_GET_SCANING)){
 					printf("##vsim## ZCARDSWITCHIND AUTHING abort\n");
 					if(SwitchStat)
 						vsim_set(MSG_CMD_VSIM_SET_TAUING,0);
@@ -213,8 +235,64 @@
 				}
 				break;
 			case MSG_CMD_CREG_IND:
-				if(vsim_get(MSG_CMD_VSIM_GET_STANDBY) == 1){
-				//callback todo
+				{
+					uint8_t nSimID = vsim_get(MSG_CMD_VSIM_GET_STANDBY);
+					if(nSimID == vsim_get_cardstat_fromps())
+						g_vsim_event_ind_cb(E_NW_ATTACH_COMMPLETE_EVENT, nSimID, 1);
+				}
+				break;
+			case MSG_CMD_ZSCISCAN_IND:
+				{
+					uint8_t nSimID = vsim_get(MSG_CMD_VSIM_GET_SCANING);
+					RegInfo_t reg_info = {0};
+					lte_cellinfo_t cell_info = {0};
+					lte_Scell_t cell[20] = {0};
+					lte_Scell_t cell_order[20] = {0};
+					int reg_ret = 0;
+					int i = 0;
+					int j = 0;
+					memcpy(cell, stMsg.aucDataBuf, sizeof(lte_Scell_t)*20);
+					if(nSimID != 0){
+						nSimID--;
+						reg_ret = zte_GetRegInfobySimid(&reg_info, nSimID);
+						vsim_set(MSG_CMD_VSIM_SET_SCANING,0);
+						for(i = 0; i < 20; i++){
+							for(j = 0; j < 20; j++){
+								if((cell_order[j].base_Scell_info.mcc == 0 && cell_order[j].base_Scell_info.mnc == 0)
+								||(cell_order[j].base_Scell_info.mcc == cell[i].base_Scell_info.mcc 
+									&& cell_order[j].base_Scell_info.mnc == cell[i].base_Scell_info.mnc 
+									&& cell_order[j].netMode == cell[i].netMode)){
+									if(cell[i].rsrp > cell_order[j].rsrp)
+										memcpy(&cell_order[j], &cell[i], sizeof(lte_Scell_t));
+								}
+							}
+							if(reg_ret == 0 && cell[i].base_Scell_info.cell_id == reg_info.lte_scell_info.cell_id){
+								memcpy(&cell_info.lteScell, &cell[i], sizeof(lte_Scell_t));
+								cell_info.lteScell.roamingFlag = reg_info.lte_scell_info.roamingFlag;
+							}
+						}
+						for(i = 0; i < 20; i++){
+							for(j = 0; j < 6; j++){
+								if(cell_info.lteNcell[j].base_Ncell_info.mcc == 0 && cell_info.lteNcell[j].base_Ncell_info.mnc == 0 
+									&& (cell_order[i].base_Scell_info.mcc != 0 || cell_order[i].base_Scell_info.mnc != 0)){
+									memcpy(&cell_info.lteNcell[j].base_Ncell_info, &cell_order[i].base_Scell_info, sizeof(base_cell_info_t));
+									cell_info.lteNcell[j].rsrp = cell_order[i].rsrp;
+									cell_info.lteNcell[j].rsrq = cell_order[i].rsrq;
+									cell_info.lteNcell[j].netMode = cell_order[i].netMode;
+									cell_info.lteNcellNum++;
+								}
+								if(cell_info.lteNcellNum == 6){
+									if(cell_order[i].rsrp > cell_info.lteNcell[j].rsrp){
+										memcpy(&cell_info.lteNcell[j].base_Ncell_info, &cell_order[i].base_Scell_info, sizeof(base_cell_info_t));
+										cell_info.lteNcell[j].rsrp = cell_order[i].rsrp;
+										cell_info.lteNcell[j].rsrq = cell_order[i].rsrq;
+										cell_info.lteNcell[j].netMode = cell_order[i].netMode;
+									}
+								}
+							}
+						}
+						g_vsim_event_ind_cb(E_GET_CELLINFO_BY_SIMID_EVENT, &cell_info, sizeof(cell_info));
+					}
 				}
 				break;
 			case MSG_CMD_VSIMDEBUG_IND:
@@ -222,10 +300,10 @@
 					char imei[]="862769025435956";
 					fibo_set_IMEI_by_simid(imei,sizeof(imei),1);
 					fibo_mdm_event_regist(zte_mdm_event_ind_cb);
-					vsim_set(MSG_CMD_VSIM_SET_STANDBY,1);
+					vsim_set(MSG_CMD_VSIM_SET_STANDBY,1);//´ËÊ±ÔÆ¿¨Î´½¨ÍøÂçÁ´½Ó£¬ÏÈÇÐÊý¾ÝÔÙÇÐÍø
 					vsim_card_switch_req(1);
 					vsim_set(MSG_CMD_VSIM_SET_SWITCH,1);
-					get_modem_info("AT+CFUN=1\r\n", NULL, NULL);
+					vsim_send_at("AT+CFUN=1\r\n", NULL, NULL);
 					g_vsim_slot[1] = 1;
 				}
 				if(stMsg.aucDataBuf[0] == 2){
@@ -243,6 +321,26 @@
 				if(stMsg.aucDataBuf[0] == 21){
 					zte_SetGTDUALSIM(1);
 				}
+				if(stMsg.aucDataBuf[0] == 30){
+					bWithVsimApp = 0;
+				    fibo_SoftSim_init(zte_vsim_ind_cb,0);
+				}
+				if(stMsg.aucDataBuf[0] == 40){
+					fibo_SoftSim_close(zte_vsim_ind_cb,0);
+				}
+				if(stMsg.aucDataBuf[0] == 31){
+					bWithVsimApp = 0;
+					fibo_SoftSim_init(zte_vsim_ind_cb,1);
+				}
+				if(stMsg.aucDataBuf[0] == 41){
+					fibo_SoftSim_close(zte_vsim_ind_cb,1);
+				}
+				if(stMsg.aucDataBuf[0] == 50){
+					fibo_get_CellInfo_by_simid(0);
+				}
+				if(stMsg.aucDataBuf[0] == 51){
+					fibo_get_CellInfo_by_simid(1);
+				}
 				break;
 			default:
 				printf("##vsim## rcv_msg err msgid 0x%x\n",stMsg.usMsgCmd);
@@ -277,16 +375,17 @@
 		return -1;
 	}
 	g_vsim_slot[1] = 1;
+	g_sim_status[1] = -1;
 	sc_cfg_set("vsim_stat","1");
 	vsim_set(MSG_CMD_VSIM_SET_STANDBY,1);//´ËÊ±ÔÆ¿¨Î´½¨ÍøÂçÁ´½Ó£¬ÏÈÇÐÊý¾ÝÔÙÇÐÍø
 	vsim_card_switch_req(1);
 	vsim_set(MSG_CMD_VSIM_SET_SWITCH,1);
-	get_modem_info("AT+ZCARDSWITCH=1,1\r\n", NULL, NULL);
-	get_modem_info("AT+CFUN=1\r\n", NULL, NULL);
+	vsim_send_at("AT+ZCARDSWITCH=1,1\r\n", NULL, NULL);
+	vsim_send_at("AT+CFUN=1\r\n", NULL, NULL);
 	return 0;
 }
 
-int32_t zte_atSoftSimInit(SoftSim_COMMAND softssim_apdu_process_fn, uint8_t nSimID)
+int32_t zte_atSoftSimInit(SoftSim_COMMAND softssim_apdu_process_fn,  uint8_t nSimID)
 {
 	char stat[4] = {0};
 	
@@ -298,14 +397,22 @@
 		return -1;
 	}
 	g_vsim_slot[nSimID] = 2;
+	g_sim_status[nSimID] = -1;
 	sc_cfg_set("softsim_stat","1");
 	g_softsim_apdu_process_cb = softssim_apdu_process_fn;
 	if(nSimID){
 		vsim_set(MSG_CMD_VSIM_SET_STANDBY,1);//´ËÊ±ÔÆ¿¨Î´½¨ÍøÂçÁ´½Ó£¬ÏÈÇÐÊý¾ÝÔÙÇÐÍø
 		vsim_card_switch_req(1);
 		vsim_set(MSG_CMD_VSIM_SET_SWITCH,1);
-		get_modem_info("AT+ZCARDSWITCH=2,1\r\n", NULL, NULL);
-		get_modem_info("AT+CFUN=1\r\n", NULL, NULL);
+		if(bWithVsimApp == 1)
+		{
+			vsim_send_at("AT+ZCARDSWITCH=2,1\r\n", NULL, NULL);
+		}
+		else
+		{
+			vsim_send_at("AT+ZCARDSWITCH=3,1\r\n", NULL, NULL);
+		}
+		vsim_send_at("AT+CFUN=1\r\n", NULL, NULL);
 	}else{
 		uint8_t sim = 0;
 		uint8_t ret = 0;
@@ -315,10 +422,17 @@
 		ret = vsim_get_cardstat_fromps();
 		if(ret >= 0 && nSimID != ret)
 			vsim_card_switch_req(nSimID);
-		get_modem_info("AT+CFUN=0\r\n", NULL, NULL);
-		get_modem_info("AT+CFUN=5\r\n", NULL, NULL);
-		get_modem_info("AT+ZCARDSWITCH=2,0\r\n", NULL, NULL);
-		get_modem_info("AT+CFUN=1\r\n", NULL, NULL);
+		if(bWithVsimApp == 1)
+		{
+			vsim_send_at("AT+ZCARDSWITCH=2,0\r\n", NULL, NULL);
+		}
+		else
+		{
+			vsim_send_at("AT+ZCARDSWITCH=3,0\r\n", NULL, NULL);
+		}
+		vsim_send_at("AT+CFUN=0\r\n", NULL, NULL);
+//		vsim_send_at("AT+CFUN=5\r\n", NULL, NULL);		
+		vsim_send_at("AT+CFUN=1\r\n", NULL, NULL);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(sim);
 		if(ret >= 0 && nSimID != ret)
@@ -334,9 +448,12 @@
 		printf("##vsim## soft close param err sim=%d\n", nSimID);
 		return -1;
 	}
+	g_vsim_slot[nSimID] = 0;
+	g_sim_status[nSimID] = -1;
 	if(nSimID){
+		vsim_card_switch_req(1);
 		zte_SetGTDATASIM(1);
-		get_modem_info("AT+CFUN=0\r\n", NULL, NULL);
+		vsim_send_at("AT+CFUN=0\r\n", NULL, NULL);
 		vsim_card_switch_req(0);
 		zte_SetGTDUALSIM(0);
 		vsim_set(MSG_CMD_VSIM_RESET_FLOW_STATISTIC,1);
@@ -349,17 +466,16 @@
 		ret = vsim_get_cardstat_fromps();
 		if(ret >= 0 && nSimID != ret)
 			vsim_card_switch_req(nSimID);
-		get_modem_info("AT+CFUN=0\r\n", NULL, NULL);
-		get_modem_info("AT+CFUN=5\r\n", NULL, NULL);
-		get_modem_info("AT+ZCARDSWITCH=0,0\r\n", NULL, NULL);
-		get_modem_info("AT+CFUN=1\r\n", NULL, NULL);
+	//	vsim_send_at("AT+CFUN=5\r\n", NULL, NULL);
+		vsim_send_at("AT+ZCARDSWITCH=0,0\r\n", NULL, NULL);
+		vsim_send_at("AT+CFUN=0\r\n", NULL, NULL);
+		vsim_send_at("AT+CFUN=1\r\n", NULL, NULL);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(sim);
 		if(ret >= 0 && nSimID != ret)
 			vsim_card_switch_req(ret);
 	}
 	g_vsim_apdu_process_cb = NULL;
-	g_vsim_slot[nSimID] = 0;
 	sc_cfg_set("softsim_stat","0");
 	return 0;
 }
@@ -371,13 +487,15 @@
 		printf("##vsim## close param err sim=%d\n", nSimID);
 		return -1;
 	}
+	g_vsim_slot[1] = 0;
+	g_sim_status[1] = -1;
+	vsim_card_switch_req(1);
 	zte_SetGTDATASIM(1);
-	get_modem_info("AT+CFUN=0\r\n", NULL, NULL);
+	vsim_send_at("AT+CFUN=0\r\n", NULL, NULL);
 	vsim_card_switch_req(0);
 	zte_SetGTDUALSIM(0);
 	vsim_set(MSG_CMD_VSIM_RESET_FLOW_STATISTIC,1);
 	g_vsim_apdu_process_cb = NULL;
-	g_vsim_slot[1] = 0;
 	sc_cfg_set("vsim_stat","0");
 	return 0;
 }
@@ -387,7 +505,7 @@
 {
 	int ret = 0;
 	vsim_debug_printf("##vsim## [%s] start\n", __FUNCTION__);
-	if(vsim_get(MSG_CMD_VSIM_GET_AUTHING)){
+	if(vsim_get(MSG_CMD_VSIM_GET_AUTHING) || vsim_get(MSG_CMD_VSIM_GET_SCANING)){
 		printf("##vsim## [%s]->%d fail AUTHING\n", __FUNCTION__, nSimID);
 		return -1;
 	}
@@ -474,14 +592,14 @@
 	char at_cmd[64] = {0};
 	vsim_debug_printf("##vsim## [%s] start\n", __FUNCTION__);
 	snprintf(at_cmd,sizeof(at_cmd),"AT+CFUN=%d\r\n", mode);
-	return get_modem_info(at_cmd, NULL, NULL);
+	return vsim_send_at(at_cmd, NULL, NULL);
 }
 
 int32_t zte_GetCfunMode(uint8_t *mode)
 {
 	vsim_debug_printf("##vsim## [%s] start\n", __FUNCTION__);
 	if(mode)
-		return get_modem_info("AT+CFUN?\r\n", "%1d", (void**)&mode);
+		return vsim_send_at("AT+CFUN?\r\n", "%1d", (void**)&mode);
 	return -1;
 }
 
@@ -496,7 +614,7 @@
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(nSimID);
 		snprintf(at_cmd,sizeof(at_cmd),"AT+CGSN=%s\r\n",imei);
-		ret = get_modem_info(at_cmd, NULL, NULL);
+		ret = vsim_send_at(at_cmd, NULL, NULL);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(sim);
 	}
@@ -512,7 +630,7 @@
 		zte_GetGTDUALSIM(&sim);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(nSimID);
-		ret = get_modem_info("AT+CGSN\r\n", "%s", (void**)&imei);
+		ret = vsim_send_at("AT+CGSN\r\n", "%s", (void**)&imei);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(sim);
 	}
@@ -529,7 +647,7 @@
 		zte_GetGTDUALSIM(&sim);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(nSimID);
-		ret = get_modem_info("AT+ZICCID?\r\n", "%s", (void**)&ccid);
+		ret = vsim_send_at("AT+ZICCID?\r\n", "%s", (void**)&ccid);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(sim);
 	}
@@ -550,13 +668,13 @@
 		zte_GetGTDUALSIM(&sim);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(nSimID);
-		get_modem_info("AT+CRSM=176,28589,0,0,4\r\n", "%d,%d,%s", (void**)p);
+		vsim_send_at("AT+CRSM=176,28589,0,0,4\r\n", "%d,%d,%s", (void**)p);
 		if(sw1 == 144 && sw2 == 0){
 			char imsi[64] = {0};
 			char strPlmnLast[10] = {0};
 			void *p1[] = {imsi};
 		
-			get_modem_info("AT+CIMI\r\n", "%s", (void**)p1);
+			vsim_send_at("AT+CIMI\r\n", "%s", (void**)p1);
 			strncpy(strPlmnLast, &response[strlen(response)-2], 2);
 			memset(mcc, 0, 4);
 			memset(mnc, 0, 4);
@@ -577,7 +695,7 @@
 		zte_GetGTDUALSIM(&sim);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(nSimID);
-		ret = get_modem_info("AT+ZEMSCIQ=1\r\n", "%d,%d,%d,%d,%d,%s", (void**)p);
+		ret = vsim_send_at("AT+ZEMSCIQ=1\r\n", "%d,%d,%d,%d,%d,%s", (void**)p);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(sim);
 		memset(mcc, 0, 4);
@@ -605,7 +723,7 @@
 		zte_GetGTDUALSIM(&sim);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(nSimID);
-		ret = get_modem_info("AT+CSQ\r\n", "%d,%d", (void**)p);
+		ret = vsim_send_at("AT+CSQ\r\n", "%d,%d", (void**)p);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(sim);
 	}
@@ -617,19 +735,19 @@
 	int ret = -1;
 	vsim_debug_printf("##vsim## [%s] start\n", __FUNCTION__);
 	if(reg_info){
-		int i,act,rac;
+		int i,act,rac,srv_domain;
 		void *p[] = {&i,&act,&reg_info->lte_scell_info.cell_id,&rac,&reg_info->lte_scell_info.tac};
-		void *p1[] = {&reg_info->nStatus};
+		void *p1[] = {&reg_info->nStatus,&srv_domain,&reg_info->lte_scell_info.roamingFlag};
 		uint8_t sim = 0;
 		zte_GetGTDUALSIM(&sim);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(nSimID);
 		reg_info->nStatus = 0;
-		get_modem_info("AT^SYSINFO\r\n", "%d", (void**)p1);
-		ret = get_modem_info("AT+ZEMSCIQ=1\r\n", "%d,%d,%d,%d,%d", (void**)p);
+		vsim_send_at("AT^SYSINFO\r\n", "%d,%d,%d", (void**)p1);
+		ret = vsim_send_at("AT+ZEMSCIQ=1\r\n", "%d,%d,%d,%d,%d", (void**)p);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(sim);
-		if(ret || reg_info->nStatus != 2)
+		if(ret || reg_info->nStatus != E_NW_STATUS_SRV_AVAILABLE)
 			return -1;
 		if(act == 16){
 			reg_info->curr_rat = E_NW_RADIO_IF_LTE;
@@ -647,9 +765,11 @@
 	return ret;
 }
 
-int32_t zte_GetCellInfobySimId(CellInfo_t *pcellinfo, uint8_t nSimID)
+int32_t zte_GetCellInfobySimId(uint8_t nSimID)
 {
 	vsim_debug_printf("##vsim## [%s] start\n", __FUNCTION__);
+	vsim_set(MSG_CMD_VSIM_SET_SCANING, 1+nSimID);
+	ipc_send_message(MODULE_ID_VSIM, MODULE_ID_AT_CTL, MSG_CMD_ZSCISCAN_REQ, 0, NULL, 0);
 	return 0;
 }
 
@@ -702,7 +822,7 @@
 				cid_reserved = atoi(reservecid);
 			cid_reserved_vsim = cid_reserved|15;
 			snprintf(at_cmd,sizeof(at_cmd),"AT+CIDRESERVED=%d\r\n", cid_reserved_vsim);
-			get_modem_info(at_cmd, NULL, NULL);
+			vsim_send_at(at_cmd, NULL, NULL);
 		}
 		if(data_call->ip_family == E_DATA_IP_FAMILY_IPV4)
 			snprintf(at_cmd,sizeof(at_cmd),"AT+ZPDPACT=0,\"IP\",\"%s\",,,,%d,\"%s\",\"%s\"\r\n", data_call->apn_name, data_call->auth_pref, data_call->user_name, data_call->password);
@@ -717,13 +837,13 @@
 		zte_GetGTDUALSIM(&sim);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(nSimID);
-		ret = get_modem_info(at_cmd, "%d", (void**)p);
+		ret = vsim_send_at(at_cmd, "%d", (void**)p);
 		vsim_debug_printf("##vsim## [%s] ret=%d cid=%d\n", __FUNCTION__, ret, data_call->profile_id);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(sim);
 		if(nSimID){
 			snprintf(at_cmd,sizeof(at_cmd),"AT+CIDRESERVED=%d\r\n", cid_reserved);
-			get_modem_info(at_cmd, NULL, NULL);
+			vsim_send_at(at_cmd, NULL, NULL);
 		}
 	}
 	return ret;
@@ -741,7 +861,7 @@
 		zte_GetGTDUALSIM(&sim);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(nSimID);
-		ret = get_modem_info(at_cmd, NULL, NULL);
+		ret = vsim_send_at(at_cmd, NULL, NULL);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(sim);
 	}
@@ -762,7 +882,7 @@
 		zte_GetGTDUALSIM(&sim);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(nSimID);
-		ret = get_modem_info(at_cmd, "%d,%17s", (void**)p);
+		ret = vsim_send_at(at_cmd, "%d,%17s", (void**)p);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(sim);
 	}
@@ -777,10 +897,16 @@
 		uint8_t sim = 0;
 		char at_paras[64] = {0};
 		void *p[] = {at_paras};
+
+		vsim_debug_printf("##vsim## [%s] simid=%d sim_stat=%d\n", __FUNCTION__, nSimID, g_sim_status[nSimID]);
+		if(g_vsim_slot[nSimID] && g_sim_status[nSimID] == E_SIM_STAT_READY){
+			*sim_status = E_SIM_STAT_READY;
+			return 0;
+		}
 		zte_GetGTDUALSIM(&sim);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(nSimID);
-		ret = get_modem_info("AT+CPIN?\r\n", "%s", (void**)p);
+		ret = vsim_send_at("AT+CPIN?\r\n", "%s", (void**)p);
 		if(sim != nSimID)
 			zte_SetGTDUALSIM(sim);
 		if(ret == 0){
@@ -805,6 +931,9 @@
 		} else {
 			*sim_status = E_SIM_STAT_UNKNOWN;
 		}
+		if(g_vsim_slot[nSimID]){
+			g_sim_status[nSimID] = *sim_status;
+		}
 		return 0;
 	}
 	return -1;
@@ -819,7 +948,7 @@
 	if(sim != nSimID)
 		zte_SetGTDUALSIM(nSimID);
 	printf("##vsim## [%s] nSimID=%d sw=%d at=%s\n", __FUNCTION__, nSimID, sim, req_at);
-	ret = get_modem_info(req_at, info_fmt, pval);
+	ret = vsim_send_at(req_at, info_fmt, pval);
 	if(sim != nSimID)
 		zte_SetGTDUALSIM(sim);
 	return ret;
diff --git a/ap/lib/libvsim/zte_vsim_api.h b/ap/lib/libvsim/zte_vsim_api.h
index c3821dd..a549035 100755
--- a/ap/lib/libvsim/zte_vsim_api.h
+++ b/ap/lib/libvsim/zte_vsim_api.h
@@ -36,10 +36,8 @@
 

 typedef enum {

     E_NW_STATUS_SRV_NONE = 0,

-    E_NW_STATUS_CURRENT_SERVING = 1,

-    E_NW_STATUS_SRV_LIMITED = 2,

-    E_NW_STATUS_SRV_AVAILABLE = 3,

-    E_NW_STATUS_SRV_FORBIDDEN = 4,

+    E_NW_STATUS_SRV_LIMITED = 1,

+    E_NW_STATUS_SRV_AVAILABLE = 2,

 }e_nw_srv_status_t;

 

 

@@ -47,6 +45,7 @@
 {

 	uint32_t tac;

 	uint32_t cell_id;

+	uint32_t roamingFlag; ///< 1:roaming,0:non roaming

 }lte_scell_info_t;

 

 typedef struct

@@ -71,15 +70,14 @@
 	uint32_t tac;

 	uint32_t cell_id;

     uint16_t bandwidth;

-    int16_t  rxlev;

+    uint16_t pcid;//int16_t  rxlev;

     uint32_t arfcn;

-    uint16_t pcid;

 }base_cell_info_t;//Hex format

 

 

 typedef struct

 {

-    uint8_t  roamingFlag; ///< 1:roaming,0:non roaming

+    uint16_t  roamingFlag; ///< 1:roaming,0:non roaming

     int16_t  rsrp;

     int16_t  rsrq;

     uint16_t SINR;

@@ -215,6 +213,7 @@
   E_RF_RESOURCE_CALLBACK_EVENT = 0x00,   /**< É䯵×ÊÔ´Çл». */

   E_NW_ATTACH_COMMPLETE_EVENT  = 0x32,   /**< ×¢ÍøÍê³É. */

   E_DATA_PDN_ACT_SUCC_EVENT = 0x64,      /**< PDN¼¤»îÍê³É ,ind_dataÖÐЯ´øZGIPDNS:µØÖ·ÐÅÏ¢  */

+  E_GET_CELLINFO_BY_SIMID_EVENT  = 0x65,	 /**< É¨ÍøÍê³É. */

 }E_MODEM_EVENT_ID;

 

 typedef enum

@@ -294,7 +293,7 @@
 

 extern int32_t zte_GetRegInfobySimid(RegInfo_t *reg_info, uint8_t nSimID);

 

-extern int32_t zte_GetCellInfobySimId(CellInfo_t *pcellinfo, uint8_t nSimID);

+extern int32_t zte_GetCellInfobySimId(uint8_t nSimID);

 

 extern int32_t zte_GetNetInfobySimId(NetInfo_t *pNetInfo, uint8_t nSimID);

 

diff --git a/ap/lib/libzcore/min/libbitmap_font.a b/ap/lib/libzcore/min/libbitmap_font.a
index 701b74e..93aefbb 100644
--- a/ap/lib/libzcore/min/libbitmap_font.a
+++ b/ap/lib/libzcore/min/libbitmap_font.a
Binary files differ
diff --git a/ap/lib/libzcore/min/libttf_font.a b/ap/lib/libzcore/min/libttf_font.a
index ccab732..6fe90a5 100644
--- a/ap/lib/libzcore/min/libttf_font.a
+++ b/ap/lib/libzcore/min/libttf_font.a
Binary files differ
diff --git a/ap/lib/libzcore/min/libzcore.a b/ap/lib/libzcore/min/libzcore.a
index 4200899..85f35e1 100644
--- a/ap/lib/libzcore/min/libzcore.a
+++ b/ap/lib/libzcore/min/libzcore.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/app_fw.a b/ap/lib/libzcore/std/lib/lib/fwp/app_fw.a
index ffadb10..b499735 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/app_fw.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/app_fw.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/bl_psa.a b/ap/lib/libzcore/std/lib/lib/fwp/bl_psa.a
index 6d8cdc4..a774524 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/bl_psa.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/bl_psa.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/bl_svr.a b/ap/lib/libzcore/std/lib/lib/fwp/bl_svr.a
index 72cccbe..5fd8f96 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/bl_svr.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/bl_svr.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/font/libbitmap_font.a b/ap/lib/libzcore/std/lib/lib/fwp/font/libbitmap_font.a
index 79dc0ad..f10ea41 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/font/libbitmap_font.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/font/libbitmap_font.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/font/libttf_font.a b/ap/lib/libzcore/std/lib/lib/fwp/font/libttf_font.a
index 0f0fc0a..1b8e099 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/font/libttf_font.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/font/libttf_font.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/framework.a b/ap/lib/libzcore/std/lib/lib/fwp/framework.a
index 4f9fc26..3b42df5 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/framework.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/framework.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/fwkernel.a b/ap/lib/libzcore/std/lib/lib/fwp/fwkernel.a
index 858babd..bcc4402 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/fwkernel.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/fwkernel.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/gui.a b/ap/lib/libzcore/std/lib/lib/fwp/gui.a
index 5ad389a..a8540d0 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/gui.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/gui.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/msm.a b/ap/lib/libzcore/std/lib/lib/fwp/msm.a
index 8c116ab..d83bdef 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/msm.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/msm.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/fwp/ui_fw.a b/ap/lib/libzcore/std/lib/lib/fwp/ui_fw.a
index 65deb1c..3a6357a 100644
--- a/ap/lib/libzcore/std/lib/lib/fwp/ui_fw.a
+++ b/ap/lib/libzcore/std/lib/lib/fwp/ui_fw.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/libplatadapt_com.a b/ap/lib/libzcore/std/lib/lib/libplatadapt_com.a
index 0fe615e..31c3a73 100644
--- a/ap/lib/libzcore/std/lib/lib/libplatadapt_com.a
+++ b/ap/lib/libzcore/std/lib/lib/libplatadapt_com.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/libplatadapt_fwp.a b/ap/lib/libzcore/std/lib/lib/libplatadapt_fwp.a
index 945343b..914933d 100644
--- a/ap/lib/libzcore/std/lib/lib/libplatadapt_fwp.a
+++ b/ap/lib/libzcore/std/lib/lib/libplatadapt_fwp.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/libplatadapt_phone.a b/ap/lib/libzcore/std/lib/lib/libplatadapt_phone.a
index 36179b2..fb7558e 100644
--- a/ap/lib/libzcore/std/lib/lib/libplatadapt_phone.a
+++ b/ap/lib/libzcore/std/lib/lib/libplatadapt_phone.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/libplatadapt_poc.a b/ap/lib/libzcore/std/lib/lib/libplatadapt_poc.a
index 6380718..5b7d93c 100644
--- a/ap/lib/libzcore/std/lib/lib/libplatadapt_poc.a
+++ b/ap/lib/libzcore/std/lib/lib/libplatadapt_poc.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/libplatadapt_watch.a b/ap/lib/libzcore/std/lib/lib/libplatadapt_watch.a
index 51de530..02dc896 100644
--- a/ap/lib/libzcore/std/lib/lib/libplatadapt_watch.a
+++ b/ap/lib/libzcore/std/lib/lib/libplatadapt_watch.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/libzcore_fwp.a b/ap/lib/libzcore/std/lib/lib/libzcore_fwp.a
index 31c9521..e45413e 100644
--- a/ap/lib/libzcore/std/lib/lib/libzcore_fwp.a
+++ b/ap/lib/libzcore/std/lib/lib/libzcore_fwp.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/libzcore_phone.a b/ap/lib/libzcore/std/lib/lib/libzcore_phone.a
index 8b4a923..9b67c87 100644
--- a/ap/lib/libzcore/std/lib/lib/libzcore_phone.a
+++ b/ap/lib/libzcore/std/lib/lib/libzcore_phone.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/libzcore_poc.a b/ap/lib/libzcore/std/lib/lib/libzcore_poc.a
index 40d7777..9a08731 100644
--- a/ap/lib/libzcore/std/lib/lib/libzcore_poc.a
+++ b/ap/lib/libzcore/std/lib/lib/libzcore_poc.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/libzcore_watch.a b/ap/lib/libzcore/std/lib/lib/libzcore_watch.a
index ed9eb6d..5a6c24b 100644
--- a/ap/lib/libzcore/std/lib/lib/libzcore_watch.a
+++ b/ap/lib/libzcore/std/lib/lib/libzcore_watch.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/app_fw.a b/ap/lib/libzcore/std/lib/lib/phone/app_fw.a
index 48161cc..a2151d1 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/app_fw.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/app_fw.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/bl_psa.a b/ap/lib/libzcore/std/lib/lib/phone/bl_psa.a
index a179613..9cb4e6f 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/bl_psa.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/bl_psa.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/bl_svr.a b/ap/lib/libzcore/std/lib/lib/phone/bl_svr.a
index ab95280..6a0d8d3 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/bl_svr.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/bl_svr.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/font/libbitmap_font.a b/ap/lib/libzcore/std/lib/lib/phone/font/libbitmap_font.a
index 31538e0..77e48c3 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/font/libbitmap_font.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/font/libbitmap_font.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/font/libttf_font.a b/ap/lib/libzcore/std/lib/lib/phone/font/libttf_font.a
index 92de131..0217fff 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/font/libttf_font.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/font/libttf_font.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/framework.a b/ap/lib/libzcore/std/lib/lib/phone/framework.a
index 4e06272..f77cda0 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/framework.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/framework.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/fwkernel.a b/ap/lib/libzcore/std/lib/lib/phone/fwkernel.a
index e8d75d7..9b92754 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/fwkernel.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/fwkernel.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/gui.a b/ap/lib/libzcore/std/lib/lib/phone/gui.a
index 8e46064..fb8abb2 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/gui.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/gui.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/msm.a b/ap/lib/libzcore/std/lib/lib/phone/msm.a
index 3aed03b..2a8313a 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/msm.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/msm.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/phone/ui_fw.a b/ap/lib/libzcore/std/lib/lib/phone/ui_fw.a
index ab9aa17..97876aa 100644
--- a/ap/lib/libzcore/std/lib/lib/phone/ui_fw.a
+++ b/ap/lib/libzcore/std/lib/lib/phone/ui_fw.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/app_fw.a b/ap/lib/libzcore/std/lib/lib/poc/app_fw.a
index cac553f..6889113 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/app_fw.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/app_fw.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/bl_psa.a b/ap/lib/libzcore/std/lib/lib/poc/bl_psa.a
index 724918e..ad58019 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/bl_psa.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/bl_psa.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/bl_svr.a b/ap/lib/libzcore/std/lib/lib/poc/bl_svr.a
index 98cb1fd..49a5584 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/bl_svr.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/bl_svr.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/font/libbitmap_font.a b/ap/lib/libzcore/std/lib/lib/poc/font/libbitmap_font.a
index 59978ae..60b9258 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/font/libbitmap_font.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/font/libbitmap_font.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/font/libttf_font.a b/ap/lib/libzcore/std/lib/lib/poc/font/libttf_font.a
index 9acd588..7695dc9 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/font/libttf_font.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/font/libttf_font.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/framework.a b/ap/lib/libzcore/std/lib/lib/poc/framework.a
index e39f3dd..761e7b5 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/framework.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/framework.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/fwkernel.a b/ap/lib/libzcore/std/lib/lib/poc/fwkernel.a
index 4e70a22..ce18345 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/fwkernel.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/fwkernel.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/gui.a b/ap/lib/libzcore/std/lib/lib/poc/gui.a
index 27eb0f4..214f2b1 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/gui.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/gui.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/msm.a b/ap/lib/libzcore/std/lib/lib/poc/msm.a
index 5c2f48f..d49bb5a 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/msm.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/msm.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/poc/ui_fw.a b/ap/lib/libzcore/std/lib/lib/poc/ui_fw.a
index f09416d..e3c709b 100644
--- a/ap/lib/libzcore/std/lib/lib/poc/ui_fw.a
+++ b/ap/lib/libzcore/std/lib/lib/poc/ui_fw.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/app_fw.a b/ap/lib/libzcore/std/lib/lib/watch/app_fw.a
index 08d3447..c3f3eb5 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/app_fw.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/app_fw.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/bl_psa.a b/ap/lib/libzcore/std/lib/lib/watch/bl_psa.a
index 285b005..52b9930 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/bl_psa.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/bl_psa.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/bl_svr.a b/ap/lib/libzcore/std/lib/lib/watch/bl_svr.a
index bd11b74..f66e03f 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/bl_svr.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/bl_svr.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/font/libbitmap_font.a b/ap/lib/libzcore/std/lib/lib/watch/font/libbitmap_font.a
index d68cbcd..eac90f3 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/font/libbitmap_font.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/font/libbitmap_font.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/font/libttf_font.a b/ap/lib/libzcore/std/lib/lib/watch/font/libttf_font.a
index 39f4fd9..4cde1f3 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/font/libttf_font.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/font/libttf_font.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/framework.a b/ap/lib/libzcore/std/lib/lib/watch/framework.a
index 9ccbccf..7b0c661 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/framework.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/framework.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/fwkernel.a b/ap/lib/libzcore/std/lib/lib/watch/fwkernel.a
index d12402e..16ff5d4 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/fwkernel.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/fwkernel.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/gui.a b/ap/lib/libzcore/std/lib/lib/watch/gui.a
index 5901d56..f455d79 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/gui.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/gui.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/msm.a b/ap/lib/libzcore/std/lib/lib/watch/msm.a
index e99e773..6a77cbf 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/msm.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/msm.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/lib/watch/ui_fw.a b/ap/lib/libzcore/std/lib/lib/watch/ui_fw.a
index e6c3e68..bc5326e 100644
--- a/ap/lib/libzcore/std/lib/lib/watch/ui_fw.a
+++ b/ap/lib/libzcore/std/lib/lib/watch/ui_fw.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/libplatadapt_com.a b/ap/lib/libzcore/std/lib/libplatadapt_com.a
index 9e4e0fe..36e6b36 100644
--- a/ap/lib/libzcore/std/lib/libplatadapt_com.a
+++ b/ap/lib/libzcore/std/lib/libplatadapt_com.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/libplatadapt_fwp.a b/ap/lib/libzcore/std/lib/libplatadapt_fwp.a
index 17016a2..c08b975 100644
--- a/ap/lib/libzcore/std/lib/libplatadapt_fwp.a
+++ b/ap/lib/libzcore/std/lib/libplatadapt_fwp.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/libplatadapt_phone.a b/ap/lib/libzcore/std/lib/libplatadapt_phone.a
index d714eee..3ec7506 100644
--- a/ap/lib/libzcore/std/lib/libplatadapt_phone.a
+++ b/ap/lib/libzcore/std/lib/libplatadapt_phone.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/libplatadapt_poc.a b/ap/lib/libzcore/std/lib/libplatadapt_poc.a
index e8d7f2e..e06ae73 100644
--- a/ap/lib/libzcore/std/lib/libplatadapt_poc.a
+++ b/ap/lib/libzcore/std/lib/libplatadapt_poc.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/libplatadapt_watch.a b/ap/lib/libzcore/std/lib/libplatadapt_watch.a
index e133a8c..208e864 100644
--- a/ap/lib/libzcore/std/lib/libplatadapt_watch.a
+++ b/ap/lib/libzcore/std/lib/libplatadapt_watch.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/libzcore_fwp.a b/ap/lib/libzcore/std/lib/libzcore_fwp.a
index 057fe6f..72a3a6a 100644
--- a/ap/lib/libzcore/std/lib/libzcore_fwp.a
+++ b/ap/lib/libzcore/std/lib/libzcore_fwp.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/libzcore_phone.a b/ap/lib/libzcore/std/lib/libzcore_phone.a
index 86ce0e3..86fff8d 100644
--- a/ap/lib/libzcore/std/lib/libzcore_phone.a
+++ b/ap/lib/libzcore/std/lib/libzcore_phone.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/libzcore_poc.a b/ap/lib/libzcore/std/lib/libzcore_poc.a
index d9b33c9..c64e1d1 100644
--- a/ap/lib/libzcore/std/lib/libzcore_poc.a
+++ b/ap/lib/libzcore/std/lib/libzcore_poc.a
Binary files differ
diff --git a/ap/lib/libzcore/std/lib/libzcore_watch.a b/ap/lib/libzcore/std/lib/libzcore_watch.a
index 7d0b057..965e787 100644
--- a/ap/lib/libzcore/std/lib/libzcore_watch.a
+++ b/ap/lib/libzcore/std/lib/libzcore_watch.a
Binary files differ
diff --git a/ap/lib/libzte_vsim/libzte_vsim.a b/ap/lib/libzte_vsim/libzte_vsim.a
index 50a8a92..e2ebc45 100644
--- a/ap/lib/libzte_vsim/libzte_vsim.a
+++ b/ap/lib/libzte_vsim/libzte_vsim.a
Binary files differ
diff --git a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/Makefile b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/Makefile
index 745b37c..e9d2669 100644
--- a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/Makefile
+++ b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/Makefile
@@ -26,6 +26,11 @@
 
 ifeq ($(USE_BTRUNK_SUPPORT),yes)
 obj-y	+= hal_xp2xp.o
+else
+ifeq ($(USE_VEHICLE_DC),yes)
+obj-y	+= hal_xp2xp.o
+endif
+
 endif
 
 ifeq ($(CONFIG_ARCH_ZX297520V3),y)
diff --git a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/hal_xp2xp.c b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/hal_xp2xp.c
index 09e219a..d526f1e 100644
--- a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/hal_xp2xp.c
+++ b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/hal_xp2xp.c
@@ -27,6 +27,7 @@
 #include <linux/types.h>

 #include <linux/suspend.h>

 #include <linux/tick.h>

+#include <linux/slab.h>

 

 #include <mach/irqs.h>

 #include <mach/gpio.h>

@@ -37,6 +38,8 @@
 #include <linux/wakelock.h>

 #include <linux/soc/zte/pm/drv_idle.h>

 

+#include <linux/sysfs.h>

+#include <linux/kobject.h>

 /****************************************************************************

 *											   Local Macros

 ****************************************************************************/

@@ -76,8 +79,7 @@
 #define xp2xp_debug(fmt, args...)

 #endif

 

-

-

+#define XP2XP_STATE    "xp2xp_state"

 /****************************************************************************

 *											   Local Types

 ****************************************************************************/

@@ -88,6 +90,17 @@
     unsigned int 			func_int;

 };

 

+typedef enum{

+	SLEEP_NOTIFY,

+	WAKEUP_NOTIFY

+} notify_type;

+

+typedef enum{

+	SET_EDGE_RISING,

+	SET_EDGE_FALLING

+} interrupt_type;

+

+

 #define GPIO_CONFIG(gpio_num, func_gpio , func_int)		{gpio_num, func_gpio, func_int}

 

 static struct zx29_pin_table pin_table[] = 

@@ -230,17 +243,6 @@
     GPIO_CONFIG(ZX29_GPIO_135, GPIO135_GPIO135 , 0),

 };

 

-/****************************************************************************

-*											   Local Constants

-****************************************************************************/

-

-/****************************************************************************

-*											   Local Function Prototypes

-****************************************************************************/

-

-/****************************************************************************

-*											  Global Constants

-****************************************************************************/

 

 /****************************************************************************

 *											  Global Variables

@@ -251,17 +253,161 @@
 static int irq_num = 0;

 static int nWakeupCount=0;

 

+static int currState = 1;

+

 /****************************************************************************

-*											  Function Definitions

+*											   Local Constants

 ****************************************************************************/

-#if 1

+

+struct kset *kset_xp2xp;

+//struct kset kset_c;

+struct kobject *xp2xpkobj = NULL;

+

+

+static struct attribute xp2xp_state_attr =

+{

+        .name = "xp2xp_state",

+        //.mode = S_IRUGO|S_IWUSR,

+        .mode = S_IRUGO,

+};

+

+

+static struct attribute *xp2xp_status_attrs[] =

+{

+	&xp2xp_state_attr,

+       NULL,

+};

+

+ssize_t xp2xp_obj_show(struct kobject *kobject,struct attribute *attr,char *buf)

+{

+

+	  if(!strcmp(attr->name, XP2XP_STATE)){

+	  		sprintf(buf, "nWakeupCount:%d, currState:%s\n",nWakeupCount, (currState == 1 ? "work" : "sleep"));

+	  }	

+      return strlen(buf);

+}

+

+

+ssize_t xp2xp_obj_store(struct kobject *kobject,struct attribute *attr, const char *buf,size_t size)

+{

+	unsigned int value = 0;

+

+	return size;

+}

+static struct sysfs_ops xp2xp_obj_sysops =

+{

+        .show = xp2xp_obj_show,

+        .store = xp2xp_obj_store,        

+};

+

+

+void xp2xp_obj_release(struct kobject *kobject)

+{

+	printk("[kobj_test: release!]\n");

+}

+static struct kobj_type xp2xp_ktype =

+

+{       .release = xp2xp_obj_release,

+        .sysfs_ops = &xp2xp_obj_sysops,

+        .default_attrs = xp2xp_status_attrs,

+};

+

+static int xp2xp_kset_filter(struct kset *kset,struct kobject *kobj)

+{

+	printk("Filter: kobj %s.\n",kobj->name);

+	return 1;

+}

+

+static const char *xp2xp_kset_name(struct kset *kset,struct kobject *kobj)

+{    

+	static char buf[20];

+

+	printk("Name kobj %s.\n",kobj->name);

+	sprintf(buf,"%s","xp2xp");

+

+	return buf;

+}

+

+static int xp2xp_kset_uevent(struct kset *kset,struct kobject *kobj, struct kobj_uevent_env *env)

+{

+   int i = 0;

+    printk("uevent: kobj %s.\n",kobj->name);

+

+   while(i < env->envp_idx)

+    {

+        printk("%s.\n",env->envp[i]);

+       i ++;

+    }

+

+    return 0;

+}

+

+

+static struct kset_uevent_ops xp2xp_uevent_ops =

+{

+    .filter = xp2xp_kset_filter,

+    .name = xp2xp_kset_name,

+    .uevent = xp2xp_kset_uevent,

+};

+

+

+/****************************************************************************

+*											   Local Function Prototypes

+****************************************************************************/

+

+static ATOMIC_NOTIFIER_HEAD(wakeup_notifier);

+int xp2xp_Wakeup_notifier_register(struct notifier_block *nb);

+int xp2xp_Wakeup_notifier_unregister(struct notifier_block *nb);

+

 static irqreturn_t xp2xp_Ap2CpWakeCpHisr(int irq, void *id);

 bool xp2xp_Ap2CpIsApWakeup(void);

 int xp2xp_Cp2ApWakeApSignal(void);

 int xp2xp_Cp2ApCpSleepStats(bool isCpWake);

 int zDrvXp2xp_Cp2ApWakeupAp(void);

 int zDrvXp2xp_Initiate(void);

-#endif

+

+/****************************************************************************

+*											  Global Constants

+****************************************************************************/

+

+/****************************************************************************

+*											  Function Definitions

+****************************************************************************/

+

+

+

+int xp2xp_Wakeup_notifier_register(struct notifier_block *nb)

+{

+	return atomic_notifier_chain_register(&wakeup_notifier, nb);

+}

+EXPORT_SYMBOL_GPL(xp2xp_Wakeup_notifier_register);

+

+int xp2xp_Wakeup_notifier_unregister(struct notifier_block *nb)

+{

+	return atomic_notifier_chain_unregister(&wakeup_notifier, nb);

+}

+EXPORT_SYMBOL_GPL(xp2xp_Wakeup_notifier_unregister);

+

+

+

+/*******************************************************************************

+* Function:	xp2xp_wakeup_notifier_call_chain.

+* Description:	xp2xp_wakeup_notifier_call_chain.

+* Parameters:

+*   Input:wake_or_sleep:means wakeup or sleep notify to other device

+*

+*   Output:call_result:means devices been called return result

+*

+* Returns:  

+*

+* Others:the callback shall not block or sleep

+********************************************************************************/

+int xp2xp_wakeup_notifier_call_chain(unsigned long wake_or_sleep, void *call_result)

+{

+//	printk("xp2xp_wakeup_notifier_call_chain,val=%ld\n", val);

+	return atomic_notifier_call_chain(&wakeup_notifier, wake_or_sleep, call_result);

+}

+EXPORT_SYMBOL_GPL(xp2xp_wakeup_notifier_call_chain);

 

 

 /*******************************************************************************

@@ -320,6 +466,36 @@
     return -1;

 }  

 

+void xp2xp_change_irq_setting(interrupt_type set_type)

+{

+    irq_num = gpio_to_irq(AP2CP_WAKE_GPIO); 

+ 

+	if(set_type == SET_EDGE_RISING){//waiting wakeup int

+	    zx29_gpio_set_inttype(AP2CP_WAKE_GPIO, IRQ_TYPE_EDGE_RISING);

+		

+	} else{

+	//enter waiting sleep int  

+	    zx29_gpio_set_inttype(AP2CP_WAKE_GPIO, IRQ_TYPE_EDGE_FALLING);

+	}

+    pcu_clr_irq_pending(irq_num); 

+    

+}

+

+

+

+void xp2xp_notify_up(notify_type isWakeup)

+{

+	unsigned char buf[100];

+	int rtv = -1;

+	enum kobject_action action =KOBJ_MAX;

+	char*envp_ext[] = {NULL,NULL};

+	strcpy(buf,"USBEVENT=xp2xp_notify");

+	action = ((isWakeup == WAKEUP_NOTIFY)? KOBJ_ONLINE : KOBJ_OFFLINE);

+	envp_ext[0] = buf;

+	rtv = kobject_uevent_env(xp2xpkobj, action,envp_ext);	

+	printk("xp2xp_notify_up isWakeup:%d, result:%d\n", isWakeup, rtv);

+}

+	

 /*******************************************************************************

 * Function:	xp2xp_Ap2CpWakeCpHisr

 * Description:	ap2cp wake up int isr

@@ -334,10 +510,49 @@
 ********************************************************************************/

 static irqreturn_t xp2xp_Ap2CpWakeCpHisr(int irq, void *id)

 {

-

+	int call_state = 0;

+	int v_gpio = 0;

     pcu_clr_irq_pending(irq_num); 

 	nWakeupCount++;

-    

+	//change pinmux to gpio

+	zx29_gpio_config(AP2CP_WAKE_GPIO,func_gpio_value_get(AP2CP_WAKE_GPIO));

+	//gpio_direction_input(USB_GPIO);

+	//msleep(5);

+	v_gpio = gpio_get_value(AP2CP_WAKE_GPIO);

+	printk("%s,value:%d\n", __func__,v_gpio);

+	zx29_gpio_config(AP2CP_WAKE_GPIO,func_int_value_get(AP2CP_WAKE_GPIO));

+

+	

+#if 1

+ 	if(v_gpio){//now is wakeup

+		zx_cpuidle_set_busy(IDLE_FLAG_XP2XP);

+		wake_lock(&xp2xp_wake_lock);

+		//tell application 

+		xp2xp_notify_up(WAKEUP_NOTIFY);

+#ifdef CONFIG_KERNEL_CONTROL_WAKEUP		

+	 	xp2xp_wakeup_notifier_call_chain(WAKEUP_NOTIFY, &call_state);

+	 	if(call_state == 0){//check device wakeup result

+			xp2xp_Cp2ApCpSleepStats(TRUE);

+	 	}

+#endif		

+		currState = 1;//means working

+		xp2xp_change_irq_setting(SET_EDGE_FALLING);

+ 	} else{//this is sleep

+		xp2xp_change_irq_setting(SET_EDGE_RISING);

+		xp2xp_Cp2ApCpSleepStats(FALSE);

+		xp2xp_notify_up(SLEEP_NOTIFY);

+#ifdef CONFIG_KERNEL_CONTROL_WAKEUP		

+	 	xp2xp_wakeup_notifier_call_chain(SLEEP_NOTIFY, &call_state);

+	 	if(call_state){//check device sleep result

+	 	//to do

+	 	}

+#endif		

+		currState = 0;//means sleep

+ 	

+		wake_unlock(&xp2xp_wake_lock);

+		zx_cpuidle_set_free(IDLE_FLAG_XP2XP);

+ 	}

+ #else

 	xp2xp_Cp2ApCpSleepStats(TRUE);

 	zx_cpuidle_set_busy(IDLE_FLAG_XP2XP);

 	wake_lock(&xp2xp_wake_lock);

@@ -345,7 +560,7 @@
 	xp2xp_Cp2ApCpSleepStats(FALSE);

 	wake_unlock(&xp2xp_wake_lock);

 	zx_cpuidle_set_free(IDLE_FLAG_XP2XP);

-	

+#endif	

 	return IRQ_HANDLED;

 }

 /*******************************************************************************

@@ -372,6 +587,7 @@
 	

     return FALSE;

 }

+EXPORT_SYMBOL_GPL(xp2xp_Ap2CpIsApWakeup);

 

 /*******************************************************************************

 * Function:

@@ -507,6 +723,66 @@
 	return -1;

 }

 

+

+/*******************************************************************************

+* Function:

+* Description:

+* Parameters:

+*   Input:

+*

+*   Output:

+*

+* Returns:

+*

+* Others: 4 line sleep enable check

+********************************************************************************/

+int xp2xp_enable_4line(void)

+{

+	#ifdef CONFIG_KERNEL_CONTROL_WAKEUP

+		return 1;

+	#endif

+	return 0;

+}

+EXPORT_SYMBOL_GPL(xp2xp_enable_4line);

+

+int kset_xp2xp_init(void)

+{

+  int ret = 0;

+

+   printk("kset test init!\n");

+   

+   /* ´´½¨²¢×¢²á kset_p */

+   kset_xp2xp = kset_create_and_add("xp2xp", &xp2xp_uevent_ops, NULL);    

+   

+

+    /* ¶ÔÓÚ½Ïа汾µÄÄںˣ¬ÔÚ×¢²á kset ֮ǰ£¬ÐèÒª 

+        * Ìî³ä kset.kobj µÄ ktype ³ÉÔ±£¬·ñÔò×¢²á²»»á³É¹¦ */

+  // kset_c.kobj.ktype = &ktype;

+   //ret = kset_register(&kset_c);

+

+  // if(ret)

+   //     kset_unregister(kset_p);

+   xp2xpkobj = kzalloc(sizeof(*xp2xpkobj),GFP_KERNEL);

+   if(!xp2xpkobj){

+   		printk(KERN_WARNING "mallock xp2xpkobj failed \n");

+		return 0;

+   }

+   kobject_init(xp2xpkobj, &xp2xp_ktype);

+   kobject_add(xp2xpkobj,&kset_xp2xp->kobj,"%s","xp2xp_notify");

+   xp2xpkobj->kset = kset_xp2xp;

+

+    

+   return ret;

+}

+

+

+void kset_xp2xp_exit(void)

+{

+   printk("kset_xp2xp_exit exit!\n");

+   

+   kset_unregister(kset_xp2xp);

+}

+

 /*******************************************************************************

 * Function: zDrvAp2cp_Initiate

 * Description:

@@ -523,20 +799,27 @@
 {

 	int ret=0;

 	int errCode = -1;

-	

+	printk("------------zDrvXp2xp_Initiate, enter\n");

 	ret=gpio_request(AP2CP_WAKE_GPIO,"ap2cp_wake");

 	if(ret)

 		BUG();

-	ret=gpio_request(AP2CP_SLEEP_GPIO,"ap2cp_sleep");

-	if(ret)

-		BUG();

+#ifdef CONFIG_KERNEL_CONTROL_WAKEUP

+//app need requst these gpio,so using macro 

 	ret=gpio_request(CP2AP_WAKE_GPIO,"cp2ap_wake");

 	if(ret)

 		BUG();

 	ret=gpio_request(CP2AP_SLEEP_GPIO,"cp2ap_sleep");

 	if(ret)

 		BUG();

-	

+	ret=gpio_request(AP2CP_SLEEP_GPIO,"ap2cp_sleep");

+	if(ret)

+		BUG();

+#endif	

+

+	/*ap2cp wake interrupt, input*/

+	zx29_gpio_config(AP2CP_WAKE_GPIO, func_int_value_get(AP2CP_WAKE_GPIO));

+

+#ifdef CONFIG_KERNEL_CONTROL_WAKEUP

 	/*cp2ap wake gpio, output*/

 	zx29_gpio_config(CP2AP_WAKE_GPIO, func_gpio_value_get(CP2AP_WAKE_GPIO));

 	gpio_direction_output(CP2AP_WAKE_GPIO, CP_WAKE_AP_INT_CLEAR);//keep level

@@ -545,16 +828,14 @@
 	zx29_gpio_config(CP2AP_SLEEP_GPIO, func_gpio_value_get(CP2AP_SLEEP_GPIO));

 	gpio_direction_output(CP2AP_SLEEP_GPIO, CP_SLEEP_STATUS);

 

-	/*ap2cp wake interrupt, input*/

-	zx29_gpio_config(AP2CP_WAKE_GPIO, func_int_value_get(AP2CP_WAKE_GPIO));

-

 	/*ap2cp sleep status, input*/

 	zx29_gpio_config(AP2CP_SLEEP_GPIO, func_gpio_value_get(AP2CP_SLEEP_GPIO));

 	gpio_direction_input(AP2CP_SLEEP_GPIO);

-

+#endif

 	wake_lock_init(&xp2xp_wake_lock, WAKE_LOCK_SUSPEND, "xp2xp");

     

     irq_num = gpio_to_irq(AP2CP_WAKE_GPIO); 

+	printk("------------zDrvXp2xp_Initiate, irq_num:%d\n", irq_num);

     

     zx29_gpio_set_inttype(AP2CP_WAKE_GPIO, IRQ_TYPE_EDGE_RISING);

     pcu_clr_irq_pending(irq_num); 

@@ -566,15 +847,27 @@
 	}

 	

 	irq_set_irq_wake(irq_num, 1);

-	

+	kset_xp2xp_init();

 	xp2xp_init_flag = 1;

 	

 	xp2xp_debug("XP2XP: init ok!\n");

 

 	return 0;

 }

+int zDrvXp2xp_Release(void)

+{

+	kset_xp2xp_exit();

+	gpio_free(AP2CP_WAKE_GPIO);

 

+#ifdef CONFIG_KERNEL_CONTROL_WAKEUP	

+	gpio_free(AP2CP_SLEEP_GPIO);

+	gpio_free(CP2AP_WAKE_GPIO);

+	gpio_free(CP2AP_SLEEP_GPIO);

+#endif	

+	return 0;

+}

 late_initcall(zDrvXp2xp_Initiate);

 

+module_exit(zDrvXp2xp_Release);

 #endif

 

diff --git a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-cap-devices.c b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-cap-devices.c
index d432979..67ee0df 100755
--- a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-cap-devices.c
+++ b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-cap-devices.c
@@ -1185,8 +1185,17 @@
 
 #endif
 #ifdef CONFIG_TSC_ZX29
-u32 ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
-{30,31,32,33,34,35,36,37,38,39,
+int ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
+{
+ -45,-44,-43,-42,-41,		
+ -40,-39,-38,-37,-36, -35,-34,-33,-32,-31,		
+ -30,-29,-28,-27,-26, -25,-24,-23,-22,-21,		
+ -20,-19,-18,-17,-16, -15,-14,-13,-12,-11,		
+ -10,-9,-8,-7,-6, -5,-4,-3,-2,-1,	
+ 0,1,2,3,4,5,6,7,8,9,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,25,26,27,28,29,	
+ 30,31,32,33,34,35,36,37,38,39,
  40,41,42,43,44,45,46,47,48,49,
  50,51,52,53,54,55,56,57,58,59,
  60,61,62,63,64,65,66,67,68,69,
@@ -1197,7 +1206,15 @@
  110,111,112,113,114,115,116,117,118,119,
  120,121,122,123,124,125},
 
-{802,783,764,746,727,709,692,674,657,640,
+{1769,1767,1765,1762,1759,
+  1756,1753,1750,1746,1742,1738,1734,1729,1725,1720,
+  1714,1709,1703,1697,1690,1683,1676,1669,1661,1653,
+  1644,1635,1626,1616,1606,1595,1584,1573,1561,1549,
+  1536,1523,1510,1496,1482,1467,1452,1436,1420,1404,
+  1387,1370,1353,1335,1317,1299,1280,1262,1242,1223,
+  1203,1184,1164,1144,1124,1103,1083,1063,1042,1022,
+  1001,981,960,940,920,900,880,860,841,821,
+ 802,783,764,746,727,709,692,674,657,640,
  624,607,591,576,561,545,531,516,502,489,
  475,462,449,437,425,413,402,390,379,369,
  358,348,338,329,320,311,302,293,285,277,
diff --git a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-cpe-devices.c b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-cpe-devices.c
index 04554ed..06536b9 100644
--- a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-cpe-devices.c
+++ b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-cpe-devices.c
@@ -1468,8 +1468,17 @@
 #endif
 
 #ifdef CONFIG_TSC_ZX29
-u32 ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
-{30,31,32,33,34,35,36,37,38,39,
+int ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
+{
+ -45,-44,-43,-42,-41,		
+ -40,-39,-38,-37,-36, -35,-34,-33,-32,-31,		
+ -30,-29,-28,-27,-26, -25,-24,-23,-22,-21,		
+ -20,-19,-18,-17,-16, -15,-14,-13,-12,-11,		
+ -10,-9,-8,-7,-6, -5,-4,-3,-2,-1,	
+ 0,1,2,3,4,5,6,7,8,9,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,25,26,27,28,29,	
+ 30,31,32,33,34,35,36,37,38,39,
  40,41,42,43,44,45,46,47,48,49,
  50,51,52,53,54,55,56,57,58,59,
  60,61,62,63,64,65,66,67,68,69,
@@ -1480,7 +1489,15 @@
  110,111,112,113,114,115,116,117,118,119,
  120,121,122,123,124,125},
 
-{802,783,764,746,727,709,692,674,657,640,
+{1769,1767,1765,1762,1759,
+  1756,1753,1750,1746,1742,1738,1734,1729,1725,1720,
+  1714,1709,1703,1697,1690,1683,1676,1669,1661,1653,
+  1644,1635,1626,1616,1606,1595,1584,1573,1561,1549,
+  1536,1523,1510,1496,1482,1467,1452,1436,1420,1404,
+  1387,1370,1353,1335,1317,1299,1280,1262,1242,1223,
+  1203,1184,1164,1144,1124,1103,1083,1063,1042,1022,
+  1001,981,960,940,920,900,880,860,841,821,
+ 802,783,764,746,727,709,692,674,657,640,
  624,607,591,576,561,545,531,516,502,489,
  475,462,449,437,425,413,402,390,379,369,
  358,348,338,329,320,311,302,293,285,277,
diff --git a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-evb-devices.c b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-evb-devices.c
index b41f79c..d97b1e8 100644
--- a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-evb-devices.c
+++ b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-evb-devices.c
@@ -1176,8 +1176,17 @@
 #endif
 
 #ifdef CONFIG_TSC_ZX29
-u32 ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
-{30,31,32,33,34,35,36,37,38,39,
+int ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
+{
+ -45,-44,-43,-42,-41,		
+ -40,-39,-38,-37,-36, -35,-34,-33,-32,-31,		
+ -30,-29,-28,-27,-26, -25,-24,-23,-22,-21,		
+ -20,-19,-18,-17,-16, -15,-14,-13,-12,-11,		
+ -10,-9,-8,-7,-6, -5,-4,-3,-2,-1,	
+ 0,1,2,3,4,5,6,7,8,9,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,25,26,27,28,29,	
+ 30,31,32,33,34,35,36,37,38,39,
  40,41,42,43,44,45,46,47,48,49,
  50,51,52,53,54,55,56,57,58,59,
  60,61,62,63,64,65,66,67,68,69,
@@ -1188,7 +1197,15 @@
  110,111,112,113,114,115,116,117,118,119,
  120,121,122,123,124,125},
 
-{802,783,764,746,727,709,692,674,657,640,
+{1769,1767,1765,1762,1759,
+  1756,1753,1750,1746,1742,1738,1734,1729,1725,1720,
+  1714,1709,1703,1697,1690,1683,1676,1669,1661,1653,
+  1644,1635,1626,1616,1606,1595,1584,1573,1561,1549,
+  1536,1523,1510,1496,1482,1467,1452,1436,1420,1404,
+  1387,1370,1353,1335,1317,1299,1280,1262,1242,1223,
+  1203,1184,1164,1144,1124,1103,1083,1063,1042,1022,
+  1001,981,960,940,920,900,880,860,841,821,
+ 802,783,764,746,727,709,692,674,657,640,
  624,607,591,576,561,545,531,516,502,489,
  475,462,449,437,425,413,402,390,379,369,
  358,348,338,329,320,311,302,293,285,277,
diff --git a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-fpga-devices.c b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-fpga-devices.c
index e1d748a..c9c2ffd 100644
--- a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-fpga-devices.c
+++ b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-fpga-devices.c
@@ -1174,8 +1174,17 @@
 #endif
 
 #ifdef CONFIG_TSC_ZX29
-u32 ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
-{30,31,32,33,34,35,36,37,38,39,
+int ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
+{
+ -45,-44,-43,-42,-41,		
+ -40,-39,-38,-37,-36, -35,-34,-33,-32,-31,		
+ -30,-29,-28,-27,-26, -25,-24,-23,-22,-21,		
+ -20,-19,-18,-17,-16, -15,-14,-13,-12,-11,		
+ -10,-9,-8,-7,-6, -5,-4,-3,-2,-1,	
+ 0,1,2,3,4,5,6,7,8,9,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,25,26,27,28,29,	
+ 30,31,32,33,34,35,36,37,38,39,
  40,41,42,43,44,45,46,47,48,49,
  50,51,52,53,54,55,56,57,58,59,
  60,61,62,63,64,65,66,67,68,69,
@@ -1186,7 +1195,15 @@
  110,111,112,113,114,115,116,117,118,119,
  120,121,122,123,124,125},
 
-{802,783,764,746,727,709,692,674,657,640,
+{1769,1767,1765,1762,1759,
+  1756,1753,1750,1746,1742,1738,1734,1729,1725,1720,
+  1714,1709,1703,1697,1690,1683,1676,1669,1661,1653,
+  1644,1635,1626,1616,1606,1595,1584,1573,1561,1549,
+  1536,1523,1510,1496,1482,1467,1452,1436,1420,1404,
+  1387,1370,1353,1335,1317,1299,1280,1262,1242,1223,
+  1203,1184,1164,1144,1124,1103,1083,1063,1042,1022,
+  1001,981,960,940,920,900,880,860,841,821,
+ 802,783,764,746,727,709,692,674,657,640,
  624,607,591,576,561,545,531,516,502,489,
  475,462,449,437,425,413,402,390,379,369,
  358,348,338,329,320,311,302,293,285,277,
diff --git a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-fwp-devices.c b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-fwp-devices.c
index 92fa73a..fa0e5c3 100755
--- a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-fwp-devices.c
+++ b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-fwp-devices.c
@@ -1249,8 +1249,17 @@
 #endif
 
 #ifdef CONFIG_TSC_ZX29
-u32 ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
-{30,31,32,33,34,35,36,37,38,39,
+int ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
+{
+ -45,-44,-43,-42,-41,		
+ -40,-39,-38,-37,-36, -35,-34,-33,-32,-31,		
+ -30,-29,-28,-27,-26, -25,-24,-23,-22,-21,		
+ -20,-19,-18,-17,-16, -15,-14,-13,-12,-11,		
+ -10,-9,-8,-7,-6, -5,-4,-3,-2,-1,	
+ 0,1,2,3,4,5,6,7,8,9,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,25,26,27,28,29,		
+ 30,31,32,33,34,35,36,37,38,39,
  40,41,42,43,44,45,46,47,48,49,
  50,51,52,53,54,55,56,57,58,59,
  60,61,62,63,64,65,66,67,68,69,
@@ -1262,6 +1271,14 @@
  120,121,122,123,124,125},
 
 {
+1732,1729,1725,1722,1719,
+1715,1711,1707,1703,1699,1694,1689,1683,1678,1672,
+1665,1658,1651,1644,1636,1628,1619,1611,1602,1593,
+1583,1573,1563,1553,1542,1531,1519,1507,1495,1483,
+1470,1457,1444,1431,1417,1403,1388,1374,1359,1343,
+1328,1312,1297,1280,1264,1248,1231,1214,1197,1180,
+1163,1145,1128,1111,1093,1075,1058,1040,1022,1005,
+987,970,952,935,917,900,883,866,849,832,
 815,799,782,766,750,734,719,703,688,673,
 659,644,630,615,602,588,574,561,548,535,
 523,511,498,487,476,465,454,443,432,422,
diff --git a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-mdl-devices.c b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-mdl-devices.c
index 8729990..7134e18 100644
--- a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-mdl-devices.c
+++ b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-mdl-devices.c
@@ -1328,8 +1328,17 @@
 
 #ifdef CONFIG_TSC_ZX29
 #ifdef RFC_DCXO_EN
-u32 ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
-{30,31,32,33,34,35,36,37,38,39,
+int  ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
+{
+ -45,-44,-43,-42,-41,		
+ -40,-39,-38,-37,-36, -35,-34,-33,-32,-31,		
+ -30,-29,-28,-27,-26, -25,-24,-23,-22,-21,		
+ -20,-19,-18,-17,-16, -15,-14,-13,-12,-11,		
+ -10,-9,-8,-7,-6, -5,-4,-3,-2,-1,	
+ 0,1,2,3,4,5,6,7,8,9,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,25,26,27,28,29,	
+ 30,31,32,33,34,35,36,37,38,39,
  40,41,42,43,44,45,46,47,48,49,
  50,51,52,53,54,55,56,57,58,59,
  60,61,62,63,64,65,66,67,68,69,
@@ -1341,6 +1350,14 @@
  120,121,122,123,124,125},
 
 {
+7598,7592,7586,7579,7572,
+7564,7556,7547,7537,7527,7516,7505,7493,7480,7466,
+7451,7436,7420,7402,7384,7365,7344,7323,7300,7277,
+7252,7225,7198,7169,7139,7107,7074,7040,7004,6967,
+6928,6888,6846,6803,6758,6712,6664,6615,6564,6512,
+6458,6403,6347,6290,6231,6171,6110,6048,5984,5920,
+5855,5790,5723,5656,5588,5520,5452,5383,5314,5245,
+5176,5107,5038,4969,4901,4833,4765,4698,4632,4566,
 4501,4438,4376,4313,4251,4188,4131,4073,4016,3958,
 3901,3849,3797,3745,3693,3641,3595,3549,3502,3456,
 3410,3370,3330,3289,3249,3209,3174,3139,3104,3069,
@@ -1353,8 +1370,17 @@
 2173,2169,2164,2160,2155,2151 }
 };
 #else
-u32 ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
-{30,31,32,33,34,35,36,37,38,39,
+int ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
+{
+ -45,-44,-43,-42,-41,		
+ -40,-39,-38,-37,-36, -35,-34,-33,-32,-31,		
+ -30,-29,-28,-27,-26, -25,-24,-23,-22,-21,		
+ -20,-19,-18,-17,-16, -15,-14,-13,-12,-11,		
+ -10,-9,-8,-7,-6, -5,-4,-3,-2,-1,	
+ 0,1,2,3,4,5,6,7,8,9,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,25,26,27,28,29,	
+ 30,31,32,33,34,35,36,37,38,39,
  40,41,42,43,44,45,46,47,48,49,
  50,51,52,53,54,55,56,57,58,59,
  60,61,62,63,64,65,66,67,68,69,
@@ -1366,6 +1392,14 @@
  120,121,122,123,124,125},
 
 {
+5812,5807,5801,5796,5790, 
+5785,5778,5770,5763,5755,5748,5739,5729,5720,5710, 
+5701,5688,5675,5663,5650,5637,5621,5604,5588,5571, 
+5555,5534,5513,5492,5471,5450,5425,5400,5374,5349, 
+5324,5295,5266,5236,5207,5178,5143,5109,5074,5040, 
+5005,4967,4930,4892,4855,4817,4776,4735,4694,4653, 
+4612,4569,4526,4484,4441,4398,4354,4310,4266,4222, 
+4178,4129,4080,4030,3981,3932,3886,3839,3793,3746, 
 3700,3656,3613,3569,3526,3482,3441,3401,3360,3320, 
 3279,3241,3204,3166,3129,3091,3056,3021,2987,2952, 
 2917,2885,2853,2822,2790,2758,2727,2696,2664,2633, 
diff --git a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-mifi-devices.c b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-mifi-devices.c
index b409344..d0a102b 100755
--- a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-mifi-devices.c
+++ b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-mifi-devices.c
@@ -1263,8 +1263,17 @@
 
 #endif
 #ifdef CONFIG_TSC_ZX29
-u32 ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
-{30,31,32,33,34,35,36,37,38,39,
+int ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
+{
+ -45,-44,-43,-42,-41,		
+ -40,-39,-38,-37,-36, -35,-34,-33,-32,-31,		
+ -30,-29,-28,-27,-26, -25,-24,-23,-22,-21,		
+ -20,-19,-18,-17,-16, -15,-14,-13,-12,-11,		
+ -10,-9,-8,-7,-6, -5,-4,-3,-2,-1,	
+ 0,1,2,3,4,5,6,7,8,9,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,25,26,27,28,29,		
+ 30,31,32,33,34,35,36,37,38,39,
  40,41,42,43,44,45,46,47,48,49,
  50,51,52,53,54,55,56,57,58,59,
  60,61,62,63,64,65,66,67,68,69,
@@ -1276,6 +1285,14 @@
  120,121,122,123,124,125},
 
 {
+ 1796,1795,1794,1793,1792,
+ 1791,1790,1789,1788,1787,1786,1785,1784,1783,1782,
+ 1781,1779,1778,1777,1775,1773,1772,1770,1768,1766,
+ 1764,1762,1760,1757,1755,1752,1749,1747,1744,1740,
+ 1737,1733,1730,1726,1722,1718,1713,1709,1704,1699,
+ 1694,1689,1683,1677,1671,1665,1658,1652,1645,1637,
+ 1630,1622,1614,1606,1597,1588,1579,1570,1560,1550,
+ 1540,1529,1518,1507,1496,1484,1472,1460,1448,1435,
  1422,1408,1395,1381,1367,1353,1338,1323,1308,1293,
  1278,1262,1247,1231,1215,1199,1183,1166,1149,1133,
  1116,1100,1083,1066,1049,1032,1015,998,981,965,
diff --git a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-phone-devices.c b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-phone-devices.c
index 2e5d5bf..ef7f2bd 100644
--- a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-phone-devices.c
+++ b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-phone-devices.c
@@ -1261,8 +1261,17 @@
 #endif
 
 #ifdef CONFIG_TSC_ZX29
-u32 ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
-{30,31,32,33,34,35,36,37,38,39,
+int ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
+{
+ -45,-44,-43,-42,-41,		
+ -40,-39,-38,-37,-36, -35,-34,-33,-32,-31,		
+ -30,-29,-28,-27,-26, -25,-24,-23,-22,-21,		
+ -20,-19,-18,-17,-16, -15,-14,-13,-12,-11,		
+ -10,-9,-8,-7,-6, -5,-4,-3,-2,-1,	
+ 0,1,2,3,4,5,6,7,8,9,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,25,26,27,28,29,		
+ 30,31,32,33,34,35,36,37,38,39,
  40,41,42,43,44,45,46,47,48,49,
  50,51,52,53,54,55,56,57,58,59,
  60,61,62,63,64,65,66,67,68,69,
@@ -1274,6 +1283,14 @@
  120,121,122,123,124,125},
 
 {
+1732,1729,1725,1722,1719,
+1715,1711,1707,1703,1699,1694,1689,1683,1678,1672,
+1665,1658,1651,1644,1636,1628,1619,1611,1602,1593,
+1583,1573,1563,1553,1542,1531,1519,1507,1495,1483,
+1470,1457,1444,1431,1417,1403,1388,1374,1359,1343,
+1328,1312,1297,1280,1264,1248,1231,1214,1197,1180,
+1163,1145,1128,1111,1093,1075,1058,1040,1022,1005,
+987,970,952,935,917,900,883,866,849,832,
 815,799,782,766,750,734,719,703,688,673,
 659,644,630,615,602,588,574,561,548,535,
 523,511,498,487,476,465,454,443,432,422,
diff --git a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-poc-devices.c b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-poc-devices.c
index d9df3a9..30bb505 100644
--- a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-poc-devices.c
+++ b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-poc-devices.c
@@ -1324,8 +1324,17 @@
 #endif
 
 #ifdef CONFIG_TSC_ZX29
-u32 ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
-{30,31,32,33,34,35,36,37,38,39,
+int ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
+{
+ -45,-44,-43,-42,-41,		
+ -40,-39,-38,-37,-36, -35,-34,-33,-32,-31,		
+ -30,-29,-28,-27,-26, -25,-24,-23,-22,-21,		
+ -20,-19,-18,-17,-16, -15,-14,-13,-12,-11,		
+ -10,-9,-8,-7,-6, -5,-4,-3,-2,-1,	
+ 0,1,2,3,4,5,6,7,8,9,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,25,26,27,28,29,	
+ 30,31,32,33,34,35,36,37,38,39,
  40,41,42,43,44,45,46,47,48,49,
  50,51,52,53,54,55,56,57,58,59,
  60,61,62,63,64,65,66,67,68,69,
@@ -1336,7 +1345,15 @@
  110,111,112,113,114,115,116,117,118,119,
  120,121,122,123,124,125},
 
-{802,783,764,746,727,709,692,674,657,640,
+{1769,1767,1765,1762,1759,
+  1756,1753,1750,1746,1742,1738,1734,1729,1725,1720,
+  1714,1709,1703,1697,1690,1683,1676,1669,1661,1653,
+  1644,1635,1626,1616,1606,1595,1584,1573,1561,1549,
+  1536,1523,1510,1496,1482,1467,1452,1436,1420,1404,
+  1387,1370,1353,1335,1317,1299,1280,1262,1242,1223,
+  1203,1184,1164,1144,1124,1103,1083,1063,1042,1022,
+  1001,981,960,940,920,900,880,860,841,821,
+ 802,783,764,746,727,709,692,674,657,640,
  624,607,591,576,561,545,531,516,502,489,
  475,462,449,437,425,413,402,390,379,369,
  358,348,338,329,320,311,302,293,285,277,
diff --git a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-ufi-devices.c b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-ufi-devices.c
index b3eb6ff..8f6bf8e 100755
--- a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-ufi-devices.c
+++ b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-ufi-devices.c
@@ -1266,8 +1266,17 @@
 
 #endif
 #ifdef CONFIG_TSC_ZX29
-u32 ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
-{30,31,32,33,34,35,36,37,38,39,
+int ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
+{
+ -45,-44,-43,-42,-41,		
+ -40,-39,-38,-37,-36, -35,-34,-33,-32,-31,		
+ -30,-29,-28,-27,-26, -25,-24,-23,-22,-21,		
+ -20,-19,-18,-17,-16, -15,-14,-13,-12,-11,		
+ -10,-9,-8,-7,-6, -5,-4,-3,-2,-1,	
+ 0,1,2,3,4,5,6,7,8,9,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,25,26,27,28,29,		
+ 30,31,32,33,34,35,36,37,38,39,
  40,41,42,43,44,45,46,47,48,49,
  50,51,52,53,54,55,56,57,58,59,
  60,61,62,63,64,65,66,67,68,69,
@@ -1279,6 +1288,14 @@
  120,121,122,123,124,125},
 
 {
+ 1796,1795,1794,1793,1792,
+ 1791,1790,1789,1788,1787,1786,1785,1784,1783,1782,
+ 1781,1779,1778,1777,1775,1773,1772,1770,1768,1766,
+ 1764,1762,1760,1757,1755,1752,1749,1747,1744,1740,
+ 1737,1733,1730,1726,1722,1718,1713,1709,1704,1699,
+ 1694,1689,1683,1677,1671,1665,1658,1652,1645,1637,
+ 1630,1622,1614,1606,1597,1588,1579,1570,1560,1550,
+ 1540,1529,1518,1507,1496,1484,1472,1460,1448,1435,
  1422,1408,1395,1381,1367,1353,1338,1323,1308,1293,
  1278,1262,1247,1231,1215,1199,1183,1166,1149,1133,
  1116,1100,1083,1066,1049,1032,1015,998,981,965,
diff --git a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-watch-devices.c b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-watch-devices.c
index f106b62..b2e0b1b 100644
--- a/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-watch-devices.c
+++ b/ap/os/linux/linux-3.4.x/arch/arm/mach-zx297520v3/zx297520v3-watch-devices.c
@@ -1144,8 +1144,17 @@
 
 #endif
 #ifdef CONFIG_TSC_ZX29
-u32 ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
-{30,31,32,33,34,35,36,37,38,39,
+int ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER]={
+{
+ -45,-44,-43,-42,-41,		
+ -40,-39,-38,-37,-36, -35,-34,-33,-32,-31,		
+ -30,-29,-28,-27,-26, -25,-24,-23,-22,-21,		
+ -20,-19,-18,-17,-16, -15,-14,-13,-12,-11,		
+ -10,-9,-8,-7,-6, -5,-4,-3,-2,-1,	
+ 0,1,2,3,4,5,6,7,8,9,
+ 10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,25,26,27,28,29,	
+ 30,31,32,33,34,35,36,37,38,39,
  40,41,42,43,44,45,46,47,48,49,
  50,51,52,53,54,55,56,57,58,59,
  60,61,62,63,64,65,66,67,68,69,
@@ -1156,7 +1165,15 @@
  110,111,112,113,114,115,116,117,118,119,
  120,121,122,123,124,125},
 
-{802,783,764,746,727,709,692,674,657,640,
+{1769,1767,1765,1762,1759,
+  1756,1753,1750,1746,1742,1738,1734,1729,1725,1720,
+  1714,1709,1703,1697,1690,1683,1676,1669,1661,1653,
+  1644,1635,1626,1616,1606,1595,1584,1573,1561,1549,
+  1536,1523,1510,1496,1482,1467,1452,1436,1420,1404,
+  1387,1370,1353,1335,1317,1299,1280,1262,1242,1223,
+  1203,1184,1164,1144,1124,1103,1083,1063,1042,1022,
+  1001,981,960,940,920,900,880,860,841,821,
+ 802,783,764,746,727,709,692,674,657,640,
  624,607,591,576,561,545,531,516,502,489,
  475,462,449,437,425,413,402,390,379,369,
  358,348,338,329,320,311,302,293,285,277,
diff --git a/ap/os/linux/linux-3.4.x/arch/arm/mm/fault.c b/ap/os/linux/linux-3.4.x/arch/arm/mm/fault.c
index 422ffdc..f4821ea 100755
--- a/ap/os/linux/linux-3.4.x/arch/arm/mm/fault.c
+++ b/ap/os/linux/linux-3.4.x/arch/arm/mm/fault.c
@@ -21,12 +21,12 @@
 #ifdef CONFIG_MMU
 #ifdef CONFIG_KPROBES
 static inline int notify_page_fault(struct pt_regs*regs,unsigned int fsr){int 
-ret=(0x5fb+1574-0xc21);if(!user_mode(regs)){preempt_disable();if(kprobe_running(
-)&&kprobe_fault_handler(regs,fsr))ret=(0x8e0+274-0x9f1);preempt_enable();}return
- ret;}
+ret=(0xfe0+3369-0x1d09);if(!user_mode(regs)){preempt_disable();if(kprobe_running
+()&&kprobe_fault_handler(regs,fsr))ret=(0xe57+1779-0x1549);preempt_enable();}
+return ret;}
 #else
 static inline int notify_page_fault(struct pt_regs*regs,unsigned int fsr){return
-(0xc2d+4365-0x1d3a);}
+(0x1899+41-0x18c2);}
 #endif
 void show_pte(struct mm_struct*mm,unsigned long addr){pgd_t*pgd;if(!mm)mm=&
 init_mm;printk(KERN_ALERT"\x70\x67\x64\x20\x3d\x20\x25\x70" "\n",mm->pgd);pgd=
@@ -34,10 +34,10 @@
 "\x5b\x25\x30\x38\x6c\x78\x5d\x20\x2a\x70\x67\x64\x3d\x25\x30\x38\x6c\x6c\x78",
 addr,(long long)pgd_val(*pgd));do{pud_t*pud;pmd_t*pmd;pte_t*pte;if(pgd_none(*pgd
 ))break;if(pgd_bad(*pgd)){printk("\x28\x62\x61\x64\x29");break;}pud=pud_offset(
-pgd,addr);if(PTRS_PER_PUD!=(0xe2a+2894-0x1977))printk(
+pgd,addr);if(PTRS_PER_PUD!=(0x713+6770-0x2184))printk(
 "\x2c\x20\x2a\x70\x75\x64\x3d\x25\x30\x38\x6c\x6c\x78",(long long)pud_val(*pud))
 ;if(pud_none(*pud))break;if(pud_bad(*pud)){printk("\x28\x62\x61\x64\x29");break;
-}pmd=pmd_offset(pud,addr);if(PTRS_PER_PMD!=(0x1c82+165-0x1d26))printk(
+}pmd=pmd_offset(pud,addr);if(PTRS_PER_PMD!=(0x1819+1979-0x1fd3))printk(
 "\x2c\x20\x2a\x70\x6d\x64\x3d\x25\x30\x38\x6c\x6c\x78",(long long)pmd_val(*pmd))
 ;if(pmd_none(*pmd))break;if(pmd_bad(*pmd)){printk("\x28\x62\x61\x64\x29");break;
 }if(PageHighMem(pfn_to_page(pmd_val(*pmd)>>PAGE_SHIFT)))break;pte=pte_offset_map
@@ -47,18 +47,18 @@
 printk("\x2c\x20\x2a\x70\x70\x74\x65\x3d\x25\x30\x38\x6c\x6c\x78",(long long)
 pte_val(pte[PTE_HWTABLE_PTRS]));
 #endif
-pte_unmap(pte);}while((0x19c5+3009-0x2586));printk("\n");}
+pte_unmap(pte);}while((0xa31+3906-0x1973));printk("\n");}
 #else					
 void show_pte(struct mm_struct*mm,unsigned long addr){}
 #endif					
 static void __do_kernel_fault(struct mm_struct*mm,unsigned long addr,unsigned 
 int fsr,struct pt_regs*regs){if(fixup_exception(regs))return;bust_spinlocks(
-(0xca2+3899-0x1bdc));printk(KERN_ALERT
+(0xa61+1566-0x107e));printk(KERN_ALERT
 "\x55\x6e\x61\x62\x6c\x65\x20\x74\x6f\x20\x68\x61\x6e\x64\x6c\x65\x20\x6b\x65\x72\x6e\x65\x6c\x20\x25\x73\x20\x61\x74\x20\x76\x69\x72\x74\x75\x61\x6c\x20\x61\x64\x64\x72\x65\x73\x73\x20\x25\x30\x38\x6c\x78" "\n"
 ,(addr<PAGE_SIZE)?
 "\x4e\x55\x4c\x4c\x20\x70\x6f\x69\x6e\x74\x65\x72\x20\x64\x65\x72\x65\x66\x65\x72\x65\x6e\x63\x65"
 :"\x70\x61\x67\x69\x6e\x67\x20\x72\x65\x71\x75\x65\x73\x74",addr);show_pte(mm,
-addr);die("\x4f\x6f\x70\x73",regs,fsr);bust_spinlocks((0xe23+530-0x1035));
+addr);die("\x4f\x6f\x70\x73",regs,fsr);bust_spinlocks((0x1c7c+2291-0x256f));
 do_exit(SIGKILL);}static void __do_user_fault(struct task_struct*tsk,unsigned 
 long addr,unsigned int fsr,unsigned int sig,int code,struct pt_regs*regs){struct
  siginfo si;
@@ -69,7 +69,7 @@
 ,tsk->comm,sig,addr,fsr);show_pte(tsk->mm,addr);show_regs(regs);}
 #endif
 tsk->thread.address=addr;tsk->thread.error_code=fsr;tsk->thread.trap_no=
-(0x18d9+1862-0x2011);si.si_signo=sig;si.si_errno=(0xc1a+1664-0x129a);si.si_code=
+(0x2c0+1319-0x7d9);si.si_signo=sig;si.si_errno=(0x2054+1247-0x2533);si.si_code=
 code;si.si_addr=(void __user*)addr;force_sig_info(sig,&si,tsk);}void do_bad_area
 (unsigned long addr,unsigned int fsr,struct pt_regs*regs){struct task_struct*tsk
 =current;struct mm_struct*mm=tsk->active_mm;if(user_mode(regs))__do_user_fault(
@@ -91,9 +91,9 @@
 static int __kprobes do_page_fault(unsigned long addr,unsigned int fsr,struct 
 pt_regs*regs){struct task_struct*tsk;struct mm_struct*mm;int fault,sig,code;int 
 write=fsr&FSR_WRITE;unsigned int flags=FAULT_FLAG_ALLOW_RETRY|
-FAULT_FLAG_KILLABLE|(write?FAULT_FLAG_WRITE:(0x14b5+1588-0x1ae9));if(
-notify_page_fault(regs,fsr))return(0x107a+1447-0x1621);tsk=current;mm=tsk->mm;if
-(interrupts_enabled(regs))local_irq_enable();if(!mm||pagefault_disabled())goto 
+FAULT_FLAG_KILLABLE|(write?FAULT_FLAG_WRITE:(0x6a+1294-0x578));if(
+notify_page_fault(regs,fsr))return(0xf5+924-0x491);tsk=current;mm=tsk->mm;if(
+interrupts_enabled(regs))local_irq_enable();if(!mm||pagefault_disabled())goto 
 no_context;if(!down_read_trylock(&mm->mmap_sem)){if(!user_mode(regs)&&!
 search_exception_tables(regs->ARM_pc))goto no_context;retry:down_read(&mm->
 mmap_sem);}else{might_sleep();
@@ -101,22 +101,22 @@
 if(!user_mode(regs)&&!search_exception_tables(regs->ARM_pc))goto no_context;
 #endif
 }fault=__do_page_fault(mm,addr,fsr,flags,tsk);if((fault&VM_FAULT_RETRY)&&
-fatal_signal_pending(current))return(0xf29+3942-0x1e8f);perf_sw_event(
-PERF_COUNT_SW_PAGE_FAULTS,(0x1b1d+937-0x1ec5),regs,addr);if(!(fault&
-VM_FAULT_ERROR)&&flags&FAULT_FLAG_ALLOW_RETRY){if(fault&VM_FAULT_MAJOR){tsk->
-maj_flt++;perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MAJ,(0x2321+522-0x252a),regs,
-addr);}else{tsk->min_flt++;perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN,
-(0x20b+2927-0xd79),regs,addr);}if(fault&VM_FAULT_RETRY){flags&=~
-FAULT_FLAG_ALLOW_RETRY;goto retry;}}up_read(&mm->mmap_sem);if(likely(!(fault&(
-VM_FAULT_ERROR|VM_FAULT_BADMAP|VM_FAULT_BADACCESS))))return(0x1ab7+2658-0x2519);
-if(fault&VM_FAULT_OOM){pagefault_out_of_memory();return(0x491+7010-0x1ff3);}if(!
-user_mode(regs))goto no_context;if(fault&VM_FAULT_SIGBUS){sig=SIGBUS;code=
-BUS_ADRERR;}else{sig=SIGSEGV;code=fault==VM_FAULT_BADACCESS?SEGV_ACCERR:
-SEGV_MAPERR;}__do_user_fault(tsk,addr,fsr,sig,code,regs);return(0xb1+2894-0xbff)
-;no_context:__do_kernel_fault(mm,addr,fsr,regs);return(0xaa3+5725-0x2100);}
+fatal_signal_pending(current))return(0xff1+632-0x1269);perf_sw_event(
+PERF_COUNT_SW_PAGE_FAULTS,(0x4d9+791-0x7ef),regs,addr);if(!(fault&VM_FAULT_ERROR
+)&&flags&FAULT_FLAG_ALLOW_RETRY){if(fault&VM_FAULT_MAJOR){tsk->maj_flt++;
+perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MAJ,(0x231+5463-0x1787),regs,addr);}else
+{tsk->min_flt++;perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN,(0x1a3+1319-0x6c9),
+regs,addr);}if(fault&VM_FAULT_RETRY){flags&=~FAULT_FLAG_ALLOW_RETRY;goto retry;}
+}up_read(&mm->mmap_sem);if(likely(!(fault&(VM_FAULT_ERROR|VM_FAULT_BADMAP|
+VM_FAULT_BADACCESS))))return(0x575+5730-0x1bd7);if(fault&VM_FAULT_OOM){
+pagefault_out_of_memory();return(0xc1a+632-0xe92);}if(!user_mode(regs))goto 
+no_context;if(fault&VM_FAULT_SIGBUS){sig=SIGBUS;code=BUS_ADRERR;}else{sig=
+SIGSEGV;code=fault==VM_FAULT_BADACCESS?SEGV_ACCERR:SEGV_MAPERR;}__do_user_fault(
+tsk,addr,fsr,sig,code,regs);return(0x52+5873-0x1743);no_context:
+__do_kernel_fault(mm,addr,fsr,regs);return(0xc9d+5546-0x2247);}
 #else					
 static int do_page_fault(unsigned long addr,unsigned int fsr,struct pt_regs*regs
-){return(0x10ca+456-0x1292);}
+){return(0x56d+5422-0x1a9b);}
 #endif					
 #ifdef CONFIG_MMU
 static int __kprobes do_translation_fault(unsigned long addr,unsigned int fsr,
@@ -129,21 +129,21 @@
 bad_area;if(!pud_present(*pud))set_pud(pud,*pud_k);pmd=pmd_offset(pud,addr);
 pmd_k=pmd_offset(pud_k,addr);
 #ifdef CONFIG_ARM_LPAE
-index=(0x1a6c+1601-0x20ad);
+index=(0x152+7215-0x1d81);
 #else
-index=(addr>>SECTION_SHIFT)&(0x999+5880-0x2090);
+index=(addr>>SECTION_SHIFT)&(0x936+7173-0x253a);
 #endif
 if(pmd_none(pmd_k[index]))goto bad_area;copy_pmd(pmd,pmd_k);return
-(0x92f+1968-0x10df);bad_area:do_bad_area(addr,fsr,regs);return(0x358+3012-0xf1c)
-;}
+(0x28a+6674-0x1c9c);bad_area:do_bad_area(addr,fsr,regs);return
+(0x40f+6581-0x1dc4);}
 #else					
 static int do_translation_fault(unsigned long addr,unsigned int fsr,struct 
-pt_regs*regs){return(0x19e0+1414-0x1f66);}
+pt_regs*regs){return(0x3c2+7140-0x1fa6);}
 #endif					
 static int do_sect_fault(unsigned long addr,unsigned int fsr,struct pt_regs*regs
 ){if(interrupts_enabled(regs))local_irq_enable();do_bad_area(addr,fsr,regs);
-return(0xc88+3680-0x1ae8);}static int do_bad(unsigned long addr,unsigned int fsr
-,struct pt_regs*regs){return(0x2054+1263-0x2542);}struct fsr_info{int(*fn)(
+return(0x18ba+2768-0x238a);}static int do_bad(unsigned long addr,unsigned int 
+fsr,struct pt_regs*regs){return(0x222+7784-0x2089);}struct fsr_info{int(*fn)(
 unsigned long addr,unsigned int fsr,struct pt_regs*regs);int sig;int code;const 
 char*name;};
 #ifdef CONFIG_ARM_LPAE
@@ -152,21 +152,21 @@
 #include "fsr-2level.c"
 #endif
 void __init hook_fault_code(int nr,int(*fn)(unsigned long,unsigned int,struct 
-pt_regs*),int sig,int code,const char*name){if(nr<(0x1b92+2269-0x246f)||nr>=
+pt_regs*),int sig,int code,const char*name){if(nr<(0x7e5+3376-0x1515)||nr>=
 ARRAY_SIZE(fsr_info))BUG();fsr_info[nr].fn=fn;fsr_info[nr].sig=sig;fsr_info[nr].
 code=code;fsr_info[nr].name=name;}
 #ifdef CONFIG_MODEM_CODE_IS_MAPPING
 static DECLARE_RWSEM(shrinker_rwsem);atomic_t _code_page_count=ATOMIC_INIT(
-(0x609+6953-0x2132));struct addr_info{struct list_head node;unsigned long vaddr;
+(0xb56+5619-0x2149));struct addr_info{struct list_head node;unsigned long vaddr;
 unsigned long kaddr;unsigned long page_index;};enum modem_access_technology{GSM=
-(0xb3b+406-0xcd1),UTRAN=(0x11a+6077-0x18d6),LTE=(0xaf1+2083-0x1312),COM=
-(0x1cc+4358-0x12cf),NR_MODEM_ACCESS=(0x1499+3867-0x23b0)};struct list_head 
+(0xa82+6623-0x2461),UTRAN=(0x19a+294-0x2bf),LTE=(0x102c+3798-0x1f00),COM=
+(0xf7c+1460-0x152d),NR_MODEM_ACCESS=(0x882+5823-0x1f3d)};struct list_head 
 modem_page_list[NR_MODEM_ACCESS]={LIST_HEAD_INIT(modem_page_list[
-(0x10df+1475-0x16a2)]),LIST_HEAD_INIT(modem_page_list[(0x362+2472-0xd09)]),
-LIST_HEAD_INIT(modem_page_list[(0x429+3914-0x1371)]),LIST_HEAD_INIT(
-modem_page_list[(0xb55+6407-0x2459)]),};unsigned int page_used[
-(0x1886+1788-0x1f5a)];struct completion page_completion[(0x1123+4555-0x22c6)*
-(0x113a+1671-0x17a1)];static void unmap_pte_range(pmd_t*pmd,unsigned long addr,
+(0x2141+685-0x23ee)]),LIST_HEAD_INIT(modem_page_list[(0x260+5072-0x162f)]),
+LIST_HEAD_INIT(modem_page_list[(0xcab+2899-0x17fc)]),LIST_HEAD_INIT(
+modem_page_list[(0x562+2250-0xe29)]),};unsigned int page_used[
+(0x339+4597-0x1506)];struct completion page_completion[(0x942+128-0x99a)*
+(0x6f2+5322-0x1b9c)];static void unmap_pte_range(pmd_t*pmd,unsigned long addr,
 unsigned long end){pte_t*pte;pte=pte_offset_kernel(pmd,addr);do{pte_t ptent=
 ptep_get_and_clear(&init_mm,addr,pte);WARN_ON(!pte_none(ptent)&&!pte_present(
 ptent));}while(pte++,addr+=PAGE_SIZE,addr!=end);}static void unmap_pmd_range(
@@ -180,14 +180,14 @@
 addr,unsigned long end){pgd_t*pgd;unsigned long next;BUG_ON(addr>=end);pgd=
 pgd_offset_k(addr);do{next=pgd_addr_end(addr,end);if(pgd_none_or_clear_bad(pgd))
 continue;unmap_pud_range(pgd,addr,next);}while(pgd++,addr=next,addr!=end);}void 
-shrink_modem_mem(unsigned int access_type){int i=(0x87+3934-0xfe5);unsigned long
- vaddr;struct addr_info*addr,*tmp_addr;struct list_head tmp_page_list;for(i=
-(0x735+6474-0x207f);i<NR_MODEM_ACCESS;i++){if(i==access_type)continue;down_write
+shrink_modem_mem(unsigned int access_type){int i=(0x13cf+2895-0x1f1e);unsigned 
+long vaddr;struct addr_info*addr,*tmp_addr;struct list_head tmp_page_list;for(i=
+(0xe58+2447-0x17e7);i<NR_MODEM_ACCESS;i++){if(i==access_type)continue;down_write
 (&shrinker_rwsem);list_replace_init(&modem_page_list[i],&tmp_page_list);up_write
 (&shrinker_rwsem);list_for_each_entry_safe(addr,tmp_addr,&tmp_page_list,node){
 list_del_init(&addr->node);page_completion[addr->page_index].done=
-(0x56d+8088-0x2505);page_used[addr->page_index/BITS_PER_LONG]&=~(
-(0x602+5850-0x1cdb)<<(addr->page_index%BITS_PER_LONG));vaddr=addr->vaddr&
+(0x764+741-0xa49);page_used[addr->page_index/BITS_PER_LONG]&=~(
+(0x8a1+5030-0x1c46)<<(addr->page_index%BITS_PER_LONG));vaddr=addr->vaddr&
 PAGE_MASK;if(vaddr<cpps_global_var.cpko_text_start||vaddr>cpps_global_var.
 modem_text_end){panic(
 "\x61\x64\x64\x72\x5f\x69\x6e\x66\x6f\x3a\x20\x25\x30\x38\x78\x20\x69\x73\x20\x20\x64\x65\x73\x74\x72\x6f\x79"
@@ -195,28 +195,28 @@
 PAGE_SIZE);flush_tlb_kernel_range(vaddr,vaddr+PAGE_SIZE);
 #ifdef CONFIG_DEBUG_RODATA
 unsigned int flags;local_irq_save(flags);set_memory_rw(addr->kaddr,
-(0x1882+2136-0x20d9));local_irq_restore(flags);
+(0x1abf+1188-0x1f62));local_irq_restore(flags);
 #endif
 free_page(addr->kaddr);kfree(addr);atomic_dec(&_code_page_count);};}}
 EXPORT_SYMBOL(shrink_modem_mem);phys_addr_t virt_is_mapping(unsigned long addr){
 pgd_t*pgd;pmd_t*pmd;pte_t*ptep,pte;unsigned long pfn;pgd=pgd_offset_k(addr);if(!
 pgd_none(*pgd)){pmd=pmd_offset(pgd,addr);if(!pmd_none(*pmd)){ptep=pte_offset_map
 (pmd,addr);pte=*ptep;if(pte_present(pte)){pfn=pte_pfn(pte);return __pfn_to_phys(
-pfn);}}}return(0x222d+104-0x2295);}static int sync_pgd(unsigned long addr,
-unsigned int fsr,struct pt_regs*regs){unsigned int index;pgd_t*pgd,*pgd_k;pud_t*
-pud,*pud_k;pmd_t*pmd,*pmd_k;index=pgd_index(addr);pgd=cpu_get_pgd()+index;pgd_k=
+pfn);}}}return(0x292+547-0x4b5);}static int sync_pgd(unsigned long addr,unsigned
+ int fsr,struct pt_regs*regs){unsigned int index;pgd_t*pgd,*pgd_k;pud_t*pud,*
+pud_k;pmd_t*pmd,*pmd_k;index=pgd_index(addr);pgd=cpu_get_pgd()+index;pgd_k=
 init_mm.pgd+index;if(pgd_none(*pgd_k))goto bad_area;if(!pgd_present(*pgd))
 set_pgd(pgd,*pgd_k);pud=pud_offset(pgd,addr);pud_k=pud_offset(pgd_k,addr);if(
 pud_none(*pud_k))goto bad_area;if(!pud_present(*pud))set_pud(pud,*pud_k);pmd=
 pmd_offset(pud,addr);pmd_k=pmd_offset(pud_k,addr);
 #ifdef CONFIG_ARM_LPAE
-index=(0x1c7b+37-0x1ca0);
+index=(0x13d8+743-0x16bf);
 #else
-index=(addr>>SECTION_SHIFT)&(0x21e6+876-0x2551);
+index=(addr>>SECTION_SHIFT)&(0x1714+778-0x1a1d);
 #endif
 if(pmd_none(pmd_k[index]))goto bad_area;copy_pmd(pmd,pmd_k);return
-(0x1da1+1736-0x2469);bad_area:do_bad_area(addr,fsr,regs);return
-(0x4c0+2321-0xdd1);}unsigned long*read_code_file(unsigned long page_index){
+(0x113d+306-0x126f);bad_area:do_bad_area(addr,fsr,regs);return
+(0x7c5+4314-0x189f);}unsigned long*read_code_file(unsigned long page_index){
 unsigned long*code_buf;ssize_t result;code_buf=get_zeroed_page(GFP_ATOMIC);if(!
 code_buf)panic(
 "\x6d\x65\x6d\x65\x6f\x72\x79\x20\x6e\x6f\x74\x20\x65\x6e\x6f\x75\x67\x68\x21\x21"
@@ -225,23 +225,23 @@
 "\x6f\x70\x65\x6e\x20\x66\x69\x6c\x65\x20\x65\x72\x72\x6f\x72" "\n");}
 mm_segment_t old_fs;old_fs=get_fs();set_fs(KERNEL_DS);loff_t pos;pos=page_index*
 PAGE_SIZE+cpps_global_var.modem_offset;result=vfs_read(cpps_global_var.fp_code,(
-char*)code_buf,PAGE_SIZE,&pos);if(result<(0x49+6729-0x1a92)){panic(
+char*)code_buf,PAGE_SIZE,&pos);if(result<(0x52a+4323-0x160d)){panic(
 "\x72\x65\x61\x64\x20\x63\x6f\x64\x65\x20\x66\x69\x6c\x65\x20\x65\x72\x72\x6f\x72" "\n"
 );}
 #ifdef CONFIG_DEBUG_RODATA
 unsigned int flags;local_irq_save(flags);set_memory_ro((unsigned long)code_buf,
-(0x2e5+1761-0x9c5));local_irq_restore(flags);
+(0x239f+4-0x23a2));local_irq_restore(flags);
 #endif
 set_fs(old_fs);return code_buf;}void read_code_mapping(unsigned long addr,
 unsigned int fsr,struct pt_regs*regs){unsigned long offset;unsigned long vaddr;
 const struct mem_type*mtype;unsigned long*vir_codebuf;unsigned long page_index;
-unsigned long page_shift;if(virt_is_mapping(addr&PAGE_MASK)!=(0x29+8410-0x2103))
-{sync_pgd(addr&PAGE_MASK,fsr,regs);return;}vaddr=addr&PAGE_MASK;offset=vaddr&(~
+unsigned long page_shift;if(virt_is_mapping(addr&PAGE_MASK)!=(0x539+3633-0x136a)
+){sync_pgd(addr&PAGE_MASK,fsr,regs);return;}vaddr=addr&PAGE_MASK;offset=vaddr&(~
 cpps_global_var.cpko_text_start);page_index=offset>>PAGE_SHIFT;page_shift=
 page_index%BITS_PER_LONG;if((page_used[page_index/BITS_PER_LONG]>>page_shift)&
-(0xa1f+1461-0xfd3)){wait_for_completion(&page_completion[page_index]);sync_pgd(
+(0x53+2746-0xb0c)){wait_for_completion(&page_completion[page_index]);sync_pgd(
 vaddr,fsr,regs);return;}else page_used[page_index/BITS_PER_LONG]|=(
-(0x14b1+170-0x155a)<<page_shift);local_irq_enable();vir_codebuf=read_code_file(
+(0x7cb+4993-0x1b4b)<<page_shift);local_irq_enable();vir_codebuf=read_code_file(
 page_index);struct addr_info*addr_info;addr_info=kzalloc(sizeof(struct addr_info
 ),GFP_KERNEL);addr_info->kaddr=vir_codebuf;addr_info->vaddr=addr;addr_info->
 page_index=page_index;down_write(&shrinker_rwsem);if(vaddr<cpps_global_var.
@@ -259,46 +259,46 @@
 struct pt_regs*regs){const struct fsr_info*inf=fsr_info+fsr_fs(fsr);struct 
 siginfo info;
 #ifdef CONFIG_MODEM_CODE_IS_MAPPING
-if(addr!=(0xf54+4843-0x223f)&&addr>=cpps_global_var.cpko_text_start&&addr<=
+if(addr!=(0xa26+1881-0x117f)&&addr>=cpps_global_var.cpko_text_start&&addr<=
 cpps_global_var.modem_text_end){read_code_mapping(addr,fsr&~FSR_LNX_PF,regs);
 return;}
 #endif
 if(!inf->fn(addr,fsr&~FSR_LNX_PF,regs))return;printk(KERN_ALERT
 "\x55\x6e\x68\x61\x6e\x64\x6c\x65\x64\x20\x66\x61\x75\x6c\x74\x3a\x20\x25\x73\x20\x28\x30\x78\x25\x30\x33\x78\x29\x20\x61\x74\x20\x30\x78\x25\x30\x38\x6c\x78" "\n"
-,inf->name,fsr,addr);info.si_signo=inf->sig;info.si_errno=(0x1ef3+402-0x2085);
+,inf->name,fsr,addr);info.si_signo=inf->sig;info.si_errno=(0x1791+761-0x1a8a);
 info.si_code=inf->code;info.si_addr=(void __user*)addr;arm_notify_die("",regs,&
-info,fsr,(0xa68+6882-0x254a));}void __init hook_ifault_code(int nr,int(*fn)(
+info,fsr,(0xd40+2877-0x187d));}void __init hook_ifault_code(int nr,int(*fn)(
 unsigned long,unsigned int,struct pt_regs*),int sig,int code,const char*name){if
-(nr<(0x7a9+6738-0x21fb)||nr>=ARRAY_SIZE(ifsr_info))BUG();ifsr_info[nr].fn=fn;
+(nr<(0x12dc+4844-0x25c8)||nr>=ARRAY_SIZE(ifsr_info))BUG();ifsr_info[nr].fn=fn;
 ifsr_info[nr].sig=sig;ifsr_info[nr].code=code;ifsr_info[nr].name=name;}
 asmlinkage void __exception do_PrefetchAbort(unsigned long addr,unsigned int 
 ifsr,struct pt_regs*regs){const struct fsr_info*inf=ifsr_info+fsr_fs(ifsr);
 struct siginfo info;
 #ifdef CONFIG_MODEM_CODE_IS_MAPPING
-if(addr!=(0x14b+8615-0x22f2)&&addr>=cpps_global_var.cpko_text_start&&addr<=
+if(addr!=(0xfb3+4972-0x231f)&&addr>=cpps_global_var.cpko_text_start&&addr<=
 cpps_global_var.modem_text_end){read_code_mapping(addr,ifsr|FSR_LNX_PF,regs);
 return;}
 #endif
 if(!inf->fn(addr,ifsr|FSR_LNX_PF,regs))return;printk(KERN_ALERT
 "\x55\x6e\x68\x61\x6e\x64\x6c\x65\x64\x20\x70\x72\x65\x66\x65\x74\x63\x68\x20\x61\x62\x6f\x72\x74\x3a\x20\x25\x73\x20\x28\x30\x78\x25\x30\x33\x78\x29\x20\x61\x74\x20\x30\x78\x25\x30\x38\x6c\x78" "\n"
-,inf->name,ifsr,addr);info.si_signo=inf->sig;info.si_errno=(0x1c76+118-0x1cec);
+,inf->name,ifsr,addr);info.si_signo=inf->sig;info.si_errno=(0x1979+745-0x1c62);
 info.si_code=inf->code;info.si_addr=(void __user*)addr;arm_notify_die("",regs,&
-info,ifsr,(0x161b+3857-0x252c));}
+info,ifsr,(0x4c7+5661-0x1ae4));}
 #ifndef CONFIG_ARM_LPAE
 static int __init exceptions_init(void){if(cpu_architecture()>=CPU_ARCH_ARMv6){
-hook_fault_code((0x3e9+7168-0x1fe5),do_translation_fault,SIGSEGV,SEGV_MAPERR,
+hook_fault_code((0x155+3694-0xfbf),do_translation_fault,SIGSEGV,SEGV_MAPERR,
 "\x49\x2d\x63\x61\x63\x68\x65\x20\x6d\x61\x69\x6e\x74\x65\x6e\x61\x6e\x63\x65\x20\x66\x61\x75\x6c\x74"
-);}if(cpu_architecture()>=CPU_ARCH_ARMv7){hook_fault_code((0x174d+3791-0x2619),
+);}if(cpu_architecture()>=CPU_ARCH_ARMv7){hook_fault_code((0x559+5769-0x1bdf),
 do_bad,SIGSEGV,SEGV_MAPERR,
 "\x73\x65\x63\x74\x69\x6f\x6e\x20\x61\x63\x63\x65\x73\x73\x20\x66\x6c\x61\x67\x20\x66\x61\x75\x6c\x74"
-);hook_fault_code((0x321+7617-0x20dc),do_bad,SIGSEGV,SEGV_MAPERR,
+);hook_fault_code((0xf74+4680-0x21b6),do_bad,SIGSEGV,SEGV_MAPERR,
 "\x73\x65\x63\x74\x69\x6f\x6e\x20\x61\x63\x63\x65\x73\x73\x20\x66\x6c\x61\x67\x20\x66\x61\x75\x6c\x74"
 );}
 #ifdef CONFIG_MODEM_CODE_IS_MAPPING
-int index=(0x16ca+2290-0x1fbc);for(index=(0x19bb+720-0x1c8b);index<
-(0xad9+83-0xb04)*(0x168+2590-0xb66);index++)init_completion(&page_completion[
-index]);
+int index=(0x26f+2998-0xe25);for(index=(0xc84+4770-0x1f26);index<
+(0x1aea+2741-0x2577)*(0x432+2795-0xefd);index++)init_completion(&page_completion
+[index]);
 #endif
-return(0xa38+837-0xd7d);}arch_initcall(exceptions_init);
+return(0x114a+827-0x1485);}arch_initcall(exceptions_init);
 #endif
 
diff --git a/ap/os/linux/linux-3.4.x/drivers/cpko/cpko_main.c b/ap/os/linux/linux-3.4.x/drivers/cpko/cpko_main.c
index fcafeb4..dffcb04 100755
--- a/ap/os/linux/linux-3.4.x/drivers/cpko/cpko_main.c
+++ b/ap/os/linux/linux-3.4.x/drivers/cpko/cpko_main.c
@@ -81,30 +81,30 @@
 unsigned int __comm_modem_text_start;unsigned int modem_text_end;unsigned int 
 cpko_data_start;unsigned int cpko_bss_start;unsigned int cpko_text_offset;}
 cpko_section_layout;cpko_section_layout cpko_ps_section;int raise(int signo){
-return(0x183+1225-0x64c);}extern unsigned int SysEntry(void);static int 
+return(0x11fa+11-0x1205);}extern unsigned int SysEntry(void);static int 
 ko_Main_Thread(void*data){struct sched_param param={.sched_priority=
-MAX_USER_RT_PRIO/(0xaf5+6062-0x22a1)-(0x1bab+1765-0x228d)};int ret=
-(0x633+3121-0x1264);sched_setscheduler(current,SCHED_FIFO,&param);ret=SysEntry()
-;if(ret!=(0x509+7685-0x230e))panic("Main_Thread\n");param.sched_priority=
-MAX_USER_RT_PRIO-(0xbb9+1067-0xfb6);sched_setscheduler(kthreadd_task,SCHED_FIFO,
-&param);return(0x10df+2732-0x1b8b);}int zte_modem_ko_start(void){kthread_run(
+MAX_USER_RT_PRIO/(0xded+2359-0x1722)-(0x11e3+270-0x12ee)};int ret=
+(0xf8b+2482-0x193d);sched_setscheduler(current,SCHED_FIFO,&param);ret=SysEntry()
+;if(ret!=(0xbd2+2713-0x166b))panic("Main_Thread\n");param.sched_priority=
+MAX_USER_RT_PRIO-(0x755+66-0x769);sched_setscheduler(kthreadd_task,SCHED_FIFO,&
+param);return(0xfd4+33-0xff5);}int zte_modem_ko_start(void){kthread_run(
 ko_Main_Thread,NULL,"\x5a\x54\x45\x4d\x61\x69\x6e\x54\x68\x72\x65\x61\x64");
-return(0x767+1319-0xc8e);}static void cpko_sectioninfo_set(void){int ret;struct 
-file*fp;mm_segment_t old_fs;loff_t cpko_pos=(0xd8c+3134-0x19ca);struct 
+return(0x81b+4816-0x1aeb);}static void cpko_sectioninfo_set(void){int ret;struct
+ file*fp;mm_segment_t old_fs;loff_t cpko_pos=(0x2024+1215-0x24e3);struct 
 cpps_globalModem globalVar;fp=filp_open(
 "\x2f\x6c\x69\x62\x2f\x63\x70\x6b\x6f\x2f\x63\x70\x6b\x6f\x5f\x73\x65\x63\x69\x6e\x66\x6f\x2e\x62\x69\x6e"
-,(0x19aa+718-0x1c78),(0x1099+282-0x11b3));if(IS_ERR(fp)||fp==NULL)panic(
+,(0x1d5+6034-0x1967),(0x5d9+3622-0x13ff));if(IS_ERR(fp)||fp==NULL)panic(
 "\x6f\x70\x65\x6e\x20\x66\x69\x6c\x65\x20\x65\x72\x72\x6f\x72" "\n");old_fs=
 get_fs();set_fs(KERNEL_DS);ret=vfs_read(fp,(char*)&cpko_ps_section,sizeof(
-cpko_section_layout),&cpko_pos);if(ret<=(0xc0+7829-0x1f55))panic(
+cpko_section_layout),&cpko_pos);if(ret<=(0x5a5+4030-0x1563))panic(
 "\x72\x65\x61\x64\x20\x66\x69\x6c\x65\x20\x65\x72\x72\x6f\x72" "\n");filp_close(
 fp,NULL);
 #ifdef CONFIG_MODEM_CODE_IS_MAPPING
 fp=filp_open(
 "\x2f\x6c\x69\x62\x2f\x63\x70\x6b\x6f\x2f\x63\x70\x6b\x6f\x2e\x6b\x6f",
-(0x10f0+205-0x11bd),(0x830+3075-0x1433));if(IS_ERR(fp)||fp==NULL)panic(
+(0x8d3+2653-0x1330),(0xab6+4007-0x1a5d));if(IS_ERR(fp)||fp==NULL)panic(
 "\x6f\x70\x65\x6e\x20\x66\x69\x6c\x65\x20\x65\x72\x72\x6f\x72" "\n");fp->f_ra.
-ra_pages=(0x544+4239-0x15d3);
+ra_pages=(0x4b1+8568-0x2629);
 #endif
 if(cpko_ps_section.cpko_text_start){globalVar.cpko_text_start=(unsigned long)
 cpko_ps_section.cpko_text_start;globalVar.cpko_rodata_start=(unsigned long)
@@ -124,7 +124,7 @@
 vfree_modem_section(globalVar.cpko_text_start,globalVar.modem_text_end);
 #endif
 }else panic("\x66\x69\x6c\x65\x20\x65\x72\x72\x6f\x72" "\n");}static int 
-cpko_start(void){struct cpps_callbacks callback={(0x22b3+1037-0x26c0)};callback.
+cpko_start(void){struct cpps_callbacks callback={(0x2ec+4566-0x14c2)};callback.
 zOss_ResetNVFactory=zOss_ResetNVFactory;callback.zOss_NvramFlush=zOss_NvramFlush
 ;callback.zOss_NvItemWrite=zOss_NvItemWrite;callback.zOss_NvItemWriteFactory=
 zOss_NvItemWriteFactory;callback.zOss_NvItemRead=zOss_NvItemRead;callback.
@@ -193,5 +193,5 @@
 psm_GetModemSleepFlagStatus=psm_GetModemSleepFlagStatus;
 #endif
 cpps_callbacks_register(&callback);cpko_sectioninfo_set();zte_modem_ko_start();
-return(0x3a0+2165-0xc15);}static int cpko_stop(void){return(0xc1+7397-0x1da6);}
+return(0x1c55+1612-0x22a1);}static int cpko_stop(void){return(0x193+979-0x566);}
 module_init(cpko_start);module_exit(cpko_stop);
diff --git a/ap/os/linux/linux-3.4.x/drivers/mfd/zx234290-adc.c b/ap/os/linux/linux-3.4.x/drivers/mfd/zx234290-adc.c
index 453cbb8..af82c3d 100644
--- a/ap/os/linux/linux-3.4.x/drivers/mfd/zx234290-adc.c
+++ b/ap/os/linux/linux-3.4.x/drivers/mfd/zx234290-adc.c
@@ -354,6 +354,10 @@
 	int index=0;

 	int tmpValue=0,totalValue=0;

 	uint avgValue;

+#ifdef _USE_VEHICLE_DC

+	printk("%s adc not support in ap\n",__func__);

+	return 0;

+#endif	

 	for(index = 0; index < counter; index++)

 	{

 		zx234290_adc_read(ADC_CHANNEL_VBAT_ADC, &tmpValue);

@@ -383,6 +387,10 @@
 	int index=0;

 	int tmpValue=0,totalValue=0;

 	uint avgValue;

+#ifdef _USE_VEHICLE_DC

+	printk("%s adc not support in ap\n",__func__);

+	return 0;

+#endif		

 	for(index = 0; index < counter; index++)

 	{

 		zx234290_adc_read(ADC_CHANNEL_VADC1, &tmpValue);

@@ -413,6 +421,10 @@
 	int index=0;

 	int tmpValue=0,totalValue=0;

 	uint avgValue;

+#ifdef _USE_VEHICLE_DC

+	printk("%s adc not support in ap\n",__func__);

+	return 0;

+#endif	

 	//wake_lock(&adc_wake_lock);

 	for(index = 0; index < counter; index++)

 	{

diff --git a/ap/os/linux/linux-3.4.x/drivers/misc/zcat/debug_info.c b/ap/os/linux/linux-3.4.x/drivers/misc/zcat/debug_info.c
index de0e6d9..00b5cbe 100755
--- a/ap/os/linux/linux-3.4.x/drivers/misc/zcat/debug_info.c
+++ b/ap/os/linux/linux-3.4.x/drivers/misc/zcat/debug_info.c
@@ -67,13 +67,6 @@
     char sub_data[]; // 用户数据
 } T_SHARED_MEM_DATA;
 
-typedef struct
-{
-    UINT32 head;      // 0x010a0a0a
-    UINT32 time;      // time()函数获取
-    UINT32 total_len; // 数据内容长度
-} T_SAVE_FILE_DATA;
-
 /*******************************************************************************
  *                                  全局变量                                     *
  *******************************************************************************/
diff --git a/ap/os/linux/linux-3.4.x/drivers/misc/zcat/logcat_drv_cp.c b/ap/os/linux/linux-3.4.x/drivers/misc/zcat/logcat_drv_cp.c
index 5a3d876..eefaa76 100755
--- a/ap/os/linux/linux-3.4.x/drivers/misc/zcat/logcat_drv_cp.c
+++ b/ap/os/linux/linux-3.4.x/drivers/misc/zcat/logcat_drv_cp.c
@@ -58,7 +58,12 @@
 /**
  * ºê¶¨Òå
  */
-#define ZCAT_MODE_ADDR    (int *)IRAM_BASE_ADDR_ZCAT_MODE 
+#define ZCAT_MODE_ADDR            (int *)IRAM_BASE_ADDR_ZCAT_MODE 
+
+#ifdef _USE_VEHICLE_DC
+#define RINGBUF_CAP_TO_AP_OFFSET  (ICP_CAP_BUF_LEN + TOOL_CAP_BUF_LEN)
+#define RINGBUF_AP_TO_CAP_OFFSET  (RINGBUF_CAP_TO_AP_OFFSET + RINGBUF_CAP_TO_AP_LEN + ADB_CAP_BUF_LEN + RAMDUMP_CAP_CMM_BUF_LEN)
+#endif
 
 /**
  * Íⲿº¯ÊýÉùÃ÷
@@ -229,7 +234,7 @@
         {
             if(g_AP_CapToApBuffer == NULL)
             {
-                UINT8 *buf = (UINT8 *)(ZX_DDR_CAPBUF_BASE + RINGBUF_CAP_BASE_OFFSET); 
+                UINT8 *buf = (UINT8 *)(ZX_DDR_CAPBUF_BASE + RINGBUF_CAP_TO_AP_OFFSET); 
                 g_AP_CapToApBuffer = CreateRingBufferWithSymbol(buf, RINGBUF_CAP_TO_AP_LEN, ZCAT_IPC_ESTABLISHED);
 
                 if(!g_AP_CapToApBuffer)
@@ -240,7 +245,7 @@
             }
             if(g_AP_ApToCapBuffer == NULL)
             {
-                UINT8 *buf = (UINT8 *)(ZX_DDR_CAPBUF_BASE + RINGBUF_CAP_BASE_OFFSET + RINGBUF_CAP_TO_AP_LEN);
+                UINT8 *buf = (UINT8 *)(ZX_DDR_CAPBUF_BASE + RINGBUF_AP_TO_CAP_OFFSET);
                 g_AP_ApToCapBuffer = CreateRingBufferWithSymbol(buf, RINGBUF_AP_TO_CAP_LEN, ZCAT_IPC_ESTABLISHED);
                 if(!g_AP_ApToCapBuffer)
                 {
diff --git a/ap/os/linux/linux-3.4.x/drivers/misc/zcat/logcat_drv_printf.c b/ap/os/linux/linux-3.4.x/drivers/misc/zcat/logcat_drv_printf.c
index 6cdf45b..db4271a 100755
--- a/ap/os/linux/linux-3.4.x/drivers/misc/zcat/logcat_drv_printf.c
+++ b/ap/os/linux/linux-3.4.x/drivers/misc/zcat/logcat_drv_printf.c
@@ -326,7 +326,7 @@
 #endif
 
 #endif
-	
+
     return ret;
 }
 
diff --git a/ap/os/linux/linux-3.4.x/drivers/net/psnet/psnet_io.c b/ap/os/linux/linux-3.4.x/drivers/net/psnet/psnet_io.c
index e692d2a..ca1e0f2 100755
--- a/ap/os/linux/linux-3.4.x/drivers/net/psnet/psnet_io.c
+++ b/ap/os/linux/linux-3.4.x/drivers/net/psnet/psnet_io.c
@@ -359,7 +359,7 @@
 	
 	return 0;
 }
-
+extern int atio_is_scaning(void);
 int psnet_transIPdataToPS(unsigned int index, struct sk_buff * skb, unsigned int length)
 {
 
@@ -384,18 +384,24 @@
 
 	//if(!((unsigned long)buffer%MAC4BYTE_ASSERT != 0) || !((unsigned long)buffer % MAC2BYTE_ASSERT == 0))
 	//	panic("wrong skb data");
-
-	if ((((unsigned)buffer[0]) & 0xF0) == 0x40 && (s_pschid_info[index].stat == 1))
-	{
-		ret = psnet_write(skb, length, IP_V4, chid); 
-	}
-	else if ((((unsigned)buffer[0]) & 0xF0) == 0x60 && (s_pschid_info[index].stat == 1))
-	{
-		ret = psnet_write(skb, length, IP_V6, chid); 
+	
+	if((s_pschid_info[index].stat == 1) 
+#ifdef USE_DSDS_VSIM
+		&& (atio_is_scaning() == 0)
+#endif
+	){
+		if ((((unsigned)buffer[0]) & 0xF0) == 0x40){
+			ret = psnet_write(skb, length, IP_V4, chid); 
+		}else if ((((unsigned)buffer[0]) & 0xF0) == 0x60){
+			ret = psnet_write(skb, length, IP_V6, chid); 
+		}else{
+			//err("%s:: IP type of data is wrong!!!", __func__);
+			return PSNET_IO_ERROR;
+		}
 	}
 	else
 	{
-		//err("%s:: IP type of data is wrong!!!", __func__);
+		//err("%s:: wan%d not ready!!!", __func__, index+1);
 		return PSNET_IO_ERROR;
 	}
 	
diff --git a/ap/os/linux/linux-3.4.x/drivers/net/wireless/aic8800/rwnx_cmds.c b/ap/os/linux/linux-3.4.x/drivers/net/wireless/aic8800/rwnx_cmds.c
index f4efc0e..eec2fb0 100755
--- a/ap/os/linux/linux-3.4.x/drivers/net/wireless/aic8800/rwnx_cmds.c
+++ b/ap/os/linux/linux-3.4.x/drivers/net/wireless/aic8800/rwnx_cmds.c
@@ -463,6 +463,7 @@
 					if(skb_queue_len(&sdiodev->rwnx_hw->txq[i].sk_list) != 0)
 						rwnx_txq_flush(sdiodev->rwnx_hw, &sdiodev->rwnx_hw->txq[i]);
 				}
+				tasklet_kill(&sdiodev->rwnx_hw->task);
 				spin_unlock_bh(&sdiodev->rwnx_hw->tx_lock);
 #endif
 				spin_lock_bh(&sdiodev->tx_priv->txqlock);
diff --git a/ap/os/linux/linux-3.4.x/drivers/net/wireless/ssv6x5x/ssv6x5x-wifi.cfg b/ap/os/linux/linux-3.4.x/drivers/net/wireless/ssv6x5x/ssv6x5x-wifi.cfg
index f876f3c..4c4a80b 100755
--- a/ap/os/linux/linux-3.4.x/drivers/net/wireless/ssv6x5x/ssv6x5x-wifi.cfg
+++ b/ap/os/linux/linux-3.4.x/drivers/net/wireless/ssv6x5x/ssv6x5x-wifi.cfg
@@ -73,3 +73,4 @@
 ##################################################
 #ble_replace_scan_win = 0x30
 #ble_replace_scan_interval = 0x0140
+ap_force_tim_always_high = 1
diff --git a/ap/os/linux/linux-3.4.x/drivers/net/zvnet/zvnet_dev.c b/ap/os/linux/linux-3.4.x/drivers/net/zvnet/zvnet_dev.c
index 0209dfe..723810d 100644
--- a/ap/os/linux/linux-3.4.x/drivers/net/zvnet/zvnet_dev.c
+++ b/ap/os/linux/linux-3.4.x/drivers/net/zvnet/zvnet_dev.c
@@ -286,17 +286,17 @@
 	skb->len = pbuf_temp->len;

 	skb->end = skb->head + pbuf_temp->end_off;

 	skb->dev = zvnet_dev[pbuf_temp->dev].net;

-	if(IFF_NOARP & skb->dev->flags)

-		memcpy(skb->data, skb->dev->dev_addr, 6);

 	if(skb->len == 0 || skb->len > 2000)

 		panic("len    ERR!!!!!!!!!!\n");

 	/* make sure we initialize shinfo sequentially */

 	dma_cache_maint(skb->head, pbuf_temp->head, pbuf_temp->end_off + sizeof(struct skb_shared_info), DMA_FROM_DEVICE);

+	if(IFF_NOARP & skb->dev->flags)

+		memcpy(skb->data, skb->dev->dev_addr, 6);

 	skb_reset_network_header(skb);

-	//shinfo = skb_shinfo(skb);

+	shinfo = skb_shinfo(skb);

 	//memset(shinfo, 0, offsetof(struct skb_shared_info, dataref));

-	//atomic_set(&shinfo->dataref, 1);

-	kmemcheck_annotate_variable(shinfo->destructor_arg);

+	atomic_set(&shinfo->dataref, 1);

+	//kmemcheck_annotate_variable(shinfo->destructor_arg);

 	return skb;

 }

 

@@ -379,7 +379,7 @@
 		buff[i].dev = zvnet_get_index_by_netdev(skb->dev);

 		i++;

 		zv_info("xmit skb=0x%x i=%d", skb, i);

-		if(i >= ZVNET_XMIT_MAX_QUEUE_NUM){

+		if(i > ZVNET_XMIT_MAX_QUEUE_NUM){

 			panic("qlen:%d!", i);

 		}

 	}

diff --git a/ap/os/linux/linux-3.4.x/drivers/net/zvnet/zvnet_dev.h b/ap/os/linux/linux-3.4.x/drivers/net/zvnet/zvnet_dev.h
index be937d6..ab3cda3 100755
--- a/ap/os/linux/linux-3.4.x/drivers/net/zvnet/zvnet_dev.h
+++ b/ap/os/linux/linux-3.4.x/drivers/net/zvnet/zvnet_dev.h
@@ -27,7 +27,7 @@
 	__func__ , ## arg)

 

 //zvnetÉ豸×î´óÊý

-#define DDR_ZVNET_DEV_MAX 9

+#define DDR_ZVNET_DEV_MAX 10

 #define ZVNET_IFNAME_PREFIX "zvnet"

 

 #define ICP_CHN_ZVNET1 channel_20

diff --git a/ap/os/linux/linux-3.4.x/drivers/soc/zte/rpm/at_io.c b/ap/os/linux/linux-3.4.x/drivers/soc/zte/rpm/at_io.c
index 5e8683d..13f1884 100755
--- a/ap/os/linux/linux-3.4.x/drivers/soc/zte/rpm/at_io.c
+++ b/ap/os/linux/linux-3.4.x/drivers/soc/zte/rpm/at_io.c
@@ -16,7 +16,7 @@
 
 #define  VSIM_CHID_BASE	90
 #define  VSIM_MAX_MSG_LEN	1024
-#define  VSIM_APDU_TIMEOUT	6
+#define  VSIM_APDU_TIMEOUT	8//Сˮ»Øµ÷³¬Ê±Ê±¼ä6Ã룬Ҫ±ÈСˮ´ó
 
 enum{
 	MSG_CMD_VSIM_GET_SWITCH = 1,
@@ -31,6 +31,8 @@
 	MSG_CMD_VSIM_APDU,
 	MSG_CMD_VSIM_GET_FLOW_STATISTIC,//»ñÈ¡µ±Ç°Á÷Á¿Í³¼Æ
 	MSG_CMD_VSIM_RESET_FLOW_STATISTIC,//ÖØÖõ±Ç°Á÷Á¿Í³¼Æ
+	MSG_CMD_VSIM_GET_SCANING,
+	MSG_CMD_VSIM_SET_SCANING,
 	MSG_CMD_VSIM_MAX,
 };
 typedef struct {
@@ -61,6 +63,7 @@
 atomic_t g_vsim_standby = ATOMIC_INIT(0);
 atomic_t g_vsim_tauing = ATOMIC_INIT(0);
 atomic_t g_vsim_authing = ATOMIC_INIT(0);
+atomic_t g_vsim_scaning = ATOMIC_INIT(0);
 unsigned char g_vsim_psnet_stat = 0;
 unsigned char g_vsim_cid_reserved = 0;
 
@@ -251,6 +254,19 @@
 			return 0;
 		}
 		break;
+	case MSG_CMD_VSIM_GET_SCANING:
+		out_buf->usMsgCmd = MSG_CMD_VSIM_GET_SCANING;
+		out_buf->aucDataBuf[0] = atomic_read(&g_vsim_scaning);
+		out_buf->usDataLen = 1;
+		break;
+	case MSG_CMD_VSIM_SET_SCANING:
+		if(default_param == 0 || default_param == 1 || default_param == 2) {
+			atomic_set(&g_vsim_scaning, default_param);
+		}else{
+			printk("vsim_app_proc SET_SCANING=%d fail!\n",default_param);
+			return 0;
+		}
+		break;
 	default:
 		printk("vsim_app_proc fail msgid=%d!\n",msg_buf->usMsgCmd);
 		return 0;
@@ -280,9 +296,9 @@
 
 static int vsim_switch_seq_show(struct seq_file *s, void *v)
 {
-    seq_printf(s, "vsim state:%d standby:%d tauing:%d authing:%d datastat:%d msgflg:%d cid:%d-%d\n", 
-		atomic_read(&g_vsim_switch), atomic_read(&g_vsim_standby), atomic_read(&g_vsim_tauing), 
-		atomic_read(&g_vsim_authing), g_vsim_psnet_stat, g_vsim_msg_flag, g_vsim_cid_reserved, cid_reserved);
+    seq_printf(s, "vsim state:%d standby:%d tauing:%d authing:%d scaning:%d datastat:%d msgflg:%d cid:%d-%d\n", 
+		atomic_read(&g_vsim_switch), atomic_read(&g_vsim_standby), atomic_read(&g_vsim_tauing), atomic_read(&g_vsim_authing),
+		atomic_read(&g_vsim_scaning), g_vsim_psnet_stat, g_vsim_msg_flag, g_vsim_cid_reserved, cid_reserved);
     return 0;
 }
 
@@ -326,6 +342,11 @@
 	.write = vsim_switch_set,
 };
 
+int atio_is_scaning(void)
+{
+	return atomic_read(&g_vsim_scaning);
+}
+
 int atio_vsim_apdu_cfg(unsigned char*apdu_req, unsigned short apdu_req_len, unsigned char *apdu_rsp, unsigned short *apdu_rsp_len, unsigned char slot,unsigned char is_auth)
 {
 	VSIM_MSG_BUF in_msg = {0};
diff --git a/ap/os/linux/linux-3.4.x/drivers/soc/zte/rpm/icp_rpmsg.c b/ap/os/linux/linux-3.4.x/drivers/soc/zte/rpm/icp_rpmsg.c
index b4645a8..a1570ff 100644
--- a/ap/os/linux/linux-3.4.x/drivers/soc/zte/rpm/icp_rpmsg.c
+++ b/ap/os/linux/linux-3.4.x/drivers/soc/zte/rpm/icp_rpmsg.c
@@ -208,7 +208,7 @@
 	if (icp_rpmsg_get_buffer_type(actorID, chID) == CH_IRAM)
 		return (pa+iram_base_offset);
 	else
-#ifdef _USE_CAP_SYS
+#ifdef _USE_VEHICLE_DC
 		return (pa + ddr_base_offset);
 #else		
 		return (pa-ZX_RPMSG_DDR_BASE+ddr_base_offset);
@@ -702,6 +702,7 @@
 						pMsg->actorID,
 						pMsg->chID);
 
+		 dsb();
 		 channel_send->SendPos = rpmsg_resource[pMsg->actorID].sendPos[pMsg->chID];
 #else
 		RpMsg = (T_HalRpMsg_RpMsg *)(channel_send->SendPos + SendBase_remap);
@@ -794,6 +795,7 @@
 						pMsg->len,
 						pMsg->actorID,
 						pMsg->chID);
+		dsb();
 		channel_send->SendPos = rpmsg_resource[pMsg->actorID].sendPos[pMsg->chID];						
 #else
 		RpMsg = (T_HalRpMsg_RpMsg *)(channel_send->SendPos + SendBase_remap);
@@ -946,6 +948,41 @@
 #define	RPMSG_BUFFER_LEN		512
 static unsigned char rpmsg_cache_buffer[RPMSG_BUFFER_LEN];
 #endif
+#ifdef _USE_VEHICLE_DC
+struct trace_rpmsg {
+	T_HalRpMsg_ChInfo		channel_record;
+	T_HalRpMsg_MsgHeader	msg_header;
+	unsigned int 			remap;
+	T_ZDrvRpMsg_ChID 		chID;
+};
+#define	TRACE_RPMSG_COUNT	1000
+static struct trace_rpmsg trace_rpmsg_info[TRACE_RPMSG_COUNT+2];
+volatile unsigned int 	 trace_rpmsg_index = 0;
+
+#define	rpmsg_trace_index_inc()	\
+do{ \
+	trace_rpmsg_index++;\
+	if(trace_rpmsg_index>=TRACE_RPMSG_COUNT)\
+	   trace_rpmsg_index=0;\
+}while(0)
+
+static void dma_trace_record(T_ZDrvRpMsg_ChID chID, T_HalRpMsg_ChInfo *chan,
+						T_HalRpMsg_MsgHeader *header, unsigned int remap)
+{
+	if (chan)
+		trace_rpmsg_info[trace_rpmsg_index].channel_record = *chan;
+
+	if (header)
+		trace_rpmsg_info[trace_rpmsg_index].msg_header = *header;
+
+	trace_rpmsg_info[trace_rpmsg_index].remap = remap;
+	trace_rpmsg_info[trace_rpmsg_index].chID = chID;
+
+	rpmsg_trace_index_inc();
+}
+#else
+static void dma_trace_record(T_ZDrvRpMsg_ChID chID, T_HalRpMsg_ChInfo *chan, T_HalRpMsg_MsgHeader *header, unsigned int remap){}
+#endif
 int RpMsg_Dispatch(struct work_struct *work)
 {
 	unsigned int RecvBase_remap = 0;
@@ -1009,9 +1046,12 @@
 							   (unsigned char *)RecvBase_remap,
 							   sizeof(T_HalRpMsg_MsgHeader));
 
-				if (tmpMsgHeader.flag != RPMSG_MSGHEAD_FLAG)
+				dma_trace_record(chID, channel_recv, &tmpMsgHeader, RecvBase_remap);
+
+				if (tmpMsgHeader.flag != RPMSG_MSGHEAD_FLAG) {
 		//			return RPMSG_CHANNEL_MSG_ERR;
 					BUG();
+				}
 
 				if(RPMSG_BUFFER_LEN < tmpMsgHeader.len)
 					BUG();
@@ -1021,6 +1061,8 @@
 							   (unsigned char *)RecvBase_remap,
 							   tmpMsgHeader.len);
 
+				dma_trace_record(chID, channel_recv, &tmpMsgHeader, RecvBase_remap);
+
 				(*callback)(rpmsg_cache_buffer, tmpMsgHeader.len);
 #else	
 				RpMsg = (T_HalRpMsg_RpMsg *)(channel_recv->RecvPos + RecvBase_remap);
@@ -1211,7 +1253,7 @@
 	icp_rpmsg_drv->actorID 	   = pdev->id;
 	icp_rpmsg_drv->channel_cnt = pdata->max_channel_cnt;	
 
-#ifdef _USE_CAP_SYS
+#ifdef _USE_VEHICLE_DC
 	if(icp_rpmsg_drv->actorID == CAP_ID) {
 		ddr_base_offset = ZX_DDR_CAPBUF_BASE - ZX29_DDR_CAPBUF_PHYS;
 
@@ -1227,7 +1269,7 @@
 	icp_rpmsg_drv->Channel_config.CurIramSpace_Size = pdata->iram_send_size - icp_rpmsg_drv->channel_cnt * sizeof(T_HalRpMsg_ChInfo);
 	icp_rpmsg_drv->Channel_config.CurDdrAddr 		= (unsigned int)(pdata->ddr_send_base);
 	icp_rpmsg_drv->Channel_config.CurDdrSpace_Size 	= pdata->ddr_send_size;
-#ifdef _USE_CAP_SYS
+#ifdef _USE_VEHICLE_DC
 	}
 #endif
 
@@ -1271,7 +1313,7 @@
 		if(ret < 0)
 			printk("rpmsg_zx29 register failed! \n");
 
-#ifndef _USE_CAP_SYS
+#ifndef _USE_VEHICLE_DC
 		ddr_base_offset =  (unsigned int)ioremap(ZX_RPMSG_DDR_BASE, ICP_DDR_APPS_SIZE+ICP_DDR_PSAP_SIZE);
 #endif
 
@@ -1359,7 +1401,7 @@
 #endif
 
 #ifdef ICP_TEST_PS2AP
-#ifdef _USE_CAP_SYS
+#ifdef _USE_VEHICLE_DC
 static T_ZDrvRpMsg_ActorID test_actorID = CAP_ID;		/* test ps-->ap*/
 #else
 static T_ZDrvRpMsg_ActorID test_actorID = PS_ID;		/* test ps-->ap*/
@@ -1369,7 +1411,7 @@
 static T_ZDrvRpMsg_ActorID test_actorID = M0_ID;		/* test M0-->ap*/
 static T_ZDrvRpMsg_ChID test_chID = ICP_CHANNEL_PSM;
 #endif
-#ifdef _USE_CAP_SYS
+#ifdef _USE_VEHICLE_DC
 #define ZX297520V2_ICP_PSAP_REG 			(ZX_ICP_BASE + 0xf8)	/* ap-->ps */
 #else
 #define ZX297520V2_ICP_PSAP_REG 			(ZX_ICP_BASE + 0xc8)
@@ -1402,7 +1444,7 @@
 	    Icp_Msg.flag 	= RPMSG_WRITE_INT;		/* 1- means send an icp interrupt> */
 	    Icp_Msg.buf 	= tmp_buf;
 	    Icp_Msg.len 	= len;	
-#ifdef _USE_CAP_SYS
+#ifdef _USE_VEHICLE_DC
 		ret = zDrvRpMsg_Write_Cap(&Icp_Msg);
 #else
 		ret = zDrvRpMsg_Write(&Icp_Msg);
@@ -1442,7 +1484,7 @@
 	Icp_Msg.buf 	= test_rcv_buf;
 	Icp_Msg.len 	= len;	
 
-#ifdef _USE_CAP_SYS
+#ifdef _USE_VEHICLE_DC
 		ret = zDrvRpMsg_Write_Cap(&Icp_Msg);
 #else
 		ret = zDrvRpMsg_Write(&Icp_Msg);
@@ -1472,7 +1514,7 @@
 		Icp_Msg.buf 	= test_rcv_buf;
 		Icp_Msg.len 	= len;	
 
-#ifdef _USE_CAP_SYS
+#ifdef _USE_VEHICLE_DC
 		ret = zDrvRpMsg_Write_Cap(&Icp_Msg);
 #else
 		ret = zDrvRpMsg_Write(&Icp_Msg);
@@ -1498,7 +1540,7 @@
 #ifdef ICP_TEST_SELF_TXRX
 	T_HalRpMsg_ChInfo *channel = icp_rpmsg_get_channel_recv(test_actorID, test_chID);
 
-#ifdef _USE_CAP_SYS
+#ifdef _USE_VEHICLE_DC
 	channel->Base_Addr =  Icp_rpmsg_drvs[test_actorID]->Channel_config.CurDdrAddr - ICP_DDR_APPS_SIZE;//(u32)(Icp_rpmsg_drvs[test_actorID]->Channel_config.ChInfo_Recv_Base) + Icp_rpmsg_drvs[test_actorID]->channel_cnt*sizeof(T_HalRpMsg_ChInfo);
 #else
 	channel->Base_Addr =  Icp_rpmsg_drvs[test_actorID]->Channel_config.CurDdrAddr + ICP_DDR_APPS_SIZE;//(u32)(Icp_rpmsg_drvs[test_actorID]->Channel_config.ChInfo_Recv_Base) + Icp_rpmsg_drvs[test_actorID]->channel_cnt*sizeof(T_HalRpMsg_ChInfo);
@@ -1600,6 +1642,7 @@
 						pMsg->len,
 						pMsg->actorID,
 						pMsg->chID);
+		dsb();
 		channel_send->SendPos = rpmsg_resource[pMsg->actorID].sendPos[pMsg->chID];						
 #else
 		RpMsg = (T_HalRpMsg_RpMsg *)(channel_send->SendPos + SendBase_remap);
@@ -1654,7 +1697,7 @@
 	if(icp_test_cnt == 0)
 	{
 		/* create channel */
-#ifdef _USE_CAP_SYS
+#ifdef _USE_VEHICLE_DC
 		if(zDrvRpMsg_CreateChannel_Cap(test_actorID, test_chID, 0x30))
 #else
 		if(zDrvRpMsg_CreateChannel(test_actorID, test_chID, 0x30))
@@ -1665,7 +1708,7 @@
 		}
 		pr_info("[ICP_TEST] Success create psm icp channel!!! \n");	
 
-#ifdef _USE_CAP_SYS
+#ifdef _USE_VEHICLE_DC
 		zDrvRpMsg_RegCallBack_Cap(test_actorID, test_chID, icp_test_cb);
 #else
 		zDrvRpMsg_RegCallBack(test_actorID, test_chID, icp_test_cb);
diff --git a/ap/os/linux/linux-3.4.x/drivers/soc/zte/tsc/zx-tsc-strategy.c b/ap/os/linux/linux-3.4.x/drivers/soc/zte/tsc/zx-tsc-strategy.c
index c259d6b..5d74c58 100644
--- a/ap/os/linux/linux-3.4.x/drivers/soc/zte/tsc/zx-tsc-strategy.c
+++ b/ap/os/linux/linux-3.4.x/drivers/soc/zte/tsc/zx-tsc-strategy.c
@@ -62,11 +62,11 @@
 static  volatile u32 ps_freq_flag=0;

 

 struct timer_list timer_tsctrl;

-static u32 temp_percent = 0;

+static int temp_percent = 0;

 

 T_TsCtrl_CallbackFunction   s_tsctrl_callback[MAX_TSCTRL_STRATEGY_ID] = {NULL};

 

-typedef void (*T_Probe_Strategy)(u32 probe_num,u32 temperature );

+typedef void (*T_Probe_Strategy)(u32 probe_num,int temperature );

 T_Probe_Strategy g_probe_strategy[PROBE_MAX]={0,};

 

 T_TscP_Strategy g_phy_Strategy[STRATEGY_PHY_NUM]={

@@ -137,11 +137,11 @@
 

  * Others:	//not use

 ********************************************************************************/

-void tsctrl_probe_adc1_strategy(u32 probe_num,u32 temperature ) 

+void tsctrl_probe_adc1_strategy(u32 probe_num,int temperature ) 

 {	

 #if 1

-	u32  temp1=(temperature-TsNvData.Threshods[probe_num].THROSHOLD_3);

-	u32  temp2=(TsNvData.Threshods[probe_num].THROSHOLD_6-TsNvData.Threshods[probe_num].THROSHOLD_3);

+	int  temp1=(temperature-TsNvData.Threshods[probe_num].THROSHOLD_3);

+	int  temp2=(TsNvData.Threshods[probe_num].THROSHOLD_6-TsNvData.Threshods[probe_num].THROSHOLD_3);

 

 	if(temperature<=TsNvData.Threshods[probe_num].THROSHOLD_3){

 		temp_percent=0;	

@@ -246,11 +246,11 @@
 

  * Others:	//not use

 ********************************************************************************/

-void tsctrl_probe_adc2_strategy(u32 probe_num,u32 temperature ) 

+void tsctrl_probe_adc2_strategy(u32 probe_num,int temperature ) 

 {

 #if 1

-	u32  temp1=(temperature-TsNvData.Threshods[probe_num].THROSHOLD_3);

-	u32  temp2=(TsNvData.Threshods[probe_num].THROSHOLD_6-TsNvData.Threshods[probe_num].THROSHOLD_3);

+	int  temp1=(temperature-TsNvData.Threshods[probe_num].THROSHOLD_3);

+	int  temp2=(TsNvData.Threshods[probe_num].THROSHOLD_6-TsNvData.Threshods[probe_num].THROSHOLD_3);

 

 	if(temperature<=TsNvData.Threshods[probe_num].THROSHOLD_3){

 		temp_percent=0;	

@@ -355,11 +355,11 @@
 

  * Others:	//not use

 ********************************************************************************/

-void tsctrl_probe_adcRf_strategy(u32 probe_num,u32 temperature ) 

+void tsctrl_probe_adcRf_strategy(u32 probe_num,int temperature ) 

 {

 #if 1

-	u32  temp1=(temperature-TsNvData.Threshods[probe_num].THROSHOLD_3);

-	u32  temp2=(TsNvData.Threshods[probe_num].THROSHOLD_6-TsNvData.Threshods[probe_num].THROSHOLD_3);

+	int  temp1=(temperature-TsNvData.Threshods[probe_num].THROSHOLD_3);

+	int  temp2=(TsNvData.Threshods[probe_num].THROSHOLD_6-TsNvData.Threshods[probe_num].THROSHOLD_3);

 

 	if(temperature<=TsNvData.Threshods[probe_num].THROSHOLD_3){

 		temp_percent=0;	

@@ -464,7 +464,7 @@
 

  * Others:	//not use

 ********************************************************************************/

-static void tsctrl_set_probe_strategy(u32 probe_num,u32 temperature ) 

+static void tsctrl_set_probe_strategy(u32 probe_num,int temperature ) 

 {

 	if(PROBE_MAX!=probe_num && 0xFF!=temperature) {

 		g_probe_strategy[probe_num](probe_num, temperature);

@@ -690,6 +690,7 @@
 					if(zx_getspeed(0) != 624000 )

 						zx29_set_frequency(1,0); //zDrvPow_SetArmPsCoreFreq(CLK624M);

 						

+					tsc_set_reg_bits(TSCTRL_PS,BIT_PS_FREQ, BITS_FOR_PSIRAM,STRTEGY_STOP);

 					sc_debug_info_record(MODULE_ID_AP_TSC, "ps freq 624M start\n" );

 					tsc_print_log("ps freq 624M start\n");

 					ps_freq_flag=0;

@@ -698,6 +699,7 @@
 				if(!ps_freq_flag){

 					//tsc_print_log("CPU_FREQ1:zx_getspeed(0)=%d\n",zx_getspeed(0));	

 					zx29_set_frequency(0,1); //zDrvPow_SetArmPsCoreFreq(CLK312M);

+					tsc_set_reg_bits(TSCTRL_PS,BIT_PS_FREQ, BITS_FOR_PSIRAM,STRTEGY_START);					

 					sc_debug_info_record(MODULE_ID_AP_TSC, "ps freq 312M start\n" );

 					tsc_print_log("ps freq 312M start\n");

 					ps_freq_flag=1;

@@ -799,9 +801,9 @@
 {

 

 	u32  probe_num ;

-	u32  temperature ;

+	int  temperature ;

 

-	u32 TsDataValue[PROBE_NUM][PROBE_INFO] = {0};

+	int TsDataValue[PROBE_NUM][PROBE_INFO] = {0};

 

 	while(1)

 	{

@@ -934,7 +936,7 @@
 

  * Others:	//not use

 ********************************************************************************/

-VOID zDrvTsc_GetTscTempPercent(UINT32 *percent)

+VOID zDrvTsc_GetTscTempPercent(int *percent)

 {

 	*percent=temp_percent;

 	tsc_write_reg(TSCTRL_TEMP_PERCENT,temp_percent);

diff --git a/ap/os/linux/linux-3.4.x/drivers/soc/zte/tsc/zx-tsc.c b/ap/os/linux/linux-3.4.x/drivers/soc/zte/tsc/zx-tsc.c
index 144748c..e695587 100644
--- a/ap/os/linux/linux-3.4.x/drivers/soc/zte/tsc/zx-tsc.c
+++ b/ap/os/linux/linux-3.4.x/drivers/soc/zte/tsc/zx-tsc.c
@@ -52,16 +52,16 @@
 unsigned int tsc_record_flag= 0; 

 module_param(tsc_record_flag, uint, 0644);

 

-extern u32 ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER];

+extern int ts_temp_value_table[TS_ADC_TEMP_NUMBER][TS_ADC_TEMP_VOLTAGE_NUMBER];

 extern volatile u32 ts_adc_flag;

 

-u32 g_ts_data_info[PROBE_NUM][PROBE_INFO] = {0};

+int g_ts_data_info[PROBE_NUM][PROBE_INFO] = {0};

 

 static struct mutex tsc_mutexId;

 struct semaphore s_tsc_adc_semaphore;

 

 T_SYS_NV_TSC_CONFIG TsNvData = {0};

-unsigned int  tsc_tempValue[PROBE_MAX]={0};

+int  tsc_tempValue[PROBE_MAX]={0};

 

 struct kobject *zx_tsc_kobj;

 

@@ -100,7 +100,7 @@
 #ifndef USE_CPPS_KO

 extern UINT32 zOss_NvItemRead(UINT32 NvItemID, UINT8 * NvItemData, UINT32 NvItemLen);

 #endif

-static u32 tsc_adcRf_read(void);

+static int tsc_adcRf_read(void);

 

 void tsc_get_tempPercent(unsigned int *percent)

 {

@@ -171,7 +171,7 @@
   

   zte_tsc_attr(tsc_ptscCtrlEn);

 

- unsigned int *tsc_get_probe_temperature(void)

+ static  int *tsc_get_probe_temperature(void)

  {

 	 unsigned int i;

  

@@ -186,17 +186,17 @@
 			   char *buf)

  {

 	 char *s = buf;

-	 unsigned int *tsc_val = 0;

+	 int *tsc_val = 0;

 	 unsigned int i;

 	 

 	 tsc_val = tsc_get_probe_temperature();

 

-	memcpy((unsigned char *)buf, (unsigned char *)tsc_val, PROBE_MAX*sizeof(unsigned int));

+	memcpy((unsigned char *)buf, (unsigned char *)tsc_val, PROBE_MAX*sizeof(int));

 	for(i=0; i<PROBE_MAX;i++){

 		sprintf(s, "%d\n ", tsc_val[i]);

 		s+=4;

 	}

-	return PROBE_MAX*sizeof(unsigned int);

+	return PROBE_MAX*sizeof(int);

  }

  

  static ssize_t tsc_value_store(struct kobject *kobj, struct kobj_attribute *attr,

@@ -290,7 +290,7 @@
 

  * Others:	//not use

 ********************************************************************************/

-u32 tsc_nearest(u32 b[],u32 searchKey,u32 low,u32 high)

+u32 tsc_nearest(int b[],u32 searchKey,u32 low,u32 high)

 {

 	u32 middle = (u32)(low+high)/2;

 	u32 index;

@@ -316,7 +316,7 @@
 

  * Others:	//not use

 ********************************************************************************/

-static void tsc_get_probe_adcvalue(u32 adcValue, u32 *temp) 

+static void tsc_get_probe_adcvalue(u32 adcValue, int *temp) 

 {

 	u32 index = 0;

 

@@ -339,9 +339,10 @@
 	return dac;

 }

 

-static u32 tsc_adcRf_read(void)

+static int tsc_adcRf_read(void)

 {

-	u32	adcRfValue, tempRf;

+	u32	adcRfValue;

+	int tempRf;

 	

 	adcRfValue = tsc_dac_read(IRAM_TEMPCOMP_DAC); 

 	tsc_get_probe_adcvalue(adcRfValue,&tempRf);

@@ -354,12 +355,12 @@
 	u32 adc1Value = 0;

 	u32 adc2Value = 0;

 

-	u32 temp1 = 0;

-	u32 temp2 = 0;

+	int temp1 = 0;

+	int temp2 = 0;

 

 #if ADCRF_SEARCH_TEMP

 	u32 adcRfValue = 0;	

-	u32 tempRf = 0;

+	int tempRf = 0;

 #endif

 

 	while(1) {

@@ -400,7 +401,7 @@
 		tsc_unlock();		

 

 		if(g_tsc_print_log_debug)

-			tsc_print_log("adc1/adc2 value adc1Value=%d,adc2Value=%d,temp1 = %d.temp2 = %d.temprf = %d.\n",adc1Value,adc2Value,temp1,temp2, g_ts_data_info[PROBE_ADCRF][TS_MEMBER_TEMP]);

+			tsc_print_log("adc1/adc2 value adc1Value=%d,adc2Value=%d,adcRfValue=%d,temp1 = %d.temp2 = %d.temprf = %d.\n",adc1Value,adc2Value,adcRfValue,temp1,temp2, g_ts_data_info[PROBE_ADCRF][TS_MEMBER_TEMP]);

 

 		if((((tsc_record_time_cnt*TS_POLLING_TIME_S)%tsc_record_time)==0) && tsc_record_flag)

 		{

@@ -416,9 +417,9 @@
 				sc_debug_info_record(MODULE_ID_AP_TSC, "tempRf:%d\n", zx_read_reg(TSCTRL_TEMPADCRF) );

 				printk( "tempRf:%d\n", zx_read_reg(TSCTRL_TEMPADCRF));

 			}

-			tsc_record_time_cnt++;

 		}

-			

+		tsc_record_time_cnt++;

+		

 		 if(TsNvData.DetectEn == 0xB2)

 			up(&s_tsc_adc_semaphore);

 		 

@@ -615,7 +616,7 @@
 }

 

 /*get buffer first address*/

-void tsc_get_temp_data_info(u32 TsDataInfo[][PROBE_INFO])

+void tsc_get_temp_data_info(int TsDataInfo[][PROBE_INFO])

 {

     int i,j;

     tsc_lock();

diff --git a/ap/os/linux/linux-3.4.x/drivers/soc/zte/tsc/zx-tsc.h b/ap/os/linux/linux-3.4.x/drivers/soc/zte/tsc/zx-tsc.h
index f9651f6..2495258 100644
--- a/ap/os/linux/linux-3.4.x/drivers/soc/zte/tsc/zx-tsc.h
+++ b/ap/os/linux/linux-3.4.x/drivers/soc/zte/tsc/zx-tsc.h
@@ -94,7 +94,8 @@
 /*TSCTRL_PS iram ÿËÄbit±íʾPSµÄÒ»¸ö²ßÂÔÊÇ·ñÖ´ÐÐ*/
 #define  BIT_PS_RATE  						0
 #define  BIT_PS_ANYRESIDENT  				4
-#define  BIT_SHUTDOWN  						8
+#define  BIT_PS_FREQ  						8
+#define  BIT_SHUTDOWN  						12
 /**/
 //#define  STRATEGY_PERIP_NUM  	2
 #define  BITS_FOR_PEPIPIRAM				    4
@@ -173,7 +174,7 @@
 //#define  TS_ADC_TEMP_NUMBER   2
 //#define  TS_ADC_TEMP_VOLTAGE_NUMBER  110
 #define  TS_TEMP_NUMBER_SMALLEST   0
-#define  TS_TEMP_NUMBER_BIGGEST  96
+#define  TS_TEMP_NUMBER_BIGGEST  171
 
 #define TEMP_PERCENT_INTERVAL  (10) //ζȰٷֱȼä¸ô
 
@@ -201,7 +202,7 @@
 *                                           fuction extern 
 ****************************************************************************/
 void tsctrl_init(void);
-void tsc_get_temp_data_info(u32 TsDataInfo[][PROBE_INFO]);
+void tsc_get_temp_data_info(int TsDataInfo[][PROBE_INFO]);
 typedef void (* T_TsCtrl_CallbackFunction)( u8 en ); /*en:   1,Æô¶¯²ßÂÔ£¬0,Í£Ö¹²ßÂÔ; 2: hold ²ßÂÔ*/
 s32   zDrvTsCtrl_RegCallback(T_TsCtrl_Strategy_ModuleId  module,T_TsCtrl_CallbackFunction callback);
 s32   zDrvTsc_SetTscEn(u8 val);  //val:0xB2,οشò¿ª£» ÆäËûֵοعرÕ
diff --git a/ap/os/linux/linux-3.4.x/drivers/tty/serial/zx29_uart.c b/ap/os/linux/linux-3.4.x/drivers/tty/serial/zx29_uart.c
index c5f8d45..efe89a3 100755
--- a/ap/os/linux/linux-3.4.x/drivers/tty/serial/zx29_uart.c
+++ b/ap/os/linux/linux-3.4.x/drivers/tty/serial/zx29_uart.c
@@ -45,6 +45,7 @@
 #include <linux/wakelock.h>
 #include <linux/kthread.h>
 #include <linux/semaphore.h>
+#include <linux/notifier.h>
 
 #include "mach/zx29_uart_def.h"
 
@@ -59,7 +60,12 @@
 #pragma GCC optimize("O0")
 #endif
 
+extern bool xp2xp_Ap2CpIsApWakeup(void);
+#ifdef CONFIG_KERNEL_CONTROL_WAKEUP
+extern int xp2xp_enable_4line(void);
+#endif
 #define CONFIG_SERIAL_ZX29_DMA 1
+#define  __UART_TIME_  (cpu_clock(0)>>10)
 
 
 char uart_names[4][12] = {
@@ -71,7 +77,7 @@
 #if CONFIG_SERIAL_ZX29_DMA
 #define ZX29_DMA_BUFFER_SIZE PAGE_SIZE
 #define UART_DMA_RX_MAX_COUNT 2
-#define RX_DMA_TIMEOUT (HZ / 10)//60
+#define RX_DMA_TIMEOUT (HZ / 100)//60
 #define RX_DMA_WORK	1
 struct zx29_sgbuf {
 	struct scatterlist sg;
@@ -200,8 +206,14 @@
 		size_t sg2tty_len;
 	struct zx29_sgbuf	*curr_sg;
 
+	struct notifier_block wakeup_notifier;
 	
 #endif
+	//means application decide close and release DMA &wakelock
+	int app_ctrl;
+	int	    sleep_state;
+	//if  app_ctrl is set or using kernel control sleep,set this flag
+	int uart_power_mode;
 };
 
 
@@ -209,6 +221,102 @@
 static struct zx29_uart_port zx29_uart_ports[UART_NUM];
 
 #define	zx29_MAXPORTS	ARRAY_SIZE(zx29_uart_ports)
+void zx29_uart_stop_rx(struct uart_port *port);
+
+#if CONFIG_SERIAL_ZX29_DMA
+static inline bool zx29_dma_tx_start(struct zx29_uart_port *zup);
+static inline void zx29_dma_tx_stop(struct zx29_uart_port *zup);
+static bool zx29_dma_tx_irq(struct zx29_uart_port *zup);
+static int zx29_uart_dma_tx_chars(struct zx29_uart_port *zup);
+void uart_dma_rx_callback(void *data);
+static void zx29_uart_dma_rx_chars(struct zx29_uart_port *zup,
+											//u32 pending, bool use_buf_b, 
+											u32 pending, struct zx29_sgbuf *sgbuf, 
+											bool readfifo, unsigned long *flags);
+static inline void zx29_dma_rx_stop(struct zx29_uart_port *zup);
+static inline bool zx29_dma_rx_available(struct zx29_uart_port *zup);
+static inline bool zx29_dma_rx_running(struct zx29_uart_port *zup);
+static int zx29_dma_rx_trigger_dma(struct zx29_uart_port *zup);
+
+static void zx29_uart_rx_dma_chars(struct zx29_uart_port *zup, unsigned long *flags);
+dma_peripheral_id uart_get_rx_dma_peripheral_id(struct zx29_uart_port *zup);
+
+#if RX_DMA_WORK	
+static void zx29_uart_rx_timeout_chars(struct zx29_uart_port *zup, unsigned long *flags);
+static inline bool zx29_dma_rx_work_scheduled(struct zx29_uart_port *zup);
+
+static void zx29_uart_rt_dma(struct zx29_uart_port *zup, unsigned long *flags);
+#endif
+#endif
+
+typedef struct __UART_STATIC{
+	int cnt;
+	char head[16];
+	unsigned long long s_time;	
+	int func_step;
+	int ris;
+}uart_static;
+
+uart_static g_uart_static[256] = {0};
+int g_uart_static_cnt = 0;
+void test_uart_static(char *buf, int cnt, int steps, int index)
+{
+	if(index != UART0)
+		return;
+	
+	if(buf){
+		if(cnt >= 16){
+			strncpy(g_uart_static[g_uart_static_cnt].head, buf, 16);
+		}else{
+			memcpy(g_uart_static[g_uart_static_cnt].head, buf, cnt);
+		}
+	}
+	g_uart_static[g_uart_static_cnt].cnt = cnt;
+	g_uart_static[g_uart_static_cnt].s_time = __UART_TIME_;
+	g_uart_static[g_uart_static_cnt].func_step = steps;
+	g_uart_static[g_uart_static_cnt].ris = UART_GET_RIS(&zx29_uart_ports[0].port);
+	
+	if(++g_uart_static_cnt >= 256)
+		g_uart_static_cnt = 0;
+	
+}
+
+
+/*******************************************************************************
+* Function:	uart_wakeup_callback.
+* Description:	uart_wakeup_callback.
+* Parameters:
+*   Input:val:means wakeup or sleep notify to other device
+*
+*   Output:v:means devices been called return result
+*
+* Returns:  
+*
+* Others:
+********************************************************************************/
+int uart_wakeup_callback(struct notifier_block * nb, unsigned long val, void * v)
+{
+	int *call_result = (int *)v;
+	unsigned long flags = 0;
+	struct zx29_uart_port *zup = container_of(nb, struct zx29_uart_port, wakeup_notifier);
+	if(!zup || zup->port_close){
+		*call_result |= 0;
+		return 0;
+	}
+	raw_spin_lock_irqsave(&zup->port.lock, flags);
+	if(val == 1){//wakeup
+		zup->sleep_state = 0;
+		zx29_uart_rx_dma_chars(zup, &flags);
+
+	}else{//sleep
+		zup->sleep_state = 1;
+		zx29_uart_stop_rx(&zup->port);
+		
+	}
+	*call_result |= 0;
+	raw_spin_unlock_irqrestore(&zup->port.lock, flags);
+	return 0;
+}
 
 #ifdef _USE_VEHICLE_DC
 static void zx29_uart_console_putc(struct uart_port *port, const char c);
@@ -222,6 +330,54 @@
 	
 	raw_spin_lock_irqsave(&zup->port.lock, *flags);
 }
+
+int zx29_get_sleep_state(int uart_index)
+{
+	if(uart_index < 0 || uart_index > 2){
+		printk("invalid uart index\n");
+		return -1;
+	}
+	
+	return zx29_uart_ports[uart_index].sleep_state;	
+}
+EXPORT_SYMBOL_GPL(zx29_get_sleep_state);
+
+void zx29_set_sleep_state(int state, int uart_index)
+{
+	if(uart_index < 0 || uart_index > 2){
+		printk("invalid uart index\n");
+		return ;
+	}
+	printk(" uart %d, state change to:%d\n", uart_index, state);
+	zx29_uart_ports[uart_index].sleep_state = (state ? 1: 0);
+}
+EXPORT_SYMBOL_GPL(zx29_set_sleep_state);
+
+static ssize_t sleep_state_show(struct device *_dev,
+				struct device_attribute *attr, char *buf)
+{
+	struct platform_device *pdev = container_of(_dev, struct platform_device, dev);
+	struct zx29_uart_platdata *pdata = pdev->dev.platform_data;
+	
+	return sprintf(buf, "\n wakeup_enable = %d\n",pdata->uart_wakeup_enable);
+}
+
+static ssize_t sleep_state_store(struct device *_dev,
+				 struct device_attribute *attr,
+				 const char *buf, size_t count)
+{
+    uint32_t  flag = 0;
+	struct platform_device *pdev = container_of(_dev, struct platform_device, dev);
+	struct zx29_uart_platdata *pdata = pdev->dev.platform_data;
+	flag = simple_strtoul(buf, NULL, 16);
+    //pdata->uart_wakeup_enable = flag;	
+	zx29_uart_ports[pdev->id].sleep_state = (flag ? 1: 0);
+	return count;
+}
+
+DEVICE_ATTR(sleep_state, S_IRUGO | S_IWUSR, sleep_state_show,
+	    sleep_state_store);
+
 /**
 * Show the console_input attribute.
 */
@@ -299,6 +455,32 @@
 
 DEVICE_ATTR(wakeup_enable, S_IRUGO | S_IWUSR, wakeup_enable_show,
 	    wakeup_enable_store);
+
+static ssize_t app_ctrl_show(struct device *_dev,
+				struct device_attribute *attr, char *buf)
+{
+	struct platform_device *pdev = container_of(_dev, struct platform_device, dev);
+	//struct zx29_uart_platdata *pdata = pdev->dev.platform_data;
+	
+	return sprintf(buf, "%d\n",zx29_uart_ports[pdev->id].app_ctrl);
+}
+
+static ssize_t app_ctrl_store(struct device *_dev,
+				 struct device_attribute *attr,
+				 const char *buf, size_t count)
+{
+    uint32_t  flag = 0;
+	struct platform_device *pdev = container_of(_dev, struct platform_device, dev);
+	//struct zx29_uart_platdata *pdata = pdev->dev.platform_data;
+	flag = simple_strtoul(buf, NULL, 16);
+   // pdata->uart_wakeup_enable = flag;	
+	zx29_uart_ports[pdev->id].app_ctrl = (flag == 0) ? 0 : 1;
+   
+	return count;
+}
+DEVICE_ATTR(app_ctrl, S_IRUGO | S_IWUSR, app_ctrl_show,
+	    app_ctrl_store);
+
 int rxd_wake_cnt = 0;
 static ssize_t statics_show(struct device *_dev,
 				struct device_attribute *attr, char *buf)
@@ -460,32 +642,6 @@
 	    coreid_occupy_uart_store);
 #endif
 
-#if CONFIG_SERIAL_ZX29_DMA
-static inline bool zx29_dma_tx_start(struct zx29_uart_port *zup);
-static inline void zx29_dma_tx_stop(struct zx29_uart_port *zup);
-static bool zx29_dma_tx_irq(struct zx29_uart_port *zup);
-static int zx29_uart_dma_tx_chars(struct zx29_uart_port *zup);
-void uart_dma_rx_callback(void *data);
-static void zx29_uart_dma_rx_chars(struct zx29_uart_port *zup,
-											//u32 pending, bool use_buf_b, 
-											u32 pending, struct zx29_sgbuf *sgbuf, 
-											bool readfifo, unsigned long *flags);
-static inline void zx29_dma_rx_stop(struct zx29_uart_port *zup);
-static inline bool zx29_dma_rx_available(struct zx29_uart_port *zup);
-static inline bool zx29_dma_rx_running(struct zx29_uart_port *zup);
-static int zx29_dma_rx_trigger_dma(struct zx29_uart_port *zup);
-
-static void zx29_uart_rx_dma_chars(struct zx29_uart_port *zup, unsigned long *flags);
-dma_peripheral_id uart_get_rx_dma_peripheral_id(struct zx29_uart_port *zup);
-
-#if RX_DMA_WORK	
-static void zx29_uart_rx_timeout_chars(struct zx29_uart_port *zup, unsigned long *flags);
-static inline bool zx29_dma_rx_work_scheduled(struct zx29_uart_port *zup);
-
-static void zx29_uart_rt_dma(struct zx29_uart_port *zup, unsigned long *flags);
-#endif
-
-
 //extern int (*pm_callback_fn)(void);
 #ifdef CONFIG_CPU_IDLE
 typedef int (*pm_callback_fn)(void);
@@ -523,6 +679,8 @@
 	return 0;
 }
 #endif
+
+#if CONFIG_SERIAL_ZX29_DMA
 /****************************************************************************/
 #define ALIGN_DMA(size,align) (((unsigned int)(size)+align-1)&(~(align-1)))
 
@@ -777,7 +935,7 @@
 		pending = zup->sg2tty_len;
 		if(zx29_dma_rx_running(zup)){
 
-			
+			test_uart_static(NULL, 0, 10, zup->port.line);
 			uart_mod_timer(zup, &flags);
 		}	
 		/* Pick everything from the DMA first */
@@ -789,7 +947,7 @@
 			raw_spin_unlock_irqrestore(&zup->port.lock, flags);		
 			dma_count = tty_insert_flip_string(tty,
 							   zup->sg2tty->buf, pending);
-
+			test_uart_static(zup->sg2tty->buf, pending, 11, zup->port.line);
 			tty_flip_buffer_push(tty);
 
 			raw_spin_lock_irqsave(&zup->port.lock, flags);		
@@ -842,7 +1000,7 @@
 }
 
 /****************************************************************************/
-static void zx29_uart_stop_rx(struct uart_port *port)
+void zx29_uart_stop_rx(struct uart_port *port)
 {
 	struct zx29_uart_port *zup = container_of(port, struct zx29_uart_port, port);
 
@@ -889,7 +1047,7 @@
 	u32 status, ch, i = 0;
 	unsigned int flag, max_count = 256;
 	int fifotaken = 0;	
-	u32 uart_poll_char[6] ={0};
+	char uart_poll_char[16] ={0};
 
 	while (max_count--) {
 		status = UART_GET_FR(port);
@@ -946,6 +1104,9 @@
 		zup->port.icount.rx++;
               if(zup->autobaud_state == UART_PORT_AUTOBAUD_OFF) 
               {
+              if(fifotaken < 16){
+				uart_poll_char[fifotaken] = ch & 0xFF;
+              }
 		fifotaken++;
 
 		if (unlikely(ch & UART_DR_ERROR)) {
@@ -980,7 +1141,7 @@
 			}
 		}
 	}
-
+ test_uart_static(uart_poll_char, fifotaken, 6, zup->port.line);
 	return fifotaken;
 }
 
@@ -1234,15 +1395,7 @@
 
 	sgbuf = zup->dmarx.use_buf_b ?
 		&zup->dmarx.sgbuf_b : &zup->dmarx.sgbuf_a;
-	/*
-
-		sgbuf = zup->dmarx.use_buf_b ?
-			&zup->dmarx.sgbuf_a : &zup->dmarx.sgbuf_b;
-    */
-#if 0	
-	if(sgbuf == zup->curr_sg)
-		panic("commit the same sg\n");
-#endif	
+	
 	zup->dmarx.rx_def[zup->dmarx.rx_index].link_addr=0;
 	zup->dmarx.rx_def[zup->dmarx.rx_index].dest_addr=(unsigned int)(sgbuf->sg.dma_address);
 	zup->dmarx.rx_def[zup->dmarx.rx_index].count=ZX29_DMA_BUFFER_SIZE;//fifo or max buffer?
@@ -1274,7 +1427,8 @@
 	zup->dmacr |= UART_RXDMAE;
 	UART_PUT_DMACR(&zup->port, zup->dmacr);
 	zup->dmarx.running = true;
-	zup->imr &= ~UART_RXIM;
+	zup->dmarx.used = true;
+	zup->imr &= ~(UART_RXIM | UART_RTIM);
 	UART_PUT_IMSC(&zup->port,zup->imr);
 	return 0;
 }
@@ -1291,119 +1445,37 @@
 	bool lastbuf;
 	int dma_count = 0;
 
-#if 0	
-
-	struct zx29_sgbuf *sgbuf = dmarx->use_buf_b ?
-
-		&dmarx->sgbuf_b : &dmarx->sgbuf_a;
-
-#else
-
 	struct zx29_sgbuf *sgbuf = zup->curr_sg;
 
-#endif
-
 	size_t pending;
 
 	dma_peripheral_id rx_id = uart_get_rx_dma_peripheral_id(zup);
-		zx29_dma_stop(rx_id);
+	zx29_dma_stop(rx_id);
 
-		dev = zup->dmarx.chan->device->dev;
-		zup->dmacr &= ~UART_RXDMAE;
-		UART_PUT_DMACR(&zup->port,zup->dmacr);
-
-#if 1
-		raw_spin_lock_irqsave(&zup->port.lock, flags);
-
-
-
-		zup->sg2tty = sgbuf;
-
-		 
-
-		zup->sg2tty_len =  zup->sg2tty->sg.length - zx29_dma_get_transfer_num(rx_id);
-
-		dmarx->use_buf_b = ! dmarx->use_buf_b;
-
-			wmb();
-
-		//BUG_ON(pending > ZX29_DMA_BUFFER_SIZE);
-		/* Then we terminate the transfer - we now know our residue */
-		//dmaengine_terminate_all(rxchan);
-
-		zup->dmarx.running = false;
-		zup->dmarx.used = false;
+	dev = zup->dmarx.chan->device->dev;
+	zup->dmacr &= ~UART_RXDMAE;
+	UART_PUT_DMACR(&zup->port,zup->dmacr);
 	
-		if (zx29_dma_rx_trigger_dma(zup)) {
-			printk("rx_dma_chars RXDMA start fail\n");
-			zup->imr |= UART_RXIM;
-			UART_PUT_IMSC(&zup->port,zup->imr);
-		}else{
-			zup->pre_pending = 0;
-			zup->dmarx.used = true;
-			zup->work_state = true;
-		}
-		raw_spin_unlock_irqrestore(&zup->port.lock, flags);
-
-#endif
-#if 1	
-	up(&zup->sema);
-#else
-	struct zx29_dmarx_data *dmarx = &zup->dmarx;
-	struct dma_chan *rxchan = dmarx->chan;
-	bool lastbuf = dmarx->use_buf_b;
-	struct zx29_sgbuf *sgbuf = dmarx->use_buf_b ?
-		&dmarx->sgbuf_b : &dmarx->sgbuf_a;
-	size_t pending;
-	struct dma_tx_state state;
-	int ret;
-	unsigned long flags;
-	/*
-	 * This completion interrupt occurs typically when the
-	 * RX buffer is totally stuffed but no timeout has yet
-	 * occurred. When that happens, we just want the RX
-	 * routine to flush out the secondary DMA buffer while
-	 * we immediately trigger the next DMA job.
-	 */
 	raw_spin_lock_irqsave(&zup->port.lock, flags);
-	/*
-	 * Rx data can be taken by the UART interrupts during
-	 * the DMA irq handler. So we check the residue here.
-	 */
-	rxchan->device->device_tx_status(rxchan, dmarx->cookie, &state);
-	
-
-	pending = sgbuf->sg.length - state.residue;
-	BUG_ON(pending > ZX29_DMA_BUFFER_SIZE);
-	/* Then we terminate the transfer - we now know our residue */
-	//dmaengine_terminate_all(rxchan);
-
+	zup->sg2tty = sgbuf;
+	zup->sg2tty_len =  zup->sg2tty->sg.length - zx29_dma_get_transfer_num(rx_id);
+	dmarx->use_buf_b = ! dmarx->use_buf_b;
+	wmb();
 	zup->dmarx.running = false;
 	zup->dmarx.used = false;
-	dmarx->use_buf_b = !lastbuf;
-	//ret = zx29_dma_rx_trigger_dma(zup);
-
-	zx29_uart_dma_rx_chars(zup, pending, lastbuf, false, &flags);
-	zup->work_state = false;
-	zup->pre_pending = 0;	 
-	zup->imr |= UART_RXIM;
-	UART_PUT_IMSC(&zup->port, zup->imr);	
-	
-	raw_spin_unlock_irqrestore(&zup->port.lock, flags);
-#endif	
-	/*
-	 * Do this check after we picked the DMA chars so we don't
-	 * get some IRQ immediately from RX.
-	 */
-	 /*
-	if (ret) {
-		dev_dbg(zup->port.dev, "could not retrigger RX DMA job "
-			"fall back to interrupt mode\n");
+	test_uart_static(NULL, 0, 9, zup->port.line);
+	if (zx29_dma_rx_trigger_dma(zup)) {
+		printk("rx_dma_chars RXDMA start fail\n");
 		zup->imr |= UART_RXIM;
-		UART_PUT_IMSC(&zup->port, zup->imr);
-		//writew(uap->im, uap->port.membase + UART011_IMSC);
+		UART_PUT_IMSC(&zup->port,zup->imr);
+	}else{
+		zup->pre_pending = 0;
+		zup->dmarx.used = true;
+		zup->work_state = true;
 	}
-	*/
+	raw_spin_unlock_irqrestore(&zup->port.lock, flags);
+
+	up(&zup->sema);
 }
 
 static inline void zx29_dma_rx_stop(struct zx29_uart_port *zup)
@@ -1413,6 +1485,12 @@
 	zup->dmacr &= ~UART_RXDMAE;
 	UART_PUT_DMACR(&zup->port,zup->dmacr);
 	zx29_dma_stop(rx_id);
+#if 0	
+	//do we need check data received?
+	if(zup->pre_pending){
+		printk("pre_pending :%d\n ", zup->pre_pending);
+	}
+#endif		
 	 zup->curr_sg = NULL;
 }
 
@@ -1680,38 +1758,20 @@
 		dma_count = tty_insert_flip_string(zup->port.state->port.tty,
 						   sgbuf->buf, pending);
 	
+		test_uart_static(sgbuf->buf, pending, 4, zup->port.line);
 	raw_spin_lock_irqsave(&zup->port.lock, *flags);	 	
 		/* Return buffer to device */
 		dma_sync_sg_for_device(dev, &sgbuf->sg, 1, DMA_FROM_DEVICE);
 
 		zup->port.icount.rx += dma_count;
-
-			//if(zup->port.line == 0)
-		    //  printk("yanming uart_dma_rx_chars, dma2tty:%d\n", dma_count);			
+		
 		if (dma_count < pending)
 			dev_info(zup->port.dev,
 				 "couldn't insert all characters (TTY is full?)\n");
 	}
 
-	/*
-	 * Only continue with trying to read the FIFO if all DMA chars have
-	 * been taken first.
-	 */
-	//if (dma_count == pending && readfifo) {
-	if ((pending > 0) && readfifo) {
-		/* Clear any error flags */
-		//UART_PUT_ICR(&zup->port,UART_OEIC | UART_BEIC | UART_PEIC | UART_FEIC);
-		/*
-		 * If we read all the DMA'd characters, and we had an
-		 * incomplete buffer, that could be due to an rx error, or
-		 * maybe we just timed out. Read any pending chars and check
-		 * the error status.
-		 *
-		 * Error conditions will only occur in the FIFO, these will
-		 * trigger an immediate interrupt and stop the DMA job, so we
-		 * will always find the error in the FIFO, never in the DMA
-		 * buffer.
-		 */
+	if (readfifo) {
+		 test_uart_static(NULL, 0, 5, zup->port.line);
 		fifotaken = zx29_uart_fifo_to_tty(zup);
 			//if(zup->port.line == 0)
 		     // printk("yanming uart_dma_rx_chars, fifo2tty:%d\n", fifotaken);			
@@ -1723,6 +1783,51 @@
 	}
 }
 
+static void zx29_uart_deal_dma_fifo_rx_chars(struct zx29_uart_port *zup,
+											u32 pending, struct zx29_sgbuf *sgbuf,
+											unsigned long *flags, char *fifo_buf, int fifo_len)
+{
+	struct tty_struct *tty = zup->port.state->port.tty;
+
+	struct device *dev = zup->dmarx.chan->device->dev;
+	int dma_count = 0;
+	int fifo_count = 0;
+	u32 fifotaken = 0; /* only used for vdbg() */
+	if (pending) {
+		dma_sync_sg_for_cpu(dev, &sgbuf->sg, 1, DMA_FROM_DEVICE);
+		raw_spin_unlock_irqrestore(&zup->port.lock, *flags);
+		dma_count = tty_insert_flip_string(&zup->port.state->port,
+						   sgbuf->buf, pending);
+		test_uart_static(sgbuf->buf, pending, 6, zup->port.line);
+		raw_spin_lock_irqsave(&zup->port.lock, *flags);	 	
+		dma_sync_sg_for_device(dev, &sgbuf->sg, 1, DMA_FROM_DEVICE);
+		zup->port.icount.rx += dma_count;
+		if (dma_count < pending)
+			dev_info(zup->port.dev,
+				 "couldn't insert all characters (TTY is full?)\n");
+	}
+
+ 	if(fifo_len){
+		printk("qq >> fifo len %d.\n",fifo_len);
+		fifo_count = tty_insert_flip_string(&zup->port.state->port,
+						   fifo_buf, fifo_len);
+		printk("qq >>fifo count %d,buf is %x %x %x .\n",fifo_count, fifo_buf[0],fifo_buf[1],fifo_buf[2]);
+		fifo_buf[0] = '\0';
+		fifo_buf[1] = '\0';
+		fifo_buf[2] = '\0';
+		//memset(fifo_buf, '\0', 4);
+	}
+	
+	zup->port.icount.rx += fifo_count;
+	test_uart_static(fifo_buf, fifo_count, 18,zup->port.line);
+	if(pending > 0  || (fifo_len > 0)){
+		raw_spin_unlock(&zup->port.lock);
+		tty_flip_buffer_push(&zup->port.state->port);
+		raw_spin_lock(&zup->port.lock);
+	}
+}
+
+
 static void zx29_dma_rx_irq(struct zx29_uart_port *zup, unsigned long *flags)
 {
 	struct zx29_dmarx_data *dmarx = &zup->dmarx;
@@ -1809,7 +1914,7 @@
 		if (zx29_dma_rx_available(zup)) {
 			if (zx29_dma_rx_trigger_dma(zup)) {
 				printk("rx_dma_chars RXDMA start fail\n");
-				zup->imr |= UART_RXIM;
+				zup->imr |= UART_RXIM | UART_RTIM;
 				UART_PUT_IMSC(&zup->port,zup->imr);
 			}
 #if RX_DMA_WORK		
@@ -1838,20 +1943,8 @@
 	
 	int fr = UART_GET_FR(&zup->port);
 	//printk("rx_timeout_chars\n");
-#if 0	
-	if((fr & UART_FR_RXBUSY) || ((fr & UART_FR_RXFE)  == 0)){
-		zx29_uart_rx_dma_chars(zup, flags);
-		zup->dmarx.used = true;		
-		return;
-	}
-#endif	
+
 	rt_cnt = zx29_uart_fifo_to_tty(zup);
-#if 0
-	//if(rt_cnt >= zup->port.fifosize){
-		zx29_uart_rx_dma_chars(zup, flags);						
-		zup->dmarx.used = true;		
-	//}
-#endif	
 	if(rt_cnt){
 	if(g_console_open_flag == 1 || zup->port.line != DEBUG_CONSOLE){
 		raw_spin_unlock(&zup->port.lock);
@@ -1865,18 +1958,7 @@
 {
 	struct zx29_dmarx_data *dmarx = &zup->dmarx;
 	struct dma_chan *rxchan = dmarx->chan;
-
-#if 0	
-
-	struct zx29_sgbuf *sgbuf = dmarx->use_buf_b ?
-		&dmarx->sgbuf_b : &dmarx->sgbuf_a;
-
-#else
-
 	struct zx29_sgbuf *sgbuf = zup->curr_sg;
-
-#endif
-
 	size_t pending;
 	struct dma_tx_state state;
 	enum dma_status dmastat;
@@ -1933,6 +2015,7 @@
 		* This will take the chars we have so far and insert
 		* into the framework.
 		*/
+		test_uart_static(NULL, 0, 3, zup->port.line);
 		zx29_uart_dma_rx_chars(zup, pending, sgbuf, true, flags);
 	}
 
@@ -1958,16 +2041,16 @@
 #endif	
 
 }
+char g_fifo_residue_buf[4] = {'\0','\0','\0','\0'};
+char g_fifo_residue_all[20] = {0};
+unsigned char g_fifo_cnt = 0;
 static void zx29_uart_rx_dma_timeout(struct zx29_uart_port *zup)
 {
 	struct zx29_dmarx_data *dmarx = &zup->dmarx;
-
-
-
 	static bool dma_timeout_flag = false;
-
-	size_t pending;
+	size_t pending, tmp_len;
 	uint32_t ris_status = 0;
+	int cancel_timer = 0;
 	int sg_idx = (dmarx->use_buf_b ? 1 : 0);
 
 	unsigned long flags;
@@ -1975,94 +2058,131 @@
 
 	if(!zx29_dma_rx_running(zup))
 		return;
+	
 	raw_spin_lock_irqsave(&zup->port.lock, flags);	
 	if(zup->port_close || (zup->curr_sg == NULL)){
 		raw_spin_unlock_irqrestore(&zup->port.lock, flags);
 		return;
 	}
-		
+	if(zup->sg2tty)	{//dma complete now, later check again
+		raw_spin_unlock_irqrestore(&zup->port.lock, flags);
+		//zup->pre_pending = pending;
+		test_uart_static(NULL, 0, 14, zup->port.line);
+		mod_timer(&(zup->rx_dma_timer), jiffies + RX_DMA_TIMEOUT);	
+		return;
+	}
+	
 	sgbuf = zup->curr_sg;
 
 	dma_peripheral_id rx_id = uart_get_rx_dma_peripheral_id(zup);
 	pending = sgbuf->sg.length - zx29_dma_get_transfer_num(rx_id);
-	if(pending == zup->pre_pending){	
-
-	int fr = UART_GET_FR(&zup->port);	
-	//if RXBUSY,means data come again	
-
-	if((fr  & UART_FR_RXBUSY)){// || (( fr & UART_FR_RXFE)  == 0)){
-
-		printk("RXBUSY, data come again\n");
-
-		uart_mod_timer(zup, &flags);	
-
-		goto deal_end;
-
-	}	
-	zup->imr &= ~UART_RXIM;
-	UART_PUT_IMSC(&zup->port, zup->imr);
-
-	ris_status = UART_GET_RIS(&zup->port);
-	
-	if(ris_status & (UART_OEIS | UART_BEIS | UART_PEIS | UART_FEIS)){
-		if(ris_status & UART_OEIS){ 			   
-			zup->port.icount.overrun++;
-				//if(!uart_console(&zup->port))
-			//BUG_ON(1);
-		}
-		if(ris_status & UART_BEIS) 			 
-			zup->port.icount.brk++; 
-		if(ris_status & UART_PEIS)				  
-			zup->port.icount.parity++;			   
-		if(ris_status & UART_FEIS) 			  
-			zup->port.icount.frame++;
+	if(pending == zup->pre_pending){
+		int fr = UART_GET_FR(&zup->port);	
+		//RXBUSY,means data come again
+		if((fr  & UART_FR_RXBUSY)){// || (( fr & UART_FR_RXFE)  == 0)){			
+			uart_mod_timer(zup, &flags);	
+			test_uart_static(NULL, 0, 12, zup->port.line);
+			goto deal_end;
+		}	
 		
-		UART_PUT_ICR(&zup->port, (UART_OEIS | UART_BEIS | UART_PEIS | UART_FEIS));
-	}		
+		zup->imr &= ~UART_RXIM;
+		UART_PUT_IMSC(&zup->port, zup->imr);
 
+		ris_status = UART_GET_RIS(&zup->port);		
+		if(ris_status & (UART_OEIS | UART_BEIS | UART_PEIS | UART_FEIS)){
+			if(ris_status & UART_OEIS){ 			   
+				zup->port.icount.overrun++;
+				//if(!uart_console(&zup->port))
+					//BUG_ON(1);
+			}
+			if(ris_status & UART_BEIS) 			 
+				zup->port.icount.brk++; 
+			if(ris_status & UART_PEIS)				  
+				zup->port.icount.parity++;			   
+			if(ris_status & UART_FEIS) 			  
+				zup->port.icount.frame++;
+			
+			UART_PUT_ICR(&zup->port, (UART_OEIS | UART_BEIS | UART_PEIS | UART_FEIS));
+		}		
 
-
-
-
-		//if(zx29_dma_stop(rx_id))
-		//	printk("unable to pause DMA transfer\n");
-		/* Disable RX DMA - incoming data will wait in the FIFO */
 		zup->dmacr &= ~UART_RXDMAE;
 		UART_PUT_DMACR(&zup->port,zup->dmacr);
 		zx29_dma_stop(rx_id);
 		zup->dmarx.running = false;
 		zup->dmarx.used = false;
-
-		zup->imr |= (UART_RTIM|UART_RXIM);		
-		UART_PUT_IMSC(&zup->port, zup->imr);
-		pending = sgbuf->sg.length - zx29_dma_get_transfer_num(rx_id);
-		dmarx->use_buf_b = !dmarx->use_buf_b;
-		wmb();		
-		if(pending){
-			zx29_uart_dma_rx_chars(zup, pending, sgbuf, false, &flags);
-		}
-		zup->pre_pending = 0;
-		zup->work_state = false;
-		if((UART_GET_RIS(&zup->port) & (UART_RXIS | UART_RTIS))  || 
-			(UART_GET_FR(&zup->port) & UART_FR_RXBUSY)){
-			zup->imr &= ~(UART_RXIM);		
-			UART_PUT_IMSC(&zup->port, zup->imr);
-		//	zx29_dma_rx_irq(zup, &flags);	
+		int i;
 		
-			if (zx29_dma_rx_trigger_dma(zup)) {
-				printk("uart%d could not retrigger RX DMA job\n",zup->port.line);
-				zup->imr |= UART_RXIM;
-				UART_PUT_IMSC(&zup->port, zup->imr);
-#if RX_DMA_WORK		
+		
+		for(i= 0;i < 3;i++){
+			fr = UART_GET_FR(&zup->port);
+			if((fr & UART_FR_RXFE) == 0){
+				g_fifo_residue_buf[i] = UART_GET_CHAR(&zup->port) |	UART_DUMMY_DR_RX;
+				g_fifo_residue_all[g_fifo_cnt++] = g_fifo_residue_buf[i];
+				if(g_fifo_cnt >= 20)	g_fifo_cnt = 0;
+			}	
+			else
+				break;
+		}	
+		if(i){
+			g_fifo_residue_all[g_fifo_cnt++]=i;
+			if(g_fifo_cnt >= 20)	g_fifo_cnt = 0;
+		}
+
+		//zup->sg2tty = sgbuf;
+		tmp_len = sgbuf->sg.length - zx29_dma_get_transfer_num(rx_id);
+		
+		if(tmp_len != pending){
+			pending = tmp_len;
+		}
+		
+		dmarx->use_buf_b = !dmarx->use_buf_b;
+		wmb();
+		//when app ctrl sleep ,always start dma receive
+		if(zup->uart_power_mode){
+			if(zup->sleep_state == 0){
+				//now start dma again
+				if (zx29_dma_rx_trigger_dma(zup)) {
+					printk("rx_dma_chars RXDMA start fail\n");
+					zup->imr |= UART_RXIM;
+					UART_PUT_IMSC(&zup->port,zup->imr);
+				}else{
+					uart_mod_timer(zup, &flags);
+					zup->pre_pending = 0;
+					zup->dmarx.used = true;
+					zup->work_state = true;
+				}
+				
+				if(pending || (i > 0)){
+					test_uart_static(zup->port.line, NULL, 0, 13);
+					zx29_uart_deal_dma_fifo_rx_chars(zup, pending, sgbuf, &flags, g_fifo_residue_buf,i);
+				}						
 			}
-			else{
-			//	mod_timer(&(zup->rx_dma_timer), jiffies + RX_DMA_TIMEOUT);
-				uart_mod_timer(zup, &flags);
-				zup->pre_pending = 0;
-				zup->work_state = true;
-				zup->dmarx.used = true;
-				UART_PUT_ICR(&zup->port,(UART_RTIS|UART_RXIS));
-#endif					
+		}else{
+			//for normal mode, dma start only on rx busy after timeout came
+			if(pending || (( fr & UART_FR_RXFE)  == 0)){
+				test_uart_static(NULL, 0, 13, zup->port.line);
+				zx29_uart_dma_rx_chars(zup, pending, sgbuf, true, &flags);
+			}			
+			zup->imr |= (UART_RTIM|UART_RXIM);
+			UART_PUT_IMSC(&zup->port, zup->imr);
+			zup->pre_pending = 0;
+			zup->work_state = false;
+			if((UART_GET_RIS(&zup->port) & (UART_RXIS | UART_RTIS))  ||
+				(UART_GET_FR(&zup->port) & UART_FR_RXBUSY)){
+				zup->imr &= ~(UART_RXIM);
+				UART_PUT_IMSC(&zup->port, zup->imr);
+			
+				if (zx29_dma_rx_trigger_dma(zup)) {
+					printk("rx_dma_chars RXDMA start fail\n");
+					zup->imr |= (UART_RTIM|UART_RXIM);
+					UART_PUT_IMSC(&zup->port,zup->imr);
+				}else{
+					uart_mod_timer(zup, &flags);
+					zup->pre_pending = 0;
+					zup->dmarx.used = true;
+					zup->work_state = true;
+					UART_PUT_ICR(&zup->port,(UART_RTIS|UART_RXIS));
+				}	
 			}
 
 		}
@@ -2134,9 +2254,12 @@
 							zup->imr |= UART_RTIM;
 							UART_PUT_IMSC(port,zup->imr);
 						}
+						
+						test_uart_static(NULL, 0, 8, zup->port.line);
 						uart_mod_timer(zup, &flags);
 
 					}else{
+						test_uart_static(NULL, 0, 1, zup->port.line);
 						zx29_uart_rx_dma_chars(zup, &flags);
 						zup->dmarx.used = true;
 						//when RX&RT comes both, we trigger dma and add timer,so clear RT,waiting the timer
@@ -2150,9 +2273,11 @@
 				if (status & (UART_RTIS)){
 #if CONFIG_SERIAL_ZX29_DMA
 					if(!zx29_dma_rx_running(zup)){
+						test_uart_static(NULL, 0, 2, zup->port.line);
 						zx29_uart_rx_timeout_chars(zup, &flags);
 					}else{
-						UART_PUT_ICR(port, UART_RTIS);	
+						UART_PUT_ICR(port, UART_RTIS);
+						test_uart_static(NULL, 0, 7, zup->port.line);
 						zx29_uart_rt_dma(zup, &flags);
 					}
 #else
@@ -2345,18 +2470,23 @@
 	
 	/* Turn on DMA error (RX/TX will be enabled on demand) */
 
-	//zup->dmacr &= ~UART_DMAONERR;
-	zup->dmacr |= UART_DMAONERR;
+	zup->dmacr &= ~UART_DMAONERR;
+	//zup->dmacr |= UART_DMAONERR;
 	UART_PUT_DMACR(&zup->port, zup->dmacr);
-/*
-	if (zup->using_rx_dma) {
-		
-		printk(KERN_INFO "[%s][%d]\n",__func__,__LINE__);
-		if (zx29_dma_rx_trigger_dma(zup))
-			dev_dbg(zup->port.dev, "could not trigger initial "
-				"RX DMA job, fall back to interrupt mode\n");
+	if(zup->uart_power_mode){
+		if (zup->using_rx_dma) {		
+			//printk(KERN_INFO "[%s][%d]\n",__func__,__LINE__);
+			if (zx29_dma_rx_trigger_dma(zup)){
+				dev_dbg(zup->port.dev, "could not trigger initial "
+					"RX DMA job, fall back to interrupt mode\n");
+			}else{
+				mod_timer(&(zup->rx_dma_timer), jiffies + RX_DMA_TIMEOUT);
+				zup->pre_pending = 0;
+				zup->work_state = true;
+			}
+		}
 	}
-*/
+
 }
 
 
@@ -2405,6 +2535,15 @@
 		wmb();
 	
 	#endif
+	if(DEBUG_CONSOLE != pdev->id){
+		//app ctrl or kernel ctrl set this 
+		int kernel_ctrl = 0;
+#ifdef CONFIG_KERNEL_CONTROL_WAKEUP
+		kernel_ctrl = xp2xp_enable_4line();
+#endif		
+		zup->uart_power_mode = (kernel_ctrl | zup->app_ctrl);
+
+	}
 	//when open, clear last statistic info 
 	port->icount.brk = port->icount.buf_overrun = port->icount.frame = 0;
 	port->icount.overrun = port->icount.parity = port->icount.rng = 0;
@@ -2600,83 +2739,19 @@
 	raw_spin_lock_irqsave(&zup->port.lock, flags);
 	/* Clear out any spuriously appearing RX interrupts */
 	UART_PUT_ICR(port, (UART_RTIS | UART_RXIS));
-	
-	zup->imr = UART_RTIM | UART_RXIM;
-	UART_PUT_IMSC(port, zup->imr);
-
+	//when dma not running,set UART_RTIM | UART_RXIM
+	if(!zx29_dma_rx_running(zup)){
+		zup->imr = UART_RTIM | UART_RXIM;	
+		UART_PUT_IMSC(port, zup->imr);
+	}
+#if 0	
+	if(port->line == 2){
+		zup->imr = UART_RTIM;	
+		UART_PUT_IMSC(port, zup->imr);
+	}
+#endif		
 	zup->port_close = false;
 	raw_spin_unlock_irqrestore(&zup->port.lock, flags);	
-#if 0
-       if(zup->autobaud)
-       {  
-		//printk("enter autobaud \n");
-		zup->autobaud_state = UART_PORT_AUTOBAUD_ON;
-
-		if(pdev->id == UART1)
-			zup->baudrate = UART1_AUTOBAUD_RATE;
-		else
-			zup->baudrate = UART_AUTOBAUD_RATE;
-		
-		ibrd = port->uartclk  / (zup->baudrate <<4);
-		fbrd = ((port->uartclk % (zup->baudrate <<4) )*8 + zup->baudrate )/(2*zup->baudrate );		
-		UART_PUT_FBRD(port, fbrd);
-		UART_PUT_IBRD(port, ibrd);
-		lcr_h = UART_LCRH_WLEN_8 | UART_LCRH_FEN ;
-		old_cr = UART_GET_CR(port);
-		UART_PUT_CR(port, 0);
-		UART_PUT_LCRH(port, lcr_h);
-		UART_PUT_CR(port, old_cr);
-		msleep(1);
-	    
-		while(!uart_port_autobaud_suflag)
-		{
-			while(!uart_port_autobaud_gtflag)
-			{
-				msleep(2);
-			}
-
-			for(i=0;i<UART_AUTOBAUD_LEVEL;i++)
-			{
-				for(j=0;j<UART_AUTOBAUD_CHECKBYTE;j++)
-				{	
-					if((j ==0)&&(uart_port_autobaud_buffer[0] == UART_baud_check[i][j]))
-					{
-						j++;
-						if(uart_port_autobaud_buffer[1] == UART_baud_check[i][j])
-						{
-							zup->baudrate = UART_baud[i];
-							iflag = i;
-							uart_port_autobaud_suflag = 1;
-							break;
-						}
-					}
-					if((j ==2 )&&(uart_port_autobaud_buffer[0] == UART_baud_check[i][j]))
-					{
-						j++;
-						if(uart_port_autobaud_buffer[1] == UART_baud_check[i][j])
-						{
-							zup->baudrate = UART_baud[i];
-							iflag = i;
-							uart_port_autobaud_suflag = 1;
-							break;
-						}
-					}
-				}
-				if(uart_port_autobaud_suflag)
-				break;       
-			}
-
-			zup->port.icount.rx = 0; 
-			uart_port_autobaud_gtflag = 0;
-
-		}
-		uart_port_autobaud_suflag = 0;
-		tty->termios->c_cflag &= ~CBAUD;
-		tty->termios->c_cflag |= UART_termios_cflag[iflag];
-		tty->termios->c_ispeed  = zup->baudrate;
-		tty->termios->c_ospeed = zup->baudrate;
-	   }
-#endif	   
 	return 0;
 }
 
@@ -2695,7 +2770,7 @@
 	raw_spin_lock_irqsave(&port->lock, flags);
 #if RX_DMA_WORK
 	if(zx29_dma_rx_work_scheduled(zup)){
-		del_timer(&(zup->rx_dma_timer));
+		del_timer_sync(&(zup->rx_dma_timer));
 		zup->work_state = 0;
 	}
 #endif	
@@ -2995,44 +3070,25 @@
 	unsigned int offset=(unsigned int)(pdev->id);
 	struct clk *pclk=NULL;
 	struct clk *wclk=NULL;
-#if 0	
-//following code just a demo,may be we should use NEW_LINUX_FRAME
-#ifdef CONSOLE_UART0
-    /*  config uart apb_clk   */
-	if(pdev->id == DEBUG_CONSOLE)
-	{
-#if NEW_LINUX_FRAME	
-		pclk = clk_get(CONSOLE_NAME, "uart0_pclk");
-              wclk = clk_get(CONSOLE_NAME, "uart0_wclk");
-#else
-		pclk = clk_get_sys(CONSOLE_NAME, "apb_clk");
-		wclk = clk_get_sys(CONSOLE_NAME, "work_clk");
-#endif	
-	}
-	else if(pdev->id == UART1)	
-	{
-		pclk=clk_get_sys(UART1_NAME, "apb_clk");
-		wclk=clk_get_sys(UART1_NAME, "work_clk");
-	}else if(pdev->id == UART2)
-	{
-		pclk = clk_get_sys(UART2_NAME, "apb_clk");
-		wclk = clk_get_sys(UART2_NAME, "work_clk");
-	}
-#endif 
-
-#else
+	int ret = 0;
 
 	pclk = clk_get_sys(uart_names[pdev->id], "apb_clk");
 	wclk = clk_get_sys(uart_names[pdev->id], "work_clk");
 
-#endif	
 	if (IS_ERR(pclk))
 		panic("failed to get uart_pclk.\n");
 	zx29_port->busclk=pclk;   /*get apb clock*/ 
 	if (IS_ERR(wclk))
 		panic("failed to get uart_wclk.\n");
 	zx29_port->wclk=wclk;   /*get work clock*/ 
-	
+#if 0	
+	if(pdev->id == 0){
+		ret = clk_set_rate(wclk, 104 *1000 * 1000);
+		if(ret){
+			printk("change uart0 to 104M fail,%d\n", ret);
+		}
+	}
+#endif	
 	port->line = offset;
 	port->type = PORT_ZX29;
 	port->fifosize = UART_TXFIFO_SIZE;
@@ -3065,6 +3121,9 @@
 		/* enable uart work clock */
 		clk_prepare_enable(zx29_port->wclk);
    	}
+#ifdef CONFIG_KERNEL_CONTROL_WAKEUP
+	zx29_port->wakeup_notifier.notifier_call = uart_wakeup_callback;
+#endif
 
 }
 
@@ -3086,6 +3145,10 @@
 /****************************************************************************/
 static void zx29_uart_console_write(struct console *co, const char *s, unsigned int count)
 {
+#ifdef CONFIG_PREEMPT_RT_FULL
+	if(current->prio <= 62)
+		return;
+#endif
 	struct uart_port *port = &zx29_uart_ports[co->index].port;
 #if 0
 	if(!g_console_open_flag)
@@ -3103,7 +3166,7 @@
 #else
 static void zx29_uart_console_putc_share(struct uart_port *port, const char c)
 {
-	if(g_core_id_occupy_uart == SYMB_CAP_CORE_ID)
+	if((g_core_id_occupy_uart == SYMB_CAP_CORE_ID) && (g_up_init_done == 1))
 		return;
 	int ret = soft_spin_lock_printf(UART_SFLOCK);
 	if(ret)
@@ -3311,6 +3374,9 @@
 	if(pdev->id != DEBUG_CONSOLE){
 		error = device_create_file(&pdev->dev, &dev_attr_ctsrts_input);
 		error = device_create_file(&pdev->dev, &dev_attr_wakeup_enable);
+		error = device_create_file(&pdev->dev, &dev_attr_sleep_state);
+		error = device_create_file(&pdev->dev, &dev_attr_app_ctrl);
+		
 	}
 		error = device_create_file(&pdev->dev, &dev_attr_statics);
 	
diff --git a/ap/os/linux/linux-3.4.x/drivers/usb/dwc_otg/dwc_otg_pcd_intr.c b/ap/os/linux/linux-3.4.x/drivers/usb/dwc_otg/dwc_otg_pcd_intr.c
index 7c5c9e8..bb2f91f 100644
--- a/ap/os/linux/linux-3.4.x/drivers/usb/dwc_otg/dwc_otg_pcd_intr.c
+++ b/ap/os/linux/linux-3.4.x/drivers/usb/dwc_otg/dwc_otg_pcd_intr.c
@@ -618,6 +618,11 @@
 	dsts.d32 = DWC_READ_REG32(&core_if->dev_if->dev_global_regs->dsts);	
 	USBHAL_DBG("usb suspend");
 
+	/* Clear interrupt */
+	gintsts.d32 = 0;
+	gintsts.b.usbsuspend = 1;
+	DWC_WRITE_REG32(&core_if->core_global_regs->gintsts, gintsts.d32);
+	
 #if 1
 //copy from dwc2
 	if(!dsts.b.suspsts){
@@ -634,11 +639,6 @@
         Ep_Reset_InEndpoint(core_if,i);
 	}
     #endif
-	/* Clear interrupt */
-	gintsts.d32 = 0;
-	gintsts.b.usbsuspend = 1;
-	DWC_WRITE_REG32(&core_if->core_global_regs->gintsts, gintsts.d32);
-	
 	/* PCD callback for suspend. Release the lock inside of callback function */
 	cil_pcd_suspend(core_if);
 	dcfg.d32 = DWC_READ_REG32(&core_if->dev_if->dev_global_regs->dcfg);
diff --git a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/adb_server.c b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/adb_server.c
index 832c5e8..8bd460f 100644
--- a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/adb_server.c
+++ b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/adb_server.c
@@ -28,6 +28,7 @@
 #include <linux/miscdevice.h>
 #include <linux/soc/zte/rpm/rpmsg.h>
 #include <linux/soc/zte/rpm/icp.h>
+#include <linux/android_notify.h>
 
 #define ADB_BULK_BUFFER_SIZE           4096
 #define ADB_AGENT_BUF_SIZE           640
@@ -36,6 +37,7 @@
 
  struct adb_dev *g_adb_agent;
 ssize_t adb_server_write2usb( const char *buf,size_t count);
+extern void usb_rpmsg_notify_ap(usb_rpmsg_cmd *notify, int has_param);
 
 void adb_recv_from_ap(void *buf, unsigned int len)
 {
@@ -341,7 +343,17 @@
 	return 0;
 }
 #endif
-static int adb_agent_close(void)
+
+void adb_agent_dequeue_rx(struct adb_dev *dev)
+{
+	
+	if (dev->agent_start){
+		printk("adb_agent_dequeue_rx  agent_start  dequeue\n");
+		usb_ep_dequeue(dev->ep_out, dev->rx_req);
+		
+	}		
+}
+int adb_agent_close(void)
 {
 	int ret;
 	//pr_info("adb_release\n");
@@ -390,7 +402,8 @@
 			WARN_ON(1);
 		}		
 	}
-	//adb_unlock(&g_adb_agent->open_excl);
+	if(atomic_read(&g_adb_agent->open_excl))
+		adb_unlock(&g_adb_agent->open_excl);
 	return 0;
 }
 
@@ -419,16 +432,19 @@
 		USBSTACK_DBG("adb_agent_monitor_thread,got, agent_switch:%d, agent_state:%d\n", 
 			atomic_read(&dev->agent_switch), dev->agent_state);
 		atomic_set(&dev->agent_switch, 0);
-		if(dev->agent_state){//enable agent		
+		if(dev->agent_state){//enable agent				
+			adb_server_plug_notify(USB_RPMSG_NOTIFY_ADB_ONLINE);
 			dev->agent_start = 1;	
 			dev->agt_error = 0;
 			//wake_up(&dev->agt_start_wait);
 		//wakeup adb read and return	
-		dev->rx_done = 1;
-		wake_up(&dev->read_wq);
+		//dev->rx_done = 1;
+		//wake_up(&dev->read_wq);
+			adb_agent_dequeue_rx(dev);
 		}else{	
 			//dev->agent_start = 0;
 			//disable agent
+			adb_server_plug_notify(USB_RPMSG_NOTIFY_ADB_OFFLINE);
 			adb_agent_close();
 		}
 		
@@ -453,10 +469,11 @@
 {
 	if(!g_adb_agent){
 		printk("adb_enable_rpmsg_agent, adb is NULL, fail\n");
+		return -1;
 	}
 	g_adb_agent->agent_state = ((flag != 0) ? 1 : 0);
 	atomic_set(&g_adb_agent->agent_switch, 1);
-	USBSTACK_DBG("adb_enable_rpmsg_agent,now %s adb agent\n", (g_adb_agent->agent_state == 1) ? "start" : "stop");
+	printk("adb_enable_rpmsg_agent,now %s adb agent\n", (g_adb_agent->agent_state == 1) ? "start" : "stop");
 	//do switch agent in monitor thread
 	wake_up(&g_adb_agent->agent_monitor_wq);
 	return 0;
@@ -518,7 +535,7 @@
 			printk("rpmsg_recv ep-queue fail ret:%d", r);
 			goto done;
 		} else {
-			pr_debug("rx %p queue\n", req);
+			USBSTACK_DBG("rx %p queue\n", req);
 		}
 		atomic_set(&dev->agt_read_flag, 1);
 		
@@ -533,7 +550,7 @@
 				dev->agt_error = 1;
 			r = ret;
 			usb_ep_dequeue(dev->ep_out, req);
-			printk("rpmsg_recv stop ret: 0x%x", ret);
+			USBSTACK_DBG("rpmsg_recv stop ret: 0x%x", ret);
 			goto done;
 		}
 		if (!dev->agt_error) {
@@ -547,7 +564,7 @@
 				printk("rpmsg_recv actual is 0, requeue_req again\n");				
 				goto requeue_req;
 			}
-			USBSTACK_DBG("rpmsg_recv rx %p actual:%d\n", req, req->actual);
+			printk("rpmsg_recv rx %p actual:%d\n", req, req->actual);
 			
 			xfer = req->actual;
 			r = adb_rpmsg_write2ap(req->buf, xfer);
@@ -562,7 +579,7 @@
 				r = -EIO;
 				dev->rx_done = 0;
 			}else{
-				USBSTACK_DBG("adb_rpmsg_write wake_up agt_read_wq, len:%d, status:%d\n", req->actual, req->status);
+				printk("adb_rpmsg_write wake_up agt_read_wq, len:%d, status:%d\n", req->actual, req->status);
 			
 				wake_up(&dev->agt_read_wq);
 			}
@@ -577,7 +594,13 @@
 	}
 }
 
-
+void adb_server_plug_notify(e_usb_rpmsg_cmd_type plug_type)
+{
+	usb_rpmsg_cmd notify; 
+	memset(&notify, 0, sizeof(notify));
+	notify.cmd = plug_type;
+	usb_rpmsg_notify_ap(&notify, 0);
+}
 
 int adb_server_init(struct adb_dev *dev)
 {
diff --git a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/android.c b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/android.c
index 1ec687f..4a2e122 100755
--- a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/android.c
+++ b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/android.c
@@ -265,6 +265,7 @@
 				zDrvNand_WriteBootflag(1);
 #endif
 				usb_notify_up(USB_SWITCH_DEBUG,NULL);
+				usb_record_dbginfo(USB_SWITCH_TO_DEBUG, 0, 0);
 			}
 			break;
 			
@@ -287,14 +288,17 @@
 			zDrvNand_WriteBootflag(1);
 #endif
 			usb_notify_up(USB_SWITCH_USER, NULL);
+				usb_record_dbginfo(USB_SWITCH_TO_USER, 0, 0);
 			break;
 
 		case USB_SWITCH_to_FACTORY:
 			usb_notify_up(USB_SWITCH_FACTORY, NULL);
+				usb_record_dbginfo(USB_SWITCH_TO_FACTORY, 0, 0);
 			break;
 
 		case USB_SWITCH_to_AMT:
 			usb_notify_up(USB_SWITCH_AMT, NULL);
+				usb_record_dbginfo(USB_SWITCH_TO_AMT, 0, 0);
 			break;
 		case USB_SWITCH_to_EYE_DIAGRAM:
 			usb_notify_up(USB_SWITCH_EYE_DIAGRAM, NULL);
@@ -3132,7 +3136,39 @@
 			
 			break;
 			//usb_set_rpmsg_resp(t_cmd->cmd, usb_resp);
-		//case:
+		case USB_RPMSG_GET_USB_ENUM_MODE:
+			t_resp->cmd = USB_RPMSG_GET_USB_ENUM_MODE;
+			switch(usb_cur_enum_mode){
+				case USB_ENUM_MODE_DEBUG:
+					sprintf(t_resp->param, "%s\n","debug mode");
+					
+					break;
+				case USB_ENUM_MODE_USER:
+					sprintf(t_resp->param, "%s\n","user mode");
+					
+					break;
+				case USB_ENUM_MODE_FACTORY:
+					sprintf(t_resp->param, "%s\n","factory mode");
+					
+					break;
+				case USB_ENUM_MODE_AMT:
+					sprintf(t_resp->param, "%s\n","amt mode");					
+					break;
+				case USB_ENUM_MODE_EYE_DIAGRAM:
+					sprintf(t_resp->param, "%s\n","eye test mode");					
+					break;
+				default:
+					sprintf(t_resp->param, "%s\n","invalid mode");
+					break;
+						
+			}			
+			
+			break;
+		//case :
+		//	break;
+		//case :
+		//	break;
+		//case :
 		//	break;
 		default:
 			break;
diff --git a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/f_adb.c b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/f_adb.c
index 0a0bb6d..4c263e6 100644
--- a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/f_adb.c
+++ b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/f_adb.c
@@ -28,6 +28,7 @@
 #include <linux/miscdevice.h>
 #ifdef _USE_VEHICLE_DC
 #include <linux/soc/zte/rpm/rpmsg.h>
+#include <linux/android_notify.h>
 #endif
 #define ADB_BULK_BUFFER_SIZE           4096
 
@@ -35,6 +36,9 @@
 #define TX_REQ_MAX 4
 #ifdef _USE_VEHICLE_DC
 extern int adb_rpmsg_write2ap(void *buf, unsigned int len);
+extern int adb_agent_close(void);
+extern void adb_server_plug_notify(e_usb_rpmsg_cmd_type plug_type);
+
 #endif
 
 static const char adb_shortname[] = "android_adb";
@@ -350,7 +354,7 @@
 		if (ret < 0) {
 			if (ret != -ERESTARTSYS)
 				dev->error = 1;
-			printk("adb_read wait agt_read_wq fail ret: 0x%x", ret);
+			USBSTACK_DBG("adb_read wait agt_read_wq fail ret: 0x%x", ret);
 			goto done;
 		}
 		
@@ -369,7 +373,7 @@
 	req->length = count;
 	dev->rx_done = 0;
 	if(!dev->online){
-		printk("adb_read dev is offline\n");
+		USBSTACK_DBG("adb_read dev is offline\n");
 		r = -EIO;
 		goto done;
 	}
@@ -379,7 +383,7 @@
 		pr_debug("adb_read: failed to queue req %p (%d)\n", req, ret);
 		r = -EIO;
 		dev->error = 1;
-		printk("adb_read ep-queue fail ret:%d", r);
+		USBSTACK_DBG("adb_read ep-queue fail ret:%d", r);
 		goto done;
 	} else {
 		pr_debug("rx %p queue\n", req);
@@ -396,7 +400,7 @@
 			dev->error = 1;
 		r = ret;
 		usb_ep_dequeue(dev->ep_out, req);
-		printk("adb_read stop ret: 0x%x", ret);
+		USBSTACK_DBG("adb_read stop ret: 0x%x", ret);
 		goto done;
 	}
 
@@ -405,7 +409,7 @@
 #endif	
 	if (!dev->error) {
 		if(!dev->online){
-			printk("adb_read dev is offline cannot requeue req\n");
+			USBSTACK_DBG("adb_read dev is offline cannot requeue req\n");
 			r = -EIO;
 			goto done;
 		}
@@ -420,6 +424,7 @@
 			goto requeue_req;
 		}
 		USBSTACK_DBG("adb_read rx %p len:%d\n", req, req->actual);
+		
 		xfer = (req->actual < count) ? req->actual : count;
 #ifdef _USE_VEHICLE_DC
 		r = xfer;
@@ -432,7 +437,7 @@
 			r = -EFAULT;
 
 	} else{
-		printk("adb_read fail %d", r);
+		USBSTACK_DBG("adb_read fail %d", r);
 		r = -EIO;
 	}
 
@@ -490,7 +495,7 @@
 			break;
 		}
 		if(dev->error){
-			printk("get an err, break write\n");
+			USBSTACK_DBG("get an err, break write\n");
 			r = -EIO;
 			break;			
 		}
@@ -543,9 +548,10 @@
 	}
 #endif	
 	USBSTACK_DBG("%s", __func__);
-	if (adb_lock(&_adb_dev->open_excl))
+	if (adb_lock(&_adb_dev->open_excl)){
+		printk("\n adb_open,open_excl:%d\n", atomic_read(&_adb_dev->open_excl));
 		return -EBUSY;
-
+	}
 	fp->private_data = _adb_dev;
 
 	/* clear the error latch */
@@ -557,7 +563,9 @@
 		_adb_dev->online = 1;
 		wake_up(&_adb_dev->read_wq);
 	}
+	usb_record_dbginfo(USB_DEV_OPEN, 0, 3);
 
+	printk("\n adb_open--ok--exit\n");
 	return 0;
 }
 
@@ -583,7 +591,8 @@
 			WARN_ON(1);
 		}		
 	}
-	//if(atomic_read(&_adb_dev->read_excl)){		
+	if(atomic_read(&_adb_dev->read_excl)){	
+	//if(_adb_dev->ep_out){
 		printk("adb_release, disable and reenable ep_out\n");
 		ret = usb_ep_disable(_adb_dev->ep_out);
 		if(ret){
@@ -596,8 +605,10 @@
 			WARN_ON(1);
 		}
 
+	}
+	if(atomic_read(&_adb_dev->read_excl))
 		adb_unlock(&_adb_dev->open_excl);
-	//}
+	
 #ifdef _USE_VEHICLE_DC	
 	if(_adb_dev->agent_state){
 		wake_up(&_adb_dev->agt_start_wait);
@@ -606,6 +617,7 @@
 	}
 #endif	
 
+	usb_record_dbginfo(USB_DEV_CLOSE, 0, 3);
 	return 0;
 }
 
@@ -711,6 +723,11 @@
 		usb_ep_disable(dev->ep_in);
 		return ret;
 	}
+#ifdef _USE_VEHICLE_DC	
+	//maybe need clear adb server state
+	adb_agent_close();	
+#endif
+	schedule_work(&dev->online_inform);
 
 	if(adb_lock(&dev->enable_excl))
 		return 0;
@@ -748,6 +765,15 @@
 	usb_ep_disable(dev->ep_in);
 	usb_ep_disable(dev->ep_out);
 
+
+#ifdef _USE_VEHICLE_DC
+	adb_server_plug_notify(USB_RPMSG_NOTIFY_ADB_OFFLINE);
+	dev->agent_start = 0;
+	dev->agent_state = 0;
+	dev->agt_error = 0;	
+#endif	
+	
+	schedule_work(&dev->offline_inform);
 	/* readers may be blocked waiting for us to go online */
 	wake_up(&dev->read_wq);
 
@@ -766,6 +792,7 @@
 	dev->suspend_state = 1;
 //	adb_function_disable(f);
 	usb_ep_disable(dev->ep_in);
+	usb_record_dbginfo(USB_DEV_SUSPEND, 0, 3);
 //	usb_ep_disable(dev->ep_out);
 }
 static void adb_function_resume(struct usb_function *f)
@@ -780,6 +807,7 @@
 	usb_ep_resume_enable(dev->ep_in);
 //	usb_ep_enable(dev->ep_out);
 	dev->suspend_state = 0;
+	usb_record_dbginfo(USB_DEV_RESUME, 0, 3);
 }
 #endif
 static int adb_bind_config(struct usb_configuration *c)
@@ -807,15 +835,18 @@
 void adb_online_inform_work(struct work_struct *work)
 {
 	struct adb_dev	*dev = container_of(work, struct adb_dev, online_inform);
-
+	printk("adb_online_inform_work\n");
 	kobject_uevent(&adb_device.this_device->kobj, KOBJ_ONLINE);
+	usb_record_dbginfo(USB_DEV_ONLINE, 0, 3);
 }
 
 void adb_offline_inform_work(struct work_struct *work)
 {
 	struct adb_dev	*dev = container_of(work, struct adb_dev, offline_inform);
+	printk("adb_offline_inform_work\n");
 
 	kobject_uevent(&adb_device.this_device->kobj,  KOBJ_OFFLINE);
+	usb_record_dbginfo(USB_DEV_OFFLINE, 0, 3);
 }
 
 
diff --git a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/f_ecm.c b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/f_ecm.c
index bd0914d..cef826d 100755
--- a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/f_ecm.c
+++ b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/f_ecm.c
@@ -696,6 +696,7 @@
 //	usb_ep_disable((&ecm->port)->out_ep);
     usb_ep_disable(ecm->notify);
     gether_uevent_eth_ecm(&ecm->port,0);
+	usb_record_dbginfo(USB_DEV_SUSPEND, 0, 1);
 }
 
 static void ecm_resume(struct usb_function *f)
@@ -714,6 +715,7 @@
 //    usb_ep_enable((&ecm->port)->out_ep);
     ecm->port.suspend_state = 0;
 	gether_uevent_eth_ecm(&ecm->port,1);
+	usb_record_dbginfo(USB_DEV_RESUME, 0, 1);
 }
 #endif
 
diff --git a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/f_rndis.c b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/f_rndis.c
index d58b4c6..0cfd7b3 100755
--- a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/f_rndis.c
+++ b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/f_rndis.c
@@ -691,6 +691,7 @@
 //    usb_ep_disable((&rndis->port)->out_ep);
 	usb_ep_disable(rndis->notify);
     gether_uevent_eth_rndis(&rndis->port);
+	usb_record_dbginfo(USB_DEV_SUSPEND, 0, 1);
 }
 static void rndis_resume(struct usb_function *f)
 {
@@ -709,6 +710,7 @@
     usb_ep_resume_enable((&rndis->port)->in_ep);
 //    usb_ep_enable((&rndis->port)->out_ep);
 	rndis->port.suspend_state = 0;
+	usb_record_dbginfo(USB_DEV_RESUME, 0, 1);
 }
 #endif
 /*-------------------------------------------------------------------------*/
diff --git a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/f_serial.c b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/f_serial.c
index bdabc1f..27d2e71 100644
--- a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/f_serial.c
+++ b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/f_serial.c
@@ -214,6 +214,7 @@
     gser->port.suspend_state = 1;
 //    usb_ep_disable((&gser->port)->out);	
     usb_ep_disable((&gser->port)->in);
+	usb_record_dbginfo(USB_DEV_SUSPEND, 0, 2);
 }
 static void gser_resume(struct usb_function *f)
 {
@@ -229,6 +230,7 @@
 //    usb_ep_enable((&gser->port)->out);
  	gserial_connect_ext(&gser->port);
 	gser->port.suspend_state = 0;
+	usb_record_dbginfo(USB_DEV_RESUME, 0, 2);
 }
 #endif
 
diff --git a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/u_ether.c b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/u_ether.c
index c910279..5f9d709 100755
--- a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/u_ether.c
+++ b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/u_ether.c
@@ -614,10 +614,12 @@
 	if(dev->eth_state == 1){
 		kobject_uevent(&dev->net->dev.kobj, KOBJ_ONLINE);
 		dev->work_state = 1;
+	usb_record_dbginfo(USB_DEV_ONLINE, 0, 1);
 	}
 	else{
 		dev->work_state = 0;
 		kobject_uevent(&dev->net->dev.kobj, KOBJ_OFFLINE);
+	usb_record_dbginfo(USB_DEV_OFFLINE, 0, 1);
 	}
 
 	usb_printk("%s:%d Ether uevent %d %s\n", __func__, __LINE__, (dev->eth_state), (dev->eth_state) ? "ONLINE":"OFFLINE");
@@ -935,6 +937,7 @@
 	if (link && link->open)
 		link->open(link);
 	spin_unlock_irq(&dev->lock);
+	usb_record_dbginfo(USB_DEV_OPEN, 0, 1);
 
 	return 0;
 }
@@ -992,6 +995,7 @@
 
 	}
 	spin_unlock_irqrestore(&dev->lock, flags);
+	usb_record_dbginfo(USB_DEV_CLOSE, 0, 1);
 
 	return 0;
 }
diff --git a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/u_serial.c b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/u_serial.c
index 978a1b0..b2ab988 100644
--- a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/u_serial.c
+++ b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/u_serial.c
@@ -176,6 +176,7 @@
 		g_bUsbDevHotAdd[port->port_num] = true;
 	#endif
 #endif
+	usb_record_dbginfo(USB_DEV_ONLINE, 0, 2);
 	usb_printk("%s,ttyGS%d,end\n",__func__,port->port_num);
 #endif
 }
@@ -193,6 +194,7 @@
 	#endif
 #endif
 	usb_printk("%s,ttyGS%d,end\n",__func__,port->port_num);
+	usb_record_dbginfo(USB_DEV_OFFLINE, 0, 2);
 #endif
 }
 
@@ -1046,6 +1048,7 @@
 	pr_debug("gs_open: ttyGS%d (%p,%p)\n", port->port_num, tty, file);
 
 	status = 0;
+	usb_record_dbginfo(USB_DEV_OPEN, 0, 2);
 
 exit_unlock_port:
 	spin_unlock_irq(&port->port_lock);
@@ -1130,6 +1133,7 @@
 			port->port_num, tty, file);
 
 	wake_up_interruptible(&port->close_wait);
+	usb_record_dbginfo(USB_DEV_CLOSE, 0, 2);
 exit:
 	spin_unlock_irq(&port->port_lock);
 }
diff --git a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/usb_netlink.c b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/usb_netlink.c
index 232ca1a..9c157fe 100755
--- a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/usb_netlink.c
+++ b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/usb_netlink.c
@@ -21,12 +21,20 @@
 #include <mach/iomap.h>

 #include "pub_debug_info.h"

 

+

+#ifndef CONFIG_SYSTEM_RECOVERY

+int zDrvNand_WriteBootflag( int flag );

+#endif

 extern int detected_charger(void);

 #ifdef _USE_VEHICLE_DC

 extern int usb_server_init(void);

 

 extern int adb_enable_rpmsg_agent(int flag);

 extern int adb_rpmsg_agent_state(void);

+	int switch_mode = 0;

+	int simulate_plug = 0;

+	struct work_struct switch_usbmode;

+

 #endif

 

 static unsigned int charger_plug = 0;

@@ -320,6 +328,15 @@
 		case USB_DEV_OFFLINE:

 			str_info = "offline";

 			break;

+		case USB_OPEN_DL:

+			str_info = "dl open";

+			break;

+		case USB_CLOSE_DL:

+			str_info = "dl close";

+			break;

+		case USB_SIMULATE_PLUG:

+			str_info = "simulate plug";

+			break;

 			

 		default :

 			break;

@@ -343,7 +360,23 @@
 

 }

 EXPORT_SYMBOL_GPL(usb_record_dbginfo);

-

+#ifdef _USE_VEHICLE_DC

+int usb_switch_mode_work(struct work_struct *data)

+{

+	if(simulate_plug){

+		//we have no simulate signal, using except reset 

+		simulate_plug = 0;

+		usb_notify_up(USB_DEVICE_EXCEPT_RESET, NULL);

+		return;

+	}

+	if(switch_mode < USB_SWITCH_USER ||  switch_mode > USB_SWITCH_EYE_DIAGRAM){

+		printk("usb_switch_mode_work, invalid type:%d\n", switch_mode);

+		return -1;

+	}

+	

+	usb_notify_up(switch_mode, NULL);

+}

+#endif

 int usb_do_reject_cdrom(void)

 {

 	if(mods.only_cdrom){

@@ -742,6 +775,9 @@
    //usbkobj->ktype = &ktype;

 #ifdef _USE_VEHICLE_DC   

     usb_server_init();

+	

+   INIT_WORK(&switch_usbmode, usb_switch_mode_work);  

+		

 #endif

    return ret;

 }

@@ -778,6 +814,7 @@
 			strcpy(buf,"USBEVENT=usb_device_in");

 			action = KOBJ_ADD;

 			usb_plug = 1;

+			usb_record_dbginfo(USB_DEV_PLUGIN, 0, 0);

 			break;

 

 		case USB_DEVICE_PLUGOUT:

@@ -786,6 +823,7 @@
 			strcpy(buf,"USBEVENT=usb_device_out");

 			action = KOBJ_REMOVE;

 			usb_plug = 0;

+			usb_record_dbginfo(USB_DEV_PLUGOUT, 0, 0);

 			break;

 		case USB_CHARGER_PLUGIN:

 			usb_printk("usb charger plugin \n");

@@ -928,7 +966,8 @@
 			//sprintf(t_resp->param, "%s", );

 			

 			break;

-			//usb_set_rpmsg_resp(t_cmd->cmd, usb_resp);

+		//case:

+		//	break;

 		//case:

 		//	break;

 		default:

@@ -936,6 +975,105 @@
 	}

 }

 EXPORT_SYMBOL_GPL(usb_set_rpmsg_resp);

+

+void usb_parse_cap_notify(int type)

+{

+	if(type >= USB_RPMSG_NOTIFY_MAX){

+		printk("usb_parse_cap_notify fail, invalid type:%d\n", type);

+		return ;

+	}

+	

+	switch(type){

+		case USB_RPMSG_NOTIFY_ADB_TO_AP:			

+			adb_agent_state = 0;

+			wmb();

+			adb_enable_rpmsg_agent(adb_agent_state);

+			break;

+		case USB_RPMSG_NOTIFY_ADB_TO_CAP:			

+			adb_agent_state = 1;

+			wmb();

+			adb_enable_rpmsg_agent(adb_agent_state);	

+			break;

+		case USB_RPMSG_SWITCH_DEBUG_MODE:

+			if(switch_mode == USB_SWITCH_DEBUG){

+				printk("usb_parse_cap_notify, already debug mode, don't change again\n");

+				break;

+			}

+			switch_mode = USB_SWITCH_DEBUG;

+			usb_record_dbginfo(USB_SWITCH_TO_DEBUG, 0, 0);

+			schedule_work(&switch_usbmode);

+			break;

+		case USB_RPMSG_SWITCH_USER_MODE:

+			if(switch_mode == USB_SWITCH_USER){

+				printk("usb_parse_cap_notify, already user mode, don't change again\n");

+				break;

+			}

+			switch_mode = USB_SWITCH_USER;

+			usb_record_dbginfo(USB_SWITCH_TO_USER, 0, 0);

+			schedule_work(&switch_usbmode);

+			

+			break;

+		case USB_RPMSG_SWITCH_FACTORY_MODE:

+			if(switch_mode == USB_SWITCH_FACTORY){

+				printk("usb_parse_cap_notify, already factory mode, don't change again\n");

+				break;

+			}

+			switch_mode = USB_SWITCH_FACTORY;

+			usb_record_dbginfo(USB_SWITCH_TO_FACTORY, 0, 0);

+			schedule_work(&switch_usbmode);

+			

+			break;

+		case USB_RPMSG_SWITCH_AMT_MODE:

+			if(switch_mode == USB_SWITCH_AMT){

+				printk("usb_parse_cap_notify, already amt mode, don't change again\n");

+				break;

+			}

+			switch_mode = USB_SWITCH_AMT;

+			usb_record_dbginfo(USB_SWITCH_TO_AMT, 0, 0);

+			schedule_work(&switch_usbmode);

+			

+			break;

+		case USB_RPMSG_SWITCH_EYE_MODE:

+			if(switch_mode == USB_SWITCH_EYE_DIAGRAM){

+				printk("usb_parse_cap_notify, already eye mode, don't change again\n");

+				break;

+			}

+			switch_mode = USB_SWITCH_EYE_DIAGRAM;

+			usb_record_dbginfo(USB_SWITCH_TO_EYE_DIAGRAM, 0, 0);

+			schedule_work(&switch_usbmode);

+			

+			break;

+		

+		case USB_RPMSG_OPEN_DL:

+			usb_record_dbginfo(USB_OPEN_DL, 0, 0);

+#ifndef CONFIG_SYSTEM_RECOVERY

+				zDrvNand_WriteBootflag(0);

+#endif			

+			break;

+		case USB_RPMSG_CLOSE_DL:

+			usb_record_dbginfo(USB_CLOSE_DL, 0, 0);

+#ifndef CONFIG_SYSTEM_RECOVERY

+				zDrvNand_WriteBootflag(1);

+#endif			

+			break;

+		case USB_RPMSG_SIMULATE_PLUG:

+			simulate_plug = 1;

+			usb_record_dbginfo(USB_SIMULATE_PLUG, 0, 0);

+			schedule_work(&switch_usbmode);

+			

+			break;

+		//case :

+		//	break;

+		//case :

+		//	break;

+		//case :

+		//	break;

+		default:

+			break;

+	}

+}

+EXPORT_SYMBOL_GPL(usb_parse_cap_notify);

+

 #endif

 

 

diff --git a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/usb_rpmsg_server.c b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/usb_rpmsg_server.c
index b6a86e3..8bd048b 100644
--- a/ap/os/linux/linux-3.4.x/drivers/usb/gadget/usb_rpmsg_server.c
+++ b/ap/os/linux/linux-3.4.x/drivers/usb/gadget/usb_rpmsg_server.c
@@ -35,6 +35,7 @@
 
 extern void usb_set_rpmsg_resp(int type, char*resp);
 extern void android_set_rpmsg_resp(int type, char*resp);
+extern void usb_parse_cap_notify(int type);
 
 struct task_struct	*rpmsg_thread;
 wait_queue_head_t usb_agt_wq;
@@ -71,15 +72,17 @@
 int usb_rpmsg2ap(void *buf, unsigned int len);
 
 
-void usb_rpmsg_notify_ap(usb_rpmsg_cmd *notify)
+void usb_rpmsg_notify_ap(usb_rpmsg_cmd *notify, int has_param)
 {
 	usb_rpmsg_cmd *t_data = NULL;
 	
 	memset(usb_resp, 0, USB_AGENT_BUF_SIZE);
 	t_data = (usb_rpmsg_cmd *)usb_resp;
 	t_data->cmd = notify->cmd;
-	memcpy(t_data->param, notify->param, strlen(notify->param));
-	
+	if(has_param){
+		memcpy(t_data->param, notify->param, strlen(notify->param));
+	}
+	printk("---usb_rpmsg_notify_ap, datalen:%d\n", strlen(usb_resp));
 	usb_rpmsg2ap(usb_resp, strlen(usb_resp));
 }
 EXPORT_SYMBOL_GPL(usb_rpmsg_notify_ap);
@@ -101,7 +104,7 @@
 	}
 	
 #if 1
-	usb_set_rpmsg_resp(t_cmd->cmd, usb_resp);
+	//usb_set_rpmsg_resp(t_cmd->cmd, usb_resp);
 	android_set_rpmsg_resp(t_cmd->cmd, usb_resp);
 #else
 
@@ -128,7 +131,7 @@
 	unsigned char *data;
 	
 	char*tmp= (char*)buf;
-
+	usb_rpmsg_cmd *msg = NULL; 
 
 	if (len==0){
 		printk("usb_rpmsg_from_ap, len 0, notify \n ", len);
@@ -150,7 +153,11 @@
 #endif
 	memcpy(usb_msg,buf, len);
 	//usb_rpmsg2ap((char *)buf, len);
-	
+	msg = (usb_rpmsg_cmd *)usb_msg;
+	if(msg->cmd > USB_RPMSG_CMD_MAX){
+		usb_parse_cap_notify(msg->cmd);
+		return;
+	}
 	atomic_set(&rpmsg_flag, 1);
 	wake_up(&usb_agt_wq);
 } 
diff --git a/ap/os/linux/linux-3.4.x/drivers/usb/mon/mon_bin.c b/ap/os/linux/linux-3.4.x/drivers/usb/mon/mon_bin.c
index 91cd850..6e33e1e 100644
--- a/ap/os/linux/linux-3.4.x/drivers/usb/mon/mon_bin.c
+++ b/ap/os/linux/linux-3.4.x/drivers/usb/mon/mon_bin.c
@@ -1247,6 +1247,11 @@
 {
 	/* don't do anything here: "fault" will set up page table entries */
 	vma->vm_ops = &mon_bin_vm_ops;
+	//CVE-2022-43750
+	if (vma->vm_flags & VM_WRITE)
+		return -EPERM;
+
+	vma->vm_flags &= ~VM_MAYWRITE;
 	vma->vm_flags |= VM_RESERVED;
 	vma->vm_private_data = filp->private_data;
 	mon_bin_vma_open(vma);
diff --git a/ap/os/linux/linux-3.4.x/drivers/watchdog/zx_soft_wdt.c b/ap/os/linux/linux-3.4.x/drivers/watchdog/zx_soft_wdt.c
index 101048d..de12136 100644
--- a/ap/os/linux/linux-3.4.x/drivers/watchdog/zx_soft_wdt.c
+++ b/ap/os/linux/linux-3.4.x/drivers/watchdog/zx_soft_wdt.c
@@ -487,19 +487,19 @@
 	switch (wdt_reason) 

 	{

 		case PS_WDT:

-			memcpy(reason, "ps wdt reboot!\n", 20);

+			memcpy(reason, "ps wdt reboot!\n", sizeof("ps wdt reboot!\n"));

 			break;

 		case AP_WDT:

-			memcpy(reason, "ap wdt reboot!\n", 20);

+			memcpy(reason, "ap wdt reboot!\n", sizeof("ap wdt reboot!\n"));

 			break;

 		case PHY_WDT:

-			memcpy(reason, "phy wdt reboot!\n", 20);

+			memcpy(reason, "phy wdt reboot!\n", sizeof("phy wdt reboot!\n"));

 			break;			

 		case MAX_WDT:

-			memcpy(reason, "rpm wdt reboot!\n", 20);

+			memcpy(reason, "rpm wdt reboot!\n", sizeof("rpm wdt reboot!\n"));

 			break;	

 		default:

-			memcpy(reason, "not wdt reboot!\n", 20);			

+			memcpy(reason, "not wdt reboot!\n", sizeof("not wdt reboot!\n"));			

 			break;	

 	}

 

@@ -581,8 +581,9 @@
 	}

 

 	/*start  wdt*/

-	zx_write_reg(ZX_RM_WDT_BASE + 0x1c, 0x12340001);

-	while(1);

+	do{

+		zx_write_reg(ZX_RM_WDT_BASE + 0x1c, 0x12340001);

+	}while(1);

 }

 EXPORT_SYMBOL(wdt_restart);

 #endif

diff --git a/ap/os/linux/linux-3.4.x/include/linux/android_notify.h b/ap/os/linux/linux-3.4.x/include/linux/android_notify.h
index f505c4e..85e5c52 100644
--- a/ap/os/linux/linux-3.4.x/include/linux/android_notify.h
+++ b/ap/os/linux/linux-3.4.x/include/linux/android_notify.h
@@ -39,6 +39,7 @@
 	USB_SWITCH_TO_DEBUG,

 	USB_SWITCH_TO_FACTORY,

 	USB_SWITCH_TO_AMT,

+	USB_SWITCH_TO_EYE_DIAGRAM,

 	USB_DEV_EXCEPT_RESET,

 	USB_DEV_SUSPEND,

 	USB_DEV_RESUME,

@@ -53,6 +54,9 @@
 	USB_DEV_CLOSE,

 	USB_DEV_ONLINE,

 	USB_DEV_OFFLINE,

+	USB_OPEN_DL,

+	USB_CLOSE_DL,

+	USB_SIMULATE_PLUG,

 	USB_DBGINFO_NUM,

 }usb_dbginfo_type;

 void usb_notify_up(usb_notify_event notify_type, void* puf);

@@ -63,8 +67,9 @@
 

 #ifdef _USE_VEHICLE_DC

 

-#define USB_RPMSG_RESP  1

-#define USB_RPMSG_NOTIFY  2

+#define USB_RPMSG_RESP  0x1

+#define USB_RPMSG_NOTIFY  0x2

+#define USB_RPMSG_TYPE_NOTIFY  0x3

 

 typedef enum __usb_rpmsg_cmd_type{

 	USB_RPMSG_CMD = 0,

@@ -72,10 +77,28 @@
 	USB_RPMSG_GET_USB_SPEED,

 	USB_RPMSG_GET_USB_STATE,

 	USB_RPMSG_GET_USB_LINK_STATE,

+	USB_RPMSG_GET_USB_ENUM_MODE,

 	//USB_RPMSG_GET_,

 	//USB_RPMSG_GET_,

 	

-	USB_RPMSG_CMD_MAX,

+	USB_RPMSG_CMD_MAX,	

+	USB_RPMSG_NOTIFY_ADB_TO_AP,

+	USB_RPMSG_NOTIFY_ADB_TO_CAP,

+	USB_RPMSG_NOTIFY_NET_ONLINE,

+	USB_RPMSG_NOTIFY_NET_OFFLINE,

+	USB_RPMSG_NOTIFY_ADB_ONLINE,

+	USB_RPMSG_NOTIFY_ADB_OFFLINE,	

+	USB_RPMSG_SWITCH_DEBUG_MODE,	

+	USB_RPMSG_SWITCH_USER_MODE,

+	USB_RPMSG_SWITCH_FACTORY_MODE,

+	USB_RPMSG_SWITCH_AMT_MODE,

+	USB_RPMSG_SWITCH_EYE_MODE,

+	USB_RPMSG_FORCE_RNDIS,

+	USB_RPMSG_FORCE_ECM,

+	USB_RPMSG_OPEN_DL,

+	USB_RPMSG_CLOSE_DL,

+	USB_RPMSG_SIMULATE_PLUG,

+	USB_RPMSG_NOTIFY_MAX,

 }e_usb_rpmsg_cmd_type;

 

 

diff --git a/ap/os/linux/linux-3.4.x/include/linux/ramdump/ramdump_oss.h b/ap/os/linux/linux-3.4.x/include/linux/ramdump/ramdump_oss.h
index d54dd6e..e4cb862 100755
--- a/ap/os/linux/linux-3.4.x/include/linux/ramdump/ramdump_oss.h
+++ b/ap/os/linux/linux-3.4.x/include/linux/ramdump/ramdump_oss.h
@@ -80,6 +80,7 @@
 #define OSS_PRINTF(fmt...) zOss_Printf(SUBMDL_TEST, PRINT_LEVEL_NORMAL, fmt)
 
 #endif //#ifdef _OS_LINUX 
+#define RAMDUMP_EMMC_TRANS_FLAG_ADDR    (IRAM_BASE_ADDR_ZCAT_MODE)
 
 /*******************************************************************************
 *                                Êý¾ÝÀàÐͶ¨Òå                                  *
diff --git a/ap/os/linux/linux-3.4.x/include/linux/soc/zte/tsc/tsc.h b/ap/os/linux/linux-3.4.x/include/linux/soc/zte/tsc/tsc.h
index a7349d2..1a6ece9 100644
--- a/ap/os/linux/linux-3.4.x/include/linux/soc/zte/tsc/tsc.h
+++ b/ap/os/linux/linux-3.4.x/include/linux/soc/zte/tsc/tsc.h
@@ -18,7 +18,7 @@
 #define __ASM_ARCH_TSC_H
 
 #define  TS_ADC_TEMP_NUMBER   2
-#define  TS_ADC_TEMP_VOLTAGE_NUMBER  110
+#define  TS_ADC_TEMP_VOLTAGE_NUMBER  200
 
 #endif
 
diff --git a/ap/os/linux/linux-3.4.x/log b/ap/os/linux/linux-3.4.x/log
new file mode 100644
index 0000000..c4015ec
--- /dev/null
+++ b/ap/os/linux/linux-3.4.x/log
@@ -0,0 +1 @@
+bitbake:未找到命令
diff --git a/ap/os/linux/linux-3.4.x/mm/ramdump/ramdump_oss.c b/ap/os/linux/linux-3.4.x/mm/ramdump/ramdump_oss.c
index f59e646..56fd493 100755
--- a/ap/os/linux/linux-3.4.x/mm/ramdump/ramdump_oss.c
+++ b/ap/os/linux/linux-3.4.x/mm/ramdump/ramdump_oss.c
@@ -26,23 +26,39 @@
 /*******************************************************************************
 *                                Íⲿº¯ÊýÉùÃ÷                                  *
 *******************************************************************************/
+extern unsigned long ramdump_phy_to_vir(ramdump_ram_config_t * ram_config);
 
 /*******************************************************************************
 *                                   ºê¶¨Òå                                     *
 *******************************************************************************/
+/*¹²ÏíÄÚ´æµØÖ·*/
+#ifdef _USE_VEHICLE_DC
+#define RAMDUMP_SHARED_MEM_BASE                    (RAMDUMP_AP_TO_CAP_BUF_ADDR_PA)
+#define RAMDUMP_SHARED_MEM_LEN                     (RAMDUMP_AP_TO_CAP_BUF_LEN)
+#define RAMDUMP_SHMEM_ALIGN_SIZE                   (0x1000)
+#endif
 
 /*******************************************************************************
 *                                Êý¾ÝÀàÐͶ¨Òå                                  *
 *******************************************************************************/
+#ifdef _USE_VEHICLE_DC
+typedef struct
+{
+	volatile unsigned int core_flag;//0:cp,1:cap
+	volatile unsigned int rw_flag;//0:non,1:w,2:r
+	volatile unsigned int size;
+	char buf[];
+} ramdump_shmem_t;
 
 /*******************************************************************************
 *                                È«¾Ö±äÁ¿ÉùÃ÷                                  *
 *******************************************************************************/
+unsigned char *ramdump_shared_mem_base = NULL;
+#endif
 
 /*******************************************************************************
 *                                È«¾Öº¯ÊýÉùÃ÷                                  *
 *******************************************************************************/
-
 #ifdef _OS_LINUX 
 /* icp api */  
 extern int zDrvRpMsg_CreateChannel(
@@ -342,11 +358,142 @@
 void ramdump_oss_data_trans_init(void)
 {
 #ifdef _OS_LINUX 
-    zDrvUsbPoll_Init();                 /* ³õʼ»¯USB        */
-    while (!zDrvUsbPoll_isConnect()) ;  /* ²éѯUSBÊÇ·ñÁ¬½Ó  */
+#ifdef _USE_VEHICLE_DC
+
+	if(*(unsigned int *)RAMDUMP_EMMC_TRANS_FLAG_ADDR != 1)
+	{
+#endif
+    	zDrvUsbPoll_Init();                 /* ³õʼ»¯USB        */
+    	while (!zDrvUsbPoll_isConnect()) ;  /* ²éѯUSBÊÇ·ñÁ¬½Ó  */
+#ifdef _USE_VEHICLE_DC
+	}
+#endif
 #endif
 }
 
+void ramdump_usb_trans_read(unsigned char *buffer, unsigned int size)
+{
+#ifdef _OS_LINUX 
+	unsigned int count = 0;
+
+	do
+	{
+		zDrvUsbPoll_Isr();
+		count = (unsigned int)zDrvUsbPoll_Read(buffer, size);
+		if ( size <= count)
+		{
+			break;
+		}
+		buffer += count;
+		size -=count;
+	}
+	while (size > 0);
+#endif
+
+}
+
+void ramdump_usb_trans_write(unsigned char *buffer, unsigned int size)
+{
+#ifdef _OS_LINUX 
+	unsigned int count = 0;
+
+	while (size > 0)
+	{
+		zDrvUsbPoll_Isr();
+		count = (unsigned int)zDrvUsbPoll_Write(buffer, size);
+		if ( size <= count)
+		{
+			break;
+		}
+
+		buffer += count;
+		size -=count;
+	}
+#endif
+
+}
+static inline void ramdump_wait_delay( unsigned long ms)
+{
+    volatile int j = 0;
+	for (j = 0; j < 50000; j++);
+}
+
+#ifdef _USE_VEHICLE_DC
+
+void ramdump_shared_mem_init(void)
+{
+	ramdump_shared_mem_base = OSS_MMAP(RAMDUMP_SHARED_MEM_BASE, RAMDUMP_SHARED_MEM_LEN);
+}
+
+/*******************************************************************************
+* ¹¦ÄÜÃèÊö:    ramdump_shm_trans_write
+* ²ÎÊý˵Ã÷:     
+*   (´«Èë²ÎÊý) void
+*   (´«³ö²ÎÊý) void
+* ·µ »Ø Öµ:    void 
+* ÆäËü˵Ã÷:    This function is used for ramdump to trans dump data to PC
+*******************************************************************************/
+int ramdump_shm_trans_write(unsigned char *buffer, unsigned int size)
+{
+	int ret;
+	ramdump_shmem_t tmp_msg;
+	ramdump_shmem_t *msg = (ramdump_shmem_t *)ramdump_shared_mem_base;
+
+	if (size > (RAMDUMP_SHARED_MEM_LEN - roundup(sizeof(ramdump_shmem_t), RAMDUMP_SHMEM_ALIGN_SIZE)))
+		ret = -1;
+
+	while(1){
+		if ((msg->core_flag == 0) && (msg->rw_flag == 1)){
+			_memcpy_toio(msg->buf, buffer, size);
+			tmp_msg.size = size;
+			tmp_msg.core_flag = 1;
+			tmp_msg.rw_flag = 2;
+			_memcpy_toio(msg, &tmp_msg, sizeof(ramdump_shmem_t));
+			ret = size;
+			break;
+		}
+		else
+			ramdump_wait_delay(0);
+	}
+	return ret;
+}
+
+
+/*******************************************************************************
+* ¹¦ÄÜÃèÊö:    ramdump_shm_trans_read
+* ²ÎÊý˵Ã÷:     
+*   (´«Èë²ÎÊý) void
+*   (´«³ö²ÎÊý) void
+* ·µ »Ø Öµ:    void 
+* ÆäËü˵Ã÷:    This function is used for ramdump to trans dump data to PC
+*******************************************************************************/
+int ramdump_shm_trans_read(unsigned char *buffer, unsigned int size)
+{
+	int ret;
+	ramdump_shmem_t tmp_msg;
+	ramdump_shmem_t *msg = (ramdump_shmem_t *)ramdump_shared_mem_base;
+
+	if (size > (RAMDUMP_SHARED_MEM_LEN - roundup(sizeof(ramdump_shmem_t), RAMDUMP_SHMEM_ALIGN_SIZE)))
+		ret = -1;
+
+	while(1){
+		if ((msg->core_flag == 0) && (msg->rw_flag == 2)){
+			if (size < msg->size)
+				return -1;
+			_memcpy_fromio(buffer, msg->buf, msg->size);
+			tmp_msg.size = msg->size;
+			tmp_msg.core_flag = 0;
+			tmp_msg.rw_flag = 1;
+			_memcpy_toio(msg, &tmp_msg, sizeof(ramdump_shmem_t));
+			ret = size;
+			break;
+		}
+		else
+			ramdump_wait_delay(0);
+	}
+	return ret;
+}
+#endif
 /*******************************************************************************
 * ¹¦ÄÜÃèÊö:     ramdump_oss_data_trans_read
 * ²ÎÊý˵Ã÷:     
@@ -358,22 +505,13 @@
 *******************************************************************************/
 void ramdump_oss_data_trans_read(unsigned char *buffer, unsigned int size)
 {
-#ifdef _OS_LINUX 
-    unsigned int count = 0;
+#ifdef _USE_VEHICLE_DC
 
-    do
-    {
-        zDrvUsbPoll_Isr();
-        count = (unsigned int)zDrvUsbPoll_Read(buffer, size);
-        if ( size <= count)
-        {
-            break;
-        }        
-        buffer += count;
-        size -=count;
-    }
-    while (size > 0);
+	if(*(unsigned int *)RAMDUMP_EMMC_TRANS_FLAG_ADDR == 1)
+		ramdump_shm_trans_read(buffer, size);
+	else
 #endif
+		ramdump_usb_trans_read(buffer, size);
 }
 
 /*******************************************************************************
@@ -387,22 +525,14 @@
 *******************************************************************************/
 void ramdump_oss_data_trans_write(unsigned char *buffer, unsigned int size)
 {
-#ifdef _OS_LINUX 
-    unsigned int count = 0;
+#ifdef _USE_VEHICLE_DC
 
-    while (size > 0)
-    {
-        zDrvUsbPoll_Isr();
-        count = (unsigned int)zDrvUsbPoll_Write(buffer, size);
-        if ( size <= count)
-        {
-            break;
-        }
-        
-        buffer += count;
-        size -=count;
-    }
+	if(*(unsigned int *)RAMDUMP_EMMC_TRANS_FLAG_ADDR == 1)
+		ramdump_shm_trans_write(buffer, size);
+	else
 #endif
+		ramdump_usb_trans_write(buffer, size);
+
 }
 
 /*******************************************************************************
@@ -417,7 +547,10 @@
 {
 #ifdef _OS_LINUX     
     /* µÈ´ýÊý¾Ý·¢ËÍÍêºó£¬ÔÙÖØÆô */
-    zDrvUsbPoll_Isr();
+#ifdef _USE_VEHICLE_DC
+	if(*(unsigned int *)RAMDUMP_EMMC_TRANS_FLAG_ADDR != 1)
+#endif
+		zDrvUsbPoll_Isr();
 #endif
 }
 
diff --git a/ap/os/linux/linux-3.4.x/mm/ramdump/ramdump_trans_server.c b/ap/os/linux/linux-3.4.x/mm/ramdump/ramdump_trans_server.c
index b112efd..df85705 100755
--- a/ap/os/linux/linux-3.4.x/mm/ramdump/ramdump_trans_server.c
+++ b/ap/os/linux/linux-3.4.x/mm/ramdump/ramdump_trans_server.c
@@ -91,40 +91,40 @@
 /* trans_server rsp pc, interactive msg struct */
 typedef struct
 {
-    unsigned long cmd;
-    unsigned long file_num;
+    unsigned int cmd;
+    unsigned int file_num;
 } ramdump_trans_server_interactive_rsp;
 
 /* trans_server rsp pc, file info msg struct */
 typedef struct
 {
-    unsigned long cmd;
+    unsigned int cmd;
     char    file_name[RAMDUMP_RAMCONF_FILENAME_MAXLEN];
-    unsigned long file_size;
+    unsigned int file_size;
 } ramdump_trans_server_file_info_rsp;
 
 /* pc req trans_server, file info msg struct */
 typedef struct
 {
-    unsigned long cmd;
-    unsigned long file_id;
+    unsigned int cmd;
+    unsigned int file_id;
 } ramdump_pc_file_info_req;
 
 /* trans_server rsp pc, trans data msg struct */
 typedef struct
 {
-    unsigned long cmd;
-    unsigned long buf_addr;
-    unsigned long buf_left_size;
+    unsigned int cmd;
+    unsigned int buf_addr;
+    unsigned int buf_left_size;
 } ramdump_trans_server_data_trans_rsp;
 
 /* pc req trans_server, trans data msg struct */
 typedef struct
 {
-    unsigned long   cmd;
-    unsigned long   file_id;      /* Îļþ±àºÅ         */
-    unsigned long   offset;       /* offsetΪÊý¾ÝÆ«ÒÆ */
-    unsigned long   length;       /* lengthΪÊý¾Ý³¤¶È */
+    unsigned int   cmd;
+    unsigned int   file_id;      /* Îļþ±àºÅ         */
+    unsigned int   offset;       /* offsetΪÊý¾ÝÆ«ÒÆ */
+    unsigned int   length;       /* lengthΪÊý¾Ý³¤¶È */
 } ramdump_pc_trans_data_req;
 
 
@@ -140,7 +140,9 @@
 
 extern void zx_wdt_m0_stop(void);
 extern struct meminfo meminfo;
-
+#ifdef _USE_VEHICLE_DC
+extern void ramdump_shared_mem_init(void);
+#endif
 /*******************************************************************************
 *                              ¾Ö²¿¾²Ì¬±äÁ¿¶¨Òå                                *
 *******************************************************************************/
@@ -148,7 +150,7 @@
 static int ramdump_count;
 static int ramdump_file_num;
 
-static DEFINE_MUTEX(ramdump_mutex); 
+static DEFINE_MUTEX(ramdump_mutex);
 
 /* Cmm file content */
 static unsigned char ramdump_server_cmm_buf[RAMDUMP_CMM_SIZE];
@@ -156,7 +158,7 @@
 static char ramdump_server_error_log[RAMDUMP_ERROR_LOG_SIZE];
 
 /* trans server ram conf table */
-static ramdump_ram_config_t ramdump_trans_server_ram_conf[RAMDUMP_RAMCONF_TABLE_MAX_ENTRYS];
+ramdump_ram_config_t ramdump_trans_server_ram_conf[RAMDUMP_RAMCONF_TABLE_MAX_ENTRYS];
 static unsigned int ddr_ap_size;
 
 #ifndef __USE_TRANS_WITH_COLLECT__ 
@@ -181,6 +183,22 @@
 /* diff server crash or client crash */
 int ramdump_trans_server_force_panic_flag = RAMDUMP_FALSE;
 
+char ramdump_shm_export_file[][RAMDUMP_RAMCONF_FILENAME_MAXLEN] = 
+{
+    "ap_log_buf",
+    "zsp.cmm", 
+    "phy_iddr.bin",
+    "DDDR.bin",
+    "phy_itcm.bin",
+    "DTCM.bin", 
+    "shared_ram.bin",
+    "iram_icp.bin"
+};
+
+unsigned int ramdump_shm_file_num = 0;
+unsigned int ramdump_exprot_file_num = 0;
+unsigned int ramdump_export_file_index[RAMDUMP_RAMCONF_TABLE_MAX_ENTRYS] = {0};
+
 /*******************************************************************************
 *                                ¾Ö²¿º¯ÊýʵÏÖ                                  *
 *******************************************************************************/
@@ -193,7 +211,7 @@
 * ·µ »Ø Öµ:     void
 * ÆäËü˵Ã÷:     This function is used to collect server ram conf before client mmap
 *******************************************************************************/
-static unsigned long ramdump_phy_to_vir(ramdump_ram_config_t * ram_config)
+unsigned long ramdump_phy_to_vir(ramdump_ram_config_t * ram_config)
 {
     unsigned long pfn = 0;
     unsigned long vir_addr = 0;
@@ -806,6 +824,34 @@
         0);
 }
 
+unsigned int ramdump_calc_total_regions(void)
+{
+	unsigned int index;
+	unsigned int cnt;
+
+	ramdump_shm_file_num = sizeof(ramdump_shm_export_file)/sizeof(ramdump_shm_export_file[0]);
+
+	for (index = 0; index < ramdump_file_num; index++){
+#ifdef _USE_VEHICLE_DC
+		if(*(unsigned int *)RAMDUMP_EMMC_TRANS_FLAG_ADDR == 1){
+			for (cnt = 0; cnt < ramdump_shm_file_num; cnt++)
+			{
+				if(!strcmp(ramdump_trans_server_ram_conf[index].name, ramdump_shm_export_file[cnt])){
+					ramdump_export_file_index[ramdump_exprot_file_num] = index;
+					ramdump_exprot_file_num++;
+				}
+			}
+		}else{
+#endif
+			ramdump_export_file_index[ramdump_exprot_file_num] = index;
+			ramdump_exprot_file_num++;
+#ifdef _USE_VEHICLE_DC
+		}
+#endif
+	}
+	return ramdump_exprot_file_num;
+}
+
 /*******************************************************************************
 * ¹¦ÄÜÃèÊö:    ramdump_data_transfer_to_pc
 * ²ÎÊý˵Ã÷:     
@@ -816,21 +862,25 @@
 *******************************************************************************/
 static void ramdump_data_transfer_to_pc(void)
 {
+	int file_id = 0;
+	unsigned int ramdump_file_nr = 0;
     char req_buf[RAMDUMP_INTERACTIVE_DATA_LEN] = {0};
 
     /* interactive begin */
     ramdump_oss_data_trans_init();
 
+	ramdump_file_nr = ramdump_calc_total_regions();
+
     for(;;)
     {
         ramdump_oss_data_trans_read((unsigned char *)req_buf, RAMDUMP_INTERACTIVE_DATA_LEN);
-        switch (*(unsigned long *)req_buf)
+        switch (*(unsigned int *)req_buf)
         {
         case RAMDUMP_PC_INTERACTIVE_REQ:
             {
                 ramdump_trans_server_interactive_rsp server_to_pc_msg = {0};
                 server_to_pc_msg.cmd = RAMDUMP_TRANS_SERVER_INTERACTIVE_RSP;
-                server_to_pc_msg.file_num = ramdump_file_num;
+                server_to_pc_msg.file_num = ramdump_file_nr;
 
                 ramdump_oss_data_trans_write(
                     (unsigned char*)(&server_to_pc_msg),
@@ -843,16 +893,16 @@
                 ramdump_trans_server_file_info_rsp server_to_pc_msg = {0};
                 /* data from pc to server  */
                 ramdump_pc_file_info_req *pc_to_server_msg = (ramdump_pc_file_info_req *)req_buf;
-
+                file_id = pc_to_server_msg->file_id;
                 /* data respond pc from server  */
                 server_to_pc_msg.cmd = RAMDUMP_TRANS_SERVER_FILE_INFO_READ_RSP;
                 strncpy(server_to_pc_msg.file_name, 
-                        ramdump_trans_server_ram_conf[pc_to_server_msg->file_id].name, 
+                        ramdump_trans_server_ram_conf[ramdump_export_file_index[file_id]].name, 
                         RAMDUMP_RAMCONF_FILENAME_MAXLEN - 1);
-				server_to_pc_msg.file_name[RAMDUMP_RAMCONF_FILENAME_MAXLEN - 1] = '\0';
-                server_to_pc_msg.file_size = ramdump_trans_server_ram_conf[pc_to_server_msg->file_id].size;
-                if (ramdump_trans_server_ram_conf[pc_to_server_msg->file_id].callback != NULL &&
-                    (ramdump_trans_server_ram_conf[pc_to_server_msg->file_id].callback)() == RAMDUMP_FALSE)
+                server_to_pc_msg.file_name[RAMDUMP_RAMCONF_FILENAME_MAXLEN - 1] = '\0';
+                server_to_pc_msg.file_size = ramdump_trans_server_ram_conf[ramdump_export_file_index[file_id]].size;
+                if (ramdump_trans_server_ram_conf[ramdump_export_file_index[file_id]].callback != NULL &&
+                    (ramdump_trans_server_ram_conf[ramdump_export_file_index[file_id]].callback)() == RAMDUMP_FALSE)
                     server_to_pc_msg.file_size = 0;
                 /* interactive data trans */
                 ramdump_oss_data_trans_write(
@@ -866,11 +916,11 @@
                 ramdump_trans_server_data_trans_rsp server_to_pc_msg = {0};
                 /* data from pc to server  */
                 ramdump_pc_trans_data_req *pc_to_server_msg = (ramdump_pc_trans_data_req *)req_buf;
-
+                file_id = pc_to_server_msg->file_id;
                 /* data respond pc from server  */
                 server_to_pc_msg.cmd = RAMDUMP_TRANS_SERVER_FILE_DATA_TRANS_RSP;
                 server_to_pc_msg.buf_addr = 
-                    (ramdump_trans_server_ram_conf[pc_to_server_msg->file_id].vir + 
+                    (ramdump_trans_server_ram_conf[ramdump_export_file_index[file_id]].vir + 
                     pc_to_server_msg->offset);
                 server_to_pc_msg.buf_left_size = pc_to_server_msg->length;
                 /* interactive data trans */
@@ -1105,7 +1155,19 @@
         0,
         RAMDUMP_FLAG_NONE,
         0);
+	ramdump_ram_conf_table_add(
+        "rpmsg_cap.bin", 
+        ICP_CAP_BUF_ADDR_PA,
+        ICP_CAP_BUF_LEN,
+        0,
+        RAMDUMP_FLAG_NONE,
+        0);
 #endif
+
+#ifdef _USE_VEHICLE_DC
+	ramdump_shared_mem_init();
+#endif
+
     /* set trans ram data done flag */
 //    ramdump_trans_server_data_done_flag = RAMDUMP_SYNC_RAM_CONTENT_DONE;
 
diff --git a/ap/os/linux/linux-3.4.x/net/core/speed_pool_dl.c b/ap/os/linux/linux-3.4.x/net/core/speed_pool_dl.c
index e7db4e7..d761b6a 100755
--- a/ap/os/linux/linux-3.4.x/net/core/speed_pool_dl.c
+++ b/ap/os/linux/linux-3.4.x/net/core/speed_pool_dl.c
@@ -134,7 +134,9 @@
 struct skb_pool_node_impl_t

 {

     skb_pool_node_impl_t    *free_next;

-

+#if _USE_VEHICLE_DC

+	u32 padding[15];//for cacheline

+#endif

 #ifdef SKB_DBG_POOL

     struct list_head        alloc_node;

     const char              *file;

diff --git a/ap/os/linux/linux-3.4.x/net/sched/Kconfig b/ap/os/linux/linux-3.4.x/net/sched/Kconfig
index 75b58f8..3705081 100644
--- a/ap/os/linux/linux-3.4.x/net/sched/Kconfig
+++ b/ap/os/linux/linux-3.4.x/net/sched/Kconfig
@@ -301,17 +301,6 @@
 	  To compile this code as a module, choose M here: the
 	  module will be called cls_basic.
 
-config NET_CLS_TCINDEX
-	tristate "Traffic-Control Index (TCINDEX)"
-	select NET_CLS
-	---help---
-	  Say Y here if you want to be able to classify packets based on
-	  traffic control indices. You will want this feature if you want
-	  to implement Differentiated Services together with DSMARK.
-
-	  To compile this code as a module, choose M here: the
-	  module will be called cls_tcindex.
-
 config NET_CLS_ROUTE4
 	tristate "Routing decision (ROUTE)"
 	depends on INET
diff --git a/ap/os/linux/linux-3.4.x/net/sched/Makefile b/ap/os/linux/linux-3.4.x/net/sched/Makefile
index 8cdf4e2..d8178ae 100644
--- a/ap/os/linux/linux-3.4.x/net/sched/Makefile
+++ b/ap/os/linux/linux-3.4.x/net/sched/Makefile
@@ -42,7 +42,6 @@
 obj-$(CONFIG_NET_CLS_ROUTE4)	+= cls_route.o
 obj-$(CONFIG_NET_CLS_FW)	+= cls_fw.o
 obj-$(CONFIG_NET_CLS_RSVP)	+= cls_rsvp.o
-obj-$(CONFIG_NET_CLS_TCINDEX)	+= cls_tcindex.o
 obj-$(CONFIG_NET_CLS_RSVP6)	+= cls_rsvp6.o
 obj-$(CONFIG_NET_CLS_BASIC)	+= cls_basic.o
 obj-$(CONFIG_NET_CLS_FLOW)	+= cls_flow.o
diff --git a/ap/os/linux/linux-3.4.x/net/sched/cls_tcindex.c b/ap/os/linux/linux-3.4.x/net/sched/cls_tcindex.c
deleted file mode 100644
index dbe1992..0000000
--- a/ap/os/linux/linux-3.4.x/net/sched/cls_tcindex.c
+++ /dev/null
@@ -1,507 +0,0 @@
-/*
- * net/sched/cls_tcindex.c	Packet classifier for skb->tc_index
- *
- * Written 1998,1999 by Werner Almesberger, EPFL ICA
- */
-
-#include <linux/module.h>
-#include <linux/types.h>
-#include <linux/kernel.h>
-#include <linux/skbuff.h>
-#include <linux/errno.h>
-#include <linux/slab.h>
-#include <net/act_api.h>
-#include <net/netlink.h>
-#include <net/pkt_cls.h>
-
-/*
- * Passing parameters to the root seems to be done more awkwardly than really
- * necessary. At least, u32 doesn't seem to use such dirty hacks. To be
- * verified. FIXME.
- */
-
-#define PERFECT_HASH_THRESHOLD	64	/* use perfect hash if not bigger */
-#define DEFAULT_HASH_SIZE	64	/* optimized for diffserv */
-
-
-#define	PRIV(tp)	((struct tcindex_data *) (tp)->root)
-
-
-struct tcindex_filter_result {
-	struct tcf_exts		exts;
-	struct tcf_result	res;
-};
-
-struct tcindex_filter {
-	u16 key;
-	struct tcindex_filter_result result;
-	struct tcindex_filter *next;
-};
-
-
-struct tcindex_data {
-	struct tcindex_filter_result *perfect; /* perfect hash; NULL if none */
-	struct tcindex_filter **h; /* imperfect hash; only used if !perfect;
-				      NULL if unused */
-	u16 mask;		/* AND key with mask */
-	int shift;		/* shift ANDed key to the right */
-	int hash;		/* hash table size; 0 if undefined */
-	int alloc_hash;		/* allocated size */
-	int fall_through;	/* 0: only classify if explicit match */
-};
-
-static const struct tcf_ext_map tcindex_ext_map = {
-	.police = TCA_TCINDEX_POLICE,
-	.action = TCA_TCINDEX_ACT
-};
-
-static inline int
-tcindex_filter_is_set(struct tcindex_filter_result *r)
-{
-	return tcf_exts_is_predicative(&r->exts) || r->res.classid;
-}
-
-static struct tcindex_filter_result *
-tcindex_lookup(struct tcindex_data *p, u16 key)
-{
-	struct tcindex_filter *f;
-
-	if (p->perfect)
-		return tcindex_filter_is_set(p->perfect + key) ?
-			p->perfect + key : NULL;
-	else if (p->h) {
-		for (f = p->h[key % p->hash]; f; f = f->next)
-			if (f->key == key)
-				return &f->result;
-	}
-
-	return NULL;
-}
-
-
-static int tcindex_classify(struct sk_buff *skb, const struct tcf_proto *tp,
-			    struct tcf_result *res)
-{
-	struct tcindex_data *p = PRIV(tp);
-	struct tcindex_filter_result *f;
-	int key = (skb->tc_index & p->mask) >> p->shift;
-
-	pr_debug("tcindex_classify(skb %p,tp %p,res %p),p %p\n",
-		 skb, tp, res, p);
-
-	f = tcindex_lookup(p, key);
-	if (!f) {
-		if (!p->fall_through)
-			return -1;
-		res->classid = TC_H_MAKE(TC_H_MAJ(tp->q->handle), key);
-		res->class = 0;
-		pr_debug("alg 0x%x\n", res->classid);
-		return 0;
-	}
-	*res = f->res;
-	pr_debug("map 0x%x\n", res->classid);
-
-	return tcf_exts_exec(skb, &f->exts, res);
-}
-
-
-static unsigned long tcindex_get(struct tcf_proto *tp, u32 handle)
-{
-	struct tcindex_data *p = PRIV(tp);
-	struct tcindex_filter_result *r;
-
-	pr_debug("tcindex_get(tp %p,handle 0x%08x)\n", tp, handle);
-	if (p->perfect && handle >= p->alloc_hash)
-		return 0;
-	r = tcindex_lookup(p, handle);
-	return r && tcindex_filter_is_set(r) ? (unsigned long) r : 0UL;
-}
-
-
-static void tcindex_put(struct tcf_proto *tp, unsigned long f)
-{
-	pr_debug("tcindex_put(tp %p,f 0x%lx)\n", tp, f);
-}
-
-
-static int tcindex_init(struct tcf_proto *tp)
-{
-	struct tcindex_data *p;
-
-	pr_debug("tcindex_init(tp %p)\n", tp);
-	p = kzalloc(sizeof(struct tcindex_data), GFP_KERNEL);
-	if (!p)
-		return -ENOMEM;
-
-	p->mask = 0xffff;
-	p->hash = DEFAULT_HASH_SIZE;
-	p->fall_through = 1;
-
-	tp->root = p;
-	return 0;
-}
-
-
-static int
-__tcindex_delete(struct tcf_proto *tp, unsigned long arg, int lock)
-{
-	struct tcindex_data *p = PRIV(tp);
-	struct tcindex_filter_result *r = (struct tcindex_filter_result *) arg;
-	struct tcindex_filter *f = NULL;
-
-	pr_debug("tcindex_delete(tp %p,arg 0x%lx),p %p,f %p\n", tp, arg, p, f);
-	if (p->perfect) {
-		if (!r->res.class)
-			return -ENOENT;
-	} else {
-		int i;
-		struct tcindex_filter **walk = NULL;
-
-		for (i = 0; i < p->hash; i++)
-			for (walk = p->h+i; *walk; walk = &(*walk)->next)
-				if (&(*walk)->result == r)
-					goto found;
-		return -ENOENT;
-
-found:
-		f = *walk;
-		if (lock)
-			tcf_tree_lock(tp);
-		*walk = f->next;
-		if (lock)
-			tcf_tree_unlock(tp);
-	}
-	tcf_unbind_filter(tp, &r->res);
-	tcf_exts_destroy(tp, &r->exts);
-	kfree(f);
-	return 0;
-}
-
-static int tcindex_delete(struct tcf_proto *tp, unsigned long arg)
-{
-	return __tcindex_delete(tp, arg, 1);
-}
-
-static inline int
-valid_perfect_hash(struct tcindex_data *p)
-{
-	return  p->hash > (p->mask >> p->shift);
-}
-
-static const struct nla_policy tcindex_policy[TCA_TCINDEX_MAX + 1] = {
-	[TCA_TCINDEX_HASH]		= { .type = NLA_U32 },
-	[TCA_TCINDEX_MASK]		= { .type = NLA_U16 },
-	[TCA_TCINDEX_SHIFT]		= { .type = NLA_U32 },
-	[TCA_TCINDEX_FALL_THROUGH]	= { .type = NLA_U32 },
-	[TCA_TCINDEX_CLASSID]		= { .type = NLA_U32 },
-};
-
-static int
-tcindex_set_parms(struct tcf_proto *tp, unsigned long base, u32 handle,
-		  struct tcindex_data *p, struct tcindex_filter_result *r,
-		  struct nlattr **tb, struct nlattr *est)
-{
-	int err, balloc = 0;
-	struct tcindex_filter_result new_filter_result, *old_r = r;
-	struct tcindex_filter_result cr;
-	struct tcindex_data cp;
-	struct tcindex_filter *f = NULL; /* make gcc behave */
-	struct tcf_exts e;
-
-	err = tcf_exts_validate(tp, tb, est, &e, &tcindex_ext_map);
-	if (err < 0)
-		return err;
-
-	memcpy(&cp, p, sizeof(cp));
-	memset(&new_filter_result, 0, sizeof(new_filter_result));
-
-	if (old_r)
-		memcpy(&cr, r, sizeof(cr));
-	else
-		memset(&cr, 0, sizeof(cr));
-
-	if (tb[TCA_TCINDEX_HASH])
-		cp.hash = nla_get_u32(tb[TCA_TCINDEX_HASH]);
-
-	if (tb[TCA_TCINDEX_MASK])
-		cp.mask = nla_get_u16(tb[TCA_TCINDEX_MASK]);
-
-	if (tb[TCA_TCINDEX_SHIFT])
-		cp.shift = nla_get_u32(tb[TCA_TCINDEX_SHIFT]);
-
-	err = -EBUSY;
-	/* Hash already allocated, make sure that we still meet the
-	 * requirements for the allocated hash.
-	 */
-	if (cp.perfect) {
-		if (!valid_perfect_hash(&cp) ||
-		    cp.hash > cp.alloc_hash)
-			goto errout;
-	} else if (cp.h && cp.hash != cp.alloc_hash)
-		goto errout;
-
-	err = -EINVAL;
-	if (tb[TCA_TCINDEX_FALL_THROUGH])
-		cp.fall_through = nla_get_u32(tb[TCA_TCINDEX_FALL_THROUGH]);
-
-	if (!cp.hash) {
-		/* Hash not specified, use perfect hash if the upper limit
-		 * of the hashing index is below the threshold.
-		 */
-		if ((cp.mask >> cp.shift) < PERFECT_HASH_THRESHOLD)
-			cp.hash = (cp.mask >> cp.shift) + 1;
-		else
-			cp.hash = DEFAULT_HASH_SIZE;
-	}
-
-	if (!cp.perfect && !cp.h)
-		cp.alloc_hash = cp.hash;
-
-	/* Note: this could be as restrictive as if (handle & ~(mask >> shift))
-	 * but then, we'd fail handles that may become valid after some future
-	 * mask change. While this is extremely unlikely to ever matter,
-	 * the check below is safer (and also more backwards-compatible).
-	 */
-	if (cp.perfect || valid_perfect_hash(&cp))
-		if (handle >= cp.alloc_hash)
-			goto errout;
-
-
-	err = -ENOMEM;
-	if (!cp.perfect && !cp.h) {
-		if (valid_perfect_hash(&cp)) {
-			cp.perfect = kcalloc(cp.hash, sizeof(*r), GFP_KERNEL);
-			if (!cp.perfect)
-				goto errout;
-			balloc = 1;
-		} else {
-			cp.h = kcalloc(cp.hash, sizeof(f), GFP_KERNEL);
-			if (!cp.h)
-				goto errout;
-			balloc = 2;
-		}
-	}
-
-	if (cp.perfect)
-		r = cp.perfect + handle;
-	else
-		r = tcindex_lookup(&cp, handle) ? : &new_filter_result;
-
-	if (r == &new_filter_result) {
-		f = kzalloc(sizeof(*f), GFP_KERNEL);
-		if (!f)
-			goto errout_alloc;
-	}
-
-	if (tb[TCA_TCINDEX_CLASSID]) {
-		cr.res.classid = nla_get_u32(tb[TCA_TCINDEX_CLASSID]);
-		tcf_bind_filter(tp, &cr.res, base);
-	}
-
-	tcf_exts_change(tp, &cr.exts, &e);
-
-	tcf_tree_lock(tp);
-	if (old_r && old_r != r)
-		memset(old_r, 0, sizeof(*old_r));
-
-	memcpy(p, &cp, sizeof(cp));
-	memcpy(r, &cr, sizeof(cr));
-
-	if (r == &new_filter_result) {
-		struct tcindex_filter **fp;
-
-		f->key = handle;
-		f->result = new_filter_result;
-		f->next = NULL;
-		for (fp = p->h+(handle % p->hash); *fp; fp = &(*fp)->next)
-			/* nothing */;
-		*fp = f;
-	}
-	tcf_tree_unlock(tp);
-
-	return 0;
-
-errout_alloc:
-	if (balloc == 1)
-		kfree(cp.perfect);
-	else if (balloc == 2)
-		kfree(cp.h);
-errout:
-	tcf_exts_destroy(tp, &e);
-	return err;
-}
-
-static int
-tcindex_change(struct tcf_proto *tp, unsigned long base, u32 handle,
-	       struct nlattr **tca, unsigned long *arg)
-{
-	struct nlattr *opt = tca[TCA_OPTIONS];
-	struct nlattr *tb[TCA_TCINDEX_MAX + 1];
-	struct tcindex_data *p = PRIV(tp);
-	struct tcindex_filter_result *r = (struct tcindex_filter_result *) *arg;
-	int err;
-
-	pr_debug("tcindex_change(tp %p,handle 0x%08x,tca %p,arg %p),opt %p,"
-	    "p %p,r %p,*arg 0x%lx\n",
-	    tp, handle, tca, arg, opt, p, r, arg ? *arg : 0L);
-
-	if (!opt)
-		return 0;
-
-	err = nla_parse_nested(tb, TCA_TCINDEX_MAX, opt, tcindex_policy);
-	if (err < 0)
-		return err;
-
-	return tcindex_set_parms(tp, base, handle, p, r, tb, tca[TCA_RATE]);
-}
-
-
-static void tcindex_walk(struct tcf_proto *tp, struct tcf_walker *walker)
-{
-	struct tcindex_data *p = PRIV(tp);
-	struct tcindex_filter *f, *next;
-	int i;
-
-	pr_debug("tcindex_walk(tp %p,walker %p),p %p\n", tp, walker, p);
-	if (p->perfect) {
-		for (i = 0; i < p->hash; i++) {
-			if (!p->perfect[i].res.class)
-				continue;
-			if (walker->count >= walker->skip) {
-				if (walker->fn(tp,
-				    (unsigned long) (p->perfect+i), walker)
-				     < 0) {
-					walker->stop = 1;
-					return;
-				}
-			}
-			walker->count++;
-		}
-	}
-	if (!p->h)
-		return;
-	for (i = 0; i < p->hash; i++) {
-		for (f = p->h[i]; f; f = next) {
-			next = f->next;
-			if (walker->count >= walker->skip) {
-				if (walker->fn(tp, (unsigned long) &f->result,
-				    walker) < 0) {
-					walker->stop = 1;
-					return;
-				}
-			}
-			walker->count++;
-		}
-	}
-}
-
-
-static int tcindex_destroy_element(struct tcf_proto *tp,
-    unsigned long arg, struct tcf_walker *walker)
-{
-	return __tcindex_delete(tp, arg, 0);
-}
-
-
-static void tcindex_destroy(struct tcf_proto *tp)
-{
-	struct tcindex_data *p = PRIV(tp);
-	struct tcf_walker walker;
-
-	pr_debug("tcindex_destroy(tp %p),p %p\n", tp, p);
-	walker.count = 0;
-	walker.skip = 0;
-	walker.fn = &tcindex_destroy_element;
-	tcindex_walk(tp, &walker);
-	kfree(p->perfect);
-	kfree(p->h);
-	kfree(p);
-	tp->root = NULL;
-}
-
-
-static int tcindex_dump(struct tcf_proto *tp, unsigned long fh,
-    struct sk_buff *skb, struct tcmsg *t)
-{
-	struct tcindex_data *p = PRIV(tp);
-	struct tcindex_filter_result *r = (struct tcindex_filter_result *) fh;
-	unsigned char *b = skb_tail_pointer(skb);
-	struct nlattr *nest;
-
-	pr_debug("tcindex_dump(tp %p,fh 0x%lx,skb %p,t %p),p %p,r %p,b %p\n",
-		 tp, fh, skb, t, p, r, b);
-	pr_debug("p->perfect %p p->h %p\n", p->perfect, p->h);
-
-	nest = nla_nest_start(skb, TCA_OPTIONS);
-	if (nest == NULL)
-		goto nla_put_failure;
-
-	if (!fh) {
-		t->tcm_handle = ~0; /* whatever ... */
-		NLA_PUT_U32(skb, TCA_TCINDEX_HASH, p->hash);
-		NLA_PUT_U16(skb, TCA_TCINDEX_MASK, p->mask);
-		NLA_PUT_U32(skb, TCA_TCINDEX_SHIFT, p->shift);
-		NLA_PUT_U32(skb, TCA_TCINDEX_FALL_THROUGH, p->fall_through);
-		nla_nest_end(skb, nest);
-	} else {
-		if (p->perfect) {
-			t->tcm_handle = r-p->perfect;
-		} else {
-			struct tcindex_filter *f;
-			int i;
-
-			t->tcm_handle = 0;
-			for (i = 0; !t->tcm_handle && i < p->hash; i++) {
-				for (f = p->h[i]; !t->tcm_handle && f;
-				     f = f->next) {
-					if (&f->result == r)
-						t->tcm_handle = f->key;
-				}
-			}
-		}
-		pr_debug("handle = %d\n", t->tcm_handle);
-		if (r->res.class)
-			NLA_PUT_U32(skb, TCA_TCINDEX_CLASSID, r->res.classid);
-
-		if (tcf_exts_dump(skb, &r->exts, &tcindex_ext_map) < 0)
-			goto nla_put_failure;
-		nla_nest_end(skb, nest);
-
-		if (tcf_exts_dump_stats(skb, &r->exts, &tcindex_ext_map) < 0)
-			goto nla_put_failure;
-	}
-
-	return skb->len;
-
-nla_put_failure:
-	nlmsg_trim(skb, b);
-	return -1;
-}
-
-static struct tcf_proto_ops cls_tcindex_ops __read_mostly = {
-	.kind		=	"tcindex",
-	.classify	=	tcindex_classify,
-	.init		=	tcindex_init,
-	.destroy	=	tcindex_destroy,
-	.get		=	tcindex_get,
-	.put		=	tcindex_put,
-	.change		=	tcindex_change,
-	.delete		=	tcindex_delete,
-	.walk		=	tcindex_walk,
-	.dump		=	tcindex_dump,
-	.owner		=	THIS_MODULE,
-};
-
-static int __init init_tcindex(void)
-{
-	return register_tcf_proto_ops(&cls_tcindex_ops);
-}
-
-static void __exit exit_tcindex(void)
-{
-	unregister_tcf_proto_ops(&cls_tcindex_ops);
-}
-
-module_init(init_tcindex)
-module_exit(exit_tcindex)
-MODULE_LICENSE("GPL");
diff --git a/ap/project/pubconf.mk b/ap/project/pubconf.mk
index cedcba0..0d2c972 100755
--- a/ap/project/pubconf.mk
+++ b/ap/project/pubconf.mk
@@ -70,5 +70,5 @@
 export LIBGCC_KERNEL ?= libgcc.a

 export LIBNVRAM_API_NEW ?= no

 export LIBSOFT_TIMER_API_NEW ?= no

-

+export USE_OPTEE ?= no

 export MK_SDK_VERSION=yes
diff --git a/ap/project/zx297520v3/prj_vehicle/bin/220A1/elfs/normalelfs/zte_bip.elf b/ap/project/zx297520v3/prj_vehicle/bin/220A1/elfs/normalelfs/zte_bip.elf
index ba6a5c3..e4c32f9 100755
--- a/ap/project/zx297520v3/prj_vehicle/bin/220A1/elfs/normalelfs/zte_bip.elf
+++ b/ap/project/zx297520v3/prj_vehicle/bin/220A1/elfs/normalelfs/zte_bip.elf
Binary files differ
diff --git a/ap/project/zx297520v3/prj_vehicle/bin/220A1/elfs/normalelfs/zte_ipv6_slaac.elf b/ap/project/zx297520v3/prj_vehicle/bin/220A1/elfs/normalelfs/zte_ipv6_slaac.elf
index cbdf75f..d98fed6 100755
--- a/ap/project/zx297520v3/prj_vehicle/bin/220A1/elfs/normalelfs/zte_ipv6_slaac.elf
+++ b/ap/project/zx297520v3/prj_vehicle/bin/220A1/elfs/normalelfs/zte_ipv6_slaac.elf
Binary files differ
diff --git a/ap/project/zx297520v3/prj_vehicle/bin/220A1/elfs/normalelfs/zte_ndp.elf b/ap/project/zx297520v3/prj_vehicle/bin/220A1/elfs/normalelfs/zte_ndp.elf
index ccc17d1..044020d 100755
--- a/ap/project/zx297520v3/prj_vehicle/bin/220A1/elfs/normalelfs/zte_ndp.elf
+++ b/ap/project/zx297520v3/prj_vehicle/bin/220A1/elfs/normalelfs/zte_ndp.elf
Binary files differ
diff --git a/ap/project/zx297520v3/prj_vehicle/bin/220A1/elfs/normalelfs/zte_volte_main.elf b/ap/project/zx297520v3/prj_vehicle/bin/220A1/elfs/normalelfs/zte_volte_main.elf
index 96589de..3f0d8b0 100755
--- a/ap/project/zx297520v3/prj_vehicle/bin/220A1/elfs/normalelfs/zte_volte_main.elf
+++ b/ap/project/zx297520v3/prj_vehicle/bin/220A1/elfs/normalelfs/zte_volte_main.elf
Binary files differ
diff --git a/ap/project/zx297520v3/prj_vehicle/build/config.mk b/ap/project/zx297520v3/prj_vehicle/build/config.mk
index 75403de..d45a092 100755
--- a/ap/project/zx297520v3/prj_vehicle/build/config.mk
+++ b/ap/project/zx297520v3/prj_vehicle/build/config.mk
@@ -17,9 +17,9 @@
 #export ROOTFS_SIZE=16

 

 #userdata type 

-export USERDATA_FS_TYPE=jffs2

+export USERDATA_FS_TYPE=ubifs

 #only for ubifs partition userdata size (MB),È¥µôСÊýµã²¿·Ö

-#export USERDATA_SIZE=89

+export USERDATA_SIZE=40

 #libstdc++.so.6 for fota_dm app

 export USE_LIBSTDCPP := yes

 

diff --git a/ap/project/zx297520v3/prj_vehicle/config/normal/config.busybox b/ap/project/zx297520v3/prj_vehicle/config/normal/config.busybox
index ebc2d3a..1f1c38b 100755
--- a/ap/project/zx297520v3/prj_vehicle/config/normal/config.busybox
+++ b/ap/project/zx297520v3/prj_vehicle/config/normal/config.busybox
@@ -646,12 +646,12 @@
 # CONFIG_NANDWRITE is not set
 # CONFIG_NANDDUMP is not set
 # CONFIG_SETSERIAL is not set
-# CONFIG_UBIATTACH is not set
-# CONFIG_UBIDETACH is not set
-# CONFIG_UBIMKVOL is not set
-# CONFIG_UBIRMVOL is not set
-# CONFIG_UBIRSVOL is not set
-# CONFIG_UBIUPDATEVOL is not set
+CONFIG_UBIATTACH=y
+CONFIG_UBIDETACH=y
+CONFIG_UBIMKVOL=y
+CONFIG_UBIRMVOL=y
+CONFIG_UBIRSVOL=y
+CONFIG_UBIUPDATEVOL=y
 # CONFIG_ADJTIMEX is not set
 # CONFIG_BBCONFIG is not set
 # CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
diff --git a/ap/project/zx297520v3/prj_vehicle/config/normal/config.linux b/ap/project/zx297520v3/prj_vehicle/config/normal/config.linux
index 88d4f2f..c6ef55f 100755
--- a/ap/project/zx297520v3/prj_vehicle/config/normal/config.linux
+++ b/ap/project/zx297520v3/prj_vehicle/config/normal/config.linux
@@ -1703,7 +1703,12 @@
 CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_JFFS2_CMODE_SIZE is not set
 # CONFIG_JFFS2_CMODE_FAVOURLZO is not set
-# CONFIG_UBIFS_FS is not set
+CONFIG_UBIFS_FS=y
+# CONFIG_UBIFS_FS_XATTR is not set
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+# CONFIG_UBIFS_FS_DEBUG is not set
 # CONFIG_LOGFS is not set
 # CONFIG_CRAMFS is not set
 # CONFIG_SQUASHFS is not set
diff --git a/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/bin/zte_bip b/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/bin/zte_bip
index ba6a5c3..e4c32f9 100755
--- a/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/bin/zte_bip
+++ b/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/bin/zte_bip
Binary files differ
diff --git a/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/bin/zte_volte_main b/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/bin/zte_volte_main
index 8a544ba..e65bdef 100755
--- a/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/bin/zte_volte_main
+++ b/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/bin/zte_volte_main
Binary files differ
diff --git a/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/lib/libnvram.so b/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/lib/libnvram.so
index 7272e8b..2c0325b 100755
--- a/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/lib/libnvram.so
+++ b/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/lib/libnvram.so
Binary files differ
diff --git a/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/lib/libsoft_timer.so b/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/lib/libsoft_timer.so
index 1eca733..95dbf22 100755
--- a/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/lib/libsoft_timer.so
+++ b/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/lib/libsoft_timer.so
Binary files differ
diff --git a/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/sbin/zte_ipv6_slaac b/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/sbin/zte_ipv6_slaac
index cbdf75f..d98fed6 100755
--- a/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/sbin/zte_ipv6_slaac
+++ b/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/sbin/zte_ipv6_slaac
Binary files differ
diff --git a/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/sbin/zte_ndp b/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/sbin/zte_ndp
index ccc17d1..044020d 100755
--- a/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/sbin/zte_ndp
+++ b/ap/project/zx297520v3/prj_vehicle/fs/normal/rootfs/sbin/zte_ndp
Binary files differ
diff --git a/ap/project/zx297520v3/prj_vehicle_dc/bin/220A1/elfs/normalelfs/zte_bip.elf b/ap/project/zx297520v3/prj_vehicle_dc/bin/220A1/elfs/normalelfs/zte_bip.elf
index ba6a5c3..e4c32f9 100755
--- a/ap/project/zx297520v3/prj_vehicle_dc/bin/220A1/elfs/normalelfs/zte_bip.elf
+++ b/ap/project/zx297520v3/prj_vehicle_dc/bin/220A1/elfs/normalelfs/zte_bip.elf
Binary files differ
diff --git a/ap/project/zx297520v3/prj_vehicle_dc/bin/220A1/elfs/normalelfs/zte_ipv6_slaac.elf b/ap/project/zx297520v3/prj_vehicle_dc/bin/220A1/elfs/normalelfs/zte_ipv6_slaac.elf
index cbdf75f..d98fed6 100755
--- a/ap/project/zx297520v3/prj_vehicle_dc/bin/220A1/elfs/normalelfs/zte_ipv6_slaac.elf
+++ b/ap/project/zx297520v3/prj_vehicle_dc/bin/220A1/elfs/normalelfs/zte_ipv6_slaac.elf
Binary files differ
diff --git a/ap/project/zx297520v3/prj_vehicle_dc/bin/220A1/elfs/normalelfs/zte_ndp.elf b/ap/project/zx297520v3/prj_vehicle_dc/bin/220A1/elfs/normalelfs/zte_ndp.elf
index ccc17d1..044020d 100755
--- a/ap/project/zx297520v3/prj_vehicle_dc/bin/220A1/elfs/normalelfs/zte_ndp.elf
+++ b/ap/project/zx297520v3/prj_vehicle_dc/bin/220A1/elfs/normalelfs/zte_ndp.elf
Binary files differ
diff --git a/ap/project/zx297520v3/prj_vehicle_dc/bin/220A1/elfs/normalelfs/zte_volte_main.elf b/ap/project/zx297520v3/prj_vehicle_dc/bin/220A1/elfs/normalelfs/zte_volte_main.elf
index 96589de..3f0d8b0 100755
--- a/ap/project/zx297520v3/prj_vehicle_dc/bin/220A1/elfs/normalelfs/zte_volte_main.elf
+++ b/ap/project/zx297520v3/prj_vehicle_dc/bin/220A1/elfs/normalelfs/zte_volte_main.elf
Binary files differ
diff --git a/ap/project/zx297520v3/prj_vehicle_dc/build/config.mk b/ap/project/zx297520v3/prj_vehicle_dc/build/config.mk
index 1a7361d..d4bf832 100755
--- a/ap/project/zx297520v3/prj_vehicle_dc/build/config.mk
+++ b/ap/project/zx297520v3/prj_vehicle_dc/build/config.mk
@@ -25,8 +25,8 @@
 export USE_LIBSTDCPP := yes

 

 # pagesize 2K and block size 128K default

-export PAGESIZE=0x1000

-export ERASEBLOCK=0x40000

+export PAGESIZE=0x800

+export ERASEBLOCK=0x20000

 

 # yes is debug mode,other value is release mode.

 export GLOBAL_DEBUG=no

@@ -110,3 +110,5 @@
 export LIBSOFT_TIMER_API_NEW:=yes

 CUSTOM_MACRO += -DLIBSOFT_TIMER_API_NEW

 

+export USE_OPTEE := yes

+

diff --git a/ap/project/zx297520v3/prj_vehicle_dc/config/normal/config_app.mk b/ap/project/zx297520v3/prj_vehicle_dc/config/normal/config_app.mk
index 54093bf..80940c2 100755
--- a/ap/project/zx297520v3/prj_vehicle_dc/config/normal/config_app.mk
+++ b/ap/project/zx297520v3/prj_vehicle_dc/config/normal/config_app.mk
@@ -5,7 +5,8 @@
 			Script \

 			zte_mdl \

 			fota_upi_ab \

-			zte_amt

+			zte_amt \

+			sc_absvr

 

 #yes only when klocwork static analysis 

 ifneq ($(KW_SKIP),yes)

diff --git a/ap/project/zx297520v3/prj_vehicle_dc/config/normal/config_lib.mk b/ap/project/zx297520v3/prj_vehicle_dc/config/normal/config_lib.mk
index 2fdd0f1..65e9fa8 100755
--- a/ap/project/zx297520v3/prj_vehicle_dc/config/normal/config_lib.mk
+++ b/ap/project/zx297520v3/prj_vehicle_dc/config/normal/config_lib.mk
@@ -1,5 +1,5 @@
 

-zte_lib := libtinyalsa libvoice libsoftap \

+zte_lib := libtinyalsa libsoftap \

 libatutils libatext libcpnv libamt libzte_dmapp libkey libdebug_info

 

 #yes only  when klocwork static analysis 

@@ -11,7 +11,7 @@
 ifneq ($(MK_SDK_VERSION),yes)

 zte_lib += libzte_vsim

 endif

-zte_lib += libsoft_timer libnvram libupi_ab

+zte_lib += libsoft_timer libnvram libupi_ab libvoice

 

 ifeq ($(USE_MIXDATA_SUPPORT),yes)

 zte_lib += libaudiomix

@@ -19,6 +19,8 @@
 

 populate_sdk_lib := libsqlite libcurl libssl expat dbus glib

 

+zte_lib += libupi_ab

+

 export CONFIG_LIBSSL_SHARE_LIB=y

 export CONFIG_LIBCURL_SHARE_LIB=y

 

diff --git a/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/bin/zte_bip b/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/bin/zte_bip
index ba6a5c3..e4c32f9 100755
--- a/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/bin/zte_bip
+++ b/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/bin/zte_bip
Binary files differ
diff --git a/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/bin/zte_volte_main b/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/bin/zte_volte_main
index 8a544ba..e65bdef 100755
--- a/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/bin/zte_volte_main
+++ b/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/bin/zte_volte_main
Binary files differ
diff --git a/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/etc/rc b/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/etc/rc
index 98f56a3..707f4ca 100755
--- a/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/etc/rc
+++ b/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/etc/rc
@@ -248,6 +248,7 @@
 
 echo "Starting FOTA apps......!!"
 #/sbin/start_update_app.sh &
+sc_absvr &
 
 if [[ $bootflag == "1" ]]; then
 #/usr/sbin/telnetd -p 4719 &
@@ -264,13 +265,9 @@
 rm -rf /etc_rw/udhcpd*.pid
 sh /sbin/rm_dev.sh
 echo 2000 > /proc/sys/net/nf_conntrack_max
-# read nv for which core to occupy uart console
-coreid_uart_cons=$(nv get uart_console_coreid)
-if [[ $coreid_uart_cons == "1" ]]; then
-echo 1 > /sys/devices/platform/zx29_uart.1/coreid_occupy_uart
-cat /sys/devices/platform/zx29_uart.1/coreid_occupy_uart
-fi
-if [[ $coreid_uart_cons == "2" ]]; then
-echo 2 > /sys/devices/platform/zx29_uart.1/coreid_occupy_uart
-cat /sys/devices/platform/zx29_uart.1/coreid_occupy_uart
+
+adb_agent=`nv get adb_core_id`
+
+if [ "$adb_agent" == "1" ]; then
+echo 1 >/sys/dwc_usb/usbconfig/adb_agent
 fi
diff --git a/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/etc_ro/systemPartitionInfo.conf b/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/etc_ro/systemPartitionInfo.conf
new file mode 100755
index 0000000..bea1ff9
--- /dev/null
+++ b/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/etc_ro/systemPartitionInfo.conf
@@ -0,0 +1,28 @@
+[Head]

+magic=SUPI

+plat=0

+plat_partition_num=4

+oem_partition_num=1

+

+

+[Platform_Partition_Info]

+name=uboot

+system_type=0

+partition_type=0

+

+name=imagefs

+system_type=0

+partition_type=0

+

+name=rootfs

+system_type=0

+partition_type=0

+

+name=caprootfs

+system_type=0

+partition_type=0

+

+[Oem_Partition_Info]

+name=oem

+system_type=1

+partition_type=0

diff --git a/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/lib/libnvram.so b/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/lib/libnvram.so
index 7272e8b..2c0325b 100755
--- a/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/lib/libnvram.so
+++ b/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/lib/libnvram.so
Binary files differ
diff --git a/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/lib/libsoft_timer.so b/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/lib/libsoft_timer.so
index 1eca733..95dbf22 100755
--- a/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/lib/libsoft_timer.so
+++ b/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/lib/libsoft_timer.so
Binary files differ
diff --git a/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/sbin/zte_ipv6_slaac b/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/sbin/zte_ipv6_slaac
index cbdf75f..d98fed6 100755
--- a/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/sbin/zte_ipv6_slaac
+++ b/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/sbin/zte_ipv6_slaac
Binary files differ
diff --git a/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/sbin/zte_ndp b/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/sbin/zte_ndp
index ccc17d1..044020d 100755
--- a/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/sbin/zte_ndp
+++ b/ap/project/zx297520v3/prj_vehicle_dc/fs/normal/rootfs/sbin/zte_ndp
Binary files differ