Index: YC_Download.bat
===================================================================
--- /branch/USB/dongle_sdk/YC_Download.bat	(revision 0)
+++ /branch/USB/dongle_sdk/YC_Download.bat	(working copy)
@@ -0,0 +1,12 @@
+call do.bat eep
+e ku
+ping 127.1 -n 1 >nul
+e pu
+ping 127.1 -n 1 >nul
+e 8081 10
+e 8075 0000
+e 8079 0000
+e 807d ffff
+e ep output/eeprom.dat
+e er 0 10
+e ku
Index: d_sdk.bat
===================================================================
--- /branch/USB/dongle_sdk/d_sdk.bat	(revision 0)
+++ /branch/USB/dongle_sdk/d_sdk.bat	(working copy)
@@ -0,0 +1 @@
+call do.bat eep
\ No newline at end of file
Index: do.bat
===================================================================
--- /branch/USB/dongle_sdk/do.bat	(revision 0)
+++ /branch/USB/dongle_sdk/do.bat	(working copy)
@@ -0,0 +1,71 @@
+@set FPGA_PATH=fpgajic\fpga
+@set ROM_PATH=.
+@set MV_PATCH=mv\src\yichip
+@set YC_PATCH_FILE=yc_patch_yc1021.h
+@set enc=1
+@set enckey=0000000000000000
+@echo off
+setlocal enabledelayedexpansion
+
+copy patch\patch.prog output\bt_program23.meta
+copy rom\rom.format  + rom\label.format + patch\patch.format + rom\command.format output\bt_format.meta
+perl util/mergepatch.pl output/bt_program23.meta
+perl util/memalloc.pl output/bt_format.meta
+cd output
+osiuasm bt_program23 -O-W
+copy  ..\sched\usb.dat +  ..\sched\109x.dat ..\output\sched.rom
+
+
+if "%1" equ "eep" (
+	goto genromrevc
+)else (
+  goto downloadram
+)
+
+
+
+:genromrevc
+@echo Start to generate EEPROM code
+
+..\util\geneep -n ramcode.rom sched.rom 0 %enckey% c
+cd ..\output
+
+echo eeprom.dat is filling with 0xff......
+cd ..\output
+copy eeprom.dat ..\util\eeprom.dat
+
+cd ..\util
+eeprom2fulleeprom.exe eeprom.dat 64>compare2.dat
+crc16.exe compare2.dat 2 >..\output\eeprom.dat
+del eeprom.dat
+del compare2.dat
+
+echo eeprom.dat_with0xff Generated......
+
+echo off
+
+:gen_eep_end
+cd ..
+echo **********************************
+echo EEPROM Generated.
+echo The Device is %device_option%. 
+echo Use command "e ep" to download EEPROM.
+echo **********************************
+goto end
+
+
+
+:downloadram
+echo on
+@echo Start to download ram code
+e ku
+e hu
+e su sched.rom
+@echo **********************************
+@echo RAM CODE has been downloaded.
+@echo The Device is %device_option%. 
+@echo **********************************
+cd ..
+
+
+:end
Index: output/bt_format.meta
===================================================================
--- /branch/USB/dongle_sdk/output/bt_format.meta	(revision 0)
+++ /branch/USB/dongle_sdk/output/bt_format.meta	(working copy)
@@ -0,0 +1,13084 @@
+0x4000 mem_patch00
+0x4001 mem_patch01
+0x4002 mem_patch02
+0x4003 mem_patch03
+0x4004 mem_patch04
+0x4005 mem_patch05
+0x4006 mem_patch06
+0x4007 mem_patch07
+0x4008 mem_patch08
+0x4009 mem_patch09
+0x400a mem_patch0a
+0x400b mem_patch0b
+0x400c mem_patch0c
+0x400d mem_patch0d
+0x400e mem_patch0e
+0x400f mem_patch0f
+0x4010 mem_patch10
+0x4011 mem_patch11
+0x4012 mem_patch12
+0x4013 mem_patch13
+0x4014 mem_patch14
+0x4015 mem_patch15
+0x4016 mem_patch16
+0x4017 mem_patch17
+0x4018 mem_patch18
+0x4019 mem_patch19
+0x401a mem_patch1a
+0x401b mem_patch1b
+0x401c mem_patch1c
+0x401d mem_patch1d
+0x401e mem_patch1e
+0x401f mem_patch1f
+0x4020 mem_patch20
+0x4021 mem_patch21
+0x4022 mem_patch22
+0x4023 mem_patch23
+0x4024 mem_patch24
+0x4025 mem_patch25
+0x4026 mem_patch26
+0x4027 mem_patch27
+0x4028 mem_patch28
+0x4029 mem_patch29
+0x402a mem_patch2a
+0x402b mem_patch2b
+0x402c mem_patch2c
+0x402d mem_patch2d
+0x402e mem_patch2e
+0x402f mem_patch2f
+0x4030 mem_patch30
+0x4031 mem_patch31
+0x4032 mem_patch32
+0x4033 mem_patch33
+0x4034 mem_patch34
+0x4035 mem_patch35
+0x4036 mem_patch36
+0x4037 mem_patch37
+0x4038 mem_patch38
+0x4039 mem_patch39
+0x403a mem_patch3a
+0x403b mem_patch3b
+0x403c mem_patch3c
+0x403d mem_patch3d
+0x403e mem_patch3e
+0x403f mem_patch3f
+0x4040 mem_context
+0x4090 mem_current_amaddr
+0x4091 mem_lpm_mode
+0x4092 mem_device_option
+0x4093 mem_scan_mode
+0x4094 mem_last_clkn
+0x4098 mem_features
+0x40a0 mem_lap
+0x40a3 mem_uap
+0x40a4 mem_nap
+0x40a6 mem_npage
+0x40a7 mem_glap
+0x40aa mem_class
+0x40ad mem_iscan_window
+0x40af mem_iscan_interval
+0x40b1 mem_pscan_window
+0x40b3 mem_pscan_interval
+0x40b5 mem_page_interval
+0x40b7 mem_page_window
+0x40b9 mem_page_to
+0x40bb mem_inq_window
+0x40bd mem_fcomp_mul
+0x40be mem_fcomp_div
+0x40bf mem_rx_window_init
+0x40c1 mem_rx_window_sniff
+0x40c3 mem_rf_init_ptr
+0x40c5 mem_last_type
+0x40c6 mem_last_type_esco
+0x40c7 mem_last_type_saved
+0x40c8 mem_retransmission_cnt
+0x40ca mem_next_btclk
+0x40ce mem_rf_rccal
+0x40cf mem_handle_num
+0x40d0 mem_max_slot
+0x40d1 mem_eir_enable
+0x40d2 mem_afh_instant
+0x40d6 mem_afh_error_total
+0x40d8 mem_afh_cfg
+0x40d9 mem_afh_new_mod
+0x40da mem_afh_map_lo
+0x40df mem_afh_map_hi
+0x40e4 mem_afh_used
+0x40e5 mem_afh_index
+0x40e7 mem_afh_map_new
+0x40f2 mem_afh_map
+0x4142 mem_afh_timer
+0x4146 mem_afh_classify_channel_map
+0x4150 mem_chip_functions
+0x4152 mem_lpm_wake_lock
+0x4154 mem_lpm_interval
+0x4156 mem_lpm_overhead
+0x4157 mem_lpm_hibernate_switch
+0x4158 mem_esco_addr
+0x4159 mem_sniff_unint_lost
+0x415a mem_ptt
+0x415b mem_sleep_counter//should be 0x41fc in REVC
+0x415f mem_sleep_counter_all
+0x4163 mem_sleep_clkn
+0x4169 mem_sniff_rcv
+0x416c mem_sniff_lost
+0x416f mem_clks_per_lpo
+0x4172 mem_lpm_mult
+0x4173 mem_lpm_mult_timeout
+0x4174 mem_lpm_mult_cnt
+0x4175 mem_lpm_config
+0x4178 mem_lpm_xtalcnt
+0x4179 mem_lpm_buckcnt
+0x417a mem_lpm_ldocnt
+0x417b mem_lpm_isogate
+0x417c mem_lpm_isogate_final
+0x417d mem_saved_gpio// should be 0x421e in REVC
+0x418d mem_saved_gsel
+0x4190 mem_saved_mark
+0x4198 mem_saved_spidctrl
+0x4199 mem_patch_ptr
+0x419b mem_patch_len
+0x419d mem_timers
+0x41bd mem_link_key_exists
+0x41be mem_link_key
+0x41ce mem_hci_cmd
+0x41cf mem_hci_conn_handle
+0x41d0 mem_hci_plap
+0x41d3 mem_hci_puap
+0x41d4 mem_hci_pnap
+0x41d6 mem_uartd_rxitems_got_data
+0x41d7 mem_uartd_rxitems_threshold
+0x41d8 mem_uartd_rx_timeout
+0x41da mem_loadcode_times
+0x41db mem_tx_lch
+0x41dc mem_tx_len
+0x41de mem_tx_power
+0x41df mem_context_number
+0x41e0 mem_250k_freq_enable
+0x41e1 mem_rf_init_data
+0x41e2 mem_app_handshake_flag
+0x41e3 mem_sniff_param_interval
+0x41e5 mem_sniff_param_attempt
+0x41e7 mem_sniff_param_timeout
+0x41e9 mem_cb_check_wakelock
+0x41eb mem_cb_before_hibernate
+0x41ed mem_cb_before_lpm
+0x41ef mem_cb_le_process
+0x41f1 mem_cb_bt_process
+0x41f3 mem_cb_idle_process
+0x41f5 mem_cb_bb_event_process
+0x41f7 mem_cb_discovry_timeout
+0x41f9 mem_cb_att_write
+0x41fb mem_cb_ble_transmit
+0x41fd mem_cb_event_timer
+0x41ff mem_cb_bt_set_mult
+0x4201 mem_cb_spi_flash_write_complate
+0x4203 mem_eeprom_base
+0x4205 mem_unsniff2sniff_timer_count
+0x4206 mem_wake_up_delay_timer
+0x4207 mem_app_connection_options
+0x4208 mem_app_disconn_reason
+0x420a mem_app_disconn_reason_flag
+0x420c mem_lpm_delay_after_sniff
+0x4210 mem_xrecord_mode
+0x4211 mem_eeprom_block_size
+0x4212 mem_spi_init_clk
+0x4213 mem_spi_init_delay_time
+0x4214 mem_spi_ncs_gpio
+0x4215 mem_nv_data_ptr
+0x4217 mem_nv_data_number
+0x4218 mem_queue_ptr
+0x421a mem_ui_led_struct_num
+0x421b mem_ui_led_struct_ptr
+0x421d mem_0_5_adc_io_data
+0x421f mem_1v_adc_hvin_data
+0x4221 mem_2v_adc_vinlpm_data
+0x4223 mem_1v_adc_io_data
+0x4225 mem_5v_adc_hvin_data
+0x4227 mem_3v_adc_vinlpm_data
+0x4229 mem_otp_adc_flag
+0x422b mem_reference_voltage
+0x422d mem_adc_config_flag
+0x422e mem_adc_channel
+0x422f mem_adc_current_value
+0x4231 mem_adc_power_flag//bit0:low power falg ; bit1:no power flag
+0x4232 mem_spi_write_addr
+0x4235 mem_spi_write_ptr
+0x4237 mem_spi_write_len
+0x4239 mem_spi_write_flash_sm
+0x423a mem_eeprom_wp_gpio
+0x423b mem_kscan_ptr
+0x423d mem_key_num_ptr
+0x423d mem_keyscan_ptr
+0x423f mem_power_param_ptr
+0x4241 mem_24g_head_ptr
+0x4243 mem_baud
+0x4245 mem_hci_lt_rx_state
+0x4246 mem_l2cap_xmem_start
+0x4246 mem_l2cap_tx_multi_offset//0 means single packet
+0x4248 mem_sdp_remote_cid
+0x424a mem_rfcomm_remote_cid
+0x424c mem_hid_ctrl_remote_cid
+0x424e mem_hid_int_remote_cid
+0x4250 mem_sdp_state
+0x4251 mem_rfcomm_state
+0x4252 mem_hid_control_state
+0x4253 mem_hid_interrupt_state
+0x4254 mem_spp_state
+0x4255 mem_ML2CAP_comm_id
+0x4256 mem_used_map
+0x4257 mem_tx_fifo0
+0x4257 mem_tx_fifo0_map
+0x4258 mem_tx_fifo0_ptr
+0x425a mem_tx_fifo1
+0x425a mem_tx_fifo1_map
+0x425b mem_tx_fifo1_ptr
+0x425d mem_tx_fifo2
+0x425d mem_tx_fifo2_map
+0x425e mem_tx_fifo2_ptr
+0x4260 mem_tx_fifo3
+0x4260 mem_tx_fifo3_map
+0x4261 mem_tx_fifo3_ptr
+0x4263 mem_tx_fifo_end
+0x4263 mem_l2cap_lpm_txbuf
+0x4363 mem_l2cap_flow_ctrl_flag
+0x4364 mem_l2cap_pending_item
+0x4365 mem_l2cap_xmem_end
+0x4365 mem_le_dsniff
+0x4367 mem_le_conn_interval
+0x4369 mem_le_scan_enable
+0x436a mem_le_scan_interval
+0x436c mem_le_scan_window
+0x436e mem_le_adv_enable
+0x436f mem_le_adv_data_len
+0x4370 mem_le_adv_data
+0x438f mem_le_scan_data_len
+0x4390 mem_le_scan_data
+0x43af mem_le_name_len
+0x43b0 mem_le_name
+0x43ce mem_le_new_map
+0x43d3 mem_le_new_param
+0x43d3 mem_le_new_transmitwindowsize
+0x43d4 mem_le_new_transmitwindowoffset
+0x43d6 mem_le_new_conninterval
+0x43d8 mem_le_new_connslavelatency
+0x43da mem_le_new_connsupervisiontimeout
+0x43dc mem_le_txheader
+0x43dd mem_le_txlen
+0x43de mem_le_txpayload
+0x43e0 mem_le_txcid
+0x43e2 mem_le_l2cap
+0x43e3 mem_le_l2cap_response
+0x43e4 mem_le_txbdy
+0x4403 mem_le_pcnt_tx
+0x4408 mem_le_pcnt_rx
+0x440d mem_le_last_mic
+0x4411 mem_le_ivm
+0x4415 mem_le_ivs
+0x4419 mem_le_ltk
+0x4429 mem_ltk_exists
+0x442a mem_le_rconfirm
+0x443a mem_le_srand
+0x444a mem_le_iat
+0x444b mem_le_rat
+0x444c mem_le_preq
+0x444d mem_le_preq_iocap
+0x444e mem_le_preq_oob
+0x444f mem_le_preq_auth
+0x4450 mem_le_preq_max_keysize
+0x4451 mem_le_preq_init_key_distribution
+0x4452 mem_le_preq_resp_key_distribution
+0x4453 mem_le_pres
+0x4454 mem_le_pres_iocap
+0x4455 mem_le_pres_oob
+0x4456 mem_le_pres_auth
+0x4457 mem_le_pres_max_keysize
+0x4458 mem_le_pres_init_key_distribution
+0x4459 mem_le_pres_resp_key_distribution
+0x445a mem_le_search_handle_start
+0x445c mem_le_search_handle_end
+0x445e mem_le_att_offset
+0x445e mem_le_search_att_type_length
+0x445f mem_le_search_att_type
+0x446f mem_le_notify_handle
+0x4471 mem_le_search_uuid_length
+0x4472 mem_le_search_uuid
+0x4482 mem_le_adv_param
+0x4482 mem_le_adv_interval
+0x4484 mem_le_adv_type
+0x4485 mem_le_adv_own_addr_type
+0x4486 mem_le_adv_direct_addr_type
+0x4487 mem_le_adv_direct_addr
+0x448d mem_le_adv_channel_map
+0x448e mem_le_conn_param
+0x448e mem_le_conn_peer_addr_type
+0x448f mem_le_conn_peer_addr
+0x4495 mem_le_conn_own_addr_type
+0x4496 mem_le_interval_min
+0x4498 mem_le_interval_max
+0x449a mem_le_latency
+0x449c mem_le_timeout
+0x449e mem_le_scan_params
+0x449e mem_le_scan_type
+0x449f mem_le_scan_own_addr_type
+0x44a0 mem_le_lap
+0x44a3 mem_le_uap
+0x44a4 mem_le_nap
+0x44a6 mem_le_local_mtu
+0x44a8 mem_le_remote_mtu
+0x44aa mem_le_skdm
+0x44b2 mem_le_skds
+0x44ba mem_le_init_superto
+0x44bc mem_ui_le_uuid_table
+0x44be mem_le_secure_connect_enable
+0x44bf mem_le_secure_connect_flag
+0x44c0 mem_le_sc_calc
+0x44c1 mem_le_secure_connect_state
+0x44c2 mem_le_sc_confirm_gkey_flag
+0x44c3 mem_le_sc_local_key_invalid
+0x44c4 mem_le_pairing_state
+0x44c5 mem_le_enc_state
+0x44c6 mem_le_pairing_mode
+0x44c7 mem_le_tk
+0x44cb mem_le_ediv
+0x44cd mem_le_rand
+0x44d5 mem_le_irk
+0x44e5 mem_le_transmit_window
+0x44e9 mem_le_configuration
+0x44ea mem_le_fixed_ltk
+0x44fa mem_le_pairing_handle
+0x44fc mem_le_l2cap_size
+0x44fe mem_le_packet_len_recved
+0x44ff mem_le_tx_buff_used
+0x4500 mem_le_tx_ptr0
+0x4502 mem_le_tx_ptr1
+0x4504 mem_le_tx_ptr2
+0x4506 mem_le_tx_ptr3
+0x4508 mem_le_signaling_identifier
+0x4509 mem_le_l2cap_signaling_conn_param_update_rsp_result
+0x450b mem_le_packet_size
+0x450c mem_le_packet_llid
+0x450d mem_le_payload_ptr
+0x450f mem_le_md_count
+0x4510 mem_lmp_version
+0x4513 mem_lmp_subversion
+0x4515 mem_local_name_length
+0x4516 mem_local_name
+0x4519 mem_local_name2
+0x4559 mem_local_name_end
+0x455a mem_unsniff2sniff_timer
+0x455b mem_switch_flag
+0x455c mem_classic_bt_flag
+0x455d mem_pn_dlci
+0x455e mem_pn_max_frame_size
+0x4560 memFCStemp1
+0x4561 memFCStemp2
+0x4562 memFCStemp3
+0x4563 mem_rfcomm_initiator
+0x4564 mem_remote_spp_channel
+0x4565 mem_HIUfcs_SPP
+0x4566 mem_HIUfcs_SPP_WCredits
+0x4567 mem_rfcomm_send_more_pkt
+0x4568 mem_remote_credits
+0x4569 mem_credit_given
+0x456a mem_ms_channel
+0x456b mem_credit_flag
+0x456c mem_rfcomm_max_frame_size
+0x456e mem_rfcomm_credit_init_data
+0x456f mem_cb_receive_spp_data
+0x4571 mem_nl_rx_data_src
+0x4573 mem_nl_rx_len_all
+0x4575 mem_ui_uuid_table
+0x4577 mem_all_uuid_16bits
+0x458d mem_all_uuid_128bits
+0x45af mem_sdp_l2capch_ptr
+0x45b1 mem_sp_local_key_invalid
+0x45b2 mem_le_private_key_256
+0x45d2 mem_le_pubkey_local_x_256
+0x45f2 mem_le_pubkey_local_y_256
+0x4612 mem_sp_private_key
+0x462a mem_sp_pubkey_local
+0x462a mem_sp_pubkey_local_x
+0x4642 mem_sp_pubkey_local_x_end
+0x4642 mem_sp_pubkey_local_y
+0x465a mem_ssp_enable
+0x465b mem_sp_iocap_local
+0x465e mem_sp_iocap_remote
+0x4661 mem_flag_mode_ssp_pin
+0x4662 mem_ssp_mode_flag
+0x4663 mem_authentication_passkey_times
+0x4664 mem_passkey_1bit
+0x4665 mem_flag_pairing_state
+0x4666 mem_ipc_lock_bt
+0x4667 mem_ipc_lock_c51
+0x4668 mem_ipc_fifo_bt2c51
+0x4670 mem_ipc_fifo_c512bt
+0x4678 mem_ui_button_timer
+0x4679 mem_ui_button_last_state
+0x467a mem_ui_timer_last_btclk
+0x467e mem_discovery_timeout_timer_count
+0x4680 mem_hid_handshake_timer_count
+0x4681 memui_reconnect_mode
+0x4682 mem_ui_state_map
+0x4684 mem_ui_profile_supported
+0x4685 mem_ui_button_timeout
+0x4686 mem_ui_button_gpio
+0x4687 mem_discovery_timeout
+0x4689 mem_pin_length
+0x468a mem_pin
+0x469a mem_antl_lpm_interval
+0x469c mem_antl_adv_interval
+0x469e mem_antl_slow_adv_lpm_interval
+0x46a0 mem_antl_slow_adv_adv_interval
+0x46a2 mem_antl_led_style
+0x46a2 mem_antl_led_type
+0x46a3 mem_antl_led_blink_count
+0x46a4 mem_antl_led_gpio
+0x46a5 mem_antl_led_on_time
+0x46a7 mem_antl_led_off_time
+0x46a9 mem_antl_led_cb_on
+0x46ab mem_antl_led_cb_off
+0x46ad mem_antl_buzzer_style
+0x46ad mem_antl_buzzer_type
+0x46ae mem_antl_buzzer_blink_count
+0x46af mem_antl_buzzer_gpio
+0x46b0 mem_antl_buzzer_on_time
+0x46b2 mem_antl_buzzer_off_time
+0x46b4 mem_antl_buzzer_cb_on
+0x46b6 mem_antl_buzzer_cb_off
+0x46b8 mem_antl_fast_adv_led_style
+0x46b8 mem_antl_fast_adv_led_type
+0x46b9 mem_antl_fast_adv_led_blink_count
+0x46ba mem_antl_fast_adv_led_gpio
+0x46bb mem_antl_fast_adv_led_on_time
+0x46bd mem_antl_fast_adv_led_off_time
+0x46bf mem_antl_slow_adv_led_style
+0x46bf mem_antl_slow_adv_led_type
+0x46c0 mem_antl_slow_adv_led_blink_count
+0x46c1 mem_antl_slow_adv_led_gpio
+0x46c2 mem_antl_slow_adv_led_on_time
+0x46c4 mem_antl_slow_adv_led_off_time
+0x46c6 mem_antl_power_starting_led_style
+0x46c6 mem_antl_power_starting_led_type
+0x46c7 mem_antl_power_starting_led_blink_count
+0x46c8 mem_antl_power_starting_led_gpio
+0x46c9 mem_antl_power_starting_led_on_time
+0x46cb mem_antl_power_starting_led_off_time
+0x46cd mem_antl_power_starting_buzzer_style
+0x46d4 mem_antl_power_off_led_style
+0x46d4 mem_antl_power_off_led_type
+0x46d5 mem_antl_power_off_led_link_count
+0x46d6 mem_antl_power_off_led_gpio
+0x46d7 mem_antl_power_off_led_on_time
+0x46d9 mem_antl_power_off_led_off_time
+0x46db mem_antl_power_off_buzzer_style
+0x46db mem_antl_power_off_buzzer_type
+0x46dc mem_antl_power_off_buzzer_link_count
+0x46dd mem_antl_power_off_buzzer_gpio
+0x46de mem_antl_power_off_buzzer_on_time
+0x46e0 mem_antl_power_off_buzzer_off_time
+0x46e2 mem_antl_alert_led_stlye
+0x46e9 mem_antl_alert_buzzer_stlye
+0x46e9 mem_antl_alert_buzzer_type
+0x46ea mem_antl_alert_buzzer_blink_count
+0x46eb mem_antl_alert_buzzer_gpio
+0x46ec mem_antl_alert_buzzer_on_time
+0x46ee mem_antl_alert_buzzer_off_time
+0x46f0 mem_antl_key_led_style
+0x46f0 mem_antl_key_led_type
+0x46f1 mem_antl_key_led_blink_count
+0x46f2 mem_antl_key_led_gpio
+0x46f3 mem_antl_key_led_on_time
+0x46f5 mem_antl_key_led_off_time
+0x46f7 mem_antl_key_buzzer_style
+0x46fe mem_antl_queue_width
+0x46ff mem_antl_queue_depth
+0x4700 mem_antl_queue_curr_num
+0x4701 mem_antl_queue_read_ptr
+0x4702 mem_antl_queue_write_ptr
+0x4703 mem_antl_queue_buff
+0x4753 mem_antl_key_scan_enable
+0x4754 mem_antl_led_num
+0x4755 mem_antl_led_gpio_map
+0x4759 mem_antl_power_param
+0x4759 mem_antl_power_state
+0x475a mem_antl_power_timer
+0x475b mem_antl_power_off_timeout
+0x475c mem_antl_power_starting_timeout
+0x475d mem_antl_power_off_cb
+0x475f mem_antl_power_starting_cb
+0x4761 mem_antl_power_standby_cb
+0x4763 mem_event_button_up_cb
+0x4765 mem_antl_key_num
+0x4766 mem_cb_antl_key
+0x4768 mem_antl_key_conf0
+0x476c mem_antl_key0_press
+0x477b mem_antl_key0_release
+0x478a mem_antl_conn_updata_procedure_state
+0x478b mem_client_characteristic_configuration_descriptor
+0x478d mem_adc_timer
+0x478f mem_antl_conn_update_timer
+0x4790 mem_antl_send_updata_le_param_timer
+0x4791 mem_antl_le_sleep_timer
+0x4793 mem_antl_fast_adv_timer
+0x4795 mem_antl_fast_adv_timeout
+0x4797 mem_antl_le_sleep_timeout
+0x4799 mem_double_click_timer
+0x479a mem_butten_click_cnt
+0x479b mem_antl_led_state
+0x479c mem_antl_buzzer_state
+0x479d mem_antl_key_state
+0x479e mem_antl_lost_mode
+0x479f mem_alarm_config
+0x47a0 mem_alarm_config_notfy_cnt
+0x47a1 mem_buzzer_pwm_conf
+0x47a7 mem_adc_timeout
+0x47a9 mem_voltage_remain_percent
+0x47aa mem_battery_calculate_set
+0x47aa mem_battery_full_voltage
+0x47ac mem_battery_empty_voltage
+0x47ae mem_battery_low_voltage
+0x47b0 mem_battery_current_voltage
+0x47b2 mem_rx_window_sniff_inc
+0x47b4 mem_interval_increment
+0x47b6 mem_antl_le_interval_min
+0x47b8 mem_antl_le_interval_max
+0x47ba mem_antl_le_latency
+0x47bc mem_antl_le_timeout
+0x47be mem_antl_le_unnormal_interval_min
+0x47c0 mem_antl_le_unnormal_interval_max
+0x47c2 mem_antl_le_unnormal_latency
+0x47c4 mem_antl_le_unnormal_timeout
+0x47c6 mem_AntiLost_le_att_list
+0x469a mem_car_hard_soft_switch
+0x469b mem_car_queue_each_size
+0x469c mem_car__queue_length
+0x469d mem_car_queue_curr_num
+0x469e mem_car_queue_read_ptr
+0x469f mem_car_queue_write_ptr
+0x46a0 mem_car_queue_ele
+0x4718 mem_car_pop_queue_buff
+0x472c mem_car_led_num
+0x472d mem_car_led_map
+0x4737 mem_car_style1_led_type
+0x4738 mem_car_style1_blink_count
+0x4739 mem_car_style1_struct_led_gpio
+0x473a mem_car_style1_on_time
+0x473c mem_car_style1_off_time
+0x473e mem_car_style1_cb_ledon
+0x4740 mem_car_style1_cb_ledoff
+0x4742 mem_car_style2_led_type
+0x4743 mem_car_style2_blink_count
+0x4744 mem_car_style2_struct_led_gpio
+0x4745 mem_car_style2_on_time
+0x4747 mem_car_style2_off_time
+0x4749 mem_car_style2_cb_ledon
+0x474b mem_car_style2_cb_ledoff
+0x474d mem_le_receive_data
+0x474d mem_le_receive_packet_head
+0x474f mem_le_receive_cmd
+0x4750 mem_le_receive_length
+0x4752 mem_le_receive_payload
+0x475c mem_le_receive_checksum
+0x475d mem_motor1_status
+0x475e mem_motor1_speed
+0x475f mem_motor2_status
+0x4760 mem_motor2_speed
+0x4761 mem_motor3_status
+0x4762 mem_motor3_speed
+0x4763 mem_motor1_pwm_set
+0x4763 mem_motor1_pwm_pin1_set
+0x4764 mem_motor1_pwm_pin2_set
+0x4765 mem_motor1_pwm_pin_set
+0x4766 mem_motor1_pwm_channel_set
+0x4767 mem_motor1_pwm_freq_set
+0x476a mem_motor1_pwm_dute_set
+0x476b mem_motor2_pwm_set
+0x476b mem_motor2_pwm_pin1_set
+0x476c mem_motor2_pwm_pin2_set
+0x476d mem_motor2_pwm_pin_set
+0x476e mem_motor2_pwm_channel_set
+0x476f mem_motor2_pwm_freq_set
+0x4772 mem_motor2_pwm_dute_set
+0x4773 mem_motor3_pwm_set
+0x4773 mem_motor3_pwm_pin1_set
+0x4774 mem_motor3_pwm_pin2_set
+0x4775 mem_motor3_pwm_pin_set
+0x4776 mem_motor3_pwm_channel_set
+0x4777 mem_motor3_pwm_freq_set
+0x477a mem_motor3_pwm_dute_set
+0x477b mem_motor_select_p_n
+0x477c mem_car_motor_status
+0x477d mem_car_motor_speed
+0x477e mem_motor_pwm_set
+0x477e mem_motor_pwm_pin1_set
+0x477f mem_motor_pwm_pin2_set
+0x4780 mem_motor_pwm_pin_set
+0x4781 mem_motor_pwm_channel_set
+0x4782 mem_motor_pwm_freq_set
+0x4785 mem_motor_pwm_dute_set
+0x4786 mem_ir_rx_gpio
+0x4787 mem_ir_data
+0x4789 mem_ir_rx_buf
+0x478b mem_ir_receive_clkn
+0x478f mem_ir_notify_data
+0x4792 mem_ir_notify_data_head
+0x4797 mem_ir_notify_data_payload
+0x4799 mem_ir_notify_data_check_sum
+0x479a mem_car_ir_breakdown_check_timer
+0x479b mem_car_ir_breakdown_flag
+0x479c mem_car_led_control
+0x479c mem_car_led1_status
+0x479d mem_car_led2_status
+0x479e mem_car_led3_status
+0x479f mem_car_led4_status
+0x47a0 mem_car_led5_status
+0x47a1 mem_car_led6_status
+0x47a2 mem_car_led7_status
+0x47a3 mem_car_led8_status
+0x47a4 mem_car_led_control_timer
+0x47a5 mem_car_led_blink_status
+0x47a6 mem_car_led_no
+0x47a7 mem_car_info_request
+0x47aa mem_car_info_request_head
+0x47af mem_car_info_request_payload
+0x47b7 mem_car_info_request_checksum
+0x47b8 mem_car_config_param
+0x47b8 mem_car_config_setting_flag
+0x47b9 mem_car_config_device_select
+0x47ba mem_car_config_motor_layout
+0x47bb mem_car_config_ir_enable
+0x47bc mem_car_config_ir_rx_gpio
+0x47bd mem_car_config_pairing_led_conn_status
+0x47be mem_car_config_pairing_led_gpio
+0x47bf mem_car_config_led_num
+0x47c0 mem_car_config_blood_led_gpio
+0x47c0 mem_car_config_blood_led1_gpio
+0x47c1 mem_car_config_blood_led2_gpio
+0x47c2 mem_car_config_blood_led3_gpio
+0x47c3 mem_car_config_blood_led4_gpio
+0x47c4 mem_car_config_blood_led5_gpio
+0x47c5 mem_car_config_blood_led6_gpio
+0x47c6 mem_car_config_blood_led7_gpio
+0x47c7 mem_car_config_blood_led8_gpio
+0x47c8 mem_car_config_bat_notify_enable
+0x47c9 mem_car_config_low_voltage_led_gpio
+0x47ca mem_car_config_low_voltage_percent
+0x47cb mem_car_config_soft_switch_enable
+0x47cc mem_car_config_soft_switch_gpio
+0x47cd mem_car_notify_vdd_count
+0x47ce mem_car_notify_vdd_timer
+0x47cf mem_car_notify_vdd_value_last
+0x47d0 mem_car_notify_vdd_percent
+0x47d1 mem_car_working_flag
+0x47d2 mem_low_bat_flag
+0x47d3 mem_notify_bat_packet
+0x47d6 mem_notify_bat_head
+0x47db mem_notify_bat_payload
+0x47dc mem_notify_bat_check_sum
+0x47dd mem_vdd_notify_flag
+0x47de mem_car_current_vdd_value_temp
+0x47e0 mem_car_last_vdd_value
+0x47e2 mem_vdd_calculate_set
+0x47e2 mem_vdd_full_vol
+0x47e4 mem_vdd_empty_vol
+0x47e6 mem_vdd_low_vol
+0x47e8 mem_vdd_now_vol
+0x47ea mem_car_24g_status
+0x47eb mem_car_24g_no_data_timeout_count
+0x47ed mem_car_24g_no_data_timeout_timer
+0x47ef mem_car_24g_ir_receive_attack_count
+0x47f0 mem_car_24g_go_die_flag
+0x47f1 mem_car_attack_shake_timer
+0x47f2 mem_car_attack_shake_flag
+0x47f3 mem_car_soft_power
+0x47f3 mem_car_power_state
+0x47f4 mem_car_power_timer
+0x47f5 mem_car_power_off_timeout
+0x47f6 mem_car_power_starting_timeout
+0x47f7 mem_car_power_off_cb
+0x47f9 mem_car_power_starting_cb
+0x47fb mem_car_power_standby_cb
+0x47fd mem_car_ui_button_up_cb
+0x47ff mem_car_le_att_list
+0x49f3 mem_car_moto1_blank_timer
+0x49f4 mem_car_moto2_blank_timer
+0x49f5 mem_car_moto3_blank_timer
+0x49f6 mem_car_24g_received_pac
+0x49f7 mem_24g_car_head_ptr
+0x469a mem_light_pwm0
+0x469b mem_light_pwm1
+0x469c mem_light_pwm2
+0x469d mem_light_pwm3
+0x469e mem_light_pwm4
+0x469f mem_light_pwm5
+0x46a0 mem_light_pairing_enable
+0x46a1 mem_light_pairing_timer
+0x46a3 mem_light_cnum
+0x46a4 mem_light_next_record
+0x46a5 mem_light_clist
+0x46f5 mem_light_crr_cmd_count
+0x46f6 mem_curr_packet_num
+0x469a mem_lightc_led_gpio
+0x469b mem_lightc_row
+0x46a1 mem_lightc_col
+0x46a7 mem_adv_time
+0x46a8 mem_cmd0_string
+0x46bc mem_cmd1_string
+0x46d0 mem_cmd2_string
+0x46e4 mem_cmd3_string
+0x46f8 mem_cmd4_string
+0x470c mem_cmd5_string
+0x4720 mem_cmd6_string
+0x4734 mem_cmd7_string
+0x4748 mem_cmd8_string
+0x475c mem_cmd9_string
+0x4770 mem_cmd10_string
+0x4784 mem_cmd11_string
+0x4798 mem_cmd12_string
+0x47ac mem_cmd13_string
+0x47c0 mem_cmd14_string
+0x47d4 mem_cmd15_string
+0x47e8 mem_cmd16_string
+0x47fc mem_cmd17_string
+0x4810 mem_cmd18_string
+0x4824 mem_cmd19_string
+0x4838 mem_cmd20_string
+0x469a mem_soft_version_num
+0x469c mem_module_wake_up_gpio
+0x469d mem_module_state_gpio
+0x469e mem_module_connect_state_gpio
+0x469f mem_current_packet_length
+0x46a1 mem_module_state
+0x46a2 mem_module_mcu_wake_pin
+0x46a3 mem_module_mcu_wake_delay_us
+0x46a7 mem_module_spp_lpm_mult
+0x46a8 mem_module_le_lpm_mult
+0x46a9 mem_module_bluetooth_stauts_by_command
+0x46aa mem_module_uart_rx_buffer
+0x46ac mem_module_uart_rx_buffer_end
+0x46ae mem_module_uart_tx_buffer
+0x46b0 mem_module_uart_tx_buffer_end
+0x46b2 mem_module_read_vdd_flag
+0x46b3 mem_module_read_vdd_count
+0x46b4 mem_module_vdd_quotient
+0x46b5 mem_module_vdd_remainder
+0x46b6 mem_module_le_rx_data_len
+0x46b7 mem_module_le_rx_data_address
+0x46b9 mem_module_le_rx_data_handle
+0x46bb mem_module_data_write_handle
+0x46bd mem_module_data_write_handle2
+0x46bf mem_module_flag
+0x46c0 mem_module_hci_notify_len
+0x46c1 mem_module_hci_notify_handle
+0x46c3 mem_module_hci_nofiy_addr
+0x46c5 mem_last_transmite_clock
+0x46c9 mem_module_uuid_list
+0x47f5 mem_module_uuid_list_end
+0x47f5 mem_module_le_att_list
+0x4a4d mem_module_le_att_list_end
+0x4a4d mem_module_nv_data
+0x4a4d mem_module_nv_data0
+0x4a6f mem_module_nv_data1
+0x4a91 mem_module_nv_data2
+0x4ab3 mem_module_nv_data3
+0x4ad5 mem_module_nv_data4
+0x469a mem_remote_car_hard_soft_switch
+0x469b mem_remote_car_queue_each_size
+0x469c mem_remote_car_queue_length
+0x469d mem_remote_car_queue_curr_num
+0x469e mem_remote_car_queue_read_ptr
+0x469f mem_remote_car_queue_write_ptr
+0x46a0 mem_remote_car_queue_ele
+0x46fa mem_remote_style_led_type
+0x46fb mem_remote_style_blink_count
+0x46fc mem_remote_style_struct_led_gpio
+0x46fd mem_remote_style_on_time
+0x46ff mem_remote_style_off_time
+0x4701 mem_remote_style_cb_ledon
+0x4703 mem_remote_style_cb_ledoff
+0x4705 mem_remote_car_led_num
+0x4706 mem_remote_car_led_map
+0x470e mem_remote_car_keyscan
+0x470e mem_remote_car_key_num
+0x470f mem_cb_remote_car_keyscan
+0x4711 mem_remote_car_key_conf0
+0x4711 mem_remote_car_key_conf0_pin
+0x4712 mem_remote_car_key_conf1
+0x4712 mem_remote_car_key_conf1_pin
+0x4713 mem_remote_car_key_conf2
+0x4713 mem_remote_car_key_conf2_pin
+0x4714 mem_remote_car_key_conf3
+0x4714 mem_remote_car_key_conf3_pin
+0x4715 mem_remote_car_key_conf4
+0x4715 mem_remote_car_key_conf4_pin
+0x4716 mem_remote_car_key_conf5
+0x4716 mem_remote_car_key_conf5_pin
+0x4717 mem_remote_car_key_conf6
+0x4717 mem_remote_car_key_conf6_pin
+0x4718 mem_rocker_negative_flag
+0x4719 mem_rocker_work_status
+0x471a mem_current_vdd_value_default_mid_x
+0x471c mem_current_vdd_value_default_mid_y
+0x471e mem_current_vdd_value_default_mid_temp
+0x4720 mem_current_vdd_default_range
+0x4722 mem_rocker_last_status
+0x4724 mem_rocker_status
+0x4724 mem_rocker_x_status
+0x4725 mem_rocker_y_status
+0x4726 mem_remote_car_config_param
+0x4726 mem_remote_car_config_setting_flag
+0x4727 mem_remote_car_config_key_map
+0x4728 mem_remote_car_config_layout
+0x4729 mem_remote_car_config_connect_led_gpio
+0x472a mem_remote_car_config_check_way
+0x472b mem_remote_car_config_soft_switch_enable
+0x472c mem_remote_car_config_soft_switch_gpio
+0x472d mem_remote_car_config_timeout_shutdown_enable
+0x472e mem_remote_car_24g_motor_packet
+0x472e mem_remote_car_24g_motor_packet_lenght
+0x472f mem_remote_car_24g_motor_send_packet_head
+0x4731 mem_remote_car_24g_motor_send_cmd
+0x4732 mem_remote_car_24g_motor_send_length
+0x4734 mem_remote_car_24g_motor_send_payload
+0x4734 mem_remote_car_24g_motor1_payload
+0x4736 mem_remote_car_24g_motor2_payload
+0x4738 mem_remote_car_24g_motor3_payload
+0x473a mem_remote_car_24g_motor_send_checksum
+0x473b mem_remote_car_24g_fire_packet
+0x473b mem_remote_car_24g_fire_packet_lenght
+0x473c mem_remote_car_24g_fire_send_packet_head
+0x473e mem_remote_car_24g_fire_send_cmd
+0x473f mem_remote_car_24g_fire_send_length
+0x4741 mem_remote_car_24g_fire_send_payload
+0x4743 mem_remote_car_24g_fire_send_checksum
+0x4744 mem_remote_car_24g_tx_temp
+0x4753 mem_remote_car_no_data_timeout
+0x4755 mem_remote_car_no_data_timer
+0x4757 mem_remote_car_soft_power
+0x4757 mem_remote_car_power_state
+0x4758 mem_remote_car_power_timer
+0x4759 mem_remote_car_power_off_timeout
+0x475a mem_remote_car_power_starting_timeout
+0x475b mem_remote_car_power_off_cb
+0x475d mem_remote_car_power_starting_cb
+0x475f mem_remote_car_power_standby_cb
+0x4761 mem_remote_key_status
+0x4762 mem_remote_car_24g_status
+0x4763 mem_remote_car_24g_auto_work_step
+0x4764 mem_remote_car_24g_pair_success_flag
+0x4765 mem_remote_car_24g_enter_lpm_enable
+0x4766 mem_remote_car_empty_packet
+0x4767 mem_24g_RC_head_ptr
+0x469a mem_shutter_bluetooth_type
+0x469b mem_shutter_config_enable
+0x469c mem_shutter_config_otp_base_address
+0x469e mem_shutter_config_size
+0x469f mem_shutter_config_select_gpio1
+0x46a0 mem_shutter_config_select_gpio2
+0x46a1 mem_shutter_config_select_gpio3
+0x46a2 mem_shutter_config_user_otp_address
+0x46a4 mem_shutter_config_eeprom_offset_addr
+0x46a6 mem_shutter_config_eeprom_start_flag
+0x46a8 mem_shutter_config_user_size
+0x46a9 mem_shutter_config_label
+0x46aa mem_shutter_config_otp_addr
+0x46ac mem_classic_shutter_cable_unplug_conut
+0x46ad mem_classic_shutter_hid_disconn_count
+0x46ae mem_classic_shutter_random_mac_offset_addr
+0x46b0 mem_ble_shutter_enable_notify
+0x46b1 mem_ble_shutter_reconn_dav_interval
+0x46b3 mem_ble_shutter_discovery_adv_interval
+0x46b5 mem_ble_shutter_reconn_timeout
+0x46b7 mem_ble_shutter_reconn_timer
+0x46b9 mem_ble_shutter_reconn_blink_on_time
+0x46bb mem_ble_shutter_reconn_blink_off_time
+0x46bd mem_ble_shutter_discovery_blink_on_time
+0x46bf mem_ble_shutter_discovery_blink_off_time
+0x46c1 mem_ble_shutter_interval_min
+0x46c3 mem_ble_shutter_interval_max
+0x46c5 mem_ble_shutter_latency
+0x46c7 mem_ble_shutter_timeout
+0x46c9 mem_ble_shutter_interval_min_new
+0x46cb mem_ble_shutter_interval_max_new
+0x46cd mem_ble_shutter_latency_new
+0x46cf mem_ble_shutter_timeout_new
+0x46d1 mem_classic_shutter_discovery_timeout
+0x46d3 mem_classic_shutter_connect_timeout
+0x46d5 mem_ble_shutter_discovery_timeout
+0x46d7 mem_ble_shutter_connect_timeout
+0x46d9 mem_shutter_sleep_timeout
+0x46db mem_shutter_sleep_timer
+0x46dd mem_shutter_hard_soft_switch_case
+0x46de mem_shutter_soft_switch_button_gpio
+0x46df mem_shutter_soft_switch_power_state
+0x46e0 mem_shutter_soft_switch_poweron_time
+0x46e1 mem_shutter_soft_switch_poweroff_time
+0x46e2 mem_shutter_soft_switch_poweron_callback_function
+0x46e4 mem_shutter_soft_switch_poweroff_callback_function
+0x46e6 mem_shutter_keyscan
+0x46e6 mem_shutter_key_num
+0x46e7 mem_cb_shutter_keycan
+0x46e9 mem_shutter_key_conf0
+0x46ea mem_shutter_key_conf1
+0x46eb mem_shutter_key_conf2
+0x46ec mem_shutter_key_conf3
+0x46ed mem_shutter_key_conf4
+0x46ee mem_shutter_key_conf5
+0x46ef mem_shutter_key_conf6
+0x46f0 mem_shutter_key_conf7
+0x46f1 mem_key0_press
+0x46f6 mem_key1_press
+0x46fb mem_key2_press
+0x4700 mem_key3_press
+0x4705 mem_key4_press
+0x470a mem_key5_press
+0x470f mem_key6_press
+0x4714 mem_key7_press
+0x4719 mem_key0_release
+0x471e mem_key1_release
+0x4723 mem_key2_release
+0x4728 mem_key3_release
+0x472d mem_key4_release
+0x4732 mem_key5_release
+0x4737 mem_key6_release
+0x473c mem_key7_release
+0x4741 mem_ble_data_buffer1
+0x4746 mem_ble_data_buffer2
+0x474b mem_ble_data_buffer3
+0x4750 mem_ble_data_buffer4
+0x4755 mem_ble_data_buffer5
+0x475a mem_ble_data_buffer6
+0x475f mem_ble_data_buffer7
+0x4764 mem_ble_data_buffer8
+0x4769 mem_ble_data_buffer9_58
+0x479b mem_classic_data_buffer
+0x47a0 mem_classic_data_buffer1
+0x47a5 mem_classic_data_buffer2
+0x47aa mem_classic_data_buffer3
+0x47af mem_classic_data_buffer4
+0x47b4 mem_classic_data_buffer5
+0x47b9 mem_classic_data_buffer6
+0x47be mem_classic_data_buffer7
+0x47c3 mem_classic_data_buffer8
+0x47c8 mem_classic_data_buffer9_58
+0x47fa mem_queue_each_size
+0x47fb mem_queue_length
+0x47fc mem_queue_curr_num
+0x47fd mem_queue_read_ptr
+0x47fe mem_queue_write_ptr
+0x47ff mem_queue_ele
+0x481f mem_shutter_nv_data
+0x48c9 mem_shutter_led_struct_app_led
+0x48c9 mem_shutter_led_struct_app_led_type
+0x48ca mem_shutter_led_struct_app_led_blink_count
+0x48cb mem_shutter_led_struct_app_led_gpio
+0x48cc mem_shutter_led_struct_app_led_on_time
+0x48ce mem_shutter_led_struct_app_led_off_time
+0x48d0 mem_shutter_led_struct_app_led_on_callback
+0x48d2 mem_shutter_led_struct_app_led_off_callback
+0x48d4 mem_shutter_power_off_led_style
+0x48d4 mem_shutter_power_off_led_style_type
+0x48d5 mem_shutter_power_off_led_style_blink_count
+0x48d6 mem_shutter_power_off_led_style_gpio
+0x48d7 mem_shutter_power_off_led_style_on_time
+0x48d9 mem_shutter_power_off_led_style_off_time
+0x48db mem_shutter_power_off_led_style_on_callback
+0x48dd mem_shutter_power_off_led_style_off_callback
+0x48df mem_shutter_soft_swtich_botton_down
+0x48e0 mem_shutter_soft_swtich_led_struct_temp
+0x48eb mem_shutter_power_off_timeout
+0x48ec mem_shutter_power_off_timer
+0x469a mem_mouse_key
+0x469b mem_mouse_x
+0x469d mem_mouse_y
+0x469f mem_mouse_z
+0x46a0 mem_mouse_tz
+0x46a1 mem_mouse_xy_h
+0x46a2 mem_sensor_shutter_hi
+0x46a3 mem_sensor_shutter_lo
+0x46a4 mem_sensor_smart_flag
+0x46a5 mem_sensor_squal_reg
+0x46a6 mem_sensor_iqc
+0x46a7 mem_mouse_move_flag
+0x46a8 mem_mouse_direct_timeout
+0x46aa mem_mouse_no_data_timeout
+0x46ac mem_mouse_discovery_timer
+0x46ae mem_mouse_direct_timer
+0x46b0 mem_mouse_no_data_timer
+0x46b2 mem_mouse_blank_data_timer
+0x46b4 mem_mouse_send_blank_timer
+0x46b5 mem_mouse_cpi_count
+0x46b6 mem_mouse_dpi_button_state
+0x46b7 mem_wheel_tb_old_pinlevel
+0x46b8 mem_wheel_tb_new_pinlevel
+0x46b9 mem_wheel_tog
+0x46ba mem_mouse_tz_data
+0x46bb mem_mouse_tz_data_count
+0x46bc mem_mouse_tz_data_count1
+0x46bd mem_mwheel_b_old_pinlevel
+0x46be mem_mwheel_b_new_pinlevel
+0x46bf mem_mwheel_tog
+0x46c0 mem_mouse_z_data
+0x46c1 mem_mouse_z_data_count
+0x46c2 mem_mouse_z_data_count1
+0x46c3 mem_reconn_mode
+0x46c4 mem_mouse_statue_led_timer
+0x46c5 mem_le_connect_status_flag
+0x46c6 mem_le_start_encrypt_timer
+0x46c7 mem_device_addr_temp
+0x46ce mem_adc_read_timer
+0x46cf mem_adc_low_volatage_led_timer_count
+0x46d0 mem_adc_reference_voltage
+0x46d2 mem_device_number
+0x46d3 mem_mouse_flag
+0x46d5 mem_mouse_function_enable
+0x46d7 mem_combination_select_device_timer_init
+0x46d8 mem_combination_select_device_count
+0x46d9 mem_select_device_button_statue
+0x46da mem_combination_ui_button_count
+0x46db mem_bt_discovey_button_statue
+0x46dc mem_sensor_reset_gpio
+0x46dd mem_sensor_id1
+0x46de mem_sensor_id2
+0x46df mem_mouse_dpi_led_delay_count
+0x46e0 mem_config_sensor_type
+0x46e1 mem_config_sensor_motion
+0x46e2 mem_lbutton_gpio
+0x46e3 mem_rbutton_gpio
+0x46e4 mem_mbutton_gpio
+0x46e5 mem_bk_button_gpio
+0x46e6 mem_fw_button_gpio
+0x46e7 mem_dpi_button_gpio
+0x46e8 mem_whee_a_data_gpio
+0x46e9 mem_whee_b_data_gpio
+0x46ea mem_whee_ta_data_gpio
+0x46eb mem_whee_tb_data_gpio
+0x46ec mem_config_bt_button_gpio
+0x46ed mem_config_select_device_button_gpio
+0x46ee mem_config_paraing_led_gpio
+0x46ef mem_config_low_voltage_alarm_gpio
+0x46f0 mem_config_device1_led_gpio
+0x46f1 mem_config_device2_led_gpio
+0x46f2 mem_config_device3_led_gpio
+0x46f3 mem_sensor_data_gpio
+0x46f4 mem_dpi_led_gpio
+0x46f5 mem_config_function_enable
+0x46f6 mem_config_sensor_angle
+0x46f7 mem_select_sensor_angle_gpio
+0x46f8 mem_select_adc_gpio
+0x46f9 mem_config_end
+0x46f9 mem_btclk_sensor
+0x46fd mem_wire_usb_interval
+0x46fe mem_mouse_mode_flag
+0x46ff mem_usb_addr
+0x4700 mem_flash_base
+0x4703 mem_24g_device_number
+0x4704 mem_24g_enter_lpm_timer
+0x4705 mem_mouse_1step_up_count
+0x4706 mem_mouse_2step_up_count
+0x4707 mem_24g_pairing_timer_count
+0x4709 mem_mouse_vdd_calculate_set
+0x4709 mem_mouse_vdd_full_vol
+0x470b mem_mouse_vdd_empty_vol
+0x470d mem_mouse_vdd_low_vol
+0x470f mem_mouse_vdd_now_vol
+0x4711 mem_mouse_sensor_timer_count
+0x4712 mem_sensor_led_style
+0x4713 mem_mouse_led_type
+0x4714 mem_mouse_blink_count
+0x4715 mem_mouse_struct_led_gpio
+0x4716 mem_mouse_on_time
+0x4718 mem_mouse_off_time
+0x471a mem_mouse_cb_ledon
+0x471c mem_mouse_cb_ledoff
+0x471e mem_reconn_times
+0x471f mem_reconn_times_init
+0x4720 mem_mouse_information_start
+0x4720 mem_device_flag
+0x4721 mem_device1_type
+0x4722 mem_device1_addr
+0x4728 mem_device1_link_key
+0x4738 mem_device1_locall_addr
+0x473e mem_device2_type
+0x473f mem_device2_addr
+0x4745 mem_device2_link_key
+0x4755 mem_device2_locall_addr
+0x475b mem_device3_type
+0x475c mem_device3_addr
+0x4762 mem_device3_link_key
+0x4772 mem_device3_locall_addr
+0x4778 mem_store_flag
+0x477a mem_mouse_dpi
+0x477b mem_mouse_24g_addr
+0x477f mem_mouse_information_end
+0x477f mem_mouse_dpi_seting
+0x477f mem_320x_dpi_1
+0x4780 mem_320x_dpi_2
+0x4781 mem_320x_dpi_3
+0x4782 mem_320x_dpi_4
+0x4783 mem_3212_dpi_1
+0x4784 mem_3212_dpi_2
+0x4785 mem_3212_dpi_3
+0x4786 mem_3212_dpi_4
+0x4787 mem_3610_dpi_1
+0x4788 mem_3610_dpi_2
+0x4789 mem_3610_dpi_3
+0x478a mem_3610_dpi_4
+0x478b mem_mouse_24g_enter_lpm_enable
+0x478c mem_hibernate_flag
+0x478d mem_le_slave_update_mult_timer
+0x478e mem_le_prepare_tx_retransmited_number
+0x478f mem_le_rx_window_inc
+0x4791 mem_empty_count_user
+0x4792 mem_adc_0v
+0x4794 mem_adc_3v
+0x4796 mem_rf_init_data_new
+0x47a3 mem_mouse_x_sum
+0x47a5 mem_mouse_y_sum
+0x47a7 mem_mouse_x_pre
+0x47a9 mem_mouse_y_pre
+0x47ab mem_mouse_x_data
+0x47ad mem_mouse_y_data
+0x47af mem_mouse_asm_flag
+0x47b0 mem_24g_rxbuf
+0x47d2 mem_24g_txbuf
+0x47f2 mem_24g_txpayload
+0x4814 mem_24g_rxpayload
+0x4834 mem_24g_rxdata_length
+0x4835 mem_24g_pid
+0x4836 mem_24g_datalen
+0x4837 mem_24g_data_type
+0x4838 mem_24g_txlen
+0x4839 mem_24g_rx_window
+0x483b mem_24g_ensure
+0x483c mem_24g_txfail_cnt
+0x483e mem_24g_get_ack_fail
+0x483f mem_24g_retry
+0x4840 mem_24g_ch
+0x4841 mem_24g_current_ch_number
+0x4842 mem_24g_paring_addr
+0x4846 mem_24g_pairing_sm
+0x4847 mem_24g_ch_map1
+0x484b mem_24g_ch_map2
+0x484f mem_24g_ch_map3
+0x4853 mem_24g_ch_map4
+0x4857 mem_24g_tx_btclk
+0x485b mem_24g_interval
+0x485c mem_24g_interval_min
+0x485d mem_24g_interval_max
+0x485e mem_24g_addr
+0x4862 mem_24g_abort_pac
+0x4863 mem_24g_check_dongle_times
+0x4865 mem_24g_enter_hibernate
+0x486d mem_24g_device_addr
+0x4871 mem_24g_pac_index
+0x4872 mem_24g_no_ack
+0x4873 mem_24g_sta_crc
+0x4876 mem_24g_last_crc
+0x4879 mem_24g_sta_pid
+0x487a mem_24g_last_pid
+0x487b mem_24g_max_retry
+0x487c mem_24g_mode
+0x487d mem_24g_rxdata_temp
+0x489f mem_24g_rx_addr
+0x48a3 mem_dongle_mode_init
+0x48a4 mem_dongle_work_mode
+0x48a5 mem_dongle_ms_bind_step
+0x48a6 mem_dongle_kb_bind_step
+0x48a7 mem_dongle_bind_device_status
+0x48a8 mem_24g_bind_payload
+0x48b0 mem_24g_abort_packet
+0x48b1 mem_24g_rf_laststa
+0x48b2 mem_24g_hop_btclk
+0x48b6 mem_24g_hop_interval
+0x48b7 mem_24g_mode_switch
+0x48b8 mem_24g_ackpayload_enable
+0x48b9 mem_24g_hop_packet
+0x48ba mem_24g_pair_mode
+0x48bb mem_24g_nodata_timer_enable
+0x48bc mem_24g_time_slice
+0x48bd mem_24g_kb_data_sta_data
+0x48c5 mem_24g_kb_data_last_data
+0x48cd mem_24g_kb_multikey_sta_data
+0x48d0 mem_24g_kb_multikey_last_data
+0x48d3 mem_24g_kb_blank_data_enable
+0x48d4 mem_24g_kb_mul_blank_data_enable
+0x48d5 mem_24g_ms_blank_data_enable
+0x48d6 mem_24g_kb_addr
+0x48da mem_24g_ms_addr
+0x48de mem_24g_dg_last_ch
+0x48df mem_24g_dg_ch_number
+0x48e0 mem_24g_dg_config_ch_once
+0x48e1 mem_24g_kb_last_ch
+0x48e2 mem_24g_kb_ch_number
+0x48e3 mem_24g_kb_config_ch_once
+0x48e4 mem_24g_ms_last_ch
+0x48e5 mem_24g_ms_ch_number
+0x48e6 mem_24g_ms_config_ch_once
+0x48e7 mem_24g_syncword
+0x48e9 mem_24g_syncword_crc8
+0x48ea mem_24g_get_syncword_crc8
+0x48eb mem_24g_ota_sta_pid
+0x48ed mem_tx_power_temp
+0x48ee mem_rssi_hex
+0x48ef mem_rssi_noise_avg
+0x48f0 mem_rssi_noise_index
+0x48f1 mem_rssi_signal_index
+0x48f2 mem_rssi_noise_dg_avg
+0x48f3 mem_rssi_noise_kb_avg
+0x48f4 mem_rssi_noise_ms_avg
+0x48f5 mem_rssi_noise_dg_index
+0x48f6 mem_rssi_noise_kb_index
+0x48f7 mem_rssi_noise_ms_index
+0x48f8 mem_rssi_signal_buf
+0x4900 mem_queue_ele_num
+0x4901 mem_queue_read
+0x4903 mem_queue_write
+0x4905 mem_queue_start
+0x4905 mem_data_ele0
+0x4925 mem_data_ele1
+0x4945 mem_data_ele2
+0x4965 mem_queue_end
+0x4965 mem_queue_temp
+0x4967 mem_cb_24g_data
+0x4969 mem_24g_hop_fastly_cnt
+0x496a mem_24g_hop_pac_retry
+0x496b mem_24g_rf_hop_ch
+0x496c mem_24g_rf_last_sta
+0x496d mem_24g_rf_work_stage
+0x496e mem_24g_sync_cnt
+0x496f mem_power_ctrl_pac_succ_cnt
+0x4970 mem_rssi_avg_received
+0x4971 mem_rssi_hex_received
+0x4972 mem_power_ctrl_level
+0x4973 mem_24g_idle_timeout
+0x4974 mem_24g_idle_cnt
+0x4975 mem_seqi
+0x4976 mem_24g_txcnt
+0x4977 mem_24g_auto_paring_switch
+0x4978 mem_24g_led_status
+0x4979 mem_24g_pc_sleep
+0x497a mem_24g_pc_sleep_flag
+0x497b mem_24g_bind_delay_count
+0x497c mem_24g_work_delay_count
+0x497d mem_24g_mode_switch_2
+0x497e mem_24g_mode_switch_2_init
+0x497f mem_24g_mode_switch_cnt_2
+0x4981 mem_24g_mode_switch_exit_2
+0x4982 mem_24g_time_slice_2
+0x4983 mem_dongle_bind_device_living
+
+	width = 32
+	const length = 12000
+
+	/* ========= memory ============== */
+0x0000 mem_le_adv_transmit
+0x0001 mem_le_adv_waitcnt
+0x0002 mem_le_adv_rcv
+0x0003 mem_le_req_rcv
+0x0004 mem_le_scanrsp_rcv
+0x0005 mem_le_conn_rcv
+0x0006 mem_inquiryscan_waitcnt
+0x0007 mem_inquiryscan_rcvcnt
+0x0008 mem_pagescan_waitcnt
+0x0009 mem_pagescan_rcvcnt
+0x000a mem_pagescan_rcvfhscnt
+0x000b mem_slave_rcvcnt
+0x000c mem_page_transmit
+0x000d mem_page_rcv
+0x000e mem_page_rcv_fhs
+0x000f mem_master_rcvcnt
+0x0010 mem_fhs_wait_counter
+0x0011 mem_newconnto_counter
+0x0012 mem_inquiry_transmit
+0x0013 mem_inquiry_rcv
+0x0014 mem_fw_ver
+0x0015 mem_current_context
+0x0016 mem_le_ch_mapped
+0x0017 mem_last_freq
+0x0018 mem_rssi
+0x0019 mem_rx_type
+0x001a mem_rx_hec_err
+0x001c mem_rx_crc_err
+0x001e mem_context_ptr
+0x0020 mem_display
+0x0028 mem_bcd
+0x0030 mem_state
+0x0031 mem_mode
+0x0032 mem_tsniff
+0x0034 mem_sniff_anchor
+0x0038 mem_clk_offset
+0x003e mem_rx_window
+0x0040 mem_plap
+0x0043 mem_puap
+0x0044 mem_pnap
+0x0046 mem_conn_handle
+0x0047 mem_arq
+0x0048 mem_lmp_to_send
+0x0049 mem_lmi_opcode
+0x004a mem_lmo_reason
+0x004b mem_op
+0x004c mem_state_map
+0x004d mem_supervision_timer
+0x0051 mem_supervision_to
+0x0053 mem_name_offset
+0x0054 mem_key_size
+0x0055 mem_conn_sm
+0x0056 mem_aco
+0x0062 mem_kc
+0x0072 mem_conn_timer
+0x0073 mem_sniff_attempt
+0x0074 mem_sniff_timeout
+0x0075 mem_dsniff
+0x0077 mem_amaddr
+0x0078 mem_lmo_opcode1
+0x0079 mem_lmi_opcode1
+0x007a mem_lmo_reason1
+0x007b mem_lmo_tid1
+0x007c mem_lmo_opcode2
+0x007d mem_lmi_opcode2
+0x007e mem_lmo_reason2
+0x007f mem_lmo_tid2
+0x0080 mem_hci_version
+0x0083 mem_acl_pktlen
+0x0085 mem_sco_pktlen
+0x0086 mem_acl_pktcnt
+0x0088 mem_sco_pktcnt
+0x008a mem_current_sniff_attempt
+0x008b mem_current_sniff_timeout
+0x008c mem_sniff_timeout_temp
+0x008d mem_nfreq_index_inq
+0x008e mem_nfreq_index_page
+0x008f mem_ninqy_index
+0x0090 mem_fhs_misc
+0x0091 mem_subsniff_instant
+0x0095 mem_subsniff_rate
+0x0096 mem_subsniff_tcmax
+0x0098 mem_subsniff_tsniff
+0x0099 mem_lpm_adjust
+0x009a mem_sync_clke
+0x00a0 mem_lpm_current_mult
+0x00a1 mem_gpio_wakeup_low
+0x00a5 mem_gpio_wakeup_high
+0x00a9 mem_air_mode
+0x00aa mem_sco_asso_handle
+0x00ab mem_sco_handle
+0x00ad mem_esco_desco
+0x00ae mem_esco_type
+0x00af mem_neogotiation_state
+0x00b0 mem_saved_amaddr
+0x00b1 mem_esco_arq
+0x00b2 mem_esco_saved_arq
+0x00b3 mem_sco_obuf
+0x00d1 mem_sco_ibuf
+0x00ef mem_sco_poll
+0x00f0 mem_npage_index
+0x00f1 mem_page_mode
+0x00f2 mem_page_clk
+0x00f6 mem_tst_pktcnt_sync
+0x00f8 mem_tst_pktcnt_hec
+0x00fa mem_tst_pktcnt_crc
+0x00fc mem_tst_pktcnt_dmh
+0x00fe mem_tmp_buffer_head
+0x0101 mem_tmp_buffer
+0x0151 mem_tester_emulate
+0x0152 mem_temp_payload
+0x0152 test_mode_scenario
+0x0153 test_mode_hopping_mode
+0x0154 test_mode_tx_freq
+0x0155 test_mode_rx_freq
+0x0156 test_mode_power_mode
+0x0157 test_mode_poll_period
+0x0158 test_mode_packet_type
+0x0159 test_mode_data_length
+0x015b mem_test_mode_old_debug_config
+0x015c mem_tester_cnt
+0x015d mem_temp_am_addr
+0x015e mem_temp_arq
+0x015f mem_len
+0x0161 mem_clkn_bt
+0x0165 mem_clke_bt
+0x0169 mem_dpll_clkn
+0x016d mem_connection_options
+0x016e mem_nameres_cnt
+0x016f mem_txptr
+0x0171 mem_slot_offset
+0x0173 extm_fhs_misc
+0x0174 extm_newconn_am_addr
+0x0175 extm_class
+0x0178 extm_lap
+0x017b extm_uap
+0x017c extm_nap
+0x017f mem_debug_config
+0x0180 mem_lch_code
+0x0181 mem_fhs_am_addr
+0x0182 mem_dpll_error
+0x0184 mem_select_list_item
+0x0185 mem_temp_reconn_record
+0x0185 mem_record_bt_mode
+0x0186 mem_temp_lap
+0x018c mem_list_item_ptr
+0x018e mem_eir
+
+0x01f2 mem_ucode_status
+0x01f3 mem_otp_ucode_flag
+0x01f5 mem_spid_tbuf/* spid buf: 03 addr[23:16] addr[15:8] addr[7:0] */
+0x01f6 mem_iicd_tbuf/* iicd buf: iic_adr addr[15:8] addr[7:0] iic_adr */
+0x01f6 mem_addr_hi
+0x01f7 mem_addr_mi
+0x01f8 mem_addr_lo
+0x01f9 mem_iicd_addr
+0x01fa mem_spid_rbuf
+0x01fe mem_ucode_buf
+0x0200 mem_ucode_len
+0x0202 mem_sched_addr
+0x0204 mem_ucode_ptr
+0x0206 mem_ucode_keybuf
+0x0216 mem_check_plap_temp
+0x0228 mem_reconnect_flag
+0x0229 mem_switch_fail_master_count
+0x022a mem_app_evt_timer_count
+
+0x022b mem_init_cnt
+
+
+(//bluetooth tx power
+0 TX_POWER_0DB
+1 TX_POWER_3DB
+2 TX_POWER_5DB
+3 TX_POWER_f3DB
+4 TX_POWER_f5DB
+
+0x20 TX_POWER_PAIR
+)
+
+
+0x3b17 rom_lpm_sleep
+0x59e0 rom_save_ucode
+
+0x4219 rom_mem_lpm_xtalcnt
+0x423b rom_mem_patch_ptr
+0x423d rom_mem_patch_len
+
+0x5b1a rom_otpd_read_data
+0x5ada rom_otp_write
+	/* context */
+(
+0x01 coffset_mode
+0x02 coffset_tsniff
+0x04 coffset_sniff_anchor
+0x08 coffset_clk_offset
+0x0e coffset_rx_window
+0x10 coffset_plap
+0x16 coffset_conn_handle
+0x17 coffset_arq
+	/* 3.0 only */
+0x18 coffset_lmp_to_send
+0x1b coffset_op
+0x1c coffset_state_map
+	/* le only */
+0x18 coffset_le_ch
+0x19 coffset_le_hop
+0x1a coffset_le_event_cnt
+
+80 context_size
+3 context_num
+)
+
+(
+0 lpm_flag_wake
+1 lpm_flag_loadcode
+)
+
+/* ========= parameters ============== */
+(
+0x0050 param_newconn_arq
+0x0007 param_esco_addr
+0x0010 param_conn_handle
+0x01f0 param_conn_handle_comp
+0x0020 param_newconnto
+0x0008 param_pagerespto
+0x0a00 param_snooze_setup_orig
+0x5353 param_snooze_ahead_orig
+0x00ff param_ninquiry
+0x2000 param_page_to
+0x0005 param_max_slot
+0x0010 param_sco_poll
+
+/* 6Mhz clock setting */
+/* 12Mhz clock setting */
+0x0e43 param_tx_setup
+0x09d0 param_rx_setup_earlier
+0x0600 param_rf_setup
+0x03bb param_clke_cal
+0x0600 param_conn_access 
+0x0800 param_conn_access_wider
+0x0500 param_pll_setup		// 120 is minimum
+0x0d00 param_rx_setup	// 114us before sync
+2000 param_dpll_start_delay
+
+110 param_lpm_fix
+10 param_lpo_extra
+200 param_lpm_adjmax
+
+-1 param_hibernate_clks
+3000 param_chgpump_delay
+
+3 param_featrue_ssp
+0x0101 param_lmpext_ssp_enable
+339 param_acl_pktlen
+30   param_sco_pktlen
+1     param_acl_pktcnt		/*buffer acl pkt cnt*/
+7     param_sco_pktcnt
+
+
+0x8fffff param_features0
+0x9d83fe param_features1  // not support afh
+0x8359     param_features2
+0x000033 param_unap
+0x001177 param_lap
+0x9e8b33 param_glap
+0x002540 param_class//0x180208 //0x002580//402500//240404
+0x12e904 param_hci_version
+0x000a04 param_lmp_version//0x0a04
+0x000a06 param_lmp_version0
+0x12e9 param_lmp_subversion
+0x0012 param_tisw
+0x0012 param_tpsw
+0x1000 param_tisi
+0x0800 param_tpsi
+0x0020 param_page_window
+0x0020 param_inq_window
+0x1c80 param_supervision_to
+39 param_fcomp_div
+2 param_fcomp_mul
+6     param_name_len
+0x535442 param_name
+0x344950 param_name1
+
+
+)
+
+/* ======= packet types  ========= */
+(
+0x0      type_null    
+0x1      type_poll   
+0x2      type_fhs    
+0x3      type_dm1    
+0x4      type_dh1    
+0x5      type_hv1    
+0x6      type_hv2    
+0x7      type_hv3    
+0x8      type_3dh1     
+0x9      type_aux1   
+0xa      type_dm3    
+0xb      type_dh3    
+0xe      type_dm5    
+0xf      type_dh5    
+0x10     type_id
+0x11     type_shutdown
+0x13     type_lmp
+)
+
+/* ========== flag[6] =============== */
+(
+0        always        /* always 1 */
+1        true          /* set/rstn by verify,compare,icompare (true) */
+2        positive      /* set/rstn by all alu operations (opcode = 0x03,0x13,0x0f,0x1f), if alu output >= 0 */
+3        timeout       /* read only, the timeout from timers */
+5        zero          /* set/rstn by all alu operations (opcode = 0x03,0x13,0x0f,0x1f), if alu output == 0 */
+6        crc_failed    /* level, cleared by hop_start */
+7        enable_white  /* outside mux decide whether to load bt_clk or response_X */
+8        enable_parity /* level */
+9        enable_crc    /* level */
+10       enable_hec    /* level */
+11       decode_fec1   /* level */
+12       decode_fec2   /* level */
+13       decode_fec0   /* level */
+14       encrypt       /* level */
+15       crc16       /* for caculate ccitt crc16 */
+16       swfine	/* =0 stop_watch count based on oneslot =1 on 1 clock */
+20       rqst_freq    /* pulse, to start calculating frequency */
+21       recalc        /* pulse, to recalculate the fhs_parity */
+22       init_encrypt  /* pulse, issued to initialize encrption */
+23       mhalfbnd    /* half slot boundary of clke_rt, or when clke_bt[0] toggles */
+24       sync          /* sync found as a result of correlation,set/rstn by correlate opcode */
+25       user10    /* user10 */
+26       kc_p_activate  /* pulse to recalc the kc_p */
+27       encode_fec1   /* level */
+28       encode_fec2   /* level */
+29       encode_fec0   /* level */
+30       packet_end    /* pulse */
+32       is_tx         /* level */
+33       is_rx         /* level */
+34       halfslot     /* pulse, read only, when clkn_bt[0] toggles */
+35       oneslot      /* pulse, read only, when clkn_bt[1] toggles */
+36       mslotbnd     /* pulse, read only, when clke_bt[1] toggles */
+37       expire       /* level, read only, when selected clock source exceed timeup value */
+38       meet         /* level, read only, when selected clock source meet timeup value */
+39       tx_clear     /* level, read only, indicate tx pipe is cleared */
+40       user         /* user0 */
+41       master        /* user1 */
+42       slave2         /* user2 */
+43       wake           /* user3 */
+44       user2        /* user4 */
+45       match         /* user5 */
+46       attempt        /* user6 */
+47       user3          /* user7 */
+48       clknt         /* user8 */
+49	   user7 	/* user9 */
+50       synchronize   /* synchronize lpo and regular version of the clock */
+51       lpo_edge  /* read only, 3 clocks after risling edge of lpo clock */
+52       blank         /* C0 only, means pdata == 0 */
+53       modone          /* set divide operation is done */
+54       le		/* bluetooth 4.0 LE enable */
+55       aes_ready	/* set when aes is ok */
+63       never         /* read only, always 0 */
+)
+
+default flag = always
+
+/* ========== reg[6] =============== */
+(
+0        mark   /* for keeping strobes, more permanent */
+1        type   /* save and verify during rx */     /* rw */
+2        temp   /* general purpose register, 64 bits */
+3        contru  /* contr uart */
+4        am_addr      /* verify during rx, read and send during tx */ /* ro */
+5        contw        /* last mem_addr during write */
+6        contr        /* last mem_addr during read */
+7        queue    /* the index of qset*,qisolate* commands, ie, if queue = 3, qset/qisolate operate on bit3 */
+8        debug    /* can be wired out for observation */
+9        access   /* the 72 bit access word */
+10       contwu   /* contw uart */
+11       timeup        /* when does certain counter expire */
+12       pwindow       /* bit 71-61 of pdata; because on rx, bits shifts in from 71 down */
+13       fhs_parity    /* re-gernated based on bt_adr( {nap,uap,lap} ) when recalc flag is pulsed */
+14       white_init    /* init value of the whitening */
+15       crc24_init        /* init crc24 lfsr, 24 bits */
+16       interrupts    /* set interrupts, 40 bits */
+17       rega          /* general purpose register, 32 bits */
+18       regb          /* general purpose register, 32 bits */
+19       regc          /* general purpose register, 17 bits */
+20       regab         /* concat of {rega,regb}, thus 64 bits */
+21       radio_ctrl   /* radio i/f direct i/o ctrl, check following "radio_ctrl" section */
+21       ctrl_reg     /* 2023 and after */
+22       jtag_addr    /* load jtag address field, lsb */
+23       freq_index   /* 7 bit read only */
+24       jtag_data    /* wdata to and rdata from jtag */
+25       clkn              /* {clkn_bt, clkn_rt} */
+26       clke              /* {clke_bt, clke_rt} */
+27       stop_watch
+28       fhs_misc   /* SR, SP, pscan mode */
+29       fhs_class  /* class field in fhs */
+30       fhs0   /* read only, bit 0-71 of fhs word */
+31       fhs1   /* read only, bit 72-142 of fhs word */
+32       bt_adr /* r/w, the bt_addr to access gen and freq hopping, contain only lap and uap */
+33       bt_clk /* r/w, the bt_clk for freq hopping */
+34       clkn_bt  /* read only, native bluetooth clock, free running 3.2KHz  or controlled by RTHALFSLOT register */
+35       clkn_rt  /* read only, native realtime clock, free running 12MHz, count from 0-3749, or controlled by RTHALFSLOT register */
+36       freq_mode
+/* wire even_train    = freq_mode[4];    // odd even train                            */
+/* wire conn_mode     = 3;    // connection                                           */
+/* wire iqpgscan_mode = 2;    // slave in inquiry and page (not response)             */
+/* wire iqpgresp_mode = 1;    // slave in inquriy and page (response only)            */
+/* wire inqypage_mode = 0;    // master in inquiry and page(response or not response) */
+37       xin   /* x parameter, read only */
+38       N_tx_slot /* the N factor in equations for Xi,Xp,Xprm,Xprs */
+39 	   auxcnt
+40       clke_bt  /* r/w,  external bluetooth clock , free running 3.2KHz or controlled by RTHALFSLOT register */
+41       clke_rt  /* r/w,  external realtime clock, , free running 12MHz, count from 0-3749, or controlled by RTHALFSLOT register */
+43       host_mode         /* generic stuff for kick starts */
+44       lap
+45       uap
+46       nap         
+47       regext		/* r/w extended 12x32bit registers,  indexed by regext_index */
+48       alarm             /* r/w, lpo wake up time, this is also how lpo and current clock keep sync */
+49       lpo_time          /* read only, this is the value to be copied back to clkn/clke after wakeup */
+50       kc_ls             /* secret key,                71: 0 */
+51       kc_ms             /* secret key,               127:72 */
+52       g1l               /* encryption length                */
+53		mask3ff		/* for mask 0x3ff operation */
+54       aes_ctrl		
+56       regext_index   /* index of regext */
+57	     loopcnt
+58      stack			/* current return address */
+59       stack_ptr		/* stack depth */
+61         pc /* direct goto */
+62       null              /* to nowhere */
+63       pdata /* the shift register */
+)
+default reg = pdata
+
+/* regext_index */
+(
+0 regidx_data
+4 regidx_key
+8 regidx_xor
+12 regidx_result
+)
+/* ========== radio_ctrl========= */
+(
+0 TXGFSK
+1 PSK
+2 PSK3M
+3 RESET
+)
+/* assign BPWR = radio_ctrl[0]; */
+/* assign PARAMP = radio_ctrl[1]; */
+/* assign XTALPU = radio_ctrl[2]; */
+/* assign SYNTHPU = radio_ctrl[3]; */
+/* assign TXPU = radio_ctrl[4]; */
+/* assign RXPU = radio_ctrl[5]; */
+/* assign SLCTRL = radio_ctrl[6]; */
+/* assign XTALSEL_MUX_SEL = radio_ctrl[7] */
+
+
+/* =========== destination[4] ============== */
+(
+0 bucket
+1 rxf
+2 back
+3 mod
+)
+default dest = bucket
+
+/* =========== source[4] ============= */
+(
+1 txf
+3 demod
+)
+default source = 0
+
+
+/* ============== mark ============= *//*0 - 47 */
+(
+
+0  mark_fhs_eir  
+1  mark_rxbuf_inuse
+2  mark_tx_l2cap
+3  mark_switch_initiated
+4  mark_accept_switch
+5  mark_loopback
+7  mark_esco
+8  mark_esco_rxok
+9  mark_context
+10 mark_am_addr_broadcast
+11 mark_fhs_already_good
+12 mark_page_trainb
+13 mark_lpm_mult_enable
+14 mark_usb_flag
+15 mark_old_packet
+16 mark_longpacket
+17 mark_testmode
+18 mark_ar2
+19 mark_h5tx_rp
+20 mark_h5tx_crc	
+21 mark_h5tx_retransmit
+22 mark_h5rx_pstart
+23 mark_h5_sync
+24 mark_h5_reinit
+28 mark_inquiry_on
+29 mark_inquiry_state
+30 mark_inquiry_trainb
+31 mark_periodical_diac
+32 mark_all_diac
+33 mark_slave_in_rand_accepted
+34 mark_reconn_recieve_switch
+35 mark_isstr
+36 mark_loadcode
+37 mark_ext_patch
+38 mark_24g
+39 mark_24g_conext
+40 mark_eeprom_size
+// REVAB:max 35, REVC:max 63
+41 mark_ble_tx_md
+42 mark_ble_rx_md
+43 mark_otp_encrypt
+44 mark_first_packet
+45 mark_role_switch_receive_fhs
+
+)
+
+(
+1 reload_type_otp
+2 reload_type_spi
+3 reload_type_iic
+)
+
+
+/* ============== soft timers ============== */
+(
+0 le_adv_interval_timer
+1 inquiry_length_timer
+2 le_scan_interval_timer
+3 page_length_timer
+4 iscan_interval_timer
+5 pscan_interval_timer
+6 switch_wait_timer
+7 enpt_delay_timer
+8 page_interval_timer
+9 key_scan_timer
+10 smp_pairing_timer
+11  ui_led_blink   //led timer 可扩展
+12  ui_led_blink1
+13 ui_led_blink2
+
+)
+
+(
+1 hci_cmd_inquiry
+2 hci_cmd_inquiry_cancel
+3 hci_cmd_remote_name_req
+4 hci_cmd_remote_feature_req
+5 hci_cmd_create_conn
+6 hci_cmd_disconn
+7 hci_cmd_accept_conn
+8 hci_cmd_reject_conn
+9 hci_cmd_pair
+10 hci_cmd_nopair
+11 hci_cmd_linkkey
+12 hci_cmd_nokey
+13 hci_cmd_auth
+14 hci_cmd_stopencrypt
+15 hci_cmd_startencrypt
+16 hci_cmd_setup_sco
+17 hci_cmd_disconn_sco
+18 hci_cmd_in_sniff
+19 hci_cmd_exit_sniff
+20 hci_cmd_remote_version_req
+21 hci_cmd_remote_ext_features_req
+22 hci_cmd_io_cap
+23 hci_cmd_role_discovery
+24 hci_cmd_role_switch
+25 hci_cmd_accept_with_switch
+26 hci_cmd_detach
+27 hci_cmd_le_create_conn
+28 hci_cmd_accept_sco_conn
+80 hci_cmd_wait_remote_feature
+81 hci_cmd_wait_remote_ext_feature
+82 hci_cmd_wait_remote_name
+)
+
+
+
+/* ============== debug ============= */
+(
+0 debug_neg_skew
+1 debug_bitbucket
+2 debug_dont_clear_got_tx
+3 debug_scatter_enabled
+4 debug_tx_fixed_freq
+5 debug_rx_fixed_freq
+6 debug_tx_pattern
+)
+
+/* ============== tester_emulator ============= */
+(
+0 tester_fixed_flow
+1 tester_fixed_flow_polarity
+2 tester_change
+3 tester_exit
+4 tester_pattern_test
+5 tester_whitening_change
+6 tester_fixed_freq
+7 tester_no_whitening
+)
+
+/* ============== mode ==========*/
+(
+0 mode_le
+1 mode_master
+2 afh_enable
+3 afh_change
+4 send_sco_when_slave
+5 first_seqnx
+)
+
+/* ============== state_map ==========*/
+(
+0 smap_lmptidinit
+1 smap_lmptid
+2 smap_encryption
+3 smap_name_res
+4 smap_name_req
+5 smap_edr
+6 smap_rxlmp
+7 smap_rxl2cap
+)
+(
+0 state_inconn
+1 state_insniff
+2 state_insco 
+3 state_inpage
+4 state_conn_comp
+5 state_init_seq
+6 state_combkey
+7 state_linkkey
+)
+(
+0 op_send_sres
+1 op_auth_req
+2 op_inrand_req
+3 op_disconn
+4 op_stop_enc
+5 op_start_enc
+6 op_txl2cap
+7 op_pkt_comp
+)
+
+
+/* ============== arq [3] ================ */
+(
+0 flow
+1 arqn
+2 seqn
+3 wack
+4 flowx              /* out */  /* not really in memory */
+5 arqnx              /* out */
+6 seqnx              /* out */
+7 bcast1             /* first broadcast received */
+)
+
+/* arq          {flow,arqn,seqn}, read/write */
+/* [0] flow r/w  acl full status of the other, store during rx, checked during tx */
+/* [1] arqn r/w  ack of the other during rx (ack tx fifo),                        */
+/* [2] seqn r/w  seqn of the other, check during rx                               */ 
+/* arqx         {flowx,arqnx,seqnx} */
+/* [0] flowx r/o flow back to the other, 1 alow send, 0 not to send, read only tx */
+/* [1] arqnx r/w ack to the other, set by rx, send back on tx                     */
+/* [2] seqnx r/w toggled by arqn, to be send during tx                            */ 
+
+(
+0 llid0
+1 llid1
+2 nesn
+3 sn
+4 md
+5 wak
+)
+
+/* AFH flags */
+(
+0 AFH_CFG_ON
+1 AFH_CFG_TIMER
+2 send_lmp_set_afh
+3 AFH_CFG_REPORT_MODE
+4 AFH_CFG_MASTER_SENT_REQ
+)
+
+/* LLID CODE */
+(	
+1 LLID_L2CAP_CONT
+2 LLID_L2CAP_START
+3 LLID_LMP
+)
+
+/* ============== master_state ==========*/
+(
+0  master_in_idle
+1  master_in_inquiry
+2  master_in_page
+10 master_in_becoming_slave
+15 master_in_conn
+)
+(
+0 newrev_feature_bettx
+1 newrev_feature_betplltx
+2 newrev_feature_skip_retransmit
+3 newrev_feature_init_radio_after_sleep
+4 newrev_feature_no_lpolog
+)
+/*************mem_pincode_state****************/
+(
+0 pincode_state_ilde
+1 pincode_state_wait_pincode
+2 pincode_state_pincode_ready
+)
+
+
+// lpm_write
+(
+1 lpmreg_sel_ctrl
+2 lpmreg_sel_ctrl2
+4 lpmreg_sel_gpiolow
+8 lpmreg_sel_gpiohigh
+16 lpmreg_sel_counter
+)
+
+//scan_mode
+(
+0 inq_scan_mode
+1 page_scan_mode
+2 page_inq_enable
+)
+//mem_neogotiation_state
+(
+ 0 default_neogotiation_state
+ 1 prarm_neogotiation
+)
+
+//mem_lpm_wake_lock
+(
+0 wake_lock_ble_rx
+1 wake_lock_ble_tx
+
+3 wake_lock_key_press
+4 wake_lock_ble_tx_patch
+5 wake_lock_uart_tx
+6 wake_lock_uart_rx
+7 wake_lock_button
+8 wake_lock_cmd
+9 wake_lock_app
+10 wake_lock_lmp_tx
+11 wake_lock_lmp_rx
+12 wake_lock_l2cap_tx
+13 wake_lock_l2cap_rx
+14 wake_lock_ipc_c512bt
+15 wake_lock_ipc_bt2c51
+
+)
+
+(
+0 bt_disabled
+1 ble_disabled
+2 module_disable
+
+)
+
+(
+0x33  REC_3_MODE
+0x34  REC_4_MODE
+0x35  REC_4_MODE_STATIC_ADDRESS
+0x36  REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS
+0x37  REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS
+)
+
+
+//sniff UART_TX UART_RX
+(
+6 UART_WAKEUP_TX
+7 UART_WAKEUP_RX
+)
+
+
+(
+0 P24G_SM_PAIRING_SUCC
+1 P24G_SM_PAIRING_REQUEST
+2 P24G_SM_PAIRING_WAIT_ADDR
+3 P24G_SM_PAIRING_COMPLETE
+4 P24G_SM_PAIRING_WAIT_SUCC
+)
+
+(
+0 P24G_PAIRING_REQ_HEAD
+1 P24G_PAIRING_COMPLETE_HEAD
+)
+
+/* 24g */
+(
+6 dlen_24g
+14 plen_24g
+90 blen_tx_24g
+106 blen_rx_24g
+42 blen_txack_24g
+58 blen_rxack_24g
+
+0xaaf08e acc_24g
+0x15c4 crc_data_3byte
+0xbb81 crc_data_6byte
+0x4160 crc_ack
+41390 crc_ack_4byte
+)
+
+
+
+
+
+//adc read
+(
+0 ADC_CONFIG_VINLPM
+1 ADC_CONFIG_HVIN
+2 ADC_CONFIG_GPIO
+)
+
+(
+0 QUEUE_OFFSET_EACH_SIZE
+1 QUEUE_OFFSET_LENGTH
+2 QUEUE_OFFSET_CURR_NUM
+3 QUEUE_OFFSET_READ_PTR
+4 QUEUE_OFFSET_WRITE_PTR
+5 QUEUE_OFFSET_ELE_INIT_ADDR
+)
+
+(
+//Flash Register
+0x05 FLASH_READ_SATUS
+
+// Flash Status Register
+0x00 FLASH_STATUS_WIP
+0X01 FLASH_STATUS_WEL
+0X02 FLASH_STATUS_BP0
+0X03 FLASH_STATUS_BP1
+
+//Flash Write Sm
+0X00 FLASH_SM_NO_BUYS
+0X01 FLASH_SM_START
+0X02 FLASH_SM_ERASE_SECTOR
+0X03 FLASH_SM_WAIT_ERASE_SECTOR
+0X04 FLASH_SM_WRITE_DATA
+0X05 FLASH_SM_WAIT_WRITE_DATA
+
+
+//Flash Command
+0x02 FLASH_COMMAND_WRITE_DATA
+0x03 FLASH_COMMAND_READ_DATA
+0x20 FLASH_COMMAND_SECTOR_ERASE
+)
+
+0x0000 otp_ucode_flag
+0x07f0 otp_ucode_aeskey
+
+/* adc data addr and flag */
+(
+0x07e0 OTP_CHIP_FUNCTIONS
+0x07e2 otp_adc_io_0_5V_addr
+0x07e4 otp_adc_hvin_1V_addr
+0x07e6 otp_adc_vinlpm_2V_addr
+0x07e8 otp_adc_io_1V_addr
+0x07ea otp_adc_hvin_5V_addr
+0x07ec otp_adc_vinlpm_3V_addr
+0x07ee otp_adc_flag_addr
+0xaa55 OTP_ADC_FLAG
+)
+
+/* data stored in eeprom */
+(
+0	eeprom_bdaddr_list
+0	eeprom_nv_ram
+28	eeprom_last_record
+29	eeprom_le_reconn_local_addr
+35	eeprom_linkkey_list//64
+
+99	eeprom_module_bt_adss//6
+105	eeprom_module_le_adss//6
+111	eeprom_module_pincode_length//1
+112	eeprom_module_pincode//15
+127	eeprom_module_bt_name_length//1
+128	eeprom_module_bt_name//32
+160	eeprom_module_ble_name_length//1
+161	eeprom_module_ble_name//31
+192	eeprom_module_trans_baud//3
+195	eeprom_module_init_flag//2
+197	eeprom_module_uuid//6
+203 eeprom_module_ssp_enable//1
+204 eeprom_module_end//2
+
+//dpi eeprom addr
+198 eeprom_mouse_dpi
+)
+
+/*mem_app_handshake_flag*/
+(
+0 APP_HANDSHAKE_NULL
+1 APP_HANDSHAKE_DONE
+
+)
+/*mem_device_option*/
+(
+1 dvc_op_hci
+3 dvc_op_kb
+4 dvc_op_dongle
+5 dvc_op_spp
+6 dvc_op_ukey
+7 dvc_op_ir
+
+9 dvc_op_shutter
+10 dvc_op_module
+11 dvc_op_ble_mouse
+12 dvc_op_ble_kb
+13 dvc_op_ble_prcp
+255 dvc_op_test
+//device option hight 4
+6 dvc_op_mouse
+7 dvc_op_keyboard
+//device option low 2
+(
+0 MODE_3_MOUSE
+1 MODE_4_MOUSE
+)
+)
+
+(
+3 twspi_sclk
+4 twspi_sdio
+)
+
+(
+4 pan_clk_bit
+5 pan_dat_bit
+6 pan_mov_bit
+)
+
+(
+7 otp_uflag_aes
+6 otp_uflag_skip_eep
+5 otp_uflag_skip_flash
+4 otp_uflag_hci
+)
+
+/* ir command */
+(
+1 ircmd_record
+2 ircmd_play
+3 ircmd_write_pulse
+4 ircmd_write_seq
+5 ircmd_write_next
+
+8 ircmd_test_play
+9 ircmd_test_rec
+
+10 ircmd_report_pulse
+11 ircmd_report_seq
+12 ircmd_report_raw
+
+20 ircmd_screen_on
+21 ircmd_screen_off
+)
+
+(
+7 gpio_active_bit
+)
+(
+2 HID_HANDSHAKE_TIMEOUT
+
+)
+
+(
+1 APP_FLAG_RECONNECT
+)
+(
+5 LPM_WAKE_UP_DELAY_TIMER
+)
+
+
+//mem_app_disconn_reason
+//mem_app_disconn_reason_flag
+//bit map
+(
+2 APP_DISC_RSN_SIZE
+)
+(
+0 APP_DISC_BY_BUTTON
+1 APP_DISC_AFTER_PAIRING
+2 APP_DISC_AFTER_RECONN
+3 APP_DISC_AFTER_SNIFF
+4 APP_DISC_AFTER_SETUP_DONE
+5 APP_DISC_AFTER_HANDSHAKE
+6 APP_DISC_BT
+7 APP_DISC_BLE
+8 APP_DISC_L2CAP_REFUSED
+9 APP_DISC_SWITCH_FAIL
+10 APP_DISC_PB_BUTTON
+)
+//eeprom init flag
+(
+	0xaa55 EEPROM_INIT_FLAG
+)
+
+
+
+0x022d mem_h5rx_ackcnt
+0x022e mem_check_err_acl_cont
+0x022f mem_rp_packets
+0x0230 mem_packet_type
+0x0232 mem_hci_sniff_conn_handle
+0x0234 mem_hci_sniff_max_interval
+0x0236 mem_hci_sniff_min_interval
+0x0238 mem_hci_sniff_attempt
+0x023a mem_hci_sniff_timeout
+0x023c mem_voice_setting
+0x023e mem_retransmission_effort
+0x023f mem_sco_ptype
+0x0241 mem_extm_uap_restore
+0x0244 mem_h5rx_rptr
+0x0246 mem_h5rx_ack
+0x0247 mem_h5tx_ack
+0x0248 mem_h5tx_rptr
+0x024a mem_h5tx_wptr
+0x024c mem_h5tx_free
+0x024e mem_h5rx_tmp
+0x024f mem_h5tx_seq
+0x0250 mem_hci_acl_queue_wptr
+0x0252 mem_hci_acl_queue_rptr
+0x0254 mem_hci_acl_queue_end
+0x0256 mem_hci_acl_queue_wcnt
+0x0257 mem_hci_acl_cnt
+0x0258 mem_hci_acl_tx_trigger_wptr//tx via uart
+0x025a mem_hci_curr_len
+0x025b mem_hci_curr_target
+
+
+15 hci_flag_rp
+//mem_hci_options bit map
+(
+1 hci_option_h4
+2 hci_option_protocol2
+3 hci_option_protocol3
+4 hci_option_uart
+5 hci_option_usb
+6 hci_option_phy2
+7 hci_option_phy3
+)
+// UART baud rate @6MHz
+(
+0 uart_ctrl_bit_enable
+3 uart_ctrl_bit_slip_protocol
+
+)
+
+//bit map of core_uart_ctrl
+(
+
+)
+//bit map of core_uart_status
+(
+0 uart_status_tx_fifo_full
+1 uart_status_tx_fifo_empty
+2 uart_status_tx_busy
+3 uart_status_rx_fifo_empty
+
+)
+//HCI H4 LOG related
+(
+0x4850 mem_hci_log
+8 hci_log_size
+100 hci_log_cnt
+
+)
+//HCI H4 Packet TYPE
+(
+0x01 HCI_H4_TYPE_CMD
+0x02 HCI_H4_TYPE_ACL
+0x04 HCI_H4_TYPE_EVENT
+
+)
+// HCI command opcode group field values
+(
+0x01 HCI_OGF_LINK_CONTROL
+0x02 HCI_OGF_LINK_POLICY
+0x03 HCI_OGF_BASEBAND
+0x04 HCI_OGF_INFO
+0x05 HCI_OGF_STATUS
+0x06 HCI_OGF_TEST
+0x08 HCI_OGF_LOW_ENERGY
+0x3e HCI_OGF_LOGO_TESTING
+0x3f HCI_OGF_VENDOR_SPECIFIC
+)
+
+// HCI link control opcode command field values, OGF=1
+(
+0x01 HCI_INQUIRY 
+0x02 HCI_INQUIRY_CANCEL 
+0x03 HCI_PERIODIC_INQUIRY_MODE 
+0x04 HCI_EXIT_PERIODIC_INQUIRY_MODE 
+0x05 HCI_CREATE_CONNECTION 
+0x06 HCI_DISCONNECT 
+0x07 HCI_ADD_SCO_CONNECTION 
+0x08 HCI_CREATE_CONNECTION_CANCEL
+0x09 HCI_ACCEPT_CONNECTION 
+0x0A HCI_REJECT_CONNECTION 
+0x0B HCI_LINK_KEY_REQUEST_REPLY 
+0x0C HCI_LINK_KEY_REQUEST_NEGATIVE_REPLY 
+0x0D HCI_PIN_CODE_REQUEST_REPLY 
+0x0E HCI_PIN_CODE_REQUEST_NEGATIVE_REPLY 
+0x0F HCI_CHANGE_CONNECTION_PACKET_TYPE 
+0x11 HCI_AUTHENTICATION_REQUESTED 
+0x13 HCI_SET_CONNECTION_ENCRYPTION 
+0x15 HCI_CHANGE_CONNECTION_LINK_KEY 
+0x17 HCI_MASTER_LINK_KEY 
+0x19 HCI_REMOTE_NAME_REQUEST 
+0x1A HCI_REMOTE_NAME_REQUEST_CANCEL
+0x1B HCI_READ_REMOTE_SUPPORTED_FEATURES 
+0x1C HCI_READ_REMOTE_EXT_FEATURES 
+0x1D HCI_READ_REMOTE_VERSION_INFORMATION 
+0x1F HCI_READ_CLOCK_OFFSET 
+0x20 HCI_READ_LMP_HANDLE
+0x28 HCI_SETUP_SCO_CONNECTION
+0x29 HCI_ACCEPT_SCO_CONNECTION
+0x2A HCI_REJECT_SCO_CONNECTION
+0x2B HCI_IO_CAP_REQUEST_REPLY
+0x2C HCI_USER_CONFIRMATION_REQUEST_REPLY
+0x2D HCI_USER_CONFIRMATION_REQUEST_NEGATIVE_REPLY
+0x2E HCI_USER_PASSKEY_REQUEST_REPLY
+0x2F HCI_USER_PASSKEY_REQUEST_NEGATIVE_REPLY
+0x30 HCI_REMOTE_OOB_DATA_REQUEST_REPLY
+0x33 HCI_REMOTE_OOB_DATA_REQUEST_NEGATIVE_REPLY
+0x34 HCI_IO_CAPABILITY_REQUEST_NEGATIVE_REPLY
+0x35 HCI_CREATE_PHYSICAL_LINK
+0x36 HCI_ACCEPT_PHYSICAL_LINK
+0x37 HCI_DISCONNECT_PHYSICAL_LINK
+0x38 HCI_CREATE_LOGICAL_LINK
+0x39 HCI_ACCEPT_LOGICAL_LINK
+0x3A HCI_DISCONNECT_LOGICAL_LINK
+0x3B HCI_LOGICAL_LINK_CANCEL
+0x3C HCI_FLOW_SPEC_MODIFY
+0x3D HCI_ENHANCED_SETUP_SYNCHRONOUS_CONNECTION
+0x3E HCI_ENHANCED_ACCEPT_SYNCHRONOUS_CONNECTION_REQUEST
+0x3F HCI_TRUNCATED_PAGE
+0x40 HCI_TRUNCATED_PAGE_CANCEL
+0x41 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST
+0x42 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
+0x43 HCI_START_SYNCHRONIZATION_TRAIN
+0x44 HCI_RECEIVE_SYNCHRONIZATION_TRAIN
+0x45 HCI_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY
+)
+
+
+// HCI link policy commands OCF value, OGF=2
+(
+0x01 HCI_HOLD_MODE 
+0x03 HCI_SNIFF_MODE 
+0x04 HCI_EXIT_SNIFF_MODE 
+0x05 HCI_PARK_MODE 
+0x06 HCI_EXIT_PARK_MODE 
+0x07 HCI_QOS_SETUP 
+0x09 HCI_ROLE_DISCOVERY 
+0x0B HCI_SWITCH_ROLE 
+0x0C HCI_READ_LINK_POLICY_SETTINGS 
+0x0D HCI_WRITE_LINK_POLICY_SETTINGS 
+0x0e HCI_READ_DEFAULT_LINK_POLICY_SETTINGS
+0x0f HCI_WRITE_DEFAULT_LINK_POLICY_SETTINGS
+0x10 HCI_FLOW_SPECIFICATION
+0x11 HCI_SNIFF_SUBRATING
+)
+
+// HCI host controller and baseband commands OCF values, OGF=3
+(
+0x01 HCI_SET_EVENT_MASK 
+0x03 HCI_RESET 
+0x05 HCI_SET_EVENT_FILTER 
+0x08 HCI_FLUSH 
+0x09 HCI_READ_PIN_TYPE 
+0x0A HCI_WRITE_PIN_TYPE 
+0x0B HCI_CREATE_NEW_UNIT_KEY 
+0x0D HCI_READ_STORED_LINK_KEY 
+0x11 HCI_WRITE_STORED_LINK_KEY 
+0x12 HCI_DELETE_STORED_LINK_KEY 
+0x13 HCI_WRITE_LOCAL_NAME 
+0x14 HCI_READ_LOCAL_NAME 
+0x15 HCI_READ_CONN_ACCEPT_TIMEOUT 
+0x16 HCI_WRITE_CONN_ACCEPT_TIMEOUT 
+0x17 HCI_READ_PAGE_TIMEOUT 
+0x18 HCI_WRITE_PAGE_TIMEOUT 
+0x19 HCI_READ_SCAN_ENABLE 
+0x1A HCI_WRITE_SCAN_ENABLE 
+0x1B HCI_READ_PAGE_SCAN_ACTIVITY 
+0x1C HCI_WRITE_PAGE_SCAN_ACTIVITY 
+0x1D HCI_READ_INQUIRY_SCAN_ACTIVITY 
+0x1E HCI_WRITE_INQUIRY_SCAN_ACTIVITY 
+0x1F HCI_READ_AUTHENTICATION_ENABLE 
+0x20 HCI_WRITE_AUTHENTICATION_ENABLE 
+0x21 HCI_READ_ENCRYPTION_MODE 
+0x22 HCI_WRITE_ENCRYPTION_MODE 
+0x23 HCI_READ_CLASS_OF_DEVICE 
+0x24 HCI_WRITE_CLASS_OF_DEVICE 
+0x25 HCI_READ_VOICE_SETTING 
+0x26 HCI_WRITE_VOICE_SETTING 
+0x27 HCI_READ_AUTOMATIC_FLUSH_TIMEOUT 
+0x28 HCI_WRITE_AUTOMATIC_FLUSH_TIMEOUT 
+0x29 HCI_READ_NUM_BROADCAST_RETRANSMISSIONS 
+0x2A HCI_WRITE_NUM_BROADCAST_RETRANSMISSIONS 
+0x2B HCI_READ_HOLD_MODE_ACTIVITY 
+0x2C HCI_WRITE_HOLD_MODE_ACTIVITY 
+0x2D HCI_READ_TRANSMIT_POWER_LEVEL 
+0x2E HCI_READ_SCO_FLOW_CONTROL_ENABLE 
+0x2F HCI_WRITE_SCO_FLOW_CONTROL_ENABLE 
+0x31 HCI_SET_CONTROLLER_TO_HOST_FLOW_CONTROL 
+0x33 HCI_HOST_BUFFER_SIZE 
+0x35 HCI_HOST_NUM_COMPLETED_PACKETS 
+0x36 HCI_READ_LINK_SUPERVISION_TIMEOUT 
+0x37 HCI_WRITE_LINK_SUPERVISION_TIMEOUT 
+0x38 HCI_READ_NUMBER_OF_SUPPORTED_IAC 
+0x39 HCI_READ_CURRENT_IAC_LAP 
+0x3A HCI_WRITE_CURRENT_IAC_LAP 
+0x3B HCI_READ_PAGE_SCAN_PERIOD_MODE 
+0x3C HCI_WRITE_PAGE_SCAN_PERIOD_MODE 
+0x3D HCI_READ_PAGE_SCAN_MODE 
+0x3E HCI_WRITE_PAGE_SCAN_MODE 
+0x3F HCI_SET_AFH_CHANNEL_CLASSIFICATION 
+
+
+0x42 HCI_READ_INQUIRY_SCAN_TYPE 
+0x43 HCI_WRITE_INQUIRY_SCAN_TYPE 
+0x44 HCI_READ_INQUIRY_MODE 
+0x45 HCI_WRITE_INQUIRY_MODE 
+0x46 HCI_READ_PAGE_SCAN_TYPE 
+0x47 HCI_WRITE_PAGE_SCAN_TYPE 
+
+0x48 HCI_READ_AFH_CHANNEL_ACCESSMENT_MODE 
+0x49 HCI_WRITE_AFH_CHANNEL_ACCESSMENT_MODE 
+0x51 HCI_READ_EXTENDED_INQUIRY_RESPONSE
+0x52 HCI_WRITE_EXTENDED_INQUIRY_RESPONSE
+0x53 HCI_REFRESH_ENCRYPTION_KEY
+0x55 HCI_READ_SIMPLE_PAIRING_MODE
+0x56 HCI_WRITE_SIMPLE_PAIRING_MODE
+0x57 HCI_READ_LOCAL_OOB_DATA
+0x58 HCI_READ_INQUIRY_RESPONSE_TRANSMIT_POWER_LEVEL
+0x59 HCI_WRITE_INQUIRY_TRANSMIT_POWER_LEVEL
+0x60 HCI_SEND_KEYPRESS_NOTIFICATION
+0x5A HCI_READ_DEFAULT_ERRONEOUS_DATA_REPORTING
+0x5B HCI_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING
+0x5F HCI_ENHANCED_FLUSH
+0x61 HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT
+0x62 HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT
+0x63 HCI_SET_EVENT_MASK_PAGE_2
+0x64 HCI_READ_LOCATION_DATA
+0x65 HCI_WRITE_LOCATION_DATA
+0x66 HCI_READ_FLOW_CONTROL_MODE
+0x67 HCI_WRITE_FLOW_CONTROL_MODE
+0x68 HCI_READ_ENHANCE_TRANSMIT_POWER_LEVEL
+0x69 HCI_READ_BEST_EFFORT_FLUSH_TIMEOUT
+0x6A HCI_WRITE_BEST_EFFORT_FLUSH_TIMEOUT
+0x6B HCI_SHORT_RANGE_MODE
+0x6C HCI_READ_LE_HOST_SUPPORT
+0x6D HCI_WRITE_LE_HOST_SUPPORT
+0x6E HCI_SET_MWS_CHANNEL_PARAMETERS
+0x6F HCI_SET_EXTERNAL_FRAME_CONFIGURATION
+0x70 HCI_SET_MWS_SIGNALING
+0x71 HCI_SET_MWS_TRANSPORT_LAYER
+0x72 HCI_SET_MWS_SCAN_FREQUENCY_TABLE
+0x73 HCI_SET_MWS_PATTERN_CONFIGURATION
+0x74 HCI_SET_RESERVED_LT_ADDR
+0x75 HCI_DELETE_RESERVED_LT_ADDR
+0x76 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_DATA
+0x77 HCI_READ_SYNCHRONIZATION_TRAIN_PARAMETERS
+0x78 HCI_WRITE_SYNCHRONIZATION_TRAIN_PARAMETERS
+0x79 HCI_READ_SECURE_CONNECTIONS_HOST_SUPPORT
+0x7A HCI_WRITE_SECURE_CONNECTIONS_HOST_SUPPORT
+0x7B HCI_READ_AUTHENTICATED_PAYLOAD_TIMEOUT
+0x7C HCI_WRITE_AUTHENTICATED_PAYLOAD_TIMEOUT
+0x7D HCI_READ_LOCAL_OOB_EXTENDED_DATA
+0x7E HCI_READ_EXTENDED_PAGE_TIMEOUT
+0x7F HCI_WRITE_EXTENDED_PAGE_TIMEOUT
+0x80 HCI_READ_EXTENDED_INQUIRY_LENGTH
+0x81 HCI_WRITE_EXTENDED_INQUIRY_LENGTH
+)
+
+
+// HCI informational parameters OCF values, OGF=4
+(
+0x01 HCI_READ_LOCAL_VERSION_INFORMATION 
+0x02 HCI_READ_LOCAL_SUPPORTED_COMMANDS
+0x03 HCI_READ_LOCAL_SUPPORTED_FEATURES 
+0x04 HCI_READ_LOCAL_EXT_FEATURES 
+0x05 HCI_READ_BUFFER_SIZE 
+0x07 HCI_READ_COUNTRY_CODE 
+0x09 HCI_READ_BD_ADDR 
+0x0A HCI_REJECT_CONNECTION_REQUEST
+0x0B HCI_READ_LOCAL_SUPPORTED_CODECS
+)
+
+// HCI status parameters OCF values, OGF=5
+(
+0x01 HCI_READ_FAILED_CONTACT_COUNTER 
+0x02 HCI_RESET_FAILED_CONTACT_COUNTER 
+0x03 HCI_GET_LINK_QUALITY 
+0x05 HCI_READ_RSSI 
+0x06 HCI_READ_AFH_CHANNEL_MAP
+0x07 HCI_READ_BD_CLOCK
+0x08 HCI_READ_ENCRYPTION_KEY_SIZE
+0x09 HCI_READ_LOCAL_AMP_INFO
+0x0A HCI_READ_LOCAL_AMP_ASSOC
+0x0B HCI_WRITE_REMOTE_AMP_ASSOC
+0x0C HCI_GET_MWS_TRANSPORT_LAYER_CONFIGURATION
+0x0D HCI_SET_TRIGGERED_CLOCK_CAPTURE
+)
+
+// HCI testing command OCF values, OGF=6
+(
+0x01 HCI_READ_LOOPBACK_MODE 
+0x02 HCI_WRITE_LOOPBACK_MODE 
+0x03 HCI_ENABLE_DEVICE_UNDER_TEST_MODE 
+0x04 HCI_WRITE_SIMPLE_PAIRING_DEBUG_MODE
+0x07 HCI_ENABLE_AMP_RECEIVER_REPORTS
+0x08 HCI_AMP_TEST_END
+0x09 HCI_AMP_TEST
+0x0A HCI_WRITE_SECURE_CONNECTIONS_TEST_MODE
+)
+
+// HCI vendor specific command OCF values -OGF=3F
+(
+0x01 HCI_WRITE_BD_ADDR 
+0x02 HCI_READ_INQUIRY_RESPONSE_TIMEOUT 
+0x03 HCI_WRITE_INQUIRY_RESPONSE_TIMEOUT 
+0x04 HCI_READ_PAGE_SCAN_REPETITION_MODE 
+0x05 HCI_WRITE_PAGE_SCAN_REPETITION_MODE 
+0x06 HCI_READ_PAGE_RESPONSE_TIMEOUT 
+0x07 HCI_WRITE_PAGE_RESPONSE_TIMEOUT 
+0x08 HCI_READ_NEW_CONNECTION_TIMEOUT 
+0x09 HCI_WRITE_NEW_CONNECTION_TIMEOUT 
+0x0a HCI_INITIALIZE_BASEBAND 
+0x0b HCI_WRITE_LOCAL_SUPPORTED_FEATURES 
+0x0c HCI_WRITE_PARK_PARAMETERS 
+0x0d HCI_READ_PARK_PARAMETERS 
+0x0e HCI_WRITE_QUALITY_OF_SERVICE 
+0x0f HCI_NOT_USED 
+0x10 HCI_MODIFY_BEACON_PARAMETERS 
+0x11 HCI_UNPARK_USING_PM_ADDR 
+0x12 HCI_WRITE_HOPPING_CHANNELS 
+0x13 HCI_SLEEP_FOREVER_MODE 
+0x14 HCI_WRITE_AUTO_PAGE_SCAN_ENABLE 
+0x15 HCI_READ_AUTO_PAGE_SCAN_ENABLE 
+0x16 HCI_SET_ENCRYPTION_KEY_SIZE 
+0x17 HCI_INVALIDATE_FLASH_AND_REBOOT 
+0x18 HCI_UPDATE_UART_BAUD_RATE 
+0x19 HCI_WRITE_GPIO_1_4_AS_OUTPUT 
+0x1A HCI_WRITE_GPIO_2_LED 
+0x1B HCI_SET_TESTMODE_TYPE 
+0x1C HCI_WRITE_SCO_PCM_INT_PARAM 
+0x1D HCI_READ_SCO_PCM_INT_PARAM 
+0x1E HCI_WRITE_PCM_DATA_FORMAT_PARAM 
+0x1F HCI_READ_PCM_DATA_FORMAT_PARAM 
+0x20 HCI_WRITE_COMFORT_NOISE_PARAM 
+0x21 HCI_READ_COMFORT_NOISE_PARAM 
+0x22 HCI_WRITE_SCO_TS 
+0x23 HCI_READ_SCO_TS 
+0x24 HCI_WRITE_PCM_LOOPBACK_MODE 
+0x25 HCI_READ_PCM_LOOPBACK_MODE 
+0x26 HCI_SET_TRANSMIT_POWER 
+0x27 HCI_SET_SLEEPMODE_PARAM 
+0x28 HCI_READ_SLEEPMODE_PARAM 
+0x29 HCI_SLEEPMODE_CMD 
+0x2A HCI_DELAY_PERIPHERAL_SCO_STARTUP 
+0x2B HCI_WRITE_RECEIVE_ONLY 
+0x2C HCI_WRITE_RATE_CONTROL 
+0x2D HCI_TX_UNMOD_CARRIER 
+0x2E HCI_DOWNLOAD_MINIDRIVER 
+0x2F HCI_CRYSTAL_PPM 
+0x30 HCI_SET_POWER_AMP_BIAS 
+0x31 HCI_SET_HAM_BEHAVIOR 
+0x32 HCI_SET_AFH_BEHAVIOR 
+0x33 HCI_READ_USER_DEFINED_NVRAM 
+0x34 HCI_ENABLE_RADIO 
+0x35 HCI_READ_DIAGNOSTIC_INFO 
+0x36 HCI_GET_HID_DEVICE_LIST 
+0x37 HCI_ADD_HID_DEVICE 
+0x38 HCI_READ_APP_FW_CONFIG_VERSION 
+0x39 HCI_DELETE_HID_DEVICE 
+0x3B HCI_ENABLE_USB_HID_EMULATION 
+// 0x3A available
+// 0x3B available
+0x3C HCI_SEND_LMPDU 
+0x3D HCI_AUTO_PAIR_REQ 
+0x3E HCI_READ_VS_EXTENSION 
+0x3F HCI_WRITE_VS_EXTENSION 
+
+0x77 HCI_OPCODE_FC77
+0x79 HCI_OPCODE_FC79
+0xC4 HCI_DOWNLOAD_PATCH
+0xCC HCI_OPCODE_FCCC
+
+0x00 HCI_VENDOR_CMD_RESET
+0x01 HCI_VENDOR_CMD_CHIPID
+0x02 HCI_VENDOR_CMD_BAUD
+0x03 HCI_VENDOR_CMD_PATCH
+0x04 HCI_VENDOR_CMD_PATCH_DONE
+0x05 HCI_VENDOR_CMD_ECHO
+0x06 HCI_VENDOR_CMD_BDADDR
+
+0x07 HCI_VENDOR_CMD_ENTER_LPM
+0x08 HCI_VENDOR_CMD_COMMU_READY
+
+0x10 HCI_VENDOR_CMD_MEM
+0x11 HCI_VENDOR_CMD_EEP
+)
+
+//HCI LE controller command OCF values, OGF=8
+(
+0x01 HCI_LE_SET_EVENT_MASK
+0x02 HCI_LE_READ_BUFFER_SIZE
+0x03 HCI_LE_READ_LOCAL_SUPPORTED_FEATURES
+0x05 HCI_LE_SET_RANDOM_ADDRESS
+0x06 HCI_LE_SET_ADVERTISING_PARAMETERS
+0x07 HCI_LE_READ_ADVERTISING_CHANNEL_TX_POWER
+0x08 HCI_LE_SET_ADVERTISING_DATA
+0x09 HCI_LE_SET_SCAN_RESPONSE_DATA
+0x0A HCI_LE_SET_ADVERTISE_ENABLE
+0x0B HCI_LE_SET_SCAN_PARAMETERS
+0x0C HCI_LE_SET_SCAN_ENABLE
+0x0D HCI_LE_CREATE_CONNECTION
+0x0E HCI_LE_CREATE_CONNECTION_CANCEL
+0x0F HCI_LE_READ_WHITE_LIST_SIZE
+0x10 HCI_LE_CLEAR_WHITE_LIST
+0x11 HCI_LE_ADD_DEVICE_TO_WHITE_LIST
+0x12 HCI_LE_REMOVE_DEVICE_FROM_WHITE_LIST
+0x13 HCI_LE_CONNECTION_UPDATE
+0x14 HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION
+0x15 HCI_LE_READ_CHANNEL_MAP
+0x16 HCI_LE_READ_REMOTE_USED_FEATURES
+0x17 HCI_LE_ENCRYPT
+0x18 HCI_LE_RAND
+0x19 HCI_LE_START_ENCRYPTION
+0x1A HCI_LE_LONG_TERM_KEY_REQUEST_REPLY
+0x1B HCI_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY
+0x1C HCI_LE_READ_SUPPORTED_STATES
+0x1D HCI_LE_RECEIVER_TEST
+0x1E HCI_LE_TRANSMITTER_TEST
+0x1F HCI_LE_TEST_END
+0x20 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_REPLY
+0x21 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_NEGATIVE_REPLY
+)
+// HCI event code
+(
+0x01 HCI_EVENT_INQUIRY_COMPLETE
+0x02 HCI_EVENT_INQUIRY_RESULT
+0x03 HCI_EVENT_CONNECTION_COMPLETE
+0x04 HCI_EVENT_CONNECTION_REQUEST
+0x05 HCI_EVENT_DISCONNECTION_COMPLETE
+0x06 HCI_EVENT_AUTHENTICATION_COMPLETE
+0x07 HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE
+0x08 HCI_EVENT_ENCRYPTION_CHANGE_COMPLETE
+0x09 HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE
+0x0A HCI_EVENT_MASTER_LINK_KEY_COMPLETE
+0x0B HCI_EVENT_READ_REMOTE_FEATURES_COMPLETE
+0x0C HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE
+0x0D HCI_EVENT_QOS_SETUP_COMPLETE
+0x0E HCI_EVENT_COMMAND_COMPLETE
+0x0F HCI_EVENT_COMMAND_STATUS
+0x10 HCI_EVENT_HARDWARE_ERROR
+0x11 HCI_EVENT_FLUSH_OCCURRED
+0x12 HCI_EVENT_ROLE_CHANGE
+0x13 HCI_EVENT_NUM_COMPLETED_PACKETS
+0x14 HCI_EVENT_MODE_CHANGE
+0x15 HCI_EVENT_RETURN_LINK_KEYS
+0x16 HCI_EVENT_PIN_CODE_REQUEST
+0x17 HCI_EVENT_LINK_KEY_REQUEST
+0x18 HCI_EVENT_LINK_KEY_NOTIFICATION
+0x19 HCI_EVENT_LOOPBACK_COMMAND
+0x1A HCI_EVENT_DATA_BUFFER_OVERFLOW
+0x1B HCI_EVENT_MAX_SLOTS_CHANGE
+0x1C HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE
+0x1D HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED
+0x1E HCI_EVENT_QOS_VIOLATION
+0x1F HCI_EVENT_PAGE_SCAN_MODE_CHANGE
+0x20 HCI_EVENT_PAGE_SCAN_REPETITION_MODE_CHANGE
+0x21 HCI_EVENT_FLOW_SPECIFICATION_COMPLETE
+0x22 HCI_EVENT_INQUIRY_RESULT_WITHRSSI
+0x23 HCI_EVENT_READ_REMOTE_EXT_FEATURES_COMPLETE
+0x2C HCI_EVENT_SCO_CONNECTION_COMPLETE
+0x2D HCI_EVENT_SCO_CONNECTION_CHANGED
+0x2E HCI_EVENT_SNIFF_SUBRATING
+0x2F HCI_EVENT_EXT_INQUIRY_RESULT
+0x30 HCI_EVENT_ENCRYPT_KEY_REFRESH_COMPLETE
+0x31 HCI_EVENT_IO_CAP_REQ
+0x32 HCI_EVENT_IO_CAP_RESPONSE
+0x33 HCI_EVENT_USER_CONFIRMATION_REQUEST
+0x34 HCI_EVENT_UESR_PASSKEY_REQUEST
+0x35 HCI_EVENT_REMOTE_OOB_DATA_REQUEST
+0x36 HCI_EVENT_SIMPLE_PAIRING_COMPLETE
+0x38 HCI_EVENT_LINK_SUPERVISION_TIMEOUT_CHANGED
+0x39 HCI_EVENT_ENHANCED_FLUSH_COMPLETE
+0x3B HCI_EVENT_USER_PASSKEY_NOTIFICATION
+0x3C HCI_EVENT_KEYPRESS_NOTIFICATION
+0x3D HCI_EVENT_REMOTE_HOST_SUPPORTED_FEATURES_NOTIFICATION 
+0x3E HCI_EVENT_LE_META_EVENT
+0x40 HCI_EVENT_PHYSICAL_LINK_COMPLETE
+0x41 HCI_EVENT_CHANNEL_SELECTED
+0x42 HCI_EVENT_DISCONNECTION_PHYSICAL_LINK_COMPLETE
+0x43 HCI_EVENT_PHYSICAL_LINK_LOSS_EARLY_WARNING
+0x44 HCI_EVENT_PHYSICAL_LINK_RECOVERY
+0x45 HCI_EVENT_LOGICAL_LINK_COMPLETE
+0x46 HCI_EVENT_DISCONNECTION_LOGICAL_LINK_COMPLETE
+0x47 HCI_EVENT_FLOW_SPEC_MODIFY_COMPLETE
+0x48 HCI_EVENT_NUMBER_OF_COMPLETED_DATA_BLOCKS
+0x49 HCI_EVENT_AMP_START_TEST
+0x4A HCI_EVENT_AMP_TEST_END
+0x4B HCI_EVENT_AMP_RECEIVER_REPORT
+0x4C HCI_EVENT_SHORT_RANGE_MODE_CHANGE_COMPLETE
+0x4D HCI_EVENT_AMP_STATUS_CHANGE
+0x4E HCI_EVENT_TRIGGERED_CLOCK_CAPTURE
+0x4F HCI_EVENT_SYNCHRONIZATION_TRAIN_COMPLETE
+0x50 HCI_EVENT_SYNCHRONIZATION_TRAIN_RECEIVED
+0x51 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
+0x52 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_TIMEOUT
+0x53 HCI_EVENT_TRUNCATED_PAGE_COMPLETE
+0x54 HCI_EVENT_SLAVE_PAGE_RESPONSE_TIMEOUT
+0x55 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_CHANNEL_MAP_CHANGE
+0x56 HCI_EVENT_INQUIRY_RESPONSE_NOTIFICATION
+0x57 HCI_EVENT_AUTHENTICATED_PAYLOAD_TIMEOUT_EXPIRED
+
+0xFE HCI_EVENT_LOGO_TESTING
+0xFF HCI_EVENT_VENDOR_SPECIFIC
+)
+(
+0x01 HCI_VENDOR_EVENT_COMMU_READY
+)
+//HCI LE SUBEVENT CODE
+(
+0x01 HCI_LE_SUBEVENT_CONN_COMPLETE
+0x02 HCI_LE_SUBEVENT_ADV_REPORT
+0x03 HCI_LE_SUBEVENT_CONN_UPDATE_COMPLETE
+0x04 HCI_LE_SUBEVENT_REMOTE_FEATURE_COMPLETE
+0x05 HCI_LE_SUBEVENT_LTK_REQUEST
+0x06 HCI_LE_SUBEVENT_REMOTE_CONN_PARAM_REQ
+)
+//HCI ErrorCodes
+(    
+0x00 HCI_SUCCESS
+0x01 HCI_ERROR_UNKNOWN_HCI_COMMAND
+0x02 HCI_ERROR_NO_CONNECTION
+0x03 HCI_ERROR_HARDWARE_FAILURE
+0x04 HCI_ERROR_PAGE_TIMEOUT
+0x05 HCI_ERROR_AUTHENTICATION_FAILURE
+0x06 HCI_ERROR_KEY_MISSING
+0x07 HCI_ERROR_MEMORY_FULL
+0x08 HCI_ERROR_CONNECTION_TIMEOUT
+0x09 HCI_ERROR_MAX_CONNECTIONS
+0x0A HCI_ERROR_MAX_SCO_CONNECTIONS
+0x0B HCI_ERROR_MAX_ACL_CONNECTIONS
+0x0C HCI_ERROR_COMMAND_DISALLOWED
+0x0D HCI_ERROR_HOST_REJECT_LIMITED_RESOURCES
+0x0E HCI_ERROR_HOST_REJECT_SECURITY_REASONS
+0x0F HCI_ERROR_HOST_REJECT_REMOTE_IS_ONLY_PERSONAL
+0x10 HCI_ERROR_HOST_TIMEOUT
+0x11 HCI_ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER_VALUE
+0x12 HCI_ERROR_INVALID_HCI_COMMAND_PARAMETERS
+0x13 HCI_ERROR_REMOTE_USER_ENDED_CONNECTION
+0x14 HCI_ERROR_REMOTE_LOW_RESOURCES
+0x15 HCI_ERROR_REMOTE_POWERING_OFF
+0x16 HCI_ERROR_CONNECTION_TERMINATED_BY_LOCAL_HOST
+0x17 HCI_ERROR_REPEATED_ATTEMPTS
+0x18 HCI_ERROR_PAIRING_NOT_ALLOWED
+0x19 HCI_ERROR_UNKNOWN_LMP_PDU
+0x1A HCI_ERROR_UNSUPPORTED_REMOTE_FEATURE
+0x1B HCI_ERROR_SCO_OFFSET_REJECTED
+0x1C HCI_ERROR_SCO_INTERVAL_REJECTED
+0x1D HCI_ERROR_SCO_AIR_MODE_REJECTED
+0x1E HCI_ERROR_INVALID_LMP_PARAMETER
+0x1F HCI_ERROR_UNSPECIFIED_ERROR
+0x20 HCI_ERROR_UNSUPPORTED_LMP_PARAMETER_VALUE
+0x21 HCI_ERROR_ROLE_CHANGE_NOT_ALLOWD
+0x22 HCI_ERROR_LMP_RESPONSE_TIMEOUT
+0x23 HCI_ERROR_ERROR_TRANSACTION_COLLISION
+0x24 HCI_ERROR_LMP_PDU_NOT_ALLOWED
+0x25 HCI_ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE
+0x26 HCI_ERROR_UNIT_KEY_USED
+0x27 HCI_ERROR_QOS_NOT_SUPPORTED
+0x28 HCI_ERROR_INSTANT_PASSED
+0x29 HCI_ERROR_PAIRING_W_UNIT_KEY_NOT_SUPPORTED
+0x2a HCI_ERROR_DIFFERENT_TRANSACTION_COLLISION
+0x2c HCI_ERROR_QOS_UNACCEPTABLE_PARAMETER
+0x2d HIC_ERROR_QOS_REJECTED
+0x2e HIC_ERROR_CHANNEL_CLASSIFICATION_NOT_SUPPORTED
+0x2f HIC_ERROR_INSUFFICIENT_SECURITY
+0x30 HIC_ERROR_PARAMETER_OUT_OF_MANDATORY_PANGE
+0x32 HIC_ERROR_ROLE_SWITCH_PENDING
+0x34 HIC_ERROR_RESERVED_SLOT_VIOLATION
+0x35 HIC_ERROR_ROLE_SWITCH_FAILED
+0x36 HIC_ERROR_EXTENDED_INQUIRY_RESPONSE_TOO_LARGE
+0x37 HIC_ERROR_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST
+0x38 HIC_ERROR_HOST_BUSY_PAIRING
+)
+
+(
+0x00 HCI_LPM_OFF
+0x01 HCI_LPM_ON
+)
+
+
+(
+33 HOST_WAKE_TIME
+)
+
+(
+1 HCI_RX_WAKE
+0 HCI_RX_READY
+)
+
+
+(
+/*HID TYPE*/
+0x01 HID_TYPE_CONTROL
+0x04 HID_TYPE_GET_REPORT
+0x05 HID_TYPE_SET_REPORT
+0x07 HID_TYPE_SET_PROTOCOL
+0x09 HID_TYPE_SET_IDLE
+0x0a HID_TYPE_DATA
+/*HID REPORT ID*/
+0x01 HID_REPORT_ID_KB
+
+0x00 HID_CONTROL_P_NOOPERATION
+0x01 HID_CONTROL_P_HARDRESET
+0x02 HID_CONTROL_P_SOFTRESET
+0x03 HID_CONTROL_P_SUSPEND
+0x04 HID_CONTROL_P_EXITSUSPEND
+0x05 HID_CONTROL_P_VIRTUALCABLEUNPLUG
+)
+
+
+8 KB_KSCAN_ROW 
+7 KB_KSCAN_ROW_1
+20 KB_KSCAN_COL
+19 KB_KSCAN_COL_1
+
+/* ks_ctrl */
+(
+0x01 KB_KSCAN_CTRL_ENABLE					
+0x02 KB_KSCAN_CTRL_FREEZE					
+0x04 KB_KSCAN_CTRL_GHOST					
+0x08 KB_KSCAN_CTRL_INT						
+0x10 KB_KSCAN_CTRL_CLKON					
+0x20 KB_KSCAN_CTRL_FIFO_CLR				
+                  
+0 KB_KSCAN_STAT_EMPTY
+1 KB_KSCAN_STAT_FULL 					
+2 KB_KSCAN_STAT_OVERFLOW				
+6 KB_KSCAN_STAT_GHOST 
+
+0 KB_KSCAN_KEY_EVENT_STAT
+0 KB_KSCAN_KEY_PRESS	
+1 KB_KSCAN_KEY_RELEASE
+
+)
+(
+0 CACEL_RECONN_FLAG
+1 KEY_EVENT_FLAG
+2 KEY_SEARCH_M_KEY_FLAG
+3 CHECK_VDD_LOW_FLAG
+)
+
+// MACRO for map2
+
+// MACRO for map2
+
+//map2 Functions definition
+ 0x00 KB_MAP2_FUNC_REPORT0
+ 0x01 KB_MAP2_FUNC_REPORT1
+ 0x02 KB_MAP2_FUNC_REPORT2
+ 0x80 KB_MAP2_FUNC_IGNORE
+ 0x81 KB_MAP2_FUNC_DISCOV
+ 0x82 KB_MAP2_FUNC_WIN
+ 0x83 KB_MAP2_FUNC_ANDROID
+ 0x84 KB_MAP2_FUNC_IOS
+ 0x85 KB_MAP2_FUNC_DEV1
+ 0x86 KB_MAP2_FUNC_DEV2
+ 0x87 KB_MAP2_FUNC_DEV3
+ 
+//map2 Status definition (bit map)
+ 0x01 KB_MAP2_STATUS_WIN
+ 0x02 KB_MAP2_STATUS_ANDROID
+ 0x04 KB_MAP2_STATUS_IOS
+ 0x10 KB_MAP2_STATUS_CONN
+ 0x20 KB_MAP2_STATUS_UNCONN
+ 
+ 0x00 KB_MAP2_STATUS_BIT_WIN
+ 0x01 KB_MAP2_STATUS_BIT_ANDROID
+ 0x02 KB_MAP2_STATUS_BIT_IOS
+ 0x04 KB_MAP2_STATUS_BIT_CONN
+ 0x05 KB_MAP2_STATUS_BIT_UNCONN
+
+// map2 report length
+8 KB_MAP2_REPORT_LENGTH
+0x08 KB_VK_MAX_LEN
+
+//map2 device button state
+0 KB_DEVICE_BUTTON_UP
+1 KB_DEVICE_BUTTON_DEVICE1
+2 KB_DEVICE_BUTTON_DEVICE2
+3 KB_DEVICE_BUTTON_DEVICE3
+0xff KB_DEVICE_BUTTON_ALREADY_LONG
+)
+
+//
+(
+0x01 REPORT_ID_1
+0x02 REPORT_ID_2
+0x03 REPORT_ID_3
+)
+
+(
+1 FLAG_VDD_LOW
+0 FLAG_VDD_NOT_LOW
+
+0x1fe9 EEPROM_ADDR_VDD_FLAG
+0x1fea EEPROM_ADDR_VDD_LOW_FLAG
+0x1fec EEPROM_SYSTEM_FALG
+
+)
+
+//Specil Function Key
+(
+0XFF SFK_ANDROID_MAP
+0XFE SFK_IOS_SCREENSHOT
+
+)
+0x39 CAPS_LOCK_DATA
+)
+
+(
+2 KB_TEST_MODE
+)
+/* special key codes */
+(
+0x1d KB_KCODE_1_M1
+0x27 KB_KCODE_0
+0x28 KB_KCODE_ENTER
+0x2a KB_KCODE_BKSP
+)
+
+/*DATA OUTPUT report id = 1*/
+0 KB_NUM_LOCK_SELECTED
+1 KB_CAPS_LOCK_SELECTED
+2 KB_SCROLL_LOCK_SELECTED
+
+
+0x1f  KB_UI_BUTTON_GPIO
+
+
+
+
+0x025d mem_l2cap_mem_start
+0x025d mem_l2cap_rxbuff1_len
+0x025f mem_l2cap_rxbuff2_len
+0x0261 mem_l2cap_rxbuff_new
+0x0263 mem_l2cap_rxbuff_inuse
+0x0264 mem_l2cap_payload_ptr
+0x0266 mem_l2cap_rx_pkt_length
+0x0268 mem_l2cap_rx_cid
+0x026a mem_l2cap_rx_done
+0x026b mem_l2cap_signal_tx_buff_ptr
+0x026d mem_l2cap_signal_tx_payload_ptr
+0x026f mem_l2cap_signal_tx_length
+0x0271 mem_sdp_tx_buff_ptr
+0x0273 mem_sdp_tx_payload_ptr
+0x0275 mem_sdp_tx_pkt_length
+0x0277 mem_rfcomm_tx_buff_ptr
+0x0279 mem_rfcomm_tx_payload_ptr
+0x027b mem_rfcomm_tx_pkt_length
+0x027d memL2CAP_T1
+0x027f mem_CONTROL_tasks
+0x0280 mem_send_config_req
+0x0281 mem_config_identifier
+0x0282 mem_config_req_dest_CID
+0x0284 mem_rfcomm_malloc_fail_flag
+0x0285 mem_message_to_uppersm
+0x0286 mem_upper_sm_remote_page
+0x0287 mem_upper_sm_reconn
+0x0288 mem_upper_sm_ss
+0x0289 mem_tx_malloc_log
+0x02c9 mem_l2cap_mem_end
+0x02c9 mem_scid
+0x02cb mem_cmd_length
+0x02cd mem_tt2
+0x02cf mem_tt3
+0x02d1 mem_id
+0x02d3 mem_psm
+0x02d5 mem_l2cap_sdpres_delay_time
+
+
+
+//mem_l2cap_lpm_txbuf
+(
+256 l2cap_lpm_txbuf_len
+)
+
+(
+4 L2CAP_TX_FIFO_SIZE
+8 L2CAP_TX_BUFF_CNT
+
+)
+(
+0x0002 L2CAP_SIG_EXT_FEATRUE
+0x0003 L2CAP_SIG_FIX_FEATRUE
+)
+
+
+(
+0 HS_IDLE
+1 AG_INIT_CALL
+2 HS_INIT_CALL
+)
+(
+0 M_ACL_LINK_ABSENT
+1 M_ACL_LINK_EXIST
+)
+
+(
+0 L2CAP_INUSE_BUFF1
+1 L2CAP_INUSE_BUFF2
+)
+/* upper layer interface w/ lower layer */
+(
+1 MAX_NUM_LINKS_ALLOWED
+1 MAX_NUM_SCO_ALLOWED
+1 ACL_LINK_PRESENT
+0 ACL_LINK_ABSENT
+)
+(
+1 L2CAP_RX_DONE 
+0 L2CAP_RX_CLEAR
+)
+/* Scheduler */
+(
+0 L2CAP_DISCONNECT_INTERRUPT
+1 RFCOMM_wants_service
+2 L2CAP_sig_Tx_buff_full
+3 RFCOMM_Tx_buff_full
+4 SDP_Tx_buff_full
+5 got_complete_L2CAP_pkt	
+6 L2CAP_init_Config_Req
+7 L2CAP_DISCONNECT_CONTROL
+)
+
+/* mem_CONTROL_tasks2 */
+(
+0 UI_NEED_SERVICE
+)
+/* L2CAP logic channel identifiers (2 bytes) p.261 */
+(
+0x0001 L2CAP_signal_channel
+0x0050 L2CAP_SDP_channel
+0x0051 L2CAP_RFCOMM_channel
+0x0052 L2CAP_HID_Control_channel   
+0x0053 L2CAP_HID_Interrupt_channel
+0x0077 L2CAP_AVDTP_signal_channel		//------avdtp
+0x0078 L2CAP_AVDTP_media_channel
+0x0079 L2CAP_AVDTP_report_channel
+0x0080 L2CAP_AVDTP_recovery_channel
+0x00dd L2CAP_AVCTP_Control_channel
+)
+/* L2CAP signalling command codes (1 byte) p.284 */
+(
+0x00 reserved
+0x01 signal_cmd_reject
+0x02 signal_connect_req
+0x03 signal_connect_rsp
+0x04 signal_config_req
+0x05 signal_config_rsp
+0x06 signal_disconnect_req
+0x07 signal_disconnect_rsp
+0x08 signal_echo_req
+0x09 signal_echo_rsp
+0x0a signal_info_req
+0x0b signal_info_rsp
+)
+/* L2CAP signal_command_reject reason code (2 bytes), p.285 */
+(
+0x0000 cmd_not_understood
+0x0001 signalling_MTU_exceeded
+0x0002 invalid_CID_in_req
+)
+/* L2CAP PSM values used in signal_connect_req (2 bytes), p.286 */
+(
+0x0001 PSM_SDP
+0x0003 PSM_RFCOMM
+0x0005 PSM_TCS
+0x0011 PSM_HID_control
+0x0013 PSM_HID_interrupt
+0x0017 PSM_AVCTP
+0x0019 PSM_AVDTP
+)
+/* L2CAP connection response result code (2 bytes), p.288 */
+(
+0x0000 L2CAP_connect_successful
+0x0001 L2CAP_connect_pending
+0x0002 L2CAP_connect_refused_PSM_unsupported
+0x0003 L2CAP_connect_refused_security_block
+0x0004 L2CAP_connect_refused_no_resources
+)
+/* L2CAP connection status values (2 bytes), p.288 */
+(
+0x0000 L2CAP_no_info_available
+0x0001 L2CAP_authentication_pending
+0x0002 L2CAP_authorization_pending
+)
+/* L2CAP configuration response result code (2 bytes), p.292 */
+(
+0x0000 L2CAP_config_success
+0x0001 L2CAP_config_failure_bad_parameters
+0x0002 L2CAP_config_failure_no_reason
+0x0003 L2CAP_config_failure_unknown_options
+)
+/* L2CAP constant definitions */
+(
+128 L2CAP_Rx_buff_size
+48  L2CAP_signal_Tx_buff_size
+128 SDP_Tx_buff_size
+128 RFCOMM_Tx_buff_size
+1 AM_ADDRESS
+3 DM1TYPE
+4 DH1TYPE
+11 DH3TYPE
+8 DVTYPE
+0 channel_state_closed
+1 channel_state_config
+2 channel_state_open
+0x0030 L2CAP_config_MTU_SDP
+0xffff L2CAP_config_ftimeout_SDP
+0x03e3 L2CAP_config_MTU_RFCOMM
+0xffff L2CAP_config_ftimeout_RFCOMM
+260 l2cap_max_pkt_len
+)
+
+(
+0 FAILURE
+1 SUCCESS
+2 IN_PROGRESS
+)
+(
+0x00	IDLE
+0x01	WAIT_4_BB_PAGE
+0x02	WAIT_4_LMP_CONN
+0x03	WAIT_4_SCO_CONN
+0x04	WAIT_4_SCO_KILLED
+)
+
+/*mem_master_mss*/
+(
+0 STOP_ENC
+1 SEND_SWITCH_REQ
+)
+(
+0 HF_HS_READY
+1 HF_AG_READY
+)
+/* mem_hf_state */
+(
+0 HF_STATE_WAITING_RFCOMM_CONN
+1 HF_STATE_HF_SEND_FEATURE
+2 HF_STATE_WAITING_AG_FEATURE_OK
+3 HF_STATE_HF_SEND_INDICATORS
+4 HF_STATE_WAITING_AG_INDICATORS_OK
+5 HF_STATE_HF_SEND_CURR_STATUS
+6 HF_STATE_WAITING_AG_STATUS_OK
+7 HF_STATE_HF_SEND_UPDATE_STATUS
+8 HF_STATE_WAITING_AG_UPDATE_STATUS_OK
+9 HF_STATE_CONNECTED
+0x0a HF_STATE_HF_SEND_RECEIVE_INFO
+0x0b HF_STATE_WAITING_AG_INFO
+0x0c HF_STATE_HF_SEND_AT_CLIP
+0x0d HF_STATE_WAITING_AT_CLIP
+0x0e HF_STATE_HF_SEND_AT_CCWA
+0x0f HF_STATE_WAITING_AT_CCWA
+)
+/*mem_hf_call_state*/
+(
+0 HF_CALL_STATE_INACTIVE
+1 HF_CALL_STATE_SETUP
+2 HF_CALL_STATE_ACTIVE 
+)
+/* mem_pairing_state bit definition */
+(
+0 PAIR_INQUIRY_START
+1 PAIR_INQUIRY_TIME_OUT
+2 PAIR_INQUIRY_FAILED
+3 PAIR_INQUIRY_SUCCESS
+4 PAIR_READY_CONN
+5 PAIR_WAIT_CANCEL_RESPONSE
+6 PAIR_CONN_SUCCESS
+7 PAIR_WAIT_DETACH
+)  
+
+/* mem_pairing_mode bit definition */
+(
+0 FORCE_AUTHENTICATION
+)
+/* mem_hid_protecol_type */
+(
+0 PROTECOL_BOOT /*default*/
+1 PROTECOL_REPORT
+)
+
+/* mem_upper_sm_reconn */
+(
+1 UPPERSM_SEND_SDP_CONN_REQ
+2 UPPERSM_SEND_SDP_CFG_REQ
+3 UPPERSM_SEND_SDP_HF_SS
+4 UPPERSM_SEND_SDP_DISC_REQ
+5 UPPERSM_SEND_RFCOMM_CONN_REQ
+6 UPPERSM_SEND_RFCOMM_CFG_REQ
+7 UPPERSM_SEND_SABM_CMD
+8 UPPERSM_SEND_DISC
+9 UPPERSM_SEND_WAIT
+10 UPPERSM_SEND_HID_CONTROL_CONN_REQ
+11 UPPERSM_SEND_HID_CONTROL_CFG_REQ
+12 UPPERSM_SEND_HID_INTERRUPT_CONN_REQ
+13 UPPERSM_SEND_HID_INTERRUPT_CFG_REQ
+14 UPPERSM_SEND_SDP_HS_SS
+15 UPPERSM_SEND_SDP_PBAP_SS
+16 UPPERSM_SEND_SDP_AVTARG_SS
+)
+/* mem_upper_sm_remote_page */
+(
+1 UPPERSM_RP_SEND_SDP_CONN_REQ
+2 UPPERSM_RP_SEND_SDP_CFG_REQ
+3 UPPERSM_RP_SEND_SDP_HF_SS
+4 UPPERSM_RP_SEND_SDP_HS_SS
+5 UPPERSM_RP_SEND_SDP_PBAP_SS
+6 UPPERSM_RP_SEND_SDP_AVTARG_SS
+7 UPPERSM_RP_SEND_SDP_DISC_REQ
+8 UPPERSM_RP_SEND_AVCTP_CONN_REQ
+9 UPPERSM_RP_SEND_AVCTP_CFG_REQ
+)
+
+/* mem_ML2CAP_flag */
+(
+0 MSCHEDULER_HID_CONTROL_CONN_DONE
+1 MSCHEDULER_HID_INTERRUPT_CONN_DONE
+2 MSCHEDULER_HID_CONTROL_CFG_REQ_DONE
+3 MSCHEDULER_HID_CONTROL_CFG_RSP_DONE
+4 MSCHEDULER_HID_INTERRUPT_CFG_REQ_DONE
+5 MSCHEDULER_HID_INTERRUPT_CFG_RSP_DONE
+6 MSCHEDULER_HID_CONTROL_DISC_DONE
+7 MSCHEDULER_HID_INTERRUPT_DISC_DONE
+)
+/*    ui event    --add by lj*/
+(
+0x00 UI_DATA_EVNET_NONE
+0x01 UI_DATA_EVNET_HID
+0x02 UI_DATA_EVNET_AVDTP_S
+0x03 UI_DATA_EVNET_AVDTP_M
+0x04 UI_DATA_EVNET_AVCTP
+0x05 UI_DATA_EVNET_HS
+0x06 UI_DATA_EVNET_HF
+0x07 UI_DATA_EVNET_SPP
+0x08 UI_DATA_EVNET_OBEX
+)
+/*    ui ack --add by lj*/
+(
+0x00 UI_DATA_TX_NONE
+0x01 UI_DATA_TX_HID
+0x02 UI_DATA_TX_AVDTP_S
+0x03 UI_DATA_TX_AVDTP_M
+0x04 UI_DATA_TX_AVCTP
+0x05 UI_DATA_TX_HS
+0x06 UI_DATA_TX_HF
+0x07 UI_DATA_TX_SPP
+0x08 UI_DATA_TX_OBEX
+0x10 ACL_TX_L2CAP_SIGNAL
+0x11 ACL_TX_SDP
+0x12 ACL_TX_RFCOMM
+
+)
+
+(
+0 L2CAP_SDP_interface_conn
+1 L2CAP_SDP_interface_cfg
+)
+
+(                                   
+0 L2CAP_CHANNEL_STATE_CONN_REQ      
+1 L2CAP_CHANNEL_STATE_CONN_RES      
+2 L2CAP_CHANNEL_STATE_SND_CFG_REQ   
+3 L2CAP_CHANNEL_STATE_SND_CFG_RES   
+4 L2CAP_CHANNEL_STATE_RCV_CFG_REQ   
+5 L2CAP_CHANNEL_STATE_RCV_CFG_RES
+6 L2CAP_CHANNEL_RFCOMM_ONLY_SABM
+7 L2CAP_CHANNEL_RFCOMM_ONLY_UA
+6 L2CAP_CHANNEL_AVDTP_SIGNAL_INIT //set avdtp init complete
+6 L2CAP_CHANNEL_HID_HANDSHAKE_DONE
+0x3f L2CAP_CHANNEL_SETUP_COMPLETE
+0x7f L2CAP_CHANNEL_AVDTP_SIGNAL_COMPLETE
+0xff L2CAP_CHANNEL_RFCOMM_DLCI0_OPENED
+)                                     
+
+/*  AVDTP---lj*/
+(
+0 L2CAP_AVDTP_SIGNAL_CONNECT
+1 L2CAP_AVDTP_SIGNAL_CONFIG
+2 L2CAP_AVDTP_MEDIA_CONNECT
+3 L2CAP_AVDTP_MEDIA_CONFIG
+4 L2CAP_AVDTP_REPORT_CONNECT
+5 L2CAP_AVDTP_REPORT_CONFIG
+6 L2CAP_AVDTP_RECOVERY_CONNECT
+7 L2CAP_AVDTP_RECOVERY_CONFIG
+)
+/*  AVCTP---lj*/
+(
+0 L2CAP_AVCTP_SIGNAL_CONNECT
+1 L2CAP_AVCTP_SIGNAL_CONFIG
+)
+
+127 L2CAP_SIGNAL_MALLOC_SIZE
+
+//1 mem_rfcomm_malloc_fail_flag
+(
+0 RFCOMM_MALLOC_SUCCEED
+1 RFCOMM_MALLOC_FAIL
+)
+
+//mem_l2cap_flow_ctrl_flag
+(
+0 L2CAP_FLOW_CTRL_DISABLE
+1 L2CAP_FLOW_CTRL_ENABLE
+)
+
+
+0x02d9 mem_le_rxbuf
+0x0311 mem_le_l2capbuf
+0x0417 mem_le_mic
+0x041b mem_le_peer_mic
+0x041f mem_le_peer_ltk
+0x042f mem_le_mrand
+0x043f mem_le_state
+0x0440 mem_le_mode
+0x0441 mem_le_tsniff
+0x0443 mem_le_anchor
+0x0447 mem_le_clk_offset
+0x044d mem_le_receive_window
+0x044f mem_le_plap
+0x0455 mem_le_conn_handle
+0x0456 mem_le_arq
+0x0457 mem_le_ch
+0x0458 mem_le_hop
+0x0459 mem_le_event_count
+0x045b mem_le_supervision_timer
+0x045f mem_le_instant
+0x0461 mem_le_channels
+0x0462 mem_le_op
+0x0463 mem_le_access
+0x0467 mem_le_crcinit
+0x046a mem_le_window_size
+0x046b mem_le_slave_latency
+0x046d mem_le_superto
+0x046f mem_le_channel_map
+0x0474 mem_le_no_using
+0x0476 mem_le_peer_sca
+0x0477 mem_le_att_opcode
+0x0478 mem_le_att_handle
+0x047a mem_le_err_code
+0x047b mem_le_ll_pairing_fail_reason
+0x047c mem_le_sk
+0x048c mem_le_testtype
+0x048d mem_le_test_sync
+0x048f mem_le_test_pcnt
+0x0491 mem_le_rxon_ts
+0x0497 mem_le_rx_ll_opcode
+0x0498 mem_le_notify_attr_start
+0x049a mem_le_notify_len
+0x049b mem_cmd_le_create_conn
+0x049c mem_le_cur_attlist_start_ptr
+0x049e mem_le_cur_handle_start
+0x04a0 mem_le_cur_handle_end
+0x04a2 mem_le_cur_uuid_length
+0x04a3 mem_le_cur_uuid
+0x04b3 mem_le_curr_att_len
+0x04b4 mem_le_search_res
+0x04b5 mem_le_continue_type
+
+
+
+(
+20 notify_handle
+2 param_max_slaves
+1636 param_sifs
+0x000a06 param_le_version
+0x1d87 param_le_subversion
+0x000001 param_le_features
+23 param_le_mtu
+16 param_le_scan_interval
+16 param_le_scan_window
+0x1e0 param_clke_cal_le
+0x1000302 param_smp_paring_response		/* for mouse, noinputnooutput */
+0x010410 param_smp_key_dist	
+0xa0 param_le_sca
+)
+
+(
+0 DEFAULT_STATES
+1 IPHONE_LOST_LTK
+2 MODULE_LOST_LTK
+3 LTK_NOT_LOST
+)
+
+(
+0 FLAG_BLE_INSUFFICIENT_AUTHENTICATION
+1 FLAG_BLE_COPY_MASTER_DATA_TO_ATT_LIST
+)
+
+/*LE MOUSE-KB*/
+(
+1 LE_CONTEXT_STATE_KB
+2 LE_CONTEXT_STATE_MOUSE
+
+3 USB_MOUSE_DATA_CMD
+
+1 SEND_MOUSE_DATA_CMD
+2 SEND_KB_DATA_CMD
+)
+
+
+  (
+  	0 LE_M_STATE_SLAVE1_STANDBY
+  	1 LE_M_STATE_SLAVE1_ADVERTISING
+  	2 LE_M_STATE_SLAVE1_SCANNING
+  	3 LE_M_STATE_SLAVE1_INITIATING
+  	4 LE_M_STATE_SLAVE1_CONNECTED
+  	5 LE_M_STATE_SLAVE1_RFU_1
+  	6 LE_M_STATE_SLAVE1_RFU_2
+  	7 LE_M_STATE_SLAVE1_RFU_3
+  )
+
+  (
+  	0 LE_M_STATE_SLAVE2_STANDBY
+  	1 LE_M_STATE_SLAVE2_ADVERTISING
+  	2 LE_M_STATE_SLAVE2_SCANNING
+  	3 LE_M_STATE_SLAVE2_INITIATING
+  	4 LE_M_STATE_SLAVE2_CONNECTED
+  	5 LE_M_STATE_SLAVE2_CONNECT_INIT
+  	6 LE_M_STATE_SLAVE2_RFU_2
+  	7 LE_M_STATE_SLAVE2_RFU_3
+  )
+
+  	(
+	0 LE_SM_IDLE
+	1 LE_SM_FBTV_1800
+	2 LE_SM_FBTV_1800_WAIT
+	3 LE_SM_RBT_DEVICE_NAME
+	4 LE_SM_RBT_DEVICE_NAME_WAIT
+	5 LE_SM_FBTV_1801
+	6 LE_SM_FBTV_1801_WAIT
+	7 LE_SM_RBT_DEVICE_CHARACTER
+	8 LE_SM_RBT_DEVICE_CHARACTER_WAIT
+	
+  	)
+
+/* advertising channel PDU type */
+(
+0 ADV_IND
+1 ADV_DIRECT_IND
+2 ADV_NONCONN_IND
+3 SCAN_REQ
+4 SCAN_RSP
+5 CONNECT_REQ
+6 ADV_SCAN_IND
+)
+
+	/* tx packet type */
+	(
+	0x20 XT_LL_CONNECTION_UPDATE_REQ
+	0x21 XT_LL_CHANNEL_MAP_REQ
+	0x22 XT_LL_TERMINATE_IND
+	0x23 XT_LL_ENC_REQ
+	0x24 XT_LL_ENC_RSP
+	0x25 XT_LL_START_ENC_REQ
+	0x26 XT_LL_START_ENC_RSP
+	0x27 XT_LL_UNKNOWN_RSP
+	0x28 XT_LL_FEATURE_REQ
+	0x29 XT_LL_FEATURE_RSP
+	0x2A XT_LL_PAUSE_ENC_REQ
+	0x2B XT_LL_PAUSE_ENC_RSP
+	0x2C XT_LL_VERSION_IND
+	0x2D XT_LL_REJECT_IND
+	0x2E XT_LL_SLAVE_FEATURE_REQ
+	0x2F XT_LL_CONNECTION_PARAM_REQ
+	0x30 XT_LL_CONNECTION_PARAM_RSP
+	0x31 XT_LL_REJECT_IND_EXT
+	0x32 XT_LL_PING_REQ
+	0x33 XT_LL_PING_RSP
+	0x41 XT_SMP_PAIRING_REQUEST
+	0x42 XT_SMP_PAIRING_RESPONSE
+	0x43 XT_SMP_PAIRING_CONFIRM
+	0x44 XT_SMP_PAIRING_RANDOM
+	0x45 XT_SMP_PAIRING_FAILED
+	0x46 XT_SMP_ENCRYPTION_INFORMATION
+	0x47 XT_SMP_MASTER_IDENTIFICATION
+	0x48 XT_SMP_IDENTITY_INFORMATION
+	0x49 XT_SMP_IDENTITY_ADDRESS_INFORMATION
+	0x4A XT_SMP_SIGNING_INFORMATION
+	0x4B XT_SMP_SECURITY_REQUEST
+	0x4c XT_SMP_PAIRING_PUBLIC_KEY
+	0x4d XT_SMP_PAIRING_DHKEY_CHECK
+	)
+
+
+	/* LE control packet type */
+	(
+	0x00 LL_CONNECTION_UPDATE_REQ
+	0x01 LL_CHANNEL_MAP_REQ
+	0x02 LL_TERMINATE_IND
+	0x03 LL_ENC_REQ
+	0x04 LL_ENC_RSP
+	0x05 LL_START_ENC_REQ
+	0x06 LL_START_ENC_RSP
+	0x07 LL_UNKNOWN_RSP
+	0x08 LL_FEATURE_REQ
+	0x09 LL_FEATURE_RSP
+	0x0A LL_PAUSE_ENC_REQ
+	0x0B LL_PAUSE_ENC_RSP
+	0x0C LL_VERSION_IND
+	0x0D LL_REJECT_IND
+	0x0E LL_SLAVE_FEATURE_REQ
+	0x0F LL_CONNECTION_PARAM_REQ
+	0x10 LL_CONNECTION_PARAM_RSP
+	0x11 LL_REJECT_IND_EXT
+	0x12 LL_PING_REQ
+	0x13 LL_PING_RSP
+	)
+
+	/* Security Manager Protocol Code */
+	(
+	0x01 SMP_PAIRING_REQUEST
+	0x02 SMP_PAIRING_RESPONSE
+	0x03 SMP_PAIRING_CONFIRM
+	0x04 SMP_PAIRING_RANDOM
+	0x05 SMP_PAIRING_FAILED
+	0x06 SMP_ENCRYPTION_INFORMATION
+	0x07 SMP_MASTER_IDENTIFICATION
+	0x08 SMP_IDENTITY_INFORMATION
+	0x09 SMP_IDENTITY_ADDRESS_INFORMATION
+	0x0A SMP_SIGNING_INFORMATION
+	0x0B SMP_SECURITY_REQUEST
+	0x0c SMP_PAIRING_PUBLIC_KEY
+	0x0d SMP_PAIRING_DHKEY_CHECK
+	)
+
+	/* ATT OPCODE */
+	(
+	0x01 ATTOP_ERROR_RESPONSE
+	0x02 ATTOP_EXCHANGE_MTU_REQUEST
+	0x03 ATTOP_EXCHANGE_MTU_RESPONSE
+	0x04 ATTOP_FIND_INFORMATION_REQUEST
+	0x05 ATTOP_FIND_INFORMATION_RESPONSE
+	0x06 ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+	0x07 ATTOP_FIND_BY_TYPE_VALUE_RESPONSE
+	0x08 ATTOP_READ_BY_TYPE_REQUEST
+	0x09 ATTOP_READ_BY_TYPE_RESPONSE
+	0x0A ATTOP_READ_REQUEST
+	0x0B ATTOP_READ_RESPONSE
+	0x0C ATTOP_READ_BLOB_REQUEST
+	0x0D ATTOP_READ_BLOB_RESPONSE
+	0x0E ATTOP_READ_MULTIPLE_REQUEST
+	0x0F ATTOP_READ_MULTIPLE_RESPONSE
+	0x10 ATTOP_READ_BY_GROUP_TYPE_REQUEST
+	0x11 ATTOP_READ_BY_GROUP_TYPE_RESPONSE
+	0x12 ATTOP_WRITE_REQUEST
+	0x13 ATTOP_WRITE_RESPONSE
+	0x16 ATTOP_PREPARE_WRITE_REQUEST
+	0x17 ATTOP_PREPARE_WRITE_RESPONSE
+	0x18 ATTOP_EXECUTE_WRITE_REQUEST
+	0x19 ATTOP_EXECUTE_WRITE_RESPONSE
+	0x1B ATTOP_HANDLE_VALUE_NOTIFICATION
+	0x1D ATTOP_HANDLE_VALUE_INDICATION
+	0x1E ATTOP_HANDLE_VALUE_CONFIRMATION
+	0x52 ATTOP_WRITE_COMMAND
+	0xD2 ATTOP_SIGNED_WRITE_COMMAND
+	0x1f ATTOP_CONTINUE
+	0x9e EMPTY_LE_DATA_PRE
+	0x9f EMPTY_LE_DATA
+	)
+
+	/* ATT error code */
+	(
+	0x01 ATT_ERR_INVALID_HANDLE
+	0x02 ATT_ERR_READ_NOT_PERMITTED
+	0x03 ATT_ERR_WRITE_NOT_PERMITTED
+	0x04 ATT_ERR_INVALID_PDU
+	0x05 ATT_ERR_INSUFFICIENT_AUTHENTICATION
+	0x06 ATT_ERR_REQUEST_NOT_SUPPORTED
+	0x07 ATT_ERR_INVALID_OFFSET
+	0x08 ATT_ERR_INSUFFICIENT_AUTHORIZATION
+	0x09 ATT_ERR_PREPARE_QUEUE_FULL
+	0x0A ATT_ERR_ATTRIBUTE_NOT_FOUND
+	0x0B ATT_ERR_ATTRIBUTE_NOT_LONG
+	0x0C ATT_ERR_INSUFFICIENT_ENCRYPTION_KEY_SIZE
+	0x0D ATT_ERR_INVALID_ATTRIBUTE_VALUE_LENGTH
+	0x0E ATT_ERR_UNLIKELY_ERROR
+	0x0F ATT_ERR_INSUFFICIENT_ENCRYPTION
+	0x10 ATT_ERR_UNSUPPORTED_GROUP_TYPE
+	0x11 ATT_ERR_INSUFFICIENT_RESOURCES
+	)
+	/*	SERVICE UUID	*/
+	(
+	0x1800 UUID_SERVICE_GENERIC_ACC
+	0x1801 UUID_SERVICE_GENERIC_ATT
+	0x180a UUID_SERVICE_DEVICE_INFO
+	0x180f UUID_SERVICE_BATTERY
+	0x1812 UUID_SERVICE_HIDS
+	0x2800 UUID_GATT_PRIMARY_SERVICE
+	0x2801 UUID_GATT_SECONDARY_SERVICE
+	0X2802 UUID_GATT_INCLUDE
+	0X2803 UUID_GATT_CHARACTERISTIC
+	0X2A00 UUID_CHRCTR_DEVICE_NAME
+	0X2A19 UUID_CHRCTR_BATTERY_LEVEL
+	0X2A22 UUID_CHRCTR_KEYBOARD_INPUT
+	0X2A23 UUID_CHRCTR_SYSTEM_ID 
+	0X2A25 UUID_CHRCTR_SERIAL_NUMBER
+	0X2A26 UUID_CHRCTR_FIRMWARE
+	0X2A32 UUID_CHRCTR_KEYBOARD_OUTPUT
+	0X2A33 UUID_CHRCTR_MOUSE_INPUT
+	0X2A4A UUID_CHRCTR_HID_INFO
+	0X2A4B UUID_CHRCTR_REPORT_MAP
+	0X2A4C UUID_CHRCTR_HID_CTRL_POINT
+	0X2A4D UUID_CHRCTR_REPORT
+	0X2A4E UUID_CHRCTR_PROTOCOL_MODE
+	)
+
+	(// pairing failed reason
+	0x00 PAIRING_FAILED_RESERVED
+	0X01 PAIRING_FAILED_PASSKEY_ENTRY_FAILED
+	0X02 PAIRING_FAILED_OOB_NOT_AVAILABLE
+	0X03 PAIRING_FAILED_AUTHENTICATION_REQUIRE
+	0X04 PAIRING_FAILED_CONFIRM_VALUE_FAILED
+	0X05 PAIRING_FAILED_PAIRING_NOT_SUPPORTED
+	0X06 PAIRING_FAILED_ENCRYPTION_KEY_SIZE
+	0X07 PAIRING_FAILED_COMMAND_NOT_SUPPORTED
+	0X08 PAIRING_FAILED_UNSPECIFIED_REASON
+	0X09 PAIRING_FAILED_REPEATED_ATTEMPTS
+	0X0A PAIRING_FAILED_INVALID_PARAMETERS
+	0X0B PAIRING_FAILED_DHKEY_CHECK_FAILED
+	0X0C PAIRING_FAILED_NUMERIC_COMPARISON_FAILED
+	0X0D PAIRING_FAILED_BR_EDR_PAIRING_IN_PROGRESS
+	0X0E PAIRING_FAILED_KEY_DERIVATION_GENERATION_NOT_ALLOWED
+	)
+
+	//modified_name
+	(
+	0x14 MAX_NAME_LEN
+	0x16 ADV_DATA_NAME_LEN
+	0X20 SPACE
+	
+	)
+	/* GATT Specifications*/
+	(
+	0X2900 CHARACTERTIC_EXTENDED_PROPERTIES
+	0X2901 CHARACTERTIC_USER_DESCRIPTION
+	0X2902 CLIENT_CHARACTERTIC_CONFIGURATION
+	0X2903 SERVER_CHARACTERTIC_CONFIGURATION
+	0X2904 CHARACTERTIC_PRESENTATION_FORMAT
+	0X2905 CHARACTERTIC_AGGREGATE
+	0X2906 VALID_RANGE
+	0X2907 EXTERNAL_REPORT_REFERENCE
+	0X2908 REPORT_REFERENCE
+	0X290B ENVIR_SENSING_CONFIGURATION
+	0X290C ENVIR_SENSING_MEASUREMENT
+	0X290D ENVIR_SENSING_TRIGGER_SETTING
+	)
+	/* LE L2CAP CID */
+	(
+	0x04 LE_L2CAP_CID_ATT
+	0x05 LE_L2CAP_CID_SIGNAL
+	0x06 LE_L2CAP_CID_SMP
+	)
+
+	//LE address type
+	(
+	0 LE_ADDR_TYPE_PUBLIC
+	1 LE_ADDR_TYPE_RANDOM
+	)
+	//LE address type bitmap
+	(
+	7 LE_RECEIVER_ADDR_BIT
+	6 LE_SENDER_ADDR_BIT
+	)
+	//LE SCAN TYPE
+	(
+	0x00 LE_SCAN_TYPE_PASSIVE //no SCAN_REQ shall be sent
+	0x01 LE_SCAN_TYPE_ACTIVE
+	)
+
+	//LE SCAN ENABLE
+	(
+	0x00 LE_SCAN_DISABLE
+	0x01 LE_SCAN_ENABLE
+	0x0101 LE_ACTIVE_SCAN_ENABLE
+	)
+
+	//LE FIND INFORMATION RESPONSE
+	//THE FORMAT OF THE INFORMATION DATA
+	(
+	0x01 UUID_SIZE_16BIT
+	0x02 UUID_SIZE_128BIT
+	)
+
+	(
+	0x0000 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
+	0x0001 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_REJECTED
+	)
+
+
+//	le_state_map 0-2 is reserved for state_inconn,state_insniff and state_sco
+(
+3 lestate_got_first_packet
+4 lestate_encryption
+5 lestate_update_param
+6 lestate_update_map
+)
+
+// 	le mode
+(
+0 lemode_idle
+1 lemode_slave
+3 lemode_master
+)
+
+(
+0x01 LLID_CONTINUE
+0x02 LLID_START
+0x03 LLID_LE_LL
+0x01 LLID_EMPTY
+)
+
+(
+4 LE_TX_BUFF_COUNT
+3 LE_TX_BUFF_UPDATE_LOOPCNT //LE_TX_BUFF_COUNT-1
+
+12 LE_MD_MAX_COUNT
+)
+
+(
+0 LE_CONTINUE_TYPE_NULL
+1 LE_CONTINUE_TYPE_NOTIFICATION
+2 LE_CONTINUE_TYPE_PREPARE_WRITE_RESPONSE 
+)
+
+(
+0X00	LE_PAIRING_MODE_NONE
+0X01	LE_PAIRING_MODE_LAGACY_JUSTWORK
+0X02	LE_PAIRING_MODE_LAGACY_PASSKEY
+0x81	LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK
+0x82	LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC
+0X83	LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY
+
+7 LE_PAIRING_MODE_SECURE_CONNECT_BIT
+)
+
+
+(
+0 FLAG_IOCAP_DISPLAYONLY
+1 FLAG_IOCAP_DISPLAYYESNO
+2 FLAG_IOCAP_KEYBOARDONLY
+3 FLAG_IOCAP_NOINPUTNOOUTPUT
+4 FLAG_IOCAP_KEYBOARDDISPLAY
+
+0x00 FLAG_OOB_DATA_FLAG_NO
+)
+
+(
+0X00 FLAG_LE_NO_BONDING_NO_MITM
+0X01 FLAG_LE_BONDING_NO_MITM
+0X04 FLAG_LE_NO_BONDING_MITM
+0X05 FLAG_LE_BONDING_MITM
+0X09 FLAG_LE_BONDING_NO_MITM_SECURE
+0X0D FLAG_LE_BONDING_MITM_SECURE
+
+2 LE_AUTH_MITM_BIT
+3 LE_AUTH_SECURE_CONNECTION_PAIRING_BIT
+)
+
+(
+0  LE_FIND_BY_TYPE_VAL_RES_NOT_FOUND
+1  LE_FIND_BY_TYPE_VAL_RES_FOUND_STARTING_HANDLE
+2  LE_FIND_BY_TYPE_VAL_RES_FOUND_ENDING_HANDLE
+
+)
+
+(
+0 MASTER_PUBLIC_ADDR
+1 MASTER_RANDOM_ADDR
+)
+
+(
+0x06 LE_ERR_PIN_OR_KEY_MISSING
+)
+
+(
+96000 TIMER_SMP_PAIRING_TIMEOUT //30S
+)
+
+//mem_le_pairing_state
+(
+0 FLAG_LE_PAIRING_NULL
+1 FLAG_LE_PAIRING_START
+2 FLAG_LE_PAIRING_SEND_RECURITY_REQ
+3 FLAG_LE_PAIRING_RCV_PAIRING_REQ
+4 FLAG_LE_PAIRING_AUTH
+5 FLAG_LE_PAIRING_AFTER_AUTH
+6 FLAG_LE_PAIRING_SEND_START_ENC_RSP
+7 FLAG_LE_PARING_SEND_ENC_INFORMATION
+8 FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION 
+9 FLAG_LE_PARING_SEND_INDENTITY_INFORMATION
+0xff FLAG_LE_PAIRING_END
+)
+
+/*LE secure connect state */
+(
+0x00 LE_SC_STAT_NULL
+0x01 LE_SC_STAT_RECEIVE_PUBLIC_KEY
+0x02 LE_SC_STAT_WAIT_SEND_PUBLIC_KEY
+0x03 LE_SC_STAT_SEND_PUBLIC_KEY
+0x04 LE_SC_STAT_RECEIVE_RANDOM
+0x05 LE_SC_STAT_SEND_RANDOM
+0x06 LE_SC_STAT_RECEIVE_DHKEY
+0x07 LE_SC_STAT_WAIT_CONFIRM_GKEY
+0x08 LE_SC_STAT_PASSKEY_WAIT_CONFIRM
+)
+
+(
+0 FLAG_LE_SC_CONFRIM_NULL
+1 FLAG_LE_SC_CONFRIM_GKEY_OK
+)
+
+//mem_le_enc_state
+(
+0 FLAG_LE_ENC_NULL
+1 FLAG_LE_RCV_ENC_START
+2 FLAG_LE_ENC_PAUSE
+3 FLAG_LE_RCV_START_ENC_RSP
+4 FLAG_LE_SEND_START_ENC_RSP
+0xff FLAG_LE_ENC_END
+)
+
+(//mem_le_configuration
+//bit0:use fixed key , ble passkey pairing
+0 BIT_BLE_PASSKEY_FIXED_KEY
+//bit1:ble pairing use fixed long term key
+1 BIT_BLE_PAIRING_FIXED_LTK
+//bit2:ble transmit packet will set more data flag
+2 BIT_BLE_TRANSMIT_PACKET_BY_MD
+//bit3:master read handle, with requires an authenticated link
+3 BIT_BLE_READ_AUTH
+//bit4:master write handle, with requires an authenticated link
+4 BIT_BLE_WRITE_AUTH
+//bit5:cannot enter long sleep
+5 BIT_BLE_SHORT_MULT
+
+)
+
+(
+0 BIT_ADV_CHANNEL_MAP_37
+1 BIT_ADV_CHANNEL_MAP_38
+2 BIT_ADV_CHANNEL_MAP_39
+)
+
+0x04b6 mem_lmo_header_length
+0x04b7 mem_lmo_header_opcode
+0x04b8 mem_lmo_payload
+0x04c9 mem_lmi_accepted_opcode
+0x04ca mem_disconn_reason_send
+0x04cb mem_tx_fixed_freq
+0x04cc mem_rx_fixed_freq
+0x04cd mem_ext_features_page
+0x04ce mem_lmpext_ssp_enable
+0x04d0 mem_remote_sppcap
+0x04d1 mem_lmp_conn_state
+0x04d2 mem_soft_timer
+0x04d4 mem_pincode_state
+0x04d5 mem_sres_tid
+0x04d6 mem_accptsco_tid
+0x04d7 mem_auth_enable
+0x04d8 mem_wait_encryption
+0x04d9 mem_sniff_payload
+0x04e9 mem_aurand_send_delay_time
+
+	(
+	//bit map
+	0 pair_state_inrand
+	1 pair_state_inrand_acpt
+	2 pair_state_send_comb
+	3 pair_state_recv_comb
+	4 pair_state_send_aurand
+	5 pair_state_recv_sres
+	6 pair_state_recv_aurand
+	7 pair_state_send_sres	
+	)
+	/* LMP opcodes */
+	(
+	1 LMP_NAME_REQ 
+	2 LMP_NAME_RES 
+	3 LMP_ACCEPTED 
+	4 LMP_NOT_ACCEPTED 
+	5 LMP_CLKOFFSET_REQ 
+	6 LMP_CLKOFFSET_RES 
+	7 LMP_DETACH 
+	8 LMP_IN_RAND 
+	9 LMP_COMB_KEY 
+	10 LMP_UNIT_KEY 
+	11 LMP_AU_RAND 
+	12 LMP_SRES 
+	13 LMP_TEMP_RAND 
+	14 LMP_TEMP_KEY 
+	15 LMP_ENCRYPTION_MODE_REQ 
+	16 LMP_ENCRYPTION_KEY_SIZE_REQ 
+	17 LMP_START_ENCRYPTION_REQ 
+	18 LMP_STOP_ENCRYPTION_REQ 
+	19 LMP_SWITCH_REQ 
+	20 LMP_HOLD
+	21 LMP_HOLD_REQ
+	23 LMP_SNIFF_REQ 
+	24 LMP_UNSNIFF_REQ 
+	26 LMP_PARK_REQ 
+	27 LMP_SET_BROADCAST_SCAN_WINDOW 
+	28 LMP_MODIFY_BEACON 
+	29 LMP_UNPARK_BD_ADDR_REQ 
+	30 LMP_UNPARK_PM_ADDR_REQ 
+	31 LMP_INCR_POWER_REQ 
+	32 LMP_DECR_POWER_REQ 
+	33 LMP_MAX_POWER 
+	34 LMP_MIN_POWER 
+	35 LMP_AUTO_RATE 
+	36 LMP_PREFERRED_RATE 
+	37 LMP_VERSION_REQ 
+	38 LMP_VERSION_RES 
+	39 LMP_FEATURES_REQ 
+	40 LMP_FEATURES_RES 
+	41 LMP_QUALITY_OF_SERVICE 
+	42 LMP_QUALITY_OF_SERVICE_REQ 
+	43 LMP_SCO_LINK_REQ 
+	44 LMP_REMOVE_SCO_LINK_REQ 
+	45 LMP_MAX_SLOT 
+	46 LMP_MAX_SLOT_REQ 
+	47 LMP_TIMING_ACCURACY_REQ 
+	48 LMP_TIMING_ACCURACY_RES 
+	49 LMP_SETUP_COMPLETE 
+	50 LMP_USE_SEMI_PERMANENT_KEY 
+	51 LMP_HOST_CONNECTION_REQ 
+	52 LMP_SLOT_OFFSET 
+	53 LMP_PAGE_MODE_REQ 
+	54 LMP_PAGE_SCAN_MODE_REQ 
+	55 LMP_SUPERVISION_TIMEOUT 
+	56 LMP_TEST_ACTIVATE
+	57 LMP_TEST_CONTROL
+	58 LMP_ENC_KEY_SIZE_MASK_REQ
+	59 LMP_ENC_KEY_SIZE_MASK_RES
+	60 LMP_SET_AFH
+
+	/* simple pairing support */
+	61 LMP_ENCAPSULATED_HEADER
+	62 LMP_ENCAPSULATED_PAYLOAD
+	63 LMP_SIMPLE_PAIRING_CONFIRM
+	64 LMP_SIMPLE_PAIRING_NUMBER
+	65 LMP_DHKEY_CHECK
+	127 LMP_ESCAPE
+	127 LMP_ESCAPE_4   /* add 2bytes LMP header support  */   
+	)
+	/* LMP EXT opcodes, ORed with bit 7 to make difference to nonEXT */
+	(
+	129 LMP_EXT_ACCEPTED
+	130 LMP_NOT_ACCEPTED_EXT
+	131 LMP_EXT_FEATURES_REQ
+	132 LMP_EXT_FEATURES_RES
+	139 LMP_PACKET_TYPE_TABLE_REQ
+	140 LMP_EXT_ESCO_LINK_REQ
+	141 LMP_EXT_REMOVE_ESCO_REQ
+	144 LMP_EXT_CHN_CLASSIFICATION_REQ
+	145 LMP_EXT_CHN_CLASSIFICATION
+	149 LMP_SNIFF_SUBRATING_REQ
+	150 LMP_SNIFF_SUBRATING_RES
+	151 LMP_PAUSE_ENCRYPTION_REQ
+	152 LMP_RESUME_ENCRYPTION_REQ
+	153 LMP_IO_CAP_REQ
+	154 LMP_IO_CAP_RES
+	)
+	/* LMP reason codes */
+	(
+	0x05 AUTHENTICATION_FAILURE_ERROR
+	0x06 KEY_MISSING
+	0x0b ACL_CONNECTION_ALREADY_EXISTS
+	0x13 OTHER_END_TERMINATED
+	0x15 ABOUT_TO_POEWR_OFF
+	0x16 LOCAL_HOST
+	0x18 PAIRING_NOT_ALLOWED
+	0x19 UNKNOWN_LMP_PDU
+	0x1A UNSUPPORTED_LMP_FEATURE 
+	0x1F UNSPECIFIED_ERROR
+	0x20 UNSUPPORTED_PARAMETERS
+	0x21 SWITCH_NOT_ALLOWED
+	0x23 TRANSACTION_COLLISION
+	0x24 PDU_NOT_ALLOWED
+	0x25 ENCRYPTION_MODE_NOT_ACCEPTABLE
+	0x2e NOT_SUPPORT_CHN_CLASSIFICATION
+	0x37 NOT_SUPPORT_SSP
+	)
+
+	/* test mode scenarios */
+	(
+	0 PAUSE_TEST_MODE
+	1 ZERO_PATTERN
+	2 ONE_PATTERN
+	3 ALT_PATTERN
+	4 PSEUDORANDOM
+	5 CLOSED_LOOP_BACK_ACL
+	6 CLOSED_LOOP_BACK_SCO
+	7 ACL_WITHOUT_WHITENING
+	8 SCO_WITHOUT_WHITENING
+	9 ALT2_PATTERN
+	255 EXIT_TEST_MODE
+	)
+	/* test mode hoppig modes */
+	(
+	0 FIXED_FREQ
+	1 NORMAL_HOP
+	)
+
+	/* mem_lmp_tid indicates which type of LMP will be sent */
+	(
+	0 TID_NORM_REPLY
+	1 TID_NORM_SEND
+	2 TID_ONE
+	3 TID_ZERO
+	4 TID_PAIRING
+	5 TID_ENCRYPTION
+	6 TID_VARIABLE
+	7 TID_RX
+	)
+
+	/* ============== lmp status ==========*/
+	(
+	0 lmp_incoming
+	1 lmp_outgoing
+	2 lmp_reject_msg
+	3 lmp_clear_msg
+	4 upper_reject_msg
+	5 upper_clear_msg
+	)
+
+(
+0x2ee00 TIMER_ONE_MINUTE //96000*2
+80 TIMER_SWITCH_WAITE
+12 TIMER_ENPT_WAITE
+)
+
+(
+0 SWITCH_FLAG_INIT
+1 SWITCH_FLAG_ACCEPT
+2 SWITCH_FLAG_NOT_ACCEPT
+)
+(
+0 NULL_ENCRYP
+1 DONE_ENCRYP
+)
+
+//
+//
+//Large memory blocks defined in this file.
+//Blocks Shall be defined with absolute address.
+//Blocks' length Shall be specified in comment following Blocks' names.
+//Different blocks MAY be overlap.
+//Blocks defined in this file Shall NOT be overlap with variable in memmap.format.
+
+// USB C51 exchange area
+(
+0xff0 mem_mcmd
+0xff1 mem_mouse_data
+)
+
+//l2cap RX buffers
+(
+0x1000 mem_l2cap_rxbuff1		//0x400
+0x1400 mem_l2cap_rxbuff2		//0x400
+//end address:0x17ff
+)
+//l2cap TX buffers
+(
+0x1800 mem_tx_buff0		//128
+0x1880 mem_tx_buff1		//128
+0x1900 mem_tx_buff2		//128
+0x1980 mem_tx_buff3		//128
+0x1a00 mem_tx_buff4		//128
+0x1a80 mem_tx_buff5		//128
+0x1b00 mem_tx_buff6		//128
+0x1b80 mem_tx_buff7		//128
+//end address: 0x1bff
+)
+
+(
+0x1800 mem_le_tx_buffer0
+0x1900 mem_le_tx_buffer1
+0x1a00 mem_le_tx_buffer2
+0x1b00 mem_le_tx_buffer3
+//end addr:0x1dff
+)
+
+//uart buffer
+(
+0x1800 mem_h5rx_buf//0x400
+0x1bff mem_h5rx_buf_end
+0x1c00 mem_h5tx_buf
+0x1fff mem_h5tx_buf_end
+)
+
+(
+// Define wValue bitmaps for Standard Feature Selectors
+0x00 ENDPOINT_HALT             // Endpoint_Halt feature selector
+0x01 DEVICE_REMOTE_WAKEUP      // Remote wakeup feature(not used)
+0x00 BOOT_PROTOCOL
+0x01 REPORT_PROTOCOL
+0x01 USB_MAX_NUM_CFG
+)
+
+(
+0x4c00 mem_module_rx_buf//0x400
+0x4c00 mem_module_rx_buf_little
+0x4fff mem_module_rx_buf_end
+0x1c00 mem_module_tx_buf
+0x1fff mem_module_tx_buf_end
+)
+
+(
+0x01 BIND_ACKPAYLOAD
+0x02 USER_ACKPAYLOAD
+0x03 KB_LED_ACKPAYLOAD
+
+0xcf CMD_OTA
+0xc0 CMD_OTA_START
+0xc1 CMD_OTA_DATA
+0xc2 CMD_OTA_EXIT
+0x55 OTA_STA_SUCCESS
+0xaa OTA_STA_FAIL
+)
+
+(
+0 TIMER_NAK
+640 TIMER_NAK_DELAY
+15 TIMER_WAKEUP
+5000 TIMER_WAKEUP_DELAY
+)
+
+//eeprom address offset
+(
+0x5a DONGLE_KB_BIND_SUCCESS
+0x00 DONGLE_KB_BIND_EEPROM_OFFECT
+0x70 DONGLE_FIRMWARE_VERSION_OFFECT
+)
+
+(
+1 USB_GOT_REPORT_REQ
+2 USB_CONNECTED
+3 USB_SLEEP
+4 USB_RESUME
+5 USB_SETIDLE_1
+)
+
+(
+0x10 USB_EP1_KB
+0x20 USB_EP2_MS
+0x21 USB_EP2_MULTIKEY
+0x22 USB_EP2_SYSTEMKEY
+0x01 MAC_BOOT_MODE
+0x02 R_KEY
+0x03 LR_KEY
+)
+
+(
+0x8ffa	HID_KBDATA_ADDR
+0x903a	HID_MSDATA_ADDR
+0x90fe	HID_CONFDATA_ADDR
+)
+
+
+(
+0x01ba PC_GET_REPORT
+0x02ba PC_SET_REPORT
+0x0200 PC_SET_REPORT_bValue
+0x0000 PC_SET_REPORT_wIndex
+0x0001 PC_SET_REPORT_bLength
+0xba PC_REPORT_ID
+
+0x01 PC_GET_DATA
+0x00 PC_GET_NONDATA
+)
+
+//class type
+(
+0x00 STANDARD_REQ
+0x01 CLASS_REQ
+0x02 MANUFACTURER_REQ
+)
+//Standard Request Codes
+(
+0x00 GET_STATUS                // Code for Get Status
+0x01 CLEAR_FEATURE             // Code for Clear Feature
+0x03 SET_FEATURE              // Code for Set Feature
+0x05 SET_ADDRESS              // Code for Set Address
+0x06 GET_DESCRIPTOR           // Code for Get Descriptor
+0x07 SET_DESCRIPTOR           // Code for Set Descriptor(not used)
+0x08 GET_CONFIGURATION        // Code for Get Configuration
+0x09 SET_CONFIGURATION        // Code for Set Configuration
+0x0A GET_INTERFACE            // Code for Get Interface
+0x0B SET_INTERFACE            // Code for Set Interface
+0x0C SYNCH_FRAME              // Code for Synch Frame(not used)
+)
+//Standard Descriptor Types
+(
+0x01 DSC_DEVICE               // Device Descriptor
+0x02 DSC_CONFIG               // Configuration Descriptor
+0x03 DSC_STRING               // String Descriptor
+0x04 DSC_INTERFACE            // Interface Descriptor
+0x05 DSC_ENDPOINT             // Endpoint Descriptor
+)
+//HID Descriptor Types
+(
+0x21 DSC_HID			      // HID Class Descriptor
+0x22 DSC_HID_REPORT			  // HID Report Descriptor
+)
+//Define bmRequestType bitmaps
+(
+0x80 IN_DEVICE                // Request made to device,
+                              // direction is IN
+0x00 OUT_DEVICE               // Request made to device,
+                              // direction is OUT
+0x81 IN_INTERFACE             // Request made to interface,
+                              // direction is IN
+0x01 OUT_INTERFACE            // Request made to interface,
+                              // direction is OUT
+0x82 IN_ENDPOINT              // Request made to endpoint,
+                              // direction is IN
+0x02 OUT_ENDPOINT             // Request made to endpoint,
+)
+//HID Request Codes
+(
+0x01 GET_REPORT 		       // Code for Get Report
+0x02 GET_IDLE				   // Code for Get Idle
+0x03 GET_PROTOCOL			   // Code for Get Protocol
+0x09 SET_REPORT				   // Code for Set Report
+0x0A SET_IDLE				   // Code for Set Idle
+0x0B SET_PROTOCOL			   // Code for Set Protocol
+0xF2 HID_REPORT_ID           
+64 EP0_PACKET_SIZE         
+6 EP1_PACKET_SIZE         
+16 HID_REPORT_SIZE         
+0x001B HID_REPORT_DESCRIPTOR_SIZE    
+)
+//math cordic
+(
+0 TYPE_SIN		
+1 TYPE_ATAN	
+2 TYPE_MULT	
+3 TYPE_DIV		
+4 TYPE_ASIN	
+5 TYPE_SQRT	
+6 TYPE_COS		
+7 TYPE_TAN		 
+)
+   
+(
+0 DFIFO0_IN_EMPTY
+1 DFIFO1_IN_EMPTY
+2 DFIFO2_IN_EMPTY
+3 DFIFO3_IN_EMPTY
+4 DFIFO0_OUT_EMPTY
+5 DFIFO1_OUT_EMPTY
+6 DFIFO2_OUT_EMPTY
+7 DFIFO3_OUT_EMPTY
+)
+
+(
+4 USB_STATUS_SETUP
+6 USB_STATUS_NAK
+)
+
+(
+0x1800 mem_ir_record
+0x1c      mem_ir_record_max
+)
+
+
+(
+0 MODULE_FLAG_UART_FLOW_CONTROL
+1 MODULE_FLAG_BLE_RECEIVED_DATA
+2 MODULE_FLAG_BLE_SEND_MTU23
+3 MODULE_FLAG_BLE_SEND_DATA
+)
+
+
+
+
+(
+34 NV_DATA_LEN
+-1 DECREASED_ONE
+)
+
+
+
+(
+	10 FLAG_MODULE_READ_VDD_COUNT
+)
+
+	(
+		110  DM_REFCOM_BUFF_LEN
+		230  NL_RFCOMM_BUFF_LEN
+		220  NL_RFCOMM_BUFF_LEN_220
+		20 DM_LE_BUFF_LEN
+	)
+	(
+		0x200 UART_AIR_CONTROL_THRESHOLD
+		0x150 UART_RX_CONTROL_THRESHOLD
+	)
+	(
+		0 MODULE_LED_DISABLE
+		1 MODULE_LED_BLINK
+	)
+
+
+
+
+(
+0x01 HCI_DISCARD_PACKET
+0x00 HCI_NOT_DISCARD_PACKET
+
+
+)
+
+
+
+(//Command
+0x00 HCI_CMD_SET_BT_ADDR_REQ
+0x01 HCI_CMD_SET_LE_ADDR_REQ
+0x02 HCI_CMD_SET_VISIBILITY_REQ
+0x03 HCI_CMD_SET_BT_NAME_REQ
+0x04 HCI_CMD_SET_LE_NAME_REQ
+0x05 HCI_CMD_SPP_DATA_REQ
+0x09 HCI_CMD_LE_DATA_REQ
+0x0b HCI_CMD_STATUS_IRQ
+0x0c HCI_CMD_SET_PAIRING_REQ
+0x0d HCI_CMD_SET_PINCODE_REQ
+0x0e HCI_CMD_SET_UARTCONTROL_REQ
+0x0f HCI_CMD_SET_UART_BAUD_REQ
+0x10 HCI_CMD_VERSION_REQ
+0x11 HCI_CMD_BT_DISCONNECT
+0x12 HCI_CMD_BLE_DISCONNECT
+0x13 HCI_CMD_DELETE_DEVICE
+0x14 HCI_CMD_CREATE_CONNECT
+0x26 HCI_CMD_SET_NVRAM_REQ
+0x27 HCI_CMD_SLEEP
+0x28 HCI_CMD_CONFIRM_GKEY
+0x29 HCI_CMD_SET_CREDIT_GIVEN
+0x2a HCI_CMD_AUTO_ADV_SCAN
+0x2b HCI_CMD_POWER_REQ
+0x2c HCI_CMD_POWER_SET
+0x30 HCI_CMD_PASSKEY_ENTRY
+0x31 HCI_CMD_SET_GPIO
+0x32 HCI_CMD_READ_GPIO
+0x33 HCI_CMD_LE_SET_PAIRING
+0x34 HCI_CMD_LE_SET_ADV_DATA
+0x35 HCI_CMD_LE_SET_SCAN_DATA
+0x36 HCI_CMD_LE_SEND_CONN_UPDATE_REQ
+0x38 HCI_CMD_LE_START_PAIRING
+0x48 HCI_CMD_LE_CONFIRM_GKEY
+
+)
+
+(//event
+0x00 HCI_EVENT_SPP_CONN_REP
+0x01 HCI_EVENT_HID_CONN_REP
+0x02 HCI_EVENT_LE_CONN_REP
+0x03 HCI_EVENT_SPP_DIS_REP
+0x04 HCI_EVENT_HID_DIS_REP
+0x05 HCI_EVENT_LE_DIS_REP
+0x06 HCI_EVENT_CMD_RES
+0x07 HCI_EVENT_SPP_DATA_REP
+0x08 HCI_EVENT_LE_DATA_REP
+0x09 HCI_EVENT_STANDBY_REP
+0x0a HCI_EVENT_STATUS_RES
+0x0b HCI_EVENT_FINISH_PACK_NUM
+0X0C HCI_EVENT_SNIFF_MD_CHANGE
+0x0D HCI_EVENT_NVRAM_REP
+0x0e HCI_EVENT_GKEY
+0x0F HCI_EVENT_INVALID_PACKET
+0x10 HCI_EVENT_GET_PASSKEY
+0x11 HCI_EVENT_LE_TK
+0x12 HCI_EVENT_REMOTE_MTU
+0x14 HCI_EVENT_LE_PAIRING_STATE
+0X15 HCI_EVENT_LE_ENCRYPTION_STATE
+0x17 HCI_EVENT_LE_CONNECTION_UPDATE
+0x1d HCI_EVENT_LE_GKEY
+
+)
+
+
+
+
+(
+0x7e0 OTP_ADDR_RF_PARAM_FIX
+//struct of RF_PARAM_FIX
+// uint8       //length = param_pair_count * 2 
+// uint16     //param-pair-1
+// uint16     //param-pair-2
+// uint16     //param-pair-3
+// uint16     //param-pair-4
+// uint16     //param-pair-5
+// uint16     //param-pair-6
+// uint16     //param-pair-7
+)
+(
+0x0270 FW_VERSION_NUMBER
+)
+
+(
+0	PAIRING_PINCODE
+1	PAIRING_JUSTWORK
+2	PAIRING_PASSKEY
+3	PAIRING_CONFIRM
+)
+
+
+(
+0x0001	FLAG_BT_PAIRING_SUCCESS
+0x0101	FLAG_BT_PAIRING_FAIL
+0x0080	FLAG_BLE_PAIRING_SUCCESS
+0x0180	FLAG_BLE_PAIRING_FAIL
+)
+
+
+(
+1	FLAG_EVENT_START_ENC
+0	FLAG_EVENT_PAUSE_ENC
+)
+
+(
+	0 MOUDLE_STATE_BT_BIT
+	1 MOUDLE_STATE_BLE_BIT
+)
+
+(
+	0 MOUDLE_TASK_UNSINFF
+)
+
+
+//dpi eeprom addr
+198 mouse_dpi_eeprom_addr
+
+(
+1 ONE_TRADITION_MOUSE
+2 ONE_BLE_MOUSE
+)
+
+
+(
+1 SENSOR_TYPE_A7530
+2 SENSOR_TYPE_P3204
+)
+0x30 P3204_ID
+0x31 P3065_ID
+0x3e P3610_ID
+
+7 pan_bit_motion
+
+(
+1000      MOUSE_LPM_CLR_LOCK_TIME
+       2       MOUSE_DPI_MAX_DECR
+)
+(
+80 MOUSE_SEND_BLANK_TIMER
+)
+
+
+//mem_mouse_mode_state
+(
+0x00 MOUSE_MODE_STATE_IDLE
+0x01 MOUSE_MODE_STATE_BT
+0x02 MOUSE_MODE_STATE_BLE
+)
+
+
+(
+	  0 patch00_0
+	  1 patch00_1
+	  2 patch00_2
+	  3 patch00_3
+	  4 patch00_4
+	  5 patch00_5
+	  6 patch00_6
+	  7 patch00_7
+	  8 patch01_0
+	  9 patch01_1
+	 10 patch01_2
+	 11 patch01_3
+	 12 patch01_4
+	 13 patch01_5
+	 14 patch01_6
+	 15 patch01_7
+	 16 patch02_0
+	 17 patch02_1
+	 18 patch02_2
+	 19 patch02_3
+	 20 patch02_4
+	 21 patch02_5
+	 22 patch02_6
+	 23 patch02_7
+	 24 patch03_0
+	 25 patch03_1
+	 26 patch03_2
+	 27 patch03_3
+	 28 patch03_4
+	 29 patch03_5
+	 30 patch03_6
+	 31 patch03_7
+	 32 patch04_0
+	 33 patch04_1
+	 34 patch04_2
+	 35 patch04_3
+	 36 patch04_4
+	 37 patch04_5
+	 38 patch04_6
+	 39 patch04_7
+	 40 patch05_0
+	 41 patch05_1
+	 42 patch05_2
+	 43 patch05_3
+	 44 patch05_4
+	 45 patch05_5
+	 46 patch05_6
+	 47 patch05_7
+	 48 patch06_0
+	 49 patch06_1
+	 50 patch06_2
+	 51 patch06_3
+	 52 patch06_4
+	 53 patch06_5
+	 54 patch06_6
+	 55 patch06_7
+	 56 patch07_0
+	 57 patch07_1
+	 58 patch07_2
+	 59 patch07_3
+	 60 patch07_4
+	 61 patch07_5
+	 62 patch07_6
+	 63 patch07_7
+	 64 patch08_0
+	 65 patch08_1
+	 66 patch08_2
+	 67 patch08_3
+	 68 patch08_4
+	 69 patch08_5
+	 70 patch08_6
+	 71 patch08_7
+	 72 patch09_0
+	 73 patch09_1
+	 74 patch09_2
+	 75 patch09_3
+	 76 patch09_4
+	 77 patch09_5
+	 78 patch09_6
+	 79 patch09_7
+	 80 patch0a_0
+	 81 patch0a_1
+	 82 patch0a_2
+	 83 patch0a_3
+	 84 patch0a_4
+	 85 patch0a_5
+	 86 patch0a_6
+	 87 patch0a_7
+	 88 patch0b_0
+	 89 patch0b_1
+	 90 patch0b_2
+	 91 patch0b_3
+	 92 patch0b_4
+	 93 patch0b_5
+	 94 patch0b_6
+	 95 patch0b_7
+	 96 patch0c_0
+	 97 patch0c_1
+	 98 patch0c_2
+	 99 patch0c_3
+	100 patch0c_4
+	101 patch0c_5
+	102 patch0c_6
+	103 patch0c_7
+	104 patch0d_0
+	105 patch0d_1
+	106 patch0d_2
+	107 patch0d_3
+	108 patch0d_4
+	109 patch0d_5
+	110 patch0d_6
+	111 patch0d_7
+	112 patch0e_0
+	113 patch0e_1
+	114 patch0e_2
+	115 patch0e_3
+	116 patch0e_4
+	117 patch0e_5
+	118 patch0e_6
+	119 patch0e_7
+	120 patch0f_0
+	121 patch0f_1
+	122 patch0f_2
+	123 patch0f_3
+	124 patch0f_4
+	125 patch0f_5
+	126 patch0f_6
+	127 patch0f_7
+	128 patch10_0
+	129 patch10_1
+	130 patch10_2
+	131 patch10_3
+	132 patch10_4
+	133 patch10_5
+	134 patch10_6
+	135 patch10_7
+	136 patch11_0
+	137 patch11_1
+	138 patch11_2
+	139 patch11_3
+	140 patch11_4
+	141 patch11_5
+	142 patch11_6
+	143 patch11_7
+	144 patch12_0
+	145 patch12_1
+	146 patch12_2
+	147 patch12_3
+	148 patch12_4
+	149 patch12_5
+	150 patch12_6
+	151 patch12_7
+	152 patch13_0
+	153 patch13_1
+	154 patch13_2
+	155 patch13_3
+	156 patch13_4
+	157 patch13_5
+	158 patch13_6
+	159 patch13_7
+	160 patch14_0
+	161 patch14_1
+	162 patch14_2
+	163 patch14_3
+	164 patch14_4
+	165 patch14_5
+	166 patch14_6
+	167 patch14_7
+	168 patch15_0
+	169 patch15_1
+	170 patch15_2
+	171 patch15_3
+	172 patch15_4
+	173 patch15_5
+	174 patch15_6
+	175 patch15_7
+	176 patch16_0
+	177 patch16_1
+	178 patch16_2
+	179 patch16_3
+	180 patch16_4
+	181 patch16_5
+	182 patch16_6
+	183 patch16_7
+	184 patch17_0
+	185 patch17_1
+	186 patch17_2
+	187 patch17_3
+	188 patch17_4
+	189 patch17_5
+	190 patch17_6
+	191 patch17_7
+	192 patch18_0
+	193 patch18_1
+	194 patch18_2
+	195 patch18_3
+	196 patch18_4
+	197 patch18_5
+	198 patch18_6
+	199 patch18_7
+	200 patch19_0
+	201 patch19_1
+	202 patch19_2
+	203 patch19_3
+	204 patch19_4
+	205 patch19_5
+	206 patch19_6
+	207 patch19_7
+	208 patch1a_0
+	209 patch1a_1
+	210 patch1a_2
+	211 patch1a_3
+	212 patch1a_4
+	213 patch1a_5
+	214 patch1a_6
+	215 patch1a_7
+	216 patch1b_0
+	217 patch1b_1
+	218 patch1b_2
+	219 patch1b_3
+	220 patch1b_4
+	221 patch1b_5
+	222 patch1b_6
+	223 patch1b_7
+	224 patch1c_0
+	225 patch1c_1
+	226 patch1c_2
+	227 patch1c_3
+	228 patch1c_4
+	229 patch1c_5
+	230 patch1c_6
+	231 patch1c_7
+	232 patch1d_0
+	233 patch1d_1
+	234 patch1d_2
+	235 patch1d_3
+	236 patch1d_4
+	237 patch1d_5
+	238 patch1d_6
+	239 patch1d_7
+	240 patch1e_0
+	241 patch1e_1
+	242 patch1e_2
+	243 patch1e_3
+	244 patch1e_4
+	245 patch1e_5
+	246 patch1e_6
+	247 patch1e_7
+	248 patch1f_0
+	249 patch1f_1
+	250 patch1f_2
+	251 patch1f_3
+	252 patch1f_4
+	253 patch1f_5
+	254 patch1f_6
+	255 patch1f_7
+	  0 patch20_0
+	  1 patch20_1
+	  2 patch20_2
+	  3 patch20_3
+	  4 patch20_4
+	  5 patch20_5
+	  6 patch20_6
+	  7 patch20_7
+	  8 patch21_0
+	  9 patch21_1
+	 10 patch21_2
+	 11 patch21_3
+	 12 patch21_4
+	 13 patch21_5
+	 14 patch21_6
+	 15 patch21_7
+	 16 patch22_0
+	 17 patch22_1
+	 18 patch22_2
+	 19 patch22_3
+	 20 patch22_4
+	 21 patch22_5
+	 22 patch22_6
+	 23 patch22_7
+	 24 patch23_0
+	 25 patch23_1
+	 26 patch23_2
+	 27 patch23_3
+	 28 patch23_4
+	 29 patch23_5
+	 30 patch23_6
+	 31 patch23_7
+	 32 patch24_0
+	 33 patch24_1
+	 34 patch24_2
+	 35 patch24_3
+	 36 patch24_4
+	 37 patch24_5
+	 38 patch24_6
+	 39 patch24_7
+	 40 patch25_0
+	 41 patch25_1
+	 42 patch25_2
+	 43 patch25_3
+	 44 patch25_4
+	 45 patch25_5
+	 46 patch25_6
+	 47 patch25_7
+	 48 patch26_0
+	 49 patch26_1
+	 50 patch26_2
+	 51 patch26_3
+	 52 patch26_4
+	 53 patch26_5
+	 54 patch26_6
+	 55 patch26_7
+	 56 patch27_0
+	 57 patch27_1
+	 58 patch27_2
+	 59 patch27_3
+	 60 patch27_4
+	 61 patch27_5
+	 62 patch27_6
+	 63 patch27_7
+	 64 patch28_0
+	 65 patch28_1
+	 66 patch28_2
+	 67 patch28_3
+	 68 patch28_4
+	 69 patch28_5
+	 70 patch28_6
+	 71 patch28_7
+	 72 patch29_0
+	 73 patch29_1
+	 74 patch29_2
+	 75 patch29_3
+	 76 patch29_4
+	 77 patch29_5
+	 78 patch29_6
+	 79 patch29_7
+	 80 patch2a_0
+	 81 patch2a_1
+	 82 patch2a_2
+	 83 patch2a_3
+	 84 patch2a_4
+	 85 patch2a_5
+	 86 patch2a_6
+	 87 patch2a_7
+	 88 patch2b_0
+	 89 patch2b_1
+	 90 patch2b_2
+	 91 patch2b_3
+	 92 patch2b_4
+	 93 patch2b_5
+	 94 patch2b_6
+	 95 patch2b_7
+	 96 patch2c_0
+	 97 patch2c_1
+	 98 patch2c_2
+	 99 patch2c_3
+	100 patch2c_4
+	101 patch2c_5
+	102 patch2c_6
+	103 patch2c_7
+	104 patch2d_0
+	105 patch2d_1
+	106 patch2d_2
+	107 patch2d_3
+	108 patch2d_4
+	109 patch2d_5
+	110 patch2d_6
+	111 patch2d_7
+	112 patch2e_0
+	113 patch2e_1
+	114 patch2e_2
+	115 patch2e_3
+	116 patch2e_4
+	117 patch2e_5
+	118 patch2e_6
+	119 patch2e_7
+	120 patch2f_0
+	121 patch2f_1
+	122 patch2f_2
+	123 patch2f_3
+	124 patch2f_4
+	125 patch2f_5
+	126 patch2f_6
+	127 patch2f_7
+	128 patch30_0
+	129 patch30_1
+	130 patch30_2
+	131 patch30_3
+	132 patch30_4
+	133 patch30_5
+	134 patch30_6
+	135 patch30_7
+	136 patch31_0
+	137 patch31_1
+	138 patch31_2
+	139 patch31_3
+	140 patch31_4
+	141 patch31_5
+	142 patch31_6
+	143 patch31_7
+	144 patch32_0
+	145 patch32_1
+	146 patch32_2
+	147 patch32_3
+	148 patch32_4
+	149 patch32_5
+	150 patch32_6
+	151 patch32_7
+	152 patch33_0
+	153 patch33_1
+	154 patch33_2
+	155 patch33_3
+	156 patch33_4
+	157 patch33_5
+	158 patch33_6
+	159 patch33_7
+	160 patch34_0
+	161 patch34_1
+	162 patch34_2
+	163 patch34_3
+	164 patch34_4
+	165 patch34_5
+	166 patch34_6
+	167 patch34_7
+	168 patch35_0
+	169 patch35_1
+	170 patch35_2
+	171 patch35_3
+	172 patch35_4
+	173 patch35_5
+	174 patch35_6
+	175 patch35_7
+	176 patch36_0
+	177 patch36_1
+	178 patch36_2
+	179 patch36_3
+	180 patch36_4
+	181 patch36_5
+	182 patch36_6
+	183 patch36_7
+	184 patch37_0
+	185 patch37_1
+	186 patch37_2
+	187 patch37_3
+	188 patch37_4
+	189 patch37_5
+	190 patch37_6
+	191 patch37_7
+	192 patch38_0
+	193 patch38_1
+	194 patch38_2
+	195 patch38_3
+	196 patch38_4
+	197 patch38_5
+	198 patch38_6
+	199 patch38_7
+	200 patch39_0
+	201 patch39_1
+	202 patch39_2
+	203 patch39_3
+	204 patch39_4
+	205 patch39_5
+	206 patch39_6
+	207 patch39_7
+	208 patch3a_0
+	209 patch3a_1
+	210 patch3a_2
+	211 patch3a_3
+	212 patch3a_4
+	213 patch3a_5
+	214 patch3a_6
+	215 patch3a_7
+	216 patch3b_0
+	217 patch3b_1
+	218 patch3b_2
+	219 patch3b_3
+	220 patch3b_4
+	221 patch3b_5
+	222 patch3b_6
+	223 patch3b_7
+	224 patch3c_0
+	225 patch3c_1
+	226 patch3c_2
+	227 patch3c_3
+	228 patch3c_4
+	229 patch3c_5
+	230 patch3c_6
+	231 patch3c_7
+	232 patch3d_0
+	233 patch3d_1
+	234 patch3d_2
+	235 patch3d_3
+	236 patch3d_4
+	237 patch3d_5
+	238 patch3d_6
+	239 patch3d_7
+	240 patch3e_0
+	241 patch3e_1
+	242 patch3e_2
+	243 patch3e_3
+	244 patch3e_4
+	245 patch3e_5
+	246 patch3e_6
+	247 patch3e_7
+	248 patch3f_0
+	249 patch3f_1
+	250 patch3f_2
+	251 patch3f_3
+	252 patch3f_4
+	253 patch3f_5
+	254 patch3f_6
+	255 patch3f_7
+
+)
+(
+  0x8000 core_chipid
+  0x8003 core_kick
+  0x8004 core_write_watchdog
+  0x8005 core_lpm_wr
+  0x8006 core_misc_ctrl
+  0x8007 core_otp_rdata
+  0x8009 core_pcmoutfifo
+  0x8010 core_reset
+  0x8011 core_encrypt
+  0x8015 core_uart_txd
+  0x8022 core_ucode_hi
+  0x8023 core_ucode_ctrl
+  0x8024 core_ucode_low
+  0x8025 core_ucode_data
+  0x8040 core_halfslot
+  0x8042 core_clksel
+  0x8043 core_uart_clksel
+  0x8043 core_config 
+  0x8044 core_xtal_stable_time
+  0x8045 core_otp_addr
+  0x8046 core_otp_din
+  0x8047 core_otp_ctrl
+  0x8048 core_otpd_addr
+  0x804a core_otpd_len
+  0x804b core_otpd_ctrl
+  0x804c core_lpm_reg
+  0x804f core_lpm_isogate
+  0x8050 core_clkoff
+  0x8052 core_uart_baud
+  0x8054 core_uart_rsaddr
+  0x8056 core_uart_readdr
+  0x8058 core_uart_rrptr
+  0x805a core_uart_tsaddr
+  0x805c core_uart_teaddr
+  0x805e core_uart_twptr
+  0x8060 core_uart_trptrp
+  0x8062 core_uart_ctrl
+  0x8063 core_kscn_ksctrl
+  0x8064 core_kscn_rctc
+  0x8065 core_kscn_scancycle_timer_l
+  0x8066 core_kscn_scancycle_timer_h
+  0x8067 core_kscn_m_debounce          
+  0x8068 core_kscn_modkey
+  0x806f core_kscn_rowmask
+  0x8070 core_gpio_oe0
+  0x8071 core_gpio_oe1
+  0x8072 core_gpio_oe2
+  0x8073 core_gpio_oe3
+  0x8074 core_gpio_out0
+  0x8075 core_gpio_out1
+  0x8076 core_gpio_out2
+  0x8077 core_gpio_out3
+  0x8078 core_gpio_pu0
+  0x8079 core_gpio_pu1
+  0x807a core_gpio_pu2
+  0x807b core_gpio_pu3
+  0x807c core_gpio_pd0
+  0x807d core_gpio_pd1
+  0x807e core_gpio_pd2
+  0x807f core_gpio_pd3
+  0x8080 core_gpio_sel
+  0x8081 core_gpio_sel1
+  0x8082 core_gpio_sel2
+  0x8083 core_gpio_key0
+  0x8084 core_gpio_key1
+  0x8085 core_gpio_key2
+  0x8086 core_spid_ctrl
+  0x8087 core_spid_delay
+  0x8088 core_spid_txlen
+  0x808a core_spid_txaddr
+  0x808c core_spid_rxaddr
+  0x808e core_spid_rxlen
+  0x8090 core_iicd_ctrl
+  0x8091 core_iicd_scl_low
+  0x8092 core_iicd_scl_high
+  0x8093 core_iicd_start_setup
+  0x8094 core_iicd_start_hold
+  0x8095 core_iicd_stop_setup
+  0x8096 core_iicd_data_setup
+  0x8097 core_iicd_data_hold
+  0x8098 core_iicd_txlen
+  0x809a core_iicd_txaddr
+  0x809c core_iicd_rxaddr
+  0x809e core_iicd_rxlen
+  0x80a0 core_pwm_pcnt0
+  0x80a2 core_pwm_ncnt0
+  0x80a4 core_pwm_pcnt1
+  0x80a6 core_pwm_ncnt1
+  0x80b0 core_enc_ctrl
+  0x80b1 core_cvsd_ctrl
+  0x80b2 core_codec_ctrl
+  0x80b3 core_dec_ctrl
+  0x80b4 core_bist_ctrl
+
+
+
+  
+  0x8108 core_misc_status
+  0x8109 core_qdec_cntx
+  0x810a core_qdec_cnty
+  0x810b core_qdec_cntz
+  0x810c core_uart_status
+  0x810d core_uart_rbaud
+  0x810e core_uart_txitems
+  0x8110 core_uart_trptr
+  0x8112 core_uart_rxitems
+  0x8114 core_uart_rdptr
+  0x8116 core_uart_rwptr
+  0x8119 core_kscn_kstat
+  0x811a core_kscn_event
+  0x811b core_kscn_event_num
+  0x811c core_gpio_in
+  0x811d core_gpio_in1
+  0x8124 core_current_otp_addr
+  0x8126 core_otpd_remain
+  0x8128 core_spid_remain
+  0x812a core_iicd_remain
+  0x812c core_dma_status
+  0x812d core_perf_status
+  0x812e core_adc_in
+  0x8134 core_pcminfifo
+  0x8135 core_pcminfifo_remain
+  0x8136 core_pcmoutfifo_remain
+  0x8138 core_lpm_ctrl
+  0x813c core_lpm_xtalcnt
+  0x813d core_lpm_buckcnt
+  0x813e core_lpm_ldocnt
+  0x813f core_lpm_latch
+  0x8140 core_gpio_wakeup_low
+  0x8144 core_gpio_wakeup_high
+  0x8149 core_clk_counter
+  0x8150 core_adc_sum
+// dummy regs  
+
+  0x8203 core_ice_ctrl
+  0x8204 core_ice_status
+  0x8205 core_ice_break0
+  0x8207 core_ice_break1
+  
+  0x8280 core_docd_ctrl
+  0x8288 core_docd_paddr
+  0x828a core_docd_pdata
+
+  0x8300 iic_prer_low		
+  0x8301 iic_slave_addr	
+  0x8302 iic_ctr					
+  0x8303 iic_cr					
+  0x8304 iic_rxr					
+  0x8305 iic_txr					
+  0x8306 iic_sr					
+  0x8307 iic_fifo				
+
+  0x8400   mem_b_box          /* entire bank */
+  0x8500   mem_e_box          /* entire bank */
+  0x8600   mem_l_box          /* entire bank */
+
+  0x8700 memk
+
+  0x8900 rfen_rx
+  0x8901 rfen_tx
+  0x8902 rfen_mdm
+  0x8903 rfen_sn
+  0x8904 rfen_msc
+  0x8905 rfen_ck
+  0x8906 rfen_adc
+  0x8912 rf_agc_ctrl
+  0x8914 rfen_ulp
+  0x8973 rfen_chgpump
+  0x894b rf_rx_vctrl_reg1
+  0x894c rf_rx_vctrl_reg2
+  0x894d rf_rx_ib_lna
+  0x894e rf_rx_lna_ctrim
+
+  0x8950 rf_bpf_ctrim
+  0x8951 rf_bpf_ib
+  0x8952 rf_adc_rccal
+  0x8952 rf_rccal_ctrl
+  0x8953 rf_rccal_sel
+  0x8955 rf_tx_pa
+  0x895f rf_pll_rstn
+  0x8964 rf_sdm_en
+  0x8960 rf_pll_intg
+  0x8961 rf_pll_frac
+  0x8963 rf_pll_frachi
+  0x896c rf_afc_cap
+  0x8967 rf_clkpll_bias
+  0x896f rf_clkpll_en
+  0x8968 rf_clkpll_int
+  0x8969 rf_clkpll_frac
+  0x896d rf_balun_ctrim
+  0x8971 rf_adc_mode
+  0x8972 rf_adc_gc
+  0x8973 rf_adc_ch
+  0x8980 rf_rccal_result
+  0x8981 rf_afc_d2a
+  0x8982 rf_rssi
+
+
+0x8a00 core_usb_config		
+0x8a01 core_usb_int_mask	
+0x8a04 core_usb_addr
+0x8a05 core_usb_driver
+0x8a10 core_usb_trig	
+0x8a11 core_usb_stall		
+0x8a12 core_usb_clear		
+0x8a18 core_usb_ep
+0x8a18 core_usb_dfifo0 
+0x8a19 core_usb_dfifo1  
+0x8a1a core_usb_dfifo2 
+0x8a20 core_usb_ep_len
+0x8a26 core_usb_status		
+0x8a27 core_usb_fifo_empty
+0x8a28 core_usb_fifo_full
+
+
+4 rx_freq_offset
+1 tx_freq_offset
+
+/* bit difinitions */
+  3 watchdog_bit
+  4 whiteoff_bit
+  6 clksel_rc
+  5 clksel_dpll
+  4 clksel_xtal
+  5 adc_rccal
+  0 bpf_rccal
+  1 demod_clkoff
+
+(
+  7 cold_wake
+  3 gpio_latch
+  4 enable_retmem
+  0xef isogate_mask
+  0xe0 cs_mask
+)
+
+// misc ctrl
+(
+  0x01 otpd_start
+  0x02 spid_start
+  0x04 iicd_start
+  0x08 lock_otp
+  0x10 x_sethi
+  0x20 y_sethi
+  0x40 z_sethi
+  0x80 ccnt_start
+)
+// dma status bit
+(
+  0 otpd_crcok
+  1 otpd_done
+  2 spid_crcok
+  3 spid_done
+  4 iicd_crcok
+  5 iicd_done
+)
+
+0x8b uart_ctrl_default //BCSP
+0x81 uart_ctrl_h4 //H4
+0x81 uart_ctrl_normal
+0x91 uart_ctrl_5line
+0x81 uart_ctrl_57600
+2 uart_baud_len
+0x00 uartclk_crystal
+0x01 uartclk_dpll
+0x1a0 uart_baud_115200
+0xbb uart_baud_256000
+0x340 uart_baud_57600
+0x34 uart_baud_921600
+0x9c4 uart_baud_9600
+0x2dc6c00 uart_clk
+0x16E3600 uart_clk_24
+
+//core_clkoff
+(
+	0 CLOCK_OFF_AUTH_ROM
+	1 CLOCK_OFF_UC_ROM
+	2 CLOCK_OFF_DEBUG_UART
+	3 CLOCK_OFF_SCHED_RAM
+	4 CLOCK_OFF_TRANCE_FIFO
+	5 CLOCK_OFF_CORDIC
+	6 CLOCK_OFF_OTPD
+	7 CLOCK_OFF_I2C
+	8 CLICK_OFF_8051
+	9 CLOCK_OFF_KEYSCAN
+	0x0a CLOCK_OFF_USB
+	0x0b CLOCK_OFF_QDECODER
+	0x0c CLOCK_OFF_SPI
+	0x0d CLOCK_OFF_PWM
+	0x0e CLOCK_OFF_CODEC
+	0x0f CLOCK_OFF_UART
+)
+
+
+/*****************************************************************************/
+/* RCS HEADER -- DO NOT ERASE                                                */
+/* $Author: Administrator $                                                           */
+/* $Id: bt_rfcomm_format.upper,v 1.1 2009-09-28 04:06:17 Administrator Exp $ */
+/* Orisil Technology                                                      */
+/*****************************************************************************/
+
+/**********/
+/* memory */
+/**********/
+
+0x04ed memRemoteRPNBitRate
+0x04ee memRemotePRNDataBits
+0x04ef memRemotePRNStopBit
+0x04f0 memRemotePRNParity
+0x04f1 memRemotePRNFlowControl
+0x04f2 memRemotePRNXon
+0x04f3 memRemotePRNXoff
+0x04f4 mem_mod2div_temp
+0x04f7 mem_contw_temp
+0x04f9 mem_attrib_list
+0x04fb mem_current_adss
+0x04fc mem_current_channel
+0x04fd mem_current_frame_type
+0x04fe mem_current_fcs
+0x04ff mem_current_length
+0x0501 mem_rfcomm_uih_payload_ptr
+0x0503 mem_uih_cmd_type
+0x0504 mem_uih_length
+0x0506 mem_param_payload_ptr
+0x0508 mem_ms_param
+0x0509 mem_pn_credit_flow_type_info
+0x050a mem_pn_priority
+0x050b mem_pn_acknowledg_timer
+0x050c mem_pn_max_retrans
+0x050d mem_rfcomm_send_adss
+0x050e mem_rfcomm_send_frame_type
+0x050f mem_rfcomm_send_fcs
+0x0510 mem_rfcomm_send_offset
+
+
+
+(
+0 CREDIT_DISABLE
+1 CREDIT_ENABLE
+)
+
+
+/************************************************************************/
+  
+
+ 
+/************/
+/* constant */
+/************/
+
+/* RFCOMM state for Headset (memRFCOMM_State) */ 
+  (
+    0 RFCOMM_IDLE           /* before the responsor HS receive SABM            */
+    1 RFCOMM_W4_DLCI0_OPEN
+    2 RFCOMM_W4_DLCI0_CLOSE
+    3 RFCOMM_START_DLCI0    /* After respond SABM frame (DLCI=0)               */
+    4 RFCOMM_W4_DLCI_OPEN
+    5 RFCOMM_W4_DLCI_CLOSE
+    6 RFCOMM_DLCI_OPENED    
+   
+  )
+  
+/* RFCOMM timer constants   */
+  (
+    1000  RFCOMM_T1         /* Used by SABM and DISC frames,100*20ms = 20s     */     
+    1000  RFCOMM_T2         /* Used by commands send in UIH on DLCI0,          */
+    300   RFCOMM_T3_RINGON  /* 6s for ring fade time                           */
+  
+  )
+
+/* Command Type */
+  (
+    0x3F RSP_RX_SABM        /*responsor expect SABM from initiator             */
+    0x3F INI_TX_SABM
+	
+    0x73 RSP_TX_UA          /*responsor send out UA command                    */
+    0x73 UA_WFBIT_SET	    /* UA control field with F bit set                 */
+	
+    0xEF RSP_RX_UIH         /*responsor expect UIH from initiator              */
+
+    0xEF RSP_TX_UIH         /*responsor send UIH to initiator                  */
+     
+    0x1F RSP_TX_DM          /*responsor send DM to initiator                   */
+    0x1F DM_WFBIT_SET       /* DM control field with F bit set                 */
+    0x0F DM_WFBIT_CLEAR     /* DM control field with F bit clear               */
+
+    0x53 RSP_RX_DISC        /*responsor expect DISC from initiator             */
+    0x53 INI_TX_DISC	    /*initiator send DISC control type command         */
+     
+    0xFF RSP_RX_UIH_WDATA   /*UIH data with credit flow control info           */
+    
+    
+  )
+
+/* Multiplexor commands and responses frames */
+  (
+    0x83 PN_COMMAND           /* Bit 0 EA C/R Type = 000001         */
+    0x81 PN_RESPONSOR         /* Bit 0 EA C/R Type = 000001         */
+    
+    0xE3 MSC_COMMAND          /* Bit 0 EA C/R Type = 000111         */
+    0xE1 MSC_RESPONSOR
+ 
+    0x13 NSC_COMMAND          /* Bit 0 EA C/R Type = 001000         */
+    0x11 NSC_RESPONSOR        /* Bit 0 EA C/R Type = 001000         */
+
+    0x23 TEST_COMMAND         /* Bit 0 EA C/R Type = 000111         */
+    0x21 TEST_RESPONSOR 
+    
+    0x93 RPN_COMMAND          /* Bit 0 EA C/R Type = 001001         */
+    0x91 RPN_RESPONSOR 
+    
+    0x53 RLS_COMMAND          /* Bit 0 EA C/R Type = 001010         */
+    0x51 RLS_RESPONSOR 
+
+    0xA3 FCON_COMMAND         /* Bit 0 EA C/R Type = 000101         */
+    0xA1 FCON_RESPONSOR 
+    
+    0x63 FCOFF_COMMAND        /* Bit 0 EA C/R Type = 000110         */
+    0x61 FCOFF_RESPONSOR 
+    	
+    0x03 RLS_OVERRUN
+    0x05 RLS_PARITY_ERROR
+    0x09 RLS_FRAMING_ERROR
+  )
+
+/* memLocalCredit */
+  (
+    0x01 RFCOMM_CREDIT
+  )
+
+  (
+  	0x007f RFCOMM_MAX_FRAME_SIZE
+  )
+
+/* UIH received Data length */
+  (
+    0  LENGTH_ZERO
+    
+    6  LENGTH_OK
+    7  LENGTH_HOT
+    8  LENGTH_RING
+    9  LENGTH_ERROR
+    9  LENGTH_AGVOL_ONEBYTE
+    10 LENGTH_AGVOL_TWOBYTE
+    10 LENGTH_VOL_ONEBYTE
+    11 LENGTH_VOL_TWOBYTE
+    12 LENGTH_BRSF
+    13 LENGTH_PLUS_CIEV
+    15 LENGTH_INBANDRING
+    14 LENGTH_CIEV_CALL
+    17 LENGTH_CRING
+    20 LENGTH_BRSF_OK
+    24 LENGTH_CIND0
+    28 LENGTH_CIEV_TWO
+    32 LENGTH_CIND_OK
+    59 LENGTH_CIND_OK2
+    100 LENGTH_DISCARD
+  )
+  
+/************/
+/* flags    */
+/************/
+  
+/* memRFCOMM_L2CAP_Interface */
+  (
+    0 RFCOMM_TX_W4BUF_FLAG    /* Wait for Tx buffer empty flag */
+    1 RFCOMM_CLOSE_LINK_FLAG
+  )
+  
+
+    
+/* memRemoteMSC		*/
+  (
+    0 MSC_EA_BIT
+    1 MSC_FC_BIT
+    2 MSC_RTC_BIT
+    3 MSC_RTR_BIT
+    6 MSC_IC_BIT
+    7 MSC_DV_BIT
+  )
+
+/* memRemoteRLS         */
+  (
+    0x0C OVERRUN_ERROR
+    0x0A PARITY_ERROR
+    0x09 FRAMING_RERROR
+  )
+  
+/* memRemoteRPNBitRate  */
+  (
+    0x00 BITS2400
+    0x01 BITS4800
+    0x02 BITS7200
+    0x03 BITS9600
+    0x04 BITS19200
+    0x05 BITS38400
+    0x06 BITS57600
+    0x07 BITS115200
+    0x08 BITS230400
+  )
+  
+/* memRemotePRNDataBits	*/
+  (
+    0x00 DATABITS5
+    0x01 DATABITS6
+    0x02 DATABITS7
+    0x03 DATABITS8
+  )
+  
+/* memRemotePRNStopBit	*/
+  (
+    0    ONESTOP
+    1    ONEHALFSTOP
+  )
+  
+/* memRemotePRNParity   */
+  (
+    0    ODDPARITY
+    1    EVENPARITY
+    2    MARKPARITY
+    3    SPACEPARITY
+    
+    7    PARITY_ENABLE_BIT
+  )
+
+/* RPN bit mask(in)     */
+  (
+     0   BIT_RATE_MASK_BIT
+     1   DATA_BITS_MASK_BIT
+     2   STOP_BITS_MASK_BIT
+     3   PARITY_MASK_BIT
+     4   PARITY_TYPE_MASK_BIT
+     5   XON_CHAR_MASK_BIT
+     6   XOFF_CHAR_MASK_BIT
+  )
+  
+/* RPN bit mask(in) 2    */
+  (
+     0   XON_XOFF_INPUT_MASK_BIT
+     1   XON_XOFF_OUTPUT_MASK_BIT
+     2	 RTR_INPUT_MASK_BIT
+     3   RTR_OUTPUT_MASK_BIT
+     4   RTC_INPUT_MASK_BIT
+     5   RTC_OUTPUT_MASK_BIT
+
+  )
+
+/* memRFCOMM_Request	*/
+  (
+    0 SEND_MSC_CMD_REQ_FLAG
+    1 SEND_AT_CKPD_REQ_FLAG
+    2 SEND_RING_REQ_FLAG
+    3 SEND_SABM_CMD
+  )
+  
+/* memRFCOMM_Misc_Flag  */
+  (
+    0 MSC_CDM_ALREADY_SEND_FLAG
+    1 CREDIT_FLOW_USED_FLAG
+    2 DONT_EMBEDDED_CREDIT_FLAG 
+    3 MSC_EXCHANGE_DONE_FLAG
+    4 FLOW_CONTROL_FCOFF_BIT            /* set when receive FCoff, clear when FCon   */
+  )
+  
+/* memRemoteMSC		*/
+  (
+    1 FLOW_CONTROL_FC_BIT		/* received MSC FC bits                      */
+  
+  )
+/* Address filed        */
+  (
+    0 ADDR_EA_BIT
+    1 ADDR_CR_BIT
+    2 ADDR_D_BIT
+  )
+//should be same as descripted in SDP
+(
+    1 SPP_SLAVE_CHANNEL
+    7 OBEX_SERVER_CHANNEL
+    8 HF_SERVER_CHANNEL 
+    9 HS_SERVER_CHANNEL
+)
+/* memRFCOMM_Flag */
+(
+	0 USING_HF_PROFILE
+	1 USING_HS_PROFILE
+	2 USING_SPP_PROFILE
+)
+/*RFCOMM Frame Type*/
+(
+	0x3f RFCOMM_FRAME_TYPE_SABM
+	0x73 RFCOMM_FRAME_TYPE_UA
+	0xEF RFCOMM_FRAME_TYPE_UIH
+	0xFF RFCOMM_FRAME_TYPE_UIH_CREDITS
+	0x53 RFCOMM_FRAME_TYPE_DISCONN
+)
+/*RFCOMM UIH CMD TYPE*/
+(
+	0x41 UIH_PARAM_NEG_CMD
+	0x40 UIH_PARAM_NEG_RES
+	0x49 UIH_PARAM_CMD_REMOVE_PORT
+	0x71 UIH_MODEM_STATUS_CMD
+	0x70 UIH_MODEM_STATUS_RES
+)
+
+/*bits in rfcomm address*/
+(
+	0 RFCOMM_ADDRESS_EXT_LEN
+	1 RFCOMM_ADDRESS_CR
+	2 RFCOMM_ADDRESS_DERECTION
+
+
+)
+
+	(                                   
+	0 RFCOMM_CHANNEL_STATE_PN_CMD
+	1 RFCOMM_CHANNEL_STATE_PN_RES
+	2 RFCOMM_CHANNEL_STATE_SABM
+	3 RFCOMM_CHANNEL_STATE_UA
+	4 RFCOMM_CHANNEL_STATE_SND_MS_CMD
+	5 RFCOMM_CHANNEL_STATE_RCV_MS_CMD
+	6 RFCOMM_CHANNEL_STATE_SND_MS_RES
+	7 RFCOMM_CHANNEL_STATE_RCV_MS_RES
+	0xff RFCOMM_CHANNEL_SETUP_COMPLETE
+	) 
+
+	/*mem_rfcomm_send_more_pkt*/
+	(
+	1 MORE_PKT_MSC_CMD_HF
+	2 MORE_PKT_MSC_CMD_HS
+	3 MORE_PKT_MSC_CMD_SPP
+	4 MORE_PKT_MSC_CMD_OBEX
+	)
+
+	(
+	127 RFCOMM_MALLOC_SIZE
+	)
+0x0511 mem_sdp_mem_start
+0x0511 mem_sdp_uuid_search_ptr
+0x0519 mem_sdp_continue_byte
+0x051b mem_sdp_pduid
+0x051c mem_sdp_transactionid
+0x051e mem_sdp_transactionid_local
+0x0520 mem_sdp_attribute_maxbyte
+0x0522 mem_sdp_record_maxcnt
+0x0524 mem_sdp_record_handle
+0x0528 mem_sdp_LACAP_found
+0x0529 mem_sdp_RFCOMM_found
+0x052a mem_sdp_handle_list
+0x052a mem_sdp_attrib_list
+0x054a mem_sdp_error_code
+0x054c mem_sdp_all_length
+0x054e mem_handle_humber
+0x054f mem_search_uuid
+0x0551 mem_sdp_mem_end
+(
+0 AGORHS_SERVICE
+1 GENAUDIO_SERVICE
+2 HANDSFREE_SERVICE
+)
+(
+0 ATTRIBUTEID_0000
+1 ATTRIBUTEID_0001
+2 ATTRIBUTEID_0004
+3 ATTRIBUTEID_0009
+4 ATTRIBUTEID_0100
+5 ATTRIBUTEID_0302
+6 ATTRIBUTEID_0006
+7 ATTRIBUTEID_0311
+)
+/* mem_sdp_search_profile */
+(
+1	SDP_SS_HEADSET
+2  	SDP_SS_HANDSFREE
+)
+(
+0x06 sdp_pduid_serviceSearchAttrib
+)
+0x2600 sdp_max_amount
+767 SDP_MALLOC_SIZE
+0x6e sdp_tid_spp //any number
+
+ 
+
+0x0551 mem_rxbuf
+0x0562 mem_random_number
+0x0572 mem_round_key
+0x0582 mem_kinit
+0x0592 mem_input_store
+0x05a2 mem_x
+0x05b2 mem_y
+0x05c1 mem_y15
+0x05c2 mem_key_store
+0x05d3 mem_key_store_end
+0x05d4 memp_ar_key
+0x05d6 memp_ar_input
+0x05d8 mem_ar_hround
+0x05e2 mem_ec_infinite
+0x05e3 mem_ec_loopc
+0x05e5 mem_aes_cmac_data_length
+0x05e6 memdat
+0x05e6 mem_ax
+0x05fe mem_ay
+0x0616 mem_az
+0x062e mem_bx
+0x0646 mem_ax_256//32 bytes
+0x0646 mem_by
+0x065e mem_bz
+0x0666 mem_ay_256// 32 bytes
+0x0676 mem_cx
+0x0686 mem_az_256// 32 bytes
+0x068e mem_cy
+0x06a5 mem_cy5
+0x06a6 mem_bx_256// 32 bytes
+0x06a6 mem_cz
+0x06be mem_k
+0x06c6 mem_by_256// 31 bytes
+0x06d6 mem_align
+0x06e6 mem_bz_256//32 bytes
+0x06e6 mem_tmp1
+0x06e6 memahbak
+0x06fe mem_tmp5
+0x0706 mem_cx_256//32 bytes
+0x0706 memahsave
+0x0716 mem_tmp2
+0x0726 mem_cy_256// 32 bytes
+0x0726 memahsave_end
+0x0726 mem_addr_padding
+0x0727 mem_addr_value/* 12 bytes     */ 
+0x072e mem_tmp3
+0x072e mem_t1
+0x0733 mem_addr_value_end
+0x0736 mem_addr_iocap_end
+0x0745 mem_cy5_256// 1 byte
+0x0746 mem_cz_256// 32 bytes
+0x0746 mem_tmp0
+0x0746 mem_t0
+0x074e mem_tmp0a
+0x075e mem_t2
+0x0766 mem_k_256//32 bytes
+0x0776 mem_t3
+0x0786 mem_tmp1_256//32 bytes
+0x078e mem_t7
+0x07a6 mem_tmp5_256
+0x07c6 mem_tmp2_256
+0x07e6 mem_tmp3_256
+0x07e6 mem_t1_256
+0x0806 mem_tmp0_256
+0x0806 mem_t0_256
+0x0826 mem_t2_256
+0x0846 mem_t3_256
+0x0866 mem_t7_256
+0x0886 mem_p
+0x089e mem_a
+0x08b6 mem_b
+0x08ce mem_gx
+0x08e6 mem_gy
+0x08fe memh0
+0x091e mem_p_256
+0x093e mem_a_256
+0x095e mem_gx_256
+0x097e mem_gy_256
+0x099e mem_le_slat
+
+(
+0 PAIR_UNKNOWN
+1 PAIR_ING
+2 PAIR_DONE
+)
+
+(
+0x18 ATT_WRITE_REQUEST_HANDLE
+)
+
+(
+0x13	HANDLE_VOLUM_UP_KEY	
+0x17	HANDLE_ENTER_KEY
+)
+	
+(
+0x010210 param_smp_key_dist1
+0x010010 param_smp_key_dist2
+)
+
+(
+0 INITATOR_LTK
+1 INITATOR_IRK
+2 INITATOR_CSRK
+)
+
+(
+//100ms
+0x00a0	FAST_ADV_INTERVAL_VALUE
+//200ms
+0x0140	SLOW_ADV_INTERVAL_VALUE
+)
+
+(
+0x01	GAP_ADTYPE_FLAGS
+0x02	GAP_ADTYPE_16BIT_MORE
+0x03	GAP_ADTYPE_16BIT_COMPLETE
+0x04	GAP_ADTYPE_32BIT_MORE
+0x05	GAP_ADTYPE_32BIT_COMPLETE
+0x06	GAP_ADTYPE_128BIT_MORE
+0x07	GAP_ADTYPE_128BIT_COMPLETE
+0x08	GAP_ADTYPE_LOCAL_NAME_SHORT
+0x09	GAP_ADTYPE_LOCAL_NAME_COMPLETE
+0x0a	GAP_ADTYPE_POWER_LEVEL
+0xff	GAP_ADTYPE_MANUFACTURER_SPECIFIC
+)
+
+(
+0 ATT_BIT_NOTIFICATION
+1 ATT_BIT_INDICATION
+)
+///////////////////////////////////////////////////////////////////////////////////////
+(
+13 MAX_SHUTER_KEY_NUM
+4  MAX_SHUTTER_LED_NUM
+0xFF INVALID_PIN_NUM
+)
+(
+0 KEY_DEFAULT
+1 kEY_1
+2 kEY_2
+3 KEY_3
+4 KEY_4
+)
+(
+0 HARD_SWITCH
+1 SOFT_SWITCH
+)
+(
+0 LED_OFF
+1 LED_ON
+2 LED_BLINK
+0xFF LED_INVALID
+)
+
+/*struct led_style*/
+(
+7 LED_STYLE_STRUCT_LEN
+0 LED_TYPE_OFFSET
+1 LED_PIN_OFFSET
+2 LED_ON_TIME_OFFSET
+4 LED_OFF_TIME_OFFSET
+6 LED_BLINK_COUNT_OFFSET
+)
+
+/*struct key_conf*/
+(
+2 KEY_CONF_STRUCT_LEN
+0 KEY_PIN_OFFSET
+1 KEY_STYLE_IND_OFFSET
+)
+
+(
+0 SHUTTER_POWER_UP
+1 SHUTTER_POWER_ON
+2 SHUTTER_POWER_OFF
+)
+
+(
+0x5907 le_parse_att0
+0x5666 le_prepare_att0
+0x7c67 check_51cmd_once0
+)
+
+
+(
+0xf00 EEP_LAP_ADDR
+)
+
+(
+0x33 PAIRED_DEVICE_TYPE_BT
+0x44 PAIRED_DEVICE_TYPE_BLE
+5 PAIRED_DEVICE_DEFAULT_LEN
+0x5a5a PAIRED_DEVICE_MAGIC
+)
+
+(
+0 FLAG_SHUTTER_DEFAULT
+1 FLAG_SHUTTER_IPHONEKEY_SEND
+2 FLAG_SHUTTER_ANDROIDKEY_SEND
+)
+
+(
+0 FLAG_SHUTTER_IPHONEKEY_PRESS
+1 FLAG_SHUTTER_ANDROIDKEY_PRESS
+)
+
+(
+1  FLAG_SHUTTER_HID_DISCONN_TIMEOUT
+5 FLAG_SHUTTER_CABLE_UNPLUG_TIMEOUT
+)
+
+(
+1 FLAG_SHUTTER_1KEY
+2 FLAG_SHUTTER_2KEY
+)
+
+(
+0 FLAG_SHUTTER_1KEY_SEND_NULL
+1 FLAG_SHUTTER_1KEY_SEND_STEP1
+2 FLAG_SHUTTER_1KEY_SEND_STEP2
+3 FLAG_SHUTTER_1KEY_SEND_STEP3
+4 FLAG_SHUTTER_1KEY_SEND_STEP4
+)
+
+
+//mem_shutter_find_type_value_flag
+(
+0X00 LE_FIND_TYPE_VALUE_HID_BIT
+0X01 LE_FIND_TYPE_VALUE_BATTERY_BIT
+0X02 LE_FIND_TYPE_VALUE_DEVICE_INFO_BIT
+0x03 LE_FIND_TYPE_VALUE_GATT_BIT
+)
+
+(
+//20ms
+0x0020	FAST_ADV_INTERVAL_VALUE_PATCH
+)
+
+(
+50 TIMEOUT_DISCONNECT_TIMER
+)
+
+/* simple pairing page */
+
+0x09ae mem_sp_state_start
+0x09ae mem_sp_state
+0x09af mem_master_sp_state
+0x09b0 mem_sp_flag
+0x09b1 mem_master_sp_flag
+0x09b2 mem_sp_calc
+0x09b3 mem_sp_dh_ready
+0x09b4 mem_sp_localsm
+0x09b5 mem_pairing_auth
+0x09b6 mem_sp_flag_start
+0x09b6 mem_sp_local_key_send_count
+0x09b7 mem_sp_remote_key_recv_count
+0x09b8 mem_sp_remote_key_invalid
+0x09b9 mem_sp_dhkey_invalid
+0x09ba mem_gkey
+0x09be mem_le_pubkey_remote_x_256
+0x09c6 mem_sp_pubkey_remote
+0x09c6 mem_sp_pubkey_remote_x
+0x09de mem_sp_pubkey_remote_x_end
+0x09de mem_le_pubkey_remote_y_256
+0x09e6 mem_sp_pubkey_remote_y
+0x09fe mem_le_dhkey_256
+0x0a06 mem_sp_dhkey
+0x0a1e mem_sp_dhkey_end
+0x0a1e mem_sp_random_local
+0x0a2e mem_sp_random_local_end
+0x0a2e mem_sp_random_remote
+0x0a3e mem_sp_random_remote_end
+0x0a3e memresult
+0x0a3e mem_sp_calc_result
+0x0a3e memh
+0x0a42 memg
+0x0a46 memf
+0x0a4a meme
+0x0a4e mem_sp_calc_result_high
+0x0a4e memd
+0x0a52 memc
+0x0a56 memb
+0x0a5a mema
+0x0a5e mem_sp_check_result
+0x0a6e mem_sp_confirm_remote
+0x0a7e mem_sp_prarm_stack
+
+/* simple pairing status flag */
+(
+  0x00   SP_FLAG_STANDBY
+  0x01   SP_FLAG_COMMIT
+  0x02   LE_SP_FLAG_COMMIT_256
+
+)
+
+/* simple pairing calc flag */
+(
+  0x00   SP_CALC_STANDBY
+  0x01   SP_CALC_PUBKEY
+  0x02   SP_CALC_DHKEY
+  0x03   SP_CALC_PUBKEY_256
+  0x04   SP_CALC_DHKEY_256
+)
+
+/* simple pairing state */
+(
+  0x00   SP_STAT_NULL
+  0x01   SP_STAT_KEY_RECV
+  0x02   SP_STAT_KEY_GENERATE
+  0x03   SP_STAT_KEY_SEND
+  0x04   SP_STAT_COMMIT_CALC
+  0x05   SP_STAT_COMMIT_SEND
+  0x06   SP_STAT_RANDOM_RECV
+  0x07   SP_STAT_RANDOM_SEND
+  0x08   SP_STAT_CONFIRM_RECV
+  0x09   SP_STAT_CONFIRM_CHECK
+  0x0A   SP_STAT_CONFIRM_CALC
+  0x0B   SP_STAT_CONFIRM_SEND
+  0x0C   SP_STAT_LINK_KEY_CALC
+  0x0F   SP_STAT_DONE
+  0x10   SP_STAT_FEATURE_EXT_SEND
+  0x11   SP_STAT_GKEY_CALC
+  /*simple pairing master only*/
+  0x12   SP_MASTER_STAT_START_SKIP
+  0x13   SP_MASTER_STAT_START_DONE
+  0x14   SP_STAT_COMMITMENT_COMPARE
+  0x15   SP_STATE_END
+)
+
+
+/* simple paring invalid flag */
+(
+  0x00   SP_KEY_INVALID
+  0x01   SP_KEY_VALID
+  0x03   SP_KEY_VALID_256
+
+)
+
+/* encapsulated defination for P-192 key */
+(
+  0x01  ENCAPSULATED_MAJOR_TYPE_P192
+  0x01  ENCAPSULATED_MINOR_TYPE_P192
+  0x30  ENCAPSULATED_LEN_P192
+)
+
+/* bluetooth 2.1 support flag */
+(
+  0x00  SIMPLE_PAIRING_ENABLE
+  0x01  ENCRYPTION_PAUSE_ENABLE
+  0x02  EXTENDED_INQUIRY_RESPOSE_ENABLE
+  0x03  SNIFF_SUBRATING_ENABLE
+)
+
+/*mem_sp_localsm*/
+(
+  0x00 DEFAULT_STATEMACHINE
+  0x01 LOCAL_STATEMACHINE
+)
+
+(
+ 0x00 DEFALT_PAIRING_AUTH
+ 0x01 PAIRING_AUTH
+)
+
+(
+1 SSP_MODE_SSP_PIN_FLAG
+2 SSP_MODE_PASSKEY_ENTRY_FLAG
+3 SSP_MODE_JUST_WORK_FLAG
+)
+
+(//ssp mode
+0x040003 SSP_MODE_JUST_WORK_IO_CAP_DATA
+0X040001 SSP_MODE_SSP_PIN_IO_CAP_DATA
+0X040002 SSP_MODE_PASSKEY_IO_CAP_DATA
+)
+
+(
+0x00 DISPLAY_ONLY
+0x01 DISPLAY_YESNO
+0x02 KEYBOARD_ONLY
+0x03 NO_INPUT_NO_OUTPUT
+)
+
+(
+7 FLAG_MODE_SSP_PIN_REVICEVE_COMPARISON_BIT
+6 FLAG_MODE_SSP_PIN_RECIEVE_DHKEY_BIT
+0 FLAG_MODE_SSP_PIN_COMPARISON_RESULT_BIT
+)
+(
+1 FLAG_PAIRING_STATE_PAIRING
+0 FLAG_PAIRING_STATE_NOT_PAIRING
+)
+
+  
+/*****************************************************************************/
+/* RCS HEADER -- DO NOT ERASE                                                */
+/* $Author: Administrator $                                                           */
+/* $Id: bt_ui_format.upper,v 1.1 2009-09-28 04:06:17 Administrator Exp $     */
+/************************************************************************/
+
+
+	/* ========= memory ============== */
+0x0a8e mem_UI_data_txbuff_length
+0x0a90 mem_ipc_skip_continue_proc
+0x0a91 mem_ui_timer_temp//length 4
+0x0a91 mem_ipc_rega_temp
+
+/************/
+/* constant */
+/************/
+
+//mem_ui_state_map
+(
+0 UI_STATE_BT_CONNECTED
+1 UI_STATE_BT_SETUP_COMPLETE
+2 UI_STATE_BT_HID_CONN
+3 UI_STATE_BT_HID_HANDSHAKE
+4 UI_STATE_BT_SPP_CONN
+5 UI_STATE_BT_SNIFF
+6 UI_STATE_BT_DISCOVERY
+7 UI_STATE_BT_RECONNECT
+8 UI_STATE_BT_SLAVE_ROLE
+9 UI_STATE_BLE_CONNECTED
+10 UI_STATE_BLE_WRITE_RCV
+11 UI_STATE_BLE_ADV
+12 UI_STATE_BTN_DOWN
+13 UI_STATE_LED_BLINK
+14 UI_STATE_LED_ON
+)
+(
+0xFF LED_FLASH_INFINITE
+)
+
+(
+1 UI_STATE_SPP_NL_AUTO_DISCOVER
+
+)
+
+/* UI state for Headset (memui_HS_State) */ 
+   (
+    0 UI_HEADSET_DISCONNECT
+    1 UI_HEADSET_IDLE                   /* before the responsor HS receive SABM      */
+    2 UI_HEADSET_W4CONNECT
+    3 UI_HEADSET_RINGING
+    4 UI_HEADSET_CONNECTED
+    5 UI_HEADSET_PARING
+  )
+/* memui_BB_State */
+(
+  0 UI_BB_OFF
+  1 UI_BB_IDLE
+  2 UI_BB_DISCOVERY
+  3 UI_BB_CONNECTED_ACTIVE_NO_SCO
+  4 UI_BB_CONNECTED_ACTIVE_WITH_SCO
+  5 UI_BB_CONNECTED_ACTIVE_WAIT_SNIFF
+  6 UI_BB_CONNECTED_SNIFF
+  7 UI_BB_RECONNECT
+  8 UI_BB_CONNECTED_SNIFF_WITH_SCO
+)
+
+/************/
+/* flags    */
+/************/
+  
+/* memui_Misc_Flags */
+  (
+    5 NO_IDLE_TURN_OFF
+    7 ANSWER_RING_FLAG               /* 1 Answer,0 no*/
+  )
+
+/* mem_UI_SCH_Interface */
+  (
+    0  UI_HS_PAIRING 
+    2  UI_REQ_CLOSE_RFCOMM
+    3  UI_LINK_LOST
+    4  UI_REQ_OPEN_SCO
+    6  UI_REQ_CLOSE_SCO
+  )
+  
+/* memui_PassOverKey */
+  (
+    0  ANSWER_RING_BIT
+    0  AG_SEND_RING_BIT
+    1  VOL_UP_BIT
+    2  VOL_DOWN_BIT
+    3  INI_CALL_BIT
+    4  DAIL_LAST_CALL
+    5  END_CALL_BIT
+    6  NOKIA_VOICE_ACTIVE 
+    7  REJECT_CALL_BIT
+  )
+  
+/* memui_reconnect_mode */
+(
+  0 NO_RECONNECTION
+  1 RECONNECT_HID
+  2 RECONNECT_HF
+  3 RECONNECT_HS
+  4 RECONNECT_HID_HF
+  5 RECONNECT_HID_HS
+)
+/* memui_Commands */
+(
+0 BT_CMD_STANDBY
+1 BT_CMD_START_DISCOVERY
+2 BT_CMD_STOP_DISCOVERY
+3 BT_CMD_RECONNECT
+4 BT_CMD_DISCONNECT
+5 BT_CMD_ENTER_SNIFF
+6 BT_CMD_EXIT_SNIFF
+7 BT_CMD_ENTER_SNIFF_SUBRATING
+8 BT_CMD_EXIT_SNIFF_SUBRATING
+9 BT_CMD_SNIFF_TEST
+10 BT_CMD_SET_PIN_CODE
+11 BT_CMD_START_INQUIRY
+12 BT_CMD_STOP_INQUIRY
+13 BT_CMD_START_ADV
+14 BT_CMD_STOP_ADV
+15 BT_CMD_START_DIRECT_ADV
+16 BT_CMD_STOP_DIRECT_ADV
+17 BT_CMD_LE_DISCONNECT
+18 BT_CMD_LE_UPDATE_CONN
+19 BT_CMD_LED_OFF
+20 BT_CMD_LED_ON
+21 BT_CMD_LED_BLINK
+22 BT_CMD_LE_START_CONN
+23 BT_CMD_LE_START_SCAN
+24 BT_CMD_LE_STOP_SCAN
+25 BT_CMD_ENTER_HIBERNATE
+27 BT_CMD_LE_SMP_SECURITY_REQUEST
+28 BT_CMD_LE_START_WRITE
+29 BT_CMD_ROLE_SWITCH
+30 BT_CMD_BB_RECONN_CANCEL
+31 BT_CMD_STORE_RECONN_INFO_LE
+32 BT_CMD_STORE_RECONN_INFO_BT
+33 BT_CMD_DHKEY_NOT_ACCEPT
+34 BT_CMD_START_24G
+35 BT_CMD_STOP_24G
+36 BT_CMD_PAIR_24G
+)
+
+(
+0x00 BT_EVT_NULL
+0x01 BT_EVT_BB_CONNECTED
+0x02 BT_EVT_BB_DISCONNECTED
+0x03 BT_EVT_RECONN_STARTED
+0x04 BT_EVT_RECONN_FAILED
+0x05 BT_EVT_SETUP_COMPLETE
+0x06 BT_EVT_HID_CONNECTED
+0x07 BT_EVT_HID_DISCONNECTED
+0x08 BT_EVT_SPP_CONNECTED
+0x09 BT_EVT_SPP_DISCONNECTED
+0x0A BT_EVT_PINCODE_REQ
+0x0B BT_EVT_ENTER_SNIFF
+0x0C BT_EVT_EXIT_SNIFF
+0x0D BT_EVT_ENTER_SNIFF_SUB
+0x0E BT_EVT_EXIT_SNIFF_SUB
+0x0F BT_EVT_DISCOVERY_STOPED
+0x10 BT_EVT_BUTTON_LONG_PRESSED
+0x12 BT_EVT_HID_HANDSHAKE
+0X13 BT_EVT_RECONN_PAGE_TIMEOUT
+0x14 BT_EVT_LE_CONNECTED
+0X15 BT_EVT_LE_DISCONNECTED
+0x16 BT_EVT_ML2CAP_CONN_REFUSED
+0x17 BT_EVT_BUTTON_ENTER_HIBERNATE
+0x18 BT_EVT_LINKKEY_GENERATE
+0x19 BT_EVT_SWITCH_NOT_ACCEPT
+0x20 BT_EVT_SWITCH_ACCEPT
+0x21 BT_EVT_SNIFF_NOT_ACCEPT
+0x22 BT_EVT_SNIFF_ACCEPT
+0x23 BT_EVT_UNSNIFF_ACCEPT
+0x24 BT_EVT_UNSNIFF_NOT_ACCEPT
+0x25 BT_EVT_BUTTON_ADJUST_DPI
+0x26 BT_EVT_SEND_UNSNIFF_ACCEPT
+0x27 BT_EVT_VIRTUAL_CABLE_UNPLUG
+0x28 BT_EVT_LE_WRITE_REQUEST
+0x29 BT_EVT_LE_ENC_INFO
+0x2a BT_EVT_SWITCH_FAIL_MASTER
+0x2b BT_EVT_SWITCH_SUCCESS_MASTER
+0x2c BT_EVT_BUTTON_DOWN
+0x2d BT_EVT_BUTTON_UP
+0x2e BT_EVT_REMOTE_UNSNIFF
+0x30 BT_EVT_LE_PAIRING_FAIL
+0x31 BT_EVT_LE_PAIRING_SUCCESS
+0x32 BT_EVT_LE_START_ENC
+0X33 BT_EVT_LE_PAUSE_ENC
+0X34 BT_EVT_LE_TK_GENERATE
+0x35 BT_EVT_BT_GKEY_GENERATE
+0x36 BT_EVT_BT_GET_PASSKEY
+0x37 BT_EVT_BT_PAIRING_FAIL
+0x38 BT_EVT_BT_PAIRING_SUCCESS
+0x39 BT_EVT_24G_PAIRING_COMPLETE
+0x3a BT_EVT_24G_ATTEMPT_FAIL
+0x3b BT_EVT_LE_GKEY_GENERATE
+0x3c BT_EVT_24G_ATTEMPT_SUCCESS
+0x3d BT_EVT_STORE_NVRAM
+0x3e BT_EVT_LE_PAIRING_COMPLETE
+0x3F BT_EVT_LE_RECONNECT_COMPLETE
+0x40 BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP
+0x41 BT_EVT_LE_LTK_LOST
+
+0x50 BT_EVT_TIMER_INIT
+0xF0 BT_EVT_TIMER_MASK
+0x51 BT_EVT_TIMER_100MS
+0x52 BT_EVT_TIMER_200MS
+0x53 BT_EVT_TIMER_300MS
+0x54 BT_EVT_TIMER_400MS
+0x55 BT_EVT_TIMER_500MS
+0x56 BT_EVT_TIMER_600MS
+0x57 BT_EVT_TIMER_700MS
+0x58 BT_EVT_TIMER_800MS
+0x59 BT_EVT_TIMER_900MS
+0x5A BT_EVT_TIMER_1KMS
+0x5B BT_EVT_TIMER_1K1MS
+0x5C BT_EVT_TIMER_1K2MS
+0x5D BT_EVT_TIMER_1K3MS
+0x5E BT_EVT_TIMER_1K4MS
+0x5F BT_EVT_TIMER_1K5MS
+)
+//switch
+(
+0 OFF
+1 ON
+)
+/* memui_mem_lock */
+(
+    0 MEM_UNLOCK
+    1 MEM_LOCK
+)
+/* memui_flag0 */
+(
+    0 UI_USER_DATA_FLAG
+    1 UI_WII_WAITING_SLEEP
+    2 UI_KEYBOARD_SNIFF_SKIP
+)
+/* mem_master_type */
+(
+    0 MTYPE_HID_DEFAULT
+    1 MTYPE_HID_SSP
+    2 MTYPE_SPP
+)
+
+	(	
+	0x01 RECIEVE_SDP_CONN_RES
+	0x02 RECIEVE_SDP_CFG_REQ
+	0x03 RECIEVE_SDP_CFG_RES
+	0x04 RECIEVE_RFCOMM_CONN_RES
+	0x05 RECIEVE_RFCOMM_CFG_REQ
+	0x06 RECIEVE_RFCOMM_CFG_RES
+	0x07 RECIEVE_HID_CTRL_CONN_RES
+	0x08 RECIEVE_HID_CTRL_CFG_REQ
+	0x09 RECIEVE_HID_CTRL_CFG_RES
+	0x0A RECIEVE_HID_INT_CONN_RES
+	0x0B RECIEVE_HID_INT_CFG_REQ
+	0x0C RECIEVE_HID_INT_CFG_RES
+	0x0D RECIEVE_AVCTP_CONN_RES
+	0x0E RECIEVE_AVCTP_CFG_REQ
+	0x0F RECIEVE_AVCTP_CFG_RES
+	0x10 RECIEVE_AVDTP_SIGNAL_CONN_RES
+	0x11 RECIEVE_AVDTP_SIGNAL_CFG_REQ
+	0x12 RECIEVE_AVDTP_SIGNAL_CFG_RES
+	0x13 RECIEVE_AVDTP_MEDIA_CONN_RES
+	0x14 RECIEVE_AVDTP_MEDIA_CFG_REQ
+	0x15 RECIEVE_AVDTP_MEDIA_CFG_RES
+	0x16 RECIEVE_SS_REASULT_HS                  
+	0x17 RECIEVE_SS_REASULT_HF                  
+	0x18 RECIEVE_SS_REASULT_AVTARG		          
+	0x19 RECIEVE_SS_REASULT_OBEX		            
+	0x1A RECIEVE_DLCI0_UA
+	0x1B RECIEVE_HS_PARAM_NEG_RES
+	0x1C RECIEVE_HS_UA
+	0x1D RECIEVE_HS_MODEM_STATUS_RES
+	0x1E RECIEVE_HS_MODEm_STATUS_CMD
+	0x1F RECIEVE_HF_PARAM_NEG_RES   
+	0x20 RECIEVE_HF_UA              
+	0x21 RECIEVE_HF_MODEM_STATUS_RES
+	0x22 RECIEVE_HF_MODEm_STATUS_CMD 
+	0x23 RECIEVE_OBEX_PARAM_NEG_RES     
+	0x24 RECIEVE_OBEX_UA              
+	0x25 RECIEVE_OBEX_MODEM_STATUS_RES
+	0x26 RECIEVE_OBEX_MODEm_STATUS_CMD    
+	0x27 RECIEVE_SPP_PARAM_NEG_RES   
+	0x28 RECIEVE_SPP_UA              
+	0x29 RECIEVE_SPP_MODEM_STATUS_RES
+	0x2A RECIEVE_SPP_MODEm_STATUS_CMD
+	0x2b RECIEVE_SDP_DISCONN_RES
+	)
+
+
+
+	(
+	0 UPPERSM_RP_IDLE
+	1 UPPERSM_RP_SDP_CONN
+	2 UPPERSM_RP_SDP_CONN_WAIT
+	3 UPPERSM_RP_SDP_CFG
+	4 UPPERSM_RP_SDP_CFG_WAIT
+	5 UPPERSM_RP_SS_AVTARG
+	6 UPPERSM_RP_SS_AVTARG_WAIT
+	7 UPPERSM_RP_SS_OBEX
+	8 UPPERSM_RP_SS_OBEX_WAIT
+	9 UPPERSM_RP_SDP_DISCONN
+	10 UPPERSM_RP_SDP_DISCONN_WAIT
+	11 UPPERSM_RP_AVDTP_CONN_WAIT
+	12 UPPERSM_RP_AVCTP_CONN
+	13 UPPERSM_RP_AVCTP_CONN_WAIT
+	14 UPPERSM_RP_AVCTP_CFG
+	15 UPPERSM_RP_AVCTP_CFG_WAIT
+	16 UPPERSM_RP_OBEX_CMD_PN
+	17 UPPERSM_RP_OBEX_CMD_PN_WAIT
+	18 UPPERSM_RP_OBEX_SABM
+	19 UPPERSM_RP_OBEX_SABM_WAIT
+	20 UPPERSM_RP_OBEX_CMD_MS
+	21 UPPERSM_RP_OBEX_CMD_MS_WAIT
+	)
+	(		/*mem_upper_sm_reconn*/
+	0 UPPERSM_RECONN_IDLE		
+	1 UPPERSM_RECONN_SDP_CONN		
+	2 UPPERSM_RECONN_SDP_CONN_WAIT		
+	3 UPPERSM_RECONN_SDP_CFG		
+	4 UPPERSM_RECONN_SDP_CFG_WAIT		
+	5 UPPERSM_RECONN_SS_HS
+	6 UPPERSM_RECONN_SS_HS_WAIT
+	7 UPPERSM_RECONN_SS_HF
+	8 UPPERSM_RECONN_SS_HF_WAIT
+	9 UPPERSM_RECONN_SS_AVTARG		
+	10 UPPERSM_RECONN_SS_AVTARG_WAIT		    
+	11 UPPERSM_RECONN_SS_OBEX		            
+	12 UPPERSM_RECONN_SS_OBEX_WAIT		      
+	13 UPPERSM_RECONN_SDP_DISCONN		        
+	14 UPPERSM_RECONN_SDP_DISCONN_WAIT      
+	15 UPPERSM_RECONN_HID_CTRL_CONN		      
+	16 UPPERSM_RECONN_HID_CTRL_CONN_WAIT		
+	17 UPPERSM_RECONN_HID_CTRL_CFG		      
+	18 UPPERSM_RECONN_HID_CTRL_CFG_WAIT     
+	19 UPPERSM_RECONN_HID_INT_CONN		      
+	20 UPPERSM_RECONN_HID_INT_CONN_WAIT		  
+	21 UPPERSM_RECONN_HID_INT_CFG		        
+	22 UPPERSM_RECONN_HID_INT_CFG_WAIT      
+	23 UPPERSM_RECONN_RFCOMM_CONN		        
+	24 UPPERSM_RECONN_RFCOMM_CONN_WAIT		  
+	25 UPPERSM_RECONN_RFCOMM_CFG		        
+	26 UPPERSM_RECONN_RFCOMM_CFG_WAIT       
+	27 UPPERSM_RECONN_RFCOMM_SABM		        
+	28 UPPERSM_RECONN_RFCOMM_SABM_WAIT		  
+	29 UPPERSM_RECONN_SPP_CMD_PN		        
+	30 UPPERSM_RECONN_SPP_CMD_PN_WAIT		    
+	31 UPPERSM_RECONN_SPP_SABM		          
+	32 UPPERSM_RECONN_SPP_SABM_WAIT		      
+	33 UPPERSM_RECONN_SPP_CMD_MS		        
+	34 UPPERSM_RECONN_SPP_CMD_MS_WAIT       
+	35 UPPERSM_RECONN_HF_CMD_PN		          
+	36 UPPERSM_RECONN_HF_CMD_PN_WAIT		    
+	37 UPPERSM_RECONN_HF_SABM		            
+	38 UPPERSM_RECONN_HF_SABM_WAIT		      
+	39 UPPERSM_RECONN_HF_CMD_MS		          
+	40 UPPERSM_RECONN_HF_CMD_MS_WAIT        
+	41 UPPERSM_RECONN_AVDTPs_CONN		        
+	42 UPPERSM_RECONN_AVDTPs_CONN_WAIT		  
+	43 UPPERSM_RECONN_AVDTPs_CFG		        
+	44 UPPERSM_RECONN_AVDTPs_CFG_WAIT       
+	45 UPPERSM_RECONN_AVDTPm_CONN		        
+	46 UPPERSM_RECONN_AVDTPm_CONN_WAIT		  
+	47 UPPERSM_RECONN_AVDTPm_CFG		        
+	48 UPPERSM_RECONN_AVDTPm_CFG_WAIT       
+	49 UPPERSM_RECONN_AVCTP_CONN		        
+	50 UPPERSM_RECONN_AVCTP_CONN_WAIT		    
+	51 UPPERSM_RECONN_AVCTP_CFG		          
+	52 UPPERSM_RECONN_AVCTP_CFG_WAIT		    
+	53 UPPERSM_RECONN_OBEX_CMD_PN		        
+	54 UPPERSM_RECONN_OBEX_CMD_PN_WAIT		  
+	55 UPPERSM_RECONN_OBEX_SABM		          
+	56 UPPERSM_RECONN_OBEX_SABM_WAIT		    
+	57 UPPERSM_RECONN_OBEX_CMD_MS		        
+	58 UPPERSM_RECONN_OBEX_CMD_MS_WAIT     
+	59 UPPERSM_RECONN_SS_SPP
+	60 UPPERSM_RECONN_SS_SPP_WAIT
+	)
+	(/*mem_UI_profile_supported*/
+	0 support_HID
+	1 support_A2DP
+	2 support_AVRCP
+	3 support_HF
+	4 support_HS
+	5 support_PBAP
+	6 support_SPP
+	)
+	/*mem_upper_sm_ss*/
+	(
+	0 UPPERSM_SS_HS
+	1 UPPERSM_SS_HF
+	2 UPPERSM_SS_AVTARG
+	3 UPPERSM_SS_OBEX
+	)
+
+	(
+	160 UI_HUNDRED_MILLISECOND_TIME
+	0XFF UI_BUTTON_GPIO_DISABLE
+	)
+	(
+	0x01 UI_BB_INCONNECT
+	0x10 UI_BB_DISCONNECT
+	)
+(
+0x00 UI_BUTTON_STATE_DOWN
+0x01 UI_BUTTON_STATE_UP
+)
+
+//mem_ipc_skip_continue_proc
+(
+	0 IPC_CONTINUE_PROCESS
+	1 IPC_SKIP_CONTINUE_PROCESS
+)
+
+
+
+
+
+(
+0 LIGHT_GROUP0
+)
+
+(
+0 LIGHT_CMD_PWM0
+1 LIGHT_CMD_PWM1
+2 LIGHT_CMD_PWM2
+3 LIGHT_CMD_PWM3
+4 LIGHT_CMD_PWM4
+5 LIGHT_CMD_PWM5
+6 LIGHT_CMD_AUTO_MODE
+0xff LIGHT_CMD_PAIRING
+
+)
+
+
+
+
+
+//******mouse.format******//
+(
+//SPI GPIO 
+0x19 MOUSE_SPI1_CLK_GPIO
+0x1A MOUSE_SPI1_SDIO_GPIO
+0X1E MOUSE_SPI2_CLK_GPIO
+0X1F MOUSE_SPI2_SDIO_GPIO
+//combination
+0x01 MOUSE_L_BUTTON
+0X02 MOUSE_R_BUTTON
+0X04 MOUSE_M_BUTTON
+0X05 MOUSE_LM_BUTTON
+0X06 MOUSE_RM_BUTTON
+0X07 MOUSE_LMR_BUTTON
+//mouse default gpio
+0x1B MOUSE_DEFAULT_XA_GPIO
+0x1C MOUSE_DEFAULT_XB_GPIO
+
+//ui led blink
+0X00C8  LED_RECONNECT_BLINK //200
+0X0190  LED_DPI_BLINK //400
+0X03E8  LED_DPI_BLINK_FIXED    //1000
+0X03E8  LED_DISCOVERY_BLINK    //1000
+0XFF    LED_LONG_BLINK
+0x05	LED_SENSOR_BLINK_CNT
+//bt mode device number
+0x01 MODE_BT_DEVICE1
+0x02 MODE_BT_DEVICE2
+0x03 MODE_BT_DEVICE3
+0x02 MODE_24G_DEVICE
+//mouse  flag
+0X00 WRITE_REQ_ENABLE_FLAG
+0X01 LL_START_ENC_FLAG
+0X02 LL_PAIRING_SUCCESS_FLAG
+
+
+//mouse_function_flag
+0X04 MOUSE_FLAG_LEN
+//1byte
+0X00 MOUSE_SELECT_DEVICE_FLAG
+0X01 MOUSE_CPI_FLAG
+0X02 MOUSE_BT_CANNEL_RECONN_FLAG
+0X03 MOSUE_24G_PAIRING_FLAG
+0X04 MOUSE_LOW_VOLTAGE_FLAG
+0X05 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
+0X06 MOUSE_LONG_BT_BUTTON_FLAG
+0X07 MOUSE_STORE_EEPROM_FLAG
+0x08 MOUSE_STATUE_UP_FLAG
+0X09 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+
+
+//3byte
+0X10 MOUSE_ENABLE_USB
+0X11 MOUSE_ENABLE_24G
+0X12 MOUSE_ENABLE_SPI2
+0X13 MOUSE_ENABLE_FLASH
+0X14 MOUSE_ENABLE_EEPROM
+0X15 MOUSE_ENABLE_STATUE_UP_THREE_LED
+0X16 MOUSE_ENABLE_STATUE_UP
+0X17 MOUSE_ENABLE_DPI_LED_BLINK
+//4byte
+0X18 MOUSE_ENABLE_BLE_RANDOM_ADDRE
+0X19 MOUSE_ENABLE_2K_EEPROM
+0X1A MOUSE_ENABLE_ADC
+0X1B MOUSE_ENABLE_INIT_DELAY
+0X1C MOUSE_ENABLE_DISCOVERY_SENSOR_LED
+0X1D MOUSE_ENABLE_AUTO_24G_PARING
+0X1E MOUSE_ENABLE_WAKEUP_FROM_POWER
+0X1F MOUSE_ENABLE_GPIO_CONTROL_ADC_SENSOR
+
+
+
+//mouse dpi level
+0x00 MOUSE_DPI_LEVEL1
+0x01 MOUSE_DPI_LEVEL2
+0x02 MOUSE_DPI_LEVEL3
+0x03 MOUSE_DPI_LEVEL4
+
+
+//mouse sensor angle
+0x00 MOUSE_6CLK_ANGLE
+0X01 MOUSE_9CLK_ANGLE
+0X02 MOUSE_12CLK_ANGLE
+0X03 MOUSE_3CLK_ANGLE
+
+
+//mem_config_function_enable
+0 ENABLE_BT_DISCOVERY_BY_GPIO_LED
+1 ENABLE_MODE_LED
+2 ENABLE_LOW_VOLTAGE_LED
+3 ENABLE_DEVICE_LED
+4 ENABLE_BT_BUTTON
+5 ENABLE_SELECT_DEVICE_BY_GPIO_BUTTON
+6 ENABLE_SELECT_DEVICE_BY_SWITCH
+7 ENABLE_SENSOR_MOTION_PIN
+
+
+0xFF GPIO_DISABLE
+
+
+//DPI button state 
+0x00 DPI_BUTTON_STATE_DOWN
+0x01 DPI_BUTTON_STATE_UP
+
+
+//eeprom address offect
+0X00 MOUSE_INFO_EEPROM_OFFECT
+0X5A MOUSE_DPI_EEPROM_OFFECT	//1byte
+0X5B MOUSE_G24_ADDR_EEPROM_OFFECT	//4bytes
+0X5F MOUSE_RANDOM_ADDR_COUNT_EEPROM_OFFSET	//2bytes
+0X61 MOUSE_DEVICE_MODE_EEPROM_OFFSET	//1byte	
+0X62 MOUSE_EEPROM_MODULE_INIT_FLAG		//eeprom_module_init_flag 2bytes
+0X64 MOUSE_FAST_CONN_FLAG_OFFSET	//1byte
+
+
+// Sensor id number
+0x30 P32XX_ID1
+0x31 P3065_ID1
+0x3E P3610_ID1
+0x02 P3212_ID2
+0xD1 P3205_TJ3T_ID2
+0XD2 P3204_TJ3L_ID2
+0x54 PKA8_ID2
+0x70 P3065_XY_ID2
+0xD8 P8009_ID2
+
+
+//Sensor type
+0X00 P3205
+0X01 P3065
+0X02 KA8
+0X03 P3204
+0X04 P3212
+0X05 P3610
+0X06 P3065_XY
+0x07 P8009
+
+
+//p3610 smart enable flag
+0X00 P3610_SMART_ENABLE
+0X01 P3610_SMART_DISABLE
+
+
+//SENSOR REG
+0x00 PAN_REG_PID_L
+0x01 PAN_REG_PID_H
+0x02 PAN_REG_MOTION_STAUS
+0x03 PAN_REG_DELTA_X
+0x04 PAN_REG_DELTA_Y
+0x05 PAN_REG_OPRATION_MODE
+0x06 PAN_REG_CONFIG
+0x07 PAN_REG_IMAGE_QUALITY
+0x08 PAN_REG_OPRATION_STATE
+0x09 PAN_REG_WRITE_PROTECT
+0x0A PAN_REG_SLEEP_1
+0x0B PAN_REG_ENTER_TIME
+0x0C PAN_REG_SLEEP_2
+0x0D PAN_REG_IMAGE_THRESHOLD
+0x0E PAN_REG_IMAGE_RECGNITION
+
+
+0x06 MOUSE_DPI_ADDRESS
+0x05 MOUSE_P3610_DPI_ADDRESS
+0x0D MOUSE_P3212_DPI_XADDRESS
+0x0E MOUSE_P3212_DPI_YADDRESS
+
+
+0x06 MOUSE_FPGA_RF_WORK_DEBUG_GPIO
+0x02 MOUSE_FPGA_DEBUG_GPIO
+
+)
+
+(
+0x01 ADV_FLAG_LIMITED_DISCOVERABLE
+0x04 ADV_FLAG_BREDR_NOT_SUPPORTED
+)
+
+(
+4 TEST_GPIO
+)
+
+(
+1 LE_LPM_DISABLE
+0 LE_LPM_ENABLE
+
+12 LE_INTERVAL_15MS
+9 LE_INTERVAL_11_25MS//11.25ms
+7 LE_INTERVAL_8_75MS//8.75ms
+)
+
+(
+0xb9 FLASH_COMMAND_DEEP_POWER_DOWN
+0xab FLASH_COMMAND_RELEASE_DEEP_POWER_DOWN
+)
+
+(
+0 MULTI_LED_ON
+1 MULTI_LED_BLINK
+)
+
+(
+0 DIS_BUTTON_UP
+1 DIS_BT_BUTTON
+2 DIS_COMM_BUTTON
+)
+
+(
+0x017700 G24_LONG_SLEEP_STEP1	//8ms
+0x36ee80 G24_LONG_SLEEP_STEP2	//200ms
+0x604800 G24_LONG_SLEEP_STEP3	//500ms
+)
+
+(
+8 LOW_VOLTAGE_LED_COUNT
+)
+
+(
+0x0708 BLE_DIRECT_ADV_TIMEOUT
+0x0a BLE_POWERON_RECONN_TIMER
+)
+
+//******g24.format******//
+(
+3 QUEUE_ELE_COUNT
+32 QUEUE_ELE_LENGTH
+)
+
+(
+3 retry_24g
+1 NO_ACK_24G
+0 WITH_ACK_24G
+
+0 ENSURE_OFF_24G
+1 ENSURE_ON_24G
+
+0x10 ABORT_DATA
+0x40 RSSI_SENSITIVITY
+
+0x4e G24_PAIR_CH
+)
+
+(
+0 disable_24g
+1 tx_24g
+2 rx_24g
+
+0 bit_ack_24g
+)
+
+//mem_24g_interrupt
+(
+0 rx_dr
+1 rx_sync
+4 tx_ds
+5 tx_fail
+)
+
+//mem_24g_data_type
+(
+0x07 bits_data
+//0-2 data type
+3 bit_abort
+4 bit_hop
+5 bit_sync
+//6-7 channel offset
+)
+
+(
+0 STATE_24G_STOP
+0 STATE_24G_START
+1 STATE_24G_PAIR
+2 STATE_24G_RECONN
+)
+
+//mem_24g_pairing_sm
+(
+0 STATE_24G_PAIRING_NULL
+1 STATE_24G_PAIRING_1
+2 STATE_24G_PAIRING_2
+3 STATE_24G_PAIRING_3
+0X11 STATE_24G_PAIRING_1_WAITING_ACK
+0X12 STATE_24G_PAIRING_2_WAITING_ACK
+0X13 STATE_24G_PAIRING_3_WAITING_ACK
+0XFF STATE_24G_PAIRING_SUCCESS
+)
+
+(
+0 DONGLE_WORK	   		//connect mode normal
+1 DONGLE_BIND			//code pair mode
+2 DONGLE_TEST			//test mode
+3 DONGLE_CODE			//PC_application
+4 DONGLE_PCBA			//PCBA_TEST
+5 DONGLE_DEBUG
+6 DONGLE_MODE_MAX
+7 DONGLE_SEARCH
+0 CLEAR_INIT
+)
+
+(
+0x01 DATATYPE_MOUSE	//mouse
+0x02 DATATYPE_KEYBOARD	//keyboard
+0xAA DATATYPE_BIND		//bind step 1
+0x55 DATATYPE_CONFIG	//bind step 2
+0x22 DATATYPE_OK	//bind step 3
+
+0x01 BIND_MOUSE
+0x02 BIND_KEYBOARD
+)
+
+(
+112 G24_DONGLE_ADDR
+)
+
+(
+0xa0 COMMAND_MODE     //BYTE 0
+0X81 COM_MODE_BIND	//BYTE 1
+0X82 COM_MODE_TEST	//BYTE 1
+)
+(
+0xa1 COMMAND_BIND		//BYTE 0
+0X01 COM_BIND_GET		//1
+0X84 COM_BIND_EXIT		//1
+0XA7 COM_READ_MODE	//1
+)
+(
+0xa2 COMMAND_TEST	//BYTE 0
+0X81 COM_TEST_SC		//	进入单载波
+0x82 COM_TEST_CD		// fcc测试
+0x83 COM_TEST_DAT		// 数据测试
+0X84 COM_TEST_LOW_CH  //低频点
+0X85 COM_TEST_MID_CH	//中频点
+0X86 COM_TEST_HIG_CH	//高频点
+0X87 COM_TEST_SW_HIG	//自动切换频点为高 1mhz
+0X88 COIM_TEST_SW_LOW	//自动切换频点为低 1mhz
+0X89 COM_TEST_SW_STOP	//停止自动切换频点
+0X8A COM_TEST_POW_5		//设置输出功率5dbm
+0X8B COM_TEST_POW_0		//0dbm
+0X8C COM_TEST_POW_N5		//-5dbm
+0X8D COM_TEST_POW_N10		//-10dbm
+0X8E COM_TEST_EXIT			//退出测试模式
+)
+(
+0xa6 COMMAND_CURRENT_PROJECT
+0xa7 COMMAND_CURRENT_MODE
+0xa9 COMMAND_CURRENT_FW_VERSION
+)
+
+//user defined cmd
+(
+0xb0 COMMAND_USER_DEFINED
+)
+
+(
+0x15 PRODUCT_ID
+0 FW_VERSION0
+0 FW_VERSION1
+1 FW_VERSION2
+7 FW_VERSION3
+)
+
+(
+8 TIMER_NODATA
+640 TIMER_NODATA_DELAY	//200ms
+
+11 TIMER_MS_BLANK
+320 TIMER_MS_BLANK_DELAY
+
+12 TIMER_KB_MUL_BLANK
+320 TIMER_KB_MUL_BLANK_DELAY
+
+14 TIMER_KB_BLANK
+320 TIMER_KB_BLANK_DELAY
+)
+
+(
+11 TIMER_NEW_MS_BLANK
+384 TIMER_NEW_MS_BLANK_DELAY
+
+12 TIMER_NEW_KB_MUL_BLANK
+384 TIMER_NEW_KB_MUL_BLANK_DELAY
+
+14 TIMER_NEW_KB_BLANK
+384 TIMER_NEW_KB_BLANK_DELAY
+)
+
+(
+0 KB_NORMAL_REPORT_ID
+1 MS_REPORT_ID
+3 KB_MULTIKEY_REPORT_ID
+)
+
+(
+7 RSSI_BUF_LEN_SIGNAL
+255 RSSI_BUF_LEN_NOISE
+0x50 RSSI_THRESH_NOISE
+
+0x77 RSSI_DIS_MIN_24G
+0x82 RSSI_DIS_MAX_24G
+
+0x75 RSSI_DIS_MIN_BLE
+0x80 RSSI_DIS_MAX_BLE
+)
+
+(
+//power control
+0x01 TXPWR_0DB
+0x02 TXPWR_3DB
+0x04 TXPWR_5DB
+0x10 TXPWR_f5DB
+
+124 POWER_CTRL_MAX_PACKET_CNT
+
+2 POWER_CTRL_LOSSPAC_THRESH_UP0
+0 POWER_CTRL_LOSSPAC_THRESH_DOWN0
+0x20 POWER_CTRL_RSSI_THRESH_DOWN0
+
+5 POWER_CTRL_LOSSPAC_THRESH_UP1
+0 POWER_CTRL_LOSSPAC_THRESH_DOWN1
+0x60 POWER_CTRL_RSSI_THRESH_DOWN1
+
+10 POWER_CTRL_LOSSPAC_THRESH_UP2
+0 POWER_CTRL_LOSSPAC_THRESH_DOWN2
+0x80 POWER_CTRL_RSSI_THRESH_DOWN2
+)
+
+//mem_send_data_24g_short_lpm
+(
+0 SHORT_LPM_STATE_POLLING 	
+1 SHORT_LPM_STATE_DATA
+2 SHORT_LPM_STATE_NODATA
+3 SHORT_LPM_STATE_BUTTON_WHEEL
+)
+
+(
+81000 G24_8125_INTERVAL_PARAM
+78000 G24_78125_INTERVAL_PARAM
+)
+
+(
+5 G24_WORK_MODE_DELAY
+7 G24_BIND_MODE_DELAY
+)
+
+(
+1 G24_TX_TIMER_INT_ENABLE
+0 G24_TX_TIMER_INT_DISABLE
+)
+
+(
+0 G24_DISCONN_STATE
+1 G24_CONN_STATE
+
+
+4 G24_CH_NUMBER
+8 G24_CH_POLL_COUNT
+0x32 G24_DISCONN_NODATA_TIMER
+)
+
+
+/**
+*  @file:bt_utility_format.upper
+*  @author: lei.zhu
+*  utility header file. inlcude timer
+*  Copyright:  (C)Hanlynn Technology    
+*/
+
+0x0a95 mem_hold_contr
+0x0a97 mem_hold_contw
+0x0a99 mem_fifo_temp
+0x0a9a mem_pdatatemp
+0x0aa2 mem_temp//8 bytes
+0x0aaa mem_timeup// 4 bytes
+0x0aae mem_rega//4 bytes
+0x0ab2 mem_regb//4 bytes
+0x0ab6 mem_regc//3 bytes
+0x0ab9 mem_contr//2 bytes
+0x0abb mem_contw//2 bytes
+0x0abd mem_wakup_from_power_flag
+0x0abe mem_saved_gpio_in
+0x0ac2 mem_shutter_random_mac_data_temp
+0x0ac2 mem_shutter_config_data_temp
+0x0ac2 mem_le_adv_channel_map_temp
+0x0ac2 mem_le_data_len_temp//1byte
+0x0ac2 mem_tx_fifo_map_temp
+0x0ac2 mem_rpn_dlci//1byte
+0x0ac2 mem_event_cmd_response_content//2byte
+0x0ac2 mem_le_prand//16byte
+0x0ac2 mem_AES_CMAC_k//16 bytes
+0x0ac2 mem_regext_index//1 bytes
+0x0ac2 mem_temp_block0
+0x0ac3 mem_le_data_temp//15bytes
+0x0ac3 mem_temp_block1
+0x0ad2 mem_le_aes_128//16byte
+0x0ad2 mem_regext//64 bytes
+0x0ad2 mem_AES_CMAC_k1//16 bytes
+0x0ad2 mem_temp_block2
+0x0ae2 mem_AES_CMAC_k2//16 bytes
+0x0ae2 mem_temp_block3
+0x0af2 mem_AES_CMAC_temp// 16 bytes
+0x0af2 mem_temp_block4
+0x0b02 mem_AES_CMAC_M_last// 16 bytes
+0x0b02 mem_module_uart_cmd
+0x0b03 mem_module_uart_opcode
+0x0b04 mem_module_uart_len
+0x0b05 mem_module_temp_nl_discard_packet
+0x0b06 mem_temp_block5
+0x0b12 mem_le_mackey//16 bytes
+0x0b12 mem_app_receive_temp
+0x0b12 mem_key_value_temp
+0x0b14 mem_key_value
+0x0b16 mem_key_value_temp1
+0x0b17 mem_key_value_temp2
+0x0b18 mem_key_value_temp3
+0x0b19 mem_key_value_temp4
+0x0b1a mem_key_value_temp5
+0x0b1b mem_key_value_temp6
+0x0b1c mem_temp_block6
+0x0b22 mem_usb_status
+0x0b23 mem_usb_fifo_empty
+0x0b24 mem_usb_read_len
+0x0b25 mem_usb_rxbuf
+0x0b65 mem_bufptr
+0x0b67 mem_remain
+0x0b68 mem_devicedesc
+0x0b7c mem_hidreportdesc_kb
+0x0b7e mem_hidreportdesc_m
+0x0b80 mem_confdesc
+0x0be4 mem_string0
+0x0be9 mem_string1
+0x0c07 mem_string2
+0x0c47 mem_string3
+0x0c65 mem_usb_zero_packet
+0x0c67 mem_usb_ones_packet
+0x0c69 mem_usb_two_packet
+0x0c6b mem_usb0_state
+0x0c6c mem_usb_offline_check_gpio
+0x0c6d mem_usb_tx_interval
+0x0c6e mem_usb_clear_mem_start
+0x0c6e mem_usb_setup
+0x0c6e mem_usb_setup_bmRequestType
+0x0c6f mem_usb_setup_bRequest
+0x0c70 mem_usb_setup_bValue
+0x0c71 mem_usb_setup_bValueH
+0x0c72 mem_usb_setup_wIndex
+0x0c74 mem_usb_setup_bLength
+0x0c75 mem_usb_setup_bLengthH
+0x0c76 mem_usb0_setup
+0x0cb6 mem_usb0_set_report_data
+0x0cf6 mem_usb0_get_report_data
+0x0d36 mem_usb_state
+0x0d37 mem_usb_tx_wait
+0x0d38 mem_usb_tx_enable
+0x0d39 mem_usb_remote_wakeup
+0x0d3a mem_usb_clear_remote_wakeup
+0x0d3b mem_usb_ep0_stall_status
+0x0d3c mem_usb_ep1_stall_status
+0x0d3d mem_usb_ep2_stall_status
+0x0d3e mem_usb_ep3_stall_status
+0x0d3f mem_dsc_info_data_pointer
+0x0d41 mem_dsc_info_len
+0x0d42 mem_usb0_data_ready_report
+0x0d43 mem_usb_tx_win_enable
+0x0d44 mem_usb_tx_mac_enable
+0x0d45 mem_usb_device_enumeration_endflag
+0x0d46 mem_usb_wakestate_onetime_flag
+0x0d47 mem_usb_mac_wakeup_trig
+0x0d48 mem_usb_set_high_addr_flag
+0x0d49 mem_usb_set_protocol_value
+0x0d4a mem_usb_set_protocol_status
+0x0d4b mem_usb_get_protocol_flag
+0x0d4c mem_usb_idle_flag
+0x0d4d mem_usb_idle_rate
+0x0d4e mem_usb_setup_bValue_temp
+0x0d50 mem_usb0_get_set_report
+0x0d51 mem_usb_ep1_data
+0x0d52 mem_usb_ep2_data
+0x0d53 mem_usb_clear_halt
+0x0d54 mem_usb_mouse_data
+0x0d64 mem_usb_kb_data
+0x0d74 mem_usb_kb_multikey
+0x0d84 mem_usb_kb_data_sta_data
+0x0d8c mem_usb_kb_data_last_data
+0x0d94 mem_usb_kb_multikey_sta_data
+0x0d97 mem_usb_kb_multikey_last_data
+0x0d9a mem_usb_kb_blank_data_enable
+0x0d9b mem_usb_kb_mul_blank_data_enable
+0x0d9c mem_usb_test_cnt
+0x0d9d mem_usb_clear_mem_end
+0x0d9d mem_usb_test_kb
+0x0d9e mem_rssi_noise_buffer
+0x0e9e mem_rssi_noise_dg_buffer
+0x0f9e mem_rssi_noise_ms_buffer
+0x109e mem_rssi_noise_kb_buffer
+0x119e mem_24g_common_temp
+0x11be mem_usb_new_vid_pid_value
+0x11c7 mem_dongle_kb_bind_flag
+0x11c8 mem_hidreportdesc_kb_temp
+0x1290 mem_hidreportdesc_m_temp
+0x1358 mem_hidreportdesc_kb_new_temp
+0x13bc mem_usb_kb_system
+0x13cc mem_usb_kb_system_sta_data
+0x13cf mem_usb_kb_system_last_data
+0x13d2 mem_firmware_version
+
+
+(
+/*mem_util_timer_flag0_7*/
+    0   UTIL_TIMER_0_USED
+    1   UTIL_TIMER_1_USED
+    2   UTIL_TIMER_2_USED
+    3   UTIL_TIMER_3_USED
+    4   UTIL_TIMER_4_USED
+    5   UTIL_TIMER_5_USED
+    6   UTIL_TIMER_6_USED
+    7   UTIL_TIMER_7_USED
+/*mem_util_timer_flag8_15*/
+    0   UTIL_TIMER_8_USED
+    1   UTIL_TIMER_9_USED
+    2   UTIL_TIMER_10_USED
+    3   UTIL_TIMER_11_USED
+    4   UTIL_TIMER_12_USED
+    5   UTIL_TIMER_13_USED
+    6   UTIL_TIMER_14_USED
+    7   UTIL_TIMER_15_USED
+)
+
+//util fifo param
+(
+
+8 UTIL_FIFO_LEN
+-1 UTIL_FIFO_OFFSET
+)
+
+(
+	0xAA DEBUGLOG_HEAD
+	0x00 DEBUGLOG_TYPE
+	0x04 DEBUGLOG_LEN
+	0xBB DEBUGLOG_TAIL
+)
+
+(
+	0x1000 DEBUGLOG_DTYPE_CALLBACK
+	0x1001 DEBUGLOG_DTYPE_EVENT
+	0x1002 DEBUGLOG_DTYPE_CMD
+	0x1003 DEBUGLOG_DTYPE_STATUS
+	0x1004 DEBUGLOG_DTYPE_MISC
+	0x1005 DEBUGLOG_DTYPE_CONN_SM
+	0x1006 DEBUGLOG_DTYPE_UPPER_SM
+	0x1007 DEBUGLOG_DTYPE_PARSE_LMP
+	0x1008 DEBUGLOG_DTYPE_SEND_LMP
+)
+
+//DEBUGLOG_DTYPE_CALLBACK
+(
+	0x0000 CALLBACK_24G_DATA
+	0x0001 CALLBACK_LE_PROCESS
+	0x0002 CALLBACK_BT_PROCESS
+	0x0003 CALLBACK_BEFORE_LPM
+	0x0004 CALLBACK_BB_EVENT_PROCESS
+	0x0005 CALLBACK_IDLE_PROCESS
+	0x0006 CALLBACK_BEFORE_HIBERNATE
+	0x0007 CALLBACK_ATT_WRITE
+	0x0008 CALLBACK_EVENT_TIMER
+)
+
+//DEBUGLOG_DTYPE_EVENT
+//(
+
+//)
+
+//DEBUGLOG_DTYPE_CMD
+//(
+
+//)
+
+//DEBUGLOG_DTYPE_STATUS
+(
+	0x0000 STATUS_CODE_WAKE
+	0x0001 STATUS_LPM_WAKE
+	0x0004 STATUS_24G_START 
+)
+//DEBUG_DTYPE_MISC
+(
+	0x0000 MISC_LE_RETRANSMIT
+	0x0001 MISC_LOST_MOUSEDATA
+	0x0002 MISC_TXPOWER_0
+	0x0003 MISC_TXPOWER_1
+	0x0004 MISC_TXPOWER_2
+	0x0006 MISC_PULL_MOUSEDATA
+	0x0007 MISC_PUSH_MOUSEDATA
+	0x0008 MISC_LE_RETRANSMIT_MD
+
+
+)
+
+
+/************************************************************************/
+/* RCS HEADER -- DO NOT ERASE                                           */
+/* $Author: Administrator $                                                     */
+/* $Id: bt_var.osi,v 1.1 2009-09-28 04:06:18 Administrator Exp $   */
+/* Orisil Technology                                                 */
+/************************************************************************/
+
+
+/* packet types */
+(
+  0x02 FHS_PACKET 
+  0x03 DM1_PACKET 
+  0x03 DM1_LMP_PACKET 
+  0x04 DH1_PACKET 
+  0x05 HV1_PACKET 
+  0x06 HV2_PACKET 
+  0x07 HV3_PACKET 
+  0x08 DV_PACKET 
+  0x09 AUX1_PACKET 
+  0x0a DM3_PACKET 
+  0x0b DH3_PACKET 
+  0x0e DM5_PACKET 
+  0x0f DH5_PACKET 
+)
+
+
+/* mem_lmp_respond */
+(
+  0 RESPOND_TO_ALL
+  1 PASS_EVERYTHING
+  2 PASS_ONLY_UNKNOWNS
+  3 RESPOND_TO_LMPS
+)
+/* SCO algorithm defines */
+(
+  0 ULAW
+  1 ALAW
+  2 CVSD
+)
+/* encryption modes */
+(
+  0 NO_ENCRYPTION
+  1 PT_PT_ENCRYPTION
+  2 PT_BROADCAST_ENCRYPTION
+)
+
+/* bits used in mem_lmp_state1 variable */
+(
+  0 LMP_STATE_DETACH
+  1 LMP_STATE_HOLD
+  2 LMP_STATE_SNIFF
+  3 LMP_STATE_PARK
+  4 LMP_STATE_WAIT_SCO_CREATE
+  5 LMP_STATE_WAIT_SCO_KILL
+  6 LMP_STATE_SCO3
+  7 LMP_STATE_WAIT_SCO_START
+)
+/* mem_lmp_state2 */
+(
+  0 LMP_WAIT_FOR_SNIFF_ACCEPT
+  1 LMP_WAIT_FOR_PARK_ACCEPT
+  2 LMP_SEND_UNPARK_ACCEPTED
+  3 LMP_SEND_ENCRYPTION_START
+  4 LMP_SEND_ENCRYPTION_STOP
+  5 MESSAGE_QUEUE
+  7 LMP_STATE_WAIT_BEACON
+)
+/* mem_lmp_state3 */
+(
+ 0 INQUIRY_STATE_CHECK
+ 1 HOST_DELAY_MESSAGE
+ 2 VARIABLE_DELAY
+ 3 TEST_MODE_START_LOOPBACK
+ 4 TEST_MODE_START_PATTERN
+ 5 PARSE_TEST_CONTROL_MESSAGE
+ 6 H_AUTH_SEND_COMB_KEY
+)
+/* mem_rx_status */
+(
+  0 FROM_MASTER
+)
+/* mem_ms_flag */
+(
+  0 MS_RECEIVE_SWITCH_REQ
+  1 MS_SEND_SETUP_COMPLATE
+)
+/* mem_conn_sm */
+(
+  0 CONN_SM_STANDBY
+  1 CONN_SM_WAIT_PAGE
+  2 CONN_SM_SEND_FEATURES
+  3 CONN_SM_WAIT_FEATURES_RES
+  4 CONN_SM_SEND_CONN_REQ
+  5 CONN_SM_WAIT_CONN_ACCEPT
+  6 CONN_SM_AUTH_PAIR
+  7 CONN_SM_AUTH_PAIR_WAIT
+  8 CONN_SM_WAIT_MUTAL_AUTH
+  9 CONN_SM_ENCRYPT
+  0xa CONN_SM_ENCRYPT_WAIT
+  0xb CONN_SM_ENCRYPT_WAIT_CLEAR
+  0xc CONN_SM_SEND_SETUP_COMPLETE
+  0xd CONN_SM_WAIT_SETUP_COMPLETE 
+  0xe CONN_SM_SEND_SWITCH
+  0xf CONN_SM_DETACH_DELAY
+  0x10 CONN_SM_WAIT_SWITCH_AFTER_HOST_CONNECTION
+  0x11 CONN_SM_DELAY_RESTART_CONNECTION
+  0x12 CONN_SM_SEND_VERSION
+  0X13 CONN_SM_WAIT_VERSION
+  0x14 CONN_SM_SEND_FEATURES_EXT
+  0x15 CONN_SM_WAIT_FEATURES_EXT
+  0x16 CONN_SM_PAIRING
+  0x17 CONN_SM_AUTH
+  0x18 CONN_SM_PAIRING_WAIT
+  0x19 CONN_SM_AUTH_WAIT
+  0x1a CONN_SM_DONE
+  0x1b CONN_SM_WAIT_DONE
+)
+
+/* btStateConn1 */
+(
+  0 CONN_STANDBY
+  1 CONN_MASTER_SEND_CONN_REQ
+  2 CONN_MASTER_WAIT_FOR_CONN_ACCEPTED
+  3 CONN_MASTER_AUTH
+  4 CONN_MASTER_WAIT_FOR_FEATURES
+  5 CONN_MASTER_WAIT_FOR_SETUP_COMPLETE
+  6 CONN_MASTER_WAIT_FOR_MAX_SLOT
+  7 CONN_SLAVE_CONN_REQUESTED
+  8 CONN_SLAVE_WAIT_FOR_SETUP_COMPLETE
+  9 CONN_SLAVE_AUTH
+  10 CONN_USING_HOST_OPCODE
+  11 CONN_SLAVE_AUTH_WAIT
+  12 CONN_SLAVE_ENCRYPT_WAIT
+)
+
+/* mem_lmp_conn_state */
+(
+  0 RECEIVED_CONN_REQ
+  1 SENT_CONN_REQ
+  2 RECEIVED_SETUP_COMPLETE
+  3 SENT_SETUP_COMPLETE
+  4 HOST_CONNECTION_MADE
+  6 INIT_COMPLETE
+  7 SNIFF_NEGOTIATE
+)
+/* btStateAuth1 */
+(
+  0 WAIT_FOR_KINIT
+  1 WAIT_FOR_LKA
+  2 WAIT_FOR_LKB
+  3 WAIT_FOR_SRES
+  4 EXAMINE_RECEIVED_SRES
+  5 SEND_AU_RAND
+  6 WAIT_FOR_KC
+  7 DELAYED_ENCRYPT_RESPONSE
+)
+/* btStateAuth2 */
+(
+  0 SENT_SRES
+  1 RECEIVED_IN_RAND
+  2 SENT_AU_RAND
+  3 AUTHENTICATION_FAILED
+  4 AUTHENTICATION_PASSED
+  5 STARTED_AUTH
+  6 SENT_COMB_KEY
+  7 SENT_IN_RAND
+)
+/* btStateAuth3 */
+(
+  0 RECEIVED_AU_RAND
+  1 RECEIVED_SRES
+  2 MUTUALLY_AUTHENTICATE
+)
+/* btStateHost */
+(
+  0 H_AUTH_STARTED
+  2 H_ENCRYPTION_MODE_REQ_PT
+  3 H_ENCRYPTION_KEY_SIZE
+  4 H_ENCRYPTION_START
+  5 H_ENCRYPTION_STOP
+  6 H_AUTH_SECOND_TRY
+)
+/* btStateEncrypt2 */
+(
+  0 RECEIVED_ENCRYPT_MODE_REQ_PT
+  1 RECEIVED_ENCRYPT_KEY_SIZE
+  2 RECEIVED_ENCRYPT_START
+  3 RECEIVED_ENCRYPT_STOP
+  4 STARTED_ENCRYPT_START
+)
+/* mem_ms_state */
+(
+  0x00 MS_STANDBY
+  0x11 M_MINIT_1
+  0x12 M_MINIT_2
+  0x20 M_SINIT_0
+  0x30 S_MINIT_0
+  0x31 S_MINIT_1
+  0x32 S_MINIT_2
+  0x41 S_SINIT_1
+  0x42 S_SINIT_2
+  0x43 S_SINIT_3
+)
+/* mem_test_mode */
+(
+  0 TEST_MODE_ALLOWED
+  1 TEST_MODE_ACTIVE
+)
+/* values for mem_tester_emulate */
+(
+  0x00 NO_TEST_MODE
+  0x00 CONTINUOUS_TRANSMIT
+  0x10 TRANSMIT_TEST
+  0x08 LOOPBACK
+)
+
+/* mem_tx_misc */
+(
+  1 SEND_TX_ADDR
+)
+/* BBHWREG_page_stat */
+(
+  5 PAGE_MODE_END
+)
+/* host_return_parameters_status codes */
+(
+  0x00 HOST_RETURN_SUCCESS
+  0x01 HOST_RETURN_SLAVE_CANT_ISSUE
+  0x02 HOST_RETURN_NO_CONNECTION
+  0x04 HOST_RETURN_PAGE_TIMEOUT
+  0x05 HOST_RETURN_INQUIRY_TIMEOUT
+  0x08 HOST_RETURN_CONNECTION_TIMEOUT
+  0x09 HOST_RETURN_MAX_NUM_CONNECTIONS
+  0x0a HOST_RETURN_MAX_NUM_SCO
+  0x0b HOST_RETURN_MAX_NUM_ACL
+  0x0c HOST_RETURN_SECURITY_REASONS
+  0x10 HOST_RETURN_HOST_TIMEOUT
+  0x11 HOST_RETURN_UNSUPPORTED_FEATURE_PARAMETER
+  0x13 HOST_RETURN_OTHER_END_USER
+  0x14 HOST_RETURN_OTHER_END_LOW_RESOURCE
+  0x15 HOST_RETURN_OTHER_END_POWER_OFF
+  0x16 HOST_RETURN_LOCAL_HOST
+  0x18 HOST_RETURN_PAIRING_NOT_ALLOWED
+  0x19 HOST_RETURN_UNKNOWN_PDU
+  0x1a HOST_RETURN_UNSUPPORTED_REMOTE_FEATURE
+  0x1d HOST_RETURN_SCO_AIR_MODE_REJECTED
+  0x20 HOST_RETURN_UNSUPPORTED_LMP_VALUE
+  0x21 HOST_RETURN_AUTHENTICATION_FAILURE
+  0x22 HOST_RETURN_CHANGED_EXISTING_SCO
+  0x23 HOST_RETURN_HOST_REJECTED
+  0x24 HOST_RETURN_UNSPECIFIED_ERROR
+  0x25 HOST_RESET
+  0x26 HOST_RETURN_BAD_HANDLE
+
+  0x00 HOST_RETURN_ACCEPT_COMMAND
+  0x01 HOST_RETURN_REJECT_COMMAND
+)
+/* host_present */
+(
+  0 HOST_IS_PRESENT
+  1 BCI_IS_PRESENT
+  2 DONT_INIT_RADIO
+)
+/* mem_master_state */
+(
+  0 MASTER_STATE_STANDBY
+  1 MASTER_INQUIRY
+)
+/* misc */
+(
+  92 SECOND_SWITCH_REQ
+  93 SLAVE_DELAY_DETACH
+  94 MASTER_DELAY_DETACH
+  95 UNSNIFF_DELAY_DETACH
+  0 WE_STARTED_AS_MASTER
+  1 WE_STARTED_AS_SLAVE
+)
+/* mem_host_commands */
+(
+  0x01 HOST_INQUIRY
+  0x02 HOST_INQUIRY_CANCEL
+  0x03 HOST_CREATE_CONNECTION
+  0x04 HOST_DISCONNECT_CONNECTION
+  0x05 HOST_ADD_SCO_REQUEST
+  0x06 HOST_REMOTE_NAME_REQUEST
+  0x07 HOST_WRITE_SUPPORTED_FEATURES
+  0x08 HOST_SET_TX_LEVEL
+  0x09 HOST_SET_RX_LEVEL
+  0x0a HOST_SNIFF_REQUEST
+  0x0b HOST_UNSNIFF_REQUEST
+  0x0c HOST_WRITE_LINK_SUPERVISION_TIMEOUT
+  0x0e HOST_WRITE_SCAN_ENABLE
+  0x0f HOST_READ_AUDIO_QUALITY
+  0x10 HOST_ENABLE_DEVICE_UNDER_TEST
+  0x14 HOST_BUTTON_CONFIGURE
+  0x15 HOST_SET_LOW_BATTERY_LEVEL
+  0x16 HOST_WRITE_LOCAL_NAME
+  0x17 HOST_WRITE_LOCAL_PIN
+  0x18 HOST_KILL_SCO_REQUEST
+  0x19 HOST_QOS_REQ
+
+  0x1a HOST_FEATURES_REQUEST
+  0x1b HOST_VERSION_REQUEST
+  0x1c HOST_TIMING_REQUEST
+  0x1d HOST_CLK_OFFSET_REQUEST
+  0x1e HOST_AUTHENTICATE
+  0x1f HOST_START_ENCRYPTION
+  0x20 HOST_STOP_ENCRYPTION
+  0x21 HOST_HOLD_REQUEST
+  0x22 HOST_HOLD_FORCE
+  0x23 HOST_PARK_REQUEST
+  0x24 HOST_MOD_BEACON
+  0x25 HOST_SET_BROADCAST_SCAN_WINDOW
+  0x26 HOST_UNPARK_PM_REQUEST
+  0x27 HOST_UNPARK_BD_REQUEST
+  0x28 HOST_SLAVE_REQUEST_UNPARK
+  0x29 HOST_DECREASE_POWER_REQUEST
+  0x2a HOST_INCREASE_POWER_REQUEST
+  0x2b HOST_SEND_PREFERRED_RATE
+  0x2c HOST_MAX_SLOT_REQ
+  0x2d HOST_MAX_SLOT_FORCE
+  0x2e HOST_PAGE_MODE_REQUEST
+  0x2f HOST_PAGE_SCAN_MODE_REQUEST
+  0x30 HOST_MASTER_SLAVE_SWITCH
+  0x31 HOST_SEND_AUTO_RATE
+  0x32 HOST_PAGE_CANCEL
+  0x33 HOST_CHANGE_LINK_KEY
+  0x34 HOST_RADIO_READ
+  0x35 HOST_RADIO_WRITE
+  0x36 HOST_REMOTE_SLAVE_INIT_UNPARK_REQUESTED
+
+  0x40 HOST_REMOTE_CONNECTION_REQUESTED
+  0x41 HOST_REMOTE_DETACH
+  0x42 HOST_REMOTE_SCO_CREATE_REQUESTED
+  0x43 HOST_REMOTE_SCO_KILL_REQUESTED
+  0x44 HOST_REMOTE_PARK_REQUESTED
+  0x45 HOST_REMOTE_UNPARK_REQUESTED
+  0x46 HOST_REMOTE_SNIFF_REQUESTED
+  0x47 HOST_REMOTE_UNSNIFF_REQUESTED
+  0x48 HOST_REMOTE_HOLD_REQUESTED
+  0x49 HOST_REMOTE_AUTHENTICATION
+  0x4a HOST_REMOTE_START_ENCRYPTION_REQUESTED
+  0x4b HOST_REMOTE_STOP_ENCRYPTION_REQUESTED
+  0x4c HOST_MODE_CHANGE_EVENT
+  0x4d HOST_REMOTE_TEST_ACTIVATE
+  0x4e HOST_REMOTE_TEST_CONTROL
+  0x4f HOST_REMOTE_TIMING_REQUEST
+)
+/* BCI interface (not used if not compiled in ) */
+(
+  0x01 BCI_INQUIRY
+  0x02 BCI_INQUIRY_CANCEL
+  0x03 BCI_CREATE_CONNECTION
+  0x04 BCI_DISCONNECT
+  0x05 BCI_ADD_SCO_CONNECTION
+  0x06 BCI_REMOTE_NAME_REQUEST
+  0x07 BCI_WRITE_SUPPORTED_FEATURES
+  0x08 BCI_SET_TX_POWER_LEVEL
+  0x09 BCI_SET_RX_POWER_LEVEL
+  0x0a BCI_SNIFF_MODE
+  0x0b BCI_EXIT_SNIFF_MODE
+  0x0c BCI_WRITE_LINK_SUPERVISION_TIMEOUT
+  0x0d BCI_WRITE_PAGE_TIMEOUT
+  0x0e BCI_WRITE_SCAN_ENABLE
+  0x0f BCI_GET_AUDIO_QUALITY
+  0x10 BCI_ENABLE_DEVICE_UNDER_TEST
+  0x11 BCI_SEND_DATA
+  0x12 BCI_REGISTER_SERVICE_RECORD
+  0x13 BCI_SERVICE_SEARCH_ATTRIB_REQ
+  0x14 BCI_BUTTON_CONFIGURE
+  0x15 BCI_SET_LOW_BATTERY_LEVEL
+  0x16 BCI_WRITE_LOCAL_NAME
+  0x17 BCI_WRITE_LOCAL_PIN
+  0x18 BCI_REMOVE_SCO_CONNECTION
+  0x19 BCI_QUALITY_OF_SERVICE
+  0x40 BCI_REMOTE_CONNECTION_REQUEST
+  0x41 BCI_REMOTE_DETACH
+  0x42 BCI_REMOTE_ADD_SCO_REQUEST
+  0x43 BCI_REMOTE_REMOVE_SCO_REQUEST
+  0x44 BCI_REMOTE_PARK_REQUEST
+  0x45 BCI_REMOTE_UNPARK_REQUEST
+  0x46 BCI_REMOTE_SNIFF_REQUEST
+  0x47 BCI_REMOTE_UNSNIFF_REQUEST
+  0x48 BCI_REMOTE_HOLD_REQUEST
+  0x49 BCI_REMOTE_AUTHENTICATION_PAIRING_REQUEST
+  0x4a BCI_REMOTE_START_ENCRYPTION_REQUEST
+  0x4b BCI_REMOTE_STOP_ENCRYPTION_REQUEST
+  0x4c BCI_MODE_CHANGE_EVENT
+)
+/* mode changes */
+(
+  0 MODE_CHANGE_ACTIVE
+  1 MODE_CHANGE_SNIFFING
+  2 MODE_CHANGE_PARKED
+  3 MODE_CHANGE_HOLDING
+  4 MODE_CHANGE_SCO_ADDED
+  5 MODE_CHANGE_SCO_REMOVED
+  6 MODE_CHANGE_ACL_CONNECTION
+  7 MODE_CHANGE_DISCONNECT
+  8 MODE_CHANGE_SCO_CHANGED
+  9 MODE_CHANGE_ENCRYPTING
+  10 MODE_CHANGE_NOT_ENCRYPTING
+  11 MODE_CHANGE_BUTTON_UP
+  12 MODE_CHANGE_BUTTON_DOWN
+  13 MODE_CHANGE_BATTERY_LOW
+  14 MODE_CHANGE_RESET
+  15 MODE_CHANGE_INQUIRY_CANCELED_RMTCMD
+  16 MODE_ACTIVE_MSSWITCH_PASSED
+  17 MODE_ACTIVE_MSSWITCH_FAILED
+)
+/* mem_battery - low nibble is level information, upper nibble is status info */
+(
+  6 BATTERY_CHECK_LEVEL
+  7 BATTERY_SENT_STATUS
+)
+/* mem_radio_version */
+(
+  0x02 RADIO_2001
+  0x12 RADIO_2002
+  0x32 RADIO_2002_DDM
+  0x42 RADIO_1008A1
+  0x52 RADIO_1018A0
+)
+/* mem_slave_initiated_conn */
+(
+  0 SLAVE_INIT_AUTHENTICATION
+  1 SLAVE_INIT_ENCRYPTION
+  2 SLAVE_INIT_MASTER_SLAVE_SWITCH
+)
+/* connection_options */
+(
+  0 CONNECTION_AUTH
+  1 CONNECTION_ENCRYPT
+  2 CONNECTION_SWITCH
+  3 CONNECTION_ACL
+  4 CONNECTION_FEATURE_EXT
+)
+/* mem_debug_config */
+(
+  7 AA_INSERTION
+)0x2000 start
+0x2001 soft_reset
+0x2012 main_loop
+0x2021 connection_dispatch
+0x2026 connection_incontext
+0x202f connection_nosniff
+0x2038 idle_dispatch
+0x2043 idle_exit
+0x2045 idle_le_create_conn
+0x2048 idle_inquiry
+0x204d idle_inquiry_cancel
+0x2050 idle_remote_name_req
+0x2055 idle_create_conn
+0x2056 idle_create_conn_device
+0x205b idle_create_conn_cont
+0x205c idle_start_page
+0x2062 idle_page_mode_r0
+0x2083 idle_page_fail
+0x2089 idle_name_fail
+0x208f inquiry_dispatch
+0x2095 inquiry_start
+0x209c inquiry_restart
+0x209f inquiry_rx_restart
+0x20a4 inquiry_transmit
+0x20b1 inquiry_check_train
+0x20be inquiry_receive
+0x20c8 inquiry_sync
+0x20ce inquiry_receive_rtn
+0x20cf inquiry_receive_eir_rtn
+0x20d3 master_page
+0x20db master_page_no_interval
+0x20e6 master_npage_timeout
+0x20e9 master_page_timeout
+0x20f0 page_start
+0x20fc page_restart
+0x2101 page_rx_restart
+0x2114 page_exit
+0x211a page_check_train
+0x2128 page_receive
+0x2130 page_sync
+0x2136 page_send_fhs
+0x213a page_send_fhs_continue
+0x2146 page_wait_fhs_reply
+0x2155 page_wait_fhs_reply_ok
+0x215a master_newconn_loop
+0x215f newconn_poll_responded
+0x2166 master_dispatch
+0x2177 master_loop
+0x2180 master_notmatch
+0x2186 master_exit
+0x2188 master_attempt
+0x218b check_master_disconnect
+0x218e check_master_match
+0x219c master_disconnect
+0x21a2 master_name_disconnect
+0x21a4 master_name_error
+0x21a7 check_disconnect_timeout
+0x21ae conn_timer_expired
+0x21b2 linkkey_ready
+0x21bb linkkey_set
+0x21c3 linkkey_set_continue
+0x21c4 generate_linkkey_continue
+0x21c5 clear_linkstate
+0x21c9 role_switch_check
+0x21d3 role_switch_clkn
+0x21d4 role_switch_clke
+0x21d9 role_switch_prepare
+0x21dc role_switch_prepare0
+0x21e1 role_switch_master
+0x21e7 roles_waitfhs_loop
+0x21ec role_switch_fail_master
+0x21f4 roles_replyto_fhs
+0x21fc roles_newconns_loop
+0x2202 roles_newconns_responded
+0x220a context_load
+0x221c context_load_master
+0x2223 context_save
+0x222b context_get_next
+0x222d context_get_next_loop
+0x2231 context_get_next_cont
+0x2239 context_get_next_sniff
+0x223b context_new
+0x2243 context_check_all_wack
+0x224b context_check_esco_wack
+0x2250 context_esco_wack
+0x2252 context_check_idle
+0x2254 context_traverse_linkkey
+0x2257 context_search_conn_handle
+0x2258 context_search_conn_handle2
+0x225a context_search_plap
+0x225c context_search_plap2
+0x225e context_search_insniff
+0x2260 context_search_sniff_window
+0x2261 context_search
+0x2264 context_search_loop
+0x2266 context_search_next
+0x226a context_search_empty
+0x226e context_search_lap
+0x2270 context_search_lap_cont
+0x2275 context_search_handle
+0x227b context_search_sniff
+0x227c context_search_sniff_loop
+0x2289 context_search_sniff_sc
+0x228c context_search_meet1
+0x228d context_search_meet
+0x2291 context_search_sniff_miss
+0x2297 sign_pdata_temp
+0x22a1 sign_pdata_temp_p0
+0x22a7 context_check_inconn
+0x22aa context_check_a_wack
+0x22b3 context_get_anchor
+0x22bf context_next_anchor
+0x22c6 context_search_window
+0x22cf context_traverse_clearkey
+0x22da master_conn_send_packet
+0x22dc master_send_packet
+0x22e4 master_conn_recv_packet
+0x22e6 master_recv_packet
+0x22ee master_rx_conn_finish_packet
+0x22f2 master_newconn_once
+0x22f8 inquiry_scan_dispatch
+0x2308 inquiry_scan_start
+0x2332 send_eir
+0x2354 get_all_uuid
+0x2358 lshift_loop
+0x236a page_scan_dispatch
+0x237a page_scan_start
+0x239b page_scan_wait_fhs_restart
+0x23a4 page_scan_wait_fhs_again
+0x23ab page_scan_reply_to_fhs
+0x23b8 slave_apply_clke_bt
+0x23bc slave_apply_clke_bt_now
+0x23bf start_slave_connection
+0x23c3 slave_newconn_loop
+0x23c8 sconn_successful
+0x23cf slave_dispatch
+0x23d3 slave_loop
+0x23e2 slave_notmatch
+0x23eb slave_disconnect
+0x23f3 role_switch_slave
+0x23fb roles_sendfhs_loop
+0x240d roles_got_fhs_reply
+0x2410 roles_newconn_loop
+0x2419 roles_newconn_responded
+0x241f roles_newconn_nolmp
+0x242a init_rx_packet_flags
+0x2435 prepare_newconn
+0x2440 newconn_init
+0x244f clear_linkkey
+0x2455 new_conn_timeout
+0x2459 new_conn_handle
+0x245d quit_connection
+0x2462 quit_connection_name
+0x2466 quit_connection_cont
+0x2476 quit_connection_not_clear_mark
+0x2478 quit_connection_not_clear_tx
+0x247c slave_newconn_once
+0x2489 prepare_tx
+0x2495 prepare_tx_not_esco
+0x2496 prepare_tx_not_sco
+0x249b prepare_tx_retransmit
+0x24a5 prepare_tx_nomore_retransmit
+0x24a7 prepare_tx_no_retransmit
+0x24b0 prepare_tx_pollnull
+0x24b4 prepare_tx_loopback
+0x24ba prepare_tx_txpat
+0x24be prepare_tx_sendlmp
+0x24c0 prepare_tx_sendl2cap
+0x24c1 set_wait_ack
+0x24ca tx_l2cap_type
+0x24e0 tx_l2cap_type_edr
+0x24f0 slave_receive_master_slot
+0x24f5 slave_receive_notsniff
+0x24f6 slave_receive_access
+0x24f7 slave_receive_sniff
+0x2514 slave_conn_recv_packet
+0x251c receive_packet
+0x251e receive_packet_whitened
+0x2533 receive_packet_noedr
+0x253c receive_packet_amchk
+0x254b am_addr_match
+0x254c am_addr_ok
+0x255b arqn_bypass
+0x2568 failed_seqn
+0x2569 rx_type_dispatch
+0x2578 process_hev
+0x257e process_hev_loop
+0x2587 process_poll
+0x2588 process_dm5
+0x2589 process_dm1
+0x258b process_dh5
+0x258c process_3dh1
+0x258d process_dh1
+0x258e process_dmh
+0x259a process_dmh_noedr
+0x25a5 process_dmh_long
+0x25a8 process_dmh_common
+0x25ba process_lmp
+0x25bf process_dmh_data_l2cap_start_pkt
+0x25c9 process_dmh_data_into_buff1
+0x25ce process_dmh_data_into_buff2
+0x25d3 process_dmh_data_l2cap_continue_pkt
+0x25dd process_dmh_data_l2cap_continue_pkt1
+0x25e1 process_dmh_data_l2cap_continue_pkt2
+0x25e4 process_dmh_data
+0x25e8 process_dmh_data_end
+0x25f9 process_l2cap_pass_crc_buff1
+0x2603 process_l2cap_pass_crc_buff2
+0x260d process_dmh_cont
+0x2616 process_dmh_cont_rxbuf_not_use
+0x2620 ack_payload
+0x2631 error_header
+0x2637 error_payload_crc
+0x263d error_payload
+0x263e discard_pkt
+0x2642 discard_pkt_lmp
+0x2646 discard_pkt_l2cap
+0x264a redundant_payload
+0x264d end_of_packet
+0x2659 process_fhs
+0x266e fhs_parity_ok
+0x2687 clear_got_tx
+0x269c clear_got_txlmp
+0x26a8 clear_lmp_escape
+0x26ab clear_send_setup_complete
+0x26b0 sco_link_req_by_slave
+0x26b5 clean_mem_mode
+0x26b8 start_encryption
+0x26c0 stop_encryption
+0x26c6 sniff_init
+0x26cc sniff_init_master
+0x26d6 sniff_init_nowrap
+0x26e9 sniff_exit
+0x26f3 check_attempt
+0x26fe check_attempt_nomore
+0x2700 check_attempt_sniff
+0x2706 check_attempt_sniff_restore_sco
+0x2709 check_attempt_sco_master
+0x270f check_attempt_not_sco
+0x2718 check_attempt_notimeout
+0x271c sniff_check_window
+0x2725 check_esco_amaddr
+0x2728 parse_l2cap
+0x272a parse_l2cap_cont
+0x273b parse_l2cap_release_buff1
+0x2741 parse_l2cap_release_buff2
+0x2747 l2cap_buff1_inuse
+0x274b l2cap_buff2_inuse
+0x274f slave_send_access
+0x2757 slave_conn_send_packet
+0x2761 slave_conn_send_access
+0x2762 transmit_packet
+0x2766 transmit_packet_whitened
+0x278c transmit_hev
+0x2792 transmit_ev_loop
+0x2797 transmit_fhs
+0x27b4 transmit_lmp
+0x27bc transmit_lmp_loop
+0x27c2 transmit_lmp_finish
+0x27c5 transmit_dm1
+0x27c7 transmit_dm5
+0x27ca transmit_3dh1
+0x27cb transmit_dh1
+0x27cd transmit_dh5
+0x27d0 transmit_dmh
+0x27df transmit_edr3m
+0x27e3 transmit_edr_sync_end
+0x27e5 transmit_noedr
+0x27ef transmit_long
+0x27f0 transmit_stuff
+0x27f4 transmit_stuff_loop
+0x27f7 transmit_end
+0x2800 transmit_loopback
+0x2802 transmit_loopback_short
+0x2808 transmit_loopback_long
+0x280d transmit_loopback_cont
+0x280e transmit_loopback_loop
+0x2814 transmit_loopback_end
+0x2818 apply_switch_clke
+0x281e apply_switch_nozero
+0x2821 apply_switch_loop
+0x2825 apply_switch_bt
+0x2826 apply_switch_wait_loop
+0x282d calc_slot_offset
+0x2837 calc_bt_portion
+0x2839 calc_slot_offset_loop
+0x283b calc_skip_bt
+0x2841 calc_clke_offset
+0x284c calc_clke_pos
+0x2850 calc_clke
+0x2854 calc_clke2
+0x285c calc_clke_pos2
+0x285e calc_clke_pos_adj
+0x2860 calc_radio_freq
+0x2869 freq_not_connection
+0x286a do_hop_mod_now
+0x2872 odd_half
+0x2874 freq_result
+0x2877 afh_process_0
+0x2885 afh_process_con
+0x2892 afh_process_1
+0x289e afh_process_end
+0x28a1 afh_same_channel
+0x28a4 afh_clear
+0x28a9 afh_process_freq_map
+0x28b0 process_freq_3
+0x28b5 process_freq_1
+0x28b9 process_freq_0
+0x28c2 process_freq_2
+0x28cc rx_radio_freq
+0x28d1 rx_radio_freq_now
+0x28d2 tx_radio_freq
+0x28d7 tx_radio_freq_now
+0x28d8 fetch_giac
+0x28dc fetch_page_bt_adr
+0x28e2 fetch_self_bt_adr
+0x28ea fetch_extm_bt_adr
+0x28f2 fetch_diac
+0x28f5 fetch_diac_do
+0x28f9 shutdown_radio
+0x2908 shutdown_radio_0db
+0x290a shutdown_radio0
+0x2915 shutdown_radio_3db
+0x2918 set_sync_on
+0x291f set_freq_rx
+0x2924 rf_rx_enable
+0x292d set_freq_tx_offset
+0x292f set_freq_tx_0m_offset
+0x2931 set_freq_tx_2m_offset
+0x2933 set_freq_tx
+0x2939 txon
+0x2944 txon_power_select
+0x294b set_tx_power_0db
+0x294f set_tx_power_3db
+0x2953 set_tx_power_5db
+0x2957 set_tx_power_f3db
+0x295b set_tx_power_f5db
+0x295f set_tx_power_pair
+0x2965 txon_common
+0x296c initialize_radio
+0x296d initialize_radio_wait
+0x2971 initialize_radio_loop
+0x2977 initialize_radio_cont
+0x2981 rf_write_freq
+0x2998 do_rccal
+0x29a3 do_rccal_loop
+0x29a6 do_rccal_end
+0x29ab set_rccal
+0x29bb save_rssi
+0x29c0 bcd
+0x29c9 switchto_dpllclk
+0x29e7 xtal_fast_wake
+0x29e9 init_lpm_ctrl
+0x29eb start_receiver
+0x29f1 prep_crypt
+0x29ff wait_access_end
+0x2a07 wait_access_mhalfbnd
+0x2a08 wait_access_mhalfbnd_correlate
+0x2a0d wait_access_clkn_rt
+0x2a14 wait_access_forever
+0x2a1c reserve_slot
+0x2a24 ahead_window
+0x2a33 setup_clk
+0x2a36 skip_setup_clke
+0x2a38 setup_clkn
+0x2a3a skip_setup_clkn
+0x2a3b setup_clknbt
+0x2a3e setup_complete
+0x2a47 setup_clk11
+0x2a4a rf_setup_time
+0x2a4d rf_setup_time_slave_slot
+0x2a4f rf_setup_time_master_slot
+0x2a51 start_transmitter
+0x2a56 start_tx_native
+0x2a5b start_rx_native
+0x2a5f start_tx_external
+0x2a64 send_access_word
+0x2a6b scan_mode_whiten
+0x2a6f get_free_amaddr
+0x2a74 get_free_amaddr_cont
+0x2a77 get_clk
+0x2a7b get_clkbt
+0x2a7f supervision_update
+0x2a88 supervision_flush
+0x2a8c assert
+0x2a8e loop
+0x2a8f sleep
+0x2a92 sleep_loop
+0x2a96 init_param
+0x2abc lpmstate
+0x2acc lpmwake
+0x2adf lpm_load_context
+0x2aef lpm_save_context
+0x2afa lpo_calibration
+0x2b00 lpo_cal_inited
+0x2b05 lpm_adjust_clk
+0x2b15 lpm_adjust_positive
+0x2b18 lpm_clear_counter
+0x2b1b lpm_doze
+0x2b1f lpm_hibernate
+0x2b23 lpm_hibernate_normal
+0x2b2a lpm_sleep
+0x2b3c lpm_enter_sleep
+0x2b41 lpm_recover_clk
+0x2b4a lpm_recover_xtal
+0x2b4c lpm_recover_timeout
+0x2b6a lpm_dispatch
+0x2b74 lpm_dispatch_next
+0x2b7f lpm_dispatch_next2
+0x2b93 lpm_dispatch_sleep
+0x2b94 lpm_dispatch_lpo
+0x2b9d lpm_dispatch_unconn
+0x2ba5 lpm_unconn_nossp
+0x2baa lpm_unconn_cont
+0x2bac lpm_sleep_btclk
+0x2bb1 lpm_set_mult
+0x2bc0 lpm_mult_wait_timeout
+0x2bc7 classic_bt_set_mult_short_flag
+0x2bc9 classic_bt_clr_mult_short_flag
+0x2bcb lpm_match
+0x2bd0 lpm_not_match
+0x2bd6 lpm_lost
+0x2bde lpm_mult_short
+0x2be2 lpm_mult_long
+0x2be5 lpm_cal_xtal_startup
+0x2bfd lpm_cal_xtal_startup_by_snooze
+0x2c18 lpm_write_config
+0x2c21 lpm_write_ctrl
+0x2c23 lpm_write_ctrl2
+0x2c24 lpm_write
+0x2c29 lpm_write_gpio_wakeup
+0x2c32 lpm_get_wake_lock
+0x2c36 lpm_put_wake_lock
+0x2c3a lpm_check_wake_lock
+0x2c5b lpm_uart_wake_lock
+0x2c60 lpm_shut_down
+0x2c65 lpm_disable_exen_output
+0x2c69 check_bt_disabled
+0x2c6c check_ble_disabled
+0x2c6f check_module_disabled
+0x2c72 g24_dispatch
+0x2c7a g24_head_ptr2regc
+0x2c7d g24_receive_process_init
+0x2c7f g24_receive_process
+0x2c83 g24_pair_init
+0x2c8a g24_ch
+0x2c90 g24_ch_temp_incre_size4
+0x2c94 g24_ch_calc
+0x2c9d g24_set_device_addr
+0x2ca9 g24_transmit_rf_sta_init
+0x2cac g24_transmit_rf_ctrl_clear
+0x2caf g24_hop_ch_enable
+0x2cb3 g24_transmit_hop_pac_fail
+0x2cb7 g24_transmit_hop_pac_fail_wo_hop
+0x2cb8 g24_transmit_hop_pac_fail_stage1
+0x2cbc g24_transmit_hop_pac_fail_hop_stage2
+0x2cbe g24_transmit_pac_fail_hop_stage3
+0x2cc8 g24_rf_hop_attemp_again
+0x2cca g24_rf_hop_fastly
+0x2cd2 g24_rf_hop_fastly_exit
+0x2cd4 g24_set0_mem_hop_fastly_cnt
+0x2cd5 g24_store_mem_hop_fastly_cnt
+0x2cd7 g24_transmit_hop_pac_succ_wo_hop
+0x2cd8 g24_transmit_hop_pac_succ
+0x2cdb g24_transmit_succ_rf_config
+0x2ce4 g24_rf_sta_check
+0x2ce9 g24_rf_laststa_synccnt_check
+0x2cf4 g24_rf_sync_cnt_check
+0x2cfd g24_store_mem_rf_work_stage
+0x2cff g24_rf_hop_attemp
+0x2d04 g24_set2_mem_max_retry
+0x2d06 g24_transmit_process
+0x2d0f g24_transmit_without_int
+0x2d14 g24_transmit_start
+0x2d16 g24_transmit_exit
+0x2d18 g24_timer_timeout
+0x2d1b g24_interval_calibrate
+0x2d23 g24_interval_max
+0x2d25 g24_interval_update
+0x2d27 g24_interval_min
+0x2d2c g24_txdata_prep
+0x2d33 g24_txdata_enable_tx
+0x2d34 g24_store_mem_ensure
+0x2d36 g24_txdata_last_pac
+0x2d3a g24_package_data
+0x2d4c g24_put_data_in_buff
+0x2d53 g24_transmit_prep
+0x2d6b g24_send_abort_packet
+0x2d77 g24_put_data_in_buff_pre
+0x2d7d g24_enter_lpm
+0x2d80 g24_enter_lpm_prepare
+0x2d83 g24_lpm_long_sleep
+0x2d8f g24_transmit_packet
+0x2d92 g24_transmit_loop
+0x2d97 g24_transmit_next_packet
+0x2d9f g24_transmit_abandon
+0x2da4 g24_transmit_receive_ack
+0x2dac g24_transmit_no_ack
+0x2dae g24_retransmit
+0x2dcc g24_tx_paring_retry
+0x2dd2 g24_tx_attempt_fail
+0x2dd4 g24_stop_24g_mode
+0x2dd6 g24_ackpayload_parse
+0x2dde g24_read_len_pid_crc
+0x2dee g24_prep
+0x2df3 g24_set_freq_tx
+0x2df7 g24_transmit
+0x2e06 g24tr_loop
+0x2e11 g24_receive_packet
+0x2e17 g24_receive_rxon
+0x2e33 g24_receive_skip
+0x2e39 g24rx_loop
+0x2e3d g24rx_nopayload
+0x2e45 g24_end_of_packet
+0x2e4d g24_sync_timeout
+0x2e4f rssi_noise
+0x2e56 g24_contw_istoret_1byte
+0x2e58 rssi_noise_store
+0x2e5a rssi_store
+0x2e62 rssi_average
+0x2e64 rssi_average_loop
+0x2e69 g24_power_ctrl_init
+0x2e6d g24_power_ctrl_reinit
+0x2e71 g24_power_ctrl_pac_incrs
+0x2e73 g24_store_mem_power_ctrl_pac
+0x2e75 g24_power_ctrl_ack_incrs
+0x2e7a g24_power_ctrl
+0x2e8d g24_power_ctrl_incrs
+0x2e93 g24_power_ctrl_incrs_level2
+0x2e99 g24_power_ctrl_decrs
+0x2e9f g24_power_ctrl_incrs_level1
+0x2ea4 g24_iadd_offset_mem_txpower
+0x2ea5 g24_ifetch_rega_store_mem_txpower
+0x2ea7 g24_power_ctrl_decrs_level0
+0x2ead g24_start_pairing_sm1
+0x2eaf g24_set_pairing_sm_1
+0x2eb1 g24_pairing_sm
+0x2eb9 g24_pairing_sm_1
+0x2ebd g24_pairing_sm_2
+0x2ec1 g24_pairing_sm_3
+0x2ec4 g24_pairing_sm_common
+0x2ec9 g24_put_pairing_data_in_buff
+0x2ed0 g24_paring_mode
+0x2ed6 g24_pairing_sm_1_waiting_ack
+0x2ed9 g24_pairing_sm_2_waiting_ack
+0x2edc g24_pairing_sm_3_waiting_ack
+0x2ee4 g24_auto_pair_start
+0x2ee7 g24_auto_pair_restart
+0x2ee8 g24_auto_pair_start_loop
+0x2efa g24_auto_pair_retry
+0x2f04 g24_fetch_mem_auto_paring_switch
+0x2f06 g24_store_mem_auto_paring_switch
+0x2f08 g24_auto_pair_set_device_info
+0x2f0c g24_auto_pair_device_attemp
+0x2f0e g24_auto_pair_pair_attemp
+0x2f10 g24_start_24g_mode
+0x2f16 g24_tx_attemp_dongle_loop
+0x2f1c g24_tx_attemp_dongle_succ
+0x2f22 g24_tx_attemp_data_prep
+0x2f27 g24_attemp_txdata_retry
+0x2f2c g24_check_51cmd_start_24g
+0x2f30 dongle_init
+0x2f3d g24_receive_init
+0x2f41 dongle_all_powerful
+0x2f42 dongle_all_powerful_loop
+0x2f45 dongle_pc_bind
+0x2f47 dongle_pc_bind_loop
+0x2f4c dongle_check_mode
+0x2f4f g24_dongle_work_mode
+0x2f51 g24_dongle_work_mode_start
+0x2f55 g24_dongle_work_init
+0x2f5e g24_rx_interrupt_clear
+0x2f61 g24_dongle_init
+0x2f65 g24_ch_process
+0x2f81 g24_ch_update
+0x2f88 g24_ch_timer_reinit
+0x2f8d g24_noise_rssi
+0x2f94 g24_noise_rssi_average
+0x2f96 g24_blank_data_process
+0x2f99 g24_ms_blank_data
+0x2fa0 g24_ms_blank_data_2usb
+0x2fa5 g24_kb_blank_data
+0x2fac g24_kb_blank_data_2usb
+0x2fb1 g24_kb_mul_blank_data
+0x2fb8 g24_kb_mul_blank_data_2usb
+0x2fbd g24_dongle_bind_mode
+0x2fc1 g24_dongle_bind_init
+0x2fcb g24_dongle_bind_data_process
+0x2fd9 g24_dongle_bind_first_step
+0x2fdd g24_dongle_bind_first_step_mouse
+0x2fdf g24_dongle_bind_ms_payload_cfg
+0x2fe1 g24_dongle_bind_payload_cfg
+0x2fe8 g24_dongle_bind_first_step_keyboard
+0x2fea g24_dongle_bind_kb_payload_cfg
+0x2fed g24_dongle_bind_second_step
+0x2ff1 g24_dongle_bind_second_step_mouse
+0x2ff6 g24_dongle_ms_bind_step_set2
+0x2ff7 g24_store_mem_ms_bind_step
+0x2ff9 g24_dongle_bind_second_step_keyboard
+0x2ffe g24_dongle_kb_bind_step_set2
+0x2fff g24_store_mem_kb_bind_step
+0x3001 g24_dongle_bind_third_step
+0x3005 g24_dongle_bind_third_step_mouse
+0x3009 g24_dongle_ms_bind_step_success
+0x300c g24_dongle_bind_exit
+0x3011 g24_dongle_bind_third_step_keyboard
+0x3015 g24_dongle_kb_bind_step_success
+0x3019 dongle_usb_dispatch
+0x302a usb0_data_ready_report_set0
+0x302c dongle_dispose_cmd_bind
+0x3031 dongle_dispose_cmd_get_bind
+0x3034 dongle_dispose_cmd_exit_bind
+0x3039 dongle_dispose_in_bind_mode
+0x303b dongle_dispose_cmd_mode
+0x303e dongle_enter_bind_mode
+0x303f usb0_data_ready_report_set1
+0x3041 dongle_dispose_cmd_current_project
+0x3043 dongle_dispose_cmd_current_mode
+0x3047 dongle_dispose_in_work_mode
+0x3049 dongle_dispose_cmd_current_fw_version
+0x304d dongle_dispose_cmd_user_defined
+0x3055 dongle_auto_bind
+0x3057 dongle_auto_bind_loop
+0x305a g24_dongle_work_mode_auto
+0x305e g24_dongle_bind_mode_auto
+0x3067 g24_timer_init
+0x306a g24_timer_check
+0x307d g24_mode_switch_init
+0x3084 g24_mode_switch
+0x3090 g24_bind_mode_enable
+0x3093 g24_enable_nodata_timer
+0x3095 g24_enable_nodata_timer_init
+0x3098 g24_rx_nodata_process
+0x30a2 g24_dongle_search_mode_auto
+0x30bc g24_dongle_search_addr_check
+0x30be g24_fetch_mem_addr_isub_temp
+0x30c1 g24_dg_ch_num_reinit
+0x30c3 g24_current_ch_num_reinit
+0x30c5 g24_kb_ch_num_reinit
+0x30c8 g24_ms_ch_num_reinit
+0x30cb g24_dongle_search_mode_init
+0x30e0 g24_rx_auto_addr_ch_search
+0x30ea g24_rx_auto_bind_config_mouse
+0x3106 g24_store_mem_ms_last_ch
+0x3108 g24_ms_config_ch_once
+0x310e g24_rx_auto_bind_config_kb
+0x312a g24_store_mem_kb_last_ch
+0x312c g24_kb_config_ch_once
+0x3132 g24_rx_auto_bind_config_dongle
+0x314a g24_store_mem_dg_last_ch
+0x314c g24_dg_config_ch_once
+0x314f g24_dg_store_config_ch
+0x3152 g24_transmit_ack
+0x3159 g24tx_with_ack
+0x315c g24tx_no_ack
+0x315d g24_ackpayload_prep
+0x316b g24_receive_packet_start
+0x316e g24_receive_transmit_ack
+0x3172 g24_receive_packet_parse
+0x3188 g24_receive_packet_parse_pid_crc
+0x319e g24_data_type1
+0x31b0 dongle_rxdata_type1
+0x31b8 g24_data_type1_usbtx_enable
+0x31b9 g24_data_type1_usbtx_enable_ep2
+0x31bd g24_ms_enable_blank_data_forcibly
+0x31bf g24_ms_enable_blank_data_timer
+0x31c2 g24_ms_disable_blank_data_forcibly
+0x31c3 g24_ms_disable_blank_data_timer
+0x31c6 g24_data_type2
+0x31e0 g24_data_type2_reverse_data
+0x31e4 g24_kb_enable_blank_data_forcibly
+0x31e6 g24_kb_enable_blank_data_timer
+0x31e9 g24_kb_disable_blank_data_forcibly
+0x31ea g24_kb_disable_blank_data_timer
+0x31ed g24_kb_data_into_ep1_fifo
+0x31f2 g24_data_type3
+0x3207 g24_kb_mul_data_into_ep2_fifo
+0x3209 g24_kb_mul_enable_blank_data_forcibly
+0x320b g24_kb_mul_enable_blank_data_timer
+0x320e g24_kb_mul_disable_blank_data_forcibly
+0x320f g24_kb_mul_disable_blank_data_timer
+0x3212 g24_data_attemp
+0x3216 g24_data_attemp_mouse
+0x321b g24_data_attemp_kbd
+0x3220 g24_store_mem_24g_mode
+0x3224 g24_fetch_mem_device_addr
+0x3227 g24_store_mem_device_addr
+0x322a g24_fetch_mem_addr
+0x322c g24_store_mem_addr
+0x322d g24_contw_istore_4byte
+0x322f g24_store_mem_ch
+0x3231 g24_set0_mem_pid
+0x3232 g24_store_mem_pid
+0x3235 g24_store_mem_txpayload
+0x3237 g24_set4_mem_max_retry
+0x3238 g24_store_mem_max_retry
+0x323a g24_fetch_mem_data_type
+0x323c g24_store_mem_data_type
+0x323e g24_set2_mem_sync_cnt
+0x323f g24_store_mem_sync_cnt
+0x3241 g24_set1_mem_rf_last_sta
+0x3242 g24_store_mem_rf_last_sta
+0x3245 g24_fetch_mem_hop_pac
+0x3248 g24_set1_mem_hop_pac
+0x3249 g24_store_mem_hop_pac
+0x324c g24_fetch_mem_abort_pac
+0x324f g24_set1_mem_abort_pac
+0x3250 g24_store_mem_abort_pac
+0x3253 g24_fetch_mem_pairing_sm
+0x3256 g24_store_mem_pairing_sm
+0x3258 g24_fetch_mem_rf_hop_ch
+0x325a g24_set0_mem_rf_hop_ch
+0x325b g24_store_mem_rf_hop_ch
+0x325d g24_fetch_mem_rf_work_stage
+0x325f g24_fetch_mem_rxbuf_add1
+0x3261 g24_fetch_mem_check_dongle_times
+0x3263 g24_set0_mem_check_dongle_times
+0x3264 g24_store_mem_check_dongle_times
+0x3267 g24_store_mem_tx_power
+0x326a g24_store_mem_txpower
+0x326c g24_store_mem_tx_power_temp
+0x3270 g24_fetch_mem_power_ctrl_pac
+0x3272 g24_store_mem_power_ctrl_level
+0x3274 g24_fetcht_mem_rxdata_temp
+0x3275 g24_set_rega_ifetcht_1byte
+0x3278 g24_fetch_mem_rf_laststa
+0x327a g24_set0_mem_rf_laststa
+0x327b g24_store_mem_rf_laststa
+0x327d g24_fetch_mem_rx_addr
+0x327e g24_set_rega_ifetch_4byte
+0x327f g24_rega_ifetch_4byte
+0x3281 g24_fetch_mem_time_slice
+0x3283 g24_set0_mem_time_slice
+0x3284 g24_store_mem_time_slice
+0x3286 g24_set0_mem_mode_switch
+0x3287 g24_store_mem_mode_switch
+0x3289 g24_store_mem_bind_payload
+0x328b g24_fetch_mem_bind_device_status
+0x328d g24_store_mem_bind_device_status
+0x328f g24_fetch_mem_dongle_work_mode
+0x3291 g24_set_work_mem_dongle_work_mode
+0x3292 g24_store_mem_dongle_work_mode
+0x3294 g24_fetch_mem_dongle_mode_init
+0x3296 g24_set0_mem_dongle_mode_init
+0x3297 g24_store_mem_dongle_mode_init
+0x3299 g24_set0_mem_ackpayload_enable
+0x329a g24_store_mem_ackpayload_enable
+0x329c g24_set1_mem_ackpayload_enable
+0x329e g24_fetch_mem_rxdata_temp_add3_7byte
+0x32a2 g24_fetch_mem_nodata_timer_enable
+0x32a4 g24_set0_mem_nodata_timer_enable
+0x32a5 g24_store_mem_nodata_timer_enable
+0x32a7 g24_set0_mem_ms_blank_data_enable
+0x32a8 g24_store_mem_ms_blank_data_enable
+0x32aa g24_set0_mem_kb_blank_data_enable
+0x32ab g24_store_mem_kb_blank_data_enable
+0x32ad g24_set0_mem_kb_mul_blank_data_enable
+0x32ae g24_store_mem_kb_mul_blank_data_enable
+0x32b0 g24_store_mem_power_ctrl_threshold_up
+0x32b2 g24_store_mem_power_ctrl_threshold_down
+0x32b3 g24_set_contw_with_regb_store_1byte
+0x32b4 g24_contw_istore_1byte
+0x32b6 g24_fetch_mem_pair_mode
+0x32b8 g24_store_mem_pair_mode
+0x32ba g24_store_mem_pair_txpower
+0x32bd g24_fetch_mem_rxdata_temp_add3_1byte
+0x32bf g24_set_contw_with_temp
+0x32c4 g24_set_contw_with_temp_store_3byte
+0x32c5 g24_contw_istore_3byte
+0x32c7 g24_set_contw_with_regb
+0x32c8 g24_set_contw_with_regb2
+0x32cd g24_set_rega
+0x32d0 g24_set_rega_ifetch_1byte
+0x32d1 g24_rega_ifetch_1byte
+0x32d3 g24_set_rega_ifetcht_4byte
+0x32d6 g24_mem_set0
+0x32d8 app_init
+0x32e3 app_lpm_init
+0x32ec app_lpm_init0
+0x32ed app_process_idle
+0x32f2 app_process_bt
+0x32f4 app_process_ble
+0x32f6 app_process_bb_event
+0x32fd app_discard_event
+0x32ff app_event_normal_process
+0x3311 app_evt_bt_conn
+0x3318 app_event_switch_success
+0x331a app_event_switch_fail_master
+0x3324 app_process_bb_event_priority
+0x3326 app_check_wake_lock
+0x3328 app_will_enter_lpm
+0x332a app_event_linkkey_generate
+0x332e app_event_reconn_start
+0x3335 app_evt_setup_complete
+0x333c app_evt_hid_handshake
+0x3340 app_event_enter_sniff
+0x3347 app_event_exit_sniff
+0x334b app_le_event_bb_connected
+0x334f app_le_event_bb_disconn
+0x3353 app_bb_event_hid_connected
+0x3357 app_evt_button_long_pressed
+0x335b app_event_ml2cap_conn_refused
+0x335f app_evt_timer
+0x3361 app_evt_100ms_loop
+0x336d timer_single_step
+0x3374 timer_single_step_2b
+0x337b app_power_timer
+0x337f app_power_timer_timeout
+0x3381 app_enter_power_off_state
+0x3382 app_enter_power_stanby_state
+0x3385 app_power_cb_common
+0x3387 app_unsniff_delay_timer
+0x338a app_unsniff_delay_timeout
+0x338d app_discovery_timer
+0x3390 app_discovery_timeout
+0x3394 app_bb_event_reconn_failed
+0x3395 app_clear_reconnect_flag
+0x3399 app_bb_event_bb_disconn
+0x339e app_bb_event_bb_reconn_disconn
+0x33a7 app_bb_hibernate
+0x33a9 app_disconn_reason_clear
+0x33ac app_disconn_reason_flag_clear
+0x33af app_disconn_reason_collect_bt
+0x33b4 app_disconn_reason_collect_ble
+0x33ba app_check_sniff
+0x33bd app_initflag_store
+0x33be app_flag_store
+0x33c4 app_initflag_check
+0x33cd app_start_auto_sniff
+0x33d0 app_get_lpm_wake_lock
+0x33d2 app_put_lpm_wake_lock
+0x33d4 app_lpm_wake_auto_lock
+0x33d6 app_lpm_wake_auto_lock_timer
+0x33d9 app_l2cap_flow_control_enable
+0x33db app_l2cap_flow_control_disable
+0x33dd app_bt_set_pincode
+0x33df app_bt_role_switch
+0x33e1 app_bt_start_reconnect
+0x33e7 app_bt_reconnect_cancel
+0x33e9 app_bt_disconnect
+0x33eb app_bt_start_discovery_short
+0x33ed app_bt_start_discovery_led_blink
+0x33ee app_bt_start_discovery
+0x33f0 app_bt_stop_discovery
+0x33f4 app_ble_start_direct_adv
+0x33f6 app_ble_stop_direct_adv
+0x33f8 app_ble_stop_adv
+0x33fa app_ble_start_adv
+0x33fc app_ble_start_scan
+0x33fe app_ble_stop_scan
+0x3400 app_ble_start_conn
+0x3402 app_ble_disconnect
+0x3404 app_led_start_blink
+0x3406 app_led_on
+0x3408 app_led_off
+0x340a app_enter_hibernate
+0x340c app_bt_sniff_exit
+0x340e app_bt_enter_sniff
+0x3410 app_ble_store_reconn_info
+0x3412 app_bt_store_reconn_info
+0x3414 app_store_reconn_info
+0x3416 app_lpm_mult_enable
+0x3418 app_lpm_mult_disable
+0x341a app_button_long_pressed
+0x341c app_power_starting
+0x3420 app_power_common
+0x3424 app_power_shutting_down
+0x3429 app_power_off_end
+0x342d app_got_power_state_common
+0x3431 app_event_button_up
+0x3434 app_power_release
+0x3436 antilost_init
+0x3463 antilost_le_before_hibernate
+0x3465 antilost_le_notification
+0x346c antilost_power_standby_cb
+0x3470 antilost_lpm_lock_process
+0x3479 antilost_lpm_ctrl_for_led_buzzer
+0x347e antilost_bb_event_process
+0x3485 antilost_le_conn_param_update_rsp_recieved
+0x3487 antilost_le_conn_param_accepted
+0x3489 antilost_le_conn_param_updata_procedure_sucsess
+0x348c antilost_le_conn_param_rejected
+0x348e antilost_conn_param_retransimiting
+0x34a0 antilost_conn_param_updata_procedure_faild
+0x34a2 antilost_master_nonsupport_latency
+0x34b2 antilost_le_bb_event_timer
+0x34b9 antilost_double_click_timer
+0x34bc antilost_double_click_timeout
+0x34be antilost_le_fast_adv_timer
+0x34c1 antilost_le_fast_adv_timeout
+0x34c4 antilost_conn_update_timer
+0x34c7 antilost_conn_update_timer_time_out
+0x34ca antilost_app_updata_le_param_timer
+0x34cd antilost_app_updata_le_param_timeout
+0x34d3 antilost_wait_for_updata_param_instant_expire
+0x34d5 antilost_le_sleep_timer
+0x34d8 antilost_le_sleep_timer_timeout
+0x34d9 antilost_adc_check_timer
+0x34dc antilost_adc_check_timer_timeout
+0x34df antilost_le_process_conn
+0x34e8 antilost_le_process_discon
+0x34f4 antilost_le_conn_process
+0x34f5 antilost_idle_process
+0x34f8 antilost_power_starting_cb
+0x34fb antilost_power_common
+0x34fc antilost_power_off_cb
+0x3501 antilost_le_receive_data_process
+0x3504 antilost_le_parse_att_write_request
+0x3508 antilost_key_process
+0x350b antilost_key_up_down
+0x350d antilost_key_is_down
+0x3510 antilost_key_is_up
+0x3513 antilost_key0_down
+0x351b antilost_key0_up
+0x351d antilost_double_click_timer_init
+0x3521 antilost_butten_down_after_conn
+0x3527 antilost_click_once
+0x352b antilost_click_twice
+0x3532 antilost_butten_down_while_disconn
+0x3536 antilost_cmd_parse_for_application
+0x353c antilost_on_of_alram
+0x3540 antilost_configuration_for_alram
+0x3544 antilost_prepare_data_and_send
+0x3551 antilost_alert_on
+0x355c antilost_alert_off
+0x3564 antilost_set_start_alarm_after_disconn
+0x3569 antilost_set_no_alarm_after_disconn
+0x356e antilost_on_off_alarm_after_disconn
+0x3571 antilost_notify_alarm_config_first_time
+0x3582 antilost_buzzer_configuration
+0x3584 antilost_led_configuration
+0x3585 antilost_configuration_common
+0x3586 antilost_led_buzzer_stop_blink
+0x358c antilost_led_buzzer_style_configuration
+0x358f antilost_fast_adv_start
+0x3591 antilost_adv_start_common
+0x3596 antilost_adv_interval_lpm_interval_set
+0x359b antilost_buzzer_pwm_init
+0x35a2 antilost_led_on_cb
+0x35a4 antilost_led_off_cb
+0x35a6 antilost_buzzer_off
+0x35a9 antilost_buzzer_on
+0x35ad antilost_adc_init
+0x35af antilost_battery_process
+0x35b9 antilost_battery_calculate_end
+0x35bc antilost_full_battery
+0x35be antilost_low_battery
+0x35bf car_init
+0x35e6 car_soft_switch_power_on_init
+0x35ed car_power_off_signal
+0x35ee car_hard_switch_power_on_signal
+0x35ef car_soft_switch_power_on_signal
+0x35f5 car_le_modified_name_adv
+0x35f7 car_name_loop
+0x3604 car_le_modified_name_scan
+0x3609 car_hex_to_ascii
+0x360d car_hex_num
+0x360f car_ui_led_init
+0x3611 car_ui_led_init_1
+0x3613 car_ui_led_init_2
+0x3615 car_ui_led_init_3
+0x3619 car_in_lp1
+0x361f car_in_lp1_end
+0x3620 car_ui_led_init_end
+0x3621 car_blood_led_gpio_set
+0x3624 car_pairing_led_gpio_set
+0x3626 car_low_voltage_led_gpio_set
+0x3628 car_init_environment
+0x362d car_init_adc_hvin
+0x3631 car_le_before_hibernate
+0x3633 car_le_process_lpm_before
+0x3634 car_key_scan_process
+0x3635 car_scale_process_idle
+0x3639 car_g24_status_process
+0x363e car_g24_connected_event
+0x3642 car_le_send_packet
+0x364b car_scale_process_bb_event
+0x3651 car_scale_event_le_conn
+0x3654 car_g24_connected
+0x3656 car_scale_process_conn
+0x365c car_scale_process_conn_next
+0x365e car_pairing_led_conn_status_setting
+0x3660 car_scale_event_le_discon
+0x3662 car_g24_disconnect
+0x367a car_le_bb_event_timer
+0x3683 car_ir_breakdown_timer
+0x3686 car_ir_breakdown_timeout
+0x368a car_24g_no_data_timeout_timer
+0x368d car_24g_no_data_timer_timeout
+0x368f car_attack_shake_timer
+0x3692 car_attack_shake
+0x369a car_attack_shake_front_battle_car
+0x369b car_attack_shake_front_battle_tank
+0x369e car_attack_shake_stop
+0x36a1 car_notify_vdd_timer
+0x36a8 car_notify_vdd
+0x36ac car_read_hvin
+0x36b6 car_notify_vdd_next2
+0x36c1 car_enter_low_bat
+0x36c6 car_low_bat_led_off
+0x36c8 car_led_control_timer
+0x36cb car_led_control
+0x36d0 car_led_control_set
+0x36d3 car_led_control_timer_next
+0x36d9 car_led_control_timer_next_2
+0x36de car_led_switch
+0x36e3 car_led_control_off
+0x36e6 car_led_control_on
+0x36e9 car_led_control_blink
+0x36ec car_led_control_blink_on
+0x36ee car_led_control_blink_off
+0x36f0 calc_check_sum_start
+0x36f1 calc_check_sum_loop
+0x36f4 calc_check_sum_and
+0x36f6 car_le_receive_data
+0x36f9 car_le_parse_att_write_request
+0x36fc le_app_receive_data
+0x3710 car_control_le_receive
+0x3718 car_receive_cmd_select
+0x3722 car_24g_receive_data
+0x372e car_24g_receive_data_next
+0x3735 car_moto1_enable_blank_data_timer
+0x3737 car_moto2_enable_blank_data_timer
+0x3739 car_moto3_enable_blank_data_timer
+0x373b car_moto1_blank_data_timer
+0x373e car_moto2_blank_data_timer
+0x3741 car_moto3_blank_data_timer
+0x3744 car_moto1_blank_data
+0x3746 car_moto2_blank_data
+0x3748 car_moto3_blank_data
+0x374a car_drive_old
+0x374c car_left_right_control_old
+0x374f car_front_back_control_old
+0x3754 car_reset_old_speed
+0x3758 car_reset_old_speed2
+0x375a car_reset_old_speed3
+0x375c car_speed_set_old
+0x3762 car_motor_control
+0x3770 car_motor1_control
+0x3773 car_motor2_control
+0x3776 car_motor3_control
+0x3779 car_motor_working_flag
+0x377b car_motor_status_select
+0x3780 car_motor_positive
+0x3782 car_motor_negative
+0x3787 car_motor_stop
+0x378c car_motor_work
+0x3790 car_motor_select_negative
+0x3793 car_motor_work_next
+0x379a car_motor_select_positive
+0x379e car_motor_speed_duty_setting
+0x37a1 car_motor_speed_duty_transform
+0x37aa car_ir_init
+0x37b1 car_ir_data_rx_from_app
+0x37b9 car_ir_data_tx
+0x37c2 car_ir_send_loop
+0x37c9 car_ir_is_bit1
+0x37cc car_ir_wait_finish
+0x37d8 car_attack_shake_back_battle_car
+0x37d9 car_attack_shake_back_battle_tank
+0x37dc car_ir_enable
+0x37e0 car_ir_disable
+0x37e4 car_ir_rx_init
+0x37ee car_ir_receive_process
+0x37f6 car_ir_receive_process_next
+0x37fe car_ir_packet_head_wait_end
+0x3805 car_ir_receive_process_loop
+0x380d car_ir_get_bit0
+0x3812 car_ir_get_bit1
+0x3816 car_ir_get_bit1_wait_low_end
+0x381b car_ir_receive_process_end
+0x3821 car_ir_data_notify
+0x3827 car_ir_24g_receive_attack
+0x382f car_ir_24g_receive_attack_off
+0x3838 car_ir_24g_receive_attack_blink
+0x383d car_ir_24g_go_die
+0x383f car_ir_clk_get
+0x3842 car_ir_clk_check
+0x3847 car_ir_gpio_get_status
+0x3849 car_led_control_receive
+0x384c car_info_request
+0x3858 light_init
+0x3860 light_pairing_timer
+0x3867 light_init_crr_cmd_count
+0x386d light_load_controler_list
+0x3871 light_find_controler_pairing
+0x3876 light_find_controler_pairing_loop
+0x3879 light_find_single_pairing_diff
+0x387c light_compare_addr_record
+0x3881 light_compare_single_record
+0x388d light_find_controler_cmd
+0x3893 light_find_controler_cmd_loop
+0x3898 light_recv_adv
+0x389c light_anylize_command
+0x38a8 light_parse_cmd
+0x38b7 light_parse_cmd_loop
+0x38c2 light_parse_cmd_pwm0
+0x38c6 light_parse_cmd_pwm_common
+0x38cf light_parse_cmd_pwm1
+0x38d4 light_parse_cmd_pwm2
+0x38d9 light_parse_cmd_pwm3
+0x38de light_parse_cmd_pwm4
+0x38e3 light_parse_cmd_pwm5
+0x38e8 light_parse_auto_mode
+0x38ea light_parse_pairing
+0x38ee light_parse_pairing_abandon
+0x38f0 update_controler_list
+0x38fe update_conrtoler_list_found
+0x3903 update_conrtoler_store_list
+0x3907 lightc_init
+0x390a lightc_dispatch
+0x3918 lightc_adv
+0x391d lightc_start_adv
+0x392a module_init
+0x3945 module_lpm_uart_init
+0x3962 module_lpm_init
+0x3964 module_gpio_init
+0x3969 module_lpm_lock
+0x396d module_le_conn_process
+0x396e module_bt_conn_process
+0x3970 module_spp_enter_sniff
+0x397f module_spp_clear_last_transmite_clock
+0x3982 module_process_idle
+0x3986 module_process_bb_event
+0x39a3 module_process_bb_event_disconned
+0x39aa module_process_spp_connected
+0x39b1 module_spp_disconnected
+0x39b6 module_sniff_param_check
+0x39bd module_sniff_param_check_unsniff
+0x39c2 module_process_exit_sniff
+0x39c4 module_process_setup_complete
+0x39c6 module_process_bb_even_le_disconn
+0x39c9 module_process_evt_pincode_req
+0x39ca module_process_sniff_not_accept
+0x39cb module_process_unsniff_accept
+0x39ce module_process_unsniff_not_accept
+0x39cf module_process_le_conn
+0x39d4 module_process_bb_conn
+0x39d7 module_disconn_start
+0x39d9 module_process_ble_ltk_lost
+0x39db module_set_conn_pin_high
+0x39dd module_conn_start
+0x39df module_stop_adv_discovery
+0x39e6 module_set_conn_pin_low
+0x39e8 module_process_with_credit
+0x39eb module_process
+0x3a01 module_hci_in_excp
+0x3a04 module_hci_release_except
+0x3a12 module_hci_dicard_packet
+0x3a16 module_hci_dicard_bytes
+0x3a17 module_hci_cmd_control
+0x3a3f module_hci_cmd_set_bt_addr
+0x3a44 module_hci_cmd_set_le_addr
+0x3a49 module_hci_cmd_set_visibility
+0x3a52 module_start_adv_discovery_by_command
+0x3a58 moudle_start_adv_by_command
+0x3a5f module_hci_cmd_set_bt_name
+0x3a6b module_hci_cmd_set_le_name
+0x3a75 module_hci_cmd_receive_spp_data
+0x3a84 module_hci_cmd_pass_init_ng_rx_len_all
+0x3a86 module_hci_cmd_spp_exit_sniff
+0x3a88 module_hci_cmd_get_current_packet_len_and_remain_len
+0x3a8e module_hci_cmd_get_current_patcket_len
+0x3a97 module_hci_command_tx_spp_tx_complete
+0x3a9a module_hci_cmd_receive_le_data
+0x3ab4 module_hci_cmd_receive_le_data_finish
+0x3ab7 module_hci_cmd_transmit_le_notify
+0x3acf module_get_le_remote_mtu
+0x3ad4 module_check_ble_encrypt_state
+0x3ad7 module_hci_cmd_inquire_status
+0x3ad8 module_hci_cmd_set_pairing_mode
+0x3adf module_hci_pairing_pincode_mode
+0x3ae2 module_hci_pairing_just_work_mode
+0x3ae3 module_hci_sspairing_mode
+0x3ae8 module_hci_pairing_passkey
+0x3aea module_hci_pairing_numeric_comparison
+0x3aec module_hci_cmd_set_pincode
+0x3af4 module_hci_cmd_set_uart_control_mode
+0x3afa module_hci_cmd_set_uart_baud
+0x3b02 module_hci_cmd_set_uart_baud_ok
+0x3b06 module_hci_cmd_version_request
+0x3b0a module_hci_event_set_cmd_send_response
+0x3b0e module_hci_cmd_bt_disconnect
+0x3b10 module_hci_cmd_bt_disconnect_doing
+0x3b12 module_hci_cmd_ble_disconnect
+0x3b14 module_hci_cmd_ble_disconnect_doing
+0x3b16 module_hci_cmd_set_nvram
+0x3b1d module_hci_cmd_confirm_gkey
+0x3b28 dhkey_not_accept
+0x3b2b module_hci_cmd_spp_number_comparison_result_is1
+0x3b2d module_hci_cmd_set_credit_given
+0x3b36 module_hci_cmd_auto_adv
+0x3b3c module_hci_cmd_auto_adv_loop
+0x3b46 module_hci_cmd_auto_adv_store_adv
+0x3b50 module_hci_cmd_auto_adv_store_scan
+0x3b59 module_hci_cmd_auto_adv_store_common
+0x3b64 module_hci_cmd_auto_adv_adv_analys
+0x3b69 module_hci_cmd_power_request
+0x3b6f module_hci_cmd_power_set
+0x3b76 module_hci_cmd_passkey_entry
+0x3b7c module_hci_cmd_set_gpio
+0x3b82 module_set_gpio_input
+0x3b88 module_set_gpio_high_impedance
+0x3b8a module_set_gpio_output
+0x3b90 module_hci_cmd_read_gpio
+0x3b98 module_hci_cmd_le_set_pairing_mode
+0x3ba3 module_le_set_pairing_mode_secure_justwork
+0x3ba8 module_le_set_pairing_mode_secure_numeric
+0x3bae module_le_set_pairing_mode_secure_passkey
+0x3bb3 module_le_set_no_pairing
+0x3bb4 module_le_set_noinputnooutput
+0x3bb6 module_le_set_pairing_mode_lagacy_just_work
+0x3bb8 module_le_set_pairing_mode_lagacy_passkey
+0x3bb9 module_le_set_displayonly
+0x3bbb module_hci_cmd_le_set_adv_data
+0x3bc4 module_hci_cmd_le_set_scan_data
+0x3bcd module_hci_cmd_le_send_conn_update_req
+0x3bd7 module_hci_cmd_set_le_adv_parameter
+0x3bda module_hci_cmd_le_start_pairing
+0x3be2 module_hci_cmd_set_wake_gpio
+0x3bec module_hci_cmd_set_tx_power
+0x3bf1 module_hci_cmd_le_confirm_gkey
+0x3bf8 module_hci_cmd_le_confirm_gkey_ok
+0x3bfa module_hci_cmd_le_confirm_gkey_fail
+0x3bfc module_hci_cmd_set_reject_justwork_flag
+0x3c02 module_hci_cmd_reset_chip
+0x3c06 module_hci_cmd_le_set_fixed_passkey
+0x3c13 module_hci_cmd_le_set_random_passkey
+0x3c15 module_hci_test_cmde_close_lpm
+0x3c17 module_hci_event_receive_invalid_cmd
+0x3c1a module_hci_event_receive_valid_cmd
+0x3c1d module_hci_event_spp_connect
+0x3c1f module_hci_event_le_connect
+0x3c21 module_hci_event_spp_disconnect
+0x3c23 module_hci_event_le_disconnect
+0x3c25 module_hci_event_set_cmd
+0x3c32 module_hci_event_receive_spp_data
+0x3c3d module_hci_event_receive_le_data
+0x3c48 module_hci_event_enter_standby_mode
+0x3c49 module_hci_event_enter_standby_mode_len0
+0x3c4c module_hci_event_status_res
+0x3c5d module_hci_read_bt_status
+0x3c6a module_hci_event_store_device
+0x3c73 module_hci_event_gkey_generate
+0x3c79 module_hci_event_invalid_packet
+0x3c82 module_hci_event_passkey_entry_mode
+0x3c84 module_hci_event_le_tk
+0x3c8a module_hci_event_le_pairing_fail
+0x3c8c module_hci_event_le_pairing_success
+0x3c8e module_hci_event_bt_pairing_fail
+0x3c90 module_hci_event_bt_pairing_success
+0x3c91 module_hci_event_pairing_completed
+0x3c98 module_hci_event_pause_enc
+0x3c9a module_hci_event_start_enc
+0x3c9b module_hci_event_enc
+0x3ca1 module_hci_event_le_gkey
+0x3ca7 module_hci_prepare_tx
+0x3cb1 module_set_mcu_wake_pin_high_delay
+0x3cb3 module_set_mcu_wake_pin_h_delay
+0x3cb8 module_set_mcu_wake_pin_high
+0x3cba module_check_mcu_wake_pin_high
+0x3cbc module_set_mcu_wake_pin_low
+0x3cbe delay
+0x3cc2 module_le_receive_data
+0x3ccf module_le_receive_data_ok
+0x3cd1 module_exit_sniff
+0x3cd5 module_set_lpm_mult_2
+0x3cd7 module_bb_event_timer
+0x3cd8 module_read_vdd_timer
+0x3ce9 module_control_air_flow
+0x3cec module_set_sniff_task_flag
+0x3cee module_clear_sniff_task_flag
+0x3cf0 module_set_unsniff_task_flag
+0x3cf2 module_clear_unsniff_task_flag
+0x3cf4 module_set_le_tx_data_flag
+0x3cf6 module_clear_le_tx_data_flag
+0x3cf8 module_clr_state
+0x3cfc module_set_state
+0x3d00 mouse_init
+0x3d0f mouse_delay_4s
+0x3d12 mouse_delay_20ms
+0x3d16 mouse_cheak_enable_usb
+0x3d19 mouse_cb_fuction
+0x3d36 mouse_spi_init
+0x3d39 mouse_setting_config
+0x3d46 mouse_init_iic
+0x3d4e mouse_wakeup_from_power
+0x3d53 mouse_wakeup_no_from_power
+0x3d57 mouse_start_24g_mode
+0x3d5b le_mouse_bb_event_connect_complete
+0x3d60 mouse_le_write_enable
+0x3d62 mouse_dpi_up
+0x3d66 mouse_dpi_config
+0x3d6a mouse_dpi_cheak
+0x3d6d mouse_dpi_down
+0x3d79 mouse_before_store_flash_cpi
+0x3d7e mouse_seting_dpi
+0x3d88 mouse_set_cpi2
+0x3d8a mouse_set_cpi1
+0x3d8c mouse_set_cpi3
+0x3d8e mouse_set_cpi4
+0x3d90 moue_seting_cpi_count
+0x3d96 mouse_seting_3212_dpi
+0x3d9b mouse_set_p3212_cpi2
+0x3d9d mouse_set_p3212_cpi1
+0x3d9f mouse_set_p3212_cpi3
+0x3da1 mouse_set_p3212_cpi4
+0x3da2 mouse_p3212_dpi
+0x3daa mouse_seting_3610_dpi
+0x3daf mouse_set_p3610_cpi2
+0x3db1 mouse_set_p3610_cpi1
+0x3db3 mouse_set_p3610_cpi3
+0x3db5 mouse_set_p3610_cpi4
+0x3db6 mouse_p3610_dpi
+0x3db9 mouse_reset_p3610_dpi
+0x3dbe mouse_p3205_dpi
+0x3dc9 mouse_init_environment
+0x3dce mouse_24g_pairing_button
+0x3de3 mouse_idle
+0x3de9 mouse_usb_isr
+0x3ded mouse_cheak_usb
+0x3df1 mouse_usb_no_exsit
+0x3df4 mouse_usb_exsit
+0x3df7 mouse_usb_mode
+0x3e07 mouse_clkn_check
+0x3e0c mouse_clkn_timeout
+0x3e0f mouse_wired_to_usb
+0x3e12 mouse_data_push
+0x3e1a mouse_enable_clock_qdecoder
+0x3e1e mouse_param_init
+0x3e44 mouse_sensor_set_angle
+0x3e4c mouse_select_adc
+0x3e54 mouse_adc_init
+0x3e59 mouse_adc_init_data_vinlpm
+0x3e62 mouse_adc_init_data_hvin
+0x3e6b mouse_adc_init_data_io
+0x3e6e mouse_gpio_init
+0x3e97 mouse_wheel_gpio_set_wake
+0x3e9f mouse_before_hibernate_wheel_gpio_set
+0x3ea7 mouse_gpio_set_pupd_by_input
+0x3eb3 mouse_before_hibernate
+0x3ebb mouse_process_lpm_before
+0x3ebf mouse_lpm_before_common
+0x3ede mouse_spi_clk_gpio
+0x3ee0 mouse_wheel_check
+0x3eee mouse_t_wheel_scan
+0x3efe mouse_t_wheel_scan_judge1
+0x3f02 mouse_t_wheel_scan_judge2
+0x3f06 mouse_t_wheel_scan_judge11
+0x3f08 mouse_t_wheel_scan_judge12
+0x3f0a mouse_t_wheel_scan_judge21
+0x3f0c mouse_t_wheel_scan_judge22
+0x3f0e mouse_t_wheel_scan_judge3
+0x3f16 mouse_t_wheel_scan_judge30
+0x3f19 mouse_t_wheel_scan_judge31
+0x3f1c mouse_t_wheel_scan_judge32
+0x3f1f mouse_t_wheel_scan_judge33
+0x3f22 mouse_wheel_t_forward
+0x3f2c mouse_wheel_t_back
+0x3f36 mouse_wheel_scan
+0x3f46 mouse_wheel_scan_judge1
+0x3f4a mouse_wheel_scan_judge2
+0x3f4e mouse_wheel_scan_judge11
+0x3f50 mouse_wheel_scan_judge12
+0x3f52 mouse_wheel_scan_judge21
+0x3f54 mouse_wheel_scan_judge22
+0x3f56 mouse_wheel_scan_judge3
+0x3f5e mouse_wheel_scan_judge30
+0x3f61 mouse_wheel_scan_judge31
+0x3f64 mouse_wheel_scan_judge32
+0x3f67 mouse_wheel_scan_judge33
+0x3f6a mouse_wheel_forward
+0x3f6f mouse_wheel_back
+0x3f74 mouse_hid_connected
+0x3f77 mouse_send_process
+0x3f81 mouse_send_data
+0x3f8a mouse_send_empty_data
+0x3f8d mouse_no_data_timer_init
+0x3f90 mouse_fill_data_le
+0x3f97 mouse_motion
+0x3fa3 motion_6clk_direction_dispose
+0x3fa7 motion_12clk_direction_dispose
+0x3fab motion_9clk_direction_dispose
+0x3fb3 motion_3clk_direction_dispose
+0x3fb5 mouse_cheak_sensor_data
+0x3fc0 mouse_clear_sensor_data
+0x3fc4 mouse_p3212_sensor_motion
+0x3fc8 mouse_p3212_sensor_motion_1
+0x3fde mouse_read_3212sensor_xy_high
+0x3fe0 mouse_p3065_judge
+0x3fe2 mouse_p32xx_sensor_motion
+0x3fe7 mouse_p32xx_sensor_motion_2
+0x3fea mouse_p32xx_sensor_motion_1
+0x3ffa motion32xx_6clk_direction_selection
+0x3ffc motion32xx_9clk_direction_selection
+0x3ffe motion32xx_12clk_direction_selection
+0x4000 motion32xx_3clk_direction_selection
+0x4002 mouse_sensor_data_swap_places
+0x4007 mouse_p3610sensor_read
+0x4010 mouse_p3610_sensor_motion
+0x402d mouse_3610_smart_select
+0x4031 motion3610_6clk_direction_selection
+0x4033 motion3610_12clk_direction_selection
+0x4035 motion3610_9clk_direction_selection
+0x4037 motion3610_3clk_direction_selection
+0x4039 mouse_read_sensor3610_data
+0x4045 mouse_3610_smart_enable
+0x4051 mouse_3610_smart_disable
+0x405d mouse_read_sensor_common
+0x4064 mouse_set_qdecoder_x
+0x406d mouse_hardware_zwheel
+0x4074 mouse_hardware_zwheel_beforelpm
+0x4079 mouse_zwheel
+0x407e mouse_t_zwheel
+0x4083 mouse_check_key_gpio
+0x4090 mouse_check_s_key_gpio
+0x4099 mouse_key
+0x40a3 mouse_24g_key
+0x40a8 mouse_set_mult
+0x40ad mouse_set_ble_mult
+0x40b0 mouse_set_bt_mult
+0x40b3 mouse_sensor_sdio_low
+0x40be mouse_sensor_sdio_low2
+0x40c0 mouse_spi_sdio_gpio_pollup
+0x40c2 mouse_spi1_sdio_gpio_pollup
+0x40c4 mouse_spi2_sdio_gpio_pollup
+0x40c6 mouse_init_sunt
+0x40cb mouse_init_sensor
+0x40d1 mouse_twspi_reset
+0x40d5 mouse_init_3610sensor
+0x40d9 mouse_read_sensor_id
+0x40e0 mouse_init_p32xx_id2_judge
+0x40e6 mouse_ka8_init_param
+0x40e8 mouse_p3065xy_init_param
+0x40ea mouse_p3065_init_param
+0x40ee mouse_3212_init_param
+0x40f4 mouse_sensor_enable_wp
+0x40f6 mouse_sensor_disable_wp
+0x40f8 mouse_3204_3l_init_param
+0x4102 mouse_32xx_init_param
+0x411a mouse_32xx_init_param_1
+0x4139 mouse_3205_3t_init_param
+0x4145 mouse_init_3610sensor_reset
+0x414b mouse_init_p3610
+0x415a mouse_set_sensor_reg
+0x4165 extsign
+0x4169 extsign_bit3
+0x416d mouse_le
+0x4179 mouse_le_send_empty_packet
+0x417c mouse_priority_bb_event
+0x4191 mouse_le_pairing_complete
+0x4192 mouse_24g_attempt_fail
+0x419a mouse_24g_attempt_success
+0x419c mouse_24g_pairing_complete
+0x41aa mouse_set_24g_addr_eeprom
+0x41af mouse_store_flash_24g_address
+0x41b4 mouse_le_pairing_success
+0x41b6 mouse_le_ll_start_encryt
+0x41b9 mouse_le_enable_connect_flag
+0x41bd mouse_le_disable_connect_flag
+0x41c1 mouse_le_clean_connect_flag
+0x41c3 mouse_le_bb_event_connected
+0x41ca mouse_bb_event_pincode
+0x41cc mouse_bb_event_reconn_failed
+0x41d5 mouse_bt_hid_connected
+0x41d6 mouse_bt_event_setup_complete
+0x41d7 mouse_soft_reset
+0x41d9 mouse_bb_disconnected
+0x41e7 mouse_bb_discon_clear_stack
+0x41ef mouse_event_light_state_pairing
+0x41f2 mouse_event_light_state_hibernate
+0x41f5 mouse4_0_event_bb_disconn
+0x41f9 mouse_bb_event_timer
+0x4209 mouse_sensor_led_contrl_timer
+0x420f mouse_sensor_led_contrl
+0x4212 mouse_sensor_led_blink_state_lighting
+0x4216 mouse_sensor_led_blink_state_darking
+0x421a mouse_sensor_reset
+0x4220 mouse_p3212sensor_led_on
+0x4224 mouse_sensor_led_on_global
+0x4225 mouse_sensor_led_on
+0x422b mouse_sensor_led_off_global
+0x422c mouse_sensor_led_off
+0x422e mouse_sensor_start_blink
+0x4231 mouse_check_hid_handshake_timer
+0x4234 mouse_check_discovery_timeout_timer
+0x4237 mouse_check_direct_timeout_timer
+0x423a mouse_check_no_data_timeout_timer
+0x423d mouse_check_mouse_state_timer
+0x4240 mouse_le_enable_att_list_timer
+0x4243 mouse_24g_delay_timer
+0x4246 mouse_ban_24g_pairing_timer
+0x4249 mouse_24g_delay
+0x424a mosue_dpi_led_blink_init
+0x4250 mouse_dpi_led_blink_delay_timer
+0x4253 mouse_dpi_led_setting
+0x425e mouse_le_enable_att_list
+0x4264 mouse_check_discovery_timeout
+0x4266 mouse_check_direct_timeout
+0x426a mouse_check_no_data_timeout
+0x426c mouse_bb_event_discovery_btn
+0x4271 mouse3_0_check_reconn_target
+0x4279 mouse4_0_check_reconn_target
+0x427e mouse_reconn_setting_led_gpio
+0x4282 mouse_discover_setting_led_gpio
+0x4285 mouse_setting_led_gpio_comman
+0x428a mouse_device_led1
+0x428c mouse_device_led2
+0x428e mouse_device_led3
+0x428f mouse_led_blink
+0x4296 mouse_led_off
+0x4298 mouse_led_on
+0x429a mouse4_0_bb_event_discovery_btn
+0x429b mouse_bt_hid_handshake
+0x42a2 mouse_check_reconn_target
+0x42ab mouse_connect_24g_mode
+0x42b0 mouse_start_discovery
+0x42b7 mouse_start_discovery_norandom
+0x42ca mouse_stop_discovery
+0x42d4 mouse_stop_le_adv
+0x42d7 mouse_stop_bt3_discovery
+0x42da mouse_store_remote_bdaddr
+0x42df mouse_unplug_clean_bdaddr
+0x42e4 mouse_store_eeprom_device_info
+0x42e8 mouse_check_device_addr
+0x42ec mouse_check_le_device_addr
+0x42ef mouse_check_bt_device_addr
+0x42f1 mouse_check_bt_device_addr_common
+0x42f5 mouse_check_device_addr_end
+0x42fb mouse_before_store_reconn_info
+0x4305 mouse_store_le_device
+0x430c mouse_store_bt_device
+0x4310 mouse_clean_addr
+0x4316 mouse_eeprom_load_recon_info
+0x431a mouse_select_reconn_device
+0x4327 mouse_load_bt_device
+0x4328 mouse_load_bt_device_end
+0x432c mouse_load_le_device
+0x432d mouse_load_le_device_end
+0x4333 mouse_select_device
+0x4337 mouse_select_device_by_combination_key
+0x4339 mouse_select_device_commbination_key_up
+0x433e mouse_select_device_commbination_key_down
+0x4343 mouse_combination_select_device_timer
+0x4349 mouse_select_device_by_button
+0x434e mouse_select_device_button_up
+0x4354 mouse_select_device_button_down
+0x4359 mouse_select_device_by_switch
+0x435f mouse_cheak_select_device_by_switch
+0x4364 mouse_select_btdevice
+0x4366 mouse_cheak_select_24gdevice
+0x4369 mouse_select1_device
+0x436c mouse_select2_device
+0x4370 mouse_ready_reconnection_by_button
+0x437a mouse_store_device_number2eeprom
+0x437e mouse_set_reconnection
+0x4381 mouse_stop_bluetooth_mode
+0x4386 mouse_disconnect
+0x438e mouse_irtual_cable_unplug
+0x4392 mouse_cancel_reconnect
+0x4394 mouse_bt_discovery_by_button
+0x4399 mouse_bt_discovery_button_up
+0x439f mouse_bt_discovery_button_down
+0x43a5 mouse_bt_discovery_cheak
+0x43a7 mouse_bt_discovery_commbination_key
+0x43a9 mouse_bt_discovery_commbination_key_up
+0x43af mouse_bt_discovery_commbination_key_down
+0x43b5 mouse_bt_discovry_timer
+0x43b8 mouse_long_button_bt_discovry
+0x43bc mouse_cpi_enable
+0x43be mouse_cpi_disable
+0x43c0 mouse_select_device_enable
+0x43c2 mouse_select_device_disable
+0x43c4 mouse_bt_cannel_reconn_enable
+0x43c6 mouse_bt_cannel_reconn_disable
+0x43c8 mouse_bt_discovery_button_down_enable
+0x43ca mouse_bt_discovery_button_down_disable
+0x43cc mouse_select_device_count_clean
+0x43ce mouse_enable_function_flag
+0x43d2 mouse_disable_function_flag
+0x43d6 mouse_adc_read
+0x43e7 mouse_adc_low_voltage
+0x43e9 mouse_adc_no_low_voltage
+0x43eb mouse_low_voltage_led_timer
+0x43f9 mouse_adc_low_volatage_led_timer_count_clean
+0x43fb mouse_low_voltage_led_on
+0x43fe mouse_low_voltage_led_off
+0x4401 mouse_g24_package_data
+0x4406 mouse_g24_enter_lpm
+0x4410 mouse_24g_dpi_delay_init
+0x4414 mouse_load_flash_info_cheak
+0x441c mouse_ble_init_address
+0x4423 mouse_load_flash_flag
+0x442b mouse_load_flash_device_info
+0x4435 mouse_store_flash_device_info
+0x443b mouse_store_eerpom_dpi
+0x443f mouse_load_eeprom_dpi
+0x4443 mouse_statue_cheak_timer
+0x444f mouse_check_statue_up
+0x445b mouse_statue_up_timer_init
+0x445d mouse_statue_up_timer
+0x4460 mouse_statue_up
+0x446d mouse_two_device_statue_up
+0x4471 mouse_three_device_statue_up
+0x4476 mouse_device_blink_led_init
+0x4478 mouse_statue_led_off
+0x447a mouse_devce1_led_off
+0x447e mouse_devce2_led_off
+0x4482 mouse_devce_led_off
+0x4485 mouse_devce3_led_off
+0x4489 mouse_device1_led_on
+0x448c mouse_device2_led_on
+0x448f mouse_device3_led_on
+0x4492 mouse_polling_device
+0x44a0 mouse_power_down
+0x44a4 remote_car_init
+0x44ce remote_car_soft_switch_power_on_init
+0x44d5 remote_car_hard_switch_power_on_signal
+0x44d6 remote_car_soft_switch_power_on_signal
+0x44d9 remote_car_connect_24g_mode
+0x44da remote_car_power_off_signal
+0x44db remote_car_ui_led_init
+0x44de remote_car_ui_led_init_1
+0x44e0 remote_car_pairing_led_gpio_set
+0x44e2 remote_car_init_environment
+0x44e6 remote_car_in_enter_hibernate
+0x44e9 remote_car_process_lpm_before
+0x44ea remote_car_g24_enter_lpm
+0x44ed remote_car_process_auto_pair_exit
+0x44ee remote_car_key_scan_process
+0x44ef remote_car_scale_process_idle
+0x44f2 remote_car_scale_process_bb_event
+0x44f9 remote_car_24g_attempt_fail
+0x44fb remote_car_24g_pairing_complete
+0x44ff remote_car_24g_attempt_success
+0x4503 remote_car_24g_status_process
+0x4508 remote_car_scale_process_paired
+0x450a remote_car_scale_process_shutdown
+0x450e remote_car_event_timer
+0x4510 remote_car_no_data_timer
+0x4515 remote_car_get_adc_default_data
+0x451a remote_car_rocker_get_x
+0x451f remote_car_rocker_get_y
+0x4525 remote_car_rocker_get_value
+0x452e remote_car_rocker_mid_value_adjust
+0x4534 remote_car_rocker_mid_adjust_positive
+0x4537 remote_car_rocker_translate_key
+0x453a remote_car_rocker_positive_key
+0x453c remote_car_rocker_negative_key
+0x453e remote_car_rocker_middle_key
+0x4540 remote_car_get_adc_from_gpio6
+0x4542 remote_car_get_adc_from_gpio7
+0x4544 remote_car_rocker_process
+0x4546 remote_car_read_rocker_check_start
+0x4550 remote_car_rocker_x_to_key
+0x4554 remote_car_rocker_y_to_key
+0x4557 remote_car_rocker_to_key
+0x455a rocker_to_queue_set_0
+0x455d rocker_to_queue_set_2
+0x4560 remote_car_send_key_data
+0x4568 remote_car_key_is_press
+0x456b remote_car_attack_key_press
+0x456f remote_car_motor_key_press
+0x4574 remote_car_single_motor_key_is_press
+0x457a remote_car_double_motor_key_press
+0x4580 remote_car_key_is_release
+0x4583 remote_car_attack_key_release
+0x4586 remote_car_motor_key_release
+0x458b remote_car_device_layout_select
+0x458f remote_car_send_motor1_key0_press
+0x4591 remote_car_send_motor1_key1_press
+0x4593 remote_car_send_motor2_key2_press
+0x4595 remote_car_send_motor2_key3_press
+0x4597 remote_car_send_double_motor_key0_press
+0x459a remote_car_send_double_motor_key1_press
+0x459d remote_car_send_double_motor_key2_press
+0x45a0 remote_car_send_double_motor_key3_press
+0x45a3 remote_car_send_attack_key4_press
+0x45a5 remote_car_send_attack_key5_press
+0x45a7 remote_car_send_fire_key6_press
+0x45a9 remote_car_single_motor_key_rel
+0x45af remote_car_double_motor_key_rel
+0x45b5 remote_car_send_motor1_key1_rel
+0x45b7 remote_car_send_motor2_key3_rel
+0x45b9 remote_car_send_double_motor_key3_rel
+0x45bc remote_car_send_attack_key5_rel
+0x45be remote_car_send_key
+0x45c0 remote_car_send_attack
+0x45c2 remote_car_g24_package_data
+0x45c7 remote_car_g24_package_data_continue
+0x45cc remote_car_g24_send_empty
+0x45d1 remote_car_moto_data
+0x45d5 remote_car_moto_data_next
+0x45dc remote_car_moto_data_enable_user
+0x45de shutter_init
+0x4609 shutter_hart_swtich_power_on
+0x460c shutter_le_scale_lpm_lock
+0x4612 shutter_process_bb_event
+0x4626 classic_shutter_process_baseband_connect
+0x4629 classic_shutter_process_baseband_disconnect
+0x462b classic_shutter_disconnect_clear_flag
+0x4631 classic_shutter_process_reconnect_failed
+0x4633 classic_shutter_process_setup_complete
+0x4635 classic_shutter_process_hid_connect
+0x4638 classic_shutter_process_hid_disconnect
+0x463c classic_shutter_process_hid_handshake
+0x4644 classic_shutter_process_reconnect_page_timeout
+0x4645 classic_shutter_process_virtual_cable_unplug
+0x4648 classic_shutter_process_remote_unsniff
+0x4649 classic_shutter_process_store_reconnect_information
+0x464f classic_shutter_load_reconn_info
+0x4658 ble_shutter_process_baseband_connect
+0x465c ble_shutter_process_baseband_disconnect
+0x465f ble_shutter_process_reconnect_complete
+0x4665 ble_shutter_process_parse_connect_parameter_update_response
+0x466b shutter_process_soft_swtich_button_long_press
+0x466c shutter_process_soft_swtich_button_down
+0x4672 shutter_store_currenct_led_state
+0x4677 shutter_process_soft_swtich_button_up
+0x467c shutter_load_currenct_led_state
+0x4686 shutter_le_bb_event_timer
+0x468c shutter_check_sleep_timer
+0x468f shutter_sleep_timeout
+0x4693 shutter_check_power_off_timer
+0x4696 shutter_check_power_off_timeout
+0x469e classic_shutter_check_unplug_timer
+0x46a1 classic_shutter_unplug_timeout
+0x46a6 classic_shutter_hid_handshake_timer
+0x46a9 classic_shutter_hid_disconn_timer
+0x46ac ble_shutter_reconn_timer
+0x46b1 shutter_process_idle
+0x46b3 shutter_process_lpm_before
+0x46b4 shutter_le_before_hibernate
+0x46b6 shutter_stop_bluetooth_discovery
+0x46ba ble_shutter_stop_bluetooth_discovery
+0x46be classic_shutter_stop_bluetooth_discovery
+0x46c2 shutter_start_bluetooth_discovery
+0x46c8 classic_shutter_start_discovery
+0x46cc ble_shutter_start_discovery
+0x46d9 shutter_start_reconnect
+0x46df classic_shutter_start_reconnect
+0x46e4 ble_shutter_start_reconnect
+0x46f0 shutter_ble_adv_interval_set
+0x46f4 shutter_disconnect_current_connection
+0x46f8 app_check_reconn_target
+0x46fc app_check_reconn_target_loop
+0x4701 found_reconn_device
+0x4708 shutter_check_data_enable
+0x470d shutter_check_bt_data_enable
+0x4710 shutter_check_ble_data_enable
+0x4713 shutter_check_bluetooth_conn
+0x4718 shutter_change_bluetooth_status_bt_disconn
+0x471c classic_shutter_change_bluetooth_status_bt_disconn
+0x471f ble_shutter_change_bluetooth_status_bt_disconn
+0x4720 shutter_check_send_data
+0x4729 shutter_key_change
+0x472d shutter_key_press
+0x4730 shutter_key_release
+0x4732 push_queue_press_or_release
+0x4735 push_buffer_in_queue
+0x473a shutter_send_data_to_master
+0x473e pop_queue_to_ble_data
+0x4746 le_send_notify_from_list
+0x474e pop_queue_to_classic_data
+0x4758 classic_send_hid_data
+0x4762 queue_push_one_byte
+0x4765 queue_pop_one_byte
+0x476a ble_shutter_receive_data
+0x476d shutter_init_param
+0x477a shutter_load_buffer_config_form_datarom
+0x4782 shutter_load_ble_gatt_form_datarom
+0x4785 shutter_load_bt_sdp_form_datarom
+0x4788 shutter_init_bluetooth_config
+0x4790 shutter_init_bluetooth_config_gpio_input
+0x4793 shutter_load_bluetooth_config
+0x4797 shutter_load_bluetooth_config_label
+0x47a9 shutter_load_bluetooth_config_read_gpio_input
+0x47ae shutter_check_load_config_flag
+0x47b4 shutter_load_bluetooth_config_by_otp
+0x47ba shutter_load_bluetooth_config_store_name
+0x47c7 shutter_load_bluetooth_config_by_eeprom
+0x47da shutter_load_bluetooth_config_by_user_config
+0x47e8 shutter_store_config
+0x47e9 shutter_load_bluetooth_config_custom
+0x47f0 shutter_random_mac_addr
+0x47f9 shutter_write_random_mac_addr_to_eeprom
+0x4802 shutter_write_random_mac_addr
+0x4806 shutter_soft_swtich_power_on
+0x4807 shutter_soft_swtich_power_off
+0x480b shutter_wait_power_off
+0x480e ui_soft_swtich_init
+0x4816 ui_soft_swtich_init_power_on_time
+0x481b ui_soft_switch_botton_up
+0x481f ui_soft_switch_botton_long_press
+0x4822 ui_soft_switch_power_on
+0x482a ui_soft_switch_power_off
+0x4830 shutter_byteswap
+0x483f shutter_random_addr_by_otp
+0x4849 sim_iic_read_eep_data
+0x4856 sim_iic_read_eep_data_2k
+0x485a sim_iic_read_eep_data_loop
+0x4860 sim_iic_write_eep_data
+0x486b sim_iic_write_eep_data_loop
+0x4871 sim_iic_wait_ack
+0x4875 sim_iic_wait_ack_loop
+0x4879 sim_iic_ack_slave
+0x487f sim_iic_read_byte
+0x4882 sim_iic_read_byte_loop
+0x488d sim_iic_send_byte
+0x4890 sim_iic_send_byte_loop
+0x489b sim_iic_start
+0x48a1 sim_iic_stop
+0x48a6 sim_iic_scl_output_high
+0x48a9 sim_iic_scl_output_low
+0x48ac sim_iic_sda_output_high
+0x48af sim_iic_sda_output_low
+0x48b2 sim_iic_config_gpio
+0x48be sim_iic_release_sda
+0x48c7 sim_iic_read_sda_level
+0x48d2 sim_iic_delay
+0x48d3 usb_isr
+0x48ea usb_init
+0x48fb usb_offline_check_init
+0x48fd usb_offline_state
+0x4903 usb_nak_state
+0x490b usb_mem_devicedesc_init
+0x4919 usb_init_param
+0x492b usb_tx_interval_config
+0x492e usb_nak_state_judge
+0x4931 usb_nak_state_timer_init
+0x4936 usb0_attached_state_judge
+0x493b usb_clear_halt_dispose
+0x4941 usb0_fifo_empty
+0x4943 usb_rx_no_data
+0x4946 usb_rx_read
+0x494a usb_status1
+0x4955 usb_class_type
+0x495a usb_in_device
+0x4962 usb_out_device
+0x496a usb_in_standard_req
+0x4970 usb_in_class_req
+0x4975 usb_in_manufacturer_req
+0x4976 usb_out_standard_req
+0x497e usb_out_class_req
+0x4983 usb_out_manufacturer_req
+0x4984 usb0_force_stall
+0x4988 usb0_reply_zerolen
+0x498a usb0_request_get_configuration
+0x499c usb0_request_get_cfg_dev_cfg
+0x499e usb0_request_get_cfg_dev_addr
+0x49a0 usb0_request_get_descriptor
+0x49a9 dsc_hid_info
+0x49ae dsc_hid_info_interface0
+0x49b2 dsc_hid_info_interface1
+0x49b6 dsc_device_info
+0x49ba dsc_info_set_data_len
+0x49bf dsc_info_set_initial_data_len
+0x49c0 dsc_info_set_data_size_completed
+0x49c5 dsc_info_set_current_data_len
+0x49c7 usb_set_high_addr
+0x49cb usb0_set_addr
+0x49cf dsc_config_info
+0x49d2 dsc_string_info
+0x49e0 dsc_hid_report_info
+0x49e5 dsc_hid_report_info0
+0x49ea usb0_request_get_interface
+0x49fc usb0_request_get_status
+0x4a0d usb0_get_status_in_device
+0x4a12 usb_send_zero_packet
+0x4a14 usb_send_ones_packet
+0x4a16 usb_send_two_packet
+0x4a18 usb0_get_status_in_interface
+0x4a1c usb0_get_status_in_endpoint
+0x4a25 usb0_get_status_in_ep_in_ep0
+0x4a26 usb0_get_status_in_ep_in_ack
+0x4a29 usb0_get_status_in_ep_in_ep1
+0x4a2b usb0_get_status_in_ep_in_ep2
+0x4a2d usb0_get_status_in_ep_in_ep3
+0x4a2f usb_get_idle
+0x4a33 usb_get_report
+0x4a38 usb_get_report_dispose
+0x4a3b usb_get_report_send_data
+0x4a3f usb_get_report_data_release
+0x4a42 usb_get_report_data_success
+0x4a45 usb_get_protocol_req
+0x4a4d usb_get_report_protocol
+0x4a4e usb_get_boot_protocol
+0x4a4f usb0_request_clear_feature
+0x4a5e usb0_request_clear_feature_out_device
+0x4a66 usb0_request_clear_feature_out_interface
+0x4a67 usb0_request_clear_feature_out_endpoint
+0x4a70 usb0_force_stall_ep0_in_off
+0x4a72 usb0_force_stall_ep1_in_off
+0x4a73 usb0_force_stall_ep1_in_off_reply
+0x4a75 usb0_force_stall_ep2_in_off
+0x4a77 usb0_force_stall_ep3_in_off
+0x4a79 usb0_request_set_feature
+0x4a82 usb0_request_set_feature_out_device
+0x4a8b usb_wakeup_timer_reinit
+0x4a8f usb0_request_set_feature_out_interface
+0x4a90 usb0_request_set_feature_out_endpoint
+0x4a9b usb0_force_stall_ep0_in_on
+0x4a9d usb0_force_stall_ep1_in_on
+0x4a9f usb0_force_stall_ep2_in_on
+0x4aa1 usb0_force_stall_ep3_in_on
+0x4aa3 usb0_request_set_address
+0x4ab4 usb_usb0_state_set_dev_default
+0x4ab5 usb0_request_set_wait_address
+0x4aba usb_usb0_state_set_dev_addr
+0x4abc usb0_request_set_configuration
+0x4ad1 usb0_request_set_cfg_cfg_state
+0x4ad5 usb0_request_set_cfg_stay_addr_state
+0x4ad7 usb0_request_set_interface
+0x4ae8 usb_set_idle
+0x4af5 usb_clear_remote_wakeup_set0
+0x4af9 usb_set_report
+0x4b03 usb_set_report_resume_judge
+0x4b11 usb_set_protocol_req
+0x4b17 usb_set_boot_protocol
+0x4b1a usb_set_report_protocol
+0x4b1e usb0_respond_length
+0x4b21 usb0_respond
+0x4b2c usb0_respond0
+0x4b30 usb0_respond1
+0x4b35 usb_no_respond_data
+0x4b37 usb0_tx
+0x4b3e usb0_tx_info
+0x4b43 usb0_tx0
+0x4b47 usb0_tx1
+0x4b52 usb_tx_ep1
+0x4b54 usb_tx_loop
+0x4b57 usb_trig
+0x4b5e usb_tx_ep2
+0x4b61 usb_tx
+0x4b6f usb_tx_data_ep1
+0x4b7a usb_tx_data_ep2
+0x4b86 usb_tx_fifo_release
+0x4b89 usb_tx_ms_data
+0x4b91 usb_tx_ms_data_mac_boot_mode
+0x4b92 usb_tx_ms_data_mac_boot_regroup
+0x4ba0 usb_tx_ms_data_normal_mode
+0x4ba1 usb_tx_mac_boot_ms_regroup_r_or_lrkey
+0x4ba4 usb_tx_kb_multikey_data
+0x4ba8 usb_tx_kb_normal_data
+0x4bac usb_inwake_state_tx_dispose
+0x4bb0 usb_clear_tx_wait
+0x4bb2 usb_mac_wakeup_trig
+0x4bb7 usb_mac_wakeup_judge
+0x4bbb usb_mac_wakeup
+0x4bbf usb_windows_wakeup
+0x4bc2 usb_wakeup
+0x4bc8 hci_rx_h4
+0x4bcb hci_rx_h4_1
+0x4bce hci_h4_parse_packet
+0x4bd8 hci_h4_parse_packet_wait_len
+0x4bdf hci_h4_parse_packet_wait
+0x4be6 h4_rx_discard_packet
+0x4bee h4_get_rx_payload_len
+0x4bf3 h4_get_rx_payload_len_acl
+0x4bf5 h4_get_tx_ptr
+0x4bf9 h4_send_packet_event
+0x4bfb h4_send_packet_acl
+0x4bfc h4_send_packet
+0x4c0b h4_send_acl_trigger_clear
+0x4c0e hci_init
+0x4c13 hci_lpm_init
+0x4c1a hci_reinit
+0x4c21 hci_init_common
+0x4c28 hci_sel_init
+0x4c2e hci_rx_packet
+0x4c37 hci_rx_packet_cont
+0x4c3a uart_send_byte
+0x4c3f process_hci_cmd
+0x4c44 process_hci_cmd_cont
+0x4c4d phci_grp_vendor_specific
+0x4c5c phci_grp_vendor_enter_lpm
+0x4c5f hci_enter_lpm
+0x4c62 hci_exit_lpm
+0x4c66 phci_grp_vendor_chipid
+0x4c6b phci_grp_vendor_baud
+0x4c6f phci_grp_vendor_patch_common
+0x4c7a phci_grp_vendor_patch
+0x4c7c phci_grp_vendor_patch_loop
+0x4c80 phci_grp_vendor_patch_check_sum
+0x4c85 phci_grp_vendor_patch_sec
+0x4c88 phci_grp_vendor_patch_sec_loop
+0x4c9c load_ucode_only_loop
+0x4ca0 load_uart_sum_loop
+0x4ca5 phci_grp_vendor_patch_sec_init
+0x4cb3 phci_grp_vendor_done
+0x4cb6 phci_grp_vendor_done_loop
+0x4cc4 phci_grp_vendor_patch_bad
+0x4cc6 phci_grp_vendor_bdaddr
+0x4cc9 phci_grp_vendor_mem
+0x4cd1 phci_grp_vendor_eep
+0x4cdc hci_normal_reply
+0x4cdd hci_command_complete
+0x4ce3 hci_send_event
+0x4ce9 hci_send_event_raw
+0x4ceb hci_send_packet
+0x4cec hci_send_commu_ready_event
+0x4cf2 hci_get_cmd_complete_ptr
+0x4cf4 hci_get_payload_ptr
+0x4cf6 hci_get_packet_ptr
+0x4cf7 hci_get_tx_ptr
+0x4cf8 calc_tx_crc16
+0x4cfa crcloop
+0x4d04 cmd_exit
+0x4d06 cmd_check_plap
+0x4d0a cmd_pair
+0x4d0f cmd_pair_passive
+0x4d17 cmd_in_sniff
+0x4d26 cmd_exit_sniff
+0x4d28 hci_idle_dispatch
+0x4d2f uart_wake_up
+0x4d33 hid_rx_process
+0x4d3f hid_rx_process_hid_control
+0x4d43 hid_rx_process_virtual_cable_unplug
+0x4d4a hid_rx_process_suspend
+0x4d4b hid_rx_process_set_report
+0x4d53 hid_rx_process_handshake
+0x4d5f hid_rx_process_data
+0x4d62 hid_rx_process_data_hid_kb
+0x4d63 hid_malloc_tx_buff
+0x4d6a l2cap_init
+0x4d6b l2cap_init_work
+0x4d6f l2cap_init_wake
+0x4d79 process_rx_l2cap_pkt
+0x4d85 l2cap_rx_multiplexing
+0x4d8a l2cap_rx_multiplexing0
+0x4d8f l2cap_check_map
+0x4d9b set_pdata_0
+0x4d9d l2cap_call_proc_signal
+0x4d9f l2cap_call_proc_signal0
+0x4da9 l2cap_call_proc_sigal_pending
+0x4db7 l2cap_sdp_conn_succ
+0x4dc3 l2cap_reset_sdp_map
+0x4dd3 check_l2cap_map
+0x4dd5 check_l2cap_map_loop
+0x4dda check_l2cap_map_used
+0x4dde check_l2cap_map_used2
+0x4de0 l2cap_call_proc_sdp
+0x4de8 ml2cap_call_proc_sdp
+0x4dec l2cap_call_proc_sdp_common
+0x4df3 l2cap_call_proc_hid
+0x4df5 l2cap_call_proc_rfcomm
+0x4dfb l2cap_call_proc_no_reply
+0x4dfc l2cap_rx_reset_state
+0x4e01 l2cap_process_signal_pkt
+0x4e08 l2cap_process_signal_pkt_loop
+0x4e10 l2cap_process_one_signal
+0x4e1e l2cap_process_one_signal_rtn
+0x4e1f l2cap_proc_signal_info_req
+0x4e2a l2cap_proc_signal_info_req_reply
+0x4e2d l2cap_proc_signal_info_req_ext
+0x4e33 l2cap_proc_signal_info_req_fix
+0x4e38 l2cap_proc_signal_info_req_common
+0x4e3a ml2cap_proc_signal_info_req
+0x4e49 l2cap_proc_signal_cmd_reject
+0x4e50 l2cap_proc_signal_cmd_reject_rtn
+0x4e51 l2cap_proc_signal_connect_req
+0x4e64 l2cap_proc_signal_connect_req_sdp
+0x4e6e store_l2cap_req_param
+0x4e7a restore_l2cap_req_param
+0x4e86 l2cap_proc_signal_connect_req_rfcomm
+0x4e92 l2cap_proc_signal_connect_req_hid_ctrl
+0x4e9d l2cap_proc_signal_connect_req_hid_int
+0x4ea9 send_connection_pending
+0x4ead send_connection_sdp_res
+0x4eb1 send_connection_res
+0x4eb3 send_connection_res0
+0x4ec4 connect_suc
+0x4ec9 connect_pending
+0x4ece already_connected
+0x4ed0 connect_req_update_byte_counts
+0x4ed4 l2cap_proc_signal_connect_req_rtn
+0x4ed5 l2cap_proc_signal_connect_rsp
+0x4eed l2cap_proc_signal_connect_rsp_sdp
+0x4ef3 l2cap_proc_signal_connect_rsp_rfcomm
+0x4ef9 l2cap_proc_signal_connect_rsp_hid_int
+0x4eff l2cap_proc_signal_connect_rsp_hid_ctrl
+0x4f05 l2cap_proc_signal_config_req
+0x4f1c l2cap_proc_signal_config_req_sdp
+0x4f26 l2cap_proc_signal_config_req_hid_ctrl
+0x4f30 l2cap_proc_signal_config_req_hid_int
+0x4f3a l2cap_proc_signal_config_req_rfcomm
+0x4f43 l2cap_send_config_rsp
+0x4f59 l2cap_send_config_rsp_is_sdp
+0x4f5a l2cap_check_channel_state
+0x4f64 l2cap_send_config_req_sdp
+0x4f6b l2cap_send_config_req_rfcomm
+0x4f72 l2cap_send_config_req_hid_ctrl
+0x4f79 l2cap_send_config_req_hid_int
+0x4f7f l2cap_generate_config_req
+0x4f97 l2cap_generate_config_req_rfcomm
+0x4f99 l2cap_generate_config_req_done
+0x4fa1 l2cap_proc_signal_config_req_rtn
+0x4fa2 l2cap_proc_signal_config_rsp
+0x4fba l2cap_proc_signal_config_rsp_sdp
+0x4fbe l2cap_proc_signal_config_rsp_rfcomm
+0x4fc2 l2cap_proc_signal_config_rsp_hid_ctrl
+0x4fc6 l2cap_proc_signal_config_rsp_hid_int
+0x4fcb l2cap_proc_signal_disconnect_req
+0x4fe6 l2cap_proc_signal_disconnect_req_hid_ctrl
+0x4fec l2cap_proc_signal_disconnect_req_hid_int
+0x4ff2 l2cap_proc_signal_disconnect_req_sdp
+0x4ff8 l2cap_disconnect_hid_control_now
+0x4ffa l2cap_disconnect_hid_interrupt_now
+0x4ffe l2cap_disconnect_sdp_now
+0x5002 l2cap_proc_signal_disconnect_req_rfcomm
+0x5008 l2cap_disconnect_rfcomm_now
+0x500a l2cap_send_disconnect_rsp_pkt
+0x5017 l2cap_proc_signal_disconnect_req_err_rtn
+0x5019 l2cap_proc_signal_disconnect_req_rtn
+0x501b l2cap_proc_signal_disconnect_rsp
+0x5035 l2cap_proc_signal_disconnect_rsp_sdp
+0x503b l2cap_proc_signal_disconnect_rsp_rfcomm
+0x5041 l2cap_proc_signal_disconnect_rsp_hid_ctrl
+0x5047 l2cap_proc_signal_disconnect_rsp_hid_int
+0x504d l2cap_proc_signal_disconnect_rsp_rtn
+0x504f l2cap_proc_signal_disconnect_rsp_err_rtn
+0x5050 l2cap_proc_signal_echo_req
+0x5060 l2cap_proc_signal_echo_rsp
+0x5061 l2cap_proc_signal_info_rsp
+0x5062 l2cap_reject_command
+0x506f l2cap_reset_rfcomm_channel_state
+0x5074 l2cap_reset_sdp_channel_state
+0x5079 l2cap_reset_hid_ctrl_state
+0x507f l2cap_reset_hid_int_state
+0x5085 l2cap_reset_hid_disconnected
+0x5087 l2cap_disconnect_interrupt_req
+0x5091 l2cap_disconnect_control_req
+0x509a l2cap_generate_disconnect_req
+0x50a8 ml2cap_send_signal_connect_req
+0x50b7 ml2cap_send_signal_config_req
+0x50cc ml2cap_send_signal_disconn_req
+0x50de ml2cap_send_signal
+0x50e7 msdp_send_req_done
+0x50ef ml2cap_rx_multiplexing
+0x50f9 ml2cap_call_proc_signal
+0x5102 ml2cap_proc_one_comm_loop
+0x5108 ml2cap_proc_one_comm
+0x5113 ml2cap_proc_signal_connect_req
+0x5116 ml2cap_proc_signal_cmd_reject
+0x511c mvptr
+0x5120 ml2cap_proc_signal_connect_rsp
+0x512e ml2cap_proc_signal_connect_refused_result
+0x5130 ml2cap_proc_signal_connect_rsp_mnosucc
+0x5132 ml2cap_proc_signal_connect_rsp_sucessful
+0x5141 ml2cap_proc_signal_connect_rsp_sdp
+0x5147 ml2cap_proc_signal_connect_rsp_rfcomm
+0x514d ml2cap_proc_signal_connect_rsp_hid_ctrl
+0x5153 ml2cap_proc_signal_connect_rsp_hid_int
+0x5158 mnosucc1
+0x5159 mnosucc
+0x515c ml2cap_proc_signal_config_rsp
+0x5176 ml2cap_proc_signal_config_rsp_sdp
+0x517a ml2cap_proc_signal_config_rsp_rfcomm
+0x517e ml2cap_proc_signal_config_rsp_hid_ctrl
+0x5182 ml2cap_proc_signal_config_rsp_hid_int
+0x5187 mcfrsdone
+0x5188 mcrsdone1
+0x5189 mloop2
+0x518d mcrsdone
+0x518e ml2cap_proc_signal_config_req
+0x51ad ml2cap_proc_signal_config_req_sdp
+0x51bb ml2cap_proc_signal_config_req_sdp_nsndreq
+0x51be ml2cap_proc_signal_config_req_rfcomm
+0x51c4 ml2cap_proc_signal_config_req_hid_ctrl
+0x51ca ml2cap_proc_signal_config_req_hid_int
+0x51cf mcfgrq_done
+0x51da mloop1
+0x51e0 mcrqdone
+0x51e1 ml2cap_proc_signal_disconn_req
+0x51fa ml2cap_proc_signal_disconn_sdp
+0x51ff ml2cap_proc_signal_disconn_hid_ctrl
+0x5201 ml2cap_proc_signal_disconn_hid_int
+0x5203 mclsrfc
+0x5205 mclssdp
+0x5213 ml2cap_proc_signal_disconn_rsp
+0x5227 ml2cap_proc_signal_disconn_rsp_sdp
+0x522a mdisdone
+0x522e ml2cap_proc_send_reject
+0x523a l2cap_get_req_id
+0x523e l2cap_get_req_id_ok
+0x5240 l2cap_malloc
+0x5247 l2cap_malloc_loop
+0x524f l2cap_malloc_next
+0x5255 l2cap_malloc_rtn
+0x5258 l2cap_malloc_fifo_out
+0x525d l2cap_malloc_free
+0x5264 l2cap_malloc_discard
+0x526e l2cap_malloc_is_fifo_full
+0x5271 l2cap_malloc_is_fifo_nearly_full
+0x5274 l2cap_malloc_is_fifo_empty
+0x5277 l2cap_malloc_fifo_get_first_ptr
+0x527a l2cap_malloc_free_loop
+0x527e l2cap_malloc_get_full_map
+0x5282 l2cap_malloc_get_full_map_loop
+0x5288 l2cap_malloc_into_fifo
+0x5295 l2cap_malloc_into_fifo_no_push
+0x5298 l2cap_malloc_into_fifo_loop
+0x52a0 l2cap_malloc_enough
+0x52a5 l2cap_malloc_enough_loop
+0x52b0 l2cap_malloc_enough_end
+0x52b6 l2cap_malloc_enough_rtn
+0x52b8 l2cap_malloc_signal_channel
+0x52c1 l2cap_get_signal_tx_buff
+0x52c3 l2cap_get_signal_tx_payload
+0x52c5 l2cap_malloc_sdp_channel
+0x52ce l2cap_get_sdp_tx_buff
+0x52d0 l2cap_get_sdp_tx_payload
+0x52d2 l2cap_malloc_rfcomm_channel
+0x52e0 l2cap_get_rfcomm_tx_buff
+0x52e2 l2cap_util_pdata_to_contw
+0x52e5 l2cap_lpm_save_calc_len
+0x52e9 l2cap_lpm_save_calc_len_loop
+0x52f5 l2cap_lpm_save_calc_len_end
+0x52f7 l2cap_lpm_get_wake_lock
+0x52f9 l2cap_lpm_put_wake_lock
+0x52fb l2cap_lpm_save_txbuf
+0x5306 l2cap_lpm_save_txbuf_loop
+0x530f l2cap_lpm_save_txbuf_nempty
+0x5318 l2cap_lpm_load_txbuf
+0x531f l2cap_lpm_load_txbuf_loop
+0x532e le_init_conn
+0x5340 le_init_master
+0x534c le_init_slave
+0x535c le_dispatch
+0x5360 le_conn_dispatch
+0x5366 le_master_dispatch
+0x5377 le_master_disconn
+0x537a le_slave_dispatch
+0x5388 le_slave_match
+0x5395 le_slave_cont
+0x539b le_slave_unsync
+0x53a0 le_check_md
+0x53a4 le_slave_more_data
+0x53a9 le_disconnect
+0x53af le_clear_connection_info
+0x53b7 le_got_first_packet
+0x53c4 le_enable
+0x53ce le_disable
+0x53d5 le_prep
+0x53de lerx_setfreq
+0x53e3 letx_setfreq
+0x53e4 letx_setfreq0
+0x53e6 le_setfreq
+0x53f3 le_ctf_normal
+0x53f6 le_ctf_low
+0x53f9 le_ctf_test
+0x53fc le_sca_map
+0x540c le_adv_access
+0x5413 le_setup
+0x541c le_setup_master
+0x5422 le_next_adv_channel
+0x5428 le_next_adv_channel_curr_channel_37
+0x542e le_next_adv_channel_curr_channel_38
+0x5434 le_next_adv_channel_curr_channel_39
+0x543a set_le_next_adv_channel_37
+0x543f set_le_next_adv_channel_38
+0x5444 set_le_next_adv_channel_39
+0x5449 le_context_nexthop
+0x5459 le_nexthop_nowrap
+0x545b le_calc_channel_map
+0x545f le_count_channels_loop
+0x5461 le_count_channels_notused
+0x5466 le_map_channel
+0x546c le_map_channel_next
+0x5472 le_map_channel_cont
+0x5474 le_map_channel_loop
+0x5477 le_map_channel_skip
+0x547c le_map_channel_end
+0x547f le_wait_tx
+0x5482 le_wait_master
+0x5485 le_receive_adv
+0x5489 le_receive_slave
+0x548e le_receive_packet
+0x548f le_receive_rxon
+0x549a le_receive_on_attempt
+0x54a1 le_receive_skip
+0x54ad lerx_loop
+0x54b1 lerx_nopayload
+0x54bf le_transmit_receive_sifs
+0x54c1 le_transmit_receive_sifs_notx
+0x54c7 le_transmit_norx
+0x54c9 le_transmit
+0x54cd le_transmit0
+0x54df letr_loop
+0x54e2 letr_nopayload
+0x54e9 le_send_adv_ind
+0x54f9 le_send_adv_direct_ind
+0x5504 le_send_adv_transmit
+0x550b le_send_scan_request
+0x551c le_send_scan_response
+0x552b le_connect_request
+0x5535 le_con_req_hop_retry
+0x5572 le_init_adv
+0x5575 le_update_param
+0x559d le_update_channel_map
+0x55aa le_acknowledge
+0x55bc le_ack_unenc
+0x55c0 le_check_wak
+0x55d2 le_set_enc
+0x55d6 le_clear_enc
+0x55e1 le_wait_adv
+0x55e8 le_scan
+0x5608 le_create_conn
+0x5619 le_scan_check_sender_addr_type
+0x561e le_prepare_tx
+0x5642 le_check_tx_md
+0x5649 le_check_continue
+0x5650 le_set_md
+0x5652 le_clear_md
+0x5654 le_update_tx_type
+0x5658 le_att_check_notification_enable
+0x5664 le_send_empty
+0x5666 le_send_packet
+0x5676 le_send_no_txlen
+0x567a get_lpm_wake_ble_rx_lock
+0x567c put_lpm_wake_ble_rx_lock
+0x567e le_parse
+0x568d le_parse_l2cap
+0x569a le_check_l2cap_complete
+0x569e le_check_l2cap_cid_legal
+0x56a9 le_check_l2cap_llid_start
+0x56bd le_check_l2cap_continue_legal
+0x56c1 le_check_l2cap_llid_continue
+0x56d7 le_get_search_att_type
+0x56d9 le_get_search_common
+0x56db le_get_search_common2
+0x56df le_get_search_att_uuid
+0x56e2 le_writeatt_cb
+0x56e4 le_supervision_update
+0x56ed le_supervision_flush
+0x56f0 le_adv
+0x56f2 le_adv_loop
+0x56f9 le_adv_loop_tx
+0x5706 le_adv_not_match
+0x5713 le_receive_window_size
+0x5728 le_parse_connect_req
+0x5756 le_init_attlist_search
+0x575f le_att_handle_inrange
+0x5768 le_att_handle_blank
+0x576a le_att_get_handle_ptr
+0x576d le_att_get_handle_ptr2
+0x5770 le_att_get_handle_loop1
+0x5779 le_att_get_handle_ptr_found
+0x577c le_att_get_short_uuid_ptr
+0x577f le_att_get_short_uuid_loop
+0x578a le_att_get_handle_info_from_ptr
+0x578c le_att_get_handle_info
+0x578e le_att_get_handle_info_fast
+0x5790 le_att_get_handle_loop
+0x5799 le_att_unfind_handle
+0x579a le_att_finded_handle
+0x57a3 le_modified_name
+0x57a6 le_modified_name_att_list
+0x57b5 le_name_length_longer_than_att
+0x57b8 le_modified_name_adv
+0x57c5 le_modified_name_adv_and_scan
+0x57d7 le_modified_name_adv_and_scan_store_data
+0x57dd le_modified_name_adv_and_scan_name_overflow
+0x57df le_modified_name_adv_loop
+0x57ea le_modified_name_adv_loop2
+0x57ee le_modified_name_adv_found_name
+0x57f0 memcpy_empty
+0x57f4 le_lpm_set_mult
+0x57f8 le_lpm_set_mult_attempt
+0x5806 le_lpm_lost
+0x580c le_set_config_fixed_tk
+0x580e le_clr_config_fixed_tk
+0x5810 le_set_config_fixed_ltk
+0x5812 le_clr_config_fixed_ltk
+0x5814 le_set_config_more_data
+0x5816 le_clr_config_more_data
+0x5818 le_set_config_read_authentication
+0x581a le_clr_config_read_authentication
+0x581c le_set_config_write_authentication
+0x581e le_clr_config_write_authentication
+0x5820 le_set_config_short_mult
+0x5822 le_clr_config_short_mult
+0x5824 le_set_config
+0x5828 le_clr_config
+0x582c le_set_fixed_ltk
+0x5839 le_set_justwork
+0x583f le_fifo_malloc_tx_empty
+0x5842 le_fifo_malloc_tx_ll
+0x5847 le_fifo_malloc_tx_l2cap
+0x5850 le_fifo_malloc_tx
+0x5855 le_fifo_malloc_tx_loop
+0x585a le_fifo_malloc_tx_got_empty
+0x5861 le_fifo_tx_find_empty_ptr
+0x5863 le_fifo_tx_find_empty_ptr_loop
+0x5869 le_fifo_tx_found_empty_ptr
+0x5873 le_fifo_get_first_tx_ptr
+0x5876 le_fifo_get_second_tx_ptr
+0x5879 le_fifo_get_last_tx_ptr
+0x587c le_fifo_get_last_tx_ptr0
+0x5884 le_fifo_get_first_l2cap_ptr
+0x5887 le_fifo_get_first_att_ptr
+0x588a le_fifo_get_last_att_ptr
+0x588d le_fifo_get_last_l2cap_ptr
+0x5890 le_fifo_check_full
+0x5892 le_fifo_check_nearly_full
+0x5894 le_fifo_check_empty
+0x5896 le_fifo_release_first_node
+0x589f le_fifo_release_first_node_loop
+0x58ab le_parse_att
+0x58ba le_send_att_exchange_mtu_requset
+0x58c1 le_parse_att_exchange_mtu_request
+0x58c2 le_send_att_exchange_mtu_response
+0x58c9 le_parse_att_exchange_mtu_response
+0x58cc le_parse_att_find_information_request
+0x58cf le_send_att_find_information_response
+0x58d1 le_send_att_find_information_res_loop
+0x58e1 le_send_att_find_information_res_store_info
+0x58ea le_send_att_find_information_res_cont
+0x58ed le_send_att_find_information_res_next
+0x58f0 le_send_att_find_information_res_end
+0x58f2 le_parse_att_find_by_type_value_request
+0x58fb le_start_end_handle_check_1
+0x5902 le_start_end_handle_check_1_fail
+0x5905 le_send_att_find_by_type_value_response
+0x590c le_send_att_find_by_type_value_res_primary
+0x5911 le_send_att_find_primary_search_loop
+0x5921 le_send_att_find_primary_search_loop1
+0x5925 le_send_att_error_response_notfound2
+0x5928 le_send_att_find_primary_search_end_start_handle_found
+0x5930 le_send_att_find_primary_search_end_ending_handle_found
+0x5936 le_send_att_find_primary_search_end
+0x593f le_parse_att_read_by_type_request
+0x5942 le_send_att_read_by_type_response
+0x5951 le_send_att_read_by_type_response_loop
+0x596b le_send_att_read_by_type_response_next_handle
+0x596d le_send_att_read_by_type_response_end
+0x596f le_send_att_read_by_type_res_found_next
+0x597d le_send_att_read_by_type_write_properties
+0x5984 le_send_att_read_by_type_write_uuid
+0x5990 le_send_att_read_by_type_res_not_characteristic
+0x5992 le_send_att_read_by_type_res_not_char_loop
+0x5998 le_send_att_read_by_type_res_not_char_common
+0x59a6 le_send_att_read_by_type_res_not_char_next
+0x59a8 le_send_att_read_by_type_res_device_name
+0x59bc le_parse_att_read_request
+0x59bf le_send_att_read_response
+0x59ca le_send_att_read_response_less
+0x59d3 le_send_device_name
+0x59dd le_send_att_read_response_check_auth
+0x59e4 le_parse_att_read_blob_request
+0x59e6 le_send_att_read_blob_response
+0x59f5 le_send_att_read_blob_response_less
+0x59fa le_parse_att_read_by_group_type_request
+0x59fd le_send_att_read_by_group_type_response
+0x5a05 le_send_att_read_by_group_type_response_loop
+0x5a19 le_send_att_read_by_group_type_store_write_record
+0x5a1f le_send_att_read_by_group_type_store_record
+0x5a23 le_send_att_read_by_group_type_next_handle
+0x5a25 le_send_att_read_by_group_type_end0
+0x5a28 le_send_att_read_by_group_type_end1
+0x5a2c le_send_att_read_by_group_type_end_common
+0x5a2f le_parse_att_write_request
+0x5a33 le_send_att_write_response_check_auth
+0x5a3d le_send_att_write_response
+0x5a42 le_check_encrypt_state
+0x5a48 le_parse_att_prepare_write_request
+0x5a4d le_send_att_prepare_write_response
+0x5a5b le_send_att_execute_write_response
+0x5a60 le_parse_att_write_command
+0x5a64 le_att_malloc_tx_notify
+0x5a6d le_att_malloc_tx_indication
+0x5a76 le_send_att_error_response_notfound
+0x5a77 le_send_att_error_response
+0x5a82 le_fifo_malloc_tx_l2cap_gatt
+0x5a84 le_att_next_handle
+0x5a88 le_att_check_handle_end
+0x5a8c le_att_same_type
+0x5a8e le_att_check_same_common
+0x5a94 le_att_same_uuid
+0x5a97 le_store_att_record
+0x5a9c le_write_att_record
+0x5aa1 le_write_att_record_common
+0x5aa5 le_send_auto_len_by_mem
+0x5ab1 le_get_search_handle_start_end_common
+0x5ab6 le_parse_signaling
+0x5abb le_l2cap_parse_conn_parameter_update_rsp
+0x5abf le_l2cap_tx_update_req
+0x5ac7 le_fifo_malloc_tx_l2cap_signaling
+0x5acf le_l2cap_update_signaling_identifier
+0x5ad3 le_l2cap_reset_signaling_identifier
+0x5ad5 le_pairing_mode_init
+0x5add le_set_pairing_mode_secure_justwork
+0x5adf le_set_pairing_mode_secure_numeric
+0x5ae2 le_set_pairing_mode_secure_passkey
+0x5ae4 le_set_no_pairing
+0x5ae5 le_set_noinputnooutput
+0x5ae7 le_set_pairing_mode_lagacy_just_work
+0x5ae9 le_set_pairing_mode_lagacy_passkey
+0x5aea le_set_displayonly
+0x5aec le_secure_connection_enable
+0x5af0 le_secure_connection_disable
+0x5af4 le_parse_smp
+0x5b02 le_send_smp_security_request
+0x5b09 le_parse_smp_pairing_request
+0x5b18 le_set_tk_0
+0x5b1b le_parse_smp_pairing_req_passkey
+0x5b1d le_genernate_tk
+0x5b24 le_parse_smp_pairing_req_fixed_passkey
+0x5b26 le_check_master_support_secure_connect
+0x5b2b le_send_smp_pairing_response
+0x5b30 le_parse_smp_pairing_confirm
+0x5b37 le_parse_smp_pairing_confirm_secure_passkey
+0x5b3d le_send_smp_pairing_confirm
+0x5b45 le_send_smp_pairing_confirm_sc
+0x5b4d le_parse_smp_pairing_random
+0x5b53 le_send_pairing_confirm_value_failed
+0x5b54 le_send_pairing_failed
+0x5b5a le_parse_smp_pairing_failed
+0x5b5f le_smp_pairing_fail_reason_not_support_pairing
+0x5b61 le_parse_smp_pairing_random_sc
+0x5b6c le_parse_smp_pairing_random_sc_passkey
+0x5b75 le_parse_smp_pairing_random_success
+0x5b7a le_send_smp_pairing_random
+0x5b80 le_parse_smp_encryption_information
+0x5b82 le_send_smp_encryption_information
+0x5b8a le_send_fixed_ltk
+0x5b8c le_send_smp_master_identification
+0x5b98 le_send_smp_identity_information
+0x5ba0 le_send_smp_identity_address_information
+0x5ba9 le_send_pairing_fail_unspecified_reason
+0x5bab le_check_init_key_distribution
+0x5baf le_parse_smp_identity_information
+0x5bb9 le_check_master_addr_type
+0x5bc0 le_parse_smp_identity_address_information
+0x5bc4 le_parse_smp_security_request
+0x5bc5 le_parse_smp_public_key
+0x5bca le_parse_smp_dhkey_check
+0x5bcf le_send_smp_pairing_public_key
+0x5bd5 le_send_smp_pairing_dhkey_check
+0x5bdb le_check_paring_time
+0x5be4 le_pairing_sm
+0x5bef le_pairing_sm_send_sec_req
+0x5bf5 le_pairing_sm_start
+0x5bf7 le_pairing_sm_rcv_pairing_req
+0x5bfb le_pairing_sm_after_auth
+0x5bfe le_pairing_sm_after_auth_start_enc
+0x5c07 le_pairng_sm_send_enc_information
+0x5c09 le_pairng_sm_send_master_indentification
+0x5c10 le_pairng_sm_send_indentity_information
+0x5c12 le_parse_start_enc_rsp_after_auth_end
+0x5c18 le_secure_connect_sm
+0x5c26 le_sc_sm_passkey_wait_confirm
+0x5c30 le_sc_sm_wait_confirm_gkey
+0x5c35 le_sc_confirm_gkey_ok
+0x5c39 le_sc_sm_receive_dhkey
+0x5c3d le_dhkey_ready
+0x5c41 le_dhkey_ready_common
+0x5c47 le_dhkey_check_fail
+0x5c49 le_dhkey_check_ok
+0x5c52 le_sc_sm_send_public_key
+0x5c55 le_sc_sm_ready_send_pairing_confirm
+0x5c56 le_sc_sm_send_public_key_passkey
+0x5c58 le_sc_sm_receive_public_key
+0x5c5c le_public_key_ready
+0x5c5f le_sc_sm_wait_send_public_key
+0x5c62 le_fifo_malloc_tx_l2cap_smp
+0x5c64 le_parse_ll
+0x5c7b le_parse_connection_update_req
+0x5c83 le_parse_channel_map_req
+0x5c8e le_parse_terminate_ind
+0x5c92 le_send_terminate_ind_user_terminated
+0x5c93 le_send_terminate_ind
+0x5c99 le_send_feature_rsp
+0x5c9f le_parse_version_ind
+0x5ca0 le_send_version_ind
+0x5ca6 le_parse_ping_req
+0x5ca8 le_send_ll_one_lenth
+0x5caa le_parse_enc_req
+0x5cbc le_parse_enc_req_after_auth
+0x5cbf le_parse_enc_req_fixed_ltk
+0x5cc4 le_ltk_lost
+0x5cc9 le_send_reject_ind
+0x5ccf le_send_enc_rsp
+0x5cdd le_send_start_enc_req
+0x5cdf le_send_start_enc_rsp
+0x5ce1 le_parse_enc_rsp
+0x5ce6 le_parse_start_enc_req
+0x5cea le_parse_start_enc_rsp
+0x5cef le_parse_pause_enc_req
+0x5cf3 le_send_pause_enc_rsp
+0x5cf5 le_parse_ping_rsp
+0x5cf6 init_lmp
+0x5cf7 init_lmp_work
+0x5d04 init_lmp_reinit
+0x5d07 parse_rx_done
+0x5d08 parse_lmp
+0x5d52 reject_unknown_packet
+0x5d53 reject_lmp_packet
+0x5d55 parse_lmp_clkoffset_req
+0x5d57 parse_enc_key_size_mask_req
+0x5d59 parse_lmp_set_afh
+0x5d66 parse_lmp_escape
+0x5d77 reject_unknown_ext_packet
+0x5d7a parse_lmpext_chn_classification_req
+0x5d7d parse_lmpext_iocap_req
+0x5d80 parse_lmpext_iocap_res
+0x5d82 iocap_lmpext_load
+0x5d86 iocap_lmpext_common
+0x5d88 parse_lmpext_accepted
+0x5d8d parse_lmpext_not_accepted
+0x5d92 parse_lmpext_accepted_ptt
+0x5d96 parse_lmpext_not_accepted_ptt
+0x5d9e parse_lmpext_pause_encrypt
+0x5da1 parse_lmpext_pause_encrypt_slave
+0x5da3 parse_lmpext_resume_encrypt
+0x5da5 parse_lmpext_features_req
+0x5da7 parse_lmpext_features_res
+0x5dad parse_lmpext_features_res_not_hci
+0x5db1 parse_lmp_accepted
+0x5dc2 parse_lmp_not_accepted
+0x5dcf parse_lmp_accepted_switch
+0x5dd2 parse_lmp_not_accepted_switch
+0x5dd8 parse_lmp_accepted_hostconn
+0x5dde parse_lmp_accepted_hostconn_ctn
+0x5de2 parse_lmp_not_accepted_hostconn
+0x5de7 parse_lmp_accepted_inrand
+0x5dee parse_lmp_accepted_enc_mode
+0x5df4 parse_lmp_accepted_enc_keysize
+0x5df5 parse_lmp_accepted_start_enc
+0x5dfd parse_lmp_accepted_stop_enc
+0x5dfe parse_lmp_not_accepted_aurand_send_detach
+0x5e01 parse_lmp_not_accepted_inrand
+0x5e07 parse_lmp_inrand_key_missing
+0x5e0a parse_lmp_not_accepted_name_req
+0x5e0b parse_lmp_not_accepted_simple_pairing_number
+0x5e0e parse_lmp_not_accepted_dhkey_check
+0x5e11 parse_lmp_not_accepted_unsniff_req
+0x5e13 parse_lmp_accepted_unsniff_req
+0x5e16 parse_lmp_accepted_sniff_req
+0x5e22 parse_lmp_not_acdcept_sniff_req
+0x5e24 parse_lmp_crypt_key
+0x5e27 parse_lmp_setup_complete
+0x5e2d parse_lmp_max_slot
+0x5e2e parse_lmp_max_slot_req
+0x5e36 parse_lmp_detach
+0x5e38 accept_lmp_msg
+0x5e3a parse_lmp_incr_power
+0x5e3c parse_lmp_decr_power
+0x5e3e parse_lmp_version_res
+0x5e42 parse_lmp_auto_rate
+0x5e43 parse_lmp_in_rand
+0x5e4e parse_lmp_inrand_res
+0x5e52 pop_tid_follow
+0x5e56 push_tid_follow
+0x5e5a parse_lmp_au_rand_moudle
+0x5e5f parse_lmp_au_rand
+0x5e6a parse_lmp_sres
+0x5e73 authentication_ok
+0x5e77 authentication_ok_common
+0x5e81 authentication_ok_conn_sm
+0x5e86 parse_lmp_comb_key
+0x5e90 parse_lmp_name_res
+0x5ea0 parse_lmp_name_res_end
+0x5ea5 parse_lmp_name_req
+0x5ea9 parse_lmp_conn_req
+0x5eaa parse_lmp_timing_accuracy_req
+0x5eac parse_lmp_features_req
+0x5eae parse_lmp_version_req
+0x5eb0 parse_lmp_supervision_timeout
+0x5eb1 parse_lmp_sniff_subrating_req
+0x5ebf parse_lmpext_packet_type_table_req
+0x5eca parse_lmp_min_power
+0x5ecb parse_lmp_page_mode_req
+0x5ecc parse_lmp_page_scan_mode_req
+0x5ecd parse_lmp_slot_offset
+0x5ed0 parse_lmp_sniff_req_check_sniff_para
+0x5ed6 parse_lmp_sniff_req
+0x5eed set_big_value_to_attempt
+0x5ef0 lmp_reject_sniff
+0x5ef2 parse_lmp_start_encryption_req
+0x5ef6 parse_lmp_stop_encryption_req
+0x5ef8 parse_lmp_switch_req
+0x5efd parse_lmp_switch_req_not_accept
+0x5f01 parse_lmp_switch_req_clear_mark
+0x5f04 parse_lmp_switch_accept
+0x5f0a parse_lmp_use_semi_permanend_key
+0x5f0b parse_lmp_unsniff_req
+0x5f10 parse_lmp_encapsulated_header
+0x5f19 parse_lmp_encapsulated_header_master
+0x5f1c parse_lmp_encapsulated_header_reject
+0x5f1e parse_lmp_accepted_encapsulated_header
+0x5f20 parse_lmp_accepted_simple_pairing_number
+0x5f23 parse_lmp_accepted_simple_pairing_number_common
+0x5f27 parse_lmp_accepted_simple_pairing_number_ssp_pin
+0x5f2b parse_lmp_accepted_simple_pairing_number_passkey
+0x5f31 authentication_passkey
+0x5f3b authentication_passkey_end
+0x5f3d parse_lmp_accepted_dhkey_check
+0x5f3e pairing_success
+0x5f43 parse_lmp_accepted_dhkey_check_common
+0x5f4b parse_simple_pairing_confirm
+0x5f51 parse_lmp_encapsulated_payload
+0x5f55 parse_encapsulated_payload_master
+0x5f62 parse_lmp_encapsulated_payload_completed
+0x5f68 parse_lmp_encapsulated_payload_reject
+0x5f6a parse_lmp_accepted_encapsulated_payload
+0x5f6e parse_lmp_encapsulated_payload_all_accepted
+0x5f75 parse_lmp_encapsulated_payload_all_accepted_get_passkey
+0x5f77 parse_lmp_encapsulated_payload_all_accepted_master
+0x5f78 parse_lmp_simple_pairing_number
+0x5f7c parse_lmp_simple_pairing_number_master
+0x5f86 parse_lmp_simple_pairing_number_master0
+0x5f88 parse_lmp_simple_pairing_number_reject
+0x5f8a parse_dhkey_check
+0x5f8e parse_dhkey_check_master
+0x5f95 number_comparison_successed
+0x5f9a parse_dhkey_check_master0
+0x5f9d parse_lmp_dhkey_check_reject
+0x5f9f number_comparison_mode
+0x5fa4 comparison_result
+0x5fa7 parse_lmp_clkoffset_res
+0x5fa8 parse_lmp_encryption_mode_req
+0x5fb3 parse_lmp_features_res
+0x5fb4 parse_lmp_features_res_not_hci
+0x5fba parse_lmp_send_conn
+0x5fbc parse_lmp_test_activate
+0x5fc1 parse_lmp_test_control
+0x5fc6 parse_lmp_test_xor
+0x5fda parse_lmp_test_control_exit
+0x5fdf parse_lmp_test_control_pattern
+0x5fe6 parse_lmp_test_control_loopback_nowhite
+0x5fe7 parse_lmp_test_control_loopback
+0x5ff3 parse_lmp_test_control_pause
+0x5ff9 lmp_copy_rand
+0x5ffc lmp_generate_key
+0x5ffe lmp_start_encryption
+0x6001 lmp_accept_inrand
+0x6006 lmp_disconnect
+0x600a send_lmp
+0x6010 send_lmp0
+0x603d send_lmp_error
+0x603f send_lmp_escape
+0x604a send_lmp_accepted
+0x6059 send_create_conn_start_l2cap_timer_sm
+0x605f send_lmp_accept_sniff_req
+0x6060 send_lmp_not_accepted
+0x6068 send_not_accept_aurand
+0x606d send_lmpext_accepted
+0x6076 send_lmpext_not_accepted
+0x6080 send_lmp_accepted_inrand
+0x6084 send_lmp_accepted_enc_mode
+0x608b send_lmp_accepted_enc_start
+0x608d send_lmp_accepted_enc_exit
+0x608f send_lmp_accepted_enc_key
+0x6092 send_lmp_accepted_connection
+0x6098 send_lmp_accept_dhkey_check
+0x6099 send_lmpext_features_res
+0x60a4 send_lmpext_io_cap_res
+0x60af responder_iocap_keyboard_only
+0x60b5 responder_iocap_display_yesno
+0x60bb responder_iocap_no_input_no_output
+0x60c1 set_ssp_mode_justwork
+0x60c5 set_ssp_mode_numeric_comparison
+0x60c7 set_ssp_mode_passkey
+0x60c9 classic_bt_set_reject_justwork_flag
+0x60cb classic_bt_clr_reject_justwork_flag
+0x60cd classic_bluetooth_set_flag
+0x60d1 classic_bluetooth_clr_flag
+0x60d5 send_lmp_io_cap_req
+0x60da send_lmpext_sniff_subrating_req
+0x60db send_lmpext_sniff_subrating_res
+0x60e4 send_lmp_name_res
+0x60ec send_lmp_name_res_offset_ok
+0x60f4 send_lmp_timing_accuracy_res
+0x60f9 send_lmp_clkoffset_res
+0x60ff send_lmp_clkoffset_res_master
+0x6103 send_lmp_version_res
+0x6108 send_lmp_features_res
+0x610d send_lmpext_features_req
+0x6118 send_lmpext_packet_type_table_req
+0x6124 ssp_enable
+0x612b ssp_disable
+0x6132 afh_init
+0x613c afh_open_all_channels
+0x6140 afh_reset_map
+0x6147 afh_clear_error_counter
+0x614a afh_set_send_flag
+0x614e send_lmpext_pause_encryption_req
+0x6152 send_lmp_detach
+0x6157 prepare_disconnect
+0x615c send_lmp_no_payload
+0x615f send_lmp_nopayload_reply
+0x6162 send_lmp_encryption_mode_req
+0x616a send_lmp_superto
+0x616f send_lmp_name_req
+0x6175 send_lmp_test_control
+0x6179 send_lmp_test_control_loop
+0x617e send_lmp_quality_of_service_req
+0x617f send_lmp_unit_key
+0x6180 send_lmp_slot_offset
+0x6191 send_lmp_slot_offset_reply
+0x6195 send_lmp_switch_req
+0x6199 switch_on_native
+0x619a switch_slack
+0x61a4 send_lmp_sniff_req
+0x61aa send_lmp_timing_accuracy_req
+0x61af send_lmp_unsniff_req
+0x61b2 send_lmp_max_slot
+0x61b7 send_lmp_max_slot_req
+0x61bc send_lmp_inc_power
+0x61c1 send_lmp_setup_complete_by_module
+0x61c3 send_lmp_setup_complete
+0x61d4 send_lmp_setup_complete_has_sent
+0x61d6 send_lmp_version_req
+0x61db send_lmp_features_req
+0x61e0 sp_master_send_io_cap_get
+0x61e5 sp_master_send_io_cap_send
+0x61e9 sp_master_send_lmp_encapsulated_header
+0x61ed sp_master_commitment_compare
+0x61f7 sp_master_commitment_compare_success
+0x61fb sp_master_send_lmp_simple_pairing_number
+0x61fd sp_send_lmp_encapsulated_header
+0x61ff send_lmp_encapsulated_header
+0x620b send_lmp_encapsulated_payload
+0x621a sp_send_lmp_simple_pairing_comfirm
+0x621d send_lmp_simple_pairing_comfirm
+0x6225 sp_send_lmp_simple_pairing_number
+0x6227 send_lmp_simple_pairing_number
+0x6233 master_sp_sm_end
+0x6234 sp_aurand_send
+0x6239 master_sp_send_lmp_dhkey_check
+0x623a sp_send_lmp_dhkey_check
+0x623c send_lmp_dhkey_check
+0x6246 send_lmp_enc_key_size_mask_res
+0x624b send_lmp_auto_rate
+0x624c send_lmp_clkoffset_req
+0x624d send_lmp_quality_of_service
+0x624e send_lmp_test_activate
+0x624f send_lmp_comb_key
+0x6259 send_lmp_inrand
+0x625c send_lmp_rand
+0x6264 send_lmp_aurand
+0x626a send_lmp_aurand_notpairing
+0x626b send_lmp_aurand_common
+0x626d send_lmp_sres
+0x627c send_lmp_sres_master
+0x627e send_lmp_sres_startenc
+0x6284 send_lmp_sres_startenc_slave
+0x6288 send_lmp_start_encryption
+0x628f send_lmp_stop_encryption_req
+0x6292 send_lmp_encryption_key_size_req
+0x6298 msg_send_lmp
+0x62a0 send_lmpext
+0x62a7 send_lmp_follow
+0x62ad send_lmp_tid
+0x62b0 send_lmp_reply
+0x62b2 send_lmp_request
+0x62b3 send_lmp_end
+0x62b7 send_lmp_exit
+0x62bc lmo_fifo_check
+0x62c1 lmo_fifo_process
+0x62c7 lmo_fifo_process_lmo0empty
+0x62d1 lmo_fifo_process_lmo2to1
+0x62d7 lmo_fifo_process_lmo1_empty
+0x62e2 special_tid_store
+0x62eb tid_reply
+0x62ef tid_initiate
+0x62f3 tid_check
+0x62f8 tid_set_reply
+0x62fc check_localsm
+0x62ff setlocalsm_master
+0x6303 setlocalsm_slave
+0x6307 check_localsm_master
+0x630b generate_random_number
+0x630c generate_random
+0x630d generate_random_loop
+0x6311 generate_linkkey
+0x631b process_conn_sm
+0x631e process_conn_sm_continue
+0x633a host_create_conn_done
+0x6340 host_conn_judge_encrypt
+0x6344 host_create_conn_done_wait
+0x6349 host_create_conn_auth
+0x634f host_create_conn_auth_wait
+0x6350 host_create_conn_pairing
+0x6355 host_create_conn_pairing_wait
+0x6356 host_creat_conn_send_feat_ext
+0x6359 host_create_conn_send_version
+0x635c host_creat_conn_wait_switch
+0x6364 host_create_conn_switch_accept
+0x6366 host_create_conn_send_features
+0x6369 host_create_conn_send_switch
+0x636f host_create_conn_send_conn_req
+0x6374 host_create_conn_wait_accept
+0x637a host_create_conn_resend
+0x637c host_create_conn_waiting
+0x637d host_create_conn_switch
+0x6386 host_create_conn_send_setup_complete
+0x6389 host_create_conn_wait_setup_complete
+0x638d host_create_conn_wait_setup_complete_rtn
+0x638f host_create_conn_master_detach
+0x6394 host_create_conn_send_detach
+0x6398 host_create_conn_auth_pair
+0x639b host_create_conn_sm_done
+0x639d host_create_conn_auth_pair_true
+0x63a9 host_create_conn_auth_pair_nokey
+0x63b0 host_create_conn_auth_pair_wait
+0x63b1 host_create_conn_encrypt
+0x63b5 host_create_conn_encrypt_start
+0x63ba host_create_conn_encrypt_wait
+0x63be host_create_conn_encrypt_wait_clear
+0x63c0 host_auth
+0x63c5 remote_auth
+0x63cb pincode_reinit
+0x63d1 twspi_reset
+0x63e0 twspi_reset2
+0x63ee twspi_disable
+0x63f2 twspi_enable
+0x63f6 twspi_enable2
+0x63fb sensor_read
+0x6405 sensor_write
+0x640d spi_ncs_gpio_init
+0x640f spi_ncs_enable
+0x6411 spi_ncs_disable
+0x6413 twspi_write
+0x6414 twspi_read
+0x6415 read_function_aes
+0x6419 read_function
+0x641c read_fuction_zero
+0x641e get_block_header
+0x641f get_block_header0
+0x6429 read_first_block
+0x6430 get_iv
+0x643c load_storage
+0x6446 load_storage_loop
+0x644d reload_eeprom
+0x6452 reload_eeprom_loop
+0x645b loadcode
+0x646e loadcode_otp
+0x646f loadcode_otp_2
+0x647b loadcode_iic
+0x647d loadcode_iic_2
+0x6486 loadcode_iic_eeprom_2k
+0x648e loadcode_spi
+0x648f loadcode_spi_2
+0x649b loadcode_hci
+0x649d loadcode_hci_enc
+0x64a1 loadcode_hci_loop
+0x64a3 clear_key_buf
+0x64aa loadcode_iic_by_eeprom
+0x64b0 loadcode_check_times
+0x64b6 loadcode_error
+0x64b9 set_ucode_status
+0x64c0 decrypt_code
+0x64c3 decrypt_code_loop
+0x64c6 decrypt_code_skip
+0x64ca load_ucode
+0x64d2 load_ucode_loop
+0x64d7 spid_init
+0x64da spid_init2
+0x64dd spid_init_common
+0x64e6 spid_reset
+0x64ec spid_write_reg
+0x64f3 spid_read_reg
+0x64f4 spid_read_regs
+0x64fc wait_spid_done
+0x6502 spid_init_flash
+0x650b spid_unlock_flash
+0x6514 flash_write
+0x651b flash_write_spi_sm_timer
+0x6522 flash_write_start
+0x6528 flash_erase_sector
+0x6530 flash_wait_erase_sector
+0x6537 flash_write_data
+0x653d flash_wait_write_data
+0x6545 flash_data_recover
+0x654a flash_data_preserve
+0x6552 spid_write_flash
+0x6556 spid_write_flash_common
+0x6562 spid_read_flash
+0x6574 spi_read_flash_wait
+0x6578 spid_load_flash
+0x6585 spi_load_flash_wait
+0x659a soft_reset_chip
+0x659c iic_init_390k
+0x65a3 iicd_init_12m
+0x65a9 iicd_init_gpio
+0x65b0 wait_iicd_done
+0x65b3 iicd_read_data
+0x65bf set_eeprom_size_2k
+0x65c2 clear_eeprom_size_2k
+0x65c5 iicd_read_eep_data_size_2k
+0x65c9 iicd_read_eep_size_2k_lcadcode
+0x65cc iicd_read_eep_size_2k
+0x65d1 iicd_write_protect_eep_data
+0x65d6 iicd_eeprom_write_enable
+0x65db iicd_wp_gpio_output_low
+0x65dd iicd_eeprom_write_disable
+0x65df iicd_read_eep_data
+0x65e5 iicd_read_eep
+0x65eb iicd_read_eep_common
+0x6601 iicd_read_eep_load_code_size_2k
+0x6606 iicd_write_eep_data
+0x6608 iicd_write_ota_data
+0x660d iicd_write_eep_loop
+0x661d iicd_eep_transparency
+0x662f iicd_eep_deal_short_packet
+0x6634 iicd_write_eep_size_2k
+0x663d iicd_write_eep
+0x664a iicd_write_eep_common
+0x6653 iic_check_eeprom_standby
+0x6655 iic_check_eeprom_standby_wait
+0x666a otp_enable_chgpump
+0x666d otp_disable_chgpump
+0x666f otp_set_addr
+0x6673 otp_write
+0x6675 otp_program
+0x6678 otp_program_bit
+0x6697 otp_skip_0
+0x66a0 otp_ce
+0x66a6 otpd_read_init
+0x66b0 otpd_wait_end
+0x66b3 otpd_read_data
+0x66b8 otpd_read_code
+0x66c2 uartd_prepare_tx
+0x66c5 uartd_send
+0x66c8 uartd_rxdone
+0x66cb uartd_prepare_rx
+0x66ce uart_set_baud_by_mem
+0x66d1 uart_copy_tx_bytes_fast
+0x66d3 uart_copy_tx_bytes_fast_loop
+0x66d8 uart_copy_tx_bytes_fast_loop_four
+0x66de uart_tx_8_bytes
+0x66e1 uart_tx_4_bytes
+0x66e4 uart_copy_tx_bytes
+0x66e6 uart_copy_tx_bytes_loop
+0x66ea uart_copy_rx_bytes_fast
+0x66ec uart_copy_rx_bytes_fast_loop
+0x66f1 uart_copy_rx_bytes_fast_loop_four
+0x66f7 uart_rx_8_bytes
+0x66fa uart_rx_4_bytes
+0x66fd uart_copy_rx_bytes
+0x66ff uart_copy_rx_bytes_loop
+0x6703 uart_copy_rx2tx
+0x6705 uart_copy_rx2tx_loop
+0x6709 app_store_nvram_event
+0x670b check_51cmd_update_device_record
+0x6711 write_device_record
+0x6715 write_device_loop_find
+0x6721 write_device_loop_find0
+0x6725 set_index_finded_device
+0x672b set_index_find_device_master_addr
+0x6730 store_rec_data_common
+0x6733 set_index_finded_device_ble_mode
+0x6737 set_index_finded_device_irk
+0x6739 store_ble_rec_data_common
+0x673b set_index_finded_device_ediv
+0x673e nvram_find_addr_from_bd_list
+0x6743 find_addr_from_bd_list_ble_mode
+0x674d find_addr_from_bd_list_static_addr
+0x6750 find_addr_from_bd_list_random_non_resolvable_private_address
+0x6752 find_addr_from_bd_list_random_addr
+0x6754 find_addr_from_bd_list_spp_mode
+0x6757 find_addr_from_bd_list_common
+0x675f nvram_find_addr_from_list
+0x676f nvram_find_addr_from_list_compare
+0x6771 find_master_addr_from_list_compare
+0x6776 find_addr_from_list_compare_ble_mode
+0x6779 find_irk_form_list_compare
+0x678b genernate_master_macaddress
+0x6794 find_ediv_form_list_compare
+0x67a3 check_nvram
+0x67a9 init_device_list
+0x67ad init_device_list_loop
+0x67b2 load_device_list
+0x67bc clear_key_exists
+0x67be load_device_list_mode_4
+0x67ca clear_ltk_exists
+0x67cc eeprom_store_le_reconn_info
+0x67d0 eeprom_store_bd_reconn_info
+0x67d3 eeprom_store_reconn_info
+0x67d7 check_link_key_load
+0x67dd gpio_set_wake_by_current_state
+0x67e1 gpio_set_wake
+0x67ed gpio_clr_wake
+0x67f9 gpio_config_input_nowake
+0x67fb gpio_config_input
+0x67fe gpio_config_input_without_wake
+0x6806 gpio_set_high_impedance
+0x680e gpio_config_output
+0x6812 gpio_config_output0
+0x6815 gpio_common
+0x681b gpio_check_active
+0x681d gpio_get_bit
+0x681e get_bit_common
+0x6823 gpio_get_bit_reverse
+0x6825 gpio_out_inactive
+0x6829 gpio_out_active
+0x682c gpio_out_flag
+0x682f gpio_out
+0x6830 gpio_set_bit
+0x6835 gpio_set_before_lpm_common
+0x6874 neglect2_from_6_pin
+0x6876 neglect4_from_9_pin
+0x6878 neglact4_from_23_pin
+0x687a neglact2_form_25_pin
+0x687c neglact2_form_30_pin
+0x687e neglact2_form_2_pin
+0x6880 neglact_1_pin
+0x6882 neglact_4_pin
+0x6884 neglect_2_pin
+0x6885 neglect_pin_loop
+0x6889 gpio_cfg_uart_tx_output
+0x688c gpio_pu_uart_tx
+0x688f gpio_rx_config_input_with_pu
+0x6895 gpio_uart2gpio
+0x6899 gpio_check_uart_state
+0x689c load_chip_option
+0x68a2 load_adc_init
+0x68a8 adc_init_data
+0x68af adc_init_data_vinlpm
+0x68b8 adc_check_data_vinlpm
+0x68bc adc_check_2v_vinlpm
+0x68c0 set_vdd_reference_voltage_1v
+0x68c3 adc_init_data_hvin
+0x68cc adc_check_data_hvin
+0x68d0 adc_check_1v_hvin
+0x68d4 set_vdd_reference_voltage_4v
+0x68d7 adc_init_data_io
+0x68e0 adc_check_data_io
+0x68e4 adc_check_0_5v_io
+0x68e8 set_vdd_reference_voltage_0_5v
+0x68eb adc_set_mode
+0x68f0 adc_check_vinlpm
+0x68f2 adc_check_hvin
+0x68f4 adc_check_gpio
+0x68f8 read_adc
+0x6908 vdd_calculate_by_mode
+0x690e vdd_calculate_vinlpm
+0x6912 vdd_calculate_hvin
+0x6916 vdd_calculate_io
+0x691a vdd_calculate
+0x6923 vdd_calculate2
+0x6927 vdd_calculate1
+0x6930 adc_bat_percent_lowpower_out
+0x6940 adc_set_low_power_flag
+0x6944 adc_set_no_power_flag
+0x6948 keyscan_key_init
+0x694a keyscan_key_init_next
+0x694f keyscan_key_init_lp1
+0x6953 keyscan_key_init_end
+0x6954 keyscan_scan_key
+0x6959 keyscan_scan_key_lp1
+0x6964 keyscan_scan_key_lp1_next
+0x696c keyscan_process_lpm_before
+0x696e keyscan_process_lpm_before_next
+0x6973 keyscan_process_lpm_before_lp1
+0x6977 keyscan_process_lpm_before_end
+0x6978 keyscan_key_process
+0x6983 keyscan_key_process_next
+0x698c keyscan_key_lp1
+0x6998 keyscan_key_lp1_next
+0x69a1 keyscan_send_key_data
+0x69a6 pwm_init
+0x69ae pwm_out_set
+0x69be pwm_duty_cycle_set
+0x69c4 pwm_pwm0_duty_set
+0x69c6 pwm_pwm1_duty_set
+0x69c8 pwm_pwm2_duty_set
+0x69ca pwm_pwm3_duty_set
+0x69cc pwm_pwm4_duty_set
+0x69ce pwm_pwm5_duty_set
+0x69d0 pwm_set_pncnt
+0x69d5 pwm_enable
+0x69d7 pwm_disable
+0x69d8 pwm_gpio_set
+0x69e3 pwm_gpio4_set
+0x69e5 pwm_gpio5_set
+0x69e7 pwm_gpio27_set
+0x69e9 pwm_gpio28_set
+0x69eb pwm_gpio3_set
+0x69ed pwm_gpio8_set
+0x69ef pwm_gpio20_set
+0x69f1 pwm_gpio21_set
+0x69f3 pwm_gpio22_set
+0x69f5 pwm_gpio23_set
+0x69f7 pwm_set_select
+0x69ff pwm_one_set_select
+0x6a01 pwm_tw0_set_select
+0x6a03 rfcomm_init
+0x6a0d rfcomm_init_spp
+0x6a16 rfcomm_init_spp_with_credit
+0x6a18 set_cr_bit
+0x6a1a rfcomm_calculate_fcs_sabm
+0x6a26 rfcomm_calculate_fcs_ua
+0x6a2f rfcomm_calculate_fcs_dlci0
+0x6a33 rfcomm_calculate_fcs_dlci0_res
+0x6a35 rfcomm_save_fcs_uih
+0x6a44 caculate_uihdata_fcs
+0x6a50 caculate_fcs
+0x6a5d mod2div
+0x6a61 mod2div_loop
+0x6a66 mod2div_not_enough_reduction
+0x6a70 mod2div_end
+0x6a72 get_rfcomm_snd_adss
+0x6a73 dlci_to_address_cmd
+0x6a79 channel_to_dlci
+0x6a7d rfcomm_rx_process_dlci0_sabm
+0x6a86 rfcomm_rx_process_dlci0_ua
+0x6a8a rfcomm_rx_process
+0x6a8e rfcomm_rx_process_remote_page
+0x6a94 parse_dlci0_rp
+0x6a9b parse_dlci0_rp_uih
+0x6aa5 parse_dlci0_rp_uih_pn_cmd
+0x6aa7 parse_dlci0_rp_uih_pn_cmd_spp
+0x6aad parse_dlci0_rp_uih_pn_res
+0x6aaf parse_dlci0_rp_uih_pn_res_common
+0x6ab1 get_rfcomm_param_modem_status
+0x6ab8 get_rfcomm_head_struct
+0x6abe get_rfcomm_current_length
+0x6ac3 get_rfcomm_uih_head_struct
+0x6acb get_param_payload_ptr
+0x6ace get_rfcomm_length_common
+0x6ad7 get_rfcomm_prarmer_negotiation
+0x6ae6 parse_dlci0_rp_uih_ms_cmd
+0x6ae8 parse_dlci0_rp_uih_ms_cmd_spp
+0x6af2 parse_dlci0_rp_uih_ms_res
+0x6af9 parse_dlci0_rp_uih_ms_res_spp
+0x6afd parse_dlci0_rp_uih_cmd_port
+0x6b18 parse_uih_rp
+0x6b19 parse_uih_rp_spp
+0x6b21 parse_uih_rp_spp_ua
+0x6b25 parse_uih_rp_spp_sabm
+0x6b37 parse_uih_spp_uih_credits
+0x6b3f parse_uih_spp_uih
+0x6b40 parse_uih_spp_uih_cont
+0x6b44 parse_uih_rp_spp_disconn_send_event
+0x6b46 parse_uih_rp_spp_disconn
+0x6b4c rfcomm_rx_process_reconn
+0x6b52 parse_dlci0_reconn
+0x6b58 parse_dlci0_reconn_uih
+0x6b61 parse_dlci0_reconn_uih_pn_cmd
+0x6b68 parse_dlci0_reconn_uih_pn_cmd_spp
+0x6b6c parse_dlci0_reconn_uih_ms_cmd
+0x6b73 parse_dlci0_reconn_uih_ms_cmd_spp
+0x6b7c parse_dlci0_reconn_uih_ms_res
+0x6b82 parse_dlci0_reconn_uih_ms_res_spp
+0x6b86 parse_uih_reconn
+0x6b8c parse_uih_reconn_spp
+0x6b91 parse_uih_reconn_spp_ua
+0x6b95 parse_uih_reconn_spp_sabm
+0x6b96 parse_uih_reconn_spp_disconn
+0x6b97 rfcomm_rx_process_end
+0x6b98 rfcomm_send_more_pkt
+0x6b9c rfcomm_send_more_pkt_msc_cmd_spp
+0x6ba1 rfcomm_send_more_pkt_msc_cmd_spp0
+0x6ba9 rfcomm_send_sabm
+0x6bb6 rfcomm_send_ua
+0x6bc4 rfcomm_send_param_neg_cmd
+0x6be0 rfcomm_send_param_neg_res
+0x6bfc rfcomm_send_modem_status_cmd
+0x6c11 rfcomm_send_modem_status_res
+0x6c28 rfcomm_send_uih_without_payload
+0x6c42 rfcomm_increase_credit_given
+0x6c4b spp_process_rx_data
+0x6c4d spp_tx_rfcomm_packet
+0x6c57 ssp_tx_rfcomm_from_uart
+0x6c5f ssp_tx_rfcomm_from_uart_without_credit
+0x6c64 ssp_tx_rfcomm_from_uart_common
+0x6c6b ssp_tx_rfcomm_from_uart_common0
+0x6c95 ssp_tx_write_length
+0x6c9d ssp_tx_write_long_packet
+0x6ca6 ssp_tx_write_given_credit
+0x6caa scheduler_process
+0x6cbb scheduler_process0
+0x6cbe scheduler_tx_disconnect_hid
+0x6cc2 scheduler_tx_l2cap_pkt
+0x6cdd scheduler_tx_l2cap_start_pkt
+0x6ce9 scheduler_tx_l2cap_last_pkt
+0x6ceb scheduler_tx_l2cap_pkt_end
+0x6cef scheduler_start_upper_sm
+0x6cf3 scheduler_start_upper_sm_hid
+0x6cf5 process_upper_sm
+0x6cf7 process_upper_sm_remote_page
+0x6cfa process_upper_sm_rp_wait
+0x6cfb process_upper_sm_reconn
+0x6d1a process_upper_sm_reconn_wait
+0x6d1b process_upper_sm_reconn_sdp_conn
+0x6d21 process_upper_sm_reconn_sdp_cfg
+0x6d2b process_upper_sm_reconn_ss_spp
+0x6d30 process_upper_sm_reconn_sdp_disconn
+0x6d33 process_upper_sm_reconn_hid_ctrl_conn
+0x6d39 process_upper_sm_reconn_hid_ctrl_cfg
+0x6d3f process_upper_sm_reconn_hid_int_conn
+0x6d45 process_upper_sm_reconn_hid_int_cfg
+0x6d4b process_upper_sm_reconn_rfcomm_conn
+0x6d51 process_upper_sm_reconn_rfcomm_cfg
+0x6d57 process_upper_sm_reconn_rfcomm_sabm
+0x6d5d process_upper_sm_reconn_spp_cmd_pn
+0x6d63 process_upper_sm_reconn_spp_sabm
+0x6d6e process_upper_sm_reconn_spp_cmd_ms
+0x6d74 process_upper_sm_reconn_sdp_conn_wait
+0x6d78 process_upper_sm_reconn_sdp_cfg_wait
+0x6d7b process_upper_sm_reconn_ss_spp_wait
+0x6d80 process_upper_sm_reconn_sdp_disconn_wait
+0x6d86 process_upper_sm_reconn_hid_ctrl_conn_wait
+0x6d8a process_upper_sm_reconn_hid_ctrl_cfg_wait
+0x6d8e process_upper_sm_reconn_hid_int_conn_wait
+0x6d92 process_upper_sm_reconn_hid_int_cfg_wait
+0x6d97 process_upper_sm_reconn_rfcomm_conn_wait
+0x6d9b process_upper_sm_reconn_rfcomm_cfg_wait
+0x6d9f process_upper_sm_reconn_rfcomm_sabm_wait
+0x6da4 process_upper_sm_reconn_spp_cmd_pn_wait
+0x6da8 process_upper_sm_reconn_spp_sabm_wait
+0x6dac process_upper_sm_reconn_spp_cmd_ms_wait
+0x6daf process_upper_sm_reconn_setup_hid
+0x6db1 process_upper_sm_reconn_setup_rfcomm
+0x6db3 process_upper_sm_reconn_setup_spp
+0x6db5 process_upper_sm_reconn_termination
+0x6db7 upper_sm_send_sdp_conn
+0x6dbe upper_sm_send_sdp_cfg
+0x6dc3 upper_sm_send_sdp_disconn
+0x6dcd upper_sm_send_ss_spp
+0x6dd1 upper_sm_send_rfcomm_conn
+0x6dd8 upper_sm_send_rfcomm_cfg
+0x6ddd upper_sm_send_hid_ctrl_conn
+0x6de4 upper_sm_send_hid_ctrl_cfg
+0x6de9 upper_sm_send_hid_int_conn
+0x6df0 upper_sm_send_hid_int_cfg
+0x6df5 upper_sm_send_rfcomm_sabm
+0x6dfc upper_sm_send_spp_cmd_pn
+0x6e02 upper_sm_send_spp_sabm
+0x6e0c upper_sm_send_spp_cmd_ms
+0x6e11 sdp_process
+0x6e2c sdp_process_ss_req
+0x6e4c ss_req_loop
+0x6e4f ss_req_blank
+0x6e54 sdp_process_sa_req
+0x6e5f sa_isnot_wholerange
+0x6e62 sa_judge_wholerange
+0x6e6b sa_judge_wholerange_false3
+0x6e6d sa_judge_wholerange_false2
+0x6e6f sa_judge_wholerange_false1
+0x6e71 sa_req_loop
+0x6e74 sa_req_range
+0x6e7a sa_req_range_id_increase
+0x6e83 sa_req_range_id_finish
+0x6e86 sa_req_one_id
+0x6e8b sa_req_check_next_id
+0x6e92 sa_req_handle_attributelist_next
+0x6ea2 sa_req_handle_attributelist_notfound
+0x6ea5 sa_req_handle_attributelist_end
+0x6eaa sdp_store_continue_common
+0x6eae sdp_store_continue_0byte
+0x6eb0 sdp_store_continue_1byte
+0x6eb3 sdp_store_continue_2byte
+0x6eb6 sdp_store_continue_end
+0x6eb8 sa_req_all
+0x6eda sa_req_all_fisrt_fragment
+0x6ede sa_req_all_parlength_continue_byte
+0x6ee1 sa_req_all_parlength_continue_byte_end
+0x6ee7 sa_req_all_fragment_sdp
+0x6ef5 sa_req_all_answer_attributelist_full_loop
+0x6efe sa_req_all_last_frag_continue
+0x6f00 sa_req_all_frag_end
+0x6f02 sdp_process_ssa_req
+0x6f0c ssa_req_loop
+0x6f1c ssa_req_attributelist_next
+0x6f27 ssa_req_attributelist_notfound
+0x6f29 ssa_req_attributelist_end
+0x6f2e sdp_store_maxbyte
+0x6f36 ssa_req_range
+0x6f47 ssa_req_range_find_handle
+0x6f4f ssa_req_range_later_freg_with_continue
+0x6f57 ssa_req_range_send_not_maxbyte
+0x6f5e ssa_req_range_maxbyte_with_continue
+0x6f61 ssa_req_range_maxbyte_with_continue_cpy
+0x6f67 ssa_req_range_next_handle
+0x6f6c ssa_req_range_get_length
+0x6f75 ssa_req_range_first_freg
+0x6f7f ssa_req_range_firstfreg_not_maxbyte_with_continue
+0x6f81 ssa_req_range_freg_no_continue
+0x6f83 ssa_req_range_lastfreg
+0x6f84 ssa_req_range_lastfreg_common
+0x6f8f ssa_req_range_firstfreg_maxbyte_with_continue
+0x6f94 ssa_req_range_attrbutes_length
+0x6f9a ssa_req_range_attrbutes_length_no_continue
+0x6fa0 ssa_req_range_freg_with_continue
+0x6fb0 ssa_req_range_common
+0x6fba sdp_process_error_res
+0x6fbb sdp_invalid_service_record_handle
+0x6fbe sdp_invalid_pdu_size
+0x6fc1 sdp_insufficient_resource
+0x6fc4 sdp_invalid_request_syntax
+0x6fc6 sdp_error_response
+0x6fd0 ask_serviceclassid
+0x6fd5 classidloop
+0x6fde skip2bytes
+0x6fe7 frstbwrong
+0x6fea scndbwrong
+0x6ff3 cmp032
+0x6ff6 cmp016
+0x6ff8 cmpuuid
+0x6ffe uuidsize
+0x7019 wrong12b
+0x701a wrong12b1
+0x701e chck12dn
+0x7020 loopornot
+0x7026 asksrv_error
+0x7028 dataelementtype6
+0x7037 dsize32
+0x7039 dsize16
+0x703c dsize
+0x703e dsize_error
+0x7040 ss_empty_rsp
+0x7043 sa_empty_rsp
+0x7046 ssa_empty_rsp
+0x7048 empty_response
+0x7057 fullsearch
+0x7059 outempty
+0x705b sdp_data_len
+0x7062 sdp_get_data
+0x7066 sdp_get_data_type0
+0x7069 sdp_get_data_type_not0_sizeindex01234
+0x706c sdp_get_data_type_not0
+0x7073 sdp_get_data_type_not0_sizeindex5
+0x7076 sdp_get_data_type_not0_sizeindex6
+0x707a sdp_get_data_type_not0_sizeindex7
+0x7082 search_all_uuid
+0x7086 search_all_uuid_llop
+0x708d search_uuid
+0x7090 search_uuid_next
+0x7096 search_uuid_loop
+0x709a search_uuid_not_found
+0x70a0 search_uuid_check_same_handle
+0x70a6 search_uuid_store_handle
+0x70ad search_uuid_nomatch
+0x70b1 search_handle
+0x70b4 search_handle_loop
+0x70c6 search_attrib
+0x70c9 search_attrib_next
+0x70cc search_attrib_loop
+0x70d4 search_attrib_found_uuid
+0x70da search_attrib_loop_attribs
+0x70e4 search_attrib_end
+0x70e7 search_handle_attrib
+0x70ea search_handle_attrib_next
+0x70f4 search_handl_attrib_found_handle
+0x70f6 search_handle_attrib_loop_attribs
+0x7100 search_handle_attrib_end
+0x7102 search_rfcomm_cn
+0x710d search_uuid_in_data
+0x7110 search_uuid_in_data_loop
+0x7120 search_uuid_in_data_found_element_index5
+0x7123 search_uuid_in_data_found_element_index6
+0x7126 search_uuid_in_data_found_element_index7
+0x7129 search_uuid_in_data_found_uuid
+0x712f search_uuid_in_data_type_uuid_128
+0x7130 search_uuid_in_data_type_uuid_32
+0x7132 search_uuid_in_data_type_uuid_16
+0x7138 sdp_send_spp_request
+0x714f function_g2
+0x7166 function_f6_eb
+0x7176 get_r
+0x717a function_f6_ea
+0x718d function_f5
+0x719f function_f5_common
+0x71b0 store_addr_common_b
+0x71b5 store_addr_common_a
+0x71ba function_f4_ca
+0x71c5 function_f4_cb
+0x71d0 function_aes_cmac
+0x71d4 function_ceil16
+0x71e2 function_aes_cmac_set_flag_0_balnk
+0x71e5 function_aes_cmac_set_flag_0
+0x71e6 function_aes_cmac_set_flag_0_common
+0x71f0 function_aes_cmac_aes
+0x71f3 function_aes_cmac_aes_loop
+0x71f9 function_aes_cmac_aes_loop_end
+0x7201 load_inverse_result
+0x7205 store_inverse_k
+0x7207 inverse_k
+0x720a inverse_memdat
+0x720e bn_lshift_0_inverse
+0x7218 function_aes_cmac_k1_inverse
+0x7219 function_aes_cmac_inverse_common
+0x721d function_aes_cmac_k2_inverse
+0x721f function_aes_cmac_generate_subkey
+0x7227 function_aes_cmac_k1
+0x7230 function_aes_cmac_k1_0
+0x7231 function_aes_cmac_k2
+0x723a function_aes_cmac_xor_rb
+0x723b function_aes_cmac_xor_rb_loop
+0x7241 function_aes_cmac_xor_loop_common
+0x7245 function_aes_cmac_padding
+0x7248 function_aes_cmac_padding_loop
+0x724d function_aes_cmac_padding_loop2
+0x7250 function_aes_cmac_padding_beq_length
+0x7251 function_aes_cmac_padding_common
+0x7253 function_aes_cmac_padding_big_length
+0x7255 generate_kinit
+0x7259 function_e21
+0x7268 function_e22
+0x726e function_e22_pin_init
+0x726f function_e22_genx_pin
+0x7272 function_e22_genx_loop
+0x727c function_e22_genx_end
+0x7288 function_e1
+0x728b function_e3
+0x7292 function_hash
+0x72a8 function_ar
+0x72b1 function_ar_loop
+0x72b9 function_ar_original
+0x72cf key_scheduling
+0x72d5 key_rotateloop
+0x72e0 key_select_octet_loop
+0x72e5 key_select_octet_nwrap
+0x72ef bias_round_key_loop
+0x72f6 key_sched_zero
+0x72f8 create_byte_16_loop
+0x7300 xor_mod32
+0x7301 xor_mod32_ar2
+0x7304 xor_mod32_loop
+0x730a xor_mod32_invert
+0x730d xor_even
+0x7313 el_boxes
+0x7316 el_box_loop
+0x731c e_boxes
+0x7322 pht
+0x7325 pht_loop
+0x7331 permute
+0x7340 permute_exchange
+0x7341 permute_loop
+0x7350 add16
+0x7352 xor16
+0x7353 xor_add16
+0x7354 xoradd_loop
+0x7359 xoradd_add
+0x735a xoradd_store
+0x735f function_expand
+0x7365 expand_12
+0x7366 expand_cont
+0x736a key_offset
+0x7379 key_addxor
+0x737a key_addxor_loop
+0x737e key_add
+0x7380 key_high
+0x7381 key_xor
+0x7382 key_store
+0x7386 copy_aco
+0x738b concatenate_temp24
+0x738c concatenate_temp16
+0x738f loop1
+0x7390 generate_stk
+0x7394 authenticate_rconfirm
+0x7397 authenticate_mconfirm
+0x739c generate_confirm
+0x739f generate_mrand
+0x73a2 generate_sk
+0x73ab first_block_counter
+0x73ad first_block_data
+0x73ae first_block
+0x73c1 generate_mic
+0x73d0 generate_mic_loop
+0x73d5 generate_mic_end
+0x73d9 aes_crypt_data
+0x73e3 le_encrypt
+0x73fb le_decrypt
+0x73ff le_dec_cont
+0x741d wait_aes
+0x741f do_aes_ocb
+0x7422 do_aes_cbc
+0x7425 do_aes_ctr
+0x7428 aes_init
+0x742b function_s1
+0x7440 function_c1
+0x7446 function_c1_master
+0x7456 function_c1_irat
+0x745b function_c1_loop1
+0x746e padding_data
+0x7473 padding_loop
+0x7478 aes_load_data
+0x7479 load_data_loop
+0x747d load_data_padding
+0x7482 aes_load_xor
+0x7484 load_key
+0x7486 load_data128
+0x7487 load_regext
+0x7488 load_regext_loop
+0x748d load_sk
+0x748f clear_hidata
+0x7491 aes_clear_data
+0x7492 aes_clear
+0x7493 clear_loop
+0x7494 clear_data_rest
+0x7497 store_aes_result
+0x7499 send_aes_result_loop
+0x749e store_enc_data
+0x74a4 store_enc_loop
+0x74ac store_enc_byte
+0x74b0 compare_res
+0x74b2 compare_res_loop
+0x74b9 enable_authrom
+0x74bd disable_authrom
+0x74c1 init_memp
+0x7518 init_memp_256
+0x756a publickey_init
+0x756d sp_calc_sequence_256_check
+0x757b stop_publickey_calc_256
+0x757d sp_initialize
+0x7583 sp_clear_flags
+0x7588 sp_generate_local_key
+0x758a sp_master_generate_local_key
+0x758d sp_generate_local_key0
+0x7590 sp_start_send_pubkey
+0x7595 sp_calc_check_publickey_256
+0x75b0 sp_calc_b256
+0x75c6 sp_calc_check_publickey
+0x75e1 sp_calc_b
+0x75f7 sp_calculate_commitment
+0x7602 master_sp_calculate_commitment
+0x7609 sp_calculate_commitment0
+0x760f master_sp_calculate_commitment0
+0x7612 sp_local_random_key_generator
+0x7615 sp_calculate_commitment_wait_dhkey_calc
+0x7617 sp_confirm_check
+0x7628 sp_confirm_check_success
+0x762e sp_confirm_check_success_master
+0x7631 sp_confirm_check_failed
+0x7637 sp_confirm_check_failed_master
+0x763a sp_confirm_calc
+0x763e sp_confirm_calc_ready
+0x764b sp_confirm_calc_master
+0x764e sp_master_key_prarm_push
+0x7658 sp_link_key_prarm_push
+0x7662 sp_link_key_calc
+0x766d sp_pubkey_calc
+0x7684 sp_pubkey_generated
+0x768a sp_dhkey_calc
+0x769b sp_dhkey_generated
+0x76a2 random_generator
+0x76a7 compare4
+0x76b1 compare4_failed
+0x76b3 compare4_success
+0x76b5 simple_pairing_sequence
+0x76c6 master_simple_paring_sequence
+0x76d8 master_set_mem_master_sp_flag
+0x76da master_clear_mem_master_sp_flag
+0x76dc sp_calc_sequence
+0x76e7 sp_calc_sequence_done
+0x76ec bn_testbit
+0x76f2 ec_copy
+0x76f5 bn_eq_zero
+0x76fb bn_eq_0
+0x7704 bn_bigeq
+0x7707 bn_bigeq_0
+0x7711 bn_add
+0x7713 bn_add_0
+0x771f bn_sub
+0x7721 bn_sub_0
+0x772d bn_rshift6
+0x772f bn_rshift
+0x7730 bn_rshift_0
+0x773b bn_lshift
+0x773d bn_lshift_0
+0x7748 bn_lshiftmod
+0x7749 bn_lshiftmod_ismod
+0x7751 bn_lshiftmod_0
+0x7755 bn_addmod
+0x7758 bn_submod
+0x775f bn_p192mod
+0x7780 bn_load
+0x7781 bn_load_0
+0x7786 bn_mulmod
+0x7790 bn_mulmod_1
+0x7792 bn_mulmod_0
+0x77a8 bn_sqrmod
+0x77aa bn_rshifteven
+0x77ab bn_rshifteven_1
+0x77ba bn_rshifteven_0
+0x77be bn_invmod
+0x77cd bn_invmod_2
+0x77e8 bn_invmod_1
+0x77f6 bn_invmod_0
+0x7803 ecdbl
+0x7854 ecadd
+0x78c0 eckp_0
+0x78ce eckp_1
+0x78d3 ecunmapz
+0x78e5 sha_endian_swap2
+0x78e8 sha_endian_loop
+0x78f0 sha_getw
+0x78f4 sha_r
+0x78f6 sha_r_loop
+0x790b sha_init
+0x790d sha_init_0
+0x7912 sha
+0x7916 sha_0
+0x791f sha_loop
+0x7948 sha_1
+0x794e sha_result
+0x7950 sha_regext_save
+0x7955 pad_xor
+0x7958 pad_xor_0
+0x795f pad_xor_1
+0x7962 g_noninit_number_confirm
+0x7965 g_noninit
+0x7967 g_noninit0
+0x7975 g_init
+0x7984 g_common
+0x798d g_common0
+0x799e function_f1_no_key
+0x79a0 function_f1
+0x79a2 function_f1_common
+0x79d7 function_f2
+0x7a0d function_f3a
+0x7a0f function_f3a_common
+0x7a1e function_f3a_no_pin
+0x7a21 function_f3b_no_pin
+0x7a24 function_f3b
+0x7a26 function_f3b_common
+0x7a33 function_f3_common
+0x7a5d eckp_calc_init
+0x7a5e eckp_calc_init_1
+0x7a68 eckp_calc
+0x7a70 memcpy_dword_swap4
+0x7a71 memcpy_dword_swap
+0x7a72 memcpy_dword_swap_loop
+0x7a77 sp_initialize_256
+0x7a7d sp_pubkey_calc_256
+0x7a93 sp_pubkey_generated_256
+0x7a99 sp_dhkey_calc_256
+0x7aa9 sp_dhkey_generated_256
+0x7aaf sp_calc_sequence_256
+0x7ab9 sp_calc_sequence_done_256
+0x7abf eckp_calc_256
+0x7ac7 eckp_calc_init_256
+0x7aca eckp_calc_init_256_1
+0x7ad4 ecunmapz_256
+0x7ae6 ecdbl_256
+0x7b37 ecadd_256
+0x7ba3 bn_invmod_256
+0x7bb1 bn_invmod_256_2
+0x7bcc bn_invmod_256_1
+0x7bda bn_invmod_256_0
+0x7be1 bn_mulmod_256
+0x7bef bn_mulmod_256_1
+0x7bf5 bn_mulmod_256_0
+0x7c0a bn_p256mod
+0x7c73 bn_load_mem
+0x7c77 bn_load_256
+0x7c79 bn_sqrmod_256
+0x7c7b bn_add_256
+0x7c7d bn_addmod_256
+0x7c80 bn_lshiftmod_256
+0x7c81 bn_lshiftmod_ismod_256
+0x7c8a bn_lshiftmod_p_256
+0x7c92 sub_p2_256
+0x7c96 bn_submod_256
+0x7ca0 bn_submod_256_np
+0x7ca9 bn_sub_256
+0x7cab bn_rshift_256
+0x7cae bn_lshift_256
+0x7cb1 bn_bigeq_256
+0x7cb5 bn_eq_zero_256
+0x7cb8 bn_rshifteven_256
+0x7cb9 bn_rshifteven_256_1
+0x7cc8 bn_rshifteven_256_0
+0x7ccc ui_init
+0x7cd1 ui_dispatch
+0x7cd3 ui_button_init
+0x7cdd ui_button_polling
+0x7ce3 ui_button_down
+0x7cef ui_button_up
+0x7cf9 ui_button_check_long_press
+0x7d00 lpm_button_get_wake_lock
+0x7d02 lpm_button_clean_wake_lock
+0x7d04 calc_curr_struct_prt
+0x7d08 ui_led_init_global
+0x7d0d ui_led_init_loop
+0x7d14 ui_led_on_global
+0x7d19 ui_led_off_global
+0x7d1e ui_led_blink_start_global
+0x7d24 ui_led_set_style_global
+0x7d29 ui_led_dispatch
+0x7d2c ui_led_blink_polling
+0x7d32 ui_led_off_static
+0x7d35 ui_led_on_static
+0x7d38 ui_led_change_style_by_type
+0x7d41 ui_led_blink_state_lighting
+0x7d4c ui_led_blink_state_darking
+0x7d58 ui_led_blink_infinite
+0x7d5c ui_led_blink_timer_start
+0x7d5e ui_led_stop_timer
+0x7d60 ui_timer_timeout
+0x7d64 ui_timer_check
+0x7d6b ui_timer_check_loop
+0x7d75 ui_timer_init
+0x7d78 ui_timer_check_end
+0x7d7f ui_timer_check_send_evt
+0x7d80 ui_ipc_get_lock
+0x7d81 ui_ipc_get_lock_wait
+0x7d84 ui_ipc_put_lock
+0x7d86 ui_ipc_send_event
+0x7d8f ui_ipc_send_cmd
+0x7d98 ui_ipc_clean_all_fifo
+0x7d9c check_51cmd
+0x7da7 check_51cmd_once
+0x7dc8 check_51cmd_once_continue
+0x7dd6 check_51cmd_check_idle
+0x7ddb check_51cmd_restore
+0x7ddd check_51cmd_start_discovery
+0x7de2 check_51cmd_stop_discovery
+0x7de8 check_51cmd_reconnect
+0x7dea check_51cmd_disconnect
+0x7ded check_51cmd_enter_sniff_subrating
+0x7dee check_51cmd_exit_sniff_subrating
+0x7def check_51cmd_sniff_test
+0x7df0 check_51cmd_pincode
+0x7df2 check_51cmd_inq
+0x7df3 check_51cmd_stop_inq
+0x7df4 check_51cmd_adv
+0x7dfa check_51cmd_stop_adv
+0x7dff check_51cmd_direct_adv
+0x7e05 check_51cmd_stop_direct_adv
+0x7e0a check_51cmd_le_disconnect
+0x7e0e check_51cmd_ble_update_connect_param
+0x7e0f check_51cmd_led_off
+0x7e11 check_51cmd_led_on
+0x7e13 check_51cmd_led_start_blink
+0x7e15 check_51cmd_le_start_con
+0x7e18 check_51cmd_start_scan
+0x7e1a check_51cmd_stop_scan
+0x7e1d check_51cmd_hibernate
+0x7e23 check_51cmd_hibernate_btn_disabled
+0x7e25 check_51cmd_le_smp_sec_req
+0x7e26 check_51cmd_role_switch
+0x7e2f check_51cmd_bb_reconn_cancel
+0x7e31 check_51cmd_dhkey_not_accept
+0x7e34 ui_check_paring_button
+0x7e38 queue_init
+0x7e3d queue_push
+0x7e4c calc_queue_next_ptr
+0x7e54 queue_pop
+0x7e65 queue_empty
+0x7e69 queue_full
+0x7e6d queue_get_size
+0x7e71 right_shift_n
+0x7e73 right_shift_n_loop
+0x7e76 left_shift_n
+0x7e79 left_shift_n_loop
+0x7e7c push_stack
+0x7e85 push_stack_rega_b_c
+0x7e8c pop_stack
+0x7e95 pop_stack_rega_b_c
+0x7e9c get_contw
+0x7e9f get_contr
+0x7ea2 store_contw
+0x7ea5 store_contr
+0x7ea8 save_cont_pointers
+0x7ead load_cont_pointers
+0x7eb2 memcpy96
+0x7eb3 memcpy64
+0x7eb5 memcpy12
+0x7eb6 memcpy4
+0x7eb9 memcpy8
+0x7ebc memcpy48
+0x7ebd memcpy32
+0x7ebe memcpy24
+0x7ebf memcpy16
+0x7ec1 delay_10ms
+0x7ec2 delay_ms_wait
+0x7ec5 bn_zero
+0x7ec6 memset0
+0x7ec7 memset8
+0x7eca memset0_8
+0x7ecd memset0_4
+0x7ed0 clear_mem_256
+0x7ed2 clear_mem_512
+0x7ed4 clear_mem
+0x7ed7 clear_mem_loop
+0x7eda clear_temp_block
+0x7edd xor_loop
+0x7ee5 inverse_data
+0x7eec inverse_loop
+0x7ef4 memcpy_fast
+0x7ef6 memcpy_fast_loop
+0x7efb memcpy_fast_loop_four
+0x7f01 memcpy
+0x7f03 memcpy_loop
+0x7f07 timer_stop
+0x7f08 timer_init
+0x7f11 timer_check_timeout
+0x7f15 timer_reinit
+0x7f16 timer_check
+0x7f21 timer_loop
+0x7f25 timer_counting
+0x7f2c clk_add
+0x7f37 clk_diff_rt
+0x7f39 clk_diff
+0x7f3e clk_diff_pos
+0x7f43 clk2rt
+0x7f49 clk2lpo
+0x7f50 clk2bt
+0x7f58 string2dec_from_uart
+0x7f59 string2dec_from_uart_done
+0x7f64 uchar2dialog
+0x7f6d uchar2dialog_number
+0x7f70 uchar2dialog_a2f
+0x7f73 pn9
+0x7f76 pn9_loop
+0x7f86 wait_div_end
+0x7f88 string_compare
+0x7f91 ceiling
+0x7f95 swap
+0x7f99 clean_mem
+0x7f9c callback_func
+0x7f9e wait_uarttx
+0x7fa1 ice_break
+0x7fa3 ice_setbp
+0x7fa8 ice_setbp2
+0x7fad ice_set_write_bp
+0x7fb0 test_enable_white
+0x7fb4 check_uart_tx_buff
+0x7fb6 pdata_sub_temp
+0x7fb8 fifo_in
+0x7fbe fifo_in_push
+0x7fc4 fifo_out
+0x7fc8 fifo_out_loop
+0x7fcd fifo_out_end
+0x7fd0 fifo_is_empty
+0x7fd2 fifo_is_full
+0x7fd4 fifo_is_near_full
+0x7fd6 fifo_content_count
+0x7fd7 fifo_content_count_loop
+0x7fdd not_greater_than
+0x7fe1 disable_positive
+0x7fe3 disable_zero
+0x7fe5 enable_zero
+0x7fe7 enable_user
+0x7fe9 disable_user
+0x7feb enable_user2
+0x7fed disable_user2
+0x7fef disable_blank
+0x7ff1 enable_blank
+0x7ff3 reverse_byte
+0x7ff9 reverse_loop
+0xb039 dongle_dispose_cmd_read_mode
+
+
+
+/* Parse Command:
+TX: take bits from tx fifo, jam it into shift and a destination (rf,bucket)
+RX: take bits from demod,  jam it into shift and a destination (acl,sco,bucket) */
+
+/* Inject Command:
+TX: 0 into shift, send tail of shift into a destination (rf,bucket)
+RX: 0 into shift, send tail of shift into a destination (acl,sco,bucket) */
+
+format
+  ! 15 romdat
+  % d0
+  % d1
+  % d2
+  % d3
+  [8] d0
+  [8] d1
+  [8] d2
+  [8] d3
+end
+
+format
+  ! 15 enable   /* set flag to 1 */
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [6] null
+  [9] 0
+end
+ /* High 5 bytes of channel map */
+format
+  ! 15 pulse   /* set flag to 1 */
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [6] null
+  [9] 0
+end
+
+format
+  ! 15 disable   /* set flag to 0 */
+  % flag
+  [5] opcode
+  [6] 2
+  [6] flag
+  [6] null
+  [9] 0
+end
+
+format
+  ! 15 set0  /* set selected bit of reg to 0 */
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9
+  [6] never
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 set1  /* set selected bit of reg to 1 */
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9          /* alu op demux */
+  [6] always
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 setflag  /* set selected bit of the reg to the polarity of the flag */
+  % flag
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9
+  [6] flag
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 nsetflag  /* set the selected bit of the reg to the opposite polarity of the flag */
+  % flag
+  % immediate
+  % reg
+  [5] opcode
+  [6] 0x29
+  [6] flag
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 setflip    /* invert the selected bit of the reg */
+  % immediate
+  % reg
+  [5] opcode
+  [6] 10            /* this is alu op */
+  [6] always
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 0x1f qset1      /* demux the lowest 4 bit of queue and OR it with regr into regw */
+  % reg             /* in short, set the bit in reg indexed by queue to 1 */
+  [5] opcode
+  [6] 9
+  [6] always
+  [6] reg
+  [9] 0
+end
+  
+format
+  ! 0x1f qset0      /* demux the lowest 4 bit of queue and AND it with regr into regw */
+  % reg             /* in short, set the bit in reg indexed by queue to 0 */
+  [5] opcode
+  [6] 9
+  [6] never
+  [6] reg
+  [9] 0
+end
+
+format 
+  ! 0x1f qsetflag   /* set the bit in reg index by queue to same as flag */
+  % flag
+  % reg
+  [5] opcode
+  [6] 9
+  [6] flag
+  [6] reg
+  [9] 0
+end
+
+format 
+  ! 0x1f nqsetflag   /* set the bit in the reg index by queue to opposite of flag */
+  % flag
+  % reg
+  [5] opcode
+  [6] 0x29
+  [6] flag
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 0x1f qsetflip      /* flip the bit in reg index by queue */
+  % reg
+  [5] opcode
+  [6] 10
+  [6] always
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 1 parse       /* take bits out of source (sco_tx,tx_buffer,rx-elas) into pdata and dest (sco_rx,rx_fifo,tx-elas) */
+  % source
+  % dest
+  % immediate
+  [5] opcode
+  [4] source      /* voice, data, demod */
+  [2] 0
+  [6] 0    
+  [2] 0           /* parse or inject */ 
+  [4] dest        /* acl, sco, mod, bucket */
+  [9] immediate   /* number of bits to parse off */
+end
+
+format
+  ! 1 inject      /* shift data from pdata into destination (tx-elas,rx_fifo,sco_rx) */
+  % destination
+  % immediate
+  [5] opcode
+  [4] 0
+  [2] 0
+  [6] 1
+  [2] 0
+  [4] destination /* acl,sco,mod,bucket */
+  [9] immediate   /* number of bits to be injected */
+end
+
+format
+  ! 1 iinject
+  % destination
+  % regr
+  [5] opcode
+  [6] regr       /* contain the number of bits to inject */
+  [6] 3
+  [2] 0
+  [4] destination /* acl,sco,mod,bucket */
+  [9] 0 
+end
+
+format
+  ! 1 stuff  /* automatic parse, stuff_counter decrement on every bit until hits zero */
+  % source
+  % destination
+  [5] opcode
+  [4] source
+  [2] 0
+  [6] 2
+  [2] 0
+  [4] destination
+  [9] 0
+end
+
+format    /* force immediate value into registers */
+  ! 3 force
+  % immediate
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 0    /* alu operation force */
+  [6] regw  /* destination register */
+  [9] immediate
+end
+
+format    /* force whatever is on shift_reg to regsiters */
+  ! 0x13 iforce
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 0    /* alu operation force */
+  [6] regw  /* destination register */
+  [9] 0
+end
+
+format    /* force immediate value into registers */
+  ! 3 increase
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 1    /* alu operation add */
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 pincrease
+  % immediate
+  [5] opcode
+  [6] -1  /* pdata */
+  [6] 1   /* alu add */
+  [6] -1  /* back to pdata */
+  [9] immediate
+end
+
+format    /* force immediate value into registers */
+  ! 3 and_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 2    /* alu operation and into */
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 and
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 2    /* alu operation and into */
+  [6] regw
+  [9] immediate
+end
+  
+format
+  ! 0x13 iand    /* pdata & regr -> regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 2    /* alu operation and into */
+  [6] regw
+  [9] 0
+end
+  
+
+format    /* and whatever is in shiftreg with reg */
+  ! 0x13 iand_into
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 2    /* alu operation and into */
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 3 or_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 3    /* alu operation or into */
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 or
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 3    /* alu operation or into */
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 ior
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 3    /* alu operation or into */
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 ior_into
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 3    /* alu operation or into */
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 3 skip_to   /* jump to location stored in reg */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 4   /* alu operation copy */
+  [6] rom_addr
+  [9] 0
+end
+
+format
+  ! 3 copy
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 4   /* alu operation copy */
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 deposit   /* copy the register content thru alu to shift register, not prealigned like preload */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 4   /* alu operation copy */
+  [6] -1  /* pdata */
+  [9] 0
+end
+
+format
+  ! 3 icopy     /* copy the shift register lsb content directly to register, not aligned */
+  % regw
+  [5] opcode
+  [6] -1  /* pdata */
+  [6]  4  /* alu copy */
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 add
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 1
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 iadd       /* regr + pdata -> regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 1
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 sub          /* immediate - regr -> regw */
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 12
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 isub       /* pdata - regr -> regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 12
+  [6] regw
+  [9] 0
+end
+
+
+format
+  ! 3 flip
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 5
+  [6] reg
+  [9] immediate
+end
+  
+format
+  ! 0x13 iflip  /* use shift register as immediate to do xor */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] 0
+end
+  
+format
+  ! 3 xor
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 3 xor_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 5
+  [6] reg
+  [9] immediate
+end
+  
+format
+  ! 0x13 ixor  /* pdata xor regr and store result in regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] 0
+end
+  
+format
+  ! 3 invert
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 8
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 pinvert    /* invert pdata into itself */
+  [5] opcode
+  [6] -1
+  [6] 8
+  [6] -1
+  [9] 0
+end
+
+format
+  ! 3 div                 /* regr div immediate div */
+  % reg
+  % immediate
+  [5] opcode
+  [6] reg
+  [6] 13                   /* generate diven pulse to div */
+  [6] null
+  [9] immediate
+end
+
+format
+  ! 0x13 idiv           /* pdata div regr data ready at most after 41 nops */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 13                   /* generate diven pulse to div */
+  [6] null
+  [9] 0
+end
+
+format
+  ! 3 remainder            /* harvest div remainder */
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 14
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 quotient             /* harvest div quotient */
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 15
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 6
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift2
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 22
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift3
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 18
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift4
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 35
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift8
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 25
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift16
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 34
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift32
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 30
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 7
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift2
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 23
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift8
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 26
+  [6] regw
+  [9] 0
+end
+
+  
+format
+  ! 3 lshift3
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 19
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift4
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 36
+  [6] regw
+  [9] 0
+end
+  
+
+format
+  ! 3 lshift16
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 32
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 random               /* random number into regw */
+  % reg
+  [5] opcode
+  [6] 0
+  [6] 20
+  [6] reg
+  [9] 0
+end
+
+format                     /* bit reverse within a byte */
+  ! 3 reverse
+  % reg
+  % regw
+  [5] opcode
+  [6] reg
+  [6] 27
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 priority    /* priority encode reg into regw, lsb is the top priority, ie, priority(8'b00010000) = 4 */
+  % reg
+  % regw
+  [5] opcode
+  [6] reg
+  [6] 21
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 7 setsect   /* set a section of pdata */
+  % section    /* 0 sets 17:0 of pdata with set_data, 1 sets 35:18, 2 sets 53:36, 3 sets 71:54 */
+  % set_data
+  [5] opcode
+  [7] 0
+  [2] section
+  [18] set_data
+end
+
+format
+  ! 10 preload   /* load stuff into pdata according to fhs format, check us.v */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 0
+  [6] -1
+  [9] 0
+end
+
+format  /* load register with pdata content, according to fhs format, check us.v */
+  ! 10 ialigned   /* all bits are in position */
+  % regw
+  [5] opcode
+  [6] -1
+  [6] 0
+  [6] regw
+  [9] 0
+end
+
+format  /* load register to another according to fhs format */
+  ! 10 aligned
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 0
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 4 branch
+  % addr
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 call
+  % addr
+  % flag
+  [5] opcode
+  [6] 2
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 rtn
+  % flag
+  [5] opcode
+  [6] 3
+  [6] flag
+  [15] 0
+end
+
+format
+  ! 0x0c store          /* write to memory, data from pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0c hstore          /* write to memory, data from pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1c istore        /* write to memory, data from pdata, address from regr then mem_ptr */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg            /* hold address */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] 0
+end
+
+format
+  ! 0x0d fetch          /* read from memory, data into pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d hfetch          /* read from memory, data into pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d crc         /* read from memory, count from loopcnt, put crc result into pdata */
+  % addr
+  [5] opcode
+  [6] 0
+  [1] 0
+  [1] 0
+  [4] 0
+  [15] addr
+end
+
+format
+  ! 0x1d icrc         /* read from memory, address from reg, count from loopcnt, put crc result into pdata */
+  % reg
+  [5] opcode
+  [6] reg             /* hold address */
+  [1] 0
+  [1] 0
+  [4] 0
+  [15] 0
+end
+
+
+format
+  ! 0x1d ifetch         /* read from memory, data into pdata, address from regr then mem_ptr */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg             /* hold address */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] 0
+end
+
+format
+  ! 0x0c storet          /* write to memory, data from temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0c hstoret          /* write to corereg, data from temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1c istoret        /* write to memory, data from temp, address from regr won't increment */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg            /* hold address */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] 0
+end
+
+format
+  ! 0x0d fetcht          /* read from memory, data into temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d hfetcht          /* read from corereg, data into temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1d ifetcht         /* read from memory, data into temp, address from regr won't increment */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg             /* hold address */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] 0
+end
+
+format
+  ! 0x0e jam
+  % immediate
+  % addr
+  [5] opcode
+  [3] 0
+  [16] addr
+  [8] immediate
+end
+
+format			/* 0x242... */
+  ! 4 nbranch
+  % addr
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 1
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 ncall
+  % addr
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 2
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 nrtn
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 3
+  [6] flag
+  [15] 0
+end
+
+format
+  ! 4 nop
+  % addr  /* no-op for addr+2 clocks */
+  [5] opcode
+  [6] 0     
+  [6] 0     /* always */ 
+  [15] addr
+end
+
+format
+  ! 4 clear_stack
+  [5] opcode
+  [6] 4
+  [6] 0    /* always */
+  [15] 0
+end
+
+format
+  ! 6 until
+  % reg
+  % flag
+  [5] opcode
+  [6] reg
+  [6] flag
+  [6] 1
+  [9] 0
+end
+  
+format
+  ! 6 correlate   /* quit if 1. flag is true 2, regr time up 3, found sync,(cond_true) */
+  % reg          /* expire counter to check against */
+  % flag
+  [5] opcode
+  [6] reg
+  [6] flag
+  [6] 2           /* correlate */
+  [9] 0           
+end
+
+format
+  ! 5 compare   /* sets cond flag,  if reg equals immediate */
+  % immediate
+  % reg
+  % mask
+  [5] opcode
+  [6] reg
+  [3] 0
+  [9] mask
+  [9] immediate
+end
+
+format
+  ! 0x15 icompare   /* sets cond flag,  if reg equals pdata */
+  % mask
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 0
+  [9] mask
+  [9] 0
+end
+
+format   /* sets cond. flag, if reg equals LS half of shift reg with MS half of reg being mask */
+  ! 5 iverify
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 2
+  [18] 0
+end
+
+format
+  ! 0x15 qisolate1
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [18] -1
+end
+
+format
+  ! 0x15 qisolate0
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [18] 0
+end
+
+	/* REVAB bug: cannot access bit above 35 */
+format
+  ! 5 isolate1
+  % addr
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [9] -1
+  [9] addr
+end
+
+format
+  ! 5 isolate0
+  % addr
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [9] 0
+  [9] addr
+end
+
+format
+  ! 11 setarg
+  % immediate
+  [5] opcode
+  [27] immediate
+end
+
+format
+  ! 0x1b arg
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [21] immediate
+end
+
+  
+format
+  ! 0 sleep
+  [5] opcode
+  [27] 0
+end
+
+format
+  ! 0 snooze
+  [5] opcode
+  [6] -1
+  [21] 0
+end
+
+format
+  ! 0 revision
+  % rev_num
+  [5] opcode
+  [27] rev_num
+end
+
+format
+  ! 0x18 loop   /* branch when loopcnt is NOT zero, and decrease loopcnt */
+  % addr
+  [5] opcode
+  [4] 4
+  [8] 0
+  [15] addr
+end
+
+format
+  ! 0x18 beq   /* branch when pdata is equal to immediate */
+  % imme
+  % addr
+  [5] opcode
+  [4] 0
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bne   /* branch when pdata is NOT equal to immediate */
+  % imme
+  % addr
+  [5] opcode
+  [4] 1
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtneq   /* return when pdata is equal to immediate */
+  % imme
+  [5] opcode
+  [4] 2
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnne   /* return when pdata is NOT equal to immediate */
+  % imme
+  [5] opcode
+  [4] 3
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 bbit1   /* branch when pdata's imme bit is 1 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 5
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bbit0   /* branch when pdata's imme bit is 0 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 6
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtnbit1   /* return when pdata's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 7
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnbit0   /* return when pdata's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 8
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 8	bpatch
+  % imme
+  % addr
+  [5] opcode
+  [4] 9
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 8	bpatchx
+  % imme
+  % addr
+  [5] opcode
+  [4] 14
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bmark1   /* branch when mark's imme bit is 1 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 10
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bmark0   /* branch when mark's imme bit is 0 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 11
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtnmark1   /* return when mark's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 12
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnmark0   /* return when mark's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 13
+  [8] imme
+  [15] 0
+end
+
+
+format
+  ! 3 mult                  /* immediate mult regr */  /* the product will be ready 17 clks later */
+  % immediate                                   /* use "product" instruction to get the result */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 16                   /* generate diven pulse to div */
+  [6] null
+  [9] immediate
+end
+
+format
+  ! 0x13 imult           /* pdata mult regr */  /* the product will be ready after 15 nops */
+  % reg                                         /* use product opcode to get the result */
+  [5] opcode
+  [6] reg
+  [6] 16                   /* generate mult pulse to multiplier */
+  [6] null
+  [9] 0
+end
+
+format
+  ! 3 mul32                  /* immediate mult regr */ 
+  % regr
+  % immediate                                  
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 31           
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 imul32           /* pdata mult regr 32x32=64bit */  
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 31                   
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 product              /* harvest mult product */
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 17
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 byteswap
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 33
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 shasx          /* SHA256 Sx operation, immediate is Sx */
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 28
+  [6] regw
+  [9] immediate
+end
+
+
+format
+  ! 0x13 regexrot 	/* regext[0] <- regext[7], regext[1] <- regext[0], regext[2] <- regext[1] ... */
+  [5] opcode
+  [6] 0
+  [6] 29
+  [6] null
+  [9] 0
+end
+
Index: output/bt_program23.icode
===================================================================
--- /branch/USB/dongle_sdk/output/bt_program23.icode	(revision 0)
+++ /branch/USB/dongle_sdk/output/bt_program23.icode	(working copy)
@@ -0,0 +1,1261 @@
+ 00000000  0x0000000b bbit1  0x00000008 , 0x0000000a 
+ 00000001  0x0000000c beq  0x00000085 , 0x00000431 
+ 00000002  0x0000000d beq  0x00000089 , 0x00000409 
+ 00000003  0x0000000e beq  0x00000000 , 0x00000429 
+ 00000004  0x0000000f beq  0x0000008e , 0x0000000b 
+ 00000005  0x00000010 beq  0x000000c4 , 0x0000008b 
+ 00000006  0x00000011 beq  0x000000f7 , 0x00000012 
+ 00000007  0x00000012 beq  0x000000f8 , 0x0000004b 
+ 00000008  0x00000013 beq  0x000000fc , 0x0000002a 
+ 00000009  0x00000014 branch  0x00002a8e 
+ 00000010  0x00000016 branch  0x00002a8e 
+ 00000011  0x0000001a hfetch  0x00000002 , 0x00008981 
+ 00000012  0x0000001b rshift4  0x0000003f , 0x0000003f 
+ 00000013  0x0000001c rshift3  0x0000003f , 0x0000003f 
+ 00000014  0x0000001d sub  0x0000003f , 0x00000000 , 0x0000003f 
+ 00000015  0x0000001e and_into  0x000000ff , 0x0000003f 
+ 00000016  0x0000001f store  0x00000001 , 0x000048ee 
+ 00000017  0x00000020 branch  0x000029c1 
+ 00000018  0x00000023 jam  0x00000000 , 0x00008a05 
+ 00000019  0x00000024 call  0x00004919 
+ 00000020  0x00000025 call  0x00000017 
+ 00000021  0x00000026 call  0x00000021 
+ 00000022  0x00000027 branch  0x000048ec 
+ 00000023  0x0000002a fetch  0x00000001 , 0x000011be 
+ 00000024  0x0000002b rtn  0x00000034 
+ 00000025  0x0000002c fetch  0x00000001 , 0x000011c7 
+ 00000026  0x0000002d beq  0x0000005a , 0x0000001e 
+ 00000027  0x0000002f fetch  0x00000004 , 0x000011bf 
+ 00000028  0x00000030 store  0x00000004 , 0x00000b71 
+ 00000029  0x00000031 rtn 
+ 00000030  0x00000033 fetch  0x00000004 , 0x000011c3 
+ 00000031  0x00000034 store  0x00000004 , 0x00000b71 
+ 00000032  0x00000035 rtn 
+ 00000033  0x00000038 fetch  0x00000001 , 0x000011c7 
+ 00000034  0x00000039 beq  0x0000005a , 0x00000048 
+ 00000035  0x0000003b setarg  0x000011c8 
+ 00000036  0x0000003c store  0x00000002 , 0x00000b7c 
+ 00000037  0x0000003d setarg  0x00001290 
+ 00000038  0x0000003e store  0x00000002 , 0x00000b7e 
+ 00000039  0x00000040 jam  0x0000001a , 0x00000b9a 
+ 00000040  0x00000041 jam  0x000000a3 , 0x00000bb3 
+ 00000041  0x00000042 rtn 
+ 00000042  0x00000046 fetch  0x00000001 , 0x00000d38 
+ 00000043  0x00000047 rtn  0x00000034 
+ 00000044  0x00000048 fetch  0x00000001 , 0x00000d37 
+ 00000045  0x00000049 nbranch  0x00004bac , 0x00000034 
+ 00000046  0x0000004a fetch  0x00000001 , 0x00000d45 
+ 00000047  0x0000004b branch  0x00004b86 , 0x00000034 
+ 00000048  0x0000004c fetch  0x00000001 , 0x00000d36 
+ 00000049  0x0000004d beq  0x00000003 , 0x00004bbf 
+ 00000050  0x0000004e bne  0x00000002 , 0x00004b86 
+ 00000051  0x0000004f fetch  0x00000001 , 0x00000d3a 
+ 00000052  0x00000050 nbranch  0x00004b86 , 0x00000034 
+ 00000053  0x00000051 call  0x00004b6f 
+ 00000054  0x00000052 branch  0x00000037 
+ 00000055  0x00000056 fetch  0x00000001 , 0x00000d38 
+ 00000056  0x00000057 rtnbit0  0x00000002 
+ 00000057  0x00000058 fetch  0x00000001 , 0x00000d37 
+ 00000058  0x00000059 rtnbit1  0x00000002 
+ 00000059  0x0000005a fetch  0x00000001 , 0x00000d38 
+ 00000060  0x0000005b set0  0x00000002 , 0x0000003f 
+ 00000061  0x0000005c store  0x00000001 , 0x00000d38 
+ 00000062  0x0000005d fetch  0x00000001 , 0x00000d52 
+ 00000063  0x0000005e rtn  0x00000034 
+ 00000064  0x0000005f beq  0x00000020 , 0x00004b89 
+ 00000065  0x00000060 beq  0x00000021 , 0x00004ba4 
+ 00000066  0x00000061 beq  0x00000022 , 0x00000044 
+ 00000067  0x00000062 branch  0x00002a8c 
+ 00000068  0x00000065 jam  0x00000000 , 0x00000d52 
+ 00000069  0x00000066 arg  0x00000002 , 0x00000039 
+ 00000070  0x00000067 arg  0x000013bc , 0x00000006 
+ 00000071  0x00000068 branch  0x00004b5e 
+ 00000072  0x0000006c setarg  0x00001358 
+ 00000073  0x0000006d store  0x00000002 , 0x00000b7c 
+ 00000074  0x0000006e rtn 
+ 00000075  0x00000071 jam  0x00000011 , 0x00008a26 
+ 00000076  0x00000072 hfetch  0x00000001 , 0x00008a20 
+ 00000077  0x00000073 store  0x00000001 , 0x00000b24 
+ 00000078  0x00000074 copy  0x0000003f , 0x00000039 
+ 00000079  0x00000075 branch  0x0000005a , 0x00000034 
+ 00000080  0x00000076 arg  0x00000c6e , 0x00000005 
+ 00000081  0x00000077 call  0x00004946 
+ 00000082  0x00000078 fetch  0x00000001 , 0x00000b24 
+ 00000083  0x00000079 beq  0x00000001 , 0x0000005d 
+ 00000084  0x0000007a sub  0x0000003f , 0x00000007 , 0x0000003e 
+ 00000085  0x0000007b rtn  0x00000002 
+ 00000086  0x0000007d fetch  0x00000001 , 0x00000c6e 
+ 00000087  0x0000007e and_into  0x00000080 , 0x0000003f 
+ 00000088  0x0000007f beq  0x00000000 , 0x00000061 
+ 00000089  0x00000080 branch  0x00004957 
+ 00000090  0x00000083 fetch  0x00000001 , 0x00000b22 
+ 00000091  0x00000084 bbit1  0x00000004 , 0x00000056 
+ 00000092  0x00000085 rtn 
+ 00000093  0x00000088 fetch  0x00000001 , 0x00000c6e 
+ 00000094  0x00000089 rtnbit1  0x00000007 
+ 00000095  0x0000008a call  0x00000087 
+ 00000096  0x0000008b branch  0x00004988 
+ 00000097  0x0000008f fetch  0x00000001 , 0x00000c6e 
+ 00000098  0x00000090 rshift4  0x0000003f , 0x0000003f 
+ 00000099  0x00000091 rshift  0x0000003f , 0x0000003f 
+ 00000100  0x00000092 and_into  0x00000003 , 0x0000003f 
+ 00000101  0x00000093 beq  0x00000000 , 0x00000068 
+ 00000102  0x00000094 beq  0x00000001 , 0x00000076 
+ 00000103  0x00000095 branch  0x00004966 
+ 00000104  0x00000098 fetch  0x00000001 , 0x00000c6f 
+ 00000105  0x00000099 beq  0x00000003 , 0x0000006b 
+ 00000106  0x0000009a branch  0x00004977 
+ 00000107  0x0000009d fetch  0x00000001 , 0x00000c74 
+ 00000108  0x0000009e bne  0x00000000 , 0x00004984 
+ 00000109  0x0000009f fetch  0x00000001 , 0x00000c75 
+ 00000110  0x000000a0 bne  0x00000000 , 0x00004984 
+ 00000111  0x000000a1 fetch  0x00000001 , 0x00000c6e 
+ 00000112  0x000000a2 beq  0x00000000 , 0x00000072 
+ 00000113  0x000000a3 branch  0x00004a7e 
+ 00000114  0x000000a7 fetch  0x00000001 , 0x00000c70 
+ 00000115  0x000000a8 bne  0x00000001 , 0x00004984 
+ 00000116  0x000000a9 jam  0x00000003 , 0x0000497a 
+ 00000117  0x000000aa branch  0x00004a84 
+ 00000118  0x000000ad fetch  0x00000001 , 0x00000c6f 
+ 00000119  0x000000ae beq  0x00000009 , 0x00000079 
+ 00000120  0x000000af branch  0x0000497f 
+ 00000121  0x000000b1 jam  0x00000001 , 0x00000d50 
+ 00000122  0x000000b2 call  0x00004b03 
+ 00000123  0x000000b3 fetch  0x00000002 , 0x00000c70 
+ 00000124  0x000000b4 store  0x00000002 , 0x00000d4e 
+ 00000125  0x000000b5 nop  0x00003a98 
+ 00000126  0x000000b6 hfetch  0x00000001 , 0x00008a20 
+ 00000127  0x000000b7 ncall  0x00000083 , 0x00000034 
+ 00000128  0x000000b8 fetch  0x00000001 , 0x00000d43 
+ 00000129  0x000000b9 ncall  0x00000086 , 0x00000034 
+ 00000130  0x000000ba branch  0x00004afd 
+ 00000131  0x000000bc copy  0x0000003f , 0x00000039 
+ 00000132  0x000000bd arg  0x00000c76 , 0x00000005 
+ 00000133  0x000000be branch  0x00004946 
+ 00000134  0x000000c1 fetch  0x00000001 , 0x00000c76 
+ 00000135  0x000000c3 store  0x00000001 , 0x00004978 
+ 00000136  0x000000c4 jam  0x00000000 , 0x00000d43 
+ 00000137  0x000000c5 jam  0x00000003 , 0x000048b8 
+ 00000138  0x000000c6 rtn 
+ 00000139  0x000000c9 jam  0x00000000 , 0x00004983 
+ 00000140  0x000000ca jam  0x00000007 , 0x0000497b 
+ 00000141  0x000000cb call  0x000074b9 
+ 00000142  0x000000cc fetch  0x00000004 , 0x000040a0 
+ 00000143  0x000000cd store  0x00000004 , 0x0000489f 
+ 00000144  0x000000ce fetcht  0x00000001 , 0x0000423a 
+ 00000145  0x000000cf call  0x0000680e 
+ 00000146  0x000000d0 call  0x000000a8 
+ 00000147  0x000000d1 call  0x00000189 
+ 00000148  0x000000d2 call  0x0000009d 
+ 00000149  0x000000d3 call  0x0000009b 
+ 00000150  0x000000d4 fetch  0x00000001 , 0x000048ba 
+ 00000151  0x000000d5 beq  0x00000000 , 0x000001df 
+ 00000152  0x000000d6 beq  0x00000001 , 0x000000b2 
+ 00000153  0x000000d7 beq  0x0000000f , 0x000000ae 
+ 00000154  0x000000d8 rtn 
+ 00000155  0x000000db call  0x000000a4 
+ 00000156  0x000000dc branch  0x000065d1 
+ 00000157  0x000000df call  0x0000659c 
+ 00000158  0x000000e0 call  0x000000a0 
+ 00000159  0x000000e1 branch  0x000065df 
+ 00000160  0x000000e4 arg  0x000011c7 , 0x00000011 
+ 00000161  0x000000e5 arg  0x00000000 , 0x00000012 
+ 00000162  0x000000e6 arg  0x00000001 , 0x00000002 
+ 00000163  0x000000e7 rtn 
+ 00000164  0x000000ea arg  0x000013d2 , 0x00000011 
+ 00000165  0x000000eb arg  0x00000070 , 0x00000012 
+ 00000166  0x000000ec arg  0x00000003 , 0x00000002 
+ 00000167  0x000000ed rtn 
+ 00000168  0x000000f0 fetch  0x00000001 , 0x000041de 
+ 00000169  0x000000f1 store  0x00000001 , 0x000048ed 
+ 00000170  0x000000f2 arg  0x00000080 , 0x00000039 
+ 00000171  0x000000f3 arg  0x00000d9e , 0x00000005 
+ 00000172  0x000000f4 call  0x00007ec6 
+ 00000173  0x000000f5 branch  0x000048ea 
+ 00000174  0x000000f8 call  0x000000b7 
+ 00000175  0x000000fa call  0x000000bb 
+ 00000176  0x000000fb call  0x000001a7 
+ 00000177  0x000000fc branch  0x000000af 
+ 00000178  0x000000ff call  0x000000b7 
+ 00000179  0x00000101 call  0x000000bb 
+ 00000180  0x00000102 call  0x0000010c 
+ 00000181  0x00000103 call  0x000001a7 
+ 00000182  0x00000104 branch  0x000000b3 
+ 00000183  0x00000107 jam  0x00000000 , 0x000048b8 
+ 00000184  0x00000109 jam  0x00000000 , 0x000048a4 
+ 00000185  0x0000010a jam  0x00000000 , 0x000048a3 
+ 00000186  0x0000010b rtn 
+ 00000187  0x0000010e fetch  0x00000001 , 0x000048a4 
+ 00000188  0x0000010f rtnne  0x00000000 
+ 00000189  0x00000111 call  0x000000c1 
+ 00000190  0x00000112 call  0x000000cf 
+ 00000191  0x00000113 call  0x00000346 
+ 00000192  0x00000114 branch  0x000000ee 
+ 00000193  0x00000117 fetch  0x00000001 , 0x000048a3 
+ 00000194  0x00000118 rtnbit1  0x00000000 
+ 00000195  0x00000119 set1  0x00000000 , 0x0000003f 
+ 00000196  0x0000011a store  0x00000001 , 0x000048a3 
+ 00000197  0x0000011b fetch  0x00000001 , 0x000048ed 
+ 00000198  0x0000011c store  0x00000001 , 0x000041de 
+ 00000199  0x0000011d jam  0x00000000 , 0x000048b8 
+ 00000200  0x0000011e jam  0x00000000 , 0x00000d38 
+ 00000201  0x0000011f jam  0x00000001 , 0x000048b0 
+ 00000202  0x00000120 jam  0x00000000 , 0x00004835 
+ 00000203  0x00000121 fetch  0x00000004 , 0x0000489f 
+ 00000204  0x00000122 call  0x00000446 
+ 00000205  0x00000123 call  0x00000466 
+ 00000206  0x00000124 branch  0x00000128 
+ 00000207  0x00000127 fetch  0x00000001 , 0x000048b0 
+ 00000208  0x00000128 beq  0x00000001 , 0x000000e8 
+ 00000209  0x00000129 fetch  0x00000001 , 0x000048b9 
+ 00000210  0x0000012a beq  0x00000001 , 0x000000e2 
+ 00000211  0x0000012b fetcht  0x00000004 , 0x000048b2 
+ 00000212  0x0000012c copy  0x00000022 , 0x0000003f 
+ 00000213  0x0000012d isub  0x00000002 , 0x0000003e 
+ 00000214  0x0000012e ncall  0x00002d18 , 0x00000002 
+ 00000215  0x0000012f copy  0x0000003f , 0x00000012 
+ 00000216  0x00000130 fetch  0x00000004 , 0x000048b2 
+ 00000217  0x00000131 fetcht  0x00000001 , 0x000048b6 
+ 00000218  0x00000132 iadd  0x00000002 , 0x00000002 
+ 00000219  0x00000133 copy  0x00000012 , 0x0000003f 
+ 00000220  0x00000134 isub  0x00000002 , 0x0000003e 
+ 00000221  0x00000135 nrtn  0x00000002 
+ 00000222  0x00000136 set0  0x0000001c , 0x0000003f 
+ 00000223  0x00000137 store  0x00000004 , 0x000048b2 
+ 00000224  0x00000138 jam  0x00000001 , 0x000048b0 
+ 00000225  0x00000139 branch  0x00000466 
+ 00000226  0x0000013c jam  0x00000000 , 0x000048b9 
+ 00000227  0x0000013d branch  0x00000466 
+ 00000228  0x00000140 copy  0x00000022 , 0x0000003f 
+ 00000229  0x00000141 store  0x00000004 , 0x000048b2 
+ 00000230  0x00000142 jam  0x00000000 , 0x000048b1 
+ 00000231  0x00000143 rtn 
+ 00000232  0x00000146 arg  0x00000d9e , 0x00000011 
+ 00000233  0x00000147 call  0x00000441 
+ 00000234  0x00000148 storet  0x00000001 , 0x000048ef 
+ 00000235  0x00000149 sub  0x00000002 , 0x00000050 , 0x0000003e 
+ 00000236  0x0000014a nrtn  0x00000002 
+ 00000237  0x0000014b branch  0x00000466 
+ 00000238  0x0000014e call  0x000000f1 
+ 00000239  0x0000014f call  0x000000f8 
+ 00000240  0x00000150 branch  0x00000102 
+ 00000241  0x00000153 fetch  0x00000001 , 0x000048d5 
+ 00000242  0x00000154 rtn  0x00000034 
+ 00000243  0x00000155 arg  0x0000000b , 0x00000007 
+ 00000244  0x00000156 call  0x00007f16 
+ 00000245  0x00000157 nrtn  0x00000034 
+ 00000246  0x00000158 jam  0x00000000 , 0x000048d5 
+ 00000247  0x00000159 branch  0x00002fa0 
+ 00000248  0x0000015c fetch  0x00000001 , 0x000048d3 
+ 00000249  0x0000015d rtn  0x00000034 
+ 00000250  0x0000015e arg  0x0000000e , 0x00000007 
+ 00000251  0x0000015f call  0x00007f16 
+ 00000252  0x00000160 nrtn  0x00000034 
+ 00000253  0x00000161 jam  0x00000000 , 0x000048d3 
+ 00000254  0x00000162 call  0x00002fac 
+ 00000255  0x00000163 fetch  0x00000008 , 0x00000d64 
+ 00000256  0x00000164 store  0x00000008 , 0x000048c5 
+ 00000257  0x00000165 rtn 
+ 00000258  0x00000168 fetch  0x00000001 , 0x000048d4 
+ 00000259  0x00000169 rtn  0x00000034 
+ 00000260  0x0000016a arg  0x0000000c , 0x00000007 
+ 00000261  0x0000016b call  0x00007f16 
+ 00000262  0x0000016c nrtn  0x00000034 
+ 00000263  0x0000016d jam  0x00000000 , 0x000048d4 
+ 00000264  0x0000016e call  0x00002fb8 
+ 00000265  0x0000016f fetch  0x00000003 , 0x00000d74 
+ 00000266  0x00000170 store  0x00000003 , 0x000048d0 
+ 00000267  0x00000171 rtn 
+ 00000268  0x00000174 fetch  0x00000001 , 0x000048a4 
+ 00000269  0x00000175 rtnne  0x00000001 
+ 00000270  0x00000176 call  0x00000110 
+ 00000271  0x00000177 branch  0x0000011c 
+ 00000272  0x0000017a fetch  0x00000001 , 0x000048a3 
+ 00000273  0x0000017b rtnbit1  0x00000001 
+ 00000274  0x0000017c set1  0x00000001 , 0x0000003f 
+ 00000275  0x0000017d store  0x00000001 , 0x000048a3 
+ 00000276  0x0000017e setarg  0x00000000 
+ 00000277  0x0000017f store  0x00000003 , 0x000048a5 
+ 00000278  0x00000180 jam  0x00000004 , 0x000041de 
+ 00000279  0x00000181 jam  0x00000001 , 0x000048b8 
+ 00000280  0x00000182 jam  0x00000000 , 0x00004835 
+ 00000281  0x00000183 jam  0x0000004e , 0x00004840 
+ 00000282  0x00000184 fetch  0x00000004 , 0x00004842 
+ 00000283  0x00000185 branch  0x00000446 
+ 00000284  0x00000188 call  0x00000264 
+ 00000285  0x00000189 nbranch  0x00000128 , 0x0000002f 
+ 00000286  0x0000018a jam  0x00000005 , 0x0000497c 
+ 00000287  0x0000018b arg  0x000047b0 , 0x00000006 
+ 00000288  0x0000018c arg  0x0000487d , 0x00000005 
+ 00000289  0x0000018d arg  0x00000008 , 0x00000039 
+ 00000290  0x0000018e call  0x00007f01 
+ 00000291  0x0000018f fetch  0x00000001 , 0x0000487f 
+ 00000292  0x00000190 beq  0x000000aa , 0x00000146 
+ 00000293  0x00000191 beq  0x00000055 , 0x00000153 
+ 00000294  0x00000192 beq  0x00000022 , 0x00000163 
+ 00000295  0x00000193 beq  0x000000ff , 0x0000017f 
+ 00000296  0x00000195 arg  0x000047b0 , 0x00000005 
+ 00000297  0x00000196 arg  0x00000042 , 0x00000039 
+ 00000298  0x00000197 branch  0x00007ed4 
+ 00000299  0x0000019a fetch  0x00000001 , 0x000048a4 
+ 00000300  0x0000019b rtnne  0x00000001 
+ 00000301  0x0000019c fetch  0x00000001 , 0x000048ba 
+ 00000302  0x0000019d nrtn  0x00000034 
+ 00000303  0x0000019e fetch  0x00000001 , 0x000047b3 
+ 00000304  0x0000019f beq  0x00000001 , 0x00000133 
+ 00000305  0x000001a0 beq  0x00000002 , 0x00000137 
+ 00000306  0x000001a1 rtn 
+ 00000307  0x000001a3 fetch  0x00000001 , 0x00004983 
+ 00000308  0x000001a4 rtnbit0  0x00000000 
+ 00000309  0x000001a6 disable  0x0000002f 
+ 00000310  0x000001a7 rtn 
+ 00000311  0x000001a9 fetch  0x00000001 , 0x00004983 
+ 00000312  0x000001aa rtnbit0  0x00000001 
+ 00000313  0x000001ab branch  0x00000135 
+ 00000314  0x000001ae fetch  0x00000001 , 0x000048ba 
+ 00000315  0x000001af nrtn  0x00000034 
+ 00000316  0x000001b0 fetch  0x00000001 , 0x00004983 
+ 00000317  0x000001b1 or_into  0x00000001 , 0x0000003f 
+ 00000318  0x000001b2 store  0x00000001 , 0x00004983 
+ 00000319  0x000001b3 rtn 
+ 00000320  0x000001b6 fetch  0x00000001 , 0x000048ba 
+ 00000321  0x000001b7 nrtn  0x00000034 
+ 00000322  0x000001b8 fetch  0x00000001 , 0x00004983 
+ 00000323  0x000001b9 or_into  0x00000002 , 0x0000003f 
+ 00000324  0x000001ba store  0x00000001 , 0x00004983 
+ 00000325  0x000001bb rtn 
+ 00000326  0x000001bf fetch  0x00000001 , 0x00004880 
+ 00000327  0x000001c0 beq  0x00000001 , 0x0000014a 
+ 00000328  0x000001c1 beq  0x00000002 , 0x00000150 
+ 00000329  0x000001c2 rtn 
+ 00000330  0x000001c4 jam  0x00000001 , 0x000048a5 
+ 00000331  0x000001c6 jam  0x00000001 , 0x000048a8 
+ 00000332  0x000001c8 jam  0x00000080 , 0x000048a9 
+ 00000333  0x000001c9 fetch  0x00000006 , 0x0000489f 
+ 00000334  0x000001ca store  0x00000006 , 0x000048aa 
+ 00000335  0x000001cb rtn 
+ 00000336  0x000001ce jam  0x00000001 , 0x000048a6 
+ 00000337  0x000001d0 jam  0x00000002 , 0x000048a8 
+ 00000338  0x000001d1 branch  0x0000014c 
+ 00000339  0x000001d4 fetch  0x00000001 , 0x00004880 
+ 00000340  0x000001d5 beq  0x00000001 , 0x00000157 
+ 00000341  0x000001d6 beq  0x00000002 , 0x0000015d 
+ 00000342  0x000001d7 rtn 
+ 00000343  0x000001d9 call  0x0000014b 
+ 00000344  0x000001da fetch  0x00000001 , 0x000048a5 
+ 00000345  0x000001db beq  0x00000001 , 0x0000015b 
+ 00000346  0x000001dc rtn 
+ 00000347  0x000001de jam  0x00000002 , 0x000048a5 
+ 00000348  0x000001df rtn 
+ 00000349  0x000001e1 call  0x00000151 
+ 00000350  0x000001e2 fetch  0x00000001 , 0x000048a6 
+ 00000351  0x000001e3 beq  0x00000001 , 0x00000161 
+ 00000352  0x000001e4 rtn 
+ 00000353  0x000001e6 jam  0x00000002 , 0x000048a6 
+ 00000354  0x000001e7 rtn 
+ 00000355  0x000001ea fetch  0x00000001 , 0x00004880 
+ 00000356  0x000001eb beq  0x00000001 , 0x00000167 
+ 00000357  0x000001ec beq  0x00000002 , 0x00000171 
+ 00000358  0x000001ed rtn 
+ 00000359  0x000001ef fetch  0x00000001 , 0x000048a5 
+ 00000360  0x000001f0 beq  0x00000002 , 0x0000016a 
+ 00000361  0x000001f1 rtn 
+ 00000362  0x000001f3 call  0x0000013a 
+ 00000363  0x000001f4 fetch  0x00000001 , 0x000048a7 
+ 00000364  0x000001f5 or_into  0x00000001 , 0x0000003f 
+ 00000365  0x000001f6 store  0x00000001 , 0x000048a7 
+ 00000366  0x000001f8 setarg  0x00000000 
+ 00000367  0x000001f9 store  0x00000002 , 0x000048a5 
+ 00000368  0x000001fa branch  0x00000128 
+ 00000369  0x000001fd fetch  0x00000001 , 0x000048a6 
+ 00000370  0x000001fe bne  0x00000000 , 0x00000174 
+ 00000371  0x000001ff rtn 
+ 00000372  0x00000201 call  0x00000140 
+ 00000373  0x00000202 fetch  0x00000001 , 0x000048a7 
+ 00000374  0x00000203 or_into  0x00000002 , 0x0000003f 
+ 00000375  0x00000204 store  0x00000001 , 0x000048a7 
+ 00000376  0x00000205 call  0x0000016e 
+ 00000377  0x00000207 fetch  0x00000001 , 0x000011c7 
+ 00000378  0x00000208 rtneq  0x0000005a 
+ 00000379  0x00000209 jam  0x0000005a , 0x000011c7 
+ 00000380  0x0000020a call  0x000000a0 
+ 00000381  0x0000020b call  0x000065d1 
+ 00000382  0x0000020c branch  0x0000659a 
+ 00000383  0x0000020f fetch  0x00000001 , 0x00004880 
+ 00000384  0x00000210 beq  0x00000001 , 0x00000183 
+ 00000385  0x00000211 beq  0x00000002 , 0x00000186 
+ 00000386  0x00000212 rtn 
+ 00000387  0x00000214 fetch  0x00000004 , 0x00004881 
+ 00000388  0x00000216 store  0x00000004 , 0x000048da 
+ 00000389  0x00000217 rtn 
+ 00000390  0x00000219 fetch  0x00000004 , 0x00004881 
+ 00000391  0x0000021b store  0x00000004 , 0x000048d6 
+ 00000392  0x0000021c rtn 
+ 00000393  0x0000021f jam  0x00000000 , 0x00004900 
+ 00000394  0x00000220 setarg  0x00004905 
+ 00000395  0x00000221 store  0x00000002 , 0x00004901 
+ 00000396  0x00000222 store  0x00000002 , 0x00004903 
+ 00000397  0x00000223 rtn 
+ 00000398  0x00000226 arg  0x0000001f , 0x00000039 
+ 00000399  0x00000227 arg  0x00000cb6 , 0x00000002 
+ 00000400  0x00000228 fetch  0x00000002 , 0x00004903 
+ 00000401  0x00000229 copy  0x0000003f , 0x00000005 
+ 00000402  0x0000022a copy  0x00000002 , 0x00000006 
+ 00000403  0x0000022b call  0x00007f01 
+ 00000404  0x0000022c fetch  0x00000001 , 0x00004900 
+ 00000405  0x0000022d increase  0x00000001 , 0x0000003f 
+ 00000406  0x0000022e store  0x00000001 , 0x00004900 
+ 00000407  0x0000022f setarg  0x00004903 
+ 00000408  0x00000231 copy  0x0000003f , 0x00000011 
+ 00000409  0x00000232 arg  0x00004965 , 0x00000002 
+ 00000410  0x00000233 ifetch  0x00000002 , 0x00000011 
+ 00000411  0x00000234 increase  0x00000020 , 0x0000003f 
+ 00000412  0x00000235 isub  0x00000002 , 0x0000003e 
+ 00000413  0x00000236 nbranch  0x0000019f , 0x00000002 
+ 00000414  0x00000237 setarg  0x00004905 
+ 00000415  0x00000239 istore  0x00000002 , 0x00000011 
+ 00000416  0x0000023a rtn 
+ 00000417  0x0000023d disable  0x00000028 
+ 00000418  0x0000023e fetch  0x00000001 , 0x00004900 
+ 00000419  0x0000023f rtn  0x00000034 
+ 00000420  0x00000240 enable  0x00000028 
+ 00000421  0x00000241 fetch  0x00000002 , 0x00004901 
+ 00000422  0x00000242 rtn 
+ 00000423  0x00000245 jam  0x000000ff , 0x00008004 
+ 00000424  0x00000246 fetch  0x00000001 , 0x00000d39 
+ 00000425  0x00000247 call  0x00000316 , 0x00000034 
+ 00000426  0x00000248 call  0x000048d3 
+ 00000427  0x00000249 fetch  0x00000001 , 0x00000d50 
+ 00000428  0x0000024a rtn  0x00000034 
+ 00000429  0x0000024b jam  0x00000000 , 0x00000d50 
+ 00000430  0x0000024c fetch  0x00000002 , 0x00000d4e 
+ 00000431  0x0000024d arg  0x000002ba , 0x00000002 
+ 00000432  0x0000024e isub  0x00000002 , 0x0000003e 
+ 00000433  0x0000024f nrtn  0x00000005 
+ 00000434  0x00000251 fetch  0x00000001 , 0x00000cb6 
+ 00000435  0x00000252 rtnne  0x000000ba 
+ 00000436  0x00000253 fetch  0x00000001 , 0x00000cb7 
+ 00000437  0x00000254 beq  0x000000a0 , 0x000001c6 
+ 00000438  0x00000255 beq  0x000000a1 , 0x000001bc 
+ 00000439  0x00000256 beq  0x000000a6 , 0x00003041 
+ 00000440  0x00000257 beq  0x000000a7 , 0x000001cb 
+ 00000441  0x00000258 beq  0x000000a9 , 0x000001d1 
+ 00000442  0x00000259 beq  0x000000b0 , 0x000001d3 
+ 00000443  0x0000025a branch  0x0000302a 
+ 00000444  0x0000025d fetch  0x00000001 , 0x00000cb8 
+ 00000445  0x0000025e beq  0x00000001 , 0x000001c1 
+ 00000446  0x0000025f beq  0x00000084 , 0x000001c4 
+ 00000447  0x00000260 beq  0x000000a7 , 0x0000b039 
+ 00000448  0x00000261 branch  0x0000302a 
+ 00000449  0x00000263 fetch  0x00000001 , 0x000048a7 
+ 00000450  0x00000264 store  0x00000001 , 0x00000cf7 
+ 00000451  0x00000265 branch  0x0000303f 
+ 00000452  0x00000267 call  0x000000b8 
+ 00000453  0x00000268 branch  0x000001c1 
+ 00000454  0x0000026b fetch  0x00000001 , 0x00000cb8 
+ 00000455  0x0000026c beq  0x00000081 , 0x000001c9 
+ 00000456  0x0000026d branch  0x0000302a 
+ 00000457  0x0000026f call  0x00000226 
+ 00000458  0x00000270 branch  0x0000303f 
+ 00000459  0x00000273 fetch  0x00000001 , 0x000048a4 
+ 00000460  0x00000274 beq  0x00000000 , 0x000001cf 
+ 00000461  0x00000275 beq  0x00000001 , 0x00003039 
+ 00000462  0x00000276 rtn 
+ 00000463  0x00000278 jam  0x000000a0 , 0x00000cf7 
+ 00000464  0x00000279 branch  0x0000303f 
+ 00000465  0x0000027c jam  0x00000007 , 0x00000cfa 
+ 00000466  0x0000027d branch  0x00003049 
+ 00000467  0x00000280 fetch  0x00000001 , 0x00000cb8 
+ 00000468  0x00000281 beq  0x000000ff , 0x0000659a 
+ 00000469  0x00000283 jam  0x00000002 , 0x000048b8 
+ 00000470  0x00000284 fetch  0x00000001 , 0x00004900 
+ 00000471  0x00000285 beq  0x00000003 , 0x000001dd 
+ 00000472  0x00000286 call  0x0000018e 
+ 00000473  0x00000287 fetch  0x00000001 , 0x00004900 
+ 00000474  0x00000288 beq  0x00000003 , 0x000001dd 
+ 00000475  0x0000028a jam  0x00000000 , 0x00000cf7 
+ 00000476  0x0000028b branch  0x0000303f 
+ 00000477  0x0000028e jam  0x00000001 , 0x00000cf7 
+ 00000478  0x0000028f branch  0x0000303f 
+ 00000479  0x00000292 call  0x00000204 
+ 00000480  0x00000294 call  0x0000020a 
+ 00000481  0x00000295 call  0x00000235 
+ 00000482  0x00000296 call  0x000001e7 
+ 00000483  0x00000297 call  0x000001eb 
+ 00000484  0x00000298 call  0x00000268 
+ 00000485  0x00000299 call  0x000001a7 
+ 00000486  0x0000029a branch  0x000001e0 
+ 00000487  0x0000029d fetch  0x00000001 , 0x000048a4 
+ 00000488  0x0000029e rtnne  0x00000000 
+ 00000489  0x0000029f call  0x000000bd 
+ 00000490  0x000002a0 branch  0x00000256 
+ 00000491  0x000002a3 fetch  0x00000001 , 0x000048a4 
+ 00000492  0x000002a4 rtnne  0x00000001 
+ 00000493  0x000002a5 call  0x00000110 
+ 00000494  0x000002a6 call  0x0000011c 
+ 00000495  0x000002a7 fetch  0x00000001 , 0x000048a7 
+ 00000496  0x000002a8 rtn  0x00000034 
+ 00000497  0x000002a9 jam  0x00000000 , 0x000048b7 
+ 00000498  0x000002aa call  0x000000b7 
+ 00000499  0x000002ab call  0x00000254 
+ 00000500  0x000002ac branch  0x00000207 
+ 00000501  0x000002af call  0x00007fe9 
+ 00000502  0x000002b0 fetcht  0x00000004 , 0x00004857 
+ 00000503  0x000002b1 copy  0x00000022 , 0x0000003f 
+ 00000504  0x000002b2 isub  0x00000002 , 0x0000003e 
+ 00000505  0x000002b3 ncall  0x00002d18 , 0x00000002 
+ 00000506  0x000002b4 copy  0x0000003f , 0x00000012 
+ 00000507  0x000002b5 fetch  0x00000004 , 0x00004857 
+ 00000508  0x000002b6 fetcht  0x00000001 , 0x0000485b 
+ 00000509  0x000002b7 iadd  0x00000002 , 0x00000002 
+ 00000510  0x000002b8 copy  0x00000012 , 0x0000003f 
+ 00000511  0x000002b9 isub  0x00000002 , 0x0000003e 
+ 00000512  0x000002ba nrtn  0x00000002 
+ 00000513  0x000002bb set0  0x0000001c , 0x0000003f 
+ 00000514  0x000002bc store  0x00000004 , 0x00004857 
+ 00000515  0x000002bd branch  0x00007fe7 
+ 00000516  0x000002c0 jam  0x00000001 , 0x000048b7 
+ 00000517  0x000002c1 jam  0x00000000 , 0x000048bc 
+ 00000518  0x000002c2 jam  0x000000ff , 0x0000485b 
+ 00000519  0x000002c4 setarg  0x00000000 
+ 00000520  0x000002c5 store  0x00000004 , 0x00004857 
+ 00000521  0x000002c6 rtn 
+ 00000522  0x000002c9 fetch  0x00000001 , 0x000048b7 
+ 00000523  0x000002ca rtn  0x00000034 
+ 00000524  0x000002cb call  0x000001f5 
+ 00000525  0x000002cc nrtn  0x00000028 
+ 00000526  0x000002ce call  0x0000021f 
+ 00000527  0x000002cf call  0x00000217 
+ 00000528  0x000002d1 fetch  0x00000001 , 0x000048bc 
+ 00000529  0x000002d2 increase  0x00000001 , 0x0000003f 
+ 00000530  0x000002d3 and_into  0x00000001 , 0x0000003f 
+ 00000531  0x000002d4 store  0x00000001 , 0x000048bc 
+ 00000532  0x000002d5 beq  0x00000000 , 0x0000021c 
+ 00000533  0x000002d6 beq  0x00000001 , 0x00000224 
+ 00000534  0x000002d7 rtn 
+ 00000535  0x000002db fetch  0x00000001 , 0x0000497c 
+ 00000536  0x000002dc rtn  0x00000034 
+ 00000537  0x000002dd increase  0xffffffff , 0x0000003f 
+ 00000538  0x000002de store  0x00000001 , 0x0000497c 
+ 00000539  0x000002df rtn 
+ 00000540  0x000002e2 fetch  0x00000001 , 0x0000497c 
+ 00000541  0x000002e3 nbranch  0x00000226 , 0x00000034 
+ 00000542  0x000002e4 branch  0x000000b7 
+ 00000543  0x000002e7 fetch  0x00000001 , 0x0000497b 
+ 00000544  0x000002e8 rtn  0x00000034 
+ 00000545  0x000002e9 increase  0xffffffff , 0x0000003f 
+ 00000546  0x000002ea store  0x00000001 , 0x0000497b 
+ 00000547  0x000002eb rtn 
+ 00000548  0x000002ee fetch  0x00000001 , 0x0000497b 
+ 00000549  0x000002ef nbranch  0x000000b7 , 0x00000034 
+ 00000550  0x000002f1 jam  0x00000001 , 0x000048a4 
+ 00000551  0x000002f2 jam  0x00000000 , 0x000048a3 
+ 00000552  0x000002f3 rtn 
+ 00000553  0x000002f7 fetch  0x00000001 , 0x00004981 
+ 00000554  0x000002f8 call  0x00000252 , 0x00000034 
+ 00000555  0x000002f9 fetch  0x00000001 , 0x0000497e 
+ 00000556  0x000002fa rtnbit1  0x00000000 
+ 00000557  0x000002fb set1  0x00000000 , 0x0000003f 
+ 00000558  0x000002fc store  0x00000001 , 0x0000497e 
+ 00000559  0x000002fd jam  0x00000001 , 0x0000497d 
+ 00000560  0x000002fe jam  0x00000000 , 0x00004982 
+ 00000561  0x000002ff setarg  0x00000000 
+ 00000562  0x00000300 store  0x00000002 , 0x0000497f 
+ 00000563  0x00000301 jam  0x00000060 , 0x0000485b 
+ 00000564  0x00000302 branch  0x00000207 
+ 00000565  0x00000305 fetch  0x00000001 , 0x000048a4 
+ 00000566  0x00000306 rtneq  0x00000000 
+ 00000567  0x00000307 fetch  0x00000001 , 0x00004981 
+ 00000568  0x00000308 nrtn  0x00000034 
+ 00000569  0x00000309 fetch  0x00000001 , 0x0000497d 
+ 00000570  0x0000030a rtn  0x00000034 
+ 00000571  0x0000030b call  0x000001f5 
+ 00000572  0x0000030c nrtn  0x00000028 
+ 00000573  0x0000030e fetch  0x00000002 , 0x0000497f 
+ 00000574  0x0000030f increase  0x00000001 , 0x0000003f 
+ 00000575  0x00000310 store  0x00000002 , 0x0000497f 
+ 00000576  0x00000311 arg  0x000007d0 , 0x00000002 
+ 00000577  0x00000312 isub  0x00000002 , 0x0000003e 
+ 00000578  0x00000313 branch  0x0000024e , 0x00000002 
+ 00000579  0x00000315 call  0x00000217 
+ 00000580  0x00000317 fetch  0x00000001 , 0x00004982 
+ 00000581  0x00000318 increase  0x00000001 , 0x0000003f 
+ 00000582  0x00000319 and_into  0x00000001 , 0x0000003f 
+ 00000583  0x0000031a store  0x00000001 , 0x00004982 
+ 00000584  0x0000031b beq  0x00000000 , 0x0000024b 
+ 00000585  0x0000031c beq  0x00000001 , 0x00000226 
+ 00000586  0x0000031d rtn 
+ 00000587  0x00000320 fetch  0x00000001 , 0x0000497c 
+ 00000588  0x00000321 nbranch  0x00000226 , 0x00000034 
+ 00000589  0x00000322 branch  0x00000261 
+ 00000590  0x00000325 jam  0x00000001 , 0x00004981 
+ 00000591  0x00000326 branch  0x00000261 
+ 00000592  0x00000329 jam  0x00000000 , 0x0000497d 
+ 00000593  0x0000032a rtn 
+ 00000594  0x0000032c jam  0x00000001 , 0x0000497d 
+ 00000595  0x0000032d rtn 
+ 00000596  0x00000330 jam  0x00000001 , 0x000048bb 
+ 00000597  0x00000331 branch  0x00003095 
+ 00000598  0x00000334 fetch  0x00000001 , 0x000048b8 
+ 00000599  0x00000335 rtneq  0x00000002 
+ 00000600  0x00000336 fetch  0x00000001 , 0x000048bb 
+ 00000601  0x00000337 rtn  0x00000034 
+ 00000602  0x00000338 arg  0x00000008 , 0x00000007 
+ 00000603  0x00000339 call  0x00007f16 
+ 00000604  0x0000033a nrtn  0x00000034 
+ 00000605  0x0000033b jam  0x00000000 , 0x000048bb 
+ 00000606  0x0000033d jam  0x00000000 , 0x0000497b 
+ 00000607  0x0000033e jam  0x00000000 , 0x0000497c 
+ 00000608  0x00000340 call  0x00000229 
+ 00000609  0x00000344 jam  0x00000007 , 0x000048a4 
+ 00000610  0x00000345 jam  0x00000000 , 0x000048a3 
+ 00000611  0x00000346 branch  0x00000128 
+ 00000612  0x00000349 call  0x00000128 
+ 00000613  0x0000034a call  0x00000480 
+ 00000614  0x0000034b nrtn  0x0000002f 
+ 00000615  0x0000034c branch  0x00000305 
+ 00000616  0x00000350 fetch  0x00000001 , 0x000048a4 
+ 00000617  0x00000351 rtnne  0x00000007 
+ 00000618  0x00000352 call  0x0000028f 
+ 00000619  0x00000353 call  0x000002a3 
+ 00000620  0x00000354 call  0x00000264 
+ 00000621  0x00000355 nbranch  0x00000128 , 0x0000002f 
+ 00000622  0x00000357 call  0x0000029f 
+ 00000623  0x00000358 call  0x00000349 , 0x00000005 
+ 00000624  0x0000035b fetch  0x00000001 , 0x000048b0 
+ 00000625  0x0000035c call  0x00000250 , 0x00000034 
+ 00000626  0x0000035e jam  0x00000000 , 0x000048a4 
+ 00000627  0x0000035f fetch  0x00000001 , 0x000048a3 
+ 00000628  0x00000360 set1  0x00000000 , 0x0000003f 
+ 00000629  0x00000361 store  0x00000001 , 0x000048a3 
+ 00000630  0x00000363 fetch  0x00000001 , 0x000048b8 
+ 00000631  0x00000364 sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00000632  0x00000365 ncall  0x00000286 , 0x00000005 
+ 00000633  0x00000367 call  0x00000128 
+ 00000634  0x00000368 call  0x00000254 
+ 00000635  0x00000369 call  0x0000029f 
+ 00000636  0x0000036a branch  0x00000288 , 0x00000005 
+ 00000637  0x0000036b fetch  0x00000004 , 0x0000485e 
+ 00000638  0x0000036c fetcht  0x00000004 , 0x000048d6 
+ 00000639  0x0000036d isub  0x00000002 , 0x0000003e 
+ 00000640  0x0000036e branch  0x0000028b , 0x00000005 
+ 00000641  0x0000036f fetch  0x00000004 , 0x0000485e 
+ 00000642  0x00000370 fetcht  0x00000004 , 0x000048da 
+ 00000643  0x00000371 isub  0x00000002 , 0x0000003e 
+ 00000644  0x00000372 branch  0x0000028d , 0x00000005 
+ 00000645  0x00000373 rtn 
+ 00000646  0x00000376 jam  0x00000000 , 0x000048b8 
+ 00000647  0x00000377 rtn 
+ 00000648  0x0000037a fetch  0x00000001 , 0x000048df 
+ 00000649  0x0000037c store  0x00000001 , 0x00004841 
+ 00000650  0x0000037d rtn 
+ 00000651  0x0000037f fetch  0x00000001 , 0x000048e2 
+ 00000652  0x00000380 branch  0x00000289 
+ 00000653  0x00000382 fetch  0x00000001 , 0x000048e5 
+ 00000654  0x00000383 branch  0x00000289 
+ 00000655  0x00000386 fetch  0x00000001 , 0x000048a3 
+ 00000656  0x00000387 rtnbit1  0x00000007 
+ 00000657  0x00000388 set1  0x00000007 , 0x0000003f 
+ 00000658  0x00000389 store  0x00000001 , 0x000048a3 
+ 00000659  0x0000038a jam  0x00000000 , 0x000048bc 
+ 00000660  0x0000038b jam  0x00000001 , 0x000048b8 
+ 00000661  0x0000038c setarg  0x00000000 
+ 00000662  0x0000038d store  0x00000003 , 0x000048f5 
+ 00000663  0x0000038e store  0x00000007 , 0x000048e0 
+ 00000664  0x0000038f call  0x0000029f 
+ 00000665  0x00000390 nrtn  0x00000005 
+ 00000666  0x00000391 fetch  0x00000001 , 0x00004841 
+ 00000667  0x00000392 store  0x00000001 , 0x000048df 
+ 00000668  0x00000393 fetch  0x00000001 , 0x00004840 
+ 00000669  0x00000394 store  0x00000001 , 0x000048de 
+ 00000670  0x00000395 rtn 
+ 00000671  0x00000398 fetch  0x00000004 , 0x0000485e 
+ 00000672  0x00000399 fetcht  0x00000004 , 0x0000489f 
+ 00000673  0x0000039a isub  0x00000002 , 0x0000003e 
+ 00000674  0x0000039b rtn 
+ 00000675  0x0000039e fetch  0x00000001 , 0x000048bc 
+ 00000676  0x0000039f increase  0x00000001 , 0x0000003f 
+ 00000677  0x000003a0 and_into  0x00000003 , 0x0000003f 
+ 00000678  0x000003a1 store  0x00000001 , 0x000048bc 
+ 00000679  0x000003a3 beq  0x00000000 , 0x000002c6 
+ 00000680  0x000003a4 beq  0x00000001 , 0x000002e0 
+ 00000681  0x000003a5 beq  0x00000002 , 0x000002ac 
+ 00000682  0x000003a6 beq  0x00000003 , 0x000002e0 
+ 00000683  0x000003a7 rtn 
+ 00000684  0x000003aa call  0x0000014b 
+ 00000685  0x000003ab fetch  0x00000004 , 0x000048da 
+ 00000686  0x000003ac branch  0x000002a3 , 0x00000034 
+ 00000687  0x000003ad call  0x00000446 
+ 00000688  0x000003ae fetch  0x00000001 , 0x000048e6 
+ 00000689  0x000003af call  0x000002c1 , 0x00000034 
+ 00000690  0x000003b0 fetch  0x00000001 , 0x000048e4 
+ 00000691  0x000003b1 store  0x00000001 , 0x00004840 
+ 00000692  0x000003b2 fetcht  0x00000001 , 0x000048f7 
+ 00000693  0x000003b3 arg  0x00000f9e , 0x00000011 
+ 00000694  0x000003b4 call  0x0000043a 
+ 00000695  0x000003b5 storet  0x00000001 , 0x000048f7 
+ 00000696  0x000003b6 call  0x00000441 
+ 00000697  0x000003b7 storet  0x00000001 , 0x000048f4 
+ 00000698  0x000003b8 sub  0x00000002 , 0x00000050 , 0x0000003e 
+ 00000699  0x000003b9 nrtn  0x00000002 
+ 00000700  0x000003ba fetcht  0x00000001 , 0x000048e5 
+ 00000701  0x000003bb call  0x0000046a 
+ 00000702  0x000003bc storet  0x00000001 , 0x000048e5 
+ 00000703  0x000003bd store  0x00000001 , 0x000048e4 
+ 00000704  0x000003be rtn 
+ 00000705  0x000003c1 jam  0x00000001 , 0x000048e6 
+ 00000706  0x000003c2 arg  0x00000000 , 0x00000002 
+ 00000707  0x000003c3 call  0x0000046e 
+ 00000708  0x000003c4 store  0x00000001 , 0x000048e4 
+ 00000709  0x000003c5 rtn 
+ 00000710  0x000003c8 call  0x00000151 
+ 00000711  0x000003c9 fetch  0x00000004 , 0x000048d6 
+ 00000712  0x000003ca branch  0x000002a3 , 0x00000034 
+ 00000713  0x000003cb call  0x00000446 
+ 00000714  0x000003cc fetch  0x00000001 , 0x000048e3 
+ 00000715  0x000003cd call  0x000002db , 0x00000034 
+ 00000716  0x000003ce fetch  0x00000001 , 0x000048e1 
+ 00000717  0x000003cf store  0x00000001 , 0x00004840 
+ 00000718  0x000003d0 fetcht  0x00000001 , 0x000048f6 
+ 00000719  0x000003d1 arg  0x0000109e , 0x00000011 
+ 00000720  0x000003d2 call  0x0000043a 
+ 00000721  0x000003d3 storet  0x00000001 , 0x000048f6 
+ 00000722  0x000003d4 call  0x00000441 
+ 00000723  0x000003d5 storet  0x00000001 , 0x000048f3 
+ 00000724  0x000003d6 sub  0x00000002 , 0x00000050 , 0x0000003e 
+ 00000725  0x000003d7 nrtn  0x00000002 
+ 00000726  0x000003d8 fetcht  0x00000001 , 0x000048e2 
+ 00000727  0x000003d9 call  0x0000046a 
+ 00000728  0x000003da storet  0x00000001 , 0x000048e2 
+ 00000729  0x000003db store  0x00000001 , 0x000048e1 
+ 00000730  0x000003dc rtn 
+ 00000731  0x000003df jam  0x00000001 , 0x000048e3 
+ 00000732  0x000003e0 arg  0x00000000 , 0x00000002 
+ 00000733  0x000003e1 call  0x0000046e 
+ 00000734  0x000003e2 store  0x00000001 , 0x000048e1 
+ 00000735  0x000003e3 rtn 
+ 00000736  0x000003e6 call  0x0000014b 
+ 00000737  0x000003e7 fetch  0x00000004 , 0x0000489f 
+ 00000738  0x000003e8 call  0x00000446 
+ 00000739  0x000003e9 fetch  0x00000001 , 0x000048e0 
+ 00000740  0x000003ea call  0x000002f4 , 0x00000034 
+ 00000741  0x000003eb fetch  0x00000001 , 0x000048de 
+ 00000742  0x000003ec store  0x00000001 , 0x00004840 
+ 00000743  0x000003ed fetcht  0x00000001 , 0x000048f5 
+ 00000744  0x000003ee arg  0x00000e9e , 0x00000011 
+ 00000745  0x000003ef call  0x0000043a 
+ 00000746  0x000003f0 storet  0x00000001 , 0x000048f5 
+ 00000747  0x000003f1 call  0x00000441 
+ 00000748  0x000003f2 storet  0x00000001 , 0x000048f2 
+ 00000749  0x000003f3 sub  0x00000002 , 0x00000050 , 0x0000003e 
+ 00000750  0x000003f4 nrtn  0x00000002 
+ 00000751  0x000003f5 fetcht  0x00000001 , 0x000048df 
+ 00000752  0x000003f6 call  0x0000046a 
+ 00000753  0x000003f7 storet  0x00000001 , 0x000048df 
+ 00000754  0x000003f8 store  0x00000001 , 0x000048de 
+ 00000755  0x000003f9 rtn 
+ 00000756  0x000003fc jam  0x00000001 , 0x000048e0 
+ 00000757  0x000003fd fetch  0x00000001 , 0x000048de 
+ 00000758  0x000003fe store  0x00000001 , 0x00004840 
+ 00000759  0x000003ff rtn 
+ 00000760  0x00000405 fetch  0x00000001 , 0x000047b1 
+ 00000761  0x00000406 rshift3  0x0000003f , 0x0000003f 
+ 00000762  0x00000407 store  0x00000001 , 0x00004834 
+ 00000763  0x00000409 increase  0x00000001 , 0x0000003f 
+ 00000764  0x0000040a arg  0x000047b1 , 0x00000006 
+ 00000765  0x0000040b iadd  0x00000006 , 0x00000006 
+ 00000766  0x0000040c ifetch  0x00000003 , 0x00000006 
+ 00000767  0x0000040d store  0x00000003 , 0x00004873 
+ 00000768  0x0000040f fetch  0x00000001 , 0x000047b1 
+ 00000769  0x00000410 rshift  0x0000003f , 0x0000003f 
+ 00000770  0x00000411 and  0x0000003f , 0x00000003 , 0x0000003f 
+ 00000771  0x00000412 store  0x00000001 , 0x00004879 
+ 00000772  0x00000413 rtn 
+ 00000773  0x00000417 fetch  0x00000001 , 0x000047b0 
+ 00000774  0x00000418 store  0x00000001 , 0x00004837 
+ 00000775  0x0000041a call  0x000002f8 
+ 00000776  0x0000041c fetch  0x00000001 , 0x000047b1 
+ 00000777  0x0000041d isolate1  0x00000000 , 0x0000003f 
+ 00000778  0x0000041e branch  0x0000030e , 0x00000001 
+ 00000779  0x00000420 call  0x0000030f 
+ 00000780  0x00000421 call  0x00000454 
+ 00000781  0x00000422 call  0x000004ca 
+ 00000782  0x00000424 branch  0x000004c2 
+ 00000783  0x00000427 jam  0x00000000 , 0x00004836 
+ 00000784  0x00000428 fetch  0x00000001 , 0x00004837 
+ 00000785  0x00000429 beq  0x00000001 , 0x00000313 
+ 00000786  0x0000042a beq  0x00000002 , 0x00000318 
+ 00000787  0x0000042c fetch  0x00000001 , 0x0000497a 
+ 00000788  0x0000042d bbit1  0x00000000 , 0x00000320 
+ 00000789  0x0000042e branch  0x0000031a 
+ 00000790  0x00000431 jam  0x00000000 , 0x0000497a 
+ 00000791  0x00000432 rtn 
+ 00000792  0x00000436 fetch  0x00000001 , 0x0000497a 
+ 00000793  0x00000437 bbit1  0x00000001 , 0x00000324 
+ 00000794  0x00000439 fetch  0x00000001 , 0x000048b8 
+ 00000795  0x0000043a rtn  0x00000034 
+ 00000796  0x0000043b beq  0x00000001 , 0x0000032b 
+ 00000797  0x0000043c beq  0x00000002 , 0x00000333 
+ 00000798  0x0000043d beq  0x00000003 , 0x0000033d 
+ 00000799  0x0000043e rtn 
+ 00000800  0x00000441 fetch  0x00000001 , 0x0000497a 
+ 00000801  0x00000442 set0  0x00000000 , 0x0000003f 
+ 00000802  0x00000443 store  0x00000001 , 0x0000497a 
+ 00000803  0x00000444 branch  0x00000327 
+ 00000804  0x00000447 fetch  0x00000001 , 0x0000497a 
+ 00000805  0x00000448 set0  0x00000001 , 0x0000003f 
+ 00000806  0x00000449 store  0x00000001 , 0x0000497a 
+ 00000807  0x0000044b jam  0x00000001 , 0x00004836 
+ 00000808  0x0000044c setarg  0x000000ff 
+ 00000809  0x0000044d store  0x00000001 , 0x000047d2 
+ 00000810  0x0000044e rtn 
+ 00000811  0x00000451 jam  0x00000001 , 0x000048b8 
+ 00000812  0x00000452 call  0x0000012b 
+ 00000813  0x00000453 nrtn  0x0000002f 
+ 00000814  0x00000454 jam  0x00000008 , 0x00004836 
+ 00000815  0x00000455 arg  0x00000008 , 0x00000039 
+ 00000816  0x00000456 arg  0x000048a8 , 0x00000006 
+ 00000817  0x00000457 arg  0x000047d2 , 0x00000005 
+ 00000818  0x00000458 branch  0x00007f01 
+ 00000819  0x0000045b call  0x000001a1 
+ 00000820  0x0000045c nrtn  0x00000028 
+ 00000821  0x0000045d jam  0x0000001f , 0x00004836 
+ 00000822  0x0000045e arg  0x0000001f , 0x00000039 
+ 00000823  0x0000045f copy  0x0000003f , 0x00000006 
+ 00000824  0x00000460 arg  0x000047d2 , 0x00000005 
+ 00000825  0x00000461 call  0x00007f01 
+ 00000826  0x00000462 fetch  0x00000002 , 0x000047d5 
+ 00000827  0x00000463 store  0x00000002 , 0x000048eb 
+ 00000828  0x00000464 rtn 
+ 00000829  0x00000467 fetch  0x00000001 , 0x000047b2 
+ 00000830  0x00000468 beq  0x00000001 , 0x0000032b 
+ 00000831  0x00000469 beq  0x000000ff , 0x0000032b 
+ 00000832  0x0000046c jam  0x00000000 , 0x00000d43 
+ 00000833  0x0000046d jam  0x00000001 , 0x00004836 
+ 00000834  0x0000046e arg  0x00000001 , 0x00000039 
+ 00000835  0x0000046f arg  0x00004978 , 0x00000006 
+ 00000836  0x00000470 arg  0x000047d2 , 0x00000005 
+ 00000837  0x00000471 branch  0x00007f01 
+ 00000838  0x00000475 call  0x00000264 
+ 00000839  0x00000476 nbranch  0x00000128 , 0x0000002f 
+ 00000840  0x00000477 branch  0x00000349 
+ 00000841  0x0000047a call  0x0000035a 
+ 00000842  0x0000047b nbranch  0x00000128 , 0x00000028 
+ 00000843  0x0000047c fetch  0x00000001 , 0x00004834 
+ 00000844  0x0000047d branch  0x00000128 , 0x00000034 
+ 00000845  0x0000047e increase  0x00000002 , 0x0000003f 
+ 00000846  0x0000047f iforce  0x00000039 
+ 00000847  0x00000480 arg  0x000047b0 , 0x00000006 
+ 00000848  0x00000481 arg  0x0000487d , 0x00000005 
+ 00000849  0x00000482 call  0x00007f01 
+ 00000850  0x00000483 jam  0x00000000 , 0x000048b7 
+ 00000851  0x00000484 fetch  0x00000001 , 0x000048ba 
+ 00000852  0x00000485 call  0x00000254 , 0x00000034 
+ 00000853  0x00000486 fetch  0x00000001 , 0x0000487f 
+ 00000854  0x00000487 beq  0x00000001 , 0x00000368 
+ 00000855  0x00000488 beq  0x00000002 , 0x00000388 
+ 00000856  0x00000489 beq  0x000000ff , 0x000003dd 
+ 00000857  0x0000048a branch  0x00000128 
+ 00000858  0x0000048d call  0x00007fe9 
+ 00000859  0x0000048e fetch  0x00000001 , 0x00004879 
+ 00000860  0x0000048f fetcht  0x00000001 , 0x0000487a 
+ 00000861  0x00000490 isub  0x00000002 , 0x0000003e 
+ 00000862  0x00000491 ncall  0x00007fe7 , 0x00000005 
+ 00000863  0x00000492 fetch  0x00000001 , 0x00004879 
+ 00000864  0x00000493 store  0x00000001 , 0x0000487a 
+ 00000865  0x00000494 fetch  0x00000003 , 0x00004873 
+ 00000866  0x00000495 fetcht  0x00000003 , 0x00004876 
+ 00000867  0x00000496 isub  0x00000002 , 0x0000003e 
+ 00000868  0x00000497 ncall  0x00007fe7 , 0x00000005 
+ 00000869  0x00000498 fetch  0x00000003 , 0x00004873 
+ 00000870  0x00000499 store  0x00000003 , 0x00004876 
+ 00000871  0x0000049a rtn 
+ 00000872  0x0000049d call  0x0000013a 
+ 00000873  0x0000049e call  0x000000e4 
+ 00000874  0x0000049f fetch  0x00000001 , 0x000048b0 
+ 00000875  0x000004a0 fetcht  0x00000001 , 0x0000487d 
+ 00000876  0x000004a1 isolate1  0x00000003 , 0x00000002 
+ 00000877  0x000004a2 setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00000878  0x000004a3 store  0x00000001 , 0x000048b0 
+ 00000879  0x000004a4 beq  0x00000001 , 0x000003e7 
+ 00000880  0x000004a5 fetch  0x00000001 , 0x000048b9 
+ 00000881  0x000004a6 fetcht  0x00000001 , 0x0000487d 
+ 00000882  0x000004a7 isolate1  0x00000004 , 0x00000002 
+ 00000883  0x000004a8 setflag  0x00000001 , 0x00000000 , 0x0000003f 
+ 00000884  0x000004a9 store  0x00000001 , 0x000048b9 
+ 00000885  0x000004ab fetch  0x00000001 , 0x00004880 
+ 00000886  0x000004ac beq  0x000000cf , 0x000003eb 
+ 00000887  0x000004ae setarg  0x00000001 
+ 00000888  0x000004af store  0x00000001 , 0x00000d54 
+ 00000889  0x000004b0 fetch  0x00000007 , 0x00004880 
+ 00000890  0x000004b1 istore  0x00000007 , 0x00000005 
+ 00000891  0x000004b2 fetch  0x00000001 , 0x00004880 
+ 00000892  0x000004b3 ncall  0x00000380 , 0x00000034 
+ 00000893  0x000004b4 fetch  0x00000001 , 0x00004880 
+ 00000894  0x000004b5 call  0x00000384 , 0x00000034 
+ 00000895  0x000004b6 branch  0x000031b8 
+ 00000896  0x000004b9 jam  0x00000001 , 0x000048d5 
+ 00000897  0x000004ba setarg  0x00000180 
+ 00000898  0x000004bb arg  0x0000000b , 0x00000007 
+ 00000899  0x000004bc branch  0x00007f08 
+ 00000900  0x000004be jam  0x00000000 , 0x000048d5 
+ 00000901  0x000004bf setarg  0x00000000 
+ 00000902  0x000004c0 arg  0x0000000b , 0x00000007 
+ 00000903  0x000004c1 branch  0x00007f08 
+ 00000904  0x000004c4 call  0x00000140 
+ 00000905  0x000004c5 fetcht  0x00000001 , 0x0000487d 
+ 00000906  0x000004c6 isolate1  0x00000003 , 0x00000002 
+ 00000907  0x000004c7 branch  0x000003e9 , 0x00000001 
+ 00000908  0x000004c8 fetch  0x00000001 , 0x00004880 
+ 00000909  0x000004c9 beq  0x00000000 , 0x00000391 
+ 00000910  0x000004ca beq  0x00000002 , 0x000003c6 
+ 00000911  0x000004cb beq  0x00000003 , 0x000003ad 
+ 00000912  0x000004cc branch  0x00000128 
+ 00000913  0x000004cf fetch  0x00000001 , 0x00004882 
+ 00000914  0x000004d0 store  0x00000001 , 0x000048b8 
+ 00000915  0x000004d1 jam  0x00000000 , 0x00004882 
+ 00000916  0x000004d2 arg  0x00000d64 , 0x00000005 
+ 00000917  0x000004d3 call  0x000003a2 
+ 00000918  0x000004d4 fetch  0x00000008 , 0x00000d64 
+ 00000919  0x000004d5 ncall  0x000003a5 , 0x00000034 
+ 00000920  0x000004d6 fetch  0x00000008 , 0x00000d64 
+ 00000921  0x000004d7 call  0x000003a9 , 0x00000034 
+ 00000922  0x000004d8 fetch  0x00000008 , 0x00000d64 
+ 00000923  0x000004d9 store  0x00000008 , 0x000048bd 
+ 00000924  0x000004da fetcht  0x00000008 , 0x000048c5 
+ 00000925  0x000004db isub  0x00000002 , 0x0000003e 
+ 00000926  0x000004dc ncall  0x000031ed , 0x00000005 
+ 00000927  0x000004dd fetch  0x00000008 , 0x000048bd 
+ 00000928  0x000004de store  0x00000008 , 0x000048c5 
+ 00000929  0x000004df branch  0x00000128 
+ 00000930  0x000004e3 arg  0x00004881 , 0x00000006 
+ 00000931  0x000004e4 arg  0x00000008 , 0x00000039 
+ 00000932  0x000004e5 branch  0x00007f01 
+ 00000933  0x000004e8 jam  0x00000001 , 0x000048d3 
+ 00000934  0x000004e9 setarg  0x00000180 
+ 00000935  0x000004ea arg  0x0000000e , 0x00000007 
+ 00000936  0x000004eb branch  0x00007f08 
+ 00000937  0x000004ee jam  0x00000000 , 0x000048d3 
+ 00000938  0x000004ef setarg  0x00000000 
+ 00000939  0x000004f0 arg  0x0000000e , 0x00000007 
+ 00000940  0x000004f1 branch  0x00007f08 
+ 00000941  0x000004f4 arg  0x00000d74 , 0x00000005 
+ 00000942  0x000004f5 call  0x000003bb 
+ 00000943  0x000004f6 fetch  0x00000002 , 0x00000d75 
+ 00000944  0x000004f7 ncall  0x000003be , 0x00000034 
+ 00000945  0x000004f8 fetch  0x00000002 , 0x00000d75 
+ 00000946  0x000004f9 call  0x000003c2 , 0x00000034 
+ 00000947  0x000004fa fetch  0x00000003 , 0x00000d74 
+ 00000948  0x000004fb store  0x00000003 , 0x000048cd 
+ 00000949  0x000004fc fetcht  0x00000003 , 0x000048d0 
+ 00000950  0x000004fd isub  0x00000002 , 0x0000003e 
+ 00000951  0x000004fe ncall  0x00003207 , 0x00000005 
+ 00000952  0x000004ff fetch  0x00000003 , 0x000048cd 
+ 00000953  0x00000500 store  0x00000003 , 0x000048d0 
+ 00000954  0x00000501 branch  0x00000128 
+ 00000955  0x00000504 arg  0x00004880 , 0x00000006 
+ 00000956  0x00000505 arg  0x00000003 , 0x00000039 
+ 00000957  0x00000506 branch  0x00007f01 
+ 00000958  0x0000050a jam  0x00000001 , 0x000048d4 
+ 00000959  0x0000050b setarg  0x00000180 
+ 00000960  0x0000050c arg  0x0000000c , 0x00000007 
+ 00000961  0x0000050d branch  0x00007f08 
+ 00000962  0x00000510 jam  0x00000000 , 0x000048d4 
+ 00000963  0x00000511 setarg  0x00000000 
+ 00000964  0x00000512 arg  0x0000000c , 0x00000007 
+ 00000965  0x00000513 branch  0x00007f08 
+ 00000966  0x00000516 arg  0x000013bc , 0x00000005 
+ 00000967  0x00000517 call  0x000003d0 
+ 00000968  0x00000518 fetch  0x00000002 , 0x000013bc 
+ 00000969  0x00000519 store  0x00000002 , 0x000013cc 
+ 00000970  0x0000051a fetcht  0x00000002 , 0x000013cf 
+ 00000971  0x0000051b isub  0x00000002 , 0x0000003e 
+ 00000972  0x0000051c ncall  0x000003db , 0x00000005 
+ 00000973  0x0000051d fetch  0x00000002 , 0x000013cc 
+ 00000974  0x0000051e store  0x00000002 , 0x000013cf 
+ 00000975  0x0000051f branch  0x00000128 
+ 00000976  0x00000522 arg  0x00004880 , 0x00000006 
+ 00000977  0x00000523 arg  0x00000002 , 0x00000039 
+ 00000978  0x00000524 branch  0x00007f01 
+ 00000979  0x00000528 jam  0x00000001 , 0x000048d4 
+ 00000980  0x00000529 setarg  0x00000180 
+ 00000981  0x0000052a arg  0x0000000c , 0x00000007 
+ 00000982  0x0000052b branch  0x00007f08 
+ 00000983  0x0000052e jam  0x00000000 , 0x000048d4 
+ 00000984  0x0000052f setarg  0x00000000 
+ 00000985  0x00000530 arg  0x0000000c , 0x00000007 
+ 00000986  0x00000531 branch  0x00007f08 
+ 00000987  0x00000534 jam  0x00000022 , 0x00000d52 
+ 00000988  0x00000535 branch  0x000031b9 
+ 00000989  0x00000539 fetch  0x00000001 , 0x00004880 
+ 00000990  0x0000053a beq  0x00000001 , 0x000003e1 
+ 00000991  0x0000053b beq  0x00000002 , 0x000003e4 
+ 00000992  0x0000053c rtn 
+ 00000993  0x0000053e call  0x0000013a 
+ 00000994  0x0000053f fetch  0x00000004 , 0x00004881 
+ 00000995  0x00000540 branch  0x00000184 
+ 00000996  0x00000542 call  0x00000140 
+ 00000997  0x00000543 fetch  0x00000004 , 0x00004881 
+ 00000998  0x00000544 branch  0x00000187 
+ 00000999  0x00000546 fetch  0x00000004 , 0x00004887 
+ 00001000  0x00000547 branch  0x00000184 
+ 00001001  0x00000549 fetch  0x00000004 , 0x00004887 
+ 00001002  0x0000054a branch  0x00000187 
+ 00001003  0x0000054d fetch  0x00000002 , 0x00004882 
+ 00001004  0x0000054e fetcht  0x00000002 , 0x000048eb 
+ 00001005  0x0000054f isub  0x00000002 , 0x0000003e 
+ 00001006  0x00000550 branch  0x000003f0 , 0x00000005 
+ 00001007  0x00000551 rtn 
+ 00001008  0x00000554 fetch  0x00000001 , 0x00004881 
+ 00001009  0x00000555 beq  0x000000c2 , 0x000003fd 
+ 00001010  0x00000556 fetch  0x00000001 , 0x00004900 
+ 00001011  0x00000557 rtn  0x00000034 
+ 00001012  0x00000558 setarg  0x00004901 
+ 00001013  0x00000559 call  0x00000198 
+ 00001014  0x0000055a fetch  0x00000001 , 0x00004900 
+ 00001015  0x0000055b increase  0xffffffff , 0x0000003f 
+ 00001016  0x0000055c store  0x00000001 , 0x00004900 
+ 00001017  0x0000055d fetch  0x00000001 , 0x00004881 
+ 00001018  0x0000055e beq  0x000000c1 , 0x000001db 
+ 00001019  0x0000055f beq  0x000000c2 , 0x000003fd 
+ 00001020  0x00000560 rtn 
+ 00001021  0x00000563 setarg  0x00000000 
+ 00001022  0x00000564 store  0x00000002 , 0x000048eb 
+ 00001023  0x00000565 store  0x00000001 , 0x000048b8 
+ 00001024  0x00000566 call  0x00000189 
+ 00001025  0x00000567 fetch  0x00000001 , 0x00004884 
+ 00001026  0x00000568 beq  0x00000055 , 0x00000405 
+ 00001027  0x00000569 beq  0x000000aa , 0x00000407 
+ 00001028  0x0000056a rtn 
+ 00001029  0x0000056c jam  0x00000002 , 0x00000cf7 
+ 00001030  0x0000056d branch  0x0000303f 
+ 00001031  0x0000056f jam  0x00000003 , 0x00000cf7 
+ 00001032  0x00000570 branch  0x0000303f 
+ 00001033  0x00000574 storet  0x00000001 , 0x00000017 
+ 00001034  0x00000575 add  0x00000002 , 0x00000000 , 0x00000011 
+ 00001035  0x00000576 call  0x00002981 
+ 00001036  0x00000577 setarg  0x00000500 
+ 00001037  0x00000578 call  0x00002a8f 
+ 00001038  0x0000057a jam  0x00000001 , 0x00008906 
+ 00001039  0x0000057b jam  0x0000003c , 0x00008900 
+ 00001040  0x0000057c jam  0x000000e0 , 0x00008901 
+ 00001041  0x0000057d nop  0x0000000a 
+ 00001042  0x0000057e jam  0x00000001 , 0x00008902 
+ 00001043  0x0000057f jam  0x0000003d , 0x00008902 
+ 00001044  0x00000580 nop  0x0000000a 
+ 00001045  0x00000581 jam  0x000000b7 , 0x00008903 
+ 00001046  0x00000582 nop  0x0000000a 
+ 00001047  0x00000583 jam  0x0000007d , 0x00008902 
+ 00001048  0x00000584 fetch  0x00000001 , 0x000041de 
+ 00001049  0x00000589 beq  0x00000004 , 0x00000422 
+ 00001050  0x0000058b branch  0x0000041b 
+ 00001051  0x000005a4 jam  0x000000ba , 0x0000894b 
+ 00001052  0x000005a5 jam  0x000000d0 , 0x00008955 
+ 00001053  0x000005a6 jam  0x000000e0 , 0x00008956 
+ 00001054  0x000005a7 jam  0x00000088 , 0x00008957 
+ 00001055  0x000005a8 jam  0x0000003c , 0x00008958 
+ 00001056  0x000005a9 jam  0x00000010 , 0x00008959 
+ 00001057  0x000005aa branch  0x00002953 
+ 00001058  0x000005b8 jam  0x000000ba , 0x0000894b 
+ 00001059  0x000005b9 jam  0x000000d0 , 0x00008955 
+ 00001060  0x000005ba jam  0x000000c0 , 0x00008956 
+ 00001061  0x000005bb jam  0x00000088 , 0x00008957 
+ 00001062  0x000005bc jam  0x0000006c , 0x00008958 
+ 00001063  0x000005bd jam  0x00000010 , 0x00008959 
+ 00001064  0x000005be branch  0x0000295b 
+ 00001065  0x000005d5 clear_stack 
+ 00001066  0x000005d6 hfetch  0x00000001 , 0x00008043 
+ 00001067  0x000005d7 set1  0x00000003 , 0x0000003f 
+ 00001068  0x000005d8 hstore  0x00000001 , 0x00008043 
+ 00001069  0x000005d9 call  0x0000640d 
+ 00001070  0x000005da jam  0x00000086 , 0x0000895b 
+ 00001071  0x000005db jam  0x000000a0 , 0x0000895c 
+ 00001072  0x000005dc branch  0x00002004 
+ 00001073  0x000005df force  0x00000008 , 0x00000015 
+ 00001074  0x000005e0 branch  0x000028fa 
+ 00001075  0x000005e4 call  0x000029bb 
+ 00001076  0x000005e5 rtn  0x00000034 
+ 00001077  0x000005e6 fetcht  0x00000001 , 0x000048f0 
+ 00001078  0x000005e7 arg  0x00000d9e , 0x00000011 
+ 00001079  0x000005e8 call  0x0000043a 
+ 00001080  0x000005e9 storet  0x00000001 , 0x000048f0 
+ 00001081  0x000005ea rtn 
+ 00001082  0x000005ed copy  0x00000011 , 0x0000003f 
+ 00001083  0x000005ee iadd  0x00000002 , 0x00000005 
+ 00001084  0x000005ef fetch  0x00000001 , 0x00000018 
+ 00001085  0x000005f0 istore  0x00000001 , 0x00000005 
+ 00001086  0x000005f1 increase  0x00000001 , 0x00000002 
+ 00001087  0x000005f2 and_into  0x000000ff , 0x00000002 
+ 00001088  0x000005f3 rtn 
+ 00001089  0x000005f5 arg  0x00000000 , 0x00000002 
+ 00001090  0x000005f6 arg  0x00000100 , 0x00000039 
+ 00001091  0x000005f7 copy  0x00000011 , 0x00000006 
+ 00001092  0x000005f8 branch  0x00002e64 
+ 00001093  0x000005f9 rtn 
+ 00001094  0x000005fc store  0x00000004 , 0x0000485e 
+ 00001095  0x00000600 arg  0x00000000 , 0x00000011 
+ 00001096  0x00000601 arg  0x00000004 , 0x00000039 
+ 00001097  0x00000602 arg  0x0000485e , 0x00000006 
+ 00001098  0x00000604 ifetch  0x00000001 , 0x00000006 
+ 00001099  0x00000605 iadd  0x00000011 , 0x00000011 
+ 00001100  0x00000606 loop  0x0000044a 
+ 00001101  0x00000607 copy  0x00000011 , 0x0000003f 
+ 00001102  0x00000608 store  0x00000002 , 0x000048e7 
+ 00001103  0x00000609 fetch  0x00000001 , 0x000048e7 
+ 00001104  0x0000060a fetcht  0x00000001 , 0x000048e8 
+ 00001105  0x0000060b iadd  0x00000002 , 0x0000003f 
+ 00001106  0x0000060c store  0x00000001 , 0x000048e9 
+ 00001107  0x0000060d rtn 
+ 00001108  0x00000612 fetch  0x00000001 , 0x00004836 
+ 00001109  0x00000613 increase  0x00000002 , 0x0000003f 
+ 00001110  0x00000614 store  0x00000001 , 0x00004838 
+ 00001111  0x00000616 fetch  0x00000001 , 0x00004837 
+ 00001112  0x00000617 store  0x00000001 , 0x000047f2 
+ 00001113  0x00000619 fetch  0x00000001 , 0x00004836 
+ 00001114  0x0000061a lshift3  0x0000003f , 0x0000003f 
+ 00001115  0x0000061b fetcht  0x00000001 , 0x00004835 
+ 00001116  0x0000061c and  0x00000002 , 0x00000003 , 0x00000002 
+ 00001117  0x0000061d lshift  0x00000002 , 0x00000002 
+ 00001118  0x0000061e ior  0x00000002 , 0x0000003f 
+ 00001119  0x0000061f fetcht  0x00000001 , 0x00004872 
+ 00001120  0x00000620 iadd  0x00000002 , 0x0000003f 
+ 00001121  0x00000621 istore  0x00000001 , 0x00000005 
+ 00001122  0x00000623 fetch  0x00000001 , 0x00004836 
+ 00001123  0x00000624 iforce  0x00000039 
+ 00001124  0x00000625 arg  0x000047d2 , 0x00000006 
+ 00001125  0x00000626 branch  0x00007f01 
+ 00001126  0x00000629 fetcht  0x00000001 , 0x00004841 
+ 00001127  0x0000062a call  0x0000046a 
+ 00001128  0x0000062b storet  0x00000001 , 0x00004841 
+ 00001129  0x0000062c rtn 
+ 00001130  0x0000062f call  0x0000046e 
+ 00001131  0x00000630 increase  0x00000001 , 0x00000002 
+ 00001132  0x00000631 and_into  0x00000003 , 0x00000002 
+ 00001133  0x00000632 rtn 
+ 00001134  0x00000635 fetch  0x00000001 , 0x0000485e 
+ 00001135  0x00000636 and_into  0x00000003 , 0x0000003f 
+ 00001136  0x00000637 mul32  0x0000003f , 0x00000004 , 0x00000011 
+ 00001137  0x00000638 setarg  0x00004847 
+ 00001138  0x00000639 iadd  0x00000011 , 0x0000003f 
+ 00001139  0x0000063a iadd  0x00000002 , 0x00000006 
+ 00001140  0x0000063b ifetch  0x00000001 , 0x00000006 
+ 00001141  0x0000063c store  0x00000001 , 0x00004840 
+ 00001142  0x0000063d rtn 
+ 00001143  0x00000640 disable  0x00000009 
+ 00001144  0x00000641 disable  0x00000007 
+ 00001145  0x00000642 setarg  0x00555555 
+ 00001146  0x00000643 iforce  0x0000000f 
+ 00001147  0x00000644 fetch  0x00000001 , 0x00004840 
+ 00001148  0x00000645 reverse  0x0000003f , 0x00000002 
+ 00001149  0x00000646 set1  0x00000001 , 0x00000002 
+ 00001150  0x00000647 rshift  0x00000002 , 0x0000000e 
+ 00001151  0x00000648 rtn 
+ 00001152  0x0000064b call  0x000053c4 
+ 00001153  0x0000064c fetch  0x00000004 , 0x0000485e 
+ 00001154  0x0000064d iforce  0x00000009 
+ 00001155  0x0000064e call  0x00002918 
+ 00001156  0x0000064f fetcht  0x00000001 , 0x00004840 
+ 00001157  0x00000650 call  0x0000291f 
+ 00001158  0x00000651 setarg  0x00000500 
+ 00001159  0x00000652 call  0x00002a8f 
+ 00001160  0x00000653 call  0x00002924 
+ 00001161  0x00000655 call  0x00000477 
+ 00001162  0x00000656 disable  0x0000002f 
+ 00001163  0x00000657 enable  0x0000000d 
+ 00001164  0x00000658 enable  0x00000021 
+ 00001165  0x00000659 disable  0x00000020 
+ 00001166  0x0000065a enable  0x00000010 
+ 00001167  0x0000065b fetch  0x00000002 , 0x00004839 
+ 00001168  0x0000065c iforce  0x0000001b 
+ 00001169  0x0000065d correlate  0x0000003e , 0x00000003 
+ 00001170  0x0000065e nbranch  0x000004c5 , 0x00000018 
+ 00001171  0x0000065f disable  0x0000000d 
+ 00001172  0x00000660 enable  0x0000000b 
+ 00001173  0x00000661 enable  0x00000007 
+ 00001174  0x00000662 enable  0x00000009 
+ 00001175  0x00000663 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00001176  0x00000664 rshift3  0x0000000c , 0x0000003f 
+ 00001177  0x00000665 store  0x00000001 , 0x000048ea 
+ 00001178  0x00000666 fetcht  0x00000001 , 0x000048e9 
+ 00001179  0x00000667 isub  0x00000002 , 0x0000003e 
+ 00001180  0x00000668 nbranch  0x000004c2 , 0x00000005 
+ 00001181  0x00000669 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00001182  0x0000066a rshift3  0x0000000c , 0x0000003f 
+ 00001183  0x0000066b store  0x00000001 , 0x000047b0 
+ 00001184  0x0000066c fetch  0x00000001 , 0x0000487c 
+ 00001185  0x0000066d sub  0x0000003f , 0x00000002 , 0x0000003e 
+ 00001186  0x0000066e branch  0x000004a7 , 0x00000005 
+ 00001187  0x0000066f fetch  0x00000001 , 0x000047b0 
+ 00001188  0x00000670 fetcht  0x00000001 , 0x00004837 
+ 00001189  0x00000671 icompare  0x00000007 , 0x00000002 
+ 00001190  0x00000672 nbranch  0x000004c2 , 0x00000001 
+ 00001191  0x00000674 parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00001192  0x00000675 rshift3  0x0000000c , 0x0000003f 
+ 00001193  0x00000676 istore  0x00000001 , 0x00000005 
+ 00001194  0x00000677 rshift3  0x0000003f , 0x0000003f 
+ 00001195  0x00000678 and  0x0000003f , 0x0000001f , 0x00000039 
+ 00001196  0x00000679 branch  0x000004b1 , 0x00000005 
+ 00001197  0x0000067b parse  0x00000003 , 0x00000000 , 0x00000008 
+ 00001198  0x0000067c rshift3  0x0000000c , 0x0000003f 
+ 00001199  0x0000067d istore  0x00000001 , 0x00000005 
+ 00001200  0x0000067e loop  0x000004ad 
+ 00001201  0x00000680 parse  0x00000003 , 0x00000000 , 0x00000018 
+ 00001202  0x00000681 enable  0x00000010 
+ 00001203  0x00000682 arg  0x00000664 , 0x0000001b 
+ 00001204  0x00000683 rshift32  0x0000003f , 0x0000003f 
+ 00001205  0x00000684 rshift16  0x0000003f , 0x0000003f 
+ 00001206  0x00000685 istore  0x00000003 , 0x00000005 
+ 00001207  0x00000686 disable  0x0000000b 
+ 00001208  0x00000687 call  0x000029bb 
+ 00001209  0x00000688 branch  0x000004c2 , 0x00000006 
+ 00001210  0x00000689 enable  0x0000002f 
+ 00001211  0x0000068a fetch  0x00000001 , 0x00000017 
+ 00001212  0x0000068b add  0x0000003f , 0x00000000 , 0x00000011 
+ 00001213  0x0000068c call  0x00002981 
+ 00001214  0x0000068d disable  0x0000000d 
+ 00001215  0x0000068e call  0x00002918 
+ 00001216  0x0000068f rtn 
+ 00001217  0x00000690 rtn 
+ 00001218  0x00000693 disable  0x0000001b 
+ 00001219  0x00000694 disable  0x0000000b 
+ 00001220  0x00000695 branch  0x0000264d 
+ 00001221  0x00000698 call  0x00000433 
+ 00001222  0x00000699 branch  0x000004c2 
+ 00001223  0x0000069c call  0x00002918 
+ 00001224  0x0000069d fetcht  0x00000001 , 0x00004840 
+ 00001225  0x0000069e branch  0x00002933 
+ 00001226  0x000006a1 call  0x000053c4 
+ 00001227  0x000006a2 fetch  0x00000004 , 0x0000485e 
+ 00001228  0x000006a3 iforce  0x00000009 
+ 00001229  0x000006a4 call  0x00000477 
+ 00001230  0x000006a5 call  0x000004c7 
+ 00001231  0x000006a6 set1  0x00000000 , 0x00000015 
+ 00001232  0x000006a7 enable  0x0000001d 
+ 00001233  0x000006a8 enable  0x00000020 
+ 00001234  0x000006a9 disable  0x00000021 
+ 00001235  0x000006aa rshift16  0x00000009 , 0x0000003f 
+ 00001236  0x000006ab rshift8  0x0000003f , 0x0000003f 
+ 00001237  0x000006ac rshift4  0x0000003f , 0x0000003f 
+ 00001238  0x000006ad inject  0x00000003 , 0x00000028 
+ 00001239  0x000006ae disable  0x0000001d 
+ 00001240  0x000006af enable  0x0000001b 
+ 00001241  0x000006b0 enable  0x00000007 
+ 00001242  0x000006b1 enable  0x00000009 
+ 00001243  0x000006b2 fetch  0x00000001 , 0x000048e9 
+ 00001244  0x000006b3 inject  0x00000003 , 0x00000008 
+ 00001245  0x000006b4 fetch  0x00000001 , 0x00004838 
+ 00001246  0x000006b5 iforce  0x00000039 
+ 00001247  0x000006b6 arg  0x000047f2 , 0x00000006 
+ 00001248  0x000006b8 ifetch  0x00000001 , 0x00000006 
+ 00001249  0x000006b9 inject  0x00000003 , 0x00000008 
+ 00001250  0x000006ba loop  0x000004e0 
+ 00001251  0x000006bb fetch  0x00000001 , 0x000048ee 
+ 00001252  0x000006bc inject  0x00000003 , 0x00000008 
+ 00001253  0x000006bd enable  0x00000008 
+ 00001254  0x000006be inject  0x00000003 , 0x00000018 
+ 00001255  0x000006bf disable  0x00000008 
+ 00001256  0x000006c0 until  0x0000003e , 0x00000027 
+ 00001257  0x000006c1 nop  0x00000064 
+ 00001258  0x000006c2 disable  0x0000001d 
+ 00001259  0x000006c3 disable  0x0000001b 
+ 00001260  0x000006c4 rtn 
Index: output/bt_program23.list
===================================================================
--- /branch/USB/dongle_sdk/output/bt_program23.list	(revision 0)
+++ /branch/USB/dongle_sdk/output/bt_program23.list	(working copy)
@@ -0,0 +1,1471 @@
+              include "bt_format "
+              org 0x0000
+0x0 000011 bbit1 8 ,pf_patch_ext 
+0x1 000012 beq patch10_5 ,p_shutdown_radio 
+0x2 000013 beq patch11_1 ,p_set_freq_tx 
+0x3 000014 beq patch00_0 ,p_soft_reset 
+0x4 000015 beq patch11_6 ,p_save_rssi 
+0x5 000016 beq patch18_4 ,p_app_init 
+0x6 000017 beq patch1e_7 ,p_usb_init 
+0x7 000018 beq patch1f_0 ,p_usb_status1 
+0x8 000019 beq patch1f_4 ,p_usb_tx 
+0x9 000020 branch loop 
+:      000021 pf_patch_ext:
+0xa 000022 branch loop 
+:      000025 p_save_rssi:
+0xb 000026 hfetch 2 ,rf_afc_d2a 
+0xc 000027 rshift4 pdata ,pdata 
+0xd 000028 rshift3 pdata ,pdata 
+0xe 000029 sub pdata ,0 ,pdata 
+0xf 000030 and_into 0xff ,pdata 
+0x10 000031 store 1 ,mem_rssi_hex 
+0x11 000032 branch save_rssi + 6 
+:      000034 p_usb_init:
+0x12 000035 jam 0 ,core_usb_driver 
+0x13 000036 call usb_init_param 
+0x14 000037 call p_usb_new_vid_pid 
+0x15 000038 call p_usb_hid_icon 
+0x16 000039 branch usb_init + 2 
+:      000041 p_usb_new_vid_pid:
+0x17 000042 fetch 1 ,mem_usb_new_vid_pid_value 
+0x18 000043 rtn blank 
+0x19 000044 fetch 1 ,mem_dongle_kb_bind_flag 
+0x1a 000045 beq dongle_kb_bind_success ,p_usb_new_vid_pid_for_suit 
+:      000046 p_usb_new_vid_pid_for_mouse_only_auto_pair:
+0x1b 000047 fetch 4 ,mem_usb_new_vid_pid_value + 1 
+0x1c 000048 store 4 ,mem_devicedesc + 9 
+0x1d 000049 rtn 
+:      000050 p_usb_new_vid_pid_for_suit:
+0x1e 000051 fetch 4 ,mem_usb_new_vid_pid_value + 5 
+0x1f 000052 store 4 ,mem_devicedesc + 9 
+0x20 000053 rtn 
+:      000055 p_usb_hid_icon:
+0x21 000056 fetch 1 ,mem_dongle_kb_bind_flag 
+0x22 000057 beq dongle_kb_bind_success ,p_new_kb_hidreportdesc 
+0x23 000059 setarg mem_hidreportdesc_kb_temp 
+0x24 000060 store 2 ,mem_hidreportdesc_kb 
+0x25 000061 setarg mem_hidreportdesc_m_temp 
+0x26 000062 store 2 ,mem_hidreportdesc_m 
+0x27 000064 jam 0x1a ,mem_confdesc + 26 
+0x28 000065 jam 0xa3 ,mem_confdesc + 51 
+0x29 000066 rtn 
+:      000069 p_usb_tx:
+0x2a 000070 fetch 1 ,mem_usb_tx_enable 
+0x2b 000071 rtn blank 
+0x2c 000072 fetch 1 ,mem_usb_tx_wait 
+0x2d 000073 nbranch usb_inwake_state_tx_dispose ,blank 
+0x2e 000074 fetch 1 ,mem_usb_device_enumeration_endflag 
+0x2f 000075 branch usb_tx_fifo_release ,blank 
+0x30 000076 fetch 1 ,mem_usb_state 
+0x31 000077 beq usb_sleep ,usb_windows_wakeup 
+0x32 000078 bne usb_connected ,usb_tx_fifo_release 
+0x33 000079 fetch 1 ,mem_usb_clear_remote_wakeup 
+0x34 000080 nbranch usb_tx_fifo_release ,blank 
+0x35 000081 call usb_tx_data_ep1 
+0x36 000082 branch p_usb_tx_data_ep2 
+:      000085 p_usb_tx_data_ep2:
+0x37 000086 fetch 1 ,mem_usb_tx_enable 
+0x38 000087 rtnbit0 2 
+0x39 000088 fetch 1 ,mem_usb_tx_wait 
+0x3a 000089 rtnbit1 2 
+0x3b 000090 fetch 1 ,mem_usb_tx_enable 
+0x3c 000091 set0 2 ,pdata 
+0x3d 000092 store 1 ,mem_usb_tx_enable 
+0x3e 000093 fetch 1 ,mem_usb_ep2_data 
+0x3f 000094 rtn blank 
+0x40 000095 beq usb_ep2_ms ,usb_tx_ms_data 
+0x41 000096 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
+0x42 000097 beq usb_ep2_systemkey ,p_usb_tx_kb_systemkey_data 
+0x43 000098 branch assert 
+:      000100 p_usb_tx_kb_systemkey_data:
+0x44 000101 jam 0 ,mem_usb_ep2_data 
+0x45 000102 arg 2 ,loopcnt 
+0x46 000103 arg mem_usb_kb_system ,contr 
+0x47 000104 branch usb_tx_ep2 
+:      000107 p_new_kb_hidreportdesc:
+0x48 000108 setarg mem_hidreportdesc_kb_new_temp 
+0x49 000109 store 2 ,mem_hidreportdesc_kb 
+0x4a 000110 rtn 
+:      000112 p_usb_status1:
+0x4b 000113 jam 0x11 ,core_usb_status 
+0x4c 000114 hfetch 1 ,core_usb_ep_len 
+0x4d 000115 store 1 ,mem_usb_read_len 
+0x4e 000116 copy pdata ,loopcnt 
+0x4f 000117 branch p_usb_rx_no_data ,blank 
+0x50 000118 arg mem_usb_setup ,contw 
+0x51 000119 call usb_rx_read 
+0x52 000120 fetch 1 ,mem_usb_read_len 
+0x53 000121 beq 0x01 ,p_usb_out_one_byte 
+0x54 000122 sub pdata ,7 ,null 
+0x55 000123 rtn positive 
+:      000124 p_usb_class_type:
+0x56 000125 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x57 000126 and_into 0x80 ,pdata 
+0x58 000127 beq out_device ,p_usb_out_device 
+0x59 000128 branch usb_class_type + 2 
+:      000130 p_usb_rx_no_data:
+0x5a 000131 fetch 1 ,mem_usb_status 
+0x5b 000132 bbit1 usb_status_setup ,p_usb_class_type 
+0x5c 000133 rtn 
+:      000135 p_usb_out_one_byte:
+0x5d 000136 fetch 1 ,mem_usb_setup 
+0x5e 000137 rtnbit1 7 
+0x5f 000138 call p_usb_get_led_status 
+0x60 000139 branch usb0_reply_zerolen 
+:      000142 p_usb_out_device:
+0x61 000143 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x62 000144 rshift4 pdata ,pdata 
+0x63 000145 rshift pdata ,pdata 
+0x64 000146 and_into 0x03 ,pdata 
+0x65 000147 beq standard_req ,p_usb_out_standard_req 
+0x66 000148 beq class_req ,p_usb_out_class_req 
+0x67 000149 branch usb_out_device + 4 
+:      000151 p_usb_out_standard_req:
+0x68 000152 fetch 1 ,mem_usb_setup_brequest 
+0x69 000153 beq set_feature ,p_usb0_request_set_feature 
+0x6a 000154 branch usb_out_standard_req + 1 
+:      000156 p_usb0_request_set_feature:
+0x6b 000157 fetch 1 ,mem_usb_setup_blength 
+0x6c 000158 bne 0 ,usb0_force_stall 
+0x6d 000159 fetch 1 ,mem_usb_setup_blengthh 
+0x6e 000160 bne 0 ,usb0_force_stall 
+0x6f 000161 fetch 1 ,mem_usb_setup_bmrequesttype 
+0x70 000162 beq out_device ,p_usb0_request_set_feature_out_device 
+0x71 000163 branch usb0_request_set_feature + 5 
+:      000166 p_usb0_request_set_feature_out_device:
+0x72 000167 fetch 1 ,mem_usb_setup_bvalue 
+0x73 000168 bne device_remote_wakeup ,usb0_force_stall 
+0x74 000169 jam 3 ,mem_24g_pc_sleep_flag 
+0x75 000170 branch usb0_request_set_feature_out_device + 2 
+:      000172 p_usb_out_class_req:
+0x76 000173 fetch 1 ,mem_usb_setup_brequest 
+0x77 000174 beq set_report ,p_usb_set_report 
+0x78 000175 branch usb_out_class_req + 1 
+:      000176 p_usb_set_report:
+0x79 000177 jam 1 ,mem_usb0_get_set_report 
+0x7a 000178 call usb_set_report_resume_judge 
+0x7b 000179 fetch 2 ,mem_usb_setup_bvalue 
+0x7c 000180 store 2 ,mem_usb_setup_bvalue_temp 
+0x7d 000181 nop 15000 
+0x7e 000182 hfetch 1 ,core_usb_ep_len 
+0x7f 000183 ncall p_usb_set_report_rxdata ,blank 
+0x80 000184 fetch 1 ,mem_usb_tx_win_enable 
+0x81 000185 ncall p_usb_get_output_data ,blank 
+0x82 000186 branch usb_set_report + 4 
+:      000187 p_usb_set_report_rxdata:
+0x83 000188 copy pdata ,loopcnt 
+0x84 000189 arg mem_usb0_setup ,contw 
+0x85 000190 branch usb_rx_read 
+:      000192 p_usb_get_output_data:
+0x86 000193 fetch 1 ,mem_usb0_setup 
+:      000194 p_usb_get_led_status:
+0x87 000195 store 1 ,mem_24g_led_status 
+0x88 000196 jam 0 ,mem_usb_tx_win_enable 
+0x89 000197 jam kb_led_ackpayload ,mem_24g_ackpayload_enable 
+0x8a 000198 rtn 
+:      000200 p_app_init:
+0x8b 000201 jam 0 ,mem_dongle_bind_device_living 
+0x8c 000202 jam g24_bind_mode_delay ,mem_24g_bind_delay_count 
+0x8d 000203 call enable_authrom 
+0x8e 000204 fetch 4 ,mem_lap 
+0x8f 000205 store 4 ,mem_24g_rx_addr 
+0x90 000206 fetcht 1 ,mem_eeprom_wp_gpio 
+0x91 000207 call gpio_config_output 
+0x92 000208 call p_dongle_init 
+0x93 000209 call p_g24_queue_init 
+0x94 000210 call p_dongle_iic_init 
+0x95 000211 call p_dongle_firmware_version_store 
+0x96 000212 fetch 1 ,mem_24g_pair_mode 
+0x97 000213 beq 0x00 ,p_dongle_auto_bind 
+0x98 000214 beq 0x01 ,p_dongle_pc_bind 
+0x99 000215 beq 0x0f ,p_dongle_all_powerful 
+0x9a 000216 rtn 
+:      000218 p_dongle_firmware_version_store:
+0x9b 000219 call p_dongle_set_firmware_version_eeprom 
+0x9c 000220 branch iicd_write_protect_eep_data 
+:      000222 p_dongle_iic_init:
+0x9d 000223 call iic_init_390k 
+0x9e 000224 call p_dongle_set_kb_bind_eeprom 
+0x9f 000225 branch iicd_read_eep_data 
+:      000227 p_dongle_set_kb_bind_eeprom:
+0xa0 000228 arg mem_dongle_kb_bind_flag ,rega 
+0xa1 000229 arg dongle_kb_bind_eeprom_offect ,regb 
+0xa2 000230 arg 1 ,temp 
+0xa3 000231 rtn 
+:      000233 p_dongle_set_firmware_version_eeprom:
+0xa4 000234 arg mem_firmware_version ,rega 
+0xa5 000235 arg dongle_firmware_version_offect ,regb 
+0xa6 000236 arg 3 ,temp 
+0xa7 000237 rtn 
+:      000239 p_dongle_init:
+0xa8 000240 fetch 1 ,mem_tx_power 
+0xa9 000241 store 1 ,mem_tx_power_temp 
+0xaa 000242 arg 0x80 ,loopcnt 
+0xab 000243 arg mem_rssi_noise_buffer ,contw 
+0xac 000244 call memset0 
+0xad 000245 branch usb_init 
+:      000247 p_dongle_all_powerful:
+0xae 000248 call p_dongle_check_mode 
+:      000249 p_dongle_all_powerful_loop:
+0xaf 000250 call p_g24_dongle_work_mode 
+0xb0 000251 call p_dongle_usb_dispatch 
+0xb1 000252 branch p_dongle_all_powerful_loop 
+:      000254 p_dongle_pc_bind:
+0xb2 000255 call p_dongle_check_mode 
+:      000256 p_dongle_pc_bind_loop:
+0xb3 000257 call p_g24_dongle_work_mode 
+0xb4 000258 call p_g24_dongle_bind_mode 
+0xb5 000259 call p_dongle_usb_dispatch 
+0xb6 000260 branch p_dongle_pc_bind_loop 
+:      000262 p_dongle_check_mode:
+0xb7 000263 jam 0 ,mem_24g_ackpayload_enable 
+:      000264 p_dongle_work_mode_enable:
+0xb8 000265 jam dongle_work ,mem_dongle_work_mode 
+0xb9 000266 jam clear_init ,mem_dongle_mode_init 
+0xba 000267 rtn 
+:      000269 p_g24_dongle_work_mode:
+0xbb 000270 fetch 1 ,mem_dongle_work_mode 
+0xbc 000271 rtnne dongle_work 
+:      000272 p_g24_dongle_work_mode_start:
+0xbd 000273 call p_g24_dongle_work_init 
+0xbe 000274 call p_g24_ch_process 
+0xbf 000275 call p_g24_receive_packet_start 
+0xc0 000276 branch p_g24_blank_data_process 
+:      000278 p_g24_dongle_work_init:
+0xc1 000279 fetch 1 ,mem_dongle_mode_init 
+0xc2 000280 rtnbit1 dongle_work 
+0xc3 000281 set1 dongle_work ,pdata 
+0xc4 000282 store 1 ,mem_dongle_mode_init 
+0xc5 000283 fetch 1 ,mem_tx_power_temp 
+0xc6 000284 store 1 ,mem_tx_power 
+0xc7 000285 jam 0 ,mem_24g_ackpayload_enable 
+0xc8 000286 jam 0 ,mem_usb_tx_enable 
+0xc9 000287 jam 1 ,mem_24g_abort_packet 
+0xca 000288 jam 0 ,mem_24g_pid 
+0xcb 000289 fetch 4 ,mem_24g_rx_addr 
+0xcc 000290 call p_g24_update_addr_and_synccrc8 
+0xcd 000291 call p_g24_ch 
+0xce 000292 branch p_g24_rx_interrupt_clear 
+:      000294 p_g24_ch_process:
+0xcf 000295 fetch 1 ,mem_24g_abort_packet 
+0xd0 000296 beq 1 ,p_g24_noise_rssi 
+0xd1 000297 fetch 1 ,mem_24g_hop_packet 
+0xd2 000298 beq 1 ,p_g24_ch_receive_hop_pac 
+0xd3 000299 fetcht 4 ,mem_24g_hop_btclk 
+0xd4 000300 copy clkn_bt ,pdata 
+0xd5 000301 isub temp ,null 
+0xd6 000302 ncall g24_timer_timeout ,positive 
+0xd7 000303 copy pdata ,regb 
+0xd8 000304 fetch 4 ,mem_24g_hop_btclk 
+0xd9 000305 fetcht 1 ,mem_24g_hop_interval 
+0xda 000306 iadd temp ,temp 
+0xdb 000307 copy regb ,pdata 
+0xdc 000308 isub temp ,null 
+0xdd 000309 nrtn positive 
+0xde 000310 set0 28 ,pdata 
+0xdf 000311 store 4 ,mem_24g_hop_btclk 
+0xe0 000312 jam 1 ,mem_24g_abort_packet 
+0xe1 000313 branch p_g24_ch 
+:      000315 p_g24_ch_receive_hop_pac:
+0xe2 000316 jam 0 ,mem_24g_hop_packet 
+0xe3 000317 branch p_g24_ch 
+:      000319 p_g24_ch_timer_reinit:
+0xe4 000320 copy clkn_bt ,pdata 
+0xe5 000321 store 4 ,mem_24g_hop_btclk 
+0xe6 000322 jam 0 ,mem_24g_rf_laststa 
+0xe7 000323 rtn 
+:      000325 p_g24_noise_rssi:
+0xe8 000326 arg mem_rssi_noise_buffer ,rega 
+0xe9 000327 call p_rssi_average 
+0xea 000328 storet 1 ,mem_rssi_noise_avg 
+0xeb 000329 sub temp ,rssi_thresh_noise ,null 
+0xec 000330 nrtn positive 
+0xed 000331 branch p_g24_ch 
+:      000333 p_g24_blank_data_process:
+0xee 000334 call p_g24_ms_blank_data 
+0xef 000335 call p_g24_kb_blank_data 
+0xf0 000336 branch p_g24_kb_mul_blank_data 
+:      000338 p_g24_ms_blank_data:
+0xf1 000339 fetch 1 ,mem_24g_ms_blank_data_enable 
+0xf2 000340 rtn blank 
+0xf3 000341 arg timer_new_ms_blank ,queue 
+0xf4 000342 call timer_check 
+0xf5 000343 nrtn blank 
+0xf6 000344 jam 0 ,mem_24g_ms_blank_data_enable 
+0xf7 000345 branch g24_ms_blank_data_2usb 
+:      000347 p_g24_kb_blank_data:
+0xf8 000348 fetch 1 ,mem_24g_kb_blank_data_enable 
+0xf9 000349 rtn blank 
+0xfa 000350 arg timer_new_kb_blank ,queue 
+0xfb 000351 call timer_check 
+0xfc 000352 nrtn blank 
+0xfd 000353 jam 0 ,mem_24g_kb_blank_data_enable 
+0xfe 000354 call g24_kb_blank_data_2usb 
+0xff 000355 fetch 8 ,mem_usb_kb_data 
+0x100 000356 store 8 ,mem_24g_kb_data_last_data 
+0x101 000357 rtn 
+:      000359 p_g24_kb_mul_blank_data:
+0x102 000360 fetch 1 ,mem_24g_kb_mul_blank_data_enable 
+0x103 000361 rtn blank 
+0x104 000362 arg timer_new_kb_mul_blank ,queue 
+0x105 000363 call timer_check 
+0x106 000364 nrtn blank 
+0x107 000365 jam 0 ,mem_24g_kb_mul_blank_data_enable 
+0x108 000366 call g24_kb_mul_blank_data_2usb 
+0x109 000367 fetch 3 ,mem_usb_kb_multikey 
+0x10a 000368 store 3 ,mem_24g_kb_multikey_last_data 
+0x10b 000369 rtn 
+:      000371 p_g24_dongle_bind_mode:
+0x10c 000372 fetch 1 ,mem_dongle_work_mode 
+0x10d 000373 rtnne dongle_bind 
+0x10e 000374 call p_g24_dongle_bind_init 
+0x10f 000375 branch p_g24_dongle_bind_data_process 
+:      000377 p_g24_dongle_bind_init:
+0x110 000378 fetch 1 ,mem_dongle_mode_init 
+0x111 000379 rtnbit1 dongle_bind 
+0x112 000380 set1 dongle_bind ,pdata 
+0x113 000381 store 1 ,mem_dongle_mode_init 
+0x114 000382 setarg 0 
+0x115 000383 store 3 ,mem_dongle_ms_bind_step 
+0x116 000384 jam tx_power_f5db ,mem_tx_power 
+0x117 000385 jam 1 ,mem_24g_ackpayload_enable 
+0x118 000386 jam 0 ,mem_24g_pid 
+0x119 000387 jam g24_pair_ch ,mem_24g_ch 
+0x11a 000388 fetch 4 ,mem_24g_paring_addr 
+0x11b 000389 branch p_g24_update_addr_and_synccrc8 
+:      000391 p_g24_dongle_bind_data_process:
+0x11c 000392 call p_g24_receive_transmit_ack 
+0x11d 000393 nbranch p_g24_rx_interrupt_clear ,user3 
+0x11e 000394 jam g24_work_mode_delay ,mem_24g_work_delay_count 
+0x11f 000395 arg mem_24g_rxbuf ,contr 
+0x120 000396 arg mem_24g_rxdata_temp ,contw 
+0x121 000397 arg 8 ,loopcnt 
+0x122 000398 call memcpy 
+0x123 000399 fetch 1 ,mem_24g_rxdata_temp + 2 
+0x124 000400 beq datatype_bind ,p_g24_dongle_bind_first_step 
+0x125 000401 beq datatype_config ,p_g24_dongle_bind_second_step 
+0x126 000402 beq datatype_ok ,p_g24_dongle_bind_third_step 
+0x127 000403 beq 0xff ,p_g24_data_attemp_bind 
+:      000404 p_g24_rx_interrupt_clear:
+0x128 000405 arg mem_24g_rxbuf ,contw 
+0x129 000406 arg 66 ,loopcnt 
+0x12a 000407 branch clear_mem 
+:      000409 p_g24_dongle_binding_device_check:
+0x12b 000410 fetch 1 ,mem_dongle_work_mode 
+0x12c 000411 rtnne dongle_bind 
+0x12d 000412 fetch 1 ,mem_24g_pair_mode 
+0x12e 000413 nrtn blank 
+0x12f 000414 fetch 1 ,mem_24g_rxbuf + 3 
+0x130 000415 beq bind_mouse ,p_g24_dongle_binding_mouse_status 
+0x131 000416 beq bind_keyboard ,p_g24_dongle_binding_keyboard_status 
+0x132 000417 rtn 
+:      000418 p_g24_dongle_binding_mouse_status:
+0x133 000419 fetch 1 ,mem_dongle_bind_device_living 
+0x134 000420 rtnbit0 0 
+:      000421 disable_user3:
+0x135 000422 disable user3 
+0x136 000423 rtn 
+:      000424 p_g24_dongle_binding_keyboard_status:
+0x137 000425 fetch 1 ,mem_dongle_bind_device_living 
+0x138 000426 rtnbit0 1 
+0x139 000427 branch disable_user3 
+:      000429 p_g24_dongle_binding_mouse_living:
+0x13a 000430 fetch 1 ,mem_24g_pair_mode 
+0x13b 000431 nrtn blank 
+0x13c 000432 fetch 1 ,mem_dongle_bind_device_living 
+0x13d 000433 or_into 0x01 ,pdata 
+0x13e 000434 store 1 ,mem_dongle_bind_device_living 
+0x13f 000435 rtn 
+:      000437 p_g24_dongle_binding_keyboard_living:
+0x140 000438 fetch 1 ,mem_24g_pair_mode 
+0x141 000439 nrtn blank 
+0x142 000440 fetch 1 ,mem_dongle_bind_device_living 
+0x143 000441 or_into 0x02 ,pdata 
+0x144 000442 store 1 ,mem_dongle_bind_device_living 
+0x145 000443 rtn 
+:      000446 p_g24_dongle_bind_first_step:
+0x146 000447 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x147 000448 beq bind_mouse ,p_g24_dongle_bind_first_step_mouse 
+0x148 000449 beq bind_keyboard ,p_g24_dongle_bind_first_step_keyboard 
+0x149 000450 rtn 
+:      000451 p_g24_dongle_bind_first_step_mouse:
+0x14a 000452 jam 1 ,mem_dongle_ms_bind_step 
+:      000453 p_g24_dongle_bind_ms_payload_cfg:
+0x14b 000454 jam datatype_mouse ,mem_24g_bind_payload 
+:      000455 p_g24_dongle_bind_payload_cfg:
+0x14c 000456 jam 0x80 ,mem_24g_bind_payload + 1 
+0x14d 000457 fetch 6 ,mem_24g_rx_addr 
+0x14e 000458 store 6 ,mem_24g_bind_payload + 2 
+0x14f 000459 rtn 
+:      000461 p_g24_dongle_bind_first_step_keyboard:
+0x150 000462 jam 1 ,mem_dongle_kb_bind_step 
+:      000463 p_g24_dongle_bind_kb_payload_cfg:
+0x151 000464 jam datatype_keyboard ,mem_24g_bind_payload 
+0x152 000465 branch p_g24_dongle_bind_payload_cfg 
+:      000467 p_g24_dongle_bind_second_step:
+0x153 000468 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x154 000469 beq bind_mouse ,p_g24_dongle_bind_second_step_mouse 
+0x155 000470 beq bind_keyboard ,p_g24_dongle_bind_second_step_keyboard 
+0x156 000471 rtn 
+:      000472 p_g24_dongle_bind_second_step_mouse:
+0x157 000473 call p_g24_dongle_bind_ms_payload_cfg 
+0x158 000474 fetch 1 ,mem_dongle_ms_bind_step 
+0x159 000475 beq 1 ,p_g24_dongle_ms_bind_step_set2 
+0x15a 000476 rtn 
+:      000477 p_g24_dongle_ms_bind_step_set2:
+0x15b 000478 jam 2 ,mem_dongle_ms_bind_step 
+0x15c 000479 rtn 
+:      000480 p_g24_dongle_bind_second_step_keyboard:
+0x15d 000481 call p_g24_dongle_bind_kb_payload_cfg 
+0x15e 000482 fetch 1 ,mem_dongle_kb_bind_step 
+0x15f 000483 beq 1 ,p_g24_dongle_kb_bind_step_set2 
+0x160 000484 rtn 
+:      000485 p_g24_dongle_kb_bind_step_set2:
+0x161 000486 jam 2 ,mem_dongle_kb_bind_step 
+0x162 000487 rtn 
+:      000489 p_g24_dongle_bind_third_step:
+0x163 000490 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x164 000491 beq bind_mouse ,p_g24_dongle_bind_third_step_mouse 
+0x165 000492 beq bind_keyboard ,p_g24_dongle_bind_third_step_keyboard 
+0x166 000493 rtn 
+:      000494 p_g24_dongle_bind_third_step_mouse:
+0x167 000495 fetch 1 ,mem_dongle_ms_bind_step 
+0x168 000496 beq 2 ,p_g24_dongle_ms_bind_step_success 
+0x169 000497 rtn 
+:      000498 p_g24_dongle_ms_bind_step_success:
+0x16a 000499 call p_g24_dongle_binding_mouse_living 
+0x16b 000500 fetch 1 ,mem_dongle_bind_device_status 
+0x16c 000501 or_into 0x01 ,pdata 
+0x16d 000502 store 1 ,mem_dongle_bind_device_status 
+:      000503 p_g24_dongle_bind_exit:
+0x16e 000504 setarg 0 
+0x16f 000505 store 2 ,mem_dongle_ms_bind_step 
+0x170 000506 branch p_g24_rx_interrupt_clear 
+:      000508 p_g24_dongle_bind_third_step_keyboard:
+0x171 000509 fetch 1 ,mem_dongle_kb_bind_step 
+0x172 000510 bne 0 ,p_g24_dongle_kb_bind_step_success 
+0x173 000511 rtn 
+:      000512 p_g24_dongle_kb_bind_step_success:
+0x174 000513 call p_g24_dongle_binding_keyboard_living 
+0x175 000514 fetch 1 ,mem_dongle_bind_device_status 
+0x176 000515 or_into 0x02 ,pdata 
+0x177 000516 store 1 ,mem_dongle_bind_device_status 
+0x178 000517 call p_g24_dongle_bind_exit 
+:      000518 p_g24_dongle_store_kb_bind_flag:
+0x179 000519 fetch 1 ,mem_dongle_kb_bind_flag 
+0x17a 000520 rtneq dongle_kb_bind_success 
+0x17b 000521 jam dongle_kb_bind_success ,mem_dongle_kb_bind_flag 
+0x17c 000522 call p_dongle_set_kb_bind_eeprom 
+0x17d 000523 call iicd_write_protect_eep_data 
+0x17e 000524 branch soft_reset_chip 
+:      000526 p_g24_data_attemp_bind:
+0x17f 000527 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x180 000528 beq datatype_mouse ,p_g24_data_attemp_mouse_bind 
+0x181 000529 beq datatype_keyboard ,p_g24_data_attemp_kbd_bind 
+0x182 000530 rtn 
+:      000531 p_g24_data_attemp_mouse_bind:
+0x183 000532 fetch 4 ,mem_24g_rxdata_temp + 4 
+:      000533 p_g24_store_mouse_addr:
+0x184 000534 store 4 ,mem_24g_ms_addr 
+0x185 000535 rtn 
+:      000536 p_g24_data_attemp_kbd_bind:
+0x186 000537 fetch 4 ,mem_24g_rxdata_temp + 4 
+:      000538 p_g24_store_kbd_addr:
+0x187 000539 store 4 ,mem_24g_kb_addr 
+0x188 000540 rtn 
+:      000542 p_g24_queue_init:
+0x189 000543 jam 0 ,mem_queue_ele_num 
+0x18a 000544 setarg mem_queue_start 
+0x18b 000545 store 2 ,mem_queue_read 
+0x18c 000546 store 2 ,mem_queue_write 
+0x18d 000547 rtn 
+:      000549 p_g24_queue_put:
+0x18e 000550 arg 0x1f ,loopcnt 
+0x18f 000551 arg mem_usb0_set_report_data ,temp 
+0x190 000552 fetch 2 ,mem_queue_write 
+0x191 000553 copy pdata ,contw 
+0x192 000554 copy temp ,contr 
+0x193 000555 call memcpy 
+0x194 000556 fetch 1 ,mem_queue_ele_num 
+0x195 000557 increase 1 ,pdata 
+0x196 000558 store 1 ,mem_queue_ele_num 
+0x197 000559 setarg mem_queue_write 
+:      000560 p_g24_queue_increase:
+0x198 000561 copy pdata ,rega 
+0x199 000562 arg mem_queue_end ,temp 
+0x19a 000563 ifetch 2 ,rega 
+0x19b 000564 increase queue_ele_length ,pdata 
+0x19c 000565 isub temp ,null 
+0x19d 000566 nbranch p_g24_queue_put_end ,positive 
+0x19e 000567 setarg mem_queue_start 
+:      000568 p_g24_queue_put_end:
+0x19f 000569 istore 2 ,rega 
+0x1a0 000570 rtn 
+:      000572 p_g24_queue_read_point:
+0x1a1 000573 disable user 
+0x1a2 000574 fetch 1 ,mem_queue_ele_num 
+0x1a3 000575 rtn blank 
+0x1a4 000576 enable user 
+0x1a5 000577 fetch 2 ,mem_queue_read 
+0x1a6 000578 rtn 
+:      000580 p_dongle_usb_dispatch:
+0x1a7 000581 jam 0xff ,core_write_watchdog 
+0x1a8 000582 fetch 1 ,mem_usb_remote_wakeup 
+0x1a9 000583 call p_g24_clear_pc_sleep_flag ,blank 
+0x1aa 000584 call usb_isr 
+0x1ab 000585 fetch 1 ,mem_usb0_get_set_report 
+0x1ac 000586 rtn blank 
+0x1ad 000587 jam 0 ,mem_usb0_get_set_report 
+0x1ae 000588 fetch 2 ,mem_usb_setup_bvalue_temp 
+0x1af 000589 arg pc_set_report ,temp 
+0x1b0 000590 isub temp ,null 
+0x1b1 000591 nrtn zero 
+0x1b2 000593 fetch 1 ,mem_usb0_set_report_data 
+0x1b3 000594 rtnne pc_report_id 
+0x1b4 000595 fetch 1 ,mem_usb0_set_report_data + 1 
+0x1b5 000596 beq command_mode ,p_dongle_dispose_cmd_mode 
+0x1b6 000597 beq command_bind ,p_dongle_dispose_cmd_bind 
+0x1b7 000598 beq command_current_project ,dongle_dispose_cmd_current_project 
+0x1b8 000599 beq command_current_mode ,p_dongle_dispose_cmd_current_mode 
+0x1b9 000600 beq command_current_fw_version ,p_dongle_dispose_cmd_current_fw_version 
+0x1ba 000601 beq command_user_defined ,p_dongle_dispose_cmd_user_defined 
+0x1bb 000602 branch usb0_data_ready_report_set0 
+:      000604 p_dongle_dispose_cmd_bind:
+0x1bc 000605 fetch 1 ,mem_usb0_set_report_data + 2 
+0x1bd 000606 beq com_bind_get ,p_dongle_dispose_cmd_get_bind 
+0x1be 000607 beq com_bind_exit ,p_dongle_dispose_cmd_exit_bind 
+0x1bf 000608 beq com_read_mode ,dongle_dispose_cmd_read_mode 
+0x1c0 000609 branch usb0_data_ready_report_set0 
+:      000610 p_dongle_dispose_cmd_get_bind:
+0x1c1 000611 fetch 1 ,mem_dongle_bind_device_status 
+0x1c2 000612 store 1 ,mem_usb0_get_report_data + 1 
+0x1c3 000613 branch usb0_data_ready_report_set1 
+:      000614 p_dongle_dispose_cmd_exit_bind:
+0x1c4 000615 call p_dongle_work_mode_enable 
+0x1c5 000616 branch p_dongle_dispose_cmd_get_bind 
+:      000618 p_dongle_dispose_cmd_mode:
+0x1c6 000619 fetch 1 ,mem_usb0_set_report_data + 2 
+0x1c7 000620 beq com_mode_bind ,p_dongle_enter_bind_mode 
+0x1c8 000621 branch usb0_data_ready_report_set0 
+:      000622 p_dongle_enter_bind_mode:
+0x1c9 000623 call p_g24_bind_mode_enable 
+0x1ca 000624 branch usb0_data_ready_report_set1 
+:      000626 p_dongle_dispose_cmd_current_mode:
+0x1cb 000627 fetch 1 ,mem_dongle_work_mode 
+0x1cc 000628 beq dongle_work ,p_dongle_dispose_in_work_mode 
+0x1cd 000629 beq dongle_bind ,dongle_dispose_in_bind_mode 
+0x1ce 000630 rtn 
+:      000631 p_dongle_dispose_in_work_mode:
+0x1cf 000632 jam command_mode ,mem_usb0_get_report_data + 1 
+0x1d0 000633 branch usb0_data_ready_report_set1 
+:      000635 p_dongle_dispose_cmd_current_fw_version:
+0x1d1 000636 jam fw_version3 ,mem_usb0_get_report_data + 4 
+0x1d2 000637 branch dongle_dispose_cmd_current_fw_version 
+:      000639 p_dongle_dispose_cmd_user_defined:
+0x1d3 000640 fetch 1 ,mem_usb0_set_report_data + 2 
+0x1d4 000641 beq 0xff ,soft_reset_chip 
+:      000642 p_dongle_dispose_cmd_ota:
+0x1d5 000643 jam 2 ,mem_24g_ackpayload_enable 
+0x1d6 000644 fetch 1 ,mem_queue_ele_num 
+0x1d7 000645 beq queue_ele_count ,p_user_defined_queue_buff_full 
+0x1d8 000646 call p_g24_queue_put 
+0x1d9 000647 fetch 1 ,mem_queue_ele_num 
+0x1da 000648 beq queue_ele_count ,p_user_defined_queue_buff_full 
+:      000649 p_user_defined_queue_buff_free:
+0x1db 000650 jam 0 ,mem_usb0_get_report_data + 1 
+0x1dc 000651 branch usb0_data_ready_report_set1 
+:      000653 p_user_defined_queue_buff_full:
+0x1dd 000654 jam 1 ,mem_usb0_get_report_data + 1 
+0x1de 000655 branch usb0_data_ready_report_set1 
+:      000657 p_dongle_auto_bind:
+0x1df 000658 call p_g24_mode_switch_init 
+:      000659 p_dongle_auto_bind_loop:
+0x1e0 000660 call p_g24_mode_switch 
+0x1e1 000661 call p_g24_mode_switch_2 
+0x1e2 000662 call p_g24_dongle_work_mode_auto 
+0x1e3 000663 call p_g24_dongle_bind_mode_auto 
+0x1e4 000664 call p_g24_dongle_search_mode_auto 
+0x1e5 000665 call p_dongle_usb_dispatch 
+0x1e6 000666 branch p_dongle_auto_bind_loop 
+:      000668 p_g24_dongle_work_mode_auto:
+0x1e7 000669 fetch 1 ,mem_dongle_work_mode 
+0x1e8 000670 rtnne dongle_work 
+0x1e9 000671 call p_g24_dongle_work_mode_start 
+0x1ea 000672 branch p_g24_rx_nodata_process 
+:      000674 p_g24_dongle_bind_mode_auto:
+0x1eb 000675 fetch 1 ,mem_dongle_work_mode 
+0x1ec 000676 rtnne dongle_bind 
+0x1ed 000677 call p_g24_dongle_bind_init 
+0x1ee 000678 call p_g24_dongle_bind_data_process 
+0x1ef 000679 fetch 1 ,mem_dongle_bind_device_status 
+0x1f0 000680 rtn blank 
+0x1f1 000681 jam 0 ,mem_24g_mode_switch 
+0x1f2 000682 call p_dongle_check_mode 
+0x1f3 000683 call p_g24_enable_nodata_timer 
+0x1f4 000684 branch p_g24_timer_init 
+:      000686 p_g24_timer_check:
+0x1f5 000687 call disable_user 
+0x1f6 000688 fetcht 4 ,mem_24g_tx_btclk 
+0x1f7 000689 copy clkn_bt ,pdata 
+0x1f8 000690 isub temp ,null 
+0x1f9 000691 ncall g24_timer_timeout ,positive 
+0x1fa 000692 copy pdata ,regb 
+0x1fb 000693 fetch 4 ,mem_24g_tx_btclk 
+0x1fc 000694 fetcht 1 ,mem_24g_interval 
+0x1fd 000695 iadd temp ,temp 
+0x1fe 000696 copy regb ,pdata 
+0x1ff 000697 isub temp ,null 
+0x200 000698 nrtn positive 
+0x201 000699 set0 28 ,pdata 
+0x202 000700 store 4 ,mem_24g_tx_btclk 
+0x203 000701 branch enable_user 
+:      000703 p_g24_mode_switch_init:
+0x204 000704 jam 1 ,mem_24g_mode_switch 
+0x205 000705 jam 0 ,mem_24g_time_slice 
+0x206 000706 jam 0xff ,mem_24g_interval 
+:      000707 p_g24_timer_init:
+0x207 000708 setarg 0 
+0x208 000709 store 4 ,mem_24g_tx_btclk 
+0x209 000710 rtn 
+:      000712 p_g24_mode_switch:
+0x20a 000713 fetch 1 ,mem_24g_mode_switch 
+0x20b 000714 rtn blank 
+0x20c 000715 call p_g24_timer_check 
+0x20d 000716 nrtn user 
+0x20e 000718 call p_g24_bind_mode_delay 
+0x20f 000719 call p_g24_work_mode_delay 
+0x210 000721 fetch 1 ,mem_24g_time_slice 
+0x211 000722 increase 1 ,pdata 
+0x212 000723 and_into 1 ,pdata 
+0x213 000724 store 1 ,mem_24g_time_slice 
+0x214 000725 beq 0 ,p_g24_mode_switch_work 
+0x215 000726 beq 1 ,p_g24_mode_switch_bind 
+0x216 000727 rtn 
+:      000730 p_g24_work_mode_delay:
+0x217 000731 fetch 1 ,mem_24g_work_delay_count 
+0x218 000732 rtn blank 
+0x219 000733 increase -1 ,pdata 
+0x21a 000734 store 1 ,mem_24g_work_delay_count 
+0x21b 000735 rtn 
+:      000737 p_g24_mode_switch_work:
+0x21c 000738 fetch 1 ,mem_24g_work_delay_count 
+0x21d 000739 nbranch p_g24_bind_mode_enable ,blank 
+0x21e 000740 branch p_dongle_check_mode 
+:      000742 p_g24_bind_mode_delay:
+0x21f 000743 fetch 1 ,mem_24g_bind_delay_count 
+0x220 000744 rtn blank 
+0x221 000745 increase -1 ,pdata 
+0x222 000746 store 1 ,mem_24g_bind_delay_count 
+0x223 000747 rtn 
+:      000749 p_g24_mode_switch_bind:
+0x224 000750 fetch 1 ,mem_24g_bind_delay_count 
+0x225 000751 nbranch p_dongle_check_mode ,blank 
+:      000752 p_g24_bind_mode_enable:
+0x226 000753 jam dongle_bind ,mem_dongle_work_mode 
+0x227 000754 jam clear_init ,mem_dongle_mode_init 
+0x228 000755 rtn 
+:      000758 p_g24_mode_switch_init_2:
+0x229 000759 fetch 1 ,mem_24g_mode_switch_exit_2 
+0x22a 000760 call p_g24_mode_switch_start_2 ,blank 
+0x22b 000761 fetch 1 ,mem_24g_mode_switch_2_init 
+0x22c 000762 rtnbit1 0 
+0x22d 000763 set1 0 ,pdata 
+0x22e 000764 store 1 ,mem_24g_mode_switch_2_init 
+0x22f 000765 jam 1 ,mem_24g_mode_switch_2 
+0x230 000766 jam 0 ,mem_24g_time_slice_2 
+0x231 000767 setarg 0 
+0x232 000768 store 2 ,mem_24g_mode_switch_cnt_2 
+0x233 000769 jam 0x60 ,mem_24g_interval 
+0x234 000770 branch p_g24_timer_init 
+:      000772 p_g24_mode_switch_2:
+0x235 000773 fetch 1 ,mem_dongle_work_mode 
+0x236 000774 rtneq dongle_work 
+0x237 000775 fetch 1 ,mem_24g_mode_switch_exit_2 
+0x238 000776 nrtn blank 
+0x239 000777 fetch 1 ,mem_24g_mode_switch_2 
+0x23a 000778 rtn blank 
+0x23b 000779 call p_g24_timer_check 
+0x23c 000780 nrtn user 
+0x23d 000782 fetch 2 ,mem_24g_mode_switch_cnt_2 
+0x23e 000783 increase 1 ,pdata 
+0x23f 000784 store 2 ,mem_24g_mode_switch_cnt_2 
+0x240 000785 arg 0x7d0 ,temp 
+0x241 000786 isub temp ,null 
+0x242 000787 branch p_g24_mode_switch_exit_2 ,positive 
+0x243 000789 call p_g24_work_mode_delay 
+0x244 000791 fetch 1 ,mem_24g_time_slice_2 
+0x245 000792 increase 1 ,pdata 
+0x246 000793 and_into 1 ,pdata 
+0x247 000794 store 1 ,mem_24g_time_slice_2 
+0x248 000795 beq 0 ,p_g24_mode_switch_search 
+0x249 000796 beq 1 ,p_g24_bind_mode_enable 
+0x24a 000797 rtn 
+:      000799 p_g24_mode_switch_search:
+0x24b 000800 fetch 1 ,mem_24g_work_delay_count 
+0x24c 000801 nbranch p_g24_bind_mode_enable ,blank 
+0x24d 000802 branch p_g24_search_mode_enable 
+:      000804 p_g24_mode_switch_exit_2:
+0x24e 000805 jam 1 ,mem_24g_mode_switch_exit_2 
+0x24f 000806 branch p_g24_search_mode_enable 
+:      000808 p_g24_mode_switch_stop_2:
+0x250 000809 jam 0 ,mem_24g_mode_switch_2 
+0x251 000810 rtn 
+:      000811 p_g24_mode_switch_start_2:
+0x252 000812 jam 1 ,mem_24g_mode_switch_2 
+0x253 000813 rtn 
+:      000815 p_g24_enable_nodata_timer:
+0x254 000816 jam 1 ,mem_24g_nodata_timer_enable 
+0x255 000817 branch g24_enable_nodata_timer_init 
+:      000819 p_g24_rx_nodata_process:
+0x256 000820 fetch 1 ,mem_24g_ackpayload_enable 
+0x257 000821 rtneq 2 
+0x258 000822 fetch 1 ,mem_24g_nodata_timer_enable 
+0x259 000823 rtn blank 
+0x25a 000824 arg timer_nodata ,queue 
+0x25b 000825 call timer_check 
+0x25c 000826 nrtn blank 
+0x25d 000827 jam 0 ,mem_24g_nodata_timer_enable 
+0x25e 000829 jam 0 ,mem_24g_bind_delay_count 
+0x25f 000830 jam 0 ,mem_24g_work_delay_count 
+0x260 000832 call p_g24_mode_switch_init_2 
+:      000834 p_g24_search_mode_enable:
+0x261 000836 jam dongle_search ,mem_dongle_work_mode 
+0x262 000837 jam clear_init ,mem_dongle_mode_init 
+0x263 000838 branch p_g24_rx_interrupt_clear 
+:      000840 p_g24_receive_transmit_ack:
+0x264 000841 call p_g24_rx_interrupt_clear 
+0x265 000842 call p_g24_receive_packet 
+0x266 000843 nrtn user3 
+0x267 000844 branch p_g24_transmit_ack 
+:      000847 p_g24_dongle_search_mode_auto:
+0x268 000848 fetch 1 ,mem_dongle_work_mode 
+0x269 000849 rtnne dongle_search 
+0x26a 000850 call p_g24_dongle_search_mode_init 
+0x26b 000851 call p_g24_rx_auto_addr_ch_search 
+0x26c 000852 call p_g24_receive_transmit_ack 
+0x26d 000853 nbranch p_g24_rx_interrupt_clear ,user3 
+0x26e 000855 call p_g24_rx_addr_check 
+0x26f 000856 call p_g24_receive_packet_parse ,zero 
+0x270 000859 fetch 1 ,mem_24g_abort_packet 
+0x271 000860 call p_g24_mode_switch_stop_2 ,blank 
+0x272 000862 jam dongle_work ,mem_dongle_work_mode 
+0x273 000863 fetch 1 ,mem_dongle_mode_init 
+0x274 000864 set1 dongle_work ,pdata 
+0x275 000865 store 1 ,mem_dongle_mode_init 
+0x276 000867 fetch 1 ,mem_24g_ackpayload_enable 
+0x277 000868 sub pdata ,2 ,null 
+0x278 000869 ncall p_g24_ackpayload_disable ,zero 
+0x279 000871 call p_g24_rx_interrupt_clear 
+0x27a 000872 call p_g24_enable_nodata_timer 
+0x27b 000873 call p_g24_rx_addr_check 
+0x27c 000874 branch p_g24_dg_ch_num_reinit ,zero 
+0x27d 000875 fetch 4 ,mem_24g_addr 
+0x27e 000876 fetcht 4 ,mem_24g_kb_addr 
+0x27f 000877 isub temp ,null 
+0x280 000878 branch p_g24_kb_ch_num_reinit ,zero 
+0x281 000879 fetch 4 ,mem_24g_addr 
+0x282 000880 fetcht 4 ,mem_24g_ms_addr 
+0x283 000881 isub temp ,null 
+0x284 000882 branch p_g24_ms_ch_num_reinit ,zero 
+0x285 000883 rtn 
+:      000885 p_g24_ackpayload_disable:
+0x286 000886 jam 0 ,mem_24g_ackpayload_enable 
+0x287 000887 rtn 
+:      000889 p_g24_dg_ch_num_reinit:
+0x288 000890 fetch 1 ,mem_24g_dg_ch_number 
+:      000891 p_g24_current_ch_num_reinit:
+0x289 000892 store 1 ,mem_24g_current_ch_number 
+0x28a 000893 rtn 
+:      000894 p_g24_kb_ch_num_reinit:
+0x28b 000895 fetch 1 ,mem_24g_kb_ch_number 
+0x28c 000896 branch p_g24_current_ch_num_reinit 
+:      000897 p_g24_ms_ch_num_reinit:
+0x28d 000898 fetch 1 ,mem_24g_ms_ch_number 
+0x28e 000899 branch p_g24_current_ch_num_reinit 
+:      000901 p_g24_dongle_search_mode_init:
+0x28f 000902 fetch 1 ,mem_dongle_mode_init 
+0x290 000903 rtnbit1 dongle_search 
+0x291 000904 set1 dongle_search ,pdata 
+0x292 000905 store 1 ,mem_dongle_mode_init 
+0x293 000906 jam 0 ,mem_24g_time_slice 
+0x294 000907 jam 1 ,mem_24g_ackpayload_enable 
+0x295 000908 setarg 0 
+0x296 000909 store 3 ,mem_rssi_noise_dg_index 
+0x297 000910 store 7 ,mem_24g_dg_config_ch_once 
+0x298 000911 call p_g24_rx_addr_check 
+0x299 000912 nrtn zero 
+0x29a 000913 fetch 1 ,mem_24g_current_ch_number 
+0x29b 000914 store 1 ,mem_24g_dg_ch_number 
+0x29c 000915 fetch 1 ,mem_24g_ch 
+0x29d 000916 store 1 ,mem_24g_dg_last_ch 
+0x29e 000917 rtn 
+:      000919 p_g24_rx_addr_check:
+0x29f 000920 fetch 4 ,mem_24g_addr 
+0x2a0 000921 fetcht 4 ,mem_24g_rx_addr 
+0x2a1 000922 isub temp ,null 
+0x2a2 000923 rtn 
+:      000925 p_g24_rx_auto_addr_ch_search:
+0x2a3 000926 fetch 1 ,mem_24g_time_slice 
+0x2a4 000927 increase 1 ,pdata 
+0x2a5 000928 and_into 3 ,pdata 
+0x2a6 000929 store 1 ,mem_24g_time_slice 
+0x2a7 000931 beq 0 ,p_g24_rx_auto_bind_config_kb 
+0x2a8 000932 beq 1 ,p_g24_rx_auto_bind_config_dongle 
+0x2a9 000933 beq 2 ,p_g24_rx_auto_bind_config_mouse 
+0x2aa 000934 beq 3 ,p_g24_rx_auto_bind_config_dongle 
+0x2ab 000935 rtn 
+:      000937 p_g24_rx_auto_bind_config_mouse:
+0x2ac 000938 call p_g24_dongle_bind_ms_payload_cfg 
+0x2ad 000939 fetch 4 ,mem_24g_ms_addr 
+0x2ae 000940 branch p_g24_rx_auto_addr_ch_search ,blank 
+0x2af 000941 call p_g24_update_addr_and_synccrc8 
+0x2b0 000942 fetch 1 ,mem_24g_ms_config_ch_once 
+0x2b1 000943 call p_g24_ms_config_ch_once ,blank 
+0x2b2 000944 fetch 1 ,mem_24g_ms_last_ch 
+0x2b3 000945 store 1 ,mem_24g_ch 
+0x2b4 000946 fetcht 1 ,mem_rssi_noise_ms_index 
+0x2b5 000947 arg mem_rssi_noise_ms_buffer ,rega 
+0x2b6 000948 call p_rssi_store 
+0x2b7 000949 storet 1 ,mem_rssi_noise_ms_index 
+0x2b8 000950 call p_rssi_average 
+0x2b9 000951 storet 1 ,mem_rssi_noise_ms_avg 
+0x2ba 000952 sub temp ,rssi_thresh_noise ,null 
+0x2bb 000953 nrtn positive 
+0x2bc 000954 fetcht 1 ,mem_24g_ms_ch_number 
+0x2bd 000955 call p_g24_ch_map_size 
+0x2be 000956 storet 1 ,mem_24g_ms_ch_number 
+0x2bf 000957 store 1 ,mem_24g_ms_last_ch 
+0x2c0 000958 rtn 
+:      000960 p_g24_ms_config_ch_once:
+0x2c1 000961 jam 1 ,mem_24g_ms_config_ch_once 
+0x2c2 000962 arg 0 ,temp 
+0x2c3 000963 call p_g24_ch_calc 
+0x2c4 000964 store 1 ,mem_24g_ms_last_ch 
+0x2c5 000965 rtn 
+:      000967 p_g24_rx_auto_bind_config_kb:
+0x2c6 000968 call p_g24_dongle_bind_kb_payload_cfg 
+0x2c7 000969 fetch 4 ,mem_24g_kb_addr 
+0x2c8 000970 branch p_g24_rx_auto_addr_ch_search ,blank 
+0x2c9 000971 call p_g24_update_addr_and_synccrc8 
+0x2ca 000972 fetch 1 ,mem_24g_kb_config_ch_once 
+0x2cb 000973 call p_g24_kb_config_ch_once ,blank 
+0x2cc 000974 fetch 1 ,mem_24g_kb_last_ch 
+0x2cd 000975 store 1 ,mem_24g_ch 
+0x2ce 000976 fetcht 1 ,mem_rssi_noise_kb_index 
+0x2cf 000977 arg mem_rssi_noise_kb_buffer ,rega 
+0x2d0 000978 call p_rssi_store 
+0x2d1 000979 storet 1 ,mem_rssi_noise_kb_index 
+0x2d2 000980 call p_rssi_average 
+0x2d3 000981 storet 1 ,mem_rssi_noise_kb_avg 
+0x2d4 000982 sub temp ,rssi_thresh_noise ,null 
+0x2d5 000983 nrtn positive 
+0x2d6 000984 fetcht 1 ,mem_24g_kb_ch_number 
+0x2d7 000985 call p_g24_ch_map_size 
+0x2d8 000986 storet 1 ,mem_24g_kb_ch_number 
+0x2d9 000987 store 1 ,mem_24g_kb_last_ch 
+0x2da 000988 rtn 
+:      000990 p_g24_kb_config_ch_once:
+0x2db 000991 jam 1 ,mem_24g_kb_config_ch_once 
+0x2dc 000992 arg 0 ,temp 
+0x2dd 000993 call p_g24_ch_calc 
+0x2de 000994 store 1 ,mem_24g_kb_last_ch 
+0x2df 000995 rtn 
+:      000997 p_g24_rx_auto_bind_config_dongle:
+0x2e0 000998 call p_g24_dongle_bind_ms_payload_cfg 
+0x2e1 000999 fetch 4 ,mem_24g_rx_addr 
+0x2e2 001000 call p_g24_update_addr_and_synccrc8 
+0x2e3 001001 fetch 1 ,mem_24g_dg_config_ch_once 
+0x2e4 001002 call p_g24_dg_config_ch_once ,blank 
+0x2e5 001003 fetch 1 ,mem_24g_dg_last_ch 
+0x2e6 001004 store 1 ,mem_24g_ch 
+0x2e7 001005 fetcht 1 ,mem_rssi_noise_dg_index 
+0x2e8 001006 arg mem_rssi_noise_dg_buffer ,rega 
+0x2e9 001007 call p_rssi_store 
+0x2ea 001008 storet 1 ,mem_rssi_noise_dg_index 
+0x2eb 001009 call p_rssi_average 
+0x2ec 001010 storet 1 ,mem_rssi_noise_dg_avg 
+0x2ed 001011 sub temp ,rssi_thresh_noise ,null 
+0x2ee 001012 nrtn positive 
+0x2ef 001013 fetcht 1 ,mem_24g_dg_ch_number 
+0x2f0 001014 call p_g24_ch_map_size 
+0x2f1 001015 storet 1 ,mem_24g_dg_ch_number 
+0x2f2 001016 store 1 ,mem_24g_dg_last_ch 
+0x2f3 001017 rtn 
+:      001019 p_g24_dg_config_ch_once:
+0x2f4 001020 jam 1 ,mem_24g_dg_config_ch_once 
+0x2f5 001021 fetch 1 ,mem_24g_dg_last_ch 
+0x2f6 001022 store 1 ,mem_24g_ch 
+0x2f7 001023 rtn 
+:      001027 p_g24_read_len_pid_crc:
+0x2f8 001029 fetch 1 ,mem_24g_rxbuf + 1 
+0x2f9 001030 rshift3 pdata ,pdata 
+0x2fa 001031 store 1 ,mem_24g_rxdata_length 
+0x2fb 001033 increase 1 ,pdata 
+0x2fc 001034 arg mem_24g_rxbuf + 1 ,contr 
+0x2fd 001035 iadd contr ,contr 
+0x2fe 001036 ifetch 3 ,contr 
+0x2ff 001037 store 3 ,mem_24g_sta_crc 
+0x300 001039 fetch 1 ,mem_24g_rxbuf + 1 
+0x301 001040 rshift pdata ,pdata 
+0x302 001041 and pdata ,0x03 ,pdata 
+0x303 001042 store 1 ,mem_24g_sta_pid 
+0x304 001043 rtn 
+:      001045 p_g24_transmit_ack:
+0x305 001047 fetch 1 ,mem_24g_rxbuf 
+0x306 001048 store 1 ,mem_24g_data_type 
+0x307 001050 call p_g24_read_len_pid_crc 
+0x308 001052 fetch 1 ,mem_24g_rxbuf + 1 
+0x309 001053 isolate1 bit_ack_24g ,pdata 
+0x30a 001054 branch p_g24tx_no_ack ,true 
+:      001055 p_g24tx_with_ack:
+0x30b 001056 call p_g24_ackpayload_prep 
+0x30c 001057 call p_g24_transmit_prep 
+0x30d 001058 call p_g24_transmit 
+:      001059 p_g24tx_no_ack:
+0x30e 001060 branch p_g24_end_of_packet 
+:      001062 p_g24_ackpayload_prep:
+0x30f 001063 jam 0 ,mem_24g_datalen 
+0x310 001064 fetch 1 ,mem_24g_data_type 
+0x311 001065 beq 0x01 ,p_g24_ackpayload_prep_mouse 
+0x312 001066 beq 0x02 ,p_g24_ackpayload_prep_keyboard 
+:      001067 p_g24_ackpayload_prep_mouse:
+0x313 001068 fetch 1 ,mem_24g_pc_sleep_flag 
+0x314 001069 bbit1 0 ,p_g24_pc_sleep_ackpayload_prep_mouse 
+0x315 001070 branch p_g24_ackpayload_prep_end 
+:      001072 p_g24_clear_pc_sleep_flag:
+0x316 001073 jam 0 ,mem_24g_pc_sleep_flag 
+0x317 001074 rtn 
+:      001077 p_g24_ackpayload_prep_keyboard:
+0x318 001078 fetch 1 ,mem_24g_pc_sleep_flag 
+0x319 001079 bbit1 1 ,p_g24_pc_sleep_ackpayload_prep_keyboard 
+:      001080 p_g24_ackpayload_prep_end:
+0x31a 001081 fetch 1 ,mem_24g_ackpayload_enable 
+0x31b 001082 rtn blank 
+0x31c 001083 beq bind_ackpayload ,p_g24_bind_ackpayload_prep 
+0x31d 001084 beq user_ackpayload ,p_g24_user_ackpayload_prep 
+0x31e 001085 beq kb_led_ackpayload ,p_g24_kb_led_ackpayload_prep 
+0x31f 001086 rtn 
+:      001088 p_g24_pc_sleep_ackpayload_prep_mouse:
+0x320 001089 fetch 1 ,mem_24g_pc_sleep_flag 
+0x321 001090 set0 0 ,pdata 
+0x322 001091 store 1 ,mem_24g_pc_sleep_flag 
+0x323 001092 branch p_g24_pc_sleep_ackpayload_prep 
+:      001094 p_g24_pc_sleep_ackpayload_prep_keyboard:
+0x324 001095 fetch 1 ,mem_24g_pc_sleep_flag 
+0x325 001096 set0 1 ,pdata 
+0x326 001097 store 1 ,mem_24g_pc_sleep_flag 
+:      001098 p_g24_pc_sleep_ackpayload_prep:
+0x327 001099 jam 0x01 ,mem_24g_datalen 
+0x328 001100 setarg 0xff 
+0x329 001101 store 1 ,mem_24g_txbuf 
+0x32a 001102 rtn 
+:      001104 p_g24_bind_ackpayload_prep:
+0x32b 001105 jam 1 ,mem_24g_ackpayload_enable 
+0x32c 001106 call p_g24_dongle_binding_device_check 
+0x32d 001107 nrtn user3 
+0x32e 001108 jam 0x08 ,mem_24g_datalen 
+0x32f 001109 arg 0x08 ,loopcnt 
+0x330 001110 arg mem_24g_bind_payload ,contr 
+0x331 001111 arg mem_24g_txbuf ,contw 
+0x332 001112 branch memcpy 
+:      001114 p_g24_user_ackpayload_prep:
+0x333 001115 call p_g24_queue_read_point 
+0x334 001116 nrtn user 
+0x335 001117 jam 0x1f ,mem_24g_datalen 
+0x336 001118 arg 0x1f ,loopcnt 
+0x337 001119 copy pdata ,contr 
+0x338 001120 arg mem_24g_txbuf ,contw 
+0x339 001121 call memcpy 
+0x33a 001122 fetch 2 ,mem_24g_txbuf + 3 
+0x33b 001123 store 2 ,mem_24g_ota_sta_pid 
+0x33c 001124 rtn 
+:      001126 p_g24_kb_led_ackpayload_prep:
+0x33d 001127 fetch 1 ,mem_24g_rxbuf + 2 
+0x33e 001128 beq 0x01 ,p_g24_bind_ackpayload_prep 
+0x33f 001129 beq 0xff ,p_g24_bind_ackpayload_prep 
+0x340 001132 jam 0 ,mem_usb_tx_win_enable 
+0x341 001133 jam 0x01 ,mem_24g_datalen 
+0x342 001134 arg 0x01 ,loopcnt 
+0x343 001135 arg mem_24g_led_status ,contr 
+0x344 001136 arg mem_24g_txbuf ,contw 
+0x345 001137 branch memcpy 
+:      001140 p_g24_receive_packet_start:
+0x346 001141 call p_g24_receive_transmit_ack 
+0x347 001142 nbranch p_g24_rx_interrupt_clear ,user3 
+0x348 001143 branch p_g24_receive_packet_parse 
+:      001145 p_g24_receive_packet_parse:
+0x349 001146 call p_g24_receive_packet_parse_pid_crc 
+0x34a 001147 nbranch p_g24_rx_interrupt_clear ,user 
+0x34b 001148 fetch 1 ,mem_24g_rxdata_length 
+0x34c 001149 branch p_g24_rx_interrupt_clear ,blank 
+0x34d 001150 increase 2 ,pdata 
+0x34e 001151 iforce loopcnt 
+0x34f 001152 arg mem_24g_rxbuf ,contr 
+0x350 001153 arg mem_24g_rxdata_temp ,contw 
+0x351 001154 call memcpy 
+0x352 001155 jam 0 ,mem_24g_mode_switch 
+0x353 001156 fetch 1 ,mem_24g_pair_mode 
+0x354 001157 call p_g24_enable_nodata_timer ,blank 
+0x355 001158 fetch 1 ,mem_24g_rxdata_temp + 2 
+0x356 001159 beq 0x01 ,p_g24_data_type1 
+0x357 001160 beq 0x02 ,p_g24_data_type2 
+0x358 001161 beq 0xff ,p_g24_data_attemp 
+0x359 001162 branch p_g24_rx_interrupt_clear 
+:      001164 p_g24_receive_packet_parse_pid_crc:
+0x35a 001165 call disable_user 
+0x35b 001166 fetch 1 ,mem_24g_sta_pid 
+0x35c 001167 fetcht 1 ,mem_24g_last_pid 
+0x35d 001168 isub temp ,null 
+0x35e 001169 ncall enable_user ,zero 
+0x35f 001170 fetch 1 ,mem_24g_sta_pid 
+0x360 001171 store 1 ,mem_24g_last_pid 
+0x361 001172 fetch 3 ,mem_24g_sta_crc 
+0x362 001173 fetcht 3 ,mem_24g_last_crc 
+0x363 001174 isub temp ,null 
+0x364 001175 ncall enable_user ,zero 
+0x365 001176 fetch 3 ,mem_24g_sta_crc 
+0x366 001177 store 3 ,mem_24g_last_crc 
+0x367 001178 rtn 
+:      001180 p_g24_data_type1:
+0x368 001181 call p_g24_dongle_binding_mouse_living 
+0x369 001182 call p_g24_ch_timer_reinit 
+0x36a 001183 fetch 1 ,mem_24g_abort_packet 
+0x36b 001184 fetcht 1 ,mem_24g_rxdata_temp 
+0x36c 001185 isolate1 bit_abort ,temp 
+0x36d 001186 setflag true ,0 ,pdata 
+0x36e 001187 store 1 ,mem_24g_abort_packet 
+0x36f 001188 beq 1 ,p_g24_data_attemp_mouse_abort 
+0x370 001189 fetch 1 ,mem_24g_hop_packet 
+0x371 001190 fetcht 1 ,mem_24g_rxdata_temp 
+0x372 001191 isolate1 bit_hop ,temp 
+0x373 001192 setflag true ,0 ,pdata 
+0x374 001193 store 1 ,mem_24g_hop_packet 
+0x375 001195 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x376 001196 beq cmd_ota ,p_g24_ota_process 
+0x377 001198 setarg ms_report_id 
+0x378 001199 store 1 ,mem_usb_mouse_data 
+0x379 001200 fetch 7 ,mem_24g_rxdata_temp + 3 
+0x37a 001201 istore 7 ,contw 
+0x37b 001202 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x37c 001203 ncall p_g24_ms_enable_blank_data_forcibly ,blank 
+0x37d 001204 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x37e 001205 call p_g24_ms_disable_blank_data_forcibly ,blank 
+0x37f 001206 branch g24_data_type1_usbtx_enable 
+:      001208 p_g24_ms_enable_blank_data_forcibly:
+0x380 001209 jam 1 ,mem_24g_ms_blank_data_enable 
+0x381 001210 setarg timer_new_ms_blank_delay 
+0x382 001211 arg timer_new_ms_blank ,queue 
+0x383 001212 branch timer_init 
+:      001213 p_g24_ms_disable_blank_data_forcibly:
+0x384 001214 jam 0 ,mem_24g_ms_blank_data_enable 
+0x385 001215 setarg 0 
+0x386 001216 arg timer_new_ms_blank ,queue 
+0x387 001217 branch timer_init 
+:      001219 p_g24_data_type2:
+0x388 001220 call p_g24_dongle_binding_keyboard_living 
+0x389 001221 fetcht 1 ,mem_24g_rxdata_temp 
+0x38a 001222 isolate1 bit_abort ,temp 
+0x38b 001223 branch p_g24_data_attemp_kbd_abort ,true 
+0x38c 001224 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x38d 001225 beq 0 ,p_g24_data_type2_data1 
+0x38e 001226 beq 2 ,p_g24_data_type2_data3 
+0x38f 001227 beq 3 ,p_g24_data_type2_data2 
+0x390 001228 branch p_g24_rx_interrupt_clear 
+:      001230 p_g24_data_type2_data1:
+0x391 001231 fetch 1 ,mem_24g_rxdata_temp + 5 
+0x392 001232 store 1 ,mem_24g_ackpayload_enable 
+0x393 001233 jam 0 ,mem_24g_rxdata_temp + 5 
+0x394 001234 arg mem_usb_kb_data ,contw 
+0x395 001235 call p_g24_data_type2_copy_data1 
+0x396 001236 fetch 8 ,mem_usb_kb_data 
+0x397 001237 ncall p_g24_kb_enable_blank_data_forcibly ,blank 
+0x398 001238 fetch 8 ,mem_usb_kb_data 
+0x399 001239 call p_g24_kb_disable_blank_data_forcibly ,blank 
+0x39a 001240 fetch 8 ,mem_usb_kb_data 
+0x39b 001241 store 8 ,mem_24g_kb_data_sta_data 
+0x39c 001242 fetcht 8 ,mem_24g_kb_data_last_data 
+0x39d 001243 isub temp ,null 
+0x39e 001244 ncall g24_kb_data_into_ep1_fifo ,zero 
+0x39f 001245 fetch 8 ,mem_24g_kb_data_sta_data 
+0x3a0 001246 store 8 ,mem_24g_kb_data_last_data 
+0x3a1 001247 branch p_g24_rx_interrupt_clear 
+:      001250 p_g24_data_type2_copy_data1:
+0x3a2 001251 arg mem_24g_rxdata_temp + 4 ,contr 
+0x3a3 001252 arg 8 ,loopcnt 
+0x3a4 001253 branch memcpy 
+:      001255 p_g24_kb_enable_blank_data_forcibly:
+0x3a5 001256 jam 1 ,mem_24g_kb_blank_data_enable 
+0x3a6 001257 setarg timer_new_kb_blank_delay 
+0x3a7 001258 arg timer_new_kb_blank ,queue 
+0x3a8 001259 branch timer_init 
+:      001261 p_g24_kb_disable_blank_data_forcibly:
+0x3a9 001262 jam 0 ,mem_24g_kb_blank_data_enable 
+0x3aa 001263 setarg 0 
+0x3ab 001264 arg timer_new_kb_blank ,queue 
+0x3ac 001265 branch timer_init 
+:      001267 p_g24_data_type2_data2:
+0x3ad 001268 arg mem_usb_kb_multikey ,contw 
+0x3ae 001269 call p_g24_data_type2_copy_data2 
+0x3af 001270 fetch 2 ,mem_usb_kb_multikey + 1 
+0x3b0 001271 ncall p_g24_kb_mul_enable_blank_data_forcibly ,blank 
+0x3b1 001272 fetch 2 ,mem_usb_kb_multikey + 1 
+0x3b2 001273 call p_g24_kb_mul_disable_blank_data_forcibly ,blank 
+0x3b3 001274 fetch 3 ,mem_usb_kb_multikey 
+0x3b4 001275 store 3 ,mem_24g_kb_multikey_sta_data 
+0x3b5 001276 fetcht 3 ,mem_24g_kb_multikey_last_data 
+0x3b6 001277 isub temp ,null 
+0x3b7 001278 ncall g24_kb_mul_data_into_ep2_fifo ,zero 
+0x3b8 001279 fetch 3 ,mem_24g_kb_multikey_sta_data 
+0x3b9 001280 store 3 ,mem_24g_kb_multikey_last_data 
+0x3ba 001281 branch p_g24_rx_interrupt_clear 
+:      001283 p_g24_data_type2_copy_data2:
+0x3bb 001284 arg mem_24g_rxdata_temp + 3 ,contr 
+0x3bc 001285 arg 3 ,loopcnt 
+0x3bd 001286 branch memcpy 
+:      001289 p_g24_kb_mul_enable_blank_data_forcibly:
+0x3be 001290 jam 1 ,mem_24g_kb_mul_blank_data_enable 
+0x3bf 001291 setarg timer_new_kb_mul_blank_delay 
+0x3c0 001292 arg timer_new_kb_mul_blank ,queue 
+0x3c1 001293 branch timer_init 
+:      001295 p_g24_kb_mul_disable_blank_data_forcibly:
+0x3c2 001296 jam 0 ,mem_24g_kb_mul_blank_data_enable 
+0x3c3 001297 setarg 0 
+0x3c4 001298 arg timer_new_kb_mul_blank ,queue 
+0x3c5 001299 branch timer_init 
+:      001301 p_g24_data_type2_data3:
+0x3c6 001302 arg mem_usb_kb_system ,contw 
+0x3c7 001303 call p_g24_data_type2_copy_data3 
+0x3c8 001304 fetch 2 ,mem_usb_kb_system 
+0x3c9 001305 store 2 ,mem_usb_kb_system_sta_data 
+0x3ca 001306 fetcht 2 ,mem_usb_kb_system_last_data 
+0x3cb 001307 isub temp ,null 
+0x3cc 001308 ncall p_g24_kb_sys_data_into_ep2_fifo ,zero 
+0x3cd 001309 fetch 2 ,mem_usb_kb_system_sta_data 
+0x3ce 001310 store 2 ,mem_usb_kb_system_last_data 
+0x3cf 001311 branch p_g24_rx_interrupt_clear 
+:      001313 p_g24_data_type2_copy_data3:
+0x3d0 001314 arg mem_24g_rxdata_temp + 3 ,contr 
+0x3d1 001315 arg 2 ,loopcnt 
+0x3d2 001316 branch memcpy 
+:      001319 p_g24_kb_sys_enable_blank_data_forcibly:
+0x3d3 001320 jam 1 ,mem_24g_kb_mul_blank_data_enable 
+0x3d4 001321 setarg timer_new_kb_mul_blank_delay 
+0x3d5 001322 arg timer_new_kb_mul_blank ,queue 
+0x3d6 001323 branch timer_init 
+:      001325 p_g24_kb_sys_disable_blank_data_forcibly:
+0x3d7 001326 jam 0 ,mem_24g_kb_mul_blank_data_enable 
+0x3d8 001327 setarg 0 
+0x3d9 001328 arg timer_new_kb_mul_blank ,queue 
+0x3da 001329 branch timer_init 
+:      001331 p_g24_kb_sys_data_into_ep2_fifo:
+0x3db 001332 jam usb_ep2_systemkey ,mem_usb_ep2_data 
+0x3dc 001333 branch g24_data_type1_usbtx_enable_ep2 
+:      001336 p_g24_data_attemp:
+0x3dd 001337 fetch 1 ,mem_24g_rxdata_temp + 3 
+0x3de 001338 beq datatype_mouse ,p_g24_data_attemp_mouse 
+0x3df 001339 beq datatype_keyboard ,p_g24_data_attemp_kbd 
+0x3e0 001340 rtn 
+:      001341 p_g24_data_attemp_mouse:
+0x3e1 001342 call p_g24_dongle_binding_mouse_living 
+0x3e2 001343 fetch 4 ,mem_24g_rxdata_temp + 4 
+0x3e3 001344 branch p_g24_store_mouse_addr 
+:      001345 p_g24_data_attemp_kbd:
+0x3e4 001346 call p_g24_dongle_binding_keyboard_living 
+0x3e5 001347 fetch 4 ,mem_24g_rxdata_temp + 4 
+0x3e6 001348 branch p_g24_store_kbd_addr 
+:      001349 p_g24_data_attemp_mouse_abort:
+0x3e7 001350 fetch 4 ,mem_24g_rxdata_temp + 10 
+0x3e8 001351 branch p_g24_store_mouse_addr 
+:      001352 p_g24_data_attemp_kbd_abort:
+0x3e9 001353 fetch 4 ,mem_24g_rxdata_temp + 10 
+0x3ea 001354 branch p_g24_store_kbd_addr 
+:      001356 p_g24_ota_process:
+0x3eb 001357 fetch 2 ,mem_24g_rxdata_temp + 5 
+0x3ec 001358 fetcht 2 ,mem_24g_ota_sta_pid 
+0x3ed 001359 isub temp ,null 
+0x3ee 001360 branch p_g24_ota_next_pac ,zero 
+0x3ef 001361 rtn 
+:      001363 p_g24_ota_next_pac:
+0x3f0 001364 fetch 1 ,mem_24g_rxdata_temp + 4 
+0x3f1 001365 beq cmd_ota_exit ,p_g24_ota_exit_process 
+0x3f2 001366 fetch 1 ,mem_queue_ele_num 
+0x3f3 001367 rtn blank 
+0x3f4 001368 setarg mem_queue_read 
+0x3f5 001369 call p_g24_queue_increase 
+0x3f6 001370 fetch 1 ,mem_queue_ele_num 
+0x3f7 001371 increase -1 ,pdata 
+0x3f8 001372 store 1 ,mem_queue_ele_num 
+0x3f9 001373 fetch 1 ,mem_24g_rxdata_temp + 4 
+0x3fa 001374 beq cmd_ota_data ,p_user_defined_queue_buff_free 
+0x3fb 001375 beq cmd_ota_exit ,p_g24_ota_exit_process 
+0x3fc 001376 rtn 
+:      001378 p_g24_ota_exit_process:
+0x3fd 001379 setarg 0 
+0x3fe 001380 store 2 ,mem_24g_ota_sta_pid 
+0x3ff 001381 store 1 ,mem_24g_ackpayload_enable 
+0x400 001382 call p_g24_queue_init 
+0x401 001383 fetch 1 ,mem_24g_rxdata_temp + 7 
+0x402 001384 beq ota_sta_success ,p_g24_ota_exit_success 
+0x403 001385 beq ota_sta_fail ,p_g24_ota_exit_fail 
+0x404 001386 rtn 
+:      001387 p_g24_ota_exit_success:
+0x405 001388 jam 2 ,mem_usb0_get_report_data + 1 
+0x406 001389 branch usb0_data_ready_report_set1 
+:      001390 p_g24_ota_exit_fail:
+0x407 001391 jam 3 ,mem_usb0_get_report_data + 1 
+0x408 001392 branch usb0_data_ready_report_set1 
+:      001395 p_set_freq_tx:
+0x409 001396 storet 1 ,mem_last_freq 
+0x40a 001397 add temp ,0 ,rega 
+0x40b 001398 call rf_write_freq 
+0x40c 001399 setarg param_pll_setup 
+0x40d 001400 call sleep 
+:      001401 p_rf_tx_enable:
+0x40e 001402 jam 0x1 ,rfen_adc 
+0x40f 001403 jam 0x3c ,rfen_rx 
+0x410 001404 jam 0xe0 ,rfen_tx 
+0x411 001405 nop 10 
+0x412 001406 jam 0x01 ,rfen_mdm 
+0x413 001407 jam 0x3d ,rfen_mdm 
+0x414 001408 nop 10 
+0x415 001409 jam 0xb7 ,rfen_sn 
+0x416 001410 nop 10 
+0x417 001411 jam 0x7d ,rfen_mdm 
+0x418 001412 fetch 1 ,mem_tx_power 
+0x419 001417 beq tx_power_f5db ,p_set_tx_power_f5db 
+0x41a 001419 branch p_set_tx_power_5db 
+:      001442 p_set_tx_power_5db:
+0x41b 001444 jam 0xba ,0x894b 
+0x41c 001445 jam 0xd0 ,0x8955 
+0x41d 001446 jam 0xe0 ,0x8956 
+0x41e 001447 jam 0x88 ,0x8957 
+0x41f 001448 jam 0x3c ,0x8958 
+0x420 001449 jam 0x10 ,0x8959 
+0x421 001450 branch set_tx_power_5db 
+:      001462 p_set_tx_power_f5db:
+0x422 001464 jam 0xba ,0x894b 
+0x423 001465 jam 0xd0 ,0x8955 
+0x424 001466 jam 0xc0 ,0x8956 
+0x425 001467 jam 0x88 ,0x8957 
+0x426 001468 jam 0x6c ,0x8958 
+0x427 001469 jam 0x10 ,0x8959 
+0x428 001470 branch set_tx_power_f5db 
+:      001492 p_soft_reset:
+0x429 001493 clear_stack 
+0x42a 001494 hfetch 1 ,core_config 
+0x42b 001495 set1 watchdog_bit ,pdata 
+0x42c 001496 hstore 1 ,core_config 
+0x42d 001497 call spi_ncs_gpio_init 
+0x42e 001498 jam 0x86 ,0x895b 
+0x42f 001499 jam 0xa0 ,0x895c 
+0x430 001500 branch soft_reset + 3 
+:      001502 p_shutdown_radio:
+0x431 001503 force 8 ,radio_ctrl 
+0x432 001504 branch shutdown_radio + 1 
+:      001507 p_rssi_noise:
+0x433 001508 call save_rssi 
+0x434 001509 rtn blank 
+0x435 001510 fetcht 1 ,mem_rssi_noise_index 
+0x436 001511 arg mem_rssi_noise_buffer ,rega 
+0x437 001512 call p_rssi_store 
+0x438 001513 storet 1 ,mem_rssi_noise_index 
+0x439 001514 rtn 
+:      001516 p_rssi_store:
+0x43a 001517 copy rega ,pdata 
+0x43b 001518 iadd temp ,contw 
+0x43c 001519 fetch 1 ,mem_rssi 
+0x43d 001520 istore 1 ,contw 
+0x43e 001521 increase 1 ,temp 
+0x43f 001522 and_into rssi_buf_len_noise ,temp 
+0x440 001523 rtn 
+:      001524 p_rssi_average:
+0x441 001525 arg 0 ,temp 
+0x442 001526 arg rssi_buf_len_noise + 1 ,loopcnt 
+0x443 001527 copy rega ,contr 
+0x444 001528 branch rssi_average_loop 
+0x445 001529 rtn 
+:      001531 p_g24_update_addr_and_synccrc8:
+0x446 001532 store 4 ,mem_24g_addr 
+:      001535 p_g24_syncword_crc8:
+0x447 001536 arg 0 ,rega 
+0x448 001537 arg 4 ,loopcnt 
+0x449 001538 arg mem_24g_addr ,contr 
+:      001539 p_g24_syncword_crc8_loop:
+0x44a 001540 ifetch 1 ,contr 
+0x44b 001541 iadd rega ,rega 
+0x44c 001542 loop p_g24_syncword_crc8_loop 
+0x44d 001543 copy rega ,pdata 
+0x44e 001544 store 2 ,mem_24g_syncword 
+0x44f 001545 fetch 1 ,mem_24g_syncword 
+0x450 001546 fetcht 1 ,mem_24g_syncword + 1 
+0x451 001547 iadd temp ,pdata 
+0x452 001548 store 1 ,mem_24g_syncword_crc8 
+0x453 001549 rtn 
+:      001552 p_g24_transmit_prep:
+0x454 001554 fetch 1 ,mem_24g_datalen 
+0x455 001555 increase 2 ,pdata 
+0x456 001556 store 1 ,mem_24g_txlen 
+0x457 001558 fetch 1 ,mem_24g_data_type 
+0x458 001559 store 1 ,mem_24g_txpayload 
+0x459 001561 fetch 1 ,mem_24g_datalen 
+0x45a 001562 lshift3 pdata ,pdata 
+0x45b 001563 fetcht 1 ,mem_24g_pid 
+0x45c 001564 and temp ,0x03 ,temp 
+0x45d 001565 lshift temp ,temp 
+0x45e 001566 ior temp ,pdata 
+0x45f 001567 fetcht 1 ,mem_24g_no_ack 
+0x460 001568 iadd temp ,pdata 
+0x461 001569 istore 1 ,contw 
+0x462 001571 fetch 1 ,mem_24g_datalen 
+0x463 001572 iforce loopcnt 
+0x464 001573 arg mem_24g_txbuf ,contr 
+0x465 001574 branch memcpy 
+:      001576 p_g24_ch:
+0x466 001577 fetcht 1 ,mem_24g_current_ch_number 
+0x467 001578 call p_g24_ch_map_size 
+0x468 001579 storet 1 ,mem_24g_current_ch_number 
+0x469 001580 rtn 
+:      001582 p_g24_ch_map_size:
+0x46a 001583 call p_g24_ch_calc 
+0x46b 001584 increase 1 ,temp 
+0x46c 001585 and_into 3 ,temp 
+0x46d 001586 rtn 
+:      001588 p_g24_ch_calc:
+0x46e 001589 fetch 1 ,mem_24g_addr 
+0x46f 001590 and_into 0x03 ,pdata 
+0x470 001591 mul32 pdata ,4 ,rega 
+0x471 001592 setarg mem_24g_ch_map1 
+0x472 001593 iadd rega ,pdata 
+0x473 001594 iadd temp ,contr 
+0x474 001595 ifetch 1 ,contr 
+0x475 001596 store 1 ,mem_24g_ch 
+0x476 001597 rtn 
+:      001599 p_g24_prep:
+0x477 001600 disable enable_crc 
+0x478 001601 disable enable_white 
+0x479 001602 setarg 0x555555 
+0x47a 001603 iforce crc24_init 
+0x47b 001604 fetch 1 ,mem_24g_ch 
+0x47c 001605 reverse pdata ,temp 
+0x47d 001606 set1 1 ,temp 
+0x47e 001607 rshift temp ,white_init 
+0x47f 001608 rtn 
+:      001610 p_g24_receive_packet:
+0x480 001611 call le_enable 
+0x481 001612 fetch 4 ,mem_24g_addr 
+0x482 001613 iforce access 
+0x483 001614 call set_sync_on 
+0x484 001615 fetcht 1 ,mem_24g_ch 
+0x485 001616 call set_freq_rx 
+0x486 001617 setarg param_pll_setup 
+0x487 001618 call sleep 
+0x488 001619 call rf_rx_enable 
+:      001620 p_g24_receive_rxon:
+0x489 001621 call p_g24_prep 
+0x48a 001622 disable user3 
+0x48b 001623 enable decode_fec0 
+0x48c 001624 enable is_rx 
+0x48d 001625 disable is_tx 
+0x48e 001626 enable swfine 
+0x48f 001627 fetch 2 ,mem_24g_rx_window 
+0x490 001628 iforce stop_watch 
+0x491 001629 correlate null ,timeout 
+0x492 001630 nbranch p_g24_sync_timeout ,sync 
+0x493 001631 disable decode_fec0 
+0x494 001632 enable decode_fec1 
+0x495 001633 enable enable_white 
+0x496 001634 enable enable_crc 
+0x497 001635 parse demod ,bucket ,8 
+0x498 001636 rshift3 pwindow ,pdata 
+0x499 001637 store 1 ,mem_24g_get_syncword_crc8 
+0x49a 001638 fetcht 1 ,mem_24g_syncword_crc8 
+0x49b 001639 isub temp ,null 
+0x49c 001640 nbranch p_g24_end_of_packet ,zero 
+0x49d 001641 parse demod ,bucket ,8 
+0x49e 001642 rshift3 pwindow ,pdata 
+0x49f 001643 store 1 ,mem_24g_rxbuf 
+0x4a0 001644 fetch 1 ,mem_24g_mode 
+0x4a1 001645 sub pdata ,rx_24g ,null 
+0x4a2 001646 branch p_g24_receive_skip ,zero 
+0x4a3 001647 fetch 1 ,mem_24g_rxbuf 
+0x4a4 001648 fetcht 1 ,mem_24g_data_type 
+0x4a5 001649 icompare bits_data ,temp 
+0x4a6 001650 nbranch p_g24_end_of_packet ,true 
+:      001651 p_g24_receive_skip:
+0x4a7 001652 parse demod ,bucket ,8 
+0x4a8 001653 rshift3 pwindow ,pdata 
+0x4a9 001654 istore 1 ,contw 
+0x4aa 001655 rshift3 pdata ,pdata 
+0x4ab 001656 and pdata ,0x1f ,loopcnt 
+0x4ac 001657 branch p_g24rx_nopayload ,zero 
+:      001658 p_g24rx_loop:
+0x4ad 001659 parse demod ,bucket ,8 
+0x4ae 001660 rshift3 pwindow ,pdata 
+0x4af 001661 istore 1 ,contw 
+0x4b0 001662 loop p_g24rx_loop 
+:      001663 p_g24rx_nopayload:
+0x4b1 001664 parse demod ,bucket ,24 
+0x4b2 001665 enable swfine 
+0x4b3 001666 arg param_sifs ,stop_watch 
+0x4b4 001667 rshift32 pdata ,pdata 
+0x4b5 001668 rshift16 pdata ,pdata 
+0x4b6 001669 istore 3 ,contw 
+0x4b7 001670 disable decode_fec1 
+0x4b8 001671 call save_rssi 
+0x4b9 001672 branch p_g24_end_of_packet ,crc_failed 
+0x4ba 001673 enable user3 
+0x4bb 001674 fetch 1 ,mem_last_freq 
+0x4bc 001675 add pdata ,0 ,rega 
+0x4bd 001676 call rf_write_freq 
+0x4be 001677 disable decode_fec0 
+0x4bf 001678 call set_sync_on 
+0x4c0 001679 rtn 
+0x4c1 001680 rtn 
+:      001682 p_g24_end_of_packet:
+0x4c2 001683 disable encode_fec1 
+0x4c3 001684 disable decode_fec1 
+0x4c4 001685 branch end_of_packet 
+:      001687 p_g24_sync_timeout:
+0x4c5 001688 call p_rssi_noise 
+0x4c6 001689 branch p_g24_end_of_packet 
+:      001691 p_g24_set_freq_tx:
+0x4c7 001692 call set_sync_on 
+0x4c8 001693 fetcht 1 ,mem_24g_ch 
+0x4c9 001694 branch set_freq_tx 
+:      001696 p_g24_transmit:
+0x4ca 001697 call le_enable 
+0x4cb 001698 fetch 4 ,mem_24g_addr 
+0x4cc 001699 iforce access 
+0x4cd 001700 call p_g24_prep 
+0x4ce 001701 call p_g24_set_freq_tx 
+0x4cf 001702 set1 txgfsk ,radio_ctrl 
+0x4d0 001703 enable encode_fec0 
+0x4d1 001704 enable is_tx 
+0x4d2 001705 disable is_rx 
+0x4d3 001706 rshift16 access ,pdata 
+0x4d4 001707 rshift8 pdata ,pdata 
+0x4d5 001708 rshift4 pdata ,pdata 
+0x4d6 001709 inject mod ,40 
+0x4d7 001710 disable encode_fec0 
+0x4d8 001711 enable encode_fec1 
+0x4d9 001712 enable enable_white 
+0x4da 001713 enable enable_crc 
+0x4db 001714 fetch 1 ,mem_24g_syncword_crc8 
+0x4dc 001715 inject mod ,8 
+0x4dd 001716 fetch 1 ,mem_24g_txlen 
+0x4de 001717 iforce loopcnt 
+0x4df 001718 arg mem_24g_txpayload ,contr 
+:      001719 p_g24tr_loop:
+0x4e0 001720 ifetch 1 ,contr 
+0x4e1 001721 inject mod ,8 
+0x4e2 001722 loop p_g24tr_loop 
+0x4e3 001723 fetch 1 ,mem_rssi_hex 
+0x4e4 001724 inject mod ,8 
+0x4e5 001725 enable enable_parity 
+0x4e6 001726 inject mod ,24 
+0x4e7 001727 disable enable_parity 
+0x4e8 001728 until null ,tx_clear 
+0x4e9 001729 nop 100 
+0x4ea 001730 disable encode_fec0 
+0x4eb 001731 disable encode_fec1 
+0x4ec 001732 rtn 
Index: output/bt_program23.meta
===================================================================
--- /branch/USB/dongle_sdk/output/bt_program23.meta	(revision 0)
+++ /branch/USB/dongle_sdk/output/bt_program23.meta	(working copy)
@@ -0,0 +1,1735 @@
+define REVD
+define ROMCODE
+define PATCH
+INCLUDE "bt_format"
+org 0x0000		// start from patch ram address start
+define SIMPLE_PAIRING
+
+define DONGLE
+//define MOUSE
+
+	bbit1 8,pf_patch_ext
+	beq patch10_5,p_shutdown_radio
+	beq patch11_1,p_set_freq_tx
+	beq patch00_0,p_soft_reset
+	beq patch11_6,p_save_rssi
+	beq patch18_4,p_app_init
+	beq patch1e_7,p_usb_init
+	beq patch1f_0,p_usb_status1
+	beq patch1f_4,p_usb_tx
+	branch loop
+pf_patch_ext:
+	branch loop
+
+
+p_save_rssi:
+	hfetch 2,rf_afc_d2a
+	rshift4 pdata,pdata
+	rshift3 pdata,pdata
+	sub pdata,0,pdata
+	and_into 0xff,pdata
+	store 1,mem_rssi_hex
+	branch save_rssi+6
+
+p_usb_init:
+	jam 0,core_usb_driver	//DRV to usb transceiver:0-3//3(max)
+	call usb_init_param
+	call p_usb_new_vid_pid
+	call p_usb_hid_icon
+	branch usb_init+2
+
+p_usb_new_vid_pid:
+	fetch 1,mem_usb_new_vid_pid_value
+	rtn blank
+	fetch 1,mem_dongle_kb_bind_flag
+	beq DONGLE_KB_BIND_SUCCESS,p_usb_new_vid_pid_for_suit
+p_usb_new_vid_pid_for_mouse_only_auto_pair:	
+	fetch 4,mem_usb_new_vid_pid_value+1
+	store 4,mem_devicedesc+9
+	rtn
+p_usb_new_vid_pid_for_suit:
+	fetch 4,mem_usb_new_vid_pid_value+5
+	store 4,mem_devicedesc+9
+	rtn
+
+p_usb_hid_icon:
+	fetch 1,mem_dongle_kb_bind_flag
+	beq DONGLE_KB_BIND_SUCCESS,p_new_kb_hidreportdesc
+	//hid report map
+	setarg mem_hidreportdesc_kb_temp
+	store 2,mem_hidreportdesc_kb
+	setarg mem_hidreportdesc_m_temp
+	store 2,mem_hidreportdesc_m
+	//confdesc
+	jam 0x1a,mem_confdesc+26//hid_descriptor--keyboard length
+	jam 0xa3,mem_confdesc+51//hid_descriptor--mouse length
+	rtn
+
+
+p_usb_tx:
+	fetch 1,mem_usb_tx_enable
+	rtn blank
+	fetch 1,mem_usb_tx_wait
+	nbranch usb_inwake_state_tx_dispose,blank
+	fetch 1,mem_usb_device_enumeration_endflag
+	branch usb_tx_fifo_release,blank
+	fetch 1,mem_usb_state
+	beq USB_SLEEP,usb_windows_wakeup
+	bne USB_CONNECTED,usb_tx_fifo_release
+	fetch 1,mem_usb_clear_remote_wakeup
+	nbranch usb_tx_fifo_release,blank
+	call usb_tx_data_ep1
+	branch p_usb_tx_data_ep2
+
+
+p_usb_tx_data_ep2:
+	fetch 1,mem_usb_tx_enable
+	rtnbit0 2
+	fetch 1,mem_usb_tx_wait
+	rtnbit1 2
+	fetch 1,mem_usb_tx_enable
+	set0 2,pdata
+	store 1,mem_usb_tx_enable
+	fetch 1,mem_usb_ep2_data
+	rtn blank
+	beq USB_EP2_MS,usb_tx_ms_data
+	beq USB_EP2_MULTIKEY,usb_tx_kb_multikey_data
+	beq USB_EP2_SYSTEMKEY,p_usb_tx_kb_systemkey_data
+	branch assert
+
+p_usb_tx_kb_systemkey_data:
+	jam 0,mem_usb_ep2_data
+	arg 2,loopcnt
+	arg mem_usb_kb_system,contr
+	branch usb_tx_ep2
+
+
+p_new_kb_hidreportdesc:
+	setarg mem_hidreportdesc_kb_new_temp
+	store 2,mem_hidreportdesc_kb
+	rtn
+
+p_usb_status1:
+	jam 0x11,core_usb_status
+	hfetch 1,core_usb_ep_len
+	store 1,mem_usb_read_len
+	copy pdata,loopcnt
+	branch p_usb_rx_no_data,blank
+	arg mem_usb_setup,contw
+	call usb_rx_read
+	fetch 1,mem_usb_read_len
+	beq 0x01,p_usb_out_one_byte	// HUAWEI pad led status
+	sub pdata,7,null
+	rtn positive
+p_usb_class_type:	
+	fetch 1,mem_usb_setup_bmRequestType
+	and_into 0x80,pdata
+	beq OUT_DEVICE,p_usb_out_device
+	branch usb_class_type+2
+
+p_usb_rx_no_data:
+	fetch 1,mem_usb_status
+	bbit1 USB_STATUS_SETUP,p_usb_class_type
+	rtn
+
+p_usb_out_one_byte:
+	fetch 1,mem_usb_setup
+	rtnbit1 7	// OUT_DEVICE
+	call p_usb_get_led_status
+	branch usb0_reply_zerolen
+
+	
+p_usb_out_device:
+	fetch 1,mem_usb_setup_bmRequestType
+	rshift4 pdata,pdata
+	rshift pdata,pdata
+	and_into 0x03,pdata
+	beq STANDARD_REQ,p_usb_out_standard_req
+	beq CLASS_REQ,p_usb_out_class_req
+	branch usb_out_device+4
+
+p_usb_out_standard_req:
+	fetch 1,mem_usb_setup_bRequest
+	beq SET_FEATURE,p_usb0_request_set_feature
+	branch usb_out_standard_req+1
+
+p_usb0_request_set_feature:
+	fetch 1,mem_usb_setup_bLength
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLengthH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bmRequestType
+	beq OUT_DEVICE,p_usb0_request_set_feature_out_device
+	branch usb0_request_set_feature+5
+
+
+p_usb0_request_set_feature_out_device:
+	fetch 1,mem_usb_setup_bValue
+	bne DEVICE_REMOTE_WAKEUP,usb0_force_stall
+	jam 3,mem_24g_pc_sleep_flag
+	branch usb0_request_set_feature_out_device+2
+	
+p_usb_out_class_req:
+	fetch 1,mem_usb_setup_bRequest
+	beq SET_REPORT,p_usb_set_report
+	branch usb_out_class_req+1
+p_usb_set_report:
+	jam 1,mem_usb0_get_set_report
+	call usb_set_report_resume_judge
+	fetch 2,mem_usb_setup_bValue
+	store 2,mem_usb_setup_bValue_temp
+	nop 15000	//delay 1ms
+	hfetch 1,core_usb_ep_len
+	ncall p_usb_set_report_rxdata,blank
+	fetch 1,mem_usb_tx_win_enable
+	ncall p_usb_get_output_data,blank
+	branch usb_set_report+4
+p_usb_set_report_rxdata:
+	copy pdata,loopcnt
+	arg mem_usb0_setup,contw
+	branch usb_rx_read
+
+p_usb_get_output_data:
+	fetch 1,mem_usb0_setup
+p_usb_get_led_status:
+	store 1,mem_24g_led_status
+	jam 0,mem_usb_tx_win_enable
+	jam KB_LED_ACKPAYLOAD,mem_24g_ackpayload_enable
+	rtn
+
+p_app_init:
+	jam 0,mem_dongle_bind_device_living
+	jam G24_BIND_MODE_DELAY,mem_24g_bind_delay_count		//G24_BIND_MODE_DELAY*80ms
+	call enable_authrom
+	fetch 4,mem_lap
+	store 4,mem_24g_rx_addr	//update mem_24g_rx_addr
+	fetcht 1,mem_eeprom_wp_gpio
+	call gpio_config_output
+	call p_dongle_init
+	call p_g24_queue_init
+	call p_dongle_iic_init
+	call p_dongle_firmware_version_store
+	fetch 1,mem_24g_pair_mode
+	beq 0x00,p_dongle_auto_bind
+	beq 0x01,p_dongle_pc_bind
+	beq 0x0f,p_dongle_all_powerful
+	rtn
+
+p_dongle_firmware_version_store:
+	call p_dongle_set_firmware_version_eeprom
+	branch iicd_write_protect_eep_data
+
+p_dongle_iic_init:
+	call iic_init_390k
+	call p_dongle_set_kb_bind_eeprom
+	branch iicd_read_eep_data
+
+p_dongle_set_kb_bind_eeprom:
+	arg mem_dongle_kb_bind_flag,rega
+	arg DONGLE_KB_BIND_EEPROM_OFFECT,regb
+	arg 1,temp
+	rtn
+
+p_dongle_set_firmware_version_eeprom:
+	arg mem_firmware_version,rega
+	arg DONGLE_FIRMWARE_VERSION_OFFECT,regb
+	arg 3,temp
+	rtn
+
+p_dongle_init:
+	fetch 1,mem_tx_power
+	store 1,mem_tx_power_temp
+	arg 0x80,loopcnt
+	arg mem_rssi_noise_buffer,contw
+	call memset0
+	branch usb_init
+
+p_dongle_all_powerful:
+	call p_dongle_check_mode
+p_dongle_all_powerful_loop:
+	call p_g24_dongle_work_mode
+	call p_dongle_usb_dispatch
+	branch p_dongle_all_powerful_loop
+
+p_dongle_pc_bind:
+	call p_dongle_check_mode
+p_dongle_pc_bind_loop:	
+	call p_g24_dongle_work_mode
+	call p_g24_dongle_bind_mode
+	call p_dongle_usb_dispatch
+	branch p_dongle_pc_bind_loop
+
+p_dongle_check_mode:
+	jam 0,mem_24g_ackpayload_enable
+p_dongle_work_mode_enable:
+	jam DONGLE_WORK,mem_dongle_work_mode
+	jam CLEAR_INIT,mem_dongle_mode_init	
+	rtn
+
+p_g24_dongle_work_mode:
+	fetch 1,mem_dongle_work_mode
+	rtnne DONGLE_WORK
+p_g24_dongle_work_mode_start:	
+	call p_g24_dongle_work_init
+	call p_g24_ch_process
+	call p_g24_receive_packet_start
+	branch p_g24_blank_data_process
+
+p_g24_dongle_work_init:
+	fetch 1,mem_dongle_mode_init
+	rtnbit1 DONGLE_WORK
+	set1 DONGLE_WORK,pdata
+	store 1,mem_dongle_mode_init
+	fetch 1,mem_tx_power_temp
+	store 1,mem_tx_power
+	jam 0,mem_24g_ackpayload_enable
+	jam 0,mem_usb_tx_enable
+	jam 1,mem_24g_abort_packet
+	jam 0,mem_24g_pid
+	fetch 4,mem_24g_rx_addr
+	call p_g24_update_addr_and_synccrc8
+	call p_g24_ch
+	branch p_g24_rx_interrupt_clear
+
+p_g24_ch_process:
+	fetch 1,mem_24g_abort_packet
+	beq 1,p_g24_noise_rssi
+	fetch 1,mem_24g_hop_packet
+	beq 1,p_g24_ch_receive_hop_pac
+	fetcht 4,mem_24g_hop_btclk
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall g24_timer_timeout,positive
+	copy pdata,regb
+	fetch 4,mem_24g_hop_btclk
+	fetcht 1,mem_24g_hop_interval
+	iadd temp,temp
+	copy regb,pdata
+	isub temp,null
+	nrtn positive
+	set0 28,pdata
+	store 4,mem_24g_hop_btclk
+	jam 1,mem_24g_abort_packet
+	branch p_g24_ch
+
+p_g24_ch_receive_hop_pac:
+	jam 0,mem_24g_hop_packet
+	branch p_g24_ch
+
+p_g24_ch_timer_reinit:
+	copy clkn_bt,pdata
+	store 4,mem_24g_hop_btclk
+	jam 0,mem_24g_rf_laststa
+	rtn
+
+p_g24_noise_rssi:
+	arg mem_rssi_noise_buffer,rega
+	call p_rssi_average
+	storet 1,mem_rssi_noise_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive
+	branch p_g24_ch
+
+p_g24_blank_data_process:
+	call p_g24_ms_blank_data
+	call p_g24_kb_blank_data
+	branch p_g24_kb_mul_blank_data
+
+p_g24_ms_blank_data:
+	fetch 1,mem_24g_ms_blank_data_enable
+	rtn blank
+	arg TIMER_NEW_MS_BLANK,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_24g_ms_blank_data_enable
+	branch g24_ms_blank_data_2usb
+
+p_g24_kb_blank_data:
+	fetch 1,mem_24g_kb_blank_data_enable
+	rtn blank
+	arg TIMER_NEW_KB_BLANK,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_24g_kb_blank_data_enable
+	call g24_kb_blank_data_2usb
+	fetch 8,mem_usb_kb_data
+	store 8,mem_24g_kb_data_last_data
+	rtn
+
+p_g24_kb_mul_blank_data:
+	fetch 1,mem_24g_kb_mul_blank_data_enable
+	rtn blank
+	arg TIMER_NEW_KB_MUL_BLANK,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_24g_kb_mul_blank_data_enable
+	call g24_kb_mul_blank_data_2usb
+	fetch 3,mem_usb_kb_multikey
+	store 3,mem_24g_kb_multikey_last_data
+	rtn
+
+p_g24_dongle_bind_mode:
+	fetch 1,mem_dongle_work_mode
+	rtnne DONGLE_BIND
+	call p_g24_dongle_bind_init
+	branch p_g24_dongle_bind_data_process
+
+p_g24_dongle_bind_init:
+	fetch 1,mem_dongle_mode_init
+	rtnbit1 DONGLE_BIND
+	set1 DONGLE_BIND,pdata
+	store 1,mem_dongle_mode_init
+	setarg 0
+	store 3,mem_dongle_ms_bind_step
+	jam TX_POWER_f5DB,mem_tx_power
+	jam 1,mem_24g_ackpayload_enable
+	jam 0,mem_24g_pid
+	jam G24_PAIR_CH,mem_24g_ch	//2480MHz
+	fetch 4,mem_24g_paring_addr	//Address
+	branch p_g24_update_addr_and_synccrc8
+
+p_g24_dongle_bind_data_process:
+	call p_g24_receive_transmit_ack
+	nbranch p_g24_rx_interrupt_clear,user3
+	jam G24_WORK_MODE_DELAY,mem_24g_work_delay_count
+	arg mem_24g_rxbuf,contr
+	arg mem_24g_rxdata_temp,contw
+	arg 8,loopcnt
+	call memcpy
+	fetch 1,mem_24g_rxdata_temp+2
+	beq DATATYPE_BIND,p_g24_dongle_bind_first_step	//bind step 1
+	beq DATATYPE_CONFIG,p_g24_dongle_bind_second_step
+	beq DATATYPE_OK,p_g24_dongle_bind_third_step
+	beq 0xff,p_g24_data_attemp_bind
+p_g24_rx_interrupt_clear:
+	arg mem_24g_rxbuf,contw
+	arg 66,loopcnt
+	branch clear_mem
+
+p_g24_dongle_binding_device_check:	//works on auto pair
+	fetch 1,mem_dongle_work_mode
+	rtnne DONGLE_BIND
+	fetch 1,mem_24g_pair_mode
+	nrtn blank	
+	fetch 1,mem_24g_rxbuf+3
+	beq BIND_MOUSE,p_g24_dongle_binding_mouse_status	//bit0
+	beq BIND_KEYBOARD,p_g24_dongle_binding_keyboard_status	//bit1
+	rtn
+p_g24_dongle_binding_mouse_status:
+	fetch 1,mem_dongle_bind_device_living
+	rtnbit0 0
+disable_user3:
+	disable user3
+	rtn 
+p_g24_dongle_binding_keyboard_status:
+	fetch 1,mem_dongle_bind_device_living
+	rtnbit0 1
+	branch disable_user3
+
+p_g24_dongle_binding_mouse_living:
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	fetch 1,mem_dongle_bind_device_living
+	or_into 0x01,pdata
+	store 1,mem_dongle_bind_device_living
+	rtn
+
+p_g24_dongle_binding_keyboard_living:
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	fetch 1,mem_dongle_bind_device_living
+	or_into 0x02,pdata
+	store 1,mem_dongle_bind_device_living
+	rtn
+	
+
+p_g24_dongle_bind_first_step:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq BIND_MOUSE,p_g24_dongle_bind_first_step_mouse
+	beq BIND_KEYBOARD,p_g24_dongle_bind_first_step_keyboard
+	rtn
+p_g24_dongle_bind_first_step_mouse:
+	jam 1,mem_dongle_ms_bind_step
+p_g24_dongle_bind_ms_payload_cfg:
+	jam DATATYPE_MOUSE,mem_24g_bind_payload
+p_g24_dongle_bind_payload_cfg:	
+	jam 0x80,mem_24g_bind_payload+1
+	fetch 6,mem_24g_rx_addr
+	store 6,mem_24g_bind_payload+2
+	rtn
+
+p_g24_dongle_bind_first_step_keyboard:
+	jam 1,mem_dongle_kb_bind_step
+p_g24_dongle_bind_kb_payload_cfg:
+	jam DATATYPE_KEYBOARD,mem_24g_bind_payload
+	branch p_g24_dongle_bind_payload_cfg
+
+p_g24_dongle_bind_second_step:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq BIND_MOUSE,p_g24_dongle_bind_second_step_mouse
+	beq BIND_KEYBOARD,p_g24_dongle_bind_second_step_keyboard
+	rtn
+p_g24_dongle_bind_second_step_mouse:
+	call p_g24_dongle_bind_ms_payload_cfg
+	fetch 1,mem_dongle_ms_bind_step
+	beq 1,p_g24_dongle_ms_bind_step_set2
+	rtn
+p_g24_dongle_ms_bind_step_set2:
+	jam 2,mem_dongle_ms_bind_step
+	rtn
+p_g24_dongle_bind_second_step_keyboard:
+	call p_g24_dongle_bind_kb_payload_cfg	
+	fetch 1,mem_dongle_kb_bind_step
+	beq 1,p_g24_dongle_kb_bind_step_set2
+	rtn
+p_g24_dongle_kb_bind_step_set2:
+	jam 2,mem_dongle_kb_bind_step
+	rtn
+
+p_g24_dongle_bind_third_step:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq BIND_MOUSE,p_g24_dongle_bind_third_step_mouse
+	beq BIND_KEYBOARD,p_g24_dongle_bind_third_step_keyboard
+	rtn
+p_g24_dongle_bind_third_step_mouse:
+	fetch 1,mem_dongle_ms_bind_step
+	beq 2,p_g24_dongle_ms_bind_step_success
+	rtn
+p_g24_dongle_ms_bind_step_success:
+	call p_g24_dongle_binding_mouse_living		//works on auto pair only
+	fetch 1,mem_dongle_bind_device_status
+	or_into 0x01,pdata
+	store 1,mem_dongle_bind_device_status
+p_g24_dongle_bind_exit:	
+	setarg 0
+	store 2,mem_dongle_ms_bind_step
+	branch p_g24_rx_interrupt_clear
+	
+p_g24_dongle_bind_third_step_keyboard:
+	fetch 1,mem_dongle_kb_bind_step
+	bne 0,p_g24_dongle_kb_bind_step_success
+	rtn
+p_g24_dongle_kb_bind_step_success:
+	call p_g24_dongle_binding_keyboard_living	//works on auto pair only
+	fetch 1,mem_dongle_bind_device_status
+	or_into 0x02,pdata
+	store 1,mem_dongle_bind_device_status
+	call p_g24_dongle_bind_exit
+p_g24_dongle_store_kb_bind_flag:
+	fetch 1,mem_dongle_kb_bind_flag
+	rtneq  DONGLE_KB_BIND_SUCCESS
+	jam DONGLE_KB_BIND_SUCCESS,mem_dongle_kb_bind_flag
+	call p_dongle_set_kb_bind_eeprom
+	call iicd_write_protect_eep_data
+	branch soft_reset_chip
+
+p_g24_data_attemp_bind:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq DATATYPE_MOUSE,p_g24_data_attemp_mouse_bind
+	beq DATATYPE_KEYBOARD,p_g24_data_attemp_kbd_bind
+	rtn
+p_g24_data_attemp_mouse_bind:
+	fetch 4,mem_24g_rxdata_temp+4
+p_g24_store_mouse_addr:
+	store 4,mem_24g_ms_addr
+	rtn
+p_g24_data_attemp_kbd_bind:
+	fetch 4,mem_24g_rxdata_temp+4
+p_g24_store_kbd_addr:	
+	store 4,mem_24g_kb_addr
+	rtn
+
+p_g24_queue_init:
+	jam 0,mem_queue_ele_num
+	setarg mem_queue_start
+	store 2, mem_queue_read
+	store 2, mem_queue_write
+	rtn
+	
+p_g24_queue_put:
+	arg 0x1f,loopcnt
+	arg mem_usb0_set_report_data,temp
+	fetch 2, mem_queue_write
+	copy pdata,contw
+	copy temp,contr
+	call memcpy
+	fetch 1,mem_queue_ele_num
+	increase 1,pdata
+	store 1,mem_queue_ele_num
+	setarg mem_queue_write
+p_g24_queue_increase:
+	copy pdata,rega
+	arg mem_queue_end,temp
+	ifetch 2,rega
+	increase QUEUE_ELE_LENGTH,pdata
+	isub temp,null
+	nbranch p_g24_queue_put_end,positive
+	setarg mem_queue_start
+p_g24_queue_put_end:
+	istore 2,rega
+	rtn
+
+p_g24_queue_read_point:
+	disable user
+	fetch 1,mem_queue_ele_num
+	rtn blank
+	enable user
+	fetch 2,mem_queue_read
+	rtn
+
+p_dongle_usb_dispatch:
+	jam 0xff,core_write_watchdog
+	fetch 1,mem_usb_remote_wakeup
+	call p_g24_clear_pc_sleep_flag,blank
+	call usb_isr
+	fetch 1,mem_usb0_get_set_report
+	rtn blank
+	jam 0,mem_usb0_get_set_report
+	fetch 2,mem_usb_setup_bValue_temp
+	arg PC_SET_REPORT,temp
+	isub temp,null
+	nrtn zero
+	//get usb host command
+	fetch 1,mem_usb0_set_report_data
+	rtnne PC_REPORT_ID
+	fetch 1,mem_usb0_set_report_data+1
+	beq COMMAND_MODE,p_dongle_dispose_cmd_mode
+	beq COMMAND_BIND,p_dongle_dispose_cmd_bind
+	beq COMMAND_CURRENT_PROJECT,dongle_dispose_cmd_current_project
+	beq COMMAND_CURRENT_MODE,p_dongle_dispose_cmd_current_mode
+	beq COMMAND_CURRENT_FW_VERSION,p_dongle_dispose_cmd_current_fw_version
+	beq COMMAND_USER_DEFINED,p_dongle_dispose_cmd_user_defined
+	branch usb0_data_ready_report_set0
+
+p_dongle_dispose_cmd_bind:
+	fetch 1,mem_usb0_set_report_data+2
+	beq COM_BIND_GET,p_dongle_dispose_cmd_get_bind
+	beq COM_BIND_EXIT,p_dongle_dispose_cmd_exit_bind
+	beq COM_READ_MODE,dongle_dispose_cmd_read_mode
+	branch usb0_data_ready_report_set0
+p_dongle_dispose_cmd_get_bind:
+	fetch 1,mem_dongle_bind_device_status
+	store 1,mem_usb0_get_report_data+1
+	branch usb0_data_ready_report_set1
+p_dongle_dispose_cmd_exit_bind:
+	call p_dongle_work_mode_enable
+	branch p_dongle_dispose_cmd_get_bind
+ 
+p_dongle_dispose_cmd_mode:
+	fetch 1,mem_usb0_set_report_data+2
+	beq COM_MODE_BIND,p_dongle_enter_bind_mode
+	branch usb0_data_ready_report_set0
+p_dongle_enter_bind_mode:
+	call p_g24_bind_mode_enable
+	branch usb0_data_ready_report_set1
+
+p_dongle_dispose_cmd_current_mode:
+	fetch 1,mem_dongle_work_mode
+	beq DONGLE_WORK,p_dongle_dispose_in_work_mode
+	beq DONGLE_BIND,dongle_dispose_in_bind_mode
+	rtn
+p_dongle_dispose_in_work_mode:
+	jam COMMAND_MODE,mem_usb0_get_report_data+1
+	branch usb0_data_ready_report_set1
+	
+p_dongle_dispose_cmd_current_fw_version:
+	jam FW_VERSION3,mem_usb0_get_report_data+4
+	branch dongle_dispose_cmd_current_fw_version
+
+p_dongle_dispose_cmd_user_defined:
+	fetch 1,mem_usb0_set_report_data+2
+	beq 0xff,soft_reset_chip
+p_dongle_dispose_cmd_ota:
+	jam 2,mem_24g_ackpayload_enable
+	fetch 1,mem_queue_ele_num
+	beq QUEUE_ELE_COUNT,p_user_defined_queue_buff_full
+	call p_g24_queue_put
+	fetch 1,mem_queue_ele_num
+	beq QUEUE_ELE_COUNT,p_user_defined_queue_buff_full
+p_user_defined_queue_buff_free:
+	jam 0,mem_usb0_get_report_data+1
+	branch usb0_data_ready_report_set1
+
+p_user_defined_queue_buff_full:
+	jam 1,mem_usb0_get_report_data+1
+	branch usb0_data_ready_report_set1
+
+p_dongle_auto_bind:
+	call p_g24_mode_switch_init
+p_dongle_auto_bind_loop:
+	call p_g24_mode_switch		//work or bind
+	call p_g24_mode_switch_2	//search or bind
+	call p_g24_dongle_work_mode_auto
+	call p_g24_dongle_bind_mode_auto
+	call p_g24_dongle_search_mode_auto
+	call p_dongle_usb_dispatch
+	branch p_dongle_auto_bind_loop
+
+p_g24_dongle_work_mode_auto:
+	fetch 1,mem_dongle_work_mode
+	rtnne DONGLE_WORK
+	call p_g24_dongle_work_mode_start
+	branch p_g24_rx_nodata_process
+
+p_g24_dongle_bind_mode_auto:
+	fetch 1,mem_dongle_work_mode
+	rtnne DONGLE_BIND
+	call p_g24_dongle_bind_init
+	call p_g24_dongle_bind_data_process
+	fetch 1,mem_dongle_bind_device_status
+	rtn blank
+	jam 0,mem_24g_mode_switch
+	call p_dongle_check_mode
+	call p_g24_enable_nodata_timer
+	branch p_g24_timer_init
+
+p_g24_timer_check:
+	call disable_user
+	fetcht 4,mem_24g_tx_btclk
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall g24_timer_timeout,positive
+	copy pdata,regb
+	fetch 4,mem_24g_tx_btclk
+	fetcht 1,mem_24g_interval
+	iadd temp,temp
+	copy regb,pdata
+	isub temp,null
+	nrtn positive
+	set0 28,pdata
+	store 4,mem_24g_tx_btclk
+	branch enable_user
+	
+p_g24_mode_switch_init:
+	jam 1,mem_24g_mode_switch
+	jam 0,mem_24g_time_slice
+	jam 0xff,mem_24g_interval
+p_g24_timer_init:
+	setarg 0
+	store 4,mem_24g_tx_btclk
+	rtn
+	
+p_g24_mode_switch:
+	fetch 1,mem_24g_mode_switch
+	rtn blank
+	call p_g24_timer_check
+	nrtn user	//80ms
+
+	call p_g24_bind_mode_delay
+	call p_g24_work_mode_delay
+
+	fetch 1,mem_24g_time_slice
+	increase 1,pdata
+	and_into 1,pdata
+	store 1,mem_24g_time_slice
+	beq 0,p_g24_mode_switch_work
+	beq 1,p_g24_mode_switch_bind
+	rtn
+
+
+p_g24_work_mode_delay:
+	fetch 1,mem_24g_work_delay_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_24g_work_delay_count
+	rtn
+
+p_g24_mode_switch_work:
+	fetch 1,mem_24g_work_delay_count
+	nbranch p_g24_bind_mode_enable,blank
+	branch p_dongle_check_mode
+
+p_g24_bind_mode_delay:
+	fetch 1,mem_24g_bind_delay_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_24g_bind_delay_count
+	rtn
+
+p_g24_mode_switch_bind:
+	fetch 1,mem_24g_bind_delay_count	//after power on 10s,enable bind
+	nbranch p_dongle_check_mode,blank
+p_g24_bind_mode_enable:
+	jam DONGLE_BIND,mem_dongle_work_mode
+	jam CLEAR_INIT,mem_dongle_mode_init
+	rtn
+
+
+p_g24_mode_switch_init_2:
+	fetch 1,mem_24g_mode_switch_exit_2
+	call p_g24_mode_switch_start_2,blank
+	fetch 1,mem_24g_mode_switch_2_init
+	rtnbit1 0
+	set1 0,pdata
+	store 1,mem_24g_mode_switch_2_init
+	jam 1,mem_24g_mode_switch_2
+	jam 0,mem_24g_time_slice_2
+	setarg 0
+	store 2,mem_24g_mode_switch_cnt_2
+	jam 0x60,mem_24g_interval	//30ms
+	branch p_g24_timer_init
+
+p_g24_mode_switch_2:
+	fetch 1,mem_dongle_work_mode
+	rtneq DONGLE_WORK
+	fetch 1,mem_24g_mode_switch_exit_2
+	nrtn blank
+	fetch 1,mem_24g_mode_switch_2
+	rtn blank
+	call p_g24_timer_check
+	nrtn user
+
+	fetch 2,mem_24g_mode_switch_cnt_2
+	increase 1,pdata
+	store 2,mem_24g_mode_switch_cnt_2
+	arg 0x7d0,temp	//1min
+	isub temp,null
+	branch p_g24_mode_switch_exit_2,positive
+
+	call p_g24_work_mode_delay
+	
+	fetch 1,mem_24g_time_slice_2
+	increase 1,pdata
+	and_into 1,pdata
+	store 1,mem_24g_time_slice_2
+	beq 0,p_g24_mode_switch_search
+	beq 1,p_g24_bind_mode_enable
+	rtn
+
+p_g24_mode_switch_search:
+	fetch 1,mem_24g_work_delay_count
+	nbranch p_g24_bind_mode_enable,blank
+	branch p_g24_search_mode_enable
+
+p_g24_mode_switch_exit_2:
+	jam 1,mem_24g_mode_switch_exit_2
+	branch p_g24_search_mode_enable
+
+p_g24_mode_switch_stop_2:
+	jam 0,mem_24g_mode_switch_2
+	rtn
+p_g24_mode_switch_start_2:
+	jam 1,mem_24g_mode_switch_2
+	rtn	
+
+p_g24_enable_nodata_timer:
+	jam 1,mem_24g_nodata_timer_enable
+	branch g24_enable_nodata_timer_init
+
+p_g24_rx_nodata_process:
+	fetch 1,mem_24g_ackpayload_enable
+	rtneq 2
+	fetch 1,mem_24g_nodata_timer_enable
+	rtn blank
+	arg TIMER_NODATA,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_24g_nodata_timer_enable
+
+	jam 0,mem_24g_bind_delay_count
+	jam 0,mem_24g_work_delay_count
+
+	call p_g24_mode_switch_init_2	//works on auto pair only
+
+p_g24_search_mode_enable:
+	//no data for more than 100ms,then go to search
+	jam DONGLE_SEARCH,mem_dongle_work_mode
+	jam CLEAR_INIT,mem_dongle_mode_init
+	branch p_g24_rx_interrupt_clear
+
+p_g24_receive_transmit_ack:
+	call p_g24_rx_interrupt_clear
+	call p_g24_receive_packet
+	nrtn user3
+	branch p_g24_transmit_ack
+
+
+p_g24_dongle_search_mode_auto:
+	fetch 1,mem_dongle_work_mode
+	rtnne DONGLE_SEARCH
+	call p_g24_dongle_search_mode_init
+	call p_g24_rx_auto_addr_ch_search
+	call p_g24_receive_transmit_ack
+	nbranch p_g24_rx_interrupt_clear,user3
+	//dongle addr,then parse rxdata
+	call p_g24_rx_addr_check
+	call p_g24_receive_packet_parse,zero
+	//receive data,then go to paired
+
+	fetch 1,mem_24g_abort_packet
+	call p_g24_mode_switch_stop_2,blank	//works on auto pair only
+	
+	jam DONGLE_WORK,mem_dongle_work_mode
+	fetch 1,mem_dongle_mode_init
+	set1 DONGLE_WORK,pdata
+	store 1,mem_dongle_mode_init
+
+	fetch 1,mem_24g_ackpayload_enable
+	sub pdata,2,null
+	ncall p_g24_ackpayload_disable,zero
+
+	call p_g24_rx_interrupt_clear
+	call p_g24_enable_nodata_timer
+	call p_g24_rx_addr_check
+	branch p_g24_dg_ch_num_reinit,zero
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_kb_addr
+	isub temp,null
+	branch p_g24_kb_ch_num_reinit,zero		
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_ms_addr
+	isub temp,null
+	branch p_g24_ms_ch_num_reinit,zero
+	rtn
+
+p_g24_ackpayload_disable:
+	jam 0,mem_24g_ackpayload_enable
+	rtn
+
+p_g24_dg_ch_num_reinit:
+	fetch 1,mem_24g_dg_ch_number
+p_g24_current_ch_num_reinit:
+	store 1,mem_24g_current_ch_number
+	rtn
+p_g24_kb_ch_num_reinit:
+	fetch 1,mem_24g_kb_ch_number
+	branch p_g24_current_ch_num_reinit
+p_g24_ms_ch_num_reinit:
+	fetch 1,mem_24g_ms_ch_number
+	branch p_g24_current_ch_num_reinit
+
+p_g24_dongle_search_mode_init:
+	fetch 1,mem_dongle_mode_init
+	rtnbit1 DONGLE_SEARCH
+	set1 DONGLE_SEARCH,pdata
+	store 1,mem_dongle_mode_init
+	jam 0,mem_24g_time_slice
+	jam 1,mem_24g_ackpayload_enable
+	setarg 0
+	store 3,mem_rssi_noise_dg_index
+	store 7,mem_24g_dg_config_ch_once
+	call p_g24_rx_addr_check
+	nrtn zero
+	fetch 1,mem_24g_current_ch_number
+	store 1,mem_24g_dg_ch_number
+	fetch 1,mem_24g_ch
+	store 1,mem_24g_dg_last_ch
+	rtn
+
+p_g24_rx_addr_check:
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_rx_addr
+	isub temp,null
+	rtn
+
+p_g24_rx_auto_addr_ch_search:
+	fetch 1,mem_24g_time_slice
+	increase 1,pdata
+	and_into 3,pdata
+	store 1,mem_24g_time_slice
+	//pairing address and channel come first
+	beq 0,p_g24_rx_auto_bind_config_kb
+	beq 1,p_g24_rx_auto_bind_config_dongle
+	beq 2,p_g24_rx_auto_bind_config_mouse
+	beq 3,p_g24_rx_auto_bind_config_dongle
+	rtn
+
+p_g24_rx_auto_bind_config_mouse:
+	call p_g24_dongle_bind_ms_payload_cfg
+	fetch 4,mem_24g_ms_addr
+	branch p_g24_rx_auto_addr_ch_search,blank
+	call p_g24_update_addr_and_synccrc8
+	fetch 1,mem_24g_ms_config_ch_once
+	call p_g24_ms_config_ch_once,blank
+	fetch 1,mem_24g_ms_last_ch
+	store 1,mem_24g_ch
+	fetcht 1,mem_rssi_noise_ms_index
+	arg mem_rssi_noise_ms_buffer,rega
+	call p_rssi_store
+	storet 1,mem_rssi_noise_ms_index
+	call p_rssi_average
+	storet 1,mem_rssi_noise_ms_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive
+	fetcht 1,mem_24g_ms_ch_number
+	call p_g24_ch_map_size
+	storet 1,mem_24g_ms_ch_number
+	store 1,mem_24g_ms_last_ch
+	rtn
+
+p_g24_ms_config_ch_once:
+	jam 1,mem_24g_ms_config_ch_once
+	arg 0,temp
+	call p_g24_ch_calc
+	store 1,mem_24g_ms_last_ch
+	rtn
+	
+p_g24_rx_auto_bind_config_kb:
+	call p_g24_dongle_bind_kb_payload_cfg
+	fetch 4,mem_24g_kb_addr
+	branch p_g24_rx_auto_addr_ch_search,blank
+	call p_g24_update_addr_and_synccrc8
+	fetch 1,mem_24g_kb_config_ch_once
+	call p_g24_kb_config_ch_once,blank
+	fetch 1,mem_24g_kb_last_ch
+	store 1,mem_24g_ch	
+	fetcht 1,mem_rssi_noise_kb_index
+	arg mem_rssi_noise_kb_buffer,rega
+	call p_rssi_store
+	storet 1,mem_rssi_noise_kb_index
+	call p_rssi_average
+	storet 1,mem_rssi_noise_kb_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive
+	fetcht 1,mem_24g_kb_ch_number
+	call p_g24_ch_map_size
+	storet 1,mem_24g_kb_ch_number
+	store 1,mem_24g_kb_last_ch
+	rtn
+
+p_g24_kb_config_ch_once:
+	jam 1,mem_24g_kb_config_ch_once
+	arg 0,temp
+	call p_g24_ch_calc
+	store 1,mem_24g_kb_last_ch
+	rtn	
+
+p_g24_rx_auto_bind_config_dongle:
+	call p_g24_dongle_bind_ms_payload_cfg
+	fetch 4,mem_24g_rx_addr
+	call p_g24_update_addr_and_synccrc8	
+	fetch 1,mem_24g_dg_config_ch_once
+	call p_g24_dg_config_ch_once,blank
+	fetch 1,mem_24g_dg_last_ch
+	store 1,mem_24g_ch
+	fetcht 1,mem_rssi_noise_dg_index
+	arg mem_rssi_noise_dg_buffer,rega
+	call p_rssi_store
+	storet 1,mem_rssi_noise_dg_index
+	call p_rssi_average
+	storet 1,mem_rssi_noise_dg_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive
+	fetcht 1,mem_24g_dg_ch_number
+	call p_g24_ch_map_size
+	storet 1,mem_24g_dg_ch_number
+	store 1,mem_24g_dg_last_ch
+	rtn
+
+p_g24_dg_config_ch_once:
+	jam 1,mem_24g_dg_config_ch_once
+	fetch 1,mem_24g_dg_last_ch
+	store 1,mem_24g_ch
+	rtn
+
+
+
+p_g24_read_len_pid_crc:
+//read control
+	fetch 1,mem_24g_rxbuf+1
+	rshift3 pdata,pdata
+	store 1,mem_24g_rxdata_length
+//get crc
+	increase 1,pdata
+	arg mem_24g_rxbuf+1,contr
+	iadd contr,contr
+	ifetch 3,contr
+	store 3,mem_24g_sta_crc
+//read pid
+	fetch 1,mem_24g_rxbuf+1
+	rshift pdata,pdata
+	and pdata,0x03,pdata
+	store 1,mem_24g_sta_pid
+	rtn
+
+p_g24_transmit_ack:
+//data type
+	fetch 1,mem_24g_rxbuf
+	store 1,mem_24g_data_type
+//read len pid crc
+	call p_g24_read_len_pid_crc
+//read ack
+	fetch 1,mem_24g_rxbuf+1
+	isolate1 bit_ack_24g,pdata
+	branch p_g24tx_no_ack,true
+p_g24tx_with_ack:
+	call p_g24_ackpayload_prep
+	call p_g24_transmit_prep
+	call p_g24_transmit
+p_g24tx_no_ack:
+	branch p_g24_end_of_packet
+
+p_g24_ackpayload_prep:
+	jam 0,mem_24g_datalen
+	fetch 1,mem_24g_data_type
+	beq 0x01,p_g24_ackpayload_prep_mouse
+	beq 0x02,p_g24_ackpayload_prep_keyboard
+p_g24_ackpayload_prep_mouse:
+	fetch 1,mem_24g_pc_sleep_flag
+	bbit1 0,p_g24_pc_sleep_ackpayload_prep_mouse
+	branch p_g24_ackpayload_prep_end
+
+p_g24_clear_pc_sleep_flag:
+	jam 0,mem_24g_pc_sleep_flag
+	rtn
+
+
+p_g24_ackpayload_prep_keyboard:
+	fetch 1,mem_24g_pc_sleep_flag
+	bbit1 1,p_g24_pc_sleep_ackpayload_prep_keyboard
+p_g24_ackpayload_prep_end:
+	fetch 1,mem_24g_ackpayload_enable
+	rtn blank
+	beq BIND_ACKPAYLOAD,p_g24_bind_ackpayload_prep
+	beq USER_ACKPAYLOAD,p_g24_user_ackpayload_prep
+	beq KB_LED_ACKPAYLOAD,p_g24_kb_led_ackpayload_prep
+	rtn
+
+p_g24_pc_sleep_ackpayload_prep_mouse:
+	fetch 1,mem_24g_pc_sleep_flag
+	set0 0,pdata
+	store 1,mem_24g_pc_sleep_flag
+	branch p_g24_pc_sleep_ackpayload_prep
+
+p_g24_pc_sleep_ackpayload_prep_keyboard:
+	fetch 1,mem_24g_pc_sleep_flag
+	set0 1,pdata
+	store 1,mem_24g_pc_sleep_flag
+p_g24_pc_sleep_ackpayload_prep:
+	jam 0x01,mem_24g_datalen
+	setarg 0xff
+	store 1,mem_24g_txbuf
+	rtn
+
+p_g24_bind_ackpayload_prep:
+	jam 1,mem_24g_ackpayload_enable
+	call p_g24_dongle_binding_device_check	//works on auto pair only
+	nrtn user3
+	jam 0x08,mem_24g_datalen
+	arg 0x08,loopcnt
+	arg mem_24g_bind_payload,contr
+	arg mem_24g_txbuf,contw
+	branch memcpy
+
+p_g24_user_ackpayload_prep:
+	call p_g24_queue_read_point
+	nrtn user
+	jam 0x1f,mem_24g_datalen
+	arg 0x1f,loopcnt
+	copy pdata,contr
+	arg mem_24g_txbuf,contw
+	call memcpy
+	fetch 2,mem_24g_txbuf+3	//pac id
+	store 2,mem_24g_ota_sta_pid
+	rtn
+
+p_g24_kb_led_ackpayload_prep:
+	fetch 1,mem_24g_rxbuf+2
+	beq 0x01,p_g24_bind_ackpayload_prep
+	beq 0xff,p_g24_bind_ackpayload_prep
+	
+	//jam 0,mem_24g_ackpayload_enable
+	jam 0,mem_usb_tx_win_enable
+	jam 0x01,mem_24g_datalen
+	arg 0x01,loopcnt
+	arg mem_24g_led_status,contr
+	arg mem_24g_txbuf,contw
+	branch memcpy
+
+
+p_g24_receive_packet_start:
+	call p_g24_receive_transmit_ack
+	nbranch p_g24_rx_interrupt_clear,user3
+	branch p_g24_receive_packet_parse
+
+p_g24_receive_packet_parse:
+	call p_g24_receive_packet_parse_pid_crc
+	nbranch p_g24_rx_interrupt_clear,user
+	fetch 1,mem_24g_rxdata_length
+	branch p_g24_rx_interrupt_clear,blank
+	increase 2,pdata
+	iforce loopcnt
+	arg mem_24g_rxbuf,contr
+	arg mem_24g_rxdata_temp,contw
+	call memcpy
+	jam 0,mem_24g_mode_switch
+	fetch 1,mem_24g_pair_mode
+	call p_g24_enable_nodata_timer,blank
+	fetch 1,mem_24g_rxdata_temp+2
+	beq 0x01,p_g24_data_type1	//mouse
+	beq 0x02,p_g24_data_type2	//keyboard
+	beq 0xff,p_g24_data_attemp	//reconn packet
+	branch p_g24_rx_interrupt_clear
+
+p_g24_receive_packet_parse_pid_crc:
+	call disable_user
+	fetch 1,mem_24g_sta_pid
+	fetcht 1,mem_24g_last_pid
+	isub temp,null
+	ncall enable_user,zero
+	fetch 1,mem_24g_sta_pid
+	store 1,mem_24g_last_pid
+	fetch 3,mem_24g_sta_crc
+	fetcht 3,mem_24g_last_crc
+	isub temp,null
+	ncall enable_user,zero
+	fetch 3,mem_24g_sta_crc
+	store 3,mem_24g_last_crc
+	rtn
+
+p_g24_data_type1:
+	call p_g24_dongle_binding_mouse_living	//works on auto pair only
+	call p_g24_ch_timer_reinit
+	fetch 1,mem_24g_abort_packet
+	fetcht 1,mem_24g_rxdata_temp
+	isolate1 bit_abort,temp
+	setflag true,0,pdata
+	store 1,mem_24g_abort_packet
+	beq 1,p_g24_data_attemp_mouse_abort
+	fetch 1,mem_24g_hop_packet
+	fetcht 1,mem_24g_rxdata_temp
+	isolate1 bit_hop,temp
+	setflag true,0,pdata
+	store 1,mem_24g_hop_packet
+
+	fetch 1,mem_24g_rxdata_temp+3	//OTA
+	beq CMD_OTA,p_g24_ota_process
+	
+	setarg MS_REPORT_ID
+	store 1,mem_usb_mouse_data	//report id
+	fetch 7,mem_24g_rxdata_temp+3	//key
+	istore 7,contw
+	fetch 1,mem_24g_rxdata_temp+3	//key
+	ncall p_g24_ms_enable_blank_data_forcibly,blank//get kb data
+	fetch 1,mem_24g_rxdata_temp+3	//key
+	call p_g24_ms_disable_blank_data_forcibly,blank
+	branch g24_data_type1_usbtx_enable
+
+p_g24_ms_enable_blank_data_forcibly:
+	jam 1,mem_24g_ms_blank_data_enable
+	setarg TIMER_NEW_MS_BLANK_DELAY
+	arg TIMER_NEW_MS_BLANK,queue
+	branch timer_init
+p_g24_ms_disable_blank_data_forcibly:
+	jam 0,mem_24g_ms_blank_data_enable
+	setarg 0
+	arg TIMER_NEW_MS_BLANK,queue
+	branch timer_init
+
+p_g24_data_type2:
+	call p_g24_dongle_binding_keyboard_living
+	fetcht 1,mem_24g_rxdata_temp
+	isolate1 bit_abort,temp
+	branch p_g24_data_attemp_kbd_abort,true
+	fetch 1,mem_24g_rxdata_temp+3
+	beq 0,p_g24_data_type2_data1	//normal key
+	beq 2,p_g24_data_type2_data3 	//system key
+	beq 3,p_g24_data_type2_data2	//multikey
+	branch p_g24_rx_interrupt_clear
+
+p_g24_data_type2_data1:
+	fetch 1,mem_24g_rxdata_temp+5
+	store 1,mem_24g_ackpayload_enable
+	jam 0,mem_24g_rxdata_temp+5
+	arg mem_usb_kb_data,contw
+	call p_g24_data_type2_copy_data1
+	fetch 8,mem_usb_kb_data
+	ncall p_g24_kb_enable_blank_data_forcibly,blank//get kb data
+	fetch 8,mem_usb_kb_data	
+	call p_g24_kb_disable_blank_data_forcibly,blank
+	fetch 8,mem_usb_kb_data
+	store 8,mem_24g_kb_data_sta_data
+	fetcht 8,mem_24g_kb_data_last_data
+	isub temp,null
+	ncall g24_kb_data_into_ep1_fifo,zero
+	fetch 8,mem_24g_kb_data_sta_data
+	store 8,mem_24g_kb_data_last_data
+	branch p_g24_rx_interrupt_clear
+
+
+p_g24_data_type2_copy_data1:
+	arg mem_24g_rxdata_temp+4,contr
+	arg 8,loopcnt
+	branch memcpy
+
+p_g24_kb_enable_blank_data_forcibly:
+	jam 1,mem_24g_kb_blank_data_enable
+	setarg TIMER_NEW_KB_BLANK_DELAY
+	arg TIMER_NEW_KB_BLANK,queue
+	branch timer_init
+
+p_g24_kb_disable_blank_data_forcibly:
+	jam 0,mem_24g_kb_blank_data_enable
+	setarg 0
+	arg TIMER_NEW_KB_BLANK,queue
+	branch timer_init
+
+p_g24_data_type2_data2:
+	arg mem_usb_kb_multikey,contw
+	call p_g24_data_type2_copy_data2
+	fetch 2,mem_usb_kb_multikey+1
+	ncall p_g24_kb_mul_enable_blank_data_forcibly,blank//get multikey data
+	fetch 2,mem_usb_kb_multikey+1
+	call p_g24_kb_mul_disable_blank_data_forcibly,blank
+	fetch 3,mem_usb_kb_multikey
+	store 3,mem_24g_kb_multikey_sta_data
+	fetcht 3,mem_24g_kb_multikey_last_data
+	isub temp,null
+	ncall g24_kb_mul_data_into_ep2_fifo,zero
+	fetch 3,mem_24g_kb_multikey_sta_data
+	store 3,mem_24g_kb_multikey_last_data
+	branch p_g24_rx_interrupt_clear
+
+p_g24_data_type2_copy_data2:
+	arg mem_24g_rxdata_temp+3,contr
+	arg 3,loopcnt
+	branch memcpy
+
+
+p_g24_kb_mul_enable_blank_data_forcibly:
+	jam 1,mem_24g_kb_mul_blank_data_enable
+	setarg TIMER_NEW_KB_MUL_BLANK_DELAY
+	arg TIMER_NEW_KB_MUL_BLANK,queue
+	branch timer_init
+	
+p_g24_kb_mul_disable_blank_data_forcibly:
+	jam 0,mem_24g_kb_mul_blank_data_enable
+	setarg 0
+	arg TIMER_NEW_KB_MUL_BLANK,queue
+	branch timer_init
+
+p_g24_data_type2_data3:
+	arg mem_usb_kb_system,contw
+	call p_g24_data_type2_copy_data3
+	fetch 2,mem_usb_kb_system
+	store 2,mem_usb_kb_system_sta_data
+	fetcht 2,mem_usb_kb_system_last_data
+	isub temp,null
+	ncall p_g24_kb_sys_data_into_ep2_fifo,zero
+	fetch 2,mem_usb_kb_system_sta_data
+	store 2,mem_usb_kb_system_last_data
+	branch p_g24_rx_interrupt_clear
+
+p_g24_data_type2_copy_data3:
+	arg mem_24g_rxdata_temp+3,contr
+	arg 2,loopcnt
+	branch memcpy
+
+
+p_g24_kb_sys_enable_blank_data_forcibly:
+	jam 1,mem_24g_kb_mul_blank_data_enable
+	setarg TIMER_NEW_KB_MUL_BLANK_DELAY
+	arg TIMER_NEW_KB_MUL_BLANK,queue
+	branch timer_init
+	
+p_g24_kb_sys_disable_blank_data_forcibly:
+	jam 0,mem_24g_kb_mul_blank_data_enable
+	setarg 0
+	arg TIMER_NEW_KB_MUL_BLANK,queue
+	branch timer_init
+
+p_g24_kb_sys_data_into_ep2_fifo:
+	jam USB_EP2_SYSTEMKEY,mem_usb_ep2_data
+	branch g24_data_type1_usbtx_enable_ep2
+
+	
+p_g24_data_attemp:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq DATATYPE_MOUSE,p_g24_data_attemp_mouse
+	beq DATATYPE_KEYBOARD,p_g24_data_attemp_kbd
+	rtn
+p_g24_data_attemp_mouse:
+	call p_g24_dongle_binding_mouse_living		//works on auto pair only
+	fetch 4,mem_24g_rxdata_temp+4
+	branch p_g24_store_mouse_addr
+p_g24_data_attemp_kbd:
+	call p_g24_dongle_binding_keyboard_living	//works on auto pair only
+	fetch 4,mem_24g_rxdata_temp+4
+	branch p_g24_store_kbd_addr
+p_g24_data_attemp_mouse_abort:
+	fetch 4,mem_24g_rxdata_temp+10
+	branch p_g24_store_mouse_addr
+p_g24_data_attemp_kbd_abort:
+	fetch 4,mem_24g_rxdata_temp+10
+	branch p_g24_store_kbd_addr
+
+p_g24_ota_process:
+	fetch 2,mem_24g_rxdata_temp+5	//ackpayload pid
+	fetcht 2,mem_24g_ota_sta_pid
+	isub temp,null
+	branch p_g24_ota_next_pac,zero
+	rtn
+	
+p_g24_ota_next_pac:
+	fetch 1,mem_24g_rxdata_temp+4	//OTA TYPE
+	beq CMD_OTA_EXIT,p_g24_ota_exit_process
+	fetch 1,mem_queue_ele_num
+	rtn blank	
+	setarg mem_queue_read
+	call p_g24_queue_increase
+	fetch 1,mem_queue_ele_num
+	increase -1,pdata
+	store 1,mem_queue_ele_num
+	fetch 1,mem_24g_rxdata_temp+4	//OTA TYPE
+	beq CMD_OTA_DATA,p_user_defined_queue_buff_free
+	beq CMD_OTA_EXIT,p_g24_ota_exit_process
+	rtn
+
+p_g24_ota_exit_process:
+	setarg 0
+	store 2,mem_24g_ota_sta_pid
+	store 1,mem_24g_ackpayload_enable
+	call p_g24_queue_init
+	fetch 1,mem_24g_rxdata_temp+7	//ackpayload pid
+	beq OTA_STA_SUCCESS,p_g24_ota_exit_success
+	beq OTA_STA_FAIL,p_g24_ota_exit_fail
+	rtn
+p_g24_ota_exit_success:
+	jam 2,mem_usb0_get_report_data+1
+	branch usb0_data_ready_report_set1
+p_g24_ota_exit_fail:
+	jam 3,mem_usb0_get_report_data+1
+	branch usb0_data_ready_report_set1
+
+
+p_set_freq_tx:
+	storet 1,mem_last_freq
+	add temp,0,rega			/* index to frequency */
+	call rf_write_freq
+	setarg param_pll_setup	//128us
+	call sleep
+p_rf_tx_enable:
+	jam 0x1,rfen_adc
+	jam 0x3c,rfen_rx
+	jam 0xe0,rfen_tx
+	nop 10 /* wait LDOs to turn ON*/
+	jam 0x01, rfen_mdm
+	jam 0x3d, rfen_mdm
+	nop 10 /* wait tx blocks to turn ON*/
+	jam 0xb7,rfen_sn
+	nop 10 /* wait tx lo buffer to turn ON*/
+	jam 0x7d, rfen_mdm
+	fetch 1,mem_tx_power
+//	beq TX_POWER_0DB,p_set_tx_power_0db
+//	beq TX_POWER_3DB,p_set_tx_power_3db	
+//	beq TX_POWER_5DB,p_set_tx_power_5db
+//	beq TX_POWER_f3DB,p_set_tx_power_f3db	
+	beq TX_POWER_f5DB,p_set_tx_power_f5db
+//	beq TX_POWER_PAIR,p_set_tx_power_pair
+	branch p_set_tx_power_5db
+/*
+p_set_tx_power_0db:
+	call p_rx_low_sens
+	jam 0xba,0x894b
+	jam 0xd0,0x8955
+	jam 0xe0,0x8956
+	jam 0x88,0x8957
+	jam 0x6c,0x8958
+	jam 0x10,0x8959
+	branch set_tx_power_0db
+*/	
+/*
+p_set_tx_power_3db:
+	call p_rx_high_sens
+	jam 0xba,0x894b
+	jam 0xd0,0x8955
+	jam 0xe0,0x8956
+	jam 0x88,0x8957
+	jam 0x3c,0x8958
+	jam 0x10,0x8959
+	branch set_tx_power_3db
+*/	
+p_set_tx_power_5db:
+//	call p_rx_high_sens
+	jam 0xba,0x894b
+	jam 0xd0,0x8955
+	jam 0xe0,0x8956
+	jam 0x88,0x8957
+	jam 0x3c,0x8958
+	jam 0x10,0x8959
+	branch set_tx_power_5db
+/*
+p_set_tx_power_f3db:
+	call p_rx_low_sens
+	jam 0xba,0x894b
+	jam 0xd0,0x8955
+	jam 0xc0,0x8956
+	jam 0x88,0x8957
+	jam 0x6c,0x8958
+	jam 0x10,0x8959
+	branch set_tx_power_f3db
+*/	
+p_set_tx_power_f5db:
+//	call p_rx_low_sens
+	jam 0xba,0x894b
+	jam 0xd0,0x8955
+	jam 0xc0,0x8956
+	jam 0x88,0x8957
+	jam 0x6c,0x8958
+	jam 0x10,0x8959
+	branch set_tx_power_f5db
+/*
+p_rx_low_sens:
+	jam 0x5b,0x894c
+	jam 0x96,0x894d
+	jam 0x2c,0x894e 
+	jam 0x46,0x894f
+	rtn
+
+p_rx_high_sens:
+	jam 0xfb,0x894c 
+	jam 0xef,0x894d
+	jam 0xec,0x894e 
+	jam 0x5e,0x894f
+	rtn
+		
+p_set_tx_power_pair:	//50-100cm distance
+	jam 0xba,0x894b
+ 	jam 0xc2,0x8956
+ 	jam 0xd0,0x8955
+	rtn
+*/	
+p_soft_reset:
+	clear_stack
+	hfetch 1,core_config	//enable watchdog
+	set1 watchdog_bit,pdata
+	hstore 1,core_config
+	call spi_ncs_gpio_init  // 0xff disable spi ncs gpio init
+	jam 0x86,0x895b
+	jam 0xa0,0x895c
+	branch soft_reset+3
+
+p_shutdown_radio:
+	force 8,radio_ctrl
+	branch shutdown_radio+1
+
+/* ================================== 24g common functions ============================= */
+p_rssi_noise:
+	call save_rssi
+	rtn blank
+	fetcht 1,mem_rssi_noise_index
+	arg mem_rssi_noise_buffer,rega
+	call p_rssi_store
+	storet 1,mem_rssi_noise_index
+	rtn
+	
+p_rssi_store:
+	copy rega,pdata
+	iadd temp,contw
+	fetch 1,mem_rssi
+	istore 1,contw
+	increase 1,temp
+	and_into RSSI_BUF_LEN_NOISE,temp
+	rtn
+p_rssi_average:
+	arg 0,temp
+	arg RSSI_BUF_LEN_NOISE+1,loopcnt
+	copy rega,contr
+	branch rssi_average_loop
+	rtn
+
+p_g24_update_addr_and_synccrc8:	
+	store 4,mem_24g_addr
+
+//output: 1BYTE crc8
+p_g24_syncword_crc8:
+	arg 0,rega
+	arg 4,loopcnt
+	arg mem_24g_addr,contr
+p_g24_syncword_crc8_loop:
+	ifetch 1,contr
+	iadd rega,rega
+	loop p_g24_syncword_crc8_loop
+	copy rega,pdata
+	store 2,mem_24g_syncword
+	fetch 1,mem_24g_syncword
+	fetcht 1,mem_24g_syncword+1
+	iadd temp,pdata
+	store 1,mem_24g_syncword_crc8
+	rtn
+
+
+p_g24_transmit_prep:
+// total length
+	fetch 1,mem_24g_datalen
+	increase 2,pdata
+	store 1,mem_24g_txlen
+// data type
+	fetch 1,mem_24g_data_type
+	store 1,mem_24g_txpayload
+//prepare 5bit payload length, 2bit PID, 1bit NO_ACK
+	fetch 1,mem_24g_datalen
+	lshift3 pdata,pdata
+	fetcht 1,mem_24g_pid
+	and temp,0x03,temp
+	lshift temp,temp
+	ior temp,pdata
+	fetcht 1,mem_24g_no_ack
+	iadd temp,pdata
+	istore 1,contw
+//prepare payload data
+	fetch 1,mem_24g_datalen
+	iforce loopcnt
+	arg mem_24g_txbuf,contr
+	branch memcpy
+
+p_g24_ch:
+	fetcht 1,mem_24g_current_ch_number
+	call p_g24_ch_map_size
+	storet 1,mem_24g_current_ch_number
+	rtn
+
+p_g24_ch_map_size:
+	call p_g24_ch_calc
+	increase 1,temp
+	and_into 3,temp //map size =4
+	rtn
+	
+p_g24_ch_calc:
+	fetch 1,mem_24g_addr	
+	and_into 0x03,pdata
+	mul32 pdata,4,rega			//24addr low bit0 bit1 ,00-map1,01-map2,10-map3,11-map4
+	setarg mem_24g_ch_map1
+	iadd rega,pdata
+	iadd temp,contr
+	ifetch 1,contr
+	store 1,mem_24g_ch
+	rtn
+
+p_g24_prep:
+	disable enable_crc
+	disable enable_white
+	setarg 0x555555
+	iforce crc24_init
+	fetch 1,mem_24g_ch
+	reverse pdata,temp
+	set1 1,temp
+	rshift temp,white_init
+	rtn
+
+p_g24_receive_packet:
+	call le_enable
+	fetch 4,mem_24g_addr
+	iforce access
+	call set_sync_on
+	fetcht 1,mem_24g_ch
+	call set_freq_rx
+	setarg param_pll_setup
+	call sleep
+	call rf_rx_enable
+p_g24_receive_rxon:
+	call p_g24_prep
+	disable user3
+	enable decode_fec0	
+	enable is_rx
+	disable is_tx
+	enable swfine
+	fetch 2,mem_24g_rx_window
+	iforce stop_watch
+	correlate null,timeout
+	nbranch p_g24_sync_timeout,sync
+	disable decode_fec0
+	enable decode_fec1
+	enable enable_white
+	enable enable_crc
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	store 1,mem_24g_get_syncword_crc8
+	fetcht 1,mem_24g_syncword_crc8
+	isub temp,null
+	nbranch p_g24_end_of_packet,zero
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	store 1,mem_24g_rxbuf	//device id
+	fetch 1,mem_24g_mode
+	sub pdata,rx_24g,null
+	branch p_g24_receive_skip,zero
+	fetch 1,mem_24g_rxbuf
+	fetcht 1,mem_24g_data_type
+	icompare bits_data,temp
+	nbranch p_g24_end_of_packet,true
+p_g24_receive_skip:
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	istore 1,contw
+	rshift3 pdata,pdata
+	and pdata,0x1f,loopcnt	//max payload: 32bytes
+	branch p_g24rx_nopayload,zero
+p_g24rx_loop:
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	istore 1,contw
+	loop p_g24rx_loop
+p_g24rx_nopayload:
+	parse demod,bucket,24
+	enable swfine
+	arg param_sifs,stop_watch	
+	rshift32 pdata,pdata
+	rshift16 pdata,pdata
+	istore 3,contw
+	disable decode_fec1
+	call save_rssi
+	branch p_g24_end_of_packet,crc_failed
+	enable user3
+	fetch 1,mem_last_freq
+	add pdata,0,rega
+	call rf_write_freq
+	disable decode_fec0
+	call set_sync_on
+	rtn
+	rtn
+	
+p_g24_end_of_packet:
+	disable encode_fec1
+	disable decode_fec1
+	branch end_of_packet
+
+p_g24_sync_timeout:
+	call p_rssi_noise
+	branch p_g24_end_of_packet
+
+p_g24_set_freq_tx:
+	call set_sync_on
+	fetcht 1,mem_24g_ch
+	branch set_freq_tx
+
+p_g24_transmit:
+	call le_enable
+	fetch 4,mem_24g_addr
+	iforce access
+	call p_g24_prep
+	call p_g24_set_freq_tx
+	set1 TXGFSK,radio_ctrl
+	enable encode_fec0
+	enable is_tx
+	disable is_rx
+	rshift16 access,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,pdata
+	inject mod,40
+	disable encode_fec0
+	enable encode_fec1
+	enable enable_white
+	enable enable_crc
+	fetch 1,mem_24g_syncword_crc8
+	inject mod,8
+	fetch 1,mem_24g_txlen
+	iforce loopcnt
+	arg mem_24g_txpayload,contr
+p_g24tr_loop:
+	ifetch 1,contr
+	inject mod,8
+	loop p_g24tr_loop
+	fetch 1,mem_rssi_hex
+	inject mod,8
+	enable enable_parity
+	inject mod,24	//crc
+	disable enable_parity
+	until null,tx_clear
+	nop 100
+	disable encode_fec0
+	disable encode_fec1
+	rtn
+
+
+
Index: output/bt_program23.rom
===================================================================
--- /branch/USB/dongle_sdk/output/bt_program23.rom	(revision 0)
+++ /branch/USB/dongle_sdk/output/bt_program23.rom	(working copy)
@@ -0,0 +1,1261 @@
+11000010100001000000000000001010
+11000000010000101000010000110001
+11000000010001001000010000001001
+11000000000000000000010000101001
+11000000010001110000000000001011
+11000000011000100000000010001011
+11000000011110111000000000010010
+11000000011111000000000001001011
+11000000011111100000000000101010
+00100000001000000010101010001110
+00100000001000000010101010001110
+01101000000100010000100110000001
+00011111111100011111111000000000
+00011111111010010111111000000000
+00011111111001100111111000000000
+00011111111000010111111011111111
+01100000000000001100100011101110
+00100000001000000010100111000001
+01110000100010100000010100000000
+00100000010000000100100100011001
+00100000010000000000000000010111
+00100000010000000000000000100001
+00100000001000000100100011101100
+01101000000000001001000110111110
+00100000011110100000000000000000
+01101000000000001001000111000111
+11000000001011010000000000011110
+01101000000000100001000110111111
+01100000000000100000101101110001
+00100000011000000000000000000000
+01101000000000100001000111000011
+01100000000000100000101101110001
+00100000011000000000000000000000
+01101000000000001001000111000111
+11000000001011010000000001001000
+01011000000000000001000111001000
+01100000000000010000101101111100
+01011000000000000001001010010000
+01100000000000010000101101111110
+01110000000010111001101000011010
+01110000000010111011001110100011
+00100000011000000000000000000000
+01101000000000001000110100111000
+00100000011110100000000000000000
+01101000000000001000110100110111
+00100100001110100100101110101100
+01101000000000001000110101000101
+00100000001110100100101110000110
+01101000000000001000110100110110
+11000000000000011100101110111111
+11000000100000010100101110000110
+01101000000000001000110100111010
+00100100001110100100101110000110
+00100000010000000100101101101111
+00100000001000000000000000110111
+01101000000000001000110100111000
+11000100000000010000000000000000
+01101000000000001000110100110111
+11000011100000010000000000000000
+01101000000000001000110100111000
+01111001001111111111111000000010
+01100000000000001000110100111000
+01101000000000001000110101010010
+00100000011110100000000000000000
+11000000000100000100101110001001
+11000000000100001100101110100100
+11000000000100010000000001000100
+00100000001000000010101010001100
+01110000000011010101001000000000
+11011111001000000000000000000010
+11011000110000000001001110111100
+00100000001000000100101101011110
+01011000000000000001001101011000
+01100000000000010000101101111100
+00100000011000000000000000000000
+01110000100010100010011000010001
+01101000000100001000101000100000
+01100000000000001000101100100100
+00011111111000100111001000000000
+00100000001110100000000001011010
+11011000101000000000110001101110
+00100000010000000100100101000110
+01101000000000001000101100100100
+11000000000000001000000001011101
+00011111111001100111110000000111
+00100000011000010000000000000000
+01101000000000001000110001101110
+00011111111000010111111010000000
+11000000000000000000000001100001
+00100000001000000100100101010111
+01101000000000001000101100100010
+11000010100000100000000001010110
+00100000011000000000000000000000
+01101000000000001000110001101110
+11000011100000111000000000000000
+00100000010000000000000010000111
+00100000001000000100100110001000
+01101000000000001000110001101110
+00011111111100011111111000000000
+00011111111000110111111000000000
+00011111111000010111111000000011
+11000000000000000000000001101000
+11000000000000001000000001110110
+00100000001000000100100101100110
+01101000000000001000110001101111
+11000000000000011000000001101011
+00100000001000000100100101110111
+01101000000000001000110001110100
+11000000100000000100100110000100
+01101000000000001000110001110101
+11000000100000000100100110000100
+01101000000000001000110001101110
+11000000000000000000000001110010
+00100000001000000100101001111110
+01101000000000001000110001110000
+11000000100000001100100110000100
+01110000010010010111101000000011
+00100000001000000100101010000100
+01101000000000001000110001101111
+11000000000001001000000001111001
+00100000001000000100100101111111
+01110000000011010101000000000001
+00100000010000000100101100000011
+01101000000000010000110001110000
+01100000000000010000110101001110
+00100000000000000011101010011000
+01101000000100001000101000100000
+00100100010110100000000010000011
+01101000000000001000110101000011
+00100100010110100000000010000110
+00100000001000000100101011111101
+00011111111000100111001000000000
+11011000101000000000110001110110
+00100000001000000100100101000110
+01101000000000001000110001110110
+01100000000000001100100101111000
+01110000000011010100001100000000
+01110000010010001011100000000011
+00100000011000000000000000000000
+01110000010010011000001100000000
+01110000010010010111101100000111
+00100000010000000111010010111001
+01101000000000100100000010100000
+01100000000000100100100010011111
+01101000000010001100001000111010
+00100000010000000110100000001110
+00100000010000000000000010101000
+00100000010000000000000110001001
+00100000010000000000000010011101
+00100000010000000000000010011011
+01101000000000001100100010111010
+11000000000000000000000111011111
+11000000000000001000000010110010
+11000000000001111000000010101110
+00100000011000000000000000000000
+00100000010000000000000010100100
+00100000001000000110010111010001
+00100000010000000110010110011100
+00100000010000000000000010100000
+00100000001000000110010111011111
+11011010001000000001000111000111
+11011010010000000000000000000000
+11011000010000000000000000000001
+00100000011000000000000000000000
+11011010001000000001001111010010
+11011010010000000000000001110000
+11011000010000000000000000000011
+00100000011000000000000000000000
+01101000000000001100000111011110
+01100000000000001100100011101101
+11011111001000000000000010000000
+11011000101000000000110110011110
+00100000010000000111111011000110
+00100000001000000100100011101010
+00100000010000000000000010110111
+00100000010000000000000010111011
+00100000010000000000000110100111
+00100000001000000000000010101111
+00100000010000000000000010110111
+00100000010000000000000010111011
+00100000010000000000000100001100
+00100000010000000000000110100111
+00100000001000000000000010110011
+01110000010010001011100000000000
+01110000010010001010010000000000
+01110000010010001010001100000000
+00100000011000000000000000000000
+01101000000000001100100010100100
+11000001100000000000000000000000
+00100000010000000000000011000001
+00100000010000000000000011001111
+00100000010000000000001101000110
+00100000001000000000000011101110
+01101000000000001100100010100011
+11000011100000000000000000000000
+01111001001000000111111000000000
+01100000000000001100100010100011
+01101000000000001100100011101101
+01100000000000001100000111011110
+01110000010010001011100000000000
+01110000000011010011100000000000
+01110000010010001011000000000001
+01110000010010000011010100000000
+01101000000000100100100010011111
+00100000010000000000010001000110
+00100000010000000000010001100110
+00100000001000000000000100101000
+01101000000000001100100010110000
+11000000000000001000000011101000
+01101000000000001100100010111001
+11000000000000001000000011100010
+01101000000010100100100010110010
+00011100010000100111111000000000
+10011000010001100111110000000000
+00100100010000010010110100011000
+00011111111000100010010000000000
+01101000000000100100100010110010
+01101000000010001100100010110110
+10011000010000001000010000000000
+00011010010000100111111000000000
+10011000010001100111110000000000
+00100100011000010000000000000000
+01111001001111111111111000011100
+01100000000000100100100010110010
+01110000010010001011000000000001
+00100000001000000000010001100110
+01110000010010001011100100000000
+00100000001000000000010001100110
+00011100010000100111111000000000
+01100000000000100100100010110010
+01110000010010001011000100000000
+00100000011000000000000000000000
+11011010001000000000110110011110
+00100000010000000000010001000001
+01100000000010001100100011101111
+00011000010001100111110001010000
+00100100011000010000000000000000
+00100000001000000000010001100110
+00100000010000000000000011110001
+00100000010000000000000011111000
+00100000001000000000000100000010
+01101000000000001100100011010101
+00100000011110100000000000000000
+11011000111000000000000000001011
+00100000010000000111111100010110
+00100100011110100000000000000000
+01110000010010001101010100000000
+00100000001000000010111110100000
+01101000000000001100100011010011
+00100000011110100000000000000000
+11011000111000000000000000001110
+00100000010000000111111100010110
+00100100011110100000000000000000
+01110000010010001101001100000000
+00100000010000000010111110101100
+01101000000001000000110101100100
+01100000000001000100100011000101
+00100000011000000000000000000000
+01101000000000001100100011010100
+00100000011110100000000000000000
+11011000111000000000000000001100
+00100000010000000111111100010110
+00100100011110100000000000000000
+01110000010010001101010000000000
+00100000010000000010111110111000
+01101000000000011000110101110100
+01100000000000011100100011010000
+00100000011000000000000000000000
+01101000000000001100100010100100
+11000001100000001000000000000000
+00100000010000000000000100010000
+00100000001000000000000100011100
+01101000000000001100100010100011
+11000011100000001000000000000000
+01111001001000000111111000000001
+01100000000000001100100010100011
+01011000000000000000000000000000
+01100000000000011100100010100101
+01110000010000011101111000000100
+01110000010010001011100000000001
+01110000010010000011010100000000
+01110000010010000100000001001110
+01101000000000100100100001000010
+00100000001000000000010001000110
+00100000010000000000001001100100
+00100100001101111000000100101000
+01110000010010010111110000000101
+11011000110000000100011110110000
+11011000101000000100100001111101
+11011111001000000000000000001000
+00100000010000000111111100000001
+01101000000000001100100001111111
+11000000010101010000000101000110
+11000000001010101000000101010011
+11000000000100010000000101100011
+11000000011111111000000101111111
+11011000101000000100011110110000
+11011111001000000000000001000010
+00100000001000000111111011010100
+01101000000000001100100010100100
+11000001100000001000000000000000
+01101000000000001100100010111010
+00100100011110100000000000000000
+01101000000000001100011110110011
+11000000000000001000000100110011
+11000000000000010000000100110111
+00100000011000000000000000000000
+01101000000000001100100110000011
+11000100000000000000000000000000
+01111000010101111111110000000000
+00100000011000000000000000000000
+01101000000000001100100110000011
+11000100000000001000000000000000
+00100000001000000000000100110101
+01101000000000001100100010111010
+00100100011110100000000000000000
+01101000000000001100100110000011
+00011111111000011111111000000001
+01100000000000001100100110000011
+00100000011000000000000000000000
+01101000000000001100100010111010
+00100100011110100000000000000000
+01101000000000001100100110000011
+00011111111000011111111000000010
+01100000000000001100100110000011
+00100000011000000000000000000000
+01101000000000001100100010000000
+11000000000000001000000101001010
+11000000000000010000000101010000
+00100000011000000000000000000000
+01110000010010001010010100000001
+01110000010010001010100000000001
+01110000010010001010100110000000
+01101000000000110100100010011111
+01100000000000110100100010101010
+00100000011000000000000000000000
+01110000010010001010011000000001
+01110000010010001010100000000010
+00100000001000000000000101001100
+01101000000000001100100010000000
+11000000000000001000000101010111
+11000000000000010000000101011101
+00100000011000000000000000000000
+00100000010000000000000101001011
+01101000000000001100100010100101
+11000000000000001000000101011011
+00100000011000000000000000000000
+01110000010010001010010100000010
+00100000011000000000000000000000
+00100000010000000000000101010001
+01101000000000001100100010100110
+11000000000000001000000101100001
+00100000011000000000000000000000
+01110000010010001010011000000010
+00100000011000000000000000000000
+01101000000000001100100010000000
+11000000000000001000000101100111
+11000000000000010000000101110001
+00100000011000000000000000000000
+01101000000000001100100010100101
+11000000000000010000000101101010
+00100000011000000000000000000000
+00100000010000000000000100111010
+01101000000000001100100010100111
+00011111111000011111111000000001
+01100000000000001100100010100111
+01011000000000000000000000000000
+01100000000000010100100010100101
+00100000001000000000000100101000
+01101000000000001100100010100110
+11000000100000000000000101110100
+00100000011000000000000000000000
+00100000010000000000000101000000
+01101000000000001100100010100111
+00011111111000011111111000000010
+01100000000000001100100010100111
+00100000010000000000000101101110
+01101000000000001001000111000111
+11000001001011010000000000000000
+01110000000100011100011101011010
+00100000010000000000000010100000
+00100000010000000110010111010001
+00100000001000000110010110011010
+01101000000000001100100010000000
+11000000000000001000000110000011
+11000000000000010000000110000110
+00100000011000000000000000000000
+01101000000000100100100010000001
+01100000000000100100100011011010
+00100000011000000000000000000000
+01101000000000100100100010000001
+01100000000000100100100011010110
+00100000011000000000000000000000
+01110000010010010000000000000000
+01011000000000000100100100000101
+01100000000000010100100100000001
+01100000000000010100100100000011
+00100000011000000000000000000000
+11011111001000000000000000011111
+11011000010000000000110010110110
+01101000000000010100100100000011
+00011111111000100000101000000000
+00011000010000100000110000000000
+00100000010000000111111100000001
+01101000000000001100100100000000
+00011111111000001111111000000001
+01100000000000001100100100000000
+01011000000000000100100100000011
+00011111111000100010001000000000
+11011000010000000100100101100101
+11101010001000010000000000000000
+00011111111000001111111000100000
+10011000010001100111110000000000
+00100100001000010000000110011111
+01011000000000000100100100000101
+11100010001000010000000000000000
+00100000011000000000000000000000
+01111000010101000111110000000000
+01101000000000001100100100000000
+00100000011110100000000000000000
+01111000001101000111110000000000
+01101000000000010100100100000001
+00100000011000000000000000000000
+01110000100000000000010011111111
+01101000000000001000110100111001
+00100000010110100000001100010110
+00100000010000000100100011010011
+01101000000000001000110101010000
+00100000011110100000000000000000
+01110000000011010101000000000000
+01101000000000010000110101001110
+11011000010000000000001010111010
+10011000010001100111110000000000
+00100100011000101000000000000000
+01101000000000001000110010110110
+11000001110111010000000000000000
+01101000000000001000110010110111
+11000000010100000000000111000110
+11000000010100001000000110111100
+11000000010100110011000001000001
+11000000010100111000000111001011
+11000000010101001000000111010001
+11000000010110000000000111010011
+00100000001000000011000000101010
+01101000000000001000110010111000
+11000000000000001000000111000001
+11000000010000100000000111000100
+11000000010100111011000000111001
+00100000001000000011000000101010
+01101000000000001100100010100111
+01100000000000001000110011110111
+00100000001000000011000000111111
+00100000010000000000000010111000
+00100000001000000000000111000001
+01101000000000001000110010111000
+11000000010000001000000111001001
+00100000001000000011000000101010
+00100000010000000000001000100110
+00100000001000000011000000111111
+01101000000000001100100010100100
+11000000000000000000000111001111
+11000000000000001011000000111001
+00100000011000000000000000000000
+01110000000011001111011110100000
+00100000001000000011000000111111
+01110000000011001111101000000111
+00100000001000000011000001001001
+01101000000000001000110010111000
+11000000011111111110010110011010
+01110000010010001011100000000010
+01101000000000001100100100000000
+11000000000000011000000111011101
+00100000010000000000000110001110
+01101000000000001100100100000000
+11000000000000011000000111011101
+01110000000011001111011100000000
+00100000001000000011000000111111
+01110000000011001111011100000001
+00100000001000000011000000111111
+00100000010000000000001000000100
+00100000010000000000001000001010
+00100000010000000000001000110101
+00100000010000000000000111100111
+00100000010000000000000111101011
+00100000010000000000001001101000
+00100000010000000000000110100111
+00100000001000000000000111100000
+01101000000000001100100010100100
+11000001100000000000000000000000
+00100000010000000000000010111101
+00100000001000000000001001010110
+01101000000000001100100010100100
+11000001100000001000000000000000
+00100000010000000000000100010000
+00100000010000000000000100011100
+01101000000000001100100010100111
+00100000011110100000000000000000
+01110000010010001011011100000000
+00100000010000000000000010110111
+00100000010000000000001001010100
+00100000001000000000001000000111
+00100000010000000111111111101001
+01101000000010100100100001010111
+00011100010000100111111000000000
+10011000010001100111110000000000
+00100100010000010010110100011000
+00011111111000100010010000000000
+01101000000000100100100001010111
+01101000000010001100100001011011
+10011000010000001000010000000000
+00011010010000100111111000000000
+10011000010001100111110000000000
+00100100011000010000000000000000
+01111001001111111111111000011100
+01100000000000100100100001010111
+00100000001000000111111111100111
+01110000010010001011011100000001
+01110000010010001011110000000000
+01110000010010000101101111111111
+01011000000000000000000000000000
+01100000000000100100100001010111
+00100000011000000000000000000000
+01101000000000001100100010110111
+00100000011110100000000000000000
+00100000010000000000000111110101
+00100100011101000000000000000000
+00100000010000000000001000011111
+00100000010000000000001000010111
+01101000000000001100100010111100
+00011111111000001111111000000001
+00011111111000010111111000000001
+01100000000000001100100010111100
+11000000000000000000001000011100
+11000000000000001000001000100100
+00100000011000000000000000000000
+01101000000000001100100101111100
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100000000000001100100101111100
+00100000011000000000000000000000
+01101000000000001100100101111100
+00100100001110100000001000100110
+00100000001000000000000010110111
+01101000000000001100100101111011
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100000000000001100100101111011
+00100000011000000000000000000000
+01101000000000001100100101111011
+00100100001110100000000010110111
+01110000010010001010010000000001
+01110000010010001010001100000000
+00100000011000000000000000000000
+01101000000000001100100110000001
+00100000010110100000001001010010
+01101000000000001100100101111110
+11000011100000000000000000000000
+01111001001000000111111000000000
+01100000000000001100100101111110
+01110000010010010111110100000001
+01110000010010011000001000000000
+01011000000000000000000000000000
+01100000000000010100100101111111
+01110000010010000101101101100000
+00100000001000000000001000000111
+01101000000000001100100010100100
+11000001000000000000000000000000
+01101000000000001100100110000001
+00100100011110100000000000000000
+01101000000000001100100101111101
+00100000011110100000000000000000
+00100000010000000000000111110101
+00100100011101000000000000000000
+01101000000000010100100101111111
+00011111111000001111111000000001
+01100000000000010100100101111111
+11011000010000000000011111010000
+10011000010001100111110000000000
+00100000001000010000001001001110
+00100000010000000000001000010111
+01101000000000001100100110000010
+00011111111000001111111000000001
+00011111111000010111111000000001
+01100000000000001100100110000010
+11000000000000000000001001001011
+11000000000000001000001000100110
+00100000011000000000000000000000
+01101000000000001100100101111100
+00100100001110100000001000100110
+00100000001000000000001001100001
+01110000010010011000000100000001
+00100000001000000000001001100001
+01110000010010010111110100000000
+00100000011000000000000000000000
+01110000010010010111110100000001
+00100000011000000000000000000000
+01110000010010001011101100000001
+00100000001000000011000010010101
+01101000000000001100100010111000
+11000001000000010000000000000000
+01101000000000001100100010111011
+00100000011110100000000000000000
+11011000111000000000000000001000
+00100000010000000111111100010110
+00100100011110100000000000000000
+01110000010010001011101100000000
+01110000010010010111101100000000
+01110000010010010111110000000000
+00100000010000000000001000101001
+01110000010010001010010000000111
+01110000010010001010001100000000
+00100000001000000000000100101000
+00100000010000000000000100101000
+00100000010000000000010010000000
+00100100011101111000000000000000
+00100000001000000000001100000101
+01101000000000001100100010100100
+11000001100000111000000000000000
+00100000010000000000001010001111
+00100000010000000000001010100011
+00100000010000000000001001100100
+00100100001101111000000100101000
+00100000010000000000001010011111
+00100000010000101000001101001001
+01101000000000001100100010110000
+00100000010110100000001001010000
+01110000010010001010010000000000
+01101000000000001100100010100011
+01111001001000000111111000000000
+01100000000000001100100010100011
+01101000000000001100100010111000
+00011111111001100111110000000010
+00100100010000101000001010000110
+00100000010000000000000100101000
+00100000010000000000001001010100
+00100000010000000000001010011111
+00100000001000101000001010001000
+01101000000000100100100001011110
+01101000000010100100100011010110
+10011000010001100111110000000000
+00100000001000101000001010001011
+01101000000000100100100001011110
+01101000000010100100100011011010
+10011000010001100111110000000000
+00100000001000101000001010001101
+00100000011000000000000000000000
+01110000010010001011100000000000
+00100000011000000000000000000000
+01101000000000001100100011011111
+01100000000000001100100001000001
+00100000011000000000000000000000
+01101000000000001100100011100010
+00100000001000000000001010001001
+01101000000000001100100011100101
+00100000001000000000001010001001
+01101000000000001100100010100011
+11000011100000111000000000000000
+01111001001000000111111000000111
+01100000000000001100100010100011
+01110000010010001011110000000000
+01110000010010001011100000000001
+01011000000000000000000000000000
+01100000000000011100100011110101
+01100000000000111100100011100000
+00100000010000000000001010011111
+00100100011000101000000000000000
+01101000000000001100100001000001
+01100000000000001100100011011111
+01101000000000001100100001000000
+01100000000000001100100011011110
+00100000011000000000000000000000
+01101000000000100100100001011110
+01101000000010100100100010011111
+10011000010001100111110000000000
+00100000011000000000000000000000
+01101000000000001100100010111100
+00011111111000001111111000000001
+00011111111000010111111000000011
+01100000000000001100100010111100
+11000000000000000000001011000110
+11000000000000001000001011100000
+11000000000000010000001010101100
+11000000000000011000001011100000
+00100000011000000000000000000000
+00100000010000000000000101001011
+01101000000000100100100011011010
+00100000001110100000001010100011
+00100000010000000000010001000110
+01101000000000001100100011100110
+00100000010110100000001011000001
+01101000000000001100100011100100
+01100000000000001100100001000000
+01101000000010001100100011110111
+11011010001000000000111110011110
+00100000010000000000010000111010
+01100000000010001100100011110111
+00100000010000000000010001000001
+01100000000010001100100011110100
+00011000010001100111110001010000
+00100100011000010000000000000000
+01101000000010001100100011100101
+00100000010000000000010001101010
+01100000000010001100100011100101
+01100000000000001100100011100100
+00100000011000000000000000000000
+01110000010010001110011000000001
+11011000010000000000000000000000
+00100000010000000000010001101110
+01100000000000001100100011100100
+00100000011000000000000000000000
+00100000010000000000000101010001
+01101000000000100100100011010110
+00100000001110100000001010100011
+00100000010000000000010001000110
+01101000000000001100100011100011
+00100000010110100000001011011011
+01101000000000001100100011100001
+01100000000000001100100001000000
+01101000000010001100100011110110
+11011010001000000001000010011110
+00100000010000000000010000111010
+01100000000010001100100011110110
+00100000010000000000010001000001
+01100000000010001100100011110011
+00011000010001100111110001010000
+00100100011000010000000000000000
+01101000000010001100100011100010
+00100000010000000000010001101010
+01100000000010001100100011100010
+01100000000000001100100011100001
+00100000011000000000000000000000
+01110000010010001110001100000001
+11011000010000000000000000000000
+00100000010000000000010001101110
+01100000000000001100100011100001
+00100000011000000000000000000000
+00100000010000000000000101001011
+01101000000000100100100010011111
+00100000010000000000010001000110
+01101000000000001100100011100000
+00100000010110100000001011110100
+01101000000000001100100011011110
+01100000000000001100100001000000
+01101000000010001100100011110101
+11011010001000000000111010011110
+00100000010000000000010000111010
+01100000000010001100100011110101
+00100000010000000000010001000001
+01100000000010001100100011110010
+00011000010001100111110001010000
+00100100011000010000000000000000
+01101000000010001100100011011111
+00100000010000000000010001101010
+01100000000010001100100011011111
+01100000000000001100100011011110
+00100000011000000000000000000000
+01110000010010001110000000000001
+01101000000000001100100011011110
+01100000000000001100100001000000
+00100000011000000000000000000000
+01101000000000001100011110110001
+00011111111010010111111000000000
+01100000000000001100100000110100
+00011111111000001111111000000001
+11011000110000000100011110110001
+10011000110000001000110000000000
+11101000110000011000000000000000
+01100000000000011100100001110011
+01101000000000001100011110110001
+00011111111000110111111000000000
+00011111111000010111111000000011
+01100000000000001100100001111001
+00100000011000000000000000000000
+01101000000000001100011110110000
+01100000000000001100100000110111
+00100000010000000000001011111000
+01101000000000001100011110110001
+00101111111011111111111000000000
+00100000001000001000001100001110
+00100000010000000000001100001111
+00100000010000000000010001010100
+00100000010000000000010011001010
+00100000001000000000010011000010
+01110000010010000011011000000000
+01101000000000001100100000110111
+11000000000000001000001100010011
+11000000000000010000001100011000
+01101000000000001100100101111010
+11000010100000000000001100100000
+00100000001000000000001100011010
+01110000010010010111101000000000
+00100000011000000000000000000000
+01101000000000001100100101111010
+11000010100000001000001100100100
+01101000000000001100100010111000
+00100000011110100000000000000000
+11000000000000001000001100101011
+11000000000000010000001100110011
+11000000000000011000001100111101
+00100000011000000000000000000000
+01101000000000001100100101111010
+01111001001111111111111000000000
+01100000000000001100100101111010
+00100000001000000000001100100111
+01101000000000001100100101111010
+01111001001111111111111000000001
+01100000000000001100100101111010
+01110000010010000011011000000001
+01011000000000000000000011111111
+01100000000000001100011111010010
+00100000011000000000000000000000
+01110000010010001011100000000001
+00100000010000000000000100101011
+00100100011101111000000000000000
+01110000010010000011011000001000
+11011111001000000000000000001000
+11011000110000000100100010101000
+11011000101000000100011111010010
+00100000001000000111111100000001
+00100000010000000000000110100001
+00100100011101000000000000000000
+01110000010010000011011000011111
+11011111001000000000000000011111
+00011111111000100000110000000000
+11011000101000000100011111010010
+00100000010000000111111100000001
+01101000000000010100011111010101
+01100000000000010100100011101011
+00100000011000000000000000000000
+01101000000000001100011110110010
+11000000000000001000001100101011
+11000000011111111000001100101011
+01110000000011010100001100000000
+01110000010010000011011000000001
+11011111001000000000000000000001
+11011000110000000100100101111000
+11011000101000000100011111010010
+00100000001000000111111100000001
+00100000010000000000001001100100
+00100100001101111000000100101000
+00100000001000000000001101001001
+00100000010000000000001101011010
+00100100001101000000000100101000
+01101000000000001100100000110100
+00100000001110100000000100101000
+00011111111000001111111000000010
+10011000000000000111001000000000
+11011000110000000100011110110000
+11011000101000000100100001111101
+00100000010000000111111100000001
+01110000010010001011011100000000
+01101000000000001100100010111010
+00100000010110100000001001010100
+01101000000000001100100001111111
+11000000000000001000001101101000
+11000000000000010000001110001000
+11000000011111111000001111011101
+00100000001000000000000100101000
+00100000010000000111111111101001
+01101000000000001100100001111001
+01101000000010001100100001111010
+10011000010001100111110000000000
+00100100010000101111111111100111
+01101000000000001100100001111001
+01100000000000001100100001111010
+01101000000000011100100001110011
+01101000000010011100100001110110
+10011000010001100111110000000000
+00100100010000101111111111100111
+01101000000000011100100001110011
+01100000000000011100100001110110
+00100000011000000000000000000000
+00100000010000000000000100111010
+00100000010000000000000011100100
+01101000000000001100100010110000
+01101000000010001100100001111101
+00101000010011111111111000000011
+01111001001000001111111000000000
+01100000000000001100100010110000
+11000000000000001000001111100111
+01101000000000001100100010111001
+01101000000010001100100001111101
+00101000010011111111111000000100
+01111001001000001111111000000000
+01100000000000001100100010111001
+01101000000000001100100010000000
+11000000011001111000001111101011
+01011000000000000000000000000001
+01100000000000001000110101010100
+01101000000000111100100010000000
+11100000101000111000000000000000
+01101000000000001100100010000000
+00100100010110100000001110000000
+01101000000000001100100010000000
+00100000010110100000001110000100
+00100000001000000011000110111000
+01110000010010001101010100000001
+01011000000000000000000110000000
+11011000111000000000000000001011
+00100000001000000111111100001000
+01110000010010001101010100000000
+01011000000000000000000000000000
+11011000111000000000000000001011
+00100000001000000111111100001000
+00100000010000000000000101000000
+01101000000010001100100001111101
+00101000010011111111111000000011
+00100000001000001000001111101001
+01101000000000001100100010000000
+11000000000000000000001110010001
+11000000000000010000001111000110
+11000000000000011000001110101101
+00100000001000000000000100101000
+01101000000000001100100010000010
+01100000000000001100100010111000
+01110000010010001000001000000000
+11011000101000000000110101100100
+00100000010000000000001110100010
+01101000000001000000110101100100
+00100100010110100000001110100101
+01101000000001000000110101100100
+00100000010110100000001110101001
+01101000000001000000110101100100
+01100000000001000100100010111101
+01101000000011000100100011000101
+10011000010001100111110000000000
+00100100010000101011000111101101
+01101000000001000100100010111101
+01100000000001000100100011000101
+00100000001000000000000100101000
+11011000110000000100100010000001
+11011111001000000000000000001000
+00100000001000000111111100000001
+01110000010010001101001100000001
+01011000000000000000000110000000
+11011000111000000000000000001110
+00100000001000000111111100001000
+01110000010010001101001100000000
+01011000000000000000000000000000
+11011000111000000000000000001110
+00100000001000000111111100001000
+11011000101000000000110101110100
+00100000010000000000001110111011
+01101000000000010000110101110101
+00100100010110100000001110111110
+01101000000000010000110101110101
+00100000010110100000001111000010
+01101000000000011000110101110100
+01100000000000011100100011001101
+01101000000010011100100011010000
+10011000010001100111110000000000
+00100100010000101011001000000111
+01101000000000011100100011001101
+01100000000000011100100011010000
+00100000001000000000000100101000
+11011000110000000100100010000000
+11011111001000000000000000000011
+00100000001000000111111100000001
+01110000010010001101010000000001
+01011000000000000000000110000000
+11011000111000000000000000001100
+00100000001000000111111100001000
+01110000010010001101010000000000
+01011000000000000000000000000000
+11011000111000000000000000001100
+00100000001000000111111100001000
+11011000101000000001001110111100
+00100000010000000000001111010000
+01101000000000010001001110111100
+01100000000000010001001111001100
+01101000000010010001001111001111
+10011000010001100111110000000000
+00100100010000101000001111011011
+01101000000000010001001111001100
+01100000000000010001001111001111
+00100000001000000000000100101000
+11011000110000000100100010000000
+11011111001000000000000000000010
+00100000001000000111111100000001
+01110000010010001101010000000001
+01011000000000000000000110000000
+11011000111000000000000000001100
+00100000001000000111111100001000
+01110000010010001101010000000000
+01011000000000000000000000000000
+11011000111000000000000000001100
+00100000001000000111111100001000
+01110000000011010101001000100010
+00100000001000000011000110111001
+01101000000000001100100010000000
+11000000000000001000001111100001
+11000000000000010000001111100100
+00100000011000000000000000000000
+00100000010000000000000100111010
+01101000000000100100100010000001
+00100000001000000000000110000100
+00100000010000000000000101000000
+01101000000000100100100010000001
+00100000001000000000000110000111
+01101000000000100100100010000111
+00100000001000000000000110000100
+01101000000000100100100010000111
+00100000001000000000000110000111
+01101000000000010100100010000010
+01101000000010010100100011101011
+10011000010001100111110000000000
+00100000001000101000001111110000
+00100000011000000000000000000000
+01101000000000001100100010000001
+11000000011000010000001111111101
+01101000000000001100100100000000
+00100000011110100000000000000000
+01011000000000000100100100000001
+00100000010000000000000110011000
+01101000000000001100100100000000
+00011111111000001111111111111111
+01100000000000001100100100000000
+01101000000000001100100010000001
+11000000011000001000000111011011
+11000000011000010000001111111101
+00100000011000000000000000000000
+01011000000000000000000000000000
+01100000000000010100100011101011
+01100000000000001100100010111000
+00100000010000000000000110001001
+01101000000000001100100010000100
+11000000001010101000010000000101
+11000000010101010000010000000111
+00100000011000000000000000000000
+01110000000011001111011100000010
+00100000001000000011000000111111
+01110000000011001111011100000011
+00100000001000000011000000111111
+01100000000010001000000000010111
+00011000010000001010001000000000
+00100000010000000010100110000001
+01011000000000000000010100000000
+00100000010000000010101010001111
+01110000100010010000011000000001
+01110000100010010000000000111100
+01110000100010010000000111100000
+00100000000000000000000000001010
+01110000100010010000001000000001
+01110000100010010000001000111101
+00100000000000000000000000001010
+01110000100010010000001110110111
+00100000000000000000000000001010
+01110000100010010000001001111101
+01101000000000001100000111011110
+11000000000000100000010000100010
+00100000001000000000010000011011
+01110000100010010100101110111010
+01110000100010010101010111010000
+01110000100010010101011011100000
+01110000100010010101011110001000
+01110000100010010101100000111100
+01110000100010010101100100010000
+00100000001000000010100101010011
+01110000100010010100101110111010
+01110000100010010101010111010000
+01110000100010010101011011000000
+01110000100010010101011110001000
+01110000100010010101100001101100
+01110000100010010101100100010000
+00100000001000000010100101011011
+00100000100000000000000000000000
+01101000000100001000000001000011
+01111001001000000111111000000011
+01100000000100001000000001000011
+00100000010000000110010000001101
+01110000100010010101101110000110
+01110000100010010101110010100000
+00100000001000000010000000000100
+00011000000000000010101000001000
+00100000001000000010100011111010
+00100000010000000010100110111011
+00100000011110100000000000000000
+01101000000010001100100011110000
+11011010001000000000110110011110
+00100000010000000000010000111010
+01100000000010001100100011110000
+00100000011000000000000000000000
+00011010001000100111111000000000
+10011000010000001000101000000000
+01101000000000001000000000011000
+11100000101000001000000000000000
+00011000010000001000010000000001
+00011000010000010000010011111111
+00100000011000000000000000000000
+11011000010000000000000000000000
+11011111001000000000000100000000
+00011010001000100000110000000000
+00100000001000000010111001100100
+00100000011000000000000000000000
+01100000000000100100100001011110
+11011010001000000000000000000000
+11011111001000000000000000000100
+11011000110000000100100001011110
+11101000110000001000000000000000
+10011010001000001010001000000000
+11000010000000000000010001001010
+00011010001000100111111000000000
+01100000000000010100100011100111
+01101000000000001100100011100111
+01101000000010001100100011101000
+10011000010000001111111000000000
+01100000000000001100100011101001
+00100000011000000000000000000000
+01101000000000001100100000110110
+00011111111000001111111000000010
+01100000000000001100100000111000
+01101000000000001100100000110111
+01100000000000001100011111110010
+01101000000000001100100000110110
+00011111111010011111111000000000
+01101000000010001100100000110101
+00011000010000010000010000000011
+00011000010000111000010000000000
+10011000010000011111111000000000
+01101000000010001100100001110010
+10011000010000001111111000000000
+11100000101000001000000000000000
+01101000000000001100100000110110
+10011000000000000111001000000000
+11011000110000000100011111010010
+00100000001000000111111100000001
+01101000000010001100100001000001
+00100000010000000000010001101010
+01100000000010001100100001000001
+00100000011000000000000000000000
+00100000010000000000010001101110
+00011000010000001000010000000001
+00011000010000010000010000000011
+00100000011000000000000000000000
+01101000000000001100100001011110
+00011111111000010111111000000011
+00011111111011111010001000000100
+01011000000000000100100001000111
+10011010001000001111111000000000
+10011000010000001000110000000000
+11101000110000001000000000000000
+01100000000000001100100001000000
+00100000011000000000000000000000
+01111000010001001111110000000000
+01111000010000111111110000000000
+01011000010101010101010101010101
+10011000000000000001111000000000
+01101000000000001100100001000000
+00011111111011011000010000000000
+01111001001000000000010000000001
+00011000010000110001110000000000
+00100000011000000000000000000000
+00100000010000000101001111000100
+01101000000000100100100001011110
+10011000000000000001001000000000
+00100000010000000010100100011000
+01101000000010001100100001000000
+00100000010000000010100100011111
+01011000000000000000010100000000
+00100000010000000010101010001111
+00100000010000000010100100100100
+00100000010000000000010001110111
+01111000010101111111110000000000
+01111000001001101111110000000000
+01111000001100001111110000000000
+01111000010100000111110000000000
+01111000001010000111110000000000
+01101000000000010100100000111001
+10011000000000000011011000000000
+00110111110000011000010000000000
+00100100001011000000010011000101
+01111000010001101111110000000000
+01111000001001011111110000000000
+01111000001000111111110000000000
+01111000001001001111110000000000
+00001001100000000000000000001000
+00011001100010010111111000000000
+01100000000000001100100011101010
+01101000000010001100100011101001
+10011000010001100111110000000000
+00100100001000101000010011000010
+00001001100000000000000000001000
+00011001100010010111111000000000
+01100000000000001100011110110000
+01101000000000001100100001111100
+00011111111001100111110000000010
+00100000001000101000010010100111
+01101000000000001100011110110000
+01101000000010001100100000110111
+10101000010000000000111000000000
+00100100001000001000010011000010
+00001001100000000000000000001000
+00011001100010010111111000000000
+11100000101000001000000000000000
+00011111111010010111111000000000
+00011111111000010111001000011111
+00100000001000101000010010110001
+00001001100000000000000000001000
+00011001100010010111111000000000
+11100000101000001000000000000000
+11000010000000000000010010101101
+00001001100000000000000000011000
+01111000001010000111110000000000
+11011011011000000000011001100100
+00011111111011110111111000000000
+00011111111100010111111000000000
+11100000101000011000000000000000
+01111000010001011111110000000000
+00100000010000000010100110111011
+00100000001000110000010011000010
+01111000001101111111110000000000
+01101000000000001000000000010111
+00011111111000001010001000000000
+00100000010000000010100110000001
+01111000010001101111110000000000
+00100000010000000010100100011000
+00100000011000000000000000000000
+00100000011000000000000000000000
+01111000010011011111110000000000
+01111000010001011111110000000000
+00100000001000000010011001001101
+00100000010000000000010000110011
+00100000001000000000010011000010
+00100000010000000010100100011000
+01101000000010001100100001000000
+00100000001000000010100100110011
+00100000010000000101001111000100
+01101000000000100100100001011110
+10011000000000000001001000000000
+00100000010000000000010001110111
+00100000010000000000010011000111
+01111001001000000010101000000000
+01111000001011101111110000000000
+01111000001100000111110000000000
+01111000010100001111110000000000
+00011001001100010111111000000000
+00011111111011001111111000000000
+00011111111100011111111000000000
+00001000000000001000011000101000
+01111000010011101111110000000000
+01111000001011011111110000000000
+01111000001000111111110000000000
+01111000001001001111110000000000
+01101000000000001100100011101001
+00001000000000001000011000001000
+01101000000000001100100000111000
+10011000000000000111001000000000
+11011000110000000100011111110010
+11101000110000001000000000000000
+00001000000000001000011000001000
+11000010000000000000010011100000
+01101000000000001100100011101110
+00001000000000001000011000001000
+01111000001001000111110000000000
+00001000000000001000011000011000
+01111000010001000111110000000000
+00110111110100111000001000000000
+00100000000000000000000001100100
+01111000010011101111110000000000
+01111000010011011111110000000000
+00100000011000000000000000000000
Index: output/eeprom.dat
===================================================================
--- /branch/USB/dongle_sdk/output/eeprom.dat	(revision 0)
+++ /branch/USB/dongle_sdk/output/eeprom.dat	(working copy)
@@ -0,0 +1,8192 @@
+00
+02
+aa
+55
+b6
+13
+c2
+84
+00
+0a
+c0
+42
+84
+31
+c0
+44
+84
+09
+c0
+00
+04
+29
+c0
+47
+00
+0b
+c0
+62
+00
+8b
+c0
+7b
+80
+12
+c0
+7c
+00
+4b
+c0
+7e
+00
+2a
+20
+20
+2a
+8e
+20
+20
+2a
+8e
+68
+11
+09
+81
+1f
+f1
+fe
+00
+1f
+e9
+7e
+00
+1f
+e6
+7e
+00
+1f
+e1
+7e
+ff
+60
+00
+c8
+ee
+20
+20
+29
+c1
+70
+8a
+05
+00
+20
+40
+49
+19
+20
+40
+00
+17
+20
+40
+00
+21
+20
+20
+48
+ec
+68
+00
+91
+be
+20
+7a
+00
+00
+68
+00
+91
+c7
+c0
+2d
+00
+1e
+68
+02
+11
+bf
+60
+02
+0b
+71
+20
+60
+00
+00
+68
+02
+11
+c3
+60
+02
+0b
+71
+20
+60
+00
+00
+68
+00
+91
+c7
+c0
+2d
+00
+48
+58
+00
+11
+c8
+60
+01
+0b
+7c
+58
+00
+12
+90
+60
+01
+0b
+7e
+70
+0b
+9a
+1a
+70
+0b
+b3
+a3
+20
+60
+00
+00
+68
+00
+8d
+38
+20
+7a
+00
+00
+68
+00
+8d
+37
+24
+3a
+4b
+ac
+68
+00
+8d
+45
+20
+3a
+4b
+86
+68
+00
+8d
+36
+c0
+01
+cb
+bf
+c0
+81
+4b
+86
+68
+00
+8d
+3a
+24
+3a
+4b
+86
+20
+40
+4b
+6f
+20
+20
+00
+37
+68
+00
+8d
+38
+c4
+01
+00
+00
+68
+00
+8d
+37
+c3
+81
+00
+00
+68
+00
+8d
+38
+79
+3f
+fe
+02
+60
+00
+8d
+38
+68
+00
+8d
+52
+20
+7a
+00
+00
+c0
+10
+4b
+89
+c0
+10
+cb
+a4
+c0
+11
+00
+44
+20
+20
+2a
+8c
+70
+0d
+52
+00
+df
+20
+00
+02
+d8
+c0
+13
+bc
+20
+20
+4b
+5e
+58
+00
+13
+58
+60
+01
+0b
+7c
+20
+60
+00
+00
+70
+8a
+26
+11
+68
+10
+8a
+20
+60
+00
+8b
+24
+1f
+e2
+72
+00
+20
+3a
+00
+5a
+d8
+a0
+0c
+6e
+20
+40
+49
+46
+68
+00
+8b
+24
+c0
+00
+80
+5d
+1f
+e6
+7c
+07
+20
+61
+00
+00
+68
+00
+8c
+6e
+1f
+e1
+7e
+80
+c0
+00
+00
+61
+20
+20
+49
+57
+68
+00
+8b
+22
+c2
+82
+00
+56
+20
+60
+00
+00
+68
+00
+8c
+6e
+c3
+83
+80
+00
+20
+40
+00
+87
+20
+20
+49
+88
+68
+00
+8c
+6e
+1f
+f1
+fe
+00
+1f
+e3
+7e
+00
+1f
+e1
+7e
+03
+c0
+00
+00
+68
+c0
+00
+80
+76
+20
+20
+49
+66
+68
+00
+8c
+6f
+c0
+01
+80
+6b
+20
+20
+49
+77
+68
+00
+8c
+74
+c0
+80
+49
+84
+68
+00
+8c
+75
+c0
+80
+49
+84
+68
+00
+8c
+6e
+c0
+00
+00
+72
+20
+20
+4a
+7e
+68
+00
+8c
+70
+c0
+80
+c9
+84
+70
+49
+7a
+03
+20
+20
+4a
+84
+68
+00
+8c
+6f
+c0
+04
+80
+79
+20
+20
+49
+7f
+70
+0d
+50
+01
+20
+40
+4b
+03
+68
+01
+0c
+70
+60
+01
+0d
+4e
+20
+00
+3a
+98
+68
+10
+8a
+20
+24
+5a
+00
+83
+68
+00
+8d
+43
+24
+5a
+00
+86
+20
+20
+4a
+fd
+1f
+e2
+72
+00
+d8
+a0
+0c
+76
+20
+20
+49
+46
+68
+00
+8c
+76
+60
+00
+c9
+78
+70
+0d
+43
+00
+70
+48
+b8
+03
+20
+60
+00
+00
+70
+49
+83
+00
+70
+49
+7b
+07
+20
+40
+74
+b9
+68
+02
+40
+a0
+60
+02
+48
+9f
+68
+08
+c2
+3a
+20
+40
+68
+0e
+20
+40
+00
+a8
+20
+40
+01
+89
+20
+40
+00
+9d
+20
+40
+00
+9b
+68
+00
+c8
+ba
+c0
+00
+01
+df
+c0
+00
+80
+b2
+c0
+07
+80
+ae
+20
+60
+00
+00
+20
+40
+00
+a4
+20
+20
+65
+d1
+20
+40
+65
+9c
+20
+40
+00
+a0
+20
+20
+65
+df
+da
+20
+11
+c7
+da
+40
+00
+00
+d8
+40
+00
+01
+20
+60
+00
+00
+da
+20
+13
+d2
+da
+40
+00
+70
+d8
+40
+00
+03
+20
+60
+00
+00
+68
+00
+c1
+de
+60
+00
+c8
+ed
+df
+20
+00
+80
+d8
+a0
+0d
+9e
+20
+40
+7e
+c6
+20
+20
+48
+ea
+20
+40
+00
+b7
+20
+40
+00
+bb
+20
+40
+01
+a7
+20
+20
+00
+af
+20
+40
+00
+b7
+20
+40
+00
+bb
+20
+40
+01
+0c
+20
+40
+01
+a7
+20
+20
+00
+b3
+70
+48
+b8
+00
+70
+48
+a4
+00
+70
+48
+a3
+00
+20
+60
+00
+00
+68
+00
+c8
+a4
+c1
+80
+00
+00
+20
+40
+00
+c1
+20
+40
+00
+cf
+20
+40
+03
+46
+20
+20
+00
+ee
+68
+00
+c8
+a3
+c3
+80
+00
+00
+79
+20
+7e
+00
+60
+00
+c8
+a3
+68
+00
+c8
+ed
+60
+00
+c1
+de
+70
+48
+b8
+00
+70
+0d
+38
+00
+70
+48
+b0
+01
+70
+48
+35
+00
+68
+02
+48
+9f
+20
+40
+04
+46
+20
+40
+04
+66
+20
+20
+01
+28
+68
+00
+c8
+b0
+c0
+00
+80
+e8
+68
+00
+c8
+b9
+c0
+00
+80
+e2
+68
+0a
+48
+b2
+1c
+42
+7e
+00
+98
+46
+7c
+00
+24
+41
+2d
+18
+1f
+e2
+24
+00
+68
+02
+48
+b2
+68
+08
+c8
+b6
+98
+40
+84
+00
+1a
+42
+7e
+00
+98
+46
+7c
+00
+24
+61
+00
+00
+79
+3f
+fe
+1c
+60
+02
+48
+b2
+70
+48
+b0
+01
+20
+20
+04
+66
+70
+48
+b9
+00
+20
+20
+04
+66
+1c
+42
+7e
+00
+60
+02
+48
+b2
+70
+48
+b1
+00
+20
+60
+00
+00
+da
+20
+0d
+9e
+20
+40
+04
+41
+60
+08
+c8
+ef
+18
+46
+7c
+50
+24
+61
+00
+00
+20
+20
+04
+66
+20
+40
+00
+f1
+20
+40
+00
+f8
+20
+20
+01
+02
+68
+00
+c8
+d5
+20
+7a
+00
+00
+d8
+e0
+00
+0b
+20
+40
+7f
+16
+24
+7a
+00
+00
+70
+48
+d5
+00
+20
+20
+2f
+a0
+68
+00
+c8
+d3
+20
+7a
+00
+00
+d8
+e0
+00
+0e
+20
+40
+7f
+16
+24
+7a
+00
+00
+70
+48
+d3
+00
+20
+40
+2f
+ac
+68
+04
+0d
+64
+60
+04
+48
+c5
+20
+60
+00
+00
+68
+00
+c8
+d4
+20
+7a
+00
+00
+d8
+e0
+00
+0c
+20
+40
+7f
+16
+24
+7a
+00
+00
+70
+48
+d4
+00
+20
+40
+2f
+b8
+68
+01
+8d
+74
+60
+01
+c8
+d0
+20
+60
+00
+00
+68
+00
+c8
+a4
+c1
+80
+80
+00
+20
+40
+01
+10
+20
+20
+01
+1c
+68
+00
+c8
+a3
+c3
+80
+80
+00
+79
+20
+7e
+01
+60
+00
+c8
+a3
+58
+00
+00
+00
+60
+01
+c8
+a5
+70
+41
+de
+04
+70
+48
+b8
+01
+70
+48
+35
+00
+70
+48
+40
+4e
+68
+02
+48
+42
+20
+20
+04
+46
+20
+40
+02
+64
+24
+37
+81
+28
+70
+49
+7c
+05
+d8
+c0
+47
+b0
+d8
+a0
+48
+7d
+df
+20
+00
+08
+20
+40
+7f
+01
+68
+00
+c8
+7f
+c0
+55
+01
+46
+c0
+2a
+81
+53
+c0
+11
+01
+63
+c0
+7f
+81
+7f
+d8
+a0
+47
+b0
+df
+20
+00
+42
+20
+20
+7e
+d4
+68
+00
+c8
+a4
+c1
+80
+80
+00
+68
+00
+c8
+ba
+24
+7a
+00
+00
+68
+00
+c7
+b3
+c0
+00
+81
+33
+c0
+01
+01
+37
+20
+60
+00
+00
+68
+00
+c9
+83
+c4
+00
+00
+00
+78
+57
+fc
+00
+20
+60
+00
+00
+68
+00
+c9
+83
+c4
+00
+80
+00
+20
+20
+01
+35
+68
+00
+c8
+ba
+24
+7a
+00
+00
+68
+00
+c9
+83
+1f
+e1
+fe
+01
+60
+00
+c9
+83
+20
+60
+00
+00
+68
+00
+c8
+ba
+24
+7a
+00
+00
+68
+00
+c9
+83
+1f
+e1
+fe
+02
+60
+00
+c9
+83
+20
+60
+00
+00
+68
+00
+c8
+80
+c0
+00
+81
+4a
+c0
+01
+01
+50
+20
+60
+00
+00
+70
+48
+a5
+01
+70
+48
+a8
+01
+70
+48
+a9
+80
+68
+03
+48
+9f
+60
+03
+48
+aa
+20
+60
+00
+00
+70
+48
+a6
+01
+70
+48
+a8
+02
+20
+20
+01
+4c
+68
+00
+c8
+80
+c0
+00
+81
+57
+c0
+01
+01
+5d
+20
+60
+00
+00
+20
+40
+01
+4b
+68
+00
+c8
+a5
+c0
+00
+81
+5b
+20
+60
+00
+00
+70
+48
+a5
+02
+20
+60
+00
+00
+20
+40
+01
+51
+68
+00
+c8
+a6
+c0
+00
+81
+61
+20
+60
+00
+00
+70
+48
+a6
+02
+20
+60
+00
+00
+68
+00
+c8
+80
+c0
+00
+81
+67
+c0
+01
+01
+71
+20
+60
+00
+00
+68
+00
+c8
+a5
+c0
+01
+01
+6a
+20
+60
+00
+00
+20
+40
+01
+3a
+68
+00
+c8
+a7
+1f
+e1
+fe
+01
+60
+00
+c8
+a7
+58
+00
+00
+00
+60
+01
+48
+a5
+20
+20
+01
+28
+68
+00
+c8
+a6
+c0
+80
+01
+74
+20
+60
+00
+00
+20
+40
+01
+40
+68
+00
+c8
+a7
+1f
+e1
+fe
+02
+60
+00
+c8
+a7
+20
+40
+01
+6e
+68
+00
+91
+c7
+c1
+2d
+00
+00
+70
+11
+c7
+5a
+20
+40
+00
+a0
+20
+40
+65
+d1
+20
+20
+65
+9a
+68
+00
+c8
+80
+c0
+00
+81
+83
+c0
+01
+01
+86
+20
+60
+00
+00
+68
+02
+48
+81
+60
+02
+48
+da
+20
+60
+00
+00
+68
+02
+48
+81
+60
+02
+48
+d6
+20
+60
+00
+00
+70
+49
+00
+00
+58
+00
+49
+05
+60
+01
+49
+01
+60
+01
+49
+03
+20
+60
+00
+00
+df
+20
+00
+1f
+d8
+40
+0c
+b6
+68
+01
+49
+03
+1f
+e2
+0a
+00
+18
+42
+0c
+00
+20
+40
+7f
+01
+68
+00
+c9
+00
+1f
+e0
+fe
+01
+60
+00
+c9
+00
+58
+00
+49
+03
+1f
+e2
+22
+00
+d8
+40
+49
+65
+ea
+21
+00
+00
+1f
+e0
+fe
+20
+98
+46
+7c
+00
+24
+21
+01
+9f
+58
+00
+49
+05
+e2
+21
+00
+00
+20
+60
+00
+00
+78
+54
+7c
+00
+68
+00
+c9
+00
+20
+7a
+00
+00
+78
+34
+7c
+00
+68
+01
+49
+01
+20
+60
+00
+00
+70
+80
+04
+ff
+68
+00
+8d
+39
+20
+5a
+03
+16
+20
+40
+48
+d3
+68
+00
+8d
+50
+20
+7a
+00
+00
+70
+0d
+50
+00
+68
+01
+0d
+4e
+d8
+40
+02
+ba
+98
+46
+7c
+00
+24
+62
+80
+00
+68
+00
+8c
+b6
+c1
+dd
+00
+00
+68
+00
+8c
+b7
+c0
+50
+01
+c6
+c0
+50
+81
+bc
+c0
+53
+30
+41
+c0
+53
+81
+cb
+c0
+54
+81
+d1
+c0
+58
+01
+d3
+20
+20
+30
+2a
+68
+00
+8c
+b8
+c0
+00
+81
+c1
+c0
+42
+01
+c4
+c0
+53
+b0
+39
+20
+20
+30
+2a
+68
+00
+c8
+a7
+60
+00
+8c
+f7
+20
+20
+30
+3f
+20
+40
+00
+b8
+20
+20
+01
+c1
+68
+00
+8c
+b8
+c0
+40
+81
+c9
+20
+20
+30
+2a
+20
+40
+02
+26
+20
+20
+30
+3f
+68
+00
+c8
+a4
+c0
+00
+01
+cf
+c0
+00
+b0
+39
+20
+60
+00
+00
+70
+0c
+f7
+a0
+20
+20
+30
+3f
+70
+0c
+fa
+07
+20
+20
+30
+49
+68
+00
+8c
+b8
+c0
+7f
+e5
+9a
+70
+48
+b8
+02
+68
+00
+c9
+00
+c0
+01
+81
+dd
+20
+40
+01
+8e
+68
+00
+c9
+00
+c0
+01
+81
+dd
+70
+0c
+f7
+00
+20
+20
+30
+3f
+70
+0c
+f7
+01
+20
+20
+30
+3f
+20
+40
+02
+04
+20
+40
+02
+0a
+20
+40
+02
+35
+20
+40
+01
+e7
+20
+40
+01
+eb
+20
+40
+02
+68
+20
+40
+01
+a7
+20
+20
+01
+e0
+68
+00
+c8
+a4
+c1
+80
+00
+00
+20
+40
+00
+bd
+20
+20
+02
+56
+68
+00
+c8
+a4
+c1
+80
+80
+00
+20
+40
+01
+10
+20
+40
+01
+1c
+68
+00
+c8
+a7
+20
+7a
+00
+00
+70
+48
+b7
+00
+20
+40
+00
+b7
+20
+40
+02
+54
+20
+20
+02
+07
+20
+40
+7f
+e9
+68
+0a
+48
+57
+1c
+42
+7e
+00
+98
+46
+7c
+00
+24
+41
+2d
+18
+1f
+e2
+24
+00
+68
+02
+48
+57
+68
+08
+c8
+5b
+98
+40
+84
+00
+1a
+42
+7e
+00
+98
+46
+7c
+00
+24
+61
+00
+00
+79
+3f
+fe
+1c
+60
+02
+48
+57
+20
+20
+7f
+e7
+70
+48
+b7
+01
+70
+48
+bc
+00
+70
+48
+5b
+ff
+58
+00
+00
+00
+60
+02
+48
+57
+20
+60
+00
+00
+68
+00
+c8
+b7
+20
+7a
+00
+00
+20
+40
+01
+f5
+24
+74
+00
+00
+20
+40
+02
+1f
+20
+40
+02
+17
+68
+00
+c8
+bc
+1f
+e0
+fe
+01
+1f
+e1
+7e
+01
+60
+00
+c8
+bc
+c0
+00
+02
+1c
+c0
+00
+82
+24
+20
+60
+00
+00
+68
+00
+c9
+7c
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+c9
+7c
+20
+60
+00
+00
+68
+00
+c9
+7c
+24
+3a
+02
+26
+20
+20
+00
+b7
+68
+00
+c9
+7b
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+c9
+7b
+20
+60
+00
+00
+68
+00
+c9
+7b
+24
+3a
+00
+b7
+70
+48
+a4
+01
+70
+48
+a3
+00
+20
+60
+00
+00
+68
+00
+c9
+81
+20
+5a
+02
+52
+68
+00
+c9
+7e
+c3
+80
+00
+00
+79
+20
+7e
+00
+60
+00
+c9
+7e
+70
+49
+7d
+01
+70
+49
+82
+00
+58
+00
+00
+00
+60
+01
+49
+7f
+70
+48
+5b
+60
+20
+20
+02
+07
+68
+00
+c8
+a4
+c1
+00
+00
+00
+68
+00
+c9
+81
+24
+7a
+00
+00
+68
+00
+c9
+7d
+20
+7a
+00
+00
+20
+40
+01
+f5
+24
+74
+00
+00
+68
+01
+49
+7f
+1f
+e0
+fe
+01
+60
+01
+49
+7f
+d8
+40
+07
+d0
+98
+46
+7c
+00
+20
+21
+02
+4e
+20
+40
+02
+17
+68
+00
+c9
+82
+1f
+e0
+fe
+01
+1f
+e1
+7e
+01
+60
+00
+c9
+82
+c0
+00
+02
+4b
+c0
+00
+82
+26
+20
+60
+00
+00
+68
+00
+c9
+7c
+24
+3a
+02
+26
+20
+20
+02
+61
+70
+49
+81
+01
+20
+20
+02
+61
+70
+49
+7d
+00
+20
+60
+00
+00
+70
+49
+7d
+01
+20
+60
+00
+00
+70
+48
+bb
+01
+20
+20
+30
+95
+68
+00
+c8
+b8
+c1
+01
+00
+00
+68
+00
+c8
+bb
+20
+7a
+00
+00
+d8
+e0
+00
+08
+20
+40
+7f
+16
+24
+7a
+00
+00
+70
+48
+bb
+00
+70
+49
+7b
+00
+70
+49
+7c
+00
+20
+40
+02
+29
+70
+48
+a4
+07
+70
+48
+a3
+00
+20
+20
+01
+28
+20
+40
+01
+28
+20
+40
+04
+80
+24
+77
+80
+00
+20
+20
+03
+05
+68
+00
+c8
+a4
+c1
+83
+80
+00
+20
+40
+02
+8f
+20
+40
+02
+a3
+20
+40
+02
+64
+24
+37
+81
+28
+20
+40
+02
+9f
+20
+42
+83
+49
+68
+00
+c8
+b0
+20
+5a
+02
+50
+70
+48
+a4
+00
+68
+00
+c8
+a3
+79
+20
+7e
+00
+60
+00
+c8
+a3
+68
+00
+c8
+b8
+1f
+e6
+7c
+02
+24
+42
+82
+86
+20
+40
+01
+28
+20
+40
+02
+54
+20
+40
+02
+9f
+20
+22
+82
+88
+68
+02
+48
+5e
+68
+0a
+48
+d6
+98
+46
+7c
+00
+20
+22
+82
+8b
+68
+02
+48
+5e
+68
+0a
+48
+da
+98
+46
+7c
+00
+20
+22
+82
+8d
+20
+60
+00
+00
+70
+48
+b8
+00
+20
+60
+00
+00
+68
+00
+c8
+df
+60
+00
+c8
+41
+20
+60
+00
+00
+68
+00
+c8
+e2
+20
+20
+02
+89
+68
+00
+c8
+e5
+20
+20
+02
+89
+68
+00
+c8
+a3
+c3
+83
+80
+00
+79
+20
+7e
+07
+60
+00
+c8
+a3
+70
+48
+bc
+00
+70
+48
+b8
+01
+58
+00
+00
+00
+60
+01
+c8
+f5
+60
+03
+c8
+e0
+20
+40
+02
+9f
+24
+62
+80
+00
+68
+00
+c8
+41
+60
+00
+c8
+df
+68
+00
+c8
+40
+60
+00
+c8
+de
+20
+60
+00
+00
+68
+02
+48
+5e
+68
+0a
+48
+9f
+98
+46
+7c
+00
+20
+60
+00
+00
+68
+00
+c8
+bc
+1f
+e0
+fe
+01
+1f
+e1
+7e
+03
+60
+00
+c8
+bc
+c0
+00
+02
+c6
+c0
+00
+82
+e0
+c0
+01
+02
+ac
+c0
+01
+82
+e0
+20
+60
+00
+00
+20
+40
+01
+4b
+68
+02
+48
+da
+20
+3a
+02
+a3
+20
+40
+04
+46
+68
+00
+c8
+e6
+20
+5a
+02
+c1
+68
+00
+c8
+e4
+60
+00
+c8
+40
+68
+08
+c8
+f7
+da
+20
+0f
+9e
+20
+40
+04
+3a
+60
+08
+c8
+f7
+20
+40
+04
+41
+60
+08
+c8
+f4
+18
+46
+7c
+50
+24
+61
+00
+00
+68
+08
+c8
+e5
+20
+40
+04
+6a
+60
+08
+c8
+e5
+60
+00
+c8
+e4
+20
+60
+00
+00
+70
+48
+e6
+01
+d8
+40
+00
+00
+20
+40
+04
+6e
+60
+00
+c8
+e4
+20
+60
+00
+00
+20
+40
+01
+51
+68
+02
+48
+d6
+20
+3a
+02
+a3
+20
+40
+04
+46
+68
+00
+c8
+e3
+20
+5a
+02
+db
+68
+00
+c8
+e1
+60
+00
+c8
+40
+68
+08
+c8
+f6
+da
+20
+10
+9e
+20
+40
+04
+3a
+60
+08
+c8
+f6
+20
+40
+04
+41
+60
+08
+c8
+f3
+18
+46
+7c
+50
+24
+61
+00
+00
+68
+08
+c8
+e2
+20
+40
+04
+6a
+60
+08
+c8
+e2
+60
+00
+c8
+e1
+20
+60
+00
+00
+70
+48
+e3
+01
+d8
+40
+00
+00
+20
+40
+04
+6e
+60
+00
+c8
+e1
+20
+60
+00
+00
+20
+40
+01
+4b
+68
+02
+48
+9f
+20
+40
+04
+46
+68
+00
+c8
+e0
+20
+5a
+02
+f4
+68
+00
+c8
+de
+60
+00
+c8
+40
+68
+08
+c8
+f5
+da
+20
+0e
+9e
+20
+40
+04
+3a
+60
+08
+c8
+f5
+20
+40
+04
+41
+60
+08
+c8
+f2
+18
+46
+7c
+50
+24
+61
+00
+00
+68
+08
+c8
+df
+20
+40
+04
+6a
+60
+08
+c8
+df
+60
+00
+c8
+de
+20
+60
+00
+00
+70
+48
+e0
+01
+68
+00
+c8
+de
+60
+00
+c8
+40
+20
+60
+00
+00
+68
+00
+c7
+b1
+1f
+e9
+7e
+00
+60
+00
+c8
+34
+1f
+e0
+fe
+01
+d8
+c0
+47
+b1
+98
+c0
+8c
+00
+e8
+c1
+80
+00
+60
+01
+c8
+73
+68
+00
+c7
+b1
+1f
+e3
+7e
+00
+1f
+e1
+7e
+03
+60
+00
+c8
+79
+20
+60
+00
+00
+68
+00
+c7
+b0
+60
+00
+c8
+37
+20
+40
+02
+f8
+68
+00
+c7
+b1
+2f
+ef
+fe
+00
+20
+20
+83
+0e
+20
+40
+03
+0f
+20
+40
+04
+54
+20
+40
+04
+ca
+20
+20
+04
+c2
+70
+48
+36
+00
+68
+00
+c8
+37
+c0
+00
+83
+13
+c0
+01
+03
+18
+68
+00
+c9
+7a
+c2
+80
+03
+20
+20
+20
+03
+1a
+70
+49
+7a
+00
+20
+60
+00
+00
+68
+00
+c9
+7a
+c2
+80
+83
+24
+68
+00
+c8
+b8
+20
+7a
+00
+00
+c0
+00
+83
+2b
+c0
+01
+03
+33
+c0
+01
+83
+3d
+20
+60
+00
+00
+68
+00
+c9
+7a
+79
+3f
+fe
+00
+60
+00
+c9
+7a
+20
+20
+03
+27
+68
+00
+c9
+7a
+79
+3f
+fe
+01
+60
+00
+c9
+7a
+70
+48
+36
+01
+58
+00
+00
+ff
+60
+00
+c7
+d2
+20
+60
+00
+00
+70
+48
+b8
+01
+20
+40
+01
+2b
+24
+77
+80
+00
+70
+48
+36
+08
+df
+20
+00
+08
+d8
+c0
+48
+a8
+d8
+a0
+47
+d2
+20
+20
+7f
+01
+20
+40
+01
+a1
+24
+74
+00
+00
+70
+48
+36
+1f
+df
+20
+00
+1f
+1f
+e2
+0c
+00
+d8
+a0
+47
+d2
+20
+40
+7f
+01
+68
+01
+47
+d5
+60
+01
+48
+eb
+20
+60
+00
+00
+68
+00
+c7
+b2
+c0
+00
+83
+2b
+c0
+7f
+83
+2b
+70
+0d
+43
+00
+70
+48
+36
+01
+df
+20
+00
+01
+d8
+c0
+49
+78
+d8
+a0
+47
+d2
+20
+20
+7f
+01
+20
+40
+02
+64
+24
+37
+81
+28
+20
+20
+03
+49
+20
+40
+03
+5a
+24
+34
+01
+28
+68
+00
+c8
+34
+20
+3a
+01
+28
+1f
+e0
+fe
+02
+98
+00
+72
+00
+d8
+c0
+47
+b0
+d8
+a0
+48
+7d
+20
+40
+7f
+01
+70
+48
+b7
+00
+68
+00
+c8
+ba
+20
+5a
+02
+54
+68
+00
+c8
+7f
+c0
+00
+83
+68
+c0
+01
+03
+88
+c0
+7f
+83
+dd
+20
+20
+01
+28
+20
+40
+7f
+e9
+68
+00
+c8
+79
+68
+08
+c8
+7a
+98
+46
+7c
+00
+24
+42
+ff
+e7
+68
+00
+c8
+79
+60
+00
+c8
+7a
+68
+01
+c8
+73
+68
+09
+c8
+76
+98
+46
+7c
+00
+24
+42
+ff
+e7
+68
+01
+c8
+73
+60
+01
+c8
+76
+20
+60
+00
+00
+20
+40
+01
+3a
+20
+40
+00
+e4
+68
+00
+c8
+b0
+68
+08
+c8
+7d
+28
+4f
+fe
+03
+79
+20
+fe
+00
+60
+00
+c8
+b0
+c0
+00
+83
+e7
+68
+00
+c8
+b9
+68
+08
+c8
+7d
+28
+4f
+fe
+04
+79
+20
+fe
+00
+60
+00
+c8
+b9
+68
+00
+c8
+80
+c0
+67
+83
+eb
+58
+00
+00
+01
+60
+00
+8d
+54
+68
+03
+c8
+80
+e0
+a3
+80
+00
+68
+00
+c8
+80
+24
+5a
+03
+80
+68
+00
+c8
+80
+20
+5a
+03
+84
+20
+20
+31
+b8
+70
+48
+d5
+01
+58
+00
+01
+80
+d8
+e0
+00
+0b
+20
+20
+7f
+08
+70
+48
+d5
+00
+58
+00
+00
+00
+d8
+e0
+00
+0b
+20
+20
+7f
+08
+20
+40
+01
+40
+68
+08
+c8
+7d
+28
+4f
+fe
+03
+20
+20
+83
+e9
+68
+00
+c8
+80
+c0
+00
+03
+91
+c0
+01
+03
+c6
+c0
+01
+83
+ad
+20
+20
+01
+28
+68
+00
+c8
+82
+60
+00
+c8
+b8
+70
+48
+82
+00
+d8
+a0
+0d
+64
+20
+40
+03
+a2
+68
+04
+0d
+64
+24
+5a
+03
+a5
+68
+04
+0d
+64
+20
+5a
+03
+a9
+68
+04
+0d
+64
+60
+04
+48
+bd
+68
+0c
+48
+c5
+98
+46
+7c
+00
+24
+42
+b1
+ed
+68
+04
+48
+bd
+60
+04
+48
+c5
+20
+20
+01
+28
+d8
+c0
+48
+81
+df
+20
+00
+08
+20
+20
+7f
+01
+70
+48
+d3
+01
+58
+00
+01
+80
+d8
+e0
+00
+0e
+20
+20
+7f
+08
+70
+48
+d3
+00
+58
+00
+00
+00
+d8
+e0
+00
+0e
+20
+20
+7f
+08
+d8
+a0
+0d
+74
+20
+40
+03
+bb
+68
+01
+0d
+75
+24
+5a
+03
+be
+68
+01
+0d
+75
+20
+5a
+03
+c2
+68
+01
+8d
+74
+60
+01
+c8
+cd
+68
+09
+c8
+d0
+98
+46
+7c
+00
+24
+42
+b2
+07
+68
+01
+c8
+cd
+60
+01
+c8
+d0
+20
+20
+01
+28
+d8
+c0
+48
+80
+df
+20
+00
+03
+20
+20
+7f
+01
+70
+48
+d4
+01
+58
+00
+01
+80
+d8
+e0
+00
+0c
+20
+20
+7f
+08
+70
+48
+d4
+00
+58
+00
+00
+00
+d8
+e0
+00
+0c
+20
+20
+7f
+08
+d8
+a0
+13
+bc
+20
+40
+03
+d0
+68
+01
+13
+bc
+60
+01
+13
+cc
+68
+09
+13
+cf
+98
+46
+7c
+00
+24
+42
+83
+db
+68
+01
+13
+cc
+60
+01
+13
+cf
+20
+20
+01
+28
+d8
+c0
+48
+80
+df
+20
+00
+02
+20
+20
+7f
+01
+70
+48
+d4
+01
+58
+00
+01
+80
+d8
+e0
+00
+0c
+20
+20
+7f
+08
+70
+48
+d4
+00
+58
+00
+00
+00
+d8
+e0
+00
+0c
+20
+20
+7f
+08
+70
+0d
+52
+22
+20
+20
+31
+b9
+68
+00
+c8
+80
+c0
+00
+83
+e1
+c0
+01
+03
+e4
+20
+60
+00
+00
+20
+40
+01
+3a
+68
+02
+48
+81
+20
+20
+01
+84
+20
+40
+01
+40
+68
+02
+48
+81
+20
+20
+01
+87
+68
+02
+48
+87
+20
+20
+01
+84
+68
+02
+48
+87
+20
+20
+01
+87
+68
+01
+48
+82
+68
+09
+48
+eb
+98
+46
+7c
+00
+20
+22
+83
+f0
+20
+60
+00
+00
+68
+00
+c8
+81
+c0
+61
+03
+fd
+68
+00
+c9
+00
+20
+7a
+00
+00
+58
+00
+49
+01
+20
+40
+01
+98
+68
+00
+c9
+00
+1f
+e0
+ff
+ff
+60
+00
+c9
+00
+68
+00
+c8
+81
+c0
+60
+81
+db
+c0
+61
+03
+fd
+20
+60
+00
+00
+58
+00
+00
+00
+60
+01
+48
+eb
+60
+00
+c8
+b8
+20
+40
+01
+89
+68
+00
+c8
+84
+c0
+2a
+84
+05
+c0
+55
+04
+07
+20
+60
+00
+00
+70
+0c
+f7
+02
+20
+20
+30
+3f
+70
+0c
+f7
+03
+20
+20
+30
+3f
+60
+08
+80
+17
+18
+40
+a2
+00
+20
+40
+29
+81
+58
+00
+05
+00
+20
+40
+2a
+8f
+70
+89
+06
+01
+70
+89
+00
+3c
+70
+89
+01
+e0
+20
+00
+00
+0a
+70
+89
+02
+01
+70
+89
+02
+3d
+20
+00
+00
+0a
+70
+89
+03
+b7
+20
+00
+00
+0a
+70
+89
+02
+7d
+68
+00
+c1
+de
+c0
+02
+04
+22
+20
+20
+04
+1b
+70
+89
+4b
+ba
+70
+89
+55
+d0
+70
+89
+56
+e0
+70
+89
+57
+88
+70
+89
+58
+3c
+70
+89
+59
+10
+20
+20
+29
+53
+70
+89
+4b
+ba
+70
+89
+55
+d0
+70
+89
+56
+c0
+70
+89
+57
+88
+70
+89
+58
+6c
+70
+89
+59
+10
+20
+20
+29
+5b
+20
+80
+00
+00
+68
+10
+80
+43
+79
+20
+7e
+03
+60
+10
+80
+43
+20
+40
+64
+0d
+70
+89
+5b
+86
+70
+89
+5c
+a0
+20
+20
+20
+04
+18
+00
+2a
+08
+20
+20
+28
+fa
+20
+40
+29
+bb
+20
+7a
+00
+00
+68
+08
+c8
+f0
+da
+20
+0d
+9e
+20
+40
+04
+3a
+60
+08
+c8
+f0
+20
+60
+00
+00
+1a
+22
+7e
+00
+98
+40
+8a
+00
+68
+00
+80
+18
+e0
+a0
+80
+00
+18
+40
+84
+01
+18
+41
+04
+ff
+20
+60
+00
+00
+d8
+40
+00
+00
+df
+20
+01
+00
+1a
+22
+0c
+00
+20
+20
+2e
+64
+20
+60
+00
+00
+60
+02
+48
+5e
+da
+20
+00
+00
+df
+20
+00
+04
+d8
+c0
+48
+5e
+e8
+c0
+80
+00
+9a
+20
+a2
+00
+c2
+00
+04
+4a
+1a
+22
+7e
+00
+60
+01
+48
+e7
+68
+00
+c8
+e7
+68
+08
+c8
+e8
+98
+40
+fe
+00
+60
+00
+c8
+e9
+20
+60
+00
+00
+68
+00
+c8
+36
+1f
+e0
+fe
+02
+60
+00
+c8
+38
+68
+00
+c8
+37
+60
+00
+c7
+f2
+68
+00
+c8
+36
+1f
+e9
+fe
+00
+68
+08
+c8
+35
+18
+41
+04
+03
+18
+43
+84
+00
+98
+41
+fe
+00
+68
+08
+c8
+72
+98
+40
+fe
+00
+e0
+a0
+80
+00
+68
+00
+c8
+36
+98
+00
+72
+00
+d8
+c0
+47
+d2
+20
+20
+7f
+01
+68
+08
+c8
+41
+20
+40
+04
+6a
+60
+08
+c8
+41
+20
+60
+00
+00
+20
+40
+04
+6e
+18
+40
+84
+01
+18
+41
+04
+03
+20
+60
+00
+00
+68
+00
+c8
+5e
+1f
+e1
+7e
+03
+1f
+ef
+a2
+04
+58
+00
+48
+47
+9a
+20
+fe
+00
+98
+40
+8c
+00
+e8
+c0
+80
+00
+60
+00
+c8
+40
+20
+60
+00
+00
+78
+44
+fc
+00
+78
+43
+fc
+00
+58
+55
+55
+55
+98
+00
+1e
+00
+68
+00
+c8
+40
+1f
+ed
+84
+00
+79
+20
+04
+01
+18
+43
+1c
+00
+20
+60
+00
+00
+20
+40
+53
+c4
+68
+02
+48
+5e
+98
+00
+12
+00
+20
+40
+29
+18
+68
+08
+c8
+40
+20
+40
+29
+1f
+58
+00
+05
+00
+20
+40
+2a
+8f
+20
+40
+29
+24
+20
+40
+04
+77
+78
+57
+fc
+00
+78
+26
+fc
+00
+78
+30
+fc
+00
+78
+50
+7c
+00
+78
+28
+7c
+00
+68
+01
+48
+39
+98
+00
+36
+00
+37
+c1
+84
+00
+24
+2c
+04
+c5
+78
+46
+fc
+00
+78
+25
+fc
+00
+78
+23
+fc
+00
+78
+24
+fc
+00
+09
+80
+00
+08
+19
+89
+7e
+00
+60
+00
+c8
+ea
+68
+08
+c8
+e9
+98
+46
+7c
+00
+24
+22
+84
+c2
+09
+80
+00
+08
+19
+89
+7e
+00
+60
+00
+c7
+b0
+68
+00
+c8
+7c
+1f
+e6
+7c
+02
+20
+22
+84
+a7
+68
+00
+c7
+b0
+68
+08
+c8
+37
+a8
+40
+0e
+00
+24
+20
+84
+c2
+09
+80
+00
+08
+19
+89
+7e
+00
+e0
+a0
+80
+00
+1f
+e9
+7e
+00
+1f
+e1
+72
+1f
+20
+22
+84
+b1
+09
+80
+00
+08
+19
+89
+7e
+00
+e0
+a0
+80
+00
+c2
+00
+04
+ad
+09
+80
+00
+18
+78
+28
+7c
+00
+db
+60
+06
+64
+1f
+ef
+7e
+00
+1f
+f1
+7e
+00
+e0
+a1
+80
+00
+78
+45
+fc
+00
+20
+40
+29
+bb
+20
+23
+04
+c2
+78
+37
+fc
+00
+68
+00
+80
+17
+1f
+e0
+a2
+00
+20
+40
+29
+81
+78
+46
+fc
+00
+20
+40
+29
+18
+20
+60
+00
+00
+20
+60
+00
+00
+78
+4d
+fc
+00
+78
+45
+fc
+00
+20
+20
+26
+4d
+20
+40
+04
+33
+20
+20
+04
+c2
+20
+40
+29
+18
+68
+08
+c8
+40
+20
+20
+29
+33
+20
+40
+53
+c4
+68
+02
+48
+5e
+98
+00
+12
+00
+20
+40
+04
+77
+20
+40
+04
+c7
+79
+20
+2a
+00
+78
+2e
+fc
+00
+78
+30
+7c
+00
+78
+50
+fc
+00
+19
+31
+7e
+00
+1f
+ec
+fe
+00
+1f
+f1
+fe
+00
+08
+00
+86
+28
+78
+4e
+fc
+00
+78
+2d
+fc
+00
+78
+23
+fc
+00
+78
+24
+fc
+00
+68
+00
+c8
+e9
+08
+00
+86
+08
+68
+00
+c8
+38
+98
+00
+72
+00
+d8
+c0
+47
+f2
+e8
+c0
+80
+00
+08
+00
+86
+08
+c2
+00
+04
+e0
+68
+00
+c8
+ee
+08
+00
+86
+08
+78
+24
+7c
+00
+08
+00
+86
+18
+78
+44
+7c
+00
+37
+d3
+82
+00
+20
+00
+00
+64
+78
+4e
+fc
+00
+78
+4d
+fc
+00
+20
+60
+00
+00
+50
+0f
+aa
+55
+01
+00
+00
+40
+01
+aa
+55
+02
+00
+10
+40
+20
+42
+aa
+55
+01
+00
+18
+40
+10
+aa
+55
+02
+00
+1e
+40
+80
+11
+aa
+55
+0d
+00
+96
+47
+4b
+ba
+55
+d0
+56
+e0
+57
+88
+58
+3c
+59
+10
+ff
+aa
+55
+02
+00
+c3
+40
+96
+47
+aa
+55
+09
+00
+be
+11
+01
+51
+31
+01
+10
+51
+31
+00
+30
+aa
+55
+0c
+00
+e4
+0b
+04
+04
+03
+09
+04
+06
+59
+49
+43
+48
+49
+50
+aa
+55
+10
+00
+07
+0c
+0f
+57
+69
+72
+65
+6c
+65
+73
+73
+20
+44
+65
+76
+69
+63
+65
+aa
+55
+0b
+00
+47
+0c
+0a
+62
+31
+32
+30
+33
+30
+30
+30
+30
+31
+aa
+55
+01
+00
+6d
+0c
+00
+aa
+55
+1b
+00
+c8
+11
+1a
+06
+bc
+ff
+09
+88
+a1
+01
+85
+04
+19
+00
+2a
+ff
+00
+15
+00
+26
+ff
+00
+75
+08
+95
+01
+81
+00
+c0
+aa
+55
+40
+00
+58
+13
+3f
+05
+01
+09
+06
+a1
+01
+75
+01
+95
+08
+05
+07
+19
+e0
+29
+e7
+15
+00
+25
+01
+81
+02
+95
+01
+75
+08
+81
+03
+95
+05
+75
+01
+05
+08
+19
+01
+29
+05
+91
+02
+95
+01
+75
+03
+91
+03
+95
+06
+75
+08
+15
+00
+25
+ff
+05
+07
+19
+00
+29
+ff
+81
+00
+c0
+aa
+55
+a4
+00
+90
+12
+a3
+05
+01
+09
+02
+a1
+01
+85
+01
+09
+01
+a1
+00
+05
+09
+19
+01
+29
+05
+15
+00
+25
+01
+95
+05
+75
+01
+81
+02
+95
+01
+75
+03
+81
+01
+05
+01
+09
+30
+09
+31
+16
+01
+f8
+26
+ff
+07
+75
+10
+95
+02
+81
+06
+09
+38
+15
+81
+25
+7f
+75
+08
+95
+01
+81
+06
+05
+0c
+0a
+38
+02
+95
+01
+81
+06
+c0
+c0
+05
+01
+09
+80
+a1
+01
+85
+02
+05
+01
+19
+81
+29
+88
+15
+00
+25
+01
+95
+08
+75
+01
+81
+06
+c0
+05
+0c
+09
+01
+a1
+01
+85
+03
+15
+00
+26
+80
+03
+19
+00
+2a
+80
+03
+75
+10
+95
+01
+81
+00
+c0
+06
+00
+ff
+09
+0e
+a1
+01
+85
+ba
+95
+1f
+75
+08
+26
+ff
+00
+15
+00
+09
+01
+91
+02
+85
+ba
+95
+1f
+75
+08
+26
+ff
+00
+15
+00
+09
+01
+81
+02
+c0
+aa
+55
+01
+00
+de
+41
+02
+aa
+55
+01
+00
+7c
+48
+02
+aa
+55
+01
+00
+ba
+48
+00
+aa
+55
+01
+00
+72
+48
+00
+aa
+55
+02
+00
+39
+48
+30
+75
+aa
+55
+01
+00
+b6
+48
+1e
+aa
+55
+01
+00
+b8
+48
+00
+aa
+55
+10
+00
+47
+48
+00
+13
+2c
+42
+06
+15
+36
+48
+0f
+1a
+3a
+4c
+11
+23
+31
+4d
+aa
+55
+04
+00
+42
+48
+20
+15
+10
+05
+aa
+55
+06
+00
+a0
+40
+36
+26
+10
+09
+07
+2b
+aa
+55
+02
+00
+03
+42
+80
+1f
+aa
+55
+01
+00
+11
+42
+20
+aa
+55
+01
+00
+3a
+42
+14
+aa
+55
+03
+00
+d2
+13
+01
+00
+24
+aa
+55
+08
+00
+75
+41
+8f
+1d
+ca
+00
+0a
+0b
+ef
+07
+aa
+55
+01
+00
+57
+41
+00
+aa
+55
+02
+00
+bd
+40
+02
+24
+aa
+55
+01
+00
+75
+49
+00
+aa
+55
+02
+00
+41
+42
+00
+84
+74
+89
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+87
+93
Index: output/memmap.format
===================================================================
--- /branch/USB/dongle_sdk/output/memmap.format	(revision 0)
+++ /branch/USB/dongle_sdk/output/memmap.format	(working copy)
@@ -0,0 +1,1880 @@
+0x0000 mem_le_adv_transmit
+0x0001 mem_le_adv_waitcnt
+0x0002 mem_le_adv_rcv
+0x0003 mem_le_req_rcv
+0x0004 mem_le_scanrsp_rcv
+0x0005 mem_le_conn_rcv
+0x0006 mem_inquiryscan_waitcnt
+0x0007 mem_inquiryscan_rcvcnt
+0x0008 mem_pagescan_waitcnt
+0x0009 mem_pagescan_rcvcnt
+0x000a mem_pagescan_rcvfhscnt
+0x000b mem_slave_rcvcnt
+0x000c mem_page_transmit
+0x000d mem_page_rcv
+0x000e mem_page_rcv_fhs
+0x000f mem_master_rcvcnt
+0x0010 mem_fhs_wait_counter
+0x0011 mem_newconnto_counter
+0x0012 mem_inquiry_transmit
+0x0013 mem_inquiry_rcv
+0x0014 mem_fw_ver
+0x0015 mem_current_context
+0x0016 mem_le_ch_mapped
+0x0017 mem_last_freq
+0x0018 mem_rssi
+0x0019 mem_rx_type
+0x001a mem_rx_hec_err
+0x001c mem_rx_crc_err
+0x001e mem_context_ptr
+0x0020 mem_display
+0x0028 mem_bcd
+0x0030 mem_state
+0x0031 mem_mode
+0x0032 mem_tsniff
+0x0034 mem_sniff_anchor
+0x0038 mem_clk_offset
+0x003e mem_rx_window
+0x0040 mem_plap
+0x0043 mem_puap
+0x0044 mem_pnap
+0x0046 mem_conn_handle
+0x0047 mem_arq
+0x0048 mem_lmp_to_send
+0x0049 mem_lmi_opcode
+0x004a mem_lmo_reason
+0x004b mem_op
+0x004c mem_state_map
+0x004d mem_supervision_timer
+0x0051 mem_supervision_to
+0x0053 mem_name_offset
+0x0054 mem_key_size
+0x0055 mem_conn_sm
+0x0056 mem_aco
+0x0062 mem_kc
+0x0072 mem_conn_timer
+0x0073 mem_sniff_attempt
+0x0074 mem_sniff_timeout
+0x0075 mem_dsniff
+0x0077 mem_amaddr
+0x0078 mem_lmo_opcode1
+0x0079 mem_lmi_opcode1
+0x007a mem_lmo_reason1
+0x007b mem_lmo_tid1
+0x007c mem_lmo_opcode2
+0x007d mem_lmi_opcode2
+0x007e mem_lmo_reason2
+0x007f mem_lmo_tid2
+0x0080 mem_hci_version
+0x0083 mem_acl_pktlen
+0x0085 mem_sco_pktlen
+0x0086 mem_acl_pktcnt
+0x0088 mem_sco_pktcnt
+0x008a mem_current_sniff_attempt
+0x008b mem_current_sniff_timeout
+0x008c mem_sniff_timeout_temp
+0x008d mem_nfreq_index_inq
+0x008e mem_nfreq_index_page
+0x008f mem_ninqy_index
+0x0090 mem_fhs_misc
+0x0091 mem_subsniff_instant
+0x0095 mem_subsniff_rate
+0x0096 mem_subsniff_tcmax
+0x0098 mem_subsniff_tsniff
+0x0099 mem_lpm_adjust
+0x009a mem_sync_clke
+0x00a0 mem_lpm_current_mult
+0x00a1 mem_gpio_wakeup_low
+0x00a5 mem_gpio_wakeup_high
+0x00a9 mem_air_mode
+0x00aa mem_sco_asso_handle
+0x00ab mem_sco_handle
+0x00ad mem_esco_desco
+0x00ae mem_esco_type
+0x00af mem_neogotiation_state
+0x00b0 mem_saved_amaddr
+0x00b1 mem_esco_arq
+0x00b2 mem_esco_saved_arq
+0x00b3 mem_sco_obuf
+0x00d1 mem_sco_ibuf
+0x00ef mem_sco_poll
+0x00f0 mem_npage_index
+0x00f1 mem_page_mode
+0x00f2 mem_page_clk
+0x00f6 mem_tst_pktcnt_sync
+0x00f8 mem_tst_pktcnt_hec
+0x00fa mem_tst_pktcnt_crc
+0x00fc mem_tst_pktcnt_dmh
+0x00fe mem_tmp_buffer_head
+0x0101 mem_tmp_buffer
+0x0151 mem_tester_emulate
+0x0152 mem_temp_payload
+0x0152 test_mode_scenario
+0x0153 test_mode_hopping_mode
+0x0154 test_mode_tx_freq
+0x0155 test_mode_rx_freq
+0x0156 test_mode_power_mode
+0x0157 test_mode_poll_period
+0x0158 test_mode_packet_type
+0x0159 test_mode_data_length
+0x015b mem_test_mode_old_debug_config
+0x015c mem_tester_cnt
+0x015d mem_temp_am_addr
+0x015e mem_temp_arq
+0x015f mem_len
+0x0161 mem_clkn_bt
+0x0165 mem_clke_bt
+0x0169 mem_dpll_clkn
+0x016d mem_connection_options
+0x016e mem_nameres_cnt
+0x016f mem_txptr
+0x0171 mem_slot_offset
+0x0173 extm_fhs_misc
+0x0174 extm_newconn_am_addr
+0x0175 extm_class
+0x0178 extm_lap
+0x017b extm_uap
+0x017c extm_nap
+0x017f mem_debug_config
+0x0180 mem_lch_code
+0x0181 mem_fhs_am_addr
+0x0182 mem_dpll_error
+0x0184 mem_select_list_item
+0x0185 mem_temp_reconn_record
+0x0185 mem_record_bt_mode
+0x0186 mem_temp_lap
+0x018c mem_list_item_ptr
+0x018e mem_eir
+0x01f2 mem_ucode_status
+0x01f3 mem_otp_ucode_flag
+0x01f5 mem_spid_tbuf/* spid buf: 03 addr[23:16] addr[15:8] addr[7:0] */
+0x01f6 mem_iicd_tbuf/* iicd buf: iic_adr addr[15:8] addr[7:0] iic_adr */
+0x01f6 mem_addr_hi
+0x01f7 mem_addr_mi
+0x01f8 mem_addr_lo
+0x01f9 mem_iicd_addr
+0x01fa mem_spid_rbuf
+0x01fe mem_ucode_buf
+0x0200 mem_ucode_len
+0x0202 mem_sched_addr
+0x0204 mem_ucode_ptr
+0x0206 mem_ucode_keybuf
+0x0216 mem_check_plap_temp
+0x0228 mem_reconnect_flag
+0x0229 mem_switch_fail_master_count
+0x022a mem_app_evt_timer_count
+0x022b mem_init_cnt
+0x022d mem_h5rx_ackcnt
+0x022e mem_check_err_acl_cont
+0x022f mem_rp_packets
+0x0230 mem_packet_type
+0x0232 mem_hci_sniff_conn_handle
+0x0234 mem_hci_sniff_max_interval
+0x0236 mem_hci_sniff_min_interval
+0x0238 mem_hci_sniff_attempt
+0x023a mem_hci_sniff_timeout
+0x023c mem_voice_setting
+0x023e mem_retransmission_effort
+0x023f mem_sco_ptype
+0x0241 mem_extm_uap_restore
+0x0244 mem_h5rx_rptr
+0x0246 mem_h5rx_ack
+0x0247 mem_h5tx_ack
+0x0248 mem_h5tx_rptr
+0x024a mem_h5tx_wptr
+0x024c mem_h5tx_free
+0x024e mem_h5rx_tmp
+0x024f mem_h5tx_seq
+0x0250 mem_hci_acl_queue_wptr
+0x0252 mem_hci_acl_queue_rptr
+0x0254 mem_hci_acl_queue_end
+0x0256 mem_hci_acl_queue_wcnt
+0x0257 mem_hci_acl_cnt
+0x0258 mem_hci_acl_tx_trigger_wptr//tx via uart
+0x025a mem_hci_curr_len
+0x025b mem_hci_curr_target
+0x025d mem_l2cap_mem_start
+0x025d mem_l2cap_rxbuff1_len
+0x025f mem_l2cap_rxbuff2_len
+0x0261 mem_l2cap_rxbuff_new
+0x0263 mem_l2cap_rxbuff_inuse
+0x0264 mem_l2cap_payload_ptr
+0x0266 mem_l2cap_rx_pkt_length
+0x0268 mem_l2cap_rx_cid
+0x026a mem_l2cap_rx_done
+0x026b mem_l2cap_signal_tx_buff_ptr
+0x026d mem_l2cap_signal_tx_payload_ptr
+0x026f mem_l2cap_signal_tx_length
+0x0271 mem_sdp_tx_buff_ptr
+0x0273 mem_sdp_tx_payload_ptr
+0x0275 mem_sdp_tx_pkt_length
+0x0277 mem_rfcomm_tx_buff_ptr
+0x0279 mem_rfcomm_tx_payload_ptr
+0x027b mem_rfcomm_tx_pkt_length
+0x027d memL2CAP_T1
+0x027f mem_CONTROL_tasks
+0x0280 mem_send_config_req
+0x0281 mem_config_identifier
+0x0282 mem_config_req_dest_CID
+0x0284 mem_rfcomm_malloc_fail_flag
+0x0285 mem_message_to_uppersm
+0x0286 mem_upper_sm_remote_page
+0x0287 mem_upper_sm_reconn
+0x0288 mem_upper_sm_ss
+0x0289 mem_tx_malloc_log
+0x02c9 mem_l2cap_mem_end
+0x02c9 mem_scid
+0x02cb mem_cmd_length
+0x02cd mem_tt2
+0x02cf mem_tt3
+0x02d1 mem_id
+0x02d3 mem_psm
+0x02d5 mem_l2cap_sdpres_delay_time
+0x02d9 mem_le_rxbuf
+0x0311 mem_le_l2capbuf
+0x0417 mem_le_mic
+0x041b mem_le_peer_mic
+0x041f mem_le_peer_ltk
+0x042f mem_le_mrand
+0x043f mem_le_state
+0x0440 mem_le_mode
+0x0441 mem_le_tsniff
+0x0443 mem_le_anchor
+0x0447 mem_le_clk_offset
+0x044d mem_le_receive_window
+0x044f mem_le_plap
+0x0455 mem_le_conn_handle
+0x0456 mem_le_arq
+0x0457 mem_le_ch
+0x0458 mem_le_hop
+0x0459 mem_le_event_count
+0x045b mem_le_supervision_timer
+0x045f mem_le_instant
+0x0461 mem_le_channels
+0x0462 mem_le_op
+0x0463 mem_le_access
+0x0467 mem_le_crcinit
+0x046a mem_le_window_size
+0x046b mem_le_slave_latency
+0x046d mem_le_superto
+0x046f mem_le_channel_map
+0x0474 mem_le_no_using
+0x0476 mem_le_peer_sca
+0x0477 mem_le_att_opcode
+0x0478 mem_le_att_handle
+0x047a mem_le_err_code
+0x047b mem_le_ll_pairing_fail_reason
+0x047c mem_le_sk
+0x048c mem_le_testtype
+0x048d mem_le_test_sync
+0x048f mem_le_test_pcnt
+0x0491 mem_le_rxon_ts
+0x0497 mem_le_rx_ll_opcode
+0x0498 mem_le_notify_attr_start
+0x049a mem_le_notify_len
+0x049b mem_cmd_le_create_conn
+0x049c mem_le_cur_attlist_start_ptr
+0x049e mem_le_cur_handle_start
+0x04a0 mem_le_cur_handle_end
+0x04a2 mem_le_cur_uuid_length
+0x04a3 mem_le_cur_uuid
+0x04b3 mem_le_curr_att_len
+0x04b4 mem_le_search_res
+0x04b5 mem_le_continue_type
+0x04b6 mem_lmo_header_length
+0x04b7 mem_lmo_header_opcode
+0x04b8 mem_lmo_payload
+0x04c9 mem_lmi_accepted_opcode
+0x04ca mem_disconn_reason_send
+0x04cb mem_tx_fixed_freq
+0x04cc mem_rx_fixed_freq
+0x04cd mem_ext_features_page
+0x04ce mem_lmpext_ssp_enable
+0x04d0 mem_remote_sppcap
+0x04d1 mem_lmp_conn_state
+0x04d2 mem_soft_timer
+0x04d4 mem_pincode_state
+0x04d5 mem_sres_tid
+0x04d6 mem_accptsco_tid
+0x04d7 mem_auth_enable
+0x04d8 mem_wait_encryption
+0x04d9 mem_sniff_payload
+0x04e9 mem_aurand_send_delay_time
+0x04ed memRemoteRPNBitRate
+0x04ee memRemotePRNDataBits
+0x04ef memRemotePRNStopBit
+0x04f0 memRemotePRNParity
+0x04f1 memRemotePRNFlowControl
+0x04f2 memRemotePRNXon
+0x04f3 memRemotePRNXoff
+0x04f4 mem_mod2div_temp
+0x04f7 mem_contw_temp
+0x04f9 mem_attrib_list
+0x04fb mem_current_adss
+0x04fc mem_current_channel
+0x04fd mem_current_frame_type
+0x04fe mem_current_fcs
+0x04ff mem_current_length
+0x0501 mem_rfcomm_uih_payload_ptr
+0x0503 mem_uih_cmd_type
+0x0504 mem_uih_length
+0x0506 mem_param_payload_ptr
+0x0508 mem_ms_param
+0x0509 mem_pn_credit_flow_type_info
+0x050a mem_pn_priority
+0x050b mem_pn_acknowledg_timer
+0x050c mem_pn_max_retrans
+0x050d mem_rfcomm_send_adss
+0x050e mem_rfcomm_send_frame_type
+0x050f mem_rfcomm_send_fcs
+0x0510 mem_rfcomm_send_offset
+0x0511 mem_sdp_mem_start
+0x0511 mem_sdp_uuid_search_ptr
+0x0519 mem_sdp_continue_byte
+0x051b mem_sdp_pduid
+0x051c mem_sdp_transactionid
+0x051e mem_sdp_transactionid_local
+0x0520 mem_sdp_attribute_maxbyte
+0x0522 mem_sdp_record_maxcnt
+0x0524 mem_sdp_record_handle
+0x0528 mem_sdp_LACAP_found
+0x0529 mem_sdp_RFCOMM_found
+0x052a mem_sdp_handle_list
+0x052a mem_sdp_attrib_list
+0x054a mem_sdp_error_code
+0x054c mem_sdp_all_length
+0x054e mem_handle_humber
+0x054f mem_search_uuid
+0x0551 mem_sdp_mem_end
+0x0551 mem_rxbuf
+0x0562 mem_random_number
+0x0572 mem_round_key
+0x0582 mem_kinit
+0x0592 mem_input_store
+0x05a2 mem_x
+0x05b2 mem_y
+0x05c1 mem_y15
+0x05c2 mem_key_store
+0x05d3 mem_key_store_end
+0x05d4 memp_ar_key
+0x05d6 memp_ar_input
+0x05d8 mem_ar_hround
+0x05e2 mem_ec_infinite
+0x05e3 mem_ec_loopc
+0x05e5 mem_aes_cmac_data_length
+0x05e6 memdat
+0x05e6 mem_ax
+0x05fe mem_ay
+0x0616 mem_az
+0x062e mem_bx
+0x0646 mem_ax_256//32 bytes
+0x0646 mem_by
+0x065e mem_bz
+0x0666 mem_ay_256// 32 bytes
+0x0676 mem_cx
+0x0686 mem_az_256// 32 bytes
+0x068e mem_cy
+0x06a5 mem_cy5
+0x06a6 mem_bx_256// 32 bytes
+0x06a6 mem_cz
+0x06be mem_k
+0x06c6 mem_by_256// 31 bytes
+0x06d6 mem_align
+0x06e6 mem_bz_256//32 bytes
+0x06e6 mem_tmp1
+0x06e6 memahbak
+0x06fe mem_tmp5
+0x0706 mem_cx_256//32 bytes
+0x0706 memahsave
+0x0716 mem_tmp2
+0x0726 mem_cy_256// 32 bytes
+0x0726 memahsave_end
+0x0726 mem_addr_padding
+0x0727 mem_addr_value/* 12 bytes     */ 
+0x072e mem_tmp3
+0x072e mem_t1
+0x0733 mem_addr_value_end
+0x0736 mem_addr_iocap_end
+0x0745 mem_cy5_256// 1 byte
+0x0746 mem_cz_256// 32 bytes
+0x0746 mem_tmp0
+0x0746 mem_t0
+0x074e mem_tmp0a
+0x075e mem_t2
+0x0766 mem_k_256//32 bytes
+0x0776 mem_t3
+0x0786 mem_tmp1_256//32 bytes
+0x078e mem_t7
+0x07a6 mem_tmp5_256
+0x07c6 mem_tmp2_256
+0x07e6 mem_tmp3_256
+0x07e6 mem_t1_256
+0x0806 mem_tmp0_256
+0x0806 mem_t0_256
+0x0826 mem_t2_256
+0x0846 mem_t3_256
+0x0866 mem_t7_256
+0x0886 mem_p
+0x089e mem_a
+0x08b6 mem_b
+0x08ce mem_gx
+0x08e6 mem_gy
+0x08fe memh0
+0x091e mem_p_256
+0x093e mem_a_256
+0x095e mem_gx_256
+0x097e mem_gy_256
+0x099e mem_le_slat
+0x09ae mem_sp_state_start
+0x09ae mem_sp_state
+0x09af mem_master_sp_state
+0x09b0 mem_sp_flag
+0x09b1 mem_master_sp_flag
+0x09b2 mem_sp_calc
+0x09b3 mem_sp_dh_ready
+0x09b4 mem_sp_localsm
+0x09b5 mem_pairing_auth
+0x09b6 mem_sp_flag_start
+0x09b6 mem_sp_local_key_send_count
+0x09b7 mem_sp_remote_key_recv_count
+0x09b8 mem_sp_remote_key_invalid
+0x09b9 mem_sp_dhkey_invalid
+0x09ba mem_gkey
+0x09be mem_le_pubkey_remote_x_256
+0x09c6 mem_sp_pubkey_remote
+0x09c6 mem_sp_pubkey_remote_x
+0x09de mem_sp_pubkey_remote_x_end
+0x09de mem_le_pubkey_remote_y_256
+0x09e6 mem_sp_pubkey_remote_y
+0x09fe mem_le_dhkey_256
+0x0a06 mem_sp_dhkey
+0x0a1e mem_sp_dhkey_end
+0x0a1e mem_sp_random_local
+0x0a2e mem_sp_random_local_end
+0x0a2e mem_sp_random_remote
+0x0a3e mem_sp_random_remote_end
+0x0a3e memresult
+0x0a3e mem_sp_calc_result
+0x0a3e memh
+0x0a42 memg
+0x0a46 memf
+0x0a4a meme
+0x0a4e mem_sp_calc_result_high
+0x0a4e memd
+0x0a52 memc
+0x0a56 memb
+0x0a5a mema
+0x0a5e mem_sp_check_result
+0x0a6e mem_sp_confirm_remote
+0x0a7e mem_sp_prarm_stack
+0x0a8e mem_UI_data_txbuff_length
+0x0a90 mem_ipc_skip_continue_proc
+0x0a91 mem_ui_timer_temp//length 4
+0x0a91 mem_ipc_rega_temp
+0x0a95 mem_hold_contr
+0x0a97 mem_hold_contw
+0x0a99 mem_fifo_temp
+0x0a9a mem_pdatatemp
+0x0aa2 mem_temp//8 bytes
+0x0aaa mem_timeup// 4 bytes
+0x0aae mem_rega//4 bytes
+0x0ab2 mem_regb//4 bytes
+0x0ab6 mem_regc//3 bytes
+0x0ab9 mem_contr//2 bytes
+0x0abb mem_contw//2 bytes
+0x0abd mem_wakup_from_power_flag
+0x0abe mem_saved_gpio_in
+0x0ac2 mem_shutter_random_mac_data_temp
+0x0ac2 mem_shutter_config_data_temp
+0x0ac2 mem_le_adv_channel_map_temp
+0x0ac2 mem_le_data_len_temp//1byte
+0x0ac2 mem_tx_fifo_map_temp
+0x0ac2 mem_rpn_dlci//1byte
+0x0ac2 mem_event_cmd_response_content//2byte
+0x0ac2 mem_le_prand//16byte
+0x0ac2 mem_AES_CMAC_k//16 bytes
+0x0ac2 mem_regext_index//1 bytes
+0x0ac2 mem_temp_block0
+0x0ac3 mem_le_data_temp//15bytes
+0x0ac3 mem_temp_block1
+0x0ad2 mem_le_aes_128//16byte
+0x0ad2 mem_regext//64 bytes
+0x0ad2 mem_AES_CMAC_k1//16 bytes
+0x0ad2 mem_temp_block2
+0x0ae2 mem_AES_CMAC_k2//16 bytes
+0x0ae2 mem_temp_block3
+0x0af2 mem_AES_CMAC_temp// 16 bytes
+0x0af2 mem_temp_block4
+0x0b02 mem_AES_CMAC_M_last// 16 bytes
+0x0b02 mem_module_uart_cmd
+0x0b03 mem_module_uart_opcode
+0x0b04 mem_module_uart_len
+0x0b05 mem_module_temp_nl_discard_packet
+0x0b06 mem_temp_block5
+0x0b12 mem_le_mackey//16 bytes
+0x0b12 mem_app_receive_temp
+0x0b12 mem_key_value_temp
+0x0b14 mem_key_value
+0x0b16 mem_key_value_temp1
+0x0b17 mem_key_value_temp2
+0x0b18 mem_key_value_temp3
+0x0b19 mem_key_value_temp4
+0x0b1a mem_key_value_temp5
+0x0b1b mem_key_value_temp6
+0x0b1c mem_temp_block6
+0x0b22 mem_usb_status
+0x0b23 mem_usb_fifo_empty
+0x0b24 mem_usb_read_len
+0x0b25 mem_usb_rxbuf
+0x0b65 mem_bufptr
+0x0b67 mem_remain
+0x0b68 mem_devicedesc
+0x0b7c mem_hidreportdesc_kb
+0x0b7e mem_hidreportdesc_m
+0x0b80 mem_confdesc
+0x0be4 mem_string0
+0x0be9 mem_string1
+0x0c07 mem_string2
+0x0c47 mem_string3
+0x0c65 mem_usb_zero_packet
+0x0c67 mem_usb_ones_packet
+0x0c69 mem_usb_two_packet
+0x0c6b mem_usb0_state
+0x0c6c mem_usb_offline_check_gpio
+0x0c6d mem_usb_tx_interval
+0x0c6e mem_usb_clear_mem_start
+0x0c6e mem_usb_setup
+0x0c6e mem_usb_setup_bmRequestType
+0x0c6f mem_usb_setup_bRequest
+0x0c70 mem_usb_setup_bValue
+0x0c71 mem_usb_setup_bValueH
+0x0c72 mem_usb_setup_wIndex
+0x0c74 mem_usb_setup_bLength
+0x0c75 mem_usb_setup_bLengthH
+0x0c76 mem_usb0_setup
+0x0cb6 mem_usb0_set_report_data
+0x0cf6 mem_usb0_get_report_data
+0x0d36 mem_usb_state
+0x0d37 mem_usb_tx_wait
+0x0d38 mem_usb_tx_enable
+0x0d39 mem_usb_remote_wakeup
+0x0d3a mem_usb_clear_remote_wakeup
+0x0d3b mem_usb_ep0_stall_status
+0x0d3c mem_usb_ep1_stall_status
+0x0d3d mem_usb_ep2_stall_status
+0x0d3e mem_usb_ep3_stall_status
+0x0d3f mem_dsc_info_data_pointer
+0x0d41 mem_dsc_info_len
+0x0d42 mem_usb0_data_ready_report
+0x0d43 mem_usb_tx_win_enable
+0x0d44 mem_usb_tx_mac_enable
+0x0d45 mem_usb_device_enumeration_endflag
+0x0d46 mem_usb_wakestate_onetime_flag
+0x0d47 mem_usb_mac_wakeup_trig
+0x0d48 mem_usb_set_high_addr_flag
+0x0d49 mem_usb_set_protocol_value
+0x0d4a mem_usb_set_protocol_status
+0x0d4b mem_usb_get_protocol_flag
+0x0d4c mem_usb_idle_flag
+0x0d4d mem_usb_idle_rate
+0x0d4e mem_usb_setup_bValue_temp
+0x0d50 mem_usb0_get_set_report
+0x0d51 mem_usb_ep1_data
+0x0d52 mem_usb_ep2_data
+0x0d53 mem_usb_clear_halt
+0x0d54 mem_usb_mouse_data
+0x0d64 mem_usb_kb_data
+0x0d74 mem_usb_kb_multikey
+0x0d84 mem_usb_kb_data_sta_data
+0x0d8c mem_usb_kb_data_last_data
+0x0d94 mem_usb_kb_multikey_sta_data
+0x0d97 mem_usb_kb_multikey_last_data
+0x0d9a mem_usb_kb_blank_data_enable
+0x0d9b mem_usb_kb_mul_blank_data_enable
+0x0d9c mem_usb_test_cnt
+0x0d9d mem_usb_clear_mem_end
+0x0d9d mem_usb_test_kb
+0x0d9e mem_rssi_noise_buffer
+0x0e9e mem_rssi_noise_dg_buffer
+0x0f9e mem_rssi_noise_ms_buffer
+0x109e mem_rssi_noise_kb_buffer
+0x119e mem_24g_common_temp
+0x11be mem_usb_new_vid_pid_value
+0x11c7 mem_dongle_kb_bind_flag
+0x11c8 mem_hidreportdesc_kb_temp
+0x1290 mem_hidreportdesc_m_temp
+0x1358 mem_hidreportdesc_kb_new_temp
+0x13bc mem_usb_kb_system
+0x13cc mem_usb_kb_system_sta_data
+0x13cf mem_usb_kb_system_last_data
+0x13d2 mem_firmware_version
+0x4000 mem_patch00
+0x4001 mem_patch01
+0x4002 mem_patch02
+0x4003 mem_patch03
+0x4004 mem_patch04
+0x4005 mem_patch05
+0x4006 mem_patch06
+0x4007 mem_patch07
+0x4008 mem_patch08
+0x4009 mem_patch09
+0x400a mem_patch0a
+0x400b mem_patch0b
+0x400c mem_patch0c
+0x400d mem_patch0d
+0x400e mem_patch0e
+0x400f mem_patch0f
+0x4010 mem_patch10
+0x4011 mem_patch11
+0x4012 mem_patch12
+0x4013 mem_patch13
+0x4014 mem_patch14
+0x4015 mem_patch15
+0x4016 mem_patch16
+0x4017 mem_patch17
+0x4018 mem_patch18
+0x4019 mem_patch19
+0x401a mem_patch1a
+0x401b mem_patch1b
+0x401c mem_patch1c
+0x401d mem_patch1d
+0x401e mem_patch1e
+0x401f mem_patch1f
+0x4020 mem_patch20
+0x4021 mem_patch21
+0x4022 mem_patch22
+0x4023 mem_patch23
+0x4024 mem_patch24
+0x4025 mem_patch25
+0x4026 mem_patch26
+0x4027 mem_patch27
+0x4028 mem_patch28
+0x4029 mem_patch29
+0x402a mem_patch2a
+0x402b mem_patch2b
+0x402c mem_patch2c
+0x402d mem_patch2d
+0x402e mem_patch2e
+0x402f mem_patch2f
+0x4030 mem_patch30
+0x4031 mem_patch31
+0x4032 mem_patch32
+0x4033 mem_patch33
+0x4034 mem_patch34
+0x4035 mem_patch35
+0x4036 mem_patch36
+0x4037 mem_patch37
+0x4038 mem_patch38
+0x4039 mem_patch39
+0x403a mem_patch3a
+0x403b mem_patch3b
+0x403c mem_patch3c
+0x403d mem_patch3d
+0x403e mem_patch3e
+0x403f mem_patch3f
+0x4040 mem_context
+0x4090 mem_current_amaddr
+0x4091 mem_lpm_mode
+0x4092 mem_device_option
+0x4093 mem_scan_mode
+0x4094 mem_last_clkn
+0x4098 mem_features
+0x40a0 mem_lap
+0x40a3 mem_uap
+0x40a4 mem_nap
+0x40a6 mem_npage
+0x40a7 mem_glap
+0x40aa mem_class
+0x40ad mem_iscan_window
+0x40af mem_iscan_interval
+0x40b1 mem_pscan_window
+0x40b3 mem_pscan_interval
+0x40b5 mem_page_interval
+0x40b7 mem_page_window
+0x40b9 mem_page_to
+0x40bb mem_inq_window
+0x40bd mem_fcomp_mul
+0x40be mem_fcomp_div
+0x40bf mem_rx_window_init
+0x40c1 mem_rx_window_sniff
+0x40c3 mem_rf_init_ptr
+0x40c5 mem_last_type
+0x40c6 mem_last_type_esco
+0x40c7 mem_last_type_saved
+0x40c8 mem_retransmission_cnt
+0x40ca mem_next_btclk
+0x40ce mem_rf_rccal
+0x40cf mem_handle_num
+0x40d0 mem_max_slot
+0x40d1 mem_eir_enable
+0x40d2 mem_afh_instant
+0x40d6 mem_afh_error_total
+0x40d8 mem_afh_cfg
+0x40d9 mem_afh_new_mod
+0x40da mem_afh_map_lo
+0x40df mem_afh_map_hi
+0x40e4 mem_afh_used
+0x40e5 mem_afh_index
+0x40e7 mem_afh_map_new
+0x40f2 mem_afh_map
+0x4142 mem_afh_timer
+0x4146 mem_afh_classify_channel_map
+0x4150 mem_chip_functions
+0x4152 mem_lpm_wake_lock
+0x4154 mem_lpm_interval
+0x4156 mem_lpm_overhead
+0x4157 mem_lpm_hibernate_switch
+0x4158 mem_esco_addr
+0x4159 mem_sniff_unint_lost
+0x415a mem_ptt
+0x415b mem_sleep_counter//should be 0x41fc in REVC
+0x415f mem_sleep_counter_all
+0x4163 mem_sleep_clkn
+0x4169 mem_sniff_rcv
+0x416c mem_sniff_lost
+0x416f mem_clks_per_lpo
+0x4172 mem_lpm_mult
+0x4173 mem_lpm_mult_timeout
+0x4174 mem_lpm_mult_cnt
+0x4175 mem_lpm_config
+0x4178 mem_lpm_xtalcnt
+0x4179 mem_lpm_buckcnt
+0x417a mem_lpm_ldocnt
+0x417b mem_lpm_isogate
+0x417c mem_lpm_isogate_final
+0x417d mem_saved_gpio// should be 0x421e in REVC
+0x418d mem_saved_gsel
+0x4190 mem_saved_mark
+0x4198 mem_saved_spidctrl
+0x4199 mem_patch_ptr
+0x419b mem_patch_len
+0x419d mem_timers
+0x41bd mem_link_key_exists
+0x41be mem_link_key
+0x41ce mem_hci_cmd
+0x41cf mem_hci_conn_handle
+0x41d0 mem_hci_plap
+0x41d3 mem_hci_puap
+0x41d4 mem_hci_pnap
+0x41d6 mem_uartd_rxitems_got_data
+0x41d7 mem_uartd_rxitems_threshold
+0x41d8 mem_uartd_rx_timeout
+0x41da mem_loadcode_times
+0x41db mem_tx_lch
+0x41dc mem_tx_len
+0x41de mem_tx_power
+0x41df mem_context_number
+0x41e0 mem_250k_freq_enable
+0x41e1 mem_rf_init_data
+0x41e2 mem_app_handshake_flag
+0x41e3 mem_sniff_param_interval
+0x41e5 mem_sniff_param_attempt
+0x41e7 mem_sniff_param_timeout
+0x41e9 mem_cb_check_wakelock
+0x41eb mem_cb_before_hibernate
+0x41ed mem_cb_before_lpm
+0x41ef mem_cb_le_process
+0x41f1 mem_cb_bt_process
+0x41f3 mem_cb_idle_process
+0x41f5 mem_cb_bb_event_process
+0x41f7 mem_cb_discovry_timeout
+0x41f9 mem_cb_att_write
+0x41fb mem_cb_ble_transmit
+0x41fd mem_cb_event_timer
+0x41ff mem_cb_bt_set_mult
+0x4201 mem_cb_spi_flash_write_complate
+0x4203 mem_eeprom_base
+0x4205 mem_unsniff2sniff_timer_count
+0x4206 mem_wake_up_delay_timer
+0x4207 mem_app_connection_options
+0x4208 mem_app_disconn_reason
+0x420a mem_app_disconn_reason_flag
+0x420c mem_lpm_delay_after_sniff
+0x4210 mem_xrecord_mode
+0x4211 mem_eeprom_block_size
+0x4212 mem_spi_init_clk
+0x4213 mem_spi_init_delay_time
+0x4214 mem_spi_ncs_gpio
+0x4215 mem_nv_data_ptr
+0x4217 mem_nv_data_number
+0x4218 mem_queue_ptr
+0x421a mem_ui_led_struct_num
+0x421b mem_ui_led_struct_ptr
+0x421d mem_0_5_adc_io_data
+0x421f mem_1v_adc_hvin_data
+0x4221 mem_2v_adc_vinlpm_data
+0x4223 mem_1v_adc_io_data
+0x4225 mem_5v_adc_hvin_data
+0x4227 mem_3v_adc_vinlpm_data
+0x4229 mem_otp_adc_flag
+0x422b mem_reference_voltage
+0x422d mem_adc_config_flag
+0x422e mem_adc_channel
+0x422f mem_adc_current_value
+0x4231 mem_adc_power_flag//bit0:low power falg ; bit1:no power flag
+0x4232 mem_spi_write_addr
+0x4235 mem_spi_write_ptr
+0x4237 mem_spi_write_len
+0x4239 mem_spi_write_flash_sm
+0x423a mem_eeprom_wp_gpio
+0x423b mem_kscan_ptr
+0x423d mem_key_num_ptr
+0x423d mem_keyscan_ptr
+0x423f mem_power_param_ptr
+0x4241 mem_24g_head_ptr
+0x4243 mem_baud
+0x4245 mem_hci_lt_rx_state
+0x4246 mem_l2cap_xmem_start
+0x4246 mem_l2cap_tx_multi_offset//0 means single packet
+0x4248 mem_sdp_remote_cid
+0x424a mem_rfcomm_remote_cid
+0x424c mem_hid_ctrl_remote_cid
+0x424e mem_hid_int_remote_cid
+0x4250 mem_sdp_state
+0x4251 mem_rfcomm_state
+0x4252 mem_hid_control_state
+0x4253 mem_hid_interrupt_state
+0x4254 mem_spp_state
+0x4255 mem_ML2CAP_comm_id
+0x4256 mem_used_map
+0x4257 mem_tx_fifo0
+0x4257 mem_tx_fifo0_map
+0x4258 mem_tx_fifo0_ptr
+0x425a mem_tx_fifo1
+0x425a mem_tx_fifo1_map
+0x425b mem_tx_fifo1_ptr
+0x425d mem_tx_fifo2
+0x425d mem_tx_fifo2_map
+0x425e mem_tx_fifo2_ptr
+0x4260 mem_tx_fifo3
+0x4260 mem_tx_fifo3_map
+0x4261 mem_tx_fifo3_ptr
+0x4263 mem_tx_fifo_end
+0x4263 mem_l2cap_lpm_txbuf
+0x4363 mem_l2cap_flow_ctrl_flag
+0x4364 mem_l2cap_pending_item
+0x4365 mem_l2cap_xmem_end
+0x4365 mem_le_dsniff
+0x4367 mem_le_conn_interval
+0x4369 mem_le_scan_enable
+0x436a mem_le_scan_interval
+0x436c mem_le_scan_window
+0x436e mem_le_adv_enable
+0x436f mem_le_adv_data_len
+0x4370 mem_le_adv_data
+0x438f mem_le_scan_data_len
+0x4390 mem_le_scan_data
+0x43af mem_le_name_len
+0x43b0 mem_le_name
+0x43ce mem_le_new_map
+0x43d3 mem_le_new_param
+0x43d3 mem_le_new_transmitwindowsize
+0x43d4 mem_le_new_transmitwindowoffset
+0x43d6 mem_le_new_conninterval
+0x43d8 mem_le_new_connslavelatency
+0x43da mem_le_new_connsupervisiontimeout
+0x43dc mem_le_txheader
+0x43dd mem_le_txlen
+0x43de mem_le_txpayload
+0x43e0 mem_le_txcid
+0x43e2 mem_le_l2cap
+0x43e3 mem_le_l2cap_response
+0x43e4 mem_le_txbdy
+0x4403 mem_le_pcnt_tx
+0x4408 mem_le_pcnt_rx
+0x440d mem_le_last_mic
+0x4411 mem_le_ivm
+0x4415 mem_le_ivs
+0x4419 mem_le_ltk
+0x4429 mem_ltk_exists
+0x442a mem_le_rconfirm
+0x443a mem_le_srand
+0x444a mem_le_iat
+0x444b mem_le_rat
+0x444c mem_le_preq
+0x444d mem_le_preq_iocap
+0x444e mem_le_preq_oob
+0x444f mem_le_preq_auth
+0x4450 mem_le_preq_max_keysize
+0x4451 mem_le_preq_init_key_distribution
+0x4452 mem_le_preq_resp_key_distribution
+0x4453 mem_le_pres
+0x4454 mem_le_pres_iocap
+0x4455 mem_le_pres_oob
+0x4456 mem_le_pres_auth
+0x4457 mem_le_pres_max_keysize
+0x4458 mem_le_pres_init_key_distribution
+0x4459 mem_le_pres_resp_key_distribution
+0x445a mem_le_search_handle_start
+0x445c mem_le_search_handle_end
+0x445e mem_le_att_offset
+0x445e mem_le_search_att_type_length
+0x445f mem_le_search_att_type
+0x446f mem_le_notify_handle
+0x4471 mem_le_search_uuid_length
+0x4472 mem_le_search_uuid
+0x4482 mem_le_adv_param
+0x4482 mem_le_adv_interval
+0x4484 mem_le_adv_type
+0x4485 mem_le_adv_own_addr_type
+0x4486 mem_le_adv_direct_addr_type
+0x4487 mem_le_adv_direct_addr
+0x448d mem_le_adv_channel_map
+0x448e mem_le_conn_param
+0x448e mem_le_conn_peer_addr_type
+0x448f mem_le_conn_peer_addr
+0x4495 mem_le_conn_own_addr_type
+0x4496 mem_le_interval_min
+0x4498 mem_le_interval_max
+0x449a mem_le_latency
+0x449c mem_le_timeout
+0x449e mem_le_scan_params
+0x449e mem_le_scan_type
+0x449f mem_le_scan_own_addr_type
+0x44a0 mem_le_lap
+0x44a3 mem_le_uap
+0x44a4 mem_le_nap
+0x44a6 mem_le_local_mtu
+0x44a8 mem_le_remote_mtu
+0x44aa mem_le_skdm
+0x44b2 mem_le_skds
+0x44ba mem_le_init_superto
+0x44bc mem_ui_le_uuid_table
+0x44be mem_le_secure_connect_enable
+0x44bf mem_le_secure_connect_flag
+0x44c0 mem_le_sc_calc
+0x44c1 mem_le_secure_connect_state
+0x44c2 mem_le_sc_confirm_gkey_flag
+0x44c3 mem_le_sc_local_key_invalid
+0x44c4 mem_le_pairing_state
+0x44c5 mem_le_enc_state
+0x44c6 mem_le_pairing_mode
+0x44c7 mem_le_tk
+0x44cb mem_le_ediv
+0x44cd mem_le_rand
+0x44d5 mem_le_irk
+0x44e5 mem_le_transmit_window
+0x44e9 mem_le_configuration
+0x44ea mem_le_fixed_ltk
+0x44fa mem_le_pairing_handle
+0x44fc mem_le_l2cap_size
+0x44fe mem_le_packet_len_recved
+0x44ff mem_le_tx_buff_used
+0x4500 mem_le_tx_ptr0
+0x4502 mem_le_tx_ptr1
+0x4504 mem_le_tx_ptr2
+0x4506 mem_le_tx_ptr3
+0x4508 mem_le_signaling_identifier
+0x4509 mem_le_l2cap_signaling_conn_param_update_rsp_result
+0x450b mem_le_packet_size
+0x450c mem_le_packet_llid
+0x450d mem_le_payload_ptr
+0x450f mem_le_md_count
+0x4510 mem_lmp_version
+0x4513 mem_lmp_subversion
+0x4515 mem_local_name_length
+0x4516 mem_local_name
+0x4519 mem_local_name2
+0x4559 mem_local_name_end
+0x455a mem_unsniff2sniff_timer
+0x455b mem_switch_flag
+0x455c mem_classic_bt_flag
+0x455d mem_pn_dlci
+0x455e mem_pn_max_frame_size
+0x4560 memFCStemp1
+0x4561 memFCStemp2
+0x4562 memFCStemp3
+0x4563 mem_rfcomm_initiator
+0x4564 mem_remote_spp_channel
+0x4565 mem_HIUfcs_SPP
+0x4566 mem_HIUfcs_SPP_WCredits
+0x4567 mem_rfcomm_send_more_pkt
+0x4568 mem_remote_credits
+0x4569 mem_credit_given
+0x456a mem_ms_channel
+0x456b mem_credit_flag
+0x456c mem_rfcomm_max_frame_size
+0x456e mem_rfcomm_credit_init_data
+0x456f mem_cb_receive_spp_data
+0x4571 mem_nl_rx_data_src
+0x4573 mem_nl_rx_len_all
+0x4575 mem_ui_uuid_table
+0x4577 mem_all_uuid_16bits
+0x458d mem_all_uuid_128bits
+0x45af mem_sdp_l2capch_ptr
+0x45b1 mem_sp_local_key_invalid
+0x45b2 mem_le_private_key_256
+0x45d2 mem_le_pubkey_local_x_256
+0x45f2 mem_le_pubkey_local_y_256
+0x4612 mem_sp_private_key
+0x462a mem_sp_pubkey_local
+0x462a mem_sp_pubkey_local_x
+0x4642 mem_sp_pubkey_local_x_end
+0x4642 mem_sp_pubkey_local_y
+0x465a mem_ssp_enable
+0x465b mem_sp_iocap_local
+0x465e mem_sp_iocap_remote
+0x4661 mem_flag_mode_ssp_pin
+0x4662 mem_ssp_mode_flag
+0x4663 mem_authentication_passkey_times
+0x4664 mem_passkey_1bit
+0x4665 mem_flag_pairing_state
+0x4666 mem_ipc_lock_bt
+0x4667 mem_ipc_lock_c51
+0x4668 mem_ipc_fifo_bt2c51
+0x4670 mem_ipc_fifo_c512bt
+0x4678 mem_ui_button_timer
+0x4679 mem_ui_button_last_state
+0x467a mem_ui_timer_last_btclk
+0x467e mem_discovery_timeout_timer_count
+0x4680 mem_hid_handshake_timer_count
+0x4681 memui_reconnect_mode
+0x4682 mem_ui_state_map
+0x4684 mem_ui_profile_supported
+0x4685 mem_ui_button_timeout
+0x4686 mem_ui_button_gpio
+0x4687 mem_discovery_timeout
+0x4689 mem_pin_length
+0x468a mem_pin
+0x469a mem_antl_lpm_interval
+0x469c mem_antl_adv_interval
+0x469e mem_antl_slow_adv_lpm_interval
+0x46a0 mem_antl_slow_adv_adv_interval
+0x46a2 mem_antl_led_style
+0x46a2 mem_antl_led_type
+0x46a3 mem_antl_led_blink_count
+0x46a4 mem_antl_led_gpio
+0x46a5 mem_antl_led_on_time
+0x46a7 mem_antl_led_off_time
+0x46a9 mem_antl_led_cb_on
+0x46ab mem_antl_led_cb_off
+0x46ad mem_antl_buzzer_style
+0x46ad mem_antl_buzzer_type
+0x46ae mem_antl_buzzer_blink_count
+0x46af mem_antl_buzzer_gpio
+0x46b0 mem_antl_buzzer_on_time
+0x46b2 mem_antl_buzzer_off_time
+0x46b4 mem_antl_buzzer_cb_on
+0x46b6 mem_antl_buzzer_cb_off
+0x46b8 mem_antl_fast_adv_led_style
+0x46b8 mem_antl_fast_adv_led_type
+0x46b9 mem_antl_fast_adv_led_blink_count
+0x46ba mem_antl_fast_adv_led_gpio
+0x46bb mem_antl_fast_adv_led_on_time
+0x46bd mem_antl_fast_adv_led_off_time
+0x46bf mem_antl_slow_adv_led_style
+0x46bf mem_antl_slow_adv_led_type
+0x46c0 mem_antl_slow_adv_led_blink_count
+0x46c1 mem_antl_slow_adv_led_gpio
+0x46c2 mem_antl_slow_adv_led_on_time
+0x46c4 mem_antl_slow_adv_led_off_time
+0x46c6 mem_antl_power_starting_led_style
+0x46c6 mem_antl_power_starting_led_type
+0x46c7 mem_antl_power_starting_led_blink_count
+0x46c8 mem_antl_power_starting_led_gpio
+0x46c9 mem_antl_power_starting_led_on_time
+0x46cb mem_antl_power_starting_led_off_time
+0x46cd mem_antl_power_starting_buzzer_style
+0x46d4 mem_antl_power_off_led_style
+0x46d4 mem_antl_power_off_led_type
+0x46d5 mem_antl_power_off_led_link_count
+0x46d6 mem_antl_power_off_led_gpio
+0x46d7 mem_antl_power_off_led_on_time
+0x46d9 mem_antl_power_off_led_off_time
+0x46db mem_antl_power_off_buzzer_style
+0x46db mem_antl_power_off_buzzer_type
+0x46dc mem_antl_power_off_buzzer_link_count
+0x46dd mem_antl_power_off_buzzer_gpio
+0x46de mem_antl_power_off_buzzer_on_time
+0x46e0 mem_antl_power_off_buzzer_off_time
+0x46e2 mem_antl_alert_led_stlye
+0x46e9 mem_antl_alert_buzzer_stlye
+0x46e9 mem_antl_alert_buzzer_type
+0x46ea mem_antl_alert_buzzer_blink_count
+0x46eb mem_antl_alert_buzzer_gpio
+0x46ec mem_antl_alert_buzzer_on_time
+0x46ee mem_antl_alert_buzzer_off_time
+0x46f0 mem_antl_key_led_style
+0x46f0 mem_antl_key_led_type
+0x46f1 mem_antl_key_led_blink_count
+0x46f2 mem_antl_key_led_gpio
+0x46f3 mem_antl_key_led_on_time
+0x46f5 mem_antl_key_led_off_time
+0x46f7 mem_antl_key_buzzer_style
+0x46fe mem_antl_queue_width
+0x46ff mem_antl_queue_depth
+0x4700 mem_antl_queue_curr_num
+0x4701 mem_antl_queue_read_ptr
+0x4702 mem_antl_queue_write_ptr
+0x4703 mem_antl_queue_buff
+0x4753 mem_antl_key_scan_enable
+0x4754 mem_antl_led_num
+0x4755 mem_antl_led_gpio_map
+0x4759 mem_antl_power_param
+0x4759 mem_antl_power_state
+0x475a mem_antl_power_timer
+0x475b mem_antl_power_off_timeout
+0x475c mem_antl_power_starting_timeout
+0x475d mem_antl_power_off_cb
+0x475f mem_antl_power_starting_cb
+0x4761 mem_antl_power_standby_cb
+0x4763 mem_event_button_up_cb
+0x4765 mem_antl_key_num
+0x4766 mem_cb_antl_key
+0x4768 mem_antl_key_conf0
+0x476c mem_antl_key0_press
+0x477b mem_antl_key0_release
+0x478a mem_antl_conn_updata_procedure_state
+0x478b mem_client_characteristic_configuration_descriptor
+0x478d mem_adc_timer
+0x478f mem_antl_conn_update_timer
+0x4790 mem_antl_send_updata_le_param_timer
+0x4791 mem_antl_le_sleep_timer
+0x4793 mem_antl_fast_adv_timer
+0x4795 mem_antl_fast_adv_timeout
+0x4797 mem_antl_le_sleep_timeout
+0x4799 mem_double_click_timer
+0x479a mem_butten_click_cnt
+0x479b mem_antl_led_state
+0x479c mem_antl_buzzer_state
+0x479d mem_antl_key_state
+0x479e mem_antl_lost_mode
+0x479f mem_alarm_config
+0x47a0 mem_alarm_config_notfy_cnt
+0x47a1 mem_buzzer_pwm_conf
+0x47a7 mem_adc_timeout
+0x47a9 mem_voltage_remain_percent
+0x47aa mem_battery_calculate_set
+0x47aa mem_battery_full_voltage
+0x47ac mem_battery_empty_voltage
+0x47ae mem_battery_low_voltage
+0x47b0 mem_battery_current_voltage
+0x47b2 mem_rx_window_sniff_inc
+0x47b4 mem_interval_increment
+0x47b6 mem_antl_le_interval_min
+0x47b8 mem_antl_le_interval_max
+0x47ba mem_antl_le_latency
+0x47bc mem_antl_le_timeout
+0x47be mem_antl_le_unnormal_interval_min
+0x47c0 mem_antl_le_unnormal_interval_max
+0x47c2 mem_antl_le_unnormal_latency
+0x47c4 mem_antl_le_unnormal_timeout
+0x47c6 mem_AntiLost_le_att_list
+0x469a mem_car_hard_soft_switch
+0x469b mem_car_queue_each_size
+0x469c mem_car__queue_length
+0x469d mem_car_queue_curr_num
+0x469e mem_car_queue_read_ptr
+0x469f mem_car_queue_write_ptr
+0x46a0 mem_car_queue_ele
+0x4718 mem_car_pop_queue_buff
+0x472c mem_car_led_num
+0x472d mem_car_led_map
+0x4737 mem_car_style1_led_type
+0x4738 mem_car_style1_blink_count
+0x4739 mem_car_style1_struct_led_gpio
+0x473a mem_car_style1_on_time
+0x473c mem_car_style1_off_time
+0x473e mem_car_style1_cb_ledon
+0x4740 mem_car_style1_cb_ledoff
+0x4742 mem_car_style2_led_type
+0x4743 mem_car_style2_blink_count
+0x4744 mem_car_style2_struct_led_gpio
+0x4745 mem_car_style2_on_time
+0x4747 mem_car_style2_off_time
+0x4749 mem_car_style2_cb_ledon
+0x474b mem_car_style2_cb_ledoff
+0x474d mem_le_receive_data
+0x474d mem_le_receive_packet_head
+0x474f mem_le_receive_cmd
+0x4750 mem_le_receive_length
+0x4752 mem_le_receive_payload
+0x475c mem_le_receive_checksum
+0x475d mem_motor1_status
+0x475e mem_motor1_speed
+0x475f mem_motor2_status
+0x4760 mem_motor2_speed
+0x4761 mem_motor3_status
+0x4762 mem_motor3_speed
+0x4763 mem_motor1_pwm_set
+0x4763 mem_motor1_pwm_pin1_set
+0x4764 mem_motor1_pwm_pin2_set
+0x4765 mem_motor1_pwm_pin_set
+0x4766 mem_motor1_pwm_channel_set
+0x4767 mem_motor1_pwm_freq_set
+0x476a mem_motor1_pwm_dute_set
+0x476b mem_motor2_pwm_set
+0x476b mem_motor2_pwm_pin1_set
+0x476c mem_motor2_pwm_pin2_set
+0x476d mem_motor2_pwm_pin_set
+0x476e mem_motor2_pwm_channel_set
+0x476f mem_motor2_pwm_freq_set
+0x4772 mem_motor2_pwm_dute_set
+0x4773 mem_motor3_pwm_set
+0x4773 mem_motor3_pwm_pin1_set
+0x4774 mem_motor3_pwm_pin2_set
+0x4775 mem_motor3_pwm_pin_set
+0x4776 mem_motor3_pwm_channel_set
+0x4777 mem_motor3_pwm_freq_set
+0x477a mem_motor3_pwm_dute_set
+0x477b mem_motor_select_p_n
+0x477c mem_car_motor_status
+0x477d mem_car_motor_speed
+0x477e mem_motor_pwm_set
+0x477e mem_motor_pwm_pin1_set
+0x477f mem_motor_pwm_pin2_set
+0x4780 mem_motor_pwm_pin_set
+0x4781 mem_motor_pwm_channel_set
+0x4782 mem_motor_pwm_freq_set
+0x4785 mem_motor_pwm_dute_set
+0x4786 mem_ir_rx_gpio
+0x4787 mem_ir_data
+0x4789 mem_ir_rx_buf
+0x478b mem_ir_receive_clkn
+0x478f mem_ir_notify_data
+0x4792 mem_ir_notify_data_head
+0x4797 mem_ir_notify_data_payload
+0x4799 mem_ir_notify_data_check_sum
+0x479a mem_car_ir_breakdown_check_timer
+0x479b mem_car_ir_breakdown_flag
+0x479c mem_car_led_control
+0x479c mem_car_led1_status
+0x479d mem_car_led2_status
+0x479e mem_car_led3_status
+0x479f mem_car_led4_status
+0x47a0 mem_car_led5_status
+0x47a1 mem_car_led6_status
+0x47a2 mem_car_led7_status
+0x47a3 mem_car_led8_status
+0x47a4 mem_car_led_control_timer
+0x47a5 mem_car_led_blink_status
+0x47a6 mem_car_led_no
+0x47a7 mem_car_info_request
+0x47aa mem_car_info_request_head
+0x47af mem_car_info_request_payload
+0x47b7 mem_car_info_request_checksum
+0x47b8 mem_car_config_param
+0x47b8 mem_car_config_setting_flag
+0x47b9 mem_car_config_device_select
+0x47ba mem_car_config_motor_layout
+0x47bb mem_car_config_ir_enable
+0x47bc mem_car_config_ir_rx_gpio
+0x47bd mem_car_config_pairing_led_conn_status
+0x47be mem_car_config_pairing_led_gpio
+0x47bf mem_car_config_led_num
+0x47c0 mem_car_config_blood_led_gpio
+0x47c0 mem_car_config_blood_led1_gpio
+0x47c1 mem_car_config_blood_led2_gpio
+0x47c2 mem_car_config_blood_led3_gpio
+0x47c3 mem_car_config_blood_led4_gpio
+0x47c4 mem_car_config_blood_led5_gpio
+0x47c5 mem_car_config_blood_led6_gpio
+0x47c6 mem_car_config_blood_led7_gpio
+0x47c7 mem_car_config_blood_led8_gpio
+0x47c8 mem_car_config_bat_notify_enable
+0x47c9 mem_car_config_low_voltage_led_gpio
+0x47ca mem_car_config_low_voltage_percent
+0x47cb mem_car_config_soft_switch_enable
+0x47cc mem_car_config_soft_switch_gpio
+0x47cd mem_car_notify_vdd_count
+0x47ce mem_car_notify_vdd_timer
+0x47cf mem_car_notify_vdd_value_last
+0x47d0 mem_car_notify_vdd_percent
+0x47d1 mem_car_working_flag
+0x47d2 mem_low_bat_flag
+0x47d3 mem_notify_bat_packet
+0x47d6 mem_notify_bat_head
+0x47db mem_notify_bat_payload
+0x47dc mem_notify_bat_check_sum
+0x47dd mem_vdd_notify_flag
+0x47de mem_car_current_vdd_value_temp
+0x47e0 mem_car_last_vdd_value
+0x47e2 mem_vdd_calculate_set
+0x47e2 mem_vdd_full_vol
+0x47e4 mem_vdd_empty_vol
+0x47e6 mem_vdd_low_vol
+0x47e8 mem_vdd_now_vol
+0x47ea mem_car_24g_status
+0x47eb mem_car_24g_no_data_timeout_count
+0x47ed mem_car_24g_no_data_timeout_timer
+0x47ef mem_car_24g_ir_receive_attack_count
+0x47f0 mem_car_24g_go_die_flag
+0x47f1 mem_car_attack_shake_timer
+0x47f2 mem_car_attack_shake_flag
+0x47f3 mem_car_soft_power
+0x47f3 mem_car_power_state
+0x47f4 mem_car_power_timer
+0x47f5 mem_car_power_off_timeout
+0x47f6 mem_car_power_starting_timeout
+0x47f7 mem_car_power_off_cb
+0x47f9 mem_car_power_starting_cb
+0x47fb mem_car_power_standby_cb
+0x47fd mem_car_ui_button_up_cb
+0x47ff mem_car_le_att_list
+0x49f3 mem_car_moto1_blank_timer
+0x49f4 mem_car_moto2_blank_timer
+0x49f5 mem_car_moto3_blank_timer
+0x49f6 mem_car_24g_received_pac
+0x49f7 mem_24g_car_head_ptr
+0x469a mem_light_pwm0
+0x469b mem_light_pwm1
+0x469c mem_light_pwm2
+0x469d mem_light_pwm3
+0x469e mem_light_pwm4
+0x469f mem_light_pwm5
+0x46a0 mem_light_pairing_enable
+0x46a1 mem_light_pairing_timer
+0x46a3 mem_light_cnum
+0x46a4 mem_light_next_record
+0x46a5 mem_light_clist
+0x46f5 mem_light_crr_cmd_count
+0x46f6 mem_curr_packet_num
+0x469a mem_lightc_led_gpio
+0x469b mem_lightc_row
+0x46a1 mem_lightc_col
+0x46a7 mem_adv_time
+0x46a8 mem_cmd0_string
+0x46bc mem_cmd1_string
+0x46d0 mem_cmd2_string
+0x46e4 mem_cmd3_string
+0x46f8 mem_cmd4_string
+0x470c mem_cmd5_string
+0x4720 mem_cmd6_string
+0x4734 mem_cmd7_string
+0x4748 mem_cmd8_string
+0x475c mem_cmd9_string
+0x4770 mem_cmd10_string
+0x4784 mem_cmd11_string
+0x4798 mem_cmd12_string
+0x47ac mem_cmd13_string
+0x47c0 mem_cmd14_string
+0x47d4 mem_cmd15_string
+0x47e8 mem_cmd16_string
+0x47fc mem_cmd17_string
+0x4810 mem_cmd18_string
+0x4824 mem_cmd19_string
+0x4838 mem_cmd20_string
+0x469a mem_soft_version_num
+0x469c mem_module_wake_up_gpio
+0x469d mem_module_state_gpio
+0x469e mem_module_connect_state_gpio
+0x469f mem_current_packet_length
+0x46a1 mem_module_state
+0x46a2 mem_module_mcu_wake_pin
+0x46a3 mem_module_mcu_wake_delay_us
+0x46a7 mem_module_spp_lpm_mult
+0x46a8 mem_module_le_lpm_mult
+0x46a9 mem_module_bluetooth_stauts_by_command
+0x46aa mem_module_uart_rx_buffer
+0x46ac mem_module_uart_rx_buffer_end
+0x46ae mem_module_uart_tx_buffer
+0x46b0 mem_module_uart_tx_buffer_end
+0x46b2 mem_module_read_vdd_flag
+0x46b3 mem_module_read_vdd_count
+0x46b4 mem_module_vdd_quotient
+0x46b5 mem_module_vdd_remainder
+0x46b6 mem_module_le_rx_data_len
+0x46b7 mem_module_le_rx_data_address
+0x46b9 mem_module_le_rx_data_handle
+0x46bb mem_module_data_write_handle
+0x46bd mem_module_data_write_handle2
+0x46bf mem_module_flag
+0x46c0 mem_module_hci_notify_len
+0x46c1 mem_module_hci_notify_handle
+0x46c3 mem_module_hci_nofiy_addr
+0x46c5 mem_last_transmite_clock
+0x46c9 mem_module_uuid_list
+0x47f5 mem_module_uuid_list_end
+0x47f5 mem_module_le_att_list
+0x4a4d mem_module_le_att_list_end
+0x4a4d mem_module_nv_data
+0x4a4d mem_module_nv_data0
+0x4a6f mem_module_nv_data1
+0x4a91 mem_module_nv_data2
+0x4ab3 mem_module_nv_data3
+0x4ad5 mem_module_nv_data4
+0x469a mem_remote_car_hard_soft_switch
+0x469b mem_remote_car_queue_each_size
+0x469c mem_remote_car_queue_length
+0x469d mem_remote_car_queue_curr_num
+0x469e mem_remote_car_queue_read_ptr
+0x469f mem_remote_car_queue_write_ptr
+0x46a0 mem_remote_car_queue_ele
+0x46fa mem_remote_style_led_type
+0x46fb mem_remote_style_blink_count
+0x46fc mem_remote_style_struct_led_gpio
+0x46fd mem_remote_style_on_time
+0x46ff mem_remote_style_off_time
+0x4701 mem_remote_style_cb_ledon
+0x4703 mem_remote_style_cb_ledoff
+0x4705 mem_remote_car_led_num
+0x4706 mem_remote_car_led_map
+0x470e mem_remote_car_keyscan
+0x470e mem_remote_car_key_num
+0x470f mem_cb_remote_car_keyscan
+0x4711 mem_remote_car_key_conf0
+0x4711 mem_remote_car_key_conf0_pin
+0x4712 mem_remote_car_key_conf1
+0x4712 mem_remote_car_key_conf1_pin
+0x4713 mem_remote_car_key_conf2
+0x4713 mem_remote_car_key_conf2_pin
+0x4714 mem_remote_car_key_conf3
+0x4714 mem_remote_car_key_conf3_pin
+0x4715 mem_remote_car_key_conf4
+0x4715 mem_remote_car_key_conf4_pin
+0x4716 mem_remote_car_key_conf5
+0x4716 mem_remote_car_key_conf5_pin
+0x4717 mem_remote_car_key_conf6
+0x4717 mem_remote_car_key_conf6_pin
+0x4718 mem_rocker_negative_flag
+0x4719 mem_rocker_work_status
+0x471a mem_current_vdd_value_default_mid_x
+0x471c mem_current_vdd_value_default_mid_y
+0x471e mem_current_vdd_value_default_mid_temp
+0x4720 mem_current_vdd_default_range
+0x4722 mem_rocker_last_status
+0x4724 mem_rocker_status
+0x4724 mem_rocker_x_status
+0x4725 mem_rocker_y_status
+0x4726 mem_remote_car_config_param
+0x4726 mem_remote_car_config_setting_flag
+0x4727 mem_remote_car_config_key_map
+0x4728 mem_remote_car_config_layout
+0x4729 mem_remote_car_config_connect_led_gpio
+0x472a mem_remote_car_config_check_way
+0x472b mem_remote_car_config_soft_switch_enable
+0x472c mem_remote_car_config_soft_switch_gpio
+0x472d mem_remote_car_config_timeout_shutdown_enable
+0x472e mem_remote_car_24g_motor_packet
+0x472e mem_remote_car_24g_motor_packet_lenght
+0x472f mem_remote_car_24g_motor_send_packet_head
+0x4731 mem_remote_car_24g_motor_send_cmd
+0x4732 mem_remote_car_24g_motor_send_length
+0x4734 mem_remote_car_24g_motor_send_payload
+0x4734 mem_remote_car_24g_motor1_payload
+0x4736 mem_remote_car_24g_motor2_payload
+0x4738 mem_remote_car_24g_motor3_payload
+0x473a mem_remote_car_24g_motor_send_checksum
+0x473b mem_remote_car_24g_fire_packet
+0x473b mem_remote_car_24g_fire_packet_lenght
+0x473c mem_remote_car_24g_fire_send_packet_head
+0x473e mem_remote_car_24g_fire_send_cmd
+0x473f mem_remote_car_24g_fire_send_length
+0x4741 mem_remote_car_24g_fire_send_payload
+0x4743 mem_remote_car_24g_fire_send_checksum
+0x4744 mem_remote_car_24g_tx_temp
+0x4753 mem_remote_car_no_data_timeout
+0x4755 mem_remote_car_no_data_timer
+0x4757 mem_remote_car_soft_power
+0x4757 mem_remote_car_power_state
+0x4758 mem_remote_car_power_timer
+0x4759 mem_remote_car_power_off_timeout
+0x475a mem_remote_car_power_starting_timeout
+0x475b mem_remote_car_power_off_cb
+0x475d mem_remote_car_power_starting_cb
+0x475f mem_remote_car_power_standby_cb
+0x4761 mem_remote_key_status
+0x4762 mem_remote_car_24g_status
+0x4763 mem_remote_car_24g_auto_work_step
+0x4764 mem_remote_car_24g_pair_success_flag
+0x4765 mem_remote_car_24g_enter_lpm_enable
+0x4766 mem_remote_car_empty_packet
+0x4767 mem_24g_RC_head_ptr
+0x469a mem_shutter_bluetooth_type
+0x469b mem_shutter_config_enable
+0x469c mem_shutter_config_otp_base_address
+0x469e mem_shutter_config_size
+0x469f mem_shutter_config_select_gpio1
+0x46a0 mem_shutter_config_select_gpio2
+0x46a1 mem_shutter_config_select_gpio3
+0x46a2 mem_shutter_config_user_otp_address
+0x46a4 mem_shutter_config_eeprom_offset_addr
+0x46a6 mem_shutter_config_eeprom_start_flag
+0x46a8 mem_shutter_config_user_size
+0x46a9 mem_shutter_config_label
+0x46aa mem_shutter_config_otp_addr
+0x46ac mem_classic_shutter_cable_unplug_conut
+0x46ad mem_classic_shutter_hid_disconn_count
+0x46ae mem_classic_shutter_random_mac_offset_addr
+0x46b0 mem_ble_shutter_enable_notify
+0x46b1 mem_ble_shutter_reconn_dav_interval
+0x46b3 mem_ble_shutter_discovery_adv_interval
+0x46b5 mem_ble_shutter_reconn_timeout
+0x46b7 mem_ble_shutter_reconn_timer
+0x46b9 mem_ble_shutter_reconn_blink_on_time
+0x46bb mem_ble_shutter_reconn_blink_off_time
+0x46bd mem_ble_shutter_discovery_blink_on_time
+0x46bf mem_ble_shutter_discovery_blink_off_time
+0x46c1 mem_ble_shutter_interval_min
+0x46c3 mem_ble_shutter_interval_max
+0x46c5 mem_ble_shutter_latency
+0x46c7 mem_ble_shutter_timeout
+0x46c9 mem_ble_shutter_interval_min_new
+0x46cb mem_ble_shutter_interval_max_new
+0x46cd mem_ble_shutter_latency_new
+0x46cf mem_ble_shutter_timeout_new
+0x46d1 mem_classic_shutter_discovery_timeout
+0x46d3 mem_classic_shutter_connect_timeout
+0x46d5 mem_ble_shutter_discovery_timeout
+0x46d7 mem_ble_shutter_connect_timeout
+0x46d9 mem_shutter_sleep_timeout
+0x46db mem_shutter_sleep_timer
+0x46dd mem_shutter_hard_soft_switch_case
+0x46de mem_shutter_soft_switch_button_gpio
+0x46df mem_shutter_soft_switch_power_state
+0x46e0 mem_shutter_soft_switch_poweron_time
+0x46e1 mem_shutter_soft_switch_poweroff_time
+0x46e2 mem_shutter_soft_switch_poweron_callback_function
+0x46e4 mem_shutter_soft_switch_poweroff_callback_function
+0x46e6 mem_shutter_keyscan
+0x46e6 mem_shutter_key_num
+0x46e7 mem_cb_shutter_keycan
+0x46e9 mem_shutter_key_conf0
+0x46ea mem_shutter_key_conf1
+0x46eb mem_shutter_key_conf2
+0x46ec mem_shutter_key_conf3
+0x46ed mem_shutter_key_conf4
+0x46ee mem_shutter_key_conf5
+0x46ef mem_shutter_key_conf6
+0x46f0 mem_shutter_key_conf7
+0x46f1 mem_key0_press
+0x46f6 mem_key1_press
+0x46fb mem_key2_press
+0x4700 mem_key3_press
+0x4705 mem_key4_press
+0x470a mem_key5_press
+0x470f mem_key6_press
+0x4714 mem_key7_press
+0x4719 mem_key0_release
+0x471e mem_key1_release
+0x4723 mem_key2_release
+0x4728 mem_key3_release
+0x472d mem_key4_release
+0x4732 mem_key5_release
+0x4737 mem_key6_release
+0x473c mem_key7_release
+0x4741 mem_ble_data_buffer1
+0x4746 mem_ble_data_buffer2
+0x474b mem_ble_data_buffer3
+0x4750 mem_ble_data_buffer4
+0x4755 mem_ble_data_buffer5
+0x475a mem_ble_data_buffer6
+0x475f mem_ble_data_buffer7
+0x4764 mem_ble_data_buffer8
+0x4769 mem_ble_data_buffer9_58
+0x479b mem_classic_data_buffer
+0x47a0 mem_classic_data_buffer1
+0x47a5 mem_classic_data_buffer2
+0x47aa mem_classic_data_buffer3
+0x47af mem_classic_data_buffer4
+0x47b4 mem_classic_data_buffer5
+0x47b9 mem_classic_data_buffer6
+0x47be mem_classic_data_buffer7
+0x47c3 mem_classic_data_buffer8
+0x47c8 mem_classic_data_buffer9_58
+0x47fa mem_queue_each_size
+0x47fb mem_queue_length
+0x47fc mem_queue_curr_num
+0x47fd mem_queue_read_ptr
+0x47fe mem_queue_write_ptr
+0x47ff mem_queue_ele
+0x481f mem_shutter_nv_data
+0x48c9 mem_shutter_led_struct_app_led
+0x48c9 mem_shutter_led_struct_app_led_type
+0x48ca mem_shutter_led_struct_app_led_blink_count
+0x48cb mem_shutter_led_struct_app_led_gpio
+0x48cc mem_shutter_led_struct_app_led_on_time
+0x48ce mem_shutter_led_struct_app_led_off_time
+0x48d0 mem_shutter_led_struct_app_led_on_callback
+0x48d2 mem_shutter_led_struct_app_led_off_callback
+0x48d4 mem_shutter_power_off_led_style
+0x48d4 mem_shutter_power_off_led_style_type
+0x48d5 mem_shutter_power_off_led_style_blink_count
+0x48d6 mem_shutter_power_off_led_style_gpio
+0x48d7 mem_shutter_power_off_led_style_on_time
+0x48d9 mem_shutter_power_off_led_style_off_time
+0x48db mem_shutter_power_off_led_style_on_callback
+0x48dd mem_shutter_power_off_led_style_off_callback
+0x48df mem_shutter_soft_swtich_botton_down
+0x48e0 mem_shutter_soft_swtich_led_struct_temp
+0x48eb mem_shutter_power_off_timeout
+0x48ec mem_shutter_power_off_timer
+0x469a mem_mouse_key
+0x469b mem_mouse_x
+0x469d mem_mouse_y
+0x469f mem_mouse_z
+0x46a0 mem_mouse_tz
+0x46a1 mem_mouse_xy_h
+0x46a2 mem_sensor_shutter_hi
+0x46a3 mem_sensor_shutter_lo
+0x46a4 mem_sensor_smart_flag
+0x46a5 mem_sensor_squal_reg
+0x46a6 mem_sensor_iqc
+0x46a7 mem_mouse_move_flag
+0x46a8 mem_mouse_direct_timeout
+0x46aa mem_mouse_no_data_timeout
+0x46ac mem_mouse_discovery_timer
+0x46ae mem_mouse_direct_timer
+0x46b0 mem_mouse_no_data_timer
+0x46b2 mem_mouse_blank_data_timer
+0x46b4 mem_mouse_send_blank_timer
+0x46b5 mem_mouse_cpi_count
+0x46b6 mem_mouse_dpi_button_state
+0x46b7 mem_wheel_tb_old_pinlevel
+0x46b8 mem_wheel_tb_new_pinlevel
+0x46b9 mem_wheel_tog
+0x46ba mem_mouse_tz_data
+0x46bb mem_mouse_tz_data_count
+0x46bc mem_mouse_tz_data_count1
+0x46bd mem_mwheel_b_old_pinlevel
+0x46be mem_mwheel_b_new_pinlevel
+0x46bf mem_mwheel_tog
+0x46c0 mem_mouse_z_data
+0x46c1 mem_mouse_z_data_count
+0x46c2 mem_mouse_z_data_count1
+0x46c3 mem_reconn_mode
+0x46c4 mem_mouse_statue_led_timer
+0x46c5 mem_le_connect_status_flag
+0x46c6 mem_le_start_encrypt_timer
+0x46c7 mem_device_addr_temp
+0x46ce mem_adc_read_timer
+0x46cf mem_adc_low_volatage_led_timer_count
+0x46d0 mem_adc_reference_voltage
+0x46d2 mem_device_number
+0x46d3 mem_mouse_flag
+0x46d5 mem_mouse_function_enable
+0x46d7 mem_combination_select_device_timer_init
+0x46d8 mem_combination_select_device_count
+0x46d9 mem_select_device_button_statue
+0x46da mem_combination_ui_button_count
+0x46db mem_bt_discovey_button_statue
+0x46dc mem_sensor_reset_gpio
+0x46dd mem_sensor_id1
+0x46de mem_sensor_id2
+0x46df mem_mouse_dpi_led_delay_count
+0x46e0 mem_config_sensor_type
+0x46e1 mem_config_sensor_motion
+0x46e2 mem_lbutton_gpio
+0x46e3 mem_rbutton_gpio
+0x46e4 mem_mbutton_gpio
+0x46e5 mem_bk_button_gpio
+0x46e6 mem_fw_button_gpio
+0x46e7 mem_dpi_button_gpio
+0x46e8 mem_whee_a_data_gpio
+0x46e9 mem_whee_b_data_gpio
+0x46ea mem_whee_ta_data_gpio
+0x46eb mem_whee_tb_data_gpio
+0x46ec mem_config_bt_button_gpio
+0x46ed mem_config_select_device_button_gpio
+0x46ee mem_config_paraing_led_gpio
+0x46ef mem_config_low_voltage_alarm_gpio
+0x46f0 mem_config_device1_led_gpio
+0x46f1 mem_config_device2_led_gpio
+0x46f2 mem_config_device3_led_gpio
+0x46f3 mem_sensor_data_gpio
+0x46f4 mem_dpi_led_gpio
+0x46f5 mem_config_function_enable
+0x46f6 mem_config_sensor_angle
+0x46f7 mem_select_sensor_angle_gpio
+0x46f8 mem_select_adc_gpio
+0x46f9 mem_config_end
+0x46f9 mem_btclk_sensor
+0x46fd mem_wire_usb_interval
+0x46fe mem_mouse_mode_flag
+0x46ff mem_usb_addr
+0x4700 mem_flash_base
+0x4703 mem_24g_device_number
+0x4704 mem_24g_enter_lpm_timer
+0x4705 mem_mouse_1step_up_count
+0x4706 mem_mouse_2step_up_count
+0x4707 mem_24g_pairing_timer_count
+0x4709 mem_mouse_vdd_calculate_set
+0x4709 mem_mouse_vdd_full_vol
+0x470b mem_mouse_vdd_empty_vol
+0x470d mem_mouse_vdd_low_vol
+0x470f mem_mouse_vdd_now_vol
+0x4711 mem_mouse_sensor_timer_count
+0x4712 mem_sensor_led_style
+0x4713 mem_mouse_led_type
+0x4714 mem_mouse_blink_count
+0x4715 mem_mouse_struct_led_gpio
+0x4716 mem_mouse_on_time
+0x4718 mem_mouse_off_time
+0x471a mem_mouse_cb_ledon
+0x471c mem_mouse_cb_ledoff
+0x471e mem_reconn_times
+0x471f mem_reconn_times_init
+0x4720 mem_mouse_information_start
+0x4720 mem_device_flag
+0x4721 mem_device1_type
+0x4722 mem_device1_addr
+0x4728 mem_device1_link_key
+0x4738 mem_device1_locall_addr
+0x473e mem_device2_type
+0x473f mem_device2_addr
+0x4745 mem_device2_link_key
+0x4755 mem_device2_locall_addr
+0x475b mem_device3_type
+0x475c mem_device3_addr
+0x4762 mem_device3_link_key
+0x4772 mem_device3_locall_addr
+0x4778 mem_store_flag
+0x477a mem_mouse_dpi
+0x477b mem_mouse_24g_addr
+0x477f mem_mouse_information_end
+0x477f mem_mouse_dpi_seting
+0x477f mem_320x_dpi_1
+0x4780 mem_320x_dpi_2
+0x4781 mem_320x_dpi_3
+0x4782 mem_320x_dpi_4
+0x4783 mem_3212_dpi_1
+0x4784 mem_3212_dpi_2
+0x4785 mem_3212_dpi_3
+0x4786 mem_3212_dpi_4
+0x4787 mem_3610_dpi_1
+0x4788 mem_3610_dpi_2
+0x4789 mem_3610_dpi_3
+0x478a mem_3610_dpi_4
+0x478b mem_mouse_24g_enter_lpm_enable
+0x478c mem_hibernate_flag
+0x478d mem_le_slave_update_mult_timer
+0x478e mem_le_prepare_tx_retransmited_number
+0x478f mem_le_rx_window_inc
+0x4791 mem_empty_count_user
+0x4792 mem_adc_0v
+0x4794 mem_adc_3v
+0x4796 mem_rf_init_data_new
+0x47a3 mem_mouse_x_sum
+0x47a5 mem_mouse_y_sum
+0x47a7 mem_mouse_x_pre
+0x47a9 mem_mouse_y_pre
+0x47ab mem_mouse_x_data
+0x47ad mem_mouse_y_data
+0x47af mem_mouse_asm_flag
+0x47b0 mem_24g_rxbuf
+0x47d2 mem_24g_txbuf
+0x47f2 mem_24g_txpayload
+0x4814 mem_24g_rxpayload
+0x4834 mem_24g_rxdata_length
+0x4835 mem_24g_pid
+0x4836 mem_24g_datalen
+0x4837 mem_24g_data_type
+0x4838 mem_24g_txlen
+0x4839 mem_24g_rx_window
+0x483b mem_24g_ensure
+0x483c mem_24g_txfail_cnt
+0x483e mem_24g_get_ack_fail
+0x483f mem_24g_retry
+0x4840 mem_24g_ch
+0x4841 mem_24g_current_ch_number
+0x4842 mem_24g_paring_addr
+0x4846 mem_24g_pairing_sm
+0x4847 mem_24g_ch_map1
+0x484b mem_24g_ch_map2
+0x484f mem_24g_ch_map3
+0x4853 mem_24g_ch_map4
+0x4857 mem_24g_tx_btclk
+0x485b mem_24g_interval
+0x485c mem_24g_interval_min
+0x485d mem_24g_interval_max
+0x485e mem_24g_addr
+0x4862 mem_24g_abort_pac
+0x4863 mem_24g_check_dongle_times
+0x4865 mem_24g_enter_hibernate
+0x486d mem_24g_device_addr
+0x4871 mem_24g_pac_index
+0x4872 mem_24g_no_ack
+0x4873 mem_24g_sta_crc
+0x4876 mem_24g_last_crc
+0x4879 mem_24g_sta_pid
+0x487a mem_24g_last_pid
+0x487b mem_24g_max_retry
+0x487c mem_24g_mode
+0x487d mem_24g_rxdata_temp
+0x489f mem_24g_rx_addr
+0x48a3 mem_dongle_mode_init
+0x48a4 mem_dongle_work_mode
+0x48a5 mem_dongle_ms_bind_step
+0x48a6 mem_dongle_kb_bind_step
+0x48a7 mem_dongle_bind_device_status
+0x48a8 mem_24g_bind_payload
+0x48b0 mem_24g_abort_packet
+0x48b1 mem_24g_rf_laststa
+0x48b2 mem_24g_hop_btclk
+0x48b6 mem_24g_hop_interval
+0x48b7 mem_24g_mode_switch
+0x48b8 mem_24g_ackpayload_enable
+0x48b9 mem_24g_hop_packet
+0x48ba mem_24g_pair_mode
+0x48bb mem_24g_nodata_timer_enable
+0x48bc mem_24g_time_slice
+0x48bd mem_24g_kb_data_sta_data
+0x48c5 mem_24g_kb_data_last_data
+0x48cd mem_24g_kb_multikey_sta_data
+0x48d0 mem_24g_kb_multikey_last_data
+0x48d3 mem_24g_kb_blank_data_enable
+0x48d4 mem_24g_kb_mul_blank_data_enable
+0x48d5 mem_24g_ms_blank_data_enable
+0x48d6 mem_24g_kb_addr
+0x48da mem_24g_ms_addr
+0x48de mem_24g_dg_last_ch
+0x48df mem_24g_dg_ch_number
+0x48e0 mem_24g_dg_config_ch_once
+0x48e1 mem_24g_kb_last_ch
+0x48e2 mem_24g_kb_ch_number
+0x48e3 mem_24g_kb_config_ch_once
+0x48e4 mem_24g_ms_last_ch
+0x48e5 mem_24g_ms_ch_number
+0x48e6 mem_24g_ms_config_ch_once
+0x48e7 mem_24g_syncword
+0x48e9 mem_24g_syncword_crc8
+0x48ea mem_24g_get_syncword_crc8
+0x48eb mem_24g_ota_sta_pid
+0x48ed mem_tx_power_temp
+0x48ee mem_rssi_hex
+0x48ef mem_rssi_noise_avg
+0x48f0 mem_rssi_noise_index
+0x48f1 mem_rssi_signal_index
+0x48f2 mem_rssi_noise_dg_avg
+0x48f3 mem_rssi_noise_kb_avg
+0x48f4 mem_rssi_noise_ms_avg
+0x48f5 mem_rssi_noise_dg_index
+0x48f6 mem_rssi_noise_kb_index
+0x48f7 mem_rssi_noise_ms_index
+0x48f8 mem_rssi_signal_buf
+0x4900 mem_queue_ele_num
+0x4901 mem_queue_read
+0x4903 mem_queue_write
+0x4905 mem_queue_start
+0x4905 mem_data_ele0
+0x4925 mem_data_ele1
+0x4945 mem_data_ele2
+0x4965 mem_queue_end
+0x4965 mem_queue_temp
+0x4967 mem_cb_24g_data
+0x4969 mem_24g_hop_fastly_cnt
+0x496a mem_24g_hop_pac_retry
+0x496b mem_24g_rf_hop_ch
+0x496c mem_24g_rf_last_sta
+0x496d mem_24g_rf_work_stage
+0x496e mem_24g_sync_cnt
+0x496f mem_power_ctrl_pac_succ_cnt
+0x4970 mem_rssi_avg_received
+0x4971 mem_rssi_hex_received
+0x4972 mem_power_ctrl_level
+0x4973 mem_24g_idle_timeout
+0x4974 mem_24g_idle_cnt
+0x4975 mem_seqi
+0x4976 mem_24g_txcnt
+0x4977 mem_24g_auto_paring_switch
+0x4978 mem_24g_led_status
+0x4979 mem_24g_pc_sleep
+0x497a mem_24g_pc_sleep_flag
+0x497b mem_24g_bind_delay_count
+0x497c mem_24g_work_delay_count
+0x497d mem_24g_mode_switch_2
+0x497e mem_24g_mode_switch_2_init
+0x497f mem_24g_mode_switch_cnt_2
+0x4981 mem_24g_mode_switch_exit_2
+0x4982 mem_24g_time_slice_2
+0x4983 mem_dongle_bind_device_living
Index: output/otp.dat
===================================================================
--- /branch/USB/dongle_sdk/output/otp.dat	(revision 0)
+++ /branch/USB/dongle_sdk/output/otp.dat	(working copy)
@@ -0,0 +1,8 @@
+00
+02
+aa
+55
+00
+00
+b3
+23
Index: output/program.lis
===================================================================
--- /branch/USB/dongle_sdk/output/program.lis	(revision 0)
+++ /branch/USB/dongle_sdk/output/program.lis	(working copy)
@@ -0,0 +1,1680 @@
+              include "bt_format "
+              org 0x0000
+0000 c284000a bbit1 8 ,pf_patch_ext 
+0001 c0428431 beq patch10_5 ,p_shutdown_radio 
+0002 c0448409 beq patch11_1 ,p_set_freq_tx 
+0003 c0000429 beq patch00_0 ,p_soft_reset 
+0004 c047000b beq patch11_6 ,p_save_rssi 
+0005 c062008b beq patch18_4 ,p_app_init 
+0006 c07b8012 beq patch1e_7 ,p_usb_init 
+0007 c07c004b beq patch1f_0 ,p_usb_status1 
+0008 c07e002a beq patch1f_4 ,p_usb_tx 
+0009 20202a8e branch loop 
+
+pf_patch_ext:
+000a 20202a8e branch loop 
+
+p_save_rssi:
+000b 68110981 hfetch 2 ,rf_afc_d2a 
+000c 1ff1fe00 rshift4 pdata ,pdata 
+000d 1fe97e00 rshift3 pdata ,pdata 
+000e 1fe67e00 sub pdata ,0 ,pdata 
+000f 1fe17eff and_into 0xff ,pdata 
+0010 6000c8ee store 1 ,mem_rssi_hex 
+0011 202029c1 branch save_rssi + 6 
+
+p_usb_init:
+0012 708a0500 jam 0 ,core_usb_driver 
+0013 20404919 call usb_init_param 
+0014 20400017 call p_usb_new_vid_pid 
+0015 20400021 call p_usb_hid_icon 
+0016 202048ec branch usb_init + 2 
+
+p_usb_new_vid_pid:
+0017 680091be fetch 1 ,mem_usb_new_vid_pid_value 
+0018 207a0000 rtn blank 
+0019 680091c7 fetch 1 ,mem_dongle_kb_bind_flag 
+001a c02d001e beq dongle_kb_bind_success ,p_usb_new_vid_pid_for_suit 
+
+p_usb_new_vid_pid_for_mouse_only_auto_pair:
+001b 680211bf fetch 4 ,mem_usb_new_vid_pid_value + 1 
+001c 60020b71 store 4 ,mem_devicedesc + 9 
+001d 20600000 rtn 
+
+p_usb_new_vid_pid_for_suit:
+001e 680211c3 fetch 4 ,mem_usb_new_vid_pid_value + 5 
+001f 60020b71 store 4 ,mem_devicedesc + 9 
+0020 20600000 rtn 
+
+p_usb_hid_icon:
+0021 680091c7 fetch 1 ,mem_dongle_kb_bind_flag 
+0022 c02d0048 beq dongle_kb_bind_success ,p_new_kb_hidreportdesc 
+0023 580011c8 setarg mem_hidreportdesc_kb_temp 
+0024 60010b7c store 2 ,mem_hidreportdesc_kb 
+0025 58001290 setarg mem_hidreportdesc_m_temp 
+0026 60010b7e store 2 ,mem_hidreportdesc_m 
+0027 700b9a1a jam 0x1a ,mem_confdesc + 26 
+0028 700bb3a3 jam 0xa3 ,mem_confdesc + 51 
+0029 20600000 rtn 
+
+p_usb_tx:
+002a 68008d38 fetch 1 ,mem_usb_tx_enable 
+002b 207a0000 rtn blank 
+002c 68008d37 fetch 1 ,mem_usb_tx_wait 
+002d 243a4bac nbranch usb_inwake_state_tx_dispose ,blank 
+002e 68008d45 fetch 1 ,mem_usb_device_enumeration_endflag 
+002f 203a4b86 branch usb_tx_fifo_release ,blank 
+0030 68008d36 fetch 1 ,mem_usb_state 
+0031 c001cbbf beq usb_sleep ,usb_windows_wakeup 
+0032 c0814b86 bne usb_connected ,usb_tx_fifo_release 
+0033 68008d3a fetch 1 ,mem_usb_clear_remote_wakeup 
+0034 243a4b86 nbranch usb_tx_fifo_release ,blank 
+0035 20404b6f call usb_tx_data_ep1 
+0036 20200037 branch p_usb_tx_data_ep2 
+
+p_usb_tx_data_ep2:
+0037 68008d38 fetch 1 ,mem_usb_tx_enable 
+0038 c4010000 rtnbit0 2 
+0039 68008d37 fetch 1 ,mem_usb_tx_wait 
+003a c3810000 rtnbit1 2 
+003b 68008d38 fetch 1 ,mem_usb_tx_enable 
+003c 793ffe02 set0 2 ,pdata 
+003d 60008d38 store 1 ,mem_usb_tx_enable 
+003e 68008d52 fetch 1 ,mem_usb_ep2_data 
+003f 207a0000 rtn blank 
+0040 c0104b89 beq usb_ep2_ms ,usb_tx_ms_data 
+0041 c010cba4 beq usb_ep2_multikey ,usb_tx_kb_multikey_data 
+0042 c0110044 beq usb_ep2_systemkey ,p_usb_tx_kb_systemkey_data 
+0043 20202a8c branch assert 
+
+p_usb_tx_kb_systemkey_data:
+0044 700d5200 jam 0 ,mem_usb_ep2_data 
+0045 df200002 arg 2 ,loopcnt 
+0046 d8c013bc arg mem_usb_kb_system ,contr 
+0047 20204b5e branch usb_tx_ep2 
+
+p_new_kb_hidreportdesc:
+0048 58001358 setarg mem_hidreportdesc_kb_new_temp 
+0049 60010b7c store 2 ,mem_hidreportdesc_kb 
+004a 20600000 rtn 
+
+p_usb_status1:
+004b 708a2611 jam 0x11 ,core_usb_status 
+004c 68108a20 hfetch 1 ,core_usb_ep_len 
+004d 60008b24 store 1 ,mem_usb_read_len 
+004e 1fe27200 copy pdata ,loopcnt 
+004f 203a005a branch p_usb_rx_no_data ,blank 
+0050 d8a00c6e arg mem_usb_setup ,contw 
+0051 20404946 call usb_rx_read 
+0052 68008b24 fetch 1 ,mem_usb_read_len 
+0053 c000805d beq 0x01 ,p_usb_out_one_byte 
+0054 1fe67c07 sub pdata ,7 ,null 
+0055 20610000 rtn positive 
+
+p_usb_class_type:
+0056 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
+0057 1fe17e80 and_into 0x80 ,pdata 
+0058 c0000061 beq out_device ,p_usb_out_device 
+0059 20204957 branch usb_class_type + 2 
+
+p_usb_rx_no_data:
+005a 68008b22 fetch 1 ,mem_usb_status 
+005b c2820056 bbit1 usb_status_setup ,p_usb_class_type 
+005c 20600000 rtn 
+
+p_usb_out_one_byte:
+005d 68008c6e fetch 1 ,mem_usb_setup 
+005e c3838000 rtnbit1 7 
+005f 20400087 call p_usb_get_led_status 
+0060 20204988 branch usb0_reply_zerolen 
+
+p_usb_out_device:
+0061 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
+0062 1ff1fe00 rshift4 pdata ,pdata 
+0063 1fe37e00 rshift pdata ,pdata 
+0064 1fe17e03 and_into 0x03 ,pdata 
+0065 c0000068 beq standard_req ,p_usb_out_standard_req 
+0066 c0008076 beq class_req ,p_usb_out_class_req 
+0067 20204966 branch usb_out_device + 4 
+
+p_usb_out_standard_req:
+0068 68008c6f fetch 1 ,mem_usb_setup_brequest 
+0069 c001806b beq set_feature ,p_usb0_request_set_feature 
+006a 20204977 branch usb_out_standard_req + 1 
+
+p_usb0_request_set_feature:
+006b 68008c74 fetch 1 ,mem_usb_setup_blength 
+006c c0804984 bne 0 ,usb0_force_stall 
+006d 68008c75 fetch 1 ,mem_usb_setup_blengthh 
+006e c0804984 bne 0 ,usb0_force_stall 
+006f 68008c6e fetch 1 ,mem_usb_setup_bmrequesttype 
+0070 c0000072 beq out_device ,p_usb0_request_set_feature_out_device 
+0071 20204a7e branch usb0_request_set_feature + 5 
+
+p_usb0_request_set_feature_out_device:
+0072 68008c70 fetch 1 ,mem_usb_setup_bvalue 
+0073 c080c984 bne device_remote_wakeup ,usb0_force_stall 
+0074 70497a03 jam 3 ,mem_24g_pc_sleep_flag 
+0075 20204a84 branch usb0_request_set_feature_out_device + 2 
+
+p_usb_out_class_req:
+0076 68008c6f fetch 1 ,mem_usb_setup_brequest 
+0077 c0048079 beq set_report ,p_usb_set_report 
+0078 2020497f branch usb_out_class_req + 1 
+
+p_usb_set_report:
+0079 700d5001 jam 1 ,mem_usb0_get_set_report 
+007a 20404b03 call usb_set_report_resume_judge 
+007b 68010c70 fetch 2 ,mem_usb_setup_bvalue 
+007c 60010d4e store 2 ,mem_usb_setup_bvalue_temp 
+007d 20003a98 nop 15000 
+007e 68108a20 hfetch 1 ,core_usb_ep_len 
+007f 245a0083 ncall p_usb_set_report_rxdata ,blank 
+0080 68008d43 fetch 1 ,mem_usb_tx_win_enable 
+0081 245a0086 ncall p_usb_get_output_data ,blank 
+0082 20204afd branch usb_set_report + 4 
+
+p_usb_set_report_rxdata:
+0083 1fe27200 copy pdata ,loopcnt 
+0084 d8a00c76 arg mem_usb0_setup ,contw 
+0085 20204946 branch usb_rx_read 
+
+p_usb_get_output_data:
+0086 68008c76 fetch 1 ,mem_usb0_setup 
+
+p_usb_get_led_status:
+0087 6000c978 store 1 ,mem_24g_led_status 
+0088 700d4300 jam 0 ,mem_usb_tx_win_enable 
+0089 7048b803 jam kb_led_ackpayload ,mem_24g_ackpayload_enable 
+008a 20600000 rtn 
+
+p_app_init:
+008b 70498300 jam 0 ,mem_dongle_bind_device_living 
+008c 70497b07 jam g24_bind_mode_delay ,mem_24g_bind_delay_count 
+008d 204074b9 call enable_authrom 
+008e 680240a0 fetch 4 ,mem_lap 
+008f 6002489f store 4 ,mem_24g_rx_addr 
+0090 6808c23a fetcht 1 ,mem_eeprom_wp_gpio 
+0091 2040680e call gpio_config_output 
+0092 204000a8 call p_dongle_init 
+0093 20400189 call p_g24_queue_init 
+0094 2040009d call p_dongle_iic_init 
+0095 2040009b call p_dongle_firmware_version_store 
+0096 6800c8ba fetch 1 ,mem_24g_pair_mode 
+0097 c00001df beq 0x00 ,p_dongle_auto_bind 
+0098 c00080b2 beq 0x01 ,p_dongle_pc_bind 
+0099 c00780ae beq 0x0f ,p_dongle_all_powerful 
+009a 20600000 rtn 
+
+p_dongle_firmware_version_store:
+009b 204000a4 call p_dongle_set_firmware_version_eeprom 
+009c 202065d1 branch iicd_write_protect_eep_data 
+
+p_dongle_iic_init:
+009d 2040659c call iic_init_390k 
+009e 204000a0 call p_dongle_set_kb_bind_eeprom 
+009f 202065df branch iicd_read_eep_data 
+
+p_dongle_set_kb_bind_eeprom:
+00a0 da2011c7 arg mem_dongle_kb_bind_flag ,rega 
+00a1 da400000 arg dongle_kb_bind_eeprom_offect ,regb 
+00a2 d8400001 arg 1 ,temp 
+00a3 20600000 rtn 
+
+p_dongle_set_firmware_version_eeprom:
+00a4 da2013d2 arg mem_firmware_version ,rega 
+00a5 da400070 arg dongle_firmware_version_offect ,regb 
+00a6 d8400003 arg 3 ,temp 
+00a7 20600000 rtn 
+
+p_dongle_init:
+00a8 6800c1de fetch 1 ,mem_tx_power 
+00a9 6000c8ed store 1 ,mem_tx_power_temp 
+00aa df200080 arg 0x80 ,loopcnt 
+00ab d8a00d9e arg mem_rssi_noise_buffer ,contw 
+00ac 20407ec6 call memset0 
+00ad 202048ea branch usb_init 
+
+p_dongle_all_powerful:
+00ae 204000b7 call p_dongle_check_mode 
+
+p_dongle_all_powerful_loop:
+00af 204000bb call p_g24_dongle_work_mode 
+00b0 204001a7 call p_dongle_usb_dispatch 
+00b1 202000af branch p_dongle_all_powerful_loop 
+
+p_dongle_pc_bind:
+00b2 204000b7 call p_dongle_check_mode 
+
+p_dongle_pc_bind_loop:
+00b3 204000bb call p_g24_dongle_work_mode 
+00b4 2040010c call p_g24_dongle_bind_mode 
+00b5 204001a7 call p_dongle_usb_dispatch 
+00b6 202000b3 branch p_dongle_pc_bind_loop 
+
+p_dongle_check_mode:
+00b7 7048b800 jam 0 ,mem_24g_ackpayload_enable 
+
+p_dongle_work_mode_enable:
+00b8 7048a400 jam dongle_work ,mem_dongle_work_mode 
+00b9 7048a300 jam clear_init ,mem_dongle_mode_init 
+00ba 20600000 rtn 
+
+p_g24_dongle_work_mode:
+00bb 6800c8a4 fetch 1 ,mem_dongle_work_mode 
+00bc c1800000 rtnne dongle_work 
+
+p_g24_dongle_work_mode_start:
+00bd 204000c1 call p_g24_dongle_work_init 
+00be 204000cf call p_g24_ch_process 
+00bf 20400346 call p_g24_receive_packet_start 
+00c0 202000ee branch p_g24_blank_data_process 
+
+p_g24_dongle_work_init:
+00c1 6800c8a3 fetch 1 ,mem_dongle_mode_init 
+00c2 c3800000 rtnbit1 dongle_work 
+00c3 79207e00 set1 dongle_work ,pdata 
+00c4 6000c8a3 store 1 ,mem_dongle_mode_init 
+00c5 6800c8ed fetch 1 ,mem_tx_power_temp 
+00c6 6000c1de store 1 ,mem_tx_power 
+00c7 7048b800 jam 0 ,mem_24g_ackpayload_enable 
+00c8 700d3800 jam 0 ,mem_usb_tx_enable 
+00c9 7048b001 jam 1 ,mem_24g_abort_packet 
+00ca 70483500 jam 0 ,mem_24g_pid 
+00cb 6802489f fetch 4 ,mem_24g_rx_addr 
+00cc 20400446 call p_g24_update_addr_and_synccrc8 
+00cd 20400466 call p_g24_ch 
+00ce 20200128 branch p_g24_rx_interrupt_clear 
+
+p_g24_ch_process:
+00cf 6800c8b0 fetch 1 ,mem_24g_abort_packet 
+00d0 c00080e8 beq 1 ,p_g24_noise_rssi 
+00d1 6800c8b9 fetch 1 ,mem_24g_hop_packet 
+00d2 c00080e2 beq 1 ,p_g24_ch_receive_hop_pac 
+00d3 680a48b2 fetcht 4 ,mem_24g_hop_btclk 
+00d4 1c427e00 copy clkn_bt ,pdata 
+00d5 98467c00 isub temp ,null 
+00d6 24412d18 ncall g24_timer_timeout ,positive 
+00d7 1fe22400 copy pdata ,regb 
+00d8 680248b2 fetch 4 ,mem_24g_hop_btclk 
+00d9 6808c8b6 fetcht 1 ,mem_24g_hop_interval 
+00da 98408400 iadd temp ,temp 
+00db 1a427e00 copy regb ,pdata 
+00dc 98467c00 isub temp ,null 
+00dd 24610000 nrtn positive 
+00de 793ffe1c set0 28 ,pdata 
+00df 600248b2 store 4 ,mem_24g_hop_btclk 
+00e0 7048b001 jam 1 ,mem_24g_abort_packet 
+00e1 20200466 branch p_g24_ch 
+
+p_g24_ch_receive_hop_pac:
+00e2 7048b900 jam 0 ,mem_24g_hop_packet 
+00e3 20200466 branch p_g24_ch 
+
+p_g24_ch_timer_reinit:
+00e4 1c427e00 copy clkn_bt ,pdata 
+00e5 600248b2 store 4 ,mem_24g_hop_btclk 
+00e6 7048b100 jam 0 ,mem_24g_rf_laststa 
+00e7 20600000 rtn 
+
+p_g24_noise_rssi:
+00e8 da200d9e arg mem_rssi_noise_buffer ,rega 
+00e9 20400441 call p_rssi_average 
+00ea 6008c8ef storet 1 ,mem_rssi_noise_avg 
+00eb 18467c50 sub temp ,rssi_thresh_noise ,null 
+00ec 24610000 nrtn positive 
+00ed 20200466 branch p_g24_ch 
+
+p_g24_blank_data_process:
+00ee 204000f1 call p_g24_ms_blank_data 
+00ef 204000f8 call p_g24_kb_blank_data 
+00f0 20200102 branch p_g24_kb_mul_blank_data 
+
+p_g24_ms_blank_data:
+00f1 6800c8d5 fetch 1 ,mem_24g_ms_blank_data_enable 
+00f2 207a0000 rtn blank 
+00f3 d8e0000b arg timer_new_ms_blank ,queue 
+00f4 20407f16 call timer_check 
+00f5 247a0000 nrtn blank 
+00f6 7048d500 jam 0 ,mem_24g_ms_blank_data_enable 
+00f7 20202fa0 branch g24_ms_blank_data_2usb 
+
+p_g24_kb_blank_data:
+00f8 6800c8d3 fetch 1 ,mem_24g_kb_blank_data_enable 
+00f9 207a0000 rtn blank 
+00fa d8e0000e arg timer_new_kb_blank ,queue 
+00fb 20407f16 call timer_check 
+00fc 247a0000 nrtn blank 
+00fd 7048d300 jam 0 ,mem_24g_kb_blank_data_enable 
+00fe 20402fac call g24_kb_blank_data_2usb 
+00ff 68040d64 fetch 8 ,mem_usb_kb_data 
+0100 600448c5 store 8 ,mem_24g_kb_data_last_data 
+0101 20600000 rtn 
+
+p_g24_kb_mul_blank_data:
+0102 6800c8d4 fetch 1 ,mem_24g_kb_mul_blank_data_enable 
+0103 207a0000 rtn blank 
+0104 d8e0000c arg timer_new_kb_mul_blank ,queue 
+0105 20407f16 call timer_check 
+0106 247a0000 nrtn blank 
+0107 7048d400 jam 0 ,mem_24g_kb_mul_blank_data_enable 
+0108 20402fb8 call g24_kb_mul_blank_data_2usb 
+0109 68018d74 fetch 3 ,mem_usb_kb_multikey 
+010a 6001c8d0 store 3 ,mem_24g_kb_multikey_last_data 
+010b 20600000 rtn 
+
+p_g24_dongle_bind_mode:
+010c 6800c8a4 fetch 1 ,mem_dongle_work_mode 
+010d c1808000 rtnne dongle_bind 
+010e 20400110 call p_g24_dongle_bind_init 
+010f 2020011c branch p_g24_dongle_bind_data_process 
+
+p_g24_dongle_bind_init:
+0110 6800c8a3 fetch 1 ,mem_dongle_mode_init 
+0111 c3808000 rtnbit1 dongle_bind 
+0112 79207e01 set1 dongle_bind ,pdata 
+0113 6000c8a3 store 1 ,mem_dongle_mode_init 
+0114 58000000 setarg 0 
+0115 6001c8a5 store 3 ,mem_dongle_ms_bind_step 
+0116 7041de04 jam tx_power_f5db ,mem_tx_power 
+0117 7048b801 jam 1 ,mem_24g_ackpayload_enable 
+0118 70483500 jam 0 ,mem_24g_pid 
+0119 7048404e jam g24_pair_ch ,mem_24g_ch 
+011a 68024842 fetch 4 ,mem_24g_paring_addr 
+011b 20200446 branch p_g24_update_addr_and_synccrc8 
+
+p_g24_dongle_bind_data_process:
+011c 20400264 call p_g24_receive_transmit_ack 
+011d 24378128 nbranch p_g24_rx_interrupt_clear ,user3 
+011e 70497c05 jam g24_work_mode_delay ,mem_24g_work_delay_count 
+011f d8c047b0 arg mem_24g_rxbuf ,contr 
+0120 d8a0487d arg mem_24g_rxdata_temp ,contw 
+0121 df200008 arg 8 ,loopcnt 
+0122 20407f01 call memcpy 
+0123 6800c87f fetch 1 ,mem_24g_rxdata_temp + 2 
+0124 c0550146 beq datatype_bind ,p_g24_dongle_bind_first_step 
+0125 c02a8153 beq datatype_config ,p_g24_dongle_bind_second_step 
+0126 c0110163 beq datatype_ok ,p_g24_dongle_bind_third_step 
+0127 c07f817f beq 0xff ,p_g24_data_attemp_bind 
+
+p_g24_rx_interrupt_clear:
+0128 d8a047b0 arg mem_24g_rxbuf ,contw 
+0129 df200042 arg 66 ,loopcnt 
+012a 20207ed4 branch clear_mem 
+
+p_g24_dongle_binding_device_check:
+012b 6800c8a4 fetch 1 ,mem_dongle_work_mode 
+012c c1808000 rtnne dongle_bind 
+012d 6800c8ba fetch 1 ,mem_24g_pair_mode 
+012e 247a0000 nrtn blank 
+012f 6800c7b3 fetch 1 ,mem_24g_rxbuf + 3 
+0130 c0008133 beq bind_mouse ,p_g24_dongle_binding_mouse_status 
+0131 c0010137 beq bind_keyboard ,p_g24_dongle_binding_keyboard_status 
+0132 20600000 rtn 
+
+p_g24_dongle_binding_mouse_status:
+0133 6800c983 fetch 1 ,mem_dongle_bind_device_living 
+0134 c4000000 rtnbit0 0 
+
+disable_user3:
+0135 7857fc00 disable user3 
+0136 20600000 rtn 
+
+p_g24_dongle_binding_keyboard_status:
+0137 6800c983 fetch 1 ,mem_dongle_bind_device_living 
+0138 c4008000 rtnbit0 1 
+0139 20200135 branch disable_user3 
+
+p_g24_dongle_binding_mouse_living:
+013a 6800c8ba fetch 1 ,mem_24g_pair_mode 
+013b 247a0000 nrtn blank 
+013c 6800c983 fetch 1 ,mem_dongle_bind_device_living 
+013d 1fe1fe01 or_into 0x01 ,pdata 
+013e 6000c983 store 1 ,mem_dongle_bind_device_living 
+013f 20600000 rtn 
+
+p_g24_dongle_binding_keyboard_living:
+0140 6800c8ba fetch 1 ,mem_24g_pair_mode 
+0141 247a0000 nrtn blank 
+0142 6800c983 fetch 1 ,mem_dongle_bind_device_living 
+0143 1fe1fe02 or_into 0x02 ,pdata 
+0144 6000c983 store 1 ,mem_dongle_bind_device_living 
+0145 20600000 rtn 
+
+p_g24_dongle_bind_first_step:
+0146 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
+0147 c000814a beq bind_mouse ,p_g24_dongle_bind_first_step_mouse 
+0148 c0010150 beq bind_keyboard ,p_g24_dongle_bind_first_step_keyboard 
+0149 20600000 rtn 
+
+p_g24_dongle_bind_first_step_mouse:
+014a 7048a501 jam 1 ,mem_dongle_ms_bind_step 
+
+p_g24_dongle_bind_ms_payload_cfg:
+014b 7048a801 jam datatype_mouse ,mem_24g_bind_payload 
+
+p_g24_dongle_bind_payload_cfg:
+014c 7048a980 jam 0x80 ,mem_24g_bind_payload + 1 
+014d 6803489f fetch 6 ,mem_24g_rx_addr 
+014e 600348aa store 6 ,mem_24g_bind_payload + 2 
+014f 20600000 rtn 
+
+p_g24_dongle_bind_first_step_keyboard:
+0150 7048a601 jam 1 ,mem_dongle_kb_bind_step 
+
+p_g24_dongle_bind_kb_payload_cfg:
+0151 7048a802 jam datatype_keyboard ,mem_24g_bind_payload 
+0152 2020014c branch p_g24_dongle_bind_payload_cfg 
+
+p_g24_dongle_bind_second_step:
+0153 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
+0154 c0008157 beq bind_mouse ,p_g24_dongle_bind_second_step_mouse 
+0155 c001015d beq bind_keyboard ,p_g24_dongle_bind_second_step_keyboard 
+0156 20600000 rtn 
+
+p_g24_dongle_bind_second_step_mouse:
+0157 2040014b call p_g24_dongle_bind_ms_payload_cfg 
+0158 6800c8a5 fetch 1 ,mem_dongle_ms_bind_step 
+0159 c000815b beq 1 ,p_g24_dongle_ms_bind_step_set2 
+015a 20600000 rtn 
+
+p_g24_dongle_ms_bind_step_set2:
+015b 7048a502 jam 2 ,mem_dongle_ms_bind_step 
+015c 20600000 rtn 
+
+p_g24_dongle_bind_second_step_keyboard:
+015d 20400151 call p_g24_dongle_bind_kb_payload_cfg 
+015e 6800c8a6 fetch 1 ,mem_dongle_kb_bind_step 
+015f c0008161 beq 1 ,p_g24_dongle_kb_bind_step_set2 
+0160 20600000 rtn 
+
+p_g24_dongle_kb_bind_step_set2:
+0161 7048a602 jam 2 ,mem_dongle_kb_bind_step 
+0162 20600000 rtn 
+
+p_g24_dongle_bind_third_step:
+0163 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
+0164 c0008167 beq bind_mouse ,p_g24_dongle_bind_third_step_mouse 
+0165 c0010171 beq bind_keyboard ,p_g24_dongle_bind_third_step_keyboard 
+0166 20600000 rtn 
+
+p_g24_dongle_bind_third_step_mouse:
+0167 6800c8a5 fetch 1 ,mem_dongle_ms_bind_step 
+0168 c001016a beq 2 ,p_g24_dongle_ms_bind_step_success 
+0169 20600000 rtn 
+
+p_g24_dongle_ms_bind_step_success:
+016a 2040013a call p_g24_dongle_binding_mouse_living 
+016b 6800c8a7 fetch 1 ,mem_dongle_bind_device_status 
+016c 1fe1fe01 or_into 0x01 ,pdata 
+016d 6000c8a7 store 1 ,mem_dongle_bind_device_status 
+
+p_g24_dongle_bind_exit:
+016e 58000000 setarg 0 
+016f 600148a5 store 2 ,mem_dongle_ms_bind_step 
+0170 20200128 branch p_g24_rx_interrupt_clear 
+
+p_g24_dongle_bind_third_step_keyboard:
+0171 6800c8a6 fetch 1 ,mem_dongle_kb_bind_step 
+0172 c0800174 bne 0 ,p_g24_dongle_kb_bind_step_success 
+0173 20600000 rtn 
+
+p_g24_dongle_kb_bind_step_success:
+0174 20400140 call p_g24_dongle_binding_keyboard_living 
+0175 6800c8a7 fetch 1 ,mem_dongle_bind_device_status 
+0176 1fe1fe02 or_into 0x02 ,pdata 
+0177 6000c8a7 store 1 ,mem_dongle_bind_device_status 
+0178 2040016e call p_g24_dongle_bind_exit 
+
+p_g24_dongle_store_kb_bind_flag:
+0179 680091c7 fetch 1 ,mem_dongle_kb_bind_flag 
+017a c12d0000 rtneq dongle_kb_bind_success 
+017b 7011c75a jam dongle_kb_bind_success ,mem_dongle_kb_bind_flag 
+017c 204000a0 call p_dongle_set_kb_bind_eeprom 
+017d 204065d1 call iicd_write_protect_eep_data 
+017e 2020659a branch soft_reset_chip 
+
+p_g24_data_attemp_bind:
+017f 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
+0180 c0008183 beq datatype_mouse ,p_g24_data_attemp_mouse_bind 
+0181 c0010186 beq datatype_keyboard ,p_g24_data_attemp_kbd_bind 
+0182 20600000 rtn 
+
+p_g24_data_attemp_mouse_bind:
+0183 68024881 fetch 4 ,mem_24g_rxdata_temp + 4 
+
+p_g24_store_mouse_addr:
+0184 600248da store 4 ,mem_24g_ms_addr 
+0185 20600000 rtn 
+
+p_g24_data_attemp_kbd_bind:
+0186 68024881 fetch 4 ,mem_24g_rxdata_temp + 4 
+
+p_g24_store_kbd_addr:
+0187 600248d6 store 4 ,mem_24g_kb_addr 
+0188 20600000 rtn 
+
+p_g24_queue_init:
+0189 70490000 jam 0 ,mem_queue_ele_num 
+018a 58004905 setarg mem_queue_start 
+018b 60014901 store 2 ,mem_queue_read 
+018c 60014903 store 2 ,mem_queue_write 
+018d 20600000 rtn 
+
+p_g24_queue_put:
+018e df20001f arg 0x1f ,loopcnt 
+018f d8400cb6 arg mem_usb0_set_report_data ,temp 
+0190 68014903 fetch 2 ,mem_queue_write 
+0191 1fe20a00 copy pdata ,contw 
+0192 18420c00 copy temp ,contr 
+0193 20407f01 call memcpy 
+0194 6800c900 fetch 1 ,mem_queue_ele_num 
+0195 1fe0fe01 increase 1 ,pdata 
+0196 6000c900 store 1 ,mem_queue_ele_num 
+0197 58004903 setarg mem_queue_write 
+
+p_g24_queue_increase:
+0198 1fe22200 copy pdata ,rega 
+0199 d8404965 arg mem_queue_end ,temp 
+019a ea210000 ifetch 2 ,rega 
+019b 1fe0fe20 increase queue_ele_length ,pdata 
+019c 98467c00 isub temp ,null 
+019d 2421019f nbranch p_g24_queue_put_end ,positive 
+019e 58004905 setarg mem_queue_start 
+
+p_g24_queue_put_end:
+019f e2210000 istore 2 ,rega 
+01a0 20600000 rtn 
+
+p_g24_queue_read_point:
+01a1 78547c00 disable user 
+01a2 6800c900 fetch 1 ,mem_queue_ele_num 
+01a3 207a0000 rtn blank 
+01a4 78347c00 enable user 
+01a5 68014901 fetch 2 ,mem_queue_read 
+01a6 20600000 rtn 
+
+p_dongle_usb_dispatch:
+01a7 708004ff jam 0xff ,core_write_watchdog 
+01a8 68008d39 fetch 1 ,mem_usb_remote_wakeup 
+01a9 205a0316 call p_g24_clear_pc_sleep_flag ,blank 
+01aa 204048d3 call usb_isr 
+01ab 68008d50 fetch 1 ,mem_usb0_get_set_report 
+01ac 207a0000 rtn blank 
+01ad 700d5000 jam 0 ,mem_usb0_get_set_report 
+01ae 68010d4e fetch 2 ,mem_usb_setup_bvalue_temp 
+01af d84002ba arg pc_set_report ,temp 
+01b0 98467c00 isub temp ,null 
+01b1 24628000 nrtn zero 
+01b2 68008cb6 fetch 1 ,mem_usb0_set_report_data 
+01b3 c1dd0000 rtnne pc_report_id 
+01b4 68008cb7 fetch 1 ,mem_usb0_set_report_data + 1 
+01b5 c05001c6 beq command_mode ,p_dongle_dispose_cmd_mode 
+01b6 c05081bc beq command_bind ,p_dongle_dispose_cmd_bind 
+01b7 c0533041 beq command_current_project ,dongle_dispose_cmd_current_project 
+01b8 c05381cb beq command_current_mode ,p_dongle_dispose_cmd_current_mode 
+01b9 c05481d1 beq command_current_fw_version ,p_dongle_dispose_cmd_current_fw_version 
+01ba c05801d3 beq command_user_defined ,p_dongle_dispose_cmd_user_defined 
+01bb 2020302a branch usb0_data_ready_report_set0 
+
+p_dongle_dispose_cmd_bind:
+01bc 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
+01bd c00081c1 beq com_bind_get ,p_dongle_dispose_cmd_get_bind 
+01be c04201c4 beq com_bind_exit ,p_dongle_dispose_cmd_exit_bind 
+01bf c053b039 beq com_read_mode ,dongle_dispose_cmd_read_mode 
+01c0 2020302a branch usb0_data_ready_report_set0 
+
+p_dongle_dispose_cmd_get_bind:
+01c1 6800c8a7 fetch 1 ,mem_dongle_bind_device_status 
+01c2 60008cf7 store 1 ,mem_usb0_get_report_data + 1 
+01c3 2020303f branch usb0_data_ready_report_set1 
+
+p_dongle_dispose_cmd_exit_bind:
+01c4 204000b8 call p_dongle_work_mode_enable 
+01c5 202001c1 branch p_dongle_dispose_cmd_get_bind 
+
+p_dongle_dispose_cmd_mode:
+01c6 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
+01c7 c04081c9 beq com_mode_bind ,p_dongle_enter_bind_mode 
+01c8 2020302a branch usb0_data_ready_report_set0 
+
+p_dongle_enter_bind_mode:
+01c9 20400226 call p_g24_bind_mode_enable 
+01ca 2020303f branch usb0_data_ready_report_set1 
+
+p_dongle_dispose_cmd_current_mode:
+01cb 6800c8a4 fetch 1 ,mem_dongle_work_mode 
+01cc c00001cf beq dongle_work ,p_dongle_dispose_in_work_mode 
+01cd c000b039 beq dongle_bind ,dongle_dispose_in_bind_mode 
+01ce 20600000 rtn 
+
+p_dongle_dispose_in_work_mode:
+01cf 700cf7a0 jam command_mode ,mem_usb0_get_report_data + 1 
+01d0 2020303f branch usb0_data_ready_report_set1 
+
+p_dongle_dispose_cmd_current_fw_version:
+01d1 700cfa07 jam fw_version3 ,mem_usb0_get_report_data + 4 
+01d2 20203049 branch dongle_dispose_cmd_current_fw_version 
+
+p_dongle_dispose_cmd_user_defined:
+01d3 68008cb8 fetch 1 ,mem_usb0_set_report_data + 2 
+01d4 c07fe59a beq 0xff ,soft_reset_chip 
+
+p_dongle_dispose_cmd_ota:
+01d5 7048b802 jam 2 ,mem_24g_ackpayload_enable 
+01d6 6800c900 fetch 1 ,mem_queue_ele_num 
+01d7 c00181dd beq queue_ele_count ,p_user_defined_queue_buff_full 
+01d8 2040018e call p_g24_queue_put 
+01d9 6800c900 fetch 1 ,mem_queue_ele_num 
+01da c00181dd beq queue_ele_count ,p_user_defined_queue_buff_full 
+
+p_user_defined_queue_buff_free:
+01db 700cf700 jam 0 ,mem_usb0_get_report_data + 1 
+01dc 2020303f branch usb0_data_ready_report_set1 
+
+p_user_defined_queue_buff_full:
+01dd 700cf701 jam 1 ,mem_usb0_get_report_data + 1 
+01de 2020303f branch usb0_data_ready_report_set1 
+
+p_dongle_auto_bind:
+01df 20400204 call p_g24_mode_switch_init 
+
+p_dongle_auto_bind_loop:
+01e0 2040020a call p_g24_mode_switch 
+01e1 20400235 call p_g24_mode_switch_2 
+01e2 204001e7 call p_g24_dongle_work_mode_auto 
+01e3 204001eb call p_g24_dongle_bind_mode_auto 
+01e4 20400268 call p_g24_dongle_search_mode_auto 
+01e5 204001a7 call p_dongle_usb_dispatch 
+01e6 202001e0 branch p_dongle_auto_bind_loop 
+
+p_g24_dongle_work_mode_auto:
+01e7 6800c8a4 fetch 1 ,mem_dongle_work_mode 
+01e8 c1800000 rtnne dongle_work 
+01e9 204000bd call p_g24_dongle_work_mode_start 
+01ea 20200256 branch p_g24_rx_nodata_process 
+
+p_g24_dongle_bind_mode_auto:
+01eb 6800c8a4 fetch 1 ,mem_dongle_work_mode 
+01ec c1808000 rtnne dongle_bind 
+01ed 20400110 call p_g24_dongle_bind_init 
+01ee 2040011c call p_g24_dongle_bind_data_process 
+01ef 6800c8a7 fetch 1 ,mem_dongle_bind_device_status 
+01f0 207a0000 rtn blank 
+01f1 7048b700 jam 0 ,mem_24g_mode_switch 
+01f2 204000b7 call p_dongle_check_mode 
+01f3 20400254 call p_g24_enable_nodata_timer 
+01f4 20200207 branch p_g24_timer_init 
+
+p_g24_timer_check:
+01f5 20407fe9 call disable_user 
+01f6 680a4857 fetcht 4 ,mem_24g_tx_btclk 
+01f7 1c427e00 copy clkn_bt ,pdata 
+01f8 98467c00 isub temp ,null 
+01f9 24412d18 ncall g24_timer_timeout ,positive 
+01fa 1fe22400 copy pdata ,regb 
+01fb 68024857 fetch 4 ,mem_24g_tx_btclk 
+01fc 6808c85b fetcht 1 ,mem_24g_interval 
+01fd 98408400 iadd temp ,temp 
+01fe 1a427e00 copy regb ,pdata 
+01ff 98467c00 isub temp ,null 
+0200 24610000 nrtn positive 
+0201 793ffe1c set0 28 ,pdata 
+0202 60024857 store 4 ,mem_24g_tx_btclk 
+0203 20207fe7 branch enable_user 
+
+p_g24_mode_switch_init:
+0204 7048b701 jam 1 ,mem_24g_mode_switch 
+0205 7048bc00 jam 0 ,mem_24g_time_slice 
+0206 70485bff jam 0xff ,mem_24g_interval 
+
+p_g24_timer_init:
+0207 58000000 setarg 0 
+0208 60024857 store 4 ,mem_24g_tx_btclk 
+0209 20600000 rtn 
+
+p_g24_mode_switch:
+020a 6800c8b7 fetch 1 ,mem_24g_mode_switch 
+020b 207a0000 rtn blank 
+020c 204001f5 call p_g24_timer_check 
+020d 24740000 nrtn user 
+020e 2040021f call p_g24_bind_mode_delay 
+020f 20400217 call p_g24_work_mode_delay 
+0210 6800c8bc fetch 1 ,mem_24g_time_slice 
+0211 1fe0fe01 increase 1 ,pdata 
+0212 1fe17e01 and_into 1 ,pdata 
+0213 6000c8bc store 1 ,mem_24g_time_slice 
+0214 c000021c beq 0 ,p_g24_mode_switch_work 
+0215 c0008224 beq 1 ,p_g24_mode_switch_bind 
+0216 20600000 rtn 
+
+p_g24_work_mode_delay:
+0217 6800c97c fetch 1 ,mem_24g_work_delay_count 
+0218 207a0000 rtn blank 
+0219 1fe0ffff increase -1 ,pdata 
+021a 6000c97c store 1 ,mem_24g_work_delay_count 
+021b 20600000 rtn 
+
+p_g24_mode_switch_work:
+021c 6800c97c fetch 1 ,mem_24g_work_delay_count 
+021d 243a0226 nbranch p_g24_bind_mode_enable ,blank 
+021e 202000b7 branch p_dongle_check_mode 
+
+p_g24_bind_mode_delay:
+021f 6800c97b fetch 1 ,mem_24g_bind_delay_count 
+0220 207a0000 rtn blank 
+0221 1fe0ffff increase -1 ,pdata 
+0222 6000c97b store 1 ,mem_24g_bind_delay_count 
+0223 20600000 rtn 
+
+p_g24_mode_switch_bind:
+0224 6800c97b fetch 1 ,mem_24g_bind_delay_count 
+0225 243a00b7 nbranch p_dongle_check_mode ,blank 
+
+p_g24_bind_mode_enable:
+0226 7048a401 jam dongle_bind ,mem_dongle_work_mode 
+0227 7048a300 jam clear_init ,mem_dongle_mode_init 
+0228 20600000 rtn 
+
+p_g24_mode_switch_init_2:
+0229 6800c981 fetch 1 ,mem_24g_mode_switch_exit_2 
+022a 205a0252 call p_g24_mode_switch_start_2 ,blank 
+022b 6800c97e fetch 1 ,mem_24g_mode_switch_2_init 
+022c c3800000 rtnbit1 0 
+022d 79207e00 set1 0 ,pdata 
+022e 6000c97e store 1 ,mem_24g_mode_switch_2_init 
+022f 70497d01 jam 1 ,mem_24g_mode_switch_2 
+0230 70498200 jam 0 ,mem_24g_time_slice_2 
+0231 58000000 setarg 0 
+0232 6001497f store 2 ,mem_24g_mode_switch_cnt_2 
+0233 70485b60 jam 0x60 ,mem_24g_interval 
+0234 20200207 branch p_g24_timer_init 
+
+p_g24_mode_switch_2:
+0235 6800c8a4 fetch 1 ,mem_dongle_work_mode 
+0236 c1000000 rtneq dongle_work 
+0237 6800c981 fetch 1 ,mem_24g_mode_switch_exit_2 
+0238 247a0000 nrtn blank 
+0239 6800c97d fetch 1 ,mem_24g_mode_switch_2 
+023a 207a0000 rtn blank 
+023b 204001f5 call p_g24_timer_check 
+023c 24740000 nrtn user 
+023d 6801497f fetch 2 ,mem_24g_mode_switch_cnt_2 
+023e 1fe0fe01 increase 1 ,pdata 
+023f 6001497f store 2 ,mem_24g_mode_switch_cnt_2 
+0240 d84007d0 arg 0x7d0 ,temp 
+0241 98467c00 isub temp ,null 
+0242 2021024e branch p_g24_mode_switch_exit_2 ,positive 
+0243 20400217 call p_g24_work_mode_delay 
+0244 6800c982 fetch 1 ,mem_24g_time_slice_2 
+0245 1fe0fe01 increase 1 ,pdata 
+0246 1fe17e01 and_into 1 ,pdata 
+0247 6000c982 store 1 ,mem_24g_time_slice_2 
+0248 c000024b beq 0 ,p_g24_mode_switch_search 
+0249 c0008226 beq 1 ,p_g24_bind_mode_enable 
+024a 20600000 rtn 
+
+p_g24_mode_switch_search:
+024b 6800c97c fetch 1 ,mem_24g_work_delay_count 
+024c 243a0226 nbranch p_g24_bind_mode_enable ,blank 
+024d 20200261 branch p_g24_search_mode_enable 
+
+p_g24_mode_switch_exit_2:
+024e 70498101 jam 1 ,mem_24g_mode_switch_exit_2 
+024f 20200261 branch p_g24_search_mode_enable 
+
+p_g24_mode_switch_stop_2:
+0250 70497d00 jam 0 ,mem_24g_mode_switch_2 
+0251 20600000 rtn 
+
+p_g24_mode_switch_start_2:
+0252 70497d01 jam 1 ,mem_24g_mode_switch_2 
+0253 20600000 rtn 
+
+p_g24_enable_nodata_timer:
+0254 7048bb01 jam 1 ,mem_24g_nodata_timer_enable 
+0255 20203095 branch g24_enable_nodata_timer_init 
+
+p_g24_rx_nodata_process:
+0256 6800c8b8 fetch 1 ,mem_24g_ackpayload_enable 
+0257 c1010000 rtneq 2 
+0258 6800c8bb fetch 1 ,mem_24g_nodata_timer_enable 
+0259 207a0000 rtn blank 
+025a d8e00008 arg timer_nodata ,queue 
+025b 20407f16 call timer_check 
+025c 247a0000 nrtn blank 
+025d 7048bb00 jam 0 ,mem_24g_nodata_timer_enable 
+025e 70497b00 jam 0 ,mem_24g_bind_delay_count 
+025f 70497c00 jam 0 ,mem_24g_work_delay_count 
+0260 20400229 call p_g24_mode_switch_init_2 
+
+p_g24_search_mode_enable:
+0261 7048a407 jam dongle_search ,mem_dongle_work_mode 
+0262 7048a300 jam clear_init ,mem_dongle_mode_init 
+0263 20200128 branch p_g24_rx_interrupt_clear 
+
+p_g24_receive_transmit_ack:
+0264 20400128 call p_g24_rx_interrupt_clear 
+0265 20400480 call p_g24_receive_packet 
+0266 24778000 nrtn user3 
+0267 20200305 branch p_g24_transmit_ack 
+
+p_g24_dongle_search_mode_auto:
+0268 6800c8a4 fetch 1 ,mem_dongle_work_mode 
+0269 c1838000 rtnne dongle_search 
+026a 2040028f call p_g24_dongle_search_mode_init 
+026b 204002a3 call p_g24_rx_auto_addr_ch_search 
+026c 20400264 call p_g24_receive_transmit_ack 
+026d 24378128 nbranch p_g24_rx_interrupt_clear ,user3 
+026e 2040029f call p_g24_rx_addr_check 
+026f 20428349 call p_g24_receive_packet_parse ,zero 
+0270 6800c8b0 fetch 1 ,mem_24g_abort_packet 
+0271 205a0250 call p_g24_mode_switch_stop_2 ,blank 
+0272 7048a400 jam dongle_work ,mem_dongle_work_mode 
+0273 6800c8a3 fetch 1 ,mem_dongle_mode_init 
+0274 79207e00 set1 dongle_work ,pdata 
+0275 6000c8a3 store 1 ,mem_dongle_mode_init 
+0276 6800c8b8 fetch 1 ,mem_24g_ackpayload_enable 
+0277 1fe67c02 sub pdata ,2 ,null 
+0278 24428286 ncall p_g24_ackpayload_disable ,zero 
+0279 20400128 call p_g24_rx_interrupt_clear 
+027a 20400254 call p_g24_enable_nodata_timer 
+027b 2040029f call p_g24_rx_addr_check 
+027c 20228288 branch p_g24_dg_ch_num_reinit ,zero 
+027d 6802485e fetch 4 ,mem_24g_addr 
+027e 680a48d6 fetcht 4 ,mem_24g_kb_addr 
+027f 98467c00 isub temp ,null 
+0280 2022828b branch p_g24_kb_ch_num_reinit ,zero 
+0281 6802485e fetch 4 ,mem_24g_addr 
+0282 680a48da fetcht 4 ,mem_24g_ms_addr 
+0283 98467c00 isub temp ,null 
+0284 2022828d branch p_g24_ms_ch_num_reinit ,zero 
+0285 20600000 rtn 
+
+p_g24_ackpayload_disable:
+0286 7048b800 jam 0 ,mem_24g_ackpayload_enable 
+0287 20600000 rtn 
+
+p_g24_dg_ch_num_reinit:
+0288 6800c8df fetch 1 ,mem_24g_dg_ch_number 
+
+p_g24_current_ch_num_reinit:
+0289 6000c841 store 1 ,mem_24g_current_ch_number 
+028a 20600000 rtn 
+
+p_g24_kb_ch_num_reinit:
+028b 6800c8e2 fetch 1 ,mem_24g_kb_ch_number 
+028c 20200289 branch p_g24_current_ch_num_reinit 
+
+p_g24_ms_ch_num_reinit:
+028d 6800c8e5 fetch 1 ,mem_24g_ms_ch_number 
+028e 20200289 branch p_g24_current_ch_num_reinit 
+
+p_g24_dongle_search_mode_init:
+028f 6800c8a3 fetch 1 ,mem_dongle_mode_init 
+0290 c3838000 rtnbit1 dongle_search 
+0291 79207e07 set1 dongle_search ,pdata 
+0292 6000c8a3 store 1 ,mem_dongle_mode_init 
+0293 7048bc00 jam 0 ,mem_24g_time_slice 
+0294 7048b801 jam 1 ,mem_24g_ackpayload_enable 
+0295 58000000 setarg 0 
+0296 6001c8f5 store 3 ,mem_rssi_noise_dg_index 
+0297 6003c8e0 store 7 ,mem_24g_dg_config_ch_once 
+0298 2040029f call p_g24_rx_addr_check 
+0299 24628000 nrtn zero 
+029a 6800c841 fetch 1 ,mem_24g_current_ch_number 
+029b 6000c8df store 1 ,mem_24g_dg_ch_number 
+029c 6800c840 fetch 1 ,mem_24g_ch 
+029d 6000c8de store 1 ,mem_24g_dg_last_ch 
+029e 20600000 rtn 
+
+p_g24_rx_addr_check:
+029f 6802485e fetch 4 ,mem_24g_addr 
+02a0 680a489f fetcht 4 ,mem_24g_rx_addr 
+02a1 98467c00 isub temp ,null 
+02a2 20600000 rtn 
+
+p_g24_rx_auto_addr_ch_search:
+02a3 6800c8bc fetch 1 ,mem_24g_time_slice 
+02a4 1fe0fe01 increase 1 ,pdata 
+02a5 1fe17e03 and_into 3 ,pdata 
+02a6 6000c8bc store 1 ,mem_24g_time_slice 
+02a7 c00002c6 beq 0 ,p_g24_rx_auto_bind_config_kb 
+02a8 c00082e0 beq 1 ,p_g24_rx_auto_bind_config_dongle 
+02a9 c00102ac beq 2 ,p_g24_rx_auto_bind_config_mouse 
+02aa c00182e0 beq 3 ,p_g24_rx_auto_bind_config_dongle 
+02ab 20600000 rtn 
+
+p_g24_rx_auto_bind_config_mouse:
+02ac 2040014b call p_g24_dongle_bind_ms_payload_cfg 
+02ad 680248da fetch 4 ,mem_24g_ms_addr 
+02ae 203a02a3 branch p_g24_rx_auto_addr_ch_search ,blank 
+02af 20400446 call p_g24_update_addr_and_synccrc8 
+02b0 6800c8e6 fetch 1 ,mem_24g_ms_config_ch_once 
+02b1 205a02c1 call p_g24_ms_config_ch_once ,blank 
+02b2 6800c8e4 fetch 1 ,mem_24g_ms_last_ch 
+02b3 6000c840 store 1 ,mem_24g_ch 
+02b4 6808c8f7 fetcht 1 ,mem_rssi_noise_ms_index 
+02b5 da200f9e arg mem_rssi_noise_ms_buffer ,rega 
+02b6 2040043a call p_rssi_store 
+02b7 6008c8f7 storet 1 ,mem_rssi_noise_ms_index 
+02b8 20400441 call p_rssi_average 
+02b9 6008c8f4 storet 1 ,mem_rssi_noise_ms_avg 
+02ba 18467c50 sub temp ,rssi_thresh_noise ,null 
+02bb 24610000 nrtn positive 
+02bc 6808c8e5 fetcht 1 ,mem_24g_ms_ch_number 
+02bd 2040046a call p_g24_ch_map_size 
+02be 6008c8e5 storet 1 ,mem_24g_ms_ch_number 
+02bf 6000c8e4 store 1 ,mem_24g_ms_last_ch 
+02c0 20600000 rtn 
+
+p_g24_ms_config_ch_once:
+02c1 7048e601 jam 1 ,mem_24g_ms_config_ch_once 
+02c2 d8400000 arg 0 ,temp 
+02c3 2040046e call p_g24_ch_calc 
+02c4 6000c8e4 store 1 ,mem_24g_ms_last_ch 
+02c5 20600000 rtn 
+
+p_g24_rx_auto_bind_config_kb:
+02c6 20400151 call p_g24_dongle_bind_kb_payload_cfg 
+02c7 680248d6 fetch 4 ,mem_24g_kb_addr 
+02c8 203a02a3 branch p_g24_rx_auto_addr_ch_search ,blank 
+02c9 20400446 call p_g24_update_addr_and_synccrc8 
+02ca 6800c8e3 fetch 1 ,mem_24g_kb_config_ch_once 
+02cb 205a02db call p_g24_kb_config_ch_once ,blank 
+02cc 6800c8e1 fetch 1 ,mem_24g_kb_last_ch 
+02cd 6000c840 store 1 ,mem_24g_ch 
+02ce 6808c8f6 fetcht 1 ,mem_rssi_noise_kb_index 
+02cf da20109e arg mem_rssi_noise_kb_buffer ,rega 
+02d0 2040043a call p_rssi_store 
+02d1 6008c8f6 storet 1 ,mem_rssi_noise_kb_index 
+02d2 20400441 call p_rssi_average 
+02d3 6008c8f3 storet 1 ,mem_rssi_noise_kb_avg 
+02d4 18467c50 sub temp ,rssi_thresh_noise ,null 
+02d5 24610000 nrtn positive 
+02d6 6808c8e2 fetcht 1 ,mem_24g_kb_ch_number 
+02d7 2040046a call p_g24_ch_map_size 
+02d8 6008c8e2 storet 1 ,mem_24g_kb_ch_number 
+02d9 6000c8e1 store 1 ,mem_24g_kb_last_ch 
+02da 20600000 rtn 
+
+p_g24_kb_config_ch_once:
+02db 7048e301 jam 1 ,mem_24g_kb_config_ch_once 
+02dc d8400000 arg 0 ,temp 
+02dd 2040046e call p_g24_ch_calc 
+02de 6000c8e1 store 1 ,mem_24g_kb_last_ch 
+02df 20600000 rtn 
+
+p_g24_rx_auto_bind_config_dongle:
+02e0 2040014b call p_g24_dongle_bind_ms_payload_cfg 
+02e1 6802489f fetch 4 ,mem_24g_rx_addr 
+02e2 20400446 call p_g24_update_addr_and_synccrc8 
+02e3 6800c8e0 fetch 1 ,mem_24g_dg_config_ch_once 
+02e4 205a02f4 call p_g24_dg_config_ch_once ,blank 
+02e5 6800c8de fetch 1 ,mem_24g_dg_last_ch 
+02e6 6000c840 store 1 ,mem_24g_ch 
+02e7 6808c8f5 fetcht 1 ,mem_rssi_noise_dg_index 
+02e8 da200e9e arg mem_rssi_noise_dg_buffer ,rega 
+02e9 2040043a call p_rssi_store 
+02ea 6008c8f5 storet 1 ,mem_rssi_noise_dg_index 
+02eb 20400441 call p_rssi_average 
+02ec 6008c8f2 storet 1 ,mem_rssi_noise_dg_avg 
+02ed 18467c50 sub temp ,rssi_thresh_noise ,null 
+02ee 24610000 nrtn positive 
+02ef 6808c8df fetcht 1 ,mem_24g_dg_ch_number 
+02f0 2040046a call p_g24_ch_map_size 
+02f1 6008c8df storet 1 ,mem_24g_dg_ch_number 
+02f2 6000c8de store 1 ,mem_24g_dg_last_ch 
+02f3 20600000 rtn 
+
+p_g24_dg_config_ch_once:
+02f4 7048e001 jam 1 ,mem_24g_dg_config_ch_once 
+02f5 6800c8de fetch 1 ,mem_24g_dg_last_ch 
+02f6 6000c840 store 1 ,mem_24g_ch 
+02f7 20600000 rtn 
+
+p_g24_read_len_pid_crc:
+02f8 6800c7b1 fetch 1 ,mem_24g_rxbuf + 1 
+02f9 1fe97e00 rshift3 pdata ,pdata 
+02fa 6000c834 store 1 ,mem_24g_rxdata_length 
+02fb 1fe0fe01 increase 1 ,pdata 
+02fc d8c047b1 arg mem_24g_rxbuf + 1 ,contr 
+02fd 98c08c00 iadd contr ,contr 
+02fe e8c18000 ifetch 3 ,contr 
+02ff 6001c873 store 3 ,mem_24g_sta_crc 
+0300 6800c7b1 fetch 1 ,mem_24g_rxbuf + 1 
+0301 1fe37e00 rshift pdata ,pdata 
+0302 1fe17e03 and pdata ,0x03 ,pdata 
+0303 6000c879 store 1 ,mem_24g_sta_pid 
+0304 20600000 rtn 
+
+p_g24_transmit_ack:
+0305 6800c7b0 fetch 1 ,mem_24g_rxbuf 
+0306 6000c837 store 1 ,mem_24g_data_type 
+0307 204002f8 call p_g24_read_len_pid_crc 
+0308 6800c7b1 fetch 1 ,mem_24g_rxbuf + 1 
+0309 2feffe00 isolate1 bit_ack_24g ,pdata 
+030a 2020830e branch p_g24tx_no_ack ,true 
+
+p_g24tx_with_ack:
+030b 2040030f call p_g24_ackpayload_prep 
+030c 20400454 call p_g24_transmit_prep 
+030d 204004ca call p_g24_transmit 
+
+p_g24tx_no_ack:
+030e 202004c2 branch p_g24_end_of_packet 
+
+p_g24_ackpayload_prep:
+030f 70483600 jam 0 ,mem_24g_datalen 
+0310 6800c837 fetch 1 ,mem_24g_data_type 
+0311 c0008313 beq 0x01 ,p_g24_ackpayload_prep_mouse 
+0312 c0010318 beq 0x02 ,p_g24_ackpayload_prep_keyboard 
+
+p_g24_ackpayload_prep_mouse:
+0313 6800c97a fetch 1 ,mem_24g_pc_sleep_flag 
+0314 c2800320 bbit1 0 ,p_g24_pc_sleep_ackpayload_prep_mouse 
+0315 2020031a branch p_g24_ackpayload_prep_end 
+
+p_g24_clear_pc_sleep_flag:
+0316 70497a00 jam 0 ,mem_24g_pc_sleep_flag 
+0317 20600000 rtn 
+
+p_g24_ackpayload_prep_keyboard:
+0318 6800c97a fetch 1 ,mem_24g_pc_sleep_flag 
+0319 c2808324 bbit1 1 ,p_g24_pc_sleep_ackpayload_prep_keyboard 
+
+p_g24_ackpayload_prep_end:
+031a 6800c8b8 fetch 1 ,mem_24g_ackpayload_enable 
+031b 207a0000 rtn blank 
+031c c000832b beq bind_ackpayload ,p_g24_bind_ackpayload_prep 
+031d c0010333 beq user_ackpayload ,p_g24_user_ackpayload_prep 
+031e c001833d beq kb_led_ackpayload ,p_g24_kb_led_ackpayload_prep 
+031f 20600000 rtn 
+
+p_g24_pc_sleep_ackpayload_prep_mouse:
+0320 6800c97a fetch 1 ,mem_24g_pc_sleep_flag 
+0321 793ffe00 set0 0 ,pdata 
+0322 6000c97a store 1 ,mem_24g_pc_sleep_flag 
+0323 20200327 branch p_g24_pc_sleep_ackpayload_prep 
+
+p_g24_pc_sleep_ackpayload_prep_keyboard:
+0324 6800c97a fetch 1 ,mem_24g_pc_sleep_flag 
+0325 793ffe01 set0 1 ,pdata 
+0326 6000c97a store 1 ,mem_24g_pc_sleep_flag 
+
+p_g24_pc_sleep_ackpayload_prep:
+0327 70483601 jam 0x01 ,mem_24g_datalen 
+0328 580000ff setarg 0xff 
+0329 6000c7d2 store 1 ,mem_24g_txbuf 
+032a 20600000 rtn 
+
+p_g24_bind_ackpayload_prep:
+032b 7048b801 jam 1 ,mem_24g_ackpayload_enable 
+032c 2040012b call p_g24_dongle_binding_device_check 
+032d 24778000 nrtn user3 
+032e 70483608 jam 0x08 ,mem_24g_datalen 
+032f df200008 arg 0x08 ,loopcnt 
+0330 d8c048a8 arg mem_24g_bind_payload ,contr 
+0331 d8a047d2 arg mem_24g_txbuf ,contw 
+0332 20207f01 branch memcpy 
+
+p_g24_user_ackpayload_prep:
+0333 204001a1 call p_g24_queue_read_point 
+0334 24740000 nrtn user 
+0335 7048361f jam 0x1f ,mem_24g_datalen 
+0336 df20001f arg 0x1f ,loopcnt 
+0337 1fe20c00 copy pdata ,contr 
+0338 d8a047d2 arg mem_24g_txbuf ,contw 
+0339 20407f01 call memcpy 
+033a 680147d5 fetch 2 ,mem_24g_txbuf + 3 
+033b 600148eb store 2 ,mem_24g_ota_sta_pid 
+033c 20600000 rtn 
+
+p_g24_kb_led_ackpayload_prep:
+033d 6800c7b2 fetch 1 ,mem_24g_rxbuf + 2 
+033e c000832b beq 0x01 ,p_g24_bind_ackpayload_prep 
+033f c07f832b beq 0xff ,p_g24_bind_ackpayload_prep 
+0340 700d4300 jam 0 ,mem_usb_tx_win_enable 
+0341 70483601 jam 0x01 ,mem_24g_datalen 
+0342 df200001 arg 0x01 ,loopcnt 
+0343 d8c04978 arg mem_24g_led_status ,contr 
+0344 d8a047d2 arg mem_24g_txbuf ,contw 
+0345 20207f01 branch memcpy 
+
+p_g24_receive_packet_start:
+0346 20400264 call p_g24_receive_transmit_ack 
+0347 24378128 nbranch p_g24_rx_interrupt_clear ,user3 
+0348 20200349 branch p_g24_receive_packet_parse 
+
+p_g24_receive_packet_parse:
+0349 2040035a call p_g24_receive_packet_parse_pid_crc 
+034a 24340128 nbranch p_g24_rx_interrupt_clear ,user 
+034b 6800c834 fetch 1 ,mem_24g_rxdata_length 
+034c 203a0128 branch p_g24_rx_interrupt_clear ,blank 
+034d 1fe0fe02 increase 2 ,pdata 
+034e 98007200 iforce loopcnt 
+034f d8c047b0 arg mem_24g_rxbuf ,contr 
+0350 d8a0487d arg mem_24g_rxdata_temp ,contw 
+0351 20407f01 call memcpy 
+0352 7048b700 jam 0 ,mem_24g_mode_switch 
+0353 6800c8ba fetch 1 ,mem_24g_pair_mode 
+0354 205a0254 call p_g24_enable_nodata_timer ,blank 
+0355 6800c87f fetch 1 ,mem_24g_rxdata_temp + 2 
+0356 c0008368 beq 0x01 ,p_g24_data_type1 
+0357 c0010388 beq 0x02 ,p_g24_data_type2 
+0358 c07f83dd beq 0xff ,p_g24_data_attemp 
+0359 20200128 branch p_g24_rx_interrupt_clear 
+
+p_g24_receive_packet_parse_pid_crc:
+035a 20407fe9 call disable_user 
+035b 6800c879 fetch 1 ,mem_24g_sta_pid 
+035c 6808c87a fetcht 1 ,mem_24g_last_pid 
+035d 98467c00 isub temp ,null 
+035e 2442ffe7 ncall enable_user ,zero 
+035f 6800c879 fetch 1 ,mem_24g_sta_pid 
+0360 6000c87a store 1 ,mem_24g_last_pid 
+0361 6801c873 fetch 3 ,mem_24g_sta_crc 
+0362 6809c876 fetcht 3 ,mem_24g_last_crc 
+0363 98467c00 isub temp ,null 
+0364 2442ffe7 ncall enable_user ,zero 
+0365 6801c873 fetch 3 ,mem_24g_sta_crc 
+0366 6001c876 store 3 ,mem_24g_last_crc 
+0367 20600000 rtn 
+
+p_g24_data_type1:
+0368 2040013a call p_g24_dongle_binding_mouse_living 
+0369 204000e4 call p_g24_ch_timer_reinit 
+036a 6800c8b0 fetch 1 ,mem_24g_abort_packet 
+036b 6808c87d fetcht 1 ,mem_24g_rxdata_temp 
+036c 284ffe03 isolate1 bit_abort ,temp 
+036d 7920fe00 setflag true ,0 ,pdata 
+036e 6000c8b0 store 1 ,mem_24g_abort_packet 
+036f c00083e7 beq 1 ,p_g24_data_attemp_mouse_abort 
+0370 6800c8b9 fetch 1 ,mem_24g_hop_packet 
+0371 6808c87d fetcht 1 ,mem_24g_rxdata_temp 
+0372 284ffe04 isolate1 bit_hop ,temp 
+0373 7920fe00 setflag true ,0 ,pdata 
+0374 6000c8b9 store 1 ,mem_24g_hop_packet 
+0375 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
+0376 c06783eb beq cmd_ota ,p_g24_ota_process 
+0377 58000001 setarg ms_report_id 
+0378 60008d54 store 1 ,mem_usb_mouse_data 
+0379 6803c880 fetch 7 ,mem_24g_rxdata_temp + 3 
+037a e0a38000 istore 7 ,contw 
+037b 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
+037c 245a0380 ncall p_g24_ms_enable_blank_data_forcibly ,blank 
+037d 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
+037e 205a0384 call p_g24_ms_disable_blank_data_forcibly ,blank 
+037f 202031b8 branch g24_data_type1_usbtx_enable 
+
+p_g24_ms_enable_blank_data_forcibly:
+0380 7048d501 jam 1 ,mem_24g_ms_blank_data_enable 
+0381 58000180 setarg timer_new_ms_blank_delay 
+0382 d8e0000b arg timer_new_ms_blank ,queue 
+0383 20207f08 branch timer_init 
+
+p_g24_ms_disable_blank_data_forcibly:
+0384 7048d500 jam 0 ,mem_24g_ms_blank_data_enable 
+0385 58000000 setarg 0 
+0386 d8e0000b arg timer_new_ms_blank ,queue 
+0387 20207f08 branch timer_init 
+
+p_g24_data_type2:
+0388 20400140 call p_g24_dongle_binding_keyboard_living 
+0389 6808c87d fetcht 1 ,mem_24g_rxdata_temp 
+038a 284ffe03 isolate1 bit_abort ,temp 
+038b 202083e9 branch p_g24_data_attemp_kbd_abort ,true 
+038c 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
+038d c0000391 beq 0 ,p_g24_data_type2_data1 
+038e c00103c6 beq 2 ,p_g24_data_type2_data3 
+038f c00183ad beq 3 ,p_g24_data_type2_data2 
+0390 20200128 branch p_g24_rx_interrupt_clear 
+
+p_g24_data_type2_data1:
+0391 6800c882 fetch 1 ,mem_24g_rxdata_temp + 5 
+0392 6000c8b8 store 1 ,mem_24g_ackpayload_enable 
+0393 70488200 jam 0 ,mem_24g_rxdata_temp + 5 
+0394 d8a00d64 arg mem_usb_kb_data ,contw 
+0395 204003a2 call p_g24_data_type2_copy_data1 
+0396 68040d64 fetch 8 ,mem_usb_kb_data 
+0397 245a03a5 ncall p_g24_kb_enable_blank_data_forcibly ,blank 
+0398 68040d64 fetch 8 ,mem_usb_kb_data 
+0399 205a03a9 call p_g24_kb_disable_blank_data_forcibly ,blank 
+039a 68040d64 fetch 8 ,mem_usb_kb_data 
+039b 600448bd store 8 ,mem_24g_kb_data_sta_data 
+039c 680c48c5 fetcht 8 ,mem_24g_kb_data_last_data 
+039d 98467c00 isub temp ,null 
+039e 2442b1ed ncall g24_kb_data_into_ep1_fifo ,zero 
+039f 680448bd fetch 8 ,mem_24g_kb_data_sta_data 
+03a0 600448c5 store 8 ,mem_24g_kb_data_last_data 
+03a1 20200128 branch p_g24_rx_interrupt_clear 
+
+p_g24_data_type2_copy_data1:
+03a2 d8c04881 arg mem_24g_rxdata_temp + 4 ,contr 
+03a3 df200008 arg 8 ,loopcnt 
+03a4 20207f01 branch memcpy 
+
+p_g24_kb_enable_blank_data_forcibly:
+03a5 7048d301 jam 1 ,mem_24g_kb_blank_data_enable 
+03a6 58000180 setarg timer_new_kb_blank_delay 
+03a7 d8e0000e arg timer_new_kb_blank ,queue 
+03a8 20207f08 branch timer_init 
+
+p_g24_kb_disable_blank_data_forcibly:
+03a9 7048d300 jam 0 ,mem_24g_kb_blank_data_enable 
+03aa 58000000 setarg 0 
+03ab d8e0000e arg timer_new_kb_blank ,queue 
+03ac 20207f08 branch timer_init 
+
+p_g24_data_type2_data2:
+03ad d8a00d74 arg mem_usb_kb_multikey ,contw 
+03ae 204003bb call p_g24_data_type2_copy_data2 
+03af 68010d75 fetch 2 ,mem_usb_kb_multikey + 1 
+03b0 245a03be ncall p_g24_kb_mul_enable_blank_data_forcibly ,blank 
+03b1 68010d75 fetch 2 ,mem_usb_kb_multikey + 1 
+03b2 205a03c2 call p_g24_kb_mul_disable_blank_data_forcibly ,blank 
+03b3 68018d74 fetch 3 ,mem_usb_kb_multikey 
+03b4 6001c8cd store 3 ,mem_24g_kb_multikey_sta_data 
+03b5 6809c8d0 fetcht 3 ,mem_24g_kb_multikey_last_data 
+03b6 98467c00 isub temp ,null 
+03b7 2442b207 ncall g24_kb_mul_data_into_ep2_fifo ,zero 
+03b8 6801c8cd fetch 3 ,mem_24g_kb_multikey_sta_data 
+03b9 6001c8d0 store 3 ,mem_24g_kb_multikey_last_data 
+03ba 20200128 branch p_g24_rx_interrupt_clear 
+
+p_g24_data_type2_copy_data2:
+03bb d8c04880 arg mem_24g_rxdata_temp + 3 ,contr 
+03bc df200003 arg 3 ,loopcnt 
+03bd 20207f01 branch memcpy 
+
+p_g24_kb_mul_enable_blank_data_forcibly:
+03be 7048d401 jam 1 ,mem_24g_kb_mul_blank_data_enable 
+03bf 58000180 setarg timer_new_kb_mul_blank_delay 
+03c0 d8e0000c arg timer_new_kb_mul_blank ,queue 
+03c1 20207f08 branch timer_init 
+
+p_g24_kb_mul_disable_blank_data_forcibly:
+03c2 7048d400 jam 0 ,mem_24g_kb_mul_blank_data_enable 
+03c3 58000000 setarg 0 
+03c4 d8e0000c arg timer_new_kb_mul_blank ,queue 
+03c5 20207f08 branch timer_init 
+
+p_g24_data_type2_data3:
+03c6 d8a013bc arg mem_usb_kb_system ,contw 
+03c7 204003d0 call p_g24_data_type2_copy_data3 
+03c8 680113bc fetch 2 ,mem_usb_kb_system 
+03c9 600113cc store 2 ,mem_usb_kb_system_sta_data 
+03ca 680913cf fetcht 2 ,mem_usb_kb_system_last_data 
+03cb 98467c00 isub temp ,null 
+03cc 244283db ncall p_g24_kb_sys_data_into_ep2_fifo ,zero 
+03cd 680113cc fetch 2 ,mem_usb_kb_system_sta_data 
+03ce 600113cf store 2 ,mem_usb_kb_system_last_data 
+03cf 20200128 branch p_g24_rx_interrupt_clear 
+
+p_g24_data_type2_copy_data3:
+03d0 d8c04880 arg mem_24g_rxdata_temp + 3 ,contr 
+03d1 df200002 arg 2 ,loopcnt 
+03d2 20207f01 branch memcpy 
+
+p_g24_kb_sys_enable_blank_data_forcibly:
+03d3 7048d401 jam 1 ,mem_24g_kb_mul_blank_data_enable 
+03d4 58000180 setarg timer_new_kb_mul_blank_delay 
+03d5 d8e0000c arg timer_new_kb_mul_blank ,queue 
+03d6 20207f08 branch timer_init 
+
+p_g24_kb_sys_disable_blank_data_forcibly:
+03d7 7048d400 jam 0 ,mem_24g_kb_mul_blank_data_enable 
+03d8 58000000 setarg 0 
+03d9 d8e0000c arg timer_new_kb_mul_blank ,queue 
+03da 20207f08 branch timer_init 
+
+p_g24_kb_sys_data_into_ep2_fifo:
+03db 700d5222 jam usb_ep2_systemkey ,mem_usb_ep2_data 
+03dc 202031b9 branch g24_data_type1_usbtx_enable_ep2 
+
+p_g24_data_attemp:
+03dd 6800c880 fetch 1 ,mem_24g_rxdata_temp + 3 
+03de c00083e1 beq datatype_mouse ,p_g24_data_attemp_mouse 
+03df c00103e4 beq datatype_keyboard ,p_g24_data_attemp_kbd 
+03e0 20600000 rtn 
+
+p_g24_data_attemp_mouse:
+03e1 2040013a call p_g24_dongle_binding_mouse_living 
+03e2 68024881 fetch 4 ,mem_24g_rxdata_temp + 4 
+03e3 20200184 branch p_g24_store_mouse_addr 
+
+p_g24_data_attemp_kbd:
+03e4 20400140 call p_g24_dongle_binding_keyboard_living 
+03e5 68024881 fetch 4 ,mem_24g_rxdata_temp + 4 
+03e6 20200187 branch p_g24_store_kbd_addr 
+
+p_g24_data_attemp_mouse_abort:
+03e7 68024887 fetch 4 ,mem_24g_rxdata_temp + 10 
+03e8 20200184 branch p_g24_store_mouse_addr 
+
+p_g24_data_attemp_kbd_abort:
+03e9 68024887 fetch 4 ,mem_24g_rxdata_temp + 10 
+03ea 20200187 branch p_g24_store_kbd_addr 
+
+p_g24_ota_process:
+03eb 68014882 fetch 2 ,mem_24g_rxdata_temp + 5 
+03ec 680948eb fetcht 2 ,mem_24g_ota_sta_pid 
+03ed 98467c00 isub temp ,null 
+03ee 202283f0 branch p_g24_ota_next_pac ,zero 
+03ef 20600000 rtn 
+
+p_g24_ota_next_pac:
+03f0 6800c881 fetch 1 ,mem_24g_rxdata_temp + 4 
+03f1 c06103fd beq cmd_ota_exit ,p_g24_ota_exit_process 
+03f2 6800c900 fetch 1 ,mem_queue_ele_num 
+03f3 207a0000 rtn blank 
+03f4 58004901 setarg mem_queue_read 
+03f5 20400198 call p_g24_queue_increase 
+03f6 6800c900 fetch 1 ,mem_queue_ele_num 
+03f7 1fe0ffff increase -1 ,pdata 
+03f8 6000c900 store 1 ,mem_queue_ele_num 
+03f9 6800c881 fetch 1 ,mem_24g_rxdata_temp + 4 
+03fa c06081db beq cmd_ota_data ,p_user_defined_queue_buff_free 
+03fb c06103fd beq cmd_ota_exit ,p_g24_ota_exit_process 
+03fc 20600000 rtn 
+
+p_g24_ota_exit_process:
+03fd 58000000 setarg 0 
+03fe 600148eb store 2 ,mem_24g_ota_sta_pid 
+03ff 6000c8b8 store 1 ,mem_24g_ackpayload_enable 
+0400 20400189 call p_g24_queue_init 
+0401 6800c884 fetch 1 ,mem_24g_rxdata_temp + 7 
+0402 c02a8405 beq ota_sta_success ,p_g24_ota_exit_success 
+0403 c0550407 beq ota_sta_fail ,p_g24_ota_exit_fail 
+0404 20600000 rtn 
+
+p_g24_ota_exit_success:
+0405 700cf702 jam 2 ,mem_usb0_get_report_data + 1 
+0406 2020303f branch usb0_data_ready_report_set1 
+
+p_g24_ota_exit_fail:
+0407 700cf703 jam 3 ,mem_usb0_get_report_data + 1 
+0408 2020303f branch usb0_data_ready_report_set1 
+
+p_set_freq_tx:
+0409 60088017 storet 1 ,mem_last_freq 
+040a 1840a200 add temp ,0 ,rega 
+040b 20402981 call rf_write_freq 
+040c 58000500 setarg param_pll_setup 
+040d 20402a8f call sleep 
+
+p_rf_tx_enable:
+040e 70890601 jam 0x1 ,rfen_adc 
+040f 7089003c jam 0x3c ,rfen_rx 
+0410 708901e0 jam 0xe0 ,rfen_tx 
+0411 2000000a nop 10 
+0412 70890201 jam 0x01 ,rfen_mdm 
+0413 7089023d jam 0x3d ,rfen_mdm 
+0414 2000000a nop 10 
+0415 708903b7 jam 0xb7 ,rfen_sn 
+0416 2000000a nop 10 
+0417 7089027d jam 0x7d ,rfen_mdm 
+0418 6800c1de fetch 1 ,mem_tx_power 
+0419 c0020422 beq tx_power_f5db ,p_set_tx_power_f5db 
+041a 2020041b branch p_set_tx_power_5db 
+
+p_set_tx_power_5db:
+041b 70894bba jam 0xba ,0x894b 
+041c 708955d0 jam 0xd0 ,0x8955 
+041d 708956e0 jam 0xe0 ,0x8956 
+041e 70895788 jam 0x88 ,0x8957 
+041f 7089583c jam 0x3c ,0x8958 
+0420 70895910 jam 0x10 ,0x8959 
+0421 20202953 branch set_tx_power_5db 
+
+p_set_tx_power_f5db:
+0422 70894bba jam 0xba ,0x894b 
+0423 708955d0 jam 0xd0 ,0x8955 
+0424 708956c0 jam 0xc0 ,0x8956 
+0425 70895788 jam 0x88 ,0x8957 
+0426 7089586c jam 0x6c ,0x8958 
+0427 70895910 jam 0x10 ,0x8959 
+0428 2020295b branch set_tx_power_f5db 
+
+p_soft_reset:
+0429 20800000 clear_stack 
+042a 68108043 hfetch 1 ,core_config 
+042b 79207e03 set1 watchdog_bit ,pdata 
+042c 60108043 hstore 1 ,core_config 
+042d 2040640d call spi_ncs_gpio_init 
+042e 70895b86 jam 0x86 ,0x895b 
+042f 70895ca0 jam 0xa0 ,0x895c 
+0430 20202004 branch soft_reset + 3 
+
+p_shutdown_radio:
+0431 18002a08 force 8 ,radio_ctrl 
+0432 202028fa branch shutdown_radio + 1 
+
+p_rssi_noise:
+0433 204029bb call save_rssi 
+0434 207a0000 rtn blank 
+0435 6808c8f0 fetcht 1 ,mem_rssi_noise_index 
+0436 da200d9e arg mem_rssi_noise_buffer ,rega 
+0437 2040043a call p_rssi_store 
+0438 6008c8f0 storet 1 ,mem_rssi_noise_index 
+0439 20600000 rtn 
+
+p_rssi_store:
+043a 1a227e00 copy rega ,pdata 
+043b 98408a00 iadd temp ,contw 
+043c 68008018 fetch 1 ,mem_rssi 
+043d e0a08000 istore 1 ,contw 
+043e 18408401 increase 1 ,temp 
+043f 184104ff and_into rssi_buf_len_noise ,temp 
+0440 20600000 rtn 
+
+p_rssi_average:
+0441 d8400000 arg 0 ,temp 
+0442 df200100 arg rssi_buf_len_noise + 1 ,loopcnt 
+0443 1a220c00 copy rega ,contr 
+0444 20202e64 branch rssi_average_loop 
+0445 20600000 rtn 
+
+p_g24_update_addr_and_synccrc8:
+0446 6002485e store 4 ,mem_24g_addr 
+
+p_g24_syncword_crc8:
+0447 da200000 arg 0 ,rega 
+0448 df200004 arg 4 ,loopcnt 
+0449 d8c0485e arg mem_24g_addr ,contr 
+
+p_g24_syncword_crc8_loop:
+044a e8c08000 ifetch 1 ,contr 
+044b 9a20a200 iadd rega ,rega 
+044c c200044a loop p_g24_syncword_crc8_loop 
+044d 1a227e00 copy rega ,pdata 
+044e 600148e7 store 2 ,mem_24g_syncword 
+044f 6800c8e7 fetch 1 ,mem_24g_syncword 
+0450 6808c8e8 fetcht 1 ,mem_24g_syncword + 1 
+0451 9840fe00 iadd temp ,pdata 
+0452 6000c8e9 store 1 ,mem_24g_syncword_crc8 
+0453 20600000 rtn 
+
+p_g24_transmit_prep:
+0454 6800c836 fetch 1 ,mem_24g_datalen 
+0455 1fe0fe02 increase 2 ,pdata 
+0456 6000c838 store 1 ,mem_24g_txlen 
+0457 6800c837 fetch 1 ,mem_24g_data_type 
+0458 6000c7f2 store 1 ,mem_24g_txpayload 
+0459 6800c836 fetch 1 ,mem_24g_datalen 
+045a 1fe9fe00 lshift3 pdata ,pdata 
+045b 6808c835 fetcht 1 ,mem_24g_pid 
+045c 18410403 and temp ,0x03 ,temp 
+045d 18438400 lshift temp ,temp 
+045e 9841fe00 ior temp ,pdata 
+045f 6808c872 fetcht 1 ,mem_24g_no_ack 
+0460 9840fe00 iadd temp ,pdata 
+0461 e0a08000 istore 1 ,contw 
+0462 6800c836 fetch 1 ,mem_24g_datalen 
+0463 98007200 iforce loopcnt 
+0464 d8c047d2 arg mem_24g_txbuf ,contr 
+0465 20207f01 branch memcpy 
+
+p_g24_ch:
+0466 6808c841 fetcht 1 ,mem_24g_current_ch_number 
+0467 2040046a call p_g24_ch_map_size 
+0468 6008c841 storet 1 ,mem_24g_current_ch_number 
+0469 20600000 rtn 
+
+p_g24_ch_map_size:
+046a 2040046e call p_g24_ch_calc 
+046b 18408401 increase 1 ,temp 
+046c 18410403 and_into 3 ,temp 
+046d 20600000 rtn 
+
+p_g24_ch_calc:
+046e 6800c85e fetch 1 ,mem_24g_addr 
+046f 1fe17e03 and_into 0x03 ,pdata 
+0470 1fefa204 mul32 pdata ,4 ,rega 
+0471 58004847 setarg mem_24g_ch_map1 
+0472 9a20fe00 iadd rega ,pdata 
+0473 98408c00 iadd temp ,contr 
+0474 e8c08000 ifetch 1 ,contr 
+0475 6000c840 store 1 ,mem_24g_ch 
+0476 20600000 rtn 
+
+p_g24_prep:
+0477 7844fc00 disable enable_crc 
+0478 7843fc00 disable enable_white 
+0479 58555555 setarg 0x555555 
+047a 98001e00 iforce crc24_init 
+047b 6800c840 fetch 1 ,mem_24g_ch 
+047c 1fed8400 reverse pdata ,temp 
+047d 79200401 set1 1 ,temp 
+047e 18431c00 rshift temp ,white_init 
+047f 20600000 rtn 
+
+p_g24_receive_packet:
+0480 204053c4 call le_enable 
+0481 6802485e fetch 4 ,mem_24g_addr 
+0482 98001200 iforce access 
+0483 20402918 call set_sync_on 
+0484 6808c840 fetcht 1 ,mem_24g_ch 
+0485 2040291f call set_freq_rx 
+0486 58000500 setarg param_pll_setup 
+0487 20402a8f call sleep 
+0488 20402924 call rf_rx_enable 
+
+p_g24_receive_rxon:
+0489 20400477 call p_g24_prep 
+048a 7857fc00 disable user3 
+048b 7826fc00 enable decode_fec0 
+048c 7830fc00 enable is_rx 
+048d 78507c00 disable is_tx 
+048e 78287c00 enable swfine 
+048f 68014839 fetch 2 ,mem_24g_rx_window 
+0490 98003600 iforce stop_watch 
+0491 37c18400 correlate null ,timeout 
+0492 242c04c5 nbranch p_g24_sync_timeout ,sync 
+0493 7846fc00 disable decode_fec0 
+0494 7825fc00 enable decode_fec1 
+0495 7823fc00 enable enable_white 
+0496 7824fc00 enable enable_crc 
+0497 09800008 parse demod ,bucket ,8 
+0498 19897e00 rshift3 pwindow ,pdata 
+0499 6000c8ea store 1 ,mem_24g_get_syncword_crc8 
+049a 6808c8e9 fetcht 1 ,mem_24g_syncword_crc8 
+049b 98467c00 isub temp ,null 
+049c 242284c2 nbranch p_g24_end_of_packet ,zero 
+049d 09800008 parse demod ,bucket ,8 
+049e 19897e00 rshift3 pwindow ,pdata 
+049f 6000c7b0 store 1 ,mem_24g_rxbuf 
+04a0 6800c87c fetch 1 ,mem_24g_mode 
+04a1 1fe67c02 sub pdata ,rx_24g ,null 
+04a2 202284a7 branch p_g24_receive_skip ,zero 
+04a3 6800c7b0 fetch 1 ,mem_24g_rxbuf 
+04a4 6808c837 fetcht 1 ,mem_24g_data_type 
+04a5 a8400e00 icompare bits_data ,temp 
+04a6 242084c2 nbranch p_g24_end_of_packet ,true 
+
+p_g24_receive_skip:
+04a7 09800008 parse demod ,bucket ,8 
+04a8 19897e00 rshift3 pwindow ,pdata 
+04a9 e0a08000 istore 1 ,contw 
+04aa 1fe97e00 rshift3 pdata ,pdata 
+04ab 1fe1721f and pdata ,0x1f ,loopcnt 
+04ac 202284b1 branch p_g24rx_nopayload ,zero 
+
+p_g24rx_loop:
+04ad 09800008 parse demod ,bucket ,8 
+04ae 19897e00 rshift3 pwindow ,pdata 
+04af e0a08000 istore 1 ,contw 
+04b0 c20004ad loop p_g24rx_loop 
+
+p_g24rx_nopayload:
+04b1 09800018 parse demod ,bucket ,24 
+04b2 78287c00 enable swfine 
+04b3 db600664 arg param_sifs ,stop_watch 
+04b4 1fef7e00 rshift32 pdata ,pdata 
+04b5 1ff17e00 rshift16 pdata ,pdata 
+04b6 e0a18000 istore 3 ,contw 
+04b7 7845fc00 disable decode_fec1 
+04b8 204029bb call save_rssi 
+04b9 202304c2 branch p_g24_end_of_packet ,crc_failed 
+04ba 7837fc00 enable user3 
+04bb 68008017 fetch 1 ,mem_last_freq 
+04bc 1fe0a200 add pdata ,0 ,rega 
+04bd 20402981 call rf_write_freq 
+04be 7846fc00 disable decode_fec0 
+04bf 20402918 call set_sync_on 
+04c0 20600000 rtn 
+04c1 20600000 rtn 
+
+p_g24_end_of_packet:
+04c2 784dfc00 disable encode_fec1 
+04c3 7845fc00 disable decode_fec1 
+04c4 2020264d branch end_of_packet 
+
+p_g24_sync_timeout:
+04c5 20400433 call p_rssi_noise 
+04c6 202004c2 branch p_g24_end_of_packet 
+
+p_g24_set_freq_tx:
+04c7 20402918 call set_sync_on 
+04c8 6808c840 fetcht 1 ,mem_24g_ch 
+04c9 20202933 branch set_freq_tx 
+
+p_g24_transmit:
+04ca 204053c4 call le_enable 
+04cb 6802485e fetch 4 ,mem_24g_addr 
+04cc 98001200 iforce access 
+04cd 20400477 call p_g24_prep 
+04ce 204004c7 call p_g24_set_freq_tx 
+04cf 79202a00 set1 txgfsk ,radio_ctrl 
+04d0 782efc00 enable encode_fec0 
+04d1 78307c00 enable is_tx 
+04d2 7850fc00 disable is_rx 
+04d3 19317e00 rshift16 access ,pdata 
+04d4 1fecfe00 rshift8 pdata ,pdata 
+04d5 1ff1fe00 rshift4 pdata ,pdata 
+04d6 08008628 inject mod ,40 
+04d7 784efc00 disable encode_fec0 
+04d8 782dfc00 enable encode_fec1 
+04d9 7823fc00 enable enable_white 
+04da 7824fc00 enable enable_crc 
+04db 6800c8e9 fetch 1 ,mem_24g_syncword_crc8 
+04dc 08008608 inject mod ,8 
+04dd 6800c838 fetch 1 ,mem_24g_txlen 
+04de 98007200 iforce loopcnt 
+04df d8c047f2 arg mem_24g_txpayload ,contr 
+
+p_g24tr_loop:
+04e0 e8c08000 ifetch 1 ,contr 
+04e1 08008608 inject mod ,8 
+04e2 c20004e0 loop p_g24tr_loop 
+04e3 6800c8ee fetch 1 ,mem_rssi_hex 
+04e4 08008608 inject mod ,8 
+04e5 78247c00 enable enable_parity 
+04e6 08008618 inject mod ,24 
+04e7 78447c00 disable enable_parity 
+04e8 37d38200 until null ,tx_clear 
+04e9 20000064 nop 100 
+04ea 784efc00 disable encode_fec0 
+04eb 784dfc00 disable encode_fec1 
+04ec 20600000 rtn 
+
Index: output/ramcode.rom
===================================================================
--- /branch/USB/dongle_sdk/output/ramcode.rom	(revision 0)
+++ /branch/USB/dongle_sdk/output/ramcode.rom	(working copy)
@@ -0,0 +1,1261 @@
+c284000a
+c0428431
+c0448409
+c0000429
+c047000b
+c062008b
+c07b8012
+c07c004b
+c07e002a
+20202a8e
+20202a8e
+68110981
+1ff1fe00
+1fe97e00
+1fe67e00
+1fe17eff
+6000c8ee
+202029c1
+708a0500
+20404919
+20400017
+20400021
+202048ec
+680091be
+207a0000
+680091c7
+c02d001e
+680211bf
+60020b71
+20600000
+680211c3
+60020b71
+20600000
+680091c7
+c02d0048
+580011c8
+60010b7c
+58001290
+60010b7e
+700b9a1a
+700bb3a3
+20600000
+68008d38
+207a0000
+68008d37
+243a4bac
+68008d45
+203a4b86
+68008d36
+c001cbbf
+c0814b86
+68008d3a
+243a4b86
+20404b6f
+20200037
+68008d38
+c4010000
+68008d37
+c3810000
+68008d38
+793ffe02
+60008d38
+68008d52
+207a0000
+c0104b89
+c010cba4
+c0110044
+20202a8c
+700d5200
+df200002
+d8c013bc
+20204b5e
+58001358
+60010b7c
+20600000
+708a2611
+68108a20
+60008b24
+1fe27200
+203a005a
+d8a00c6e
+20404946
+68008b24
+c000805d
+1fe67c07
+20610000
+68008c6e
+1fe17e80
+c0000061
+20204957
+68008b22
+c2820056
+20600000
+68008c6e
+c3838000
+20400087
+20204988
+68008c6e
+1ff1fe00
+1fe37e00
+1fe17e03
+c0000068
+c0008076
+20204966
+68008c6f
+c001806b
+20204977
+68008c74
+c0804984
+68008c75
+c0804984
+68008c6e
+c0000072
+20204a7e
+68008c70
+c080c984
+70497a03
+20204a84
+68008c6f
+c0048079
+2020497f
+700d5001
+20404b03
+68010c70
+60010d4e
+20003a98
+68108a20
+245a0083
+68008d43
+245a0086
+20204afd
+1fe27200
+d8a00c76
+20204946
+68008c76
+6000c978
+700d4300
+7048b803
+20600000
+70498300
+70497b07
+204074b9
+680240a0
+6002489f
+6808c23a
+2040680e
+204000a8
+20400189
+2040009d
+2040009b
+6800c8ba
+c00001df
+c00080b2
+c00780ae
+20600000
+204000a4
+202065d1
+2040659c
+204000a0
+202065df
+da2011c7
+da400000
+d8400001
+20600000
+da2013d2
+da400070
+d8400003
+20600000
+6800c1de
+6000c8ed
+df200080
+d8a00d9e
+20407ec6
+202048ea
+204000b7
+204000bb
+204001a7
+202000af
+204000b7
+204000bb
+2040010c
+204001a7
+202000b3
+7048b800
+7048a400
+7048a300
+20600000
+6800c8a4
+c1800000
+204000c1
+204000cf
+20400346
+202000ee
+6800c8a3
+c3800000
+79207e00
+6000c8a3
+6800c8ed
+6000c1de
+7048b800
+700d3800
+7048b001
+70483500
+6802489f
+20400446
+20400466
+20200128
+6800c8b0
+c00080e8
+6800c8b9
+c00080e2
+680a48b2
+1c427e00
+98467c00
+24412d18
+1fe22400
+680248b2
+6808c8b6
+98408400
+1a427e00
+98467c00
+24610000
+793ffe1c
+600248b2
+7048b001
+20200466
+7048b900
+20200466
+1c427e00
+600248b2
+7048b100
+20600000
+da200d9e
+20400441
+6008c8ef
+18467c50
+24610000
+20200466
+204000f1
+204000f8
+20200102
+6800c8d5
+207a0000
+d8e0000b
+20407f16
+247a0000
+7048d500
+20202fa0
+6800c8d3
+207a0000
+d8e0000e
+20407f16
+247a0000
+7048d300
+20402fac
+68040d64
+600448c5
+20600000
+6800c8d4
+207a0000
+d8e0000c
+20407f16
+247a0000
+7048d400
+20402fb8
+68018d74
+6001c8d0
+20600000
+6800c8a4
+c1808000
+20400110
+2020011c
+6800c8a3
+c3808000
+79207e01
+6000c8a3
+58000000
+6001c8a5
+7041de04
+7048b801
+70483500
+7048404e
+68024842
+20200446
+20400264
+24378128
+70497c05
+d8c047b0
+d8a0487d
+df200008
+20407f01
+6800c87f
+c0550146
+c02a8153
+c0110163
+c07f817f
+d8a047b0
+df200042
+20207ed4
+6800c8a4
+c1808000
+6800c8ba
+247a0000
+6800c7b3
+c0008133
+c0010137
+20600000
+6800c983
+c4000000
+7857fc00
+20600000
+6800c983
+c4008000
+20200135
+6800c8ba
+247a0000
+6800c983
+1fe1fe01
+6000c983
+20600000
+6800c8ba
+247a0000
+6800c983
+1fe1fe02
+6000c983
+20600000
+6800c880
+c000814a
+c0010150
+20600000
+7048a501
+7048a801
+7048a980
+6803489f
+600348aa
+20600000
+7048a601
+7048a802
+2020014c
+6800c880
+c0008157
+c001015d
+20600000
+2040014b
+6800c8a5
+c000815b
+20600000
+7048a502
+20600000
+20400151
+6800c8a6
+c0008161
+20600000
+7048a602
+20600000
+6800c880
+c0008167
+c0010171
+20600000
+6800c8a5
+c001016a
+20600000
+2040013a
+6800c8a7
+1fe1fe01
+6000c8a7
+58000000
+600148a5
+20200128
+6800c8a6
+c0800174
+20600000
+20400140
+6800c8a7
+1fe1fe02
+6000c8a7
+2040016e
+680091c7
+c12d0000
+7011c75a
+204000a0
+204065d1
+2020659a
+6800c880
+c0008183
+c0010186
+20600000
+68024881
+600248da
+20600000
+68024881
+600248d6
+20600000
+70490000
+58004905
+60014901
+60014903
+20600000
+df20001f
+d8400cb6
+68014903
+1fe20a00
+18420c00
+20407f01
+6800c900
+1fe0fe01
+6000c900
+58004903
+1fe22200
+d8404965
+ea210000
+1fe0fe20
+98467c00
+2421019f
+58004905
+e2210000
+20600000
+78547c00
+6800c900
+207a0000
+78347c00
+68014901
+20600000
+708004ff
+68008d39
+205a0316
+204048d3
+68008d50
+207a0000
+700d5000
+68010d4e
+d84002ba
+98467c00
+24628000
+68008cb6
+c1dd0000
+68008cb7
+c05001c6
+c05081bc
+c0533041
+c05381cb
+c05481d1
+c05801d3
+2020302a
+68008cb8
+c00081c1
+c04201c4
+c053b039
+2020302a
+6800c8a7
+60008cf7
+2020303f
+204000b8
+202001c1
+68008cb8
+c04081c9
+2020302a
+20400226
+2020303f
+6800c8a4
+c00001cf
+c000b039
+20600000
+700cf7a0
+2020303f
+700cfa07
+20203049
+68008cb8
+c07fe59a
+7048b802
+6800c900
+c00181dd
+2040018e
+6800c900
+c00181dd
+700cf700
+2020303f
+700cf701
+2020303f
+20400204
+2040020a
+20400235
+204001e7
+204001eb
+20400268
+204001a7
+202001e0
+6800c8a4
+c1800000
+204000bd
+20200256
+6800c8a4
+c1808000
+20400110
+2040011c
+6800c8a7
+207a0000
+7048b700
+204000b7
+20400254
+20200207
+20407fe9
+680a4857
+1c427e00
+98467c00
+24412d18
+1fe22400
+68024857
+6808c85b
+98408400
+1a427e00
+98467c00
+24610000
+793ffe1c
+60024857
+20207fe7
+7048b701
+7048bc00
+70485bff
+58000000
+60024857
+20600000
+6800c8b7
+207a0000
+204001f5
+24740000
+2040021f
+20400217
+6800c8bc
+1fe0fe01
+1fe17e01
+6000c8bc
+c000021c
+c0008224
+20600000
+6800c97c
+207a0000
+1fe0ffff
+6000c97c
+20600000
+6800c97c
+243a0226
+202000b7
+6800c97b
+207a0000
+1fe0ffff
+6000c97b
+20600000
+6800c97b
+243a00b7
+7048a401
+7048a300
+20600000
+6800c981
+205a0252
+6800c97e
+c3800000
+79207e00
+6000c97e
+70497d01
+70498200
+58000000
+6001497f
+70485b60
+20200207
+6800c8a4
+c1000000
+6800c981
+247a0000
+6800c97d
+207a0000
+204001f5
+24740000
+6801497f
+1fe0fe01
+6001497f
+d84007d0
+98467c00
+2021024e
+20400217
+6800c982
+1fe0fe01
+1fe17e01
+6000c982
+c000024b
+c0008226
+20600000
+6800c97c
+243a0226
+20200261
+70498101
+20200261
+70497d00
+20600000
+70497d01
+20600000
+7048bb01
+20203095
+6800c8b8
+c1010000
+6800c8bb
+207a0000
+d8e00008
+20407f16
+247a0000
+7048bb00
+70497b00
+70497c00
+20400229
+7048a407
+7048a300
+20200128
+20400128
+20400480
+24778000
+20200305
+6800c8a4
+c1838000
+2040028f
+204002a3
+20400264
+24378128
+2040029f
+20428349
+6800c8b0
+205a0250
+7048a400
+6800c8a3
+79207e00
+6000c8a3
+6800c8b8
+1fe67c02
+24428286
+20400128
+20400254
+2040029f
+20228288
+6802485e
+680a48d6
+98467c00
+2022828b
+6802485e
+680a48da
+98467c00
+2022828d
+20600000
+7048b800
+20600000
+6800c8df
+6000c841
+20600000
+6800c8e2
+20200289
+6800c8e5
+20200289
+6800c8a3
+c3838000
+79207e07
+6000c8a3
+7048bc00
+7048b801
+58000000
+6001c8f5
+6003c8e0
+2040029f
+24628000
+6800c841
+6000c8df
+6800c840
+6000c8de
+20600000
+6802485e
+680a489f
+98467c00
+20600000
+6800c8bc
+1fe0fe01
+1fe17e03
+6000c8bc
+c00002c6
+c00082e0
+c00102ac
+c00182e0
+20600000
+2040014b
+680248da
+203a02a3
+20400446
+6800c8e6
+205a02c1
+6800c8e4
+6000c840
+6808c8f7
+da200f9e
+2040043a
+6008c8f7
+20400441
+6008c8f4
+18467c50
+24610000
+6808c8e5
+2040046a
+6008c8e5
+6000c8e4
+20600000
+7048e601
+d8400000
+2040046e
+6000c8e4
+20600000
+20400151
+680248d6
+203a02a3
+20400446
+6800c8e3
+205a02db
+6800c8e1
+6000c840
+6808c8f6
+da20109e
+2040043a
+6008c8f6
+20400441
+6008c8f3
+18467c50
+24610000
+6808c8e2
+2040046a
+6008c8e2
+6000c8e1
+20600000
+7048e301
+d8400000
+2040046e
+6000c8e1
+20600000
+2040014b
+6802489f
+20400446
+6800c8e0
+205a02f4
+6800c8de
+6000c840
+6808c8f5
+da200e9e
+2040043a
+6008c8f5
+20400441
+6008c8f2
+18467c50
+24610000
+6808c8df
+2040046a
+6008c8df
+6000c8de
+20600000
+7048e001
+6800c8de
+6000c840
+20600000
+6800c7b1
+1fe97e00
+6000c834
+1fe0fe01
+d8c047b1
+98c08c00
+e8c18000
+6001c873
+6800c7b1
+1fe37e00
+1fe17e03
+6000c879
+20600000
+6800c7b0
+6000c837
+204002f8
+6800c7b1
+2feffe00
+2020830e
+2040030f
+20400454
+204004ca
+202004c2
+70483600
+6800c837
+c0008313
+c0010318
+6800c97a
+c2800320
+2020031a
+70497a00
+20600000
+6800c97a
+c2808324
+6800c8b8
+207a0000
+c000832b
+c0010333
+c001833d
+20600000
+6800c97a
+793ffe00
+6000c97a
+20200327
+6800c97a
+793ffe01
+6000c97a
+70483601
+580000ff
+6000c7d2
+20600000
+7048b801
+2040012b
+24778000
+70483608
+df200008
+d8c048a8
+d8a047d2
+20207f01
+204001a1
+24740000
+7048361f
+df20001f
+1fe20c00
+d8a047d2
+20407f01
+680147d5
+600148eb
+20600000
+6800c7b2
+c000832b
+c07f832b
+700d4300
+70483601
+df200001
+d8c04978
+d8a047d2
+20207f01
+20400264
+24378128
+20200349
+2040035a
+24340128
+6800c834
+203a0128
+1fe0fe02
+98007200
+d8c047b0
+d8a0487d
+20407f01
+7048b700
+6800c8ba
+205a0254
+6800c87f
+c0008368
+c0010388
+c07f83dd
+20200128
+20407fe9
+6800c879
+6808c87a
+98467c00
+2442ffe7
+6800c879
+6000c87a
+6801c873
+6809c876
+98467c00
+2442ffe7
+6801c873
+6001c876
+20600000
+2040013a
+204000e4
+6800c8b0
+6808c87d
+284ffe03
+7920fe00
+6000c8b0
+c00083e7
+6800c8b9
+6808c87d
+284ffe04
+7920fe00
+6000c8b9
+6800c880
+c06783eb
+58000001
+60008d54
+6803c880
+e0a38000
+6800c880
+245a0380
+6800c880
+205a0384
+202031b8
+7048d501
+58000180
+d8e0000b
+20207f08
+7048d500
+58000000
+d8e0000b
+20207f08
+20400140
+6808c87d
+284ffe03
+202083e9
+6800c880
+c0000391
+c00103c6
+c00183ad
+20200128
+6800c882
+6000c8b8
+70488200
+d8a00d64
+204003a2
+68040d64
+245a03a5
+68040d64
+205a03a9
+68040d64
+600448bd
+680c48c5
+98467c00
+2442b1ed
+680448bd
+600448c5
+20200128
+d8c04881
+df200008
+20207f01
+7048d301
+58000180
+d8e0000e
+20207f08
+7048d300
+58000000
+d8e0000e
+20207f08
+d8a00d74
+204003bb
+68010d75
+245a03be
+68010d75
+205a03c2
+68018d74
+6001c8cd
+6809c8d0
+98467c00
+2442b207
+6801c8cd
+6001c8d0
+20200128
+d8c04880
+df200003
+20207f01
+7048d401
+58000180
+d8e0000c
+20207f08
+7048d400
+58000000
+d8e0000c
+20207f08
+d8a013bc
+204003d0
+680113bc
+600113cc
+680913cf
+98467c00
+244283db
+680113cc
+600113cf
+20200128
+d8c04880
+df200002
+20207f01
+7048d401
+58000180
+d8e0000c
+20207f08
+7048d400
+58000000
+d8e0000c
+20207f08
+700d5222
+202031b9
+6800c880
+c00083e1
+c00103e4
+20600000
+2040013a
+68024881
+20200184
+20400140
+68024881
+20200187
+68024887
+20200184
+68024887
+20200187
+68014882
+680948eb
+98467c00
+202283f0
+20600000
+6800c881
+c06103fd
+6800c900
+207a0000
+58004901
+20400198
+6800c900
+1fe0ffff
+6000c900
+6800c881
+c06081db
+c06103fd
+20600000
+58000000
+600148eb
+6000c8b8
+20400189
+6800c884
+c02a8405
+c0550407
+20600000
+700cf702
+2020303f
+700cf703
+2020303f
+60088017
+1840a200
+20402981
+58000500
+20402a8f
+70890601
+7089003c
+708901e0
+2000000a
+70890201
+7089023d
+2000000a
+708903b7
+2000000a
+7089027d
+6800c1de
+c0020422
+2020041b
+70894bba
+708955d0
+708956e0
+70895788
+7089583c
+70895910
+20202953
+70894bba
+708955d0
+708956c0
+70895788
+7089586c
+70895910
+2020295b
+20800000
+68108043
+79207e03
+60108043
+2040640d
+70895b86
+70895ca0
+20202004
+18002a08
+202028fa
+204029bb
+207a0000
+6808c8f0
+da200d9e
+2040043a
+6008c8f0
+20600000
+1a227e00
+98408a00
+68008018
+e0a08000
+18408401
+184104ff
+20600000
+d8400000
+df200100
+1a220c00
+20202e64
+20600000
+6002485e
+da200000
+df200004
+d8c0485e
+e8c08000
+9a20a200
+c200044a
+1a227e00
+600148e7
+6800c8e7
+6808c8e8
+9840fe00
+6000c8e9
+20600000
+6800c836
+1fe0fe02
+6000c838
+6800c837
+6000c7f2
+6800c836
+1fe9fe00
+6808c835
+18410403
+18438400
+9841fe00
+6808c872
+9840fe00
+e0a08000
+6800c836
+98007200
+d8c047d2
+20207f01
+6808c841
+2040046a
+6008c841
+20600000
+2040046e
+18408401
+18410403
+20600000
+6800c85e
+1fe17e03
+1fefa204
+58004847
+9a20fe00
+98408c00
+e8c08000
+6000c840
+20600000
+7844fc00
+7843fc00
+58555555
+98001e00
+6800c840
+1fed8400
+79200401
+18431c00
+20600000
+204053c4
+6802485e
+98001200
+20402918
+6808c840
+2040291f
+58000500
+20402a8f
+20402924
+20400477
+7857fc00
+7826fc00
+7830fc00
+78507c00
+78287c00
+68014839
+98003600
+37c18400
+242c04c5
+7846fc00
+7825fc00
+7823fc00
+7824fc00
+09800008
+19897e00
+6000c8ea
+6808c8e9
+98467c00
+242284c2
+09800008
+19897e00
+6000c7b0
+6800c87c
+1fe67c02
+202284a7
+6800c7b0
+6808c837
+a8400e00
+242084c2
+09800008
+19897e00
+e0a08000
+1fe97e00
+1fe1721f
+202284b1
+09800008
+19897e00
+e0a08000
+c20004ad
+09800018
+78287c00
+db600664
+1fef7e00
+1ff17e00
+e0a18000
+7845fc00
+204029bb
+202304c2
+7837fc00
+68008017
+1fe0a200
+20402981
+7846fc00
+20402918
+20600000
+20600000
+784dfc00
+7845fc00
+2020264d
+20400433
+202004c2
+20402918
+6808c840
+20202933
+204053c4
+6802485e
+98001200
+20400477
+204004c7
+79202a00
+782efc00
+78307c00
+7850fc00
+19317e00
+1fecfe00
+1ff1fe00
+08008628
+784efc00
+782dfc00
+7823fc00
+7824fc00
+6800c8e9
+08008608
+6800c838
+98007200
+d8c047f2
+e8c08000
+08008608
+c20004e0
+6800c8ee
+08008608
+78247c00
+08008618
+78447c00
+37d38200
+20000064
+784efc00
+784dfc00
+20600000
Index: output/romcode.rom
===================================================================
--- /branch/USB/dongle_sdk/output/romcode.rom	(revision 0)
+++ /branch/USB/dongle_sdk/output/romcode.rom	(working copy)
@@ -0,0 +1,31507 @@
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00007575
Index: output/sched.rom
===================================================================
--- /branch/USB/dongle_sdk/output/sched.rom	(revision 0)
+++ /branch/USB/dongle_sdk/output/sched.rom	(working copy)
@@ -0,0 +1,235 @@
+mem_patch00:01
+mem_patch10:20
+mem_patch11:42
+mem_patch18:10
+mem_patch1e:80
+mem_patch1f:11
+
+mem_rf_init_data_new:
+# tx power
+4b ba
+55 d0
+56 e0
+57 88
+58 3c
+59 10
+ff
+mem_rf_init_ptr:mem_rf_init_data_new
+
+
+#usb initial
+mem_usb_new_vid_pid_value:
+01 #ENABLE
+#mouse only#auto pair
+51 31#VID
+01 10#PID
+#mouse & keyboard
+51 31#VID
+00 30#PID
+
+mem_string0:04 04 03 09 04
+mem_string1:
+'YICHIP
+
+#string length less than 32
+mem_string2:
+'Wireless Device
+mem_string3:
+'b120300001
+
+mem_usb_tx_interval:00
+
+
+mem_hidreportdesc_kb_temp:
+1a
+#===============MCE锟斤拷锟教匡拷锟斤拷=======26===========================
+06 bc ff	#USAGE_PAGE (Vendor Defined Page *)
+09 88 	#USAGE(?)
+a1 01   	#Collection (Application),
+85 04   	#Report ID (4)
+19 00   	#USAGE_MINIMUM (undefined)
+2a ff 00	#
+15 00   	#Logical Minimum (0),
+26 ff 00	#
+75 08  	#REPORT_SIZE (8)
+95 01  	#REPORT_COUNT (1)
+81 00  	#Input (Data,Ary,Abs)
+c0 	 	#END_COLLECTION
+
+mem_hidreportdesc_kb_new_temp:
+#===============new keyboard desc====================
+3f
+05 01
+09 06
+a1 01
+75 01 
+95 08
+05 07
+19 e0 
+29 e7 
+15 00
+25 01
+81 02
+95 01 
+75 08
+81 03 
+95 05
+75 01
+05 08
+19 01
+29 05  
+91 02 
+95 01  
+75 03  
+91 03
+95 06 
+75 08 
+15 00 
+25 ff
+05 07
+19 00
+29 ff 
+81 00
+c0
+
+
+
+mem_hidreportdesc_m_temp:
+#mouse hid
+a3				# total length
+#====================锟斤拷锟====75====================================
+05 01	#USAGE_PAGE (Generic Desktop)
+09 02	#USAGE (Mouse)
+a1 01	#COLLECTION (Application)
+85 01	#Report ID (1)
+09 01	#USAGE (Pointer)
+a1 00	#COLLECTION (Physical)
+05 09	#USAGE_PAGE (Button)
+19 01	#USAGE_MINIMUM (Button 1)
+29 05	#USAGE_MAXIMUM (Button 3)
+15 00	#LOGICAL_MINIMUM (0)
+25 01	#LOGICAL_MAXIMUM (1)
+95 05	#REPORT_COUNT (5)
+75 01	#REPORT_SIZE (1)
+81 02	#INPUT (Data,Var,Abs)
+95 01	#REPORT_COUNT (1)
+75 03	#REPORT_SIZE (3)
+81 01	#INPUT (Cnst,Var,Abs)
+05 01	#USAGE_PAGE (Generic Desktop)
+09 30	#USAGE (X)
+09 31	#USAGE (Y)
+16 01 F8	#Logical Minimum (-2047)
+26 FF 07	#Logical Maximum (2047) 
+75 10	#REPORT_SIZE (16)
+95 02	#REPORT_COUNT (2)    
+81 06	#INPUT (Data,Var,Rel)
+09 38	#USAGE (Wheel)
+15 81	#LOGICAL_MINIMUM (-127)
+25 7f	#LOGICAL_MAXIMUM (127)
+75 08	#REPORT_SIZE (8)
+95 01	#REPORT_COUNT (1)
+81 06	#INPUT (Data,Var,Rel)  
+05 0c	#USAGE_PAGE(Consumer Devices)
+0a 38 02 	#
+95 01
+81 06	#INPUT (Data,Var,Rel)
+c0		#END_COLLECTION
+c0		#END_COLLECTION
+
+#===============锟斤拷源锟斤拷锟斤拷======31==============================
+05 01	#Usage Page (Generic Desktop),
+09 80	#USAGE (3-D Digitizer)
+a1 01	#Collection (Application),
+85 02	#Report ID (2)
+05 01	#Usage Page (Generic Desktop),
+19 81	#Usage Minimum (), 
+29 88	#Usage Maximum (),
+15 00	#Logical Minimum (0),
+25 01	#Logical Maximum (1),
+95 08	#Report Count (8),
+75 01	#Report Size (1),
+81 06	#Input (Data,Var,Rel)
+#95 01	#Report Count (1),  
+#75 05	#Report Size (5),	
+#81 01	#Input (Const,Ary,Abs)
+c0		#END_COLLECTION
+   
+#===============锟斤拷媒锟藉按锟斤拷锟斤拷锟斤拷=======25========================
+05 0c	#USAGE_PAGE (Consumer Devices)
+09 01	#USAGE (Consumer Control)
+a1 01	#COLLECTION (Application)
+85 03	#Report ID (3)
+15 00	#LOGICAL_MINIMUM (0)
+26 80	#
+03 19	#
+00 2a	#
+80 03	#
+75 10	#REPORT_SIZE (0x10)
+95 01	#REPORT_COUNT (1)
+81 00	#Input (Data,Ary,Abs)
+c0 	 	#END_COLLECTION
+
+#===============beken============38======================
+06 00 ff	#USAGE_PAGE (Vendor Defined Page 1)
+09 0e   	#USAGE (Vendor Usage 1)
+a1 01   	#COLLECTION (Application)
+85 BA   	#Report ID
+95 1f   	#REPORT_COUNT ( )
+75 08   	#REPORT_SIZE (8)
+26 ff 00	#LOGICAL_MAXIMUM (255)
+15 00   	#LOGICAL_MINIMUM (0)
+09 01   	#USAGE (Vendor Usage 1)
+91 02   	#OUTPUT (Data,Var,Abs)
+        	
+85 BA   	#Report ID
+95 1f   	#REPORT_COUNT ( )
+75 08   	#REPORT_SIZE (8)
+26 ff 00	#LOGICAL_MAXIMUM (255)
+15 00   	#LOGICAL_MINIMUM (0)
+09 01   	#USAGE (Vendor Usage 1)
+81 02   	#INPUT (Data,Var,Abs)
+C0      	#end Application Collection}
+
+#usb initial end
+
+
+#24g rx init
+mem_tx_power:02
+mem_24g_mode:02#rx
+mem_24g_pair_mode:00
+mem_24g_no_ack:00#no ack
+mem_24g_rx_window:30 75#rx
+mem_24g_hop_interval:1e
+mem_24g_ackpayload_enable:00#ack payload enable
+mem_24g_ch_map1:00 13 2c 42
+mem_24g_ch_map2:06 15 36 48
+mem_24g_ch_map3:0f 1a 3a 4c
+mem_24g_ch_map4:11 23 31 4d
+mem_24g_paring_addr:20 15 10 05
+mem_lap:36 26 10 09 07 2b	#low 4B used for mem_24g_rx_addr
+
+#24g rx init end
+
+mem_eeprom_base:80 1f
+mem_eeprom_block_size:20
+mem_eeprom_wp_gpio:14
+
+mem_firmware_version:01 00 24
+
+
+
+mem_lpm_config:8f 1d ca	#4khz
+mem_lpm_xtalcnt:00 0a 0b ef 07
+mem_lpm_hibernate_switch:00
+
+mem_fcomp_mul:02
+mem_fcomp_div:24
+
+mem_seqi:00
+
+#write to null
+mem_24g_head_ptr:00 84
+
+#mem_rx_window_init:80 04
+#mem_rx_window_sniff:00 08
+
Index: patch/patch.format
===================================================================
--- /branch/USB/dongle_sdk/patch/patch.format	(revision 0)
+++ /branch/USB/dongle_sdk/patch/patch.format	(working copy)
@@ -0,0 +1,3 @@
+
+
+
Index: patch/patch.prog
===================================================================
--- /branch/USB/dongle_sdk/patch/patch.prog	(revision 0)
+++ /branch/USB/dongle_sdk/patch/patch.prog	(working copy)
@@ -0,0 +1,1791 @@
+define REVD
+define ROMCODE
+define PATCH
+INCLUDE "bt_format"
+org 0x0000		// start from patch ram address start
+define SIMPLE_PAIRING
+
+define DONGLE
+//define MOUSE
+
+ifdef PATCH
+	bbit1 8,pf_patch_ext
+	beq patch10_5,p_shutdown_radio
+	beq patch11_1,p_set_freq_tx
+ifdef DONGLE
+	beq patch00_0,p_soft_reset
+	beq patch11_6,p_save_rssi
+	beq patch18_4,p_app_init
+	beq patch1e_7,p_usb_init
+	beq patch1f_0,p_usb_status1
+	beq patch1f_4,p_usb_tx
+endif
+	branch loop
+pf_patch_ext:
+	branch loop
+
+
+ifdef DONGLE
+p_save_rssi:
+	hfetch 2,rf_afc_d2a
+	rshift4 pdata,pdata
+	rshift3 pdata,pdata
+	sub pdata,0,pdata
+	and_into 0xff,pdata
+	store 1,mem_rssi_hex
+	branch save_rssi+6
+
+p_usb_init:
+	jam 0,core_usb_driver	//DRV to usb transceiver:0-3//3(max)
+	call usb_init_param
+	call p_usb_new_vid_pid
+	call p_usb_hid_icon
+	branch usb_init+2
+
+p_usb_new_vid_pid:
+	fetch 1,mem_usb_new_vid_pid_value
+	rtn blank
+	fetch 1,mem_dongle_kb_bind_flag
+	beq DONGLE_KB_BIND_SUCCESS,p_usb_new_vid_pid_for_suit
+p_usb_new_vid_pid_for_mouse_only_auto_pair:	
+	fetch 4,mem_usb_new_vid_pid_value+1
+	store 4,mem_devicedesc+9
+	rtn
+p_usb_new_vid_pid_for_suit:
+	fetch 4,mem_usb_new_vid_pid_value+5
+	store 4,mem_devicedesc+9
+	rtn
+
+p_usb_hid_icon:
+	fetch 1,mem_dongle_kb_bind_flag
+	beq DONGLE_KB_BIND_SUCCESS,p_new_kb_hidreportdesc
+	//hid report map
+	setarg mem_hidreportdesc_kb_temp
+	store 2,mem_hidreportdesc_kb
+	setarg mem_hidreportdesc_m_temp
+	store 2,mem_hidreportdesc_m
+	//confdesc
+	jam 0x1a,mem_confdesc+26//hid_descriptor--keyboard length
+	jam 0xa3,mem_confdesc+51//hid_descriptor--mouse length
+	rtn
+
+
+p_usb_tx:
+	fetch 1,mem_usb_tx_enable
+	rtn blank
+	fetch 1,mem_usb_tx_wait
+	nbranch usb_inwake_state_tx_dispose,blank
+	fetch 1,mem_usb_device_enumeration_endflag
+	branch usb_tx_fifo_release,blank
+	fetch 1,mem_usb_state
+	beq USB_SLEEP,usb_windows_wakeup
+	bne USB_CONNECTED,usb_tx_fifo_release
+	fetch 1,mem_usb_clear_remote_wakeup
+	nbranch usb_tx_fifo_release,blank
+	call usb_tx_data_ep1
+	branch p_usb_tx_data_ep2
+
+
+p_usb_tx_data_ep2:
+	fetch 1,mem_usb_tx_enable
+	rtnbit0 2
+	fetch 1,mem_usb_tx_wait
+	rtnbit1 2
+	fetch 1,mem_usb_tx_enable
+	set0 2,pdata
+	store 1,mem_usb_tx_enable
+	fetch 1,mem_usb_ep2_data
+	rtn blank
+	beq USB_EP2_MS,usb_tx_ms_data
+	beq USB_EP2_MULTIKEY,usb_tx_kb_multikey_data
+	beq USB_EP2_SYSTEMKEY,p_usb_tx_kb_systemkey_data
+	branch assert
+
+p_usb_tx_kb_systemkey_data:
+	jam 0,mem_usb_ep2_data
+	arg 2,loopcnt
+	arg mem_usb_kb_system,contr
+	branch usb_tx_ep2
+
+
+p_new_kb_hidreportdesc:
+	setarg mem_hidreportdesc_kb_new_temp
+	store 2,mem_hidreportdesc_kb
+	rtn
+
+p_usb_status1:
+	jam 0x11,core_usb_status
+	hfetch 1,core_usb_ep_len
+	store 1,mem_usb_read_len
+	copy pdata,loopcnt
+	branch p_usb_rx_no_data,blank
+	arg mem_usb_setup,contw
+	call usb_rx_read
+	fetch 1,mem_usb_read_len
+	beq 0x01,p_usb_out_one_byte	// HUAWEI pad led status
+	sub pdata,7,null
+	rtn positive
+p_usb_class_type:	
+	fetch 1,mem_usb_setup_bmRequestType
+	and_into 0x80,pdata
+	beq OUT_DEVICE,p_usb_out_device
+	branch usb_class_type+2
+
+p_usb_rx_no_data:
+	fetch 1,mem_usb_status
+	bbit1 USB_STATUS_SETUP,p_usb_class_type
+	rtn
+
+p_usb_out_one_byte:
+	fetch 1,mem_usb_setup
+	rtnbit1 7	// OUT_DEVICE
+	call p_usb_get_led_status
+	branch usb0_reply_zerolen
+
+	
+p_usb_out_device:
+	fetch 1,mem_usb_setup_bmRequestType
+	rshift4 pdata,pdata
+	rshift pdata,pdata
+	and_into 0x03,pdata
+	beq STANDARD_REQ,p_usb_out_standard_req
+	beq CLASS_REQ,p_usb_out_class_req
+	branch usb_out_device+4
+
+p_usb_out_standard_req:
+	fetch 1,mem_usb_setup_bRequest
+	beq SET_FEATURE,p_usb0_request_set_feature
+	branch usb_out_standard_req+1
+
+p_usb0_request_set_feature:
+	fetch 1,mem_usb_setup_bLength
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bLengthH
+	bne 0,usb0_force_stall
+	fetch 1,mem_usb_setup_bmRequestType
+	beq OUT_DEVICE,p_usb0_request_set_feature_out_device
+	branch usb0_request_set_feature+5
+
+
+p_usb0_request_set_feature_out_device:
+	fetch 1,mem_usb_setup_bValue
+	bne DEVICE_REMOTE_WAKEUP,usb0_force_stall
+	jam 3,mem_24g_pc_sleep_flag
+	branch usb0_request_set_feature_out_device+2
+	
+p_usb_out_class_req:
+	fetch 1,mem_usb_setup_bRequest
+	beq SET_REPORT,p_usb_set_report
+	branch usb_out_class_req+1
+p_usb_set_report:
+	jam 1,mem_usb0_get_set_report
+	call usb_set_report_resume_judge
+	fetch 2,mem_usb_setup_bValue
+	store 2,mem_usb_setup_bValue_temp
+	nop 15000	//delay 1ms
+	hfetch 1,core_usb_ep_len
+	ncall p_usb_set_report_rxdata,blank
+	fetch 1,mem_usb_tx_win_enable
+	ncall p_usb_get_output_data,blank
+	branch usb_set_report+4
+p_usb_set_report_rxdata:
+	copy pdata,loopcnt
+	arg mem_usb0_setup,contw
+	branch usb_rx_read
+
+p_usb_get_output_data:
+	fetch 1,mem_usb0_setup
+p_usb_get_led_status:
+	store 1,mem_24g_led_status
+	jam 0,mem_usb_tx_win_enable
+	jam KB_LED_ACKPAYLOAD,mem_24g_ackpayload_enable
+	rtn
+
+p_app_init:
+	jam 0,mem_dongle_bind_device_living
+	jam G24_BIND_MODE_DELAY,mem_24g_bind_delay_count		//G24_BIND_MODE_DELAY*80ms
+	call enable_authrom
+	fetch 4,mem_lap
+	store 4,mem_24g_rx_addr	//update mem_24g_rx_addr
+	fetcht 1,mem_eeprom_wp_gpio
+	call gpio_config_output
+	call p_dongle_init
+	call p_g24_queue_init
+	call p_dongle_iic_init
+	call p_dongle_firmware_version_store
+	fetch 1,mem_24g_pair_mode
+	beq 0x00,p_dongle_auto_bind
+	beq 0x01,p_dongle_pc_bind
+	beq 0x0f,p_dongle_all_powerful
+	rtn
+
+p_dongle_firmware_version_store:
+	call p_dongle_set_firmware_version_eeprom
+	branch iicd_write_protect_eep_data
+
+p_dongle_iic_init:
+	call iic_init_390k
+	call p_dongle_set_kb_bind_eeprom
+	branch iicd_read_eep_data
+
+p_dongle_set_kb_bind_eeprom:
+	arg mem_dongle_kb_bind_flag,rega
+	arg DONGLE_KB_BIND_EEPROM_OFFECT,regb
+	arg 1,temp
+	rtn
+
+p_dongle_set_firmware_version_eeprom:
+	arg mem_firmware_version,rega
+	arg DONGLE_FIRMWARE_VERSION_OFFECT,regb
+	arg 3,temp
+	rtn
+
+p_dongle_init:
+	fetch 1,mem_tx_power
+	store 1,mem_tx_power_temp
+	arg 0x80,loopcnt
+	arg mem_rssi_noise_buffer,contw
+	call memset0
+	branch usb_init
+
+p_dongle_all_powerful:
+	call p_dongle_check_mode
+p_dongle_all_powerful_loop:
+	call p_g24_dongle_work_mode
+	call p_dongle_usb_dispatch
+	branch p_dongle_all_powerful_loop
+
+p_dongle_pc_bind:
+	call p_dongle_check_mode
+p_dongle_pc_bind_loop:	
+	call p_g24_dongle_work_mode
+	call p_g24_dongle_bind_mode
+	call p_dongle_usb_dispatch
+	branch p_dongle_pc_bind_loop
+
+p_dongle_check_mode:
+	jam 0,mem_24g_ackpayload_enable
+p_dongle_work_mode_enable:
+	jam DONGLE_WORK,mem_dongle_work_mode
+	jam CLEAR_INIT,mem_dongle_mode_init	
+	rtn
+
+p_g24_dongle_work_mode:
+	fetch 1,mem_dongle_work_mode
+	rtnne DONGLE_WORK
+p_g24_dongle_work_mode_start:	
+	call p_g24_dongle_work_init
+	call p_g24_ch_process
+	call p_g24_receive_packet_start
+	branch p_g24_blank_data_process
+
+p_g24_dongle_work_init:
+	fetch 1,mem_dongle_mode_init
+	rtnbit1 DONGLE_WORK
+	set1 DONGLE_WORK,pdata
+	store 1,mem_dongle_mode_init
+	fetch 1,mem_tx_power_temp
+	store 1,mem_tx_power
+	jam 0,mem_24g_ackpayload_enable
+	jam 0,mem_usb_tx_enable
+	jam 1,mem_24g_abort_packet
+	jam 0,mem_24g_pid
+	fetch 4,mem_24g_rx_addr
+	call p_g24_update_addr_and_synccrc8
+	call p_g24_ch
+	branch p_g24_rx_interrupt_clear
+
+p_g24_ch_process:
+	fetch 1,mem_24g_abort_packet
+	beq 1,p_g24_noise_rssi
+	fetch 1,mem_24g_hop_packet
+	beq 1,p_g24_ch_receive_hop_pac
+	fetcht 4,mem_24g_hop_btclk
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall g24_timer_timeout,positive
+	copy pdata,regb
+	fetch 4,mem_24g_hop_btclk
+	fetcht 1,mem_24g_hop_interval
+	iadd temp,temp
+	copy regb,pdata
+	isub temp,null
+	nrtn positive
+	set0 28,pdata
+	store 4,mem_24g_hop_btclk
+	jam 1,mem_24g_abort_packet
+	branch p_g24_ch
+
+p_g24_ch_receive_hop_pac:
+	jam 0,mem_24g_hop_packet
+	branch p_g24_ch
+
+p_g24_ch_timer_reinit:
+	copy clkn_bt,pdata
+	store 4,mem_24g_hop_btclk
+	jam 0,mem_24g_rf_laststa
+	rtn
+
+p_g24_noise_rssi:
+	arg mem_rssi_noise_buffer,rega
+	call p_rssi_average
+	storet 1,mem_rssi_noise_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive
+	branch p_g24_ch
+
+p_g24_blank_data_process:
+	call p_g24_ms_blank_data
+	call p_g24_kb_blank_data
+	branch p_g24_kb_mul_blank_data
+
+p_g24_ms_blank_data:
+	fetch 1,mem_24g_ms_blank_data_enable
+	rtn blank
+	arg TIMER_NEW_MS_BLANK,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_24g_ms_blank_data_enable
+	branch g24_ms_blank_data_2usb
+
+p_g24_kb_blank_data:
+	fetch 1,mem_24g_kb_blank_data_enable
+	rtn blank
+	arg TIMER_NEW_KB_BLANK,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_24g_kb_blank_data_enable
+	call g24_kb_blank_data_2usb
+	fetch 8,mem_usb_kb_data
+	store 8,mem_24g_kb_data_last_data
+	rtn
+
+p_g24_kb_mul_blank_data:
+	fetch 1,mem_24g_kb_mul_blank_data_enable
+	rtn blank
+	arg TIMER_NEW_KB_MUL_BLANK,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_24g_kb_mul_blank_data_enable
+	call g24_kb_mul_blank_data_2usb
+	fetch 3,mem_usb_kb_multikey
+	store 3,mem_24g_kb_multikey_last_data
+	rtn
+
+p_g24_dongle_bind_mode:
+	fetch 1,mem_dongle_work_mode
+	rtnne DONGLE_BIND
+	call p_g24_dongle_bind_init
+	branch p_g24_dongle_bind_data_process
+
+p_g24_dongle_bind_init:
+	fetch 1,mem_dongle_mode_init
+	rtnbit1 DONGLE_BIND
+	set1 DONGLE_BIND,pdata
+	store 1,mem_dongle_mode_init
+	setarg 0
+	store 3,mem_dongle_ms_bind_step
+	jam TX_POWER_f5DB,mem_tx_power
+	jam 1,mem_24g_ackpayload_enable
+	jam 0,mem_24g_pid
+	jam G24_PAIR_CH,mem_24g_ch	//2480MHz
+	fetch 4,mem_24g_paring_addr	//Address
+	branch p_g24_update_addr_and_synccrc8
+
+p_g24_dongle_bind_data_process:
+	call p_g24_receive_transmit_ack
+	nbranch p_g24_rx_interrupt_clear,user3
+	jam G24_WORK_MODE_DELAY,mem_24g_work_delay_count
+	arg mem_24g_rxbuf,contr
+	arg mem_24g_rxdata_temp,contw
+	arg 8,loopcnt
+	call memcpy
+	fetch 1,mem_24g_rxdata_temp+2
+	beq DATATYPE_BIND,p_g24_dongle_bind_first_step	//bind step 1
+	beq DATATYPE_CONFIG,p_g24_dongle_bind_second_step
+	beq DATATYPE_OK,p_g24_dongle_bind_third_step
+	beq 0xff,p_g24_data_attemp_bind
+p_g24_rx_interrupt_clear:
+	arg mem_24g_rxbuf,contw
+	arg 66,loopcnt
+	branch clear_mem
+
+p_g24_dongle_binding_device_check:	//works on auto pair
+	fetch 1,mem_dongle_work_mode
+	rtnne DONGLE_BIND
+	fetch 1,mem_24g_pair_mode
+	nrtn blank	
+	fetch 1,mem_24g_rxbuf+3
+	beq BIND_MOUSE,p_g24_dongle_binding_mouse_status	//bit0
+	beq BIND_KEYBOARD,p_g24_dongle_binding_keyboard_status	//bit1
+	rtn
+p_g24_dongle_binding_mouse_status:
+	fetch 1,mem_dongle_bind_device_living
+	rtnbit0 0
+disable_user3:
+	disable user3
+	rtn 
+p_g24_dongle_binding_keyboard_status:
+	fetch 1,mem_dongle_bind_device_living
+	rtnbit0 1
+	branch disable_user3
+
+p_g24_dongle_binding_mouse_living:
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	fetch 1,mem_dongle_bind_device_living
+	or_into 0x01,pdata
+	store 1,mem_dongle_bind_device_living
+	rtn
+
+p_g24_dongle_binding_keyboard_living:
+	fetch 1,mem_24g_pair_mode
+	nrtn blank
+	fetch 1,mem_dongle_bind_device_living
+	or_into 0x02,pdata
+	store 1,mem_dongle_bind_device_living
+	rtn
+	
+
+p_g24_dongle_bind_first_step:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq BIND_MOUSE,p_g24_dongle_bind_first_step_mouse
+	beq BIND_KEYBOARD,p_g24_dongle_bind_first_step_keyboard
+	rtn
+p_g24_dongle_bind_first_step_mouse:
+	jam 1,mem_dongle_ms_bind_step
+p_g24_dongle_bind_ms_payload_cfg:
+	jam DATATYPE_MOUSE,mem_24g_bind_payload
+p_g24_dongle_bind_payload_cfg:	
+	jam 0x80,mem_24g_bind_payload+1
+	fetch 6,mem_24g_rx_addr
+	store 6,mem_24g_bind_payload+2
+	rtn
+
+p_g24_dongle_bind_first_step_keyboard:
+	jam 1,mem_dongle_kb_bind_step
+p_g24_dongle_bind_kb_payload_cfg:
+	jam DATATYPE_KEYBOARD,mem_24g_bind_payload
+	branch p_g24_dongle_bind_payload_cfg
+
+p_g24_dongle_bind_second_step:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq BIND_MOUSE,p_g24_dongle_bind_second_step_mouse
+	beq BIND_KEYBOARD,p_g24_dongle_bind_second_step_keyboard
+	rtn
+p_g24_dongle_bind_second_step_mouse:
+	call p_g24_dongle_bind_ms_payload_cfg
+	fetch 1,mem_dongle_ms_bind_step
+	beq 1,p_g24_dongle_ms_bind_step_set2
+	rtn
+p_g24_dongle_ms_bind_step_set2:
+	jam 2,mem_dongle_ms_bind_step
+	rtn
+p_g24_dongle_bind_second_step_keyboard:
+	call p_g24_dongle_bind_kb_payload_cfg	
+	fetch 1,mem_dongle_kb_bind_step
+	beq 1,p_g24_dongle_kb_bind_step_set2
+	rtn
+p_g24_dongle_kb_bind_step_set2:
+	jam 2,mem_dongle_kb_bind_step
+	rtn
+
+p_g24_dongle_bind_third_step:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq BIND_MOUSE,p_g24_dongle_bind_third_step_mouse
+	beq BIND_KEYBOARD,p_g24_dongle_bind_third_step_keyboard
+	rtn
+p_g24_dongle_bind_third_step_mouse:
+	fetch 1,mem_dongle_ms_bind_step
+	beq 2,p_g24_dongle_ms_bind_step_success
+	rtn
+p_g24_dongle_ms_bind_step_success:
+	call p_g24_dongle_binding_mouse_living		//works on auto pair only
+	fetch 1,mem_dongle_bind_device_status
+	or_into 0x01,pdata
+	store 1,mem_dongle_bind_device_status
+p_g24_dongle_bind_exit:	
+	setarg 0
+	store 2,mem_dongle_ms_bind_step
+	branch p_g24_rx_interrupt_clear
+	
+p_g24_dongle_bind_third_step_keyboard:
+	fetch 1,mem_dongle_kb_bind_step
+	bne 0,p_g24_dongle_kb_bind_step_success
+	rtn
+p_g24_dongle_kb_bind_step_success:
+	call p_g24_dongle_binding_keyboard_living	//works on auto pair only
+	fetch 1,mem_dongle_bind_device_status
+	or_into 0x02,pdata
+	store 1,mem_dongle_bind_device_status
+	call p_g24_dongle_bind_exit
+p_g24_dongle_store_kb_bind_flag:
+	fetch 1,mem_dongle_kb_bind_flag
+	rtneq  DONGLE_KB_BIND_SUCCESS
+	jam DONGLE_KB_BIND_SUCCESS,mem_dongle_kb_bind_flag
+	call p_dongle_set_kb_bind_eeprom
+	call iicd_write_protect_eep_data
+	branch soft_reset_chip
+
+p_g24_data_attemp_bind:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq DATATYPE_MOUSE,p_g24_data_attemp_mouse_bind
+	beq DATATYPE_KEYBOARD,p_g24_data_attemp_kbd_bind
+	rtn
+p_g24_data_attemp_mouse_bind:
+	fetch 4,mem_24g_rxdata_temp+4
+p_g24_store_mouse_addr:
+	store 4,mem_24g_ms_addr
+	rtn
+p_g24_data_attemp_kbd_bind:
+	fetch 4,mem_24g_rxdata_temp+4
+p_g24_store_kbd_addr:	
+	store 4,mem_24g_kb_addr
+	rtn
+
+p_g24_queue_init:
+	jam 0,mem_queue_ele_num
+	setarg mem_queue_start
+	store 2, mem_queue_read
+	store 2, mem_queue_write
+	rtn
+	
+p_g24_queue_put:
+	arg 0x1f,loopcnt
+	arg mem_usb0_set_report_data,temp
+	fetch 2, mem_queue_write
+	copy pdata,contw
+	copy temp,contr
+	call memcpy
+	fetch 1,mem_queue_ele_num
+	increase 1,pdata
+	store 1,mem_queue_ele_num
+	setarg mem_queue_write
+p_g24_queue_increase:
+	copy pdata,rega
+	arg mem_queue_end,temp
+	ifetch 2,rega
+	increase QUEUE_ELE_LENGTH,pdata
+	isub temp,null
+	nbranch p_g24_queue_put_end,positive
+	setarg mem_queue_start
+p_g24_queue_put_end:
+	istore 2,rega
+	rtn
+
+p_g24_queue_read_point:
+	disable user
+	fetch 1,mem_queue_ele_num
+	rtn blank
+	enable user
+	fetch 2,mem_queue_read
+	rtn
+
+p_dongle_usb_dispatch:
+	jam 0xff,core_write_watchdog
+	fetch 1,mem_usb_remote_wakeup
+	call p_g24_clear_pc_sleep_flag,blank
+	call usb_isr
+	fetch 1,mem_usb0_get_set_report
+	rtn blank
+	jam 0,mem_usb0_get_set_report
+	fetch 2,mem_usb_setup_bValue_temp
+	arg PC_SET_REPORT,temp
+	isub temp,null
+	nrtn zero
+	//get usb host command
+	fetch 1,mem_usb0_set_report_data
+	rtnne PC_REPORT_ID
+	fetch 1,mem_usb0_set_report_data+1
+	beq COMMAND_MODE,p_dongle_dispose_cmd_mode
+	beq COMMAND_BIND,p_dongle_dispose_cmd_bind
+	beq COMMAND_CURRENT_PROJECT,dongle_dispose_cmd_current_project
+	beq COMMAND_CURRENT_MODE,p_dongle_dispose_cmd_current_mode
+	beq COMMAND_CURRENT_FW_VERSION,p_dongle_dispose_cmd_current_fw_version
+	beq COMMAND_USER_DEFINED,p_dongle_dispose_cmd_user_defined
+	branch usb0_data_ready_report_set0
+
+p_dongle_dispose_cmd_bind:
+	fetch 1,mem_usb0_set_report_data+2
+	beq COM_BIND_GET,p_dongle_dispose_cmd_get_bind
+	beq COM_BIND_EXIT,p_dongle_dispose_cmd_exit_bind
+	beq COM_READ_MODE,dongle_dispose_cmd_read_mode
+	branch usb0_data_ready_report_set0
+p_dongle_dispose_cmd_get_bind:
+	fetch 1,mem_dongle_bind_device_status
+	store 1,mem_usb0_get_report_data+1
+	branch usb0_data_ready_report_set1
+p_dongle_dispose_cmd_exit_bind:
+	call p_dongle_work_mode_enable
+	branch p_dongle_dispose_cmd_get_bind
+ 
+p_dongle_dispose_cmd_mode:
+	fetch 1,mem_usb0_set_report_data+2
+	beq COM_MODE_BIND,p_dongle_enter_bind_mode
+	branch usb0_data_ready_report_set0
+p_dongle_enter_bind_mode:
+	call p_g24_bind_mode_enable
+	branch usb0_data_ready_report_set1
+
+p_dongle_dispose_cmd_current_mode:
+	fetch 1,mem_dongle_work_mode
+	beq DONGLE_WORK,p_dongle_dispose_in_work_mode
+	beq DONGLE_BIND,dongle_dispose_in_bind_mode
+	rtn
+p_dongle_dispose_in_work_mode:
+	jam COMMAND_MODE,mem_usb0_get_report_data+1
+	branch usb0_data_ready_report_set1
+	
+p_dongle_dispose_cmd_current_fw_version:
+	jam FW_VERSION3,mem_usb0_get_report_data+4
+	branch dongle_dispose_cmd_current_fw_version
+
+p_dongle_dispose_cmd_user_defined:
+	fetch 1,mem_usb0_set_report_data+2
+	beq 0xff,soft_reset_chip
+p_dongle_dispose_cmd_ota:
+	jam 2,mem_24g_ackpayload_enable
+	fetch 1,mem_queue_ele_num
+	beq QUEUE_ELE_COUNT,p_user_defined_queue_buff_full
+	call p_g24_queue_put
+	fetch 1,mem_queue_ele_num
+	beq QUEUE_ELE_COUNT,p_user_defined_queue_buff_full
+p_user_defined_queue_buff_free:
+	jam 0,mem_usb0_get_report_data+1
+	branch usb0_data_ready_report_set1
+
+p_user_defined_queue_buff_full:
+	jam 1,mem_usb0_get_report_data+1
+	branch usb0_data_ready_report_set1
+
+p_dongle_auto_bind:
+	call p_g24_mode_switch_init
+p_dongle_auto_bind_loop:
+	call p_g24_mode_switch		//work or bind
+	call p_g24_mode_switch_2	//search or bind
+	call p_g24_dongle_work_mode_auto
+	call p_g24_dongle_bind_mode_auto
+	call p_g24_dongle_search_mode_auto
+	call p_dongle_usb_dispatch
+	branch p_dongle_auto_bind_loop
+
+p_g24_dongle_work_mode_auto:
+	fetch 1,mem_dongle_work_mode
+	rtnne DONGLE_WORK
+	call p_g24_dongle_work_mode_start
+	branch p_g24_rx_nodata_process
+
+p_g24_dongle_bind_mode_auto:
+	fetch 1,mem_dongle_work_mode
+	rtnne DONGLE_BIND
+	call p_g24_dongle_bind_init
+	call p_g24_dongle_bind_data_process
+	fetch 1,mem_dongle_bind_device_status
+	rtn blank
+	jam 0,mem_24g_mode_switch
+	call p_dongle_check_mode
+	call p_g24_enable_nodata_timer
+	branch p_g24_timer_init
+
+p_g24_timer_check:
+	call disable_user
+	fetcht 4,mem_24g_tx_btclk
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall g24_timer_timeout,positive
+	copy pdata,regb
+	fetch 4,mem_24g_tx_btclk
+	fetcht 1,mem_24g_interval
+	iadd temp,temp
+	copy regb,pdata
+	isub temp,null
+	nrtn positive
+	set0 28,pdata
+	store 4,mem_24g_tx_btclk
+	branch enable_user
+	
+p_g24_mode_switch_init:
+	jam 1,mem_24g_mode_switch
+	jam 0,mem_24g_time_slice
+	jam 0xff,mem_24g_interval
+p_g24_timer_init:
+	setarg 0
+	store 4,mem_24g_tx_btclk
+	rtn
+	
+p_g24_mode_switch:
+	fetch 1,mem_24g_mode_switch
+	rtn blank
+	call p_g24_timer_check
+	nrtn user	//80ms
+
+	call p_g24_bind_mode_delay
+	call p_g24_work_mode_delay
+
+	fetch 1,mem_24g_time_slice
+	increase 1,pdata
+	and_into 1,pdata
+	store 1,mem_24g_time_slice
+	beq 0,p_g24_mode_switch_work
+	beq 1,p_g24_mode_switch_bind
+	rtn
+
+
+p_g24_work_mode_delay:
+	fetch 1,mem_24g_work_delay_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_24g_work_delay_count
+	rtn
+
+p_g24_mode_switch_work:
+	fetch 1,mem_24g_work_delay_count
+	nbranch p_g24_bind_mode_enable,blank
+	branch p_dongle_check_mode
+
+p_g24_bind_mode_delay:
+	fetch 1,mem_24g_bind_delay_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_24g_bind_delay_count
+	rtn
+
+p_g24_mode_switch_bind:
+	fetch 1,mem_24g_bind_delay_count	//after power on 10s,enable bind
+	nbranch p_dongle_check_mode,blank
+p_g24_bind_mode_enable:
+	jam DONGLE_BIND,mem_dongle_work_mode
+	jam CLEAR_INIT,mem_dongle_mode_init
+	rtn
+
+
+p_g24_mode_switch_init_2:
+	fetch 1,mem_24g_mode_switch_exit_2
+	call p_g24_mode_switch_start_2,blank
+	fetch 1,mem_24g_mode_switch_2_init
+	rtnbit1 0
+	set1 0,pdata
+	store 1,mem_24g_mode_switch_2_init
+	jam 1,mem_24g_mode_switch_2
+	jam 0,mem_24g_time_slice_2
+	setarg 0
+	store 2,mem_24g_mode_switch_cnt_2
+	jam 0x60,mem_24g_interval	//30ms
+	branch p_g24_timer_init
+
+p_g24_mode_switch_2:
+	fetch 1,mem_dongle_work_mode
+	rtneq DONGLE_WORK
+	fetch 1,mem_24g_mode_switch_exit_2
+	nrtn blank
+	fetch 1,mem_24g_mode_switch_2
+	rtn blank
+	call p_g24_timer_check
+	nrtn user
+
+	fetch 2,mem_24g_mode_switch_cnt_2
+	increase 1,pdata
+	store 2,mem_24g_mode_switch_cnt_2
+	arg 0x7d0,temp	//1min
+	isub temp,null
+	branch p_g24_mode_switch_exit_2,positive
+
+	call p_g24_work_mode_delay
+	
+	fetch 1,mem_24g_time_slice_2
+	increase 1,pdata
+	and_into 1,pdata
+	store 1,mem_24g_time_slice_2
+	beq 0,p_g24_mode_switch_search
+	beq 1,p_g24_bind_mode_enable
+	rtn
+
+p_g24_mode_switch_search:
+	fetch 1,mem_24g_work_delay_count
+	nbranch p_g24_bind_mode_enable,blank
+	branch p_g24_search_mode_enable
+
+p_g24_mode_switch_exit_2:
+	jam 1,mem_24g_mode_switch_exit_2
+	branch p_g24_search_mode_enable
+
+p_g24_mode_switch_stop_2:
+	jam 0,mem_24g_mode_switch_2
+	rtn
+p_g24_mode_switch_start_2:
+	jam 1,mem_24g_mode_switch_2
+	rtn	
+
+p_g24_enable_nodata_timer:
+	jam 1,mem_24g_nodata_timer_enable
+	branch g24_enable_nodata_timer_init
+
+p_g24_rx_nodata_process:
+	fetch 1,mem_24g_ackpayload_enable
+	rtneq 2
+	fetch 1,mem_24g_nodata_timer_enable
+	rtn blank
+	arg TIMER_NODATA,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_24g_nodata_timer_enable
+
+	jam 0,mem_24g_bind_delay_count
+	jam 0,mem_24g_work_delay_count
+
+	call p_g24_mode_switch_init_2	//works on auto pair only
+
+p_g24_search_mode_enable:
+	//no data for more than 100ms,then go to search
+	jam DONGLE_SEARCH,mem_dongle_work_mode
+	jam CLEAR_INIT,mem_dongle_mode_init
+	branch p_g24_rx_interrupt_clear
+
+p_g24_receive_transmit_ack:
+	call p_g24_rx_interrupt_clear
+	call p_g24_receive_packet
+	nrtn user3
+	branch p_g24_transmit_ack
+
+
+p_g24_dongle_search_mode_auto:
+	fetch 1,mem_dongle_work_mode
+	rtnne DONGLE_SEARCH
+	call p_g24_dongle_search_mode_init
+	call p_g24_rx_auto_addr_ch_search
+	call p_g24_receive_transmit_ack
+	nbranch p_g24_rx_interrupt_clear,user3
+	//dongle addr,then parse rxdata
+	call p_g24_rx_addr_check
+	call p_g24_receive_packet_parse,zero
+	//receive data,then go to paired
+
+	fetch 1,mem_24g_abort_packet
+	call p_g24_mode_switch_stop_2,blank	//works on auto pair only
+	
+	jam DONGLE_WORK,mem_dongle_work_mode
+	fetch 1,mem_dongle_mode_init
+	set1 DONGLE_WORK,pdata
+	store 1,mem_dongle_mode_init
+
+	fetch 1,mem_24g_ackpayload_enable
+	sub pdata,2,null
+	ncall p_g24_ackpayload_disable,zero
+
+	call p_g24_rx_interrupt_clear
+	call p_g24_enable_nodata_timer
+	call p_g24_rx_addr_check
+	branch p_g24_dg_ch_num_reinit,zero
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_kb_addr
+	isub temp,null
+	branch p_g24_kb_ch_num_reinit,zero		
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_ms_addr
+	isub temp,null
+	branch p_g24_ms_ch_num_reinit,zero
+	rtn
+
+p_g24_ackpayload_disable:
+	jam 0,mem_24g_ackpayload_enable
+	rtn
+
+p_g24_dg_ch_num_reinit:
+	fetch 1,mem_24g_dg_ch_number
+p_g24_current_ch_num_reinit:
+	store 1,mem_24g_current_ch_number
+	rtn
+p_g24_kb_ch_num_reinit:
+	fetch 1,mem_24g_kb_ch_number
+	branch p_g24_current_ch_num_reinit
+p_g24_ms_ch_num_reinit:
+	fetch 1,mem_24g_ms_ch_number
+	branch p_g24_current_ch_num_reinit
+
+p_g24_dongle_search_mode_init:
+	fetch 1,mem_dongle_mode_init
+	rtnbit1 DONGLE_SEARCH
+	set1 DONGLE_SEARCH,pdata
+	store 1,mem_dongle_mode_init
+	jam 0,mem_24g_time_slice
+	jam 1,mem_24g_ackpayload_enable
+	setarg 0
+	store 3,mem_rssi_noise_dg_index
+	store 7,mem_24g_dg_config_ch_once
+	call p_g24_rx_addr_check
+	nrtn zero
+	fetch 1,mem_24g_current_ch_number
+	store 1,mem_24g_dg_ch_number
+	fetch 1,mem_24g_ch
+	store 1,mem_24g_dg_last_ch
+	rtn
+
+p_g24_rx_addr_check:
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_rx_addr
+	isub temp,null
+	rtn
+
+p_g24_rx_auto_addr_ch_search:
+	fetch 1,mem_24g_time_slice
+	increase 1,pdata
+	and_into 3,pdata
+	store 1,mem_24g_time_slice
+	//pairing address and channel come first
+	beq 0,p_g24_rx_auto_bind_config_kb
+	beq 1,p_g24_rx_auto_bind_config_dongle
+	beq 2,p_g24_rx_auto_bind_config_mouse
+	beq 3,p_g24_rx_auto_bind_config_dongle
+	rtn
+
+p_g24_rx_auto_bind_config_mouse:
+	call p_g24_dongle_bind_ms_payload_cfg
+	fetch 4,mem_24g_ms_addr
+	branch p_g24_rx_auto_addr_ch_search,blank
+	call p_g24_update_addr_and_synccrc8
+	fetch 1,mem_24g_ms_config_ch_once
+	call p_g24_ms_config_ch_once,blank
+	fetch 1,mem_24g_ms_last_ch
+	store 1,mem_24g_ch
+	fetcht 1,mem_rssi_noise_ms_index
+	arg mem_rssi_noise_ms_buffer,rega
+	call p_rssi_store
+	storet 1,mem_rssi_noise_ms_index
+	call p_rssi_average
+	storet 1,mem_rssi_noise_ms_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive
+	fetcht 1,mem_24g_ms_ch_number
+	call p_g24_ch_map_size
+	storet 1,mem_24g_ms_ch_number
+	store 1,mem_24g_ms_last_ch
+	rtn
+
+p_g24_ms_config_ch_once:
+	jam 1,mem_24g_ms_config_ch_once
+	arg 0,temp
+	call p_g24_ch_calc
+	store 1,mem_24g_ms_last_ch
+	rtn
+	
+p_g24_rx_auto_bind_config_kb:
+	call p_g24_dongle_bind_kb_payload_cfg
+	fetch 4,mem_24g_kb_addr
+	branch p_g24_rx_auto_addr_ch_search,blank
+	call p_g24_update_addr_and_synccrc8
+	fetch 1,mem_24g_kb_config_ch_once
+	call p_g24_kb_config_ch_once,blank
+	fetch 1,mem_24g_kb_last_ch
+	store 1,mem_24g_ch	
+	fetcht 1,mem_rssi_noise_kb_index
+	arg mem_rssi_noise_kb_buffer,rega
+	call p_rssi_store
+	storet 1,mem_rssi_noise_kb_index
+	call p_rssi_average
+	storet 1,mem_rssi_noise_kb_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive
+	fetcht 1,mem_24g_kb_ch_number
+	call p_g24_ch_map_size
+	storet 1,mem_24g_kb_ch_number
+	store 1,mem_24g_kb_last_ch
+	rtn
+
+p_g24_kb_config_ch_once:
+	jam 1,mem_24g_kb_config_ch_once
+	arg 0,temp
+	call p_g24_ch_calc
+	store 1,mem_24g_kb_last_ch
+	rtn	
+
+p_g24_rx_auto_bind_config_dongle:
+	call p_g24_dongle_bind_ms_payload_cfg
+	fetch 4,mem_24g_rx_addr
+	call p_g24_update_addr_and_synccrc8	
+	fetch 1,mem_24g_dg_config_ch_once
+	call p_g24_dg_config_ch_once,blank
+	fetch 1,mem_24g_dg_last_ch
+	store 1,mem_24g_ch
+	fetcht 1,mem_rssi_noise_dg_index
+	arg mem_rssi_noise_dg_buffer,rega
+	call p_rssi_store
+	storet 1,mem_rssi_noise_dg_index
+	call p_rssi_average
+	storet 1,mem_rssi_noise_dg_avg
+	sub temp,RSSI_THRESH_NOISE,null
+	nrtn positive
+	fetcht 1,mem_24g_dg_ch_number
+	call p_g24_ch_map_size
+	storet 1,mem_24g_dg_ch_number
+	store 1,mem_24g_dg_last_ch
+	rtn
+
+p_g24_dg_config_ch_once:
+	jam 1,mem_24g_dg_config_ch_once
+	fetch 1,mem_24g_dg_last_ch
+	store 1,mem_24g_ch
+	rtn
+
+
+
+p_g24_read_len_pid_crc:
+//read control
+	fetch 1,mem_24g_rxbuf+1
+	rshift3 pdata,pdata
+	store 1,mem_24g_rxdata_length
+//get crc
+	increase 1,pdata
+	arg mem_24g_rxbuf+1,contr
+	iadd contr,contr
+	ifetch 3,contr
+	store 3,mem_24g_sta_crc
+//read pid
+	fetch 1,mem_24g_rxbuf+1
+	rshift pdata,pdata
+	and pdata,0x03,pdata
+	store 1,mem_24g_sta_pid
+	rtn
+
+p_g24_transmit_ack:
+//data type
+	fetch 1,mem_24g_rxbuf
+	store 1,mem_24g_data_type
+//read len pid crc
+	call p_g24_read_len_pid_crc
+//read ack
+	fetch 1,mem_24g_rxbuf+1
+	isolate1 bit_ack_24g,pdata
+	branch p_g24tx_no_ack,true
+p_g24tx_with_ack:
+	call p_g24_ackpayload_prep
+	call p_g24_transmit_prep
+	call p_g24_transmit
+p_g24tx_no_ack:
+	branch p_g24_end_of_packet
+
+p_g24_ackpayload_prep:
+	jam 0,mem_24g_datalen
+	fetch 1,mem_24g_data_type
+	beq 0x01,p_g24_ackpayload_prep_mouse
+	beq 0x02,p_g24_ackpayload_prep_keyboard
+p_g24_ackpayload_prep_mouse:
+	fetch 1,mem_24g_pc_sleep_flag
+	bbit1 0,p_g24_pc_sleep_ackpayload_prep_mouse
+	branch p_g24_ackpayload_prep_end
+
+p_g24_clear_pc_sleep_flag:
+	jam 0,mem_24g_pc_sleep_flag
+	rtn
+
+
+p_g24_ackpayload_prep_keyboard:
+	fetch 1,mem_24g_pc_sleep_flag
+	bbit1 1,p_g24_pc_sleep_ackpayload_prep_keyboard
+p_g24_ackpayload_prep_end:
+	fetch 1,mem_24g_ackpayload_enable
+	rtn blank
+	beq BIND_ACKPAYLOAD,p_g24_bind_ackpayload_prep
+	beq USER_ACKPAYLOAD,p_g24_user_ackpayload_prep
+	beq KB_LED_ACKPAYLOAD,p_g24_kb_led_ackpayload_prep
+	rtn
+
+p_g24_pc_sleep_ackpayload_prep_mouse:
+	fetch 1,mem_24g_pc_sleep_flag
+	set0 0,pdata
+	store 1,mem_24g_pc_sleep_flag
+	branch p_g24_pc_sleep_ackpayload_prep
+
+p_g24_pc_sleep_ackpayload_prep_keyboard:
+	fetch 1,mem_24g_pc_sleep_flag
+	set0 1,pdata
+	store 1,mem_24g_pc_sleep_flag
+p_g24_pc_sleep_ackpayload_prep:
+	jam 0x01,mem_24g_datalen
+	setarg 0xff
+	store 1,mem_24g_txbuf
+	rtn
+
+p_g24_bind_ackpayload_prep:
+	jam 1,mem_24g_ackpayload_enable
+	call p_g24_dongle_binding_device_check	//works on auto pair only
+	nrtn user3
+	jam 0x08,mem_24g_datalen
+	arg 0x08,loopcnt
+	arg mem_24g_bind_payload,contr
+	arg mem_24g_txbuf,contw
+	branch memcpy
+
+p_g24_user_ackpayload_prep:
+	call p_g24_queue_read_point
+	nrtn user
+	jam 0x1f,mem_24g_datalen
+	arg 0x1f,loopcnt
+	copy pdata,contr
+	arg mem_24g_txbuf,contw
+	call memcpy
+	fetch 2,mem_24g_txbuf+3	//pac id
+	store 2,mem_24g_ota_sta_pid
+	rtn
+
+p_g24_kb_led_ackpayload_prep:
+	fetch 1,mem_24g_rxbuf+2
+	beq 0x01,p_g24_bind_ackpayload_prep
+	beq 0xff,p_g24_bind_ackpayload_prep
+	
+	//jam 0,mem_24g_ackpayload_enable
+	jam 0,mem_usb_tx_win_enable
+	jam 0x01,mem_24g_datalen
+	arg 0x01,loopcnt
+	arg mem_24g_led_status,contr
+	arg mem_24g_txbuf,contw
+	branch memcpy
+
+
+p_g24_receive_packet_start:
+	call p_g24_receive_transmit_ack
+	nbranch p_g24_rx_interrupt_clear,user3
+	branch p_g24_receive_packet_parse
+
+p_g24_receive_packet_parse:
+	call p_g24_receive_packet_parse_pid_crc
+	nbranch p_g24_rx_interrupt_clear,user
+	fetch 1,mem_24g_rxdata_length
+	branch p_g24_rx_interrupt_clear,blank
+	increase 2,pdata
+	iforce loopcnt
+	arg mem_24g_rxbuf,contr
+	arg mem_24g_rxdata_temp,contw
+	call memcpy
+	jam 0,mem_24g_mode_switch
+	fetch 1,mem_24g_pair_mode
+	call p_g24_enable_nodata_timer,blank
+	fetch 1,mem_24g_rxdata_temp+2
+	beq 0x01,p_g24_data_type1	//mouse
+	beq 0x02,p_g24_data_type2	//keyboard
+	beq 0xff,p_g24_data_attemp	//reconn packet
+	branch p_g24_rx_interrupt_clear
+
+p_g24_receive_packet_parse_pid_crc:
+	call disable_user
+	fetch 1,mem_24g_sta_pid
+	fetcht 1,mem_24g_last_pid
+	isub temp,null
+	ncall enable_user,zero
+	fetch 1,mem_24g_sta_pid
+	store 1,mem_24g_last_pid
+	fetch 3,mem_24g_sta_crc
+	fetcht 3,mem_24g_last_crc
+	isub temp,null
+	ncall enable_user,zero
+	fetch 3,mem_24g_sta_crc
+	store 3,mem_24g_last_crc
+	rtn
+
+p_g24_data_type1:
+	call p_g24_dongle_binding_mouse_living	//works on auto pair only
+	call p_g24_ch_timer_reinit
+	fetch 1,mem_24g_abort_packet
+	fetcht 1,mem_24g_rxdata_temp
+	isolate1 bit_abort,temp
+	setflag true,0,pdata
+	store 1,mem_24g_abort_packet
+	beq 1,p_g24_data_attemp_mouse_abort
+	fetch 1,mem_24g_hop_packet
+	fetcht 1,mem_24g_rxdata_temp
+	isolate1 bit_hop,temp
+	setflag true,0,pdata
+	store 1,mem_24g_hop_packet
+
+	fetch 1,mem_24g_rxdata_temp+3	//OTA
+	beq CMD_OTA,p_g24_ota_process
+	
+	setarg MS_REPORT_ID
+	store 1,mem_usb_mouse_data	//report id
+	fetch 7,mem_24g_rxdata_temp+3	//key
+	istore 7,contw
+	fetch 1,mem_24g_rxdata_temp+3	//key
+	ncall p_g24_ms_enable_blank_data_forcibly,blank//get kb data
+	fetch 1,mem_24g_rxdata_temp+3	//key
+	call p_g24_ms_disable_blank_data_forcibly,blank
+	branch g24_data_type1_usbtx_enable
+
+p_g24_ms_enable_blank_data_forcibly:
+	jam 1,mem_24g_ms_blank_data_enable
+	setarg TIMER_NEW_MS_BLANK_DELAY
+	arg TIMER_NEW_MS_BLANK,queue
+	branch timer_init
+p_g24_ms_disable_blank_data_forcibly:
+	jam 0,mem_24g_ms_blank_data_enable
+	setarg 0
+	arg TIMER_NEW_MS_BLANK,queue
+	branch timer_init
+
+p_g24_data_type2:
+	call p_g24_dongle_binding_keyboard_living
+	fetcht 1,mem_24g_rxdata_temp
+	isolate1 bit_abort,temp
+	branch p_g24_data_attemp_kbd_abort,true
+	fetch 1,mem_24g_rxdata_temp+3
+	beq 0,p_g24_data_type2_data1	//normal key
+	beq 2,p_g24_data_type2_data3 	//system key
+	beq 3,p_g24_data_type2_data2	//multikey
+	branch p_g24_rx_interrupt_clear
+
+p_g24_data_type2_data1:
+	fetch 1,mem_24g_rxdata_temp+5
+	store 1,mem_24g_ackpayload_enable
+	jam 0,mem_24g_rxdata_temp+5
+	arg mem_usb_kb_data,contw
+	call p_g24_data_type2_copy_data1
+	fetch 8,mem_usb_kb_data
+	ncall p_g24_kb_enable_blank_data_forcibly,blank//get kb data
+	fetch 8,mem_usb_kb_data	
+	call p_g24_kb_disable_blank_data_forcibly,blank
+	fetch 8,mem_usb_kb_data
+	store 8,mem_24g_kb_data_sta_data
+	fetcht 8,mem_24g_kb_data_last_data
+	isub temp,null
+	ncall g24_kb_data_into_ep1_fifo,zero
+	fetch 8,mem_24g_kb_data_sta_data
+	store 8,mem_24g_kb_data_last_data
+	branch p_g24_rx_interrupt_clear
+
+
+p_g24_data_type2_copy_data1:
+	arg mem_24g_rxdata_temp+4,contr
+	arg 8,loopcnt
+	branch memcpy
+
+p_g24_kb_enable_blank_data_forcibly:
+	jam 1,mem_24g_kb_blank_data_enable
+	setarg TIMER_NEW_KB_BLANK_DELAY
+	arg TIMER_NEW_KB_BLANK,queue
+	branch timer_init
+
+p_g24_kb_disable_blank_data_forcibly:
+	jam 0,mem_24g_kb_blank_data_enable
+	setarg 0
+	arg TIMER_NEW_KB_BLANK,queue
+	branch timer_init
+
+p_g24_data_type2_data2:
+	arg mem_usb_kb_multikey,contw
+	call p_g24_data_type2_copy_data2
+	fetch 2,mem_usb_kb_multikey+1
+	ncall p_g24_kb_mul_enable_blank_data_forcibly,blank//get multikey data
+	fetch 2,mem_usb_kb_multikey+1
+	call p_g24_kb_mul_disable_blank_data_forcibly,blank
+	fetch 3,mem_usb_kb_multikey
+	store 3,mem_24g_kb_multikey_sta_data
+	fetcht 3,mem_24g_kb_multikey_last_data
+	isub temp,null
+	ncall g24_kb_mul_data_into_ep2_fifo,zero
+	fetch 3,mem_24g_kb_multikey_sta_data
+	store 3,mem_24g_kb_multikey_last_data
+	branch p_g24_rx_interrupt_clear
+
+p_g24_data_type2_copy_data2:
+	arg mem_24g_rxdata_temp+3,contr
+	arg 3,loopcnt
+	branch memcpy
+
+
+p_g24_kb_mul_enable_blank_data_forcibly:
+	jam 1,mem_24g_kb_mul_blank_data_enable
+	setarg TIMER_NEW_KB_MUL_BLANK_DELAY
+	arg TIMER_NEW_KB_MUL_BLANK,queue
+	branch timer_init
+	
+p_g24_kb_mul_disable_blank_data_forcibly:
+	jam 0,mem_24g_kb_mul_blank_data_enable
+	setarg 0
+	arg TIMER_NEW_KB_MUL_BLANK,queue
+	branch timer_init
+
+p_g24_data_type2_data3:
+	arg mem_usb_kb_system,contw
+	call p_g24_data_type2_copy_data3
+	fetch 2,mem_usb_kb_system
+	store 2,mem_usb_kb_system_sta_data
+	fetcht 2,mem_usb_kb_system_last_data
+	isub temp,null
+	ncall p_g24_kb_sys_data_into_ep2_fifo,zero
+	fetch 2,mem_usb_kb_system_sta_data
+	store 2,mem_usb_kb_system_last_data
+	branch p_g24_rx_interrupt_clear
+
+p_g24_data_type2_copy_data3:
+	arg mem_24g_rxdata_temp+3,contr
+	arg 2,loopcnt
+	branch memcpy
+
+
+p_g24_kb_sys_enable_blank_data_forcibly:
+	jam 1,mem_24g_kb_mul_blank_data_enable
+	setarg TIMER_NEW_KB_MUL_BLANK_DELAY
+	arg TIMER_NEW_KB_MUL_BLANK,queue
+	branch timer_init
+	
+p_g24_kb_sys_disable_blank_data_forcibly:
+	jam 0,mem_24g_kb_mul_blank_data_enable
+	setarg 0
+	arg TIMER_NEW_KB_MUL_BLANK,queue
+	branch timer_init
+
+p_g24_kb_sys_data_into_ep2_fifo:
+	jam USB_EP2_SYSTEMKEY,mem_usb_ep2_data
+	branch g24_data_type1_usbtx_enable_ep2
+
+	
+p_g24_data_attemp:
+	fetch 1,mem_24g_rxdata_temp+3
+	beq DATATYPE_MOUSE,p_g24_data_attemp_mouse
+	beq DATATYPE_KEYBOARD,p_g24_data_attemp_kbd
+	rtn
+p_g24_data_attemp_mouse:
+	call p_g24_dongle_binding_mouse_living		//works on auto pair only
+	fetch 4,mem_24g_rxdata_temp+4
+	branch p_g24_store_mouse_addr
+p_g24_data_attemp_kbd:
+	call p_g24_dongle_binding_keyboard_living	//works on auto pair only
+	fetch 4,mem_24g_rxdata_temp+4
+	branch p_g24_store_kbd_addr
+p_g24_data_attemp_mouse_abort:
+	fetch 4,mem_24g_rxdata_temp+10
+	branch p_g24_store_mouse_addr
+p_g24_data_attemp_kbd_abort:
+	fetch 4,mem_24g_rxdata_temp+10
+	branch p_g24_store_kbd_addr
+
+p_g24_ota_process:
+	fetch 2,mem_24g_rxdata_temp+5	//ackpayload pid
+	fetcht 2,mem_24g_ota_sta_pid
+	isub temp,null
+	branch p_g24_ota_next_pac,zero
+	rtn
+	
+p_g24_ota_next_pac:
+	fetch 1,mem_24g_rxdata_temp+4	//OTA TYPE
+	beq CMD_OTA_EXIT,p_g24_ota_exit_process
+	fetch 1,mem_queue_ele_num
+	rtn blank	
+	setarg mem_queue_read
+	call p_g24_queue_increase
+	fetch 1,mem_queue_ele_num
+	increase -1,pdata
+	store 1,mem_queue_ele_num
+	fetch 1,mem_24g_rxdata_temp+4	//OTA TYPE
+	beq CMD_OTA_DATA,p_user_defined_queue_buff_free
+	beq CMD_OTA_EXIT,p_g24_ota_exit_process
+	rtn
+
+p_g24_ota_exit_process:
+	setarg 0
+	store 2,mem_24g_ota_sta_pid
+	store 1,mem_24g_ackpayload_enable
+	call p_g24_queue_init
+	fetch 1,mem_24g_rxdata_temp+7	//ackpayload pid
+	beq OTA_STA_SUCCESS,p_g24_ota_exit_success
+	beq OTA_STA_FAIL,p_g24_ota_exit_fail
+	rtn
+p_g24_ota_exit_success:
+	jam 2,mem_usb0_get_report_data+1
+	branch usb0_data_ready_report_set1
+p_g24_ota_exit_fail:
+	jam 3,mem_usb0_get_report_data+1
+	branch usb0_data_ready_report_set1
+endif
+
+
+p_set_freq_tx:
+	storet 1,mem_last_freq
+	add temp,0,rega			/* index to frequency */
+	call rf_write_freq
+	setarg param_pll_setup	//128us
+	call sleep
+p_rf_tx_enable:
+	jam 0x1,rfen_adc
+	jam 0x3c,rfen_rx
+	jam 0xe0,rfen_tx
+	nop 10 /* wait LDOs to turn ON*/
+	jam 0x01, rfen_mdm
+	jam 0x3d, rfen_mdm
+	nop 10 /* wait tx blocks to turn ON*/
+	jam 0xb7,rfen_sn
+	nop 10 /* wait tx lo buffer to turn ON*/
+	jam 0x7d, rfen_mdm
+	fetch 1,mem_tx_power
+//	beq TX_POWER_0DB,p_set_tx_power_0db
+//	beq TX_POWER_3DB,p_set_tx_power_3db	
+//	beq TX_POWER_5DB,p_set_tx_power_5db
+//	beq TX_POWER_f3DB,p_set_tx_power_f3db	
+	beq TX_POWER_f5DB,p_set_tx_power_f5db
+//	beq TX_POWER_PAIR,p_set_tx_power_pair
+	branch p_set_tx_power_5db
+/*
+p_set_tx_power_0db:
+	call p_rx_low_sens
+	jam 0xba,0x894b
+	jam 0xd0,0x8955
+	jam 0xe0,0x8956
+	jam 0x88,0x8957
+	jam 0x6c,0x8958
+	jam 0x10,0x8959
+	branch set_tx_power_0db
+*/	
+/*
+p_set_tx_power_3db:
+	call p_rx_high_sens
+	jam 0xba,0x894b
+	jam 0xd0,0x8955
+	jam 0xe0,0x8956
+	jam 0x88,0x8957
+	jam 0x3c,0x8958
+	jam 0x10,0x8959
+	branch set_tx_power_3db
+*/	
+p_set_tx_power_5db:
+//	call p_rx_high_sens
+	jam 0xba,0x894b
+	jam 0xd0,0x8955
+	jam 0xe0,0x8956
+	jam 0x88,0x8957
+	jam 0x3c,0x8958
+	jam 0x10,0x8959
+	branch set_tx_power_5db
+/*
+p_set_tx_power_f3db:
+	call p_rx_low_sens
+	jam 0xba,0x894b
+	jam 0xd0,0x8955
+	jam 0xc0,0x8956
+	jam 0x88,0x8957
+	jam 0x6c,0x8958
+	jam 0x10,0x8959
+	branch set_tx_power_f3db
+*/	
+p_set_tx_power_f5db:
+//	call p_rx_low_sens
+	jam 0xba,0x894b
+	jam 0xd0,0x8955
+	jam 0xc0,0x8956
+	jam 0x88,0x8957
+	jam 0x6c,0x8958
+	jam 0x10,0x8959
+	branch set_tx_power_f5db
+/*
+p_rx_low_sens:
+	jam 0x5b,0x894c
+	jam 0x96,0x894d
+	jam 0x2c,0x894e 
+	jam 0x46,0x894f
+	rtn
+
+p_rx_high_sens:
+	jam 0xfb,0x894c 
+	jam 0xef,0x894d
+	jam 0xec,0x894e 
+	jam 0x5e,0x894f
+	rtn
+		
+p_set_tx_power_pair:	//50-100cm distance
+	jam 0xba,0x894b
+ 	jam 0xc2,0x8956
+ 	jam 0xd0,0x8955
+	rtn
+*/	
+p_soft_reset:
+	clear_stack
+	hfetch 1,core_config	//enable watchdog
+	set1 watchdog_bit,pdata
+	hstore 1,core_config
+	call spi_ncs_gpio_init  // 0xff disable spi ncs gpio init
+	jam 0x86,0x895b
+	jam 0xa0,0x895c
+	branch soft_reset+3
+
+p_shutdown_radio:
+	force 8,radio_ctrl
+	branch shutdown_radio+1
+
+/* ================================== 24g common functions ============================= */
+p_rssi_noise:
+	call save_rssi
+	rtn blank
+	fetcht 1,mem_rssi_noise_index
+	arg mem_rssi_noise_buffer,rega
+	call p_rssi_store
+	storet 1,mem_rssi_noise_index
+	rtn
+	
+p_rssi_store:
+	copy rega,pdata
+	iadd temp,contw
+	fetch 1,mem_rssi
+	istore 1,contw
+	increase 1,temp
+ifdef DONGLE
+	and_into RSSI_BUF_LEN_NOISE,temp
+endif
+ifdef MOUSE
+	and_into RSSI_BUF_LEN_SIGNAL,temp
+endif
+	rtn
+p_rssi_average:
+	arg 0,temp
+ifdef DONGLE
+	arg RSSI_BUF_LEN_NOISE+1,loopcnt
+endif
+ifdef MOUSE
+	arg RSSI_BUF_LEN_SIGNAL+1,loopcnt
+endif
+	copy rega,contr
+ifdef DONGLE
+	branch rssi_average_loop
+endif
+ifdef MOUSE
+p_rssi_average_loop:
+	ifetch 1,contr
+	iadd temp,temp
+	loop p_rssi_average_loop
+	rshift3 temp,pdata
+	copy pdata,temp
+	rtnmark0 mark_24g
+	//2BCD
+	div pdata,10
+	call wait_div_end
+	quotient pdata
+	lshift4 pdata,pdata
+	remainder temp
+	ior temp,temp
+	rtn
+endif
+	rtn
+
+p_g24_update_addr_and_synccrc8:	
+	store 4,mem_24g_addr
+
+//output: 1BYTE crc8
+p_g24_syncword_crc8:
+	arg 0,rega
+	arg 4,loopcnt
+	arg mem_24g_addr,contr
+p_g24_syncword_crc8_loop:
+	ifetch 1,contr
+	iadd rega,rega
+	loop p_g24_syncword_crc8_loop
+	copy rega,pdata
+	store 2,mem_24g_syncword
+	fetch 1,mem_24g_syncword
+	fetcht 1,mem_24g_syncword+1
+	iadd temp,pdata
+	store 1,mem_24g_syncword_crc8
+	rtn
+
+
+p_g24_transmit_prep:
+// total length
+	fetch 1,mem_24g_datalen
+	increase 2,pdata
+	store 1,mem_24g_txlen
+// data type
+	fetch 1,mem_24g_data_type
+	store 1,mem_24g_txpayload
+//prepare 5bit payload length, 2bit PID, 1bit NO_ACK
+	fetch 1,mem_24g_datalen
+	lshift3 pdata,pdata
+	fetcht 1,mem_24g_pid
+	and temp,0x03,temp
+	lshift temp,temp
+	ior temp,pdata
+	fetcht 1,mem_24g_no_ack
+	iadd temp,pdata
+	istore 1,contw
+//prepare payload data
+	fetch 1,mem_24g_datalen
+	iforce loopcnt
+	arg mem_24g_txbuf,contr
+	branch memcpy
+
+p_g24_ch:
+	fetcht 1,mem_24g_current_ch_number
+	call p_g24_ch_map_size
+	storet 1,mem_24g_current_ch_number
+	rtn
+
+p_g24_ch_map_size:
+	call p_g24_ch_calc
+	increase 1,temp
+	and_into 3,temp //map size =4
+	rtn
+	
+p_g24_ch_calc:
+	fetch 1,mem_24g_addr	
+	and_into 0x03,pdata
+	mul32 pdata,4,rega			//24addr low bit0 bit1 ,00-map1,01-map2,10-map3,11-map4
+	setarg mem_24g_ch_map1
+	iadd rega,pdata
+	iadd temp,contr
+	ifetch 1,contr
+	store 1,mem_24g_ch
+	rtn
+
+p_g24_prep:
+	disable enable_crc
+	disable enable_white
+	setarg 0x555555
+	iforce crc24_init
+	fetch 1,mem_24g_ch
+	reverse pdata,temp
+	set1 1,temp
+	rshift temp,white_init
+	rtn
+
+p_g24_receive_packet:
+	call le_enable
+	fetch 4,mem_24g_addr
+	iforce access
+	call set_sync_on
+	fetcht 1,mem_24g_ch
+	call set_freq_rx
+	setarg param_pll_setup
+	call sleep
+	call rf_rx_enable
+p_g24_receive_rxon:
+	call p_g24_prep
+	disable user3
+	enable decode_fec0	
+	enable is_rx
+	disable is_tx
+	enable swfine
+	fetch 2,mem_24g_rx_window
+	iforce stop_watch
+	correlate null,timeout
+	nbranch p_g24_sync_timeout,sync
+	disable decode_fec0
+	enable decode_fec1
+	enable enable_white
+	enable enable_crc
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	store 1,mem_24g_get_syncword_crc8
+	fetcht 1,mem_24g_syncword_crc8
+	isub temp,null
+	nbranch p_g24_end_of_packet,zero
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	store 1,mem_24g_rxbuf	//device id
+	fetch 1,mem_24g_mode
+	sub pdata,rx_24g,null
+	branch p_g24_receive_skip,zero
+	fetch 1,mem_24g_rxbuf
+	fetcht 1,mem_24g_data_type
+	icompare bits_data,temp
+	nbranch p_g24_end_of_packet,true
+p_g24_receive_skip:
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	istore 1,contw
+	rshift3 pdata,pdata
+	and pdata,0x1f,loopcnt	//max payload: 32bytes
+	branch p_g24rx_nopayload,zero
+p_g24rx_loop:
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	istore 1,contw
+	loop p_g24rx_loop
+p_g24rx_nopayload:
+ifdef MOUSE
+	//receive rssi hex
+	copy contw,rega
+	parse demod,bucket,8
+	rshift3 pwindow,pdata
+	store 1,mem_rssi_hex_received
+	copy rega,contw
+endif
+	parse demod,bucket,24
+	enable swfine
+	arg param_sifs,stop_watch	
+	rshift32 pdata,pdata
+	rshift16 pdata,pdata
+	istore 3,contw
+	disable decode_fec1
+ifdef DONGLE
+	call save_rssi
+endif	
+	branch p_g24_end_of_packet,crc_failed
+	enable user3
+	fetch 1,mem_last_freq
+	add pdata,0,rega
+	call rf_write_freq
+	disable decode_fec0
+	call set_sync_on
+ifdef DONGLE
+	rtn
+endif
+ifdef MOUSE
+	fetch 1,mem_rssi_hex_received
+	copy pdata,rega
+	call p_rssi_signal
+endif
+	rtn
+	
+p_g24_end_of_packet:
+	disable encode_fec1
+	disable decode_fec1
+	branch end_of_packet
+
+p_g24_sync_timeout:
+ifdef DONGLE
+	call p_rssi_noise
+endif	
+	branch p_g24_end_of_packet
+
+p_g24_set_freq_tx:
+	call set_sync_on
+	fetcht 1,mem_24g_ch
+	branch set_freq_tx
+
+p_g24_transmit:
+	call le_enable
+	fetch 4,mem_24g_addr
+	iforce access
+	call p_g24_prep
+	call p_g24_set_freq_tx
+	set1 TXGFSK,radio_ctrl
+	enable encode_fec0
+	enable is_tx
+	disable is_rx
+	rshift16 access,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,pdata
+	inject mod,40
+	disable encode_fec0
+	enable encode_fec1
+	enable enable_white
+	enable enable_crc
+	fetch 1,mem_24g_syncword_crc8
+	inject mod,8
+	fetch 1,mem_24g_txlen
+	iforce loopcnt
+	arg mem_24g_txpayload,contr
+p_g24tr_loop:
+	ifetch 1,contr
+	inject mod,8
+	loop p_g24tr_loop
+ifdef DONGLE
+	fetch 1,mem_rssi_hex
+	inject mod,8
+endif
+	enable enable_parity
+	inject mod,24	//crc
+	disable enable_parity
+	until null,tx_clear
+	nop 100
+	disable encode_fec0
+	disable encode_fec1
+	rtn
+
+endif
+
+
Index: readme.txt
===================================================================
--- /branch/USB/dongle_sdk/readme.txt	(revision 0)
+++ /branch/USB/dongle_sdk/readme.txt	(working copy)
@@ -0,0 +1,2 @@
+鍙屽嚮鈥渄_sdk.bat鈥濈紪璇
+鍙屽嚮鈥淵C_Download.bat鈥濈紪璇戜笅杞
Index: rom/app.prog
===================================================================
--- /branch/USB/dongle_sdk/rom/app.prog	(revision 0)
+++ /branch/USB/dongle_sdk/rom/app.prog	(working copy)
@@ -0,0 +1,576 @@
+app_init:
+	bpatch patch18_4,mem_patch18
+	fetch 1,mem_device_option
+	branch app_init,blank				/* wait ram to be initialized */
+//	beq dvc_op_ukey,le_ukey_init
+	beq dvc_op_dongle,dongle_init
+	beq dvc_op_AntiLost,antilost_init
+	beq dvc_op_shutter,shutter_init
+	beq dvc_op_module,module_init
+	beq dvc_op_car,car_init
+	beq dvc_op_remote_car,remote_car_init
+	bbit1 dvc_op_mouse,mouse_init
+	rtn
+	
+app_lpm_init:
+	bpatch patch18_5,mem_patch18
+	jam 0,mem_tester_emulate
+	jam 0,mem_debug_config
+	jam 0, mem_lch_code
+	setarg 0
+	store 5,mem_sp_state_start
+	fetch 1,mem_device_option
+	branch app_lpm_init,blank				/* wait ram to be initialized */
+	beq dvc_op_module,module_lpm_init
+app_lpm_init0:
+	rtn
+
+	
+app_process_idle:
+	call ui_dispatch
+	call check_51cmd
+	call app_process_bb_event
+	fetch 2,mem_cb_idle_process
+	branch callback_func
+	
+app_process_bt:
+	fetch 2,mem_cb_bt_process
+	branch callback_func
+	
+app_process_ble:
+	fetch 2,mem_cb_le_process
+	branch callback_func
+
+app_process_bb_event:
+	bpatch patch18_6,mem_patch18
+	//return if c51 need to process bb event
+	arg mem_ipc_fifo_bt2c51,rega
+	call fifo_out
+	rtn blank
+	//reaching here mains c51 cannot get bb event.
+	copy pdata,regc
+	call app_event_normal_process
+	branch app_process_bb_event_priority
+	
+app_discard_event:
+	arg 0,regc
+	rtn
+
+//************************************************//
+//*APP BB EVENT NORMAL PROCESS**//
+//************************************************//
+app_event_normal_process:
+	beq BT_EVT_BB_CONNECTED,app_evt_bt_conn
+	beq BT_EVT_BUTTON_LONG_PRESSED,app_evt_button_long_pressed
+	beq BT_EVT_SETUP_COMPLETE,app_evt_setup_complete
+	beq BT_EVT_HID_HANDSHAKE,app_evt_hid_handshake
+	beq BT_EVT_HID_CONNECTED,app_bb_event_hid_connected
+	beq BT_EVT_RECONN_FAILED,app_bb_event_reconn_failed
+	beq BT_EVT_BB_DISCONNECTED,app_bb_event_bb_disconn
+	beq BT_EVT_RECONN_PAGE_TIMEOUT,app_bb_event_reconn_failed	
+	beq BT_EVT_LE_CONNECTED,app_le_event_bb_connected
+	beq BT_EVT_LE_DISCONNECTED,app_le_event_bb_disconn
+	beq BT_EVT_RECONN_STARTED,app_event_reconn_start
+	beq BT_EVT_ENTER_SNIFF,app_event_enter_sniff
+	beq BT_EVT_EXIT_SNIFF,app_event_exit_sniff
+	
+	beq BT_EVT_ML2CAP_CONN_REFUSED,app_event_ml2cap_conn_refused
+	beq BT_EVT_LINKKEY_GENERATE,app_event_linkkey_generate
+	beq BT_EVT_SWITCH_FAIL_MASTER,app_event_switch_fail_master
+	beq BT_EVT_SWITCH_SUCCESS_MASTER,app_event_switch_success
+	rtn
+
+
+app_evt_bt_conn:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_CONNECTED,pdata
+	store 2,mem_ui_state_map
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set0 APP_DISC_BY_BUTTON ,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+
+app_event_switch_success:
+	jam 0,mem_switch_fail_master_count
+	rtn	
+
+app_event_switch_fail_master:
+	fetch 1,mem_switch_fail_master_count
+	increase 1,pdata
+	store 1,mem_switch_fail_master_count
+	sub pdata,1,null
+	branch app_bt_role_switch,positive
+	jam 0,mem_switch_fail_master_count
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_SWITCH_FAIL,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	branch app_bt_disconnect
+	
+app_process_bb_event_priority:
+	fetch 2,mem_cb_bb_event_process
+	branch callback_func
+
+app_check_wake_lock:
+	fetch 2,mem_cb_check_wakelock
+	branch callback_func
+	
+app_will_enter_lpm:
+	fetch 2,mem_cb_before_lpm
+	branch callback_func
+
+app_event_linkkey_generate:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_AFTER_PAIRING ,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	branch app_bt_store_reconn_info
+	
+app_event_reconn_start:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_RECONNECT,pdata
+	store 2,mem_ui_state_map
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_AFTER_RECONN,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+
+app_evt_setup_complete:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_SETUP_COMPLETE,pdata
+	store 2,mem_ui_state_map
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_AFTER_SETUP_DONE,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+
+app_evt_hid_handshake:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_HID_HANDSHAKE,pdata
+	store 2,mem_ui_state_map
+	rtn
+	
+app_event_enter_sniff:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_SNIFF,pdata
+	store 2,mem_ui_state_map
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_AFTER_SNIFF,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+	
+app_event_exit_sniff:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BT_SNIFF,pdata
+	store 2,mem_ui_state_map
+	rtn
+
+app_le_event_bb_connected:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BLE_CONNECTED,pdata
+	store 2,mem_ui_state_map
+	rtn
+	
+app_le_event_bb_disconn:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BLE_CONNECTED,pdata
+	store 2,mem_ui_state_map
+	branch app_lpm_mult_disable
+	
+app_bb_event_hid_connected:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_HID_CONN,pdata
+	store 2,mem_ui_state_map
+	rtn
+
+app_evt_button_long_pressed:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_BY_BUTTON,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+	
+app_event_ml2cap_conn_refused:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_L2CAP_REFUSED,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	branch  app_bt_disconnect
+
+
+app_evt_timer:
+	bpatch patch18_7,mem_patch18
+	store 1,mem_app_evt_timer_count
+app_evt_100ms_loop:
+	fetch 1,mem_app_evt_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_app_evt_timer_count
+	call ui_button_polling
+	call app_lpm_wake_auto_lock_timer
+	call app_unsniff_delay_timer
+	call app_discovery_timer
+	call flash_write_spi_sm_timer
+	fetch 2,mem_cb_event_timer
+	call callback_func
+	branch app_evt_100ms_loop
+
+
+//regc:timer addr
+//regb:timer up call back fuction
+timer_single_step:
+	ifetch 1,regc
+	rtn blank
+	pincrease -1
+	istore 1,regc
+	nrtn blank
+	copy regb,pdata
+	branch callback_func
+
+//regc:timer addr
+//regb:timer up call back fuction
+timer_single_step_2B:
+	ifetch 2,regc
+	rtn blank
+	pincrease -1
+	istore 2,regc
+	nrtn blank
+	copy regb,pdata
+	branch callback_func
+	
+app_power_timer:
+	fetcht 2,mem_power_param_ptr
+	add temp,power_timer_offset,regc
+	arg app_power_timer_timeout,regb
+	branch timer_single_step
+	
+app_power_timer_timeout:
+	call app_got_power_state_common
+	beq POWER_STARTING,app_enter_power_stanby_state
+app_enter_power_off_state:
+	branch app_enter_hibernate
+app_enter_power_stanby_state:
+	setarg POWER_STANDBY
+	istore 1,regc
+	add temp,power_standby_cb_offset,regb
+app_power_cb_common:
+	ifetch 2,regb
+	branch callback_func
+
+app_unsniff_delay_timer:
+	arg mem_unsniff2sniff_timer_count,regc
+	arg app_unsniff_delay_timeout,regb
+	branch timer_single_step
+	
+app_unsniff_delay_timeout:
+	call context_check_idle
+	branch app_bt_enter_sniff,zero
+	rtn
+
+
+app_discovery_timer:
+	arg mem_discovery_timeout_timer_count,regc
+	arg app_discovery_timeout,regb
+	branch timer_single_step_2B
+	
+app_discovery_timeout:
+	call app_bt_stop_discovery
+	call app_led_off
+	fetch 2,mem_cb_discovry_timeout
+	branch callback_func
+
+	
+app_bb_event_reconn_failed:
+	call app_disconn_reason_flag_clear
+app_clear_reconnect_flag:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BT_RECONNECT,pdata
+	store 2,mem_ui_state_map
+	rtn
+
+app_bb_event_bb_disconn:
+	jam 0,mem_unsniff2sniff_timer_count
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_RECONNECT,app_bb_event_bb_reconn_disconn
+	isolate0 UI_STATE_BT_SETUP_COMPLETE,pdata
+ 	call app_discard_event,true
+app_bb_event_bb_reconn_disconn:
+	bpatch patch19_0,mem_patch19
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BT_CONNECTED,pdata
+	set0 UI_STATE_BT_SETUP_COMPLETE,pdata
+	set0 UI_STATE_BT_HID_CONN,pdata
+	set0 UI_STATE_BT_HID_HANDSHAKE,pdata
+	set0 UI_STATE_BT_RECONNECT,pdata
+	store 2,mem_ui_state_map
+	branch app_lpm_mult_disable
+	
+app_bb_hibernate:
+	call app_disconn_reason_clear
+	branch app_enter_hibernate
+
+	
+app_disconn_reason_clear:
+	setarg 0
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	rtn
+app_disconn_reason_flag_clear:
+	setarg 0
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+
+app_disconn_reason_collect_bt:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	setarg 0
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+	
+app_disconn_reason_collect_ble:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set1 APP_DISC_BLE,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	setarg 0
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	rtn
+
+	
+//************************************************//
+//********APP SHARED FUNCSIONS*******//
+//************************************************//
+
+
+app_check_sniff:
+	fetch 1,mem_ui_state_map
+	isolate1 UI_STATE_BT_SNIFF,pdata
+	rtn
+
+//*****************************************//
+//*****************API********************//
+//*****************************************//
+//app_clearflag_store:
+//	setarg 0
+//	branch app_flag_store
+app_initflag_store:
+	setarg EEPROM_INIT_FLAG
+app_flag_store:
+	store 2,mem_timeup
+	bpatch patch19_1,mem_patch19
+	arg 2,temp
+	arg mem_timeup,rega
+	arg eeprom_module_init_flag,regb
+	branch iicd_write_eep_data
+
+//initflag is in eeprom to sure is eeprom nead to init
+app_initflag_check:
+	bpatch patch19_2,mem_patch19
+	arg 2,temp
+	arg mem_pdatatemp,rega
+	arg eeprom_module_init_flag,regb
+	call iicd_read_eep_data
+	fetch 2,mem_pdatatemp
+	arg EEPROM_INIT_FLAG,temp
+	isub  temp,null
+	rtn
+
+
+app_start_auto_sniff:
+	fetch 1,mem_unsniff2sniff_timer
+	store 1,mem_unsniff2sniff_timer_count
+	rtn	
+	
+app_get_lpm_wake_lock:
+	arg wake_lock_app,queue
+	branch lpm_get_wake_lock
+
+app_put_lpm_wake_lock:
+	arg wake_lock_app,queue
+	branch lpm_put_wake_lock
+	
+app_lpm_wake_auto_lock:
+	jam  LPM_WAKE_UP_DELAY_TIMER,mem_wake_up_delay_timer
+	branch app_get_lpm_wake_lock
+	
+app_lpm_wake_auto_lock_timer:
+	arg mem_wake_up_delay_timer,regc
+	arg app_put_lpm_wake_lock,regb
+	branch timer_single_step
+
+app_l2cap_flow_control_enable:
+	jam L2CAP_FLOW_CTRL_ENABLE,mem_l2cap_flow_ctrl_flag
+	rtn
+
+app_l2cap_flow_control_disable:
+	jam L2CAP_FLOW_CTRL_DISABLE,mem_l2cap_flow_ctrl_flag
+	rtn
+	
+app_bt_set_pincode:
+	jam BT_CMD_SET_PIN_CODE,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_bt_role_switch:
+	jam BT_CMD_ROLE_SWITCH,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_bt_start_reconnect:
+	bpatch patch19_3,mem_patch19
+	fetch 1,mem_app_connection_options
+	store 1,mem_connection_options
+	jam APP_FLAG_RECONNECT,mem_reconnect_flag
+	jam BT_CMD_RECONNECT,mem_fifo_temp
+	branch ui_ipc_send_cmd	
+	
+app_bt_reconnect_cancel:
+	jam BT_CMD_BB_RECONN_CANCEL,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_bt_disconnect:
+	jam BT_CMD_DISCONNECT,mem_fifo_temp
+	branch ui_ipc_send_cmd	
+
+app_bt_start_discovery_short:
+	fetch 2,mem_discovery_timeout
+	store 2,mem_discovery_timeout_timer_count
+app_bt_start_discovery_led_blink:
+	call app_led_start_blink
+app_bt_start_discovery:
+	jam BT_CMD_START_DISCOVERY,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_bt_stop_discovery:
+	setarg 0
+	store 2,mem_discovery_timeout_timer_count
+	jam BT_CMD_STOP_DISCOVERY,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_start_direct_adv:
+	jam BT_CMD_START_DIRECT_ADV,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_ble_stop_direct_adv:
+	jam BT_CMD_STOP_DIRECT_ADV,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_stop_adv:
+	jam BT_CMD_STOP_ADV,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_start_adv:	
+	jam BT_CMD_START_ADV,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_start_scan:
+	jam BT_CMD_LE_START_SCAN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_stop_scan:
+	jam BT_CMD_LE_STOP_SCAN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_start_conn:
+	jam BT_CMD_LE_START_CONN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_ble_disconnect:
+	jam BT_CMD_LE_DISCONNECT,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_led_start_blink:	
+	jam BT_CMD_LED_BLINK,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_led_on:
+	jam BT_CMD_LED_ON,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_led_stop_blink:
+app_led_off:
+	jam BT_CMD_LED_OFF,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+app_enter_hibernate:
+	jam BT_CMD_ENTER_HIBERNATE,mem_fifo_temp 
+	branch ui_ipc_send_cmd
+	
+app_bt_sniff_exit:
+	jam BT_CMD_EXIT_SNIFF,mem_fifo_temp
+	branch  ui_ipc_send_cmd
+	
+app_bt_enter_sniff:
+	jam BT_CMD_ENTER_SNIFF,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_ble_store_reconn_info:
+	jam BT_CMD_STORE_RECONN_INFO_LE,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_bt_store_reconn_info:
+	jam BT_CMD_STORE_RECONN_INFO_BT,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_store_reconn_info:
+	jam BT_CMD_STORE_RECONN_INFO,mem_fifo_temp
+	branch ui_ipc_send_cmd
+
+app_lpm_mult_enable:
+	set1 mark_lpm_mult_enable,mark
+	rtn
+
+app_lpm_mult_disable:
+	set0 mark_lpm_mult_enable,mark
+	rtn
+
+
+/*
+
+mem_power_param struct
+{
+	usigned char     mem_power_state
+	usigned char     mem_power_timer
+	usigned char	 mem_power_off_timeout
+	usigned char	 mem_power_starting_timeout
+	usigned long	 mem_power_off_cb
+	usigned long	 mem_power_starting_cb
+	usigned long	 mem_power_standby_cb
+	usigned long 	 mem_ui_butten_up_cb
+}
+    	functions:power state switching by mem_app_power_timer timeout or by button_long_pressed event
+    	(power off -> power starting->power standby->power off) and power timer initialization 
+ input parameters:mem_power_param_ptr should be point to the variable(mem_power_param) address where the input parameters stored in with its format
+output parameters:switched power state will be stored in variable mem_power_state*/
+app_button_long_pressed:
+	call app_got_power_state_common
+	beq POWER_STANDBY,app_power_shutting_down
+app_power_starting:
+	setarg POWER_STARTING
+	istore 1,regc
+	add temp,power_starting_timeout_offset,rega
+	add temp,power_starting_cb_offset,regb
+app_power_common:
+	ifetcht 1,rega
+	increase 1,regc
+	istoret 1,regc
+	branch app_power_cb_common
+	
+app_power_shutting_down:
+	setarg POWER_OFF
+	istore 1,regc
+	fetch 2,mem_ui_state_map
+	bbit0 UI_STATE_BLE_CONNECTED,app_power_off_end
+	call app_ble_disconnect
+app_power_off_end:
+	fetcht 2,mem_power_param_ptr
+	add temp,power_off_timeout_offset,rega
+	add temp,power_off_cb_offset,regb
+	branch app_power_common
+	
+app_got_power_state_common:
+	fetcht 2,mem_power_param_ptr
+	add temp,power_state_offset,regc
+	ifetch 1,regc
+	rtn
+
+app_event_button_up:
+	call app_got_power_state_common
+	bne POWER_OFF,app_power_release
+	branch app_enter_hibernate
+app_power_release:
+	add temp,ui_butten_up_cb_offset,regb
+	branch app_power_cb_common
+
Index: rom/app_mouse.prog
===================================================================
--- /branch/USB/dongle_sdk/rom/app_mouse.prog	(revision 0)
+++ /branch/USB/dongle_sdk/rom/app_mouse.prog	(working copy)
@@ -0,0 +1,2660 @@
+
+
+//define FPGA_DEBUG
+
+
+ifdef COMPILE_MOUSE
+mouse_init:
+	call mouse_setting_config
+	call spi_ncs_enable
+	call mouse_init_sunt
+	call mouse_dpi_config
+	call spi_ncs_disable
+	rtn wake
+	call mouse_cheak_enable_usb
+	call mouse_cb_fuction
+//	fetch 1,mem_wakup_from_power_flag
+//	isolate0 gpio_latch,pdata
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_USB
+	call mouse_wakeup_from_power//,true	// enter 
+ifdef FPGA_DEBUG
+	arg MOUSE_FPGA_DEBUG_GPIO,temp
+	call gpio_config_output
+	arg MOUSE_FPGA_RF_WORK_DEBUG_GPIO,temp
+	call gpio_config_output
+	arg MOUSE_FPGA_DEBUG_GPIO,temp
+	call gpio_out_active
+endif
+	rtnmark1 mark_24g
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
+	branch mouse_check_reconn_target
+
+
+mouse_delay_4s:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_INIT_DELAY
+	arg 20,loopcnt
+mouse_delay_20ms:
+	setarg 200000
+	call sleep
+	loop delay_10ms
+	rtn
+
+	
+mouse_cheak_enable_usb:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	branch usb_init
+	
+
+mouse_cb_fuction:
+	setarg mouse_le
+	store 2,mem_cb_le_process
+	setarg mouse_send_process
+	store 2,mem_cb_bt_process
+	setarg mouse_process_lpm_before
+	store 2,mem_cb_before_lpm
+	setarg mouse_priority_bb_event
+	store 2,mem_cb_bb_event_process
+	setarg mouse_idle
+	store 2,mem_cb_idle_process
+	setarg mouse_before_hibernate
+	store 2,mem_cb_before_hibernate
+	setarg le_mouse_bb_event_connect_complete
+	store 2,mem_cb_att_write
+
+	call g24_head_ptr2regc
+	setarg mouse_g24_package_data
+	add regc,offset_24g_cb_data,contw
+	istore 2,contw
+	setarg mouse_g24_enter_lpm
+	add regc,offset_24g_cb_lpm_prepare,contw
+	istore 2,contw
+	setarg mouse_lpm_before_common
+	add regc,offset_24g_cb_lpm_before,contw
+	istore 2,contw
+	
+	setarg mouse_bb_event_timer
+	store 2,mem_cb_event_timer
+	setarg mouse_spi_write_flash_cb
+	store 2,mem_cb_spi_flash_write_complate
+	rtn
+mouse_spi_write_flash_cb:
+mouse_spi_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_SPI2,spid_init
+	branch spid_init2
+
+mouse_setting_config:
+	rtn wake
+	call g24_set_device_addr
+	call mouse_gpio_init
+	call mouse_param_init
+	call mouse_adc_init
+	call le_set_config_fixed_ltk
+	call le_set_justwork
+	call le_set_fixed_ltk
+	call le_set_config_read_authentication
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_init_iic
+	bbit1 MOUSE_ENABLE_FLASH,mouse_load_flash_info_cheak
+	rtn
+
+mouse_init_iic:
+	call iic_init_390k
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_ENABLE_2K_EEPROM,pdata
+	ncall clear_eeprom_size_2k,true
+	call mouse_load_eeprom_dpi
+	call mouse_init_environment
+	call mouse_set_24g_addr_eeprom
+	branch iicd_read_eep_data
+
+mouse_wakeup_from_power:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_WAKEUP_FROM_POWER,mouse_wakeup_no_from_power
+	fetch 1,mem_wakup_from_power_flag
+	isolate0 gpio_latch,pdata
+	nrtn true
+mouse_wakeup_no_from_power:
+	fetch 1,mem_reconn_times_init
+	store 1,mem_reconn_times
+	fetch 1,mem_config_function_enable
+	rtnbit1 ENABLE_SELECT_DEVICE_BY_SWITCH
+mouse_start_24g_mode:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,g24_auto_pair_start
+	branch g24_check_51cmd_start_24g
+le_mouse_bb_event_connect_complete:
+	fetch 1,mem_le_att_handle
+	sub pdata,26,pdata
+	nrtn zero
+	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
+	call ui_ipc_send_cmd
+mouse_le_write_enable:	
+	arg WRITE_REQ_ENABLE_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_dpi_up:
+	fetch 1,mem_mouse_dpi_button_state
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state
+	rtn
+mouse_dpi_config:
+	fetch 1,mem_config_sensor_motion
+	and pdata,0x0f,pdata
+	store 1,mem_mouse_dpi
+	branch mouse_seting_dpi+2
+
+
+mouse_dpi_cheak:
+	fetcht 1,mem_dpi_button_gpio
+	call gpio_get_bit
+	nbranch mouse_dpi_up,true
+mouse_dpi_down:
+	fetch 1,mem_mouse_dpi_button_state
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_mouse_dpi_button_state
+	fetch 1,mem_mouse_dpi
+	increase 1,pdata
+	and pdata,0x03,pdata
+	store 1,mem_mouse_dpi
+	call mouse_seting_dpi
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eerpom_dpi
+	bbit1 MOUSE_ENABLE_FLASH,mouse_before_store_flash_cpi
+	rtn
+mouse_before_store_flash_cpi:
+	arg MOUSE_SPI2_CLK_GPIO,temp
+	call gpio_config_output				//hold high
+	arg MOUSE_SPI2_SDIO_GPIO,temp
+	call gpio_config_output 			//hold high 
+	branch mouse_store_flash_device_info
+
+mouse_seting_dpi:
+	bpatch patch1c_3,mem_patch1c
+	call mosue_dpi_led_blink_init
+	fetch 1,mem_config_sensor_type
+	beq P3610,mouse_seting_3610_dpi
+	beq P3212,mouse_seting_3212_dpi
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_cpi1
+	beq MOUSE_DPI_LEVEL2,mouse_set_cpi2
+	beq MOUSE_DPI_LEVEL3,mouse_set_cpi3
+	beq MOUSE_DPI_LEVEL4,mouse_set_cpi4
+mouse_set_cpi2:
+	fetch 1,mem_320x_dpi_2
+	branch mouse_p3205_dpi
+mouse_set_cpi1:
+	fetch 1,mem_320x_dpi_1
+	branch mouse_p3205_dpi
+mouse_set_cpi3:
+	fetch 1,mem_320x_dpi_3
+	branch mouse_p3205_dpi
+mouse_set_cpi4:
+	fetch 1,mem_320x_dpi_4
+	branch mouse_p3205_dpi
+moue_seting_cpi_count:
+	fetch 1,mem_config_sensor_type
+	rtneq P3065_XY
+	fetch 1 ,mem_mouse_cpi_count
+	increase 1,pdata
+	store 1,mem_mouse_cpi_count
+	rtn
+
+mouse_seting_3212_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_p3212_cpi1
+	beq MOUSE_DPI_LEVEL2,mouse_set_p3212_cpi2
+	beq MOUSE_DPI_LEVEL3,mouse_set_p3212_cpi3
+	beq MOUSE_DPI_LEVEL4,mouse_set_p3212_cpi4
+mouse_set_p3212_cpi2:
+	fetch 1,mem_3212_dpi_2
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi1:
+	fetch 1,mem_3212_dpi_1
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi3:
+	fetch 1,mem_3212_dpi_3
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi4:
+	fetch 1,mem_3212_dpi_4
+mouse_p3212_dpi:
+	store 1,mem_mouse_cpi_count
+	lshift8 pdata,pdata
+	copy pdata,rega
+	add pdata,MOUSE_P3212_DPI_XADDRESS,pdata
+  	call twspi_write
+ 	copy rega,pdata
+  	add pdata,MOUSE_P3212_DPI_YADDRESS,pdata
+	branch twspi_write
+	
+mouse_seting_3610_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_p3610_cpi1
+	beq MOUSE_DPI_LEVEL2,mouse_set_p3610_cpi2
+	beq MOUSE_DPI_LEVEL3,mouse_set_p3610_cpi3
+	beq MOUSE_DPI_LEVEL4,mouse_set_p3610_cpi4
+mouse_set_p3610_cpi2:
+	fetch 1,mem_3610_dpi_2
+	branch mouse_p3610_dpi
+mouse_set_p3610_cpi1:
+	fetch 1,mem_3610_dpi_1
+	branch mouse_p3610_dpi
+mouse_set_p3610_cpi3:
+	fetch 1,mem_3610_dpi_3
+	branch mouse_p3610_dpi
+mouse_set_p3610_cpi4:
+	fetch 1,mem_3610_dpi_4
+mouse_p3610_dpi:
+	store 1,mem_mouse_cpi_count
+	call mouse_spi_sdio_gpio_pollup
+	fetch 1,mem_mouse_cpi_count
+mouse_reset_p3610_dpi:
+	add pdata,0x80,pdata
+	lshift8 pdata,pdata
+	add pdata,MOUSE_P3610_DPI_ADDRESS,pdata
+	copy pdata,rega
+	branch mouse_set_sensor_reg
+	
+mouse_p3205_dpi:
+	store 1,mem_mouse_cpi_count
+	call moue_seting_cpi_count
+	fetch 1,mem_mouse_cpi_count
+	setarg MOUSE_DPI_ADDRESS
+	call twspi_read
+	and pdata,0xf8,temp
+	fetch 1,mem_mouse_cpi_count
+	iadd temp,pdata
+	lshift8 pdata,pdata
+	add pdata,MOUSE_DPI_ADDRESS,pdata
+	branch twspi_write
+	
+
+mouse_init_environment:
+	call app_initflag_check
+	branch mouse_eeprom_load_recon_info,zero
+	call mouse_ble_init_address
+	call mouse_store_eeprom_device_info
+	branch app_initflag_store
+
+
+mouse_24g_pairing_button:
+	fetch 2,mem_24g_pairing_timer_count
+	rtn blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G
+	rtnbit1 MOSUE_24G_PAIRING_FLAG
+	rtnmark1 mark_24g
+	call mouse_check_key_gpio
+	rtnne MOUSE_LMR_BUTTON
+	call mouse_devce_led_off
+	arg MOSUE_24G_PAIRING_FLAG,queue
+	call mouse_enable_function_flag
+	setarg 0
+	store 2,mem_mouse_direct_timer
+	store 1,mem_mouse_send_blank_timer
+	call g24_set0_mem_check_dongle_times
+	
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_RECONNECT,mouse_cancel_reconnect
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	bbit1 UI_STATE_BT_CONNECTED,app_bt_disconnect
+	call mouse_stop_discovery
+	branch g24_start_pairing_sm1
+	
+ifdef FPGA_DEBUG
+mouse_fpga_rf_working_normal:
+	fetch 1,mem_le_req_rcv
+	and pdata,0xfe,pdata
+	call mouse_fpga_working_fail,blank
+	fetch 1,mem_le_req_rcv
+	and pdata,0xfe,pdata
+	ncall mouse_fpga_working_normal,blank
+//	fetch 1,mem_inquiryscan_rcvcnt
+//	and pdata,0xfe,pdata
+//	call mouse_fpga_working_fail,blank
+//	fetch 1,mem_inquiryscan_rcvcnt
+//	and pdata,0xfe,pdata
+//	ncall mouse_fpga_working_normal,blank
+	rtn
+
+mouse_fpga_working_fail:
+	arg MOUSE_FPGA_RF_WORK_DEBUG_GPIO,temp
+	branch gpio_out_inactive
+
+mouse_fpga_working_normal:
+	arg MOUSE_FPGA_RF_WORK_DEBUG_GPIO,temp
+	branch gpio_out_active
+
+
+
+endif
+
+mouse_idle:
+ifdef FPGA_DEBUG
+	call mouse_fpga_rf_working_normal
+endif
+	call mouse_24g_pairing_button
+	call ui_check_paring_button
+	call mouse_dpi_cheak
+	call mouse_usb_isr
+	call mouse_wheel_check
+	branch mouse_usb_mode
+mouse_usb_isr:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	call usb_isr	
+	branch usb_offline_state
+
+mouse_cheak_usb:
+	hfetch 1,core_usb_addr
+	bbit0 7,mouse_usb_no_exsit
+	bbit1 7,mouse_usb_exsit
+	rtn
+mouse_usb_no_exsit:
+	fetch 1,mem_usb_addr
+	rtnbit0 7
+	branch soft_reset_chip
+mouse_usb_exsit:
+	fetch 1,mem_usb_addr
+	rtnbit1 7
+	branch mouse_stop_bluetooth_mode
+	
+mouse_usb_mode:
+	call mouse_cheak_usb
+	hfetch 1,core_usb_addr
+	store 1,mem_usb_addr
+	rtnbit0 7
+	call mouse_clkn_check 
+	fetch 4,mem_btclk_sensor
+	fetcht 1,mem_wire_usb_interval
+	iadd temp,temp
+	copy clkn_bt,pdata
+	isub temp,null
+	nrtn positive
+	store 4,mem_btclk_sensor
+	call mouse_motion
+	nrtn user
+	jam 4,mem_usb_tx_enable
+	branch mouse_wired_to_usb
+
+mouse_clkn_check:
+	fetcht 4,mem_btclk_sensor
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall mouse_clkn_timeout,positive
+	rtn
+mouse_clkn_timeout:
+	setarg 0
+	store 4,mem_btclk_sensor
+	rtn
+
+
+	
+mouse_wired_to_usb:
+	fetch 1,mem_usb_tx_enable
+	rtnbit0 2
+	branch mouse_data_push
+mouse_data_push:
+	hfetch 1,core_usb_addr
+	rtnbit0 7
+	jam USB_EP2_MS,mem_usb_ep2_data
+	setarg MS_REPORT_ID
+	store 1,mem_usb_mouse_data	
+	fetch 7,mem_mouse_key
+	istore 7,contw
+	rtn
+
+
+mouse_enable_clock_qdecoder:
+	hfetch 2,core_clkoff
+	set0 CLOCK_OFF_QDECODER,pdata
+	hstore 2,core_clkoff
+	rtn
+
+mouse_param_init:
+	setarg 0x8c00				//bt sdp start address
+	store 2,mem_ui_uuid_table
+	setarg 0x8e7a				//ble attlist start address
+	store 2,mem_ui_le_uuid_table
+	setarg 0x2402
+	store 2,mem_fcomp_mul
+	setarg 0x2580
+	store 3,mem_class
+	jam 3,mem_lpm_mult_timeout
+	jam 8,mem_lpm_overhead
+	jam DPI_BUTTON_STATE_UP,mem_select_device_button_statue
+	setarg 0x0200
+	store 2,mem_lpm_interval
+	jam 0x17,mem_le_local_mtu
+	jam 0x17,mem_le_remote_mtu
+//===========init spi param==============================
+	setarg 0x0a77
+	store 2,mem_spi_init_clk
+//===========default bt reconnect address===================	
+//	jam 1,mem_device_flag
+//	setarg 0x332211
+//	store 3,mem_device1_addr
+//	store 3,mem_device2_addr
+//	store 3,mem_device3_addr
+//	setarg 0x665544
+//	store 3,mem_device1_addr+3
+//	store 3,mem_device2_addr+3
+//	store 3,mem_device3_addr+3
+//	setarg 0x34
+//	store 1,mem_device1_type
+//	store 1,mem_device2_type
+//	store 1,mem_device3_type
+//===========all 16bit uuid==================================
+	setsect 0,0x306
+	setsect 1,0x4440
+	setsect 2,0x10000
+	setsect 3,0x4408
+	store 9,mem_all_uuid_16bits
+	setsect 0,0x1224
+	setsect 1,0x4000
+	setsect 2,0x0
+	istore 5,contw
+//===========features=====================================
+	setsect 0,0x3ffff
+	setsect 1,0x2fe23
+	setsect 2,0x199d9
+	setsect 3,0x20d
+	store 8,mem_features
+//======================================================	
+	setarg 0x012c  				//24g ban pairing timer init
+	store 2,mem_24g_pairing_timer_count
+	call le_modified_name
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
+	rtnbit0 MOUSE_ENABLE_GPIO_CONTROL_ADC_SENSOR
+	call mouse_sensor_set_angle
+	branch mouse_select_adc
+
+mouse_sensor_set_angle:
+	fetcht 1,mem_select_sensor_angle_gpio
+	call gpio_config_input
+	fetcht 1,mem_select_sensor_angle_gpio
+	call gpio_get_bit
+	jam MOUSE_3CLK_ANGLE,mem_config_sensor_angle
+	rtn true
+	jam MOUSE_12CLK_ANGLE,mem_config_sensor_angle
+	rtn
+
+mouse_select_adc:
+	fetcht 1,mem_select_adc_gpio
+	call gpio_config_input
+	fetcht 1,mem_select_adc_gpio
+	call gpio_get_bit
+	jam ADC_CONFIG_VINLPM,mem_adc_config_flag
+	rtn true
+	jam ADC_CONFIG_GPIO,mem_adc_config_flag
+	rtn
+	
+	
+mouse_adc_init:
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_VINLPM,mouse_adc_init_data_vinlpm
+	beq ADC_CONFIG_HVIN,mouse_adc_init_data_hvin
+	beq ADC_CONFIG_GPIO,mouse_adc_init_data_io
+	branch mouse_adc_init_data_vinlpm
+	
+mouse_adc_init_data_vinlpm:
+	fetcht 2,mem_2v_adc_vinlpm_data
+	fetch 2,mem_3v_adc_vinlpm_data
+	isub temp,pdata
+	mul32 pdata,20,pdata 
+	div pdata,100
+	call wait_div_end
+	quotient pdata
+	store 2,mem_adc_reference_voltage //vinlpm :2v2 low alter
+	rtn
+mouse_adc_init_data_hvin:
+	fetcht 2,mem_1v_adc_hvin_data
+	fetch 2,mem_5v_adc_hvin_data
+	isub temp,pdata
+	mul32 pdata,230,pdata 
+	div pdata,400
+	call wait_div_end
+	quotient pdata
+	store 2,mem_adc_reference_voltage //hvin :3v3 low alter
+	rtn
+mouse_adc_init_data_io:
+	fetch 2,mem_1v_adc_io_data
+	store 2,mem_adc_reference_voltage  //vio :1v low alter
+	rtn
+mouse_gpio_init:
+	fetcht 1,mem_eeprom_wp_gpio
+	call gpio_config_output
+	call usb_offline_check_init
+	fetcht 1,mem_lbutton_gpio
+	call gpio_config_input
+	fetcht 1,mem_rbutton_gpio
+	call gpio_config_input
+	fetcht 1,mem_mbutton_gpio
+	call gpio_config_input
+	fetcht 1,mem_sensor_data_gpio
+	call gpio_config_input
+
+	fetcht 1,mem_sensor_reset_gpio
+	call gpio_config_output
+
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_config_input
+
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_config_input
+
+	fetcht 1,mem_whee_ta_data_gpio
+	call gpio_config_input
+	fetcht 1,mem_whee_tb_data_gpio
+	call gpio_config_input
+
+	fetcht 1,mem_bk_button_gpio
+	call gpio_config_input
+	fetcht 1,mem_fw_button_gpio
+	call gpio_config_input
+
+	fetcht 1,mem_config_low_voltage_alarm_gpio
+	call gpio_config_output
+
+	fetcht 1,mem_config_device1_led_gpio
+	call gpio_config_output
+
+	fetcht 1,mem_config_device2_led_gpio
+	call gpio_config_output
+	
+	fetcht 1,mem_config_device3_led_gpio
+	call gpio_config_output
+
+	fetcht 1,mem_dpi_led_gpio
+	call gpio_config_output
+
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_config_input
+	
+	fetcht 1,mem_config_bt_button_gpio
+	call gpio_config_input	
+
+	fetcht 1,mem_dpi_button_gpio
+	branch gpio_config_input
+
+mouse_wheel_gpio_set_wake:
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_ta_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_tb_data_gpio
+	branch gpio_set_wake_by_current_state
+	
+mouse_before_hibernate_wheel_gpio_set:
+	fetcht 1,mem_whee_a_data_gpio
+	call mouse_gpio_set_pupd_by_input
+	fetcht 1,mem_whee_b_data_gpio
+	call mouse_gpio_set_pupd_by_input
+	fetcht 1,mem_whee_ta_data_gpio
+	call mouse_gpio_set_pupd_by_input
+	fetcht 1,mem_whee_tb_data_gpio
+	branch mouse_gpio_set_pupd_by_input
+
+mouse_gpio_set_pupd_by_input:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	and temp,0x7f,queue
+	hfetch 4,core_gpio_in
+	qisolate1 pdata
+	hfetch 4,core_gpio_pu0
+	qsetflag true,pdata
+	hstore 4,core_gpio_pu0
+	hfetch 4,core_gpio_pd0
+	nqsetflag true,pdata
+	hstore 4,core_gpio_pd0
+	rtn
+	
+mouse_before_hibernate:
+	enable user
+	hfetch 4,0x8138
+	setflag user,26,pdata
+	hstore 4,core_lpm_reg
+	call lpm_write_ctrl
+	call mouse_devce_led_off
+	call mouse_before_hibernate_wheel_gpio_set
+//	call gpio_set_before_lpm_common
+	branch mouse_lpm_before_common
+
+
+	
+mouse_process_lpm_before:
+	call mouse_lpm_before_common
+	fetch 1,mem_lpm_current_mult
+	nrtn blank					// 7.5ms, no gpio wakeup
+	branch gpio_clr_wake
+
+mouse_lpm_before_common:
+	call mouse_wheel_check
+	arg MOUSE_SPI1_CLK_GPIO,temp					// set sclk high
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_ENABLE_SPI2,pdata
+	call mouse_spi_clk_gpio,true
+	call gpio_config_output
+	call twspi_disable
+
+
+
+	fetcht 1,mem_lbutton_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_rbutton_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_mbutton_gpio
+	call gpio_set_wake_by_current_state
+
+	fetcht 1,mem_bk_button_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_fw_button_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_dpi_button_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_ta_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_tb_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_sensor_data_gpio
+	branch gpio_set_wake
+	
+
+	
+mouse_spi_clk_gpio:
+	arg MOUSE_SPI2_CLK_GPIO,temp
+	rtn
+
+mouse_wheel_check:
+	bpatch patch1c_4,mem_patch1c
+	call mouse_t_wheel_scan
+	call mouse_wheel_scan
+	fetch 1,mem_wheel_tb_new_pinlevel
+	fetcht 1,mem_wheel_tb_old_pinlevel
+	store 1,mem_wheel_tb_old_pinlevel
+	isub temp,null
+	nbranch app_lpm_wake_auto_lock,zero
+	fetch 1,mem_mwheel_b_new_pinlevel
+	fetcht 1,mem_mwheel_b_old_pinlevel
+	store 1,mem_mwheel_b_old_pinlevel
+	isub temp,null
+	nbranch app_lpm_wake_auto_lock,zero
+	rtn
+mouse_t_wheel_scan:
+	fetch 1,mem_whee_ta_data_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	fetcht 1,mem_whee_ta_data_gpio
+	call gpio_get_bit
+	setflag true,0,rega
+	fetcht 1,mem_whee_tb_data_gpio
+	call gpio_get_bit
+	setflag true,1,rega
+	copy rega,pdata
+	store 1,mem_wheel_tb_new_pinlevel
+	beq 0x01,mouse_t_wheel_scan_judge1
+	beq 0x02,mouse_t_wheel_scan_judge2
+	fetch 1,mem_wheel_tog
+	bbit1 7,mouse_t_wheel_scan_judge3
+	rtn
+
+mouse_t_wheel_scan_judge1:
+	fetch 1,mem_wheel_tb_old_pinlevel
+	beq 0,mouse_t_wheel_scan_judge11
+	beq 3,mouse_t_wheel_scan_judge12
+	rtn
+mouse_t_wheel_scan_judge2:
+	fetch 1,mem_wheel_tb_old_pinlevel
+	beq 0,mouse_t_wheel_scan_judge21
+	beq 3,mouse_t_wheel_scan_judge22
+	rtn
+mouse_t_wheel_scan_judge11:
+	jam 0x82,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge12:
+	jam 0x81,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge21:
+	jam 0x80,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge22:
+	jam 0x83,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge3:
+	fetch 1,mem_wheel_tog
+	set0 7,pdata
+	store 1,mem_wheel_tog
+	beq 0,mouse_t_wheel_scan_judge30
+	beq 1,mouse_t_wheel_scan_judge31
+	beq 2,mouse_t_wheel_scan_judge32
+	beq 3,mouse_t_wheel_scan_judge33
+	rtn
+mouse_t_wheel_scan_judge30:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 3,mouse_wheel_t_forward
+	rtn
+mouse_t_wheel_scan_judge31:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 0,mouse_wheel_t_forward
+	rtn
+mouse_t_wheel_scan_judge32:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 3,mouse_wheel_t_back
+	rtn
+mouse_t_wheel_scan_judge33:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 0,mouse_wheel_t_back
+	rtn
+mouse_wheel_t_forward:
+	fetch 1,mem_mouse_tz_data_count1
+	increase 1,pdata
+	store 1,mem_mouse_tz_data_count1
+	sub pdata,1,null
+	rtn positive
+	jam 0,mem_mouse_tz_data_count1
+	fetch 1,mem_mouse_tz_data
+	increase 1,pdata
+	store 1,mem_mouse_tz_data
+	rtn
+mouse_wheel_t_back:
+	fetch 1,mem_mouse_tz_data_count
+	increase 1,pdata
+	store 1,mem_mouse_tz_data_count
+	sub pdata,1,null
+	rtn positive
+	jam 0,mem_mouse_tz_data_count
+	fetch 1,mem_mouse_tz_data
+	increase -1,pdata
+	store 1,mem_mouse_tz_data
+	rtn
+
+
+mouse_wheel_scan:
+	fetch 1,mem_whee_a_data_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_get_bit
+	setflag true,0,rega
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_get_bit
+	setflag true,1,rega
+	copy rega,pdata
+	store 1,mem_mwheel_b_new_pinlevel
+	beq 0x01,mouse_wheel_scan_judge1
+	beq 0x02,mouse_wheel_scan_judge2
+	fetch 1,mem_mwheel_tog
+	bbit1 7,mouse_wheel_scan_judge3
+	rtn
+
+mouse_wheel_scan_judge1:
+	fetch 1,mem_mwheel_b_old_pinlevel
+	beq 0,mouse_wheel_scan_judge11
+	beq 3,mouse_wheel_scan_judge12
+	rtn
+mouse_wheel_scan_judge2:
+	fetch 1,mem_mwheel_b_old_pinlevel
+	beq 0,mouse_wheel_scan_judge21
+	beq 3,mouse_wheel_scan_judge22
+	rtn
+mouse_wheel_scan_judge11:
+	jam 0x82,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge12:
+	jam 0x81,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge21:
+	jam 0x80,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge22:
+	jam 0x83,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge3:
+	fetch 1,mem_mwheel_tog
+	set0 7,pdata
+	store 1,mem_mwheel_tog
+	beq 0,mouse_wheel_scan_judge30
+	beq 1,mouse_wheel_scan_judge31
+	beq 2,mouse_wheel_scan_judge32
+	beq 3,mouse_wheel_scan_judge33
+	rtn
+mouse_wheel_scan_judge30:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 3,mouse_wheel_forward
+	rtn
+mouse_wheel_scan_judge31:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 0,mouse_wheel_forward
+	rtn
+mouse_wheel_scan_judge32:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 3,mouse_wheel_back
+	rtn
+mouse_wheel_scan_judge33:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 0,mouse_wheel_back
+	rtn
+mouse_wheel_forward:
+	jam 0,mem_mouse_z_data_count1
+	fetch 1,mem_mouse_z_data
+	increase 1,pdata
+	store 1,mem_mouse_z_data
+	rtn
+mouse_wheel_back:
+	jam 0,mem_mouse_z_data_count
+	fetch 1,mem_mouse_z_data
+	increase -1,pdata
+	store 1,mem_mouse_z_data
+	rtn
+	
+	
+mouse_hid_connected:
+	setarg HID_HANDSHAKE_TIMEOUT
+	store 1,mem_hid_handshake_timer_count
+	rtn
+	
+mouse_send_process:
+	fetch 1,mem_app_handshake_flag
+	rtn blank
+	call l2cap_malloc_is_fifo_nearly_full
+	nrtn blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOSUE_24G_PAIRING_FLAG,mouse_send_empty_data
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_send_empty_data
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_send_empty_data
+	call mouse_motion
+	nrtn user
+mouse_send_data:
+	arg 9,rega
+	call hid_malloc_tx_buff
+	fetch 2,mem_hid_int_remote_cid
+	istore 2,contw
+	setarg 0x02a1
+	istore 2,contw
+	fetch 7,mem_mouse_key
+	istore 7,contw
+	rtn
+
+	
+mouse_send_empty_data:
+	setarg 0
+	store 7,mem_mouse_key
+	branch mouse_send_data
+
+
+mouse_no_data_timer_init:
+	fetch 2,mem_mouse_no_data_timeout
+	store 2,mem_mouse_no_data_timer
+	rtn
+
+	
+mouse_fill_data_le:
+	bpatch patch1c_5,mem_patch1c
+	arg 7,rega //len
+	fetcht 2,mem_le_notify_handle
+	call le_att_malloc_tx_notify
+	fetch 7,mem_mouse_key
+	istore 7,contw
+	rtn
+
+mouse_motion:
+	bpatch patch1c_6,mem_patch1c
+	disable user
+	setarg 0
+	store 6,mem_mouse_x
+	call mouse_cheak_sensor_data
+	call mouse_zwheel
+	call mouse_t_zwheel
+	call mouse_key
+	nrtn user
+	call mouse_no_data_timer_init
+	arg MOUSE_STATUE_UP_FLAG,queue
+	branch mouse_enable_function_flag
+	
+motion_6clk_direction_dispose:
+	fetch 2,mem_mouse_x
+	sub pdata,0,pdata
+	store 2,mem_mouse_x
+	branch enable_user
+motion_12clk_direction_dispose:
+	fetch 2,mem_mouse_y
+	sub pdata,0,pdata
+	store 2,mem_mouse_y
+	branch enable_user
+motion_9clk_direction_dispose:
+	fetch 2,mem_mouse_y
+	sub pdata,0,pdata
+	store 2,mem_mouse_y
+	fetch 2,mem_mouse_x
+	sub pdata,0,pdata
+	store 2,mem_mouse_x
+	call mouse_sensor_data_swap_places
+	branch enable_user
+motion_3clk_direction_dispose:
+	call mouse_sensor_data_swap_places
+	branch enable_user
+mouse_cheak_sensor_data:
+	fetch 1,mem_spi_write_flash_sm
+	rtnne FLASH_SM_NO_BUYS
+	fetch 1,mem_config_sensor_type
+	beq P3205,mouse_p32xx_sensor_motion
+	beq P3065,mouse_p32xx_sensor_motion
+	beq KA8,mouse_p32xx_sensor_motion
+	beq P3204,mouse_p32xx_sensor_motion
+	beq P3212,mouse_p3212_sensor_motion
+	beq P3610,mouse_p3610_sensor_motion
+	beq P3065_xy,mouse_p32xx_sensor_motion
+	branch mouse_p32xx_sensor_motion
+	
+mouse_clear_sensor_data:
+	fetch 1,mem_mouse_move_flag
+	call mouse_read_sensor_common,blank
+	jam 1,mem_mouse_move_flag
+	rtn
+
+
+mouse_p3212_sensor_motion:
+	call mouse_clear_sensor_data
+	fetcht 1,mem_sensor_data_gpio
+	call gpio_get_bit
+	nrtn true
+mouse_p3212_sensor_motion_1:	
+	setarg PAN_REG_PID_L
+	call twspi_read
+	bne P32XX_ID1,mouse_twspi_reset
+	setarg PAN_REG_MOTION_STAUS
+	call twspi_read
+	rtnbit0 7
+	call mouse_read_sensor_common
+	call mouse_read_3212sensor_xy_high
+	store 1,mem_mouse_xy_h
+	rshift4 pdata,pdata
+	call extsign_bit3
+	store 1,mem_mouse_x+1
+	fetch 1,mem_mouse_xy_h
+	and pdata,0x0f,pdata
+	call extsign_bit3
+	store 1,mem_mouse_y+1
+	fetch 1,mem_config_sensor_angle
+	beq MOUSE_6CLK_ANGLE,motion_6clk_direction_dispose
+	beq MOUSE_9CLK_ANGLE,motion_9clk_direction_dispose
+	beq MOUSE_12CLK_ANGLE,motion_12clk_direction_dispose
+	beq MOUSE_3CLK_ANGLE,motion_3clk_direction_dispose
+	rtn
+
+mouse_read_3212sensor_xy_high:
+	setarg 0x12
+	branch twspi_read
+	
+mouse_p3065_judge:
+	beq P3065_ID1,mouse_p32xx_sensor_motion_1
+	branch mouse_twspi_reset
+	
+mouse_p32xx_sensor_motion:
+	call mouse_clear_sensor_data
+	disable user
+	fetcht 1,mem_sensor_data_gpio
+	call gpio_get_bit
+	nrtn true
+mouse_p32xx_sensor_motion_2:	
+	setarg PAN_REG_PID_L
+	call twspi_read
+	bne P32XX_ID1,mouse_p3065_judge   
+mouse_p32xx_sensor_motion_1:
+	setarg PAN_REG_MOTION_STAUS
+	call twspi_read
+	rtnbit0 7
+	call mouse_read_sensor_common
+	fetch 1,mem_mouse_x
+	call extsign
+	store 2,mem_mouse_x
+	fetch 1,mem_mouse_y
+	call extsign
+	store 2,mem_mouse_y
+	fetch 1,mem_config_sensor_angle
+	beq MOUSE_6CLK_ANGLE,motion32xx_6clk_direction_selection
+	beq MOUSE_9CLK_ANGLE,motion32xx_9clk_direction_selection
+	beq MOUSE_12CLK_ANGLE,motion32xx_12clk_direction_selection
+	beq MOUSE_3CLK_ANGLE,motion32xx_3clk_direction_selection
+	rtn
+	
+motion32xx_6clk_direction_selection:
+	call motion_6clk_direction_dispose
+	branch mouse_sensor_sdio_low
+motion32xx_9clk_direction_selection:
+	call motion_9clk_direction_dispose
+	branch mouse_sensor_sdio_low
+motion32xx_12clk_direction_selection:
+	call motion_12clk_direction_dispose
+	branch mouse_sensor_sdio_low
+motion32xx_3clk_direction_selection:
+	call motion_3clk_direction_dispose
+	branch mouse_sensor_sdio_low
+	
+mouse_sensor_data_swap_places:
+	fetch 2, mem_mouse_y
+	fetcht 2,mem_mouse_x
+	store 2,mem_mouse_x
+	storet 2,mem_mouse_y
+	rtn
+//input regb  output:pdata
+mouse_p3610sensor_read:
+	call spi_ncs_enable
+	nop 100
+	copy regb,pdata
+	call twspi_read
+	copy pdata,regb
+	call spi_ncs_disable
+	nop 100
+	copy regb,pdata
+	rtn	
+mouse_p3610_sensor_motion:
+	disable user
+	fetcht 1,mem_sensor_data_gpio
+	call gpio_get_bit
+	nrtn true
+	arg PAN_REG_MOTION_STAUS,regb
+	call mouse_p3610sensor_read
+	rtnbit0 7
+	arg PAN_REG_PID_L,regb
+	call mouse_p3610sensor_read
+	store 1,mem_sensor_id1
+	bne P3610_ID1,mouse_init_3610sensor_reset
+	fetch 1,mem_mouse_move_flag
+	call mouse_read_sensor3610_data,blank
+	jam 1,mem_mouse_move_flag
+	call mouse_read_sensor3610_data
+	fetch 1,mem_mouse_xy_h
+	rshift4 pdata,pdata
+	call extsign_bit3
+	store 1,mem_mouse_x+1
+	fetch 1,mem_mouse_xy_h
+	and pdata,0x0f,pdata
+	call extsign_bit3
+	store 1,mem_mouse_y+1
+	fetch 1,mem_config_sensor_angle
+	beq 0,motion3610_6clk_direction_selection
+	beq 1,motion3610_9clk_direction_selection
+	beq 2,motion3610_12clk_direction_selection
+	beq 3,motion3610_3clk_direction_selection
+	rtn
+
+mouse_3610_smart_select:
+	fetch 1,mem_sensor_smart_flag
+	beq P3610_SMART_ENABLE,mouse_3610_smart_disable
+	beq P3610_SMART_DISABLE,mouse_3610_smart_enable
+	rtn
+
+
+motion3610_6clk_direction_selection:
+	call motion_6clk_direction_dispose
+	branch mouse_3610_smart_select
+	
+motion3610_12clk_direction_selection:
+	call motion_12clk_direction_dispose
+	branch mouse_3610_smart_select
+	
+motion3610_9clk_direction_selection:
+	call motion_9clk_direction_dispose
+	branch mouse_3610_smart_select
+	
+motion3610_3clk_direction_selection:
+	call motion_3clk_direction_dispose
+	branch mouse_3610_smart_select
+	
+mouse_read_sensor3610_data:
+	call spi_ncs_enable
+	call mouse_read_sensor_common
+	arg 5,pdata
+	call twspi_read
+	store 1,mem_mouse_xy_h
+	arg 7,pdata
+	call twspi_read
+	store 1,mem_sensor_shutter_hi
+	arg 8,pdata
+	call twspi_read
+	store 1,mem_sensor_shutter_lo
+	branch spi_ncs_disable
+
+
+mouse_3610_smart_enable:
+	fetch 1,mem_sensor_shutter_hi
+	rtnne 0
+	fetch 1,mem_sensor_shutter_lo
+	sub pdata,45,null
+	rtn positive
+	jam P3610_SMART_ENABLE,mem_sensor_smart_flag
+	setarg 0xba41
+	call sensor_write
+	setarg 0x0032
+	call sensor_write
+	setarg 0xb541
+	branch sensor_write
+mouse_3610_smart_disable:
+	fetch 1,mem_sensor_shutter_hi
+	rtnne 0
+	fetch 1,mem_sensor_shutter_lo
+	sub pdata,45,null
+	nrtn positive
+	jam P3610_SMART_DISABLE,mem_sensor_smart_flag
+	setarg 0xba41
+	call sensor_write
+	setarg 0x8032
+	call sensor_write
+	setarg 0xb541
+	branch sensor_write
+
+
+
+mouse_read_sensor_common:
+	arg PAN_REG_DELTA_X,pdata
+	call twspi_read
+	store 2,mem_mouse_x
+	arg PAN_REG_DELTA_Y,pdata
+	call twspi_read
+	store 2,mem_mouse_y
+	rtn
+
+mouse_set_qdecoder_x:
+	arg MOUSE_DEFAULT_XA_GPIO,temp
+	call gpio_config_input
+	arg MOUSE_DEFAULT_XA_GPIO,temp
+	call gpio_get_bit
+	rtn true
+	hfetch 1,core_qdec_cntx
+	set1 4,pdata
+	hstore 1,core_qdec_cntx
+	rtn
+
+mouse_hardware_zwheel:
+	fetcht 1,mem_mouse_z_data
+	hfetch 1,core_qdec_cntx
+	iadd temp,pdata
+	rtn blank
+	store 1,mem_mouse_z
+	jam 0,mem_mouse_z_data
+	branch enable_user
+mouse_hardware_zwheel_beforelpm:
+	fetcht 1,mem_mouse_z_data
+	hfetch 1,core_qdec_cntx
+	iadd temp,pdata
+	store 1,mem_mouse_z_data
+	rtn
+mouse_zwheel:
+	fetch 1,mem_mouse_z_data
+	rtn blank	
+	store 1,mem_mouse_z
+	jam 0,mem_mouse_z_data
+	branch enable_user
+	
+mouse_t_zwheel:
+	fetch 1,mem_mouse_tz_data
+	rtn blank	
+	store 1,mem_mouse_tz
+	jam 0,mem_mouse_tz_data
+	branch enable_user
+	
+mouse_check_key_gpio:
+	arg 0,rega
+	fetcht 1,mem_lbutton_gpio
+	call gpio_get_bit
+	setflag true,0,rega
+	fetcht 1,mem_rbutton_gpio
+	call gpio_get_bit
+	setflag true,1,rega
+	fetcht 1,mem_mbutton_gpio
+	call gpio_get_bit
+	setflag true,2,rega
+	call mouse_check_s_key_gpio
+	copy rega,pdata
+	rtn
+mouse_check_s_key_gpio:
+	fetch 1,mem_bk_button_gpio
+	rtneq GPIO_DISABLE
+	fetcht 1,mem_bk_button_gpio
+	call gpio_get_bit
+	setflag true,3,rega
+	fetcht 1,mem_fw_button_gpio
+	call gpio_get_bit
+	setflag true,4,rega
+	rtn
+
+mouse_key:
+	call mouse_check_key_gpio
+	call mouse_set_mult
+	call mouse_24g_key
+	copy rega,pdata
+	fetcht 1,mem_mouse_key
+	store 1,mem_mouse_key	
+	ixor temp,pdata
+	sub pdata,0,null
+	rtn zero
+	branch enable_user
+
+mouse_24g_key:
+	rtnmark0 mark_24g
+	copy rega,pdata
+	rtn blank
+	store 1,mem_mouse_key
+	branch enable_user
+
+//short mult: no key 
+mouse_set_mult:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,mouse_set_ble_mult
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_CONNECTED,mouse_set_bt_mult
+	rtn
+mouse_set_ble_mult:
+	copy rega,pdata
+	nbranch le_set_config_short_mult,blank
+	branch le_clr_config_short_mult
+mouse_set_bt_mult:
+	copy rega,pdata
+	nbranch classic_bt_set_mult_short_flag,blank
+	branch classic_bt_clr_mult_short_flag
+	
+	/* sdio high will cost extra 9mA */
+mouse_sensor_sdio_low:
+	bpatch patch1c_7,mem_patch1c
+	arg MOUSE_SPI1_SDIO_GPIO,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_ENABLE_SPI2,pdata
+	call mouse_sensor_sdio_low2,true
+	call gpio_get_bit
+	rtn true
+	setarg 0x0a
+	call twspi_read
+	nop 1000
+	branch mouse_sensor_sdio_low
+mouse_sensor_sdio_low2:
+	arg MOUSE_SPI2_SDIO_GPIO,temp
+	rtn
+
+mouse_spi_sdio_gpio_pollup:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SPI2,mouse_spi2_sdio_gpio_pollup
+mouse_spi1_sdio_gpio_pollup:
+	arg MOUSE_SPI1_SDIO_GPIO,temp
+	branch gpio_config_input_without_wake
+mouse_spi2_sdio_gpio_pollup:
+	arg MOUSE_SPI2_SDIO_GPIO,temp
+	branch gpio_config_input_without_wake
+
+	
+mouse_init_sunt:
+	call mouse_spi_init
+	rtn wake
+	call mouse_spi_sdio_gpio_pollup
+	fetch 1,mem_config_sensor_type
+	beq P3610,mouse_init_3610sensor
+mouse_init_sensor:
+	call mouse_read_sensor_id
+	beq P32XX_ID1,mouse_init_p32xx_id2_judge
+	beq P3065_ID1,mouse_p3065_init_param
+	call mouse_twspi_reset
+	nop 1000
+	branch mouse_init_sensor
+mouse_twspi_reset:
+	bpatch patch1d_0,mem_patch1d
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SPI2,twspi_reset2
+	branch twspi_reset
+
+mouse_init_3610sensor:
+	call mouse_read_sensor_id
+	beq P3610_ID1,mouse_init_p3610
+	call mouse_init_3610sensor_reset
+	branch mouse_init_3610sensor
+	
+mouse_read_sensor_id:
+	setarg PAN_REG_PID_H
+	call twspi_read
+	store 1,mem_sensor_id2
+	setarg PAN_REG_PID_L
+	call twspi_read
+	store 1,mem_sensor_id1
+	rtn
+mouse_init_p32xx_id2_judge:
+	fetch 1,mem_sensor_id2
+	beq P3205_TJ3T_ID2,mouse_3205_3t_init_param
+	beq P3204_TJ3L_ID2,mouse_3204_3l_init_param
+	beq P3212_ID2,mouse_3212_init_param
+	beq PKA8_ID2,mouse_ka8_init_param
+	rtn
+mouse_ka8_init_param:
+	jam KA8,mem_config_sensor_type
+	rtn
+mouse_p3065xy_init_param:
+	jam P3065_XY,mem_config_sensor_type
+	rtn
+mouse_p3065_init_param:
+	fetch 1,mem_sensor_id2
+	beq P3065_XY_ID2,mouse_p3065xy_init_param
+	jam P3065,mem_config_sensor_type
+	rtn
+mouse_3212_init_param:
+	jam P3212,mem_config_sensor_type
+	call mouse_sensor_disable_wp
+	setarg 0x3426
+	call twspi_write
+	setarg 0x0419
+	call twspi_write
+mouse_sensor_enable_wp:
+	setarg 0x0009
+	branch twspi_write
+mouse_sensor_disable_wp:
+	setarg 0x5a09
+	branch twspi_write
+
+mouse_3204_3l_init_param:
+	jam P3204,mem_config_sensor_type
+	call mouse_sensor_disable_wp
+	setarg 0x0f0d//
+	call twspi_write
+	setarg 0xe31d//
+	call twspi_write
+	setarg 0xd27d
+	call twspi_write
+	call mouse_32xx_init_param
+	branch mouse_32xx_init_param_1
+	
+mouse_32xx_init_param:
+	setarg 0x351b
+	call twspi_write
+	setarg 0xb428
+	call twspi_write
+	setarg 0x4629
+	call twspi_write
+	setarg 0x962a
+	call twspi_write
+	setarg 0x8c2b
+	call twspi_write
+	setarg 0x6e2c
+	call twspi_write
+	setarg 0x642d
+	call twspi_write
+	setarg 0x5f38
+	call twspi_write
+	setarg 0x0f39
+	call twspi_write
+	setarg 0x323a
+	call twspi_write
+	setarg 0x473b
+	call twspi_write
+	setarg 0x1042
+	branch twspi_write
+mouse_32xx_init_param_1:	
+	setarg 0x2e54
+	call twspi_write
+	setarg 0xf255
+	call twspi_write
+	setarg 0xf461
+	call twspi_write
+	setarg 0x7063
+	call twspi_write
+	setarg 0x5275
+	call twspi_write
+	setarg 0x4176
+	call twspi_write
+	setarg 0xed77
+	call twspi_write
+	setarg 0x2378
+	call twspi_write
+	setarg 0x4679
+	call twspi_write
+	setarg 0xe57a
+	call twspi_write
+	setarg 0x487c
+	call twspi_write
+	setarg 0x777e
+	call twspi_write
+	setarg 0x017f
+	call twspi_write
+	setarg 0x000b
+	call twspi_write
+	setarg 0x007f
+	call twspi_write
+	branch mouse_sensor_enable_wp
+	
+
+mouse_3205_3t_init_param:
+	jam P3205,mem_config_sensor_type
+	call mouse_sensor_disable_wp
+	setarg 0x100d//
+	call twspi_write
+	setarg 0xed1d//
+	call twspi_write
+	setarg 0x807d
+	call twspi_write
+	call mouse_32xx_init_param
+	setarg 0x0943
+	call twspi_write
+	branch mouse_32xx_init_param_1
+	
+	
+mouse_init_3610sensor_reset:
+	fetcht 1,mem_sensor_reset_gpio
+	call gpio_out_active
+	call delay_10ms
+	fetcht 1,mem_sensor_reset_gpio
+	call gpio_out_inactive
+	branch delay_10ms
+
+mouse_init_p3610:
+	jam P3610,mem_config_sensor_type
+	setarg 0xba41
+	call sensor_write
+	setarg 0x0d11
+	call sensor_write
+	setarg 0x041b
+	call sensor_write
+	setarg 0x041c
+	call sensor_write
+	setarg 0x0f1d
+	call sensor_write
+	setarg 0x0032
+	call sensor_write
+	setarg 0xb541
+	branch sensor_write
+	
+	
+//input-rega
+mouse_set_sensor_reg:
+	setarg 0xba41
+	call sensor_write
+	nop 4000
+	setarg 0xff7f
+	call sensor_write
+	copy rega,pdata
+	call sensor_write
+	setarg 0x007f
+	call sensor_write
+	setarg 0xb541
+	branch sensor_write
+
+extsign:
+	rtnbit0 7
+	arg 0xff00,temp
+	ior temp,pdata
+	rtn
+
+extsign_bit3:
+	rtnbit0 3
+	arg 0xf0,temp
+	ior temp,pdata
+	rtn
+
+
+mouse_le:
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtnne 0x03
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOSUE_24G_PAIRING_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_le_send_empty_packet
+	call mouse_motion
+	nrtn user
+	branch mouse_fill_data_le
+
+mouse_le_send_empty_packet:
+	setarg 0
+	store 7,mem_mouse_key
+	branch mouse_fill_data_le
+
+mouse_priority_bb_event:	
+	copy regc,pdata
+	beq BT_EVT_LE_CONNECTED,mouse_le_bb_event_connected
+	beq BT_EVT_BB_CONNECTED,mouse_stop_discovery
+	beq BT_EVT_LE_DISCONNECTED,mouse_bb_disconnected
+	beq BT_EVT_BB_DISCONNECTED,mouse_bb_disconnected
+	beq BT_EVT_SETUP_COMPLETE,mouse_bt_event_setup_complete
+	beq BT_EVT_BUTTON_LONG_PRESSED,mouse_bb_event_discovery_btn
+	beq BT_EVT_HID_HANDSHAKE,mouse_bt_hid_handshake
+	beq BT_EVT_HID_CONNECTED,mouse_bt_hid_connected
+	beq BT_EVT_RECONN_FAILED,mouse_bb_event_reconn_failed
+	beq BT_EVT_RECONN_PAGE_TIMEOUT,mouse_bb_event_reconn_timeout
+	beq BT_EVT_PINCODE_REQ,mouse_bb_event_pincode
+	beq BT_EVT_REMOTE_UNSNIFF,app_start_auto_sniff
+	beq BT_EVT_LE_PAIRING_SUCCESS,mouse_le_pairing_success
+	beq BT_EVT_LE_START_ENC,mouse_le_ll_start_encryt
+	beq BT_EVT_LE_PAIRING_COMPLETE,mouse_le_pairing_complete
+	beq BT_EVT_VIRTUAL_CABLE_UNPLUG,mouse_irtual_cable_unplug
+	beq BT_EVT_24G_PAIRING_COMPLETE,mouse_24g_pairing_complete
+	beq BT_EVT_24G_ATTEMPT_FAIL,mouse_24g_attempt_fail
+	beq BT_EVT_24G_ATTEMPT_SUCCESS,mouse_24g_attempt_success
+	rtn
+
+
+mouse_le_pairing_complete:
+	branch app_ble_store_reconn_info
+
+mouse_24g_attempt_fail:
+	jam 1,mem_mouse_24g_enter_lpm_enable
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch 1,mem_device_flag
+	fetcht 1,mem_24g_device_number
+	isub temp,null
+	branch app_enter_hibernate,zero
+	rtn
+mouse_24g_attempt_success:
+	jam 1,mem_mouse_24g_enter_lpm_enable
+	rtn
+mouse_24g_pairing_complete:
+	jam 1,mem_mouse_24g_enter_lpm_enable
+	arg MOSUE_24G_PAIRING_FLAG,queue
+	call mouse_disable_function_flag
+	setarg 0
+	store 2,mem_24g_pairing_timer_count
+	jam 0,mem_mouse_move_flag
+	
+	fetch 1,mem_config_sensor_type
+	sub pdata,P3610,null
+	call mouse_read_sensor3610_data,zero
+	ncall mouse_read_sensor_common,zero
+
+	fetch 1,MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_FLASH,mouse_store_flash_24g_address
+	call mouse_set_24g_addr_eeprom	//store rx dongle addr to eeprom
+	branch iicd_write_protect_eep_data
+
+mouse_set_24g_addr_eeprom:
+	call g24_head_ptr2regc
+	add regc,offset_24g_addr,rega
+	arg MOUSE_G24_ADDR_EEPROM_OFFECT,regb
+	arg 4,temp
+	rtn
+
+mouse_store_flash_24g_address:
+	call g24_head_ptr2regc
+	add regc,offset_24g_addr,regb
+	ifetch 1,regb
+	store 1,mem_mouse_24g_addr
+	branch mouse_store_flash_device_info
+	
+
+mouse_le_pairing_success:
+	arg LL_PAIRING_SUCCESS_FLAG,queue
+	branch mouse_le_enable_connect_flag
+mouse_le_ll_start_encryt:
+	jam 2,mem_le_start_encrypt_timer
+	arg LL_START_ENC_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+	
+mouse_le_enable_connect_flag:
+	fetch 1,mem_le_connect_status_flag
+	qset1 pdata
+	store 1,mem_le_connect_status_flag
+	rtn
+
+mouse_le_disable_connect_flag:
+	fetch 1,mem_le_connect_status_flag
+	qset0 pdata
+	store 1,mem_le_connect_status_flag
+	rtn
+mouse_le_clean_connect_flag:
+	jam 0,mem_le_connect_status_flag
+	rtn
+
+mouse_le_bb_event_connected:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set0 APP_DISC_BY_BUTTON ,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	setarg 0
+	store 2,mem_mouse_direct_timer
+	call mouse_no_data_timer_init
+	branch mouse_stop_discovery
+
+mouse_bb_event_pincode:
+	call pincode_reinit
+	branch app_bt_set_pincode
+mouse_bb_event_reconn_timeout:
+ifdef FPGA_DEBUG
+	arg MOUSE_FPGA_DEBUG_GPIO,temp
+	call gpio_config_output
+	arg MOUSE_FPGA_DEBUG_GPIO,temp
+	call gpio_out_inactive
+endif
+mouse_bb_event_reconn_failed:
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_soft_reset
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_start_discovery
+	bbit1 MOSUE_24G_PAIRING_FLAG,g24_start_pairing_sm1
+	branch app_bb_hibernate
+
+	
+mouse_bt_hid_connected:
+	branch mouse_hid_connected
+
+mouse_bt_event_setup_complete:
+	rtn
+
+mouse_soft_reset:
+	call mouse_select_device_enable
+	branch soft_reset_chip
+
+mouse_bb_disconnected:
+	bpatch patch1d_1,mem_patch1d
+	call mouse_bb_discon_clear_stack
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_soft_reset
+	bbit1 MOSUE_24G_PAIRING_FLAG,g24_start_pairing_sm1
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BLE,mouse4_0_event_bb_disconn
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	bbit1 APP_DISC_AFTER_PAIRING,mouse_event_light_state_pairing
+	bbit1 APP_DISC_AFTER_RECONN,mouse_event_light_state_hibernate
+	bbit1 APP_DISC_AFTER_SNIFF,mouse_event_light_state_hibernate
+	branch mouse_start_discovery
+mouse_bb_discon_clear_stack:
+	setarg 0
+	store 8,mem_wheel_tb_old_pinlevel
+	istore 4,contw             //clean wheel statue
+	jam 0,mem_mouse_send_blank_timer
+	jam 0,mem_mouse_move_flag
+	jam APP_HANDSHAKE_NULL,mem_app_handshake_flag
+	jam 0,mem_ltk_exists
+	rtn
+
+mouse_event_light_state_pairing:
+	bbit1 APP_DISC_AFTER_HANDSHAKE,mouse_event_light_state_hibernate
+	bbit1 APP_DISC_AFTER_SNIFF,mouse_event_light_state_hibernate
+	branch mouse_start_discovery
+mouse_event_light_state_hibernate:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
+	branch app_bb_hibernate
+
+mouse4_0_event_bb_disconn:
+	call mouse_le_clean_connect_flag
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch app_bb_hibernate
+
+mouse_bb_event_timer:
+	call mouse_adc_read
+	call mouse_24g_delay_timer
+	call mouse_ban_24g_pairing_timer
+	call mouse_dpi_led_blink_delay_timer
+	call mouse_statue_up_timer
+	//poll
+	call mouse_statue_cheak_timer
+	call mouse_select_device
+	call mouse_bt_discovery_cheak
+	call mouse_low_voltage_led_timer
+	call mouse_sensor_led_contrl_timer
+	call mouse_check_hid_handshake_timer
+	call mouse_check_discovery_timeout_timer
+	call mouse_check_direct_timeout_timer
+	call mouse_check_no_data_timeout_timer
+	call mouse_check_mouse_state_timer
+	branch mouse_le_enable_att_list_timer
+
+
+
+mouse_sensor_led_contrl_timer:
+	fetch 1,mem_mouse_sensor_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_mouse_sensor_timer_count
+	nrtn blank
+	branch mouse_sensor_led_contrl
+mouse_sensor_led_contrl:
+	fetch 1,mem_sensor_led_style
+	rtneq UI_LED_STATE_BLINK_STOP
+	beq UI_LED_STATE_BLINK_DARKING,mouse_sensor_led_blink_state_darking
+mouse_sensor_led_blink_state_lighting:
+	call mouse_sensor_led_on
+	jam UI_LED_STATE_BLINK_DARKING,mem_sensor_led_style
+	jam LED_SENSOR_BLINK_CNT,mem_mouse_sensor_timer_count
+	rtn
+mouse_sensor_led_blink_state_darking:
+	call mouse_sensor_led_off
+	jam UI_LED_STATE_BLINK_LIGHTING,mem_sensor_led_style
+	jam LED_SENSOR_BLINK_CNT,mem_mouse_sensor_timer_count
+	rtn
+	
+mouse_sensor_led_blink_stop:
+mouse_sensor_reset:
+	setarg 0x8006
+	call twspi_write
+    nop 1000
+	jam 0x00,mem_mouse_sensor_timer_count
+	jam UI_LED_STATE_BLINK_STOP,mem_sensor_led_style
+	branch mouse_init_p32xx_id2_judge
+	
+mouse_p3212sensor_led_on:
+	setarg 0xa006
+	call twspi_write
+	setarg 0xa005
+	branch twspi_write
+mouse_sensor_led_on_global:
+	jam 0,mem_mouse_sensor_timer_count
+mouse_sensor_led_on:
+	fetch 1,mem_config_sensor_type
+	beq P3212,mouse_p3212sensor_led_on
+	setarg 0x0106
+	call twspi_write
+	setarg 0xa105
+	branch twspi_write
+	
+mouse_sensor_led_off_global:
+	jam 0,mem_mouse_sensor_timer_count	
+mouse_sensor_led_off:
+	setarg 0x0906
+	branch twspi_write
+mouse_sensor_start_blink:
+	jam LED_SENSOR_BLINK_CNT,mem_mouse_sensor_timer_count
+	jam UI_LED_STATE_BLINK_START,mem_sensor_led_style
+	rtn
+	
+mouse_check_hid_handshake_timer:
+	arg mem_hid_handshake_timer_count,regc
+	arg mouse_bt_hid_handshake,regb
+	branch timer_single_step
+
+mouse_check_discovery_timeout_timer:	
+	arg mem_mouse_discovery_timer,regc
+	arg mouse_check_discovery_timeout,regb
+	branch timer_single_step_2B
+
+mouse_check_direct_timeout_timer:	
+	arg mem_mouse_direct_timer,regc
+	arg mouse_check_direct_timeout,regb
+	branch timer_single_step_2B
+	
+mouse_check_no_data_timeout_timer:	
+	arg mem_mouse_no_data_timer,regc
+	arg mouse_check_no_data_timeout,regb
+	branch timer_single_step_2B
+	
+mouse_check_mouse_state_timer:
+	arg mem_mouse_statue_led_timer,regc
+	arg mouse_statue_led_off,regb
+	branch timer_single_step
+
+
+
+mouse_le_enable_att_list_timer:
+	arg mem_le_start_encrypt_timer,regc
+	arg mouse_le_enable_att_list,regb
+	branch timer_single_step
+
+mouse_24g_delay_timer:
+	arg mem_24g_enter_lpm_timer,regc
+	arg mouse_24g_delay,regb
+	branch timer_single_step
+
+mouse_ban_24g_pairing_timer:
+	arg mem_24g_pairing_timer_count,regc
+	arg mouse_ban_24g_pairing,regb
+	branch timer_single_step_2B
+mouse_ban_24g_pairing:
+mouse_24g_delay:
+	rtn
+
+
+mosue_dpi_led_blink_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_DPI_LED_BLINK
+	jam 10,mem_mouse_dpi_led_delay_count  //delay 1s led blink
+	fetch 1,mem_dpi_led_gpio
+	store 1,mem_mouse_struct_led_gpio
+	rtn
+
+
+mouse_dpi_led_blink_delay_timer:
+	arg mem_mouse_dpi_led_delay_count,regc
+	arg mouse_dpi_led_setting,regb
+	branch timer_single_step	
+mouse_dpi_led_setting:
+	fetch 1,mem_dpi_led_gpio
+	store 1,mem_mouse_struct_led_gpio
+	setarg LED_DPI_BLINK
+	store 2,mem_mouse_on_time
+	store 2,mem_mouse_off_time
+	arg 0,rega
+	fetcht 1,mem_mouse_dpi
+	increase 1,temp
+	storet 1,mem_mouse_blink_count
+	jam UI_LED_STATE_BLINK_START,mem_mouse_led_type
+	rtn
+	
+mouse_le_enable_att_list:	
+	fetch 1,mem_le_connect_status_flag
+	rtnbit1 LL_PAIRING_SUCCESS_FLAG
+	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
+	call ui_ipc_send_cmd
+	arg WRITE_REQ_ENABLE_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+
+mouse_check_discovery_timeout:
+	call mouse_stop_discovery
+	branch app_enter_hibernate
+
+mouse_check_direct_timeout:
+	call app_ble_stop_direct_adv
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	branch app_enter_hibernate
+
+mouse_check_no_data_timeout:
+	bmark1 mark_24g,check_51cmd_hibernate
+	branch mouse_disconnect
+
+	
+
+mouse_bb_event_discovery_btn:
+	bpatch patch1d_2,mem_patch1d
+	jam 0,mem_mouse_send_blank_timer
+	call mouse_disconnect
+	call mouse_le_clean_connect_flag
+	branch mouse_start_discovery
+
+
+
+mouse3_0_check_reconn_target:
+	fetch 6,mem_hci_plap
+	branch app_bt_start_discovery_short,blank
+	call mouse_reconn_setting_led_gpio
+	jam 0x17,mem_connection_options  //ssp
+	fetch 1,mem_ssp_enable
+	nbranch app_bt_start_reconnect,blank
+	jam 0x04,mem_connection_options  //no ssp
+	branch app_bt_start_reconnect
+	
+mouse4_0_check_reconn_target:
+	fetch 2,mem_mouse_direct_timeout
+	store 2,mem_mouse_direct_timer
+	call mouse_reconn_setting_led_gpio
+	call app_lpm_mult_disable
+	branch check_51cmd_adv
+
+mouse_reconn_setting_led_gpio:
+	setarg LED_RECONNECT_BLINK
+	store 2,mem_mouse_on_time
+	store 2,mem_mouse_off_time
+	branch mouse_setting_led_gpio_comman
+	
+mouse_discover_setting_led_gpio:
+	setarg LED_DISCOVERY_BLINK
+	store 2,mem_mouse_on_time
+	store 2,mem_mouse_off_time	
+mouse_setting_led_gpio_comman:
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,mouse_device_led1
+	beq MODE_BT_DEVICE2,mouse_device_led2
+	beq MODE_BT_DEVICE3,mouse_device_led3
+	rtn
+mouse_device_led1:
+	fetch 1,mem_config_device1_led_gpio
+	branch mouse_led_blink
+mouse_device_led2:
+	fetch 1,mem_config_device2_led_gpio
+	branch mouse_led_blink
+mouse_device_led3:
+	fetch 1,mem_config_device3_led_gpio
+mouse_led_blink:
+	store 1,mem_temp
+	call mouse_devce_led_off
+	fetch 1,mem_temp
+	store 1,mem_mouse_struct_led_gpio
+	arg 0,rega
+	jam UI_LED_STATE_BLINK_START,mem_mouse_led_type
+	branch ui_led_blink_start_global
+
+mouse_led_off:
+	arg 0,rega
+	branch ui_led_off_global
+mouse_led_on:
+	arg 0,rega
+	branch ui_led_on_global
+
+mouse4_0_bb_event_discovery_btn:
+	branch mouse_le_clean_connect_flag
+	
+mouse_bt_hid_handshake:
+	jam APP_HANDSHAKE_DONE,mem_app_handshake_flag
+	call app_lpm_mult_enable
+	call app_bt_store_reconn_info
+	setarg 0
+	store 2,mem_discovery_timeout_timer_count
+	store 1,mem_hid_handshake_timer_count
+	branch app_bt_enter_sniff
+
+mouse_check_reconn_target:
+	call mouse_cheak_select_device_by_switch
+	fetch 1,mem_device_flag
+	fetcht 1,mem_24g_device_number
+	isub temp,null
+	branch mouse_connect_24g_mode,zero
+	fetch 1,mem_xrecord_mode
+	beq REC_3_MODE,mouse3_0_check_reconn_target
+	beq REC_4_MODE,mouse4_0_check_reconn_target
+	branch mouse_start_discovery
+mouse_connect_24g_mode:
+	call mouse_start_24g_mode
+	rtnmark1 mark_24g
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	rtn
+	
+mouse_start_discovery:
+	bpatch patch1d_3,mem_patch1d
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_ADV,mouse_start_discovery_norandom
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE,mouse_start_discovery_norandom
+	random pdata					//random ble addr
+	store 1,mem_le_lap+1
+mouse_start_discovery_norandom:
+	call app_lpm_mult_disable
+	fetch 2,mem_discovery_timeout
+	store 2,mem_mouse_discovery_timer
+	jam 6,mem_connection_options
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	store 2,mem_mouse_direct_timer
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_enable_function_flag
+	call mouse_bt_discovery_button_down_disable
+	fetch 1,mem_device_option
+	isolate1 MODE_4_MOUSE,pdata
+	call check_51cmd_adv,true
+	fetch 1,mem_device_option
+	isolate1 MODE_3_MOUSE,pdata
+	call check_51cmd_start_discovery,true
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DISCOVERY_SENSOR_LED,mouse_sensor_start_blink
+	branch mouse_discover_setting_led_gpio
+
+mouse_stop_discovery:
+	bpatch patch1d_4,mem_patch1d
+	fetch 1,mem_device_option
+	isolate1 MODE_4_MOUSE,pdata
+	call mouse_stop_le_adv,true
+	fetch 1,mem_device_option
+	isolate1 MODE_3_MOUSE,pdata
+	call mouse_stop_bt3_discovery,true
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DISCOVERY_SENSOR_LED,mouse_sensor_led_blink_stop
+	branch mouse_devce_led_off
+mouse_stop_le_adv:
+	setarg 0
+	store 2,mem_mouse_direct_timer
+	branch check_51cmd_stop_adv
+mouse_stop_bt3_discovery:
+	setarg 0
+	store 2,mem_mouse_discovery_timer
+	branch check_51cmd_stop_discovery
+
+	
+
+
+
+mouse_store_remote_bdaddr:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_STORE_EEPROM_FLAG
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_disable_function_flag
+	call mouse_check_device_addr
+mouse_unplug_clean_bdaddr:
+	call mouse_before_store_reconn_info
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_FLASH,mouse_store_flash_device_info
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eeprom_device_info	
+	rtn
+mouse_store_eeprom_device_info:
+	arg 88,temp
+	arg mem_device_flag,rega
+	arg MOUSE_INFO_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data
+
+mouse_check_device_addr:
+	fetch 1,mem_record_bt_mode
+	beq REC_4_MODE,mouse_check_le_device_addr
+	beq REC_3_MODE,mouse_check_bt_device_addr
+	rtn
+mouse_check_le_device_addr:
+	store 1,mem_device_addr_temp
+	fetch 6,mem_le_plap
+	branch mouse_check_bt_device_addr_common
+mouse_check_bt_device_addr:
+	store 1,mem_device_addr_temp
+	fetch 6,mem_plap
+mouse_check_bt_device_addr_common:
+	store 6,mem_device_addr_temp+1
+	fetch 7,mem_device_addr_temp
+	arg mem_device1_type,contr
+	arg 3,loopcnt
+mouse_check_device_addr_end:
+	ifetcht 7,contr
+	isub temp,null
+	branch mouse_clean_addr,zero
+	increase 22,contr
+	loop mouse_check_device_addr_end
+	rtn
+mouse_before_store_reconn_info:
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	increase -1,pdata
+	mul32 pdata,29,pdata
+	iadd rega,rega
+	fetch 1,mem_record_bt_mode
+	istore 1,rega
+	beq REC_4_MODE,mouse_store_le_device
+	beq REC_3_MODE,mouse_store_bt_device
+	rtn
+	
+mouse_store_le_device:
+	fetch 6,mem_le_plap
+	istore 6,contw
+	arg mem_le_ltk,contr
+	call memcpy16
+	fetch 6,mem_le_lap
+	istore 6,contw
+	rtn
+mouse_store_bt_device:
+	fetch 6,mem_plap
+	istore 6,contw
+	arg mem_link_key,contr
+	branch memcpy16
+
+mouse_clean_addr:
+	increase -6,contr
+	copy contr,contw
+	fetcht 6,mem_device_addr_temp+1
+	increase 3,temp
+	istoret 6,contw
+	rtn
+
+
+
+mouse_eeprom_load_recon_info:
+	arg 88,temp
+	arg mem_device_flag,rega
+	arg MOUSE_INFO_EEPROM_OFFECT,regb
+	call iicd_read_eep_data
+mouse_select_reconn_device:
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	fetcht 1,mem_24g_device_number
+	isub temp,null
+	rtn zero
+	increase -1,pdata
+	mul32 pdata,29,pdata
+	iadd rega,rega
+	ifetch 1,rega
+	store 1,mem_xrecord_mode
+	beq REC_3_MODE,mouse_load_bt_device
+	beq REC_4_MODE,mouse_load_le_device
+	rtn
+
+mouse_load_bt_device:
+	ifetch 6,contr
+mouse_load_bt_device_end:
+	store 6,mem_hci_plap
+	arg mem_link_key,contw
+	call memcpy16
+	branch check_link_key_load
+
+mouse_load_le_device:
+	ifetch 6,contr
+mouse_load_le_device_end:
+	store 6,mem_hci_plap
+	arg mem_le_ltk,contw
+	call memcpy16
+	ifetch 6,contr
+	store 6,mem_le_lap
+	rtn
+
+
+mouse_select_device:
+	fetch 1,mem_config_function_enable
+	bbit1 ENABLE_SELECT_DEVICE_BY_GPIO_BUTTON,mouse_select_device_by_button
+	bbit1 ENABLE_SELECT_DEVICE_BY_SWITCH,mouse_select_device_by_switch
+	branch mouse_select_device_by_combination_key
+
+mouse_select_device_by_combination_key:
+	call mouse_check_key_gpio
+	beq MOUSE_RM_BUTTON,mouse_select_device_commbination_key_down
+mouse_select_device_commbination_key_up:
+	jam 30,mem_combination_select_device_count	//combination key timer init 
+	fetch 1,mem_select_device_button_statue
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_select_device_button_statue	
+	rtn
+	
+mouse_select_device_commbination_key_down:
+	call mouse_combination_select_device_timer
+	fetch 1,mem_select_device_button_statue
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_select_device_button_statue
+	branch mouse_select_device_enable
+
+mouse_combination_select_device_timer:
+	fetch 1,mem_combination_select_device_count
+	rtn blank
+	pincrease -1
+	store 1,mem_combination_select_device_count
+	nrtn blank
+	branch mouse_ready_reconnection_by_button
+	
+mouse_select_device_by_button:
+	fetch 1,mem_config_select_device_button_gpio
+	rtneq GPIO_DISABLE
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_get_bit
+	branch mouse_select_device_button_down,true
+mouse_select_device_button_up:
+	fetch 1,mem_select_device_button_statue
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_select_device_button_statue	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_LONG_BT_BUTTON_FLAG
+	branch mouse_ready_reconnection_by_button
+
+mouse_select_device_button_down:
+	fetch 1,mem_select_device_button_statue
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_select_device_button_statue
+	arg MOUSE_LONG_BT_BUTTON_FLAG,queue
+	branch mouse_disable_function_flag
+
+
+
+mouse_select_device_by_switch:
+	fetch 1,MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 ENABLE_SELECT_DEVICE_BY_SWITCH
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,mouse_select1_device
+	beq MODE_24G_DEVICE,mouse_select2_device
+	rtn
+mouse_cheak_select_device_by_switch:
+	fetch 1,MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 ENABLE_SELECT_DEVICE_BY_SWITCH
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_get_bit
+	branch mouse_cheak_select_24gdevice,true
+mouse_select_btdevice:
+	jam MODE_BT_DEVICE1,mem_device_flag
+	rtn
+mouse_cheak_select_24gdevice:
+	fetch 1,mem_24g_device_number
+	store 1,mem_device_flag
+	rtn
+mouse_select1_device:
+	fetcht 1,mem_config_select_device_button_gpio
+	nbranch mouse_ready_reconnection_by_button,true
+	rtn
+mouse_select2_device:
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_get_bit
+	branch mouse_select_device_button_down,true
+	rtn
+
+
+	
+
+mouse_ready_reconnection_by_button:
+	fetcht 1,mem_device_flag
+	increase 1,temp
+	fetch 1,mem_device_number
+	isub temp,null
+	ncall mouse_select_device_count_clean,positive
+	storet 1,mem_device_flag
+	jam 0,mem_link_key_exists
+	call mouse_store_device_number2eeprom
+	call mouse_select_device_enable
+//	call p_select_reconn_device
+	branch mouse_set_reconnection
+
+mouse_store_device_number2eeprom:
+	arg 1,temp
+	arg mem_device_flag,rega
+	arg 0,regb
+	branch iicd_write_eep_data
+
+mouse_set_reconnection:
+	call mouse_stop_bluetooth_mode
+	call mouse_select_device_disable
+	branch mouse_soft_reset
+mouse_stop_bluetooth_mode:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_RECONNECT,mouse_cancel_reconnect
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	bbit1 UI_STATE_BT_CONNECTED,app_bt_disconnect
+	branch mouse_stop_discovery
+
+mouse_disconnect:
+	bpatch patch1d_5,mem_patch1d
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_CONNECTED,app_bt_disconnect
+	rtn
+
+mouse_irtual_cable_unplug:
+	setarg 0x01
+	store 6,mem_plap
+	jam REC_3_MODE,mem_record_bt_mode
+	branch mouse_unplug_clean_bdaddr
+
+	
+mouse_cancel_reconnect:
+	call mouse_bt_cannel_reconn_enable
+	branch check_51cmd_bb_reconn_cancel
+
+mouse_bt_discovery_by_button:
+	fetch 1,mem_config_bt_button_gpio
+	rtneq GPIO_DISABLE
+	fetcht 1,mem_config_bt_button_gpio
+	call gpio_get_bit
+	branch mouse_bt_discovery_button_down,true
+mouse_bt_discovery_button_up:
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_combination_ui_button_count	//combination key timer init 	
+	fetch 1,mem_bt_discovey_button_statue
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_bt_discovey_button_statue	
+	branch mouse_bt_discovery_button_down_disable
+mouse_bt_discovery_button_down:
+	call mouse_bt_discovry_timer
+	fetch 1,mem_bt_discovey_button_statue
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_bt_discovey_button_statue
+	call check_51cmd_bb_reconn_cancel
+	branch mouse_bt_discovery_button_down_enable
+
+	
+mouse_bt_discovery_cheak:
+	fetch 1,mem_config_function_enable
+	bbit1 ENABLE_BT_BUTTON,mouse_bt_discovery_by_button
+mouse_bt_discovery_commbination_key:
+	call mouse_check_key_gpio
+	beq MOUSE_LMR_BUTTON,mouse_bt_discovery_commbination_key_down
+mouse_bt_discovery_commbination_key_up:
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_combination_ui_button_count	//combination key timer init 
+	fetch 1,mem_bt_discovey_button_statue
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_bt_discovey_button_statue	
+	branch mouse_bt_discovery_button_down_disable
+	
+	
+mouse_bt_discovery_commbination_key_down:
+	call mouse_bt_discovry_timer
+	fetch 1,mem_bt_discovey_button_statue
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_bt_discovey_button_statue
+	call check_51cmd_bb_reconn_cancel
+	branch mouse_bt_discovery_button_down_enable
+
+mouse_bt_discovry_timer:
+	arg mem_combination_ui_button_count,regc
+	arg mouse_long_button_bt_discovry,regb
+	branch timer_single_step
+	
+mouse_long_button_bt_discovry:
+	arg MOUSE_LONG_BT_BUTTON_FLAG,queue
+	call mouse_enable_function_flag
+	call app_evt_button_long_pressed
+	branch mouse_bb_event_discovery_btn
+
+
+mouse_cpi_enable:
+	arg MOUSE_CPI_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_cpi_disable:
+	arg MOUSE_CPI_FLAG,queue
+	branch mouse_disable_function_flag
+mouse_select_device_enable:
+	arg MOUSE_SELECT_DEVICE_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_select_device_disable:
+	arg MOUSE_SELECT_DEVICE_FLAG,queue
+	branch mouse_disable_function_flag
+mouse_bt_cannel_reconn_enable:
+	arg MOUSE_BT_CANNEL_RECONN_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_bt_cannel_reconn_disable:
+	arg MOUSE_BT_CANNEL_RECONN_FLAG,queue
+	branch mouse_disable_function_flag
+mouse_bt_discovery_button_down_enable:
+	arg MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_bt_discovery_button_down_disable:
+	arg MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
+	branch mouse_disable_function_flag
+
+
+
+mouse_select_device_count_clean:
+	arg 1,temp
+	rtn
+
+mouse_enable_function_flag:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	qset1 pdata
+	store MOUSE_FLAG_LEN,mem_mouse_flag
+	rtn
+
+mouse_disable_function_flag:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	qset0 pdata
+	store MOUSE_FLAG_LEN,mem_mouse_flag
+	rtn
+	
+mouse_adc_read:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	fetch 1,mem_adc_read_timer
+	increase 1,pdata
+	store 1,mem_adc_read_timer
+	sub pdata,10,null              //1s read adc
+	rtn positive
+	jam 0,mem_adc_read_timer
+	call adc_set_mode
+	call vdd_calculate_by_mode
+	store 2,mem_mouse_vdd_now_vol
+	arg mem_mouse_vdd_calculate_set,rega
+	call adc_bat_percent_lowpower_out
+	fetch 1,mem_adc_power_flag
+	bbit1 1,mouse_power_down
+	bbit0 0,mouse_adc_no_low_voltage
+	branch mouse_adc_low_voltage
+mouse_adc_low_voltage:
+	arg MOUSE_LOW_VOLTAGE_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_adc_no_low_voltage:
+	arg MOUSE_LOW_VOLTAGE_FLAG,queue
+	branch mouse_disable_function_flag
+
+mouse_low_voltage_led_timer:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
+	fetch 1,mem_config_low_voltage_alarm_gpio
+	store 1,mem_mouse_struct_led_gpio
+	fetch 1,mem_adc_low_volatage_led_timer_count
+	pincrease 1
+	store 1,mem_adc_low_volatage_led_timer_count
+	sub pdata,20,null
+	ncall mouse_adc_low_volatage_led_timer_count_clean,positive
+	beq 2,mouse_low_voltage_led_on
+	beq 4,mouse_low_voltage_led_off
+	beq 6,mouse_low_voltage_led_on
+	beq 8,mouse_low_voltage_led_off
+	rtn
+mouse_adc_low_volatage_led_timer_count_clean:
+	jam 1,mem_adc_low_volatage_led_timer_count
+	branch mouse_low_voltage_led_off
+mouse_low_voltage_led_on:
+	arg 0,rega
+	jam UI_LED_STATE_LIGHTING,mem_mouse_led_type
+	branch ui_led_on_global
+mouse_low_voltage_led_off:
+	arg 0,rega
+	jam UI_LED_STATE_LIGHTING,mem_mouse_led_type
+	branch ui_led_off_global
+
+mouse_g24_package_data:
+	call mouse_motion
+	nrtn user
+	arg 7,rega	//length
+	arg mem_mouse_key,regb //tx buff
+	rtn
+	
+mouse_g24_enter_lpm:
+	fetch 1,mem_mouse_24g_enter_lpm_enable
+	rtn blank
+	//do not enter lpm when condition is unallowed
+	fetcht 1,mem_dpi_button_gpio
+	call gpio_get_bit
+	call mouse_24g_dpi_delay_init,true
+	fetch 1,mem_24g_enter_lpm_timer
+	nrtn blank
+	call mouse_check_key_gpio
+	nrtn blank
+	branch g24_lpm_long_sleep
+
+mouse_24g_dpi_delay_init:
+	fetch 1,mem_dpi_button_gpio
+	rtneq UI_BUTTON_GPIO_DISABLE
+	jam 10,mem_24g_enter_lpm_timer
+	rtn
+
+	
+mouse_load_flash_info_cheak:
+	call mouse_load_flash_flag
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	branch mouse_load_flash_device_info,zero
+	storet 2,mem_store_flag
+	call mouse_ble_init_address
+	branch mouse_store_flash_device_info
+mouse_ble_init_address:
+	fetch 6,mem_le_lap
+	store 6,mem_device1_locall_addr
+	add pdata,0x0100,pdata
+	store 6,mem_device2_locall_addr
+	add pdata,0x0100,pdata
+	store 6,mem_device3_locall_addr
+	rtn
+	
+	
+mouse_load_flash_flag:
+	setarg mem_store_flag
+	arg mem_mouse_information_start,temp
+	isub temp,temp
+	fetch 3,mem_flash_base
+	iadd temp,pdata
+	arg 2,temp
+	arg mem_store_flag,rega
+	branch spid_read_flash
+
+	
+mouse_load_flash_device_info:
+	setarg mem_mouse_information_end
+	arg mem_mouse_information_start,temp
+	isub temp,temp
+	fetch 3,mem_flash_base
+	arg mem_mouse_information_start,rega
+	call spid_read_flash
+	call mouse_select_reconn_device
+	fetch 4,mem_mouse_24g_addr
+	call g24_head_ptr2regc
+	branch g24_store_mem_addr
+
+mouse_store_flash_device_info:	
+	setarg mem_mouse_information_end
+	arg mem_mouse_information_start,temp
+	isub temp,temp
+	arg mem_mouse_information_start,rega
+	fetch 3,mem_flash_base
+	branch flash_write
+
+mouse_store_eerpom_dpi:
+	arg 1,temp
+	arg mem_mouse_dpi,rega
+	arg MOUSE_DPI_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data
+
+mouse_load_eeprom_dpi:
+	arg 1,temp
+	arg mem_mouse_dpi,rega
+	arg MOUSE_DPI_EEPROM_OFFECT,regb
+	branch iicd_read_eep_data
+
+mouse_statue_cheak_timer:
+	rtnmark1 mark_24g
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_STATUE_UP
+	fetch 1,mem_mouse_1step_up_count
+	pincrease 1
+	and pdata,0x07,pdata
+	store 1,mem_mouse_1step_up_count
+	rtnne 0x07         //800ms read sensor
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_CONNECTED,mouse_check_statue_up
+	bbit1 UI_STATE_BLE_CONNECTED,mouse_check_statue_up
+	rtn
+
+
+
+//mosue 
+mouse_check_statue_up:
+	bpatch patch1d_6,mem_patch1d
+	fetch 1,mem_mouse_2step_up_count
+	nrtn blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_STATUE_UP_FLAG
+	fetch 1,mem_sensor_squal_reg
+	call sensor_read
+	store 1,mem_sensor_iqc
+	sub pdata,0x10,null
+	branch mouse_statue_up_timer_init,positive
+	jam 0,mem_mouse_2step_up_count
+	rtn
+
+mouse_statue_up_timer_init:
+	jam 30,mem_mouse_2step_up_count
+	rtn
+mouse_statue_up_timer:
+	arg mem_mouse_2step_up_count,regc
+	arg mouse_statue_up,regb
+	branch timer_single_step
+
+mouse_statue_up:
+	fetch 1,mem_sensor_squal_reg
+	call twspi_read
+	sub pdata,0x10,null
+	nrtn positive
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_STATUE_UP_FLAG
+	arg MOUSE_STATUE_UP_FLAG,queue
+	call mouse_disable_function_flag
+	jam 0,mem_lpm_mult
+	jam 30,mem_mouse_statue_led_timer         // led on3s
+	call mouse_devce_led_off
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_STATUE_UP_THREE_LED,mouse_three_device_statue_up
+mouse_two_device_statue_up:
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,mouse_device1_led_on  		//device_1
+	beq MODE_BT_DEVICE2,mouse_device_blink_led_init		//device_2
+	rtn
+mouse_three_device_statue_up:
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,mouse_device1_led_on  		//device_1
+	beq MODE_BT_DEVICE2,mouse_device2_led_on		//device_2
+	beq MODE_BT_DEVICE3,mouse_device3_led_on		//device_3
+	rtn
+	
+mouse_device_blink_led_init:
+	fetch 1,mem_config_device1_led_gpio
+	branch mouse_led_blink
+
+
+
+mouse_statue_led_off:
+	jam 0x20,mem_lpm_mult
+	branch mouse_devce_led_off
+
+
+
+mouse_devce1_led_off:
+	fetch 1,mem_config_device1_led_gpio
+	rtneq GPIO_DISABLE
+	store 1,mem_mouse_struct_led_gpio
+	branch mouse_led_off
+
+mouse_devce2_led_off:
+	fetch 1,mem_config_device2_led_gpio
+	rtneq GPIO_DISABLE
+	store 1,mem_mouse_struct_led_gpio
+	branch mouse_led_off
+	
+mouse_devce_led_off:
+	call mouse_led_off
+	call mouse_devce1_led_off
+	call mouse_devce2_led_off
+mouse_devce3_led_off:
+	fetch 1,mem_config_device3_led_gpio
+	rtneq GPIO_DISABLE
+	store 1,mem_mouse_struct_led_gpio
+	branch mouse_led_off
+
+mouse_device1_led_on:
+	fetch 1,mem_config_device1_led_gpio
+	store 1,mem_mouse_struct_led_gpio
+	branch mouse_led_on
+mouse_device2_led_on:
+	fetch 1,mem_config_device2_led_gpio
+	store 1,mem_mouse_struct_led_gpio
+	branch mouse_led_on
+mouse_device3_led_on:
+	fetch 1,mem_config_device3_led_gpio
+	store 1,mem_mouse_struct_led_gpio
+	branch mouse_led_on
+
+
+
+mouse_polling_device:
+	bpatch patch1d_7,mem_patch1d
+	fetch 1,mem_reconn_times
+	increase -1,pdata
+	store 1,mem_reconn_times
+	fetcht 1,mem_device_flag
+	increase 1,temp
+	fetch 1,mem_device_number
+	isub temp,null
+	ncall mouse_select_device_count_clean,positive
+	storet 1,mem_device_flag
+	jam 0,mem_link_key_exists
+	call mouse_store_device_number2eeprom
+	call mouse_before_store_reconn_info
+	branch mouse_check_reconn_target
+	
+mouse_power_down:
+	call mouse_devce_led_off
+	setarg 0
+	store 8,mem_gpio_wakeup_low
+	branch lpm_hibernate
+
+
+
+
+
+
+endif
+
+
+
Index: rom/command.format
===================================================================
--- /branch/USB/dongle_sdk/rom/command.format	(revision 0)
+++ /branch/USB/dongle_sdk/rom/command.format	(working copy)
@@ -0,0 +1,1384 @@
+
+/* Parse Command:
+TX: take bits from tx fifo, jam it into shift and a destination (rf,bucket)
+RX: take bits from demod,  jam it into shift and a destination (acl,sco,bucket) */
+
+/* Inject Command:
+TX: 0 into shift, send tail of shift into a destination (rf,bucket)
+RX: 0 into shift, send tail of shift into a destination (acl,sco,bucket) */
+
+format
+  ! 15 romdat
+  % d0
+  % d1
+  % d2
+  % d3
+  [8] d0
+  [8] d1
+  [8] d2
+  [8] d3
+end
+
+format
+  ! 15 enable   /* set flag to 1 */
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [6] null
+  [9] 0
+end
+ /* High 5 bytes of channel map */
+format
+  ! 15 pulse   /* set flag to 1 */
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [6] null
+  [9] 0
+end
+
+format
+  ! 15 disable   /* set flag to 0 */
+  % flag
+  [5] opcode
+  [6] 2
+  [6] flag
+  [6] null
+  [9] 0
+end
+
+format
+  ! 15 set0  /* set selected bit of reg to 0 */
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9
+  [6] never
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 set1  /* set selected bit of reg to 1 */
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9          /* alu op demux */
+  [6] always
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 setflag  /* set selected bit of the reg to the polarity of the flag */
+  % flag
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9
+  [6] flag
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 nsetflag  /* set the selected bit of the reg to the opposite polarity of the flag */
+  % flag
+  % immediate
+  % reg
+  [5] opcode
+  [6] 0x29
+  [6] flag
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 setflip    /* invert the selected bit of the reg */
+  % immediate
+  % reg
+  [5] opcode
+  [6] 10            /* this is alu op */
+  [6] always
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 0x1f qset1      /* demux the lowest 4 bit of queue and OR it with regr into regw */
+  % reg             /* in short, set the bit in reg indexed by queue to 1 */
+  [5] opcode
+  [6] 9
+  [6] always
+  [6] reg
+  [9] 0
+end
+  
+format
+  ! 0x1f qset0      /* demux the lowest 4 bit of queue and AND it with regr into regw */
+  % reg             /* in short, set the bit in reg indexed by queue to 0 */
+  [5] opcode
+  [6] 9
+  [6] never
+  [6] reg
+  [9] 0
+end
+
+format 
+  ! 0x1f qsetflag   /* set the bit in reg index by queue to same as flag */
+  % flag
+  % reg
+  [5] opcode
+  [6] 9
+  [6] flag
+  [6] reg
+  [9] 0
+end
+
+format 
+  ! 0x1f nqsetflag   /* set the bit in the reg index by queue to opposite of flag */
+  % flag
+  % reg
+  [5] opcode
+  [6] 0x29
+  [6] flag
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 0x1f qsetflip      /* flip the bit in reg index by queue */
+  % reg
+  [5] opcode
+  [6] 10
+  [6] always
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 1 parse       /* take bits out of source (sco_tx,tx_buffer,rx-elas) into pdata and dest (sco_rx,rx_fifo,tx-elas) */
+  % source
+  % dest
+  % immediate
+  [5] opcode
+  [4] source      /* voice, data, demod */
+  [2] 0
+  [6] 0    
+  [2] 0           /* parse or inject */ 
+  [4] dest        /* acl, sco, mod, bucket */
+  [9] immediate   /* number of bits to parse off */
+end
+
+format
+  ! 1 inject      /* shift data from pdata into destination (tx-elas,rx_fifo,sco_rx) */
+  % destination
+  % immediate
+  [5] opcode
+  [4] 0
+  [2] 0
+  [6] 1
+  [2] 0
+  [4] destination /* acl,sco,mod,bucket */
+  [9] immediate   /* number of bits to be injected */
+end
+
+format
+  ! 1 iinject
+  % destination
+  % regr
+  [5] opcode
+  [6] regr       /* contain the number of bits to inject */
+  [6] 3
+  [2] 0
+  [4] destination /* acl,sco,mod,bucket */
+  [9] 0 
+end
+
+format
+  ! 1 stuff  /* automatic parse, stuff_counter decrement on every bit until hits zero */
+  % source
+  % destination
+  [5] opcode
+  [4] source
+  [2] 0
+  [6] 2
+  [2] 0
+  [4] destination
+  [9] 0
+end
+
+format    /* force immediate value into registers */
+  ! 3 force
+  % immediate
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 0    /* alu operation force */
+  [6] regw  /* destination register */
+  [9] immediate
+end
+
+format    /* force whatever is on shift_reg to regsiters */
+  ! 0x13 iforce
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 0    /* alu operation force */
+  [6] regw  /* destination register */
+  [9] 0
+end
+
+format    /* force immediate value into registers */
+  ! 3 increase
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 1    /* alu operation add */
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 pincrease
+  % immediate
+  [5] opcode
+  [6] -1  /* pdata */
+  [6] 1   /* alu add */
+  [6] -1  /* back to pdata */
+  [9] immediate
+end
+
+format    /* force immediate value into registers */
+  ! 3 and_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 2    /* alu operation and into */
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 and
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 2    /* alu operation and into */
+  [6] regw
+  [9] immediate
+end
+  
+format
+  ! 0x13 iand    /* pdata & regr -> regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 2    /* alu operation and into */
+  [6] regw
+  [9] 0
+end
+  
+
+format    /* and whatever is in shiftreg with reg */
+  ! 0x13 iand_into
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 2    /* alu operation and into */
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 3 or_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 3    /* alu operation or into */
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 or
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 3    /* alu operation or into */
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 ior
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 3    /* alu operation or into */
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 ior_into
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 3    /* alu operation or into */
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 3 skip_to   /* jump to location stored in reg */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 4   /* alu operation copy */
+  [6] rom_addr
+  [9] 0
+end
+
+format
+  ! 3 copy
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 4   /* alu operation copy */
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 deposit   /* copy the register content thru alu to shift register, not prealigned like preload */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 4   /* alu operation copy */
+  [6] -1  /* pdata */
+  [9] 0
+end
+
+format
+  ! 3 icopy     /* copy the shift register lsb content directly to register, not aligned */
+  % regw
+  [5] opcode
+  [6] -1  /* pdata */
+  [6]  4  /* alu copy */
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 add
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 1
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 iadd       /* regr + pdata -> regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 1
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 sub          /* immediate - regr -> regw */
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 12
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 isub       /* pdata - regr -> regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 12
+  [6] regw
+  [9] 0
+end
+
+
+format
+  ! 3 flip
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 5
+  [6] reg
+  [9] immediate
+end
+  
+format
+  ! 0x13 iflip  /* use shift register as immediate to do xor */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] 0
+end
+  
+format
+  ! 3 xor
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 3 xor_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 5
+  [6] reg
+  [9] immediate
+end
+  
+format
+  ! 0x13 ixor  /* pdata xor regr and store result in regw */
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 5
+  [6] regw
+  [9] 0
+end
+  
+format
+  ! 3 invert
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 8
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 pinvert    /* invert pdata into itself */
+  [5] opcode
+  [6] -1
+  [6] 8
+  [6] -1
+  [9] 0
+end
+
+format
+  ! 3 div                 /* regr div immediate div */
+  % reg
+  % immediate
+  [5] opcode
+  [6] reg
+  [6] 13                   /* generate diven pulse to div */
+  [6] null
+  [9] immediate
+end
+
+format
+  ! 0x13 idiv           /* pdata div regr data ready at most after 41 nops */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 13                   /* generate diven pulse to div */
+  [6] null
+  [9] 0
+end
+
+format
+  ! 3 remainder            /* harvest div remainder */
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 14
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 quotient             /* harvest div quotient */
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 15
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 6
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift2
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 22
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift3
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 18
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift4
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 35
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift8
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 25
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift16
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 34
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 rshift32
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 30
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 7
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift2
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 23
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift8
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 26
+  [6] regw
+  [9] 0
+end
+
+  
+format
+  ! 3 lshift3
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 19
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 lshift4
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 36
+  [6] regw
+  [9] 0
+end
+  
+
+format
+  ! 3 lshift16
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 32
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 random               /* random number into regw */
+  % reg
+  [5] opcode
+  [6] 0
+  [6] 20
+  [6] reg
+  [9] 0
+end
+
+format                     /* bit reverse within a byte */
+  ! 3 reverse
+  % reg
+  % regw
+  [5] opcode
+  [6] reg
+  [6] 27
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 priority    /* priority encode reg into regw, lsb is the top priority, ie, priority(8'b00010000) = 4 */
+  % reg
+  % regw
+  [5] opcode
+  [6] reg
+  [6] 21
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 7 setsect   /* set a section of pdata */
+  % section    /* 0 sets 17:0 of pdata with set_data, 1 sets 35:18, 2 sets 53:36, 3 sets 71:54 */
+  % set_data
+  [5] opcode
+  [7] 0
+  [2] section
+  [18] set_data
+end
+
+format
+  ! 10 preload   /* load stuff into pdata according to fhs format, check us.v */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 0
+  [6] -1
+  [9] 0
+end
+
+format  /* load register with pdata content, according to fhs format, check us.v */
+  ! 10 ialigned   /* all bits are in position */
+  % regw
+  [5] opcode
+  [6] -1
+  [6] 0
+  [6] regw
+  [9] 0
+end
+
+format  /* load register to another according to fhs format */
+  ! 10 aligned
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 0
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 4 branch
+  % addr
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 call
+  % addr
+  % flag
+  [5] opcode
+  [6] 2
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 rtn
+  % flag
+  [5] opcode
+  [6] 3
+  [6] flag
+  [15] 0
+end
+
+format
+  ! 0x0c store          /* write to memory, data from pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0c hstore          /* write to memory, data from pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1c istore        /* write to memory, data from pdata, address from regr then mem_ptr */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg            /* hold address */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] 0
+end
+
+format
+  ! 0x0d fetch          /* read from memory, data into pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d hfetch          /* read from memory, data into pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d crc         /* read from memory, count from loopcnt, put crc result into pdata */
+  % addr
+  [5] opcode
+  [6] 0
+  [1] 0
+  [1] 0
+  [4] 0
+  [15] addr
+end
+
+format
+  ! 0x1d icrc         /* read from memory, address from reg, count from loopcnt, put crc result into pdata */
+  % reg
+  [5] opcode
+  [6] reg             /* hold address */
+  [1] 0
+  [1] 0
+  [4] 0
+  [15] 0
+end
+
+
+format
+  ! 0x1d ifetch         /* read from memory, data into pdata, address from regr then mem_ptr */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg             /* hold address */
+  [1] 0
+  [1] 0
+  [4] num_bytes
+  [15] 0
+end
+
+format
+  ! 0x0c storet          /* write to memory, data from temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0c hstoret          /* write to corereg, data from temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1c istoret        /* write to memory, data from temp, address from regr won't increment */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg            /* hold address */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] 0
+end
+
+format
+  ! 0x0d fetcht          /* read from memory, data into temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d hfetcht          /* read from corereg, data into temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 0               /* memory */
+  [1] 1
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1d ifetcht         /* read from memory, data into temp, address from regr won't increment */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] reg             /* hold address */
+  [1] 0
+  [1] 1
+  [4] num_bytes
+  [15] 0
+end
+
+format
+  ! 0x0e jam
+  % immediate
+  % addr
+  [5] opcode
+  [3] 0
+  [16] addr
+  [8] immediate
+end
+
+format			/* 0x242... */
+  ! 4 nbranch
+  % addr
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 1
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 ncall
+  % addr
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 2
+  [6] flag
+  [15] addr
+end
+
+format
+  ! 4 nrtn
+  % flag
+  [5] opcode
+  [1] 1
+  [5] 3
+  [6] flag
+  [15] 0
+end
+
+format
+  ! 4 nop
+  % addr  /* no-op for addr+2 clocks */
+  [5] opcode
+  [6] 0     
+  [6] 0     /* always */ 
+  [15] addr
+end
+
+format
+  ! 4 clear_stack
+  [5] opcode
+  [6] 4
+  [6] 0    /* always */
+  [15] 0
+end
+
+format
+  ! 6 until
+  % reg
+  % flag
+  [5] opcode
+  [6] reg
+  [6] flag
+  [6] 1
+  [9] 0
+end
+  
+format
+  ! 6 correlate   /* quit if 1. flag is true 2, regr time up 3, found sync,(cond_true) */
+  % reg          /* expire counter to check against */
+  % flag
+  [5] opcode
+  [6] reg
+  [6] flag
+  [6] 2           /* correlate */
+  [9] 0           
+end
+
+format
+  ! 5 compare   /* sets cond flag,  if reg equals immediate */
+  % immediate
+  % reg
+  % mask
+  [5] opcode
+  [6] reg
+  [3] 0
+  [9] mask
+  [9] immediate
+end
+
+format
+  ! 0x15 icompare   /* sets cond flag,  if reg equals pdata */
+  % mask
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 0
+  [9] mask
+  [9] 0
+end
+
+format   /* sets cond. flag, if reg equals LS half of shift reg with MS half of reg being mask */
+  ! 5 iverify
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 2
+  [18] 0
+end
+
+format
+  ! 0x15 qisolate1
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [18] -1
+end
+
+format
+  ! 0x15 qisolate0
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [18] 0
+end
+
+	/* REVAB bug: cannot access bit above 35 */
+format
+  ! 5 isolate1
+  % addr
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [9] -1
+  [9] addr
+end
+
+format
+  ! 5 isolate0
+  % addr
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 3
+  [9] 0
+  [9] addr
+end
+
+format
+  ! 11 setarg
+  % immediate
+  [5] opcode
+  [27] immediate
+end
+
+format
+  ! 0x1b arg
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [21] immediate
+end
+
+  
+format
+  ! 0 sleep
+  [5] opcode
+  [27] 0
+end
+
+format
+  ! 0 snooze
+  [5] opcode
+  [6] -1
+  [21] 0
+end
+
+format
+  ! 0 revision
+  % rev_num
+  [5] opcode
+  [27] rev_num
+end
+
+format
+  ! 0x18 loop   /* branch when loopcnt is NOT zero, and decrease loopcnt */
+  % addr
+  [5] opcode
+  [4] 4
+  [8] 0
+  [15] addr
+end
+
+format
+  ! 0x18 beq   /* branch when pdata is equal to immediate */
+  % imme
+  % addr
+  [5] opcode
+  [4] 0
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bne   /* branch when pdata is NOT equal to immediate */
+  % imme
+  % addr
+  [5] opcode
+  [4] 1
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtneq   /* return when pdata is equal to immediate */
+  % imme
+  [5] opcode
+  [4] 2
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnne   /* return when pdata is NOT equal to immediate */
+  % imme
+  [5] opcode
+  [4] 3
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 bbit1   /* branch when pdata's imme bit is 1 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 5
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bbit0   /* branch when pdata's imme bit is 0 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 6
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtnbit1   /* return when pdata's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 7
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnbit0   /* return when pdata's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 8
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 8	bpatch
+  % imme
+  % addr
+  [5] opcode
+  [4] 9
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 8	bpatchx
+  % imme
+  % addr
+  [5] opcode
+  [4] 14
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bmark1   /* branch when mark's imme bit is 1 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 10
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bmark0   /* branch when mark's imme bit is 0 */
+  % imme
+  % addr
+  [5] opcode
+  [4] 11
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtnmark1   /* return when mark's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 12
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnmark0   /* return when mark's imme bit is 0 */
+  % imme
+  [5] opcode
+  [4] 13
+  [8] imme
+  [15] 0
+end
+
+
+format
+  ! 3 mult                  /* immediate mult regr */  /* the product will be ready 17 clks later */
+  % immediate                                   /* use "product" instruction to get the result */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 16                   /* generate diven pulse to div */
+  [6] null
+  [9] immediate
+end
+
+format
+  ! 0x13 imult           /* pdata mult regr */  /* the product will be ready after 15 nops */
+  % reg                                         /* use product opcode to get the result */
+  [5] opcode
+  [6] reg
+  [6] 16                   /* generate mult pulse to multiplier */
+  [6] null
+  [9] 0
+end
+
+format
+  ! 3 mul32                  /* immediate mult regr */ 
+  % regr
+  % immediate                                  
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 31           
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 imul32           /* pdata mult regr 32x32=64bit */  
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 31                   
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 product              /* harvest mult product */
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 17
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 byteswap
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 33
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 shasx          /* SHA256 Sx operation, immediate is Sx */
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 28
+  [6] regw
+  [9] immediate
+end
+
+
+format
+  ! 0x13 regexrot 	/* regext[0] <- regext[7], regext[1] <- regext[0], regext[2] <- regext[1] ... */
+  [5] opcode
+  [6] 0
+  [6] 29
+  [6] null
+  [9] 0
+end
+
Index: rom/label.format
===================================================================
--- /branch/USB/dongle_sdk/rom/label.format	(revision 0)
+++ /branch/USB/dongle_sdk/rom/label.format	(working copy)
@@ -0,0 +1,3948 @@
+0x2000 start
+0x2001 soft_reset
+0x2012 main_loop
+0x2021 connection_dispatch
+0x2026 connection_incontext
+0x202f connection_nosniff
+0x2038 idle_dispatch
+0x2043 idle_exit
+0x2045 idle_le_create_conn
+0x2048 idle_inquiry
+0x204d idle_inquiry_cancel
+0x2050 idle_remote_name_req
+0x2055 idle_create_conn
+0x2056 idle_create_conn_device
+0x205b idle_create_conn_cont
+0x205c idle_start_page
+0x2062 idle_page_mode_r0
+0x2083 idle_page_fail
+0x2089 idle_name_fail
+0x208f inquiry_dispatch
+0x2095 inquiry_start
+0x209c inquiry_restart
+0x209f inquiry_rx_restart
+0x20a4 inquiry_transmit
+0x20b1 inquiry_check_train
+0x20be inquiry_receive
+0x20c8 inquiry_sync
+0x20ce inquiry_receive_rtn
+0x20cf inquiry_receive_eir_rtn
+0x20d3 master_page
+0x20db master_page_no_interval
+0x20e6 master_npage_timeout
+0x20e9 master_page_timeout
+0x20f0 page_start
+0x20fc page_restart
+0x2101 page_rx_restart
+0x2114 page_exit
+0x211a page_check_train
+0x2128 page_receive
+0x2130 page_sync
+0x2136 page_send_fhs
+0x213a page_send_fhs_continue
+0x2146 page_wait_fhs_reply
+0x2155 page_wait_fhs_reply_ok
+0x215a master_newconn_loop
+0x215f newconn_poll_responded
+0x2166 master_dispatch
+0x2177 master_loop
+0x2180 master_notmatch
+0x2186 master_exit
+0x2188 master_attempt
+0x218b check_master_disconnect
+0x218e check_master_match
+0x219c master_disconnect
+0x21a2 master_name_disconnect
+0x21a4 master_name_error
+0x21a7 check_disconnect_timeout
+0x21ae conn_timer_expired
+0x21b2 linkkey_ready
+0x21bb linkkey_set
+0x21c3 linkkey_set_continue
+0x21c4 generate_linkkey_continue
+0x21c5 clear_linkstate
+0x21c9 role_switch_check
+0x21d3 role_switch_clkn
+0x21d4 role_switch_clke
+0x21d9 role_switch_prepare
+0x21dc role_switch_prepare0
+0x21e1 role_switch_master
+0x21e7 roles_waitfhs_loop
+0x21ec role_switch_fail_master
+0x21f4 roles_replyto_fhs
+0x21fc roles_newconns_loop
+0x2202 roles_newconns_responded
+0x220a context_load
+0x221c context_load_master
+0x2223 context_save
+0x222b context_get_next
+0x222d context_get_next_loop
+0x2231 context_get_next_cont
+0x2239 context_get_next_sniff
+0x223b context_new
+0x2243 context_check_all_wack
+0x224b context_check_esco_wack
+0x2250 context_esco_wack
+0x2252 context_check_idle
+0x2254 context_traverse_linkkey
+0x2257 context_search_conn_handle
+0x2258 context_search_conn_handle2
+0x225a context_search_plap
+0x225c context_search_plap2
+0x225e context_search_insniff
+0x2260 context_search_sniff_window
+0x2261 context_search
+0x2264 context_search_loop
+0x2266 context_search_next
+0x226a context_search_empty
+0x226e context_search_lap
+0x2270 context_search_lap_cont
+0x2275 context_search_handle
+0x227b context_search_sniff
+0x227c context_search_sniff_loop
+0x2289 context_search_sniff_sc
+0x228c context_search_meet1
+0x228d context_search_meet
+0x2291 context_search_sniff_miss
+0x2297 sign_pdata_temp
+0x22a1 sign_pdata_temp_p0
+0x22a7 context_check_inconn
+0x22aa context_check_a_wack
+0x22b3 context_get_anchor
+0x22bf context_next_anchor
+0x22c6 context_search_window
+0x22cf context_traverse_clearkey
+0x22da master_conn_send_packet
+0x22dc master_send_packet
+0x22e4 master_conn_recv_packet
+0x22e6 master_recv_packet
+0x22ee master_rx_conn_finish_packet
+0x22f2 master_newconn_once
+0x22f8 inquiry_scan_dispatch
+0x2308 inquiry_scan_start
+0x2332 send_eir
+0x2354 get_all_uuid
+0x2358 lshift_loop
+0x236a page_scan_dispatch
+0x237a page_scan_start
+0x239b page_scan_wait_fhs_restart
+0x23a4 page_scan_wait_fhs_again
+0x23ab page_scan_reply_to_fhs
+0x23b8 slave_apply_clke_bt
+0x23bc slave_apply_clke_bt_now
+0x23bf start_slave_connection
+0x23c3 slave_newconn_loop
+0x23c8 sconn_successful
+0x23cf slave_dispatch
+0x23d3 slave_loop
+0x23e2 slave_notmatch
+0x23eb slave_disconnect
+0x23f3 role_switch_slave
+0x23fb roles_sendfhs_loop
+0x240d roles_got_fhs_reply
+0x2410 roles_newconn_loop
+0x2419 roles_newconn_responded
+0x241f roles_newconn_nolmp
+0x242a init_rx_packet_flags
+0x2435 prepare_newconn
+0x2440 newconn_init
+0x244f clear_linkkey
+0x2455 new_conn_timeout
+0x2459 new_conn_handle
+0x245d quit_connection
+0x2462 quit_connection_name
+0x2466 quit_connection_cont
+0x2476 quit_connection_not_clear_mark
+0x2478 quit_connection_not_clear_tx
+0x247c slave_newconn_once
+0x2489 prepare_tx
+0x2495 prepare_tx_not_esco
+0x2496 prepare_tx_not_sco
+0x249b prepare_tx_retransmit
+0x24a5 prepare_tx_nomore_retransmit
+0x24a7 prepare_tx_no_retransmit
+0x24b0 prepare_tx_pollnull
+0x24b4 prepare_tx_loopback
+0x24ba prepare_tx_txpat
+0x24be prepare_tx_sendlmp
+0x24c0 prepare_tx_sendl2cap
+0x24c1 set_wait_ack
+0x24ca tx_l2cap_type
+0x24e0 tx_l2cap_type_edr
+0x24f0 slave_receive_master_slot
+0x24f5 slave_receive_notsniff
+0x24f6 slave_receive_access
+0x24f7 slave_receive_sniff
+0x2514 slave_conn_recv_packet
+0x251c receive_packet
+0x251e receive_packet_whitened
+0x2533 receive_packet_noedr
+0x253c receive_packet_amchk
+0x254b am_addr_match
+0x254c am_addr_ok
+0x255b arqn_bypass
+0x2568 failed_seqn
+0x2569 rx_type_dispatch
+0x2578 process_hev
+0x257e process_hev_loop
+0x2587 process_poll
+0x2588 process_dm5
+0x2589 process_dm1
+0x258b process_dh5
+0x258c process_3dh1
+0x258d process_dh1
+0x258e process_dmh
+0x259a process_dmh_noedr
+0x25a5 process_dmh_long
+0x25a8 process_dmh_common
+0x25ba process_lmp
+0x25bf process_dmh_data_l2cap_start_pkt
+0x25c9 process_dmh_data_into_buff1
+0x25ce process_dmh_data_into_buff2
+0x25d3 process_dmh_data_l2cap_continue_pkt
+0x25dd process_dmh_data_l2cap_continue_pkt1
+0x25e1 process_dmh_data_l2cap_continue_pkt2
+0x25e4 process_dmh_data
+0x25e8 process_dmh_data_end
+0x25f9 process_l2cap_pass_crc_buff1
+0x2603 process_l2cap_pass_crc_buff2
+0x260d process_dmh_cont
+0x2616 process_dmh_cont_rxbuf_not_use
+0x2620 ack_payload
+0x2631 error_header
+0x2637 error_payload_crc
+0x263d error_payload
+0x263e discard_pkt
+0x2642 discard_pkt_lmp
+0x2646 discard_pkt_l2cap
+0x264a redundant_payload
+0x264d end_of_packet
+0x2659 process_fhs
+0x266e fhs_parity_ok
+0x2687 clear_got_tx
+0x269c clear_got_txlmp
+0x26a8 clear_lmp_escape
+0x26ab clear_send_setup_complete
+0x26b0 sco_link_req_by_slave
+0x26b5 clean_mem_mode
+0x26b8 start_encryption
+0x26c0 stop_encryption
+0x26c6 sniff_init
+0x26cc sniff_init_master
+0x26d6 sniff_init_nowrap
+0x26e9 sniff_exit
+0x26f3 check_attempt
+0x26fe check_attempt_nomore
+0x2700 check_attempt_sniff
+0x2706 check_attempt_sniff_restore_sco
+0x2709 check_attempt_sco_master
+0x270f check_attempt_not_sco
+0x2718 check_attempt_notimeout
+0x271c sniff_check_window
+0x2725 check_esco_amaddr
+0x2728 parse_l2cap
+0x272a parse_l2cap_cont
+0x273b parse_l2cap_release_buff1
+0x2741 parse_l2cap_release_buff2
+0x2747 l2cap_buff1_inuse
+0x274b l2cap_buff2_inuse
+0x274f slave_send_access
+0x2757 slave_conn_send_packet
+0x2761 slave_conn_send_access
+0x2762 transmit_packet
+0x2766 transmit_packet_whitened
+0x278c transmit_hev
+0x2792 transmit_ev_loop
+0x2797 transmit_fhs
+0x27b4 transmit_lmp
+0x27bc transmit_lmp_loop
+0x27c2 transmit_lmp_finish
+0x27c5 transmit_dm1
+0x27c7 transmit_dm5
+0x27ca transmit_3dh1
+0x27cb transmit_dh1
+0x27cd transmit_dh5
+0x27d0 transmit_dmh
+0x27df transmit_edr3m
+0x27e3 transmit_edr_sync_end
+0x27e5 transmit_noedr
+0x27ef transmit_long
+0x27f0 transmit_stuff
+0x27f4 transmit_stuff_loop
+0x27f7 transmit_end
+0x2800 transmit_loopback
+0x2802 transmit_loopback_short
+0x2808 transmit_loopback_long
+0x280d transmit_loopback_cont
+0x280e transmit_loopback_loop
+0x2814 transmit_loopback_end
+0x2818 apply_switch_clke
+0x281e apply_switch_nozero
+0x2821 apply_switch_loop
+0x2825 apply_switch_bt
+0x2826 apply_switch_wait_loop
+0x282d calc_slot_offset
+0x2837 calc_bt_portion
+0x2839 calc_slot_offset_loop
+0x283b calc_skip_bt
+0x2841 calc_clke_offset
+0x284c calc_clke_pos
+0x2850 calc_clke
+0x2854 calc_clke2
+0x285c calc_clke_pos2
+0x285e calc_clke_pos_adj
+0x2860 calc_radio_freq
+0x2869 freq_not_connection
+0x286a do_hop_mod_now
+0x2872 odd_half
+0x2874 freq_result
+0x2877 afh_process_0
+0x2885 afh_process_con
+0x2892 afh_process_1
+0x289e afh_process_end
+0x28a1 afh_same_channel
+0x28a4 afh_clear
+0x28a9 afh_process_freq_map
+0x28b0 process_freq_3
+0x28b5 process_freq_1
+0x28b9 process_freq_0
+0x28c2 process_freq_2
+0x28cc rx_radio_freq
+0x28d1 rx_radio_freq_now
+0x28d2 tx_radio_freq
+0x28d7 tx_radio_freq_now
+0x28d8 fetch_giac
+0x28dc fetch_page_bt_adr
+0x28e2 fetch_self_bt_adr
+0x28ea fetch_extm_bt_adr
+0x28f2 fetch_diac
+0x28f5 fetch_diac_do
+0x28f9 shutdown_radio
+0x2908 shutdown_radio_0db
+0x290a shutdown_radio0
+0x2915 shutdown_radio_3db
+0x2918 set_sync_on
+0x291f set_freq_rx
+0x2924 rf_rx_enable
+0x292d set_freq_tx_offset
+0x292f set_freq_tx_0m_offset
+0x2931 set_freq_tx_2m_offset
+0x2933 set_freq_tx
+0x2939 txon
+0x2944 txon_power_select
+0x294b set_tx_power_0db
+0x294f set_tx_power_3db
+0x2953 set_tx_power_5db
+0x2957 set_tx_power_f3db
+0x295b set_tx_power_f5db
+0x295f set_tx_power_pair
+0x2965 txon_common
+0x296c initialize_radio
+0x296d initialize_radio_wait
+0x2971 initialize_radio_loop
+0x2977 initialize_radio_cont
+0x2981 rf_write_freq
+0x2998 do_rccal
+0x29a3 do_rccal_loop
+0x29a6 do_rccal_end
+0x29ab set_rccal
+0x29bb save_rssi
+0x29c0 bcd
+0x29c9 switchto_dpllclk
+0x29e7 xtal_fast_wake
+0x29e9 init_lpm_ctrl
+0x29eb start_receiver
+0x29f1 prep_crypt
+0x29ff wait_access_end
+0x2a07 wait_access_mhalfbnd
+0x2a08 wait_access_mhalfbnd_correlate
+0x2a0d wait_access_clkn_rt
+0x2a14 wait_access_forever
+0x2a1c reserve_slot
+0x2a24 ahead_window
+0x2a33 setup_clk
+0x2a36 skip_setup_clke
+0x2a38 setup_clkn
+0x2a3a skip_setup_clkn
+0x2a3b setup_clknbt
+0x2a3e setup_complete
+0x2a47 setup_clk11
+0x2a4a rf_setup_time
+0x2a4d rf_setup_time_slave_slot
+0x2a4f rf_setup_time_master_slot
+0x2a51 start_transmitter
+0x2a56 start_tx_native
+0x2a5b start_rx_native
+0x2a5f start_tx_external
+0x2a64 send_access_word
+0x2a6b scan_mode_whiten
+0x2a6f get_free_amaddr
+0x2a74 get_free_amaddr_cont
+0x2a77 get_clk
+0x2a7b get_clkbt
+0x2a7f supervision_update
+0x2a88 supervision_flush
+0x2a8c assert
+0x2a8e loop
+0x2a8f sleep
+0x2a92 sleep_loop
+0x2a96 init_param
+0x2abc lpmstate
+0x2acc lpmwake
+0x2adf lpm_load_context
+0x2aef lpm_save_context
+0x2afa lpo_calibration
+0x2b00 lpo_cal_inited
+0x2b05 lpm_adjust_clk
+0x2b15 lpm_adjust_positive
+0x2b18 lpm_clear_counter
+0x2b1b lpm_doze
+0x2b1f lpm_hibernate
+0x2b23 lpm_hibernate_normal
+0x2b2a lpm_sleep
+0x2b3c lpm_enter_sleep
+0x2b41 lpm_recover_clk
+0x2b4a lpm_recover_xtal
+0x2b4c lpm_recover_timeout
+0x2b6a lpm_dispatch
+0x2b74 lpm_dispatch_next
+0x2b7f lpm_dispatch_next2
+0x2b93 lpm_dispatch_sleep
+0x2b94 lpm_dispatch_lpo
+0x2b9d lpm_dispatch_unconn
+0x2ba5 lpm_unconn_nossp
+0x2baa lpm_unconn_cont
+0x2bac lpm_sleep_btclk
+0x2bb1 lpm_set_mult
+0x2bc0 lpm_mult_wait_timeout
+0x2bc7 classic_bt_set_mult_short_flag
+0x2bc9 classic_bt_clr_mult_short_flag
+0x2bcb lpm_match
+0x2bd0 lpm_not_match
+0x2bd6 lpm_lost
+0x2bde lpm_mult_short
+0x2be2 lpm_mult_long
+0x2be5 lpm_cal_xtal_startup
+0x2bfd lpm_cal_xtal_startup_by_snooze
+0x2c18 lpm_write_config
+0x2c21 lpm_write_ctrl
+0x2c23 lpm_write_ctrl2
+0x2c24 lpm_write
+0x2c29 lpm_write_gpio_wakeup
+0x2c32 lpm_get_wake_lock
+0x2c36 lpm_put_wake_lock
+0x2c3a lpm_check_wake_lock
+0x2c5b lpm_uart_wake_lock
+0x2c60 lpm_shut_down
+0x2c65 lpm_disable_exen_output
+0x2c69 check_bt_disabled
+0x2c6c check_ble_disabled
+0x2c6f check_module_disabled
+0x2c72 g24_dispatch
+0x2c7a g24_head_ptr2regc
+0x2c7d g24_receive_process_init
+0x2c7f g24_receive_process
+0x2c83 g24_pair_init
+0x2c8a g24_ch
+0x2c90 g24_ch_temp_incre_size4
+0x2c94 g24_ch_calc
+0x2c9d g24_set_device_addr
+0x2ca9 g24_transmit_rf_sta_init
+0x2cac g24_transmit_rf_ctrl_clear
+0x2caf g24_hop_ch_enable
+0x2cb3 g24_transmit_hop_pac_fail
+0x2cb7 g24_transmit_hop_pac_fail_wo_hop
+0x2cb8 g24_transmit_hop_pac_fail_stage1
+0x2cbc g24_transmit_hop_pac_fail_hop_stage2
+0x2cbe g24_transmit_pac_fail_hop_stage3
+0x2cc8 g24_rf_hop_attemp_again
+0x2cca g24_rf_hop_fastly
+0x2cd2 g24_rf_hop_fastly_exit
+0x2cd4 g24_set0_mem_hop_fastly_cnt
+0x2cd5 g24_store_mem_hop_fastly_cnt
+0x2cd7 g24_transmit_hop_pac_succ_wo_hop
+0x2cd8 g24_transmit_hop_pac_succ
+0x2cdb g24_transmit_succ_rf_config
+0x2ce4 g24_rf_sta_check
+0x2ce9 g24_rf_laststa_synccnt_check
+0x2cf4 g24_rf_sync_cnt_check
+0x2cfd g24_store_mem_rf_work_stage
+0x2cff g24_rf_hop_attemp
+0x2d04 g24_set2_mem_max_retry
+0x2d06 g24_transmit_process
+0x2d0f g24_transmit_without_int
+0x2d14 g24_transmit_start
+0x2d16 g24_transmit_exit
+0x2d18 g24_timer_timeout
+0x2d1b g24_interval_calibrate
+0x2d23 g24_interval_max
+0x2d25 g24_interval_update
+0x2d27 g24_interval_min
+0x2d2c g24_txdata_prep
+0x2d33 g24_txdata_enable_tx
+0x2d34 g24_store_mem_ensure
+0x2d36 g24_txdata_last_pac
+0x2d3a g24_package_data
+0x2d4c g24_put_data_in_buff
+0x2d53 g24_transmit_prep
+0x2d6b g24_send_abort_packet
+0x2d77 g24_put_data_in_buff_pre
+0x2d7d g24_enter_lpm
+0x2d80 g24_enter_lpm_prepare
+0x2d83 g24_lpm_long_sleep
+0x2d8f g24_transmit_packet
+0x2d92 g24_transmit_loop
+0x2d97 g24_transmit_next_packet
+0x2d9f g24_transmit_abandon
+0x2da4 g24_transmit_receive_ack
+0x2dac g24_transmit_no_ack
+0x2dae g24_retransmit
+0x2dcc g24_tx_paring_retry
+0x2dd2 g24_tx_attempt_fail
+0x2dd4 g24_stop_24g_mode
+0x2dd6 g24_ackpayload_parse
+0x2dde g24_read_len_pid_crc
+0x2dee g24_prep
+0x2df3 g24_set_freq_tx
+0x2df7 g24_transmit
+0x2e06 g24tr_loop
+0x2e11 g24_receive_packet
+0x2e17 g24_receive_rxon
+0x2e33 g24_receive_skip
+0x2e39 g24rx_loop
+0x2e3d g24rx_nopayload
+0x2e45 g24_end_of_packet
+0x2e4d g24_sync_timeout
+0x2e4f rssi_noise
+0x2e56 g24_contw_istoret_1byte
+0x2e58 rssi_noise_store
+0x2e5a rssi_store
+0x2e62 rssi_average
+0x2e64 rssi_average_loop
+0x2e69 g24_power_ctrl_init
+0x2e6d g24_power_ctrl_reinit
+0x2e71 g24_power_ctrl_pac_incrs
+0x2e73 g24_store_mem_power_ctrl_pac
+0x2e75 g24_power_ctrl_ack_incrs
+0x2e7a g24_power_ctrl
+0x2e8d g24_power_ctrl_incrs
+0x2e93 g24_power_ctrl_incrs_level2
+0x2e99 g24_power_ctrl_decrs
+0x2e9f g24_power_ctrl_incrs_level1
+0x2ea4 g24_iadd_offset_mem_txpower
+0x2ea5 g24_ifetch_rega_store_mem_txpower
+0x2ea7 g24_power_ctrl_decrs_level0
+0x2ead g24_start_pairing_sm1
+0x2eaf g24_set_pairing_sm_1
+0x2eb1 g24_pairing_sm
+0x2eb9 g24_pairing_sm_1
+0x2ebd g24_pairing_sm_2
+0x2ec1 g24_pairing_sm_3
+0x2ec4 g24_pairing_sm_common
+0x2ec9 g24_put_pairing_data_in_buff
+0x2ed0 g24_paring_mode
+0x2ed6 g24_pairing_sm_1_waiting_ack
+0x2ed9 g24_pairing_sm_2_waiting_ack
+0x2edc g24_pairing_sm_3_waiting_ack
+0x2ee4 g24_auto_pair_start
+0x2ee7 g24_auto_pair_restart
+0x2ee8 g24_auto_pair_start_loop
+0x2efa g24_auto_pair_retry
+0x2f04 g24_fetch_mem_auto_paring_switch
+0x2f06 g24_store_mem_auto_paring_switch
+0x2f08 g24_auto_pair_set_device_info
+0x2f0c g24_auto_pair_device_attemp
+0x2f0e g24_auto_pair_pair_attemp
+0x2f10 g24_start_24g_mode
+0x2f16 g24_tx_attemp_dongle_loop
+0x2f1c g24_tx_attemp_dongle_succ
+0x2f22 g24_tx_attemp_data_prep
+0x2f27 g24_attemp_txdata_retry
+0x2f2c g24_check_51cmd_start_24g
+0x2f30 dongle_init
+0x2f3d g24_receive_init
+0x2f41 dongle_all_powerful
+0x2f42 dongle_all_powerful_loop
+0x2f45 dongle_pc_bind
+0x2f47 dongle_pc_bind_loop
+0x2f4c dongle_check_mode
+0x2f4f g24_dongle_work_mode
+0x2f51 g24_dongle_work_mode_start
+0x2f55 g24_dongle_work_init
+0x2f5e g24_rx_interrupt_clear
+0x2f61 g24_dongle_init
+0x2f65 g24_ch_process
+0x2f81 g24_ch_update
+0x2f88 g24_ch_timer_reinit
+0x2f8d g24_noise_rssi
+0x2f94 g24_noise_rssi_average
+0x2f96 g24_blank_data_process
+0x2f99 g24_ms_blank_data
+0x2fa0 g24_ms_blank_data_2usb
+0x2fa5 g24_kb_blank_data
+0x2fac g24_kb_blank_data_2usb
+0x2fb1 g24_kb_mul_blank_data
+0x2fb8 g24_kb_mul_blank_data_2usb
+0x2fbd g24_dongle_bind_mode
+0x2fc1 g24_dongle_bind_init
+0x2fcb g24_dongle_bind_data_process
+0x2fd9 g24_dongle_bind_first_step
+0x2fdd g24_dongle_bind_first_step_mouse
+0x2fdf g24_dongle_bind_ms_payload_cfg
+0x2fe1 g24_dongle_bind_payload_cfg
+0x2fe8 g24_dongle_bind_first_step_keyboard
+0x2fea g24_dongle_bind_kb_payload_cfg
+0x2fed g24_dongle_bind_second_step
+0x2ff1 g24_dongle_bind_second_step_mouse
+0x2ff6 g24_dongle_ms_bind_step_set2
+0x2ff7 g24_store_mem_ms_bind_step
+0x2ff9 g24_dongle_bind_second_step_keyboard
+0x2ffe g24_dongle_kb_bind_step_set2
+0x2fff g24_store_mem_kb_bind_step
+0x3001 g24_dongle_bind_third_step
+0x3005 g24_dongle_bind_third_step_mouse
+0x3009 g24_dongle_ms_bind_step_success
+0x300c g24_dongle_bind_exit
+0x3011 g24_dongle_bind_third_step_keyboard
+0x3015 g24_dongle_kb_bind_step_success
+0x3019 dongle_usb_dispatch
+0x302a usb0_data_ready_report_set0
+0x302c dongle_dispose_cmd_bind
+0x3031 dongle_dispose_cmd_get_bind
+0x3034 dongle_dispose_cmd_exit_bind
+0x3039 dongle_dispose_in_bind_mode
+0x303b dongle_dispose_cmd_mode
+0x303e dongle_enter_bind_mode
+0x303f usb0_data_ready_report_set1
+0x3041 dongle_dispose_cmd_current_project
+0x3043 dongle_dispose_cmd_current_mode
+0x3047 dongle_dispose_in_work_mode
+0x3049 dongle_dispose_cmd_current_fw_version
+0x304d dongle_dispose_cmd_user_defined
+0x3055 dongle_auto_bind
+0x3057 dongle_auto_bind_loop
+0x305a g24_dongle_work_mode_auto
+0x305e g24_dongle_bind_mode_auto
+0x3067 g24_timer_init
+0x306a g24_timer_check
+0x307d g24_mode_switch_init
+0x3084 g24_mode_switch
+0x3090 g24_bind_mode_enable
+0x3093 g24_enable_nodata_timer
+0x3095 g24_enable_nodata_timer_init
+0x3098 g24_rx_nodata_process
+0x30a2 g24_dongle_search_mode_auto
+0x30bc g24_dongle_search_addr_check
+0x30be g24_fetch_mem_addr_isub_temp
+0x30c1 g24_dg_ch_num_reinit
+0x30c3 g24_current_ch_num_reinit
+0x30c5 g24_kb_ch_num_reinit
+0x30c8 g24_ms_ch_num_reinit
+0x30cb g24_dongle_search_mode_init
+0x30e0 g24_rx_auto_addr_ch_search
+0x30ea g24_rx_auto_bind_config_mouse
+0x3106 g24_store_mem_ms_last_ch
+0x3108 g24_ms_config_ch_once
+0x310e g24_rx_auto_bind_config_kb
+0x312a g24_store_mem_kb_last_ch
+0x312c g24_kb_config_ch_once
+0x3132 g24_rx_auto_bind_config_dongle
+0x314a g24_store_mem_dg_last_ch
+0x314c g24_dg_config_ch_once
+0x314f g24_dg_store_config_ch
+0x3152 g24_transmit_ack
+0x3159 g24tx_with_ack
+0x315c g24tx_no_ack
+0x315d g24_ackpayload_prep
+0x316b g24_receive_packet_start
+0x316e g24_receive_transmit_ack
+0x3172 g24_receive_packet_parse
+0x3188 g24_receive_packet_parse_pid_crc
+0x319e g24_data_type1
+0x31b0 dongle_rxdata_type1
+0x31b8 g24_data_type1_usbtx_enable
+0x31b9 g24_data_type1_usbtx_enable_ep2
+0x31bd g24_ms_enable_blank_data_forcibly
+0x31bf g24_ms_enable_blank_data_timer
+0x31c2 g24_ms_disable_blank_data_forcibly
+0x31c3 g24_ms_disable_blank_data_timer
+0x31c6 g24_data_type2
+0x31e0 g24_data_type2_reverse_data
+0x31e4 g24_kb_enable_blank_data_forcibly
+0x31e6 g24_kb_enable_blank_data_timer
+0x31e9 g24_kb_disable_blank_data_forcibly
+0x31ea g24_kb_disable_blank_data_timer
+0x31ed g24_kb_data_into_ep1_fifo
+0x31f2 g24_data_type3
+0x3207 g24_kb_mul_data_into_ep2_fifo
+0x3209 g24_kb_mul_enable_blank_data_forcibly
+0x320b g24_kb_mul_enable_blank_data_timer
+0x320e g24_kb_mul_disable_blank_data_forcibly
+0x320f g24_kb_mul_disable_blank_data_timer
+0x3212 g24_data_attemp
+0x3216 g24_data_attemp_mouse
+0x321b g24_data_attemp_kbd
+0x3220 g24_store_mem_24g_mode
+0x3224 g24_fetch_mem_device_addr
+0x3227 g24_store_mem_device_addr
+0x322a g24_fetch_mem_addr
+0x322c g24_store_mem_addr
+0x322d g24_contw_istore_4byte
+0x322f g24_store_mem_ch
+0x3231 g24_set0_mem_pid
+0x3232 g24_store_mem_pid
+0x3235 g24_store_mem_txpayload
+0x3237 g24_set4_mem_max_retry
+0x3238 g24_store_mem_max_retry
+0x323a g24_fetch_mem_data_type
+0x323c g24_store_mem_data_type
+0x323e g24_set2_mem_sync_cnt
+0x323f g24_store_mem_sync_cnt
+0x3241 g24_set1_mem_rf_last_sta
+0x3242 g24_store_mem_rf_last_sta
+0x3245 g24_fetch_mem_hop_pac
+0x3248 g24_set1_mem_hop_pac
+0x3249 g24_store_mem_hop_pac
+0x324c g24_fetch_mem_abort_pac
+0x324f g24_set1_mem_abort_pac
+0x3250 g24_store_mem_abort_pac
+0x3253 g24_fetch_mem_pairing_sm
+0x3256 g24_store_mem_pairing_sm
+0x3258 g24_fetch_mem_rf_hop_ch
+0x325a g24_set0_mem_rf_hop_ch
+0x325b g24_store_mem_rf_hop_ch
+0x325d g24_fetch_mem_rf_work_stage
+0x325f g24_fetch_mem_rxbuf_add1
+0x3261 g24_fetch_mem_check_dongle_times
+0x3263 g24_set0_mem_check_dongle_times
+0x3264 g24_store_mem_check_dongle_times
+0x3267 g24_store_mem_tx_power
+0x326a g24_store_mem_txpower
+0x326c g24_store_mem_tx_power_temp
+0x3270 g24_fetch_mem_power_ctrl_pac
+0x3272 g24_store_mem_power_ctrl_level
+0x3274 g24_fetcht_mem_rxdata_temp
+0x3275 g24_set_rega_ifetcht_1byte
+0x3278 g24_fetch_mem_rf_laststa
+0x327a g24_set0_mem_rf_laststa
+0x327b g24_store_mem_rf_laststa
+0x327d g24_fetch_mem_rx_addr
+0x327e g24_set_rega_ifetch_4byte
+0x327f g24_rega_ifetch_4byte
+0x3281 g24_fetch_mem_time_slice
+0x3283 g24_set0_mem_time_slice
+0x3284 g24_store_mem_time_slice
+0x3286 g24_set0_mem_mode_switch
+0x3287 g24_store_mem_mode_switch
+0x3289 g24_store_mem_bind_payload
+0x328b g24_fetch_mem_bind_device_status
+0x328d g24_store_mem_bind_device_status
+0x328f g24_fetch_mem_dongle_work_mode
+0x3291 g24_set_work_mem_dongle_work_mode
+0x3292 g24_store_mem_dongle_work_mode
+0x3294 g24_fetch_mem_dongle_mode_init
+0x3296 g24_set0_mem_dongle_mode_init
+0x3297 g24_store_mem_dongle_mode_init
+0x3299 g24_set0_mem_ackpayload_enable
+0x329a g24_store_mem_ackpayload_enable
+0x329c g24_set1_mem_ackpayload_enable
+0x329e g24_fetch_mem_rxdata_temp_add3_7byte
+0x32a2 g24_fetch_mem_nodata_timer_enable
+0x32a4 g24_set0_mem_nodata_timer_enable
+0x32a5 g24_store_mem_nodata_timer_enable
+0x32a7 g24_set0_mem_ms_blank_data_enable
+0x32a8 g24_store_mem_ms_blank_data_enable
+0x32aa g24_set0_mem_kb_blank_data_enable
+0x32ab g24_store_mem_kb_blank_data_enable
+0x32ad g24_set0_mem_kb_mul_blank_data_enable
+0x32ae g24_store_mem_kb_mul_blank_data_enable
+0x32b0 g24_store_mem_power_ctrl_threshold_up
+0x32b2 g24_store_mem_power_ctrl_threshold_down
+0x32b3 g24_set_contw_with_regb_store_1byte
+0x32b4 g24_contw_istore_1byte
+0x32b6 g24_fetch_mem_pair_mode
+0x32b8 g24_store_mem_pair_mode
+0x32ba g24_store_mem_pair_txpower
+0x32bd g24_fetch_mem_rxdata_temp_add3_1byte
+0x32bf g24_set_contw_with_temp
+0x32c4 g24_set_contw_with_temp_store_3byte
+0x32c5 g24_contw_istore_3byte
+0x32c7 g24_set_contw_with_regb
+0x32c8 g24_set_contw_with_regb2
+0x32cd g24_set_rega
+0x32d0 g24_set_rega_ifetch_1byte
+0x32d1 g24_rega_ifetch_1byte
+0x32d3 g24_set_rega_ifetcht_4byte
+0x32d6 g24_mem_set0
+0x32d8 app_init
+0x32e3 app_lpm_init
+0x32ec app_lpm_init0
+0x32ed app_process_idle
+0x32f2 app_process_bt
+0x32f4 app_process_ble
+0x32f6 app_process_bb_event
+0x32fd app_discard_event
+0x32ff app_event_normal_process
+0x3311 app_evt_bt_conn
+0x3318 app_event_switch_success
+0x331a app_event_switch_fail_master
+0x3324 app_process_bb_event_priority
+0x3326 app_check_wake_lock
+0x3328 app_will_enter_lpm
+0x332a app_event_linkkey_generate
+0x332e app_event_reconn_start
+0x3335 app_evt_setup_complete
+0x333c app_evt_hid_handshake
+0x3340 app_event_enter_sniff
+0x3347 app_event_exit_sniff
+0x334b app_le_event_bb_connected
+0x334f app_le_event_bb_disconn
+0x3353 app_bb_event_hid_connected
+0x3357 app_evt_button_long_pressed
+0x335b app_event_ml2cap_conn_refused
+0x335f app_evt_timer
+0x3361 app_evt_100ms_loop
+0x336d timer_single_step
+0x3374 timer_single_step_2b
+0x337b app_power_timer
+0x337f app_power_timer_timeout
+0x3381 app_enter_power_off_state
+0x3382 app_enter_power_stanby_state
+0x3385 app_power_cb_common
+0x3387 app_unsniff_delay_timer
+0x338a app_unsniff_delay_timeout
+0x338d app_discovery_timer
+0x3390 app_discovery_timeout
+0x3394 app_bb_event_reconn_failed
+0x3395 app_clear_reconnect_flag
+0x3399 app_bb_event_bb_disconn
+0x339e app_bb_event_bb_reconn_disconn
+0x33a7 app_bb_hibernate
+0x33a9 app_disconn_reason_clear
+0x33ac app_disconn_reason_flag_clear
+0x33af app_disconn_reason_collect_bt
+0x33b4 app_disconn_reason_collect_ble
+0x33ba app_check_sniff
+0x33bd app_initflag_store
+0x33be app_flag_store
+0x33c4 app_initflag_check
+0x33cd app_start_auto_sniff
+0x33d0 app_get_lpm_wake_lock
+0x33d2 app_put_lpm_wake_lock
+0x33d4 app_lpm_wake_auto_lock
+0x33d6 app_lpm_wake_auto_lock_timer
+0x33d9 app_l2cap_flow_control_enable
+0x33db app_l2cap_flow_control_disable
+0x33dd app_bt_set_pincode
+0x33df app_bt_role_switch
+0x33e1 app_bt_start_reconnect
+0x33e7 app_bt_reconnect_cancel
+0x33e9 app_bt_disconnect
+0x33eb app_bt_start_discovery_short
+0x33ed app_bt_start_discovery_led_blink
+0x33ee app_bt_start_discovery
+0x33f0 app_bt_stop_discovery
+0x33f4 app_ble_start_direct_adv
+0x33f6 app_ble_stop_direct_adv
+0x33f8 app_ble_stop_adv
+0x33fa app_ble_start_adv
+0x33fc app_ble_start_scan
+0x33fe app_ble_stop_scan
+0x3400 app_ble_start_conn
+0x3402 app_ble_disconnect
+0x3404 app_led_start_blink
+0x3406 app_led_on
+0x3408 app_led_off
+0x340a app_enter_hibernate
+0x340c app_bt_sniff_exit
+0x340e app_bt_enter_sniff
+0x3410 app_ble_store_reconn_info
+0x3412 app_bt_store_reconn_info
+0x3414 app_store_reconn_info
+0x3416 app_lpm_mult_enable
+0x3418 app_lpm_mult_disable
+0x341a app_button_long_pressed
+0x341c app_power_starting
+0x3420 app_power_common
+0x3424 app_power_shutting_down
+0x3429 app_power_off_end
+0x342d app_got_power_state_common
+0x3431 app_event_button_up
+0x3434 app_power_release
+0x3436 antilost_init
+0x3463 antilost_le_before_hibernate
+0x3465 antilost_le_notification
+0x346c antilost_power_standby_cb
+0x3470 antilost_lpm_lock_process
+0x3479 antilost_lpm_ctrl_for_led_buzzer
+0x347e antilost_bb_event_process
+0x3485 antilost_le_conn_param_update_rsp_recieved
+0x3487 antilost_le_conn_param_accepted
+0x3489 antilost_le_conn_param_updata_procedure_sucsess
+0x348c antilost_le_conn_param_rejected
+0x348e antilost_conn_param_retransimiting
+0x34a0 antilost_conn_param_updata_procedure_faild
+0x34a2 antilost_master_nonsupport_latency
+0x34b2 antilost_le_bb_event_timer
+0x34b9 antilost_double_click_timer
+0x34bc antilost_double_click_timeout
+0x34be antilost_le_fast_adv_timer
+0x34c1 antilost_le_fast_adv_timeout
+0x34c4 antilost_conn_update_timer
+0x34c7 antilost_conn_update_timer_time_out
+0x34ca antilost_app_updata_le_param_timer
+0x34cd antilost_app_updata_le_param_timeout
+0x34d3 antilost_wait_for_updata_param_instant_expire
+0x34d5 antilost_le_sleep_timer
+0x34d8 antilost_le_sleep_timer_timeout
+0x34d9 antilost_adc_check_timer
+0x34dc antilost_adc_check_timer_timeout
+0x34df antilost_le_process_conn
+0x34e8 antilost_le_process_discon
+0x34f4 antilost_le_conn_process
+0x34f5 antilost_idle_process
+0x34f8 antilost_power_starting_cb
+0x34fb antilost_power_common
+0x34fc antilost_power_off_cb
+0x3501 antilost_le_receive_data_process
+0x3504 antilost_le_parse_att_write_request
+0x3508 antilost_key_process
+0x350b antilost_key_up_down
+0x350d antilost_key_is_down
+0x3510 antilost_key_is_up
+0x3513 antilost_key0_down
+0x351b antilost_key0_up
+0x351d antilost_double_click_timer_init
+0x3521 antilost_butten_down_after_conn
+0x3527 antilost_click_once
+0x352b antilost_click_twice
+0x3532 antilost_butten_down_while_disconn
+0x3536 antilost_cmd_parse_for_application
+0x353c antilost_on_of_alram
+0x3540 antilost_configuration_for_alram
+0x3544 antilost_prepare_data_and_send
+0x3551 antilost_alert_on
+0x355c antilost_alert_off
+0x3564 antilost_set_start_alarm_after_disconn
+0x3569 antilost_set_no_alarm_after_disconn
+0x356e antilost_on_off_alarm_after_disconn
+0x3571 antilost_notify_alarm_config_first_time
+0x3582 antilost_buzzer_configuration
+0x3584 antilost_led_configuration
+0x3585 antilost_configuration_common
+0x3586 antilost_led_buzzer_stop_blink
+0x358c antilost_led_buzzer_style_configuration
+0x358f antilost_fast_adv_start
+0x3591 antilost_adv_start_common
+0x3596 antilost_adv_interval_lpm_interval_set
+0x359b antilost_buzzer_pwm_init
+0x35a2 antilost_led_on_cb
+0x35a4 antilost_led_off_cb
+0x35a6 antilost_buzzer_off
+0x35a9 antilost_buzzer_on
+0x35ad antilost_adc_init
+0x35af antilost_battery_process
+0x35b9 antilost_battery_calculate_end
+0x35bc antilost_full_battery
+0x35be antilost_low_battery
+0x35bf car_init
+0x35e6 car_soft_switch_power_on_init
+0x35ed car_power_off_signal
+0x35ee car_hard_switch_power_on_signal
+0x35ef car_soft_switch_power_on_signal
+0x35f5 car_le_modified_name_adv
+0x35f7 car_name_loop
+0x3604 car_le_modified_name_scan
+0x3609 car_hex_to_ascii
+0x360d car_hex_num
+0x360f car_ui_led_init
+0x3611 car_ui_led_init_1
+0x3613 car_ui_led_init_2
+0x3615 car_ui_led_init_3
+0x3619 car_in_lp1
+0x361f car_in_lp1_end
+0x3620 car_ui_led_init_end
+0x3621 car_blood_led_gpio_set
+0x3624 car_pairing_led_gpio_set
+0x3626 car_low_voltage_led_gpio_set
+0x3628 car_init_environment
+0x362d car_init_adc_hvin
+0x3631 car_le_before_hibernate
+0x3633 car_le_process_lpm_before
+0x3634 car_key_scan_process
+0x3635 car_scale_process_idle
+0x3639 car_g24_status_process
+0x363e car_g24_connected_event
+0x3642 car_le_send_packet
+0x364b car_scale_process_bb_event
+0x3651 car_scale_event_le_conn
+0x3654 car_g24_connected
+0x3656 car_scale_process_conn
+0x365c car_scale_process_conn_next
+0x365e car_pairing_led_conn_status_setting
+0x3660 car_scale_event_le_discon
+0x3662 car_g24_disconnect
+0x367a car_le_bb_event_timer
+0x3683 car_ir_breakdown_timer
+0x3686 car_ir_breakdown_timeout
+0x368a car_24g_no_data_timeout_timer
+0x368d car_24g_no_data_timer_timeout
+0x368f car_attack_shake_timer
+0x3692 car_attack_shake
+0x369a car_attack_shake_front_battle_car
+0x369b car_attack_shake_front_battle_tank
+0x369e car_attack_shake_stop
+0x36a1 car_notify_vdd_timer
+0x36a8 car_notify_vdd
+0x36ac car_read_hvin
+0x36b6 car_notify_vdd_next2
+0x36c1 car_enter_low_bat
+0x36c6 car_low_bat_led_off
+0x36c8 car_led_control_timer
+0x36cb car_led_control
+0x36d0 car_led_control_set
+0x36d3 car_led_control_timer_next
+0x36d9 car_led_control_timer_next_2
+0x36de car_led_switch
+0x36e3 car_led_control_off
+0x36e6 car_led_control_on
+0x36e9 car_led_control_blink
+0x36ec car_led_control_blink_on
+0x36ee car_led_control_blink_off
+0x36f0 calc_check_sum_start
+0x36f1 calc_check_sum_loop
+0x36f4 calc_check_sum_and
+0x36f6 car_le_receive_data
+0x36f9 car_le_parse_att_write_request
+0x36fc le_app_receive_data
+0x3710 car_control_le_receive
+0x3718 car_receive_cmd_select
+0x3722 car_24g_receive_data
+0x372e car_24g_receive_data_next
+0x3735 car_moto1_enable_blank_data_timer
+0x3737 car_moto2_enable_blank_data_timer
+0x3739 car_moto3_enable_blank_data_timer
+0x373b car_moto1_blank_data_timer
+0x373e car_moto2_blank_data_timer
+0x3741 car_moto3_blank_data_timer
+0x3744 car_moto1_blank_data
+0x3746 car_moto2_blank_data
+0x3748 car_moto3_blank_data
+0x374a car_drive_old
+0x374c car_left_right_control_old
+0x374f car_front_back_control_old
+0x3754 car_reset_old_speed
+0x3758 car_reset_old_speed2
+0x375a car_reset_old_speed3
+0x375c car_speed_set_old
+0x3762 car_motor_control
+0x3770 car_motor1_control
+0x3773 car_motor2_control
+0x3776 car_motor3_control
+0x3779 car_motor_working_flag
+0x377b car_motor_status_select
+0x3780 car_motor_positive
+0x3782 car_motor_negative
+0x3787 car_motor_stop
+0x378c car_motor_work
+0x3790 car_motor_select_negative
+0x3793 car_motor_work_next
+0x379a car_motor_select_positive
+0x379e car_motor_speed_duty_setting
+0x37a1 car_motor_speed_duty_transform
+0x37aa car_ir_init
+0x37b1 car_ir_data_rx_from_app
+0x37b9 car_ir_data_tx
+0x37c2 car_ir_send_loop
+0x37c9 car_ir_is_bit1
+0x37cc car_ir_wait_finish
+0x37d8 car_attack_shake_back_battle_car
+0x37d9 car_attack_shake_back_battle_tank
+0x37dc car_ir_enable
+0x37e0 car_ir_disable
+0x37e4 car_ir_rx_init
+0x37ee car_ir_receive_process
+0x37f6 car_ir_receive_process_next
+0x37fe car_ir_packet_head_wait_end
+0x3805 car_ir_receive_process_loop
+0x380d car_ir_get_bit0
+0x3812 car_ir_get_bit1
+0x3816 car_ir_get_bit1_wait_low_end
+0x381b car_ir_receive_process_end
+0x3821 car_ir_data_notify
+0x3827 car_ir_24g_receive_attack
+0x382f car_ir_24g_receive_attack_off
+0x3838 car_ir_24g_receive_attack_blink
+0x383d car_ir_24g_go_die
+0x383f car_ir_clk_get
+0x3842 car_ir_clk_check
+0x3847 car_ir_gpio_get_status
+0x3849 car_led_control_receive
+0x384c car_info_request
+0x3858 light_init
+0x3860 light_pairing_timer
+0x3867 light_init_crr_cmd_count
+0x386d light_load_controler_list
+0x3871 light_find_controler_pairing
+0x3876 light_find_controler_pairing_loop
+0x3879 light_find_single_pairing_diff
+0x387c light_compare_addr_record
+0x3881 light_compare_single_record
+0x388d light_find_controler_cmd
+0x3893 light_find_controler_cmd_loop
+0x3898 light_recv_adv
+0x389c light_anylize_command
+0x38a8 light_parse_cmd
+0x38b7 light_parse_cmd_loop
+0x38c2 light_parse_cmd_pwm0
+0x38c6 light_parse_cmd_pwm_common
+0x38cf light_parse_cmd_pwm1
+0x38d4 light_parse_cmd_pwm2
+0x38d9 light_parse_cmd_pwm3
+0x38de light_parse_cmd_pwm4
+0x38e3 light_parse_cmd_pwm5
+0x38e8 light_parse_auto_mode
+0x38ea light_parse_pairing
+0x38ee light_parse_pairing_abandon
+0x38f0 update_controler_list
+0x38fe update_conrtoler_list_found
+0x3903 update_conrtoler_store_list
+0x3907 lightc_init
+0x390a lightc_dispatch
+0x3918 lightc_adv
+0x391d lightc_start_adv
+0x392a module_init
+0x3945 module_lpm_uart_init
+0x3962 module_lpm_init
+0x3964 module_gpio_init
+0x3969 module_lpm_lock
+0x396d module_le_conn_process
+0x396e module_bt_conn_process
+0x3970 module_spp_enter_sniff
+0x397f module_spp_clear_last_transmite_clock
+0x3982 module_process_idle
+0x3986 module_process_bb_event
+0x39a3 module_process_bb_event_disconned
+0x39aa module_process_spp_connected
+0x39b1 module_spp_disconnected
+0x39b6 module_sniff_param_check
+0x39bd module_sniff_param_check_unsniff
+0x39c2 module_process_exit_sniff
+0x39c4 module_process_setup_complete
+0x39c6 module_process_bb_even_le_disconn
+0x39c9 module_process_evt_pincode_req
+0x39ca module_process_sniff_not_accept
+0x39cb module_process_unsniff_accept
+0x39ce module_process_unsniff_not_accept
+0x39cf module_process_le_conn
+0x39d4 module_process_bb_conn
+0x39d7 module_disconn_start
+0x39d9 module_process_ble_ltk_lost
+0x39db module_set_conn_pin_high
+0x39dd module_conn_start
+0x39df module_stop_adv_discovery
+0x39e6 module_set_conn_pin_low
+0x39e8 module_process_with_credit
+0x39eb module_process
+0x3a01 module_hci_in_excp
+0x3a04 module_hci_release_except
+0x3a12 module_hci_dicard_packet
+0x3a16 module_hci_dicard_bytes
+0x3a17 module_hci_cmd_control
+0x3a3f module_hci_cmd_set_bt_addr
+0x3a44 module_hci_cmd_set_le_addr
+0x3a49 module_hci_cmd_set_visibility
+0x3a52 module_start_adv_discovery_by_command
+0x3a58 moudle_start_adv_by_command
+0x3a5f module_hci_cmd_set_bt_name
+0x3a6b module_hci_cmd_set_le_name
+0x3a75 module_hci_cmd_receive_spp_data
+0x3a84 module_hci_cmd_pass_init_ng_rx_len_all
+0x3a86 module_hci_cmd_spp_exit_sniff
+0x3a88 module_hci_cmd_get_current_packet_len_and_remain_len
+0x3a8e module_hci_cmd_get_current_patcket_len
+0x3a97 module_hci_command_tx_spp_tx_complete
+0x3a9a module_hci_cmd_receive_le_data
+0x3ab4 module_hci_cmd_receive_le_data_finish
+0x3ab7 module_hci_cmd_transmit_le_notify
+0x3acf module_get_le_remote_mtu
+0x3ad4 module_check_ble_encrypt_state
+0x3ad7 module_hci_cmd_inquire_status
+0x3ad8 module_hci_cmd_set_pairing_mode
+0x3adf module_hci_pairing_pincode_mode
+0x3ae2 module_hci_pairing_just_work_mode
+0x3ae3 module_hci_sspairing_mode
+0x3ae8 module_hci_pairing_passkey
+0x3aea module_hci_pairing_numeric_comparison
+0x3aec module_hci_cmd_set_pincode
+0x3af4 module_hci_cmd_set_uart_control_mode
+0x3afa module_hci_cmd_set_uart_baud
+0x3b02 module_hci_cmd_set_uart_baud_ok
+0x3b06 module_hci_cmd_version_request
+0x3b0a module_hci_event_set_cmd_send_response
+0x3b0e module_hci_cmd_bt_disconnect
+0x3b10 module_hci_cmd_bt_disconnect_doing
+0x3b12 module_hci_cmd_ble_disconnect
+0x3b14 module_hci_cmd_ble_disconnect_doing
+0x3b16 module_hci_cmd_set_nvram
+0x3b1d module_hci_cmd_confirm_gkey
+0x3b28 dhkey_not_accept
+0x3b2b module_hci_cmd_spp_number_comparison_result_is1
+0x3b2d module_hci_cmd_set_credit_given
+0x3b36 module_hci_cmd_auto_adv
+0x3b3c module_hci_cmd_auto_adv_loop
+0x3b46 module_hci_cmd_auto_adv_store_adv
+0x3b50 module_hci_cmd_auto_adv_store_scan
+0x3b59 module_hci_cmd_auto_adv_store_common
+0x3b64 module_hci_cmd_auto_adv_adv_analys
+0x3b69 module_hci_cmd_power_request
+0x3b6f module_hci_cmd_power_set
+0x3b76 module_hci_cmd_passkey_entry
+0x3b7c module_hci_cmd_set_gpio
+0x3b82 module_set_gpio_input
+0x3b88 module_set_gpio_high_impedance
+0x3b8a module_set_gpio_output
+0x3b90 module_hci_cmd_read_gpio
+0x3b98 module_hci_cmd_le_set_pairing_mode
+0x3ba3 module_le_set_pairing_mode_secure_justwork
+0x3ba8 module_le_set_pairing_mode_secure_numeric
+0x3bae module_le_set_pairing_mode_secure_passkey
+0x3bb3 module_le_set_no_pairing
+0x3bb4 module_le_set_noinputnooutput
+0x3bb6 module_le_set_pairing_mode_lagacy_just_work
+0x3bb8 module_le_set_pairing_mode_lagacy_passkey
+0x3bb9 module_le_set_displayonly
+0x3bbb module_hci_cmd_le_set_adv_data
+0x3bc4 module_hci_cmd_le_set_scan_data
+0x3bcd module_hci_cmd_le_send_conn_update_req
+0x3bd7 module_hci_cmd_set_le_adv_parameter
+0x3bda module_hci_cmd_le_start_pairing
+0x3be2 module_hci_cmd_set_wake_gpio
+0x3bec module_hci_cmd_set_tx_power
+0x3bf1 module_hci_cmd_le_confirm_gkey
+0x3bf8 module_hci_cmd_le_confirm_gkey_ok
+0x3bfa module_hci_cmd_le_confirm_gkey_fail
+0x3bfc module_hci_cmd_set_reject_justwork_flag
+0x3c02 module_hci_cmd_reset_chip
+0x3c06 module_hci_cmd_le_set_fixed_passkey
+0x3c13 module_hci_cmd_le_set_random_passkey
+0x3c15 module_hci_test_cmde_close_lpm
+0x3c17 module_hci_event_receive_invalid_cmd
+0x3c1a module_hci_event_receive_valid_cmd
+0x3c1d module_hci_event_spp_connect
+0x3c1f module_hci_event_le_connect
+0x3c21 module_hci_event_spp_disconnect
+0x3c23 module_hci_event_le_disconnect
+0x3c25 module_hci_event_set_cmd
+0x3c32 module_hci_event_receive_spp_data
+0x3c3d module_hci_event_receive_le_data
+0x3c48 module_hci_event_enter_standby_mode
+0x3c49 module_hci_event_enter_standby_mode_len0
+0x3c4c module_hci_event_status_res
+0x3c5d module_hci_read_bt_status
+0x3c6a module_hci_event_store_device
+0x3c73 module_hci_event_gkey_generate
+0x3c79 module_hci_event_invalid_packet
+0x3c82 module_hci_event_passkey_entry_mode
+0x3c84 module_hci_event_le_tk
+0x3c8a module_hci_event_le_pairing_fail
+0x3c8c module_hci_event_le_pairing_success
+0x3c8e module_hci_event_bt_pairing_fail
+0x3c90 module_hci_event_bt_pairing_success
+0x3c91 module_hci_event_pairing_completed
+0x3c98 module_hci_event_pause_enc
+0x3c9a module_hci_event_start_enc
+0x3c9b module_hci_event_enc
+0x3ca1 module_hci_event_le_gkey
+0x3ca7 module_hci_prepare_tx
+0x3cb1 module_set_mcu_wake_pin_high_delay
+0x3cb3 module_set_mcu_wake_pin_h_delay
+0x3cb8 module_set_mcu_wake_pin_high
+0x3cba module_check_mcu_wake_pin_high
+0x3cbc module_set_mcu_wake_pin_low
+0x3cbe delay
+0x3cc2 module_le_receive_data
+0x3ccf module_le_receive_data_ok
+0x3cd1 module_exit_sniff
+0x3cd5 module_set_lpm_mult_2
+0x3cd7 module_bb_event_timer
+0x3cd8 module_read_vdd_timer
+0x3ce9 module_control_air_flow
+0x3cec module_set_sniff_task_flag
+0x3cee module_clear_sniff_task_flag
+0x3cf0 module_set_unsniff_task_flag
+0x3cf2 module_clear_unsniff_task_flag
+0x3cf4 module_set_le_tx_data_flag
+0x3cf6 module_clear_le_tx_data_flag
+0x3cf8 module_clr_state
+0x3cfc module_set_state
+0x3d00 mouse_init
+0x3d0f mouse_delay_4s
+0x3d12 mouse_delay_20ms
+0x3d16 mouse_cheak_enable_usb
+0x3d19 mouse_cb_fuction
+0x3d36 mouse_spi_init
+0x3d39 mouse_setting_config
+0x3d46 mouse_init_iic
+0x3d4e mouse_wakeup_from_power
+0x3d53 mouse_wakeup_no_from_power
+0x3d57 mouse_start_24g_mode
+0x3d5b le_mouse_bb_event_connect_complete
+0x3d60 mouse_le_write_enable
+0x3d62 mouse_dpi_up
+0x3d66 mouse_dpi_config
+0x3d6a mouse_dpi_cheak
+0x3d6d mouse_dpi_down
+0x3d79 mouse_before_store_flash_cpi
+0x3d7e mouse_seting_dpi
+0x3d88 mouse_set_cpi2
+0x3d8a mouse_set_cpi1
+0x3d8c mouse_set_cpi3
+0x3d8e mouse_set_cpi4
+0x3d90 moue_seting_cpi_count
+0x3d96 mouse_seting_3212_dpi
+0x3d9b mouse_set_p3212_cpi2
+0x3d9d mouse_set_p3212_cpi1
+0x3d9f mouse_set_p3212_cpi3
+0x3da1 mouse_set_p3212_cpi4
+0x3da2 mouse_p3212_dpi
+0x3daa mouse_seting_3610_dpi
+0x3daf mouse_set_p3610_cpi2
+0x3db1 mouse_set_p3610_cpi1
+0x3db3 mouse_set_p3610_cpi3
+0x3db5 mouse_set_p3610_cpi4
+0x3db6 mouse_p3610_dpi
+0x3db9 mouse_reset_p3610_dpi
+0x3dbe mouse_p3205_dpi
+0x3dc9 mouse_init_environment
+0x3dce mouse_24g_pairing_button
+0x3de3 mouse_idle
+0x3de9 mouse_usb_isr
+0x3ded mouse_cheak_usb
+0x3df1 mouse_usb_no_exsit
+0x3df4 mouse_usb_exsit
+0x3df7 mouse_usb_mode
+0x3e07 mouse_clkn_check
+0x3e0c mouse_clkn_timeout
+0x3e0f mouse_wired_to_usb
+0x3e12 mouse_data_push
+0x3e1a mouse_enable_clock_qdecoder
+0x3e1e mouse_param_init
+0x3e44 mouse_sensor_set_angle
+0x3e4c mouse_select_adc
+0x3e54 mouse_adc_init
+0x3e59 mouse_adc_init_data_vinlpm
+0x3e62 mouse_adc_init_data_hvin
+0x3e6b mouse_adc_init_data_io
+0x3e6e mouse_gpio_init
+0x3e97 mouse_wheel_gpio_set_wake
+0x3e9f mouse_before_hibernate_wheel_gpio_set
+0x3ea7 mouse_gpio_set_pupd_by_input
+0x3eb3 mouse_before_hibernate
+0x3ebb mouse_process_lpm_before
+0x3ebf mouse_lpm_before_common
+0x3ede mouse_spi_clk_gpio
+0x3ee0 mouse_wheel_check
+0x3eee mouse_t_wheel_scan
+0x3efe mouse_t_wheel_scan_judge1
+0x3f02 mouse_t_wheel_scan_judge2
+0x3f06 mouse_t_wheel_scan_judge11
+0x3f08 mouse_t_wheel_scan_judge12
+0x3f0a mouse_t_wheel_scan_judge21
+0x3f0c mouse_t_wheel_scan_judge22
+0x3f0e mouse_t_wheel_scan_judge3
+0x3f16 mouse_t_wheel_scan_judge30
+0x3f19 mouse_t_wheel_scan_judge31
+0x3f1c mouse_t_wheel_scan_judge32
+0x3f1f mouse_t_wheel_scan_judge33
+0x3f22 mouse_wheel_t_forward
+0x3f2c mouse_wheel_t_back
+0x3f36 mouse_wheel_scan
+0x3f46 mouse_wheel_scan_judge1
+0x3f4a mouse_wheel_scan_judge2
+0x3f4e mouse_wheel_scan_judge11
+0x3f50 mouse_wheel_scan_judge12
+0x3f52 mouse_wheel_scan_judge21
+0x3f54 mouse_wheel_scan_judge22
+0x3f56 mouse_wheel_scan_judge3
+0x3f5e mouse_wheel_scan_judge30
+0x3f61 mouse_wheel_scan_judge31
+0x3f64 mouse_wheel_scan_judge32
+0x3f67 mouse_wheel_scan_judge33
+0x3f6a mouse_wheel_forward
+0x3f6f mouse_wheel_back
+0x3f74 mouse_hid_connected
+0x3f77 mouse_send_process
+0x3f81 mouse_send_data
+0x3f8a mouse_send_empty_data
+0x3f8d mouse_no_data_timer_init
+0x3f90 mouse_fill_data_le
+0x3f97 mouse_motion
+0x3fa3 motion_6clk_direction_dispose
+0x3fa7 motion_12clk_direction_dispose
+0x3fab motion_9clk_direction_dispose
+0x3fb3 motion_3clk_direction_dispose
+0x3fb5 mouse_cheak_sensor_data
+0x3fc0 mouse_clear_sensor_data
+0x3fc4 mouse_p3212_sensor_motion
+0x3fc8 mouse_p3212_sensor_motion_1
+0x3fde mouse_read_3212sensor_xy_high
+0x3fe0 mouse_p3065_judge
+0x3fe2 mouse_p32xx_sensor_motion
+0x3fe7 mouse_p32xx_sensor_motion_2
+0x3fea mouse_p32xx_sensor_motion_1
+0x3ffa motion32xx_6clk_direction_selection
+0x3ffc motion32xx_9clk_direction_selection
+0x3ffe motion32xx_12clk_direction_selection
+0x4000 motion32xx_3clk_direction_selection
+0x4002 mouse_sensor_data_swap_places
+0x4007 mouse_p3610sensor_read
+0x4010 mouse_p3610_sensor_motion
+0x402d mouse_3610_smart_select
+0x4031 motion3610_6clk_direction_selection
+0x4033 motion3610_12clk_direction_selection
+0x4035 motion3610_9clk_direction_selection
+0x4037 motion3610_3clk_direction_selection
+0x4039 mouse_read_sensor3610_data
+0x4045 mouse_3610_smart_enable
+0x4051 mouse_3610_smart_disable
+0x405d mouse_read_sensor_common
+0x4064 mouse_set_qdecoder_x
+0x406d mouse_hardware_zwheel
+0x4074 mouse_hardware_zwheel_beforelpm
+0x4079 mouse_zwheel
+0x407e mouse_t_zwheel
+0x4083 mouse_check_key_gpio
+0x4090 mouse_check_s_key_gpio
+0x4099 mouse_key
+0x40a3 mouse_24g_key
+0x40a8 mouse_set_mult
+0x40ad mouse_set_ble_mult
+0x40b0 mouse_set_bt_mult
+0x40b3 mouse_sensor_sdio_low
+0x40be mouse_sensor_sdio_low2
+0x40c0 mouse_spi_sdio_gpio_pollup
+0x40c2 mouse_spi1_sdio_gpio_pollup
+0x40c4 mouse_spi2_sdio_gpio_pollup
+0x40c6 mouse_init_sunt
+0x40cb mouse_init_sensor
+0x40d1 mouse_twspi_reset
+0x40d5 mouse_init_3610sensor
+0x40d9 mouse_read_sensor_id
+0x40e0 mouse_init_p32xx_id2_judge
+0x40e6 mouse_ka8_init_param
+0x40e8 mouse_p3065xy_init_param
+0x40ea mouse_p3065_init_param
+0x40ee mouse_3212_init_param
+0x40f4 mouse_sensor_enable_wp
+0x40f6 mouse_sensor_disable_wp
+0x40f8 mouse_3204_3l_init_param
+0x4102 mouse_32xx_init_param
+0x411a mouse_32xx_init_param_1
+0x4139 mouse_3205_3t_init_param
+0x4145 mouse_init_3610sensor_reset
+0x414b mouse_init_p3610
+0x415a mouse_set_sensor_reg
+0x4165 extsign
+0x4169 extsign_bit3
+0x416d mouse_le
+0x4179 mouse_le_send_empty_packet
+0x417c mouse_priority_bb_event
+0x4191 mouse_le_pairing_complete
+0x4192 mouse_24g_attempt_fail
+0x419a mouse_24g_attempt_success
+0x419c mouse_24g_pairing_complete
+0x41aa mouse_set_24g_addr_eeprom
+0x41af mouse_store_flash_24g_address
+0x41b4 mouse_le_pairing_success
+0x41b6 mouse_le_ll_start_encryt
+0x41b9 mouse_le_enable_connect_flag
+0x41bd mouse_le_disable_connect_flag
+0x41c1 mouse_le_clean_connect_flag
+0x41c3 mouse_le_bb_event_connected
+0x41ca mouse_bb_event_pincode
+0x41cc mouse_bb_event_reconn_failed
+0x41d5 mouse_bt_hid_connected
+0x41d6 mouse_bt_event_setup_complete
+0x41d7 mouse_soft_reset
+0x41d9 mouse_bb_disconnected
+0x41e7 mouse_bb_discon_clear_stack
+0x41ef mouse_event_light_state_pairing
+0x41f2 mouse_event_light_state_hibernate
+0x41f5 mouse4_0_event_bb_disconn
+0x41f9 mouse_bb_event_timer
+0x4209 mouse_sensor_led_contrl_timer
+0x420f mouse_sensor_led_contrl
+0x4212 mouse_sensor_led_blink_state_lighting
+0x4216 mouse_sensor_led_blink_state_darking
+0x421a mouse_sensor_reset
+0x4220 mouse_p3212sensor_led_on
+0x4224 mouse_sensor_led_on_global
+0x4225 mouse_sensor_led_on
+0x422b mouse_sensor_led_off_global
+0x422c mouse_sensor_led_off
+0x422e mouse_sensor_start_blink
+0x4231 mouse_check_hid_handshake_timer
+0x4234 mouse_check_discovery_timeout_timer
+0x4237 mouse_check_direct_timeout_timer
+0x423a mouse_check_no_data_timeout_timer
+0x423d mouse_check_mouse_state_timer
+0x4240 mouse_le_enable_att_list_timer
+0x4243 mouse_24g_delay_timer
+0x4246 mouse_ban_24g_pairing_timer
+0x4249 mouse_24g_delay
+0x424a mosue_dpi_led_blink_init
+0x4250 mouse_dpi_led_blink_delay_timer
+0x4253 mouse_dpi_led_setting
+0x425e mouse_le_enable_att_list
+0x4264 mouse_check_discovery_timeout
+0x4266 mouse_check_direct_timeout
+0x426a mouse_check_no_data_timeout
+0x426c mouse_bb_event_discovery_btn
+0x4271 mouse3_0_check_reconn_target
+0x4279 mouse4_0_check_reconn_target
+0x427e mouse_reconn_setting_led_gpio
+0x4282 mouse_discover_setting_led_gpio
+0x4285 mouse_setting_led_gpio_comman
+0x428a mouse_device_led1
+0x428c mouse_device_led2
+0x428e mouse_device_led3
+0x428f mouse_led_blink
+0x4296 mouse_led_off
+0x4298 mouse_led_on
+0x429a mouse4_0_bb_event_discovery_btn
+0x429b mouse_bt_hid_handshake
+0x42a2 mouse_check_reconn_target
+0x42ab mouse_connect_24g_mode
+0x42b0 mouse_start_discovery
+0x42b7 mouse_start_discovery_norandom
+0x42ca mouse_stop_discovery
+0x42d4 mouse_stop_le_adv
+0x42d7 mouse_stop_bt3_discovery
+0x42da mouse_store_remote_bdaddr
+0x42df mouse_unplug_clean_bdaddr
+0x42e4 mouse_store_eeprom_device_info
+0x42e8 mouse_check_device_addr
+0x42ec mouse_check_le_device_addr
+0x42ef mouse_check_bt_device_addr
+0x42f1 mouse_check_bt_device_addr_common
+0x42f5 mouse_check_device_addr_end
+0x42fb mouse_before_store_reconn_info
+0x4305 mouse_store_le_device
+0x430c mouse_store_bt_device
+0x4310 mouse_clean_addr
+0x4316 mouse_eeprom_load_recon_info
+0x431a mouse_select_reconn_device
+0x4327 mouse_load_bt_device
+0x4328 mouse_load_bt_device_end
+0x432c mouse_load_le_device
+0x432d mouse_load_le_device_end
+0x4333 mouse_select_device
+0x4337 mouse_select_device_by_combination_key
+0x4339 mouse_select_device_commbination_key_up
+0x433e mouse_select_device_commbination_key_down
+0x4343 mouse_combination_select_device_timer
+0x4349 mouse_select_device_by_button
+0x434e mouse_select_device_button_up
+0x4354 mouse_select_device_button_down
+0x4359 mouse_select_device_by_switch
+0x435f mouse_cheak_select_device_by_switch
+0x4364 mouse_select_btdevice
+0x4366 mouse_cheak_select_24gdevice
+0x4369 mouse_select1_device
+0x436c mouse_select2_device
+0x4370 mouse_ready_reconnection_by_button
+0x437a mouse_store_device_number2eeprom
+0x437e mouse_set_reconnection
+0x4381 mouse_stop_bluetooth_mode
+0x4386 mouse_disconnect
+0x438e mouse_irtual_cable_unplug
+0x4392 mouse_cancel_reconnect
+0x4394 mouse_bt_discovery_by_button
+0x4399 mouse_bt_discovery_button_up
+0x439f mouse_bt_discovery_button_down
+0x43a5 mouse_bt_discovery_cheak
+0x43a7 mouse_bt_discovery_commbination_key
+0x43a9 mouse_bt_discovery_commbination_key_up
+0x43af mouse_bt_discovery_commbination_key_down
+0x43b5 mouse_bt_discovry_timer
+0x43b8 mouse_long_button_bt_discovry
+0x43bc mouse_cpi_enable
+0x43be mouse_cpi_disable
+0x43c0 mouse_select_device_enable
+0x43c2 mouse_select_device_disable
+0x43c4 mouse_bt_cannel_reconn_enable
+0x43c6 mouse_bt_cannel_reconn_disable
+0x43c8 mouse_bt_discovery_button_down_enable
+0x43ca mouse_bt_discovery_button_down_disable
+0x43cc mouse_select_device_count_clean
+0x43ce mouse_enable_function_flag
+0x43d2 mouse_disable_function_flag
+0x43d6 mouse_adc_read
+0x43e7 mouse_adc_low_voltage
+0x43e9 mouse_adc_no_low_voltage
+0x43eb mouse_low_voltage_led_timer
+0x43f9 mouse_adc_low_volatage_led_timer_count_clean
+0x43fb mouse_low_voltage_led_on
+0x43fe mouse_low_voltage_led_off
+0x4401 mouse_g24_package_data
+0x4406 mouse_g24_enter_lpm
+0x4410 mouse_24g_dpi_delay_init
+0x4414 mouse_load_flash_info_cheak
+0x441c mouse_ble_init_address
+0x4423 mouse_load_flash_flag
+0x442b mouse_load_flash_device_info
+0x4435 mouse_store_flash_device_info
+0x443b mouse_store_eerpom_dpi
+0x443f mouse_load_eeprom_dpi
+0x4443 mouse_statue_cheak_timer
+0x444f mouse_check_statue_up
+0x445b mouse_statue_up_timer_init
+0x445d mouse_statue_up_timer
+0x4460 mouse_statue_up
+0x446d mouse_two_device_statue_up
+0x4471 mouse_three_device_statue_up
+0x4476 mouse_device_blink_led_init
+0x4478 mouse_statue_led_off
+0x447a mouse_devce1_led_off
+0x447e mouse_devce2_led_off
+0x4482 mouse_devce_led_off
+0x4485 mouse_devce3_led_off
+0x4489 mouse_device1_led_on
+0x448c mouse_device2_led_on
+0x448f mouse_device3_led_on
+0x4492 mouse_polling_device
+0x44a0 mouse_power_down
+0x44a4 remote_car_init
+0x44ce remote_car_soft_switch_power_on_init
+0x44d5 remote_car_hard_switch_power_on_signal
+0x44d6 remote_car_soft_switch_power_on_signal
+0x44d9 remote_car_connect_24g_mode
+0x44da remote_car_power_off_signal
+0x44db remote_car_ui_led_init
+0x44de remote_car_ui_led_init_1
+0x44e0 remote_car_pairing_led_gpio_set
+0x44e2 remote_car_init_environment
+0x44e6 remote_car_in_enter_hibernate
+0x44e9 remote_car_process_lpm_before
+0x44ea remote_car_g24_enter_lpm
+0x44ed remote_car_process_auto_pair_exit
+0x44ee remote_car_key_scan_process
+0x44ef remote_car_scale_process_idle
+0x44f2 remote_car_scale_process_bb_event
+0x44f9 remote_car_24g_attempt_fail
+0x44fb remote_car_24g_pairing_complete
+0x44ff remote_car_24g_attempt_success
+0x4503 remote_car_24g_status_process
+0x4508 remote_car_scale_process_paired
+0x450a remote_car_scale_process_shutdown
+0x450e remote_car_event_timer
+0x4510 remote_car_no_data_timer
+0x4515 remote_car_get_adc_default_data
+0x451a remote_car_rocker_get_x
+0x451f remote_car_rocker_get_y
+0x4525 remote_car_rocker_get_value
+0x452e remote_car_rocker_mid_value_adjust
+0x4534 remote_car_rocker_mid_adjust_positive
+0x4537 remote_car_rocker_translate_key
+0x453a remote_car_rocker_positive_key
+0x453c remote_car_rocker_negative_key
+0x453e remote_car_rocker_middle_key
+0x4540 remote_car_get_adc_from_gpio6
+0x4542 remote_car_get_adc_from_gpio7
+0x4544 remote_car_rocker_process
+0x4546 remote_car_read_rocker_check_start
+0x4550 remote_car_rocker_x_to_key
+0x4554 remote_car_rocker_y_to_key
+0x4557 remote_car_rocker_to_key
+0x455a rocker_to_queue_set_0
+0x455d rocker_to_queue_set_2
+0x4560 remote_car_send_key_data
+0x4568 remote_car_key_is_press
+0x456b remote_car_attack_key_press
+0x456f remote_car_motor_key_press
+0x4574 remote_car_single_motor_key_is_press
+0x457a remote_car_double_motor_key_press
+0x4580 remote_car_key_is_release
+0x4583 remote_car_attack_key_release
+0x4586 remote_car_motor_key_release
+0x458b remote_car_device_layout_select
+0x458f remote_car_send_motor1_key0_press
+0x4591 remote_car_send_motor1_key1_press
+0x4593 remote_car_send_motor2_key2_press
+0x4595 remote_car_send_motor2_key3_press
+0x4597 remote_car_send_double_motor_key0_press
+0x459a remote_car_send_double_motor_key1_press
+0x459d remote_car_send_double_motor_key2_press
+0x45a0 remote_car_send_double_motor_key3_press
+0x45a3 remote_car_send_attack_key4_press
+0x45a5 remote_car_send_attack_key5_press
+0x45a7 remote_car_send_fire_key6_press
+0x45a9 remote_car_single_motor_key_rel
+0x45af remote_car_double_motor_key_rel
+0x45b5 remote_car_send_motor1_key1_rel
+0x45b7 remote_car_send_motor2_key3_rel
+0x45b9 remote_car_send_double_motor_key3_rel
+0x45bc remote_car_send_attack_key5_rel
+0x45be remote_car_send_key
+0x45c0 remote_car_send_attack
+0x45c2 remote_car_g24_package_data
+0x45c7 remote_car_g24_package_data_continue
+0x45cc remote_car_g24_send_empty
+0x45d1 remote_car_moto_data
+0x45d5 remote_car_moto_data_next
+0x45dc remote_car_moto_data_enable_user
+0x45de shutter_init
+0x4609 shutter_hart_swtich_power_on
+0x460c shutter_le_scale_lpm_lock
+0x4612 shutter_process_bb_event
+0x4626 classic_shutter_process_baseband_connect
+0x4629 classic_shutter_process_baseband_disconnect
+0x462b classic_shutter_disconnect_clear_flag
+0x4631 classic_shutter_process_reconnect_failed
+0x4633 classic_shutter_process_setup_complete
+0x4635 classic_shutter_process_hid_connect
+0x4638 classic_shutter_process_hid_disconnect
+0x463c classic_shutter_process_hid_handshake
+0x4644 classic_shutter_process_reconnect_page_timeout
+0x4645 classic_shutter_process_virtual_cable_unplug
+0x4648 classic_shutter_process_remote_unsniff
+0x4649 classic_shutter_process_store_reconnect_information
+0x464f classic_shutter_load_reconn_info
+0x4658 ble_shutter_process_baseband_connect
+0x465c ble_shutter_process_baseband_disconnect
+0x465f ble_shutter_process_reconnect_complete
+0x4665 ble_shutter_process_parse_connect_parameter_update_response
+0x466b shutter_process_soft_swtich_button_long_press
+0x466c shutter_process_soft_swtich_button_down
+0x4672 shutter_store_currenct_led_state
+0x4677 shutter_process_soft_swtich_button_up
+0x467c shutter_load_currenct_led_state
+0x4686 shutter_le_bb_event_timer
+0x468c shutter_check_sleep_timer
+0x468f shutter_sleep_timeout
+0x4693 shutter_check_power_off_timer
+0x4696 shutter_check_power_off_timeout
+0x469e classic_shutter_check_unplug_timer
+0x46a1 classic_shutter_unplug_timeout
+0x46a6 classic_shutter_hid_handshake_timer
+0x46a9 classic_shutter_hid_disconn_timer
+0x46ac ble_shutter_reconn_timer
+0x46b1 shutter_process_idle
+0x46b3 shutter_process_lpm_before
+0x46b4 shutter_le_before_hibernate
+0x46b6 shutter_stop_bluetooth_discovery
+0x46ba ble_shutter_stop_bluetooth_discovery
+0x46be classic_shutter_stop_bluetooth_discovery
+0x46c2 shutter_start_bluetooth_discovery
+0x46c8 classic_shutter_start_discovery
+0x46cc ble_shutter_start_discovery
+0x46d9 shutter_start_reconnect
+0x46df classic_shutter_start_reconnect
+0x46e4 ble_shutter_start_reconnect
+0x46f0 shutter_ble_adv_interval_set
+0x46f4 shutter_disconnect_current_connection
+0x46f8 app_check_reconn_target
+0x46fc app_check_reconn_target_loop
+0x4701 found_reconn_device
+0x4708 shutter_check_data_enable
+0x470d shutter_check_bt_data_enable
+0x4710 shutter_check_ble_data_enable
+0x4713 shutter_check_bluetooth_conn
+0x4718 shutter_change_bluetooth_status_bt_disconn
+0x471c classic_shutter_change_bluetooth_status_bt_disconn
+0x471f ble_shutter_change_bluetooth_status_bt_disconn
+0x4720 shutter_check_send_data
+0x4729 shutter_key_change
+0x472d shutter_key_press
+0x4730 shutter_key_release
+0x4732 push_queue_press_or_release
+0x4735 push_buffer_in_queue
+0x473a shutter_send_data_to_master
+0x473e pop_queue_to_ble_data
+0x4746 le_send_notify_from_list
+0x474e pop_queue_to_classic_data
+0x4758 classic_send_hid_data
+0x4762 queue_push_one_byte
+0x4765 queue_pop_one_byte
+0x476a ble_shutter_receive_data
+0x476d shutter_init_param
+0x477a shutter_load_buffer_config_form_datarom
+0x4782 shutter_load_ble_gatt_form_datarom
+0x4785 shutter_load_bt_sdp_form_datarom
+0x4788 shutter_init_bluetooth_config
+0x4790 shutter_init_bluetooth_config_gpio_input
+0x4793 shutter_load_bluetooth_config
+0x4797 shutter_load_bluetooth_config_label
+0x47a9 shutter_load_bluetooth_config_read_gpio_input
+0x47ae shutter_check_load_config_flag
+0x47b4 shutter_load_bluetooth_config_by_otp
+0x47ba shutter_load_bluetooth_config_store_name
+0x47c7 shutter_load_bluetooth_config_by_eeprom
+0x47da shutter_load_bluetooth_config_by_user_config
+0x47e8 shutter_store_config
+0x47e9 shutter_load_bluetooth_config_custom
+0x47f0 shutter_random_mac_addr
+0x47f9 shutter_write_random_mac_addr_to_eeprom
+0x4802 shutter_write_random_mac_addr
+0x4806 shutter_soft_swtich_power_on
+0x4807 shutter_soft_swtich_power_off
+0x480b shutter_wait_power_off
+0x480e ui_soft_swtich_init
+0x4816 ui_soft_swtich_init_power_on_time
+0x481b ui_soft_switch_botton_up
+0x481f ui_soft_switch_botton_long_press
+0x4822 ui_soft_switch_power_on
+0x482a ui_soft_switch_power_off
+0x4830 shutter_byteswap
+0x483f shutter_random_addr_by_otp
+0x4849 sim_iic_read_eep_data
+0x4856 sim_iic_read_eep_data_2k
+0x485a sim_iic_read_eep_data_loop
+0x4860 sim_iic_write_eep_data
+0x486b sim_iic_write_eep_data_loop
+0x4871 sim_iic_wait_ack
+0x4875 sim_iic_wait_ack_loop
+0x4879 sim_iic_ack_slave
+0x487f sim_iic_read_byte
+0x4882 sim_iic_read_byte_loop
+0x488d sim_iic_send_byte
+0x4890 sim_iic_send_byte_loop
+0x489b sim_iic_start
+0x48a1 sim_iic_stop
+0x48a6 sim_iic_scl_output_high
+0x48a9 sim_iic_scl_output_low
+0x48ac sim_iic_sda_output_high
+0x48af sim_iic_sda_output_low
+0x48b2 sim_iic_config_gpio
+0x48be sim_iic_release_sda
+0x48c7 sim_iic_read_sda_level
+0x48d2 sim_iic_delay
+0x48d3 usb_isr
+0x48ea usb_init
+0x48fb usb_offline_check_init
+0x48fd usb_offline_state
+0x4903 usb_nak_state
+0x490b usb_mem_devicedesc_init
+0x4919 usb_init_param
+0x492b usb_tx_interval_config
+0x492e usb_nak_state_judge
+0x4931 usb_nak_state_timer_init
+0x4936 usb0_attached_state_judge
+0x493b usb_clear_halt_dispose
+0x4941 usb0_fifo_empty
+0x4943 usb_rx_no_data
+0x4946 usb_rx_read
+0x494a usb_status1
+0x4955 usb_class_type
+0x495a usb_in_device
+0x4962 usb_out_device
+0x496a usb_in_standard_req
+0x4970 usb_in_class_req
+0x4975 usb_in_manufacturer_req
+0x4976 usb_out_standard_req
+0x497e usb_out_class_req
+0x4983 usb_out_manufacturer_req
+0x4984 usb0_force_stall
+0x4988 usb0_reply_zerolen
+0x498a usb0_request_get_configuration
+0x499c usb0_request_get_cfg_dev_cfg
+0x499e usb0_request_get_cfg_dev_addr
+0x49a0 usb0_request_get_descriptor
+0x49a9 dsc_hid_info
+0x49ae dsc_hid_info_interface0
+0x49b2 dsc_hid_info_interface1
+0x49b6 dsc_device_info
+0x49ba dsc_info_set_data_len
+0x49bf dsc_info_set_initial_data_len
+0x49c0 dsc_info_set_data_size_completed
+0x49c5 dsc_info_set_current_data_len
+0x49c7 usb_set_high_addr
+0x49cb usb0_set_addr
+0x49cf dsc_config_info
+0x49d2 dsc_string_info
+0x49e0 dsc_hid_report_info
+0x49e5 dsc_hid_report_info0
+0x49ea usb0_request_get_interface
+0x49fc usb0_request_get_status
+0x4a0d usb0_get_status_in_device
+0x4a12 usb_send_zero_packet
+0x4a14 usb_send_ones_packet
+0x4a16 usb_send_two_packet
+0x4a18 usb0_get_status_in_interface
+0x4a1c usb0_get_status_in_endpoint
+0x4a25 usb0_get_status_in_ep_in_ep0
+0x4a26 usb0_get_status_in_ep_in_ack
+0x4a29 usb0_get_status_in_ep_in_ep1
+0x4a2b usb0_get_status_in_ep_in_ep2
+0x4a2d usb0_get_status_in_ep_in_ep3
+0x4a2f usb_get_idle
+0x4a33 usb_get_report
+0x4a38 usb_get_report_dispose
+0x4a3b usb_get_report_send_data
+0x4a3f usb_get_report_data_release
+0x4a42 usb_get_report_data_success
+0x4a45 usb_get_protocol_req
+0x4a4d usb_get_report_protocol
+0x4a4e usb_get_boot_protocol
+0x4a4f usb0_request_clear_feature
+0x4a5e usb0_request_clear_feature_out_device
+0x4a66 usb0_request_clear_feature_out_interface
+0x4a67 usb0_request_clear_feature_out_endpoint
+0x4a70 usb0_force_stall_ep0_in_off
+0x4a72 usb0_force_stall_ep1_in_off
+0x4a73 usb0_force_stall_ep1_in_off_reply
+0x4a75 usb0_force_stall_ep2_in_off
+0x4a77 usb0_force_stall_ep3_in_off
+0x4a79 usb0_request_set_feature
+0x4a82 usb0_request_set_feature_out_device
+0x4a8b usb_wakeup_timer_reinit
+0x4a8f usb0_request_set_feature_out_interface
+0x4a90 usb0_request_set_feature_out_endpoint
+0x4a9b usb0_force_stall_ep0_in_on
+0x4a9d usb0_force_stall_ep1_in_on
+0x4a9f usb0_force_stall_ep2_in_on
+0x4aa1 usb0_force_stall_ep3_in_on
+0x4aa3 usb0_request_set_address
+0x4ab4 usb_usb0_state_set_dev_default
+0x4ab5 usb0_request_set_wait_address
+0x4aba usb_usb0_state_set_dev_addr
+0x4abc usb0_request_set_configuration
+0x4ad1 usb0_request_set_cfg_cfg_state
+0x4ad5 usb0_request_set_cfg_stay_addr_state
+0x4ad7 usb0_request_set_interface
+0x4ae8 usb_set_idle
+0x4af5 usb_clear_remote_wakeup_set0
+0x4af9 usb_set_report
+0x4b03 usb_set_report_resume_judge
+0x4b11 usb_set_protocol_req
+0x4b17 usb_set_boot_protocol
+0x4b1a usb_set_report_protocol
+0x4b1e usb0_respond_length
+0x4b21 usb0_respond
+0x4b2c usb0_respond0
+0x4b30 usb0_respond1
+0x4b35 usb_no_respond_data
+0x4b37 usb0_tx
+0x4b3e usb0_tx_info
+0x4b43 usb0_tx0
+0x4b47 usb0_tx1
+0x4b52 usb_tx_ep1
+0x4b54 usb_tx_loop
+0x4b57 usb_trig
+0x4b5e usb_tx_ep2
+0x4b61 usb_tx
+0x4b6f usb_tx_data_ep1
+0x4b7a usb_tx_data_ep2
+0x4b86 usb_tx_fifo_release
+0x4b89 usb_tx_ms_data
+0x4b91 usb_tx_ms_data_mac_boot_mode
+0x4b92 usb_tx_ms_data_mac_boot_regroup
+0x4ba0 usb_tx_ms_data_normal_mode
+0x4ba1 usb_tx_mac_boot_ms_regroup_r_or_lrkey
+0x4ba4 usb_tx_kb_multikey_data
+0x4ba8 usb_tx_kb_normal_data
+0x4bac usb_inwake_state_tx_dispose
+0x4bb0 usb_clear_tx_wait
+0x4bb2 usb_mac_wakeup_trig
+0x4bb7 usb_mac_wakeup_judge
+0x4bbb usb_mac_wakeup
+0x4bbf usb_windows_wakeup
+0x4bc2 usb_wakeup
+0x4bc8 hci_rx_h4
+0x4bcb hci_rx_h4_1
+0x4bce hci_h4_parse_packet
+0x4bd8 hci_h4_parse_packet_wait_len
+0x4bdf hci_h4_parse_packet_wait
+0x4be6 h4_rx_discard_packet
+0x4bee h4_get_rx_payload_len
+0x4bf3 h4_get_rx_payload_len_acl
+0x4bf5 h4_get_tx_ptr
+0x4bf9 h4_send_packet_event
+0x4bfb h4_send_packet_acl
+0x4bfc h4_send_packet
+0x4c0b h4_send_acl_trigger_clear
+0x4c0e hci_init
+0x4c13 hci_lpm_init
+0x4c1a hci_reinit
+0x4c21 hci_init_common
+0x4c28 hci_sel_init
+0x4c2e hci_rx_packet
+0x4c37 hci_rx_packet_cont
+0x4c3a uart_send_byte
+0x4c3f process_hci_cmd
+0x4c44 process_hci_cmd_cont
+0x4c4d phci_grp_vendor_specific
+0x4c5c phci_grp_vendor_enter_lpm
+0x4c5f hci_enter_lpm
+0x4c62 hci_exit_lpm
+0x4c66 phci_grp_vendor_chipid
+0x4c6b phci_grp_vendor_baud
+0x4c6f phci_grp_vendor_patch_common
+0x4c7a phci_grp_vendor_patch
+0x4c7c phci_grp_vendor_patch_loop
+0x4c80 phci_grp_vendor_patch_check_sum
+0x4c85 phci_grp_vendor_patch_sec
+0x4c88 phci_grp_vendor_patch_sec_loop
+0x4c9c load_ucode_only_loop
+0x4ca0 load_uart_sum_loop
+0x4ca5 phci_grp_vendor_patch_sec_init
+0x4cb3 phci_grp_vendor_done
+0x4cb6 phci_grp_vendor_done_loop
+0x4cc4 phci_grp_vendor_patch_bad
+0x4cc6 phci_grp_vendor_bdaddr
+0x4cc9 phci_grp_vendor_mem
+0x4cd1 phci_grp_vendor_eep
+0x4cdc hci_normal_reply
+0x4cdd hci_command_complete
+0x4ce3 hci_send_event
+0x4ce9 hci_send_event_raw
+0x4ceb hci_send_packet
+0x4cec hci_send_commu_ready_event
+0x4cf2 hci_get_cmd_complete_ptr
+0x4cf4 hci_get_payload_ptr
+0x4cf6 hci_get_packet_ptr
+0x4cf7 hci_get_tx_ptr
+0x4cf8 calc_tx_crc16
+0x4cfa crcloop
+0x4d04 cmd_exit
+0x4d06 cmd_check_plap
+0x4d0a cmd_pair
+0x4d0f cmd_pair_passive
+0x4d17 cmd_in_sniff
+0x4d26 cmd_exit_sniff
+0x4d28 hci_idle_dispatch
+0x4d2f uart_wake_up
+0x4d33 hid_rx_process
+0x4d3f hid_rx_process_hid_control
+0x4d43 hid_rx_process_virtual_cable_unplug
+0x4d4a hid_rx_process_suspend
+0x4d4b hid_rx_process_set_report
+0x4d53 hid_rx_process_handshake
+0x4d5f hid_rx_process_data
+0x4d62 hid_rx_process_data_hid_kb
+0x4d63 hid_malloc_tx_buff
+0x4d6a l2cap_init
+0x4d6b l2cap_init_work
+0x4d6f l2cap_init_wake
+0x4d79 process_rx_l2cap_pkt
+0x4d85 l2cap_rx_multiplexing
+0x4d8a l2cap_rx_multiplexing0
+0x4d8f l2cap_check_map
+0x4d9b set_pdata_0
+0x4d9d l2cap_call_proc_signal
+0x4d9f l2cap_call_proc_signal0
+0x4da9 l2cap_call_proc_sigal_pending
+0x4db7 l2cap_sdp_conn_succ
+0x4dc3 l2cap_reset_sdp_map
+0x4dd3 check_l2cap_map
+0x4dd5 check_l2cap_map_loop
+0x4dda check_l2cap_map_used
+0x4dde check_l2cap_map_used2
+0x4de0 l2cap_call_proc_sdp
+0x4de8 ml2cap_call_proc_sdp
+0x4dec l2cap_call_proc_sdp_common
+0x4df3 l2cap_call_proc_hid
+0x4df5 l2cap_call_proc_rfcomm
+0x4dfb l2cap_call_proc_no_reply
+0x4dfc l2cap_rx_reset_state
+0x4e01 l2cap_process_signal_pkt
+0x4e08 l2cap_process_signal_pkt_loop
+0x4e10 l2cap_process_one_signal
+0x4e1e l2cap_process_one_signal_rtn
+0x4e1f l2cap_proc_signal_info_req
+0x4e2a l2cap_proc_signal_info_req_reply
+0x4e2d l2cap_proc_signal_info_req_ext
+0x4e33 l2cap_proc_signal_info_req_fix
+0x4e38 l2cap_proc_signal_info_req_common
+0x4e3a ml2cap_proc_signal_info_req
+0x4e49 l2cap_proc_signal_cmd_reject
+0x4e50 l2cap_proc_signal_cmd_reject_rtn
+0x4e51 l2cap_proc_signal_connect_req
+0x4e64 l2cap_proc_signal_connect_req_sdp
+0x4e6e store_l2cap_req_param
+0x4e7a restore_l2cap_req_param
+0x4e86 l2cap_proc_signal_connect_req_rfcomm
+0x4e92 l2cap_proc_signal_connect_req_hid_ctrl
+0x4e9d l2cap_proc_signal_connect_req_hid_int
+0x4ea9 send_connection_pending
+0x4ead send_connection_sdp_res
+0x4eb1 send_connection_res
+0x4eb3 send_connection_res0
+0x4ec4 connect_suc
+0x4ec9 connect_pending
+0x4ece already_connected
+0x4ed0 connect_req_update_byte_counts
+0x4ed4 l2cap_proc_signal_connect_req_rtn
+0x4ed5 l2cap_proc_signal_connect_rsp
+0x4eed l2cap_proc_signal_connect_rsp_sdp
+0x4ef3 l2cap_proc_signal_connect_rsp_rfcomm
+0x4ef9 l2cap_proc_signal_connect_rsp_hid_int
+0x4eff l2cap_proc_signal_connect_rsp_hid_ctrl
+0x4f05 l2cap_proc_signal_config_req
+0x4f1c l2cap_proc_signal_config_req_sdp
+0x4f26 l2cap_proc_signal_config_req_hid_ctrl
+0x4f30 l2cap_proc_signal_config_req_hid_int
+0x4f3a l2cap_proc_signal_config_req_rfcomm
+0x4f43 l2cap_send_config_rsp
+0x4f59 l2cap_send_config_rsp_is_sdp
+0x4f5a l2cap_check_channel_state
+0x4f64 l2cap_send_config_req_sdp
+0x4f6b l2cap_send_config_req_rfcomm
+0x4f72 l2cap_send_config_req_hid_ctrl
+0x4f79 l2cap_send_config_req_hid_int
+0x4f7f l2cap_generate_config_req
+0x4f97 l2cap_generate_config_req_rfcomm
+0x4f99 l2cap_generate_config_req_done
+0x4fa1 l2cap_proc_signal_config_req_rtn
+0x4fa2 l2cap_proc_signal_config_rsp
+0x4fba l2cap_proc_signal_config_rsp_sdp
+0x4fbe l2cap_proc_signal_config_rsp_rfcomm
+0x4fc2 l2cap_proc_signal_config_rsp_hid_ctrl
+0x4fc6 l2cap_proc_signal_config_rsp_hid_int
+0x4fcb l2cap_proc_signal_disconnect_req
+0x4fe6 l2cap_proc_signal_disconnect_req_hid_ctrl
+0x4fec l2cap_proc_signal_disconnect_req_hid_int
+0x4ff2 l2cap_proc_signal_disconnect_req_sdp
+0x4ff8 l2cap_disconnect_hid_control_now
+0x4ffa l2cap_disconnect_hid_interrupt_now
+0x4ffe l2cap_disconnect_sdp_now
+0x5002 l2cap_proc_signal_disconnect_req_rfcomm
+0x5008 l2cap_disconnect_rfcomm_now
+0x500a l2cap_send_disconnect_rsp_pkt
+0x5017 l2cap_proc_signal_disconnect_req_err_rtn
+0x5019 l2cap_proc_signal_disconnect_req_rtn
+0x501b l2cap_proc_signal_disconnect_rsp
+0x5035 l2cap_proc_signal_disconnect_rsp_sdp
+0x503b l2cap_proc_signal_disconnect_rsp_rfcomm
+0x5041 l2cap_proc_signal_disconnect_rsp_hid_ctrl
+0x5047 l2cap_proc_signal_disconnect_rsp_hid_int
+0x504d l2cap_proc_signal_disconnect_rsp_rtn
+0x504f l2cap_proc_signal_disconnect_rsp_err_rtn
+0x5050 l2cap_proc_signal_echo_req
+0x5060 l2cap_proc_signal_echo_rsp
+0x5061 l2cap_proc_signal_info_rsp
+0x5062 l2cap_reject_command
+0x506f l2cap_reset_rfcomm_channel_state
+0x5074 l2cap_reset_sdp_channel_state
+0x5079 l2cap_reset_hid_ctrl_state
+0x507f l2cap_reset_hid_int_state
+0x5085 l2cap_reset_hid_disconnected
+0x5087 l2cap_disconnect_interrupt_req
+0x5091 l2cap_disconnect_control_req
+0x509a l2cap_generate_disconnect_req
+0x50a8 ml2cap_send_signal_connect_req
+0x50b7 ml2cap_send_signal_config_req
+0x50cc ml2cap_send_signal_disconn_req
+0x50de ml2cap_send_signal
+0x50e7 msdp_send_req_done
+0x50ef ml2cap_rx_multiplexing
+0x50f9 ml2cap_call_proc_signal
+0x5102 ml2cap_proc_one_comm_loop
+0x5108 ml2cap_proc_one_comm
+0x5113 ml2cap_proc_signal_connect_req
+0x5116 ml2cap_proc_signal_cmd_reject
+0x511c mvptr
+0x5120 ml2cap_proc_signal_connect_rsp
+0x512e ml2cap_proc_signal_connect_refused_result
+0x5130 ml2cap_proc_signal_connect_rsp_mnosucc
+0x5132 ml2cap_proc_signal_connect_rsp_sucessful
+0x5141 ml2cap_proc_signal_connect_rsp_sdp
+0x5147 ml2cap_proc_signal_connect_rsp_rfcomm
+0x514d ml2cap_proc_signal_connect_rsp_hid_ctrl
+0x5153 ml2cap_proc_signal_connect_rsp_hid_int
+0x5158 mnosucc1
+0x5159 mnosucc
+0x515c ml2cap_proc_signal_config_rsp
+0x5176 ml2cap_proc_signal_config_rsp_sdp
+0x517a ml2cap_proc_signal_config_rsp_rfcomm
+0x517e ml2cap_proc_signal_config_rsp_hid_ctrl
+0x5182 ml2cap_proc_signal_config_rsp_hid_int
+0x5187 mcfrsdone
+0x5188 mcrsdone1
+0x5189 mloop2
+0x518d mcrsdone
+0x518e ml2cap_proc_signal_config_req
+0x51ad ml2cap_proc_signal_config_req_sdp
+0x51bb ml2cap_proc_signal_config_req_sdp_nsndreq
+0x51be ml2cap_proc_signal_config_req_rfcomm
+0x51c4 ml2cap_proc_signal_config_req_hid_ctrl
+0x51ca ml2cap_proc_signal_config_req_hid_int
+0x51cf mcfgrq_done
+0x51da mloop1
+0x51e0 mcrqdone
+0x51e1 ml2cap_proc_signal_disconn_req
+0x51fa ml2cap_proc_signal_disconn_sdp
+0x51ff ml2cap_proc_signal_disconn_hid_ctrl
+0x5201 ml2cap_proc_signal_disconn_hid_int
+0x5203 mclsrfc
+0x5205 mclssdp
+0x5213 ml2cap_proc_signal_disconn_rsp
+0x5227 ml2cap_proc_signal_disconn_rsp_sdp
+0x522a mdisdone
+0x522e ml2cap_proc_send_reject
+0x523a l2cap_get_req_id
+0x523e l2cap_get_req_id_ok
+0x5240 l2cap_malloc
+0x5247 l2cap_malloc_loop
+0x524f l2cap_malloc_next
+0x5255 l2cap_malloc_rtn
+0x5258 l2cap_malloc_fifo_out
+0x525d l2cap_malloc_free
+0x5264 l2cap_malloc_discard
+0x526e l2cap_malloc_is_fifo_full
+0x5271 l2cap_malloc_is_fifo_nearly_full
+0x5274 l2cap_malloc_is_fifo_empty
+0x5277 l2cap_malloc_fifo_get_first_ptr
+0x527a l2cap_malloc_free_loop
+0x527e l2cap_malloc_get_full_map
+0x5282 l2cap_malloc_get_full_map_loop
+0x5288 l2cap_malloc_into_fifo
+0x5295 l2cap_malloc_into_fifo_no_push
+0x5298 l2cap_malloc_into_fifo_loop
+0x52a0 l2cap_malloc_enough
+0x52a5 l2cap_malloc_enough_loop
+0x52b0 l2cap_malloc_enough_end
+0x52b6 l2cap_malloc_enough_rtn
+0x52b8 l2cap_malloc_signal_channel
+0x52c1 l2cap_get_signal_tx_buff
+0x52c3 l2cap_get_signal_tx_payload
+0x52c5 l2cap_malloc_sdp_channel
+0x52ce l2cap_get_sdp_tx_buff
+0x52d0 l2cap_get_sdp_tx_payload
+0x52d2 l2cap_malloc_rfcomm_channel
+0x52e0 l2cap_get_rfcomm_tx_buff
+0x52e2 l2cap_util_pdata_to_contw
+0x52e5 l2cap_lpm_save_calc_len
+0x52e9 l2cap_lpm_save_calc_len_loop
+0x52f5 l2cap_lpm_save_calc_len_end
+0x52f7 l2cap_lpm_get_wake_lock
+0x52f9 l2cap_lpm_put_wake_lock
+0x52fb l2cap_lpm_save_txbuf
+0x5306 l2cap_lpm_save_txbuf_loop
+0x530f l2cap_lpm_save_txbuf_nempty
+0x5318 l2cap_lpm_load_txbuf
+0x531f l2cap_lpm_load_txbuf_loop
+0x532e le_init_conn
+0x5340 le_init_master
+0x534c le_init_slave
+0x535c le_dispatch
+0x5360 le_conn_dispatch
+0x5366 le_master_dispatch
+0x5377 le_master_disconn
+0x537a le_slave_dispatch
+0x5388 le_slave_match
+0x5395 le_slave_cont
+0x539b le_slave_unsync
+0x53a0 le_check_md
+0x53a4 le_slave_more_data
+0x53a9 le_disconnect
+0x53af le_clear_connection_info
+0x53b7 le_got_first_packet
+0x53c4 le_enable
+0x53ce le_disable
+0x53d5 le_prep
+0x53de lerx_setfreq
+0x53e3 letx_setfreq
+0x53e4 letx_setfreq0
+0x53e6 le_setfreq
+0x53f3 le_ctf_normal
+0x53f6 le_ctf_low
+0x53f9 le_ctf_test
+0x53fc le_sca_map
+0x540c le_adv_access
+0x5413 le_setup
+0x541c le_setup_master
+0x5422 le_next_adv_channel
+0x5428 le_next_adv_channel_curr_channel_37
+0x542e le_next_adv_channel_curr_channel_38
+0x5434 le_next_adv_channel_curr_channel_39
+0x543a set_le_next_adv_channel_37
+0x543f set_le_next_adv_channel_38
+0x5444 set_le_next_adv_channel_39
+0x5449 le_context_nexthop
+0x5459 le_nexthop_nowrap
+0x545b le_calc_channel_map
+0x545f le_count_channels_loop
+0x5461 le_count_channels_notused
+0x5466 le_map_channel
+0x546c le_map_channel_next
+0x5472 le_map_channel_cont
+0x5474 le_map_channel_loop
+0x5477 le_map_channel_skip
+0x547c le_map_channel_end
+0x547f le_wait_tx
+0x5482 le_wait_master
+0x5485 le_receive_adv
+0x5489 le_receive_slave
+0x548e le_receive_packet
+0x548f le_receive_rxon
+0x549a le_receive_on_attempt
+0x54a1 le_receive_skip
+0x54ad lerx_loop
+0x54b1 lerx_nopayload
+0x54bf le_transmit_receive_sifs
+0x54c1 le_transmit_receive_sifs_notx
+0x54c7 le_transmit_norx
+0x54c9 le_transmit
+0x54cd le_transmit0
+0x54df letr_loop
+0x54e2 letr_nopayload
+0x54e9 le_send_adv_ind
+0x54f9 le_send_adv_direct_ind
+0x5504 le_send_adv_transmit
+0x550b le_send_scan_request
+0x551c le_send_scan_response
+0x552b le_connect_request
+0x5535 le_con_req_hop_retry
+0x5572 le_init_adv
+0x5575 le_update_param
+0x559d le_update_channel_map
+0x55aa le_acknowledge
+0x55bc le_ack_unenc
+0x55c0 le_check_wak
+0x55d2 le_set_enc
+0x55d6 le_clear_enc
+0x55e1 le_wait_adv
+0x55e8 le_scan
+0x5608 le_create_conn
+0x5619 le_scan_check_sender_addr_type
+0x561e le_prepare_tx
+0x5642 le_check_tx_md
+0x5649 le_check_continue
+0x5650 le_set_md
+0x5652 le_clear_md
+0x5654 le_update_tx_type
+0x5658 le_att_check_notification_enable
+0x5664 le_send_empty
+0x5666 le_send_packet
+0x5676 le_send_no_txlen
+0x567a get_lpm_wake_ble_rx_lock
+0x567c put_lpm_wake_ble_rx_lock
+0x567e le_parse
+0x568d le_parse_l2cap
+0x569a le_check_l2cap_complete
+0x569e le_check_l2cap_cid_legal
+0x56a9 le_check_l2cap_llid_start
+0x56bd le_check_l2cap_continue_legal
+0x56c1 le_check_l2cap_llid_continue
+0x56d7 le_get_search_att_type
+0x56d9 le_get_search_common
+0x56db le_get_search_common2
+0x56df le_get_search_att_uuid
+0x56e2 le_writeatt_cb
+0x56e4 le_supervision_update
+0x56ed le_supervision_flush
+0x56f0 le_adv
+0x56f2 le_adv_loop
+0x56f9 le_adv_loop_tx
+0x5706 le_adv_not_match
+0x5713 le_receive_window_size
+0x5728 le_parse_connect_req
+0x5756 le_init_attlist_search
+0x575f le_att_handle_inrange
+0x5768 le_att_handle_blank
+0x576a le_att_get_handle_ptr
+0x576d le_att_get_handle_ptr2
+0x5770 le_att_get_handle_loop1
+0x5779 le_att_get_handle_ptr_found
+0x577c le_att_get_short_uuid_ptr
+0x577f le_att_get_short_uuid_loop
+0x578a le_att_get_handle_info_from_ptr
+0x578c le_att_get_handle_info
+0x578e le_att_get_handle_info_fast
+0x5790 le_att_get_handle_loop
+0x5799 le_att_unfind_handle
+0x579a le_att_finded_handle
+0x57a3 le_modified_name
+0x57a6 le_modified_name_att_list
+0x57b5 le_name_length_longer_than_att
+0x57b8 le_modified_name_adv
+0x57c5 le_modified_name_adv_and_scan
+0x57d7 le_modified_name_adv_and_scan_store_data
+0x57dd le_modified_name_adv_and_scan_name_overflow
+0x57df le_modified_name_adv_loop
+0x57ea le_modified_name_adv_loop2
+0x57ee le_modified_name_adv_found_name
+0x57f0 memcpy_empty
+0x57f4 le_lpm_set_mult
+0x57f8 le_lpm_set_mult_attempt
+0x5806 le_lpm_lost
+0x580c le_set_config_fixed_tk
+0x580e le_clr_config_fixed_tk
+0x5810 le_set_config_fixed_ltk
+0x5812 le_clr_config_fixed_ltk
+0x5814 le_set_config_more_data
+0x5816 le_clr_config_more_data
+0x5818 le_set_config_read_authentication
+0x581a le_clr_config_read_authentication
+0x581c le_set_config_write_authentication
+0x581e le_clr_config_write_authentication
+0x5820 le_set_config_short_mult
+0x5822 le_clr_config_short_mult
+0x5824 le_set_config
+0x5828 le_clr_config
+0x582c le_set_fixed_ltk
+0x5839 le_set_justwork
+0x583f le_fifo_malloc_tx_empty
+0x5842 le_fifo_malloc_tx_ll
+0x5847 le_fifo_malloc_tx_l2cap
+0x5850 le_fifo_malloc_tx
+0x5855 le_fifo_malloc_tx_loop
+0x585a le_fifo_malloc_tx_got_empty
+0x5861 le_fifo_tx_find_empty_ptr
+0x5863 le_fifo_tx_find_empty_ptr_loop
+0x5869 le_fifo_tx_found_empty_ptr
+0x5873 le_fifo_get_first_tx_ptr
+0x5876 le_fifo_get_second_tx_ptr
+0x5879 le_fifo_get_last_tx_ptr
+0x587c le_fifo_get_last_tx_ptr0
+0x5884 le_fifo_get_first_l2cap_ptr
+0x5887 le_fifo_get_first_att_ptr
+0x588a le_fifo_get_last_att_ptr
+0x588d le_fifo_get_last_l2cap_ptr
+0x5890 le_fifo_check_full
+0x5892 le_fifo_check_nearly_full
+0x5894 le_fifo_check_empty
+0x5896 le_fifo_release_first_node
+0x589f le_fifo_release_first_node_loop
+0x58ab le_parse_att
+0x58ba le_send_att_exchange_mtu_requset
+0x58c1 le_parse_att_exchange_mtu_request
+0x58c2 le_send_att_exchange_mtu_response
+0x58c9 le_parse_att_exchange_mtu_response
+0x58cc le_parse_att_find_information_request
+0x58cf le_send_att_find_information_response
+0x58d1 le_send_att_find_information_res_loop
+0x58e1 le_send_att_find_information_res_store_info
+0x58ea le_send_att_find_information_res_cont
+0x58ed le_send_att_find_information_res_next
+0x58f0 le_send_att_find_information_res_end
+0x58f2 le_parse_att_find_by_type_value_request
+0x58fb le_start_end_handle_check_1
+0x5902 le_start_end_handle_check_1_fail
+0x5905 le_send_att_find_by_type_value_response
+0x590c le_send_att_find_by_type_value_res_primary
+0x5911 le_send_att_find_primary_search_loop
+0x5921 le_send_att_find_primary_search_loop1
+0x5925 le_send_att_error_response_notfound2
+0x5928 le_send_att_find_primary_search_end_start_handle_found
+0x5930 le_send_att_find_primary_search_end_ending_handle_found
+0x5936 le_send_att_find_primary_search_end
+0x593f le_parse_att_read_by_type_request
+0x5942 le_send_att_read_by_type_response
+0x5951 le_send_att_read_by_type_response_loop
+0x596b le_send_att_read_by_type_response_next_handle
+0x596d le_send_att_read_by_type_response_end
+0x596f le_send_att_read_by_type_res_found_next
+0x597d le_send_att_read_by_type_write_properties
+0x5984 le_send_att_read_by_type_write_uuid
+0x5990 le_send_att_read_by_type_res_not_characteristic
+0x5992 le_send_att_read_by_type_res_not_char_loop
+0x5998 le_send_att_read_by_type_res_not_char_common
+0x59a6 le_send_att_read_by_type_res_not_char_next
+0x59a8 le_send_att_read_by_type_res_device_name
+0x59bc le_parse_att_read_request
+0x59bf le_send_att_read_response
+0x59ca le_send_att_read_response_less
+0x59d3 le_send_device_name
+0x59dd le_send_att_read_response_check_auth
+0x59e4 le_parse_att_read_blob_request
+0x59e6 le_send_att_read_blob_response
+0x59f5 le_send_att_read_blob_response_less
+0x59fa le_parse_att_read_by_group_type_request
+0x59fd le_send_att_read_by_group_type_response
+0x5a05 le_send_att_read_by_group_type_response_loop
+0x5a19 le_send_att_read_by_group_type_store_write_record
+0x5a1f le_send_att_read_by_group_type_store_record
+0x5a23 le_send_att_read_by_group_type_next_handle
+0x5a25 le_send_att_read_by_group_type_end0
+0x5a28 le_send_att_read_by_group_type_end1
+0x5a2c le_send_att_read_by_group_type_end_common
+0x5a2f le_parse_att_write_request
+0x5a33 le_send_att_write_response_check_auth
+0x5a3d le_send_att_write_response
+0x5a42 le_check_encrypt_state
+0x5a48 le_parse_att_prepare_write_request
+0x5a4d le_send_att_prepare_write_response
+0x5a5b le_send_att_execute_write_response
+0x5a60 le_parse_att_write_command
+0x5a64 le_att_malloc_tx_notify
+0x5a6d le_att_malloc_tx_indication
+0x5a76 le_send_att_error_response_notfound
+0x5a77 le_send_att_error_response
+0x5a82 le_fifo_malloc_tx_l2cap_gatt
+0x5a84 le_att_next_handle
+0x5a88 le_att_check_handle_end
+0x5a8c le_att_same_type
+0x5a8e le_att_check_same_common
+0x5a94 le_att_same_uuid
+0x5a97 le_store_att_record
+0x5a9c le_write_att_record
+0x5aa1 le_write_att_record_common
+0x5aa5 le_send_auto_len_by_mem
+0x5ab1 le_get_search_handle_start_end_common
+0x5ab6 le_parse_signaling
+0x5abb le_l2cap_parse_conn_parameter_update_rsp
+0x5abf le_l2cap_tx_update_req
+0x5ac7 le_fifo_malloc_tx_l2cap_signaling
+0x5acf le_l2cap_update_signaling_identifier
+0x5ad3 le_l2cap_reset_signaling_identifier
+0x5ad5 le_pairing_mode_init
+0x5add le_set_pairing_mode_secure_justwork
+0x5adf le_set_pairing_mode_secure_numeric
+0x5ae2 le_set_pairing_mode_secure_passkey
+0x5ae4 le_set_no_pairing
+0x5ae5 le_set_noinputnooutput
+0x5ae7 le_set_pairing_mode_lagacy_just_work
+0x5ae9 le_set_pairing_mode_lagacy_passkey
+0x5aea le_set_displayonly
+0x5aec le_secure_connection_enable
+0x5af0 le_secure_connection_disable
+0x5af4 le_parse_smp
+0x5b02 le_send_smp_security_request
+0x5b09 le_parse_smp_pairing_request
+0x5b18 le_set_tk_0
+0x5b1b le_parse_smp_pairing_req_passkey
+0x5b1d le_genernate_tk
+0x5b24 le_parse_smp_pairing_req_fixed_passkey
+0x5b26 le_check_master_support_secure_connect
+0x5b2b le_send_smp_pairing_response
+0x5b30 le_parse_smp_pairing_confirm
+0x5b37 le_parse_smp_pairing_confirm_secure_passkey
+0x5b3d le_send_smp_pairing_confirm
+0x5b45 le_send_smp_pairing_confirm_sc
+0x5b4d le_parse_smp_pairing_random
+0x5b53 le_send_pairing_confirm_value_failed
+0x5b54 le_send_pairing_failed
+0x5b5a le_parse_smp_pairing_failed
+0x5b5f le_smp_pairing_fail_reason_not_support_pairing
+0x5b61 le_parse_smp_pairing_random_sc
+0x5b6c le_parse_smp_pairing_random_sc_passkey
+0x5b75 le_parse_smp_pairing_random_success
+0x5b7a le_send_smp_pairing_random
+0x5b80 le_parse_smp_encryption_information
+0x5b82 le_send_smp_encryption_information
+0x5b8a le_send_fixed_ltk
+0x5b8c le_send_smp_master_identification
+0x5b98 le_send_smp_identity_information
+0x5ba0 le_send_smp_identity_address_information
+0x5ba9 le_send_pairing_fail_unspecified_reason
+0x5bab le_check_init_key_distribution
+0x5baf le_parse_smp_identity_information
+0x5bb9 le_check_master_addr_type
+0x5bc0 le_parse_smp_identity_address_information
+0x5bc4 le_parse_smp_security_request
+0x5bc5 le_parse_smp_public_key
+0x5bca le_parse_smp_dhkey_check
+0x5bcf le_send_smp_pairing_public_key
+0x5bd5 le_send_smp_pairing_dhkey_check
+0x5bdb le_check_paring_time
+0x5be4 le_pairing_sm
+0x5bef le_pairing_sm_send_sec_req
+0x5bf5 le_pairing_sm_start
+0x5bf7 le_pairing_sm_rcv_pairing_req
+0x5bfb le_pairing_sm_after_auth
+0x5bfe le_pairing_sm_after_auth_start_enc
+0x5c07 le_pairng_sm_send_enc_information
+0x5c09 le_pairng_sm_send_master_indentification
+0x5c10 le_pairng_sm_send_indentity_information
+0x5c12 le_parse_start_enc_rsp_after_auth_end
+0x5c18 le_secure_connect_sm
+0x5c26 le_sc_sm_passkey_wait_confirm
+0x5c30 le_sc_sm_wait_confirm_gkey
+0x5c35 le_sc_confirm_gkey_ok
+0x5c39 le_sc_sm_receive_dhkey
+0x5c3d le_dhkey_ready
+0x5c41 le_dhkey_ready_common
+0x5c47 le_dhkey_check_fail
+0x5c49 le_dhkey_check_ok
+0x5c52 le_sc_sm_send_public_key
+0x5c55 le_sc_sm_ready_send_pairing_confirm
+0x5c56 le_sc_sm_send_public_key_passkey
+0x5c58 le_sc_sm_receive_public_key
+0x5c5c le_public_key_ready
+0x5c5f le_sc_sm_wait_send_public_key
+0x5c62 le_fifo_malloc_tx_l2cap_smp
+0x5c64 le_parse_ll
+0x5c7b le_parse_connection_update_req
+0x5c83 le_parse_channel_map_req
+0x5c8e le_parse_terminate_ind
+0x5c92 le_send_terminate_ind_user_terminated
+0x5c93 le_send_terminate_ind
+0x5c99 le_send_feature_rsp
+0x5c9f le_parse_version_ind
+0x5ca0 le_send_version_ind
+0x5ca6 le_parse_ping_req
+0x5ca8 le_send_ll_one_lenth
+0x5caa le_parse_enc_req
+0x5cbc le_parse_enc_req_after_auth
+0x5cbf le_parse_enc_req_fixed_ltk
+0x5cc4 le_ltk_lost
+0x5cc9 le_send_reject_ind
+0x5ccf le_send_enc_rsp
+0x5cdd le_send_start_enc_req
+0x5cdf le_send_start_enc_rsp
+0x5ce1 le_parse_enc_rsp
+0x5ce6 le_parse_start_enc_req
+0x5cea le_parse_start_enc_rsp
+0x5cef le_parse_pause_enc_req
+0x5cf3 le_send_pause_enc_rsp
+0x5cf5 le_parse_ping_rsp
+0x5cf6 init_lmp
+0x5cf7 init_lmp_work
+0x5d04 init_lmp_reinit
+0x5d07 parse_rx_done
+0x5d08 parse_lmp
+0x5d52 reject_unknown_packet
+0x5d53 reject_lmp_packet
+0x5d55 parse_lmp_clkoffset_req
+0x5d57 parse_enc_key_size_mask_req
+0x5d59 parse_lmp_set_afh
+0x5d66 parse_lmp_escape
+0x5d77 reject_unknown_ext_packet
+0x5d7a parse_lmpext_chn_classification_req
+0x5d7d parse_lmpext_iocap_req
+0x5d80 parse_lmpext_iocap_res
+0x5d82 iocap_lmpext_load
+0x5d86 iocap_lmpext_common
+0x5d88 parse_lmpext_accepted
+0x5d8d parse_lmpext_not_accepted
+0x5d92 parse_lmpext_accepted_ptt
+0x5d96 parse_lmpext_not_accepted_ptt
+0x5d9e parse_lmpext_pause_encrypt
+0x5da1 parse_lmpext_pause_encrypt_slave
+0x5da3 parse_lmpext_resume_encrypt
+0x5da5 parse_lmpext_features_req
+0x5da7 parse_lmpext_features_res
+0x5dad parse_lmpext_features_res_not_hci
+0x5db1 parse_lmp_accepted
+0x5dc2 parse_lmp_not_accepted
+0x5dcf parse_lmp_accepted_switch
+0x5dd2 parse_lmp_not_accepted_switch
+0x5dd8 parse_lmp_accepted_hostconn
+0x5dde parse_lmp_accepted_hostconn_ctn
+0x5de2 parse_lmp_not_accepted_hostconn
+0x5de7 parse_lmp_accepted_inrand
+0x5dee parse_lmp_accepted_enc_mode
+0x5df4 parse_lmp_accepted_enc_keysize
+0x5df5 parse_lmp_accepted_start_enc
+0x5dfd parse_lmp_accepted_stop_enc
+0x5dfe parse_lmp_not_accepted_aurand_send_detach
+0x5e01 parse_lmp_not_accepted_inrand
+0x5e07 parse_lmp_inrand_key_missing
+0x5e0a parse_lmp_not_accepted_name_req
+0x5e0b parse_lmp_not_accepted_simple_pairing_number
+0x5e0e parse_lmp_not_accepted_dhkey_check
+0x5e11 parse_lmp_not_accepted_unsniff_req
+0x5e13 parse_lmp_accepted_unsniff_req
+0x5e16 parse_lmp_accepted_sniff_req
+0x5e22 parse_lmp_not_acdcept_sniff_req
+0x5e24 parse_lmp_crypt_key
+0x5e27 parse_lmp_setup_complete
+0x5e2d parse_lmp_max_slot
+0x5e2e parse_lmp_max_slot_req
+0x5e36 parse_lmp_detach
+0x5e38 accept_lmp_msg
+0x5e3a parse_lmp_incr_power
+0x5e3c parse_lmp_decr_power
+0x5e3e parse_lmp_version_res
+0x5e42 parse_lmp_auto_rate
+0x5e43 parse_lmp_in_rand
+0x5e4e parse_lmp_inrand_res
+0x5e52 pop_tid_follow
+0x5e56 push_tid_follow
+0x5e5a parse_lmp_au_rand_moudle
+0x5e5f parse_lmp_au_rand
+0x5e6a parse_lmp_sres
+0x5e73 authentication_ok
+0x5e77 authentication_ok_common
+0x5e81 authentication_ok_conn_sm
+0x5e86 parse_lmp_comb_key
+0x5e90 parse_lmp_name_res
+0x5ea0 parse_lmp_name_res_end
+0x5ea5 parse_lmp_name_req
+0x5ea9 parse_lmp_conn_req
+0x5eaa parse_lmp_timing_accuracy_req
+0x5eac parse_lmp_features_req
+0x5eae parse_lmp_version_req
+0x5eb0 parse_lmp_supervision_timeout
+0x5eb1 parse_lmp_sniff_subrating_req
+0x5ebf parse_lmpext_packet_type_table_req
+0x5eca parse_lmp_min_power
+0x5ecb parse_lmp_page_mode_req
+0x5ecc parse_lmp_page_scan_mode_req
+0x5ecd parse_lmp_slot_offset
+0x5ed0 parse_lmp_sniff_req_check_sniff_para
+0x5ed6 parse_lmp_sniff_req
+0x5eed set_big_value_to_attempt
+0x5ef0 lmp_reject_sniff
+0x5ef2 parse_lmp_start_encryption_req
+0x5ef6 parse_lmp_stop_encryption_req
+0x5ef8 parse_lmp_switch_req
+0x5efd parse_lmp_switch_req_not_accept
+0x5f01 parse_lmp_switch_req_clear_mark
+0x5f04 parse_lmp_switch_accept
+0x5f0a parse_lmp_use_semi_permanend_key
+0x5f0b parse_lmp_unsniff_req
+0x5f10 parse_lmp_encapsulated_header
+0x5f19 parse_lmp_encapsulated_header_master
+0x5f1c parse_lmp_encapsulated_header_reject
+0x5f1e parse_lmp_accepted_encapsulated_header
+0x5f20 parse_lmp_accepted_simple_pairing_number
+0x5f23 parse_lmp_accepted_simple_pairing_number_common
+0x5f27 parse_lmp_accepted_simple_pairing_number_ssp_pin
+0x5f2b parse_lmp_accepted_simple_pairing_number_passkey
+0x5f31 authentication_passkey
+0x5f3b authentication_passkey_end
+0x5f3d parse_lmp_accepted_dhkey_check
+0x5f3e pairing_success
+0x5f43 parse_lmp_accepted_dhkey_check_common
+0x5f4b parse_simple_pairing_confirm
+0x5f51 parse_lmp_encapsulated_payload
+0x5f55 parse_encapsulated_payload_master
+0x5f62 parse_lmp_encapsulated_payload_completed
+0x5f68 parse_lmp_encapsulated_payload_reject
+0x5f6a parse_lmp_accepted_encapsulated_payload
+0x5f6e parse_lmp_encapsulated_payload_all_accepted
+0x5f75 parse_lmp_encapsulated_payload_all_accepted_get_passkey
+0x5f77 parse_lmp_encapsulated_payload_all_accepted_master
+0x5f78 parse_lmp_simple_pairing_number
+0x5f7c parse_lmp_simple_pairing_number_master
+0x5f86 parse_lmp_simple_pairing_number_master0
+0x5f88 parse_lmp_simple_pairing_number_reject
+0x5f8a parse_dhkey_check
+0x5f8e parse_dhkey_check_master
+0x5f95 number_comparison_successed
+0x5f9a parse_dhkey_check_master0
+0x5f9d parse_lmp_dhkey_check_reject
+0x5f9f number_comparison_mode
+0x5fa4 comparison_result
+0x5fa7 parse_lmp_clkoffset_res
+0x5fa8 parse_lmp_encryption_mode_req
+0x5fb3 parse_lmp_features_res
+0x5fb4 parse_lmp_features_res_not_hci
+0x5fba parse_lmp_send_conn
+0x5fbc parse_lmp_test_activate
+0x5fc1 parse_lmp_test_control
+0x5fc6 parse_lmp_test_xor
+0x5fda parse_lmp_test_control_exit
+0x5fdf parse_lmp_test_control_pattern
+0x5fe6 parse_lmp_test_control_loopback_nowhite
+0x5fe7 parse_lmp_test_control_loopback
+0x5ff3 parse_lmp_test_control_pause
+0x5ff9 lmp_copy_rand
+0x5ffc lmp_generate_key
+0x5ffe lmp_start_encryption
+0x6001 lmp_accept_inrand
+0x6006 lmp_disconnect
+0x600a send_lmp
+0x6010 send_lmp0
+0x603d send_lmp_error
+0x603f send_lmp_escape
+0x604a send_lmp_accepted
+0x6059 send_create_conn_start_l2cap_timer_sm
+0x605f send_lmp_accept_sniff_req
+0x6060 send_lmp_not_accepted
+0x6068 send_not_accept_aurand
+0x606d send_lmpext_accepted
+0x6076 send_lmpext_not_accepted
+0x6080 send_lmp_accepted_inrand
+0x6084 send_lmp_accepted_enc_mode
+0x608b send_lmp_accepted_enc_start
+0x608d send_lmp_accepted_enc_exit
+0x608f send_lmp_accepted_enc_key
+0x6092 send_lmp_accepted_connection
+0x6098 send_lmp_accept_dhkey_check
+0x6099 send_lmpext_features_res
+0x60a4 send_lmpext_io_cap_res
+0x60af responder_iocap_keyboard_only
+0x60b5 responder_iocap_display_yesno
+0x60bb responder_iocap_no_input_no_output
+0x60c1 set_ssp_mode_justwork
+0x60c5 set_ssp_mode_numeric_comparison
+0x60c7 set_ssp_mode_passkey
+0x60c9 classic_bt_set_reject_justwork_flag
+0x60cb classic_bt_clr_reject_justwork_flag
+0x60cd classic_bluetooth_set_flag
+0x60d1 classic_bluetooth_clr_flag
+0x60d5 send_lmp_io_cap_req
+0x60da send_lmpext_sniff_subrating_req
+0x60db send_lmpext_sniff_subrating_res
+0x60e4 send_lmp_name_res
+0x60ec send_lmp_name_res_offset_ok
+0x60f4 send_lmp_timing_accuracy_res
+0x60f9 send_lmp_clkoffset_res
+0x60ff send_lmp_clkoffset_res_master
+0x6103 send_lmp_version_res
+0x6108 send_lmp_features_res
+0x610d send_lmpext_features_req
+0x6118 send_lmpext_packet_type_table_req
+0x6124 ssp_enable
+0x612b ssp_disable
+0x6132 afh_init
+0x613c afh_open_all_channels
+0x6140 afh_reset_map
+0x6147 afh_clear_error_counter
+0x614a afh_set_send_flag
+0x614e send_lmpext_pause_encryption_req
+0x6152 send_lmp_detach
+0x6157 prepare_disconnect
+0x615c send_lmp_no_payload
+0x615f send_lmp_nopayload_reply
+0x6162 send_lmp_encryption_mode_req
+0x616a send_lmp_superto
+0x616f send_lmp_name_req
+0x6175 send_lmp_test_control
+0x6179 send_lmp_test_control_loop
+0x617e send_lmp_quality_of_service_req
+0x617f send_lmp_unit_key
+0x6180 send_lmp_slot_offset
+0x6191 send_lmp_slot_offset_reply
+0x6195 send_lmp_switch_req
+0x6199 switch_on_native
+0x619a switch_slack
+0x61a4 send_lmp_sniff_req
+0x61aa send_lmp_timing_accuracy_req
+0x61af send_lmp_unsniff_req
+0x61b2 send_lmp_max_slot
+0x61b7 send_lmp_max_slot_req
+0x61bc send_lmp_inc_power
+0x61c1 send_lmp_setup_complete_by_module
+0x61c3 send_lmp_setup_complete
+0x61d4 send_lmp_setup_complete_has_sent
+0x61d6 send_lmp_version_req
+0x61db send_lmp_features_req
+0x61e0 sp_master_send_io_cap_get
+0x61e5 sp_master_send_io_cap_send
+0x61e9 sp_master_send_lmp_encapsulated_header
+0x61ed sp_master_commitment_compare
+0x61f7 sp_master_commitment_compare_success
+0x61fb sp_master_send_lmp_simple_pairing_number
+0x61fd sp_send_lmp_encapsulated_header
+0x61ff send_lmp_encapsulated_header
+0x620b send_lmp_encapsulated_payload
+0x621a sp_send_lmp_simple_pairing_comfirm
+0x621d send_lmp_simple_pairing_comfirm
+0x6225 sp_send_lmp_simple_pairing_number
+0x6227 send_lmp_simple_pairing_number
+0x6233 master_sp_sm_end
+0x6234 sp_aurand_send
+0x6239 master_sp_send_lmp_dhkey_check
+0x623a sp_send_lmp_dhkey_check
+0x623c send_lmp_dhkey_check
+0x6246 send_lmp_enc_key_size_mask_res
+0x624b send_lmp_auto_rate
+0x624c send_lmp_clkoffset_req
+0x624d send_lmp_quality_of_service
+0x624e send_lmp_test_activate
+0x624f send_lmp_comb_key
+0x6259 send_lmp_inrand
+0x625c send_lmp_rand
+0x6264 send_lmp_aurand
+0x626a send_lmp_aurand_notpairing
+0x626b send_lmp_aurand_common
+0x626d send_lmp_sres
+0x627c send_lmp_sres_master
+0x627e send_lmp_sres_startenc
+0x6284 send_lmp_sres_startenc_slave
+0x6288 send_lmp_start_encryption
+0x628f send_lmp_stop_encryption_req
+0x6292 send_lmp_encryption_key_size_req
+0x6298 msg_send_lmp
+0x62a0 send_lmpext
+0x62a7 send_lmp_follow
+0x62ad send_lmp_tid
+0x62b0 send_lmp_reply
+0x62b2 send_lmp_request
+0x62b3 send_lmp_end
+0x62b7 send_lmp_exit
+0x62bc lmo_fifo_check
+0x62c1 lmo_fifo_process
+0x62c7 lmo_fifo_process_lmo0empty
+0x62d1 lmo_fifo_process_lmo2to1
+0x62d7 lmo_fifo_process_lmo1_empty
+0x62e2 special_tid_store
+0x62eb tid_reply
+0x62ef tid_initiate
+0x62f3 tid_check
+0x62f8 tid_set_reply
+0x62fc check_localsm
+0x62ff setlocalsm_master
+0x6303 setlocalsm_slave
+0x6307 check_localsm_master
+0x630b generate_random_number
+0x630c generate_random
+0x630d generate_random_loop
+0x6311 generate_linkkey
+0x631b process_conn_sm
+0x631e process_conn_sm_continue
+0x633a host_create_conn_done
+0x6340 host_conn_judge_encrypt
+0x6344 host_create_conn_done_wait
+0x6349 host_create_conn_auth
+0x634f host_create_conn_auth_wait
+0x6350 host_create_conn_pairing
+0x6355 host_create_conn_pairing_wait
+0x6356 host_creat_conn_send_feat_ext
+0x6359 host_create_conn_send_version
+0x635c host_creat_conn_wait_switch
+0x6364 host_create_conn_switch_accept
+0x6366 host_create_conn_send_features
+0x6369 host_create_conn_send_switch
+0x636f host_create_conn_send_conn_req
+0x6374 host_create_conn_wait_accept
+0x637a host_create_conn_resend
+0x637c host_create_conn_waiting
+0x637d host_create_conn_switch
+0x6386 host_create_conn_send_setup_complete
+0x6389 host_create_conn_wait_setup_complete
+0x638d host_create_conn_wait_setup_complete_rtn
+0x638f host_create_conn_master_detach
+0x6394 host_create_conn_send_detach
+0x6398 host_create_conn_auth_pair
+0x639b host_create_conn_sm_done
+0x639d host_create_conn_auth_pair_true
+0x63a9 host_create_conn_auth_pair_nokey
+0x63b0 host_create_conn_auth_pair_wait
+0x63b1 host_create_conn_encrypt
+0x63b5 host_create_conn_encrypt_start
+0x63ba host_create_conn_encrypt_wait
+0x63be host_create_conn_encrypt_wait_clear
+0x63c0 host_auth
+0x63c5 remote_auth
+0x63cb pincode_reinit
+0x63d1 twspi_reset
+0x63e0 twspi_reset2
+0x63ee twspi_disable
+0x63f2 twspi_enable
+0x63f6 twspi_enable2
+0x63fb sensor_read
+0x6405 sensor_write
+0x640d spi_ncs_gpio_init
+0x640f spi_ncs_enable
+0x6411 spi_ncs_disable
+0x6413 twspi_write
+0x6414 twspi_read
+0x6415 read_function_aes
+0x6419 read_function
+0x641c read_fuction_zero
+0x641e get_block_header
+0x641f get_block_header0
+0x6429 read_first_block
+0x6430 get_iv
+0x643c load_storage
+0x6446 load_storage_loop
+0x644d reload_eeprom
+0x6452 reload_eeprom_loop
+0x645b loadcode
+0x646e loadcode_otp
+0x646f loadcode_otp_2
+0x647b loadcode_iic
+0x647d loadcode_iic_2
+0x6486 loadcode_iic_eeprom_2k
+0x648e loadcode_spi
+0x648f loadcode_spi_2
+0x649b loadcode_hci
+0x649d loadcode_hci_enc
+0x64a1 loadcode_hci_loop
+0x64a3 clear_key_buf
+0x64aa loadcode_iic_by_eeprom
+0x64b0 loadcode_check_times
+0x64b6 loadcode_error
+0x64b9 set_ucode_status
+0x64c0 decrypt_code
+0x64c3 decrypt_code_loop
+0x64c6 decrypt_code_skip
+0x64ca load_ucode
+0x64d2 load_ucode_loop
+0x64d7 spid_init
+0x64da spid_init2
+0x64dd spid_init_common
+0x64e6 spid_reset
+0x64ec spid_write_reg
+0x64f3 spid_read_reg
+0x64f4 spid_read_regs
+0x64fc wait_spid_done
+0x6502 spid_init_flash
+0x650b spid_unlock_flash
+0x6514 flash_write
+0x651b flash_write_spi_sm_timer
+0x6522 flash_write_start
+0x6528 flash_erase_sector
+0x6530 flash_wait_erase_sector
+0x6537 flash_write_data
+0x653d flash_wait_write_data
+0x6545 flash_data_recover
+0x654a flash_data_preserve
+0x6552 spid_write_flash
+0x6556 spid_write_flash_common
+0x6562 spid_read_flash
+0x6574 spi_read_flash_wait
+0x6578 spid_load_flash
+0x6585 spi_load_flash_wait
+0x659a soft_reset_chip
+0x659c iic_init_390k
+0x65a3 iicd_init_12m
+0x65a9 iicd_init_gpio
+0x65b0 wait_iicd_done
+0x65b3 iicd_read_data
+0x65bf set_eeprom_size_2k
+0x65c2 clear_eeprom_size_2k
+0x65c5 iicd_read_eep_data_size_2k
+0x65c9 iicd_read_eep_size_2k_lcadcode
+0x65cc iicd_read_eep_size_2k
+0x65d1 iicd_write_protect_eep_data
+0x65d6 iicd_eeprom_write_enable
+0x65db iicd_wp_gpio_output_low
+0x65dd iicd_eeprom_write_disable
+0x65df iicd_read_eep_data
+0x65e5 iicd_read_eep
+0x65eb iicd_read_eep_common
+0x6601 iicd_read_eep_load_code_size_2k
+0x6606 iicd_write_eep_data
+0x6608 iicd_write_ota_data
+0x660d iicd_write_eep_loop
+0x661d iicd_eep_transparency
+0x662f iicd_eep_deal_short_packet
+0x6634 iicd_write_eep_size_2k
+0x663d iicd_write_eep
+0x664a iicd_write_eep_common
+0x6653 iic_check_eeprom_standby
+0x6655 iic_check_eeprom_standby_wait
+0x666a otp_enable_chgpump
+0x666d otp_disable_chgpump
+0x666f otp_set_addr
+0x6673 otp_write
+0x6675 otp_program
+0x6678 otp_program_bit
+0x6697 otp_skip_0
+0x66a0 otp_ce
+0x66a6 otpd_read_init
+0x66b0 otpd_wait_end
+0x66b3 otpd_read_data
+0x66b8 otpd_read_code
+0x66c2 uartd_prepare_tx
+0x66c5 uartd_send
+0x66c8 uartd_rxdone
+0x66cb uartd_prepare_rx
+0x66ce uart_set_baud_by_mem
+0x66d1 uart_copy_tx_bytes_fast
+0x66d3 uart_copy_tx_bytes_fast_loop
+0x66d8 uart_copy_tx_bytes_fast_loop_four
+0x66de uart_tx_8_bytes
+0x66e1 uart_tx_4_bytes
+0x66e4 uart_copy_tx_bytes
+0x66e6 uart_copy_tx_bytes_loop
+0x66ea uart_copy_rx_bytes_fast
+0x66ec uart_copy_rx_bytes_fast_loop
+0x66f1 uart_copy_rx_bytes_fast_loop_four
+0x66f7 uart_rx_8_bytes
+0x66fa uart_rx_4_bytes
+0x66fd uart_copy_rx_bytes
+0x66ff uart_copy_rx_bytes_loop
+0x6703 uart_copy_rx2tx
+0x6705 uart_copy_rx2tx_loop
+0x6709 app_store_nvram_event
+0x670b check_51cmd_update_device_record
+0x6711 write_device_record
+0x6715 write_device_loop_find
+0x6721 write_device_loop_find0
+0x6725 set_index_finded_device
+0x672b set_index_find_device_master_addr
+0x6730 store_rec_data_common
+0x6733 set_index_finded_device_ble_mode
+0x6737 set_index_finded_device_irk
+0x6739 store_ble_rec_data_common
+0x673b set_index_finded_device_ediv
+0x673e nvram_find_addr_from_bd_list
+0x6743 find_addr_from_bd_list_ble_mode
+0x674d find_addr_from_bd_list_static_addr
+0x6750 find_addr_from_bd_list_random_non_resolvable_private_address
+0x6752 find_addr_from_bd_list_random_addr
+0x6754 find_addr_from_bd_list_spp_mode
+0x6757 find_addr_from_bd_list_common
+0x675f nvram_find_addr_from_list
+0x676f nvram_find_addr_from_list_compare
+0x6771 find_master_addr_from_list_compare
+0x6776 find_addr_from_list_compare_ble_mode
+0x6779 find_irk_form_list_compare
+0x678b genernate_master_macaddress
+0x6794 find_ediv_form_list_compare
+0x67a3 check_nvram
+0x67a9 init_device_list
+0x67ad init_device_list_loop
+0x67b2 load_device_list
+0x67bc clear_key_exists
+0x67be load_device_list_mode_4
+0x67ca clear_ltk_exists
+0x67cc eeprom_store_le_reconn_info
+0x67d0 eeprom_store_bd_reconn_info
+0x67d3 eeprom_store_reconn_info
+0x67d7 check_link_key_load
+0x67dd gpio_set_wake_by_current_state
+0x67e1 gpio_set_wake
+0x67ed gpio_clr_wake
+0x67f9 gpio_config_input_nowake
+0x67fb gpio_config_input
+0x67fe gpio_config_input_without_wake
+0x6806 gpio_set_high_impedance
+0x680e gpio_config_output
+0x6812 gpio_config_output0
+0x6815 gpio_common
+0x681b gpio_check_active
+0x681d gpio_get_bit
+0x681e get_bit_common
+0x6823 gpio_get_bit_reverse
+0x6825 gpio_out_inactive
+0x6829 gpio_out_active
+0x682c gpio_out_flag
+0x682f gpio_out
+0x6830 gpio_set_bit
+0x6835 gpio_set_before_lpm_common
+0x6874 neglect2_from_6_pin
+0x6876 neglect4_from_9_pin
+0x6878 neglact4_from_23_pin
+0x687a neglact2_form_25_pin
+0x687c neglact2_form_30_pin
+0x687e neglact2_form_2_pin
+0x6880 neglact_1_pin
+0x6882 neglact_4_pin
+0x6884 neglect_2_pin
+0x6885 neglect_pin_loop
+0x6889 gpio_cfg_uart_tx_output
+0x688c gpio_pu_uart_tx
+0x688f gpio_rx_config_input_with_pu
+0x6895 gpio_uart2gpio
+0x6899 gpio_check_uart_state
+0x689c load_chip_option
+0x68a2 load_adc_init
+0x68a8 adc_init_data
+0x68af adc_init_data_vinlpm
+0x68b8 adc_check_data_vinlpm
+0x68bc adc_check_2v_vinlpm
+0x68c0 set_vdd_reference_voltage_1v
+0x68c3 adc_init_data_hvin
+0x68cc adc_check_data_hvin
+0x68d0 adc_check_1v_hvin
+0x68d4 set_vdd_reference_voltage_4v
+0x68d7 adc_init_data_io
+0x68e0 adc_check_data_io
+0x68e4 adc_check_0_5v_io
+0x68e8 set_vdd_reference_voltage_0_5v
+0x68eb adc_set_mode
+0x68f0 adc_check_vinlpm
+0x68f2 adc_check_hvin
+0x68f4 adc_check_gpio
+0x68f8 read_adc
+0x6908 vdd_calculate_by_mode
+0x690e vdd_calculate_vinlpm
+0x6912 vdd_calculate_hvin
+0x6916 vdd_calculate_io
+0x691a vdd_calculate
+0x6923 vdd_calculate2
+0x6927 vdd_calculate1
+0x6930 adc_bat_percent_lowpower_out
+0x6940 adc_set_low_power_flag
+0x6944 adc_set_no_power_flag
+0x6948 keyscan_key_init
+0x694a keyscan_key_init_next
+0x694f keyscan_key_init_lp1
+0x6953 keyscan_key_init_end
+0x6954 keyscan_scan_key
+0x6959 keyscan_scan_key_lp1
+0x6964 keyscan_scan_key_lp1_next
+0x696c keyscan_process_lpm_before
+0x696e keyscan_process_lpm_before_next
+0x6973 keyscan_process_lpm_before_lp1
+0x6977 keyscan_process_lpm_before_end
+0x6978 keyscan_key_process
+0x6983 keyscan_key_process_next
+0x698c keyscan_key_lp1
+0x6998 keyscan_key_lp1_next
+0x69a1 keyscan_send_key_data
+0x69a6 pwm_init
+0x69ae pwm_out_set
+0x69be pwm_duty_cycle_set
+0x69c4 pwm_pwm0_duty_set
+0x69c6 pwm_pwm1_duty_set
+0x69c8 pwm_pwm2_duty_set
+0x69ca pwm_pwm3_duty_set
+0x69cc pwm_pwm4_duty_set
+0x69ce pwm_pwm5_duty_set
+0x69d0 pwm_set_pncnt
+0x69d5 pwm_enable
+0x69d7 pwm_disable
+0x69d8 pwm_gpio_set
+0x69e3 pwm_gpio4_set
+0x69e5 pwm_gpio5_set
+0x69e7 pwm_gpio27_set
+0x69e9 pwm_gpio28_set
+0x69eb pwm_gpio3_set
+0x69ed pwm_gpio8_set
+0x69ef pwm_gpio20_set
+0x69f1 pwm_gpio21_set
+0x69f3 pwm_gpio22_set
+0x69f5 pwm_gpio23_set
+0x69f7 pwm_set_select
+0x69ff pwm_one_set_select
+0x6a01 pwm_tw0_set_select
+0x6a03 rfcomm_init
+0x6a0d rfcomm_init_spp
+0x6a16 rfcomm_init_spp_with_credit
+0x6a18 set_cr_bit
+0x6a1a rfcomm_calculate_fcs_sabm
+0x6a26 rfcomm_calculate_fcs_ua
+0x6a2f rfcomm_calculate_fcs_dlci0
+0x6a33 rfcomm_calculate_fcs_dlci0_res
+0x6a35 rfcomm_save_fcs_uih
+0x6a44 caculate_uihdata_fcs
+0x6a50 caculate_fcs
+0x6a5d mod2div
+0x6a61 mod2div_loop
+0x6a66 mod2div_not_enough_reduction
+0x6a70 mod2div_end
+0x6a72 get_rfcomm_snd_adss
+0x6a73 dlci_to_address_cmd
+0x6a79 channel_to_dlci
+0x6a7d rfcomm_rx_process_dlci0_sabm
+0x6a86 rfcomm_rx_process_dlci0_ua
+0x6a8a rfcomm_rx_process
+0x6a8e rfcomm_rx_process_remote_page
+0x6a94 parse_dlci0_rp
+0x6a9b parse_dlci0_rp_uih
+0x6aa5 parse_dlci0_rp_uih_pn_cmd
+0x6aa7 parse_dlci0_rp_uih_pn_cmd_spp
+0x6aad parse_dlci0_rp_uih_pn_res
+0x6aaf parse_dlci0_rp_uih_pn_res_common
+0x6ab1 get_rfcomm_param_modem_status
+0x6ab8 get_rfcomm_head_struct
+0x6abe get_rfcomm_current_length
+0x6ac3 get_rfcomm_uih_head_struct
+0x6acb get_param_payload_ptr
+0x6ace get_rfcomm_length_common
+0x6ad7 get_rfcomm_prarmer_negotiation
+0x6ae6 parse_dlci0_rp_uih_ms_cmd
+0x6ae8 parse_dlci0_rp_uih_ms_cmd_spp
+0x6af2 parse_dlci0_rp_uih_ms_res
+0x6af9 parse_dlci0_rp_uih_ms_res_spp
+0x6afd parse_dlci0_rp_uih_cmd_port
+0x6b18 parse_uih_rp
+0x6b19 parse_uih_rp_spp
+0x6b21 parse_uih_rp_spp_ua
+0x6b25 parse_uih_rp_spp_sabm
+0x6b37 parse_uih_spp_uih_credits
+0x6b3f parse_uih_spp_uih
+0x6b40 parse_uih_spp_uih_cont
+0x6b44 parse_uih_rp_spp_disconn_send_event
+0x6b46 parse_uih_rp_spp_disconn
+0x6b4c rfcomm_rx_process_reconn
+0x6b52 parse_dlci0_reconn
+0x6b58 parse_dlci0_reconn_uih
+0x6b61 parse_dlci0_reconn_uih_pn_cmd
+0x6b68 parse_dlci0_reconn_uih_pn_cmd_spp
+0x6b6c parse_dlci0_reconn_uih_ms_cmd
+0x6b73 parse_dlci0_reconn_uih_ms_cmd_spp
+0x6b7c parse_dlci0_reconn_uih_ms_res
+0x6b82 parse_dlci0_reconn_uih_ms_res_spp
+0x6b86 parse_uih_reconn
+0x6b8c parse_uih_reconn_spp
+0x6b91 parse_uih_reconn_spp_ua
+0x6b95 parse_uih_reconn_spp_sabm
+0x6b96 parse_uih_reconn_spp_disconn
+0x6b97 rfcomm_rx_process_end
+0x6b98 rfcomm_send_more_pkt
+0x6b9c rfcomm_send_more_pkt_msc_cmd_spp
+0x6ba1 rfcomm_send_more_pkt_msc_cmd_spp0
+0x6ba9 rfcomm_send_sabm
+0x6bb6 rfcomm_send_ua
+0x6bc4 rfcomm_send_param_neg_cmd
+0x6be0 rfcomm_send_param_neg_res
+0x6bfc rfcomm_send_modem_status_cmd
+0x6c11 rfcomm_send_modem_status_res
+0x6c28 rfcomm_send_uih_without_payload
+0x6c42 rfcomm_increase_credit_given
+0x6c4b spp_process_rx_data
+0x6c4d spp_tx_rfcomm_packet
+0x6c57 ssp_tx_rfcomm_from_uart
+0x6c5f ssp_tx_rfcomm_from_uart_without_credit
+0x6c64 ssp_tx_rfcomm_from_uart_common
+0x6c6b ssp_tx_rfcomm_from_uart_common0
+0x6c95 ssp_tx_write_length
+0x6c9d ssp_tx_write_long_packet
+0x6ca6 ssp_tx_write_given_credit
+0x6caa scheduler_process
+0x6cbb scheduler_process0
+0x6cbe scheduler_tx_disconnect_hid
+0x6cc2 scheduler_tx_l2cap_pkt
+0x6cdd scheduler_tx_l2cap_start_pkt
+0x6ce9 scheduler_tx_l2cap_last_pkt
+0x6ceb scheduler_tx_l2cap_pkt_end
+0x6cef scheduler_start_upper_sm
+0x6cf3 scheduler_start_upper_sm_hid
+0x6cf5 process_upper_sm
+0x6cf7 process_upper_sm_remote_page
+0x6cfa process_upper_sm_rp_wait
+0x6cfb process_upper_sm_reconn
+0x6d1a process_upper_sm_reconn_wait
+0x6d1b process_upper_sm_reconn_sdp_conn
+0x6d21 process_upper_sm_reconn_sdp_cfg
+0x6d2b process_upper_sm_reconn_ss_spp
+0x6d30 process_upper_sm_reconn_sdp_disconn
+0x6d33 process_upper_sm_reconn_hid_ctrl_conn
+0x6d39 process_upper_sm_reconn_hid_ctrl_cfg
+0x6d3f process_upper_sm_reconn_hid_int_conn
+0x6d45 process_upper_sm_reconn_hid_int_cfg
+0x6d4b process_upper_sm_reconn_rfcomm_conn
+0x6d51 process_upper_sm_reconn_rfcomm_cfg
+0x6d57 process_upper_sm_reconn_rfcomm_sabm
+0x6d5d process_upper_sm_reconn_spp_cmd_pn
+0x6d63 process_upper_sm_reconn_spp_sabm
+0x6d6e process_upper_sm_reconn_spp_cmd_ms
+0x6d74 process_upper_sm_reconn_sdp_conn_wait
+0x6d78 process_upper_sm_reconn_sdp_cfg_wait
+0x6d7b process_upper_sm_reconn_ss_spp_wait
+0x6d80 process_upper_sm_reconn_sdp_disconn_wait
+0x6d86 process_upper_sm_reconn_hid_ctrl_conn_wait
+0x6d8a process_upper_sm_reconn_hid_ctrl_cfg_wait
+0x6d8e process_upper_sm_reconn_hid_int_conn_wait
+0x6d92 process_upper_sm_reconn_hid_int_cfg_wait
+0x6d97 process_upper_sm_reconn_rfcomm_conn_wait
+0x6d9b process_upper_sm_reconn_rfcomm_cfg_wait
+0x6d9f process_upper_sm_reconn_rfcomm_sabm_wait
+0x6da4 process_upper_sm_reconn_spp_cmd_pn_wait
+0x6da8 process_upper_sm_reconn_spp_sabm_wait
+0x6dac process_upper_sm_reconn_spp_cmd_ms_wait
+0x6daf process_upper_sm_reconn_setup_hid
+0x6db1 process_upper_sm_reconn_setup_rfcomm
+0x6db3 process_upper_sm_reconn_setup_spp
+0x6db5 process_upper_sm_reconn_termination
+0x6db7 upper_sm_send_sdp_conn
+0x6dbe upper_sm_send_sdp_cfg
+0x6dc3 upper_sm_send_sdp_disconn
+0x6dcd upper_sm_send_ss_spp
+0x6dd1 upper_sm_send_rfcomm_conn
+0x6dd8 upper_sm_send_rfcomm_cfg
+0x6ddd upper_sm_send_hid_ctrl_conn
+0x6de4 upper_sm_send_hid_ctrl_cfg
+0x6de9 upper_sm_send_hid_int_conn
+0x6df0 upper_sm_send_hid_int_cfg
+0x6df5 upper_sm_send_rfcomm_sabm
+0x6dfc upper_sm_send_spp_cmd_pn
+0x6e02 upper_sm_send_spp_sabm
+0x6e0c upper_sm_send_spp_cmd_ms
+0x6e11 sdp_process
+0x6e2c sdp_process_ss_req
+0x6e4c ss_req_loop
+0x6e4f ss_req_blank
+0x6e54 sdp_process_sa_req
+0x6e5f sa_isnot_wholerange
+0x6e62 sa_judge_wholerange
+0x6e6b sa_judge_wholerange_false3
+0x6e6d sa_judge_wholerange_false2
+0x6e6f sa_judge_wholerange_false1
+0x6e71 sa_req_loop
+0x6e74 sa_req_range
+0x6e7a sa_req_range_id_increase
+0x6e83 sa_req_range_id_finish
+0x6e86 sa_req_one_id
+0x6e8b sa_req_check_next_id
+0x6e92 sa_req_handle_attributelist_next
+0x6ea2 sa_req_handle_attributelist_notfound
+0x6ea5 sa_req_handle_attributelist_end
+0x6eaa sdp_store_continue_common
+0x6eae sdp_store_continue_0byte
+0x6eb0 sdp_store_continue_1byte
+0x6eb3 sdp_store_continue_2byte
+0x6eb6 sdp_store_continue_end
+0x6eb8 sa_req_all
+0x6eda sa_req_all_fisrt_fragment
+0x6ede sa_req_all_parlength_continue_byte
+0x6ee1 sa_req_all_parlength_continue_byte_end
+0x6ee7 sa_req_all_fragment_sdp
+0x6ef5 sa_req_all_answer_attributelist_full_loop
+0x6efe sa_req_all_last_frag_continue
+0x6f00 sa_req_all_frag_end
+0x6f02 sdp_process_ssa_req
+0x6f0c ssa_req_loop
+0x6f1c ssa_req_attributelist_next
+0x6f27 ssa_req_attributelist_notfound
+0x6f29 ssa_req_attributelist_end
+0x6f2e sdp_store_maxbyte
+0x6f36 ssa_req_range
+0x6f47 ssa_req_range_find_handle
+0x6f4f ssa_req_range_later_freg_with_continue
+0x6f57 ssa_req_range_send_not_maxbyte
+0x6f5e ssa_req_range_maxbyte_with_continue
+0x6f61 ssa_req_range_maxbyte_with_continue_cpy
+0x6f67 ssa_req_range_next_handle
+0x6f6c ssa_req_range_get_length
+0x6f75 ssa_req_range_first_freg
+0x6f7f ssa_req_range_firstfreg_not_maxbyte_with_continue
+0x6f81 ssa_req_range_freg_no_continue
+0x6f83 ssa_req_range_lastfreg
+0x6f84 ssa_req_range_lastfreg_common
+0x6f8f ssa_req_range_firstfreg_maxbyte_with_continue
+0x6f94 ssa_req_range_attrbutes_length
+0x6f9a ssa_req_range_attrbutes_length_no_continue
+0x6fa0 ssa_req_range_freg_with_continue
+0x6fb0 ssa_req_range_common
+0x6fba sdp_process_error_res
+0x6fbb sdp_invalid_service_record_handle
+0x6fbe sdp_invalid_pdu_size
+0x6fc1 sdp_insufficient_resource
+0x6fc4 sdp_invalid_request_syntax
+0x6fc6 sdp_error_response
+0x6fd0 ask_serviceclassid
+0x6fd5 classidloop
+0x6fde skip2bytes
+0x6fe7 frstbwrong
+0x6fea scndbwrong
+0x6ff3 cmp032
+0x6ff6 cmp016
+0x6ff8 cmpuuid
+0x6ffe uuidsize
+0x7019 wrong12b
+0x701a wrong12b1
+0x701e chck12dn
+0x7020 loopornot
+0x7026 asksrv_error
+0x7028 dataelementtype6
+0x7037 dsize32
+0x7039 dsize16
+0x703c dsize
+0x703e dsize_error
+0x7040 ss_empty_rsp
+0x7043 sa_empty_rsp
+0x7046 ssa_empty_rsp
+0x7048 empty_response
+0x7057 fullsearch
+0x7059 outempty
+0x705b sdp_data_len
+0x7062 sdp_get_data
+0x7066 sdp_get_data_type0
+0x7069 sdp_get_data_type_not0_sizeindex01234
+0x706c sdp_get_data_type_not0
+0x7073 sdp_get_data_type_not0_sizeindex5
+0x7076 sdp_get_data_type_not0_sizeindex6
+0x707a sdp_get_data_type_not0_sizeindex7
+0x7082 search_all_uuid
+0x7086 search_all_uuid_llop
+0x708d search_uuid
+0x7090 search_uuid_next
+0x7096 search_uuid_loop
+0x709a search_uuid_not_found
+0x70a0 search_uuid_check_same_handle
+0x70a6 search_uuid_store_handle
+0x70ad search_uuid_nomatch
+0x70b1 search_handle
+0x70b4 search_handle_loop
+0x70c6 search_attrib
+0x70c9 search_attrib_next
+0x70cc search_attrib_loop
+0x70d4 search_attrib_found_uuid
+0x70da search_attrib_loop_attribs
+0x70e4 search_attrib_end
+0x70e7 search_handle_attrib
+0x70ea search_handle_attrib_next
+0x70f4 search_handl_attrib_found_handle
+0x70f6 search_handle_attrib_loop_attribs
+0x7100 search_handle_attrib_end
+0x7102 search_rfcomm_cn
+0x710d search_uuid_in_data
+0x7110 search_uuid_in_data_loop
+0x7120 search_uuid_in_data_found_element_index5
+0x7123 search_uuid_in_data_found_element_index6
+0x7126 search_uuid_in_data_found_element_index7
+0x7129 search_uuid_in_data_found_uuid
+0x712f search_uuid_in_data_type_uuid_128
+0x7130 search_uuid_in_data_type_uuid_32
+0x7132 search_uuid_in_data_type_uuid_16
+0x7138 sdp_send_spp_request
+0x714f function_g2
+0x7166 function_f6_eb
+0x7176 get_r
+0x717a function_f6_ea
+0x718d function_f5
+0x719f function_f5_common
+0x71b0 store_addr_common_b
+0x71b5 store_addr_common_a
+0x71ba function_f4_ca
+0x71c5 function_f4_cb
+0x71d0 function_aes_cmac
+0x71d4 function_ceil16
+0x71e2 function_aes_cmac_set_flag_0_balnk
+0x71e5 function_aes_cmac_set_flag_0
+0x71e6 function_aes_cmac_set_flag_0_common
+0x71f0 function_aes_cmac_aes
+0x71f3 function_aes_cmac_aes_loop
+0x71f9 function_aes_cmac_aes_loop_end
+0x7201 load_inverse_result
+0x7205 store_inverse_k
+0x7207 inverse_k
+0x720a inverse_memdat
+0x720e bn_lshift_0_inverse
+0x7218 function_aes_cmac_k1_inverse
+0x7219 function_aes_cmac_inverse_common
+0x721d function_aes_cmac_k2_inverse
+0x721f function_aes_cmac_generate_subkey
+0x7227 function_aes_cmac_k1
+0x7230 function_aes_cmac_k1_0
+0x7231 function_aes_cmac_k2
+0x723a function_aes_cmac_xor_rb
+0x723b function_aes_cmac_xor_rb_loop
+0x7241 function_aes_cmac_xor_loop_common
+0x7245 function_aes_cmac_padding
+0x7248 function_aes_cmac_padding_loop
+0x724d function_aes_cmac_padding_loop2
+0x7250 function_aes_cmac_padding_beq_length
+0x7251 function_aes_cmac_padding_common
+0x7253 function_aes_cmac_padding_big_length
+0x7255 generate_kinit
+0x7259 function_e21
+0x7268 function_e22
+0x726e function_e22_pin_init
+0x726f function_e22_genx_pin
+0x7272 function_e22_genx_loop
+0x727c function_e22_genx_end
+0x7288 function_e1
+0x728b function_e3
+0x7292 function_hash
+0x72a8 function_ar
+0x72b1 function_ar_loop
+0x72b9 function_ar_original
+0x72cf key_scheduling
+0x72d5 key_rotateloop
+0x72e0 key_select_octet_loop
+0x72e5 key_select_octet_nwrap
+0x72ef bias_round_key_loop
+0x72f6 key_sched_zero
+0x72f8 create_byte_16_loop
+0x7300 xor_mod32
+0x7301 xor_mod32_ar2
+0x7304 xor_mod32_loop
+0x730a xor_mod32_invert
+0x730d xor_even
+0x7313 el_boxes
+0x7316 el_box_loop
+0x731c e_boxes
+0x7322 pht
+0x7325 pht_loop
+0x7331 permute
+0x7340 permute_exchange
+0x7341 permute_loop
+0x7350 add16
+0x7352 xor16
+0x7353 xor_add16
+0x7354 xoradd_loop
+0x7359 xoradd_add
+0x735a xoradd_store
+0x735f function_expand
+0x7365 expand_12
+0x7366 expand_cont
+0x736a key_offset
+0x7379 key_addxor
+0x737a key_addxor_loop
+0x737e key_add
+0x7380 key_high
+0x7381 key_xor
+0x7382 key_store
+0x7386 copy_aco
+0x738b concatenate_temp24
+0x738c concatenate_temp16
+0x738f loop1
+0x7390 generate_stk
+0x7394 authenticate_rconfirm
+0x7397 authenticate_mconfirm
+0x739c generate_confirm
+0x739f generate_mrand
+0x73a2 generate_sk
+0x73ab first_block_counter
+0x73ad first_block_data
+0x73ae first_block
+0x73c1 generate_mic
+0x73d0 generate_mic_loop
+0x73d5 generate_mic_end
+0x73d9 aes_crypt_data
+0x73e3 le_encrypt
+0x73fb le_decrypt
+0x73ff le_dec_cont
+0x741d wait_aes
+0x741f do_aes_ocb
+0x7422 do_aes_cbc
+0x7425 do_aes_ctr
+0x7428 aes_init
+0x742b function_s1
+0x7440 function_c1
+0x7446 function_c1_master
+0x7456 function_c1_irat
+0x745b function_c1_loop1
+0x746e padding_data
+0x7473 padding_loop
+0x7478 aes_load_data
+0x7479 load_data_loop
+0x747d load_data_padding
+0x7482 aes_load_xor
+0x7484 load_key
+0x7486 load_data128
+0x7487 load_regext
+0x7488 load_regext_loop
+0x748d load_sk
+0x748f clear_hidata
+0x7491 aes_clear_data
+0x7492 aes_clear
+0x7493 clear_loop
+0x7494 clear_data_rest
+0x7497 store_aes_result
+0x7499 send_aes_result_loop
+0x749e store_enc_data
+0x74a4 store_enc_loop
+0x74ac store_enc_byte
+0x74b0 compare_res
+0x74b2 compare_res_loop
+0x74b9 enable_authrom
+0x74bd disable_authrom
+0x74c1 init_memp
+0x7518 init_memp_256
+0x756a publickey_init
+0x756d sp_calc_sequence_256_check
+0x757b stop_publickey_calc_256
+0x757d sp_initialize
+0x7583 sp_clear_flags
+0x7588 sp_generate_local_key
+0x758a sp_master_generate_local_key
+0x758d sp_generate_local_key0
+0x7590 sp_start_send_pubkey
+0x7595 sp_calc_check_publickey_256
+0x75b0 sp_calc_b256
+0x75c6 sp_calc_check_publickey
+0x75e1 sp_calc_b
+0x75f7 sp_calculate_commitment
+0x7602 master_sp_calculate_commitment
+0x7609 sp_calculate_commitment0
+0x760f master_sp_calculate_commitment0
+0x7612 sp_local_random_key_generator
+0x7615 sp_calculate_commitment_wait_dhkey_calc
+0x7617 sp_confirm_check
+0x7628 sp_confirm_check_success
+0x762e sp_confirm_check_success_master
+0x7631 sp_confirm_check_failed
+0x7637 sp_confirm_check_failed_master
+0x763a sp_confirm_calc
+0x763e sp_confirm_calc_ready
+0x764b sp_confirm_calc_master
+0x764e sp_master_key_prarm_push
+0x7658 sp_link_key_prarm_push
+0x7662 sp_link_key_calc
+0x766d sp_pubkey_calc
+0x7684 sp_pubkey_generated
+0x768a sp_dhkey_calc
+0x769b sp_dhkey_generated
+0x76a2 random_generator
+0x76a7 compare4
+0x76b1 compare4_failed
+0x76b3 compare4_success
+0x76b5 simple_pairing_sequence
+0x76c6 master_simple_paring_sequence
+0x76d8 master_set_mem_master_sp_flag
+0x76da master_clear_mem_master_sp_flag
+0x76dc sp_calc_sequence
+0x76e7 sp_calc_sequence_done
+0x76ec bn_testbit
+0x76f2 ec_copy
+0x76f5 bn_eq_zero
+0x76fb bn_eq_0
+0x7704 bn_bigeq
+0x7707 bn_bigeq_0
+0x7711 bn_add
+0x7713 bn_add_0
+0x771f bn_sub
+0x7721 bn_sub_0
+0x772d bn_rshift6
+0x772f bn_rshift
+0x7730 bn_rshift_0
+0x773b bn_lshift
+0x773d bn_lshift_0
+0x7748 bn_lshiftmod
+0x7749 bn_lshiftmod_ismod
+0x7751 bn_lshiftmod_0
+0x7755 bn_addmod
+0x7758 bn_submod
+0x775f bn_p192mod
+0x7780 bn_load
+0x7781 bn_load_0
+0x7786 bn_mulmod
+0x7790 bn_mulmod_1
+0x7792 bn_mulmod_0
+0x77a8 bn_sqrmod
+0x77aa bn_rshifteven
+0x77ab bn_rshifteven_1
+0x77ba bn_rshifteven_0
+0x77be bn_invmod
+0x77cd bn_invmod_2
+0x77e8 bn_invmod_1
+0x77f6 bn_invmod_0
+0x7803 ecdbl
+0x7854 ecadd
+0x78c0 eckp_0
+0x78ce eckp_1
+0x78d3 ecunmapz
+0x78e5 sha_endian_swap2
+0x78e8 sha_endian_loop
+0x78f0 sha_getw
+0x78f4 sha_r
+0x78f6 sha_r_loop
+0x790b sha_init
+0x790d sha_init_0
+0x7912 sha
+0x7916 sha_0
+0x791f sha_loop
+0x7948 sha_1
+0x794e sha_result
+0x7950 sha_regext_save
+0x7955 pad_xor
+0x7958 pad_xor_0
+0x795f pad_xor_1
+0x7962 g_noninit_number_confirm
+0x7965 g_noninit
+0x7967 g_noninit0
+0x7975 g_init
+0x7984 g_common
+0x798d g_common0
+0x799e function_f1_no_key
+0x79a0 function_f1
+0x79a2 function_f1_common
+0x79d7 function_f2
+0x7a0d function_f3a
+0x7a0f function_f3a_common
+0x7a1e function_f3a_no_pin
+0x7a21 function_f3b_no_pin
+0x7a24 function_f3b
+0x7a26 function_f3b_common
+0x7a33 function_f3_common
+0x7a5d eckp_calc_init
+0x7a5e eckp_calc_init_1
+0x7a68 eckp_calc
+0x7a70 memcpy_dword_swap4
+0x7a71 memcpy_dword_swap
+0x7a72 memcpy_dword_swap_loop
+0x7a77 sp_initialize_256
+0x7a7d sp_pubkey_calc_256
+0x7a93 sp_pubkey_generated_256
+0x7a99 sp_dhkey_calc_256
+0x7aa9 sp_dhkey_generated_256
+0x7aaf sp_calc_sequence_256
+0x7ab9 sp_calc_sequence_done_256
+0x7abf eckp_calc_256
+0x7ac7 eckp_calc_init_256
+0x7aca eckp_calc_init_256_1
+0x7ad4 ecunmapz_256
+0x7ae6 ecdbl_256
+0x7b37 ecadd_256
+0x7ba3 bn_invmod_256
+0x7bb1 bn_invmod_256_2
+0x7bcc bn_invmod_256_1
+0x7bda bn_invmod_256_0
+0x7be1 bn_mulmod_256
+0x7bef bn_mulmod_256_1
+0x7bf5 bn_mulmod_256_0
+0x7c0a bn_p256mod
+0x7c73 bn_load_mem
+0x7c77 bn_load_256
+0x7c79 bn_sqrmod_256
+0x7c7b bn_add_256
+0x7c7d bn_addmod_256
+0x7c80 bn_lshiftmod_256
+0x7c81 bn_lshiftmod_ismod_256
+0x7c8a bn_lshiftmod_p_256
+0x7c92 sub_p2_256
+0x7c96 bn_submod_256
+0x7ca0 bn_submod_256_np
+0x7ca9 bn_sub_256
+0x7cab bn_rshift_256
+0x7cae bn_lshift_256
+0x7cb1 bn_bigeq_256
+0x7cb5 bn_eq_zero_256
+0x7cb8 bn_rshifteven_256
+0x7cb9 bn_rshifteven_256_1
+0x7cc8 bn_rshifteven_256_0
+0x7ccc ui_init
+0x7cd1 ui_dispatch
+0x7cd3 ui_button_init
+0x7cdd ui_button_polling
+0x7ce3 ui_button_down
+0x7cef ui_button_up
+0x7cf9 ui_button_check_long_press
+0x7d00 lpm_button_get_wake_lock
+0x7d02 lpm_button_clean_wake_lock
+0x7d04 calc_curr_struct_prt
+0x7d08 ui_led_init_global
+0x7d0d ui_led_init_loop
+0x7d14 ui_led_on_global
+0x7d19 ui_led_off_global
+0x7d1e ui_led_blink_start_global
+0x7d24 ui_led_set_style_global
+0x7d29 ui_led_dispatch
+0x7d2c ui_led_blink_polling
+0x7d32 ui_led_off_static
+0x7d35 ui_led_on_static
+0x7d38 ui_led_change_style_by_type
+0x7d41 ui_led_blink_state_lighting
+0x7d4c ui_led_blink_state_darking
+0x7d58 ui_led_blink_infinite
+0x7d5c ui_led_blink_timer_start
+0x7d5e ui_led_stop_timer
+0x7d60 ui_timer_timeout
+0x7d64 ui_timer_check
+0x7d6b ui_timer_check_loop
+0x7d75 ui_timer_init
+0x7d78 ui_timer_check_end
+0x7d7f ui_timer_check_send_evt
+0x7d80 ui_ipc_get_lock
+0x7d81 ui_ipc_get_lock_wait
+0x7d84 ui_ipc_put_lock
+0x7d86 ui_ipc_send_event
+0x7d8f ui_ipc_send_cmd
+0x7d98 ui_ipc_clean_all_fifo
+0x7d9c check_51cmd
+0x7da7 check_51cmd_once
+0x7dc8 check_51cmd_once_continue
+0x7dd6 check_51cmd_check_idle
+0x7ddb check_51cmd_restore
+0x7ddd check_51cmd_start_discovery
+0x7de2 check_51cmd_stop_discovery
+0x7de8 check_51cmd_reconnect
+0x7dea check_51cmd_disconnect
+0x7ded check_51cmd_enter_sniff_subrating
+0x7dee check_51cmd_exit_sniff_subrating
+0x7def check_51cmd_sniff_test
+0x7df0 check_51cmd_pincode
+0x7df2 check_51cmd_inq
+0x7df3 check_51cmd_stop_inq
+0x7df4 check_51cmd_adv
+0x7dfa check_51cmd_stop_adv
+0x7dff check_51cmd_direct_adv
+0x7e05 check_51cmd_stop_direct_adv
+0x7e0a check_51cmd_le_disconnect
+0x7e0e check_51cmd_ble_update_connect_param
+0x7e0f check_51cmd_led_off
+0x7e11 check_51cmd_led_on
+0x7e13 check_51cmd_led_start_blink
+0x7e15 check_51cmd_le_start_con
+0x7e18 check_51cmd_start_scan
+0x7e1a check_51cmd_stop_scan
+0x7e1d check_51cmd_hibernate
+0x7e23 check_51cmd_hibernate_btn_disabled
+0x7e25 check_51cmd_le_smp_sec_req
+0x7e26 check_51cmd_role_switch
+0x7e2f check_51cmd_bb_reconn_cancel
+0x7e31 check_51cmd_dhkey_not_accept
+0x7e34 ui_check_paring_button
+0x7e38 queue_init
+0x7e3d queue_push
+0x7e4c calc_queue_next_ptr
+0x7e54 queue_pop
+0x7e65 queue_empty
+0x7e69 queue_full
+0x7e6d queue_get_size
+0x7e71 right_shift_n
+0x7e73 right_shift_n_loop
+0x7e76 left_shift_n
+0x7e79 left_shift_n_loop
+0x7e7c push_stack
+0x7e85 push_stack_rega_b_c
+0x7e8c pop_stack
+0x7e95 pop_stack_rega_b_c
+0x7e9c get_contw
+0x7e9f get_contr
+0x7ea2 store_contw
+0x7ea5 store_contr
+0x7ea8 save_cont_pointers
+0x7ead load_cont_pointers
+0x7eb2 memcpy96
+0x7eb3 memcpy64
+0x7eb5 memcpy12
+0x7eb6 memcpy4
+0x7eb9 memcpy8
+0x7ebc memcpy48
+0x7ebd memcpy32
+0x7ebe memcpy24
+0x7ebf memcpy16
+0x7ec1 delay_10ms
+0x7ec2 delay_ms_wait
+0x7ec5 bn_zero
+0x7ec6 memset0
+0x7ec7 memset8
+0x7eca memset0_8
+0x7ecd memset0_4
+0x7ed0 clear_mem_256
+0x7ed2 clear_mem_512
+0x7ed4 clear_mem
+0x7ed7 clear_mem_loop
+0x7eda clear_temp_block
+0x7edd xor_loop
+0x7ee5 inverse_data
+0x7eec inverse_loop
+0x7ef4 memcpy_fast
+0x7ef6 memcpy_fast_loop
+0x7efb memcpy_fast_loop_four
+0x7f01 memcpy
+0x7f03 memcpy_loop
+0x7f07 timer_stop
+0x7f08 timer_init
+0x7f11 timer_check_timeout
+0x7f15 timer_reinit
+0x7f16 timer_check
+0x7f21 timer_loop
+0x7f25 timer_counting
+0x7f2c clk_add
+0x7f37 clk_diff_rt
+0x7f39 clk_diff
+0x7f3e clk_diff_pos
+0x7f43 clk2rt
+0x7f49 clk2lpo
+0x7f50 clk2bt
+0x7f58 string2dec_from_uart
+0x7f59 string2dec_from_uart_done
+0x7f64 uchar2dialog
+0x7f6d uchar2dialog_number
+0x7f70 uchar2dialog_a2f
+0x7f73 pn9
+0x7f76 pn9_loop
+0x7f86 wait_div_end
+0x7f88 string_compare
+0x7f91 ceiling
+0x7f95 swap
+0x7f99 clean_mem
+0x7f9c callback_func
+0x7f9e wait_uarttx
+0x7fa1 ice_break
+0x7fa3 ice_setbp
+0x7fa8 ice_setbp2
+0x7fad ice_set_write_bp
+0x7fb0 test_enable_white
+0x7fb4 check_uart_tx_buff
+0x7fb6 pdata_sub_temp
+0x7fb8 fifo_in
+0x7fbe fifo_in_push
+0x7fc4 fifo_out
+0x7fc8 fifo_out_loop
+0x7fcd fifo_out_end
+0x7fd0 fifo_is_empty
+0x7fd2 fifo_is_full
+0x7fd4 fifo_is_near_full
+0x7fd6 fifo_content_count
+0x7fd7 fifo_content_count_loop
+0x7fdd not_greater_than
+0x7fe1 disable_positive
+0x7fe3 disable_zero
+0x7fe5 enable_zero
+0x7fe7 enable_user
+0x7fe9 disable_user
+0x7feb enable_user2
+0x7fed disable_user2
+0x7fef disable_blank
+0x7ff1 enable_blank
+0x7ff3 reverse_byte
+0x7ff9 reverse_loop
+0xb039 dongle_dispose_cmd_read_mode
\ No newline at end of file
Index: rom/peripherals.prog
===================================================================
--- /branch/USB/dongle_sdk/rom/peripherals.prog	(revision 0)
+++ /branch/USB/dongle_sdk/rom/peripherals.prog	(working copy)
@@ -0,0 +1,2440 @@
+
+/* ===================== two wire SPI gpio ======================= */
+
+twspi_reset:
+	bpatchx patch31_4,mem_patch31
+	hfetch 1,core_gpio_oe3
+	arg 0x06,temp
+	ior temp,pdata
+	hstore 1,core_gpio_oe3
+	hfetch 1,core_gpio_out3
+	ior temp,pdata
+	hstore 1,core_gpio_out3
+	call twspi_disable
+	hfetch 1,core_gpio_out3
+	set0 1,pdata
+	set0 2,pdata
+	hstore 1,core_gpio_out3	
+	nop 30  
+	branch twspi_enable
+
+twspi_reset2:
+	hfetch 1,core_gpio_oe3
+	arg 0xc0,temp
+	ior temp,pdata
+	hstore 1,core_gpio_oe3
+	hfetch 1,core_gpio_out3
+	ior temp,pdata
+	hstore 1,core_gpio_out3
+	call twspi_disable
+	hfetch 1,core_gpio_out3
+	set0 6,pdata
+	set0 7,pdata
+	hstore 1,core_gpio_out3	
+	nop 30  
+	branch twspi_enable2
+
+twspi_disable:
+	hfetch 1,core_gpio_sel1
+	and pdata,0xfc,pdata
+	hstore 1,core_gpio_sel1  //disable spi
+	rtn
+twspi_enable:
+	hfetch 1,core_gpio_sel1
+	or pdata,0x01,pdata
+	hstore 1,core_gpio_sel1  //enable spi
+	rtn
+twspi_enable2:
+	hfetch 1,core_gpio_sel1
+	or pdata,0x03,pdata
+	set0 4,pdata
+	hstore 1,core_gpio_sel1  //enable spi2
+	rtn
+
+// input read reg number: pdata 
+//output reg data: pdata
+sensor_read:
+	copy pdata,regb
+	call spi_ncs_enable
+	nop 100
+	copy regb,pdata
+	call twspi_read
+	copy pdata,regb
+	call spi_ncs_disable
+	nop 100
+	copy regb,pdata
+	rtn
+// input write reg number: pdata 
+sensor_write:
+	copy pdata,regb
+	call spi_ncs_enable
+	nop 100
+	copy regb,pdata
+	call twspi_write
+	call spi_ncs_disable
+	nop 100
+	rtn
+//spi gpio init .
+//0xff :disable spi ncs gpio init
+spi_ncs_gpio_init:
+	fetcht 1,mem_spi_ncs_gpio
+	branch gpio_config_output
+
+//nsc gpio ouput low
+spi_ncs_enable:
+	fetcht 1,mem_spi_ncs_gpio
+	branch gpio_out_active
+
+//ncs gpio output high
+spi_ncs_disable:
+	fetcht 1,mem_spi_ncs_gpio
+	branch gpio_out_inactive
+
+
+twspi_write:
+	branch spid_write_reg
+	
+twspi_read:
+	branch spid_read_reg
+
+
+
+/* ===================== code loading ======================= */
+
+
+read_function_aes:
+	nbranch read_function,user
+	hfetch 1,core_gpio_key2
+	or_into 0x2,pdata   	// enable aes 
+	hstore 1,core_gpio_key2
+read_function:
+	copy temp,null
+	branch read_fuction_zero,zero
+	copy regc,pc
+read_fuction_zero:
+	isolate0 0,null
+	branch set_ucode_status
+	
+/* return temp = block length */
+get_block_header:
+	force 4,temp
+get_block_header0:
+	arg mem_ucode_buf,rega
+	hfetch 1,core_gpio_key2
+	and_into 0xfd,pdata   	// disable aes for header
+	hstore 1,core_gpio_key2
+	call read_function
+	arg 0x55aa,rega
+	fetch 2,mem_ucode_buf
+	ifetcht 2,contr
+	isub rega,null
+	rtn	
+
+read_first_block:
+	arg 2,temp
+	arg mem_ucode_ptr,rega
+	call read_function
+	fetch 2,mem_ucode_ptr
+	store 2,mem_addr_mi
+	call get_iv,user
+	rtn
+	
+get_iv:
+	arg 16,temp
+	arg mem_ucode_keybuf,rega
+	hfetch 1,core_gpio_key2
+	and_into 0xfd,pdata   // disable aes for iv
+	hstore 1,core_gpio_key2
+	call read_function
+	arg mem_ucode_keybuf,contr
+	arg 16,loopcnt
+	call aes_load_data
+	call aes_init
+	call aes_clear_data
+	branch do_aes_cbc					/* generate first IV */
+
+load_storage:
+	disable match
+	call get_block_header
+	nrtn zero
+	enable match
+	jam 0x80, core_ucode_ctrl
+	jam 0,core_ucode_hi
+	jam 0,core_ucode_low
+	arg core_ucode_data,rega
+	call read_function_aes
+	jam 0x0, core_ucode_ctrl
+load_storage_loop:
+	arg 6,temp
+	call get_block_header0
+	nrtn zero
+	ifetch 2,contr
+	iforce rega
+	call read_function
+	branch load_storage_loop
+
+	
+	/* only load memory data from eeprom */
+reload_eeprom:
+	call clean_mem
+	setarg 0x1000
+	store 2,mem_addr_mi
+	arg iicd_read_eep,regc
+	arg 2,loopcnt
+reload_eeprom_loop:
+	call get_block_header
+	nrtn zero
+	fetch 2,mem_addr_mi
+	byteswap pdata,pdata
+	iadd temp,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	loop reload_eeprom_loop
+	branch load_storage_loop
+	
+loadcode:
+	call clean_mem
+	disable user
+	call otp_enable_chgpump
+	setarg otp_ucode_flag
+	arg mem_otp_ucode_flag,rega
+	arg 2,temp
+	call otpd_read_data
+	fetch 2,mem_otp_ucode_flag
+	bbit0 otp_uflag_aes, loadcode_otp
+	jam 0x25,core_clkoff			// disable debug uart
+	setarg otp_ucode_aeskey
+	arg mem_ucode_keybuf,rega
+	arg 16,temp
+	call otpd_read_data
+	jam lock_otp,core_misc_ctrl	// disable further read/write of key
+	set1 mark_otp_encrypt,mark	
+	arg mem_ucode_keybuf,contr
+	call load_key
+	enable user					// set user for aes
+loadcode_otp:
+	jam 0,mem_loadcode_times
+loadcode_otp_2:
+	call loadcode_check_times
+	fetch 2,mem_otp_ucode_flag
+	byteswap pdata,pdata
+	arg 0x7ff,temp
+	iand temp,pdata
+	branch loadcode_iic, zero
+	call otp_set_addr
+	arg otpd_read_code,regc
+	call get_iv,user
+	call load_storage
+	fetch 1,mem_ucode_status
+	bbit0 0,loadcode_otp_2			// crc error, try again
+	
+loadcode_iic:
+	call otp_disable_chgpump
+	jam 0,mem_loadcode_times
+loadcode_iic_2:	
+	call loadcode_check_times
+	call clear_eeprom_size_2k
+	fetch 1,mem_otp_ucode_flag
+	bbit1 otp_uflag_skip_eep,loadcode_spi
+	call loadcode_iic_by_eeprom
+	nbranch loadcode_iic_eeprom_2k,match
+	fetch 1,mem_ucode_status
+	bbit0 0,loadcode_iic_2			// crc error, try again
+	branch loadcode_hci
+loadcode_iic_eeprom_2k:
+	call set_eeprom_size_2k
+	fetch 1,mem_otp_ucode_flag
+	bbit1 otp_uflag_skip_eep,loadcode_spi
+	call loadcode_iic_by_eeprom
+	nbranch loadcode_spi,match
+	fetch 1,mem_ucode_status
+	bbit0 0,loadcode_iic_2			// crc error, try again
+	branch loadcode_hci
+	
+loadcode_spi:
+	jam 0,mem_loadcode_times
+loadcode_spi_2:
+	call loadcode_check_times
+	fetch 1,mem_otp_ucode_flag
+	bbit1 otp_uflag_skip_flash, loadcode_hci
+	setarg 0x0
+	store 3,mem_addr_hi
+	call spid_init_flash
+	arg spid_load_flash,regc
+	call read_first_block
+	call load_storage
+	nbranch loadcode_hci,match
+	fetch 1,mem_ucode_status
+	bbit0 0,loadcode_spi_2			// crc error, try again
+
+loadcode_hci:
+	bmark1 mark_otp_encrypt,loadcode_hci_enc
+	call clear_key_buf
+loadcode_hci_enc:
+	fetch 1,mem_otp_ucode_flag
+	bbit0 otp_uflag_hci,clear_key_buf
+	jam 0x21,core_clkoff			// enable debug uart
+	call hci_init
+loadcode_hci_loop:
+	call hci_rx_packet
+	branch loadcode_hci_loop
+
+clear_key_buf:
+	setarg 0
+	store 8,mem_ucode_keybuf
+	store 8,mem_ucode_keybuf+8
+	force regidx_key,regext_index
+	call aes_clear
+	jam 0x21,core_clkoff		// enable debug uart
+	rtn
+	
+
+loadcode_iic_by_eeprom:
+	setarg 0x0
+	store 2,mem_addr_mi
+	arg iicd_read_eep,regc
+	call iicd_init_12m
+	call read_first_block
+	branch load_storage
+
+
+loadcode_check_times:
+	fetch 1,mem_loadcode_times
+	increase 1,pdata
+	sub pdata,3,null
+	nbranch loadcode_error,positive
+	store 1,mem_loadcode_times
+	rtn
+
+loadcode_error:
+	call clear_key_buf
+	call ice_break
+	rtn
+
+
+/* true flag is set into status */
+set_ucode_status:
+	fetch 1,mem_ucode_status
+	lshift pdata,pdata
+	setflag true,0,pdata
+	isolate0 15,rega
+	rtn true
+	store 1,mem_ucode_status
+	rtn
+
+	/* queue is bit position of hw done status */
+decrypt_code:
+	hfetch 1,core_gpio_key2
+	rtnbit0 1
+	branch decrypt_code_skip	/* skip to key generation at first for speed */
+decrypt_code_loop:
+	hfetch 1,core_dma_status
+	qisolate1 pdata
+	rtn true
+decrypt_code_skip:
+	hfetch 1,core_misc_status
+	bbit0 1,decrypt_code_loop
+	call do_aes_cbc
+	branch decrypt_code_loop
+
+
+
+load_ucode:
+	fetch 2,mem_patch_ptr
+	rtn blank
+	jam 0x80, core_ucode_ctrl
+	jam 0,core_ucode_hi
+	jam 0,core_ucode_low
+	fetcht 2,mem_patch_len
+	lshift2 temp,loopcnt
+	iforce contr
+load_ucode_loop:
+	ifetch 1,contr
+	hstore 1,core_ucode_data
+	loop load_ucode_loop
+	jam 0x0, core_ucode_ctrl
+	rtn
+
+
+/* ===================== SPI dma ======================= */
+
+spid_init:
+	bpatchx patch31_5,mem_patch31
+	call spid_init_common
+	branch twspi_enable
+
+spid_init2:
+	call spid_init_common
+	call twspi_disable
+	branch twspi_enable2
+	
+spid_init_common:
+	fetch 1,mem_spi_init_clk
+	hstore 1,core_spid_ctrl	// A7530 should at least 34, or write fail
+	fetch 1,mem_spi_init_delay_time
+	hstore 1,core_spid_delay	// 4us delay
+	setarg mem_spid_tbuf
+	hstore 2,core_spid_txaddr
+	setarg mem_spid_rbuf
+	hstore 2,core_spid_rxaddr
+	branch twspi_disable
+	
+spid_reset:
+	hfetch 1,core_spid_ctrl
+	set1 7,pdata
+	hstore 1,core_spid_ctrl
+	set0 7,pdata
+	hstore 1,core_spid_ctrl
+	rtn
+
+
+/* pdata 6:0 is reg address, 15:8 is data to write */
+spid_write_reg:
+	set1 7,pdata
+	store 2,mem_spid_tbuf
+	bpatchx patch31_6,mem_patch31
+	jam 2,core_spid_txlen
+	jam 0,core_spid_rxlen
+	jam spid_start,core_misc_ctrl
+	branch wait_spid_done
+
+/* pdata 6:0 is reg address */
+spid_read_reg:
+	force 1,temp
+/* pdata 6:0 is burst reg address, temp is bytes to read */
+spid_read_regs:
+//	nop 100
+	store 1,mem_spid_tbuf
+	bpatchx patch31_7,mem_patch31
+	jam 1,core_spid_txlen
+	hstoret 2,core_spid_rxlen
+	jam spid_start,core_misc_ctrl
+	call wait_spid_done
+	fetch 1,mem_spid_rbuf
+	rtn
+
+wait_spid_done:
+	fetch 2,mem_afh_error_total
+	increase 1,pdata
+	store 2,mem_afh_error_total
+	hfetch 1,core_dma_status
+	bbit0 spid_done,wait_spid_done
+	rtn
+
+spid_init_flash:
+	jam 0x40,core_spid_ctrl
+	jam 0x0,core_spid_delay
+	hfetch 1,core_gpio_sel1
+	set0 0,pdata
+	set1 1,pdata
+	hstore 1,core_gpio_sel1
+	setarg 0
+	store 4,mem_spid_tbuf
+	rtn
+
+
+spid_unlock_flash:
+	setarg 0
+	hstore 2,core_spid_rxlen
+	setarg 1
+	hstore 2,core_spid_txlen
+	setarg mem_spid_tbuf
+	hstore 2,core_spid_txaddr
+	jam 6,mem_spid_tbuf
+	jam spid_start,core_misc_ctrl
+	branch wait_spid_done
+
+
+/**
+ ******************************************************************************
+ ** \brief  write flash
+ **
+ ** \param [in]  rega: 2byte write ptr    
+ **			pdata:3byte flash address  
+ ** 			temp:2byte write data length
+ **
+ ** \retval user  0: flash buys 1:write flash setting complate
+ **
+ ******************************************************************************/
+
+flash_write:
+	disable user
+	copy pdata,regb
+	fetch 1,mem_spi_write_flash_sm
+	rtnne FLASH_SM_NO_BUYS
+	enable user
+	copy regb,pdata
+	branch flash_write_start
+
+
+flash_write_spi_sm_timer:
+	fetch 1,mem_spi_write_flash_sm 	
+	beq FLASH_SM_START,flash_write_start
+	beq FLASH_SM_ERASE_SECTOR,flash_erase_sector
+	beq FLASH_SM_WAIT_ERASE_SECTOR,flash_wait_erase_sector
+	beq FLASH_SM_WRITE_DATA,flash_write_data
+	beq FLASH_SM_WAIT_WRITE_DATA,flash_wait_write_data
+	rtn
+
+flash_write_start:
+	store 3,mem_spi_write_addr
+	copy rega,pdata
+	store 2,mem_spi_write_ptr
+	storet 2,mem_spi_write_len
+	jam FLASH_SM_ERASE_SECTOR,mem_spi_write_flash_sm
+	branch spid_init_flash
+flash_erase_sector:
+	call spid_init_flash
+	jam FLASH_SM_WAIT_ERASE_SECTOR,mem_spi_write_flash_sm
+	call spid_unlock_flash
+	arg mem_spid_tbuf,rega
+	fetch 3,mem_spi_write_addr
+	jam 4,core_spid_txlen
+	arg FLASH_COMMAND_SECTOR_ERASE,temp
+	branch spid_write_flash_common
+	
+flash_wait_erase_sector:
+	call spid_init_flash
+	call spid_unlock_flash
+	setarg FLASH_READ_SATUS
+	call spid_read_reg
+	rtnbit1 FLASH_STATUS_WIP
+	jam FLASH_SM_WRITE_DATA,mem_spi_write_flash_sm
+	rtn
+flash_write_data:
+	call spid_init_flash
+	jam FLASH_SM_WAIT_WRITE_DATA,mem_spi_write_flash_sm
+	call spid_unlock_flash
+	call flash_data_preserve
+	call spid_write_flash
+	branch flash_data_recover
+flash_wait_write_data:
+	call spid_init_flash
+	call spid_unlock_flash
+	setarg FLASH_READ_SATUS
+	call spid_read_reg
+	rtnbit1 FLASH_STATUS_WIP
+	jam FLASH_SM_NO_BUYS,mem_spi_write_flash_sm
+	fetch 2,mem_cb_spi_flash_write_complate
+	branch callback_func
+flash_data_recover:
+	fetch 4,mem_temp
+	fetcht 2,mem_spi_write_ptr
+	increase -4,temp
+	istore 4,temp
+	rtn
+flash_data_preserve:
+	fetcht 2,mem_spi_write_ptr
+	copy temp,rega
+	increase -4,temp
+	ifetch 4,temp
+	store 4,mem_temp
+	fetcht 2,mem_spi_write_len
+	fetch 3,mem_spi_write_addr
+	rtn
+
+
+/* pdata is flash address, rega pointers to txdata(4 ahead bytes should be left), temp is length */
+spid_write_flash:
+	increase 4,temp
+	hstoret 2,core_spid_txlen
+	arg FLASH_COMMAND_WRITE_DATA,temp
+	increase -4,rega
+spid_write_flash_common:
+
+	istoret 1,rega
+	rshift16 pdata,temp
+	istoret 1,contw
+	rshift8 pdata,temp
+	istoret 1,contw
+	istore 1,contw
+	deposit rega
+	hstore 2,core_spid_txaddr
+	setarg 0
+	hstore 2,core_spid_rxlen
+	jam spid_start,core_misc_ctrl
+	branch wait_spid_done
+
+
+/* temp is length, rega pointers to buf   */
+spid_read_flash:
+	hstoret 2,core_spid_rxlen
+	rshift16 pdata,temp
+	storet 1,mem_addr_hi
+	rshift8 pdata,temp
+	storet 1,mem_addr_mi
+	store 1,mem_addr_lo
+	setarg 4
+	hstore 2,core_spid_txlen
+	jam FLASH_COMMAND_READ_DATA,mem_spid_tbuf
+	setarg mem_spid_tbuf
+	hstore 2,core_spid_txaddr
+	deposit rega
+	hstore 2,core_spid_rxaddr
+	hfetch 1,core_spid_ctrl
+	isolate0 15,rega
+	setflag true,6,pdata
+	hstore 1,core_spid_ctrl
+	jam spid_start,core_misc_ctrl
+spi_read_flash_wait:
+	hfetch 1,core_dma_status
+	bbit1 7,spi_read_flash_wait			// waiting for spid write
+	arg spid_done,queue
+	branch wait_spid_done
+
+
+/* temp is length, rega pointers to buf  */
+spid_load_flash:
+	hstoret 2,core_spid_rxlen
+	setarg 4
+	hstore 2,core_spid_txlen
+	jam 3,mem_spid_tbuf
+	setarg mem_spid_tbuf
+	hstore 2,core_spid_txaddr
+	deposit rega
+	hstore 2,core_spid_rxaddr
+	hfetch 1,core_spid_ctrl
+	isolate0 15,rega
+	setflag true,6,pdata
+	hstore 1,core_spid_ctrl
+	jam spid_start,core_misc_ctrl
+spi_load_flash_wait:
+	hfetch 1,core_dma_status
+	bbit1 7,spi_load_flash_wait			// waiting for spid write
+	arg spid_done,queue
+	call decrypt_code
+	call wait_spid_done
+	isolate1 spid_crcok,pdata
+	call set_ucode_status
+	fetch 1,mem_addr_hi
+	lshift16 pdata,regb
+	fetch 1,mem_addr_mi
+	lshift8 pdata,pdata
+	ior regb,regb
+	fetch 1,mem_addr_lo
+	ior regb,pdata
+	iadd temp,pdata
+	store 1,mem_addr_lo
+	rshift8 pdata,pdata
+	store 1,mem_addr_mi
+	rshift8 pdata,pdata
+	store 1,mem_addr_hi
+	rtn
+
+/*****************************************************************************
+*soft reset chip
+*****************************************************************************/
+soft_reset_chip:
+	jam 1,core_reset
+	rtn
+
+
+
+/* ===================== I2C dma ======================= */
+
+iic_init_390k:	//390khz
+	jam 12,core_iicd_scl_low
+	jam 13,core_iicd_scl_high
+	jam 13,core_iicd_start_setup
+	jam 13,core_iicd_start_hold
+	jam 13,core_iicd_stop_setup
+	jam 12,core_iicd_data_setup
+  	branch iicd_init_gpio	
+
+
+iicd_init_12m:
+	jam 5,core_iicd_scl_low
+ 	jam 7,core_iicd_scl_high
+	jam 7,core_iicd_start_setup
+	jam 7,core_iicd_start_hold
+	jam 7,core_iicd_stop_setup
+	jam 5,core_iicd_data_setup
+iicd_init_gpio:	
+	hfetch 1,core_gpio_pu3
+	or_into 0xc0,pdata
+	hstore 1,core_gpio_pu3
+	hfetch 1,core_gpio_sel1
+	or_into 0x10,pdata
+	hstore 1,core_gpio_sel1
+	rtn
+
+
+
+wait_iicd_done:
+	hfetch 1,core_dma_status
+	bbit0 iicd_done,wait_iicd_done
+	rtn
+
+/*
+pdata is tx length
+rega is points to tx buffer
+regb is points to rx buffer
+temp is rx length
+*/
+iicd_read_data:
+	hstore 2,core_iicd_txlen
+	deposit rega
+	hstore 2,core_iicd_txaddr	
+	deposit regb
+	hstore 2,core_iicd_rxaddr
+	deposit temp	
+	hstore 2,core_iicd_rxlen
+	arg 1,temp
+	nsetflag blank,1,temp
+	hstore 1,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	branch wait_iicd_done
+
+
+set_eeprom_size_2k:
+	set1 mark_eeprom_size,mark
+	jam 0x08,mem_eeprom_block_size
+	rtn
+
+clear_eeprom_size_2k:
+	set0 mark_eeprom_size,mark
+	jam 0x20,mem_eeprom_block_size
+	rtn
+
+
+iicd_read_eep_data_size_2k:
+ 	fetch 1,mem_eeprom_base
+	iadd regb,pdata
+	store 1,mem_addr_mi
+	branch iicd_read_eep_size_2k
+
+iicd_read_eep_size_2k_lcadcode:
+	fetch 2,mem_addr_mi
+	byteswap pdata,pdata
+	store 1,mem_addr_mi
+	
+//length:temp 
+//mem ptr:rega
+//eeprom addr:pdata
+iicd_read_eep_size_2k:
+ 	setarg 3
+	hstore 2,core_iicd_txlen
+	jam 0xa0,mem_iicd_tbuf
+	jam 0xa1,mem_iicd_tbuf+2
+	branch iicd_read_eep_common
+
+
+//length:temp 
+//mem ptr:rega
+//eeprom addr:regb
+iicd_write_protect_eep_data:
+	storet 2,mem_temp
+	call iicd_eeprom_write_enable
+	fetcht 2,mem_temp
+	call iicd_write_eep_data
+	branch iicd_eeprom_write_disable
+	
+iicd_eeprom_write_enable:
+	fetch 1,mem_eeprom_wp_gpio
+	rtneq GPIO_DISABLE
+	bbit0 6,iicd_wp_gpio_output_low
+	setarg 150000
+	call sleep
+iicd_wp_gpio_output_low:
+	fetcht 1,mem_eeprom_wp_gpio
+	branch gpio_out_active
+	
+iicd_eeprom_write_disable:
+	fetcht 1,mem_eeprom_wp_gpio
+	branch gpio_out_inactive
+	
+//length:temp 
+//mem ptr:rega
+//eeprom addr offset:regb
+iicd_read_eep_data:
+	bpatchx patch32_0,mem_patch32
+	bmark1 mark_eeprom_size,iicd_read_eep_data_size_2k
+	fetch 2,mem_eeprom_base
+	iadd regb,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+
+/* rega pointers to buf, temp is length  */
+iicd_read_eep:
+	bpatchx patch32_1,mem_patch32
+	bmark1 mark_eeprom_size,iicd_read_eep_size_2k_lcadcode
+	setarg 4
+	hstore 2,core_iicd_txlen
+	jam 0xa0,mem_iicd_tbuf
+	jam 0xa1,mem_iicd_tbuf+3
+iicd_read_eep_common:	
+	setarg mem_iicd_tbuf
+	hstore 2,core_iicd_txaddr
+	hstoret 2,core_iicd_rxlen
+	deposit rega
+	hstore 2,core_iicd_rxaddr
+	setarg 2
+	isolate0 15,rega
+	setflag true,0,pdata
+	hstore 1,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	arg iicd_done,queue
+	call decrypt_code
+	call wait_iicd_done
+	isolate1 iicd_crcok,pdata
+	call set_ucode_status
+	bmark1 mark_eeprom_size,iicd_read_eep_load_code_size_2k
+	fetch 2,mem_addr_mi
+	byteswap pdata,pdata
+	iadd temp,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	rtn
+
+iicd_read_eep_load_code_size_2k:
+	fetch 1,mem_addr_mi
+	iadd temp,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	rtn
+	
+
+//length:temp 
+//mem ptr:rega
+//eeprom addr offset:regb
+iicd_write_eep_data:
+	fetch 2,mem_eeprom_base
+	iadd regb,pdata
+
+//cuur ptr:pdata length:temp buf:rega
+iicd_write_ota_data:
+	store 2,mem_pdatatemp //curr ptr
+	bpatchx patch32_2,mem_patch32
+	storet 2,mem_temp	//len
+	copy rega,pdata
+	store 2,mem_contr
+iicd_write_eep_loop:
+	call iicd_eep_transparency
+
+	fetcht 2,mem_regb
+	fetch 2,mem_contr
+	copy pdata,rega
+	fetch 2,mem_pdatatemp
+	
+	call iicd_write_eep
+	
+	fetch 2,mem_regb
+	fetcht 2,mem_contr
+	iadd temp,temp
+	storet 2,mem_contr
+	fetcht 2,mem_pdatatemp
+	iadd temp,temp
+	storet 2,mem_pdatatemp
+	fetch 2,mem_temp
+	nbranch iicd_write_eep_loop,blank
+	rtn
+	
+//in:
+//1.size 2.len 3.src 4.des
+//mem_regc page's area
+//mem_pdatatemp curr ptr
+//mem_temp all len      
+//mem_regb curr len
+iicd_eep_transparency:
+	bpatchx patch32_3,mem_patch32
+	fetch 1,mem_eeprom_block_size
+	increase -1,pdata
+	fetcht 2,mem_pdatatemp
+	ior temp,pdata
+	increase 1,pdata
+	store 3,mem_regc
+
+	fetch 2,mem_temp
+	iadd temp,pdata
+
+	fetcht 3,mem_regc
+	isub temp,pdata
+	nbranch iicd_eep_deal_short_packet,positive
+	store 2,mem_temp
+	fetch 3,mem_regc
+	fetcht 2,mem_pdatatemp
+	isub temp,pdata
+	store 2,mem_regb
+	rtn
+iicd_eep_deal_short_packet:
+	fetch 2,mem_temp
+	store 2,mem_regb
+	setarg 0
+	store 2,mem_temp
+	rtn
+
+iicd_write_eep_size_2k:
+	increase 2,temp
+	hstoret 2,core_iicd_txlen
+	increase -2,rega
+	ifetcht 3,rega
+	copy temp,regb
+	arg 0xa0,temp
+	istoret 1,rega
+//	byteswap pdata,pdata
+	istore 1,contw
+	branch iicd_write_eep_common
+
+	/* pdata is eeprom address, rega pointers to txdata(3 ahead bytes should be left), temp is length */
+iicd_write_eep:
+	copy pdata,regb
+	bpatchx patch32_4,mem_patch32
+	bmark1 mark_eeprom_size,iicd_write_eep_size_2k
+	copy regb,pdata
+	increase 3,temp
+	hstoret 2,core_iicd_txlen
+	increase -3,rega
+	ifetcht 3,rega
+	copy temp,regb
+	arg 0xa0,temp
+	istoret 1,rega
+	byteswap pdata,pdata
+	istore 2,contw
+iicd_write_eep_common:	
+	deposit rega
+	hstore 2,core_iicd_txaddr
+	setarg 0
+	hstore 2,core_iicd_rxlen
+	jam 1,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	call wait_iicd_done
+	copy regb,pdata
+	istore 3,rega
+	
+iic_check_eeprom_standby:
+	bpatchx patch32_5,mem_patch32
+	jam 0,mem_iicd_tbuf+3
+iic_check_eeprom_standby_wait:
+	setarg 1
+	hstore 2,core_iicd_txlen
+	jam 0xa0,mem_iicd_tbuf
+	setarg mem_iicd_tbuf
+	hstore 2,core_iicd_txaddr
+	setarg 0
+	hstore 2,core_iicd_rxlen
+	hstore 2,core_iicd_rxaddr
+	setarg 3
+	hstore 1,core_iicd_ctrl
+	jam iicd_start,core_misc_ctrl
+	call wait_iicd_done
+	hfetch 1,core_dma_status
+	rtnbit0 iicd_ack
+	nop 1500
+	fetch 1,mem_iicd_tbuf+3
+	increase 1,pdata
+	store 1,mem_iicd_tbuf+3
+	sub pdata,40,null
+	nrtn positive//polling timeout 6ms
+	branch iic_check_eeprom_standby_wait
+
+/* ===================== OTP ======================= */
+
+otp_enable_chgpump:
+	jam 0x70,rfen_chgpump
+	nop param_chgpump_delay
+	rtn
+
+otp_disable_chgpump:
+	jam 0x30,rfen_chgpump
+	rtn
+	
+otp_set_addr:
+	lshift3 pdata,pdata
+	hstore 2,core_otp_addr
+	jam 0,core_otpd_ctrl
+	rtn	
+
+/* pdata = otp address, rega pointers data, loopcnt is count */
+otp_write:
+	call otp_set_addr
+	call otp_ce
+otp_program:
+	ifetcht 1,rega
+	increase 1,rega
+	force 0,queue
+otp_program_bit:
+	qisolate0 temp
+	branch otp_skip_0,true
+	hfetch 1,core_otp_din
+	set1 6,pdata				/* din */
+	set1 7,pdata				/* dle */
+	hstore 1,core_otp_din
+	jam 0x02,core_otp_ctrl	/* web */
+	jam 0x82,core_otp_ctrl
+	set0 7,pdata				/* dle */
+	hstore 1,core_otp_din
+	jam 0x8a,core_otp_ctrl	/* pgmen */
+	nop 11
+	jam 0xca,core_otp_ctrl	/* vppen */
+	nop 33
+	jam 0x4a,core_otp_ctrl	/* web 2nd */
+	nop 44
+	jam 0xca,core_otp_ctrl	/* release web */
+	nop 22
+	jam 0x8a,core_otp_ctrl	/* release vppen */
+	nop 33
+	jam 0x82,core_otp_ctrl	/* release pgmen */
+	nop 1
+	jam 0x92,core_otp_ctrl	/* pgmvfy */
+	nop 10
+	jam 0xb2,core_otp_ctrl	/* readen */
+	hfetch 1,core_otp_rdata
+	jam 0x92,core_otp_ctrl	/* release readen */
+	nop 1
+	jam 0x82,core_otp_ctrl	/* release pgmvfy */
+	qisolate0 pdata
+	branch otp_program_bit,true	/* program error */
+otp_skip_0:
+	hfetch 2,core_otp_addr
+	increase 1,pdata
+	hstore 2,core_otp_addr
+	increase 1,queue
+	compare 8,queue,0xf
+	nbranch otp_program_bit,true
+	loop otp_program
+	jam 0x83,core_otp_ctrl
+	rtn
+
+otp_ce:
+	jam 0x82,core_otp_ctrl	/* ceb */
+	nop 12
+	jam 0x80,core_otp_ctrl	/* rstn */
+	jam 0x82,core_otp_ctrl	/* release rstn */
+	nop 150					/* waiting for vdd25 stable */
+	rtn
+
+	/* rega points to data, temp is count */
+otpd_read_init:
+	call otp_ce
+	jam 0xa2,core_otp_ctrl	/* readen */
+	deposit rega
+	hstore 2,core_otpd_addr
+	set1 11,temp
+	isolate0 15,pdata
+	setflag true,15,temp
+	hstoret 2,core_otpd_len
+	jam otpd_start,core_misc_ctrl
+	rtn
+
+otpd_wait_end:
+	hfetch 1,core_dma_status
+	bbit0 otpd_done,otpd_wait_end
+	rtn
+	
+	/* pdata=otp address, rega points to data, temp is count */
+otpd_read_data:
+	call otp_set_addr
+	call otpd_read_init
+	call otpd_wait_end
+	jam 0x83,core_otp_ctrl	/* release ceb */
+	rtn
+
+
+
+/* rega pointers to buf, temp is length */
+otpd_read_code:	
+	hfetch 2,core_current_otp_addr
+	hstore 2,core_otp_addr
+	call otpd_read_init
+	arg otpd_done,queue
+	call decrypt_code
+	call otpd_wait_end
+	isolate1 otpd_crcok,pdata	
+	call set_ucode_status
+	jam 0x83,core_otp_ctrl	/* release ceb */
+	rtn
+
+/* ===================== uart dma ======================= */
+uartd_prepare_tx:
+	hfetch 2,core_uart_twptr
+	iforce contwu
+	rtn
+
+uartd_send:
+	deposit contwu
+	hstore 2,core_uart_twptr
+	rtn
+
+uartd_rxdone:
+	deposit contru
+	hstore 2,core_uart_rrptr
+	rtn
+
+uartd_prepare_rx:
+	hfetch 2,core_uart_rrptr
+	copy pdata,contru
+	rtn
+
+uart_set_baud_by_mem:
+	fetch uart_baud_len,mem_baud
+	hstore uart_baud_len,core_uart_baud
+	rtn
+
+uart_copy_tx_bytes_fast:
+	deposit loopcnt
+	rtn blank
+uart_copy_tx_bytes_fast_loop:
+	increase -8,loopcnt
+	call uart_tx_8_bytes,positive
+	rtn zero
+	branch uart_copy_tx_bytes_fast_loop,positive
+	increase 8,loopcnt
+uart_copy_tx_bytes_fast_loop_four:
+	increase -4,loopcnt
+	call uart_tx_4_bytes,positive
+	rtn zero
+	branch uart_copy_tx_bytes_fast_loop_four,positive
+	increase 4,loopcnt
+	branch uart_copy_tx_bytes
+
+uart_tx_8_bytes:
+	ifetch 8,contr
+	istore 8,contwu
+	rtn
+
+uart_tx_4_bytes:
+	ifetch 4,contr
+	istore 4,contwu
+	rtn
+
+uart_copy_tx_bytes:
+	deposit loopcnt
+	rtn blank
+uart_copy_tx_bytes_loop:
+	ifetch 1,contr
+	istore 1,contwu
+	loop uart_copy_tx_bytes_loop
+	rtn
+
+uart_copy_rx_bytes_fast:
+	deposit loopcnt
+	rtn blank
+uart_copy_rx_bytes_fast_loop:
+	increase -8,loopcnt
+	call uart_rx_8_bytes,positive
+	rtn zero
+	branch uart_copy_rx_bytes_fast_loop,positive
+	increase 8,loopcnt
+uart_copy_rx_bytes_fast_loop_four:
+	increase -4,loopcnt
+	call uart_rx_4_bytes,positive
+	rtn zero
+	branch uart_copy_rx_bytes_fast_loop_four,positive
+	increase 4,loopcnt
+	branch uart_copy_rx_bytes
+
+uart_rx_8_bytes:
+	ifetch 8,contru
+	istore 8,contw
+	rtn
+
+uart_rx_4_bytes:
+	ifetch 4,contru
+	istore 4,contw
+	rtn
+
+
+uart_copy_rx_bytes:
+	deposit loopcnt
+	rtn blank
+uart_copy_rx_bytes_loop:
+	ifetch 1,contru
+	istore 1,contw
+	loop uart_copy_rx_bytes_loop
+	rtn
+
+
+uart_copy_rx2tx:
+	deposit loopcnt
+	rtn blank
+uart_copy_rx2tx_loop:
+	ifetch 1,contru
+	istore 1,contwu
+	loop uart_copy_rx2tx_loop
+	rtn
+
+
+/* ===================== eeprom data ======================= */
+
+app_store_nvram_event:
+	jam BT_EVT_STORE_NVRAM,mem_fifo_temp
+	branch ui_ipc_send_event
+
+check_51cmd_store_reconn_info:
+check_51cmd_update_device_record:
+	bpatchx patch32_6,mem_patch32
+	fetch 1,mem_nv_data_number
+	rtn blank		// not nv data
+	call check_nvram
+	call init_device_list,zero
+	call nvram_find_addr_from_bd_list
+write_device_record:
+	fetch 1,mem_nv_data_number
+	icopy regc
+	fetcht 2,mem_nv_data_ptr
+	storet 2,mem_list_item_ptr
+write_device_loop_find:
+	copy regc,pdata
+	branch app_store_nvram_event,blank  //EEPROM
+	increase -1,regc
+	copy temp,rega
+	ifetch 1,rega
+	fetcht 1,mem_select_list_item
+	isub temp,null
+	call set_index_finded_device,zero
+	branch write_device_loop_find0,positive
+	ifetch 1,rega
+	increase 1,pdata
+	istore 1,rega
+write_device_loop_find0:
+	fetcht 2,mem_list_item_ptr
+	increase NV_DATA_LEN,temp
+	storet 2,mem_list_item_ptr
+	branch write_device_loop_find
+
+set_index_finded_device:
+	setarg 0
+	istore 1,rega
+	fetch 1,mem_temp_reconn_record
+	istore 1,contw	
+	bne REC_3_MODE,set_index_finded_device_ble_mode
+	arg mem_link_key,regb
+set_index_find_device_MASTER_ADDR:
+	ifetch 6,contr
+	istore 8,contw
+	setarg 0
+	istore 8,contw
+	copy regb,contr
+store_rec_data_common:
+	call memcpy16
+	force 1,null
+	rtn
+
+set_index_finded_device_ble_mode:
+	beq REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS,set_index_finded_device_IRK
+	beq REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS,set_index_finded_device_EDIV
+	arg mem_le_ltk,regb
+	branch set_index_find_device_MASTER_ADDR
+
+set_index_finded_device_IRK:
+	arg mem_le_irk,contr
+	call memcpy16
+store_ble_rec_data_common:
+	arg mem_le_ltk,contr
+	branch store_rec_data_common
+
+set_index_finded_device_EDIV:
+	arg mem_le_rand,contr
+	call memcpy16
+	branch store_ble_rec_data_common
+
+
+nvram_find_addr_from_bd_list:
+	call disable_user
+	fetch 1,mem_nv_data_number
+	rtn blank		// not nv data
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_CONNECTED,find_addr_from_bd_list_SPP_mode
+find_addr_from_bd_list_ble_mode:
+	bpatchx patch32_7,mem_patch32
+	fetch 1,mem_le_conn_peer_addr_type
+	beq MASTER_PUBLIC_ADDR,find_addr_from_bd_list_static_addr
+	fetch 1,mem_le_plap+5
+	compare 0xc0,pdata,0xc0
+	branch find_addr_from_bd_list_static_addr,true
+	compare 0x40,pdata,0xc0
+	branch find_addr_from_bd_list_random_addr,true
+	compare 0x00,pdata,0xc0
+	branch find_addr_from_bd_list_random_non_resolvable_private_address,true
+find_addr_from_bd_list_static_addr:
+	jam REC_4_MODE_STATIC_ADDRESS,mem_temp_reconn_record
+	fetch 6,mem_le_plap
+	branch find_addr_from_bd_list_common
+	
+find_addr_from_bd_list_random_non_resolvable_private_address:	
+	jam REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS,mem_temp_reconn_record
+	branch find_addr_from_bd_list_common
+
+//input :pdata EDIV and rands
+find_addr_from_bd_list_random_addr:
+	jam REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS,mem_temp_reconn_record
+	branch find_addr_from_bd_list_common
+	
+//input :pdata EDIV and rands
+find_addr_from_bd_list_SPP_mode:
+	bpatchx patch33_0,mem_patch33
+	jam REC_3_MODE,mem_temp_reconn_record
+	fetch 6,mem_plap
+find_addr_from_bd_list_common:
+	store 6,mem_temp_reconn_record+1
+	fetch 2,mem_nv_data_ptr
+	ifetcht 1,pdata
+	pincrease 1
+	store 2,mem_list_item_ptr
+	storet 1,mem_select_list_item
+	fetch 1,mem_nv_data_number
+	icopy regc
+nvram_find_addr_from_list:
+	fetch 2,mem_list_item_ptr
+	copy pdata,rega
+	call nvram_find_addr_from_list_compare
+	rtn user
+	fetcht 2,mem_list_item_ptr
+	increase NV_DATA_LEN,temp
+	storet 2,mem_list_item_ptr
+	increase -1,temp
+	ifetch 1,temp
+	store 1,mem_select_list_item
+	increase -1,regc
+	nbranch nvram_find_addr_from_list,zero
+	fetch 1,mem_nv_data_number
+	pincrease DECREASED_ONE
+	store 1,mem_select_list_item
+	rtn
+nvram_find_addr_from_list_compare:
+	fetch 1,mem_temp_reconn_record
+	bne REC_3_MODE,find_addr_from_list_compare_ble_mode
+find_master_addr_from_list_compare:
+	arg mem_temp_reconn_record,regb
+	arg 7,loopcnt
+	call string_compare
+	branch enable_user,zero
+	rtn
+
+find_addr_from_list_compare_ble_mode:
+	beq REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS,find_irk_form_list_compare
+	beq REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS,find_ediv_form_list_compare
+	branch find_master_addr_from_list_compare
+
+find_irk_form_list_compare:
+	ifetcht 1,rega
+	isub temp,null
+	nrtn zero
+	arg mem_le_prand,contw
+	arg 16,loopcnt
+	call clear_mem
+	fetch 3,mem_le_plap+3
+	store 3,mem_le_prand
+	call genernate_master_MacAddress
+	fetch 2,mem_le_aes_128+13
+	byteswap pdata,pdata
+	lshift8 pdata,temp
+	ifetch 1,contr
+	iadd temp,pdata
+	fetcht 3,mem_le_plap
+	isub temp,null
+	branch enable_user,zero
+	rtn
+
+
+genernate_master_MacAddress:
+	arg mem_le_prand ,contr
+	call load_data128
+//	arg mem_le_irk,contr
+	ifetch 1,rega
+	call load_regext
+	force 0x38,aes_ctrl
+	force 0x0,aes_ctrl
+	call wait_aes
+	arg mem_le_aes_128,contw
+	branch store_aes_result
+
+find_ediv_form_list_compare:
+	ifetcht 1,rega
+	isub temp,null
+	nrtn zero
+	copy contr,rega
+	add contr,8,regc
+	arg mem_le_rand,regb
+	arg 8,loopcnt
+	call string_compare
+	branch enable_user,zero
+	copy regc,rega
+	arg mem_le_irk,regb
+	arg 8,loopcnt
+	call string_compare
+	branch enable_user,zero
+	rtn
+
+check_nvram:
+	fetch 2,mem_nv_data_ptr
+	ifetcht 1,pdata
+	pincrease NV_DATA_LEN
+	ifetch 1,pdata
+	isub temp,null
+	rtn
+
+init_device_list:
+	fetch 1,mem_nv_data_number
+	icopy loopcnt
+	fetcht 2,mem_nv_data_ptr
+	setarg 0
+init_device_list_loop:
+	istore 1,temp
+	increase NV_DATA_LEN,temp
+	pincrease 1
+	loop init_device_list_loop
+	rtn
+
+load_device_list:
+	bpatchx patch33_1,mem_patch33
+	call nvram_find_addr_from_bd_list
+	fetch 1,mem_state
+	setflag user,state_combkey,pdata	/* we have link key */
+	store 1,mem_state
+	nbranch clear_key_exists,user
+	add rega,10,contr
+//	copy rega,contr
+	arg mem_link_key,contw
+	call  memcpy16
+	branch check_link_key_load
+clear_key_exists:
+	jam 0,mem_link_key_exists
+	rtn
+
+load_device_list_mode_4:
+	fetch 9,mem_le_ediv
+	branch clear_ltk_exists,blank
+	call nvram_find_addr_from_bd_list
+	nbranch clear_ltk_exists,user
+	fetch 2,mem_list_item_ptr
+	add pdata,1,contr
+	arg mem_le_irk,contw
+	call  memcpy16
+	arg mem_le_ltk,contw
+	call  memcpy16
+	jam 1,mem_ltk_exists
+	rtn
+
+clear_ltk_exists:
+	jam 0,mem_ltk_exists
+	rtn
+
+
+eeprom_store_le_reconn_info:
+	fetch 6,mem_le_plap
+	store 6,mem_temp_lap
+	jam REC_4_MODE,mem_record_bt_mode
+	branch eeprom_store_reconn_info
+eeprom_store_bd_reconn_info:
+	fetch 6,mem_plap
+	store 6,mem_temp_lap
+	jam REC_3_MODE,mem_record_bt_mode
+eeprom_store_reconn_info:
+	fetch 1,mem_device_option
+	beq dvc_op_module,check_51cmd_update_device_record
+	bbit1 dvc_op_mouse,mouse_store_remote_bdaddr
+	rtn
+	
+
+check_link_key_load:
+	fetch 8,mem_link_key
+	fetcht 8,mem_link_key+8
+	ior temp,pdata
+	rtn blank
+	jam 1,mem_link_key_exists
+	rtn
+	
+
+/* =============== GPIO CONTROL ================= */
+
+
+	//temp [4:0]=GPIO number, 0-31, 
+gpio_set_wake_by_current_state:
+	bpatchx patch33_2,mem_patch33
+	set1 7,temp
+	call gpio_get_bit
+	nsetflag true,7,temp
+	//branch gpio_set_wake
+	//fall through
+	
+	//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_set_wake:
+	bpatchx patch33_3,mem_patch33
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	isolate0 7,temp
+	and temp,0x1f,queue
+	fetch 4,mem_gpio_wakeup_low
+	qsetflag true,pdata
+	store 4,mem_gpio_wakeup_low
+	fetch 4,mem_gpio_wakeup_high
+	nqsetflag true,pdata
+	store 4,mem_gpio_wakeup_high
+	rtn
+	
+	//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_clr_wake:
+	bpatchx patch33_4,mem_patch33
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	isolate0 7,temp
+	and temp,0x1f,queue
+	fetch 4,mem_gpio_wakeup_low
+	qset0 pdata
+	store 4,mem_gpio_wakeup_low
+	fetch 4,mem_gpio_wakeup_high
+	qset0 pdata
+	store 4,mem_gpio_wakeup_high
+	rtn
+
+
+gpio_config_input_nowake:
+	call gpio_clr_wake
+	branch gpio_config_input_without_wake
+
+	//temp [4:0]=GPIO number, 0-31, [7]=0, low active
+gpio_config_input:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	ncall gpio_set_wake,wake
+
+gpio_config_input_without_wake:
+	arg core_gpio_pd0,contw
+	call gpio_set_bit
+	setflip gpio_active_bit,temp
+	arg core_gpio_pu0,contw
+	call gpio_set_bit
+	set0 gpio_active_bit,temp
+	arg core_gpio_oe0,contw
+	branch gpio_set_bit
+
+
+gpio_set_high_impedance:
+	arg core_gpio_pd0,contw
+	call gpio_set_bit
+	set0 gpio_active_bit,temp
+	arg core_gpio_pu0,contw
+	call gpio_set_bit
+	set0 gpio_active_bit,temp
+	arg core_gpio_oe0,contw
+	branch gpio_set_bit
+
+
+	//temp [4:0]=GPIO number, 0-31, [7]=0, low active. set gpio to inactive state
+gpio_config_output:	
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	setflip gpio_active_bit,temp
+	call gpio_out
+gpio_config_output0:
+	set1 gpio_active_bit,temp
+	arg core_gpio_oe0,contw
+	branch gpio_set_bit
+	
+gpio_common:
+	and temp,0x07,queue
+	rshift3 temp,pdata
+	and_into 3,pdata
+	iadd contw,contw
+	ifetch 1,contw
+	rtn
+
+gpio_check_active:
+	arg core_gpio_out0,contw
+	branch get_bit_common
+
+	
+	/* temp is gpio number, return true if gpio active */
+gpio_get_bit:
+	arg core_gpio_in,contw
+get_bit_common:
+	call gpio_common
+	isolate1 gpio_active_bit,temp
+	branch gpio_get_bit_reverse,true
+	qisolate0 pdata
+	rtn
+gpio_get_bit_reverse:
+	qisolate1 pdata
+	rtn
+
+gpio_out_inactive:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	isolate1 7,null
+	branch gpio_out_flag
+
+gpio_out_active:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	isolate0 7,null
+
+	/* temp is gpio number,  [7]=1,set out equa true flag if gpio active */
+gpio_out_flag:
+	setarg 0
+	nsetflag true,gpio_active_bit,pdata
+	ixor temp,temp
+	
+	/* temp is gpio number,0-31, [7]=out bit value */
+gpio_out:
+	arg core_gpio_out0,contw
+
+	//temp [4:0]=GPIO number, 0-31, [7]=bit value; contw is gpio reg base
+gpio_set_bit:
+	call gpio_common
+	isolate1 gpio_active_bit,temp
+	qsetflag true,pdata
+	istore 1,contw
+	rtn
+
+gpio_set_before_lpm_common:
+	arg -1,rega
+	hfetch 1,core_gpio_sel1
+	compare 0x02,pdata,0x03
+	call neglact4_from_23_pin,true	//spi
+
+	compare 0x01,pdata,0x03
+	call neglact2_form_25_pin,true	//two spi gpio25 26
+
+	compare 0x03,pdata,0x03
+	call neglact2_form_25_pin,true	//two spi gpio30 31
+	 	 
+	isolate1 2,pdata
+	call neglect2_from_6_pin,true	//uart
+	 
+	isolate1 3,pdata
+	call neglect4_from_9_pin,true	//spi
+
+	isolate1 4,pdata
+	call neglact2_form_30_pin,true	//IIC GPIO30 31
+
+	isolate1 6,pdata
+	nsetflag true,04,rega			//pwm0 gpio4
+
+	isolate1 7,pdata
+	nsetflag true,05,rega			//pwm1 gpio5
+
+	hfetch 1,core_gpio_sel2
+	isolate1 0,pdata
+	nsetflag true,27,rega			//pwm2 gpio27
+	isolate1 1,pdata
+	nsetflag true,28,rega			//pwm3 gpio28
+	isolate1 2,pdata
+	nsetflag true,03,rega			//pwm4 gpio03
+	isolate1 3,pdata
+	nsetflag true,08,rega			//pwm5 gpio08
+	isolate1 4,pdata
+	nsetflag true,20,rega			//pwm0 gpio20
+	isolate1 5,pdata
+	nsetflag true,21,rega			//pwm1 gpio21
+	isolate1 6,pdata
+	nsetflag true,22,rega			//pwm2 gpio22
+	isolate1 7,pdata
+	nsetflag true,23,rega			//pwm3 gpio23
+		
+	hfetch 1,core_gpio_sel
+	isolate1 0,pdata
+	nsetflag true,05,rega			//ADC GPIO05
+	isolate1 1,pdata
+	nsetflag true,06,rega			//ADC GPIO06
+	isolate1 2,pdata
+	nsetflag true,07,rega			//ADC GPIO07
+	isolate1 3,pdata
+	nsetflag true,18,rega			//ADC GPIO18
+	isolate1 4,pdata
+	nsetflag true,19,rega			//ADC GPIO19
+	isolate1 5,pdata
+	nsetflag true,20,rega			//ADC GPIO20
+	isolate1 6,pdata
+	nsetflag true,21,rega			//ADC GPIO21
+	isolate1 7,pdata
+	nsetflag true,22,rega			//ADC GPIO22
+	
+	hfetch 1,core_uart_ctrl
+	isolate1 4,pdata
+	call neglact2_form_2_pin,true
+	bpatchx patch33_5,mem_patch33
+
+	hfetch 4,core_gpio_pu0
+	hfetcht 4,core_gpio_pd0
+	ior temp,pdata
+	invert pdata,pdata
+	iand rega,pdata
+	//set0 4,pdata //revc
+	hstore 4,core_gpio_oe0
+	rtn
+	
+	
+neglect2_from_6_pin: //uart
+	 arg 6,queue
+	 branch neglect_2_pin
+neglect4_from_9_pin:
+	 arg 9,queue
+	 branch neglact_4_pin
+neglact4_from_23_pin:
+	 arg 23,queue
+	 branch neglact_4_pin
+neglact2_form_25_pin:
+	 arg 25,queue
+	 branch neglect_2_pin
+neglact2_form_30_pin:
+	 arg 30,queue
+	 branch neglect_2_pin
+neglact2_form_2_pin:
+	 arg 2,queue
+	 branch neglect_2_pin
+neglact_1_pin:
+	arg 1,loopcnt
+	branch neglect_pin_loop
+neglact_4_pin:
+	 arg 4,loopcnt
+	 branch neglect_pin_loop
+neglect_2_pin:
+	 arg 2,loopcnt
+neglect_pin_loop:
+	 qset0 rega
+	 increase 1,queue
+	 loop neglect_pin_loop
+	 rtn
+
+
+
+
+
+
+/* ===================== sniff GPIO CONTROL ======================= */
+gpio_cfg_uart_tx_output:
+	call gpio_uart2gpio
+	arg UART_WAKEUP_TX,temp
+	branch gpio_config_output
+
+gpio_pu_uart_tx:
+	call gpio_cfg_uart_tx_output
+	arg UART_WAKEUP_TX,temp
+	branch gpio_out_inactive
+
+
+
+gpio_rx_config_input_with_pu:
+	call gpio_uart2gpio
+	hfetch 1, core_gpio_pu0
+	set1 UART_WAKEUP_RX,pdata
+	hstore 1,core_gpio_pu0
+	arg UART_WAKEUP_RX,temp
+	branch gpio_config_input
+	
+gpio_uart2gpio:
+	hfetch 1,core_gpio_sel1
+	and_into 0xfb,pdata
+	hstore 1,core_gpio_sel1
+	rtn
+
+gpio_check_uart_state:
+	hfetch 1,core_gpio_sel1
+	isolate1 2,pdata
+	rtn
+
+load_chip_option:
+	call otp_enable_chgpump
+	setarg OTP_CHIP_FUNCTIONS
+	arg mem_chip_functions,rega
+	arg 0x02,temp
+	call otpd_read_data
+	branch otp_disable_chgpump
+
+
+load_adc_init:
+	call otp_enable_chgpump
+	setarg otp_adc_io_0_5V_addr
+	arg mem_0_5_adc_io_data,rega
+	arg 14,temp
+	call otpd_read_data
+	branch otp_disable_chgpump
+
+
+//mem_adc_config_flag 0:vinlpm 1:Hvin 2: GPIO
+adc_init_data:
+	bpatchx patch33_6,mem_patch33
+
+	call load_adc_init
+	
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_VINLPM,adc_init_data_vinlpm
+	beq ADC_CONFIG_HVIN,adc_init_data_hvin
+	beq ADC_CONFIG_GPIO,adc_init_data_io
+	rtn	
+
+adc_init_data_vinlpm:
+	fetcht 2,mem_otp_adc_flag
+	setarg OTP_ADC_FLAG
+	isub temp,null
+	branch adc_check_data_vinlpm,zero
+	setarg 0x4dfa
+	store 2,mem_3v_adc_vinlpm_data	
+	setarg 0x4894
+	store 2,mem_2v_adc_vinlpm_data
+	branch set_vdd_reference_voltage_1v
+
+adc_check_data_vinlpm:
+	fetch 2,mem_3v_adc_vinlpm_data
+	nbranch adc_check_2v_vinlpm,blank
+	setarg 0x4dfa
+	store 2,mem_3v_adc_vinlpm_data
+adc_check_2v_vinlpm:	
+	fetch 2,mem_2v_adc_vinlpm_data
+	nbranch set_vdd_reference_voltage_1v,blank
+	setarg 0x4894
+	store 2,mem_2v_adc_vinlpm_data
+set_vdd_reference_voltage_1v:
+	setarg 100
+	store 2,mem_reference_voltage //set reference voltage = 1V
+	rtn		
+
+adc_init_data_hvin:
+	fetcht 2,mem_otp_adc_flag
+	setarg OTP_ADC_FLAG
+	isub temp,null
+	branch adc_check_data_hvin,zero
+	setarg 0x5932
+	store 2,mem_5v_adc_hvin_data	
+	setarg 0x4323
+	store 2,mem_1v_adc_hvin_data
+	branch set_vdd_reference_voltage_4v
+
+adc_check_data_hvin:
+	fetch 2,mem_5v_adc_hvin_data
+	nbranch adc_check_1v_hvin,blank
+	setarg 0x5932
+	store 2,mem_5v_adc_hvin_data
+adc_check_1v_hvin:	
+	fetch 2,mem_1v_adc_hvin_data
+	nbranch set_vdd_reference_voltage_4v,blank
+	setarg 0x4323
+	store 2,mem_1v_adc_hvin_data
+set_vdd_reference_voltage_4v:
+	setarg 400
+	store 2,mem_reference_voltage //set reference voltage = 4V
+	rtn 	
+
+adc_init_data_io:
+	fetcht 2,mem_otp_adc_flag
+	setarg OTP_ADC_FLAG
+	isub temp,null
+	branch adc_check_data_io,zero
+	setarg 0x6946
+	store 2,mem_1v_adc_io_data	
+	setarg 0x5377
+	store 2,mem_0_5_adc_io_data
+	branch set_vdd_reference_voltage_0_5v
+
+adc_check_data_io:
+	fetch 2,mem_1v_adc_io_data
+	nbranch adc_check_0_5v_io,blank
+	setarg 0x6946
+	store 2,mem_1v_adc_io_data
+adc_check_0_5v_io:
+	fetch 2,mem_0_5_adc_io_data
+	nbranch set_vdd_reference_voltage_0_5v,blank
+	setarg 0x5377
+	store 2,mem_0_5_adc_io_data
+set_vdd_reference_voltage_0_5v:
+	setarg 50
+	store 2,mem_reference_voltage //set reference voltage = 0.5V
+	rtn	
+
+
+adc_set_mode:
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_VINLPM,adc_check_vinlpm
+	beq ADC_CONFIG_HVIN,adc_check_hvin
+	beq ADC_CONFIG_GPIO,adc_check_gpio
+	rtn
+adc_check_vinlpm:
+	jam 0xbf,rf_adc_mode	//read VINLPM voltage directly	
+	branch read_adc
+adc_check_hvin:
+	jam 0xaf,rf_adc_mode	//read HVIN voltage directly
+	branch read_adc
+adc_check_gpio:
+	jam 0x8f,rf_adc_mode
+	fetch 1,mem_adc_channel
+	hstore 1,rf_adc_ch
+	branch read_adc
+read_adc:
+	bpatchx patch33_7,mem_patch33
+	hfetch 1,core_uart_baud + 1
+	set1 7,pdata
+	hstore 1,core_uart_baud + 1 
+	hfetch 1,rf_adc_ch
+	or_into 0x30,pdata
+	hstore 1,rf_adc_ch
+	jam 0x7c,rfen_adc
+	jam 0xaa,rf_adc_gc
+	nop 5000
+	hfetcht 2,core_adc_sum
+	hfetch 1,core_uart_baud + 1
+	set0 7,pdata
+	hstore 1,core_uart_baud + 1
+	storet 2,mem_adc_current_value
+	rtn
+
+vdd_calculate_by_mode:
+	bpatchx patch34_0,mem_patch34
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_VINLPM,vdd_calculate_vinlpm
+	beq ADC_CONFIG_HVIN,vdd_calculate_hvin
+	beq ADC_CONFIG_GPIO,vdd_calculate_io
+	rtn
+
+vdd_calculate_vinlpm:
+	fetch 2,mem_3v_adc_vinlpm_data
+	fetcht 2,mem_2v_adc_vinlpm_data
+	arg 200,regc
+	branch vdd_calculate
+
+vdd_calculate_hvin:
+	fetch 2,mem_5v_adc_hvin_data
+	fetcht 2,mem_1v_adc_hvin_data
+	arg 100,regc
+	branch vdd_calculate
+
+vdd_calculate_io:
+	fetch 2,mem_1v_adc_io_data
+	fetcht 2,mem_0_5_adc_io_data
+	arg 50,regc
+	branch vdd_calculate
+	
+vdd_calculate:
+	isub temp,rega
+	fetch 2,mem_adc_current_value
+	isub temp,pdata
+	nbranch vdd_calculate1,positive
+	fetcht 2,mem_reference_voltage
+	imul32 temp,regb
+	copy regc,pdata
+	imul32 rega,pdata
+	iadd regb,pdata
+vdd_calculate2:
+	idiv rega
+	call wait_div_end
+	quotient pdata	
+	rtn
+
+vdd_calculate1:
+	copy temp,pdata
+	fetcht 2,mem_adc_current_value
+	isub temp,pdata
+	fetcht 2,mem_reference_voltage
+	imul32 temp,regb
+	copy regc,pdata
+	imul32 rega,pdata
+	isub regb,pdata
+	branch vdd_calculate2
+
+/*	typedef struct
+*	{
+*		uint16 full_vol
+*		uint16 empty_vol
+*		uint16 low_vol
+*		uint16 now_vol
+*	}bat_calculate;
+*/
+//out:	pdata->bat percent
+adc_bat_percent_lowpower_out:
+	ifetch 8,rega
+	store 8,mem_pdatatemp
+	fetch 2,mem_pdatatemp
+	fetcht 2,mem_pdatatemp+2
+	isub temp,rega
+	fetch 2,mem_pdatatemp+6
+	isub temp,regb
+	fetcht 2,mem_pdatatemp+4
+	isub temp,null
+	ncall adc_set_low_power_flag,positive
+	mul32 regb,100,pdata
+	idiv rega
+	call wait_div_end
+	quotient pdata
+	call adc_set_no_power_flag,blank
+	rtn
+adc_set_low_power_flag:
+	fetch 1,mem_adc_power_flag
+	set1 0,pdata
+	store 1,mem_adc_power_flag
+	rtn
+adc_set_no_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set1 1,temp
+	storet 1,mem_adc_power_flag
+	rtn
+
+ifdef SPI_SIMULATE
+/******************************simulate spi slave start**********************************/
+
+/*
+// Define SPI struct, gpio config
+mem_spi_simulate_struct:
+02	#cs
+03	#sclk
+04	#mosi
+05	#miso
+08	#motion
+*/
+
+/*
+Brief: spi_simulate_init_slave
+Input: None
+Output: None
+Return: None
+Brief: cs_gpio,sclk_gpio,mosi_gpio : input
+	miso_gpio : output
+*/
+spi_simulate_init_slave:
+	call spi_simulate_variable_release_slave
+	branch spi_simulate_gpio_config_slave
+
+spi_simulate_variable_release_slave:
+	arg mem_spi_simulate_read_byte_slave,contw
+	arg 53,loopcnt
+	call buffer_release
+	arg mem_spi_simulate_write_byte_slave,contw
+	arg 54,loopcnt
+	branch buffer_release
+
+buffer_release:
+	setarg 0
+buffer_release_loop:
+	istore 1,contw
+	loop buffer_release_loop
+	rtn
+	
+spi_simulate_gpio_config_slave:
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_config_input
+	fetcht 1,mem_spi_simulate_sclk_gpio
+	call gpio_config_input
+	fetcht 1,mem_spi_simulate_mosi_gpio
+	call gpio_config_input
+	fetcht 1,mem_spi_simulate_miso_gpio
+	call gpio_config_output
+	fetcht 1,mem_spi_simulate_motion_gpio
+	call gpio_config_output
+	branch spi_simulate_motion_disable
+
+spi_simulate_motion_enable:
+	fetcht 1,mem_spi_simulate_motion_gpio
+	branch gpio_out_inactive
+spi_simulate_motion_disable:
+	fetcht 1,mem_spi_simulate_motion_gpio
+	branch gpio_out_active
+	
+/*
+Brief: spi_simulate_read_byte_slave
+Input: rega: read length
+Output: mem_spi_simulate_read_byte_slave: read buffer
+Return: None
+Brief: when the cs_gpio is low level,slave reads data from master at the rising edge of the sclk gpio
+*/
+spi_simulate_read_byte_slave:
+	copy rega,pdata
+	store 1,mem_spi_simulate_read_length_slave
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nrtn true
+spi_simulate_read_byte_slave1:	
+	jam 0,mem_spi_simulate_read_byte_slave_temp
+	arg 8,loopcnt
+spi_simulate_read_byte_slave_loop:
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_read_byte_slave_end,true
+	
+	fetcht 1, mem_spi_simulate_sclk_gpio
+	call gpio_get_bit
+	branch spi_simulate_read_byte_slave_loop,true	
+	fetch 1,mem_spi_simulate_read_byte_slave_temp
+	lshift pdata,pdata
+	store 1,mem_spi_simulate_read_byte_slave_temp
+	fetcht 1, mem_spi_simulate_mosi_gpio
+	call gpio_get_bit
+	ncall spi_simulate_read_byte_or_one,true
+spi_simulate_read_byte_slave_loop1:	
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_read_byte_slave_end,true
+
+	fetcht 1, mem_spi_simulate_sclk_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_read_byte_slave_loop1,true
+	loop spi_simulate_read_byte_slave_loop
+	
+	fetcht 1,mem_spi_simulate_read_length_slave_temp
+	setarg mem_spi_simulate_read_byte_slave
+	iadd temp,contw
+	copy contw,regb
+	increase 1,temp
+	storet 1,mem_spi_simulate_read_length_slave_temp
+	fetch 1,mem_spi_simulate_read_byte_slave_temp
+	copy regb,contw
+	istore 1,contw
+
+	fetch 1,mem_spi_simulate_read_length_slave
+	increase -1,pdata
+	store 1,mem_spi_simulate_read_length_slave
+	nbranch spi_simulate_read_byte_slave1,blank
+	
+spi_simulate_read_byte_slave_loop2:	
+	fetcht 1, mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_read_byte_slave_loop2,true
+spi_simulate_read_byte_slave_end:	
+	jam 0,mem_spi_simulate_read_length_slave
+	jam 0,mem_spi_simulate_read_length_slave_temp
+	jam 0,mem_spi_simulate_read_byte_slave_temp
+	rtn
+
+spi_simulate_read_byte_or_one:
+	fetch 1,mem_spi_simulate_read_byte_slave_temp
+	or_into 1,pdata
+	store 1,mem_spi_simulate_read_byte_slave_temp
+	rtn
+
+
+/*
+Brief: spi_simulate_write_byte_slave
+Input: rega: write length;  write buffer:mem_spi_simulate_write_byte_slave;
+Output: None
+Return: None
+Brief: when the cs_gpio is low level,slave writes data to master at the falling edge of the sclk gpio
+*/
+spi_simulate_write_byte_slave:
+	copy rega,pdata
+	store 1,mem_spi_simulate_write_length_slave
+	jam 0,mem_spi_simulate_write_length_slave_temp
+	jam 0,mem_spi_simulate_write_byte_slave_temp
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nrtn true
+spi_simulate_write_byte_slave1:
+	fetcht 1,mem_spi_simulate_write_length_slave_temp
+	setarg mem_spi_simulate_write_byte_slave
+	iadd temp,contr
+	copy contr,regb
+	increase 1,temp
+	storet 1,mem_spi_simulate_write_length_slave_temp
+	copy regb,contr
+	ifetch 1,contr
+	store 1,mem_spi_simulate_write_byte_slave_temp
+	
+	arg 8,loopcnt
+spi_simulate_write_byte_slave_loop:
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_write_byte_slave_end,true
+	fetcht 1, mem_spi_simulate_sclk_gpio
+	call gpio_get_bit
+	branch spi_simulate_write_byte_slave_loop,true
+spi_simulate_write_byte_slave_loop1:
+	fetch 1,mem_spi_simulate_write_byte_slave_temp
+	store 1,mem_spi_simulate_write_byte_slave_temp_temp
+	and_into 0x80,pdata
+	beq 0x80,spi_simulate_set_miso_gpio_high
+	call spi_simulate_set_miso_gpio_low
+spi_simulate_write_byte_slave_loop2:
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_write_byte_slave_end,true
+	fetcht 1, mem_spi_simulate_sclk_gpio
+	call gpio_get_bit
+	nbranch spi_simulate_write_byte_slave_loop2,true	
+	fetch 1,mem_spi_simulate_write_byte_slave_temp_temp
+	lshift pdata,pdata
+	store 1,mem_spi_simulate_write_byte_slave_temp
+	loop spi_simulate_write_byte_slave_loop
+
+	fetch 1,mem_spi_simulate_write_length_slave
+	increase -1,pdata
+	store 1,mem_spi_simulate_write_length_slave
+	nbranch spi_simulate_write_byte_slave1,blank
+	
+spi_simulate_write_byte_slave_loop3:
+	fetcht 1,mem_spi_simulate_cs_gpio
+	call gpio_get_bit
+	branch spi_simulate_write_byte_slave_loop3,true
+spi_simulate_write_byte_slave_end:	
+	jam 0,mem_spi_simulate_write_length_slave_temp
+	jam 0,mem_spi_simulate_write_byte_slave_temp
+	jam 0,mem_spi_simulate_write_byte_slave_temp_temp
+	rtn
+	
+spi_simulate_set_miso_gpio_high:
+	fetcht 1,mem_spi_simulate_miso_gpio
+	call gpio_out_inactive
+	branch spi_simulate_write_byte_slave_loop2
+spi_simulate_set_miso_gpio_low:
+	fetcht 1,mem_spi_simulate_miso_gpio
+	branch gpio_out_active	
+
+/******************************simulate spi slave end**********************************/
+
+endif  //SPI_SIMULATE
+
+
+/****************************************key scan***************************************/
+keyscan_key_init:
+	fetch 2,mem_key_num_ptr
+	ifetch 1,pdata
+keyscan_key_init_next:
+	rtn blank
+	copy pdata,loopcnt
+//	copy contr,rega
+	fetch 2,mem_keyscan_ptr
+	increase 3,pdata	//mem_key_conf0_pin
+	copy pdata,rega
+keyscan_key_init_lp1:
+	ifetcht 1, rega
+	call gpio_config_input
+	increase KEY_CONF_STRUCT_LEN,rega
+	loop keyscan_key_init_lp1
+keyscan_key_init_end:
+	rtn
+	
+keyscan_scan_key:
+	fetch 2,mem_keyscan_ptr
+	increase 3,pdata	//mem_key_conf0_pin
+	copy pdata,rega
+//	arg mem_key_conf0_pin,rega
+	force 0,regb
+	jam 0,mem_key_value_temp
+keyscan_scan_key_lp1:
+	ifetcht 1, rega
+	call gpio_get_bit
+	bpatchx patch34_1,mem_patch34
+	fetch 2, mem_key_value_temp
+	copy regb,queue
+	qsetflag true,pdata
+	store 2, mem_key_value_temp
+	increase KEY_CONF_STRUCT_LEN,rega
+	increase 1,regb
+	fetch 2,mem_key_num_ptr
+	ifetch 1,pdata
+keyscan_scan_key_lp1_next:
+	ixor regb,null
+	nbranch keyscan_scan_key_lp1,zero
+	fetch 2,mem_key_value_temp
+	fetcht 2,mem_key_value
+	ixor temp,null
+	rtn zero
+	enable user
+	rtn
+
+keyscan_process_lpm_before:
+	fetch 2,mem_key_num_ptr
+	ifetch 1,pdata
+keyscan_process_lpm_before_next:
+	rtn blank
+	copy pdata,loopcnt
+	fetch 2,mem_keyscan_ptr 
+	increase 3,pdata	//mem_key_conf0_pin
+	copy pdata,rega
+keyscan_process_lpm_before_lp1:
+	ifetcht 1, rega
+	call gpio_set_wake_by_current_state
+	increase KEY_CONF_STRUCT_LEN,rega
+	loop keyscan_process_lpm_before_lp1
+keyscan_process_lpm_before_end:
+	rtn
+
+keyscan_key_process:
+	arg key_scan_timer,queue
+	call timer_check
+	nrtn blank
+	setarg 0x20
+	arg key_scan_timer,queue
+	call timer_init
+	disable user
+	call keyscan_process_lpm_before
+	bpatchx patch34_2,mem_patch34
+	fetch 2,mem_key_num_ptr
+	ifetch 1,pdata
+keyscan_key_process_next:
+	rtn blank
+	call keyscan_scan_key
+	nbranch lpm_button_clean_wake_lock,user
+	call lpm_button_get_wake_lock
+	disable user
+	fetch 2, mem_key_value_temp
+	store 2,mem_key_value_temp4
+	jam 0,mem_key_value_temp6
+	force 0,queue
+keyscan_key_lp1:
+	fetch 2, mem_key_value
+	rshift pdata,temp
+	storet 2,mem_key_value
+	and pdata,0x01,pdata
+	fetcht 2, mem_key_value_temp4
+	and temp,0x01,rega
+	rshift temp,temp
+	storet 2,mem_key_value_temp4
+	ixor rega,null
+	ncall keyscan_send_key_data,zero
+	fetch 2,mem_key_num_ptr
+	ifetch 1,pdata
+keyscan_key_lp1_next:
+	fetcht 1, mem_key_value_temp6
+	increase 1,temp
+	storet 1, mem_key_value_temp6
+	copy temp,queue
+	ixor queue,null
+	nbranch keyscan_key_lp1,zero
+	fetch 2,mem_key_value_temp
+	store 2, mem_key_value
+	rtn
+keyscan_send_key_data:
+	bpatchx patch34_3,mem_patch34
+	fetch 2,mem_keyscan_ptr
+	increase 1,pdata
+	ifetch 2,pdata
+	branch callback_func
+
+
+/*************************************pwm*************************************/
+
+//rega:clk select(0:system clk; 1:system clk undivied; 2:lpo)
+/*rega:clk select
+			0x00:select system clock 12M;
+			0x40:select undivied system clock 24M/48M;
+			0x80:select lpo clock:33K
+*/
+pwm_init:
+	hfetch 1,core_clksel
+	ior rega,pdata
+	hstore 1,core_clksel
+	hfetch 2,core_clkoff
+	set0 CLOCK_OFF_PWM,pdata
+	hstore 2,core_clkoff
+	nop 100
+	rtn
+
+/*	typedef struct
+*	{
+*		uint8 gpio_num
+*		uint8 pwm_channel
+*		uint24 frequency
+*		uint8 duty_cycle   //0-100
+*	}PWM_Style;
+	addr: mem_pdatatemp
+*/
+pwm_out_set:
+	fetcht 3,mem_pdatatemp+2
+	setarg PWM_12MHZ
+	idiv temp
+	call wait_div_end
+	quotient temp
+	fetch 1,mem_pdatatemp+5
+	imul32 temp,pdata
+	div pdata,100
+	call wait_div_end
+	quotient rega
+	copy temp,pdata
+	isub rega,regb	
+	fetch 1,mem_pdatatemp+1
+	call pwm_duty_cycle_set
+	fetch 1,mem_pdatatemp
+	branch pwm_enable
+
+//rega:pcnt ;regb:ncnt ;pdata:pwm channel select
+pwm_duty_cycle_set:
+	beq 0,pwm_pwm0_duty_set
+	beq 1,pwm_pwm1_duty_set
+	beq 2,pwm_pwm2_duty_set
+	beq 3,pwm_pwm3_duty_set
+	beq 4,pwm_pwm4_duty_set
+	beq 5,pwm_pwm5_duty_set
+pwm_pwm0_duty_set:
+	arg core_pwm_pcnt0,contw
+	branch pwm_set_pncnt
+pwm_pwm1_duty_set:
+	arg core_pwm_pcnt1,contw
+	branch pwm_set_pncnt
+pwm_pwm2_duty_set:
+	arg core_pwm_pcnt2,contw
+	branch pwm_set_pncnt
+pwm_pwm3_duty_set:
+	arg core_pwm_pcnt3,contw
+	branch pwm_set_pncnt
+pwm_pwm4_duty_set:
+	arg core_pwm_pcnt4,contw
+	branch pwm_set_pncnt
+pwm_pwm5_duty_set:
+	arg core_pwm_pcnt5,contw
+	branch pwm_set_pncnt
+pwm_set_pncnt:
+	copy rega,pdata
+	istore 2,contw
+	copy regb,pdata
+	istore 2,contw
+	rtn
+
+
+//pdata:gpio select
+pwm_enable:
+	enable user
+	branch pwm_gpio_set
+pwm_disable:
+	disable user
+pwm_gpio_set:
+	beq 4,pwm_gpio4_set
+	beq 5,pwm_gpio5_set
+	beq 27,pwm_gpio27_set
+	beq 28,pwm_gpio28_set
+	beq 3,pwm_gpio3_set
+	beq 8,pwm_gpio8_set
+	beq 20,pwm_gpio20_set
+	beq 21,pwm_gpio21_set
+	beq 22,pwm_gpio22_set
+	beq 23,pwm_gpio23_set
+	rtn
+
+
+pwm_gpio4_set:	//pwm 0
+	arg 6,queue
+	branch pwm_one_set_select
+pwm_gpio5_set:	//pwm 1
+  	arg 7,queue
+	branch pwm_one_set_select
+pwm_gpio27_set:	//pwm 2
+  	arg 8,queue
+	branch pwm_one_set_select
+pwm_gpio28_set:	//pwm 3
+	arg 9,queue
+	branch pwm_one_set_select
+pwm_gpio3_set:	//pwm 4
+ 	arg 10,queue
+	branch pwm_one_set_select
+pwm_gpio8_set:	//pwm 5
+  	arg 11,queue
+	branch pwm_one_set_select
+pwm_gpio20_set:	//pwm 0
+  	arg 12,queue
+	branch pwm_tw0_set_select
+pwm_gpio21_set:	//pwm 1
+  	arg 13,queue
+	branch pwm_tw0_set_select
+pwm_gpio22_set:	//pwm 2
+   	arg 14,queue
+	branch pwm_tw0_set_select
+pwm_gpio23_set:	//pwm 3
+    	arg 15,queue
+	branch pwm_tw0_set_select
+
+pwm_set_select:
+	hfetch 2,core_gpio_sel1
+	qsetflag user,pdata
+	hstore 2,core_gpio_sel1
+	copy rega,queue
+	hfetch 1,core_gpio_key2
+   	qsetflag user,pdata
+   	hstore 1,core_gpio_key2
+	rtn
+
+pwm_one_set_select:
+	add queue,-4,rega
+	branch pwm_set_select
+
+pwm_tw0_set_select:
+	add queue,-10,rega
+	branch pwm_set_select
+
+
+	
Index: rom/rom.format
===================================================================
--- /branch/USB/dongle_sdk/rom/rom.format	(revision 0)
+++ /branch/USB/dongle_sdk/rom/rom.format	(working copy)
@@ -0,0 +1,8347 @@
+
+	width = 32
+	const length = 12000
+
+	/* ========= memory ============== */
+memalloc(
+/* 00-0f most frequently used area  */
+1 mem_le_adv_transmit
+1 mem_le_adv_waitcnt
+1 mem_le_adv_rcv
+1 mem_le_req_rcv
+1 mem_le_scanrsp_rcv
+1 mem_le_conn_rcv
+
+1 mem_inquiryscan_waitcnt
+1 mem_inquiryscan_rcvcnt
+1 mem_pagescan_waitcnt
+1 mem_pagescan_rcvcnt
+1 mem_pagescan_rcvfhscnt
+1 mem_slave_rcvcnt
+1 mem_page_transmit
+1 mem_page_rcv
+1 mem_page_rcv_fhs
+1 mem_master_rcvcnt
+
+/* 10-1f debug area */
+1 mem_fhs_wait_counter
+1 mem_newconnto_counter
+1 mem_inquiry_transmit
+1 mem_inquiry_rcv
+1 mem_fw_ver
+1 mem_current_context
+1 mem_le_ch_mapped
+1 mem_last_freq
+1 mem_rssi
+1 mem_rx_type
+2 mem_rx_hec_err
+2 mem_rx_crc_err
+2 mem_context_ptr
+8 mem_display
+8 mem_bcd
+
+		/* context swappable area */
+1 mem_state
+1 mem_mode
+2 mem_tsniff
+4 mem_sniff_anchor
+6 mem_clk_offset
+2 mem_rx_window
+3 mem_plap
+1 mem_puap
+2 mem_pnap
+1 mem_conn_handle
+1 mem_arq
+1 mem_lmp_to_send
+1 mem_lmi_opcode
+1 mem_lmo_reason
+1 mem_op
+1 mem_state_map
+4 mem_supervision_timer
+2 mem_supervision_to
+1 mem_name_offset
+1 mem_key_size
+1 mem_conn_sm
+12 mem_aco
+16 mem_kc
+1 mem_conn_timer
+1 mem_sniff_attempt
+1 mem_sniff_timeout
+2 mem_dsniff
+1 mem_amaddr
+1 mem_lmo_opcode1
+1 mem_lmi_opcode1
+1 mem_lmo_reason1
+1 mem_lmo_tid1
+1 mem_lmo_opcode2
+1 mem_lmi_opcode2
+1 mem_lmo_reason2
+1 mem_lmo_tid2
+
+3 mem_hci_version
+2 mem_acl_pktlen
+1 mem_sco_pktlen
+2 mem_acl_pktcnt
+2 mem_sco_pktcnt
+
+1 mem_current_sniff_attempt
+1 mem_current_sniff_timeout
+1 mem_sniff_timeout_temp
+1 mem_nfreq_index_inq
+1 mem_nfreq_index_page
+1 mem_ninqy_index
+1 mem_fhs_misc
+
+
+
+/* lpo related */
+4 mem_subsniff_instant
+1 mem_subsniff_rate
+2 mem_subsniff_tcmax
+1 mem_subsniff_tsniff
+1 mem_lpm_adjust
+6 mem_sync_clke
+1 mem_lpm_current_mult
+4 mem_gpio_wakeup_low
+4 mem_gpio_wakeup_high
+	
+
+/* sco & esco */
+1 mem_air_mode
+1 mem_sco_asso_handle
+2 mem_sco_handle
+1 mem_esco_desco
+1 mem_esco_type
+1 mem_neogotiation_state
+1 mem_saved_amaddr
+1 mem_esco_arq
+1 mem_esco_saved_arq
+30 mem_sco_obuf
+30 mem_sco_ibuf
+1 mem_sco_poll
+
+
+
+//page
+1 mem_npage_index
+1 mem_page_mode
+4 mem_page_clk
+
+
+/* test related */
+2 mem_tst_pktcnt_sync
+2 mem_tst_pktcnt_hec
+2 mem_tst_pktcnt_crc
+2 mem_tst_pktcnt_dmh
+3 mem_tmp_buffer_head
+80 mem_tmp_buffer
+
+
+1 mem_tester_emulate
+0 mem_temp_payload
+1 test_mode_scenario
+1 test_mode_hopping_mode
+1 test_mode_tx_freq
+1 test_mode_rx_freq
+1 test_mode_power_mode
+1 test_mode_poll_period
+1 test_mode_packet_type
+2 test_mode_data_length
+1 mem_test_mode_old_debug_config
+1 mem_tester_cnt
+
+
+/*temp mem*/
+1 mem_temp_am_addr
+1 mem_temp_arq
+
+//
+2 mem_len
+4 mem_clkn_bt
+4 mem_clke_bt
+4 mem_dpll_clkn
+1 mem_connection_options
+
+1 mem_nameres_cnt
+2 mem_txptr
+2 mem_slot_offset
+
+//extm
+1 extm_fhs_misc
+1 extm_newconn_am_addr
+3 extm_class
+3 extm_lap
+1 extm_uap
+3 extm_nap
+
+
+//debug
+1 mem_debug_config
+1 mem_lch_code
+1 mem_fhs_am_addr
+2 mem_dpll_error
+1 mem_select_list_item
+0 mem_temp_reconn_record
+1 mem_record_bt_mode
+6 mem_temp_lap
+2 mem_list_item_ptr
+
+100 mem_eir
+)
+
+memalloc(
+
+/* load code */
+1 mem_ucode_status
+2 mem_otp_ucode_flag
+1 mem_spid_tbuf				/* spid buf: 03 addr[23:16] addr[15:8] addr[7:0] */
+0 mem_iicd_tbuf				/* iicd buf: iic_adr addr[15:8] addr[7:0] iic_adr */
+1 mem_addr_hi
+1 mem_addr_mi
+1 mem_addr_lo
+1 mem_iicd_addr
+4 mem_spid_rbuf
+2 mem_ucode_buf
+2 mem_ucode_len
+2 mem_sched_addr
+2 mem_ucode_ptr
+16 mem_ucode_keybuf
+18 mem_check_plap_temp
+
+1 mem_reconnect_flag
+1 mem_switch_fail_master_count
+1 mem_app_evt_timer_count
+
+)
+
+memalloc(
+2 mem_init_cnt
+)
+
+xmemalloc(
+/* patch enable 0x4000-0x403f  */
+
+1 mem_patch00
+1 mem_patch01
+1 mem_patch02
+1 mem_patch03
+1 mem_patch04
+1 mem_patch05
+1 mem_patch06
+1 mem_patch07
+1 mem_patch08
+1 mem_patch09
+1 mem_patch0a
+1 mem_patch0b
+1 mem_patch0c
+1 mem_patch0d
+1 mem_patch0e
+1 mem_patch0f
+1 mem_patch10
+1 mem_patch11
+1 mem_patch12
+1 mem_patch13
+1 mem_patch14
+1 mem_patch15
+1 mem_patch16
+1 mem_patch17
+1 mem_patch18
+1 mem_patch19
+1 mem_patch1a
+1 mem_patch1b
+1 mem_patch1c
+1 mem_patch1d
+1 mem_patch1e
+1 mem_patch1f
+1 mem_patch20
+1 mem_patch21
+1 mem_patch22
+1 mem_patch23
+1 mem_patch24
+1 mem_patch25
+1 mem_patch26
+1 mem_patch27
+1 mem_patch28
+1 mem_patch29
+1 mem_patch2a
+1 mem_patch2b
+1 mem_patch2c
+1 mem_patch2d
+1 mem_patch2e
+1 mem_patch2f
+1 mem_patch30
+1 mem_patch31
+1 mem_patch32
+1 mem_patch33
+1 mem_patch34
+1 mem_patch35
+1 mem_patch36
+1 mem_patch37
+1 mem_patch38
+1 mem_patch39
+1 mem_patch3a
+1 mem_patch3b
+1 mem_patch3c
+1 mem_patch3d
+1 mem_patch3e
+1 mem_patch3f
+
+	/* 3 device contexts  */
+80 mem_context
+1 mem_current_amaddr
+1 mem_lpm_mode
+1 mem_device_option
+1 mem_scan_mode
+4 mem_last_clkn
+
+	/* parameters */
+8 mem_features
+3 mem_lap
+1 mem_uap
+2 mem_nap
+1 mem_npage
+3 mem_glap
+3 mem_class
+2 mem_iscan_window
+2 mem_iscan_interval
+2 mem_pscan_window
+2 mem_pscan_interval
+2 mem_page_interval
+2 mem_page_window
+2 mem_page_to
+2 mem_inq_window
+1 mem_fcomp_mul
+1 mem_fcomp_div
+2 mem_rx_window_init
+2 mem_rx_window_sniff
+2 mem_rf_init_ptr
+
+	/* connection related */
+1 mem_last_type
+1 mem_last_type_esco
+1 mem_last_type_saved
+2 mem_retransmission_cnt
+4 mem_next_btclk
+
+1 mem_rf_rccal
+1 mem_handle_num
+1 mem_max_slot
+1 mem_eir_enable
+
+/* AFH related */
+4 mem_afh_instant
+2 mem_afh_error_total
+1 mem_afh_cfg
+1 mem_afh_new_mod
+5 mem_afh_map_lo
+5 mem_afh_map_hi
+1 mem_afh_used
+2 mem_afh_index
+11 mem_afh_map_new
+80 mem_afh_map
+4 mem_afh_timer
+10 mem_afh_classify_channel_map
+
+
+	/* lpm related */
+2 mem_chip_functions
+2 mem_lpm_wake_lock
+2 mem_lpm_interval
+1 mem_lpm_overhead
+1 mem_lpm_hibernate_switch
+1 mem_esco_addr
+1 mem_sniff_unint_lost
+1 mem_ptt
+4 mem_sleep_counter   //should be 0x41fc in REVC
+4 mem_sleep_counter_all
+6 mem_sleep_clkn
+3 mem_sniff_rcv
+3 mem_sniff_lost
+3 mem_clks_per_lpo
+
+1 mem_lpm_mult
+1 mem_lpm_mult_timeout
+1 mem_lpm_mult_cnt
+
+/* 8139-813b lpm_ctrl[31:12] */
+3 mem_lpm_config				
+
+1 mem_lpm_xtalcnt
+1 mem_lpm_buckcnt
+1 mem_lpm_ldocnt
+1 mem_lpm_isogate
+1 mem_lpm_isogate_final
+16 mem_saved_gpio	// should be 0x421e in REVC
+3 mem_saved_gsel
+8 mem_saved_mark
+1 mem_saved_spidctrl
+2 mem_patch_ptr
+2 mem_patch_len
+
+32 mem_timers
+
+/*LINK KEY*/
+1 mem_link_key_exists
+16 mem_link_key
+
+
+/* HCI */
+1 mem_hci_cmd
+1 mem_hci_conn_handle
+3 mem_hci_plap
+1 mem_hci_puap
+2 mem_hci_pnap
+
+/*Peripherals*/
+1 mem_uartd_rxitems_got_data
+1 mem_uartd_rxitems_threshold
+2 mem_uartd_rx_timeout
+1 mem_loadcode_times
+
+1 mem_tx_lch
+2 mem_tx_len
+
+1 mem_tx_power
+
+1 mem_context_number
+1 mem_250k_freq_enable
+1 mem_rf_init_data
+)
+
+(//bluetooth tx power
+0 TX_POWER_0DB
+1 TX_POWER_3DB
+2 TX_POWER_5DB
+3 TX_POWER_f3DB
+4 TX_POWER_f5DB
+
+0x20 TX_POWER_PAIR
+)
+
+
+0x3b17 rom_lpm_sleep
+0x59e0 rom_save_ucode
+
+0x4219 rom_mem_lpm_xtalcnt
+0x423b rom_mem_patch_ptr
+0x423d rom_mem_patch_len
+
+0x5b1a rom_otpd_read_data
+0x5ada rom_otp_write
+	/* context */
+(
+0x01 coffset_mode
+0x02 coffset_tsniff
+0x04 coffset_sniff_anchor
+0x08 coffset_clk_offset
+0x0e coffset_rx_window
+0x10 coffset_plap
+0x16 coffset_conn_handle
+0x17 coffset_arq
+	/* 3.0 only */
+0x18 coffset_lmp_to_send
+0x1b coffset_op
+0x1c coffset_state_map
+	/* le only */
+0x18 coffset_le_ch
+0x19 coffset_le_hop
+0x1a coffset_le_event_cnt
+
+80 context_size
+3 context_num
+)
+
+(
+0 lpm_flag_wake
+1 lpm_flag_loadcode
+)
+
+/* ========= parameters ============== */
+(
+0x0050 param_newconn_arq
+0x0007 param_esco_addr
+0x0010 param_conn_handle
+0x01f0 param_conn_handle_comp
+0x0020 param_newconnto
+0x0008 param_pagerespto
+0x0a00 param_snooze_setup_orig
+0x5353 param_snooze_ahead_orig
+0x00ff param_ninquiry
+0x2000 param_page_to
+0x0005 param_max_slot
+0x0010 param_sco_poll
+
+/* 6Mhz clock setting */
+/* 12Mhz clock setting */
+0x0e43 param_tx_setup
+0x09d0 param_rx_setup_earlier
+0x0600 param_rf_setup
+0x03bb param_clke_cal
+0x0600 param_conn_access 
+0x0800 param_conn_access_wider
+0x0500 param_pll_setup		// 120 is minimum
+0x0d00 param_rx_setup	// 114us before sync
+2000 param_dpll_start_delay
+
+110 param_lpm_fix
+10 param_lpo_extra
+200 param_lpm_adjmax
+
+-1 param_hibernate_clks
+3000 param_chgpump_delay
+
+3 param_featrue_ssp
+0x0101 param_lmpext_ssp_enable
+339 param_acl_pktlen
+30   param_sco_pktlen
+1     param_acl_pktcnt		/*buffer acl pkt cnt*/
+7     param_sco_pktcnt
+
+
+0x8fffff param_features0
+0x9d83fe param_features1  // not support afh
+0x8359     param_features2
+0x000033 param_unap
+0x001177 param_lap
+0x9e8b33 param_glap
+0x002540 param_class//0x180208 //0x002580//402500//240404
+0x12e904 param_hci_version
+0x000a04 param_lmp_version//0x0a04
+0x000a06 param_lmp_version0
+0x12e9 param_lmp_subversion
+0x0012 param_tisw
+0x0012 param_tpsw
+0x1000 param_tisi
+0x0800 param_tpsi
+0x0020 param_page_window
+0x0020 param_inq_window
+0x1c80 param_supervision_to
+39 param_fcomp_div
+2 param_fcomp_mul
+6     param_name_len
+0x535442 param_name
+0x344950 param_name1
+
+
+)
+
+/* ======= packet types  ========= */
+(
+0x0      type_null    
+0x1      type_poll   
+0x2      type_fhs    
+0x3      type_dm1    
+0x4      type_dh1    
+0x5      type_hv1    
+0x6      type_hv2    
+0x7      type_hv3    
+0x8      type_3dh1     
+0x9      type_aux1   
+0xa      type_dm3    
+0xb      type_dh3    
+0xe      type_dm5    
+0xf      type_dh5    
+0x10     type_id
+0x11     type_shutdown
+0x13     type_lmp
+)
+
+/* ========== flag[6] =============== */
+(
+0        always        /* always 1 */
+1        true          /* set/rstn by verify,compare,icompare (true) */
+2        positive      /* set/rstn by all alu operations (opcode = 0x03,0x13,0x0f,0x1f), if alu output >= 0 */
+3        timeout       /* read only, the timeout from timers */
+5        zero          /* set/rstn by all alu operations (opcode = 0x03,0x13,0x0f,0x1f), if alu output == 0 */
+6        crc_failed    /* level, cleared by hop_start */
+7        enable_white  /* outside mux decide whether to load bt_clk or response_X */
+8        enable_parity /* level */
+9        enable_crc    /* level */
+10       enable_hec    /* level */
+11       decode_fec1   /* level */
+12       decode_fec2   /* level */
+13       decode_fec0   /* level */
+14       encrypt       /* level */
+15       crc16       /* for caculate ccitt crc16 */
+16       swfine	/* =0 stop_watch count based on oneslot =1 on 1 clock */
+20       rqst_freq    /* pulse, to start calculating frequency */
+21       recalc        /* pulse, to recalculate the fhs_parity */
+22       init_encrypt  /* pulse, issued to initialize encrption */
+23       mhalfbnd    /* half slot boundary of clke_rt, or when clke_bt[0] toggles */
+24       sync          /* sync found as a result of correlation,set/rstn by correlate opcode */
+25       user10    /* user10 */
+26       kc_p_activate  /* pulse to recalc the kc_p */
+27       encode_fec1   /* level */
+28       encode_fec2   /* level */
+29       encode_fec0   /* level */
+30       packet_end    /* pulse */
+32       is_tx         /* level */
+33       is_rx         /* level */
+34       halfslot     /* pulse, read only, when clkn_bt[0] toggles */
+35       oneslot      /* pulse, read only, when clkn_bt[1] toggles */
+36       mslotbnd     /* pulse, read only, when clke_bt[1] toggles */
+37       expire       /* level, read only, when selected clock source exceed timeup value */
+38       meet         /* level, read only, when selected clock source meet timeup value */
+39       tx_clear     /* level, read only, indicate tx pipe is cleared */
+40       user         /* user0 */
+41       master        /* user1 */
+42       slave2         /* user2 */
+43       wake           /* user3 */
+44       user2        /* user4 */
+45       match         /* user5 */
+46       attempt        /* user6 */
+47       user3          /* user7 */
+48       clknt         /* user8 */
+49	   user7 	/* user9 */
+50       synchronize   /* synchronize lpo and regular version of the clock */
+51       lpo_edge  /* read only, 3 clocks after risling edge of lpo clock */
+52       blank         /* C0 only, means pdata == 0 */
+53       modone          /* set divide operation is done */
+54       le		/* bluetooth 4.0 LE enable */
+55       aes_ready	/* set when aes is ok */
+63       never         /* read only, always 0 */
+)
+
+default flag = always
+
+/* ========== reg[6] =============== */
+(
+0        mark   /* for keeping strobes, more permanent */
+1        type   /* save and verify during rx */     /* rw */
+2        temp   /* general purpose register, 64 bits */
+3        contru  /* contr uart */
+4        am_addr      /* verify during rx, read and send during tx */ /* ro */
+5        contw        /* last mem_addr during write */
+6        contr        /* last mem_addr during read */
+7        queue    /* the index of qset*,qisolate* commands, ie, if queue = 3, qset/qisolate operate on bit3 */
+8        debug    /* can be wired out for observation */
+9        access   /* the 72 bit access word */
+10       contwu   /* contw uart */
+11       timeup        /* when does certain counter expire */
+12       pwindow       /* bit 71-61 of pdata; because on rx, bits shifts in from 71 down */
+13       fhs_parity    /* re-gernated based on bt_adr( {nap,uap,lap} ) when recalc flag is pulsed */
+14       white_init    /* init value of the whitening */
+15       crc24_init        /* init crc24 lfsr, 24 bits */
+16       interrupts    /* set interrupts, 40 bits */
+17       rega          /* general purpose register, 32 bits */
+18       regb          /* general purpose register, 32 bits */
+19       regc          /* general purpose register, 17 bits */
+20       regab         /* concat of {rega,regb}, thus 64 bits */
+21       radio_ctrl   /* radio i/f direct i/o ctrl, check following "radio_ctrl" section */
+21       ctrl_reg     /* 2023 and after */
+22       jtag_addr    /* load jtag address field, lsb */
+23       freq_index   /* 7 bit read only */
+24       jtag_data    /* wdata to and rdata from jtag */
+25       clkn              /* {clkn_bt, clkn_rt} */
+26       clke              /* {clke_bt, clke_rt} */
+27       stop_watch
+28       fhs_misc   /* SR, SP, pscan mode */
+29       fhs_class  /* class field in fhs */
+30       fhs0   /* read only, bit 0-71 of fhs word */
+31       fhs1   /* read only, bit 72-142 of fhs word */
+32       bt_adr /* r/w, the bt_addr to access gen and freq hopping, contain only lap and uap */
+33       bt_clk /* r/w, the bt_clk for freq hopping */
+34       clkn_bt  /* read only, native bluetooth clock, free running 3.2KHz  or controlled by RTHALFSLOT register */
+35       clkn_rt  /* read only, native realtime clock, free running 12MHz, count from 0-3749, or controlled by RTHALFSLOT register */
+36       freq_mode
+/* wire even_train    = freq_mode[4];    // odd even train                            */
+/* wire conn_mode     = 3;    // connection                                           */
+/* wire iqpgscan_mode = 2;    // slave in inquiry and page (not response)             */
+/* wire iqpgresp_mode = 1;    // slave in inquriy and page (response only)            */
+/* wire inqypage_mode = 0;    // master in inquiry and page(response or not response) */
+37       xin   /* x parameter, read only */
+38       N_tx_slot /* the N factor in equations for Xi,Xp,Xprm,Xprs */
+39 	   auxcnt
+40       clke_bt  /* r/w,  external bluetooth clock , free running 3.2KHz or controlled by RTHALFSLOT register */
+41       clke_rt  /* r/w,  external realtime clock, , free running 12MHz, count from 0-3749, or controlled by RTHALFSLOT register */
+43       host_mode         /* generic stuff for kick starts */
+44       lap
+45       uap
+46       nap         
+47       regext		/* r/w extended 12x32bit registers,  indexed by regext_index */
+48       alarm             /* r/w, lpo wake up time, this is also how lpo and current clock keep sync */
+49       lpo_time          /* read only, this is the value to be copied back to clkn/clke after wakeup */
+50       kc_ls             /* secret key,                71: 0 */
+51       kc_ms             /* secret key,               127:72 */
+52       g1l               /* encryption length                */
+53		mask3ff		/* for mask 0x3ff operation */
+54       aes_ctrl		
+56       regext_index   /* index of regext */
+57	     loopcnt
+58      stack			/* current return address */
+59       stack_ptr		/* stack depth */
+61         pc /* direct goto */
+62       null              /* to nowhere */
+63       pdata /* the shift register */
+)
+default reg = pdata
+
+/* regext_index */
+(
+0 regidx_data
+4 regidx_key
+8 regidx_xor
+12 regidx_result
+)
+/* ========== radio_ctrl========= */
+(
+0 TXGFSK
+1 PSK
+2 PSK3M
+3 RESET
+)
+/* assign BPWR = radio_ctrl[0]; */
+/* assign PARAMP = radio_ctrl[1]; */
+/* assign XTALPU = radio_ctrl[2]; */
+/* assign SYNTHPU = radio_ctrl[3]; */
+/* assign TXPU = radio_ctrl[4]; */
+/* assign RXPU = radio_ctrl[5]; */
+/* assign SLCTRL = radio_ctrl[6]; */
+/* assign XTALSEL_MUX_SEL = radio_ctrl[7] */
+
+
+/* =========== destination[4] ============== */
+(
+0 bucket
+1 rxf
+2 back
+3 mod
+)
+default dest = bucket
+
+/* =========== source[4] ============= */
+(
+1 txf
+3 demod
+)
+default source = 0
+
+
+/* ============== mark ============= *//*0 - 47 */
+(
+
+0  mark_fhs_eir  
+1  mark_rxbuf_inuse
+2  mark_tx_l2cap
+3  mark_switch_initiated
+4  mark_accept_switch
+5  mark_loopback
+7  mark_esco
+8  mark_esco_rxok
+9  mark_context
+10 mark_am_addr_broadcast
+11 mark_fhs_already_good
+12 mark_page_trainb
+13 mark_lpm_mult_enable
+14 mark_usb_flag
+15 mark_old_packet
+16 mark_longpacket
+17 mark_testmode
+18 mark_ar2
+19 mark_h5tx_rp
+20 mark_h5tx_crc	
+21 mark_h5tx_retransmit
+22 mark_h5rx_pstart
+23 mark_h5_sync
+24 mark_h5_reinit
+28 mark_inquiry_on
+29 mark_inquiry_state
+30 mark_inquiry_trainb
+31 mark_periodical_diac
+32 mark_all_diac
+33 mark_slave_in_rand_accepted
+34 mark_reconn_recieve_switch
+35 mark_isstr
+36 mark_loadcode
+37 mark_ext_patch
+38 mark_24g
+39 mark_24g_conext
+40 mark_eeprom_size
+// REVAB:max 35, REVC:max 63
+41 mark_ble_tx_md
+42 mark_ble_rx_md
+43 mark_otp_encrypt
+44 mark_first_packet
+45 mark_role_switch_receive_fhs
+
+)
+
+(
+1 reload_type_otp
+2 reload_type_spi
+3 reload_type_iic
+)
+
+
+/* ============== soft timers ============== */
+(
+0 le_adv_interval_timer
+1 inquiry_length_timer
+2 le_scan_interval_timer
+3 page_length_timer
+4 iscan_interval_timer
+5 pscan_interval_timer
+6 switch_wait_timer
+7 enpt_delay_timer
+8 page_interval_timer
+9 key_scan_timer
+10 smp_pairing_timer
+11  ui_led_blink   //led timer 可扩展
+12  ui_led_blink1
+13 ui_led_blink2
+
+)
+
+(
+1 hci_cmd_inquiry
+2 hci_cmd_inquiry_cancel
+3 hci_cmd_remote_name_req
+4 hci_cmd_remote_feature_req
+5 hci_cmd_create_conn
+6 hci_cmd_disconn
+7 hci_cmd_accept_conn
+8 hci_cmd_reject_conn
+9 hci_cmd_pair
+10 hci_cmd_nopair
+11 hci_cmd_linkkey
+12 hci_cmd_nokey
+13 hci_cmd_auth
+14 hci_cmd_stopencrypt
+15 hci_cmd_startencrypt
+16 hci_cmd_setup_sco
+17 hci_cmd_disconn_sco
+18 hci_cmd_in_sniff
+19 hci_cmd_exit_sniff
+20 hci_cmd_remote_version_req
+21 hci_cmd_remote_ext_features_req
+22 hci_cmd_io_cap
+23 hci_cmd_role_discovery
+24 hci_cmd_role_switch
+25 hci_cmd_accept_with_switch
+26 hci_cmd_detach
+27 hci_cmd_le_create_conn
+28 hci_cmd_accept_sco_conn
+80 hci_cmd_wait_remote_feature
+81 hci_cmd_wait_remote_ext_feature
+82 hci_cmd_wait_remote_name
+)
+
+
+
+/* ============== debug ============= */
+(
+0 debug_neg_skew
+1 debug_bitbucket
+2 debug_dont_clear_got_tx
+3 debug_scatter_enabled
+4 debug_tx_fixed_freq
+5 debug_rx_fixed_freq
+6 debug_tx_pattern
+)
+
+/* ============== tester_emulator ============= */
+(
+0 tester_fixed_flow
+1 tester_fixed_flow_polarity
+2 tester_change
+3 tester_exit
+4 tester_pattern_test
+5 tester_whitening_change
+6 tester_fixed_freq
+7 tester_no_whitening
+)
+
+/* ============== mode ==========*/
+(
+0 mode_le
+1 mode_master
+2 afh_enable
+3 afh_change
+4 send_sco_when_slave
+5 first_seqnx
+)
+
+/* ============== state_map ==========*/
+(
+0 smap_lmptidinit
+1 smap_lmptid
+2 smap_encryption
+3 smap_name_res
+4 smap_name_req
+5 smap_edr
+6 smap_rxlmp
+7 smap_rxl2cap
+)
+(
+0 state_inconn
+1 state_insniff
+2 state_insco 
+3 state_inpage
+4 state_conn_comp
+5 state_init_seq
+6 state_combkey
+7 state_linkkey
+)
+(
+0 op_send_sres
+1 op_auth_req
+2 op_inrand_req
+3 op_disconn
+4 op_stop_enc
+5 op_start_enc
+6 op_txl2cap
+7 op_pkt_comp
+)
+
+
+/* ============== arq [3] ================ */
+(
+0 flow
+1 arqn
+2 seqn
+3 wack
+4 flowx              /* out */  /* not really in memory */
+5 arqnx              /* out */
+6 seqnx              /* out */
+7 bcast1             /* first broadcast received */
+)
+
+/* arq          {flow,arqn,seqn}, read/write */
+/* [0] flow r/w  acl full status of the other, store during rx, checked during tx */
+/* [1] arqn r/w  ack of the other during rx (ack tx fifo),                        */
+/* [2] seqn r/w  seqn of the other, check during rx                               */ 
+/* arqx         {flowx,arqnx,seqnx} */
+/* [0] flowx r/o flow back to the other, 1 alow send, 0 not to send, read only tx */
+/* [1] arqnx r/w ack to the other, set by rx, send back on tx                     */
+/* [2] seqnx r/w toggled by arqn, to be send during tx                            */ 
+
+(
+0 llid0
+1 llid1
+2 nesn
+3 sn
+4 md
+5 wak
+)
+
+/* AFH flags */
+(
+0 AFH_CFG_ON
+1 AFH_CFG_TIMER
+2 send_lmp_set_afh
+3 AFH_CFG_REPORT_MODE
+4 AFH_CFG_MASTER_SENT_REQ
+)
+
+/* LLID CODE */
+(	
+1 LLID_L2CAP_CONT
+2 LLID_L2CAP_START
+3 LLID_LMP
+)
+
+/* ============== master_state ==========*/
+(
+0  master_in_idle
+1  master_in_inquiry
+2  master_in_page
+10 master_in_becoming_slave
+15 master_in_conn
+)
+(
+0 newrev_feature_bettx
+1 newrev_feature_betplltx
+2 newrev_feature_skip_retransmit
+3 newrev_feature_init_radio_after_sleep
+4 newrev_feature_no_lpolog
+)
+/*************mem_pincode_state****************/
+(
+0 pincode_state_ilde
+1 pincode_state_wait_pincode
+2 pincode_state_pincode_ready
+)
+
+
+// lpm_write
+(
+1 lpmreg_sel_ctrl
+2 lpmreg_sel_ctrl2
+4 lpmreg_sel_gpiolow
+8 lpmreg_sel_gpiohigh
+16 lpmreg_sel_counter
+)
+
+//scan_mode
+(
+0 inq_scan_mode
+1 page_scan_mode
+2 page_inq_enable
+)
+//mem_neogotiation_state
+(
+ 0 default_neogotiation_state
+ 1 prarm_neogotiation
+)
+
+//mem_lpm_wake_lock
+(
+0 wake_lock_ble_rx
+1 wake_lock_ble_tx
+
+3 wake_lock_key_press
+4 wake_lock_ble_tx_patch
+5 wake_lock_uart_tx
+6 wake_lock_uart_rx
+7 wake_lock_button
+8 wake_lock_cmd
+9 wake_lock_app
+10 wake_lock_lmp_tx
+11 wake_lock_lmp_rx
+12 wake_lock_l2cap_tx
+13 wake_lock_l2cap_rx
+14 wake_lock_ipc_c512bt
+15 wake_lock_ipc_bt2c51
+
+)
+
+(
+0 bt_disabled
+1 ble_disabled
+2 module_disable
+
+)
+
+(
+0x33  REC_3_MODE
+0x34  REC_4_MODE
+0x35  REC_4_MODE_STATIC_ADDRESS
+0x36  REC_4_MODE_RANDOM_RESOLVABLE_PRIVATE_ADDRESS
+0x37  REC_4_MODE_RANDOM_NON_RESOLVABLE_PRIVATE_ADDRESS
+)
+
+
+//sniff UART_TX UART_RX
+(
+6 UART_WAKEUP_TX
+7 UART_WAKEUP_RX
+)
+
+
+(
+0 P24G_SM_PAIRING_SUCC
+1 P24G_SM_PAIRING_REQUEST
+2 P24G_SM_PAIRING_WAIT_ADDR
+3 P24G_SM_PAIRING_COMPLETE
+4 P24G_SM_PAIRING_WAIT_SUCC
+)
+
+(
+0 P24G_PAIRING_REQ_HEAD
+1 P24G_PAIRING_COMPLETE_HEAD
+)
+
+/* 24g */
+(
+6 dlen_24g
+14 plen_24g
+90 blen_tx_24g
+106 blen_rx_24g
+42 blen_txack_24g
+58 blen_rxack_24g
+
+0xaaf08e acc_24g
+0x15c4 crc_data_3byte
+0xbb81 crc_data_6byte
+0x4160 crc_ack
+41390 crc_ack_4byte
+)
+
+
+
+
+
+xmemalloc(
+1 mem_app_handshake_flag
+2 mem_sniff_param_interval
+2 mem_sniff_param_attempt
+2 mem_sniff_param_timeout
+
+/*App Callback Functons*/
+2 mem_cb_check_wakelock
+2 mem_cb_before_hibernate
+2 mem_cb_before_lpm
+2 mem_cb_le_process
+2 mem_cb_bt_process
+2 mem_cb_idle_process
+2 mem_cb_bb_event_process
+2 mem_cb_discovry_timeout
+2 mem_cb_att_write
+2 mem_cb_ble_transmit
+2 mem_cb_event_timer
+2 mem_cb_bt_set_mult
+2 mem_cb_spi_flash_write_complate
+
+
+
+
+2 mem_eeprom_base
+
+1 mem_unsniff2sniff_timer_count
+//lpm mode
+1 mem_wake_up_delay_timer
+
+1 mem_app_connection_options
+
+//
+2 mem_app_disconn_reason
+2 mem_app_disconn_reason_flag
+4 mem_lpm_delay_after_sniff
+1 mem_xrecord_mode
+
+1 mem_eeprom_block_size
+1 mem_spi_init_clk
+1 mem_spi_init_delay_time
+1 mem_spi_ncs_gpio
+
+2 mem_nv_data_ptr
+1 mem_nv_data_number
+
+2 mem_queue_ptr
+
+1 mem_ui_led_struct_num
+2 mem_ui_led_struct_ptr
+
+//adc
+2 mem_0_5_adc_io_data
+2 mem_1v_adc_hvin_data
+2 mem_2v_adc_vinlpm_data
+2 mem_1v_adc_io_data
+2 mem_5v_adc_hvin_data
+2 mem_3v_adc_vinlpm_data
+2 mem_otp_adc_flag
+2 mem_reference_voltage
+1 mem_adc_config_flag
+1 mem_adc_channel
+2 mem_adc_current_value
+1 mem_adc_power_flag	//bit0:low power falg ; bit1:no power flag
+
+3 mem_spi_write_addr
+2 mem_spi_write_ptr
+2 mem_spi_write_len
+1 mem_spi_write_flash_sm
+1 mem_eeprom_wp_gpio
+2 mem_kscan_ptr
+ifdef SPI_SIMULATE
+//spi gpio config
+0 mem_spi_simulate_struct
+1 mem_spi_simulate_cs_gpio
+1 mem_spi_simulate_sclk_gpio
+1 mem_spi_simulate_mosi_gpio
+1 mem_spi_simulate_miso_gpio
+1 mem_spi_simulate_motion_gpio
+//spi slave read byte
+50 mem_spi_simulate_read_byte_slave
+1 mem_spi_simulate_read_byte_slave_temp
+1 mem_spi_simulate_read_length_slave
+1 mem_spi_simulate_read_length_slave_temp
+//spi slave write byte
+50 mem_spi_simulate_write_byte_slave
+1 mem_spi_simulate_write_byte_slave_temp
+1 mem_spi_simulate_write_byte_slave_temp_temp
+1 mem_spi_simulate_write_length_slave
+1 mem_spi_simulate_write_length_slave_temp
+endif
+
+0 mem_key_num_ptr
+2 mem_keyscan_ptr
+
+2 mem_power_param_ptr
+
+2 mem_24g_head_ptr
+)
+//adc read
+(
+0 ADC_CONFIG_VINLPM
+1 ADC_CONFIG_HVIN
+2 ADC_CONFIG_GPIO
+)
+
+(
+0 QUEUE_OFFSET_EACH_SIZE
+1 QUEUE_OFFSET_LENGTH
+2 QUEUE_OFFSET_CURR_NUM
+3 QUEUE_OFFSET_READ_PTR
+4 QUEUE_OFFSET_WRITE_PTR
+5 QUEUE_OFFSET_ELE_INIT_ADDR
+)
+
+(
+//Flash Register
+0x05 FLASH_READ_SATUS
+
+// Flash Status Register
+0x00 FLASH_STATUS_WIP
+0X01 FLASH_STATUS_WEL
+0X02 FLASH_STATUS_BP0
+0X03 FLASH_STATUS_BP1
+
+//Flash Write Sm
+0X00 FLASH_SM_NO_BUYS
+0X01 FLASH_SM_START
+0X02 FLASH_SM_ERASE_SECTOR
+0X03 FLASH_SM_WAIT_ERASE_SECTOR
+0X04 FLASH_SM_WRITE_DATA
+0X05 FLASH_SM_WAIT_WRITE_DATA
+
+
+//Flash Command
+0x02 FLASH_COMMAND_WRITE_DATA
+0x03 FLASH_COMMAND_READ_DATA
+0x20 FLASH_COMMAND_SECTOR_ERASE
+)
+
+0x0000 otp_ucode_flag
+0x07f0 otp_ucode_aeskey
+
+/* adc data addr and flag */
+(
+0x07e0 OTP_CHIP_FUNCTIONS
+0x07e2 otp_adc_io_0_5V_addr
+0x07e4 otp_adc_hvin_1V_addr
+0x07e6 otp_adc_vinlpm_2V_addr
+0x07e8 otp_adc_io_1V_addr
+0x07ea otp_adc_hvin_5V_addr
+0x07ec otp_adc_vinlpm_3V_addr
+0x07ee otp_adc_flag_addr
+0xaa55 OTP_ADC_FLAG
+)
+
+/* data stored in eeprom */
+(
+0	eeprom_bdaddr_list
+0	eeprom_nv_ram
+28	eeprom_last_record
+29	eeprom_le_reconn_local_addr
+35	eeprom_linkkey_list//64
+
+99	eeprom_module_bt_adss//6
+105	eeprom_module_le_adss//6
+111	eeprom_module_pincode_length//1
+112	eeprom_module_pincode//15
+127	eeprom_module_bt_name_length//1
+128	eeprom_module_bt_name//32
+160	eeprom_module_ble_name_length//1
+161	eeprom_module_ble_name//31
+192	eeprom_module_trans_baud//3
+195	eeprom_module_init_flag//2
+197	eeprom_module_uuid//6
+203 eeprom_module_ssp_enable//1
+204 eeprom_module_end//2
+
+//dpi eeprom addr
+198 eeprom_mouse_dpi
+)
+
+/*mem_app_handshake_flag*/
+(
+0 APP_HANDSHAKE_NULL
+1 APP_HANDSHAKE_DONE
+
+)
+/*mem_device_option*/
+(
+1 dvc_op_hci
+3 dvc_op_kb
+4 dvc_op_dongle
+5 dvc_op_spp
+6 dvc_op_ukey
+7 dvc_op_ir
+
+9 dvc_op_shutter
+10 dvc_op_module
+11 dvc_op_ble_mouse
+12 dvc_op_ble_kb
+13 dvc_op_ble_prcp
+255 dvc_op_test
+//device option hight 4
+6 dvc_op_mouse
+7 dvc_op_keyboard
+//device option low 2
+(
+0 MODE_3_MOUSE
+1 MODE_4_MOUSE
+)
+)
+
+(
+3 twspi_sclk
+4 twspi_sdio
+)
+
+(
+4 pan_clk_bit
+5 pan_dat_bit
+6 pan_mov_bit
+)
+
+(
+7 otp_uflag_aes
+6 otp_uflag_skip_eep
+5 otp_uflag_skip_flash
+4 otp_uflag_hci
+)
+
+/* ir command */
+(
+1 ircmd_record
+2 ircmd_play
+3 ircmd_write_pulse
+4 ircmd_write_seq
+5 ircmd_write_next
+
+8 ircmd_test_play
+9 ircmd_test_rec
+
+10 ircmd_report_pulse
+11 ircmd_report_seq
+12 ircmd_report_raw
+
+20 ircmd_screen_on
+21 ircmd_screen_off
+)
+
+(
+7 gpio_active_bit
+)
+(
+2 HID_HANDSHAKE_TIMEOUT
+
+)
+
+(
+1 APP_FLAG_RECONNECT
+)
+(
+5 LPM_WAKE_UP_DELAY_TIMER
+)
+
+
+//mem_app_disconn_reason
+//mem_app_disconn_reason_flag
+//bit map
+(
+2 APP_DISC_RSN_SIZE
+)
+(
+0 APP_DISC_BY_BUTTON
+1 APP_DISC_AFTER_PAIRING
+2 APP_DISC_AFTER_RECONN
+3 APP_DISC_AFTER_SNIFF
+4 APP_DISC_AFTER_SETUP_DONE
+5 APP_DISC_AFTER_HANDSHAKE
+6 APP_DISC_BT
+7 APP_DISC_BLE
+8 APP_DISC_L2CAP_REFUSED
+9 APP_DISC_SWITCH_FAIL
+10 APP_DISC_PB_BUTTON
+)
+//eeprom init flag
+(
+	0xaa55 EEPROM_INIT_FLAG
+)
+
+
+
+memalloc(
+1 mem_h5rx_ackcnt
+1 mem_check_err_acl_cont
+
+1 mem_rp_packets
+2 mem_packet_type
+
+2 mem_hci_sniff_conn_handle
+2 mem_hci_sniff_max_interval
+2 mem_hci_sniff_min_interval
+2 mem_hci_sniff_attempt
+2 mem_hci_sniff_timeout
+2 mem_voice_setting
+1 mem_retransmission_effort
+2 mem_sco_ptype
+3 mem_extm_uap_restore
+
+2 mem_h5rx_rptr
+1 mem_h5rx_ack
+1 mem_h5tx_ack
+2 mem_h5tx_rptr
+2 mem_h5tx_wptr
+2 mem_h5tx_free
+1 mem_h5rx_tmp
+1 mem_h5tx_seq
+
+2 mem_hci_acl_queue_wptr
+2 mem_hci_acl_queue_rptr
+2 mem_hci_acl_queue_end
+1 mem_hci_acl_queue_wcnt
+1 mem_hci_acl_cnt
+
+2 mem_hci_acl_tx_trigger_wptr //tx via uart
+
+1 mem_hci_curr_len
+2 mem_hci_curr_target 
+) 
+
+xmemalloc(
+
+2 mem_baud
+1 mem_hci_lt_rx_state
+)
+
+15 hci_flag_rp
+//mem_hci_options bit map
+(
+1 hci_option_h4
+2 hci_option_protocol2
+3 hci_option_protocol3
+4 hci_option_uart
+5 hci_option_usb
+6 hci_option_phy2
+7 hci_option_phy3
+)
+// UART baud rate @6MHz
+(
+0 uart_ctrl_bit_enable
+3 uart_ctrl_bit_slip_protocol
+
+)
+
+//bit map of core_uart_ctrl
+(
+
+)
+//bit map of core_uart_status
+(
+0 uart_status_tx_fifo_full
+1 uart_status_tx_fifo_empty
+2 uart_status_tx_busy
+3 uart_status_rx_fifo_empty
+
+)
+//HCI H4 LOG related
+(
+0x4850 mem_hci_log
+8 hci_log_size
+100 hci_log_cnt
+
+)
+//HCI H4 Packet TYPE
+(
+0x01 HCI_H4_TYPE_CMD
+0x02 HCI_H4_TYPE_ACL
+0x04 HCI_H4_TYPE_EVENT
+
+)
+// HCI command opcode group field values
+(
+0x01 HCI_OGF_LINK_CONTROL
+0x02 HCI_OGF_LINK_POLICY
+0x03 HCI_OGF_BASEBAND
+0x04 HCI_OGF_INFO
+0x05 HCI_OGF_STATUS
+0x06 HCI_OGF_TEST
+0x08 HCI_OGF_LOW_ENERGY
+0x3e HCI_OGF_LOGO_TESTING
+0x3f HCI_OGF_VENDOR_SPECIFIC
+)
+
+// HCI link control opcode command field values, OGF=1
+(
+0x01 HCI_INQUIRY 
+0x02 HCI_INQUIRY_CANCEL 
+0x03 HCI_PERIODIC_INQUIRY_MODE 
+0x04 HCI_EXIT_PERIODIC_INQUIRY_MODE 
+0x05 HCI_CREATE_CONNECTION 
+0x06 HCI_DISCONNECT 
+0x07 HCI_ADD_SCO_CONNECTION 
+0x08 HCI_CREATE_CONNECTION_CANCEL
+0x09 HCI_ACCEPT_CONNECTION 
+0x0A HCI_REJECT_CONNECTION 
+0x0B HCI_LINK_KEY_REQUEST_REPLY 
+0x0C HCI_LINK_KEY_REQUEST_NEGATIVE_REPLY 
+0x0D HCI_PIN_CODE_REQUEST_REPLY 
+0x0E HCI_PIN_CODE_REQUEST_NEGATIVE_REPLY 
+0x0F HCI_CHANGE_CONNECTION_PACKET_TYPE 
+0x11 HCI_AUTHENTICATION_REQUESTED 
+0x13 HCI_SET_CONNECTION_ENCRYPTION 
+0x15 HCI_CHANGE_CONNECTION_LINK_KEY 
+0x17 HCI_MASTER_LINK_KEY 
+0x19 HCI_REMOTE_NAME_REQUEST 
+0x1A HCI_REMOTE_NAME_REQUEST_CANCEL
+0x1B HCI_READ_REMOTE_SUPPORTED_FEATURES 
+0x1C HCI_READ_REMOTE_EXT_FEATURES 
+0x1D HCI_READ_REMOTE_VERSION_INFORMATION 
+0x1F HCI_READ_CLOCK_OFFSET 
+0x20 HCI_READ_LMP_HANDLE
+0x28 HCI_SETUP_SCO_CONNECTION
+0x29 HCI_ACCEPT_SCO_CONNECTION
+0x2A HCI_REJECT_SCO_CONNECTION
+0x2B HCI_IO_CAP_REQUEST_REPLY
+0x2C HCI_USER_CONFIRMATION_REQUEST_REPLY
+0x2D HCI_USER_CONFIRMATION_REQUEST_NEGATIVE_REPLY
+0x2E HCI_USER_PASSKEY_REQUEST_REPLY
+0x2F HCI_USER_PASSKEY_REQUEST_NEGATIVE_REPLY
+0x30 HCI_REMOTE_OOB_DATA_REQUEST_REPLY
+0x33 HCI_REMOTE_OOB_DATA_REQUEST_NEGATIVE_REPLY
+0x34 HCI_IO_CAPABILITY_REQUEST_NEGATIVE_REPLY
+0x35 HCI_CREATE_PHYSICAL_LINK
+0x36 HCI_ACCEPT_PHYSICAL_LINK
+0x37 HCI_DISCONNECT_PHYSICAL_LINK
+0x38 HCI_CREATE_LOGICAL_LINK
+0x39 HCI_ACCEPT_LOGICAL_LINK
+0x3A HCI_DISCONNECT_LOGICAL_LINK
+0x3B HCI_LOGICAL_LINK_CANCEL
+0x3C HCI_FLOW_SPEC_MODIFY
+0x3D HCI_ENHANCED_SETUP_SYNCHRONOUS_CONNECTION
+0x3E HCI_ENHANCED_ACCEPT_SYNCHRONOUS_CONNECTION_REQUEST
+0x3F HCI_TRUNCATED_PAGE
+0x40 HCI_TRUNCATED_PAGE_CANCEL
+0x41 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST
+0x42 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
+0x43 HCI_START_SYNCHRONIZATION_TRAIN
+0x44 HCI_RECEIVE_SYNCHRONIZATION_TRAIN
+0x45 HCI_REMOTE_OOB_EXTENDED_DATA_REQUEST_REPLY
+)
+
+
+// HCI link policy commands OCF value, OGF=2
+(
+0x01 HCI_HOLD_MODE 
+0x03 HCI_SNIFF_MODE 
+0x04 HCI_EXIT_SNIFF_MODE 
+0x05 HCI_PARK_MODE 
+0x06 HCI_EXIT_PARK_MODE 
+0x07 HCI_QOS_SETUP 
+0x09 HCI_ROLE_DISCOVERY 
+0x0B HCI_SWITCH_ROLE 
+0x0C HCI_READ_LINK_POLICY_SETTINGS 
+0x0D HCI_WRITE_LINK_POLICY_SETTINGS 
+0x0e HCI_READ_DEFAULT_LINK_POLICY_SETTINGS
+0x0f HCI_WRITE_DEFAULT_LINK_POLICY_SETTINGS
+0x10 HCI_FLOW_SPECIFICATION
+0x11 HCI_SNIFF_SUBRATING
+)
+
+// HCI host controller and baseband commands OCF values, OGF=3
+(
+0x01 HCI_SET_EVENT_MASK 
+0x03 HCI_RESET 
+0x05 HCI_SET_EVENT_FILTER 
+0x08 HCI_FLUSH 
+0x09 HCI_READ_PIN_TYPE 
+0x0A HCI_WRITE_PIN_TYPE 
+0x0B HCI_CREATE_NEW_UNIT_KEY 
+0x0D HCI_READ_STORED_LINK_KEY 
+0x11 HCI_WRITE_STORED_LINK_KEY 
+0x12 HCI_DELETE_STORED_LINK_KEY 
+0x13 HCI_WRITE_LOCAL_NAME 
+0x14 HCI_READ_LOCAL_NAME 
+0x15 HCI_READ_CONN_ACCEPT_TIMEOUT 
+0x16 HCI_WRITE_CONN_ACCEPT_TIMEOUT 
+0x17 HCI_READ_PAGE_TIMEOUT 
+0x18 HCI_WRITE_PAGE_TIMEOUT 
+0x19 HCI_READ_SCAN_ENABLE 
+0x1A HCI_WRITE_SCAN_ENABLE 
+0x1B HCI_READ_PAGE_SCAN_ACTIVITY 
+0x1C HCI_WRITE_PAGE_SCAN_ACTIVITY 
+0x1D HCI_READ_INQUIRY_SCAN_ACTIVITY 
+0x1E HCI_WRITE_INQUIRY_SCAN_ACTIVITY 
+0x1F HCI_READ_AUTHENTICATION_ENABLE 
+0x20 HCI_WRITE_AUTHENTICATION_ENABLE 
+0x21 HCI_READ_ENCRYPTION_MODE 
+0x22 HCI_WRITE_ENCRYPTION_MODE 
+0x23 HCI_READ_CLASS_OF_DEVICE 
+0x24 HCI_WRITE_CLASS_OF_DEVICE 
+0x25 HCI_READ_VOICE_SETTING 
+0x26 HCI_WRITE_VOICE_SETTING 
+0x27 HCI_READ_AUTOMATIC_FLUSH_TIMEOUT 
+0x28 HCI_WRITE_AUTOMATIC_FLUSH_TIMEOUT 
+0x29 HCI_READ_NUM_BROADCAST_RETRANSMISSIONS 
+0x2A HCI_WRITE_NUM_BROADCAST_RETRANSMISSIONS 
+0x2B HCI_READ_HOLD_MODE_ACTIVITY 
+0x2C HCI_WRITE_HOLD_MODE_ACTIVITY 
+0x2D HCI_READ_TRANSMIT_POWER_LEVEL 
+0x2E HCI_READ_SCO_FLOW_CONTROL_ENABLE 
+0x2F HCI_WRITE_SCO_FLOW_CONTROL_ENABLE 
+0x31 HCI_SET_CONTROLLER_TO_HOST_FLOW_CONTROL 
+0x33 HCI_HOST_BUFFER_SIZE 
+0x35 HCI_HOST_NUM_COMPLETED_PACKETS 
+0x36 HCI_READ_LINK_SUPERVISION_TIMEOUT 
+0x37 HCI_WRITE_LINK_SUPERVISION_TIMEOUT 
+0x38 HCI_READ_NUMBER_OF_SUPPORTED_IAC 
+0x39 HCI_READ_CURRENT_IAC_LAP 
+0x3A HCI_WRITE_CURRENT_IAC_LAP 
+0x3B HCI_READ_PAGE_SCAN_PERIOD_MODE 
+0x3C HCI_WRITE_PAGE_SCAN_PERIOD_MODE 
+0x3D HCI_READ_PAGE_SCAN_MODE 
+0x3E HCI_WRITE_PAGE_SCAN_MODE 
+0x3F HCI_SET_AFH_CHANNEL_CLASSIFICATION 
+
+
+0x42 HCI_READ_INQUIRY_SCAN_TYPE 
+0x43 HCI_WRITE_INQUIRY_SCAN_TYPE 
+0x44 HCI_READ_INQUIRY_MODE 
+0x45 HCI_WRITE_INQUIRY_MODE 
+0x46 HCI_READ_PAGE_SCAN_TYPE 
+0x47 HCI_WRITE_PAGE_SCAN_TYPE 
+
+0x48 HCI_READ_AFH_CHANNEL_ACCESSMENT_MODE 
+0x49 HCI_WRITE_AFH_CHANNEL_ACCESSMENT_MODE 
+0x51 HCI_READ_EXTENDED_INQUIRY_RESPONSE
+0x52 HCI_WRITE_EXTENDED_INQUIRY_RESPONSE
+0x53 HCI_REFRESH_ENCRYPTION_KEY
+0x55 HCI_READ_SIMPLE_PAIRING_MODE
+0x56 HCI_WRITE_SIMPLE_PAIRING_MODE
+0x57 HCI_READ_LOCAL_OOB_DATA
+0x58 HCI_READ_INQUIRY_RESPONSE_TRANSMIT_POWER_LEVEL
+0x59 HCI_WRITE_INQUIRY_TRANSMIT_POWER_LEVEL
+0x60 HCI_SEND_KEYPRESS_NOTIFICATION
+0x5A HCI_READ_DEFAULT_ERRONEOUS_DATA_REPORTING
+0x5B HCI_WRITE_DEFAULT_ERRONEOUS_DATA_REPORTING
+0x5F HCI_ENHANCED_FLUSH
+0x61 HCI_READ_LOGICAL_LINK_ACCEPT_TIMEOUT
+0x62 HCI_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT
+0x63 HCI_SET_EVENT_MASK_PAGE_2
+0x64 HCI_READ_LOCATION_DATA
+0x65 HCI_WRITE_LOCATION_DATA
+0x66 HCI_READ_FLOW_CONTROL_MODE
+0x67 HCI_WRITE_FLOW_CONTROL_MODE
+0x68 HCI_READ_ENHANCE_TRANSMIT_POWER_LEVEL
+0x69 HCI_READ_BEST_EFFORT_FLUSH_TIMEOUT
+0x6A HCI_WRITE_BEST_EFFORT_FLUSH_TIMEOUT
+0x6B HCI_SHORT_RANGE_MODE
+0x6C HCI_READ_LE_HOST_SUPPORT
+0x6D HCI_WRITE_LE_HOST_SUPPORT
+0x6E HCI_SET_MWS_CHANNEL_PARAMETERS
+0x6F HCI_SET_EXTERNAL_FRAME_CONFIGURATION
+0x70 HCI_SET_MWS_SIGNALING
+0x71 HCI_SET_MWS_TRANSPORT_LAYER
+0x72 HCI_SET_MWS_SCAN_FREQUENCY_TABLE
+0x73 HCI_SET_MWS_PATTERN_CONFIGURATION
+0x74 HCI_SET_RESERVED_LT_ADDR
+0x75 HCI_DELETE_RESERVED_LT_ADDR
+0x76 HCI_SET_CONNECTIONLESS_SLAVE_BROADCAST_DATA
+0x77 HCI_READ_SYNCHRONIZATION_TRAIN_PARAMETERS
+0x78 HCI_WRITE_SYNCHRONIZATION_TRAIN_PARAMETERS
+0x79 HCI_READ_SECURE_CONNECTIONS_HOST_SUPPORT
+0x7A HCI_WRITE_SECURE_CONNECTIONS_HOST_SUPPORT
+0x7B HCI_READ_AUTHENTICATED_PAYLOAD_TIMEOUT
+0x7C HCI_WRITE_AUTHENTICATED_PAYLOAD_TIMEOUT
+0x7D HCI_READ_LOCAL_OOB_EXTENDED_DATA
+0x7E HCI_READ_EXTENDED_PAGE_TIMEOUT
+0x7F HCI_WRITE_EXTENDED_PAGE_TIMEOUT
+0x80 HCI_READ_EXTENDED_INQUIRY_LENGTH
+0x81 HCI_WRITE_EXTENDED_INQUIRY_LENGTH
+)
+
+
+// HCI informational parameters OCF values, OGF=4
+(
+0x01 HCI_READ_LOCAL_VERSION_INFORMATION 
+0x02 HCI_READ_LOCAL_SUPPORTED_COMMANDS
+0x03 HCI_READ_LOCAL_SUPPORTED_FEATURES 
+0x04 HCI_READ_LOCAL_EXT_FEATURES 
+0x05 HCI_READ_BUFFER_SIZE 
+0x07 HCI_READ_COUNTRY_CODE 
+0x09 HCI_READ_BD_ADDR 
+0x0A HCI_REJECT_CONNECTION_REQUEST
+0x0B HCI_READ_LOCAL_SUPPORTED_CODECS
+)
+
+// HCI status parameters OCF values, OGF=5
+(
+0x01 HCI_READ_FAILED_CONTACT_COUNTER 
+0x02 HCI_RESET_FAILED_CONTACT_COUNTER 
+0x03 HCI_GET_LINK_QUALITY 
+0x05 HCI_READ_RSSI 
+0x06 HCI_READ_AFH_CHANNEL_MAP
+0x07 HCI_READ_BD_CLOCK
+0x08 HCI_READ_ENCRYPTION_KEY_SIZE
+0x09 HCI_READ_LOCAL_AMP_INFO
+0x0A HCI_READ_LOCAL_AMP_ASSOC
+0x0B HCI_WRITE_REMOTE_AMP_ASSOC
+0x0C HCI_GET_MWS_TRANSPORT_LAYER_CONFIGURATION
+0x0D HCI_SET_TRIGGERED_CLOCK_CAPTURE
+)
+
+// HCI testing command OCF values, OGF=6
+(
+0x01 HCI_READ_LOOPBACK_MODE 
+0x02 HCI_WRITE_LOOPBACK_MODE 
+0x03 HCI_ENABLE_DEVICE_UNDER_TEST_MODE 
+0x04 HCI_WRITE_SIMPLE_PAIRING_DEBUG_MODE
+0x07 HCI_ENABLE_AMP_RECEIVER_REPORTS
+0x08 HCI_AMP_TEST_END
+0x09 HCI_AMP_TEST
+0x0A HCI_WRITE_SECURE_CONNECTIONS_TEST_MODE
+)
+
+// HCI vendor specific command OCF values -OGF=3F
+(
+0x01 HCI_WRITE_BD_ADDR 
+0x02 HCI_READ_INQUIRY_RESPONSE_TIMEOUT 
+0x03 HCI_WRITE_INQUIRY_RESPONSE_TIMEOUT 
+0x04 HCI_READ_PAGE_SCAN_REPETITION_MODE 
+0x05 HCI_WRITE_PAGE_SCAN_REPETITION_MODE 
+0x06 HCI_READ_PAGE_RESPONSE_TIMEOUT 
+0x07 HCI_WRITE_PAGE_RESPONSE_TIMEOUT 
+0x08 HCI_READ_NEW_CONNECTION_TIMEOUT 
+0x09 HCI_WRITE_NEW_CONNECTION_TIMEOUT 
+0x0a HCI_INITIALIZE_BASEBAND 
+0x0b HCI_WRITE_LOCAL_SUPPORTED_FEATURES 
+0x0c HCI_WRITE_PARK_PARAMETERS 
+0x0d HCI_READ_PARK_PARAMETERS 
+0x0e HCI_WRITE_QUALITY_OF_SERVICE 
+0x0f HCI_NOT_USED 
+0x10 HCI_MODIFY_BEACON_PARAMETERS 
+0x11 HCI_UNPARK_USING_PM_ADDR 
+0x12 HCI_WRITE_HOPPING_CHANNELS 
+0x13 HCI_SLEEP_FOREVER_MODE 
+0x14 HCI_WRITE_AUTO_PAGE_SCAN_ENABLE 
+0x15 HCI_READ_AUTO_PAGE_SCAN_ENABLE 
+0x16 HCI_SET_ENCRYPTION_KEY_SIZE 
+0x17 HCI_INVALIDATE_FLASH_AND_REBOOT 
+0x18 HCI_UPDATE_UART_BAUD_RATE 
+0x19 HCI_WRITE_GPIO_1_4_AS_OUTPUT 
+0x1A HCI_WRITE_GPIO_2_LED 
+0x1B HCI_SET_TESTMODE_TYPE 
+0x1C HCI_WRITE_SCO_PCM_INT_PARAM 
+0x1D HCI_READ_SCO_PCM_INT_PARAM 
+0x1E HCI_WRITE_PCM_DATA_FORMAT_PARAM 
+0x1F HCI_READ_PCM_DATA_FORMAT_PARAM 
+0x20 HCI_WRITE_COMFORT_NOISE_PARAM 
+0x21 HCI_READ_COMFORT_NOISE_PARAM 
+0x22 HCI_WRITE_SCO_TS 
+0x23 HCI_READ_SCO_TS 
+0x24 HCI_WRITE_PCM_LOOPBACK_MODE 
+0x25 HCI_READ_PCM_LOOPBACK_MODE 
+0x26 HCI_SET_TRANSMIT_POWER 
+0x27 HCI_SET_SLEEPMODE_PARAM 
+0x28 HCI_READ_SLEEPMODE_PARAM 
+0x29 HCI_SLEEPMODE_CMD 
+0x2A HCI_DELAY_PERIPHERAL_SCO_STARTUP 
+0x2B HCI_WRITE_RECEIVE_ONLY 
+0x2C HCI_WRITE_RATE_CONTROL 
+0x2D HCI_TX_UNMOD_CARRIER 
+0x2E HCI_DOWNLOAD_MINIDRIVER 
+0x2F HCI_CRYSTAL_PPM 
+0x30 HCI_SET_POWER_AMP_BIAS 
+0x31 HCI_SET_HAM_BEHAVIOR 
+0x32 HCI_SET_AFH_BEHAVIOR 
+0x33 HCI_READ_USER_DEFINED_NVRAM 
+0x34 HCI_ENABLE_RADIO 
+0x35 HCI_READ_DIAGNOSTIC_INFO 
+0x36 HCI_GET_HID_DEVICE_LIST 
+0x37 HCI_ADD_HID_DEVICE 
+0x38 HCI_READ_APP_FW_CONFIG_VERSION 
+0x39 HCI_DELETE_HID_DEVICE 
+0x3B HCI_ENABLE_USB_HID_EMULATION 
+// 0x3A available
+// 0x3B available
+0x3C HCI_SEND_LMPDU 
+0x3D HCI_AUTO_PAIR_REQ 
+0x3E HCI_READ_VS_EXTENSION 
+0x3F HCI_WRITE_VS_EXTENSION 
+
+0x77 HCI_OPCODE_FC77
+0x79 HCI_OPCODE_FC79
+0xC4 HCI_DOWNLOAD_PATCH
+0xCC HCI_OPCODE_FCCC
+
+0x00 HCI_VENDOR_CMD_RESET
+0x01 HCI_VENDOR_CMD_CHIPID
+0x02 HCI_VENDOR_CMD_BAUD
+0x03 HCI_VENDOR_CMD_PATCH
+0x04 HCI_VENDOR_CMD_PATCH_DONE
+0x05 HCI_VENDOR_CMD_ECHO
+0x06 HCI_VENDOR_CMD_BDADDR
+
+0x07 HCI_VENDOR_CMD_ENTER_LPM
+0x08 HCI_VENDOR_CMD_COMMU_READY
+
+0x10 HCI_VENDOR_CMD_MEM
+0x11 HCI_VENDOR_CMD_EEP
+)
+
+//HCI LE controller command OCF values, OGF=8
+(
+0x01 HCI_LE_SET_EVENT_MASK
+0x02 HCI_LE_READ_BUFFER_SIZE
+0x03 HCI_LE_READ_LOCAL_SUPPORTED_FEATURES
+0x05 HCI_LE_SET_RANDOM_ADDRESS
+0x06 HCI_LE_SET_ADVERTISING_PARAMETERS
+0x07 HCI_LE_READ_ADVERTISING_CHANNEL_TX_POWER
+0x08 HCI_LE_SET_ADVERTISING_DATA
+0x09 HCI_LE_SET_SCAN_RESPONSE_DATA
+0x0A HCI_LE_SET_ADVERTISE_ENABLE
+0x0B HCI_LE_SET_SCAN_PARAMETERS
+0x0C HCI_LE_SET_SCAN_ENABLE
+0x0D HCI_LE_CREATE_CONNECTION
+0x0E HCI_LE_CREATE_CONNECTION_CANCEL
+0x0F HCI_LE_READ_WHITE_LIST_SIZE
+0x10 HCI_LE_CLEAR_WHITE_LIST
+0x11 HCI_LE_ADD_DEVICE_TO_WHITE_LIST
+0x12 HCI_LE_REMOVE_DEVICE_FROM_WHITE_LIST
+0x13 HCI_LE_CONNECTION_UPDATE
+0x14 HCI_LE_SET_HOST_CHANNEL_CLASSIFICATION
+0x15 HCI_LE_READ_CHANNEL_MAP
+0x16 HCI_LE_READ_REMOTE_USED_FEATURES
+0x17 HCI_LE_ENCRYPT
+0x18 HCI_LE_RAND
+0x19 HCI_LE_START_ENCRYPTION
+0x1A HCI_LE_LONG_TERM_KEY_REQUEST_REPLY
+0x1B HCI_LE_LONG_TERM_KEY_REQUEST_NEGATIVE_REPLY
+0x1C HCI_LE_READ_SUPPORTED_STATES
+0x1D HCI_LE_RECEIVER_TEST
+0x1E HCI_LE_TRANSMITTER_TEST
+0x1F HCI_LE_TEST_END
+0x20 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_REPLY
+0x21 HCI_LE_REMOTE_CONNECTION_PARAMETER_REQUEST_NEGATIVE_REPLY
+)
+// HCI event code
+(
+0x01 HCI_EVENT_INQUIRY_COMPLETE
+0x02 HCI_EVENT_INQUIRY_RESULT
+0x03 HCI_EVENT_CONNECTION_COMPLETE
+0x04 HCI_EVENT_CONNECTION_REQUEST
+0x05 HCI_EVENT_DISCONNECTION_COMPLETE
+0x06 HCI_EVENT_AUTHENTICATION_COMPLETE
+0x07 HCI_EVENT_REMOTE_NAME_REQUEST_COMPLETE
+0x08 HCI_EVENT_ENCRYPTION_CHANGE_COMPLETE
+0x09 HCI_EVENT_CHANGE_CONNECTION_LINK_KEY_COMPLETE
+0x0A HCI_EVENT_MASTER_LINK_KEY_COMPLETE
+0x0B HCI_EVENT_READ_REMOTE_FEATURES_COMPLETE
+0x0C HCI_EVENT_READ_REMOTE_VERSION_INFORMATION_COMPLETE
+0x0D HCI_EVENT_QOS_SETUP_COMPLETE
+0x0E HCI_EVENT_COMMAND_COMPLETE
+0x0F HCI_EVENT_COMMAND_STATUS
+0x10 HCI_EVENT_HARDWARE_ERROR
+0x11 HCI_EVENT_FLUSH_OCCURRED
+0x12 HCI_EVENT_ROLE_CHANGE
+0x13 HCI_EVENT_NUM_COMPLETED_PACKETS
+0x14 HCI_EVENT_MODE_CHANGE
+0x15 HCI_EVENT_RETURN_LINK_KEYS
+0x16 HCI_EVENT_PIN_CODE_REQUEST
+0x17 HCI_EVENT_LINK_KEY_REQUEST
+0x18 HCI_EVENT_LINK_KEY_NOTIFICATION
+0x19 HCI_EVENT_LOOPBACK_COMMAND
+0x1A HCI_EVENT_DATA_BUFFER_OVERFLOW
+0x1B HCI_EVENT_MAX_SLOTS_CHANGE
+0x1C HCI_EVENT_READ_CLOCK_OFFSET_COMPLETE
+0x1D HCI_EVENT_CONNECTION_PACKET_TYPE_CHANGED
+0x1E HCI_EVENT_QOS_VIOLATION
+0x1F HCI_EVENT_PAGE_SCAN_MODE_CHANGE
+0x20 HCI_EVENT_PAGE_SCAN_REPETITION_MODE_CHANGE
+0x21 HCI_EVENT_FLOW_SPECIFICATION_COMPLETE
+0x22 HCI_EVENT_INQUIRY_RESULT_WITHRSSI
+0x23 HCI_EVENT_READ_REMOTE_EXT_FEATURES_COMPLETE
+0x2C HCI_EVENT_SCO_CONNECTION_COMPLETE
+0x2D HCI_EVENT_SCO_CONNECTION_CHANGED
+0x2E HCI_EVENT_SNIFF_SUBRATING
+0x2F HCI_EVENT_EXT_INQUIRY_RESULT
+0x30 HCI_EVENT_ENCRYPT_KEY_REFRESH_COMPLETE
+0x31 HCI_EVENT_IO_CAP_REQ
+0x32 HCI_EVENT_IO_CAP_RESPONSE
+0x33 HCI_EVENT_USER_CONFIRMATION_REQUEST
+0x34 HCI_EVENT_UESR_PASSKEY_REQUEST
+0x35 HCI_EVENT_REMOTE_OOB_DATA_REQUEST
+0x36 HCI_EVENT_SIMPLE_PAIRING_COMPLETE
+0x38 HCI_EVENT_LINK_SUPERVISION_TIMEOUT_CHANGED
+0x39 HCI_EVENT_ENHANCED_FLUSH_COMPLETE
+0x3B HCI_EVENT_USER_PASSKEY_NOTIFICATION
+0x3C HCI_EVENT_KEYPRESS_NOTIFICATION
+0x3D HCI_EVENT_REMOTE_HOST_SUPPORTED_FEATURES_NOTIFICATION 
+0x3E HCI_EVENT_LE_META_EVENT
+0x40 HCI_EVENT_PHYSICAL_LINK_COMPLETE
+0x41 HCI_EVENT_CHANNEL_SELECTED
+0x42 HCI_EVENT_DISCONNECTION_PHYSICAL_LINK_COMPLETE
+0x43 HCI_EVENT_PHYSICAL_LINK_LOSS_EARLY_WARNING
+0x44 HCI_EVENT_PHYSICAL_LINK_RECOVERY
+0x45 HCI_EVENT_LOGICAL_LINK_COMPLETE
+0x46 HCI_EVENT_DISCONNECTION_LOGICAL_LINK_COMPLETE
+0x47 HCI_EVENT_FLOW_SPEC_MODIFY_COMPLETE
+0x48 HCI_EVENT_NUMBER_OF_COMPLETED_DATA_BLOCKS
+0x49 HCI_EVENT_AMP_START_TEST
+0x4A HCI_EVENT_AMP_TEST_END
+0x4B HCI_EVENT_AMP_RECEIVER_REPORT
+0x4C HCI_EVENT_SHORT_RANGE_MODE_CHANGE_COMPLETE
+0x4D HCI_EVENT_AMP_STATUS_CHANGE
+0x4E HCI_EVENT_TRIGGERED_CLOCK_CAPTURE
+0x4F HCI_EVENT_SYNCHRONIZATION_TRAIN_COMPLETE
+0x50 HCI_EVENT_SYNCHRONIZATION_TRAIN_RECEIVED
+0x51 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_RECEIVE
+0x52 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_TIMEOUT
+0x53 HCI_EVENT_TRUNCATED_PAGE_COMPLETE
+0x54 HCI_EVENT_SLAVE_PAGE_RESPONSE_TIMEOUT
+0x55 HCI_EVENT_CONNECTIONLESS_SLAVE_BROADCAST_CHANNEL_MAP_CHANGE
+0x56 HCI_EVENT_INQUIRY_RESPONSE_NOTIFICATION
+0x57 HCI_EVENT_AUTHENTICATED_PAYLOAD_TIMEOUT_EXPIRED
+
+0xFE HCI_EVENT_LOGO_TESTING
+0xFF HCI_EVENT_VENDOR_SPECIFIC
+)
+(
+0x01 HCI_VENDOR_EVENT_COMMU_READY
+)
+//HCI LE SUBEVENT CODE
+(
+0x01 HCI_LE_SUBEVENT_CONN_COMPLETE
+0x02 HCI_LE_SUBEVENT_ADV_REPORT
+0x03 HCI_LE_SUBEVENT_CONN_UPDATE_COMPLETE
+0x04 HCI_LE_SUBEVENT_REMOTE_FEATURE_COMPLETE
+0x05 HCI_LE_SUBEVENT_LTK_REQUEST
+0x06 HCI_LE_SUBEVENT_REMOTE_CONN_PARAM_REQ
+)
+//HCI ErrorCodes
+(    
+0x00 HCI_SUCCESS
+0x01 HCI_ERROR_UNKNOWN_HCI_COMMAND
+0x02 HCI_ERROR_NO_CONNECTION
+0x03 HCI_ERROR_HARDWARE_FAILURE
+0x04 HCI_ERROR_PAGE_TIMEOUT
+0x05 HCI_ERROR_AUTHENTICATION_FAILURE
+0x06 HCI_ERROR_KEY_MISSING
+0x07 HCI_ERROR_MEMORY_FULL
+0x08 HCI_ERROR_CONNECTION_TIMEOUT
+0x09 HCI_ERROR_MAX_CONNECTIONS
+0x0A HCI_ERROR_MAX_SCO_CONNECTIONS
+0x0B HCI_ERROR_MAX_ACL_CONNECTIONS
+0x0C HCI_ERROR_COMMAND_DISALLOWED
+0x0D HCI_ERROR_HOST_REJECT_LIMITED_RESOURCES
+0x0E HCI_ERROR_HOST_REJECT_SECURITY_REASONS
+0x0F HCI_ERROR_HOST_REJECT_REMOTE_IS_ONLY_PERSONAL
+0x10 HCI_ERROR_HOST_TIMEOUT
+0x11 HCI_ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER_VALUE
+0x12 HCI_ERROR_INVALID_HCI_COMMAND_PARAMETERS
+0x13 HCI_ERROR_REMOTE_USER_ENDED_CONNECTION
+0x14 HCI_ERROR_REMOTE_LOW_RESOURCES
+0x15 HCI_ERROR_REMOTE_POWERING_OFF
+0x16 HCI_ERROR_CONNECTION_TERMINATED_BY_LOCAL_HOST
+0x17 HCI_ERROR_REPEATED_ATTEMPTS
+0x18 HCI_ERROR_PAIRING_NOT_ALLOWED
+0x19 HCI_ERROR_UNKNOWN_LMP_PDU
+0x1A HCI_ERROR_UNSUPPORTED_REMOTE_FEATURE
+0x1B HCI_ERROR_SCO_OFFSET_REJECTED
+0x1C HCI_ERROR_SCO_INTERVAL_REJECTED
+0x1D HCI_ERROR_SCO_AIR_MODE_REJECTED
+0x1E HCI_ERROR_INVALID_LMP_PARAMETER
+0x1F HCI_ERROR_UNSPECIFIED_ERROR
+0x20 HCI_ERROR_UNSUPPORTED_LMP_PARAMETER_VALUE
+0x21 HCI_ERROR_ROLE_CHANGE_NOT_ALLOWD
+0x22 HCI_ERROR_LMP_RESPONSE_TIMEOUT
+0x23 HCI_ERROR_ERROR_TRANSACTION_COLLISION
+0x24 HCI_ERROR_LMP_PDU_NOT_ALLOWED
+0x25 HCI_ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE
+0x26 HCI_ERROR_UNIT_KEY_USED
+0x27 HCI_ERROR_QOS_NOT_SUPPORTED
+0x28 HCI_ERROR_INSTANT_PASSED
+0x29 HCI_ERROR_PAIRING_W_UNIT_KEY_NOT_SUPPORTED
+0x2a HCI_ERROR_DIFFERENT_TRANSACTION_COLLISION
+0x2c HCI_ERROR_QOS_UNACCEPTABLE_PARAMETER
+0x2d HIC_ERROR_QOS_REJECTED
+0x2e HIC_ERROR_CHANNEL_CLASSIFICATION_NOT_SUPPORTED
+0x2f HIC_ERROR_INSUFFICIENT_SECURITY
+0x30 HIC_ERROR_PARAMETER_OUT_OF_MANDATORY_PANGE
+0x32 HIC_ERROR_ROLE_SWITCH_PENDING
+0x34 HIC_ERROR_RESERVED_SLOT_VIOLATION
+0x35 HIC_ERROR_ROLE_SWITCH_FAILED
+0x36 HIC_ERROR_EXTENDED_INQUIRY_RESPONSE_TOO_LARGE
+0x37 HIC_ERROR_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST
+0x38 HIC_ERROR_HOST_BUSY_PAIRING
+)
+
+(
+0x00 HCI_LPM_OFF
+0x01 HCI_LPM_ON
+)
+
+
+(
+33 HOST_WAKE_TIME
+)
+
+(
+1 HCI_RX_WAKE
+0 HCI_RX_READY
+)
+
+
+(
+/*HID TYPE*/
+0x01 HID_TYPE_CONTROL
+0x04 HID_TYPE_GET_REPORT
+0x05 HID_TYPE_SET_REPORT
+0x07 HID_TYPE_SET_PROTOCOL
+0x09 HID_TYPE_SET_IDLE
+0x0a HID_TYPE_DATA
+/*HID REPORT ID*/
+0x01 HID_REPORT_ID_KB
+
+0x00 HID_CONTROL_P_NOOPERATION
+0x01 HID_CONTROL_P_HARDRESET
+0x02 HID_CONTROL_P_SOFTRESET
+0x03 HID_CONTROL_P_SUSPEND
+0x04 HID_CONTROL_P_EXITSUSPEND
+0x05 HID_CONTROL_P_VIRTUALCABLEUNPLUG
+)
+
+
+8 KB_KSCAN_ROW 
+7 KB_KSCAN_ROW_1
+20 KB_KSCAN_COL
+19 KB_KSCAN_COL_1
+
+/* ks_ctrl */
+(
+0x01 KB_KSCAN_CTRL_ENABLE					
+0x02 KB_KSCAN_CTRL_FREEZE					
+0x04 KB_KSCAN_CTRL_GHOST					
+0x08 KB_KSCAN_CTRL_INT						
+0x10 KB_KSCAN_CTRL_CLKON					
+0x20 KB_KSCAN_CTRL_FIFO_CLR				
+                  
+0 KB_KSCAN_STAT_EMPTY
+1 KB_KSCAN_STAT_FULL 					
+2 KB_KSCAN_STAT_OVERFLOW				
+6 KB_KSCAN_STAT_GHOST 
+
+0 KB_KSCAN_KEY_EVENT_STAT
+0 KB_KSCAN_KEY_PRESS	
+1 KB_KSCAN_KEY_RELEASE
+
+)
+(
+0 CACEL_RECONN_FLAG
+1 KEY_EVENT_FLAG
+2 KEY_SEARCH_M_KEY_FLAG
+3 CHECK_VDD_LOW_FLAG
+)
+
+// MACRO for map2
+
+// MACRO for map2
+
+//map2 Functions definition
+ 0x00 KB_MAP2_FUNC_REPORT0
+ 0x01 KB_MAP2_FUNC_REPORT1
+ 0x02 KB_MAP2_FUNC_REPORT2
+ 0x80 KB_MAP2_FUNC_IGNORE
+ 0x81 KB_MAP2_FUNC_DISCOV
+ 0x82 KB_MAP2_FUNC_WIN
+ 0x83 KB_MAP2_FUNC_ANDROID
+ 0x84 KB_MAP2_FUNC_IOS
+ 0x85 KB_MAP2_FUNC_DEV1
+ 0x86 KB_MAP2_FUNC_DEV2
+ 0x87 KB_MAP2_FUNC_DEV3
+ 
+//map2 Status definition (bit map)
+ 0x01 KB_MAP2_STATUS_WIN
+ 0x02 KB_MAP2_STATUS_ANDROID
+ 0x04 KB_MAP2_STATUS_IOS
+ 0x10 KB_MAP2_STATUS_CONN
+ 0x20 KB_MAP2_STATUS_UNCONN
+ 
+ 0x00 KB_MAP2_STATUS_BIT_WIN
+ 0x01 KB_MAP2_STATUS_BIT_ANDROID
+ 0x02 KB_MAP2_STATUS_BIT_IOS
+ 0x04 KB_MAP2_STATUS_BIT_CONN
+ 0x05 KB_MAP2_STATUS_BIT_UNCONN
+
+// map2 report length
+8 KB_MAP2_REPORT_LENGTH
+0x08 KB_VK_MAX_LEN
+
+//map2 device button state
+0 KB_DEVICE_BUTTON_UP
+1 KB_DEVICE_BUTTON_DEVICE1
+2 KB_DEVICE_BUTTON_DEVICE2
+3 KB_DEVICE_BUTTON_DEVICE3
+0xff KB_DEVICE_BUTTON_ALREADY_LONG
+)
+
+//
+(
+0x01 REPORT_ID_1
+0x02 REPORT_ID_2
+0x03 REPORT_ID_3
+)
+
+(
+1 FLAG_VDD_LOW
+0 FLAG_VDD_NOT_LOW
+
+0x1fe9 EEPROM_ADDR_VDD_FLAG
+0x1fea EEPROM_ADDR_VDD_LOW_FLAG
+0x1fec EEPROM_SYSTEM_FALG
+
+)
+
+//Specil Function Key
+(
+0XFF SFK_ANDROID_MAP
+0XFE SFK_IOS_SCREENSHOT
+
+)
+0x39 CAPS_LOCK_DATA
+)
+
+(
+2 KB_TEST_MODE
+)
+/* special key codes */
+(
+0x1d KB_KCODE_1_M1
+0x27 KB_KCODE_0
+0x28 KB_KCODE_ENTER
+0x2a KB_KCODE_BKSP
+)
+
+/*DATA OUTPUT report id = 1*/
+0 KB_NUM_LOCK_SELECTED
+1 KB_CAPS_LOCK_SELECTED
+2 KB_SCROLL_LOCK_SELECTED
+
+
+0x1f  KB_UI_BUTTON_GPIO
+
+
+
+
+memalloc(
+0 mem_l2cap_mem_start
+// L2CAP RX 
+2 mem_l2cap_rxbuff1_len
+2 mem_l2cap_rxbuff2_len
+2 mem_l2cap_rxbuff_new
+1 mem_l2cap_rxbuff_inuse
+2 mem_l2cap_payload_ptr
+2 mem_l2cap_rx_pkt_length
+2 mem_l2cap_rx_cid
+1 mem_l2cap_rx_done
+
+
+
+// L2CAP TX Signal channel
+2 mem_l2cap_signal_tx_buff_ptr
+2 mem_l2cap_signal_tx_payload_ptr
+2 mem_l2cap_signal_tx_length
+// L2CAP TX SDP channel
+2 mem_sdp_tx_buff_ptr
+2 mem_sdp_tx_payload_ptr
+2 mem_sdp_tx_pkt_length
+// L2CAP TX RFCOMM channel
+2 mem_rfcomm_tx_buff_ptr
+2 mem_rfcomm_tx_payload_ptr
+2 mem_rfcomm_tx_pkt_length
+
+
+
+//L2CAP Util
+
+2 memL2CAP_T1
+
+1 mem_CONTROL_tasks
+1 mem_send_config_req
+
+
+1 mem_config_identifier
+2 mem_config_req_dest_CID
+1 mem_rfcomm_malloc_fail_flag
+
+//L2CAP STATE MACHINE
+1 mem_message_to_uppersm
+1 mem_upper_sm_remote_page
+1 mem_upper_sm_reconn
+1 mem_upper_sm_ss
+
+
+64 mem_tx_malloc_log
+0 mem_l2cap_mem_end
+
+
+2 mem_scid
+2 mem_cmd_length
+2 mem_tt2
+2 mem_tt3
+2 mem_id
+2 mem_psm
+
+
+4 mem_l2cap_sdpres_delay_time
+)
+
+xmemalloc(
+0 mem_l2cap_xmem_start
+//*******************L2CAP TX MULTI-PACKET*********************//
+2 mem_l2cap_tx_multi_offset //0 means single packet
+
+//*******************CHANNEL ID*********************//
+2 mem_sdp_remote_cid
+2 mem_rfcomm_remote_cid
+2 mem_hid_ctrl_remote_cid
+2 mem_hid_int_remote_cid
+//*******************CHANNEL STATE*********************//
+1 mem_sdp_state
+1 mem_rfcomm_state
+1 mem_hid_control_state
+1 mem_hid_interrupt_state
+1 mem_spp_state
+1 mem_ML2CAP_comm_id
+
+//*******************L2CAP malloc********************//
+1 mem_used_map
+0 mem_tx_fifo0
+1 mem_tx_fifo0_map
+2 mem_tx_fifo0_ptr
+0 mem_tx_fifo1
+1 mem_tx_fifo1_map
+2 mem_tx_fifo1_ptr
+0 mem_tx_fifo2
+1 mem_tx_fifo2_map
+2 mem_tx_fifo2_ptr
+0 mem_tx_fifo3
+1 mem_tx_fifo3_map
+2 mem_tx_fifo3_ptr
+0 mem_tx_fifo_end
+256 mem_l2cap_lpm_txbuf
+//*******************MISC*********************//
+1 mem_l2cap_flow_ctrl_flag
+1 mem_l2cap_pending_item
+0 mem_l2cap_xmem_end
+
+)
+
+
+//mem_l2cap_lpm_txbuf
+(
+256 l2cap_lpm_txbuf_len
+)
+
+(
+4 L2CAP_TX_FIFO_SIZE
+8 L2CAP_TX_BUFF_CNT
+
+)
+(
+0x0002 L2CAP_SIG_EXT_FEATRUE
+0x0003 L2CAP_SIG_FIX_FEATRUE
+)
+
+
+(
+0 HS_IDLE
+1 AG_INIT_CALL
+2 HS_INIT_CALL
+)
+(
+0 M_ACL_LINK_ABSENT
+1 M_ACL_LINK_EXIST
+)
+
+(
+0 L2CAP_INUSE_BUFF1
+1 L2CAP_INUSE_BUFF2
+)
+/* upper layer interface w/ lower layer */
+(
+1 MAX_NUM_LINKS_ALLOWED
+1 MAX_NUM_SCO_ALLOWED
+1 ACL_LINK_PRESENT
+0 ACL_LINK_ABSENT
+)
+(
+1 L2CAP_RX_DONE 
+0 L2CAP_RX_CLEAR
+)
+/* Scheduler */
+(
+0 L2CAP_DISCONNECT_INTERRUPT
+1 RFCOMM_wants_service
+2 L2CAP_sig_Tx_buff_full
+3 RFCOMM_Tx_buff_full
+4 SDP_Tx_buff_full
+5 got_complete_L2CAP_pkt	
+6 L2CAP_init_Config_Req
+7 L2CAP_DISCONNECT_CONTROL
+)
+
+/* mem_CONTROL_tasks2 */
+(
+0 UI_NEED_SERVICE
+)
+/* L2CAP logic channel identifiers (2 bytes) p.261 */
+(
+0x0001 L2CAP_signal_channel
+0x0050 L2CAP_SDP_channel
+0x0051 L2CAP_RFCOMM_channel
+0x0052 L2CAP_HID_Control_channel   
+0x0053 L2CAP_HID_Interrupt_channel
+0x0077 L2CAP_AVDTP_signal_channel		//------avdtp
+0x0078 L2CAP_AVDTP_media_channel
+0x0079 L2CAP_AVDTP_report_channel
+0x0080 L2CAP_AVDTP_recovery_channel
+0x00dd L2CAP_AVCTP_Control_channel
+)
+/* L2CAP signalling command codes (1 byte) p.284 */
+(
+0x00 reserved
+0x01 signal_cmd_reject
+0x02 signal_connect_req
+0x03 signal_connect_rsp
+0x04 signal_config_req
+0x05 signal_config_rsp
+0x06 signal_disconnect_req
+0x07 signal_disconnect_rsp
+0x08 signal_echo_req
+0x09 signal_echo_rsp
+0x0a signal_info_req
+0x0b signal_info_rsp
+)
+/* L2CAP signal_command_reject reason code (2 bytes), p.285 */
+(
+0x0000 cmd_not_understood
+0x0001 signalling_MTU_exceeded
+0x0002 invalid_CID_in_req
+)
+/* L2CAP PSM values used in signal_connect_req (2 bytes), p.286 */
+(
+0x0001 PSM_SDP
+0x0003 PSM_RFCOMM
+0x0005 PSM_TCS
+0x0011 PSM_HID_control
+0x0013 PSM_HID_interrupt
+0x0017 PSM_AVCTP
+0x0019 PSM_AVDTP
+)
+/* L2CAP connection response result code (2 bytes), p.288 */
+(
+0x0000 L2CAP_connect_successful
+0x0001 L2CAP_connect_pending
+0x0002 L2CAP_connect_refused_PSM_unsupported
+0x0003 L2CAP_connect_refused_security_block
+0x0004 L2CAP_connect_refused_no_resources
+)
+/* L2CAP connection status values (2 bytes), p.288 */
+(
+0x0000 L2CAP_no_info_available
+0x0001 L2CAP_authentication_pending
+0x0002 L2CAP_authorization_pending
+)
+/* L2CAP configuration response result code (2 bytes), p.292 */
+(
+0x0000 L2CAP_config_success
+0x0001 L2CAP_config_failure_bad_parameters
+0x0002 L2CAP_config_failure_no_reason
+0x0003 L2CAP_config_failure_unknown_options
+)
+/* L2CAP constant definitions */
+(
+128 L2CAP_Rx_buff_size
+48  L2CAP_signal_Tx_buff_size
+128 SDP_Tx_buff_size
+128 RFCOMM_Tx_buff_size
+1 AM_ADDRESS
+3 DM1TYPE
+4 DH1TYPE
+11 DH3TYPE
+8 DVTYPE
+0 channel_state_closed
+1 channel_state_config
+2 channel_state_open
+0x0030 L2CAP_config_MTU_SDP
+0xffff L2CAP_config_ftimeout_SDP
+0x03e3 L2CAP_config_MTU_RFCOMM
+0xffff L2CAP_config_ftimeout_RFCOMM
+260 l2cap_max_pkt_len
+)
+
+(
+0 FAILURE
+1 SUCCESS
+2 IN_PROGRESS
+)
+(
+0x00	IDLE
+0x01	WAIT_4_BB_PAGE
+0x02	WAIT_4_LMP_CONN
+0x03	WAIT_4_SCO_CONN
+0x04	WAIT_4_SCO_KILLED
+)
+
+/*mem_master_mss*/
+(
+0 STOP_ENC
+1 SEND_SWITCH_REQ
+)
+(
+0 HF_HS_READY
+1 HF_AG_READY
+)
+/* mem_hf_state */
+(
+0 HF_STATE_WAITING_RFCOMM_CONN
+1 HF_STATE_HF_SEND_FEATURE
+2 HF_STATE_WAITING_AG_FEATURE_OK
+3 HF_STATE_HF_SEND_INDICATORS
+4 HF_STATE_WAITING_AG_INDICATORS_OK
+5 HF_STATE_HF_SEND_CURR_STATUS
+6 HF_STATE_WAITING_AG_STATUS_OK
+7 HF_STATE_HF_SEND_UPDATE_STATUS
+8 HF_STATE_WAITING_AG_UPDATE_STATUS_OK
+9 HF_STATE_CONNECTED
+0x0a HF_STATE_HF_SEND_RECEIVE_INFO
+0x0b HF_STATE_WAITING_AG_INFO
+0x0c HF_STATE_HF_SEND_AT_CLIP
+0x0d HF_STATE_WAITING_AT_CLIP
+0x0e HF_STATE_HF_SEND_AT_CCWA
+0x0f HF_STATE_WAITING_AT_CCWA
+)
+/*mem_hf_call_state*/
+(
+0 HF_CALL_STATE_INACTIVE
+1 HF_CALL_STATE_SETUP
+2 HF_CALL_STATE_ACTIVE 
+)
+/* mem_pairing_state bit definition */
+(
+0 PAIR_INQUIRY_START
+1 PAIR_INQUIRY_TIME_OUT
+2 PAIR_INQUIRY_FAILED
+3 PAIR_INQUIRY_SUCCESS
+4 PAIR_READY_CONN
+5 PAIR_WAIT_CANCEL_RESPONSE
+6 PAIR_CONN_SUCCESS
+7 PAIR_WAIT_DETACH
+)  
+
+/* mem_pairing_mode bit definition */
+(
+0 FORCE_AUTHENTICATION
+)
+/* mem_hid_protecol_type */
+(
+0 PROTECOL_BOOT /*default*/
+1 PROTECOL_REPORT
+)
+
+/* mem_upper_sm_reconn */
+(
+1 UPPERSM_SEND_SDP_CONN_REQ
+2 UPPERSM_SEND_SDP_CFG_REQ
+3 UPPERSM_SEND_SDP_HF_SS
+4 UPPERSM_SEND_SDP_DISC_REQ
+5 UPPERSM_SEND_RFCOMM_CONN_REQ
+6 UPPERSM_SEND_RFCOMM_CFG_REQ
+7 UPPERSM_SEND_SABM_CMD
+8 UPPERSM_SEND_DISC
+9 UPPERSM_SEND_WAIT
+10 UPPERSM_SEND_HID_CONTROL_CONN_REQ
+11 UPPERSM_SEND_HID_CONTROL_CFG_REQ
+12 UPPERSM_SEND_HID_INTERRUPT_CONN_REQ
+13 UPPERSM_SEND_HID_INTERRUPT_CFG_REQ
+14 UPPERSM_SEND_SDP_HS_SS
+15 UPPERSM_SEND_SDP_PBAP_SS
+16 UPPERSM_SEND_SDP_AVTARG_SS
+)
+/* mem_upper_sm_remote_page */
+(
+1 UPPERSM_RP_SEND_SDP_CONN_REQ
+2 UPPERSM_RP_SEND_SDP_CFG_REQ
+3 UPPERSM_RP_SEND_SDP_HF_SS
+4 UPPERSM_RP_SEND_SDP_HS_SS
+5 UPPERSM_RP_SEND_SDP_PBAP_SS
+6 UPPERSM_RP_SEND_SDP_AVTARG_SS
+7 UPPERSM_RP_SEND_SDP_DISC_REQ
+8 UPPERSM_RP_SEND_AVCTP_CONN_REQ
+9 UPPERSM_RP_SEND_AVCTP_CFG_REQ
+)
+
+/* mem_ML2CAP_flag */
+(
+0 MSCHEDULER_HID_CONTROL_CONN_DONE
+1 MSCHEDULER_HID_INTERRUPT_CONN_DONE
+2 MSCHEDULER_HID_CONTROL_CFG_REQ_DONE
+3 MSCHEDULER_HID_CONTROL_CFG_RSP_DONE
+4 MSCHEDULER_HID_INTERRUPT_CFG_REQ_DONE
+5 MSCHEDULER_HID_INTERRUPT_CFG_RSP_DONE
+6 MSCHEDULER_HID_CONTROL_DISC_DONE
+7 MSCHEDULER_HID_INTERRUPT_DISC_DONE
+)
+/*    ui event    --add by lj*/
+(
+0x00 UI_DATA_EVNET_NONE
+0x01 UI_DATA_EVNET_HID
+0x02 UI_DATA_EVNET_AVDTP_S
+0x03 UI_DATA_EVNET_AVDTP_M
+0x04 UI_DATA_EVNET_AVCTP
+0x05 UI_DATA_EVNET_HS
+0x06 UI_DATA_EVNET_HF
+0x07 UI_DATA_EVNET_SPP
+0x08 UI_DATA_EVNET_OBEX
+)
+/*    ui ack --add by lj*/
+(
+0x00 UI_DATA_TX_NONE
+0x01 UI_DATA_TX_HID
+0x02 UI_DATA_TX_AVDTP_S
+0x03 UI_DATA_TX_AVDTP_M
+0x04 UI_DATA_TX_AVCTP
+0x05 UI_DATA_TX_HS
+0x06 UI_DATA_TX_HF
+0x07 UI_DATA_TX_SPP
+0x08 UI_DATA_TX_OBEX
+0x10 ACL_TX_L2CAP_SIGNAL
+0x11 ACL_TX_SDP
+0x12 ACL_TX_RFCOMM
+
+)
+
+(
+0 L2CAP_SDP_interface_conn
+1 L2CAP_SDP_interface_cfg
+)
+
+(                                   
+0 L2CAP_CHANNEL_STATE_CONN_REQ      
+1 L2CAP_CHANNEL_STATE_CONN_RES      
+2 L2CAP_CHANNEL_STATE_SND_CFG_REQ   
+3 L2CAP_CHANNEL_STATE_SND_CFG_RES   
+4 L2CAP_CHANNEL_STATE_RCV_CFG_REQ   
+5 L2CAP_CHANNEL_STATE_RCV_CFG_RES
+6 L2CAP_CHANNEL_RFCOMM_ONLY_SABM
+7 L2CAP_CHANNEL_RFCOMM_ONLY_UA
+6 L2CAP_CHANNEL_AVDTP_SIGNAL_INIT //set avdtp init complete
+6 L2CAP_CHANNEL_HID_HANDSHAKE_DONE
+0x3f L2CAP_CHANNEL_SETUP_COMPLETE
+0x7f L2CAP_CHANNEL_AVDTP_SIGNAL_COMPLETE
+0xff L2CAP_CHANNEL_RFCOMM_DLCI0_OPENED
+)                                     
+
+/*  AVDTP---lj*/
+(
+0 L2CAP_AVDTP_SIGNAL_CONNECT
+1 L2CAP_AVDTP_SIGNAL_CONFIG
+2 L2CAP_AVDTP_MEDIA_CONNECT
+3 L2CAP_AVDTP_MEDIA_CONFIG
+4 L2CAP_AVDTP_REPORT_CONNECT
+5 L2CAP_AVDTP_REPORT_CONFIG
+6 L2CAP_AVDTP_RECOVERY_CONNECT
+7 L2CAP_AVDTP_RECOVERY_CONFIG
+)
+/*  AVCTP---lj*/
+(
+0 L2CAP_AVCTP_SIGNAL_CONNECT
+1 L2CAP_AVCTP_SIGNAL_CONFIG
+)
+
+127 L2CAP_SIGNAL_MALLOC_SIZE
+
+//1 mem_rfcomm_malloc_fail_flag
+(
+0 RFCOMM_MALLOC_SUCCEED
+1 RFCOMM_MALLOC_FAIL
+)
+
+//mem_l2cap_flow_ctrl_flag
+(
+0 L2CAP_FLOW_CTRL_DISABLE
+1 L2CAP_FLOW_CTRL_ENABLE
+)
+
+
+memalloc(
+56 mem_le_rxbuf
+262 mem_le_l2capbuf
+
+/* security temp */
+4 mem_le_mic
+4 mem_le_peer_mic
+//8 mem_le_skdm
+//8 mem_le_skds
+16 mem_le_peer_ltk
+16 mem_le_mrand
+
+
+/* ========= le context =========== */
+1 mem_le_state
+1 mem_le_mode
+2 mem_le_tsniff
+4 mem_le_anchor
+6 mem_le_clk_offset
+2 mem_le_receive_window
+6 mem_le_plap
+1 mem_le_conn_handle
+1 mem_le_arq
+1 mem_le_ch
+1 mem_le_hop
+2 mem_le_event_count
+4 mem_le_supervision_timer
+2 mem_le_instant
+1 mem_le_channels
+1 mem_le_op
+
+	/* these 3 should NOT be seperated */
+4 mem_le_access
+3 mem_le_crcinit
+1 mem_le_window_size
+
+	/* these 3 should NOT be seperated */
+2 mem_le_slave_latency
+2 mem_le_superto
+5 mem_le_channel_map
+
+2 mem_le_no_using
+1 mem_le_peer_sca
+
+/* should be together */
+1 mem_le_att_opcode
+2 mem_le_att_handle
+
+1 mem_le_err_code
+1 mem_le_ll_pairing_fail_reason
+
+16 mem_le_sk
+
+/* test */
+1 mem_le_testtype
+2 mem_le_test_sync
+2 mem_le_test_pcnt
+
+6 mem_le_rxon_ts
+
+1 mem_le_rx_ll_opcode
+
+2 mem_le_notify_attr_start
+1 mem_le_notify_len
+
+1 mem_cmd_le_create_conn
+
+2 mem_le_cur_attlist_start_ptr
+2 mem_le_cur_handle_start
+2 mem_le_cur_handle_end
+1 mem_le_cur_uuid_length
+16 mem_le_cur_uuid
+
+1 mem_le_curr_att_len
+1 mem_le_search_res
+
+1 mem_le_continue_type
+)
+
+
+xmemalloc(
+2 mem_le_dsniff
+
+// parameters
+2 mem_le_conn_interval
+1 mem_le_scan_enable
+2 mem_le_scan_interval
+2 mem_le_scan_window
+
+1 mem_le_adv_enable
+1 mem_le_adv_data_len
+31 mem_le_adv_data
+1 mem_le_scan_data_len
+31 mem_le_scan_data
+
+//modified name
+1 mem_le_name_len
+30 mem_le_name
+
+//37 mem_le_chmap
+
+
+5 mem_le_new_map
+0 mem_le_new_param
+1 mem_le_new_transmitwindowsize
+2 mem_le_new_transmitwindowoffset
+2 mem_le_new_conninterval
+2 mem_le_new_connslavelatency
+2 mem_le_new_connsupervisiontimeout
+
+1 mem_le_txheader
+1 mem_le_txlen
+2 mem_le_txpayload
+2 mem_le_txcid
+1 mem_le_l2cap
+1 mem_le_l2cap_response
+31 mem_le_txbdy
+
+/* smp related */
+5 mem_le_pcnt_tx
+5 mem_le_pcnt_rx
+4 mem_le_last_mic
+4 mem_le_ivm
+4 mem_le_ivs
+16 mem_le_ltk
+1 mem_ltk_exists
+16 mem_le_rconfirm
+16 mem_le_srand
+1 mem_le_iat
+1 mem_le_rat
+1 mem_le_preq
+1 mem_le_preq_iocap
+1 mem_le_preq_oob
+1 mem_le_preq_auth
+1 mem_le_preq_max_keysize
+1 mem_le_preq_init_key_distribution
+1 mem_le_preq_resp_key_distribution
+1 mem_le_pres
+1 mem_le_pres_iocap
+1 mem_le_pres_oob
+1 mem_le_pres_auth
+1 mem_le_pres_max_keysize
+1 mem_le_pres_init_key_distribution
+1 mem_le_pres_resp_key_distribution
+
+/* att related */
+2 mem_le_search_handle_start
+2 mem_le_search_handle_end
+0 mem_le_att_offset
+1 mem_le_search_att_type_length
+16 mem_le_search_att_type
+2 mem_le_notify_handle
+1 mem_le_search_uuid_length
+16 mem_le_search_uuid
+
+
+//START of LE adv parameter structure
+0 mem_le_adv_param
+2 mem_le_adv_interval
+1 mem_le_adv_type
+1 mem_le_adv_own_addr_type
+1 mem_le_adv_direct_addr_type
+6 mem_le_adv_direct_addr
+1 mem_le_adv_channel_map
+//END of LE adv parameter structure
+
+//START of LE conn parameter structure
+0 mem_le_conn_param
+1 mem_le_conn_peer_addr_type
+6 mem_le_conn_peer_addr
+1 mem_le_conn_own_addr_type
+2 mem_le_interval_min
+2 mem_le_interval_max
+2 mem_le_latency
+2 mem_le_timeout
+//START of LE conn parameter structure
+
+//START of LE scan parameter structure
+0 mem_le_scan_params
+1 mem_le_scan_type
+1 mem_le_scan_own_addr_type
+//END of LE scan parameter structure
+
+3 mem_le_lap
+1 mem_le_uap
+2 mem_le_nap
+
+2 mem_le_local_mtu
+2 mem_le_remote_mtu
+
+8 mem_le_skdm
+8 mem_le_skds
+
+2 mem_le_init_superto
+2 mem_ui_le_uuid_table 
+
+1 mem_le_secure_connect_enable
+1 mem_le_secure_connect_flag
+1 mem_le_sc_calc
+1 mem_le_secure_connect_state
+1 mem_le_sc_confirm_gkey_flag
+1 mem_le_sc_local_key_invalid
+
+
+1 mem_le_pairing_state
+1 mem_le_enc_state
+1 mem_le_pairing_mode
+4 mem_le_tk
+2 mem_le_ediv
+8 mem_le_rand
+16 mem_le_irk
+
+//LE attribute list
+4 mem_le_transmit_window
+
+//ble General configuration 
+1 mem_le_configuration
+16 mem_le_fixed_ltk
+2 mem_le_pairing_handle
+
+//for continue
+2 mem_le_l2cap_size
+1 mem_le_packet_len_recved
+
+//for fifo
+1 mem_le_tx_buff_used
+2 mem_le_tx_ptr0
+2 mem_le_tx_ptr1
+2 mem_le_tx_ptr2
+2 mem_le_tx_ptr3
+
+//ble gatt signaling
+1 mem_le_signaling_identifier
+2 mem_le_l2cap_signaling_conn_param_update_rsp_result
+
+1 mem_le_packet_size
+1 mem_le_packet_llid
+2 mem_le_payload_ptr
+
+1 mem_le_md_count
+)
+
+(
+20 notify_handle
+2 param_max_slaves
+1636 param_sifs
+0x000a06 param_le_version
+0x1d87 param_le_subversion
+0x000001 param_le_features
+23 param_le_mtu
+16 param_le_scan_interval
+16 param_le_scan_window
+0x1e0 param_clke_cal_le
+0x1000302 param_smp_paring_response		/* for mouse, noinputnooutput */
+0x010410 param_smp_key_dist	
+0xa0 param_le_sca
+)
+
+(
+0 DEFAULT_STATES
+1 IPHONE_LOST_LTK
+2 MODULE_LOST_LTK
+3 LTK_NOT_LOST
+)
+
+(
+0 FLAG_BLE_INSUFFICIENT_AUTHENTICATION
+1 FLAG_BLE_COPY_MASTER_DATA_TO_ATT_LIST
+)
+
+/*LE MOUSE-KB*/
+(
+1 LE_CONTEXT_STATE_KB
+2 LE_CONTEXT_STATE_MOUSE
+
+3 USB_MOUSE_DATA_CMD
+
+1 SEND_MOUSE_DATA_CMD
+2 SEND_KB_DATA_CMD
+)
+
+
+  (
+  	0 LE_M_STATE_SLAVE1_STANDBY
+  	1 LE_M_STATE_SLAVE1_ADVERTISING
+  	2 LE_M_STATE_SLAVE1_SCANNING
+  	3 LE_M_STATE_SLAVE1_INITIATING
+  	4 LE_M_STATE_SLAVE1_CONNECTED
+  	5 LE_M_STATE_SLAVE1_RFU_1
+  	6 LE_M_STATE_SLAVE1_RFU_2
+  	7 LE_M_STATE_SLAVE1_RFU_3
+  )
+
+  (
+  	0 LE_M_STATE_SLAVE2_STANDBY
+  	1 LE_M_STATE_SLAVE2_ADVERTISING
+  	2 LE_M_STATE_SLAVE2_SCANNING
+  	3 LE_M_STATE_SLAVE2_INITIATING
+  	4 LE_M_STATE_SLAVE2_CONNECTED
+  	5 LE_M_STATE_SLAVE2_CONNECT_INIT
+  	6 LE_M_STATE_SLAVE2_RFU_2
+  	7 LE_M_STATE_SLAVE2_RFU_3
+  )
+
+  	(
+	0 LE_SM_IDLE
+	1 LE_SM_FBTV_1800
+	2 LE_SM_FBTV_1800_WAIT
+	3 LE_SM_RBT_DEVICE_NAME
+	4 LE_SM_RBT_DEVICE_NAME_WAIT
+	5 LE_SM_FBTV_1801
+	6 LE_SM_FBTV_1801_WAIT
+	7 LE_SM_RBT_DEVICE_CHARACTER
+	8 LE_SM_RBT_DEVICE_CHARACTER_WAIT
+	
+  	)
+
+/* advertising channel PDU type */
+(
+0 ADV_IND
+1 ADV_DIRECT_IND
+2 ADV_NONCONN_IND
+3 SCAN_REQ
+4 SCAN_RSP
+5 CONNECT_REQ
+6 ADV_SCAN_IND
+)
+
+	/* tx packet type */
+	(
+	0x20 XT_LL_CONNECTION_UPDATE_REQ
+	0x21 XT_LL_CHANNEL_MAP_REQ
+	0x22 XT_LL_TERMINATE_IND
+	0x23 XT_LL_ENC_REQ
+	0x24 XT_LL_ENC_RSP
+	0x25 XT_LL_START_ENC_REQ
+	0x26 XT_LL_START_ENC_RSP
+	0x27 XT_LL_UNKNOWN_RSP
+	0x28 XT_LL_FEATURE_REQ
+	0x29 XT_LL_FEATURE_RSP
+	0x2A XT_LL_PAUSE_ENC_REQ
+	0x2B XT_LL_PAUSE_ENC_RSP
+	0x2C XT_LL_VERSION_IND
+	0x2D XT_LL_REJECT_IND
+	0x2E XT_LL_SLAVE_FEATURE_REQ
+	0x2F XT_LL_CONNECTION_PARAM_REQ
+	0x30 XT_LL_CONNECTION_PARAM_RSP
+	0x31 XT_LL_REJECT_IND_EXT
+	0x32 XT_LL_PING_REQ
+	0x33 XT_LL_PING_RSP
+	0x41 XT_SMP_PAIRING_REQUEST
+	0x42 XT_SMP_PAIRING_RESPONSE
+	0x43 XT_SMP_PAIRING_CONFIRM
+	0x44 XT_SMP_PAIRING_RANDOM
+	0x45 XT_SMP_PAIRING_FAILED
+	0x46 XT_SMP_ENCRYPTION_INFORMATION
+	0x47 XT_SMP_MASTER_IDENTIFICATION
+	0x48 XT_SMP_IDENTITY_INFORMATION
+	0x49 XT_SMP_IDENTITY_ADDRESS_INFORMATION
+	0x4A XT_SMP_SIGNING_INFORMATION
+	0x4B XT_SMP_SECURITY_REQUEST
+	0x4c XT_SMP_PAIRING_PUBLIC_KEY
+	0x4d XT_SMP_PAIRING_DHKEY_CHECK
+	)
+
+
+	/* LE control packet type */
+	(
+	0x00 LL_CONNECTION_UPDATE_REQ
+	0x01 LL_CHANNEL_MAP_REQ
+	0x02 LL_TERMINATE_IND
+	0x03 LL_ENC_REQ
+	0x04 LL_ENC_RSP
+	0x05 LL_START_ENC_REQ
+	0x06 LL_START_ENC_RSP
+	0x07 LL_UNKNOWN_RSP
+	0x08 LL_FEATURE_REQ
+	0x09 LL_FEATURE_RSP
+	0x0A LL_PAUSE_ENC_REQ
+	0x0B LL_PAUSE_ENC_RSP
+	0x0C LL_VERSION_IND
+	0x0D LL_REJECT_IND
+	0x0E LL_SLAVE_FEATURE_REQ
+	0x0F LL_CONNECTION_PARAM_REQ
+	0x10 LL_CONNECTION_PARAM_RSP
+	0x11 LL_REJECT_IND_EXT
+	0x12 LL_PING_REQ
+	0x13 LL_PING_RSP
+	)
+
+	/* Security Manager Protocol Code */
+	(
+	0x01 SMP_PAIRING_REQUEST
+	0x02 SMP_PAIRING_RESPONSE
+	0x03 SMP_PAIRING_CONFIRM
+	0x04 SMP_PAIRING_RANDOM
+	0x05 SMP_PAIRING_FAILED
+	0x06 SMP_ENCRYPTION_INFORMATION
+	0x07 SMP_MASTER_IDENTIFICATION
+	0x08 SMP_IDENTITY_INFORMATION
+	0x09 SMP_IDENTITY_ADDRESS_INFORMATION
+	0x0A SMP_SIGNING_INFORMATION
+	0x0B SMP_SECURITY_REQUEST
+	0x0c SMP_PAIRING_PUBLIC_KEY
+	0x0d SMP_PAIRING_DHKEY_CHECK
+	)
+
+	/* ATT OPCODE */
+	(
+	0x01 ATTOP_ERROR_RESPONSE
+	0x02 ATTOP_EXCHANGE_MTU_REQUEST
+	0x03 ATTOP_EXCHANGE_MTU_RESPONSE
+	0x04 ATTOP_FIND_INFORMATION_REQUEST
+	0x05 ATTOP_FIND_INFORMATION_RESPONSE
+	0x06 ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+	0x07 ATTOP_FIND_BY_TYPE_VALUE_RESPONSE
+	0x08 ATTOP_READ_BY_TYPE_REQUEST
+	0x09 ATTOP_READ_BY_TYPE_RESPONSE
+	0x0A ATTOP_READ_REQUEST
+	0x0B ATTOP_READ_RESPONSE
+	0x0C ATTOP_READ_BLOB_REQUEST
+	0x0D ATTOP_READ_BLOB_RESPONSE
+	0x0E ATTOP_READ_MULTIPLE_REQUEST
+	0x0F ATTOP_READ_MULTIPLE_RESPONSE
+	0x10 ATTOP_READ_BY_GROUP_TYPE_REQUEST
+	0x11 ATTOP_READ_BY_GROUP_TYPE_RESPONSE
+	0x12 ATTOP_WRITE_REQUEST
+	0x13 ATTOP_WRITE_RESPONSE
+	0x16 ATTOP_PREPARE_WRITE_REQUEST
+	0x17 ATTOP_PREPARE_WRITE_RESPONSE
+	0x18 ATTOP_EXECUTE_WRITE_REQUEST
+	0x19 ATTOP_EXECUTE_WRITE_RESPONSE
+	0x1B ATTOP_HANDLE_VALUE_NOTIFICATION
+	0x1D ATTOP_HANDLE_VALUE_INDICATION
+	0x1E ATTOP_HANDLE_VALUE_CONFIRMATION
+	0x52 ATTOP_WRITE_COMMAND
+	0xD2 ATTOP_SIGNED_WRITE_COMMAND
+	0x1f ATTOP_CONTINUE
+	0x9e EMPTY_LE_DATA_PRE
+	0x9f EMPTY_LE_DATA
+	)
+
+	/* ATT error code */
+	(
+	0x01 ATT_ERR_INVALID_HANDLE
+	0x02 ATT_ERR_READ_NOT_PERMITTED
+	0x03 ATT_ERR_WRITE_NOT_PERMITTED
+	0x04 ATT_ERR_INVALID_PDU
+	0x05 ATT_ERR_INSUFFICIENT_AUTHENTICATION
+	0x06 ATT_ERR_REQUEST_NOT_SUPPORTED
+	0x07 ATT_ERR_INVALID_OFFSET
+	0x08 ATT_ERR_INSUFFICIENT_AUTHORIZATION
+	0x09 ATT_ERR_PREPARE_QUEUE_FULL
+	0x0A ATT_ERR_ATTRIBUTE_NOT_FOUND
+	0x0B ATT_ERR_ATTRIBUTE_NOT_LONG
+	0x0C ATT_ERR_INSUFFICIENT_ENCRYPTION_KEY_SIZE
+	0x0D ATT_ERR_INVALID_ATTRIBUTE_VALUE_LENGTH
+	0x0E ATT_ERR_UNLIKELY_ERROR
+	0x0F ATT_ERR_INSUFFICIENT_ENCRYPTION
+	0x10 ATT_ERR_UNSUPPORTED_GROUP_TYPE
+	0x11 ATT_ERR_INSUFFICIENT_RESOURCES
+	)
+	/*	SERVICE UUID	*/
+	(
+	0x1800 UUID_SERVICE_GENERIC_ACC
+	0x1801 UUID_SERVICE_GENERIC_ATT
+	0x180a UUID_SERVICE_DEVICE_INFO
+	0x180f UUID_SERVICE_BATTERY
+	0x1812 UUID_SERVICE_HIDS
+	0x2800 UUID_GATT_PRIMARY_SERVICE
+	0x2801 UUID_GATT_SECONDARY_SERVICE
+	0X2802 UUID_GATT_INCLUDE
+	0X2803 UUID_GATT_CHARACTERISTIC
+	0X2A00 UUID_CHRCTR_DEVICE_NAME
+	0X2A19 UUID_CHRCTR_BATTERY_LEVEL
+	0X2A22 UUID_CHRCTR_KEYBOARD_INPUT
+	0X2A23 UUID_CHRCTR_SYSTEM_ID 
+	0X2A25 UUID_CHRCTR_SERIAL_NUMBER
+	0X2A26 UUID_CHRCTR_FIRMWARE
+	0X2A32 UUID_CHRCTR_KEYBOARD_OUTPUT
+	0X2A33 UUID_CHRCTR_MOUSE_INPUT
+	0X2A4A UUID_CHRCTR_HID_INFO
+	0X2A4B UUID_CHRCTR_REPORT_MAP
+	0X2A4C UUID_CHRCTR_HID_CTRL_POINT
+	0X2A4D UUID_CHRCTR_REPORT
+	0X2A4E UUID_CHRCTR_PROTOCOL_MODE
+	)
+
+	(// pairing failed reason
+	0x00 PAIRING_FAILED_RESERVED
+	0X01 PAIRING_FAILED_PASSKEY_ENTRY_FAILED
+	0X02 PAIRING_FAILED_OOB_NOT_AVAILABLE
+	0X03 PAIRING_FAILED_AUTHENTICATION_REQUIRE
+	0X04 PAIRING_FAILED_CONFIRM_VALUE_FAILED
+	0X05 PAIRING_FAILED_PAIRING_NOT_SUPPORTED
+	0X06 PAIRING_FAILED_ENCRYPTION_KEY_SIZE
+	0X07 PAIRING_FAILED_COMMAND_NOT_SUPPORTED
+	0X08 PAIRING_FAILED_UNSPECIFIED_REASON
+	0X09 PAIRING_FAILED_REPEATED_ATTEMPTS
+	0X0A PAIRING_FAILED_INVALID_PARAMETERS
+	0X0B PAIRING_FAILED_DHKEY_CHECK_FAILED
+	0X0C PAIRING_FAILED_NUMERIC_COMPARISON_FAILED
+	0X0D PAIRING_FAILED_BR_EDR_PAIRING_IN_PROGRESS
+	0X0E PAIRING_FAILED_KEY_DERIVATION_GENERATION_NOT_ALLOWED
+	)
+
+	//modified_name
+	(
+	0x14 MAX_NAME_LEN
+	0x16 ADV_DATA_NAME_LEN
+	0X20 SPACE
+	
+	)
+	/* GATT Specifications*/
+	(
+	0X2900 CHARACTERTIC_EXTENDED_PROPERTIES
+	0X2901 CHARACTERTIC_USER_DESCRIPTION
+	0X2902 CLIENT_CHARACTERTIC_CONFIGURATION
+	0X2903 SERVER_CHARACTERTIC_CONFIGURATION
+	0X2904 CHARACTERTIC_PRESENTATION_FORMAT
+	0X2905 CHARACTERTIC_AGGREGATE
+	0X2906 VALID_RANGE
+	0X2907 EXTERNAL_REPORT_REFERENCE
+	0X2908 REPORT_REFERENCE
+	0X290B ENVIR_SENSING_CONFIGURATION
+	0X290C ENVIR_SENSING_MEASUREMENT
+	0X290D ENVIR_SENSING_TRIGGER_SETTING
+	)
+	/* LE L2CAP CID */
+	(
+	0x04 LE_L2CAP_CID_ATT
+	0x05 LE_L2CAP_CID_SIGNAL
+	0x06 LE_L2CAP_CID_SMP
+	)
+
+	//LE address type
+	(
+	0 LE_ADDR_TYPE_PUBLIC
+	1 LE_ADDR_TYPE_RANDOM
+	)
+	//LE address type bitmap
+	(
+	7 LE_RECEIVER_ADDR_BIT
+	6 LE_SENDER_ADDR_BIT
+	)
+	//LE SCAN TYPE
+	(
+	0x00 LE_SCAN_TYPE_PASSIVE //no SCAN_REQ shall be sent
+	0x01 LE_SCAN_TYPE_ACTIVE
+	)
+
+	//LE SCAN ENABLE
+	(
+	0x00 LE_SCAN_DISABLE
+	0x01 LE_SCAN_ENABLE
+	0x0101 LE_ACTIVE_SCAN_ENABLE
+	)
+
+	//LE FIND INFORMATION RESPONSE
+	//THE FORMAT OF THE INFORMATION DATA
+	(
+	0x01 UUID_SIZE_16BIT
+	0x02 UUID_SIZE_128BIT
+	)
+
+	(
+	0x0000 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
+	0x0001 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_REJECTED
+	)
+
+
+//	le_state_map 0-2 is reserved for state_inconn,state_insniff and state_sco
+(
+3 lestate_got_first_packet
+4 lestate_encryption
+5 lestate_update_param
+6 lestate_update_map
+)
+
+// 	le mode
+(
+0 lemode_idle
+1 lemode_slave
+3 lemode_master
+)
+
+(
+0x01 LLID_CONTINUE
+0x02 LLID_START
+0x03 LLID_LE_LL
+0x01 LLID_EMPTY
+)
+
+(
+4 LE_TX_BUFF_COUNT
+3 LE_TX_BUFF_UPDATE_LOOPCNT //LE_TX_BUFF_COUNT-1
+
+12 LE_MD_MAX_COUNT
+)
+
+(
+0 LE_CONTINUE_TYPE_NULL
+1 LE_CONTINUE_TYPE_NOTIFICATION
+2 LE_CONTINUE_TYPE_PREPARE_WRITE_RESPONSE 
+)
+
+(
+0X00	LE_PAIRING_MODE_NONE
+0X01	LE_PAIRING_MODE_LAGACY_JUSTWORK
+0X02	LE_PAIRING_MODE_LAGACY_PASSKEY
+0x81	LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK
+0x82	LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC
+0X83	LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY
+
+7 LE_PAIRING_MODE_SECURE_CONNECT_BIT
+)
+
+
+(
+0 FLAG_IOCAP_DISPLAYONLY
+1 FLAG_IOCAP_DISPLAYYESNO
+2 FLAG_IOCAP_KEYBOARDONLY
+3 FLAG_IOCAP_NOINPUTNOOUTPUT
+4 FLAG_IOCAP_KEYBOARDDISPLAY
+
+0x00 FLAG_OOB_DATA_FLAG_NO
+)
+
+(
+0X00 FLAG_LE_NO_BONDING_NO_MITM
+0X01 FLAG_LE_BONDING_NO_MITM
+0X04 FLAG_LE_NO_BONDING_MITM
+0X05 FLAG_LE_BONDING_MITM
+0X09 FLAG_LE_BONDING_NO_MITM_SECURE
+0X0D FLAG_LE_BONDING_MITM_SECURE
+
+2 LE_AUTH_MITM_BIT
+3 LE_AUTH_SECURE_CONNECTION_PAIRING_BIT
+)
+
+(
+0  LE_FIND_BY_TYPE_VAL_RES_NOT_FOUND
+1  LE_FIND_BY_TYPE_VAL_RES_FOUND_STARTING_HANDLE
+2  LE_FIND_BY_TYPE_VAL_RES_FOUND_ENDING_HANDLE
+
+)
+
+(
+0 MASTER_PUBLIC_ADDR
+1 MASTER_RANDOM_ADDR
+)
+
+(
+0x06 LE_ERR_PIN_OR_KEY_MISSING
+)
+
+(
+96000 TIMER_SMP_PAIRING_TIMEOUT //30S
+)
+
+//mem_le_pairing_state
+(
+0 FLAG_LE_PAIRING_NULL
+1 FLAG_LE_PAIRING_START
+2 FLAG_LE_PAIRING_SEND_RECURITY_REQ
+3 FLAG_LE_PAIRING_RCV_PAIRING_REQ
+4 FLAG_LE_PAIRING_AUTH
+5 FLAG_LE_PAIRING_AFTER_AUTH
+6 FLAG_LE_PAIRING_SEND_START_ENC_RSP
+7 FLAG_LE_PARING_SEND_ENC_INFORMATION
+8 FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION 
+9 FLAG_LE_PARING_SEND_INDENTITY_INFORMATION
+0xff FLAG_LE_PAIRING_END
+)
+
+/*LE secure connect state */
+(
+0x00 LE_SC_STAT_NULL
+0x01 LE_SC_STAT_RECEIVE_PUBLIC_KEY
+0x02 LE_SC_STAT_WAIT_SEND_PUBLIC_KEY
+0x03 LE_SC_STAT_SEND_PUBLIC_KEY
+0x04 LE_SC_STAT_RECEIVE_RANDOM
+0x05 LE_SC_STAT_SEND_RANDOM
+0x06 LE_SC_STAT_RECEIVE_DHKEY
+0x07 LE_SC_STAT_WAIT_CONFIRM_GKEY
+0x08 LE_SC_STAT_PASSKEY_WAIT_CONFIRM
+)
+
+(
+0 FLAG_LE_SC_CONFRIM_NULL
+1 FLAG_LE_SC_CONFRIM_GKEY_OK
+)
+
+//mem_le_enc_state
+(
+0 FLAG_LE_ENC_NULL
+1 FLAG_LE_RCV_ENC_START
+2 FLAG_LE_ENC_PAUSE
+3 FLAG_LE_RCV_START_ENC_RSP
+4 FLAG_LE_SEND_START_ENC_RSP
+0xff FLAG_LE_ENC_END
+)
+
+(//mem_le_configuration
+//bit0:use fixed key , ble passkey pairing
+0 BIT_BLE_PASSKEY_FIXED_KEY
+//bit1:ble pairing use fixed long term key
+1 BIT_BLE_PAIRING_FIXED_LTK
+//bit2:ble transmit packet will set more data flag
+2 BIT_BLE_TRANSMIT_PACKET_BY_MD
+//bit3:master read handle, with requires an authenticated link
+3 BIT_BLE_READ_AUTH
+//bit4:master write handle, with requires an authenticated link
+4 BIT_BLE_WRITE_AUTH
+//bit5:cannot enter long sleep
+5 BIT_BLE_SHORT_MULT
+
+)
+
+(
+0 BIT_ADV_CHANNEL_MAP_37
+1 BIT_ADV_CHANNEL_MAP_38
+2 BIT_ADV_CHANNEL_MAP_39
+)
+
+memalloc(
+
+1 mem_lmo_header_length
+1 mem_lmo_header_opcode
+17 mem_lmo_payload
+1 mem_lmi_accepted_opcode
+1 mem_disconn_reason_send
+1 mem_tx_fixed_freq
+1 mem_rx_fixed_freq
+1 mem_ext_features_page
+2 mem_lmpext_ssp_enable
+1 mem_remote_sppcap
+
+1 mem_lmp_conn_state
+2 mem_soft_timer
+1 mem_pincode_state
+
+1 mem_sres_tid
+1 mem_accptsco_tid
+
+1 mem_auth_enable
+1 mem_wait_encryption
+
+16 mem_sniff_payload
+4 mem_aurand_send_delay_time
+)
+
+xmemalloc(
+3 mem_lmp_version
+2 mem_lmp_subversion
+1 mem_local_name_length
+3 mem_local_name
+64 mem_local_name2
+1 mem_local_name_end
+1 mem_unsniff2sniff_timer
+1 mem_switch_flag
+1 mem_classic_bt_flag
+)
+	(
+	//bit map
+	0 pair_state_inrand
+	1 pair_state_inrand_acpt
+	2 pair_state_send_comb
+	3 pair_state_recv_comb
+	4 pair_state_send_aurand
+	5 pair_state_recv_sres
+	6 pair_state_recv_aurand
+	7 pair_state_send_sres	
+	)
+	/* LMP opcodes */
+	(
+	1 LMP_NAME_REQ 
+	2 LMP_NAME_RES 
+	3 LMP_ACCEPTED 
+	4 LMP_NOT_ACCEPTED 
+	5 LMP_CLKOFFSET_REQ 
+	6 LMP_CLKOFFSET_RES 
+	7 LMP_DETACH 
+	8 LMP_IN_RAND 
+	9 LMP_COMB_KEY 
+	10 LMP_UNIT_KEY 
+	11 LMP_AU_RAND 
+	12 LMP_SRES 
+	13 LMP_TEMP_RAND 
+	14 LMP_TEMP_KEY 
+	15 LMP_ENCRYPTION_MODE_REQ 
+	16 LMP_ENCRYPTION_KEY_SIZE_REQ 
+	17 LMP_START_ENCRYPTION_REQ 
+	18 LMP_STOP_ENCRYPTION_REQ 
+	19 LMP_SWITCH_REQ 
+	20 LMP_HOLD
+	21 LMP_HOLD_REQ
+	23 LMP_SNIFF_REQ 
+	24 LMP_UNSNIFF_REQ 
+	26 LMP_PARK_REQ 
+	27 LMP_SET_BROADCAST_SCAN_WINDOW 
+	28 LMP_MODIFY_BEACON 
+	29 LMP_UNPARK_BD_ADDR_REQ 
+	30 LMP_UNPARK_PM_ADDR_REQ 
+	31 LMP_INCR_POWER_REQ 
+	32 LMP_DECR_POWER_REQ 
+	33 LMP_MAX_POWER 
+	34 LMP_MIN_POWER 
+	35 LMP_AUTO_RATE 
+	36 LMP_PREFERRED_RATE 
+	37 LMP_VERSION_REQ 
+	38 LMP_VERSION_RES 
+	39 LMP_FEATURES_REQ 
+	40 LMP_FEATURES_RES 
+	41 LMP_QUALITY_OF_SERVICE 
+	42 LMP_QUALITY_OF_SERVICE_REQ 
+	43 LMP_SCO_LINK_REQ 
+	44 LMP_REMOVE_SCO_LINK_REQ 
+	45 LMP_MAX_SLOT 
+	46 LMP_MAX_SLOT_REQ 
+	47 LMP_TIMING_ACCURACY_REQ 
+	48 LMP_TIMING_ACCURACY_RES 
+	49 LMP_SETUP_COMPLETE 
+	50 LMP_USE_SEMI_PERMANENT_KEY 
+	51 LMP_HOST_CONNECTION_REQ 
+	52 LMP_SLOT_OFFSET 
+	53 LMP_PAGE_MODE_REQ 
+	54 LMP_PAGE_SCAN_MODE_REQ 
+	55 LMP_SUPERVISION_TIMEOUT 
+	56 LMP_TEST_ACTIVATE
+	57 LMP_TEST_CONTROL
+	58 LMP_ENC_KEY_SIZE_MASK_REQ
+	59 LMP_ENC_KEY_SIZE_MASK_RES
+	60 LMP_SET_AFH
+
+	/* simple pairing support */
+	61 LMP_ENCAPSULATED_HEADER
+	62 LMP_ENCAPSULATED_PAYLOAD
+	63 LMP_SIMPLE_PAIRING_CONFIRM
+	64 LMP_SIMPLE_PAIRING_NUMBER
+	65 LMP_DHKEY_CHECK
+	127 LMP_ESCAPE
+	127 LMP_ESCAPE_4   /* add 2bytes LMP header support  */   
+	)
+	/* LMP EXT opcodes, ORed with bit 7 to make difference to nonEXT */
+	(
+	129 LMP_EXT_ACCEPTED
+	130 LMP_NOT_ACCEPTED_EXT
+	131 LMP_EXT_FEATURES_REQ
+	132 LMP_EXT_FEATURES_RES
+	139 LMP_PACKET_TYPE_TABLE_REQ
+	140 LMP_EXT_ESCO_LINK_REQ
+	141 LMP_EXT_REMOVE_ESCO_REQ
+	144 LMP_EXT_CHN_CLASSIFICATION_REQ
+	145 LMP_EXT_CHN_CLASSIFICATION
+	149 LMP_SNIFF_SUBRATING_REQ
+	150 LMP_SNIFF_SUBRATING_RES
+	151 LMP_PAUSE_ENCRYPTION_REQ
+	152 LMP_RESUME_ENCRYPTION_REQ
+	153 LMP_IO_CAP_REQ
+	154 LMP_IO_CAP_RES
+	)
+	/* LMP reason codes */
+	(
+	0x05 AUTHENTICATION_FAILURE_ERROR
+	0x06 KEY_MISSING
+	0x0b ACL_CONNECTION_ALREADY_EXISTS
+	0x13 OTHER_END_TERMINATED
+	0x15 ABOUT_TO_POEWR_OFF
+	0x16 LOCAL_HOST
+	0x18 PAIRING_NOT_ALLOWED
+	0x19 UNKNOWN_LMP_PDU
+	0x1A UNSUPPORTED_LMP_FEATURE 
+	0x1F UNSPECIFIED_ERROR
+	0x20 UNSUPPORTED_PARAMETERS
+	0x21 SWITCH_NOT_ALLOWED
+	0x23 TRANSACTION_COLLISION
+	0x24 PDU_NOT_ALLOWED
+	0x25 ENCRYPTION_MODE_NOT_ACCEPTABLE
+	0x2e NOT_SUPPORT_CHN_CLASSIFICATION
+	0x37 NOT_SUPPORT_SSP
+	)
+
+	/* test mode scenarios */
+	(
+	0 PAUSE_TEST_MODE
+	1 ZERO_PATTERN
+	2 ONE_PATTERN
+	3 ALT_PATTERN
+	4 PSEUDORANDOM
+	5 CLOSED_LOOP_BACK_ACL
+	6 CLOSED_LOOP_BACK_SCO
+	7 ACL_WITHOUT_WHITENING
+	8 SCO_WITHOUT_WHITENING
+	9 ALT2_PATTERN
+	255 EXIT_TEST_MODE
+	)
+	/* test mode hoppig modes */
+	(
+	0 FIXED_FREQ
+	1 NORMAL_HOP
+	)
+
+	/* mem_lmp_tid indicates which type of LMP will be sent */
+	(
+	0 TID_NORM_REPLY
+	1 TID_NORM_SEND
+	2 TID_ONE
+	3 TID_ZERO
+	4 TID_PAIRING
+	5 TID_ENCRYPTION
+	6 TID_VARIABLE
+	7 TID_RX
+	)
+
+	/* ============== lmp status ==========*/
+	(
+	0 lmp_incoming
+	1 lmp_outgoing
+	2 lmp_reject_msg
+	3 lmp_clear_msg
+	4 upper_reject_msg
+	5 upper_clear_msg
+	)
+
+(
+0x2ee00 TIMER_ONE_MINUTE //96000*2
+80 TIMER_SWITCH_WAITE
+12 TIMER_ENPT_WAITE
+)
+
+(
+0 SWITCH_FLAG_INIT
+1 SWITCH_FLAG_ACCEPT
+2 SWITCH_FLAG_NOT_ACCEPT
+)
+(
+0 NULL_ENCRYP
+1 DONE_ENCRYP
+)
+
+//
+//
+//Large memory blocks defined in this file.
+//Blocks Shall be defined with absolute address.
+//Blocks' length Shall be specified in comment following Blocks' names.
+//Different blocks MAY be overlap.
+//Blocks defined in this file Shall NOT be overlap with variable in memmap.format.
+
+// USB C51 exchange area
+(
+0xff0 mem_mcmd
+0xff1 mem_mouse_data
+)
+
+//l2cap RX buffers
+(
+0x1000 mem_l2cap_rxbuff1		//0x400
+0x1400 mem_l2cap_rxbuff2		//0x400
+//end address:0x17ff
+)
+//l2cap TX buffers
+(
+0x1800 mem_tx_buff0		//128
+0x1880 mem_tx_buff1		//128
+0x1900 mem_tx_buff2		//128
+0x1980 mem_tx_buff3		//128
+0x1a00 mem_tx_buff4		//128
+0x1a80 mem_tx_buff5		//128
+0x1b00 mem_tx_buff6		//128
+0x1b80 mem_tx_buff7		//128
+//end address: 0x1bff
+)
+
+(
+0x1800 mem_le_tx_buffer0
+0x1900 mem_le_tx_buffer1
+0x1a00 mem_le_tx_buffer2
+0x1b00 mem_le_tx_buffer3
+//end addr:0x1dff
+)
+
+//uart buffer
+(
+0x1800 mem_h5rx_buf//0x400
+0x1bff mem_h5rx_buf_end
+0x1c00 mem_h5tx_buf
+0x1fff mem_h5tx_buf_end
+)
+
+(
+// Define wValue bitmaps for Standard Feature Selectors
+0x00 ENDPOINT_HALT             // Endpoint_Halt feature selector
+0x01 DEVICE_REMOTE_WAKEUP      // Remote wakeup feature(not used)
+0x00 BOOT_PROTOCOL
+0x01 REPORT_PROTOCOL
+0x01 USB_MAX_NUM_CFG
+)
+
+(
+0x4c00 mem_module_rx_buf//0x400
+0x4c00 mem_module_rx_buf_little
+0x4fff mem_module_rx_buf_end
+0x1c00 mem_module_tx_buf
+0x1fff mem_module_tx_buf_end
+)
+
+(
+0x01 BIND_ACKPAYLOAD
+0x02 USER_ACKPAYLOAD
+0x03 KB_LED_ACKPAYLOAD
+
+0xcf CMD_OTA
+0xc0 CMD_OTA_START
+0xc1 CMD_OTA_DATA
+0xc2 CMD_OTA_EXIT
+0x55 OTA_STA_SUCCESS
+0xaa OTA_STA_FAIL
+)
+
+(
+0 TIMER_NAK
+640 TIMER_NAK_DELAY
+15 TIMER_WAKEUP
+5000 TIMER_WAKEUP_DELAY
+)
+
+//eeprom address offset
+(
+0x5a DONGLE_KB_BIND_SUCCESS
+0x00 DONGLE_KB_BIND_EEPROM_OFFECT
+0x70 DONGLE_FIRMWARE_VERSION_OFFECT
+)
+
+(
+1 USB_GOT_REPORT_REQ
+2 USB_CONNECTED
+3 USB_SLEEP
+4 USB_RESUME
+5 USB_SETIDLE_1
+)
+
+(
+0x10 USB_EP1_KB
+0x20 USB_EP2_MS
+0x21 USB_EP2_MULTIKEY
+0x22 USB_EP2_SYSTEMKEY
+0x01 MAC_BOOT_MODE
+0x02 R_KEY
+0x03 LR_KEY
+)
+
+(
+0x8ffa	HID_KBDATA_ADDR
+0x903a	HID_MSDATA_ADDR
+0x90fe	HID_CONFDATA_ADDR
+)
+
+
+(
+0x01ba PC_GET_REPORT
+0x02ba PC_SET_REPORT
+0x0200 PC_SET_REPORT_bValue
+0x0000 PC_SET_REPORT_wIndex
+0x0001 PC_SET_REPORT_bLength
+0xba PC_REPORT_ID
+
+0x01 PC_GET_DATA
+0x00 PC_GET_NONDATA
+)
+
+//class type
+(
+0x00 STANDARD_REQ
+0x01 CLASS_REQ
+0x02 MANUFACTURER_REQ
+)
+//Standard Request Codes
+(
+0x00 GET_STATUS                // Code for Get Status
+0x01 CLEAR_FEATURE             // Code for Clear Feature
+0x03 SET_FEATURE              // Code for Set Feature
+0x05 SET_ADDRESS              // Code for Set Address
+0x06 GET_DESCRIPTOR           // Code for Get Descriptor
+0x07 SET_DESCRIPTOR           // Code for Set Descriptor(not used)
+0x08 GET_CONFIGURATION        // Code for Get Configuration
+0x09 SET_CONFIGURATION        // Code for Set Configuration
+0x0A GET_INTERFACE            // Code for Get Interface
+0x0B SET_INTERFACE            // Code for Set Interface
+0x0C SYNCH_FRAME              // Code for Synch Frame(not used)
+)
+//Standard Descriptor Types
+(
+0x01 DSC_DEVICE               // Device Descriptor
+0x02 DSC_CONFIG               // Configuration Descriptor
+0x03 DSC_STRING               // String Descriptor
+0x04 DSC_INTERFACE            // Interface Descriptor
+0x05 DSC_ENDPOINT             // Endpoint Descriptor
+)
+//HID Descriptor Types
+(
+0x21 DSC_HID			      // HID Class Descriptor
+0x22 DSC_HID_REPORT			  // HID Report Descriptor
+)
+//Define bmRequestType bitmaps
+(
+0x80 IN_DEVICE                // Request made to device,
+                              // direction is IN
+0x00 OUT_DEVICE               // Request made to device,
+                              // direction is OUT
+0x81 IN_INTERFACE             // Request made to interface,
+                              // direction is IN
+0x01 OUT_INTERFACE            // Request made to interface,
+                              // direction is OUT
+0x82 IN_ENDPOINT              // Request made to endpoint,
+                              // direction is IN
+0x02 OUT_ENDPOINT             // Request made to endpoint,
+)
+//HID Request Codes
+(
+0x01 GET_REPORT 		       // Code for Get Report
+0x02 GET_IDLE				   // Code for Get Idle
+0x03 GET_PROTOCOL			   // Code for Get Protocol
+0x09 SET_REPORT				   // Code for Set Report
+0x0A SET_IDLE				   // Code for Set Idle
+0x0B SET_PROTOCOL			   // Code for Set Protocol
+0xF2 HID_REPORT_ID           
+64 EP0_PACKET_SIZE         
+6 EP1_PACKET_SIZE         
+16 HID_REPORT_SIZE         
+0x001B HID_REPORT_DESCRIPTOR_SIZE    
+)
+//math cordic
+(
+0 TYPE_SIN		
+1 TYPE_ATAN	
+2 TYPE_MULT	
+3 TYPE_DIV		
+4 TYPE_ASIN	
+5 TYPE_SQRT	
+6 TYPE_COS		
+7 TYPE_TAN		 
+)
+   
+(
+0 DFIFO0_IN_EMPTY
+1 DFIFO1_IN_EMPTY
+2 DFIFO2_IN_EMPTY
+3 DFIFO3_IN_EMPTY
+4 DFIFO0_OUT_EMPTY
+5 DFIFO1_OUT_EMPTY
+6 DFIFO2_OUT_EMPTY
+7 DFIFO3_OUT_EMPTY
+)
+
+(
+4 USB_STATUS_SETUP
+6 USB_STATUS_NAK
+)
+
+(
+0x1800 mem_ir_record
+0x1c      mem_ir_record_max
+)
+
+
+(
+0 MODULE_FLAG_UART_FLOW_CONTROL
+1 MODULE_FLAG_BLE_RECEIVED_DATA
+2 MODULE_FLAG_BLE_SEND_MTU23
+3 MODULE_FLAG_BLE_SEND_DATA
+)
+
+
+
+
+(
+34 NV_DATA_LEN
+-1 DECREASED_ONE
+)
+
+
+
+(
+	10 FLAG_MODULE_READ_VDD_COUNT
+)
+
+	(
+		110  DM_REFCOM_BUFF_LEN
+		230  NL_RFCOMM_BUFF_LEN
+		220  NL_RFCOMM_BUFF_LEN_220
+		20 DM_LE_BUFF_LEN
+	)
+	(
+		0x200 UART_AIR_CONTROL_THRESHOLD
+		0x150 UART_RX_CONTROL_THRESHOLD
+	)
+	(
+		0 MODULE_LED_DISABLE
+		1 MODULE_LED_BLINK
+	)
+
+
+
+
+(
+0x01 HCI_DISCARD_PACKET
+0x00 HCI_NOT_DISCARD_PACKET
+
+
+)
+
+
+
+(//Command
+0x00 HCI_CMD_SET_BT_ADDR_REQ
+0x01 HCI_CMD_SET_LE_ADDR_REQ
+0x02 HCI_CMD_SET_VISIBILITY_REQ
+0x03 HCI_CMD_SET_BT_NAME_REQ
+0x04 HCI_CMD_SET_LE_NAME_REQ
+0x05 HCI_CMD_SPP_DATA_REQ
+0x09 HCI_CMD_LE_DATA_REQ
+0x0b HCI_CMD_STATUS_IRQ
+0x0c HCI_CMD_SET_PAIRING_REQ
+0x0d HCI_CMD_SET_PINCODE_REQ
+0x0e HCI_CMD_SET_UARTCONTROL_REQ
+0x0f HCI_CMD_SET_UART_BAUD_REQ
+0x10 HCI_CMD_VERSION_REQ
+0x11 HCI_CMD_BT_DISCONNECT
+0x12 HCI_CMD_BLE_DISCONNECT
+0x13 HCI_CMD_DELETE_DEVICE
+0x14 HCI_CMD_CREATE_CONNECT
+0x26 HCI_CMD_SET_NVRAM_REQ
+0x27 HCI_CMD_SLEEP
+0x28 HCI_CMD_CONFIRM_GKEY
+0x29 HCI_CMD_SET_CREDIT_GIVEN
+0x2a HCI_CMD_AUTO_ADV_SCAN
+0x2b HCI_CMD_POWER_REQ
+0x2c HCI_CMD_POWER_SET
+0x30 HCI_CMD_PASSKEY_ENTRY
+0x31 HCI_CMD_SET_GPIO
+0x32 HCI_CMD_READ_GPIO
+0x33 HCI_CMD_LE_SET_PAIRING
+0x34 HCI_CMD_LE_SET_ADV_DATA
+0x35 HCI_CMD_LE_SET_SCAN_DATA
+0x36 HCI_CMD_LE_SEND_CONN_UPDATE_REQ
+0x38 HCI_CMD_LE_START_PAIRING
+0x48 HCI_CMD_LE_CONFIRM_GKEY
+
+)
+
+(//event
+0x00 HCI_EVENT_SPP_CONN_REP
+0x01 HCI_EVENT_HID_CONN_REP
+0x02 HCI_EVENT_LE_CONN_REP
+0x03 HCI_EVENT_SPP_DIS_REP
+0x04 HCI_EVENT_HID_DIS_REP
+0x05 HCI_EVENT_LE_DIS_REP
+0x06 HCI_EVENT_CMD_RES
+0x07 HCI_EVENT_SPP_DATA_REP
+0x08 HCI_EVENT_LE_DATA_REP
+0x09 HCI_EVENT_STANDBY_REP
+0x0a HCI_EVENT_STATUS_RES
+0x0b HCI_EVENT_FINISH_PACK_NUM
+0X0C HCI_EVENT_SNIFF_MD_CHANGE
+0x0D HCI_EVENT_NVRAM_REP
+0x0e HCI_EVENT_GKEY
+0x0F HCI_EVENT_INVALID_PACKET
+0x10 HCI_EVENT_GET_PASSKEY
+0x11 HCI_EVENT_LE_TK
+0x12 HCI_EVENT_REMOTE_MTU
+0x14 HCI_EVENT_LE_PAIRING_STATE
+0X15 HCI_EVENT_LE_ENCRYPTION_STATE
+0x17 HCI_EVENT_LE_CONNECTION_UPDATE
+0x1d HCI_EVENT_LE_GKEY
+
+)
+
+
+
+
+(
+0x7e0 OTP_ADDR_RF_PARAM_FIX
+//struct of RF_PARAM_FIX
+// uint8       //length = param_pair_count * 2 
+// uint16     //param-pair-1
+// uint16     //param-pair-2
+// uint16     //param-pair-3
+// uint16     //param-pair-4
+// uint16     //param-pair-5
+// uint16     //param-pair-6
+// uint16     //param-pair-7
+)
+(
+0x0270 FW_VERSION_NUMBER
+)
+
+(
+0	PAIRING_PINCODE
+1	PAIRING_JUSTWORK
+2	PAIRING_PASSKEY
+3	PAIRING_CONFIRM
+)
+
+
+(
+0x0001	FLAG_BT_PAIRING_SUCCESS
+0x0101	FLAG_BT_PAIRING_FAIL
+0x0080	FLAG_BLE_PAIRING_SUCCESS
+0x0180	FLAG_BLE_PAIRING_FAIL
+)
+
+
+(
+1	FLAG_EVENT_START_ENC
+0	FLAG_EVENT_PAUSE_ENC
+)
+
+(
+	0 MOUDLE_STATE_BT_BIT
+	1 MOUDLE_STATE_BLE_BIT
+)
+
+(
+	0 MOUDLE_TASK_UNSINFF
+)
+
+
+//dpi eeprom addr
+198 mouse_dpi_eeprom_addr
+
+(
+1 ONE_TRADITION_MOUSE
+2 ONE_BLE_MOUSE
+)
+
+
+(
+1 SENSOR_TYPE_A7530
+2 SENSOR_TYPE_P3204
+)
+0x30 P3204_ID
+0x31 P3065_ID
+0x3e P3610_ID
+
+7 pan_bit_motion
+
+(
+1000      MOUSE_LPM_CLR_LOCK_TIME
+       2       MOUSE_DPI_MAX_DECR
+)
+(
+80 MOUSE_SEND_BLANK_TIMER
+)
+
+
+//mem_mouse_mode_state
+(
+0x00 MOUSE_MODE_STATE_IDLE
+0x01 MOUSE_MODE_STATE_BT
+0x02 MOUSE_MODE_STATE_BLE
+)
+
+
+(
+	  0 patch00_0
+	  1 patch00_1
+	  2 patch00_2
+	  3 patch00_3
+	  4 patch00_4
+	  5 patch00_5
+	  6 patch00_6
+	  7 patch00_7
+	  8 patch01_0
+	  9 patch01_1
+	 10 patch01_2
+	 11 patch01_3
+	 12 patch01_4
+	 13 patch01_5
+	 14 patch01_6
+	 15 patch01_7
+	 16 patch02_0
+	 17 patch02_1
+	 18 patch02_2
+	 19 patch02_3
+	 20 patch02_4
+	 21 patch02_5
+	 22 patch02_6
+	 23 patch02_7
+	 24 patch03_0
+	 25 patch03_1
+	 26 patch03_2
+	 27 patch03_3
+	 28 patch03_4
+	 29 patch03_5
+	 30 patch03_6
+	 31 patch03_7
+	 32 patch04_0
+	 33 patch04_1
+	 34 patch04_2
+	 35 patch04_3
+	 36 patch04_4
+	 37 patch04_5
+	 38 patch04_6
+	 39 patch04_7
+	 40 patch05_0
+	 41 patch05_1
+	 42 patch05_2
+	 43 patch05_3
+	 44 patch05_4
+	 45 patch05_5
+	 46 patch05_6
+	 47 patch05_7
+	 48 patch06_0
+	 49 patch06_1
+	 50 patch06_2
+	 51 patch06_3
+	 52 patch06_4
+	 53 patch06_5
+	 54 patch06_6
+	 55 patch06_7
+	 56 patch07_0
+	 57 patch07_1
+	 58 patch07_2
+	 59 patch07_3
+	 60 patch07_4
+	 61 patch07_5
+	 62 patch07_6
+	 63 patch07_7
+	 64 patch08_0
+	 65 patch08_1
+	 66 patch08_2
+	 67 patch08_3
+	 68 patch08_4
+	 69 patch08_5
+	 70 patch08_6
+	 71 patch08_7
+	 72 patch09_0
+	 73 patch09_1
+	 74 patch09_2
+	 75 patch09_3
+	 76 patch09_4
+	 77 patch09_5
+	 78 patch09_6
+	 79 patch09_7
+	 80 patch0a_0
+	 81 patch0a_1
+	 82 patch0a_2
+	 83 patch0a_3
+	 84 patch0a_4
+	 85 patch0a_5
+	 86 patch0a_6
+	 87 patch0a_7
+	 88 patch0b_0
+	 89 patch0b_1
+	 90 patch0b_2
+	 91 patch0b_3
+	 92 patch0b_4
+	 93 patch0b_5
+	 94 patch0b_6
+	 95 patch0b_7
+	 96 patch0c_0
+	 97 patch0c_1
+	 98 patch0c_2
+	 99 patch0c_3
+	100 patch0c_4
+	101 patch0c_5
+	102 patch0c_6
+	103 patch0c_7
+	104 patch0d_0
+	105 patch0d_1
+	106 patch0d_2
+	107 patch0d_3
+	108 patch0d_4
+	109 patch0d_5
+	110 patch0d_6
+	111 patch0d_7
+	112 patch0e_0
+	113 patch0e_1
+	114 patch0e_2
+	115 patch0e_3
+	116 patch0e_4
+	117 patch0e_5
+	118 patch0e_6
+	119 patch0e_7
+	120 patch0f_0
+	121 patch0f_1
+	122 patch0f_2
+	123 patch0f_3
+	124 patch0f_4
+	125 patch0f_5
+	126 patch0f_6
+	127 patch0f_7
+	128 patch10_0
+	129 patch10_1
+	130 patch10_2
+	131 patch10_3
+	132 patch10_4
+	133 patch10_5
+	134 patch10_6
+	135 patch10_7
+	136 patch11_0
+	137 patch11_1
+	138 patch11_2
+	139 patch11_3
+	140 patch11_4
+	141 patch11_5
+	142 patch11_6
+	143 patch11_7
+	144 patch12_0
+	145 patch12_1
+	146 patch12_2
+	147 patch12_3
+	148 patch12_4
+	149 patch12_5
+	150 patch12_6
+	151 patch12_7
+	152 patch13_0
+	153 patch13_1
+	154 patch13_2
+	155 patch13_3
+	156 patch13_4
+	157 patch13_5
+	158 patch13_6
+	159 patch13_7
+	160 patch14_0
+	161 patch14_1
+	162 patch14_2
+	163 patch14_3
+	164 patch14_4
+	165 patch14_5
+	166 patch14_6
+	167 patch14_7
+	168 patch15_0
+	169 patch15_1
+	170 patch15_2
+	171 patch15_3
+	172 patch15_4
+	173 patch15_5
+	174 patch15_6
+	175 patch15_7
+	176 patch16_0
+	177 patch16_1
+	178 patch16_2
+	179 patch16_3
+	180 patch16_4
+	181 patch16_5
+	182 patch16_6
+	183 patch16_7
+	184 patch17_0
+	185 patch17_1
+	186 patch17_2
+	187 patch17_3
+	188 patch17_4
+	189 patch17_5
+	190 patch17_6
+	191 patch17_7
+	192 patch18_0
+	193 patch18_1
+	194 patch18_2
+	195 patch18_3
+	196 patch18_4
+	197 patch18_5
+	198 patch18_6
+	199 patch18_7
+	200 patch19_0
+	201 patch19_1
+	202 patch19_2
+	203 patch19_3
+	204 patch19_4
+	205 patch19_5
+	206 patch19_6
+	207 patch19_7
+	208 patch1a_0
+	209 patch1a_1
+	210 patch1a_2
+	211 patch1a_3
+	212 patch1a_4
+	213 patch1a_5
+	214 patch1a_6
+	215 patch1a_7
+	216 patch1b_0
+	217 patch1b_1
+	218 patch1b_2
+	219 patch1b_3
+	220 patch1b_4
+	221 patch1b_5
+	222 patch1b_6
+	223 patch1b_7
+	224 patch1c_0
+	225 patch1c_1
+	226 patch1c_2
+	227 patch1c_3
+	228 patch1c_4
+	229 patch1c_5
+	230 patch1c_6
+	231 patch1c_7
+	232 patch1d_0
+	233 patch1d_1
+	234 patch1d_2
+	235 patch1d_3
+	236 patch1d_4
+	237 patch1d_5
+	238 patch1d_6
+	239 patch1d_7
+	240 patch1e_0
+	241 patch1e_1
+	242 patch1e_2
+	243 patch1e_3
+	244 patch1e_4
+	245 patch1e_5
+	246 patch1e_6
+	247 patch1e_7
+	248 patch1f_0
+	249 patch1f_1
+	250 patch1f_2
+	251 patch1f_3
+	252 patch1f_4
+	253 patch1f_5
+	254 patch1f_6
+	255 patch1f_7
+	  0 patch20_0
+	  1 patch20_1
+	  2 patch20_2
+	  3 patch20_3
+	  4 patch20_4
+	  5 patch20_5
+	  6 patch20_6
+	  7 patch20_7
+	  8 patch21_0
+	  9 patch21_1
+	 10 patch21_2
+	 11 patch21_3
+	 12 patch21_4
+	 13 patch21_5
+	 14 patch21_6
+	 15 patch21_7
+	 16 patch22_0
+	 17 patch22_1
+	 18 patch22_2
+	 19 patch22_3
+	 20 patch22_4
+	 21 patch22_5
+	 22 patch22_6
+	 23 patch22_7
+	 24 patch23_0
+	 25 patch23_1
+	 26 patch23_2
+	 27 patch23_3
+	 28 patch23_4
+	 29 patch23_5
+	 30 patch23_6
+	 31 patch23_7
+	 32 patch24_0
+	 33 patch24_1
+	 34 patch24_2
+	 35 patch24_3
+	 36 patch24_4
+	 37 patch24_5
+	 38 patch24_6
+	 39 patch24_7
+	 40 patch25_0
+	 41 patch25_1
+	 42 patch25_2
+	 43 patch25_3
+	 44 patch25_4
+	 45 patch25_5
+	 46 patch25_6
+	 47 patch25_7
+	 48 patch26_0
+	 49 patch26_1
+	 50 patch26_2
+	 51 patch26_3
+	 52 patch26_4
+	 53 patch26_5
+	 54 patch26_6
+	 55 patch26_7
+	 56 patch27_0
+	 57 patch27_1
+	 58 patch27_2
+	 59 patch27_3
+	 60 patch27_4
+	 61 patch27_5
+	 62 patch27_6
+	 63 patch27_7
+	 64 patch28_0
+	 65 patch28_1
+	 66 patch28_2
+	 67 patch28_3
+	 68 patch28_4
+	 69 patch28_5
+	 70 patch28_6
+	 71 patch28_7
+	 72 patch29_0
+	 73 patch29_1
+	 74 patch29_2
+	 75 patch29_3
+	 76 patch29_4
+	 77 patch29_5
+	 78 patch29_6
+	 79 patch29_7
+	 80 patch2a_0
+	 81 patch2a_1
+	 82 patch2a_2
+	 83 patch2a_3
+	 84 patch2a_4
+	 85 patch2a_5
+	 86 patch2a_6
+	 87 patch2a_7
+	 88 patch2b_0
+	 89 patch2b_1
+	 90 patch2b_2
+	 91 patch2b_3
+	 92 patch2b_4
+	 93 patch2b_5
+	 94 patch2b_6
+	 95 patch2b_7
+	 96 patch2c_0
+	 97 patch2c_1
+	 98 patch2c_2
+	 99 patch2c_3
+	100 patch2c_4
+	101 patch2c_5
+	102 patch2c_6
+	103 patch2c_7
+	104 patch2d_0
+	105 patch2d_1
+	106 patch2d_2
+	107 patch2d_3
+	108 patch2d_4
+	109 patch2d_5
+	110 patch2d_6
+	111 patch2d_7
+	112 patch2e_0
+	113 patch2e_1
+	114 patch2e_2
+	115 patch2e_3
+	116 patch2e_4
+	117 patch2e_5
+	118 patch2e_6
+	119 patch2e_7
+	120 patch2f_0
+	121 patch2f_1
+	122 patch2f_2
+	123 patch2f_3
+	124 patch2f_4
+	125 patch2f_5
+	126 patch2f_6
+	127 patch2f_7
+	128 patch30_0
+	129 patch30_1
+	130 patch30_2
+	131 patch30_3
+	132 patch30_4
+	133 patch30_5
+	134 patch30_6
+	135 patch30_7
+	136 patch31_0
+	137 patch31_1
+	138 patch31_2
+	139 patch31_3
+	140 patch31_4
+	141 patch31_5
+	142 patch31_6
+	143 patch31_7
+	144 patch32_0
+	145 patch32_1
+	146 patch32_2
+	147 patch32_3
+	148 patch32_4
+	149 patch32_5
+	150 patch32_6
+	151 patch32_7
+	152 patch33_0
+	153 patch33_1
+	154 patch33_2
+	155 patch33_3
+	156 patch33_4
+	157 patch33_5
+	158 patch33_6
+	159 patch33_7
+	160 patch34_0
+	161 patch34_1
+	162 patch34_2
+	163 patch34_3
+	164 patch34_4
+	165 patch34_5
+	166 patch34_6
+	167 patch34_7
+	168 patch35_0
+	169 patch35_1
+	170 patch35_2
+	171 patch35_3
+	172 patch35_4
+	173 patch35_5
+	174 patch35_6
+	175 patch35_7
+	176 patch36_0
+	177 patch36_1
+	178 patch36_2
+	179 patch36_3
+	180 patch36_4
+	181 patch36_5
+	182 patch36_6
+	183 patch36_7
+	184 patch37_0
+	185 patch37_1
+	186 patch37_2
+	187 patch37_3
+	188 patch37_4
+	189 patch37_5
+	190 patch37_6
+	191 patch37_7
+	192 patch38_0
+	193 patch38_1
+	194 patch38_2
+	195 patch38_3
+	196 patch38_4
+	197 patch38_5
+	198 patch38_6
+	199 patch38_7
+	200 patch39_0
+	201 patch39_1
+	202 patch39_2
+	203 patch39_3
+	204 patch39_4
+	205 patch39_5
+	206 patch39_6
+	207 patch39_7
+	208 patch3a_0
+	209 patch3a_1
+	210 patch3a_2
+	211 patch3a_3
+	212 patch3a_4
+	213 patch3a_5
+	214 patch3a_6
+	215 patch3a_7
+	216 patch3b_0
+	217 patch3b_1
+	218 patch3b_2
+	219 patch3b_3
+	220 patch3b_4
+	221 patch3b_5
+	222 patch3b_6
+	223 patch3b_7
+	224 patch3c_0
+	225 patch3c_1
+	226 patch3c_2
+	227 patch3c_3
+	228 patch3c_4
+	229 patch3c_5
+	230 patch3c_6
+	231 patch3c_7
+	232 patch3d_0
+	233 patch3d_1
+	234 patch3d_2
+	235 patch3d_3
+	236 patch3d_4
+	237 patch3d_5
+	238 patch3d_6
+	239 patch3d_7
+	240 patch3e_0
+	241 patch3e_1
+	242 patch3e_2
+	243 patch3e_3
+	244 patch3e_4
+	245 patch3e_5
+	246 patch3e_6
+	247 patch3e_7
+	248 patch3f_0
+	249 patch3f_1
+	250 patch3f_2
+	251 patch3f_3
+	252 patch3f_4
+	253 patch3f_5
+	254 patch3f_6
+	255 patch3f_7
+
+)
+(
+  0x8000 core_chipid
+  0x8003 core_kick
+  0x8004 core_write_watchdog
+  0x8005 core_lpm_wr
+  0x8006 core_misc_ctrl
+  0x8007 core_otp_rdata
+  0x8009 core_pcmoutfifo
+  0x8010 core_reset
+  0x8011 core_encrypt
+  0x8015 core_uart_txd
+  0x8022 core_ucode_hi
+  0x8023 core_ucode_ctrl
+  0x8024 core_ucode_low
+  0x8025 core_ucode_data
+  0x8040 core_halfslot
+  0x8042 core_clksel
+  0x8043 core_uart_clksel
+  0x8043 core_config 
+  0x8044 core_xtal_stable_time
+  0x8045 core_otp_addr
+  0x8046 core_otp_din
+  0x8047 core_otp_ctrl
+  0x8048 core_otpd_addr
+  0x804a core_otpd_len
+  0x804b core_otpd_ctrl
+  0x804c core_lpm_reg
+  0x804f core_lpm_isogate
+  0x8050 core_clkoff
+  0x8052 core_uart_baud
+  0x8054 core_uart_rsaddr
+  0x8056 core_uart_readdr
+  0x8058 core_uart_rrptr
+  0x805a core_uart_tsaddr
+  0x805c core_uart_teaddr
+  0x805e core_uart_twptr
+  0x8060 core_uart_trptrp
+  0x8062 core_uart_ctrl
+  0x8063 core_kscn_ksctrl
+  0x8064 core_kscn_rctc
+  0x8065 core_kscn_scancycle_timer_l
+  0x8066 core_kscn_scancycle_timer_h
+  0x8067 core_kscn_m_debounce          
+  0x8068 core_kscn_modkey
+  0x806f core_kscn_rowmask
+  0x8070 core_gpio_oe0
+  0x8071 core_gpio_oe1
+  0x8072 core_gpio_oe2
+  0x8073 core_gpio_oe3
+  0x8074 core_gpio_out0
+  0x8075 core_gpio_out1
+  0x8076 core_gpio_out2
+  0x8077 core_gpio_out3
+  0x8078 core_gpio_pu0
+  0x8079 core_gpio_pu1
+  0x807a core_gpio_pu2
+  0x807b core_gpio_pu3
+  0x807c core_gpio_pd0
+  0x807d core_gpio_pd1
+  0x807e core_gpio_pd2
+  0x807f core_gpio_pd3
+  0x8080 core_gpio_sel
+  0x8081 core_gpio_sel1
+  0x8082 core_gpio_sel2
+  0x8083 core_gpio_key0
+  0x8084 core_gpio_key1
+  0x8085 core_gpio_key2
+  0x8086 core_spid_ctrl
+  0x8087 core_spid_delay
+  0x8088 core_spid_txlen
+  0x808a core_spid_txaddr
+  0x808c core_spid_rxaddr
+  0x808e core_spid_rxlen
+  0x8090 core_iicd_ctrl
+  0x8091 core_iicd_scl_low
+  0x8092 core_iicd_scl_high
+  0x8093 core_iicd_start_setup
+  0x8094 core_iicd_start_hold
+  0x8095 core_iicd_stop_setup
+  0x8096 core_iicd_data_setup
+  0x8097 core_iicd_data_hold
+  0x8098 core_iicd_txlen
+  0x809a core_iicd_txaddr
+  0x809c core_iicd_rxaddr
+  0x809e core_iicd_rxlen
+  0x80a0 core_pwm_pcnt0
+  0x80a2 core_pwm_ncnt0
+  0x80a4 core_pwm_pcnt1
+  0x80a6 core_pwm_ncnt1
+  0x80b0 core_enc_ctrl
+  0x80b1 core_cvsd_ctrl
+  0x80b2 core_codec_ctrl
+  0x80b3 core_dec_ctrl
+  0x80b4 core_bist_ctrl
+
+
+
+  
+  0x8108 core_misc_status
+  0x8109 core_qdec_cntx
+  0x810a core_qdec_cnty
+  0x810b core_qdec_cntz
+  0x810c core_uart_status
+  0x810d core_uart_rbaud
+  0x810e core_uart_txitems
+  0x8110 core_uart_trptr
+  0x8112 core_uart_rxitems
+  0x8114 core_uart_rdptr
+  0x8116 core_uart_rwptr
+  0x8119 core_kscn_kstat
+  0x811a core_kscn_event
+  0x811b core_kscn_event_num
+  0x811c core_gpio_in
+  0x811d core_gpio_in1
+  0x8124 core_current_otp_addr
+  0x8126 core_otpd_remain
+  0x8128 core_spid_remain
+  0x812a core_iicd_remain
+  0x812c core_dma_status
+  0x812d core_perf_status
+  0x812e core_adc_in
+  0x8134 core_pcminfifo
+  0x8135 core_pcminfifo_remain
+  0x8136 core_pcmoutfifo_remain
+  0x8138 core_lpm_ctrl
+  0x813c core_lpm_xtalcnt
+  0x813d core_lpm_buckcnt
+  0x813e core_lpm_ldocnt
+  0x813f core_lpm_latch
+  0x8140 core_gpio_wakeup_low
+  0x8144 core_gpio_wakeup_high
+  0x8149 core_clk_counter
+  0x8150 core_adc_sum
+// dummy regs  
+
+  0x8203 core_ice_ctrl
+  0x8204 core_ice_status
+  0x8205 core_ice_break0
+  0x8207 core_ice_break1
+  
+  0x8280 core_docd_ctrl
+  0x8288 core_docd_paddr
+  0x828a core_docd_pdata
+
+  0x8300 iic_prer_low		
+  0x8301 iic_slave_addr	
+  0x8302 iic_ctr					
+  0x8303 iic_cr					
+  0x8304 iic_rxr					
+  0x8305 iic_txr					
+  0x8306 iic_sr					
+  0x8307 iic_fifo				
+
+  0x8400   mem_b_box          /* entire bank */
+  0x8500   mem_e_box          /* entire bank */
+  0x8600   mem_l_box          /* entire bank */
+
+  0x8700 memk
+
+  0x8900 rfen_rx
+  0x8901 rfen_tx
+  0x8902 rfen_mdm
+  0x8903 rfen_sn
+  0x8904 rfen_msc
+  0x8905 rfen_ck
+  0x8906 rfen_adc
+  0x8912 rf_agc_ctrl
+  0x8914 rfen_ulp
+  0x8973 rfen_chgpump
+  0x894b rf_rx_vctrl_reg1
+  0x894c rf_rx_vctrl_reg2
+  0x894d rf_rx_ib_lna
+  0x894e rf_rx_lna_ctrim
+
+  0x8950 rf_bpf_ctrim
+  0x8951 rf_bpf_ib
+  0x8952 rf_adc_rccal
+  0x8952 rf_rccal_ctrl
+  0x8953 rf_rccal_sel
+  0x8955 rf_tx_pa
+  0x895f rf_pll_rstn
+  0x8964 rf_sdm_en
+  0x8960 rf_pll_intg
+  0x8961 rf_pll_frac
+  0x8963 rf_pll_frachi
+  0x896c rf_afc_cap
+  0x8967 rf_clkpll_bias
+  0x896f rf_clkpll_en
+  0x8968 rf_clkpll_int
+  0x8969 rf_clkpll_frac
+  0x896d rf_balun_ctrim
+  0x8971 rf_adc_mode
+  0x8972 rf_adc_gc
+  0x8973 rf_adc_ch
+  0x8980 rf_rccal_result
+  0x8981 rf_afc_d2a
+  0x8982 rf_rssi
+
+
+0x8a00 core_usb_config		
+0x8a01 core_usb_int_mask	
+0x8a04 core_usb_addr
+0x8a05 core_usb_driver
+0x8a10 core_usb_trig	
+0x8a11 core_usb_stall		
+0x8a12 core_usb_clear		
+0x8a18 core_usb_ep
+0x8a18 core_usb_dfifo0 
+0x8a19 core_usb_dfifo1  
+0x8a1a core_usb_dfifo2 
+0x8a20 core_usb_ep_len
+0x8a26 core_usb_status		
+0x8a27 core_usb_fifo_empty
+0x8a28 core_usb_fifo_full
+
+
+4 rx_freq_offset
+1 tx_freq_offset
+
+/* bit difinitions */
+  3 watchdog_bit
+  4 whiteoff_bit
+  6 clksel_rc
+  5 clksel_dpll
+  4 clksel_xtal
+  5 adc_rccal
+  0 bpf_rccal
+  1 demod_clkoff
+
+(
+  7 cold_wake
+  3 gpio_latch
+  4 enable_retmem
+  0xef isogate_mask
+  0xe0 cs_mask
+)
+
+// misc ctrl
+(
+  0x01 otpd_start
+  0x02 spid_start
+  0x04 iicd_start
+  0x08 lock_otp
+  0x10 x_sethi
+  0x20 y_sethi
+  0x40 z_sethi
+  0x80 ccnt_start
+)
+// dma status bit
+(
+  0 otpd_crcok
+  1 otpd_done
+  2 spid_crcok
+  3 spid_done
+  4 iicd_crcok
+  5 iicd_done
+)
+
+0x8b uart_ctrl_default //BCSP
+0x81 uart_ctrl_h4 //H4
+0x81 uart_ctrl_normal
+0x91 uart_ctrl_5line
+0x81 uart_ctrl_57600
+2 uart_baud_len
+0x00 uartclk_crystal
+0x01 uartclk_dpll
+0x1a0 uart_baud_115200
+0xbb uart_baud_256000
+0x340 uart_baud_57600
+0x34 uart_baud_921600
+0x9c4 uart_baud_9600
+0x2dc6c00 uart_clk
+0x16E3600 uart_clk_24
+
+//core_clkoff
+(
+	0 CLOCK_OFF_AUTH_ROM
+	1 CLOCK_OFF_UC_ROM
+	2 CLOCK_OFF_DEBUG_UART
+	3 CLOCK_OFF_SCHED_RAM
+	4 CLOCK_OFF_TRANCE_FIFO
+	5 CLOCK_OFF_CORDIC
+	6 CLOCK_OFF_OTPD
+	7 CLOCK_OFF_I2C
+	8 CLICK_OFF_8051
+	9 CLOCK_OFF_KEYSCAN
+	0x0a CLOCK_OFF_USB
+	0x0b CLOCK_OFF_QDECODER
+	0x0c CLOCK_OFF_SPI
+	0x0d CLOCK_OFF_PWM
+	0x0e CLOCK_OFF_CODEC
+	0x0f CLOCK_OFF_UART
+)
+
+
+/*****************************************************************************/
+/* RCS HEADER -- DO NOT ERASE                                                */
+/* $Author: Administrator $                                                           */
+/* $Id: bt_rfcomm_format.upper,v 1.1 2009-09-28 04:06:17 Administrator Exp $ */
+/* Orisil Technology                                                      */
+/*****************************************************************************/
+
+/**********/
+/* memory */
+/**********/
+
+memalloc(
+1 memRemoteRPNBitRate
+1 memRemotePRNDataBits
+1 memRemotePRNStopBit
+1 memRemotePRNParity
+1 memRemotePRNFlowControl
+1 memRemotePRNXon
+1 memRemotePRNXoff
+
+
+3 mem_mod2div_temp
+2 mem_contw_temp
+2 mem_attrib_list
+
+//rfcomm head
+1 mem_current_adss
+1 mem_current_channel
+1 mem_current_frame_type
+1 mem_current_fcs
+2 mem_current_length
+2 mem_rfcomm_uih_payload_ptr
+
+//rfcomm uih
+1 mem_uih_cmd_type
+2 mem_uih_length
+2 mem_param_payload_ptr
+
+
+//rfcomm modem status
+1 mem_ms_param
+
+//rfcomm pn
+1 mem_pn_credit_flow_type_info
+1 mem_pn_priority
+1 mem_pn_acknowledg_timer
+1 mem_pn_max_retrans
+
+1 mem_rfcomm_send_adss
+1 mem_rfcomm_send_frame_type
+1 mem_rfcomm_send_fcs
+1 mem_rfcomm_send_offset
+
+)
+
+xmemalloc(
+1 mem_pn_dlci
+2 mem_pn_max_frame_size
+
+1 memFCStemp1
+1 memFCStemp2
+1 memFCStemp3
+
+1 mem_rfcomm_initiator
+
+1 mem_remote_spp_channel
+
+1 mem_HIUfcs_SPP
+1 mem_HIUfcs_SPP_WCredits
+
+1 mem_rfcomm_send_more_pkt
+
+1 mem_remote_credits
+1 mem_credit_given
+
+//rfcomm modem status
+1 mem_ms_channel
+
+1 mem_credit_flag
+
+2 mem_rfcomm_max_frame_size
+1 mem_rfcomm_credit_init_data
+
+2 mem_cb_receive_spp_data
+
+2 mem_nl_rx_data_src
+2 mem_nl_rx_len_all
+)
+
+
+(
+0 CREDIT_DISABLE
+1 CREDIT_ENABLE
+)
+
+
+/************************************************************************/
+  
+
+ 
+/************/
+/* constant */
+/************/
+
+/* RFCOMM state for Headset (memRFCOMM_State) */ 
+  (
+    0 RFCOMM_IDLE           /* before the responsor HS receive SABM            */
+    1 RFCOMM_W4_DLCI0_OPEN
+    2 RFCOMM_W4_DLCI0_CLOSE
+    3 RFCOMM_START_DLCI0    /* After respond SABM frame (DLCI=0)               */
+    4 RFCOMM_W4_DLCI_OPEN
+    5 RFCOMM_W4_DLCI_CLOSE
+    6 RFCOMM_DLCI_OPENED    
+   
+  )
+  
+/* RFCOMM timer constants   */
+  (
+    1000  RFCOMM_T1         /* Used by SABM and DISC frames,100*20ms = 20s     */     
+    1000  RFCOMM_T2         /* Used by commands send in UIH on DLCI0,          */
+    300   RFCOMM_T3_RINGON  /* 6s for ring fade time                           */
+  
+  )
+
+/* Command Type */
+  (
+    0x3F RSP_RX_SABM        /*responsor expect SABM from initiator             */
+    0x3F INI_TX_SABM
+	
+    0x73 RSP_TX_UA          /*responsor send out UA command                    */
+    0x73 UA_WFBIT_SET	    /* UA control field with F bit set                 */
+	
+    0xEF RSP_RX_UIH         /*responsor expect UIH from initiator              */
+
+    0xEF RSP_TX_UIH         /*responsor send UIH to initiator                  */
+     
+    0x1F RSP_TX_DM          /*responsor send DM to initiator                   */
+    0x1F DM_WFBIT_SET       /* DM control field with F bit set                 */
+    0x0F DM_WFBIT_CLEAR     /* DM control field with F bit clear               */
+
+    0x53 RSP_RX_DISC        /*responsor expect DISC from initiator             */
+    0x53 INI_TX_DISC	    /*initiator send DISC control type command         */
+     
+    0xFF RSP_RX_UIH_WDATA   /*UIH data with credit flow control info           */
+    
+    
+  )
+
+/* Multiplexor commands and responses frames */
+  (
+    0x83 PN_COMMAND           /* Bit 0 EA C/R Type = 000001         */
+    0x81 PN_RESPONSOR         /* Bit 0 EA C/R Type = 000001         */
+    
+    0xE3 MSC_COMMAND          /* Bit 0 EA C/R Type = 000111         */
+    0xE1 MSC_RESPONSOR
+ 
+    0x13 NSC_COMMAND          /* Bit 0 EA C/R Type = 001000         */
+    0x11 NSC_RESPONSOR        /* Bit 0 EA C/R Type = 001000         */
+
+    0x23 TEST_COMMAND         /* Bit 0 EA C/R Type = 000111         */
+    0x21 TEST_RESPONSOR 
+    
+    0x93 RPN_COMMAND          /* Bit 0 EA C/R Type = 001001         */
+    0x91 RPN_RESPONSOR 
+    
+    0x53 RLS_COMMAND          /* Bit 0 EA C/R Type = 001010         */
+    0x51 RLS_RESPONSOR 
+
+    0xA3 FCON_COMMAND         /* Bit 0 EA C/R Type = 000101         */
+    0xA1 FCON_RESPONSOR 
+    
+    0x63 FCOFF_COMMAND        /* Bit 0 EA C/R Type = 000110         */
+    0x61 FCOFF_RESPONSOR 
+    	
+    0x03 RLS_OVERRUN
+    0x05 RLS_PARITY_ERROR
+    0x09 RLS_FRAMING_ERROR
+  )
+
+/* memLocalCredit */
+  (
+    0x01 RFCOMM_CREDIT
+  )
+
+  (
+  	0x007f RFCOMM_MAX_FRAME_SIZE
+  )
+
+/* UIH received Data length */
+  (
+    0  LENGTH_ZERO
+    
+    6  LENGTH_OK
+    7  LENGTH_HOT
+    8  LENGTH_RING
+    9  LENGTH_ERROR
+    9  LENGTH_AGVOL_ONEBYTE
+    10 LENGTH_AGVOL_TWOBYTE
+    10 LENGTH_VOL_ONEBYTE
+    11 LENGTH_VOL_TWOBYTE
+    12 LENGTH_BRSF
+    13 LENGTH_PLUS_CIEV
+    15 LENGTH_INBANDRING
+    14 LENGTH_CIEV_CALL
+    17 LENGTH_CRING
+    20 LENGTH_BRSF_OK
+    24 LENGTH_CIND0
+    28 LENGTH_CIEV_TWO
+    32 LENGTH_CIND_OK
+    59 LENGTH_CIND_OK2
+    100 LENGTH_DISCARD
+  )
+  
+/************/
+/* flags    */
+/************/
+  
+/* memRFCOMM_L2CAP_Interface */
+  (
+    0 RFCOMM_TX_W4BUF_FLAG    /* Wait for Tx buffer empty flag */
+    1 RFCOMM_CLOSE_LINK_FLAG
+  )
+  
+
+    
+/* memRemoteMSC		*/
+  (
+    0 MSC_EA_BIT
+    1 MSC_FC_BIT
+    2 MSC_RTC_BIT
+    3 MSC_RTR_BIT
+    6 MSC_IC_BIT
+    7 MSC_DV_BIT
+  )
+
+/* memRemoteRLS         */
+  (
+    0x0C OVERRUN_ERROR
+    0x0A PARITY_ERROR
+    0x09 FRAMING_RERROR
+  )
+  
+/* memRemoteRPNBitRate  */
+  (
+    0x00 BITS2400
+    0x01 BITS4800
+    0x02 BITS7200
+    0x03 BITS9600
+    0x04 BITS19200
+    0x05 BITS38400
+    0x06 BITS57600
+    0x07 BITS115200
+    0x08 BITS230400
+  )
+  
+/* memRemotePRNDataBits	*/
+  (
+    0x00 DATABITS5
+    0x01 DATABITS6
+    0x02 DATABITS7
+    0x03 DATABITS8
+  )
+  
+/* memRemotePRNStopBit	*/
+  (
+    0    ONESTOP
+    1    ONEHALFSTOP
+  )
+  
+/* memRemotePRNParity   */
+  (
+    0    ODDPARITY
+    1    EVENPARITY
+    2    MARKPARITY
+    3    SPACEPARITY
+    
+    7    PARITY_ENABLE_BIT
+  )
+
+/* RPN bit mask(in)     */
+  (
+     0   BIT_RATE_MASK_BIT
+     1   DATA_BITS_MASK_BIT
+     2   STOP_BITS_MASK_BIT
+     3   PARITY_MASK_BIT
+     4   PARITY_TYPE_MASK_BIT
+     5   XON_CHAR_MASK_BIT
+     6   XOFF_CHAR_MASK_BIT
+  )
+  
+/* RPN bit mask(in) 2    */
+  (
+     0   XON_XOFF_INPUT_MASK_BIT
+     1   XON_XOFF_OUTPUT_MASK_BIT
+     2	 RTR_INPUT_MASK_BIT
+     3   RTR_OUTPUT_MASK_BIT
+     4   RTC_INPUT_MASK_BIT
+     5   RTC_OUTPUT_MASK_BIT
+
+  )
+
+/* memRFCOMM_Request	*/
+  (
+    0 SEND_MSC_CMD_REQ_FLAG
+    1 SEND_AT_CKPD_REQ_FLAG
+    2 SEND_RING_REQ_FLAG
+    3 SEND_SABM_CMD
+  )
+  
+/* memRFCOMM_Misc_Flag  */
+  (
+    0 MSC_CDM_ALREADY_SEND_FLAG
+    1 CREDIT_FLOW_USED_FLAG
+    2 DONT_EMBEDDED_CREDIT_FLAG 
+    3 MSC_EXCHANGE_DONE_FLAG
+    4 FLOW_CONTROL_FCOFF_BIT            /* set when receive FCoff, clear when FCon   */
+  )
+  
+/* memRemoteMSC		*/
+  (
+    1 FLOW_CONTROL_FC_BIT		/* received MSC FC bits                      */
+  
+  )
+/* Address filed        */
+  (
+    0 ADDR_EA_BIT
+    1 ADDR_CR_BIT
+    2 ADDR_D_BIT
+  )
+//should be same as descripted in SDP
+(
+    1 SPP_SLAVE_CHANNEL
+    7 OBEX_SERVER_CHANNEL
+    8 HF_SERVER_CHANNEL 
+    9 HS_SERVER_CHANNEL
+)
+/* memRFCOMM_Flag */
+(
+	0 USING_HF_PROFILE
+	1 USING_HS_PROFILE
+	2 USING_SPP_PROFILE
+)
+/*RFCOMM Frame Type*/
+(
+	0x3f RFCOMM_FRAME_TYPE_SABM
+	0x73 RFCOMM_FRAME_TYPE_UA
+	0xEF RFCOMM_FRAME_TYPE_UIH
+	0xFF RFCOMM_FRAME_TYPE_UIH_CREDITS
+	0x53 RFCOMM_FRAME_TYPE_DISCONN
+)
+/*RFCOMM UIH CMD TYPE*/
+(
+	0x41 UIH_PARAM_NEG_CMD
+	0x40 UIH_PARAM_NEG_RES
+	0x49 UIH_PARAM_CMD_REMOVE_PORT
+	0x71 UIH_MODEM_STATUS_CMD
+	0x70 UIH_MODEM_STATUS_RES
+)
+
+/*bits in rfcomm address*/
+(
+	0 RFCOMM_ADDRESS_EXT_LEN
+	1 RFCOMM_ADDRESS_CR
+	2 RFCOMM_ADDRESS_DERECTION
+
+
+)
+
+	(                                   
+	0 RFCOMM_CHANNEL_STATE_PN_CMD
+	1 RFCOMM_CHANNEL_STATE_PN_RES
+	2 RFCOMM_CHANNEL_STATE_SABM
+	3 RFCOMM_CHANNEL_STATE_UA
+	4 RFCOMM_CHANNEL_STATE_SND_MS_CMD
+	5 RFCOMM_CHANNEL_STATE_RCV_MS_CMD
+	6 RFCOMM_CHANNEL_STATE_SND_MS_RES
+	7 RFCOMM_CHANNEL_STATE_RCV_MS_RES
+	0xff RFCOMM_CHANNEL_SETUP_COMPLETE
+	) 
+
+	/*mem_rfcomm_send_more_pkt*/
+	(
+	1 MORE_PKT_MSC_CMD_HF
+	2 MORE_PKT_MSC_CMD_HS
+	3 MORE_PKT_MSC_CMD_SPP
+	4 MORE_PKT_MSC_CMD_OBEX
+	)
+
+	(
+	127 RFCOMM_MALLOC_SIZE
+	)
+memalloc(
+0 mem_sdp_mem_start
+8 mem_sdp_uuid_search_ptr
+2 mem_sdp_continue_byte
+1 mem_sdp_pduid
+2 mem_sdp_transactionid
+2 mem_sdp_transactionid_local
+2 mem_sdp_attribute_maxbyte
+2 mem_sdp_record_maxcnt
+4 mem_sdp_record_handle
+1 mem_sdp_LACAP_found
+1 mem_sdp_RFCOMM_found
+0 mem_sdp_handle_list
+32 mem_sdp_attrib_list
+2 mem_sdp_error_code
+2 mem_sdp_all_length
+1 mem_handle_humber
+2 mem_search_uuid
+0 mem_sdp_mem_end
+)
+xmemalloc(
+2 mem_ui_uuid_table
+22 mem_all_uuid_16bits
+34 mem_all_uuid_128bits
+2 mem_sdp_l2capch_ptr
+)
+(
+0 AGORHS_SERVICE
+1 GENAUDIO_SERVICE
+2 HANDSFREE_SERVICE
+)
+(
+0 ATTRIBUTEID_0000
+1 ATTRIBUTEID_0001
+2 ATTRIBUTEID_0004
+3 ATTRIBUTEID_0009
+4 ATTRIBUTEID_0100
+5 ATTRIBUTEID_0302
+6 ATTRIBUTEID_0006
+7 ATTRIBUTEID_0311
+)
+/* mem_sdp_search_profile */
+(
+1	SDP_SS_HEADSET
+2  	SDP_SS_HANDSFREE
+)
+(
+0x06 sdp_pduid_serviceSearchAttrib
+)
+0x2600 sdp_max_amount
+767 SDP_MALLOC_SIZE
+0x6e sdp_tid_spp //any number
+
+ 
+
+memalloc(
+/* moved from bt.format for 3dh5 1021bytes packet buffer */
+17 mem_rxbuf
+
+16 mem_random_number
+16 mem_round_key
+16 mem_kinit
+
+16 mem_input_store
+16 mem_x
+15 mem_y
+1 mem_y15
+17 mem_key_store
+1 mem_key_store_end
+2 memp_ar_key
+2 memp_ar_input
+10 mem_ar_hround
+
+
+1 mem_ec_infinite
+2 mem_ec_loopc
+1 mem_aes_cmac_data_length
+
+0 memdat
+/* ecc calculation */
+
+24 mem_ax
+24  mem_ay
+24  mem_az
+24 mem_bx
+0 mem_ax_256 //32 bytes
+24 mem_by
+8 mem_bz
+16 mem_ay_256 // 32 bytes
+16 mem_cx
+8 mem_az_256 // 32 bytes
+23 mem_cy
+1 mem_cy5
+0 mem_bx_256 // 32 bytes
+24 mem_cz
+8  mem_k
+16 mem_by_256 // 31 bytes
+16 mem_align
+
+0 mem_bz_256  //32 bytes
+0 mem_tmp1
+24 memahbak
+8 mem_tmp5
+0 mem_cx_256  //32 bytes
+16 memahsave
+16  mem_tmp2
+0 mem_cy_256  // 32 bytes
+0  memahsave_end 
+1  mem_addr_padding 
+7   mem_addr_value         /* 12 bytes     */ 
+0 mem_tmp3
+5 mem_t1
+3  mem_addr_value_end   
+15 mem_addr_iocap_end
+1 mem_cy5_256 // 1 byte
+0 mem_cz_256 // 32 bytes
+0 mem_tmp0
+8 mem_t0
+16 mem_tmp0a
+8  mem_t2
+16 mem_k_256 //32 bytes
+16 mem_t3
+8  mem_tmp1_256 //32 bytes
+24 mem_t7
+
+
+32 mem_tmp5_256
+32  mem_tmp2_256
+0 mem_tmp3_256
+32 mem_t1_256
+0 mem_tmp0_256
+32 mem_t0_256
+32 mem_t2_256
+32 mem_t3_256
+32 mem_t7_256
+
+24 mem_p		
+24 mem_a
+24 mem_b
+24 mem_gx
+24 mem_gy
+32 memh0
+
+//p256
+//2 mem_ec_loopc_256
+//32 mem_ax_256
+//32 mem_ay_256
+//32 mem_az_256
+//32 mem_bx_256
+//32 mem_by_256
+//32 mem_bz_256
+//32 mem_cx_256
+//31 mem_cy_256
+//1 mem_cy5_256
+//32 mem_cz_256
+//32 mem_k_256
+
+
+//32 mem_tmp1_256
+//32 mem_tmp5_256
+//32  mem_tmp2_256
+
+//0 mem_tmp3_256
+//32 mem_t1_256
+//0 mem_tmp0_256
+//32 mem_t0_256
+//32 mem_t2_256
+//32 mem_t3_256
+//32 mem_t7_256
+
+32 mem_p_256		
+32 mem_a_256
+32 mem_gx_256
+32 mem_gy_256
+//4 mem_le_keyid
+16 mem_le_slat
+
+
+//64 mem_regext
+//1 mem_regext_index
+
+//16 mem_le_mackey
+
+
+//1 mem_AES_CMAC_flag
+//16 mem_AES_CMAC_temp
+//16 mem_AES_CMAC_M_last
+
+//4 mem_le_gkey
+
+//16 mem_le_r
+
+)
+
+(
+0 PAIR_UNKNOWN
+1 PAIR_ING
+2 PAIR_DONE
+)
+
+(
+0x18 ATT_WRITE_REQUEST_HANDLE
+)
+
+(
+0x13	HANDLE_VOLUM_UP_KEY	
+0x17	HANDLE_ENTER_KEY
+)
+	
+(
+0x010210 param_smp_key_dist1
+0x010010 param_smp_key_dist2
+)
+
+(
+0 INITATOR_LTK
+1 INITATOR_IRK
+2 INITATOR_CSRK
+)
+
+(
+//100ms
+0x00a0	FAST_ADV_INTERVAL_VALUE
+//200ms
+0x0140	SLOW_ADV_INTERVAL_VALUE
+)
+
+(
+0x01	GAP_ADTYPE_FLAGS
+0x02	GAP_ADTYPE_16BIT_MORE
+0x03	GAP_ADTYPE_16BIT_COMPLETE
+0x04	GAP_ADTYPE_32BIT_MORE
+0x05	GAP_ADTYPE_32BIT_COMPLETE
+0x06	GAP_ADTYPE_128BIT_MORE
+0x07	GAP_ADTYPE_128BIT_COMPLETE
+0x08	GAP_ADTYPE_LOCAL_NAME_SHORT
+0x09	GAP_ADTYPE_LOCAL_NAME_COMPLETE
+0x0a	GAP_ADTYPE_POWER_LEVEL
+0xff	GAP_ADTYPE_MANUFACTURER_SPECIFIC
+)
+
+(
+0 ATT_BIT_NOTIFICATION
+1 ATT_BIT_INDICATION
+)
+///////////////////////////////////////////////////////////////////////////////////////
+(
+13 MAX_SHUTER_KEY_NUM
+4  MAX_SHUTTER_LED_NUM
+0xFF INVALID_PIN_NUM
+)
+(
+0 KEY_DEFAULT
+1 kEY_1
+2 kEY_2
+3 KEY_3
+4 KEY_4
+)
+(
+0 HARD_SWITCH
+1 SOFT_SWITCH
+)
+(
+0 LED_OFF
+1 LED_ON
+2 LED_BLINK
+0xFF LED_INVALID
+)
+
+/*struct led_style*/
+(
+7 LED_STYLE_STRUCT_LEN
+0 LED_TYPE_OFFSET
+1 LED_PIN_OFFSET
+2 LED_ON_TIME_OFFSET
+4 LED_OFF_TIME_OFFSET
+6 LED_BLINK_COUNT_OFFSET
+)
+
+/*struct key_conf*/
+(
+2 KEY_CONF_STRUCT_LEN
+0 KEY_PIN_OFFSET
+1 KEY_STYLE_IND_OFFSET
+)
+
+(
+0 SHUTTER_POWER_UP
+1 SHUTTER_POWER_ON
+2 SHUTTER_POWER_OFF
+)
+
+(
+0x5907 le_parse_att0
+0x5666 le_prepare_att0
+0x7c67 check_51cmd_once0
+)
+
+
+(
+0xf00 EEP_LAP_ADDR
+)
+
+(
+0x33 PAIRED_DEVICE_TYPE_BT
+0x44 PAIRED_DEVICE_TYPE_BLE
+5 PAIRED_DEVICE_DEFAULT_LEN
+0x5a5a PAIRED_DEVICE_MAGIC
+)
+
+(
+0 FLAG_SHUTTER_DEFAULT
+1 FLAG_SHUTTER_IPHONEKEY_SEND
+2 FLAG_SHUTTER_ANDROIDKEY_SEND
+)
+
+(
+0 FLAG_SHUTTER_IPHONEKEY_PRESS
+1 FLAG_SHUTTER_ANDROIDKEY_PRESS
+)
+
+(
+1  FLAG_SHUTTER_HID_DISCONN_TIMEOUT
+5 FLAG_SHUTTER_CABLE_UNPLUG_TIMEOUT
+)
+
+(
+1 FLAG_SHUTTER_1KEY
+2 FLAG_SHUTTER_2KEY
+)
+
+(
+0 FLAG_SHUTTER_1KEY_SEND_NULL
+1 FLAG_SHUTTER_1KEY_SEND_STEP1
+2 FLAG_SHUTTER_1KEY_SEND_STEP2
+3 FLAG_SHUTTER_1KEY_SEND_STEP3
+4 FLAG_SHUTTER_1KEY_SEND_STEP4
+)
+
+
+//mem_shutter_find_type_value_flag
+(
+0X00 LE_FIND_TYPE_VALUE_HID_BIT
+0X01 LE_FIND_TYPE_VALUE_BATTERY_BIT
+0X02 LE_FIND_TYPE_VALUE_DEVICE_INFO_BIT
+0x03 LE_FIND_TYPE_VALUE_GATT_BIT
+)
+
+(
+//20ms
+0x0020	FAST_ADV_INTERVAL_VALUE_PATCH
+)
+
+(
+50 TIMEOUT_DISCONNECT_TIMER
+)
+
+/* simple pairing page */
+
+memalloc(
+
+//4 mem_hci_ssp_mode
+0 mem_sp_state_start
+1 mem_sp_state
+1 mem_master_sp_state
+1 mem_sp_flag
+1 mem_master_sp_flag
+1 mem_sp_calc
+1 mem_sp_dh_ready
+1 mem_sp_localsm
+1 mem_pairing_auth
+
+0 mem_sp_flag_start
+1 mem_sp_local_key_send_count
+1 mem_sp_remote_key_recv_count
+1 mem_sp_remote_key_invalid
+1 mem_sp_dhkey_invalid
+
+
+4 mem_gkey
+
+
+8 mem_le_pubkey_remote_x_256
+0 mem_sp_pubkey_remote
+24 mem_sp_pubkey_remote_x
+0 mem_sp_pubkey_remote_x_end
+8 mem_le_pubkey_remote_y_256
+24 mem_sp_pubkey_remote_y
+
+8 mem_le_dhkey_256
+24 mem_sp_dhkey
+0 mem_sp_dhkey_end
+
+16 mem_sp_random_local
+0 mem_sp_random_local_end
+16 mem_sp_random_remote
+0 mem_sp_random_remote_end
+0 memresult
+0 mem_sp_calc_result
+4 memh
+4 memg
+4 memf
+4 meme
+0 mem_sp_calc_result_high
+4 memd
+4 memc
+4 memb
+4 mema
+16 mem_sp_check_result
+16 mem_sp_confirm_remote
+16 mem_sp_prarm_stack
+)
+
+xmemalloc(
+1 mem_sp_local_key_invalid
+
+
+32 mem_le_private_key_256
+32 mem_le_pubkey_local_x_256
+32 mem_le_pubkey_local_y_256
+
+24 mem_sp_private_key
+0 mem_sp_pubkey_local
+24 mem_sp_pubkey_local_x
+0 mem_sp_pubkey_local_x_end
+24 mem_sp_pubkey_local_y
+
+1 mem_ssp_enable
+3 mem_sp_iocap_local
+3 mem_sp_iocap_remote
+
+1 mem_flag_mode_ssp_pin
+1 mem_ssp_mode_flag
+1 mem_authentication_passkey_times
+1 mem_passkey_1bit
+1 mem_flag_pairing_state
+
+)
+/* simple pairing status flag */
+(
+  0x00   SP_FLAG_STANDBY
+  0x01   SP_FLAG_COMMIT
+  0x02   LE_SP_FLAG_COMMIT_256
+
+)
+
+/* simple pairing calc flag */
+(
+  0x00   SP_CALC_STANDBY
+  0x01   SP_CALC_PUBKEY
+  0x02   SP_CALC_DHKEY
+  0x03   SP_CALC_PUBKEY_256
+  0x04   SP_CALC_DHKEY_256
+)
+
+/* simple pairing state */
+(
+  0x00   SP_STAT_NULL
+  0x01   SP_STAT_KEY_RECV
+  0x02   SP_STAT_KEY_GENERATE
+  0x03   SP_STAT_KEY_SEND
+  0x04   SP_STAT_COMMIT_CALC
+  0x05   SP_STAT_COMMIT_SEND
+  0x06   SP_STAT_RANDOM_RECV
+  0x07   SP_STAT_RANDOM_SEND
+  0x08   SP_STAT_CONFIRM_RECV
+  0x09   SP_STAT_CONFIRM_CHECK
+  0x0A   SP_STAT_CONFIRM_CALC
+  0x0B   SP_STAT_CONFIRM_SEND
+  0x0C   SP_STAT_LINK_KEY_CALC
+  0x0F   SP_STAT_DONE
+  0x10   SP_STAT_FEATURE_EXT_SEND
+  0x11   SP_STAT_GKEY_CALC
+  /*simple pairing master only*/
+  0x12   SP_MASTER_STAT_START_SKIP
+  0x13   SP_MASTER_STAT_START_DONE
+  0x14   SP_STAT_COMMITMENT_COMPARE
+  0x15   SP_STATE_END
+)
+
+
+/* simple paring invalid flag */
+(
+  0x00   SP_KEY_INVALID
+  0x01   SP_KEY_VALID
+  0x03   SP_KEY_VALID_256
+
+)
+
+/* encapsulated defination for P-192 key */
+(
+  0x01  ENCAPSULATED_MAJOR_TYPE_P192
+  0x01  ENCAPSULATED_MINOR_TYPE_P192
+  0x30  ENCAPSULATED_LEN_P192
+)
+
+/* bluetooth 2.1 support flag */
+(
+  0x00  SIMPLE_PAIRING_ENABLE
+  0x01  ENCRYPTION_PAUSE_ENABLE
+  0x02  EXTENDED_INQUIRY_RESPOSE_ENABLE
+  0x03  SNIFF_SUBRATING_ENABLE
+)
+
+/*mem_sp_localsm*/
+(
+  0x00 DEFAULT_STATEMACHINE
+  0x01 LOCAL_STATEMACHINE
+)
+
+(
+ 0x00 DEFALT_PAIRING_AUTH
+ 0x01 PAIRING_AUTH
+)
+
+(
+1 SSP_MODE_SSP_PIN_FLAG
+2 SSP_MODE_PASSKEY_ENTRY_FLAG
+3 SSP_MODE_JUST_WORK_FLAG
+)
+
+(//ssp mode
+0x040003 SSP_MODE_JUST_WORK_IO_CAP_DATA
+0X040001 SSP_MODE_SSP_PIN_IO_CAP_DATA
+0X040002 SSP_MODE_PASSKEY_IO_CAP_DATA
+)
+
+(
+0x00 DISPLAY_ONLY
+0x01 DISPLAY_YESNO
+0x02 KEYBOARD_ONLY
+0x03 NO_INPUT_NO_OUTPUT
+)
+
+(
+7 FLAG_MODE_SSP_PIN_REVICEVE_COMPARISON_BIT
+6 FLAG_MODE_SSP_PIN_RECIEVE_DHKEY_BIT
+0 FLAG_MODE_SSP_PIN_COMPARISON_RESULT_BIT
+)
+(
+1 FLAG_PAIRING_STATE_PAIRING
+0 FLAG_PAIRING_STATE_NOT_PAIRING
+)
+
+  
+/*****************************************************************************/
+/* RCS HEADER -- DO NOT ERASE                                                */
+/* $Author: Administrator $                                                           */
+/* $Id: bt_ui_format.upper,v 1.1 2009-09-28 04:06:17 Administrator Exp $     */
+/************************************************************************/
+
+
+	/* ========= memory ============== */
+memalloc(
+2 mem_UI_data_txbuff_length
+
+1 mem_ipc_skip_continue_proc
+0 mem_ui_timer_temp  //length 4
+4 mem_ipc_rega_temp
+) 
+
+xmemalloc(
+//UI Work area
+1 mem_ipc_lock_bt
+1 mem_ipc_lock_c51
+8 mem_ipc_fifo_bt2c51
+8 mem_ipc_fifo_c512bt
+1 mem_ui_button_timer
+1 mem_ui_button_last_state
+4 mem_ui_timer_last_btclk
+2 mem_discovery_timeout_timer_count
+1 mem_hid_handshake_timer_count
+1 memui_reconnect_mode
+2 mem_ui_state_map
+
+//UI Config area
+1 mem_ui_profile_supported
+1 mem_ui_button_timeout
+1 mem_ui_button_gpio
+2 mem_discovery_timeout
+1 mem_pin_length
+16 mem_pin
+
+)
+/************/
+/* constant */
+/************/
+
+//mem_ui_state_map
+(
+0 UI_STATE_BT_CONNECTED
+1 UI_STATE_BT_SETUP_COMPLETE
+2 UI_STATE_BT_HID_CONN
+3 UI_STATE_BT_HID_HANDSHAKE
+4 UI_STATE_BT_SPP_CONN
+5 UI_STATE_BT_SNIFF
+6 UI_STATE_BT_DISCOVERY
+7 UI_STATE_BT_RECONNECT
+8 UI_STATE_BT_SLAVE_ROLE
+9 UI_STATE_BLE_CONNECTED
+10 UI_STATE_BLE_WRITE_RCV
+11 UI_STATE_BLE_ADV
+12 UI_STATE_BTN_DOWN
+13 UI_STATE_LED_BLINK
+14 UI_STATE_LED_ON
+)
+(
+0xFF LED_FLASH_INFINITE
+)
+
+(
+1 UI_STATE_SPP_NL_AUTO_DISCOVER
+
+)
+
+/* UI state for Headset (memui_HS_State) */ 
+   (
+    0 UI_HEADSET_DISCONNECT
+    1 UI_HEADSET_IDLE                   /* before the responsor HS receive SABM      */
+    2 UI_HEADSET_W4CONNECT
+    3 UI_HEADSET_RINGING
+    4 UI_HEADSET_CONNECTED
+    5 UI_HEADSET_PARING
+  )
+/* memui_BB_State */
+(
+  0 UI_BB_OFF
+  1 UI_BB_IDLE
+  2 UI_BB_DISCOVERY
+  3 UI_BB_CONNECTED_ACTIVE_NO_SCO
+  4 UI_BB_CONNECTED_ACTIVE_WITH_SCO
+  5 UI_BB_CONNECTED_ACTIVE_WAIT_SNIFF
+  6 UI_BB_CONNECTED_SNIFF
+  7 UI_BB_RECONNECT
+  8 UI_BB_CONNECTED_SNIFF_WITH_SCO
+)
+
+/************/
+/* flags    */
+/************/
+  
+/* memui_Misc_Flags */
+  (
+    5 NO_IDLE_TURN_OFF
+    7 ANSWER_RING_FLAG               /* 1 Answer,0 no*/
+  )
+
+/* mem_UI_SCH_Interface */
+  (
+    0  UI_HS_PAIRING 
+    2  UI_REQ_CLOSE_RFCOMM
+    3  UI_LINK_LOST
+    4  UI_REQ_OPEN_SCO
+    6  UI_REQ_CLOSE_SCO
+  )
+  
+/* memui_PassOverKey */
+  (
+    0  ANSWER_RING_BIT
+    0  AG_SEND_RING_BIT
+    1  VOL_UP_BIT
+    2  VOL_DOWN_BIT
+    3  INI_CALL_BIT
+    4  DAIL_LAST_CALL
+    5  END_CALL_BIT
+    6  NOKIA_VOICE_ACTIVE 
+    7  REJECT_CALL_BIT
+  )
+  
+/* memui_reconnect_mode */
+(
+  0 NO_RECONNECTION
+  1 RECONNECT_HID
+  2 RECONNECT_HF
+  3 RECONNECT_HS
+  4 RECONNECT_HID_HF
+  5 RECONNECT_HID_HS
+)
+/* memui_Commands */
+(
+0 BT_CMD_STANDBY
+1 BT_CMD_START_DISCOVERY
+2 BT_CMD_STOP_DISCOVERY
+3 BT_CMD_RECONNECT
+4 BT_CMD_DISCONNECT
+5 BT_CMD_ENTER_SNIFF
+6 BT_CMD_EXIT_SNIFF
+7 BT_CMD_ENTER_SNIFF_SUBRATING
+8 BT_CMD_EXIT_SNIFF_SUBRATING
+9 BT_CMD_SNIFF_TEST
+10 BT_CMD_SET_PIN_CODE
+11 BT_CMD_START_INQUIRY
+12 BT_CMD_STOP_INQUIRY
+13 BT_CMD_START_ADV
+14 BT_CMD_STOP_ADV
+15 BT_CMD_START_DIRECT_ADV
+16 BT_CMD_STOP_DIRECT_ADV
+17 BT_CMD_LE_DISCONNECT
+18 BT_CMD_LE_UPDATE_CONN
+19 BT_CMD_LED_OFF
+20 BT_CMD_LED_ON
+21 BT_CMD_LED_BLINK
+22 BT_CMD_LE_START_CONN
+23 BT_CMD_LE_START_SCAN
+24 BT_CMD_LE_STOP_SCAN
+25 BT_CMD_ENTER_HIBERNATE
+27 BT_CMD_LE_SMP_SECURITY_REQUEST
+28 BT_CMD_LE_START_WRITE
+29 BT_CMD_ROLE_SWITCH
+30 BT_CMD_BB_RECONN_CANCEL
+31 BT_CMD_STORE_RECONN_INFO_LE
+32 BT_CMD_STORE_RECONN_INFO_BT
+33 BT_CMD_DHKEY_NOT_ACCEPT
+34 BT_CMD_START_24G
+35 BT_CMD_STOP_24G
+36 BT_CMD_PAIR_24G
+)
+
+(
+0x00 BT_EVT_NULL
+0x01 BT_EVT_BB_CONNECTED
+0x02 BT_EVT_BB_DISCONNECTED
+0x03 BT_EVT_RECONN_STARTED
+0x04 BT_EVT_RECONN_FAILED
+0x05 BT_EVT_SETUP_COMPLETE
+0x06 BT_EVT_HID_CONNECTED
+0x07 BT_EVT_HID_DISCONNECTED
+0x08 BT_EVT_SPP_CONNECTED
+0x09 BT_EVT_SPP_DISCONNECTED
+0x0A BT_EVT_PINCODE_REQ
+0x0B BT_EVT_ENTER_SNIFF
+0x0C BT_EVT_EXIT_SNIFF
+0x0D BT_EVT_ENTER_SNIFF_SUB
+0x0E BT_EVT_EXIT_SNIFF_SUB
+0x0F BT_EVT_DISCOVERY_STOPED
+0x10 BT_EVT_BUTTON_LONG_PRESSED
+0x12 BT_EVT_HID_HANDSHAKE
+0X13 BT_EVT_RECONN_PAGE_TIMEOUT
+0x14 BT_EVT_LE_CONNECTED
+0X15 BT_EVT_LE_DISCONNECTED
+0x16 BT_EVT_ML2CAP_CONN_REFUSED
+0x17 BT_EVT_BUTTON_ENTER_HIBERNATE
+0x18 BT_EVT_LINKKEY_GENERATE
+0x19 BT_EVT_SWITCH_NOT_ACCEPT
+0x20 BT_EVT_SWITCH_ACCEPT
+0x21 BT_EVT_SNIFF_NOT_ACCEPT
+0x22 BT_EVT_SNIFF_ACCEPT
+0x23 BT_EVT_UNSNIFF_ACCEPT
+0x24 BT_EVT_UNSNIFF_NOT_ACCEPT
+0x25 BT_EVT_BUTTON_ADJUST_DPI
+0x26 BT_EVT_SEND_UNSNIFF_ACCEPT
+0x27 BT_EVT_VIRTUAL_CABLE_UNPLUG
+0x28 BT_EVT_LE_WRITE_REQUEST
+0x29 BT_EVT_LE_ENC_INFO
+0x2a BT_EVT_SWITCH_FAIL_MASTER
+0x2b BT_EVT_SWITCH_SUCCESS_MASTER
+0x2c BT_EVT_BUTTON_DOWN
+0x2d BT_EVT_BUTTON_UP
+0x2e BT_EVT_REMOTE_UNSNIFF
+0x30 BT_EVT_LE_PAIRING_FAIL
+0x31 BT_EVT_LE_PAIRING_SUCCESS
+0x32 BT_EVT_LE_START_ENC
+0X33 BT_EVT_LE_PAUSE_ENC
+0X34 BT_EVT_LE_TK_GENERATE
+0x35 BT_EVT_BT_GKEY_GENERATE
+0x36 BT_EVT_BT_GET_PASSKEY
+0x37 BT_EVT_BT_PAIRING_FAIL
+0x38 BT_EVT_BT_PAIRING_SUCCESS
+0x39 BT_EVT_24G_PAIRING_COMPLETE
+0x3a BT_EVT_24G_ATTEMPT_FAIL
+0x3b BT_EVT_LE_GKEY_GENERATE
+0x3c BT_EVT_24G_ATTEMPT_SUCCESS
+0x3d BT_EVT_STORE_NVRAM
+0x3e BT_EVT_LE_PAIRING_COMPLETE
+0x3F BT_EVT_LE_RECONNECT_COMPLETE
+0x40 BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP
+0x41 BT_EVT_LE_LTK_LOST
+
+0x50 BT_EVT_TIMER_INIT
+0xF0 BT_EVT_TIMER_MASK
+0x51 BT_EVT_TIMER_100MS
+0x52 BT_EVT_TIMER_200MS
+0x53 BT_EVT_TIMER_300MS
+0x54 BT_EVT_TIMER_400MS
+0x55 BT_EVT_TIMER_500MS
+0x56 BT_EVT_TIMER_600MS
+0x57 BT_EVT_TIMER_700MS
+0x58 BT_EVT_TIMER_800MS
+0x59 BT_EVT_TIMER_900MS
+0x5A BT_EVT_TIMER_1KMS
+0x5B BT_EVT_TIMER_1K1MS
+0x5C BT_EVT_TIMER_1K2MS
+0x5D BT_EVT_TIMER_1K3MS
+0x5E BT_EVT_TIMER_1K4MS
+0x5F BT_EVT_TIMER_1K5MS
+)
+//switch
+(
+0 OFF
+1 ON
+)
+/* memui_mem_lock */
+(
+    0 MEM_UNLOCK
+    1 MEM_LOCK
+)
+/* memui_flag0 */
+(
+    0 UI_USER_DATA_FLAG
+    1 UI_WII_WAITING_SLEEP
+    2 UI_KEYBOARD_SNIFF_SKIP
+)
+/* mem_master_type */
+(
+    0 MTYPE_HID_DEFAULT
+    1 MTYPE_HID_SSP
+    2 MTYPE_SPP
+)
+
+	(	
+	0x01 RECIEVE_SDP_CONN_RES
+	0x02 RECIEVE_SDP_CFG_REQ
+	0x03 RECIEVE_SDP_CFG_RES
+	0x04 RECIEVE_RFCOMM_CONN_RES
+	0x05 RECIEVE_RFCOMM_CFG_REQ
+	0x06 RECIEVE_RFCOMM_CFG_RES
+	0x07 RECIEVE_HID_CTRL_CONN_RES
+	0x08 RECIEVE_HID_CTRL_CFG_REQ
+	0x09 RECIEVE_HID_CTRL_CFG_RES
+	0x0A RECIEVE_HID_INT_CONN_RES
+	0x0B RECIEVE_HID_INT_CFG_REQ
+	0x0C RECIEVE_HID_INT_CFG_RES
+	0x0D RECIEVE_AVCTP_CONN_RES
+	0x0E RECIEVE_AVCTP_CFG_REQ
+	0x0F RECIEVE_AVCTP_CFG_RES
+	0x10 RECIEVE_AVDTP_SIGNAL_CONN_RES
+	0x11 RECIEVE_AVDTP_SIGNAL_CFG_REQ
+	0x12 RECIEVE_AVDTP_SIGNAL_CFG_RES
+	0x13 RECIEVE_AVDTP_MEDIA_CONN_RES
+	0x14 RECIEVE_AVDTP_MEDIA_CFG_REQ
+	0x15 RECIEVE_AVDTP_MEDIA_CFG_RES
+	0x16 RECIEVE_SS_REASULT_HS                  
+	0x17 RECIEVE_SS_REASULT_HF                  
+	0x18 RECIEVE_SS_REASULT_AVTARG		          
+	0x19 RECIEVE_SS_REASULT_OBEX		            
+	0x1A RECIEVE_DLCI0_UA
+	0x1B RECIEVE_HS_PARAM_NEG_RES
+	0x1C RECIEVE_HS_UA
+	0x1D RECIEVE_HS_MODEM_STATUS_RES
+	0x1E RECIEVE_HS_MODEm_STATUS_CMD
+	0x1F RECIEVE_HF_PARAM_NEG_RES   
+	0x20 RECIEVE_HF_UA              
+	0x21 RECIEVE_HF_MODEM_STATUS_RES
+	0x22 RECIEVE_HF_MODEm_STATUS_CMD 
+	0x23 RECIEVE_OBEX_PARAM_NEG_RES     
+	0x24 RECIEVE_OBEX_UA              
+	0x25 RECIEVE_OBEX_MODEM_STATUS_RES
+	0x26 RECIEVE_OBEX_MODEm_STATUS_CMD    
+	0x27 RECIEVE_SPP_PARAM_NEG_RES   
+	0x28 RECIEVE_SPP_UA              
+	0x29 RECIEVE_SPP_MODEM_STATUS_RES
+	0x2A RECIEVE_SPP_MODEm_STATUS_CMD
+	0x2b RECIEVE_SDP_DISCONN_RES
+	)
+
+
+
+	(
+	0 UPPERSM_RP_IDLE
+	1 UPPERSM_RP_SDP_CONN
+	2 UPPERSM_RP_SDP_CONN_WAIT
+	3 UPPERSM_RP_SDP_CFG
+	4 UPPERSM_RP_SDP_CFG_WAIT
+	5 UPPERSM_RP_SS_AVTARG
+	6 UPPERSM_RP_SS_AVTARG_WAIT
+	7 UPPERSM_RP_SS_OBEX
+	8 UPPERSM_RP_SS_OBEX_WAIT
+	9 UPPERSM_RP_SDP_DISCONN
+	10 UPPERSM_RP_SDP_DISCONN_WAIT
+	11 UPPERSM_RP_AVDTP_CONN_WAIT
+	12 UPPERSM_RP_AVCTP_CONN
+	13 UPPERSM_RP_AVCTP_CONN_WAIT
+	14 UPPERSM_RP_AVCTP_CFG
+	15 UPPERSM_RP_AVCTP_CFG_WAIT
+	16 UPPERSM_RP_OBEX_CMD_PN
+	17 UPPERSM_RP_OBEX_CMD_PN_WAIT
+	18 UPPERSM_RP_OBEX_SABM
+	19 UPPERSM_RP_OBEX_SABM_WAIT
+	20 UPPERSM_RP_OBEX_CMD_MS
+	21 UPPERSM_RP_OBEX_CMD_MS_WAIT
+	)
+	(		/*mem_upper_sm_reconn*/
+	0 UPPERSM_RECONN_IDLE		
+	1 UPPERSM_RECONN_SDP_CONN		
+	2 UPPERSM_RECONN_SDP_CONN_WAIT		
+	3 UPPERSM_RECONN_SDP_CFG		
+	4 UPPERSM_RECONN_SDP_CFG_WAIT		
+	5 UPPERSM_RECONN_SS_HS
+	6 UPPERSM_RECONN_SS_HS_WAIT
+	7 UPPERSM_RECONN_SS_HF
+	8 UPPERSM_RECONN_SS_HF_WAIT
+	9 UPPERSM_RECONN_SS_AVTARG		
+	10 UPPERSM_RECONN_SS_AVTARG_WAIT		    
+	11 UPPERSM_RECONN_SS_OBEX		            
+	12 UPPERSM_RECONN_SS_OBEX_WAIT		      
+	13 UPPERSM_RECONN_SDP_DISCONN		        
+	14 UPPERSM_RECONN_SDP_DISCONN_WAIT      
+	15 UPPERSM_RECONN_HID_CTRL_CONN		      
+	16 UPPERSM_RECONN_HID_CTRL_CONN_WAIT		
+	17 UPPERSM_RECONN_HID_CTRL_CFG		      
+	18 UPPERSM_RECONN_HID_CTRL_CFG_WAIT     
+	19 UPPERSM_RECONN_HID_INT_CONN		      
+	20 UPPERSM_RECONN_HID_INT_CONN_WAIT		  
+	21 UPPERSM_RECONN_HID_INT_CFG		        
+	22 UPPERSM_RECONN_HID_INT_CFG_WAIT      
+	23 UPPERSM_RECONN_RFCOMM_CONN		        
+	24 UPPERSM_RECONN_RFCOMM_CONN_WAIT		  
+	25 UPPERSM_RECONN_RFCOMM_CFG		        
+	26 UPPERSM_RECONN_RFCOMM_CFG_WAIT       
+	27 UPPERSM_RECONN_RFCOMM_SABM		        
+	28 UPPERSM_RECONN_RFCOMM_SABM_WAIT		  
+	29 UPPERSM_RECONN_SPP_CMD_PN		        
+	30 UPPERSM_RECONN_SPP_CMD_PN_WAIT		    
+	31 UPPERSM_RECONN_SPP_SABM		          
+	32 UPPERSM_RECONN_SPP_SABM_WAIT		      
+	33 UPPERSM_RECONN_SPP_CMD_MS		        
+	34 UPPERSM_RECONN_SPP_CMD_MS_WAIT       
+	35 UPPERSM_RECONN_HF_CMD_PN		          
+	36 UPPERSM_RECONN_HF_CMD_PN_WAIT		    
+	37 UPPERSM_RECONN_HF_SABM		            
+	38 UPPERSM_RECONN_HF_SABM_WAIT		      
+	39 UPPERSM_RECONN_HF_CMD_MS		          
+	40 UPPERSM_RECONN_HF_CMD_MS_WAIT        
+	41 UPPERSM_RECONN_AVDTPs_CONN		        
+	42 UPPERSM_RECONN_AVDTPs_CONN_WAIT		  
+	43 UPPERSM_RECONN_AVDTPs_CFG		        
+	44 UPPERSM_RECONN_AVDTPs_CFG_WAIT       
+	45 UPPERSM_RECONN_AVDTPm_CONN		        
+	46 UPPERSM_RECONN_AVDTPm_CONN_WAIT		  
+	47 UPPERSM_RECONN_AVDTPm_CFG		        
+	48 UPPERSM_RECONN_AVDTPm_CFG_WAIT       
+	49 UPPERSM_RECONN_AVCTP_CONN		        
+	50 UPPERSM_RECONN_AVCTP_CONN_WAIT		    
+	51 UPPERSM_RECONN_AVCTP_CFG		          
+	52 UPPERSM_RECONN_AVCTP_CFG_WAIT		    
+	53 UPPERSM_RECONN_OBEX_CMD_PN		        
+	54 UPPERSM_RECONN_OBEX_CMD_PN_WAIT		  
+	55 UPPERSM_RECONN_OBEX_SABM		          
+	56 UPPERSM_RECONN_OBEX_SABM_WAIT		    
+	57 UPPERSM_RECONN_OBEX_CMD_MS		        
+	58 UPPERSM_RECONN_OBEX_CMD_MS_WAIT     
+	59 UPPERSM_RECONN_SS_SPP
+	60 UPPERSM_RECONN_SS_SPP_WAIT
+	)
+	(/*mem_UI_profile_supported*/
+	0 support_HID
+	1 support_A2DP
+	2 support_AVRCP
+	3 support_HF
+	4 support_HS
+	5 support_PBAP
+	6 support_SPP
+	)
+	/*mem_upper_sm_ss*/
+	(
+	0 UPPERSM_SS_HS
+	1 UPPERSM_SS_HF
+	2 UPPERSM_SS_AVTARG
+	3 UPPERSM_SS_OBEX
+	)
+
+	(
+	160 UI_HUNDRED_MILLISECOND_TIME
+	0XFF UI_BUTTON_GPIO_DISABLE
+	)
+	(
+	0x01 UI_BB_INCONNECT
+	0x10 UI_BB_DISCONNECT
+	)
+(
+0x00 UI_BUTTON_STATE_DOWN
+0x01 UI_BUTTON_STATE_UP
+)
+
+//mem_ipc_skip_continue_proc
+(
+	0 IPC_CONTINUE_PROCESS
+	1 IPC_SKIP_CONTINUE_PROCESS
+)
+
+omemalloc(
+// memblock for cover the variables portion at shutter.format
+2 mem_antl_lpm_interval
+2 mem_antl_adv_interval
+2 mem_antl_slow_adv_lpm_interval
+2 mem_antl_slow_adv_adv_interval
+0 mem_antl_led_style
+1 mem_antl_led_type
+1 mem_antl_led_blink_count
+1 mem_antl_led_gpio
+2 mem_antl_led_on_time
+2 mem_antl_led_off_time
+2 mem_antl_led_cb_on
+2 mem_antl_led_cb_off
+
+0 mem_antl_buzzer_style
+1 mem_antl_buzzer_type
+1 mem_antl_buzzer_blink_count
+1 mem_antl_buzzer_gpio
+2 mem_antl_buzzer_on_time
+2 mem_antl_buzzer_off_time
+2 mem_antl_buzzer_cb_on
+2 mem_antl_buzzer_cb_off
+
+0 mem_antl_fast_adv_led_style
+1 mem_antl_fast_adv_led_type
+1 mem_antl_fast_adv_led_blink_count
+1 mem_antl_fast_adv_led_gpio
+2 mem_antl_fast_adv_led_on_time
+2 mem_antl_fast_adv_led_off_time
+
+0 mem_antl_slow_adv_led_style
+1 mem_antl_slow_adv_led_type
+1 mem_antl_slow_adv_led_blink_count
+1 mem_antl_slow_adv_led_gpio
+2 mem_antl_slow_adv_led_on_time
+2 mem_antl_slow_adv_led_off_time
+
+0 mem_antl_power_starting_led_style
+1 mem_antl_power_starting_led_type
+1 mem_antl_power_starting_led_blink_count
+1 mem_antl_power_starting_led_gpio
+2 mem_antl_power_starting_led_on_time
+2 mem_antl_power_starting_led_off_time
+
+7 mem_antl_power_starting_buzzer_style
+
+0 mem_antl_power_off_led_style
+1 mem_antl_power_off_led_type
+1 mem_antl_power_off_led_link_count
+1 mem_antl_power_off_led_gpio
+2 mem_antl_power_off_led_on_time
+2 mem_antl_power_off_led_off_time
+
+0 mem_antl_power_off_buzzer_style
+1 mem_antl_power_off_buzzer_type
+1 mem_antl_power_off_buzzer_link_count
+1 mem_antl_power_off_buzzer_gpio
+2 mem_antl_power_off_buzzer_on_time
+2 mem_antl_power_off_buzzer_off_time
+
+7 mem_antl_alert_led_stlye
+
+0 mem_antl_alert_buzzer_stlye
+1 mem_antl_alert_buzzer_type
+1 mem_antl_alert_buzzer_blink_count
+1 mem_antl_alert_buzzer_gpio
+2 mem_antl_alert_buzzer_on_time
+2 mem_antl_alert_buzzer_off_time
+
+0 mem_antl_key_led_style
+1 mem_antl_key_led_type
+1 mem_antl_key_led_blink_count
+1 mem_antl_key_led_gpio
+2 mem_antl_key_led_on_time
+2 mem_antl_key_led_off_time
+
+7 mem_antl_key_buzzer_style
+
+1 mem_antl_queue_width
+1 mem_antl_queue_depth
+1 mem_antl_queue_curr_num
+1 mem_antl_queue_read_ptr
+1 mem_antl_queue_write_ptr
+80 mem_antl_queue_buff
+
+1 mem_antl_key_scan_enable
+1 mem_antl_led_num
+4 mem_antl_led_gpio_map
+
+0 mem_antl_power_param
+1 mem_antl_power_state
+1 mem_antl_power_timer
+1 mem_antl_power_off_timeout
+1 mem_antl_power_starting_timeout
+2 mem_antl_power_off_cb
+2 mem_antl_power_starting_cb
+2 mem_antl_power_standby_cb
+2 mem_event_button_up_cb
+
+1 mem_antl_key_num
+2 mem_cb_antl_key
+4 mem_antl_key_conf0
+
+15 mem_antl_key0_press
+15 mem_antl_key0_release
+
+///////
+1 mem_antl_conn_updata_procedure_state
+2 mem_client_characteristic_configuration_descriptor
+///////
+
+
+//100ms timer
+2 mem_adc_timer
+1 mem_antl_conn_update_timer
+1 mem_antl_send_updata_le_param_timer
+////
+
+2 mem_antl_le_sleep_timer
+2 mem_antl_fast_adv_timer
+2 mem_antl_fast_adv_timeout
+2 mem_antl_le_sleep_timeout
+1 mem_double_click_timer
+1 mem_butten_click_cnt
+
+//1 mem_dvc_seq
+/////////anti lost alarm state/////
+1 mem_antl_led_state
+1 mem_antl_buzzer_state
+1 mem_antl_key_state
+1 mem_antl_lost_mode
+1 mem_alarm_config
+1 mem_alarm_config_notfy_cnt
+
+6 mem_buzzer_pwm_conf
+
+/////////anti lost battery adc read////////
+2 mem_adc_timeout
+1 mem_voltage_remain_percent
+
+0 mem_battery_calculate_set
+2 mem_battery_full_voltage
+2 mem_battery_empty_voltage
+2 mem_battery_low_voltage
+2 mem_battery_current_voltage
+
+
+2 mem_rx_window_sniff_inc
+2 mem_interval_increment
+
+2 mem_antl_le_interval_min
+2 mem_antl_le_interval_max
+2 mem_antl_le_latency
+2 mem_antl_le_timeout
+2 mem_antl_le_unnormal_interval_min
+2 mem_antl_le_unnormal_interval_max
+2 mem_antl_le_unnormal_latency
+2 mem_antl_le_unnormal_timeout
+
+400 mem_AntiLost_le_att_list
+)
+
+omemalloc(
+1 mem_car_hard_soft_switch
+1 mem_car_queue_each_size
+1 mem_car__queue_length
+
+1 mem_car_queue_curr_num
+1 mem_car_queue_read_ptr
+1 mem_car_queue_write_ptr
+120 mem_car_queue_ele
+
+20 mem_car_pop_queue_buff
+
+1 mem_car_led_num
+10 mem_car_led_map
+
+1 mem_car_style1_led_type
+1 mem_car_style1_blink_count
+1 mem_car_style1_struct_led_gpio
+2 mem_car_style1_on_time
+2 mem_car_style1_off_time
+2 mem_car_style1_cb_ledon
+2 mem_car_style1_cb_ledoff
+
+1 mem_car_style2_led_type
+1 mem_car_style2_blink_count
+1 mem_car_style2_struct_led_gpio
+2 mem_car_style2_on_time
+2 mem_car_style2_off_time
+2 mem_car_style2_cb_ledon
+2 mem_car_style2_cb_ledoff
+
+//////motor
+0 mem_le_receive_data
+2 mem_le_receive_packet_head
+1 mem_le_receive_cmd
+2 mem_le_receive_length
+10 mem_le_receive_payload
+1 mem_le_receive_checksum
+1 mem_motor1_status
+1 mem_motor1_speed
+1 mem_motor2_status
+1 mem_motor2_speed
+1 mem_motor3_status
+1 mem_motor3_speed
+
+0 mem_motor1_pwm_set
+1 mem_motor1_pwm_pin1_set
+1 mem_motor1_pwm_pin2_set
+1 mem_motor1_pwm_pin_set
+1 mem_motor1_pwm_channel_set
+3 mem_motor1_pwm_freq_set
+1 mem_motor1_pwm_dute_set
+0 mem_motor2_pwm_set
+1 mem_motor2_pwm_pin1_set
+1 mem_motor2_pwm_pin2_set
+1 mem_motor2_pwm_pin_set
+1 mem_motor2_pwm_channel_set
+3 mem_motor2_pwm_freq_set
+1 mem_motor2_pwm_dute_set
+0 mem_motor3_pwm_set
+1 mem_motor3_pwm_pin1_set
+1 mem_motor3_pwm_pin2_set
+1 mem_motor3_pwm_pin_set
+1 mem_motor3_pwm_channel_set
+3 mem_motor3_pwm_freq_set
+1 mem_motor3_pwm_dute_set
+
+1 mem_motor_select_p_n
+1 mem_car_motor_status
+1 mem_car_motor_speed
+0 mem_motor_pwm_set
+1 mem_motor_pwm_pin1_set
+1 mem_motor_pwm_pin2_set
+1 mem_motor_pwm_pin_set
+1 mem_motor_pwm_channel_set
+3 mem_motor_pwm_freq_set
+1 mem_motor_pwm_dute_set
+
+1 mem_ir_rx_gpio
+2 mem_ir_data
+2 mem_ir_rx_buf
+4 mem_ir_receive_clkn
+
+3 mem_ir_notify_data
+5 mem_ir_notify_data_head
+2 mem_ir_notify_data_payload
+1 mem_ir_notify_data_check_sum
+1 mem_car_ir_breakdown_check_timer
+1 mem_car_ir_breakdown_flag
+
+0 mem_car_led_control
+1 mem_car_led1_status
+1 mem_car_led2_status
+1 mem_car_led3_status
+1 mem_car_led4_status
+1 mem_car_led5_status
+1 mem_car_led6_status
+1 mem_car_led7_status
+1 mem_car_led8_status
+1 mem_car_led_control_timer
+1 mem_car_led_blink_status
+1 mem_car_led_no
+
+3 mem_car_info_request
+5 mem_car_info_request_head
+8 mem_car_info_request_payload
+1 mem_car_info_request_checksum
+
+0 mem_car_config_param
+1 mem_car_config_setting_flag
+1 mem_car_config_device_select
+1 mem_car_config_motor_layout
+1 mem_car_config_ir_enable
+1 mem_car_config_ir_rx_gpio
+1 mem_car_config_pairing_led_conn_status
+1 mem_car_config_pairing_led_gpio
+1 mem_car_config_led_num
+0 mem_car_config_blood_led_gpio
+1 mem_car_config_blood_led1_gpio
+1 mem_car_config_blood_led2_gpio
+1 mem_car_config_blood_led3_gpio
+1 mem_car_config_blood_led4_gpio
+1 mem_car_config_blood_led5_gpio
+1 mem_car_config_blood_led6_gpio
+1 mem_car_config_blood_led7_gpio
+1 mem_car_config_blood_led8_gpio
+1 mem_car_config_bat_notify_enable
+1 mem_car_config_low_voltage_led_gpio
+1 mem_car_config_low_voltage_percent
+1 mem_car_config_soft_switch_enable
+1 mem_car_config_soft_switch_gpio
+
+1 mem_car_notify_vdd_count
+1 mem_car_notify_vdd_timer
+1 mem_car_notify_vdd_value_last
+1 mem_car_notify_vdd_percent
+1 mem_car_working_flag
+1 mem_low_bat_flag
+
+3 mem_notify_bat_packet
+5 mem_notify_bat_head
+1 mem_notify_bat_payload
+1 mem_notify_bat_check_sum
+
+1 mem_vdd_notify_flag
+2 mem_car_current_vdd_value_temp
+2 mem_car_last_vdd_value
+
+0 mem_vdd_calculate_set
+2 mem_vdd_full_vol
+2 mem_vdd_empty_vol
+2 mem_vdd_low_vol
+2 mem_vdd_now_vol
+
+
+1 mem_car_24g_status
+2 mem_car_24g_no_data_timeout_count
+2 mem_car_24g_no_data_timeout_timer
+
+1 mem_car_24g_ir_receive_attack_count
+1 mem_car_24g_go_die_flag
+1 mem_car_attack_shake_timer
+1 mem_car_attack_shake_flag
+
+0 mem_car_soft_power
+1 mem_car_power_state
+1 mem_car_power_timer
+1 mem_car_power_off_timeout
+1 mem_car_power_starting_timeout
+2 mem_car_power_off_cb
+2 mem_car_power_starting_cb
+2 mem_car_power_standby_cb
+2 mem_car_ui_button_up_cb
+
+
+500 mem_car_le_att_list
+
+1 mem_car_moto1_blank_timer
+1 mem_car_moto2_blank_timer
+1 mem_car_moto3_blank_timer
+1 mem_car_24g_received_pac
+400 mem_24g_car_head_ptr
+)
+
+omemalloc(
+1 mem_light_pwm0
+1 mem_light_pwm1
+1 mem_light_pwm2
+1 mem_light_pwm3
+1 mem_light_pwm4
+1 mem_light_pwm5
+
+1 mem_light_pairing_enable
+2 mem_light_pairing_timer
+1 mem_light_cnum
+1 mem_light_next_record
+80 mem_light_clist
+
+
+1 mem_light_crr_cmd_count
+1 mem_curr_packet_num
+)
+
+omemalloc(
+1 mem_lightc_led_gpio
+6 mem_lightc_row
+6 mem_lightc_col
+
+1 mem_adv_time
+
+20 mem_cmd0_string
+20 mem_cmd1_string
+20 mem_cmd2_string
+20 mem_cmd3_string
+20 mem_cmd4_string
+20 mem_cmd5_string
+20 mem_cmd6_string
+20 mem_cmd7_string
+20 mem_cmd8_string
+20 mem_cmd9_string
+20 mem_cmd10_string
+20 mem_cmd11_string
+20 mem_cmd12_string
+20 mem_cmd13_string
+20 mem_cmd14_string
+20 mem_cmd15_string
+20 mem_cmd16_string
+20 mem_cmd17_string
+20 mem_cmd18_string
+20 mem_cmd19_string
+20 mem_cmd20_string
+)
+
+(
+0 LIGHT_GROUP0
+)
+
+(
+0 LIGHT_CMD_PWM0
+1 LIGHT_CMD_PWM1
+2 LIGHT_CMD_PWM2
+3 LIGHT_CMD_PWM3
+4 LIGHT_CMD_PWM4
+5 LIGHT_CMD_PWM5
+6 LIGHT_CMD_AUTO_MODE
+0xff LIGHT_CMD_PAIRING
+
+)
+
+omemalloc(	
+	2 mem_soft_version_num
+	1 mem_module_wake_up_gpio
+	1 mem_module_state_gpio
+	1 mem_module_connect_state_gpio
+
+	2 mem_current_packet_length
+	1 mem_module_state
+	
+	1 mem_module_mcu_wake_pin
+	4 mem_module_mcu_wake_delay_us
+
+	1 mem_module_spp_lpm_mult
+	1 mem_module_le_lpm_mult	
+	1 mem_module_bluetooth_stauts_by_command
+
+	//uart
+	2 mem_module_uart_rx_buffer
+	2 mem_module_uart_rx_buffer_end
+	2 mem_module_uart_tx_buffer
+	2 mem_module_uart_tx_buffer_end
+
+	//ADC
+	1 mem_module_read_vdd_flag
+	1 mem_module_read_vdd_count
+	1 mem_module_vdd_quotient
+	1 mem_module_vdd_remainder
+
+	//ble
+	1 mem_module_le_rx_data_len
+	2 mem_module_le_rx_data_address
+	2 mem_module_le_rx_data_handle
+	//ble write handle
+	2 mem_module_data_write_handle
+	2 mem_module_data_write_handle2
+	//flag
+	1 mem_module_flag
+
+	1 mem_module_hci_notify_len
+	2 mem_module_hci_notify_handle
+	2 mem_module_hci_nofiy_addr
+
+	4 mem_last_transmite_clock
+	
+	300 mem_module_uuid_list
+	0 mem_module_uuid_list_end
+	600 mem_module_le_att_list
+	0 mem_module_le_att_list_end
+	0 mem_module_nv_data
+	34 mem_module_nv_data0
+	34 mem_module_nv_data1
+	34 mem_module_nv_data2
+	34 mem_module_nv_data3
+	34 mem_module_nv_data4
+)
+
+omemalloc(
+1 mem_remote_car_hard_soft_switch
+
+1 mem_remote_car_queue_each_size
+1 mem_remote_car_queue_length
+
+1 mem_remote_car_queue_curr_num
+1 mem_remote_car_queue_read_ptr
+1 mem_remote_car_queue_write_ptr
+90 mem_remote_car_queue_ele
+
+1 mem_remote_style_led_type
+1 mem_remote_style_blink_count
+1 mem_remote_style_struct_led_gpio
+2 mem_remote_style_on_time
+2 mem_remote_style_off_time
+2 mem_remote_style_cb_ledon
+2 mem_remote_style_cb_ledoff
+
+
+1 mem_remote_car_led_num
+8 mem_remote_car_led_map
+
+0 mem_remote_car_keyscan
+1 mem_remote_car_key_num
+2 mem_cb_remote_car_keyscan
+
+0 mem_remote_car_key_conf0
+1 mem_remote_car_key_conf0_pin
+0 mem_remote_car_key_conf1
+1 mem_remote_car_key_conf1_pin
+0 mem_remote_car_key_conf2
+1 mem_remote_car_key_conf2_pin
+0 mem_remote_car_key_conf3
+1 mem_remote_car_key_conf3_pin
+0 mem_remote_car_key_conf4
+1 mem_remote_car_key_conf4_pin
+0 mem_remote_car_key_conf5
+1 mem_remote_car_key_conf5_pin
+0 mem_remote_car_key_conf6
+1 mem_remote_car_key_conf6_pin
+
+
+//rocker
+1 mem_rocker_negative_flag
+1 mem_rocker_work_status
+2 mem_current_vdd_value_default_mid_x
+2 mem_current_vdd_value_default_mid_y
+2 mem_current_vdd_value_default_mid_temp
+2 mem_current_vdd_default_range
+2 mem_rocker_last_status
+0 mem_rocker_status
+1 mem_rocker_x_status
+1 mem_rocker_y_status
+
+0 mem_remote_car_config_param
+1 mem_remote_car_config_setting_flag
+1 mem_remote_car_config_key_map
+1 mem_remote_car_config_layout
+1 mem_remote_car_config_connect_led_gpio
+1 mem_remote_car_config_check_way
+1 mem_remote_car_config_soft_switch_enable
+1 mem_remote_car_config_soft_switch_gpio
+1 mem_remote_car_config_timeout_shutdown_enable
+
+0 mem_remote_car_24g_motor_packet
+1 mem_remote_car_24g_motor_packet_lenght
+2 mem_remote_car_24g_motor_send_packet_head
+1 mem_remote_car_24g_motor_send_cmd
+2 mem_remote_car_24g_motor_send_length
+0 mem_remote_car_24g_motor_send_payload
+2 mem_remote_car_24g_motor1_payload
+2 mem_remote_car_24g_motor2_payload
+2 mem_remote_car_24g_motor3_payload
+1 mem_remote_car_24g_motor_send_checksum
+
+0 mem_remote_car_24g_fire_packet
+1 mem_remote_car_24g_fire_packet_lenght
+2 mem_remote_car_24g_fire_send_packet_head
+1 mem_remote_car_24g_fire_send_cmd
+2 mem_remote_car_24g_fire_send_length
+2 mem_remote_car_24g_fire_send_payload
+1 mem_remote_car_24g_fire_send_checksum
+
+15 mem_remote_car_24g_tx_temp
+
+2 mem_remote_car_no_data_timeout
+2 mem_remote_car_no_data_timer
+
+0 mem_remote_car_soft_power
+1 mem_remote_car_power_state
+1 mem_remote_car_power_timer
+1 mem_remote_car_power_off_timeout
+1 mem_remote_car_power_starting_timeout
+2 mem_remote_car_power_off_cb
+2 mem_remote_car_power_starting_cb
+2 mem_remote_car_power_standby_cb
+
+1 mem_remote_key_status
+1 mem_remote_car_24g_status
+
+1 mem_remote_car_24g_auto_work_step
+1 mem_remote_car_24g_pair_success_flag
+1 mem_remote_car_24g_enter_lpm_enable
+1 mem_remote_car_empty_packet
+400 mem_24g_RC_head_ptr
+)
+
+omemalloc(
+
+////////////////////////////////////
+//shutter common config
+1 mem_shutter_bluetooth_type
+////////////////////////////////////
+
+//shutter config name by GPIO
+1 mem_shutter_config_enable
+2 mem_shutter_config_otp_base_address
+1 mem_shutter_config_size
+1 mem_shutter_config_select_gpio1
+1 mem_shutter_config_select_gpio2
+1 mem_shutter_config_select_gpio3
+
+2 mem_shutter_config_user_otp_address
+2 mem_shutter_config_eeprom_offset_addr
+
+////////
+2 mem_shutter_config_eeprom_start_flag
+1 mem_shutter_config_user_size
+///////
+1 mem_shutter_config_label
+2 mem_shutter_config_otp_addr
+///////////////////////////////////
+
+////////////////////////////////////
+//classic shutter config
+1 mem_classic_shutter_cable_unplug_conut
+1 mem_classic_shutter_hid_disconn_count
+2 mem_classic_shutter_random_mac_offset_addr
+////////////////////////////////////
+
+////////////////////////////////////
+//ble shutter config
+1 mem_ble_shutter_enable_notify
+2 mem_ble_shutter_reconn_dav_interval
+2 mem_ble_shutter_discovery_adv_interval
+2 mem_ble_shutter_reconn_timeout
+2 mem_ble_shutter_reconn_timer
+2 mem_ble_shutter_reconn_blink_on_time
+2 mem_ble_shutter_reconn_blink_off_time
+2 mem_ble_shutter_discovery_blink_on_time
+2 mem_ble_shutter_discovery_blink_off_time
+
+2 mem_ble_shutter_interval_min
+2 mem_ble_shutter_interval_max
+2 mem_ble_shutter_latency
+2 mem_ble_shutter_timeout
+
+2 mem_ble_shutter_interval_min_new
+2 mem_ble_shutter_interval_max_new
+2 mem_ble_shutter_latency_new
+2 mem_ble_shutter_timeout_new
+
+//////////////////shutter sleep timeout//////////////////
+2 mem_classic_shutter_discovery_timeout
+2 mem_classic_shutter_connect_timeout
+2 mem_ble_shutter_discovery_timeout
+2 mem_ble_shutter_connect_timeout
+2 mem_shutter_sleep_timeout
+2 mem_shutter_sleep_timer
+
+/////////////////////////////////////////////////////////////////
+1 mem_shutter_hard_soft_switch_case
+1 mem_shutter_soft_switch_button_gpio
+1 mem_shutter_soft_switch_power_state
+1 mem_shutter_soft_switch_poweron_time
+1 mem_shutter_soft_switch_poweroff_time
+2 mem_shutter_soft_switch_poweron_callback_function
+2 mem_shutter_soft_switch_poweroff_callback_function
+
+
+0 mem_shutter_keyscan
+1 mem_shutter_key_num
+2 mem_cb_shutter_keycan
+1 mem_shutter_key_conf0
+1 mem_shutter_key_conf1
+1 mem_shutter_key_conf2
+1 mem_shutter_key_conf3
+1 mem_shutter_key_conf4
+1 mem_shutter_key_conf5
+1 mem_shutter_key_conf6
+1 mem_shutter_key_conf7
+
+
+5 mem_key0_press
+5 mem_key1_press
+5 mem_key2_press
+5 mem_key3_press
+5 mem_key4_press
+5 mem_key5_press
+5 mem_key6_press
+5 mem_key7_press
+
+5 mem_key0_release	
+5 mem_key1_release
+5 mem_key2_release
+5 mem_key3_release
+5 mem_key4_release
+5 mem_key5_release
+5 mem_key6_release
+5 mem_key7_release
+
+5 mem_ble_data_buffer1
+5 mem_ble_data_buffer2
+5 mem_ble_data_buffer3
+5 mem_ble_data_buffer4
+5 mem_ble_data_buffer5
+5 mem_ble_data_buffer6
+5 mem_ble_data_buffer7
+5 mem_ble_data_buffer8
+50 mem_ble_data_buffer9_58
+
+5 mem_classic_data_buffer
+
+5 mem_classic_data_buffer1
+5 mem_classic_data_buffer2
+5 mem_classic_data_buffer3
+5 mem_classic_data_buffer4
+5 mem_classic_data_buffer5
+5 mem_classic_data_buffer6
+5 mem_classic_data_buffer7
+5 mem_classic_data_buffer8
+50 mem_classic_data_buffer9_58
+
+1 mem_queue_each_size
+1 mem_queue_length
+1 mem_queue_curr_num
+1 mem_queue_read_ptr
+1 mem_queue_write_ptr
+32 mem_queue_ele
+
+
+170 mem_shutter_nv_data
+
+0 mem_shutter_led_struct_app_led
+1 mem_shutter_led_struct_app_led_type
+1 mem_shutter_led_struct_app_led_blink_count
+1 mem_shutter_led_struct_app_led_gpio
+2 mem_shutter_led_struct_app_led_on_time
+2 mem_shutter_led_struct_app_led_off_time
+2 mem_shutter_led_struct_app_led_on_callback
+2 mem_shutter_led_struct_app_led_off_callback
+
+0 mem_shutter_power_off_led_style
+1 mem_shutter_power_off_led_style_type
+1 mem_shutter_power_off_led_style_blink_count
+1 mem_shutter_power_off_led_style_gpio
+2 mem_shutter_power_off_led_style_on_time
+2 mem_shutter_power_off_led_style_off_time
+2 mem_shutter_power_off_led_style_on_callback
+2 mem_shutter_power_off_led_style_off_callback
+
+1 mem_shutter_soft_swtich_botton_down
+11 mem_shutter_soft_swtich_led_struct_temp
+1 mem_shutter_power_off_timeout
+1 mem_shutter_power_off_timer
+)
+
+omemalloc(
+// Mouse Work Area
+1 mem_mouse_key
+2 mem_mouse_x
+2 mem_mouse_y
+1 mem_mouse_z
+1 mem_mouse_tz
+1 mem_mouse_xy_h
+1 mem_sensor_shutter_hi
+1 mem_sensor_shutter_lo
+1 mem_sensor_smart_flag
+1 mem_sensor_squal_reg
+1 mem_sensor_iqc
+1 mem_mouse_move_flag
+2 mem_mouse_direct_timeout
+2 mem_mouse_no_data_timeout
+2 mem_mouse_discovery_timer
+2 mem_mouse_direct_timer
+2 mem_mouse_no_data_timer
+2 mem_mouse_blank_data_timer
+1 mem_mouse_send_blank_timer
+
+1 mem_mouse_cpi_count
+1 mem_mouse_dpi_button_state
+
+
+//mouse T wheel
+1 mem_wheel_tb_old_pinlevel
+1 mem_wheel_tb_new_pinlevel
+1 mem_wheel_tog 
+1 mem_mouse_tz_data
+1 mem_mouse_tz_data_count
+1 mem_mouse_tz_data_count1
+
+
+1 mem_mwheel_b_old_pinlevel
+1 mem_mwheel_b_new_pinlevel
+1 mem_mwheel_tog 
+1 mem_mouse_z_data
+1 mem_mouse_z_data_count
+1 mem_mouse_z_data_count1
+
+1 mem_reconn_mode
+1 mem_mouse_statue_led_timer  
+1 mem_le_connect_status_flag
+1 mem_le_start_encrypt_timer
+
+7 mem_device_addr_temp
+
+1 mem_adc_read_timer
+1 mem_adc_low_volatage_led_timer_count
+2 mem_adc_reference_voltage
+1 mem_device_number
+2 mem_mouse_flag
+2 mem_mouse_function_enable
+1 mem_combination_select_device_timer_init
+1 mem_combination_select_device_count
+1 mem_select_device_button_statue
+
+1 mem_combination_ui_button_count
+1 mem_bt_discovey_button_statue
+1 mem_sensor_reset_gpio	
+
+1 mem_sensor_id1
+1 mem_sensor_id2
+//eeprom config param
+1 mem_mouse_dpi_led_delay_count
+1 mem_config_sensor_type
+1 mem_config_sensor_motion
+1 mem_lbutton_gpio
+1 mem_rbutton_gpio
+1 mem_mbutton_gpio
+1 mem_bk_button_gpio
+1 mem_fw_button_gpio
+1 mem_dpi_button_gpio
+1 mem_whee_a_data_gpio
+1 mem_whee_b_data_gpio
+1 mem_whee_ta_data_gpio
+1 mem_whee_tb_data_gpio
+1 mem_config_bt_button_gpio
+1 mem_config_select_device_button_gpio
+1 mem_config_paraing_led_gpio
+1 mem_config_low_voltage_alarm_gpio
+1 mem_config_device1_led_gpio
+1 mem_config_device2_led_gpio
+1 mem_config_device3_led_gpio	
+1 mem_sensor_data_gpio
+1 mem_dpi_led_gpio
+1 mem_config_function_enable
+1 mem_config_sensor_angle
+1 mem_select_sensor_angle_gpio
+1 mem_select_adc_gpio
+0 mem_config_end
+//max length 1f								
+4 mem_btclk_sensor
+1 mem_wire_usb_interval
+1 mem_mouse_mode_flag
+1 mem_usb_addr
+3 mem_flash_base
+1 mem_24g_device_number
+1 mem_24g_enter_lpm_timer
+1 mem_mouse_1step_up_count
+1 mem_mouse_2step_up_count
+2 mem_24g_pairing_timer_count
+
+//adc struct
+0 mem_mouse_vdd_calculate_set
+2 mem_mouse_vdd_full_vol
+2 mem_mouse_vdd_empty_vol
+2 mem_mouse_vdd_low_vol
+2 mem_mouse_vdd_now_vol
+// sensor led 
+1 mem_mouse_sensor_timer_count
+1 mem_sensor_led_style
+
+//led struct
+1 mem_mouse_led_type
+1 mem_mouse_blink_count
+1 mem_mouse_struct_led_gpio
+2 mem_mouse_on_time
+2 mem_mouse_off_time
+2 mem_mouse_cb_ledon
+2 mem_mouse_cb_ledoff
+
+//three devices param
+1 mem_reconn_times
+1 mem_reconn_times_init
+0 mem_mouse_information_start
+1 mem_device_flag
+1 mem_device1_type
+6 mem_device1_addr
+16 mem_device1_link_key
+6 mem_device1_locall_addr
+
+1 mem_device2_type
+6 mem_device2_addr
+16 mem_device2_link_key
+6 mem_device2_locall_addr
+
+1 mem_device3_type
+6 mem_device3_addr
+16 mem_device3_link_key
+6 mem_device3_locall_addr
+2 mem_store_flag
+1 mem_mouse_dpi
+4 mem_mouse_24g_addr
+0 mem_mouse_information_end
+
+0 mem_mouse_dpi_seting
+1 mem_320x_dpi_1
+1 mem_320x_dpi_2
+1 mem_320x_dpi_3
+1 mem_320x_dpi_4
+
+1 mem_3212_dpi_1
+1 mem_3212_dpi_2
+1 mem_3212_dpi_3
+1 mem_3212_dpi_4
+
+1 mem_3610_dpi_1
+1 mem_3610_dpi_2
+1 mem_3610_dpi_3
+1 mem_3610_dpi_4
+
+1 mem_mouse_24g_enter_lpm_enable
+
+//-------------- patch variable ------------------
+1 mem_hibernate_flag
+1 mem_le_slave_update_mult_timer
+1 mem_le_prepare_tx_retransmited_number
+2 mem_le_rx_window_inc
+1 mem_empty_count_user
+2 mem_adc_0v
+2 mem_adc_3v
+13 mem_rf_init_data_new
+
+2 mem_mouse_x_sum
+2 mem_mouse_y_sum
+2 mem_mouse_x_pre
+2 mem_mouse_y_pre
+2 mem_mouse_x_data
+2 mem_mouse_y_data
+1 mem_mouse_asm_flag
+
+
+
+
+
+
+//g24
+34 mem_24g_rxbuf
+32 mem_24g_txbuf
+34 mem_24g_txpayload
+32 mem_24g_rxpayload
+1 mem_24g_rxdata_length
+1 mem_24g_pid
+1 mem_24g_datalen
+1 mem_24g_data_type
+1 mem_24g_txlen
+2 mem_24g_rx_window
+1 mem_24g_ensure
+2 mem_24g_txfail_cnt
+1 mem_24g_get_ack_fail
+1 mem_24g_retry
+1 mem_24g_ch
+1 mem_24g_current_ch_number
+4 mem_24g_paring_addr
+1 mem_24g_pairing_sm
+4 mem_24g_ch_map1
+4 mem_24g_ch_map2
+4 mem_24g_ch_map3
+4 mem_24g_ch_map4
+4 mem_24g_tx_btclk
+1 mem_24g_interval
+1 mem_24g_interval_min
+1 mem_24g_interval_max
+4 mem_24g_addr
+1 mem_24g_abort_pac
+2 mem_24g_check_dongle_times
+
+8 mem_24g_enter_hibernate
+4 mem_24g_device_addr
+1 mem_24g_pac_index
+1 mem_24g_no_ack
+3 mem_24g_sta_crc
+3 mem_24g_last_crc
+1 mem_24g_sta_pid
+1 mem_24g_last_pid
+1 mem_24g_max_retry
+1 mem_24g_mode
+
+34 mem_24g_rxdata_temp
+4 mem_24g_rx_addr
+1 mem_dongle_mode_init
+1 mem_dongle_work_mode
+1 mem_dongle_ms_bind_step
+1 mem_dongle_kb_bind_step
+1 mem_dongle_bind_device_status
+8 mem_24g_bind_payload
+1 mem_24g_abort_packet
+1 mem_24g_rf_laststa
+4 mem_24g_hop_btclk
+1 mem_24g_hop_interval
+1 mem_24g_mode_switch
+1 mem_24g_ackpayload_enable
+1 mem_24g_hop_packet
+1 mem_24g_pair_mode
+1 mem_24g_nodata_timer_enable
+1 mem_24g_time_slice
+8 mem_24g_kb_data_sta_data
+8 mem_24g_kb_data_last_data
+3 mem_24g_kb_multikey_sta_data
+3 mem_24g_kb_multikey_last_data
+1 mem_24g_kb_blank_data_enable
+1 mem_24g_kb_mul_blank_data_enable
+1 mem_24g_ms_blank_data_enable
+4 mem_24g_kb_addr
+4 mem_24g_ms_addr
+
+1 mem_24g_dg_last_ch
+1 mem_24g_dg_ch_number
+1 mem_24g_dg_config_ch_once
+1 mem_24g_kb_last_ch
+1 mem_24g_kb_ch_number
+1 mem_24g_kb_config_ch_once
+1 mem_24g_ms_last_ch
+1 mem_24g_ms_ch_number
+1 mem_24g_ms_config_ch_once
+
+2 mem_24g_syncword
+1 mem_24g_syncword_crc8
+1 mem_24g_get_syncword_crc8
+2 mem_24g_ota_sta_pid
+
+1 mem_tx_power_temp
+
+1 mem_rssi_hex
+1 mem_rssi_noise_avg
+1 mem_rssi_noise_index
+1 mem_rssi_signal_index
+1 mem_rssi_noise_dg_avg
+1 mem_rssi_noise_kb_avg
+1 mem_rssi_noise_ms_avg
+1 mem_rssi_noise_dg_index
+1 mem_rssi_noise_kb_index
+1 mem_rssi_noise_ms_index
+8 mem_rssi_signal_buf
+
+1 mem_queue_ele_num
+2 mem_queue_read
+2 mem_queue_write
+0 mem_queue_start
+32 mem_data_ele0
+32 mem_data_ele1
+32 mem_data_ele2
+0 mem_queue_end
+2 mem_queue_temp
+
+2 mem_cb_24g_data
+1 mem_24g_hop_fastly_cnt
+1 mem_24g_hop_pac_retry
+1 mem_24g_rf_hop_ch
+1 mem_24g_rf_last_sta
+1 mem_24g_rf_work_stage
+1 mem_24g_sync_cnt
+1 mem_power_ctrl_pac_succ_cnt
+1 mem_rssi_avg_received
+1 mem_rssi_hex_received
+1 mem_power_ctrl_level
+
+1 mem_24g_idle_timeout
+1 mem_24g_idle_cnt
+1 mem_seqi
+1 mem_24g_txcnt
+1 mem_24g_auto_paring_switch
+1 mem_24g_led_status
+1 mem_24g_pc_sleep
+1 mem_24g_pc_sleep_flag
+
+1 mem_24g_bind_delay_count
+1 mem_24g_work_delay_count
+
+1 mem_24g_mode_switch_2
+1 mem_24g_mode_switch_2_init
+2 mem_24g_mode_switch_cnt_2
+1 mem_24g_mode_switch_exit_2
+1 mem_24g_time_slice_2
+
+1 mem_dongle_bind_device_living
+)
+
+//******mouse.format******//
+(
+//SPI GPIO 
+0x19 MOUSE_SPI1_CLK_GPIO
+0x1A MOUSE_SPI1_SDIO_GPIO
+0X1E MOUSE_SPI2_CLK_GPIO
+0X1F MOUSE_SPI2_SDIO_GPIO
+//combination
+0x01 MOUSE_L_BUTTON
+0X02 MOUSE_R_BUTTON
+0X04 MOUSE_M_BUTTON
+0X05 MOUSE_LM_BUTTON
+0X06 MOUSE_RM_BUTTON
+0X07 MOUSE_LMR_BUTTON
+//mouse default gpio
+0x1B MOUSE_DEFAULT_XA_GPIO
+0x1C MOUSE_DEFAULT_XB_GPIO
+
+//ui led blink
+0X00C8  LED_RECONNECT_BLINK //200
+0X0190  LED_DPI_BLINK //400
+0X03E8  LED_DPI_BLINK_FIXED    //1000
+0X03E8  LED_DISCOVERY_BLINK    //1000
+0XFF    LED_LONG_BLINK
+0x05	LED_SENSOR_BLINK_CNT
+//bt mode device number
+0x01 MODE_BT_DEVICE1
+0x02 MODE_BT_DEVICE2
+0x03 MODE_BT_DEVICE3
+0x02 MODE_24G_DEVICE
+//mouse  flag
+0X00 WRITE_REQ_ENABLE_FLAG
+0X01 LL_START_ENC_FLAG
+0X02 LL_PAIRING_SUCCESS_FLAG
+
+
+//mouse_function_flag
+0X04 MOUSE_FLAG_LEN
+//1byte
+0X00 MOUSE_SELECT_DEVICE_FLAG
+0X01 MOUSE_CPI_FLAG
+0X02 MOUSE_BT_CANNEL_RECONN_FLAG
+0X03 MOSUE_24G_PAIRING_FLAG
+0X04 MOUSE_LOW_VOLTAGE_FLAG
+0X05 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
+0X06 MOUSE_LONG_BT_BUTTON_FLAG
+0X07 MOUSE_STORE_EEPROM_FLAG
+0x08 MOUSE_STATUE_UP_FLAG
+0X09 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+
+
+//3byte
+0X10 MOUSE_ENABLE_USB
+0X11 MOUSE_ENABLE_24G
+0X12 MOUSE_ENABLE_SPI2
+0X13 MOUSE_ENABLE_FLASH
+0X14 MOUSE_ENABLE_EEPROM
+0X15 MOUSE_ENABLE_STATUE_UP_THREE_LED
+0X16 MOUSE_ENABLE_STATUE_UP
+0X17 MOUSE_ENABLE_DPI_LED_BLINK
+//4byte
+0X18 MOUSE_ENABLE_BLE_RANDOM_ADDRE
+0X19 MOUSE_ENABLE_2K_EEPROM
+0X1A MOUSE_ENABLE_ADC
+0X1B MOUSE_ENABLE_INIT_DELAY
+0X1C MOUSE_ENABLE_DISCOVERY_SENSOR_LED
+0X1D MOUSE_ENABLE_AUTO_24G_PARING
+0X1E MOUSE_ENABLE_WAKEUP_FROM_POWER
+0X1F MOUSE_ENABLE_GPIO_CONTROL_ADC_SENSOR
+
+
+
+//mouse dpi level
+0x00 MOUSE_DPI_LEVEL1
+0x01 MOUSE_DPI_LEVEL2
+0x02 MOUSE_DPI_LEVEL3
+0x03 MOUSE_DPI_LEVEL4
+
+
+//mouse sensor angle
+0x00 MOUSE_6CLK_ANGLE
+0X01 MOUSE_9CLK_ANGLE
+0X02 MOUSE_12CLK_ANGLE
+0X03 MOUSE_3CLK_ANGLE
+
+
+//mem_config_function_enable
+0 ENABLE_BT_DISCOVERY_BY_GPIO_LED
+1 ENABLE_MODE_LED
+2 ENABLE_LOW_VOLTAGE_LED
+3 ENABLE_DEVICE_LED
+4 ENABLE_BT_BUTTON
+5 ENABLE_SELECT_DEVICE_BY_GPIO_BUTTON
+6 ENABLE_SELECT_DEVICE_BY_SWITCH
+7 ENABLE_SENSOR_MOTION_PIN
+
+
+0xFF GPIO_DISABLE
+
+
+//DPI button state 
+0x00 DPI_BUTTON_STATE_DOWN
+0x01 DPI_BUTTON_STATE_UP
+
+
+//eeprom address offect
+0X00 MOUSE_INFO_EEPROM_OFFECT
+0X5A MOUSE_DPI_EEPROM_OFFECT	//1byte
+0X5B MOUSE_G24_ADDR_EEPROM_OFFECT	//4bytes
+0X5F MOUSE_RANDOM_ADDR_COUNT_EEPROM_OFFSET	//2bytes
+0X61 MOUSE_DEVICE_MODE_EEPROM_OFFSET	//1byte	
+0X62 MOUSE_EEPROM_MODULE_INIT_FLAG		//eeprom_module_init_flag 2bytes
+0X64 MOUSE_FAST_CONN_FLAG_OFFSET	//1byte
+
+
+// Sensor id number
+0x30 P32XX_ID1
+0x31 P3065_ID1
+0x3E P3610_ID1
+0x02 P3212_ID2
+0xD1 P3205_TJ3T_ID2
+0XD2 P3204_TJ3L_ID2
+0x54 PKA8_ID2
+0x70 P3065_XY_ID2
+0xD8 P8009_ID2
+
+
+//Sensor type
+0X00 P3205
+0X01 P3065
+0X02 KA8
+0X03 P3204
+0X04 P3212
+0X05 P3610
+0X06 P3065_XY
+0x07 P8009
+
+
+//p3610 smart enable flag
+0X00 P3610_SMART_ENABLE
+0X01 P3610_SMART_DISABLE
+
+
+//SENSOR REG
+0x00 PAN_REG_PID_L
+0x01 PAN_REG_PID_H
+0x02 PAN_REG_MOTION_STAUS
+0x03 PAN_REG_DELTA_X
+0x04 PAN_REG_DELTA_Y
+0x05 PAN_REG_OPRATION_MODE
+0x06 PAN_REG_CONFIG
+0x07 PAN_REG_IMAGE_QUALITY
+0x08 PAN_REG_OPRATION_STATE
+0x09 PAN_REG_WRITE_PROTECT
+0x0A PAN_REG_SLEEP_1
+0x0B PAN_REG_ENTER_TIME
+0x0C PAN_REG_SLEEP_2
+0x0D PAN_REG_IMAGE_THRESHOLD
+0x0E PAN_REG_IMAGE_RECGNITION
+
+
+0x06 MOUSE_DPI_ADDRESS
+0x05 MOUSE_P3610_DPI_ADDRESS
+0x0D MOUSE_P3212_DPI_XADDRESS
+0x0E MOUSE_P3212_DPI_YADDRESS
+
+
+0x06 MOUSE_FPGA_RF_WORK_DEBUG_GPIO
+0x02 MOUSE_FPGA_DEBUG_GPIO
+
+)
+
+(
+0x01 ADV_FLAG_LIMITED_DISCOVERABLE
+0x04 ADV_FLAG_BREDR_NOT_SUPPORTED
+)
+
+(
+4 TEST_GPIO
+)
+
+(
+1 LE_LPM_DISABLE
+0 LE_LPM_ENABLE
+
+12 LE_INTERVAL_15MS
+9 LE_INTERVAL_11_25MS//11.25ms
+7 LE_INTERVAL_8_75MS//8.75ms
+)
+
+(
+0xb9 FLASH_COMMAND_DEEP_POWER_DOWN
+0xab FLASH_COMMAND_RELEASE_DEEP_POWER_DOWN
+)
+
+(
+0 MULTI_LED_ON
+1 MULTI_LED_BLINK
+)
+
+(
+0 DIS_BUTTON_UP
+1 DIS_BT_BUTTON
+2 DIS_COMM_BUTTON
+)
+
+(
+0x017700 G24_LONG_SLEEP_STEP1	//8ms
+0x36ee80 G24_LONG_SLEEP_STEP2	//200ms
+0x604800 G24_LONG_SLEEP_STEP3	//500ms
+)
+
+(
+8 LOW_VOLTAGE_LED_COUNT
+)
+
+(
+0x0708 BLE_DIRECT_ADV_TIMEOUT
+0x0a BLE_POWERON_RECONN_TIMER
+)
+
+//******g24.format******//
+(
+3 QUEUE_ELE_COUNT
+32 QUEUE_ELE_LENGTH
+)
+
+(
+3 retry_24g
+1 NO_ACK_24G
+0 WITH_ACK_24G
+
+0 ENSURE_OFF_24G
+1 ENSURE_ON_24G
+
+0x10 ABORT_DATA
+0x40 RSSI_SENSITIVITY
+
+0x4e G24_PAIR_CH
+)
+
+(
+0 disable_24g
+1 tx_24g
+2 rx_24g
+
+0 bit_ack_24g
+)
+
+//mem_24g_interrupt
+(
+0 rx_dr
+1 rx_sync
+4 tx_ds
+5 tx_fail
+)
+
+//mem_24g_data_type
+(
+0x07 bits_data
+//0-2 data type
+3 bit_abort
+4 bit_hop
+5 bit_sync
+//6-7 channel offset
+)
+
+(
+0 STATE_24G_STOP
+0 STATE_24G_START
+1 STATE_24G_PAIR
+2 STATE_24G_RECONN
+)
+
+//mem_24g_pairing_sm
+(
+0 STATE_24G_PAIRING_NULL
+1 STATE_24G_PAIRING_1
+2 STATE_24G_PAIRING_2
+3 STATE_24G_PAIRING_3
+0X11 STATE_24G_PAIRING_1_WAITING_ACK
+0X12 STATE_24G_PAIRING_2_WAITING_ACK
+0X13 STATE_24G_PAIRING_3_WAITING_ACK
+0XFF STATE_24G_PAIRING_SUCCESS
+)
+
+(
+0 DONGLE_WORK	   		//connect mode normal
+1 DONGLE_BIND			//code pair mode
+2 DONGLE_TEST			//test mode
+3 DONGLE_CODE			//PC_application
+4 DONGLE_PCBA			//PCBA_TEST
+5 DONGLE_DEBUG
+6 DONGLE_MODE_MAX
+7 DONGLE_SEARCH
+0 CLEAR_INIT
+)
+
+(
+0x01 DATATYPE_MOUSE	//mouse
+0x02 DATATYPE_KEYBOARD	//keyboard
+0xAA DATATYPE_BIND		//bind step 1
+0x55 DATATYPE_CONFIG	//bind step 2
+0x22 DATATYPE_OK	//bind step 3
+
+0x01 BIND_MOUSE
+0x02 BIND_KEYBOARD
+)
+
+(
+112 G24_DONGLE_ADDR
+)
+
+(
+0xa0 COMMAND_MODE     //BYTE 0
+0X81 COM_MODE_BIND	//BYTE 1
+0X82 COM_MODE_TEST	//BYTE 1
+)
+(
+0xa1 COMMAND_BIND		//BYTE 0
+0X01 COM_BIND_GET		//1
+0X84 COM_BIND_EXIT		//1
+0XA7 COM_READ_MODE	//1
+)
+(
+0xa2 COMMAND_TEST	//BYTE 0
+0X81 COM_TEST_SC		//	进入单载波
+0x82 COM_TEST_CD		// fcc测试
+0x83 COM_TEST_DAT		// 数据测试
+0X84 COM_TEST_LOW_CH  //低频点
+0X85 COM_TEST_MID_CH	//中频点
+0X86 COM_TEST_HIG_CH	//高频点
+0X87 COM_TEST_SW_HIG	//自动切换频点为高 1mhz
+0X88 COIM_TEST_SW_LOW	//自动切换频点为低 1mhz
+0X89 COM_TEST_SW_STOP	//停止自动切换频点
+0X8A COM_TEST_POW_5		//设置输出功率5dbm
+0X8B COM_TEST_POW_0		//0dbm
+0X8C COM_TEST_POW_N5		//-5dbm
+0X8D COM_TEST_POW_N10		//-10dbm
+0X8E COM_TEST_EXIT			//退出测试模式
+)
+(
+0xa6 COMMAND_CURRENT_PROJECT
+0xa7 COMMAND_CURRENT_MODE
+0xa9 COMMAND_CURRENT_FW_VERSION
+)
+
+//user defined cmd
+(
+0xb0 COMMAND_USER_DEFINED
+)
+
+(
+0x15 PRODUCT_ID
+0 FW_VERSION0
+0 FW_VERSION1
+1 FW_VERSION2
+7 FW_VERSION3
+)
+
+(
+8 TIMER_NODATA
+640 TIMER_NODATA_DELAY	//200ms
+
+11 TIMER_MS_BLANK
+320 TIMER_MS_BLANK_DELAY
+
+12 TIMER_KB_MUL_BLANK
+320 TIMER_KB_MUL_BLANK_DELAY
+
+14 TIMER_KB_BLANK
+320 TIMER_KB_BLANK_DELAY
+)
+
+(
+11 TIMER_NEW_MS_BLANK
+384 TIMER_NEW_MS_BLANK_DELAY
+
+12 TIMER_NEW_KB_MUL_BLANK
+384 TIMER_NEW_KB_MUL_BLANK_DELAY
+
+14 TIMER_NEW_KB_BLANK
+384 TIMER_NEW_KB_BLANK_DELAY
+)
+
+(
+0 KB_NORMAL_REPORT_ID
+1 MS_REPORT_ID
+3 KB_MULTIKEY_REPORT_ID
+)
+
+(
+7 RSSI_BUF_LEN_SIGNAL
+255 RSSI_BUF_LEN_NOISE
+0x50 RSSI_THRESH_NOISE
+
+0x77 RSSI_DIS_MIN_24G
+0x82 RSSI_DIS_MAX_24G
+
+0x75 RSSI_DIS_MIN_BLE
+0x80 RSSI_DIS_MAX_BLE
+)
+
+(
+//power control
+0x01 TXPWR_0DB
+0x02 TXPWR_3DB
+0x04 TXPWR_5DB
+0x10 TXPWR_f5DB
+
+124 POWER_CTRL_MAX_PACKET_CNT
+
+2 POWER_CTRL_LOSSPAC_THRESH_UP0
+0 POWER_CTRL_LOSSPAC_THRESH_DOWN0
+0x20 POWER_CTRL_RSSI_THRESH_DOWN0
+
+5 POWER_CTRL_LOSSPAC_THRESH_UP1
+0 POWER_CTRL_LOSSPAC_THRESH_DOWN1
+0x60 POWER_CTRL_RSSI_THRESH_DOWN1
+
+10 POWER_CTRL_LOSSPAC_THRESH_UP2
+0 POWER_CTRL_LOSSPAC_THRESH_DOWN2
+0x80 POWER_CTRL_RSSI_THRESH_DOWN2
+)
+
+//mem_send_data_24g_short_lpm
+(
+0 SHORT_LPM_STATE_POLLING 	
+1 SHORT_LPM_STATE_DATA
+2 SHORT_LPM_STATE_NODATA
+3 SHORT_LPM_STATE_BUTTON_WHEEL
+)
+
+(
+81000 G24_8125_INTERVAL_PARAM
+78000 G24_78125_INTERVAL_PARAM
+)
+
+(
+5 G24_WORK_MODE_DELAY
+7 G24_BIND_MODE_DELAY
+)
+
+(
+1 G24_TX_TIMER_INT_ENABLE
+0 G24_TX_TIMER_INT_DISABLE
+)
+
+(
+0 G24_DISCONN_STATE
+1 G24_CONN_STATE
+
+
+4 G24_CH_NUMBER
+8 G24_CH_POLL_COUNT
+0x32 G24_DISCONN_NODATA_TIMER
+)
+
+
+/**
+*  @file:bt_utility_format.upper
+*  @author: lei.zhu
+*  utility header file. inlcude timer
+*  Copyright:  (C)Hanlynn Technology    
+*/
+
+memalloc(
+
+/*
+    temp parameter
+*/
+2 mem_hold_contr
+2 mem_hold_contw
+1 mem_fifo_temp
+
+8 mem_pdatatemp
+8 mem_temp //8 bytes
+4 mem_timeup // 4 bytes
+4 mem_rega //4 bytes
+4 mem_regb //4 bytes
+3 mem_regc //3 bytes
+2 mem_contr //2 bytes
+2 mem_contw //2 bytes
+
+1 mem_wakup_from_power_flag
+4 mem_saved_gpio_in
+
+0 mem_shutter_random_mac_data_temp
+0 mem_shutter_config_data_temp
+0 mem_le_adv_channel_map_temp
+
+0 mem_le_data_len_temp	//1byte
+0 mem_tx_fifo_map_temp
+0 mem_rpn_dlci		//1byte
+0 mem_event_cmd_response_content	//2byte
+0 mem_le_prand		//16byte
+0 mem_AES_CMAC_k	 //16 bytes
+0 mem_regext_index 	//1 bytes
+1 mem_temp_block0
+0 mem_le_data_temp	//15bytes
+15 mem_temp_block1
+0 mem_le_aes_128	//16byte
+0 mem_regext   //64 bytes
+0 mem_AES_CMAC_k1  //16 bytes
+16 mem_temp_block2
+0 mem_AES_CMAC_k2  //16 bytes
+16 mem_temp_block3
+0 mem_AES_CMAC_temp  // 16 bytes
+16 mem_temp_block4
+0 mem_AES_CMAC_M_last // 16 bytes
+1 mem_module_uart_cmd
+1 mem_module_uart_opcode
+1 mem_module_uart_len
+1 mem_module_temp_nl_discard_packet
+12 mem_temp_block5
+0 mem_le_mackey //16 bytes
+0 mem_app_receive_temp
+2 mem_key_value_temp
+2 mem_key_value
+1 mem_key_value_temp1
+1 mem_key_value_temp2
+1 mem_key_value_temp3
+1 mem_key_value_temp4
+1 mem_key_value_temp5
+1 mem_key_value_temp6
+6 mem_temp_block6
+
+1 mem_usb_status
+1 mem_usb_fifo_empty
+1 mem_usb_read_len
+64 mem_usb_rxbuf
+2 mem_bufptr
+1 mem_remain
+20 mem_devicedesc
+2 mem_hidreportdesc_kb
+2 mem_hidreportdesc_m
+100 mem_confdesc
+5 mem_string0
+30 mem_string1
+64 mem_string2
+30 mem_string3
+2 mem_usb_zero_packet
+2 mem_usb_ones_packet
+2 mem_usb_two_packet
+1 mem_usb0_state
+
+1 mem_usb_offline_check_gpio
+1 mem_usb_tx_interval
+
+0 mem_usb_clear_mem_start
+0 mem_usb_setup
+1 mem_usb_setup_bmRequestType
+1 mem_usb_setup_bRequest
+1 mem_usb_setup_bValue
+1 mem_usb_setup_bValueH
+2 mem_usb_setup_wIndex
+1 mem_usb_setup_bLength
+1 mem_usb_setup_bLengthH
+64 mem_usb0_setup
+64 mem_usb0_set_report_data
+64 mem_usb0_get_report_data
+1 mem_usb_state
+1 mem_usb_tx_wait
+1 mem_usb_tx_enable
+1 mem_usb_remote_wakeup
+1 mem_usb_clear_remote_wakeup
+1 mem_usb_ep0_stall_status
+1 mem_usb_ep1_stall_status
+1 mem_usb_ep2_stall_status
+1 mem_usb_ep3_stall_status
+2 mem_dsc_info_data_pointer
+1 mem_dsc_info_len
+1 mem_usb0_data_ready_report
+1 mem_usb_tx_win_enable
+1 mem_usb_tx_mac_enable
+1 mem_usb_device_enumeration_endflag
+1 mem_usb_wakestate_onetime_flag
+1 mem_usb_mac_wakeup_trig
+1 mem_usb_set_high_addr_flag
+1 mem_usb_set_protocol_value
+1 mem_usb_set_protocol_status
+1 mem_usb_get_protocol_flag
+1 mem_usb_idle_flag
+1 mem_usb_idle_rate
+2 mem_usb_setup_bValue_temp
+1 mem_usb0_get_set_report
+1 mem_usb_ep1_data
+1 mem_usb_ep2_data
+1 mem_usb_clear_halt
+16 mem_usb_mouse_data
+16 mem_usb_kb_data
+16 mem_usb_kb_multikey
+8 mem_usb_kb_data_sta_data
+8 mem_usb_kb_data_last_data
+3 mem_usb_kb_multikey_sta_data
+3 mem_usb_kb_multikey_last_data
+1 mem_usb_kb_blank_data_enable
+1 mem_usb_kb_mul_blank_data_enable
+1 mem_usb_test_cnt
+0 mem_usb_clear_mem_end
+1 mem_usb_test_kb
+
+256 mem_rssi_noise_buffer
+256 mem_rssi_noise_dg_buffer
+256 mem_rssi_noise_ms_buffer
+256 mem_rssi_noise_kb_buffer
+32 mem_24g_common_temp
+
+9 mem_usb_new_vid_pid_value
+1 mem_dongle_kb_bind_flag
+200 mem_hidreportdesc_kb_temp
+200 mem_hidreportdesc_m_temp
+100 mem_hidreportdesc_kb_new_temp
+16 mem_usb_kb_system
+3 mem_usb_kb_system_sta_data
+3 mem_usb_kb_system_last_data
+
+3 mem_firmware_version
+
+
+ifdef DEBUGLOG
+1   mem_debuglog_temp
+1   mem_debuglog_type
+1	mem_debuglog_datalen
+2	mem_debuglog_dataval
+2	mem_debuglog_datatype
+1	mem_debuglog_tail
+8	mem_debuglog_pdata
+endif
+
+)
+
+
+(
+/*mem_util_timer_flag0_7*/
+    0   UTIL_TIMER_0_USED
+    1   UTIL_TIMER_1_USED
+    2   UTIL_TIMER_2_USED
+    3   UTIL_TIMER_3_USED
+    4   UTIL_TIMER_4_USED
+    5   UTIL_TIMER_5_USED
+    6   UTIL_TIMER_6_USED
+    7   UTIL_TIMER_7_USED
+/*mem_util_timer_flag8_15*/
+    0   UTIL_TIMER_8_USED
+    1   UTIL_TIMER_9_USED
+    2   UTIL_TIMER_10_USED
+    3   UTIL_TIMER_11_USED
+    4   UTIL_TIMER_12_USED
+    5   UTIL_TIMER_13_USED
+    6   UTIL_TIMER_14_USED
+    7   UTIL_TIMER_15_USED
+)
+
+//util fifo param
+(
+
+8 UTIL_FIFO_LEN
+-1 UTIL_FIFO_OFFSET
+)
+
+(
+	0xAA DEBUGLOG_HEAD
+	0x00 DEBUGLOG_TYPE
+	0x04 DEBUGLOG_LEN
+	0xBB DEBUGLOG_TAIL
+)
+
+(
+	0x1000 DEBUGLOG_DTYPE_CALLBACK
+	0x1001 DEBUGLOG_DTYPE_EVENT
+	0x1002 DEBUGLOG_DTYPE_CMD
+	0x1003 DEBUGLOG_DTYPE_STATUS
+	0x1004 DEBUGLOG_DTYPE_MISC
+	0x1005 DEBUGLOG_DTYPE_CONN_SM
+	0x1006 DEBUGLOG_DTYPE_UPPER_SM
+	0x1007 DEBUGLOG_DTYPE_PARSE_LMP
+	0x1008 DEBUGLOG_DTYPE_SEND_LMP
+)
+
+//DEBUGLOG_DTYPE_CALLBACK
+(
+	0x0000 CALLBACK_24G_DATA
+	0x0001 CALLBACK_LE_PROCESS
+	0x0002 CALLBACK_BT_PROCESS
+	0x0003 CALLBACK_BEFORE_LPM
+	0x0004 CALLBACK_BB_EVENT_PROCESS
+	0x0005 CALLBACK_IDLE_PROCESS
+	0x0006 CALLBACK_BEFORE_HIBERNATE
+	0x0007 CALLBACK_ATT_WRITE
+	0x0008 CALLBACK_EVENT_TIMER
+)
+
+//DEBUGLOG_DTYPE_EVENT
+//(
+
+//)
+
+//DEBUGLOG_DTYPE_CMD
+//(
+
+//)
+
+//DEBUGLOG_DTYPE_STATUS
+(
+	0x0000 STATUS_CODE_WAKE
+	0x0001 STATUS_LPM_WAKE
+	0x0004 STATUS_24G_START 
+)
+//DEBUG_DTYPE_MISC
+(
+	0x0000 MISC_LE_RETRANSMIT
+	0x0001 MISC_LOST_MOUSEDATA
+	0x0002 MISC_TXPOWER_0
+	0x0003 MISC_TXPOWER_1
+	0x0004 MISC_TXPOWER_2
+	0x0006 MISC_PULL_MOUSEDATA
+	0x0007 MISC_PUSH_MOUSEDATA
+	0x0008 MISC_LE_RETRANSMIT_MD
+
+
+)
+
+
+/************************************************************************/
+/* RCS HEADER -- DO NOT ERASE                                           */
+/* $Author: Administrator $                                                     */
+/* $Id: bt_var.osi,v 1.1 2009-09-28 04:06:18 Administrator Exp $   */
+/* Orisil Technology                                                 */
+/************************************************************************/
+
+
+/* packet types */
+(
+  0x02 FHS_PACKET 
+  0x03 DM1_PACKET 
+  0x03 DM1_LMP_PACKET 
+  0x04 DH1_PACKET 
+  0x05 HV1_PACKET 
+  0x06 HV2_PACKET 
+  0x07 HV3_PACKET 
+  0x08 DV_PACKET 
+  0x09 AUX1_PACKET 
+  0x0a DM3_PACKET 
+  0x0b DH3_PACKET 
+  0x0e DM5_PACKET 
+  0x0f DH5_PACKET 
+)
+
+
+/* mem_lmp_respond */
+(
+  0 RESPOND_TO_ALL
+  1 PASS_EVERYTHING
+  2 PASS_ONLY_UNKNOWNS
+  3 RESPOND_TO_LMPS
+)
+/* SCO algorithm defines */
+(
+  0 ULAW
+  1 ALAW
+  2 CVSD
+)
+/* encryption modes */
+(
+  0 NO_ENCRYPTION
+  1 PT_PT_ENCRYPTION
+  2 PT_BROADCAST_ENCRYPTION
+)
+
+/* bits used in mem_lmp_state1 variable */
+(
+  0 LMP_STATE_DETACH
+  1 LMP_STATE_HOLD
+  2 LMP_STATE_SNIFF
+  3 LMP_STATE_PARK
+  4 LMP_STATE_WAIT_SCO_CREATE
+  5 LMP_STATE_WAIT_SCO_KILL
+  6 LMP_STATE_SCO3
+  7 LMP_STATE_WAIT_SCO_START
+)
+/* mem_lmp_state2 */
+(
+  0 LMP_WAIT_FOR_SNIFF_ACCEPT
+  1 LMP_WAIT_FOR_PARK_ACCEPT
+  2 LMP_SEND_UNPARK_ACCEPTED
+  3 LMP_SEND_ENCRYPTION_START
+  4 LMP_SEND_ENCRYPTION_STOP
+  5 MESSAGE_QUEUE
+  7 LMP_STATE_WAIT_BEACON
+)
+/* mem_lmp_state3 */
+(
+ 0 INQUIRY_STATE_CHECK
+ 1 HOST_DELAY_MESSAGE
+ 2 VARIABLE_DELAY
+ 3 TEST_MODE_START_LOOPBACK
+ 4 TEST_MODE_START_PATTERN
+ 5 PARSE_TEST_CONTROL_MESSAGE
+ 6 H_AUTH_SEND_COMB_KEY
+)
+/* mem_rx_status */
+(
+  0 FROM_MASTER
+)
+/* mem_ms_flag */
+(
+  0 MS_RECEIVE_SWITCH_REQ
+  1 MS_SEND_SETUP_COMPLATE
+)
+/* mem_conn_sm */
+(
+  0 CONN_SM_STANDBY
+  1 CONN_SM_WAIT_PAGE
+  2 CONN_SM_SEND_FEATURES
+  3 CONN_SM_WAIT_FEATURES_RES
+  4 CONN_SM_SEND_CONN_REQ
+  5 CONN_SM_WAIT_CONN_ACCEPT
+  6 CONN_SM_AUTH_PAIR
+  7 CONN_SM_AUTH_PAIR_WAIT
+  8 CONN_SM_WAIT_MUTAL_AUTH
+  9 CONN_SM_ENCRYPT
+  0xa CONN_SM_ENCRYPT_WAIT
+  0xb CONN_SM_ENCRYPT_WAIT_CLEAR
+  0xc CONN_SM_SEND_SETUP_COMPLETE
+  0xd CONN_SM_WAIT_SETUP_COMPLETE 
+  0xe CONN_SM_SEND_SWITCH
+  0xf CONN_SM_DETACH_DELAY
+  0x10 CONN_SM_WAIT_SWITCH_AFTER_HOST_CONNECTION
+  0x11 CONN_SM_DELAY_RESTART_CONNECTION
+  0x12 CONN_SM_SEND_VERSION
+  0X13 CONN_SM_WAIT_VERSION
+  0x14 CONN_SM_SEND_FEATURES_EXT
+  0x15 CONN_SM_WAIT_FEATURES_EXT
+  0x16 CONN_SM_PAIRING
+  0x17 CONN_SM_AUTH
+  0x18 CONN_SM_PAIRING_WAIT
+  0x19 CONN_SM_AUTH_WAIT
+  0x1a CONN_SM_DONE
+  0x1b CONN_SM_WAIT_DONE
+)
+
+/* btStateConn1 */
+(
+  0 CONN_STANDBY
+  1 CONN_MASTER_SEND_CONN_REQ
+  2 CONN_MASTER_WAIT_FOR_CONN_ACCEPTED
+  3 CONN_MASTER_AUTH
+  4 CONN_MASTER_WAIT_FOR_FEATURES
+  5 CONN_MASTER_WAIT_FOR_SETUP_COMPLETE
+  6 CONN_MASTER_WAIT_FOR_MAX_SLOT
+  7 CONN_SLAVE_CONN_REQUESTED
+  8 CONN_SLAVE_WAIT_FOR_SETUP_COMPLETE
+  9 CONN_SLAVE_AUTH
+  10 CONN_USING_HOST_OPCODE
+  11 CONN_SLAVE_AUTH_WAIT
+  12 CONN_SLAVE_ENCRYPT_WAIT
+)
+
+/* mem_lmp_conn_state */
+(
+  0 RECEIVED_CONN_REQ
+  1 SENT_CONN_REQ
+  2 RECEIVED_SETUP_COMPLETE
+  3 SENT_SETUP_COMPLETE
+  4 HOST_CONNECTION_MADE
+  6 INIT_COMPLETE
+  7 SNIFF_NEGOTIATE
+)
+/* btStateAuth1 */
+(
+  0 WAIT_FOR_KINIT
+  1 WAIT_FOR_LKA
+  2 WAIT_FOR_LKB
+  3 WAIT_FOR_SRES
+  4 EXAMINE_RECEIVED_SRES
+  5 SEND_AU_RAND
+  6 WAIT_FOR_KC
+  7 DELAYED_ENCRYPT_RESPONSE
+)
+/* btStateAuth2 */
+(
+  0 SENT_SRES
+  1 RECEIVED_IN_RAND
+  2 SENT_AU_RAND
+  3 AUTHENTICATION_FAILED
+  4 AUTHENTICATION_PASSED
+  5 STARTED_AUTH
+  6 SENT_COMB_KEY
+  7 SENT_IN_RAND
+)
+/* btStateAuth3 */
+(
+  0 RECEIVED_AU_RAND
+  1 RECEIVED_SRES
+  2 MUTUALLY_AUTHENTICATE
+)
+/* btStateHost */
+(
+  0 H_AUTH_STARTED
+  2 H_ENCRYPTION_MODE_REQ_PT
+  3 H_ENCRYPTION_KEY_SIZE
+  4 H_ENCRYPTION_START
+  5 H_ENCRYPTION_STOP
+  6 H_AUTH_SECOND_TRY
+)
+/* btStateEncrypt2 */
+(
+  0 RECEIVED_ENCRYPT_MODE_REQ_PT
+  1 RECEIVED_ENCRYPT_KEY_SIZE
+  2 RECEIVED_ENCRYPT_START
+  3 RECEIVED_ENCRYPT_STOP
+  4 STARTED_ENCRYPT_START
+)
+/* mem_ms_state */
+(
+  0x00 MS_STANDBY
+  0x11 M_MINIT_1
+  0x12 M_MINIT_2
+  0x20 M_SINIT_0
+  0x30 S_MINIT_0
+  0x31 S_MINIT_1
+  0x32 S_MINIT_2
+  0x41 S_SINIT_1
+  0x42 S_SINIT_2
+  0x43 S_SINIT_3
+)
+/* mem_test_mode */
+(
+  0 TEST_MODE_ALLOWED
+  1 TEST_MODE_ACTIVE
+)
+/* values for mem_tester_emulate */
+(
+  0x00 NO_TEST_MODE
+  0x00 CONTINUOUS_TRANSMIT
+  0x10 TRANSMIT_TEST
+  0x08 LOOPBACK
+)
+
+/* mem_tx_misc */
+(
+  1 SEND_TX_ADDR
+)
+/* BBHWREG_page_stat */
+(
+  5 PAGE_MODE_END
+)
+/* host_return_parameters_status codes */
+(
+  0x00 HOST_RETURN_SUCCESS
+  0x01 HOST_RETURN_SLAVE_CANT_ISSUE
+  0x02 HOST_RETURN_NO_CONNECTION
+  0x04 HOST_RETURN_PAGE_TIMEOUT
+  0x05 HOST_RETURN_INQUIRY_TIMEOUT
+  0x08 HOST_RETURN_CONNECTION_TIMEOUT
+  0x09 HOST_RETURN_MAX_NUM_CONNECTIONS
+  0x0a HOST_RETURN_MAX_NUM_SCO
+  0x0b HOST_RETURN_MAX_NUM_ACL
+  0x0c HOST_RETURN_SECURITY_REASONS
+  0x10 HOST_RETURN_HOST_TIMEOUT
+  0x11 HOST_RETURN_UNSUPPORTED_FEATURE_PARAMETER
+  0x13 HOST_RETURN_OTHER_END_USER
+  0x14 HOST_RETURN_OTHER_END_LOW_RESOURCE
+  0x15 HOST_RETURN_OTHER_END_POWER_OFF
+  0x16 HOST_RETURN_LOCAL_HOST
+  0x18 HOST_RETURN_PAIRING_NOT_ALLOWED
+  0x19 HOST_RETURN_UNKNOWN_PDU
+  0x1a HOST_RETURN_UNSUPPORTED_REMOTE_FEATURE
+  0x1d HOST_RETURN_SCO_AIR_MODE_REJECTED
+  0x20 HOST_RETURN_UNSUPPORTED_LMP_VALUE
+  0x21 HOST_RETURN_AUTHENTICATION_FAILURE
+  0x22 HOST_RETURN_CHANGED_EXISTING_SCO
+  0x23 HOST_RETURN_HOST_REJECTED
+  0x24 HOST_RETURN_UNSPECIFIED_ERROR
+  0x25 HOST_RESET
+  0x26 HOST_RETURN_BAD_HANDLE
+
+  0x00 HOST_RETURN_ACCEPT_COMMAND
+  0x01 HOST_RETURN_REJECT_COMMAND
+)
+/* host_present */
+(
+  0 HOST_IS_PRESENT
+  1 BCI_IS_PRESENT
+  2 DONT_INIT_RADIO
+)
+/* mem_master_state */
+(
+  0 MASTER_STATE_STANDBY
+  1 MASTER_INQUIRY
+)
+/* misc */
+(
+  92 SECOND_SWITCH_REQ
+  93 SLAVE_DELAY_DETACH
+  94 MASTER_DELAY_DETACH
+  95 UNSNIFF_DELAY_DETACH
+  0 WE_STARTED_AS_MASTER
+  1 WE_STARTED_AS_SLAVE
+)
+/* mem_host_commands */
+(
+  0x01 HOST_INQUIRY
+  0x02 HOST_INQUIRY_CANCEL
+  0x03 HOST_CREATE_CONNECTION
+  0x04 HOST_DISCONNECT_CONNECTION
+  0x05 HOST_ADD_SCO_REQUEST
+  0x06 HOST_REMOTE_NAME_REQUEST
+  0x07 HOST_WRITE_SUPPORTED_FEATURES
+  0x08 HOST_SET_TX_LEVEL
+  0x09 HOST_SET_RX_LEVEL
+  0x0a HOST_SNIFF_REQUEST
+  0x0b HOST_UNSNIFF_REQUEST
+  0x0c HOST_WRITE_LINK_SUPERVISION_TIMEOUT
+  0x0e HOST_WRITE_SCAN_ENABLE
+  0x0f HOST_READ_AUDIO_QUALITY
+  0x10 HOST_ENABLE_DEVICE_UNDER_TEST
+  0x14 HOST_BUTTON_CONFIGURE
+  0x15 HOST_SET_LOW_BATTERY_LEVEL
+  0x16 HOST_WRITE_LOCAL_NAME
+  0x17 HOST_WRITE_LOCAL_PIN
+  0x18 HOST_KILL_SCO_REQUEST
+  0x19 HOST_QOS_REQ
+
+  0x1a HOST_FEATURES_REQUEST
+  0x1b HOST_VERSION_REQUEST
+  0x1c HOST_TIMING_REQUEST
+  0x1d HOST_CLK_OFFSET_REQUEST
+  0x1e HOST_AUTHENTICATE
+  0x1f HOST_START_ENCRYPTION
+  0x20 HOST_STOP_ENCRYPTION
+  0x21 HOST_HOLD_REQUEST
+  0x22 HOST_HOLD_FORCE
+  0x23 HOST_PARK_REQUEST
+  0x24 HOST_MOD_BEACON
+  0x25 HOST_SET_BROADCAST_SCAN_WINDOW
+  0x26 HOST_UNPARK_PM_REQUEST
+  0x27 HOST_UNPARK_BD_REQUEST
+  0x28 HOST_SLAVE_REQUEST_UNPARK
+  0x29 HOST_DECREASE_POWER_REQUEST
+  0x2a HOST_INCREASE_POWER_REQUEST
+  0x2b HOST_SEND_PREFERRED_RATE
+  0x2c HOST_MAX_SLOT_REQ
+  0x2d HOST_MAX_SLOT_FORCE
+  0x2e HOST_PAGE_MODE_REQUEST
+  0x2f HOST_PAGE_SCAN_MODE_REQUEST
+  0x30 HOST_MASTER_SLAVE_SWITCH
+  0x31 HOST_SEND_AUTO_RATE
+  0x32 HOST_PAGE_CANCEL
+  0x33 HOST_CHANGE_LINK_KEY
+  0x34 HOST_RADIO_READ
+  0x35 HOST_RADIO_WRITE
+  0x36 HOST_REMOTE_SLAVE_INIT_UNPARK_REQUESTED
+
+  0x40 HOST_REMOTE_CONNECTION_REQUESTED
+  0x41 HOST_REMOTE_DETACH
+  0x42 HOST_REMOTE_SCO_CREATE_REQUESTED
+  0x43 HOST_REMOTE_SCO_KILL_REQUESTED
+  0x44 HOST_REMOTE_PARK_REQUESTED
+  0x45 HOST_REMOTE_UNPARK_REQUESTED
+  0x46 HOST_REMOTE_SNIFF_REQUESTED
+  0x47 HOST_REMOTE_UNSNIFF_REQUESTED
+  0x48 HOST_REMOTE_HOLD_REQUESTED
+  0x49 HOST_REMOTE_AUTHENTICATION
+  0x4a HOST_REMOTE_START_ENCRYPTION_REQUESTED
+  0x4b HOST_REMOTE_STOP_ENCRYPTION_REQUESTED
+  0x4c HOST_MODE_CHANGE_EVENT
+  0x4d HOST_REMOTE_TEST_ACTIVATE
+  0x4e HOST_REMOTE_TEST_CONTROL
+  0x4f HOST_REMOTE_TIMING_REQUEST
+)
+/* BCI interface (not used if not compiled in ) */
+(
+  0x01 BCI_INQUIRY
+  0x02 BCI_INQUIRY_CANCEL
+  0x03 BCI_CREATE_CONNECTION
+  0x04 BCI_DISCONNECT
+  0x05 BCI_ADD_SCO_CONNECTION
+  0x06 BCI_REMOTE_NAME_REQUEST
+  0x07 BCI_WRITE_SUPPORTED_FEATURES
+  0x08 BCI_SET_TX_POWER_LEVEL
+  0x09 BCI_SET_RX_POWER_LEVEL
+  0x0a BCI_SNIFF_MODE
+  0x0b BCI_EXIT_SNIFF_MODE
+  0x0c BCI_WRITE_LINK_SUPERVISION_TIMEOUT
+  0x0d BCI_WRITE_PAGE_TIMEOUT
+  0x0e BCI_WRITE_SCAN_ENABLE
+  0x0f BCI_GET_AUDIO_QUALITY
+  0x10 BCI_ENABLE_DEVICE_UNDER_TEST
+  0x11 BCI_SEND_DATA
+  0x12 BCI_REGISTER_SERVICE_RECORD
+  0x13 BCI_SERVICE_SEARCH_ATTRIB_REQ
+  0x14 BCI_BUTTON_CONFIGURE
+  0x15 BCI_SET_LOW_BATTERY_LEVEL
+  0x16 BCI_WRITE_LOCAL_NAME
+  0x17 BCI_WRITE_LOCAL_PIN
+  0x18 BCI_REMOVE_SCO_CONNECTION
+  0x19 BCI_QUALITY_OF_SERVICE
+  0x40 BCI_REMOTE_CONNECTION_REQUEST
+  0x41 BCI_REMOTE_DETACH
+  0x42 BCI_REMOTE_ADD_SCO_REQUEST
+  0x43 BCI_REMOTE_REMOVE_SCO_REQUEST
+  0x44 BCI_REMOTE_PARK_REQUEST
+  0x45 BCI_REMOTE_UNPARK_REQUEST
+  0x46 BCI_REMOTE_SNIFF_REQUEST
+  0x47 BCI_REMOTE_UNSNIFF_REQUEST
+  0x48 BCI_REMOTE_HOLD_REQUEST
+  0x49 BCI_REMOTE_AUTHENTICATION_PAIRING_REQUEST
+  0x4a BCI_REMOTE_START_ENCRYPTION_REQUEST
+  0x4b BCI_REMOTE_STOP_ENCRYPTION_REQUEST
+  0x4c BCI_MODE_CHANGE_EVENT
+)
+/* mode changes */
+(
+  0 MODE_CHANGE_ACTIVE
+  1 MODE_CHANGE_SNIFFING
+  2 MODE_CHANGE_PARKED
+  3 MODE_CHANGE_HOLDING
+  4 MODE_CHANGE_SCO_ADDED
+  5 MODE_CHANGE_SCO_REMOVED
+  6 MODE_CHANGE_ACL_CONNECTION
+  7 MODE_CHANGE_DISCONNECT
+  8 MODE_CHANGE_SCO_CHANGED
+  9 MODE_CHANGE_ENCRYPTING
+  10 MODE_CHANGE_NOT_ENCRYPTING
+  11 MODE_CHANGE_BUTTON_UP
+  12 MODE_CHANGE_BUTTON_DOWN
+  13 MODE_CHANGE_BATTERY_LOW
+  14 MODE_CHANGE_RESET
+  15 MODE_CHANGE_INQUIRY_CANCELED_RMTCMD
+  16 MODE_ACTIVE_MSSWITCH_PASSED
+  17 MODE_ACTIVE_MSSWITCH_FAILED
+)
+/* mem_battery - low nibble is level information, upper nibble is status info */
+(
+  6 BATTERY_CHECK_LEVEL
+  7 BATTERY_SENT_STATUS
+)
+/* mem_radio_version */
+(
+  0x02 RADIO_2001
+  0x12 RADIO_2002
+  0x32 RADIO_2002_DDM
+  0x42 RADIO_1008A1
+  0x52 RADIO_1018A0
+)
+/* mem_slave_initiated_conn */
+(
+  0 SLAVE_INIT_AUTHENTICATION
+  1 SLAVE_INIT_ENCRYPTION
+  2 SLAVE_INIT_MASTER_SLAVE_SWITCH
+)
+/* connection_options */
+(
+  0 CONNECTION_AUTH
+  1 CONNECTION_ENCRYPT
+  2 CONNECTION_SWITCH
+  3 CONNECTION_ACL
+  4 CONNECTION_FEATURE_EXT
+)
+/* mem_debug_config */
+(
+  7 AA_INSERTION
+)
\ No newline at end of file
Index: rom/ui.prog
===================================================================
--- /branch/USB/dongle_sdk/rom/ui.prog	(revision 0)
+++ /branch/USB/dongle_sdk/rom/ui.prog	(working copy)
@@ -0,0 +1,701 @@
+ui_init:
+	call lpm_disable_exen_output
+	rtn wake
+	call ui_button_init
+	call ui_timer_init
+	branch ui_led_init_global
+
+ui_dispatch:
+	call ui_led_dispatch
+	
+	branch ui_timer_check
+	
+ui_button_init:
+	fetch 1,mem_ui_button_gpio
+	rtneq UI_BUTTON_GPIO_DISABLE
+	iforce temp
+	call gpio_config_output
+	fetcht 1,mem_ui_button_gpio
+	call gpio_out_inactive
+	nop 100
+	fetcht 1,mem_ui_button_gpio
+	call gpio_config_input
+	branch ui_button_polling
+
+
+	
+ui_button_polling:
+	bpatchx patch3e_3,mem_patch3e
+	fetch 1,mem_ui_button_gpio
+	rtneq UI_BUTTON_GPIO_DISABLE
+	copy pdata,temp
+	call gpio_get_bit
+	nbranch ui_button_up,true
+	//fall through
+ui_button_down:
+	call ui_button_check_long_press
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BTN_DOWN
+	store 2,mem_ui_state_map
+	fetch 1,mem_ui_button_last_state
+	rtneq UI_BUTTON_STATE_DOWN
+	jam UI_BUTTON_STATE_DOWN,mem_ui_button_last_state
+	//Down Edge
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_ui_button_timer //start long press timer
+	call lpm_button_get_wake_lock
+	jam BT_EVT_BUTTON_DOWN,mem_fifo_temp
+	branch ui_ipc_send_event
+ui_button_up:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BTN_DOWN
+	store 2,mem_ui_state_map
+	fetch 1,mem_ui_button_last_state
+	rtneq UI_BUTTON_STATE_UP
+	jam UI_BUTTON_STATE_UP,mem_ui_button_last_state
+	//Up Edge
+	jam 0,mem_ui_button_timer//stop long press timer
+	call lpm_button_clean_wake_lock
+	jam BT_EVT_BUTTON_UP,mem_fifo_temp
+	branch ui_ipc_send_event
+
+ui_button_check_long_press:
+	fetch 1,mem_ui_button_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_ui_button_timer
+	nrtn blank
+	//Long Press
+	jam BT_EVT_BUTTON_LONG_PRESSED,mem_fifo_temp
+	branch ui_ipc_send_event
+
+lpm_button_get_wake_lock:
+	arg wake_lock_button,queue
+	branch lpm_get_wake_lock
+	
+lpm_button_clean_wake_lock:
+	arg wake_lock_button,queue
+	branch lpm_put_wake_lock
+
+
+
+/***********************ui led function****************************/
+/******************
+led function
+
+ui_led_init_global
+ui_led_on_global
+
+ui_led_off_global
+//input:rega :struct number
+ui_led_blink_start_global
+
+//input:rega :struct number
+//contr: the point that want to set led style address
+ui_led_set_style_global
+
+******************/
+//input:rega :struct number
+//output:regb :current strutct starting pointer
+calc_curr_struct_prt:
+	fetch 2,mem_ui_led_struct_ptr
+	mul32 rega,LED_OFFSET_LENGTH,regb
+	iadd regb,regb
+	rtn
+
+
+ui_led_init_global:
+	fetch 1,mem_ui_led_struct_num
+	rtn blank
+	copy pdata,loopcnt
+	fetch 2,mem_ui_led_struct_ptr
+	copy pdata,regb
+ui_led_init_loop:
+	add regb,LED_OFFSET_LED_GPIO,regc
+	ifetcht 1,regc
+	call gpio_config_output
+	call ui_led_off_static
+	increase LED_OFFSET_LENGTH,regb
+	loop ui_led_init_loop
+	rtn
+
+	
+//input:rega :struct number
+ui_led_on_global:
+	call calc_curr_struct_prt
+	setarg UI_LED_STATE_LIGHTING
+	istore 1,regb
+	call ui_led_stop_timer
+	branch ui_led_on_static
+
+	
+//input:rega :struct number
+ui_led_blink_stop_global:
+ui_led_off_global:
+	call calc_curr_struct_prt
+	setarg UI_LED_STATE_DARKING
+	istore 1,regb
+	call ui_led_stop_timer
+	branch ui_led_off_static
+
+
+//input:rega :struct number
+ui_led_blink_start_global:
+	call calc_curr_struct_prt
+	setarg UI_LED_STATE_BLINK_START
+	istore 1,regb
+	setarg LED_INFINITE_FLASH_NUM
+	istore 1,contw
+	branch ui_led_off_static
+
+
+//input:rega :struct number
+//REGC: the point that want to set led style address
+ui_led_set_style_global:
+	call calc_curr_struct_prt
+	arg LED_OFFSET_LENGTH,loopcnt
+	copy regc,contr
+	copy regb,contw
+	branch memcpy_fast
+
+
+
+ui_led_dispatch:
+	fetch 1,mem_ui_led_struct_num
+	rtn blank
+	arg 0,rega
+ui_led_blink_polling:
+	call ui_led_change_style_by_type
+	increase 1,rega
+	fetch 1,mem_ui_led_struct_num
+	isub rega,null
+	rtn zero
+	branch ui_led_blink_polling
+
+
+ui_led_off_static:
+	add regb,LED_OFFSET_LED_GPIO,regc
+	ifetcht 1,regc
+	branch gpio_out_inactive
+
+
+ui_led_on_static:
+	add regb,LED_OFFSET_LED_GPIO,regc
+	ifetcht 1,regc
+	branch gpio_out_active
+
+
+//input:rega :struct number
+ui_led_change_style_by_type:
+	add rega,ui_led_blink,queue
+	call timer_check
+	nrtn blank			//timer out
+	
+	call calc_curr_struct_prt
+
+	ifetch 1,regb			//led type
+
+	beq UI_LED_STATE_LIGHTING,ui_led_on_static
+	beq UI_LED_STATE_DARKING,ui_led_off_static
+	beq UI_LED_STATE_BLINK_STOP,ui_led_off_static
+	beq UI_LED_STATE_BLINK_DARKING,ui_led_blink_state_darking
+ui_led_blink_state_lighting:
+	call ui_led_on_static
+	add regb,LED_OFFSET_CB_LEDON,regc
+	call push_stack
+	ifetch 2,regc
+	call callback_func
+	call pop_stack
+	setarg UI_LED_STATE_BLINK_DARKING
+	istore 1,regb
+	add regb,LED_OFFSET_ON_TIME,regc
+	ifetch 2,regc
+	branch ui_led_blink_timer_start
+	
+
+ui_led_blink_state_darking:
+	call ui_led_off_static
+	add regb,LED_OFFSET_CB_LEDOFF,regc
+	call push_stack
+	ifetch 2,regc
+	call callback_func
+	call pop_stack
+	
+	add regb,LED_OFFSET_BLINK_COUNT,regc
+	ifetch 1,regc
+	beq LED_INFINITE_FLASH_NUM,ui_led_blink_infinite
+	increase -1,pdata
+	istore 1,regc
+	branch ui_led_blink_stop_global,blank		//End of flicker
+ui_led_blink_infinite:
+	setarg UI_LED_STATE_BLINK_LIGHTING
+	istore 1,regb
+	add regb,LED_OFFSET_OFF_TIME,regc
+	ifetch 2,regc
+ui_led_blink_timer_start:
+	add rega,ui_led_blink,queue
+	branch timer_init
+
+ui_led_stop_timer:
+	setarg 0
+	branch ui_led_blink_timer_start
+
+/***********************ui led function ending****************************/
+
+
+
+ui_timer_timeout:
+	setarg 0x1000
+	lshift16 pdata,pdata
+	iadd regb,regb
+	rtn
+	
+ui_timer_check:
+	bpatchx patch3e_4,mem_patch3e
+	arg 0,rega
+	fetcht 4,mem_ui_timer_last_btclk
+	copy clkn_bt,regb
+	copy regb,pdata
+	isub temp,null
+	ncall ui_timer_timeout,positive
+	//call ice_break
+ui_timer_check_loop:
+	copy regb,pdata
+	increase 160,temp    //320btclk = 100ms
+	increase 160,temp
+	isub temp,null
+	nbranch ui_timer_check_end,positive
+	increase 1,rega   //increase 1 every 100ms count
+	and rega,0x0f,pdata
+	nbranch ui_timer_check_loop,blank
+	arg 0,rega  //reset timer if it's longer than 1.5s between 2 checks
+	call ui_timer_check_send_evt
+ui_timer_init:
+	copy clkn_bt,pdata
+	store 4,mem_ui_timer_last_btclk
+	rtn
+ui_timer_check_end:
+	bpatchx patch3e_5,mem_patch3e
+	copy rega,pdata
+	rtn blank
+	increase -160,temp    //320btclk = 100ms
+	increase -160,temp
+	set0 28,temp
+	storet 4,mem_ui_timer_last_btclk
+ui_timer_check_send_evt:
+	branch app_evt_timer
+
+	
+
+//**********************************************************//
+//************UI Inter-Processor Communication*******//
+//**********************************************************//
+ui_ipc_get_lock:
+	jam 1,mem_ipc_lock_bt
+ui_ipc_get_lock_wait:
+	fetch 1,mem_ipc_lock_c51
+	nbranch ui_ipc_get_lock_wait,blank
+	rtn
+	
+ui_ipc_put_lock:
+	jam 0,mem_ipc_lock_bt
+	rtn
+	
+
+	
+ui_ipc_send_event:
+	bpatchx patch3e_6,mem_patch3e
+	call ui_ipc_get_lock
+	copy rega,pdata
+	store 4,mem_ipc_rega_temp
+	arg mem_ipc_fifo_bt2c51,rega
+	call fifo_in
+	fetch 4,mem_ipc_rega_temp
+	copy pdata,rega
+	branch ui_ipc_put_lock
+
+ui_ipc_send_cmd:
+	bpatchx patch3e_7,mem_patch3e
+	call ui_ipc_get_lock
+	copy rega,pdata
+	store 4,mem_ipc_rega_temp	
+	arg mem_ipc_fifo_c512bt,rega
+	call fifo_in
+	fetch 4,mem_ipc_rega_temp
+	copy pdata,rega	
+	branch ui_ipc_put_lock
+
+ui_ipc_clean_all_fifo:
+	setarg 0
+	store UTIL_FIFO_LEN,mem_ipc_fifo_c512bt
+	store UTIL_FIFO_LEN,mem_ipc_fifo_bt2c51
+	rtn
+	
+check_51cmd:
+	bpatchx patch3f_0,mem_patch3f
+	fetch 1,mem_hci_cmd
+	nrtn blank
+	arg mem_ipc_fifo_c512bt,rega
+	call fifo_is_empty
+	rtn blank
+	jam IPC_CONTINUE_PROCESS,mem_ipc_skip_continue_proc
+	call check_51cmd_once
+	fetch 1,mem_ipc_skip_continue_proc
+	branch check_51cmd,blank
+	rtn
+
+check_51cmd_once:
+	call ui_ipc_get_lock
+	arg mem_ipc_fifo_c512bt,rega
+	call fifo_out
+	copy pdata,temp
+	call ui_ipc_put_lock
+	bpatchx patch3f_1,mem_patch3f
+	copy temp,pdata
+	rtn blank
+ 	beq BT_CMD_START_DISCOVERY,check_51cmd_start_discovery
+  	beq BT_CMD_STOP_DISCOVERY,check_51cmd_stop_discovery
+  	beq BT_CMD_RECONNECT,check_51cmd_reconnect
+  	beq BT_CMD_ENTER_SNIFF_SUBRATING,check_51cmd_enter_sniff_subrating
+  	beq BT_CMD_EXIT_SNIFF_SUBRATING,check_51cmd_exit_sniff_subrating
+  	beq BT_CMD_SNIFF_TEST,check_51cmd_sniff_test
+	beq BT_CMD_START_INQUIRY,check_51cmd_inq
+	beq BT_CMD_STOP_INQUIRY,check_51cmd_stop_inq
+	beq BT_CMD_START_ADV,check_51cmd_adv
+	beq BT_CMD_STOP_ADV,check_51cmd_stop_adv
+	beq BT_CMD_START_DIRECT_ADV,check_51cmd_direct_adv
+	beq BT_CMD_STOP_DIRECT_ADV,check_51cmd_stop_direct_adv
+	beq BT_CMD_LED_OFF,check_51cmd_led_off
+	beq BT_CMD_LED_ON,check_51cmd_led_on
+	beq BT_CMD_LED_BLINK,check_51cmd_led_start_blink
+	beq BT_CMD_LE_START_CONN,check_51cmd_le_start_con
+	beq BT_CMD_LE_START_SCAN,check_51cmd_start_scan
+	beq BT_CMD_LE_STOP_SCAN,check_51cmd_stop_scan
+	beq BT_CMD_ENTER_HIBERNATE,check_51cmd_hibernate
+	beq BT_CMD_LE_SMP_SECURITY_REQUEST,check_51cmd_le_smp_sec_req
+	beq BT_CMD_BB_RECONN_CANCEL,check_51cmd_bb_reconn_cancel
+	//context related, process in context
+	store 1,mem_fifo_temp
+	bpatchx patch3f_2,mem_patch3f
+	call lmo_fifo_check
+	nbranch check_51cmd_restore,blank  //process this cmd next time while lmo fifo is full
+check_51cmd_once_continue:
+	fetch 1,mem_fifo_temp
+	bmark0 mark_context,check_51cmd_check_idle
+	beq BT_CMD_DISCONNECT,check_51cmd_disconnect
+  	beq BT_CMD_ENTER_SNIFF,cmd_in_sniff
+  	beq BT_CMD_EXIT_SNIFF,cmd_exit_sniff
+  	beq BT_CMD_SET_PIN_CODE,check_51cmd_pincode
+	beq BT_CMD_LE_DISCONNECT,check_51cmd_le_disconnect
+	beq BT_CMD_LE_UPDATE_CONN,check_51cmd_ble_update_connect_param
+	beq BT_CMD_ROLE_SWITCH,check_51cmd_role_switch
+	beq BT_CMD_STORE_RECONN_INFO_LE,eeprom_store_le_reconn_info
+	beq BT_CMD_STORE_RECONN_INFO_BT,eeprom_store_bd_reconn_info
+	beq BT_CMD_DHKEY_NOT_ACCEPT,check_51cmd_dhkey_not_accept
+	beq BT_CMD_STORE_RECONN_INFO,check_51cmd_store_reconn_info
+	rtn
+
+check_51cmd_check_idle:
+	store 1,mem_fifo_temp
+  	call context_check_idle
+	branch check_51cmd_restore,zero
+	call context_search_plap
+	nrtn zero
+check_51cmd_restore:
+	jam IPC_SKIP_CONTINUE_PROCESS,mem_ipc_skip_continue_proc
+	branch ui_ipc_send_cmd
+  
+ /******************** 51COMMAND*********************/
+
+//command opcode 0x01	
+check_51cmd_start_discovery:
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BT_DISCOVERY
+	store 2,mem_ui_state_map
+	jam 3,mem_scan_mode
+	rtn
+
+
+//command opcode 0x02	
+check_51cmd_stop_discovery:
+	jam 0,mem_hid_handshake_timer_count
+	jam 0,mem_scan_mode
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BT_DISCOVERY
+	store 2,mem_ui_state_map
+	rtn	
+
+
+//command opcode 0x03	
+check_51cmd_reconnect:	
+	jam hci_cmd_create_conn,mem_hci_cmd
+	rtn	
+
+
+//command opcode 0x04
+check_51cmd_disconnect:
+	jam LMP_DETACH,mem_lmo_opcode2
+	jam OTHER_END_TERMINATED,mem_disconn_reason_send
+	rtn
+
+	
+//command opcode 0x07
+check_51cmd_enter_sniff_subrating:
+	rtn
+
+
+//command opcode 0x08
+check_51cmd_exit_sniff_subrating:
+	rtn	
+
+
+//command opcode 0x09
+check_51cmd_sniff_test:
+	rtn	
+
+
+//command opcode 0x10
+check_51cmd_pincode:
+	jam pincode_state_pincode_ready,mem_pincode_state
+	branch cmd_pair
+
+
+//command opcode 0x11
+check_51cmd_inq:
+	rtn
+
+
+//command opcode 0x12
+check_51cmd_stop_inq:
+	rtn
+
+
+//command opcode 0x13
+check_51cmd_adv:
+	jam ON,mem_le_adv_enable
+	jam ADV_IND,mem_le_adv_type
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BLE_ADV,pdata
+	store 2,mem_ui_state_map
+	rtn
+
+
+//command opcode 0x14
+check_51cmd_stop_adv:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BLE_ADV,pdata
+	store 2,mem_ui_state_map
+	jam OFF,mem_le_adv_enable
+	rtn
+
+
+//command opcode 0x15
+check_51cmd_direct_adv:
+	jam ON,mem_le_adv_enable
+	jam ADV_DIRECT_IND,mem_le_adv_type
+	fetch 2,mem_ui_state_map
+	set1 UI_STATE_BLE_ADV,pdata
+	store 2,mem_ui_state_map
+	rtn
+
+
+//command opcode 0x16
+check_51cmd_stop_direct_adv:
+	fetch 2,mem_ui_state_map
+	set0 UI_STATE_BLE_ADV,pdata
+	store 2,mem_ui_state_map
+	jam OFF,mem_le_adv_enable
+	rtn
+
+
+//command opcode 0x17
+check_51cmd_le_disconnect:
+	setarg 20 // 100ms
+	store 2,mem_le_superto
+	store 2,mem_le_init_superto
+	branch le_send_terminate_ind_user_terminated
+
+
+//command opcode 0x18
+check_51cmd_ble_update_connect_param:
+	branch le_l2cap_tx_update_req
+
+
+//command opcode 19
+check_51cmd_led_off:
+	arg 0,rega
+	branch ui_led_off_global
+
+
+//command opcode 20
+check_51cmd_led_on:
+	arg 0,rega
+	branch ui_led_on_global
+
+
+//command opcode 21
+check_51cmd_led_start_blink:
+	arg 0,rega
+	branch ui_led_blink_start_global
+
+
+//command opcode 0x22
+check_51cmd_le_start_con:
+	jam ON,mem_le_scan_enable
+	jam hci_cmd_le_create_conn,mem_hci_cmd
+//	fetch 6,mem_app_peer_addr
+//	store 6,mem_le_conn_peer_addr
+	rtn
+
+
+//command opcode 0x23
+check_51cmd_start_scan:
+	jam ON,mem_le_scan_enable
+	rtn
+
+
+//command opcode 0x24
+check_51cmd_stop_scan:
+	jam OFF,mem_le_scan_enable
+	jam 0,mem_hci_cmd
+	rtn
+
+
+//command opcode 0x25
+check_51cmd_hibernate:
+	fetch 2,mem_cb_before_hibernate
+	call callback_func
+	fetch 1,mem_ui_button_gpio
+	beq UI_BUTTON_GPIO_DISABLE,check_51cmd_hibernate_btn_disabled
+	copy pdata,temp
+	call gpio_config_input
+check_51cmd_hibernate_btn_disabled:
+	call ui_ipc_clean_all_fifo
+	branch lpm_hibernate	
+
+
+//command opcode 0x27
+check_51cmd_le_smp_sec_req:
+	branch le_send_smp_security_request
+
+
+//command opcode 0x29
+check_51cmd_role_switch:
+  	jam LMP_SLOT_OFFSET,mem_lmo_opcode2
+	set1 mark_switch_initiated,mark
+	nrtn master
+	jam SWITCH_FLAG_INIT,mem_switch_flag
+	jam LMP_SWITCH_REQ ,mem_lmo_opcode2
+	fetch 1,mem_connection_options
+	set0 CONNECTION_SWITCH,pdata
+	store 1,mem_connection_options
+	rtn
+
+
+//command opcode 0x30
+check_51cmd_bb_reconn_cancel:
+	force page_length_timer,queue
+	branch timer_stop
+
+
+//command opcode 0x33
+check_51cmd_dhkey_not_accept:
+	call tid_set_reply
+	jam LMP_DHKey_Check,mem_lmi_opcode2
+	branch parse_lmp_dhkey_check_reject	
+
+
+ui_check_paring_button:
+	fetch 1,mem_ui_state_map
+	rtnbit0 UI_STATE_BTN_DOWN
+	rtnbit0 UI_STATE_BT_RECONNECT
+	branch check_51cmd_bb_reconn_cancel
+
+
+
+///////////queue function////////////
+queue_init:
+	fetch 2,mem_queue_ptr
+	add pdata,QUEUE_OFFSET_CURR_NUM,contw
+	setarg 0
+	istore 3,contw
+	rtn
+	
+//input:rega:the address of the data to which you want to input queue
+//output:if user is disable,mean queue no have space
+queue_push:
+	call disable_user
+	call queue_full
+	rtn blank
+	fetch 2,mem_queue_ptr
+	add pdata,QUEUE_OFFSET_CURR_NUM,regb
+	ifetcht 1,regb
+	increase 1,temp
+	istoret 1,regb	//number add 
+	
+	ifetcht 1,pdata	//temp:each length
+	copy temp,loopcnt
+	add pdata,QUEUE_OFFSET_WRITE_PTR,regb
+	ifetch 1,regb
+	imul32 temp,pdata	//offset
+	iadd contr,contw
+	copy rega,contr
+calc_queue_next_ptr:
+	call memcpy
+	call queue_get_size
+	pincrease -1
+	ifetcht 1,regb
+	increase 1,temp
+	iand temp,temp
+	istoret 1,regb
+	branch enable_user
+
+
+//input:rega:the address of the data to which you want to output queue
+//output:if user is disable,mean queue no have data
+queue_pop:
+	call disable_user
+	call queue_empty
+	rtn blank
+	fetch 2,mem_queue_ptr
+	add pdata,QUEUE_OFFSET_CURR_NUM,regb
+	ifetcht 1,regb
+	increase -1,temp
+	istoret 1,regb
+	ifetcht 1,pdata		//each size
+	copy temp,loopcnt
+	add pdata,QUEUE_OFFSET_READ_PTR,regb
+	ifetch 1,regb
+	imul32 temp,pdata	//offset
+	iadd contr,contr
+	increase 1,contr
+	copy rega,contw
+	branch calc_queue_next_ptr
+
+
+//output:if blank is 1,mean queue is empty
+queue_empty:
+	fetch 2,mem_queue_ptr
+	add pdata,QUEUE_OFFSET_CURR_NUM,contr
+	ifetch 1,contr
+	rtn
+
+//output:if blank is 1,mean queue is full
+queue_full:
+	call queue_get_size
+	ifetcht 1,contr
+	isub temp,pdata
+	rtn
+
+//output:pdata is queue size
+queue_get_size:
+	fetch 2,mem_queue_ptr
+	add pdata,QUEUE_OFFSET_LENGTH,contr
+	ifetch 1,contr
+	rtn
+
+///////////queue function end////////////
+
+
+
+
Index: rom/utility.prog
===================================================================
--- /branch/USB/dongle_sdk/rom/utility.prog	(revision 0)
+++ /branch/USB/dongle_sdk/rom/utility.prog	(working copy)
@@ -0,0 +1,614 @@
+
+right_shift_n: //rshiftN pdata,pdata
+	sub loopcnt,0,null
+	rtn zero
+right_shift_n_loop: 
+	rshift pdata,pdata
+	loop right_shift_n_loop
+	rtn
+
+/* lshift. 0:1 byte; 1:2byte; 2:4byte; 3:8byte; 4:16byte*/
+left_shift_n:
+	force 1,pdata
+	sub loopcnt,0,null
+	rtn zero
+left_shift_n_loop:
+	lshift pdata,pdata
+	loop left_shift_n_loop
+	rtn
+push_stack:
+	deposit contw
+	store 2, mem_contw
+	storet 8,mem_temp
+	deposit timeup
+	store 4,mem_timeup
+	call push_stack_rega_b_c
+	deposit contr
+	store 2, mem_contr
+	rtn
+
+push_stack_rega_b_c:
+	deposit rega
+	store 4, mem_rega
+	deposit regb
+	store 4, mem_regb
+	deposit regc
+	store 3, mem_regc
+	rtn
+
+pop_stack:
+	fetcht 8,mem_temp
+	fetch 4,mem_timeup
+	iforce timeup
+	call pop_stack_rega_b_c
+	fetch 2, mem_contw
+	iforce contw
+	fetch 2, mem_contr
+	iforce contr
+	rtn
+
+pop_stack_rega_b_c:
+	fetch 4, mem_rega
+	iforce rega
+	fetch 4, mem_regb
+	iforce regb
+	fetch 3,mem_regc
+	iforce regc
+	rtn
+
+get_contw:
+	fetch 2,mem_contw
+	copy pdata,contw
+	rtn
+get_contr:
+	fetch 2,mem_contr
+	copy pdata,contr
+	rtn
+store_contw:
+	copy contw,pdata
+	store 2,mem_contw
+	rtn
+store_contr:
+	copy contr,pdata
+	store 2,mem_contr
+	rtn	
+	
+
+//
+save_cont_pointers:
+	copy contw,pdata
+	store 2,mem_hold_contw
+	copy contr,pdata
+	store 2,mem_hold_contr
+	rtn
+load_cont_pointers:
+	fetch 2,mem_hold_contw
+	copy pdata,contw
+	fetch 2,mem_hold_contr
+	copy pdata,contr
+	rtn
+
+memcpy96:
+	call memcpy32
+memcpy64:
+	call memcpy32
+	branch memcpy32
+memcpy12:
+	call memcpy8
+memcpy4:
+	ifetch 4,contr
+	istore 4,contw
+	rtn	
+memcpy8:
+	ifetch 8,contr
+	istore 8,contw
+	rtn	
+
+memcpy48:
+	call memcpy16
+memcpy32:
+	call memcpy8
+memcpy24:
+	call memcpy8
+memcpy16:
+	call memcpy8
+	branch memcpy8
+
+
+
+delay_10ms:
+	arg 10,loopcnt
+delay_ms_wait:
+	nop 12000
+	loop delay_ms_wait
+	rtn
+
+bn_zero:
+	force 3,loopcnt
+memset0:
+	force 0,pdata
+memset8:
+	istore   8,contw
+	loop   memset8
+	rtn
+
+memset0_8:
+	force 0,pdata
+	istore 8,contw
+	rtn
+memset0_4:
+	force 0,pdata
+	istore 4,contw
+	rtn	
+	
+clear_mem_256:
+	force 4,loopcnt
+	branch memset0 
+clear_mem_512:
+	force 8,loopcnt
+	branch memset0 
+
+clear_mem:
+	deposit loopcnt
+	rtn blank
+	setarg 0
+clear_mem_loop:
+	istore 1,contw
+	loop clear_mem_loop
+	rtn
+	
+
+clear_temp_block:
+	arg 32,loopcnt
+	arg mem_temp_block0,contw
+	branch clear_mem
+	
+xor_loop:
+	ifetch   4,regc
+	ifetcht 4,rega
+	ixor     temp,pdata
+	istore   4,contw	
+	increase 4,rega
+	increase 4,regc
+	loop  xor_loop
+	rtn
+	
+// 11 22 -> 22 11; 11 22 33 -> 33 22 11 
+// rega:data addr ;loopnct:length
+inverse_data:
+	bpatchx patch3f_3,mem_patch3f
+	copy loopcnt,pdata
+	sub pdata,1,null
+	rtn positive
+	iadd rega,regb	
+	increase -1,regb
+	rshift loopcnt,loopcnt
+inverse_loop:
+	ifetcht 1,rega
+	ifetch 1,regb
+	istore 1,rega
+	istoret 1,regb
+	increase -1,regb
+	increase 1,rega
+	loop inverse_loop
+	rtn
+
+
+memcpy_fast:
+	deposit loopcnt
+	rtn blank
+memcpy_fast_loop:
+	increase -8,loopcnt
+	call memcpy8,positive
+	rtn zero
+	branch memcpy_fast_loop,positive
+	increase 8,loopcnt
+memcpy_fast_loop_four:
+	increase -4,loopcnt
+	call memcpy4,positive
+	rtn zero
+	branch memcpy_fast_loop_four,positive
+	increase 4,loopcnt
+	branch memcpy
+ 
+memcpy:
+	deposit loopcnt
+	rtn blank
+memcpy_loop:
+	ifetch 1,contr
+	istore 1,contw
+	loop memcpy_loop
+	rtn
+
+timer_stop:
+	setarg 0
+timer_init:
+	rshift clkn_bt,temp
+	storet 4,mem_last_clkn
+	arg mem_timers,contw
+	iforce temp
+	lshift queue,pdata
+	iadd contw,contw
+	istoret 2,contw
+	bpatchx patch3f_4,mem_patch3f
+	rtn
+
+timer_check_timeout:
+	arg 0x800,timeup
+	lshift16 timeup,timeup
+	iadd timeup,pdata
+	rtn
+
+
+timer_reinit:
+	arg 0,queue
+timer_check:
+	bpatchx patch3f_5,mem_patch3f
+	fetcht 4,mem_last_clkn
+	rshift clkn_bt,pdata
+	store 4,mem_last_clkn	
+	isub temp,null
+	ncall timer_check_timeout,positive	
+	isub temp,timeup
+	copy timeup,temp
+	arg mem_timers,contr
+	copy contr,contw
+	arg 16,loopcnt
+timer_loop:
+	ifetch 2,contr
+	isub temp,pdata
+	branch timer_counting,positive
+	force 0,pdata
+timer_counting:
+	istore 2,contw
+	loop timer_loop	
+	arg mem_timers,contr
+	lshift queue,pdata
+	iadd contr,contr
+	ifetch 2,contr
+	rtn
+
+
+
+	/* pdata 28+16 bit add temp 26+16 bit, result in temp */
+clk_add:
+	iadd temp,temp
+	copy temp, loopcnt
+	setarg 3750
+	isub loopcnt,pdata
+	rtn positive
+	sub pdata,0,pdata
+	rshift16 temp,temp
+	increase 1,temp
+	lshift16 temp,temp
+	ior temp,temp
+	rtn
+
+clk_diff_rt:
+	call clk_diff
+	branch clk2rt
+
+/* pdata -temp -> pdata, all are 28+16 bits, set user if negative */
+clk_diff:
+	disable user
+	isub temp,pdata
+	branch clk_diff_pos,positive
+	enable user
+	sub pdata,0,pdata
+clk_diff_pos:
+	rtnbit0 15
+	arg -61786,temp
+	iadd temp,pdata
+	set0 64,pdata
+	rtn
+
+clk2rt:
+	iforce contr
+	rshift16 pdata,pdata
+	arg 3750,temp
+	imul32 temp,pdata
+	iadd contr,pdata
+	rtn
+
+	/* pdata = clks in, temp = lpo out */
+clk2lpo:
+	lshift8 pdata,pdata
+	lshift4 pdata,pdata
+	fetcht 3,mem_clks_per_lpo
+	idiv temp
+	call wait_div_end
+	quotient temp
+	rtn
+
+	/* rt clk -> bt+rt clk */
+clk2bt:
+	arg 3750,temp
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	lshift16 pdata,pdata
+	remainder temp
+	ior temp,temp
+	rtn
+
+
+
+//input:contru 
+//output:temp
+//used register: temp regc
+string2dec_from_uart:
+	arg 0,temp
+string2dec_from_uart_done:
+         copy temp,regc
+	ifetch 1,contru
+	call uchar2dialog	
+	copy regc,temp
+	call swap
+	arg 10,regb
+	imul32 regb,pdata
+	iadd temp,pdata
+	copy pdata,temp
+	loop string2dec_from_uart_done
+	rtn
+	
+
+
+uchar2dialog:
+	arg 0x3a,temp
+	isub temp,null
+	nbranch uchar2dialog_number,positive
+	arg 0x61,temp
+	isub temp,null
+	branch uchar2dialog_a2f,positive
+	arg 0x37,temp
+	isub temp,pdata
+	rtn
+uchar2dialog_number:
+	arg 0x30,temp
+	isub temp,pdata
+	rtn
+uchar2dialog_a2f:
+	arg 0x57,temp
+	isub temp,pdata
+	rtn
+
+pn9:
+	copy temp,alarm
+	setarg 0x1ff
+	force 0,regb
+pn9_loop:	
+	rshift3 pdata,rega
+	rshift rega,rega
+	ixor rega,rega
+	isolate1 0,rega
+	setflag true,9,pdata
+	rshift temp,temp
+	isolate1 0,pdata
+	setflag true,7,temp
+	rshift pdata,pdata
+	increase 1,regb
+	compare 0,regb,0x7
+	nbranch pn9_loop,true
+	istoret 1,contw
+	loop pn9_loop
+	copy alarm,temp
+	rtn
+
+
+wait_div_end:	
+	rtn modone
+	branch wait_div_end
+
+
+
+//input:
+//	count:loopcnt str1:rega str2:regb
+//output:
+//	same:set falg true ,diff set falg false
+// using:
+//	reg:temp null flag:zero
+compare_loop:
+string_compare:
+	ifetch 1,rega
+	ifetcht 1,regb
+	isub temp,null
+	nrtn zero
+	increase 1,rega
+	increase 1,regb
+	loop string_compare
+	force 0,null
+	rtn
+
+	/* pdata = temp if pdata > temp */
+ceiling:
+	isub temp,null
+	nrtn positive
+	deposit temp
+	rtn
+	
+swap:
+	iadd temp,pdata
+	isub temp,temp
+	isub temp,pdata
+	rtn
+
+clean_mem:
+	arg 0x200,loopcnt
+	arg 0x4000,contw
+	branch memset0				// clear xram at boot
+
+	//cb function ptr in pdata
+callback_func:
+	rtn blank
+	copy pdata,pc	//rtn through cb functon.
+	//branch assert
+
+wait_uarttx:
+	hfetch 2,core_uart_txitems
+	nbranch wait_uarttx,blank
+	rtn
+
+ice_break:
+	jam 0x1,core_ice_ctrl
+	rtn
+
+ice_setbp:
+	hstore 2,core_ice_break0
+	hfetch 1,core_ice_ctrl
+	set1 4,pdata
+	hstore 1,core_ice_ctrl
+	rtn
+ice_setbp2:
+	hstore 2,core_ice_break1
+	hfetch 1,core_ice_ctrl
+	set1 6,pdata
+	hstore 1,core_ice_ctrl
+	rtn
+	
+ice_set_write_bp:
+	hstore 2,core_ice_break0
+	jam 0x30,core_ice_ctrl
+	rtn
+	
+
+
+test_enable_white:
+	hfetch 1,core_config
+	set0 whiteoff_bit,pdata
+	hstore 1,core_config			/* whitening on */
+	rtn
+
+check_uart_tx_buff:
+	hfetch 2,core_uart_txitems
+	arg UART_AIR_CONTROL_THRESHOLD,temp
+pdata_sub_temp:
+	isub temp,null
+	rtn
+
+	//fuction fifo_in
+	//rega pointer to fifo memory , *(rega+len) is the end of fifo
+	//mem_fifo_temp data into fifo
+	//assert if fifo was full
+fifo_in:
+	bpatchx patch3f_6,mem_patch3f
+	ifetcht UTIL_FIFO_LEN,rega
+	and temp,0xff,pdata
+	nbranch fifo_in_push,blank
+	rshift8 temp,pdata
+	istore UTIL_FIFO_LEN,rega
+fifo_in_push:
+	increase UTIL_FIFO_LEN+UTIL_FIFO_OFFSET,rega
+	ifetch 1,rega
+	nbranch assert,blank //fifo full
+	fetch 1,mem_fifo_temp
+	istore 1,rega
+	rtn
+	
+	//fuction fifo_out
+	//rega pointer to fifo memory
+	//pdata  data from fifo, blank mains fifo empty
+fifo_out:
+	bpatchx patch3f_7,mem_patch3f
+	arg UTIL_FIFO_LEN,loopcnt
+	ifetch UTIL_FIFO_LEN,rega
+	rtn blank
+fifo_out_loop:
+	ifetch 1,rega
+	nbranch fifo_out_end,blank
+	increase 1,rega
+	loop fifo_out_loop
+	branch assert
+fifo_out_end:
+	arg 0,temp
+	istoret 1,rega
+	rtn
+
+	//fuction fifo_is_empty
+	//rega pointer to fifo memory
+	//blank--- fifo is empty
+fifo_is_empty:
+	ifetch UTIL_FIFO_LEN,rega
+	rtn
+
+	//fuction fifo_is_full
+	//rega pointer to fifo memory
+	//blank--- fifo is NOT full
+fifo_is_full:
+	ifetch 1,rega
+	rtn
+	//rega pointer to fifo memory
+	//blank--- fifo is NOT near full
+fifo_is_near_full:
+	ifetch 2,rega
+	rtn
+
+	//rega pointer to fifo memory
+	//count output via pdata
+fifo_content_count:
+	arg 0,temp
+fifo_content_count_loop:
+	fetch 1,contr
+	loop fifo_content_count_loop,blank
+	increase 1,temp
+	loop fifo_content_count_loop
+	copy temp,pdata
+	rtn
+	
+not_greater_than:
+	isub temp,null
+	nrtn positive
+	copy temp,pdata
+	rtn
+
+
+disable_positive:
+	force -1,null
+	rtn
+enable_positive:
+disable_zero:
+	force 1,null
+	rtn
+enable_zero:
+	force 0,null
+	rtn
+
+enable_user:
+	enable user
+	rtn
+	
+disable_user:
+	disable user
+	rtn
+	
+enable_user2:
+	enable user2
+	rtn
+	
+disable_user2:
+	disable user2
+	rtn
+
+disable_blank:
+	setarg 1
+	rtn
+
+enable_blank:
+	setarg 0
+	rtn
+
+
+reverse_byte:
+	copy loopcnt,pdata
+	rtn blank
+	copy contr,pdata
+	iadd loopcnt,pdata
+	increase -1,pdata
+	copy pdata,contr	
+reverse_loop:
+	ifetch 1,contr
+	increase -2,contr
+	istore 1,contw
+	loop reverse_loop
+	rtn
+
+
Index: sched/109x.dat
===================================================================
--- /branch/USB/dongle_sdk/sched/109x.dat	(revision 0)
+++ /branch/USB/dongle_sdk/sched/109x.dat	(working copy)
@@ -0,0 +1,16 @@
+
+mem_lpm_config:8f 1d ca	#4khz
+mem_lpm_xtalcnt:00 0a 0b ef 07
+mem_lpm_hibernate_switch:00
+
+mem_fcomp_mul:02
+mem_fcomp_div:24
+
+mem_seqi:00
+
+#write to null
+mem_24g_head_ptr:00 84
+
+#mem_rx_window_init:80 04
+#mem_rx_window_sniff:00 08
+
Index: sched/usb.dat
===================================================================
--- /branch/USB/dongle_sdk/sched/usb.dat	(revision 0)
+++ /branch/USB/dongle_sdk/sched/usb.dat	(working copy)
@@ -0,0 +1,219 @@
+mem_patch00:01
+mem_patch10:20
+mem_patch11:42
+mem_patch18:10
+mem_patch1e:80
+mem_patch1f:11
+
+mem_rf_init_data_new:
+# tx power
+4b ba
+55 d0
+56 e0
+57 88
+58 3c
+59 10
+ff
+mem_rf_init_ptr:mem_rf_init_data_new
+
+
+#usb initial
+mem_usb_new_vid_pid_value:
+01 #ENABLE
+#mouse only#auto pair
+51 31#VID
+01 10#PID
+#mouse & keyboard
+51 31#VID
+00 30#PID
+
+mem_string0:04 04 03 09 04
+mem_string1:
+'YICHIP
+
+#string length less than 32
+mem_string2:
+'Wireless Device
+mem_string3:
+'b120300001
+
+mem_usb_tx_interval:00
+
+
+mem_hidreportdesc_kb_temp:
+1a
+#===============MCE锟斤拷锟教匡拷锟斤拷=======26===========================
+06 bc ff	#USAGE_PAGE (Vendor Defined Page *)
+09 88 	#USAGE(?)
+a1 01   	#Collection (Application),
+85 04   	#Report ID (4)
+19 00   	#USAGE_MINIMUM (undefined)
+2a ff 00	#
+15 00   	#Logical Minimum (0),
+26 ff 00	#
+75 08  	#REPORT_SIZE (8)
+95 01  	#REPORT_COUNT (1)
+81 00  	#Input (Data,Ary,Abs)
+c0 	 	#END_COLLECTION
+
+mem_hidreportdesc_kb_new_temp:
+#===============new keyboard desc====================
+3f
+05 01
+09 06
+a1 01
+75 01 
+95 08
+05 07
+19 e0 
+29 e7 
+15 00
+25 01
+81 02
+95 01 
+75 08
+81 03 
+95 05
+75 01
+05 08
+19 01
+29 05  
+91 02 
+95 01  
+75 03  
+91 03
+95 06 
+75 08 
+15 00 
+25 ff
+05 07
+19 00
+29 ff 
+81 00
+c0
+
+
+
+mem_hidreportdesc_m_temp:
+#mouse hid
+a3				# total length
+#====================锟斤拷锟====75====================================
+05 01	#USAGE_PAGE (Generic Desktop)
+09 02	#USAGE (Mouse)
+a1 01	#COLLECTION (Application)
+85 01	#Report ID (1)
+09 01	#USAGE (Pointer)
+a1 00	#COLLECTION (Physical)
+05 09	#USAGE_PAGE (Button)
+19 01	#USAGE_MINIMUM (Button 1)
+29 05	#USAGE_MAXIMUM (Button 3)
+15 00	#LOGICAL_MINIMUM (0)
+25 01	#LOGICAL_MAXIMUM (1)
+95 05	#REPORT_COUNT (5)
+75 01	#REPORT_SIZE (1)
+81 02	#INPUT (Data,Var,Abs)
+95 01	#REPORT_COUNT (1)
+75 03	#REPORT_SIZE (3)
+81 01	#INPUT (Cnst,Var,Abs)
+05 01	#USAGE_PAGE (Generic Desktop)
+09 30	#USAGE (X)
+09 31	#USAGE (Y)
+16 01 F8	#Logical Minimum (-2047)
+26 FF 07	#Logical Maximum (2047) 
+75 10	#REPORT_SIZE (16)
+95 02	#REPORT_COUNT (2)    
+81 06	#INPUT (Data,Var,Rel)
+09 38	#USAGE (Wheel)
+15 81	#LOGICAL_MINIMUM (-127)
+25 7f	#LOGICAL_MAXIMUM (127)
+75 08	#REPORT_SIZE (8)
+95 01	#REPORT_COUNT (1)
+81 06	#INPUT (Data,Var,Rel)  
+05 0c	#USAGE_PAGE(Consumer Devices)
+0a 38 02 	#
+95 01
+81 06	#INPUT (Data,Var,Rel)
+c0		#END_COLLECTION
+c0		#END_COLLECTION
+
+#===============锟斤拷源锟斤拷锟斤拷======31==============================
+05 01	#Usage Page (Generic Desktop),
+09 80	#USAGE (3-D Digitizer)
+a1 01	#Collection (Application),
+85 02	#Report ID (2)
+05 01	#Usage Page (Generic Desktop),
+19 81	#Usage Minimum (), 
+29 88	#Usage Maximum (),
+15 00	#Logical Minimum (0),
+25 01	#Logical Maximum (1),
+95 08	#Report Count (8),
+75 01	#Report Size (1),
+81 06	#Input (Data,Var,Rel)
+#95 01	#Report Count (1),  
+#75 05	#Report Size (5),	
+#81 01	#Input (Const,Ary,Abs)
+c0		#END_COLLECTION
+   
+#===============锟斤拷媒锟藉按锟斤拷锟斤拷锟斤拷=======25========================
+05 0c	#USAGE_PAGE (Consumer Devices)
+09 01	#USAGE (Consumer Control)
+a1 01	#COLLECTION (Application)
+85 03	#Report ID (3)
+15 00	#LOGICAL_MINIMUM (0)
+26 80	#
+03 19	#
+00 2a	#
+80 03	#
+75 10	#REPORT_SIZE (0x10)
+95 01	#REPORT_COUNT (1)
+81 00	#Input (Data,Ary,Abs)
+c0 	 	#END_COLLECTION
+
+#===============beken============38======================
+06 00 ff	#USAGE_PAGE (Vendor Defined Page 1)
+09 0e   	#USAGE (Vendor Usage 1)
+a1 01   	#COLLECTION (Application)
+85 BA   	#Report ID
+95 1f   	#REPORT_COUNT ( )
+75 08   	#REPORT_SIZE (8)
+26 ff 00	#LOGICAL_MAXIMUM (255)
+15 00   	#LOGICAL_MINIMUM (0)
+09 01   	#USAGE (Vendor Usage 1)
+91 02   	#OUTPUT (Data,Var,Abs)
+        	
+85 BA   	#Report ID
+95 1f   	#REPORT_COUNT ( )
+75 08   	#REPORT_SIZE (8)
+26 ff 00	#LOGICAL_MAXIMUM (255)
+15 00   	#LOGICAL_MINIMUM (0)
+09 01   	#USAGE (Vendor Usage 1)
+81 02   	#INPUT (Data,Var,Abs)
+C0      	#end Application Collection}
+
+#usb initial end
+
+
+#24g rx init
+mem_tx_power:02
+mem_24g_mode:02#rx
+mem_24g_pair_mode:00
+mem_24g_no_ack:00#no ack
+mem_24g_rx_window:30 75#rx
+mem_24g_hop_interval:1e
+mem_24g_ackpayload_enable:00#ack payload enable
+mem_24g_ch_map1:00 13 2c 42
+mem_24g_ch_map2:06 15 36 48
+mem_24g_ch_map3:0f 1a 3a 4c
+mem_24g_ch_map4:11 23 31 4d
+mem_24g_paring_addr:20 15 10 05
+mem_lap:36 26 10 09 07 2b	#low 4B used for mem_24g_rx_addr
+
+#24g rx init end
+
+mem_eeprom_base:80 1f
+mem_eeprom_block_size:20
+mem_eeprom_wp_gpio:14
+
+mem_firmware_version:01 00 24
+
+
Index: util/DeleteNote.pl
===================================================================
--- /branch/USB/dongle_sdk/util/DeleteNote.pl	(revision 0)
+++ /branch/USB/dongle_sdk/util/DeleteNote.pl	(working copy)
@@ -0,0 +1,27 @@
+
+#print "输入注释的标志:";
+
+#chomp ($text = <STDIN>);
+
+#print $text;
+
+###########################
+#该脚本的功能为删除，#为注释的注释代码。
+
+$Sched_path=$ARGV[0];
+
+open(Sched,$Sched_path)||die("Cannot open files\n");
+@sched=<Sched>;
+close(Sched);
+
+foreach $sched(@sched)
+{
+	$sched_begin = $sched;
+	@Sched = split(/[#]+/, $sched);
+	chomp @Sched[0];
+	$sched = @Sched[0]."\n";
+}
+
+open(Sched,">$Sched_path")||die("Cannot open files\n");
+print Sched @sched;
+close(Sched);
Index: util/crc16.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: util/crc16.exe
===================================================================
--- /branch/USB/dongle_sdk/util/crc16.exe	(revision 0)
+++ /branch/USB/dongle_sdk/util/crc16.exe	(working copy)

Property changes on: util/crc16.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: util/eeprom2fulleeprom.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: util/eeprom2fulleeprom.exe
===================================================================
--- /branch/USB/dongle_sdk/util/eeprom2fulleeprom.exe	(revision 0)
+++ /branch/USB/dongle_sdk/util/eeprom2fulleeprom.exe	(working copy)

Property changes on: util/eeprom2fulleeprom.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: util/geneep.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: util/geneep.exe
===================================================================
--- /branch/USB/dongle_sdk/util/geneep.exe	(revision 0)
+++ /branch/USB/dongle_sdk/util/geneep.exe	(working copy)

Property changes on: util/geneep.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: util/memalloc.pl
===================================================================
--- /branch/USB/dongle_sdk/util/memalloc.pl	(revision 0)
+++ /branch/USB/dongle_sdk/util/memalloc.pl	(working copy)
@@ -0,0 +1,74 @@
+#!/usr/bin/perl
+$path="output/bt_format.meta";
+open file, $path;
+@f = <file>;
+close file;
+open file, ">$path";
+$path =~ s/\/.*//;
+open file1, ">output/memmap.format";
+$xaddr = 0x4000;
+$addr = 0;
+if($#ARGV == 1) {
+	$addr = hex($ARGV[0]);
+	$xaddr = hex($ARGV[1]);
+}
+for($i = 0;$i < @f;$i++) { $cmalloc[$i] = (); }
+for($i = 0;$i < @f;$i++) { 
+	$_ = $f[$i];
+	$start = 1 if(/^\s*memalloc\s*\(\s*$/);
+	$start = 2 if(/^\s*xmemalloc\s*\(\s*$/);
+	$start = 3 if(/^\s*omemalloc\s*\(\s*$/);
+	$start = 10 + $1 if(/^\s*cmemalloc\s+([0-9])\s*\(\s*$/);
+	if($start) {
+		if(/^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
+			if($start == 1) {
+				$str = sprintf "0x%04x %s%s\n", $addr, $2, $3;
+				$addr += $1;
+				$bstr .= $str;
+				$sstr .= $str;
+			} elsif($start == 2) {
+				$str = sprintf "0x%04x %s%s\n", $xaddr, $2, $3;
+				$xaddr += $1;
+				$xstr .= $str;
+			} else {
+				push @ostr, $_;
+			}
+		}
+		if(/^\s*\)\s*$/) {
+			if(@ostr > 0) {
+				if($start == 3) {
+					push @omalloc,[@ostr];
+				} elsif($start > 9) {
+					$j = $start - 10;
+					push @{$cmalloc[$j]},@ostr;
+				} 
+			}
+			$start = 0;
+			@ostr = ();
+		}
+	} else {
+		$sstr .= $_;
+	}
+}
+for($i = 0;$i <= $#cmalloc;$i++) {
+	push @omalloc,$cmalloc[$i];
+#	for($j = 0;$j <= $#{$cmalloc[$i]};$j++) {		print $cmalloc[$i][$j];	}
+}
+
+$xend = $xaddr;
+for($i = 0;$i <= $#omalloc;$i++) {
+	for($j = 0, $oaddr = $xaddr;$j <= $#{$omalloc[$i]};$j++) {
+		if($omalloc[$i][$j] =~ /^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
+			$str = sprintf "0x%04x %s%s\n", $oaddr, $2, $3;
+			$oaddr += $1;
+			$xstr .= $str;
+		}
+	}
+}
+$xend = $oaddr if($oaddr > $xend);
+print file $xstr, $sstr;
+print file1 $bstr, $xstr;
+close file;
+close file1;
+printf "\nLast allocated address is %04x\n", $addr;
+printf "\nLast allocated xmem address is %04x\n", $xend;
\ No newline at end of file
Index: util/mergepatch.pl
===================================================================
--- /branch/USB/dongle_sdk/util/mergepatch.pl	(revision 0)
+++ /branch/USB/dongle_sdk/util/mergepatch.pl	(working copy)
@@ -0,0 +1,44 @@
+#!/usr/bin/perl
+$defs = "";
+$fmt = 0;
+
+
+sub parseif {
+	my($fname) = @_;
+	open file, $fname;
+	@f = <file>;
+	close file;
+	open file, ">$fname";
+	@valid = (1);
+	for($i = 0;$i < @f;$i++) { 
+		$_ = $f[$i];
+		$defs .= $1 . " " if(/^define\s+(\w+)\s*/);
+		if(/^ifdef\s+(\w+)\s*/) {
+			push @valid, ($defs =~ /(^|\s)$1(\s|$)/ ? 1 : 0) & $valid[$#valid];
+		} elsif(/^ifndef\s+(\w+)\s*/) {
+			push @valid, ($defs =~ /(^|\s)$1(\s|$)/ ? 0 : 1) & $valid[$#valid];
+		} elsif(/^else/) {
+			printf "%s\nelse without if at line %d\n", $f[$i - 3], $i if($#valid == 0);
+			$valid[$#valid] = (1 - $valid[$#valid]) & $valid[$#valid - 1];
+		} elsif(/^endif/) {
+			printf "%s\nendif without if at line %d\n", $_, $i if($#valid == 0);
+			pop @valid;
+		} elsif($valid[$#valid]) {
+			if(/^include\s+(.+)\s*/) {
+				open file2, "program/$1";
+				@f2 = <file2>;
+				close file2;
+				splice(@f, $i + 1, 0, @f2);
+			} else {
+				print file $_;
+			}
+		}
+	}
+	close file;
+}
+
+parseif("output/bt_program23.meta");
+$fmt = 1;
+parseif("output/bt_format.meta");
+
+
Index: util/sortsched.pl
===================================================================
--- /branch/USB/dongle_sdk/util/sortsched.pl	(revision 0)
+++ /branch/USB/dongle_sdk/util/sortsched.pl	(working copy)
@@ -0,0 +1,163 @@
+
+
+$Sched_path=$ARGV[0];
+$Sched_test_path=$ARGV[1];
+
+open(Sched,"$Sched_path")||die("Cannot open files1\n");
+@sched=<Sched>;
+@sched[-1] = "";
+close(Sched);
+#open(Sched_test,">ResultsFile.rom")||die("Cannot open files2\n");
+#print Sched_test ("");
+#close (Sched_test);
+#open(Sched_test,">ResultsFile.rom")||die("Cannot open file3s\n");
+open(Sched_test1,">$Sched_test_path")||die("Cannot open files4\n");
+#@Sched_test=<Sched_test>;
+@Data[0]="";
+$Data_num=0;
+@Address_num;
+@OriginalRecord;
+foreach $sched (@sched)
+{
+	if($sched=~/[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]:/)
+	{
+		#$lap_flag = 0;
+		#$le_lap_flag = 0;
+		#if($sched=~/40a0:/)
+		#{
+		#	$lap_data = $sched;
+		#	$lap_flag = 1;
+		#}
+		#elsif($sched =~ /44a0:/)
+		#{
+		#	$le_lap_data = $sched;
+		#	$le_lap_flag = 1;
+		#}
+		#else
+		#{
+			$Data_num++;
+			@OriginalRecord[$Data_num]=$sched;
+			@snap_variable=split(/[#\n]/,$sched);
+			@Data[$Data_num]=@snap_variable[0]."\n";
+		#}
+	}
+	else
+	{
+		#if($lap_flag == 1)
+		#{
+		#	$lap_data .= $sched;
+		#}
+		#elsif($le_lap_flag == 1)
+		#{
+		#	$le_lap_data .= $sched;
+		#}
+		#else
+		#{
+			@OriginalRecord[$Data_num].=$sched;
+			@snap_variable=split(/[#\n]/,$sched);
+			@Data[$Data_num].=@snap_variable[0]."\n";
+		#}
+	}
+}
+@sort_Data = sort(@Data);
+@OriginalRecord=sort(@OriginalRecord);
+$PreviousADDR=0;
+$CurrentADDR=0;
+$PreviousData="";
+$CurrentData="";
+$I=0;
+$len_sort_Data=@sort_Data;
+$NextADDR="";
+for($i=0;$i<$len_sort_Data;$i++)
+{
+	$sort_Data=@sort_Data[$i];
+	@snap_variable=split(/:/,$sort_Data);
+	$WData=@snap_variable[1];
+	
+	if($WData =~ /[1-9a-fA-F]/ && hex(@snap_variable[0]) >= 16384){
+	$WADDR=@snap_variable[0];
+	@sort_Data[$i]=@OriginalRecord[$i];
+	@LLL[$i]=0;
+	if($NextADDR eq $WADDR){
+		@snap_variable=split(/[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]:/,@OriginalRecord[$i]);
+		@sort_Data[$i]=@snap_variable[1];
+		@LLL[$i]=1;
+	}
+	if(@LLL[$i]==0 && hex($PreviousADDR)+6>hex($WADDR)){
+		$LEN=hex($WADDR) - hex($NextADDR);
+		#print $LEN;
+		for($j=0;$j<$LEN;$j++)
+		{
+			@sort_Data[$i-1].="00 "
+		}
+		@sort_Data[$i-1].="\n";
+		@snap_variable=split(/[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]:/,@OriginalRecord[$i]);
+		@sort_Data[$i]=@snap_variable[1];
+		@LLL[$i]=1;
+	}
+	if($PreviousADDR eq $WADDR){
+		@sort_Data[$i-1]="";
+		if(@LLL[$i-1]==1){
+			@snap_variable=split(/[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]:/,@OriginalRecord[$i]);
+			@sort_Data[$i]=@snap_variable[1];
+			@LLL[$i]=1;
+		}
+	}
+	else{
+		@DataNum=split(/[0-9a-fA-F][0-9a-fA-F]/,$WData);
+		$DataNum=@DataNum;
+		$PreviousADDR=$WADDR;
+		#@sort_Data[$i].="      ".$DataNum."\n";
+		$NextADDR = &hex_add($WADDR,$DataNum);
+	}
+	}
+	else{
+		if(hex(@snap_variable[0]) >= 16384)
+		{
+			@sort_Data[$i]="";
+		}
+	}
+	#@sort_Data[$i].="      ".$NextADDR."\n";
+	#$sort_Data =~ s/\n//;
+	#$sort_Data.="\n";
+}
+#print Sched_test @OriginalRecord;
+#print Sched_test1 $lap_data;
+#print Sched_test1 $le_lap_data;
+print Sched_test1 @sort_Data;
+#print  $lap_data;
+#print  $le_lap_data;
+#for($i=0;$i<$len_sort_Data;$i++)
+#foreach $sort_Data (@sort_Data)
+#{	
+	#$sort_Data=@sort_Data[$i];
+	#print Sched_test $PreviousData;
+	#@snap_variable=split(/:/,$sort_Data);
+	#$CurrentADDR=@snap_variable[0];
+	#$CurrentData=$sort_Data;
+	#print ($CurrentADDR);
+	#if($CurrentADDR-$PreviousADDR==1)
+	#{
+	#	$CurrentVal=@snap_variable[1];
+	#	@snap_variable=split(/\n/,$PreviousData);
+		
+	#	$PreviousData.=" ".$CurrentVal;
+	#	$CurrentData=$PreviousData;
+	#	@sort_Data[$i]="";
+	#	@sort_Data[$i-1]=$CurrentData;
+		#print ($CurrentData."\n");
+	#}
+	#$PreviousADDR=$CurrentADDR;
+	#$PreviousData=$CurrentData;
+	#print Sched_test $CurrentData;
+#}
+#print Sched_test @sort_Data;
+#close(Sched_test);
+close(Sched_test1);
+
+sub hex_add{
+	my($ADDR,$Len)=@_;
+	$data=hex($ADDR);
+	$data=$data+$Len-1;
+	return(sprintf("%04x",$data));
+}
\ No newline at end of file
Index: util/transform_name2addr.pl
===================================================================
--- /branch/USB/dongle_sdk/util/transform_name2addr.pl	(revision 0)
+++ /branch/USB/dongle_sdk/util/transform_name2addr.pl	(working copy)
@@ -0,0 +1,107 @@
+###########################
+#该脚本的功能为：将文件中的寄存器名字改成寄存器地址
+#两者之间的映射关系为$Memmap_path文件中的映射表
+
+$Sched_path=$ARGV[0];
+$Sched_test_path=$ARGV[1];
+$Memmap_path=$ARGV[2];
+open(Sched,$Sched_path)||die("Cannot open files\n");
+@sched=<Sched>;
+close(Sched);
+open(Sched_test,">$Sched_test_path");
+print Sched_test ("");
+close(Sched_test);
+open(Sched_test,">$Sched_test_path");
+open(Memmap,$Memmap_path)||die("Cannot open files\n");
+@memmap=<Memmap>;
+close(Memmap);
+$type_add=0;
+$type_exchange=0;
+foreach $sched(@sched)
+{
+	$sched_begin = $sched;
+	@Sched = split(/[#]+/, $sched);
+	$sched = @Sched[0];
+	@Sched[0] = "";
+	if($sched =~ /mem[\w]+/)
+	{
+		@memmap_name = split(/[\W]+/, $sched);
+		foreach $memmap_name(@memmap_name)
+		{
+			if($memmap_name =~ /mem[\w]+/)
+			{
+				$Memmap_name=$memmap_name;
+				$type_add = 0;
+				$type_exchange = 0;
+				if($sched =~ /$Memmap_name[+]/)
+				{
+					$type_add = 1;#修改的类型第一种，加
+					@ADD_Num=split(/[^0-9\+xa-fA-F]/,$sched);
+					foreach $ADD_Num(@ADD_Num)
+					{
+						if($ADD_Num =~ /\+/)
+						{
+							if($ADD_Num =~ /0x/)
+							{
+								@add_num = split(/\+0x/,$ADD_Num);
+								$add_num1 =@add_num[1];
+								$add_num_begin = "0x".$add_num1;
+								$add_num = hex($add_num1);
+							}
+							else
+							{
+								@add_num = split(/\+/,$ADD_Num);
+								$add_num1 =@add_num[1];
+								$add_num_begin = $add_num1;
+								$add_num = int($add_num1);
+							}
+						}#$add_num是匹配出的需要加的数值，字符串形式
+					}
+				}
+				if($sched =~ /[:] *\t*$Memmap_name/)
+				{
+					$type_exchange = 1;#修改的类型第二种，高低位交换
+				}
+				foreach $memmap(@memmap)
+				{
+					if($memmap =~ /$Memmap_name/ && $memmap !~ /$Memmap_name[\w]+/)
+					{
+						@Memmap=split(/[ \t\n]/,$memmap);
+						$memmap_address=@Memmap[0];
+						$memmap_address =~ s/0x//;
+						if($type_add==1)
+						{
+							$memmap_address_D = hex($memmap_address);
+							$memmap_address_D = $memmap_address_D+$add_num;
+							$memmap_address_H = sprintf("%x", $memmap_address_D);
+							$memmap_address = $memmap_address_H;
+							$memmap_address_add_finish = $memmap_address;
+							$sched_begin =~ s/$Memmap_name\+$add_num_begin/$memmap_address/;
+						}
+						if($type_exchange==1)
+						{
+							$memmap_address_High = substr($memmap_address,0,2);
+							$memmap_address_Low = substr($memmap_address,2,2);
+							$memmap_address = $memmap_address_Low." ".$memmap_address_High;
+							if($type_add==0)
+							{
+								$sched_begin =~ s/$Memmap_name/$memmap_address/;
+							}
+							else
+							{
+								$sched_begin =~ s/$memmap_address_add_finish/$memmap_address/;
+							}
+						}
+					}
+				}
+				$sched_begin =~ s/$Memmap_name/$memmap_address/;
+			}
+		}
+		printf Sched_test ("%s",$sched_begin);
+	}
+	else
+	{
+		printf Sched_test ("%s",$sched_begin);
+	}	
+}
+close(Sched_test);
