Index: costumer/Bore/keyboard_ck801_only_24g/a.bat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/a.bat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/a.bat	(working copy)
@@ -0,0 +1,10 @@
+e pu
+e 8043 00
+
+e hu output/romcode.rom 2000
+e ku
+e pu
+e hu output/ramcode.rom 0
+e pu
+e su output/sched.rom
+e cu
\ No newline at end of file
Index: costumer/Bore/keyboard_ck801_only_24g/do_sdk.bat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/do_sdk.bat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/do_sdk.bat	(working copy)
@@ -0,0 +1,96 @@
+@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
+@rem set device_option=rfbqb
+@rem set device_option=mouse
+@rem set device_option=shutter
+@rem set device_option=shutter_dy
+@rem set device_option=hci
+@rem set device_option=antilost
+@rem set device_option=dongle
+@rem set device_option=module
+@set device_option=keyboard
+@rem set device_option=car
+@rem set device_option=remote_car
+@rem set device_option=mesh
+@rem set device_option=otp
+@rem set device_option=flippen
+@echo off
+
+set now_path=%~dp0
+set util_path=%now_path%util
+
+setlocal enabledelayedexpansion
+copy program\patch_sdk.prog + program\patch.prog  output\bt_program23.meta
+copy format\rom.format + format\labels.format + format\command.format  output\bt_format.meta > nul
+
+::perl util/memalloc.pl output/bt_format.meta
+
+if "%device_option%" equ "hci" (
+  copy sched\hci_boot.dat output\sched.rom
+) else if "%device_option%" equ "keyboard" (
+  copy sched\keyboard.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "mouse" (
+  copy sched\mouse.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "module" (
+  copy sched\DM_module.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "shutter" (
+  copy sched\shutter.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "shutter_dy" (
+  copy sched\shutter_dy.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "antilost" (
+  copy sched\antilost.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "dongle" (
+  copy sched\dongle.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "car" (
+  copy sched\car.dat + sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "remote_car" (
+  copy sched\remote_car.dat + sched\1305.dat output\sched.rom
+ ) else if "%device_option%" equ "mesh" (
+  copy sched\1305.dat +sched\mesh.dat output\sched.rom
+) else if "%device_option%" equ "otp" (
+  copy sched\1305.dat output\sched.rom
+) else if "%device_option%" equ "flippen" (
+  copy sched\mouse.dat + sched\flippen.dat + sched\1305.dat output\sched.rom
+)else  (
+
+cd ..
+echo **********************************
+echo Error: illegal device_option !
+echo **********************************
+goto end
+) 
+
+perl util/mergepatch.pl 
+
+cd output
+osiuasm bt_program23 -O-W
+
+%util_path%/geneep  -n -s -i
+
+echo create auth rom
+perl ../util/mergepatch.pl mouse_ble_att_list usb_kbdata_vendor_define usb_kbdata usb_msdata usb_devicedata usb_confdata ble_shutter_gatt_list ble_shutter_key_value_list ble_car_att_list sha256 
+perl ../util/romcrc.pl romcode.rom
+perl  ../util/mergepatch.pl otp
+
+
+if "%device_option%" equ "keyboard" (
+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
+cd ..\output
+copy eeprom.dat ..\output\flash.dat 
+)
+
+
+:end
+
+
+
Index: costumer/Bore/keyboard_ck801_only_24g/download/download.bat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/download/download.bat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/download/download.bat	(working copy)
@@ -0,0 +1,7 @@
+e pu
+e 8043 00
+e pu
+e otr 0 20
+e otp output/otp.dat 0
+e otr 0 20
+e ku
\ No newline at end of file
Index: costumer/Bore/keyboard_ck801_only_24g/download/output/otp.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/download/output/otp.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/download/output/otp.dat	(working copy)
@@ -0,0 +1,3464 @@
+0b
+00
+02
+00
+00
+00
+00
+00
+00
+00
+00
+8f
+ab
+f1
+00
+3c
+ae
+c6
+03
+78
+5c
+8d
+07
+e0
+71
+35
+1e
+aa
+55
+90
+07
+ca
+22
+e1
+70
+1f
+76
+a5
+f2
+f3
+ad
+40
+42
+3b
+db
+69
+12
+99
+a6
+57
+b5
+f0
+94
+ce
+c9
+6d
+b8
+3c
+72
+b7
+43
+88
+6c
+eb
+6a
+35
+92
+b7
+83
+8e
+36
+3b
+bc
+da
+0a
+65
+94
+ae
+1b
+46
+e4
+60
+ec
+14
+de
+ab
+39
+07
+38
+00
+7f
+28
+07
+8a
+eb
+8a
+75
+0f
+8e
+8e
+63
+9d
+35
+ba
+9f
+15
+72
+24
+aa
+f3
+8d
+63
+20
+c3
+10
+09
+73
+8d
+b0
+f2
+88
+fd
+cd
+1e
+b2
+a2
+72
+a5
+58
+8e
+5b
+af
+40
+07
+15
+39
+d5
+83
+55
+93
+a7
+ac
+cd
+d7
+3c
+32
+62
+b1
+4d
+46
+ef
+cd
+de
+c4
+a8
+b1
+b0
+b1
+23
+a2
+2e
+db
+7e
+d5
+d2
+53
+fa
+ea
+be
+b1
+db
+7f
+77
+d9
+13
+ee
+24
+fb
+f9
+65
+5c
+e5
+8d
+c3
+22
+a3
+68
+0c
+8c
+dc
+24
+3c
+fe
+76
+66
+10
+a5
+0c
+f8
+f1
+ad
+02
+5e
+c0
+08
+5a
+9d
+0d
+a5
+d6
+8a
+eb
+ce
+9e
+a0
+7f
+02
+1f
+f4
+83
+dc
+a7
+20
+b6
+f7
+b6
+a4
+48
+62
+14
+65
+9f
+22
+9d
+9a
+19
+6c
+f3
+1a
+db
+e9
+3e
+4f
+7d
+5e
+73
+54
+b7
+ac
+bf
+52
+47
+8f
+55
+5d
+10
+5f
+69
+fc
+6a
+90
+21
+d3
+3c
+13
+31
+79
+dc
+46
+4c
+41
+32
+c2
+90
+bc
+63
+35
+0b
+20
+5b
+80
+05
+30
+60
+b1
+98
+2d
+60
+0e
+40
+c0
+89
+ab
+76
+17
+48
+45
+d6
+f7
+1a
+8a
+0d
+fe
+b4
+a7
+98
+26
+7a
+10
+2f
+44
+0b
+55
+cf
+16
+c8
+10
+4c
+e1
+10
+98
+ed
+21
+e5
+86
+07
+2b
+d7
+47
+18
+85
+3f
+6e
+1b
+8f
+31
+c2
+53
+cc
+9f
+8f
+fd
+ae
+83
+66
+0e
+23
+e3
+7f
+e9
+13
+e5
+44
+14
+66
+52
+b1
+3f
+4c
+ec
+6d
+af
+81
+69
+b2
+34
+77
+3d
+ae
+4e
+3d
+a5
+81
+29
+f5
+35
+94
+72
+ca
+63
+a9
+9d
+52
+38
+59
+6d
+24
+e5
+e2
+62
+cc
+4e
+2d
+be
+0e
+66
+a5
+08
+c6
+f7
+65
+3c
+a1
+13
+d2
+c6
+2e
+04
+c0
+29
+47
+fa
+ec
+61
+25
+3f
+34
+11
+42
+72
+d6
+80
+5a
+22
+ef
+69
+57
+43
+37
+27
+a9
+13
+36
+9b
+0e
+9b
+1d
+66
+5d
+30
+e2
+e6
+8c
+59
+6a
+42
+73
+f8
+d9
+42
+36
+15
+a1
+00
+0e
+8f
+8c
+89
+0c
+41
+bd
+e6
+aa
+bd
+ef
+f8
+79
+ff
+df
+36
+94
+e1
+89
+fa
+1e
+17
+46
+60
+d5
+ff
+d5
+9e
+2a
+d6
+1b
+e4
+38
+85
+e0
+66
+dc
+db
+ac
+70
+65
+4b
+50
+ca
+be
+a8
+6d
+18
+61
+64
+ed
+8f
+b7
+65
+d4
+89
+fe
+5f
+34
+0a
+a3
+f2
+5c
+fb
+52
+34
+a8
+e3
+16
+99
+d3
+b4
+dc
+de
+30
+22
+c4
+6b
+43
+34
+73
+5c
+8e
+90
+10
+e9
+f4
+c2
+45
+ed
+a3
+60
+3c
+81
+4e
+e3
+eb
+1b
+f6
+95
+21
+3c
+b3
+18
+57
+40
+c0
+be
+ce
+2c
+42
+4c
+25
+66
+80
+01
+2b
+91
+d1
+c1
+43
+4e
+35
+36
+ed
+d4
+f8
+d5
+65
+5b
+c3
+72
+2a
+64
+c4
+6a
+12
+19
+d0
+a6
+8e
+c5
+af
+7f
+86
+e7
+63
+f8
+2d
+63
+c3
+67
+8f
+1f
+4a
+8d
+bf
+c9
+fd
+21
+df
+74
+2d
+98
+c4
+31
+63
+2d
+b1
+26
+64
+59
+ff
+ec
+e5
+5d
+d2
+59
+a3
+15
+b5
+42
+ea
+4c
+58
+c8
+b8
+51
+15
+bd
+50
+53
+c6
+f6
+16
+c0
+f0
+ce
+e8
+25
+c2
+85
+91
+ed
+50
+c0
+7b
+8d
+35
+0f
+d2
+d0
+54
+4b
+fd
+85
+c3
+ba
+95
+c1
+a3
+66
+98
+8c
+ee
+03
+e0
+3a
+0b
+ad
+5f
+04
+0d
+50
+37
+5e
+49
+74
+45
+b2
+49
+79
+76
+8c
+7c
+a9
+47
+0a
+ba
+d1
+b0
+21
+ec
+aa
+23
+e5
+1b
+52
+d8
+65
+ac
+09
+a5
+15
+1f
+45
+04
+4c
+e1
+fd
+4b
+dd
+f0
+58
+a2
+09
+4c
+1f
+1b
+69
+91
+ed
+2e
+0f
+64
+d2
+41
+19
+94
+b1
+dc
+7f
+79
+dc
+c7
+d5
+91
+0c
+4f
+02
+e3
+93
+d5
+f6
+c3
+9a
+e9
+e8
+94
+13
+95
+95
+e2
+dd
+aa
+c7
+54
+95
+9a
+13
+60
+56
+d3
+37
+28
+cd
+0b
+98
+3d
+0b
+41
+4a
+50
+3e
+53
+67
+cc
+f3
+28
+cc
+94
+ef
+72
+96
+3d
+dd
+64
+53
+c9
+14
+ca
+7c
+99
+3e
+9b
+1f
+9f
+f6
+a6
+be
+88
+d1
+86
+a7
+e1
+e6
+74
+f2
+4b
+94
+ea
+f2
+46
+cc
+6d
+26
+2f
+85
+f7
+6a
+23
+ae
+fc
+bd
+1a
+a8
+9a
+ed
+60
+12
+9c
+26
+f2
+ea
+b6
+56
+c3
+13
+a3
+73
+2d
+40
+16
+54
+08
+54
+1f
+9d
+9e
+ec
+6e
+d2
+f9
+d1
+f8
+b0
+a8
+f2
+dc
+a6
+7f
+2c
+c2
+7e
+21
+24
+7f
+d1
+8d
+9a
+c6
+d1
+bf
+78
+38
+11
+1b
+92
+e4
+49
+d3
+e3
+33
+f9
+70
+1f
+a7
+c9
+b2
+49
+62
+ef
+da
+04
+76
+e2
+46
+e8
+83
+fc
+d1
+12
+3d
+b5
+38
+db
+26
+de
+78
+e4
+92
+75
+92
+a4
+c7
+91
+b2
+85
+32
+2e
+7b
+ae
+a0
+32
+54
+88
+6b
+c4
+28
+99
+7a
+16
+84
+9f
+8d
+0b
+f4
+10
+5d
+56
+e7
+15
+a7
+ec
+bf
+ed
+d8
+66
+46
+b7
+72
+4c
+80
+e6
+01
+4e
+0d
+18
+df
+14
+c4
+cf
+27
+46
+c6
+ad
+d6
+57
+19
+aa
+33
+30
+c6
+50
+c1
+67
+32
+0d
+06
+c7
+bb
+a6
+22
+18
+f2
+59
+cb
+04
+bc
+f2
+a7
+ff
+8c
+6c
+6b
+ae
+bf
+de
+13
+0a
+ce
+c3
+d2
+e0
+17
+06
+ab
+a0
+6d
+d1
+f1
+c5
+92
+9e
+4a
+c6
+b6
+2b
+7e
+fb
+91
+13
+b7
+11
+78
+64
+cd
+5d
+80
+45
+a6
+c8
+a7
+a3
+d0
+a4
+86
+5b
+d0
+73
+3b
+3c
+97
+69
+fb
+7e
+12
+05
+30
+02
+dd
+f0
+4d
+97
+8e
+7f
+f4
+06
+35
+85
+eb
+93
+f9
+8e
+e7
+f4
+28
+4a
+91
+da
+90
+b7
+b6
+31
+3c
+ca
+91
+2f
+62
+a8
+3a
+cc
+6d
+75
+2b
+a3
+60
+f3
+0b
+e7
+7e
+51
+8f
+66
+18
+51
+ac
+18
+87
+31
+7b
+b2
+31
+d4
+71
+a4
+e3
+49
+8c
+e9
+f3
+12
+28
+26
+86
+4c
+36
+4b
+d8
+c3
+0b
+79
+bc
+e0
+34
+7f
+9c
+f8
+d8
+de
+4f
+1c
+8f
+9e
+76
+54
+58
+fd
+60
+fc
+1b
+65
+3c
+75
+9c
+fd
+7d
+01
+df
+da
+12
+b0
+25
+0f
+ce
+a8
+58
+2d
+36
+97
+df
+54
+55
+37
+29
+65
+8f
+9f
+08
+c4
+cb
+18
+54
+7b
+8e
+5f
+b4
+84
+49
+c7
+f4
+47
+fe
+60
+3b
+9e
+b0
+ff
+0c
+c0
+41
+d0
+45
+e0
+ae
+32
+bc
+01
+b7
+85
+96
+48
+5b
+a6
+69
+fb
+36
+16
+b9
+8a
+6d
+26
+b2
+77
+1b
+a7
+17
+3c
+80
+91
+9d
+d1
+53
+03
+3d
+dd
+1e
+75
+1c
+e5
+7d
+8e
+5b
+c4
+b0
+8a
+a1
+2a
+20
+e6
+ad
+7d
+a4
+93
+b4
+ef
+dc
+bf
+13
+8d
+ec
+a7
+f6
+1b
+5e
+da
+99
+7d
+c7
+76
+76
+c0
+a5
+3d
+b2
+fd
+65
+4c
+01
+91
+ef
+09
+a5
+d8
+c8
+83
+71
+c3
+45
+e4
+cb
+10
+2c
+7e
+45
+1b
+29
+82
+22
+0d
+1b
+ed
+40
+76
+18
+e2
+b0
+68
+c5
+a4
+70
+2b
+4d
+ea
+b2
+de
+82
+5d
+e7
+1b
+72
+09
+e9
+a2
+ec
+07
+c2
+d4
+52
+05
+50
+f3
+3b
+57
+02
+a0
+40
+58
+05
+28
+65
+53
+5a
+ef
+83
+de
+41
+39
+66
+7e
+08
+c6
+b9
+5c
+34
+17
+ee
+70
+58
+01
+b0
+88
+27
+49
+65
+db
+12
+7b
+18
+47
+0e
+09
+15
+93
+16
+20
+b1
+a4
+e3
+a3
+ed
+fc
+7d
+1e
+88
+fb
+8a
+5f
+d6
+3b
+00
+68
+73
+5c
+b3
+b7
+e1
+36
+f3
+08
+d9
+b2
+7d
+2e
+10
+36
+8d
+aa
+21
+f7
+e0
+85
+6f
+cc
+df
+c7
+77
+01
+c9
+55
+59
+3d
+da
+10
+47
+80
+c8
+2e
+db
+2d
+56
+19
+9f
+7a
+aa
+df
+a6
+cd
+e9
+54
+f6
+3b
+a1
+46
+83
+7e
+a0
+26
+96
+1b
+e7
+41
+e2
+8a
+ad
+4e
+da
+19
+da
+9d
+80
+b0
+01
+38
+5f
+21
+ac
+22
+45
+ce
+fc
+c8
+52
+87
+8a
+a7
+ce
+28
+a1
+dc
+cf
+70
+b8
+2d
+72
+92
+90
+d9
+63
+d3
+b6
+2e
+2b
+87
+75
+d4
+99
+4e
+67
+d8
+67
+14
+26
+c2
+50
+de
+b8
+64
+18
+3b
+79
+a8
+1f
+75
+a6
+b7
+7b
+40
+93
+14
+26
+8d
+9c
+40
+49
+64
+e0
+5e
+69
+1a
+f6
+7e
+41
+9d
+5e
+02
+e1
+f8
+a5
+d6
+8b
+b4
+70
+11
+10
+d0
+fa
+f8
+8b
+d6
+fd
+62
+35
+a8
+6c
+8b
+c9
+67
+02
+0f
+aa
+ea
+52
+bf
+7e
+6e
+4a
+31
+30
+3c
+44
+3d
+86
+aa
+77
+4a
+6b
+18
+60
+1d
+17
+c7
+f7
+91
+98
+2d
+02
+b0
+3e
+94
+c5
+00
+11
+67
+e1
+74
+af
+0e
+37
+39
+1d
+9b
+c8
+93
+4e
+bb
+ca
+76
+3a
+be
+ba
+26
+6c
+39
+1d
+30
+2a
+86
+31
+4c
+22
+ae
+dc
+f0
+32
+c1
+f6
+a8
+3e
+6f
+a4
+fc
+d3
+4b
+d9
+c3
+38
+81
+a0
+77
+1e
+81
+d8
+f1
+63
+57
+c4
+28
+97
+af
+dc
+85
+36
+28
+05
+c9
+4d
+12
+b0
+04
+5d
+05
+b8
+fe
+a9
+3d
+f0
+44
+fd
+09
+ca
+85
+d4
+22
+f2
+94
+e2
+b7
+32
+31
+a0
+d3
+52
+75
+09
+f4
+f4
+59
+48
+07
+6d
+cf
+7c
+b8
+b3
+8c
+f2
+45
+30
+a3
+bd
+82
+4e
+f8
+1c
+dc
+16
+2b
+08
+1e
+bc
+d9
+f4
+9d
+61
+6d
+ac
+c8
+1a
+2f
+86
+ce
+01
+d4
+08
+63
+1a
+61
+63
+9b
+d7
+75
+10
+77
+eb
+8b
+97
+12
+12
+76
+7e
+f2
+0f
+a7
+e8
+86
+ac
+ba
+cb
+6c
+71
+6d
+4e
+c3
+c5
+1f
+61
+97
+6f
+fa
+54
+cd
+26
+e9
+c2
+42
+77
+a1
+82
+b3
+5d
+10
+0a
+a3
+cf
+88
+b0
+77
+3f
+04
+c4
+b4
+39
+cf
+59
+4a
+09
+a0
+7a
+f8
+ab
+aa
+48
+08
+39
+e7
+20
+8f
+9f
+87
+95
+8d
+1e
+30
+66
+aa
+2e
+21
+be
+54
+5e
+5d
+a1
+a7
+97
+45
+0a
+10
+ea
+2b
+f6
+c9
+bc
+be
+41
+99
+1e
+2e
+31
+94
+be
+57
+d1
+74
+df
+1f
+1b
+77
+61
+49
+ae
+58
+70
+ac
+78
+09
+f0
+c4
+34
+a7
+61
+27
+fc
+94
+4d
+b8
+2c
+d2
+70
+87
+dd
+32
+dd
+a3
+2c
+00
+88
+a5
+0b
+98
+ab
+4e
+ae
+0d
+5d
+9f
+bb
+69
+5c
+99
+c0
+71
+30
+a7
+62
+11
+58
+5a
+6f
+93
+e2
+60
+47
+37
+ed
+e5
+bb
+60
+56
+29
+c4
+3e
+1d
+b2
+e9
+2b
+2a
+39
+2b
+03
+ab
+46
+da
+65
+98
+07
+7d
+80
+ee
+8b
+b7
+43
+98
+11
+67
+41
+8d
+3f
+99
+f6
+91
+67
+74
+52
+89
+72
+6d
+85
+cb
+30
+95
+d5
+45
+f0
+c3
+20
+a6
+32
+96
+83
+69
+2b
+2e
+a7
+c9
+4f
+0a
+0d
+b9
+de
+23
+f1
+43
+aa
+55
+40
+00
+00
+40
+00
+00
+00
+06
+00
+01
+00
+40
+19
+10
+40
+12
+00
+04
+00
+10
+04
+00
+00
+00
+00
+00
+00
+00
+00
+80
+00
+00
+00
+06
+00
+04
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+04
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+08
+00
+8e
+48
+00
+89
+0d
+00
+00
+06
+00
+00
+aa
+55
+01
+00
+cf
+43
+0f
+aa
+55
+01
+00
+8d
+48
+01
+aa
+55
+02
+00
+da
+4a
+a3
+e4
+aa
+55
+01
+00
+03
+45
+ff
+aa
+55
+01
+00
+02
+45
+1e
+aa
+55
+01
+00
+05
+45
+01
+aa
+55
+01
+00
+41
+41
+01
+aa
+55
+01
+00
+e9
+45
+07
+aa
+55
+02
+00
+07
+46
+43
+47
+aa
+55
+02
+00
+57
+46
+85
+90
+aa
+55
+02
+00
+5a
+46
+75
+80
+aa
+55
+01
+00
+59
+46
+63
+aa
+55
+01
+00
+3e
+46
+7d
+aa
+55
+09
+00
+d1
+4a
+01
+51
+31
+10
+50
+51
+31
+20
+50
+aa
+55
+06
+00
+08
+45
+03
+11
+36
+55
+51
+61
+aa
+55
+01
+00
+a0
+45
+02
+aa
+55
+05
+00
+fa
+45
+01
+0f
+0f
+0f
+0f
+aa
+55
+01
+00
+d0
+45
+00
+aa
+55
+01
+00
+38
+47
+02
+aa
+55
+01
+00
+e1
+45
+00
+aa
+55
+02
+00
+a2
+45
+c0
+12
+aa
+55
+01
+00
+55
+46
+9e
+aa
+55
+03
+00
+c6
+45
+00
+48
+60
+aa
+55
+02
+00
+34
+46
+0a
+00
+aa
+55
+02
+00
+32
+46
+50
+00
+aa
+55
+02
+00
+1c
+47
+32
+00
+aa
+55
+01
+00
+06
+47
+02
+aa
+55
+08
+00
+c4
+43
+fb
+00
+48
+08
+fb
+00
+48
+08
+aa
+55
+01
+00
+94
+40
+01
+aa
+55
+01
+00
+c0
+40
+10
+aa
+55
+01
+00
+8b
+48
+10
+aa
+55
+06
+00
+dd
+42
+73
+83
+92
+a1
+b1
+c1
+aa
+55
+01
+00
+97
+43
+07
+aa
+55
+02
+00
+7d
+47
+96
+00
+aa
+55
+02
+00
+74
+47
+15
+00
+aa
+55
+02
+00
+9f
+43
+19
+00
+aa
+55
+04
+00
+76
+47
+1d
+00
+21
+00
+aa
+55
+02
+00
+34
+43
+28
+00
+aa
+55
+02
+00
+7a
+47
+30
+00
+aa
+55
+0c
+00
+4c
+43
+1f
+02
+01
+05
+03
+03
+12
+18
+03
+19
+c1
+03
+aa
+55
+07
+00
+5f
+47
+06
+ff
+06
+00
+03
+00
+80
+aa
+55
+15
+00
+6c
+43
+1f
+13
+09
+42
+6c
+75
+65
+74
+6f
+6f
+74
+68
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+13
+00
+6d
+42
+12
+42
+6c
+75
+65
+74
+6f
+6f
+74
+68
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+08
+00
+d5
+42
+08
+00
+08
+00
+20
+00
+2c
+01
+aa
+55
+06
+00
+59
+47
+03
+12
+18
+ff
+00
+00
+aa
+55
+09
+00
+01
+49
+41
+70
+70
+6c
+65
+20
+49
+6e
+63
+aa
+55
+02
+00
+ff
+48
+0a
+18
+aa
+55
+10
+00
+ee
+48
+d0
+00
+2d
+12
+1e
+4b
+0f
+a4
+99
+4e
+ce
+b5
+31
+f4
+05
+79
+aa
+55
+02
+00
+0a
+49
+c1
+03
+aa
+55
+08
+00
+ce
+48
+01
+02
+e8
+04
+21
+70
+01
+00
+aa
+55
+16
+00
+d8
+48
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+24
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+aa
+55
+01
+00
+1d
+44
+02
+aa
+55
+01
+00
+1f
+44
+0a
+aa
+55
+01
+00
+1e
+44
+0d
+aa
+55
+01
+00
+27
+44
+00
+aa
+55
+04
+00
+23
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+b1
+48
+00
+aa
+55
+01
+00
+c1
+4a
+1e
+aa
+55
+02
+00
+1a
+47
+02
+00
+aa
+55
+01
+00
+54
+46
+64
+aa
+55
+02
+00
+51
+46
+58
+02
+aa
+55
+01
+00
+19
+47
+64
+aa
+55
+01
+00
+53
+46
+64
+aa
+55
+02
+00
+4f
+46
+08
+07
+aa
+55
+02
+00
+1e
+47
+50
+46
+aa
+55
+02
+00
+c7
+4a
+64
+00
+aa
+55
+01
+00
+cd
+4a
+05
+aa
+55
+01
+00
+ca
+4a
+05
+aa
+55
+02
+00
+a1
+49
+b8
+0b
+aa
+55
+08
+00
+78
+46
+00
+34
+00
+00
+00
+00
+00
+00
+aa
+55
+01
+00
+16
+47
+01
+aa
+55
+0f
+00
+97
+48
+00
+7f
+1e
+00
+7f
+1f
+00
+7f
+20
+00
+7f
+21
+00
+7f
+22
+aa
+55
+07
+00
+ba
+48
+07
+01
+02
+04
+03
+05
+06
+aa
+55
+02
+00
+c8
+48
+50
+00
+aa
+55
+02
+00
+c3
+4a
+58
+02
+aa
+55
+06
+00
+b2
+48
+13
+01
+a0
+0f
+00
+1e
+aa
+55
+03
+00
+1c
+49
+ff
+ff
+ff
+aa
+55
+01
+00
+7f
+4a
+01
+aa
+55
+01
+00
+0f
+49
+ff
+aa
+55
+06
+00
+95
+4a
+7f
+ff
+29
+14
+2a
+10
+aa
+55
+03
+00
+3e
+44
+ff
+ff
+ff
+aa
+55
+02
+00
+f4
+43
+10
+00
+aa
+55
+03
+00
+fe
+46
+00
+50
+00
+aa
+55
+02
+00
+bf
+4a
+20
+03
+aa
+55
+09
+00
+13
+49
+8c
+89
+ff
+ff
+8a
+8a
+ff
+ff
+ff
+aa
+55
+03
+00
+10
+49
+0b
+0d
+ff
+aa
+55
+01
+00
+66
+46
+05
+aa
+55
+0c
+00
+3c
+49
+c2
+c3
+c4
+c5
+c6
+c7
+80
+81
+82
+83
+84
+85
+aa
+55
+1c
+00
+1f
+49
+08
+07
+06
+04
+03
+00
+01
+02
+13
+c6
+c5
+c4
+c3
+c2
+80
+c7
+0f
+12
+0e
+84
+83
+82
+81
+85
+14
+15
+ff
+ff
+aa
+55
+90
+00
+c7
+49
+48
+00
+00
+00
+e4
+00
+e0
+3e
+14
+2b
+04
+29
+1d
+8b
+35
+1e
+1a
+39
+16
+64
+1b
+8a
+3a
+1f
+08
+3c
+07
+3d
+06
+88
+3b
+20
+15
+17
+09
+0a
+19
+05
+22
+21
+18
+1c
+0d
+0b
+10
+11
+23
+24
+0c
+30
+0e
+3f
+36
+87
+2e
+25
+12
+40
+0f
+00
+37
+65
+41
+26
+13
+2f
+33
+34
+32
+38
+2d
+27
+47
+00
+7f
+e2
+00
+e6
+00
+46
+89
+2a
+31
+44
+28
+45
+42
+43
+5f
+5c
+59
+2c
+53
+51
+4c
+00
+60
+5d
+5a
+62
+54
+4f
+49
+00
+61
+5e
+5b
+63
+55
+56
+4b
+4e
+57
+85
+58
+52
+e9
+50
+4a
+4d
+00
+e1
+e5
+ed
+ee
+ec
+eb
+e8
+f1
+e3
+f6
+f8
+f7
+f9
+ef
+fa
+91
+f5
+e7
+f0
+ea
+f2
+fb
+90
+aa
+55
+0f
+00
+84
+4a
+00
+29
+e8
+e9
+ea
+eb
+ec
+ed
+ee
+ef
+f0
+f1
+f2
+af
+4c
+aa
+55
+01
+00
+94
+4a
+29
+aa
+55
+b1
+00
+e8
+4a
+af
+00
+05
+01
+09
+06
+a1
+01
+85
+02
+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
+26
+ff
+00
+05
+07
+19
+00
+29
+ff
+81
+00
+c0
+05
+0c
+09
+01
+a1
+01
+85
+03
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+c0
+05
+01
+09
+80
+a1
+01
+85
+04
+15
+00
+25
+01
+75
+01
+95
+03
+19
+81
+29
+83
+81
+02
+95
+01
+75
+05
+81
+03
+c0
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+35
+3f
+64
+db
+7b
+3b
+aa
+55
+01
+00
+a7
+40
+20
+aa
+55
+03
+00
+c9
+40
+00
+08
+b4
+aa
+55
+01
+00
+99
+40
+18
+aa
+55
+01
+00
+1c
+41
+7f
+aa
+55
+0c
+00
+16
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+aa
+55
+05
+00
+60
+41
+08
+0e
+05
+03
+00
+aa
+55
+01
+00
+6a
+41
+20
+aa
+55
+02
+00
+9a
+40
+00
+10
+aa
+55
+05
+00
+43
+41
+ff
+04
+00
+00
+08
+aa
+55
+01
+00
+4f
+44
+a0
+aa
+55
+02
+00
+52
+44
+bc
+02
+aa
+55
+02
+00
+50
+44
+90
+01
+aa
+55
+02
+00
+54
+44
+03
+09
+aa
+55
+01
+00
+49
+41
+ff
+aa
+55
+02
+00
+9c
+40
+49
+41
+55
+aa
+aa
+55
+94
+95
+e1
+7f
Index: costumer/Bore/keyboard_ck801_only_24g/format/command.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/format/command.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/format/command.format	(working copy)
@@ -0,0 +1,1446 @@
+
+/* 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
+  ! 0x13 idiv48           /* pdata div regr data 48bit */
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 17                   /* 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
+  ! 0x13 bcrc         // calculate regr's byte crc value into pdata
+  % regr
+  [5] opcode
+  [6] regr
+  [6] 24
+  [6] 63
+  [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
+  ! 0x0d fetch          /* read from memory, data into pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 63
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d fetcht          /* read from memory, data into temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 2
+  [1] addr
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1d ifetch         /* read from memory, data into pdata, address from regr then mem_ptr */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] 63
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] reg
+end
+
+format
+  ! 0x1d ifetcht         /* read from memory, data into temp, address from regr won't increment */
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] 2
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] reg
+end
+
+format
+  ! 0x0c store          /* write to memory, data from pdata, address from immediate then mem_ptr */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 63
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0c storet          /* write to memory, data from temp, address from immediate won't increment */
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 2
+  [1] addr
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1c istore        /* write pdata to memory, address from regaddr */
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] 63            
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+format
+  ! 0x1c istoret        /* write temp to memory, address from regaddr */
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] 2            
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+
+format
+  ! 0x0d crc         // read from memory, count from loopcnt, put crc result into pdata 
+  % addr
+  [5] opcode
+  [6] 63
+  [6] 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] 63
+  [15] 0
+  [6] reg
+end
+
+
+format
+  ! 0x0c storer          /* write reg to memory, address from immediate then mem_ptr */
+  % reg
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] reg               
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+
+format
+  ! 0x1c istorer        /* write regr to memory, address from regaddr */
+  % regr
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] regr            
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+
+format
+  ! 0x1c lstorer        /* write regr to memory, address from regaddr, length from loopcnt */
+  % regr
+  % regaddr
+  [5] opcode
+  [6] regr            
+  [6] 0
+  [9] 0
+  [6] regaddr
+end
+
+format
+  ! 0x1c lstore        /* write pdata to memory, address from regaddr, length from loopcnt */
+  % regaddr
+  [5] opcode
+  [6] 63            
+  [6] 0
+  [9] 0
+  [6] regaddr
+end
+
+format
+  ! 0x1c lstorew        /* 32bit write pdata to memory, address from regaddr, length from loopcnt */
+  % regaddr
+  [5] opcode
+  [6] 63
+  [6] 42
+  [9] 0
+  [6] regaddr
+end
+
+
+format
+  ! 0x0d fetchr          /* read reg from memory, address from immediate then mem_ptr */
+  % reg
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] reg               
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1d ifetchr        /* read regr from memory, address from regaddr */
+  % regr
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] regr
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+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 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
+  ! 0x13 imults           /* pdata mult regr 32x32=64bit, signed */  
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 16
+  [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
+
+format
+  ! 0x13 adpcm         // encode adpcm from regr into regw
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 43
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 pcm         // decode adpcm from regr into regw
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 44
+  [6] regw
+  [9] 0
+end
+
+
Index: costumer/Bore/keyboard_ck801_only_24g/format/labels.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/format/labels.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/format/labels.format	(working copy)
@@ -0,0 +1,4128 @@
+0x2000 start
+0x2001 soft_reset
+0x200e main_loop
+0x2018 connection_dispatch
+0x201d connection_incontext
+0x2025 connection_nosniff
+0x202a idle_dispatch
+0x2031 idle_exit
+0x2033 idle_le_create_conn
+0x2036 context_load
+0x2041 context_save
+0x2047 context_get_next
+0x2049 context_get_next_loop
+0x204d context_get_next_cont
+0x2054 context_get_next_sniff
+0x2056 context_new
+0x205d context_check_idle
+0x205f context_search_conn_handle
+0x2060 context_search_conn_handle2
+0x2062 context_search_plap
+0x2064 context_search_plap2
+0x2066 context_search_insniff
+0x2068 context_search_sniff_window
+0x2069 context_search
+0x206c context_search_loop
+0x206e context_search_next
+0x2073 context_search_empty
+0x2075 context_search_lap
+0x2076 context_search_lap_cont
+0x207b context_search_handle
+0x2081 context_search_sniff
+0x2082 context_search_sniff_loop
+0x2090 context_search_sniff_sc
+0x2093 context_search_meet1
+0x2094 context_search_meet
+0x2097 context_search_sniff_miss
+0x209d sign_pdata_temp
+0x20a7 sign_pdata_temp_p0
+0x20ad context_check_inconn
+0x20af context_check_a_wack
+0x20b4 context_get_anchor
+0x20c0 context_next_anchor
+0x20c7 context_search_window
+0x20cf end_of_packet
+0x20dc sniff_check_window
+0x20e4 calc_slot_offset
+0x20ee calc_bt_portion
+0x20f0 calc_slot_offset_loop
+0x20f2 calc_skip_bt
+0x20f7 calc_clke_offset
+0x2105 calc_clke_pos
+0x2107 calc_clke
+0x2109 calc_clke2
+0x2113 calc_clke_pos2
+0x2115 calc_clke_pos_adj
+0x2117 qsetxor
+0x211c qset1_p
+0x211d qset_start
+0x211e qset_p
+0x2122 rx_dcoc_avg
+0x2123 btdma
+0x212f rx_dcoc_loop
+0x2135 rx_dcoc
+0x2148 rx_dcoc_loop2
+0x2155 shutdown_radio
+0x2164 set_sync_on
+0x2173 set_freq_rx
+0x217d aac_res_lookup
+0x218b aac_res_lookup_end
+0x218d set_lemode_2m_16m
+0x2190 set_lemode_1m_16m
+0x2193 set_lemode
+0x219b set_lemode_2m
+0x21a6 set_lemode_1m
+0x21aa rf_rx_enable
+0x21be rf_rx_agc_set
+0x21c5 rf_rx_enable_no_soft_agc
+0x21ca set_freq_tx_int
+0x21d4 calc_freq
+0x21ee ghp_lookup
+0x21f4 ghp_1m
+0x21ff set_freq_tx
+0x2202 txon
+0x2212 set_tx_power
+0x221d set_tx_power_0db
+0x2220 set_tx_power_8a63_28
+0x2222 set_tx_power_3db
+0x2225 set_tx_power_8a63_2f
+0x2227 set_tx_power_5db
+0x222b set_tx_power_7db
+0x222f set_tx_power_10db
+0x2234 set_tx_power_f3db
+0x2238 set_tx_power_f5db
+0x223c set_tx_power_f10db
+0x2240 set_tx_power_f20db
+0x2244 initialize_radio
+0x2245 initialize_radio_wait
+0x2249 initialize_radio_loop
+0x224f initialize_radio_cont
+0x2266 initialize_radio2
+0x2276 initialize_radio_16m
+0x2281 set_xtal_cap
+0x2287 rfpll_aac_ghpc
+0x2293 rfpll_aac_ghpc_once
+0x2296 rfpll_cal_loop
+0x229d dpll_on
+0x22a3 dpll_on_24m
+0x22ab aac_ghpc
+0x22af wait_cal_done
+0x22be aac_ghpc_1m
+0x22c5 read_cal_result
+0x22cb dpll_ring_ibias_calc
+0x22cd save_rssi
+0x22e1 save_rssi_store
+0x22e3 byte_sign_extern
+0x22e8 rssi_hex2dec
+0x22ec bcd
+0x22f3 gain_control
+0x2312 add_negative
+0x231a gain_increase
+0x231e gain_descend
+0x2321 set_rx_gain2
+0x2323 set_rx_gain0
+0x2325 set_rx_gain1
+0x2327 ahead_window
+0x2336 get_clk
+0x233a get_clkbt
+0x233e assert
+0x2340 sleep
+0x2343 sleep_loop
+0x2347 init_param
+0x2369 lpmstate
+0x2377 lpmwake
+0x2383 power_up
+0x2384 boot_load
+0x2387 lpm_poweron_retmem
+0x2397 xtal_fast_wake
+0x239c lpm_write_lock
+0x23a5 lpm_write_ice_disable
+0x23a9 lpm_write_ice_enable
+0x23ad lpm_preon_counter
+0x23af lpm_write_3bytes
+0x23b1 lpm_write_mpu_s0
+0x23b2 lpm_write_dword
+0x23b3 lpm_write_loop
+0x23b8 lpm_write_mpu_s1
+0x23ba lpm_disable_exen_output
+0x23be lpm_disable_io_dozed
+0x23c2 lpm_save_sel_hv
+0x23c3 lpm_write_sel_hv
+0x23c4 lpm_write_wait
+0x23c7 lpm_write_io_vsel
+0x23c9 lpm_load_context
+0x23d7 lpm_save_context
+0x23e1 lpm_write_gpio_wakeup
+0x23e5 lpm_write_gpio_loop
+0x23eb lpm_write_gpio_loop_next
+0x23f0 lpo_calibration
+0x23f7 lpo_cal_inited
+0x23fc lpm_doze
+0x23ff lpm_hibernate
+0x2406 lpm_sleep
+0x2409 lpm_sleep_skip_cb_function
+0x2417 lpm_sleep_loop
+0x241d lpm_enter_sleep
+0x2421 lpm_recover_clk
+0x242a lpm_recover_xtal
+0x242c lpm_recover_timeout
+0x2449 lpm_adjust_clk
+0x245d lpm_adjust_positive
+0x2460 lpm_clear_counter
+0x2463 lpm_dispatch
+0x246d lpm_dispatch_next
+0x248b lpm_dispatch_sleep
+0x248c lpm_dispatch_lpo
+0x2494 lpm_dispatch_unconn
+0x2498 lpm_unconn_cont
+0x249a lpm_sleep_btclk
+0x249f lpm_mult_wait_timeout
+0x24a9 lpm_match
+0x24ae lpm_lost
+0x24b7 lpm_mult_short
+0x24bb lpm_mult_long
+0x24be lpm_get_wake_lock
+0x24c2 lpm_put_wake_lock
+0x24c6 lpm_check_wake_lock
+0x24d8 lpm_uart_wake_lock
+0x24dd le_init_conn
+0x24f0 le_init_master
+0x24fc le_init_slave
+0x250d le_conn_dispatch
+0x2516 le_master_dispatch
+0x2524 le_master_disconn
+0x2525 le_disable_master
+0x2527 le_slave_dispatch
+0x2538 le_slave_crc_fail
+0x2538 le_slave_match
+0x2547 le_slave_cont
+0x254d le_slave_unsync
+0x2551 le_check_md
+0x2555 le_slave_more_data
+0x255b le_slave_disconn
+0x255b le_disconnect
+0x2562 le_clear_connection_info
+0x2567 le_clear_pairing_state
+0x256c le_got_first_packet
+0x2579 le_enable_phy_by_pdata
+0x257b le_enable_phy_by_pdata1
+0x2582 le_enable_2m
+0x2585 le_enable_coded_s2
+0x2585 le_enable_coded
+0x2589 le_enable_coded_s8
+0x258d le_enable
+0x2591 le_disable
+0x2597 le_prep
+0x259d le_prep_next
+0x25a1 le_rx_setfreq
+0x25a2 le_rf_rx_enable
+0x25a6 le_tx_setfreq
+0x25a8 le_tx_setfreq0
+0x25aa le_setfreq
+0x25b7 le_ctf_normal
+0x25ba le_ctf_low
+0x25bd le_ctf_test
+0x25c0 le_sca_map
+0x25d0 le_setup
+0x25d9 le_setup_master
+0x25de le_context_nextevent
+0x25ef le_context_nexthop
+0x25f7 le_nexthop_nowrap
+0x25f9 le_calc_channel_map
+0x25fd le_count_channels_loop
+0x25ff le_count_channels_notused
+0x2605 le_map_channel
+0x260b le_map_channel_next
+0x2610 le_map_channel_cont
+0x2612 le_map_channel_loop
+0x2615 le_map_channel_skip
+0x261a le_map_channel_end
+0x261d le_wait_tx
+0x2620 le_wait_master
+0x2623 le_receive_adv
+0x2627 le_receive_slave
+0x262d le_receive_packet
+0x262e le_receive_rxon
+0x2635 le_receive_nolr
+0x263e le_receive_on_attempt
+0x264b le_receive_skip
+0x2657 le_rx_loop
+0x265c le_rx_dec
+0x2668 le_rx_dec_loop
+0x266f le_rx_dec_loop_end
+0x2671 le_rx_nopayload
+0x2683 le_rx_match
+0x2686 le_crc_fail_tx
+0x268d le_match_set_sync_on
+0x268f le_match_set_txfreq
+0x2692 le_dec_init
+0x2697 le_dec_start
+0x26ab le_pcnt_rx_sub1
+0x26b0 le_pcnt_rx_sub1_0
+0x26b5 le_dec
+0x26bd le_dec_end
+0x26c6 le_retransmit_end_of_packet
+0x26c9 le_crc_fail
+0x26ce le_unsync_end
+0x26ce le_crc_fail_consecutive
+0x26d0 le_end_of_packet
+0x26d3 calc_clke_all_modem
+0x26dd calc_clke_all_modem_1
+0x26e3 calc_clke_modem_coded
+0x26e7 calc_clke_modem_2m
+0x26eb le_set_until_tx_timer
+0x26f2 le_set_until_tx_timer_rx_lr
+0x26f4 le_set_until_tx_timer_rx_1m
+0x26f5 le_set_until_tx_timer_rx_2m
+0x26f7 le_set_until_tx_timer_rx_coded_s2
+0x26fa le_set_until_tx_timer_rx_coded_s8
+0x26fc le_set_until_tx_timer_rx_coded
+0x26ff le_calc_stop_watch
+0x2707 le_transmit_receive_sifs_without_change_mode
+0x270e le_transmit_receive_sifs
+0x2712 le_transmit_receive_sifs_notx
+0x271c le_transmit_norx
+0x271f le_transmit
+0x272f le_transmit_packet
+0x273c le_transmit_packet_not_enc
+0x273d le_tr_loop
+0x2740 le_tr_nopayload
+0x2747 le_transmit_skip
+0x274e le_check_start_pause_enc
+0x2757 le_transmit_packet_enc
+0x275b le_transmit_packet_enc_loop
+0x2762 le_transmit_lr
+0x2763 le_transmit_lr_preamble_loop
+0x276d le_transmit_lr_s2
+0x2771 le_transmit_lr_s8
+0x2774 le_transmit_2m
+0x2780 le_update_param
+0x2784 le_update_param_ahead1_cb
+0x279a le_update_param_cb
+0x27a2 le_update_channel_map
+0x27a6 le_update_channel_map_cb
+0x27ab le_update_phy
+0x27af le_update_phy_cb
+0x27bc le_update_phy_cb_m2s
+0x27c4 le_update_phy_cb_m2s_no_change
+0x27ca le_update_phy_cb_s2m
+0x27d3 le_update_phy_cb_s2m_no_change
+0x27d9 le_check_update_flag
+0x27e7 le_update_ahead1
+0x27e9 le_update
+0x27ee le_check_update_small
+0x27fa le_check_retransmit
+0x2801 le_acknowledge
+0x281a le_ack_unenc
+0x2828 le_check_wak
+0x2835 le_set_enc
+0x283a le_clear_enc
+0x2846 le_scan_check_sender_addr_type
+0x284b le_get_master_rx_max
+0x284f le_prepare_tx
+0x2870 le_check_tx_md
+0x2877 le_check_continue
+0x2880 le_set_md
+0x2882 le_clear_md
+0x2884 le_update_tx_type
+0x2888 le_att_check_notification_enable
+0x2894 le_send_empty
+0x2896 le_send_packet
+0x28a6 le_send_no_txlen
+0x28ac le_send_packet_enc
+0x28ae get_lpm_wake_ble_rx_lock
+0x28b0 put_lpm_wake_ble_rx_lock
+0x28b2 le_parse
+0x28c0 le_parse_l2cap
+0x28cd le_check_l2cap_complete
+0x28d1 le_check_l2cap_cid_legal
+0x28dc le_check_l2cap_llid_start
+0x28ef le_check_l2cap_continue_legal
+0x28f3 le_check_l2cap_llid_continue
+0x2908 le_writeatt_cb
+0x290a le_supervision_update
+0x2914 le_supervision_flush
+0x2917 le_receive_window_size
+0x2931 le_modified_name
+0x2934 le_modified_name_att_list
+0x2945 le_name_length_longer_than_att
+0x2948 le_modified_name_adv
+0x2955 le_modified_name_adv_and_scan
+0x2967 le_modified_name_adv_and_scan_store_data
+0x296d le_modified_name_adv_and_scan_name_overflow
+0x296f le_modified_name_adv_loop
+0x297a le_modified_name_adv_loop2
+0x297e le_modified_name_adv_found_name
+0x2980 memcpy_empty
+0x2984 le_lpm_set_mult
+0x2988 le_lpm_set_mult_attempt
+0x2997 le_lpm_lost
+0x29a0 le_set_config_fixed_tk
+0x29a2 le_clr_config_fixed_tk
+0x29a4 le_set_config_fixed_ltk
+0x29a6 le_clr_config_fixed_ltk
+0x29a8 le_set_config_more_data
+0x29aa le_clr_config_more_data
+0x29ac le_set_config_read_authentication
+0x29ae le_clr_config_read_authentication
+0x29b0 le_set_config_write_authentication
+0x29b2 le_clr_config_write_authentication
+0x29b4 le_set_config_short_mult
+0x29b5 le_set_config
+0x29b9 le_clr_config_short_mult
+0x29ba le_clr_config
+0x29be le_set_fixed_ltk
+0x29ca le_set_justwork
+0x29d0 le_fifo_malloc_tx_empty
+0x29d3 le_fifo_malloc_tx_ll
+0x29d9 le_fifo_malloc_tx_l2cap
+0x29e3 le_fifo_malloc_tx
+0x29ee le_fifo_get_first_tx_ptr
+0x29f2 le_fifo_get_second_tx_ptr
+0x29f4 le_fifo_get_last_tx_ptr
+0x29f7 le_fifo_get_last_tx_ptr0
+0x29f9 le_fifo_get_first_l2cap_ptr
+0x29fc le_fifo_get_first_att_ptr
+0x29ff le_fifo_get_last_att_ptr
+0x2a02 le_fifo_get_last_l2cap_ptr
+0x2a05 le_fifo_check_full
+0x2a06 le_fifo_check_nearly_full
+0x2a07 le_fifo_check_empty
+0x2a08 le_fifo_release_first_node
+0x2a09 le_set_dle
+0x2a0b le_set_phys
+0x2a0e le_set_rx_phy
+0x2a10 le_set_tx_phy
+0x2a11 le_set_phy_common
+0x2a16 le_set_feature_2m_phy
+0x2a18 le_set_feature_coded_phy
+0x2a1a le_set_feature_data_packet_length_extension
+0x2a1b le_set_feature
+0x2a1f le_set_fixed_ltk_justwork
+0x2a23 le_advertising_dispatch
+0x2a2d le_scan
+0x2a4c le_wait_adv
+0x2a53 le_create_conn
+0x2a66 le_connect_request
+0x2a71 le_con_req_hop_retry
+0x2aad le_adv
+0x2ab2 le_adv_loop
+0x2ac4 le_adv_not_match
+0x2ad4 le_send_adv_protect_txbuf
+0x2ad7 le_send_adv_recover_txbuf
+0x2ada le_init_adv
+0x2adc le_adv_access
+0x2ae3 le_send_adv_ind
+0x2af4 le_send_adv_direct_ind
+0x2afa le_send_adv_transmit
+0x2b01 le_send_scan_request
+0x2b12 le_send_scan_response
+0x2b25 le_parse_connect_req
+0x2b4d le_next_adv_channel
+0x2b52 le_next_adv_channel_curr_channel_39
+0x2b57 set_le_next_adv_channel_39
+0x2b5a set_le_adv_channel_map_temp
+0x2b5c le_next_adv_channel_curr_channel_37
+0x2b61 set_le_next_adv_channel_37
+0x2b65 le_next_adv_channel_curr_channel_38
+0x2b6a set_le_next_adv_channel_38
+0x2b6e le_parse_att
+0x2b76 le_parse_att2
+0x2b84 le_send_att_exchange_mtu_requset
+0x2b87 le_send_att_exchange_mtu_common
+0x2b8b le_parse_att_exchange_mtu_request
+0x2b8c le_send_att_exchange_mtu_response
+0x2b90 le_parse_att_exchange_mtu_response
+0x2b93 le_parse_att_find_information_request
+0x2b96 le_att_handle_inrange
+0x2ba1 le_send_att_find_information_response
+0x2ba3 le_send_att_find_information_res_loop
+0x2bba le_send_att_find_information_res_uuid16
+0x2bbd le_send_att_find_information_res_uuid128
+0x2bc1 le_send_att_find_information_res_store_info2
+0x2bc6 le_send_att_find_information_res_store_info
+0x2bcf le_send_att_find_information_res_cont
+0x2bd1 le_send_att_find_information_res_next
+0x2bd3 le_send_att_find_information_res_end
+0x2bd5 le_parse_att_find_by_type_value_request
+0x2bde le_start_end_handle_check_1
+0x2be5 le_start_end_handle_check_1_fail
+0x2be8 le_send_att_find_by_type_value_response
+0x2bef le_send_att_find_by_type_value_res_primary
+0x2bf4 le_send_att_find_primary_search_loop
+0x2c04 le_send_att_find_primary_search_loop1
+0x2c08 le_send_att_error_response_notfound2
+0x2c0b le_send_att_find_primary_search_end_start_handle_found
+0x2c13 le_send_att_find_primary_search_end_ending_handle_found
+0x2c19 le_send_att_find_primary_search_end
+0x2c22 le_parse_att_read_by_type_request
+0x2c25 le_send_att_read_by_type_response
+0x2c34 le_send_att_read_by_type_response_loop
+0x2c55 le_send_att_read_by_type_response_next_handle
+0x2c57 le_send_att_read_by_type_response_end
+0x2c59 le_send_att_read_by_type_res_found_next
+0x2c67 le_send_att_read_by_type_write_properties
+0x2c6e le_send_att_read_by_type_write_uuid
+0x2c7a le_send_att_read_by_type_res_not_characteristic
+0x2c90 le_send_att_read_by_type_res_device_name
+0x2ca5 le_init_attlist_search
+0x2cad le_att_get_handle_ptr
+0x2cb0 le_att_get_handle_ptr2
+0x2cb3 le_att_get_handle_loop1
+0x2cbb le_att_get_handle_ptr_found
+0x2cbb le_att_contr_add_len
+0x2cbe le_att_get_uuid_ptr
+0x2cc1 le_att_get_uuid_loop
+0x2cd1 le_att_get_uuid_ptr_next
+0x2cd4 le_att_get_last_handle
+0x2cd8 le_att_get_last_handle_loop
+0x2ce0 le_att_get_handle_info_from_ptr
+0x2ce2 le_att_get_handle_info
+0x2ce4 le_att_get_handle_info_fast
+0x2ce5 le_att_get_handle_loop
+0x2ced le_att_unfind_handle
+0x2cee le_att_finded_handle
+0x2cf7 le_parse_att_read_request
+0x2cfb le_send_att_read_response
+0x2d0b le_send_att_read_response_less
+0x2d14 le_send_device_name
+0x2d20 le_send_att_read_response_check_auth
+0x2d24 le_send_att_read_response_error_insufficient_auth
+0x2d26 le_send_att_read_response_check_handle
+0x2d2a le_parse_att_read_blob_request
+0x2d2e le_send_att_read_blob_response
+0x2d37 le_send_att_read_blob_response_less
+0x2d41 le_parse_att_read_by_group_type_request
+0x2d44 le_send_att_read_by_group_type_response
+0x2d4b le_send_att_read_by_group_type_response_loop
+0x2d68 le_send_att_read_by_group_type_store_write_record
+0x2d6e le_send_att_read_by_group_type_store_record
+0x2d72 le_send_att_read_by_group_type_next_handle
+0x2d74 le_send_att_read_by_type_res_check_pair_length_type
+0x2d76 le_send_att_read_by_group_type_check_pair_length_type
+0x2d7a le_send_att_read_by_group_type_check_pair_length_type_16byte
+0x2d7c le_send_att_read_by_group_type_end0
+0x2d7f le_send_att_read_by_group_type_end1
+0x2d83 le_send_att_read_by_group_type_end_common
+0x2d86 le_parse_att_write_request
+0x2d8a le_send_att_write_response_check_auth
+0x2d9a le_send_att_write_response
+0x2d9f le_send_att_write_response_check_handle
+0x2da3 le_send_att_write_response_error_invalid_handle
+0x2da5 le_check_encrypt_state
+0x2dac le_parse_att_prepare_write_request
+0x2db1 le_send_att_prepare_write_response
+0x2dbf le_parse_att_execute_write_request
+0x2dbf le_send_att_execute_write_response
+0x2dc4 le_parse_handle_value_confirmation
+0x2dc8 le_parse_att_write_command
+0x2dcc le_att_malloc_tx_notify
+0x2dd5 le_att_malloc_tx_indication
+0x2de1 le_send_att_error_response_notfound
+0x2de3 le_send_att_error_response
+0x2dee le_fifo_malloc_tx_l2cap_gatt
+0x2df1 le_att_next_handle
+0x2df5 le_att_check_handle_end
+0x2df9 le_att_same_type
+0x2dfc le_att_check_same_common
+0x2e02 le_store_att_record
+0x2e08 le_write_att_record
+0x2e0e le_write_att_record_common
+0x2e12 le_send_auto_len_by_mem
+0x2e1f le_get_search_handle_start_end_common
+0x2e24 le_get_search_max_mtu_data
+0x2e28 le_get_search_att_type
+0x2e2b le_get_search_common
+0x2e2d le_get_search_common2
+0x2e31 le_parse_writing_attribute_start
+0x2e3f le_clear_l2cap_att_states_deal_with_contiune_packet
+0x2e43 le_parse_writing_attribute_continue
+0x2e4c le_parse_attribute_write_request
+0x2e4e le_send_attribute_write_response_check_auth
+0x2e51 le_parse_attribute_write_command
+0x2e55 le_parse_attribute_check_complete_packet_init
+0x2e5c le_parse_l2cap_continue_common
+0x2e62 le_parse_attribute_check_complete_packet
+0x2e68 le_parse_signaling
+0x2e6d le_l2cap_parse_conn_parameter_update_rsp
+0x2e71 le_l2cap_tx_update_req
+0x2e79 le_fifo_malloc_tx_l2cap_signaling
+0x2e81 le_l2cap_update_signaling_identifier
+0x2e85 le_l2cap_reset_signaling_identifier
+0x2e87 le_pairing_mode_init
+0x2e8f le_set_pairing_mode_secure_justwork
+0x2e91 le_set_pairing_mode_secure_numeric
+0x2e94 le_set_pairing_mode_secure_passkey
+0x2e96 le_set_no_pairing
+0x2e97 le_set_noinputnooutput
+0x2e99 le_set_pairing_mode_lagacy_just_work
+0x2e9b le_set_pairing_mode_lagacy_passkey
+0x2e9c le_set_displayonly
+0x2e9e le_secure_connection_enable
+0x2ea2 le_secure_connection_disable
+0x2ea6 le_parse_smp
+0x2eb3 le_send_smp_security_request
+0x2eba le_parse_smp_pairing_request
+0x2ec6 le_parse_smp_pairing_request2
+0x2ece le_set_tk_0
+0x2ed1 le_parse_smp_pairing_req_passkey
+0x2ed3 le_genernate_tk
+0x2eda le_parse_smp_pairing_req_fixed_passkey
+0x2edc le_send_smp_pairing_response
+0x2ee1 le_parse_smp_pairing_confirm
+0x2ee9 le_parse_smp_pairing_confirm_passkey_res_input
+0x2eeb le_parse_smp_pairing_confirm_secure_passkey
+0x2eee le_parse_smp_pairing_confirm_sc_passkey_res_input
+0x2ef1 le_send_smp_pairing_confirm
+0x2efa le_send_smp_pairing_confirm_sc
+0x2f02 le_parse_smp_pairing_random
+0x2f08 le_send_pairing_confirm_value_failed
+0x2f09 le_send_pairing_failed
+0x2f0f le_parse_smp_pairing_failed
+0x2f15 le_smp_pairing_fail_reason_not_support_pairing
+0x2f17 le_parse_smp_pairing_random_sc
+0x2f23 le_parse_smp_pairing_random_sc_passkey
+0x2f2c le_parse_smp_pairing_random_success
+0x2f31 le_send_smp_pairing_random
+0x2f37 le_send_smp_encryption_information
+0x2f3f le_send_fixed_ltk
+0x2f41 le_send_smp_master_identification
+0x2f4d le_send_smp_identity_information
+0x2f55 le_send_smp_identity_address_information
+0x2f5e le_send_pairing_fail_unspecified_reason
+0x2f60 le_check_init_key_distribution
+0x2f64 le_parse_smp_identity_information
+0x2f6e le_check_master_addr_type
+0x2f74 le_parse_smp_identity_address_information
+0x2f78 le_parse_smp_signing_information
+0x2f78 le_parse_smp_security_request
+0x2f79 le_parse_smp_public_key
+0x2f7e le_parse_smp_dhkey_check
+0x2f83 le_send_smp_pairing_public_key
+0x2f89 le_send_smp_pairing_dhkey_check
+0x2f8f le_check_paring_time
+0x2f98 le_pairing_sm
+0x2fa5 le_pairing_sm_null
+0x2fa5 le_pairing_sm_send_sec_req
+0x2fab le_pairing_sm_start
+0x2fad le_pairing_sm_rcv_pairing_req
+0x2fb1 le_pairing_sm_after_auth
+0x2fb4 le_pairing_sm_after_auth_start_enc
+0x2fb8 le_pairing_sm_after_auth_start_enc_common
+0x2fbf le_pairing_sm_after_auth_start_enc_sc
+0x2fc1 le_pairng_sm_send_enc_information
+0x2fc3 le_pairng_sm_send_master_indentification
+0x2fca le_pairng_sm_send_indentity_information
+0x2fcc le_parse_start_enc_rsp_after_auth_end
+0x2fd3 le_secure_connect_sm
+0x2fe1 le_sc_state_clear
+0x2fe5 le_sc_sm_passkey_wait_confirm
+0x2fef le_sc_sm_wait_confirm_gkey
+0x2ff4 le_sc_confirm_gkey_ok
+0x2ff8 le_sc_sm_receive_dhkey
+0x2ffc le_dhkey_ready
+0x3001 le_dhkey_ready_common
+0x3007 le_dhkey_check_fail
+0x3009 le_dhkey_check_ok
+0x3013 le_sc_sm_send_public_key
+0x3017 le_sc_sm_ready_send_pairing_confirm
+0x3018 le_sc_sm_send_public_key_passkey
+0x301b le_sc_sm_receive_public_key
+0x301f le_public_key_ready
+0x3022 le_sc_sm_wait_send_public_key
+0x3025 le_fifo_malloc_tx_l2cap_smp
+0x3028 le_parse_ll
+0x303f le_parse_connection_update_ind
+0x3047 le_parse_channel_map_ind
+0x304b le_update_map_enable
+0x304f le_parse_terminate_ind
+0x3053 le_parse_enc_req
+0x3065 le_parse_enc_req_after_auth
+0x3068 le_parse_enc_req_fixed_ltk
+0x306d le_ltk_lost
+0x3071 le_parse_enc_rsp
+0x3076 le_parse_start_enc_req
+0x307a le_parse_start_enc_rsp
+0x307f le_parse_unknown_rsp
+0x3080 le_parse_feature_req
+0x3081 le_parse_feature_rsp
+0x3082 le_parse_pause_enc_req
+0x3086 le_parse_pause_enc_rsp
+0x3087 le_parse_version_ind
+0x3089 le_parse_reject_ind
+0x308a le_parse_ping_req
+0x308b le_parse_ping_rsp
+0x308c le_parse_length_req
+0x308e le_parse_length_rsp
+0x3099 le_parse_phy_req
+0x309a le_parse_phy_update_ind
+0x30a3 le_send_terminate_ind_user_terminated
+0x30a4 le_send_terminate_ind
+0x30aa le_send_enc_rsp
+0x30b8 le_send_start_enc_req
+0x30bb le_send_start_enc_rsp
+0x30bd le_send_unknown_rsp
+0x30c2 le_send_feature_rsp
+0x30c9 le_send_pause_enc_rsp
+0x30cb le_send_version_ind
+0x30d1 le_send_reject_ind
+0x30d7 le_send_ping_rsp
+0x30d9 le_send_data_length_req
+0x30db le_send_data_length_res
+0x30dc le_send_data_length
+0x30e1 le_send_phy_rsp
+0x30eb le_send_ll_one_lenth
+0x30ed g24_dispatch
+0x30f1 g24_prep
+0x30f8 g24_receive_packet
+0x3100 g24_receive_rxon
+0x3105 g24_receive_nolr
+0x3114 g24_receive_skip_fec1
+0x3127 g24_receive_skip
+0x3130 g24rx_loop
+0x3133 g24rx_nopayload
+0x3138 g24_receive_skip_rssi
+0x313f g24_receive_skip_next
+0x314c g24_receive_skip_disable_fec1
+0x314e g24_lr_receive_pdu_len
+0x3155 g24_lr_receive_pdu_norssi
+0x3157 g24_lr_receive_payload_len
+0x315c g24_receive_byte
+0x315f g24_sync_timeout
+0x3162 g24_end_of_packet
+0x3167 g24_hec_error
+0x3169 g24_lr_len_error
+0x316b g24_type_error
+0x316d g24_len_over_error
+0x316f g24_crc_error
+0x3171 g24_set_freq_tx
+0x3174 g24_transmit
+0x3187 g24_transmit_packet
+0x318d g24_transmit_nolr
+0x3192 g24tr_loop
+0x319c g24_transmit_skip
+0x31a3 g24_transmit_skip_disable_fec1
+0x31a6 g24_transmit_lr
+0x31a7 g24_transmit_lr_preamble_loop
+0x31b1 g24_transmit_lr_s2
+0x31b5 g24_transmit_lr_s8
+0x31b8 g24_transmit_2m
+0x31ba g24_transmit_2m_dealy
+0x31c4 g24_transmit_prep
+0x31cf g24_transmit_prep_pdu
+0x31e5 g24_lr_transmit_prep
+0x31e9 g24_lr_transmit_prep_skip
+0x31f3 g24_read_len_pid_crc
+0x3201 g24_ch
+0x3206 g24_ch_map_size
+0x320b g24_ch_calc
+0x3215 g24_update_addr_and_synccrc8
+0x3217 g24_syncword_crc8
+0x321a g24_syncword_crc8_loop
+0x3224 g24_timer_check
+0x3234 g24_timer_timeout
+0x3237 g24_timer_init
+0x323a g24_chmap_param_init
+0x324a g24_chamap_param_update
+0x3257 g24_rx_window_init
+0x325e g24_rx_window_store
+0x3260 g24_enable_1m
+0x3263 g24_enable_2m
+0x3266 g24_pair_param_init
+0x326c g24_pair_timeout_timer
+0x326f g24_pair_start
+0x327a g24_pair_init_param
+0x3281 g24_pair_dispatch
+0x3290 g24_pair_sm_1
+0x3292 g24_pair_sm_2
+0x3296 g24_pair_sm_2_skip
+0x3298 g24_pair_sm_3
+0x329e g24_pair_sm_4
+0x329f g24_pair_sm_prep
+0x32a1 g24_pair_sm_common
+0x32b4 g24_pair_sm_reinit
+0x32b9 g24_pair_sm_1_waiting_ack
+0x32bb g24_pair_sm_2_waiting_ack
+0x32bf g24_pair_sm_2_waiting_ack_skip
+0x32c1 g24_pair_sm_3_waiting_ack
+0x32c7 g24_pair_sm_3_waiting_ack_skip
+0x32c9 g24_pair_sm_4_waiting_ack
+0x32cf g24_pair_sm_4_waiting_ack_skip
+0x32d6 g24_pair_exit
+0x32da g24_bind_mode_enable
+0x32dd g24_bind_init
+0x32e8 g24_bind_ackpayload_prep
+0x32ec g24_bind_data_process
+0x32f9 g24_bind_data_error
+0x32fb g24_bind_data_parse
+0x3306 g24_bind_first_step
+0x330a g24_bind_first_step_device1
+0x330d g24_bind_dvc1_payload_cfg
+0x330e g24_bind_payload_cfg
+0x3312 g24_bind_first_step_device2
+0x3315 g24_bind_dvc2_payload_cfg
+0x3317 g24_bind_second_step
+0x331d g24_bind_second_step_skip
+0x3321 g24_bind_second_step_device1
+0x3326 g24_bind_dvc1_step_set2
+0x3329 g24_bind_dvc1_payload_cfg_transmitter_addr
+0x332a g24_bind_payload_cfg_transmitter_addr
+0x332e g24_bind_second_step_device2
+0x3333 g24_bind_dvc2_step_set2
+0x3338 g24_bind_third_step
+0x333e g24_bind_third_step_skip
+0x3342 g24_bind_third_step_device1
+0x3347 g24_bind_dvc1_step_success
+0x334c g24_bind_exit
+0x334f g24_bind_third_step_device2
+0x3354 g24_bind_dvc2_step_success
+0x335b g24_binding_device_check
+0x335f g24_binding_dvc1_status
+0x3361 disable_user3
+0x3363 g24_binding_dvc2_status
+0x3366 g24_binding_dvc1_living
+0x336c g24_binding_dvc2_living
+0x3372 g24_bind_device_status_check
+0x3374 g24_bind_device_status
+0x3378 g24_receive_init
+0x337c g24_receive_dispatch
+0x337e g24_ackpayload_prep
+0x3384 g24_receive_packet_start
+0x3386 g24_receive_packet_parse
+0x3397 g24_rx_interrupt_clear
+0x339b g24_data_receive_attemp
+0x339d g24_data_device1
+0x33ac g24_data_device2
+0x33b2 g24_data_attemp_device1_abort
+0x33b7 g24_data_attemp_device2_abort
+0x33b9 g24_receive_packet_parse_pid_crc
+0x33c7 g24_receive_transmit_ack
+0x33ca g24_transmit_ack
+0x33d0 g24tx_with_ack
+0x33d3 g24tx_no_ack
+0x33d4 g24_enable_nodata_timer
+0x33d5 g24_enable_nodata_timer_init
+0x33d8 g24_mode_switch_init
+0x33dd g24_mode_switch_bind_work
+0x33ea g24_bind_mode_continue
+0x33ef g24_work_mode_switch
+0x33f2 g24_bind_mode_switch
+0x33f5 g24_mode_b_s_switch_init
+0x3403 g24_mode_switch_bind_search
+0x341e g24_mode_switch_search
+0x3421 g24_mode_b_s_switch_exit
+0x3423 g24_mode_b_s_switch_stop
+0x3425 g24_mode_b_s_switch_start
+0x3427 g24_work_init
+0x3436 g24_switch_work_mode
+0x3437 g24_work_mode_enable
+0x343a g24_work_mode_start
+0x343f g24_bind_mode_auto
+0x344c g24_search_mode_init
+0x345e g24_search_mode_auto
+0x347d g24_self_ch_num_reinit
+0x347e g24_current_ch_num_reinit
+0x3480 g24_device2_ch_num_reinit
+0x3482 g24_device1_ch_num_reinit
+0x3484 g24_auto_addr_ch_search
+0x348e g24_auto_bind_config_device1
+0x34a3 g24_device1_config_ch_once
+0x34a8 g24_auto_bind_config_device2
+0x34bd g24_device2_config_ch_once
+0x34c2 g24_auto_bind_config_self
+0x34d6 g24_self_config_ch_once
+0x34da g24_ackpayload_disable
+0x34dc g24_receiver_addr_check
+0x34e0 g24_nodata_process
+0x34ea g24_search_mode_enable
+0x34ee g24_ch_process
+0x3502 g24_ch_receive_hop_pac
+0x3504 g24_ch_timer_reinit
+0x3507 g24_reconn_timeout_timer
+0x350a g24_reconn_start
+0x3517 g24_reconn_fast_conn
+0x351f g24_reconn_receiver_addr
+0x3526 g24_reconn_device_3_0_addr
+0x352d g24_store_receiver_addr
+0x3530 g24_ch_syncword_crc8_init
+0x3532 g24_reconn_dispatch
+0x353b g24_reconn_dispatch_next
+0x3546 g24_reconn_dispatch_success
+0x3553 g24_txbuf_clear
+0x3557 g24_reconn_data_prep
+0x355e g24_reconn_device_fail
+0x356b g24_reconn_fast_conn_and_receiver
+0x356d g24_reconn_fast_conn_and_3_0
+0x356f g24_reconn_receiver_and_3_0
+0x3571 g24_reconn_pair_and_3_0
+0x3573 g24_data_attemp
+0x3577 g24_data_attemp_device1
+0x357b g24_store_device1_addr
+0x357d g24_data_attemp_device2
+0x3581 g24_store_device2_addr
+0x3583 rssi_store
+0x358c rssi_average
+0x3593 rssi_average_loop
+0x35a0 save_rssi_dec
+0x35a1 rssi_transmitter_buff_init
+0x35a3 rssi_signal
+0x35ae rssi_receiver_buff_init
+0x35b5 rssi_buff_clear
+0x35bb rssi_noise
+0x35c2 rssi_noise_monitor
+0x35c8 g24_transmit_init
+0x35cb g24_interval_param_4ms
+0x35d3 g24_interval_param_8ms
+0x35db g24_transmit_dispatch
+0x35e0 g24_transmit_no_interrupt
+0x35e3 g24_transmit_start
+0x35e8 g24_transmit_start_next
+0x35ee g24_short_sleep
+0x35f5 g24_long_sleep
+0x35fa g24_long_seep2
+0x35fd g24_txdata_prep
+0x3600 g24_package_data
+0x3606 g24_accumulate_data
+0x360e g24_transmit_rf_ctrl_clear
+0x3612 g24_transmit_process
+0x3615 g24_transmit_loop
+0x361f g24_transmit_no_ack
+0x3620 g24_transmit_next_packet
+0x3625 g24_transmit_abandon
+0x362a g24_transmit_receive_ack
+0x3638 g24_retransmit
+0x363b g24_retransmit0
+0x3647 g24_ackpayload_parse
+0x364f g24_tx_attempt_fail
+0x3653 g24_stop_24g_mode
+0x3655 g24_transmit_hop_process
+0x3658 g24_transmit_hop_process_next
+0x3664 g24_transmit_hop_process_4ms
+0x3668 g24_hop_ch_enable
+0x3668 g24_txpayload_type_update
+0x366b g24_lr_type_update
+0x366d g24_hop_enable_packet
+0x366f g24_hop_ch_disable
+0x3675 g24_tx_fast_hop
+0x367c g24_search_receiver
+0x367e g24_nodata_transmit
+0x3685 g24_send_abort_packet
+0x3694 g24_lpm_wait
+0x369e g24_setgpio_lpm_before
+0x36a0 g24_transmit_by_interrupt
+0x36aa g24_transmit_by_interrupt_exit
+0x36af g24_interval_min
+0x36b1 g24_interval_store
+0x36b3 g24_interval_max
+0x36b5 g24_interval_calibrate
+0x36bb g24_transmit_by_interrupt_enable
+0x36bf g24_factory_check
+0x36c1 pdata_0xff_check
+0x36c3 pdata_0xff_check_loop
+0x36c8 power_ctrl_start
+0x36d3 power_ctrl_start_next
+0x36db power_ctrl_txpower_decrs_check
+0x36e0 power_ctrl_txpower_decrs
+0x36e4 power_ctrl_txpower_decrs_next
+0x36ed power_ctrl_txpower_incrs_force
+0x36ee power_ctrl_txpower_incrs
+0x36f4 power_ctrl_incrs_level3
+0x36f6 power_ctrl_decrs_level2
+0x36f6 power_ctrl_incrs_level2
+0x36f8 power_ctrl_decrs_level1
+0x36f8 power_ctrl_incrs_level1
+0x36fa power_ctrl_decrs_level0
+0x36fc power_ctrl_pac_succ_incrs
+0x3700 power_ctrl_pac_succ_decrs
+0x3708 power_ctrl_pac_succ_cnt_reinit
+0x370a app_init
+0x3717 app_param_init
+0x3722 app_process_idle
+0x3727 app_process_ble
+0x3729 app_process_bb_event
+0x3730 app_discard_event
+0x3732 app_event_normal_process
+0x3736 app_process_bb_event_priority
+0x3738 app_check_wake_lock
+0x373a app_will_enter_lpm
+0x373c app_le_event_bb_connected
+0x3740 app_le_event_bb_disconn
+0x3745 app_evt_button_long_pressed
+0x3749 app_evt_timer
+0x374a app_evt_100ms_loop
+0x3755 timer_single_step
+0x375c timer_single_step_2b
+0x3763 app_power_timer
+0x3767 app_power_timer_timeout
+0x3769 app_enter_power_off_state
+0x376a app_enter_power_stanby_state
+0x376d app_power_cb_common
+0x376f app_bb_hibernate
+0x3771 app_disconn_reason_clear
+0x3774 app_disconn_reason_flag_clear
+0x3777 app_disconn_reason_collect_ble
+0x377d app_get_lpm_wake_lock
+0x377f app_put_lpm_wake_lock
+0x3781 app_lpm_wake_auto_lock
+0x3783 app_lpm_wake_auto_lock_timer
+0x3786 app_ble_start_direct_adv
+0x3788 app_ble_stop_direct_adv
+0x378a app_ble_stop_adv
+0x378c app_ble_start_adv
+0x378e app_ble_start_scan
+0x3790 app_ble_stop_scan
+0x3792 app_ble_start_conn
+0x3794 app_ble_disconnect
+0x3796 app_led_start_blink
+0x3798 app_led_on
+0x379a app_led_stop_blink
+0x379a app_led_off
+0x379c app_enter_hibernate
+0x379e app_ble_store_reconn_info
+0x37a0 app_lpm_mult_enable
+0x37a2 app_lpm_mult_disable
+0x37a4 app_button_long_pressed
+0x37a6 app_power_starting
+0x37aa app_power_common
+0x37ae app_power_shutting_down
+0x37b4 app_power_off_end
+0x37b8 app_got_power_state_common
+0x37bc app_event_button_up
+0x37bf app_power_release
+0x37c1 car_init
+0x37d3 car_default_init
+0x38b9 car_system_clk
+0x38bb car_lpm_xtalcnt
+0x38bd car_lpm_isogate
+0x38bf car_lpm_hibernate_switch
+0x38c1 car_lpm_ldo_sel
+0x38c3 car_lpm_sysctl
+0x38c5 car_lpm_hv_sel
+0x38c7 car_fcomp_div
+0x38c9 car_xtal_c_sel
+0x38cb car_version
+0x38cd car_le_tx2m_delay
+0x38cf car_gain_fix
+0x38d1 car_rx_window_sniff
+0x38d3 car_gain_table
+0x38d5 car_gain_second_agc_en
+0x38d7 car_ring_ibias_trim
+0x38d9 car_ring_ibias_vtune_high
+0x38db car_ring_ibias_vtune_low
+0x38dd car_ring_ibias_calc_adc_gpio
+0x38df car_ring_ibias_calc_adc_channel
+0x38e1 car_tx_power
+0x38e3 car_24g_tx_phy
+0x38e5 car_24g_rx_phy
+0x38e7 car_motor_gpio_map
+0x38ea car_pwm_gpio
+0x38ef car_24g_addr
+0x38f1 car_24g_ch_map1
+0x38f3 car_init_environment
+0x38fb car_rxid_check
+0x3904 car_add_mac_to_local_name
+0x390c car_add_mac_to_local_name_loop
+0x3917 car_convert_hex_to_ascii
+0x3919 car_convert_hex_to_ascii_a_f
+0x391b car_convert_hex_to_ascii_0_9
+0x391d car_le_param_init
+0x3924 car_process_bb_event
+0x3928 car_ble_disconnted
+0x3930 car_ble_connted
+0x3933 car_ble_receive_data
+0x3936 car_ble_receive_writeatt
+0x393d car_ble_receive_writeatt_parse
+0x394b car_gpio_control_stop
+0x394f car_whitening_24g_addr
+0x3952 car_24g_whitening_loop
+0x3956 car_24g_whitening_byte
+0x3957 car_24g_whitening_byte_loop
+0x395e car_24g_whitening_byte_xor
+0x3963 car_get_rxid
+0x3981 car_pwm_control_init
+0x398b car_idle_process
+0x39a7 car_pwm_io_control
+0x39ae car_g24_sim_rx
+0x39be car_cb_24g_ackpayload
+0x39c4 car_soft_timer_process
+0x39c5 car_soft_timer_process_check_timer
+0x39cb car_soft_timer_process_wait_timeout
+0x39cf car_soft_timer_timeout
+0x39d3 car_timer_1khz_enable
+0x39d5 car_timer_500hz_enable
+0x39d7 car_pwm_change_1khz
+0x39e5 car_pwm_change_500hz
+0x39f1 car_period_change_timer
+0x39fb car_set_24g_ch
+0x3a00 car_set_ch0
+0x3a03 car_set_ch1
+0x3a06 car_set_ch2
+0x3a09 car_set_ch3
+0x3a0c car_set_ch_reset
+0x3a0f car_stop_run
+0x3a21 car_set_motor
+0x3a38 car_set_unconnect
+0x3a3c car_run_factory_mode_select
+0x3a40 car_run_mode_select
+0x3a47 car_pwm_mode_adv_flag_init
+0x3a50 car_factory_mode_time
+0x3a55 car_motor_mode_1
+0x3a59 car_motor_mode_2
+0x3a5d car_f
+0x3a62 car_b
+0x3a67 car_l
+0x3a6c car_r
+0x3a71 car_fl
+0x3a74 car_fr
+0x3a77 car_bl
+0x3a7a car_br
+0x3a7d car_reconnect
+0x3a88 car_recive_pair_request
+0x3a8e car_send_pair_response
+0x3a97 car_send_pair_response_juge
+0x3a9c car_cb_event_timer
+0x3aa1 car_100ms_timer_adv_control
+0x3aa8 car_100ms_timer_adv_control_timeout
+0x3aae car_100ms_timer_factory_test_control
+0x3ab3 car_100ms_timer_factory_test_timeout
+0x3ab7 car_motor1_status_select
+0x3abc car_motor2_status_select
+0x3ac1 car_lr_motor_stop
+0x3ac5 car_lr_motor_left
+0x3ac9 car_lr_motor_right
+0x3acd car_fb_motor_stop
+0x3ad1 car_fb_motor_front
+0x3ad5 car_fb_motor_back
+0x3ad9 car_le_stop_random_delay_check
+0x3adc car_check_close_ice
+0x3adf remote_car_init
+0x3aee remote_car_default_init
+0x3b5f remote_car_system_clk
+0x3b61 remote_car_lpm_xtalcnt
+0x3b63 remote_car_lpm_isogate
+0x3b65 remote_car_lpm_hibernate_switch
+0x3b67 remote_car_lpm_ldo_sel
+0x3b69 remote_car_lpm_sysctl
+0x3b6b remote_car_lpm_hv_sel
+0x3b6d remote_car_fcomp_div
+0x3b6f remote_car_xtal_c_sel
+0x3b71 remote_car_version
+0x3b73 remote_car_le_tx2m_delay
+0x3b75 remote_car_gain_fix
+0x3b77 remote_car_rx_window_sniff
+0x3b79 remote_car_gain_table
+0x3b7b remote_car_gain_second_agc_en
+0x3b7d remote_car_ring_ibias_trim
+0x3b7f remote_car_ring_ibias_vtune_high
+0x3b81 remote_car_ring_ibias_vtune_low
+0x3b83 remote_car_ring_ibias_calc_adc_gpio
+0x3b85 remote_car_ring_ibias_calc_adc_channel
+0x3b87 remote_car_tx_power
+0x3b89 remote_car_24g_tx_phy
+0x3b8b remote_car_24g_rx_phy
+0x3b8d remote_car_key_conf0
+0x3b8f remote_car_key_public_gpio
+0x3b91 remote_car_24g_tx_led_map
+0x3b93 remote_car_24g_addr
+0x3b95 remote_car_24g_ch_map1
+0x3b97 remote_car_set__lpm_timer_set
+0x3b9b remote_car_set_uconnect_lpm_time
+0x3ba0 remote_car_set_connected_lpm_time
+0x3ba5 remote_car_get_txid
+0x3bc3 remote_car_txid_check
+0x3bcc remote_car_whitening_24g_addr
+0x3bcf remote_car_24g_whitening_loop
+0x3bd3 remote_car_24g_whitening_byte
+0x3bd4 remote_car_24g_whitening_byte_loop
+0x3bdb remote_car_24g_whitening_byte_xor
+0x3be0 remote_car_lpm_gpio_config_flag_init
+0x3be3 remote_car_iocfg_pullup_loop
+0x3bec remote_car_idle_process
+0x3bf3 remote_car_24g_matching_process
+0x3bf7 remote_car_set_24g_ch
+0x3bfc remote_car_set_ch0
+0x3bff remote_car_set_ch1
+0x3c02 remote_car_set_ch2
+0x3c05 remote_car_set_ch3
+0x3c08 remote_car_set_ch_reset
+0x3c0b remote_car_send_pair_request
+0x3c0f remote_car_g24_sim_tx_with_datalen_set
+0x3c1f remote_car_g24_sim_tx
+0x3c2b remote_car_g24_transmit_no_ack
+0x3c30 remote_car_24g_recved_ack
+0x3c32 remote_car_g24_recved_ack_parse
+0x3c38 remote_car_g24_tx_connected
+0x3c45 remote_car_send_remote_control
+0x3c52 remote_car_scan_key
+0x3c58 remote_car_key_scan_lr
+0x3c66 remote_car_key_scan_fb
+0x3c74 remote_car_set_keyf
+0x3c77 remote_car_set_keyb
+0x3c7a remote_car_set_keyl
+0x3c7d remote_car_set_keyr
+0x3c80 remote_car_set_keym
+0x3c83 remote_car_set_tx_key_led
+0x3c8a remote_car_24g_tx_send_none
+0x3c8e remote_car_24g_set_led
+0x3c96 remote_car_24g_led_on
+0x3c98 remote_car_24g_led_off
+0x3c9b remote_car_lpm_timeout_set
+0x3ca4 remote_car_cb_event_timer
+0x3ca6 remote_car_enter_lpm
+0x3cab remote_car_enter_lpm_gpio_config
+0x3cad remote_car_enter_lpm_gpio_config_loopcnt
+0x3cb3 remote_car_enter_lpm_gpio_config_pull_up
+0x3cb9 remote_car_set_value
+0x3cba remote_car_gpio_wakeup_cfg
+0x3cc2 remote_car_wakeup_config
+0x3cc7 remote_car_wakeup_config_loop
+0x3cd1 dongle_init
+0x3cdc dongle_default_init
+0x3ce5 dongle_default_no_eeprom
+0x3cff dongle_xtal_select
+0x3d04 dongle_dispatch
+0x3d09 dongle_read_kb_bind_status
+0x3d0e dongle_write_kb_bind_status
+0x3d13 dongle_usb_config
+0x3d17 dongle_usb_config_kb
+0x3d1b dongle_usb_config_param
+0x3d20 dongle_usb_vid_pid_config
+0x3d24 dongle_usb_vid_pid_for_mouse_only_auto_pair
+0x3d25 dongle_usb_vid_pid_store
+0x3d27 dongle_usb_vid_pid_for_suit
+0x3d29 dongle_usb_hid_icon_config
+0x3d2f dongle_usb_kb_hidreportdesc
+0x3d33 dongle_usb_device_name
+0x3d39 dongle_all_powerful
+0x3d3a dongle_all_powerful_loop
+0x3d3d dongle_pc_bind
+0x3d3e dongle_pc_bind_loop
+0x3d42 dongle_g24_blank_data_process
+0x3d48 dongle_g24_ms_blank_data
+0x3d52 dongle_usb_tx_ms_data
+0x3d53 dongle_usb_tx_enable_ep2
+0x3d57 dongle_g24_kb_blank_data
+0x3d61 dongle_usb_tx_kb_data
+0x3d62 dongle_usb_tx_enable_ep1
+0x3d67 dongle_g24_kb_sys_ctrl_blank_data
+0x3d72 dongle_usb_tx_sys_ctrl_data
+0x3d74 dongle_g24_kb_mul_blank_data
+0x3d7f dongle_usb_tx_multikey_data
+0x3d81 dongle_g24_kb_bit_consumer_blank_data
+0x3d8c dongle_usb_tx_bit_consumer_data
+0x3d8e dongle_usb_dispatch
+0x3da1 dongle_usb0_data_ready_report_set0
+0x3da3 dongle_dispose_cmd_mode
+0x3da6 dongle_enter_bind_mode
+0x3da7 dongle_usb0_data_ready_report_set1
+0x3da9 dongle_dispose_cmd_bind
+0x3dae dongle_dispose_cmd_get_bind
+0x3db1 dongle_dispose_cmd_exit_bind
+0x3db3 dongle_dispose_cmd_read_mode
+0x3db3 dongle_dispose_in_bind_mode
+0x3db5 dongle_dispose_cmd_current_project
+0x3db7 dongle_dispose_cmd_current_mode
+0x3dbb dongle_dispose_in_work_mode
+0x3dbd dongle_dispose_cmd_current_fw_version
+0x3dc0 dongle_auto_bind
+0x3dc1 dongle_auto_bind_loop
+0x3dc8 dongle_work_mode_auto
+0x3dd0 dongle_ackpayload_prep
+0x3dd3 dongle_ackpayload_prep_mouse
+0x3dd6 dongle_set_pc_sleep_flag
+0x3dda dongle_clear_pc_sleep_flag
+0x3ddc dongle_ackpayload_prep_keyboard
+0x3dde dongle_ackpayload_prep_end
+0x3de2 dongle_pc_sleep_ackpayload_prep_mouse
+0x3de6 dongle_pc_sleep_ackpayload_prep_keyboard
+0x3de9 dongle_pc_sleep_ackpayload_prep
+0x3ded dongle_g24_bind_ackpayload_prep
+0x3df6 dongle_g24_kb_led_ackpayload_prep
+0x3dfe dongle_g24_mouse
+0x3e07 dongle_g24_ms_enable_blank_data_forcibly
+0x3e0b dongle_g24_ms_disable_blank_data_forcibly
+0x3e0f dongle_g24_kb
+0x3e15 dongle_g24_kb_type0
+0x3e28 dongle_g24_kb_enable_blank_data_forcibly
+0x3e2c dongle_g24_kb_disable_blank_data_forcibly
+0x3e30 dongle_g24_kb_type3
+0x3e40 dongle_g24_kb_mul_enable_blank_data_forcibly
+0x3e44 dongle_g24_kb_mul_disable_blank_data_forcibly
+0x3e48 dongle_g24_kb_type_bit_consumer
+0x3e58 dongle_g24_kb_bit_consumer_enable_blank_data_forcibly
+0x3e5c dongle_g24_kb_bit_consumer_disable_blank_data_forcibly
+0x3e60 dongle_g24_kb_type2
+0x3e70 dongle_g24_kb_sys_enable_blank_data_forcibly
+0x3e74 dongle_g24_kb_sys_disable_blank_data_forcibly
+0x3e78 dongle_usb_tx_sys_data
+0x3e7a dongle_g24_store_dvc2_bind_flag
+0x3e7e dongle_prep_soft_reset
+0x3e80 dongle_kb_bind_soft_reset
+0x3e85 dongle_wirte_efuse_bind_status
+0x3e8f keyboard_softreset_process
+0x3e9a keyboard_wakeup_from_power_check
+0x3ea1 keyboard_default_init
+0x3ea5 keyboard_xtal_init
+0x3eaa keyboard_24g_phy_select
+0x3eae keyboard_init
+0x3eb7 keyboard_init_wireless
+0x3ebd keyboard_setting_config
+0x3ecb keyboard_param_common_init
+0x3edb keyboard_param_init
+0x3eed keyboard_ble_store_le_name
+0x3ef2 keyboard_ble_name_set_no_swift_pair
+0x3ef4 keyboard_compare_addr_init
+0x3ef9 keyboard_gpio_init
+0x3f09 keyboard_key_cow_init
+0x3f0f keyboard_key_row_init
+0x3f12 keyboard_key_row_init_loop
+0x3f18 keyboard_gpio_set_low_pullup
+0x3f1b keyboard_gpio_pu_idle
+0x3f1d keyboard_gpio_pu_idle_loop
+0x3f22 keyboard_gpio_pu_idle_configured
+0x3f29 keyboard_key_row_wake_set
+0x3f2c keyboard_pairing_check_otp_offset
+0x3f31 keyboard_load_otp_info
+0x3f35 keyboard_load_otp_device_info_g24_init
+0x3f3f keyboard_load_otp_device_info_ble_init
+0x3f49 keyboard_load_otp_device_info
+0x3f4d keyboard_load_otp_info_check_page_loop
+0x3f5f keyboard_load_otp_info_check_first_time
+0x3f61 keyboard_load_otp_info_check_first_time_loop_init
+0x3f63 keyboard_load_otp_info_check_first_time_loop
+0x3f72 keyboard_load_otp_info_check_first_time_process
+0x3f74 keyboard_load_otp_info_check_offset_process
+0x3f81 keyboard_load_otp_info_check_offset_process_g24
+0x3f87 keyboard_load_otp_info_check_offset_process_ble
+0x3f96 keyboard_load_eeprom_info
+0x3f9d keyboard_load_eeprom_device_info_next
+0x3fa2 keyboard_load_info_check
+0x3faa keyboard_load_info_24g
+0x3fac keyboard_load_info_fn_lock
+0x3fb0 keyboard_load_info_bt1
+0x3fb5 keyboard_load_info_bt
+0x3fbb keyboard_load_info_bt2
+0x3fbf keyboard_load_info_bt3
+0x3fc3 keyboard_load_info_usb
+0x3fc6 keyboard_app_initflag_check
+0x3fd5 keyboard_load_flash_info
+0x3fd7 keyboard_store_device_info
+0x3fdd keyboard_store_otp_device_info
+0x3fe1 keyboard_store_otp_device_info_g24
+0x3feb keyboard_store_otp_device_info_ble
+0x3fee keyboard_wirte_otp_ble
+0x4004 keyboard_store_eeprom_device_info
+0x400b keyboard_store_eeprom_device_info_next
+0x400c keyboard_store_eeprom_device_info_typer_check
+0x4014 keyboard_store_eeprom_device_all_info
+0x4019 keyboard_store_eeprom_device_info_ble_addr
+0x4025 keyboard_store_eeprom_device_info_g24_addr
+0x402d keyboard_store_eeprom_device_info_fn_lock
+0x4035 keyboard_store_eeprom_device_info_device_os
+0x403d keyboard_store_eeprom_device_info_rgb_tpye
+0x4045 keyboard_store_device_number
+0x4049 keyboard_eeprom_init
+0x404e keyboard_cb_fuction
+0x4066 keyboard_priority_bb_event
+0x4075 keyboard_bb_event_timer
+0x4093 keyboard_adc_vol_init
+0x4098 keyboard_adc_vol_1v5_init
+0x409d keyboard_adc_vol_3v0_init
+0x40a2 keyboard_adc_vol_4v2_init
+0x40a7 keyboard_adc_init
+0x40a9 keyboard_adc_gpio_set
+0x40b2 keyboard_channel_set_gpio
+0x40c4 keyboard_adc_read_start
+0x40cc keyboard_adc_read
+0x40cf keyboard_adc_data_process
+0x40d4 keyboard_adc_low_voltage
+0x40d6 keyboard_adc_no_low_voltage
+0x40dd keyboard_adc_gpio_set_before_hibernate
+0x40e0 keyboard_low_voltage_param_set
+0x40e8 keyboard_low_voltage_param_reset
+0x40eb keyboard_low_vol_mult_set
+0x40f3 keyboard_low_vol_mult_ble_set
+0x40f9 keyboard_mult_auto_get
+0x4100 keyboard_low_voltage_led_timer
+0x4119 keyboard_adc_low_volatage_led_timer_count_clean
+0x411b keyboard_low_voltage_led_blink_new_data
+0x4131 keyboard_device_poweron_timer
+0x4139 keyboard_device_poweron_030_led
+0x413a keyboard_power_led_on
+0x413c keyboard_power_led_off
+0x413e keyboard_mode_led_timer
+0x4146 keyboard_device_pair_led_timer
+0x414b keyboard_device_24g_pair_led
+0x414d keyboard_device_pair_led
+0x415f keyboard_device_clear_power_timer
+0x4161 keyboard_device_led_all_off
+0x4166 keyboard_device_led_off
+0x416c keyboard_device_led_on
+0x4172 keyboard_device_24g_led_off
+0x4174 keyboard_device_bt1_led_off
+0x4176 keyboard_device_bt2_led_off
+0x4178 keyboard_device_bt3_led_off
+0x417a keyboard_device_24g_led_on
+0x417c keyboard_device_bt1_led_on
+0x417e keyboard_device_bt2_led_on
+0x4180 keyboard_device_bt3_led_on
+0x4182 keyboard_low_voltage_led_on
+0x4184 keyboard_low_voltage_led_off
+0x4186 keyboard_num_capslock_led_on_timer
+0x4193 keyboard_usb_led_check
+0x4196 keyboard_num_cap_scoll_led_check
+0x4199 keyboard_numlock_led_check_on
+0x419b keyboard_numlock_led_on
+0x419d keyboard_numlock_led_off
+0x419f keyboard_capslock_led_check_on
+0x41a3 keyboard_capslock_led_off
+0x41a5 keyboard_scrolllock_led_check_on
+0x41a9 keyboard_scrolllock_led_off
+0x41ab keyboard_rgb_on_timer
+0x41b7 keyboard_pwm_init
+0x41c0 keyboard_rgb_pwm_disable
+0x41c6 keyboard_rgb_pwm_set
+0x41c9 keyboard_load_rgb
+0x41d0 keyboard_rgb_mode_switch
+0x41de keyboard_rgb_mode_switch_next
+0x41e2 keyboard_rgb_on_type_switch
+0x41ef keyboard_rgb_on_type_switch_next
+0x41f3 keyboard_rgb_process
+0x4203 keyboard_rgb_off
+0x4209 keyboard_rbg_breathe_process
+0x4211 keyboard_rbg_breathe_up
+0x421a keyboard_rbg_breathe_color_switch
+0x4221 keyboard_rgb_pwm
+0x4224 keyboard_breathe_tpye_select
+0x422c keyboard_breathe_tpye_red
+0x4231 keyboard_breathe_tpye_green
+0x4236 keyboard_breathe_tpye_blue
+0x423b keyboard_breathe_tpye_cyan
+0x423d keyboard_breathe_tpye_orange
+0x423f keyboard_breathe_tpye_purple
+0x4241 keyboard_breathe_tpye_white
+0x4244 keyboard_rgb_on_process
+0x424e keyboard_rgb_led_control
+0x425b keyboard_rgb_red_led_on
+0x425d keyboard_rgb_red_led_off
+0x425f keyboard_rgb_green_led_on
+0x4261 keyboard_rgb_green_led_off
+0x4263 keyboard_rgb_blue_led_on
+0x4265 keyboard_rgb_blue_led_off
+0x4267 keyboard_key_press_timer
+0x426d keyboard_device_select_g24_press_timer
+0x4278 keyboard_device_select_g24_nopress_timer
+0x427e keyboard_device_select_bt_press_timer
+0x4289 keyboard_device_select_bt_nopress_timer
+0x428f keyboard_commbination_key_process
+0x4294 keyboard_commbination_key_press_type_check
+0x4299 keyboard_check_discovery_timeout_timer
+0x429c keyboard_check_discovery_timeout
+0x429e keyboard_store_information_delay_timer
+0x42a1 keyboard_le_auto_recognize_timer
+0x42a4 keyboard_check_direct_timeout_timer
+0x42aa keyboard_check_direct_timeout
+0x42ad keyboard_le_battery_updata_timer
+0x42b2 keyboard_le_send_conn_param_update_timer
+0x42b5 keyboard_24g_repeat_send_data
+0x42bf keyboard_24g_led_status_get_timer
+0x42c2 keyboard_24g_led_status_clear
+0x42c4 keyboard_same_key_long_press_timer
+0x42c7 keyboard_long_press_timerout
+0x42c9 keyboard_commbination_delay_release_timer
+0x42cc keyboard_usb_updata_timer
+0x42d5 keyboard_check_no_data_timeout_timer
+0x42da keyboard_check_no_data_timeout
+0x42dd keyboard_idle
+0x42e3 keyboard_check_select_device_by_switch
+0x42f0 keyboard_check_select_device_by_switch_vdd_check
+0x42f8 keyboard_check_select_device_by_switch_vdd
+0x42fd keyboard_check_select_device_by_switch_gnd
+0x4302 keyboard_select_btdevice
+0x4308 keyboard_check_select_24g_device
+0x430e keyboard_start_work
+0x431a keyboard_start_work_next
+0x4324 keyboard_start_ble1_reconnect
+0x4325 keyboard_start_ble_reconnect
+0x4329 keyboard_start_ble2_reconnect
+0x432b keyboard_start_ble3_reconnect
+0x432d keyboard_24g_start_mode
+0x4330 kscan_dispatch
+0x4334 keyboard_keyscan
+0x4342 keyboard_keyscan_exmcu_start_check
+0x434a keyboard_keyscan_wait_wake_next
+0x4351 keyboard_keyscan_copy_value
+0x4354 keyboard_compare_col_excol_gpio_loop
+0x4359 keyboard_compare_col_gpio_loop
+0x435e keyboard_compare_col_excol_gpio_loop_next
+0x4366 keyboard_copy_value_exmcu_to_mcu
+0x4372 keyboard_keyscan_get_exmcu_value
+0x4373 keyboard_keyscan_exmcu_start_loop
+0x437a keyboard_keyscan_exmcu_get_col_value
+0x437d keyboard_keyscan_value_store
+0x4386 keyboard_keyscan_get_mcu_value
+0x4389 keyboard_keyscan_mcu_start
+0x4393 keyboard_keyscan_mcu_start_loop
+0x4399 keyboard_keyscan_get_col_value
+0x439e keyboard_keyscan_get_col_value_loop
+0x43a7 keyboard_clk_state_high
+0x43a9 keyboard_clk_state_low
+0x43ab keyboard_clk_input
+0x43ad keyboard_stb_state_high
+0x43af keyboard_stb_state_low
+0x43b1 keyboard_press_change_or_no_key
+0x43b5 keyboard_key_process
+0x43c6 keyboard_keyvalue_process
+0x43cf keyboard_keyvalue_change
+0x43de keyboard_keyvalue_change_loop
+0x43e9 keyboard_keyvalue_process_loop
+0x43f1 keyboard_keyscan_value_current_zero_check
+0x43fd keyboard_ghost_key_check
+0x4402 keyboard_ghost_key_check_loop
+0x4405 keyboard_current_col_press_key_count_check
+0x4418 keyboard_same_row_key_check
+0x4429 keyboard_ghost_key_check_next_loop
+0x442c keyboard_same_row_key_check_loop
+0x442e keyboard_keyvalue_normal_replace
+0x4435 keyboard_keyvalue_fn_replace
+0x4440 keyboard_fn_lock_check
+0x4451 keyboard_keyvalue_fn_esc
+0x4457 keyboard_keyvalue_fn_esc_next
+0x4459 keyboard_keyvalue_fn_delete
+0x445b keyboard_keyvalue_fn_replace_press
+0x4468 keyboard_keyvalue_fn_lock_replace
+0x447e keyboard_keyvalue_fn_lock_24g
+0x4481 keyboard_keyvalue_fn_lock_bt1
+0x4484 keyboard_keyvalue_fn_lock_bt2
+0x4487 keyboard_keyvalue_fn_lock_bt3
+0x448a keyboard_keyvalue_fn_lock_usb
+0x448d keyboard_keyvalue_fn_up_arrow
+0x4491 keyboard_keyvalue_fn_down_arrow
+0x4495 keyboard_keyvalue_fn_left_arrow
+0x4499 keyboard_keyvalue_fn_right_arrow
+0x449d keyboard_keyvalue_fn_left_ctrl
+0x44a5 keyboard_keyvalue_windows_osk
+0x44a7 keyboard_keyvalue_fn_space
+0x44aa keyboard_keyvalue_store_temp
+0x44ac keyboard_keyvalue_os_android
+0x44b2 keyboard_keyvalue_os_switch_end
+0x44b7 keyboard_store_eeprom_or_flash
+0x44b9 keyboard_store_device_info_delay
+0x44bc keyboard_keyvalue_os_windows
+0x44c3 keyboard_keyvalue_os_ios
+0x44ca keyboard_keyvalue_clear_temp
+0x44cc keyboard_store_computer_system
+0x44d3 keyboard_store_computer_system_bt1
+0x44d6 keyboard_store_computer_system_bt2
+0x44d9 keyboard_store_computer_system_bt3
+0x44dc keyboard_keyvalue_commbination_replace
+0x44ec keyboard_commbination_delay_release_set
+0x44f0 keyboard_commbination_delay_release_clear
+0x44f2 keyboard_commination_screen_shot_replace
+0x44f8 keyboard_commination_pageup_replace
+0x44f9 keyboard_commination_ios_mac_command_commiation
+0x44fe keyboard_commination_pagedown_replace
+0x4500 keyboard_commination_home_replace
+0x4502 keyboard_commination_end_replace
+0x4504 keyboard_commination_select_all
+0x4505 keyboard_commbination_text_edit
+0x450b keyboard_commbination_copy
+0x450d keyboard_commbination_paste
+0x450f keyboard_commbination_cut
+0x4511 keyboard_commination_os_lock
+0x4516 keyboard_commination_windows_lock
+0x4519 keyboard_commination_mac_lock
+0x451c keyboard_commbination_osk
+0x4520 keyboard_commbination_windows_osk
+0x4523 keyboard_commbination_search
+0x4527 keyboard_commbination_mac_search
+0x452a keyboard_commbination_language
+0x452e keyboard_commbination_language_next
+0x4531 keyboard_commbination_language_windows
+0x4533 keyboard_commbination_language_android
+0x4535 keyboard_commbination_app_tiling
+0x453b keyboard_commbination_app_tiling_windows_android
+0x453e keyboard_commbination_keypress
+0x4543 keyboard_commbination_key_press_set
+0x4545 keyboard_commbination_key_wait_release_set
+0x4547 keyboard_commbination_key_null_set
+0x4549 keyboard_commbination_key_value_store
+0x454e keyboard_commbination_key_press_process
+0x4551 keyboard_commbination_key_hold_set
+0x4553 keyboard_commbination_key_hold_process
+0x4557 keyboard_commbination_key_wait_release_process
+0x455d keyboard_commbination_key_release_set
+0x455f keyboard_commbination_key_release_process
+0x4560 keyboard_commbination_key_null_process
+0x4564 keyboard_keyvalue_in_out
+0x456e keyboard_keyvalue_control_key_out
+0x4572 keyboard_keyvalue_control_key_in
+0x4576 keyboard_keyvalue_standard
+0x4579 keyboard_keyvalue_standard_out
+0x457c keyboard_keyvalue_standard_out_loop
+0x4585 keyboard_keyvalue_standard_out_next
+0x458a keyboard_keyvalue_standard_out_n_key_rollover
+0x458d keyboard_keyvalue_standard_in
+0x4590 keyboard_keyvalue_standard_in_loop
+0x4599 keyboard_keyvalue_standard_in_n_key_rollover
+0x459c keyboard_keyvalue_standard_in_data
+0x459f keyboard_keyvalue_n_key_rollover_data_in_out
+0x45ad keyboard_keyvalue_consumer
+0x45b2 keyboard_consumer_key_release_status
+0x45b4 keyboard_special_key_check
+0x45bf keyboard_special_key_check_loop
+0x45c9 keyboard_commbination_key_press_check
+0x45d7 keyboard_commbination_key_press_check_bt
+0x45e8 keyboard_commbination_key_down_24g
+0x45ea keyboard_commbination_key_down_bt
+0x45ec keyboard_commbination_key_down_bt_fast_conn
+0x45ee keyboard_commbination_key_down
+0x45f2 keyboard_device_select
+0x45fe keyboard_clear_change_flag
+0x4600 keyboard_device_select_g24
+0x460c keyboard_device_select_g24_press
+0x4616 keyboard_device_select_bt1
+0x4620 keyboard_device_select_bt1_press
+0x4627 keyboard_device_select_bt2
+0x4631 keyboard_device_select_bt2_press
+0x4638 keyboard_device_select_bt3
+0x4642 keyboard_device_select_bt3_press
+0x4649 keyboard_device_select_bt_set_press_flag
+0x464e keyboard_device_select_usb
+0x465a keyboard_device_select_usb_press
+0x4660 keyboard_pairing_button_check
+0x466c keyboard_pairing_button_release
+0x4670 keyboard_enable_bt_button_pairing
+0x4675 keyboard_long_button_bt_discovery
+0x4680 keyboard_24g_start_pair_mode
+0x468f keyborad_control_key_set
+0x4697 keyboard_alt_flag_set
+0x4699 keyboard_fn_set
+0x469b keyboard_pb_set
+0x469d keyboard_motion
+0x46b7 keyboard_current_mult_update
+0x46ba keyboard_no_key_press
+0x46ca keyboard_motion_data_check
+0x46d1 keyboard_value_tpye_check
+0x46dc keyboard_tx_data_store
+0x46e3 keyboard_tx_data_store_loop
+0x46e6 keyboard_motion_data_check_next
+0x46ea device_send_keyboard_data
+0x46ec keyboard_motion_data_check_n_key_rollover_key
+0x46ef keyboard_value_release_all_key
+0x46f5 keyboard_value_tpye_consumer_set
+0x4715 keyboard_value_media
+0x4716 keyboard_consumer_value_store
+0x4718 keyboard_value_vol_down
+0x471a keyboard_value_vol_up
+0x471c keyboard_value_mute
+0x471e keyboard_value_pre_track
+0x4720 keyboard_value_next_track
+0x4722 keyboard_value_play
+0x4724 keyboard_value_stop
+0x4726 keyboard_value_ac_home
+0x4728 keyboard_value_mail
+0x472a keyboard_value_my_computer
+0x472c keyboard_value_ac_favorites
+0x472e keyboard_value_calculator
+0x4730 keyboard_value_ac_search
+0x4732 keyboard_value_ac_back
+0x4737 keyboard_value_os_soft_kb
+0x473b keyboard_value_os_soft_kb_android
+0x473d keyboard_value_light_down
+0x473f keyboard_value_light_up
+0x4741 keyboard_value_os_lock
+0x4743 keyboard_value_mac_eject
+0x4745 keyboard_value_ac_forward
+0x4747 keyboard_value_ac_stop
+0x4749 keyboard_value_ac_refresh
+0x474b keyboard_value_consumer_all_key_release
+0x474b keyboard_value_consumer_release
+0x4752 keyboard_value_system_sleep
+0x4756 keyboard_device_data_tpye_check
+0x475d keyboard_device_data_tpye_check_next
+0x4768 keyboard_mouse_data_send
+0x476d keyboard_standard_data_send
+0x4772 keyboard_standard_data_send_end
+0x4778 keyboard_magic_data_send
+0x477c keyboard_magic_data_send_end
+0x4780 keyboard_consumer_data_send
+0x4781 keyboard_consumer_data_store
+0x4785 keyboard_bit_consumer_data_send
+0x4787 keyboard_system_control_data_send
+0x478c keyboard_n_key_rollover_send
+0x478f keyboard_lpm_before_common
+0x4796 keyboard_key_col_wake_init
+0x47a0 keyboard_key_row_wake_init
+0x47aa keyboard_process_lpm_before
+0x47ac keyboard_before_hibernate
+0x47af keyboard_power_down
+0x47b1 keyboard_app_enter_hibernate
+0x47b3 keyboard_setgpio_hibernate
+0x47b8 keyboard_24g_pairing_complete
+0x47ca keyboard_24g_attempt_success
+0x47d3 keyboard_24g_fast_conn_check
+0x47d9 keyboard_24g_led_get_status_check
+0x47db keyboard_24g_led_data_check
+0x47e1 keyboard_get_24g_led_enable
+0x47e4 keyboard_set_repeat_send_flag
+0x47e6 keyboard_24g_attempt_fail
+0x47ed keyboard_24g_attempt_fail_enter_hibernate
+0x47f3 keyboard_24g_fast_conn_attempt_fail
+0x47fb keyboard_24g_hibernate_set
+0x4804 keyboard_24g_stop
+0x4808 keyboard_g24_reconn_dispatch
+0x480f keyboard_g24_reconn_dispatch_next
+0x4815 keyboard_g24_transmit_no_interrupt
+0x4817 keyboard_g24_transmit_start
+0x481a keyboard_g24_nodata_transmit
+0x4821 keyboard_g24_long_sleep
+0x4828 keyboard_g24_transmit_process
+0x482a keyboard_g24_transmit_loop
+0x4834 keyboard_g24_retransmit
+0x4841 keyboard_g24_tx_fast_hop
+0x4848 keyboard_g24_lpm_wait
+0x4855 keyboard_power_ctrl_start
+0x485b keyboard_g24_transmit_start_next
+0x485f keyboard_g24_short_sleep
+0x4862 keyboard_24g_package_data
+0x4868 keyboard_24g_keyboard_package_data
+0x486d keyboard_24g_keyboard_package_n_key_rollover_data
+0x4871 keyboard_24g_search_dongle
+0x4875 keyboard_le
+0x487d keyboard_le_next
+0x4885 keyboard_le_fill_n_key_rollover_key_data
+0x488e keyboard_le_fill_standard_key_data
+0x4893 keyboard_le_bb_event_connected
+0x489a keyboard_le_bb_event_connected_next
+0x48a2 keyboard_le_bb_disconnected
+0x48a7 keyboard_le_bb_disconnected_next
+0x48ab keyboard_bb_disconnected
+0x48af keyboard_le_event_bb_disconn
+0x48b3 keyboard_le_ll_start_encryt
+0x48b8 keyboard_le_ll_reconn_start_encryt
+0x48bb keyboard_le_conn_param_update_rsp_recieved
+0x48c0 keyboard_bb_event_discovery_btn
+0x48c5 keyboard_start_discovery
+0x48d9 keyboard_start_discovery_norandom
+0x48e6 keyboard_stop_bluetooth_mode
+0x48e9 keyboard_stop_discovery
+0x48f2 keyboard_store_remote_bdaddr
+0x48fd keyboard_le_send_att_find_by_type_value_request_ancs
+0x490b keyboard_le_parse_att
+0x4919 keyboard_le_send_att_find_by_type_value_request_mac
+0x492c keyboard_le_parse_att_find_by_type_value_rsp_mac
+0x4938 keyboard_le_send_att_read_by_type_rsp_mac
+0x4941 keyboard_le_check_att_read_type_manu_loop
+0x494a keyboard_le_send_att_read_by_type_rsp_manufactory
+0x4952 keyboard_le_parse_att_manu_resp
+0x495c keyboard_le_parse_att_find_by_type_value_rsp
+0x4960 keyboard_le_parse_att_find_ios_report
+0x4962 keyboard_le_parse_att_not_find_mac_report
+0x4965 keyboard_le_parse_att_find_mac_report
+0x4966 keyboard_store_computer_system_ble
+0x496d keyboard_store_computer_system_info
+0x4971 keyboard_le_parse_att_read_by_type_request
+0x4973 keyboard_le_send_att_read_by_type_response
+0x497f keyboard_le_send_att_read_by_type_res_pnp_id
+0x4986 keyboard_le_parse_att_read_blob_request
+0x4999 keyboard_le_send_att_read_blob_response
+0x499f keyboard_le_parse_att_read_request
+0x49a2 keyboard_le_send_att_read_response
+0x49a7 keyboard_le_send_att_read_response_next
+0x49aa keyboard_le_send_att_read_response_next_1
+0x49b7 keyboard_le_send_att_appearance
+0x49ba keyboard_le_send_att_pnp_id
+0x49bf keyboard_le_send_att_read_response_check_auth
+0x49c5 keyboard_le_parse_att_write_request
+0x49cb keyboard_le_parse_att_write_command
+0x49d1 keyboard_le_fast_conn_led_get
+0x49d4 keyboard_le_led_get
+0x49d7 keyboard_usb_mode_start
+0x49db keyboard_usb_check_enable
+0x49e1 keyboard_usb_config_param
+0x49e7 keyboard_usb_vid_pid_config
+0x49ec keyboard_usb_interface_check_power_on
+0x49ee keyboard_usb_vdd_status_store
+0x49f1 keyboard_usb_insert
+0x49fa keyboard_usb_isr
+0x49ff keyboard_usb_mode
+0x4a10 keyboard_usb_tx_kb_normal_data
+0x4a15 keyboard_push_n_key_rollover_key_data_to_usb
+0x4a1d keyboard_ui_ipc_send_event
+0x4a20 ui_ipc_fifo_check
+0x4a25 keyboard_enable_function_flag
+0x4a29 keyboard_disable_function_flag
+0x4a2d keyboard_bt_discovery_button_down_enable
+0x4a2f keyboard_bt_discovery_button_down_disable
+0x4a31 module_init
+0x4a43 module_lpm_uart_init
+0x4a55 module_gpio_init
+0x4a5a module_lpm_lock
+0x4a5e module_process_idle
+0x4a61 module_process_bb_event
+0x4a6f module_process_bb_even_le_disconn
+0x4a73 module_process_le_conn
+0x4a77 module_disconn_start
+0x4a79 module_process_ble_ltk_lost
+0x4a7b module_process_ble_update_phy
+0x4a7c module_set_conn_pin_high
+0x4a7e module_conn_start
+0x4a80 module_stop_adv_discovery
+0x4a84 module_set_conn_pin_low
+0x4a86 module_process_check_hci_command_complete
+0x4a9c module_hci_in_excp
+0x4a9f module_hci_release_except
+0x4aa5 module_hci_dicard_packet
+0x4aa9 module_hci_dicard_bytes
+0x4aaa module_hci_cmd_control
+0x4ac7 module_hci_cmd_set_le_addr
+0x4acc module_hci_cmd_set_visibility
+0x4ad3 module_start_adv_discovery_by_command
+0x4ad3 moudle_start_adv_by_command
+0x4ada module_hci_cmd_set_le_name
+0x4ade module_hci_cmd_receive_le_data
+0x4b03 module_hci_cmd_receive_le_data_finish
+0x4b06 module_hci_cmd_transmit_handle_error
+0x4b0a module_hci_cmd_transmit_le_notify
+0x4b28 module_hci_cmd_transmit_le_notify_malloc_l2cap
+0x4b2d module_get_le_remote_mtu
+0x4b32 module_check_ble_encrypt_state
+0x4b35 module_hci_cmd_inquire_status
+0x4b36 module_hci_cmd_set_uart_baud
+0x4b3e module_hci_cmd_version_request
+0x4b42 module_hci_cmd_ble_disconnect
+0x4b44 module_hci_cmd_ble_disconnect_doing
+0x4b46 module_hci_cmd_set_nvram
+0x4b4b module_hci_cmd_auto_adv
+0x4b51 module_hci_cmd_auto_adv_loop
+0x4b5b module_hci_cmd_auto_adv_store_adv
+0x4b65 module_hci_cmd_auto_adv_store_scan
+0x4b6e module_hci_cmd_auto_adv_store_common
+0x4b79 module_hci_cmd_auto_adv_adv_analys
+0x4b7e module_hci_cmd_power_request
+0x4b84 module_hci_cmd_power_set
+0x4b8b module_hci_cmd_passkey_entry
+0x4b90 module_hci_cmd_le_set_pairing_mode
+0x4b9f module_le_set_pairing_mode_secure_justwork
+0x4ba3 module_le_set_pairing_mode_secure_numeric
+0x4ba8 module_le_set_pairing_mode_secure_passkey
+0x4bac module_le_set_pairing_mode_secure_passkey_res_input
+0x4bb0 module_le_set_no_pairing
+0x4bb1 module_le_set_noinputnooutput
+0x4bb3 module_le_set_pairing_mode_lagacy_just_work
+0x4bb5 module_le_set_pairing_mode_lagacy_passkey
+0x4bb7 module_le_set_pairing_mode_lagacy_passkey_res_input
+0x4bb9 module_le_set_keboadonly
+0x4bbb module_le_set_displayonly
+0x4bbd module_hci_cmd_le_set_scan_data
+0x4bc0 module_hci_cmd_receive_store_mem
+0x4bc6 module_hci_cmd_le_send_conn_update_req
+0x4bcf module_hci_cmd_set_le_adv_parameter
+0x4bd5 module_hci_cmd_le_start_pairing
+0x4bdd module_hci_cmd_set_wake_gpio
+0x4be7 module_hci_cmd_set_tx_power
+0x4bec module_hci_cmd_le_confirm_gkey
+0x4bf3 module_hci_cmd_le_confirm_gkey_ok
+0x4bf5 module_hci_cmd_le_confirm_gkey_fail
+0x4bf7 module_hci_cmd_reset_chip
+0x4bfb module_hci_cmd_delete_customize_service
+0x4c01 module_hci_cmd_add_service_uuid
+0x4c06 module_hci_cmd_add_characteristic_uuid
+0x4c0a module_hci_cmd_add_service_uuid_set_uuid
+0x4c0e module_hci_cmd_add_characteristic_uuid_set_handle
+0x4c15 module_hci_cmd_add_characteristic_uuid_set_uuid
+0x4c2d module_hci_cmd_add_characteristic_uuid_set_ccc_uuid
+0x4c35 le_att_creat_new_handle
+0x4c38 uart_copy_rx_bytes_len_data
+0x4c3c module_hci_cmd_le_passkey_entry_input
+0x4c42 module_hci_cmd_passkey_entry_sc_res_input
+0x4c45 module_hci_cmd_receive_ble_passkey
+0x4c48 module_hci_cmd_passkey_entry_res_input
+0x4c4a module_hci_event_receive_invalid_cmd
+0x4c4d module_hci_event_receive_valid_cmd
+0x4c50 module_hci_event_le_connect
+0x4c52 module_hci_event_le_disconnect
+0x4c54 module_hci_event_set_cmd
+0x4c61 module_hci_event_receive_le_data
+0x4c6c module_hci_event_enter_standby_mode
+0x4c6d module_hci_event_enter_standby_mode_len0
+0x4c70 module_hci_event_status_res
+0x4c7a module_hci_read_bt_status
+0x4c80 module_hci_event_store_device
+0x4c89 module_hci_event_gkey_generate
+0x4c8f module_hci_event_invalid_packet
+0x4c9e module_hci_event_passkey_entry_mode
+0x4ca0 module_hci_event_le_tk
+0x4ca6 module_hci_event_le_pairing_fail
+0x4ca8 module_hci_event_le_pairing_success
+0x4caa module_hci_event_pairing_completed
+0x4cb0 module_hci_event_pause_enc
+0x4cb2 module_hci_event_start_enc
+0x4cb3 module_hci_event_enc
+0x4cb9 module_hci_event_uuid_handle
+0x4cc0 module_hci_event_le_input_passkey
+0x4cc2 module_hci_event_le_update_phy
+0x4cc8 module_hci_prepare_tx
+0x4cd2 module_hci_transmit_tx
+0x4cd4 module_set_mcu_wake_pin_high_delay
+0x4cd6 module_set_mcu_wake_pin_h_delay
+0x4cdb module_set_mcu_wake_pin_high
+0x4cdd module_check_mcu_wake_pin_high
+0x4cdf module_set_mcu_wake_pin_low
+0x4ce1 module_le_receive_data
+0x4ce7 module_le_receive_data_ok
+0x4cf2 module_bb_event_timer
+0x4cf3 module_read_vdd_timer
+0x4d05 module_set_le_tx_data_flag
+0x4d07 module_clear_le_tx_data_flag
+0x4d09 module_clr_state
+0x4d0d module_set_state
+0x4d11 mouse_init
+0x4d1c mouse_init_wireless
+0x4d20 mouse_wake_gpio_set
+0x4d22 mouse_cb_fuction
+0x4d40 mouse_setting_config
+0x4d48 mouse_load_device_info_check
+0x4d4e mouse_xtal_init
+0x4d53 mouse_24g_phy_select
+0x4d5d mouse_g24_reconn_dispatch_set
+0x4d60 mouse_g24_reconn_dispatch
+0x4d65 mouse_receiver_addr_check
+0x4d6c mouse_g24_reconn_mode_judge
+0x4d70 mouse_g24_transmit_hop_process
+0x4d72 mouse_g24_transmit_hop_process_new
+0x4d7e mouse_g24_transmit_hop_process_4ms
+0x4d82 mouse_default_init
+0x4d88 mouse_param_info_init
+0x4d8c mouse_spi_parm_init
+0x4d93 mouse_param_common_init
+0x4da0 mouse_compare_addr_init
+0x4da5 mouse_report_rate_parm_init
+0x4da8 mouse_le_report_rate_parm_init
+0x4dab mouse_le_interval_store
+0x4dae mouse_24g_report_rate_parm_init
+0x4db2 mouse_g24_interval_param_2ms
+0x4db6 mouse_report_rate_set_500hz
+0x4db9 mouse_g24_interval_param_4ms
+0x4dc6 mouse_g24_interval_param_8ms
+0x4dd3 mouse_sensor_set_angle
+0x4de1 mouse_set_sensor_angle_vin
+0x4de5 mouse_set_sensor_angle_gnd
+0x4de9 mouse_set_sensor_angle_float
+0x4dea mouse_store_sensor_angle
+0x4dec mouse_le_name_modify
+0x4df5 mouse_start_work
+0x4dfa mouse_le_fast_conn_judge
+0x4e00 mouse_le_device1_judge
+0x4e05 mouse_le_device2_judge
+0x4e09 mouse_start_reconnect_device
+0x4e11 mouse_start_reconnect
+0x4e14 mouse_wakeup_from_power_check
+0x4e1b mouse_wakeup_from_poweron
+0x4e1e mouse4_0_check_reconn_target
+0x4e23 mouse4_0_check_reconn_target_next
+0x4e2d mouse_lpm_check_wake_lock
+0x4e35 mouse_app_enter_hibernate
+0x4e3b mouse_app_enter_hibernate_next
+0x4e3d mouse_before_hibernate
+0x4e42 mouse_setgpio_hibernate
+0x4e52 mouse_wheel_gpio_set_before_hibernate
+0x4e54 mouse_wheel_gpio_clr_wakeup
+0x4e5c mouse_adc_gpio_set_before_hibernate
+0x4e62 mouse_gpio_pd_idle
+0x4e64 mouse_gpio_pd_idle_loop
+0x4e69 mouse_gpio_pd_idle_configured
+0x4e6d mouse_gpio_pd_idle_ext
+0x4e70 mouse_process_lpm_before
+0x4e75 mouse_lpm_before_common
+0x4e9b mouse_set_mult
+0x4ea0 mouse_adc_gpio_set
+0x4ea5 mouse_adc_read
+0x4ea9 mouse_adc_read_start
+0x4eb4 mouse_adc_data_process
+0x4ebb mouse_adc_low_voltage
+0x4ebd mouse_adc_no_low_voltage
+0x4ec4 mouse_adc_bat_percent_lowpower_out
+0x4ec7 mouse_adc_bat_percent_lowpower_out_battery
+0x4ed0 mouse_adc_bat_level_set
+0x4ee1 mouse_adc_bat_level_100_percent
+0x4ee3 mouse_adc_bat_level_0_percent
+0x4ee5 mouse_gpio_init
+0x4f02 mouse_gpio_set_pupd_by_input
+0x4f06 device_gpio_config_input_pd
+0x4f0a device_gpio_config_input_pu
+0x4f0e mouse_gpio_set_analog
+0x4f12 mouse_gpio_set_analog_bit_loop
+0x4f1b mouse_sensor_spi_init
+0x4f1f mouse_spi_write_flash_cb
+0x4f1f mouse_spi_init
+0x4f20 mouse_spid_init_pin
+0x4f26 mouse_motion
+0x4f38 mouse_zwheel
+0x4f3d mouse_t_zwheel
+0x4f42 mouse_wheel_check
+0x4f51 mouse_t_wheel_scan
+0x4f61 mouse_t_wheel_scan_judge1
+0x4f65 mouse_t_wheel_scan_judge2
+0x4f69 mouse_t_wheel_scan_judge11
+0x4f6b mouse_t_wheel_scan_judge12
+0x4f6d mouse_t_wheel_scan_judge21
+0x4f6f mouse_t_wheel_scan_judge22
+0x4f71 mouse_t_wheel_scan_judge3
+0x4f79 mouse_t_wheel_scan_judge30
+0x4f7c mouse_t_wheel_scan_judge31
+0x4f7f mouse_t_wheel_scan_judge32
+0x4f82 mouse_t_wheel_scan_judge33
+0x4f85 mouse_wheel_t_forward
+0x4f89 mouse_wheel_t_back
+0x4f8d mouse_wheel_scan
+0x4f9d mouse_wheel_scan_judge1
+0x4fa1 mouse_wheel_scan_judge2
+0x4fa5 mouse_wheel_scan_judge11
+0x4fa7 mouse_wheel_scan_judge12
+0x4fa9 mouse_wheel_scan_judge21
+0x4fab mouse_wheel_scan_judge22
+0x4fad mouse_wheel_scan_judge3
+0x4fb5 mouse_wheel_scan_judge30
+0x4fb8 mouse_wheel_scan_judge31
+0x4fbb mouse_wheel_scan_judge32
+0x4fbe mouse_wheel_scan_judge33
+0x4fc1 mouse_wheel_forward
+0x4fc5 mouse_wheel_back
+0x4fc9 mouse_before_hibernate_wheel_gpio_set
+0x4fd1 mouse_wheel_trigger
+0x4fd6 mouse_wheel_trigger_timer
+0x4fd9 mouse_wheel_trigger_disable
+0x4fdb mouse_dpi_check
+0x4fe5 mouse_dpi_check_exit
+0x4fe8 mouse_dpi_key_check
+0x4ff0 mouse_dpi_key_connect_matrix
+0x4ff8 mouse_dpi_3io6key_check
+0x4ffc mouse_3io6key_dpi_check_end
+0x4fff mouse_dpi_check_end
+0x5002 mouse_dpi_key_connect_gnd
+0x5004 mouse_dpi_down
+0x500b mouse_dpi_up
+0x5012 mouse_dpi_up_next
+0x5016 mouse_dpi_up_after_long_press
+0x501b mouse_dpi_process
+0x501e mouse_dpi_process_skip_ghost
+0x5025 mouse_dpi_level_store
+0x5028 mouse_double_dpi_check
+0x502a mouse_dpi_increase
+0x502e mouse_dpi_increase_level
+0x5031 mouse_dpi_level_1
+0x5033 mouse_dpi_level_2
+0x5035 mouse_dpi_level_3
+0x5037 mouse_dpi_level_4
+0x5039 mouse_dpi_increase_level_4
+0x503f mouse_dpi_decrease_level_4
+0x5045 mouse_another_dpi_button_down
+0x5045 mouse_dpi_decrease
+0x5049 mouse_dpi_decrease_level
+0x504c mouse_dpi_ghost_check
+0x5050 mouse_dpi_key_check_long_press
+0x5054 mouse_select_device_by_dpi_button
+0x5059 mouse_ready_reconnection_by_dpi_button
+0x505b mouse_discovery_by_dpi_button
+0x5060 mouse_long_dpi_button_bt_discovery
+0x5062 mouse_setting_dpi_4_level
+0x5068 mouse_setting_dpi
+0x506b mouse_setting_sensor_type
+0x5075 mouse_set_cpi1
+0x5077 mouse_set_cpi0
+0x5079 mouse_set_cpi2
+0x507b mouse_set_cpi3
+0x507c mouse_dpi_store
+0x5082 mouse_dpi_write
+0x508b mouse_3065xy_set_dpi
+0x508d mouse_ka8_set_dpi
+0x508f mouse_seting_s201_dpi
+0x5095 mouse_set_s201_dpi_0
+0x5097 mouse_set_s201_dpi_1
+0x5099 mouse_set_s201_dpi_2
+0x509b mouse_set_s201_dpi_3
+0x509d mouse_set_s201_dpi_4
+0x509e mouse_dpi_s201_store
+0x50a5 mouse_sensor_enable_wp
+0x50a7 mouse_sensor_disable_wp
+0x50a9 mouse_seting_3212_dpi
+0x50ae mouse_set_p3212_cpi1
+0x50b0 mouse_set_p3212_cpi0
+0x50b2 mouse_set_p3212_cpi2
+0x50b4 mouse_set_p3212_cpi3
+0x50b5 mouse_p3212_dpi
+0x50bd mouse_seting_ka8g2_dpi
+0x50c2 mouse_set_pka8g2_cpi1
+0x50c4 mouse_set_pka8g2_cpi0
+0x50c6 mouse_set_pka8g2_cpi2
+0x50c8 mouse_set_pka8g2_cpi3
+0x50ca mouse_key
+0x50db mouse_24g_key
+0x50e0 mouse_ghost_key_check
+0x50f0 mouse_matrix_ghost_key_l_bk
+0x50f5 mouse_matrix_ghost_key_l_fw
+0x50fa mouse_ghost_key_lbk_mfw
+0x50fd mouse_ghost_key_lbk_rfw
+0x50ff mouse_ghost_key_lfw_mbk
+0x5102 mouse_ghost_key_lfw_rbk
+0x5104 mouse_ghost_key_mbk_rfw
+0x5105 mouse_ghost_key_rfw
+0x5107 mouse_ghost_key_mfw_rbk
+0x5108 mouse_ghost_key_rbk
+0x5109 mouse_ghost_key_check_next
+0x5113 mouse_ghost_key_check_l_bk
+0x5116 mouse_ghost_key_check_m_bk
+0x5119 mouse_ghost_key_check_r_bk
+0x511c mouse_ghost_key_check_l_fw
+0x511f mouse_ghost_key_check_m_fw
+0x5122 mouse_ghost_key_check_r_fw
+0x5125 mouse_ghost_key_check_bk_fw
+0x5128 mouse_ghost_key_check_lmr
+0x512e mouse_matrix_row_more_than_one_key
+0x5130 mouse_matrix_cow_more_than_one_key
+0x5132 mouse_dpi_another_gpio_check
+0x5135 mouse_dpi_another_gpio_connect_gnd_check
+0x513a mouse_dpi_another_gpio_connect_vin_check
+0x5143 mouse_dpi_another_down_new
+0x5148 mouse_dpi_another_check
+0x514c mouse_dpi_another_state_check
+0x514f mouse_dpi_another_down
+0x5153 mouse_dpi_another_up
+0x5157 mouse_check_key_connect_gnd_new
+0x5161 mouse_check_key_connect_vin_new
+0x516c mouse_another_dpi_key_press
+0x516e mouse_another_dpi_key_release
+0x5170 mouse_check_firekey_gpio
+0x5175 mouse_check_firekey_connect_gnd
+0x517a mouse_firekey_state_store
+0x517d mouse_check_firekey_connect_vin
+0x5183 fire_key_process
+0x5184 fire_key_press
+0x5192 fire_key_process_start
+0x5193 fire_key_down
+0x5195 fire_key_process_release1
+0x5196 fire_key_release
+0x5198 fire_key_process_start2
+0x519a fire_key_process_release2
+0x519c fire_key_process_end
+0x519f firekey_clkn_bt_timer_check
+0x51a4 firekey_clkn_bt_timer_timeout
+0x51a7 mouse_key_check_once
+0x51ac mouse_check_key_gpio
+0x51b9 mouse_check_key_gpio_once
+0x51bc mouse_check_lkey_gpio
+0x51c5 mouse_check_rkey_gpio
+0x51ce mouse_check_mkey_gpio
+0x51d7 mouse_check_bkkey_gpio
+0x51e6 mouse_check_bkkey_gpio_end
+0x51e8 mouse_check_bk_button_connect_gnd
+0x51ec mouse_3io6key_bk_check
+0x51f3 mouse_check_fwkey_gpio
+0x5202 mouse_check_fwkey_gpio_end
+0x5203 mouse_matrix_public_gpio_reset
+0x5205 mouse_check_fw_button_connect_gnd
+0x5209 mouse_3io6key_fw_check
+0x5210 mouse_check_customerkey_gpio
+0x5216 mouse_customer_key_connect_gnd
+0x521b mouse_check_customerkey_state
+0x521e mouse_check_customerkey_gpio_exit
+0x5221 mouse_customer_key_connect_vin
+0x522c mouse_customerkey_press
+0x522f mouse_customerkey_release
+0x5232 mouse_customer_key_need_send
+0x5234 mouse_key_release
+0x5236 mouse_check_key_connect_gnd
+0x523a mouse_check_key_connect_gnd_next
+0x5240 mouse_key_press
+0x5242 mouse_3io6key_check
+0x524e mouse_check_press
+0x5254 mouse_gpio_config_output_high
+0x5256 mouse_gpio_config_output_low
+0x5258 mouse_gpio_config_pu_check
+0x525c mouse_gpio_config_pd_check
+0x5260 mouse_init_sunt
+0x5263 mouse_init_sensor_wakeup
+0x5264 mouse_init_sensor
+0x526c mouse_twspi_reset
+0x526f mouse_read_sensor_id
+0x5276 mouse_init_p32xx_id2_judge
+0x527f mouse_s210x_3205_3t_judge
+0x5283 mouse_s201x_init_param
+0x5285 mouse_mx8650_init_param
+0x528a mouse_8009_init_param
+0x5299 mouse_3205_3t_init_param
+0x52a2 mouse_3204_3l_init_param
+0x52a9 mouse_3212_init_param
+0x52ab mouse_sensor_wr_seq
+0x52b2 mouse_ka8_init_param_check
+0x52c4 mouse_ka8_init_param
+0x52c6 mouse_ka8ul_init_param
+0x52c9 mouse_ka8hd_sensor_judge
+0x52d3 mouse_ka8hd_init_param
+0x52d6 mouse_enable_ka8_sensor_wp
+0x52d9 mouse_p6520_init_param
+0x52dc mouse_init_p3065
+0x52e1 mouse_p3065_init_param
+0x52e3 mouse_p3065xy_init_param
+0x52e5 mouse_ka8g2_id2_judge
+0x52ea mouse_ka8g2_init_param
+0x52ed mouse_ka5857_init_param
+0x52f0 mouse_sensor_reset
+0x52f4 mouse_sensor_reset_end
+0x52f8 mouse_sensor_poweron_init
+0x52fd mouse_sensor_poweron
+0x5301 mouse_sensor_poweron_end
+0x5303 mouse_sensor_powerdown
+0x530a mouse_sensor_powerdown_end
+0x530c mouse_check_sensor_data
+0x5319 mouse_p32xx_sensor_motion
+0x5320 mouse_p32xx_sensor_motion_2
+0x5323 mouse_p32xx_sensor_motion_1
+0x5333 mouse_p3065_judge
+0x5335 mouse_motion32xx_6clk_direction_selection
+0x5337 mouse_motion32xx_9clk_direction_selection
+0x5339 mouse_motion32xx_12clk_direction_selection
+0x533b mouse_motion32xx_3clk_direction_selection
+0x533d mouse_p3212_sensor_motion
+0x5343 mouse_p3212_sensor_motion_1
+0x5346 mouse_p3212_sensor_motion_2
+0x5359 mouse_read_3212sensor_xy_high
+0x535b mouse_pka8g2_sensor_motion
+0x5361 mouse_pka8g2_sensor_motion_1
+0x5365 mouse_p8009_sensor_motion
+0x5370 mouse_motion_6clk_direction_dispose
+0x5374 mouse_motion_12clk_direction_dispose
+0x5378 mouse_motion_9clk_direction_dispose
+0x5380 mouse_motion_3clk_direction_dispose
+0x5382 mouse_sensor_data_swap_places
+0x5387 mouse_clear_sensor_data
+0x538b mouse_clear_sensor_data_by_reset
+0x538d mouse_init_sensor_reset
+0x538e mouse_data_xy_release
+0x5397 mouse_data_extsign
+0x5399 mouse_data_ior
+0x539b mouse_data_extsign_bit3
+0x539e mouse_read_sensor_common
+0x53a4 mouse_sensor_sdio_low
+0x53ab mouse_set_sdio_high
+0x53ad mouse_bluetooth_fast_conn_init
+0x53ae mouse_ble_fast_conn_init
+0x53b3 mouse_buletooth_fast_conn_end
+0x53ba mouse_device1_check_auto_discover
+0x53bc mouse_device2_check_auto_discover
+0x53bd mouse_device_check_auto_discover
+0x53c1 mouse_bluetooth_fast_conn_disable
+0x53c3 mouse_stop_bluetooth_mode
+0x53c6 mouse_disconnect
+0x53cb mouse_check_125hz
+0x53cd mouse_bluetooth_125hz
+0x53d3 mouse_bluetooth_125hz_clear
+0x53d5 mouse_current_mult_update
+0x53da mouse_priority_bb_event
+0x53e9 mouse_le_bb_event_connected
+0x53f1 mouse_le_bb_event_connected_next
+0x53f9 mouse_le_bb_disconnected
+0x5400 mouse_le_bb_disconnected_next
+0x5406 mouse_le_pairing_success
+0x5408 mouse_le_enc_info
+0x5408 mouse_updata_le_param
+0x540a mouse_le_ll_start_encryt
+0x540d mouse_le_ll_reconn_start_encryt
+0x540f mouse_le_ll_enable_start_enc_flag
+0x5411 mouse_le_enable_connect_flag
+0x5415 mouse_le_conn_param_update_rsp_recieved
+0x541e mouse_le_conn_param_lpm_disable
+0x5420 mouse_le_bb_event_connect_complete
+0x5426 mouse_le_write_enable
+0x5428 mouse_le_parse_conn_param_accepted
+0x5434 mouse_le_lpm_mult_reinit
+0x5436 mouse_le_conn_param_lpm_enable
+0x5438 mouse_le
+0x5440 mouse_le_next
+0x5450 mouse_fill_battery_level_le
+0x5455 mouse_check_51cmd_adv
+0x545e mouse_le_check_adv_flag
+0x545f mouse_le_check_adv_flag_loop
+0x5465 mouse_le_adv_data_update
+0x5469 mouse_le_parse_att
+0x5470 mouse_le_parse_att_read_request
+0x5476 mouse_le_send_att_read_response
+0x547a mouse_le_send_att_read_response_check_auth
+0x547f mouse_le_parse_att_write_request
+0x5484 mouse_bb_disconnected
+0x548a mouse_bb_discon_clear_stack
+0x5490 mouse4_0_event_bb_disconn
+0x5494 mouse_bb_event_timer
+0x54ab mouse_bt_discovery_check
+0x54ad mouse_bt_discovery_by_pb_button
+0x54b2 mouse_long_button_bt_discovery
+0x54ba mouse_commbination_dpi_check_timer
+0x54c4 mouse_commbination_key_count_init
+0x54c6 mouse_commbination_dpi_check
+0x54c9 mouse_retransmit_commbination_key_check
+0x54cb mouse_commbination_key_select_device_timer
+0x54d4 p_mouse_check_mouse_key_select_device_set
+0x54d7 mouse_commbination_key_process
+0x54dd mouse_24g_commbination_key_process
+0x54e0 mouse_commbination_key_start
+0x54e6 mouse_commbination_key_up
+0x54ec mouse_commbination_key_down
+0x54f1 mouse_combination_ui_timer
+0x54fa mouse_check_discovery_timeout_timer
+0x54fd mouse_check_discovery_timeout
+0x54ff mouse_check_direct_timeout_timer
+0x5505 mouse_check_direct_timeout
+0x550d mouse_le_enable_att_list_timer
+0x5510 mouse_le_send_smp_security_request_timer
+0x5515 mouse_le_pairing_sm_start_check
+0x551a mouse_le_battery_updata_timer
+0x551f mouse_le_battery_level_updata
+0x5522 mouse_le_enable_att_list
+0x5527 mouse_current_mult_update_timer
+0x552a mouse_current_mult_reinit
+0x552c mouse_long_mult_init
+0x552f mouse_check_no_data_timeout_timer
+0x5532 mouse_check_no_data_timeout
+0x5535 mouse_no_data_timer_init
+0x5538 mouse_store_information_delay_timer
+0x553b mouse_store_device_info_check
+0x553f mouse_bb_event_discovery_btn
+0x5544 mouse_start_discovery
+0x5554 mouse_start_discovery_norandom
+0x5562 mouse_stop_discovery
+0x5565 mouse_stop_le_adv
+0x5569 mouse_store_remote_bdaddr
+0x556f mouse_unplug_clean_bdaddr
+0x5571 mouse_store_device_info_delay
+0x5574 mouse_store_device_info
+0x557a mouse_store_dpi_info_check
+0x5580 mouse_store_eeprom_device_info
+0x5584 mouse_store_eerpom_dpi
+0x5588 mouse_store_flash_device_info
+0x558a mouse_store_otp_device_info
+0x558e mouse_write_otp_app_initflag
+0x5594 mouse_write_otp_device_flag
+0x5596 mouse_write_otp_device_flag_loop
+0x55a0 mouse_device_flag_store
+0x55a6 mouse_devoce_flag_store_end
+0x55aa mouse_device_flag_store_check
+0x55b8 mouse_device_flag_otp_store_judge
+0x55bb mouse_write_otp_device_info
+0x55c0 mouse_write_otp_24g_addr
+0x55c2 mouse_otp_store_24g_addr_loop
+0x55cc mouse_24g_addr_store
+0x55d4 mouse_write_otp_le_device1
+0x55d6 mouse_otp_store_le_addr1_loop
+0x55e0 mouse_le_addr1_store
+0x55e8 mouse_write_otp_le_device2
+0x55ea mouse_otp_store_le_addr2_loop
+0x55f4 mouse_le_addr2_store
+0x55fc mouse_write_otp_le_addr_increase_count_info
+0x5600 mouse_otp_store_le_addr_increase_count_loop
+0x560a mouse_le_addr_increase_count_store
+0x5612 mouse_store_otp_dpi
+0x5616 mouse_otp_store_dpi_loop
+0x5620 mouse_otp_dpi_store
+0x5626 mouse_dpi_store_end
+0x562a mouse_dpi_store_last_check
+0x5638 mouse_dpi_otp_store_judge
+0x563b mouse_device_flag_check
+0x5640 mouse_load_eeprom_info_check
+0x5648 mouse_eeprom_load_recon_info
+0x564c mouse_load_eeprom_dpi
+0x5650 mouse_load_flash_info_check
+0x5654 mouse_information_flash_parameters
+0x565a mouse_spid_flash_release_form_powerdown
+0x565b mouse_spid_write_flash_cmd
+0x5661 mouse_spid_flash_powerdown
+0x5663 mouse_spid_write_flash_cmd_common
+0x566f mouse_flash_erase_sector
+0x5672 mouse_spid_write_flash
+0x567d mouse_flash_power_down
+0x5685 mouse_load_otp_info_check
+0x5689 mouse_app_initflag_load_check
+0x5691 mouse_app_initflag_load
+0x5696 mouse_load_default_dpi
+0x5697 mouse_temp_store_dpi
+0x5699 mouse_otp_load_app_initflag
+0x569d mouse_otp_store_app_initflag
+0x56a1 mouse_read_otp_device_flag
+0x56a3 mouse_read_otp_device_flag_loop
+0x56ad mouse_read_otp_device_flag_common
+0x56b0 mouse_device_flag_load
+0x56b6 mouse_device_flag_load_last
+0x56b7 mouse_device_flag_load_end
+0x56bb mouse_store_device_flag
+0x56bd mouse_device_flag_temp_load
+0x56bf mouse_read_otp_device_info
+0x56c3 mouse_read_otp_le_device1
+0x56c5 mouse_read_otp_le_device2
+0x56c7 mouse_read_otp_le_device1_addr
+0x56c9 mouse_read_otp_le_device1_addr_loop
+0x56d3 mouse_read_otp_le_addr1_common
+0x56d6 mouse_le_addr1_load
+0x56d9 mouse_read_otp_le_device1_locall_addr
+0x56db mouse_read_otp_le_device1_locall_addr_loop
+0x56e5 mouse_read_otp_le_locall_addr1_common
+0x56e8 mouse_le_locall_addr1_load
+0x56ee mouse_device_le_locall_addr1_init
+0x56f0 mouse_read_otp_le_device2_addr
+0x56f2 mouse_read_otp_le_device2_addr_loop
+0x56fc mouse_read_otp_le_addr2_common
+0x56ff mouse_le_addr2_load
+0x5702 mouse_read_otp_le_device2_locall_addr
+0x5704 mouse_read_otp_le_device2_locall_addr_loop
+0x570e mouse_read_otp_le_locall_addr2_common
+0x5711 mouse_le_locall_addr2_load
+0x5717 mouse_device_le_locall_addr2_init
+0x571a mouse_read_otp_24g_addr
+0x571c mouse_read_otp_24g_addr_loop
+0x5726 mouse_read_otp_24g_addr_common
+0x5729 mouse_24g_addr_load
+0x572c mouse_read_otp_le_addr_increase_count_info
+0x572e mouse_read_otp_le_addr_increase_count_loop
+0x5738 mouse_read_otp_le_addr_increase_count_common
+0x573b mouse_le_addr_increase_count_load
+0x573e mouse_read_otp_dpi
+0x5742 mouse_read_otp_dpi_loop
+0x574c mouse_read_otp_dpi_common
+0x574f mouse_dpi_load
+0x5755 mouse_dpi_load_last
+0x5756 mouse_dpi_load_end
+0x5759 mouse_idle
+0x5767 mouse_select_device_check
+0x576b mouse_select_device_by_pb_button
+0x576d mouse_select_device_by_pb_button_check
+0x5776 mouse_retransmit_select_device_by_pb_button
+0x577c mouse_3io6key_pb_button_check_end
+0x577e mouse_select_device_by_pb_button_exit
+0x5781 mouse_pb_button_check
+0x578a mouse_select_device_by_pb_button_end
+0x578d mouse_pb_button_connect_gnd
+0x578f mouse_pb_button_connect_matrix
+0x5797 mouse_select_device_button_up
+0x57a2 mouse_select_device_button_down
+0x57ae mouse_select_device_ghost_check
+0x57b1 mouse_ghost_key_value_check
+0x57b8 mouse_check_select_device_by_switch
+0x57bc mouse_switch_gpio_connect_vin_check
+0x57bf mouse_switch_gpio_connect_gnd_check
+0x57c2 mouse_switch_gpio_connect_vin
+0x57c8 mouse_switch_gpio_connect_gnd
+0x57ce mouse_select_btdevice
+0x57d2 mouse_select_24gdevice
+0x57d5 mouse_select_device_set
+0x57d7 mouse_check_select_device_by_switch_once
+0x57db mouse_switch_gpio_connect_vin_check_once
+0x57de mouse_switch_gpio_connect_gnd_check_once
+0x57e1 mouse_switch_gpio_connect_vin_once
+0x57e7 mouse_switch_gpio_connect_gnd_once
+0x57ed mouse_check_select_24g_device
+0x57f0 mouse_select_device_stop_set
+0x57f2 mouse_check_select_btdevice
+0x57f6 mouse_ready_reconnection_by_button
+0x57fb mouse_store_device_number_before_reset
+0x5801 mouse_soft_reset
+0x5803 mouse_select_device_number
+0x5809 mouse_select_device_count_clean_bt
+0x580b mouse_select_device_number_24g
+0x580f mouse_select_device_count_clean_24g
+0x5811 mouse_store_device_number2eeprom
+0x5815 mouse_bt_button_check
+0x5818 mouse_select_device_enable
+0x581a mouse_select_device_disable
+0x581c mouse_bt_cannel_reconn_enable
+0x581e mouse_bt_cannel_reconn_disable
+0x5820 mouse_bt_discovery_button_down_enable
+0x5822 mouse_bt_discovery_button_down_disable
+0x5824 mouse_adc_read_enable
+0x5826 mouse_24g_set_250hz
+0x5828 mouse_24g_search_dongle_enable
+0x582a mouse_16m_enable
+0x582c mouse_dpi_4level_enable
+0x582e mouse_enable_function_flag
+0x5832 mouse_disable_function_flag
+0x5836 mouse_polling_device
+0x5841 mouse_drawing_optima
+0x5853 mouse_drawing_optima_init
+0x5858 mouse_drawing_optima_modify
+0x586a mouse_data_y_store
+0x586c mouse_drawing_optima_xy_offset_modify
+0x587f mouse_pre_xy_data_judge
+0x5882 mouse_pre_xy_pdata_offset
+0x5885 mouse_xy_data_offset_new
+0x5887 mouse_pre_xy_ndata_offset
+0x588d mouse_current_xy_data_judge
+0x5890 mouse_current_xy_pdata_offset
+0x5894 mouse_current_xy_ndata_offset
+0x589a mouse_pre_xy_get_0_4_times
+0x589d mouse_current_xy_get_0_6_times
+0x589f mouse_div_end
+0x58a2 mouse_drawing_optima_data_x
+0x58aa mouse_drawing_optima_data_y
+0x58b2 mouse_drawing_optima_data
+0x58b8 mouse_data_store_pre
+0x58bc mouse_data_sum_overflow
+0x58c0 mouse_data_sum_overflow_p
+0x58c3 mouse_data_sum_n
+0x58c9 mouse_data_set_direction
+0x58cc mouse_data_zero
+0x58ce mouse_pdata_get_half
+0x58d0 mouse_pdata_get_new_value
+0x58d4 mouse_pdata_invert
+0x58d5 mouse_rega_in_out
+0x58d8 mouse_disable_asm
+0x58da mouse_enable_asm
+0x58dc mouse_pdata_greater_than_check
+0x58e1 mouse_data_less_than_check
+0x58e6 mouse_data_abs_check
+0x58ed mouse_data_abs
+0x58f1 mouse_data_abs_store
+0x58f3 mouse_data_reversal
+0x58f6 mouse_24g_long_sleep_param_update_timer
+0x58f9 mouse_24g_long_sleep_normal_param
+0x58fc mouse_24g_long_sleep_set
+0x5901 mouse_24g_long_sleep_set_80ms
+0x5902 mouse_24g_long_sleep_set_end
+0x5904 mouse_24g_long_sleep_set_30ms
+0x5906 mouse_24g_long_sleep_set_50ms
+0x5908 mouse_24g_long_sleep_set_100ms
+0x590a mouse_24g_hibernate_set
+0x5916 mouse_wakeup_24g
+0x591b mouse_wakeup_24g_from_long_sleep
+0x591f mouse_wheel_gpio_init
+0x5923 mouse_24g_transmit_start
+0x5927 mouse_24g_fast_conn_mode_check
+0x592b mouse_soft_agc_disable
+0x592d mouse_soft_agc_enable
+0x5930 device_store_normal_tx_power
+0x5933 device_fetch_normal_tx_power
+0x5936 mouse_24g_stop
+0x593a mouse_24g_start_mode
+0x5948 mouse_24g_mode_setup_error
+0x594b mouse_24g_first_start_auto_pair_mode
+0x594d mouse_24g_reconn_general_dongle
+0x5952 mouse_24g_start_auto_pair
+0x5956 mouse_24g_first_start_reconn
+0x5959 mouse_24g_first_bluetooth_reconnect
+0x595d mouse_24g_first_bb_event_reconn_timeout
+0x5960 mouse_24g_first_store_reconn_info
+0x5965 mouse_24g_start_pair_mode
+0x596c mouse_24g_pair_mode_check
+0x5971 mouse_24g_attempt_fail
+0x597a mouse_24g_attempt_fail_enter_hibernate
+0x5980 mouse_24g_fast_conn_attempt_fail
+0x5988 mouse_24g_reconn_dongle_start
+0x598c mouse_24g_auto_pair_attempt_fail
+0x5991 mouse_reconn_dongle_attempt_fail
+0x5997 mouse_24g_attempt_success
+0x59a8 mouse_24g_pairing_complete
+0x59ba mouse_24g_short_sleep_clear_wake
+0x59bc mouse_24g_package_data
+0x59c7 mouse_24g_mouse_package_data
+0x59d6 mouse_24g_mouse_package_data_now
+0x59dc mouse_24g_keyboard_package_data
+0x59df mouse_g24_retransmit
+0x59e3 mouse_g24_retransmit_100ms_timer
+0x59ea mouse_g24_retransmit_100ms_timer_init
+0x59ed mouse_dpi_check_once
+0x59f0 mouse_24g_before_lpm_sleep
+0x59f2 mouse_logo_led_on_timer
+0x59fc mouse_logo_led_off
+0x59fe mouse_logo_led_on
+0x5a00 mouse_dpi_led_blink_delay_timer
+0x5a03 mouse_dpi_led_blink_init
+0x5a06 mouse_dpi_led_blink_set_3_level
+0x5a0b mouse_dpi_led_blink_set_4_level
+0x5a11 mouse_dpi_level_1_blink
+0x5a13 mouse_dpi_level_2_blink
+0x5a15 mouse_dpi_level_3_blink
+0x5a17 mouse_dpi_level_4_blink
+0x5a19 mouse_multi_dpi_led_blink_enable
+0x5a1e mouse_dpi_led_blink_delay
+0x5a24 mouse_check_dpi_blink
+0x5a29 mouse_low_voltage_led_timer
+0x5a32 mouse_low_led_blink_timer
+0x5a3b mouse_low_voltage_led_on_judge
+0x5a3d mouse_low_voltage_led_on
+0x5a3f mouse_low_led_timer_count_clean
+0x5a43 mouse_low_voltage_led_off_judge
+0x5a45 mouse_low_voltage_led_off
+0x5a47 mouse_low_led_blink_count_init_judge
+0x5a4b mouse_device_multi_led_parm_init
+0x5a52 mouse_multi_low_led_blink_count_init
+0x5a55 mouse_multi_led_blink_timer_init
+0x5a59 mouse_multi_dpi_led_blink_timer_init
+0x5a5a mouse_store_multi_led_blink_timer
+0x5a5c mouse_device_24g_led_blink_timer_init
+0x5a5e mouse_device_le_discovery_led_blink_timer_init
+0x5a60 mouse_device_le_reconn_led_blink_timer_init
+0x5a62 mouse_device_poweron_led_config
+0x5a66 mouse_multi_led_enable
+0x5a69 mouse_device_24g_pair_led_config
+0x5a70 mouse_device_le_reconn_led_config
+0x5a78 mouse_device_led_blink_count_init
+0x5a7a mouse_device_discovery_led_config
+0x5a7c mouse_multi_led_blink_enable_init
+0x5a81 mouse_led_multi_timer
+0x5a85 mouse_device_multi_led_type_on
+0x5a8a mouse_device_poweron_led_off
+0x5a8e mouse_multi_led_type_blink
+0x5a93 mouse_device_led_blink_judge
+0x5a96 mouse_device_led_blink_limit
+0x5a98 mouse_multi_led_type_blink_next
+0x5a9b mouse_multi_led_type_blink_start
+0x5a9f mouse_multi_led_blink
+0x5aa3 mouse_multi_led_blink_count_decrease
+0x5aa7 mouse_multi_led_on_judge
+0x5aa9 mouse_device_multi_led_on
+0x5aaa mouse_device_led_on
+0x5ab0 mouse_device_24g_led_on
+0x5ab2 mouse_device_bt1_led_on
+0x5ab4 mouse_device_bt2_led_on
+0x5ab5 mouse_led_on
+0x5ab6 mouse_led_off
+0x5ab7 mouse_multi_led_off_judge
+0x5ab9 mouse_multi_led_off_judge_next
+0x5abb mouse_device_multi_led_off
+0x5abc mouse_device_led_off
+0x5ac2 mouse_device_24g_led_off
+0x5ac6 mouse_device_bt1_led_off
+0x5aca mouse_device_bt2_led_off
+0x5ace mouse_device_multi_led_all_off
+0x5ad3 mouse_multi_dpi_led_off_judge
+0x5ad6 mouse_multi_dpi_led_off
+0x5ad8 mouse_multi_dpi_led_on_judge
+0x5adb mouse_multi_dpi_led_on
+0x5add mouse_low_voltage_led_no_enter_lpm
+0x5ae3 mouse_low_voltage_led_no_enter_lpm_next
+0x5ae6 g24_transmit_by_interrupt_exit_check
+0x5ae9 mouse_lpm_mode_clear
+0x5aec mouse_store_signal_rssi
+0x5aee mouse_le_transmit
+0x5af0 mouse_set_lpm_mult
+0x5af2 mouse_le_set_lpm_mult
+0x5af7 mouse_24g_long_sleep
+0x5b02 mouse_24g_short_sleep
+0x5b0f mouse_24g_short_sleep_last_miss
+0x5b14 mouse_24g_short_sleep_notify
+0x5b1e mouse_24g_short_sleep2
+0x5b1f mouse_24g_short_sleep3
+0x5b22 mouse_24g_short_sleep_default
+0x5b25 mouse_24g_short_sleep_long
+0x5b29 mouse_24g_miss_temp_clear
+0x5b2c mouse_24g_short_sleep_2
+0x5b2e mouse_24g_sub_miss_temp
+0x5b33 mouse_24g_transmit_callback
+0x5b35 mouse_24g_send_time_check
+0x5b55 mouse_24g_send_time_check_average
+0x5b6d mouse_24g_short_sleep_storet
+0x5b6f mouse_24g_send_time_check_average_late
+0x5b79 mouse_24g_send_time_check_average_min
+0x5b7b mouse_24g_send_timer_first
+0x5b7f mouse_24g_send_time_long_wake
+0x5b83 mouse_usb_check_enable
+0x5b87 mouse_usb_isr
+0x5b8b mouse_usb_interface_check
+0x5b8f mouse_usb_mode_enable
+0x5ba4 mouse_usb_mode_disable
+0x5bb0 mouse_usb_mode
+0x5bba mouse_push_data_to_usb
+0x5bc2 mouse_usb_timer_check
+0x5bd1 mouse_usb_timer_timeout
+0x5bd4 mouse_usb_timer_init
+0x5bd7 mouse_usb_config_param
+0x5bdb mouse_usb_device_name_config
+0x5be1 mouse_usb_config_kb_check
+0x5be6 mouse_usb_config_param_setup
+0x5be8 mouse_usb_hid_icon_config
+0x5bea mouse_usb_report_rate_set
+0x5bef mouse_usb_report_rate_set_125hz
+0x5bf1 mouse_usb_report_rate_set_250hz
+0x5bf3 mouse_usb_report_rate_set_500hz
+0x5bf5 mouse_usb_report_rate_set_1000hz
+0x5bf7 rec_cb_function
+0x5bfa rec_process_idle
+0x5bfc rec_ui_timer_check
+0x5c03 rec_ui_timer_check_loop
+0x5c0c rec_ui_timer_init
+0x5c0e rec_ui_timer_check_end
+0x5c13 rec_ui_timer_check_send_evt
+0x5c14 rec_evt_timer_loop
+0x5c1b rec_tscan
+0x5c21 rec_tscan_gnd_process
+0x5c26 rec_tscan_process
+0x5c2c rec_tscan_col_state_init
+0x5c32 rec_tscan_row_state_init
+0x5c3a rec_tscan_row_gpio_config_input_pull_up
+0x5c3f rec_tscan_get_row_state
+0x5c47 rec_tscan_get_row_state_loop
+0x5c5c rec_tscan_record_key_coord
+0x5c6a rec_tscan_combin_key_num_output
+0x5c6c rec_tscan_combin_key_num_loop
+0x5c72 rec_tscan_output_combin_key_num
+0x5c77 rec_tscan_pull_up_current_col_gpio
+0x5c7a rec_tscan_col_state_next_gpio_check
+0x5c82 rec_tscan_key_down
+0x5c8e rec_tscan_key_up
+0x5c96 rec_tscan_key_up_send
+0x5c99 rec_tscan_key_up_config
+0x5c9c rec_tscan_key_num_output
+0x5c9d rec_tscan_record_init
+0x5ca0 rec_tscan_key_value_clear
+0x5ca3 rec_tscan_get_gndkey_state
+0x5ca9 rec_tscan_get_gndkey_loop
+0x5cbb rec_tscan_gndkey_down
+0x5cc5 rec_tscan_gndkey_up
+0x5ccd rec_tscan_gndkey_up_send
+0x5ccf rec_tscan_gndkey_num_output
+0x5cd0 rec_tscan_gndkey_record_param_init
+0x5cd2 rec_tscan_gndkey_num_check
+0x5cd5 rec_tscan_gndkey_num_loop
+0x5cdc rec_tscan_store_gndkey_press_state
+0x5cde rec_tscan_store_gndkey_release_state
+0x5ce0 rec_gpio_bit_first_set
+0x5ce2 rec_gpio_bit_second_set
+0x5ce4 rec_tscan_debounce
+0x5cf3 rec_gpio_weak_pullup
+0x5cf6 rec_gpio_set_lpm_weak_pullup
+0x5d05 rec_gpio_set_0x10_regc
+0x5d07 rec_gpio_set_input
+0x5d0a rec_gpio_wakeup_disable
+0x5d0b rec_save_regc
+0x5d0d rec_rescue_regc
+0x5d10 rec_save_rega
+0x5d12 rec_rescue_rega
+0x5d15 rec_save_reg
+0x5d18 rec_rescue_reg
+0x5d1b rec_tscan_gpio_set_before_lpm
+0x5d1e rec_gpio_wakeup_enable
+0x5d21 rec_tscan_gpio_config_high_impedance
+0x5d24 rec_tscan_gpio_config_tri_angle_wakeup
+0x5d28 rec_gpio_config_high_impedance
+0x5d29 rec_high_impedance_loop
+0x5d2e rec_gpio_wakeup_config
+0x5d2f rec_gpio_wakeup_config_loop
+0x5d3a rec_gpio_wakeup_addr_search
+0x5d3f rec_tscan_output_gndkey_num
+0x5d43 rec_tscan_output_key_map
+0x5d4c rec_tscan_key_num_check
+0x5d4f rec_tscan_key_num_loop
+0x5d56 rec_tscan_output_key_num
+0x5d59 rec_push_buffer_in_queue
+0x5d5c rec_push_buffer_in_queue_end
+0x5d5e rec_puch_buffer_in_queue_check
+0x5d61 rec_key_type_select
+0x5d68 rec_set_key_type_consumer
+0x5d6a rec_set_key_type_mouse
+0x5d6c rec_set_key_type_keypad
+0x5d6e rec_set_key_type_nec
+0x5d70 rec_tscan_key_send
+0x5d76 rec_tscan_send_keypad
+0x5d7e rec_send_nec_keypad
+0x5d88 rec_le_send_consumer
+0x5d94 rec_le_send_data
+0x5d9c rec_le_send_mouse
+0x5da9 rec_le_send_keyboard
+0x5db1 rec_le_fill_standard_key_data
+0x5db7 rec_led_start_on
+0x5db9 rec_led_start_off
+0x5dbb rec_nec_send_userdata_6122
+0x5dcd rec_nec_init_6122
+0x5dd3 rec_pwm_duty_cycle_set
+0x5dd9 rec_nec_send_boot_6122
+0x5ddc rec_nec_empty
+0x5dde rec_nec_carrier
+0x5de0 rec_nec_delay_us
+0x5de1 rec_nec_delay_us_loop
+0x5de5 rec_nec_send_byte_6122
+0x5de6 rec_nec_send_byte_loop_6122
+0x5dec rec_nec_send_bit_6122
+0x5def rec_nec_send_bit0_6122
+0x5df2 rec_nec_send_bit1_6122
+0x5df5 rec_nec_send_bit
+0x5df9 rec_nec_send_repeat_6122
+0x5e01 rec_nec_6122_start
+0x5e05 rec_nec_disable
+0x5e06 rec_nec_6122_stop
+0x5e07 rec_nec_io_disable
+0x5e08 rec_gpio_config_output_low
+0x5e0a rec_gpio_config_output_high
+0x5e0c rec_nec_send_repeat_6122_timer_init
+0x5e0d rec_nec_timer_set
+0x5e10 rec_nec_send_repeat_6122_timer_clear
+0x5e12 rec_nec_rx_num
+0x5e17 rec_nec_rptr_big_wptr
+0x5e1d rec_nec_receive_data
+0x5e28 rec_nec_receive_one_data
+0x5e33 rec_nec_receive_two_data
+0x5e46 rec_nec_receive_three_data
+0x5e5b rec_nec_rptr_reset
+0x5e5f rec_nec_receiver_init_wtr
+0x5e63 rec_nec_carry_time
+0x5e6c rec_nec_carry_store
+0x5e77 rec_nec_receive_run_time
+0x5e7b rec_nec_receive_timeout
+0x5e7e rec_nec_update_timeout
+0x5e83 rec_nec_learn_analysis
+0x5e8d rec_audio_adpcm_encode
+0x5e92 rec_adpcm_encode
+0x5e9d rec_adpcm_encode_loop
+0x5ed7 rec_adpcm_encode_cal_delta
+0x5eda rec_adpcm_encode_store_sign1
+0x5edc rec_adpcm_encode_cal_smaller_zero
+0x5ede rec_adpcm_set_diff_by_sign
+0x5ee1 rec_adpcm_diff_negation
+0x5ee5 rec_check_diff_big_step1
+0x5eea rec_check_diff_big_common
+0x5eee rec_check_diff_big_common_next
+0x5ef3 rec_check_diff_big_step2
+0x5efb rec_check_diff_big_step3
+0x5f03 rec_check_sign_deal1
+0x5f05 rec_valpred_sub_vpdiff
+0x5f08 rec_valpred1_store
+0x5f0a rec_valpred_add_vpdiff
+0x5f0e rec_adpcm_check_valpred_more_32767
+0x5f12 rec_adpcm_check_valpred_less_f32767
+0x5f17 rec_adpcm_valpred_more_32767
+0x5f19 rec_adpcm_valpred_less_f32767
+0x5f1b rec_adpcm_check_index_less_0
+0x5f20 rec_adpcm_check_index_big_88
+0x5f25 rec_adpcm_set_0_index
+0x5f26 rec_adpcm_store_index1
+0x5f28 rec_adpcm_set_88_index
+0x5f2a rec_adpcm_check_bufferstep
+0x5f2c rec_adpcm_bufferstep_neque_0
+0x5f30 rec_adpcm_bufferstep_eque_0
+0x5f35 rec_adpcm_bufferstep_increase_out_ptr1
+0x5f3a rec_adpcm_set_bufferstep_to_outp
+0x5f3c rec_adpcm_get_val_from_inp
+0x5f43 rec_int16_2_int32
+0x5f45 rec_int16_2_int32_less_0
+0x5f47 rec_calca_ixor
+0x5f49 rec_char_2_int32
+0x5f4b rec_char_2_int32_less_0
+0x5f4e rec_voice_notify_apk
+0x5f50 rec_le_notify_data
+0x5f54 rec_voice_start_apk
+0x5f55 rec_voice_notify_apk_data
+0x5f58 rec_voice_end_apk
+0x5f5a rec_voice_notify_box
+0x5f5d rec_voice_start_box
+0x5f5e rec_voice_notify_box_data
+0x5f62 rec_voice_end_box
+0x5f64 rec_ota_process
+0x5f70 rec_ota_init
+0x5f77 rec_ota_parse_protocol_version_req
+0x5f7f rec_ota_parse_buck_size_req
+0x5f86 rec_ota_parse_start_req
+0x5f89 rec_ota_tx_flashmode_not_support
+0x5f8e rec_ota_tx_start_req_success
+0x5f92 rec_ota_parse_start_req_update_normal
+0x5f9e rec_erase_num_sector_flash
+0x5f9f rec_erase_num_sector_flash_loop
+0x5fa8 rec_ota_set_flash_start_addr
+0x5fb2 rec_ota_parse_data_write_req
+0x5fb2 rec_ota_parse_data_write_data_store
+0x5fbf rec_ota_prep_data_write_rsp
+0x5fc4 rec_ota_tx_notify_success
+0x5fc5 rec_ota_tx_notify_common
+0x5fcd rec_ota_parse_end_req
+0x5fe5 rec_ota_tx_end_req_return
+0x5fee rec_ota_tx_length_error
+0x5ff0 rec_ota_result_error_write_flash
+0x5ff2 rec_ota_data2flash_remain
+0x6001 rec_ota_queue_count_256
+0x6005 rec_ota_sum_page
+0x6007 rec_ota_sum_all
+0x6013 rec_ota_sum_len
+0x6017 rec_ota_sum
+0x6019 rec_ota_sum_loop
+0x601d rec_ota_data_from_flash_len
+0x6026 rec_ota_data_from_flash
+0x602b rec_ota_data_from_flash_page
+0x602f rec_ota_polling
+0x6032 rec_ota_data2flash_page
+0x603d rec_ota_increase_flash_offset_addr
+0x6041 rec_ota_data2flash
+0x6046 rec_queue_ota_init
+0x6048 rec_queue_init_config
+0x6052 rec_queue_ota_push
+0x6060 rec_queue_ota_data_loss
+0x6061 rec_queue_ota_pop
+0x6068 rec_out_queue
+0x606b rec_out_queue_loop
+0x6070 rec_ota_updata_head
+0x6073 rec_ota_write_head_check
+0x6077 rec_ota_write_head_a
+0x6079 rec_ota_read_head
+0x607d rec_ota_write_head_b
+0x607e rec_ota_write_head
+0x6085 rec_spid_flash_erase_page
+0x608e rec_spi_wait_flash
+0x6097 rec_save_contr
+0x6099 rec_rescue_contr
+0x609b rec_save_contw
+0x609d rec_rescue_contw
+0x609f rec_save_loopcnt_rega
+0x60a1 rec_rescue_rega_loopcnt
+0x60a2 rec_rescue_loopcnt
+0x60a5 rec_save_loopcnt
+0x60a7 rec_save_temp
+0x60a9 rec_rescue_temp
+0x60ac rec_queue_enter_config
+0x60b6 rec_queue_out_config
+0x60c0 rec_enter_queue
+0x60c0 rec_enter_queue_loop
+0x60c8 shutter_init
+0x60d7 shutter_power_switch
+0x60dc shutter_common_init
+0x60ea shutter_hart_swtich_power_on
+0x60ed shutter_le_scale_lpm_lock
+0x60f3 shutter_process_bb_event
+0x60fc ble_shutter_process_baseband_connect
+0x6100 ble_shutter_process_baseband_disconnect
+0x6103 ble_shutter_process_reconnect_complete
+0x610b ble_shutter_process_parse_connect_parameter_update_response
+0x6111 shutter_process_soft_swtich_button_down
+0x6117 shutter_store_currenct_led_state
+0x611c shutter_process_soft_swtich_button_up
+0x6121 shutter_load_currenct_led_state
+0x612a shutter_le_bb_event_timer
+0x612d shutter_check_sleep_timer
+0x6130 shutter_sleep_timeout
+0x6134 shutter_check_power_off_timer
+0x6137 shutter_check_power_off_timeout
+0x613e ble_shutter_reconn_timer
+0x6143 shutter_process_idle
+0x6145 shutter_process_lpm_before
+0x6147 shutter_le_before_hibernate
+0x614a shutter_stop_bluetooth_discovery
+0x614a ble_shutter_stop_bluetooth_discovery
+0x614e shutter_start_bluetooth_discovery
+0x6150 ble_shutter_start_discovery
+0x615d shutter_soft_swtich_power_on
+0x615d shutter_start_reconnect
+0x615f ble_shutter_start_reconnect
+0x616b shutter_disconnect_current_connection
+0x616e shutter_check_data_enable
+0x6172 shutter_check_ble_data_enable
+0x6175 shutter_check_bluetooth_conn
+0x6179 shutter_change_bluetooth_status_bt_disconn
+0x6179 ble_shutter_change_bluetooth_status_bt_disconn
+0x617a shutter_check_send_data
+0x6182 shutter_key_change
+0x6186 shutter_key_press
+0x6189 shutter_key_release
+0x618b push_queue_press_or_release
+0x618e push_buffer_in_queue
+0x6193 shutter_send_data_to_master
+0x6196 pop_queue_to_ble_data
+0x619f queue_push_one_byte
+0x61a2 queue_pop_one_byte
+0x61a7 ble_shutter_receive_data
+0x61aa shutter_init_param
+0x61b3 shutter_load_buffer_config_form_datarom
+0x61b7 shutter_soft_swtich_power_off
+0x61bb shutter_wait_power_off
+0x61be ui_soft_swtich_init
+0x61c3 ui_soft_switch_first_power_on
+0x61c7 ui_soft_swtich_init_next
+0x61ca ui_soft_swtich_init_power_on_time
+0x61cf ui_soft_switch_botton_up
+0x61d3 ui_soft_switch_botton_long_press
+0x61d6 ui_soft_switch_power_on
+0x61de ui_soft_switch_power_off
+0x61e4 shutter_ble_adv_interval_set
+0x61e8 le_send_notify_from_list
+0x61f0 shutter_le_uuid_table_conf
+0x61f3 shutter_default_init
+0x6259 shutter_dy_6_key_conf
+0x625f shutter_dy_7_key_conf
+0x6265 shutter_dy_8_key_conf
+0x626b shutter_dy_key_conf
+0x6270 shutter_dy_adv_conf
+0x6283 shutter_dy_le_uuid_table_conf
+0x6286 shutter_dy_init
+0x62a9 shutter_dy_process_lpm_before
+0x62ab shutter_dy_le_before_hibernate
+0x62af dy_set_key_gpio_before_hiernate
+0x62b4 dy_set_key_gpio_loop
+0x62bc dy_set_key_gpio_loop_end
+0x62bf dy_shutter_gpio_config_input_pd
+0x62c1 shutter_dy_process_idle
+0x62cb shutter_dy_iphone_every_move_max_set
+0x62d8 shutter_dy_shutter_send_data_to_master
+0x62dd shutter_dy_pop_queue_to_ble_data
+0x62e9 shutter_dy_pop_queue_to_ble_data2
+0x62f2 shutter_dy_le_bb_event_timer
+0x62f9 shutter_dy_iphone_move_mid_timer
+0x62fc shutter_dy_iphone_move_mid_timeout
+0x6300 shutter_dy_iphone_move_mid
+0x630a shutter_dy_iphone_up_mid
+0x630c shutter_dy_iphone_like_mid
+0x630e shutter_dy_clear_key_state_timer
+0x6311 shutter_dy_clear_key_state_timeout
+0x6314 shutter_dy_check_power_off_timer
+0x6317 shutter_dy_check_power_off_timeout
+0x631a shutter_dy_process_bb_event
+0x6322 ble_dy_shutter_process_parse_connect_parameter_update_response
+0x632b ble_parameter_updata_response_ios
+0x632e ble_shutter_dy_pairing_success
+0x6337 ble_shutter_dy_process_baseband_disconnect
+0x633c ble_shutter_dy_process_baseband_connect
+0x6340 shutter_dy_check_send_data
+0x6348 shutter_dy_over_clear
+0x634a shutter_dy_key_value_filter
+0x634d shutter_dy_key_change
+0x6351 shutter_dy_key_press
+0x6354 shutter_dy_key_press_next
+0x6364 shutter_dy_page_set
+0x6367 shutter_dy_move_set
+0x636c shutter_dy_key_move_to_specify_location
+0x636e shutter_dy_iphone_check_move_mid
+0x6374 shutter_dy_key_press_clk
+0x637f shutter_dy_shutter_key_release
+0x6382 shutter_dy_shutter_key_release_time
+0x6393 shutter_dy_key_release_led
+0x6396 shutter_dy_push_queue_release
+0x6399 shutter_dy_push_queue_release1
+0x639c shutter_dy_push_queue_release1_next
+0x63a2 shutter_dy_push_queue_press_or_release
+0x63a5 shutter_dy_move_mode_queue_release
+0x63a9 shutter_dy_jude_queue_size
+0x63ae shutter_dy_push_queue_long_release
+0x63b4 shutter_clear_dy_key_state
+0x63b7 shutter_dy_keyscan_key_process
+0x63c0 shutter_dy_keyscan_key_check_release_loop
+0x63d4 shutter_dy_keyscan_key_check_long_press
+0x63eb shutter_dy_key_long_press_set_key_normal
+0x63ee shutter_dy_key_long_press_set_move_trigger
+0x63f6 shutter_dy_move_mode_disable
+0x63f8 shutter_dy_long_press_android_or_ios
+0x63fd shutter_dy_keyscan_key_check_release
+0x6407 shutter_dy_keyscan_key_process_next
+0x6418 shutter_dy_skip_check_combine_key
+0x641e shutter_dy_single_key_led
+0x6425 shutter_dy_check_combine_key
+0x6426 shutter_dy_check_combine_key_loop
+0x6431 shutter_dy_check_combine_key_parse
+0x6439 shutter_dy_push_buffer_in_queue
+0x643d shutter_dy_move_to_specify_location
+0x6444 shutter_dy_move_ios_to_specify_location
+0x6449 shutter_dy_move_down_left_corner_count_set
+0x6453 shutter_dy_move_down_left_corner
+0x6457 shutter_dy_move_down_left_corner_loop
+0x645e shutter_dy_move_x_max
+0x6461 shutter_dy_move_x_max_number
+0x6468 shutter_dy_move_y_max
+0x646b shutter_dy_move_y_max_number
+0x6472 shutter_dy_check_combine_key_release
+0x647d shutter_dy_combine_key_enableuser
+0x6480 shutter_dy_check_combine_key_release_all
+0x648c shutter_dy_check_move_data
+0x6491 shutter_dy_check_move_data_single_key
+0x6497 shutter_dy_check_move_data_combine_key
+0x649e shutter_dy_get_move_data
+0x64a8 shutter_dy_get_move_data_iphone
+0x64b5 shutter_dy_move_x_empty_check
+0x64bb shutter_dy_every_move_size_set
+0x64c0 shutter_dy_move_left
+0x64c6 shutter_dy_move_store_x
+0x64c7 shutter_dy_move_data_store
+0x64d2 shutter_dy_get_ios_move_data
+0x64da shutter_dy_move_ios_release_data
+0x64e2 shutter_dy_move_android_data_store
+0x64e9 shutter_dy_move_android_release_data
+0x64f1 shutter_dy_data_android_xy_data
+0x64f9 shutter_dy_move_x_check_max
+0x6504 shutter_dy_clear_move_x
+0x6507 shutter_dy_move_right
+0x650b shutter_dy_move_right_next
+0x650f shutter_dy_move_up
+0x6511 shutter_dy_move_y_check_max
+0x6523 shutter_dy_dnroid_up_check_y
+0x652a shutter_dy_clear_move_y
+0x652b shutter_dy_android_move_y_empty_check
+0x652d shutter_dy_move_y_empty_check
+0x6537 shutter_dy_move_store_y
+0x6539 shutter_dy_move_down
+0x653b shutter_dy_move_down_next
+0x6542 shutter_dy_move_android_down
+0x6548 ble_shutter_dy_receive_data
+0x654b shutter_dy_le_find_service_hand_by_uuid
+0x6558 shutter_dy_le_parse_att
+0x6561 shutter_dy_le_parse_att_read_blob_request
+0x656c shutter_dy_le_parse_att_read_blob_request_ios
+0x656d shutter_dy_le_parse_att_read_blob_request2
+0x6577 shutter_dy_le_parse_att_read_request
+0x657b shutter_dy_le_send_att_read_response_check_auth
+0x6581 shutter_dy_le_send_att_read_response
+0x6587 shutter_dy_le_parse_att_find_by_type_value_rsp
+0x6587 shutter_dy_le_remote_iphone
+0x65a1 shutter_dy_iphone_move_initial_set
+0x65a8 shutter_dy_le_parse_error_rsp
+0x65ac shutter_dy_remote_not_iphone
+0x65b1 shutter_dy_not_iphone_read_conf
+0x65b3 shutter_dy_check_iphone
+0x65b5 shutter_dy_le_get_press_ptr
+0x65bb shutter_dy_le_get_release_ptr
+0x65bb shutter_dy_le_get_release_ptr_set
+0x65c3 shutter_dy_le_get_release_ptr_volume
+0x65ca shutter_dy_le_get_release_ptr_set_volume_dec
+0x65cc shutter_dy_le_get_release_ptr_set_volume_inc
+0x65ce shutter_dy_le_get_vol_inc_ptr
+0x65d3 shutter_dy_le_get_vol_dec_ptr
+0x65d8 shutter_dy_long_key_function
+0x65dd shutter_dy_long_key_volume_timer
+0x65e0 shutter_dy_long_key_volume_timeout
+0x65e4 shutter_dy_loop_send_volume_inc_page
+0x65e8 shutter_dy_loop_send_volume_dec_page
+0x65ec shutter_dy_clear_volume_timer
+0x65ef shutter_dy_link_key_loop_timer
+0x65f2 shutter_dy_link_key_loop_timeout
+0x65f5 shutter_dy_link_data_android_or_ios
+0x65fa shutter_dy_link_key_long_press
+0x65ff shutter_dy_clear_link_key_timer
+0x6602 shutter_dy_jude_clear_move_config
+0x6606 shutter_dy_clear_move_config
+0x6609 shutter_dy_write_otp_convert_data
+0x660d shutter_dy_read_otp_convert_data
+0x6611 shutter_dy_store_ios_config_data
+0x6623 shutter_dy_store_android_config
+0x662a shutter_dy_get_ios_config
+0x663c shutter_dy_get_android_config
+0x6641 shutter_dy_store_move_config_info
+0x6642 shutter_dy_load_move_config_info
+0x6643 shutter_dy_shutter_uart_config_loop
+0x664e shutter_dy_shutter_get_first_read_addr
+0x6652 shutter_dy_shutter_next_read_addr
+0x6656 shutter_dy_shutter_last_read_addr
+0x665a shutter_dy_shutter_read_ios_android_addr
+0x6665 shutter_dy_update_read_check_addr
+0x6669 shutter_dy_campare_otp_data
+0x6679 shutter_dy_set_shutter_valid_data_flag
+0x667d shutter_dy_shutter_judge_ios_or_android
+0x6689 shutter_dy_shutter_not_find_ios_or_android
+0x668e shutter_dy_shutter_android_save_init_loaction
+0x6693 shutter_dy_shutter_ios_save_init_loaction
+0x66a2 shutter_dy_clear_temp_count
+0x66a4 shutter_dy_campare_effective_addr_read_otp
+0x66bd shutter_dy_campare_effective_addr_write_otp
+0x66d0 shutter_dy_shutter_read_move_config_from_otp_addr
+0x66d5 shutter_dy_shutter_write_move_config_to_otp_addr
+0x66d9 shutter_dy_shutter_1s_timer
+0x66dc rf_debug_rx_gpio_low
+0x66dd rf_debug_gpio_low
+0x66df rf_debug_rx_on_line
+0x66df rf_debug_rx_gpio_high
+0x66e0 rf_debug_gpio_high
+0x66e2 rf_debug_rx_gpio_h_l_h
+0x66e3 rf_debug_rx_gpio_l_h
+0x66e5 rf_debug_rx_gpio_l_h_l
+0x66e5 rf_debug_shutdown_radio_line
+0x66e6 rf_debug_rx_crc_line
+0x66e7 rf_debug_rx_sync_line
+0x66e8 rf_debug_rx_crc_fail_line
+0x66ea rf_debug_rx_crc_error_line
+0x66ea rf_debug_rx_sync_timeout_line
+0x66eb rf_debug_tx_off_line
+0x66eb rf_debug_tx_gpio_low
+0x66ed rf_debug_tx_on_line
+0x66ed rf_debug_tx_gpio_high
+0x66ef rf_debug_tx_gpio_l_h_l
+0x66f2 hci_init
+0x66fb hci_process_loop
+0x66fd hci_init_clksel_xtal
+0x66ff hci_init_uart_default_config
+0x6703 hci_init_uart_default_config_tx
+0x6707 hci_init_uart_default_config_rx
+0x670b hci_init_uart_default_config_rts
+0x670f hci_init_uart_default_config_cts
+0x6713 hci_init_uart_config
+0x672f hci_init_pwm_default_config
+0x6733 hci_init_pwm
+0x673e hci_process_check_uart_rx
+0x6746 hci_parse_packet_cmd
+0x6754 hci_parse_complete_packet
+0x6757 hci_parse_packet_cmd_ogf_vendorspecific_debug
+0x6762 phci_grp_vendor_chipid
+0x6767 phci_grp_vendor_baud
+0x676a phci_grp_vendor_patch_common
+0x6775 phci_grp_vendor_patch
+0x6776 phci_grp_vendor_patch_loop
+0x677a phci_grp_vendor_patch_check_sum
+0x677f phci_grp_vendor_done
+0x6782 phci_grp_vendor_done_loop
+0x678e phci_grp_vendor_patch_bad
+0x6790 phci_grp_vendor_mem
+0x6796 phci_grp_vendor_flow_control
+0x679a hci_normal_reply
+0x679b hci_send_event_command_complete_error_command_nuknown
+0x679d hci_send_event_command_complete_error_command_disallowed
+0x679f hci_send_event_command_complete_without_payload
+0x67a2 hci_send_event_command_complete
+0x67ab hci_prepare_send_event
+0x67af hci_drop_current_packet
+0x67b4 cmd_exit
+0x67b6 hid_device_load_flash_info_check
+0x67bb hid_device_store_flash_device_info
+0x67c1 hid_device_before_store_reconn_info
+0x67ca hid_device_store_le_device
+0x67cf hid_device_load_device_info
+0x67d5 hid_device_select_reconn_device
+0x67df hid_device_load_le_device
+0x67e4 hid_device_check_device_addr
+0x67e6 hid_device_check_le_device_addr
+0x67e8 hid_device_check_bt_device_addr_common
+0x67ec hid_device_check_device_addr_end
+0x67f2 hid_device_clean_addr
+0x67f8 hid_device_ble_init_address
+0x67ff hid_device_default_parm_init
+0x680c hid_device_param_common_init
+0x681d hid_device_compare_addr_store
+0x6820 hid_device_enable_lpm
+0x6822 hid_device_disable_lpm
+0x6824 hid_device_le_send_empty_packet
+0x6825 hid_device_le_send_package_data
+0x6828 hid_device_le_fill_package_data
+0x682e hid_device_le_fill_standard_key_data
+0x6830 mouse_le_fill_standard_key_data
+0x6831 keyoard_le_fill_standard_key_data_send
+0x6833 hid_device_le_fill_bit_consumer_key_data
+0x6836 hid_device_le_fill_multimedia_key_data
+0x6839 hid_device_le_fill_systemctrl_key_data
+0x683c hid_device_send_package_data_check
+0x683e hid_device_le_send_mouse_data
+0x6843 hid_device_le_fill_data
+0x684b hid_device_clear_key_data
+0x684e hid_device_copy_key_data
+0x6852 hid_device_24g_keyboard_package_data_set
+0x6856 hid_device_push_mouse_data_to_usb
+0x685b hid_device_push_keyboard_data_to_usb
+0x685d hid_device_push_keyboard_package_data_to_usb
+0x6864 hid_device_push_standard_keyboard_data_to_usb
+0x6869 hid_device_push_systemctrl_key_data_to_usb
+0x686f hid_device_push_multimedia_key_data_to_usb
+0x6875 hid_device_push_bit_consumer_key_data_to_usb
+0x6878 hid_device_le_parse_att_write_request
+0x6883 hid_device_24g_search_dongle_init
+0x6886 mouse_24g_search_dongle
+0x6888 hid_device_24g_search_dongle
+0x6892 hid_device_24g_search_dongle_loop
+0x689e hid_device_24g_search_dongle_loop_end
+0x68a4 hid_device_24g_search_dongle_loop_retry
+0x68a6 hid_device_24g_search_dongle_check
+0x68b1 hid_device_24g_search_dongle_success
+0x68bc hid_device_g24_ackpayload_parse
+0x68c4 hid_device_before_lpm_set
+0x68c8 hid_device_peripheral_clock_off
+0x68cb hid_device_cb_fuction
+0x68d2 l2cap_init
+0x68d7 l2cap_init_wake
+0x68d8 check_l2cap_map
+0x68da check_l2cap_map_loop
+0x68df check_l2cap_map_used
+0x68e3 check_l2cap_map_used2
+0x68e5 ble_l2cap_malloc
+0x68e9 host_l2cap_malloc
+0x68ee host_l2cap_malloc_loop
+0x68f6 host_l2cap_malloc_next_buffer
+0x68fa host_l2cap_malloc_succ
+0x68fd host_l2cap_malloc_check_buffer_enough
+0x6901 host_l2cap_malloc_check_buffer_enough_loop
+0x690e host_l2cap_malloc_check_buffer_enough_end
+0x6913 host_l2cap_malloc_into_fifo
+0x691c host_l2cap_malloc_into_fifo_no_push
+0x691f l2cap_malloc_fifo_out
+0x6924 l2cap_malloc_free
+0x692b l2cap_malloc_discard
+0x6935 l2cap_malloc_is_fifo_full
+0x6938 l2cap_malloc_is_fifo_nearly_full
+0x693b l2cap_malloc_is_fifo_empty
+0x693e l2cap_malloc_fifo_get_first_ptr
+0x6941 l2cap_malloc_free_loop
+0x6943 l2cap_malloc_fifo_get_first_ptr_empty
+0x6945 l2cap_malloc_get_full_map
+0x6949 l2cap_malloc_get_full_map_loop
+0x694f l2cap_lpm_get_wake_lock
+0x6951 l2cap_lpm_put_wake_lock
+0x6953 twspi_reset
+0x695b twspi_reset_next
+0x6965 twspi_reset_ext
+0x6968 twspi_disable
+0x696c twspi_enable
+0x6970 twspi_write
+0x6971 twspi_read
+0x6972 aes_disable
+0x6976 read_function_aes
+0x697a read_function
+0x697d read_fuction_zero
+0x697f get_block_header
+0x6980 get_block_header0
+0x6988 read_first_block
+0x698d read_first_block_cont
+0x6990 get_iv
+0x6994 set_iv
+0x699a load_aes_reinit
+0x699d load_storage
+0x69aa load_storage_loop
+0x69b1 load_data_checksum_calc
+0x69ba load_data_checksum_compare
+0x69c8 load_data_checksum_ok
+0x69ca load_data_checksum_compare_fail
+0x69cc loadcode_lock_load_ucode
+0x69d0 loadcode_lock
+0x69d7 loadcode_set_lock
+0x69df load_otp_hv_vsel
+0x69e4 load_otp_set_init
+0x69ea set_otp_config
+0x69fb set_otp_config2
+0x6a11 loadcode_load_key
+0x6a20 loadcode
+0x6a2b loadcode_bistwait
+0x6a31 loadcode_nobist
+0x6a34 loadcode_otp
+0x6a49 loadcode_unenc
+0x6a4b loadcode_otp_loop
+0x6a56 loadcode_otp_end
+0x6a58 loadcode_iic_loop
+0x6a64 run_otp_code
+0x6a67 loadcode_check_otp_lock
+0x6a6c loadcode_otp_lock
+0x6a6e loadcode_iic_eeprom_2k
+0x6a77 loadcode_spi
+0x6a78 loadcode_spi_loop
+0x6a87 loadcode_hci
+0x6a8b clear_key_buf
+0x6a91 iicd_load_gpio_init
+0x6a95 iicd_load_default_gpio
+0x6a99 loadcode_iic_by_eeprom
+0x6a9f loadcode_timeout
+0x6aa5 loadcode_error_delay
+0x6aab loadcode_error
+0x6aaf set_bistfix_wake
+0x6ab1 set_bistfix_wake_patchram
+0x6ab7 set_bistfix_wake_xram
+0x6abf set_bistfix_save_xram
+0x6ac9 set_bistfix_save_patchram
+0x6ad1 set_bistfix_set_patchram_addr
+0x6adc set_bistfix
+0x6ae3 set_bistfix_loop
+0x6ae9 set_ucode_status
+0x6af0 decrypt_code
+0x6af3 decrypt_code_loop
+0x6af6 decrypt_code_skip
+0x6afa save_ucode_loop
+0x6aff load_ucode
+0x6b07 load_ucode_loop
+0x6b0c otp_load_code
+0x6b19 otp_enable_chgpump25
+0x6b22 otp_enable_chgpump65
+0x6b25 disable_otp
+0x6b26 otp_disable_chgpump
+0x6b28 enable_otp_read
+0x6b29 otp_reset
+0x6b2f otp_set_addr
+0x6b33 otp_write
+0x6b37 otp_program
+0x6b3a otp_program_bit
+0x6b5a otp_skip_0
+0x6b62 otp_read_data
+0x6b63 otp_read_data1
+0x6b68 otp_read_data_loop
+0x6b71 otp_read_noinc
+0x6b77 otp_read_unenc
+0x6b7b app_lpm_lock_check
+0x6b89 app_lpm_kb_lock
+0x6b8c app_lpm_module_lock
+0x6b8c app_lpm_hciboot_lock
+0x6b90 app_lpm_dongle_lock
+0x6b96 app_lpm_mouse_lock
+0x6b9c app_lpm_mouse_lock_24g
+0x6ba0 app_lpm_shutter_lock
+0x6ba4 app_lpm_car_lock
+0x6ba7 app_lpm_car_lock_application_and_ble
+0x6bad app_mpu_s0_lock
+0x6bb0 app_lpm_mpu_lock_ble
+0x6bb2 app_mpu_s1_lock
+0x6bb5 app_lpm_mpu_lock_24g
+0x6bb8 app_lpm_mpu_lock_24g_ble
+0x6bbc spid_init
+0x6bbd spid_init_common
+0x6bc6 spid_write_reg
+0x6bcd spid_read_reg
+0x6bce spid_read_regs
+0x6bd6 wait_spid_done
+0x6bda flash_write
+0x6be1 flash_write_spi_sm_timer
+0x6be8 spid_flash_write_start
+0x6bee spid_flash_erase_sector
+0x6bf6 spid_flash_wait_erase_sector
+0x6bfa spid_flash_write_data
+0x6c01 spid_flash_wait_write_data
+0x6c09 spid_flash_data_recover
+0x6c0b spid_flash_data_recover_comm
+0x6c0e spid_flash_data_preserve
+0x6c16 spid_init_flash
+0x6c1c spid_unlock_flash
+0x6c1d spid_sendcmd_common
+0x6c25 spid_flash_release_form_powerdown
+0x6c27 spid_flash_powerdown
+0x6c29 spid_write_flash_data
+0x6c32 spid_write_flash
+0x6c36 spid_write_flash_common
+0x6c43 spid_read_flash
+0x6c55 spid_read_flash_wait
+0x6c59 wait_spid_flash_done
+0x6c62 spid_load_flash
+0x6c6f spi_load_flash_wait
+0x6c81 spi_gpio_init
+0x6c86 spi_pin_set
+0x6c92 spi_gpio_default_init
+0x6c99 soft_reset_chip
+0x6c9b iic_init_600khz
+0x6ca3 iic_init_360khz
+0x6cab iicd_init_pin
+0x6cac iicd_init_pin_scl_sda
+0x6cb2 iicd_read_init_pin
+0x6cb4 wait_iicd_done
+0x6cb7 set_eeprom_size_2k
+0x6cba clear_eeprom_size_2k
+0x6cbd iicd_read_eep_data_size_2k
+0x6cc1 iicd_read_eep_size_2k_lcadcode
+0x6cc4 iicd_read_eep_size_2k
+0x6cc9 iicd_write_protect_eep_data
+0x6cce iicd_eeprom_write_enable
+0x6cd3 iicd_wp_gpio_output_low
+0x6cd5 iicd_eeprom_write_disable
+0x6cd7 iicd_read_eep_data
+0x6cdd iicd_read_eep
+0x6ce3 iicd_read_eep_common
+0x6cf2 iicd_inc_addr
+0x6cf5 iicd_read_eep_load_code_size_2k
+0x6cf6 iicd_set_addr
+0x6cfa iicd_write_eep_data
+0x6d00 iicd_write_eep_loop
+0x6d0f iicd_eep_transparency
+0x6d21 iicd_eep_deal_short_packet
+0x6d26 iicd_write_eep_size_2k
+0x6d30 iicd_write_eep
+0x6d3d iicd_write_eep_common
+0x6d44 iic_check_eeprom_standby
+0x6d46 iic_check_eeprom_standby_wait
+0x6d5b uarta_init_dma_mem
+0x6d5d uart_init_dma_mem
+0x6d66 uarta_init_baud_rate
+0x6d68 uarta_calc_baud_rate_config
+0x6d6a uart_calc_baud_rate_config
+0x6d6f uart_calc_baud_rate_config_choice_uart_clock
+0x6d73 uart_calc_baud_rate_config_choice_uart_clock_crystal
+0x6d75 uart_clock_select_main_freq_crystal
+0x6d79 uart_clock_select_main_freq_dpll
+0x6d7d uarta_init_tx
+0x6d81 uarta_init_rx
+0x6d85 uarta_prepare_tx
+0x6d89 uarta_prepare_rx
+0x6d8d uarta_send
+0x6d8f uarta_rxdone
+0x6d91 uarta_clear_current_rx
+0x6d95 uarta_prepare_tx_register_push
+0x6d97 uarta_send_register_pop
+0x6d99 uart_register_push
+0x6d9d uart_register_pop
+0x6da1 wait_uarttx
+0x6da4 uart_copy_tx_bytes_fast
+0x6da6 uart_copy_tx_bytes_fast_loop
+0x6dab uart_copy_tx_bytes_fast_loop_four
+0x6db1 uart_tx_8_bytes
+0x6db4 uart_tx_4_bytes
+0x6db7 uart_copy_tx_bytes
+0x6db9 uart_copy_tx_bytes_loop
+0x6dbd uart_copy_rx_bytes_fast
+0x6dbf uart_copy_rx_bytes_fast_loop
+0x6dc4 uart_copy_rx_bytes_fast_loop_four
+0x6dca uart_rx_8_bytes
+0x6dcd uart_rx_4_bytes
+0x6dd0 uart_copy_rx_bytes
+0x6dd2 uart_copy_rx_bytes_loop
+0x6dd6 app_store_nvram_event
+0x6dd8 check_51cmd_update_device_record
+0x6ddf write_device_record
+0x6de3 write_device_loop_find
+0x6def write_device_loop_find0
+0x6df3 set_index_finded_device
+0x6df8 set_index_find_device_master_addr
+0x6dfd store_rec_data_common
+0x6e00 set_index_finded_device_ble_mode
+0x6e04 set_index_finded_device_irk
+0x6e06 store_ble_rec_data_common
+0x6e08 set_index_finded_device_ediv
+0x6e0b nvram_find_addr_from_bd_list
+0x6e11 find_addr_from_bd_list_ble_mode
+0x6e19 find_addr_from_bd_list_static_addr
+0x6e1d find_addr_from_bd_list_static_addr_reconnect
+0x6e20 find_addr_from_bd_list_static_addr_sc_or_legacy
+0x6e20 find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy
+0x6e23 find_addr_from_bd_list_static_addr_sc
+0x6e23 find_addr_from_bd_list_random_non_resolvable_private_address_sc
+0x6e26 find_addr_from_bd_list_public_device_addr
+0x6e29 find_addr_from_bd_list_random_non_resolvable_private_address
+0x6e2b find_addr_from_bd_list_random_addr
+0x6e2d find_addr_from_bd_list_common
+0x6e35 nvram_find_addr_from_list
+0x6e45 nvram_find_addr_from_list_compare
+0x6e47 find_master_addr_from_list_compare
+0x6e4c find_addr_from_list_compare_ble_mode
+0x6e4f find_irk_form_list_compare
+0x6e61 genernate_master_macaddress
+0x6e6a find_ediv_form_list_compare
+0x6e79 check_nvram
+0x6e7f init_device_list
+0x6e83 init_device_list_loop
+0x6e88 load_device_list_mode_4
+0x6e93 clear_ltk_exists
+0x6e95 eeprom_store_le_reconn_info
+0x6e97 eeprom_store_reconn_info
+0x6e9c get_gpio_wakeup_index
+0x6ea5 gpio_set_wake_by_current_state
+0x6eac gpio_set_wake
+0x6eb3 gpio_set_wake_high
+0x6eb7 gpio_set_wake_low4bit
+0x6ebc gpio_set_qdec_mode
+0x6ec0 gpio_set_low_pullup
+0x6ec8 gpio_set_low_pullup_low4bit
+0x6ecd gpio_clr_wake
+0x6ed5 gpio_config_input_nowake
+0x6ed7 gpio_config_input
+0x6eda gpio_config_input_without_wake
+0x6ee0 gpio_get_bit
+0x6eeb gpio_get_bit_reverse
+0x6eed gpio_out_inactive
+0x6ef1 gpio_config_output
+0x6ef1 gpio_out_active
+0x6ef4 gpio_out_flag
+0x6ef7 gpio_out
+0x6efc gpio_check_active
+0x6f03 gpio_check_active_high
+0x6f05 gpio_set_analog
+0x6f09 gpio_write
+0x6f0b gpio_set_high_impedance
+0x6f10 gpio_addr
+0x6f14 gpio_addr_next
+0x6f16 gpio_addr_ext
+0x6f19 gpio_config_param
+0x6f1c gpio_config_function
+0x6f1d gpio_config_function_int
+0x6f22 gpio_config_function_int_next
+0x6f25 gpio_config_function_int_ext
+0x6f28 gpio_get_config
+0x6f2c gpio_get_config_next
+0x6f2f gpio_get_config_ext
+0x6f32 gpio_set_before_lpm
+0x6f34 setgpio_loop
+0x6f3e setgpio_loop_end
+0x6f42 gpio_set_before_lpm_ext
+0x6f45 setgpio_pullup
+0x6f48 setgpio_pulldown
+0x6f4b lpm_puchk_set_check
+0x6f4e lpm_config_puchk_disable
+0x6f4f lpm_config_puchk_set
+0x6f51 lpm_config_puchk_enable
+0x6f53 sadc_calibration
+0x6f5f sadc_cal_read
+0x6f62 sadc_cal_read_loop
+0x6f6b sadc_cal_write
+0x6f71 sadc_cal_write_loop
+0x6f7c adc_init_data
+0x6f8e vdd_calculate_by_mode
+0x6f93 vdd_reference_inter3v_calculate
+0x6f97 vdd_reference_inter3v_calculate_by_mode_vdcdc
+0x6f9e vdd_reference_inter3v_calculate_by_mode_gpio
+0x6fa4 mul1v_div1v_to_cal
+0x6fa9 enable_adc_init_config
+0x6fb2 enable_adc
+0x6fb7 enable_adc_reference_source_inter3v
+0x6fbe read_adc_inter1v
+0x6fd1 vdd_reference_inter1p8v_calculate
+0x6fd5 vdd_reference_inter1p8v_calculate_by_mode_vdcdc
+0x6fdb vdd_reference_inter1p8v_div2_calculate_by_mode_gpio
+0x6fe0 vdd_calculate00
+0x6fe8 vdd_calculate11
+0x6fee enable_adc_reference_source_inter1p8v
+0x6ff0 enable_adc_reference_source_inter1p8v_div2_gpio
+0x6ff8 enable_adc_reference_source_inter1p8v_vdcdc
+0x6fff enable_adc_reference_source_inter1p8v_common
+0x7007 sadc_channel
+0x700e sar_adc_read_wait
+0x7011 sadc_read
+0x7017 sadc_read_wait2
+0x701b sadc_dma
+0x702a vdd_calculate
+0x7030 vdd_calculate2
+0x7032 vdd_calculate1
+0x7039 vdd_calculate_common
+0x703e adc_bat_percent_lowpower_out
+0x704e adc_set_low_power_flag
+0x7051 adc_clear_low_power_flag
+0x7054 adc_set_no_power_flag
+0x7057 adc_clear_no_power_flag
+0x7059 adc_set_power_flag
+0x705b keyscan_key_init
+0x705d keyscan_key_init_next
+0x7062 keyscan_key_init_lp1
+0x7066 keyscan_key_init_end
+0x7067 keyscan_scan_key
+0x706d keyscan_scan_key_lp1
+0x7078 keyscan_scan_key_lp1_next
+0x707f keyscan_process_lpm_before
+0x7081 keyscan_process_lpm_before_next
+0x7086 keyscan_process_lpm_before_lp1
+0x708a keyscan_process_lpm_before_end
+0x708b keyscan_key_process
+0x7096 keyscan_key_process_next
+0x709f keyscan_key_lp1
+0x70ab keyscan_key_lp1_next
+0x70b4 keyscan_send_key_data
+0x70b9 pwm_init
+0x70bf delay_nop100
+0x70c1 pwm_clk_set
+0x70c4 pwm_12m_clk_set
+0x70c6 pwm_24m_clk_set
+0x70c8 pwm_33k_clk_set
+0x70ca pwm_out_set
+0x70de pwm_duty_cycle_set
+0x70e1 pwm_autoload_set
+0x70ea delay_1clk_of_33k
+0x70ec pwm_duty_cycle_set_without_autoload
+0x70f5 pwm_init_bit_set
+0x70f6 pwm_init_bit_set_process
+0x70fb pwm_gpio_select
+0x70fc pwm_gpio_select_process
+0x7100 pwm_enable
+0x7103 pwm_disable
+0x7106 pwm_set_select
+0x710b pwm_select_channel
+0x710e wdt_init_config
+0x711b wdt_set_enable
+0x711d wdt_set_disable
+0x711f wdt_init_set
+0x7123 nec_init_config
+0x7127 select_system_clk_12m_xtal
+0x7128 select_system_clk_12m_common
+0x712c select_system_clk_12m_dpll
+0x712e function_g2
+0x7145 function_f6_eb
+0x7155 get_r
+0x7159 function_f6_ea
+0x716c function_f5
+0x717e function_f5_common
+0x718f store_addr_common_b
+0x7194 store_addr_common_a
+0x7199 function_f4_ca
+0x71a4 function_f4_cb
+0x71af function_aes_cmac
+0x71b3 function_ceil16
+0x71c1 function_aes_cmac_set_flag_0_balnk
+0x71c4 function_aes_cmac_set_flag_0
+0x71c5 function_aes_cmac_set_flag_0_common
+0x71cf function_aes_cmac_aes
+0x71d2 function_aes_cmac_aes_loop
+0x71d8 function_aes_cmac_aes_loop_end
+0x71e0 load_inverse_result
+0x71e4 store_inverse_k
+0x71e6 inverse_k
+0x71e9 inverse_memdat
+0x71ed bn_lshift_0_inverse
+0x71f7 function_aes_cmac_k1_inverse
+0x71f8 function_aes_cmac_inverse_common
+0x71fc function_aes_cmac_k2_inverse
+0x71fe function_aes_cmac_generate_subkey
+0x7206 function_aes_cmac_k1
+0x720f function_aes_cmac_k1_0
+0x7210 function_aes_cmac_k2
+0x7219 function_aes_cmac_xor_rb
+0x721a function_aes_cmac_xor_rb_loop
+0x7220 function_aes_cmac_xor_loop_common
+0x7224 function_aes_cmac_padding
+0x7227 function_aes_cmac_padding_loop
+0x722c function_aes_cmac_padding_loop2
+0x722f function_aes_cmac_padding_beq_length
+0x7230 function_aes_cmac_padding_common
+0x7232 function_aes_cmac_padding_big_length
+0x7234 concatenate_temp24
+0x7235 concatenate_temp16
+0x7238 generate_stk
+0x723c authenticate_rconfirm
+0x723f authenticate_mconfirm
+0x7244 generate_confirm
+0x7247 generate_mrand
+0x724a generate_sk
+0x7253 ccm_b0
+0x7256 first_block_counter
+0x7258 first_block_data
+0x7259 first_block
+0x725a iv_common
+0x726b generate_mic
+0x727a generate_mic_loop
+0x727f generate_mic_end
+0x7283 aes_crypt_data
+0x728d le_encrypt_new_start
+0x72a6 ccm_wait_enc
+0x72ab ccm_check_enc_done
+0x72ad ccm_enc_done
+0x72b2 ccm_init_common
+0x72b9 wait_ccm_done
+0x72bb ccm_ctrl_clr
+0x72bd wait_aes
+0x72bf do_aes_ocb
+0x72c2 do_aes_cbc
+0x72c5 do_aes_ctr
+0x72c8 aes_init
+0x72cb wait_keyinit_done
+0x72ce dec_key_initial
+0x72d2 do_aes_ecb_dec
+0x72d9 ecb_dec_generate
+0x72dc ecb_dec_generate_loop
+0x72e1 aes_ecb_dec_loop
+0x72e8 do_aes_cbc_dec
+0x72f4 function_s1
+0x7309 function_c1
+0x730f function_c1_master
+0x731f function_c1_irat
+0x7324 function_c1_loop1
+0x7337 padding_data
+0x733c padding_loop
+0x7341 aes_load_data
+0x7342 load_data_loop
+0x7346 load_data_padding
+0x734b aes_load_xor
+0x734d load_key
+0x734f load_data128
+0x7350 load_regext
+0x7351 load_regext_loop
+0x7356 load_sk
+0x7358 clear_hidata
+0x735a regext_clear
+0x735d aes_clear_data
+0x735e aes_clear
+0x735f clear_loop
+0x7360 clear_data_rest
+0x7363 store_aes_result
+0x7365 send_aes_result_loop
+0x736a store_enc_data
+0x7370 store_enc_loop
+0x7378 store_enc_byte
+0x737c compare_res
+0x737e compare_res_loop
+0x7384 enable_authrom
+0x7388 disable_authrom
+0x738c init_memp
+0x73e3 init_memp_256
+0x7435 publickey_init
+0x7436 sp_calc_sequence_256_check
+0x743e stop_publickey_calc_256
+0x7440 sp_clear_flags
+0x7449 sp_calc_check_publickey_256
+0x7464 sp_calc_b256
+0x747a random_generator
+0x747f compare4
+0x7489 compare4_failed
+0x748a compare4_success
+0x748b bn_testbit
+0x7491 bn_eq_zero
+0x7497 bn_eq_0
+0x74a0 bn_bigeq
+0x74a3 bn_bigeq_0
+0x74ad bn_add
+0x74af bn_add_0
+0x74bb bn_sub
+0x74bd bn_sub_0
+0x74c9 bn_rshift6
+0x74cb bn_rshift
+0x74cc bn_rshift_0
+0x74d7 bn_lshift
+0x74d9 bn_lshift_0
+0x74e4 bn_load
+0x74e5 bn_load_0
+0x74ea sp_initialize_256
+0x74ed sc_reset
+0x74f0 sp_wait_pubkey_calc_256_done
+0x74f6 sp_debug_private_256
+0x750b sp_pubkey_calc_256
+0x7524 sp_pubkey_generated_256
+0x752a sp_dhkey_calc_256
+0x753a sp_dhkey_generated_256
+0x7540 sp_calc_sequence_256
+0x754a sp_calc_sequence_done_256
+0x7550 eckp_calc_256
+0x7558 eckp_calc_init_256
+0x755b eckp_calc_init_256_1
+0x7565 ecunmapz_256
+0x7577 ecdbl_256
+0x75c8 ecadd_256
+0x7634 bn_invmod_256
+0x7642 bn_invmod_256_2
+0x765d bn_invmod_256_1
+0x766b bn_invmod_256_0
+0x7672 bn_mulmod_256
+0x7680 bn_mulmod_256_1
+0x7686 bn_mulmod_256_0
+0x769b bn_p256mod
+0x7704 bn_load_mem
+0x7708 bn_load_256
+0x770a bn_sqrmod_256
+0x770c bn_add_256
+0x770e bn_addmod_256
+0x7711 bn_lshiftmod_256
+0x7712 bn_lshiftmod_ismod_256
+0x771b bn_lshiftmod_p_256
+0x7723 sub_p2_256
+0x7727 bn_submod_256
+0x7731 bn_submod_256_np
+0x773a bn_sub_256
+0x773c bn_rshift_256
+0x773f bn_lshift_256
+0x7742 bn_bigeq_256
+0x7746 bn_eq_zero_256
+0x7749 bn_rshifteven_256
+0x774a bn_rshifteven_256_1
+0x7759 bn_rshifteven_256_0
+0x775d ui_init
+0x7762 ui_dispatch
+0x7764 ui_button_init
+0x776e ui_button_polling
+0x7774 ui_button_down
+0x7780 ui_button_up
+0x778a ui_button_check_long_press
+0x7791 lpm_button_get_wake_lock
+0x7793 lpm_button_clean_wake_lock
+0x7795 calc_curr_struct_prt
+0x779a ui_led_init_global
+0x779f ui_led_init_loop
+0x77a5 ui_led_init_set
+0x77a8 ui_led_on_global
+0x77ad ui_led_blink_stop_global
+0x77ad ui_led_off_global
+0x77b2 ui_led_blink_start_global
+0x77b8 ui_led_set_style_global
+0x77bd ui_led_dispatch
+0x77c0 ui_led_blink_polling
+0x77c6 ui_led_off_static
+0x77c9 ui_led_on_static
+0x77cc ui_led_change_style_by_type
+0x77d5 ui_led_blink_state_lighting
+0x77e0 ui_led_blink_state_darking
+0x77ec ui_led_blink_infinite
+0x77f0 ui_led_blink_timer_start
+0x77f2 ui_led_stop_timer
+0x77f4 ui_timer_timeout
+0x77f8 ui_timer_check
+0x77ff ui_timer_check_loop
+0x7809 ui_timer_init
+0x780c ui_timer_check_end
+0x7812 ui_timer_check_send_evt
+0x7813 ui_ipc_get_lock
+0x7814 ui_ipc_get_lock_wait
+0x7817 ui_ipc_put_lock
+0x7819 ui_ipc_send_event
+0x7824 ui_ipc_send_cmd
+0x782d ui_ipc_clean_all_fifo
+0x7831 check_51cmd
+0x783c check_51cmd_once
+0x7850 check_51cmd_once_continue
+0x7859 check_51cmd_check_idle
+0x785e check_51cmd_restore
+0x7860 check_51cmd_adv
+0x7866 check_51cmd_stop_adv
+0x786b check_51cmd_direct_adv
+0x7871 check_51cmd_stop_direct_adv
+0x7876 check_51cmd_le_disconnect
+0x787a check_51cmd_ble_update_connect_param
+0x787b check_51cmd_led_off
+0x787d check_51cmd_led_on
+0x787f check_51cmd_led_start_blink
+0x7886 check_51cmd_led_start_blink_in_blink
+0x7889 check_51cmd_le_start_con
+0x788c check_51cmd_start_scan
+0x788e check_51cmd_stop_scan
+0x7891 check_51cmd_hibernate
+0x7897 check_51cmd_hibernate_btn_disabled
+0x7899 check_51cmd_le_smp_sec_req
+0x789a ui_check_paring_button
+0x789d queue_init
+0x78a2 queue_push
+0x78b2 calc_queue_next_ptr
+0x78ba queue_pop
+0x78cc queue_get_new_ele
+0x78db queue_store_new_ele
+0x78ea queue_empty
+0x78ee queue_full
+0x78f2 queue_get_size
+0x78f6 usb_isr
+0x7902 usb_init
+0x7905 usb_init_restart
+0x791a usb_offline_check_init
+0x791c usb_offline_state
+0x7922 usb_init_param
+0x7954 usb_config_cb
+0x7956 usb_tx_interval_config
+0x795b usb_nak_state
+0x7963 usb_nak_state_judge
+0x7966 usb_nak_state_timer_init
+0x796b usb0_attached_state_judge
+0x7970 usb_clear_halt_dispose
+0x7976 usb_rx_no_data
+0x7979 usb_rx_len
+0x7983 usb_rx_data
+0x7986 usb_rx_read
+0x798b usb_rx_ep13
+0x7994 usb_rx
+0x79a1 usb_class_type
+0x79a8 usb_out_one_byte
+0x79ac usb_in_device
+0x79b4 usb_out_device
+0x79bc usb_in_standard_req
+0x79c2 usb_in_class_req
+0x79c7 usb_in_manufacturer_req
+0x79c8 usb_out_standard_req
+0x79d0 usb_out_class_req
+0x79d5 usb_out_manufacturer_req
+0x79d6 usb0_force_stall
+0x79db usb0_reply_zerolen
+0x79dd usb0_request_get_configuration
+0x79ef usb0_request_get_cfg_dev_cfg
+0x79f1 usb0_request_get_cfg_dev_addr
+0x79f3 usb0_request_get_descriptor
+0x79fb dsc_hid_info
+0x7a00 dsc_hid_info_interface0
+0x7a03 dsc_hid_info_interface1
+0x7a06 dsc_device_info
+0x7a0a dsc_info_set_data_len
+0x7a0f dsc_info_set_initial_data_len
+0x7a10 dsc_info_set_data_size_completed
+0x7a15 dsc_info_set_current_data_len
+0x7a17 usb_set_high_addr
+0x7a1b usb0_set_addr
+0x7a1f dsc_config_info
+0x7a22 dsc_string_info
+0x7a30 dsc_hid_report_info
+0x7a34 dsc_hid_report_info0
+0x7a38 usb0_request_get_interface
+0x7a4a usb0_request_get_status
+0x7a5b usb0_sdsystem_dispose
+0x7a5d usb0_get_status_in_device
+0x7a62 usb_send_zero_packet
+0x7a64 usb_send_ones_packet
+0x7a66 usb_send_two_packet
+0x7a68 usb0_get_status_in_interface
+0x7a6c usb0_get_status_in_endpoint
+0x7a75 usb0_get_status_in_ep_in_ep0
+0x7a76 usb0_get_status_in_ep_in_ack
+0x7a79 usb0_get_status_in_ep_in_ep1
+0x7a7b usb0_get_status_in_ep_in_ep2
+0x7a7d usb0_get_status_in_ep_in_ep3
+0x7a7f usb_get_idle
+0x7a83 usb_get_report
+0x7a88 usb_get_report_dispose
+0x7a8b usb_get_report_send_data
+0x7a8f usb_get_report_data_release
+0x7a92 usb_get_report_data_success
+0x7a95 usb_get_protocol_req
+0x7a9d usb_get_report_protocol
+0x7a9e usb_get_boot_protocol
+0x7a9f usb0_request_clear_feature
+0x7aae usb0_request_clear_feature_out_device
+0x7abc usb0_request_clear_feature_out_interface
+0x7abd usb0_request_clear_feature_out_endpoint
+0x7ac6 usb0_force_stall_ep0_in_off
+0x7ac8 usb0_force_stall_ep1_in_off
+0x7ac9 usb0_force_stall_ep1_in_off_reply
+0x7acb usb0_force_stall_ep2_in_off
+0x7acd usb0_force_stall_ep3_in_off
+0x7acf usb0_request_set_feature
+0x7ad8 usb0_request_set_feature_out_device
+0x7ae3 usb_wakeup_timer_reinit
+0x7ae7 usb0_request_set_feature_out_interface
+0x7ae8 usb0_request_set_feature_out_endpoint
+0x7af3 usb0_force_stall_ep0_in_on
+0x7af5 usb0_force_stall_ep1_in_on
+0x7af7 usb0_force_stall_ep2_in_on
+0x7af9 usb0_force_stall_ep3_in_on
+0x7afb usb0_request_set_address
+0x7b0c usb_usb0_state_set_dev_default
+0x7b0d usb0_request_set_wait_address
+0x7b12 usb_usb0_state_set_dev_addr
+0x7b14 usb0_request_set_configuration
+0x7b29 usb0_request_set_cfg_addr_state
+0x7b29 usb0_request_set_cfg_cfg_state
+0x7b2d usb0_request_set_cfg_stay_addr_state
+0x7b2f usb0_request_set_interface
+0x7b40 usb_set_idle
+0x7b4e usb_clear_remote_wakeup_set0
+0x7b52 usb_set_report
+0x7b5e usb_get_led_status
+0x7b62 usb_set_report_resume_judge
+0x7b70 usb_set_protocol_req
+0x7b76 usb_set_boot_protocol
+0x7b79 usb_set_report_protocol
+0x7b7d usb0_respond_length
+0x7b7f usb0_respond
+0x7b84 usb0_respond_nostr
+0x7b88 usb_no_respond_data
+0x7b8a usb0_tx
+0x7b98 usb0_tx_short
+0x7b9c usb0_tx_info
+0x7bae usb0_tx_nostr
+0x7bb0 usb0_tx0
+0x7bb5 usb0_tx1
+0x7bc3 usb_tx_ep1
+0x7bc6 usb_tx_buf
+0x7bc8 usb_tx_loop
+0x7bcb usb_trig
+0x7bcf usb_tx_ep2
+0x7bd3 usb_tx
+0x7be2 usb_tx_data_ep1
+0x7bee usb_tx_data_ep2
+0x7bfe usb_tx_fifo_release
+0x7c01 usb_tx_ms_data
+0x7c09 usb_tx_ms_data_mac_boot_mode
+0x7c0a usb_tx_ms_data_mac_boot_regroup
+0x7c18 usb_tx_ms_data_normal_mode
+0x7c19 usb_tx_mac_boot_ms_regroup_r_or_lrkey
+0x7c1c usb_tx_kb_multikey_data
+0x7c20 usb_tx_kb_normal_data
+0x7c26 usb_tx_kb_systemkey_data
+0x7c2a usb_tx_kb_bit_consumer_data
+0x7c2e usb_tx_kb_n_key_rollover_data
+0x7c32 usb_inwake_state_tx_dispose
+0x7c35 usb_mac_wakeup_trig
+0x7c3a usb_mac_wakeup_judge
+0x7c3e usb_mac_wakeup
+0x7c42 usb_windows_wakeup
+0x7c45 usb_wakeup
+0x7c4b push_stack
+0x7c53 push_stack_rega_b_c
+0x7c57 pop_stack
+0x7c62 pop_stack_rega_b_c
+0x7c66 get_contw
+0x7c67 get_contw_end
+0x7c69 get_contr
+0x7c6a get_contr_end
+0x7c6c store_contw
+0x7c6f store_contr
+0x7c72 save_cont_pointers
+0x7c77 load_cont_pointers
+0x7c7c get_diff
+0x7c82 memcpy96
+0x7c83 memcpy64
+0x7c85 memcpy12
+0x7c86 memcpy4
+0x7c88 memcpy3
+0x7c8b memcpy8
+0x7c8e memcpy48
+0x7c8f memcpy32
+0x7c90 memcpy24
+0x7c91 memcpy16
+0x7c93 delay
+0x7c97 delay_10ms
+0x7c98 delay_ms_wait
+0x7c9b memset0_16
+0x7c9c memset0_8
+0x7c9d memset0_4
+0x7c9f clear_mem_256
+0x7ca1 clear_mem_512
+0x7ca3 clear_mem
+0x7ca5 memset0
+0x7ca8 clear_temp_block
+0x7cab xor_loop
+0x7cb3 inverse_data
+0x7cba inverse_loop
+0x7cc2 le2be_6byte
+0x7cc2 inverse_data_6byte
+0x7cc8 le2be_4byte
+0x7cc8 inverse_data_4byte
+0x7cce memcpy_fast
+0x7cd1 memcpy_fast_loop
+0x7cd6 memcpy_fast_loop_four
+0x7cdc memcpy
+0x7cde memcpy_loop
+0x7ce2 timer_stop
+0x7ce3 timer_init
+0x7cec timer_check_timeout
+0x7cf0 timer_reinit
+0x7cf1 timer_check
+0x7cfc timer_loop
+0x7d00 timer_counting
+0x7d07 clk_add
+0x7d12 clk_diff_rt
+0x7d14 clk_diff
+0x7d19 clk_diff_pos
+0x7d21 clk2rt
+0x7d27 clk2lpo
+0x7d2e clk2bt
+0x7d35 string2dec_from_uart
+0x7d36 string2dec_from_uart_done
+0x7d41 uchar2dialog
+0x7d4a uchar2dialog_number
+0x7d4d uchar2dialog_a2f
+0x7d50 right_shift_n
+0x7d52 right_shift_n_loop
+0x7d55 left_shift_n
+0x7d58 left_shift_n_loop
+0x7d5b calc_average
+0x7d5d calc_average_loop
+0x7d61 get_div_result
+0x7d64 wait_div_end
+0x7d66 compare_loop
+0x7d66 string_compare
+0x7d6e ceiling
+0x7d72 swap
+0x7d76 clean_smem
+0x7d78 clean_xmem
+0x7d79 clean_mem
+0x7d7b callback_func
+0x7d7d ice_break_disable_wdt
+0x7d7e ice_break
+0x7d80 ice_setbp
+0x7d85 ice_setbp2
+0x7d8a ice_set_write_bp
+0x7d8d fifo_in
+0x7d93 fifo_in_push
+0x7d99 fifo_out
+0x7d9d fifo_out_loop
+0x7da2 fifo_out_end
+0x7da5 fifo_is_empty
+0x7da7 fifo_is_full
+0x7da9 fifo_is_near_full
+0x7dab fifo_content_count
+0x7dac fifo_content_count_loop
+0x7db2 not_greater_than
+0x7db4 copy_temp2pdata
+0x7db6 disable_positive
+0x7db8 enable_positive
+0x7db8 disable_zero
+0x7dba enable_zero
+0x7dbc enable_user
+0x7dbe disable_user
+0x7dc0 enable_user2
+0x7dc2 disable_user2
+0x7dc4 enable_user7
+0x7dc6 disable_true
+0x7dc8 enable_true
+0x7dca disable_blank
+0x7dcc enable_blank
+0x7dcc set_pdata_0
+0x7dce istore_1_contw_rtn
+0x7dd0 cal_sum
+0x7dd2 cal_sum_loop
+0x7dd6 reverse_byte
+0x7ddc reverse_loop
+0x7de1 lshift14
+0x7de2 rshift2
+0x7de4 lshift6
+0x7de6 clear_wake
+0x7ded generate_random
+0x7dee generate_random_loop
Index: costumer/Bore/keyboard_ck801_only_24g/format/rom.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/format/rom.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/format/rom.format	(working copy)
@@ -0,0 +1,6777 @@
+(//mem_system_clk
+12 SYSTEM_CLK_12M
+24 SYSTEM_CLK_24M
+)
+(//bluetooth tx power
+0x00 TX_POWER_0DB
+0x03 TX_POWER_3DB
+0x05 TX_POWER_5DB
+0x06 TX_POWER_6DB
+0x07 TX_POWER_7DB
+0x0a TX_POWER_10DB
+
+0x83 TX_POWER_F3DB
+0x85 TX_POWER_F5DB
+0x8a TX_POWER_F10DB
+0x94 TX_POWER_F20DB
+0x9e TX_POWER_F30DB
+0xaa TX_POWER_FACTORY
+)
+(
+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 */
+	
+	/* le only */
+0x18 coffset_le_ch
+0x19 coffset_le_hop
+0x1a coffset_le_event_cnt
+0x1c coffset_le_supervision_timer
+0x20 coffset_le_instant
+0x22 coffset_le_channels
+0x23 coffset_le_op
+0x24 coffset_le_access
+0x28 coffset_le_crcinit
+0x2b coffset_le_window_size
+0x2c coffset_le_slave_latency
+0x2e coffset_le_slave_superto
+0x30 coffset_le_channel_map
+0x35 coffset_le_rx_phy
+0x36 coffset_le_tx_phy
+0x37 coffset_le_new_map
+0x37 coffset_le_new_m2s_phy
+0x38 coffset_le_new_s2m_phy
+0x37 coffest_le_new_transmitwindowsize
+0x38 coffest_le_new_transmitwindowoffset
+0x3a coffest_le_new_conninterval
+0x3c coffest_le_new_connslavelatency
+0x3e coffest_le_new_connsupervisiontimeout
+0x40 coffset_le_sk
+0x50 coffset_le_peer_sca
+0x53 coffset_le_transmit_window
+	
+83 context_size
+1 context_num
+)
+(
+0 lpm_flag_wake
+1 lpm_flag_loadcode
+)
+(
+0x0a00 param_snooze_setup_orig
+0x5353 param_snooze_ahead_orig
+
+/* 24Mhz clock setting */
+ifdef CLK24M
+0x1c86 param_tx_setup
+0x0c00 param_rf_setup
+0x0c00 param_conn_access 
+0x1a00 param_rx_setup
+0x0776 param_clke_cal
+0x0a00 param_pll_setup
+4000 param_dpll_start_delay
+7500 param_halfclk
+60084 param_halfclk_neg
+-60084 param_halfclk_neg1
+else
+/* 12Mhz clock setting */
+0x0e43 param_tx_setup
+0x0600 param_rf_setup
+0x0600 param_conn_access 
+0x03bb param_clke_cal
+0x0500 param_pll_setup		// 120 is minimum
+0x0d00 param_rx_setup	// 114us before sync
+2000 param_dpll_start_delay
+3750 param_rt_rthalfslot
+
+480 param_clke_cal_le_1m	//preamble(1B) & access address(4B) time (1+4)*8*1 * 12
+288 	param_clke_cal_le_2m	//preamble(2B) & access address(4B) time (1+4)*8*1 * 12
+282 param_clke_cal_le_coded	//preamble(80us) & access address(256us)-312.5us(0.5slot)
+endif
+
+110 param_lpm_fix
+10 param_lpo_extra
+200 param_lpm_adjmax
+
+-1 param_hibernate_clks
+
+ifdef SIM
+1 param_chgpump_delay_100us
+6 param_chgpump_delay_500us
+12 param_chgpump_delay_1ms
+else
+1000 param_chgpump_delay_100us
+6000 param_chgpump_delay_500us
+12000 param_chgpump_delay_1ms
+endif
+
+
+0x000a04 param_lmp_version
+0x12e9 param_lmp_subversion
+0x0012 param_tisw
+0x0012 param_tpsw
+0x1000 param_tisi
+0x0800 param_tpsi
+39 param_fcomp_div
+2 param_fcomp_mul
+
+)
+(
+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 */
+4        init_adpcm
+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       rxon         /* 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 */
+55       aes_ready	/* set when aes is ok */
+56       encode_fec3   /* level */
+57       dewhiten_code_calc   /* dewhiten code calculate */
+58       lr_s2en       /* long range s2 enable */
+60	   ble_coded_info	//1:s2 0:s8
+63       never         /* read only, always 0 */
+)
+default flag = always
+(
+0        mark   /* for keeping strobes, more permanent */
+1        type   /* save and verify during rx */     /* rw */
+2        temp   /* general purpose register, 64 bits */
+3        contu  /* contr uart */
+3	 contru	/*contr uart*/
+3	 contwu	/*contw 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       contus   /* 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       contue    /* 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 */
+
+23       freq_index   /* 7 bit read only */
+24       regd    /* 32 bit regext[1,0] */
+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
+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 */
+42       branch_addr	/* last branch address */
+43       rege         /* 64bit regext[3,2] */
+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		
+55       regf			/* 64bit regext[5,4] */
+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
+(
+0 regidx_data
+4 regidx_key
+8 regidx_xor
+12 regidx_result
+)
+(
+0 TXGFSK
+1 PSK
+2 PSK3M
+3 RESET
+)
+(
+0 bucket
+1 rxf
+2 back
+3 mod
+)
+default dest = bucket
+(
+1 txf
+3 demod
+)
+default source = 0
+(
+5  mark_loopback
+9  mark_context
+13 mark_lpm_mult_enable
+14 mark_usb_first_resp
+15 mark_old_packet
+16 mark_adv
+34 mark_otp_write
+35 mark_isstr
+36 mark_loadcode
+37 mark_ext_patch
+38 mark_24g
+39 mark_24g_rxmode
+40 mark_eeprom_size
+41 mark_ble_tx_md
+42 mark_ble_rx_md
+43 mark_otp_encrypt
+44 mark_temp
+45 mark_ble_2M
+46 mark_ble_lr_s8
+47 mark_ble_lr
+48 mark_ble_crc_fail
+50 mark_ble_encryption
+51 mark_first_packet
+)
+(
+1 reload_type_otp
+2 reload_type_spi
+3 reload_type_iic
+)
+(
+0 le_adv_interval_timer
+2 le_scan_interval_timer
+9 key_scan_timer
+7 smp_pairing_timer
+11  ui_led_blink  
+
+8 G24_TIMER_NODATA
+6 G24_TIMER_KB_BIT_CONSUMER_BLANK
+13 G24_TIMER_MS_BLANK
+12 G24_TIMER_KB_MUL_BLANK
+10 G24_TIMER_KB_SYS_CRTL_BLANK
+14 G24_TIMER_KB_BLANK
+
+1 USB_TIMER_NAK
+15 USB_TIMER_WAKEUP
+)
+(
+
+27 hci_cmd_le_create_conn
+29 hci_cmd_le_disconn
+30 hci_cmd_le_att_req
+)
+(
+0 mode_le
+1 mode_master
+)
+(
+0 state_inconn
+1 state_insniff
+)
+(
+3 op_disconn
+)
+(
+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
+12 wake_lock_l2cap_tx
+13 wake_lock_l2cap_rx
+14 wake_lock_ipc_c512bt
+15 wake_lock_ipc_bt2c51
+
+)
+(//mem_fcomp_div
+0x18 XTAL_24M
+0x10 XTAL_16M
+)
+( //verion
+6 BLUETOOTH_CORE_SPECIFICATION_4_0
+7 BLUETOOTH_CORE_SPECIFICATION_4_1
+8 BLUETOOTH_CORE_SPECIFICATION_4_2
+9 BLUETOOTH_CORE_SPECIFICATION_5_0
+10 BLUETOOTH_CORE_SPECIFICATION_5_1
+)
+(
+0x050e COMPANY_ID_YICHIP
+)
+(
+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
+)
+(
+0 bt_disabled
+1 ble_disabled
+2 module_disable
+)
+(//mem_le_T_IFS
+150 PARAM_T_IFS_150US
+20000 PARAM_20MS_INIT
+-11 PARAM_SYNC_TIME_DIFFERENCE
+40 PARAM_CODED_C1_TERM1_TIME_40US
+1666 PARAM_WINDOWN_SIZE
+//T_IFS = 150-modem(CRC time)
+15000 param_sifs
+)
+(
+0 DEFAULT_STATES
+1 IPHONE_LOST_LTK
+2 MODULE_LOST_LTK
+3 LTK_NOT_LOST
+)
+	(    
+	0x01 ERROR_UNKNOWN_HCI_COMMAND
+	0x02 ERROR_NO_CONNECTION
+	0x03 ERROR_HARDWARE_FAILURE
+	0x04 ERROR_PAGE_TIMEOUT
+	0x05 ERROR_AUTHENTICATION_FAILURE
+	0x06 ERROR_KEY_MISSING
+	0x07 ERROR_MEMORY_FULL
+	0x08 ERROR_CONNECTION_TIMEOUT
+	0x09 ERROR_MAX_CONNECTIONS
+	0x0A ERROR_MAX_SCO_CONNECTIONS
+	0x0B ERROR_MAX_ACL_CONNECTIONS
+	0x0C ERROR_COMMAND_DISALLOWED
+	0x0D ERROR_HOST_REJECT_LIMITED_RESOURCES
+	0x0E ERROR_HOST_REJECT_SECURITY_REASONS
+	0x0F ERROR_HOST_REJECT_REMOTE_IS_ONLY_PERSONAL
+	0x10 ERROR_HOST_TIMEOUT
+	0x11 ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER_VALUE
+	0x12 ERROR_INVALID_HCI_COMMAND_PARAMETERS
+	0x13 ERROR_REMOTE_USER_TERMINATED_CONNECTION
+	0x14 ERROR_REMOTE_LOW_RESOURCES
+	0x15 ERROR_REMOTE_POWERING_OFF
+	0x16 ERROR_CONNECTION_TERMINATED_BY_LOCAL_HOST
+	0x17 ERROR_REPEATED_ATTEMPTS
+	0x18 ERROR_PAIRING_NOT_ALLOWED
+	0x19 ERROR_UNKNOWN_LMP_PDU
+	0x1A ERROR_UNSUPPORTED_REMOTE_FEATURE
+	0x1B ERROR_SCO_OFFSET_REJECTED
+	0x1C ERROR_SCO_INTERVAL_REJECTED
+	0x1D ERROR_SCO_AIR_MODE_REJECTED
+	0x1E ERROR_INVALID_LMP_PARAMETER
+	0x1F ERROR_UNSPECIFIED_ERROR
+	0x20 ERROR_UNSUPPORTED_LMP_PARAMETER_VALUE
+	0x21 ERROR_ROLE_CHANGE_NOT_ALLOWD
+	0x22 ERROR_LMP_RESPONSE_TIMEOUT
+	0x23 ERROR_ERROR_TRANSACTION_COLLISION
+	0x24 ERROR_LMP_PDU_NOT_ALLOWED
+	0x25 ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE
+	0x26 ERROR_UNIT_KEY_USED
+	0x27 ERROR_QOS_NOT_SUPPORTED
+	0x28 ERROR_INSTANT_PASSED
+	0x29 ERROR_PAIRING_W_UNIT_KEY_NOT_SUPPORTED
+	0x2a ERROR_DIFFERENT_TRANSACTION_COLLISION
+	0x2c ERROR_QOS_UNACCEPTABLE_PARAMETER
+	0x2d ERROR_QOS_REJECTED
+	0x2e ERROR_CHANNEL_CLASSIFICATION_NOT_SUPPORTED
+	0x2f ERROR_INSUFFICIENT_SECURITY
+	0x30 ERROR_PARAMETER_OUT_OF_MANDATORY_PANGE
+	0x32 ERROR_ROLE_SWITCH_PENDING
+	0x34 ERROR_RESERVED_SLOT_VIOLATION
+	0x35 ERROR_ROLE_SWITCH_FAILED
+	0x36 ERROR_EXTENDED_INQUIRY_RESPONSE_TOO_LARGE
+	0x37 ERROR_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST
+	0x38 ERROR_HOST_BUSY_PAIRING
+	0x3d ERROR_MIC_FAILURE
+	)
+	(
+	0X20 SPACE	
+	)
+	(
+	0x0004 LE_L2CAP_CID_ATT
+	0x0005 LE_L2CAP_CID_SIGNAL
+	0x0006 LE_L2CAP_CID_SMP
+	)
+	(
+	0 LE_ADDR_TYPE_PUBLIC
+	1 LE_ADDR_TYPE_RANDOM
+	)
+	(
+	7 LE_RECEIVER_ADDR_BIT
+	6 LE_SENDER_ADDR_BIT
+	)
+	(
+	0x00 LE_SCAN_TYPE_PASSIVE //no SCAN_REQ shall be sent
+	0x01 LE_SCAN_TYPE_ACTIVE
+	)
+	(
+	0x00 LE_SCAN_DISABLE
+	0x01 LE_SCAN_ENABLE
+	0x0101 LE_ACTIVE_SCAN_ENABLE
+	)
+	(
+	0x01 UUID_SIZE_16BIT
+	0x02 UUID_SIZE_128BIT
+	)
+(
+3 lestate_got_first_packet
+4 lestate_encryption
+5 lestate_update_param
+6 lestate_update_map
+7 lestate_update_phy
+)
+(
+0 lemode_idle
+1 lemode_slave
+3 lemode_master
+5 lemode_2m
+6 lemode_lr
+7 lemode_lr_s8
+
+0x20 mode_2m
+0x40 mode_lr_s2
+0xc0 mode_lr_s8
+
+)
+(
+0 llid0
+1 llid1
+2 nesn
+3 sn
+4 md
+5 wak
+6 txdat
+)
+(
+0x00 LLID_RESERVED
+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_INITATOR_LTK_BIT
+1 LE_INITATOR_IRK_BIT
+2 LE_INITATOR_CSRK_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
+)
+(
+39 LE_CCM_DIRECTIONBIT
+)
+(
+36 BR_CCM_0_LENGTH_CONTINUATION
+37 BR_CCM_DIRECTIONBIT
+)
+(
+96000 TIMER_SMP_PAIRING_TIMEOUT //30S
+)
+(
+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
+5 FLAG_LE_SEND_START_ENC_REQ
+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
+//bit6:DEAL baseband packet
+6 BIT_BLE_DEAL_BB_PACKET
+)
+(
+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
+0x16	GAP_ADTYPE_SERVICE_DATA
+0x2a	GAP_ADTYPE_MESH_MESSAGE
+0x2b 	GAP_ADTYPE_MESH_BEACON
+0xff	GAP_ADTYPE_MANUFACTURER_SPECIFIC
+)
+(
+0 ADV_IND
+1 ADV_DIRECT_IND
+2 ADV_NONCONN_IND
+3 SCAN_REQ
+3 AUX_SCAN_REQ
+4 SCAN_RSP
+5 CONNECT_REQ
+5 AUX_CONNECT_REQ
+6 ADV_SCAN_IND
+)
+(
+0 BIT_ADV_CHANNEL_MAP_37
+1 BIT_ADV_CHANNEL_MAP_38
+2 BIT_ADV_CHANNEL_MAP_39
+)
+(
+0xa0 param_le_sca
+)
+(//bit of mem_le_l2cap_att_states
+0 BLE_L2CAP_SEND_INDICATION_PACKET
+0 BLE_L2CAP_RECV_CONFIRMATION_PACKET
+1 BLE_L2CAP_DEAL_WITH_CONTINUE_PACKET
+)
+(//bit map of att handle
+14 BIT_OF_ATT_HANDLE_READ_AUTHENTICATED
+15 BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED
+)
+(
+0 BIT_CHARACTERISTIC_BROADCAST
+1 BIT_CHARACTERISTIC_READ
+2 BIT_CHARACTERISTIC_WRITE_WITHOUT_RESPONSE
+3 BIT_CHARACTERISTIC_WRITE
+4 BIT_CHARACTERISTIC_NOTIFY
+5 BIT_CHARACTERISTIC_INDICATE
+6 BIT_CHARACTERISTIC_SIGNED_WRITE
+7 BIT_CHARACTERISTIC_EXTENDED_PROPERTIES
+)
+(
+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
+)
+(
+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
+)
+(
+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
+)
+(
+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
+0X2A50 UUID_CHRCTR_PNP_ID
+)
+(
+23 ATT_DEFAULT_MTU 
+)
+(
+0x12 L2CAP_CONNECTION_PARAMETER_UPDATE_REQUEST
+0x13 L2CAP_CONNECTION_PARAMETER_UPDATE_RESPONSE
+)
+(
+0x0000 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
+0x0001 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_REJECTED
+)
+(
+0x00 LE_PAIRING_MODE_NONE
+0x01 LE_PAIRING_MODE_LAGACY_JUSTWORK
+0x02 LE_PAIRING_MODE_LAGACY_PASSKEY
+0x04 LE_PAIRING_MODE_LAGACY_PASSKEY_RES_INPUT
+0x81 LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK
+0x82 LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC
+0x83 LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY
+0x84 LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT
+
+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 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_WAIT_STK_GENERATION
+5 FLAG_LE_PAIRING_RECEIVE_PAIRING_CONFIRM
+6 FLAG_LE_PAIRING_SEND_PAIRING_CONFIRM
+7 FLAG_LE_PAIRING_RECEIVE_PAIRING_RANDOM
+8 FLAG_LE_PAIRING_SEND_PAIRING_RANDOM
+9 FLAG_LE_PAIRING_AFTER_AUTH
+10 FLAG_LE_PAIRING_SEND_START_ENC_RSP
+11 FLAG_LE_PARING_SEND_ENC_INFORMATION
+12 FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION 
+13 FLAG_LE_PARING_SEND_INDENTITY_INFORMATION
+0xff FLAG_LE_PAIRING_END
+)
+(
+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
+)
+(// 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
+)
+(
+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
+)
+(
+0x00 LL_CONNECTION_UPDATE_IND
+0x01 LL_CHANNEL_MAP_IND
+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
+0x14 LL_LENGTH_REQ
+0x15 LL_LENGTH_RSP
+0x16 LL_PHY_REQ
+0x17 LL_PHY_RSP
+0x18 LL_PHY_UPDATE_IND
+0x19 LL_MIN_USED_CHANNELS_IND
+0x1A LL_CTE_REQ
+0x1B LL_CTE_RSP
+0x1C LL_PERIODIC_SYNC_IND
+0x1D LL_CLOCK_ACCURACY_REQ
+0x1E LL_CLOCK_ACCURACY_RSP
+0x1F LL_CIS_REQ
+0x20 LL_CIS_RSP
+0x21 LL_CIS_IND
+0x22 LL_CIS_TERMINATE_IND
+0x23 LL_POWER_CONTROL_REQ
+0x24 LL_POWER_CONTROL_RSP
+0x25 LL_POWER_CHANGE_IND
+)
+(//bit map of mem_le_ll_feature
+//LL_FEATURE_REQ
+0 BIT_LL_FEATURE_LE_ENCRYPTION
+1 BIT_LL_FEATURE_CONNECTION_PARAMETERS_REQUEST_PROCEDURE
+2 BIT_LL_FEATURE_EXTENDED_REJECT_INDICATION
+3 BIT_LL_FEATURE_SLAVE_INITIATED_FEATURES_EXCHANGE
+4 BIT_LL_FEATURE_LE_PING
+5 BIT_LL_FEATURE_LE_DATA_PACKET_LENGTH_EXTENSION
+6 BIT_LL_FEATURE_LL_PRIVACY
+7 BIT_LL_FEATURE_EXTENDED_SCANNER_FILTER_POLICIES
+8 BIT_LL_FEATURE_LE_2M_PHY
+9 BIT_LL_FEATURE_STABLE_MODULATION_INDEX_TRANSMITTER
+10 BIT_LL_FEATURE_STABLE_MODULATION_INDEX_RECEIVER
+11 BIT_LL_FEATURE_LE_CODED_PHY
+12 BIT_LL_FEATURE_LE_EXTENDED_ADVERTISING
+13 BIT_LL_FEATURE_LE_PERIODIC_ADVERTISING
+14 BIT_LL_FEATURE_CHANNEL_SELECTION_ALGORITHM
+15 BIT_LL_FEATURE_LE_POWER_CLASS_1
+16 BIT_LL_FEATURE_MINIMUM_NUMBER_OF_USED_CHANNELS_PROCEDURE
+)
+(//function map of mem_le_ll_feature
+//LL_FEATURE_REQ
+0x1 FUN_LL_FEATURE_LE_ENCRYPTION
+0x2 FUN_LL_FEATURE_CONNECTION_PARAMETERS_REQUEST_PROCEDURE
+0x4 FUN_LL_FEATURE_EXTENDED_REJECT_INDICATION
+0x8 FUN_LL_FEATURE_SLAVE_INITIATED_FEATURES_EXCHANGE
+0x10 FUN_LL_FEATURE_LE_PING
+0x20 FUN_LL_FEATURE_LE_DATA_PACKET_LENGTH_EXTENSION
+0x40 FUN_LL_FEATURE_LL_PRIVACY
+0x80 FUN_LL_FEATURE_EXTENDED_SCANNER_FILTER_POLICIES
+0x100 FUN_LL_FEATURE_LE_2M_PHY
+0x200 FUN_LL_FEATURE_STABLE_MODULATION_INDEX_TRANSMITTER
+0x400 FUN_LL_FEATURE_STABLE_MODULATION_INDEX_RECEIVER
+0x800 FUN_LL_FEATURE_LE_CODED_PHY
+0x1000 FUN_LL_FEATURE_LE_EXTENDED_ADVERTISING
+0x2000 FUN_LL_FEATURE_LE_PERIODIC_ADVERTISING
+0x4000 FUN_LL_FEATURE_CHANNEL_SELECTION_ALGORITHM
+0x8000 FUN_LL_FEATURE_LE_POWER_CLASS_1
+0x10000 FUN_LL_FEATURE_MINIMUM_NUMBER_OF_USED_CHANNELS_PROCEDURE
+)
+(//bit of mem_le_tx_phys and mem_le_rx_phys
+0x00 BIT_LE_1M_PHY
+0x01 BIT_LE_2M_PHY
+0x02 BIT_LE_CODED_PHY
+
+0x02 BIT_LE_CODED_PHY_S2
+0x07 BIT_LE_CODED_PHY_S8
+)
+(//map of mem_le_tx_phys and mem_le_rx_phys
+0x01 FUN_TX_LL_1M_PHY
+0x02 FUN_TX_LL_2M_PHY
+0x04 FUN_TX_LL_CODED_PHY
+
+0x01 FUN_RX_LL_1M_PHY
+0x02 FUN_RX_LL_2M_PHY
+0x04 FUN_RX_LL_CODED_PHY
+)
+(//mem_24g_data_type
+1 TYPE_MS
+2 TYPE_KB
+0x07 bits_data
+//0-2 data type
+3 bit_abort
+4 bit_hop
+5 bit_sync
+//6-7 channel offset
+)
+(
+0 ERR_NULL
+1 ERR_SYNC_TO
+2 ERR_HEC
+3 ERR_LR_LEN
+4 ERR_TYPE
+5 ERR_LEN_OVER
+6 ERR_CRC
+)
+(//mem_24g_pair_sm
+0 STATE_24G_PAIRING_NULL
+1 STATE_24G_PAIRING_1
+2 STATE_24G_PAIRING_2
+3 STATE_24G_PAIRING_3
+4 STATE_24G_PAIRING_4
+0X11 STATE_24G_PAIRING_1_WAITING_ACK
+0X12 STATE_24G_PAIRING_2_WAITING_ACK
+0X13 STATE_24G_PAIRING_3_WAITING_ACK
+0X14 STATE_24G_PAIRING_4_WAITING_ACK
+0XFF STATE_24G_PAIRING_SUCCESS
+)
+(
+0x01 DATATYPE_DEVICE1	//mouse
+0x02 DATATYPE_DEVICE2	//keyboard
+0xaa DATATYPE_BIND		//bind step 1
+0x55 DATATYPE_CONFIG	//bind step 2
+0x22 DATATYPE_OK		//bind step 3
+0xff DATATYPE_ATTEMP	//reconn
+)
+(
+5 BIND_MODE_CONTINUE
+)
+(
+0 bit_ack_24g
+)
+(//mem_24g_reconn_type
+0 DEFAULT_24G_DEVICE
+1 FAST_CONN_AND_RECEIVER
+2 FAST_CONN_AND_3_0_ADDR
+3 RECEIVER_AND_3_0_ADDR
+4 PAIR_AND_3_0_ADDR
+)
+(
+0x50 RSSI_THRESH_NOISE
+)
+(
+1 NO_ACK_24G
+0 WITH_ACK_24G
+)
+(//mem_24g_conn_sm
+0 STATE_24G_STOP
+0 STATE_24G_START
+1 STATE_24G_PAIR
+2 STATE_24G_RECONN
+)
+(//mem_24g_transmit_by_interrupt
+1 G24_TX_TIMER_INT_ENABLE
+0 G24_TX_TIMER_INT_DISABLE
+)
+(
+1 OFFSET_DATA_TYPE
+2 OFFSET_LR_DATA_TYPE
+)
+(
+0x017700 G24_LONG_SLEEP_STEP1	//8ms
+0x36ee80 G24_LONG_SLEEP_STEP2	//300ms
+0x124f80 G24_LONG_SLEEP_STEP3	//100ms
+63500 G24_8MS_INTERVAL_PARAM		//8ms
+12210 G24_4MS_INTERVAL_PARAM
+)
+(
+50 POWER_CTRL_DECRS_THRESHOLD
+)
+(
+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
+0x06 FLASH_COMMAND_WRITE_ENABLE
+0x20 FLASH_COMMAND_SECTOR_ERASE
+0x81 FLASH_COMMAND_PAGE_ERASE
+0xAB FLASH_COMMAND_RELEASE_FROM_POWERDOWN
+0xB9 FLASH_COMMAND_POWERDOWN
+
+)
+(
+7 OTP_UFLAG_MEMFIX2
+6 OTP_UFLAG_MEMFIX1
+5 OTP_UFLAG_MEMFIX0
+4 OTP_UFLAG_BIST
+3 OTP_UFLAG_AES
+2 OTP_UFLAG_SKIP_EEP
+1 OTP_UFLAG_SKIP_FLASH
+0 OTP_UFLAG_HCI
+)
+(
+0 OTP_OFFSET_PATCH_PTR //2 byte
+2 OTP_OFFSET_UCODE_FLAG
+3 OTP_OFFSET_DEVICE_OPTION
+4 OTP_OFFSET_PERIPHERALS_LOCK
+5 OTP_OFFSET_SCHED_BISTFIX 	//2 byte
+7 OTP_OFFSET_XRAM_BISTFIX	//2 byte
+9 OTP_OFFSET_PATCH_BISTFIX	//2 byte
+
+0xfc0 OTP_OFFSET_ADC_PARAM_L_C0
+
+0xfd0 OTP_OFFSET_ADC_PARAM_L
+0xff0 OTP_OFFSET_UCODE_KEY_L
+0x1000 OTP_OFFSET_H
+
+//0x1fd0 OTP_OFFSET_ADC_PARAM
+//0x1fec OTP_OFFSET_HV_SEL
+//0x1fed OTP_OFFSET_LDO_VSEL
+//0x1fee OTP_OFFSET_LOADCODE_DELAY
+//0x1fef OTP_OFFSET_LOADCODE_CHECKSUM
+0x1ff0 OTP_OFFSET_UCODE_KEY
+)
+(
+1 DVC_OP_2G4
+2 DVC_OP_BLE
+
+4 DVC_OP_DONGLE
+5 DVC_OP_TEST
+6 DVC_OP_SHUTTER_DY   
+7 DVC_OP_MOUSE_2G4
+8 DVC_OP_MOUSE
+9 DVC_OP_SHUTTER
+0X0A DVC_OP_MODULE
+0X0b DVC_OP_REMOTE_CONTROL
+0X0C DVC_OP_HCI_BOOT
+0X0D DVC_OP_REMOTE_CAR
+0X0E DVC_OP_CAR
+0X0F DVC_OP_KEYBOARD   
+)
+(
+7 GPIO_ACTIVE_BIT
+)
+(
+5 LPM_WAKE_UP_DELAY_TIMER
+)
+(
+2 APP_DISC_RSN_SIZE
+)
+(
+0 APP_DISC_BY_BUTTON
+7 APP_DISC_BLE
+)
+(
+0xaa55 EEPROM_INIT_FLAG
+)
+(
+1 KEY_CONF_STRUCT_LEN
+0 KEY_PIN_OFFSET
+)
+(
+12000000 PWM_12MHZ
+24000000 PWM_24MHZ
+33000 PWM_33KHZ
+)
+(
+0 POWER_OFF
+1 POWER_STARTING
+2 POWER_STANDBY
+)
+(
+0 power_state_offset
+1 power_timer_offset
+2 power_off_timeout_offset
+3 power_starting_timeout_offset
+4 power_off_cb_offset
+6 power_starting_cb_offset
+8 power_standby_cb_offset
+10 ui_butten_up_cb_offset
+)
+(
+0x9000 MOUSE_BLE_ATT_LIST_ADDR
+0x92aa USB_KBDATA_VENDOR_DEFINE_ADDR
+0x92c5 USB_KBDATA_ADDR
+0x9307 USB_MSDATA_ADDR
+0x93fb USB_DEVICEDATA_ADDR
+0x940e USB_CONFDATA_ADDR
+0x944a KEYBOARD_BLE_HID_MAP_ONLY_KEYBOARD_ADDR
+0x94fc KEYBOARD_BLE_HID_MAP_MAGIC_KEYBOARD_ADDR
+0x95b8 KEYBOARD_BLE_HID_MAP_N_KEY_ROLLOVER_KEYBOARD_ADDR
+0x9684 BLE_SHUTTER_GATT_LIST_ADDR
+0x97bd BLE_SHUTTER_KEY_VALUE_LIST_ADDR
+0x97e5 BLE_CAR_ATT_LIST_ADDR
+0x97fc mem_sim_slave
+)
+(//NEC 61212
+9000 NEC61212_BOOT_CODE_START_TIME
+4500 NEC61212_BOOT_CODE_END_TIME
+
+9000 NEC61212_REPEAT_START_TIME
+2250 NEC61212_REPEAT_END_TIME
+
+560 NEC61212_DATA_BIT_1_START_TIME
+1690 NEC61212_DATA_BIT_1_END_TIME
+
+560 NEC61212_DATA_BIT_0_START_TIME
+560 NEC61212_DATA_BIT_0_END_TIME
+
+560 NEC61212_STOP_TIME
+
+42580 NEC61212_DATA2REPEAT_TIME
+98190 NEC61212_REPEAT2REPEAT_TIME
+
+0xffff NEC61212_TIMEOUT_TIME
+)
+(
+1 CLK_CALIBRATION_DONE
+2 RC_CLK_CALIBRATION_DONE
+3 AES_DEC_KEY_INIT_DONE
+4 MEASURE_ADC_SUM_DONE
+5 SARADC_DONE
+)
+(
+1 ADC_CONFIG_HVIN
+2 ADC_CONFIG_GPIO
+)
+(
+1 SADC_REFERENCE_INTER3V
+2 SADC_REFERENCE_INTER1P8V_DIV2
+)
+(
+0 TURN_FRONT
+1 TURN_LEFT
+2 TURN_RIGHT
+0 MOTOR_STOP
+1 GO_FRONT
+2 GO_BACK
+0x6b5a LE_RECEIVE_PACKET_HEAD
+)
+(
+1 CAR_CMD_BATTERY
+2 CAR_CMD_OLD_CAR_CONTROL
+3 CAR_CMD_OLD_SPEED_CONTROL
+4 CAR_CMD_L_R_MOTOR_CONTROL
+5 CAR_CMD_F_B_MOTOR_CONTROL
+6 CAR_CMD_IR_CONTROL
+7 CAR_CMD_LED_CONTROL
+8 CAR_CMD_DEVICE_INFO
+)
+(
+0x0e HANDLE_OF_NOTIFY
+0x11 HANDLE_OF_WRITE
+)
+(
+0 G24_UNCONNECT
+1 G24_CONNECTED
+)
+(
+12 LEN_OF_24G_PAYLOAD
+11 LEN_OF_ACK_PAYLOAD
+)
+(
+0XAA G24_TX_PAIR_REQUEST
+0XBB G24_RX_PAIR_RESPONES
+0XCC G24_TX_REMOTE_CONTROL
+0XDD G24_RX_CONTROL_ACK
+0XEE G24_ERROR
+0xFF INVALID_PIN_NUM
+0 POWER_ON
+1 WORK_PAIRED
+2 WORK_SEARCH
+)
+(
+0x1f00 OTP_SYS_PARAM_CFG
+0x1fda OTP_MAC_ADDR
+0X1fdb OTP_MAC_ADDR_PIECENUM
+)
+(
+0x5A DONGLE_KB_BIND_SUCCESS
+0x1fdf DONGLE_KB_BIND_EFUSE_OFFECT
+0x1fc0 DONGLE_KB_BIND_OTP_OFFECT
+)
+(
+5 WORK_MODE_DELAY
+7 BIND_MODE_DELAY
+)
+(
+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
+)
+(
+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
+0xb0 COMMAND_USER_DEFINED		//user defined cmd
+)
+(
+0x15 PRODUCT_ID
+0 FW_VERSION0
+0 FW_VERSION1
+1 FW_VERSION2
+7 FW_VERSION3
+)
+(
+640 TIMER_NODATA_DELAY	//200ms
+
+384 TIMER_MS_BLANK_DELAY
+
+384 TIMER_KB_MUL_BLANK_DELAY
+
+384 TIMER_KB_SYS_CRTL_BLANK_DELAY
+
+384 TIMER_KB_BLANK_DELAY
+)
+(
+0 KB_NORMAL_REPORT_ID
+1 MS_REPORT_ID
+2 KB_SYSTEM_CONCTRL_REPORT_ID
+3 KB_MULTIKEY_REPORT_ID
+5 KB_BIT_CONSUMER_REPORT_ID
+8 KB_N_KEY_ROLLOVER_REPORT_ID
+)
+(
+0x01 BIND_ACKPAYLOAD
+0x03 KB_LED_ACKPAYLOAD
+)
+(
+7 DG_ENABLE_XTAL_24M
+6 DG_ENABLE_NEW_CHMAP
+5 DG_ENABLE_EEPROM
+4 DG_ENABLE_KB_ICON
+3 DG_ENABLE_24G_2M
+)
+(
+0x01 DEVICE_DATA_TPYE_MOUSE
+0x00 DEVICE_DATA_TPYE_KEYBOARD
+)
+(
+0x00 HID_REPORTID_KEY_STANDARD
+0x01 HID_REPORTID_MOUSE
+0x02 HID_REPORTID_SYSTEM_CTRL
+0x03 HID_REPORTID_CONSUMER_KEY
+0x05 HID_REPORTID_BIT_CONSUMER_KEY
+0x08 HID_REPORTID_N_KEY_ROLLOVER
+)
+(
+0x04	 HID_KEY_A 	 
+0x05        HID_KEY_B 	 
+0x06        HID_KEY_C 	 
+0x07        HID_KEY_D 	 
+0x08        HID_KEY_E 	 
+0x09        HID_KEY_F 	 
+0x0a        HID_KEY_G 	 
+0x0b        HID_KEY_H 	 
+0x0c        HID_KEY_I  	 
+0x0d        HID_KEY_J 	 
+0x0e        HID_KEY_K 	 
+0x0f        HID_KEY_L 	 
+0x10        HID_KEY_M 	 
+0x11        HID_KEY_N 	 
+0x12        HID_KEY_O	 
+0x13        HID_KEY_P	 
+0x14        HID_KEY_Q	 
+0x15        HID_KEY_R	 
+0x16        HID_KEY_S	 
+0x17        HID_KEY_T	 
+0x18        HID_KEY_U	 
+0x19        HID_KEY_V	 
+0x1a        HID_KEY_W 	 
+0x1b        HID_KEY_X	 
+0x1c        HID_KEY_Y	 
+0x1d        HID_KEY_Z	 
+    
+0x1e        HID_KEY_1	 
+0x1f        HID_KEY_2	 
+0x20        HID_KEY_3	 
+0x21        HID_KEY_4	 
+0x22        HID_KEY_5	 
+0x23        HID_KEY_6	 
+0x24        HID_KEY_7	 
+0x25        HID_KEY_8	 
+0x26        HID_KEY_9	 
+0x27        HID_KEY_0	 
+    
+0x28        HID_KEY_ENTER 				 
+0x29        HID_KEY_ESC				 
+0x2a        HID_KEY_BACKSPACE		 
+0x2b        HID_KEY_TAB				 
+0x2c        HID_KEY_SPACE 				 
+0x2d        HID_KEY_MINUS				 		// -_
+0x2e        HID_KEY_EQUAL				 		// =+
+0x2f        HID_KEY_LEFT_BRACKET 		 	// [{
+0x30        HID_KEY_RIGHT_BRACKET 	 		// ]}
+0x31        HID_KEY_BACK_SLASH 		 		// \|
+    
+0x32        HID_KEY_K42				 
+0x33        HID_KEY_SEMICOLON			 	// ;:
+0x34        HID_KEY_QUOTE				 		// ' "
+0x35        HID_KEY_TILDE				 		// `~
+0x36        HID_KEY_LESS_THAN			 		// ,<
+0x37        HID_KEY_GREAT_THAN		 		// .>
+0x38        HID_KEY_SLASH				 		// /?
+0x39        HID_KEY_CAPS_LOCK			 
+
+0x3a        HID_KEY_F1		 
+0x3b        HID_KEY_F2		 
+0x3c        HID_KEY_F3		 
+0x3d        HID_KEY_F4		 
+0x3e        HID_KEY_F5		 
+0x3f        HID_KEY_F6		 
+0x40        HID_KEY_F7		 
+0x41        HID_KEY_F8		 
+0x42        HID_KEY_F9		 
+0x43        HID_KEY_F10	 
+0x44        HID_KEY_F11	 
+0x45        HID_KEY_F12	 
+    
+0x46        HID_KEY_PRINT_SCREEN	 
+0x47        HID_KEY_SCROLL_LOCK	 
+0x48        HID_KEY_PAUSE			 
+0x49        HID_KEY_INSERT			 
+0x4a        HID_KEY_HOME			 
+0x4b        HID_KEY_PAGE_UP		 
+0x4c        HID_KEY_DELETE		 
+0x4d        HID_KEY_END			 
+0x4e        HID_KEY_PAGE_DOWN	 
+        
+0x4f        HID_KEY_RIGHT_ARROW	 
+0x50        HID_KEY_LEFT_ARROW	 
+0x51        HID_KEY_DOWN_ARROW	 
+0x52        HID_KEY_UP_ARROW		 
+        
+0x53        HID_KEY_NUM_LOCK		 
+0x54        HID_KEY_KP_SLASH		 
+0x55        HID_KEY_KP_ASTERISK	 
+0x56        HID_KEY_KP_MINUS		 
+0x57        HID_KEY_KP_PLUS		 
+0x58        HID_KEY_KP_ENTER		 
+0x59        HID_KEY_KP_1			 
+0x5a        HID_KEY_KP_2			 
+0x5b        HID_KEY_KP_3			 
+0x5c        HID_KEY_KP_4			 
+0x5d        HID_KEY_KP_5			 
+0x5e        HID_KEY_KP_6			 
+0x5f        HID_KEY_KP_7			 
+0x60        HID_KEY_KP_8			 
+0x61        HID_KEY_KP_9			 
+0x62        HID_KEY_KP_0			 
+0x63        HID_KEY_KP_DEL		 
+  
+0x64        HID_KEY_K45			 
+0x65        HID_KEY_APP			 
+0x66        HID_KEY_POWER			 
+0x67        HID_KEY_KP_EQUAL		 
+        
+       
+0x87        HID_KEY_K56				 
+0x88        HID_KEY_K133  				 
+0x89        HID_KEY_K14  				 
+0x8a        HID_KEY_K132  				 
+0x8b        HID_KEY_K131 				 
+    
+0x90        HID_KEY_KR_R  				 
+0x91        HID_KEY_KR_L  				 
+        
+0xe0        HID_KEY_LEFT_CTRL			 
+0xe1        HID_KEY_LEFT_SHIFT			 
+0xe2        HID_KEY_LEFT_ALT 			 
+0xe3        HID_KEY_LEFT_GUI 			 
+0xe4        HID_KEY_RIGHT_CTRL			 
+0xe5        HID_KEY_RIGHT_SHIFT		 
+0xe6        HID_KEY_RIGHT_ALT			 
+0xe7        HID_KEY_RIGHT_GUI			 
+
+0xe8 	HID_KEY_MULTIKEY_MEDIA
+0xe9 	HID_KEY_MULTIKEY_VOL_DOWN
+0xea 	HID_KEY_MULTIKEY_VOL_UP
+0xeb 	HID_KEY_MULTIKEY_MUTE
+0xec 	HID_KEY_MULTIKEY_PRE_TRACK
+0xed 	HID_KEY_MULTIKEY_NEXT_TRACK
+0xee 	HID_KEY_MULTIKEY_PALY
+0xef 	HID_KEY_MULTIKEY_STOP
+0xf0 	HID_KEY_AC_HOME
+0xf1 	HID_KEY_MAIL
+0xf2 	HID_KEY_MY_COMPUTER
+0xf3 	HID_KEY_AC_FAVORITES
+0xf4 	HID_KEY_CALCULATOR
+0xf5 	HID_KEY_AC_SEARCH
+0xf6 	HID_KEY_AC_BACK
+0xf7 	HID_KEY_OS_SOFT_KB
+0xf8 	HID_KEY_LIGHT_DOWN
+0xf9 	HID_KEY_LIGHT_UP
+0xfa 	HID_KEY_IOS_ANDROID_OS_LOCK
+0xfb	HID_KEY_MAC_EJECT
+0xfc	HID_KEY_AC_FORWARD
+0xfd	HID_KEY_AC_STOP
+0xfe	HID_KEY_AC_REFRESH
+0xff 	HID_KEY_SYSTEM_SLEEP
+        // 0xe8~0xff reserved
+0xa5	HID_KEY_SELECT_ALL
+0xa6 	HID_KEY_COPY
+0xa7	HID_KEY_PASTE
+0xa8	HID_KEY_CUT
+0xa9	HID_KEY_ALL_OS_LOCK
+0xaa	HID_KEY_OSK
+0xab	HID_KEY_LANGUAGE
+0xac 	HID_KEY_APP_TILING
+0xad	HID_KEY_SEARCH
+0xae     	HID_KEY_PB
+0xaf	HID_KEY_FAVORITES
+	 // 0xa5~0xaf reserved
+0x7f     	HID_KEY_FN 					 
+0x00     	HID_KEY_NULL 		 
+)
+(
+0x01 LEFT_CONTROL
+0x02 LEFT_SHIFT
+0x04 LEFT_ALT
+0x08 LEFT_GUI
+0x10 RIGHT_CONTROL
+0x20 RIGHT_SHIFT
+0x40 RIGHT_ALT
+0x80 RIGHT_GUI
+0x09 LEFT_GUI_CONTROL
+0x0a LEFT_SHIFT_GUI
+0x03 LEFT_CTRL_SHIFT
+)
+(
+0x00 KB_PC_KEYSEL_NUMLOCK
+0x01 KB_PC_KEYSEL_CAPSLOCK
+0x02 KB_PC_KEYSEL_SCROLLLOCK
+)
+(
+8 KEYSCAN_COL_NUM
+20 KEYSCAN_ROW_NUM
+)
+(
+0 CAMMBINATION_KEY_FREE
+1 CAMMBINATION_KEY_PRESS
+2 CAMMBINATION_KEY_HOLD
+3 CAMMBINATION_KEY_COMPLETE
+4 CAMMBINATION_KEY_WAIT_RELEASE
+5 CAMMBINATION_KEY_RELEASE
+6 CAMMBINATION_KEY_NULL
+)
+(
+
+0x600 PNP_MICROSOFT
+0x4c00 PNP_IOS
+0x1208 PNP_MAC
+
+
+0 SYSTEM_OS_WINDOWS
+1 SYSTEM_OS_ANDROID
+2 SYSTEM_OS_IOS
+3 SYSTEM_OS_MAC
+
+)
+(
+0 KEYBOARD_CONSUMER_KEY_STANDBY
+1 KEYBOARD_CONSUMER_KEY_PRESS
+2 KEYBOARD_CONSUMER_KEY_RELEASE
+)
+(
+//keyboard_function_flag
+0x08 KEYBOARD_FLAG_LEN
+//byte 0
+0x00 KEYBOARD_24G_PAIRING_FLAG
+0x01 KEYBOARD_STORE_MEMORY_FLAG
+0x02 KEYBOARD_LOW_VOLTAGE_FLAG
+0x03 KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG
+0x04 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+
+//byte 1
+0x08 KEYBOARD_ENABLE_WAKEUP_FROM_POWER
+0x09 KEYBOARD_ENABLE_16M
+0x0a KEYBOARD_DISABLE_ICE
+0x0b KEYBOARD_ENABLE_ADC
+0x0c KEYBOARD_ENABLE_FLASH
+0x0d KEYBOARD_ENABLE_2K_EEPROM
+0x0e KEYBOARD_ENABLE_EEPROM
+0x0f KEYBOARD_ENABLE_OTP
+
+//byte 2
+0x10 KEYBOARD_ENABLE_24G
+0x11 KEYBOARD_ENABLE_AUTO_24G_PARING
+0x12 KEYBOARD_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+0x13 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+0x14 KEYBOARD_ENABLE_24G_2M_PHY
+0x15 KEYBOARD_ENABLE_24G_SEARCH_DONGLE
+
+//byte 3
+0x18 KEYBOARD_ENABLE_BLE_RANDOM_ADDRE
+0x19 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL
+0x1a KEYBOARD_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+0x1b KEYBOARD_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+
+//byte 4
+0x20 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+0x21 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER
+0x22 KEYBOARD_ENABLE_MAGIC_KEYBOARD
+0x23 KEYBOARD_ENABLE_MOUSE
+0x24 KEYBOARD_ENABLE_USB
+
+//byte 5
+0x28 KEYBOARD_ENABLE_030_POWER_LED
+0x29 KEYBOARD_ENABLE_LOW_LED
+0x2a KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND
+0x2b KEYBOARD_ENABLE_BACKLIGHT
+
+//byte 6
+0x30 KEYBOARD_ENABLE_FN_ARROW
+0x31 KEYBOARD_ENABLE_FN_LEFT_CTRL_OSK
+0x32 KEYBOARD_ENABLE_FN_SPACE_LANGUAGE
+0x33 KEYBOARD_ENABLE_FN_OS_SWITCH
+0x34 KEYBOARD_ENABLE_FN_LOCK
+
+//byte 7
+0x38 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+0x39 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND
+0x3a KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_GND
+0x3b KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD
+0x3c KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_VDD
+0x3d KEYBOARD_ENABLE_SDA_MULTI_R_LINE
+0x3e KEYBOARD_ENABLE_SDA_MULTI_ICE_LINE
+
+)
+(
+//eeprom address offect
+0x00 KEYBOARD_INFO_EEPROM_OFFECT
+0x00 KEYBOARD_DEVICE_NUMBER_EEPROM_OFFECT
+0x01 KEYBOARD_BLE_ADDR_EEPROM_OFFECT
+0x28 KEYBOARD_STORE_FLAG
+0x2b KEYBOARD_G24_ADDR_EEPROM_OFFECT	//4bytes
+0x2f KEYBOARD_RANDOM_ADDR_COUNT_EEPROM_OFFSET
+0x31 KEYBOARD_FN_FLAG_EEPROM_OFFSET
+0x36 KEYBOARD_COMPUTER_SYSTEM_EEPROM_OFFSET
+0x39 KEYBOARD_RGB_TPYE_OFFSET
+
+0x00 KEYBOARD_STORE_EEPROMM_FLAG_ALL_INFO
+0x01 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR
+0x02 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR
+0x03 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK
+0x04 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM
+0x05 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE
+)
+(
+0 KEYBOARD_RGB_BLUE_STATUS
+1 KEYBOARD_RGB_GREEN_STATUS
+2 KEYBOARD_RGB_RED_STATUS
+
+0 RGB_BACKLIGHT_STATUS_OFF
+1 RGB_BACKLIGHT_STATUS_ON
+2 RGB_BACKLIGHT_STATUS_BREATHE
+
+0 RGB_BACKLIGHT_ON_TPYE_RED
+1 RGB_BACKLIGHT_ON_TPYE_ORANGE
+2 RGB_BACKLIGHT_ON_TPYE_PURPLE
+3 RGB_BACKLIGHT_ON_TPYE_GREEN
+4 RGB_BACKLIGHT_ON_TPYE_CYAN
+5 RGB_BACKLIGHT_ON_TPYE_BLUE
+6 RGB_BACKLIGHT_ON_TPYE_WHITE
+
+0 RGB_BACKLIGHT_BREATHE_TPYE_BLUE
+1 RGB_BACKLIGHT_BREATHE_TPYE_GREEN
+2 RGB_BACKLIGHT_BREATHE_TPYE_RED
+3 RGB_BACKLIGHT_BREATHE_TPYE_CYAN
+4 RGB_BACKLIGHT_BREATHE_TPYE_PURPLE
+5 RGB_BACKLIGHT_BREATHE_TPYE_ORANGE
+6 RGB_BACKLIGHT_BREATHE_TPYE_WHITE
+)
+(
+0 KEYBOARD_FLAG_G24_DEVICE_BUTTON
+1 KEYBOARD_FLAG_BT_DEVICE_BUTTON
+)
+(
+0x01 KEYBOARD_COMMBINATION_PRESS_TYPE_24G_PAIR
+0x02 KEYBOARD_COMMBINATION_PRESS_TYPE_BT_PAIR
+0x03 KEYBOARD_COMMBINATION_PRESS_TYPE_BT_FAST_CONN
+)
+(
+0x20 KEYBOARD_BLE_L2CAP_TXBUFF_SIZE
+)
+(
+0 KEYBOARD_BATTARY_1V5
+1 KEYBOARD_BATTARY_3V0
+2 KEYBOARD_BATTARY_4V2
+)
+(//mem_module_flag
+//bit0~bit7 config module function
+0 MODULE_FLAG_UART_FLOW_CONTROL
+1 MODULE_FLAG_BLE_SEND_MTU23
+2 MODULE_FLAG_BLE_DATA_ENCRYPT
+
+//bit8~bit15 module states change
+8 MODULE_FLAG_BLE_DATA_FINISH
+
+)
+(
+34 NV_DATA_LEN
+-1 DECREASED_ONE
+)
+(
+	5 FLAG_MODULE_READ_VDD_COUNT
+)
+(
+0x01 HCI_DISCARD_PACKET
+0x00 HCI_NOT_DISCARD_PACKET
+)
+(//Command
+0x01 HCI_CMD_SET_LE_ADDR_REQ
+0x02 HCI_CMD_SET_VISIBILITY_REQ
+0x04 HCI_CMD_SET_LE_NAME_REQ
+0x09 HCI_CMD_LE_DATA_REQ
+0x0b HCI_CMD_STATUS_IRQ
+0x0e HCI_CMD_SET_UARTCONTROL_REQ
+0x0f HCI_CMD_SET_UART_BAUD_REQ
+0x10 HCI_CMD_VERSION_REQ
+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
+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
+0x37 HCI_CMD_LE_SET_ADV_PARM
+0x38 HCI_CMD_LE_START_PAIRING
+0x40 HCI_CMD_SET_WAKE_GPIO
+0x42 HCI_CMD_SET_TX_POWER
+0x43 HCI_CMD_BOOT_VERSION_REQ
+0x48 HCI_CMD_LE_CONFIRM_GKEY
+0x49 HCI_CMD_REJECT_JUSTWORK
+0x51 HCI_CMD_RESET_CHIP_REQ
+
+0x61 HCI_CMD_LE_SET_FIXED_PASSKEY
+
+0x76 HCI_CMD_DELETE_CUSTOMIZE_SERVICE
+0x77 HCI_CMD_ADD_SERVICE_UUID
+0x78 HCI_CMD_ADD_CHARACTERISTIC_UUID
+0x7a HCI_CMD_PASSKEY_ENTRY_INPUT
+0x7b HCI_CMD_LE_CREAT_CONN
+
+0x90 HCI_CMD_BLE_SET_PHY
+0x91 HCI_CMD_BLE_READ_CURRENT_PHY
+0x92 HCI_CMD_BLE_SET_DLE
+0x93 HCI_CMD_READ_CHIP_DATA
+0x94 HCI_CMD_WRITE_CHIP_DATA
+ifdef COMPILE_WECHAT
+0x95 HCI_CMD_WECHAT_SEND_DATA
+endif
+0xff HCI_CMD_CLOSE_LPM
+)
+(//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
+
+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
+0x29 HCI_EVENT_UUID_HANDLE
+0x2b HCI_EVENT_LE_INPUT_GKEY
+
+0x40 HCI_BLE_UPDATE_PHY_EVENT
+ifdef COMPILE_WECHAT
+0x41 HCI_BLE_WECHAT_RECEIVE_PUSH_DATA
+endif
+)
+(//command HCI_CMD_SET_GPIO
+//byte 0
+0x00 HCI_CMD_CONFIG_GPIO_INPUT
+0x01 HCI_CMD_CONFIG_GPIO_OUTPUT
+//byte 1 input state
+0x00 GPIO_INPUT_PULLUP
+0x01 GPIO_INPUT_PULLDOWN
+0x02 GPIO_INPUT_HIGH_IMPEDANCE
+)
+(
+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
+)
+(
+5 BIT_OF_NOTIFY_AUTHENTICATED
+6 BIT_OF_READ_AUTHENTICATED
+7 BIT_OF_WRITE_AUTHENTICATED
+)
+(
+//combination
+0x01 MOUSE_L_BUTTON
+0X02 MOUSE_R_BUTTON
+0x03 MOUSE_LR_BUTTON
+0X04 MOUSE_M_BUTTON
+0X05 MOUSE_LM_BUTTON
+0X06 MOUSE_RM_BUTTON
+0X07 MOUSE_LMR_BUTTON
+0x09 MOUSE_L_BK_BUTTON
+0x0a MOUSE_R_BK_BUTTON
+0x11 MOUSE_L_FW_BUTTON
+0x12 MOUSE_R_FW_BUTTON
+0x12 MOUSE_M_BK_BUTTON
+0x14 MOUSE_M_FW_BUTTON
+0X18 MOUSE_BK_FW_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
+//mode device number
+0x00 MODE_24G_DEVICE
+0x01 MODE_BT_DEVICE1
+0x02 MODE_BT_DEVICE2
+0x03 MODE_BT_DEVICE3
+0x04 MODE_USB_DEVICE
+//mouse  flag
+0X00 WRITE_REQ_ENABLE_FLAG
+0X01 LL_START_ENC_FLAG
+0X02 LL_PAIRING_SUCCESS_FLAG
+
+
+//mouse_function_flag
+0x08 MOUSE_FLAG_LEN
+//byte 1
+0x00 MOUSE_SELECT_DEVICE_FLAG
+0x01 MOUSE_24G_PAIRING_FLAG
+0x02 MOUSE_STORE_EEPROM_FLAG
+0x03 MOUSE_BT_CANNEL_RECONN_FLAG
+0x04 MOUSE_LOW_VOLTAGE_FLAG
+0x05 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
+0x06 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+0x07 MOUSE_ENABLE_SPI2
+
+//byte 2
+0x08 MOUSE_ENABLE_BLE_RANDOM_ADDRE
+0x09 MOUSE_ENABLE_2K_EEPROM
+0x0a MOUSE_ENABLE_WAKEUP_FROM_POWER
+0x0b MOUSE_ENABLE_16M
+0x0c MOUSE_ENABLE_USB
+0x0d MOUSE_ENABLE_24G_SEARCH_DONGLE
+0x0e MOUSE_ENABLE_LOAD_AND_STORE_DPI
+0x0f MOUSE_ENABLE_24G
+
+//byte 3
+0x10 MOUSE_ENABLE_FLASH
+0x11 MOUSE_ENABLE_EEPROM
+0x12 MOUSE_ENABLE_OTP
+0x13 MOUSE_ENABLE_ADC
+0x14 MOUSE_ENABLE_KEYBOARD
+0x15 MOUSE_ENABLE_DOUBLE_DPI_KEY
+0x16 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN
+
+//byte 4
+0x18 MOUSE_ENABLE_24G_250Hz
+0x19 MOUSE_ENABLE_24G_500Hz
+0x1a MOUSE_ENABLE_24G_1000
+0x1b MOUSE_ENABLE_BT_125Hz
+0x1c MOUSE_ENABLE_DPI_LEVEL_4
+0x1d MOUSE_ENABLE_USB_250
+0x1e MOUSE_ENABLE_USB_500
+0x1f MOUSE_ENABLE_USB_1000
+
+//byte 5
+0x20 MOUSE_ENABLE_1IO2LED
+0x21 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
+0x22 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT
+0x23 MOUSE_ENABLE_LOW_LED
+0x24 MOUSE_ENABLE_LOW_FOR_LED
+0x25 MOUSE_ENABLE_DPI_FOR_LED
+
+//byte 6
+0x28 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+0x29 MOUSE_ENABLE_SELECT_DEVICE_BY_PB_BUTTON
+0x2a MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+0x2b MOUSE_ENABLE_DPI_KEY_CONNECT_GND
+0x2c MOUSE_ENABLE_ANOTHER_DPI_KEY_CONNECT_GND
+0x2d MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
+0x2e MOUSE_ENABLE_FIRE_KEY_CONNECT_GND
+0x2f MOUSE_ENABLE_CUSTOMER_KEY_CONNECT_VIN
+
+//byte 7 
+0x30 MOUSE_ENABLE_AUTO_24G_PARING
+0x31 MOUSE_ENABLE_24G_POWER_ON_PAIRING
+0x32 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+0x33 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+0x34 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+0x35 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+0x36 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
+0x37 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
+
+//byte 8
+0x38 MOUSE_ENABLE_SMOOTHER
+0x39 MOUSE_ENABLE_XY_OFFSET
+0x3a MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+0x3b MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+0x3c MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+0x3d MOUSE_ENABLE_24G_2M_PHY
+0x3e MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING
+//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
+
+
+//DPI button state 
+0x00 DPI_BUTTON_STATE_UP
+0x01 DPI_BUTTON_STATE_DOWN
+
+
+//PB button state 
+0x00 PB_BUTTON_STATE_UP
+0x01 PB_BUTTON_STATE_DOWN
+
+//Commbination_key state 
+0x00 COMMBINATION_KEY_STATE_UP
+0x01 COMMBINATION_KEY_STATE_DOWN
+
+
+//eeprom address offect
+0X00 MOUSE_INFO_EEPROM_OFFECT
+0x58 MOUSE_STORE_FLAG
+0X5A MOUSE_DPI_EEPROM_OFFECT	//1byte
+0X5B MOUSE_G24_ADDR_EEPROM_OFFECT	//4bytes
+0X5F MOUSE_RANDOM_ADDR_COUNT_EEPROM_OFFSET	//2bytes
+0X61 MOUSE_EEPROM_MODULE_INIT_FLAG
+
+// Sensor id number
+0x30 P32XX_ID1
+0x31 P3065_ID1
+0x02 P3212_ID2
+0xD1 P3205_TJ3T_ID2
+0XD2 P3204_TJ3L_ID2
+0x54 PKA8_ID2
+0x70 P3065_XY_ID2
+0x00 P3065_ID2
+0x5a P_MX8650
+0xD8 P8009_ID2
+0x50 P6520A_ID2
+0x57 KA5857_ID2
+0x58 PKA8G2_ID1
+0x59 PKA8G2_ID2
+
+
+//Sensor type
+0X00 P3205
+0X01 P3065
+0X02 P3204
+0X03 P3212
+0X04 P3065_XY
+0x05 MX8650
+0x06 P8009
+0x07 P6520
+0X08 KA8
+0X09 KA8_UL
+0X0a KA8_HD
+0X0b KA8G2
+0X0c S201X
+0X0d KA5857
+
+
+//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
+
+)
+(
+0x01 ADV_FLAG_LIMITED_DISCOVERABLE
+0x04 ADV_FLAG_BREDR_NOT_SUPPORTED
+)
+(
+2 BIT_POWER_ON
+)
+(
+0x00 MOUSE_L_KEY
+0x01 MOUSE_R_KEY
+0x02 MOUSE_M_KEY
+0x03 MOUSE_BK_KEY
+0x04 MOUSE_FW_KEY
+0x05 MOUSE_DPI_KEY
+0x06 MOUSE_PB_KEY
+0x07 MOUSE_CUSTOMER_KEY
+0x00 MOUSE_DPI_ANOTHER_KEY
+)
+(
+0 MULTI_LED_ON
+1 MULTI_LED_BLINK
+)
+(
+1 KEY_DOWN 
+0 KEY_UP 
+)
+(
+0x00 KEYPAD_TYPE_CONSUMER
+0x01 KEYPAD_TYPE_MOUSE
+0x02 KEYPAD_TYPE_KEYPAD
+0x03 KEYPAD_TYPE_NEC
+)
+(
+0x03 MAX_QUEUE_UNIT
+)
+(
+0x100 NEC_STORE_BUF_SIZE
+0x3fff NEC_LEAR_HEAD
+)
+(
+0 INDEX_0
+1 INDEX_1
+2 INDEX_2
+3 INDEX_3
+4 INDEX_4
+5 INDEX_5
+6 INDEX_6
+7 INDEX_7
+8 INDEX_8
+9 INDEX_9
+10 INDEX_10
+11 INDEX_11
+12 INDEX_12
+13 INDEX_13
+14 INDEX_14
+15 INDEX_15
+16 INDEX_16
+17 INDEX_17
+18 INDEX_18
+19 INDEX_19
+20 INDEX_20
+)
+(
+0x00 NONE_FILTER
+0x01 WHITE_LIST_SCAN_FILTER
+0x02 WHITE_LIST_CONNECT_FILTER
+0x03 WHITE_LIST_CONN_SCAN_FILTER
+)
+(
+0xAB OTA_EVENT
+0xBA OTA_COMMAND
+)
+(
+0x10 OTA_PORTOCOL_VERSION_REQUEST
+0x11 OTA_BUCK_SIZE_REQUEST
+0x12 OTA_WORK_MODE_REQUEST
+0x13 OTA_SWITCH_WORK_MODE_REQUEST
+0x14 OTA_FLASH_CHECKSUM_REQUEST
+0x15 OTA_START_REQUEST
+0x16 OTA_DATA_WRITE_CMD
+0x17 OTA_DATA_WRITE_REQUEST
+0x18 OTA_END_REQUEST
+)
+(
+0x00 OTA_UPDATE_FLASH_NORMAL
+)
+(
+0x00 OTA_RESULT_SUCCESS
+0x01 OTA_RESULT_WORKMODE_NOT_SUPPORT
+0x02 OTA_RESULT_WORKMODE_ERROR
+0x03 OTA_RESULT_FLASHMODE_NOT_SUPPORT
+0x04 OTA_RESULT_INDEX_ERROR
+0x05 OTA_RESULT_LENGTH_ERROR
+0x06 OTA_RESULT_BUCK_SIZE_ERROR
+0x07 OTA_RESULT_WRITE_FLASH_ERROR
+0xFF OTA_RESULT_ERROR
+)
+(
+0x01 OTA_LE_CONN_PARAM_UPDATE_ENABLE
+0x00 OTA_LE_CONN_PARAM_UPDATE_DISABLE
+)
+(
+0 BLE_SHUTTER
+1 CLASSIC_SHUTTER
+)
+(
+0x0000 NVRAM_EEPROM_OFFSET
+)
+(
+0x1b3a SHUTTER_EEPROM_CONFIG_CRC
+)
+(
+5 MAX_QUEUE_NUM
+5 SHUTTER_BLE_DATA_BUFFER
+5 SHUTTER_CLASSIC_DATA_BUFFER
+)
+(
+0x13	GATT_CONSUMER_NOTIFY_HANDLE
+0x14	GATT_CONSUMER_WRITE_HANDLE
+0x17	GATT_KEYBOARD_NOTIFY_HANDLE
+0x18	GATT_KEYBOARD_WRITE_HANDLE
+)
+(
+//20ms
+0x0020	FAST_ADV_INTERVAL_VALUE
+//100ms
+0x00a0	SLOW_ADV_INTERVAL_VALUE
+)
+(
+0 ATT_BIT_NOTIFICATION
+1 ATT_BIT_INDICATION
+)
+(
+0 HARD_SWITCH
+1 SOFT_SWITCH
+)
+(
+1  FLAG_SHUTTER_HID_DISCONN_TIMEOUT
+5 FLAG_SHUTTER_CABLE_UNPLUG_TIMEOUT
+)
+(//Data Rom Buffer Addr
+313		BLE_GATT_LIST_SIZE
+487		BT_SDP_LIST_SIZE
+40		BLE_KEY_VALUE_LIST_SIZE
+40		BT_KEY_VALUE_LIST_SIZE
+)
+(//soft switch power state
+0		SS_STATE_POWER_UP
+1		SS_STATE_POWER_ON
+2		SS_STATE_POWER_OFF
+)
+(
+0		SS_POWER_STATE_OFFSET
+1		SS_POWER_ON_TIME
+2		SS_POWER_OFF_TIME
+3		SS_POWER_ON_CB
+5		SS_POWER_OFF_CB
+
+)
+(
+
+0x4FFE SIM_IIC_SCL_GPIO_NUM
+0x4FFF SIM_IIC_SDA_GPIO_NUM
+
+)
+(
+0 SHUTTER_TYPE
+1 SHUTTER_DY_TYPE
+)
+(
+10 MAX_QUEUE_NUM_COMBINEKEY
+15 MAX_QUEUE_NUM_RELEASE
+3 MAX_QUEUE_NUM_LONG
+3 MAX_QUEUE_NUM_LONG_RELEASE
+10 MAX_QUEUE_NEW_PRESS
+
+10 EVERY_PAYLOAD_LEN
+)
+(
+0x24	GATT_KEYBOARD_WRITE_HANDLE_NEW
+)
+(//Data Rom Buffer Addr
+640		BT_DY_KEY_VALUE_LIST_SIZE
+)
+(
+0x05   SHUTTER_PARA_TOTAL_NUM
+//0x7b0  SHUTTER_EFUSE_START_OFFECT	//起始地址
+//0x680  SHUTTER_EFUSE_END_OFFECT	       //结束地址
+)
+(
+//uart config
+115200 UART_BAUD
+)
+(
+10 SHUTTER_KEY_CONF_SATE_BYTES
+0 KEY_STATE_PRESS_CLK_OFFSET
+4 KEY_STATE_PRESS_COUNT_OFFSET
+5 KEY_STATE_RELEASE_CLK_OFFSET
+9 KEY_STATE_LONGPRESS_OFFSET
+4 KEY_STATE_PRESS_CLK_LENGTH
+1 KEY_STATE_PRESS_COUNT_LENGTH
+4 KEY_STATE_RELEASE_CLK_LENGTH
+1 KEY_STATE_LONGPRESS_LENGTH
+)
+(
+0  SHUTTER_RIGHT_KEY_NUM
+1  SHUTTER_LIKE_KEY_NUM
+2  SHUTTER_DOWN_KEY_NUM
+3  SHUTTER_PHOTO_KEY_NUM
+4  SHUTTER_UP_KEY_NUM
+5  SHUTTER_LEFT_KEY_NUM
+6  SHUTTER_MOVE_KEY_NUM
+7  SHUTTER_FUN_KEY_NUM
+)
+(
+//0xaa ANDROID_INITIAL_MOVE_X //170
+//0x78 ANDROID_INITIAL_MOVE_Y //120
+//0x69 IPHONE_INITIAL_MOVE_X
+//0x38 IPHONE_INITIAL_MOVE_Y
+0X55 ANDROID_EVERY_MOVE_SIZE
+0x07 IPHONE_EVERY_MOVE_SIZE
+0xfff IPHONE_ONCE_MAX_MOVE_VALUE
+)
+(
+0x00 MOVE_COMBINE_KEY
+0x01 MOVE_SINGLE_KEY
+)
+(
+//6key or 7key conf
+6 SHUTTER_SIX_KEY
+7 SHUTTER_SEVEN_KEY
+8 SHUTTER_EIGHT_KEY
+)
+(
+0x07 HCI_UART_TX_GPIO_NUM
+0x06 HCI_UART_RX_GPIO_NUM
+0x09 HCI_UART_RTS_GPIO_NUM
+0x0a HCI_UART_CTS_GPIO_NUM
+0x0c HCI_PMW_12MHZ_GPIO_NUM
+)
+(
+0x00 COMMAND_SUCCEEDED
+0x01 COMMAND_UNKNOWN
+0x0c COMMAND_DISALLOWED
+)
+(
+0x01 HCI_H4_TYPE_CMD
+0x02 HCI_H4_TYPE_ACL
+0x04 HCI_H4_TYPE_EVENT
+)
+(
+0x00 BT_ACL_START_NO_FLUSH
+0x01 BT_ACL_CONT
+0x02 BT_ACL_START
+)
+(
+0x01 HCI_OGF_LINK_CONTROL
+0x02 HCI_OGF_LINK_POLICY
+0x03 HCI_OGF_CONTROLLER_AND_BASEBAND
+0x04 HCI_OGF_INFOMATIONAL_PARAM
+0x05 HCI_OGF_STATUS_PARAM
+0x06 HCI_OGF_TEST
+0x08 HCI_OGF_LE_CONTROLLER
+0x3f HCI_OGF_VENDOR_SPECIFIC_DEBUG
+)
+(
+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
+)
+(
+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
+)
+(
+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
+)
+(
+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
+)
+(
+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
+)
+(
+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
+)
+(
+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
+
+0X12 HCI_VENDOR_CMD_PATCH_SEC_INIT
+0X13 HCI_VENDOR_CMD_PATCH_SEC
+0x14 HCI_VENDOR_CMD_SET_FLOW_CONTROL
+)
+(
+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
+)
+(
+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
+)
+(
+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
+)
+(
+0 G24_DISCONN_STATE
+1 G24_CONN_STATE
+
+8 G24_CH_NUMBER
+16 G24_CH_POLL_COUNT
+
+0x20 MOUSE_BLE_L2CAP_TXBUFF_SIZE
+
+0x5a USB_INTERFACE_INSERT
+0xa5 USB_INTERFACE_REMOVE
+
+
+10 LE_LPM_DISABLE_TO
+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
+6 LE_INTERVAL_7_5MS//7.5ms
+12 CLASSIC_INTERVAL_7_5MS
+14 CLASSIC_INTERVAL_8_75MS
+18 CLASSIC_INTERVAL_11_25MS
+
+)(
+256 l2cap_lpm_txbuf_len
+)
+(
+4 L2CAP_TX_FIFO_SIZE
+8 L2CAP_TX_BUFF_CNT
+
+)
+(
+0xf00 mem_dcoc_buf
+0xff0 mem_dcoc_buf_end
+)
+(
+0xf00 mem_le_l2cap_buf		//0x100
+)
+(
+0xd00 mem_ble_tx_buff0
+0x60 mem_ble_l2cap_tx_buff_size
+)
+(
+0xc00 mem_h5rx_buf//0x400
+0xeff mem_h5rx_buf_end
+0xf00 mem_h5tx_buf
+0xfff mem_h5tx_buf_end
+)
+(
+0x4c00 mem_savelist
+)
+(
+	  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
+	0x8001 core_revid
+	0x8003 core_kick
+	0x8004 core_write_wdt
+	0x8005 core_lpm_wr
+	0x8006 core_misc_ctrl
+	0x8007 core_otp_rdata
+	0x8007 core_efuse_rdata
+	0x800a core_ccm_ctrl
+	0x800b core_write_wdt2
+	0x8010 core_reset
+	0x8011 core_encrypt
+	0x8012 core_lpm_wr2
+	0x8020 core_set_bistfix
+	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_otp_addr
+	0x8046 core_otp_din
+	0x8046 core_otp_ctrl2
+	0x8047 core_otp_ctrl
+	0x8047 core_otp_pab
+	0x8048 core_xtal_stable_time
+	0x8049 core_gpio_ds
+	0x804c core_lpm_reg
+	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_ctrl
+	0x8061 core_nec_ctrl
+	0x8062 core_nec_start_addr
+	0x8064 core_nec_end_addr
+	0x8066 core_nec_rptr
+	0x8068 core_ccm_input_playload_addr
+	0x806a core_ccm_output_playload_addr
+	0x806c core_ccm_aad0
+	0x806d core_ccm_aad1
+	0x806e core_ccm_aad2
+	0x806f  core_bist_ctrl
+	0x8070 core_gpio_conf
+	0x8080 core_spid_ctrl
+	0x8081 core_spid_delay
+	0x8082 core_spid_txlen
+	0x8084 core_spid_txaddr
+	0x8086 core_spid_rxaddr
+	0x8088 core_spid_rxlen
+	0x808a core_iicd_ctrl
+	0x808b core_iicd_scl_low
+	0x808c core_iicd_scl_high
+	0x808d core_iicd_start_setup
+	0x808e core_iicd_start_hold
+	0x808f core_iicd_stop_setup
+	0x8090 core_iicd_data_setup
+	0x8091 core_iicd_data_hold
+	0x8092 core_iicd_txlen
+	0x8094 core_iicd_txaddr
+	0x8096 core_iicd_rxaddr
+	0x8098 core_iicd_rxlen
+	0x809a core_pwm_en
+	0x809b core_pwm_init
+	0x809c core_pwm_pcnt0
+	0x809e core_pwm_ncnt0
+	0x80a0 core_pwm_pcnt1
+	0x80a2 core_pwm_ncnt1
+	0x80a4 core_pwm_pcnt2
+	0x80a6 core_pwm_ncnt2
+	0x80a8 core_pwm_pcnt3
+	0x80aa core_pwm_ncnt3
+	0x80ac core_pwm_pcnt4
+	0x80ae core_pwm_ncnt4
+	0x80b0 core_pwm_pcnt5
+	0x80b2 core_pwm_ncnt5
+	0x80b4 core_pwm_pcnt6
+	0x80b6 core_pwm_ncnt6
+	0x80b8 core_pwm_pcnt7
+	0x80ba core_pwm_ncnt7
+	0x80bc core_pwm_sync
+	0x80bd core_pwm_timermode
+	0x80be core_pwm_autoload
+	0x80bf core_sum_ctrl
+	0x80c0 core_ccm_inptr
+	0x80c2 core_dac_ctrl	
+	0x80c3 core_dac_vol
+	0x80c4 core_dac_saddr
+	0x80c6 core_dac_len
+	0x80c8 core_dac_coef
+	0x80cb core_ccnt_bit
+	0x80cc core_sadc_ctrl
+	0x80cd core_sadc_clkdiv
+	0x80ce core_sadc_saddr
+	0x80d0 core_sadc_eaddr
+	0x80d2 core_keybuf_saddr
+	0x80d4 core_gpio_conf_hi
+
+	0x8100 core_clkn
+	0x8108 core_misc_status
+	0x8109 core_qdec_cntx
+	0x810a core_watchdog_cnt
+	0x810b core_uart_status
+	0x810c core_uart_rbaud
+	0x810e core_uart_txitems
+	0x8110 core_uart_trptr
+	0x8112 core_uart_rxitems
+	0x8114 core_uart_rdptr
+	0x8116 core_uart_rwptr
+	0x8118 core_debug_baud
+	0x811a core_ccm_outptr
+	0x811c core_gpio_in
+	0x811d core_gpio_in1
+	0x811e core_adc_sum
+	0x8120 core_nec_wptr
+	0x8122 core_current_otp_addr
+	0x8124 core_spid_remain
+	0x8126 core_iicd_remain
+	0x8128 core_dma_status
+	0x8129 core_perf_status
+	0x812a core_adc_in
+	0x812c core_nec_rxitem
+	0x812e core_otpd_remain
+	0x8130 core_lpm_ctrl
+	0x8132 core_lpm_isogate
+	0x8133 core_lpm_ldosel
+	0x8134 core_io_vsel
+	0x8135 core_io_doze_en
+	0x813a core_xtal_cap
+	0x813d core_xtal_ib
+	0x813e core_lpm_xtalcnt
+	0x813f core_lpm_buckcnt
+	0x8140 core_lpm_ldocnt
+	0x8141 core_puwakeup
+	0x8142 core_lpm_sysctl
+	0x8143 core_ucode_flag
+	0x8144 core_peripheral_lock
+	0x8145 core_mpu_s0_saddr
+	0x8147 core_mpu_s0_eaddr
+	0x8149 core_mpu_s1_saddr
+	0x814b core_mpu_s1_eaddr
+	0x814d core_gpio_wakeup_cfg
+	0x8155 core_aes_decode_key_init
+	0x815b core_clk_counter
+	0x815e core_bist_done
+	0x8160 core_bist_fail
+	0x8162 core_dac_rptr	
+	0x8164 core_sadc_data	
+	0x8166 core_rccnt_counter
+		
+	0x8203 core_ice_ctrl
+	0x8204 core_ice_status
+	0x8205 core_ice_break0
+	0x8207 core_ice_break1
+  
+
+	0x8900 modem_en
+	0x8960 core_rf_rx_agc_ctrl
+	0x8961 core_rf_rx_gain_fix
+	0x8968 core_agc_wb_sat_th
+	0x8969 core_agc_nb_sat_th
+	0x89a0 modem_rssi
+	0x89a1 modem_wb_pow
+	0x89a2 modem_nb_pow
+	0x89a3 modem_gain
+	0x89a4 modem_status
+
+	0x8a00 core_bbpll_ctrl0              
+	0x8a01 core_bbpll_ctrl1              
+	0x8a02 core_bbpll_cfg0               
+	0x8a03 core_bbpll_cfg1               
+	0x8a04 core_bbpll_cfg2               
+	0x8a05 core_bbpll_cfg3               
+	0x8a06 core_bbpll_cfg4               
+	0x8a07 core_gpadc_ctrl
+	0x8a08 core_gpadc_cfg0
+	0x8a09 core_gpadc_cfg1
+	0x8a0a core_gpadc_cfg2
+	0x8a0b core_gpadc_cfg3
+	0x8a0c core_gpadc_status
+	0x8a0d core_vtest_ctrl0
+	0x8a0e core_vtest_ctrl1
+	0x8a0f core_ldo_trx_ctrl0
+	0x8a10 core_ldo_trx_ctrl1
+	0x8a11 core_ldo_trx_ctrl2
+	0x8a12 core_ldo_rfpll_ctrl
+    0x8a13 core_ldo_trx_cfg0
+    0x8a14 core_ldo_trx_cfg1
+    0x8a15 core_ldo_trx_cfg2
+    0x8a16 core_ldo_rfpll_mnc_cfg2
+
+    0x8a20 core_rfpll_afc_ctrl0
+    0x8a21 core_rfpll_afc_ctrl1
+    0x8a22 core_rfpll_afc_ctrl2
+    0x8a23 core_rfpll_en_ctrl0
+    0x8a24 core_rfpll_en_ctrl1
+    0x8a25 core_rf_en_ctrl0
+    0x8a26 core_rf_en_ctrl1
+
+	0x8a30 core_rx_force_en_ctrl
+	0x8a31 core_rx_gc_force_val
+	0x8a32 core_rx_lna_isel_force_val
+
+	0x8a40 core_rx_lna_hg_isel_gc7        
+	0x8a41 core_rx_lna_hg_isel_gc6        
+	0x8a42 core_rx_lna_hg_isel_gc5        
+	0x8a43 core_rx_lna_lg_isel_gc4        
+	0x8a44 core_rx_lna_lg_isel_gc3        
+	0x8a45 core_rx_lna_lg_isel_gc2        
+	0x8a46 core_rx_lna_lg_isel_gc1        
+	0x8a47 core_rx_lna_lg_isel_gc0        
+	0x8a48 core_rx_abb_gc_gc8              
+	0x8a49 core_rx_abb_gc_gc7              
+	0x8a4a core_rx_abb_gc_gc6              
+	0x8a4b core_rx_abb_gc_gc5              
+	0x8a4c core_rx_abb_gc_gc4              
+	0x8a4d core_rx_abb_gc_gc3              
+	0x8a4e core_rx_abb_gc_gc2              
+	0x8a4f core_rx_abb_gc_gc1              
+	0x8a50 core_rx_abb_gc_gc0              
+
+	0x8a60 core_tx_ctrl0
+	0x8a61 core_tx_ctrl1
+	0x8a62 core_tx_ctrl2
+	0x8a63 core_tx_ctrl3
+
+	0x8a70 core_rfpll_cal_ctrl0
+	0x8a71 core_rfpll_cal_ctrl1
+	0x8a72 core_rfpll_cal_ctrl2
+	0x8a73 core_rfpll_cal_ctrl3
+	0x8a74 core_rfpll_cal_ctrl4
+	0x8a75 core_rfpll_cal_ctrl5
+	0x8a76 core_rfpll_cal_ctrl6
+	0x8a77 core_rfpll_cal_ctrl7
+	0x8a78 core_rfpll_cal_ctrl8
+	0x8a79 core_rfpll_cal_ctrl9
+	0x8a7a core_rfpll_cal_ctrl10
+	0x8a7b core_rfpll_cal_ctrl11
+	0x8a7c core_rfpll_cal_result0
+	0x8a7d core_rfpll_cal_result1
+	0x8a7e core_rfpll_cal_result2
+
+    0x8a80 core_rfpll_cfg0
+    0x8a81 core_rfpll_cfg1
+    0x8a82 core_rfpll_cfg2
+    0x8a83 core_rfpll_cfg3
+    0x8a84 core_rfpll_cfg4
+    0x8a85 core_rfpll_cfg5
+    0x8a86 core_rfpll_cfg6
+    0x8a87 core_rfpll_cfg7
+
+    0x8a88 core_rx_cfg0
+    0x8a89 core_rx_cfg1
+    0x8a8a core_rx_cfg2
+    0x8a8b core_rx_cfg3
+    0x8a8c core_rx_cfg4
+    0x8a8d core_rx_cfg5
+    0x8a8e core_rx_cfg6
+    0x8a8f core_rx_cfg7
+    0x8a90 core_rx_cfg8
+
+	0x8aa0 core_rx_tiai_dcoc_gc0          
+	0x8aa1 core_rx_tiaq_dcoc_gc0          
+	0x8aa2 core_rx_tiai_dcoc_gc1          
+	0x8aa3 core_rx_tiaq_dcoc_gc1          
+	0x8aa4 core_rx_tiai_dcoc_gc2          
+	0x8aa5 core_rx_tiaq_dcoc_gc2          
+	0x8aa6 core_rx_tiai_dcoc_gc3          
+	0x8aa7 core_rx_tiaq_dcoc_gc3          
+	0x8aa8 core_rx_tiai_dcoc_gc4          
+	0x8aa9 core_rx_tiaq_dcoc_gc4          
+	0x8aaa core_rx_tiai_dcoc_gc5          
+	0x8aab core_rx_tiaq_dcoc_gc5          
+	0x8aac core_rx_tiai_dcoc_gc6          
+	0x8aad core_rx_tiaq_dcoc_gc6          
+	0x8aae core_rx_tiai_dcoc_gc7          
+	0x8aaf core_rx_tiaq_dcoc_gc7          
+	0x8ab0 core_rx_abbi_dcoc_gc0
+	0x8ab1 core_rx_abbq_dcoc_gc0
+	0x8ab2 core_rx_abbi_dcoc_gc1
+	0x8ab3 core_rx_abbq_dcoc_gc1           
+	0x8ab4 core_rx_abbi_dcoc_gc2
+	0x8ab5 core_rx_abbq_dcoc_gc2
+	0x8ab6 core_rx_abbi_dcoc_gc3
+	0x8ab7 core_rx_abbq_dcoc_gc3
+	0x8ab8 core_rx_abbi_dcoc_gc4
+	0x8ab9 core_rx_abbq_dcoc_gc4
+	0x8aba core_rx_abbi_dcoc_gc5
+	0x8abb core_rx_abbq_dcoc_gc5
+	0x8abc core_rx_abbi_dcoc_gc6
+	0x8abd core_rx_abbq_dcoc_gc6
+	0x8abe core_rx_abbi_dcoc_gc7
+	0x8abf core_rx_abbq_dcoc_gc7
+	0x8ac0 core_rx_abbi_dcoc_gc8
+	0x8ac1 core_rx_abbq_dcoc_gc8
+	0x8ac2 core_rx_tiai_dcoc_force
+	0x8ac3 core_rx_tiaq_dcoc_force
+	0x8ac4 core_rx_abbi_dcoc_force
+	0x8ac5 core_rx_abbq_dcoc_force
+	0x8ac8 core_chgpump_ctrl
+
+	0x8c00 core_usb_config
+	0x8c01 core_usb_addr
+	0x8c02 core_usb_rx_saddr
+	0x8c04 core_usb_rx_eaddr
+	0x8c06 core_usb_rxptr
+	0x8c08 core_usb_tx_saddr0
+	0x8c0a core_usb_tx_saddr1
+	0x8c0c core_usb_tx_saddr2
+	0x8c0e core_usb_tx_saddr3
+	0x8c10 core_usb_epmap
+	0x8c11 core_usb_pupd
+	0x8c12 core_usb_hmode
+	0x8c13 core_usb_int_mask
+	0x8c18 core_usb_trig
+	0x8c19 core_usb_stall
+	0x8c1a core_usb_toggle
+	0x8c1b core_usb_clear_nak
+	0x8c20 core_usb_rx_wptr
+	0x8c22 core_usb_status
+	0x8c24 core_usb_stall_status
+	0x8c25 core_usb_txbusy
+	0x8c26 core_usb_sof_cnt
+	0x8c28 core_usb_rxcnt
+
+	
+
+
+
+    
+    
+)
+(
+
+4 BIST_CTRL_FIX_SCHED_RAM
+5 BIST_CTRL_FIX_XRAM
+6 BIST_CTRL_FIX_PATCH_RAM
+
+7 AES_EN
+)
+(
+4 rx_freq_offset
+2 tx_freq_offset
+)
+(
+/* bit difinitions */
+  4 whiteoff_bit
+  6 clksel_rc
+  1 clksel_dpll_24M
+  5 clksel_dpll
+  4 clksel_xtal
+  5 adc_rccal
+  0 bpf_rccal
+  1 demod_clkoff
+)
+(
+  4 cold_wake
+  5 gpio_latch
+  6 retmem_cs
+  7 isogate
+)
+(
+  2 fast_wake
+  3 ice_mode
+  4 reload_code
+)
+(
+1 lpmreg_sel_counter
+2 lpmreg_sel_scanmode
+)
+(
+0 SPI_LOCK_BIT
+1 PWM_LOCK_BIT
+2 UART_LOCK_BIT
+3 IIC_LOCK_BIT
+4 ADPCM_LOCK_BIT
+5 ROM_LOCK_BIT
+6 OPTION_LOCK
+6 OTP_NOT_LIMIT
+7 OTP_LIMIT
+)
+(
+4 LPM_DOZE_EN_BIT	
+)
+(
+  0x01 RCCNT_START
+  0x02 SPID_START
+  0x04 IICD_START
+  0x08 OTP_KEY_LOCK
+  0x10 INIT_KEY
+  0x20 SHIFT_KEY
+  0X80 CCNT_START
+)
+(
+  0 OTPD_CRCOK
+  1 OTPD_DONE
+  2 SPID_CRCOK
+  3 SPID_DONE
+  4 IICD_CRCOK
+  5 IICD_DONE
+  6 IICD_ACK
+)
+(
+1 UART_STATUS_TX_BUSY
+2 UART_STATUS_RX_FIFO_EMPTY
+3 UART_STATUS_RX_FIFO_FULL
+4 UARTB_STATUS_TX_BUSY
+5 UARTB_STATUS_RX_FIFO_EMPTY
+6 UARTB_STATUS_RX_FIFO_FULL
+)
+(//core_uart_clksel
+0 UART_CLOCK_SELECT_BIT
+0xFE UART_CLOCK_SELECT_CRYSTAL
+0x01 UART_CLOCK_SELECT_DPLL
+
+24000000 uart_clock_freq_24M
+48000000 uart_clock_freq_48M
+)
+(//bit map of core_uart_ctrl
+0 BIT_UART_CONTROL_ENABLE
+1 BIT_UART_CONTROL_PARITY
+2 BIT_UART_CONTROL_DATA_LENGTH
+3 BIT_UART_CONTROL_STOP_BIT_SIZE
+4 BIT_UART_CONTROL_FLOW_CONTROL
+5 BIT_UART_CONTROL_7816_SMART_CARD_PROTOCOL
+6 BIT_UART_CONTROL_HALF_DUPLEX_SINGLE_LINE_UART
+7 BIT_UART_CONTROL_RATE_BAUD_SETTING
+)
+(//FUN of core_uart_ctrl
+0x01 FUN_UART_CONTROL_ENABLE
+0x06 FUN_UART_CONTROL_PARITY_ODD
+0x04 FUN_UART_CONTROL_PARITY_EVEN
+0x08 FUN_UART_CONTROL_STOP_2BIT
+0x00 FUN_UART_CONTROL_STOP_1BIT
+0x10 FUN_UART_CONTROL_FLOW_CONTROL_ENABLE
+0x20 FUN_UART_CONTROL_7816_SMART_CARD_PROTOCOL
+0x40 FUN_UART_CONTROL_HALF_DUPLEX_SINGLE_LINE_UART
+0x80 FUN_UART_CONTROL_SETTING_RATE_BAUD
+)
+(//bit map of core_nec_control
+0x00 BIT_NEC_ENABLE
+0x01 BIT_NEC_CLK_DIVIDE_NUM
+)
+(//FUN  of core_nec_control
+0x01 FUN_NEC_ENABLE
+0x30 FUN_NEC_CLK_DIVIDE_24	//24M , 
+)
+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
+(
+	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_SARADC_DMA
+	9 CLOCK_OFF_KEYSCAN
+	9 CLOCK_OFF_NEC
+	0x0a CLOCK_OFF_USB
+	0x0b CLOCK_OFF_QDECODER
+	0x0c CLOCK_OFF_SPI
+	0x0d CLOCK_OFF_PWM
+	0x0e CLOCK_OFF_UARTB
+	0x0f CLOCK_OFF_UART
+)
+(
+  0 gpcfg_input
+  6 gpcfg_dac_p  
+  7 gpcfg_dac_n
+  8 gpcfg_uart_txd
+  9 gpcfg_uart_rxd
+  10 gpcfg_uart_rts
+  11 gpcfg_uart_cts
+  
+  16 gpcfg_pwm_out0
+  17 gpcfg_pwm_out1
+  18 gpcfg_pwm_out2
+  19 gpcfg_pwm_out3
+  20 gpcfg_pwm_out4
+  21 gpcfg_pwm_out5
+  22 gpcfg_pwm_out6
+  23 gpcfg_pwm_out7
+  24 gpcfg_nec_input
+  
+  31 gpcfg_spid_miso
+  32 gpcfg_spid_ncs
+  33 gpcfg_spid_sck
+  34 gpcfg_spid_mosi
+  35 gpcfg_spid_sdio
+  
+  44 gpcfg_iic_scl
+  45 gpcfg_iic_sda
+  
+  62 gpcfg_output_low
+  63 gpcfg_output_high
+  
+  0x00 gpcfg_high_impedance
+  0x40 gpcfg_pullup
+  0x80 gpcfg_pulldown
+  0xc0 gpcfg_no_ie
+)
+(
+16	GPIO_NUMBER
+8	GPIO_NUMBER_EXT
+0xFF  GPIO_DISABLE
+)
+(
+  0x00   SP_FLAG_STANDBY
+  0x02   LE_SP_FLAG_COMMIT_256
+
+)
+(
+  0x00   SP_CALC_STANDBY
+  0x03   SP_CALC_PUBKEY_256
+  0x04   SP_CALC_DHKEY_256
+)
+(
+  0x00   SP_KEY_INVALID
+  0x03   SP_KEY_VALID_256
+
+)
+(
+0 SECURE_CONNECTIONS_LE_BIT
+1 SECURE_CONNECTIONS_BR_BIT
+)
+(
+9 UI_STATE_BLE_CONNECTED
+10 UI_STATE_BLE_WRITE_RCV
+11 UI_STATE_BLE_ADV
+12 UI_STATE_BTN_DOWN
+)
+(
+0 BT_CMD_STANDBY
+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
+31 BT_CMD_STORE_RECONN_INFO_LE
+34 BT_CMD_START_24G
+35 BT_CMD_STOP_24G
+36 BT_CMD_PAIR_24G
+)
+(
+0x00 BT_EVT_NULL
+0x0F BT_EVT_DISCOVERY_STOPED
+0x10 BT_EVT_BUTTON_LONG_PRESSED
+0x14 BT_EVT_LE_CONNECTED
+0X15 BT_EVT_LE_DISCONNECTED
+0x17 BT_EVT_BUTTON_ENTER_HIBERNATE
+0x25 BT_EVT_BUTTON_ADJUST_DPI
+0x28 BT_EVT_LE_WRITE_REQUEST
+0x29 BT_EVT_LE_ENC_INFO
+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
+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
+0x42 BT_EVT_LE_UPDATE_PHY
+0x43 BT_EVT_LE_GET_PASSKEY
+0x44 BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED
+)
+(
+0 OFF
+1 ON
+)
+(
+	160 UI_HUNDRED_MILLISECOND_TIME
+	0XFF UI_BUTTON_GPIO_DISABLE
+)
+(
+0x00 UI_BUTTON_STATE_DOWN
+0x01 UI_BUTTON_STATE_UP
+)
+(
+	0 IPC_CONTINUE_PROCESS
+	1 IPC_SKIP_CONTINUE_PROCESS
+)
+(//led style struct 
+0 		LED_OFFSET_LED_TYPE
+1 		LED_OFFSET_BLINK_COUNT
+2		LED_OFFSET_LED_GPIO
+3		LED_OFFSET_ON_TIME
+5		LED_OFFSET_OFF_TIME
+7 		LED_OFFSET_CB_LEDON
+9		LED_OFFSET_CB_LEDOFF
+11		LED_OFFSET_LENGTH
+)
+(//LED state
+0 UI_LED_STATE_BLINK_STOP
+1 UI_LED_STATE_BLINK_START
+2 UI_LED_STATE_LIGHTING
+3 UI_LED_STATE_DARKING
+4 UI_LED_STATE_BLINK_LIGHTING
+5 UI_LED_STATE_BLINK_DARKING
+
+0xFF LED_INFINITE_FLASH_NUM
+
+)
+(
+0x00 STANDARD_REQ
+0x01 CLASS_REQ
+0x02 MANUFACTURER_REQ
+)
+(
+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)
+)
+(
+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
+)
+(
+0x21 DSC_HID			      // HID Class Descriptor
+0x22 DSC_HID_REPORT			  // HID Report Descriptor
+)
+(
+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,
+)
+(
+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    
+)
+(
+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
+)
+(
+)
+(
+0 USB_STATUS_SETUP
+1 USB_STATUS_SUSPEND
+2 USB_STATUS_NAK
+3 USB_STATUS_RESET
+4 USB_STATUS_ACK
+5 USB_STATUS_RXREADY
+6 USB_STATUS_RXFULL
+7 USB_STATUS_TXDONE0
+8 USB_STATUS_TXDONE1
+9 USB_STATUS_TXDONE2
+10 USB_STATUS_TXDONE3
+)
+(
+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
+0x23 USB_EP2_BIT_CONSUMER
+0x24 USB_EP2_N_KEY_ROLLOVER
+0x01 MAC_BOOT_MODE
+0x02 R_KEY
+0x03 LR_KEY
+)
+(
+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
+)
+(
+//--------------------------------------------------
+// Define device states
+0x00 DEV_ATTACHED	// Device is in Attached State
+0x01 DEV_POWERED	// Device is in Powered State
+0x02 DEV_DEFAULT		// Device is in Default State
+0x03 DEV_ADDRESS	// Device is in Addressed State
+0x04 DEV_CONFIGURED	// Device is in Configured State
+0x05 DEV_SUSPENDED	// Device is in Suspended State
+)
+(
+// Define wIndex bitmaps
+0x81 IN_EP1                    // Index values used by Set and Clear
+0x01 OUT_EP1                   // commands for Endpoint_Halt
+0x82 IN_EP2              
+0x02 OUT_EP2             
+0x83 IN_EP3              
+0x03 OUT_EP3             
+)
+(
+0 EP0_STALL
+1 EP1_IN_STALL
+2 EP1_OUT_STALL
+3 EP2_IN_STALL
+4 EP2_OUT_STALL
+5 EP3_IN_STALL
+6 EP3_OUT_STALL
+)
+(
+// 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
+)
+(
+640 TIMER_NAK_DELAY
+5000 TIMER_WAKEUP_DELAY
+)
+(
+
+8 UTIL_FIFO_LEN
+-1 UTIL_FIFO_OFFSET
+)
+memalloc(
+ 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_current_context
+1 mem_le_ch_mapped
+1 mem_last_freq
+1 mem_rssi
+2 mem_context_ptr
+2 mem_rx_window
+
+
+/* lpo related */
+1 mem_lpm_adjust
+6 mem_sync_clke
+1 mem_lpm_current_mult
+12 mem_gpio_wakeup_cfg
+
+
+4 mem_clkn_bt
+4 mem_clke_bt
+4 mem_dpll_clkn
+
+2 mem_slot_offset
+
+
+1 mem_loadcode_times
+1 mem_select_list_item
+0 mem_temp_reconn_record
+1 mem_record_bt_mode
+2 mem_list_item_ptr
+
+1 mem_rssi_hex
+
+
+2 mem_param_tx_setup
+2 mem_param_rf_setup
+2 mem_param_conn_access
+2 mem_param_clke_cal
+2 mem_param_pll_setup
+2 mem_param_rx_setup
+2 mem_param_dpll_start_delay
+2 mem_param_rt_rthalfslot
+2 mem_param_clke_cal_le_1m
+2 mem_param_clke_cal_le_2m
+2 mem_param_clke_cal_le_coded
+
+)
+memalloc(
+260 mem_le_rxbuf
+
+/* security temp */
+4 mem_le_mic
+4 mem_le_peer_mic
+//8 mem_le_skdm
+//8 mem_le_skds
+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
+
+
+1 mem_le_rx_phy
+1 mem_le_tx_phy
+
+9 mem_le_update_new_param
+
+16 mem_le_sk
+
+1 mem_le_peer_sca
+1 mem_le_err_code
+1 mem_le_ll_pairing_fail_reason
+
+/* ========= le context ending =========== */
+
+
+)
+memalloc(
+
+/* load code */
+1 mem_ucode_status
+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
+16 mem_ucode_keybuf
+
+32 mem_otp_temp
+
+1 mem_app_evt_timer_count
+)
+memalloc (
+16 mem_input_store
+
+2 mem_ec_loopc
+1 mem_aes_cmac_data_length
+
+96 mem_dat
+
+/* ecc calculation */
+32 mem_ax_256 //32 bytes
+32 mem_ay_256 // 32 bytes
+32 mem_az_256 // 32 bytes
+32 mem_bx_256 // 32 bytes
+32 mem_by_256 // 31 bytes
+
+0 mem_bz_256  //32 bytes
+0 mem_tmp1
+24 memahbak
+8 mem_tmp5
+32 mem_cx_256  //32 bytes
+31 mem_cy_256  // 32 bytes
+1 mem_cy5_256 // 1 byte
+32 mem_cz_256 // 32 bytes
+32 mem_k_256 //32 bytes
+32  mem_tmp1_256 //32 bytes
+
+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
+
+32 mem_p_256		
+32 mem_a_256
+32 mem_gx_256
+32 mem_gy_256
+16 mem_le_slat
+
+)
+memalloc(
+0 mem_sp_state_start
+1 mem_sp_dhkey_invalid
+4 mem_gkey
+0 mem_sp_state_end
+
+32 mem_le_pubkey_remote_x_256
+32 mem_le_pubkey_remote_y_256
+32 mem_le_dhkey_256
+
+16 mem_sp_confirm_remote
+)
+memalloc(
+1 mem_ipc_skip_continue_proc
+) 
+memalloc(
+
+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
+2 mem_contus
+2 mem_contue
+2 mem_contu
+2 mem_queue
+2 mem_loopcnt
+
+4 mem_saved_gpio_in
+
+0 mem_module_rx_error_data_buffer
+0 mem_le_adv_channel_map_temp
+0 mem_le_data_len_temp	//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_tx_buf_temp //48byte
+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
+
+3 mem_scale_ratio
+3 mem_xcnt
+2 mem_scale_ratio_temp
+)
+memalloc test (
+/* test related */
+2 mem_le_test_sync
+2 mem_le_test_pcnt
+2 mem_tst_pktcnt_crc
+2 mem_tst_pktcnt_dmh
+3 mem_tmp_buffer_head
+80 mem_tmp_buffer
+
+)
+memalloc usb_dongle(
+256 mem_dg_rssi_noise_buffer
+256 mem_dg_rssi_noise_dg_buffer
+256 mem_dg_rssi_noise_ms_buffer
+256 mem_dg_rssi_noise_kb_buffer
+
+)
+memalloc module(
+	//ble
+	2 mem_module_le_rx_data_len
+	2 mem_module_le_rx_data_address
+	2 mem_module_le_rx_data_handle
+
+ifdef COMPILE_WECHAT
+	0 mem_wechat_tx_buffer
+	1 mem_wechat_tx_bMagicNumber
+	1 mem_wechat_tx_bVer
+	2 mem_wechat_tx_nLength
+	2 mem_wechat_tx_nCmdId
+	2 mem_wechat_tx_nSeq1
+	255 mem_wechat_tx_payload
+
+	0 mem_wechat_rx_buffer
+	1 mem_wechat_rx_bMagicNumber
+	1 mem_wechat_rx_bVer
+	2 mem_wechat_rx_nLength
+	2 mem_wechat_rx_nCmdId
+	2 mem_wechat_rx_nSeq
+	255 mem_wechat_rx_payload
+
+	255 mem_module_wechat_local_data_buffer
+
+endif
+)
+memalloc mouse(
+2 mem_init_cnt
+2 mem_data_pre
+2 mem_data_current
+3 mem_data_sum
+2 mem_data_value
+)
+memalloc rec(
+
+0 mem_malloc_rec_start
+
+//ota
+2 mem_rec_queue_ota_sptr
+2 mem_rec_queue_ota_eptr
+2 mem_rec_queue_ota_rptr
+2 mem_rec_queue_ota_wptr
+0 mem_rec_queue_ota_buf	//1280
+0 mem_rec_voice_raw_start
+799 mem_rec_voice_raw
+1 mem_rec_voice_raw_end
+
+//audio
+1 mem_rec_voice_queue_count
+20 mem_rec_queue_buf
+100 mem_rec_adpcm
+
+//nec
+255 mem_rec_nec_rx_start
+1 mem_rec_nec_rx_end
+255 mem_rec_nec_rx_store_start
+1 mem_rec_nec_rx_store_end
+
+4 mem_rec_ota_flash_buf_head
+0 mem_rec_ota_flash_buf	//300
+
+4 mem_rec_nec_flash_write_head
+0 mem_rec_nec_rx_info
+1 mem_rec_nec_rx_len
+2 mem_rec_nec_rx_perid_freq
+255 mem_rec_nec_rx_data
+1 mem_rec_nec_rx_analysis_end
+1 mem_rec_nec_rx_count
+
+1 mem_rec_nec_timer
+1 mem_rec_nec_timeout
+2 mem_rec_nec_usercode
+1 mem_rec_nec_datacode
+
+1 mem_rec_nec_learn_key_num
+1 mem_rec_nec_learn_key_state
+1 mem_rec_nec_learn_enable_flag
+4 mem_rec_nec_learn_timeout
+1 mem_rec_nec_learn_state
+
+20 mem_rec_period_cal
+2 mem_rec_period_cal_ptr
+1 mem_rec_period_cal_count
+20 mem_rec_nec_period_array
+
+2 mem_rec_nec_store_sptr
+2 mem_rec_nec_store_eptr
+2 mem_rec_nec_store_wptr
+
+1 mem_rec_nec_receive_data0
+1 mem_rec_nec_receive_data1
+1 mem_rec_nec_receive_data2
+3 mem_rec_nec_receive_data
+1 mem_rec_nec_data
+
+1 mem_rec_nec_period
+1 mem_rec_nec_duty
+1 mem_rec_nec_freq
+2 mem_rec_nec_carry_time
+
+4 mem_rec_nec_learn_stime
+4 mem_rec_nec_learn_ntime
+4 mem_rec_nec_learn_outtime
+1 mem_rec_nec_learn_succ
+2 mem_rec_nec_learn_succ_ptr
+
+1 mem_rec_nec_learn_send_flag
+1 mem_rec_nec_led_state
+1 mem_rec_nec_led_blink_count
+
+1 mem_malloc_rec_end
+)
+memalloc hci_boot(
+2 mem_hci_opcode_ocf
+1 mem_hci_opcode_ogf
+
+//event head
+1 mem_hci_event_head_type
+1 mem_hci_event_head_event_code
+1 mem_hci_event_para_total_length
+
+//command complete
+1 mem_hci_command_complete_num_hci_command_packet
+0 mem_hci_command_complete_command_opcode
+2 mem_hci_opcode
+0 mem_hci_command_complete_return_parameter
+1 mem_hci_command_complete_return_parameter_status
+0 mem_hci_command_complete_return_parameter_chip_id
+
+)
+memalloc usb(
+2 mem_usb_status
+1 mem_usb_fifo_empty
+2 mem_usb_read_len
+65 mem_usb_txbuf
+10 mem_usb_txbuf1
+10 mem_usb_txbuf2
+64 mem_usb_rxbuf
+1 mem_usb_rxbuf_end
+2 mem_bufptr
+1 mem_remain
+2 mem_hidreportdesc_kb
+2 mem_hidreportdesc_m
+19 mem_devicedesc
+60 mem_confdesc
+5 mem_string0
+30 mem_string1
+30 mem_string2
+30 mem_string3
+2 mem_cb_usb_config
+
+1 mem_usb_tx_interval
+9 mem_usb_vid_pid
+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
+
+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_set_report_data
+64 mem_usb0_get_report_data
+2 mem_usb_setup_bValue_temp
+1 mem_usb0_get_set_report
+1 mem_usb0_data_ready_report
+1 mem_usb_tx_win_enable
+1 mem_usb_tx_mac_enable
+1 mem_usb_idle_flag
+1 mem_usb_idle_rate
+1 mem_usb_get_protocol_flag
+1 mem_usb_set_protocol_status
+1 mem_usb_set_protocol_value
+1 mem_usb_state
+1 mem_usb_remote_wakeup
+1 mem_usb_clear_remote_wakeup
+1 mem_sdsystem_wakeup_flag
+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_usb_ep1_data
+1 mem_usb_ep2_data
+1 mem_usb_tx_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_clear_halt
+16 mem_usb_mouse_data
+16 mem_usb_kb_data
+16 mem_usb_kb_n_key_rollvoer_data
+8 mem_usb_kb_multikey
+8 mem_usb_kb_system
+2 mem_usb_test_cnt
+10 mem_usb_test_kb
+0 mem_usb_clear_mem_end
+64 mem_usb_ccid_buf
+)
+amemalloc mem_le_update_new_param(
+//update connection parameter
+	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
+)
+amemalloc mem_le_update_new_param(
+//update map parameter
+	5 mem_le_new_map
+)
+amemalloc mem_le_update_new_param(
+//update phy parameter
+	1 mem_le_new_m2s_phy
+	1 mem_le_new_s2m_phy
+)
+amemalloc mem_le_rxbuf(
+//data channel PDU
+	1 mem_le_rxbuf_data_header
+	1 mem_le_rxbuf_data_length
+	255 mem_le_rxbuf_data_payload
+)
+amemalloc mem_le_rxbuf(
+//data channel LL control PDU
+	1 mem_le_rxbuf_data_ll_header
+	1 mem_le_rxbuf_data_ll_length
+	1 mem_le_rxbuf_data_ll_opcode
+	26 mem_le_rxbuf_data_ll_control_data
+)
+amemalloc mem_le_rxbuf(
+//advertising channel PDU
+	1 mem_le_rxbuf_adv_header
+	1 mem_le_rxbuf_adv_length
+	255 mem_le_rxbuf_adv_payload
+)
+amemalloc mem_le_rxbuf(
+//advertising channel PDU
+//Scan Req
+	1 mem_le_rxbuf_adv_scan_req_header
+	1 mem_le_rxbuf_adv_scan_req_length
+	6 mem_le_rxbuf_adv_scan_req_scan_address
+	6 mem_le_rxbuf_adv_scan_req_adv_address
+)
+amemalloc mem_le_rxbuf(
+//advertising channel PDU
+//Connect IND
+	1 mem_le_rxbuf_adv_connect_ind_header
+	1 mem_le_rxbuf_adv_connect_ind_length
+	6 mem_le_rxbuf_adv_connect_ind_init_address
+	6 mem_le_rxbuf_adv_connect_ind_adv_address
+	4 mem_le_rxbuf_adv_connect_ind_access_address
+	3 mem_le_rxbuf_adv_connect_ind_crc_init
+	1 mem_le_rxbuf_adv_connect_ind_win_size
+	2 mem_le_rxbuf_adv_connect_ind_win_offset
+	2 mem_le_rxbuf_adv_connect_ind_interval
+	2 mem_le_rxbuf_adv_connect_ind_latency
+	2 mem_le_rxbuf_adv_connect_ind_timeout
+	5 mem_le_rxbuf_adv_connect_ind_channel_map
+	1 mem_le_rxbuf_adv_connect_ind_hop_and_sca
+)
+amemalloc mem_temp_block2(
+	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
+
+	1 mem_le_curr_att_len
+
+	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
+	2 mem_le_cur_handle
+)
+amemalloc mem_le_rxbuf(
+//data channel ATT start PDU
+	1 mem_le_rxbuf_data_att_header
+	1 mem_le_rxbuf_data_att_length
+	2 mem_le_rxbuf_data_att_l2cap_length
+	2 mem_le_rxbuf_data_att_cid
+	1 mem_le_rxbuf_data_att_opcode
+	250 mem_le_rxbuf_data_att_payload
+)
+amemalloc mem_le_rxbuf(
+//data channel ATT continue PDU
+	1 mem_le_rxbuf_data_continue_header
+	1 mem_le_rxbuf_data_continue_length
+	255 mem_le_rxbuf_data_continue_payload
+)
+amemalloc mem_le_rxbuf(
+//data channel ATT write request PDU
+	1 mem_le_rxbuf_data_att_write_header
+	1 mem_le_rxbuf_data_att_write_length
+	2 mem_le_rxbuf_data_att_write_l2cap_length
+	2 mem_le_rxbuf_data_att_write_cid
+	1 mem_le_rxbuf_data_att_write_opcode
+	2 mem_le_rxbuf_data_att_write_handle
+	248 mem_le_rxbuf_data_att_write_payload
+)
+amemalloc mem_le_rxbuf(
+//data channel ATT prepare write request PDU
+	1 mem_le_rxbuf_data_prepare_att_write_header
+	1 mem_le_rxbuf_data_prepare_att_write_length
+	2 mem_le_rxbuf_data_prepare_att_write_l2cap_length
+	2 mem_le_rxbuf_data_prepare_att_write_cid
+	1 mem_le_rxbuf_data_prepare_att_write_opcode
+	2 mem_le_rxbuf_data_prepare_att_write_handle
+	2 mem_le_rxbuf_data_prepare_att_write_offset
+	246 mem_le_rxbuf_data_prepare_att_write_payload
+)
+amemalloc mem_otp_temp(
+	8 mem_otp_adc
+	1 mem_otp_adc_ratio
+	7 mem_otp_coordinate
+	1 mem_otp_core_ldo
+	1 mem_otp_verf_bg
+	1 mem_otp_charge_pump
+	1 mem_otp_dpll_ibais
+	8 mem_otp_temp1
+	1 mem_otp_hv_sel
+	1 mem_otp_ldo_vsel
+	1 mem_otp_load_delay
+	1 mem_otp_load_check_sum
+)
+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  */
+83 mem_context
+1 mem_current_amaddr
+1 mem_lpm_mode
+4 mem_last_clkn
+
+	/* parameters */
+1 mem_fcomp_div
+2 mem_rx_window_sniff
+2 mem_rf_init_ptr
+
+
+1 mem_rf_rccal
+1 mem_handle_num
+
+
+	/* 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_sniff_unint_lost
+4 mem_sleep_counter   
+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
+
+1 mem_lpm_xtalcnt
+1 mem_lpm_buckcnt
+1 mem_lpm_ldocnt
+1 mem_lpm_isogate
+1 mem_lpm_isogate_stage2
+1 mem_lpm_isogate_final
+1 mem_lpm_ldo_sel
+1 mem_lpm_sysctl
+1 mem_lpm_hv_sel
+
+24 mem_saved_gpio	 
+3 mem_saved_gsel
+8 mem_saved_mark
+1 mem_saved_spidctrl
+2 mem_patch_ptr
+2 mem_patch_len
+
+32 mem_timers
+
+
+/* HCI */
+1 mem_hci_cmd
+1 mem_hci_conn_handle
+3 mem_hci_plap
+1 mem_hci_puap
+2 mem_hci_pnap
+
+
+1 mem_xtal_c_sel
+24 mem_ghpc_table
+12 mem_aac_res_table
+1 mem_tx_power
+1 mem_modem_rssi
+1 mem_gain_fix
+3 mem_gain_table
+1 mem_gain_second_agc_en
+1 mem_system_clk
+
+ifdef DEBUG_RF_INIT
+20 mem_rf_init_data
+endif
+1 mem_otp_charge_pump_x
+1 mem_otp_dpll_ibais_x
+
+1 mem_xtal_freq
+)
+xmemalloc(
+1 mem_version
+2 mem_company_id
+2 mem_sub_version
+
+2 mem_le_dsniff
+2 mem_le_conn_interval
+1 mem_le_tx_ifs_defference
+1 mem_le_tx2m_delay
+
+1 mem_le_txheader
+1 mem_le_txlen
+256 mem_le_txpayload
+
+//modified name
+1 mem_le_name_len
+30 mem_le_name
+
+
+/* smp related */
+
+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
+
+
+
+//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
+
+
+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_flag
+1 mem_le_secure_connect_state
+1 mem_le_sc_confirm_gkey_flag
+
+
+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
+
+
+1 mem_le_packet_llid
+
+//for continue
+2 mem_le_l2cap_size
+2 mem_le_packet_len_recved
+2 mem_le_payload_ptr
+
+/* test */
+1 mem_le_testtype
+1 mem_cmd_le_create_conn
+
+//ble gatt signaling
+1 mem_le_signaling_identifier
+2 mem_le_l2cap_signaling_conn_param_update_rsp_result
+
+1 mem_le_md_count
+2 mem_ble_l2cap_tx_buff0_ptr
+2 mem_ble_l2cap_tx_buff_size_ptr
+)
+xmemalloc(
+// parameters
+1 mem_le_scan_enable
+2 mem_le_scan_interval
+2 mem_le_scan_window
+
+
+1 mem_le_adv_data_len
+31 mem_le_adv_data
+1 mem_le_scan_data_len
+31 mem_le_scan_data
+
+//START of LE adv parameter structure
+1 mem_le_adv_enable
+0 mem_le_adv_param
+2 mem_le_adv_interval
+1 mem_le_adv_type
+1 mem_le_adv_own_addr_type
+6 mem_le_adv_direct_addr
+1 mem_le_adv_channel_map
+//END of LE adv 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
+)
+xmemalloc(
+	1 mem_le_l2cap_att_states
+
+
+	/* should be together */
+	1 mem_le_att_opcode
+	2 mem_le_att_handle
+	1 mem_le_search_res
+
+	2 mem_le_notify_handle
+	1 mem_le_search_uuid_length
+	16 mem_le_search_uuid
+)
+xmemalloc(
+8 mem_le_local_feature
+1 mem_le_tx_phys
+1 mem_le_rx_phys
+
+2 mem_remote_rx_max_octets
+2 mem_remote_rx_max_time
+2 mem_remote_tx_max_octets
+2 mem_remote_tx_max_time
+2 mem_local_rx_max_octets
+2 mem_local_rx_max_time
+2 mem_local_tx_max_octets
+2 mem_local_tx_max_time
+
+)
+xmemalloc(
+2 mem_ucode_ptr
+1 mem_ucode_flag
+1 mem_device_option
+1 mem_peripheral_lock_flag
+0 mem_bistfix_val
+2 mem_bistfix_addr_sched
+2 mem_bistfix_addr_x
+2 mem_bistfix_addr_patch
+1 mem_bistfix_val_xram
+4 mem_bistfix_val_patchram
+
+/*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_idle_process
+2 mem_cb_bb_event_process
+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_cb_before_lpm_sleep
+
+2 mem_eeprom_base
+
+//lpm mode
+1 mem_wake_up_delay_timer
+
+1 mem_app_connection_options
+
+//
+2 mem_app_disconn_reason
+2 mem_app_disconn_reason_flag
+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
+
+
+//adc
+
+2 mem_reference_inter1p8v_2v_adc_io_data
+2 mem_reference_inter1p8v_2p6v_adc_vdcdc_data
+2 mem_reference_inter1p8v_1v_adc_io_data
+2 mem_reference_inter1p8v_4p6v_adc_vdcdc_data
+
+0 mem_adc_reference3v_ft_data	
+2 mem_adc_reference3v_gpio1v_ft_data	
+2 mem_adc_reference3v_gpio2v_ft_data	
+2 mem_adc_reference3v_vdcdc3p6v_ft_data	
+2 mem_adc_reference3v_vdcdc4p6v_ft_data	
+2 mem_adc_reference3v_inter1v_ft_data
+2 mem_adc_reference3v_inter1v_now_data	
+1 mem_adc_reference_mode
+
+2 mem_reference_voltage
+1 mem_adc_config_flag
+1 mem_adc_channel
+1 mem_adc_clkdiv
+2 mem_adc_current_value
+1 mem_adc_power_flag	//bit0:low power falg ; bit1:no power flag
+2 mem_adc_saddr_ptr
+2 mem_adc_eaddr_ptr
+1 mem_adc_dma_enable
+1 mem_adc_cal_c0
+1 mem_adc_cal_c1
+1 mem_adc_cal_c2
+1 mem_adc_cal_c3
+1 mem_adc_cal_c4
+1 mem_adc_cal_c5
+1 mem_adc_cal_c6
+1 mem_adc_cal_c7
+
+3 mem_spi_write_addr
+2 mem_spi_write_ptr
+2 mem_spi_write_len
+1 mem_spi_write_flash_sm
+
+
+1 mem_spi_cs_gpio
+1 mem_spi_si_gpio
+1 mem_spi_so_gpio
+1 mem_spi_sclk_gpio
+1 mem_spi_wp_gpio
+1 mem_spi_hold_gpio
+
+
+1 mem_eeprom_wp_gpio
+1 mem_eeprom_scl_gpio
+1 mem_eeprom_sda_gpio
+2 mem_kscan_ptr
+0 mem_key_num_ptr
+2 mem_keyscan_ptr
+2 mem_key_value_retention
+2 mem_power_param_ptr
+
+1 mem_seqi
+1 mem_set_cdb_on
+1 mem_syn_cal_ctrl
+
+1 mem_nec_decode_error_value
+
+ifdef AC_50HZ
+1 mem_ac_detect_gpio
+0 mem_ac_detect_control
+1 mem_ac_detect_div
+1 mem_ac_detect_window
+endif
+
+1 mem_wdt_always_work
+
+1 mem_power_ctrl_disable
+
+1 mem_ring_ibias_trim
+2 mem_ring_ibias_vtune_low
+2 mem_ring_ibias_vtune_high
+1 mem_ring_ibias_calc_adc_gpio
+1 mem_ring_ibias_calc_adc_channel
+)
+xmemalloc(
+
+1 mem_rf_debug_rx_gpio
+1 mem_rf_debug_tx_gpio
+)
+xmemalloc(
+0 mem_l2cap_xmem_start
+
+//*******************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
+
+2 mem_l2cap_lpm_txbuf_ptr
+0 mem_l2cap_xmem_end
+
+)
+xmemalloc(
+5 mem_ccm_pcnt_tx
+5 mem_ccm_pcnt_rx
+4 mem_ccm_last_mic
+0 mem_ccm_iv
+4 mem_ccm_ivm
+4 mem_ccm_ivs
+2 mem_ccm_len
+2 mem_ccm_rx_ptr
+)
+xmemalloc(
+1 mem_sc_only_mode
+1 mem_sp_debug_mode
+1 mem_secure_connections_enable
+1 mem_sc_calc
+1 mem_sc_local_key_invalid
+
+
+32 mem_sc_private_key_256
+32 mem_sc_pubkey_local_x_256
+32 mem_sc_pubkey_local_y_256
+
+
+0 mem_sp_state_xmem
+1 mem_authentication_passkey_times
+1 mem_passkey_1bit
+0 mem_sp_state_xmem_end
+)
+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_ui_state_map
+
+1 mem_ui_button_timeout
+1 mem_ui_button_gpio
+1 mem_ui_led_init_state_set
+
+1 mem_ui_led_struct_num
+2 mem_ui_led_struct_ptr
+
+)
+xmemalloc g24(
+6 mem_24g_lap
+34 mem_24g_rxbuf
+32 mem_24g_txbuf
+36 mem_24g_txpayload
+32 mem_24g_rxpayload
+1 mem_24g_rxdata_length
+1 mem_24g_pid
+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_datalen
+1 mem_24g_data_type
+1 mem_24g_txlen
+2 mem_24g_rx_window
+1 mem_24g_ch
+1 mem_24g_current_ch_number
+4 mem_24g_addr
+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
+2 mem_24g_syncword
+1 mem_24g_syncword_crc8
+1 mem_24g_get_syncword_crc8
+1 mem_24g_pair_switch
+8 mem_24g_enter_hibernate
+
+1 mem_24g_rx_phy
+1 mem_24g_tx_phy
+
+1 mem_24g_ch_map_update
+4 mem_24g_ch_update_map1
+4 mem_24g_ch_update_map2
+4 mem_24g_ch_update_map3
+4 mem_24g_ch_update_map4
+
+1 mem_24g_disable_fec1
+1 mem_24g_off_type
+)
+xmemalloc g24_tx(
+1 mem_rssi_hex_received
+
+)
+xmemalloc g24(
+4 mem_24g_pair_addr
+1 mem_24g_pair_ch
+1 mem_24g_pair_tx_power
+
+)
+xmemalloc g24_tx(
+1 mem_24g_pair_sm
+1 mem_24g_pair_no_ack
+2 mem_24g_pair_timeout_init
+2 mem_24g_pair_timeout
+2 mem_24g_pair_count
+)
+xmemalloc g24_rx(
+1 mem_24g_device1_bind_step
+1 mem_24g_device2_bind_step
+1 mem_24g_bind_device_status
+8 mem_24g_bind_payload
+1 mem_24g_device1_bind_disable
+1 mem_24g_device2_bind_disable
+
+)
+xmemalloc g24_rx(
+2 mem_cb_24g_receive_process
+2 mem_cb_24g_ackpayload
+2 mem_cb_24g_data_device1
+2 mem_cb_24g_data_device2
+34 mem_24g_rxdata_temp
+1 mem_24g_abort_packet
+4 mem_24g_hop_btclk
+1 mem_24g_hop_interval
+1 mem_24g_pair_mode
+1 mem_24g_ackpayload_enable
+1 mem_24g_hop_packet
+1 mem_24g_mode_switch
+1 mem_24g_nodata_timer_enable
+
+1 mem_24g_mode_init
+1 mem_24g_work_mode
+1 mem_24g_time_slice
+1 mem_24g_self_last_ch
+1 mem_24g_self_ch_number
+1 mem_24g_self_config_ch_once
+1 mem_24g_device1_last_ch
+1 mem_24g_device1_ch_number
+1 mem_24g_device1_config_ch_once
+1 mem_24g_device2_last_ch
+1 mem_24g_device2_ch_number
+1 mem_24g_device2_config_ch_once
+1 mem_24g_led_status
+1 mem_24g_bind_mode_continue
+
+1 mem_tx_power_temp
+
+1 mem_24g_mode_B_S_switch
+1 mem_24g_mode_B_S_switch_init
+2 mem_24g_mode_B_S_switch_cnt
+1 mem_24g_mode_B_S_switch_exit
+1 mem_24g_B_S_time_slice
+1 mem_24g_B_S_mode_switch_disable
+
+1 mem_24g_bind_device_living
+)
+xmemalloc g24_tx(
+2 mem_24g_reconn_timeout_init
+2 mem_24g_reconn_timeout
+2 mem_24g_reconn_count
+1 mem_24g_reconn_type
+1 mem_24g_fast_conn_enable
+4 mem_24g_fast_conn_addr
+4 mem_24g_receiver_addr
+1 mem_24g_fast_conn_temp_ch
+1 mem_24g_receiver_temp_ch
+1 mem_24g_device_temp_ch
+
+)
+xmemalloc g24_rx(
+4 mem_24g_transmitter_addr
+4 mem_24g_device1_addr
+4 mem_24g_device2_addr
+
+)
+xmemalloc g24(
+1 mem_rssi_buff_index
+)
+xmemalloc g24_tx(
+1 mem_rssi_signal_index
+2 mem_rssi_signal_buf_ptr
+
+)
+xmemalloc g24_rx(
+1 mem_rssi_noise_avg
+1 mem_rssi_noise_index
+
+1 mem_rssi_noise_self_avg
+1 mem_rssi_noise_device1_avg
+1 mem_rssi_noise_device2_avg
+1 mem_rssi_noise_self_index
+1 mem_rssi_noise_device1_index
+1 mem_rssi_noise_device2_index
+
+2 mem_rssi_noise_buffer_ptr
+2 mem_rssi_noise_self_buffer_ptr
+2 mem_rssi_noise_device1_buffer_ptr
+2 mem_rssi_noise_device2_buffer_ptr
+
+)
+xmemalloc g24_tx(
+2 mem_cb_24g_transmit_data
+2 mem_cb_24g_search_receiver
+2 mem_cb_24g_lpm_before
+2 mem_cb_24g_transmit_short_sleep
+2 mem_cb_24g_transmit_long_sleep
+
+1 mem_24g_conn_sm
+
+1 mem_24g_ensure
+2 mem_24g_txfail_cnt
+1 mem_24g_attempt_fail_flag
+
+1 mem_24g_retry
+1 mem_24g_abort_pac
+1 mem_24g_max_retry
+4 mem_24g_device_addr
+3 mem_24g_short_sleep_set
+8 mem_24g_long_sleep_set
+4 mem_24g_long_sleep_set1
+
+1 mem_24g_pac_index
+1 mem_24g_transmit_by_interrupt
+2 mem_24g_transmit_by_interrupt_exit_count
+2 mem_24g_transmit_by_interrupt_exit_count_init
+2 mem_24g_long_sleep_param_update_timer_init
+2 mem_24g_long_sleep_param_update_timer
+
+1 mem_24g_fast_hop_count
+2 mem_24g_retransmit
+)
+xmemalloc g24_tx(
+1 mem_rssi_avg_received
+1 mem_power_ctrl_level
+1 mem_power_ctrl_pac_succ_cnt
+1 mem_power_ctrl_pac_succ_cnt_init
+
+1 mem_rssi_dis_min_24g
+1 mem_rssi_dis_max_24g
+1 mem_rssi_hex_received_max_value
+
+1 mem_rssi_dis_min_ble
+1 mem_rssi_dis_max_ble
+)
+xmemalloc g24_rx_car_adpcm(
+	16 mem_ad_indexTable
+	356 mem_ad_stepsizeTable
+
+	4 mem_ad_state_valpred
+	4 mem_ad_state_index
+	1 mem_ad_in_numSamples
+	2 mem_ad_in_ptr
+	2 mem_ad_out_ptr
+	1 mem_ad_sign
+	1 mem_ad_delta
+	4 mem_ad_step
+	4 mem_ad_valpred
+	4 mem_ad_index
+	4 mem_ad_vpdiff
+	4 mem_ad_inputbuffer
+	1 mem_ad_bufferstep
+)
+xmemalloc g24_rx_car(
+1 mem_car_le_24g_tx_pair_mode
+2 mem_car_le_24g_ch_count
+4 mem_car_24g_addr_other
+12 mem_car_24g_tx_payload_temp
+12 mem_car_24g_rx_payload_temp
+
+1 mem_car_24g_loselink_count
+1 mem_car_ble_connted_flag
+4 mem_car_full_control_remote_lap
+2 mem_100ms_adv_control_timer
+2 mem_100ms_factory_test_control_timer
+	
+1 mem_pwm_flag	
+1 mem_period_count
+1 mem_timer_count
+1 mem_car_motor_gpio_num
+0 mem_car_motor_gpio_map
+1 mem_car_motor_left_gpio
+1 mem_car_motor_right_gpio
+1 mem_car_motor_front_gpio
+1 mem_car_motor_back_gpio
+1 mem_car_pwm_gpio
+
+
+6 mem_otp_lot_xy_temp
+1 mem_f_flag
+1 mem_b_flag
+1 mem_adv_control_start_flag  
+1 mem_stop_4w1_flag 
+1 mem_factory_control_flag
+1 mem_car_gpio_control_mode
+
+1 mem_car_le_queue_each_size
+1 mem_car_le_queue_length
+1 mem_car_le_queue_current_num
+1 mem_car_le_queue_read_ptr
+1 mem_car_le_queue_write_ptr
+80 mem_car_le_queue_ele
+11 mem_car_ble_write_data
+400 mem_car_ble_att_list
+
+60 mem_otp_sys_cfg_temp
+
+)
+xmemalloc g24_rx_dongle(
+1 mem_dg_kb_bind_flag
+8 mem_dg_kb_data_sta_data
+8 mem_dg_kb_data_last_data
+3 mem_dg_kb_multikey_sta_data
+3 mem_dg_kb_multikey_last_data
+3 mem_dg_kb_system_sta_data
+3 mem_dg_kb_system_last_data
+1 mem_dg_kb_blank_data_enable
+1 mem_dg_kb_mul_blank_data_enable
+1 mem_dg_kb_system_crtl_blank_data_enable
+1 mem_dg_ms_blank_data_enable
+
+1 mem_dg_sys_config
+9 mem_dg_usb_vid_pid
+1 mem_dg_usb_tx_interval
+32 mem_dg_usb_device_name
+1 mem_dg_kb_bind_success
+1 mem_dg_pc_sleep_flag
+
+1 mem_dg_24g_tx_power_default
+1 mem_dg_kb_bit_consumer_blank_data_enable
+4 mem_dg_kb_bit_consumer_sta_data
+4 mem_dg_kb_bit_consumer_last_data
+4 mem_dg_device_version
+)
+xmemalloc g24_tx_hid_keyboard(
+1 mem_power_on_flag
+8 mem_keyboard_flag
+
+//switch device
+1 mem_keyboard_switch_count_temp
+3 mem_keyboard_switch_device_to_g24
+3 mem_keyboard_switch_device_to_bt1
+3 mem_keyboard_switch_device_to_bt2
+3 mem_keyboard_switch_device_to_bt3
+3 mem_keyboard_switch_device_to_usb
+1 mem_keyboard_switch_device_flag
+1 mem_keyboard_switch_g24_enable
+1 mem_keyboard_switch_bt_enable
+1 mem_keyboard_switch_g24_press_timer
+1 mem_keyboard_switch_bt_press_timer
+
+
+//adc
+2 mem_keyboard_vdd_full_vol
+2 mem_keyboard_vdd_empty_vol
+2 mem_keyboard_vdd_low_vol
+1 mem_keyboard_power_type
+
+//pwm
+6 mem_rgb_pwm_conf
+1 mem_rgb_pwm_breathe_flag
+1 mem_rgb_on_color_temp
+7 mem_rgb_on_color
+1 mem_pwm_lpm_mode_flag
+2 mem_keyboard_rgb_on_timer
+4 mem_ui_check_timer_setup
+2 mem_customize_timer_setup
+1 mem_backlight_breathe_type
+
+//le
+3 mem_keyboard_le_lap_temp
+1 mem_keyboard_le_change_vid_pid_flag
+1 mem_keybaord_le_pnp_vid_source
+2 mem_keyboard_le_vid
+2 mem_keyboard_le_pid
+2 mem_keyboard_le_product_version
+2 mem_keyboard_le_hid_map
+22 mem_keyboard_blob_response_consumer_customize
+16 mem_le_search_service_uuid
+1 mem_le_connect_ios_mac_flag
+2 mem_le_search_mac_uuid
+9 mem_le_search_mac_manu_name
+2 mem_keybord_appearance
+
+//le conn param update
+1 mem_keyboard_le_send_conn_param_update
+1 mem_keyboard_le_send_conn_param_update_timer
+1 mem_le_start_auto_reco_timer
+
+//gpio
+1 mem_keyboard_pb_button_gpio
+1 mem_mcu_stb_gpio
+1 mem_mcu_clk_gpio
+1 mem_mcu_rstb_gpio
+1 mem_keyboard_num_led_gpio
+1 mem_keyboard_caps_led_gpio
+1 mem_keyboard_scroll_led_gpio
+1 mem_keyboard_power_led_gpio
+1 mem_keyboard_low_voltage_alarm_gpio
+1 mem_keyboard_24g_led_gpio
+1 mem_keyboard_bt1_led_gpio
+1 mem_keyboard_bt2_led_gpio
+1 mem_keyboard_bt3_led_gpio
+
+1 mem_keyboard_led_r_gpio
+1 mem_keyboard_led_g_gpio
+1 mem_keyboard_led_b_gpio
+
+8 mem_key_row_gpio
+21 mem_key_col_gpio
+12 mem_key_excol_gpio
+2 mem_kb_row_ptr
+2 mem_kb_col_ptr
+2 mem_kb_excol_ptr
+
+// keyscan
+21 mem_keyscan_value_current
+21 mem_keyscan_value_check
+21 mem_keyscan_value_old
+11 mem_keyscan_exmcu_value
+2 mem_keyscan_value_ptr
+2 mem_keyscan_exmcu_value_ptr
+1 mem_keyscan_value_temp
+1 mem_keyscan_col_loop_count
+2 mem_keyscan_exmcu_wait_wake_count
+
+1 mem_same_keyvalue_timerout_flag
+2 mem_same_keyvalue_timer_init
+2 mem_same_keyvalue_timer
+
+1 mem_keyboard_current_col_press_key_count
+1 mem_keyboard_all_press_key_count
+1 mem_keyboard_same_row_press_key_count
+1 mem_keyboard_ghost_flag
+1 mem_keyboard_data_change_flag
+1 mem_keyboard_keyvalue_temp
+1 mem_keyboard_press_flag_temp
+1 mem_keyboard_keyvalue_bit_loop_count
+10 mem_keyboard_keyvalue_buffer
+1 mem_keboard_n_key_rollover_send_flag
+15 mem_keyboard_n_key_rollover_data
+168 mem_keyboard_keyvalue_map
+10 mem_keyboard_tx_data
+1 mem_keyboard_data_send_flag
+
+1 mem_keyboard_fn_flag
+1 mem_keyboard_control_key_flag
+1 mem_keyboard_alt_flag
+1 mem_keyboard_shift_flag
+1 mem_keyboard_bt_button_flag
+1 mem_keyboard_pairing_type
+
+1 mem_24g_repeat_send_flag
+1 mem_keyboard_led_status_get
+1 mem_keyboard_led_status_get_timer
+1 mem_keyboard_led_status_get_timer_last
+
+0 mem_keyboard_fn_esc_f1_f12
+1 mem_keyboard_fn_first
+1 mem_keyboard_fn_esc
+1 mem_keyboard_fn_f1
+1 mem_keyboard_fn_f2
+1 mem_keyboard_fn_f3
+1 mem_keyboard_fn_f4
+1 mem_keyboard_fn_f5
+1 mem_keyboard_fn_f6
+1 mem_keyboard_fn_f7
+1 mem_keyboard_fn_f8
+1 mem_keyboard_fn_f9
+1 mem_keyboard_fn_f10
+1 mem_keyboard_fn_f11
+1 mem_keyboard_fn_f12
+1 mem_keyboard_fn_del
+
+1 mem_keyboard_fn_lock_flag
+1 mem_keyboard_fn_lock_keyvalue
+
+2 mem_keyboard_commbination_key_bt
+2 mem_keyboard_commbination_key_24g
+2 mem_keyboard_commbination_fast_conn_bt
+1 mem_keyboard_commbination_press_type
+1 mem_keyboard_commbination_key_step
+1 mem_keyboard_commbination_control_key_value
+1 mem_keyboard_commbination_standard_key_value
+1 mem_keyboard_commbination_control_key_delay_release_timer
+
+1 mem_keyboard_consumer_key_status
+1 mem_kb_computer_system
+
+//memory
+1 mem_keyboard_device_info_store_flag
+1 mem_otp_store_device_info_flag
+1 mem_otp_store_system_flag
+24 mem_otp_read_retention_memory
+2 mem_otp_read_retention_offset
+2 mem_otp_read_retention_max_size
+
+//led
+1 mem_keyboard_device_poweron_timer_init
+1 mem_keyboard_device_poweron_timer
+2 mem_keyboard_num_caps_scoll_led_on_timer
+1 mem_keyboard_mode_led_on_timer
+1 mem_keyboard_adc_low_volatage_led_timer_count
+2 mem_adc_low_volatage_led_blink_timer
+1 mem_keyboard_low_volatage_led_flag
+1 mem_keyboard_low_volatage_led_blink_count
+1 mem_keyboard_low_volatage_led_blink_new_data_enable
+1 mem_keyboard_pair_led_flag
+1 mem_keyboard_pair_led_blink_count
+
+//usb
+1 mem_usb_vdd_status_current
+1 mem_usb_vdd_status_last
+1 mem_usb_wait_updata_timer
+9 mem_keyboard_usb_vid_pid
+
+2 mem_keyboard_se_flag_init
+12 mem_keyscan_exmcu_value_new
+175 mem_keyboard_le_table
+0 mem_keyboard_end
+)
+xmemalloc module(
+	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_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
+	2 mem_module_uarta_baud_rate
+
+	//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_ble_data_uart_max_length
+
+	//flag
+	2 mem_module_flag
+
+	1 mem_module_hci_notify_len
+	2 mem_module_hci_notify_handle
+	2 mem_module_hci_nofiy_addr
+	1 mem_module_hci_notify_type
+
+	1 mem_le_conn_flag
+
+ifdef COMPILE_WECHAT
+	1 mem_module_wechat_indication_handle
+	1 mem_module_wechat_write_handle
+	2 mem_module_wechat_tx_buffer_ptr
+	2 mem_module_wechat_rx_buffer_ptr
+	2 mem_module_wechat_rx_push_data_cb
+	2 mem_module_wechat_tx_nSeq
+	2 mem_module_wechat_tx_len
+	2 mem_module_wechat_tx_address
+	2 mem_module_wechat_rx_len
+	2 mem_module_wechat_rx_address
+	1 mem_module_wechat_receive_push_data
+endif
+
+	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
+	0 mem_module_nv_data_end
+)
+xmemalloc g24_tx_hid_mouse(
+// Mouse Work Area
+0 mem_mouse_param_config
+1 mem_lbutton_gpio
+1 mem_mbutton_gpio
+1 mem_rbutton_gpio
+1 mem_bk_button_gpio
+1 mem_fw_button_gpio
+1 mem_dpi_button_gpio
+1 mem_mouse_sensor_sclk_gpio
+1 mem_mouse_sensor_sdio_gpio
+1 mem_select_sensor_angle_gpio
+1 mem_sensor_angle_default
+1 mem_sensor_angle_gnd
+1 mem_sensor_angle_vin
+1 mem_config_sensor_dpi	
+1 mem_whee_ta_data_gpio
+1 mem_whee_tb_data_gpio
+1 mem_matrix_public_gpio
+1 mem_config_select_device_button_gpio
+1 mem_customer_key_gpio
+1 mem_firebutton_gpio
+1 mem_dpi_another_button_gpio
+1 mem_mouse_logo_led_gpio
+1 mem_mouse_1io2led_multi_24gled
+1 mem_mouse_1io2led_multi_bt1led
+1 mem_mouse_1io2led_multi_bt2led
+1 mem_mouse_low_voltage_alarm_gpio
+1 mem_mouse_dpi_gpio
+0 mem_mouse_param_config_end
+
+1 mem_device_temp_gpio
+
+//LED
+//mediacy
+1 mem_mouse_multi_led_blink_enable
+1 mem_mouse_multi_led_type
+1 mem_mouse_multi_led_state
+1 mem_mouse_multi_led_blink_type				//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+
+//time parm
+1 mem_mouse_le_reconn_blink_limit
+1 mem_mouse_multi_led_powon_timer_init		//power on time
+1 mem_mouse_multi_led_powon_timer
+1 mem_mouse_multi_24gled_blink_timer_init	//24gled blink time
+1 mem_mouse_multi_le_discovery_blink_timer_init	//le discovery blink time
+1 mem_mouse_multi_le_reconn_blink_timer_init	//le reconn blink time
+1 mem_mouse_dpi_led_blink_timer_init		//dpi blink time
+1 mem_mouse_multi_led_blink_timer
+1 mem_mouse_low_led_blink_timer			//low blink time
+1 mem_mouse_low_led_blink_half_timer
+//blink count
+1 mem_mouse_multi_24gled_blink_count_init	//24g count
+1 mem_mouse_multi_le_reconn_blink_count_init	//le reconn count
+1 mem_mouse_multi_led_blink_count
+1 mem_mouse_multi_lowled_blink_count_init	//low count
+1 mem_mouse_multi_low_led_blink_count
+2 mem_mouse_logo_led_on_time_init
+1 mem_mouse_dpi_led_delay_count
+1 mem_mouse_dpi_led_delay_count_init
+//LED end
+
+//lost-packet compensation
+1 mem_mouse_24g_fast_hop_count_2ms
+3 mem_mouse_24g_short_sleep_set_4ms
+3 mem_mouse_24g_long_sleep_set_4ms
+3 mem_mouse_24g_short_sleep_set_8ms
+3 mem_mouse_24g_long_sleep_set_8ms
+
+4 mem_mouse_24g_tsniff
+4 mem_mouse_24g_tsniff_2ms
+4 mem_mouse_24g_tsniff_4ms
+4 mem_mouse_24g_tsniff_8ms
+3 mem_mouse_24g_short_sleep_set_init
+
+1 mem_mouse_24g_tx_count
+6 mem_mouse_24g_tx_time_last
+4 mem_mouse_24g_tx_time_last_delt
+5 mem_mouse_24g_tx_time_sum
+1 mem_mouse_24g_tx_time_sum_count
+1 mem_mouse_24g_tx_time_offset
+1 mem_mouse_24g_sleep_miss
+4 mem_mouse_24g_sleep_time_temp
+4 mem_mouse_24g_sleep_miss_temp
+
+1 mem_mouse_sleep_deal_type
+
+//sensor param
+1 mem_sensor_id1
+1 mem_sensor_id2
+
+1 mem_mouse_move_flag
+
+1 mem_mouse_asm_flag
+2 mem_mouse_x_pre
+2 mem_mouse_y_pre
+1 mem_mouse_data_xtemp
+1 mem_mouse_data_ytemp
+
+0 mem_mouse_dpi_seting
+1 mem_320x_dpi_0
+1 mem_320x_dpi_1
+1 mem_320x_dpi_2
+1 mem_320x_dpi_3
+1 mem_3212_dpi_0
+1 mem_3212_dpi_1
+1 mem_3212_dpi_2
+1 mem_3212_dpi_3
+1 mem_ka8g2_dpi_0
+1 mem_ka8g2_dpi_1
+1 mem_ka8g2_dpi_2
+1 mem_ka8g2_dpi_3
+//S210x
+0 mem_sensor_s201_dpi
+1 mem_sensor_s201_dpi_0
+1 mem_sensor_s201_dpi_1
+1 mem_sensor_s201_dpi_2
+1 mem_sensor_s201_dpi_3
+1 mem_sensor_s201_dpi_4
+
+1 mem_mouse_cpi_count
+1 mem_mouse_dpi_button_state
+1 mem_mouse_dpi_long_press_flag
+
+10 mem_sensor_3212_init
+10 mem_sensor_3204_init
+10 mem_sensor_3205_init
+26 mem_sensor_32xx_init
+34 mem_sensor_32xx_init_1
+30 mem_sensor_8650_init
+30 mem_sensor_ka8ul_init
+16 mem_sensor_8009_init
+18 mem_sensor_ka8g2_init
+12 mem_sensor_p6520_init
+12 mem_sensor_ka5857_init
+8 mem_sensor_poweron_init
+8 mem_sensor_ka8g2_poweron_init
+	
+1 mem_mouse_clear_sensor_data_flag
+1 mem_config_sensor_type
+1 mem_config_sensor_angle
+1 mem_bluetooth_125hz_cnt
+
+
+// mouse key
+10 mem_customer_key_press_init
+1 mem_mouse_lkey_press_status
+1 mem_mouse_rkey_press_status
+1 mem_mouse_mkey_press_status
+1 mem_mouse_bkkey_press_status
+1 mem_mouse_fwkey_press_status
+1 mem_mouse_dpikey_press_status
+1 mem_mouse_pbkey_press_status
+1 mem_mouse_customerkey_press_status
+1 mem_mouse_key_temp
+1 mem_mouse_key_status
+
+1 mem_mouse_matrix_key_cow_count
+1 mem_mouse_matrix_key_row_count
+1 mem_mouse_ghost_flag
+
+//fire key
+1 mem_fire_key_status
+4 mem_fire_key_delay
+1 mem_fire_key_flag
+
+//another dpi key
+1 mem_dpi_another_press_status
+1 mem_dpi_another_button_state
+1 mem_dpi_another_button_down_enable
+1 mem_mouse_key_temp_patch
+
+//le name modify
+1 mem_le_name_patch_len
+19 mem_le_name_patch
+
+//device otp data
+1 mem_device_flag_last
+1 mem_device_flag_value
+
+6 mem_mouse_le_addr1_last
+6 mem_mouse_le_addr1_temp
+6 mem_mouse_le_locall_addr1_last
+6 mem_mouse_le_locall_addr1_temp
+
+6 mem_mouse_le_addr2_last
+6 mem_mouse_le_addr2_temp
+6 mem_mouse_le_locall_addr2_last
+6 mem_mouse_le_locall_addr2_temp
+
+1 mem_mouse_dpi_last
+1 mem_mouse_dpi_temp
+1 mem_mouse_otp_dpi_value
+
+4 mem_mouse_24g_addr_last
+4 mem_mouse_24g_addr_temp
+
+2 mem_random_addr_increase_count_last
+2 mem_random_addr_increase_count_temp
+
+//otp store info offset
+2 mem_otp_offset_le_addr2
+2 mem_otp_offset_le_addr2_end
+
+2 mem_otp_offset_le_locall_addr2
+2 mem_otp_offset_le_locall_addr2_end
+
+2 mem_otp_offset_dpi
+2 mem_otp_offset_dpi_end
+
+2 mem_otp_offset_device_flag
+2 mem_otp_offset_device_flag_end
+
+2 mem_otp_offset_24g_addr
+2 mem_otp_offset_24g_addr_end
+
+2 mem_otp_offset_le_addr1
+2 mem_otp_offset_le_addr1_end
+
+2 mem_otp_offset_le_locall_addr1
+2 mem_otp_offset_le_locall_addr1_end
+
+2 mem_otp_offset_le_addr_increase_count
+2 mem_otp_offset_le_addr_increase_count_end
+
+2 mem_otp_offset_app_initflag
+
+//usb
+1 mem_usb_tx_interval_retention
+9 mem_usb_vid_pid_retention
+30 mem_usb_device_name_retention
+
+// commbation key
+1 mem_mouse_commbination_key_bt
+1 mem_mouse_commbination_key_24g
+1 mem_mouse_commbination_key_dpi
+1 mem_mouse_commbination_key_select_device
+1 mem_mouse_commbination_dpi_timer
+1 mem_mouse_commbination_select_device_timer
+1 mem_mouse_commbination_key_count
+1 mem_mouse_pair_flag
+//patch area
+)
+xmemalloc rec(
+0 mem_xmalloc_rec_start
+1215 mem_rec_le_att_list
+
+//led
+0 mem_rec_led_style
+1 mem_rec_led_style_type
+1 mem_rec_led_style_blink_count
+1 mem_rec_led_style_gpio
+2 mem_rec_led_style_on_time
+2 mem_rec_led_style_off_time
+2 mem_rec_led_style_on_callback
+2 mem_rec_led_style_off_callback
+
+//led2 
+0 mem_rec_led2_style
+1 mem_rec_led2_style_type
+1 mem_rec_led2_style_blink_count
+1 mem_rec_led2_style_gpio
+2 mem_rec_led2_style_on_time
+2 mem_rec_led2_style_off_time
+2 mem_rec_led2_style_on_callback
+2 mem_rec_led2_style_off_callback
+
+//led ble pair
+0 mem_rec_le_pair_led_style
+1 mem_rec_le_pair_led_style_type
+1 mem_rec_le_pair_led_style_blink_count
+1 mem_rec_le_pair_led_style_gpio
+2 mem_rec_le_pair_led_style_on_time
+2 mem_rec_le_pair_led_style_off_time
+
+//led ble reconn
+0 mem_rec_le_reconn_led_style
+1 mem_rec_le_reconn_led_style_type
+1 mem_rec_le_reconn_led_style_blink_count
+1 mem_rec_le_reconn_led_style_gpio
+2 mem_rec_le_reconn_led_style_on_time
+2 mem_rec_le_reconn_led_style_off_time
+
+//led adc low power
+0 mem_rec_adc_low_led_style
+1 mem_rec_adc_low_led_style_type
+1 mem_rec_adc_low_led_style_blink_count
+1 mem_rec_adc_low_led_style_gpio
+2 mem_rec_adc_low_led_style_on_time
+2 mem_rec_adc_low_led_style_off_time
+
+
+//10ms timer
+4 mem_rec_ui_timer_btclk
+1 mem_rec_ui_timer_count
+2 mem_rec_cb_timer
+
+//tscan
+1 mem_rec_tscan_timer
+1 mem_rec_tscan_timeout
+
+1 mem_rec_tscan_row_nums
+1 mem_rec_tscan_col_nums
+2 mem_rec_tscan_col_gpio_ptr
+1 mem_rec_tscan_row_scanned
+1 mem_rec_tscan_col_scanned
+1 mem_rec_tscan_record_row
+1 mem_rec_tscan_record_col
+10 mem_rec_tscan_row_gpio
+10 mem_rec_tscan_col_gpio
+1 mem_rec_tscan_sequence
+1 mem_rec_tscan_gpio_nums
+1 mem_rec_tscan_row_scan_loop_count
+0 mem_rec_key_state
+1 mem_rec_tscan_gndkey_state
+1 mem_rec_tscan_key_state
+2 mem_rec_tscan_record_temp
+1 mem_rec_tscan_key_need_send_flag
+1 mem_rec_tscan_current_key_num
+1 mem_rec_gpio_wakeup_source
+1 mem_rec_tscan_gndkey_record_temp
+1 mem_rec_tscan_gndkey_need_send_flag
+
+40 mem_rec_tscan_key_nums_list
+10 mem_rec_tscan_gndkey_nums_list
+
+//combin key
+8 mem_rec_tscan_key_num_bit
+8 mem_rec_tscan_combin_key_num_bit
+2 mem_rec_tscan_current_gpio_ptr
+2 mem_rec_tscan_record_now
+1 mem_rec_combin_key_timeout
+1 mem_rec_combin_key_timer
+
+//tscan debounce
+1 mem_rec_gpio_bit_first
+1 mem_rec_gpio_bit_second
+1 mem_rec_gpio_bit_check
+1 mem_rec_gpio_for_wake_pullup
+
+//keypad
+1 mem_rec_keypad_type
+160 mem_rec_key_keyboard_value_list
+48 mem_rec_key_consumer_value_list
+64 mem_rec_key_mouse_value_list
+48 mem_rec_key_nec_value_list
+
+0 mem_rec_key_press_le
+3 mem_rec_key1_press_le
+3 mem_rec_key2_press_le
+3 mem_rec_key3_press_le
+3 mem_rec_key4_press_le
+3 mem_rec_key5_press_le
+3 mem_rec_key6_press_le
+3 mem_rec_key7_press_le
+3 mem_rec_key8_press_le
+3 mem_rec_key9_press_le
+3 mem_rec_key10_press_le
+3 mem_rec_key11_press_le
+3 mem_rec_key12_press_le
+3 mem_rec_key13_press_le
+3 mem_rec_key14_press_le
+3 mem_rec_key15_press_le
+3 mem_rec_key16_press_le
+3 mem_rec_key17_press_le
+3 mem_rec_key18_press_le
+3 mem_rec_key19_press_le
+3 mem_rec_key20_press_le
+3 mem_rec_key21_press_le
+
+3 mem_rec_key_release_le
+21 mem_rec_key_map
+1 mem_rec_gnd_key_offset
+1 mem_rec_keypad_fun
+
+
+//ble param
+1 mem_rec_le_enable_notify
+1 mem_rec_le_data_len
+1 mem_rec_le_connect_state
+
+//gatt
+2 mem_rec_report_id1_handle
+2 mem_rec_report_id2_handle
+2 mem_rec_report_id3_handle
+2 mem_rec_report_id4_handle
+
+//queue
+1 mem_rec_queue_each_size
+1 mem_rec_queue_length
+1 mem_rec_queue_curr_num
+1 mem_rec_queue_read_ptr
+1 mem_rec_queue_write_ptr
+32 mem_rec_queue_ele
+
+//adpcm
+16 mem_rec_ad_indexTable1
+356 mem_rec_ad_stepsizeTable1
+
+4 mem_rec_ad_state_valpred1
+4 mem_rec_ad_state_index1
+1 mem_rec_ad_in_numSamples1
+2 mem_rec_ad_in_ptr1
+2 mem_rec_ad_out_ptr1
+1 mem_rec_ad_sign1
+1 mem_rec_ad_delta1
+4 mem_rec_ad_step1
+4 mem_rec_ad_valpred1
+4 mem_rec_ad_index1
+4 mem_rec_ad_vpdiff1
+4 mem_rec_ad_inputbuffer1
+1 mem_rec_ad_bufferstep1	
+
+4 mem_rec_ad_val1
+4 mem_rec_ad_outputbuffer1
+4 mem_rec_ad_diff1
+
+1 mem_rec_voice_enable
+20 mem_rec_voice_notify
+2 mem_rec_adc_dma_rptr
+
+2 mem_rec_voice_notify_apk_handle
+2 mem_rec_voice_notify_box_handle
+2 mem_rec_control_notify_apk_handle
+2 mem_rec_control_notify_box_handle
+
+//filter policy
+1 mem_rec_white_list_num
+1 mem_rec_le_scan_filter_policy
+4 mem_rec_white_list_flash_write_head
+48 mem_rec_white_list
+1 mem_rec_le_req_type
+
+//nec 
+1 mem_rec_nec_send_gpio
+1 mem_rec_nec_receive_gpio
+
+//ota
+2 mem_rec_ota_write_index
+4 mem_rec_ota_write_length
+2 mem_rec_ota_write_data_addr
+3 mem_rec_ota_write_flash_addr
+3 mem_rec_ota_write_flash_addr_start
+4 mem_rec_ota_total_sum
+1 mem_rec_ota_update_flash_mode
+
+2 mem_rec_ota_version
+2 mem_rec_ota_buck_size
+2 mem_rec_ota_packet_max_len
+1 mem_rec_ota_work_mode
+
+2 mem_rec_ota_notify_handle
+1 mem_rec_ota_notify_opcode
+1 mem_rec_ota_notify_result
+9 mem_rec_ota_notify_data
+
+0 mem_rec_ota_le_conn_update_param
+2 mem_rec_ota_le_interval_min
+2 mem_rec_ota_le_interval_max
+2 mem_rec_ota_le_latency
+2 mem_rec_ota_le_timeout
+
+1 mem_rec_ota_reset_timeout
+1 mem_rec_ota_le_conn_param_update
+1 mem_rec_ota_enable
+1 mem_rec_le_packet_size
+
+3 mem_rec_ota_flash_base_addr
+3 mem_rec_ota_flash_offset_addr
+
+2 mem_rec_queue_ota_count
+2 mem_rec_ota_queue_size
+
+3 mem_rec_code_a_flash_addr
+3 mem_rec_code_b_flash_addr
+
+
+
+1 mem_xmalloc_rec_end
+)
+xmemalloc g24_tx_remote(
+
+4 mem_remote_lpm_gpio_config_flag
+1 mem_remote_lpm_gpio_config_io_temp
+
+1 mem_24g_tx_led_map
+1 mem_24g_led_count
+2 mem_24g_lpm_timer_count
+2 mem_24g_lpm_enter_count	
+6 mem_remote_otp_lot_xy_temp
+4 mem_remote_full_control_remote_lap
+
+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
+
+1 mem_remote_le_24g_recv_ack_flag
+1 mem_key_public_gpio
+1 mem_remote_mult_key
+
+2 mem_remote_le_24g_ch_count
+1 mem_le_24g_tx_send_flag
+1 mem_remote_le_24g_tx_pair_mode
+4 mem_remote_24g_addr_other
+
+12 mem_remote_24g_tx_payload_temp
+12 mem_remote_24g_rx_payload_temp
+
+)
+xmemalloc shutter(
+
+////////////////////////////////////
+//ble shutter configsuoy
+1 mem_ble_shutter_enable_notify
+2 mem_ble_shutter_reconn_adv_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_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
+
+5 mem_key0_press
+5 mem_key1_press
+5 mem_key2_press
+
+5 mem_key0_release
+5 mem_key1_release
+5 mem_key2_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
+
+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
+2 mem_shutter_key_conf0_temp
+1 mem_shutter_led_struct_app_led_gpio_temp
+1 mem_shutter_hard_soft_switch_case_temp
+1 mem_shutter_soft_switch_button_gpio_temp
+
+1 mem_shutter_soft_switch_first_power_on
+1 mem_shutter_dy_conf
+)
+xmemalloc shutter_dy(
+
+////////////////////////////////////
+//shutter common config
+
+//timers
+1 mem_shutter_1s_timer
+2 mem_shutter_timer_625us
+
+//patch variable
+11 mem_rf_init_data_new
+2 mem_key_value_xmem
+230 mem_shutter_le_hid_map
+412 mem_shutter_le_uuid_sup
+2 mem_shutter_le_map_len_android
+2 mem_shutter_le_map_len_ios
+16 mem_dy_le_search_service_uuid
+1 mem_iphone_flag
+1 mem_send_data_delay
+4 mem_key_send_clk
+10 mem_shutter_key_state0
+10 mem_shutter_key_state1
+10 mem_shutter_key_state2
+10 mem_shutter_key_state3
+10 mem_shutter_key_state4
+10 mem_shutter_key_state5
+10 mem_shutter_key_state6
+10 mem_shutter_key_state7
+10 mem_shutter_key_state8
+
+10 mem_dy_key0_press
+10 mem_dy_key1_press
+10 mem_dy_key2_press
+10 mem_dy_key3_press
+10 mem_dy_key4_press
+10 mem_dy_key5_press
+10 mem_dy_key6_press
+10 mem_dy_key7_press
+10 mem_dy_key8_press
+
+15 mem_key0_release_new
+15 mem_key1_release_new
+15 mem_key2_release_new
+15 mem_key3_release_new
+15 mem_key4_release_new
+15 mem_key5_release_new
+15 mem_key6_release_new
+15 mem_key7_release_new
+15 mem_key8_release_new
+
+3 mem_key0_long_press
+3 mem_key1_long_press
+3 mem_key2_long_press
+3 mem_key3_long_press
+3 mem_key4_long_press
+3 mem_key5_long_press
+3 mem_key6_long_press
+3 mem_key7_long_press
+3 mem_key8_long_press
+
+3 mem_key0_long_release
+3 mem_key1_long_release
+3 mem_key2_long_release
+3 mem_key3_long_release
+3 mem_key4_long_release
+3 mem_key5_long_release
+3 mem_key6_long_release
+3 mem_key7_long_release
+3 mem_key8_long_release
+
+2 mem_combine_key0
+2 mem_combine_key1
+2 mem_combine_key2
+2 mem_combine_key3
+2 mem_combine_key4
+2 mem_combine_key5
+
+2 mem_combine_key_state0
+
+10 mem_combine_key0_press
+10 mem_combine_key1_press
+10 mem_combine_key2_press
+10 mem_combine_key3_press
+10 mem_combine_key4_press
+10 mem_combine_key5_press
+10 mem_combine_key_release
+
+4 mem_shutter_move_data
+
+10 mem_key0_press_i
+10 mem_key1_press_i
+10 mem_key2_press_i
+10 mem_key3_press_i
+10 mem_key4_press_i
+10 mem_key5_press_i
+10 mem_key6_press_i
+10 mem_key7_press_i
+
+15 mem_key0_release_new_i
+15 mem_key1_release_new_i
+15 mem_key2_release_new_i
+15 mem_key3_release_new_i
+15 mem_key4_release_new_i
+15 mem_key5_release_new_i
+15 mem_key6_release_new_i
+15 mem_key7_release_new_i
+15 mem_key8_release_new_i
+
+3 mem_key0_long_press_i
+3 mem_key1_long_press_i
+3 mem_key2_long_press_i
+3 mem_key3_long_press_i
+3 mem_key4_long_press_i
+3 mem_key5_long_press_i
+3 mem_key6_long_press_i
+3 mem_key7_long_press_i
+3 mem_key8_long_press_i
+
+3 mem_key0_long_release_i
+3 mem_key1_long_release_i
+3 mem_key2_long_release_i
+3 mem_key3_long_release_i
+3 mem_key4_long_release_i
+3 mem_key5_long_release_i
+3 mem_key6_long_release_i
+3 mem_key7_long_release_i
+3 mem_key8_long_release_i
+
+
+10 mem_key3_release_new_t
+10 mem_key3_release_new_i_t
+1 mem_key3_press_count
+1 mem_shutter_like_timeout
+1 mem_shutter_key_pressed
+1 mem_shutter_combine_key_release
+550 mem_shutter_mousekey_value_list
+1 mem_shutter_back_count
+1 mem_shutter_le_conned
+
+0 mem_move_config
+1 mem_shutter_iphone_beyond_x_count
+1 mem_shutter_iphone_beyond_y_count
+2 mem_shutter_move_data_x
+2 mem_shutter_move_data_y
+1 mem_last_shutter_le_iphone_flag
+0 mem_move_config_end
+1 mem_shutter_back_count_cache
+1 mem_shutter_iphone_beyond_x_cache
+1 mem_shutter_iphone_beyond_y_cache
+10 mem_shutter_iphone_move_mid
+1 mem_shutter_long_key_released_flag
+1 mem_shutter_move_mid_timer
+1 mem_shutter_pairing_success
+2 mem_combine_key_release_value
+1 mem_last_press_key_value
+1 mem_shutter_first_move
+1 mem_move_mode_set
+1 mem_move_mode_key_index
+1 mem_move_mode_trigger_enable
+5 mem_shutter_android_move_mid
+10 mem_shutter_iphone_up_mid
+10 mem_shutter_iphone_like_mid
+1 mem_shutter_key_num_conf
+9 mem_shutter_dy_key_conf
+11 mem_le_dy_adv_data
+12 mem_le_dy_scan_data
+8 mem_ble_shutter_dy_interval_min_android
+8 mem_ble_shutter_dy_interval_min_ios
+8 mem_shutter_ble_discovery_time_conf
+2 mem_queue_dy_each_size
+
+7 mem_shutter_led_on_light_dark_led_conf
+7 mem_shutter_led_off_light_dark_led_conf
+4 mem_shutter_reconn_blink_on_time_conf
+4 mem_shutter_discovery_blink_on_time_conf
+2 mem_shutter_efuse_start_offset
+2 mem_shutter_efuse_end_offset
+
+0 mem_initial_move_conf
+2 mem_android_initial_move_x
+2 mem_android_initial_move_y
+2 mem_iphone_initial_move_x
+2 mem_iphone_initial_move_y
+//修改增加保存参数
+0 mem_otp_move_config
+2 mem_otp_shutter_move_data_x
+2 mem_otp_shutter_move_data_y
+1 mem_otp_last_shutter_le_iphone_flag
+0 mem_otp_move_config_end
+2 mem_otp_write_offset_addr
+2 mem_otp_read_offset_addr
+2 mem_otp_read_ios_android_addr
+2 mem_shutter_le_pairing_handle
+2 mem_shutter_temp_count
+1 mem_shutter_first_read_flag
+1 mem_shutter_valid_data_flag
+1 mem_shutter_volume_timer
+1 mem_shutter_link_timer
+8 mem_shutter_link_data
+8 mem_shutter_link_data_i
+1 mem_shutter_link_loop_flag
+
+1 mem_shutter_dy_le_enc_timer
+0 mem_shutter_end
+)
+xmemalloc hci_boot(
+1 mem_hci_uart_tx_gpio
+1 mem_hci_uart_rx_gpio
+1 mem_hci_uart_rts_gpio
+1 mem_hci_uart_cts_gpio
+1 mem_hci_pwm_12mhz_gpio
+)
+xmemalloc g24_tx_hid(
+
+// adc
+//adc struct
+0 mem_device_vdd_calculate_set
+2 mem_device_vdd_full_vol
+2 mem_device_vdd_empty_vol
+2 mem_device_vdd_low_vol
+2 mem_device_vdd_now_vol
+1 mem_adc_channel_gpio
+1 mem_adc_low_volatage_led_timer_count
+1 mem_device_adc_last_low_voltage_flag
+2 mem_device_discovery_timeout
+2 mem_device_24g_pair_timeout_init
+1 mem_device_direct_timeout
+1 mem_device_24g_reconn_timeout_init
+1 mem_device_24g_pair_tx_power
+1 mem_device_normal_tx_power
+1 mem_rssi_dis_min_24g_init
+1 mem_rssi_dis_max_24g_init
+1 mem_rssi_hex_received_max_value_init
+1 mem_rssi_dis_min_ble_init
+1 mem_rssi_dis_max_ble_init
+
+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_mouse_key_last
+
+1 mem_device_switch_gpio
+1 mem_device_reuse_2ice_gpio
+1 mem_sensor_motion_gpio
+
+//mouse wheel
+1 mem_whee_a_data_gpio
+1 mem_whee_b_data_gpio
+1 mem_wheel_tb_old_pinlevel
+1 mem_wheel_tb_new_pinlevel
+1 mem_wheel_tog 
+1 mem_mouse_tz_data
+1 mem_mwheel_b_old_pinlevel
+1 mem_mwheel_b_new_pinlevel
+1 mem_mwheel_tog 
+1 mem_mouse_z_data
+1 mem_mouse_wheel_trigger
+1 mem_mouse_wheel_trigger_timer
+
+// usb
+1 mem_wire_usb_interval
+1 mem_usb_addr
+1 mem_usb_vdd_status
+1 mem_usb_keyboard_flag
+
+//three devices param
+//eeprom/flash
+0 mem_device_information_start
+1 mem_device_flag
+1 mem_device1_type
+6 mem_device1_addr
+6 mem_device1_locall_addr
+
+1 mem_device2_type
+6 mem_device2_addr
+6 mem_device2_locall_addr
+
+1 mem_device3_type
+6 mem_device3_addr
+6 mem_device3_locall_addr
+2 mem_store_flag
+1 mem_mouse_dpi
+4 mem_device_24g_addr
+2 mem_random_addr_increase_count
+
+1 mem_keyboard_24g_fn_lock
+1 mem_keyboard_bt1_fn_lock
+1 mem_keyboard_bt2_fn_lock
+1 mem_keyboard_bt3_fn_lock
+1 mem_keyboard_usb_fn_lock
+1 mem_keyboard_bt1_computer_system
+1 mem_keyboard_bt2_computer_system
+1 mem_keyboard_bt3_computer_system
+1 mem_backlight_on_flag
+1 mem_backlight_on_type
+1 mem_backlight_on_level
+1 mem_backlight_breath_speed
+67 mem_mouse_retention
+0 mem_device_information_end
+
+6 mem_device_compare_addr
+3 mem_flash_base
+4 mem_write_flash_head_temp
+1 mem_store_information_delay_timer
+1 mem_store_information_delay_timer_init
+
+// 2.4G
+1 mem_device_search_dongle_interval
+1 mem_device_search_dongle_ch
+1 mem_device_search_dongle_count
+1 mem_device_search_dongle_action
+1 mem_24g_enter_lpm_timer
+1 mem_mouse_24g_enter_lpm_enable
+1 mem_keyboard_led_status
+
+
+// mouse configured param
+8 mem_mouse_flag 
+1 mem_device_number
+1 mem_device_flag_temp
+1 mem_device_otp_flag_temp
+1 mem_device_fast_direct_timeout
+2 mem_device_24g_power_on_fast_conn_timer
+2 mem_device_24g_search_dongle_time_init
+2 mem_device_no_data_timeout
+1 mem_device_direct_timer
+
+10 mem_customer_key_press
+1 mem_customer_key
+1 mem_customer_data_trigger
+1 mem_customer_data_trigger_last
+3 mem_device_set_analog_bit_set
+1 mem_bt_discovery_count
+1 mem_select_device_count
+1 mem_mouse_commbination_key
+1 mem_select_device_button_statue
+1 mem_commbination_key_statue
+1 mem_combination_ui_button_count
+
+
+1 mem_24g_shutdown_flag
+1 mem_24g_long_sleep_set_level
+
+2 mem_tx_power_factory_param
+
+1 mem_mouse_24g_long_sleep_flag
+
+//no motion pin
+1 mem_mouse_long_mult_count
+1 mem_mouse_long_mult_flag
+1 mem_mouse_current_mult_timer
+
+1 mem_reconn_times
+1 mem_reconn_times_init
+2 mem_device_no_data_timer
+8 mem_mouse_rssi_signal_buf				
+4 mem_btclk_sensor
+1 mem_device_fast_conn_flag
+2 mem_device_discovery_timer
+1 mem_device_need_soft_reset
+
+// le
+1 mem_device_le_bb_connected_flag
+1 mem_device_le_reconnect_flag
+1 mem_device_send_secutiry_request_timer
+
+3 mem_device_le_lap_temp
+3 mem_le_adv_ind
+3 mem_le_adv_direct_ind
+20 mem_le_adv_swift_pair
+1 mem_le_data_len
+2 mem_le_keyboard_handle
+2 mem_le_multimedia_handle
+2 mem_le_systemctrl_handle
+2 mem_le_battery_level_handle
+1 mem_le_battery_level_percentage
+2 mem_le_battery_level_updata_timer_init
+2 mem_le_battery_level_updata_timer
+1 mem_le_conn_param_reject
+64 mem_le_tx_buffer0_omemalloc
+64 mem_le_tx_buffer1_omemalloc
+64 mem_le_tx_buffer2_omemalloc
+64 mem_le_tx_buffer3_omemalloc
+1 mem_le_connect_status_flag
+1 mem_le_start_encrypt_timer
+
+7 mem_device_addr_temp
+1 mem_lpm_mult_init
+1 mem_qdec_set_flag
+
+)
Index: costumer/Bore/keyboard_ck801_only_24g/output/auth.rom
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/auth.rom	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/auth.rom	(working copy)
@@ -0,0 +1,1911 @@
+01
+00
+02
+00
+28
+02
+00
+18
+02
+00
+02
+03
+28
+01
+0a
+03
+00
+02
+00
+2a
+14
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+04
+00
+02
+03
+28
+01
+02
+05
+00
+02
+01
+2a
+02
+c2
+03
+06
+00
+02
+03
+28
+01
+02
+07
+00
+02
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+08
+00
+02
+00
+28
+02
+01
+18
+09
+00
+02
+03
+28
+01
+20
+0a
+00
+02
+05
+2a
+00
+0b
+00
+02
+02
+29
+02
+00
+00
+0c
+00
+02
+00
+28
+02
+0a
+18
+0d
+00
+02
+03
+28
+01
+02
+0e
+00
+02
+29
+2a
+06
+59
+69
+43
+68
+69
+70
+0f
+00
+02
+03
+28
+01
+02
+10
+00
+02
+50
+2a
+07
+02
+35
+12
+22
+aa
+01
+00
+11
+00
+02
+00
+28
+02
+12
+18
+12
+00
+02
+03
+28
+01
+06
+13
+00
+02
+4e
+2a
+01
+01
+14
+00
+02
+03
+28
+01
+12
+15
+00
+02
+4d
+2a
+08
+00
+00
+00
+00
+00
+00
+00
+00
+16
+00
+02
+02
+29
+02
+00
+00
+17
+00
+02
+08
+29
+02
+02
+01
+18
+00
+02
+03
+28
+01
+1a
+19
+00
+02
+4d
+2a
+07
+00
+00
+00
+00
+00
+00
+00
+1a
+00
+02
+02
+29
+02
+00
+00
+1b
+00
+02
+08
+29
+02
+01
+01
+1c
+00
+02
+03
+28
+01
+12
+1d
+00
+02
+4d
+2a
+02
+00
+00
+1e
+00
+02
+02
+29
+02
+00
+00
+1f
+00
+02
+08
+29
+02
+03
+01
+20
+00
+02
+03
+28
+01
+12
+21
+00
+02
+4d
+2a
+02
+00
+00
+22
+00
+02
+02
+29
+02
+00
+00
+23
+00
+02
+08
+29
+02
+04
+01
+24
+00
+02
+03
+28
+01
+0e
+25
+00
+02
+4d
+2a
+02
+00
+00
+26
+00
+02
+08
+29
+02
+02
+02
+27
+00
+02
+03
+28
+01
+02
+28
+00
+02
+4b
+2a
+f5
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+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
+26
+ff
+00
+05
+07
+19
+00
+2a
+ff
+00
+81
+00
+c0
+05
+01
+09
+02
+a1
+01
+85
+01
+09
+01
+a1
+00
+05
+09
+19
+01
+29
+08
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+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
+04
+15
+00
+25
+01
+75
+01
+95
+03
+19
+81
+29
+83
+81
+02
+95
+01
+75
+05
+81
+03
+c0
+29
+00
+02
+03
+28
+01
+1a
+2a
+00
+02
+33
+2a
+08
+00
+00
+00
+00
+00
+00
+00
+00
+2b
+00
+02
+02
+29
+02
+01
+00
+2c
+00
+02
+03
+28
+01
+02
+2d
+00
+02
+4a
+2a
+04
+01
+01
+00
+03
+2e
+00
+02
+00
+28
+02
+0f
+18
+2f
+00
+02
+03
+28
+01
+12
+30
+00
+02
+19
+2a
+01
+64
+31
+00
+02
+02
+29
+02
+00
+00
+32
+00
+02
+03
+28
+01
+04
+33
+00
+02
+4c
+2a
+00
+00
+00
+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
+41
+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
+26
+ff
+00
+05
+07
+19
+00
+2a
+ff
+00
+81
+00
+c0
+f3
+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
+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
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+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
+12
+12
+01
+00
+02
+00
+00
+00
+40
+51
+31
+20
+10
+02
+00
+01
+02
+00
+01
+3b
+09
+02
+3b
+00
+02
+01
+00
+a0
+32
+09
+04
+00
+00
+01
+03
+01
+01
+00
+09
+21
+00
+02
+00
+01
+22
+1a
+00
+07
+05
+81
+03
+40
+00
+02
+09
+04
+01
+00
+01
+03
+01
+02
+00
+09
+21
+00
+02
+00
+01
+22
+f3
+00
+07
+05
+82
+03
+40
+00
+02
+01
+00
+02
+00
+28
+02
+01
+18
+02
+00
+02
+03
+28
+01
+20
+03
+00
+02
+05
+2a
+01
+00
+04
+00
+02
+02
+29
+02
+00
+00
+05
+00
+02
+00
+28
+02
+00
+18
+06
+00
+02
+03
+28
+01
+02
+07
+00
+02
+00
+2a
+13
+43
+68
+69
+70
+73
+65
+61
+2d
+42
+4c
+45
+20
+20
+20
+20
+20
+20
+20
+20
+08
+00
+02
+03
+28
+01
+02
+09
+00
+02
+01
+2a
+02
+c1
+03
+0a
+00
+02
+03
+28
+01
+02
+0b
+00
+02
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+0c
+00
+02
+00
+28
+02
+0a
+18
+0d
+00
+02
+03
+28
+01
+02
+0e
+00
+02
+50
+2a
+07
+02
+8a
+24
+66
+82
+01
+00
+0f
+00
+02
+00
+28
+02
+12
+18
+10
+00
+02
+03
+28
+01
+06
+11
+00
+02
+4e
+2a
+01
+01
+12
+00
+02
+03
+28
+01
+12
+13
+00
+02
+4d
+2a
+02
+00
+00
+14
+00
+02
+02
+29
+02
+00
+00
+15
+00
+02
+08
+29
+02
+02
+01
+16
+00
+02
+03
+28
+01
+12
+17
+00
+02
+4d
+2a
+02
+00
+00
+18
+00
+02
+02
+29
+02
+00
+00
+19
+00
+02
+08
+29
+02
+03
+01
+1a
+00
+02
+03
+28
+01
+02
+1b
+00
+02
+4b
+2a
+1b
+05
+0c
+09
+01
+a1
+01
+85
+02
+09
+e9
+09
+ea
+09
+e2
+09
+30
+15
+01
+25
+0c
+75
+10
+95
+01
+81
+00
+c0
+1c
+00
+02
+03
+28
+01
+02
+1d
+00
+02
+4a
+2a
+04
+11
+01
+00
+01
+1e
+00
+02
+03
+28
+01
+04
+1f
+00
+02
+4c
+2a
+01
+00
+20
+00
+02
+00
+28
+02
+0f
+18
+21
+00
+02
+03
+28
+01
+12
+22
+00
+02
+19
+2a
+01
+63
+00
+00
+02
+13
+00
+02
+00
+02
+13
+00
+01
+00
+02
+13
+00
+04
+00
+02
+13
+00
+06
+00
+02
+13
+00
+05
+00
+02
+13
+00
+00
+00
+02
+17
+00
+00
+28
+02
+17
+00
+00
+00
+01
+00
+02
+00
+28
+02
+01
+18
+02
+00
+02
+03
+28
+01
+20
+03
+00
+02
+05
+2a
+01
+00
+04
+00
+02
+02
+29
+02
+00
+00
+05
+00
+02
+00
+28
+02
+00
+18
+06
+00
+02
+03
+28
+01
+02
+07
+00
+02
+00
+2a
+11
+55
+43
+48
+4f
+4e
+20
+30
+31
+20
+20
+20
+20
+20
+20
+20
+20
+20
+08
+00
+02
+03
+28
+01
+02
+09
+00
+02
+01
+2a
+02
+c8
+00
+0a
+00
+02
+03
+28
+01
+02
+0b
+00
+02
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+0c
+00
+02
+00
+28
+02
+0a
+18
+0d
+00
+02
+03
+28
+01
+02
+0e
+00
+02
+50
+2a
+07
+02
+8a
+24
+66
+82
+01
+00
+0f
+00
+02
+00
+28
+02
+f0
+ff
+10
+00
+02
+03
+28
+01
+12
+11
+00
+02
+f1
+ff
+0e
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+12
+00
+02
+02
+29
+02
+00
+00
+13
+00
+02
+03
+28
+01
+08
+14
+00
+02
+f2
+ff
+0e
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+98
+2f
+8a
+42
+91
+44
+37
+71
+cf
+fb
+c0
+b5
+a5
+db
+b5
+e9
+5b
+c2
+56
+39
+f1
+11
+f1
+59
+a4
+82
+3f
+92
+d5
+5e
+1c
+ab
+98
+aa
+07
+d8
+01
+5b
+83
+12
+be
+85
+31
+24
+c3
+7d
+0c
+55
+74
+5d
+be
+72
+fe
+b1
+de
+80
+a7
+06
+dc
+9b
+74
+f1
+9b
+c1
+c1
+69
+9b
+e4
+86
+47
+be
+ef
+c6
+9d
+c1
+0f
+cc
+a1
+0c
+24
+6f
+2c
+e9
+2d
+aa
+84
+74
+4a
+dc
+a9
+b0
+5c
+da
+88
+f9
+76
+52
+51
+3e
+98
+6d
+c6
+31
+a8
+c8
+27
+03
+b0
+c7
+7f
+59
+bf
+f3
+0b
+e0
+c6
+47
+91
+a7
+d5
+51
+63
+ca
+06
+67
+29
+29
+14
+85
+0a
+b7
+27
+38
+21
+1b
+2e
+fc
+6d
+2c
+4d
+13
+0d
+38
+53
+54
+73
+0a
+65
+bb
+0a
+6a
+76
+2e
+c9
+c2
+81
+85
+2c
+72
+92
+a1
+e8
+bf
+a2
+4b
+66
+1a
+a8
+70
+8b
+4b
+c2
+a3
+51
+6c
+c7
+19
+e8
+92
+d1
+24
+06
+99
+d6
+85
+35
+0e
+f4
+70
+a0
+6a
+10
+16
+c1
+a4
+19
+08
+6c
+37
+1e
+4c
+77
+48
+27
+b5
+bc
+b0
+34
+b3
+0c
+1c
+39
+4a
+aa
+d8
+4e
+4f
+ca
+9c
+5b
+f3
+6f
+2e
+68
+ee
+82
+8f
+74
+6f
+63
+a5
+78
+14
+78
+c8
+84
+08
+02
+c7
+8c
+fa
+ff
+be
+90
+eb
+6c
+50
+a4
+f7
+a3
+f9
+be
+f2
+78
+71
+c6
Index: costumer/Bore/keyboard_ck801_only_24g/output/bt_format.meta
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/bt_format.meta	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/bt_format.meta	(working copy)
@@ -0,0 +1,11665 @@
+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_current_context
+0x0007 mem_le_ch_mapped
+0x0008 mem_last_freq
+0x0009 mem_rssi
+0x000a mem_context_ptr
+0x000c mem_rx_window
+0x000e mem_lpm_adjust
+0x000f mem_sync_clke
+0x0015 mem_lpm_current_mult
+0x0016 mem_gpio_wakeup_cfg
+0x0022 mem_clkn_bt
+0x0026 mem_clke_bt
+0x002a mem_dpll_clkn
+0x002e mem_slot_offset
+0x0030 mem_loadcode_times
+0x0031 mem_select_list_item
+0x0032 mem_temp_reconn_record
+0x0032 mem_record_bt_mode
+0x0033 mem_list_item_ptr
+0x0035 mem_rssi_hex
+0x0036 mem_param_tx_setup
+0x0038 mem_param_rf_setup
+0x003a mem_param_conn_access
+0x003c mem_param_clke_cal
+0x003e mem_param_pll_setup
+0x0040 mem_param_rx_setup
+0x0042 mem_param_dpll_start_delay
+0x0044 mem_param_rt_rthalfslot
+0x0046 mem_param_clke_cal_le_1m
+0x0048 mem_param_clke_cal_le_2m
+0x004a mem_param_clke_cal_le_coded
+0x004c mem_le_rxbuf
+0x0150 mem_le_mic
+0x0154 mem_le_peer_mic
+0x0158 mem_le_mrand
+0x0168 mem_le_state
+0x0169 mem_le_mode
+0x016a mem_le_tsniff
+0x016c mem_le_anchor
+0x0170 mem_le_clk_offset
+0x0176 mem_le_receive_window
+0x0178 mem_le_plap
+0x017e mem_le_conn_handle
+0x017f mem_le_arq
+0x0180 mem_le_ch
+0x0181 mem_le_hop
+0x0182 mem_le_event_count
+0x0184 mem_le_supervision_timer
+0x0188 mem_le_instant
+0x018a mem_le_channels
+0x018b mem_le_op
+0x018c mem_le_access
+0x0190 mem_le_crcinit
+0x0193 mem_le_window_size
+0x0194 mem_le_slave_latency
+0x0196 mem_le_superto
+0x0198 mem_le_channel_map
+0x019d mem_le_rx_phy
+0x019e mem_le_tx_phy
+0x019f mem_le_update_new_param
+0x01a8 mem_le_sk
+0x01b8 mem_le_peer_sca
+0x01b9 mem_le_err_code
+0x01ba mem_le_ll_pairing_fail_reason
+0x01bb mem_ucode_status
+0x01bc mem_spid_tbuf
+0x01bd mem_iicd_tbuf
+0x01bd mem_addr_hi
+0x01be mem_addr_mi
+0x01bf mem_addr_lo
+0x01c0 mem_iicd_addr
+0x01c1 mem_spid_rbuf
+0x01c5 mem_ucode_buf
+0x01c7 mem_ucode_len
+0x01c9 mem_sched_addr
+0x01cb mem_ucode_keybuf
+0x01db mem_otp_temp
+0x01fb mem_app_evt_timer_count
+0x01fc mem_input_store
+0x020c mem_ec_loopc
+0x020e mem_aes_cmac_data_length
+0x020f mem_dat
+0x026f mem_ax_256//32 bytes
+0x028f mem_ay_256// 32 bytes
+0x02af mem_az_256// 32 bytes
+0x02cf mem_bx_256// 32 bytes
+0x02ef mem_by_256// 31 bytes
+0x030f mem_bz_256//32 bytes
+0x030f mem_tmp1
+0x030f memahbak
+0x0327 mem_tmp5
+0x032f mem_cx_256//32 bytes
+0x034f mem_cy_256// 32 bytes
+0x036e mem_cy5_256// 1 byte
+0x036f mem_cz_256// 32 bytes
+0x038f mem_k_256//32 bytes
+0x03af mem_tmp1_256//32 bytes
+0x03cf mem_tmp5_256
+0x03ef mem_tmp2_256
+0x040f mem_tmp3_256
+0x040f mem_t1_256
+0x042f mem_tmp0_256
+0x042f mem_t0_256
+0x044f mem_t2_256
+0x046f mem_t3_256
+0x048f mem_t7_256
+0x04af mem_p
+0x04c7 mem_a
+0x04df mem_b
+0x04f7 mem_gx
+0x050f mem_gy
+0x0527 memh0
+0x0547 mem_p_256
+0x0567 mem_a_256
+0x0587 mem_gx_256
+0x05a7 mem_gy_256
+0x05c7 mem_le_slat
+0x05d7 mem_sp_state_start
+0x05d7 mem_sp_dhkey_invalid
+0x05d8 mem_gkey
+0x05dc mem_sp_state_end
+0x05dc mem_le_pubkey_remote_x_256
+0x05fc mem_le_pubkey_remote_y_256
+0x061c mem_le_dhkey_256
+0x063c mem_sp_confirm_remote
+0x064c mem_ipc_skip_continue_proc
+0x064d mem_fifo_temp
+0x064e mem_pdatatemp
+0x0656 mem_temp//8 bytes
+0x065e mem_timeup// 4 bytes
+0x0662 mem_rega//4 bytes
+0x0666 mem_regb//4 bytes
+0x066a mem_regc//3 bytes
+0x066d mem_contr//2 bytes
+0x066f mem_contw//2 bytes
+0x0671 mem_contus
+0x0673 mem_contue
+0x0675 mem_contu
+0x0677 mem_queue
+0x0679 mem_loopcnt
+0x067b mem_saved_gpio_in
+0x067f mem_module_rx_error_data_buffer
+0x067f mem_le_adv_channel_map_temp
+0x067f mem_le_data_len_temp//1byte
+0x067f mem_event_cmd_response_content//2byte
+0x067f mem_le_prand//16byte
+0x067f mem_AES_CMAC_k//16 bytes
+0x067f mem_regext_index//1 bytes
+0x067f mem_temp_block0
+0x0680 mem_le_data_temp//15bytes
+0x0680 mem_temp_block1
+0x068f mem_le_tx_buf_temp//48byte
+0x068f mem_le_aes_128//16byte
+0x068f mem_regext//64 bytes
+0x068f mem_AES_CMAC_k1//16 bytes
+0x068f mem_temp_block2
+0x069f mem_AES_CMAC_k2//16 bytes
+0x069f mem_temp_block3
+0x06af mem_AES_CMAC_temp// 16 bytes
+0x06af mem_temp_block4
+0x06bf mem_AES_CMAC_M_last// 16 bytes
+0x06bf mem_module_uart_cmd
+0x06c0 mem_module_uart_opcode
+0x06c1 mem_module_uart_len
+0x06c2 mem_module_temp_nl_discard_packet
+0x06c3 mem_temp_block5
+0x06cf mem_le_mackey//16 bytes
+0x06cf mem_app_receive_temp
+0x06cf mem_key_value_temp
+0x06d1 mem_key_value
+0x06d3 mem_key_value_temp1
+0x06d4 mem_key_value_temp2
+0x06d5 mem_key_value_temp3
+0x06d6 mem_key_value_temp4
+0x06d7 mem_key_value_temp5
+0x06d8 mem_key_value_temp6
+0x06d9 mem_temp_block6
+0x06df mem_scale_ratio
+0x06e2 mem_xcnt
+0x06e5 mem_scale_ratio_temp
+0x06e7 mem_hci_opcode_ocf
+0x06e9 mem_hci_opcode_ogf
+0x06ea mem_hci_event_head_type
+0x06eb mem_hci_event_head_event_code
+0x06ec mem_hci_event_para_total_length
+0x06ed mem_hci_command_complete_num_hci_command_packet
+0x06ee mem_hci_command_complete_command_opcode
+0x06ee mem_hci_opcode
+0x06f0 mem_hci_command_complete_return_parameter
+0x06f0 mem_hci_command_complete_return_parameter_status
+0x06f1 mem_hci_command_complete_return_parameter_chip_id
+0x06e7 mem_module_le_rx_data_len
+0x06e9 mem_module_le_rx_data_address
+0x06eb mem_module_le_rx_data_handle
+0x06e7 mem_init_cnt
+0x06e9 mem_data_pre
+0x06eb mem_data_current
+0x06ed mem_data_sum
+0x06f0 mem_data_value
+0x06e7 mem_malloc_rec_start
+0x06e7 mem_rec_queue_ota_sptr
+0x06e9 mem_rec_queue_ota_eptr
+0x06eb mem_rec_queue_ota_rptr
+0x06ed mem_rec_queue_ota_wptr
+0x06ef mem_rec_queue_ota_buf//1280
+0x06ef mem_rec_voice_raw_start
+0x06ef mem_rec_voice_raw
+0x0a0e mem_rec_voice_raw_end
+0x0a0f mem_rec_voice_queue_count
+0x0a10 mem_rec_queue_buf
+0x0a24 mem_rec_adpcm
+0x0a88 mem_rec_nec_rx_start
+0x0b87 mem_rec_nec_rx_end
+0x0b88 mem_rec_nec_rx_store_start
+0x0c87 mem_rec_nec_rx_store_end
+0x0c88 mem_rec_ota_flash_buf_head
+0x0c8c mem_rec_ota_flash_buf//300
+0x0c8c mem_rec_nec_flash_write_head
+0x0c90 mem_rec_nec_rx_info
+0x0c90 mem_rec_nec_rx_len
+0x0c91 mem_rec_nec_rx_perid_freq
+0x0c93 mem_rec_nec_rx_data
+0x0d92 mem_rec_nec_rx_analysis_end
+0x0d93 mem_rec_nec_rx_count
+0x0d94 mem_rec_nec_timer
+0x0d95 mem_rec_nec_timeout
+0x0d96 mem_rec_nec_usercode
+0x0d98 mem_rec_nec_datacode
+0x0d99 mem_rec_nec_learn_key_num
+0x0d9a mem_rec_nec_learn_key_state
+0x0d9b mem_rec_nec_learn_enable_flag
+0x0d9c mem_rec_nec_learn_timeout
+0x0da0 mem_rec_nec_learn_state
+0x0da1 mem_rec_period_cal
+0x0db5 mem_rec_period_cal_ptr
+0x0db7 mem_rec_period_cal_count
+0x0db8 mem_rec_nec_period_array
+0x0dcc mem_rec_nec_store_sptr
+0x0dce mem_rec_nec_store_eptr
+0x0dd0 mem_rec_nec_store_wptr
+0x0dd2 mem_rec_nec_receive_data0
+0x0dd3 mem_rec_nec_receive_data1
+0x0dd4 mem_rec_nec_receive_data2
+0x0dd5 mem_rec_nec_receive_data
+0x0dd8 mem_rec_nec_data
+0x0dd9 mem_rec_nec_period
+0x0dda mem_rec_nec_duty
+0x0ddb mem_rec_nec_freq
+0x0ddc mem_rec_nec_carry_time
+0x0dde mem_rec_nec_learn_stime
+0x0de2 mem_rec_nec_learn_ntime
+0x0de6 mem_rec_nec_learn_outtime
+0x0dea mem_rec_nec_learn_succ
+0x0deb mem_rec_nec_learn_succ_ptr
+0x0ded mem_rec_nec_learn_send_flag
+0x0dee mem_rec_nec_led_state
+0x0def mem_rec_nec_led_blink_count
+0x0df0 mem_malloc_rec_end
+0x06e7 mem_le_test_sync
+0x06e9 mem_le_test_pcnt
+0x06eb mem_tst_pktcnt_crc
+0x06ed mem_tst_pktcnt_dmh
+0x06ef mem_tmp_buffer_head
+0x06f2 mem_tmp_buffer
+0x06e7 mem_usb_status
+0x06e9 mem_usb_fifo_empty
+0x06ea mem_usb_read_len
+0x06ec mem_usb_txbuf
+0x072d mem_usb_txbuf1
+0x0737 mem_usb_txbuf2
+0x0741 mem_usb_rxbuf
+0x0781 mem_usb_rxbuf_end
+0x0782 mem_bufptr
+0x0784 mem_remain
+0x0785 mem_hidreportdesc_kb
+0x0787 mem_hidreportdesc_m
+0x0789 mem_devicedesc
+0x079c mem_confdesc
+0x07d8 mem_string0
+0x07dd mem_string1
+0x07fb mem_string2
+0x0819 mem_string3
+0x0837 mem_cb_usb_config
+0x0839 mem_usb_tx_interval
+0x083a mem_usb_vid_pid
+0x0843 mem_usb_zero_packet
+0x0845 mem_usb_ones_packet
+0x0847 mem_usb_two_packet
+0x0849 mem_usb0_state
+0x084a mem_usb_offline_check_gpio
+0x084b mem_usb_clear_mem_start
+0x084b mem_usb_setup
+0x084b mem_usb_setup_bmRequestType
+0x084c mem_usb_setup_bRequest
+0x084d mem_usb_setup_bValue
+0x084e mem_usb_setup_bValueH
+0x084f mem_usb_setup_wIndex
+0x0851 mem_usb_setup_bLength
+0x0852 mem_usb_setup_bLengthH
+0x0853 mem_usb0_set_report_data
+0x0893 mem_usb0_get_report_data
+0x08d3 mem_usb_setup_bValue_temp
+0x08d5 mem_usb0_get_set_report
+0x08d6 mem_usb0_data_ready_report
+0x08d7 mem_usb_tx_win_enable
+0x08d8 mem_usb_tx_mac_enable
+0x08d9 mem_usb_idle_flag
+0x08da mem_usb_idle_rate
+0x08db mem_usb_get_protocol_flag
+0x08dc mem_usb_set_protocol_status
+0x08dd mem_usb_set_protocol_value
+0x08de mem_usb_state
+0x08df mem_usb_remote_wakeup
+0x08e0 mem_usb_clear_remote_wakeup
+0x08e1 mem_sdsystem_wakeup_flag
+0x08e2 mem_usb_ep0_stall_status
+0x08e3 mem_usb_ep1_stall_status
+0x08e4 mem_usb_ep2_stall_status
+0x08e5 mem_usb_ep3_stall_status
+0x08e6 mem_dsc_info_data_pointer
+0x08e8 mem_dsc_info_len
+0x08e9 mem_usb_ep1_data
+0x08ea mem_usb_ep2_data
+0x08eb mem_usb_tx_enable
+0x08ec mem_usb_device_enumeration_endflag
+0x08ed mem_usb_wakestate_onetime_flag
+0x08ee mem_usb_mac_wakeup_trig
+0x08ef mem_usb_set_high_addr_flag
+0x08f0 mem_usb_clear_halt
+0x08f1 mem_usb_mouse_data
+0x0901 mem_usb_kb_data
+0x0911 mem_usb_kb_n_key_rollvoer_data
+0x0921 mem_usb_kb_multikey
+0x0929 mem_usb_kb_system
+0x0931 mem_usb_test_cnt
+0x0933 mem_usb_test_kb
+0x093d mem_usb_clear_mem_end
+0x093d mem_usb_ccid_buf
+0x097d mem_dg_rssi_noise_buffer
+0x0a7d mem_dg_rssi_noise_dg_buffer
+0x0b7d mem_dg_rssi_noise_ms_buffer
+0x0c7d mem_dg_rssi_noise_kb_buffer
+
+0x019f mem_le_new_param
+0x019f mem_le_new_transmitwindowsize
+0x01a0 mem_le_new_transmitwindowoffset
+0x01a2 mem_le_new_conninterval
+0x01a4 mem_le_new_connslavelatency
+0x01a6 mem_le_new_connsupervisiontimeout
+0x019f mem_le_new_map
+0x019f mem_le_new_m2s_phy
+0x01a0 mem_le_new_s2m_phy
+0x004c mem_le_rxbuf_data_header
+0x004d mem_le_rxbuf_data_length
+0x004e mem_le_rxbuf_data_payload
+0x004c mem_le_rxbuf_data_ll_header
+0x004d mem_le_rxbuf_data_ll_length
+0x004e mem_le_rxbuf_data_ll_opcode
+0x004f mem_le_rxbuf_data_ll_control_data
+0x004c mem_le_rxbuf_adv_header
+0x004d mem_le_rxbuf_adv_length
+0x004e mem_le_rxbuf_adv_payload
+0x004c mem_le_rxbuf_adv_scan_req_header
+0x004d mem_le_rxbuf_adv_scan_req_length
+0x004e mem_le_rxbuf_adv_scan_req_scan_address
+0x0054 mem_le_rxbuf_adv_scan_req_adv_address
+0x004c mem_le_rxbuf_adv_connect_ind_header
+0x004d mem_le_rxbuf_adv_connect_ind_length
+0x004e mem_le_rxbuf_adv_connect_ind_init_address
+0x0054 mem_le_rxbuf_adv_connect_ind_adv_address
+0x005a mem_le_rxbuf_adv_connect_ind_access_address
+0x005e mem_le_rxbuf_adv_connect_ind_crc_init
+0x0061 mem_le_rxbuf_adv_connect_ind_win_size
+0x0062 mem_le_rxbuf_adv_connect_ind_win_offset
+0x0064 mem_le_rxbuf_adv_connect_ind_interval
+0x0066 mem_le_rxbuf_adv_connect_ind_latency
+0x0068 mem_le_rxbuf_adv_connect_ind_timeout
+0x006a mem_le_rxbuf_adv_connect_ind_channel_map
+0x006f mem_le_rxbuf_adv_connect_ind_hop_and_sca
+0x068f mem_le_search_handle_start
+0x0691 mem_le_search_handle_end
+0x0693 mem_le_att_offset
+0x0693 mem_le_search_att_type_length
+0x0694 mem_le_search_att_type
+0x06a4 mem_le_curr_att_len
+0x06a5 mem_le_cur_attlist_start_ptr
+0x06a7 mem_le_cur_handle_start
+0x06a9 mem_le_cur_handle_end
+0x06ab mem_le_cur_uuid_length
+0x06ac mem_le_cur_uuid
+0x06bc mem_le_cur_handle
+0x004c mem_le_rxbuf_data_att_header
+0x004d mem_le_rxbuf_data_att_length
+0x004e mem_le_rxbuf_data_att_l2cap_length
+0x0050 mem_le_rxbuf_data_att_cid
+0x0052 mem_le_rxbuf_data_att_opcode
+0x0053 mem_le_rxbuf_data_att_payload
+0x004c mem_le_rxbuf_data_continue_header
+0x004d mem_le_rxbuf_data_continue_length
+0x004e mem_le_rxbuf_data_continue_payload
+0x004c mem_le_rxbuf_data_att_write_header
+0x004d mem_le_rxbuf_data_att_write_length
+0x004e mem_le_rxbuf_data_att_write_l2cap_length
+0x0050 mem_le_rxbuf_data_att_write_cid
+0x0052 mem_le_rxbuf_data_att_write_opcode
+0x0053 mem_le_rxbuf_data_att_write_handle
+0x0055 mem_le_rxbuf_data_att_write_payload
+0x004c mem_le_rxbuf_data_prepare_att_write_header
+0x004d mem_le_rxbuf_data_prepare_att_write_length
+0x004e mem_le_rxbuf_data_prepare_att_write_l2cap_length
+0x0050 mem_le_rxbuf_data_prepare_att_write_cid
+0x0052 mem_le_rxbuf_data_prepare_att_write_opcode
+0x0053 mem_le_rxbuf_data_prepare_att_write_handle
+0x0055 mem_le_rxbuf_data_prepare_att_write_offset
+0x0057 mem_le_rxbuf_data_prepare_att_write_payload
+0x01db mem_otp_adc
+0x01e3 mem_otp_adc_ratio
+0x01e4 mem_otp_coordinate
+0x01eb mem_otp_core_ldo
+0x01ec mem_otp_verf_bg
+0x01ed mem_otp_charge_pump
+0x01ee mem_otp_dpll_ibais
+0x01ef mem_otp_temp1
+0x01f7 mem_otp_hv_sel
+0x01f8 mem_otp_ldo_vsel
+0x01f9 mem_otp_load_delay
+0x01fa mem_otp_load_check_sum
+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
+0x4093 mem_current_amaddr
+0x4094 mem_lpm_mode
+0x4095 mem_last_clkn
+0x4099 mem_fcomp_div
+0x409a mem_rx_window_sniff
+0x409c mem_rf_init_ptr
+0x409e mem_rf_rccal
+0x409f mem_handle_num
+0x40a0 mem_chip_functions
+0x40a2 mem_lpm_wake_lock
+0x40a4 mem_lpm_interval
+0x40a6 mem_lpm_overhead
+0x40a7 mem_lpm_hibernate_switch
+0x40a8 mem_sniff_unint_lost
+0x40a9 mem_sleep_counter
+0x40ad mem_sleep_counter_all
+0x40b1 mem_sleep_clkn
+0x40b7 mem_sniff_rcv
+0x40ba mem_sniff_lost
+0x40bd mem_clks_per_lpo
+0x40c0 mem_lpm_mult
+0x40c1 mem_lpm_mult_timeout
+0x40c2 mem_lpm_mult_cnt
+0x40c3 mem_lpm_xtalcnt
+0x40c4 mem_lpm_buckcnt
+0x40c5 mem_lpm_ldocnt
+0x40c6 mem_lpm_isogate
+0x40c7 mem_lpm_isogate_stage2
+0x40c8 mem_lpm_isogate_final
+0x40c9 mem_lpm_ldo_sel
+0x40ca mem_lpm_sysctl
+0x40cb mem_lpm_hv_sel
+0x40cc mem_saved_gpio
+0x40e4 mem_saved_gsel
+0x40e7 mem_saved_mark
+0x40ef mem_saved_spidctrl
+0x40f0 mem_patch_ptr
+0x40f2 mem_patch_len
+0x40f4 mem_timers
+0x4114 mem_hci_cmd
+0x4115 mem_hci_conn_handle
+0x4116 mem_hci_plap
+0x4119 mem_hci_puap
+0x411a mem_hci_pnap
+0x411c mem_xtal_c_sel
+0x411d mem_ghpc_table
+0x4135 mem_aac_res_table
+0x4141 mem_tx_power
+0x4142 mem_modem_rssi
+0x4143 mem_gain_fix
+0x4144 mem_gain_table
+0x4147 mem_gain_second_agc_en
+0x4148 mem_system_clk
+0x4149 mem_rf_init_data
+0x415d mem_otp_charge_pump_x
+0x415e mem_otp_dpll_ibais_x
+0x415f mem_xtal_freq
+0x4160 mem_version
+0x4161 mem_company_id
+0x4163 mem_sub_version
+0x4165 mem_le_dsniff
+0x4167 mem_le_conn_interval
+0x4169 mem_le_tx_ifs_defference
+0x416a mem_le_tx2m_delay
+0x416b mem_le_txheader
+0x416c mem_le_txlen
+0x416d mem_le_txpayload
+0x426d mem_le_name_len
+0x426e mem_le_name
+0x428c mem_le_ltk
+0x429c mem_ltk_exists
+0x429d mem_le_rconfirm
+0x42ad mem_le_srand
+0x42bd mem_le_iat
+0x42be mem_le_rat
+0x42bf mem_le_preq
+0x42c0 mem_le_preq_iocap
+0x42c1 mem_le_preq_oob
+0x42c2 mem_le_preq_auth
+0x42c3 mem_le_preq_max_keysize
+0x42c4 mem_le_preq_init_key_distribution
+0x42c5 mem_le_preq_resp_key_distribution
+0x42c6 mem_le_pres
+0x42c7 mem_le_pres_iocap
+0x42c8 mem_le_pres_oob
+0x42c9 mem_le_pres_auth
+0x42ca mem_le_pres_max_keysize
+0x42cb mem_le_pres_init_key_distribution
+0x42cc mem_le_pres_resp_key_distribution
+0x42cd mem_le_conn_param
+0x42cd mem_le_conn_peer_addr_type
+0x42ce mem_le_conn_peer_addr
+0x42d4 mem_le_conn_own_addr_type
+0x42d5 mem_le_interval_min
+0x42d7 mem_le_interval_max
+0x42d9 mem_le_latency
+0x42db mem_le_timeout
+0x42dd mem_le_lap
+0x42e0 mem_le_uap
+0x42e1 mem_le_nap
+0x42e3 mem_le_local_mtu
+0x42e5 mem_le_remote_mtu
+0x42e7 mem_le_skdm
+0x42ef mem_le_skds
+0x42f7 mem_le_init_superto
+0x42f9 mem_ui_le_uuid_table
+0x42fb mem_le_secure_connect_flag
+0x42fc mem_le_secure_connect_state
+0x42fd mem_le_sc_confirm_gkey_flag
+0x42fe mem_le_pairing_state
+0x42ff mem_le_enc_state
+0x4300 mem_le_pairing_mode
+0x4301 mem_le_tk
+0x4305 mem_le_ediv
+0x4307 mem_le_rand
+0x430f mem_le_irk
+0x431f mem_le_transmit_window
+0x4323 mem_le_configuration
+0x4324 mem_le_fixed_ltk
+0x4334 mem_le_pairing_handle
+0x4336 mem_le_packet_llid
+0x4337 mem_le_l2cap_size
+0x4339 mem_le_packet_len_recved
+0x433b mem_le_payload_ptr
+0x433d mem_le_testtype
+0x433e mem_cmd_le_create_conn
+0x433f mem_le_signaling_identifier
+0x4340 mem_le_l2cap_signaling_conn_param_update_rsp_result
+0x4342 mem_le_md_count
+0x4343 mem_ble_l2cap_tx_buff0_ptr
+0x4345 mem_ble_l2cap_tx_buff_size_ptr
+0x4347 mem_le_scan_enable
+0x4348 mem_le_scan_interval
+0x434a mem_le_scan_window
+0x434c mem_le_adv_data_len
+0x434d mem_le_adv_data
+0x436c mem_le_scan_data_len
+0x436d mem_le_scan_data
+0x438c mem_le_adv_enable
+0x438d mem_le_adv_param
+0x438d mem_le_adv_interval
+0x438f mem_le_adv_type
+0x4390 mem_le_adv_own_addr_type
+0x4391 mem_le_adv_direct_addr
+0x4397 mem_le_adv_channel_map
+0x4398 mem_le_scan_params
+0x4398 mem_le_scan_type
+0x4399 mem_le_scan_own_addr_type
+0x439a mem_le_l2cap_att_states
+0x439b mem_le_att_opcode
+0x439c mem_le_att_handle
+0x439e mem_le_search_res
+0x439f mem_le_notify_handle
+0x43a1 mem_le_search_uuid_length
+0x43a2 mem_le_search_uuid
+0x43b2 mem_le_local_feature
+0x43ba mem_le_tx_phys
+0x43bb mem_le_rx_phys
+0x43bc mem_remote_rx_max_octets
+0x43be mem_remote_rx_max_time
+0x43c0 mem_remote_tx_max_octets
+0x43c2 mem_remote_tx_max_time
+0x43c4 mem_local_rx_max_octets
+0x43c6 mem_local_rx_max_time
+0x43c8 mem_local_tx_max_octets
+0x43ca mem_local_tx_max_time
+0x43cc mem_ucode_ptr
+0x43ce mem_ucode_flag
+0x43cf mem_device_option
+0x43d0 mem_peripheral_lock_flag
+0x43d1 mem_bistfix_val
+0x43d1 mem_bistfix_addr_sched
+0x43d3 mem_bistfix_addr_x
+0x43d5 mem_bistfix_addr_patch
+0x43d7 mem_bistfix_val_xram
+0x43d8 mem_bistfix_val_patchram
+0x43dc mem_cb_check_wakelock
+0x43de mem_cb_before_hibernate
+0x43e0 mem_cb_before_lpm
+0x43e2 mem_cb_le_process
+0x43e4 mem_cb_idle_process
+0x43e6 mem_cb_bb_event_process
+0x43e8 mem_cb_att_write
+0x43ea mem_cb_ble_transmit
+0x43ec mem_cb_event_timer
+0x43ee mem_cb_bt_set_mult
+0x43f0 mem_cb_spi_flash_write_complate
+0x43f2 mem_cb_before_lpm_sleep
+0x43f4 mem_eeprom_base
+0x43f6 mem_wake_up_delay_timer
+0x43f7 mem_app_connection_options
+0x43f8 mem_app_disconn_reason
+0x43fa mem_app_disconn_reason_flag
+0x43fc mem_xrecord_mode
+0x43fd mem_eeprom_block_size
+0x43fe mem_spi_init_clk
+0x43ff mem_spi_init_delay_time
+0x4400 mem_spi_ncs_gpio
+0x4401 mem_nv_data_ptr
+0x4403 mem_nv_data_number
+0x4404 mem_queue_ptr
+0x4406 mem_reference_inter1p8v_2v_adc_io_data
+0x4408 mem_reference_inter1p8v_2p6v_adc_vdcdc_data
+0x440a mem_reference_inter1p8v_1v_adc_io_data
+0x440c mem_reference_inter1p8v_4p6v_adc_vdcdc_data
+0x440e mem_adc_reference3v_ft_data
+0x440e mem_adc_reference3v_gpio1v_ft_data
+0x4410 mem_adc_reference3v_gpio2v_ft_data
+0x4412 mem_adc_reference3v_vdcdc3p6v_ft_data
+0x4414 mem_adc_reference3v_vdcdc4p6v_ft_data
+0x4416 mem_adc_reference3v_inter1v_ft_data
+0x4418 mem_adc_reference3v_inter1v_now_data
+0x441a mem_adc_reference_mode
+0x441b mem_reference_voltage
+0x441d mem_adc_config_flag
+0x441e mem_adc_channel
+0x441f mem_adc_clkdiv
+0x4420 mem_adc_current_value
+0x4422 mem_adc_power_flag//bit0:low power falg ; bit1:no power flag
+0x4423 mem_adc_saddr_ptr
+0x4425 mem_adc_eaddr_ptr
+0x4427 mem_adc_dma_enable
+0x4428 mem_adc_cal_c0
+0x4429 mem_adc_cal_c1
+0x442a mem_adc_cal_c2
+0x442b mem_adc_cal_c3
+0x442c mem_adc_cal_c4
+0x442d mem_adc_cal_c5
+0x442e mem_adc_cal_c6
+0x442f mem_adc_cal_c7
+0x4430 mem_spi_write_addr
+0x4433 mem_spi_write_ptr
+0x4435 mem_spi_write_len
+0x4437 mem_spi_write_flash_sm
+0x4438 mem_spi_cs_gpio
+0x4439 mem_spi_si_gpio
+0x443a mem_spi_so_gpio
+0x443b mem_spi_sclk_gpio
+0x443c mem_spi_wp_gpio
+0x443d mem_spi_hold_gpio
+0x443e mem_eeprom_wp_gpio
+0x443f mem_eeprom_scl_gpio
+0x4440 mem_eeprom_sda_gpio
+0x4441 mem_kscan_ptr
+0x4443 mem_key_num_ptr
+0x4443 mem_keyscan_ptr
+0x4445 mem_key_value_retention
+0x4447 mem_power_param_ptr
+0x4449 mem_seqi
+0x444a mem_set_cdb_on
+0x444b mem_syn_cal_ctrl
+0x444c mem_nec_decode_error_value
+0x444d mem_wdt_always_work
+0x444e mem_power_ctrl_disable
+0x444f mem_ring_ibias_trim
+0x4450 mem_ring_ibias_vtune_low
+0x4452 mem_ring_ibias_vtune_high
+0x4454 mem_ring_ibias_calc_adc_gpio
+0x4455 mem_ring_ibias_calc_adc_channel
+0x4456 mem_rf_debug_rx_gpio
+0x4457 mem_rf_debug_tx_gpio
+0x4458 mem_l2cap_xmem_start
+0x4458 mem_used_map
+0x4459 mem_tx_fifo0
+0x4459 mem_tx_fifo0_map
+0x445a mem_tx_fifo0_ptr
+0x445c mem_tx_fifo1
+0x445c mem_tx_fifo1_map
+0x445d mem_tx_fifo1_ptr
+0x445f mem_tx_fifo2
+0x445f mem_tx_fifo2_map
+0x4460 mem_tx_fifo2_ptr
+0x4462 mem_tx_fifo3
+0x4462 mem_tx_fifo3_map
+0x4463 mem_tx_fifo3_ptr
+0x4465 mem_tx_fifo_end
+0x4465 mem_l2cap_lpm_txbuf_ptr
+0x4467 mem_l2cap_xmem_end
+0x4467 mem_ccm_pcnt_tx
+0x446c mem_ccm_pcnt_rx
+0x4471 mem_ccm_last_mic
+0x4475 mem_ccm_iv
+0x4475 mem_ccm_ivm
+0x4479 mem_ccm_ivs
+0x447d mem_ccm_len
+0x447f mem_ccm_rx_ptr
+0x4481 mem_sc_only_mode
+0x4482 mem_sp_debug_mode
+0x4483 mem_secure_connections_enable
+0x4484 mem_sc_calc
+0x4485 mem_sc_local_key_invalid
+0x4486 mem_sc_private_key_256
+0x44a6 mem_sc_pubkey_local_x_256
+0x44c6 mem_sc_pubkey_local_y_256
+0x44e6 mem_sp_state_xmem
+0x44e6 mem_authentication_passkey_times
+0x44e7 mem_passkey_1bit
+0x44e8 mem_sp_state_xmem_end
+0x44e8 mem_ipc_lock_bt
+0x44e9 mem_ipc_lock_c51
+0x44ea mem_ipc_fifo_bt2c51
+0x44f2 mem_ipc_fifo_c512bt
+0x44fa mem_ui_button_timer
+0x44fb mem_ui_button_last_state
+0x44fc mem_ui_timer_last_btclk
+0x4500 mem_ui_state_map
+0x4502 mem_ui_button_timeout
+0x4503 mem_ui_button_gpio
+0x4504 mem_ui_led_init_state_set
+0x4505 mem_ui_led_struct_num
+0x4506 mem_ui_led_struct_ptr
+0x4508 mem_24g_lap
+0x450e mem_24g_rxbuf
+0x4530 mem_24g_txbuf
+0x4550 mem_24g_txpayload
+0x4574 mem_24g_rxpayload
+0x4594 mem_24g_rxdata_length
+0x4595 mem_24g_pid
+0x4596 mem_24g_no_ack
+0x4597 mem_24g_sta_crc
+0x459a mem_24g_last_crc
+0x459d mem_24g_sta_pid
+0x459e mem_24g_last_pid
+0x459f mem_24g_datalen
+0x45a0 mem_24g_data_type
+0x45a1 mem_24g_txlen
+0x45a2 mem_24g_rx_window
+0x45a4 mem_24g_ch
+0x45a5 mem_24g_current_ch_number
+0x45a6 mem_24g_addr
+0x45aa mem_24g_ch_map1
+0x45ae mem_24g_ch_map2
+0x45b2 mem_24g_ch_map3
+0x45b6 mem_24g_ch_map4
+0x45ba mem_24g_tx_btclk
+0x45be mem_24g_interval
+0x45bf mem_24g_interval_min
+0x45c0 mem_24g_interval_max
+0x45c1 mem_24g_syncword
+0x45c3 mem_24g_syncword_crc8
+0x45c4 mem_24g_get_syncword_crc8
+0x45c5 mem_24g_pair_switch
+0x45c6 mem_24g_enter_hibernate
+0x45ce mem_24g_rx_phy
+0x45cf mem_24g_tx_phy
+0x45d0 mem_24g_ch_map_update
+0x45d1 mem_24g_ch_update_map1
+0x45d5 mem_24g_ch_update_map2
+0x45d9 mem_24g_ch_update_map3
+0x45dd mem_24g_ch_update_map4
+0x45e1 mem_24g_disable_fec1
+0x45e2 mem_24g_off_type
+0x45e3 mem_24g_pair_addr
+0x45e7 mem_24g_pair_ch
+0x45e8 mem_24g_pair_tx_power
+0x45e9 mem_rssi_buff_index
+0x45ea mem_24g_device1_bind_step
+0x45eb mem_24g_device2_bind_step
+0x45ec mem_24g_bind_device_status
+0x45ed mem_24g_bind_payload
+0x45f5 mem_24g_device1_bind_disable
+0x45f6 mem_24g_device2_bind_disable
+0x45f7 mem_cb_24g_receive_process
+0x45f9 mem_cb_24g_ackpayload
+0x45fb mem_cb_24g_data_device1
+0x45fd mem_cb_24g_data_device2
+0x45ff mem_24g_rxdata_temp
+0x4621 mem_24g_abort_packet
+0x4622 mem_24g_hop_btclk
+0x4626 mem_24g_hop_interval
+0x4627 mem_24g_pair_mode
+0x4628 mem_24g_ackpayload_enable
+0x4629 mem_24g_hop_packet
+0x462a mem_24g_mode_switch
+0x462b mem_24g_nodata_timer_enable
+0x462c mem_24g_mode_init
+0x462d mem_24g_work_mode
+0x462e mem_24g_time_slice
+0x462f mem_24g_self_last_ch
+0x4630 mem_24g_self_ch_number
+0x4631 mem_24g_self_config_ch_once
+0x4632 mem_24g_device1_last_ch
+0x4633 mem_24g_device1_ch_number
+0x4634 mem_24g_device1_config_ch_once
+0x4635 mem_24g_device2_last_ch
+0x4636 mem_24g_device2_ch_number
+0x4637 mem_24g_device2_config_ch_once
+0x4638 mem_24g_led_status
+0x4639 mem_24g_bind_mode_continue
+0x463a mem_tx_power_temp
+0x463b mem_24g_mode_B_S_switch
+0x463c mem_24g_mode_B_S_switch_init
+0x463d mem_24g_mode_B_S_switch_cnt
+0x463f mem_24g_mode_B_S_switch_exit
+0x4640 mem_24g_B_S_time_slice
+0x4641 mem_24g_B_S_mode_switch_disable
+0x4642 mem_24g_bind_device_living
+0x4643 mem_24g_transmitter_addr
+0x4647 mem_24g_device1_addr
+0x464b mem_24g_device2_addr
+0x464f mem_rssi_noise_avg
+0x4650 mem_rssi_noise_index
+0x4651 mem_rssi_noise_self_avg
+0x4652 mem_rssi_noise_device1_avg
+0x4653 mem_rssi_noise_device2_avg
+0x4654 mem_rssi_noise_self_index
+0x4655 mem_rssi_noise_device1_index
+0x4656 mem_rssi_noise_device2_index
+0x4657 mem_rssi_noise_buffer_ptr
+0x4659 mem_rssi_noise_self_buffer_ptr
+0x465b mem_rssi_noise_device1_buffer_ptr
+0x465d mem_rssi_noise_device2_buffer_ptr
+0x465f mem_car_le_24g_tx_pair_mode
+0x4660 mem_car_le_24g_ch_count
+0x4662 mem_car_24g_addr_other
+0x4666 mem_car_24g_tx_payload_temp
+0x4672 mem_car_24g_rx_payload_temp
+0x467e mem_car_24g_loselink_count
+0x467f mem_car_ble_connted_flag
+0x4680 mem_car_full_control_remote_lap
+0x4684 mem_100ms_adv_control_timer
+0x4686 mem_100ms_factory_test_control_timer
+0x4688 mem_pwm_flag
+0x4689 mem_period_count
+0x468a mem_timer_count
+0x468b mem_car_motor_gpio_num
+0x468c mem_car_motor_gpio_map
+0x468c mem_car_motor_left_gpio
+0x468d mem_car_motor_right_gpio
+0x468e mem_car_motor_front_gpio
+0x468f mem_car_motor_back_gpio
+0x4690 mem_car_pwm_gpio
+0x4691 mem_otp_lot_xy_temp
+0x4697 mem_f_flag
+0x4698 mem_b_flag
+0x4699 mem_adv_control_start_flag
+0x469a mem_stop_4w1_flag
+0x469b mem_factory_control_flag
+0x469c mem_car_gpio_control_mode
+0x469d mem_car_le_queue_each_size
+0x469e mem_car_le_queue_length
+0x469f mem_car_le_queue_current_num
+0x46a0 mem_car_le_queue_read_ptr
+0x46a1 mem_car_le_queue_write_ptr
+0x46a2 mem_car_le_queue_ele
+0x46f2 mem_car_ble_write_data
+0x46fd mem_car_ble_att_list
+0x488d mem_otp_sys_cfg_temp
+0x48c9 mem_ad_indexTable
+0x48d9 mem_ad_stepsizeTable
+0x4a3d mem_ad_state_valpred
+0x4a41 mem_ad_state_index
+0x4a45 mem_ad_in_numSamples
+0x4a46 mem_ad_in_ptr
+0x4a48 mem_ad_out_ptr
+0x4a4a mem_ad_sign
+0x4a4b mem_ad_delta
+0x4a4c mem_ad_step
+0x4a50 mem_ad_valpred
+0x4a54 mem_ad_index
+0x4a58 mem_ad_vpdiff
+0x4a5c mem_ad_inputbuffer
+0x4a60 mem_ad_bufferstep
+0x465f mem_dg_kb_bind_flag
+0x4660 mem_dg_kb_data_sta_data
+0x4668 mem_dg_kb_data_last_data
+0x4670 mem_dg_kb_multikey_sta_data
+0x4673 mem_dg_kb_multikey_last_data
+0x4676 mem_dg_kb_system_sta_data
+0x4679 mem_dg_kb_system_last_data
+0x467c mem_dg_kb_blank_data_enable
+0x467d mem_dg_kb_mul_blank_data_enable
+0x467e mem_dg_kb_system_crtl_blank_data_enable
+0x467f mem_dg_ms_blank_data_enable
+0x4680 mem_dg_sys_config
+0x4681 mem_dg_usb_vid_pid
+0x468a mem_dg_usb_tx_interval
+0x468b mem_dg_usb_device_name
+0x46ab mem_dg_kb_bind_success
+0x46ac mem_dg_pc_sleep_flag
+0x46ad mem_dg_24g_tx_power_default
+0x46ae mem_dg_kb_bit_consumer_blank_data_enable
+0x46af mem_dg_kb_bit_consumer_sta_data
+0x46b3 mem_dg_kb_bit_consumer_last_data
+0x46b7 mem_dg_device_version
+0x45ea mem_rssi_hex_received
+0x45eb mem_24g_pair_sm
+0x45ec mem_24g_pair_no_ack
+0x45ed mem_24g_pair_timeout_init
+0x45ef mem_24g_pair_timeout
+0x45f1 mem_24g_pair_count
+0x45f3 mem_24g_reconn_timeout_init
+0x45f5 mem_24g_reconn_timeout
+0x45f7 mem_24g_reconn_count
+0x45f9 mem_24g_reconn_type
+0x45fa mem_24g_fast_conn_enable
+0x45fb mem_24g_fast_conn_addr
+0x45ff mem_24g_receiver_addr
+0x4603 mem_24g_fast_conn_temp_ch
+0x4604 mem_24g_receiver_temp_ch
+0x4605 mem_24g_device_temp_ch
+0x4606 mem_rssi_signal_index
+0x4607 mem_rssi_signal_buf_ptr
+0x4609 mem_cb_24g_transmit_data
+0x460b mem_cb_24g_search_receiver
+0x460d mem_cb_24g_lpm_before
+0x460f mem_cb_24g_transmit_short_sleep
+0x4611 mem_cb_24g_transmit_long_sleep
+0x4613 mem_24g_conn_sm
+0x4614 mem_24g_ensure
+0x4615 mem_24g_txfail_cnt
+0x4617 mem_24g_attempt_fail_flag
+0x4618 mem_24g_retry
+0x4619 mem_24g_abort_pac
+0x461a mem_24g_max_retry
+0x461b mem_24g_device_addr
+0x461f mem_24g_short_sleep_set
+0x4622 mem_24g_long_sleep_set
+0x462a mem_24g_long_sleep_set1
+0x462e mem_24g_pac_index
+0x462f mem_24g_transmit_by_interrupt
+0x4630 mem_24g_transmit_by_interrupt_exit_count
+0x4632 mem_24g_transmit_by_interrupt_exit_count_init
+0x4634 mem_24g_long_sleep_param_update_timer_init
+0x4636 mem_24g_long_sleep_param_update_timer
+0x4638 mem_24g_fast_hop_count
+0x4639 mem_24g_retransmit
+0x463b mem_rssi_avg_received
+0x463c mem_power_ctrl_level
+0x463d mem_power_ctrl_pac_succ_cnt
+0x463e mem_power_ctrl_pac_succ_cnt_init
+0x463f mem_rssi_dis_min_24g
+0x4640 mem_rssi_dis_max_24g
+0x4641 mem_rssi_hex_received_max_value
+0x4642 mem_rssi_dis_min_ble
+0x4643 mem_rssi_dis_max_ble
+0x4644 mem_device_vdd_calculate_set
+0x4644 mem_device_vdd_full_vol
+0x4646 mem_device_vdd_empty_vol
+0x4648 mem_device_vdd_low_vol
+0x464a mem_device_vdd_now_vol
+0x464c mem_adc_channel_gpio
+0x464d mem_adc_low_volatage_led_timer_count
+0x464e mem_device_adc_last_low_voltage_flag
+0x464f mem_device_discovery_timeout
+0x4651 mem_device_24g_pair_timeout_init
+0x4653 mem_device_direct_timeout
+0x4654 mem_device_24g_reconn_timeout_init
+0x4655 mem_device_24g_pair_tx_power
+0x4656 mem_device_normal_tx_power
+0x4657 mem_rssi_dis_min_24g_init
+0x4658 mem_rssi_dis_max_24g_init
+0x4659 mem_rssi_hex_received_max_value_init
+0x465a mem_rssi_dis_min_ble_init
+0x465b mem_rssi_dis_max_ble_init
+0x465c mem_mouse_key
+0x465d mem_mouse_x
+0x465f mem_mouse_y
+0x4661 mem_mouse_z
+0x4662 mem_mouse_tz
+0x4663 mem_mouse_xy_h
+0x4664 mem_mouse_key_last
+0x4665 mem_device_switch_gpio
+0x4666 mem_device_reuse_2ice_gpio
+0x4667 mem_sensor_motion_gpio
+0x4668 mem_whee_a_data_gpio
+0x4669 mem_whee_b_data_gpio
+0x466a mem_wheel_tb_old_pinlevel
+0x466b mem_wheel_tb_new_pinlevel
+0x466c mem_wheel_tog
+0x466d mem_mouse_tz_data
+0x466e mem_mwheel_b_old_pinlevel
+0x466f mem_mwheel_b_new_pinlevel
+0x4670 mem_mwheel_tog
+0x4671 mem_mouse_z_data
+0x4672 mem_mouse_wheel_trigger
+0x4673 mem_mouse_wheel_trigger_timer
+0x4674 mem_wire_usb_interval
+0x4675 mem_usb_addr
+0x4676 mem_usb_vdd_status
+0x4677 mem_usb_keyboard_flag
+0x4678 mem_device_information_start
+0x4678 mem_device_flag
+0x4679 mem_device1_type
+0x467a mem_device1_addr
+0x4680 mem_device1_locall_addr
+0x4686 mem_device2_type
+0x4687 mem_device2_addr
+0x468d mem_device2_locall_addr
+0x4693 mem_device3_type
+0x4694 mem_device3_addr
+0x469a mem_device3_locall_addr
+0x46a0 mem_store_flag
+0x46a2 mem_mouse_dpi
+0x46a3 mem_device_24g_addr
+0x46a7 mem_random_addr_increase_count
+0x46a9 mem_keyboard_24g_fn_lock
+0x46aa mem_keyboard_bt1_fn_lock
+0x46ab mem_keyboard_bt2_fn_lock
+0x46ac mem_keyboard_bt3_fn_lock
+0x46ad mem_keyboard_usb_fn_lock
+0x46ae mem_keyboard_bt1_computer_system
+0x46af mem_keyboard_bt2_computer_system
+0x46b0 mem_keyboard_bt3_computer_system
+0x46b1 mem_backlight_on_flag
+0x46b2 mem_backlight_on_type
+0x46b3 mem_backlight_on_level
+0x46b4 mem_backlight_breath_speed
+0x46b5 mem_mouse_retention
+0x46f8 mem_device_information_end
+0x46f8 mem_device_compare_addr
+0x46fe mem_flash_base
+0x4701 mem_write_flash_head_temp
+0x4705 mem_store_information_delay_timer
+0x4706 mem_store_information_delay_timer_init
+0x4707 mem_device_search_dongle_interval
+0x4708 mem_device_search_dongle_ch
+0x4709 mem_device_search_dongle_count
+0x470a mem_device_search_dongle_action
+0x470b mem_24g_enter_lpm_timer
+0x470c mem_mouse_24g_enter_lpm_enable
+0x470d mem_keyboard_led_status
+0x470e mem_mouse_flag
+0x4716 mem_device_number
+0x4717 mem_device_flag_temp
+0x4718 mem_device_otp_flag_temp
+0x4719 mem_device_fast_direct_timeout
+0x471a mem_device_24g_power_on_fast_conn_timer
+0x471c mem_device_24g_search_dongle_time_init
+0x471e mem_device_no_data_timeout
+0x4720 mem_device_direct_timer
+0x4721 mem_customer_key_press
+0x472b mem_customer_key
+0x472c mem_customer_data_trigger
+0x472d mem_customer_data_trigger_last
+0x472e mem_device_set_analog_bit_set
+0x4731 mem_bt_discovery_count
+0x4732 mem_select_device_count
+0x4733 mem_mouse_commbination_key
+0x4734 mem_select_device_button_statue
+0x4735 mem_commbination_key_statue
+0x4736 mem_combination_ui_button_count
+0x4737 mem_24g_shutdown_flag
+0x4738 mem_24g_long_sleep_set_level
+0x4739 mem_tx_power_factory_param
+0x473b mem_mouse_24g_long_sleep_flag
+0x473c mem_mouse_long_mult_count
+0x473d mem_mouse_long_mult_flag
+0x473e mem_mouse_current_mult_timer
+0x473f mem_reconn_times
+0x4740 mem_reconn_times_init
+0x4741 mem_device_no_data_timer
+0x4743 mem_mouse_rssi_signal_buf
+0x474b mem_btclk_sensor
+0x474f mem_device_fast_conn_flag
+0x4750 mem_device_discovery_timer
+0x4752 mem_device_need_soft_reset
+0x4753 mem_device_le_bb_connected_flag
+0x4754 mem_device_le_reconnect_flag
+0x4755 mem_device_send_secutiry_request_timer
+0x4756 mem_device_le_lap_temp
+0x4759 mem_le_adv_ind
+0x475c mem_le_adv_direct_ind
+0x475f mem_le_adv_swift_pair
+0x4773 mem_le_data_len
+0x4774 mem_le_keyboard_handle
+0x4776 mem_le_multimedia_handle
+0x4778 mem_le_systemctrl_handle
+0x477a mem_le_battery_level_handle
+0x477c mem_le_battery_level_percentage
+0x477d mem_le_battery_level_updata_timer_init
+0x477f mem_le_battery_level_updata_timer
+0x4781 mem_le_conn_param_reject
+0x4782 mem_le_tx_buffer0_omemalloc
+0x47c2 mem_le_tx_buffer1_omemalloc
+0x4802 mem_le_tx_buffer2_omemalloc
+0x4842 mem_le_tx_buffer3_omemalloc
+0x4882 mem_le_connect_status_flag
+0x4883 mem_le_start_encrypt_timer
+0x4884 mem_device_addr_temp
+0x488b mem_lpm_mult_init
+0x488c mem_qdec_set_flag
+0x488d mem_power_on_flag
+0x488e mem_keyboard_flag
+0x4896 mem_keyboard_switch_count_temp
+0x4897 mem_keyboard_switch_device_to_g24
+0x489a mem_keyboard_switch_device_to_bt1
+0x489d mem_keyboard_switch_device_to_bt2
+0x48a0 mem_keyboard_switch_device_to_bt3
+0x48a3 mem_keyboard_switch_device_to_usb
+0x48a6 mem_keyboard_switch_device_flag
+0x48a7 mem_keyboard_switch_g24_enable
+0x48a8 mem_keyboard_switch_bt_enable
+0x48a9 mem_keyboard_switch_g24_press_timer
+0x48aa mem_keyboard_switch_bt_press_timer
+0x48ab mem_keyboard_vdd_full_vol
+0x48ad mem_keyboard_vdd_empty_vol
+0x48af mem_keyboard_vdd_low_vol
+0x48b1 mem_keyboard_power_type
+0x48b2 mem_rgb_pwm_conf
+0x48b8 mem_rgb_pwm_breathe_flag
+0x48b9 mem_rgb_on_color_temp
+0x48ba mem_rgb_on_color
+0x48c1 mem_pwm_lpm_mode_flag
+0x48c2 mem_keyboard_rgb_on_timer
+0x48c4 mem_ui_check_timer_setup
+0x48c8 mem_customize_timer_setup
+0x48ca mem_backlight_breathe_type
+0x48cb mem_keyboard_le_lap_temp
+0x48ce mem_keyboard_le_change_vid_pid_flag
+0x48cf mem_keybaord_le_pnp_vid_source
+0x48d0 mem_keyboard_le_vid
+0x48d2 mem_keyboard_le_pid
+0x48d4 mem_keyboard_le_product_version
+0x48d6 mem_keyboard_le_hid_map
+0x48d8 mem_keyboard_blob_response_consumer_customize
+0x48ee mem_le_search_service_uuid
+0x48fe mem_le_connect_ios_mac_flag
+0x48ff mem_le_search_mac_uuid
+0x4901 mem_le_search_mac_manu_name
+0x490a mem_keybord_appearance
+0x490c mem_keyboard_le_send_conn_param_update
+0x490d mem_keyboard_le_send_conn_param_update_timer
+0x490e mem_le_start_auto_reco_timer
+0x490f mem_keyboard_pb_button_gpio
+0x4910 mem_mcu_stb_gpio
+0x4911 mem_mcu_clk_gpio
+0x4912 mem_mcu_rstb_gpio
+0x4913 mem_keyboard_num_led_gpio
+0x4914 mem_keyboard_caps_led_gpio
+0x4915 mem_keyboard_scroll_led_gpio
+0x4916 mem_keyboard_power_led_gpio
+0x4917 mem_keyboard_low_voltage_alarm_gpio
+0x4918 mem_keyboard_24g_led_gpio
+0x4919 mem_keyboard_bt1_led_gpio
+0x491a mem_keyboard_bt2_led_gpio
+0x491b mem_keyboard_bt3_led_gpio
+0x491c mem_keyboard_led_r_gpio
+0x491d mem_keyboard_led_g_gpio
+0x491e mem_keyboard_led_b_gpio
+0x491f mem_key_row_gpio
+0x4927 mem_key_col_gpio
+0x493c mem_key_excol_gpio
+0x4948 mem_kb_row_ptr
+0x494a mem_kb_col_ptr
+0x494c mem_kb_excol_ptr
+0x494e mem_keyscan_value_current
+0x4963 mem_keyscan_value_check
+0x4978 mem_keyscan_value_old
+0x498d mem_keyscan_exmcu_value
+0x4998 mem_keyscan_value_ptr
+0x499a mem_keyscan_exmcu_value_ptr
+0x499c mem_keyscan_value_temp
+0x499d mem_keyscan_col_loop_count
+0x499e mem_keyscan_exmcu_wait_wake_count
+0x49a0 mem_same_keyvalue_timerout_flag
+0x49a1 mem_same_keyvalue_timer_init
+0x49a3 mem_same_keyvalue_timer
+0x49a5 mem_keyboard_current_col_press_key_count
+0x49a6 mem_keyboard_all_press_key_count
+0x49a7 mem_keyboard_same_row_press_key_count
+0x49a8 mem_keyboard_ghost_flag
+0x49a9 mem_keyboard_data_change_flag
+0x49aa mem_keyboard_keyvalue_temp
+0x49ab mem_keyboard_press_flag_temp
+0x49ac mem_keyboard_keyvalue_bit_loop_count
+0x49ad mem_keyboard_keyvalue_buffer
+0x49b7 mem_keboard_n_key_rollover_send_flag
+0x49b8 mem_keyboard_n_key_rollover_data
+0x49c7 mem_keyboard_keyvalue_map
+0x4a6f mem_keyboard_tx_data
+0x4a79 mem_keyboard_data_send_flag
+0x4a7a mem_keyboard_fn_flag
+0x4a7b mem_keyboard_control_key_flag
+0x4a7c mem_keyboard_alt_flag
+0x4a7d mem_keyboard_shift_flag
+0x4a7e mem_keyboard_bt_button_flag
+0x4a7f mem_keyboard_pairing_type
+0x4a80 mem_24g_repeat_send_flag
+0x4a81 mem_keyboard_led_status_get
+0x4a82 mem_keyboard_led_status_get_timer
+0x4a83 mem_keyboard_led_status_get_timer_last
+0x4a84 mem_keyboard_fn_esc_f1_f12
+0x4a84 mem_keyboard_fn_first
+0x4a85 mem_keyboard_fn_esc
+0x4a86 mem_keyboard_fn_f1
+0x4a87 mem_keyboard_fn_f2
+0x4a88 mem_keyboard_fn_f3
+0x4a89 mem_keyboard_fn_f4
+0x4a8a mem_keyboard_fn_f5
+0x4a8b mem_keyboard_fn_f6
+0x4a8c mem_keyboard_fn_f7
+0x4a8d mem_keyboard_fn_f8
+0x4a8e mem_keyboard_fn_f9
+0x4a8f mem_keyboard_fn_f10
+0x4a90 mem_keyboard_fn_f11
+0x4a91 mem_keyboard_fn_f12
+0x4a92 mem_keyboard_fn_del
+0x4a93 mem_keyboard_fn_lock_flag
+0x4a94 mem_keyboard_fn_lock_keyvalue
+0x4a95 mem_keyboard_commbination_key_bt
+0x4a97 mem_keyboard_commbination_key_24g
+0x4a99 mem_keyboard_commbination_fast_conn_bt
+0x4a9b mem_keyboard_commbination_press_type
+0x4a9c mem_keyboard_commbination_key_step
+0x4a9d mem_keyboard_commbination_control_key_value
+0x4a9e mem_keyboard_commbination_standard_key_value
+0x4a9f mem_keyboard_commbination_control_key_delay_release_timer
+0x4aa0 mem_keyboard_consumer_key_status
+0x4aa1 mem_kb_computer_system
+0x4aa2 mem_keyboard_device_info_store_flag
+0x4aa3 mem_otp_store_device_info_flag
+0x4aa4 mem_otp_store_system_flag
+0x4aa5 mem_otp_read_retention_memory
+0x4abd mem_otp_read_retention_offset
+0x4abf mem_otp_read_retention_max_size
+0x4ac1 mem_keyboard_device_poweron_timer_init
+0x4ac2 mem_keyboard_device_poweron_timer
+0x4ac3 mem_keyboard_num_caps_scoll_led_on_timer
+0x4ac5 mem_keyboard_mode_led_on_timer
+0x4ac6 mem_keyboard_adc_low_volatage_led_timer_count
+0x4ac7 mem_adc_low_volatage_led_blink_timer
+0x4ac9 mem_keyboard_low_volatage_led_flag
+0x4aca mem_keyboard_low_volatage_led_blink_count
+0x4acb mem_keyboard_low_volatage_led_blink_new_data_enable
+0x4acc mem_keyboard_pair_led_flag
+0x4acd mem_keyboard_pair_led_blink_count
+0x4ace mem_usb_vdd_status_current
+0x4acf mem_usb_vdd_status_last
+0x4ad0 mem_usb_wait_updata_timer
+0x4ad1 mem_keyboard_usb_vid_pid
+0x4ada mem_keyboard_se_flag_init
+0x4adc mem_keyscan_exmcu_value_new
+0x4ae8 mem_keyboard_le_table
+0x4b97 mem_keyboard_end
+0x488d mem_mouse_param_config
+0x488d mem_lbutton_gpio
+0x488e mem_mbutton_gpio
+0x488f mem_rbutton_gpio
+0x4890 mem_bk_button_gpio
+0x4891 mem_fw_button_gpio
+0x4892 mem_dpi_button_gpio
+0x4893 mem_mouse_sensor_sclk_gpio
+0x4894 mem_mouse_sensor_sdio_gpio
+0x4895 mem_select_sensor_angle_gpio
+0x4896 mem_sensor_angle_default
+0x4897 mem_sensor_angle_gnd
+0x4898 mem_sensor_angle_vin
+0x4899 mem_config_sensor_dpi
+0x489a mem_whee_ta_data_gpio
+0x489b mem_whee_tb_data_gpio
+0x489c mem_matrix_public_gpio
+0x489d mem_config_select_device_button_gpio
+0x489e mem_customer_key_gpio
+0x489f mem_firebutton_gpio
+0x48a0 mem_dpi_another_button_gpio
+0x48a1 mem_mouse_logo_led_gpio
+0x48a2 mem_mouse_1io2led_multi_24gled
+0x48a3 mem_mouse_1io2led_multi_bt1led
+0x48a4 mem_mouse_1io2led_multi_bt2led
+0x48a5 mem_mouse_low_voltage_alarm_gpio
+0x48a6 mem_mouse_dpi_gpio
+0x48a7 mem_mouse_param_config_end
+0x48a7 mem_device_temp_gpio
+0x48a8 mem_mouse_multi_led_blink_enable
+0x48a9 mem_mouse_multi_led_type
+0x48aa mem_mouse_multi_led_state
+0x48ab mem_mouse_multi_led_blink_type//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+0x48ac mem_mouse_le_reconn_blink_limit
+0x48ad mem_mouse_multi_led_powon_timer_init//power on time
+0x48ae mem_mouse_multi_led_powon_timer
+0x48af mem_mouse_multi_24gled_blink_timer_init//24gled blink time
+0x48b0 mem_mouse_multi_le_discovery_blink_timer_init//le discovery blink time
+0x48b1 mem_mouse_multi_le_reconn_blink_timer_init//le reconn blink time
+0x48b2 mem_mouse_dpi_led_blink_timer_init//dpi blink time
+0x48b3 mem_mouse_multi_led_blink_timer
+0x48b4 mem_mouse_low_led_blink_timer//low blink time
+0x48b5 mem_mouse_low_led_blink_half_timer
+0x48b6 mem_mouse_multi_24gled_blink_count_init//24g count
+0x48b7 mem_mouse_multi_le_reconn_blink_count_init//le reconn count
+0x48b8 mem_mouse_multi_led_blink_count
+0x48b9 mem_mouse_multi_lowled_blink_count_init//low count
+0x48ba mem_mouse_multi_low_led_blink_count
+0x48bb mem_mouse_logo_led_on_time_init
+0x48bd mem_mouse_dpi_led_delay_count
+0x48be mem_mouse_dpi_led_delay_count_init
+0x48bf mem_mouse_24g_fast_hop_count_2ms
+0x48c0 mem_mouse_24g_short_sleep_set_4ms
+0x48c3 mem_mouse_24g_long_sleep_set_4ms
+0x48c6 mem_mouse_24g_short_sleep_set_8ms
+0x48c9 mem_mouse_24g_long_sleep_set_8ms
+0x48cc mem_mouse_24g_tsniff
+0x48d0 mem_mouse_24g_tsniff_2ms
+0x48d4 mem_mouse_24g_tsniff_4ms
+0x48d8 mem_mouse_24g_tsniff_8ms
+0x48dc mem_mouse_24g_short_sleep_set_init
+0x48df mem_mouse_24g_tx_count
+0x48e0 mem_mouse_24g_tx_time_last
+0x48e6 mem_mouse_24g_tx_time_last_delt
+0x48ea mem_mouse_24g_tx_time_sum
+0x48ef mem_mouse_24g_tx_time_sum_count
+0x48f0 mem_mouse_24g_tx_time_offset
+0x48f1 mem_mouse_24g_sleep_miss
+0x48f2 mem_mouse_24g_sleep_time_temp
+0x48f6 mem_mouse_24g_sleep_miss_temp
+0x48fa mem_mouse_sleep_deal_type
+0x48fb mem_sensor_id1
+0x48fc mem_sensor_id2
+0x48fd mem_mouse_move_flag
+0x48fe mem_mouse_asm_flag
+0x48ff mem_mouse_x_pre
+0x4901 mem_mouse_y_pre
+0x4903 mem_mouse_data_xtemp
+0x4904 mem_mouse_data_ytemp
+0x4905 mem_mouse_dpi_seting
+0x4905 mem_320x_dpi_0
+0x4906 mem_320x_dpi_1
+0x4907 mem_320x_dpi_2
+0x4908 mem_320x_dpi_3
+0x4909 mem_3212_dpi_0
+0x490a mem_3212_dpi_1
+0x490b mem_3212_dpi_2
+0x490c mem_3212_dpi_3
+0x490d mem_ka8g2_dpi_0
+0x490e mem_ka8g2_dpi_1
+0x490f mem_ka8g2_dpi_2
+0x4910 mem_ka8g2_dpi_3
+0x4911 mem_sensor_s201_dpi
+0x4911 mem_sensor_s201_dpi_0
+0x4912 mem_sensor_s201_dpi_1
+0x4913 mem_sensor_s201_dpi_2
+0x4914 mem_sensor_s201_dpi_3
+0x4915 mem_sensor_s201_dpi_4
+0x4916 mem_mouse_cpi_count
+0x4917 mem_mouse_dpi_button_state
+0x4918 mem_mouse_dpi_long_press_flag
+0x4919 mem_sensor_3212_init
+0x4923 mem_sensor_3204_init
+0x492d mem_sensor_3205_init
+0x4937 mem_sensor_32xx_init
+0x4951 mem_sensor_32xx_init_1
+0x4973 mem_sensor_8650_init
+0x4991 mem_sensor_ka8ul_init
+0x49af mem_sensor_8009_init
+0x49bf mem_sensor_ka8g2_init
+0x49d1 mem_sensor_p6520_init
+0x49dd mem_sensor_ka5857_init
+0x49e9 mem_sensor_poweron_init
+0x49f1 mem_sensor_ka8g2_poweron_init
+0x49f9 mem_mouse_clear_sensor_data_flag
+0x49fa mem_config_sensor_type
+0x49fb mem_config_sensor_angle
+0x49fc mem_bluetooth_125hz_cnt
+0x49fd mem_customer_key_press_init
+0x4a07 mem_mouse_lkey_press_status
+0x4a08 mem_mouse_rkey_press_status
+0x4a09 mem_mouse_mkey_press_status
+0x4a0a mem_mouse_bkkey_press_status
+0x4a0b mem_mouse_fwkey_press_status
+0x4a0c mem_mouse_dpikey_press_status
+0x4a0d mem_mouse_pbkey_press_status
+0x4a0e mem_mouse_customerkey_press_status
+0x4a0f mem_mouse_key_temp
+0x4a10 mem_mouse_key_status
+0x4a11 mem_mouse_matrix_key_cow_count
+0x4a12 mem_mouse_matrix_key_row_count
+0x4a13 mem_mouse_ghost_flag
+0x4a14 mem_fire_key_status
+0x4a15 mem_fire_key_delay
+0x4a19 mem_fire_key_flag
+0x4a1a mem_dpi_another_press_status
+0x4a1b mem_dpi_another_button_state
+0x4a1c mem_dpi_another_button_down_enable
+0x4a1d mem_mouse_key_temp_patch
+0x4a1e mem_le_name_patch_len
+0x4a1f mem_le_name_patch
+0x4a32 mem_device_flag_last
+0x4a33 mem_device_flag_value
+0x4a34 mem_mouse_le_addr1_last
+0x4a3a mem_mouse_le_addr1_temp
+0x4a40 mem_mouse_le_locall_addr1_last
+0x4a46 mem_mouse_le_locall_addr1_temp
+0x4a4c mem_mouse_le_addr2_last
+0x4a52 mem_mouse_le_addr2_temp
+0x4a58 mem_mouse_le_locall_addr2_last
+0x4a5e mem_mouse_le_locall_addr2_temp
+0x4a64 mem_mouse_dpi_last
+0x4a65 mem_mouse_dpi_temp
+0x4a66 mem_mouse_otp_dpi_value
+0x4a67 mem_mouse_24g_addr_last
+0x4a6b mem_mouse_24g_addr_temp
+0x4a6f mem_random_addr_increase_count_last
+0x4a71 mem_random_addr_increase_count_temp
+0x4a73 mem_otp_offset_le_addr2
+0x4a75 mem_otp_offset_le_addr2_end
+0x4a77 mem_otp_offset_le_locall_addr2
+0x4a79 mem_otp_offset_le_locall_addr2_end
+0x4a7b mem_otp_offset_dpi
+0x4a7d mem_otp_offset_dpi_end
+0x4a7f mem_otp_offset_device_flag
+0x4a81 mem_otp_offset_device_flag_end
+0x4a83 mem_otp_offset_24g_addr
+0x4a85 mem_otp_offset_24g_addr_end
+0x4a87 mem_otp_offset_le_addr1
+0x4a89 mem_otp_offset_le_addr1_end
+0x4a8b mem_otp_offset_le_locall_addr1
+0x4a8d mem_otp_offset_le_locall_addr1_end
+0x4a8f mem_otp_offset_le_addr_increase_count
+0x4a91 mem_otp_offset_le_addr_increase_count_end
+0x4a93 mem_otp_offset_app_initflag
+0x4a95 mem_usb_tx_interval_retention
+0x4a96 mem_usb_vid_pid_retention
+0x4a9f mem_usb_device_name_retention
+0x4abd mem_mouse_commbination_key_bt
+0x4abe mem_mouse_commbination_key_24g
+0x4abf mem_mouse_commbination_key_dpi
+0x4ac0 mem_mouse_commbination_key_select_device
+0x4ac1 mem_mouse_commbination_dpi_timer
+0x4ac2 mem_mouse_commbination_select_device_timer
+0x4ac3 mem_mouse_commbination_key_count
+0x4ac4 mem_mouse_pair_flag
+0x4644 mem_remote_lpm_gpio_config_flag
+0x4648 mem_remote_lpm_gpio_config_io_temp
+0x4649 mem_24g_tx_led_map
+0x464a mem_24g_led_count
+0x464b mem_24g_lpm_timer_count
+0x464d mem_24g_lpm_enter_count
+0x464f mem_remote_otp_lot_xy_temp
+0x4655 mem_remote_full_control_remote_lap
+0x4659 mem_remote_car_key_conf0
+0x4659 mem_remote_car_key_conf0_pin
+0x465a mem_remote_car_key_conf1
+0x465a mem_remote_car_key_conf1_pin
+0x465b mem_remote_car_key_conf2
+0x465b mem_remote_car_key_conf2_pin
+0x465c mem_remote_car_key_conf3
+0x465c mem_remote_car_key_conf3_pin
+0x465d mem_remote_car_key_conf4
+0x465d mem_remote_car_key_conf4_pin
+0x465e mem_remote_car_key_conf5
+0x465e mem_remote_car_key_conf5_pin
+0x465f mem_remote_car_key_conf6
+0x465f mem_remote_car_key_conf6_pin
+0x4660 mem_remote_le_24g_recv_ack_flag
+0x4661 mem_key_public_gpio
+0x4662 mem_remote_mult_key
+0x4663 mem_remote_le_24g_ch_count
+0x4665 mem_le_24g_tx_send_flag
+0x4666 mem_remote_le_24g_tx_pair_mode
+0x4667 mem_remote_24g_addr_other
+0x466b mem_remote_24g_tx_payload_temp
+0x4677 mem_remote_24g_rx_payload_temp
+0x4508 mem_hci_uart_tx_gpio
+0x4509 mem_hci_uart_rx_gpio
+0x450a mem_hci_uart_rts_gpio
+0x450b mem_hci_uart_cts_gpio
+0x450c mem_hci_pwm_12mhz_gpio
+0x4508 mem_soft_version_num
+0x450a mem_module_wake_up_gpio
+0x450b mem_module_state_gpio
+0x450c mem_module_connect_state_gpio
+0x450d mem_current_packet_length
+0x450f mem_module_state
+0x4510 mem_module_mcu_wake_pin
+0x4511 mem_module_mcu_wake_delay_us
+0x4515 mem_module_le_lpm_mult
+0x4516 mem_module_bluetooth_stauts_by_command
+0x4517 mem_module_uart_rx_buffer
+0x4519 mem_module_uart_rx_buffer_end
+0x451b mem_module_uart_tx_buffer
+0x451d mem_module_uart_tx_buffer_end
+0x451f mem_module_uarta_baud_rate
+0x4521 mem_module_read_vdd_flag
+0x4522 mem_module_read_vdd_count
+0x4523 mem_module_vdd_quotient
+0x4524 mem_module_vdd_remainder
+0x4525 mem_module_ble_data_uart_max_length
+0x4526 mem_module_flag
+0x4528 mem_module_hci_notify_len
+0x4529 mem_module_hci_notify_handle
+0x452b mem_module_hci_nofiy_addr
+0x452d mem_module_hci_notify_type
+0x452e mem_le_conn_flag
+0x452f mem_module_le_att_list
+0x4787 mem_module_le_att_list_end
+0x4787 mem_module_nv_data
+0x4787 mem_module_nv_data0
+0x47a9 mem_module_nv_data1
+0x47cb mem_module_nv_data2
+0x47ed mem_module_nv_data3
+0x480f mem_module_nv_data4
+0x4831 mem_module_nv_data_end
+0x4508 mem_xmalloc_rec_start
+0x4508 mem_rec_le_att_list
+0x49c7 mem_rec_led_style
+0x49c7 mem_rec_led_style_type
+0x49c8 mem_rec_led_style_blink_count
+0x49c9 mem_rec_led_style_gpio
+0x49ca mem_rec_led_style_on_time
+0x49cc mem_rec_led_style_off_time
+0x49ce mem_rec_led_style_on_callback
+0x49d0 mem_rec_led_style_off_callback
+0x49d2 mem_rec_led2_style
+0x49d2 mem_rec_led2_style_type
+0x49d3 mem_rec_led2_style_blink_count
+0x49d4 mem_rec_led2_style_gpio
+0x49d5 mem_rec_led2_style_on_time
+0x49d7 mem_rec_led2_style_off_time
+0x49d9 mem_rec_led2_style_on_callback
+0x49db mem_rec_led2_style_off_callback
+0x49dd mem_rec_le_pair_led_style
+0x49dd mem_rec_le_pair_led_style_type
+0x49de mem_rec_le_pair_led_style_blink_count
+0x49df mem_rec_le_pair_led_style_gpio
+0x49e0 mem_rec_le_pair_led_style_on_time
+0x49e2 mem_rec_le_pair_led_style_off_time
+0x49e4 mem_rec_le_reconn_led_style
+0x49e4 mem_rec_le_reconn_led_style_type
+0x49e5 mem_rec_le_reconn_led_style_blink_count
+0x49e6 mem_rec_le_reconn_led_style_gpio
+0x49e7 mem_rec_le_reconn_led_style_on_time
+0x49e9 mem_rec_le_reconn_led_style_off_time
+0x49eb mem_rec_adc_low_led_style
+0x49eb mem_rec_adc_low_led_style_type
+0x49ec mem_rec_adc_low_led_style_blink_count
+0x49ed mem_rec_adc_low_led_style_gpio
+0x49ee mem_rec_adc_low_led_style_on_time
+0x49f0 mem_rec_adc_low_led_style_off_time
+0x49f2 mem_rec_ui_timer_btclk
+0x49f6 mem_rec_ui_timer_count
+0x49f7 mem_rec_cb_timer
+0x49f9 mem_rec_tscan_timer
+0x49fa mem_rec_tscan_timeout
+0x49fb mem_rec_tscan_row_nums
+0x49fc mem_rec_tscan_col_nums
+0x49fd mem_rec_tscan_col_gpio_ptr
+0x49ff mem_rec_tscan_row_scanned
+0x4a00 mem_rec_tscan_col_scanned
+0x4a01 mem_rec_tscan_record_row
+0x4a02 mem_rec_tscan_record_col
+0x4a03 mem_rec_tscan_row_gpio
+0x4a0d mem_rec_tscan_col_gpio
+0x4a17 mem_rec_tscan_sequence
+0x4a18 mem_rec_tscan_gpio_nums
+0x4a19 mem_rec_tscan_row_scan_loop_count
+0x4a1a mem_rec_key_state
+0x4a1a mem_rec_tscan_gndkey_state
+0x4a1b mem_rec_tscan_key_state
+0x4a1c mem_rec_tscan_record_temp
+0x4a1e mem_rec_tscan_key_need_send_flag
+0x4a1f mem_rec_tscan_current_key_num
+0x4a20 mem_rec_gpio_wakeup_source
+0x4a21 mem_rec_tscan_gndkey_record_temp
+0x4a22 mem_rec_tscan_gndkey_need_send_flag
+0x4a23 mem_rec_tscan_key_nums_list
+0x4a4b mem_rec_tscan_gndkey_nums_list
+0x4a55 mem_rec_tscan_key_num_bit
+0x4a5d mem_rec_tscan_combin_key_num_bit
+0x4a65 mem_rec_tscan_current_gpio_ptr
+0x4a67 mem_rec_tscan_record_now
+0x4a69 mem_rec_combin_key_timeout
+0x4a6a mem_rec_combin_key_timer
+0x4a6b mem_rec_gpio_bit_first
+0x4a6c mem_rec_gpio_bit_second
+0x4a6d mem_rec_gpio_bit_check
+0x4a6e mem_rec_gpio_for_wake_pullup
+0x4a6f mem_rec_keypad_type
+0x4a70 mem_rec_key_keyboard_value_list
+0x4b10 mem_rec_key_consumer_value_list
+0x4b40 mem_rec_key_mouse_value_list
+0x4b80 mem_rec_key_nec_value_list
+0x4bb0 mem_rec_key_press_le
+0x4bb0 mem_rec_key1_press_le
+0x4bb3 mem_rec_key2_press_le
+0x4bb6 mem_rec_key3_press_le
+0x4bb9 mem_rec_key4_press_le
+0x4bbc mem_rec_key5_press_le
+0x4bbf mem_rec_key6_press_le
+0x4bc2 mem_rec_key7_press_le
+0x4bc5 mem_rec_key8_press_le
+0x4bc8 mem_rec_key9_press_le
+0x4bcb mem_rec_key10_press_le
+0x4bce mem_rec_key11_press_le
+0x4bd1 mem_rec_key12_press_le
+0x4bd4 mem_rec_key13_press_le
+0x4bd7 mem_rec_key14_press_le
+0x4bda mem_rec_key15_press_le
+0x4bdd mem_rec_key16_press_le
+0x4be0 mem_rec_key17_press_le
+0x4be3 mem_rec_key18_press_le
+0x4be6 mem_rec_key19_press_le
+0x4be9 mem_rec_key20_press_le
+0x4bec mem_rec_key21_press_le
+0x4bef mem_rec_key_release_le
+0x4bf2 mem_rec_key_map
+0x4c07 mem_rec_gnd_key_offset
+0x4c08 mem_rec_keypad_fun
+0x4c09 mem_rec_le_enable_notify
+0x4c0a mem_rec_le_data_len
+0x4c0b mem_rec_le_connect_state
+0x4c0c mem_rec_report_id1_handle
+0x4c0e mem_rec_report_id2_handle
+0x4c10 mem_rec_report_id3_handle
+0x4c12 mem_rec_report_id4_handle
+0x4c14 mem_rec_queue_each_size
+0x4c15 mem_rec_queue_length
+0x4c16 mem_rec_queue_curr_num
+0x4c17 mem_rec_queue_read_ptr
+0x4c18 mem_rec_queue_write_ptr
+0x4c19 mem_rec_queue_ele
+0x4c39 mem_rec_ad_indexTable1
+0x4c49 mem_rec_ad_stepsizeTable1
+0x4dad mem_rec_ad_state_valpred1
+0x4db1 mem_rec_ad_state_index1
+0x4db5 mem_rec_ad_in_numSamples1
+0x4db6 mem_rec_ad_in_ptr1
+0x4db8 mem_rec_ad_out_ptr1
+0x4dba mem_rec_ad_sign1
+0x4dbb mem_rec_ad_delta1
+0x4dbc mem_rec_ad_step1
+0x4dc0 mem_rec_ad_valpred1
+0x4dc4 mem_rec_ad_index1
+0x4dc8 mem_rec_ad_vpdiff1
+0x4dcc mem_rec_ad_inputbuffer1
+0x4dd0 mem_rec_ad_bufferstep1
+0x4dd1 mem_rec_ad_val1
+0x4dd5 mem_rec_ad_outputbuffer1
+0x4dd9 mem_rec_ad_diff1
+0x4ddd mem_rec_voice_enable
+0x4dde mem_rec_voice_notify
+0x4df2 mem_rec_adc_dma_rptr
+0x4df4 mem_rec_voice_notify_apk_handle
+0x4df6 mem_rec_voice_notify_box_handle
+0x4df8 mem_rec_control_notify_apk_handle
+0x4dfa mem_rec_control_notify_box_handle
+0x4dfc mem_rec_white_list_num
+0x4dfd mem_rec_le_scan_filter_policy
+0x4dfe mem_rec_white_list_flash_write_head
+0x4e02 mem_rec_white_list
+0x4e32 mem_rec_le_req_type
+0x4e33 mem_rec_nec_send_gpio
+0x4e34 mem_rec_nec_receive_gpio
+0x4e35 mem_rec_ota_write_index
+0x4e37 mem_rec_ota_write_length
+0x4e3b mem_rec_ota_write_data_addr
+0x4e3d mem_rec_ota_write_flash_addr
+0x4e40 mem_rec_ota_write_flash_addr_start
+0x4e43 mem_rec_ota_total_sum
+0x4e47 mem_rec_ota_update_flash_mode
+0x4e48 mem_rec_ota_version
+0x4e4a mem_rec_ota_buck_size
+0x4e4c mem_rec_ota_packet_max_len
+0x4e4e mem_rec_ota_work_mode
+0x4e4f mem_rec_ota_notify_handle
+0x4e51 mem_rec_ota_notify_opcode
+0x4e52 mem_rec_ota_notify_result
+0x4e53 mem_rec_ota_notify_data
+0x4e5c mem_rec_ota_le_conn_update_param
+0x4e5c mem_rec_ota_le_interval_min
+0x4e5e mem_rec_ota_le_interval_max
+0x4e60 mem_rec_ota_le_latency
+0x4e62 mem_rec_ota_le_timeout
+0x4e64 mem_rec_ota_reset_timeout
+0x4e65 mem_rec_ota_le_conn_param_update
+0x4e66 mem_rec_ota_enable
+0x4e67 mem_rec_le_packet_size
+0x4e68 mem_rec_ota_flash_base_addr
+0x4e6b mem_rec_ota_flash_offset_addr
+0x4e6e mem_rec_queue_ota_count
+0x4e70 mem_rec_ota_queue_size
+0x4e72 mem_rec_code_a_flash_addr
+0x4e75 mem_rec_code_b_flash_addr
+0x4e78 mem_xmalloc_rec_end
+0x4508 mem_ble_shutter_enable_notify
+0x4509 mem_ble_shutter_reconn_adv_interval
+0x450b mem_ble_shutter_discovery_adv_interval
+0x450d mem_ble_shutter_reconn_timeout
+0x450f mem_ble_shutter_reconn_timer
+0x4511 mem_ble_shutter_reconn_blink_on_time
+0x4513 mem_ble_shutter_reconn_blink_off_time
+0x4515 mem_ble_shutter_discovery_blink_on_time
+0x4517 mem_ble_shutter_discovery_blink_off_time
+0x4519 mem_ble_shutter_interval_min
+0x451b mem_ble_shutter_interval_max
+0x451d mem_ble_shutter_latency
+0x451f mem_ble_shutter_timeout
+0x4521 mem_ble_shutter_interval_min_new
+0x4523 mem_ble_shutter_interval_max_new
+0x4525 mem_ble_shutter_latency_new
+0x4527 mem_ble_shutter_timeout_new
+0x4529 mem_ble_shutter_discovery_timeout
+0x452b mem_ble_shutter_connect_timeout
+0x452d mem_shutter_sleep_timeout
+0x452f mem_shutter_sleep_timer
+0x4531 mem_shutter_hard_soft_switch_case
+0x4532 mem_shutter_soft_switch_button_gpio
+0x4533 mem_shutter_soft_switch_power_state
+0x4534 mem_shutter_soft_switch_poweron_time
+0x4535 mem_shutter_soft_switch_poweroff_time
+0x4536 mem_shutter_soft_switch_poweron_callback_function
+0x4538 mem_shutter_soft_switch_poweroff_callback_function
+0x453a mem_shutter_keyscan
+0x453a mem_shutter_key_num
+0x453b mem_cb_shutter_keycan
+0x453d mem_shutter_key_conf0
+0x453e mem_shutter_key_conf1
+0x453f mem_key0_press
+0x4544 mem_key1_press
+0x4549 mem_key2_press
+0x454e mem_key0_release
+0x4553 mem_key1_release
+0x4558 mem_key2_release
+0x455d mem_ble_data_buffer1
+0x4562 mem_ble_data_buffer2
+0x4567 mem_ble_data_buffer3
+0x456c mem_ble_data_buffer4
+0x4571 mem_ble_data_buffer5
+0x4576 mem_ble_data_buffer6
+0x457b mem_ble_data_buffer7
+0x4580 mem_ble_data_buffer8
+0x4585 mem_ble_data_buffer9_58
+0x45b7 mem_queue_each_size
+0x45b8 mem_queue_length
+0x45b9 mem_queue_curr_num
+0x45ba mem_queue_read_ptr
+0x45bb mem_queue_write_ptr
+0x45bc mem_queue_ele
+0x45dc mem_shutter_nv_data
+0x4686 mem_shutter_led_struct_app_led
+0x4686 mem_shutter_led_struct_app_led_type
+0x4687 mem_shutter_led_struct_app_led_blink_count
+0x4688 mem_shutter_led_struct_app_led_gpio
+0x4689 mem_shutter_led_struct_app_led_on_time
+0x468b mem_shutter_led_struct_app_led_off_time
+0x468d mem_shutter_led_struct_app_led_on_callback
+0x468f mem_shutter_led_struct_app_led_off_callback
+0x4691 mem_shutter_power_off_led_style
+0x4691 mem_shutter_power_off_led_style_type
+0x4692 mem_shutter_power_off_led_style_blink_count
+0x4693 mem_shutter_power_off_led_style_gpio
+0x4694 mem_shutter_power_off_led_style_on_time
+0x4696 mem_shutter_power_off_led_style_off_time
+0x4698 mem_shutter_power_off_led_style_on_callback
+0x469a mem_shutter_power_off_led_style_off_callback
+0x469c mem_shutter_soft_swtich_botton_down
+0x469d mem_shutter_soft_swtich_led_struct_temp
+0x46a8 mem_shutter_power_off_timeout
+0x46a9 mem_shutter_power_off_timer
+0x46aa mem_shutter_key_conf0_temp
+0x46ac mem_shutter_led_struct_app_led_gpio_temp
+0x46ad mem_shutter_hard_soft_switch_case_temp
+0x46ae mem_shutter_soft_switch_button_gpio_temp
+0x46af mem_shutter_soft_switch_first_power_on
+0x46b0 mem_shutter_dy_conf
+0x46b1 mem_shutter_1s_timer
+0x46b2 mem_shutter_timer_625us
+0x46b4 mem_rf_init_data_new
+0x46bf mem_key_value_xmem
+0x46c1 mem_shutter_le_hid_map
+0x47a7 mem_shutter_le_uuid_sup
+0x4943 mem_shutter_le_map_len_android
+0x4945 mem_shutter_le_map_len_ios
+0x4947 mem_dy_le_search_service_uuid
+0x4957 mem_iphone_flag
+0x4958 mem_send_data_delay
+0x4959 mem_key_send_clk
+0x495d mem_shutter_key_state0
+0x4967 mem_shutter_key_state1
+0x4971 mem_shutter_key_state2
+0x497b mem_shutter_key_state3
+0x4985 mem_shutter_key_state4
+0x498f mem_shutter_key_state5
+0x4999 mem_shutter_key_state6
+0x49a3 mem_shutter_key_state7
+0x49ad mem_shutter_key_state8
+0x49b7 mem_dy_key0_press
+0x49c1 mem_dy_key1_press
+0x49cb mem_dy_key2_press
+0x49d5 mem_dy_key3_press
+0x49df mem_dy_key4_press
+0x49e9 mem_dy_key5_press
+0x49f3 mem_dy_key6_press
+0x49fd mem_dy_key7_press
+0x4a07 mem_dy_key8_press
+0x4a11 mem_key0_release_new
+0x4a20 mem_key1_release_new
+0x4a2f mem_key2_release_new
+0x4a3e mem_key3_release_new
+0x4a4d mem_key4_release_new
+0x4a5c mem_key5_release_new
+0x4a6b mem_key6_release_new
+0x4a7a mem_key7_release_new
+0x4a89 mem_key8_release_new
+0x4a98 mem_key0_long_press
+0x4a9b mem_key1_long_press
+0x4a9e mem_key2_long_press
+0x4aa1 mem_key3_long_press
+0x4aa4 mem_key4_long_press
+0x4aa7 mem_key5_long_press
+0x4aaa mem_key6_long_press
+0x4aad mem_key7_long_press
+0x4ab0 mem_key8_long_press
+0x4ab3 mem_key0_long_release
+0x4ab6 mem_key1_long_release
+0x4ab9 mem_key2_long_release
+0x4abc mem_key3_long_release
+0x4abf mem_key4_long_release
+0x4ac2 mem_key5_long_release
+0x4ac5 mem_key6_long_release
+0x4ac8 mem_key7_long_release
+0x4acb mem_key8_long_release
+0x4ace mem_combine_key0
+0x4ad0 mem_combine_key1
+0x4ad2 mem_combine_key2
+0x4ad4 mem_combine_key3
+0x4ad6 mem_combine_key4
+0x4ad8 mem_combine_key5
+0x4ada mem_combine_key_state0
+0x4adc mem_combine_key0_press
+0x4ae6 mem_combine_key1_press
+0x4af0 mem_combine_key2_press
+0x4afa mem_combine_key3_press
+0x4b04 mem_combine_key4_press
+0x4b0e mem_combine_key5_press
+0x4b18 mem_combine_key_release
+0x4b22 mem_shutter_move_data
+0x4b26 mem_key0_press_i
+0x4b30 mem_key1_press_i
+0x4b3a mem_key2_press_i
+0x4b44 mem_key3_press_i
+0x4b4e mem_key4_press_i
+0x4b58 mem_key5_press_i
+0x4b62 mem_key6_press_i
+0x4b6c mem_key7_press_i
+0x4b76 mem_key0_release_new_i
+0x4b85 mem_key1_release_new_i
+0x4b94 mem_key2_release_new_i
+0x4ba3 mem_key3_release_new_i
+0x4bb2 mem_key4_release_new_i
+0x4bc1 mem_key5_release_new_i
+0x4bd0 mem_key6_release_new_i
+0x4bdf mem_key7_release_new_i
+0x4bee mem_key8_release_new_i
+0x4bfd mem_key0_long_press_i
+0x4c00 mem_key1_long_press_i
+0x4c03 mem_key2_long_press_i
+0x4c06 mem_key3_long_press_i
+0x4c09 mem_key4_long_press_i
+0x4c0c mem_key5_long_press_i
+0x4c0f mem_key6_long_press_i
+0x4c12 mem_key7_long_press_i
+0x4c15 mem_key8_long_press_i
+0x4c18 mem_key0_long_release_i
+0x4c1b mem_key1_long_release_i
+0x4c1e mem_key2_long_release_i
+0x4c21 mem_key3_long_release_i
+0x4c24 mem_key4_long_release_i
+0x4c27 mem_key5_long_release_i
+0x4c2a mem_key6_long_release_i
+0x4c2d mem_key7_long_release_i
+0x4c30 mem_key8_long_release_i
+0x4c33 mem_key3_release_new_t
+0x4c3d mem_key3_release_new_i_t
+0x4c47 mem_key3_press_count
+0x4c48 mem_shutter_like_timeout
+0x4c49 mem_shutter_key_pressed
+0x4c4a mem_shutter_combine_key_release
+0x4c4b mem_shutter_mousekey_value_list
+0x4e71 mem_shutter_back_count
+0x4e72 mem_shutter_le_conned
+0x4e73 mem_move_config
+0x4e73 mem_shutter_iphone_beyond_x_count
+0x4e74 mem_shutter_iphone_beyond_y_count
+0x4e75 mem_shutter_move_data_x
+0x4e77 mem_shutter_move_data_y
+0x4e79 mem_last_shutter_le_iphone_flag
+0x4e7a mem_move_config_end
+0x4e7a mem_shutter_back_count_cache
+0x4e7b mem_shutter_iphone_beyond_x_cache
+0x4e7c mem_shutter_iphone_beyond_y_cache
+0x4e7d mem_shutter_iphone_move_mid
+0x4e87 mem_shutter_long_key_released_flag
+0x4e88 mem_shutter_move_mid_timer
+0x4e89 mem_shutter_pairing_success
+0x4e8a mem_combine_key_release_value
+0x4e8c mem_last_press_key_value
+0x4e8d mem_shutter_first_move
+0x4e8e mem_move_mode_set
+0x4e8f mem_move_mode_key_index
+0x4e90 mem_move_mode_trigger_enable
+0x4e91 mem_shutter_android_move_mid
+0x4e96 mem_shutter_iphone_up_mid
+0x4ea0 mem_shutter_iphone_like_mid
+0x4eaa mem_shutter_key_num_conf
+0x4eab mem_shutter_dy_key_conf
+0x4eb4 mem_le_dy_adv_data
+0x4ebf mem_le_dy_scan_data
+0x4ecb mem_ble_shutter_dy_interval_min_android
+0x4ed3 mem_ble_shutter_dy_interval_min_ios
+0x4edb mem_shutter_ble_discovery_time_conf
+0x4ee3 mem_queue_dy_each_size
+0x4ee5 mem_shutter_led_on_light_dark_led_conf
+0x4eec mem_shutter_led_off_light_dark_led_conf
+0x4ef3 mem_shutter_reconn_blink_on_time_conf
+0x4ef7 mem_shutter_discovery_blink_on_time_conf
+0x4efb mem_shutter_efuse_start_offset
+0x4efd mem_shutter_efuse_end_offset
+0x4eff mem_initial_move_conf
+0x4eff mem_android_initial_move_x
+0x4f01 mem_android_initial_move_y
+0x4f03 mem_iphone_initial_move_x
+0x4f05 mem_iphone_initial_move_y
+0x4f07 mem_otp_move_config
+0x4f07 mem_otp_shutter_move_data_x
+0x4f09 mem_otp_shutter_move_data_y
+0x4f0b mem_otp_last_shutter_le_iphone_flag
+0x4f0c mem_otp_move_config_end
+0x4f0c mem_otp_write_offset_addr
+0x4f0e mem_otp_read_offset_addr
+0x4f10 mem_otp_read_ios_android_addr
+0x4f12 mem_shutter_le_pairing_handle
+0x4f14 mem_shutter_temp_count
+0x4f16 mem_shutter_first_read_flag
+0x4f17 mem_shutter_valid_data_flag
+0x4f18 mem_shutter_volume_timer
+0x4f19 mem_shutter_link_timer
+0x4f1a mem_shutter_link_data
+0x4f22 mem_shutter_link_data_i
+0x4f2a mem_shutter_link_loop_flag
+0x4f2b mem_shutter_dy_le_enc_timer
+0x4f2c mem_shutter_end
+
+(//mem_system_clk
+12 SYSTEM_CLK_12M
+24 SYSTEM_CLK_24M
+)
+(//bluetooth tx power
+0x00 TX_POWER_0DB
+0x03 TX_POWER_3DB
+0x05 TX_POWER_5DB
+0x06 TX_POWER_6DB
+0x07 TX_POWER_7DB
+0x0a TX_POWER_10DB
+
+0x83 TX_POWER_F3DB
+0x85 TX_POWER_F5DB
+0x8a TX_POWER_F10DB
+0x94 TX_POWER_F20DB
+0x9e TX_POWER_F30DB
+0xaa TX_POWER_FACTORY
+)
+(
+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
+	
+	
+	
+0x18 coffset_le_ch
+0x19 coffset_le_hop
+0x1a coffset_le_event_cnt
+0x1c coffset_le_supervision_timer
+0x20 coffset_le_instant
+0x22 coffset_le_channels
+0x23 coffset_le_op
+0x24 coffset_le_access
+0x28 coffset_le_crcinit
+0x2b coffset_le_window_size
+0x2c coffset_le_slave_latency
+0x2e coffset_le_slave_superto
+0x30 coffset_le_channel_map
+0x35 coffset_le_rx_phy
+0x36 coffset_le_tx_phy
+0x37 coffset_le_new_map
+0x37 coffset_le_new_m2s_phy
+0x38 coffset_le_new_s2m_phy
+0x37 coffest_le_new_transmitwindowsize
+0x38 coffest_le_new_transmitwindowoffset
+0x3a coffest_le_new_conninterval
+0x3c coffest_le_new_connslavelatency
+0x3e coffest_le_new_connsupervisiontimeout
+0x40 coffset_le_sk
+0x50 coffset_le_peer_sca
+0x53 coffset_le_transmit_window
+	
+83 context_size
+1 context_num
+)
+(
+0 lpm_flag_wake
+1 lpm_flag_loadcode
+)
+(
+0x0a00 param_snooze_setup_orig
+0x5353 param_snooze_ahead_orig
+
+
+
+0x0e43 param_tx_setup
+0x0600 param_rf_setup
+0x0600 param_conn_access 
+0x03bb param_clke_cal
+0x0500 param_pll_setup		// 120 is minimum
+0x0d00 param_rx_setup	// 114us before sync
+2000 param_dpll_start_delay
+3750 param_rt_rthalfslot
+
+480 param_clke_cal_le_1m	//preamble(1B) & access address(4B) time (1+4)*8*1 * 12
+288 	param_clke_cal_le_2m	//preamble(2B) & access address(4B) time (1+4)*8*1 * 12
+282 param_clke_cal_le_coded	//preamble(80us) & access address(256us)-312.5us(0.5slot)
+
+110 param_lpm_fix
+10 param_lpo_extra
+200 param_lpm_adjmax
+
+-1 param_hibernate_clks
+
+1000 param_chgpump_delay_100us
+6000 param_chgpump_delay_500us
+12000 param_chgpump_delay_1ms
+
+
+0x000a04 param_lmp_version
+0x12e9 param_lmp_subversion
+0x0012 param_tisw
+0x0012 param_tpsw
+0x1000 param_tisi
+0x0800 param_tpsi
+39 param_fcomp_div
+2 param_fcomp_mul
+
+)
+(
+0        always        
+1        true          
+2        positive      
+3        timeout       
+4        init_adpcm
+5        zero          
+6        crc_failed    
+7        enable_white  
+8        enable_parity 
+9        enable_crc    
+10       enable_hec    
+11       decode_fec1   
+12       decode_fec2   
+13       decode_fec0   
+14       encrypt       
+15       crc16       
+16       swfine	
+20       rqst_freq    
+21       recalc        
+22       init_encrypt  
+23       mhalfbnd    
+24       sync          
+25       user10    
+26       kc_p_activate  
+27       encode_fec1   
+28       encode_fec2   
+29       encode_fec0   
+30       packet_end    
+32       is_tx         
+33       is_rx         
+34       halfslot     
+35       oneslot      
+36       mslotbnd     
+37       expire       
+38       meet         
+39       tx_clear     
+40       user         
+41       master        
+42       rxon         
+43       wake           
+44       user2        
+45       match         
+46       attempt        
+47       user3          
+48       clknt         
+49	   user7 	
+50       synchronize   
+51       lpo_edge  
+52       blank         
+53       modone          
+55       aes_ready	
+56       encode_fec3   
+57       dewhiten_code_calc   
+58       lr_s2en       
+60	   ble_coded_info	//1:s2 0:s8
+63       never         
+)
+default flag = always
+(
+0        mark   
+1        type   
+2        temp   
+3        contu  
+3	 contru	
+3	 contwu	
+4        am_addr      
+5        contw        
+6        contr        
+7        queue    
+8        debug    
+9        access   
+10       contus   
+11       timeup        
+12       pwindow       
+13       fhs_parity    
+14       white_init    
+15       crc24_init        
+16       contue    
+17       rega          
+18       regb          
+19       regc          
+20       regab         
+21       radio_ctrl   
+
+23       freq_index   
+24       regd    
+25       clkn              
+26       clke              
+27       stop_watch		
+28       fhs_misc   
+29       fhs_class  
+30       fhs0   
+31       fhs1   
+32       bt_adr 
+33       bt_clk 
+34       clkn_bt  
+35       clkn_rt  
+36       freq_mode
+37       xin   
+38       N_tx_slot 
+39 	   auxcnt
+40       clke_bt  
+41       clke_rt  
+42       branch_addr	
+43       rege         
+44       lap
+45       uap
+46       nap         
+47       regext		
+48       alarm             
+49       lpo_time          
+50       kc_ls             
+51       kc_ms             
+52       g1l               
+53		mask3ff		
+54       aes_ctrl		
+55       regf			
+56       regext_index   
+57	     loopcnt
+58      stack			
+59       stack_ptr		
+61         pc 
+62       null              
+63       pdata 
+)
+default reg = pdata
+(
+0 regidx_data
+4 regidx_key
+8 regidx_xor
+12 regidx_result
+)
+(
+0 TXGFSK
+1 PSK
+2 PSK3M
+3 RESET
+)
+(
+0 bucket
+1 rxf
+2 back
+3 mod
+)
+default dest = bucket
+(
+1 txf
+3 demod
+)
+default source = 0
+(
+5  mark_loopback
+9  mark_context
+13 mark_lpm_mult_enable
+14 mark_usb_first_resp
+15 mark_old_packet
+16 mark_adv
+34 mark_otp_write
+35 mark_isstr
+36 mark_loadcode
+37 mark_ext_patch
+38 mark_24g
+39 mark_24g_rxmode
+40 mark_eeprom_size
+41 mark_ble_tx_md
+42 mark_ble_rx_md
+43 mark_otp_encrypt
+44 mark_temp
+45 mark_ble_2M
+46 mark_ble_lr_s8
+47 mark_ble_lr
+48 mark_ble_crc_fail
+50 mark_ble_encryption
+51 mark_first_packet
+)
+(
+1 reload_type_otp
+2 reload_type_spi
+3 reload_type_iic
+)
+(
+0 le_adv_interval_timer
+2 le_scan_interval_timer
+9 key_scan_timer
+7 smp_pairing_timer
+11  ui_led_blink  
+
+8 G24_TIMER_NODATA
+6 G24_TIMER_KB_BIT_CONSUMER_BLANK
+13 G24_TIMER_MS_BLANK
+12 G24_TIMER_KB_MUL_BLANK
+10 G24_TIMER_KB_SYS_CRTL_BLANK
+14 G24_TIMER_KB_BLANK
+
+1 USB_TIMER_NAK
+15 USB_TIMER_WAKEUP
+)
+(
+
+27 hci_cmd_le_create_conn
+29 hci_cmd_le_disconn
+30 hci_cmd_le_att_req
+)
+(
+0 mode_le
+1 mode_master
+)
+(
+0 state_inconn
+1 state_insniff
+)
+(
+3 op_disconn
+)
+(
+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
+12 wake_lock_l2cap_tx
+13 wake_lock_l2cap_rx
+14 wake_lock_ipc_c512bt
+15 wake_lock_ipc_bt2c51
+
+)
+(//mem_fcomp_div
+0x18 XTAL_24M
+0x10 XTAL_16M
+)
+( //verion
+6 BLUETOOTH_CORE_SPECIFICATION_4_0
+7 BLUETOOTH_CORE_SPECIFICATION_4_1
+8 BLUETOOTH_CORE_SPECIFICATION_4_2
+9 BLUETOOTH_CORE_SPECIFICATION_5_0
+10 BLUETOOTH_CORE_SPECIFICATION_5_1
+)
+(
+0x050e COMPANY_ID_YICHIP
+)
+(
+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
+)
+(
+0 bt_disabled
+1 ble_disabled
+2 module_disable
+)
+(//mem_le_T_IFS
+150 PARAM_T_IFS_150US
+20000 PARAM_20MS_INIT
+-11 PARAM_SYNC_TIME_DIFFERENCE
+40 PARAM_CODED_C1_TERM1_TIME_40US
+1666 PARAM_WINDOWN_SIZE
+//T_IFS = 150-modem(CRC time)
+15000 param_sifs
+)
+(
+0 DEFAULT_STATES
+1 IPHONE_LOST_LTK
+2 MODULE_LOST_LTK
+3 LTK_NOT_LOST
+)
+	(    
+	0x01 ERROR_UNKNOWN_HCI_COMMAND
+	0x02 ERROR_NO_CONNECTION
+	0x03 ERROR_HARDWARE_FAILURE
+	0x04 ERROR_PAGE_TIMEOUT
+	0x05 ERROR_AUTHENTICATION_FAILURE
+	0x06 ERROR_KEY_MISSING
+	0x07 ERROR_MEMORY_FULL
+	0x08 ERROR_CONNECTION_TIMEOUT
+	0x09 ERROR_MAX_CONNECTIONS
+	0x0A ERROR_MAX_SCO_CONNECTIONS
+	0x0B ERROR_MAX_ACL_CONNECTIONS
+	0x0C ERROR_COMMAND_DISALLOWED
+	0x0D ERROR_HOST_REJECT_LIMITED_RESOURCES
+	0x0E ERROR_HOST_REJECT_SECURITY_REASONS
+	0x0F ERROR_HOST_REJECT_REMOTE_IS_ONLY_PERSONAL
+	0x10 ERROR_HOST_TIMEOUT
+	0x11 ERROR_UNSUPPORTED_FEATURE_OR_PARAMETER_VALUE
+	0x12 ERROR_INVALID_HCI_COMMAND_PARAMETERS
+	0x13 ERROR_REMOTE_USER_TERMINATED_CONNECTION
+	0x14 ERROR_REMOTE_LOW_RESOURCES
+	0x15 ERROR_REMOTE_POWERING_OFF
+	0x16 ERROR_CONNECTION_TERMINATED_BY_LOCAL_HOST
+	0x17 ERROR_REPEATED_ATTEMPTS
+	0x18 ERROR_PAIRING_NOT_ALLOWED
+	0x19 ERROR_UNKNOWN_LMP_PDU
+	0x1A ERROR_UNSUPPORTED_REMOTE_FEATURE
+	0x1B ERROR_SCO_OFFSET_REJECTED
+	0x1C ERROR_SCO_INTERVAL_REJECTED
+	0x1D ERROR_SCO_AIR_MODE_REJECTED
+	0x1E ERROR_INVALID_LMP_PARAMETER
+	0x1F ERROR_UNSPECIFIED_ERROR
+	0x20 ERROR_UNSUPPORTED_LMP_PARAMETER_VALUE
+	0x21 ERROR_ROLE_CHANGE_NOT_ALLOWD
+	0x22 ERROR_LMP_RESPONSE_TIMEOUT
+	0x23 ERROR_ERROR_TRANSACTION_COLLISION
+	0x24 ERROR_LMP_PDU_NOT_ALLOWED
+	0x25 ERROR_ENCRYPTION_MODE_NOT_ACCEPTABLE
+	0x26 ERROR_UNIT_KEY_USED
+	0x27 ERROR_QOS_NOT_SUPPORTED
+	0x28 ERROR_INSTANT_PASSED
+	0x29 ERROR_PAIRING_W_UNIT_KEY_NOT_SUPPORTED
+	0x2a ERROR_DIFFERENT_TRANSACTION_COLLISION
+	0x2c ERROR_QOS_UNACCEPTABLE_PARAMETER
+	0x2d ERROR_QOS_REJECTED
+	0x2e ERROR_CHANNEL_CLASSIFICATION_NOT_SUPPORTED
+	0x2f ERROR_INSUFFICIENT_SECURITY
+	0x30 ERROR_PARAMETER_OUT_OF_MANDATORY_PANGE
+	0x32 ERROR_ROLE_SWITCH_PENDING
+	0x34 ERROR_RESERVED_SLOT_VIOLATION
+	0x35 ERROR_ROLE_SWITCH_FAILED
+	0x36 ERROR_EXTENDED_INQUIRY_RESPONSE_TOO_LARGE
+	0x37 ERROR_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST
+	0x38 ERROR_HOST_BUSY_PAIRING
+	0x3d ERROR_MIC_FAILURE
+	)
+	(
+	0X20 SPACE	
+	)
+	(
+	0x0004 LE_L2CAP_CID_ATT
+	0x0005 LE_L2CAP_CID_SIGNAL
+	0x0006 LE_L2CAP_CID_SMP
+	)
+	(
+	0 LE_ADDR_TYPE_PUBLIC
+	1 LE_ADDR_TYPE_RANDOM
+	)
+	(
+	7 LE_RECEIVER_ADDR_BIT
+	6 LE_SENDER_ADDR_BIT
+	)
+	(
+	0x00 LE_SCAN_TYPE_PASSIVE //no SCAN_REQ shall be sent
+	0x01 LE_SCAN_TYPE_ACTIVE
+	)
+	(
+	0x00 LE_SCAN_DISABLE
+	0x01 LE_SCAN_ENABLE
+	0x0101 LE_ACTIVE_SCAN_ENABLE
+	)
+	(
+	0x01 UUID_SIZE_16BIT
+	0x02 UUID_SIZE_128BIT
+	)
+(
+3 lestate_got_first_packet
+4 lestate_encryption
+5 lestate_update_param
+6 lestate_update_map
+7 lestate_update_phy
+)
+(
+0 lemode_idle
+1 lemode_slave
+3 lemode_master
+5 lemode_2m
+6 lemode_lr
+7 lemode_lr_s8
+
+0x20 mode_2m
+0x40 mode_lr_s2
+0xc0 mode_lr_s8
+
+)
+(
+0 llid0
+1 llid1
+2 nesn
+3 sn
+4 md
+5 wak
+6 txdat
+)
+(
+0x00 LLID_RESERVED
+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_INITATOR_LTK_BIT
+1 LE_INITATOR_IRK_BIT
+2 LE_INITATOR_CSRK_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
+)
+(
+39 LE_CCM_DIRECTIONBIT
+)
+(
+36 BR_CCM_0_LENGTH_CONTINUATION
+37 BR_CCM_DIRECTIONBIT
+)
+(
+96000 TIMER_SMP_PAIRING_TIMEOUT //30S
+)
+(
+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
+5 FLAG_LE_SEND_START_ENC_REQ
+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
+//bit6:DEAL baseband packet
+6 BIT_BLE_DEAL_BB_PACKET
+)
+(
+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
+0x16	GAP_ADTYPE_SERVICE_DATA
+0x2a	GAP_ADTYPE_MESH_MESSAGE
+0x2b 	GAP_ADTYPE_MESH_BEACON
+0xff	GAP_ADTYPE_MANUFACTURER_SPECIFIC
+)
+(
+0 ADV_IND
+1 ADV_DIRECT_IND
+2 ADV_NONCONN_IND
+3 SCAN_REQ
+3 AUX_SCAN_REQ
+4 SCAN_RSP
+5 CONNECT_REQ
+5 AUX_CONNECT_REQ
+6 ADV_SCAN_IND
+)
+(
+0 BIT_ADV_CHANNEL_MAP_37
+1 BIT_ADV_CHANNEL_MAP_38
+2 BIT_ADV_CHANNEL_MAP_39
+)
+(
+0xa0 param_le_sca
+)
+(//bit of mem_le_l2cap_att_states
+0 BLE_L2CAP_SEND_INDICATION_PACKET
+0 BLE_L2CAP_RECV_CONFIRMATION_PACKET
+1 BLE_L2CAP_DEAL_WITH_CONTINUE_PACKET
+)
+(//bit map of att handle
+14 BIT_OF_ATT_HANDLE_READ_AUTHENTICATED
+15 BIT_OF_ATT_HANDLE_WRITE_AUTHENTICATED
+)
+(
+0 BIT_CHARACTERISTIC_BROADCAST
+1 BIT_CHARACTERISTIC_READ
+2 BIT_CHARACTERISTIC_WRITE_WITHOUT_RESPONSE
+3 BIT_CHARACTERISTIC_WRITE
+4 BIT_CHARACTERISTIC_NOTIFY
+5 BIT_CHARACTERISTIC_INDICATE
+6 BIT_CHARACTERISTIC_SIGNED_WRITE
+7 BIT_CHARACTERISTIC_EXTENDED_PROPERTIES
+)
+(
+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
+)
+(
+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
+)
+(
+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
+)
+(
+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
+0X2A50 UUID_CHRCTR_PNP_ID
+)
+(
+23 ATT_DEFAULT_MTU 
+)
+(
+0x12 L2CAP_CONNECTION_PARAMETER_UPDATE_REQUEST
+0x13 L2CAP_CONNECTION_PARAMETER_UPDATE_RESPONSE
+)
+(
+0x0000 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
+0x0001 BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_REJECTED
+)
+(
+0x00 LE_PAIRING_MODE_NONE
+0x01 LE_PAIRING_MODE_LAGACY_JUSTWORK
+0x02 LE_PAIRING_MODE_LAGACY_PASSKEY
+0x04 LE_PAIRING_MODE_LAGACY_PASSKEY_RES_INPUT
+0x81 LE_PAIRING_MODE_SECURE_CONNECT_JUSTWORK
+0x82 LE_PAIRING_MODE_SECURE_CONNECT_NUMERIC
+0x83 LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY
+0x84 LE_PAIRING_MODE_SECURE_CONNECT_PASSKEY_RES_INPUT
+
+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 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_WAIT_STK_GENERATION
+5 FLAG_LE_PAIRING_RECEIVE_PAIRING_CONFIRM
+6 FLAG_LE_PAIRING_SEND_PAIRING_CONFIRM
+7 FLAG_LE_PAIRING_RECEIVE_PAIRING_RANDOM
+8 FLAG_LE_PAIRING_SEND_PAIRING_RANDOM
+9 FLAG_LE_PAIRING_AFTER_AUTH
+10 FLAG_LE_PAIRING_SEND_START_ENC_RSP
+11 FLAG_LE_PARING_SEND_ENC_INFORMATION
+12 FLAG_LE_PARING_SEND_MASTER_IDENTIFICATION 
+13 FLAG_LE_PARING_SEND_INDENTITY_INFORMATION
+0xff FLAG_LE_PAIRING_END
+)
+(
+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
+)
+(// 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
+)
+(
+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
+)
+(
+0x00 LL_CONNECTION_UPDATE_IND
+0x01 LL_CHANNEL_MAP_IND
+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
+0x14 LL_LENGTH_REQ
+0x15 LL_LENGTH_RSP
+0x16 LL_PHY_REQ
+0x17 LL_PHY_RSP
+0x18 LL_PHY_UPDATE_IND
+0x19 LL_MIN_USED_CHANNELS_IND
+0x1A LL_CTE_REQ
+0x1B LL_CTE_RSP
+0x1C LL_PERIODIC_SYNC_IND
+0x1D LL_CLOCK_ACCURACY_REQ
+0x1E LL_CLOCK_ACCURACY_RSP
+0x1F LL_CIS_REQ
+0x20 LL_CIS_RSP
+0x21 LL_CIS_IND
+0x22 LL_CIS_TERMINATE_IND
+0x23 LL_POWER_CONTROL_REQ
+0x24 LL_POWER_CONTROL_RSP
+0x25 LL_POWER_CHANGE_IND
+)
+(//bit map of mem_le_ll_feature
+//LL_FEATURE_REQ
+0 BIT_LL_FEATURE_LE_ENCRYPTION
+1 BIT_LL_FEATURE_CONNECTION_PARAMETERS_REQUEST_PROCEDURE
+2 BIT_LL_FEATURE_EXTENDED_REJECT_INDICATION
+3 BIT_LL_FEATURE_SLAVE_INITIATED_FEATURES_EXCHANGE
+4 BIT_LL_FEATURE_LE_PING
+5 BIT_LL_FEATURE_LE_DATA_PACKET_LENGTH_EXTENSION
+6 BIT_LL_FEATURE_LL_PRIVACY
+7 BIT_LL_FEATURE_EXTENDED_SCANNER_FILTER_POLICIES
+8 BIT_LL_FEATURE_LE_2M_PHY
+9 BIT_LL_FEATURE_STABLE_MODULATION_INDEX_TRANSMITTER
+10 BIT_LL_FEATURE_STABLE_MODULATION_INDEX_RECEIVER
+11 BIT_LL_FEATURE_LE_CODED_PHY
+12 BIT_LL_FEATURE_LE_EXTENDED_ADVERTISING
+13 BIT_LL_FEATURE_LE_PERIODIC_ADVERTISING
+14 BIT_LL_FEATURE_CHANNEL_SELECTION_ALGORITHM
+15 BIT_LL_FEATURE_LE_POWER_CLASS_1
+16 BIT_LL_FEATURE_MINIMUM_NUMBER_OF_USED_CHANNELS_PROCEDURE
+)
+(//function map of mem_le_ll_feature
+//LL_FEATURE_REQ
+0x1 FUN_LL_FEATURE_LE_ENCRYPTION
+0x2 FUN_LL_FEATURE_CONNECTION_PARAMETERS_REQUEST_PROCEDURE
+0x4 FUN_LL_FEATURE_EXTENDED_REJECT_INDICATION
+0x8 FUN_LL_FEATURE_SLAVE_INITIATED_FEATURES_EXCHANGE
+0x10 FUN_LL_FEATURE_LE_PING
+0x20 FUN_LL_FEATURE_LE_DATA_PACKET_LENGTH_EXTENSION
+0x40 FUN_LL_FEATURE_LL_PRIVACY
+0x80 FUN_LL_FEATURE_EXTENDED_SCANNER_FILTER_POLICIES
+0x100 FUN_LL_FEATURE_LE_2M_PHY
+0x200 FUN_LL_FEATURE_STABLE_MODULATION_INDEX_TRANSMITTER
+0x400 FUN_LL_FEATURE_STABLE_MODULATION_INDEX_RECEIVER
+0x800 FUN_LL_FEATURE_LE_CODED_PHY
+0x1000 FUN_LL_FEATURE_LE_EXTENDED_ADVERTISING
+0x2000 FUN_LL_FEATURE_LE_PERIODIC_ADVERTISING
+0x4000 FUN_LL_FEATURE_CHANNEL_SELECTION_ALGORITHM
+0x8000 FUN_LL_FEATURE_LE_POWER_CLASS_1
+0x10000 FUN_LL_FEATURE_MINIMUM_NUMBER_OF_USED_CHANNELS_PROCEDURE
+)
+(//bit of mem_le_tx_phys and mem_le_rx_phys
+0x00 BIT_LE_1M_PHY
+0x01 BIT_LE_2M_PHY
+0x02 BIT_LE_CODED_PHY
+
+0x02 BIT_LE_CODED_PHY_S2
+0x07 BIT_LE_CODED_PHY_S8
+)
+(//map of mem_le_tx_phys and mem_le_rx_phys
+0x01 FUN_TX_LL_1M_PHY
+0x02 FUN_TX_LL_2M_PHY
+0x04 FUN_TX_LL_CODED_PHY
+
+0x01 FUN_RX_LL_1M_PHY
+0x02 FUN_RX_LL_2M_PHY
+0x04 FUN_RX_LL_CODED_PHY
+)
+(//mem_24g_data_type
+1 TYPE_MS
+2 TYPE_KB
+0x07 bits_data
+//0-2 data type
+3 bit_abort
+4 bit_hop
+5 bit_sync
+//6-7 channel offset
+)
+(
+0 ERR_NULL
+1 ERR_SYNC_TO
+2 ERR_HEC
+3 ERR_LR_LEN
+4 ERR_TYPE
+5 ERR_LEN_OVER
+6 ERR_CRC
+)
+(//mem_24g_pair_sm
+0 STATE_24G_PAIRING_NULL
+1 STATE_24G_PAIRING_1
+2 STATE_24G_PAIRING_2
+3 STATE_24G_PAIRING_3
+4 STATE_24G_PAIRING_4
+0X11 STATE_24G_PAIRING_1_WAITING_ACK
+0X12 STATE_24G_PAIRING_2_WAITING_ACK
+0X13 STATE_24G_PAIRING_3_WAITING_ACK
+0X14 STATE_24G_PAIRING_4_WAITING_ACK
+0XFF STATE_24G_PAIRING_SUCCESS
+)
+(
+0x01 DATATYPE_DEVICE1	//mouse
+0x02 DATATYPE_DEVICE2	//keyboard
+0xaa DATATYPE_BIND		//bind step 1
+0x55 DATATYPE_CONFIG	//bind step 2
+0x22 DATATYPE_OK		//bind step 3
+0xff DATATYPE_ATTEMP	//reconn
+)
+(
+5 BIND_MODE_CONTINUE
+)
+(
+0 bit_ack_24g
+)
+(//mem_24g_reconn_type
+0 DEFAULT_24G_DEVICE
+1 FAST_CONN_AND_RECEIVER
+2 FAST_CONN_AND_3_0_ADDR
+3 RECEIVER_AND_3_0_ADDR
+4 PAIR_AND_3_0_ADDR
+)
+(
+0x50 RSSI_THRESH_NOISE
+)
+(
+1 NO_ACK_24G
+0 WITH_ACK_24G
+)
+(//mem_24g_conn_sm
+0 STATE_24G_STOP
+0 STATE_24G_START
+1 STATE_24G_PAIR
+2 STATE_24G_RECONN
+)
+(//mem_24g_transmit_by_interrupt
+1 G24_TX_TIMER_INT_ENABLE
+0 G24_TX_TIMER_INT_DISABLE
+)
+(
+1 OFFSET_DATA_TYPE
+2 OFFSET_LR_DATA_TYPE
+)
+(
+0x017700 G24_LONG_SLEEP_STEP1	//8ms
+0x36ee80 G24_LONG_SLEEP_STEP2	//300ms
+0x124f80 G24_LONG_SLEEP_STEP3	//100ms
+63500 G24_8MS_INTERVAL_PARAM		//8ms
+12210 G24_4MS_INTERVAL_PARAM
+)
+(
+50 POWER_CTRL_DECRS_THRESHOLD
+)
+(
+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
+0x06 FLASH_COMMAND_WRITE_ENABLE
+0x20 FLASH_COMMAND_SECTOR_ERASE
+0x81 FLASH_COMMAND_PAGE_ERASE
+0xAB FLASH_COMMAND_RELEASE_FROM_POWERDOWN
+0xB9 FLASH_COMMAND_POWERDOWN
+
+)
+(
+7 OTP_UFLAG_MEMFIX2
+6 OTP_UFLAG_MEMFIX1
+5 OTP_UFLAG_MEMFIX0
+4 OTP_UFLAG_BIST
+3 OTP_UFLAG_AES
+2 OTP_UFLAG_SKIP_EEP
+1 OTP_UFLAG_SKIP_FLASH
+0 OTP_UFLAG_HCI
+)
+(
+0 OTP_OFFSET_PATCH_PTR //2 byte
+2 OTP_OFFSET_UCODE_FLAG
+3 OTP_OFFSET_DEVICE_OPTION
+4 OTP_OFFSET_PERIPHERALS_LOCK
+5 OTP_OFFSET_SCHED_BISTFIX 	//2 byte
+7 OTP_OFFSET_XRAM_BISTFIX	//2 byte
+9 OTP_OFFSET_PATCH_BISTFIX	//2 byte
+
+0xfc0 OTP_OFFSET_ADC_PARAM_L_C0
+
+0xfd0 OTP_OFFSET_ADC_PARAM_L
+0xff0 OTP_OFFSET_UCODE_KEY_L
+0x1000 OTP_OFFSET_H
+
+//0x1fd0 OTP_OFFSET_ADC_PARAM
+//0x1fec OTP_OFFSET_HV_SEL
+//0x1fed OTP_OFFSET_LDO_VSEL
+//0x1fee OTP_OFFSET_LOADCODE_DELAY
+//0x1fef OTP_OFFSET_LOADCODE_CHECKSUM
+0x1ff0 OTP_OFFSET_UCODE_KEY
+)
+(
+1 DVC_OP_2G4
+2 DVC_OP_BLE
+
+4 DVC_OP_DONGLE
+5 DVC_OP_TEST
+6 DVC_OP_SHUTTER_DY   
+7 DVC_OP_MOUSE_2G4
+8 DVC_OP_MOUSE
+9 DVC_OP_SHUTTER
+0X0A DVC_OP_MODULE
+0X0b DVC_OP_REMOTE_CONTROL
+0X0C DVC_OP_HCI_BOOT
+0X0D DVC_OP_REMOTE_CAR
+0X0E DVC_OP_CAR
+0X0F DVC_OP_KEYBOARD   
+)
+(
+7 GPIO_ACTIVE_BIT
+)
+(
+5 LPM_WAKE_UP_DELAY_TIMER
+)
+(
+2 APP_DISC_RSN_SIZE
+)
+(
+0 APP_DISC_BY_BUTTON
+7 APP_DISC_BLE
+)
+(
+0xaa55 EEPROM_INIT_FLAG
+)
+(
+1 KEY_CONF_STRUCT_LEN
+0 KEY_PIN_OFFSET
+)
+(
+12000000 PWM_12MHZ
+24000000 PWM_24MHZ
+33000 PWM_33KHZ
+)
+(
+0 POWER_OFF
+1 POWER_STARTING
+2 POWER_STANDBY
+)
+(
+0 power_state_offset
+1 power_timer_offset
+2 power_off_timeout_offset
+3 power_starting_timeout_offset
+4 power_off_cb_offset
+6 power_starting_cb_offset
+8 power_standby_cb_offset
+10 ui_butten_up_cb_offset
+)
+(
+0x9000 MOUSE_BLE_ATT_LIST_ADDR
+0x92aa USB_KBDATA_VENDOR_DEFINE_ADDR
+0x92c5 USB_KBDATA_ADDR
+0x9307 USB_MSDATA_ADDR
+0x93fb USB_DEVICEDATA_ADDR
+0x940e USB_CONFDATA_ADDR
+0x944a KEYBOARD_BLE_HID_MAP_ONLY_KEYBOARD_ADDR
+0x94fc KEYBOARD_BLE_HID_MAP_MAGIC_KEYBOARD_ADDR
+0x95b8 KEYBOARD_BLE_HID_MAP_N_KEY_ROLLOVER_KEYBOARD_ADDR
+0x9684 BLE_SHUTTER_GATT_LIST_ADDR
+0x97bd BLE_SHUTTER_KEY_VALUE_LIST_ADDR
+0x97e5 BLE_CAR_ATT_LIST_ADDR
+0x97fc mem_sim_slave
+)
+(//NEC 61212
+9000 NEC61212_BOOT_CODE_START_TIME
+4500 NEC61212_BOOT_CODE_END_TIME
+
+9000 NEC61212_REPEAT_START_TIME
+2250 NEC61212_REPEAT_END_TIME
+
+560 NEC61212_DATA_BIT_1_START_TIME
+1690 NEC61212_DATA_BIT_1_END_TIME
+
+560 NEC61212_DATA_BIT_0_START_TIME
+560 NEC61212_DATA_BIT_0_END_TIME
+
+560 NEC61212_STOP_TIME
+
+42580 NEC61212_DATA2REPEAT_TIME
+98190 NEC61212_REPEAT2REPEAT_TIME
+
+0xffff NEC61212_TIMEOUT_TIME
+)
+(
+1 CLK_CALIBRATION_DONE
+2 RC_CLK_CALIBRATION_DONE
+3 AES_DEC_KEY_INIT_DONE
+4 MEASURE_ADC_SUM_DONE
+5 SARADC_DONE
+)
+(
+1 ADC_CONFIG_HVIN
+2 ADC_CONFIG_GPIO
+)
+(
+1 SADC_REFERENCE_INTER3V
+2 SADC_REFERENCE_INTER1P8V_DIV2
+)
+(
+0 TURN_FRONT
+1 TURN_LEFT
+2 TURN_RIGHT
+0 MOTOR_STOP
+1 GO_FRONT
+2 GO_BACK
+0x6b5a LE_RECEIVE_PACKET_HEAD
+)
+(
+1 CAR_CMD_BATTERY
+2 CAR_CMD_OLD_CAR_CONTROL
+3 CAR_CMD_OLD_SPEED_CONTROL
+4 CAR_CMD_L_R_MOTOR_CONTROL
+5 CAR_CMD_F_B_MOTOR_CONTROL
+6 CAR_CMD_IR_CONTROL
+7 CAR_CMD_LED_CONTROL
+8 CAR_CMD_DEVICE_INFO
+)
+(
+0x0e HANDLE_OF_NOTIFY
+0x11 HANDLE_OF_WRITE
+)
+(
+0 G24_UNCONNECT
+1 G24_CONNECTED
+)
+(
+12 LEN_OF_24G_PAYLOAD
+11 LEN_OF_ACK_PAYLOAD
+)
+(
+0XAA G24_TX_PAIR_REQUEST
+0XBB G24_RX_PAIR_RESPONES
+0XCC G24_TX_REMOTE_CONTROL
+0XDD G24_RX_CONTROL_ACK
+0XEE G24_ERROR
+0xFF INVALID_PIN_NUM
+0 POWER_ON
+1 WORK_PAIRED
+2 WORK_SEARCH
+)
+(
+0x1f00 OTP_SYS_PARAM_CFG
+0x1fda OTP_MAC_ADDR
+0X1fdb OTP_MAC_ADDR_PIECENUM
+)
+(
+0x5A DONGLE_KB_BIND_SUCCESS
+0x1fdf DONGLE_KB_BIND_EFUSE_OFFECT
+0x1fc0 DONGLE_KB_BIND_OTP_OFFECT
+)
+(
+5 WORK_MODE_DELAY
+7 BIND_MODE_DELAY
+)
+(
+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
+)
+(
+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
+0xb0 COMMAND_USER_DEFINED		//user defined cmd
+)
+(
+0x15 PRODUCT_ID
+0 FW_VERSION0
+0 FW_VERSION1
+1 FW_VERSION2
+7 FW_VERSION3
+)
+(
+640 TIMER_NODATA_DELAY	//200ms
+
+384 TIMER_MS_BLANK_DELAY
+
+384 TIMER_KB_MUL_BLANK_DELAY
+
+384 TIMER_KB_SYS_CRTL_BLANK_DELAY
+
+384 TIMER_KB_BLANK_DELAY
+)
+(
+0 KB_NORMAL_REPORT_ID
+1 MS_REPORT_ID
+2 KB_SYSTEM_CONCTRL_REPORT_ID
+3 KB_MULTIKEY_REPORT_ID
+5 KB_BIT_CONSUMER_REPORT_ID
+8 KB_N_KEY_ROLLOVER_REPORT_ID
+)
+(
+0x01 BIND_ACKPAYLOAD
+0x03 KB_LED_ACKPAYLOAD
+)
+(
+7 DG_ENABLE_XTAL_24M
+6 DG_ENABLE_NEW_CHMAP
+5 DG_ENABLE_EEPROM
+4 DG_ENABLE_KB_ICON
+3 DG_ENABLE_24G_2M
+)
+(
+0x01 DEVICE_DATA_TPYE_MOUSE
+0x00 DEVICE_DATA_TPYE_KEYBOARD
+)
+(
+0x00 HID_REPORTID_KEY_STANDARD
+0x01 HID_REPORTID_MOUSE
+0x02 HID_REPORTID_SYSTEM_CTRL
+0x03 HID_REPORTID_CONSUMER_KEY
+0x05 HID_REPORTID_BIT_CONSUMER_KEY
+0x08 HID_REPORTID_N_KEY_ROLLOVER
+)
+(
+0x04	 HID_KEY_A 	 
+0x05        HID_KEY_B 	 
+0x06        HID_KEY_C 	 
+0x07        HID_KEY_D 	 
+0x08        HID_KEY_E 	 
+0x09        HID_KEY_F 	 
+0x0a        HID_KEY_G 	 
+0x0b        HID_KEY_H 	 
+0x0c        HID_KEY_I  	 
+0x0d        HID_KEY_J 	 
+0x0e        HID_KEY_K 	 
+0x0f        HID_KEY_L 	 
+0x10        HID_KEY_M 	 
+0x11        HID_KEY_N 	 
+0x12        HID_KEY_O	 
+0x13        HID_KEY_P	 
+0x14        HID_KEY_Q	 
+0x15        HID_KEY_R	 
+0x16        HID_KEY_S	 
+0x17        HID_KEY_T	 
+0x18        HID_KEY_U	 
+0x19        HID_KEY_V	 
+0x1a        HID_KEY_W 	 
+0x1b        HID_KEY_X	 
+0x1c        HID_KEY_Y	 
+0x1d        HID_KEY_Z	 
+    
+0x1e        HID_KEY_1	 
+0x1f        HID_KEY_2	 
+0x20        HID_KEY_3	 
+0x21        HID_KEY_4	 
+0x22        HID_KEY_5	 
+0x23        HID_KEY_6	 
+0x24        HID_KEY_7	 
+0x25        HID_KEY_8	 
+0x26        HID_KEY_9	 
+0x27        HID_KEY_0	 
+    
+0x28        HID_KEY_ENTER 				 
+0x29        HID_KEY_ESC				 
+0x2a        HID_KEY_BACKSPACE		 
+0x2b        HID_KEY_TAB				 
+0x2c        HID_KEY_SPACE 				 
+0x2d        HID_KEY_MINUS				 		// -_
+0x2e        HID_KEY_EQUAL				 		// =+
+0x2f        HID_KEY_LEFT_BRACKET 		 	// [{
+0x30        HID_KEY_RIGHT_BRACKET 	 		// ]}
+0x31        HID_KEY_BACK_SLASH 		 		// \|
+    
+0x32        HID_KEY_K42				 
+0x33        HID_KEY_SEMICOLON			 	// ;:
+0x34        HID_KEY_QUOTE				 		// ' "
+0x35        HID_KEY_TILDE				 		// `~
+0x36        HID_KEY_LESS_THAN			 		// ,<
+0x37        HID_KEY_GREAT_THAN		 		// .>
+0x38        HID_KEY_SLASH				 		// /?
+0x39        HID_KEY_CAPS_LOCK			 
+
+0x3a        HID_KEY_F1		 
+0x3b        HID_KEY_F2		 
+0x3c        HID_KEY_F3		 
+0x3d        HID_KEY_F4		 
+0x3e        HID_KEY_F5		 
+0x3f        HID_KEY_F6		 
+0x40        HID_KEY_F7		 
+0x41        HID_KEY_F8		 
+0x42        HID_KEY_F9		 
+0x43        HID_KEY_F10	 
+0x44        HID_KEY_F11	 
+0x45        HID_KEY_F12	 
+    
+0x46        HID_KEY_PRINT_SCREEN	 
+0x47        HID_KEY_SCROLL_LOCK	 
+0x48        HID_KEY_PAUSE			 
+0x49        HID_KEY_INSERT			 
+0x4a        HID_KEY_HOME			 
+0x4b        HID_KEY_PAGE_UP		 
+0x4c        HID_KEY_DELETE		 
+0x4d        HID_KEY_END			 
+0x4e        HID_KEY_PAGE_DOWN	 
+        
+0x4f        HID_KEY_RIGHT_ARROW	 
+0x50        HID_KEY_LEFT_ARROW	 
+0x51        HID_KEY_DOWN_ARROW	 
+0x52        HID_KEY_UP_ARROW		 
+        
+0x53        HID_KEY_NUM_LOCK		 
+0x54        HID_KEY_KP_SLASH		 
+0x55        HID_KEY_KP_ASTERISK	 
+0x56        HID_KEY_KP_MINUS		 
+0x57        HID_KEY_KP_PLUS		 
+0x58        HID_KEY_KP_ENTER		 
+0x59        HID_KEY_KP_1			 
+0x5a        HID_KEY_KP_2			 
+0x5b        HID_KEY_KP_3			 
+0x5c        HID_KEY_KP_4			 
+0x5d        HID_KEY_KP_5			 
+0x5e        HID_KEY_KP_6			 
+0x5f        HID_KEY_KP_7			 
+0x60        HID_KEY_KP_8			 
+0x61        HID_KEY_KP_9			 
+0x62        HID_KEY_KP_0			 
+0x63        HID_KEY_KP_DEL		 
+  
+0x64        HID_KEY_K45			 
+0x65        HID_KEY_APP			 
+0x66        HID_KEY_POWER			 
+0x67        HID_KEY_KP_EQUAL		 
+        
+       
+0x87        HID_KEY_K56				 
+0x88        HID_KEY_K133  				 
+0x89        HID_KEY_K14  				 
+0x8a        HID_KEY_K132  				 
+0x8b        HID_KEY_K131 				 
+    
+0x90        HID_KEY_KR_R  				 
+0x91        HID_KEY_KR_L  				 
+        
+0xe0        HID_KEY_LEFT_CTRL			 
+0xe1        HID_KEY_LEFT_SHIFT			 
+0xe2        HID_KEY_LEFT_ALT 			 
+0xe3        HID_KEY_LEFT_GUI 			 
+0xe4        HID_KEY_RIGHT_CTRL			 
+0xe5        HID_KEY_RIGHT_SHIFT		 
+0xe6        HID_KEY_RIGHT_ALT			 
+0xe7        HID_KEY_RIGHT_GUI			 
+
+0xe8 	HID_KEY_MULTIKEY_MEDIA
+0xe9 	HID_KEY_MULTIKEY_VOL_DOWN
+0xea 	HID_KEY_MULTIKEY_VOL_UP
+0xeb 	HID_KEY_MULTIKEY_MUTE
+0xec 	HID_KEY_MULTIKEY_PRE_TRACK
+0xed 	HID_KEY_MULTIKEY_NEXT_TRACK
+0xee 	HID_KEY_MULTIKEY_PALY
+0xef 	HID_KEY_MULTIKEY_STOP
+0xf0 	HID_KEY_AC_HOME
+0xf1 	HID_KEY_MAIL
+0xf2 	HID_KEY_MY_COMPUTER
+0xf3 	HID_KEY_AC_FAVORITES
+0xf4 	HID_KEY_CALCULATOR
+0xf5 	HID_KEY_AC_SEARCH
+0xf6 	HID_KEY_AC_BACK
+0xf7 	HID_KEY_OS_SOFT_KB
+0xf8 	HID_KEY_LIGHT_DOWN
+0xf9 	HID_KEY_LIGHT_UP
+0xfa 	HID_KEY_IOS_ANDROID_OS_LOCK
+0xfb	HID_KEY_MAC_EJECT
+0xfc	HID_KEY_AC_FORWARD
+0xfd	HID_KEY_AC_STOP
+0xfe	HID_KEY_AC_REFRESH
+0xff 	HID_KEY_SYSTEM_SLEEP
+        // 0xe8~0xff reserved
+0xa5	HID_KEY_SELECT_ALL
+0xa6 	HID_KEY_COPY
+0xa7	HID_KEY_PASTE
+0xa8	HID_KEY_CUT
+0xa9	HID_KEY_ALL_OS_LOCK
+0xaa	HID_KEY_OSK
+0xab	HID_KEY_LANGUAGE
+0xac 	HID_KEY_APP_TILING
+0xad	HID_KEY_SEARCH
+0xae     	HID_KEY_PB
+0xaf	HID_KEY_FAVORITES
+	 // 0xa5~0xaf reserved
+0x7f     	HID_KEY_FN 					 
+0x00     	HID_KEY_NULL 		 
+)
+(
+0x01 LEFT_CONTROL
+0x02 LEFT_SHIFT
+0x04 LEFT_ALT
+0x08 LEFT_GUI
+0x10 RIGHT_CONTROL
+0x20 RIGHT_SHIFT
+0x40 RIGHT_ALT
+0x80 RIGHT_GUI
+0x09 LEFT_GUI_CONTROL
+0x0a LEFT_SHIFT_GUI
+0x03 LEFT_CTRL_SHIFT
+)
+(
+0x00 KB_PC_KEYSEL_NUMLOCK
+0x01 KB_PC_KEYSEL_CAPSLOCK
+0x02 KB_PC_KEYSEL_SCROLLLOCK
+)
+(
+8 KEYSCAN_COL_NUM
+20 KEYSCAN_ROW_NUM
+)
+(
+0 CAMMBINATION_KEY_FREE
+1 CAMMBINATION_KEY_PRESS
+2 CAMMBINATION_KEY_HOLD
+3 CAMMBINATION_KEY_COMPLETE
+4 CAMMBINATION_KEY_WAIT_RELEASE
+5 CAMMBINATION_KEY_RELEASE
+6 CAMMBINATION_KEY_NULL
+)
+(
+
+0x600 PNP_MICROSOFT
+0x4c00 PNP_IOS
+0x1208 PNP_MAC
+
+
+0 SYSTEM_OS_WINDOWS
+1 SYSTEM_OS_ANDROID
+2 SYSTEM_OS_IOS
+3 SYSTEM_OS_MAC
+
+)
+(
+0 KEYBOARD_CONSUMER_KEY_STANDBY
+1 KEYBOARD_CONSUMER_KEY_PRESS
+2 KEYBOARD_CONSUMER_KEY_RELEASE
+)
+(
+//keyboard_function_flag
+0x08 KEYBOARD_FLAG_LEN
+//byte 0
+0x00 KEYBOARD_24G_PAIRING_FLAG
+0x01 KEYBOARD_STORE_MEMORY_FLAG
+0x02 KEYBOARD_LOW_VOLTAGE_FLAG
+0x03 KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG
+0x04 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+
+//byte 1
+0x08 KEYBOARD_ENABLE_WAKEUP_FROM_POWER
+0x09 KEYBOARD_ENABLE_16M
+0x0a KEYBOARD_DISABLE_ICE
+0x0b KEYBOARD_ENABLE_ADC
+0x0c KEYBOARD_ENABLE_FLASH
+0x0d KEYBOARD_ENABLE_2K_EEPROM
+0x0e KEYBOARD_ENABLE_EEPROM
+0x0f KEYBOARD_ENABLE_OTP
+
+//byte 2
+0x10 KEYBOARD_ENABLE_24G
+0x11 KEYBOARD_ENABLE_AUTO_24G_PARING
+0x12 KEYBOARD_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+0x13 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+0x14 KEYBOARD_ENABLE_24G_2M_PHY
+0x15 KEYBOARD_ENABLE_24G_SEARCH_DONGLE
+
+//byte 3
+0x18 KEYBOARD_ENABLE_BLE_RANDOM_ADDRE
+0x19 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL
+0x1a KEYBOARD_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+0x1b KEYBOARD_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+
+//byte 4
+0x20 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+0x21 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER
+0x22 KEYBOARD_ENABLE_MAGIC_KEYBOARD
+0x23 KEYBOARD_ENABLE_MOUSE
+0x24 KEYBOARD_ENABLE_USB
+
+//byte 5
+0x28 KEYBOARD_ENABLE_030_POWER_LED
+0x29 KEYBOARD_ENABLE_LOW_LED
+0x2a KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND
+0x2b KEYBOARD_ENABLE_BACKLIGHT
+
+//byte 6
+0x30 KEYBOARD_ENABLE_FN_ARROW
+0x31 KEYBOARD_ENABLE_FN_LEFT_CTRL_OSK
+0x32 KEYBOARD_ENABLE_FN_SPACE_LANGUAGE
+0x33 KEYBOARD_ENABLE_FN_OS_SWITCH
+0x34 KEYBOARD_ENABLE_FN_LOCK
+
+//byte 7
+0x38 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+0x39 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND
+0x3a KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_GND
+0x3b KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD
+0x3c KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_VDD
+0x3d KEYBOARD_ENABLE_SDA_MULTI_R_LINE
+0x3e KEYBOARD_ENABLE_SDA_MULTI_ICE_LINE
+
+)
+(
+//eeprom address offect
+0x00 KEYBOARD_INFO_EEPROM_OFFECT
+0x00 KEYBOARD_DEVICE_NUMBER_EEPROM_OFFECT
+0x01 KEYBOARD_BLE_ADDR_EEPROM_OFFECT
+0x28 KEYBOARD_STORE_FLAG
+0x2b KEYBOARD_G24_ADDR_EEPROM_OFFECT	//4bytes
+0x2f KEYBOARD_RANDOM_ADDR_COUNT_EEPROM_OFFSET
+0x31 KEYBOARD_FN_FLAG_EEPROM_OFFSET
+0x36 KEYBOARD_COMPUTER_SYSTEM_EEPROM_OFFSET
+0x39 KEYBOARD_RGB_TPYE_OFFSET
+
+0x00 KEYBOARD_STORE_EEPROMM_FLAG_ALL_INFO
+0x01 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR
+0x02 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR
+0x03 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK
+0x04 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM
+0x05 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE
+)
+(
+0 KEYBOARD_RGB_BLUE_STATUS
+1 KEYBOARD_RGB_GREEN_STATUS
+2 KEYBOARD_RGB_RED_STATUS
+
+0 RGB_BACKLIGHT_STATUS_OFF
+1 RGB_BACKLIGHT_STATUS_ON
+2 RGB_BACKLIGHT_STATUS_BREATHE
+
+0 RGB_BACKLIGHT_ON_TPYE_RED
+1 RGB_BACKLIGHT_ON_TPYE_ORANGE
+2 RGB_BACKLIGHT_ON_TPYE_PURPLE
+3 RGB_BACKLIGHT_ON_TPYE_GREEN
+4 RGB_BACKLIGHT_ON_TPYE_CYAN
+5 RGB_BACKLIGHT_ON_TPYE_BLUE
+6 RGB_BACKLIGHT_ON_TPYE_WHITE
+
+0 RGB_BACKLIGHT_BREATHE_TPYE_BLUE
+1 RGB_BACKLIGHT_BREATHE_TPYE_GREEN
+2 RGB_BACKLIGHT_BREATHE_TPYE_RED
+3 RGB_BACKLIGHT_BREATHE_TPYE_CYAN
+4 RGB_BACKLIGHT_BREATHE_TPYE_PURPLE
+5 RGB_BACKLIGHT_BREATHE_TPYE_ORANGE
+6 RGB_BACKLIGHT_BREATHE_TPYE_WHITE
+)
+(
+0 KEYBOARD_FLAG_G24_DEVICE_BUTTON
+1 KEYBOARD_FLAG_BT_DEVICE_BUTTON
+)
+(
+0x01 KEYBOARD_COMMBINATION_PRESS_TYPE_24G_PAIR
+0x02 KEYBOARD_COMMBINATION_PRESS_TYPE_BT_PAIR
+0x03 KEYBOARD_COMMBINATION_PRESS_TYPE_BT_FAST_CONN
+)
+(
+0x20 KEYBOARD_BLE_L2CAP_TXBUFF_SIZE
+)
+(
+0 KEYBOARD_BATTARY_1V5
+1 KEYBOARD_BATTARY_3V0
+2 KEYBOARD_BATTARY_4V2
+)
+(//mem_module_flag
+//bit0~bit7 config module function
+0 MODULE_FLAG_UART_FLOW_CONTROL
+1 MODULE_FLAG_BLE_SEND_MTU23
+2 MODULE_FLAG_BLE_DATA_ENCRYPT
+
+//bit8~bit15 module states change
+8 MODULE_FLAG_BLE_DATA_FINISH
+
+)
+(
+34 NV_DATA_LEN
+-1 DECREASED_ONE
+)
+(
+	5 FLAG_MODULE_READ_VDD_COUNT
+)
+(
+0x01 HCI_DISCARD_PACKET
+0x00 HCI_NOT_DISCARD_PACKET
+)
+(//Command
+0x01 HCI_CMD_SET_LE_ADDR_REQ
+0x02 HCI_CMD_SET_VISIBILITY_REQ
+0x04 HCI_CMD_SET_LE_NAME_REQ
+0x09 HCI_CMD_LE_DATA_REQ
+0x0b HCI_CMD_STATUS_IRQ
+0x0e HCI_CMD_SET_UARTCONTROL_REQ
+0x0f HCI_CMD_SET_UART_BAUD_REQ
+0x10 HCI_CMD_VERSION_REQ
+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
+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
+0x37 HCI_CMD_LE_SET_ADV_PARM
+0x38 HCI_CMD_LE_START_PAIRING
+0x40 HCI_CMD_SET_WAKE_GPIO
+0x42 HCI_CMD_SET_TX_POWER
+0x43 HCI_CMD_BOOT_VERSION_REQ
+0x48 HCI_CMD_LE_CONFIRM_GKEY
+0x49 HCI_CMD_REJECT_JUSTWORK
+0x51 HCI_CMD_RESET_CHIP_REQ
+
+0x61 HCI_CMD_LE_SET_FIXED_PASSKEY
+
+0x76 HCI_CMD_DELETE_CUSTOMIZE_SERVICE
+0x77 HCI_CMD_ADD_SERVICE_UUID
+0x78 HCI_CMD_ADD_CHARACTERISTIC_UUID
+0x7a HCI_CMD_PASSKEY_ENTRY_INPUT
+0x7b HCI_CMD_LE_CREAT_CONN
+
+0x90 HCI_CMD_BLE_SET_PHY
+0x91 HCI_CMD_BLE_READ_CURRENT_PHY
+0x92 HCI_CMD_BLE_SET_DLE
+0x93 HCI_CMD_READ_CHIP_DATA
+0x94 HCI_CMD_WRITE_CHIP_DATA
+0xff HCI_CMD_CLOSE_LPM
+)
+(//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
+
+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
+0x29 HCI_EVENT_UUID_HANDLE
+0x2b HCI_EVENT_LE_INPUT_GKEY
+
+0x40 HCI_BLE_UPDATE_PHY_EVENT
+)
+(//command HCI_CMD_SET_GPIO
+//byte 0
+0x00 HCI_CMD_CONFIG_GPIO_INPUT
+0x01 HCI_CMD_CONFIG_GPIO_OUTPUT
+//byte 1 input state
+0x00 GPIO_INPUT_PULLUP
+0x01 GPIO_INPUT_PULLDOWN
+0x02 GPIO_INPUT_HIGH_IMPEDANCE
+)
+(
+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
+)
+(
+5 BIT_OF_NOTIFY_AUTHENTICATED
+6 BIT_OF_READ_AUTHENTICATED
+7 BIT_OF_WRITE_AUTHENTICATED
+)
+(
+//combination
+0x01 MOUSE_L_BUTTON
+0X02 MOUSE_R_BUTTON
+0x03 MOUSE_LR_BUTTON
+0X04 MOUSE_M_BUTTON
+0X05 MOUSE_LM_BUTTON
+0X06 MOUSE_RM_BUTTON
+0X07 MOUSE_LMR_BUTTON
+0x09 MOUSE_L_BK_BUTTON
+0x0a MOUSE_R_BK_BUTTON
+0x11 MOUSE_L_FW_BUTTON
+0x12 MOUSE_R_FW_BUTTON
+0x12 MOUSE_M_BK_BUTTON
+0x14 MOUSE_M_FW_BUTTON
+0X18 MOUSE_BK_FW_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
+//mode device number
+0x00 MODE_24G_DEVICE
+0x01 MODE_BT_DEVICE1
+0x02 MODE_BT_DEVICE2
+0x03 MODE_BT_DEVICE3
+0x04 MODE_USB_DEVICE
+//mouse  flag
+0X00 WRITE_REQ_ENABLE_FLAG
+0X01 LL_START_ENC_FLAG
+0X02 LL_PAIRING_SUCCESS_FLAG
+
+
+//mouse_function_flag
+0x08 MOUSE_FLAG_LEN
+//byte 1
+0x00 MOUSE_SELECT_DEVICE_FLAG
+0x01 MOUSE_24G_PAIRING_FLAG
+0x02 MOUSE_STORE_EEPROM_FLAG
+0x03 MOUSE_BT_CANNEL_RECONN_FLAG
+0x04 MOUSE_LOW_VOLTAGE_FLAG
+0x05 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
+0x06 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+0x07 MOUSE_ENABLE_SPI2
+
+//byte 2
+0x08 MOUSE_ENABLE_BLE_RANDOM_ADDRE
+0x09 MOUSE_ENABLE_2K_EEPROM
+0x0a MOUSE_ENABLE_WAKEUP_FROM_POWER
+0x0b MOUSE_ENABLE_16M
+0x0c MOUSE_ENABLE_USB
+0x0d MOUSE_ENABLE_24G_SEARCH_DONGLE
+0x0e MOUSE_ENABLE_LOAD_AND_STORE_DPI
+0x0f MOUSE_ENABLE_24G
+
+//byte 3
+0x10 MOUSE_ENABLE_FLASH
+0x11 MOUSE_ENABLE_EEPROM
+0x12 MOUSE_ENABLE_OTP
+0x13 MOUSE_ENABLE_ADC
+0x14 MOUSE_ENABLE_KEYBOARD
+0x15 MOUSE_ENABLE_DOUBLE_DPI_KEY
+0x16 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN
+
+//byte 4
+0x18 MOUSE_ENABLE_24G_250Hz
+0x19 MOUSE_ENABLE_24G_500Hz
+0x1a MOUSE_ENABLE_24G_1000
+0x1b MOUSE_ENABLE_BT_125Hz
+0x1c MOUSE_ENABLE_DPI_LEVEL_4
+0x1d MOUSE_ENABLE_USB_250
+0x1e MOUSE_ENABLE_USB_500
+0x1f MOUSE_ENABLE_USB_1000
+
+//byte 5
+0x20 MOUSE_ENABLE_1IO2LED
+0x21 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
+0x22 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT
+0x23 MOUSE_ENABLE_LOW_LED
+0x24 MOUSE_ENABLE_LOW_FOR_LED
+0x25 MOUSE_ENABLE_DPI_FOR_LED
+
+//byte 6
+0x28 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+0x29 MOUSE_ENABLE_SELECT_DEVICE_BY_PB_BUTTON
+0x2a MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+0x2b MOUSE_ENABLE_DPI_KEY_CONNECT_GND
+0x2c MOUSE_ENABLE_ANOTHER_DPI_KEY_CONNECT_GND
+0x2d MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
+0x2e MOUSE_ENABLE_FIRE_KEY_CONNECT_GND
+0x2f MOUSE_ENABLE_CUSTOMER_KEY_CONNECT_VIN
+
+//byte 7 
+0x30 MOUSE_ENABLE_AUTO_24G_PARING
+0x31 MOUSE_ENABLE_24G_POWER_ON_PAIRING
+0x32 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+0x33 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+0x34 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+0x35 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+0x36 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
+0x37 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
+
+//byte 8
+0x38 MOUSE_ENABLE_SMOOTHER
+0x39 MOUSE_ENABLE_XY_OFFSET
+0x3a MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+0x3b MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+0x3c MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+0x3d MOUSE_ENABLE_24G_2M_PHY
+0x3e MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING
+//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
+
+
+//DPI button state 
+0x00 DPI_BUTTON_STATE_UP
+0x01 DPI_BUTTON_STATE_DOWN
+
+
+//PB button state 
+0x00 PB_BUTTON_STATE_UP
+0x01 PB_BUTTON_STATE_DOWN
+
+//Commbination_key state 
+0x00 COMMBINATION_KEY_STATE_UP
+0x01 COMMBINATION_KEY_STATE_DOWN
+
+
+//eeprom address offect
+0X00 MOUSE_INFO_EEPROM_OFFECT
+0x58 MOUSE_STORE_FLAG
+0X5A MOUSE_DPI_EEPROM_OFFECT	//1byte
+0X5B MOUSE_G24_ADDR_EEPROM_OFFECT	//4bytes
+0X5F MOUSE_RANDOM_ADDR_COUNT_EEPROM_OFFSET	//2bytes
+0X61 MOUSE_EEPROM_MODULE_INIT_FLAG
+
+// Sensor id number
+0x30 P32XX_ID1
+0x31 P3065_ID1
+0x02 P3212_ID2
+0xD1 P3205_TJ3T_ID2
+0XD2 P3204_TJ3L_ID2
+0x54 PKA8_ID2
+0x70 P3065_XY_ID2
+0x00 P3065_ID2
+0x5a P_MX8650
+0xD8 P8009_ID2
+0x50 P6520A_ID2
+0x57 KA5857_ID2
+0x58 PKA8G2_ID1
+0x59 PKA8G2_ID2
+
+
+//Sensor type
+0X00 P3205
+0X01 P3065
+0X02 P3204
+0X03 P3212
+0X04 P3065_XY
+0x05 MX8650
+0x06 P8009
+0x07 P6520
+0X08 KA8
+0X09 KA8_UL
+0X0a KA8_HD
+0X0b KA8G2
+0X0c S201X
+0X0d KA5857
+
+
+//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
+
+)
+(
+0x01 ADV_FLAG_LIMITED_DISCOVERABLE
+0x04 ADV_FLAG_BREDR_NOT_SUPPORTED
+)
+(
+2 BIT_POWER_ON
+)
+(
+0x00 MOUSE_L_KEY
+0x01 MOUSE_R_KEY
+0x02 MOUSE_M_KEY
+0x03 MOUSE_BK_KEY
+0x04 MOUSE_FW_KEY
+0x05 MOUSE_DPI_KEY
+0x06 MOUSE_PB_KEY
+0x07 MOUSE_CUSTOMER_KEY
+0x00 MOUSE_DPI_ANOTHER_KEY
+)
+(
+0 MULTI_LED_ON
+1 MULTI_LED_BLINK
+)
+(
+1 KEY_DOWN 
+0 KEY_UP 
+)
+(
+0x00 KEYPAD_TYPE_CONSUMER
+0x01 KEYPAD_TYPE_MOUSE
+0x02 KEYPAD_TYPE_KEYPAD
+0x03 KEYPAD_TYPE_NEC
+)
+(
+0x03 MAX_QUEUE_UNIT
+)
+(
+0x100 NEC_STORE_BUF_SIZE
+0x3fff NEC_LEAR_HEAD
+)
+(
+0 INDEX_0
+1 INDEX_1
+2 INDEX_2
+3 INDEX_3
+4 INDEX_4
+5 INDEX_5
+6 INDEX_6
+7 INDEX_7
+8 INDEX_8
+9 INDEX_9
+10 INDEX_10
+11 INDEX_11
+12 INDEX_12
+13 INDEX_13
+14 INDEX_14
+15 INDEX_15
+16 INDEX_16
+17 INDEX_17
+18 INDEX_18
+19 INDEX_19
+20 INDEX_20
+)
+(
+0x00 NONE_FILTER
+0x01 WHITE_LIST_SCAN_FILTER
+0x02 WHITE_LIST_CONNECT_FILTER
+0x03 WHITE_LIST_CONN_SCAN_FILTER
+)
+(
+0xAB OTA_EVENT
+0xBA OTA_COMMAND
+)
+(
+0x10 OTA_PORTOCOL_VERSION_REQUEST
+0x11 OTA_BUCK_SIZE_REQUEST
+0x12 OTA_WORK_MODE_REQUEST
+0x13 OTA_SWITCH_WORK_MODE_REQUEST
+0x14 OTA_FLASH_CHECKSUM_REQUEST
+0x15 OTA_START_REQUEST
+0x16 OTA_DATA_WRITE_CMD
+0x17 OTA_DATA_WRITE_REQUEST
+0x18 OTA_END_REQUEST
+)
+(
+0x00 OTA_UPDATE_FLASH_NORMAL
+)
+(
+0x00 OTA_RESULT_SUCCESS
+0x01 OTA_RESULT_WORKMODE_NOT_SUPPORT
+0x02 OTA_RESULT_WORKMODE_ERROR
+0x03 OTA_RESULT_FLASHMODE_NOT_SUPPORT
+0x04 OTA_RESULT_INDEX_ERROR
+0x05 OTA_RESULT_LENGTH_ERROR
+0x06 OTA_RESULT_BUCK_SIZE_ERROR
+0x07 OTA_RESULT_WRITE_FLASH_ERROR
+0xFF OTA_RESULT_ERROR
+)
+(
+0x01 OTA_LE_CONN_PARAM_UPDATE_ENABLE
+0x00 OTA_LE_CONN_PARAM_UPDATE_DISABLE
+)
+(
+0 BLE_SHUTTER
+1 CLASSIC_SHUTTER
+)
+(
+0x0000 NVRAM_EEPROM_OFFSET
+)
+(
+0x1b3a SHUTTER_EEPROM_CONFIG_CRC
+)
+(
+5 MAX_QUEUE_NUM
+5 SHUTTER_BLE_DATA_BUFFER
+5 SHUTTER_CLASSIC_DATA_BUFFER
+)
+(
+0x13	GATT_CONSUMER_NOTIFY_HANDLE
+0x14	GATT_CONSUMER_WRITE_HANDLE
+0x17	GATT_KEYBOARD_NOTIFY_HANDLE
+0x18	GATT_KEYBOARD_WRITE_HANDLE
+)
+(
+//20ms
+0x0020	FAST_ADV_INTERVAL_VALUE
+//100ms
+0x00a0	SLOW_ADV_INTERVAL_VALUE
+)
+(
+0 ATT_BIT_NOTIFICATION
+1 ATT_BIT_INDICATION
+)
+(
+0 HARD_SWITCH
+1 SOFT_SWITCH
+)
+(
+1  FLAG_SHUTTER_HID_DISCONN_TIMEOUT
+5 FLAG_SHUTTER_CABLE_UNPLUG_TIMEOUT
+)
+(//Data Rom Buffer Addr
+313		BLE_GATT_LIST_SIZE
+487		BT_SDP_LIST_SIZE
+40		BLE_KEY_VALUE_LIST_SIZE
+40		BT_KEY_VALUE_LIST_SIZE
+)
+(//soft switch power state
+0		SS_STATE_POWER_UP
+1		SS_STATE_POWER_ON
+2		SS_STATE_POWER_OFF
+)
+(
+0		SS_POWER_STATE_OFFSET
+1		SS_POWER_ON_TIME
+2		SS_POWER_OFF_TIME
+3		SS_POWER_ON_CB
+5		SS_POWER_OFF_CB
+
+)
+(
+
+0x4FFE SIM_IIC_SCL_GPIO_NUM
+0x4FFF SIM_IIC_SDA_GPIO_NUM
+
+)
+(
+0 SHUTTER_TYPE
+1 SHUTTER_DY_TYPE
+)
+(
+10 MAX_QUEUE_NUM_COMBINEKEY
+15 MAX_QUEUE_NUM_RELEASE
+3 MAX_QUEUE_NUM_LONG
+3 MAX_QUEUE_NUM_LONG_RELEASE
+10 MAX_QUEUE_NEW_PRESS
+
+10 EVERY_PAYLOAD_LEN
+)
+(
+0x24	GATT_KEYBOARD_WRITE_HANDLE_NEW
+)
+(//Data Rom Buffer Addr
+640		BT_DY_KEY_VALUE_LIST_SIZE
+)
+(
+0x05   SHUTTER_PARA_TOTAL_NUM
+//0x7b0  SHUTTER_EFUSE_START_OFFECT	//起始地址
+//0x680  SHUTTER_EFUSE_END_OFFECT	       //结束地址
+)
+(
+//uart config
+115200 UART_BAUD
+)
+(
+10 SHUTTER_KEY_CONF_SATE_BYTES
+0 KEY_STATE_PRESS_CLK_OFFSET
+4 KEY_STATE_PRESS_COUNT_OFFSET
+5 KEY_STATE_RELEASE_CLK_OFFSET
+9 KEY_STATE_LONGPRESS_OFFSET
+4 KEY_STATE_PRESS_CLK_LENGTH
+1 KEY_STATE_PRESS_COUNT_LENGTH
+4 KEY_STATE_RELEASE_CLK_LENGTH
+1 KEY_STATE_LONGPRESS_LENGTH
+)
+(
+0  SHUTTER_RIGHT_KEY_NUM
+1  SHUTTER_LIKE_KEY_NUM
+2  SHUTTER_DOWN_KEY_NUM
+3  SHUTTER_PHOTO_KEY_NUM
+4  SHUTTER_UP_KEY_NUM
+5  SHUTTER_LEFT_KEY_NUM
+6  SHUTTER_MOVE_KEY_NUM
+7  SHUTTER_FUN_KEY_NUM
+)
+(
+//0xaa ANDROID_INITIAL_MOVE_X //170
+//0x78 ANDROID_INITIAL_MOVE_Y //120
+//0x69 IPHONE_INITIAL_MOVE_X
+//0x38 IPHONE_INITIAL_MOVE_Y
+0X55 ANDROID_EVERY_MOVE_SIZE
+0x07 IPHONE_EVERY_MOVE_SIZE
+0xfff IPHONE_ONCE_MAX_MOVE_VALUE
+)
+(
+0x00 MOVE_COMBINE_KEY
+0x01 MOVE_SINGLE_KEY
+)
+(
+//6key or 7key conf
+6 SHUTTER_SIX_KEY
+7 SHUTTER_SEVEN_KEY
+8 SHUTTER_EIGHT_KEY
+)
+(
+0x07 HCI_UART_TX_GPIO_NUM
+0x06 HCI_UART_RX_GPIO_NUM
+0x09 HCI_UART_RTS_GPIO_NUM
+0x0a HCI_UART_CTS_GPIO_NUM
+0x0c HCI_PMW_12MHZ_GPIO_NUM
+)
+(
+0x00 COMMAND_SUCCEEDED
+0x01 COMMAND_UNKNOWN
+0x0c COMMAND_DISALLOWED
+)
+(
+0x01 HCI_H4_TYPE_CMD
+0x02 HCI_H4_TYPE_ACL
+0x04 HCI_H4_TYPE_EVENT
+)
+(
+0x00 BT_ACL_START_NO_FLUSH
+0x01 BT_ACL_CONT
+0x02 BT_ACL_START
+)
+(
+0x01 HCI_OGF_LINK_CONTROL
+0x02 HCI_OGF_LINK_POLICY
+0x03 HCI_OGF_CONTROLLER_AND_BASEBAND
+0x04 HCI_OGF_INFOMATIONAL_PARAM
+0x05 HCI_OGF_STATUS_PARAM
+0x06 HCI_OGF_TEST
+0x08 HCI_OGF_LE_CONTROLLER
+0x3f HCI_OGF_VENDOR_SPECIFIC_DEBUG
+)
+(
+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
+)
+(
+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
+)
+(
+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
+)
+(
+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
+)
+(
+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
+)
+(
+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
+)
+(
+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
+
+0X12 HCI_VENDOR_CMD_PATCH_SEC_INIT
+0X13 HCI_VENDOR_CMD_PATCH_SEC
+0x14 HCI_VENDOR_CMD_SET_FLOW_CONTROL
+)
+(
+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
+)
+(
+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
+)
+(
+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
+)
+(
+0 G24_DISCONN_STATE
+1 G24_CONN_STATE
+
+8 G24_CH_NUMBER
+16 G24_CH_POLL_COUNT
+
+0x20 MOUSE_BLE_L2CAP_TXBUFF_SIZE
+
+0x5a USB_INTERFACE_INSERT
+0xa5 USB_INTERFACE_REMOVE
+
+
+10 LE_LPM_DISABLE_TO
+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
+6 LE_INTERVAL_7_5MS//7.5ms
+12 CLASSIC_INTERVAL_7_5MS
+14 CLASSIC_INTERVAL_8_75MS
+18 CLASSIC_INTERVAL_11_25MS
+
+)(
+256 l2cap_lpm_txbuf_len
+)
+(
+4 L2CAP_TX_FIFO_SIZE
+8 L2CAP_TX_BUFF_CNT
+
+)
+(
+0xf00 mem_dcoc_buf
+0xff0 mem_dcoc_buf_end
+)
+(
+0xf00 mem_le_l2cap_buf		//0x100
+)
+(
+0xd00 mem_ble_tx_buff0
+0x60 mem_ble_l2cap_tx_buff_size
+)
+(
+0xc00 mem_h5rx_buf//0x400
+0xeff mem_h5rx_buf_end
+0xf00 mem_h5tx_buf
+0xfff mem_h5tx_buf_end
+)
+(
+0x4c00 mem_savelist
+)
+(
+	  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
+	0x8001 core_revid
+	0x8003 core_kick
+	0x8004 core_write_wdt
+	0x8005 core_lpm_wr
+	0x8006 core_misc_ctrl
+	0x8007 core_otp_rdata
+	0x8007 core_efuse_rdata
+	0x800a core_ccm_ctrl
+	0x800b core_write_wdt2
+	0x8010 core_reset
+	0x8011 core_encrypt
+	0x8012 core_lpm_wr2
+	0x8020 core_set_bistfix
+	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_otp_addr
+	0x8046 core_otp_din
+	0x8046 core_otp_ctrl2
+	0x8047 core_otp_ctrl
+	0x8047 core_otp_pab
+	0x8048 core_xtal_stable_time
+	0x8049 core_gpio_ds
+	0x804c core_lpm_reg
+	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_ctrl
+	0x8061 core_nec_ctrl
+	0x8062 core_nec_start_addr
+	0x8064 core_nec_end_addr
+	0x8066 core_nec_rptr
+	0x8068 core_ccm_input_playload_addr
+	0x806a core_ccm_output_playload_addr
+	0x806c core_ccm_aad0
+	0x806d core_ccm_aad1
+	0x806e core_ccm_aad2
+	0x806f  core_bist_ctrl
+	0x8070 core_gpio_conf
+	0x8080 core_spid_ctrl
+	0x8081 core_spid_delay
+	0x8082 core_spid_txlen
+	0x8084 core_spid_txaddr
+	0x8086 core_spid_rxaddr
+	0x8088 core_spid_rxlen
+	0x808a core_iicd_ctrl
+	0x808b core_iicd_scl_low
+	0x808c core_iicd_scl_high
+	0x808d core_iicd_start_setup
+	0x808e core_iicd_start_hold
+	0x808f core_iicd_stop_setup
+	0x8090 core_iicd_data_setup
+	0x8091 core_iicd_data_hold
+	0x8092 core_iicd_txlen
+	0x8094 core_iicd_txaddr
+	0x8096 core_iicd_rxaddr
+	0x8098 core_iicd_rxlen
+	0x809a core_pwm_en
+	0x809b core_pwm_init
+	0x809c core_pwm_pcnt0
+	0x809e core_pwm_ncnt0
+	0x80a0 core_pwm_pcnt1
+	0x80a2 core_pwm_ncnt1
+	0x80a4 core_pwm_pcnt2
+	0x80a6 core_pwm_ncnt2
+	0x80a8 core_pwm_pcnt3
+	0x80aa core_pwm_ncnt3
+	0x80ac core_pwm_pcnt4
+	0x80ae core_pwm_ncnt4
+	0x80b0 core_pwm_pcnt5
+	0x80b2 core_pwm_ncnt5
+	0x80b4 core_pwm_pcnt6
+	0x80b6 core_pwm_ncnt6
+	0x80b8 core_pwm_pcnt7
+	0x80ba core_pwm_ncnt7
+	0x80bc core_pwm_sync
+	0x80bd core_pwm_timermode
+	0x80be core_pwm_autoload
+	0x80bf core_sum_ctrl
+	0x80c0 core_ccm_inptr
+	0x80c2 core_dac_ctrl	
+	0x80c3 core_dac_vol
+	0x80c4 core_dac_saddr
+	0x80c6 core_dac_len
+	0x80c8 core_dac_coef
+	0x80cb core_ccnt_bit
+	0x80cc core_sadc_ctrl
+	0x80cd core_sadc_clkdiv
+	0x80ce core_sadc_saddr
+	0x80d0 core_sadc_eaddr
+	0x80d2 core_keybuf_saddr
+	0x80d4 core_gpio_conf_hi
+
+	0x8100 core_clkn
+	0x8108 core_misc_status
+	0x8109 core_qdec_cntx
+	0x810a core_watchdog_cnt
+	0x810b core_uart_status
+	0x810c core_uart_rbaud
+	0x810e core_uart_txitems
+	0x8110 core_uart_trptr
+	0x8112 core_uart_rxitems
+	0x8114 core_uart_rdptr
+	0x8116 core_uart_rwptr
+	0x8118 core_debug_baud
+	0x811a core_ccm_outptr
+	0x811c core_gpio_in
+	0x811d core_gpio_in1
+	0x811e core_adc_sum
+	0x8120 core_nec_wptr
+	0x8122 core_current_otp_addr
+	0x8124 core_spid_remain
+	0x8126 core_iicd_remain
+	0x8128 core_dma_status
+	0x8129 core_perf_status
+	0x812a core_adc_in
+	0x812c core_nec_rxitem
+	0x812e core_otpd_remain
+	0x8130 core_lpm_ctrl
+	0x8132 core_lpm_isogate
+	0x8133 core_lpm_ldosel
+	0x8134 core_io_vsel
+	0x8135 core_io_doze_en
+	0x813a core_xtal_cap
+	0x813d core_xtal_ib
+	0x813e core_lpm_xtalcnt
+	0x813f core_lpm_buckcnt
+	0x8140 core_lpm_ldocnt
+	0x8141 core_puwakeup
+	0x8142 core_lpm_sysctl
+	0x8143 core_ucode_flag
+	0x8144 core_peripheral_lock
+	0x8145 core_mpu_s0_saddr
+	0x8147 core_mpu_s0_eaddr
+	0x8149 core_mpu_s1_saddr
+	0x814b core_mpu_s1_eaddr
+	0x814d core_gpio_wakeup_cfg
+	0x8155 core_aes_decode_key_init
+	0x815b core_clk_counter
+	0x815e core_bist_done
+	0x8160 core_bist_fail
+	0x8162 core_dac_rptr	
+	0x8164 core_sadc_data	
+	0x8166 core_rccnt_counter
+		
+	0x8203 core_ice_ctrl
+	0x8204 core_ice_status
+	0x8205 core_ice_break0
+	0x8207 core_ice_break1
+  
+
+	0x8900 modem_en
+	0x8960 core_rf_rx_agc_ctrl
+	0x8961 core_rf_rx_gain_fix
+	0x8968 core_agc_wb_sat_th
+	0x8969 core_agc_nb_sat_th
+	0x89a0 modem_rssi
+	0x89a1 modem_wb_pow
+	0x89a2 modem_nb_pow
+	0x89a3 modem_gain
+	0x89a4 modem_status
+
+	0x8a00 core_bbpll_ctrl0              
+	0x8a01 core_bbpll_ctrl1              
+	0x8a02 core_bbpll_cfg0               
+	0x8a03 core_bbpll_cfg1               
+	0x8a04 core_bbpll_cfg2               
+	0x8a05 core_bbpll_cfg3               
+	0x8a06 core_bbpll_cfg4               
+	0x8a07 core_gpadc_ctrl
+	0x8a08 core_gpadc_cfg0
+	0x8a09 core_gpadc_cfg1
+	0x8a0a core_gpadc_cfg2
+	0x8a0b core_gpadc_cfg3
+	0x8a0c core_gpadc_status
+	0x8a0d core_vtest_ctrl0
+	0x8a0e core_vtest_ctrl1
+	0x8a0f core_ldo_trx_ctrl0
+	0x8a10 core_ldo_trx_ctrl1
+	0x8a11 core_ldo_trx_ctrl2
+	0x8a12 core_ldo_rfpll_ctrl
+    0x8a13 core_ldo_trx_cfg0
+    0x8a14 core_ldo_trx_cfg1
+    0x8a15 core_ldo_trx_cfg2
+    0x8a16 core_ldo_rfpll_mnc_cfg2
+
+    0x8a20 core_rfpll_afc_ctrl0
+    0x8a21 core_rfpll_afc_ctrl1
+    0x8a22 core_rfpll_afc_ctrl2
+    0x8a23 core_rfpll_en_ctrl0
+    0x8a24 core_rfpll_en_ctrl1
+    0x8a25 core_rf_en_ctrl0
+    0x8a26 core_rf_en_ctrl1
+
+	0x8a30 core_rx_force_en_ctrl
+	0x8a31 core_rx_gc_force_val
+	0x8a32 core_rx_lna_isel_force_val
+
+	0x8a40 core_rx_lna_hg_isel_gc7        
+	0x8a41 core_rx_lna_hg_isel_gc6        
+	0x8a42 core_rx_lna_hg_isel_gc5        
+	0x8a43 core_rx_lna_lg_isel_gc4        
+	0x8a44 core_rx_lna_lg_isel_gc3        
+	0x8a45 core_rx_lna_lg_isel_gc2        
+	0x8a46 core_rx_lna_lg_isel_gc1        
+	0x8a47 core_rx_lna_lg_isel_gc0        
+	0x8a48 core_rx_abb_gc_gc8              
+	0x8a49 core_rx_abb_gc_gc7              
+	0x8a4a core_rx_abb_gc_gc6              
+	0x8a4b core_rx_abb_gc_gc5              
+	0x8a4c core_rx_abb_gc_gc4              
+	0x8a4d core_rx_abb_gc_gc3              
+	0x8a4e core_rx_abb_gc_gc2              
+	0x8a4f core_rx_abb_gc_gc1              
+	0x8a50 core_rx_abb_gc_gc0              
+
+	0x8a60 core_tx_ctrl0
+	0x8a61 core_tx_ctrl1
+	0x8a62 core_tx_ctrl2
+	0x8a63 core_tx_ctrl3
+
+	0x8a70 core_rfpll_cal_ctrl0
+	0x8a71 core_rfpll_cal_ctrl1
+	0x8a72 core_rfpll_cal_ctrl2
+	0x8a73 core_rfpll_cal_ctrl3
+	0x8a74 core_rfpll_cal_ctrl4
+	0x8a75 core_rfpll_cal_ctrl5
+	0x8a76 core_rfpll_cal_ctrl6
+	0x8a77 core_rfpll_cal_ctrl7
+	0x8a78 core_rfpll_cal_ctrl8
+	0x8a79 core_rfpll_cal_ctrl9
+	0x8a7a core_rfpll_cal_ctrl10
+	0x8a7b core_rfpll_cal_ctrl11
+	0x8a7c core_rfpll_cal_result0
+	0x8a7d core_rfpll_cal_result1
+	0x8a7e core_rfpll_cal_result2
+
+    0x8a80 core_rfpll_cfg0
+    0x8a81 core_rfpll_cfg1
+    0x8a82 core_rfpll_cfg2
+    0x8a83 core_rfpll_cfg3
+    0x8a84 core_rfpll_cfg4
+    0x8a85 core_rfpll_cfg5
+    0x8a86 core_rfpll_cfg6
+    0x8a87 core_rfpll_cfg7
+
+    0x8a88 core_rx_cfg0
+    0x8a89 core_rx_cfg1
+    0x8a8a core_rx_cfg2
+    0x8a8b core_rx_cfg3
+    0x8a8c core_rx_cfg4
+    0x8a8d core_rx_cfg5
+    0x8a8e core_rx_cfg6
+    0x8a8f core_rx_cfg7
+    0x8a90 core_rx_cfg8
+
+	0x8aa0 core_rx_tiai_dcoc_gc0          
+	0x8aa1 core_rx_tiaq_dcoc_gc0          
+	0x8aa2 core_rx_tiai_dcoc_gc1          
+	0x8aa3 core_rx_tiaq_dcoc_gc1          
+	0x8aa4 core_rx_tiai_dcoc_gc2          
+	0x8aa5 core_rx_tiaq_dcoc_gc2          
+	0x8aa6 core_rx_tiai_dcoc_gc3          
+	0x8aa7 core_rx_tiaq_dcoc_gc3          
+	0x8aa8 core_rx_tiai_dcoc_gc4          
+	0x8aa9 core_rx_tiaq_dcoc_gc4          
+	0x8aaa core_rx_tiai_dcoc_gc5          
+	0x8aab core_rx_tiaq_dcoc_gc5          
+	0x8aac core_rx_tiai_dcoc_gc6          
+	0x8aad core_rx_tiaq_dcoc_gc6          
+	0x8aae core_rx_tiai_dcoc_gc7          
+	0x8aaf core_rx_tiaq_dcoc_gc7          
+	0x8ab0 core_rx_abbi_dcoc_gc0
+	0x8ab1 core_rx_abbq_dcoc_gc0
+	0x8ab2 core_rx_abbi_dcoc_gc1
+	0x8ab3 core_rx_abbq_dcoc_gc1           
+	0x8ab4 core_rx_abbi_dcoc_gc2
+	0x8ab5 core_rx_abbq_dcoc_gc2
+	0x8ab6 core_rx_abbi_dcoc_gc3
+	0x8ab7 core_rx_abbq_dcoc_gc3
+	0x8ab8 core_rx_abbi_dcoc_gc4
+	0x8ab9 core_rx_abbq_dcoc_gc4
+	0x8aba core_rx_abbi_dcoc_gc5
+	0x8abb core_rx_abbq_dcoc_gc5
+	0x8abc core_rx_abbi_dcoc_gc6
+	0x8abd core_rx_abbq_dcoc_gc6
+	0x8abe core_rx_abbi_dcoc_gc7
+	0x8abf core_rx_abbq_dcoc_gc7
+	0x8ac0 core_rx_abbi_dcoc_gc8
+	0x8ac1 core_rx_abbq_dcoc_gc8
+	0x8ac2 core_rx_tiai_dcoc_force
+	0x8ac3 core_rx_tiaq_dcoc_force
+	0x8ac4 core_rx_abbi_dcoc_force
+	0x8ac5 core_rx_abbq_dcoc_force
+	0x8ac8 core_chgpump_ctrl
+
+	0x8c00 core_usb_config
+	0x8c01 core_usb_addr
+	0x8c02 core_usb_rx_saddr
+	0x8c04 core_usb_rx_eaddr
+	0x8c06 core_usb_rxptr
+	0x8c08 core_usb_tx_saddr0
+	0x8c0a core_usb_tx_saddr1
+	0x8c0c core_usb_tx_saddr2
+	0x8c0e core_usb_tx_saddr3
+	0x8c10 core_usb_epmap
+	0x8c11 core_usb_pupd
+	0x8c12 core_usb_hmode
+	0x8c13 core_usb_int_mask
+	0x8c18 core_usb_trig
+	0x8c19 core_usb_stall
+	0x8c1a core_usb_toggle
+	0x8c1b core_usb_clear_nak
+	0x8c20 core_usb_rx_wptr
+	0x8c22 core_usb_status
+	0x8c24 core_usb_stall_status
+	0x8c25 core_usb_txbusy
+	0x8c26 core_usb_sof_cnt
+	0x8c28 core_usb_rxcnt
+
+	
+
+
+
+    
+    
+)
+(
+
+4 BIST_CTRL_FIX_SCHED_RAM
+5 BIST_CTRL_FIX_XRAM
+6 BIST_CTRL_FIX_PATCH_RAM
+
+7 AES_EN
+)
+(
+4 rx_freq_offset
+2 tx_freq_offset
+)
+(
+
+  4 whiteoff_bit
+  6 clksel_rc
+  1 clksel_dpll_24M
+  5 clksel_dpll
+  4 clksel_xtal
+  5 adc_rccal
+  0 bpf_rccal
+  1 demod_clkoff
+)
+(
+  4 cold_wake
+  5 gpio_latch
+  6 retmem_cs
+  7 isogate
+)
+(
+  2 fast_wake
+  3 ice_mode
+  4 reload_code
+)
+(
+1 lpmreg_sel_counter
+2 lpmreg_sel_scanmode
+)
+(
+0 SPI_LOCK_BIT
+1 PWM_LOCK_BIT
+2 UART_LOCK_BIT
+3 IIC_LOCK_BIT
+4 ADPCM_LOCK_BIT
+5 ROM_LOCK_BIT
+6 OPTION_LOCK
+6 OTP_NOT_LIMIT
+7 OTP_LIMIT
+)
+(
+4 LPM_DOZE_EN_BIT	
+)
+(
+  0x01 RCCNT_START
+  0x02 SPID_START
+  0x04 IICD_START
+  0x08 OTP_KEY_LOCK
+  0x10 INIT_KEY
+  0x20 SHIFT_KEY
+  0X80 CCNT_START
+)
+(
+  0 OTPD_CRCOK
+  1 OTPD_DONE
+  2 SPID_CRCOK
+  3 SPID_DONE
+  4 IICD_CRCOK
+  5 IICD_DONE
+  6 IICD_ACK
+)
+(
+1 UART_STATUS_TX_BUSY
+2 UART_STATUS_RX_FIFO_EMPTY
+3 UART_STATUS_RX_FIFO_FULL
+4 UARTB_STATUS_TX_BUSY
+5 UARTB_STATUS_RX_FIFO_EMPTY
+6 UARTB_STATUS_RX_FIFO_FULL
+)
+(//core_uart_clksel
+0 UART_CLOCK_SELECT_BIT
+0xFE UART_CLOCK_SELECT_CRYSTAL
+0x01 UART_CLOCK_SELECT_DPLL
+
+24000000 uart_clock_freq_24M
+48000000 uart_clock_freq_48M
+)
+(//bit map of core_uart_ctrl
+0 BIT_UART_CONTROL_ENABLE
+1 BIT_UART_CONTROL_PARITY
+2 BIT_UART_CONTROL_DATA_LENGTH
+3 BIT_UART_CONTROL_STOP_BIT_SIZE
+4 BIT_UART_CONTROL_FLOW_CONTROL
+5 BIT_UART_CONTROL_7816_SMART_CARD_PROTOCOL
+6 BIT_UART_CONTROL_HALF_DUPLEX_SINGLE_LINE_UART
+7 BIT_UART_CONTROL_RATE_BAUD_SETTING
+)
+(//FUN of core_uart_ctrl
+0x01 FUN_UART_CONTROL_ENABLE
+0x06 FUN_UART_CONTROL_PARITY_ODD
+0x04 FUN_UART_CONTROL_PARITY_EVEN
+0x08 FUN_UART_CONTROL_STOP_2BIT
+0x00 FUN_UART_CONTROL_STOP_1BIT
+0x10 FUN_UART_CONTROL_FLOW_CONTROL_ENABLE
+0x20 FUN_UART_CONTROL_7816_SMART_CARD_PROTOCOL
+0x40 FUN_UART_CONTROL_HALF_DUPLEX_SINGLE_LINE_UART
+0x80 FUN_UART_CONTROL_SETTING_RATE_BAUD
+)
+(//bit map of core_nec_control
+0x00 BIT_NEC_ENABLE
+0x01 BIT_NEC_CLK_DIVIDE_NUM
+)
+(//FUN  of core_nec_control
+0x01 FUN_NEC_ENABLE
+0x30 FUN_NEC_CLK_DIVIDE_24	//24M , 
+)
+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
+(
+	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_SARADC_DMA
+	9 CLOCK_OFF_KEYSCAN
+	9 CLOCK_OFF_NEC
+	0x0a CLOCK_OFF_USB
+	0x0b CLOCK_OFF_QDECODER
+	0x0c CLOCK_OFF_SPI
+	0x0d CLOCK_OFF_PWM
+	0x0e CLOCK_OFF_UARTB
+	0x0f CLOCK_OFF_UART
+)
+(
+  0 gpcfg_input
+  6 gpcfg_dac_p  
+  7 gpcfg_dac_n
+  8 gpcfg_uart_txd
+  9 gpcfg_uart_rxd
+  10 gpcfg_uart_rts
+  11 gpcfg_uart_cts
+  
+  16 gpcfg_pwm_out0
+  17 gpcfg_pwm_out1
+  18 gpcfg_pwm_out2
+  19 gpcfg_pwm_out3
+  20 gpcfg_pwm_out4
+  21 gpcfg_pwm_out5
+  22 gpcfg_pwm_out6
+  23 gpcfg_pwm_out7
+  24 gpcfg_nec_input
+  
+  31 gpcfg_spid_miso
+  32 gpcfg_spid_ncs
+  33 gpcfg_spid_sck
+  34 gpcfg_spid_mosi
+  35 gpcfg_spid_sdio
+  
+  44 gpcfg_iic_scl
+  45 gpcfg_iic_sda
+  
+  62 gpcfg_output_low
+  63 gpcfg_output_high
+  
+  0x00 gpcfg_high_impedance
+  0x40 gpcfg_pullup
+  0x80 gpcfg_pulldown
+  0xc0 gpcfg_no_ie
+)
+(
+16	GPIO_NUMBER
+8	GPIO_NUMBER_EXT
+0xFF  GPIO_DISABLE
+)
+(
+  0x00   SP_FLAG_STANDBY
+  0x02   LE_SP_FLAG_COMMIT_256
+
+)
+(
+  0x00   SP_CALC_STANDBY
+  0x03   SP_CALC_PUBKEY_256
+  0x04   SP_CALC_DHKEY_256
+)
+(
+  0x00   SP_KEY_INVALID
+  0x03   SP_KEY_VALID_256
+
+)
+(
+0 SECURE_CONNECTIONS_LE_BIT
+1 SECURE_CONNECTIONS_BR_BIT
+)
+(
+9 UI_STATE_BLE_CONNECTED
+10 UI_STATE_BLE_WRITE_RCV
+11 UI_STATE_BLE_ADV
+12 UI_STATE_BTN_DOWN
+)
+(
+0 BT_CMD_STANDBY
+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
+31 BT_CMD_STORE_RECONN_INFO_LE
+34 BT_CMD_START_24G
+35 BT_CMD_STOP_24G
+36 BT_CMD_PAIR_24G
+)
+(
+0x00 BT_EVT_NULL
+0x0F BT_EVT_DISCOVERY_STOPED
+0x10 BT_EVT_BUTTON_LONG_PRESSED
+0x14 BT_EVT_LE_CONNECTED
+0X15 BT_EVT_LE_DISCONNECTED
+0x17 BT_EVT_BUTTON_ENTER_HIBERNATE
+0x25 BT_EVT_BUTTON_ADJUST_DPI
+0x28 BT_EVT_LE_WRITE_REQUEST
+0x29 BT_EVT_LE_ENC_INFO
+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
+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
+0x42 BT_EVT_LE_UPDATE_PHY
+0x43 BT_EVT_LE_GET_PASSKEY
+0x44 BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED
+)
+(
+0 OFF
+1 ON
+)
+(
+	160 UI_HUNDRED_MILLISECOND_TIME
+	0XFF UI_BUTTON_GPIO_DISABLE
+)
+(
+0x00 UI_BUTTON_STATE_DOWN
+0x01 UI_BUTTON_STATE_UP
+)
+(
+	0 IPC_CONTINUE_PROCESS
+	1 IPC_SKIP_CONTINUE_PROCESS
+)
+(//led style struct 
+0 		LED_OFFSET_LED_TYPE
+1 		LED_OFFSET_BLINK_COUNT
+2		LED_OFFSET_LED_GPIO
+3		LED_OFFSET_ON_TIME
+5		LED_OFFSET_OFF_TIME
+7 		LED_OFFSET_CB_LEDON
+9		LED_OFFSET_CB_LEDOFF
+11		LED_OFFSET_LENGTH
+)
+(//LED state
+0 UI_LED_STATE_BLINK_STOP
+1 UI_LED_STATE_BLINK_START
+2 UI_LED_STATE_LIGHTING
+3 UI_LED_STATE_DARKING
+4 UI_LED_STATE_BLINK_LIGHTING
+5 UI_LED_STATE_BLINK_DARKING
+
+0xFF LED_INFINITE_FLASH_NUM
+
+)
+(
+0x00 STANDARD_REQ
+0x01 CLASS_REQ
+0x02 MANUFACTURER_REQ
+)
+(
+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)
+)
+(
+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
+)
+(
+0x21 DSC_HID			      // HID Class Descriptor
+0x22 DSC_HID_REPORT			  // HID Report Descriptor
+)
+(
+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,
+)
+(
+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    
+)
+(
+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
+)
+(
+)
+(
+0 USB_STATUS_SETUP
+1 USB_STATUS_SUSPEND
+2 USB_STATUS_NAK
+3 USB_STATUS_RESET
+4 USB_STATUS_ACK
+5 USB_STATUS_RXREADY
+6 USB_STATUS_RXFULL
+7 USB_STATUS_TXDONE0
+8 USB_STATUS_TXDONE1
+9 USB_STATUS_TXDONE2
+10 USB_STATUS_TXDONE3
+)
+(
+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
+0x23 USB_EP2_BIT_CONSUMER
+0x24 USB_EP2_N_KEY_ROLLOVER
+0x01 MAC_BOOT_MODE
+0x02 R_KEY
+0x03 LR_KEY
+)
+(
+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
+)
+(
+//--------------------------------------------------
+// Define device states
+0x00 DEV_ATTACHED	// Device is in Attached State
+0x01 DEV_POWERED	// Device is in Powered State
+0x02 DEV_DEFAULT		// Device is in Default State
+0x03 DEV_ADDRESS	// Device is in Addressed State
+0x04 DEV_CONFIGURED	// Device is in Configured State
+0x05 DEV_SUSPENDED	// Device is in Suspended State
+)
+(
+// Define wIndex bitmaps
+0x81 IN_EP1                    // Index values used by Set and Clear
+0x01 OUT_EP1                   // commands for Endpoint_Halt
+0x82 IN_EP2              
+0x02 OUT_EP2             
+0x83 IN_EP3              
+0x03 OUT_EP3             
+)
+(
+0 EP0_STALL
+1 EP1_IN_STALL
+2 EP1_OUT_STALL
+3 EP2_IN_STALL
+4 EP2_OUT_STALL
+5 EP3_IN_STALL
+6 EP3_OUT_STALL
+)
+(
+// 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
+)
+(
+640 TIMER_NAK_DELAY
+5000 TIMER_WAKEUP_DELAY
+)
+(
+
+8 UTIL_FIFO_LEN
+-1 UTIL_FIFO_OFFSET
+)
+0x2000 start
+0x2001 soft_reset
+0x200e main_loop
+0x2018 connection_dispatch
+0x201d connection_incontext
+0x2025 connection_nosniff
+0x202a idle_dispatch
+0x2031 idle_exit
+0x2033 idle_le_create_conn
+0x2036 context_load
+0x2041 context_save
+0x2047 context_get_next
+0x2049 context_get_next_loop
+0x204d context_get_next_cont
+0x2054 context_get_next_sniff
+0x2056 context_new
+0x205d context_check_idle
+0x205f context_search_conn_handle
+0x2060 context_search_conn_handle2
+0x2062 context_search_plap
+0x2064 context_search_plap2
+0x2066 context_search_insniff
+0x2068 context_search_sniff_window
+0x2069 context_search
+0x206c context_search_loop
+0x206e context_search_next
+0x2073 context_search_empty
+0x2075 context_search_lap
+0x2076 context_search_lap_cont
+0x207b context_search_handle
+0x2081 context_search_sniff
+0x2082 context_search_sniff_loop
+0x2090 context_search_sniff_sc
+0x2093 context_search_meet1
+0x2094 context_search_meet
+0x2097 context_search_sniff_miss
+0x209d sign_pdata_temp
+0x20a7 sign_pdata_temp_p0
+0x20ad context_check_inconn
+0x20af context_check_a_wack
+0x20b4 context_get_anchor
+0x20c0 context_next_anchor
+0x20c7 context_search_window
+0x20cf end_of_packet
+0x20dc sniff_check_window
+0x20e4 calc_slot_offset
+0x20ee calc_bt_portion
+0x20f0 calc_slot_offset_loop
+0x20f2 calc_skip_bt
+0x20f7 calc_clke_offset
+0x2105 calc_clke_pos
+0x2107 calc_clke
+0x2109 calc_clke2
+0x2113 calc_clke_pos2
+0x2115 calc_clke_pos_adj
+0x2117 qsetxor
+0x211c qset1_p
+0x211d qset_start
+0x211e qset_p
+0x2122 rx_dcoc_avg
+0x2123 btdma
+0x212f rx_dcoc_loop
+0x2135 rx_dcoc
+0x2148 rx_dcoc_loop2
+0x2155 shutdown_radio
+0x2164 set_sync_on
+0x2173 set_freq_rx
+0x217d aac_res_lookup
+0x218b aac_res_lookup_end
+0x218d set_lemode_2m_16m
+0x2190 set_lemode_1m_16m
+0x2193 set_lemode
+0x219b set_lemode_2m
+0x21a6 set_lemode_1m
+0x21aa rf_rx_enable
+0x21be rf_rx_agc_set
+0x21c5 rf_rx_enable_no_soft_agc
+0x21ca set_freq_tx_int
+0x21d4 calc_freq
+0x21ee ghp_lookup
+0x21f4 ghp_1m
+0x21ff set_freq_tx
+0x2202 txon
+0x2212 set_tx_power
+0x221d set_tx_power_0db
+0x2220 set_tx_power_8a63_28
+0x2222 set_tx_power_3db
+0x2225 set_tx_power_8a63_2f
+0x2227 set_tx_power_5db
+0x222b set_tx_power_7db
+0x222f set_tx_power_10db
+0x2234 set_tx_power_f3db
+0x2238 set_tx_power_f5db
+0x223c set_tx_power_f10db
+0x2240 set_tx_power_f20db
+0x2244 initialize_radio
+0x2245 initialize_radio_wait
+0x2249 initialize_radio_loop
+0x224f initialize_radio_cont
+0x2266 initialize_radio2
+0x2276 initialize_radio_16m
+0x2281 set_xtal_cap
+0x2287 rfpll_aac_ghpc
+0x2293 rfpll_aac_ghpc_once
+0x2296 rfpll_cal_loop
+0x229d dpll_on
+0x22a3 dpll_on_24m
+0x22ab aac_ghpc
+0x22af wait_cal_done
+0x22be aac_ghpc_1m
+0x22c5 read_cal_result
+0x22cb dpll_ring_ibias_calc
+0x22cd save_rssi
+0x22e1 save_rssi_store
+0x22e3 byte_sign_extern
+0x22e8 rssi_hex2dec
+0x22ec bcd
+0x22f3 gain_control
+0x2312 add_negative
+0x231a gain_increase
+0x231e gain_descend
+0x2321 set_rx_gain2
+0x2323 set_rx_gain0
+0x2325 set_rx_gain1
+0x2327 ahead_window
+0x2336 get_clk
+0x233a get_clkbt
+0x233e assert
+0x2340 sleep
+0x2343 sleep_loop
+0x2347 init_param
+0x2369 lpmstate
+0x2377 lpmwake
+0x2383 power_up
+0x2384 boot_load
+0x2387 lpm_poweron_retmem
+0x2397 xtal_fast_wake
+0x239c lpm_write_lock
+0x23a5 lpm_write_ice_disable
+0x23a9 lpm_write_ice_enable
+0x23ad lpm_preon_counter
+0x23af lpm_write_3bytes
+0x23b1 lpm_write_mpu_s0
+0x23b2 lpm_write_dword
+0x23b3 lpm_write_loop
+0x23b8 lpm_write_mpu_s1
+0x23ba lpm_disable_exen_output
+0x23be lpm_disable_io_dozed
+0x23c2 lpm_save_sel_hv
+0x23c3 lpm_write_sel_hv
+0x23c4 lpm_write_wait
+0x23c7 lpm_write_io_vsel
+0x23c9 lpm_load_context
+0x23d7 lpm_save_context
+0x23e1 lpm_write_gpio_wakeup
+0x23e5 lpm_write_gpio_loop
+0x23eb lpm_write_gpio_loop_next
+0x23f0 lpo_calibration
+0x23f7 lpo_cal_inited
+0x23fc lpm_doze
+0x23ff lpm_hibernate
+0x2406 lpm_sleep
+0x2409 lpm_sleep_skip_cb_function
+0x2417 lpm_sleep_loop
+0x241d lpm_enter_sleep
+0x2421 lpm_recover_clk
+0x242a lpm_recover_xtal
+0x242c lpm_recover_timeout
+0x2449 lpm_adjust_clk
+0x245d lpm_adjust_positive
+0x2460 lpm_clear_counter
+0x2463 lpm_dispatch
+0x246d lpm_dispatch_next
+0x248b lpm_dispatch_sleep
+0x248c lpm_dispatch_lpo
+0x2494 lpm_dispatch_unconn
+0x2498 lpm_unconn_cont
+0x249a lpm_sleep_btclk
+0x249f lpm_mult_wait_timeout
+0x24a9 lpm_match
+0x24ae lpm_lost
+0x24b7 lpm_mult_short
+0x24bb lpm_mult_long
+0x24be lpm_get_wake_lock
+0x24c2 lpm_put_wake_lock
+0x24c6 lpm_check_wake_lock
+0x24d8 lpm_uart_wake_lock
+0x24dd le_init_conn
+0x24f0 le_init_master
+0x24fc le_init_slave
+0x250d le_conn_dispatch
+0x2516 le_master_dispatch
+0x2524 le_master_disconn
+0x2525 le_disable_master
+0x2527 le_slave_dispatch
+0x2538 le_slave_crc_fail
+0x2538 le_slave_match
+0x2547 le_slave_cont
+0x254d le_slave_unsync
+0x2551 le_check_md
+0x2555 le_slave_more_data
+0x255b le_slave_disconn
+0x255b le_disconnect
+0x2562 le_clear_connection_info
+0x2567 le_clear_pairing_state
+0x256c le_got_first_packet
+0x2579 le_enable_phy_by_pdata
+0x257b le_enable_phy_by_pdata1
+0x2582 le_enable_2m
+0x2585 le_enable_coded_s2
+0x2585 le_enable_coded
+0x2589 le_enable_coded_s8
+0x258d le_enable
+0x2591 le_disable
+0x2597 le_prep
+0x259d le_prep_next
+0x25a1 le_rx_setfreq
+0x25a2 le_rf_rx_enable
+0x25a6 le_tx_setfreq
+0x25a8 le_tx_setfreq0
+0x25aa le_setfreq
+0x25b7 le_ctf_normal
+0x25ba le_ctf_low
+0x25bd le_ctf_test
+0x25c0 le_sca_map
+0x25d0 le_setup
+0x25d9 le_setup_master
+0x25de le_context_nextevent
+0x25ef le_context_nexthop
+0x25f7 le_nexthop_nowrap
+0x25f9 le_calc_channel_map
+0x25fd le_count_channels_loop
+0x25ff le_count_channels_notused
+0x2605 le_map_channel
+0x260b le_map_channel_next
+0x2610 le_map_channel_cont
+0x2612 le_map_channel_loop
+0x2615 le_map_channel_skip
+0x261a le_map_channel_end
+0x261d le_wait_tx
+0x2620 le_wait_master
+0x2623 le_receive_adv
+0x2627 le_receive_slave
+0x262d le_receive_packet
+0x262e le_receive_rxon
+0x2635 le_receive_nolr
+0x263e le_receive_on_attempt
+0x264b le_receive_skip
+0x2657 le_rx_loop
+0x265c le_rx_dec
+0x2668 le_rx_dec_loop
+0x266f le_rx_dec_loop_end
+0x2671 le_rx_nopayload
+0x2683 le_rx_match
+0x2686 le_crc_fail_tx
+0x268d le_match_set_sync_on
+0x268f le_match_set_txfreq
+0x2692 le_dec_init
+0x2697 le_dec_start
+0x26ab le_pcnt_rx_sub1
+0x26b0 le_pcnt_rx_sub1_0
+0x26b5 le_dec
+0x26bd le_dec_end
+0x26c6 le_retransmit_end_of_packet
+0x26c9 le_crc_fail
+0x26ce le_unsync_end
+0x26ce le_crc_fail_consecutive
+0x26d0 le_end_of_packet
+0x26d3 calc_clke_all_modem
+0x26dd calc_clke_all_modem_1
+0x26e3 calc_clke_modem_coded
+0x26e7 calc_clke_modem_2m
+0x26eb le_set_until_tx_timer
+0x26f2 le_set_until_tx_timer_rx_lr
+0x26f4 le_set_until_tx_timer_rx_1m
+0x26f5 le_set_until_tx_timer_rx_2m
+0x26f7 le_set_until_tx_timer_rx_coded_s2
+0x26fa le_set_until_tx_timer_rx_coded_s8
+0x26fc le_set_until_tx_timer_rx_coded
+0x26ff le_calc_stop_watch
+0x2707 le_transmit_receive_sifs_without_change_mode
+0x270e le_transmit_receive_sifs
+0x2712 le_transmit_receive_sifs_notx
+0x271c le_transmit_norx
+0x271f le_transmit
+0x272f le_transmit_packet
+0x273c le_transmit_packet_not_enc
+0x273d le_tr_loop
+0x2740 le_tr_nopayload
+0x2747 le_transmit_skip
+0x274e le_check_start_pause_enc
+0x2757 le_transmit_packet_enc
+0x275b le_transmit_packet_enc_loop
+0x2762 le_transmit_lr
+0x2763 le_transmit_lr_preamble_loop
+0x276d le_transmit_lr_s2
+0x2771 le_transmit_lr_s8
+0x2774 le_transmit_2m
+0x2780 le_update_param
+0x2784 le_update_param_ahead1_cb
+0x279a le_update_param_cb
+0x27a2 le_update_channel_map
+0x27a6 le_update_channel_map_cb
+0x27ab le_update_phy
+0x27af le_update_phy_cb
+0x27bc le_update_phy_cb_m2s
+0x27c4 le_update_phy_cb_m2s_no_change
+0x27ca le_update_phy_cb_s2m
+0x27d3 le_update_phy_cb_s2m_no_change
+0x27d9 le_check_update_flag
+0x27e7 le_update_ahead1
+0x27e9 le_update
+0x27ee le_check_update_small
+0x27fa le_check_retransmit
+0x2801 le_acknowledge
+0x281a le_ack_unenc
+0x2828 le_check_wak
+0x2835 le_set_enc
+0x283a le_clear_enc
+0x2846 le_scan_check_sender_addr_type
+0x284b le_get_master_rx_max
+0x284f le_prepare_tx
+0x2870 le_check_tx_md
+0x2877 le_check_continue
+0x2880 le_set_md
+0x2882 le_clear_md
+0x2884 le_update_tx_type
+0x2888 le_att_check_notification_enable
+0x2894 le_send_empty
+0x2896 le_send_packet
+0x28a6 le_send_no_txlen
+0x28ac le_send_packet_enc
+0x28ae get_lpm_wake_ble_rx_lock
+0x28b0 put_lpm_wake_ble_rx_lock
+0x28b2 le_parse
+0x28c0 le_parse_l2cap
+0x28cd le_check_l2cap_complete
+0x28d1 le_check_l2cap_cid_legal
+0x28dc le_check_l2cap_llid_start
+0x28ef le_check_l2cap_continue_legal
+0x28f3 le_check_l2cap_llid_continue
+0x2908 le_writeatt_cb
+0x290a le_supervision_update
+0x2914 le_supervision_flush
+0x2917 le_receive_window_size
+0x2931 le_modified_name
+0x2934 le_modified_name_att_list
+0x2945 le_name_length_longer_than_att
+0x2948 le_modified_name_adv
+0x2955 le_modified_name_adv_and_scan
+0x2967 le_modified_name_adv_and_scan_store_data
+0x296d le_modified_name_adv_and_scan_name_overflow
+0x296f le_modified_name_adv_loop
+0x297a le_modified_name_adv_loop2
+0x297e le_modified_name_adv_found_name
+0x2980 memcpy_empty
+0x2984 le_lpm_set_mult
+0x2988 le_lpm_set_mult_attempt
+0x2997 le_lpm_lost
+0x29a0 le_set_config_fixed_tk
+0x29a2 le_clr_config_fixed_tk
+0x29a4 le_set_config_fixed_ltk
+0x29a6 le_clr_config_fixed_ltk
+0x29a8 le_set_config_more_data
+0x29aa le_clr_config_more_data
+0x29ac le_set_config_read_authentication
+0x29ae le_clr_config_read_authentication
+0x29b0 le_set_config_write_authentication
+0x29b2 le_clr_config_write_authentication
+0x29b4 le_set_config_short_mult
+0x29b5 le_set_config
+0x29b9 le_clr_config_short_mult
+0x29ba le_clr_config
+0x29be le_set_fixed_ltk
+0x29ca le_set_justwork
+0x29d0 le_fifo_malloc_tx_empty
+0x29d3 le_fifo_malloc_tx_ll
+0x29d9 le_fifo_malloc_tx_l2cap
+0x29e3 le_fifo_malloc_tx
+0x29ee le_fifo_get_first_tx_ptr
+0x29f2 le_fifo_get_second_tx_ptr
+0x29f4 le_fifo_get_last_tx_ptr
+0x29f7 le_fifo_get_last_tx_ptr0
+0x29f9 le_fifo_get_first_l2cap_ptr
+0x29fc le_fifo_get_first_att_ptr
+0x29ff le_fifo_get_last_att_ptr
+0x2a02 le_fifo_get_last_l2cap_ptr
+0x2a05 le_fifo_check_full
+0x2a06 le_fifo_check_nearly_full
+0x2a07 le_fifo_check_empty
+0x2a08 le_fifo_release_first_node
+0x2a09 le_set_dle
+0x2a0b le_set_phys
+0x2a0e le_set_rx_phy
+0x2a10 le_set_tx_phy
+0x2a11 le_set_phy_common
+0x2a16 le_set_feature_2m_phy
+0x2a18 le_set_feature_coded_phy
+0x2a1a le_set_feature_data_packet_length_extension
+0x2a1b le_set_feature
+0x2a1f le_set_fixed_ltk_justwork
+0x2a23 le_advertising_dispatch
+0x2a2d le_scan
+0x2a4c le_wait_adv
+0x2a53 le_create_conn
+0x2a66 le_connect_request
+0x2a71 le_con_req_hop_retry
+0x2aad le_adv
+0x2ab2 le_adv_loop
+0x2ac4 le_adv_not_match
+0x2ad4 le_send_adv_protect_txbuf
+0x2ad7 le_send_adv_recover_txbuf
+0x2ada le_init_adv
+0x2adc le_adv_access
+0x2ae3 le_send_adv_ind
+0x2af4 le_send_adv_direct_ind
+0x2afa le_send_adv_transmit
+0x2b01 le_send_scan_request
+0x2b12 le_send_scan_response
+0x2b25 le_parse_connect_req
+0x2b4d le_next_adv_channel
+0x2b52 le_next_adv_channel_curr_channel_39
+0x2b57 set_le_next_adv_channel_39
+0x2b5a set_le_adv_channel_map_temp
+0x2b5c le_next_adv_channel_curr_channel_37
+0x2b61 set_le_next_adv_channel_37
+0x2b65 le_next_adv_channel_curr_channel_38
+0x2b6a set_le_next_adv_channel_38
+0x2b6e le_parse_att
+0x2b76 le_parse_att2
+0x2b84 le_send_att_exchange_mtu_requset
+0x2b87 le_send_att_exchange_mtu_common
+0x2b8b le_parse_att_exchange_mtu_request
+0x2b8c le_send_att_exchange_mtu_response
+0x2b90 le_parse_att_exchange_mtu_response
+0x2b93 le_parse_att_find_information_request
+0x2b96 le_att_handle_inrange
+0x2ba1 le_send_att_find_information_response
+0x2ba3 le_send_att_find_information_res_loop
+0x2bba le_send_att_find_information_res_uuid16
+0x2bbd le_send_att_find_information_res_uuid128
+0x2bc1 le_send_att_find_information_res_store_info2
+0x2bc6 le_send_att_find_information_res_store_info
+0x2bcf le_send_att_find_information_res_cont
+0x2bd1 le_send_att_find_information_res_next
+0x2bd3 le_send_att_find_information_res_end
+0x2bd5 le_parse_att_find_by_type_value_request
+0x2bde le_start_end_handle_check_1
+0x2be5 le_start_end_handle_check_1_fail
+0x2be8 le_send_att_find_by_type_value_response
+0x2bef le_send_att_find_by_type_value_res_primary
+0x2bf4 le_send_att_find_primary_search_loop
+0x2c04 le_send_att_find_primary_search_loop1
+0x2c08 le_send_att_error_response_notfound2
+0x2c0b le_send_att_find_primary_search_end_start_handle_found
+0x2c13 le_send_att_find_primary_search_end_ending_handle_found
+0x2c19 le_send_att_find_primary_search_end
+0x2c22 le_parse_att_read_by_type_request
+0x2c25 le_send_att_read_by_type_response
+0x2c34 le_send_att_read_by_type_response_loop
+0x2c55 le_send_att_read_by_type_response_next_handle
+0x2c57 le_send_att_read_by_type_response_end
+0x2c59 le_send_att_read_by_type_res_found_next
+0x2c67 le_send_att_read_by_type_write_properties
+0x2c6e le_send_att_read_by_type_write_uuid
+0x2c7a le_send_att_read_by_type_res_not_characteristic
+0x2c90 le_send_att_read_by_type_res_device_name
+0x2ca5 le_init_attlist_search
+0x2cad le_att_get_handle_ptr
+0x2cb0 le_att_get_handle_ptr2
+0x2cb3 le_att_get_handle_loop1
+0x2cbb le_att_get_handle_ptr_found
+0x2cbb le_att_contr_add_len
+0x2cbe le_att_get_uuid_ptr
+0x2cc1 le_att_get_uuid_loop
+0x2cd1 le_att_get_uuid_ptr_next
+0x2cd4 le_att_get_last_handle
+0x2cd8 le_att_get_last_handle_loop
+0x2ce0 le_att_get_handle_info_from_ptr
+0x2ce2 le_att_get_handle_info
+0x2ce4 le_att_get_handle_info_fast
+0x2ce5 le_att_get_handle_loop
+0x2ced le_att_unfind_handle
+0x2cee le_att_finded_handle
+0x2cf7 le_parse_att_read_request
+0x2cfb le_send_att_read_response
+0x2d0b le_send_att_read_response_less
+0x2d14 le_send_device_name
+0x2d20 le_send_att_read_response_check_auth
+0x2d24 le_send_att_read_response_error_insufficient_auth
+0x2d26 le_send_att_read_response_check_handle
+0x2d2a le_parse_att_read_blob_request
+0x2d2e le_send_att_read_blob_response
+0x2d37 le_send_att_read_blob_response_less
+0x2d41 le_parse_att_read_by_group_type_request
+0x2d44 le_send_att_read_by_group_type_response
+0x2d4b le_send_att_read_by_group_type_response_loop
+0x2d68 le_send_att_read_by_group_type_store_write_record
+0x2d6e le_send_att_read_by_group_type_store_record
+0x2d72 le_send_att_read_by_group_type_next_handle
+0x2d74 le_send_att_read_by_type_res_check_pair_length_type
+0x2d76 le_send_att_read_by_group_type_check_pair_length_type
+0x2d7a le_send_att_read_by_group_type_check_pair_length_type_16byte
+0x2d7c le_send_att_read_by_group_type_end0
+0x2d7f le_send_att_read_by_group_type_end1
+0x2d83 le_send_att_read_by_group_type_end_common
+0x2d86 le_parse_att_write_request
+0x2d8a le_send_att_write_response_check_auth
+0x2d9a le_send_att_write_response
+0x2d9f le_send_att_write_response_check_handle
+0x2da3 le_send_att_write_response_error_invalid_handle
+0x2da5 le_check_encrypt_state
+0x2dac le_parse_att_prepare_write_request
+0x2db1 le_send_att_prepare_write_response
+0x2dbf le_parse_att_execute_write_request
+0x2dbf le_send_att_execute_write_response
+0x2dc4 le_parse_handle_value_confirmation
+0x2dc8 le_parse_att_write_command
+0x2dcc le_att_malloc_tx_notify
+0x2dd5 le_att_malloc_tx_indication
+0x2de1 le_send_att_error_response_notfound
+0x2de3 le_send_att_error_response
+0x2dee le_fifo_malloc_tx_l2cap_gatt
+0x2df1 le_att_next_handle
+0x2df5 le_att_check_handle_end
+0x2df9 le_att_same_type
+0x2dfc le_att_check_same_common
+0x2e02 le_store_att_record
+0x2e08 le_write_att_record
+0x2e0e le_write_att_record_common
+0x2e12 le_send_auto_len_by_mem
+0x2e1f le_get_search_handle_start_end_common
+0x2e24 le_get_search_max_mtu_data
+0x2e28 le_get_search_att_type
+0x2e2b le_get_search_common
+0x2e2d le_get_search_common2
+0x2e31 le_parse_writing_attribute_start
+0x2e3f le_clear_l2cap_att_states_deal_with_contiune_packet
+0x2e43 le_parse_writing_attribute_continue
+0x2e4c le_parse_attribute_write_request
+0x2e4e le_send_attribute_write_response_check_auth
+0x2e51 le_parse_attribute_write_command
+0x2e55 le_parse_attribute_check_complete_packet_init
+0x2e5c le_parse_l2cap_continue_common
+0x2e62 le_parse_attribute_check_complete_packet
+0x2e68 le_parse_signaling
+0x2e6d le_l2cap_parse_conn_parameter_update_rsp
+0x2e71 le_l2cap_tx_update_req
+0x2e79 le_fifo_malloc_tx_l2cap_signaling
+0x2e81 le_l2cap_update_signaling_identifier
+0x2e85 le_l2cap_reset_signaling_identifier
+0x2e87 le_pairing_mode_init
+0x2e8f le_set_pairing_mode_secure_justwork
+0x2e91 le_set_pairing_mode_secure_numeric
+0x2e94 le_set_pairing_mode_secure_passkey
+0x2e96 le_set_no_pairing
+0x2e97 le_set_noinputnooutput
+0x2e99 le_set_pairing_mode_lagacy_just_work
+0x2e9b le_set_pairing_mode_lagacy_passkey
+0x2e9c le_set_displayonly
+0x2e9e le_secure_connection_enable
+0x2ea2 le_secure_connection_disable
+0x2ea6 le_parse_smp
+0x2eb3 le_send_smp_security_request
+0x2eba le_parse_smp_pairing_request
+0x2ec6 le_parse_smp_pairing_request2
+0x2ece le_set_tk_0
+0x2ed1 le_parse_smp_pairing_req_passkey
+0x2ed3 le_genernate_tk
+0x2eda le_parse_smp_pairing_req_fixed_passkey
+0x2edc le_send_smp_pairing_response
+0x2ee1 le_parse_smp_pairing_confirm
+0x2ee9 le_parse_smp_pairing_confirm_passkey_res_input
+0x2eeb le_parse_smp_pairing_confirm_secure_passkey
+0x2eee le_parse_smp_pairing_confirm_sc_passkey_res_input
+0x2ef1 le_send_smp_pairing_confirm
+0x2efa le_send_smp_pairing_confirm_sc
+0x2f02 le_parse_smp_pairing_random
+0x2f08 le_send_pairing_confirm_value_failed
+0x2f09 le_send_pairing_failed
+0x2f0f le_parse_smp_pairing_failed
+0x2f15 le_smp_pairing_fail_reason_not_support_pairing
+0x2f17 le_parse_smp_pairing_random_sc
+0x2f23 le_parse_smp_pairing_random_sc_passkey
+0x2f2c le_parse_smp_pairing_random_success
+0x2f31 le_send_smp_pairing_random
+0x2f37 le_send_smp_encryption_information
+0x2f3f le_send_fixed_ltk
+0x2f41 le_send_smp_master_identification
+0x2f4d le_send_smp_identity_information
+0x2f55 le_send_smp_identity_address_information
+0x2f5e le_send_pairing_fail_unspecified_reason
+0x2f60 le_check_init_key_distribution
+0x2f64 le_parse_smp_identity_information
+0x2f6e le_check_master_addr_type
+0x2f74 le_parse_smp_identity_address_information
+0x2f78 le_parse_smp_signing_information
+0x2f78 le_parse_smp_security_request
+0x2f79 le_parse_smp_public_key
+0x2f7e le_parse_smp_dhkey_check
+0x2f83 le_send_smp_pairing_public_key
+0x2f89 le_send_smp_pairing_dhkey_check
+0x2f8f le_check_paring_time
+0x2f98 le_pairing_sm
+0x2fa5 le_pairing_sm_null
+0x2fa5 le_pairing_sm_send_sec_req
+0x2fab le_pairing_sm_start
+0x2fad le_pairing_sm_rcv_pairing_req
+0x2fb1 le_pairing_sm_after_auth
+0x2fb4 le_pairing_sm_after_auth_start_enc
+0x2fb8 le_pairing_sm_after_auth_start_enc_common
+0x2fbf le_pairing_sm_after_auth_start_enc_sc
+0x2fc1 le_pairng_sm_send_enc_information
+0x2fc3 le_pairng_sm_send_master_indentification
+0x2fca le_pairng_sm_send_indentity_information
+0x2fcc le_parse_start_enc_rsp_after_auth_end
+0x2fd3 le_secure_connect_sm
+0x2fe1 le_sc_state_clear
+0x2fe5 le_sc_sm_passkey_wait_confirm
+0x2fef le_sc_sm_wait_confirm_gkey
+0x2ff4 le_sc_confirm_gkey_ok
+0x2ff8 le_sc_sm_receive_dhkey
+0x2ffc le_dhkey_ready
+0x3001 le_dhkey_ready_common
+0x3007 le_dhkey_check_fail
+0x3009 le_dhkey_check_ok
+0x3013 le_sc_sm_send_public_key
+0x3017 le_sc_sm_ready_send_pairing_confirm
+0x3018 le_sc_sm_send_public_key_passkey
+0x301b le_sc_sm_receive_public_key
+0x301f le_public_key_ready
+0x3022 le_sc_sm_wait_send_public_key
+0x3025 le_fifo_malloc_tx_l2cap_smp
+0x3028 le_parse_ll
+0x303f le_parse_connection_update_ind
+0x3047 le_parse_channel_map_ind
+0x304b le_update_map_enable
+0x304f le_parse_terminate_ind
+0x3053 le_parse_enc_req
+0x3065 le_parse_enc_req_after_auth
+0x3068 le_parse_enc_req_fixed_ltk
+0x306d le_ltk_lost
+0x3071 le_parse_enc_rsp
+0x3076 le_parse_start_enc_req
+0x307a le_parse_start_enc_rsp
+0x307f le_parse_unknown_rsp
+0x3080 le_parse_feature_req
+0x3081 le_parse_feature_rsp
+0x3082 le_parse_pause_enc_req
+0x3086 le_parse_pause_enc_rsp
+0x3087 le_parse_version_ind
+0x3089 le_parse_reject_ind
+0x308a le_parse_ping_req
+0x308b le_parse_ping_rsp
+0x308c le_parse_length_req
+0x308e le_parse_length_rsp
+0x3099 le_parse_phy_req
+0x309a le_parse_phy_update_ind
+0x30a3 le_send_terminate_ind_user_terminated
+0x30a4 le_send_terminate_ind
+0x30aa le_send_enc_rsp
+0x30b8 le_send_start_enc_req
+0x30bb le_send_start_enc_rsp
+0x30bd le_send_unknown_rsp
+0x30c2 le_send_feature_rsp
+0x30c9 le_send_pause_enc_rsp
+0x30cb le_send_version_ind
+0x30d1 le_send_reject_ind
+0x30d7 le_send_ping_rsp
+0x30d9 le_send_data_length_req
+0x30db le_send_data_length_res
+0x30dc le_send_data_length
+0x30e1 le_send_phy_rsp
+0x30eb le_send_ll_one_lenth
+0x30ed g24_dispatch
+0x30f1 g24_prep
+0x30f8 g24_receive_packet
+0x3100 g24_receive_rxon
+0x3105 g24_receive_nolr
+0x3114 g24_receive_skip_fec1
+0x3127 g24_receive_skip
+0x3130 g24rx_loop
+0x3133 g24rx_nopayload
+0x3138 g24_receive_skip_rssi
+0x313f g24_receive_skip_next
+0x314c g24_receive_skip_disable_fec1
+0x314e g24_lr_receive_pdu_len
+0x3155 g24_lr_receive_pdu_norssi
+0x3157 g24_lr_receive_payload_len
+0x315c g24_receive_byte
+0x315f g24_sync_timeout
+0x3162 g24_end_of_packet
+0x3167 g24_hec_error
+0x3169 g24_lr_len_error
+0x316b g24_type_error
+0x316d g24_len_over_error
+0x316f g24_crc_error
+0x3171 g24_set_freq_tx
+0x3174 g24_transmit
+0x3187 g24_transmit_packet
+0x318d g24_transmit_nolr
+0x3192 g24tr_loop
+0x319c g24_transmit_skip
+0x31a3 g24_transmit_skip_disable_fec1
+0x31a6 g24_transmit_lr
+0x31a7 g24_transmit_lr_preamble_loop
+0x31b1 g24_transmit_lr_s2
+0x31b5 g24_transmit_lr_s8
+0x31b8 g24_transmit_2m
+0x31ba g24_transmit_2m_dealy
+0x31c4 g24_transmit_prep
+0x31cf g24_transmit_prep_pdu
+0x31e5 g24_lr_transmit_prep
+0x31e9 g24_lr_transmit_prep_skip
+0x31f3 g24_read_len_pid_crc
+0x3201 g24_ch
+0x3206 g24_ch_map_size
+0x320b g24_ch_calc
+0x3215 g24_update_addr_and_synccrc8
+0x3217 g24_syncword_crc8
+0x321a g24_syncword_crc8_loop
+0x3224 g24_timer_check
+0x3234 g24_timer_timeout
+0x3237 g24_timer_init
+0x323a g24_chmap_param_init
+0x324a g24_chamap_param_update
+0x3257 g24_rx_window_init
+0x325e g24_rx_window_store
+0x3260 g24_enable_1m
+0x3263 g24_enable_2m
+0x3266 g24_pair_param_init
+0x326c g24_pair_timeout_timer
+0x326f g24_pair_start
+0x327a g24_pair_init_param
+0x3281 g24_pair_dispatch
+0x3290 g24_pair_sm_1
+0x3292 g24_pair_sm_2
+0x3296 g24_pair_sm_2_skip
+0x3298 g24_pair_sm_3
+0x329e g24_pair_sm_4
+0x329f g24_pair_sm_prep
+0x32a1 g24_pair_sm_common
+0x32b4 g24_pair_sm_reinit
+0x32b9 g24_pair_sm_1_waiting_ack
+0x32bb g24_pair_sm_2_waiting_ack
+0x32bf g24_pair_sm_2_waiting_ack_skip
+0x32c1 g24_pair_sm_3_waiting_ack
+0x32c7 g24_pair_sm_3_waiting_ack_skip
+0x32c9 g24_pair_sm_4_waiting_ack
+0x32cf g24_pair_sm_4_waiting_ack_skip
+0x32d6 g24_pair_exit
+0x32da g24_bind_mode_enable
+0x32dd g24_bind_init
+0x32e8 g24_bind_ackpayload_prep
+0x32ec g24_bind_data_process
+0x32f9 g24_bind_data_error
+0x32fb g24_bind_data_parse
+0x3306 g24_bind_first_step
+0x330a g24_bind_first_step_device1
+0x330d g24_bind_dvc1_payload_cfg
+0x330e g24_bind_payload_cfg
+0x3312 g24_bind_first_step_device2
+0x3315 g24_bind_dvc2_payload_cfg
+0x3317 g24_bind_second_step
+0x331d g24_bind_second_step_skip
+0x3321 g24_bind_second_step_device1
+0x3326 g24_bind_dvc1_step_set2
+0x3329 g24_bind_dvc1_payload_cfg_transmitter_addr
+0x332a g24_bind_payload_cfg_transmitter_addr
+0x332e g24_bind_second_step_device2
+0x3333 g24_bind_dvc2_step_set2
+0x3338 g24_bind_third_step
+0x333e g24_bind_third_step_skip
+0x3342 g24_bind_third_step_device1
+0x3347 g24_bind_dvc1_step_success
+0x334c g24_bind_exit
+0x334f g24_bind_third_step_device2
+0x3354 g24_bind_dvc2_step_success
+0x335b g24_binding_device_check
+0x335f g24_binding_dvc1_status
+0x3361 disable_user3
+0x3363 g24_binding_dvc2_status
+0x3366 g24_binding_dvc1_living
+0x336c g24_binding_dvc2_living
+0x3372 g24_bind_device_status_check
+0x3374 g24_bind_device_status
+0x3378 g24_receive_init
+0x337c g24_receive_dispatch
+0x337e g24_ackpayload_prep
+0x3384 g24_receive_packet_start
+0x3386 g24_receive_packet_parse
+0x3397 g24_rx_interrupt_clear
+0x339b g24_data_receive_attemp
+0x339d g24_data_device1
+0x33ac g24_data_device2
+0x33b2 g24_data_attemp_device1_abort
+0x33b7 g24_data_attemp_device2_abort
+0x33b9 g24_receive_packet_parse_pid_crc
+0x33c7 g24_receive_transmit_ack
+0x33ca g24_transmit_ack
+0x33d0 g24tx_with_ack
+0x33d3 g24tx_no_ack
+0x33d4 g24_enable_nodata_timer
+0x33d5 g24_enable_nodata_timer_init
+0x33d8 g24_mode_switch_init
+0x33dd g24_mode_switch_bind_work
+0x33ea g24_bind_mode_continue
+0x33ef g24_work_mode_switch
+0x33f2 g24_bind_mode_switch
+0x33f5 g24_mode_b_s_switch_init
+0x3403 g24_mode_switch_bind_search
+0x341e g24_mode_switch_search
+0x3421 g24_mode_b_s_switch_exit
+0x3423 g24_mode_b_s_switch_stop
+0x3425 g24_mode_b_s_switch_start
+0x3427 g24_work_init
+0x3436 g24_switch_work_mode
+0x3437 g24_work_mode_enable
+0x343a g24_work_mode_start
+0x343f g24_bind_mode_auto
+0x344c g24_search_mode_init
+0x345e g24_search_mode_auto
+0x347d g24_self_ch_num_reinit
+0x347e g24_current_ch_num_reinit
+0x3480 g24_device2_ch_num_reinit
+0x3482 g24_device1_ch_num_reinit
+0x3484 g24_auto_addr_ch_search
+0x348e g24_auto_bind_config_device1
+0x34a3 g24_device1_config_ch_once
+0x34a8 g24_auto_bind_config_device2
+0x34bd g24_device2_config_ch_once
+0x34c2 g24_auto_bind_config_self
+0x34d6 g24_self_config_ch_once
+0x34da g24_ackpayload_disable
+0x34dc g24_receiver_addr_check
+0x34e0 g24_nodata_process
+0x34ea g24_search_mode_enable
+0x34ee g24_ch_process
+0x3502 g24_ch_receive_hop_pac
+0x3504 g24_ch_timer_reinit
+0x3507 g24_reconn_timeout_timer
+0x350a g24_reconn_start
+0x3517 g24_reconn_fast_conn
+0x351f g24_reconn_receiver_addr
+0x3526 g24_reconn_device_3_0_addr
+0x352d g24_store_receiver_addr
+0x3530 g24_ch_syncword_crc8_init
+0x3532 g24_reconn_dispatch
+0x353b g24_reconn_dispatch_next
+0x3546 g24_reconn_dispatch_success
+0x3553 g24_txbuf_clear
+0x3557 g24_reconn_data_prep
+0x355e g24_reconn_device_fail
+0x356b g24_reconn_fast_conn_and_receiver
+0x356d g24_reconn_fast_conn_and_3_0
+0x356f g24_reconn_receiver_and_3_0
+0x3571 g24_reconn_pair_and_3_0
+0x3573 g24_data_attemp
+0x3577 g24_data_attemp_device1
+0x357b g24_store_device1_addr
+0x357d g24_data_attemp_device2
+0x3581 g24_store_device2_addr
+0x3583 rssi_store
+0x358c rssi_average
+0x3593 rssi_average_loop
+0x35a0 save_rssi_dec
+0x35a1 rssi_transmitter_buff_init
+0x35a3 rssi_signal
+0x35ae rssi_receiver_buff_init
+0x35b5 rssi_buff_clear
+0x35bb rssi_noise
+0x35c2 rssi_noise_monitor
+0x35c8 g24_transmit_init
+0x35cb g24_interval_param_4ms
+0x35d3 g24_interval_param_8ms
+0x35db g24_transmit_dispatch
+0x35e0 g24_transmit_no_interrupt
+0x35e3 g24_transmit_start
+0x35e8 g24_transmit_start_next
+0x35ee g24_short_sleep
+0x35f5 g24_long_sleep
+0x35fa g24_long_seep2
+0x35fd g24_txdata_prep
+0x3600 g24_package_data
+0x3606 g24_accumulate_data
+0x360e g24_transmit_rf_ctrl_clear
+0x3612 g24_transmit_process
+0x3615 g24_transmit_loop
+0x361f g24_transmit_no_ack
+0x3620 g24_transmit_next_packet
+0x3625 g24_transmit_abandon
+0x362a g24_transmit_receive_ack
+0x3638 g24_retransmit
+0x363b g24_retransmit0
+0x3647 g24_ackpayload_parse
+0x364f g24_tx_attempt_fail
+0x3653 g24_stop_24g_mode
+0x3655 g24_transmit_hop_process
+0x3658 g24_transmit_hop_process_next
+0x3664 g24_transmit_hop_process_4ms
+0x3668 g24_hop_ch_enable
+0x3668 g24_txpayload_type_update
+0x366b g24_lr_type_update
+0x366d g24_hop_enable_packet
+0x366f g24_hop_ch_disable
+0x3675 g24_tx_fast_hop
+0x367c g24_search_receiver
+0x367e g24_nodata_transmit
+0x3685 g24_send_abort_packet
+0x3694 g24_lpm_wait
+0x369e g24_setgpio_lpm_before
+0x36a0 g24_transmit_by_interrupt
+0x36aa g24_transmit_by_interrupt_exit
+0x36af g24_interval_min
+0x36b1 g24_interval_store
+0x36b3 g24_interval_max
+0x36b5 g24_interval_calibrate
+0x36bb g24_transmit_by_interrupt_enable
+0x36bf g24_factory_check
+0x36c1 pdata_0xff_check
+0x36c3 pdata_0xff_check_loop
+0x36c8 power_ctrl_start
+0x36d3 power_ctrl_start_next
+0x36db power_ctrl_txpower_decrs_check
+0x36e0 power_ctrl_txpower_decrs
+0x36e4 power_ctrl_txpower_decrs_next
+0x36ed power_ctrl_txpower_incrs_force
+0x36ee power_ctrl_txpower_incrs
+0x36f4 power_ctrl_incrs_level3
+0x36f6 power_ctrl_decrs_level2
+0x36f6 power_ctrl_incrs_level2
+0x36f8 power_ctrl_decrs_level1
+0x36f8 power_ctrl_incrs_level1
+0x36fa power_ctrl_decrs_level0
+0x36fc power_ctrl_pac_succ_incrs
+0x3700 power_ctrl_pac_succ_decrs
+0x3708 power_ctrl_pac_succ_cnt_reinit
+0x370a app_init
+0x3717 app_param_init
+0x3722 app_process_idle
+0x3727 app_process_ble
+0x3729 app_process_bb_event
+0x3730 app_discard_event
+0x3732 app_event_normal_process
+0x3736 app_process_bb_event_priority
+0x3738 app_check_wake_lock
+0x373a app_will_enter_lpm
+0x373c app_le_event_bb_connected
+0x3740 app_le_event_bb_disconn
+0x3745 app_evt_button_long_pressed
+0x3749 app_evt_timer
+0x374a app_evt_100ms_loop
+0x3755 timer_single_step
+0x375c timer_single_step_2b
+0x3763 app_power_timer
+0x3767 app_power_timer_timeout
+0x3769 app_enter_power_off_state
+0x376a app_enter_power_stanby_state
+0x376d app_power_cb_common
+0x376f app_bb_hibernate
+0x3771 app_disconn_reason_clear
+0x3774 app_disconn_reason_flag_clear
+0x3777 app_disconn_reason_collect_ble
+0x377d app_get_lpm_wake_lock
+0x377f app_put_lpm_wake_lock
+0x3781 app_lpm_wake_auto_lock
+0x3783 app_lpm_wake_auto_lock_timer
+0x3786 app_ble_start_direct_adv
+0x3788 app_ble_stop_direct_adv
+0x378a app_ble_stop_adv
+0x378c app_ble_start_adv
+0x378e app_ble_start_scan
+0x3790 app_ble_stop_scan
+0x3792 app_ble_start_conn
+0x3794 app_ble_disconnect
+0x3796 app_led_start_blink
+0x3798 app_led_on
+0x379a app_led_stop_blink
+0x379a app_led_off
+0x379c app_enter_hibernate
+0x379e app_ble_store_reconn_info
+0x37a0 app_lpm_mult_enable
+0x37a2 app_lpm_mult_disable
+0x37a4 app_button_long_pressed
+0x37a6 app_power_starting
+0x37aa app_power_common
+0x37ae app_power_shutting_down
+0x37b4 app_power_off_end
+0x37b8 app_got_power_state_common
+0x37bc app_event_button_up
+0x37bf app_power_release
+0x37c1 car_init
+0x37d3 car_default_init
+0x38b9 car_system_clk
+0x38bb car_lpm_xtalcnt
+0x38bd car_lpm_isogate
+0x38bf car_lpm_hibernate_switch
+0x38c1 car_lpm_ldo_sel
+0x38c3 car_lpm_sysctl
+0x38c5 car_lpm_hv_sel
+0x38c7 car_fcomp_div
+0x38c9 car_xtal_c_sel
+0x38cb car_version
+0x38cd car_le_tx2m_delay
+0x38cf car_gain_fix
+0x38d1 car_rx_window_sniff
+0x38d3 car_gain_table
+0x38d5 car_gain_second_agc_en
+0x38d7 car_ring_ibias_trim
+0x38d9 car_ring_ibias_vtune_high
+0x38db car_ring_ibias_vtune_low
+0x38dd car_ring_ibias_calc_adc_gpio
+0x38df car_ring_ibias_calc_adc_channel
+0x38e1 car_tx_power
+0x38e3 car_24g_tx_phy
+0x38e5 car_24g_rx_phy
+0x38e7 car_motor_gpio_map
+0x38ea car_pwm_gpio
+0x38ef car_24g_addr
+0x38f1 car_24g_ch_map1
+0x38f3 car_init_environment
+0x38fb car_rxid_check
+0x3904 car_add_mac_to_local_name
+0x390c car_add_mac_to_local_name_loop
+0x3917 car_convert_hex_to_ascii
+0x3919 car_convert_hex_to_ascii_a_f
+0x391b car_convert_hex_to_ascii_0_9
+0x391d car_le_param_init
+0x3924 car_process_bb_event
+0x3928 car_ble_disconnted
+0x3930 car_ble_connted
+0x3933 car_ble_receive_data
+0x3936 car_ble_receive_writeatt
+0x393d car_ble_receive_writeatt_parse
+0x394b car_gpio_control_stop
+0x394f car_whitening_24g_addr
+0x3952 car_24g_whitening_loop
+0x3956 car_24g_whitening_byte
+0x3957 car_24g_whitening_byte_loop
+0x395e car_24g_whitening_byte_xor
+0x3963 car_get_rxid
+0x3981 car_pwm_control_init
+0x398b car_idle_process
+0x39a7 car_pwm_io_control
+0x39ae car_g24_sim_rx
+0x39be car_cb_24g_ackpayload
+0x39c4 car_soft_timer_process
+0x39c5 car_soft_timer_process_check_timer
+0x39cb car_soft_timer_process_wait_timeout
+0x39cf car_soft_timer_timeout
+0x39d3 car_timer_1khz_enable
+0x39d5 car_timer_500hz_enable
+0x39d7 car_pwm_change_1khz
+0x39e5 car_pwm_change_500hz
+0x39f1 car_period_change_timer
+0x39fb car_set_24g_ch
+0x3a00 car_set_ch0
+0x3a03 car_set_ch1
+0x3a06 car_set_ch2
+0x3a09 car_set_ch3
+0x3a0c car_set_ch_reset
+0x3a0f car_stop_run
+0x3a21 car_set_motor
+0x3a38 car_set_unconnect
+0x3a3c car_run_factory_mode_select
+0x3a40 car_run_mode_select
+0x3a47 car_pwm_mode_adv_flag_init
+0x3a50 car_factory_mode_time
+0x3a55 car_motor_mode_1
+0x3a59 car_motor_mode_2
+0x3a5d car_f
+0x3a62 car_b
+0x3a67 car_l
+0x3a6c car_r
+0x3a71 car_fl
+0x3a74 car_fr
+0x3a77 car_bl
+0x3a7a car_br
+0x3a7d car_reconnect
+0x3a88 car_recive_pair_request
+0x3a8e car_send_pair_response
+0x3a97 car_send_pair_response_juge
+0x3a9c car_cb_event_timer
+0x3aa1 car_100ms_timer_adv_control
+0x3aa8 car_100ms_timer_adv_control_timeout
+0x3aae car_100ms_timer_factory_test_control
+0x3ab3 car_100ms_timer_factory_test_timeout
+0x3ab7 car_motor1_status_select
+0x3abc car_motor2_status_select
+0x3ac1 car_lr_motor_stop
+0x3ac5 car_lr_motor_left
+0x3ac9 car_lr_motor_right
+0x3acd car_fb_motor_stop
+0x3ad1 car_fb_motor_front
+0x3ad5 car_fb_motor_back
+0x3ad9 car_le_stop_random_delay_check
+0x3adc car_check_close_ice
+0x3adf remote_car_init
+0x3aee remote_car_default_init
+0x3b5f remote_car_system_clk
+0x3b61 remote_car_lpm_xtalcnt
+0x3b63 remote_car_lpm_isogate
+0x3b65 remote_car_lpm_hibernate_switch
+0x3b67 remote_car_lpm_ldo_sel
+0x3b69 remote_car_lpm_sysctl
+0x3b6b remote_car_lpm_hv_sel
+0x3b6d remote_car_fcomp_div
+0x3b6f remote_car_xtal_c_sel
+0x3b71 remote_car_version
+0x3b73 remote_car_le_tx2m_delay
+0x3b75 remote_car_gain_fix
+0x3b77 remote_car_rx_window_sniff
+0x3b79 remote_car_gain_table
+0x3b7b remote_car_gain_second_agc_en
+0x3b7d remote_car_ring_ibias_trim
+0x3b7f remote_car_ring_ibias_vtune_high
+0x3b81 remote_car_ring_ibias_vtune_low
+0x3b83 remote_car_ring_ibias_calc_adc_gpio
+0x3b85 remote_car_ring_ibias_calc_adc_channel
+0x3b87 remote_car_tx_power
+0x3b89 remote_car_24g_tx_phy
+0x3b8b remote_car_24g_rx_phy
+0x3b8d remote_car_key_conf0
+0x3b8f remote_car_key_public_gpio
+0x3b91 remote_car_24g_tx_led_map
+0x3b93 remote_car_24g_addr
+0x3b95 remote_car_24g_ch_map1
+0x3b97 remote_car_set__lpm_timer_set
+0x3b9b remote_car_set_uconnect_lpm_time
+0x3ba0 remote_car_set_connected_lpm_time
+0x3ba5 remote_car_get_txid
+0x3bc3 remote_car_txid_check
+0x3bcc remote_car_whitening_24g_addr
+0x3bcf remote_car_24g_whitening_loop
+0x3bd3 remote_car_24g_whitening_byte
+0x3bd4 remote_car_24g_whitening_byte_loop
+0x3bdb remote_car_24g_whitening_byte_xor
+0x3be0 remote_car_lpm_gpio_config_flag_init
+0x3be3 remote_car_iocfg_pullup_loop
+0x3bec remote_car_idle_process
+0x3bf3 remote_car_24g_matching_process
+0x3bf7 remote_car_set_24g_ch
+0x3bfc remote_car_set_ch0
+0x3bff remote_car_set_ch1
+0x3c02 remote_car_set_ch2
+0x3c05 remote_car_set_ch3
+0x3c08 remote_car_set_ch_reset
+0x3c0b remote_car_send_pair_request
+0x3c0f remote_car_g24_sim_tx_with_datalen_set
+0x3c1f remote_car_g24_sim_tx
+0x3c2b remote_car_g24_transmit_no_ack
+0x3c30 remote_car_24g_recved_ack
+0x3c32 remote_car_g24_recved_ack_parse
+0x3c38 remote_car_g24_tx_connected
+0x3c45 remote_car_send_remote_control
+0x3c52 remote_car_scan_key
+0x3c58 remote_car_key_scan_lr
+0x3c66 remote_car_key_scan_fb
+0x3c74 remote_car_set_keyf
+0x3c77 remote_car_set_keyb
+0x3c7a remote_car_set_keyl
+0x3c7d remote_car_set_keyr
+0x3c80 remote_car_set_keym
+0x3c83 remote_car_set_tx_key_led
+0x3c8a remote_car_24g_tx_send_none
+0x3c8e remote_car_24g_set_led
+0x3c96 remote_car_24g_led_on
+0x3c98 remote_car_24g_led_off
+0x3c9b remote_car_lpm_timeout_set
+0x3ca4 remote_car_cb_event_timer
+0x3ca6 remote_car_enter_lpm
+0x3cab remote_car_enter_lpm_gpio_config
+0x3cad remote_car_enter_lpm_gpio_config_loopcnt
+0x3cb3 remote_car_enter_lpm_gpio_config_pull_up
+0x3cb9 remote_car_set_value
+0x3cba remote_car_gpio_wakeup_cfg
+0x3cc2 remote_car_wakeup_config
+0x3cc7 remote_car_wakeup_config_loop
+0x3cd1 dongle_init
+0x3cdc dongle_default_init
+0x3ce5 dongle_default_no_eeprom
+0x3cff dongle_xtal_select
+0x3d04 dongle_dispatch
+0x3d09 dongle_read_kb_bind_status
+0x3d0e dongle_write_kb_bind_status
+0x3d13 dongle_usb_config
+0x3d17 dongle_usb_config_kb
+0x3d1b dongle_usb_config_param
+0x3d20 dongle_usb_vid_pid_config
+0x3d24 dongle_usb_vid_pid_for_mouse_only_auto_pair
+0x3d25 dongle_usb_vid_pid_store
+0x3d27 dongle_usb_vid_pid_for_suit
+0x3d29 dongle_usb_hid_icon_config
+0x3d2f dongle_usb_kb_hidreportdesc
+0x3d33 dongle_usb_device_name
+0x3d39 dongle_all_powerful
+0x3d3a dongle_all_powerful_loop
+0x3d3d dongle_pc_bind
+0x3d3e dongle_pc_bind_loop
+0x3d42 dongle_g24_blank_data_process
+0x3d48 dongle_g24_ms_blank_data
+0x3d52 dongle_usb_tx_ms_data
+0x3d53 dongle_usb_tx_enable_ep2
+0x3d57 dongle_g24_kb_blank_data
+0x3d61 dongle_usb_tx_kb_data
+0x3d62 dongle_usb_tx_enable_ep1
+0x3d67 dongle_g24_kb_sys_ctrl_blank_data
+0x3d72 dongle_usb_tx_sys_ctrl_data
+0x3d74 dongle_g24_kb_mul_blank_data
+0x3d7f dongle_usb_tx_multikey_data
+0x3d81 dongle_g24_kb_bit_consumer_blank_data
+0x3d8c dongle_usb_tx_bit_consumer_data
+0x3d8e dongle_usb_dispatch
+0x3da1 dongle_usb0_data_ready_report_set0
+0x3da3 dongle_dispose_cmd_mode
+0x3da6 dongle_enter_bind_mode
+0x3da7 dongle_usb0_data_ready_report_set1
+0x3da9 dongle_dispose_cmd_bind
+0x3dae dongle_dispose_cmd_get_bind
+0x3db1 dongle_dispose_cmd_exit_bind
+0x3db3 dongle_dispose_cmd_read_mode
+0x3db3 dongle_dispose_in_bind_mode
+0x3db5 dongle_dispose_cmd_current_project
+0x3db7 dongle_dispose_cmd_current_mode
+0x3dbb dongle_dispose_in_work_mode
+0x3dbd dongle_dispose_cmd_current_fw_version
+0x3dc0 dongle_auto_bind
+0x3dc1 dongle_auto_bind_loop
+0x3dc8 dongle_work_mode_auto
+0x3dd0 dongle_ackpayload_prep
+0x3dd3 dongle_ackpayload_prep_mouse
+0x3dd6 dongle_set_pc_sleep_flag
+0x3dda dongle_clear_pc_sleep_flag
+0x3ddc dongle_ackpayload_prep_keyboard
+0x3dde dongle_ackpayload_prep_end
+0x3de2 dongle_pc_sleep_ackpayload_prep_mouse
+0x3de6 dongle_pc_sleep_ackpayload_prep_keyboard
+0x3de9 dongle_pc_sleep_ackpayload_prep
+0x3ded dongle_g24_bind_ackpayload_prep
+0x3df6 dongle_g24_kb_led_ackpayload_prep
+0x3dfe dongle_g24_mouse
+0x3e07 dongle_g24_ms_enable_blank_data_forcibly
+0x3e0b dongle_g24_ms_disable_blank_data_forcibly
+0x3e0f dongle_g24_kb
+0x3e15 dongle_g24_kb_type0
+0x3e28 dongle_g24_kb_enable_blank_data_forcibly
+0x3e2c dongle_g24_kb_disable_blank_data_forcibly
+0x3e30 dongle_g24_kb_type3
+0x3e40 dongle_g24_kb_mul_enable_blank_data_forcibly
+0x3e44 dongle_g24_kb_mul_disable_blank_data_forcibly
+0x3e48 dongle_g24_kb_type_bit_consumer
+0x3e58 dongle_g24_kb_bit_consumer_enable_blank_data_forcibly
+0x3e5c dongle_g24_kb_bit_consumer_disable_blank_data_forcibly
+0x3e60 dongle_g24_kb_type2
+0x3e70 dongle_g24_kb_sys_enable_blank_data_forcibly
+0x3e74 dongle_g24_kb_sys_disable_blank_data_forcibly
+0x3e78 dongle_usb_tx_sys_data
+0x3e7a dongle_g24_store_dvc2_bind_flag
+0x3e7e dongle_prep_soft_reset
+0x3e80 dongle_kb_bind_soft_reset
+0x3e85 dongle_wirte_efuse_bind_status
+0x3e8f keyboard_softreset_process
+0x3e9a keyboard_wakeup_from_power_check
+0x3ea1 keyboard_default_init
+0x3ea5 keyboard_xtal_init
+0x3eaa keyboard_24g_phy_select
+0x3eae keyboard_init
+0x3eb7 keyboard_init_wireless
+0x3ebd keyboard_setting_config
+0x3ecb keyboard_param_common_init
+0x3edb keyboard_param_init
+0x3eed keyboard_ble_store_le_name
+0x3ef2 keyboard_ble_name_set_no_swift_pair
+0x3ef4 keyboard_compare_addr_init
+0x3ef9 keyboard_gpio_init
+0x3f09 keyboard_key_cow_init
+0x3f0f keyboard_key_row_init
+0x3f12 keyboard_key_row_init_loop
+0x3f18 keyboard_gpio_set_low_pullup
+0x3f1b keyboard_gpio_pu_idle
+0x3f1d keyboard_gpio_pu_idle_loop
+0x3f22 keyboard_gpio_pu_idle_configured
+0x3f29 keyboard_key_row_wake_set
+0x3f2c keyboard_pairing_check_otp_offset
+0x3f31 keyboard_load_otp_info
+0x3f35 keyboard_load_otp_device_info_g24_init
+0x3f3f keyboard_load_otp_device_info_ble_init
+0x3f49 keyboard_load_otp_device_info
+0x3f4d keyboard_load_otp_info_check_page_loop
+0x3f5f keyboard_load_otp_info_check_first_time
+0x3f61 keyboard_load_otp_info_check_first_time_loop_init
+0x3f63 keyboard_load_otp_info_check_first_time_loop
+0x3f72 keyboard_load_otp_info_check_first_time_process
+0x3f74 keyboard_load_otp_info_check_offset_process
+0x3f81 keyboard_load_otp_info_check_offset_process_g24
+0x3f87 keyboard_load_otp_info_check_offset_process_ble
+0x3f96 keyboard_load_eeprom_info
+0x3f9d keyboard_load_eeprom_device_info_next
+0x3fa2 keyboard_load_info_check
+0x3faa keyboard_load_info_24g
+0x3fac keyboard_load_info_fn_lock
+0x3fb0 keyboard_load_info_bt1
+0x3fb5 keyboard_load_info_bt
+0x3fbb keyboard_load_info_bt2
+0x3fbf keyboard_load_info_bt3
+0x3fc3 keyboard_load_info_usb
+0x3fc6 keyboard_app_initflag_check
+0x3fd5 keyboard_load_flash_info
+0x3fd7 keyboard_store_device_info
+0x3fdd keyboard_store_otp_device_info
+0x3fe1 keyboard_store_otp_device_info_g24
+0x3feb keyboard_store_otp_device_info_ble
+0x3fee keyboard_wirte_otp_ble
+0x4004 keyboard_store_eeprom_device_info
+0x400b keyboard_store_eeprom_device_info_next
+0x400c keyboard_store_eeprom_device_info_typer_check
+0x4014 keyboard_store_eeprom_device_all_info
+0x4019 keyboard_store_eeprom_device_info_ble_addr
+0x4025 keyboard_store_eeprom_device_info_g24_addr
+0x402d keyboard_store_eeprom_device_info_fn_lock
+0x4035 keyboard_store_eeprom_device_info_device_os
+0x403d keyboard_store_eeprom_device_info_rgb_tpye
+0x4045 keyboard_store_device_number
+0x4049 keyboard_eeprom_init
+0x404e keyboard_cb_fuction
+0x4066 keyboard_priority_bb_event
+0x4075 keyboard_bb_event_timer
+0x4093 keyboard_adc_vol_init
+0x4098 keyboard_adc_vol_1v5_init
+0x409d keyboard_adc_vol_3v0_init
+0x40a2 keyboard_adc_vol_4v2_init
+0x40a7 keyboard_adc_init
+0x40a9 keyboard_adc_gpio_set
+0x40b2 keyboard_channel_set_gpio
+0x40c4 keyboard_adc_read_start
+0x40cc keyboard_adc_read
+0x40cf keyboard_adc_data_process
+0x40d4 keyboard_adc_low_voltage
+0x40d6 keyboard_adc_no_low_voltage
+0x40dd keyboard_adc_gpio_set_before_hibernate
+0x40e0 keyboard_low_voltage_param_set
+0x40e8 keyboard_low_voltage_param_reset
+0x40eb keyboard_low_vol_mult_set
+0x40f3 keyboard_low_vol_mult_ble_set
+0x40f9 keyboard_mult_auto_get
+0x4100 keyboard_low_voltage_led_timer
+0x4119 keyboard_adc_low_volatage_led_timer_count_clean
+0x411b keyboard_low_voltage_led_blink_new_data
+0x4131 keyboard_device_poweron_timer
+0x4139 keyboard_device_poweron_030_led
+0x413a keyboard_power_led_on
+0x413c keyboard_power_led_off
+0x413e keyboard_mode_led_timer
+0x4146 keyboard_device_pair_led_timer
+0x414b keyboard_device_24g_pair_led
+0x414d keyboard_device_pair_led
+0x415f keyboard_device_clear_power_timer
+0x4161 keyboard_device_led_all_off
+0x4166 keyboard_device_led_off
+0x416c keyboard_device_led_on
+0x4172 keyboard_device_24g_led_off
+0x4174 keyboard_device_bt1_led_off
+0x4176 keyboard_device_bt2_led_off
+0x4178 keyboard_device_bt3_led_off
+0x417a keyboard_device_24g_led_on
+0x417c keyboard_device_bt1_led_on
+0x417e keyboard_device_bt2_led_on
+0x4180 keyboard_device_bt3_led_on
+0x4182 keyboard_low_voltage_led_on
+0x4184 keyboard_low_voltage_led_off
+0x4186 keyboard_num_capslock_led_on_timer
+0x4193 keyboard_usb_led_check
+0x4196 keyboard_num_cap_scoll_led_check
+0x4199 keyboard_numlock_led_check_on
+0x419b keyboard_numlock_led_on
+0x419d keyboard_numlock_led_off
+0x419f keyboard_capslock_led_check_on
+0x41a3 keyboard_capslock_led_off
+0x41a5 keyboard_scrolllock_led_check_on
+0x41a9 keyboard_scrolllock_led_off
+0x41ab keyboard_rgb_on_timer
+0x41b7 keyboard_pwm_init
+0x41c0 keyboard_rgb_pwm_disable
+0x41c6 keyboard_rgb_pwm_set
+0x41c9 keyboard_load_rgb
+0x41d0 keyboard_rgb_mode_switch
+0x41de keyboard_rgb_mode_switch_next
+0x41e2 keyboard_rgb_on_type_switch
+0x41ef keyboard_rgb_on_type_switch_next
+0x41f3 keyboard_rgb_process
+0x4203 keyboard_rgb_off
+0x4209 keyboard_rbg_breathe_process
+0x4211 keyboard_rbg_breathe_up
+0x421a keyboard_rbg_breathe_color_switch
+0x4221 keyboard_rgb_pwm
+0x4224 keyboard_breathe_tpye_select
+0x422c keyboard_breathe_tpye_red
+0x4231 keyboard_breathe_tpye_green
+0x4236 keyboard_breathe_tpye_blue
+0x423b keyboard_breathe_tpye_cyan
+0x423d keyboard_breathe_tpye_orange
+0x423f keyboard_breathe_tpye_purple
+0x4241 keyboard_breathe_tpye_white
+0x4244 keyboard_rgb_on_process
+0x424e keyboard_rgb_led_control
+0x425b keyboard_rgb_red_led_on
+0x425d keyboard_rgb_red_led_off
+0x425f keyboard_rgb_green_led_on
+0x4261 keyboard_rgb_green_led_off
+0x4263 keyboard_rgb_blue_led_on
+0x4265 keyboard_rgb_blue_led_off
+0x4267 keyboard_key_press_timer
+0x426d keyboard_device_select_g24_press_timer
+0x4278 keyboard_device_select_g24_nopress_timer
+0x427e keyboard_device_select_bt_press_timer
+0x4289 keyboard_device_select_bt_nopress_timer
+0x428f keyboard_commbination_key_process
+0x4294 keyboard_commbination_key_press_type_check
+0x4299 keyboard_check_discovery_timeout_timer
+0x429c keyboard_check_discovery_timeout
+0x429e keyboard_store_information_delay_timer
+0x42a1 keyboard_le_auto_recognize_timer
+0x42a4 keyboard_check_direct_timeout_timer
+0x42aa keyboard_check_direct_timeout
+0x42ad keyboard_le_battery_updata_timer
+0x42b2 keyboard_le_send_conn_param_update_timer
+0x42b5 keyboard_24g_repeat_send_data
+0x42bf keyboard_24g_led_status_get_timer
+0x42c2 keyboard_24g_led_status_clear
+0x42c4 keyboard_same_key_long_press_timer
+0x42c7 keyboard_long_press_timerout
+0x42c9 keyboard_commbination_delay_release_timer
+0x42cc keyboard_usb_updata_timer
+0x42d5 keyboard_check_no_data_timeout_timer
+0x42da keyboard_check_no_data_timeout
+0x42dd keyboard_idle
+0x42e3 keyboard_check_select_device_by_switch
+0x42f0 keyboard_check_select_device_by_switch_vdd_check
+0x42f8 keyboard_check_select_device_by_switch_vdd
+0x42fd keyboard_check_select_device_by_switch_gnd
+0x4302 keyboard_select_btdevice
+0x4308 keyboard_check_select_24g_device
+0x430e keyboard_start_work
+0x431a keyboard_start_work_next
+0x4324 keyboard_start_ble1_reconnect
+0x4325 keyboard_start_ble_reconnect
+0x4329 keyboard_start_ble2_reconnect
+0x432b keyboard_start_ble3_reconnect
+0x432d keyboard_24g_start_mode
+0x4330 kscan_dispatch
+0x4334 keyboard_keyscan
+0x4342 keyboard_keyscan_exmcu_start_check
+0x434a keyboard_keyscan_wait_wake_next
+0x4351 keyboard_keyscan_copy_value
+0x4354 keyboard_compare_col_excol_gpio_loop
+0x4359 keyboard_compare_col_gpio_loop
+0x435e keyboard_compare_col_excol_gpio_loop_next
+0x4366 keyboard_copy_value_exmcu_to_mcu
+0x4372 keyboard_keyscan_get_exmcu_value
+0x4373 keyboard_keyscan_exmcu_start_loop
+0x437a keyboard_keyscan_exmcu_get_col_value
+0x437d keyboard_keyscan_value_store
+0x4386 keyboard_keyscan_get_mcu_value
+0x4389 keyboard_keyscan_mcu_start
+0x4393 keyboard_keyscan_mcu_start_loop
+0x4399 keyboard_keyscan_get_col_value
+0x439e keyboard_keyscan_get_col_value_loop
+0x43a7 keyboard_clk_state_high
+0x43a9 keyboard_clk_state_low
+0x43ab keyboard_clk_input
+0x43ad keyboard_stb_state_high
+0x43af keyboard_stb_state_low
+0x43b1 keyboard_press_change_or_no_key
+0x43b5 keyboard_key_process
+0x43c6 keyboard_keyvalue_process
+0x43cf keyboard_keyvalue_change
+0x43de keyboard_keyvalue_change_loop
+0x43e9 keyboard_keyvalue_process_loop
+0x43f1 keyboard_keyscan_value_current_zero_check
+0x43fd keyboard_ghost_key_check
+0x4402 keyboard_ghost_key_check_loop
+0x4405 keyboard_current_col_press_key_count_check
+0x4418 keyboard_same_row_key_check
+0x4429 keyboard_ghost_key_check_next_loop
+0x442c keyboard_same_row_key_check_loop
+0x442e keyboard_keyvalue_normal_replace
+0x4435 keyboard_keyvalue_fn_replace
+0x4440 keyboard_fn_lock_check
+0x4451 keyboard_keyvalue_fn_esc
+0x4457 keyboard_keyvalue_fn_esc_next
+0x4459 keyboard_keyvalue_fn_delete
+0x445b keyboard_keyvalue_fn_replace_press
+0x4468 keyboard_keyvalue_fn_lock_replace
+0x447e keyboard_keyvalue_fn_lock_24g
+0x4481 keyboard_keyvalue_fn_lock_bt1
+0x4484 keyboard_keyvalue_fn_lock_bt2
+0x4487 keyboard_keyvalue_fn_lock_bt3
+0x448a keyboard_keyvalue_fn_lock_usb
+0x448d keyboard_keyvalue_fn_up_arrow
+0x4491 keyboard_keyvalue_fn_down_arrow
+0x4495 keyboard_keyvalue_fn_left_arrow
+0x4499 keyboard_keyvalue_fn_right_arrow
+0x449d keyboard_keyvalue_fn_left_ctrl
+0x44a5 keyboard_keyvalue_windows_osk
+0x44a7 keyboard_keyvalue_fn_space
+0x44aa keyboard_keyvalue_store_temp
+0x44ac keyboard_keyvalue_os_android
+0x44b2 keyboard_keyvalue_os_switch_end
+0x44b7 keyboard_store_eeprom_or_flash
+0x44b9 keyboard_store_device_info_delay
+0x44bc keyboard_keyvalue_os_windows
+0x44c3 keyboard_keyvalue_os_ios
+0x44ca keyboard_keyvalue_clear_temp
+0x44cc keyboard_store_computer_system
+0x44d3 keyboard_store_computer_system_bt1
+0x44d6 keyboard_store_computer_system_bt2
+0x44d9 keyboard_store_computer_system_bt3
+0x44dc keyboard_keyvalue_commbination_replace
+0x44ec keyboard_commbination_delay_release_set
+0x44f0 keyboard_commbination_delay_release_clear
+0x44f2 keyboard_commination_screen_shot_replace
+0x44f8 keyboard_commination_pageup_replace
+0x44f9 keyboard_commination_ios_mac_command_commiation
+0x44fe keyboard_commination_pagedown_replace
+0x4500 keyboard_commination_home_replace
+0x4502 keyboard_commination_end_replace
+0x4504 keyboard_commination_select_all
+0x4505 keyboard_commbination_text_edit
+0x450b keyboard_commbination_copy
+0x450d keyboard_commbination_paste
+0x450f keyboard_commbination_cut
+0x4511 keyboard_commination_os_lock
+0x4516 keyboard_commination_windows_lock
+0x4519 keyboard_commination_mac_lock
+0x451c keyboard_commbination_osk
+0x4520 keyboard_commbination_windows_osk
+0x4523 keyboard_commbination_search
+0x4527 keyboard_commbination_mac_search
+0x452a keyboard_commbination_language
+0x452e keyboard_commbination_language_next
+0x4531 keyboard_commbination_language_windows
+0x4533 keyboard_commbination_language_android
+0x4535 keyboard_commbination_app_tiling
+0x453b keyboard_commbination_app_tiling_windows_android
+0x453e keyboard_commbination_keypress
+0x4543 keyboard_commbination_key_press_set
+0x4545 keyboard_commbination_key_wait_release_set
+0x4547 keyboard_commbination_key_null_set
+0x4549 keyboard_commbination_key_value_store
+0x454e keyboard_commbination_key_press_process
+0x4551 keyboard_commbination_key_hold_set
+0x4553 keyboard_commbination_key_hold_process
+0x4557 keyboard_commbination_key_wait_release_process
+0x455d keyboard_commbination_key_release_set
+0x455f keyboard_commbination_key_release_process
+0x4560 keyboard_commbination_key_null_process
+0x4564 keyboard_keyvalue_in_out
+0x456e keyboard_keyvalue_control_key_out
+0x4572 keyboard_keyvalue_control_key_in
+0x4576 keyboard_keyvalue_standard
+0x4579 keyboard_keyvalue_standard_out
+0x457c keyboard_keyvalue_standard_out_loop
+0x4585 keyboard_keyvalue_standard_out_next
+0x458a keyboard_keyvalue_standard_out_n_key_rollover
+0x458d keyboard_keyvalue_standard_in
+0x4590 keyboard_keyvalue_standard_in_loop
+0x4599 keyboard_keyvalue_standard_in_n_key_rollover
+0x459c keyboard_keyvalue_standard_in_data
+0x459f keyboard_keyvalue_n_key_rollover_data_in_out
+0x45ad keyboard_keyvalue_consumer
+0x45b2 keyboard_consumer_key_release_status
+0x45b4 keyboard_special_key_check
+0x45bf keyboard_special_key_check_loop
+0x45c9 keyboard_commbination_key_press_check
+0x45d7 keyboard_commbination_key_press_check_bt
+0x45e8 keyboard_commbination_key_down_24g
+0x45ea keyboard_commbination_key_down_bt
+0x45ec keyboard_commbination_key_down_bt_fast_conn
+0x45ee keyboard_commbination_key_down
+0x45f2 keyboard_device_select
+0x45fe keyboard_clear_change_flag
+0x4600 keyboard_device_select_g24
+0x460c keyboard_device_select_g24_press
+0x4616 keyboard_device_select_bt1
+0x4620 keyboard_device_select_bt1_press
+0x4627 keyboard_device_select_bt2
+0x4631 keyboard_device_select_bt2_press
+0x4638 keyboard_device_select_bt3
+0x4642 keyboard_device_select_bt3_press
+0x4649 keyboard_device_select_bt_set_press_flag
+0x464e keyboard_device_select_usb
+0x465a keyboard_device_select_usb_press
+0x4660 keyboard_pairing_button_check
+0x466c keyboard_pairing_button_release
+0x4670 keyboard_enable_bt_button_pairing
+0x4675 keyboard_long_button_bt_discovery
+0x4680 keyboard_24g_start_pair_mode
+0x468f keyborad_control_key_set
+0x4697 keyboard_alt_flag_set
+0x4699 keyboard_fn_set
+0x469b keyboard_pb_set
+0x469d keyboard_motion
+0x46b7 keyboard_current_mult_update
+0x46ba keyboard_no_key_press
+0x46ca keyboard_motion_data_check
+0x46d1 keyboard_value_tpye_check
+0x46dc keyboard_tx_data_store
+0x46e3 keyboard_tx_data_store_loop
+0x46e6 keyboard_motion_data_check_next
+0x46ea device_send_keyboard_data
+0x46ec keyboard_motion_data_check_n_key_rollover_key
+0x46ef keyboard_value_release_all_key
+0x46f5 keyboard_value_tpye_consumer_set
+0x4715 keyboard_value_media
+0x4716 keyboard_consumer_value_store
+0x4718 keyboard_value_vol_down
+0x471a keyboard_value_vol_up
+0x471c keyboard_value_mute
+0x471e keyboard_value_pre_track
+0x4720 keyboard_value_next_track
+0x4722 keyboard_value_play
+0x4724 keyboard_value_stop
+0x4726 keyboard_value_ac_home
+0x4728 keyboard_value_mail
+0x472a keyboard_value_my_computer
+0x472c keyboard_value_ac_favorites
+0x472e keyboard_value_calculator
+0x4730 keyboard_value_ac_search
+0x4732 keyboard_value_ac_back
+0x4737 keyboard_value_os_soft_kb
+0x473b keyboard_value_os_soft_kb_android
+0x473d keyboard_value_light_down
+0x473f keyboard_value_light_up
+0x4741 keyboard_value_os_lock
+0x4743 keyboard_value_mac_eject
+0x4745 keyboard_value_ac_forward
+0x4747 keyboard_value_ac_stop
+0x4749 keyboard_value_ac_refresh
+0x474b keyboard_value_consumer_all_key_release
+0x474b keyboard_value_consumer_release
+0x4752 keyboard_value_system_sleep
+0x4756 keyboard_device_data_tpye_check
+0x475d keyboard_device_data_tpye_check_next
+0x4768 keyboard_mouse_data_send
+0x476d keyboard_standard_data_send
+0x4772 keyboard_standard_data_send_end
+0x4778 keyboard_magic_data_send
+0x477c keyboard_magic_data_send_end
+0x4780 keyboard_consumer_data_send
+0x4781 keyboard_consumer_data_store
+0x4785 keyboard_bit_consumer_data_send
+0x4787 keyboard_system_control_data_send
+0x478c keyboard_n_key_rollover_send
+0x478f keyboard_lpm_before_common
+0x4796 keyboard_key_col_wake_init
+0x47a0 keyboard_key_row_wake_init
+0x47aa keyboard_process_lpm_before
+0x47ac keyboard_before_hibernate
+0x47af keyboard_power_down
+0x47b1 keyboard_app_enter_hibernate
+0x47b3 keyboard_setgpio_hibernate
+0x47b8 keyboard_24g_pairing_complete
+0x47ca keyboard_24g_attempt_success
+0x47d3 keyboard_24g_fast_conn_check
+0x47d9 keyboard_24g_led_get_status_check
+0x47db keyboard_24g_led_data_check
+0x47e1 keyboard_get_24g_led_enable
+0x47e4 keyboard_set_repeat_send_flag
+0x47e6 keyboard_24g_attempt_fail
+0x47ed keyboard_24g_attempt_fail_enter_hibernate
+0x47f3 keyboard_24g_fast_conn_attempt_fail
+0x47fb keyboard_24g_hibernate_set
+0x4804 keyboard_24g_stop
+0x4808 keyboard_g24_reconn_dispatch
+0x480f keyboard_g24_reconn_dispatch_next
+0x4815 keyboard_g24_transmit_no_interrupt
+0x4817 keyboard_g24_transmit_start
+0x481a keyboard_g24_nodata_transmit
+0x4821 keyboard_g24_long_sleep
+0x4828 keyboard_g24_transmit_process
+0x482a keyboard_g24_transmit_loop
+0x4834 keyboard_g24_retransmit
+0x4841 keyboard_g24_tx_fast_hop
+0x4848 keyboard_g24_lpm_wait
+0x4855 keyboard_power_ctrl_start
+0x485b keyboard_g24_transmit_start_next
+0x485f keyboard_g24_short_sleep
+0x4862 keyboard_24g_package_data
+0x4868 keyboard_24g_keyboard_package_data
+0x486d keyboard_24g_keyboard_package_n_key_rollover_data
+0x4871 keyboard_24g_search_dongle
+0x4875 keyboard_le
+0x487d keyboard_le_next
+0x4885 keyboard_le_fill_n_key_rollover_key_data
+0x488e keyboard_le_fill_standard_key_data
+0x4893 keyboard_le_bb_event_connected
+0x489a keyboard_le_bb_event_connected_next
+0x48a2 keyboard_le_bb_disconnected
+0x48a7 keyboard_le_bb_disconnected_next
+0x48ab keyboard_bb_disconnected
+0x48af keyboard_le_event_bb_disconn
+0x48b3 keyboard_le_ll_start_encryt
+0x48b8 keyboard_le_ll_reconn_start_encryt
+0x48bb keyboard_le_conn_param_update_rsp_recieved
+0x48c0 keyboard_bb_event_discovery_btn
+0x48c5 keyboard_start_discovery
+0x48d9 keyboard_start_discovery_norandom
+0x48e6 keyboard_stop_bluetooth_mode
+0x48e9 keyboard_stop_discovery
+0x48f2 keyboard_store_remote_bdaddr
+0x48fd keyboard_le_send_att_find_by_type_value_request_ancs
+0x490b keyboard_le_parse_att
+0x4919 keyboard_le_send_att_find_by_type_value_request_mac
+0x492c keyboard_le_parse_att_find_by_type_value_rsp_mac
+0x4938 keyboard_le_send_att_read_by_type_rsp_mac
+0x4941 keyboard_le_check_att_read_type_manu_loop
+0x494a keyboard_le_send_att_read_by_type_rsp_manufactory
+0x4952 keyboard_le_parse_att_manu_resp
+0x495c keyboard_le_parse_att_find_by_type_value_rsp
+0x4960 keyboard_le_parse_att_find_ios_report
+0x4962 keyboard_le_parse_att_not_find_mac_report
+0x4965 keyboard_le_parse_att_find_mac_report
+0x4966 keyboard_store_computer_system_ble
+0x496d keyboard_store_computer_system_info
+0x4971 keyboard_le_parse_att_read_by_type_request
+0x4973 keyboard_le_send_att_read_by_type_response
+0x497f keyboard_le_send_att_read_by_type_res_pnp_id
+0x4986 keyboard_le_parse_att_read_blob_request
+0x4999 keyboard_le_send_att_read_blob_response
+0x499f keyboard_le_parse_att_read_request
+0x49a2 keyboard_le_send_att_read_response
+0x49a7 keyboard_le_send_att_read_response_next
+0x49aa keyboard_le_send_att_read_response_next_1
+0x49b7 keyboard_le_send_att_appearance
+0x49ba keyboard_le_send_att_pnp_id
+0x49bf keyboard_le_send_att_read_response_check_auth
+0x49c5 keyboard_le_parse_att_write_request
+0x49cb keyboard_le_parse_att_write_command
+0x49d1 keyboard_le_fast_conn_led_get
+0x49d4 keyboard_le_led_get
+0x49d7 keyboard_usb_mode_start
+0x49db keyboard_usb_check_enable
+0x49e1 keyboard_usb_config_param
+0x49e7 keyboard_usb_vid_pid_config
+0x49ec keyboard_usb_interface_check_power_on
+0x49ee keyboard_usb_vdd_status_store
+0x49f1 keyboard_usb_insert
+0x49fa keyboard_usb_isr
+0x49ff keyboard_usb_mode
+0x4a10 keyboard_usb_tx_kb_normal_data
+0x4a15 keyboard_push_n_key_rollover_key_data_to_usb
+0x4a1d keyboard_ui_ipc_send_event
+0x4a20 ui_ipc_fifo_check
+0x4a25 keyboard_enable_function_flag
+0x4a29 keyboard_disable_function_flag
+0x4a2d keyboard_bt_discovery_button_down_enable
+0x4a2f keyboard_bt_discovery_button_down_disable
+0x4a31 module_init
+0x4a43 module_lpm_uart_init
+0x4a55 module_gpio_init
+0x4a5a module_lpm_lock
+0x4a5e module_process_idle
+0x4a61 module_process_bb_event
+0x4a6f module_process_bb_even_le_disconn
+0x4a73 module_process_le_conn
+0x4a77 module_disconn_start
+0x4a79 module_process_ble_ltk_lost
+0x4a7b module_process_ble_update_phy
+0x4a7c module_set_conn_pin_high
+0x4a7e module_conn_start
+0x4a80 module_stop_adv_discovery
+0x4a84 module_set_conn_pin_low
+0x4a86 module_process_check_hci_command_complete
+0x4a9c module_hci_in_excp
+0x4a9f module_hci_release_except
+0x4aa5 module_hci_dicard_packet
+0x4aa9 module_hci_dicard_bytes
+0x4aaa module_hci_cmd_control
+0x4ac7 module_hci_cmd_set_le_addr
+0x4acc module_hci_cmd_set_visibility
+0x4ad3 module_start_adv_discovery_by_command
+0x4ad3 moudle_start_adv_by_command
+0x4ada module_hci_cmd_set_le_name
+0x4ade module_hci_cmd_receive_le_data
+0x4b03 module_hci_cmd_receive_le_data_finish
+0x4b06 module_hci_cmd_transmit_handle_error
+0x4b0a module_hci_cmd_transmit_le_notify
+0x4b28 module_hci_cmd_transmit_le_notify_malloc_l2cap
+0x4b2d module_get_le_remote_mtu
+0x4b32 module_check_ble_encrypt_state
+0x4b35 module_hci_cmd_inquire_status
+0x4b36 module_hci_cmd_set_uart_baud
+0x4b3e module_hci_cmd_version_request
+0x4b42 module_hci_cmd_ble_disconnect
+0x4b44 module_hci_cmd_ble_disconnect_doing
+0x4b46 module_hci_cmd_set_nvram
+0x4b4b module_hci_cmd_auto_adv
+0x4b51 module_hci_cmd_auto_adv_loop
+0x4b5b module_hci_cmd_auto_adv_store_adv
+0x4b65 module_hci_cmd_auto_adv_store_scan
+0x4b6e module_hci_cmd_auto_adv_store_common
+0x4b79 module_hci_cmd_auto_adv_adv_analys
+0x4b7e module_hci_cmd_power_request
+0x4b84 module_hci_cmd_power_set
+0x4b8b module_hci_cmd_passkey_entry
+0x4b90 module_hci_cmd_le_set_pairing_mode
+0x4b9f module_le_set_pairing_mode_secure_justwork
+0x4ba3 module_le_set_pairing_mode_secure_numeric
+0x4ba8 module_le_set_pairing_mode_secure_passkey
+0x4bac module_le_set_pairing_mode_secure_passkey_res_input
+0x4bb0 module_le_set_no_pairing
+0x4bb1 module_le_set_noinputnooutput
+0x4bb3 module_le_set_pairing_mode_lagacy_just_work
+0x4bb5 module_le_set_pairing_mode_lagacy_passkey
+0x4bb7 module_le_set_pairing_mode_lagacy_passkey_res_input
+0x4bb9 module_le_set_keboadonly
+0x4bbb module_le_set_displayonly
+0x4bbd module_hci_cmd_le_set_scan_data
+0x4bc0 module_hci_cmd_receive_store_mem
+0x4bc6 module_hci_cmd_le_send_conn_update_req
+0x4bcf module_hci_cmd_set_le_adv_parameter
+0x4bd5 module_hci_cmd_le_start_pairing
+0x4bdd module_hci_cmd_set_wake_gpio
+0x4be7 module_hci_cmd_set_tx_power
+0x4bec module_hci_cmd_le_confirm_gkey
+0x4bf3 module_hci_cmd_le_confirm_gkey_ok
+0x4bf5 module_hci_cmd_le_confirm_gkey_fail
+0x4bf7 module_hci_cmd_reset_chip
+0x4bfb module_hci_cmd_delete_customize_service
+0x4c01 module_hci_cmd_add_service_uuid
+0x4c06 module_hci_cmd_add_characteristic_uuid
+0x4c0a module_hci_cmd_add_service_uuid_set_uuid
+0x4c0e module_hci_cmd_add_characteristic_uuid_set_handle
+0x4c15 module_hci_cmd_add_characteristic_uuid_set_uuid
+0x4c2d module_hci_cmd_add_characteristic_uuid_set_ccc_uuid
+0x4c35 le_att_creat_new_handle
+0x4c38 uart_copy_rx_bytes_len_data
+0x4c3c module_hci_cmd_le_passkey_entry_input
+0x4c42 module_hci_cmd_passkey_entry_sc_res_input
+0x4c45 module_hci_cmd_receive_ble_passkey
+0x4c48 module_hci_cmd_passkey_entry_res_input
+0x4c4a module_hci_event_receive_invalid_cmd
+0x4c4d module_hci_event_receive_valid_cmd
+0x4c50 module_hci_event_le_connect
+0x4c52 module_hci_event_le_disconnect
+0x4c54 module_hci_event_set_cmd
+0x4c61 module_hci_event_receive_le_data
+0x4c6c module_hci_event_enter_standby_mode
+0x4c6d module_hci_event_enter_standby_mode_len0
+0x4c70 module_hci_event_status_res
+0x4c7a module_hci_read_bt_status
+0x4c80 module_hci_event_store_device
+0x4c89 module_hci_event_gkey_generate
+0x4c8f module_hci_event_invalid_packet
+0x4c9e module_hci_event_passkey_entry_mode
+0x4ca0 module_hci_event_le_tk
+0x4ca6 module_hci_event_le_pairing_fail
+0x4ca8 module_hci_event_le_pairing_success
+0x4caa module_hci_event_pairing_completed
+0x4cb0 module_hci_event_pause_enc
+0x4cb2 module_hci_event_start_enc
+0x4cb3 module_hci_event_enc
+0x4cb9 module_hci_event_uuid_handle
+0x4cc0 module_hci_event_le_input_passkey
+0x4cc2 module_hci_event_le_update_phy
+0x4cc8 module_hci_prepare_tx
+0x4cd2 module_hci_transmit_tx
+0x4cd4 module_set_mcu_wake_pin_high_delay
+0x4cd6 module_set_mcu_wake_pin_h_delay
+0x4cdb module_set_mcu_wake_pin_high
+0x4cdd module_check_mcu_wake_pin_high
+0x4cdf module_set_mcu_wake_pin_low
+0x4ce1 module_le_receive_data
+0x4ce7 module_le_receive_data_ok
+0x4cf2 module_bb_event_timer
+0x4cf3 module_read_vdd_timer
+0x4d05 module_set_le_tx_data_flag
+0x4d07 module_clear_le_tx_data_flag
+0x4d09 module_clr_state
+0x4d0d module_set_state
+0x4d11 mouse_init
+0x4d1c mouse_init_wireless
+0x4d20 mouse_wake_gpio_set
+0x4d22 mouse_cb_fuction
+0x4d40 mouse_setting_config
+0x4d48 mouse_load_device_info_check
+0x4d4e mouse_xtal_init
+0x4d53 mouse_24g_phy_select
+0x4d5d mouse_g24_reconn_dispatch_set
+0x4d60 mouse_g24_reconn_dispatch
+0x4d65 mouse_receiver_addr_check
+0x4d6c mouse_g24_reconn_mode_judge
+0x4d70 mouse_g24_transmit_hop_process
+0x4d72 mouse_g24_transmit_hop_process_new
+0x4d7e mouse_g24_transmit_hop_process_4ms
+0x4d82 mouse_default_init
+0x4d88 mouse_param_info_init
+0x4d8c mouse_spi_parm_init
+0x4d93 mouse_param_common_init
+0x4da0 mouse_compare_addr_init
+0x4da5 mouse_report_rate_parm_init
+0x4da8 mouse_le_report_rate_parm_init
+0x4dab mouse_le_interval_store
+0x4dae mouse_24g_report_rate_parm_init
+0x4db2 mouse_g24_interval_param_2ms
+0x4db6 mouse_report_rate_set_500hz
+0x4db9 mouse_g24_interval_param_4ms
+0x4dc6 mouse_g24_interval_param_8ms
+0x4dd3 mouse_sensor_set_angle
+0x4de1 mouse_set_sensor_angle_vin
+0x4de5 mouse_set_sensor_angle_gnd
+0x4de9 mouse_set_sensor_angle_float
+0x4dea mouse_store_sensor_angle
+0x4dec mouse_le_name_modify
+0x4df5 mouse_start_work
+0x4dfa mouse_le_fast_conn_judge
+0x4e00 mouse_le_device1_judge
+0x4e05 mouse_le_device2_judge
+0x4e09 mouse_start_reconnect_device
+0x4e11 mouse_start_reconnect
+0x4e14 mouse_wakeup_from_power_check
+0x4e1b mouse_wakeup_from_poweron
+0x4e1e mouse4_0_check_reconn_target
+0x4e23 mouse4_0_check_reconn_target_next
+0x4e2d mouse_lpm_check_wake_lock
+0x4e35 mouse_app_enter_hibernate
+0x4e3b mouse_app_enter_hibernate_next
+0x4e3d mouse_before_hibernate
+0x4e42 mouse_setgpio_hibernate
+0x4e52 mouse_wheel_gpio_set_before_hibernate
+0x4e54 mouse_wheel_gpio_clr_wakeup
+0x4e5c mouse_adc_gpio_set_before_hibernate
+0x4e62 mouse_gpio_pd_idle
+0x4e64 mouse_gpio_pd_idle_loop
+0x4e69 mouse_gpio_pd_idle_configured
+0x4e6d mouse_gpio_pd_idle_ext
+0x4e70 mouse_process_lpm_before
+0x4e75 mouse_lpm_before_common
+0x4e9b mouse_set_mult
+0x4ea0 mouse_adc_gpio_set
+0x4ea5 mouse_adc_read
+0x4ea9 mouse_adc_read_start
+0x4eb4 mouse_adc_data_process
+0x4ebb mouse_adc_low_voltage
+0x4ebd mouse_adc_no_low_voltage
+0x4ec4 mouse_adc_bat_percent_lowpower_out
+0x4ec7 mouse_adc_bat_percent_lowpower_out_battery
+0x4ed0 mouse_adc_bat_level_set
+0x4ee1 mouse_adc_bat_level_100_percent
+0x4ee3 mouse_adc_bat_level_0_percent
+0x4ee5 mouse_gpio_init
+0x4f02 mouse_gpio_set_pupd_by_input
+0x4f06 device_gpio_config_input_pd
+0x4f0a device_gpio_config_input_pu
+0x4f0e mouse_gpio_set_analog
+0x4f12 mouse_gpio_set_analog_bit_loop
+0x4f1b mouse_sensor_spi_init
+0x4f1f mouse_spi_write_flash_cb
+0x4f1f mouse_spi_init
+0x4f20 mouse_spid_init_pin
+0x4f26 mouse_motion
+0x4f38 mouse_zwheel
+0x4f3d mouse_t_zwheel
+0x4f42 mouse_wheel_check
+0x4f51 mouse_t_wheel_scan
+0x4f61 mouse_t_wheel_scan_judge1
+0x4f65 mouse_t_wheel_scan_judge2
+0x4f69 mouse_t_wheel_scan_judge11
+0x4f6b mouse_t_wheel_scan_judge12
+0x4f6d mouse_t_wheel_scan_judge21
+0x4f6f mouse_t_wheel_scan_judge22
+0x4f71 mouse_t_wheel_scan_judge3
+0x4f79 mouse_t_wheel_scan_judge30
+0x4f7c mouse_t_wheel_scan_judge31
+0x4f7f mouse_t_wheel_scan_judge32
+0x4f82 mouse_t_wheel_scan_judge33
+0x4f85 mouse_wheel_t_forward
+0x4f89 mouse_wheel_t_back
+0x4f8d mouse_wheel_scan
+0x4f9d mouse_wheel_scan_judge1
+0x4fa1 mouse_wheel_scan_judge2
+0x4fa5 mouse_wheel_scan_judge11
+0x4fa7 mouse_wheel_scan_judge12
+0x4fa9 mouse_wheel_scan_judge21
+0x4fab mouse_wheel_scan_judge22
+0x4fad mouse_wheel_scan_judge3
+0x4fb5 mouse_wheel_scan_judge30
+0x4fb8 mouse_wheel_scan_judge31
+0x4fbb mouse_wheel_scan_judge32
+0x4fbe mouse_wheel_scan_judge33
+0x4fc1 mouse_wheel_forward
+0x4fc5 mouse_wheel_back
+0x4fc9 mouse_before_hibernate_wheel_gpio_set
+0x4fd1 mouse_wheel_trigger
+0x4fd6 mouse_wheel_trigger_timer
+0x4fd9 mouse_wheel_trigger_disable
+0x4fdb mouse_dpi_check
+0x4fe5 mouse_dpi_check_exit
+0x4fe8 mouse_dpi_key_check
+0x4ff0 mouse_dpi_key_connect_matrix
+0x4ff8 mouse_dpi_3io6key_check
+0x4ffc mouse_3io6key_dpi_check_end
+0x4fff mouse_dpi_check_end
+0x5002 mouse_dpi_key_connect_gnd
+0x5004 mouse_dpi_down
+0x500b mouse_dpi_up
+0x5012 mouse_dpi_up_next
+0x5016 mouse_dpi_up_after_long_press
+0x501b mouse_dpi_process
+0x501e mouse_dpi_process_skip_ghost
+0x5025 mouse_dpi_level_store
+0x5028 mouse_double_dpi_check
+0x502a mouse_dpi_increase
+0x502e mouse_dpi_increase_level
+0x5031 mouse_dpi_level_1
+0x5033 mouse_dpi_level_2
+0x5035 mouse_dpi_level_3
+0x5037 mouse_dpi_level_4
+0x5039 mouse_dpi_increase_level_4
+0x503f mouse_dpi_decrease_level_4
+0x5045 mouse_another_dpi_button_down
+0x5045 mouse_dpi_decrease
+0x5049 mouse_dpi_decrease_level
+0x504c mouse_dpi_ghost_check
+0x5050 mouse_dpi_key_check_long_press
+0x5054 mouse_select_device_by_dpi_button
+0x5059 mouse_ready_reconnection_by_dpi_button
+0x505b mouse_discovery_by_dpi_button
+0x5060 mouse_long_dpi_button_bt_discovery
+0x5062 mouse_setting_dpi_4_level
+0x5068 mouse_setting_dpi
+0x506b mouse_setting_sensor_type
+0x5075 mouse_set_cpi1
+0x5077 mouse_set_cpi0
+0x5079 mouse_set_cpi2
+0x507b mouse_set_cpi3
+0x507c mouse_dpi_store
+0x5082 mouse_dpi_write
+0x508b mouse_3065xy_set_dpi
+0x508d mouse_ka8_set_dpi
+0x508f mouse_seting_s201_dpi
+0x5095 mouse_set_s201_dpi_0
+0x5097 mouse_set_s201_dpi_1
+0x5099 mouse_set_s201_dpi_2
+0x509b mouse_set_s201_dpi_3
+0x509d mouse_set_s201_dpi_4
+0x509e mouse_dpi_s201_store
+0x50a5 mouse_sensor_enable_wp
+0x50a7 mouse_sensor_disable_wp
+0x50a9 mouse_seting_3212_dpi
+0x50ae mouse_set_p3212_cpi1
+0x50b0 mouse_set_p3212_cpi0
+0x50b2 mouse_set_p3212_cpi2
+0x50b4 mouse_set_p3212_cpi3
+0x50b5 mouse_p3212_dpi
+0x50bd mouse_seting_ka8g2_dpi
+0x50c2 mouse_set_pka8g2_cpi1
+0x50c4 mouse_set_pka8g2_cpi0
+0x50c6 mouse_set_pka8g2_cpi2
+0x50c8 mouse_set_pka8g2_cpi3
+0x50ca mouse_key
+0x50db mouse_24g_key
+0x50e0 mouse_ghost_key_check
+0x50f0 mouse_matrix_ghost_key_l_bk
+0x50f5 mouse_matrix_ghost_key_l_fw
+0x50fa mouse_ghost_key_lbk_mfw
+0x50fd mouse_ghost_key_lbk_rfw
+0x50ff mouse_ghost_key_lfw_mbk
+0x5102 mouse_ghost_key_lfw_rbk
+0x5104 mouse_ghost_key_mbk_rfw
+0x5105 mouse_ghost_key_rfw
+0x5107 mouse_ghost_key_mfw_rbk
+0x5108 mouse_ghost_key_rbk
+0x5109 mouse_ghost_key_check_next
+0x5113 mouse_ghost_key_check_l_bk
+0x5116 mouse_ghost_key_check_m_bk
+0x5119 mouse_ghost_key_check_r_bk
+0x511c mouse_ghost_key_check_l_fw
+0x511f mouse_ghost_key_check_m_fw
+0x5122 mouse_ghost_key_check_r_fw
+0x5125 mouse_ghost_key_check_bk_fw
+0x5128 mouse_ghost_key_check_lmr
+0x512e mouse_matrix_row_more_than_one_key
+0x5130 mouse_matrix_cow_more_than_one_key
+0x5132 mouse_dpi_another_gpio_check
+0x5135 mouse_dpi_another_gpio_connect_gnd_check
+0x513a mouse_dpi_another_gpio_connect_vin_check
+0x5143 mouse_dpi_another_down_new
+0x5148 mouse_dpi_another_check
+0x514c mouse_dpi_another_state_check
+0x514f mouse_dpi_another_down
+0x5153 mouse_dpi_another_up
+0x5157 mouse_check_key_connect_gnd_new
+0x5161 mouse_check_key_connect_vin_new
+0x516c mouse_another_dpi_key_press
+0x516e mouse_another_dpi_key_release
+0x5170 mouse_check_firekey_gpio
+0x5175 mouse_check_firekey_connect_gnd
+0x517a mouse_firekey_state_store
+0x517d mouse_check_firekey_connect_vin
+0x5183 fire_key_process
+0x5184 fire_key_press
+0x5192 fire_key_process_start
+0x5193 fire_key_down
+0x5195 fire_key_process_release1
+0x5196 fire_key_release
+0x5198 fire_key_process_start2
+0x519a fire_key_process_release2
+0x519c fire_key_process_end
+0x519f firekey_clkn_bt_timer_check
+0x51a4 firekey_clkn_bt_timer_timeout
+0x51a7 mouse_key_check_once
+0x51ac mouse_check_key_gpio
+0x51b9 mouse_check_key_gpio_once
+0x51bc mouse_check_lkey_gpio
+0x51c5 mouse_check_rkey_gpio
+0x51ce mouse_check_mkey_gpio
+0x51d7 mouse_check_bkkey_gpio
+0x51e6 mouse_check_bkkey_gpio_end
+0x51e8 mouse_check_bk_button_connect_gnd
+0x51ec mouse_3io6key_bk_check
+0x51f3 mouse_check_fwkey_gpio
+0x5202 mouse_check_fwkey_gpio_end
+0x5203 mouse_matrix_public_gpio_reset
+0x5205 mouse_check_fw_button_connect_gnd
+0x5209 mouse_3io6key_fw_check
+0x5210 mouse_check_customerkey_gpio
+0x5216 mouse_customer_key_connect_gnd
+0x521b mouse_check_customerkey_state
+0x521e mouse_check_customerkey_gpio_exit
+0x5221 mouse_customer_key_connect_vin
+0x522c mouse_customerkey_press
+0x522f mouse_customerkey_release
+0x5232 mouse_customer_key_need_send
+0x5234 mouse_key_release
+0x5236 mouse_check_key_connect_gnd
+0x523a mouse_check_key_connect_gnd_next
+0x5240 mouse_key_press
+0x5242 mouse_3io6key_check
+0x524e mouse_check_press
+0x5254 mouse_gpio_config_output_high
+0x5256 mouse_gpio_config_output_low
+0x5258 mouse_gpio_config_pu_check
+0x525c mouse_gpio_config_pd_check
+0x5260 mouse_init_sunt
+0x5263 mouse_init_sensor_wakeup
+0x5264 mouse_init_sensor
+0x526c mouse_twspi_reset
+0x526f mouse_read_sensor_id
+0x5276 mouse_init_p32xx_id2_judge
+0x527f mouse_s210x_3205_3t_judge
+0x5283 mouse_s201x_init_param
+0x5285 mouse_mx8650_init_param
+0x528a mouse_8009_init_param
+0x5299 mouse_3205_3t_init_param
+0x52a2 mouse_3204_3l_init_param
+0x52a9 mouse_3212_init_param
+0x52ab mouse_sensor_wr_seq
+0x52b2 mouse_ka8_init_param_check
+0x52c4 mouse_ka8_init_param
+0x52c6 mouse_ka8ul_init_param
+0x52c9 mouse_ka8hd_sensor_judge
+0x52d3 mouse_ka8hd_init_param
+0x52d6 mouse_enable_ka8_sensor_wp
+0x52d9 mouse_p6520_init_param
+0x52dc mouse_init_p3065
+0x52e1 mouse_p3065_init_param
+0x52e3 mouse_p3065xy_init_param
+0x52e5 mouse_ka8g2_id2_judge
+0x52ea mouse_ka8g2_init_param
+0x52ed mouse_ka5857_init_param
+0x52f0 mouse_sensor_reset
+0x52f4 mouse_sensor_reset_end
+0x52f8 mouse_sensor_poweron_init
+0x52fd mouse_sensor_poweron
+0x5301 mouse_sensor_poweron_end
+0x5303 mouse_sensor_powerdown
+0x530a mouse_sensor_powerdown_end
+0x530c mouse_check_sensor_data
+0x5319 mouse_p32xx_sensor_motion
+0x5320 mouse_p32xx_sensor_motion_2
+0x5323 mouse_p32xx_sensor_motion_1
+0x5333 mouse_p3065_judge
+0x5335 mouse_motion32xx_6clk_direction_selection
+0x5337 mouse_motion32xx_9clk_direction_selection
+0x5339 mouse_motion32xx_12clk_direction_selection
+0x533b mouse_motion32xx_3clk_direction_selection
+0x533d mouse_p3212_sensor_motion
+0x5343 mouse_p3212_sensor_motion_1
+0x5346 mouse_p3212_sensor_motion_2
+0x5359 mouse_read_3212sensor_xy_high
+0x535b mouse_pka8g2_sensor_motion
+0x5361 mouse_pka8g2_sensor_motion_1
+0x5365 mouse_p8009_sensor_motion
+0x5370 mouse_motion_6clk_direction_dispose
+0x5374 mouse_motion_12clk_direction_dispose
+0x5378 mouse_motion_9clk_direction_dispose
+0x5380 mouse_motion_3clk_direction_dispose
+0x5382 mouse_sensor_data_swap_places
+0x5387 mouse_clear_sensor_data
+0x538b mouse_clear_sensor_data_by_reset
+0x538d mouse_init_sensor_reset
+0x538e mouse_data_xy_release
+0x5397 mouse_data_extsign
+0x5399 mouse_data_ior
+0x539b mouse_data_extsign_bit3
+0x539e mouse_read_sensor_common
+0x53a4 mouse_sensor_sdio_low
+0x53ab mouse_set_sdio_high
+0x53ad mouse_bluetooth_fast_conn_init
+0x53ae mouse_ble_fast_conn_init
+0x53b3 mouse_buletooth_fast_conn_end
+0x53ba mouse_device1_check_auto_discover
+0x53bc mouse_device2_check_auto_discover
+0x53bd mouse_device_check_auto_discover
+0x53c1 mouse_bluetooth_fast_conn_disable
+0x53c3 mouse_stop_bluetooth_mode
+0x53c6 mouse_disconnect
+0x53cb mouse_check_125hz
+0x53cd mouse_bluetooth_125hz
+0x53d3 mouse_bluetooth_125hz_clear
+0x53d5 mouse_current_mult_update
+0x53da mouse_priority_bb_event
+0x53e9 mouse_le_bb_event_connected
+0x53f1 mouse_le_bb_event_connected_next
+0x53f9 mouse_le_bb_disconnected
+0x5400 mouse_le_bb_disconnected_next
+0x5406 mouse_le_pairing_success
+0x5408 mouse_le_enc_info
+0x5408 mouse_updata_le_param
+0x540a mouse_le_ll_start_encryt
+0x540d mouse_le_ll_reconn_start_encryt
+0x540f mouse_le_ll_enable_start_enc_flag
+0x5411 mouse_le_enable_connect_flag
+0x5415 mouse_le_conn_param_update_rsp_recieved
+0x541e mouse_le_conn_param_lpm_disable
+0x5420 mouse_le_bb_event_connect_complete
+0x5426 mouse_le_write_enable
+0x5428 mouse_le_parse_conn_param_accepted
+0x5434 mouse_le_lpm_mult_reinit
+0x5436 mouse_le_conn_param_lpm_enable
+0x5438 mouse_le
+0x5440 mouse_le_next
+0x5450 mouse_fill_battery_level_le
+0x5455 mouse_check_51cmd_adv
+0x545e mouse_le_check_adv_flag
+0x545f mouse_le_check_adv_flag_loop
+0x5465 mouse_le_adv_data_update
+0x5469 mouse_le_parse_att
+0x5470 mouse_le_parse_att_read_request
+0x5476 mouse_le_send_att_read_response
+0x547a mouse_le_send_att_read_response_check_auth
+0x547f mouse_le_parse_att_write_request
+0x5484 mouse_bb_disconnected
+0x548a mouse_bb_discon_clear_stack
+0x5490 mouse4_0_event_bb_disconn
+0x5494 mouse_bb_event_timer
+0x54ab mouse_bt_discovery_check
+0x54ad mouse_bt_discovery_by_pb_button
+0x54b2 mouse_long_button_bt_discovery
+0x54ba mouse_commbination_dpi_check_timer
+0x54c4 mouse_commbination_key_count_init
+0x54c6 mouse_commbination_dpi_check
+0x54c9 mouse_retransmit_commbination_key_check
+0x54cb mouse_commbination_key_select_device_timer
+0x54d4 p_mouse_check_mouse_key_select_device_set
+0x54d7 mouse_commbination_key_process
+0x54dd mouse_24g_commbination_key_process
+0x54e0 mouse_commbination_key_start
+0x54e6 mouse_commbination_key_up
+0x54ec mouse_commbination_key_down
+0x54f1 mouse_combination_ui_timer
+0x54fa mouse_check_discovery_timeout_timer
+0x54fd mouse_check_discovery_timeout
+0x54ff mouse_check_direct_timeout_timer
+0x5505 mouse_check_direct_timeout
+0x550d mouse_le_enable_att_list_timer
+0x5510 mouse_le_send_smp_security_request_timer
+0x5515 mouse_le_pairing_sm_start_check
+0x551a mouse_le_battery_updata_timer
+0x551f mouse_le_battery_level_updata
+0x5522 mouse_le_enable_att_list
+0x5527 mouse_current_mult_update_timer
+0x552a mouse_current_mult_reinit
+0x552c mouse_long_mult_init
+0x552f mouse_check_no_data_timeout_timer
+0x5532 mouse_check_no_data_timeout
+0x5535 mouse_no_data_timer_init
+0x5538 mouse_store_information_delay_timer
+0x553b mouse_store_device_info_check
+0x553f mouse_bb_event_discovery_btn
+0x5544 mouse_start_discovery
+0x5554 mouse_start_discovery_norandom
+0x5562 mouse_stop_discovery
+0x5565 mouse_stop_le_adv
+0x5569 mouse_store_remote_bdaddr
+0x556f mouse_unplug_clean_bdaddr
+0x5571 mouse_store_device_info_delay
+0x5574 mouse_store_device_info
+0x557a mouse_store_dpi_info_check
+0x5580 mouse_store_eeprom_device_info
+0x5584 mouse_store_eerpom_dpi
+0x5588 mouse_store_flash_device_info
+0x558a mouse_store_otp_device_info
+0x558e mouse_write_otp_app_initflag
+0x5594 mouse_write_otp_device_flag
+0x5596 mouse_write_otp_device_flag_loop
+0x55a0 mouse_device_flag_store
+0x55a6 mouse_devoce_flag_store_end
+0x55aa mouse_device_flag_store_check
+0x55b8 mouse_device_flag_otp_store_judge
+0x55bb mouse_write_otp_device_info
+0x55c0 mouse_write_otp_24g_addr
+0x55c2 mouse_otp_store_24g_addr_loop
+0x55cc mouse_24g_addr_store
+0x55d4 mouse_write_otp_le_device1
+0x55d6 mouse_otp_store_le_addr1_loop
+0x55e0 mouse_le_addr1_store
+0x55e8 mouse_write_otp_le_device2
+0x55ea mouse_otp_store_le_addr2_loop
+0x55f4 mouse_le_addr2_store
+0x55fc mouse_write_otp_le_addr_increase_count_info
+0x5600 mouse_otp_store_le_addr_increase_count_loop
+0x560a mouse_le_addr_increase_count_store
+0x5612 mouse_store_otp_dpi
+0x5616 mouse_otp_store_dpi_loop
+0x5620 mouse_otp_dpi_store
+0x5626 mouse_dpi_store_end
+0x562a mouse_dpi_store_last_check
+0x5638 mouse_dpi_otp_store_judge
+0x563b mouse_device_flag_check
+0x5640 mouse_load_eeprom_info_check
+0x5648 mouse_eeprom_load_recon_info
+0x564c mouse_load_eeprom_dpi
+0x5650 mouse_load_flash_info_check
+0x5654 mouse_information_flash_parameters
+0x565a mouse_spid_flash_release_form_powerdown
+0x565b mouse_spid_write_flash_cmd
+0x5661 mouse_spid_flash_powerdown
+0x5663 mouse_spid_write_flash_cmd_common
+0x566f mouse_flash_erase_sector
+0x5672 mouse_spid_write_flash
+0x567d mouse_flash_power_down
+0x5685 mouse_load_otp_info_check
+0x5689 mouse_app_initflag_load_check
+0x5691 mouse_app_initflag_load
+0x5696 mouse_load_default_dpi
+0x5697 mouse_temp_store_dpi
+0x5699 mouse_otp_load_app_initflag
+0x569d mouse_otp_store_app_initflag
+0x56a1 mouse_read_otp_device_flag
+0x56a3 mouse_read_otp_device_flag_loop
+0x56ad mouse_read_otp_device_flag_common
+0x56b0 mouse_device_flag_load
+0x56b6 mouse_device_flag_load_last
+0x56b7 mouse_device_flag_load_end
+0x56bb mouse_store_device_flag
+0x56bd mouse_device_flag_temp_load
+0x56bf mouse_read_otp_device_info
+0x56c3 mouse_read_otp_le_device1
+0x56c5 mouse_read_otp_le_device2
+0x56c7 mouse_read_otp_le_device1_addr
+0x56c9 mouse_read_otp_le_device1_addr_loop
+0x56d3 mouse_read_otp_le_addr1_common
+0x56d6 mouse_le_addr1_load
+0x56d9 mouse_read_otp_le_device1_locall_addr
+0x56db mouse_read_otp_le_device1_locall_addr_loop
+0x56e5 mouse_read_otp_le_locall_addr1_common
+0x56e8 mouse_le_locall_addr1_load
+0x56ee mouse_device_le_locall_addr1_init
+0x56f0 mouse_read_otp_le_device2_addr
+0x56f2 mouse_read_otp_le_device2_addr_loop
+0x56fc mouse_read_otp_le_addr2_common
+0x56ff mouse_le_addr2_load
+0x5702 mouse_read_otp_le_device2_locall_addr
+0x5704 mouse_read_otp_le_device2_locall_addr_loop
+0x570e mouse_read_otp_le_locall_addr2_common
+0x5711 mouse_le_locall_addr2_load
+0x5717 mouse_device_le_locall_addr2_init
+0x571a mouse_read_otp_24g_addr
+0x571c mouse_read_otp_24g_addr_loop
+0x5726 mouse_read_otp_24g_addr_common
+0x5729 mouse_24g_addr_load
+0x572c mouse_read_otp_le_addr_increase_count_info
+0x572e mouse_read_otp_le_addr_increase_count_loop
+0x5738 mouse_read_otp_le_addr_increase_count_common
+0x573b mouse_le_addr_increase_count_load
+0x573e mouse_read_otp_dpi
+0x5742 mouse_read_otp_dpi_loop
+0x574c mouse_read_otp_dpi_common
+0x574f mouse_dpi_load
+0x5755 mouse_dpi_load_last
+0x5756 mouse_dpi_load_end
+0x5759 mouse_idle
+0x5767 mouse_select_device_check
+0x576b mouse_select_device_by_pb_button
+0x576d mouse_select_device_by_pb_button_check
+0x5776 mouse_retransmit_select_device_by_pb_button
+0x577c mouse_3io6key_pb_button_check_end
+0x577e mouse_select_device_by_pb_button_exit
+0x5781 mouse_pb_button_check
+0x578a mouse_select_device_by_pb_button_end
+0x578d mouse_pb_button_connect_gnd
+0x578f mouse_pb_button_connect_matrix
+0x5797 mouse_select_device_button_up
+0x57a2 mouse_select_device_button_down
+0x57ae mouse_select_device_ghost_check
+0x57b1 mouse_ghost_key_value_check
+0x57b8 mouse_check_select_device_by_switch
+0x57bc mouse_switch_gpio_connect_vin_check
+0x57bf mouse_switch_gpio_connect_gnd_check
+0x57c2 mouse_switch_gpio_connect_vin
+0x57c8 mouse_switch_gpio_connect_gnd
+0x57ce mouse_select_btdevice
+0x57d2 mouse_select_24gdevice
+0x57d5 mouse_select_device_set
+0x57d7 mouse_check_select_device_by_switch_once
+0x57db mouse_switch_gpio_connect_vin_check_once
+0x57de mouse_switch_gpio_connect_gnd_check_once
+0x57e1 mouse_switch_gpio_connect_vin_once
+0x57e7 mouse_switch_gpio_connect_gnd_once
+0x57ed mouse_check_select_24g_device
+0x57f0 mouse_select_device_stop_set
+0x57f2 mouse_check_select_btdevice
+0x57f6 mouse_ready_reconnection_by_button
+0x57fb mouse_store_device_number_before_reset
+0x5801 mouse_soft_reset
+0x5803 mouse_select_device_number
+0x5809 mouse_select_device_count_clean_bt
+0x580b mouse_select_device_number_24g
+0x580f mouse_select_device_count_clean_24g
+0x5811 mouse_store_device_number2eeprom
+0x5815 mouse_bt_button_check
+0x5818 mouse_select_device_enable
+0x581a mouse_select_device_disable
+0x581c mouse_bt_cannel_reconn_enable
+0x581e mouse_bt_cannel_reconn_disable
+0x5820 mouse_bt_discovery_button_down_enable
+0x5822 mouse_bt_discovery_button_down_disable
+0x5824 mouse_adc_read_enable
+0x5826 mouse_24g_set_250hz
+0x5828 mouse_24g_search_dongle_enable
+0x582a mouse_16m_enable
+0x582c mouse_dpi_4level_enable
+0x582e mouse_enable_function_flag
+0x5832 mouse_disable_function_flag
+0x5836 mouse_polling_device
+0x5841 mouse_drawing_optima
+0x5853 mouse_drawing_optima_init
+0x5858 mouse_drawing_optima_modify
+0x586a mouse_data_y_store
+0x586c mouse_drawing_optima_xy_offset_modify
+0x587f mouse_pre_xy_data_judge
+0x5882 mouse_pre_xy_pdata_offset
+0x5885 mouse_xy_data_offset_new
+0x5887 mouse_pre_xy_ndata_offset
+0x588d mouse_current_xy_data_judge
+0x5890 mouse_current_xy_pdata_offset
+0x5894 mouse_current_xy_ndata_offset
+0x589a mouse_pre_xy_get_0_4_times
+0x589d mouse_current_xy_get_0_6_times
+0x589f mouse_div_end
+0x58a2 mouse_drawing_optima_data_x
+0x58aa mouse_drawing_optima_data_y
+0x58b2 mouse_drawing_optima_data
+0x58b8 mouse_data_store_pre
+0x58bc mouse_data_sum_overflow
+0x58c0 mouse_data_sum_overflow_p
+0x58c3 mouse_data_sum_n
+0x58c9 mouse_data_set_direction
+0x58cc mouse_data_zero
+0x58ce mouse_pdata_get_half
+0x58d0 mouse_pdata_get_new_value
+0x58d4 mouse_pdata_invert
+0x58d5 mouse_rega_in_out
+0x58d8 mouse_disable_asm
+0x58da mouse_enable_asm
+0x58dc mouse_pdata_greater_than_check
+0x58e1 mouse_data_less_than_check
+0x58e6 mouse_data_abs_check
+0x58ed mouse_data_abs
+0x58f1 mouse_data_abs_store
+0x58f3 mouse_data_reversal
+0x58f6 mouse_24g_long_sleep_param_update_timer
+0x58f9 mouse_24g_long_sleep_normal_param
+0x58fc mouse_24g_long_sleep_set
+0x5901 mouse_24g_long_sleep_set_80ms
+0x5902 mouse_24g_long_sleep_set_end
+0x5904 mouse_24g_long_sleep_set_30ms
+0x5906 mouse_24g_long_sleep_set_50ms
+0x5908 mouse_24g_long_sleep_set_100ms
+0x590a mouse_24g_hibernate_set
+0x5916 mouse_wakeup_24g
+0x591b mouse_wakeup_24g_from_long_sleep
+0x591f mouse_wheel_gpio_init
+0x5923 mouse_24g_transmit_start
+0x5927 mouse_24g_fast_conn_mode_check
+0x592b mouse_soft_agc_disable
+0x592d mouse_soft_agc_enable
+0x5930 device_store_normal_tx_power
+0x5933 device_fetch_normal_tx_power
+0x5936 mouse_24g_stop
+0x593a mouse_24g_start_mode
+0x5948 mouse_24g_mode_setup_error
+0x594b mouse_24g_first_start_auto_pair_mode
+0x594d mouse_24g_reconn_general_dongle
+0x5952 mouse_24g_start_auto_pair
+0x5956 mouse_24g_first_start_reconn
+0x5959 mouse_24g_first_bluetooth_reconnect
+0x595d mouse_24g_first_bb_event_reconn_timeout
+0x5960 mouse_24g_first_store_reconn_info
+0x5965 mouse_24g_start_pair_mode
+0x596c mouse_24g_pair_mode_check
+0x5971 mouse_24g_attempt_fail
+0x597a mouse_24g_attempt_fail_enter_hibernate
+0x5980 mouse_24g_fast_conn_attempt_fail
+0x5988 mouse_24g_reconn_dongle_start
+0x598c mouse_24g_auto_pair_attempt_fail
+0x5991 mouse_reconn_dongle_attempt_fail
+0x5997 mouse_24g_attempt_success
+0x59a8 mouse_24g_pairing_complete
+0x59ba mouse_24g_short_sleep_clear_wake
+0x59bc mouse_24g_package_data
+0x59c7 mouse_24g_mouse_package_data
+0x59d6 mouse_24g_mouse_package_data_now
+0x59dc mouse_24g_keyboard_package_data
+0x59df mouse_g24_retransmit
+0x59e3 mouse_g24_retransmit_100ms_timer
+0x59ea mouse_g24_retransmit_100ms_timer_init
+0x59ed mouse_dpi_check_once
+0x59f0 mouse_24g_before_lpm_sleep
+0x59f2 mouse_logo_led_on_timer
+0x59fc mouse_logo_led_off
+0x59fe mouse_logo_led_on
+0x5a00 mouse_dpi_led_blink_delay_timer
+0x5a03 mouse_dpi_led_blink_init
+0x5a06 mouse_dpi_led_blink_set_3_level
+0x5a0b mouse_dpi_led_blink_set_4_level
+0x5a11 mouse_dpi_level_1_blink
+0x5a13 mouse_dpi_level_2_blink
+0x5a15 mouse_dpi_level_3_blink
+0x5a17 mouse_dpi_level_4_blink
+0x5a19 mouse_multi_dpi_led_blink_enable
+0x5a1e mouse_dpi_led_blink_delay
+0x5a24 mouse_check_dpi_blink
+0x5a29 mouse_low_voltage_led_timer
+0x5a32 mouse_low_led_blink_timer
+0x5a3b mouse_low_voltage_led_on_judge
+0x5a3d mouse_low_voltage_led_on
+0x5a3f mouse_low_led_timer_count_clean
+0x5a43 mouse_low_voltage_led_off_judge
+0x5a45 mouse_low_voltage_led_off
+0x5a47 mouse_low_led_blink_count_init_judge
+0x5a4b mouse_device_multi_led_parm_init
+0x5a52 mouse_multi_low_led_blink_count_init
+0x5a55 mouse_multi_led_blink_timer_init
+0x5a59 mouse_multi_dpi_led_blink_timer_init
+0x5a5a mouse_store_multi_led_blink_timer
+0x5a5c mouse_device_24g_led_blink_timer_init
+0x5a5e mouse_device_le_discovery_led_blink_timer_init
+0x5a60 mouse_device_le_reconn_led_blink_timer_init
+0x5a62 mouse_device_poweron_led_config
+0x5a66 mouse_multi_led_enable
+0x5a69 mouse_device_24g_pair_led_config
+0x5a70 mouse_device_le_reconn_led_config
+0x5a78 mouse_device_led_blink_count_init
+0x5a7a mouse_device_discovery_led_config
+0x5a7c mouse_multi_led_blink_enable_init
+0x5a81 mouse_led_multi_timer
+0x5a85 mouse_device_multi_led_type_on
+0x5a8a mouse_device_poweron_led_off
+0x5a8e mouse_multi_led_type_blink
+0x5a93 mouse_device_led_blink_judge
+0x5a96 mouse_device_led_blink_limit
+0x5a98 mouse_multi_led_type_blink_next
+0x5a9b mouse_multi_led_type_blink_start
+0x5a9f mouse_multi_led_blink
+0x5aa3 mouse_multi_led_blink_count_decrease
+0x5aa7 mouse_multi_led_on_judge
+0x5aa9 mouse_device_multi_led_on
+0x5aaa mouse_device_led_on
+0x5ab0 mouse_device_24g_led_on
+0x5ab2 mouse_device_bt1_led_on
+0x5ab4 mouse_device_bt2_led_on
+0x5ab5 mouse_led_on
+0x5ab6 mouse_led_off
+0x5ab7 mouse_multi_led_off_judge
+0x5ab9 mouse_multi_led_off_judge_next
+0x5abb mouse_device_multi_led_off
+0x5abc mouse_device_led_off
+0x5ac2 mouse_device_24g_led_off
+0x5ac6 mouse_device_bt1_led_off
+0x5aca mouse_device_bt2_led_off
+0x5ace mouse_device_multi_led_all_off
+0x5ad3 mouse_multi_dpi_led_off_judge
+0x5ad6 mouse_multi_dpi_led_off
+0x5ad8 mouse_multi_dpi_led_on_judge
+0x5adb mouse_multi_dpi_led_on
+0x5add mouse_low_voltage_led_no_enter_lpm
+0x5ae3 mouse_low_voltage_led_no_enter_lpm_next
+0x5ae6 g24_transmit_by_interrupt_exit_check
+0x5ae9 mouse_lpm_mode_clear
+0x5aec mouse_store_signal_rssi
+0x5aee mouse_le_transmit
+0x5af0 mouse_set_lpm_mult
+0x5af2 mouse_le_set_lpm_mult
+0x5af7 mouse_24g_long_sleep
+0x5b02 mouse_24g_short_sleep
+0x5b0f mouse_24g_short_sleep_last_miss
+0x5b14 mouse_24g_short_sleep_notify
+0x5b1e mouse_24g_short_sleep2
+0x5b1f mouse_24g_short_sleep3
+0x5b22 mouse_24g_short_sleep_default
+0x5b25 mouse_24g_short_sleep_long
+0x5b29 mouse_24g_miss_temp_clear
+0x5b2c mouse_24g_short_sleep_2
+0x5b2e mouse_24g_sub_miss_temp
+0x5b33 mouse_24g_transmit_callback
+0x5b35 mouse_24g_send_time_check
+0x5b55 mouse_24g_send_time_check_average
+0x5b6d mouse_24g_short_sleep_storet
+0x5b6f mouse_24g_send_time_check_average_late
+0x5b79 mouse_24g_send_time_check_average_min
+0x5b7b mouse_24g_send_timer_first
+0x5b7f mouse_24g_send_time_long_wake
+0x5b83 mouse_usb_check_enable
+0x5b87 mouse_usb_isr
+0x5b8b mouse_usb_interface_check
+0x5b8f mouse_usb_mode_enable
+0x5ba4 mouse_usb_mode_disable
+0x5bb0 mouse_usb_mode
+0x5bba mouse_push_data_to_usb
+0x5bc2 mouse_usb_timer_check
+0x5bd1 mouse_usb_timer_timeout
+0x5bd4 mouse_usb_timer_init
+0x5bd7 mouse_usb_config_param
+0x5bdb mouse_usb_device_name_config
+0x5be1 mouse_usb_config_kb_check
+0x5be6 mouse_usb_config_param_setup
+0x5be8 mouse_usb_hid_icon_config
+0x5bea mouse_usb_report_rate_set
+0x5bef mouse_usb_report_rate_set_125hz
+0x5bf1 mouse_usb_report_rate_set_250hz
+0x5bf3 mouse_usb_report_rate_set_500hz
+0x5bf5 mouse_usb_report_rate_set_1000hz
+0x5bf7 rec_cb_function
+0x5bfa rec_process_idle
+0x5bfc rec_ui_timer_check
+0x5c03 rec_ui_timer_check_loop
+0x5c0c rec_ui_timer_init
+0x5c0e rec_ui_timer_check_end
+0x5c13 rec_ui_timer_check_send_evt
+0x5c14 rec_evt_timer_loop
+0x5c1b rec_tscan
+0x5c21 rec_tscan_gnd_process
+0x5c26 rec_tscan_process
+0x5c2c rec_tscan_col_state_init
+0x5c32 rec_tscan_row_state_init
+0x5c3a rec_tscan_row_gpio_config_input_pull_up
+0x5c3f rec_tscan_get_row_state
+0x5c47 rec_tscan_get_row_state_loop
+0x5c5c rec_tscan_record_key_coord
+0x5c6a rec_tscan_combin_key_num_output
+0x5c6c rec_tscan_combin_key_num_loop
+0x5c72 rec_tscan_output_combin_key_num
+0x5c77 rec_tscan_pull_up_current_col_gpio
+0x5c7a rec_tscan_col_state_next_gpio_check
+0x5c82 rec_tscan_key_down
+0x5c8e rec_tscan_key_up
+0x5c96 rec_tscan_key_up_send
+0x5c99 rec_tscan_key_up_config
+0x5c9c rec_tscan_key_num_output
+0x5c9d rec_tscan_record_init
+0x5ca0 rec_tscan_key_value_clear
+0x5ca3 rec_tscan_get_gndkey_state
+0x5ca9 rec_tscan_get_gndkey_loop
+0x5cbb rec_tscan_gndkey_down
+0x5cc5 rec_tscan_gndkey_up
+0x5ccd rec_tscan_gndkey_up_send
+0x5ccf rec_tscan_gndkey_num_output
+0x5cd0 rec_tscan_gndkey_record_param_init
+0x5cd2 rec_tscan_gndkey_num_check
+0x5cd5 rec_tscan_gndkey_num_loop
+0x5cdc rec_tscan_store_gndkey_press_state
+0x5cde rec_tscan_store_gndkey_release_state
+0x5ce0 rec_gpio_bit_first_set
+0x5ce2 rec_gpio_bit_second_set
+0x5ce4 rec_tscan_debounce
+0x5cf3 rec_gpio_weak_pullup
+0x5cf6 rec_gpio_set_lpm_weak_pullup
+0x5d05 rec_gpio_set_0x10_regc
+0x5d07 rec_gpio_set_input
+0x5d0a rec_gpio_wakeup_disable
+0x5d0b rec_save_regc
+0x5d0d rec_rescue_regc
+0x5d10 rec_save_rega
+0x5d12 rec_rescue_rega
+0x5d15 rec_save_reg
+0x5d18 rec_rescue_reg
+0x5d1b rec_tscan_gpio_set_before_lpm
+0x5d1e rec_gpio_wakeup_enable
+0x5d21 rec_tscan_gpio_config_high_impedance
+0x5d24 rec_tscan_gpio_config_tri_angle_wakeup
+0x5d28 rec_gpio_config_high_impedance
+0x5d29 rec_high_impedance_loop
+0x5d2e rec_gpio_wakeup_config
+0x5d2f rec_gpio_wakeup_config_loop
+0x5d3a rec_gpio_wakeup_addr_search
+0x5d3f rec_tscan_output_gndkey_num
+0x5d43 rec_tscan_output_key_map
+0x5d4c rec_tscan_key_num_check
+0x5d4f rec_tscan_key_num_loop
+0x5d56 rec_tscan_output_key_num
+0x5d59 rec_push_buffer_in_queue
+0x5d5c rec_push_buffer_in_queue_end
+0x5d5e rec_puch_buffer_in_queue_check
+0x5d61 rec_key_type_select
+0x5d68 rec_set_key_type_consumer
+0x5d6a rec_set_key_type_mouse
+0x5d6c rec_set_key_type_keypad
+0x5d6e rec_set_key_type_nec
+0x5d70 rec_tscan_key_send
+0x5d76 rec_tscan_send_keypad
+0x5d7e rec_send_nec_keypad
+0x5d88 rec_le_send_consumer
+0x5d94 rec_le_send_data
+0x5d9c rec_le_send_mouse
+0x5da9 rec_le_send_keyboard
+0x5db1 rec_le_fill_standard_key_data
+0x5db7 rec_led_start_on
+0x5db9 rec_led_start_off
+0x5dbb rec_nec_send_userdata_6122
+0x5dcd rec_nec_init_6122
+0x5dd3 rec_pwm_duty_cycle_set
+0x5dd9 rec_nec_send_boot_6122
+0x5ddc rec_nec_empty
+0x5dde rec_nec_carrier
+0x5de0 rec_nec_delay_us
+0x5de1 rec_nec_delay_us_loop
+0x5de5 rec_nec_send_byte_6122
+0x5de6 rec_nec_send_byte_loop_6122
+0x5dec rec_nec_send_bit_6122
+0x5def rec_nec_send_bit0_6122
+0x5df2 rec_nec_send_bit1_6122
+0x5df5 rec_nec_send_bit
+0x5df9 rec_nec_send_repeat_6122
+0x5e01 rec_nec_6122_start
+0x5e05 rec_nec_disable
+0x5e06 rec_nec_6122_stop
+0x5e07 rec_nec_io_disable
+0x5e08 rec_gpio_config_output_low
+0x5e0a rec_gpio_config_output_high
+0x5e0c rec_nec_send_repeat_6122_timer_init
+0x5e0d rec_nec_timer_set
+0x5e10 rec_nec_send_repeat_6122_timer_clear
+0x5e12 rec_nec_rx_num
+0x5e17 rec_nec_rptr_big_wptr
+0x5e1d rec_nec_receive_data
+0x5e28 rec_nec_receive_one_data
+0x5e33 rec_nec_receive_two_data
+0x5e46 rec_nec_receive_three_data
+0x5e5b rec_nec_rptr_reset
+0x5e5f rec_nec_receiver_init_wtr
+0x5e63 rec_nec_carry_time
+0x5e6c rec_nec_carry_store
+0x5e77 rec_nec_receive_run_time
+0x5e7b rec_nec_receive_timeout
+0x5e7e rec_nec_update_timeout
+0x5e83 rec_nec_learn_analysis
+0x5e8d rec_audio_adpcm_encode
+0x5e92 rec_adpcm_encode
+0x5e9d rec_adpcm_encode_loop
+0x5ed7 rec_adpcm_encode_cal_delta
+0x5eda rec_adpcm_encode_store_sign1
+0x5edc rec_adpcm_encode_cal_smaller_zero
+0x5ede rec_adpcm_set_diff_by_sign
+0x5ee1 rec_adpcm_diff_negation
+0x5ee5 rec_check_diff_big_step1
+0x5eea rec_check_diff_big_common
+0x5eee rec_check_diff_big_common_next
+0x5ef3 rec_check_diff_big_step2
+0x5efb rec_check_diff_big_step3
+0x5f03 rec_check_sign_deal1
+0x5f05 rec_valpred_sub_vpdiff
+0x5f08 rec_valpred1_store
+0x5f0a rec_valpred_add_vpdiff
+0x5f0e rec_adpcm_check_valpred_more_32767
+0x5f12 rec_adpcm_check_valpred_less_f32767
+0x5f17 rec_adpcm_valpred_more_32767
+0x5f19 rec_adpcm_valpred_less_f32767
+0x5f1b rec_adpcm_check_index_less_0
+0x5f20 rec_adpcm_check_index_big_88
+0x5f25 rec_adpcm_set_0_index
+0x5f26 rec_adpcm_store_index1
+0x5f28 rec_adpcm_set_88_index
+0x5f2a rec_adpcm_check_bufferstep
+0x5f2c rec_adpcm_bufferstep_neque_0
+0x5f30 rec_adpcm_bufferstep_eque_0
+0x5f35 rec_adpcm_bufferstep_increase_out_ptr1
+0x5f3a rec_adpcm_set_bufferstep_to_outp
+0x5f3c rec_adpcm_get_val_from_inp
+0x5f43 rec_int16_2_int32
+0x5f45 rec_int16_2_int32_less_0
+0x5f47 rec_calca_ixor
+0x5f49 rec_char_2_int32
+0x5f4b rec_char_2_int32_less_0
+0x5f4e rec_voice_notify_apk
+0x5f50 rec_le_notify_data
+0x5f54 rec_voice_start_apk
+0x5f55 rec_voice_notify_apk_data
+0x5f58 rec_voice_end_apk
+0x5f5a rec_voice_notify_box
+0x5f5d rec_voice_start_box
+0x5f5e rec_voice_notify_box_data
+0x5f62 rec_voice_end_box
+0x5f64 rec_ota_process
+0x5f70 rec_ota_init
+0x5f77 rec_ota_parse_protocol_version_req
+0x5f7f rec_ota_parse_buck_size_req
+0x5f86 rec_ota_parse_start_req
+0x5f89 rec_ota_tx_flashmode_not_support
+0x5f8e rec_ota_tx_start_req_success
+0x5f92 rec_ota_parse_start_req_update_normal
+0x5f9e rec_erase_num_sector_flash
+0x5f9f rec_erase_num_sector_flash_loop
+0x5fa8 rec_ota_set_flash_start_addr
+0x5fb2 rec_ota_parse_data_write_req
+0x5fb2 rec_ota_parse_data_write_data_store
+0x5fbf rec_ota_prep_data_write_rsp
+0x5fc4 rec_ota_tx_notify_success
+0x5fc5 rec_ota_tx_notify_common
+0x5fcd rec_ota_parse_end_req
+0x5fe5 rec_ota_tx_end_req_return
+0x5fee rec_ota_tx_length_error
+0x5ff0 rec_ota_result_error_write_flash
+0x5ff2 rec_ota_data2flash_remain
+0x6001 rec_ota_queue_count_256
+0x6005 rec_ota_sum_page
+0x6007 rec_ota_sum_all
+0x6013 rec_ota_sum_len
+0x6017 rec_ota_sum
+0x6019 rec_ota_sum_loop
+0x601d rec_ota_data_from_flash_len
+0x6026 rec_ota_data_from_flash
+0x602b rec_ota_data_from_flash_page
+0x602f rec_ota_polling
+0x6032 rec_ota_data2flash_page
+0x603d rec_ota_increase_flash_offset_addr
+0x6041 rec_ota_data2flash
+0x6046 rec_queue_ota_init
+0x6048 rec_queue_init_config
+0x6052 rec_queue_ota_push
+0x6060 rec_queue_ota_data_loss
+0x6061 rec_queue_ota_pop
+0x6068 rec_out_queue
+0x606b rec_out_queue_loop
+0x6070 rec_ota_updata_head
+0x6073 rec_ota_write_head_check
+0x6077 rec_ota_write_head_a
+0x6079 rec_ota_read_head
+0x607d rec_ota_write_head_b
+0x607e rec_ota_write_head
+0x6085 rec_spid_flash_erase_page
+0x608e rec_spi_wait_flash
+0x6097 rec_save_contr
+0x6099 rec_rescue_contr
+0x609b rec_save_contw
+0x609d rec_rescue_contw
+0x609f rec_save_loopcnt_rega
+0x60a1 rec_rescue_rega_loopcnt
+0x60a2 rec_rescue_loopcnt
+0x60a5 rec_save_loopcnt
+0x60a7 rec_save_temp
+0x60a9 rec_rescue_temp
+0x60ac rec_queue_enter_config
+0x60b6 rec_queue_out_config
+0x60c0 rec_enter_queue
+0x60c0 rec_enter_queue_loop
+0x60c8 shutter_init
+0x60d7 shutter_power_switch
+0x60dc shutter_common_init
+0x60ea shutter_hart_swtich_power_on
+0x60ed shutter_le_scale_lpm_lock
+0x60f3 shutter_process_bb_event
+0x60fc ble_shutter_process_baseband_connect
+0x6100 ble_shutter_process_baseband_disconnect
+0x6103 ble_shutter_process_reconnect_complete
+0x610b ble_shutter_process_parse_connect_parameter_update_response
+0x6111 shutter_process_soft_swtich_button_down
+0x6117 shutter_store_currenct_led_state
+0x611c shutter_process_soft_swtich_button_up
+0x6121 shutter_load_currenct_led_state
+0x612a shutter_le_bb_event_timer
+0x612d shutter_check_sleep_timer
+0x6130 shutter_sleep_timeout
+0x6134 shutter_check_power_off_timer
+0x6137 shutter_check_power_off_timeout
+0x613e ble_shutter_reconn_timer
+0x6143 shutter_process_idle
+0x6145 shutter_process_lpm_before
+0x6147 shutter_le_before_hibernate
+0x614a shutter_stop_bluetooth_discovery
+0x614a ble_shutter_stop_bluetooth_discovery
+0x614e shutter_start_bluetooth_discovery
+0x6150 ble_shutter_start_discovery
+0x615d shutter_soft_swtich_power_on
+0x615d shutter_start_reconnect
+0x615f ble_shutter_start_reconnect
+0x616b shutter_disconnect_current_connection
+0x616e shutter_check_data_enable
+0x6172 shutter_check_ble_data_enable
+0x6175 shutter_check_bluetooth_conn
+0x6179 shutter_change_bluetooth_status_bt_disconn
+0x6179 ble_shutter_change_bluetooth_status_bt_disconn
+0x617a shutter_check_send_data
+0x6182 shutter_key_change
+0x6186 shutter_key_press
+0x6189 shutter_key_release
+0x618b push_queue_press_or_release
+0x618e push_buffer_in_queue
+0x6193 shutter_send_data_to_master
+0x6196 pop_queue_to_ble_data
+0x619f queue_push_one_byte
+0x61a2 queue_pop_one_byte
+0x61a7 ble_shutter_receive_data
+0x61aa shutter_init_param
+0x61b3 shutter_load_buffer_config_form_datarom
+0x61b7 shutter_soft_swtich_power_off
+0x61bb shutter_wait_power_off
+0x61be ui_soft_swtich_init
+0x61c3 ui_soft_switch_first_power_on
+0x61c7 ui_soft_swtich_init_next
+0x61ca ui_soft_swtich_init_power_on_time
+0x61cf ui_soft_switch_botton_up
+0x61d3 ui_soft_switch_botton_long_press
+0x61d6 ui_soft_switch_power_on
+0x61de ui_soft_switch_power_off
+0x61e4 shutter_ble_adv_interval_set
+0x61e8 le_send_notify_from_list
+0x61f0 shutter_le_uuid_table_conf
+0x61f3 shutter_default_init
+0x6259 shutter_dy_6_key_conf
+0x625f shutter_dy_7_key_conf
+0x6265 shutter_dy_8_key_conf
+0x626b shutter_dy_key_conf
+0x6270 shutter_dy_adv_conf
+0x6283 shutter_dy_le_uuid_table_conf
+0x6286 shutter_dy_init
+0x62a9 shutter_dy_process_lpm_before
+0x62ab shutter_dy_le_before_hibernate
+0x62af dy_set_key_gpio_before_hiernate
+0x62b4 dy_set_key_gpio_loop
+0x62bc dy_set_key_gpio_loop_end
+0x62bf dy_shutter_gpio_config_input_pd
+0x62c1 shutter_dy_process_idle
+0x62cb shutter_dy_iphone_every_move_max_set
+0x62d8 shutter_dy_shutter_send_data_to_master
+0x62dd shutter_dy_pop_queue_to_ble_data
+0x62e9 shutter_dy_pop_queue_to_ble_data2
+0x62f2 shutter_dy_le_bb_event_timer
+0x62f9 shutter_dy_iphone_move_mid_timer
+0x62fc shutter_dy_iphone_move_mid_timeout
+0x6300 shutter_dy_iphone_move_mid
+0x630a shutter_dy_iphone_up_mid
+0x630c shutter_dy_iphone_like_mid
+0x630e shutter_dy_clear_key_state_timer
+0x6311 shutter_dy_clear_key_state_timeout
+0x6314 shutter_dy_check_power_off_timer
+0x6317 shutter_dy_check_power_off_timeout
+0x631a shutter_dy_process_bb_event
+0x6322 ble_dy_shutter_process_parse_connect_parameter_update_response
+0x632b ble_parameter_updata_response_ios
+0x632e ble_shutter_dy_pairing_success
+0x6337 ble_shutter_dy_process_baseband_disconnect
+0x633c ble_shutter_dy_process_baseband_connect
+0x6340 shutter_dy_check_send_data
+0x6348 shutter_dy_over_clear
+0x634a shutter_dy_key_value_filter
+0x634d shutter_dy_key_change
+0x6351 shutter_dy_key_press
+0x6354 shutter_dy_key_press_next
+0x6364 shutter_dy_page_set
+0x6367 shutter_dy_move_set
+0x636c shutter_dy_key_move_to_specify_location
+0x636e shutter_dy_iphone_check_move_mid
+0x6374 shutter_dy_key_press_clk
+0x637f shutter_dy_shutter_key_release
+0x6382 shutter_dy_shutter_key_release_time
+0x6393 shutter_dy_key_release_led
+0x6396 shutter_dy_push_queue_release
+0x6399 shutter_dy_push_queue_release1
+0x639c shutter_dy_push_queue_release1_next
+0x63a2 shutter_dy_push_queue_press_or_release
+0x63a5 shutter_dy_move_mode_queue_release
+0x63a9 shutter_dy_jude_queue_size
+0x63ae shutter_dy_push_queue_long_release
+0x63b4 shutter_clear_dy_key_state
+0x63b7 shutter_dy_keyscan_key_process
+0x63c0 shutter_dy_keyscan_key_check_release_loop
+0x63d4 shutter_dy_keyscan_key_check_long_press
+0x63eb shutter_dy_key_long_press_set_key_normal
+0x63ee shutter_dy_key_long_press_set_move_trigger
+0x63f6 shutter_dy_move_mode_disable
+0x63f8 shutter_dy_long_press_android_or_ios
+0x63fd shutter_dy_keyscan_key_check_release
+0x6407 shutter_dy_keyscan_key_process_next
+0x6418 shutter_dy_skip_check_combine_key
+0x641e shutter_dy_single_key_led
+0x6425 shutter_dy_check_combine_key
+0x6426 shutter_dy_check_combine_key_loop
+0x6431 shutter_dy_check_combine_key_parse
+0x6439 shutter_dy_push_buffer_in_queue
+0x643d shutter_dy_move_to_specify_location
+0x6444 shutter_dy_move_ios_to_specify_location
+0x6449 shutter_dy_move_down_left_corner_count_set
+0x6453 shutter_dy_move_down_left_corner
+0x6457 shutter_dy_move_down_left_corner_loop
+0x645e shutter_dy_move_x_max
+0x6461 shutter_dy_move_x_max_number
+0x6468 shutter_dy_move_y_max
+0x646b shutter_dy_move_y_max_number
+0x6472 shutter_dy_check_combine_key_release
+0x647d shutter_dy_combine_key_enableuser
+0x6480 shutter_dy_check_combine_key_release_all
+0x648c shutter_dy_check_move_data
+0x6491 shutter_dy_check_move_data_single_key
+0x6497 shutter_dy_check_move_data_combine_key
+0x649e shutter_dy_get_move_data
+0x64a8 shutter_dy_get_move_data_iphone
+0x64b5 shutter_dy_move_x_empty_check
+0x64bb shutter_dy_every_move_size_set
+0x64c0 shutter_dy_move_left
+0x64c6 shutter_dy_move_store_x
+0x64c7 shutter_dy_move_data_store
+0x64d2 shutter_dy_get_ios_move_data
+0x64da shutter_dy_move_ios_release_data
+0x64e2 shutter_dy_move_android_data_store
+0x64e9 shutter_dy_move_android_release_data
+0x64f1 shutter_dy_data_android_xy_data
+0x64f9 shutter_dy_move_x_check_max
+0x6504 shutter_dy_clear_move_x
+0x6507 shutter_dy_move_right
+0x650b shutter_dy_move_right_next
+0x650f shutter_dy_move_up
+0x6511 shutter_dy_move_y_check_max
+0x6523 shutter_dy_dnroid_up_check_y
+0x652a shutter_dy_clear_move_y
+0x652b shutter_dy_android_move_y_empty_check
+0x652d shutter_dy_move_y_empty_check
+0x6537 shutter_dy_move_store_y
+0x6539 shutter_dy_move_down
+0x653b shutter_dy_move_down_next
+0x6542 shutter_dy_move_android_down
+0x6548 ble_shutter_dy_receive_data
+0x654b shutter_dy_le_find_service_hand_by_uuid
+0x6558 shutter_dy_le_parse_att
+0x6561 shutter_dy_le_parse_att_read_blob_request
+0x656c shutter_dy_le_parse_att_read_blob_request_ios
+0x656d shutter_dy_le_parse_att_read_blob_request2
+0x6577 shutter_dy_le_parse_att_read_request
+0x657b shutter_dy_le_send_att_read_response_check_auth
+0x6581 shutter_dy_le_send_att_read_response
+0x6587 shutter_dy_le_parse_att_find_by_type_value_rsp
+0x6587 shutter_dy_le_remote_iphone
+0x65a1 shutter_dy_iphone_move_initial_set
+0x65a8 shutter_dy_le_parse_error_rsp
+0x65ac shutter_dy_remote_not_iphone
+0x65b1 shutter_dy_not_iphone_read_conf
+0x65b3 shutter_dy_check_iphone
+0x65b5 shutter_dy_le_get_press_ptr
+0x65bb shutter_dy_le_get_release_ptr
+0x65bb shutter_dy_le_get_release_ptr_set
+0x65c3 shutter_dy_le_get_release_ptr_volume
+0x65ca shutter_dy_le_get_release_ptr_set_volume_dec
+0x65cc shutter_dy_le_get_release_ptr_set_volume_inc
+0x65ce shutter_dy_le_get_vol_inc_ptr
+0x65d3 shutter_dy_le_get_vol_dec_ptr
+0x65d8 shutter_dy_long_key_function
+0x65dd shutter_dy_long_key_volume_timer
+0x65e0 shutter_dy_long_key_volume_timeout
+0x65e4 shutter_dy_loop_send_volume_inc_page
+0x65e8 shutter_dy_loop_send_volume_dec_page
+0x65ec shutter_dy_clear_volume_timer
+0x65ef shutter_dy_link_key_loop_timer
+0x65f2 shutter_dy_link_key_loop_timeout
+0x65f5 shutter_dy_link_data_android_or_ios
+0x65fa shutter_dy_link_key_long_press
+0x65ff shutter_dy_clear_link_key_timer
+0x6602 shutter_dy_jude_clear_move_config
+0x6606 shutter_dy_clear_move_config
+0x6609 shutter_dy_write_otp_convert_data
+0x660d shutter_dy_read_otp_convert_data
+0x6611 shutter_dy_store_ios_config_data
+0x6623 shutter_dy_store_android_config
+0x662a shutter_dy_get_ios_config
+0x663c shutter_dy_get_android_config
+0x6641 shutter_dy_store_move_config_info
+0x6642 shutter_dy_load_move_config_info
+0x6643 shutter_dy_shutter_uart_config_loop
+0x664e shutter_dy_shutter_get_first_read_addr
+0x6652 shutter_dy_shutter_next_read_addr
+0x6656 shutter_dy_shutter_last_read_addr
+0x665a shutter_dy_shutter_read_ios_android_addr
+0x6665 shutter_dy_update_read_check_addr
+0x6669 shutter_dy_campare_otp_data
+0x6679 shutter_dy_set_shutter_valid_data_flag
+0x667d shutter_dy_shutter_judge_ios_or_android
+0x6689 shutter_dy_shutter_not_find_ios_or_android
+0x668e shutter_dy_shutter_android_save_init_loaction
+0x6693 shutter_dy_shutter_ios_save_init_loaction
+0x66a2 shutter_dy_clear_temp_count
+0x66a4 shutter_dy_campare_effective_addr_read_otp
+0x66bd shutter_dy_campare_effective_addr_write_otp
+0x66d0 shutter_dy_shutter_read_move_config_from_otp_addr
+0x66d5 shutter_dy_shutter_write_move_config_to_otp_addr
+0x66d9 shutter_dy_shutter_1s_timer
+0x66dc rf_debug_rx_gpio_low
+0x66dd rf_debug_gpio_low
+0x66df rf_debug_rx_on_line
+0x66df rf_debug_rx_gpio_high
+0x66e0 rf_debug_gpio_high
+0x66e2 rf_debug_rx_gpio_h_l_h
+0x66e3 rf_debug_rx_gpio_l_h
+0x66e5 rf_debug_rx_gpio_l_h_l
+0x66e5 rf_debug_shutdown_radio_line
+0x66e6 rf_debug_rx_crc_line
+0x66e7 rf_debug_rx_sync_line
+0x66e8 rf_debug_rx_crc_fail_line
+0x66ea rf_debug_rx_crc_error_line
+0x66ea rf_debug_rx_sync_timeout_line
+0x66eb rf_debug_tx_off_line
+0x66eb rf_debug_tx_gpio_low
+0x66ed rf_debug_tx_on_line
+0x66ed rf_debug_tx_gpio_high
+0x66ef rf_debug_tx_gpio_l_h_l
+0x66f2 hci_init
+0x66fb hci_process_loop
+0x66fd hci_init_clksel_xtal
+0x66ff hci_init_uart_default_config
+0x6703 hci_init_uart_default_config_tx
+0x6707 hci_init_uart_default_config_rx
+0x670b hci_init_uart_default_config_rts
+0x670f hci_init_uart_default_config_cts
+0x6713 hci_init_uart_config
+0x672f hci_init_pwm_default_config
+0x6733 hci_init_pwm
+0x673e hci_process_check_uart_rx
+0x6746 hci_parse_packet_cmd
+0x6754 hci_parse_complete_packet
+0x6757 hci_parse_packet_cmd_ogf_vendorspecific_debug
+0x6762 phci_grp_vendor_chipid
+0x6767 phci_grp_vendor_baud
+0x676a phci_grp_vendor_patch_common
+0x6775 phci_grp_vendor_patch
+0x6776 phci_grp_vendor_patch_loop
+0x677a phci_grp_vendor_patch_check_sum
+0x677f phci_grp_vendor_done
+0x6782 phci_grp_vendor_done_loop
+0x678e phci_grp_vendor_patch_bad
+0x6790 phci_grp_vendor_mem
+0x6796 phci_grp_vendor_flow_control
+0x679a hci_normal_reply
+0x679b hci_send_event_command_complete_error_command_nuknown
+0x679d hci_send_event_command_complete_error_command_disallowed
+0x679f hci_send_event_command_complete_without_payload
+0x67a2 hci_send_event_command_complete
+0x67ab hci_prepare_send_event
+0x67af hci_drop_current_packet
+0x67b4 cmd_exit
+0x67b6 hid_device_load_flash_info_check
+0x67bb hid_device_store_flash_device_info
+0x67c1 hid_device_before_store_reconn_info
+0x67ca hid_device_store_le_device
+0x67cf hid_device_load_device_info
+0x67d5 hid_device_select_reconn_device
+0x67df hid_device_load_le_device
+0x67e4 hid_device_check_device_addr
+0x67e6 hid_device_check_le_device_addr
+0x67e8 hid_device_check_bt_device_addr_common
+0x67ec hid_device_check_device_addr_end
+0x67f2 hid_device_clean_addr
+0x67f8 hid_device_ble_init_address
+0x67ff hid_device_default_parm_init
+0x680c hid_device_param_common_init
+0x681d hid_device_compare_addr_store
+0x6820 hid_device_enable_lpm
+0x6822 hid_device_disable_lpm
+0x6824 hid_device_le_send_empty_packet
+0x6825 hid_device_le_send_package_data
+0x6828 hid_device_le_fill_package_data
+0x682e hid_device_le_fill_standard_key_data
+0x6830 mouse_le_fill_standard_key_data
+0x6831 keyoard_le_fill_standard_key_data_send
+0x6833 hid_device_le_fill_bit_consumer_key_data
+0x6836 hid_device_le_fill_multimedia_key_data
+0x6839 hid_device_le_fill_systemctrl_key_data
+0x683c hid_device_send_package_data_check
+0x683e hid_device_le_send_mouse_data
+0x6843 hid_device_le_fill_data
+0x684b hid_device_clear_key_data
+0x684e hid_device_copy_key_data
+0x6852 hid_device_24g_keyboard_package_data_set
+0x6856 hid_device_push_mouse_data_to_usb
+0x685b hid_device_push_keyboard_data_to_usb
+0x685d hid_device_push_keyboard_package_data_to_usb
+0x6864 hid_device_push_standard_keyboard_data_to_usb
+0x6869 hid_device_push_systemctrl_key_data_to_usb
+0x686f hid_device_push_multimedia_key_data_to_usb
+0x6875 hid_device_push_bit_consumer_key_data_to_usb
+0x6878 hid_device_le_parse_att_write_request
+0x6883 hid_device_24g_search_dongle_init
+0x6886 mouse_24g_search_dongle
+0x6888 hid_device_24g_search_dongle
+0x6892 hid_device_24g_search_dongle_loop
+0x689e hid_device_24g_search_dongle_loop_end
+0x68a4 hid_device_24g_search_dongle_loop_retry
+0x68a6 hid_device_24g_search_dongle_check
+0x68b1 hid_device_24g_search_dongle_success
+0x68bc hid_device_g24_ackpayload_parse
+0x68c4 hid_device_before_lpm_set
+0x68c8 hid_device_peripheral_clock_off
+0x68cb hid_device_cb_fuction
+0x68d2 l2cap_init
+0x68d7 l2cap_init_wake
+0x68d8 check_l2cap_map
+0x68da check_l2cap_map_loop
+0x68df check_l2cap_map_used
+0x68e3 check_l2cap_map_used2
+0x68e5 ble_l2cap_malloc
+0x68e9 host_l2cap_malloc
+0x68ee host_l2cap_malloc_loop
+0x68f6 host_l2cap_malloc_next_buffer
+0x68fa host_l2cap_malloc_succ
+0x68fd host_l2cap_malloc_check_buffer_enough
+0x6901 host_l2cap_malloc_check_buffer_enough_loop
+0x690e host_l2cap_malloc_check_buffer_enough_end
+0x6913 host_l2cap_malloc_into_fifo
+0x691c host_l2cap_malloc_into_fifo_no_push
+0x691f l2cap_malloc_fifo_out
+0x6924 l2cap_malloc_free
+0x692b l2cap_malloc_discard
+0x6935 l2cap_malloc_is_fifo_full
+0x6938 l2cap_malloc_is_fifo_nearly_full
+0x693b l2cap_malloc_is_fifo_empty
+0x693e l2cap_malloc_fifo_get_first_ptr
+0x6941 l2cap_malloc_free_loop
+0x6943 l2cap_malloc_fifo_get_first_ptr_empty
+0x6945 l2cap_malloc_get_full_map
+0x6949 l2cap_malloc_get_full_map_loop
+0x694f l2cap_lpm_get_wake_lock
+0x6951 l2cap_lpm_put_wake_lock
+0x6953 twspi_reset
+0x695b twspi_reset_next
+0x6965 twspi_reset_ext
+0x6968 twspi_disable
+0x696c twspi_enable
+0x6970 twspi_write
+0x6971 twspi_read
+0x6972 aes_disable
+0x6976 read_function_aes
+0x697a read_function
+0x697d read_fuction_zero
+0x697f get_block_header
+0x6980 get_block_header0
+0x6988 read_first_block
+0x698d read_first_block_cont
+0x6990 get_iv
+0x6994 set_iv
+0x699a load_aes_reinit
+0x699d load_storage
+0x69aa load_storage_loop
+0x69b1 load_data_checksum_calc
+0x69ba load_data_checksum_compare
+0x69c8 load_data_checksum_ok
+0x69ca load_data_checksum_compare_fail
+0x69cc loadcode_lock_load_ucode
+0x69d0 loadcode_lock
+0x69d7 loadcode_set_lock
+0x69df load_otp_hv_vsel
+0x69e4 load_otp_set_init
+0x69ea set_otp_config
+0x69fb set_otp_config2
+0x6a11 loadcode_load_key
+0x6a20 loadcode
+0x6a2b loadcode_bistwait
+0x6a31 loadcode_nobist
+0x6a34 loadcode_otp
+0x6a49 loadcode_unenc
+0x6a4b loadcode_otp_loop
+0x6a56 loadcode_otp_end
+0x6a58 loadcode_iic_loop
+0x6a64 run_otp_code
+0x6a67 loadcode_check_otp_lock
+0x6a6c loadcode_otp_lock
+0x6a6e loadcode_iic_eeprom_2k
+0x6a77 loadcode_spi
+0x6a78 loadcode_spi_loop
+0x6a87 loadcode_hci
+0x6a8b clear_key_buf
+0x6a91 iicd_load_gpio_init
+0x6a95 iicd_load_default_gpio
+0x6a99 loadcode_iic_by_eeprom
+0x6a9f loadcode_timeout
+0x6aa5 loadcode_error_delay
+0x6aab loadcode_error
+0x6aaf set_bistfix_wake
+0x6ab1 set_bistfix_wake_patchram
+0x6ab7 set_bistfix_wake_xram
+0x6abf set_bistfix_save_xram
+0x6ac9 set_bistfix_save_patchram
+0x6ad1 set_bistfix_set_patchram_addr
+0x6adc set_bistfix
+0x6ae3 set_bistfix_loop
+0x6ae9 set_ucode_status
+0x6af0 decrypt_code
+0x6af3 decrypt_code_loop
+0x6af6 decrypt_code_skip
+0x6afa save_ucode_loop
+0x6aff load_ucode
+0x6b07 load_ucode_loop
+0x6b0c otp_load_code
+0x6b19 otp_enable_chgpump25
+0x6b22 otp_enable_chgpump65
+0x6b25 disable_otp
+0x6b26 otp_disable_chgpump
+0x6b28 enable_otp_read
+0x6b29 otp_reset
+0x6b2f otp_set_addr
+0x6b33 otp_write
+0x6b37 otp_program
+0x6b3a otp_program_bit
+0x6b5a otp_skip_0
+0x6b62 otp_read_data
+0x6b63 otp_read_data1
+0x6b68 otp_read_data_loop
+0x6b71 otp_read_noinc
+0x6b77 otp_read_unenc
+0x6b7b app_lpm_lock_check
+0x6b89 app_lpm_kb_lock
+0x6b8c app_lpm_module_lock
+0x6b8c app_lpm_hciboot_lock
+0x6b90 app_lpm_dongle_lock
+0x6b96 app_lpm_mouse_lock
+0x6b9c app_lpm_mouse_lock_24g
+0x6ba0 app_lpm_shutter_lock
+0x6ba4 app_lpm_car_lock
+0x6ba7 app_lpm_car_lock_application_and_ble
+0x6bad app_mpu_s0_lock
+0x6bb0 app_lpm_mpu_lock_ble
+0x6bb2 app_mpu_s1_lock
+0x6bb5 app_lpm_mpu_lock_24g
+0x6bb8 app_lpm_mpu_lock_24g_ble
+0x6bbc spid_init
+0x6bbd spid_init_common
+0x6bc6 spid_write_reg
+0x6bcd spid_read_reg
+0x6bce spid_read_regs
+0x6bd6 wait_spid_done
+0x6bda flash_write
+0x6be1 flash_write_spi_sm_timer
+0x6be8 spid_flash_write_start
+0x6bee spid_flash_erase_sector
+0x6bf6 spid_flash_wait_erase_sector
+0x6bfa spid_flash_write_data
+0x6c01 spid_flash_wait_write_data
+0x6c09 spid_flash_data_recover
+0x6c0b spid_flash_data_recover_comm
+0x6c0e spid_flash_data_preserve
+0x6c16 spid_init_flash
+0x6c1c spid_unlock_flash
+0x6c1d spid_sendcmd_common
+0x6c25 spid_flash_release_form_powerdown
+0x6c27 spid_flash_powerdown
+0x6c29 spid_write_flash_data
+0x6c32 spid_write_flash
+0x6c36 spid_write_flash_common
+0x6c43 spid_read_flash
+0x6c55 spid_read_flash_wait
+0x6c59 wait_spid_flash_done
+0x6c62 spid_load_flash
+0x6c6f spi_load_flash_wait
+0x6c81 spi_gpio_init
+0x6c86 spi_pin_set
+0x6c92 spi_gpio_default_init
+0x6c99 soft_reset_chip
+0x6c9b iic_init_600khz
+0x6ca3 iic_init_360khz
+0x6cab iicd_init_pin
+0x6cac iicd_init_pin_scl_sda
+0x6cb2 iicd_read_init_pin
+0x6cb4 wait_iicd_done
+0x6cb7 set_eeprom_size_2k
+0x6cba clear_eeprom_size_2k
+0x6cbd iicd_read_eep_data_size_2k
+0x6cc1 iicd_read_eep_size_2k_lcadcode
+0x6cc4 iicd_read_eep_size_2k
+0x6cc9 iicd_write_protect_eep_data
+0x6cce iicd_eeprom_write_enable
+0x6cd3 iicd_wp_gpio_output_low
+0x6cd5 iicd_eeprom_write_disable
+0x6cd7 iicd_read_eep_data
+0x6cdd iicd_read_eep
+0x6ce3 iicd_read_eep_common
+0x6cf2 iicd_inc_addr
+0x6cf5 iicd_read_eep_load_code_size_2k
+0x6cf6 iicd_set_addr
+0x6cfa iicd_write_eep_data
+0x6d00 iicd_write_eep_loop
+0x6d0f iicd_eep_transparency
+0x6d21 iicd_eep_deal_short_packet
+0x6d26 iicd_write_eep_size_2k
+0x6d30 iicd_write_eep
+0x6d3d iicd_write_eep_common
+0x6d44 iic_check_eeprom_standby
+0x6d46 iic_check_eeprom_standby_wait
+0x6d5b uarta_init_dma_mem
+0x6d5d uart_init_dma_mem
+0x6d66 uarta_init_baud_rate
+0x6d68 uarta_calc_baud_rate_config
+0x6d6a uart_calc_baud_rate_config
+0x6d6f uart_calc_baud_rate_config_choice_uart_clock
+0x6d73 uart_calc_baud_rate_config_choice_uart_clock_crystal
+0x6d75 uart_clock_select_main_freq_crystal
+0x6d79 uart_clock_select_main_freq_dpll
+0x6d7d uarta_init_tx
+0x6d81 uarta_init_rx
+0x6d85 uarta_prepare_tx
+0x6d89 uarta_prepare_rx
+0x6d8d uarta_send
+0x6d8f uarta_rxdone
+0x6d91 uarta_clear_current_rx
+0x6d95 uarta_prepare_tx_register_push
+0x6d97 uarta_send_register_pop
+0x6d99 uart_register_push
+0x6d9d uart_register_pop
+0x6da1 wait_uarttx
+0x6da4 uart_copy_tx_bytes_fast
+0x6da6 uart_copy_tx_bytes_fast_loop
+0x6dab uart_copy_tx_bytes_fast_loop_four
+0x6db1 uart_tx_8_bytes
+0x6db4 uart_tx_4_bytes
+0x6db7 uart_copy_tx_bytes
+0x6db9 uart_copy_tx_bytes_loop
+0x6dbd uart_copy_rx_bytes_fast
+0x6dbf uart_copy_rx_bytes_fast_loop
+0x6dc4 uart_copy_rx_bytes_fast_loop_four
+0x6dca uart_rx_8_bytes
+0x6dcd uart_rx_4_bytes
+0x6dd0 uart_copy_rx_bytes
+0x6dd2 uart_copy_rx_bytes_loop
+0x6dd6 app_store_nvram_event
+0x6dd8 check_51cmd_update_device_record
+0x6ddf write_device_record
+0x6de3 write_device_loop_find
+0x6def write_device_loop_find0
+0x6df3 set_index_finded_device
+0x6df8 set_index_find_device_master_addr
+0x6dfd store_rec_data_common
+0x6e00 set_index_finded_device_ble_mode
+0x6e04 set_index_finded_device_irk
+0x6e06 store_ble_rec_data_common
+0x6e08 set_index_finded_device_ediv
+0x6e0b nvram_find_addr_from_bd_list
+0x6e11 find_addr_from_bd_list_ble_mode
+0x6e19 find_addr_from_bd_list_static_addr
+0x6e1d find_addr_from_bd_list_static_addr_reconnect
+0x6e20 find_addr_from_bd_list_static_addr_sc_or_legacy
+0x6e20 find_addr_from_bd_list_random_non_resolvable_private_address_sc_or_legacy
+0x6e23 find_addr_from_bd_list_static_addr_sc
+0x6e23 find_addr_from_bd_list_random_non_resolvable_private_address_sc
+0x6e26 find_addr_from_bd_list_public_device_addr
+0x6e29 find_addr_from_bd_list_random_non_resolvable_private_address
+0x6e2b find_addr_from_bd_list_random_addr
+0x6e2d find_addr_from_bd_list_common
+0x6e35 nvram_find_addr_from_list
+0x6e45 nvram_find_addr_from_list_compare
+0x6e47 find_master_addr_from_list_compare
+0x6e4c find_addr_from_list_compare_ble_mode
+0x6e4f find_irk_form_list_compare
+0x6e61 genernate_master_macaddress
+0x6e6a find_ediv_form_list_compare
+0x6e79 check_nvram
+0x6e7f init_device_list
+0x6e83 init_device_list_loop
+0x6e88 load_device_list_mode_4
+0x6e93 clear_ltk_exists
+0x6e95 eeprom_store_le_reconn_info
+0x6e97 eeprom_store_reconn_info
+0x6e9c get_gpio_wakeup_index
+0x6ea5 gpio_set_wake_by_current_state
+0x6eac gpio_set_wake
+0x6eb3 gpio_set_wake_high
+0x6eb7 gpio_set_wake_low4bit
+0x6ebc gpio_set_qdec_mode
+0x6ec0 gpio_set_low_pullup
+0x6ec8 gpio_set_low_pullup_low4bit
+0x6ecd gpio_clr_wake
+0x6ed5 gpio_config_input_nowake
+0x6ed7 gpio_config_input
+0x6eda gpio_config_input_without_wake
+0x6ee0 gpio_get_bit
+0x6eeb gpio_get_bit_reverse
+0x6eed gpio_out_inactive
+0x6ef1 gpio_config_output
+0x6ef1 gpio_out_active
+0x6ef4 gpio_out_flag
+0x6ef7 gpio_out
+0x6efc gpio_check_active
+0x6f03 gpio_check_active_high
+0x6f05 gpio_set_analog
+0x6f09 gpio_write
+0x6f0b gpio_set_high_impedance
+0x6f10 gpio_addr
+0x6f14 gpio_addr_next
+0x6f16 gpio_addr_ext
+0x6f19 gpio_config_param
+0x6f1c gpio_config_function
+0x6f1d gpio_config_function_int
+0x6f22 gpio_config_function_int_next
+0x6f25 gpio_config_function_int_ext
+0x6f28 gpio_get_config
+0x6f2c gpio_get_config_next
+0x6f2f gpio_get_config_ext
+0x6f32 gpio_set_before_lpm
+0x6f34 setgpio_loop
+0x6f3e setgpio_loop_end
+0x6f42 gpio_set_before_lpm_ext
+0x6f45 setgpio_pullup
+0x6f48 setgpio_pulldown
+0x6f4b lpm_puchk_set_check
+0x6f4e lpm_config_puchk_disable
+0x6f4f lpm_config_puchk_set
+0x6f51 lpm_config_puchk_enable
+0x6f53 sadc_calibration
+0x6f5f sadc_cal_read
+0x6f62 sadc_cal_read_loop
+0x6f6b sadc_cal_write
+0x6f71 sadc_cal_write_loop
+0x6f7c adc_init_data
+0x6f8e vdd_calculate_by_mode
+0x6f93 vdd_reference_inter3v_calculate
+0x6f97 vdd_reference_inter3v_calculate_by_mode_vdcdc
+0x6f9e vdd_reference_inter3v_calculate_by_mode_gpio
+0x6fa4 mul1v_div1v_to_cal
+0x6fa9 enable_adc_init_config
+0x6fb2 enable_adc
+0x6fb7 enable_adc_reference_source_inter3v
+0x6fbe read_adc_inter1v
+0x6fd1 vdd_reference_inter1p8v_calculate
+0x6fd5 vdd_reference_inter1p8v_calculate_by_mode_vdcdc
+0x6fdb vdd_reference_inter1p8v_div2_calculate_by_mode_gpio
+0x6fe0 vdd_calculate00
+0x6fe8 vdd_calculate11
+0x6fee enable_adc_reference_source_inter1p8v
+0x6ff0 enable_adc_reference_source_inter1p8v_div2_gpio
+0x6ff8 enable_adc_reference_source_inter1p8v_vdcdc
+0x6fff enable_adc_reference_source_inter1p8v_common
+0x7007 sadc_channel
+0x700e sar_adc_read_wait
+0x7011 sadc_read
+0x7017 sadc_read_wait2
+0x701b sadc_dma
+0x702a vdd_calculate
+0x7030 vdd_calculate2
+0x7032 vdd_calculate1
+0x7039 vdd_calculate_common
+0x703e adc_bat_percent_lowpower_out
+0x704e adc_set_low_power_flag
+0x7051 adc_clear_low_power_flag
+0x7054 adc_set_no_power_flag
+0x7057 adc_clear_no_power_flag
+0x7059 adc_set_power_flag
+0x705b keyscan_key_init
+0x705d keyscan_key_init_next
+0x7062 keyscan_key_init_lp1
+0x7066 keyscan_key_init_end
+0x7067 keyscan_scan_key
+0x706d keyscan_scan_key_lp1
+0x7078 keyscan_scan_key_lp1_next
+0x707f keyscan_process_lpm_before
+0x7081 keyscan_process_lpm_before_next
+0x7086 keyscan_process_lpm_before_lp1
+0x708a keyscan_process_lpm_before_end
+0x708b keyscan_key_process
+0x7096 keyscan_key_process_next
+0x709f keyscan_key_lp1
+0x70ab keyscan_key_lp1_next
+0x70b4 keyscan_send_key_data
+0x70b9 pwm_init
+0x70bf delay_nop100
+0x70c1 pwm_clk_set
+0x70c4 pwm_12m_clk_set
+0x70c6 pwm_24m_clk_set
+0x70c8 pwm_33k_clk_set
+0x70ca pwm_out_set
+0x70de pwm_duty_cycle_set
+0x70e1 pwm_autoload_set
+0x70ea delay_1clk_of_33k
+0x70ec pwm_duty_cycle_set_without_autoload
+0x70f5 pwm_init_bit_set
+0x70f6 pwm_init_bit_set_process
+0x70fb pwm_gpio_select
+0x70fc pwm_gpio_select_process
+0x7100 pwm_enable
+0x7103 pwm_disable
+0x7106 pwm_set_select
+0x710b pwm_select_channel
+0x710e wdt_init_config
+0x711b wdt_set_enable
+0x711d wdt_set_disable
+0x711f wdt_init_set
+0x7123 nec_init_config
+0x7127 select_system_clk_12m_xtal
+0x7128 select_system_clk_12m_common
+0x712c select_system_clk_12m_dpll
+0x712e function_g2
+0x7145 function_f6_eb
+0x7155 get_r
+0x7159 function_f6_ea
+0x716c function_f5
+0x717e function_f5_common
+0x718f store_addr_common_b
+0x7194 store_addr_common_a
+0x7199 function_f4_ca
+0x71a4 function_f4_cb
+0x71af function_aes_cmac
+0x71b3 function_ceil16
+0x71c1 function_aes_cmac_set_flag_0_balnk
+0x71c4 function_aes_cmac_set_flag_0
+0x71c5 function_aes_cmac_set_flag_0_common
+0x71cf function_aes_cmac_aes
+0x71d2 function_aes_cmac_aes_loop
+0x71d8 function_aes_cmac_aes_loop_end
+0x71e0 load_inverse_result
+0x71e4 store_inverse_k
+0x71e6 inverse_k
+0x71e9 inverse_memdat
+0x71ed bn_lshift_0_inverse
+0x71f7 function_aes_cmac_k1_inverse
+0x71f8 function_aes_cmac_inverse_common
+0x71fc function_aes_cmac_k2_inverse
+0x71fe function_aes_cmac_generate_subkey
+0x7206 function_aes_cmac_k1
+0x720f function_aes_cmac_k1_0
+0x7210 function_aes_cmac_k2
+0x7219 function_aes_cmac_xor_rb
+0x721a function_aes_cmac_xor_rb_loop
+0x7220 function_aes_cmac_xor_loop_common
+0x7224 function_aes_cmac_padding
+0x7227 function_aes_cmac_padding_loop
+0x722c function_aes_cmac_padding_loop2
+0x722f function_aes_cmac_padding_beq_length
+0x7230 function_aes_cmac_padding_common
+0x7232 function_aes_cmac_padding_big_length
+0x7234 concatenate_temp24
+0x7235 concatenate_temp16
+0x7238 generate_stk
+0x723c authenticate_rconfirm
+0x723f authenticate_mconfirm
+0x7244 generate_confirm
+0x7247 generate_mrand
+0x724a generate_sk
+0x7253 ccm_b0
+0x7256 first_block_counter
+0x7258 first_block_data
+0x7259 first_block
+0x725a iv_common
+0x726b generate_mic
+0x727a generate_mic_loop
+0x727f generate_mic_end
+0x7283 aes_crypt_data
+0x728d le_encrypt_new_start
+0x72a6 ccm_wait_enc
+0x72ab ccm_check_enc_done
+0x72ad ccm_enc_done
+0x72b2 ccm_init_common
+0x72b9 wait_ccm_done
+0x72bb ccm_ctrl_clr
+0x72bd wait_aes
+0x72bf do_aes_ocb
+0x72c2 do_aes_cbc
+0x72c5 do_aes_ctr
+0x72c8 aes_init
+0x72cb wait_keyinit_done
+0x72ce dec_key_initial
+0x72d2 do_aes_ecb_dec
+0x72d9 ecb_dec_generate
+0x72dc ecb_dec_generate_loop
+0x72e1 aes_ecb_dec_loop
+0x72e8 do_aes_cbc_dec
+0x72f4 function_s1
+0x7309 function_c1
+0x730f function_c1_master
+0x731f function_c1_irat
+0x7324 function_c1_loop1
+0x7337 padding_data
+0x733c padding_loop
+0x7341 aes_load_data
+0x7342 load_data_loop
+0x7346 load_data_padding
+0x734b aes_load_xor
+0x734d load_key
+0x734f load_data128
+0x7350 load_regext
+0x7351 load_regext_loop
+0x7356 load_sk
+0x7358 clear_hidata
+0x735a regext_clear
+0x735d aes_clear_data
+0x735e aes_clear
+0x735f clear_loop
+0x7360 clear_data_rest
+0x7363 store_aes_result
+0x7365 send_aes_result_loop
+0x736a store_enc_data
+0x7370 store_enc_loop
+0x7378 store_enc_byte
+0x737c compare_res
+0x737e compare_res_loop
+0x7384 enable_authrom
+0x7388 disable_authrom
+0x738c init_memp
+0x73e3 init_memp_256
+0x7435 publickey_init
+0x7436 sp_calc_sequence_256_check
+0x743e stop_publickey_calc_256
+0x7440 sp_clear_flags
+0x7449 sp_calc_check_publickey_256
+0x7464 sp_calc_b256
+0x747a random_generator
+0x747f compare4
+0x7489 compare4_failed
+0x748a compare4_success
+0x748b bn_testbit
+0x7491 bn_eq_zero
+0x7497 bn_eq_0
+0x74a0 bn_bigeq
+0x74a3 bn_bigeq_0
+0x74ad bn_add
+0x74af bn_add_0
+0x74bb bn_sub
+0x74bd bn_sub_0
+0x74c9 bn_rshift6
+0x74cb bn_rshift
+0x74cc bn_rshift_0
+0x74d7 bn_lshift
+0x74d9 bn_lshift_0
+0x74e4 bn_load
+0x74e5 bn_load_0
+0x74ea sp_initialize_256
+0x74ed sc_reset
+0x74f0 sp_wait_pubkey_calc_256_done
+0x74f6 sp_debug_private_256
+0x750b sp_pubkey_calc_256
+0x7524 sp_pubkey_generated_256
+0x752a sp_dhkey_calc_256
+0x753a sp_dhkey_generated_256
+0x7540 sp_calc_sequence_256
+0x754a sp_calc_sequence_done_256
+0x7550 eckp_calc_256
+0x7558 eckp_calc_init_256
+0x755b eckp_calc_init_256_1
+0x7565 ecunmapz_256
+0x7577 ecdbl_256
+0x75c8 ecadd_256
+0x7634 bn_invmod_256
+0x7642 bn_invmod_256_2
+0x765d bn_invmod_256_1
+0x766b bn_invmod_256_0
+0x7672 bn_mulmod_256
+0x7680 bn_mulmod_256_1
+0x7686 bn_mulmod_256_0
+0x769b bn_p256mod
+0x7704 bn_load_mem
+0x7708 bn_load_256
+0x770a bn_sqrmod_256
+0x770c bn_add_256
+0x770e bn_addmod_256
+0x7711 bn_lshiftmod_256
+0x7712 bn_lshiftmod_ismod_256
+0x771b bn_lshiftmod_p_256
+0x7723 sub_p2_256
+0x7727 bn_submod_256
+0x7731 bn_submod_256_np
+0x773a bn_sub_256
+0x773c bn_rshift_256
+0x773f bn_lshift_256
+0x7742 bn_bigeq_256
+0x7746 bn_eq_zero_256
+0x7749 bn_rshifteven_256
+0x774a bn_rshifteven_256_1
+0x7759 bn_rshifteven_256_0
+0x775d ui_init
+0x7762 ui_dispatch
+0x7764 ui_button_init
+0x776e ui_button_polling
+0x7774 ui_button_down
+0x7780 ui_button_up
+0x778a ui_button_check_long_press
+0x7791 lpm_button_get_wake_lock
+0x7793 lpm_button_clean_wake_lock
+0x7795 calc_curr_struct_prt
+0x779a ui_led_init_global
+0x779f ui_led_init_loop
+0x77a5 ui_led_init_set
+0x77a8 ui_led_on_global
+0x77ad ui_led_blink_stop_global
+0x77ad ui_led_off_global
+0x77b2 ui_led_blink_start_global
+0x77b8 ui_led_set_style_global
+0x77bd ui_led_dispatch
+0x77c0 ui_led_blink_polling
+0x77c6 ui_led_off_static
+0x77c9 ui_led_on_static
+0x77cc ui_led_change_style_by_type
+0x77d5 ui_led_blink_state_lighting
+0x77e0 ui_led_blink_state_darking
+0x77ec ui_led_blink_infinite
+0x77f0 ui_led_blink_timer_start
+0x77f2 ui_led_stop_timer
+0x77f4 ui_timer_timeout
+0x77f8 ui_timer_check
+0x77ff ui_timer_check_loop
+0x7809 ui_timer_init
+0x780c ui_timer_check_end
+0x7812 ui_timer_check_send_evt
+0x7813 ui_ipc_get_lock
+0x7814 ui_ipc_get_lock_wait
+0x7817 ui_ipc_put_lock
+0x7819 ui_ipc_send_event
+0x7824 ui_ipc_send_cmd
+0x782d ui_ipc_clean_all_fifo
+0x7831 check_51cmd
+0x783c check_51cmd_once
+0x7850 check_51cmd_once_continue
+0x7859 check_51cmd_check_idle
+0x785e check_51cmd_restore
+0x7860 check_51cmd_adv
+0x7866 check_51cmd_stop_adv
+0x786b check_51cmd_direct_adv
+0x7871 check_51cmd_stop_direct_adv
+0x7876 check_51cmd_le_disconnect
+0x787a check_51cmd_ble_update_connect_param
+0x787b check_51cmd_led_off
+0x787d check_51cmd_led_on
+0x787f check_51cmd_led_start_blink
+0x7886 check_51cmd_led_start_blink_in_blink
+0x7889 check_51cmd_le_start_con
+0x788c check_51cmd_start_scan
+0x788e check_51cmd_stop_scan
+0x7891 check_51cmd_hibernate
+0x7897 check_51cmd_hibernate_btn_disabled
+0x7899 check_51cmd_le_smp_sec_req
+0x789a ui_check_paring_button
+0x789d queue_init
+0x78a2 queue_push
+0x78b2 calc_queue_next_ptr
+0x78ba queue_pop
+0x78cc queue_get_new_ele
+0x78db queue_store_new_ele
+0x78ea queue_empty
+0x78ee queue_full
+0x78f2 queue_get_size
+0x78f6 usb_isr
+0x7902 usb_init
+0x7905 usb_init_restart
+0x791a usb_offline_check_init
+0x791c usb_offline_state
+0x7922 usb_init_param
+0x7954 usb_config_cb
+0x7956 usb_tx_interval_config
+0x795b usb_nak_state
+0x7963 usb_nak_state_judge
+0x7966 usb_nak_state_timer_init
+0x796b usb0_attached_state_judge
+0x7970 usb_clear_halt_dispose
+0x7976 usb_rx_no_data
+0x7979 usb_rx_len
+0x7983 usb_rx_data
+0x7986 usb_rx_read
+0x798b usb_rx_ep13
+0x7994 usb_rx
+0x79a1 usb_class_type
+0x79a8 usb_out_one_byte
+0x79ac usb_in_device
+0x79b4 usb_out_device
+0x79bc usb_in_standard_req
+0x79c2 usb_in_class_req
+0x79c7 usb_in_manufacturer_req
+0x79c8 usb_out_standard_req
+0x79d0 usb_out_class_req
+0x79d5 usb_out_manufacturer_req
+0x79d6 usb0_force_stall
+0x79db usb0_reply_zerolen
+0x79dd usb0_request_get_configuration
+0x79ef usb0_request_get_cfg_dev_cfg
+0x79f1 usb0_request_get_cfg_dev_addr
+0x79f3 usb0_request_get_descriptor
+0x79fb dsc_hid_info
+0x7a00 dsc_hid_info_interface0
+0x7a03 dsc_hid_info_interface1
+0x7a06 dsc_device_info
+0x7a0a dsc_info_set_data_len
+0x7a0f dsc_info_set_initial_data_len
+0x7a10 dsc_info_set_data_size_completed
+0x7a15 dsc_info_set_current_data_len
+0x7a17 usb_set_high_addr
+0x7a1b usb0_set_addr
+0x7a1f dsc_config_info
+0x7a22 dsc_string_info
+0x7a30 dsc_hid_report_info
+0x7a34 dsc_hid_report_info0
+0x7a38 usb0_request_get_interface
+0x7a4a usb0_request_get_status
+0x7a5b usb0_sdsystem_dispose
+0x7a5d usb0_get_status_in_device
+0x7a62 usb_send_zero_packet
+0x7a64 usb_send_ones_packet
+0x7a66 usb_send_two_packet
+0x7a68 usb0_get_status_in_interface
+0x7a6c usb0_get_status_in_endpoint
+0x7a75 usb0_get_status_in_ep_in_ep0
+0x7a76 usb0_get_status_in_ep_in_ack
+0x7a79 usb0_get_status_in_ep_in_ep1
+0x7a7b usb0_get_status_in_ep_in_ep2
+0x7a7d usb0_get_status_in_ep_in_ep3
+0x7a7f usb_get_idle
+0x7a83 usb_get_report
+0x7a88 usb_get_report_dispose
+0x7a8b usb_get_report_send_data
+0x7a8f usb_get_report_data_release
+0x7a92 usb_get_report_data_success
+0x7a95 usb_get_protocol_req
+0x7a9d usb_get_report_protocol
+0x7a9e usb_get_boot_protocol
+0x7a9f usb0_request_clear_feature
+0x7aae usb0_request_clear_feature_out_device
+0x7abc usb0_request_clear_feature_out_interface
+0x7abd usb0_request_clear_feature_out_endpoint
+0x7ac6 usb0_force_stall_ep0_in_off
+0x7ac8 usb0_force_stall_ep1_in_off
+0x7ac9 usb0_force_stall_ep1_in_off_reply
+0x7acb usb0_force_stall_ep2_in_off
+0x7acd usb0_force_stall_ep3_in_off
+0x7acf usb0_request_set_feature
+0x7ad8 usb0_request_set_feature_out_device
+0x7ae3 usb_wakeup_timer_reinit
+0x7ae7 usb0_request_set_feature_out_interface
+0x7ae8 usb0_request_set_feature_out_endpoint
+0x7af3 usb0_force_stall_ep0_in_on
+0x7af5 usb0_force_stall_ep1_in_on
+0x7af7 usb0_force_stall_ep2_in_on
+0x7af9 usb0_force_stall_ep3_in_on
+0x7afb usb0_request_set_address
+0x7b0c usb_usb0_state_set_dev_default
+0x7b0d usb0_request_set_wait_address
+0x7b12 usb_usb0_state_set_dev_addr
+0x7b14 usb0_request_set_configuration
+0x7b29 usb0_request_set_cfg_addr_state
+0x7b29 usb0_request_set_cfg_cfg_state
+0x7b2d usb0_request_set_cfg_stay_addr_state
+0x7b2f usb0_request_set_interface
+0x7b40 usb_set_idle
+0x7b4e usb_clear_remote_wakeup_set0
+0x7b52 usb_set_report
+0x7b5e usb_get_led_status
+0x7b62 usb_set_report_resume_judge
+0x7b70 usb_set_protocol_req
+0x7b76 usb_set_boot_protocol
+0x7b79 usb_set_report_protocol
+0x7b7d usb0_respond_length
+0x7b7f usb0_respond
+0x7b84 usb0_respond_nostr
+0x7b88 usb_no_respond_data
+0x7b8a usb0_tx
+0x7b98 usb0_tx_short
+0x7b9c usb0_tx_info
+0x7bae usb0_tx_nostr
+0x7bb0 usb0_tx0
+0x7bb5 usb0_tx1
+0x7bc3 usb_tx_ep1
+0x7bc6 usb_tx_buf
+0x7bc8 usb_tx_loop
+0x7bcb usb_trig
+0x7bcf usb_tx_ep2
+0x7bd3 usb_tx
+0x7be2 usb_tx_data_ep1
+0x7bee usb_tx_data_ep2
+0x7bfe usb_tx_fifo_release
+0x7c01 usb_tx_ms_data
+0x7c09 usb_tx_ms_data_mac_boot_mode
+0x7c0a usb_tx_ms_data_mac_boot_regroup
+0x7c18 usb_tx_ms_data_normal_mode
+0x7c19 usb_tx_mac_boot_ms_regroup_r_or_lrkey
+0x7c1c usb_tx_kb_multikey_data
+0x7c20 usb_tx_kb_normal_data
+0x7c26 usb_tx_kb_systemkey_data
+0x7c2a usb_tx_kb_bit_consumer_data
+0x7c2e usb_tx_kb_n_key_rollover_data
+0x7c32 usb_inwake_state_tx_dispose
+0x7c35 usb_mac_wakeup_trig
+0x7c3a usb_mac_wakeup_judge
+0x7c3e usb_mac_wakeup
+0x7c42 usb_windows_wakeup
+0x7c45 usb_wakeup
+0x7c4b push_stack
+0x7c53 push_stack_rega_b_c
+0x7c57 pop_stack
+0x7c62 pop_stack_rega_b_c
+0x7c66 get_contw
+0x7c67 get_contw_end
+0x7c69 get_contr
+0x7c6a get_contr_end
+0x7c6c store_contw
+0x7c6f store_contr
+0x7c72 save_cont_pointers
+0x7c77 load_cont_pointers
+0x7c7c get_diff
+0x7c82 memcpy96
+0x7c83 memcpy64
+0x7c85 memcpy12
+0x7c86 memcpy4
+0x7c88 memcpy3
+0x7c8b memcpy8
+0x7c8e memcpy48
+0x7c8f memcpy32
+0x7c90 memcpy24
+0x7c91 memcpy16
+0x7c93 delay
+0x7c97 delay_10ms
+0x7c98 delay_ms_wait
+0x7c9b memset0_16
+0x7c9c memset0_8
+0x7c9d memset0_4
+0x7c9f clear_mem_256
+0x7ca1 clear_mem_512
+0x7ca3 clear_mem
+0x7ca5 memset0
+0x7ca8 clear_temp_block
+0x7cab xor_loop
+0x7cb3 inverse_data
+0x7cba inverse_loop
+0x7cc2 le2be_6byte
+0x7cc2 inverse_data_6byte
+0x7cc8 le2be_4byte
+0x7cc8 inverse_data_4byte
+0x7cce memcpy_fast
+0x7cd1 memcpy_fast_loop
+0x7cd6 memcpy_fast_loop_four
+0x7cdc memcpy
+0x7cde memcpy_loop
+0x7ce2 timer_stop
+0x7ce3 timer_init
+0x7cec timer_check_timeout
+0x7cf0 timer_reinit
+0x7cf1 timer_check
+0x7cfc timer_loop
+0x7d00 timer_counting
+0x7d07 clk_add
+0x7d12 clk_diff_rt
+0x7d14 clk_diff
+0x7d19 clk_diff_pos
+0x7d21 clk2rt
+0x7d27 clk2lpo
+0x7d2e clk2bt
+0x7d35 string2dec_from_uart
+0x7d36 string2dec_from_uart_done
+0x7d41 uchar2dialog
+0x7d4a uchar2dialog_number
+0x7d4d uchar2dialog_a2f
+0x7d50 right_shift_n
+0x7d52 right_shift_n_loop
+0x7d55 left_shift_n
+0x7d58 left_shift_n_loop
+0x7d5b calc_average
+0x7d5d calc_average_loop
+0x7d61 get_div_result
+0x7d64 wait_div_end
+0x7d66 compare_loop
+0x7d66 string_compare
+0x7d6e ceiling
+0x7d72 swap
+0x7d76 clean_smem
+0x7d78 clean_xmem
+0x7d79 clean_mem
+0x7d7b callback_func
+0x7d7d ice_break_disable_wdt
+0x7d7e ice_break
+0x7d80 ice_setbp
+0x7d85 ice_setbp2
+0x7d8a ice_set_write_bp
+0x7d8d fifo_in
+0x7d93 fifo_in_push
+0x7d99 fifo_out
+0x7d9d fifo_out_loop
+0x7da2 fifo_out_end
+0x7da5 fifo_is_empty
+0x7da7 fifo_is_full
+0x7da9 fifo_is_near_full
+0x7dab fifo_content_count
+0x7dac fifo_content_count_loop
+0x7db2 not_greater_than
+0x7db4 copy_temp2pdata
+0x7db6 disable_positive
+0x7db8 enable_positive
+0x7db8 disable_zero
+0x7dba enable_zero
+0x7dbc enable_user
+0x7dbe disable_user
+0x7dc0 enable_user2
+0x7dc2 disable_user2
+0x7dc4 enable_user7
+0x7dc6 disable_true
+0x7dc8 enable_true
+0x7dca disable_blank
+0x7dcc enable_blank
+0x7dcc set_pdata_0
+0x7dce istore_1_contw_rtn
+0x7dd0 cal_sum
+0x7dd2 cal_sum_loop
+0x7dd6 reverse_byte
+0x7ddc reverse_loop
+0x7de1 lshift14
+0x7de2 rshift2
+0x7de4 lshift6
+0x7de6 clear_wake
+0x7ded generate_random
+0x7dee generate_random_loop
+
+
+
+format
+  ! 15 romdat
+  % d0
+  % d1
+  % d2
+  % d3
+  [8] d0
+  [8] d1
+  [8] d2
+  [8] d3
+end
+
+format
+  ! 15 enable   
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [6] null
+  [9] 0
+end
+ 
+format
+  ! 15 pulse   
+  % flag
+  [5] opcode
+  [6] 1
+  [6] flag
+  [6] null
+  [9] 0
+end
+
+format
+  ! 15 disable   
+  % flag
+  [5] opcode
+  [6] 2
+  [6] flag
+  [6] null
+  [9] 0
+end
+
+format
+  ! 15 set0  
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9
+  [6] never
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 set1  
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9          
+  [6] always
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 setflag  
+  % flag
+  % immediate
+  % reg
+  [5] opcode
+  [6] 9
+  [6] flag
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 nsetflag  
+  % flag
+  % immediate
+  % reg
+  [5] opcode
+  [6] 0x29
+  [6] flag
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 15 setflip    
+  % immediate
+  % reg
+  [5] opcode
+  [6] 10            
+  [6] always
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 0x1f qset1      
+  % reg             
+  [5] opcode
+  [6] 9
+  [6] always
+  [6] reg
+  [9] 0
+end
+  
+format
+  ! 0x1f qset0      
+  % reg             
+  [5] opcode
+  [6] 9
+  [6] never
+  [6] reg
+  [9] 0
+end
+
+format 
+  ! 0x1f qsetflag   
+  % flag
+  % reg
+  [5] opcode
+  [6] 9
+  [6] flag
+  [6] reg
+  [9] 0
+end
+
+format 
+  ! 0x1f nqsetflag   
+  % flag
+  % reg
+  [5] opcode
+  [6] 0x29
+  [6] flag
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 0x1f qsetflip      
+  % reg
+  [5] opcode
+  [6] 10
+  [6] always
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 1 parse       
+  % source
+  % dest
+  % immediate
+  [5] opcode
+  [4] source      
+  [2] 0
+  [6] 0    
+  [2] 0            
+  [4] dest        
+  [9] immediate   
+end
+
+format
+  ! 1 inject      
+  % destination
+  % immediate
+  [5] opcode
+  [4] 0
+  [2] 0
+  [6] 1
+  [2] 0
+  [4] destination 
+  [9] immediate   
+end
+
+format
+  ! 1 iinject
+  % destination
+  % regr
+  [5] opcode
+  [6] regr       
+  [6] 3
+  [2] 0
+  [4] destination 
+  [9] 0 
+end
+
+format
+  ! 1 stuff  
+  % source
+  % destination
+  [5] opcode
+  [4] source
+  [2] 0
+  [6] 2
+  [2] 0
+  [4] destination
+  [9] 0
+end
+
+format    
+  ! 3 force
+  % immediate
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 0    
+  [6] regw  
+  [9] immediate
+end
+
+format    
+  ! 0x13 iforce
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 0    
+  [6] regw  
+  [9] 0
+end
+
+format    
+  ! 3 increase
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 1    
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 pincrease
+  % immediate
+  [5] opcode
+  [6] -1  
+  [6] 1   
+  [6] -1  
+  [9] immediate
+end
+
+format    
+  ! 3 and_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 2    
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 and
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 2    
+  [6] regw
+  [9] immediate
+end
+  
+format
+  ! 0x13 iand    
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 2    
+  [6] regw
+  [9] 0
+end
+  
+
+format    
+  ! 0x13 iand_into
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 2    
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 3 or_into
+  % immediate
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 3    
+  [6] reg
+  [9] immediate
+end
+
+format
+  ! 3 or
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 3    
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 ior
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 3    
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 ior_into
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 3    
+  [6] reg
+  [9] 0
+end
+
+format
+  ! 3 skip_to   
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 4   
+  [6] rom_addr
+  [9] 0
+end
+
+format
+  ! 3 copy
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 4   
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 deposit   
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 4   
+  [6] -1  
+  [9] 0
+end
+
+format
+  ! 3 icopy     
+  % regw
+  [5] opcode
+  [6] -1  
+  [6]  4  
+  [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
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 1
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 sub          
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 12
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 isub       
+  % 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  
+  % 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  
+  % 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    
+  [5] opcode
+  [6] -1
+  [6] 8
+  [6] -1
+  [9] 0
+end
+
+format
+  ! 3 div                 
+  % reg
+  % immediate
+  [5] opcode
+  [6] reg
+  [6] 13                   
+  [6] null
+  [9] immediate
+end
+
+format
+  ! 0x13 idiv           
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 13                   
+  [6] null
+  [9] 0
+end
+
+format
+  ! 0x13 idiv48           
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 17                   
+  [6] null
+  [9] 0
+end
+
+format
+  ! 3 remainder            
+  % regw
+  [5] opcode
+  [6] 0
+  [6] 14
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 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
+  ! 0x13 bcrc         // calculate regr's byte crc value into pdata
+  % regr
+  [5] opcode
+  [6] regr
+  [6] 24
+  [6] 63
+  [9] 0
+end
+
+
+format
+  ! 3 random               
+  % reg
+  [5] opcode
+  [6] 0
+  [6] 20
+  [6] reg
+  [9] 0
+end
+
+format                     
+  ! 3 reverse
+  % reg
+  % regw
+  [5] opcode
+  [6] reg
+  [6] 27
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 priority    
+  % reg
+  % regw
+  [5] opcode
+  [6] reg
+  [6] 21
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 7 setsect   
+  % section    
+  % set_data
+  [5] opcode
+  [7] 0
+  [2] section
+  [18] set_data
+end
+
+format
+  ! 10 preload   
+  % reg
+  [5] opcode
+  [6] reg
+  [6] 0
+  [6] -1
+  [9] 0
+end
+
+format  
+  ! 10 ialigned   
+  % regw
+  [5] opcode
+  [6] -1
+  [6] 0
+  [6] regw
+  [9] 0
+end
+
+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
+  ! 0x0d fetch          
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 63
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0d fetcht          
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 2
+  [1] addr
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1d ifetch         
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] 63
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] reg
+end
+
+format
+  ! 0x1d ifetcht         
+  % num_bytes
+  % reg
+  [5] opcode
+  [6] 2
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] reg
+end
+
+format
+  ! 0x0c store          
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 63
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x0c storet          
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] 2
+  [1] addr
+  [1] 1
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1c istore        
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] 63            
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+format
+  ! 0x1c istoret        
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] 2            
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+
+format
+  ! 0x0d crc         // read from memory, count from loopcnt, put crc result into pdata 
+  % addr
+  [5] opcode
+  [6] 63
+  [6] 0
+  [15] addr
+end
+
+format
+  ! 0x1d icrc         
+  % reg
+  [5] opcode
+  [6] 63
+  [15] 0
+  [6] reg
+end
+
+
+format
+  ! 0x0c storer          
+  % reg
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] reg               
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+
+format
+  ! 0x1c istorer        
+  % regr
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] regr            
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+
+format
+  ! 0x1c lstorer        
+  % regr
+  % regaddr
+  [5] opcode
+  [6] regr            
+  [6] 0
+  [9] 0
+  [6] regaddr
+end
+
+format
+  ! 0x1c lstore        
+  % regaddr
+  [5] opcode
+  [6] 63            
+  [6] 0
+  [9] 0
+  [6] regaddr
+end
+
+format
+  ! 0x1c lstorew        
+  % regaddr
+  [5] opcode
+  [6] 63
+  [6] 42
+  [9] 0
+  [6] regaddr
+end
+
+
+format
+  ! 0x0d fetchr          
+  % reg
+  % num_bytes
+  % addr
+  [5] opcode
+  [6] reg               
+  [1] addr
+  [1] 0
+  [4] num_bytes
+  [15] addr
+end
+
+format
+  ! 0x1d ifetchr        
+  % regr
+  % num_bytes
+  % regaddr
+  [5] opcode
+  [6] regr
+  [2] 0
+  [4] num_bytes
+  [9] 0
+  [6] regaddr
+end
+
+
+
+
+format
+  ! 0x0e jam
+  % immediate
+  % addr
+  [5] opcode
+  [3] 0
+  [16] addr
+  [8] immediate
+end
+
+format			
+  ! 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  
+  [5] opcode
+  [6] 0     
+  [6] 0      
+  [15] addr
+end
+
+format
+  ! 4 clear_stack
+  [5] opcode
+  [6] 4
+  [6] 0    
+  [15] 0
+end
+
+format
+  ! 6 until
+  % reg
+  % flag
+  [5] opcode
+  [6] reg
+  [6] flag
+  [6] 1
+  [9] 0
+end
+  
+format
+  ! 6 correlate   
+  % reg          
+  % flag
+  [5] opcode
+  [6] reg
+  [6] flag
+  [6] 2           
+  [9] 0           
+end
+
+format
+  ! 5 compare   
+  % immediate
+  % reg
+  % mask
+  [5] opcode
+  [6] reg
+  [3] 0
+  [9] mask
+  [9] immediate
+end
+
+format
+  ! 0x15 icompare   
+  % mask
+  % reg
+  [5] opcode
+  [6] reg
+  [3] 0
+  [9] mask
+  [9] 0
+end
+
+format   
+  ! 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
+
+	
+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   
+  % addr
+  [5] opcode
+  [4] 4
+  [8] 0
+  [15] addr
+end
+
+format
+  ! 0x18 beq   
+  % imme
+  % addr
+  [5] opcode
+  [4] 0
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bne   
+  % imme
+  % addr
+  [5] opcode
+  [4] 1
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtneq   
+  % imme
+  [5] opcode
+  [4] 2
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnne   
+  % imme
+  [5] opcode
+  [4] 3
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 bbit1   
+  % imme
+  % addr
+  [5] opcode
+  [4] 5
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bbit0   
+  % imme
+  % addr
+  [5] opcode
+  [4] 6
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtnbit1   
+  % imme
+  [5] opcode
+  [4] 7
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnbit0   
+  % 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   
+  % imme
+  % addr
+  [5] opcode
+  [4] 10
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 bmark0   
+  % imme
+  % addr
+  [5] opcode
+  [4] 11
+  [8] imme
+  [15] addr
+end
+
+format
+  ! 0x18 rtnmark1   
+  % imme
+  [5] opcode
+  [4] 12
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 0x18 rtnmark0   
+  % imme
+  [5] opcode
+  [4] 13
+  [8] imme
+  [15] 0
+end
+
+format
+  ! 3 mul32                   
+  % regr
+  % immediate                                  
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 31           
+  [6] regw
+  [9] immediate
+end
+
+format
+  ! 0x13 imul32             
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 31                   
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 imults             
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 16
+  [6] regw
+  [9] 0
+end
+
+
+format
+  ! 3 byteswap
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 33
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 3 shasx          
+  % regr
+  % immediate
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 28
+  [6] regw
+  [9] immediate
+end
+
+
+format
+  ! 0x13 regexrot 	
+  [5] opcode
+  [6] 0
+  [6] 29
+  [6] null
+  [9] 0
+end
+
+format
+  ! 0x13 adpcm         // encode adpcm from regr into regw
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 43
+  [6] regw
+  [9] 0
+end
+
+format
+  ! 0x13 pcm         // decode adpcm from regr into regw
+  % regr
+  % regw
+  [5] opcode
+  [6] regr
+  [6] 44
+  [6] regw
+  [9] 0
+end
+
+
Index: costumer/Bore/keyboard_ck801_only_24g/output/bt_program23.icode
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/bt_program23.icode	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/bt_program23.icode	(working copy)
@@ -0,0 +1,504 @@
+ 00000000  0x00000013 bbit1  0x00000008 , 0x00000015 
+ 00000001  0x00000014 beq  0x00000019 , 0x00000018 
+ 00000002  0x00000015 beq  0x0000001a , 0x0000001f 
+ 00000003  0x00000016 beq  0x00000028 , 0x00000060 
+ 00000004  0x00000017 beq  0x0000003e , 0x00000127 
+ 00000005  0x00000018 beq  0x00000040 , 0x0000008b 
+ 00000006  0x00000019 beq  0x00000043 , 0x000000d5 
+ 00000007  0x0000001a beq  0x00000044 , 0x00000096 
+ 00000008  0x0000001b beq  0x0000004c , 0x000000b0 
+ 00000009  0x0000001c beq  0x0000004e , 0x000001ed 
+ 00000010  0x0000001d beq  0x00000082 , 0x0000009e 
+ 00000011  0x0000001e beq  0x00000056 , 0x00000123 
+ 00000012  0x0000001f beq  0x00000059 , 0x0000014c 
+ 00000013  0x00000020 beq  0x0000005c , 0x00000158 
+ 00000014  0x00000021 beq  0x0000006a , 0x00000137 
+ 00000015  0x00000022 beq  0x0000007c , 0x000001e2 
+ 00000016  0x00000023 beq  0x000000e9 , 0x0000002a 
+ 00000017  0x00000024 beq  0x000000ea , 0x00000027 
+ 00000018  0x00000025 beq  0x000000cf , 0x0000006e 
+ 00000019  0x00000026 beq  0x000000fa , 0x0000005c 
+ 00000020  0x00000027 branch  0x0000233e 
+ 00000021  0x0000002a rtneq  0x000000ff 
+ 00000022  0x0000002b beq  0x000000c2 , 0x00004815 
+ 00000023  0x0000002c branch  0x0000233e 
+ 00000024  0x00000030 fetch  0x00000001 , 0x00004141 
+ 00000025  0x00000031 beq  0x0000009e , 0x0000001b 
+ 00000026  0x00000032 branch  0x00002214 
+ 00000027  0x00000035 jam  0x00000017 , 0x00008a14 
+ 00000028  0x00000036 setarg  0x00251305 
+ 00000029  0x00000037 store  0x00000003 , 0x00008a60 
+ 00000030  0x00000038 branch  0x00002220 
+ 00000031  0x0000003b until  0x0000003e , 0x00000033 
+ 00000032  0x0000003c jam  0x0000000d , 0x00008946 
+ 00000033  0x0000003d jam  0x00000010 , 0x0000896f 
+ 00000034  0x0000003e jam  0x000000cd , 0x00008a13 
+ 00000035  0x00000040 fetch  0x00000001 , 0x00008a06 
+ 00000036  0x00000041 and  0x0000003f , 0x000000fc , 0x0000003f 
+ 00000037  0x00000042 store  0x00000001 , 0x00008a06 
+ 00000038  0x00000043 branch  0x00002255 
+ 00000039  0x00000046 call  0x00006b28 
+ 00000040  0x00000047 call  0x00006b63 
+ 00000041  0x00000048 branch  0x00006b26 
+ 00000042  0x0000004d call  0x00006b22 
+ 00000043  0x0000004e call  0x00006b2f 
+ 00000044  0x0000004f call  0x00006b29 
+ 00000045  0x00000051 ifetcht  0x00000001 , 0x00000011 
+ 00000046  0x00000052 increase  0x00000001 , 0x00000011 
+ 00000047  0x00000053 force  0x00000000 , 0x00000007 
+ 00000048  0x00000055 set0  0x00000022 , 0x00000000 
+ 00000049  0x00000057 qisolate0  0x00000002 
+ 00000050  0x00000058 branch  0x00000054 , 0x00000001 
+ 00000051  0x00000059 fetch  0x00000001 , 0x00008046 
+ 00000052  0x0000005a set1  0x00000006 , 0x0000003f 
+ 00000053  0x0000005b set1  0x00000007 , 0x0000003f 
+ 00000054  0x0000005c store  0x00000001 , 0x00008046 
+ 00000055  0x0000005d jam  0x00000002 , 0x00008047 
+ 00000056  0x0000005e jam  0x00000082 , 0x00008047 
+ 00000057  0x0000005f set0  0x00000007 , 0x0000003f 
+ 00000058  0x00000060 store  0x00000001 , 0x00008046 
+ 00000059  0x00000061 jam  0x0000008a , 0x00008047 
+ 00000060  0x00000062 nop  0x0000000b 
+ 00000061  0x00000063 jam  0x000000ca , 0x00008047 
+ 00000062  0x00000064 nop  0x00000021 
+ 00000063  0x00000065 jam  0x0000004a , 0x00008047 
+ 00000064  0x00000066 nop  0x0000002c 
+ 00000065  0x00000067 jam  0x000000ca , 0x00008047 
+ 00000066  0x00000068 nop  0x00000016 
+ 00000067  0x00000069 jam  0x0000008a , 0x00008047 
+ 00000068  0x0000006a nop  0x00000021 
+ 00000069  0x0000006b jam  0x00000082 , 0x00008047 
+ 00000070  0x0000006c nop  0x00000001 
+ 00000071  0x0000006d jam  0x00000092 , 0x00008047 
+ 00000072  0x0000006e nop  0x0000000a 
+ 00000073  0x0000006f jam  0x000000b2 , 0x00008047 
+ 00000074  0x00000070 fetch  0x00000001 , 0x00008007 
+ 00000075  0x00000071 jam  0x00000092 , 0x00008047 
+ 00000076  0x00000072 nop  0x00000001 
+ 00000077  0x00000073 jam  0x00000082 , 0x00008047 
+ 00000078  0x00000074 nop  0x00000001 
+ 00000079  0x00000075 qisolate0  0x0000003f 
+ 00000080  0x00000076 branch  0x00000030 , 0x00000001 
+ 00000081  0x00000077 bmark1  0x00000022 , 0x00000054 
+ 00000082  0x00000078 set1  0x00000022 , 0x00000000 
+ 00000083  0x00000079 branch  0x00000031 
+ 00000084  0x0000007c fetch  0x00000002 , 0x00008044 
+ 00000085  0x0000007d increase  0x00000001 , 0x0000003f 
+ 00000086  0x0000007e store  0x00000002 , 0x00008044 
+ 00000087  0x0000007f increase  0x00000001 , 0x00000007 
+ 00000088  0x00000080 compare  0x00000008 , 0x00000007 , 0x0000000f 
+ 00000089  0x00000081 nbranch  0x00000030 , 0x00000001 
+ 00000090  0x00000082 loop  0x0000002d 
+ 00000091  0x00000083 branch  0x00006b26 
+ 00000092  0x00000086 set1  0x00000007 , 0x00000002 
+ 00000093  0x00000087 call  0x00006ee0 
+ 00000094  0x00000088 nsetflag  0x00000001 , 0x00000007 , 0x00000002 
+ 00000095  0x00000089 branch  0x00006eac 
+ 00000096  0x0000008d call  0x000023f0 
+ 00000097  0x0000008e fetch  0x00000003 , 0x000040bd 
+ 00000098  0x0000008f rtn  0x00000034 
+ 00000099  0x00000092 fetch  0x00000001 , 0x00004a7a 
+ 00000100  0x00000093 nrtn  0x00000034 
+ 00000101  0x00000094 fetch  0x00000001 , 0x00004a7b 
+ 00000102  0x00000095 nrtn  0x00000034 
+ 00000103  0x00000096 fetch  0x00000001 , 0x00004720 
+ 00000104  0x00000097 nrtn  0x00000034 
+ 00000105  0x00000098 fetch  0x00000002 , 0x00004750 
+ 00000106  0x00000099 nrtn  0x00000034 
+ 00000107  0x0000009a fetch  0x00000001 , 0x00004a9f 
+ 00000108  0x0000009b nrtn  0x00000034 
+ 00000109  0x0000009c branch  0x00002467 
+ 00000110  0x000000a0 call  0x00003717 
+ 00000111  0x000000a1 call  0x00007384 
+ 00000112  0x000000a2 call  0x00000072 
+ 00000113  0x000000a3 branch  0x00003eb0 
+ 00000114  0x000000a6 rtn  0x0000002b 
+ 00000115  0x000000a7 call  0x000035c8 
+ 00000116  0x000000a8 call  0x0000323a 
+ 00000117  0x000000a9 call  0x00000078 
+ 00000118  0x000000aa jam  0x0000000a , 0x000040a6 
+ 00000119  0x000000ab branch  0x00003ec1 
+ 00000120  0x000000ae call  0x00003ef4 
+ 00000121  0x000000af call  0x0000007b 
+ 00000122  0x000000b0 branch  0x00003edd 
+ 00000123  0x000000b3 setarg  0x00009000 
+ 00000124  0x000000b4 store  0x00000002 , 0x000042f9 
+ 00000125  0x000000b5 fetch  0x00000008 , 0x0000488e 
+ 00000126  0x000000b6 bbit1  0x00000023 , 0x0000680c 
+ 00000127  0x000000b7 setarg  0x000095b8 
+ 00000128  0x000000b8 store  0x00000002 , 0x000048d6 
+ 00000129  0x000000b9 fetch  0x00000008 , 0x0000488e 
+ 00000130  0x000000ba bbit1  0x00000020 , 0x0000680c 
+ 00000131  0x000000bb bbit1  0x00000021 , 0x0000680c 
+ 00000132  0x000000bc setarg  0x000094fc 
+ 00000133  0x000000bd store  0x00000002 , 0x000048d6 
+ 00000134  0x000000be fetch  0x00000008 , 0x0000488e 
+ 00000135  0x000000bf bbit1  0x00000022 , 0x0000680c 
+ 00000136  0x000000c0 setarg  0x00004ae8 
+ 00000137  0x000000c1 store  0x00000002 , 0x000048d6 
+ 00000138  0x000000c2 branch  0x0000680c 
+ 00000139  0x000000c9 fetch  0x00000008 , 0x0000488e 
+ 00000140  0x000000ca bbit1  0x0000000f , 0x0000008e 
+ 00000141  0x000000cb branch  0x00003fd8 
+ 00000142  0x000000ce fetch  0x00000002 , 0x00004abd 
+ 00000143  0x000000d0 fetcht  0x00000002 , 0x00004abf 
+ 00000144  0x000000d1 isub  0x00000002 , 0x0000003e 
+ 00000145  0x000000d2 rtn  0x00000002 
+ 00000146  0x000000d3 fetch  0x00000001 , 0x00004678 
+ 00000147  0x000000d4 beq  0x00000000 , 0x00003fe1 
+ 00000148  0x000000d5 beq  0x00000001 , 0x00003feb 
+ 00000149  0x000000d6 rtn 
+ 00000150  0x000000d9 fetch  0x00000001 , 0x000048b1 
+ 00000151  0x000000da beq  0x00000002 , 0x00000099 
+ 00000152  0x000000db branch  0x00004095 
+ 00000153  0x000000de setarg  0x002c0170 
+ 00000154  0x000000df store  0x00000003 , 0x000048ab 
+ 00000155  0x000000e0 setarg  0x00014a01 
+ 00000156  0x000000e1 istore  0x00000003 , 0x00000005 
+ 00000157  0x000000e2 rtn 
+ 00000158  0x000000e5 ifetch  0x00000008 , 0x00000011 
+ 00000159  0x000000e6 store  0x00000008 , 0x0000064e 
+ 00000160  0x000000e7 call  0x00007057 
+ 00000161  0x000000e8 call  0x000000aa 
+ 00000162  0x000000e9 fetch  0x00000002 , 0x00000654 
+ 00000163  0x000000ea fetcht  0x00000002 , 0x00000650 
+ 00000164  0x000000eb isub  0x00000002 , 0x0000003e 
+ 00000165  0x000000ec ncall  0x00007054 , 0x00000002 
+ 00000166  0x000000ed fetcht  0x00000002 , 0x00000652 
+ 00000167  0x000000ee isub  0x00000002 , 0x0000003e 
+ 00000168  0x000000ef ncall  0x000000ad , 0x00000002 
+ 00000169  0x000000f0 branch  0x00004ed0 
+ 00000170  0x000000f3 fetcht  0x00000001 , 0x00004422 
+ 00000171  0x000000f4 set0  0x00000000 , 0x00000002 
+ 00000172  0x000000f5 branch  0x00007059 
+ 00000173  0x000000f7 fetcht  0x00000001 , 0x00004422 
+ 00000174  0x000000f8 set1  0x00000000 , 0x00000002 
+ 00000175  0x000000f9 branch  0x00007059 
+ 00000176  0x000000fd call  0x000000b2 
+ 00000177  0x000000fe branch  0x00004332 
+ 00000178  0x00000101 call  0x00003ef9 
+ 00000179  0x00000102 setarg  0x00000000 
+ 00000180  0x00000103 store  0x00000002 , 0x0000499e 
+ 00000181  0x00000104 arg  0x0000494e , 0x00000006 
+ 00000182  0x00000105 arg  0x00004963 , 0x00000005 
+ 00000183  0x00000106 arg  0x00000014 , 0x00000039 
+ 00000184  0x00000107 call  0x00007cdc 
+ 00000185  0x00000108 call  0x000043af 
+ 00000186  0x00000109 setarg  0x0000494e 
+ 00000187  0x0000010a store  0x00000002 , 0x00004998 
+ 00000188  0x0000010b setarg  0x00004adc 
+ 00000189  0x0000010c store  0x00000002 , 0x0000499a 
+ 00000190  0x0000010d call  0x000043ad 
+ 00000191  0x0000010e call  0x000043ab 
+ 00000192  0x00000110 fetch  0x00000002 , 0x0000499e 
+ 00000193  0x00000111 increase  0x00000001 , 0x0000003f 
+ 00000194  0x00000112 store  0x00000002 , 0x0000499e 
+ 00000195  0x00000113 bbit1  0x00000009 , 0x000000b2 
+ 00000196  0x00000114 fetcht  0x00000001 , 0x00004911 
+ 00000197  0x00000115 call  0x00006ee0 
+ 00000198  0x00000116 nbranch  0x000000c0 , 0x00000001 
+ 00000199  0x00000117 call  0x000043af 
+ 00000200  0x00000118 branch  0x0000434a 
+ 00000201  0x00000121 fetch  0x00000001 , 0x00004ac2 
+ 00000202  0x00000122 rtn  0x00000034 
+ 00000203  0x00000123 increase  0xffffffff , 0x0000003f 
+ 00000204  0x00000124 store  0x00000001 , 0x00004ac2 
+ 00000205  0x00000125 fetch  0x00000008 , 0x0000488e 
+ 00000206  0x00000126 bbit1  0x00000028 , 0x000000d2 
+ 00000207  0x00000127 fetch  0x00000001 , 0x00004ac2 
+ 00000208  0x00000128 branch  0x00004166 , 0x00000034 
+ 00000209  0x00000129 branch  0x0000416c 
+ 00000210  0x0000012c fetch  0x00000001 , 0x00004ac2 
+ 00000211  0x0000012d branch  0x0000413c , 0x00000034 
+ 00000212  0x0000012e branch  0x0000413a 
+ 00000213  0x00000130 call  0x000040e0 
+ 00000214  0x00000131 call  0x000040cc 
+ 00000215  0x00000132 call  0x000040dd 
+ 00000216  0x00000135 call  0x00004100 
+ 00000217  0x00000136 call  0x000000f2 
+ 00000218  0x00000137 call  0x000041ab 
+ 00000219  0x00000138 call  0x000000c9 
+ 00000220  0x00000139 call  0x0000413e 
+ 00000221  0x0000013a call  0x000001e4 
+ 00000222  0x0000013c call  0x000000f5 
+ 00000223  0x0000013d call  0x0000428f 
+ 00000224  0x0000013e call  0x000042c4 
+ 00000225  0x00000141 call  0x0000326c 
+ 00000226  0x00000142 call  0x00003507 
+ 00000227  0x00000143 call  0x000058f6 
+ 00000228  0x00000144 call  0x00000124 
+ 00000229  0x00000145 call  0x000042bf 
+ 00000230  0x00000148 call  0x00004299 
+ 00000231  0x00000149 call  0x000042a4 
+ 00000232  0x0000014a call  0x0000550d 
+ 00000233  0x0000014b call  0x000042ad 
+ 00000234  0x0000014c call  0x00005510 
+ 00000235  0x0000014d call  0x000042b2 
+ 00000236  0x0000014e call  0x000042a1 
+ 00000237  0x00000150 call  0x00005527 
+ 00000238  0x00000151 call  0x0000429e 
+ 00000239  0x00000152 call  0x000042c9 
+ 00000240  0x00000153 call  0x000042cc 
+ 00000241  0x00000154 branch  0x000042d5 
+ 00000242  0x00000157 fetch  0x00000001 , 0x00004737 
+ 00000243  0x00000158 nrtn  0x00000034 
+ 00000244  0x00000159 branch  0x00004186 
+ 00000245  0x0000015d fetch  0x00000001 , 0x000048a6 
+ 00000246  0x0000015e bbit1  0x00000000 , 0x000000fb 
+ 00000247  0x0000015f call  0x00000113 
+ 00000248  0x00000160 fetch  0x00000001 , 0x000048a6 
+ 00000249  0x00000161 bbit1  0x00000001 , 0x00000107 
+ 00000250  0x00000162 branch  0x00000119 
+ 00000251  0x00000165 fetch  0x00000001 , 0x000048a9 
+ 00000252  0x00000166 sub  0x0000003f , 0x00000064 , 0x0000003e 
+ 00000253  0x00000167 nrtn  0x00000002 
+ 00000254  0x00000168 increase  0x00000001 , 0x0000003f 
+ 00000255  0x00000169 store  0x00000001 , 0x000048a9 
+ 00000256  0x0000016a rtnne  0x00000019 
+ 00000257  0x0000016b jam  0x00000000 , 0x000048a7 
+ 00000258  0x0000016c fetch  0x00000001 , 0x00004678 
+ 00000259  0x0000016d rtneq  0x00000004 
+ 00000260  0x0000016e call  0x0000011f 
+ 00000261  0x0000016f call  0x000048e6 
+ 00000262  0x00000170 branch  0x00004680 
+ 00000263  0x00000173 fetch  0x00000001 , 0x000048aa 
+ 00000264  0x00000174 sub  0x0000003f , 0x00000064 , 0x0000003e 
+ 00000265  0x00000175 nrtn  0x00000002 
+ 00000266  0x00000176 increase  0x00000001 , 0x0000003f 
+ 00000267  0x00000177 store  0x00000001 , 0x000048aa 
+ 00000268  0x00000178 rtnne  0x00000019 
+ 00000269  0x00000179 jam  0x00000000 , 0x000048a8 
+ 00000270  0x0000017a fetch  0x00000001 , 0x00004678 
+ 00000271  0x0000017b rtneq  0x00000004 
+ 00000272  0x0000017c call  0x0000011f 
+ 00000273  0x0000017d call  0x00006824 
+ 00000274  0x0000017e branch  0x00004675 
+ 00000275  0x00000182 jam  0x00000000 , 0x000048a9 
+ 00000276  0x00000183 fetch  0x00000001 , 0x000048a7 
+ 00000277  0x00000184 rtn  0x00000034 
+ 00000278  0x00000185 jam  0x00000000 , 0x000048a7 
+ 00000279  0x00000186 call  0x0000011f 
+ 00000280  0x00000187 branch  0x00006c99 
+ 00000281  0x0000018a jam  0x00000000 , 0x000048aa 
+ 00000282  0x0000018b fetch  0x00000001 , 0x000048a8 
+ 00000283  0x0000018c rtn  0x00000034 
+ 00000284  0x0000018d jam  0x00000000 , 0x000048a8 
+ 00000285  0x0000018e call  0x00004045 
+ 00000286  0x0000018f branch  0x00006c99 
+ 00000287  0x00000192 fetch  0x00000008 , 0x0000488e 
+ 00000288  0x00000193 bbit1  0x0000000f , 0x00005594 
+ 00000289  0x00000194 bbit1  0x0000000e , 0x00004045 
+ 00000290  0x00000195 rtn 
+ 00000291  0x00000198 branch  0x00004677 
+ 00000292  0x0000019b fetch  0x00000001 , 0x000049a0 
+ 00000293  0x0000019c nrtn  0x00000034 
+ 00000294  0x0000019d branch  0x000042b5 
+ 00000295  0x000001a1 fetch  0x00000008 , 0x0000488e 
+ 00000296  0x000001a3 bbit1  0x0000000f , 0x00003f31 
+ 00000297  0x000001a4 branch  0x00003ec8 
+ 00000298  0x000001a7 fetch  0x00000008 , 0x0000488e 
+ 00000299  0x000001a8 bbit0  0x0000003d , 0x00000131 
+ 00000300  0x000001a9 fetcht  0x00000001 , 0x00004440 
+ 00000301  0x000001aa call  0x00004f0a 
+ 00000302  0x000001ab fetcht  0x00000001 , 0x00004440 
+ 00000303  0x000001ac call  0x00006ee0 
+ 00000304  0x000001ad branch  0x0000012a , 0x00000001 
+ 00000305  0x000001af call  0x00004049 
+ 00000306  0x000001b0 arg  0x00000080 , 0x00000002 
+ 00000307  0x000001b1 arg  0x00004678 , 0x00000011 
+ 00000308  0x000001b2 arg  0x00000000 , 0x00000012 
+ 00000309  0x000001b3 call  0x00006cd7 
+ 00000310  0x000001b4 branch  0x00003fa2 
+ 00000311  0x000001b8 copy  0x00000011 , 0x00000006 
+ 00000312  0x000001b9 ifetch  0x00000003 , 0x00000006 
+ 00000313  0x000001ba store  0x00000003 , 0x0000439b 
+ 00000314  0x000001bb beq  0x00000001 , 0x00004919 
+ 00000315  0x000001bc beq  0x00000007 , 0x0000495c 
+ 00000316  0x000001bd beq  0x00000009 , 0x00004938 
+ 00000317  0x000001be beq  0x0000000b , 0x00004952 
+ 00000318  0x000001bf beq  0x00000008 , 0x00004971 
+ 00000319  0x000001c0 beq  0x0000000c , 0x00000144 
+ 00000320  0x000001c1 beq  0x0000000a , 0x0000499f 
+ 00000321  0x000001c2 beq  0x00000012 , 0x000049c5 
+ 00000322  0x000001c3 beq  0x00000052 , 0x000049cb 
+ 00000323  0x000001c4 branch  0x00002b76 
+ 00000324  0x000001c7 ifetch  0x00000002 , 0x00000006 
+ 00000325  0x000001c8 store  0x00000002 , 0x00000693 
+ 00000326  0x000001c9 iforce  0x00000011 
+ 00000327  0x000001ca fetcht  0x00000002 , 0x0000439c 
+ 00000328  0x000001cb fetch  0x00000002 , 0x00004334 
+ 00000329  0x000001cc isub  0x00000002 , 0x0000003e 
+ 00000330  0x000001cd nbranch  0x00002d2e , 0x00000005 
+ 00000331  0x000001d1 branch  0x00004999 
+ 00000332  0x000001d4 fetch  0x00000001 , 0x00004aa0 
+ 00000333  0x000001d5 beq  0x00000002 , 0x0000014f 
+ 00000334  0x000001d6 branch  0x000046cd 
+ 00000335  0x000001d9 fetch  0x00000001 , 0x00004678 
+ 00000336  0x000001da bne  0x00000000 , 0x0000474b 
+ 00000337  0x000001db jam  0x00000002 , 0x000049a9 
+ 00000338  0x000001dc fetch  0x00000001 , 0x000049a6 
+ 00000339  0x000001dd call  0x000046ef , 0x00000034 
+ 00000340  0x000001de jam  0x00000000 , 0x00004aa0 
+ 00000341  0x000001df setarg  0x00000003 
+ 00000342  0x000001e0 store  0x00000003 , 0x00004a6f 
+ 00000343  0x000001e1 branch  0x000046e6 
+ 00000344  0x000001e4 copy  0x00000002 , 0x0000003f 
+ 00000345  0x000001e5 jam  0x00000005 , 0x00004a6f 
+ 00000346  0x000001e6 fetcht  0x00000001 , 0x000049a6 
+ 00000347  0x000001e7 sub  0x00000002 , 0x00000000 , 0x0000003e 
+ 00000348  0x000001e8 branch  0x0000014f , 0x00000005 
+ 00000349  0x000001e9 beq  0x000000e8 , 0x00000176 
+ 00000350  0x000001ea beq  0x000000e9 , 0x0000017c 
+ 00000351  0x000001eb beq  0x000000ea , 0x00000180 
+ 00000352  0x000001ec beq  0x000000eb , 0x00000184 
+ 00000353  0x000001ed beq  0x000000ec , 0x00000188 
+ 00000354  0x000001ee beq  0x000000ed , 0x0000018c 
+ 00000355  0x000001ef beq  0x000000ee , 0x00000190 
+ 00000356  0x000001f0 beq  0x000000ef , 0x00000194 
+ 00000357  0x000001f2 beq  0x000000f0 , 0x00000198 
+ 00000358  0x000001f3 beq  0x000000f1 , 0x0000019c 
+ 00000359  0x000001f4 beq  0x000000f2 , 0x000001a0 
+ 00000360  0x000001f5 beq  0x000000f3 , 0x000001a4 
+ 00000361  0x000001f6 beq  0x000000f4 , 0x000001a8 
+ 00000362  0x000001f7 beq  0x000000f5 , 0x000001ac 
+ 00000363  0x000001f8 beq  0x000000f6 , 0x000001b0 
+ 00000364  0x000001f9 beq  0x000000f7 , 0x000001b7 
+ 00000365  0x000001fb beq  0x000000f8 , 0x000001bf 
+ 00000366  0x000001fc beq  0x000000f9 , 0x000001c3 
+ 00000367  0x000001fd beq  0x000000fa , 0x000001c7 
+ 00000368  0x000001ff beq  0x000000fb , 0x000001cb 
+ 00000369  0x00000200 beq  0x000000fc , 0x000001cf 
+ 00000370  0x00000201 beq  0x000000fd , 0x000001d3 
+ 00000371  0x00000202 beq  0x000000fe , 0x000001d7 
+ 00000372  0x00000204 beq  0x000000ff , 0x000001db 
+ 00000373  0x00000205 branch  0x000046e6 
+ 00000374  0x00000208 fetch  0x00000001 , 0x00004678 
+ 00000375  0x00000209 bne  0x00000000 , 0x00004715 
+ 00000376  0x0000020a setarg  0x00000183 
+ 00000377  0x0000020d store  0x00000002 , 0x00004a70 
+ 00000378  0x0000020e jam  0x00000003 , 0x00004a6f 
+ 00000379  0x0000020f branch  0x000046e6 
+ 00000380  0x00000212 fetch  0x00000001 , 0x00004678 
+ 00000381  0x00000213 bne  0x00000000 , 0x00004718 
+ 00000382  0x00000214 setarg  0x000000ea 
+ 00000383  0x00000215 branch  0x00000179 
+ 00000384  0x00000218 fetch  0x00000001 , 0x00004678 
+ 00000385  0x00000219 bne  0x00000000 , 0x0000471a 
+ 00000386  0x0000021a setarg  0x000000e9 
+ 00000387  0x0000021b branch  0x00000179 
+ 00000388  0x0000021e fetch  0x00000001 , 0x00004678 
+ 00000389  0x0000021f bne  0x00000000 , 0x0000471c 
+ 00000390  0x00000220 setarg  0x000000e2 
+ 00000391  0x00000221 branch  0x00000179 
+ 00000392  0x00000224 fetch  0x00000001 , 0x00004678 
+ 00000393  0x00000225 bne  0x00000000 , 0x0000471e 
+ 00000394  0x00000226 setarg  0x000000b6 
+ 00000395  0x00000227 branch  0x00000179 
+ 00000396  0x0000022a fetch  0x00000001 , 0x00004678 
+ 00000397  0x0000022b bne  0x00000000 , 0x00004720 
+ 00000398  0x0000022c setarg  0x000000b5 
+ 00000399  0x0000022d branch  0x00000179 
+ 00000400  0x00000230 fetch  0x00000001 , 0x00004678 
+ 00000401  0x00000231 bne  0x00000000 , 0x00004722 
+ 00000402  0x00000232 setarg  0x000000cd 
+ 00000403  0x00000233 branch  0x00000179 
+ 00000404  0x00000236 fetch  0x00000001 , 0x00004678 
+ 00000405  0x00000237 bne  0x00000000 , 0x00004724 
+ 00000406  0x00000238 setarg  0x000000b7 
+ 00000407  0x00000239 branch  0x00000179 
+ 00000408  0x0000023c fetch  0x00000001 , 0x00004678 
+ 00000409  0x0000023d bne  0x00000000 , 0x00004726 
+ 00000410  0x0000023e setarg  0x00000223 
+ 00000411  0x0000023f branch  0x00000179 
+ 00000412  0x00000242 fetch  0x00000001 , 0x00004678 
+ 00000413  0x00000243 bne  0x00000000 , 0x00004728 
+ 00000414  0x00000244 setarg  0x0000018a 
+ 00000415  0x00000245 branch  0x00000179 
+ 00000416  0x00000248 fetch  0x00000001 , 0x00004678 
+ 00000417  0x00000249 bne  0x00000000 , 0x0000472a 
+ 00000418  0x0000024a setarg  0x00000194 
+ 00000419  0x0000024b branch  0x00000179 
+ 00000420  0x0000024e fetch  0x00000001 , 0x00004678 
+ 00000421  0x0000024f bne  0x00000000 , 0x0000472c 
+ 00000422  0x00000250 setarg  0x0000022a 
+ 00000423  0x00000251 branch  0x00000179 
+ 00000424  0x00000254 fetch  0x00000001 , 0x00004678 
+ 00000425  0x00000255 bne  0x00000000 , 0x0000472e 
+ 00000426  0x00000256 setarg  0x00000192 
+ 00000427  0x00000257 branch  0x00000179 
+ 00000428  0x0000025a fetch  0x00000001 , 0x00004678 
+ 00000429  0x0000025b bne  0x00000000 , 0x00004730 
+ 00000430  0x0000025c setarg  0x00000221 
+ 00000431  0x0000025d branch  0x00000179 
+ 00000432  0x00000260 fetch  0x00000001 , 0x00004678 
+ 00000433  0x00000261 bne  0x00000000 , 0x00004732 
+ 00000434  0x00000262 fetch  0x00000001 , 0x00004aa1 
+ 00000435  0x00000263 beq  0x00000002 , 0x00000198 
+ 00000436  0x00000264 beq  0x00000003 , 0x00000198 
+ 00000437  0x00000265 setarg  0x00000224 
+ 00000438  0x00000266 branch  0x00000179 
+ 00000439  0x00000269 fetch  0x00000001 , 0x00004678 
+ 00000440  0x0000026a bne  0x00000000 , 0x00004737 
+ 00000441  0x0000026b fetch  0x00000001 , 0x00004aa1 
+ 00000442  0x0000026c beq  0x00000001 , 0x000001bd 
+ 00000443  0x0000026d setarg  0x000001ae 
+ 00000444  0x0000026e branch  0x00000179 
+ 00000445  0x00000271 setarg  0x00000307 
+ 00000446  0x00000272 branch  0x00000179 
+ 00000447  0x00000275 fetch  0x00000001 , 0x00004678 
+ 00000448  0x00000276 bne  0x00000000 , 0x0000473d 
+ 00000449  0x00000277 setarg  0x00000070 
+ 00000450  0x00000278 branch  0x00000179 
+ 00000451  0x0000027b fetch  0x00000001 , 0x00004678 
+ 00000452  0x0000027c bne  0x00000000 , 0x0000473f 
+ 00000453  0x0000027d setarg  0x0000006f 
+ 00000454  0x0000027e branch  0x00000179 
+ 00000455  0x00000281 fetch  0x00000001 , 0x00004678 
+ 00000456  0x00000282 bne  0x00000000 , 0x00004741 
+ 00000457  0x00000283 setarg  0x00000030 
+ 00000458  0x00000284 branch  0x00000179 
+ 00000459  0x00000287 fetch  0x00000001 , 0x00004678 
+ 00000460  0x00000288 bne  0x00000000 , 0x00004743 
+ 00000461  0x00000289 setarg  0x000000b8 
+ 00000462  0x0000028a branch  0x00000179 
+ 00000463  0x0000028d fetch  0x00000001 , 0x00004678 
+ 00000464  0x0000028e bne  0x00000000 , 0x00004745 
+ 00000465  0x0000028f setarg  0x00000225 
+ 00000466  0x00000290 branch  0x00000179 
+ 00000467  0x00000293 fetch  0x00000001 , 0x00004678 
+ 00000468  0x00000294 bne  0x00000000 , 0x00004747 
+ 00000469  0x00000295 setarg  0x00000226 
+ 00000470  0x00000296 branch  0x00000179 
+ 00000471  0x00000299 fetch  0x00000001 , 0x00004678 
+ 00000472  0x0000029a bne  0x00000000 , 0x00004749 
+ 00000473  0x0000029b setarg  0x00000227 
+ 00000474  0x0000029c branch  0x00000179 
+ 00000475  0x0000029f fetch  0x00000001 , 0x00004678 
+ 00000476  0x000002a0 bne  0x00000000 , 0x00004752 
+ 00000477  0x000002a1 jam  0x00000002 , 0x00004a6f 
+ 00000478  0x000002a2 setarg  0x00000002 
+ 00000479  0x000002a3 store  0x00000001 , 0x00004a70 
+ 00000480  0x000002a4 branch  0x000046e6 
+ 00000481  0x000002a5 beq  0x000000ed , 0x00004720 
+ 00000482  0x000002a9 call  0x000047b3 
+ 00000483  0x000002aa branch  0x0000379c 
+ 00000484  0x000002ad fetch  0x00000001 , 0x00004678 
+ 00000485  0x000002ae beq  0x00000000 , 0x000001e7 
+ 00000486  0x000002af branch  0x00004148 
+ 00000487  0x000002b2 fetch  0x00000002 , 0x000045ef 
+ 00000488  0x000002b3 branch  0x000001ea , 0x00000034 
+ 00000489  0x000002b4 branch  0x0000414d 
+ 00000490  0x000002b7 fetch  0x00000002 , 0x000045f5 
+ 00000491  0x000002b8 nbranch  0x0000414d , 0x00000034 
+ 00000492  0x000002b9 branch  0x00004172 
+ 00000493  0x000002bc call  0x0000442e 
+ 00000494  0x000002bd call  0x00004435 
+ 00000495  0x000002be call  0x000001f2 
+ 00000496  0x000002bf call  0x00004564 
+ 00000497  0x000002c0 branch  0x000043de 
+ 00000498  0x000002c3 fetch  0x00000001 , 0x000049aa 
+ 00000499  0x000002c4 beq  0x000000af , 0x000001f5 
+ 00000500  0x000002c5 branch  0x000044dd 
+ 00000501  0x000002c8 jam  0x00000003 , 0x00004a9d 
+ 00000502  0x000002c9 jam  0x00000012 , 0x00004a9e 
+ 00000503  0x000002ca branch  0x0000453e 
Index: costumer/Bore/keyboard_ck801_only_24g/output/bt_program23.list
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/bt_program23.list	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/bt_program23.list	(working copy)
@@ -0,0 +1,586 @@
+              include "bt_format "
+              org 0x0000
+0x0 000019 bbit1 8 ,pf_patch_ext 
+0x1 000020 beq patch03_1 ,p_set_tx_power 
+0x2 000021 beq patch03_2 ,p_initialize_radio_cont 
+0x3 000022 beq patch05_0 ,p_lpm_dispatch 
+0x4 000023 beq patch07_6 ,p_keyboard_setting_config_next 
+0x5 000024 beq patch08_0 ,p_keyboard_store_device_info 
+0x6 000025 beq patch08_3 ,p_keyboard_bb_event_timer 
+0x7 000026 beq patch08_4 ,p_keyboard_adc_vol_init 
+0x8 000027 beq patch09_4 ,p_kscan_dispatch 
+0x9 000028 beq patch09_6 ,p_keyboard_keyvalue_change 
+0xa 000029 beq patch10_2 ,p_mouse_adc_bat_percent_lowpower_out 
+0xb 000030 beq patch0a_6 ,p_keyboard_long_button_bt_discovery 
+0xc 000031 beq patch0b_1 ,p_keyboard_motion_data_check 
+0xd 000032 beq patch0b_4 ,p_keyboard_value_tpye_consumer_set 
+0xe 000033 beq patch0d_2 ,p_keyboard_le_parse_att 
+0xf 000034 beq patch0f_4 ,p_keyboard_app_enter_hibernate 
+0x10 000035 beq patch1d_1 ,p_otp_write 
+0x11 000036 beq patch1d_2 ,p_otp_read_data 
+0x12 000037 beq patch19_7 ,p_keyboard_init 
+0x13 000038 beq patch1f_2 ,p_gpio_set_wake_by_current_state 
+0x14 000039 branch assert 
+:      000041 pf_patch_ext:
+0x15 000042 rtneq patch3f_7 
+0x16 000043 beq patch38_2 ,keyboard_g24_transmit_no_interrupt 
+0x17 000044 branch assert 
+:      000047 p_set_tx_power:
+0x18 000048 fetch 1 ,mem_tx_power 
+0x19 000049 beq tx_power_f30db ,p_set_tx_power_f30db 
+0x1a 000050 branch set_tx_power + 2 
+:      000052 p_set_tx_power_f30db:
+0x1b 000053 jam 0x17 ,0x8a14 
+0x1c 000054 setarg 0x251305 
+0x1d 000055 store 3 ,0x8a60 
+0x1e 000056 branch set_tx_power_8a63_28 
+:      000058 p_initialize_radio_cont:
+0x1f 000059 until null ,lpo_edge 
+0x20 000060 jam 0x0d ,0x8946 
+0x21 000061 jam 0x10 ,0x896f 
+0x22 000062 jam 0xcd ,0x8a13 
+0x23 000064 fetch 1 ,0x8a06 
+0x24 000065 and pdata ,0xfc ,pdata 
+0x25 000066 store 1 ,0x8a06 
+0x26 000067 branch initialize_radio_cont + 6 
+:      000069 p_otp_read_data:
+0x27 000070 call enable_otp_read 
+0x28 000071 call otp_read_data1 
+0x29 000072 branch otp_disable_chgpump 
+:      000075 p_otp_write:
+0x2a 000077 call otp_enable_chgpump65 
+0x2b 000078 call otp_set_addr 
+0x2c 000079 call otp_reset 
+:      000080 p_otp_program:
+0x2d 000081 ifetcht 1 ,rega 
+0x2e 000082 increase 1 ,rega 
+0x2f 000083 force 0 ,queue 
+:      000084 p_otp_program_bit:
+0x30 000085 set0 mark_otp_write ,mark 
+:      000086 p_otp_program_bit2:
+0x31 000087 qisolate0 temp 
+0x32 000088 branch p_otp_skip_0 ,true 
+0x33 000089 fetch 1 ,core_otp_din 
+0x34 000090 set1 6 ,pdata 
+0x35 000091 set1 7 ,pdata 
+0x36 000092 store 1 ,core_otp_din 
+0x37 000093 jam 0x02 ,core_otp_ctrl 
+0x38 000094 jam 0x82 ,core_otp_ctrl 
+0x39 000095 set0 7 ,pdata 
+0x3a 000096 store 1 ,core_otp_din 
+0x3b 000097 jam 0x8a ,core_otp_ctrl 
+0x3c 000098 nop 11 
+0x3d 000099 jam 0xca ,core_otp_ctrl 
+0x3e 000100 nop 33 
+0x3f 000101 jam 0x4a ,core_otp_ctrl 
+0x40 000102 nop 44 
+0x41 000103 jam 0xca ,core_otp_ctrl 
+0x42 000104 nop 22 
+0x43 000105 jam 0x8a ,core_otp_ctrl 
+0x44 000106 nop 33 
+0x45 000107 jam 0x82 ,core_otp_ctrl 
+0x46 000108 nop 1 
+0x47 000109 jam 0x92 ,core_otp_ctrl 
+0x48 000110 nop 10 
+0x49 000111 jam 0xb2 ,core_otp_ctrl 
+0x4a 000112 fetch 1 ,core_otp_rdata 
+0x4b 000113 jam 0x92 ,core_otp_ctrl 
+0x4c 000114 nop 1 
+0x4d 000115 jam 0x82 ,core_otp_ctrl 
+0x4e 000116 nop 1 
+0x4f 000117 qisolate0 pdata 
+0x50 000118 branch p_otp_program_bit ,true 
+0x51 000119 bmark1 mark_otp_write ,p_otp_skip_0 
+0x52 000120 set1 mark_otp_write ,mark 
+0x53 000121 branch p_otp_program_bit2 
+:      000123 p_otp_skip_0:
+0x54 000124 fetch 2 ,core_otp_addr 
+0x55 000125 increase 1 ,pdata 
+0x56 000126 store 2 ,core_otp_addr 
+0x57 000127 increase 1 ,queue 
+0x58 000128 compare 8 ,queue ,0xf 
+0x59 000129 nbranch p_otp_program_bit ,true 
+0x5a 000130 loop p_otp_program 
+0x5b 000131 branch otp_disable_chgpump 
+:      000133 p_gpio_set_wake_by_current_state:
+0x5c 000134 set1 gpio_active_bit ,temp 
+0x5d 000135 call gpio_get_bit 
+0x5e 000136 nsetflag true ,gpio_active_bit ,temp 
+0x5f 000137 branch gpio_set_wake 
+:      000140 p_lpm_dispatch:
+0x60 000141 call lpo_calibration 
+0x61 000142 fetch 3 ,mem_clks_per_lpo 
+0x62 000143 rtn blank 
+0x63 000146 fetch 1 ,mem_keyboard_fn_flag 
+0x64 000147 nrtn blank 
+0x65 000148 fetch 1 ,mem_keyboard_control_key_flag 
+0x66 000149 nrtn blank 
+0x67 000150 fetch 1 ,mem_device_direct_timer 
+0x68 000151 nrtn blank 
+0x69 000152 fetch 2 ,mem_device_discovery_timer 
+0x6a 000153 nrtn blank 
+0x6b 000154 fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+0x6c 000155 nrtn blank 
+0x6d 000156 branch lpm_dispatch + 4 
+:      000158 p_keyboard_init:
+0x6e 000160 call app_param_init 
+0x6f 000161 call enable_authrom 
+0x70 000162 call p_keyboard_setting_config 
+0x71 000163 branch keyboard_init + 2 
+:      000165 p_keyboard_setting_config:
+0x72 000166 rtn wake 
+0x73 000167 call g24_transmit_init 
+0x74 000168 call g24_chmap_param_init 
+0x75 000169 call p_keyboard_param_init 
+0x76 000170 jam 0x0a ,mem_lpm_overhead 
+0x77 000171 branch keyboard_setting_config + 4 
+:      000173 p_keyboard_param_init:
+0x78 000174 call keyboard_compare_addr_init 
+0x79 000175 call p_keyboard_param_common_init 
+0x7a 000176 branch keyboard_param_init + 2 
+:      000178 p_keyboard_param_common_init:
+0x7b 000179 setarg mouse_ble_att_list_addr 
+0x7c 000180 store 2 ,mem_ui_le_uuid_table 
+0x7d 000181 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x7e 000182 bbit1 keyboard_enable_mouse ,hid_device_param_common_init 
+0x7f 000183 setarg keyboard_ble_hid_map_n_key_rollover_keyboard_addr 
+0x80 000184 store 2 ,mem_keyboard_le_hid_map 
+0x81 000185 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x82 000186 bbit1 keyboard_enable_26_n_key_rollover ,hid_device_param_common_init 
+0x83 000187 bbit1 keyboard_enable_full_n_key_rollover ,hid_device_param_common_init 
+0x84 000188 setarg keyboard_ble_hid_map_magic_keyboard_addr 
+0x85 000189 store 2 ,mem_keyboard_le_hid_map 
+0x86 000190 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x87 000191 bbit1 keyboard_enable_magic_keyboard ,hid_device_param_common_init 
+0x88 000192 setarg mem_keyboard_le_table 
+0x89 000193 store 2 ,mem_keyboard_le_hid_map 
+0x8a 000194 branch hid_device_param_common_init 
+:      000200 p_keyboard_store_device_info:
+0x8b 000201 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x8c 000202 bbit1 keyboard_enable_otp ,p_keyboard_store_otp_device_info 
+0x8d 000203 branch keyboard_store_device_info + 1 
+:      000205 p_keyboard_store_otp_device_info:
+0x8e 000206 fetch 2 ,mem_otp_read_retention_offset 
+0x8f 000208 fetcht 2 ,mem_otp_read_retention_max_size 
+0x90 000209 isub temp ,null 
+0x91 000210 rtn positive 
+0x92 000211 fetch 1 ,mem_device_flag 
+0x93 000212 beq mode_24g_device ,keyboard_store_otp_device_info_g24 
+0x94 000213 beq mode_bt_device1 ,keyboard_store_otp_device_info_ble 
+0x95 000214 rtn 
+:      000216 p_keyboard_adc_vol_init:
+0x96 000217 fetch 1 ,mem_keyboard_power_type 
+0x97 000218 beq keyboard_battary_4v2 ,p_keyboard_adc_vol_4v2_init 
+0x98 000219 branch keyboard_adc_vol_init + 2 
+:      000221 p_keyboard_adc_vol_4v2_init:
+0x99 000222 setarg 0x2c0170 
+0x9a 000223 store 3 ,mem_keyboard_vdd_full_vol 
+0x9b 000224 setarg 0x014a01 
+0x9c 000225 istore 3 ,contw 
+0x9d 000226 rtn 
+:      000228 p_mouse_adc_bat_percent_lowpower_out:
+0x9e 000229 ifetch 8 ,rega 
+0x9f 000230 store 8 ,mem_pdatatemp 
+0xa0 000231 call adc_clear_no_power_flag 
+0xa1 000232 call p_adc_clear_low_power_flag 
+0xa2 000233 fetch 2 ,mem_pdatatemp + 6 
+0xa3 000234 fetcht 2 ,mem_pdatatemp + 2 
+0xa4 000235 isub temp ,null 
+0xa5 000236 ncall adc_set_no_power_flag ,positive 
+0xa6 000237 fetcht 2 ,mem_pdatatemp + 4 
+0xa7 000238 isub temp ,null 
+0xa8 000239 ncall p_adc_set_low_power_flag ,positive 
+0xa9 000240 branch mouse_adc_bat_level_set 
+:      000242 p_adc_clear_low_power_flag:
+0xaa 000243 fetcht 1 ,mem_adc_power_flag 
+0xab 000244 set0 0 ,temp 
+0xac 000245 branch adc_set_power_flag 
+:      000246 p_adc_set_low_power_flag:
+0xad 000247 fetcht 1 ,mem_adc_power_flag 
+0xae 000248 set1 0 ,temp 
+0xaf 000249 branch adc_set_power_flag 
+:      000252 p_kscan_dispatch:
+0xb0 000253 call p_keyboard_keyscan 
+0xb1 000254 branch kscan_dispatch + 2 
+:      000256 p_keyboard_keyscan:
+0xb2 000257 call keyboard_gpio_init 
+0xb3 000258 setarg 0 
+0xb4 000259 store 2 ,mem_keyscan_exmcu_wait_wake_count 
+0xb5 000260 arg mem_keyscan_value_current ,contr 
+0xb6 000261 arg mem_keyscan_value_check ,contw 
+0xb7 000262 arg 20 ,loopcnt 
+0xb8 000263 call memcpy 
+0xb9 000264 call keyboard_stb_state_low 
+0xba 000265 setarg mem_keyscan_value_current 
+0xbb 000266 store 2 ,mem_keyscan_value_ptr 
+0xbc 000267 setarg mem_keyscan_exmcu_value_new 
+0xbd 000268 store 2 ,mem_keyscan_exmcu_value_ptr 
+0xbe 000269 call keyboard_stb_state_high 
+0xbf 000270 call keyboard_clk_input 
+:      000271 p_keyboard_keyscan_exmcu_start_check:
+0xc0 000272 fetch 2 ,mem_keyscan_exmcu_wait_wake_count 
+0xc1 000273 increase 1 ,pdata 
+0xc2 000274 store 2 ,mem_keyscan_exmcu_wait_wake_count 
+0xc3 000275 bbit1 9 ,p_keyboard_keyscan 
+0xc4 000276 fetcht 1 ,mem_mcu_clk_gpio 
+0xc5 000277 call gpio_get_bit 
+0xc6 000278 nbranch p_keyboard_keyscan_exmcu_start_check ,true 
+0xc7 000279 call keyboard_stb_state_low 
+0xc8 000280 branch keyboard_keyscan_wait_wake_next 
+:      000288 p_keyboard_device_poweron_timer:
+0xc9 000289 fetch 1 ,mem_keyboard_device_poweron_timer 
+0xca 000290 rtn blank 
+0xcb 000291 increase -1 ,pdata 
+0xcc 000292 store 1 ,mem_keyboard_device_poweron_timer 
+0xcd 000293 fetch keyboard_flag_len ,mem_keyboard_flag 
+0xce 000294 bbit1 keyboard_enable_030_power_led ,p_keyboard_device_poweron_030_led 
+0xcf 000295 fetch 1 ,mem_keyboard_device_poweron_timer 
+0xd0 000296 branch keyboard_device_led_off ,blank 
+0xd1 000297 branch keyboard_device_led_on 
+:      000299 p_keyboard_device_poweron_030_led:
+0xd2 000300 fetch 1 ,mem_keyboard_device_poweron_timer 
+0xd3 000301 branch keyboard_power_led_off ,blank 
+0xd4 000302 branch keyboard_power_led_on 
+:      000303 p_keyboard_bb_event_timer:
+0xd5 000304 call keyboard_low_voltage_param_set 
+0xd6 000305 call keyboard_adc_read 
+0xd7 000306 call keyboard_adc_gpio_set_before_hibernate 
+0xd8 000309 call keyboard_low_voltage_led_timer 
+0xd9 000310 call p_keyboard_num_capslock_led_on_timer 
+0xda 000311 call keyboard_rgb_on_timer 
+0xdb 000312 call p_keyboard_device_poweron_timer 
+0xdc 000313 call keyboard_mode_led_timer 
+0xdd 000314 call p_keyboard_device_pair_led_timer 
+0xde 000316 call p_keyboard_key_press_timer 
+0xdf 000317 call keyboard_commbination_key_process 
+0xe0 000318 call keyboard_same_key_long_press_timer 
+0xe1 000321 call g24_pair_timeout_timer 
+0xe2 000322 call g24_reconn_timeout_timer 
+0xe3 000323 call mouse_24g_long_sleep_param_update_timer 
+0xe4 000324 call p_keyboard_24g_repeat_send_data 
+0xe5 000325 call keyboard_24g_led_status_get_timer 
+0xe6 000328 call keyboard_check_discovery_timeout_timer 
+0xe7 000329 call keyboard_check_direct_timeout_timer 
+0xe8 000330 call mouse_le_enable_att_list_timer 
+0xe9 000331 call keyboard_le_battery_updata_timer 
+0xea 000332 call mouse_le_send_smp_security_request_timer 
+0xeb 000333 call keyboard_le_send_conn_param_update_timer 
+0xec 000334 call keyboard_le_auto_recognize_timer 
+0xed 000336 call mouse_current_mult_update_timer 
+0xee 000337 call keyboard_store_information_delay_timer 
+0xef 000338 call keyboard_commbination_delay_release_timer 
+0xf0 000339 call keyboard_usb_updata_timer 
+0xf1 000340 branch keyboard_check_no_data_timeout_timer 
+:      000342 p_keyboard_num_capslock_led_on_timer:
+0xf2 000343 fetch 1 ,mem_24g_shutdown_flag 
+0xf3 000344 nrtn blank 
+0xf4 000345 branch keyboard_num_capslock_led_on_timer 
+:      000348 p_keyboard_key_press_timer:
+0xf5 000349 fetch 1 ,mem_keyboard_switch_device_flag 
+0xf6 000350 bbit1 keyboard_flag_g24_device_button ,p_keyboard_device_select_g24_press_timer 
+0xf7 000351 call p_keyboard_device_select_g24_nopress_timer 
+0xf8 000352 fetch 1 ,mem_keyboard_switch_device_flag 
+0xf9 000353 bbit1 keyboard_flag_bt_device_button ,p_keyboard_device_select_bt_press_timer 
+0xfa 000354 branch p_keyboard_device_select_bt_nopress_timer 
+:      000356 p_keyboard_device_select_g24_press_timer:
+0xfb 000357 fetch 1 ,mem_keyboard_switch_g24_press_timer 
+0xfc 000358 sub pdata ,100 ,null 
+0xfd 000359 nrtn positive 
+0xfe 000360 increase 1 ,pdata 
+0xff 000361 store 1 ,mem_keyboard_switch_g24_press_timer 
+0x100 000362 rtnne 25 
+0x101 000363 jam 0 ,mem_keyboard_switch_g24_enable 
+0x102 000364 fetch 1 ,mem_device_flag 
+0x103 000365 rtneq mode_usb_device 
+0x104 000366 call p_keyboard_store_device_number 
+0x105 000367 call keyboard_stop_bluetooth_mode 
+0x106 000368 branch keyboard_24g_start_pair_mode 
+:      000370 p_keyboard_device_select_bt_press_timer:
+0x107 000371 fetch 1 ,mem_keyboard_switch_bt_press_timer 
+0x108 000372 sub pdata ,100 ,null 
+0x109 000373 nrtn positive 
+0x10a 000374 increase 1 ,pdata 
+0x10b 000375 store 1 ,mem_keyboard_switch_bt_press_timer 
+0x10c 000376 rtnne 25 
+0x10d 000377 jam 0 ,mem_keyboard_switch_bt_enable 
+0x10e 000378 fetch 1 ,mem_device_flag 
+0x10f 000379 rtneq mode_usb_device 
+0x110 000380 call p_keyboard_store_device_number 
+0x111 000381 call hid_device_le_send_empty_packet 
+0x112 000382 branch keyboard_long_button_bt_discovery 
+:      000385 p_keyboard_device_select_g24_nopress_timer:
+0x113 000386 jam 0 ,mem_keyboard_switch_g24_press_timer 
+0x114 000387 fetch 1 ,mem_keyboard_switch_g24_enable 
+0x115 000388 rtn blank 
+0x116 000389 jam 0 ,mem_keyboard_switch_g24_enable 
+0x117 000390 call p_keyboard_store_device_number 
+0x118 000391 branch soft_reset_chip 
+:      000393 p_keyboard_device_select_bt_nopress_timer:
+0x119 000394 jam 0 ,mem_keyboard_switch_bt_press_timer 
+0x11a 000395 fetch 1 ,mem_keyboard_switch_bt_enable 
+0x11b 000396 rtn blank 
+0x11c 000397 jam 0 ,mem_keyboard_switch_bt_enable 
+0x11d 000398 call keyboard_store_device_number 
+0x11e 000399 branch soft_reset_chip 
+:      000401 p_keyboard_store_device_number:
+0x11f 000402 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x120 000403 bbit1 keyboard_enable_otp ,mouse_write_otp_device_flag 
+0x121 000404 bbit1 keyboard_enable_eeprom ,keyboard_store_device_number 
+0x122 000405 rtn 
+:      000407 p_keyboard_long_button_bt_discovery:
+0x123 000408 branch keyboard_long_button_bt_discovery + 2 
+:      000410 p_keyboard_24g_repeat_send_data:
+0x124 000411 fetch 1 ,mem_same_keyvalue_timerout_flag 
+0x125 000412 nrtn blank 
+0x126 000413 branch keyboard_24g_repeat_send_data 
+:      000416 p_keyboard_setting_config_next:
+0x127 000417 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x128 000419 bbit1 keyboard_enable_otp ,keyboard_load_otp_info 
+0x129 000420 branch keyboard_setting_config + 11 
+:      000422 p_keyboard_load_2k_eeprom_info:
+0x12a 000423 fetch keyboard_flag_len ,mem_keyboard_flag 
+0x12b 000424 bbit0 keyboard_enable_sda_multi_r_line ,p_keyboard_load_2k_eeprom_device_info_next 
+0x12c 000425 fetcht 1 ,mem_eeprom_sda_gpio 
+0x12d 000426 call device_gpio_config_input_pu 
+0x12e 000427 fetcht 1 ,mem_eeprom_sda_gpio 
+0x12f 000428 call gpio_get_bit 
+0x130 000429 branch p_keyboard_load_2k_eeprom_info ,true 
+:      000430 p_keyboard_load_2k_eeprom_device_info_next:
+0x131 000431 call keyboard_eeprom_init 
+0x132 000432 arg 128 ,temp 
+0x133 000433 arg mem_device_flag ,rega 
+0x134 000434 arg keyboard_device_number_eeprom_offect ,regb 
+0x135 000435 call iicd_read_eep_data 
+0x136 000436 branch keyboard_load_info_check 
+:      000439 p_keyboard_le_parse_att:
+0x137 000440 copy rega ,contr 
+0x138 000441 ifetch 3 ,contr 
+0x139 000442 store 3 ,mem_le_att_opcode 
+0x13a 000443 beq attop_error_response ,keyboard_le_send_att_find_by_type_value_request_mac 
+0x13b 000444 beq attop_find_by_type_value_response ,keyboard_le_parse_att_find_by_type_value_rsp 
+0x13c 000445 beq attop_read_by_type_response ,keyboard_le_send_att_read_by_type_rsp_mac 
+0x13d 000446 beq attop_read_response ,keyboard_le_parse_att_manu_resp 
+0x13e 000447 beq attop_read_by_type_request ,keyboard_le_parse_att_read_by_type_request 
+0x13f 000448 beq attop_read_blob_request ,p_keyboard_le_parse_att_read_blob_request 
+0x140 000449 beq attop_read_request ,keyboard_le_parse_att_read_request 
+0x141 000450 beq attop_write_request ,keyboard_le_parse_att_write_request 
+0x142 000451 beq attop_write_command ,keyboard_le_parse_att_write_command 
+0x143 000452 branch le_parse_att2 
+:      000454 p_keyboard_le_parse_att_read_blob_request:
+0x144 000455 ifetch 2 ,contr 
+0x145 000456 store 2 ,mem_le_att_offset 
+0x146 000457 iforce rega 
+0x147 000458 fetcht 2 ,mem_le_att_handle 
+0x148 000459 fetch 2 ,mem_le_pairing_handle 
+0x149 000460 isub temp ,null 
+0x14a 000461 nbranch le_send_att_read_blob_response ,zero 
+0x14b 000465 branch keyboard_le_send_att_read_blob_response 
+:      000467 p_keyboard_motion_data_check:
+0x14c 000468 fetch 1 ,mem_keyboard_consumer_key_status 
+0x14d 000469 beq keyboard_consumer_key_release ,p_keyboard_value_consumer_release 
+0x14e 000470 branch keyboard_motion_data_check + 3 
+:      000471 p_keyboard_value_consumer_release:
+:      000472 p_keyboard_value_consumer_all_key_release:
+0x14f 000473 fetch 1 ,mem_device_flag 
+0x150 000474 bne mode_24g_device ,keyboard_value_consumer_release 
+0x151 000475 jam 2 ,mem_keyboard_data_change_flag 
+0x152 000476 fetch 1 ,mem_keyboard_all_press_key_count 
+0x153 000477 call keyboard_value_release_all_key ,blank 
+0x154 000478 jam keyboard_consumer_key_standby ,mem_keyboard_consumer_key_status 
+0x155 000479 setarg hid_reportid_consumer_key 
+0x156 000480 store 3 ,mem_keyboard_tx_data 
+0x157 000481 branch keyboard_motion_data_check_next 
+:      000483 p_keyboard_value_tpye_consumer_set:
+0x158 000484 copy temp ,pdata 
+0x159 000485 jam hid_reportid_bit_consumer_key ,mem_keyboard_tx_data 
+0x15a 000486 fetcht 1 ,mem_keyboard_all_press_key_count 
+0x15b 000487 sub temp ,hid_key_null ,null 
+0x15c 000488 branch p_keyboard_value_consumer_all_key_release ,zero 
+0x15d 000489 beq hid_key_multikey_media ,p_keyboard_value_media 
+0x15e 000490 beq hid_key_multikey_vol_down ,p_keyboard_value_vol_down 
+0x15f 000491 beq hid_key_multikey_vol_up ,p_keyboard_value_vol_up 
+0x160 000492 beq hid_key_multikey_mute ,p_keyboard_value_mute 
+0x161 000493 beq hid_key_multikey_pre_track ,p_keyboard_value_pre_track 
+0x162 000494 beq hid_key_multikey_next_track ,p_keyboard_value_next_track 
+0x163 000495 beq hid_key_multikey_paly ,p_keyboard_value_play 
+0x164 000496 beq hid_key_multikey_stop ,p_keyboard_value_stop 
+0x165 000498 beq hid_key_ac_home ,p_keyboard_value_ac_home 
+0x166 000499 beq hid_key_mail ,p_keyboard_value_mail 
+0x167 000500 beq hid_key_my_computer ,p_keyboard_value_my_computer 
+0x168 000501 beq hid_key_ac_favorites ,p_keyboard_value_ac_favorites 
+0x169 000502 beq hid_key_calculator ,p_keyboard_value_calculator 
+0x16a 000503 beq hid_key_ac_search ,p_keyboard_value_ac_search 
+0x16b 000504 beq hid_key_ac_back ,p_keyboard_value_ac_back 
+0x16c 000505 beq hid_key_os_soft_kb ,p_keyboard_value_os_soft_kb 
+0x16d 000507 beq hid_key_light_down ,p_keyboard_value_light_down 
+0x16e 000508 beq hid_key_light_up ,p_keyboard_value_light_up 
+0x16f 000509 beq hid_key_ios_android_os_lock ,p_keyboard_value_os_lock 
+0x170 000511 beq hid_key_mac_eject ,p_keyboard_value_mac_eject 
+0x171 000512 beq hid_key_ac_forward ,p_keyboard_value_ac_forward 
+0x172 000513 beq hid_key_ac_stop ,p_keyboard_value_ac_stop 
+0x173 000514 beq hid_key_ac_refresh ,p_keyboard_value_ac_refresh 
+0x174 000516 beq hid_key_system_sleep ,p_keyboard_value_system_sleep 
+0x175 000517 branch keyboard_motion_data_check_next 
+:      000519 p_keyboard_value_media:
+0x176 000520 fetch 1 ,mem_device_flag 
+0x177 000521 bne mode_24g_device ,keyboard_value_media 
+0x178 000522 setarg 0x0183 
+:      000524 p_keyboard_24g_standard_data_send:
+0x179 000525 store 2 ,mem_keyboard_tx_data + 1 
+0x17a 000526 jam hid_reportid_consumer_key ,mem_keyboard_tx_data 
+0x17b 000527 branch keyboard_motion_data_check_next 
+:      000529 p_keyboard_value_vol_down:
+0x17c 000530 fetch 1 ,mem_device_flag 
+0x17d 000531 bne mode_24g_device ,keyboard_value_vol_down 
+0x17e 000532 setarg 0x00ea 
+0x17f 000533 branch p_keyboard_24g_standard_data_send 
+:      000535 p_keyboard_value_vol_up:
+0x180 000536 fetch 1 ,mem_device_flag 
+0x181 000537 bne mode_24g_device ,keyboard_value_vol_up 
+0x182 000538 setarg 0x00e9 
+0x183 000539 branch p_keyboard_24g_standard_data_send 
+:      000541 p_keyboard_value_mute:
+0x184 000542 fetch 1 ,mem_device_flag 
+0x185 000543 bne mode_24g_device ,keyboard_value_mute 
+0x186 000544 setarg 0x00e2 
+0x187 000545 branch p_keyboard_24g_standard_data_send 
+:      000547 p_keyboard_value_pre_track:
+0x188 000548 fetch 1 ,mem_device_flag 
+0x189 000549 bne mode_24g_device ,keyboard_value_pre_track 
+0x18a 000550 setarg 0x00b6 
+0x18b 000551 branch p_keyboard_24g_standard_data_send 
+:      000553 p_keyboard_value_next_track:
+0x18c 000554 fetch 1 ,mem_device_flag 
+0x18d 000555 bne mode_24g_device ,keyboard_value_next_track 
+0x18e 000556 setarg 0x00b5 
+0x18f 000557 branch p_keyboard_24g_standard_data_send 
+:      000559 p_keyboard_value_play:
+0x190 000560 fetch 1 ,mem_device_flag 
+0x191 000561 bne mode_24g_device ,keyboard_value_play 
+0x192 000562 setarg 0x00cd 
+0x193 000563 branch p_keyboard_24g_standard_data_send 
+:      000565 p_keyboard_value_stop:
+0x194 000566 fetch 1 ,mem_device_flag 
+0x195 000567 bne mode_24g_device ,keyboard_value_stop 
+0x196 000568 setarg 0x00b7 
+0x197 000569 branch p_keyboard_24g_standard_data_send 
+:      000571 p_keyboard_value_ac_home:
+0x198 000572 fetch 1 ,mem_device_flag 
+0x199 000573 bne mode_24g_device ,keyboard_value_ac_home 
+0x19a 000574 setarg 0x0223 
+0x19b 000575 branch p_keyboard_24g_standard_data_send 
+:      000577 p_keyboard_value_mail:
+0x19c 000578 fetch 1 ,mem_device_flag 
+0x19d 000579 bne mode_24g_device ,keyboard_value_mail 
+0x19e 000580 setarg 0x018a 
+0x19f 000581 branch p_keyboard_24g_standard_data_send 
+:      000583 p_keyboard_value_my_computer:
+0x1a0 000584 fetch 1 ,mem_device_flag 
+0x1a1 000585 bne mode_24g_device ,keyboard_value_my_computer 
+0x1a2 000586 setarg 0x0194 
+0x1a3 000587 branch p_keyboard_24g_standard_data_send 
+:      000589 p_keyboard_value_ac_favorites:
+0x1a4 000590 fetch 1 ,mem_device_flag 
+0x1a5 000591 bne mode_24g_device ,keyboard_value_ac_favorites 
+0x1a6 000592 setarg 0x022a 
+0x1a7 000593 branch p_keyboard_24g_standard_data_send 
+:      000595 p_keyboard_value_calculator:
+0x1a8 000596 fetch 1 ,mem_device_flag 
+0x1a9 000597 bne mode_24g_device ,keyboard_value_calculator 
+0x1aa 000598 setarg 0x0192 
+0x1ab 000599 branch p_keyboard_24g_standard_data_send 
+:      000601 p_keyboard_value_ac_search:
+0x1ac 000602 fetch 1 ,mem_device_flag 
+0x1ad 000603 bne mode_24g_device ,keyboard_value_ac_search 
+0x1ae 000604 setarg 0x0221 
+0x1af 000605 branch p_keyboard_24g_standard_data_send 
+:      000607 p_keyboard_value_ac_back:
+0x1b0 000608 fetch 1 ,mem_device_flag 
+0x1b1 000609 bne mode_24g_device ,keyboard_value_ac_back 
+0x1b2 000610 fetch 1 ,mem_kb_computer_system 
+0x1b3 000611 beq system_os_ios ,p_keyboard_value_ac_home 
+0x1b4 000612 beq system_os_mac ,p_keyboard_value_ac_home 
+0x1b5 000613 setarg 0x0224 
+0x1b6 000614 branch p_keyboard_24g_standard_data_send 
+:      000616 p_keyboard_value_os_soft_kb:
+0x1b7 000617 fetch 1 ,mem_device_flag 
+0x1b8 000618 bne mode_24g_device ,keyboard_value_os_soft_kb 
+0x1b9 000619 fetch 1 ,mem_kb_computer_system 
+0x1ba 000620 beq system_os_android ,p_keyboard_value_os_soft_kb_android 
+0x1bb 000621 setarg 0x01ae 
+0x1bc 000622 branch p_keyboard_24g_standard_data_send 
+:      000624 p_keyboard_value_os_soft_kb_android:
+0x1bd 000625 setarg 0x0307 
+0x1be 000626 branch p_keyboard_24g_standard_data_send 
+:      000628 p_keyboard_value_light_down:
+0x1bf 000629 fetch 1 ,mem_device_flag 
+0x1c0 000630 bne mode_24g_device ,keyboard_value_light_down 
+0x1c1 000631 setarg 0x0070 
+0x1c2 000632 branch p_keyboard_24g_standard_data_send 
+:      000634 p_keyboard_value_light_up:
+0x1c3 000635 fetch 1 ,mem_device_flag 
+0x1c4 000636 bne mode_24g_device ,keyboard_value_light_up 
+0x1c5 000637 setarg 0x006f 
+0x1c6 000638 branch p_keyboard_24g_standard_data_send 
+:      000640 p_keyboard_value_os_lock:
+0x1c7 000641 fetch 1 ,mem_device_flag 
+0x1c8 000642 bne mode_24g_device ,keyboard_value_os_lock 
+0x1c9 000643 setarg 0x0030 
+0x1ca 000644 branch p_keyboard_24g_standard_data_send 
+:      000646 p_keyboard_value_mac_eject:
+0x1cb 000647 fetch 1 ,mem_device_flag 
+0x1cc 000648 bne mode_24g_device ,keyboard_value_mac_eject 
+0x1cd 000649 setarg 0x00b8 
+0x1ce 000650 branch p_keyboard_24g_standard_data_send 
+:      000652 p_keyboard_value_ac_forward:
+0x1cf 000653 fetch 1 ,mem_device_flag 
+0x1d0 000654 bne mode_24g_device ,keyboard_value_ac_forward 
+0x1d1 000655 setarg 0x0225 
+0x1d2 000656 branch p_keyboard_24g_standard_data_send 
+:      000658 p_keyboard_value_ac_stop:
+0x1d3 000659 fetch 1 ,mem_device_flag 
+0x1d4 000660 bne mode_24g_device ,keyboard_value_ac_stop 
+0x1d5 000661 setarg 0x0226 
+0x1d6 000662 branch p_keyboard_24g_standard_data_send 
+:      000664 p_keyboard_value_ac_refresh:
+0x1d7 000665 fetch 1 ,mem_device_flag 
+0x1d8 000666 bne mode_24g_device ,keyboard_value_ac_refresh 
+0x1d9 000667 setarg 0x0227 
+0x1da 000668 branch p_keyboard_24g_standard_data_send 
+:      000670 p_keyboard_value_system_sleep:
+0x1db 000671 fetch 1 ,mem_device_flag 
+0x1dc 000672 bne mode_24g_device ,keyboard_value_system_sleep 
+0x1dd 000673 jam hid_reportid_system_ctrl ,mem_keyboard_tx_data 
+0x1de 000674 setarg 0x02 
+0x1df 000675 store 1 ,mem_keyboard_tx_data + 1 
+0x1e0 000676 branch keyboard_motion_data_check_next 
+0x1e1 000677 beq hid_key_multikey_next_track ,keyboard_value_next_track 
+:      000680 p_keyboard_app_enter_hibernate:
+0x1e2 000681 call keyboard_setgpio_hibernate 
+0x1e3 000682 branch app_enter_hibernate 
+:      000684 p_keyboard_device_pair_led_timer:
+0x1e4 000685 fetch 1 ,mem_device_flag 
+0x1e5 000686 beq mode_24g_device ,p_keyboard_device_24g_pair_led 
+0x1e6 000687 branch keyboard_device_pair_led_timer + 2 
+:      000689 p_keyboard_device_24g_pair_led:
+0x1e7 000690 fetch 2 ,mem_24g_pair_timeout 
+0x1e8 000691 branch p_keyboard_pair_success_led_move ,blank 
+0x1e9 000692 branch keyboard_device_pair_led 
+:      000694 p_keyboard_pair_success_led_move:
+0x1ea 000695 fetch 2 ,mem_24g_reconn_timeout 
+0x1eb 000696 nbranch keyboard_device_pair_led ,blank 
+0x1ec 000697 branch keyboard_device_24g_led_off 
+:      000699 p_keyboard_keyvalue_change:
+0x1ed 000700 call keyboard_keyvalue_normal_replace 
+0x1ee 000701 call keyboard_keyvalue_fn_replace 
+0x1ef 000702 call p_keyboard_keyvalue_commbination_replace 
+0x1f0 000703 call keyboard_keyvalue_in_out 
+0x1f1 000704 branch keyboard_keyvalue_change_loop 
+:      000706 p_keyboard_keyvalue_commbination_replace:
+0x1f2 000707 fetch 1 ,mem_keyboard_keyvalue_temp 
+0x1f3 000708 beq hid_key_favorites ,p_keyboard_favorites_combine 
+0x1f4 000709 branch keyboard_keyvalue_commbination_replace + 1 
+:      000711 p_keyboard_favorites_combine:
+0x1f5 000712 jam left_control | left_shift ,mem_keyboard_commbination_control_key_value 
+0x1f6 000713 jam hid_key_o ,mem_keyboard_commbination_standard_key_value 
+0x1f7 000714 branch keyboard_commbination_keypress 
Index: costumer/Bore/keyboard_ck801_only_24g/output/bt_program23.meta
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/bt_program23.meta	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/bt_program23.meta	(working copy)
@@ -0,0 +1,714 @@
+define SECURE_CONNECTION
+define NEC
+define DEBUG_RF_INIT
+define COMPILE_SHUTTER
+define COMPILE_MOUSE
+define COMPILE_MODULE
+define COMPILE_USB
+define COMPILE_DONGLE
+define COMPILE_LE
+define COMPILE_24G
+define COMPILE_CAR
+define COMPILE_REMOTE_CAR
+define COMPLIE_ADPCM
+define SDKCODE
+INCLUDE "bt_format"
+org 0x0000  // start from patch ram address start
+
+
+	bbit1 8,pf_patch_ext
+	beq patch03_1,p_set_tx_power
+	beq patch03_2,p_initialize_radio_cont
+	beq patch05_0,p_lpm_dispatch
+	beq patch07_6,p_keyboard_setting_config_next
+	beq patch08_0,p_keyboard_store_device_info
+	beq patch08_3,p_keyboard_bb_event_timer
+	beq patch08_4,p_keyboard_adc_vol_init
+	beq patch09_4,p_kscan_dispatch
+	beq patch09_6,p_keyboard_keyvalue_change
+	beq patch10_2,p_mouse_adc_bat_percent_lowpower_out
+	beq patch0a_6,p_keyboard_long_button_bt_discovery
+	beq patch0b_1,p_keyboard_motion_data_check
+	beq patch0b_4,p_keyboard_value_tpye_consumer_set
+	beq patch0d_2,p_keyboard_le_parse_att
+	beq patch0f_4,p_keyboard_app_enter_hibernate
+	beq patch1d_1,p_otp_write
+	beq patch1d_2,p_otp_read_data
+	beq patch19_7,p_keyboard_init
+	beq patch1f_2,p_gpio_set_wake_by_current_state
+	branch assert
+
+pf_patch_ext:
+	rtneq patch3f_7
+	beq patch38_2,keyboard_g24_transmit_no_interrupt
+	branch assert
+
+/////////////////////////////
+p_set_tx_power:
+	fetch 1,mem_tx_power
+	beq TX_POWER_F30DB,p_set_tx_power_f30db
+	branch set_tx_power+2
+
+p_set_tx_power_f30db:
+	jam 0x17,0x8a14
+	setarg 0x251305
+	store 3,0x8a60
+	branch set_tx_power_8a63_28
+
+p_initialize_radio_cont:
+	until null,lpo_edge
+	jam 0x0d,0x8946
+	jam 0x10,0x896f
+	jam 0xcd,0x8a13
+//	jam 0x10,0x8a06
+	fetch 1,0x8a06
+	and pdata,0xfc,pdata
+	store 1,0x8a06
+	branch initialize_radio_cont+6
+
+p_otp_read_data:
+	call enable_otp_read
+	call otp_read_data1
+	branch otp_disable_chgpump
+
+
+p_otp_write:
+	//bpatch patch1d_1,mem_patch1d
+	call otp_enable_chgpump65
+	call otp_set_addr
+	call otp_reset
+p_otp_program:
+	ifetcht 1,rega
+	increase 1,rega
+	force 0,queue
+p_otp_program_bit:
+	set0 mark_otp_write,mark
+p_otp_program_bit2:
+	qisolate0 temp
+	branch p_otp_skip_0,true
+	fetch 1,core_otp_din
+	set1 6,pdata				
+	set1 7,pdata				
+	store 1,core_otp_din
+	jam 0x02,core_otp_ctrl	
+	jam 0x82,core_otp_ctrl
+	set0 7,pdata				
+	store 1,core_otp_din
+	jam 0x8a,core_otp_ctrl	
+	nop 11
+	jam 0xca,core_otp_ctrl	
+	nop 33
+	jam 0x4a,core_otp_ctrl	
+	nop 44
+	jam 0xca,core_otp_ctrl	
+	nop 22
+	jam 0x8a,core_otp_ctrl	
+	nop 33
+	jam 0x82,core_otp_ctrl	
+	nop 1
+	jam 0x92,core_otp_ctrl	
+	nop 10
+	jam 0xb2,core_otp_ctrl	
+	fetch 1,core_otp_rdata
+	jam 0x92,core_otp_ctrl	
+	nop 1
+	jam 0x82,core_otp_ctrl	
+	nop 1
+	qisolate0 pdata
+	branch p_otp_program_bit,true	
+	bmark1 mark_otp_write,p_otp_skip_0
+	set1 mark_otp_write,mark
+	branch p_otp_program_bit2
+
+p_otp_skip_0:
+	fetch 2,core_otp_addr
+	increase 1,pdata
+	store 2,core_otp_addr
+	increase 1,queue
+	compare 8,queue,0xf
+	nbranch p_otp_program_bit,true
+	loop p_otp_program
+	branch otp_disable_chgpump
+
+p_gpio_set_wake_by_current_state:
+	set1 gpio_active_bit,temp
+	call gpio_get_bit
+	nsetflag true,gpio_active_bit,temp
+	branch gpio_set_wake
+
+//
+p_lpm_dispatch:
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	// fetch 1,mem_device_le_bb_connected_flag
+	// rtn blank
+	fetch 1,mem_keyboard_fn_flag
+	nrtn blank
+	fetch 1,mem_keyboard_control_key_flag
+	nrtn blank
+	fetch 1,mem_device_direct_timer
+	nrtn blank
+	fetch 2,mem_device_discovery_timer
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	nrtn blank
+	branch lpm_dispatch+4
+
+p_keyboard_init:
+	//jam 0x0a,mem_lpm_overhead
+	call app_param_init
+	call enable_authrom
+	call p_keyboard_setting_config
+	branch keyboard_init+2
+
+p_keyboard_setting_config:
+	rtn wake
+	call g24_transmit_init
+	call g24_chmap_param_init
+	call p_keyboard_param_init
+	jam 0x0a,mem_lpm_overhead
+	branch keyboard_setting_config+4
+
+p_keyboard_param_init:
+	call keyboard_compare_addr_init
+	call p_keyboard_param_common_init
+	branch	keyboard_param_init+2
+
+p_keyboard_param_common_init:
+	setarg MOUSE_BLE_ATT_LIST_ADDR				//ble attlist start address
+	store 2,mem_ui_le_uuid_table
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_N_KEY_ROLLOVER_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER,hid_device_param_common_init
+	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_MAGIC_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,hid_device_param_common_init
+	setarg mem_keyboard_le_table
+	store 2,mem_keyboard_le_hid_map
+	branch hid_device_param_common_init
+
+
+
+
+
+p_keyboard_store_device_info:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,p_keyboard_store_otp_device_info
+	branch keyboard_store_device_info+1
+
+p_keyboard_store_otp_device_info:
+	fetch 2,mem_otp_read_retention_offset
+	//arg 0x320,temp   //50*16 or 4*200
+	fetcht 2,mem_otp_read_retention_max_size
+	isub temp,null
+	rtn positive
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_store_otp_device_info_g24
+	beq MODE_BT_DEVICE1,keyboard_store_otp_device_info_ble
+	rtn
+
+p_keyboard_adc_vol_init:
+	fetch 1,mem_keyboard_power_type
+	beq KEYBOARD_BATTARY_4V2,p_keyboard_adc_vol_4v2_init
+	branch keyboard_adc_vol_init+2
+
+p_keyboard_adc_vol_4v2_init:
+	setarg 0x2c0170		// 0x0170--3.7V  0x012c--3.0V  0x0140--3.2V  0x014a--3.3V
+	store 3,mem_keyboard_vdd_full_vol
+	setarg 0x014a01
+	istore 3,contw
+	rtn
+
+p_mouse_adc_bat_percent_lowpower_out:
+	ifetch 8,rega
+	store 8,mem_pdatatemp
+	call adc_clear_no_power_flag
+	call p_adc_clear_low_power_flag
+	fetch 2,mem_pdatatemp+6
+	fetcht 2,mem_pdatatemp+2	        //shutdown voltage
+	isub temp,null
+	ncall adc_set_no_power_flag,positive
+	fetcht 2,mem_pdatatemp+4		//low voltage
+	isub temp,null
+	ncall p_adc_set_low_power_flag,positive
+	branch mouse_adc_bat_level_set
+
+p_adc_clear_low_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set0 0,temp
+	branch adc_set_power_flag
+p_adc_set_low_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set1 0,temp
+	branch adc_set_power_flag
+
+
+p_kscan_dispatch:
+	call p_keyboard_keyscan
+	branch kscan_dispatch+2
+
+p_keyboard_keyscan:
+	call keyboard_gpio_init
+	setarg 0
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	arg mem_keyscan_value_current,contr
+	arg mem_keyscan_value_check,contw
+	arg 20,loopcnt
+	call memcpy
+	call keyboard_stb_state_low							// exmcu wake up
+	setarg mem_keyscan_value_current
+	store 2,mem_keyscan_value_ptr
+	setarg mem_keyscan_exmcu_value_new
+	store 2,mem_keyscan_exmcu_value_ptr
+	call keyboard_stb_state_high
+	call keyboard_clk_input
+p_keyboard_keyscan_exmcu_start_check:
+	fetch 2,mem_keyscan_exmcu_wait_wake_count
+	increase 1,pdata
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	bbit1 9,p_keyboard_keyscan 								// 953us restart
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu wake done
+	call gpio_get_bit
+	nbranch p_keyboard_keyscan_exmcu_start_check,true
+	call keyboard_stb_state_low
+	branch keyboard_keyscan_wait_wake_next
+
+
+
+
+
+
+
+p_keyboard_device_poweron_timer:
+	fetch 1,mem_keyboard_device_poweron_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_device_poweron_timer
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_030_POWER_LED,p_keyboard_device_poweron_030_led
+	fetch 1,mem_keyboard_device_poweron_timer
+	branch keyboard_device_led_off,blank
+	branch keyboard_device_led_on
+
+p_keyboard_device_poweron_030_led:
+	fetch 1,mem_keyboard_device_poweron_timer
+	branch keyboard_power_led_off,blank
+	branch keyboard_power_led_on
+p_keyboard_bb_event_timer:
+	call keyboard_low_voltage_param_set
+	call keyboard_adc_read
+	call keyboard_adc_gpio_set_before_hibernate
+
+	//led
+	call keyboard_low_voltage_led_timer
+	call p_keyboard_num_capslock_led_on_timer
+	call keyboard_rgb_on_timer
+	call p_keyboard_device_poweron_timer
+	call keyboard_mode_led_timer
+	call p_keyboard_device_pair_led_timer
+	//key
+	call p_keyboard_key_press_timer
+	call keyboard_commbination_key_process
+	call keyboard_same_key_long_press_timer
+
+	// g24
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+	call mouse_24g_long_sleep_param_update_timer
+	call p_keyboard_24g_repeat_send_data
+	call keyboard_24g_led_status_get_timer
+
+	//le
+	call keyboard_check_discovery_timeout_timer
+	call keyboard_check_direct_timeout_timer
+	call mouse_le_enable_att_list_timer
+	call keyboard_le_battery_updata_timer
+	call mouse_le_send_smp_security_request_timer
+	call keyboard_le_send_conn_param_update_timer
+	call keyboard_le_auto_recognize_timer
+
+	call mouse_current_mult_update_timer
+	call keyboard_store_information_delay_timer
+	call keyboard_commbination_delay_release_timer
+	call keyboard_usb_updata_timer
+	branch keyboard_check_no_data_timeout_timer
+
+p_keyboard_num_capslock_led_on_timer:
+	fetch 1,mem_24g_shutdown_flag
+	nrtn blank
+	branch keyboard_num_capslock_led_on_timer
+
+
+p_keyboard_key_press_timer:
+	fetch 1,mem_keyboard_switch_device_flag
+	bbit1 KEYBOARD_FLAG_G24_DEVICE_BUTTON,p_keyboard_device_select_g24_press_timer
+	call p_keyboard_device_select_g24_nopress_timer
+	fetch 1,mem_keyboard_switch_device_flag
+	bbit1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,p_keyboard_device_select_bt_press_timer
+	branch p_keyboard_device_select_bt_nopress_timer
+
+p_keyboard_device_select_g24_press_timer:
+	fetch 1,mem_keyboard_switch_g24_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_g24_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_g24_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	call p_keyboard_store_device_number
+	call keyboard_stop_bluetooth_mode
+	branch keyboard_24g_start_pair_mode
+
+p_keyboard_device_select_bt_press_timer:
+	fetch 1,mem_keyboard_switch_bt_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_bt_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_bt_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	call p_keyboard_store_device_number
+	call hid_device_le_send_empty_packet
+	branch keyboard_long_button_bt_discovery
+
+
+p_keyboard_device_select_g24_nopress_timer:
+	jam 0,mem_keyboard_switch_g24_press_timer
+	fetch 1,mem_keyboard_switch_g24_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_g24_enable
+	call p_keyboard_store_device_number
+	branch soft_reset_chip
+
+p_keyboard_device_select_bt_nopress_timer:
+	jam 0,mem_keyboard_switch_bt_press_timer
+	fetch 1,mem_keyboard_switch_bt_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_bt_enable
+	call keyboard_store_device_number
+	branch soft_reset_chip
+
+p_keyboard_store_device_number:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,mouse_write_otp_device_flag
+	bbit1 KEYBOARD_ENABLE_EEPROM,keyboard_store_device_number
+	rtn
+
+p_keyboard_long_button_bt_discovery:
+	branch keyboard_long_button_bt_discovery+2
+
+p_keyboard_24g_repeat_send_data:
+	fetch 1,mem_same_keyvalue_timerout_flag
+	nrtn blank
+	branch keyboard_24g_repeat_send_data
+
+/////////////////////////////////////store otp///////////////////////////////////////
+p_keyboard_setting_config_next:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	//bbit1 KEYBOARD_ENABLE_2K_EEPROM,p_keyboard_load_2k_eeprom_info
+	bbit1 KEYBOARD_ENABLE_OTP,keyboard_load_otp_info
+	branch keyboard_setting_config+11
+
+p_keyboard_load_2k_eeprom_info:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_SDA_MULTI_R_LINE,p_keyboard_load_2k_eeprom_device_info_next
+	fetcht 1,mem_eeprom_sda_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_eeprom_sda_gpio
+	call gpio_get_bit
+	branch p_keyboard_load_2k_eeprom_info,true
+p_keyboard_load_2k_eeprom_device_info_next:
+	call keyboard_eeprom_init
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg KEYBOARD_DEVICE_NUMBER_EEPROM_OFFECT,regb
+	call iicd_read_eep_data
+	branch keyboard_load_info_check
+
+///////////////////////////ATT fix//////////////////////
+p_keyboard_le_parse_att:
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_ERROR_RESPONSE,keyboard_le_send_att_find_by_type_value_request_mac
+	beq ATTOP_FIND_BY_TYPE_VALUE_RESPONSE,keyboard_le_parse_att_find_by_type_value_rsp
+	beq ATTOP_READ_BY_TYPE_RESPONSE,keyboard_le_send_att_read_by_type_rsp_mac
+	beq ATTOP_READ_RESPONSE,keyboard_le_parse_att_manu_resp
+	beq ATTOP_READ_BY_TYPE_REQUEST,keyboard_le_parse_att_read_by_type_request
+	beq ATTOP_READ_BLOB_REQUEST,p_keyboard_le_parse_att_read_blob_request
+	beq ATTOP_READ_REQUEST,keyboard_le_parse_att_read_request
+	beq ATTOP_WRITE_REQUEST,keyboard_le_parse_att_write_request
+	beq ATTOP_WRITE_COMMAND,keyboard_le_parse_att_write_command
+	branch le_parse_att2
+
+p_keyboard_le_parse_att_read_blob_request:
+	ifetch 2,contr
+	store 2,mem_le_att_offset
+	iforce rega
+	fetcht 2,mem_le_att_handle
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_blob_response,zero
+	// fetch 2,mem_le_att_offset
+	// sub pdata,66,null
+	//nbranch keyboard_le_send_att_read_blob_response,zero
+	branch keyboard_le_send_att_read_blob_response
+
+p_keyboard_motion_data_check:
+	fetch 1,mem_keyboard_consumer_key_status
+	beq KEYBOARD_CONSUMER_KEY_RELEASE,p_keyboard_value_consumer_release
+	branch keyboard_motion_data_check+3
+p_keyboard_value_consumer_release:
+p_keyboard_value_consumer_all_key_release:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_consumer_release
+	jam 2,mem_keyboard_data_change_flag
+	fetch 1,mem_keyboard_all_press_key_count
+	call keyboard_value_release_all_key,blank
+	jam KEYBOARD_CONSUMER_KEY_STANDBY,mem_keyboard_consumer_key_status
+	setarg HID_REPORTID_CONSUMER_KEY
+	store 3,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+//////////////////////////////////////media/////////////////////////////////////
+p_keyboard_value_tpye_consumer_set:
+	copy temp,pdata
+	jam HID_REPORTID_BIT_CONSUMER_KEY,mem_keyboard_tx_data
+	fetcht 1,mem_keyboard_all_press_key_count
+	sub temp,HID_KEY_NULL,null
+	branch p_keyboard_value_consumer_all_key_release,zero
+	beq 	HID_KEY_MULTIKEY_MEDIA,p_keyboard_value_media
+	beq 	HID_KEY_MULTIKEY_VOL_DOWN,p_keyboard_value_vol_down
+	beq 	HID_KEY_MULTIKEY_VOL_UP,p_keyboard_value_vol_up
+	beq 	HID_KEY_MULTIKEY_MUTE,p_keyboard_value_mute
+	beq 	HID_KEY_MULTIKEY_PRE_TRACK,p_keyboard_value_pre_track
+	beq 	HID_KEY_MULTIKEY_NEXT_TRACK,p_keyboard_value_next_track
+	beq 	HID_KEY_MULTIKEY_PALY,p_keyboard_value_play
+	beq 	HID_KEY_MULTIKEY_STOP,p_keyboard_value_stop
+
+	beq 	HID_KEY_AC_HOME,p_keyboard_value_ac_home
+	beq 	HID_KEY_MAIL,p_keyboard_value_mail
+	beq 	HID_KEY_MY_COMPUTER,p_keyboard_value_my_computer
+	beq 	HID_KEY_AC_FAVORITES,p_keyboard_value_ac_favorites
+	beq 	HID_KEY_CALCULATOR,p_keyboard_value_calculator
+	beq 	HID_KEY_AC_SEARCH,p_keyboard_value_ac_search
+	beq 	HID_KEY_AC_BACK,p_keyboard_value_ac_back
+	beq 	HID_KEY_OS_SOFT_KB,p_keyboard_value_os_soft_kb
+
+	beq 	HID_KEY_LIGHT_DOWN,p_keyboard_value_light_down
+	beq 	HID_KEY_LIGHT_UP,p_keyboard_value_light_up
+	beq 	HID_KEY_IOS_ANDROID_OS_LOCK,p_keyboard_value_os_lock
+
+	beq 	HID_KEY_MAC_EJECT,p_keyboard_value_mac_eject
+	beq 	HID_KEY_AC_FORWARD,p_keyboard_value_ac_forward
+	beq 	HID_KEY_AC_STOP,p_keyboard_value_ac_stop
+	beq 	HID_KEY_AC_REFRESH,p_keyboard_value_ac_refresh
+
+	beq 	HID_KEY_SYSTEM_SLEEP,p_keyboard_value_system_sleep
+	branch keyboard_motion_data_check_next
+
+p_keyboard_value_media:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_media
+	setarg 0x0183
+
+p_keyboard_24g_standard_data_send:
+	store 2,mem_keyboard_tx_data+1
+	jam HID_REPORTID_CONSUMER_KEY,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+
+p_keyboard_value_vol_down:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_vol_down
+	setarg 0x00ea
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_vol_up:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_vol_up
+	setarg 0x00e9
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_mute:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_mute
+	setarg 0x00e2
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_pre_track:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_pre_track
+	setarg 0x00b6
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_next_track:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_next_track
+	setarg 0x00b5
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_play:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_play
+	setarg 0x00cd
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_stop:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_stop
+	setarg 0x00b7
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_home:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_home
+	setarg 0x0223
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_mail:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_mail
+	setarg 0x018a
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_my_computer:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_my_computer
+	setarg 0x0194
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_favorites:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_favorites
+	setarg 0x022a
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_calculator:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_calculator
+	setarg 0x0192
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_search:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_search
+	setarg 0x0221
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_back:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_back
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,p_keyboard_value_ac_home
+	beq SYSTEM_OS_MAC,p_keyboard_value_ac_home
+	setarg 0x0224
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_os_soft_kb:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_os_soft_kb
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_ANDROID,p_keyboard_value_os_soft_kb_android
+	setarg 0x01ae
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_os_soft_kb_android:
+	setarg 0x0307
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_light_down:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_light_down
+	setarg 0x0070
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_light_up:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_light_up
+	setarg 0x006f
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_os_lock:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_os_lock
+	setarg 0x0030
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_mac_eject:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_mac_eject
+	setarg 0x00b8
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_forward:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_forward
+	setarg 0x0225
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_stop:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_stop
+	setarg 0x0226
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_refresh:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_refresh
+	setarg 0x0227
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_system_sleep:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_system_sleep
+	jam HID_REPORTID_SYSTEM_CTRL,mem_keyboard_tx_data
+	setarg 0x02
+	store 1,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+	beq HID_KEY_MULTIKEY_NEXT_TRACK,keyboard_value_next_track
+
+/////////////////////////////////////////////////////////////////////////
+p_keyboard_app_enter_hibernate:
+	call keyboard_setgpio_hibernate
+	branch app_enter_hibernate
+
+p_keyboard_device_pair_led_timer:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_device_24g_pair_led
+	branch keyboard_device_pair_led_timer+2
+
+p_keyboard_device_24g_pair_led:
+	fetch 2,mem_24g_pair_timeout
+	branch p_keyboard_pair_success_led_move,blank
+	branch keyboard_device_pair_led
+
+p_keyboard_pair_success_led_move:
+	fetch 2,mem_24g_reconn_timeout
+	nbranch keyboard_device_pair_led,blank
+	branch keyboard_device_24g_led_off
+
+p_keyboard_keyvalue_change:
+	call keyboard_keyvalue_normal_replace
+	call keyboard_keyvalue_fn_replace
+	call p_keyboard_keyvalue_commbination_replace
+	call keyboard_keyvalue_in_out
+	branch keyboard_keyvalue_change_loop
+
+p_keyboard_keyvalue_commbination_replace:
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_FAVORITES,p_keyboard_favorites_combine
+	branch keyboard_keyvalue_commbination_replace+1
+
+p_keyboard_favorites_combine:
+	jam LEFT_CONTROL|LEFT_SHIFT,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_O,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
\ No newline at end of file
Index: costumer/Bore/keyboard_ck801_only_24g/output/bt_program23.rom
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/bt_program23.rom	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/bt_program23.rom	(working copy)
@@ -0,0 +1,504 @@
+11000010100001000000000000010101
+11000000000011001000000000011000
+11000000000011010000000000011111
+11000000000101000000000001100000
+11000000000111110000000100100111
+11000000001000000000000010001011
+11000000001000011000000011010101
+11000000001000100000000010010110
+11000000001001100000000010110000
+11000000001001110000000111101101
+11000000010000010000000010011110
+11000000001010110000000100100011
+11000000001011001000000101001100
+11000000001011100000000101011000
+11000000001101010000000100110111
+11000000001111100000000111100010
+11000000011101001000000000101010
+11000000011101010000000000100111
+11000000011001111000000001101110
+11000000011111010000000001011100
+00100000001000000010001100111110
+11000001011111111000000000000000
+11000000011000010100100000010101
+00100000001000000010001100111110
+01101111111000001100000101000001
+11000000010011110000000000011011
+00100000001000000010001000010100
+01110000100010100001010000010111
+01011000001001010001001100000101
+01100111111100011000101001100000
+00100000001000000010001000100000
+00110111110110011000001000000000
+01110000100010010100011000001101
+01110000100010010110111100010000
+01110000100010100001001111001101
+01101111111100001000101000000110
+00011111111000010111111011111100
+01100111111100001000101000000110
+00100000001000000010001001010101
+00100000010000000110101100101000
+00100000010000000110101101100011
+00100000001000000110101100100110
+00100000010000000110101100100010
+00100000010000000110101100101111
+00100000010000000110101100101001
+11101000010000001000000000010001
+00011010001000001010001000000001
+00011000000000000000111000000000
+01111001001111111000000000100010
+10101000010011000000000000000000
+00100000001000001000000001010100
+01101111111100001000000001000110
+01111001001000000111111000000110
+01111001001000000111111000000111
+01100111111100001000000001000110
+01110000100000000100011100000010
+01110000100000000100011110000010
+01111001001111111111111000000111
+01100111111100001000000001000110
+01110000100000000100011110001010
+00100000000000000000000000001011
+01110000100000000100011111001010
+00100000000000000000000000100001
+01110000100000000100011101001010
+00100000000000000000000000101100
+01110000100000000100011111001010
+00100000000000000000000000010110
+01110000100000000100011110001010
+00100000000000000000000000100001
+01110000100000000100011110000010
+00100000000000000000000000000001
+01110000100000000100011110010010
+00100000000000000000000000001010
+01110000100000000100011110110010
+01101111111100001000000000000111
+01110000100000000100011110010010
+00100000000000000000000000000001
+01110000100000000100011110000010
+00100000000000000000000000000001
+10101111111011000000000000000000
+00100000001000001000000000110000
+11000101000100010000000001010100
+01111001001000000000000000100010
+00100000001000000000000000110001
+01101111111100010000000001000100
+00011111111000001111111000000001
+01100111111100010000000001000100
+00011000111000001000111000000001
+00101000111000000001111000001000
+00100100001000001000000000110000
+11000010000000000000000000101101
+00100000001000000110101100100110
+01111001001000000000010000000111
+00100000010000000110111011100000
+01111101001000001000010000000111
+00100000001000000110111010101100
+00100000010000000010001111110000
+01101111111000011100000010111101
+00100000011110100000000000000000
+01101111111000001100101001111010
+00100100011110100000000000000000
+01101111111000001100101001111011
+00100100011110100000000000000000
+01101111111000001100011100100000
+00100100011110100000000000000000
+01101111111000010100011101010000
+00100100011110100000000000000000
+01101111111000001100101010011111
+00100100011110100000000000000000
+00100000001000000010010001100111
+00100000010000000011011100010111
+00100000010000000111001110000100
+00100000010000000000000001110010
+00100000001000000011111010110000
+00100000011101011000000000000000
+00100000010000000011010111001000
+00100000010000000011001000111010
+00100000010000000000000001111000
+01110000010000001010011000001010
+00100000001000000011111011000001
+00100000010000000011111011110100
+00100000010000000000000001111011
+00100000001000000011111011011101
+01011000000000001001000000000000
+01100111111000010100001011111001
+01101111111001000100100010001110
+11000010100100011110100000001100
+01011000000000001001010110111000
+01100111111000010100100011010110
+01101111111001000100100010001110
+11000010100100000110100000001100
+11000010100100001110100000001100
+01011000000000001001010011111100
+01100111111000010100100011010110
+01101111111001000100100010001110
+11000010100100010110100000001100
+01011000000000000100101011101000
+01100111111000010100100011010110
+00100000001000000110100000001100
+01101111111001000100100010001110
+11000010100001111000000010001110
+00100000001000000011111111011000
+01101111111000010100101010111101
+01101000010010010100101010111111
+10011000010001100111110000000000
+00100000011000010000000000000000
+01101111111000001100011001111000
+11000000000000000011111111100001
+11000000000000001011111111101011
+00100000011000000000000000000000
+01101111111000001100100010110001
+11000000000000010000000010011001
+00100000001000000100000010010101
+01011000001011000000000101110000
+01100111111000011100100010101011
+01011000000000010100101000000001
+11100111111000011000000000000101
+00100000011000000000000000000000
+11101111111001000000000000010001
+01100111111001000000011001001110
+00100000010000000111000001010111
+00100000010000000000000010101010
+01101111111000010000011001010100
+01101000010010010000011001010000
+10011000010001100111110000000000
+00100100010000010111000001010100
+01101000010010010000011001010010
+10011000010001100111110000000000
+00100100010000010000000010101101
+00100000001000000100111011010000
+01101000010010001100010000100010
+01111001001111111000010000000000
+00100000001000000111000001011001
+01101000010010001100010000100010
+01111001001000000000010000000000
+00100000001000000111000001011001
+00100000010000000000000010110010
+00100000001000000100001100110010
+00100000010000000011111011111001
+01011000000000000000000000000000
+01100111111000010100100110011110
+11011000110000000100100101001110
+11011000101000000100100101100011
+11011111001000000000000000010100
+00100000010000000111110011011100
+00100000010000000100001110101111
+01011000000000000100100101001110
+01100111111000010100100110011000
+01011000000000000100101011011100
+01100111111000010100100110011010
+00100000010000000100001110101101
+00100000010000000100001110101011
+01101111111000010100100110011110
+00011111111000001111111000000001
+01100111111000010100100110011110
+11000010100001001000000010110010
+01101000010010001100100100010001
+00100000010000000110111011100000
+00100100001000001000000011000000
+00100000010000000100001110101111
+00100000001000000100001101001010
+01101111111000001100101011000010
+00100000011110100000000000000000
+00011111111000001111111111111111
+01100111111000001100101011000010
+01101111111001000100100010001110
+11000010100101000000000011010010
+01101111111000001100101011000010
+00100000001110100100000101100110
+00100000001000000100000101101100
+01101111111000001100101011000010
+00100000001110100100000100111100
+00100000001000000100000100111010
+00100000010000000100000011100000
+00100000010000000100000011001100
+00100000010000000100000011011101
+00100000010000000100000100000000
+00100000010000000000000011110010
+00100000010000000100000110101011
+00100000010000000000000011001001
+00100000010000000100000100111110
+00100000010000000000000111100100
+00100000010000000000000011110101
+00100000010000000100001010001111
+00100000010000000100001011000100
+00100000010000000011001001101100
+00100000010000000011010100000111
+00100000010000000101100011110110
+00100000010000000000000100100100
+00100000010000000100001010111111
+00100000010000000100001010011001
+00100000010000000100001010100100
+00100000010000000101010100001101
+00100000010000000100001010101101
+00100000010000000101010100010000
+00100000010000000100001010110010
+00100000010000000100001010100001
+00100000010000000101010100100111
+00100000010000000100001010011110
+00100000010000000100001011001001
+00100000010000000100001011001100
+00100000001000000100001011010101
+01101111111000001100011100110111
+00100100011110100000000000000000
+00100000001000000100000110000110
+01101111111000001100100010100110
+11000010100000000000000011111011
+00100000010000000000000100010011
+01101111111000001100100010100110
+11000010100000001000000100000111
+00100000001000000000000100011001
+01101111111000001100100010101001
+00011111111001100111110001100100
+00100100011000010000000000000000
+00011111111000001111111000000001
+01100111111000001100100010101001
+11000001100011001000000000000000
+01110000010010001010011100000000
+01101111111000001100011001111000
+11000001000000100000000000000000
+00100000010000000000000100011111
+00100000010000000100100011100110
+00100000001000000100011010000000
+01101111111000001100100010101010
+00011111111001100111110001100100
+00100100011000010000000000000000
+00011111111000001111111000000001
+01100111111000001100100010101010
+11000001100011001000000000000000
+01110000010010001010100000000000
+01101111111000001100011001111000
+11000001000000100000000000000000
+00100000010000000000000100011111
+00100000010000000110100000100100
+00100000001000000100011001110101
+01110000010010001010100100000000
+01101111111000001100100010100111
+00100000011110100000000000000000
+01110000010010001010011100000000
+00100000010000000000000100011111
+00100000001000000110110010011001
+01110000010010001010101000000000
+01101111111000001100100010101000
+00100000011110100000000000000000
+01110000010010001010100000000000
+00100000010000000100000001000101
+00100000001000000110110010011001
+01101111111001000100100010001110
+11000010100001111101010110010100
+11000010100001110100000001000101
+00100000011000000000000000000000
+00100000001000000100011001110111
+01101111111000001100100110100000
+00100100011110100000000000000000
+00100000001000000100001010110101
+01101111111001000100100010001110
+11000010100001111011111100110001
+00100000001000000011111011001000
+01101111111001000100100010001110
+11000011000111101000000100110001
+01101000010010001100010001000000
+00100000010000000100111100001010
+01101000010010001100010001000000
+00100000010000000110111011100000
+00100000001000001000000100101010
+00100000010000000100000001001001
+11011000010000000000000010000000
+11011010001000000100011001111000
+11011010010000000000000000000000
+00100000010000000110110011010111
+00100000001000000011111110100010
+00011010001000100000110000000000
+11101111111000011000000000000110
+01100111111000011100001110011011
+11000000000000001100100100011001
+11000000000000111100100101011100
+11000000000001001100100100111000
+11000000000001011100100101010010
+11000000000001000100100101110001
+11000000000001100000000101000100
+11000000000001010100100110011111
+11000000000010010100100111000101
+11000000001010010100100111001011
+00100000001000000010101101110110
+11101111111000010000000000000110
+01100111111000010000011010010011
+10011000000000000010001000000000
+01101000010010010100001110011100
+01101111111000010100001100110100
+10011000010001100111110000000000
+00100100001000101010110100101110
+00100000001000000100100110011001
+01101111111000001100101010100000
+11000000000000010000000101001111
+00100000001000000100011011001101
+01101111111000001100011001111000
+11000000100000000100011101001011
+01110000010010011010100100000010
+01101111111000001100100110100110
+00100000010110100100011011101111
+01110000010010101010000000000000
+01011000000000000000000000000011
+01100111111000011100101001101111
+00100000001000000100011011100110
+00011000010000100111111000000000
+01110000010010100110111100000101
+01101000010010001100100110100110
+00011000010001100111110000000000
+00100000001000101000000101001111
+11000000011101000000000101110110
+11000000011101001000000101111100
+11000000011101010000000110000000
+11000000011101011000000110000100
+11000000011101100000000110001000
+11000000011101101000000110001100
+11000000011101110000000110010000
+11000000011101111000000110010100
+11000000011110000000000110011000
+11000000011110001000000110011100
+11000000011110010000000110100000
+11000000011110011000000110100100
+11000000011110100000000110101000
+11000000011110101000000110101100
+11000000011110110000000110110000
+11000000011110111000000110110111
+11000000011111000000000110111111
+11000000011111001000000111000011
+11000000011111010000000111000111
+11000000011111011000000111001011
+11000000011111100000000111001111
+11000000011111101000000111010011
+11000000011111110000000111010111
+11000000011111111000000111011011
+00100000001000000100011011100110
+01101111111000001100011001111000
+11000000100000000100011100010101
+01011000000000000000000110000011
+01100111111000010100101001110000
+01110000010010100110111100000011
+00100000001000000100011011100110
+01101111111000001100011001111000
+11000000100000000100011100011000
+01011000000000000000000011101010
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011100011010
+01011000000000000000000011101001
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011100011100
+01011000000000000000000011100010
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011100011110
+01011000000000000000000010110110
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011100100000
+01011000000000000000000010110101
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011100100010
+01011000000000000000000011001101
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011100100100
+01011000000000000000000010110111
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011100100110
+01011000000000000000001000100011
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011100101000
+01011000000000000000000110001010
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011100101010
+01011000000000000000000110010100
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011100101100
+01011000000000000000001000101010
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011100101110
+01011000000000000000000110010010
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011100110000
+01011000000000000000001000100001
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011100110010
+01101111111000001100101010100001
+11000000000000010000000110011000
+11000000000000011000000110011000
+01011000000000000000001000100100
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011100110111
+01101111111000001100101010100001
+11000000000000001000000110111101
+01011000000000000000000110101110
+00100000001000000000000101111001
+01011000000000000000001100000111
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011100111101
+01011000000000000000000001110000
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011100111111
+01011000000000000000000001101111
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011101000001
+01011000000000000000000000110000
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011101000011
+01011000000000000000000010111000
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011101000101
+01011000000000000000001000100101
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011101000111
+01011000000000000000001000100110
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011101001001
+01011000000000000000001000100111
+00100000001000000000000101111001
+01101111111000001100011001111000
+11000000100000000100011101010010
+01110000010010100110111100000010
+01011000000000000000000000000010
+01100111111000001100101001110000
+00100000001000000100011011100110
+11000000011101101100011100100000
+00100000010000000100011110110011
+00100000001000000011011110011100
+01101111111000001100011001111000
+11000000000000000000000111100111
+00100000001000000100000101001000
+01101111111000010100010111101111
+00100000001110100000000111101010
+00100000001000000100000101001101
+01101111111000010100010111110101
+00100100001110100100000101001101
+00100000001000000100000101110010
+00100000010000000100010000101110
+00100000010000000100010000110101
+00100000010000000000000111110010
+00100000010000000100010101100100
+00100000001000000100001111011110
+01101111111000001100100110101010
+11000000010101111000000111110101
+00100000001000000100010011011101
+01110000010010101001110100000011
+01110000010010101001111000010010
+00100000001000000100010100111110
Index: costumer/Bore/keyboard_ck801_only_24g/output/eeprom.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/eeprom.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/eeprom.dat	(working copy)
@@ -0,0 +1,8192 @@
+00
+02
+8f
+ab
+f1
+00
+3c
+ae
+c6
+03
+78
+5c
+8d
+07
+e0
+71
+35
+1e
+aa
+55
+f0
+07
+ca
+22
+e1
+71
+1f
+76
+a5
+fd
+f3
+ad
+40
+43
+3b
+db
+69
+2d
+99
+a6
+57
+b4
+f0
+94
+ce
+c8
+6d
+b8
+3c
+73
+b7
+43
+88
+6f
+eb
+6a
+35
+8d
+b7
+e5
+8f
+46
+3b
+d6
+db
+b6
+65
+93
+2e
+73
+46
+e6
+e0
+f7
+14
+c5
+ab
+57
+07
+33
+00
+a9
+28
+4d
+0b
+20
+8a
+74
+8f
+82
+8e
+71
+1d
+7f
+ba
+85
+95
+47
+c4
+f7
+d0
+ef
+82
+7f
+60
+2e
+08
+6d
+45
+a5
+12
+c9
+96
+e6
+51
+72
+40
+0d
+0a
+f7
+4f
+00
+4f
+2f
+25
+1a
+69
+7f
+b5
+56
+bb
+08
+b8
+4f
+e8
+e8
+ab
+07
+f6
+9c
+ee
+af
+da
+27
+64
+88
+f6
+e0
+75
+2e
+a2
+2e
+f2
+63
+d5
+d1
+2f
+27
+f5
+c4
+28
+10
+0f
+66
+2d
+e9
+96
+35
+0f
+03
+22
+8c
+4d
+de
+c3
+42
+ea
+15
+0c
+8c
+dc
+6f
+3c
+9e
+76
+23
+10
+c5
+0c
+fc
+f1
+ad
+02
+53
+c0
+08
+5a
+9b
+c5
+a5
+3d
+b2
+19
+ae
+bc
+b0
+7d
+22
+b3
+f5
+e2
+e3
+29
+02
+67
+84
+36
+86
+c0
+0e
+94
+36
+d0
+f2
+9d
+88
+0f
+bc
+0d
+5a
+db
+e9
+3e
+4e
+63
+8e
+8d
+15
+a0
+dc
+78
+16
+47
+8f
+55
+dd
+19
+e0
+d0
+79
+74
+5f
+5f
+92
+2b
+63
+f6
+b5
+8c
+c6
+0b
+c0
+62
+42
+d7
+7d
+33
+b5
+4c
+cb
+0b
+00
+42
+5b
+30
+31
+df
+4b
+30
+8e
+07
+26
+d9
+2b
+31
+cb
+18
+c5
+91
+6b
+4a
+0a
+4a
+55
+e4
+27
+df
+85
+2a
+90
+68
+c7
+5b
+d5
+88
+85
+98
+90
+0b
+79
+40
+18
+aa
+99
+fa
+f6
+c0
+9e
+c8
+37
+df
+10
+6f
+ee
+5c
+1c
+61
+42
+14
+4f
+cf
+0f
+ba
+2d
+0c
+8a
+0e
+22
+6c
+b3
+69
+3c
+00
+75
+94
+05
+ee
+80
+3f
+3a
+b5
+6d
+af
+93
+26
+63
+34
+02
+4d
+bf
+b0
+78
+dd
+90
+d7
+b0
+4a
+85
+fc
+8f
+53
+a9
+0d
+5b
+34
+99
+f3
+03
+03
+c2
+e2
+d0
+ac
+0d
+d5
+05
+3f
+a5
+67
+e7
+ae
+05
+56
+46
+4e
+b2
+2c
+c9
+59
+c0
+c3
+ec
+fa
+8c
+2c
+79
+70
+95
+f2
+0f
+3d
+4d
+40
+e7
+6d
+75
+a3
+2d
+08
+ad
+ed
+d3
+58
+ac
+51
+75
+d0
+87
+ac
+26
+7b
+78
+21
+ac
+12
+f0
+85
+53
+b3
+42
+05
+66
+5e
+3a
+47
+5e
+c4
+16
+43
+93
+0a
+27
+2c
+35
+b9
+b5
+dc
+1e
+ff
+bf
+25
+e4
+e1
+89
+be
+8d
+17
+46
+13
+20
+ff
+b5
+a0
+e8
+d6
+4e
+5a
+88
+85
+d5
+d3
+14
+db
+ac
+77
+97
+4b
+50
+f8
+f3
+f8
+6d
+be
+13
+34
+8d
+17
+7c
+65
+b4
+89
+cb
+5f
+34
+34
+2d
+f2
+3c
+c5
+f4
+4c
+88
+4d
+cb
+a6
+32
+66
+25
+d6
+35
+28
+b3
+c6
+36
+94
+f1
+c6
+1f
+ed
+a4
+d6
+15
+1f
+2b
+e5
+a6
+60
+64
+2c
+3a
+c3
+69
+1b
+f6
+15
+21
+a6
+23
+64
+a7
+7f
+21
+62
+e4
+24
+47
+4c
+7d
+cb
+f5
+21
+a9
+0b
+40
+e3
+a7
+71
+d4
+34
+d3
+93
+39
+f5
+bf
+14
+07
+52
+a8
+c9
+a7
+a2
+11
+fb
+77
+19
+d8
+8a
+6e
+0a
+e3
+e0
+cb
+f8
+2f
+93
+cc
+51
+30
+a7
+6d
+f1
+bf
+86
+7c
+e7
+a7
+db
+cd
+61
+5d
+31
+63
+ad
+bb
+c6
+04
+e6
+14
+a3
+65
+95
+63
+f6
+42
+dd
+9c
+a2
+cb
+0c
+54
+b0
+b4
+10
+f0
+82
+9d
+9a
+1d
+c9
+f6
+42
+5a
+71
+08
+ef
+c6
+42
+10
+6d
+55
+0f
+ff
+8d
+24
+87
+d2
+d6
+0b
+0c
+59
+f3
+da
+ba
+95
+b1
+5d
+29
+39
+8a
+10
+04
+48
+3a
+0f
+5d
+50
+7e
+5d
+ec
+30
+52
+1d
+38
+4d
+c4
+4f
+89
+79
+f6
+2e
+15
+40
+76
+16
+d5
+d1
+6f
+91
+e2
+4b
+6f
+e9
+43
+af
+25
+8e
+50
+ba
+e1
+46
+0d
+6c
+f8
+9a
+ec
+23
+1d
+d2
+01
+a2
+7d
+15
+1f
+7b
+19
+79
+ed
+4e
+4c
+e4
+d2
+21
+64
+5f
+c9
+9c
+41
+80
+e3
+26
+9c
+0f
+b3
+6e
+02
+33
+93
+b5
+f6
+ee
+9d
+69
+a1
+e3
+ec
+f5
+e9
+2a
+dd
+aa
+f8
+27
+ed
+da
+19
+81
+69
+32
+37
+fe
+f2
+ea
+9b
+79
+34
+a0
+49
+16
+79
+f2
+6d
+fb
+f3
+28
+cc
+92
+a0
+d3
+9c
+08
+ad
+65
+e4
+56
+6c
+cb
+cb
+06
+9b
+fe
+d6
+b0
+5c
+6a
+f7
+2b
+99
+8e
+00
+10
+e2
+14
+1c
+14
+90
+8a
+31
+29
+cc
+0d
+26
+ca
+ca
+37
+e3
+ab
+e1
+66
+77
+d8
+97
+00
+12
+9f
+6a
+9c
+13
+cf
+e2
+b2
+d4
+8f
+be
+d3
+3b
+72
+ed
+62
+9e
+18
+1b
+c5
+16
+3a
+ec
+74
+d2
+f3
+9e
+38
+3b
+06
+bd
+06
+2d
+81
+2c
+d8
+7e
+27
+24
+1f
+d0
+57
+9a
+c6
+d1
+93
+78
+38
+11
+0a
+92
+e4
+48
+0e
+e3
+33
+b8
+81
+1f
+a7
+88
+eb
+49
+62
+ae
+b9
+04
+76
+a3
+b1
+e8
+83
+fc
+a9
+12
+3d
+b4
+28
+db
+26
+9c
+02
+e4
+92
+75
+d9
+a4
+c7
+e1
+1a
+85
+32
+29
+10
+ae
+a0
+5f
+a5
+88
+6b
+9d
+fd
+99
+7a
+55
+1f
+9f
+8d
+0b
+d2
+10
+5d
+56
+da
+15
+a7
+fb
+16
+ed
+d8
+71
+e6
+b7
+72
+5b
+3d
+e6
+01
+59
+af
+18
+df
+14
+d7
+cf
+27
+51
+40
+ad
+d6
+40
+a0
+aa
+33
+30
+91
+50
+c1
+67
+37
+0d
+66
+c7
+a2
+e9
+e2
+9d
+10
+12
+51
+c3
+8b
+f6
+fd
+be
+0a
+23
+ab
+27
+9f
+73
+73
+c2
+92
+21
+12
+e1
+fe
+49
+0b
+69
+d8
+7c
+91
+8c
+32
+7c
+ea
+46
+a9
+64
+be
+32
+21
+63
+b1
+a5
+b5
+5f
+4a
+21
+e4
+7e
+27
+36
+a6
+db
+d0
+92
+2e
+fd
+bc
+3b
+92
+8d
+53
+4e
+fb
+61
+ba
+64
+48
+ac
+3f
+36
+35
+76
+cc
+7e
+ea
+06
+35
+cc
+12
+93
+99
+80
+81
+bb
+e8
+c4
+bb
+aa
+96
+03
+78
+0a
+bb
+b6
+f5
+14
+e3
+56
+3b
+b4
+6d
+43
+80
+05
+0c
+bb
+a1
+56
+ba
+79
+8f
+79
+b0
+3f
+d4
+b6
+65
+f7
+03
+53
+73
+d5
+6f
+a4
+e3
+20
+b7
+e9
+93
+3c
+79
+76
+ee
+a3
+43
+54
+70
+a2
+ac
+36
+26
+28
+93
+2f
+ae
+5f
+d8
+8e
+47
+ba
+91
+9e
+16
+39
+de
+ad
+08
+3a
+82
+7a
+94
+17
+34
+b2
+e7
+c9
+77
+8a
+20
+18
+25
+5f
+c6
+40
+1d
+2d
+56
+bb
+03
+1b
+91
+13
+3e
+c8
+ec
+02
+12
+c4
+cb
+8d
+85
+99
+69
+1f
+f1
+84
+09
+81
+83
+08
+3e
+ef
+ec
+d5
+2a
+36
+ac
+c4
+1b
+92
+f0
+af
+6a
+38
+87
+ac
+d4
+72
+29
+aa
+fc
+27
+90
+b4
+f2
+60
+ff
+26
+97
+ef
+0c
+dc
+4d
+e2
+66
+74
+88
+1a
+d7
+99
+5b
+88
+77
+95
+16
+df
+bc
+e5
+1d
+61
+92
+c4
+d0
+4b
+c2
+d2
+20
+a6
+64
+7f
+c4
+d5
+4c
+ef
+bc
+f9
+6b
+77
+ec
+cb
+21
+1b
+3e
+89
+ec
+47
+c5
+45
+d4
+35
+66
+b1
+b4
+75
+65
+0f
+9c
+36
+0e
+03
+27
+d8
+cb
+83
+34
+c3
+42
+e4
+af
+10
+2d
+7e
+2f
+1b
+28
+02
+01
+0d
+19
+a5
+72
+76
+1b
+aa
+6b
+68
+c9
+a4
+2a
+2b
+6d
+ea
+bc
+3e
+8b
+3f
+5a
+d4
+b3
+22
+99
+2a
+ec
+01
+57
+2b
+b3
+21
+c3
+03
+72
+36
+9e
+a7
+e8
+58
+ad
+df
+c2
+6c
+6e
+53
+e7
+0f
+6f
+3d
+64
+9a
+bf
+89
+79
+df
+0d
+b8
+0f
+bb
+b6
+e1
+91
+cf
+a5
+06
+a5
+5b
+a7
+d4
+78
+c6
+3d
+b9
+dc
+7d
+5f
+3f
+18
+c4
+47
+ec
+57
+73
+34
+4e
+98
+1d
+65
+77
+9c
+9b
+03
+57
+92
+96
+df
+f0
+20
+ba
+7a
+30
+bb
+8a
+9b
+46
+18
+27
+88
+b2
+23
+51
+43
+f5
+61
+79
+79
+ff
+13
+fc
+87
+b5
+0f
+bd
+e0
+10
+47
+00
+c5
+2e
+da
+ad
+55
+19
+9f
+fa
+a9
+df
+a5
+4d
+ea
+54
+f6
+bb
+a2
+46
+82
+fe
+a3
+26
+96
+9b
+e4
+41
+ed
+0a
+ae
+4e
+da
+99
+d9
+9d
+81
+30
+02
+38
+5f
+a1
+af
+22
+46
+4e
+ff
+c8
+52
+07
+89
+a7
+cf
+a8
+a2
+dc
+cf
+f0
+be
+2d
+75
+12
+99
+d9
+63
+53
+cb
+2e
+2a
+07
+70
+d4
+99
+ce
+6a
+d8
+64
+94
+23
+c2
+50
+5e
+a5
+64
+19
+bb
+7c
+a8
+1f
+f5
+ab
+57
+24
+87
+ae
+5b
+e6
+0d
+02
+ef
+29
+e5
+8d
+c6
+e9
+5c
+60
+41
+a0
+d6
+ad
+15
+4a
+dd
+d6
+86
+e1
+9d
+95
+5e
+d0
+50
+64
+57
+eb
+57
+9d
+fa
+b5
+ef
+9e
+f3
+e9
+66
+90
+40
+6a
+2d
+53
+10
+1e
+ef
+28
+a9
+b0
+7b
+b7
+45
+a6
+ab
+e6
+05
+ab
+df
+61
+b2
+77
+46
+93
+09
+18
+6a
+fc
+c8
+1e
+95
+5f
+4f
+d1
+a0
+e0
+db
+cf
+8f
+51
+a1
+9d
+dc
+60
+eb
+6e
+ba
+04
+39
+fa
+79
+bb
+89
+0c
+b8
+45
+a8
+aa
+c1
+a4
+34
+02
+af
+11
+bf
+f2
+06
+f7
+07
+5e
+ee
+fe
+64
+53
+0c
+36
+bb
+18
+80
+15
+38
+de
+46
+d9
+5e
+03
+d6
+98
+b0
+17
+e8
+4f
+fd
+16
+29
+ca
+86
+8d
+d5
+b1
+ab
+3d
+84
+e6
+66
+29
+78
+f5
+3c
+dd
+0a
+91
+ca
+14
+e5
+f3
+3b
+82
+36
+62
+a9
+20
+95
+f0
+0d
+29
+f4
+06
+16
+88
+c0
+6c
+60
+1c
+39
+e1
+14
+72
+03
+8e
+db
+9d
+82
+a2
+b7
+dc
+1b
+17
+84
+68
+9f
+e8
+41
+74
+d8
+67
+15
+8c
+cb
+48
+60
+46
+09
+00
+7b
+68
+e2
+4c
+f9
+e3
+dd
+6b
+0d
+30
+77
+01
+c4
+57
+d5
+13
+d9
+1e
+73
+47
+3f
+68
+c3
+bd
+c2
+eb
+6f
+28
+22
+8e
+04
+c4
+b0
+01
+16
+25
+55
+34
+40
+b5
+46
+23
+89
+41
+a1
+82
+33
+52
+88
+0b
+20
+73
+f0
+90
+74
+63
+4b
+04
+73
+38
+60
+39
+cb
+46
+0f
+1a
+75
+3d
+05
+a8
+43
+24
+7f
+20
+0f
+8c
+ff
+b5
+8d
+c8
+48
+46
+a8
+50
+59
+9e
+56
+21
+12
+61
+60
+96
+ea
+6a
+91
+af
+b3
+76
+8e
+f1
+c6
+61
+98
+16
+61
+f1
+53
+bf
+f8
+b1
+f5
+98
+87
+9b
+30
+31
+31
+8e
+59
+67
+e3
+b8
+ce
+f1
+6b
+54
+26
+58
+bf
+7c
+d3
+3c
+c0
+0c
+d3
+38
+c8
+1d
+f5
+dc
+0c
+4c
+81
+b3
+3d
+8b
+df
+50
+36
+8e
+0c
+9d
+d0
+7b
+ae
+5d
+36
+a0
+f0
+0d
+3f
+e2
+54
+38
+22
+4f
+90
+bf
+2f
+87
+f0
+ec
+4a
+db
+e1
+69
+b1
+44
+7b
+7c
+ca
+c9
+28
+74
+76
+eb
+c4
+aa
+e9
+ba
+e4
+a9
+9f
+fd
+c5
+80
+f3
+97
+40
+c7
+5e
+a7
+86
+8c
+90
+f9
+77
+bb
+d7
+be
+7a
+d9
+5a
+27
+ea
+cb
+0f
+75
+1f
+37
+b7
+03
+ac
+30
+d2
+c0
+02
+af
+cb
+18
+27
+5a
+4f
+6a
+7d
+96
+5c
+be
+c6
+df
+6e
+79
+a0
+96
+46
+f2
+2f
+c9
+75
+fa
+25
+56
+df
+23
+5b
+71
+8f
+dc
+a0
+3d
+75
+38
+39
+b2
+67
+0d
+bc
+71
+2e
+24
+5c
+e7
+ce
+8e
+ee
+f5
+8c
+43
+ed
+c9
+a0
+c6
+91
+e0
+24
+c0
+d8
+32
+e3
+aa
+00
+86
+f0
+1a
+fa
+24
+68
+e4
+33
+f1
+a5
+0e
+11
+91
+5a
+74
+c9
+c5
+dd
+39
+81
+09
+e7
+f1
+86
+cb
+73
+5d
+18
+a6
+e2
+4c
+78
+5e
+32
+f9
+b9
+73
+e3
+73
+87
+ba
+88
+60
+6f
+6f
+aa
+55
+40
+00
+00
+40
+00
+00
+00
+06
+00
+01
+00
+40
+19
+50
+40
+12
+00
+04
+00
+10
+04
+00
+00
+00
+00
+00
+00
+00
+00
+80
+00
+00
+00
+06
+00
+04
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+04
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+08
+00
+8e
+48
+00
+89
+0d
+00
+00
+06
+00
+00
+aa
+55
+01
+00
+cf
+43
+0f
+aa
+55
+01
+00
+8d
+48
+01
+aa
+55
+02
+00
+da
+4a
+a3
+e4
+aa
+55
+01
+00
+03
+45
+ff
+aa
+55
+01
+00
+02
+45
+1e
+aa
+55
+01
+00
+05
+45
+01
+aa
+55
+01
+00
+41
+41
+01
+aa
+55
+01
+00
+e9
+45
+07
+aa
+55
+02
+00
+07
+46
+43
+47
+aa
+55
+02
+00
+57
+46
+85
+90
+aa
+55
+02
+00
+5a
+46
+75
+80
+aa
+55
+01
+00
+59
+46
+63
+aa
+55
+01
+00
+3e
+46
+7d
+aa
+55
+09
+00
+d1
+4a
+01
+51
+31
+10
+50
+51
+31
+20
+50
+aa
+55
+06
+00
+08
+45
+03
+11
+36
+55
+51
+61
+aa
+55
+01
+00
+a0
+45
+02
+aa
+55
+05
+00
+fa
+45
+01
+0f
+0f
+0f
+0f
+aa
+55
+01
+00
+d0
+45
+00
+aa
+55
+01
+00
+38
+47
+02
+aa
+55
+01
+00
+e1
+45
+00
+aa
+55
+02
+00
+a2
+45
+c0
+12
+aa
+55
+01
+00
+55
+46
+9e
+aa
+55
+03
+00
+c6
+45
+00
+48
+60
+aa
+55
+02
+00
+34
+46
+0a
+00
+aa
+55
+02
+00
+32
+46
+50
+00
+aa
+55
+02
+00
+1c
+47
+32
+00
+aa
+55
+01
+00
+06
+47
+02
+aa
+55
+08
+00
+c4
+43
+fb
+00
+48
+08
+fb
+00
+48
+08
+aa
+55
+01
+00
+94
+40
+01
+aa
+55
+01
+00
+c0
+40
+10
+aa
+55
+01
+00
+8b
+48
+10
+aa
+55
+06
+00
+dd
+42
+73
+83
+92
+a1
+b1
+c1
+aa
+55
+01
+00
+97
+43
+07
+aa
+55
+02
+00
+7d
+47
+96
+00
+aa
+55
+02
+00
+74
+47
+15
+00
+aa
+55
+02
+00
+9f
+43
+19
+00
+aa
+55
+04
+00
+76
+47
+1d
+00
+21
+00
+aa
+55
+02
+00
+34
+43
+28
+00
+aa
+55
+02
+00
+7a
+47
+30
+00
+aa
+55
+0c
+00
+4c
+43
+1f
+02
+01
+05
+03
+03
+12
+18
+03
+19
+c1
+03
+aa
+55
+07
+00
+5f
+47
+06
+ff
+06
+00
+03
+00
+80
+aa
+55
+15
+00
+6c
+43
+1f
+13
+09
+42
+6c
+75
+65
+74
+6f
+6f
+74
+68
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+13
+00
+6d
+42
+12
+42
+6c
+75
+65
+74
+6f
+6f
+74
+68
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+08
+00
+d5
+42
+08
+00
+08
+00
+20
+00
+2c
+01
+aa
+55
+06
+00
+59
+47
+03
+12
+18
+ff
+00
+00
+aa
+55
+09
+00
+01
+49
+41
+70
+70
+6c
+65
+20
+49
+6e
+63
+aa
+55
+02
+00
+ff
+48
+0a
+18
+aa
+55
+10
+00
+ee
+48
+d0
+00
+2d
+12
+1e
+4b
+0f
+a4
+99
+4e
+ce
+b5
+31
+f4
+05
+79
+aa
+55
+02
+00
+0a
+49
+c1
+03
+aa
+55
+08
+00
+ce
+48
+01
+02
+e8
+04
+21
+70
+01
+00
+aa
+55
+16
+00
+d8
+48
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+24
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+aa
+55
+01
+00
+1d
+44
+02
+aa
+55
+01
+00
+1f
+44
+0a
+aa
+55
+01
+00
+1e
+44
+0d
+aa
+55
+01
+00
+27
+44
+00
+aa
+55
+04
+00
+23
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+b1
+48
+00
+aa
+55
+01
+00
+c1
+4a
+1e
+aa
+55
+02
+00
+1a
+47
+02
+00
+aa
+55
+01
+00
+54
+46
+64
+aa
+55
+02
+00
+51
+46
+58
+02
+aa
+55
+01
+00
+19
+47
+64
+aa
+55
+01
+00
+53
+46
+64
+aa
+55
+02
+00
+4f
+46
+08
+07
+aa
+55
+02
+00
+1e
+47
+50
+46
+aa
+55
+02
+00
+c7
+4a
+64
+00
+aa
+55
+01
+00
+cd
+4a
+05
+aa
+55
+01
+00
+ca
+4a
+05
+aa
+55
+02
+00
+a1
+49
+b8
+0b
+aa
+55
+08
+00
+78
+46
+00
+34
+00
+00
+00
+00
+00
+00
+aa
+55
+01
+00
+16
+47
+01
+aa
+55
+0f
+00
+97
+48
+00
+7f
+1e
+00
+7f
+1f
+00
+7f
+20
+00
+7f
+21
+00
+7f
+22
+aa
+55
+07
+00
+ba
+48
+07
+01
+02
+04
+03
+05
+06
+aa
+55
+02
+00
+c8
+48
+50
+00
+aa
+55
+02
+00
+c3
+4a
+58
+02
+aa
+55
+06
+00
+b2
+48
+13
+01
+a0
+0f
+00
+1e
+aa
+55
+03
+00
+1c
+49
+ff
+ff
+ff
+aa
+55
+01
+00
+7f
+4a
+01
+aa
+55
+01
+00
+0f
+49
+ff
+aa
+55
+06
+00
+95
+4a
+7f
+ff
+29
+14
+2a
+10
+aa
+55
+03
+00
+3e
+44
+ff
+ff
+ff
+aa
+55
+02
+00
+f4
+43
+10
+00
+aa
+55
+03
+00
+fe
+46
+00
+50
+00
+aa
+55
+02
+00
+bf
+4a
+20
+03
+aa
+55
+09
+00
+13
+49
+8c
+89
+ff
+ff
+8a
+8a
+ff
+ff
+ff
+aa
+55
+03
+00
+10
+49
+0b
+0d
+ff
+aa
+55
+01
+00
+66
+46
+05
+aa
+55
+0c
+00
+3c
+49
+c2
+c3
+c4
+c5
+c6
+c7
+80
+81
+82
+83
+84
+85
+aa
+55
+1c
+00
+1f
+49
+08
+07
+06
+04
+03
+00
+01
+02
+13
+c6
+c5
+c4
+c3
+c2
+80
+c7
+0f
+12
+0e
+84
+83
+82
+81
+85
+14
+15
+ff
+ff
+aa
+55
+90
+00
+c7
+49
+48
+00
+00
+00
+e4
+00
+e0
+3e
+14
+2b
+04
+29
+1d
+8b
+35
+1e
+1a
+39
+16
+64
+1b
+8a
+3a
+1f
+08
+3c
+07
+3d
+06
+88
+3b
+20
+15
+17
+09
+0a
+19
+05
+22
+21
+18
+1c
+0d
+0b
+10
+11
+23
+24
+0c
+30
+0e
+3f
+36
+87
+2e
+25
+12
+40
+0f
+00
+37
+65
+41
+26
+13
+2f
+33
+34
+32
+38
+2d
+27
+47
+00
+7f
+e2
+00
+e6
+00
+46
+89
+2a
+31
+44
+28
+45
+42
+43
+5f
+5c
+59
+2c
+53
+51
+4c
+00
+60
+5d
+5a
+62
+54
+4f
+49
+00
+61
+5e
+5b
+63
+55
+56
+4b
+4e
+57
+85
+58
+52
+e9
+50
+4a
+4d
+00
+e1
+e5
+ed
+ee
+ec
+eb
+e8
+f1
+e3
+f6
+f8
+f7
+f9
+ef
+fa
+91
+f5
+e7
+f0
+ea
+f2
+fb
+90
+aa
+55
+0f
+00
+84
+4a
+00
+29
+e8
+e9
+ea
+eb
+ec
+ed
+ee
+ef
+f0
+f1
+f2
+af
+4c
+aa
+55
+01
+00
+94
+4a
+29
+aa
+55
+b1
+00
+e8
+4a
+af
+00
+05
+01
+09
+06
+a1
+01
+85
+02
+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
+26
+ff
+00
+05
+07
+19
+00
+29
+ff
+81
+00
+c0
+05
+0c
+09
+01
+a1
+01
+85
+03
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+c0
+05
+01
+09
+80
+a1
+01
+85
+04
+15
+00
+25
+01
+75
+01
+95
+03
+19
+81
+29
+83
+81
+02
+95
+01
+75
+05
+81
+03
+c0
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+35
+3f
+64
+db
+7b
+3b
+aa
+55
+01
+00
+a7
+40
+20
+aa
+55
+03
+00
+c9
+40
+00
+08
+b4
+aa
+55
+01
+00
+99
+40
+18
+aa
+55
+01
+00
+1c
+41
+7f
+aa
+55
+0c
+00
+16
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+aa
+55
+05
+00
+60
+41
+08
+0e
+05
+03
+00
+aa
+55
+01
+00
+6a
+41
+20
+aa
+55
+02
+00
+9a
+40
+00
+10
+aa
+55
+05
+00
+43
+41
+ff
+04
+00
+00
+08
+aa
+55
+01
+00
+4f
+44
+a0
+aa
+55
+02
+00
+52
+44
+bc
+02
+aa
+55
+02
+00
+50
+44
+90
+01
+aa
+55
+02
+00
+54
+44
+03
+09
+aa
+55
+01
+00
+49
+41
+ff
+aa
+55
+02
+00
+9c
+40
+49
+41
+55
+aa
+aa
+55
+d4
+95
+6f
+87
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+a9
+1d
Index: costumer/Bore/keyboard_ck801_only_24g/output/flash.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/flash.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/flash.dat	(working copy)
@@ -0,0 +1,8192 @@
+00
+02
+8f
+ab
+f1
+00
+3c
+ae
+c6
+03
+78
+5c
+8d
+07
+e0
+71
+35
+1e
+aa
+55
+f0
+07
+ca
+22
+e1
+71
+1f
+76
+a5
+fd
+f3
+ad
+40
+43
+3b
+db
+69
+2d
+99
+a6
+57
+b4
+f0
+94
+ce
+c8
+6d
+b8
+3c
+73
+b7
+43
+88
+6f
+eb
+6a
+35
+8d
+b7
+e5
+8f
+46
+3b
+d6
+db
+b6
+65
+93
+2e
+73
+46
+e6
+e0
+f7
+14
+c5
+ab
+57
+07
+33
+00
+a9
+28
+4d
+0b
+20
+8a
+74
+8f
+82
+8e
+71
+1d
+7f
+ba
+85
+95
+47
+c4
+f7
+d0
+ef
+82
+7f
+60
+2e
+08
+6d
+45
+a5
+12
+c9
+96
+e6
+51
+72
+40
+0d
+0a
+f7
+4f
+00
+4f
+2f
+25
+1a
+69
+7f
+b5
+56
+bb
+08
+b8
+4f
+e8
+e8
+ab
+07
+f6
+9c
+ee
+af
+da
+27
+64
+88
+f6
+e0
+75
+2e
+a2
+2e
+f2
+63
+d5
+d1
+2f
+27
+f5
+c4
+28
+10
+0f
+66
+2d
+e9
+96
+35
+0f
+03
+22
+8c
+4d
+de
+c3
+42
+ea
+15
+0c
+8c
+dc
+6f
+3c
+9e
+76
+23
+10
+c5
+0c
+fc
+f1
+ad
+02
+53
+c0
+08
+5a
+9b
+c5
+a5
+3d
+b2
+19
+ae
+bc
+b0
+7d
+22
+b3
+f5
+e2
+e3
+29
+02
+67
+84
+36
+86
+c0
+0e
+94
+36
+d0
+f2
+9d
+88
+0f
+bc
+0d
+5a
+db
+e9
+3e
+4e
+63
+8e
+8d
+15
+a0
+dc
+78
+16
+47
+8f
+55
+dd
+19
+e0
+d0
+79
+74
+5f
+5f
+92
+2b
+63
+f6
+b5
+8c
+c6
+0b
+c0
+62
+42
+d7
+7d
+33
+b5
+4c
+cb
+0b
+00
+42
+5b
+30
+31
+df
+4b
+30
+8e
+07
+26
+d9
+2b
+31
+cb
+18
+c5
+91
+6b
+4a
+0a
+4a
+55
+e4
+27
+df
+85
+2a
+90
+68
+c7
+5b
+d5
+88
+85
+98
+90
+0b
+79
+40
+18
+aa
+99
+fa
+f6
+c0
+9e
+c8
+37
+df
+10
+6f
+ee
+5c
+1c
+61
+42
+14
+4f
+cf
+0f
+ba
+2d
+0c
+8a
+0e
+22
+6c
+b3
+69
+3c
+00
+75
+94
+05
+ee
+80
+3f
+3a
+b5
+6d
+af
+93
+26
+63
+34
+02
+4d
+bf
+b0
+78
+dd
+90
+d7
+b0
+4a
+85
+fc
+8f
+53
+a9
+0d
+5b
+34
+99
+f3
+03
+03
+c2
+e2
+d0
+ac
+0d
+d5
+05
+3f
+a5
+67
+e7
+ae
+05
+56
+46
+4e
+b2
+2c
+c9
+59
+c0
+c3
+ec
+fa
+8c
+2c
+79
+70
+95
+f2
+0f
+3d
+4d
+40
+e7
+6d
+75
+a3
+2d
+08
+ad
+ed
+d3
+58
+ac
+51
+75
+d0
+87
+ac
+26
+7b
+78
+21
+ac
+12
+f0
+85
+53
+b3
+42
+05
+66
+5e
+3a
+47
+5e
+c4
+16
+43
+93
+0a
+27
+2c
+35
+b9
+b5
+dc
+1e
+ff
+bf
+25
+e4
+e1
+89
+be
+8d
+17
+46
+13
+20
+ff
+b5
+a0
+e8
+d6
+4e
+5a
+88
+85
+d5
+d3
+14
+db
+ac
+77
+97
+4b
+50
+f8
+f3
+f8
+6d
+be
+13
+34
+8d
+17
+7c
+65
+b4
+89
+cb
+5f
+34
+34
+2d
+f2
+3c
+c5
+f4
+4c
+88
+4d
+cb
+a6
+32
+66
+25
+d6
+35
+28
+b3
+c6
+36
+94
+f1
+c6
+1f
+ed
+a4
+d6
+15
+1f
+2b
+e5
+a6
+60
+64
+2c
+3a
+c3
+69
+1b
+f6
+15
+21
+a6
+23
+64
+a7
+7f
+21
+62
+e4
+24
+47
+4c
+7d
+cb
+f5
+21
+a9
+0b
+40
+e3
+a7
+71
+d4
+34
+d3
+93
+39
+f5
+bf
+14
+07
+52
+a8
+c9
+a7
+a2
+11
+fb
+77
+19
+d8
+8a
+6e
+0a
+e3
+e0
+cb
+f8
+2f
+93
+cc
+51
+30
+a7
+6d
+f1
+bf
+86
+7c
+e7
+a7
+db
+cd
+61
+5d
+31
+63
+ad
+bb
+c6
+04
+e6
+14
+a3
+65
+95
+63
+f6
+42
+dd
+9c
+a2
+cb
+0c
+54
+b0
+b4
+10
+f0
+82
+9d
+9a
+1d
+c9
+f6
+42
+5a
+71
+08
+ef
+c6
+42
+10
+6d
+55
+0f
+ff
+8d
+24
+87
+d2
+d6
+0b
+0c
+59
+f3
+da
+ba
+95
+b1
+5d
+29
+39
+8a
+10
+04
+48
+3a
+0f
+5d
+50
+7e
+5d
+ec
+30
+52
+1d
+38
+4d
+c4
+4f
+89
+79
+f6
+2e
+15
+40
+76
+16
+d5
+d1
+6f
+91
+e2
+4b
+6f
+e9
+43
+af
+25
+8e
+50
+ba
+e1
+46
+0d
+6c
+f8
+9a
+ec
+23
+1d
+d2
+01
+a2
+7d
+15
+1f
+7b
+19
+79
+ed
+4e
+4c
+e4
+d2
+21
+64
+5f
+c9
+9c
+41
+80
+e3
+26
+9c
+0f
+b3
+6e
+02
+33
+93
+b5
+f6
+ee
+9d
+69
+a1
+e3
+ec
+f5
+e9
+2a
+dd
+aa
+f8
+27
+ed
+da
+19
+81
+69
+32
+37
+fe
+f2
+ea
+9b
+79
+34
+a0
+49
+16
+79
+f2
+6d
+fb
+f3
+28
+cc
+92
+a0
+d3
+9c
+08
+ad
+65
+e4
+56
+6c
+cb
+cb
+06
+9b
+fe
+d6
+b0
+5c
+6a
+f7
+2b
+99
+8e
+00
+10
+e2
+14
+1c
+14
+90
+8a
+31
+29
+cc
+0d
+26
+ca
+ca
+37
+e3
+ab
+e1
+66
+77
+d8
+97
+00
+12
+9f
+6a
+9c
+13
+cf
+e2
+b2
+d4
+8f
+be
+d3
+3b
+72
+ed
+62
+9e
+18
+1b
+c5
+16
+3a
+ec
+74
+d2
+f3
+9e
+38
+3b
+06
+bd
+06
+2d
+81
+2c
+d8
+7e
+27
+24
+1f
+d0
+57
+9a
+c6
+d1
+93
+78
+38
+11
+0a
+92
+e4
+48
+0e
+e3
+33
+b8
+81
+1f
+a7
+88
+eb
+49
+62
+ae
+b9
+04
+76
+a3
+b1
+e8
+83
+fc
+a9
+12
+3d
+b4
+28
+db
+26
+9c
+02
+e4
+92
+75
+d9
+a4
+c7
+e1
+1a
+85
+32
+29
+10
+ae
+a0
+5f
+a5
+88
+6b
+9d
+fd
+99
+7a
+55
+1f
+9f
+8d
+0b
+d2
+10
+5d
+56
+da
+15
+a7
+fb
+16
+ed
+d8
+71
+e6
+b7
+72
+5b
+3d
+e6
+01
+59
+af
+18
+df
+14
+d7
+cf
+27
+51
+40
+ad
+d6
+40
+a0
+aa
+33
+30
+91
+50
+c1
+67
+37
+0d
+66
+c7
+a2
+e9
+e2
+9d
+10
+12
+51
+c3
+8b
+f6
+fd
+be
+0a
+23
+ab
+27
+9f
+73
+73
+c2
+92
+21
+12
+e1
+fe
+49
+0b
+69
+d8
+7c
+91
+8c
+32
+7c
+ea
+46
+a9
+64
+be
+32
+21
+63
+b1
+a5
+b5
+5f
+4a
+21
+e4
+7e
+27
+36
+a6
+db
+d0
+92
+2e
+fd
+bc
+3b
+92
+8d
+53
+4e
+fb
+61
+ba
+64
+48
+ac
+3f
+36
+35
+76
+cc
+7e
+ea
+06
+35
+cc
+12
+93
+99
+80
+81
+bb
+e8
+c4
+bb
+aa
+96
+03
+78
+0a
+bb
+b6
+f5
+14
+e3
+56
+3b
+b4
+6d
+43
+80
+05
+0c
+bb
+a1
+56
+ba
+79
+8f
+79
+b0
+3f
+d4
+b6
+65
+f7
+03
+53
+73
+d5
+6f
+a4
+e3
+20
+b7
+e9
+93
+3c
+79
+76
+ee
+a3
+43
+54
+70
+a2
+ac
+36
+26
+28
+93
+2f
+ae
+5f
+d8
+8e
+47
+ba
+91
+9e
+16
+39
+de
+ad
+08
+3a
+82
+7a
+94
+17
+34
+b2
+e7
+c9
+77
+8a
+20
+18
+25
+5f
+c6
+40
+1d
+2d
+56
+bb
+03
+1b
+91
+13
+3e
+c8
+ec
+02
+12
+c4
+cb
+8d
+85
+99
+69
+1f
+f1
+84
+09
+81
+83
+08
+3e
+ef
+ec
+d5
+2a
+36
+ac
+c4
+1b
+92
+f0
+af
+6a
+38
+87
+ac
+d4
+72
+29
+aa
+fc
+27
+90
+b4
+f2
+60
+ff
+26
+97
+ef
+0c
+dc
+4d
+e2
+66
+74
+88
+1a
+d7
+99
+5b
+88
+77
+95
+16
+df
+bc
+e5
+1d
+61
+92
+c4
+d0
+4b
+c2
+d2
+20
+a6
+64
+7f
+c4
+d5
+4c
+ef
+bc
+f9
+6b
+77
+ec
+cb
+21
+1b
+3e
+89
+ec
+47
+c5
+45
+d4
+35
+66
+b1
+b4
+75
+65
+0f
+9c
+36
+0e
+03
+27
+d8
+cb
+83
+34
+c3
+42
+e4
+af
+10
+2d
+7e
+2f
+1b
+28
+02
+01
+0d
+19
+a5
+72
+76
+1b
+aa
+6b
+68
+c9
+a4
+2a
+2b
+6d
+ea
+bc
+3e
+8b
+3f
+5a
+d4
+b3
+22
+99
+2a
+ec
+01
+57
+2b
+b3
+21
+c3
+03
+72
+36
+9e
+a7
+e8
+58
+ad
+df
+c2
+6c
+6e
+53
+e7
+0f
+6f
+3d
+64
+9a
+bf
+89
+79
+df
+0d
+b8
+0f
+bb
+b6
+e1
+91
+cf
+a5
+06
+a5
+5b
+a7
+d4
+78
+c6
+3d
+b9
+dc
+7d
+5f
+3f
+18
+c4
+47
+ec
+57
+73
+34
+4e
+98
+1d
+65
+77
+9c
+9b
+03
+57
+92
+96
+df
+f0
+20
+ba
+7a
+30
+bb
+8a
+9b
+46
+18
+27
+88
+b2
+23
+51
+43
+f5
+61
+79
+79
+ff
+13
+fc
+87
+b5
+0f
+bd
+e0
+10
+47
+00
+c5
+2e
+da
+ad
+55
+19
+9f
+fa
+a9
+df
+a5
+4d
+ea
+54
+f6
+bb
+a2
+46
+82
+fe
+a3
+26
+96
+9b
+e4
+41
+ed
+0a
+ae
+4e
+da
+99
+d9
+9d
+81
+30
+02
+38
+5f
+a1
+af
+22
+46
+4e
+ff
+c8
+52
+07
+89
+a7
+cf
+a8
+a2
+dc
+cf
+f0
+be
+2d
+75
+12
+99
+d9
+63
+53
+cb
+2e
+2a
+07
+70
+d4
+99
+ce
+6a
+d8
+64
+94
+23
+c2
+50
+5e
+a5
+64
+19
+bb
+7c
+a8
+1f
+f5
+ab
+57
+24
+87
+ae
+5b
+e6
+0d
+02
+ef
+29
+e5
+8d
+c6
+e9
+5c
+60
+41
+a0
+d6
+ad
+15
+4a
+dd
+d6
+86
+e1
+9d
+95
+5e
+d0
+50
+64
+57
+eb
+57
+9d
+fa
+b5
+ef
+9e
+f3
+e9
+66
+90
+40
+6a
+2d
+53
+10
+1e
+ef
+28
+a9
+b0
+7b
+b7
+45
+a6
+ab
+e6
+05
+ab
+df
+61
+b2
+77
+46
+93
+09
+18
+6a
+fc
+c8
+1e
+95
+5f
+4f
+d1
+a0
+e0
+db
+cf
+8f
+51
+a1
+9d
+dc
+60
+eb
+6e
+ba
+04
+39
+fa
+79
+bb
+89
+0c
+b8
+45
+a8
+aa
+c1
+a4
+34
+02
+af
+11
+bf
+f2
+06
+f7
+07
+5e
+ee
+fe
+64
+53
+0c
+36
+bb
+18
+80
+15
+38
+de
+46
+d9
+5e
+03
+d6
+98
+b0
+17
+e8
+4f
+fd
+16
+29
+ca
+86
+8d
+d5
+b1
+ab
+3d
+84
+e6
+66
+29
+78
+f5
+3c
+dd
+0a
+91
+ca
+14
+e5
+f3
+3b
+82
+36
+62
+a9
+20
+95
+f0
+0d
+29
+f4
+06
+16
+88
+c0
+6c
+60
+1c
+39
+e1
+14
+72
+03
+8e
+db
+9d
+82
+a2
+b7
+dc
+1b
+17
+84
+68
+9f
+e8
+41
+74
+d8
+67
+15
+8c
+cb
+48
+60
+46
+09
+00
+7b
+68
+e2
+4c
+f9
+e3
+dd
+6b
+0d
+30
+77
+01
+c4
+57
+d5
+13
+d9
+1e
+73
+47
+3f
+68
+c3
+bd
+c2
+eb
+6f
+28
+22
+8e
+04
+c4
+b0
+01
+16
+25
+55
+34
+40
+b5
+46
+23
+89
+41
+a1
+82
+33
+52
+88
+0b
+20
+73
+f0
+90
+74
+63
+4b
+04
+73
+38
+60
+39
+cb
+46
+0f
+1a
+75
+3d
+05
+a8
+43
+24
+7f
+20
+0f
+8c
+ff
+b5
+8d
+c8
+48
+46
+a8
+50
+59
+9e
+56
+21
+12
+61
+60
+96
+ea
+6a
+91
+af
+b3
+76
+8e
+f1
+c6
+61
+98
+16
+61
+f1
+53
+bf
+f8
+b1
+f5
+98
+87
+9b
+30
+31
+31
+8e
+59
+67
+e3
+b8
+ce
+f1
+6b
+54
+26
+58
+bf
+7c
+d3
+3c
+c0
+0c
+d3
+38
+c8
+1d
+f5
+dc
+0c
+4c
+81
+b3
+3d
+8b
+df
+50
+36
+8e
+0c
+9d
+d0
+7b
+ae
+5d
+36
+a0
+f0
+0d
+3f
+e2
+54
+38
+22
+4f
+90
+bf
+2f
+87
+f0
+ec
+4a
+db
+e1
+69
+b1
+44
+7b
+7c
+ca
+c9
+28
+74
+76
+eb
+c4
+aa
+e9
+ba
+e4
+a9
+9f
+fd
+c5
+80
+f3
+97
+40
+c7
+5e
+a7
+86
+8c
+90
+f9
+77
+bb
+d7
+be
+7a
+d9
+5a
+27
+ea
+cb
+0f
+75
+1f
+37
+b7
+03
+ac
+30
+d2
+c0
+02
+af
+cb
+18
+27
+5a
+4f
+6a
+7d
+96
+5c
+be
+c6
+df
+6e
+79
+a0
+96
+46
+f2
+2f
+c9
+75
+fa
+25
+56
+df
+23
+5b
+71
+8f
+dc
+a0
+3d
+75
+38
+39
+b2
+67
+0d
+bc
+71
+2e
+24
+5c
+e7
+ce
+8e
+ee
+f5
+8c
+43
+ed
+c9
+a0
+c6
+91
+e0
+24
+c0
+d8
+32
+e3
+aa
+00
+86
+f0
+1a
+fa
+24
+68
+e4
+33
+f1
+a5
+0e
+11
+91
+5a
+74
+c9
+c5
+dd
+39
+81
+09
+e7
+f1
+86
+cb
+73
+5d
+18
+a6
+e2
+4c
+78
+5e
+32
+f9
+b9
+73
+e3
+73
+87
+ba
+88
+60
+6f
+6f
+aa
+55
+40
+00
+00
+40
+00
+00
+00
+06
+00
+01
+00
+40
+19
+50
+40
+12
+00
+04
+00
+10
+04
+00
+00
+00
+00
+00
+00
+00
+00
+80
+00
+00
+00
+06
+00
+04
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+04
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+08
+00
+8e
+48
+00
+89
+0d
+00
+00
+06
+00
+00
+aa
+55
+01
+00
+cf
+43
+0f
+aa
+55
+01
+00
+8d
+48
+01
+aa
+55
+02
+00
+da
+4a
+a3
+e4
+aa
+55
+01
+00
+03
+45
+ff
+aa
+55
+01
+00
+02
+45
+1e
+aa
+55
+01
+00
+05
+45
+01
+aa
+55
+01
+00
+41
+41
+01
+aa
+55
+01
+00
+e9
+45
+07
+aa
+55
+02
+00
+07
+46
+43
+47
+aa
+55
+02
+00
+57
+46
+85
+90
+aa
+55
+02
+00
+5a
+46
+75
+80
+aa
+55
+01
+00
+59
+46
+63
+aa
+55
+01
+00
+3e
+46
+7d
+aa
+55
+09
+00
+d1
+4a
+01
+51
+31
+10
+50
+51
+31
+20
+50
+aa
+55
+06
+00
+08
+45
+03
+11
+36
+55
+51
+61
+aa
+55
+01
+00
+a0
+45
+02
+aa
+55
+05
+00
+fa
+45
+01
+0f
+0f
+0f
+0f
+aa
+55
+01
+00
+d0
+45
+00
+aa
+55
+01
+00
+38
+47
+02
+aa
+55
+01
+00
+e1
+45
+00
+aa
+55
+02
+00
+a2
+45
+c0
+12
+aa
+55
+01
+00
+55
+46
+9e
+aa
+55
+03
+00
+c6
+45
+00
+48
+60
+aa
+55
+02
+00
+34
+46
+0a
+00
+aa
+55
+02
+00
+32
+46
+50
+00
+aa
+55
+02
+00
+1c
+47
+32
+00
+aa
+55
+01
+00
+06
+47
+02
+aa
+55
+08
+00
+c4
+43
+fb
+00
+48
+08
+fb
+00
+48
+08
+aa
+55
+01
+00
+94
+40
+01
+aa
+55
+01
+00
+c0
+40
+10
+aa
+55
+01
+00
+8b
+48
+10
+aa
+55
+06
+00
+dd
+42
+73
+83
+92
+a1
+b1
+c1
+aa
+55
+01
+00
+97
+43
+07
+aa
+55
+02
+00
+7d
+47
+96
+00
+aa
+55
+02
+00
+74
+47
+15
+00
+aa
+55
+02
+00
+9f
+43
+19
+00
+aa
+55
+04
+00
+76
+47
+1d
+00
+21
+00
+aa
+55
+02
+00
+34
+43
+28
+00
+aa
+55
+02
+00
+7a
+47
+30
+00
+aa
+55
+0c
+00
+4c
+43
+1f
+02
+01
+05
+03
+03
+12
+18
+03
+19
+c1
+03
+aa
+55
+07
+00
+5f
+47
+06
+ff
+06
+00
+03
+00
+80
+aa
+55
+15
+00
+6c
+43
+1f
+13
+09
+42
+6c
+75
+65
+74
+6f
+6f
+74
+68
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+13
+00
+6d
+42
+12
+42
+6c
+75
+65
+74
+6f
+6f
+74
+68
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+08
+00
+d5
+42
+08
+00
+08
+00
+20
+00
+2c
+01
+aa
+55
+06
+00
+59
+47
+03
+12
+18
+ff
+00
+00
+aa
+55
+09
+00
+01
+49
+41
+70
+70
+6c
+65
+20
+49
+6e
+63
+aa
+55
+02
+00
+ff
+48
+0a
+18
+aa
+55
+10
+00
+ee
+48
+d0
+00
+2d
+12
+1e
+4b
+0f
+a4
+99
+4e
+ce
+b5
+31
+f4
+05
+79
+aa
+55
+02
+00
+0a
+49
+c1
+03
+aa
+55
+08
+00
+ce
+48
+01
+02
+e8
+04
+21
+70
+01
+00
+aa
+55
+16
+00
+d8
+48
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+24
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+aa
+55
+01
+00
+1d
+44
+02
+aa
+55
+01
+00
+1f
+44
+0a
+aa
+55
+01
+00
+1e
+44
+0d
+aa
+55
+01
+00
+27
+44
+00
+aa
+55
+04
+00
+23
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+b1
+48
+00
+aa
+55
+01
+00
+c1
+4a
+1e
+aa
+55
+02
+00
+1a
+47
+02
+00
+aa
+55
+01
+00
+54
+46
+64
+aa
+55
+02
+00
+51
+46
+58
+02
+aa
+55
+01
+00
+19
+47
+64
+aa
+55
+01
+00
+53
+46
+64
+aa
+55
+02
+00
+4f
+46
+08
+07
+aa
+55
+02
+00
+1e
+47
+50
+46
+aa
+55
+02
+00
+c7
+4a
+64
+00
+aa
+55
+01
+00
+cd
+4a
+05
+aa
+55
+01
+00
+ca
+4a
+05
+aa
+55
+02
+00
+a1
+49
+b8
+0b
+aa
+55
+08
+00
+78
+46
+00
+34
+00
+00
+00
+00
+00
+00
+aa
+55
+01
+00
+16
+47
+01
+aa
+55
+0f
+00
+97
+48
+00
+7f
+1e
+00
+7f
+1f
+00
+7f
+20
+00
+7f
+21
+00
+7f
+22
+aa
+55
+07
+00
+ba
+48
+07
+01
+02
+04
+03
+05
+06
+aa
+55
+02
+00
+c8
+48
+50
+00
+aa
+55
+02
+00
+c3
+4a
+58
+02
+aa
+55
+06
+00
+b2
+48
+13
+01
+a0
+0f
+00
+1e
+aa
+55
+03
+00
+1c
+49
+ff
+ff
+ff
+aa
+55
+01
+00
+7f
+4a
+01
+aa
+55
+01
+00
+0f
+49
+ff
+aa
+55
+06
+00
+95
+4a
+7f
+ff
+29
+14
+2a
+10
+aa
+55
+03
+00
+3e
+44
+ff
+ff
+ff
+aa
+55
+02
+00
+f4
+43
+10
+00
+aa
+55
+03
+00
+fe
+46
+00
+50
+00
+aa
+55
+02
+00
+bf
+4a
+20
+03
+aa
+55
+09
+00
+13
+49
+8c
+89
+ff
+ff
+8a
+8a
+ff
+ff
+ff
+aa
+55
+03
+00
+10
+49
+0b
+0d
+ff
+aa
+55
+01
+00
+66
+46
+05
+aa
+55
+0c
+00
+3c
+49
+c2
+c3
+c4
+c5
+c6
+c7
+80
+81
+82
+83
+84
+85
+aa
+55
+1c
+00
+1f
+49
+08
+07
+06
+04
+03
+00
+01
+02
+13
+c6
+c5
+c4
+c3
+c2
+80
+c7
+0f
+12
+0e
+84
+83
+82
+81
+85
+14
+15
+ff
+ff
+aa
+55
+90
+00
+c7
+49
+48
+00
+00
+00
+e4
+00
+e0
+3e
+14
+2b
+04
+29
+1d
+8b
+35
+1e
+1a
+39
+16
+64
+1b
+8a
+3a
+1f
+08
+3c
+07
+3d
+06
+88
+3b
+20
+15
+17
+09
+0a
+19
+05
+22
+21
+18
+1c
+0d
+0b
+10
+11
+23
+24
+0c
+30
+0e
+3f
+36
+87
+2e
+25
+12
+40
+0f
+00
+37
+65
+41
+26
+13
+2f
+33
+34
+32
+38
+2d
+27
+47
+00
+7f
+e2
+00
+e6
+00
+46
+89
+2a
+31
+44
+28
+45
+42
+43
+5f
+5c
+59
+2c
+53
+51
+4c
+00
+60
+5d
+5a
+62
+54
+4f
+49
+00
+61
+5e
+5b
+63
+55
+56
+4b
+4e
+57
+85
+58
+52
+e9
+50
+4a
+4d
+00
+e1
+e5
+ed
+ee
+ec
+eb
+e8
+f1
+e3
+f6
+f8
+f7
+f9
+ef
+fa
+91
+f5
+e7
+f0
+ea
+f2
+fb
+90
+aa
+55
+0f
+00
+84
+4a
+00
+29
+e8
+e9
+ea
+eb
+ec
+ed
+ee
+ef
+f0
+f1
+f2
+af
+4c
+aa
+55
+01
+00
+94
+4a
+29
+aa
+55
+b1
+00
+e8
+4a
+af
+00
+05
+01
+09
+06
+a1
+01
+85
+02
+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
+26
+ff
+00
+05
+07
+19
+00
+29
+ff
+81
+00
+c0
+05
+0c
+09
+01
+a1
+01
+85
+03
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+c0
+05
+01
+09
+80
+a1
+01
+85
+04
+15
+00
+25
+01
+75
+01
+95
+03
+19
+81
+29
+83
+81
+02
+95
+01
+75
+05
+81
+03
+c0
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+35
+3f
+64
+db
+7b
+3b
+aa
+55
+01
+00
+a7
+40
+20
+aa
+55
+03
+00
+c9
+40
+00
+08
+b4
+aa
+55
+01
+00
+99
+40
+18
+aa
+55
+01
+00
+1c
+41
+7f
+aa
+55
+0c
+00
+16
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+aa
+55
+05
+00
+60
+41
+08
+0e
+05
+03
+00
+aa
+55
+01
+00
+6a
+41
+20
+aa
+55
+02
+00
+9a
+40
+00
+10
+aa
+55
+05
+00
+43
+41
+ff
+04
+00
+00
+08
+aa
+55
+01
+00
+4f
+44
+a0
+aa
+55
+02
+00
+52
+44
+bc
+02
+aa
+55
+02
+00
+50
+44
+90
+01
+aa
+55
+02
+00
+54
+44
+03
+09
+aa
+55
+01
+00
+49
+41
+ff
+aa
+55
+02
+00
+9c
+40
+49
+41
+55
+aa
+aa
+55
+d4
+95
+6f
+87
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+a9
+1d
Index: costumer/Bore/keyboard_ck801_only_24g/output/memmap.format
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/memmap.format	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/memmap.format	(working copy)
@@ -0,0 +1,2030 @@
+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_current_context
+0x0007 mem_le_ch_mapped
+0x0008 mem_last_freq
+0x0009 mem_rssi
+0x000a mem_context_ptr
+0x000c mem_rx_window
+0x000e mem_lpm_adjust
+0x000f mem_sync_clke
+0x0015 mem_lpm_current_mult
+0x0016 mem_gpio_wakeup_cfg
+0x0022 mem_clkn_bt
+0x0026 mem_clke_bt
+0x002a mem_dpll_clkn
+0x002e mem_slot_offset
+0x0030 mem_loadcode_times
+0x0031 mem_select_list_item
+0x0032 mem_temp_reconn_record
+0x0032 mem_record_bt_mode
+0x0033 mem_list_item_ptr
+0x0035 mem_rssi_hex
+0x0036 mem_param_tx_setup
+0x0038 mem_param_rf_setup
+0x003a mem_param_conn_access
+0x003c mem_param_clke_cal
+0x003e mem_param_pll_setup
+0x0040 mem_param_rx_setup
+0x0042 mem_param_dpll_start_delay
+0x0044 mem_param_rt_rthalfslot
+0x0046 mem_param_clke_cal_le_1m
+0x0048 mem_param_clke_cal_le_2m
+0x004a mem_param_clke_cal_le_coded
+0x004c mem_le_rxbuf
+0x0150 mem_le_mic
+0x0154 mem_le_peer_mic
+0x0158 mem_le_mrand
+0x0168 mem_le_state
+0x0169 mem_le_mode
+0x016a mem_le_tsniff
+0x016c mem_le_anchor
+0x0170 mem_le_clk_offset
+0x0176 mem_le_receive_window
+0x0178 mem_le_plap
+0x017e mem_le_conn_handle
+0x017f mem_le_arq
+0x0180 mem_le_ch
+0x0181 mem_le_hop
+0x0182 mem_le_event_count
+0x0184 mem_le_supervision_timer
+0x0188 mem_le_instant
+0x018a mem_le_channels
+0x018b mem_le_op
+0x018c mem_le_access
+0x0190 mem_le_crcinit
+0x0193 mem_le_window_size
+0x0194 mem_le_slave_latency
+0x0196 mem_le_superto
+0x0198 mem_le_channel_map
+0x019d mem_le_rx_phy
+0x019e mem_le_tx_phy
+0x019f mem_le_update_new_param
+0x01a8 mem_le_sk
+0x01b8 mem_le_peer_sca
+0x01b9 mem_le_err_code
+0x01ba mem_le_ll_pairing_fail_reason
+0x01bb mem_ucode_status
+0x01bc mem_spid_tbuf
+0x01bd mem_iicd_tbuf
+0x01bd mem_addr_hi
+0x01be mem_addr_mi
+0x01bf mem_addr_lo
+0x01c0 mem_iicd_addr
+0x01c1 mem_spid_rbuf
+0x01c5 mem_ucode_buf
+0x01c7 mem_ucode_len
+0x01c9 mem_sched_addr
+0x01cb mem_ucode_keybuf
+0x01db mem_otp_temp
+0x01fb mem_app_evt_timer_count
+0x01fc mem_input_store
+0x020c mem_ec_loopc
+0x020e mem_aes_cmac_data_length
+0x020f mem_dat
+0x026f mem_ax_256//32 bytes
+0x028f mem_ay_256// 32 bytes
+0x02af mem_az_256// 32 bytes
+0x02cf mem_bx_256// 32 bytes
+0x02ef mem_by_256// 31 bytes
+0x030f mem_bz_256//32 bytes
+0x030f mem_tmp1
+0x030f memahbak
+0x0327 mem_tmp5
+0x032f mem_cx_256//32 bytes
+0x034f mem_cy_256// 32 bytes
+0x036e mem_cy5_256// 1 byte
+0x036f mem_cz_256// 32 bytes
+0x038f mem_k_256//32 bytes
+0x03af mem_tmp1_256//32 bytes
+0x03cf mem_tmp5_256
+0x03ef mem_tmp2_256
+0x040f mem_tmp3_256
+0x040f mem_t1_256
+0x042f mem_tmp0_256
+0x042f mem_t0_256
+0x044f mem_t2_256
+0x046f mem_t3_256
+0x048f mem_t7_256
+0x04af mem_p
+0x04c7 mem_a
+0x04df mem_b
+0x04f7 mem_gx
+0x050f mem_gy
+0x0527 memh0
+0x0547 mem_p_256
+0x0567 mem_a_256
+0x0587 mem_gx_256
+0x05a7 mem_gy_256
+0x05c7 mem_le_slat
+0x05d7 mem_sp_state_start
+0x05d7 mem_sp_dhkey_invalid
+0x05d8 mem_gkey
+0x05dc mem_sp_state_end
+0x05dc mem_le_pubkey_remote_x_256
+0x05fc mem_le_pubkey_remote_y_256
+0x061c mem_le_dhkey_256
+0x063c mem_sp_confirm_remote
+0x064c mem_ipc_skip_continue_proc
+0x064d mem_fifo_temp
+0x064e mem_pdatatemp
+0x0656 mem_temp//8 bytes
+0x065e mem_timeup// 4 bytes
+0x0662 mem_rega//4 bytes
+0x0666 mem_regb//4 bytes
+0x066a mem_regc//3 bytes
+0x066d mem_contr//2 bytes
+0x066f mem_contw//2 bytes
+0x0671 mem_contus
+0x0673 mem_contue
+0x0675 mem_contu
+0x0677 mem_queue
+0x0679 mem_loopcnt
+0x067b mem_saved_gpio_in
+0x067f mem_module_rx_error_data_buffer
+0x067f mem_le_adv_channel_map_temp
+0x067f mem_le_data_len_temp//1byte
+0x067f mem_event_cmd_response_content//2byte
+0x067f mem_le_prand//16byte
+0x067f mem_AES_CMAC_k//16 bytes
+0x067f mem_regext_index//1 bytes
+0x067f mem_temp_block0
+0x0680 mem_le_data_temp//15bytes
+0x0680 mem_temp_block1
+0x068f mem_le_tx_buf_temp//48byte
+0x068f mem_le_aes_128//16byte
+0x068f mem_regext//64 bytes
+0x068f mem_AES_CMAC_k1//16 bytes
+0x068f mem_temp_block2
+0x069f mem_AES_CMAC_k2//16 bytes
+0x069f mem_temp_block3
+0x06af mem_AES_CMAC_temp// 16 bytes
+0x06af mem_temp_block4
+0x06bf mem_AES_CMAC_M_last// 16 bytes
+0x06bf mem_module_uart_cmd
+0x06c0 mem_module_uart_opcode
+0x06c1 mem_module_uart_len
+0x06c2 mem_module_temp_nl_discard_packet
+0x06c3 mem_temp_block5
+0x06cf mem_le_mackey//16 bytes
+0x06cf mem_app_receive_temp
+0x06cf mem_key_value_temp
+0x06d1 mem_key_value
+0x06d3 mem_key_value_temp1
+0x06d4 mem_key_value_temp2
+0x06d5 mem_key_value_temp3
+0x06d6 mem_key_value_temp4
+0x06d7 mem_key_value_temp5
+0x06d8 mem_key_value_temp6
+0x06d9 mem_temp_block6
+0x06df mem_scale_ratio
+0x06e2 mem_xcnt
+0x06e5 mem_scale_ratio_temp
+0x06e7 mem_hci_opcode_ocf
+0x06e9 mem_hci_opcode_ogf
+0x06ea mem_hci_event_head_type
+0x06eb mem_hci_event_head_event_code
+0x06ec mem_hci_event_para_total_length
+0x06ed mem_hci_command_complete_num_hci_command_packet
+0x06ee mem_hci_command_complete_command_opcode
+0x06ee mem_hci_opcode
+0x06f0 mem_hci_command_complete_return_parameter
+0x06f0 mem_hci_command_complete_return_parameter_status
+0x06f1 mem_hci_command_complete_return_parameter_chip_id
+0x06e7 mem_module_le_rx_data_len
+0x06e9 mem_module_le_rx_data_address
+0x06eb mem_module_le_rx_data_handle
+0x06e7 mem_init_cnt
+0x06e9 mem_data_pre
+0x06eb mem_data_current
+0x06ed mem_data_sum
+0x06f0 mem_data_value
+0x06e7 mem_malloc_rec_start
+0x06e7 mem_rec_queue_ota_sptr
+0x06e9 mem_rec_queue_ota_eptr
+0x06eb mem_rec_queue_ota_rptr
+0x06ed mem_rec_queue_ota_wptr
+0x06ef mem_rec_queue_ota_buf//1280
+0x06ef mem_rec_voice_raw_start
+0x06ef mem_rec_voice_raw
+0x0a0e mem_rec_voice_raw_end
+0x0a0f mem_rec_voice_queue_count
+0x0a10 mem_rec_queue_buf
+0x0a24 mem_rec_adpcm
+0x0a88 mem_rec_nec_rx_start
+0x0b87 mem_rec_nec_rx_end
+0x0b88 mem_rec_nec_rx_store_start
+0x0c87 mem_rec_nec_rx_store_end
+0x0c88 mem_rec_ota_flash_buf_head
+0x0c8c mem_rec_ota_flash_buf//300
+0x0c8c mem_rec_nec_flash_write_head
+0x0c90 mem_rec_nec_rx_info
+0x0c90 mem_rec_nec_rx_len
+0x0c91 mem_rec_nec_rx_perid_freq
+0x0c93 mem_rec_nec_rx_data
+0x0d92 mem_rec_nec_rx_analysis_end
+0x0d93 mem_rec_nec_rx_count
+0x0d94 mem_rec_nec_timer
+0x0d95 mem_rec_nec_timeout
+0x0d96 mem_rec_nec_usercode
+0x0d98 mem_rec_nec_datacode
+0x0d99 mem_rec_nec_learn_key_num
+0x0d9a mem_rec_nec_learn_key_state
+0x0d9b mem_rec_nec_learn_enable_flag
+0x0d9c mem_rec_nec_learn_timeout
+0x0da0 mem_rec_nec_learn_state
+0x0da1 mem_rec_period_cal
+0x0db5 mem_rec_period_cal_ptr
+0x0db7 mem_rec_period_cal_count
+0x0db8 mem_rec_nec_period_array
+0x0dcc mem_rec_nec_store_sptr
+0x0dce mem_rec_nec_store_eptr
+0x0dd0 mem_rec_nec_store_wptr
+0x0dd2 mem_rec_nec_receive_data0
+0x0dd3 mem_rec_nec_receive_data1
+0x0dd4 mem_rec_nec_receive_data2
+0x0dd5 mem_rec_nec_receive_data
+0x0dd8 mem_rec_nec_data
+0x0dd9 mem_rec_nec_period
+0x0dda mem_rec_nec_duty
+0x0ddb mem_rec_nec_freq
+0x0ddc mem_rec_nec_carry_time
+0x0dde mem_rec_nec_learn_stime
+0x0de2 mem_rec_nec_learn_ntime
+0x0de6 mem_rec_nec_learn_outtime
+0x0dea mem_rec_nec_learn_succ
+0x0deb mem_rec_nec_learn_succ_ptr
+0x0ded mem_rec_nec_learn_send_flag
+0x0dee mem_rec_nec_led_state
+0x0def mem_rec_nec_led_blink_count
+0x0df0 mem_malloc_rec_end
+0x06e7 mem_le_test_sync
+0x06e9 mem_le_test_pcnt
+0x06eb mem_tst_pktcnt_crc
+0x06ed mem_tst_pktcnt_dmh
+0x06ef mem_tmp_buffer_head
+0x06f2 mem_tmp_buffer
+0x06e7 mem_usb_status
+0x06e9 mem_usb_fifo_empty
+0x06ea mem_usb_read_len
+0x06ec mem_usb_txbuf
+0x072d mem_usb_txbuf1
+0x0737 mem_usb_txbuf2
+0x0741 mem_usb_rxbuf
+0x0781 mem_usb_rxbuf_end
+0x0782 mem_bufptr
+0x0784 mem_remain
+0x0785 mem_hidreportdesc_kb
+0x0787 mem_hidreportdesc_m
+0x0789 mem_devicedesc
+0x079c mem_confdesc
+0x07d8 mem_string0
+0x07dd mem_string1
+0x07fb mem_string2
+0x0819 mem_string3
+0x0837 mem_cb_usb_config
+0x0839 mem_usb_tx_interval
+0x083a mem_usb_vid_pid
+0x0843 mem_usb_zero_packet
+0x0845 mem_usb_ones_packet
+0x0847 mem_usb_two_packet
+0x0849 mem_usb0_state
+0x084a mem_usb_offline_check_gpio
+0x084b mem_usb_clear_mem_start
+0x084b mem_usb_setup
+0x084b mem_usb_setup_bmRequestType
+0x084c mem_usb_setup_bRequest
+0x084d mem_usb_setup_bValue
+0x084e mem_usb_setup_bValueH
+0x084f mem_usb_setup_wIndex
+0x0851 mem_usb_setup_bLength
+0x0852 mem_usb_setup_bLengthH
+0x0853 mem_usb0_set_report_data
+0x0893 mem_usb0_get_report_data
+0x08d3 mem_usb_setup_bValue_temp
+0x08d5 mem_usb0_get_set_report
+0x08d6 mem_usb0_data_ready_report
+0x08d7 mem_usb_tx_win_enable
+0x08d8 mem_usb_tx_mac_enable
+0x08d9 mem_usb_idle_flag
+0x08da mem_usb_idle_rate
+0x08db mem_usb_get_protocol_flag
+0x08dc mem_usb_set_protocol_status
+0x08dd mem_usb_set_protocol_value
+0x08de mem_usb_state
+0x08df mem_usb_remote_wakeup
+0x08e0 mem_usb_clear_remote_wakeup
+0x08e1 mem_sdsystem_wakeup_flag
+0x08e2 mem_usb_ep0_stall_status
+0x08e3 mem_usb_ep1_stall_status
+0x08e4 mem_usb_ep2_stall_status
+0x08e5 mem_usb_ep3_stall_status
+0x08e6 mem_dsc_info_data_pointer
+0x08e8 mem_dsc_info_len
+0x08e9 mem_usb_ep1_data
+0x08ea mem_usb_ep2_data
+0x08eb mem_usb_tx_enable
+0x08ec mem_usb_device_enumeration_endflag
+0x08ed mem_usb_wakestate_onetime_flag
+0x08ee mem_usb_mac_wakeup_trig
+0x08ef mem_usb_set_high_addr_flag
+0x08f0 mem_usb_clear_halt
+0x08f1 mem_usb_mouse_data
+0x0901 mem_usb_kb_data
+0x0911 mem_usb_kb_n_key_rollvoer_data
+0x0921 mem_usb_kb_multikey
+0x0929 mem_usb_kb_system
+0x0931 mem_usb_test_cnt
+0x0933 mem_usb_test_kb
+0x093d mem_usb_clear_mem_end
+0x093d mem_usb_ccid_buf
+0x097d mem_dg_rssi_noise_buffer
+0x0a7d mem_dg_rssi_noise_dg_buffer
+0x0b7d mem_dg_rssi_noise_ms_buffer
+0x0c7d mem_dg_rssi_noise_kb_buffer
+
+0x019f mem_le_new_param
+0x019f mem_le_new_transmitwindowsize
+0x01a0 mem_le_new_transmitwindowoffset
+0x01a2 mem_le_new_conninterval
+0x01a4 mem_le_new_connslavelatency
+0x01a6 mem_le_new_connsupervisiontimeout
+0x019f mem_le_new_map
+0x019f mem_le_new_m2s_phy
+0x01a0 mem_le_new_s2m_phy
+0x004c mem_le_rxbuf_data_header
+0x004d mem_le_rxbuf_data_length
+0x004e mem_le_rxbuf_data_payload
+0x004c mem_le_rxbuf_data_ll_header
+0x004d mem_le_rxbuf_data_ll_length
+0x004e mem_le_rxbuf_data_ll_opcode
+0x004f mem_le_rxbuf_data_ll_control_data
+0x004c mem_le_rxbuf_adv_header
+0x004d mem_le_rxbuf_adv_length
+0x004e mem_le_rxbuf_adv_payload
+0x004c mem_le_rxbuf_adv_scan_req_header
+0x004d mem_le_rxbuf_adv_scan_req_length
+0x004e mem_le_rxbuf_adv_scan_req_scan_address
+0x0054 mem_le_rxbuf_adv_scan_req_adv_address
+0x004c mem_le_rxbuf_adv_connect_ind_header
+0x004d mem_le_rxbuf_adv_connect_ind_length
+0x004e mem_le_rxbuf_adv_connect_ind_init_address
+0x0054 mem_le_rxbuf_adv_connect_ind_adv_address
+0x005a mem_le_rxbuf_adv_connect_ind_access_address
+0x005e mem_le_rxbuf_adv_connect_ind_crc_init
+0x0061 mem_le_rxbuf_adv_connect_ind_win_size
+0x0062 mem_le_rxbuf_adv_connect_ind_win_offset
+0x0064 mem_le_rxbuf_adv_connect_ind_interval
+0x0066 mem_le_rxbuf_adv_connect_ind_latency
+0x0068 mem_le_rxbuf_adv_connect_ind_timeout
+0x006a mem_le_rxbuf_adv_connect_ind_channel_map
+0x006f mem_le_rxbuf_adv_connect_ind_hop_and_sca
+0x068f mem_le_search_handle_start
+0x0691 mem_le_search_handle_end
+0x0693 mem_le_att_offset
+0x0693 mem_le_search_att_type_length
+0x0694 mem_le_search_att_type
+0x06a4 mem_le_curr_att_len
+0x06a5 mem_le_cur_attlist_start_ptr
+0x06a7 mem_le_cur_handle_start
+0x06a9 mem_le_cur_handle_end
+0x06ab mem_le_cur_uuid_length
+0x06ac mem_le_cur_uuid
+0x06bc mem_le_cur_handle
+0x004c mem_le_rxbuf_data_att_header
+0x004d mem_le_rxbuf_data_att_length
+0x004e mem_le_rxbuf_data_att_l2cap_length
+0x0050 mem_le_rxbuf_data_att_cid
+0x0052 mem_le_rxbuf_data_att_opcode
+0x0053 mem_le_rxbuf_data_att_payload
+0x004c mem_le_rxbuf_data_continue_header
+0x004d mem_le_rxbuf_data_continue_length
+0x004e mem_le_rxbuf_data_continue_payload
+0x004c mem_le_rxbuf_data_att_write_header
+0x004d mem_le_rxbuf_data_att_write_length
+0x004e mem_le_rxbuf_data_att_write_l2cap_length
+0x0050 mem_le_rxbuf_data_att_write_cid
+0x0052 mem_le_rxbuf_data_att_write_opcode
+0x0053 mem_le_rxbuf_data_att_write_handle
+0x0055 mem_le_rxbuf_data_att_write_payload
+0x004c mem_le_rxbuf_data_prepare_att_write_header
+0x004d mem_le_rxbuf_data_prepare_att_write_length
+0x004e mem_le_rxbuf_data_prepare_att_write_l2cap_length
+0x0050 mem_le_rxbuf_data_prepare_att_write_cid
+0x0052 mem_le_rxbuf_data_prepare_att_write_opcode
+0x0053 mem_le_rxbuf_data_prepare_att_write_handle
+0x0055 mem_le_rxbuf_data_prepare_att_write_offset
+0x0057 mem_le_rxbuf_data_prepare_att_write_payload
+0x01db mem_otp_adc
+0x01e3 mem_otp_adc_ratio
+0x01e4 mem_otp_coordinate
+0x01eb mem_otp_core_ldo
+0x01ec mem_otp_verf_bg
+0x01ed mem_otp_charge_pump
+0x01ee mem_otp_dpll_ibais
+0x01ef mem_otp_temp1
+0x01f7 mem_otp_hv_sel
+0x01f8 mem_otp_ldo_vsel
+0x01f9 mem_otp_load_delay
+0x01fa mem_otp_load_check_sum
+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
+0x4093 mem_current_amaddr
+0x4094 mem_lpm_mode
+0x4095 mem_last_clkn
+0x4099 mem_fcomp_div
+0x409a mem_rx_window_sniff
+0x409c mem_rf_init_ptr
+0x409e mem_rf_rccal
+0x409f mem_handle_num
+0x40a0 mem_chip_functions
+0x40a2 mem_lpm_wake_lock
+0x40a4 mem_lpm_interval
+0x40a6 mem_lpm_overhead
+0x40a7 mem_lpm_hibernate_switch
+0x40a8 mem_sniff_unint_lost
+0x40a9 mem_sleep_counter
+0x40ad mem_sleep_counter_all
+0x40b1 mem_sleep_clkn
+0x40b7 mem_sniff_rcv
+0x40ba mem_sniff_lost
+0x40bd mem_clks_per_lpo
+0x40c0 mem_lpm_mult
+0x40c1 mem_lpm_mult_timeout
+0x40c2 mem_lpm_mult_cnt
+0x40c3 mem_lpm_xtalcnt
+0x40c4 mem_lpm_buckcnt
+0x40c5 mem_lpm_ldocnt
+0x40c6 mem_lpm_isogate
+0x40c7 mem_lpm_isogate_stage2
+0x40c8 mem_lpm_isogate_final
+0x40c9 mem_lpm_ldo_sel
+0x40ca mem_lpm_sysctl
+0x40cb mem_lpm_hv_sel
+0x40cc mem_saved_gpio
+0x40e4 mem_saved_gsel
+0x40e7 mem_saved_mark
+0x40ef mem_saved_spidctrl
+0x40f0 mem_patch_ptr
+0x40f2 mem_patch_len
+0x40f4 mem_timers
+0x4114 mem_hci_cmd
+0x4115 mem_hci_conn_handle
+0x4116 mem_hci_plap
+0x4119 mem_hci_puap
+0x411a mem_hci_pnap
+0x411c mem_xtal_c_sel
+0x411d mem_ghpc_table
+0x4135 mem_aac_res_table
+0x4141 mem_tx_power
+0x4142 mem_modem_rssi
+0x4143 mem_gain_fix
+0x4144 mem_gain_table
+0x4147 mem_gain_second_agc_en
+0x4148 mem_system_clk
+0x4149 mem_rf_init_data
+0x415d mem_otp_charge_pump_x
+0x415e mem_otp_dpll_ibais_x
+0x415f mem_xtal_freq
+0x4160 mem_version
+0x4161 mem_company_id
+0x4163 mem_sub_version
+0x4165 mem_le_dsniff
+0x4167 mem_le_conn_interval
+0x4169 mem_le_tx_ifs_defference
+0x416a mem_le_tx2m_delay
+0x416b mem_le_txheader
+0x416c mem_le_txlen
+0x416d mem_le_txpayload
+0x426d mem_le_name_len
+0x426e mem_le_name
+0x428c mem_le_ltk
+0x429c mem_ltk_exists
+0x429d mem_le_rconfirm
+0x42ad mem_le_srand
+0x42bd mem_le_iat
+0x42be mem_le_rat
+0x42bf mem_le_preq
+0x42c0 mem_le_preq_iocap
+0x42c1 mem_le_preq_oob
+0x42c2 mem_le_preq_auth
+0x42c3 mem_le_preq_max_keysize
+0x42c4 mem_le_preq_init_key_distribution
+0x42c5 mem_le_preq_resp_key_distribution
+0x42c6 mem_le_pres
+0x42c7 mem_le_pres_iocap
+0x42c8 mem_le_pres_oob
+0x42c9 mem_le_pres_auth
+0x42ca mem_le_pres_max_keysize
+0x42cb mem_le_pres_init_key_distribution
+0x42cc mem_le_pres_resp_key_distribution
+0x42cd mem_le_conn_param
+0x42cd mem_le_conn_peer_addr_type
+0x42ce mem_le_conn_peer_addr
+0x42d4 mem_le_conn_own_addr_type
+0x42d5 mem_le_interval_min
+0x42d7 mem_le_interval_max
+0x42d9 mem_le_latency
+0x42db mem_le_timeout
+0x42dd mem_le_lap
+0x42e0 mem_le_uap
+0x42e1 mem_le_nap
+0x42e3 mem_le_local_mtu
+0x42e5 mem_le_remote_mtu
+0x42e7 mem_le_skdm
+0x42ef mem_le_skds
+0x42f7 mem_le_init_superto
+0x42f9 mem_ui_le_uuid_table
+0x42fb mem_le_secure_connect_flag
+0x42fc mem_le_secure_connect_state
+0x42fd mem_le_sc_confirm_gkey_flag
+0x42fe mem_le_pairing_state
+0x42ff mem_le_enc_state
+0x4300 mem_le_pairing_mode
+0x4301 mem_le_tk
+0x4305 mem_le_ediv
+0x4307 mem_le_rand
+0x430f mem_le_irk
+0x431f mem_le_transmit_window
+0x4323 mem_le_configuration
+0x4324 mem_le_fixed_ltk
+0x4334 mem_le_pairing_handle
+0x4336 mem_le_packet_llid
+0x4337 mem_le_l2cap_size
+0x4339 mem_le_packet_len_recved
+0x433b mem_le_payload_ptr
+0x433d mem_le_testtype
+0x433e mem_cmd_le_create_conn
+0x433f mem_le_signaling_identifier
+0x4340 mem_le_l2cap_signaling_conn_param_update_rsp_result
+0x4342 mem_le_md_count
+0x4343 mem_ble_l2cap_tx_buff0_ptr
+0x4345 mem_ble_l2cap_tx_buff_size_ptr
+0x4347 mem_le_scan_enable
+0x4348 mem_le_scan_interval
+0x434a mem_le_scan_window
+0x434c mem_le_adv_data_len
+0x434d mem_le_adv_data
+0x436c mem_le_scan_data_len
+0x436d mem_le_scan_data
+0x438c mem_le_adv_enable
+0x438d mem_le_adv_param
+0x438d mem_le_adv_interval
+0x438f mem_le_adv_type
+0x4390 mem_le_adv_own_addr_type
+0x4391 mem_le_adv_direct_addr
+0x4397 mem_le_adv_channel_map
+0x4398 mem_le_scan_params
+0x4398 mem_le_scan_type
+0x4399 mem_le_scan_own_addr_type
+0x439a mem_le_l2cap_att_states
+0x439b mem_le_att_opcode
+0x439c mem_le_att_handle
+0x439e mem_le_search_res
+0x439f mem_le_notify_handle
+0x43a1 mem_le_search_uuid_length
+0x43a2 mem_le_search_uuid
+0x43b2 mem_le_local_feature
+0x43ba mem_le_tx_phys
+0x43bb mem_le_rx_phys
+0x43bc mem_remote_rx_max_octets
+0x43be mem_remote_rx_max_time
+0x43c0 mem_remote_tx_max_octets
+0x43c2 mem_remote_tx_max_time
+0x43c4 mem_local_rx_max_octets
+0x43c6 mem_local_rx_max_time
+0x43c8 mem_local_tx_max_octets
+0x43ca mem_local_tx_max_time
+0x43cc mem_ucode_ptr
+0x43ce mem_ucode_flag
+0x43cf mem_device_option
+0x43d0 mem_peripheral_lock_flag
+0x43d1 mem_bistfix_val
+0x43d1 mem_bistfix_addr_sched
+0x43d3 mem_bistfix_addr_x
+0x43d5 mem_bistfix_addr_patch
+0x43d7 mem_bistfix_val_xram
+0x43d8 mem_bistfix_val_patchram
+0x43dc mem_cb_check_wakelock
+0x43de mem_cb_before_hibernate
+0x43e0 mem_cb_before_lpm
+0x43e2 mem_cb_le_process
+0x43e4 mem_cb_idle_process
+0x43e6 mem_cb_bb_event_process
+0x43e8 mem_cb_att_write
+0x43ea mem_cb_ble_transmit
+0x43ec mem_cb_event_timer
+0x43ee mem_cb_bt_set_mult
+0x43f0 mem_cb_spi_flash_write_complate
+0x43f2 mem_cb_before_lpm_sleep
+0x43f4 mem_eeprom_base
+0x43f6 mem_wake_up_delay_timer
+0x43f7 mem_app_connection_options
+0x43f8 mem_app_disconn_reason
+0x43fa mem_app_disconn_reason_flag
+0x43fc mem_xrecord_mode
+0x43fd mem_eeprom_block_size
+0x43fe mem_spi_init_clk
+0x43ff mem_spi_init_delay_time
+0x4400 mem_spi_ncs_gpio
+0x4401 mem_nv_data_ptr
+0x4403 mem_nv_data_number
+0x4404 mem_queue_ptr
+0x4406 mem_reference_inter1p8v_2v_adc_io_data
+0x4408 mem_reference_inter1p8v_2p6v_adc_vdcdc_data
+0x440a mem_reference_inter1p8v_1v_adc_io_data
+0x440c mem_reference_inter1p8v_4p6v_adc_vdcdc_data
+0x440e mem_adc_reference3v_ft_data
+0x440e mem_adc_reference3v_gpio1v_ft_data
+0x4410 mem_adc_reference3v_gpio2v_ft_data
+0x4412 mem_adc_reference3v_vdcdc3p6v_ft_data
+0x4414 mem_adc_reference3v_vdcdc4p6v_ft_data
+0x4416 mem_adc_reference3v_inter1v_ft_data
+0x4418 mem_adc_reference3v_inter1v_now_data
+0x441a mem_adc_reference_mode
+0x441b mem_reference_voltage
+0x441d mem_adc_config_flag
+0x441e mem_adc_channel
+0x441f mem_adc_clkdiv
+0x4420 mem_adc_current_value
+0x4422 mem_adc_power_flag//bit0:low power falg ; bit1:no power flag
+0x4423 mem_adc_saddr_ptr
+0x4425 mem_adc_eaddr_ptr
+0x4427 mem_adc_dma_enable
+0x4428 mem_adc_cal_c0
+0x4429 mem_adc_cal_c1
+0x442a mem_adc_cal_c2
+0x442b mem_adc_cal_c3
+0x442c mem_adc_cal_c4
+0x442d mem_adc_cal_c5
+0x442e mem_adc_cal_c6
+0x442f mem_adc_cal_c7
+0x4430 mem_spi_write_addr
+0x4433 mem_spi_write_ptr
+0x4435 mem_spi_write_len
+0x4437 mem_spi_write_flash_sm
+0x4438 mem_spi_cs_gpio
+0x4439 mem_spi_si_gpio
+0x443a mem_spi_so_gpio
+0x443b mem_spi_sclk_gpio
+0x443c mem_spi_wp_gpio
+0x443d mem_spi_hold_gpio
+0x443e mem_eeprom_wp_gpio
+0x443f mem_eeprom_scl_gpio
+0x4440 mem_eeprom_sda_gpio
+0x4441 mem_kscan_ptr
+0x4443 mem_key_num_ptr
+0x4443 mem_keyscan_ptr
+0x4445 mem_key_value_retention
+0x4447 mem_power_param_ptr
+0x4449 mem_seqi
+0x444a mem_set_cdb_on
+0x444b mem_syn_cal_ctrl
+0x444c mem_nec_decode_error_value
+0x444d mem_wdt_always_work
+0x444e mem_power_ctrl_disable
+0x444f mem_ring_ibias_trim
+0x4450 mem_ring_ibias_vtune_low
+0x4452 mem_ring_ibias_vtune_high
+0x4454 mem_ring_ibias_calc_adc_gpio
+0x4455 mem_ring_ibias_calc_adc_channel
+0x4456 mem_rf_debug_rx_gpio
+0x4457 mem_rf_debug_tx_gpio
+0x4458 mem_l2cap_xmem_start
+0x4458 mem_used_map
+0x4459 mem_tx_fifo0
+0x4459 mem_tx_fifo0_map
+0x445a mem_tx_fifo0_ptr
+0x445c mem_tx_fifo1
+0x445c mem_tx_fifo1_map
+0x445d mem_tx_fifo1_ptr
+0x445f mem_tx_fifo2
+0x445f mem_tx_fifo2_map
+0x4460 mem_tx_fifo2_ptr
+0x4462 mem_tx_fifo3
+0x4462 mem_tx_fifo3_map
+0x4463 mem_tx_fifo3_ptr
+0x4465 mem_tx_fifo_end
+0x4465 mem_l2cap_lpm_txbuf_ptr
+0x4467 mem_l2cap_xmem_end
+0x4467 mem_ccm_pcnt_tx
+0x446c mem_ccm_pcnt_rx
+0x4471 mem_ccm_last_mic
+0x4475 mem_ccm_iv
+0x4475 mem_ccm_ivm
+0x4479 mem_ccm_ivs
+0x447d mem_ccm_len
+0x447f mem_ccm_rx_ptr
+0x4481 mem_sc_only_mode
+0x4482 mem_sp_debug_mode
+0x4483 mem_secure_connections_enable
+0x4484 mem_sc_calc
+0x4485 mem_sc_local_key_invalid
+0x4486 mem_sc_private_key_256
+0x44a6 mem_sc_pubkey_local_x_256
+0x44c6 mem_sc_pubkey_local_y_256
+0x44e6 mem_sp_state_xmem
+0x44e6 mem_authentication_passkey_times
+0x44e7 mem_passkey_1bit
+0x44e8 mem_sp_state_xmem_end
+0x44e8 mem_ipc_lock_bt
+0x44e9 mem_ipc_lock_c51
+0x44ea mem_ipc_fifo_bt2c51
+0x44f2 mem_ipc_fifo_c512bt
+0x44fa mem_ui_button_timer
+0x44fb mem_ui_button_last_state
+0x44fc mem_ui_timer_last_btclk
+0x4500 mem_ui_state_map
+0x4502 mem_ui_button_timeout
+0x4503 mem_ui_button_gpio
+0x4504 mem_ui_led_init_state_set
+0x4505 mem_ui_led_struct_num
+0x4506 mem_ui_led_struct_ptr
+0x4508 mem_24g_lap
+0x450e mem_24g_rxbuf
+0x4530 mem_24g_txbuf
+0x4550 mem_24g_txpayload
+0x4574 mem_24g_rxpayload
+0x4594 mem_24g_rxdata_length
+0x4595 mem_24g_pid
+0x4596 mem_24g_no_ack
+0x4597 mem_24g_sta_crc
+0x459a mem_24g_last_crc
+0x459d mem_24g_sta_pid
+0x459e mem_24g_last_pid
+0x459f mem_24g_datalen
+0x45a0 mem_24g_data_type
+0x45a1 mem_24g_txlen
+0x45a2 mem_24g_rx_window
+0x45a4 mem_24g_ch
+0x45a5 mem_24g_current_ch_number
+0x45a6 mem_24g_addr
+0x45aa mem_24g_ch_map1
+0x45ae mem_24g_ch_map2
+0x45b2 mem_24g_ch_map3
+0x45b6 mem_24g_ch_map4
+0x45ba mem_24g_tx_btclk
+0x45be mem_24g_interval
+0x45bf mem_24g_interval_min
+0x45c0 mem_24g_interval_max
+0x45c1 mem_24g_syncword
+0x45c3 mem_24g_syncword_crc8
+0x45c4 mem_24g_get_syncword_crc8
+0x45c5 mem_24g_pair_switch
+0x45c6 mem_24g_enter_hibernate
+0x45ce mem_24g_rx_phy
+0x45cf mem_24g_tx_phy
+0x45d0 mem_24g_ch_map_update
+0x45d1 mem_24g_ch_update_map1
+0x45d5 mem_24g_ch_update_map2
+0x45d9 mem_24g_ch_update_map3
+0x45dd mem_24g_ch_update_map4
+0x45e1 mem_24g_disable_fec1
+0x45e2 mem_24g_off_type
+0x45e3 mem_24g_pair_addr
+0x45e7 mem_24g_pair_ch
+0x45e8 mem_24g_pair_tx_power
+0x45e9 mem_rssi_buff_index
+0x45ea mem_24g_device1_bind_step
+0x45eb mem_24g_device2_bind_step
+0x45ec mem_24g_bind_device_status
+0x45ed mem_24g_bind_payload
+0x45f5 mem_24g_device1_bind_disable
+0x45f6 mem_24g_device2_bind_disable
+0x45f7 mem_cb_24g_receive_process
+0x45f9 mem_cb_24g_ackpayload
+0x45fb mem_cb_24g_data_device1
+0x45fd mem_cb_24g_data_device2
+0x45ff mem_24g_rxdata_temp
+0x4621 mem_24g_abort_packet
+0x4622 mem_24g_hop_btclk
+0x4626 mem_24g_hop_interval
+0x4627 mem_24g_pair_mode
+0x4628 mem_24g_ackpayload_enable
+0x4629 mem_24g_hop_packet
+0x462a mem_24g_mode_switch
+0x462b mem_24g_nodata_timer_enable
+0x462c mem_24g_mode_init
+0x462d mem_24g_work_mode
+0x462e mem_24g_time_slice
+0x462f mem_24g_self_last_ch
+0x4630 mem_24g_self_ch_number
+0x4631 mem_24g_self_config_ch_once
+0x4632 mem_24g_device1_last_ch
+0x4633 mem_24g_device1_ch_number
+0x4634 mem_24g_device1_config_ch_once
+0x4635 mem_24g_device2_last_ch
+0x4636 mem_24g_device2_ch_number
+0x4637 mem_24g_device2_config_ch_once
+0x4638 mem_24g_led_status
+0x4639 mem_24g_bind_mode_continue
+0x463a mem_tx_power_temp
+0x463b mem_24g_mode_B_S_switch
+0x463c mem_24g_mode_B_S_switch_init
+0x463d mem_24g_mode_B_S_switch_cnt
+0x463f mem_24g_mode_B_S_switch_exit
+0x4640 mem_24g_B_S_time_slice
+0x4641 mem_24g_B_S_mode_switch_disable
+0x4642 mem_24g_bind_device_living
+0x4643 mem_24g_transmitter_addr
+0x4647 mem_24g_device1_addr
+0x464b mem_24g_device2_addr
+0x464f mem_rssi_noise_avg
+0x4650 mem_rssi_noise_index
+0x4651 mem_rssi_noise_self_avg
+0x4652 mem_rssi_noise_device1_avg
+0x4653 mem_rssi_noise_device2_avg
+0x4654 mem_rssi_noise_self_index
+0x4655 mem_rssi_noise_device1_index
+0x4656 mem_rssi_noise_device2_index
+0x4657 mem_rssi_noise_buffer_ptr
+0x4659 mem_rssi_noise_self_buffer_ptr
+0x465b mem_rssi_noise_device1_buffer_ptr
+0x465d mem_rssi_noise_device2_buffer_ptr
+0x465f mem_car_le_24g_tx_pair_mode
+0x4660 mem_car_le_24g_ch_count
+0x4662 mem_car_24g_addr_other
+0x4666 mem_car_24g_tx_payload_temp
+0x4672 mem_car_24g_rx_payload_temp
+0x467e mem_car_24g_loselink_count
+0x467f mem_car_ble_connted_flag
+0x4680 mem_car_full_control_remote_lap
+0x4684 mem_100ms_adv_control_timer
+0x4686 mem_100ms_factory_test_control_timer
+0x4688 mem_pwm_flag
+0x4689 mem_period_count
+0x468a mem_timer_count
+0x468b mem_car_motor_gpio_num
+0x468c mem_car_motor_gpio_map
+0x468c mem_car_motor_left_gpio
+0x468d mem_car_motor_right_gpio
+0x468e mem_car_motor_front_gpio
+0x468f mem_car_motor_back_gpio
+0x4690 mem_car_pwm_gpio
+0x4691 mem_otp_lot_xy_temp
+0x4697 mem_f_flag
+0x4698 mem_b_flag
+0x4699 mem_adv_control_start_flag
+0x469a mem_stop_4w1_flag
+0x469b mem_factory_control_flag
+0x469c mem_car_gpio_control_mode
+0x469d mem_car_le_queue_each_size
+0x469e mem_car_le_queue_length
+0x469f mem_car_le_queue_current_num
+0x46a0 mem_car_le_queue_read_ptr
+0x46a1 mem_car_le_queue_write_ptr
+0x46a2 mem_car_le_queue_ele
+0x46f2 mem_car_ble_write_data
+0x46fd mem_car_ble_att_list
+0x488d mem_otp_sys_cfg_temp
+0x48c9 mem_ad_indexTable
+0x48d9 mem_ad_stepsizeTable
+0x4a3d mem_ad_state_valpred
+0x4a41 mem_ad_state_index
+0x4a45 mem_ad_in_numSamples
+0x4a46 mem_ad_in_ptr
+0x4a48 mem_ad_out_ptr
+0x4a4a mem_ad_sign
+0x4a4b mem_ad_delta
+0x4a4c mem_ad_step
+0x4a50 mem_ad_valpred
+0x4a54 mem_ad_index
+0x4a58 mem_ad_vpdiff
+0x4a5c mem_ad_inputbuffer
+0x4a60 mem_ad_bufferstep
+0x465f mem_dg_kb_bind_flag
+0x4660 mem_dg_kb_data_sta_data
+0x4668 mem_dg_kb_data_last_data
+0x4670 mem_dg_kb_multikey_sta_data
+0x4673 mem_dg_kb_multikey_last_data
+0x4676 mem_dg_kb_system_sta_data
+0x4679 mem_dg_kb_system_last_data
+0x467c mem_dg_kb_blank_data_enable
+0x467d mem_dg_kb_mul_blank_data_enable
+0x467e mem_dg_kb_system_crtl_blank_data_enable
+0x467f mem_dg_ms_blank_data_enable
+0x4680 mem_dg_sys_config
+0x4681 mem_dg_usb_vid_pid
+0x468a mem_dg_usb_tx_interval
+0x468b mem_dg_usb_device_name
+0x46ab mem_dg_kb_bind_success
+0x46ac mem_dg_pc_sleep_flag
+0x46ad mem_dg_24g_tx_power_default
+0x46ae mem_dg_kb_bit_consumer_blank_data_enable
+0x46af mem_dg_kb_bit_consumer_sta_data
+0x46b3 mem_dg_kb_bit_consumer_last_data
+0x46b7 mem_dg_device_version
+0x45ea mem_rssi_hex_received
+0x45eb mem_24g_pair_sm
+0x45ec mem_24g_pair_no_ack
+0x45ed mem_24g_pair_timeout_init
+0x45ef mem_24g_pair_timeout
+0x45f1 mem_24g_pair_count
+0x45f3 mem_24g_reconn_timeout_init
+0x45f5 mem_24g_reconn_timeout
+0x45f7 mem_24g_reconn_count
+0x45f9 mem_24g_reconn_type
+0x45fa mem_24g_fast_conn_enable
+0x45fb mem_24g_fast_conn_addr
+0x45ff mem_24g_receiver_addr
+0x4603 mem_24g_fast_conn_temp_ch
+0x4604 mem_24g_receiver_temp_ch
+0x4605 mem_24g_device_temp_ch
+0x4606 mem_rssi_signal_index
+0x4607 mem_rssi_signal_buf_ptr
+0x4609 mem_cb_24g_transmit_data
+0x460b mem_cb_24g_search_receiver
+0x460d mem_cb_24g_lpm_before
+0x460f mem_cb_24g_transmit_short_sleep
+0x4611 mem_cb_24g_transmit_long_sleep
+0x4613 mem_24g_conn_sm
+0x4614 mem_24g_ensure
+0x4615 mem_24g_txfail_cnt
+0x4617 mem_24g_attempt_fail_flag
+0x4618 mem_24g_retry
+0x4619 mem_24g_abort_pac
+0x461a mem_24g_max_retry
+0x461b mem_24g_device_addr
+0x461f mem_24g_short_sleep_set
+0x4622 mem_24g_long_sleep_set
+0x462a mem_24g_long_sleep_set1
+0x462e mem_24g_pac_index
+0x462f mem_24g_transmit_by_interrupt
+0x4630 mem_24g_transmit_by_interrupt_exit_count
+0x4632 mem_24g_transmit_by_interrupt_exit_count_init
+0x4634 mem_24g_long_sleep_param_update_timer_init
+0x4636 mem_24g_long_sleep_param_update_timer
+0x4638 mem_24g_fast_hop_count
+0x4639 mem_24g_retransmit
+0x463b mem_rssi_avg_received
+0x463c mem_power_ctrl_level
+0x463d mem_power_ctrl_pac_succ_cnt
+0x463e mem_power_ctrl_pac_succ_cnt_init
+0x463f mem_rssi_dis_min_24g
+0x4640 mem_rssi_dis_max_24g
+0x4641 mem_rssi_hex_received_max_value
+0x4642 mem_rssi_dis_min_ble
+0x4643 mem_rssi_dis_max_ble
+0x4644 mem_device_vdd_calculate_set
+0x4644 mem_device_vdd_full_vol
+0x4646 mem_device_vdd_empty_vol
+0x4648 mem_device_vdd_low_vol
+0x464a mem_device_vdd_now_vol
+0x464c mem_adc_channel_gpio
+0x464d mem_adc_low_volatage_led_timer_count
+0x464e mem_device_adc_last_low_voltage_flag
+0x464f mem_device_discovery_timeout
+0x4651 mem_device_24g_pair_timeout_init
+0x4653 mem_device_direct_timeout
+0x4654 mem_device_24g_reconn_timeout_init
+0x4655 mem_device_24g_pair_tx_power
+0x4656 mem_device_normal_tx_power
+0x4657 mem_rssi_dis_min_24g_init
+0x4658 mem_rssi_dis_max_24g_init
+0x4659 mem_rssi_hex_received_max_value_init
+0x465a mem_rssi_dis_min_ble_init
+0x465b mem_rssi_dis_max_ble_init
+0x465c mem_mouse_key
+0x465d mem_mouse_x
+0x465f mem_mouse_y
+0x4661 mem_mouse_z
+0x4662 mem_mouse_tz
+0x4663 mem_mouse_xy_h
+0x4664 mem_mouse_key_last
+0x4665 mem_device_switch_gpio
+0x4666 mem_device_reuse_2ice_gpio
+0x4667 mem_sensor_motion_gpio
+0x4668 mem_whee_a_data_gpio
+0x4669 mem_whee_b_data_gpio
+0x466a mem_wheel_tb_old_pinlevel
+0x466b mem_wheel_tb_new_pinlevel
+0x466c mem_wheel_tog
+0x466d mem_mouse_tz_data
+0x466e mem_mwheel_b_old_pinlevel
+0x466f mem_mwheel_b_new_pinlevel
+0x4670 mem_mwheel_tog
+0x4671 mem_mouse_z_data
+0x4672 mem_mouse_wheel_trigger
+0x4673 mem_mouse_wheel_trigger_timer
+0x4674 mem_wire_usb_interval
+0x4675 mem_usb_addr
+0x4676 mem_usb_vdd_status
+0x4677 mem_usb_keyboard_flag
+0x4678 mem_device_information_start
+0x4678 mem_device_flag
+0x4679 mem_device1_type
+0x467a mem_device1_addr
+0x4680 mem_device1_locall_addr
+0x4686 mem_device2_type
+0x4687 mem_device2_addr
+0x468d mem_device2_locall_addr
+0x4693 mem_device3_type
+0x4694 mem_device3_addr
+0x469a mem_device3_locall_addr
+0x46a0 mem_store_flag
+0x46a2 mem_mouse_dpi
+0x46a3 mem_device_24g_addr
+0x46a7 mem_random_addr_increase_count
+0x46a9 mem_keyboard_24g_fn_lock
+0x46aa mem_keyboard_bt1_fn_lock
+0x46ab mem_keyboard_bt2_fn_lock
+0x46ac mem_keyboard_bt3_fn_lock
+0x46ad mem_keyboard_usb_fn_lock
+0x46ae mem_keyboard_bt1_computer_system
+0x46af mem_keyboard_bt2_computer_system
+0x46b0 mem_keyboard_bt3_computer_system
+0x46b1 mem_backlight_on_flag
+0x46b2 mem_backlight_on_type
+0x46b3 mem_backlight_on_level
+0x46b4 mem_backlight_breath_speed
+0x46b5 mem_mouse_retention
+0x46f8 mem_device_information_end
+0x46f8 mem_device_compare_addr
+0x46fe mem_flash_base
+0x4701 mem_write_flash_head_temp
+0x4705 mem_store_information_delay_timer
+0x4706 mem_store_information_delay_timer_init
+0x4707 mem_device_search_dongle_interval
+0x4708 mem_device_search_dongle_ch
+0x4709 mem_device_search_dongle_count
+0x470a mem_device_search_dongle_action
+0x470b mem_24g_enter_lpm_timer
+0x470c mem_mouse_24g_enter_lpm_enable
+0x470d mem_keyboard_led_status
+0x470e mem_mouse_flag
+0x4716 mem_device_number
+0x4717 mem_device_flag_temp
+0x4718 mem_device_otp_flag_temp
+0x4719 mem_device_fast_direct_timeout
+0x471a mem_device_24g_power_on_fast_conn_timer
+0x471c mem_device_24g_search_dongle_time_init
+0x471e mem_device_no_data_timeout
+0x4720 mem_device_direct_timer
+0x4721 mem_customer_key_press
+0x472b mem_customer_key
+0x472c mem_customer_data_trigger
+0x472d mem_customer_data_trigger_last
+0x472e mem_device_set_analog_bit_set
+0x4731 mem_bt_discovery_count
+0x4732 mem_select_device_count
+0x4733 mem_mouse_commbination_key
+0x4734 mem_select_device_button_statue
+0x4735 mem_commbination_key_statue
+0x4736 mem_combination_ui_button_count
+0x4737 mem_24g_shutdown_flag
+0x4738 mem_24g_long_sleep_set_level
+0x4739 mem_tx_power_factory_param
+0x473b mem_mouse_24g_long_sleep_flag
+0x473c mem_mouse_long_mult_count
+0x473d mem_mouse_long_mult_flag
+0x473e mem_mouse_current_mult_timer
+0x473f mem_reconn_times
+0x4740 mem_reconn_times_init
+0x4741 mem_device_no_data_timer
+0x4743 mem_mouse_rssi_signal_buf
+0x474b mem_btclk_sensor
+0x474f mem_device_fast_conn_flag
+0x4750 mem_device_discovery_timer
+0x4752 mem_device_need_soft_reset
+0x4753 mem_device_le_bb_connected_flag
+0x4754 mem_device_le_reconnect_flag
+0x4755 mem_device_send_secutiry_request_timer
+0x4756 mem_device_le_lap_temp
+0x4759 mem_le_adv_ind
+0x475c mem_le_adv_direct_ind
+0x475f mem_le_adv_swift_pair
+0x4773 mem_le_data_len
+0x4774 mem_le_keyboard_handle
+0x4776 mem_le_multimedia_handle
+0x4778 mem_le_systemctrl_handle
+0x477a mem_le_battery_level_handle
+0x477c mem_le_battery_level_percentage
+0x477d mem_le_battery_level_updata_timer_init
+0x477f mem_le_battery_level_updata_timer
+0x4781 mem_le_conn_param_reject
+0x4782 mem_le_tx_buffer0_omemalloc
+0x47c2 mem_le_tx_buffer1_omemalloc
+0x4802 mem_le_tx_buffer2_omemalloc
+0x4842 mem_le_tx_buffer3_omemalloc
+0x4882 mem_le_connect_status_flag
+0x4883 mem_le_start_encrypt_timer
+0x4884 mem_device_addr_temp
+0x488b mem_lpm_mult_init
+0x488c mem_qdec_set_flag
+0x488d mem_power_on_flag
+0x488e mem_keyboard_flag
+0x4896 mem_keyboard_switch_count_temp
+0x4897 mem_keyboard_switch_device_to_g24
+0x489a mem_keyboard_switch_device_to_bt1
+0x489d mem_keyboard_switch_device_to_bt2
+0x48a0 mem_keyboard_switch_device_to_bt3
+0x48a3 mem_keyboard_switch_device_to_usb
+0x48a6 mem_keyboard_switch_device_flag
+0x48a7 mem_keyboard_switch_g24_enable
+0x48a8 mem_keyboard_switch_bt_enable
+0x48a9 mem_keyboard_switch_g24_press_timer
+0x48aa mem_keyboard_switch_bt_press_timer
+0x48ab mem_keyboard_vdd_full_vol
+0x48ad mem_keyboard_vdd_empty_vol
+0x48af mem_keyboard_vdd_low_vol
+0x48b1 mem_keyboard_power_type
+0x48b2 mem_rgb_pwm_conf
+0x48b8 mem_rgb_pwm_breathe_flag
+0x48b9 mem_rgb_on_color_temp
+0x48ba mem_rgb_on_color
+0x48c1 mem_pwm_lpm_mode_flag
+0x48c2 mem_keyboard_rgb_on_timer
+0x48c4 mem_ui_check_timer_setup
+0x48c8 mem_customize_timer_setup
+0x48ca mem_backlight_breathe_type
+0x48cb mem_keyboard_le_lap_temp
+0x48ce mem_keyboard_le_change_vid_pid_flag
+0x48cf mem_keybaord_le_pnp_vid_source
+0x48d0 mem_keyboard_le_vid
+0x48d2 mem_keyboard_le_pid
+0x48d4 mem_keyboard_le_product_version
+0x48d6 mem_keyboard_le_hid_map
+0x48d8 mem_keyboard_blob_response_consumer_customize
+0x48ee mem_le_search_service_uuid
+0x48fe mem_le_connect_ios_mac_flag
+0x48ff mem_le_search_mac_uuid
+0x4901 mem_le_search_mac_manu_name
+0x490a mem_keybord_appearance
+0x490c mem_keyboard_le_send_conn_param_update
+0x490d mem_keyboard_le_send_conn_param_update_timer
+0x490e mem_le_start_auto_reco_timer
+0x490f mem_keyboard_pb_button_gpio
+0x4910 mem_mcu_stb_gpio
+0x4911 mem_mcu_clk_gpio
+0x4912 mem_mcu_rstb_gpio
+0x4913 mem_keyboard_num_led_gpio
+0x4914 mem_keyboard_caps_led_gpio
+0x4915 mem_keyboard_scroll_led_gpio
+0x4916 mem_keyboard_power_led_gpio
+0x4917 mem_keyboard_low_voltage_alarm_gpio
+0x4918 mem_keyboard_24g_led_gpio
+0x4919 mem_keyboard_bt1_led_gpio
+0x491a mem_keyboard_bt2_led_gpio
+0x491b mem_keyboard_bt3_led_gpio
+0x491c mem_keyboard_led_r_gpio
+0x491d mem_keyboard_led_g_gpio
+0x491e mem_keyboard_led_b_gpio
+0x491f mem_key_row_gpio
+0x4927 mem_key_col_gpio
+0x493c mem_key_excol_gpio
+0x4948 mem_kb_row_ptr
+0x494a mem_kb_col_ptr
+0x494c mem_kb_excol_ptr
+0x494e mem_keyscan_value_current
+0x4963 mem_keyscan_value_check
+0x4978 mem_keyscan_value_old
+0x498d mem_keyscan_exmcu_value
+0x4998 mem_keyscan_value_ptr
+0x499a mem_keyscan_exmcu_value_ptr
+0x499c mem_keyscan_value_temp
+0x499d mem_keyscan_col_loop_count
+0x499e mem_keyscan_exmcu_wait_wake_count
+0x49a0 mem_same_keyvalue_timerout_flag
+0x49a1 mem_same_keyvalue_timer_init
+0x49a3 mem_same_keyvalue_timer
+0x49a5 mem_keyboard_current_col_press_key_count
+0x49a6 mem_keyboard_all_press_key_count
+0x49a7 mem_keyboard_same_row_press_key_count
+0x49a8 mem_keyboard_ghost_flag
+0x49a9 mem_keyboard_data_change_flag
+0x49aa mem_keyboard_keyvalue_temp
+0x49ab mem_keyboard_press_flag_temp
+0x49ac mem_keyboard_keyvalue_bit_loop_count
+0x49ad mem_keyboard_keyvalue_buffer
+0x49b7 mem_keboard_n_key_rollover_send_flag
+0x49b8 mem_keyboard_n_key_rollover_data
+0x49c7 mem_keyboard_keyvalue_map
+0x4a6f mem_keyboard_tx_data
+0x4a79 mem_keyboard_data_send_flag
+0x4a7a mem_keyboard_fn_flag
+0x4a7b mem_keyboard_control_key_flag
+0x4a7c mem_keyboard_alt_flag
+0x4a7d mem_keyboard_shift_flag
+0x4a7e mem_keyboard_bt_button_flag
+0x4a7f mem_keyboard_pairing_type
+0x4a80 mem_24g_repeat_send_flag
+0x4a81 mem_keyboard_led_status_get
+0x4a82 mem_keyboard_led_status_get_timer
+0x4a83 mem_keyboard_led_status_get_timer_last
+0x4a84 mem_keyboard_fn_esc_f1_f12
+0x4a84 mem_keyboard_fn_first
+0x4a85 mem_keyboard_fn_esc
+0x4a86 mem_keyboard_fn_f1
+0x4a87 mem_keyboard_fn_f2
+0x4a88 mem_keyboard_fn_f3
+0x4a89 mem_keyboard_fn_f4
+0x4a8a mem_keyboard_fn_f5
+0x4a8b mem_keyboard_fn_f6
+0x4a8c mem_keyboard_fn_f7
+0x4a8d mem_keyboard_fn_f8
+0x4a8e mem_keyboard_fn_f9
+0x4a8f mem_keyboard_fn_f10
+0x4a90 mem_keyboard_fn_f11
+0x4a91 mem_keyboard_fn_f12
+0x4a92 mem_keyboard_fn_del
+0x4a93 mem_keyboard_fn_lock_flag
+0x4a94 mem_keyboard_fn_lock_keyvalue
+0x4a95 mem_keyboard_commbination_key_bt
+0x4a97 mem_keyboard_commbination_key_24g
+0x4a99 mem_keyboard_commbination_fast_conn_bt
+0x4a9b mem_keyboard_commbination_press_type
+0x4a9c mem_keyboard_commbination_key_step
+0x4a9d mem_keyboard_commbination_control_key_value
+0x4a9e mem_keyboard_commbination_standard_key_value
+0x4a9f mem_keyboard_commbination_control_key_delay_release_timer
+0x4aa0 mem_keyboard_consumer_key_status
+0x4aa1 mem_kb_computer_system
+0x4aa2 mem_keyboard_device_info_store_flag
+0x4aa3 mem_otp_store_device_info_flag
+0x4aa4 mem_otp_store_system_flag
+0x4aa5 mem_otp_read_retention_memory
+0x4abd mem_otp_read_retention_offset
+0x4abf mem_otp_read_retention_max_size
+0x4ac1 mem_keyboard_device_poweron_timer_init
+0x4ac2 mem_keyboard_device_poweron_timer
+0x4ac3 mem_keyboard_num_caps_scoll_led_on_timer
+0x4ac5 mem_keyboard_mode_led_on_timer
+0x4ac6 mem_keyboard_adc_low_volatage_led_timer_count
+0x4ac7 mem_adc_low_volatage_led_blink_timer
+0x4ac9 mem_keyboard_low_volatage_led_flag
+0x4aca mem_keyboard_low_volatage_led_blink_count
+0x4acb mem_keyboard_low_volatage_led_blink_new_data_enable
+0x4acc mem_keyboard_pair_led_flag
+0x4acd mem_keyboard_pair_led_blink_count
+0x4ace mem_usb_vdd_status_current
+0x4acf mem_usb_vdd_status_last
+0x4ad0 mem_usb_wait_updata_timer
+0x4ad1 mem_keyboard_usb_vid_pid
+0x4ada mem_keyboard_se_flag_init
+0x4adc mem_keyscan_exmcu_value_new
+0x4ae8 mem_keyboard_le_table
+0x4b97 mem_keyboard_end
+0x488d mem_mouse_param_config
+0x488d mem_lbutton_gpio
+0x488e mem_mbutton_gpio
+0x488f mem_rbutton_gpio
+0x4890 mem_bk_button_gpio
+0x4891 mem_fw_button_gpio
+0x4892 mem_dpi_button_gpio
+0x4893 mem_mouse_sensor_sclk_gpio
+0x4894 mem_mouse_sensor_sdio_gpio
+0x4895 mem_select_sensor_angle_gpio
+0x4896 mem_sensor_angle_default
+0x4897 mem_sensor_angle_gnd
+0x4898 mem_sensor_angle_vin
+0x4899 mem_config_sensor_dpi
+0x489a mem_whee_ta_data_gpio
+0x489b mem_whee_tb_data_gpio
+0x489c mem_matrix_public_gpio
+0x489d mem_config_select_device_button_gpio
+0x489e mem_customer_key_gpio
+0x489f mem_firebutton_gpio
+0x48a0 mem_dpi_another_button_gpio
+0x48a1 mem_mouse_logo_led_gpio
+0x48a2 mem_mouse_1io2led_multi_24gled
+0x48a3 mem_mouse_1io2led_multi_bt1led
+0x48a4 mem_mouse_1io2led_multi_bt2led
+0x48a5 mem_mouse_low_voltage_alarm_gpio
+0x48a6 mem_mouse_dpi_gpio
+0x48a7 mem_mouse_param_config_end
+0x48a7 mem_device_temp_gpio
+0x48a8 mem_mouse_multi_led_blink_enable
+0x48a9 mem_mouse_multi_led_type
+0x48aa mem_mouse_multi_led_state
+0x48ab mem_mouse_multi_led_blink_type//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+0x48ac mem_mouse_le_reconn_blink_limit
+0x48ad mem_mouse_multi_led_powon_timer_init//power on time
+0x48ae mem_mouse_multi_led_powon_timer
+0x48af mem_mouse_multi_24gled_blink_timer_init//24gled blink time
+0x48b0 mem_mouse_multi_le_discovery_blink_timer_init//le discovery blink time
+0x48b1 mem_mouse_multi_le_reconn_blink_timer_init//le reconn blink time
+0x48b2 mem_mouse_dpi_led_blink_timer_init//dpi blink time
+0x48b3 mem_mouse_multi_led_blink_timer
+0x48b4 mem_mouse_low_led_blink_timer//low blink time
+0x48b5 mem_mouse_low_led_blink_half_timer
+0x48b6 mem_mouse_multi_24gled_blink_count_init//24g count
+0x48b7 mem_mouse_multi_le_reconn_blink_count_init//le reconn count
+0x48b8 mem_mouse_multi_led_blink_count
+0x48b9 mem_mouse_multi_lowled_blink_count_init//low count
+0x48ba mem_mouse_multi_low_led_blink_count
+0x48bb mem_mouse_logo_led_on_time_init
+0x48bd mem_mouse_dpi_led_delay_count
+0x48be mem_mouse_dpi_led_delay_count_init
+0x48bf mem_mouse_24g_fast_hop_count_2ms
+0x48c0 mem_mouse_24g_short_sleep_set_4ms
+0x48c3 mem_mouse_24g_long_sleep_set_4ms
+0x48c6 mem_mouse_24g_short_sleep_set_8ms
+0x48c9 mem_mouse_24g_long_sleep_set_8ms
+0x48cc mem_mouse_24g_tsniff
+0x48d0 mem_mouse_24g_tsniff_2ms
+0x48d4 mem_mouse_24g_tsniff_4ms
+0x48d8 mem_mouse_24g_tsniff_8ms
+0x48dc mem_mouse_24g_short_sleep_set_init
+0x48df mem_mouse_24g_tx_count
+0x48e0 mem_mouse_24g_tx_time_last
+0x48e6 mem_mouse_24g_tx_time_last_delt
+0x48ea mem_mouse_24g_tx_time_sum
+0x48ef mem_mouse_24g_tx_time_sum_count
+0x48f0 mem_mouse_24g_tx_time_offset
+0x48f1 mem_mouse_24g_sleep_miss
+0x48f2 mem_mouse_24g_sleep_time_temp
+0x48f6 mem_mouse_24g_sleep_miss_temp
+0x48fa mem_mouse_sleep_deal_type
+0x48fb mem_sensor_id1
+0x48fc mem_sensor_id2
+0x48fd mem_mouse_move_flag
+0x48fe mem_mouse_asm_flag
+0x48ff mem_mouse_x_pre
+0x4901 mem_mouse_y_pre
+0x4903 mem_mouse_data_xtemp
+0x4904 mem_mouse_data_ytemp
+0x4905 mem_mouse_dpi_seting
+0x4905 mem_320x_dpi_0
+0x4906 mem_320x_dpi_1
+0x4907 mem_320x_dpi_2
+0x4908 mem_320x_dpi_3
+0x4909 mem_3212_dpi_0
+0x490a mem_3212_dpi_1
+0x490b mem_3212_dpi_2
+0x490c mem_3212_dpi_3
+0x490d mem_ka8g2_dpi_0
+0x490e mem_ka8g2_dpi_1
+0x490f mem_ka8g2_dpi_2
+0x4910 mem_ka8g2_dpi_3
+0x4911 mem_sensor_s201_dpi
+0x4911 mem_sensor_s201_dpi_0
+0x4912 mem_sensor_s201_dpi_1
+0x4913 mem_sensor_s201_dpi_2
+0x4914 mem_sensor_s201_dpi_3
+0x4915 mem_sensor_s201_dpi_4
+0x4916 mem_mouse_cpi_count
+0x4917 mem_mouse_dpi_button_state
+0x4918 mem_mouse_dpi_long_press_flag
+0x4919 mem_sensor_3212_init
+0x4923 mem_sensor_3204_init
+0x492d mem_sensor_3205_init
+0x4937 mem_sensor_32xx_init
+0x4951 mem_sensor_32xx_init_1
+0x4973 mem_sensor_8650_init
+0x4991 mem_sensor_ka8ul_init
+0x49af mem_sensor_8009_init
+0x49bf mem_sensor_ka8g2_init
+0x49d1 mem_sensor_p6520_init
+0x49dd mem_sensor_ka5857_init
+0x49e9 mem_sensor_poweron_init
+0x49f1 mem_sensor_ka8g2_poweron_init
+0x49f9 mem_mouse_clear_sensor_data_flag
+0x49fa mem_config_sensor_type
+0x49fb mem_config_sensor_angle
+0x49fc mem_bluetooth_125hz_cnt
+0x49fd mem_customer_key_press_init
+0x4a07 mem_mouse_lkey_press_status
+0x4a08 mem_mouse_rkey_press_status
+0x4a09 mem_mouse_mkey_press_status
+0x4a0a mem_mouse_bkkey_press_status
+0x4a0b mem_mouse_fwkey_press_status
+0x4a0c mem_mouse_dpikey_press_status
+0x4a0d mem_mouse_pbkey_press_status
+0x4a0e mem_mouse_customerkey_press_status
+0x4a0f mem_mouse_key_temp
+0x4a10 mem_mouse_key_status
+0x4a11 mem_mouse_matrix_key_cow_count
+0x4a12 mem_mouse_matrix_key_row_count
+0x4a13 mem_mouse_ghost_flag
+0x4a14 mem_fire_key_status
+0x4a15 mem_fire_key_delay
+0x4a19 mem_fire_key_flag
+0x4a1a mem_dpi_another_press_status
+0x4a1b mem_dpi_another_button_state
+0x4a1c mem_dpi_another_button_down_enable
+0x4a1d mem_mouse_key_temp_patch
+0x4a1e mem_le_name_patch_len
+0x4a1f mem_le_name_patch
+0x4a32 mem_device_flag_last
+0x4a33 mem_device_flag_value
+0x4a34 mem_mouse_le_addr1_last
+0x4a3a mem_mouse_le_addr1_temp
+0x4a40 mem_mouse_le_locall_addr1_last
+0x4a46 mem_mouse_le_locall_addr1_temp
+0x4a4c mem_mouse_le_addr2_last
+0x4a52 mem_mouse_le_addr2_temp
+0x4a58 mem_mouse_le_locall_addr2_last
+0x4a5e mem_mouse_le_locall_addr2_temp
+0x4a64 mem_mouse_dpi_last
+0x4a65 mem_mouse_dpi_temp
+0x4a66 mem_mouse_otp_dpi_value
+0x4a67 mem_mouse_24g_addr_last
+0x4a6b mem_mouse_24g_addr_temp
+0x4a6f mem_random_addr_increase_count_last
+0x4a71 mem_random_addr_increase_count_temp
+0x4a73 mem_otp_offset_le_addr2
+0x4a75 mem_otp_offset_le_addr2_end
+0x4a77 mem_otp_offset_le_locall_addr2
+0x4a79 mem_otp_offset_le_locall_addr2_end
+0x4a7b mem_otp_offset_dpi
+0x4a7d mem_otp_offset_dpi_end
+0x4a7f mem_otp_offset_device_flag
+0x4a81 mem_otp_offset_device_flag_end
+0x4a83 mem_otp_offset_24g_addr
+0x4a85 mem_otp_offset_24g_addr_end
+0x4a87 mem_otp_offset_le_addr1
+0x4a89 mem_otp_offset_le_addr1_end
+0x4a8b mem_otp_offset_le_locall_addr1
+0x4a8d mem_otp_offset_le_locall_addr1_end
+0x4a8f mem_otp_offset_le_addr_increase_count
+0x4a91 mem_otp_offset_le_addr_increase_count_end
+0x4a93 mem_otp_offset_app_initflag
+0x4a95 mem_usb_tx_interval_retention
+0x4a96 mem_usb_vid_pid_retention
+0x4a9f mem_usb_device_name_retention
+0x4abd mem_mouse_commbination_key_bt
+0x4abe mem_mouse_commbination_key_24g
+0x4abf mem_mouse_commbination_key_dpi
+0x4ac0 mem_mouse_commbination_key_select_device
+0x4ac1 mem_mouse_commbination_dpi_timer
+0x4ac2 mem_mouse_commbination_select_device_timer
+0x4ac3 mem_mouse_commbination_key_count
+0x4ac4 mem_mouse_pair_flag
+0x4644 mem_remote_lpm_gpio_config_flag
+0x4648 mem_remote_lpm_gpio_config_io_temp
+0x4649 mem_24g_tx_led_map
+0x464a mem_24g_led_count
+0x464b mem_24g_lpm_timer_count
+0x464d mem_24g_lpm_enter_count
+0x464f mem_remote_otp_lot_xy_temp
+0x4655 mem_remote_full_control_remote_lap
+0x4659 mem_remote_car_key_conf0
+0x4659 mem_remote_car_key_conf0_pin
+0x465a mem_remote_car_key_conf1
+0x465a mem_remote_car_key_conf1_pin
+0x465b mem_remote_car_key_conf2
+0x465b mem_remote_car_key_conf2_pin
+0x465c mem_remote_car_key_conf3
+0x465c mem_remote_car_key_conf3_pin
+0x465d mem_remote_car_key_conf4
+0x465d mem_remote_car_key_conf4_pin
+0x465e mem_remote_car_key_conf5
+0x465e mem_remote_car_key_conf5_pin
+0x465f mem_remote_car_key_conf6
+0x465f mem_remote_car_key_conf6_pin
+0x4660 mem_remote_le_24g_recv_ack_flag
+0x4661 mem_key_public_gpio
+0x4662 mem_remote_mult_key
+0x4663 mem_remote_le_24g_ch_count
+0x4665 mem_le_24g_tx_send_flag
+0x4666 mem_remote_le_24g_tx_pair_mode
+0x4667 mem_remote_24g_addr_other
+0x466b mem_remote_24g_tx_payload_temp
+0x4677 mem_remote_24g_rx_payload_temp
+0x4508 mem_hci_uart_tx_gpio
+0x4509 mem_hci_uart_rx_gpio
+0x450a mem_hci_uart_rts_gpio
+0x450b mem_hci_uart_cts_gpio
+0x450c mem_hci_pwm_12mhz_gpio
+0x4508 mem_soft_version_num
+0x450a mem_module_wake_up_gpio
+0x450b mem_module_state_gpio
+0x450c mem_module_connect_state_gpio
+0x450d mem_current_packet_length
+0x450f mem_module_state
+0x4510 mem_module_mcu_wake_pin
+0x4511 mem_module_mcu_wake_delay_us
+0x4515 mem_module_le_lpm_mult
+0x4516 mem_module_bluetooth_stauts_by_command
+0x4517 mem_module_uart_rx_buffer
+0x4519 mem_module_uart_rx_buffer_end
+0x451b mem_module_uart_tx_buffer
+0x451d mem_module_uart_tx_buffer_end
+0x451f mem_module_uarta_baud_rate
+0x4521 mem_module_read_vdd_flag
+0x4522 mem_module_read_vdd_count
+0x4523 mem_module_vdd_quotient
+0x4524 mem_module_vdd_remainder
+0x4525 mem_module_ble_data_uart_max_length
+0x4526 mem_module_flag
+0x4528 mem_module_hci_notify_len
+0x4529 mem_module_hci_notify_handle
+0x452b mem_module_hci_nofiy_addr
+0x452d mem_module_hci_notify_type
+0x452e mem_le_conn_flag
+0x452f mem_module_le_att_list
+0x4787 mem_module_le_att_list_end
+0x4787 mem_module_nv_data
+0x4787 mem_module_nv_data0
+0x47a9 mem_module_nv_data1
+0x47cb mem_module_nv_data2
+0x47ed mem_module_nv_data3
+0x480f mem_module_nv_data4
+0x4831 mem_module_nv_data_end
+0x4508 mem_xmalloc_rec_start
+0x4508 mem_rec_le_att_list
+0x49c7 mem_rec_led_style
+0x49c7 mem_rec_led_style_type
+0x49c8 mem_rec_led_style_blink_count
+0x49c9 mem_rec_led_style_gpio
+0x49ca mem_rec_led_style_on_time
+0x49cc mem_rec_led_style_off_time
+0x49ce mem_rec_led_style_on_callback
+0x49d0 mem_rec_led_style_off_callback
+0x49d2 mem_rec_led2_style
+0x49d2 mem_rec_led2_style_type
+0x49d3 mem_rec_led2_style_blink_count
+0x49d4 mem_rec_led2_style_gpio
+0x49d5 mem_rec_led2_style_on_time
+0x49d7 mem_rec_led2_style_off_time
+0x49d9 mem_rec_led2_style_on_callback
+0x49db mem_rec_led2_style_off_callback
+0x49dd mem_rec_le_pair_led_style
+0x49dd mem_rec_le_pair_led_style_type
+0x49de mem_rec_le_pair_led_style_blink_count
+0x49df mem_rec_le_pair_led_style_gpio
+0x49e0 mem_rec_le_pair_led_style_on_time
+0x49e2 mem_rec_le_pair_led_style_off_time
+0x49e4 mem_rec_le_reconn_led_style
+0x49e4 mem_rec_le_reconn_led_style_type
+0x49e5 mem_rec_le_reconn_led_style_blink_count
+0x49e6 mem_rec_le_reconn_led_style_gpio
+0x49e7 mem_rec_le_reconn_led_style_on_time
+0x49e9 mem_rec_le_reconn_led_style_off_time
+0x49eb mem_rec_adc_low_led_style
+0x49eb mem_rec_adc_low_led_style_type
+0x49ec mem_rec_adc_low_led_style_blink_count
+0x49ed mem_rec_adc_low_led_style_gpio
+0x49ee mem_rec_adc_low_led_style_on_time
+0x49f0 mem_rec_adc_low_led_style_off_time
+0x49f2 mem_rec_ui_timer_btclk
+0x49f6 mem_rec_ui_timer_count
+0x49f7 mem_rec_cb_timer
+0x49f9 mem_rec_tscan_timer
+0x49fa mem_rec_tscan_timeout
+0x49fb mem_rec_tscan_row_nums
+0x49fc mem_rec_tscan_col_nums
+0x49fd mem_rec_tscan_col_gpio_ptr
+0x49ff mem_rec_tscan_row_scanned
+0x4a00 mem_rec_tscan_col_scanned
+0x4a01 mem_rec_tscan_record_row
+0x4a02 mem_rec_tscan_record_col
+0x4a03 mem_rec_tscan_row_gpio
+0x4a0d mem_rec_tscan_col_gpio
+0x4a17 mem_rec_tscan_sequence
+0x4a18 mem_rec_tscan_gpio_nums
+0x4a19 mem_rec_tscan_row_scan_loop_count
+0x4a1a mem_rec_key_state
+0x4a1a mem_rec_tscan_gndkey_state
+0x4a1b mem_rec_tscan_key_state
+0x4a1c mem_rec_tscan_record_temp
+0x4a1e mem_rec_tscan_key_need_send_flag
+0x4a1f mem_rec_tscan_current_key_num
+0x4a20 mem_rec_gpio_wakeup_source
+0x4a21 mem_rec_tscan_gndkey_record_temp
+0x4a22 mem_rec_tscan_gndkey_need_send_flag
+0x4a23 mem_rec_tscan_key_nums_list
+0x4a4b mem_rec_tscan_gndkey_nums_list
+0x4a55 mem_rec_tscan_key_num_bit
+0x4a5d mem_rec_tscan_combin_key_num_bit
+0x4a65 mem_rec_tscan_current_gpio_ptr
+0x4a67 mem_rec_tscan_record_now
+0x4a69 mem_rec_combin_key_timeout
+0x4a6a mem_rec_combin_key_timer
+0x4a6b mem_rec_gpio_bit_first
+0x4a6c mem_rec_gpio_bit_second
+0x4a6d mem_rec_gpio_bit_check
+0x4a6e mem_rec_gpio_for_wake_pullup
+0x4a6f mem_rec_keypad_type
+0x4a70 mem_rec_key_keyboard_value_list
+0x4b10 mem_rec_key_consumer_value_list
+0x4b40 mem_rec_key_mouse_value_list
+0x4b80 mem_rec_key_nec_value_list
+0x4bb0 mem_rec_key_press_le
+0x4bb0 mem_rec_key1_press_le
+0x4bb3 mem_rec_key2_press_le
+0x4bb6 mem_rec_key3_press_le
+0x4bb9 mem_rec_key4_press_le
+0x4bbc mem_rec_key5_press_le
+0x4bbf mem_rec_key6_press_le
+0x4bc2 mem_rec_key7_press_le
+0x4bc5 mem_rec_key8_press_le
+0x4bc8 mem_rec_key9_press_le
+0x4bcb mem_rec_key10_press_le
+0x4bce mem_rec_key11_press_le
+0x4bd1 mem_rec_key12_press_le
+0x4bd4 mem_rec_key13_press_le
+0x4bd7 mem_rec_key14_press_le
+0x4bda mem_rec_key15_press_le
+0x4bdd mem_rec_key16_press_le
+0x4be0 mem_rec_key17_press_le
+0x4be3 mem_rec_key18_press_le
+0x4be6 mem_rec_key19_press_le
+0x4be9 mem_rec_key20_press_le
+0x4bec mem_rec_key21_press_le
+0x4bef mem_rec_key_release_le
+0x4bf2 mem_rec_key_map
+0x4c07 mem_rec_gnd_key_offset
+0x4c08 mem_rec_keypad_fun
+0x4c09 mem_rec_le_enable_notify
+0x4c0a mem_rec_le_data_len
+0x4c0b mem_rec_le_connect_state
+0x4c0c mem_rec_report_id1_handle
+0x4c0e mem_rec_report_id2_handle
+0x4c10 mem_rec_report_id3_handle
+0x4c12 mem_rec_report_id4_handle
+0x4c14 mem_rec_queue_each_size
+0x4c15 mem_rec_queue_length
+0x4c16 mem_rec_queue_curr_num
+0x4c17 mem_rec_queue_read_ptr
+0x4c18 mem_rec_queue_write_ptr
+0x4c19 mem_rec_queue_ele
+0x4c39 mem_rec_ad_indexTable1
+0x4c49 mem_rec_ad_stepsizeTable1
+0x4dad mem_rec_ad_state_valpred1
+0x4db1 mem_rec_ad_state_index1
+0x4db5 mem_rec_ad_in_numSamples1
+0x4db6 mem_rec_ad_in_ptr1
+0x4db8 mem_rec_ad_out_ptr1
+0x4dba mem_rec_ad_sign1
+0x4dbb mem_rec_ad_delta1
+0x4dbc mem_rec_ad_step1
+0x4dc0 mem_rec_ad_valpred1
+0x4dc4 mem_rec_ad_index1
+0x4dc8 mem_rec_ad_vpdiff1
+0x4dcc mem_rec_ad_inputbuffer1
+0x4dd0 mem_rec_ad_bufferstep1
+0x4dd1 mem_rec_ad_val1
+0x4dd5 mem_rec_ad_outputbuffer1
+0x4dd9 mem_rec_ad_diff1
+0x4ddd mem_rec_voice_enable
+0x4dde mem_rec_voice_notify
+0x4df2 mem_rec_adc_dma_rptr
+0x4df4 mem_rec_voice_notify_apk_handle
+0x4df6 mem_rec_voice_notify_box_handle
+0x4df8 mem_rec_control_notify_apk_handle
+0x4dfa mem_rec_control_notify_box_handle
+0x4dfc mem_rec_white_list_num
+0x4dfd mem_rec_le_scan_filter_policy
+0x4dfe mem_rec_white_list_flash_write_head
+0x4e02 mem_rec_white_list
+0x4e32 mem_rec_le_req_type
+0x4e33 mem_rec_nec_send_gpio
+0x4e34 mem_rec_nec_receive_gpio
+0x4e35 mem_rec_ota_write_index
+0x4e37 mem_rec_ota_write_length
+0x4e3b mem_rec_ota_write_data_addr
+0x4e3d mem_rec_ota_write_flash_addr
+0x4e40 mem_rec_ota_write_flash_addr_start
+0x4e43 mem_rec_ota_total_sum
+0x4e47 mem_rec_ota_update_flash_mode
+0x4e48 mem_rec_ota_version
+0x4e4a mem_rec_ota_buck_size
+0x4e4c mem_rec_ota_packet_max_len
+0x4e4e mem_rec_ota_work_mode
+0x4e4f mem_rec_ota_notify_handle
+0x4e51 mem_rec_ota_notify_opcode
+0x4e52 mem_rec_ota_notify_result
+0x4e53 mem_rec_ota_notify_data
+0x4e5c mem_rec_ota_le_conn_update_param
+0x4e5c mem_rec_ota_le_interval_min
+0x4e5e mem_rec_ota_le_interval_max
+0x4e60 mem_rec_ota_le_latency
+0x4e62 mem_rec_ota_le_timeout
+0x4e64 mem_rec_ota_reset_timeout
+0x4e65 mem_rec_ota_le_conn_param_update
+0x4e66 mem_rec_ota_enable
+0x4e67 mem_rec_le_packet_size
+0x4e68 mem_rec_ota_flash_base_addr
+0x4e6b mem_rec_ota_flash_offset_addr
+0x4e6e mem_rec_queue_ota_count
+0x4e70 mem_rec_ota_queue_size
+0x4e72 mem_rec_code_a_flash_addr
+0x4e75 mem_rec_code_b_flash_addr
+0x4e78 mem_xmalloc_rec_end
+0x4508 mem_ble_shutter_enable_notify
+0x4509 mem_ble_shutter_reconn_adv_interval
+0x450b mem_ble_shutter_discovery_adv_interval
+0x450d mem_ble_shutter_reconn_timeout
+0x450f mem_ble_shutter_reconn_timer
+0x4511 mem_ble_shutter_reconn_blink_on_time
+0x4513 mem_ble_shutter_reconn_blink_off_time
+0x4515 mem_ble_shutter_discovery_blink_on_time
+0x4517 mem_ble_shutter_discovery_blink_off_time
+0x4519 mem_ble_shutter_interval_min
+0x451b mem_ble_shutter_interval_max
+0x451d mem_ble_shutter_latency
+0x451f mem_ble_shutter_timeout
+0x4521 mem_ble_shutter_interval_min_new
+0x4523 mem_ble_shutter_interval_max_new
+0x4525 mem_ble_shutter_latency_new
+0x4527 mem_ble_shutter_timeout_new
+0x4529 mem_ble_shutter_discovery_timeout
+0x452b mem_ble_shutter_connect_timeout
+0x452d mem_shutter_sleep_timeout
+0x452f mem_shutter_sleep_timer
+0x4531 mem_shutter_hard_soft_switch_case
+0x4532 mem_shutter_soft_switch_button_gpio
+0x4533 mem_shutter_soft_switch_power_state
+0x4534 mem_shutter_soft_switch_poweron_time
+0x4535 mem_shutter_soft_switch_poweroff_time
+0x4536 mem_shutter_soft_switch_poweron_callback_function
+0x4538 mem_shutter_soft_switch_poweroff_callback_function
+0x453a mem_shutter_keyscan
+0x453a mem_shutter_key_num
+0x453b mem_cb_shutter_keycan
+0x453d mem_shutter_key_conf0
+0x453e mem_shutter_key_conf1
+0x453f mem_key0_press
+0x4544 mem_key1_press
+0x4549 mem_key2_press
+0x454e mem_key0_release
+0x4553 mem_key1_release
+0x4558 mem_key2_release
+0x455d mem_ble_data_buffer1
+0x4562 mem_ble_data_buffer2
+0x4567 mem_ble_data_buffer3
+0x456c mem_ble_data_buffer4
+0x4571 mem_ble_data_buffer5
+0x4576 mem_ble_data_buffer6
+0x457b mem_ble_data_buffer7
+0x4580 mem_ble_data_buffer8
+0x4585 mem_ble_data_buffer9_58
+0x45b7 mem_queue_each_size
+0x45b8 mem_queue_length
+0x45b9 mem_queue_curr_num
+0x45ba mem_queue_read_ptr
+0x45bb mem_queue_write_ptr
+0x45bc mem_queue_ele
+0x45dc mem_shutter_nv_data
+0x4686 mem_shutter_led_struct_app_led
+0x4686 mem_shutter_led_struct_app_led_type
+0x4687 mem_shutter_led_struct_app_led_blink_count
+0x4688 mem_shutter_led_struct_app_led_gpio
+0x4689 mem_shutter_led_struct_app_led_on_time
+0x468b mem_shutter_led_struct_app_led_off_time
+0x468d mem_shutter_led_struct_app_led_on_callback
+0x468f mem_shutter_led_struct_app_led_off_callback
+0x4691 mem_shutter_power_off_led_style
+0x4691 mem_shutter_power_off_led_style_type
+0x4692 mem_shutter_power_off_led_style_blink_count
+0x4693 mem_shutter_power_off_led_style_gpio
+0x4694 mem_shutter_power_off_led_style_on_time
+0x4696 mem_shutter_power_off_led_style_off_time
+0x4698 mem_shutter_power_off_led_style_on_callback
+0x469a mem_shutter_power_off_led_style_off_callback
+0x469c mem_shutter_soft_swtich_botton_down
+0x469d mem_shutter_soft_swtich_led_struct_temp
+0x46a8 mem_shutter_power_off_timeout
+0x46a9 mem_shutter_power_off_timer
+0x46aa mem_shutter_key_conf0_temp
+0x46ac mem_shutter_led_struct_app_led_gpio_temp
+0x46ad mem_shutter_hard_soft_switch_case_temp
+0x46ae mem_shutter_soft_switch_button_gpio_temp
+0x46af mem_shutter_soft_switch_first_power_on
+0x46b0 mem_shutter_dy_conf
+0x46b1 mem_shutter_1s_timer
+0x46b2 mem_shutter_timer_625us
+0x46b4 mem_rf_init_data_new
+0x46bf mem_key_value_xmem
+0x46c1 mem_shutter_le_hid_map
+0x47a7 mem_shutter_le_uuid_sup
+0x4943 mem_shutter_le_map_len_android
+0x4945 mem_shutter_le_map_len_ios
+0x4947 mem_dy_le_search_service_uuid
+0x4957 mem_iphone_flag
+0x4958 mem_send_data_delay
+0x4959 mem_key_send_clk
+0x495d mem_shutter_key_state0
+0x4967 mem_shutter_key_state1
+0x4971 mem_shutter_key_state2
+0x497b mem_shutter_key_state3
+0x4985 mem_shutter_key_state4
+0x498f mem_shutter_key_state5
+0x4999 mem_shutter_key_state6
+0x49a3 mem_shutter_key_state7
+0x49ad mem_shutter_key_state8
+0x49b7 mem_dy_key0_press
+0x49c1 mem_dy_key1_press
+0x49cb mem_dy_key2_press
+0x49d5 mem_dy_key3_press
+0x49df mem_dy_key4_press
+0x49e9 mem_dy_key5_press
+0x49f3 mem_dy_key6_press
+0x49fd mem_dy_key7_press
+0x4a07 mem_dy_key8_press
+0x4a11 mem_key0_release_new
+0x4a20 mem_key1_release_new
+0x4a2f mem_key2_release_new
+0x4a3e mem_key3_release_new
+0x4a4d mem_key4_release_new
+0x4a5c mem_key5_release_new
+0x4a6b mem_key6_release_new
+0x4a7a mem_key7_release_new
+0x4a89 mem_key8_release_new
+0x4a98 mem_key0_long_press
+0x4a9b mem_key1_long_press
+0x4a9e mem_key2_long_press
+0x4aa1 mem_key3_long_press
+0x4aa4 mem_key4_long_press
+0x4aa7 mem_key5_long_press
+0x4aaa mem_key6_long_press
+0x4aad mem_key7_long_press
+0x4ab0 mem_key8_long_press
+0x4ab3 mem_key0_long_release
+0x4ab6 mem_key1_long_release
+0x4ab9 mem_key2_long_release
+0x4abc mem_key3_long_release
+0x4abf mem_key4_long_release
+0x4ac2 mem_key5_long_release
+0x4ac5 mem_key6_long_release
+0x4ac8 mem_key7_long_release
+0x4acb mem_key8_long_release
+0x4ace mem_combine_key0
+0x4ad0 mem_combine_key1
+0x4ad2 mem_combine_key2
+0x4ad4 mem_combine_key3
+0x4ad6 mem_combine_key4
+0x4ad8 mem_combine_key5
+0x4ada mem_combine_key_state0
+0x4adc mem_combine_key0_press
+0x4ae6 mem_combine_key1_press
+0x4af0 mem_combine_key2_press
+0x4afa mem_combine_key3_press
+0x4b04 mem_combine_key4_press
+0x4b0e mem_combine_key5_press
+0x4b18 mem_combine_key_release
+0x4b22 mem_shutter_move_data
+0x4b26 mem_key0_press_i
+0x4b30 mem_key1_press_i
+0x4b3a mem_key2_press_i
+0x4b44 mem_key3_press_i
+0x4b4e mem_key4_press_i
+0x4b58 mem_key5_press_i
+0x4b62 mem_key6_press_i
+0x4b6c mem_key7_press_i
+0x4b76 mem_key0_release_new_i
+0x4b85 mem_key1_release_new_i
+0x4b94 mem_key2_release_new_i
+0x4ba3 mem_key3_release_new_i
+0x4bb2 mem_key4_release_new_i
+0x4bc1 mem_key5_release_new_i
+0x4bd0 mem_key6_release_new_i
+0x4bdf mem_key7_release_new_i
+0x4bee mem_key8_release_new_i
+0x4bfd mem_key0_long_press_i
+0x4c00 mem_key1_long_press_i
+0x4c03 mem_key2_long_press_i
+0x4c06 mem_key3_long_press_i
+0x4c09 mem_key4_long_press_i
+0x4c0c mem_key5_long_press_i
+0x4c0f mem_key6_long_press_i
+0x4c12 mem_key7_long_press_i
+0x4c15 mem_key8_long_press_i
+0x4c18 mem_key0_long_release_i
+0x4c1b mem_key1_long_release_i
+0x4c1e mem_key2_long_release_i
+0x4c21 mem_key3_long_release_i
+0x4c24 mem_key4_long_release_i
+0x4c27 mem_key5_long_release_i
+0x4c2a mem_key6_long_release_i
+0x4c2d mem_key7_long_release_i
+0x4c30 mem_key8_long_release_i
+0x4c33 mem_key3_release_new_t
+0x4c3d mem_key3_release_new_i_t
+0x4c47 mem_key3_press_count
+0x4c48 mem_shutter_like_timeout
+0x4c49 mem_shutter_key_pressed
+0x4c4a mem_shutter_combine_key_release
+0x4c4b mem_shutter_mousekey_value_list
+0x4e71 mem_shutter_back_count
+0x4e72 mem_shutter_le_conned
+0x4e73 mem_move_config
+0x4e73 mem_shutter_iphone_beyond_x_count
+0x4e74 mem_shutter_iphone_beyond_y_count
+0x4e75 mem_shutter_move_data_x
+0x4e77 mem_shutter_move_data_y
+0x4e79 mem_last_shutter_le_iphone_flag
+0x4e7a mem_move_config_end
+0x4e7a mem_shutter_back_count_cache
+0x4e7b mem_shutter_iphone_beyond_x_cache
+0x4e7c mem_shutter_iphone_beyond_y_cache
+0x4e7d mem_shutter_iphone_move_mid
+0x4e87 mem_shutter_long_key_released_flag
+0x4e88 mem_shutter_move_mid_timer
+0x4e89 mem_shutter_pairing_success
+0x4e8a mem_combine_key_release_value
+0x4e8c mem_last_press_key_value
+0x4e8d mem_shutter_first_move
+0x4e8e mem_move_mode_set
+0x4e8f mem_move_mode_key_index
+0x4e90 mem_move_mode_trigger_enable
+0x4e91 mem_shutter_android_move_mid
+0x4e96 mem_shutter_iphone_up_mid
+0x4ea0 mem_shutter_iphone_like_mid
+0x4eaa mem_shutter_key_num_conf
+0x4eab mem_shutter_dy_key_conf
+0x4eb4 mem_le_dy_adv_data
+0x4ebf mem_le_dy_scan_data
+0x4ecb mem_ble_shutter_dy_interval_min_android
+0x4ed3 mem_ble_shutter_dy_interval_min_ios
+0x4edb mem_shutter_ble_discovery_time_conf
+0x4ee3 mem_queue_dy_each_size
+0x4ee5 mem_shutter_led_on_light_dark_led_conf
+0x4eec mem_shutter_led_off_light_dark_led_conf
+0x4ef3 mem_shutter_reconn_blink_on_time_conf
+0x4ef7 mem_shutter_discovery_blink_on_time_conf
+0x4efb mem_shutter_efuse_start_offset
+0x4efd mem_shutter_efuse_end_offset
+0x4eff mem_initial_move_conf
+0x4eff mem_android_initial_move_x
+0x4f01 mem_android_initial_move_y
+0x4f03 mem_iphone_initial_move_x
+0x4f05 mem_iphone_initial_move_y
+0x4f07 mem_otp_move_config
+0x4f07 mem_otp_shutter_move_data_x
+0x4f09 mem_otp_shutter_move_data_y
+0x4f0b mem_otp_last_shutter_le_iphone_flag
+0x4f0c mem_otp_move_config_end
+0x4f0c mem_otp_write_offset_addr
+0x4f0e mem_otp_read_offset_addr
+0x4f10 mem_otp_read_ios_android_addr
+0x4f12 mem_shutter_le_pairing_handle
+0x4f14 mem_shutter_temp_count
+0x4f16 mem_shutter_first_read_flag
+0x4f17 mem_shutter_valid_data_flag
+0x4f18 mem_shutter_volume_timer
+0x4f19 mem_shutter_link_timer
+0x4f1a mem_shutter_link_data
+0x4f22 mem_shutter_link_data_i
+0x4f2a mem_shutter_link_loop_flag
+0x4f2b mem_shutter_dy_le_enc_timer
+0x4f2c mem_shutter_end
+
Index: costumer/Bore/keyboard_ck801_only_24g/output/otp.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/otp.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/otp.dat	(working copy)
@@ -0,0 +1,3560 @@
+0b
+00
+02
+00
+00
+00
+00
+00
+00
+00
+00
+8f
+ab
+f1
+00
+3c
+ae
+c6
+03
+78
+5c
+8d
+07
+e0
+71
+35
+1e
+aa
+55
+f0
+07
+ca
+22
+e1
+71
+1f
+76
+a5
+fd
+f3
+ad
+40
+43
+3b
+db
+69
+2d
+99
+a6
+57
+b4
+f0
+94
+ce
+c8
+6d
+b8
+3c
+73
+b7
+43
+88
+6f
+eb
+6a
+35
+8d
+b7
+e5
+8f
+46
+3b
+d6
+db
+b6
+65
+93
+2e
+73
+46
+e6
+e0
+f7
+14
+c5
+ab
+57
+07
+33
+00
+a9
+28
+4d
+0b
+20
+8a
+74
+8f
+82
+8e
+71
+1d
+7f
+ba
+85
+95
+47
+c4
+f7
+d0
+ef
+82
+7f
+60
+2e
+08
+6d
+45
+a5
+12
+c9
+96
+e6
+51
+72
+40
+0d
+0a
+f7
+4f
+00
+4f
+2f
+25
+1a
+69
+7f
+b5
+56
+bb
+08
+b8
+4f
+e8
+e8
+ab
+07
+f6
+9c
+ee
+af
+da
+27
+64
+88
+f6
+e0
+75
+2e
+a2
+2e
+f2
+63
+d5
+d1
+2f
+27
+f5
+c4
+28
+10
+0f
+66
+2d
+e9
+96
+35
+0f
+03
+22
+8c
+4d
+de
+c3
+42
+ea
+15
+0c
+8c
+dc
+6f
+3c
+9e
+76
+23
+10
+c5
+0c
+fc
+f1
+ad
+02
+53
+c0
+08
+5a
+9b
+c5
+a5
+3d
+b2
+19
+ae
+bc
+b0
+7d
+22
+b3
+f5
+e2
+e3
+29
+02
+67
+84
+36
+86
+c0
+0e
+94
+36
+d0
+f2
+9d
+88
+0f
+bc
+0d
+5a
+db
+e9
+3e
+4e
+63
+8e
+8d
+15
+a0
+dc
+78
+16
+47
+8f
+55
+dd
+19
+e0
+d0
+79
+74
+5f
+5f
+92
+2b
+63
+f6
+b5
+8c
+c6
+0b
+c0
+62
+42
+d7
+7d
+33
+b5
+4c
+cb
+0b
+00
+42
+5b
+30
+31
+df
+4b
+30
+8e
+07
+26
+d9
+2b
+31
+cb
+18
+c5
+91
+6b
+4a
+0a
+4a
+55
+e4
+27
+df
+85
+2a
+90
+68
+c7
+5b
+d5
+88
+85
+98
+90
+0b
+79
+40
+18
+aa
+99
+fa
+f6
+c0
+9e
+c8
+37
+df
+10
+6f
+ee
+5c
+1c
+61
+42
+14
+4f
+cf
+0f
+ba
+2d
+0c
+8a
+0e
+22
+6c
+b3
+69
+3c
+00
+75
+94
+05
+ee
+80
+3f
+3a
+b5
+6d
+af
+93
+26
+63
+34
+02
+4d
+bf
+b0
+78
+dd
+90
+d7
+b0
+4a
+85
+fc
+8f
+53
+a9
+0d
+5b
+34
+99
+f3
+03
+03
+c2
+e2
+d0
+ac
+0d
+d5
+05
+3f
+a5
+67
+e7
+ae
+05
+56
+46
+4e
+b2
+2c
+c9
+59
+c0
+c3
+ec
+fa
+8c
+2c
+79
+70
+95
+f2
+0f
+3d
+4d
+40
+e7
+6d
+75
+a3
+2d
+08
+ad
+ed
+d3
+58
+ac
+51
+75
+d0
+87
+ac
+26
+7b
+78
+21
+ac
+12
+f0
+85
+53
+b3
+42
+05
+66
+5e
+3a
+47
+5e
+c4
+16
+43
+93
+0a
+27
+2c
+35
+b9
+b5
+dc
+1e
+ff
+bf
+25
+e4
+e1
+89
+be
+8d
+17
+46
+13
+20
+ff
+b5
+a0
+e8
+d6
+4e
+5a
+88
+85
+d5
+d3
+14
+db
+ac
+77
+97
+4b
+50
+f8
+f3
+f8
+6d
+be
+13
+34
+8d
+17
+7c
+65
+b4
+89
+cb
+5f
+34
+34
+2d
+f2
+3c
+c5
+f4
+4c
+88
+4d
+cb
+a6
+32
+66
+25
+d6
+35
+28
+b3
+c6
+36
+94
+f1
+c6
+1f
+ed
+a4
+d6
+15
+1f
+2b
+e5
+a6
+60
+64
+2c
+3a
+c3
+69
+1b
+f6
+15
+21
+a6
+23
+64
+a7
+7f
+21
+62
+e4
+24
+47
+4c
+7d
+cb
+f5
+21
+a9
+0b
+40
+e3
+a7
+71
+d4
+34
+d3
+93
+39
+f5
+bf
+14
+07
+52
+a8
+c9
+a7
+a2
+11
+fb
+77
+19
+d8
+8a
+6e
+0a
+e3
+e0
+cb
+f8
+2f
+93
+cc
+51
+30
+a7
+6d
+f1
+bf
+86
+7c
+e7
+a7
+db
+cd
+61
+5d
+31
+63
+ad
+bb
+c6
+04
+e6
+14
+a3
+65
+95
+63
+f6
+42
+dd
+9c
+a2
+cb
+0c
+54
+b0
+b4
+10
+f0
+82
+9d
+9a
+1d
+c9
+f6
+42
+5a
+71
+08
+ef
+c6
+42
+10
+6d
+55
+0f
+ff
+8d
+24
+87
+d2
+d6
+0b
+0c
+59
+f3
+da
+ba
+95
+b1
+5d
+29
+39
+8a
+10
+04
+48
+3a
+0f
+5d
+50
+7e
+5d
+ec
+30
+52
+1d
+38
+4d
+c4
+4f
+89
+79
+f6
+2e
+15
+40
+76
+16
+d5
+d1
+6f
+91
+e2
+4b
+6f
+e9
+43
+af
+25
+8e
+50
+ba
+e1
+46
+0d
+6c
+f8
+9a
+ec
+23
+1d
+d2
+01
+a2
+7d
+15
+1f
+7b
+19
+79
+ed
+4e
+4c
+e4
+d2
+21
+64
+5f
+c9
+9c
+41
+80
+e3
+26
+9c
+0f
+b3
+6e
+02
+33
+93
+b5
+f6
+ee
+9d
+69
+a1
+e3
+ec
+f5
+e9
+2a
+dd
+aa
+f8
+27
+ed
+da
+19
+81
+69
+32
+37
+fe
+f2
+ea
+9b
+79
+34
+a0
+49
+16
+79
+f2
+6d
+fb
+f3
+28
+cc
+92
+a0
+d3
+9c
+08
+ad
+65
+e4
+56
+6c
+cb
+cb
+06
+9b
+fe
+d6
+b0
+5c
+6a
+f7
+2b
+99
+8e
+00
+10
+e2
+14
+1c
+14
+90
+8a
+31
+29
+cc
+0d
+26
+ca
+ca
+37
+e3
+ab
+e1
+66
+77
+d8
+97
+00
+12
+9f
+6a
+9c
+13
+cf
+e2
+b2
+d4
+8f
+be
+d3
+3b
+72
+ed
+62
+9e
+18
+1b
+c5
+16
+3a
+ec
+74
+d2
+f3
+9e
+38
+3b
+06
+bd
+06
+2d
+81
+2c
+d8
+7e
+27
+24
+1f
+d0
+57
+9a
+c6
+d1
+93
+78
+38
+11
+0a
+92
+e4
+48
+0e
+e3
+33
+b8
+81
+1f
+a7
+88
+eb
+49
+62
+ae
+b9
+04
+76
+a3
+b1
+e8
+83
+fc
+a9
+12
+3d
+b4
+28
+db
+26
+9c
+02
+e4
+92
+75
+d9
+a4
+c7
+e1
+1a
+85
+32
+29
+10
+ae
+a0
+5f
+a5
+88
+6b
+9d
+fd
+99
+7a
+55
+1f
+9f
+8d
+0b
+d2
+10
+5d
+56
+da
+15
+a7
+fb
+16
+ed
+d8
+71
+e6
+b7
+72
+5b
+3d
+e6
+01
+59
+af
+18
+df
+14
+d7
+cf
+27
+51
+40
+ad
+d6
+40
+a0
+aa
+33
+30
+91
+50
+c1
+67
+37
+0d
+66
+c7
+a2
+e9
+e2
+9d
+10
+12
+51
+c3
+8b
+f6
+fd
+be
+0a
+23
+ab
+27
+9f
+73
+73
+c2
+92
+21
+12
+e1
+fe
+49
+0b
+69
+d8
+7c
+91
+8c
+32
+7c
+ea
+46
+a9
+64
+be
+32
+21
+63
+b1
+a5
+b5
+5f
+4a
+21
+e4
+7e
+27
+36
+a6
+db
+d0
+92
+2e
+fd
+bc
+3b
+92
+8d
+53
+4e
+fb
+61
+ba
+64
+48
+ac
+3f
+36
+35
+76
+cc
+7e
+ea
+06
+35
+cc
+12
+93
+99
+80
+81
+bb
+e8
+c4
+bb
+aa
+96
+03
+78
+0a
+bb
+b6
+f5
+14
+e3
+56
+3b
+b4
+6d
+43
+80
+05
+0c
+bb
+a1
+56
+ba
+79
+8f
+79
+b0
+3f
+d4
+b6
+65
+f7
+03
+53
+73
+d5
+6f
+a4
+e3
+20
+b7
+e9
+93
+3c
+79
+76
+ee
+a3
+43
+54
+70
+a2
+ac
+36
+26
+28
+93
+2f
+ae
+5f
+d8
+8e
+47
+ba
+91
+9e
+16
+39
+de
+ad
+08
+3a
+82
+7a
+94
+17
+34
+b2
+e7
+c9
+77
+8a
+20
+18
+25
+5f
+c6
+40
+1d
+2d
+56
+bb
+03
+1b
+91
+13
+3e
+c8
+ec
+02
+12
+c4
+cb
+8d
+85
+99
+69
+1f
+f1
+84
+09
+81
+83
+08
+3e
+ef
+ec
+d5
+2a
+36
+ac
+c4
+1b
+92
+f0
+af
+6a
+38
+87
+ac
+d4
+72
+29
+aa
+fc
+27
+90
+b4
+f2
+60
+ff
+26
+97
+ef
+0c
+dc
+4d
+e2
+66
+74
+88
+1a
+d7
+99
+5b
+88
+77
+95
+16
+df
+bc
+e5
+1d
+61
+92
+c4
+d0
+4b
+c2
+d2
+20
+a6
+64
+7f
+c4
+d5
+4c
+ef
+bc
+f9
+6b
+77
+ec
+cb
+21
+1b
+3e
+89
+ec
+47
+c5
+45
+d4
+35
+66
+b1
+b4
+75
+65
+0f
+9c
+36
+0e
+03
+27
+d8
+cb
+83
+34
+c3
+42
+e4
+af
+10
+2d
+7e
+2f
+1b
+28
+02
+01
+0d
+19
+a5
+72
+76
+1b
+aa
+6b
+68
+c9
+a4
+2a
+2b
+6d
+ea
+bc
+3e
+8b
+3f
+5a
+d4
+b3
+22
+99
+2a
+ec
+01
+57
+2b
+b3
+21
+c3
+03
+72
+36
+9e
+a7
+e8
+58
+ad
+df
+c2
+6c
+6e
+53
+e7
+0f
+6f
+3d
+64
+9a
+bf
+89
+79
+df
+0d
+b8
+0f
+bb
+b6
+e1
+91
+cf
+a5
+06
+a5
+5b
+a7
+d4
+78
+c6
+3d
+b9
+dc
+7d
+5f
+3f
+18
+c4
+47
+ec
+57
+73
+34
+4e
+98
+1d
+65
+77
+9c
+9b
+03
+57
+92
+96
+df
+f0
+20
+ba
+7a
+30
+bb
+8a
+9b
+46
+18
+27
+88
+b2
+23
+51
+43
+f5
+61
+79
+79
+ff
+13
+fc
+87
+b5
+0f
+bd
+e0
+10
+47
+00
+c5
+2e
+da
+ad
+55
+19
+9f
+fa
+a9
+df
+a5
+4d
+ea
+54
+f6
+bb
+a2
+46
+82
+fe
+a3
+26
+96
+9b
+e4
+41
+ed
+0a
+ae
+4e
+da
+99
+d9
+9d
+81
+30
+02
+38
+5f
+a1
+af
+22
+46
+4e
+ff
+c8
+52
+07
+89
+a7
+cf
+a8
+a2
+dc
+cf
+f0
+be
+2d
+75
+12
+99
+d9
+63
+53
+cb
+2e
+2a
+07
+70
+d4
+99
+ce
+6a
+d8
+64
+94
+23
+c2
+50
+5e
+a5
+64
+19
+bb
+7c
+a8
+1f
+f5
+ab
+57
+24
+87
+ae
+5b
+e6
+0d
+02
+ef
+29
+e5
+8d
+c6
+e9
+5c
+60
+41
+a0
+d6
+ad
+15
+4a
+dd
+d6
+86
+e1
+9d
+95
+5e
+d0
+50
+64
+57
+eb
+57
+9d
+fa
+b5
+ef
+9e
+f3
+e9
+66
+90
+40
+6a
+2d
+53
+10
+1e
+ef
+28
+a9
+b0
+7b
+b7
+45
+a6
+ab
+e6
+05
+ab
+df
+61
+b2
+77
+46
+93
+09
+18
+6a
+fc
+c8
+1e
+95
+5f
+4f
+d1
+a0
+e0
+db
+cf
+8f
+51
+a1
+9d
+dc
+60
+eb
+6e
+ba
+04
+39
+fa
+79
+bb
+89
+0c
+b8
+45
+a8
+aa
+c1
+a4
+34
+02
+af
+11
+bf
+f2
+06
+f7
+07
+5e
+ee
+fe
+64
+53
+0c
+36
+bb
+18
+80
+15
+38
+de
+46
+d9
+5e
+03
+d6
+98
+b0
+17
+e8
+4f
+fd
+16
+29
+ca
+86
+8d
+d5
+b1
+ab
+3d
+84
+e6
+66
+29
+78
+f5
+3c
+dd
+0a
+91
+ca
+14
+e5
+f3
+3b
+82
+36
+62
+a9
+20
+95
+f0
+0d
+29
+f4
+06
+16
+88
+c0
+6c
+60
+1c
+39
+e1
+14
+72
+03
+8e
+db
+9d
+82
+a2
+b7
+dc
+1b
+17
+84
+68
+9f
+e8
+41
+74
+d8
+67
+15
+8c
+cb
+48
+60
+46
+09
+00
+7b
+68
+e2
+4c
+f9
+e3
+dd
+6b
+0d
+30
+77
+01
+c4
+57
+d5
+13
+d9
+1e
+73
+47
+3f
+68
+c3
+bd
+c2
+eb
+6f
+28
+22
+8e
+04
+c4
+b0
+01
+16
+25
+55
+34
+40
+b5
+46
+23
+89
+41
+a1
+82
+33
+52
+88
+0b
+20
+73
+f0
+90
+74
+63
+4b
+04
+73
+38
+60
+39
+cb
+46
+0f
+1a
+75
+3d
+05
+a8
+43
+24
+7f
+20
+0f
+8c
+ff
+b5
+8d
+c8
+48
+46
+a8
+50
+59
+9e
+56
+21
+12
+61
+60
+96
+ea
+6a
+91
+af
+b3
+76
+8e
+f1
+c6
+61
+98
+16
+61
+f1
+53
+bf
+f8
+b1
+f5
+98
+87
+9b
+30
+31
+31
+8e
+59
+67
+e3
+b8
+ce
+f1
+6b
+54
+26
+58
+bf
+7c
+d3
+3c
+c0
+0c
+d3
+38
+c8
+1d
+f5
+dc
+0c
+4c
+81
+b3
+3d
+8b
+df
+50
+36
+8e
+0c
+9d
+d0
+7b
+ae
+5d
+36
+a0
+f0
+0d
+3f
+e2
+54
+38
+22
+4f
+90
+bf
+2f
+87
+f0
+ec
+4a
+db
+e1
+69
+b1
+44
+7b
+7c
+ca
+c9
+28
+74
+76
+eb
+c4
+aa
+e9
+ba
+e4
+a9
+9f
+fd
+c5
+80
+f3
+97
+40
+c7
+5e
+a7
+86
+8c
+90
+f9
+77
+bb
+d7
+be
+7a
+d9
+5a
+27
+ea
+cb
+0f
+75
+1f
+37
+b7
+03
+ac
+30
+d2
+c0
+02
+af
+cb
+18
+27
+5a
+4f
+6a
+7d
+96
+5c
+be
+c6
+df
+6e
+79
+a0
+96
+46
+f2
+2f
+c9
+75
+fa
+25
+56
+df
+23
+5b
+71
+8f
+dc
+a0
+3d
+75
+38
+39
+b2
+67
+0d
+bc
+71
+2e
+24
+5c
+e7
+ce
+8e
+ee
+f5
+8c
+43
+ed
+c9
+a0
+c6
+91
+e0
+24
+c0
+d8
+32
+e3
+aa
+00
+86
+f0
+1a
+fa
+24
+68
+e4
+33
+f1
+a5
+0e
+11
+91
+5a
+74
+c9
+c5
+dd
+39
+81
+09
+e7
+f1
+86
+cb
+73
+5d
+18
+a6
+e2
+4c
+78
+5e
+32
+f9
+b9
+73
+e3
+73
+87
+ba
+88
+60
+6f
+6f
+aa
+55
+40
+00
+00
+40
+00
+00
+00
+06
+00
+01
+00
+40
+19
+50
+40
+12
+00
+04
+00
+10
+04
+00
+00
+00
+00
+00
+00
+00
+00
+80
+00
+00
+00
+06
+00
+04
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+04
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+08
+00
+8e
+48
+00
+89
+0d
+00
+00
+06
+00
+00
+aa
+55
+01
+00
+cf
+43
+0f
+aa
+55
+01
+00
+8d
+48
+01
+aa
+55
+02
+00
+da
+4a
+a3
+e4
+aa
+55
+01
+00
+03
+45
+ff
+aa
+55
+01
+00
+02
+45
+1e
+aa
+55
+01
+00
+05
+45
+01
+aa
+55
+01
+00
+41
+41
+01
+aa
+55
+01
+00
+e9
+45
+07
+aa
+55
+02
+00
+07
+46
+43
+47
+aa
+55
+02
+00
+57
+46
+85
+90
+aa
+55
+02
+00
+5a
+46
+75
+80
+aa
+55
+01
+00
+59
+46
+63
+aa
+55
+01
+00
+3e
+46
+7d
+aa
+55
+09
+00
+d1
+4a
+01
+51
+31
+10
+50
+51
+31
+20
+50
+aa
+55
+06
+00
+08
+45
+03
+11
+36
+55
+51
+61
+aa
+55
+01
+00
+a0
+45
+02
+aa
+55
+05
+00
+fa
+45
+01
+0f
+0f
+0f
+0f
+aa
+55
+01
+00
+d0
+45
+00
+aa
+55
+01
+00
+38
+47
+02
+aa
+55
+01
+00
+e1
+45
+00
+aa
+55
+02
+00
+a2
+45
+c0
+12
+aa
+55
+01
+00
+55
+46
+9e
+aa
+55
+03
+00
+c6
+45
+00
+48
+60
+aa
+55
+02
+00
+34
+46
+0a
+00
+aa
+55
+02
+00
+32
+46
+50
+00
+aa
+55
+02
+00
+1c
+47
+32
+00
+aa
+55
+01
+00
+06
+47
+02
+aa
+55
+08
+00
+c4
+43
+fb
+00
+48
+08
+fb
+00
+48
+08
+aa
+55
+01
+00
+94
+40
+01
+aa
+55
+01
+00
+c0
+40
+10
+aa
+55
+01
+00
+8b
+48
+10
+aa
+55
+06
+00
+dd
+42
+73
+83
+92
+a1
+b1
+c1
+aa
+55
+01
+00
+97
+43
+07
+aa
+55
+02
+00
+7d
+47
+96
+00
+aa
+55
+02
+00
+74
+47
+15
+00
+aa
+55
+02
+00
+9f
+43
+19
+00
+aa
+55
+04
+00
+76
+47
+1d
+00
+21
+00
+aa
+55
+02
+00
+34
+43
+28
+00
+aa
+55
+02
+00
+7a
+47
+30
+00
+aa
+55
+0c
+00
+4c
+43
+1f
+02
+01
+05
+03
+03
+12
+18
+03
+19
+c1
+03
+aa
+55
+07
+00
+5f
+47
+06
+ff
+06
+00
+03
+00
+80
+aa
+55
+15
+00
+6c
+43
+1f
+13
+09
+42
+6c
+75
+65
+74
+6f
+6f
+74
+68
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+13
+00
+6d
+42
+12
+42
+6c
+75
+65
+74
+6f
+6f
+74
+68
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+08
+00
+d5
+42
+08
+00
+08
+00
+20
+00
+2c
+01
+aa
+55
+06
+00
+59
+47
+03
+12
+18
+ff
+00
+00
+aa
+55
+09
+00
+01
+49
+41
+70
+70
+6c
+65
+20
+49
+6e
+63
+aa
+55
+02
+00
+ff
+48
+0a
+18
+aa
+55
+10
+00
+ee
+48
+d0
+00
+2d
+12
+1e
+4b
+0f
+a4
+99
+4e
+ce
+b5
+31
+f4
+05
+79
+aa
+55
+02
+00
+0a
+49
+c1
+03
+aa
+55
+08
+00
+ce
+48
+01
+02
+e8
+04
+21
+70
+01
+00
+aa
+55
+16
+00
+d8
+48
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+24
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+aa
+55
+01
+00
+1d
+44
+02
+aa
+55
+01
+00
+1f
+44
+0a
+aa
+55
+01
+00
+1e
+44
+0d
+aa
+55
+01
+00
+27
+44
+00
+aa
+55
+04
+00
+23
+44
+00
+07
+ff
+07
+aa
+55
+01
+00
+b1
+48
+00
+aa
+55
+01
+00
+c1
+4a
+1e
+aa
+55
+02
+00
+1a
+47
+02
+00
+aa
+55
+01
+00
+54
+46
+64
+aa
+55
+02
+00
+51
+46
+58
+02
+aa
+55
+01
+00
+19
+47
+64
+aa
+55
+01
+00
+53
+46
+64
+aa
+55
+02
+00
+4f
+46
+08
+07
+aa
+55
+02
+00
+1e
+47
+50
+46
+aa
+55
+02
+00
+c7
+4a
+64
+00
+aa
+55
+01
+00
+cd
+4a
+05
+aa
+55
+01
+00
+ca
+4a
+05
+aa
+55
+02
+00
+a1
+49
+b8
+0b
+aa
+55
+08
+00
+78
+46
+00
+34
+00
+00
+00
+00
+00
+00
+aa
+55
+01
+00
+16
+47
+01
+aa
+55
+0f
+00
+97
+48
+00
+7f
+1e
+00
+7f
+1f
+00
+7f
+20
+00
+7f
+21
+00
+7f
+22
+aa
+55
+07
+00
+ba
+48
+07
+01
+02
+04
+03
+05
+06
+aa
+55
+02
+00
+c8
+48
+50
+00
+aa
+55
+02
+00
+c3
+4a
+58
+02
+aa
+55
+06
+00
+b2
+48
+13
+01
+a0
+0f
+00
+1e
+aa
+55
+03
+00
+1c
+49
+ff
+ff
+ff
+aa
+55
+01
+00
+7f
+4a
+01
+aa
+55
+01
+00
+0f
+49
+ff
+aa
+55
+06
+00
+95
+4a
+7f
+ff
+29
+14
+2a
+10
+aa
+55
+03
+00
+3e
+44
+ff
+ff
+ff
+aa
+55
+02
+00
+f4
+43
+10
+00
+aa
+55
+03
+00
+fe
+46
+00
+50
+00
+aa
+55
+02
+00
+bf
+4a
+20
+03
+aa
+55
+09
+00
+13
+49
+8c
+89
+ff
+ff
+8a
+8a
+ff
+ff
+ff
+aa
+55
+03
+00
+10
+49
+0b
+0d
+ff
+aa
+55
+01
+00
+66
+46
+05
+aa
+55
+0c
+00
+3c
+49
+c2
+c3
+c4
+c5
+c6
+c7
+80
+81
+82
+83
+84
+85
+aa
+55
+1c
+00
+1f
+49
+08
+07
+06
+04
+03
+00
+01
+02
+13
+c6
+c5
+c4
+c3
+c2
+80
+c7
+0f
+12
+0e
+84
+83
+82
+81
+85
+14
+15
+ff
+ff
+aa
+55
+90
+00
+c7
+49
+48
+00
+00
+00
+e4
+00
+e0
+3e
+14
+2b
+04
+29
+1d
+8b
+35
+1e
+1a
+39
+16
+64
+1b
+8a
+3a
+1f
+08
+3c
+07
+3d
+06
+88
+3b
+20
+15
+17
+09
+0a
+19
+05
+22
+21
+18
+1c
+0d
+0b
+10
+11
+23
+24
+0c
+30
+0e
+3f
+36
+87
+2e
+25
+12
+40
+0f
+00
+37
+65
+41
+26
+13
+2f
+33
+34
+32
+38
+2d
+27
+47
+00
+7f
+e2
+00
+e6
+00
+46
+89
+2a
+31
+44
+28
+45
+42
+43
+5f
+5c
+59
+2c
+53
+51
+4c
+00
+60
+5d
+5a
+62
+54
+4f
+49
+00
+61
+5e
+5b
+63
+55
+56
+4b
+4e
+57
+85
+58
+52
+e9
+50
+4a
+4d
+00
+e1
+e5
+ed
+ee
+ec
+eb
+e8
+f1
+e3
+f6
+f8
+f7
+f9
+ef
+fa
+91
+f5
+e7
+f0
+ea
+f2
+fb
+90
+aa
+55
+0f
+00
+84
+4a
+00
+29
+e8
+e9
+ea
+eb
+ec
+ed
+ee
+ef
+f0
+f1
+f2
+af
+4c
+aa
+55
+01
+00
+94
+4a
+29
+aa
+55
+b1
+00
+e8
+4a
+af
+00
+05
+01
+09
+06
+a1
+01
+85
+02
+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
+26
+ff
+00
+05
+07
+19
+00
+29
+ff
+81
+00
+c0
+05
+0c
+09
+01
+a1
+01
+85
+03
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+c0
+05
+01
+09
+80
+a1
+01
+85
+04
+15
+00
+25
+01
+75
+01
+95
+03
+19
+81
+29
+83
+81
+02
+95
+01
+75
+05
+81
+03
+c0
+aa
+55
+01
+00
+48
+41
+0c
+aa
+55
+06
+00
+c3
+40
+35
+3f
+64
+db
+7b
+3b
+aa
+55
+01
+00
+a7
+40
+20
+aa
+55
+03
+00
+c9
+40
+00
+08
+b4
+aa
+55
+01
+00
+99
+40
+18
+aa
+55
+01
+00
+1c
+41
+7f
+aa
+55
+0c
+00
+16
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+02
+aa
+55
+05
+00
+60
+41
+08
+0e
+05
+03
+00
+aa
+55
+01
+00
+6a
+41
+20
+aa
+55
+02
+00
+9a
+40
+00
+10
+aa
+55
+05
+00
+43
+41
+ff
+04
+00
+00
+08
+aa
+55
+01
+00
+4f
+44
+a0
+aa
+55
+02
+00
+52
+44
+bc
+02
+aa
+55
+02
+00
+50
+44
+90
+01
+aa
+55
+02
+00
+54
+44
+03
+09
+aa
+55
+01
+00
+49
+41
+ff
+aa
+55
+02
+00
+9c
+40
+49
+41
+55
+aa
+aa
+55
+d4
+95
+6f
+87
Index: costumer/Bore/keyboard_ck801_only_24g/output/program.lis
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/program.lis	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/program.lis	(working copy)
@@ -0,0 +1,667 @@
+              include "bt_format "
+              org 0x0000
+0000 c2840015 bbit1 8 ,pf_patch_ext 
+0001 c00c8018 beq patch03_1 ,p_set_tx_power 
+0002 c00d001f beq patch03_2 ,p_initialize_radio_cont 
+0003 c0140060 beq patch05_0 ,p_lpm_dispatch 
+0004 c01f0127 beq patch07_6 ,p_keyboard_setting_config_next 
+0005 c020008b beq patch08_0 ,p_keyboard_store_device_info 
+0006 c02180d5 beq patch08_3 ,p_keyboard_bb_event_timer 
+0007 c0220096 beq patch08_4 ,p_keyboard_adc_vol_init 
+0008 c02600b0 beq patch09_4 ,p_kscan_dispatch 
+0009 c02701ed beq patch09_6 ,p_keyboard_keyvalue_change 
+000a c041009e beq patch10_2 ,p_mouse_adc_bat_percent_lowpower_out 
+000b c02b0123 beq patch0a_6 ,p_keyboard_long_button_bt_discovery 
+000c c02c814c beq patch0b_1 ,p_keyboard_motion_data_check 
+000d c02e0158 beq patch0b_4 ,p_keyboard_value_tpye_consumer_set 
+000e c0350137 beq patch0d_2 ,p_keyboard_le_parse_att 
+000f c03e01e2 beq patch0f_4 ,p_keyboard_app_enter_hibernate 
+0010 c074802a beq patch1d_1 ,p_otp_write 
+0011 c0750027 beq patch1d_2 ,p_otp_read_data 
+0012 c067806e beq patch19_7 ,p_keyboard_init 
+0013 c07d005c beq patch1f_2 ,p_gpio_set_wake_by_current_state 
+0014 2020233e branch assert 
+
+pf_patch_ext:
+0015 c17f8000 rtneq patch3f_7 
+0016 c0614815 beq patch38_2 ,keyboard_g24_transmit_no_interrupt 
+0017 2020233e branch assert 
+
+p_set_tx_power:
+0018 6fe0c141 fetch 1 ,mem_tx_power 
+0019 c04f001b beq tx_power_f30db ,p_set_tx_power_f30db 
+001a 20202214 branch set_tx_power + 2 
+
+p_set_tx_power_f30db:
+001b 708a1417 jam 0x17 ,0x8a14 
+001c 58251305 setarg 0x251305 
+001d 67f18a60 store 3 ,0x8a60 
+001e 20202220 branch set_tx_power_8a63_28 
+
+p_initialize_radio_cont:
+001f 37d98200 until null ,lpo_edge 
+0020 7089460d jam 0x0d ,0x8946 
+0021 70896f10 jam 0x10 ,0x896f 
+0022 708a13cd jam 0xcd ,0x8a13 
+0023 6ff08a06 fetch 1 ,0x8a06 
+0024 1fe17efc and pdata ,0xfc ,pdata 
+0025 67f08a06 store 1 ,0x8a06 
+0026 20202255 branch initialize_radio_cont + 6 
+
+p_otp_read_data:
+0027 20406b28 call enable_otp_read 
+0028 20406b63 call otp_read_data1 
+0029 20206b26 branch otp_disable_chgpump 
+
+p_otp_write:
+002a 20406b22 call otp_enable_chgpump65 
+002b 20406b2f call otp_set_addr 
+002c 20406b29 call otp_reset 
+
+p_otp_program:
+002d e8408011 ifetcht 1 ,rega 
+002e 1a20a201 increase 1 ,rega 
+002f 18000e00 force 0 ,queue 
+
+p_otp_program_bit:
+0030 793f8022 set0 mark_otp_write ,mark 
+
+p_otp_program_bit2:
+0031 a84c0000 qisolate0 temp 
+0032 20208054 branch p_otp_skip_0 ,true 
+0033 6ff08046 fetch 1 ,core_otp_din 
+0034 79207e06 set1 6 ,pdata 
+0035 79207e07 set1 7 ,pdata 
+0036 67f08046 store 1 ,core_otp_din 
+0037 70804702 jam 0x02 ,core_otp_ctrl 
+0038 70804782 jam 0x82 ,core_otp_ctrl 
+0039 793ffe07 set0 7 ,pdata 
+003a 67f08046 store 1 ,core_otp_din 
+003b 7080478a jam 0x8a ,core_otp_ctrl 
+003c 2000000b nop 11 
+003d 708047ca jam 0xca ,core_otp_ctrl 
+003e 20000021 nop 33 
+003f 7080474a jam 0x4a ,core_otp_ctrl 
+0040 2000002c nop 44 
+0041 708047ca jam 0xca ,core_otp_ctrl 
+0042 20000016 nop 22 
+0043 7080478a jam 0x8a ,core_otp_ctrl 
+0044 20000021 nop 33 
+0045 70804782 jam 0x82 ,core_otp_ctrl 
+0046 20000001 nop 1 
+0047 70804792 jam 0x92 ,core_otp_ctrl 
+0048 2000000a nop 10 
+0049 708047b2 jam 0xb2 ,core_otp_ctrl 
+004a 6ff08007 fetch 1 ,core_otp_rdata 
+004b 70804792 jam 0x92 ,core_otp_ctrl 
+004c 20000001 nop 1 
+004d 70804782 jam 0x82 ,core_otp_ctrl 
+004e 20000001 nop 1 
+004f afec0000 qisolate0 pdata 
+0050 20208030 branch p_otp_program_bit ,true 
+0051 c5110054 bmark1 mark_otp_write ,p_otp_skip_0 
+0052 79200022 set1 mark_otp_write ,mark 
+0053 20200031 branch p_otp_program_bit2 
+
+p_otp_skip_0:
+0054 6ff10044 fetch 2 ,core_otp_addr 
+0055 1fe0fe01 increase 1 ,pdata 
+0056 67f10044 store 2 ,core_otp_addr 
+0057 18e08e01 increase 1 ,queue 
+0058 28e01e08 compare 8 ,queue ,0xf 
+0059 24208030 nbranch p_otp_program_bit ,true 
+005a c200002d loop p_otp_program 
+005b 20206b26 branch otp_disable_chgpump 
+
+p_gpio_set_wake_by_current_state:
+005c 79200407 set1 gpio_active_bit ,temp 
+005d 20406ee0 call gpio_get_bit 
+005e 7d208407 nsetflag true ,gpio_active_bit ,temp 
+005f 20206eac branch gpio_set_wake 
+
+p_lpm_dispatch:
+0060 204023f0 call lpo_calibration 
+0061 6fe1c0bd fetch 3 ,mem_clks_per_lpo 
+0062 207a0000 rtn blank 
+0063 6fe0ca7a fetch 1 ,mem_keyboard_fn_flag 
+0064 247a0000 nrtn blank 
+0065 6fe0ca7b fetch 1 ,mem_keyboard_control_key_flag 
+0066 247a0000 nrtn blank 
+0067 6fe0c720 fetch 1 ,mem_device_direct_timer 
+0068 247a0000 nrtn blank 
+0069 6fe14750 fetch 2 ,mem_device_discovery_timer 
+006a 247a0000 nrtn blank 
+006b 6fe0ca9f fetch 1 ,mem_keyboard_commbination_control_key_delay_release_timer 
+006c 247a0000 nrtn blank 
+006d 20202467 branch lpm_dispatch + 4 
+
+p_keyboard_init:
+006e 20403717 call app_param_init 
+006f 20407384 call enable_authrom 
+0070 20400072 call p_keyboard_setting_config 
+0071 20203eb0 branch keyboard_init + 2 
+
+p_keyboard_setting_config:
+0072 20758000 rtn wake 
+0073 204035c8 call g24_transmit_init 
+0074 2040323a call g24_chmap_param_init 
+0075 20400078 call p_keyboard_param_init 
+0076 7040a60a jam 0x0a ,mem_lpm_overhead 
+0077 20203ec1 branch keyboard_setting_config + 4 
+
+p_keyboard_param_init:
+0078 20403ef4 call keyboard_compare_addr_init 
+0079 2040007b call p_keyboard_param_common_init 
+007a 20203edd branch keyboard_param_init + 2 
+
+p_keyboard_param_common_init:
+007b 58009000 setarg mouse_ble_att_list_addr 
+007c 67e142f9 store 2 ,mem_ui_le_uuid_table 
+007d 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+007e c291e80c bbit1 keyboard_enable_mouse ,hid_device_param_common_init 
+007f 580095b8 setarg keyboard_ble_hid_map_n_key_rollover_keyboard_addr 
+0080 67e148d6 store 2 ,mem_keyboard_le_hid_map 
+0081 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+0082 c290680c bbit1 keyboard_enable_26_n_key_rollover ,hid_device_param_common_init 
+0083 c290e80c bbit1 keyboard_enable_full_n_key_rollover ,hid_device_param_common_init 
+0084 580094fc setarg keyboard_ble_hid_map_magic_keyboard_addr 
+0085 67e148d6 store 2 ,mem_keyboard_le_hid_map 
+0086 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+0087 c291680c bbit1 keyboard_enable_magic_keyboard ,hid_device_param_common_init 
+0088 58004ae8 setarg mem_keyboard_le_table 
+0089 67e148d6 store 2 ,mem_keyboard_le_hid_map 
+008a 2020680c branch hid_device_param_common_init 
+
+p_keyboard_store_device_info:
+008b 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+008c c287808e bbit1 keyboard_enable_otp ,p_keyboard_store_otp_device_info 
+008d 20203fd8 branch keyboard_store_device_info + 1 
+
+p_keyboard_store_otp_device_info:
+008e 6fe14abd fetch 2 ,mem_otp_read_retention_offset 
+008f 68494abf fetcht 2 ,mem_otp_read_retention_max_size 
+0090 98467c00 isub temp ,null 
+0091 20610000 rtn positive 
+0092 6fe0c678 fetch 1 ,mem_device_flag 
+0093 c0003fe1 beq mode_24g_device ,keyboard_store_otp_device_info_g24 
+0094 c000bfeb beq mode_bt_device1 ,keyboard_store_otp_device_info_ble 
+0095 20600000 rtn 
+
+p_keyboard_adc_vol_init:
+0096 6fe0c8b1 fetch 1 ,mem_keyboard_power_type 
+0097 c0010099 beq keyboard_battary_4v2 ,p_keyboard_adc_vol_4v2_init 
+0098 20204095 branch keyboard_adc_vol_init + 2 
+
+p_keyboard_adc_vol_4v2_init:
+0099 582c0170 setarg 0x2c0170 
+009a 67e1c8ab store 3 ,mem_keyboard_vdd_full_vol 
+009b 58014a01 setarg 0x014a01 
+009c e7e18005 istore 3 ,contw 
+009d 20600000 rtn 
+
+p_mouse_adc_bat_percent_lowpower_out:
+009e efe40011 ifetch 8 ,rega 
+009f 67e4064e store 8 ,mem_pdatatemp 
+00a0 20407057 call adc_clear_no_power_flag 
+00a1 204000aa call p_adc_clear_low_power_flag 
+00a2 6fe10654 fetch 2 ,mem_pdatatemp + 6 
+00a3 68490650 fetcht 2 ,mem_pdatatemp + 2 
+00a4 98467c00 isub temp ,null 
+00a5 24417054 ncall adc_set_no_power_flag ,positive 
+00a6 68490652 fetcht 2 ,mem_pdatatemp + 4 
+00a7 98467c00 isub temp ,null 
+00a8 244100ad ncall p_adc_set_low_power_flag ,positive 
+00a9 20204ed0 branch mouse_adc_bat_level_set 
+
+p_adc_clear_low_power_flag:
+00aa 6848c422 fetcht 1 ,mem_adc_power_flag 
+00ab 793f8400 set0 0 ,temp 
+00ac 20207059 branch adc_set_power_flag 
+
+p_adc_set_low_power_flag:
+00ad 6848c422 fetcht 1 ,mem_adc_power_flag 
+00ae 79200400 set1 0 ,temp 
+00af 20207059 branch adc_set_power_flag 
+
+p_kscan_dispatch:
+00b0 204000b2 call p_keyboard_keyscan 
+00b1 20204332 branch kscan_dispatch + 2 
+
+p_keyboard_keyscan:
+00b2 20403ef9 call keyboard_gpio_init 
+00b3 58000000 setarg 0 
+00b4 67e1499e store 2 ,mem_keyscan_exmcu_wait_wake_count 
+00b5 d8c0494e arg mem_keyscan_value_current ,contr 
+00b6 d8a04963 arg mem_keyscan_value_check ,contw 
+00b7 df200014 arg 20 ,loopcnt 
+00b8 20407cdc call memcpy 
+00b9 204043af call keyboard_stb_state_low 
+00ba 5800494e setarg mem_keyscan_value_current 
+00bb 67e14998 store 2 ,mem_keyscan_value_ptr 
+00bc 58004adc setarg mem_keyscan_exmcu_value_new 
+00bd 67e1499a store 2 ,mem_keyscan_exmcu_value_ptr 
+00be 204043ad call keyboard_stb_state_high 
+00bf 204043ab call keyboard_clk_input 
+
+p_keyboard_keyscan_exmcu_start_check:
+00c0 6fe1499e fetch 2 ,mem_keyscan_exmcu_wait_wake_count 
+00c1 1fe0fe01 increase 1 ,pdata 
+00c2 67e1499e store 2 ,mem_keyscan_exmcu_wait_wake_count 
+00c3 c28480b2 bbit1 9 ,p_keyboard_keyscan 
+00c4 6848c911 fetcht 1 ,mem_mcu_clk_gpio 
+00c5 20406ee0 call gpio_get_bit 
+00c6 242080c0 nbranch p_keyboard_keyscan_exmcu_start_check ,true 
+00c7 204043af call keyboard_stb_state_low 
+00c8 2020434a branch keyboard_keyscan_wait_wake_next 
+
+p_keyboard_device_poweron_timer:
+00c9 6fe0cac2 fetch 1 ,mem_keyboard_device_poweron_timer 
+00ca 207a0000 rtn blank 
+00cb 1fe0ffff increase -1 ,pdata 
+00cc 67e0cac2 store 1 ,mem_keyboard_device_poweron_timer 
+00cd 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+00ce c29400d2 bbit1 keyboard_enable_030_power_led ,p_keyboard_device_poweron_030_led 
+00cf 6fe0cac2 fetch 1 ,mem_keyboard_device_poweron_timer 
+00d0 203a4166 branch keyboard_device_led_off ,blank 
+00d1 2020416c branch keyboard_device_led_on 
+
+p_keyboard_device_poweron_030_led:
+00d2 6fe0cac2 fetch 1 ,mem_keyboard_device_poweron_timer 
+00d3 203a413c branch keyboard_power_led_off ,blank 
+00d4 2020413a branch keyboard_power_led_on 
+
+p_keyboard_bb_event_timer:
+00d5 204040e0 call keyboard_low_voltage_param_set 
+00d6 204040cc call keyboard_adc_read 
+00d7 204040dd call keyboard_adc_gpio_set_before_hibernate 
+00d8 20404100 call keyboard_low_voltage_led_timer 
+00d9 204000f2 call p_keyboard_num_capslock_led_on_timer 
+00da 204041ab call keyboard_rgb_on_timer 
+00db 204000c9 call p_keyboard_device_poweron_timer 
+00dc 2040413e call keyboard_mode_led_timer 
+00dd 204001e4 call p_keyboard_device_pair_led_timer 
+00de 204000f5 call p_keyboard_key_press_timer 
+00df 2040428f call keyboard_commbination_key_process 
+00e0 204042c4 call keyboard_same_key_long_press_timer 
+00e1 2040326c call g24_pair_timeout_timer 
+00e2 20403507 call g24_reconn_timeout_timer 
+00e3 204058f6 call mouse_24g_long_sleep_param_update_timer 
+00e4 20400124 call p_keyboard_24g_repeat_send_data 
+00e5 204042bf call keyboard_24g_led_status_get_timer 
+00e6 20404299 call keyboard_check_discovery_timeout_timer 
+00e7 204042a4 call keyboard_check_direct_timeout_timer 
+00e8 2040550d call mouse_le_enable_att_list_timer 
+00e9 204042ad call keyboard_le_battery_updata_timer 
+00ea 20405510 call mouse_le_send_smp_security_request_timer 
+00eb 204042b2 call keyboard_le_send_conn_param_update_timer 
+00ec 204042a1 call keyboard_le_auto_recognize_timer 
+00ed 20405527 call mouse_current_mult_update_timer 
+00ee 2040429e call keyboard_store_information_delay_timer 
+00ef 204042c9 call keyboard_commbination_delay_release_timer 
+00f0 204042cc call keyboard_usb_updata_timer 
+00f1 202042d5 branch keyboard_check_no_data_timeout_timer 
+
+p_keyboard_num_capslock_led_on_timer:
+00f2 6fe0c737 fetch 1 ,mem_24g_shutdown_flag 
+00f3 247a0000 nrtn blank 
+00f4 20204186 branch keyboard_num_capslock_led_on_timer 
+
+p_keyboard_key_press_timer:
+00f5 6fe0c8a6 fetch 1 ,mem_keyboard_switch_device_flag 
+00f6 c28000fb bbit1 keyboard_flag_g24_device_button ,p_keyboard_device_select_g24_press_timer 
+00f7 20400113 call p_keyboard_device_select_g24_nopress_timer 
+00f8 6fe0c8a6 fetch 1 ,mem_keyboard_switch_device_flag 
+00f9 c2808107 bbit1 keyboard_flag_bt_device_button ,p_keyboard_device_select_bt_press_timer 
+00fa 20200119 branch p_keyboard_device_select_bt_nopress_timer 
+
+p_keyboard_device_select_g24_press_timer:
+00fb 6fe0c8a9 fetch 1 ,mem_keyboard_switch_g24_press_timer 
+00fc 1fe67c64 sub pdata ,100 ,null 
+00fd 24610000 nrtn positive 
+00fe 1fe0fe01 increase 1 ,pdata 
+00ff 67e0c8a9 store 1 ,mem_keyboard_switch_g24_press_timer 
+0100 c18c8000 rtnne 25 
+0101 7048a700 jam 0 ,mem_keyboard_switch_g24_enable 
+0102 6fe0c678 fetch 1 ,mem_device_flag 
+0103 c1020000 rtneq mode_usb_device 
+0104 2040011f call p_keyboard_store_device_number 
+0105 204048e6 call keyboard_stop_bluetooth_mode 
+0106 20204680 branch keyboard_24g_start_pair_mode 
+
+p_keyboard_device_select_bt_press_timer:
+0107 6fe0c8aa fetch 1 ,mem_keyboard_switch_bt_press_timer 
+0108 1fe67c64 sub pdata ,100 ,null 
+0109 24610000 nrtn positive 
+010a 1fe0fe01 increase 1 ,pdata 
+010b 67e0c8aa store 1 ,mem_keyboard_switch_bt_press_timer 
+010c c18c8000 rtnne 25 
+010d 7048a800 jam 0 ,mem_keyboard_switch_bt_enable 
+010e 6fe0c678 fetch 1 ,mem_device_flag 
+010f c1020000 rtneq mode_usb_device 
+0110 2040011f call p_keyboard_store_device_number 
+0111 20406824 call hid_device_le_send_empty_packet 
+0112 20204675 branch keyboard_long_button_bt_discovery 
+
+p_keyboard_device_select_g24_nopress_timer:
+0113 7048a900 jam 0 ,mem_keyboard_switch_g24_press_timer 
+0114 6fe0c8a7 fetch 1 ,mem_keyboard_switch_g24_enable 
+0115 207a0000 rtn blank 
+0116 7048a700 jam 0 ,mem_keyboard_switch_g24_enable 
+0117 2040011f call p_keyboard_store_device_number 
+0118 20206c99 branch soft_reset_chip 
+
+p_keyboard_device_select_bt_nopress_timer:
+0119 7048aa00 jam 0 ,mem_keyboard_switch_bt_press_timer 
+011a 6fe0c8a8 fetch 1 ,mem_keyboard_switch_bt_enable 
+011b 207a0000 rtn blank 
+011c 7048a800 jam 0 ,mem_keyboard_switch_bt_enable 
+011d 20404045 call keyboard_store_device_number 
+011e 20206c99 branch soft_reset_chip 
+
+p_keyboard_store_device_number:
+011f 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+0120 c287d594 bbit1 keyboard_enable_otp ,mouse_write_otp_device_flag 
+0121 c2874045 bbit1 keyboard_enable_eeprom ,keyboard_store_device_number 
+0122 20600000 rtn 
+
+p_keyboard_long_button_bt_discovery:
+0123 20204677 branch keyboard_long_button_bt_discovery + 2 
+
+p_keyboard_24g_repeat_send_data:
+0124 6fe0c9a0 fetch 1 ,mem_same_keyvalue_timerout_flag 
+0125 247a0000 nrtn blank 
+0126 202042b5 branch keyboard_24g_repeat_send_data 
+
+p_keyboard_setting_config_next:
+0127 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+0128 c287bf31 bbit1 keyboard_enable_otp ,keyboard_load_otp_info 
+0129 20203ec8 branch keyboard_setting_config + 11 
+
+p_keyboard_load_2k_eeprom_info:
+012a 6fe4488e fetch keyboard_flag_len ,mem_keyboard_flag 
+012b c31e8131 bbit0 keyboard_enable_sda_multi_r_line ,p_keyboard_load_2k_eeprom_device_info_next 
+012c 6848c440 fetcht 1 ,mem_eeprom_sda_gpio 
+012d 20404f0a call device_gpio_config_input_pu 
+012e 6848c440 fetcht 1 ,mem_eeprom_sda_gpio 
+012f 20406ee0 call gpio_get_bit 
+0130 2020812a branch p_keyboard_load_2k_eeprom_info ,true 
+
+p_keyboard_load_2k_eeprom_device_info_next:
+0131 20404049 call keyboard_eeprom_init 
+0132 d8400080 arg 128 ,temp 
+0133 da204678 arg mem_device_flag ,rega 
+0134 da400000 arg keyboard_device_number_eeprom_offect ,regb 
+0135 20406cd7 call iicd_read_eep_data 
+0136 20203fa2 branch keyboard_load_info_check 
+
+p_keyboard_le_parse_att:
+0137 1a220c00 copy rega ,contr 
+0138 efe18006 ifetch 3 ,contr 
+0139 67e1c39b store 3 ,mem_le_att_opcode 
+013a c000c919 beq attop_error_response ,keyboard_le_send_att_find_by_type_value_request_mac 
+013b c003c95c beq attop_find_by_type_value_response ,keyboard_le_parse_att_find_by_type_value_rsp 
+013c c004c938 beq attop_read_by_type_response ,keyboard_le_send_att_read_by_type_rsp_mac 
+013d c005c952 beq attop_read_response ,keyboard_le_parse_att_manu_resp 
+013e c0044971 beq attop_read_by_type_request ,keyboard_le_parse_att_read_by_type_request 
+013f c0060144 beq attop_read_blob_request ,p_keyboard_le_parse_att_read_blob_request 
+0140 c005499f beq attop_read_request ,keyboard_le_parse_att_read_request 
+0141 c00949c5 beq attop_write_request ,keyboard_le_parse_att_write_request 
+0142 c02949cb beq attop_write_command ,keyboard_le_parse_att_write_command 
+0143 20202b76 branch le_parse_att2 
+
+p_keyboard_le_parse_att_read_blob_request:
+0144 efe10006 ifetch 2 ,contr 
+0145 67e10693 store 2 ,mem_le_att_offset 
+0146 98002200 iforce rega 
+0147 6849439c fetcht 2 ,mem_le_att_handle 
+0148 6fe14334 fetch 2 ,mem_le_pairing_handle 
+0149 98467c00 isub temp ,null 
+014a 2422ad2e nbranch le_send_att_read_blob_response ,zero 
+014b 20204999 branch keyboard_le_send_att_read_blob_response 
+
+p_keyboard_motion_data_check:
+014c 6fe0caa0 fetch 1 ,mem_keyboard_consumer_key_status 
+014d c001014f beq keyboard_consumer_key_release ,p_keyboard_value_consumer_release 
+014e 202046cd branch keyboard_motion_data_check + 3 
+
+p_keyboard_value_consumer_release:
+
+p_keyboard_value_consumer_all_key_release:
+014f 6fe0c678 fetch 1 ,mem_device_flag 
+0150 c080474b bne mode_24g_device ,keyboard_value_consumer_release 
+0151 7049a902 jam 2 ,mem_keyboard_data_change_flag 
+0152 6fe0c9a6 fetch 1 ,mem_keyboard_all_press_key_count 
+0153 205a46ef call keyboard_value_release_all_key ,blank 
+0154 704aa000 jam keyboard_consumer_key_standby ,mem_keyboard_consumer_key_status 
+0155 58000003 setarg hid_reportid_consumer_key 
+0156 67e1ca6f store 3 ,mem_keyboard_tx_data 
+0157 202046e6 branch keyboard_motion_data_check_next 
+
+p_keyboard_value_tpye_consumer_set:
+0158 18427e00 copy temp ,pdata 
+0159 704a6f05 jam hid_reportid_bit_consumer_key ,mem_keyboard_tx_data 
+015a 6848c9a6 fetcht 1 ,mem_keyboard_all_press_key_count 
+015b 18467c00 sub temp ,hid_key_null ,null 
+015c 2022814f branch p_keyboard_value_consumer_all_key_release ,zero 
+015d c0740176 beq hid_key_multikey_media ,p_keyboard_value_media 
+015e c074817c beq hid_key_multikey_vol_down ,p_keyboard_value_vol_down 
+015f c0750180 beq hid_key_multikey_vol_up ,p_keyboard_value_vol_up 
+0160 c0758184 beq hid_key_multikey_mute ,p_keyboard_value_mute 
+0161 c0760188 beq hid_key_multikey_pre_track ,p_keyboard_value_pre_track 
+0162 c076818c beq hid_key_multikey_next_track ,p_keyboard_value_next_track 
+0163 c0770190 beq hid_key_multikey_paly ,p_keyboard_value_play 
+0164 c0778194 beq hid_key_multikey_stop ,p_keyboard_value_stop 
+0165 c0780198 beq hid_key_ac_home ,p_keyboard_value_ac_home 
+0166 c078819c beq hid_key_mail ,p_keyboard_value_mail 
+0167 c07901a0 beq hid_key_my_computer ,p_keyboard_value_my_computer 
+0168 c07981a4 beq hid_key_ac_favorites ,p_keyboard_value_ac_favorites 
+0169 c07a01a8 beq hid_key_calculator ,p_keyboard_value_calculator 
+016a c07a81ac beq hid_key_ac_search ,p_keyboard_value_ac_search 
+016b c07b01b0 beq hid_key_ac_back ,p_keyboard_value_ac_back 
+016c c07b81b7 beq hid_key_os_soft_kb ,p_keyboard_value_os_soft_kb 
+016d c07c01bf beq hid_key_light_down ,p_keyboard_value_light_down 
+016e c07c81c3 beq hid_key_light_up ,p_keyboard_value_light_up 
+016f c07d01c7 beq hid_key_ios_android_os_lock ,p_keyboard_value_os_lock 
+0170 c07d81cb beq hid_key_mac_eject ,p_keyboard_value_mac_eject 
+0171 c07e01cf beq hid_key_ac_forward ,p_keyboard_value_ac_forward 
+0172 c07e81d3 beq hid_key_ac_stop ,p_keyboard_value_ac_stop 
+0173 c07f01d7 beq hid_key_ac_refresh ,p_keyboard_value_ac_refresh 
+0174 c07f81db beq hid_key_system_sleep ,p_keyboard_value_system_sleep 
+0175 202046e6 branch keyboard_motion_data_check_next 
+
+p_keyboard_value_media:
+0176 6fe0c678 fetch 1 ,mem_device_flag 
+0177 c0804715 bne mode_24g_device ,keyboard_value_media 
+0178 58000183 setarg 0x0183 
+
+p_keyboard_24g_standard_data_send:
+0179 67e14a70 store 2 ,mem_keyboard_tx_data + 1 
+017a 704a6f03 jam hid_reportid_consumer_key ,mem_keyboard_tx_data 
+017b 202046e6 branch keyboard_motion_data_check_next 
+
+p_keyboard_value_vol_down:
+017c 6fe0c678 fetch 1 ,mem_device_flag 
+017d c0804718 bne mode_24g_device ,keyboard_value_vol_down 
+017e 580000ea setarg 0x00ea 
+017f 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_vol_up:
+0180 6fe0c678 fetch 1 ,mem_device_flag 
+0181 c080471a bne mode_24g_device ,keyboard_value_vol_up 
+0182 580000e9 setarg 0x00e9 
+0183 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_mute:
+0184 6fe0c678 fetch 1 ,mem_device_flag 
+0185 c080471c bne mode_24g_device ,keyboard_value_mute 
+0186 580000e2 setarg 0x00e2 
+0187 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_pre_track:
+0188 6fe0c678 fetch 1 ,mem_device_flag 
+0189 c080471e bne mode_24g_device ,keyboard_value_pre_track 
+018a 580000b6 setarg 0x00b6 
+018b 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_next_track:
+018c 6fe0c678 fetch 1 ,mem_device_flag 
+018d c0804720 bne mode_24g_device ,keyboard_value_next_track 
+018e 580000b5 setarg 0x00b5 
+018f 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_play:
+0190 6fe0c678 fetch 1 ,mem_device_flag 
+0191 c0804722 bne mode_24g_device ,keyboard_value_play 
+0192 580000cd setarg 0x00cd 
+0193 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_stop:
+0194 6fe0c678 fetch 1 ,mem_device_flag 
+0195 c0804724 bne mode_24g_device ,keyboard_value_stop 
+0196 580000b7 setarg 0x00b7 
+0197 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_home:
+0198 6fe0c678 fetch 1 ,mem_device_flag 
+0199 c0804726 bne mode_24g_device ,keyboard_value_ac_home 
+019a 58000223 setarg 0x0223 
+019b 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_mail:
+019c 6fe0c678 fetch 1 ,mem_device_flag 
+019d c0804728 bne mode_24g_device ,keyboard_value_mail 
+019e 5800018a setarg 0x018a 
+019f 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_my_computer:
+01a0 6fe0c678 fetch 1 ,mem_device_flag 
+01a1 c080472a bne mode_24g_device ,keyboard_value_my_computer 
+01a2 58000194 setarg 0x0194 
+01a3 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_favorites:
+01a4 6fe0c678 fetch 1 ,mem_device_flag 
+01a5 c080472c bne mode_24g_device ,keyboard_value_ac_favorites 
+01a6 5800022a setarg 0x022a 
+01a7 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_calculator:
+01a8 6fe0c678 fetch 1 ,mem_device_flag 
+01a9 c080472e bne mode_24g_device ,keyboard_value_calculator 
+01aa 58000192 setarg 0x0192 
+01ab 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_search:
+01ac 6fe0c678 fetch 1 ,mem_device_flag 
+01ad c0804730 bne mode_24g_device ,keyboard_value_ac_search 
+01ae 58000221 setarg 0x0221 
+01af 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_back:
+01b0 6fe0c678 fetch 1 ,mem_device_flag 
+01b1 c0804732 bne mode_24g_device ,keyboard_value_ac_back 
+01b2 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+01b3 c0010198 beq system_os_ios ,p_keyboard_value_ac_home 
+01b4 c0018198 beq system_os_mac ,p_keyboard_value_ac_home 
+01b5 58000224 setarg 0x0224 
+01b6 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_os_soft_kb:
+01b7 6fe0c678 fetch 1 ,mem_device_flag 
+01b8 c0804737 bne mode_24g_device ,keyboard_value_os_soft_kb 
+01b9 6fe0caa1 fetch 1 ,mem_kb_computer_system 
+01ba c00081bd beq system_os_android ,p_keyboard_value_os_soft_kb_android 
+01bb 580001ae setarg 0x01ae 
+01bc 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_os_soft_kb_android:
+01bd 58000307 setarg 0x0307 
+01be 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_light_down:
+01bf 6fe0c678 fetch 1 ,mem_device_flag 
+01c0 c080473d bne mode_24g_device ,keyboard_value_light_down 
+01c1 58000070 setarg 0x0070 
+01c2 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_light_up:
+01c3 6fe0c678 fetch 1 ,mem_device_flag 
+01c4 c080473f bne mode_24g_device ,keyboard_value_light_up 
+01c5 5800006f setarg 0x006f 
+01c6 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_os_lock:
+01c7 6fe0c678 fetch 1 ,mem_device_flag 
+01c8 c0804741 bne mode_24g_device ,keyboard_value_os_lock 
+01c9 58000030 setarg 0x0030 
+01ca 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_mac_eject:
+01cb 6fe0c678 fetch 1 ,mem_device_flag 
+01cc c0804743 bne mode_24g_device ,keyboard_value_mac_eject 
+01cd 580000b8 setarg 0x00b8 
+01ce 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_forward:
+01cf 6fe0c678 fetch 1 ,mem_device_flag 
+01d0 c0804745 bne mode_24g_device ,keyboard_value_ac_forward 
+01d1 58000225 setarg 0x0225 
+01d2 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_stop:
+01d3 6fe0c678 fetch 1 ,mem_device_flag 
+01d4 c0804747 bne mode_24g_device ,keyboard_value_ac_stop 
+01d5 58000226 setarg 0x0226 
+01d6 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_ac_refresh:
+01d7 6fe0c678 fetch 1 ,mem_device_flag 
+01d8 c0804749 bne mode_24g_device ,keyboard_value_ac_refresh 
+01d9 58000227 setarg 0x0227 
+01da 20200179 branch p_keyboard_24g_standard_data_send 
+
+p_keyboard_value_system_sleep:
+01db 6fe0c678 fetch 1 ,mem_device_flag 
+01dc c0804752 bne mode_24g_device ,keyboard_value_system_sleep 
+01dd 704a6f02 jam hid_reportid_system_ctrl ,mem_keyboard_tx_data 
+01de 58000002 setarg 0x02 
+01df 67e0ca70 store 1 ,mem_keyboard_tx_data + 1 
+01e0 202046e6 branch keyboard_motion_data_check_next 
+01e1 c076c720 beq hid_key_multikey_next_track ,keyboard_value_next_track 
+
+p_keyboard_app_enter_hibernate:
+01e2 204047b3 call keyboard_setgpio_hibernate 
+01e3 2020379c branch app_enter_hibernate 
+
+p_keyboard_device_pair_led_timer:
+01e4 6fe0c678 fetch 1 ,mem_device_flag 
+01e5 c00001e7 beq mode_24g_device ,p_keyboard_device_24g_pair_led 
+01e6 20204148 branch keyboard_device_pair_led_timer + 2 
+
+p_keyboard_device_24g_pair_led:
+01e7 6fe145ef fetch 2 ,mem_24g_pair_timeout 
+01e8 203a01ea branch p_keyboard_pair_success_led_move ,blank 
+01e9 2020414d branch keyboard_device_pair_led 
+
+p_keyboard_pair_success_led_move:
+01ea 6fe145f5 fetch 2 ,mem_24g_reconn_timeout 
+01eb 243a414d nbranch keyboard_device_pair_led ,blank 
+01ec 20204172 branch keyboard_device_24g_led_off 
+
+p_keyboard_keyvalue_change:
+01ed 2040442e call keyboard_keyvalue_normal_replace 
+01ee 20404435 call keyboard_keyvalue_fn_replace 
+01ef 204001f2 call p_keyboard_keyvalue_commbination_replace 
+01f0 20404564 call keyboard_keyvalue_in_out 
+01f1 202043de branch keyboard_keyvalue_change_loop 
+
+p_keyboard_keyvalue_commbination_replace:
+01f2 6fe0c9aa fetch 1 ,mem_keyboard_keyvalue_temp 
+01f3 c05781f5 beq hid_key_favorites ,p_keyboard_favorites_combine 
+01f4 202044dd branch keyboard_keyvalue_commbination_replace + 1 
+
+p_keyboard_favorites_combine:
+01f5 704a9d03 jam left_control | left_shift ,mem_keyboard_commbination_control_key_value 
+01f6 704a9e12 jam hid_key_o ,mem_keyboard_commbination_standard_key_value 
+01f7 2020453e branch keyboard_commbination_keypress 
+
Index: costumer/Bore/keyboard_ck801_only_24g/output/ramcode.rom
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/ramcode.rom	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/ramcode.rom	(working copy)
@@ -0,0 +1,504 @@
+c2840015
+c00c8018
+c00d001f
+c0140060
+c01f0127
+c020008b
+c02180d5
+c0220096
+c02600b0
+c02701ed
+c041009e
+c02b0123
+c02c814c
+c02e0158
+c0350137
+c03e01e2
+c074802a
+c0750027
+c067806e
+c07d005c
+2020233e
+c17f8000
+c0614815
+2020233e
+6fe0c141
+c04f001b
+20202214
+708a1417
+58251305
+67f18a60
+20202220
+37d98200
+7089460d
+70896f10
+708a13cd
+6ff08a06
+1fe17efc
+67f08a06
+20202255
+20406b28
+20406b63
+20206b26
+20406b22
+20406b2f
+20406b29
+e8408011
+1a20a201
+18000e00
+793f8022
+a84c0000
+20208054
+6ff08046
+79207e06
+79207e07
+67f08046
+70804702
+70804782
+793ffe07
+67f08046
+7080478a
+2000000b
+708047ca
+20000021
+7080474a
+2000002c
+708047ca
+20000016
+7080478a
+20000021
+70804782
+20000001
+70804792
+2000000a
+708047b2
+6ff08007
+70804792
+20000001
+70804782
+20000001
+afec0000
+20208030
+c5110054
+79200022
+20200031
+6ff10044
+1fe0fe01
+67f10044
+18e08e01
+28e01e08
+24208030
+c200002d
+20206b26
+79200407
+20406ee0
+7d208407
+20206eac
+204023f0
+6fe1c0bd
+207a0000
+6fe0ca7a
+247a0000
+6fe0ca7b
+247a0000
+6fe0c720
+247a0000
+6fe14750
+247a0000
+6fe0ca9f
+247a0000
+20202467
+20403717
+20407384
+20400072
+20203eb0
+20758000
+204035c8
+2040323a
+20400078
+7040a60a
+20203ec1
+20403ef4
+2040007b
+20203edd
+58009000
+67e142f9
+6fe4488e
+c291e80c
+580095b8
+67e148d6
+6fe4488e
+c290680c
+c290e80c
+580094fc
+67e148d6
+6fe4488e
+c291680c
+58004ae8
+67e148d6
+2020680c
+6fe4488e
+c287808e
+20203fd8
+6fe14abd
+68494abf
+98467c00
+20610000
+6fe0c678
+c0003fe1
+c000bfeb
+20600000
+6fe0c8b1
+c0010099
+20204095
+582c0170
+67e1c8ab
+58014a01
+e7e18005
+20600000
+efe40011
+67e4064e
+20407057
+204000aa
+6fe10654
+68490650
+98467c00
+24417054
+68490652
+98467c00
+244100ad
+20204ed0
+6848c422
+793f8400
+20207059
+6848c422
+79200400
+20207059
+204000b2
+20204332
+20403ef9
+58000000
+67e1499e
+d8c0494e
+d8a04963
+df200014
+20407cdc
+204043af
+5800494e
+67e14998
+58004adc
+67e1499a
+204043ad
+204043ab
+6fe1499e
+1fe0fe01
+67e1499e
+c28480b2
+6848c911
+20406ee0
+242080c0
+204043af
+2020434a
+6fe0cac2
+207a0000
+1fe0ffff
+67e0cac2
+6fe4488e
+c29400d2
+6fe0cac2
+203a4166
+2020416c
+6fe0cac2
+203a413c
+2020413a
+204040e0
+204040cc
+204040dd
+20404100
+204000f2
+204041ab
+204000c9
+2040413e
+204001e4
+204000f5
+2040428f
+204042c4
+2040326c
+20403507
+204058f6
+20400124
+204042bf
+20404299
+204042a4
+2040550d
+204042ad
+20405510
+204042b2
+204042a1
+20405527
+2040429e
+204042c9
+204042cc
+202042d5
+6fe0c737
+247a0000
+20204186
+6fe0c8a6
+c28000fb
+20400113
+6fe0c8a6
+c2808107
+20200119
+6fe0c8a9
+1fe67c64
+24610000
+1fe0fe01
+67e0c8a9
+c18c8000
+7048a700
+6fe0c678
+c1020000
+2040011f
+204048e6
+20204680
+6fe0c8aa
+1fe67c64
+24610000
+1fe0fe01
+67e0c8aa
+c18c8000
+7048a800
+6fe0c678
+c1020000
+2040011f
+20406824
+20204675
+7048a900
+6fe0c8a7
+207a0000
+7048a700
+2040011f
+20206c99
+7048aa00
+6fe0c8a8
+207a0000
+7048a800
+20404045
+20206c99
+6fe4488e
+c287d594
+c2874045
+20600000
+20204677
+6fe0c9a0
+247a0000
+202042b5
+6fe4488e
+c287bf31
+20203ec8
+6fe4488e
+c31e8131
+6848c440
+20404f0a
+6848c440
+20406ee0
+2020812a
+20404049
+d8400080
+da204678
+da400000
+20406cd7
+20203fa2
+1a220c00
+efe18006
+67e1c39b
+c000c919
+c003c95c
+c004c938
+c005c952
+c0044971
+c0060144
+c005499f
+c00949c5
+c02949cb
+20202b76
+efe10006
+67e10693
+98002200
+6849439c
+6fe14334
+98467c00
+2422ad2e
+20204999
+6fe0caa0
+c001014f
+202046cd
+6fe0c678
+c080474b
+7049a902
+6fe0c9a6
+205a46ef
+704aa000
+58000003
+67e1ca6f
+202046e6
+18427e00
+704a6f05
+6848c9a6
+18467c00
+2022814f
+c0740176
+c074817c
+c0750180
+c0758184
+c0760188
+c076818c
+c0770190
+c0778194
+c0780198
+c078819c
+c07901a0
+c07981a4
+c07a01a8
+c07a81ac
+c07b01b0
+c07b81b7
+c07c01bf
+c07c81c3
+c07d01c7
+c07d81cb
+c07e01cf
+c07e81d3
+c07f01d7
+c07f81db
+202046e6
+6fe0c678
+c0804715
+58000183
+67e14a70
+704a6f03
+202046e6
+6fe0c678
+c0804718
+580000ea
+20200179
+6fe0c678
+c080471a
+580000e9
+20200179
+6fe0c678
+c080471c
+580000e2
+20200179
+6fe0c678
+c080471e
+580000b6
+20200179
+6fe0c678
+c0804720
+580000b5
+20200179
+6fe0c678
+c0804722
+580000cd
+20200179
+6fe0c678
+c0804724
+580000b7
+20200179
+6fe0c678
+c0804726
+58000223
+20200179
+6fe0c678
+c0804728
+5800018a
+20200179
+6fe0c678
+c080472a
+58000194
+20200179
+6fe0c678
+c080472c
+5800022a
+20200179
+6fe0c678
+c080472e
+58000192
+20200179
+6fe0c678
+c0804730
+58000221
+20200179
+6fe0c678
+c0804732
+6fe0caa1
+c0010198
+c0018198
+58000224
+20200179
+6fe0c678
+c0804737
+6fe0caa1
+c00081bd
+580001ae
+20200179
+58000307
+20200179
+6fe0c678
+c080473d
+58000070
+20200179
+6fe0c678
+c080473f
+5800006f
+20200179
+6fe0c678
+c0804741
+58000030
+20200179
+6fe0c678
+c0804743
+580000b8
+20200179
+6fe0c678
+c0804745
+58000225
+20200179
+6fe0c678
+c0804747
+58000226
+20200179
+6fe0c678
+c0804749
+58000227
+20200179
+6fe0c678
+c0804752
+704a6f02
+58000002
+67e0ca70
+202046e6
+c076c720
+204047b3
+2020379c
+6fe0c678
+c00001e7
+20204148
+6fe145ef
+203a01ea
+2020414d
+6fe145f5
+243a414d
+20204172
+2040442e
+20404435
+204001f2
+20404564
+202043de
+6fe0c9aa
+c05781f5
+202044dd
+704a9d03
+704a9e12
+2020453e
Index: costumer/Bore/keyboard_ck801_only_24g/output/romcode.rom
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/romcode.rom	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/romcode.rom	(working copy)
@@ -0,0 +1,32264 @@
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00020001
+18000228
+03020002
+030a0128
+2a000200
+00000014
+00000000
+00000000
+00000000
+00000000
+02000400
+02012803
+01020005
+03c2022a
+03020006
+07020128
+2a040200
+06000608
+2c006400
+02000801
+01022800
+02000918
+20012803
+0502000a
+000b002a
+02290202
+000c0000
+02280002
+000d180a
+01280302
+02000e02
+59062a29
+69684369
+02000f70
+02012803
+50020010
+3502072a
+01aa2212
+02001100
+12022800
+02001218
+06012803
+4e020013
+1401012a
+28030200
+00151201
+082a4d02
+00000000
+00000000
+02020016
+00000229
+08020017
+01020229
+03020018
+191a0128
+2a4d0200
+00000007
+00000000
+0202001a
+00000229
+0802001b
+01010229
+0302001c
+1d120128
+2a4d0200
+1e000002
+29020200
+1f000002
+29080200
+20010302
+28030200
+00211201
+022a4d02
+00220000
+02290202
+00230000
+02290802
+00240104
+01280302
+0200250e
+00022a4d
+02002600
+02022908
+02002702
+02012803
+4b020028
+0c05f52a
+01a10109
+00150585
+01750125
+830a1895
+09ea0901
+09e209e9
+09b509b6
+0ab709cd
+8a0a0223
+01940a01
+0a022a0a
+210a0192
+02240a02
+0a03070a
+700901ae
+30096f09
+250ab809
+02260a02
+8102270a
+0105c002
+01a10609
+01750285
+07050895
+e729e019
+01250015
+01950281
+03810875
+01750595
+01190805
+02910529
+03750195
+06950391
+00150875
+0500ff26
+2a001907
+008100ff
+090105c0
+8501a102
+a1010901
+19090500
+15082901
+75012500
+81089501
+09010502
+16310930
+ff26f801
+95107507
+09068102
+25811538
+9508757f
+05068101
+02380a0c
+06810195
+0105c0c0
+01a18009
+00150485
+01750125
+81190395
+02818329
+05750195
+29c00381
+28030200
+002a1a01
+082a3302
+00000000
+00000000
+0202002b
+00010229
+0302002c
+2d020128
+2a4a0200
+00010104
+02002e03
+0f022800
+02002f18
+12012803
+19020030
+3164012a
+29020200
+32000002
+28030200
+00330401
+002a4c02
+061a0000
+8809ffbc
+048501a1
+ff2a0019
+26001500
+087500ff
+00810195
+010541c0
+01a10609
+08950175
+e0190705
+0015e729
+02810125
+08750195
+05950381
+08050175
+05290119
+01950291
+03910375
+08750695
+ff260015
+19070500
+00ff2a00
+f3c00081
+02090105
+018501a1
+00a10109
+01190905
+00150529
+05950125
+02810175
+03750195
+01050181
+31093009
+26F80116
+107507FF
+06810295
+81153809
+08757f25
+06810195
+380a0c05
+81019502
+05c0c006
+a1800901
+05028501
+29811901
+25001588
+75089501
+c0068101
+09ff0006
+8501a10e
+751f95BA
+00ff2608
+01090015
+BA850291
+08751f95
+1500ff26
+81010900
+0c05C002
+01a10109
+00150585
+01750125
+830a1895
+09ea0901
+09e209e9
+09b509b6
+0ab709cd
+8a0a0223
+01940a01
+0a022a0a
+210a0192
+02240a02
+0a03070a
+700901ae
+30096f09
+250ab809
+02260a02
+8102270a
+0c05c002
+01a10109
+00150385
+19038026
+03802a00
+01951075
+12c00081
+02000112
+40000000
+10203151
+02010002
+093b0100
+02003b02
+32a00001
+00000409
+01010301
+00210900
+22010002
+0507001a
+00400381
+01040902
+01030100
+21090002
+01000200
+0700f322
+40038205
+00010200
+02280002
+00021801
+01280302
+02000320
+00012a05
+02020004
+00000229
+00020005
+18000228
+03020006
+07020128
+2a000200
+69684313
+61657370
+454c422d
+20202020
+20202020
+03020008
+09020128
+2a010200
+0a03c102
+28030200
+000b0201
+082a0402
+00060006
+012c0064
+0002000c
+180a0228
+0302000d
+0e020128
+2a500200
+248a0207
+00018266
+0002000f
+18120228
+03020010
+11060128
+2a4e0200
+00120101
+01280302
+02001312
+00022a4d
+02001400
+00022902
+02001500
+02022908
+02001601
+12012803
+4d020017
+0000022a
+02020018
+00000229
+08020019
+01030229
+0302001a
+1b020128
+2a4b0200
+090c051b
+8501a101
+09e90902
+09e209ea
+25011530
+9510750c
+c0008101
+0302001c
+1d020128
+2a4a0200
+00011104
+02001e01
+04012803
+4c02001f
+2000012a
+28000200
+21180f02
+28030200
+00221201
+012a1902
+02000063
+00020013
+01001302
+00130200
+13020004
+02000600
+00050013
+00001302
+00170200
+17022800
+01000000
+28000200
+02180102
+28030200
+00032001
+012a0502
+02000400
+00022902
+02000500
+00022800
+02000618
+02012803
+00020007
+4355112a
+204e4f48
+20203130
+20202020
+08202020
+28030200
+00090201
+022a0102
+000a00c8
+01280302
+02000b02
+06082a04
+64000600
+0c012c00
+28000200
+0d180a02
+28030200
+000e0201
+072a5002
+66248a02
+0f000182
+28000200
+10fff002
+28030200
+00111201
+0efff102
+00000000
+00000000
+00000000
+00120000
+02290202
+00130000
+01280302
+02001408
+000efff2
+00000000
+00000000
+00000000
+98000000
+91428a2f
+cf713744
+a5b5c0fb
+5be9b5db
+f13956c2
+a459f111
+d5923f82
+98ab1c5e
+01d807aa
+be12835b
+c3243185
+74550c7d
+fe72be5d
+a780deb1
+749bdc06
+c1c19bf1
+86e49b69
+c6efbe47
+cc0fc19d
+6f240ca1
+aa2de92c
+dc4a7484
+da5cb0a9
+5276f988
+6d983e51
+c8a831c6
+c7b00327
+f3bf597f
+47c6e00b
+51d5a791
+6706ca63
+85142929
+3827b70a
+fc2e1b21
+134d2c6d
+5453380d
+bb650a73
+2e766a0a
+8581c2c9
+a192722c
+4ba2bfe8
+70a81a66
+a3c24b8b
+19c76c51
+24d192e8
+85d69906
+70f40e35
+16106aa0
+0819a4c1
+4c1e376c
+b5274877
+b334b0bc
+4a391c0c
+4f4ed8aa
+f35b9cca
+ee682e6f
+6f748f82
+1478a563
+0884c878
+fa8cc702
+eb90beff
+f7a4506c
+f2bef9a3
+00c67178
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+00000000
+0000945c
\ No newline at end of file
Index: costumer/Bore/keyboard_ck801_only_24g/output/sched.rom
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/sched.rom	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/output/sched.rom	(working copy)
@@ -0,0 +1,868 @@
+mem_patch00:
+00   #mem_patch00
+00   #mem_patch01
+00   #mem_patch02
+06   #mem_patch03
+00   #mem_patch04
+01   #mem_patch05
+00   #mem_patch06
+40   #mem_patch07
+19   #mem_patch08
+50   #mem_patch09
+40   #mem_patch0a
+12   #mem_patch0b
+00   #mem_patch0c
+04   #mem_patch0d
+00   #mem_patch0e
+10   #mem_patch0f
+04   #mem_patch10
+00   #mem_patch11
+00   #mem_patch12
+00   #mem_patch13
+00   #mem_patch14
+00   #mem_patch15
+00   #mem_patch16
+00   #mem_patch17
+00   #mem_patch18
+80   #mem_patch19
+00   #mem_patch1a
+00   #mem_patch1b
+00   #mem_patch1c
+06   #mem_patch1d
+00   #mem_patch1e
+04   #mem_patch1f
+00   #mem_patch20
+00   #mem_patch21
+00   #mem_patch22
+00   #mem_patch23
+00   #mem_patch24
+00   #mem_patch25
+00   #mem_patch26
+00   #mem_patch27
+00   #mem_patch28
+00   #mem_patch29
+00   #mem_patch2a
+00   #mem_patch2b
+00   #mem_patch2c
+00   #mem_patch2d
+00   #mem_patch2e
+00   #mem_patch2f
+00   #mem_patch30
+00   #mem_patch31
+00   #mem_patch32
+00   #mem_patch33
+00   #mem_patch34
+00   #mem_patch35
+00   #mem_patch36
+00   #mem_patch37
+04   #mem_patch38
+00   #mem_patch39
+00   #mem_patch3a
+00   #mem_patch3b
+00   #mem_patch3c
+00   #mem_patch3d
+00   #mem_patch3e
+00   #mem_patch3f
+
+
+mem_keyboard_flag:
+#byte 0
+#bit0 KEYBOARD_24G_PAIRING_FLAG
+#bit1 KEYBOARD_STORE_MEMORY_FLAG
+#bit2 KEYBOARD_LOW_VOLTAGE_FLAG
+#bit3 KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG
+#bit4 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+00
+
+#byte 1
+#bit0 KEYBOARD_ENABLE_WAKEUP_FROM_POWER
+#bit1 KEYBOARD_ENABLE_16M
+#bit2 KEYBOARD_DISABLE_ICE
+#bit3 KEYBOARD_ENABLE_ADC
+#bit4 KEYBOARD_ENABLE_FLASH
+#bit5 KEYBOARD_ENABLE_2K_EEPROM
+#bit6 KEYBOARD_ENABLE_EEPROM
+#bit7 KEYBOARD_ENABLE_OTP
+89
+
+#byte 2
+#bit0 KEYBOARD_ENABLE_24G
+#bit1 KEYBOARD_ENABLE_AUTO_24G_PARING
+#bit2 KEYBOARD_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+#bit3 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+#bit4 KEYBOARD_ENABLE_24G_2M_PHY
+#bit5 KEYBOARD_ENABLE_24G_SEARCH_DONGLE
+0d
+
+#byte 3
+#bit0 KEYBOARD_ENABLE_BLE_RANDOM_ADDRE
+#bit1 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL
+#bit2 KEYBOARD_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+#bit3 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+00
+
+#byte 4
+#bit0 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+#bit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER
+#bit2 KEYBOARD_ENABLE_MAGIC_KEYBOARD
+#bit3 KEYBOARD_ENABLE_MOUSE
+#bit4 KEYBOARD_ENABLE_USB
+00
+
+#byte 5
+#bit0 KEYBOARD_ENABLE_030_POWER_LED
+#bit1 KEYBOARD_ENABLE_LOW_LED
+#bit2 KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND
+#bit3 KEYBOARD_ENABLE_BACKLIGHT
+06
+
+#byte 6
+#bit0 KEYBOARD_ENABLE_FN_ARROW
+#bit1 KEYBOARD_ENABLE_FN_LEFT_CTRL_OSK
+#bit2 KEYBOARD_ENABLE_FN_SPACE_LANGUAGE
+#bit3 KEYBOARD_ENABLE_FN_OS_SWITCH
+#bit4 KEYBOARD_ENABLE_FN_LOCK
+00
+
+#byte 7
+#bit0 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+#bit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND
+#bit2 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_GND
+#bit3 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD
+#bit4 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_VDD
+00
+
+
+mem_device_option:0f
+mem_power_on_flag:01
+mem_keyboard_se_flag_init:a3 e4 #don't change
+#ui
+mem_ui_button_gpio:ff
+mem_ui_button_timeout:1e
+mem_ui_led_struct_num:01
+
+#rf
+mem_tx_power:01	#00--0db 01--3db  02--5db  03--f3db  04--f5db
+mem_rssi_buff_index:07
+mem_rssi_signal_buf_ptr:mem_mouse_rssi_signal_buf
+mem_rssi_dis_min_24g_init:85
+mem_rssi_dis_max_24g_init:90
+mem_rssi_dis_min_ble_init:75
+mem_rssi_dis_max_ble_init:80
+mem_rssi_hex_received_max_value_init:63
+mem_power_ctrl_pac_succ_cnt_init:7d
+
+#usb
+mem_keyboard_usb_vid_pid:
+01 #enable
+#mouse only#auto pair
+51 31#VID
+10 50#PID
+#mouse & keyboard
+51 31#VID
+20 50#PID
+
+#2.4g
+mem_24g_lap: 03 11 36 55 51 61
+mem_24g_data_type:02	#01--mouse  02--keyboard
+mem_24g_fast_conn_enable:01
+mem_24g_fast_conn_addr:0f 0f 0f 0f
+mem_24g_ch_map_update:00   #00--disable   01--enable
+mem_24g_long_sleep_set_level:02    #00--30ms   01--50ms  02--80ms  03--100ms
+mem_24g_disable_fec1:00	 #00--default mode  01--new process
+mem_24g_rx_window:c0 12     #400us  ## e0 2e#1ms #transmitter long range min:520us
+mem_device_24g_pair_tx_power:9e #-30dBm
+
+mem_24g_enter_hibernate:00 48 60
+mem_24g_long_sleep_param_update_timer_init:0a 00	#1s
+mem_24g_transmit_by_interrupt_exit_count_init:50 00
+mem_device_24g_search_dongle_time_init:32 00	#3mins
+mem_store_information_delay_timer_init:02
+mem_local_rx_max_octets:fb 00 48 08 fb 00 48 08  # 1b
+
+#bt
+mem_lpm_mode:01
+mem_lpm_mult:10
+mem_lpm_mult_init:10
+
+
+#ble
+mem_le_lap:73 83 92 a1 b1 c1
+mem_le_adv_channel_map:07
+
+mem_le_battery_level_updata_timer_init:96 00
+mem_le_keyboard_handle:15 00
+mem_le_notify_handle:19 00
+mem_le_multimedia_handle:1d 00
+mem_le_systemctrl_handle:21 00
+mem_le_pairing_handle:28 00
+mem_le_battery_level_handle:30 00
+
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#flag
+02 01 05
+#uuid
+03 03 12 18
+#appearance
+03 19 c1 03
+
+mem_le_adv_swift_pair:
+#microsoft swift pair
+06 ff 06 00 03 00 80
+#name
+#'\09Bluetooth Keyboard
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+#name
+'\09Bluetooth Keyboard
+
+#max 20bytes, att list data rom limits
+mem_le_name_len:
+'Bluetooth Keyboard
+
+mem_le_interval_min:
+08 00 #min interval
+08 00 #max interval
+20 00 #latency
+2c 01 #timeout
+
+mem_le_adv_ind:03 12 18
+mem_le_adv_direct_ind:ff 00 00
+
+mem_le_search_mac_manu_name:
+41 70 70 6c 65 20 49 6e 63
+mem_le_search_mac_uuid:
+0a 18
+mem_le_search_service_uuid:
+D0 00 2D 12 1E 4B 0F A4 99 4E CE B5 31 F4 05 79
+
+mem_keybord_appearance:c1 03 
+
+mem_keyboard_le_change_vid_pid_flag:
+01			# 00:disable    01:enable
+02
+e8 04		# vid: 04 e8
+21 70		# pid: 70 21
+01 00
+
+mem_keyboard_blob_response_consumer_customize:
+09 b8 		#bit4  MAC EJECT
+0a 25 02 		#bit5  AC Forward
+0a 26 02 		#bit6  AC Stop
+0a 24 02 		#bit6  AC Back
+
+81 02
+c0
+05 01
+09 06
+a1 01
+85 02
+
+#adc
+
+#adc config
+mem_adc_config_flag:02
+#01 ADC_CONFIG_HVIN
+#02 ADC_CONFIG_GPIO
+mem_adc_clkdiv:0a
+mem_adc_channel:0d
+#00 ADC_CH_VBAT
+#01 ADC_CH_VDCDC5V
+#06 ADC_CH_GPIO18
+#07 ADC_CH_GPIO10
+#08 ADC_CH_GPIO9
+#09 ADC_CH_GPIO12
+#0a ADC_CH_GPIO6
+#0b ADC_CH_GPIO20
+#0c ADC_CH_GPIO21
+#0d ADC_CH_GPIO22
+#0e ADC_CH_GPIO13
+
+mem_adc_dma_enable:00
+mem_adc_saddr_ptr:00 07
+mem_adc_eaddr_ptr:ff 07
+
+mem_keyboard_power_type:00  # 00--1.5V     01--3V    02--4.2V
+
+#led
+mem_keyboard_device_poweron_timer_init:1e
+
+#system
+mem_device_24g_power_on_fast_conn_timer:02 00	#1s
+mem_device_24g_reconn_timeout_init:64 #10s
+mem_device_24g_pair_timeout_init:58 02  #1min
+mem_device_fast_direct_timeout:64 #10s
+mem_device_direct_timeout:64  #10s
+mem_device_discovery_timeout:08 07  #3min
+mem_device_no_data_timeout:50 46   #10mins
+mem_adc_low_volatage_led_blink_timer:64 00 #10s
+mem_keyboard_pair_led_blink_count:05	#500ms
+mem_keyboard_low_volatage_led_blink_count:05		#200ms
+
+mem_same_keyvalue_timer_init:B8 0B		#5min
+
+mem_device_flag:00	#00--24g 01--ble
+mem_device1_type:34
+mem_device1_addr:00 00 00 00 00 00
+
+mem_device_number:01
+mem_keyboard_switch_device_to_g24:00 7f 1e		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt1:00 7f 1f		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt2:00 7f 20		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt3:00 7f 21		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_usb:00 7f 22
+
+#rgb
+mem_rgb_on_color:
+07		#white
+01		#blue
+02		#green
+04		#red
+03		#cyan
+05		#purple
+06		#orange
+
+mem_customize_timer_setup: 50 00  	# n*0.3125ms
+mem_keyboard_num_caps_scoll_led_on_timer:58 02		#1min
+
+mem_rgb_pwm_conf:
+13	#pwm gpio
+01	#pwm channel
+a0	#three  byte frequency
+0f
+00
+1e 	#duty cycle (by percent %)
+
+mem_keyboard_led_r_gpio:ff #13
+mem_keyboard_led_g_gpio:ff #14
+mem_keyboard_led_b_gpio:ff #15
+
+##												bt button connct gnd          bt button in matrix        two button commbination
+mem_keyboard_pairing_type:01					#                 00                                    00                                 01
+mem_keyboard_pb_button_gpio:ff
+mem_keyboard_commbination_key_bt:7f ff			#		 not care				   not care			     Fn+C
+mem_keyboard_commbination_key_24g:29 14		#		 not care				   not care			     Esc+Q
+mem_keyboard_commbination_fast_conn_bt:2a 10	# bs+M
+mem_eeprom_wp_gpio:ff
+mem_eeprom_scl_gpio:ff
+mem_eeprom_sda_gpio:ff
+mem_eeprom_base:10 00
+mem_flash_base:00 50 00
+mem_otp_read_retention_max_size:20 03
+
+mem_keyboard_num_led_gpio:8c
+mem_keyboard_caps_led_gpio:89
+mem_keyboard_scroll_led_gpio:ff
+mem_keyboard_power_led_gpio:ff
+mem_keyboard_low_voltage_alarm_gpio:8a
+mem_keyboard_24g_led_gpio:8a
+mem_keyboard_bt1_led_gpio:ff
+mem_keyboard_bt2_led_gpio:ff
+mem_keyboard_bt3_led_gpio:ff
+
+#mem_rf_debug_rx_gpio:89
+#mem_rf_debug_tx_gpio:89
+
+mem_mcu_stb_gpio:0b			#IOB0
+mem_mcu_clk_gpio:0d			#IOB1
+mem_mcu_rstb_gpio:ff
+
+
+mem_device_reuse_2ice_gpio:05
+#portA:8x,portB:cx,fixed conf,don't change
+mem_key_excol_gpio:c2 c3 c4 c5 c6 c7 80 81 82 83 84 85
+
+#gpio00~16
+mem_key_row_gpio:
+08		#r0
+07 		#r1
+06		#r2
+04 		#r3
+03 		#r4
+00 		#r5
+01 		#r6
+02		#r7
+
+#gpio00~16   portA:8x,portB:cx
+mem_key_col_gpio:
+13		#c0
+c6		#c1
+c5		#c2
+c4		#c3
+c3		#c4
+c2		#c5
+80		#c6
+c7		#c7
+0f		#c8
+12		#c9
+0e		#c10
+84		#c11
+83		#c12
+82		#c13
+81		#c14
+85		#c15
+14		#c16
+15		#c17
+ff		#c18
+ff		#c19
+
+mem_keyboard_keyvalue_map:
+#r0 ~ r7
+48 00 00 00 e4 00 e0 3e 				#c0
+14 2b 04 29 1d 8b 35 1e 				#c1
+1a 39 16 64 1b 8a 3a 1f 					#c2
+08 3c 07 3d 06 88 3b 20 				#c3
+15 17 09 0a 19 05 22 21 				#c4
+18 1c 0d 0b 10 11 23 24					#c5
+0c 30 0e 3f 36 87 2e 25 					#c6
+12 40 0f 00 37 65 41 26 					#c7
+13 2f 33 34 32 38 2d 27 					#c8	
+47 00 7f e2 00 e6 00 46					#c9
+89 2a 31 44 28 45 42 43 				#c10
+5f 5c 59 2c 53 51 4c 00 					#c11
+60 5d 5a 62 54 4f 49 00 					#c12
+61 5e 5b 63 55 56 4b 4e 				#c13
+57 85 58 52 e9 50 4a 4d					#c14
+00 e1 e5 ed ee ec eb e8 				#c15
+f1 e3 f6 f8 f7 f9 ef fa					#c16
+91 f5 e7 f0 ea f2 fb 90					#c17
+
+mem_keyboard_fn_first:	00			#fn first  00:press f1~f12=f1~f12      01:press fn+f1~f12=f1~f12
+mem_keyboard_fn_esc:	29			#esc
+mem_keyboard_fn_f1:	e8			#f1
+mem_keyboard_fn_f2:	e9			#f2
+mem_keyboard_fn_f3:	ea			#f3
+mem_keyboard_fn_f4:	eb			#f4
+mem_keyboard_fn_f5:	ec			#f5
+mem_keyboard_fn_f6:	ed			#f6
+mem_keyboard_fn_f7:	ee			#f7
+mem_keyboard_fn_f8:	ef			#f8
+mem_keyboard_fn_f9:	f0			#f9
+mem_keyboard_fn_f10:	f1			#f10
+mem_keyboard_fn_f11:	f2			#f11
+mem_keyboard_fn_f12:	af			#f12
+mem_keyboard_fn_del:	4c			#delete
+mem_keyboard_fn_lock_keyvalue:29
+
+mem_keyboard_le_table:
+#att table
+# 01 00 02 00 28  # Primary Service Declaration
+# 02 00 18        # Generic Access Service (UUID: 0x1800)
+# 02 00 02 03 28  # Characteristic Declaration
+# 01 0a           # Properties: Read, Write
+# 03 00 02 00 2a  # Device Name Characteristic (UUID: 0x2A00)
+# 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+# 04 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 05 00 02 01 2a  # Appearance Characteristic (UUID: 0x2A01)
+# 02 c1 03        # Value: 0x03C2 (Generic Keyboard)
+
+# 06 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 07 00 02 04 2a  # Peripheral Preferred Connection Parameters (UUID: 0x2A04)
+# 08 06 00 06 00  # Minimum Connection Interval: 0x0006 (7.5ms)
+# 64 00           # Maximum Connection Interval: 0x0064 (100ms)
+# 2c 01           # Slave Latency: 0x012C (300)
+
+# 08 00 02 00 28  # Primary Service Declaration
+# 02 01 18        # Generic Attribute Service (UUID: 0x1801)
+# 09 00 02 03 28  # Characteristic Declaration
+# 01 20           # Properties: Indicate
+# 0a 00 02 05 2a 01 00 # Service Changed Characteristic (UUID: 0x2A05)
+# 0b 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+
+# 0c 00 02 00 28  # Primary Service Declaration
+# 02 0a 18        # Battery Service (UUID: 0x180F)
+# 0d 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 0e 00 02 29 2a  # Battery Level Characteristic (UUID: 0x2A19)
+# 06 59 69 43 68 69 70  # Value: Battery Level Data
+
+# 0f 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 10 00 02 50 2a  # HID Information Characteristic (UUID: 0x2A4A)
+# 07 02 e8 04 21 70 01 00  # Value: HID Information Data
+
+# 11 00 02 00 28  # Primary Service Declaration
+# 02 12 18        # HID Service (UUID: 0x1812)
+# 12 00 02 03 28  # Characteristic Declaration
+# 01 06           # Properties: Read, Write Without Response
+# 13 00 02 4e 2a  # Report Map Characteristic (UUID: 0x2A4B)
+# 01 01           # Value: Report Map Data
+
+# 14 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 15 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 08 00 00 00 00 00 00 00 00  # Value: Report Data
+# 16 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+# 17 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 02 01        # Value: Report ID and Type
+
+# 18 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 19 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 07 00 00 00 00 00 00 00  # Value: Report Data
+# 1a 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+# 1b 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 01 01        # Value: Report ID and Type
+
+# 1c 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 1d 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 02 00 00        # Value: Report Data
+# 1e 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+# 1f 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 05 01        # Value: Report ID and Type
+
+# 20 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 21 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 02 00 00        # Value: Report Data
+# 22 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+# 23 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 04 01        # Value: Report ID and Type
+
+# 24 00 02 03 28  # Characteristic Declaration
+# 01 0e           # Properties: Read, Write
+# 25 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 02 00 00        # Value: Report Data
+# 26 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 02 02        # Value: Report ID and Type
+
+# 27 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 28 00 02 4b 2a  # HID Control Point Characteristic (UUID: 0x2A4C)
+# f5 05 0c 09 01 a1 01 85 05  # Value: HID Control Point Data
+# 15 00 25 01 75 01 95 18
+# 0a 83 01 09 ea 09 e9 09 e2
+# 09 b6 09 b5 09 cd 09 b7
+# 0a 23 02 0a 8a 01 0a 94 01
+# 0a 2a 02 0a 92 01 0a 21 02
+# 0a 24 02 0a 07 03 0a ae 01
+# 09 70 09 6f 09 30 09 b8
+# 0a 25 02 0a 26 02 0a 27 02
+# 81 02 c0
+
+# 05 01 09 06 a1 01 85 02  # HID Keyboard Input Report
+# 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 26 ff 00
+# 05 07 19 00 2a ff 00 81 00
+# c0
+
+# 05 01 09 02 a1 01 85 01  # HID Mouse Input Report
+# 09 01 a1 00 05 09 19 01 29 08
+# 15 00 25 01 75 01 95 08 81 02
+# 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 04  # HID System Control Input Report
+# 15 00 25 01 75 01 95 03 19 81
+# 29 83 81 02 95 01 75 05 81 03
+# c0
+# 29 00 02 03 28  # Characteristic Declaration
+# 01 1a           # Properties: Read, Notify
+# 2a 00 02 33 2a  # Report Characteristic (UUID: 0x2A33)
+# 08 00 00 00 00 00 00 00 00  # Value: Report Data
+
+# 2b 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 01 00        # Value: 0x0001 (Notifications Enabled)
+
+# 2c 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 2d 00 02 4a 2a  # HID Information Characteristic (UUID: 0x2A4A)
+# 04 01 01 00 03  # Value: HID Information Data
+
+# 2e 00 02 00 28  # Primary Service Declaration
+# 02 0f 18        # Battery Service (UUID: 0x180F)
+
+# 2f 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 30 00 02 19 2a  # Battery Level Characteristic (UUID: 0x2A19)
+# 01 64           # Value: Battery Level (100%)
+
+# 31 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+# 32 00 02 03 28  # Characteristic Declaration
+# 01 04           # Properties: Write Without Response
+# 33 00 02 4c 2a  # HID Control Point Characteristic (UUID: 0x2A4C)
+# 00 00 00        # Value: HID Control Point Data
+
+#se map
+af 00              # Feature
+05 01        # Usage Page (Generic Desktop Ctrls)
+09 06        # Usage (Keyboard)
+A1 01        # Collection (Application)
+85 02        #   Report ID (2)
+75 01        #   Report Size (1)
+95 08        #   Report Count (8)
+05 07        #   Usage Page (Kbrd/Keypad)
+19 E0        #   Usage Minimum (0xE0)
+29 E7        #   Usage Maximum (0xE7)
+15 00        #   Logical Minimum (0)
+25 01        #   Logical Maximum (1)
+81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+95 01        #   Report Count (1)
+75 08        #   Report Size (8)
+81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+95 05        #   Report Count (5)
+75 01        #   Report Size (1)
+05 08        #   Usage Page (LEDs)
+19 01        #   Usage Minimum (Num Lock)
+29 05        #   Usage Maximum (Kana)
+91 02        #   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+95 01        #   Report Count (1)
+75 03        #   Report Size (3)
+91 03        #   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+95 06        #   Report Count (6)
+75 08        #   Report Size (8)
+15 00        #   Logical Minimum (0)
+26 FF 00  #   Logical Maximum (255)
+05 07        #   Usage Page (Kbrd/Keypad)
+19 00        #   Usage Minimum (0x00)
+29 FF        #   Usage Maximum (0xFF)
+81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0              # End Collection
+
+05 0C        # Usage Page (Consumer)
+09 01        # Usage (Consumer Control)
+A1 01        # Collection (Application)
+85 03        #   Report ID (3)
+15 00        #   Logical Minimum (0)
+25 01        #   Logical Maximum (1)
+75 01        #   Report Size (1)
+95 18        #   Report Count (24)
+0A 83 01  #   Usage (AL Consumer Control Configuration)
+09 EA        #   Usage (Volume Decrement)
+09 E9        #   Usage (Volume Increment)
+09 E2        #   Usage (Mute)
+09 B6        #   Usage (Scan Previous Track)
+09 B5        #   Usage (Scan Next Track)
+09 CD        #   Usage (Play/Pause)
+09 B7        #   Usage (Stop)
+0A 23 02  #   Usage (AC Home)
+0A 8A 01  #   Usage (AL Email Reader)
+0A 94 01  #   Usage (AL Local Machine Browser)
+0A 2A 02  #   Usage (AC Bookmarks)
+0A 92 01  #   Usage (AL Calculator)
+0A 21 02  #   Usage (AC Search)
+0A 24 02  #   Usage (AC Back)
+0A 07 03  #   Usage (0x0307)
+0A AE 01  #   Usage (AL Keyboard Layout)
+09 70        #   Usage (0x70)
+09 6F        #   Usage (0x6F)
+09 30        #   Usage (Power)
+09 B8        #   Usage (Eject)
+0A 25 02  #   Usage (AC Forward)
+0A 26 02  #   Usage (AC Stop)
+0A 27 02  #   Usage (AC Refresh)
+81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0              # End Collection
+
+#af 00             # Feature
+
+
+# 05 01        # Usage Page (Generic Desktop Ctrls)
+# 09 06        # Usage (Keyboard)
+# A1 01        # Collection (Application)
+# 85 02        #   Report ID (2)
+# 75 01        #   Report Size (1)
+# 95 08        #   Report Count (8)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 E0        #   Usage Minimum (0xE0)
+# 29 E7        #   Usage Maximum (0xE7)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 01        #   Report Count (1)
+# 75 08        #   Report Size (8)
+# 81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 05        #   Report Count (5)
+# 75 01        #   Report Size (1)
+# 05 08        #   Usage Page (LEDs)
+# 19 01        #   Usage Minimum (Num Lock)
+# 29 05        #   Usage Maximum (Kana)
+# 91 02        #   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 01        #   Report Count (1)
+# 75 03        #   Report Size (3)
+# 91 03        #   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 06        #   Report Count (6)
+# 75 08        #   Report Size (8)
+# 15 00        #   Logical Minimum (0)
+# 26 FF 00  #   Logical Maximum (255)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 00        #   Usage Minimum (0x00)
+# 29 FF  #   Usage Maximum (0xFF)
+# 81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+
+05 01        # Usage Page (Generic Desktop Ctrls)
+09 80        # Usage (Sys Control)
+A1 01        # Collection (Application)
+85 04        #   Report ID (4)
+15 00        #   Logical Minimum (0)
+25 01        #   Logical Maximum (1)
+75 01        #   Report Size (1)
+95 03        #   Report Count (3)
+19 81        #   Usage Minimum (Sys Power Down)
+29 83        #   Usage Maximum (Sys Wake Up)
+81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+95 01        #   Report Count (1)
+75 05        #   Report Size (5)
+81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0              # End Collection
+
+#sb map
+# af 00             # Feature
+# 05 01        # Usage Page (Generic Desktop Ctrls)
+# 09 06        # Usage (Keyboard)
+# A1 01        # Collection (Application)
+# 85 02        #   Report ID (2)
+# 75 01        #   Report Size (1)
+# 95 08        #   Report Count (8)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 E0        #   Usage Minimum (0xE0)
+# 29 E7        #   Usage Maximum (0xE7)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 01        #   Report Count (1)
+# 75 08        #   Report Size (8)
+# 81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 05        #   Report Count (5)
+# 75 01        #   Report Size (1)
+# 05 08        #   Usage Page (LEDs)
+# 19 01        #   Usage Minimum (Num Lock)
+# 29 05        #   Usage Maximum (Kana)
+# 91 02        #   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 01        #   Report Count (1)
+# 75 03        #   Report Size (3)
+# 91 03        #   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 06        #   Report Count (6)
+# 75 08        #   Report Size (8)
+# 15 00        #   Logical Minimum (0)
+# 26 FF 00  #   Logical Maximum (255)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 00        #   Usage Minimum (0x00)
+# 29 FF        #   Usage Maximum (0xFF)
+# 81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+
+# 05 0C        # Usage Page (Consumer)
+# 09 01        # Usage (Consumer Control)
+# A1 01        # Collection (Application)
+# 85 03        #   Report ID (3)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 75 01        #   Report Size (1)
+# 95 18        #   Report Count (24)
+# 0A 83 01  #   Usage (AL Consumer Control Configuration)
+# 09 EA        #   Usage (Volume Decrement)
+# 09 E9        #   Usage (Volume Increment)
+# 09 E2        #   Usage (Mute)
+# 09 B6        #   Usage (Scan Previous Track)
+# 09 B5        #   Usage (Scan Next Track)
+# 09 CD        #   Usage (Play/Pause)
+# 09 B7        #   Usage (Stop)
+# 0A 23 02  #   Usage (AC Home)
+# 0A 8A 01  #   Usage (AL Email Reader)
+# 0A 94 01  #   Usage (AL Local Machine Browser)
+# 0A 2A 02  #   Usage (AC Bookmarks)
+# 0A 92 01  #   Usage (AL Calculator)
+# 0A 21 02  #   Usage (AC Search)
+# 0A 24 02  #   Usage (AC Back)
+# 0A 07 03  #   Usage (0x0307)
+# 0A AE 01  #   Usage (AL Keyboard Layout)
+# 09 70        #   Usage (0x70)
+# 09 6F        #   Usage (0x6F)
+# 09 30        #   Usage (Power)
+# 09 B8        #   Usage (Eject)
+# 0A 25 02  #   Usage (AC Forward)
+# 0A 26 02  #   Usage (AC Stop)
+# 0A 27 02  #   Usage (AC Refresh)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+
+# # 05 0C        # Usage Page (Consumer)
+# # 09 01        # Usage (Consumer Control)
+# # A1 01        # Collection (Application)
+# # 85 03        #   Report ID (3)
+# # 19 00        #   Usage Minimum (Unassigned)
+# # 2A FF 03  #   Usage Maximum (0x03FF)
+# # 15 00        #   Logical Minimum (0)
+# # 26 FF 03  #   Logical Maximum (1023)
+# # 95 01        #   Report Count (1)
+# # 75 10        #   Report Size (16)
+# # 81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# # C0              # End Collection
+
+# 05 01        # Usage Page (Generic Desktop Ctrls)
+# 09 80        # Usage (Sys Control)
+# A1 01        # Collection (Application)
+# 85 04        #   Report ID (4)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 75 01        #   Report Size (1)
+# 95 03        #   Report Count (3)
+# 19 81        #   Usage Minimum (Sys Power Down)
+# 29 83        #   Usage Maximum (Sys Wake Up)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 01        #   Report Count (1)
+# 75 05        #   Report Size (5)
+# 81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+# 120 bytes
+
+
+
+mem_system_clk:0c
+mem_lpm_xtalcnt:35 3f 64
+mem_lpm_isogate:db 7b 3b
+mem_lpm_hibernate_switch:20
+mem_lpm_ldo_sel:00
+mem_lpm_sysctl:08
+mem_lpm_hv_sel:b4
+
+mem_fcomp_div:18
+mem_xtal_c_sel:7f
+mem_gpio_wakeup_cfg:00 00 00 00 00 00 00 00 00 00 00 02
+
+mem_version:08 0e 05 03 00
+mem_le_tx2m_delay:20
+
+mem_rx_window_sniff:00 10
+
+mem_gain_fix:ff	#00:soft agc; ff:hw agc
+mem_gain_table:04 00 00
+mem_gain_second_agc_en:08	#hw agc: 0:second agc disable
+
+
+
+mem_ring_ibias_trim:a0
+mem_ring_ibias_vtune_high:bc 02 #700mv
+mem_ring_ibias_vtune_low:90 01 #400mv
+mem_ring_ibias_calc_adc_gpio:03
+mem_ring_ibias_calc_adc_channel:09
+
+mem_rf_init_data:
+ff
+mem_rf_init_ptr:mem_rf_init_data
+
+
Index: costumer/Bore/keyboard_ck801_only_24g/program/app_kb.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/program/app_kb.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/program/app_kb.prog	(working copy)
@@ -0,0 +1,3926 @@
+
+keyboard_softreset_process:
+	call keyboard_wakeup_from_power_check
+	nbranch soft_reset+1,user
+	fetch 1,mem_power_on_flag
+	branch soft_reset+1,blank
+	fetch 1,mem_keyboard_pb_button_gpio
+	rtneq UI_BUTTON_GPIO_DISABLE
+	copy pdata,queue
+	fetch 4,mem_saved_gpio_in
+	qisolate0 pdata					// bt button gpio num
+	call keyboard_pb_set,true
+	branch soft_reset+2	
+
+keyboard_wakeup_from_power_check:
+	disable user
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_WAKEUP_FROM_POWER,mouse_wakeup_from_poweron
+	fetch 1,core_lpm_isogate
+	bbit1 cold_wake,mouse_wakeup_from_poweron
+	enable user	//wake from hibernate
+	branch mouse_wakeup_from_poweron
+
+keyboard_default_init:
+	call hid_device_default_parm_init
+	call keyboard_xtal_init
+	call keyboard_24g_phy_select
+	branch g24_pair_param_init
+
+keyboard_xtal_init:
+	jam XTAL_16M,mem_fcomp_div		// 0x08--16M 
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_ENABLE_16M
+	jam XTAL_24M,mem_fcomp_div		// 0x18--24M
+	rtn
+
+keyboard_24g_phy_select:
+	call g24_enable_1M
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_24G_2M_PHY
+	branch g24_enable_2M
+
+
+keyboard_init:
+	call enable_authrom
+	call keyboard_setting_config
+	
+	call keyboard_gpio_init
+	call keyboard_low_vol_mult_set
+	call lpm_config_puchk_disable
+	rtn wake
+	call keyboard_cb_fuction
+	fetch 1,mem_device_flag
+	beq MODE_USB_DEVICE,keyboard_usb_mode_start
+keyboard_init_wireless:	
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,keyboard_start_discovery
+	jam 0,mem_keyboard_switch_count_temp
+	call keyboard_check_select_device_by_switch
+	jam 1,mem_keyboard_switch_count_temp
+	branch keyboard_start_work
+
+keyboard_setting_config:
+	rtn wake
+	call g24_transmit_init
+	call g24_chmap_param_init
+	call keyboard_param_init
+	call keyboard_device_led_all_off
+	call keyboard_rgb_off
+	call keyboard_pwm_init
+	call le_set_fixed_ltk_justwork
+	bpatch patch07_6,mem_patch07
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,keyboard_load_otp_info	
+	bbit1 KEYBOARD_ENABLE_EEPROM,keyboard_load_eeprom_info
+	bbit1 KEYBOARD_ENABLE_FLASH,keyboard_load_flash_info
+	rtn
+
+keyboard_param_common_init:
+	setarg MOUSE_BLE_ATT_LIST_ADDR				//ble attlist start address
+	store 2,mem_ui_le_uuid_table
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_N_KEY_ROLLOVER_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER,hid_device_param_common_init
+	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_MAGIC_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_ONLY_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	branch hid_device_param_common_init
+
+	
+keyboard_param_init:
+	call keyboard_compare_addr_init
+	call keyboard_param_common_init	
+	call keyboard_adc_vol_init
+	fetch 1,mem_keyboard_device_poweron_timer_init
+	store 1,mem_keyboard_device_poweron_timer
+	jam 0,mem_same_keyvalue_timerout_flag	
+	arg mem_le_adv_swift_pair,contw
+	arg 20,loopcnt
+	call clear_mem
+
+	fetch 1,mem_le_name_len
+	sub pdata,12,null
+	nbranch keyboard_ble_name_set_no_swift_pair,positive
+	setarg 0x06ff06
+	store 3,mem_le_adv_swift_pair
+	setarg 0x000300
+	istore 3,contw
+	setarg 0x80
+	istore 1,contw
+keyboard_ble_store_le_name:
+	fetch 1,mem_le_name_len
+	increase 1,pdata
+	copy pdata,loopcnt
+	arg mem_le_scan_data,contr			// 7byte + mem_le_scan_data
+	branch memcpy
+	
+keyboard_ble_name_set_no_swift_pair:
+	arg mem_le_adv_swift_pair,contw
+	branch keyboard_ble_store_le_name
+
+keyboard_compare_addr_init:
+	arg 0,temp
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,hid_device_compare_addr_store
+	arg 0xffffff,temp
+	branch hid_device_compare_addr_store
+	
+/////////////////////////////////////////////////////////------gpio------///////////////////////////////////////////////////////////
+keyboard_gpio_init:
+	call clear_wake
+	fetcht 1,mem_keyboard_pb_button_gpio
+	call device_gpio_config_input_pu
+
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	isolate1 KEYBOARD_DISABLE_ICE,pdata
+	call lpm_write_ice_disable,true
+	
+	//row init
+	setarg mem_key_row_gpio
+	store 2,mem_kb_row_ptr
+	//col init
+	setarg mem_key_col_gpio
+	store 2,mem_kb_col_ptr
+	//portA and B init
+	setarg mem_key_excol_gpio
+	store 2,mem_kb_excol_ptr
+	call keyboard_key_row_init
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	arg 20,loopcnt	
+keyboard_key_cow_init:
+	ifetcht 1,regb
+	isolate1 7,temp						// exmcu gpio
+	ncall gpio_set_high_impedance,true
+	increase 1,regb
+	loop keyboard_key_cow_init
+	rtn
+
+keyboard_key_row_init:
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+keyboard_key_row_init_loop:
+	ifetcht 1,regb
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	ncall keyboard_gpio_set_low_pullup,zero
+	increase 1,regb
+	loop keyboard_key_row_init_loop
+	branch lpm_write_gpio_wakeup
+	
+keyboard_gpio_set_low_pullup:
+	call gpio_set_high_impedance
+	ifetcht 1,regb
+	branch gpio_set_low_pullup
+
+keyboard_gpio_pu_idle:
+	arg core_gpio_conf,contr
+	arg GPIO_NUMBER,loopcnt
+keyboard_gpio_pu_idle_loop:
+	ifetch 1,contr
+	nbranch keyboard_gpio_pu_idle_configured,blank
+	setarg gpcfg_pullup
+	add contr,-1,contw
+	istore 1,contw
+keyboard_gpio_pu_idle_configured:
+	loop keyboard_gpio_pu_idle_loop
+	arg core_gpio_conf_hi+GPIO_NUMBER_EXT,pdata
+	isub contr,null
+	rtn zero
+	arg GPIO_NUMBER_EXT,loopcnt
+	arg core_gpio_conf_hi,contr
+	branch keyboard_gpio_pu_idle_loop	
+
+keyboard_key_row_wake_set:
+	fetch 1,mem_same_keyvalue_timerout_flag
+	branch gpio_set_wake,blank
+	branch gpio_set_wake_by_current_state
+	
+//////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+	
+///////////////////////////////////////otp  eeprom flash/////////////////////////////////////////////////////////////
+keyboard_pairing_check_otp_offset:
+	fetch 2,mem_otp_read_retention_offset
+	//arg 0x320,temp   //50*16 or 4*200
+	fetcht 2,mem_otp_read_retention_max_size
+	isub temp,null
+	nrtn positive
+	branch assert
+	
+//  otp process	
+keyboard_load_otp_info:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_load_otp_device_info_g24_init
+	beq MODE_BT_DEVICE1,keyboard_load_otp_device_info_ble_init
+	rtn	
+	
+keyboard_load_otp_device_info_g24_init:
+	arg 8,regd
+	//setarg 0x400
+	fetch 2,mem_otp_read_retention_max_size
+	idiv regd
+	call wait_div_end
+	quotient pdata
+	store 2,mem_pdatatemp
+	arg 0x1fbc,pdata
+	arg 4,temp
+	arg 4,rege
+	branch keyboard_load_otp_device_info
+keyboard_load_otp_device_info_ble_init:
+	arg 32,regd
+	//setarg 0x400
+	fetch 2,mem_otp_read_retention_max_size
+	idiv regd
+	call wait_div_end
+	quotient pdata
+	store 2,mem_pdatatemp
+	arg 0x1fb0,pdata
+	arg 16,temp		
+	arg 16,rege
+	branch keyboard_load_otp_device_info
+keyboard_load_otp_device_info:
+	store 2,mem_pdatatemp+2
+	storet 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	arg 0,regc
+keyboard_load_otp_info_check_page_loop:
+	fetch 2,mem_pdatatemp+2
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata	
+	branch keyboard_load_otp_info_check_first_time,blank
+	increase 1,regc
+	fetch 2,mem_pdatatemp
+	isub regc,null
+	fetch 2,mem_pdatatemp+2
+	isub regd,pdata
+	store 2,mem_pdatatemp+2
+	branch keyboard_load_otp_info_check_page_loop
+	
+keyboard_load_otp_info_check_first_time:
+	sub regc,0,null
+	branch keyboard_load_otp_info_check_first_time_process,zero
+keyboard_load_otp_info_check_first_time_loop_init:
+	fetch 2,mem_pdatatemp+2
+	iadd regd,pdata
+keyboard_load_otp_info_check_first_time_loop:	
+	isub rege,pdata
+	store 2,mem_pdatatemp+2
+	fetch 2,mem_pdatatemp+2
+	copy pdata,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 8,mem_otp_read_retention_memory
+	fetcht 8,mem_otp_read_retention_memory+8
+	ior temp,pdata
+	fetcht 8,mem_otp_read_retention_memory+16
+	ior temp,pdata	
+	branch keyboard_load_otp_info_check_offset_process,blank
+	fetch 2,mem_pdatatemp+2
+	branch keyboard_load_otp_info_check_first_time_loop
+	
+keyboard_load_otp_info_check_first_time_process:
+	storer rege,1,mem_otp_read_retention_offset
+	rtn
+keyboard_load_otp_info_check_offset_process:
+	setarg 0x1fc0
+	fetcht 2,mem_pdatatemp+2
+	isub temp,pdata
+	store 2,mem_otp_read_retention_offset		//store the next field offset ,convenient for next storage
+	copy temp,pdata
+	iadd rege,regb
+	fetchr loopcnt, 1,mem_temp
+	arg mem_otp_read_retention_memory,rega
+	call otp_read_data
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_load_otp_info_check_offset_process_g24
+	beq MODE_BT_DEVICE1,keyboard_load_otp_info_check_offset_process_ble
+	rtn
+
+keyboard_load_otp_info_check_offset_process_g24:	
+	fetch 6,mem_otp_read_retention_memory
+	store 4,mem_device_24g_addr
+	fetch 4,mem_device_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_24g_addr
+	rtn
+
+keyboard_load_otp_info_check_offset_process_ble:
+	fetch 1,mem_otp_read_retention_memory
+	sub pdata,SYSTEM_OS_MAC,null
+	ncall set_pdata_0,positive
+	store 1,mem_kb_computer_system
+	fetch 1,mem_otp_read_retention_memory+1
+	store 1,mem_device1_type
+	fetch 6,mem_otp_read_retention_memory+2
+	store 6,mem_device1_addr
+	fetch 6,mem_otp_read_retention_memory+8
+	store 6,mem_device1_locall_addr
+	fetcht 2,mem_otp_read_retention_memory+14
+	random pdata
+	iadd temp,pdata
+	store 2,mem_random_addr_increase_count
+	branch hid_device_select_reconn_device
+
+
+keyboard_load_eeprom_info:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_SDA_MULTI_R_LINE,keyboard_load_eeprom_device_info_next
+	fetcht 1,mem_eeprom_sda_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_eeprom_sda_gpio
+	call gpio_get_bit
+	branch keyboard_load_eeprom_info,true
+keyboard_load_eeprom_device_info_next:
+	call keyboard_eeprom_init
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg KEYBOARD_INFO_EEPROM_OFFECT,regb
+	call iicd_read_eep_data
+keyboard_load_info_check:
+	bpatch patch07_7,mem_patch07
+	call keyboard_app_initflag_check
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_load_info_24g
+	beq MODE_BT_DEVICE1,keyboard_load_info_bt1
+	beq MODE_BT_DEVICE2,keyboard_load_info_bt2
+	beq MODE_BT_DEVICE3,keyboard_load_info_bt3
+	beq MODE_USB_DEVICE,keyboard_load_info_usb
+keyboard_load_info_24g:
+	jam SYSTEM_OS_WINDOWS,mem_kb_computer_system
+	fetch 1,mem_keyboard_24g_fn_lock
+keyboard_load_info_fn_lock:	
+	sub pdata,1,null
+	ncall set_pdata_0,zero
+	store 1,mem_keyboard_fn_lock_flag
+	rtn
+keyboard_load_info_bt1:
+	fetch 1,mem_keyboard_bt1_fn_lock
+	call keyboard_load_info_fn_lock
+	fetch 1,mem_keyboard_bt1_computer_system
+	sub pdata,SYSTEM_OS_MAC,null
+	ncall set_pdata_0,positive
+keyboard_load_info_bt:	
+	store 1,mem_kb_computer_system
+	fetcht 2,mem_random_addr_increase_count
+	random pdata
+	iadd temp,pdata
+	store 2,mem_random_addr_increase_count
+	rtn
+keyboard_load_info_bt2:
+	fetch 1,mem_keyboard_bt2_fn_lock
+	call keyboard_load_info_fn_lock
+	fetch 1,mem_keyboard_bt2_computer_system
+	branch keyboard_load_info_bt
+keyboard_load_info_bt3:
+	fetch 1,mem_keyboard_bt3_fn_lock
+	call keyboard_load_info_fn_lock
+	fetch 1,mem_keyboard_bt3_computer_system
+	branch keyboard_load_info_bt
+keyboard_load_info_usb:
+	jam SYSTEM_OS_WINDOWS,mem_kb_computer_system
+	fetch 1,mem_keyboard_usb_fn_lock
+	branch keyboard_load_info_fn_lock
+
+keyboard_app_initflag_check:
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	branch hid_device_load_device_info,zero
+	storet 2,mem_store_flag
+	call hid_device_ble_init_address
+	fetch 1,mem_device_flag_temp
+	store 1,mem_device_flag
+	fetch 4,mem_24g_fast_conn_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_24g_addr
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_ALL_INFO,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	branch keyboard_store_device_info
+
+keyboard_load_flash_info:
+	call hid_device_load_flash_info_check
+	branch keyboard_load_info_check
+
+keyboard_store_device_info:
+	bpatch patch08_0,mem_patch08
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,keyboard_store_otp_device_info
+	bbit1 KEYBOARD_ENABLE_EEPROM,keyboard_store_eeprom_device_info
+	bbit1 KEYBOARD_ENABLE_FLASH,hid_device_store_flash_device_info
+	rtn
+	
+keyboard_store_otp_device_info:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_store_otp_device_info_g24
+	beq MODE_BT_DEVICE1,keyboard_store_otp_device_info_ble
+	rtn
+
+keyboard_store_otp_device_info_g24:
+	fetcht 2,mem_otp_read_retention_offset
+	setarg 0x1fc0
+	isub temp,regb
+	arg mem_device_24g_addr,rega
+	arg 4,loopcnt
+	call otp_write   
+	fetcht 2,mem_otp_read_retention_offset
+	increase 4,temp
+	storet 2,mem_otp_read_retention_offset
+	rtn
+
+keyboard_store_otp_device_info_ble:
+	jam 1,mem_otp_store_device_info_flag
+	fetch 1,mem_otp_store_system_flag
+	rtn blank
+keyboard_wirte_otp_ble:	
+	fetcht 2,mem_otp_read_retention_offset
+	setarg 0x1fc0
+	isub temp,pdata
+	store 2,mem_pdatatemp
+
+	copy pdata,regb
+	arg mem_kb_computer_system,rega
+	arg 1,loopcnt
+	call otp_write   /* regb = otp address, rega pointers data, loopcnt is count */	
+
+	fetch 2,mem_pdatatemp
+	add pdata,1,regb
+	arg mem_device1_type,rega
+	arg 13,loopcnt
+	call otp_write   /* regb = otp address, rega pointers data, loopcnt is count */
+
+	fetch 2,mem_pdatatemp
+	add pdata,14,regb
+	arg mem_random_addr_increase_count,rega
+	arg 2,loopcnt
+	call otp_write  /* regb = otp address, rega pointers data, loopcnt is count */
+	
+	fetcht 2,mem_otp_read_retention_offset
+	increase 16,temp
+	storet 2,mem_otp_read_retention_offset
+	rtn	
+
+keyboard_store_eeprom_device_info:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_SDA_MULTI_R_LINE,keyboard_store_eeprom_device_info_next
+	fetcht 1,mem_eeprom_sda_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_eeprom_sda_gpio
+	call gpio_get_bit
+	branch keyboard_store_device_info_delay,true
+keyboard_store_eeprom_device_info_next:	
+	call keyboard_eeprom_init
+keyboard_store_eeprom_device_info_typer_check:	
+	fetch 1,mem_keyboard_device_info_store_flag
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_ALL_INFO,keyboard_store_eeprom_device_all_info
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR,keyboard_store_eeprom_device_info_ble_addr
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR,keyboard_store_eeprom_device_info_g24_addr	
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK,keyboard_store_eeprom_device_info_fn_lock
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,keyboard_store_eeprom_device_info_device_os
+	bbit1 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,keyboard_store_eeprom_device_info_rgb_tpye
+	rtn
+keyboard_store_eeprom_device_all_info:
+	jam 0,mem_keyboard_device_info_store_flag
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg KEYBOARD_INFO_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data	
+keyboard_store_eeprom_device_info_ble_addr:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 39,temp
+	arg mem_device1_type,rega
+	arg KEYBOARD_BLE_ADDR_EEPROM_OFFECT,regb
+	call iicd_write_protect_eep_data
+	arg 2,temp
+	arg mem_random_addr_increase_count,rega
+	arg KEYBOARD_RANDOM_ADDR_COUNT_EEPROM_OFFSET,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check
+keyboard_store_eeprom_device_info_g24_addr:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 4,temp
+	arg mem_device_24g_addr,rega
+	arg KEYBOARD_G24_ADDR_EEPROM_OFFECT,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check
+keyboard_store_eeprom_device_info_fn_lock:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 5,temp
+	arg mem_keyboard_24g_fn_lock,rega
+	arg KEYBOARD_FN_FLAG_EEPROM_OFFSET,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check	
+keyboard_store_eeprom_device_info_device_os:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 3,temp
+	arg mem_keyboard_bt1_computer_system,rega
+	arg KEYBOARD_COMPUTER_SYSTEM_EEPROM_OFFSET,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check
+keyboard_store_eeprom_device_info_rgb_tpye:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set0 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	arg 4,temp
+	arg mem_backlight_on_flag,rega
+	arg KEYBOARD_RGB_TPYE_OFFSET,regb
+	call iicd_write_protect_eep_data
+	branch keyboard_store_eeprom_device_info_typer_check
+	
+keyboard_store_device_number:
+	arg 1,temp
+	arg mem_device_flag,rega
+	arg KEYBOARD_DEVICE_NUMBER_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data
+
+keyboard_eeprom_init:
+	call iicd_read_init_pin
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	isolate1 KEYBOARD_ENABLE_2K_EEPROM,pdata
+	branch set_eeprom_size_2k,true
+	branch clear_eeprom_size_2k	
+////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+/////////////////////////////////////cb_function//////////////////////////////////////////////////////
+keyboard_cb_fuction:
+	bpatch patch08_1,mem_patch08
+	setarg hid_device_before_lpm_set
+	store 2,mem_cb_before_lpm_sleep
+	setarg keyboard_24g_package_data
+	store 2,mem_cb_24g_transmit_data
+	setarg keyboard_24g_search_dongle
+	store 2,mem_cb_24g_search_receiver
+	setarg keyboard_lpm_before_common
+	store 2,mem_cb_24g_lpm_before
+	setarg keyboard_le
+	store 2,mem_cb_le_process
+	
+	setarg keyboard_process_lpm_before
+	store 2,mem_cb_before_lpm
+	
+	setarg keyboard_priority_bb_event
+	store 2,mem_cb_bb_event_process
+	setarg keyboard_idle
+	store 2,mem_cb_idle_process
+	setarg keyboard_before_hibernate
+	store 2,mem_cb_before_hibernate
+	setarg mouse_le_bb_event_connect_complete
+	store 2,mem_cb_att_write	
+	setarg keyboard_bb_event_timer
+	store 2,mem_cb_event_timer
+	branch hid_device_cb_fuction
+
+/////////////////////////////////////keyboard event/////////////////////////////////////////////////////////////////////
+
+keyboard_priority_bb_event:	
+	bpatch patch08_2,mem_patch08
+	copy regc,pdata	
+
+	beq BT_EVT_LE_START_ENC,keyboard_le_ll_start_encryt
+	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,keyboard_le_conn_param_update_rsp_recieved
+	beq BT_EVT_LE_DISCONNECTED,keyboard_le_bb_disconnected
+
+	beq BT_EVT_LE_CONNECTED,keyboard_le_bb_event_connected
+	beq BT_EVT_BUTTON_LONG_PRESSED,keyboard_bb_event_discovery_btn
+	beq BT_EVT_LE_PAIRING_SUCCESS,mouse_le_pairing_success
+	beq BT_EVT_LE_ENC_INFO,mouse_le_enc_info
+
+	beq BT_EVT_LE_PAIRING_COMPLETE,app_ble_store_reconn_info	
+	beq BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,mouse_le_parse_conn_param_accepted
+
+	beq BT_EVT_24G_PAIRING_COMPLETE,keyboard_24g_pairing_complete
+	beq BT_EVT_24G_ATTEMPT_SUCCESS,keyboard_24g_attempt_success
+	beq BT_EVT_24G_ATTEMPT_FAIL,keyboard_24g_attempt_fail
+
+	rtn
+
+
+/////////////////////////////////////keyboard timer/////////////////////////////////////////////////////////////////////
+
+keyboard_bb_event_timer:
+	bpatch patch08_3,mem_patch08
+	call keyboard_low_voltage_param_set
+	call keyboard_adc_read
+	call keyboard_adc_gpio_set_before_hibernate
+
+	//led
+	call keyboard_low_voltage_led_timer
+	call keyboard_num_capslock_led_on_timer
+	call keyboard_rgb_on_timer
+	call keyboard_device_poweron_timer
+	call keyboard_mode_led_timer
+	call keyboard_device_pair_led_timer
+
+	//key
+	call keyboard_key_press_timer
+	call keyboard_commbination_key_process
+	call keyboard_same_key_long_press_timer
+	
+	// g24
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+	call mouse_24g_long_sleep_param_update_timer
+	call keyboard_24g_repeat_send_data
+	call keyboard_24g_led_status_get_timer
+
+	//le
+	call keyboard_check_discovery_timeout_timer
+	call keyboard_check_direct_timeout_timer
+	call mouse_le_enable_att_list_timer
+	call keyboard_le_battery_updata_timer
+	call mouse_le_send_smp_security_request_timer
+	call keyboard_le_send_conn_param_update_timer	
+	call keyboard_le_auto_recognize_timer
+
+	call mouse_current_mult_update_timer
+	call keyboard_store_information_delay_timer
+	call keyboard_commbination_delay_release_timer
+	call keyboard_usb_updata_timer
+	branch keyboard_check_no_data_timeout_timer
+
+////////////////////////////////////////////////////////////////adc/////////////////////////////////////////////
+keyboard_adc_vol_init:
+	bpatch patch08_4,mem_patch08
+	fetch 1,mem_keyboard_power_type
+	beq KEYBOARD_BATTARY_1V5,keyboard_adc_vol_1v5_init
+	beq KEYBOARD_BATTARY_3V0,keyboard_adc_vol_3v0_init
+	beq KEYBOARD_BATTARY_4V2,keyboard_adc_vol_4v2_init
+keyboard_adc_vol_1v5_init:
+	setarg 0x560094		// 0x0094--1.5V  0x0056--0.9V  0x0060--1.0V  0x006d--1.1V
+	store 3,mem_keyboard_vdd_full_vol
+	setarg 0x006d00
+	istore 3,contw
+	rtn
+keyboard_adc_vol_3v0_init:
+	setarg 0xd4012c		// 0x0094--3.0V  0x00d4--2.1V  0x00dc--2.2V  0x00e6--2.3V
+	store 3,mem_keyboard_vdd_full_vol
+	setarg 0x00e600
+	istore 3,contw
+	rtn
+keyboard_adc_vol_4v2_init:
+	setarg 0x2c01270		// 0x0170--3.7V  0x012c--3.0V  0x0140--3.2V  0x014a--3.3V
+	store 3,mem_keyboard_vdd_full_vol
+	setarg 0x014001
+	istore 3,contw
+	rtn
+
+keyboard_adc_init:
+	call keyboard_adc_gpio_set
+	branch keyboard_low_voltage_param_set
+
+keyboard_adc_gpio_set:
+	fetch 1,mem_adc_config_flag
+	rtnne ADC_CONFIG_GPIO
+	fetch 1,mem_adc_channel
+	call keyboard_channel_set_gpio	
+	copy temp,pdata
+	store 1,mem_adc_channel_gpio
+	set1 GPIO_ACTIVE_BIT,pdata
+	arg gpcfg_input,temp
+	branch gpio_config_function	
+	
+keyboard_channel_set_gpio:
+	arg 18,temp 
+	rtneq 0x6
+	arg 10,temp 	
+	rtneq 0x7
+	arg 9,temp 	
+	rtneq 0x8
+	arg 12,temp 	
+	rtneq 0x9
+	arg 6,temp 	
+	rtneq 0xa
+	arg 20,temp 	
+	rtneq 0xb
+	arg 21,temp 	
+	rtneq 0xc
+	arg 22,temp 	
+	rtneq 0xd
+	arg 13,temp 	
+	rtn
+
+keyboard_adc_read_start:
+	call keyboard_adc_init
+	call enable_adc
+	call vdd_calculate_by_mode
+	div pdata,10
+	call get_div_result
+	store 2,mem_device_vdd_now_vol
+	arg mem_device_vdd_calculate_set,rega
+	branch mouse_adc_bat_percent_lowpower_out
+	
+keyboard_adc_read:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_ADC
+	call keyboard_adc_read_start
+keyboard_adc_data_process:	
+	fetch 1,mem_adc_power_flag
+	bbit1 1,keyboard_power_down
+	bbit0 0,keyboard_adc_no_low_voltage
+	jam 1,mem_device_adc_last_low_voltage_flag
+	branch keyboard_adc_low_voltage
+
+keyboard_adc_low_voltage:
+	arg KEYBOARD_LOW_VOLTAGE_FLAG,queue
+	branch keyboard_enable_function_flag
+keyboard_adc_no_low_voltage:
+	arg KEYBOARD_LOW_VOLTAGE_FLAG,queue
+	call keyboard_disable_function_flag
+	jam 12,mem_keyboard_adc_low_volatage_led_timer_count
+	fetch 1,mem_device_adc_last_low_voltage_flag
+	rtn blank
+	jam 0,mem_device_adc_last_low_voltage_flag
+	branch keyboard_low_voltage_led_off
+
+keyboard_adc_gpio_set_before_hibernate:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_ADC
+	branch mouse_adc_gpio_set_before_hibernate+2
+
+keyboard_low_voltage_param_set:
+	fetch 6,mem_keyboard_vdd_full_vol
+	store 6,mem_device_vdd_full_vol
+	fetch 1,mem_device_adc_last_low_voltage_flag
+	branch keyboard_low_voltage_param_reset,blank
+	fetch 2,mem_keyboard_vdd_low_vol
+	increase 5,pdata
+	store 2,mem_device_vdd_low_vol
+	rtn	
+keyboard_low_voltage_param_reset:
+	fetch 2,mem_keyboard_vdd_low_vol
+	store 2,mem_device_vdd_low_vol
+	rtn	
+	
+keyboard_low_vol_mult_set:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_low_vol_mult_ble_set
+	call g24_interval_param_8ms
+	setarg 0x5d4800
+	store 4,mem_24g_long_sleep_set1
+	fetch 1,mem_adc_power_flag
+	rtnbit0 0
+	branch mouse_24g_long_sleep_set
+keyboard_low_vol_mult_ble_set:
+	setarg 160			// 320ms
+	call keyboard_mult_auto_get
+	fetch 1,mem_adc_power_flag
+	rtnbit0 0
+	setarg 80			// 100ms
+	branch keyboard_mult_auto_get
+
+keyboard_mult_auto_get:
+	fetcht 2,mem_le_interval_min
+	idiv temp
+	call get_div_result
+	store 1,mem_lpm_mult_init	
+	fetch 1,mem_mouse_current_mult_timer
+	branch mouse_current_mult_reinit,blank
+	rtn
+
+
+////////////////////////////////////////////////////adc end///////////////////////////////////////////////
+
+///////////////////////////////////////////////////led///////////////////////////////////////////////////////
+keyboard_low_voltage_led_timer:
+	jam 0,mem_keyboard_low_volatage_led_blink_new_data_enable
+	fetch 2,mem_device_discovery_timer
+	nrtn blank
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	fetch 2,mem_24g_reconn_timeout
+	nrtn blank
+	fetch 1,mem_keyboard_device_poweron_timer
+	nrtn blank
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_ADC
+	rtnbit0 KEYBOARD_ENABLE_LOW_LED
+	rtnbit0 KEYBOARD_LOW_VOLTAGE_FLAG
+	bbit1 KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND,keyboard_low_voltage_led_blink_new_data
+	bpatch patch08_5,mem_patch08
+	fetch 1,mem_keyboard_adc_low_volatage_led_timer_count
+	increase 1,pdata
+	store 1,mem_keyboard_adc_low_volatage_led_timer_count
+	sub pdata,20,null
+	ncall keyboard_adc_low_volatage_led_timer_count_clean,positive
+	beq 2,keyboard_low_voltage_led_on
+	beq 4,keyboard_low_voltage_led_off
+	beq 6,keyboard_low_voltage_led_on
+	beq 8,keyboard_low_voltage_led_off
+	rtn
+keyboard_adc_low_volatage_led_timer_count_clean:
+	jam 1,mem_keyboard_adc_low_volatage_led_timer_count
+	branch keyboard_low_voltage_led_off
+	
+keyboard_low_voltage_led_blink_new_data:
+	fetch 2,mem_device_no_data_timeout
+	fetcht 2,mem_device_no_data_timer
+	isub temp,temp
+	fetch 2,mem_adc_low_volatage_led_blink_timer
+	isub temp,null
+	nbranch keyboard_low_voltage_led_off,positive
+	jam 1,mem_keyboard_low_volatage_led_blink_new_data_enable
+	fetch 1,mem_keyboard_low_volatage_led_flag
+	increase 1,pdata
+	store 1,mem_keyboard_low_volatage_led_flag
+	fetcht 1,mem_keyboard_low_volatage_led_blink_count
+	increase 1,temp
+	isub temp,null
+	nbranch keyboard_low_voltage_led_on,positive
+	call keyboard_low_voltage_led_off
+	fetch 1,mem_keyboard_low_volatage_led_flag
+	fetcht 1,mem_keyboard_low_volatage_led_blink_count
+	mul32 temp,2,temp
+	isub temp,null
+	nrtn zero
+	jam 0,mem_keyboard_low_volatage_led_flag
+	rtn
+
+
+keyboard_device_poweron_timer:
+	fetch 1,mem_keyboard_device_poweron_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_device_poweron_timer
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_030_POWER_LED,keyboard_device_poweron_030_led
+	branch keyboard_device_led_off,blank
+	branch keyboard_device_led_on
+
+keyboard_device_poweron_030_led:
+	branch keyboard_power_led_off,blank
+keyboard_power_led_on:
+	fetcht 1,mem_keyboard_power_led_gpio
+	branch gpio_out_active
+keyboard_power_led_off:
+	fetcht 1,mem_keyboard_power_led_gpio
+	branch gpio_out_inactive
+
+keyboard_mode_led_timer:
+	fetch 2,mem_device_no_data_timer
+	rtn blank
+	fetch 1,mem_keyboard_mode_led_on_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_mode_led_on_timer
+	bbit1 0,keyboard_device_led_on
+	branch keyboard_device_led_off
+
+
+keyboard_device_pair_led_timer:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_device_24g_pair_led
+	fetch 2,mem_device_discovery_timer
+	rtn blank
+	branch keyboard_device_pair_led
+
+keyboard_device_24g_pair_led:
+	fetch 2,mem_24g_pair_timeout
+	rtn blank
+keyboard_device_pair_led:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	isolate0 KEYBOARD_ENABLE_030_POWER_LED,pdata
+	call keyboard_device_clear_power_timer,true
+	fetch 1,mem_keyboard_pair_led_flag
+	increase 1,pdata
+	store 1,mem_keyboard_pair_led_flag
+	fetcht 1,mem_keyboard_pair_led_blink_count
+	increase 1,temp
+	isub temp,null
+	nbranch keyboard_device_led_on,positive
+	call keyboard_device_led_off
+	fetch 1,mem_keyboard_pair_led_flag
+	fetcht 1,mem_keyboard_pair_led_blink_count
+	mul32 temp,2,temp
+	isub temp,null
+	nrtn zero
+	jam 0,mem_keyboard_pair_led_flag
+	rtn
+
+keyboard_device_clear_power_timer:
+	jam 0,mem_keyboard_device_poweron_timer
+	rtn
+
+keyboard_device_led_all_off:
+	bpatch patch08_6,mem_patch08
+	call keyboard_power_led_off	
+	call keyboard_device_led_off
+	call keyboard_numlock_led_off
+	branch keyboard_capslock_led_off
+
+keyboard_device_led_off:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_device_24g_led_off
+	beq MODE_BT_DEVICE1,keyboard_device_bt1_led_off
+	beq MODE_BT_DEVICE2,keyboard_device_bt2_led_off
+	beq MODE_BT_DEVICE3,keyboard_device_bt3_led_off
+	rtn
+
+keyboard_device_led_on:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_device_24g_led_on
+	beq MODE_BT_DEVICE1,keyboard_device_bt1_led_on
+	beq MODE_BT_DEVICE2,keyboard_device_bt2_led_on
+	beq MODE_BT_DEVICE3,keyboard_device_bt3_led_on
+	rtn	
+	
+keyboard_device_24g_led_off:
+	fetcht 1,mem_keyboard_24g_led_gpio
+	branch gpio_out_inactive
+
+keyboard_device_bt1_led_off:
+	fetcht 1,mem_keyboard_bt1_led_gpio
+	branch gpio_out_inactive
+	
+keyboard_device_bt2_led_off:
+	fetcht 1,mem_keyboard_bt2_led_gpio
+	branch gpio_out_inactive
+	
+keyboard_device_bt3_led_off:
+	fetcht 1,mem_keyboard_bt3_led_gpio
+	branch gpio_out_inactive	
+
+keyboard_device_24g_led_on:
+	fetcht 1,mem_keyboard_24g_led_gpio
+	branch gpio_out_active
+
+keyboard_device_bt1_led_on:
+	fetcht 1,mem_keyboard_bt1_led_gpio
+	branch gpio_out_active
+	
+keyboard_device_bt2_led_on:
+	fetcht 1,mem_keyboard_bt2_led_gpio
+	branch gpio_out_active
+	
+keyboard_device_bt3_led_on:
+	fetcht 1,mem_keyboard_bt3_led_gpio
+	branch gpio_out_active
+	
+keyboard_low_voltage_led_on:
+	fetcht 1,mem_keyboard_low_voltage_alarm_gpio
+	branch gpio_out_active
+	
+keyboard_low_voltage_led_off:
+	fetcht 1,mem_keyboard_low_voltage_alarm_gpio
+	branch gpio_out_inactive	
+
+
+keyboard_num_capslock_led_on_timer:
+	fetch 1,mem_usb_vdd_status_current
+	beq USB_INTERFACE_INSERT,keyboard_usb_led_check
+	fetch 2,mem_device_no_data_timer
+	rtn blank
+	fetch 2,mem_device_no_data_timeout
+	fetcht 2,mem_device_no_data_timer
+	isub temp,temp
+	fetch 2,mem_keyboard_num_caps_scoll_led_on_timer
+	isub temp,pdata
+	branch keyboard_num_cap_scoll_led_check,positive
+	call keyboard_numlock_led_off
+	call keyboard_scrolllock_led_off
+	branch keyboard_capslock_led_off
+
+keyboard_usb_led_check:
+	fetch 1,mem_24g_led_status
+	store 1,mem_keyboard_led_status
+	branch keyboard_num_cap_scoll_led_check
+	
+keyboard_num_cap_scoll_led_check:
+	call keyboard_numlock_led_check_on
+	call keyboard_scrolllock_led_check_on
+	branch keyboard_capslock_led_check_on
+
+keyboard_numlock_led_check_on:
+	fetch 1,mem_keyboard_led_status
+	bbit0 KB_PC_KEYSEL_NUMLOCK,keyboard_numlock_led_off
+keyboard_numlock_led_on:	
+	fetcht 1,mem_keyboard_num_led_gpio
+	branch gpio_out_active
+keyboard_numlock_led_off:
+	fetcht 1,mem_keyboard_num_led_gpio
+	branch gpio_out_inactive
+
+keyboard_capslock_led_check_on:
+	fetch 1,mem_keyboard_led_status
+	bbit0 KB_PC_KEYSEL_CAPSLOCK,keyboard_capslock_led_off
+	fetcht 1,mem_keyboard_caps_led_gpio
+	branch gpio_out_active
+keyboard_capslock_led_off:
+	fetcht 1,mem_keyboard_caps_led_gpio
+	branch gpio_out_inactive
+
+keyboard_scrolllock_led_check_on:
+	fetch 1,mem_keyboard_led_status
+	bbit0 KB_PC_KEYSEL_SCROLLLOCK,keyboard_scrolllock_led_off
+	fetcht 1,mem_keyboard_scroll_led_gpio
+	branch gpio_out_active
+keyboard_scrolllock_led_off:
+	fetcht 1,mem_keyboard_scroll_led_gpio
+	branch gpio_out_inactive
+
+keyboard_rgb_on_timer:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	fetch 2,mem_device_no_data_timer
+	rtn blank
+	fetch 2,mem_device_no_data_timeout
+	fetcht 2,mem_device_no_data_timer
+	isub temp,temp
+	fetch 2,mem_keyboard_rgb_on_timer
+	isub temp,pdata
+	rtn positive
+	jam 0,mem_backlight_on_flag
+	branch keyboard_rgb_off
+	
+////////////////////////////////////////backlight pwm//////////////////////////////////////////////////////////
+keyboard_pwm_init:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	arg 0,rega 	//sys clk 12mhz
+	call pwm_init
+	fetch 6,mem_rgb_pwm_conf
+	store 6,mem_pdatatemp
+	call pwm_out_set
+	fetch 2,mem_rgb_pwm_conf
+	branch pwm_disable
+
+keyboard_rgb_pwm_disable:
+	fetch 1,mem_keyboard_led_r_gpio
+	call pwm_disable
+	fetch 1,mem_keyboard_led_g_gpio
+	call pwm_disable
+	fetch 1,mem_keyboard_led_b_gpio
+	branch pwm_disable
+
+keyboard_rgb_pwm_set:	
+	fetch 6,mem_rgb_pwm_conf
+	store 6,mem_pdatatemp
+	branch pwm_out_set	
+
+keyboard_load_rgb:
+	bpatch patch08_7,mem_patch08
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	fetch 1,mem_backlight_on_flag
+	call keyboard_rgb_mode_switch_next
+	fetch 1,mem_backlight_on_type
+	branch keyboard_rgb_on_type_switch_next	
+
+keyboard_rgb_mode_switch:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,pdata
+	store 1,mem_keyboard_device_info_store_flag	
+	call keyboard_store_eeprom_or_flash
+	jam 0,mem_backlight_breathe_type
+	jam 0,mem_rgb_pwm_breathe_flag
+	jam 10,mem_rgb_pwm_conf+5
+	fetch 1,mem_backlight_on_flag
+	increase 1,pdata
+keyboard_rgb_mode_switch_next:	
+	sub pdata,RGB_BACKLIGHT_STATUS_BREATHE,null
+	ncall set_pdata_0,positive
+	store 1,mem_backlight_on_flag
+	rtn
+	
+keyboard_rgb_on_type_switch:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	fetch 1,mem_backlight_on_flag
+	rtnne RGB_BACKLIGHT_STATUS_ON
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_RGB_TYPE,pdata
+	store 1,mem_keyboard_device_info_store_flag	
+	call keyboard_store_eeprom_or_flash
+	fetch 1,mem_backlight_on_type
+	increase 1,pdata
+keyboard_rgb_on_type_switch_next:	
+	sub pdata,RGB_BACKLIGHT_ON_TPYE_WHITE,null
+	ncall set_pdata_0,positive
+	store 1,mem_backlight_on_type
+	rtn
+
+keyboard_rgb_process:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	fetcht 4,mem_ui_check_timer_setup
+	copy clkn_bt,pdata
+	isub temp,pdata
+	fetcht 2,mem_customize_timer_setup		// * 0.3125ms
+	idiv temp
+	call wait_div_end
+	quotient pdata
+	rtn blank
+	copy clkn_bt,temp
+	storet 4,mem_ui_check_timer_setup
+	fetch 1,mem_backlight_on_flag
+	beq RGB_BACKLIGHT_STATUS_BREATHE,keyboard_rbg_breathe_process
+	beq RGB_BACKLIGHT_STATUS_ON,keyboard_rgb_on_process
+	jam 0,mem_backlight_on_flag
+keyboard_rgb_off:
+	bpatch patch09_0,mem_patch09
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_BACKLIGHT
+	call keyboard_rgb_pwm_disable
+	jam 0,mem_rgb_on_color_temp
+	branch keyboard_rgb_led_control
+
+keyboard_rbg_breathe_process:
+	fetch 1,mem_rgb_pwm_breathe_flag
+	branch keyboard_rbg_breathe_up,blank
+	fetch 1,mem_rgb_pwm_conf+5
+	sub pdata,5,null
+	branch keyboard_rbg_breathe_color_switch,positive
+	increase -1,pdata
+	store 1,mem_rgb_pwm_conf+5
+	branch keyboard_rgb_pwm
+
+keyboard_rbg_breathe_up:
+	fetch 1,mem_rgb_pwm_conf+5
+	increase 1,pdata
+	store 1,mem_rgb_pwm_conf+5
+	call keyboard_rgb_pwm
+	fetch 1,mem_rgb_pwm_conf+5
+	sub pdata,90,null
+	rtn positive
+	jam 1,mem_rgb_pwm_breathe_flag
+	rtn
+
+keyboard_rbg_breathe_color_switch:
+	jam 0,mem_rgb_pwm_breathe_flag
+	fetch 1,mem_backlight_breathe_type
+	increase 1,pdata
+	sub pdata,RGB_BACKLIGHT_BREATHE_TPYE_WHITE,null
+	ncall set_pdata_0,positive
+	store 1,mem_backlight_breathe_type
+	rtn
+
+keyboard_rgb_pwm:
+	call keyboard_pwm_init
+	call keyboard_rgb_off+4
+	branch keyboard_breathe_tpye_select	
+
+keyboard_breathe_tpye_select:
+	fetch 1,mem_backlight_breathe_type
+	beq RGB_BACKLIGHT_BREATHE_TPYE_RED,keyboard_breathe_tpye_red
+	beq RGB_BACKLIGHT_BREATHE_TPYE_GREEN,keyboard_breathe_tpye_green
+	beq RGB_BACKLIGHT_BREATHE_TPYE_BLUE,keyboard_breathe_tpye_blue
+	beq RGB_BACKLIGHT_BREATHE_TPYE_CYAN,keyboard_breathe_tpye_cyan
+	beq RGB_BACKLIGHT_BREATHE_TPYE_ORANGE,keyboard_breathe_tpye_orange
+	beq RGB_BACKLIGHT_BREATHE_TPYE_PURPLE,keyboard_breathe_tpye_purple
+	beq RGB_BACKLIGHT_BREATHE_TPYE_WHITE,keyboard_breathe_tpye_white
+keyboard_breathe_tpye_red:
+	fetch 1,mem_keyboard_led_r_gpio
+	store 1,mem_rgb_pwm_conf
+	setarg 0x01
+	store 1,mem_rgb_pwm_conf+1
+	branch keyboard_rgb_pwm_set
+
+keyboard_breathe_tpye_green:
+	fetch 1,mem_keyboard_led_g_gpio
+	store 1,mem_rgb_pwm_conf
+	setarg 0x02
+	store 1,mem_rgb_pwm_conf+1
+	branch keyboard_rgb_pwm_set
+
+keyboard_breathe_tpye_blue:
+	fetch 1,mem_keyboard_led_b_gpio
+	store 1,mem_rgb_pwm_conf
+	setarg 0x04
+	store 1,mem_rgb_pwm_conf+1
+	branch keyboard_rgb_pwm_set
+
+keyboard_breathe_tpye_cyan:
+	call keyboard_breathe_tpye_green
+	branch keyboard_breathe_tpye_blue
+
+keyboard_breathe_tpye_orange:
+	call keyboard_breathe_tpye_red
+	branch keyboard_breathe_tpye_green
+	
+keyboard_breathe_tpye_purple:
+	call keyboard_breathe_tpye_red
+	branch keyboard_breathe_tpye_blue
+
+keyboard_breathe_tpye_white:
+	call keyboard_breathe_tpye_red
+	call keyboard_breathe_tpye_green
+	branch keyboard_breathe_tpye_blue
+
+keyboard_rgb_on_process:
+	call keyboard_rgb_pwm_disable
+	fetch 1,mem_backlight_on_type
+	sub pdata,RGB_BACKLIGHT_ON_TPYE_WHITE,null
+	ncall set_pdata_0,positive
+	store 1,mem_backlight_on_type
+	arg mem_rgb_on_color,contr
+	iadd contr,contr
+	ifetch 1,contr
+	store 1,mem_rgb_on_color_temp
+	branch keyboard_rgb_led_control
+
+
+keyboard_rgb_led_control:
+	fetch 1,mem_rgb_on_color_temp
+	isolate1 KEYBOARD_RGB_RED_STATUS,pdata
+	call keyboard_rgb_red_led_on,true
+	ncall keyboard_rgb_red_led_off,true
+	fetch 1,mem_rgb_on_color_temp
+	isolate1 KEYBOARD_RGB_GREEN_STATUS,pdata
+	call keyboard_rgb_green_led_on,true
+	ncall keyboard_rgb_green_led_off,true
+	fetch 1,mem_rgb_on_color_temp
+	isolate1 KEYBOARD_RGB_BLUE_STATUS,pdata
+	call keyboard_rgb_blue_led_on,true
+	ncall keyboard_rgb_blue_led_off,true
+	rtn
+	
+keyboard_rgb_red_led_on:
+	fetcht 1,mem_keyboard_led_r_gpio
+	branch gpio_out_inactive
+
+keyboard_rgb_red_led_off:
+	fetcht 1,mem_keyboard_led_r_gpio
+	branch gpio_out_active
+
+keyboard_rgb_green_led_on:
+	fetcht 1,mem_keyboard_led_g_gpio
+	branch gpio_out_inactive
+
+keyboard_rgb_green_led_off:
+	fetcht 1,mem_keyboard_led_g_gpio
+	branch gpio_out_active
+
+keyboard_rgb_blue_led_on:
+	fetcht 1,mem_keyboard_led_b_gpio
+	branch gpio_out_inactive
+
+keyboard_rgb_blue_led_off:
+	fetcht 1,mem_keyboard_led_b_gpio
+	branch gpio_out_active	
+
+////////////////////////////////////////////////////led end////////////////////////////////////////////////////////
+
+///////////////////////////event timer///////////////////////////////////////////////////////////////////////////
+keyboard_key_press_timer:
+	fetch 1,mem_keyboard_switch_device_flag
+	bbit1 KEYBOARD_FLAG_G24_DEVICE_BUTTON,keyboard_device_select_g24_press_timer
+	call keyboard_device_select_g24_nopress_timer
+	fetch 1,mem_keyboard_switch_device_flag
+	bbit1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,keyboard_device_select_bt_press_timer
+	branch keyboard_device_select_bt_nopress_timer
+
+keyboard_device_select_g24_press_timer:
+	fetch 1,mem_keyboard_switch_g24_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_g24_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_g24_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	call keyboard_stop_bluetooth_mode
+	branch keyboard_24g_start_pair_mode
+
+keyboard_device_select_g24_nopress_timer:
+	jam 0,mem_keyboard_switch_g24_press_timer
+	fetch 1,mem_keyboard_switch_g24_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_g24_enable
+	call keyboard_store_device_number
+	branch soft_reset_chip
+
+keyboard_device_select_bt_press_timer:
+	fetch 1,mem_keyboard_switch_bt_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_bt_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_bt_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	call hid_device_le_send_empty_packet
+	branch keyboard_long_button_bt_discovery
+
+keyboard_device_select_bt_nopress_timer:
+	jam 0,mem_keyboard_switch_bt_press_timer
+	fetch 1,mem_keyboard_switch_bt_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_bt_enable
+	call keyboard_store_device_number
+	branch soft_reset_chip
+
+keyboard_commbination_key_process:
+	fetch 1,mem_commbination_key_statue
+	rtnne COMMBINATION_KEY_STATE_DOWN	
+	arg mem_combination_ui_button_count,regc
+	arg keyboard_commbination_key_press_type_check,regb
+	branch timer_single_step
+
+keyboard_commbination_key_press_type_check:
+	fetch 1,mem_keyboard_commbination_press_type
+	beq KEYBOARD_COMMBINATION_PRESS_TYPE_24G_PAIR,keyboard_24g_start_pair_mode
+	beq KEYBOARD_COMMBINATION_PRESS_TYPE_BT_PAIR,keyboard_long_button_bt_discovery
+	beq KEYBOARD_COMMBINATION_PRESS_TYPE_BT_FAST_CONN,mouse_bluetooth_fast_conn_init
+	rtn
+
+
+keyboard_check_discovery_timeout_timer:
+	arg mem_device_discovery_timer,regc
+	arg keyboard_check_discovery_timeout,regb
+	branch timer_single_step_2B
+
+keyboard_check_discovery_timeout:
+	call keyboard_stop_discovery
+	branch keyboard_power_down	
+
+keyboard_store_information_delay_timer:
+	arg mem_store_information_delay_timer,regc
+	arg keyboard_store_device_info,regb
+	branch timer_single_step
+	
+keyboard_le_auto_recognize_timer:
+	arg mem_le_start_auto_reco_timer,regc
+	arg keyboard_le_send_att_find_by_type_value_request_ancs,regb
+	branch timer_single_step
+
+keyboard_check_direct_timeout_timer:	
+	arg mem_device_direct_timer,regc
+	arg keyboard_check_direct_timeout,regb
+	call timer_single_step
+	fetch 1,mem_device_direct_timer
+	beq 1,app_ble_stop_direct_adv
+	rtn
+
+keyboard_check_direct_timeout:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY,keyboard_start_discovery
+	branch mouse_app_enter_hibernate
+
+
+keyboard_le_battery_updata_timer:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL
+	arg mem_le_battery_level_updata_timer,regc
+	arg mouse_le_battery_level_updata,regb
+	branch timer_single_step
+
+keyboard_le_send_conn_param_update_timer:
+	arg mem_keyboard_le_send_conn_param_update_timer,regc
+	arg mouse_updata_le_param,regb
+	branch timer_single_step
+
+keyboard_24g_repeat_send_data:
+	fetch 1,mem_24g_repeat_send_flag
+	rtn blank
+	jam 0,mem_24g_repeat_send_flag
+	fetch 1,mem_same_keyvalue_timerout_flag
+	nrtn blank
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	jam 1,mem_keyboard_data_change_flag
+	call g24_txdata_prep
+	branch keyboard_g24_transmit_process
+
+keyboard_24g_led_status_get_timer:
+	arg mem_keyboard_led_status_get_timer,regc
+	arg keyboard_24g_led_status_clear,regb
+	branch timer_single_step
+
+keyboard_24g_led_status_clear:
+	jam 0,mem_keyboard_led_status_get
+	rtn
+
+
+keyboard_same_key_long_press_timer:
+	arg mem_same_keyvalue_timer,regc
+	arg keyboard_long_press_timerout,regb
+	branch timer_single_step_2B
+
+keyboard_long_press_timerout:
+	jam 1,mem_same_keyvalue_timerout_flag	
+	branch keyboard_power_down
+
+keyboard_commbination_delay_release_timer:	
+	arg mem_keyboard_commbination_control_key_delay_release_timer,regc
+	arg keyboard_commbination_key_null_set,regb
+	branch timer_single_step
+
+keyboard_usb_updata_timer:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_USB
+	fetch 1,mem_usb_wait_updata_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_usb_wait_updata_timer
+	nrtn blank
+	jam 1,mem_lpm_mode
+	branch keyboard_power_down
+
+keyboard_check_no_data_timeout_timer:
+	fetch 1,mem_usb_vdd_status_current
+	rtneq USB_INTERFACE_INSERT
+	arg mem_device_no_data_timer,regc
+	arg keyboard_check_no_data_timeout,regb
+	branch timer_single_step_2B
+
+keyboard_check_no_data_timeout:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_24g_hibernate_set
+	branch mouse_disconnect
+	
+/////////////////////////////////////keyboard process///////////////////////////////////////////////////////////////////////////////
+keyboard_idle:
+	bpatch patch09_1,mem_patch09
+	call kscan_dispatch
+	call keyboard_rgb_process
+	call keyboard_usb_isr
+	call keyboard_usb_mode
+	branch keyboard_check_select_device_by_switch
+
+keyboard_check_select_device_by_switch:
+	bpatch patch09_2,mem_patch09
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD,keyboard_check_select_device_by_switch_vdd_check
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_VDD,keyboard_check_select_device_by_switch_vdd_check
+	fetcht 1,mem_device_switch_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch keyboard_check_select_device_by_switch_gnd,true
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND,keyboard_select_btdevice
+	branch keyboard_check_select_24g_device
+
+keyboard_check_select_device_by_switch_vdd_check:
+	fetcht 1,mem_device_switch_gpio
+	call device_gpio_config_input_pd
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	nbranch keyboard_check_select_device_by_switch_vdd,true
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD,keyboard_select_btdevice
+	branch keyboard_check_select_24g_device
+
+keyboard_check_select_device_by_switch_vdd:
+	fetcht 1,mem_device_switch_gpio
+	call device_gpio_config_input_pu
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD,keyboard_check_select_24g_device
+	branch keyboard_select_btdevice
+
+keyboard_check_select_device_by_switch_gnd:
+	fetcht 1,mem_device_switch_gpio
+	call device_gpio_config_input_pd
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND,keyboard_check_select_24g_device
+	branch keyboard_select_btdevice
+
+keyboard_select_btdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	fetch 1,mem_keyboard_switch_count_temp
+	nbranch soft_reset_chip,blank
+	branch keyboard_stop_bluetooth_mode
+keyboard_check_select_24g_device:	
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+	fetch 1,mem_keyboard_switch_count_temp
+	nbranch soft_reset_chip,blank
+	branch keyboard_24g_stop
+
+keyboard_start_work:
+	bpatch patch09_3,mem_patch09
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_ADC,keyboard_start_work_next
+	call keyboard_adc_read_start
+	fetch 2,mem_device_vdd_empty_vol
+	div pdata,2
+	call get_div_result
+	fetcht 2,mem_device_vdd_now_vol
+	isub temp,null
+	branch keyboard_start_work,positive 	// now vol < empty vol/2  check again
+	fetch 1,mem_adc_power_flag
+	bbit1 1,keyboard_power_down	
+keyboard_start_work_next:
+	fetch 1,mem_keyboard_pairing_type
+	call keyboard_enable_bt_button_pairing,blank
+	fetch 1,mem_keyboard_bt_button_flag
+	nrtn blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_24g_start_mode
+	call mouse_bluetooth_fast_conn_disable
+	beq MODE_BT_DEVICE1,keyboard_start_ble1_reconnect
+	beq MODE_BT_DEVICE2,keyboard_start_ble2_reconnect
+	beq MODE_BT_DEVICE3,keyboard_start_ble3_reconnect
+keyboard_start_ble1_reconnect:	
+	fetch 6,mem_device1_addr
+keyboard_start_ble_reconnect:	
+	fetcht 6,mem_device_compare_addr
+	isub temp,null
+	branch mouse_bluetooth_fast_conn_init,zero
+	branch mouse_start_reconnect_device
+
+keyboard_start_ble2_reconnect:
+	fetch 6,mem_device2_addr
+	branch keyboard_start_ble_reconnect
+
+keyboard_start_ble3_reconnect:
+	fetch 6,mem_device3_addr
+	branch keyboard_start_ble_reconnect
+
+keyboard_24g_start_mode:
+	call keyboard_wakeup_from_power_check	// wake from hibernate :enble user
+	branch mouse_24g_reconn_dongle_start,user
+	branch mouse_24g_reconn_general_dongle
+
+/***********************************kscan and value process***********************************************/
+kscan_dispatch:
+	bpatch patch09_4,mem_patch09
+	call keyboard_keyscan
+	call keyboard_key_process
+	branch keyboard_special_key_check
+
+keyboard_keyscan:
+	call keyboard_gpio_init
+	call keyboard_stb_state_low							// exmcu wake up
+	setarg 0
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	arg mem_keyscan_value_current,contr
+	arg mem_keyscan_value_check,contw
+	arg 20,loopcnt
+	call memcpy
+	setarg mem_keyscan_value_current
+	store 2,mem_keyscan_value_ptr
+	setarg mem_keyscan_exmcu_value
+	store 2,mem_keyscan_exmcu_value_ptr
+	call keyboard_stb_state_high	
+	call keyboard_clk_input
+keyboard_keyscan_exmcu_start_check:
+	fetch 2,mem_keyscan_exmcu_wait_wake_count
+	increase 1,pdata
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	bbit1 9,keyboard_keyscan 								// 953us restart
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu wake done
+	call gpio_get_bit
+	nbranch keyboard_keyscan_exmcu_start_check,true
+	call keyboard_stb_state_low
+keyboard_keyscan_wait_wake_next:	
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu clk done
+	call gpio_get_bit
+	branch keyboard_keyscan_wait_wake_next,true	
+	
+	call keyboard_keyscan_get_exmcu_value
+	call keyboard_keyscan_get_mcu_value
+	call keyboard_clk_input
+	call keyboard_stb_state_high							// exmcu sleep
+keyboard_keyscan_copy_value:
+	fetch 2,mem_kb_excol_ptr
+	copy pdata,regb
+	jam 0,mem_keyscan_col_loop_count
+keyboard_compare_col_excol_gpio_loop:		// loop 12 times
+	ifetcht 1,regb
+	fetch 2,mem_kb_col_ptr
+	copy pdata,rega
+	copy rega,regc
+	arg 20,loopcnt
+keyboard_compare_col_gpio_loop:
+	ifetch 1,rega
+	isub temp,null
+	branch keyboard_copy_value_exmcu_to_mcu,zero
+	increase 1,rega
+	loop keyboard_compare_col_gpio_loop
+keyboard_compare_col_excol_gpio_loop_next:	
+	increase 1,regb
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	sub pdata,11,null
+	branch keyboard_compare_col_excol_gpio_loop,positive
+	call keyboard_gpio_pu_idle
+	branch keyboard_key_row_init
+	
+keyboard_copy_value_exmcu_to_mcu:
+	fetch 2,mem_keyscan_value_ptr
+	copy pdata,contw
+	copy rega,pdata	
+	isub regc,pdata 
+	iadd contw,contw							// offset = rega-regc
+	fetch 2,mem_keyscan_exmcu_value_ptr
+	copy pdata,regc
+	fetch 1,mem_keyscan_col_loop_count
+	iadd regc,regc	
+	ifetch 1, regc								// offset = mem_keyscan_col_loop_count
+	istore 1,contw
+	branch keyboard_compare_col_excol_gpio_loop_next
+	
+keyboard_keyscan_get_exmcu_value:	//	8*12 times
+	jam 0,mem_keyscan_col_loop_count
+keyboard_keyscan_exmcu_start_loop:	// clk:0 1 0 1 0 1 0 1 0 1 0 1
+	call keyboard_clk_state_low
+	call keyboard_keyscan_exmcu_get_col_value
+	call keyboard_clk_state_high
+	call keyboard_keyscan_exmcu_get_col_value
+	sub pdata,11,null
+	branch keyboard_keyscan_exmcu_start_loop,positive
+	branch keyboard_clk_state_low
+	
+	
+keyboard_keyscan_exmcu_get_col_value:
+	jam 0,mem_keyscan_value_temp
+	call keyboard_keyscan_get_col_value
+	fetch 2,mem_keyscan_exmcu_value_ptr
+keyboard_keyscan_value_store:
+	copy  pdata,contw
+	fetch 1,mem_keyscan_col_loop_count
+	iadd contw,contw
+	fetch 1,mem_keyscan_value_temp
+	istore 1,contw
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	rtn	
+
+	
+keyboard_keyscan_get_mcu_value: 
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	jam 0,mem_keyscan_col_loop_count
+keyboard_keyscan_mcu_start:		// loop 20 times
+	jam 0,mem_keyscan_value_temp
+	ifetcht 1,regb
+	isolate1 7,temp								// exmcu gpio
+	branch keyboard_keyscan_mcu_start_loop,true	
+	call gpio_out_active
+	call keyboard_keyscan_get_col_value
+	ifetcht 1,regb
+	call gpio_out_inactive
+	ifetcht 1,regb
+	call device_gpio_config_input_pu
+keyboard_keyscan_mcu_start_loop:
+	increase 1,regb
+	fetch 2,mem_keyscan_value_ptr	
+	call keyboard_keyscan_value_store
+	sub pdata,19,null						//sub pdata,19,null
+	branch keyboard_keyscan_mcu_start,positive
+	rtn	
+
+	
+keyboard_keyscan_get_col_value:
+	bpatch patch09_5,mem_patch09
+	nop 120
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regc
+	arg 8,loopcnt
+keyboard_keyscan_get_col_value_loop:		// loop 8 times
+	ifetcht 1,regc
+	call gpio_get_bit
+	fetch 1,mem_keyscan_value_temp
+	rshift pdata,pdata
+	setflag true,7,pdata
+	store 1,mem_keyscan_value_temp
+	increase 1,regc
+	loop keyboard_keyscan_get_col_value_loop
+	rtn
+
+keyboard_clk_state_high:
+	fetcht 1,mem_mcu_clk_gpio
+	branch gpio_out_inactive
+
+keyboard_clk_state_low:
+	fetcht 1,mem_mcu_clk_gpio
+	branch gpio_out_active
+
+keyboard_clk_input:
+	fetcht 1,mem_mcu_clk_gpio
+	branch gpio_config_input
+	
+keyboard_stb_state_high:
+	fetcht 1,mem_mcu_stb_gpio
+	branch gpio_out_inactive
+
+keyboard_stb_state_low:
+	fetcht 1,mem_mcu_stb_gpio
+	branch gpio_out_active
+/***********************************kscan process***********************************************/
+
+
+/**********************************key value process*******************************/
+// same key press check	
+keyboard_press_change_or_no_key:
+	jam 0,mem_same_keyvalue_timerout_flag
+	fetch 2,mem_same_keyvalue_timer_init
+	store 2,mem_same_keyvalue_timer
+	rtn
+
+keyboard_key_process:
+	// key deshake
+	arg mem_keyscan_value_current,rega
+	arg mem_keyscan_value_check,regb
+	arg 20,loopcnt
+	call string_compare
+	nbranch keyboard_press_change_or_no_key,zero	
+	call keyboard_keyscan_value_current_zero_check
+	call keyboard_press_change_or_no_key,blank
+
+	call keyboard_ghost_key_check
+	fetch 1,mem_keyboard_ghost_flag
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_key_step
+	rtneq CAMMBINATION_KEY_PRESS
+	rtneq CAMMBINATION_KEY_HOLD
+	rtneq CAMMBINATION_KEY_WAIT_RELEASE
+
+	// keyvalue get from map,and in or out process
+	jam 0,mem_keyscan_col_loop_count
+	arg mem_keyscan_value_current,rega
+	arg mem_keyscan_value_old,regb
+keyboard_keyvalue_process:		// loop 20 times
+	ifetcht 1,rega
+	ifetch 1,regb
+	ixor  temp,pdata
+	branch keyboard_keyvalue_process_loop,blank
+	store 1,mem_keyscan_value_temp
+	storet 1,mem_keyboard_press_flag_temp
+	istoret 1,regb
+	jam 1,mem_keyboard_data_change_flag
+	jam 0,mem_keyboard_keyvalue_bit_loop_count
+keyboard_keyvalue_change:			// loop 8 times
+	fetch 1,mem_keyscan_value_temp
+	bbit0 0,keyboard_keyvalue_change_loop
+	fetch 1,mem_keyscan_col_loop_count
+	mul32 pdata,8,pdata
+	fetcht 1,mem_keyboard_keyvalue_bit_loop_count
+	iadd temp,pdata									// map offset
+	arg mem_keyboard_keyvalue_map,contr
+	iadd contr,contr
+	ifetch 1,contr
+	store 1,mem_keyboard_keyvalue_temp				// keyvalue
+	bpatch patch09_6,mem_patch09
+	call keyboard_keyvalue_normal_replace
+	call keyboard_keyvalue_fn_replace
+	call keyboard_keyvalue_commbination_replace
+	call keyboard_keyvalue_in_out
+keyboard_keyvalue_change_loop:
+	fetch 1,mem_keyscan_value_temp
+	rshift pdata,pdata
+	store 1,mem_keyscan_value_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rshift pdata,pdata
+	store 1,mem_keyboard_press_flag_temp
+	fetch 1,mem_keyboard_keyvalue_bit_loop_count
+	increase 1,pdata
+	store 1,mem_keyboard_keyvalue_bit_loop_count
+	sub pdata,7,null
+	branch keyboard_keyvalue_change,positive
+keyboard_keyvalue_process_loop:
+	increase 1,rega
+	increase 1,regb	
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	sub pdata,19,null
+	branch keyboard_keyvalue_process,positive
+	rtn
+
+keyboard_keyscan_value_current_zero_check:
+	fetch 8,mem_keyscan_value_current
+	nbranch keyboard_load_rgb,blank
+	fetch 8,mem_keyscan_value_current+8
+	nbranch keyboard_load_rgb,blank
+	fetch 4,mem_keyscan_value_current+16
+	nbranch keyboard_load_rgb,blank
+
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_key_step
+	rtneq CAMMBINATION_KEY_NULL
+	jam CAMMBINATION_KEY_FREE,mem_keyboard_commbination_key_step
+	rtn
+
+/************************************ghost key ******************************************/
+//**input:mem_keyscan_value_current   **output:mem_keyboard_ghost_flag   	mem_keyboard_all_press_key_count
+keyboard_ghost_key_check:	// (col[i] press >= 2) && (row[j] press >=2) && (c[i]_r[j] press) 
+	bpatch patch09_7,mem_patch09
+	jam 0,mem_keyboard_ghost_flag
+	jam 0,mem_keyboard_all_press_key_count
+	arg mem_keyscan_value_current,rega
+	arg 20,loopcnt
+keyboard_ghost_key_check_loop:
+	jam 0,mem_keyboard_current_col_press_key_count
+	ifetch 1,rega
+	branch keyboard_ghost_key_check_next_loop,blank
+keyboard_current_col_press_key_count_check:	
+	fetcht 1,mem_keyboard_current_col_press_key_count
+	increase 1,temp
+	storet 1,mem_keyboard_current_col_press_key_count
+	copy pdata,temp
+	increase -1,pdata
+	iand temp,pdata									// pdata &= pdata -1;  check pdata bit1 count
+	nbranch keyboard_current_col_press_key_count_check,zero
+	fetch 1,mem_keyboard_current_col_press_key_count
+	fetcht 1,mem_keyboard_all_press_key_count
+	iadd temp,temp
+	storet 1,mem_keyboard_all_press_key_count
+	sub pdata,1,null
+	branch keyboard_ghost_key_check_next_loop,positive
+	sub temp,2,null
+	branch keyboard_ghost_key_check_next_loop,positive
+	jam 0,mem_keyscan_col_loop_count					// col[i] press key count >= 2
+	jam 0,mem_keyboard_same_row_press_key_count
+	ifetcht 1,rega
+	arg mem_keyscan_value_current,regb
+keyboard_same_row_key_check:
+	fetch 1,mem_keyscan_col_loop_count
+	increase 1,pdata
+	store 1,mem_keyscan_col_loop_count
+	sub pdata,19,null
+	nbranch keyboard_ghost_key_check_next_loop,positive		// end col[i] row[0~7] check
+	ifetch 1,regb
+	iand temp,null												// col[i] & col[0~19]
+	branch keyboard_same_row_key_check_loop,zero
+	fetch 1,mem_keyboard_same_row_press_key_count		
+	increase 1,pdata
+	store 1,mem_keyboard_same_row_press_key_count
+	sub pdata,1,null
+	branch keyboard_same_row_key_check_loop,positive
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER
+	jam 1,mem_keyboard_ghost_flag
+	rtn	
+	
+keyboard_ghost_key_check_next_loop:
+	increase 1,rega
+	loop keyboard_ghost_key_check_loop
+	rtn
+
+keyboard_same_row_key_check_loop:
+	increase 1,regb
+	branch keyboard_same_row_key_check
+	
+/******************************ghost key*********************************************/
+
+
+
+
+/******************************fn replace*********************************************/
+keyboard_keyvalue_normal_replace:
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_RIGHT_ALT,keyboard_rgb_on_type_switch
+	beq HID_KEY_RIGHT_GUI,keyboard_rgb_mode_switch
+	fetch 1,mem_kb_computer_system
+	rtneq SYSTEM_OS_WINDOWS
+	rtneq SYSTEM_OS_ANDROID
+	rtn
+
+keyboard_keyvalue_fn_replace:
+	fetch 1,mem_keyboard_press_flag_temp
+	isolate1 0,pdata
+	call keyboard_commbination_delay_release_clear,true
+	fetch 1,mem_keyboard_fn_flag
+	ncall keyboard_keyvalue_fn_replace_press,blank
+	fetch 1,mem_device_fast_conn_flag
+	rtneq 0xff
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_FN_LOCK,keyboard_fn_lock_check
+	fetch 1,mem_keyboard_fn_lock_flag
+	branch keyboard_fn_lock_check+1
+keyboard_fn_lock_check:
+	fetch 1,mem_keyboard_fn_first
+	fetcht 1,mem_keyboard_fn_flag
+	ixor temp,pdata
+	rtn zero
+	bpatch patch0a_0,mem_patch0a
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_ESC,keyboard_keyvalue_fn_esc
+	beq HID_KEY_DELETE,keyboard_keyvalue_fn_delete
+	sub pdata,HID_KEY_F12,null
+	nrtn positive
+	arg HID_KEY_F1,temp	
+	isub temp,pdata
+	nrtn positive			
+	arg mem_keyboard_fn_f1,contr		//  HID_KEY_F1 <= keyvalue <= HID_KEY_F12
+	iadd contr,contr
+	ifetch 1,contr
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_esc:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_FN_LOCK,keyboard_keyvalue_fn_esc_next
+	fetch 1,mem_keyboard_fn_esc
+	fetcht 1,mem_keyboard_fn_lock_keyvalue
+	isub temp,null
+	rtn zero
+keyboard_keyvalue_fn_esc_next:	
+	fetch 1,mem_keyboard_fn_esc
+	branch keyboard_keyvalue_store_temp
+	
+keyboard_keyvalue_fn_delete:
+	fetch 1,mem_keyboard_fn_del
+	branch keyboard_keyvalue_store_temp
+	
+keyboard_keyvalue_fn_replace_press:
+	bpatch patch0a_1,mem_patch0a
+	call keyboard_keyvalue_fn_lock_replace
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_UP_ARROW,keyboard_keyvalue_fn_up_arrow
+	beq HID_KEY_DOWN_ARROW,keyboard_keyvalue_fn_down_arrow
+	beq HID_KEY_LEFT_ARROW,keyboard_keyvalue_fn_left_arrow
+	beq HID_KEY_RIGHT_ARROW,keyboard_keyvalue_fn_right_arrow
+	beq HID_KEY_LEFT_CTRL,keyboard_keyvalue_fn_left_ctrl
+	beq HID_KEY_SPACE,keyboard_keyvalue_fn_space
+	beq HID_KEY_Q,keyboard_keyvalue_os_android
+	beq HID_KEY_W,keyboard_keyvalue_os_windows
+	beq HID_KEY_E,keyboard_keyvalue_os_ios
+	rtn
+
+keyboard_keyvalue_fn_lock_replace:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_LOCK
+	fetch 1,mem_keyboard_keyvalue_temp
+	fetcht 1,mem_keyboard_fn_lock_keyvalue
+	isub temp,null
+	nrtn zero
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	fetch 1,mem_keyboard_fn_lock_flag
+	increase 1,pdata
+	and_into 0x01,pdata
+	store 1,mem_keyboard_fn_lock_flag
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_FN_LOCK,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_keyvalue_fn_lock_24g
+	beq MODE_BT_DEVICE1,keyboard_keyvalue_fn_lock_bt1
+	beq MODE_BT_DEVICE2,keyboard_keyvalue_fn_lock_bt2
+	beq MODE_BT_DEVICE3,keyboard_keyvalue_fn_lock_bt3
+	beq MODE_USB_DEVICE,keyboard_keyvalue_fn_lock_usb
+keyboard_keyvalue_fn_lock_24g:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_24g_fn_lock
+	branch keyboard_store_eeprom_or_flash
+keyboard_keyvalue_fn_lock_bt1:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_bt1_fn_lock
+	branch keyboard_store_eeprom_or_flash
+keyboard_keyvalue_fn_lock_bt2:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_bt2_fn_lock
+	branch keyboard_store_eeprom_or_flash
+keyboard_keyvalue_fn_lock_bt3:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_bt3_fn_lock
+	branch keyboard_store_eeprom_or_flash
+keyboard_keyvalue_fn_lock_usb:
+	fetch 1,mem_keyboard_fn_lock_flag
+	store 1,mem_keyboard_usb_fn_lock
+	branch keyboard_store_eeprom_or_flash
+
+keyboard_keyvalue_fn_up_arrow:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
+	setarg HID_KEY_PAGE_UP
+	branch keyboard_keyvalue_store_temp
+	
+keyboard_keyvalue_fn_down_arrow:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
+	setarg HID_KEY_PAGE_DOWN
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_left_arrow:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
+	setarg HID_KEY_HOME
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_right_arrow:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_ARROW
+	setarg HID_KEY_END
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_left_ctrl:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_LEFT_CTRL_OSK
+	fetch 1,mem_device_fast_conn_flag
+	rtneq 0xff
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_keyvalue_windows_osk
+	setarg HID_KEY_OS_SOFT_KB
+	branch keyboard_keyvalue_store_temp
+keyboard_keyvalue_windows_osk:	
+	setarg HID_KEY_OSK
+	branch keyboard_keyvalue_store_temp
+
+keyboard_keyvalue_fn_space:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_SPACE_LANGUAGE
+	setarg HID_KEY_LANGUAGE
+keyboard_keyvalue_store_temp:
+	store 1,mem_keyboard_keyvalue_temp
+	rtn
+
+keyboard_keyvalue_os_android:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_OS_SWITCH
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	jam SYSTEM_OS_ANDROID,mem_kb_computer_system
+keyboard_keyvalue_os_switch_end:	
+	jam 6,mem_keyboard_mode_led_on_timer
+	call keyboard_store_computer_system
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,pdata
+	store 1,mem_keyboard_device_info_store_flag
+keyboard_store_eeprom_or_flash:	
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_ENABLE_OTP
+keyboard_store_device_info_delay:	
+	fetch 1,mem_store_information_delay_timer_init
+	store 1,mem_store_information_delay_timer
+	rtn
+
+keyboard_keyvalue_os_windows:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_OS_SWITCH
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	jam SYSTEM_OS_WINDOWS,mem_kb_computer_system
+	branch keyboard_keyvalue_os_switch_end
+
+keyboard_keyvalue_os_ios:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_FN_OS_SWITCH
+	call keyboard_keyvalue_clear_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	jam SYSTEM_OS_IOS,mem_kb_computer_system
+	branch keyboard_keyvalue_os_switch_end
+
+keyboard_keyvalue_clear_temp:
+	setarg 0
+	branch keyboard_keyvalue_store_temp
+
+keyboard_store_computer_system:
+	bpatch patch0a_2,mem_patch0a
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	rtneq MODE_USB_DEVICE
+	beq MODE_BT_DEVICE1,keyboard_store_computer_system_bt1
+	beq MODE_BT_DEVICE2,keyboard_store_computer_system_bt2
+	beq MODE_BT_DEVICE3,keyboard_store_computer_system_bt3
+keyboard_store_computer_system_bt1:	
+	fetcht 1,mem_kb_computer_system
+	storet 1,mem_keyboard_bt1_computer_system
+	rtn
+keyboard_store_computer_system_bt2:	
+	fetcht 1,mem_kb_computer_system
+	storet 1,mem_keyboard_bt2_computer_system
+	rtn
+keyboard_store_computer_system_bt3:	
+	fetcht 1,mem_kb_computer_system
+	storet 1,mem_keyboard_bt3_computer_system
+	rtn	
+/**********************************key value process*******************************/	
+
+
+
+/*******************************commbine keyvalue *************************************/
+keyboard_keyvalue_commbination_replace:
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_PRINT_SCREEN,keyboard_commination_screen_shot_replace
+	beq HID_KEY_PAGE_UP,keyboard_commination_pageup_replace
+	beq HID_KEY_PAGE_DOWN,keyboard_commination_pagedown_replace
+	beq HID_KEY_HOME,keyboard_commination_home_replace
+	beq HID_KEY_END,keyboard_commination_end_replace
+	beq HID_KEY_SELECT_ALL,keyboard_commination_select_all
+	beq HID_KEY_COPY,keyboard_commbination_copy
+	beq HID_KEY_PASTE,keyboard_commbination_paste
+	beq HID_KEY_CUT,keyboard_commbination_cut
+	beq HID_KEY_ALL_OS_LOCK,keyboard_commination_os_lock
+	beq HID_KEY_OSK,keyboard_commbination_osk
+	beq HID_KEY_SEARCH,keyboard_commbination_search
+	beq HID_KEY_LANGUAGE,keyboard_commbination_language
+	beq HID_KEY_APP_TILING,keyboard_commbination_app_tiling
+	rtn
+
+keyboard_commbination_delay_release_set:
+	fetch 1,mem_keyboard_press_flag_temp
+	rtnbit0 0
+	jam 10,mem_keyboard_commbination_control_key_delay_release_timer
+	rtn
+
+keyboard_commbination_delay_release_clear:
+	jam 0,mem_keyboard_commbination_control_key_delay_release_timer
+	rtn
+
+keyboard_commination_screen_shot_replace:
+	fetch 1,mem_kb_computer_system
+	rtneq SYSTEM_OS_WINDOWS
+	rtneq SYSTEM_OS_ANDROID
+	jam LEFT_SHIFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_3,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+
+keyboard_commination_pageup_replace:
+	jam HID_KEY_UP_ARROW,mem_keyboard_commbination_standard_key_value
+keyboard_commination_ios_mac_command_commiation:	
+	fetch 1,mem_kb_computer_system
+	rtneq SYSTEM_OS_WINDOWS
+	rtneq SYSTEM_OS_ANDROID
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	branch keyboard_commbination_keypress
+
+keyboard_commination_pagedown_replace:
+	jam HID_KEY_DOWN_ARROW,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commination_ios_mac_command_commiation	
+
+keyboard_commination_home_replace:
+	jam HID_KEY_LEFT_ARROW,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commination_ios_mac_command_commiation
+
+keyboard_commination_end_replace:
+	jam HID_KEY_RIGHT_ARROW,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commination_ios_mac_command_commiation
+
+keyboard_commination_select_all:
+	jam HID_KEY_A,mem_keyboard_commbination_standard_key_value
+keyboard_commbination_text_edit:
+	jam LEFT_CONTROL,mem_keyboard_commbination_control_key_value
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commbination_keypress
+	beq SYSTEM_OS_ANDROID,keyboard_commbination_keypress
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	branch keyboard_commbination_keypress
+
+keyboard_commbination_copy:
+	jam HID_KEY_C,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_text_edit
+
+keyboard_commbination_paste:
+	jam HID_KEY_V,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_text_edit
+
+keyboard_commbination_cut:	
+	jam HID_KEY_X,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_text_edit
+
+keyboard_commination_os_lock:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commination_windows_lock
+	beq SYSTEM_OS_MAC,keyboard_commination_mac_lock
+	setarg HID_KEY_IOS_ANDROID_OS_LOCK
+	branch keyboard_keyvalue_store_temp
+keyboard_commination_windows_lock:	
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_L,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+keyboard_commination_mac_lock:
+	jam LEFT_GUI_CONTROL,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_Q,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+	
+keyboard_commbination_osk:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commbination_windows_osk
+	setarg HID_KEY_OS_SOFT_KB
+	branch keyboard_keyvalue_store_temp
+keyboard_commbination_windows_osk:	
+	jam LEFT_GUI_CONTROL,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_O,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+
+keyboard_commbination_search:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_MAC,keyboard_commbination_mac_search
+	setarg HID_KEY_AC_SEARCH
+	branch keyboard_keyvalue_store_temp
+keyboard_commbination_mac_search:	
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_SPACE,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
+	
+keyboard_commbination_language:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commbination_language_windows
+	beq SYSTEM_OS_ANDROID,keyboard_commbination_language_android
+	jam LEFT_CONTROL,mem_keyboard_commbination_control_key_value
+keyboard_commbination_language_next:
+	jam HID_KEY_SPACE,mem_keyboard_commbination_standard_key_value
+	call keyboard_commbination_delay_release_set	
+	branch keyboard_commbination_keypress
+keyboard_commbination_language_windows:
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	branch keyboard_commbination_language_next
+keyboard_commbination_language_android:
+	jam LEFT_SHIFT,mem_keyboard_commbination_control_key_value
+	branch keyboard_commbination_language_next
+
+keyboard_commbination_app_tiling:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_WINDOWS,keyboard_commbination_app_tiling_windows_android
+	beq SYSTEM_OS_ANDROID,keyboard_commbination_app_tiling_windows_android
+	jam LEFT_CONTROL,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_UP_ARROW,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress	
+keyboard_commbination_app_tiling_windows_android:
+	jam LEFT_GUI,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_TAB,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress	
+
+keyboard_commbination_keypress:
+	jam 0,mem_keyboard_keyvalue_temp
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit0 0,keyboard_commbination_key_wait_release_set
+	fetch 1,mem_keyboard_commbination_key_step
+	beq CAMMBINATION_KEY_COMPLETE,keyboard_commbination_key_hold_set
+keyboard_commbination_key_press_set:	
+	jam CAMMBINATION_KEY_PRESS,mem_keyboard_commbination_key_step
+	rtn
+
+keyboard_commbination_key_wait_release_set:
+	jam CAMMBINATION_KEY_WAIT_RELEASE,mem_keyboard_commbination_key_step
+	rtn
+
+keyboard_commbination_key_null_set:
+	jam CAMMBINATION_KEY_NULL,mem_keyboard_commbination_key_step
+	rtn
+
+//**input:   pdata:control key vaule       temp:standard key value
+keyboard_commbination_key_value_store:
+	store 1,mem_keyboard_tx_data+1
+	storet 1,mem_keyboard_tx_data+3
+	call enable_user
+	jam HID_REPORTID_KEY_STANDARD,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next	
+	
+keyboard_commbination_key_press_process:
+	fetch 1,mem_keyboard_commbination_control_key_value
+	arg 0,temp
+	call keyboard_commbination_key_value_store
+keyboard_commbination_key_hold_set:
+	jam CAMMBINATION_KEY_HOLD,mem_keyboard_commbination_key_step
+	rtn
+
+keyboard_commbination_key_hold_process:
+	jam CAMMBINATION_KEY_COMPLETE,mem_keyboard_commbination_key_step
+	fetch 1,mem_keyboard_commbination_control_key_value
+	fetcht 1,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_key_value_store
+	
+keyboard_commbination_key_wait_release_process:
+	jam HID_REPORTID_KEY_STANDARD,mem_keyboard_tx_data
+	fetch 1,mem_keyboard_commbination_control_key_value
+	arg 0,temp
+	call keyboard_commbination_key_value_store
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	branch keyboard_commbination_key_null_set,blank
+keyboard_commbination_key_release_set:	
+	jam CAMMBINATION_KEY_RELEASE,mem_keyboard_commbination_key_step
+	rtn
+
+keyboard_commbination_key_release_process:
+	branch keyboard_commbination_key_value_store+2
+
+keyboard_commbination_key_null_process:
+	jam CAMMBINATION_KEY_FREE,mem_keyboard_commbination_key_step
+	arg 0,pdata
+	arg 0,temp
+	branch keyboard_commbination_key_value_store	
+
+
+
+keyboard_keyvalue_in_out:
+	fetch 1,mem_keyboard_keyvalue_temp
+	arg HID_KEY_LEFT_CTRL,temp
+	isub temp,null
+	nbranch keyboard_keyvalue_standard,positive		// value < 0xe0
+	sub pdata,HID_KEY_RIGHT_GUI,null
+	nbranch keyboard_keyvalue_consumer,positive		// value  > 0xe7
+	and_into 0x07,pdata
+	copy pdata,queue
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit1 0,keyboard_keyvalue_control_key_in
+keyboard_keyvalue_control_key_out:
+	fetch 1,mem_keyboard_keyvalue_buffer
+	qset0 pdata
+	store 1,mem_keyboard_keyvalue_buffer
+	rtn
+keyboard_keyvalue_control_key_in:
+	fetch 1,mem_keyboard_keyvalue_buffer
+	qset1 pdata
+	store 1,mem_keyboard_keyvalue_buffer
+	rtn
+
+keyboard_keyvalue_standard:
+	jam 0,mem_keyboard_keyvalue_buffer+8
+	fetch 1,mem_keyboard_press_flag_temp
+	bbit1 0,keyboard_keyvalue_standard_in
+keyboard_keyvalue_standard_out:	
+	fetcht 1,mem_keyboard_keyvalue_temp
+	arg 6,loopcnt
+	arg mem_keyboard_keyvalue_buffer+2,contr
+keyboard_keyvalue_standard_out_loop:
+	ifetch 1,contr
+	isub temp,null
+	nbranch keyboard_keyvalue_standard_out_next,zero
+	ifetch 1,contr
+	increase -2,contr
+	istore 1,contr
+	rtn blank
+	increase 1,contr
+	istoret 1,contr
+keyboard_keyvalue_standard_out_next:	
+	loop keyboard_keyvalue_standard_out_loop
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,keyboard_keyvalue_standard_out_n_key_rollover
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+keyboard_keyvalue_standard_out_n_key_rollover:
+	call keyboard_keyvalue_n_key_rollover_data_in_out
+	qset0 pdata
+	branch istore_1_contw_rtn
+
+	
+keyboard_keyvalue_standard_in:
+	fetcht 1,mem_keyboard_keyvalue_temp
+	arg 6,loopcnt
+	arg mem_keyboard_keyvalue_buffer+2,contr
+keyboard_keyvalue_standard_in_loop:
+	ifetch 1,contr
+	branch keyboard_keyvalue_standard_in_data,blank
+	isub temp,null
+	rtn zero
+	loop keyboard_keyvalue_standard_in_loop
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,keyboard_keyvalue_standard_in_n_key_rollover
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+keyboard_keyvalue_standard_in_n_key_rollover:
+	call keyboard_keyvalue_n_key_rollover_data_in_out
+	qset1 pdata
+	branch istore_1_contw_rtn
+	
+keyboard_keyvalue_standard_in_data:
+	increase -1,contr
+	istoret 1,contr
+	rtn
+	
+keyboard_keyvalue_n_key_rollover_data_in_out:
+	bpatch patch0a_3,mem_patch0a
+	fetch 1,mem_keyboard_keyvalue_temp
+	sub pdata,0x70,null
+	nrtn positive		// keyboard value 14byte
+	jam 1,mem_keboard_n_key_rollover_send_flag
+	jam 1,mem_keyboard_data_change_flag
+	div pdata,8
+	call wait_div_end
+	quotient pdata
+	remainder queue
+	arg mem_keyboard_n_key_rollover_data+1,contw
+	iadd contw,contw
+	setarg 0
+	rtn
+
+keyboard_keyvalue_consumer:
+	jam KEYBOARD_CONSUMER_KEY_PRESS,mem_keyboard_consumer_key_status
+	fetch 1,mem_keyboard_press_flag_temp
+	isolate0 0,pdata
+	call keyboard_consumer_key_release_status,true
+	branch keyboard_keyvalue_standard
+	
+keyboard_consumer_key_release_status:
+	jam KEYBOARD_CONSUMER_KEY_RELEASE,mem_keyboard_consumer_key_status
+	rtn
+	
+/******************************** special key ****************************************************/
+// check Fn,pairing button,control key
+keyboard_special_key_check:
+	call keyboard_pairing_button_check
+	call keyboard_device_select
+	jam 0,mem_keyboard_fn_flag
+	jam 0,mem_keyboard_control_key_flag
+	jam 0,mem_keyboard_alt_flag
+	jam 0,mem_keyboard_shift_flag
+	jam 0,mem_keyboard_bt_button_flag
+	fetch 1,mem_keyboard_keyvalue_buffer
+	ncall keyborad_control_key_set,blank
+	arg mem_keyboard_keyvalue_buffer+2,contr
+	arg 6,loopcnt
+keyboard_special_key_check_loop:
+	ifetch 1,contr
+	sub pdata,HID_KEY_FN,null
+	call keyboard_fn_set,zero
+	sub pdata,HID_KEY_PB,null
+	call keyboard_pb_set,zero
+	loop keyboard_special_key_check_loop
+	
+	call keyboard_commbination_key_press_check
+	fetch 1,mem_keyboard_pairing_type
+	branch keyboard_enable_bt_button_pairing,blank
+	rtn
+
+keyboard_commbination_key_press_check:
+	bpatch patch0a_4,mem_patch0a
+	jam 0,mem_keyboard_commbination_press_type
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_commbination_key_press_check_bt
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_key_24g
+	isub temp,null
+	branch keyboard_commbination_key_down_24g,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_commbination_key_down_24g,zero
+	branch mouse_commbination_key_up
+	
+keyboard_commbination_key_press_check_bt:
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_fast_conn_bt
+	isub temp,null
+	branch keyboard_commbination_key_down_bt_fast_conn,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_commbination_key_down_bt_fast_conn,zero
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY,mouse_commbination_key_up
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_commbination_key_bt
+	isub temp,null
+	branch keyboard_commbination_key_down_bt,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_commbination_key_down_bt,zero
+	branch mouse_commbination_key_up
+
+keyboard_commbination_key_down_24g:
+	jam KEYBOARD_COMMBINATION_PRESS_TYPE_24G_PAIR,mem_keyboard_commbination_press_type
+	branch keyboard_commbination_key_down
+keyboard_commbination_key_down_bt:
+	jam KEYBOARD_COMMBINATION_PRESS_TYPE_BT_PAIR,mem_keyboard_commbination_press_type
+	branch keyboard_commbination_key_down
+keyboard_commbination_key_down_bt_fast_conn:
+	jam KEYBOARD_COMMBINATION_PRESS_TYPE_BT_FAST_CONN,mem_keyboard_commbination_press_type
+	branch keyboard_commbination_key_down	
+
+keyboard_commbination_key_down:
+	fetch 1,mem_commbination_key_statue
+	rtneq COMMBINATION_KEY_STATE_DOWN
+	jam COMMBINATION_KEY_STATE_DOWN,mem_commbination_key_statue
+	rtn
+	
+
+keyboard_device_select:
+	call disable_user
+	call keyboard_device_select_g24
+	call keyboard_device_select_bt1
+	call keyboard_device_select_bt2
+	call keyboard_device_select_bt3
+	call keyboard_device_select_usb
+	branch keyboard_clear_change_flag,user
+	fetch 1,mem_keyboard_switch_device_flag
+	set0 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
+	set0 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
+	store 1,mem_keyboard_switch_device_flag
+	rtn
+	
+keyboard_clear_change_flag:
+	jam 0,mem_keyboard_data_change_flag
+	rtn
+	
+keyboard_device_select_g24:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_24G
+	fetch 1,mem_keyboard_switch_device_to_g24
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_g24+1
+	isub temp,null
+	branch keyboard_device_select_g24_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_g24_press,zero
+	rtn
+
+keyboard_device_select_g24_press:
+	call enable_user
+	fetch 1,mem_keyboard_switch_device_flag
+	set1 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
+	set0 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
+	store 1,mem_keyboard_switch_device_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+	jam 1,mem_keyboard_switch_g24_enable
+	rtn
+	
+keyboard_device_select_bt1:
+	fetch 1,mem_keyboard_switch_device_to_bt1
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_bt1+1
+	isub temp,null
+	branch keyboard_device_select_bt1_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_bt1_press,zero
+	rtn
+
+keyboard_device_select_bt1_press:
+	call enable_user
+	call keyboard_device_select_bt_set_press_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	jam 1,mem_keyboard_switch_bt_enable
+	rtn
+
+keyboard_device_select_bt2:
+	fetch 1,mem_keyboard_switch_device_to_bt2
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_bt2+1
+	isub temp,null
+	branch keyboard_device_select_bt2_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_bt2_press,zero
+	rtn
+
+keyboard_device_select_bt2_press:
+	call enable_user
+	call keyboard_device_select_bt_set_press_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE2
+	jam MODE_BT_DEVICE2,mem_device_flag
+	jam 1,mem_keyboard_switch_bt_enable
+	rtn
+
+keyboard_device_select_bt3:
+	fetch 1,mem_keyboard_switch_device_to_bt3
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_bt3+1
+	isub temp,null
+	branch keyboard_device_select_bt3_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_bt3_press,zero
+	rtn
+
+keyboard_device_select_bt3_press:
+	call enable_user
+	call keyboard_device_select_bt_set_press_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE3
+	jam MODE_BT_DEVICE3,mem_device_flag
+	jam 1,mem_keyboard_switch_bt_enable
+	rtn
+
+keyboard_device_select_bt_set_press_flag:
+	fetch 1,mem_keyboard_switch_device_flag
+	set0 KEYBOARD_FLAG_G24_DEVICE_BUTTON,pdata
+	set1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,pdata
+	store 1,mem_keyboard_switch_device_flag
+	rtn
+
+keyboard_device_select_usb:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_USB
+	fetch 1,mem_keyboard_switch_device_to_usb
+	rtn blank
+	fetch 2,mem_keyboard_keyvalue_buffer+2
+	fetcht 2,mem_keyboard_switch_device_to_usb+1
+	isub temp,null
+	branch keyboard_device_select_usb_press,zero
+	byteswap temp,temp
+	isub temp,null
+	branch keyboard_device_select_usb_press,zero
+	rtn
+
+keyboard_device_select_usb_press:
+	call enable_user
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	jam MODE_USB_DEVICE,mem_device_flag
+	call keyboard_store_device_number
+	branch soft_reset_chip
+	
+keyboard_pairing_button_check:
+	fetch 1,mem_keyboard_pairing_type
+	nrtn blank
+	fetcht 1,mem_keyboard_pb_button_gpio
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	call gpio_get_bit
+	nbranch keyboard_pairing_button_release,true
+	arg 8,loopcnt
+	arg mem_keyboard_keyvalue_buffer,contw
+	call clear_mem
+	jam HID_KEY_PB,mem_keyboard_keyvalue_buffer+2
+	rtn
+
+keyboard_pairing_button_release:
+	fetch 1,mem_keyboard_keyvalue_buffer+2
+	rtnne HID_KEY_PB
+	jam HID_KEY_NULL,mem_keyboard_keyvalue_buffer+2
+	rtn	
+
+keyboard_enable_bt_button_pairing:
+	bpatch patch0a_5,mem_patch0a
+	fetch 1,mem_keyboard_bt_button_flag
+	rtn blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_24g_start_pair_mode
+keyboard_long_button_bt_discovery:
+	bpatch patch0a_6,mem_patch0a
+	call keyboard_pairing_check_otp_offset
+	jam 0,mem_keyboard_data_change_flag
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit1 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+	arg KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call keyboard_enable_function_flag
+	call app_evt_button_long_pressed
+	branch keyboard_bb_event_discovery_btn
+
+keyboard_24g_start_pair_mode:
+	bpatch patch0a_7,mem_patch0a
+	call keyboard_device_led_all_off
+	call keyboard_pairing_check_otp_offset		
+	jam 0,mem_keyboard_data_change_flag
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	setarg 0
+	store 2,mem_device_no_data_timer
+	store 2,mem_24g_reconn_timeout
+	store 1,mem_24g_reconn_type
+	arg KEYBOARD_24G_PAIRING_FLAG,queue
+	call keyboard_enable_function_flag
+	call keyboard_stop_discovery
+	jam TYPE_KB,mem_24g_data_type
+	branch g24_pair_start
+
+
+keyborad_control_key_set:
+	store 1,mem_keyboard_control_key_flag
+	and_into 0x44,pdata
+	ncall keyboard_alt_flag_set,blank
+	fetch 1,mem_keyboard_control_key_flag
+	and_into 0x22,pdata
+	rtn blank
+	jam 1,mem_keyboard_shift_flag
+	rtn
+keyboard_alt_flag_set:	
+	jam 1,mem_keyboard_alt_flag
+	rtn
+
+
+keyboard_fn_set:
+	jam 1,mem_keyboard_fn_flag
+	rtn
+
+keyboard_pb_set:
+	jam 1,mem_keyboard_bt_button_flag
+	rtn
+
+
+///////////////////////////////////////////////////////////////---motion----//////////////////////////////////
+keyboard_motion:
+	bpatch patch0b_0,mem_patch0b
+	disable user
+	jam 0,mem_customer_key
+	jam 0,mem_customer_data_trigger
+	jam 0,mem_customer_data_trigger_last
+	fetch 1,mem_keyboard_commbination_key_step
+	beq CAMMBINATION_KEY_PRESS,keyboard_commbination_key_press_process
+	beq CAMMBINATION_KEY_HOLD,keyboard_commbination_key_hold_process
+	beq CAMMBINATION_KEY_COMPLETE,keyboard_commbination_key_hold_process
+	beq CAMMBINATION_KEY_WAIT_RELEASE,keyboard_commbination_key_wait_release_process
+	beq CAMMBINATION_KEY_NULL,keyboard_commbination_key_null_process
+	fetch 1,mem_keyboard_data_change_flag
+	branch keyboard_no_key_press,blank
+	increase -1,pdata
+	store 1,mem_keyboard_data_change_flag	
+	call keyboard_current_mult_update	
+	jam 10,mem_keyboard_led_status_get_timer
+	call mouse_no_data_timer_init
+	fetch 1,mem_keyboard_commbination_key_step
+	beq CAMMBINATION_KEY_RELEASE,keyboard_commbination_key_release_process
+	arg mem_keyboard_tx_data,contw
+	arg 10,loopcnt
+	call clear_mem
+	call keyboard_motion_data_check
+	jam 0,mem_keyboard_data_send_flag
+	rtn
+
+keyboard_current_mult_update:
+	jam 3,mem_lpm_mult
+	jam 10,mem_mouse_current_mult_timer
+	rtn
+
+keyboard_no_key_press:
+	fetch 1,mem_device_flag
+	rtnne MODE_24G_DEVICE
+	fetch 1,mem_keyboard_led_status_get
+	rtn blank
+	fetch 1,mem_24g_repeat_send_flag
+	nrtn blank
+	fetcht 1,mem_keyboard_led_status_get_timer_last
+	fetch 1,mem_keyboard_led_status_get_timer
+	isub temp,null
+	store 1,mem_keyboard_led_status_get_timer_last
+	rtn zero
+	arg mem_keyboard_tx_data,contw
+	arg 10,loopcnt
+	call clear_mem
+	call enable_user
+	branch keyboard_motion_data_check_next	
+
+keyboard_motion_data_check:
+	bpatch patch0b_1,mem_patch0b
+	fetch 1,mem_keyboard_consumer_key_status
+	beq KEYBOARD_CONSUMER_KEY_RELEASE,keyboard_value_consumer_release
+	fetch 1,mem_keboard_n_key_rollover_send_flag
+	nbranch keyboard_motion_data_check_n_key_rollover_key,blank
+	arg mem_keyboard_keyvalue_buffer+2,contr
+	arg 6,loopcnt
+keyboard_value_tpye_check:
+	ifetch 1,contr
+	sub pdata,HID_KEY_RIGHT_GUI,null
+	nbranch keyboard_value_tpye_consumer_set,positive	
+	loop keyboard_value_tpye_check
+	fetch 1,mem_keyboard_all_press_key_count
+	call keyboard_value_release_all_key,blank
+	jam HID_REPORTID_KEY_STANDARD,mem_keyboard_tx_data
+	bpatch patch0b_2,mem_patch0b
+	arg mem_keyboard_keyvalue_buffer,rega
+	arg mem_keyboard_tx_data+1,contw
+	arg 8,loopcnt
+keyboard_tx_data_store:
+	ifetcht 1,rega
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,keyboard_tx_data_store_loop
+	sub temp,HID_KEY_FN,null
+	nbranch keyboard_tx_data_store_loop,zero
+	increase 1,rega
+	ifetcht 1,rega
+keyboard_tx_data_store_loop:
+	istoret 1,contw
+	increase 1,rega
+	loop keyboard_tx_data_store
+keyboard_motion_data_check_next:
+	bpatch patch0b_3,mem_patch0b
+	call keyboard_device_data_tpye_check
+
+	fetch 1,mem_keyboard_data_send_flag
+	beq DEVICE_DATA_TPYE_MOUSE,enable_user
+device_send_keyboard_data:
+	call mouse_customerkey_press
+	branch enable_user
+
+keyboard_motion_data_check_n_key_rollover_key:
+	jam 0,mem_keboard_n_key_rollover_send_flag
+	jam HID_REPORTID_N_KEY_ROLLOVER,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+
+keyboard_value_release_all_key:
+	arg mem_keyboard_n_key_rollover_data,contw
+	arg 15,loopcnt
+	call clear_mem
+	arg mem_keyboard_keyvalue_buffer,contw
+	arg 10,loopcnt
+	branch clear_mem
+////////////////////////////////////////////////////---fn---//////////////////////////////////////////////////////////
+keyboard_value_tpye_consumer_set:
+	copy pdata,temp
+	bpatch patch0b_4,mem_patch0b
+	copy temp,pdata
+	jam HID_REPORTID_BIT_CONSUMER_KEY,mem_keyboard_tx_data
+	fetcht 1,mem_keyboard_all_press_key_count
+	sub temp,HID_KEY_NULL,null
+	branch keyboard_value_consumer_all_key_release,zero
+	beq 	HID_KEY_MULTIKEY_MEDIA,keyboard_value_media
+	beq 	HID_KEY_MULTIKEY_VOL_DOWN,keyboard_value_vol_down
+	beq 	HID_KEY_MULTIKEY_VOL_UP,keyboard_value_vol_up
+	beq 	HID_KEY_MULTIKEY_MUTE,keyboard_value_mute
+	beq 	HID_KEY_MULTIKEY_PRE_TRACK,keyboard_value_pre_track
+	beq 	HID_KEY_MULTIKEY_NEXT_TRACK,keyboard_value_next_track	
+	beq 	HID_KEY_MULTIKEY_PALY,keyboard_value_play
+	beq 	HID_KEY_MULTIKEY_STOP,keyboard_value_stop
+
+	beq 	HID_KEY_AC_HOME,keyboard_value_ac_home
+	beq 	HID_KEY_MAIL,keyboard_value_mail
+	beq 	HID_KEY_MY_COMPUTER,keyboard_value_my_computer
+	beq 	HID_KEY_AC_FAVORITES,keyboard_value_ac_favorites
+	beq 	HID_KEY_CALCULATOR,keyboard_value_calculator
+	beq 	HID_KEY_AC_SEARCH,keyboard_value_ac_search	
+	beq 	HID_KEY_AC_BACK,keyboard_value_ac_back
+	beq 	HID_KEY_OS_SOFT_KB,keyboard_value_os_soft_kb	
+	
+	beq 	HID_KEY_LIGHT_DOWN,keyboard_value_light_down
+	beq 	HID_KEY_LIGHT_UP,keyboard_value_light_up
+	beq 	HID_KEY_IOS_ANDROID_OS_LOCK,keyboard_value_os_lock	
+
+	beq 	HID_KEY_MAC_EJECT,keyboard_value_mac_eject
+	beq 	HID_KEY_AC_FORWARD,keyboard_value_ac_forward
+	beq 	HID_KEY_AC_STOP,keyboard_value_ac_stop
+	beq 	HID_KEY_AC_REFRESH,keyboard_value_ac_refresh
+
+	beq 	HID_KEY_SYSTEM_SLEEP,keyboard_value_system_sleep
+	branch keyboard_motion_data_check_next
+
+keyboard_value_media:
+	setarg 0x000001
+keyboard_consumer_value_store:	
+	store 3,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+keyboard_value_vol_down:	
+	setarg 0x000002
+	branch keyboard_consumer_value_store
+keyboard_value_vol_up:	
+	setarg 0x000004
+	branch keyboard_consumer_value_store
+keyboard_value_mute:	
+	setarg 0x000008
+	branch keyboard_consumer_value_store
+keyboard_value_pre_track:	
+	setarg 0x000010
+	branch keyboard_consumer_value_store
+keyboard_value_next_track:	
+	setarg 0x000020
+	branch keyboard_consumer_value_store
+keyboard_value_play:	
+	setarg 0x000040
+	branch keyboard_consumer_value_store
+keyboard_value_stop:	
+	setarg 0x000080
+	branch keyboard_consumer_value_store	
+
+keyboard_value_ac_home:	
+	setarg 0x000100
+	branch keyboard_consumer_value_store
+keyboard_value_mail:	
+	setarg 0x000200
+	branch keyboard_consumer_value_store
+keyboard_value_my_computer:	
+	setarg 0x000400
+	branch keyboard_consumer_value_store
+keyboard_value_ac_favorites:	
+	setarg 0x000800
+	branch keyboard_consumer_value_store
+keyboard_value_calculator:	
+	setarg 0x001000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_search:	
+	setarg 0x002000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_back:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,keyboard_value_ac_home
+	beq SYSTEM_OS_MAC,keyboard_value_ac_home
+	setarg 0x004000
+	branch keyboard_consumer_value_store
+keyboard_value_os_soft_kb:
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_ANDROID,keyboard_value_os_soft_kb_android
+	setarg 0x010000
+	branch keyboard_consumer_value_store
+keyboard_value_os_soft_kb_android:
+	setarg 0x008000
+	branch keyboard_consumer_value_store
+	
+keyboard_value_light_down:	
+	setarg 0x020000
+	branch keyboard_consumer_value_store
+keyboard_value_light_up:	
+	setarg 0x040000
+	branch keyboard_consumer_value_store
+keyboard_value_os_lock:
+	setarg 0x080000
+	branch keyboard_consumer_value_store
+
+keyboard_value_mac_eject:
+	setarg 0x100000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_forward:
+	setarg 0x200000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_stop:
+	setarg 0x400000
+	branch keyboard_consumer_value_store
+keyboard_value_ac_refresh:
+	setarg 0x800000
+	branch keyboard_consumer_value_store
+
+keyboard_value_consumer_all_key_release:
+keyboard_value_consumer_release:
+	jam 2,mem_keyboard_data_change_flag
+	fetch 1,mem_keyboard_all_press_key_count
+	call keyboard_value_release_all_key,blank
+	jam KEYBOARD_CONSUMER_KEY_STANDBY,mem_keyboard_consumer_key_status
+	setarg HID_REPORTID_BIT_CONSUMER_KEY
+	store 3,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+keyboard_value_system_sleep:
+	jam HID_REPORTID_SYSTEM_CTRL,mem_keyboard_tx_data
+	setarg 0x02
+	store 1,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+
+
+/************************************fn**********************************************/
+
+keyboard_device_data_tpye_check:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_device_data_tpye_check_next
+	jam 0,mem_24g_repeat_send_flag
+	fetch 2,mem_keyboard_tx_data
+	ncall keyboard_set_repeat_send_flag,blank
+	fetch 6,mem_keyboard_tx_data+3
+	ncall keyboard_set_repeat_send_flag,blank
+keyboard_device_data_tpye_check_next:
+	call hid_device_clear_key_data
+	jam DEVICE_DATA_TPYE_KEYBOARD,mem_keyboard_data_send_flag
+	bpatch patch0b_5,mem_patch0b
+	fetch 1,mem_keyboard_tx_data
+	beq HID_REPORTID_KEY_STANDARD,keyboard_standard_data_send
+	beq HID_REPORTID_MOUSE,keyboard_mouse_data_send
+	beq HID_REPORTID_CONSUMER_KEY,keyboard_consumer_data_send
+	beq HID_REPORTID_BIT_CONSUMER_KEY,keyboard_bit_consumer_data_send
+	beq HID_REPORTID_SYSTEM_CTRL,keyboard_system_control_data_send
+	beq HID_REPORTID_N_KEY_ROLLOVER,keyboard_n_key_rollover_send
+	rtn
+
+keyboard_mouse_data_send:
+	jam DEVICE_DATA_TPYE_MOUSE,mem_keyboard_data_send_flag
+	arg mem_keyboard_tx_data+1,contr
+	arg mem_mouse_key,contw
+	arg 7,loopcnt
+	branch memcpy
+	
+keyboard_standard_data_send:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_standard_data_send_end
+	call keyboard_24g_led_get_status_check
+	fetch 1,mem_keyboard_led_status_get
+	store 1,mem_keyboard_tx_data+2
+keyboard_standard_data_send_end:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,keyboard_magic_data_send
+	arg mem_keyboard_tx_data,contr
+	arg mem_customer_key_press,contw
+	arg 9,loopcnt
+	branch memcpy
+
+keyboard_magic_data_send:
+	jam 0,mem_keyboard_tx_data+9
+	fetch 1,mem_keyboard_fn_flag
+	branch keyboard_magic_data_send_end,blank
+	jam 1,mem_keyboard_tx_data+9
+keyboard_magic_data_send_end:	
+	arg mem_keyboard_tx_data,contr
+	arg mem_customer_key_press,contw
+	arg 10,loopcnt
+	branch memcpy
+
+keyboard_consumer_data_send:
+	setarg HID_REPORTID_CONSUMER_KEY
+keyboard_consumer_data_store:
+	store 1,mem_customer_key_press
+	fetch 3,mem_keyboard_tx_data+1
+	store 3,mem_customer_key_press+1
+	rtn
+
+keyboard_bit_consumer_data_send:
+	setarg HID_REPORTID_BIT_CONSUMER_KEY
+	branch keyboard_consumer_data_store
+
+keyboard_system_control_data_send:
+	setarg HID_REPORTID_SYSTEM_CTRL
+	store 1,mem_customer_key_press
+	fetch 1,mem_keyboard_tx_data+1
+	store 1,mem_customer_key_press+1
+	rtn
+
+keyboard_n_key_rollover_send:
+	setarg HID_REPORTID_N_KEY_ROLLOVER
+	store 1,mem_customer_key_press
+	rtn
+
+////////////////////////////////////////lpm/////////////////////////////////////////////////////////////////////////
+
+keyboard_lpm_before_common:
+	bpatch patch0b_6,mem_patch0b
+	call clear_wake
+
+	fetcht 1,mem_keyboard_pb_button_gpio
+	call gpio_set_wake
+
+	fetch 2,mem_kb_col_ptr
+	copy pdata,regb
+	arg 20,loopcnt
+keyboard_key_col_wake_init:
+	ifetcht 1,regb
+	isolate1 7,temp				// exmcu gpio
+	ncall gpio_out_active,true
+	increase 1,regb
+	loop keyboard_key_col_wake_init
+
+	call keyboard_gpio_pu_idle
+	jam 0,mem_qdec_set_flag
+	
+	fetch 2,mem_kb_row_ptr
+	copy pdata,regb
+	arg 8,loopcnt
+keyboard_key_row_wake_init:
+	ifetcht 1,regb
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	ncall keyboard_key_row_wake_set,zero
+	increase 1,regb
+	loop keyboard_key_row_wake_init
+	
+	call lpm_puchk_set_check
+	fetcht 1,mem_device_reuse_2ice_gpio
+	call device_gpio_config_input_pu
+	call mouse_gpio_set_analog
+	branch keyboard_adc_gpio_set_before_hibernate
+	
+keyboard_process_lpm_before:
+	rtnmark1 mark_24g
+	branch keyboard_lpm_before_common
+
+keyboard_before_hibernate:
+	bpatch patch0b_7,mem_patch0b
+	call disable_authrom
+	branch keyboard_setgpio_hibernate
+
+	
+keyboard_power_down:
+	bpatch patch0c_0,mem_patch0c
+	call keyboard_device_led_all_off
+keyboard_app_enter_hibernate:
+	call keyboard_setgpio_hibernate
+	branch app_enter_hibernate		
+
+keyboard_setgpio_hibernate:
+	bpatch patch0c_1,mem_patch0c
+	call clear_wake
+	call keyboard_device_led_all_off
+	call keyboard_rgb_off
+	branch keyboard_lpm_before_common
+	
+////////////////////////////////////////24g/////////////////////////////////////////////////////////////////////////	
+keyboard_24g_pairing_complete:
+	call keyboard_get_24g_led_enable
+	call mouse_no_data_timer_init
+	arg KEYBOARD_24G_PAIRING_FLAG,queue
+	call keyboard_disable_function_flag
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_timeout
+	store 1,mem_24g_conn_sm
+	store 1,mem_mouse_move_flag
+	store 1,mem_24g_reconn_type
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_device_24g_addr
+	call keyboard_24g_fast_conn_check
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_G24_ADDR,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	branch keyboard_store_device_info_delay
+
+keyboard_24g_attempt_success:
+	call keyboard_get_24g_led_enable
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_device_24g_addr		// if need store 24g address to eeprom/flash,need get mem_24g_addr
+	call g24_ch_syncword_crc8_init
+	call keyboard_24g_fast_conn_check
+	jam 0,mem_24g_conn_sm
+	jam 0,mem_24g_reconn_type
+	branch mouse_no_data_timer_init	
+
+keyboard_24g_fast_conn_check:
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	nbranch mouse_bluetooth_fast_conn_disable,zero
+	jam 0xff,mem_device_fast_conn_flag
+	rtn
+
+keyboard_24g_led_get_status_check:
+	arg 6,loopcnt
+	arg mem_keyboard_tx_data+3,contr
+keyboard_24g_led_data_check:
+	ifetch 1,contr
+	beq HID_KEY_NUM_LOCK,keyboard_get_24g_led_enable
+	beq HID_KEY_CAPS_LOCK,keyboard_get_24g_led_enable
+	beq HID_KEY_SCROLL_LOCK,keyboard_get_24g_led_enable
+	loop keyboard_24g_led_data_check
+	rtn
+
+keyboard_get_24g_led_enable:
+	jam 0x03,mem_keyboard_led_status_get
+	jam 1,mem_keyboard_data_change_flag
+	rtn
+
+keyboard_set_repeat_send_flag:
+	jam 1,mem_24g_repeat_send_flag
+	rtn
+
+
+keyboard_24g_attempt_fail:
+	fetch 1,mem_24g_attempt_fail_flag
+	nbranch keyboard_24g_hibernate_set,blank
+	fetch 1,mem_24g_reconn_type
+	beq FAST_CONN_AND_3_0_ADDR,keyboard_24g_fast_conn_attempt_fail
+	beq FAST_CONN_AND_RECEIVER,keyboard_24g_fast_conn_attempt_fail
+	beq RECEIVER_AND_3_0_ADDR,keyboard_24g_attempt_fail_enter_hibernate
+	branch keyboard_24g_attempt_fail_enter_hibernate
+
+keyboard_24g_attempt_fail_enter_hibernate:
+	call keyboard_24g_stop
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_power_down
+	rtn	
+
+keyboard_24g_fast_conn_attempt_fail:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_AUTO_24G_PARING,mouse_24g_start_auto_pair
+	bbit0 KEYBOARD_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED,mouse_24g_reconn_dongle_start
+	fetch 4,mem_device_24g_addr		// auto pair first time
+	fetcht 4,mem_device_compare_addr
+	isub temp,null
+	branch keyboard_24g_start_pair_mode,zero
+	branch mouse_24g_reconn_dongle_start
+
+keyboard_24g_hibernate_set:
+	bpatch patch0c_2,mem_patch0c
+	jam 0,mem_24g_attempt_fail_flag
+	call g24_transmit_next_packet
+	setarg -1
+	store 8,mem_24g_enter_hibernate
+	setarg 0
+	store 7,mem_mouse_key
+	jam 1,mem_24g_shutdown_flag
+	branch keyboard_g24_long_sleep
+
+
+keyboard_24g_stop:
+	set0 mark_24g,mark
+	jam STATE_24G_STOP,mem_24g_conn_sm
+	arg KEYBOARD_24G_PAIRING_FLAG,queue
+	branch keyboard_disable_function_flag
+
+keyboard_g24_reconn_dispatch:
+	fetch 2,mem_24g_reconn_count
+	and_into 0xe0,pdata
+	branch keyboard_g24_reconn_dispatch_next,blank		// each 0x100 times,reconnect 16 times
+	fetch 2,mem_24g_reconn_count
+	increase 1,pdata
+	store 2,mem_24g_reconn_count
+	rtn
+keyboard_g24_reconn_dispatch_next:
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch g24_reconn_device_fail,sync
+	nbranch g24_reconn_device_fail,user3
+	call hid_device_g24_ackpayload_parse
+	branch g24_reconn_dispatch_next+5
+
+keyboard_g24_transmit_no_interrupt:
+	call g24_txdata_prep
+	nbranch keyboard_g24_nodata_transmit,user
+keyboard_g24_transmit_start:
+	call keyboard_g24_transmit_process
+	call keyboard_power_ctrl_start
+	branch keyboard_g24_transmit_start_next
+
+keyboard_g24_nodata_transmit:
+	fetch 8,mem_keyscan_value_current
+	nbranch keyboard_g24_transmit_start_next,blank
+	fetch 8,mem_keyscan_value_current+8
+	nbranch keyboard_g24_transmit_start_next,blank
+	fetch 4,mem_keyscan_value_current+16
+	nbranch keyboard_g24_transmit_start_next,blank
+	call g24_search_receiver
+keyboard_g24_long_sleep:
+	call keyboard_g24_lpm_wait
+	nrtn user
+	call g24_setgpio_lpm_before
+	fetch 1,mem_24g_shutdown_flag
+	ncall keyboard_setgpio_hibernate,blank
+	fetch 8,mem_24g_enter_hibernate
+	branch g24_long_seep2
+
+keyboard_g24_transmit_process:
+	bpatch patch0c_3,mem_patch0c
+	jam 0,mem_24g_retry
+keyboard_g24_transmit_loop:
+	fetchr timeup,2,mem_param_rx_setup
+	until clkn_rt,meet
+	call g24_transmit_receive_ack
+	fetch 1,mem_24g_no_ack	//tx noack
+	beq no_ack_24g,g24_transmit_no_ack
+	nbranch keyboard_g24_retransmit,sync
+	nbranch keyboard_g24_retransmit,user3
+	call hid_device_g24_ackpayload_parse
+	jam 0,mem_24g_shutdown_flag
+	branch g24_transmit_no_ack
+	
+
+keyboard_g24_retransmit:
+	fetch 1,mem_24g_abort_pac
+	nrtn blank
+	fetch 2,mem_24g_txfail_cnt
+	increase 1,pdata
+	store 2,mem_24g_txfail_cnt	
+	fetch 1,mem_24g_txfail_cnt
+	beq 0xff,g24_tx_attempt_fail
+	fetch 1,mem_24g_retry
+	increase 1,pdata
+	store 1,mem_24g_retry
+	and_into 0x03,pdata
+	branch keyboard_g24_tx_fast_hop,blank		//each 4 times change channel
+	branch keyboard_g24_transmit_loop
+
+keyboard_g24_tx_fast_hop:
+	call kscan_dispatch
+	fetch 1,mem_keyboard_switch_device_flag
+	nbranch soft_reset_chip,blank
+	fetch 1,mem_keyboard_commbination_press_type
+	nbranch g24_transmit_no_ack,blank
+	call g24_tx_fast_hop
+	branch keyboard_g24_transmit_loop
+
+keyboard_g24_lpm_wait:
+	enable user
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	branch disable_user,blank
+	fetch 1,mem_keyboard_fn_flag
+	nbranch disable_user,blank
+	fetch 1,mem_keyboard_control_key_flag
+	nbranch disable_user,blank
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	nbranch disable_user,blank
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,disable_user
+	branch g24_lpm_wait+5
+	
+keyboard_power_ctrl_start:
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	nbranch power_ctrl_start+1,zero
+	jam TX_POWER_FACTORY,mem_tx_power
+	rtn
+keyboard_g24_transmit_start_next:
+	fetch 8,mem_24g_long_sleep_set
+	store 8,mem_24g_enter_hibernate
+	fetch 2,mem_24g_long_sleep_param_update_timer_init
+	store 2,mem_24g_long_sleep_param_update_timer
+keyboard_g24_short_sleep:
+	bpatch patch0c_4,mem_patch0c
+	call keyboard_g24_lpm_wait
+	branch g24_short_sleep+2
+
+keyboard_24g_package_data:
+	rtnmark0 mark_24g
+	call keyboard_motion
+	nrtn user
+	fetch 1,mem_customer_key
+	nbranch keyboard_24g_keyboard_package_data,blank
+	branch mouse_24g_mouse_package_data
+
+keyboard_24g_keyboard_package_data:
+	jam TYPE_KB,mem_24g_data_type
+	fetch 1,mem_customer_key_press
+	beq HID_REPORTID_N_KEY_ROLLOVER,keyboard_24g_keyboard_package_n_key_rollover_data
+	arg 10,rega	//length
+	branch hid_device_24g_keyboard_package_data_set
+
+keyboard_24g_keyboard_package_n_key_rollover_data:
+	store 1,mem_keyboard_n_key_rollover_data
+	arg 15,rega
+	arg mem_keyboard_n_key_rollover_data,regb
+	rtn
+
+/**************************************g24 search receiver*****************************************/
+keyboard_24g_search_dongle:
+	bpatch patch0c_5,mem_patch0c
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_24G_SEARCH_DONGLE
+	branch hid_device_24g_search_dongle
+
+/////////////////////////////////////////////////////// ble ////////////////////////////////////////////////////////////	
+keyboard_le:
+	bpatch patch0c_6,mem_patch0c
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,keyboard_le_next
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtnne 0x03
+keyboard_le_next:	
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_24G_PAIRING_FLAG,hid_device_le_send_empty_packet
+	bbit1 KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG,hid_device_le_send_empty_packet
+	bbit1 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,hid_device_le_send_empty_packet
+	call keyboard_motion
+	nrtn user
+	call mouse_wheel_trigger
+	branch hid_device_send_package_data_check
+
+keyboard_le_fill_n_key_rollover_key_data:
+	jam 14,mem_le_data_len
+	fetcht 2,mem_le_notify_handle
+	fetch 1,mem_le_data_len
+	copy pdata,rega
+	call le_att_malloc_tx_notify
+	fetcht 1,mem_le_data_len
+	copy temp,loopcnt
+	arg mem_keyboard_n_key_rollover_data+1,contr
+	branch memcpy
+
+keyboard_le_fill_standard_key_data:	
+	jam 9,mem_le_data_len
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,keyoard_le_fill_standard_key_data_send
+	jam 8,mem_le_data_len
+	branch keyoard_le_fill_standard_key_data_send
+
+keyboard_le_bb_event_connected:
+	call keyboard_load_rgb
+	jam 0,mem_mouse_long_mult_flag
+	jam 1,mem_device_le_bb_connected_flag
+	call mouse_24g_first_store_reconn_info
+	fetch 1,mem_device_le_reconnect_flag
+	nbranch keyboard_le_bb_event_connected_next,blank
+	jam 0x14,mem_device_send_secutiry_request_timer
+keyboard_le_bb_event_connected_next:
+	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
+	jam 0,mem_device_direct_timer
+	fetch 2,mem_le_battery_level_updata_timer_init
+	store 2,mem_le_battery_level_updata_timer
+	call mouse_no_data_timer_init
+	branch keyboard_stop_discovery
+
+
+keyboard_le_bb_disconnected:
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	store 1,mem_keyboard_le_send_conn_param_update
+	store 1,mem_keyboard_le_send_conn_param_update_timer
+	store 1,mem_device_le_bb_connected_flag	
+keyboard_le_bb_disconnected_next:	
+	jam LE_LPM_ENABLE,mem_le_conn_param_reject
+	call le_clr_config_more_data
+	jam 0,mem_ltk_exists
+	branch keyboard_bb_disconnected
+keyboard_bb_disconnected:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BLE,keyboard_le_event_bb_disconn
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch keyboard_start_discovery
+keyboard_le_event_bb_disconn:
+	jam 0,mem_le_connect_status_flag
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch keyboard_power_down	
+
+keyboard_le_ll_start_encryt:
+	fetch 1,mem_device_le_reconnect_flag
+	beq 1,keyboard_le_ll_reconn_start_encryt
+	jam 20,mem_le_start_encrypt_timer
+	jam 5,mem_le_start_auto_reco_timer
+	branch mouse_le_ll_enable_start_enc_flag
+keyboard_le_ll_reconn_start_encryt:
+	call mouse_updata_le_param
+	jam 5,mem_le_start_encrypt_timer
+	branch mouse_le_ll_enable_start_enc_flag
+
+keyboard_le_conn_param_update_rsp_recieved:
+	fetch 1,mem_keyboard_le_send_conn_param_update
+	nrtn blank
+	jam 1,mem_keyboard_le_send_conn_param_update
+	jam 30,mem_keyboard_le_send_conn_param_update_timer
+	rtn	
+
+keyboard_bb_event_discovery_btn:
+	isolate1 mark_24g,mark
+	call keyboard_24g_stop,true
+	call mouse_disconnect
+	jam 0,mem_le_connect_status_flag
+	branch keyboard_start_discovery
+	
+keyboard_start_discovery:
+	bpatch patch0c_7,mem_patch0c
+	call keyboard_device_led_all_off+2
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	store 2,mem_otp_store_device_info_flag
+	jam 0xff,mem_kb_computer_system
+
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BLE_ADV,pdata
+	call mouse_stop_le_adv,true		//reconnect adv
+	call mouse_bluetooth_fast_conn_disable
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_ADV,keyboard_start_discovery_norandom
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_BLE_RANDOM_ADDRE,keyboard_start_discovery_norandom
+	fetcht 2,mem_random_addr_increase_count
+	increase 1,temp
+	storet 2,mem_random_addr_increase_count
+	storet 2,mem_le_lap+1
+	random pdata					//random ble addr
+	store 1,mem_le_lap
+keyboard_start_discovery_norandom:
+	fetch 3,mem_device_le_lap_temp
+	store 3,mem_le_lap+3
+	call app_lpm_mult_disable
+	fetch 2,mem_device_discovery_timeout
+	store 2,mem_device_discovery_timer
+	setarg 0
+	store 2,mem_device_no_data_timer
+	store 2,mem_le_battery_level_updata_timer
+	store 1,mem_device_direct_timer
+	arg KEYBOARD_STORE_MEMORY_FLAG,queue
+	call keyboard_enable_function_flag
+	call keyboard_bt_discovery_button_down_disable
+	branch mouse_check_51cmd_adv
+
+keyboard_stop_bluetooth_mode:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	branch keyboard_stop_discovery
+
+keyboard_stop_discovery:
+	bpatch patch0d_0,mem_patch0d
+	setarg 0
+	store 2,mem_device_discovery_timer	
+	arg KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call keyboard_disable_function_flag
+	call mouse_stop_le_adv
+	fetch 1,mem_keyboard_device_poweron_timer
+	branch keyboard_device_led_all_off+2,blank
+	rtn
+
+keyboard_store_remote_bdaddr:
+	bpatch patch0d_1,mem_patch0d
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_STORE_MEMORY_FLAG
+	arg KEYBOARD_STORE_MEMORY_FLAG,queue
+	call keyboard_disable_function_flag
+	call hid_device_check_device_addr
+	call hid_device_before_store_reconn_info
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_BLE_ADDR,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	branch keyboard_store_device_info_delay
+	
+/////////////////////////////////////////////////////// ble auto recognize////////////////////////////////////////////////////////////
+keyboard_le_send_att_find_by_type_value_request_ancs:
+	jam 1,mem_le_connect_ios_mac_flag
+	arg 23,rega
+	arg LE_L2CAP_CID_ATT,regb
+	call le_fifo_malloc_tx_l2cap
+	setarg ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+	istore 1,contw
+	setarg 0x0001		//start handle
+	istore 2,contw
+	setarg 0xffff		//end handle
+	istore 2,contw
+	setarg 0x2800		//uuid type
+	istore 2,contw
+	arg mem_le_search_service_uuid,contr
+	branch memcpy16	
+
+keyboard_le_parse_att:
+	bpatch patch0d_2,mem_patch0d
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_ERROR_RESPONSE,keyboard_le_send_att_find_by_type_value_request_mac
+	beq ATTOP_FIND_BY_TYPE_VALUE_RESPONSE,keyboard_le_parse_att_find_by_type_value_rsp
+	beq ATTOP_READ_BY_TYPE_RESPONSE,keyboard_le_send_att_read_by_type_rsp_mac
+	beq ATTOP_READ_RESPONSE,keyboard_le_parse_att_manu_resp
+	beq ATTOP_READ_BY_TYPE_REQUEST,keyboard_le_parse_att_read_by_type_request
+	beq ATTOP_READ_BLOB_REQUEST,keyboard_le_parse_att_read_blob_request
+	beq ATTOP_READ_REQUEST,keyboard_le_parse_att_read_request
+	beq ATTOP_WRITE_REQUEST,keyboard_le_parse_att_write_request
+	beq ATTOP_WRITE_COMMAND,keyboard_le_parse_att_write_command
+	branch le_parse_att2
+
+// second time read device info service differ phone from other	
+keyboard_le_send_att_find_by_type_value_request_mac:
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+	fetch 1,mem_le_connect_ios_mac_flag
+	beq 2,keyboard_le_parse_att_not_find_mac_report
+	jam 2,mem_le_connect_ios_mac_flag
+	arg 9,rega
+	arg LE_L2CAP_CID_ATT,regb
+	call le_fifo_malloc_tx_l2cap
+	setarg ATTOP_FIND_BY_TYPE_VALUE_REQUEST
+	istore 1,contw
+	setarg 0x0001		//start handle
+	istore 2,contw
+	setarg 0xffff		//end handle
+	istore 2,contw
+	setarg 0x2800		//uuid type
+	istore 2,contw
+	arg 2,loopcnt
+	arg mem_le_search_mac_uuid,contr
+	branch memcpy
+//third time read handle for manufactory name 
+keyboard_le_parse_att_find_by_type_value_rsp_mac:
+	arg 7,rega
+	arg LE_L2CAP_CID_ATT,regb
+	call le_fifo_malloc_tx_l2cap
+	setarg ATTOP_READ_BY_TYPE_REQUEST
+	istore 1,contw
+	fetcht 2,mem_le_payload_ptr
+	increase 5,temp
+	ifetch 4,temp
+	istore 4,contw
+	setarg 0x2803
+	istore 2,contw
+	rtn	
+//fourth time whether read manufactory name isn't in device info service	
+keyboard_le_send_att_read_by_type_rsp_mac:
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+	fetch 2,mem_le_l2cap_size
+	increase -2,pdata
+	div pdata,7
+	call wait_div_end
+	quotient loopcnt
+	fetch 2,mem_le_payload_ptr
+	add pdata,6,contr
+keyboard_le_check_att_read_type_manu_loop:
+	increase 3,contr
+	ifetch 2,contr
+	copy pdata,regc
+	ifetch 2,contr
+	arg 0x2a29,temp
+	isub temp,null
+	branch keyboard_le_send_att_read_by_type_rsp_manufactory,zero
+	loop keyboard_le_check_att_read_type_manu_loop
+	branch keyboard_le_parse_att_not_find_mac_report
+keyboard_le_send_att_read_by_type_rsp_manufactory:
+	arg 3,rega
+	arg LE_L2CAP_CID_ATT,regb
+	call le_fifo_malloc_tx_l2cap
+	setarg ATTOP_READ_REQUEST
+	istore 1,contw
+	copy regc,pdata
+	istore 2,contw
+	rtn	
+//fifth time 	read manufactory name make sure is Apple Inc
+keyboard_le_parse_att_manu_resp:
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+	fetch 2,mem_le_l2cap_size
+	arg 9,loopcnt
+	fetch 2,mem_le_payload_ptr
+	add pdata,5,rega	
+	arg mem_le_search_mac_manu_name,regb
+	call string_compare 
+	branch keyboard_le_parse_att_find_mac_report,zero
+	branch  keyboard_le_parse_att_not_find_mac_report
+
+keyboard_le_parse_att_find_by_type_value_rsp:
+	fetch 1,mem_le_connect_ios_mac_flag
+	rtn blank
+	fetch 1,mem_le_connect_ios_mac_flag
+	beq 2,keyboard_le_parse_att_find_by_type_value_rsp_mac
+keyboard_le_parse_att_find_ios_report:	
+	jam SYSTEM_OS_IOS,mem_kb_computer_system
+	branch keyboard_store_computer_system_ble
+keyboard_le_parse_att_not_find_mac_report:	
+	fetch 1,mem_le_conn_peer_addr_type
+	store 1,mem_kb_computer_system
+	branch keyboard_store_computer_system_ble
+keyboard_le_parse_att_find_mac_report:	
+	jam SYSTEM_OS_MAC,mem_kb_computer_system
+keyboard_store_computer_system_ble:
+	jam 0,mem_le_connect_ios_mac_flag
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_OTP,keyboard_store_computer_system_info
+	jam 1,mem_otp_store_system_flag
+	fetch 1,mem_otp_store_device_info_flag
+	rtn blank
+	branch keyboard_wirte_otp_ble
+
+keyboard_store_computer_system_info:
+	fetch 1,mem_keyboard_device_info_store_flag
+	set1 KEYBOARD_STORE_EEPROMM_FLAG_COMPUTER_SYSTEM,pdata
+	store 1,mem_keyboard_device_info_store_flag
+	branch keyboard_store_device_info_delay
+
+keyboard_le_parse_att_read_by_type_request:
+	call le_get_search_handle_start_end_common
+	call le_get_search_att_type
+keyboard_le_send_att_read_by_type_response:
+	fetcht 2,mem_le_search_handle_start
+	storet 2,mem_temp
+	call le_init_attlist_search
+	call le_att_get_handle_ptr2
+	increase -2,contr
+	copy contr,pdata
+	store 2,mem_le_cur_attlist_start_ptr
+
+	fetcht 2,mem_le_search_att_type
+	setarg UUID_CHRCTR_PNP_ID
+	isub temp,null
+	branch keyboard_le_send_att_read_by_type_res_pnp_id,zero
+	branch le_send_att_read_by_type_response+8
+keyboard_le_send_att_read_by_type_res_pnp_id:
+	fetch 1,mem_keyboard_le_change_vid_pid_flag
+	branch le_send_att_read_by_type_response+8,blank
+	call le_att_get_uuid_ptr
+	branch le_send_att_error_response_notfound,blank
+	arg mem_keyboard_le_change_vid_pid_flag+1,contr
+	force 11,pdata		// length +1
+	branch le_send_att_read_by_type_res_not_characteristic+9
+
+keyboard_le_parse_att_read_blob_request:
+	ifetch 2,contr
+	store 2,mem_le_att_offset
+	iforce rega
+	fetcht 2,mem_le_att_handle
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_blob_response,zero
+	fetch 2,mem_le_att_offset
+	sub pdata,66,null
+	nbranch keyboard_le_send_att_read_blob_response,zero
+
+	setarg 23
+	copy pdata,rega
+	copy pdata,regc
+	call le_fifo_malloc_tx_l2cap_gatt
+	setarg ATTOP_READ_BLOB_RESPONSE
+	istore 1,contw
+	arg mem_keyboard_blob_response_consumer_customize,contr
+	add regc,-1,loopcnt
+	branch memcpy_fast
+
+keyboard_le_send_att_read_blob_response:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,le_send_att_read_blob_response
+	fetch 2,mem_keyboard_le_hid_map
+	copy pdata,contr
+	ifetch 2,contr
+	branch le_send_att_read_blob_response+3
+
+keyboard_le_parse_att_read_request:
+	fetcht 2,mem_le_att_handle
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_READ_AUTH,keyboard_le_send_att_read_response_check_auth
+//input:temp is handle
+keyboard_le_send_att_read_response:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_ADC,keyboard_le_send_att_read_response+3
+	bbit0 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL,keyboard_le_send_att_read_response_next
+	fetch 2,mem_le_att_handle
+	beq 0x30,le_send_att_error_response_notfound
+keyboard_le_send_att_read_response_next:	
+	fetch 2,mem_le_att_handle
+	beq 0x05,keyboard_le_send_att_appearance
+	beq 0x10,keyboard_le_send_att_pnp_id
+keyboard_le_send_att_read_response_next_1:
+	fetcht 2,mem_le_att_handle
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,le_send_att_read_response
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_response,zero
+	call le_get_search_max_mtu_data
+	fetcht 2,mem_keyboard_le_hid_map
+	copy temp,contr
+	ifetcht 2,contr
+	increase 1,temp
+	call not_greater_than
+	branch le_send_att_read_response_less
+	
+keyboard_le_send_att_appearance:
+	arg mem_keybord_appearance,contr
+	force 3,pdata		// length +1
+	branch le_send_att_read_response_less
+	
+keyboard_le_send_att_pnp_id:
+	fetch 1,mem_keyboard_le_change_vid_pid_flag
+	branch keyboard_le_send_att_read_response_next_1,blank
+	arg mem_keyboard_le_change_vid_pid_flag+1,contr
+	force 8,pdata		// length +1
+	branch le_send_att_read_response_less
+
+keyboard_le_send_att_read_response_check_auth:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch keyboard_le_send_att_read_response,zero
+	call le_check_encrypt_state
+	nbranch keyboard_le_send_att_read_response_next,user
+	branch le_send_att_read_response_error_insufficient_auth
+
+keyboard_le_parse_att_write_request:		// mac os 10.9.5 reconnect can't move
+	copy contr,rega
+	fetch 2,mem_le_l2cap_size
+	add pdata,-3,regb
+	call le_writeatt_cb
+	call keyboard_le_parse_att_write_command+1		//MAC  CAPS
+	branch hid_device_le_parse_att_write_request
+
+keyboard_le_parse_att_write_command:
+	call le_parse_att_write_command
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,keyboard_le_fast_conn_led_get
+	fetch 2,mem_le_att_handle
+	beq 0x25,keyboard_le_led_get
+	rtn
+keyboard_le_fast_conn_led_get:	
+	fetch 2,mem_le_att_handle
+	beq 0x21,keyboard_le_led_get
+	rtn
+	
+keyboard_le_led_get:
+	fetch 1,mem_le_rxbuf+9
+	store 1,mem_keyboard_led_status
+	rtn
+
+///////////////////////////////usb ///////////////////////////////////////////////////////////////////////
+keyboard_usb_mode_start:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	call keyboard_usb_check_enable
+	branch keyboard_usb_interface_check_power_on
+
+keyboard_usb_check_enable:
+	fetch 9,mem_keyboard_usb_vid_pid
+	store 9,mem_usb_vid_pid
+	setarg keyboard_usb_config_param
+	store 2,mem_cb_usb_config
+	jam USB_INTERFACE_INSERT,mem_usb_vdd_status_current
+	rtn
+
+keyboard_usb_config_param:
+	jam DONGLE_KB_BIND_SUCCESS,mem_usb_keyboard_flag
+	jam 0x01,mem_usb_tx_interval
+	call usb_tx_interval_config
+	call keyboard_usb_vid_pid_config
+	fetch 1,mem_usb_keyboard_flag
+	branch dongle_usb_hid_icon_config+1
+
+keyboard_usb_vid_pid_config:
+	fetch 1,mem_usb_vid_pid
+	rtn blank
+	fetch 1,mem_usb_keyboard_flag
+	beq DONGLE_KB_BIND_SUCCESS,dongle_usb_vid_pid_for_suit
+	branch dongle_usb_vid_pid_for_mouse_only_auto_pair
+
+keyboard_usb_interface_check_power_on:	// last=0, current = insert
+	fetch 1,mem_usb_vdd_status_current
+	beq USB_INTERFACE_INSERT,keyboard_usb_insert
+keyboard_usb_vdd_status_store:	
+	fetch 1,mem_usb_vdd_status_current
+	store 1,mem_usb_vdd_status_last
+	rtn
+keyboard_usb_insert:
+	call keyboard_usb_vdd_status_store
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_timeout
+	jam 0,mem_lpm_mode
+	fetch 1,mem_usb_wait_updata_timer
+	call usb_init,blank
+	jam 50,mem_usb_wait_updata_timer
+	rtn
+
+keyboard_usb_isr:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_USB
+	fetch 1,mem_device_flag
+	rtnne MODE_USB_DEVICE
+	branch usb_isr
+
+keyboard_usb_mode:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtnbit0 KEYBOARD_ENABLE_USB
+	fetch 1,mem_device_flag
+	rtnne MODE_USB_DEVICE
+	fetch 1,core_usb_addr
+	store 1,mem_usb_addr
+	rtnbit0 7
+	jam 0,mem_usb_wait_updata_timer
+	setarg 0
+	store 2,mem_device_no_data_timer
+	call keyboard_24g_stop
+	call keyboard_stop_bluetooth_mode
+	call keyboard_motion
+	nrtn user
+	fetch 1,mem_customer_key
+	beq 1,hid_device_push_keyboard_data_to_usb	
+	branch hid_device_push_mouse_data_to_usb
+
+keyboard_usb_tx_kb_normal_data:
+	jam 0,mem_usb_ep1_data
+	arg 9,loopcnt
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,usb_tx_kb_normal_data+4
+	branch usb_tx_kb_normal_data+2	
+
+keyboard_push_n_key_rollover_key_data_to_usb:
+	call dongle_usb_tx_enable_ep2
+	jam USB_EP2_N_KEY_ROLLOVER,mem_usb_ep2_data
+	setarg KB_N_KEY_ROLLOVER_REPORT_ID
+	store 1,mem_usb_kb_n_key_rollvoer_data
+	arg mem_keyboard_n_key_rollover_data+1,contr
+	arg mem_usb_kb_n_key_rollvoer_data+1,contw
+	arg 14,loopcnt
+	branch memcpy
+
+////////////////////////////////public////////////////////////////////////
+keyboard_ui_ipc_send_event:
+	fetch 1,mem_fifo_temp
+	arg 8,loopcnt
+	arg mem_ipc_fifo_bt2c51,contr
+ui_ipc_fifo_check:
+	ifetcht 1,contr
+	isub temp,null
+	rtn zero
+	loop ui_ipc_fifo_check
+	branch ui_ipc_send_event+3
+
+keyboard_enable_function_flag:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	qset1 pdata
+	store KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtn
+keyboard_disable_function_flag:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	qset0 pdata
+	store KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	rtn
+
+keyboard_bt_discovery_button_down_enable:
+	arg KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
+	branch keyboard_enable_function_flag
+keyboard_bt_discovery_button_down_disable:
+	arg KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
+	branch keyboard_disable_function_flag
+
+
Index: costumer/Bore/keyboard_ck801_only_24g/program/app_mouse.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/program/app_mouse.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/program/app_mouse.prog	(working copy)
@@ -0,0 +1,5592 @@
+
+ifdef COMPILE_MOUSE
+mouse_init:
+	call enable_authrom
+	call mouse_wake_gpio_set,wake
+	call mouse_setting_config
+	call mouse_le_name_modify
+	call mouse_init_sunt
+	rtn wake
+	call mouse_usb_check_enable
+	call mouse_setting_sensor_type
+	call mouse_drawing_optima_init
+	call mouse_cb_fuction
+	call mouse_sensor_powerdown
+mouse_init_wireless:	
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
+	call mouse_check_select_device_by_switch_once
+	branch mouse_start_work
+
+mouse_wake_gpio_set:
+	call mouse_matrix_public_gpio_reset
+	branch lpm_config_puchk_disable
+	
+mouse_cb_fuction:
+	bpatch patch0e_2,mem_patch0e
+	setarg mouse_24g_short_sleep
+	store 2,mem_cb_24g_transmit_short_sleep
+	setarg mouse_24g_long_sleep
+	store 2,mem_cb_24g_transmit_long_sleep
+	setarg mouse_24g_before_lpm_sleep
+	store 2,mem_cb_before_lpm_sleep
+	setarg mouse_24g_package_data
+	store 2,mem_cb_24g_transmit_data
+	setarg mouse_24g_search_dongle
+	store 2,mem_cb_24g_search_receiver
+	setarg mouse_lpm_before_common
+	store 2,mem_cb_24g_lpm_before
+	setarg mouse_le
+	store 2,mem_cb_le_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 mouse_le_bb_event_connect_complete
+	store 2,mem_cb_att_write	
+	setarg mouse_bb_event_timer
+	store 2,mem_cb_event_timer
+	setarg mouse_lpm_check_wake_lock
+	store 2,mem_cb_check_wakelock
+	branch hid_device_cb_fuction
+
+mouse_setting_config:
+	rtn wake
+	call g24_transmit_init
+	call g24_chmap_param_init
+	call mouse_24g_send_time_long_wake
+	call mouse_gpio_init
+	call mouse_param_info_init
+//	call mouse_sensor_parm_init
+	call mouse_device_multi_led_parm_init
+	call le_set_fixed_ltk_justwork
+mouse_load_device_info_check:
+	bpatch patch0e_3,mem_patch0e
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_load_eeprom_info_check
+	bbit1 MOUSE_ENABLE_FLASH,mouse_load_flash_info_check
+	bbit1 MOUSE_ENABLE_OTP,mouse_load_otp_info_check
+	rtn
+	
+mouse_xtal_init:
+	jam XTAL_16M,mem_fcomp_div		// 0x08--16M 
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_16M
+	jam XTAL_24M,mem_fcomp_div		// 0x18--24M
+	rtn
+
+mouse_24g_phy_select:
+	call g24_enable_1M
+	jam 0,mem_mouse_sleep_deal_type
+	jam 0,mem_24g_disable_fec1
+	jam 0,mem_power_ctrl_disable
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_2M_PHY
+	jam 1,mem_mouse_sleep_deal_type
+	jam 1,mem_24g_disable_fec1
+	jam 1,mem_power_ctrl_disable
+	branch g24_enable_2M
+	
+//*******************************recon dispatch set*************************//
+
+mouse_g24_reconn_dispatch_set:
+	bpatchx patch3e_0,mem_patch3e
+	fetch 1,mem_24g_rxdata_length	//ack payload length
+	branch mouse_receiver_addr_check,blank
+mouse_g24_reconn_dispatch:
+	fetch 4,mem_24g_pair_addr
+	fetcht 4,mem_24g_addr
+	isub temp,null
+	branch mouse_g24_reconn_mode_judge,zero
+	branch g24_reconn_dispatch_success
+
+mouse_receiver_addr_check:
+	fetch 4,mem_24g_fast_conn_addr
+	fetcht 4,mem_24g_addr
+	isub temp,null
+	branch mouse_g24_reconn_dispatch,zero
+	fetch 4,mem_24g_rxpayload+2
+	rtn blank
+	branch mouse_g24_reconn_dispatch
+	
+mouse_g24_reconn_mode_judge:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_pair_mode_check
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_pair_mode_check
+	branch g24_reconn_receiver_addr
+
+mouse_g24_transmit_hop_process:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G_2M_PHY,g24_transmit_hop_process_next
+mouse_g24_transmit_hop_process_new:
+	fetcht 1,mem_24g_retry
+	fetch 1,mem_24g_fast_hop_count			// 125Hz=11  250Hz=5
+	isub temp,null
+	nbranch g24_tx_fast_hop,positive		// >= (6+6)or(3+3) hop fast    fail packet count >= 2
+	increase 1,temp
+	storet 1,mem_24g_retry
+	fetch 1,mem_24g_fast_hop_count
+	beq 15,mouse_g24_transmit_hop_process_4ms
+	fetch 1,mem_24g_retry
+	beq 20,g24_hop_ch_disable
+	beq 30,g24_hop_ch_disable
+	rtn	
+
+mouse_g24_transmit_hop_process_4ms:
+	fetch 1,mem_24g_retry
+	beq 10,g24_hop_ch_disable
+	beq 15,g24_hop_ch_disable
+	rtn
+	
+//**********************default parm init start********************//
+
+mouse_default_init:
+	bpatch patch0e_4,mem_patch0e
+	call hid_device_default_parm_init
+	call mouse_xtal_init
+	call mouse_24g_phy_select
+	call mouse_24g_long_sleep_set
+	branch g24_pair_param_init
+	
+//**********************default parm init end********************//
+
+
+
+//**********************mouse parm init start********************//
+
+mouse_param_info_init:
+	bpatch patch0e_5,mem_patch0e
+	call mouse_param_common_init
+	call mouse_report_rate_parm_init
+	call mouse_sensor_set_angle
+mouse_spi_parm_init:
+	setarg 0x0a77
+	store 2,mem_spi_init_clk
+	setsect 0,0x1224
+	setsect 1,0x4000
+	setsect 2,0x0
+	istore 5,contw
+	rtn
+
+mouse_param_common_init:
+	setarg MOUSE_BLE_ATT_LIST_ADDR				//ble attlist start address
+	store 2,mem_ui_le_uuid_table
+	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state
+	setarg 0
+	store 7,mem_mouse_key
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_bt_discovery_count
+	store 1,mem_select_device_count
+
+	jam TYPE_MS,mem_24g_data_type
+	jam 1,mem_24g_fast_conn_enable
+	jam 0,mem_mouse_pair_flag
+	
+	call mouse_compare_addr_init
+	branch hid_device_param_common_init
+
+mouse_compare_addr_init:
+	arg 0,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_OTP,hid_device_compare_addr_store
+	arg 0xffffff,temp
+	branch hid_device_compare_addr_store
+//==========set report start=========/	
+
+mouse_report_rate_parm_init:
+	call mouse_24g_report_rate_parm_init
+	fetch 3,mem_24g_short_sleep_set
+	store 3,mem_mouse_24g_short_sleep_set_init
+mouse_le_report_rate_parm_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_BT_125Hz
+	setarg LE_INTERVAL_7_5MS
+mouse_le_interval_store:
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+	rtn
+
+mouse_24g_report_rate_parm_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G_500Hz,mouse_g24_interval_param_2ms
+	bbit1 MOUSE_ENABLE_24G_250Hz,mouse_g24_interval_param_4ms
+	branch mouse_g24_interval_param_8ms
+
+mouse_g24_interval_param_2ms:
+	fetch 1,mem_mouse_24g_fast_hop_count_2ms
+	store 1,mem_24g_fast_hop_count
+	fetch 4,mem_mouse_24g_tsniff_2ms
+	store 4,mem_mouse_24g_tsniff
+mouse_report_rate_set_500hz:
+	setarg 0x080606
+	store 3,mem_24g_interval
+	branch g24_transmit_by_interrupt_enable
+	
+mouse_g24_interval_param_4ms:
+	fetch 3,mem_mouse_24g_short_sleep_set_4ms
+	store 3,mem_24g_short_sleep_set
+	fetch 3,mem_mouse_24g_long_sleep_set_4ms
+	store 3,mem_24g_long_sleep_set
+	
+	fetch 4,mem_mouse_24g_tsniff_4ms
+	store 4,mem_mouse_24g_tsniff
+	
+	setarg 0x100c0c
+	store 3,mem_24g_interval
+	
+	jam 0x05,mem_24g_fast_hop_count
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_2M_PHY
+	jam 0x0f,mem_24g_fast_hop_count
+	rtn
+
+mouse_g24_interval_param_8ms:
+	fetch 3,mem_mouse_24g_short_sleep_set_8ms
+	store 3,mem_24g_short_sleep_set
+	fetch 3,mem_mouse_24g_long_sleep_set_8ms
+	store 3,mem_24g_long_sleep_set
+	
+	fetch 4,mem_mouse_24g_tsniff_8ms
+	store 4,mem_mouse_24g_tsniff
+	
+	setarg 0x1c1919
+	store 3,mem_24g_interval
+	
+	jam 0x0b,mem_24g_fast_hop_count
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_2M_PHY
+	jam 0x1e,mem_24g_fast_hop_count
+	rtn
+
+//mouse_report_rate_set_500hz:
+//	setarg 0x080606
+//	store 3,mem_24g_interval
+//	rtn
+//mouse_report_rate_set_1000hz:
+//	setarg 0x040303
+//	store 3,mem_24g_interval
+//	rtn
+
+//==========set report end=========/	
+
+
+//==========select sensor angle start=========/	
+
+mouse_sensor_set_angle:
+	bpatch patch0e_6,mem_patch0e
+	call mouse_set_sensor_angle_float
+	fetch 1,mem_select_sensor_angle_gpio
+	rtneq GPIO_DISABLE
+
+	fetch 1,mem_select_sensor_angle_gpio
+	call mouse_gpio_config_pu_check
+	
+	fetcht 1,mem_select_sensor_angle_gpio
+	call gpio_get_bit
+	branch mouse_set_sensor_angle_gnd,true
+
+	fetch 1,mem_select_sensor_angle_gpio
+	call mouse_gpio_config_pd_check
+	
+	fetcht 1,mem_select_sensor_angle_gpio
+	call gpio_get_bit
+	branch mouse_set_sensor_angle_float,true	
+mouse_set_sensor_angle_vin:
+	fetch 1,mem_select_sensor_angle_gpio
+	call mouse_gpio_config_pu_check
+	fetch 1,mem_sensor_angle_vin
+	branch mouse_store_sensor_angle
+
+mouse_set_sensor_angle_gnd:
+	fetch 1,mem_select_sensor_angle_gpio
+	call mouse_gpio_config_pd_check
+	fetch 1,mem_sensor_angle_gnd
+	branch mouse_store_sensor_angle
+
+mouse_set_sensor_angle_float:
+	fetch 1,mem_sensor_angle_default
+mouse_store_sensor_angle:
+	store 1,mem_config_sensor_angle
+	rtn
+
+//==========select sensor angle end=========/	
+
+
+
+//**********************mouse parm init end********************//
+
+/***********************sensor parm init start*****************************/		//8650+S201 +ka8g2
+/*
+mouse_sensor_parm_init:
+	bpatch patch0e_7,mem_patch0e
+	call mouse_sensor_8650_parm_init
+	call mouse_sensor_ka8g2_parm_init
+	call mouse_sensor_3212_parm_init
+	call mouse_sensor_3205_parm_init
+	call mouse_sensor_3204_parm_init
+	call mouse_sensor_32xx_parm_init
+	call mouse_sensor_32xx_parm_init1
+	call mouse_sensor_p6520_parm_init
+	call mouse_sensor_ka8ul_parm_init
+	branch mem_sensor_8009_parm_init
+
+mouse_sensor_8650_parm_init:	
+	setsect 0,0x35a09
+	setsect 1,0x2c9ff
+	setsect 2,0x3e40a
+	setsect 3,0x28346
+	store 9,mem_sensor_8650_init
+	
+	setsect 0,0x2a141
+	setsect 1,0x3e9c4
+	setsect 2,0x00b6f
+	setsect 3,0x322d4
+	store 9,mem_sensor_8650_init+9
+	
+	setsect 0,0x3afa5
+	setsect 1,0x2403f
+	setsect 2,0x3f000
+	setsect 3,0x3ff
+	store 8,mem_sensor_8650_init+18
+	rtn
+
+mouse_sensor_ka8g2_parm_init:
+	setsect 0,0x2a509
+	setsect 1,0x24d09
+	setsect 2,0x20041
+	setsect 3,0x1a41d
+	store 9,mem_sensor_ka8g2_init
+	
+	setsect 0,0x07d04
+	setsect 1,0x01f88
+	setsect 2,0x00090
+	setsect 3,0x3fffc
+	store 9,mem_sensor_ka8g2_init+9
+	rtn
+
+mouse_sensor_3212_parm_init:
+	setsect 0,0x25a09
+	setsect 1,0x24d09
+	setsect 2,0x09041
+	setsect 3,0x3fc00
+	store 9,mem_sensor_3212_init
+mouse_sensor_parm_init_end1:
+	setarg 0xff
+	istore 1,contw
+	rtn
+
+mouse_sensor_3205_parm_init:
+	setsect 0,0x15a09
+	setsect 1,0x34403
+	setsect 2,0x3ded1
+	setsect 3,0x3fe01
+	store 9,mem_sensor_3205_init
+	branch mouse_sensor_parm_init_end1
+	
+mouse_sensor_3204_parm_init:
+	setsect 0,0x15a09
+	setsect 1,0x37c03
+	setsect 2,0x3de31
+	setsect 3,0x3ff49
+	store 9,mem_sensor_3204_init
+	branch mouse_sensor_parm_init_end1
+
+mouse_sensor_32xx_parm_init:
+	setsect 0,0x0351b
+	setsect 1,0x26d0a
+	setsect 2,0x2a462
+	setsect 3,0xae58
+	store 9,mem_sensor_32xx_init
+
+	setsect 0,0x22c8c
+	setsect 1,0x10b5b
+	setsect 2,0x1f386
+	setsect 3,0x3ce5
+	store 9,mem_sensor_32xx_init+9
+
+	setsect 0,0x3323a
+	setsect 1,0x091ce
+	setsect 2,0x3f104
+	setsect 3,0x3ff
+	store 8,mem_sensor_32xx_init+18
+	rtn
+	
+mouse_sensor_32xx_parm_init1:
+	setsect 0,0x12e54
+	setsect 1,0x07c95
+	setsect 2,0x23f46
+	setsect 3,0x1d5c1
+	store 9,mem_sensor_32xx_init_1
+
+	setsect 0,0x17652
+	setsect 1,0x35dd0
+	setsect 2,0x2378e
+	setsect 3,0x119e4
+	store 9,mem_sensor_32xx_init_1+9
+
+	setsect 0,0x0e57a
+	setsect 1,0x3921f
+	setsect 2,0x3f777
+	setsect 3,0x2c05
+	store 9,mem_sensor_32xx_init_1+18
+
+	setsect 0,0x07f00
+	setsect 1,0x00240
+	setsect 2,0x3fff0
+	setsect 3,0x3
+	store 7,mem_sensor_32xx_init_1+27
+	rtn
+
+
+mouse_sensor_p6520_parm_init:
+	setsect 0,0x1b905
+	setsect 1,0x2d682
+	setsect 2,0x0c720
+	setsect 3,0x2548
+	store 9,mem_sensor_p6520_init
+mouse_sensor_parm_init_end2:
+	setarg 0xffff00
+	istore 3,contw
+	rtn
+
+mouse_sensor_ka8ul_parm_init:
+	setsect 0,0x15a09
+	setsect 1,0x38403
+	setsect 2,0x1bc50
+	setsect 3,0x4269
+	store 9,mem_sensor_ka8ul_init
+
+	setsect 0,0x21138
+	setsect 1,0x20a10
+	setsect 2,0x23412
+	setsect 3,0xe524
+	store 9,mem_sensor_ka8ul_init+9
+
+	setsect 0,0x3b04a
+	setsect 1,0x32812
+	setsect 2,0x0d904
+	setsect 3,0x25c1
+	store 9,mem_sensor_ka8ul_init+18
+	branch mouse_sensor_parm_init_end2
+
+mem_sensor_8009_parm_init:
+	setsect 0,0x25a09
+	setsect 1,0x24081
+	setsect 2,0x0d690
+	setsect 3,0x3920
+	store 9,mem_sensor_8009_init
+
+	setsect 0,0x20f9f
+	setsect 1,0x0026e
+	setsect 2,0x3fff0
+	setsect 3,0x3
+	store 7,mem_sensor_8009_init+9
+	rtn
+*/	
+/***********************le device info modify*****************************/
+mouse_le_name_modify:	
+	bpatch patch0f_0,mem_patch0f
+	rtn wake
+	fetch 1,mem_le_name_patch_len
+	rtn blank
+	add pdata,1,loopcnt
+	arg mem_le_name_patch_len,contr
+	arg mem_le_name_len,contw
+	call memcpy
+	branch le_modified_name_adv
+
+/***********************sensor parm init end*****************************/
+
+mouse_start_work:
+	bpatch patch0f_1,mem_patch0f
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING, mouse_24g_first_start_auto_pair_mode
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_start_mode
+mouse_le_fast_conn_judge:
+	call mouse_device_le_reconn_led_config
+	call mouse_bluetooth_fast_conn_disable
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,mouse_le_device1_judge
+	beq MODE_BT_DEVICE2,mouse_le_device2_judge
+	rtn
+mouse_le_device1_judge:
+	fetch 6,mem_device1_addr
+	fetcht 6,mem_device_compare_addr
+	isub temp,null
+	branch mouse_bluetooth_fast_conn_init,zero
+	branch mouse_start_reconnect_device
+	
+mouse_le_device2_judge:
+	fetch 6,mem_device2_addr
+	fetcht 6,mem_device_compare_addr
+	isub temp,null
+	branch mouse_bluetooth_fast_conn_init,zero	
+mouse_start_reconnect_device:
+	bpatch patch0f_2,mem_patch0f
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	increase -1,pdata
+	mul32 pdata,13,pdata
+	iadd rega,rega
+	ifetch 1,rega
+	store 1,mem_xrecord_mode
+mouse_start_reconnect:	
+	fetch 1,mem_xrecord_mode
+	beq REC_4_MODE,mouse4_0_check_reconn_target
+	branch mouse_bluetooth_fast_conn_init
+
+mouse_wakeup_from_power_check:
+	bpatch patch0f_3,mem_patch0f
+	disable user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_WAKEUP_FROM_POWER,mouse_wakeup_from_poweron
+	fetch 1,core_lpm_isogate
+	bbit1 cold_wake,mouse_wakeup_from_poweron
+	enable user	//wake from hibernate
+mouse_wakeup_from_poweron:
+	fetch 1,mem_reconn_times_init
+	store 1,mem_reconn_times
+	rtn
+
+mouse4_0_check_reconn_target:
+	jam 1,mem_device_le_reconnect_flag
+	fetcht 1,mem_device_fast_direct_timeout
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,mouse4_0_check_reconn_target_next
+	fetcht 1,mem_device_direct_timeout
+mouse4_0_check_reconn_target_next:	
+	storet 1,mem_device_direct_timer
+	call app_lpm_mult_disable
+	fetch 3,mem_le_adv_direct_ind
+	store 3,mem_le_adv_data+4
+	call mouse_le_check_adv_flag
+	setarg ADV_FLAG_BREDR_NOT_SUPPORTED
+	istore 1,contr
+	arg mem_le_scan_data,contr
+	call mouse_le_adv_data_update
+	branch check_51cmd_adv
+
+
+/**********************system clk**********************************/
+mouse_lpm_check_wake_lock:
+	bmark1 mark_24g,app_get_lpm_wake_lock
+	fetch 1,mem_mouse_clear_sensor_data_flag
+	branch app_get_lpm_wake_lock,blank
+	fetch 1,mem_le_conn_param_reject
+	beq LE_LPM_DISABLE,app_get_lpm_wake_lock
+	fetch 1,mem_mouse_wheel_trigger
+	nbranch app_get_lpm_wake_lock,blank
+	branch app_put_lpm_wake_lock
+
+/**********************system clk end*****************************/
+ 
+mouse_app_enter_hibernate:
+	bpatch patch0f_4,mem_patch0f
+	setarg PAN_REG_CONFIG
+	call twspi_read
+	bbit1 3,mouse_app_enter_hibernate_next
+	call mouse_sensor_reset
+	call mouse_sensor_powerdown
+mouse_app_enter_hibernate_next:
+	call mouse_setgpio_hibernate
+	branch app_enter_hibernate
+
+mouse_before_hibernate:
+	bpatch patch0f_5,mem_patch0f
+	call disable_authrom 
+//	call mouse_before_hibernate_wheel_gpio_set
+	call mouse_flash_power_down
+	fetcht 1,mem_sensor_motion_gpio
+	branch gpio_clr_wake
+
+mouse_setgpio_hibernate:
+	bpatch patch0f_6,mem_patch0f
+	call mouse_set_sdio_high
+	call clear_wake
+	call mouse_before_hibernate_wheel_gpio_set
+	fetch 1,mem_mouse_sensor_sdio_gpio
+	call mouse_gpio_config_output_high
+	fetcht 1,mem_device_switch_gpio
+	call mouse_gpio_set_pupd_by_input
+	call mouse_lpm_before_common
+//	call mouse_gpio_pd_idle
+	fetcht 1,mem_device_reuse_2ice_gpio
+	call device_gpio_config_input_pu
+	call mouse_gpio_set_analog
+	call mouse_logo_led_off
+	call mouse_device_multi_led_all_off
+	call mouse_adc_gpio_set_before_hibernate
+	branch mouse_wheel_gpio_set_before_hibernate
+
+mouse_wheel_gpio_set_before_hibernate:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+mouse_wheel_gpio_clr_wakeup:	
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_clr_wake
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_clr_wake
+	fetcht 1,mem_whee_a_data_gpio
+	call device_gpio_config_input_pd
+	fetcht 1,mem_whee_b_data_gpio
+	branch device_gpio_config_input_pd
+	
+mouse_adc_gpio_set_before_hibernate:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	fetch 1,mem_adc_config_flag
+	rtnne ADC_CONFIG_GPIO
+	fetcht 1,mem_adc_channel_gpio
+	branch gpio_set_analog
+	
+
+//set all unused gpio to pull down mode to save power	
+mouse_gpio_pd_idle:
+	arg core_gpio_conf,contr
+	arg GPIO_NUMBER,loopcnt
+mouse_gpio_pd_idle_loop:
+	ifetch 1,contr
+	nbranch mouse_gpio_pd_idle_configured,blank
+	setarg gpcfg_pulldown
+	add contr,-1,contw
+	istore 1,contw
+mouse_gpio_pd_idle_configured:
+	loop mouse_gpio_pd_idle_loop
+	arg core_gpio_conf_hi+GPIO_NUMBER_EXT,pdata
+	isub contr,null
+	rtn zero
+mouse_gpio_pd_idle_ext:
+	arg GPIO_NUMBER_EXT,loopcnt
+	arg core_gpio_conf_hi,contr
+	branch mouse_gpio_pd_idle_loop
+	
+mouse_process_lpm_before:
+	rtnmark1 mark_24g
+	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:
+	bpatch patch0f_7,mem_patch0f
+	jam 0,mem_qdec_set_flag
+	call clear_wake
+	fetcht 1,mem_matrix_public_gpio		// enable b4/b5/dpi wakeup
+	call gpio_out_active
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_clr_wake
+	
+	call mouse_wheel_check
+	fetch 1,mem_mouse_sensor_sclk_gpio		//set sdio high
+ 	call mouse_gpio_config_output_high
+	call twspi_disable
+	
+	fetcht 1,mem_lbutton_gpio
+	call gpio_set_wake
+	fetcht 1,mem_rbutton_gpio
+	call gpio_set_wake
+	fetcht 1,mem_mbutton_gpio
+	call gpio_set_wake
+
+	fetcht 1,mem_bk_button_gpio
+	call gpio_set_wake
+	fetcht 1,mem_fw_button_gpio
+	call gpio_set_wake
+	fetcht 1,mem_dpi_button_gpio
+	call gpio_set_wake
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_set_wake
+
+	fetcht 1,mem_customer_key_gpio
+	call gpio_set_wake
+
+	call mouse_gpio_pd_idle
+
+	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_motion_gpio
+	branch gpio_set_wake
+
+
+//short mult: no key 
+mouse_set_mult:
+	fetch 2,mem_ui_state_map
+	rtnbit0 UI_STATE_BLE_CONNECTED
+	copy rega,pdata
+	nbranch le_set_config_short_mult,blank
+	branch le_clr_config_short_mult
+	
+	
+/****************************adc**************************************/	
+mouse_adc_gpio_set:
+	bpatch patch10_0,mem_patch10
+	fetch 1,mem_adc_config_flag
+	rtnne ADC_CONFIG_GPIO
+	fetcht 1,mem_adc_channel_gpio
+	branch gpio_set_high_impedance
+
+mouse_adc_read:
+	bpatch patch10_1,mem_patch10
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	call mouse_adc_gpio_set
+mouse_adc_read_start:
+	call enable_adc
+	call vdd_calculate_by_mode
+	store 2,mem_device_vdd_now_vol
+	fetch 1,mem_adc_config_flag
+	bne ADC_CONFIG_GPIO, mouse_adc_data_process
+	fetcht 2,mem_device_vdd_now_vol	// BAT= 1.5V, R = 200k, a = a*1.8
+	mul32 temp,8,pdata
+	div pdata,10
+	call get_div_result
+	iadd temp,pdata
+	store 2,mem_device_vdd_now_vol
+mouse_adc_data_process:	
+	arg mem_device_vdd_calculate_set,rega
+	call mouse_adc_bat_percent_lowpower_out
+	fetch 1,mem_adc_power_flag
+	bbit1 1,mouse_app_enter_hibernate
+	bbit0 0,mouse_adc_no_low_voltage
+	jam 1,mem_device_adc_last_low_voltage_flag
+	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
+	call mouse_disable_function_flag
+	jam 1,mem_adc_low_volatage_led_timer_count
+	fetch 1,mem_device_adc_last_low_voltage_flag
+	rtn blank
+	jam 0,mem_device_adc_last_low_voltage_flag
+	branch mouse_low_voltage_led_off_judge
+	
+
+mouse_adc_bat_percent_lowpower_out:
+	bpatch patch10_2,mem_patch10
+	ifetch 8,rega
+	store 8,mem_pdatatemp
+mouse_adc_bat_percent_lowpower_out_battery:
+	call adc_clear_no_power_flag
+	call adc_clear_low_power_flag
+	fetch 2,mem_pdatatemp+6
+	fetcht 2,mem_pdatatemp+2	        //shutdown voltage
+	isub temp,null
+	ncall adc_set_no_power_flag,positive
+	fetcht 2,mem_pdatatemp+4		//low voltage
+	isub temp,null
+	ncall adc_set_low_power_flag,positive
+mouse_adc_bat_level_set:
+	fetch 2,mem_pdatatemp+6		//now voltage	
+	fetcht 2,mem_pdatatemp		//full voltage
+	isub temp,null
+	branch mouse_adc_bat_level_100_percent,positive		// now >= full
+	fetcht 2,mem_pdatatemp+2	        //shutdown voltage
+	isub temp,pdata
+	nbranch mouse_adc_bat_level_0_percent,positive		// now < shutdown
+	branch mouse_adc_bat_level_0_percent,blank			// now = shutdown
+	mul32 pdata,100,rega								// (now - shutdown)*100 /(full - shutdown)
+	fetch 2,mem_pdatatemp
+	fetcht 2,mem_pdatatemp+2
+	isub temp,temp
+	copy rega,pdata
+	idiv temp
+	call get_div_result
+	store 1,mem_le_battery_level_percentage
+	rtn
+
+mouse_adc_bat_level_100_percent:
+	jam 100,mem_le_battery_level_percentage
+	rtn
+mouse_adc_bat_level_0_percent:	
+	jam 0,mem_le_battery_level_percentage
+	rtn
+	
+/****************************adc end********************************/	
+
+
+/****************************gpio******************************************/
+mouse_gpio_init:
+	fetcht 1,mem_eeprom_wp_gpio
+	call gpio_config_output
+//	call usb_offline_check_init
+	fetcht 1,mem_lbutton_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_rbutton_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_mbutton_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_bk_button_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_fw_button_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_dpi_button_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_matrix_public_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_config_select_device_button_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_customer_key_gpio
+	call device_gpio_config_input_pu
+
+	call mouse_wheel_gpio_init
+
+	fetcht 1,mem_whee_ta_data_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_whee_tb_data_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_sensor_motion_gpio
+	call device_gpio_config_input_pu
+
+	fetcht 1,mem_device_switch_gpio
+	branch device_gpio_config_input_pu
+
+mouse_gpio_set_pupd_by_input:
+	and temp,0x7f,queue
+	fetch 4,core_gpio_in
+	qisolate1 pdata
+	branch device_gpio_config_input_pu,true
+device_gpio_config_input_pd:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	set1 GPIO_ACTIVE_BIT,temp
+	branch gpio_config_input
+
+device_gpio_config_input_pu:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	set0 GPIO_ACTIVE_BIT,temp
+	branch gpio_config_input
+
+mouse_gpio_set_analog:
+	fetch 3,mem_device_set_analog_bit_set
+	store 3,mem_pdatatemp
+	arg 24,loopcnt
+	arg 0,temp
+mouse_gpio_set_analog_bit_loop:	
+	fetch 3,mem_pdatatemp
+	isolate1 0,pdata
+	call gpio_set_analog,true
+//	call gpio_set_high_impedance,true
+	fetch 3,mem_pdatatemp
+	lshift pdata,pdata
+	store 3,mem_pdatatemp
+	increase 1,temp
+	loop mouse_gpio_set_analog_bit_loop
+	rtn
+
+/****************************gpio end*******************************/
+
+/*******************spi*****************************/
+mouse_sensor_spi_init:
+	call mouse_spid_init_pin
+	jam 0x73,mem_spi_init_clk
+//	jam 0x1e,mem_spi_init_delay_time
+	call mouse_spi_init
+	branch twspi_enable
+	
+mouse_spi_write_flash_cb:
+mouse_spi_init:
+	branch spid_init
+	
+mouse_spid_init_pin:
+	fetch 1,mem_mouse_sensor_sclk_gpio
+ 	arg gpcfg_spid_sck,temp
+ 	call gpio_config_function_int
+ 	fetch 1,mem_mouse_sensor_sdio_gpio
+ 	arg gpcfg_spid_sdio,temp
+ 	branch gpio_config_function_int
+
+
+/*******************spi end**************************/
+
+mouse_motion:
+	bpatch patch10_3,mem_patch10
+	call hid_device_copy_key_data
+	disable user
+	setarg 0
+	store 6,mem_mouse_x
+	call mouse_check_sensor_data
+	setarg 0x0089
+	call twspi_write	
+	call mouse_setting_sensor_type
+	call mouse_zwheel
+	call mouse_t_zwheel
+	call mouse_key
+	fetch 1,mem_mouse_key
+	and_into 0x1f,pdata
+	store 1,mem_mouse_key
+	nbranch mouse_drawing_optima_init,user
+	call mouse_drawing_optima
+	branch mouse_no_data_timer_init
+
+
+/*******************wheel*************************/
+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_wheel_check:
+	bpatch patch10_4,mem_patch10
+	call mouse_wheel_gpio_init
+	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
+	increase 1,pdata
+	store 1,mem_mouse_tz_data
+	rtn
+mouse_wheel_t_back:
+	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:
+	fetch 1,mem_mouse_z_data
+	increase 1,pdata
+	store 1,mem_mouse_z_data
+	rtn
+mouse_wheel_back:
+	fetch 1,mem_mouse_z_data
+	increase -1,pdata
+	store 1,mem_mouse_z_data
+	rtn
+
+/*
+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_wheel_trigger:
+	fetch 2,mem_mouse_z
+	rtn blank
+	jam 1,mem_mouse_wheel_trigger
+	jam 10,mem_mouse_wheel_trigger_timer
+	rtn
+
+mouse_wheel_trigger_timer:
+	arg mem_mouse_wheel_trigger_timer,regc
+	arg mouse_wheel_trigger_disable,regb
+	branch timer_single_step
+mouse_wheel_trigger_disable:
+	jam 0,mem_mouse_wheel_trigger
+	rtn
+
+
+/*
+mouse_set_qdecoder_x:
+	arg MOUSE_DEFAULT_XA_GPIO,temp
+	call device_gpio_config_input_pu
+	arg MOUSE_DEFAULT_XA_GPIO,temp
+	call gpio_get_bit
+	rtn true
+	fetch 1,core_qdec_cntx
+	set1 4,pdata
+	store 1,core_qdec_cntx
+	rtn
+*/	
+	
+/*******************wheel end**********************/
+
+
+/********************dpi******************************/
+mouse_dpi_check:
+	fetch 1,mem_dpi_button_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	jam MOUSE_DPI_KEY,mem_mouse_key_temp
+	fetcht 1,mem_dpi_button_gpio
+	call mouse_dpi_key_check
+	store 1,mem_mouse_dpikey_press_status
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_dpi_check_end
+	call mouse_matrix_public_gpio_reset
+mouse_dpi_check_exit:	
+	copy rega,pdata
+	bbit1 MOUSE_DPI_KEY,mouse_dpi_down
+	branch mouse_dpi_up
+	
+mouse_dpi_key_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_GND,mouse_dpi_key_connect_gnd
+	fetch 1,mem_mouse_dpikey_press_status
+	copy pdata,regc
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_dpi_3io6key_check
+	fetch 1,mem_mouse_ghost_flag
+	nbranch mouse_dpi_check_end,blank
+mouse_dpi_key_connect_matrix:
+	call gpio_get_bit
+	fetcht 1,mem_matrix_public_gpio
+	branch mouse_dpi_key_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_dpi_button_gpio
+	fetch 1,mem_mouse_dpikey_press_status
+	branch mouse_check_key_connect_gnd
+
+mouse_dpi_3io6key_check:
+	fetch 1,mem_dpi_button_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_dpi_button_gpio
+	branch mouse_3io6key_check
+	
+
+mouse_3io6key_dpi_check_end:
+	fetcht 1,mem_dpi_button_gpio
+	call device_gpio_config_input_pu
+	branch mouse_dpi_check_exit
+
+mouse_dpi_check_end:
+	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state
+	jam 0,mem_mouse_dpikey_press_status
+	rtn
+
+mouse_dpi_key_connect_gnd:
+	fetch 1,mem_mouse_dpikey_press_status
+	branch mouse_check_key_connect_gnd
+
+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 MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+	rtnbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
+	branch mouse_dpi_process
+
+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
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON,mouse_dpi_up_next
+	bbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY,mouse_dpi_up_next
+	rtn
+mouse_dpi_up_next:	
+	fetch 1,mem_mouse_dpi_long_press_flag
+	nbranch mouse_dpi_up_after_long_press,blank
+	fetch 1,mem_select_device_count
+	ncall mouse_dpi_process,blank
+mouse_dpi_up_after_long_press:	
+	jam 0,mem_mouse_dpi_long_press_flag
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_select_device_count	
+	store 1,mem_bt_discovery_count	
+	rtn
+	
+mouse_dpi_process:	
+	bpatch patch10_5,mem_patch10
+	call mouse_dpi_ghost_check
+	rtn user
+mouse_dpi_process_skip_ghost:
+	fetch 1,mem_mouse_dpi
+	
+	copy pdata,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DOUBLE_DPI_KEY,mouse_double_dpi_check
+	copy temp,pdata
+	
+	increase 1,pdata
+	and pdata,0x03,pdata
+mouse_dpi_level_store:	
+	store 1,mem_mouse_dpi
+	call mouse_setting_dpi
+	branch mouse_store_dpi_info_check
+
+
+/***************************another dpi key dpi**********************/
+
+mouse_double_dpi_check:
+	fetch 1,mem_dpi_another_button_down_enable
+	nbranch mouse_another_dpi_button_down,blank
+mouse_dpi_increase:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_LEVEL_4,mouse_dpi_increase_level_4
+	copy temp,pdata
+	rtneq MOUSE_DPI_LEVEL2
+mouse_dpi_increase_level:
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_3	//1600
+	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_2 	//1200
+	rtn
+
+mouse_dpi_level_1:		//800
+	setarg 2
+	branch mouse_dpi_level_store
+mouse_dpi_level_2:		//1200
+	setarg 0
+	branch mouse_dpi_level_store
+mouse_dpi_level_3:		//1600
+	setarg 1
+	branch mouse_dpi_level_store
+mouse_dpi_level_4:		//1000
+	setarg 3
+	branch mouse_dpi_level_store	
+
+mouse_dpi_increase_level_4:
+	copy temp,pdata			//0->1,2->3,3->0
+	rtneq MOUSE_DPI_LEVEL2
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_3
+	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_4
+	beq MOUSE_DPI_LEVEL4,mouse_dpi_level_2
+	rtn
+mouse_dpi_decrease_level_4:
+	copy temp,pdata			//0->3,1->0,3->2
+	rtneq MOUSE_DPI_LEVEL3
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_4
+	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_2
+	beq MOUSE_DPI_LEVEL4,mouse_dpi_level_1
+	rtn
+
+mouse_another_dpi_button_down:
+mouse_dpi_decrease:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_LEVEL_4,mouse_dpi_decrease_level_4
+	copy temp,pdata
+	rtneq MOUSE_DPI_LEVEL3
+mouse_dpi_decrease_level:
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_1
+	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_2
+	rtn
+	
+
+/*************************another dpi key dpi end********************/
+
+mouse_dpi_ghost_check:
+	disable user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_GND
+	branch mouse_ghost_key_value_check
+	
+mouse_dpi_key_check_long_press:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON,mouse_select_device_by_dpi_button
+	bbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY,mouse_discovery_by_dpi_button
+	rtn
+
+mouse_select_device_by_dpi_button:
+	fetch 1,mem_mouse_dpi_button_state
+	rtnne DPI_BUTTON_STATE_DOWN	
+	arg mem_select_device_count,regc
+	arg mouse_ready_reconnection_by_dpi_button,regb
+	branch timer_single_step
+
+mouse_ready_reconnection_by_dpi_button:
+	jam 1,mem_mouse_dpi_long_press_flag
+	branch mouse_ready_reconnection_by_button
+
+mouse_discovery_by_dpi_button:
+	fetch 1,mem_mouse_dpi_button_state
+	rtnne DPI_BUTTON_STATE_DOWN	
+	arg mem_bt_discovery_count,regc
+	arg mouse_long_dpi_button_bt_discovery,regb
+	branch timer_single_step
+
+mouse_long_dpi_button_bt_discovery:
+	jam 1,mem_mouse_dpi_long_press_flag
+	branch mouse_long_button_bt_discovery
+
+mouse_setting_dpi_4_level:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_DPI_LEVEL_4
+	fetch 1,mem_mouse_dpi
+	rtnne MOUSE_DPI_LEVEL4
+	jam MOUSE_DPI_LEVEL1,mem_mouse_dpi
+	rtn
+	
+mouse_setting_dpi:
+	bpatch patch10_6,mem_patch10
+	call mouse_setting_dpi_4_level
+	call mouse_dpi_led_blink_delay
+mouse_setting_sensor_type:
+	bpatch patch10_7,mem_patch10
+	fetch 1,mem_config_sensor_type
+	beq S201X,mouse_seting_S201_dpi
+	beq P3212,mouse_seting_3212_dpi
+	beq KA8G2,mouse_seting_ka8g2_dpi
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_cpi0		//1200
+	beq MOUSE_DPI_LEVEL2,mouse_set_cpi1		//1600
+	beq MOUSE_DPI_LEVEL3,mouse_set_cpi2		//800
+	beq MOUSE_DPI_LEVEL4,mouse_set_cpi3		//1000
+mouse_set_cpi1:	//320x+8009
+	fetcht 1,mem_320x_dpi_1
+	branch mouse_dpi_store
+mouse_set_cpi0:
+	fetcht 1,mem_320x_dpi_0
+	branch mouse_dpi_store
+mouse_set_cpi2:
+	fetcht 1,mem_320x_dpi_2
+	branch mouse_dpi_store
+mouse_set_cpi3:
+	fetcht 1,mem_320x_dpi_3
+mouse_dpi_store:
+	fetch 1,mem_config_sensor_type
+	beq P3065_XY,mouse_3065xy_set_dpi
+	beq MX8650,mouse_3065xy_set_dpi
+	beq KA8,mouse_ka8_set_dpi
+	beq P6520,mouse_ka8_set_dpi
+	beq P8009,mouse_3065xy_set_dpi
+mouse_dpi_write:		// 3205  1  2  3  4
+	storet 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_3065xy_set_dpi:	// 0 1 2 3
+	increase -1,temp
+	branch mouse_dpi_write
+
+mouse_ka8_set_dpi:	// 3 4 5 6
+	increase 2,temp
+	branch mouse_dpi_write
+
+mouse_seting_S201_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_S201_dpi_0	//1200
+	beq MOUSE_DPI_LEVEL2,mouse_set_S201_dpi_2	//2400
+	beq MOUSE_DPI_LEVEL3,mouse_set_S201_dpi_3	//3200
+	beq MOUSE_DPI_LEVEL4,mouse_set_S201_dpi_4	//800
+	rtn
+mouse_set_S201_dpi_0:	//1200
+	fetch 1,mem_sensor_s201_dpi_0
+	branch mouse_dpi_S201_store
+
+mouse_set_S201_dpi_1:	//1600
+	fetch 1,mem_sensor_s201_dpi_1
+	branch mouse_dpi_S201_store
+	
+mouse_set_S201_dpi_2:	//2400
+	fetch 1,mem_sensor_s201_dpi_2
+	branch mouse_dpi_s201_store
+
+mouse_set_S201_dpi_3:	//3200
+	fetch 1,mem_sensor_s201_dpi_3
+	branch mouse_dpi_s201_store
+
+mouse_set_S201_dpi_4:	//800
+	fetch 1,mem_sensor_s201_dpi_4
+mouse_dpi_s201_store:
+	copy pdata,rega
+	setarg 0xc309
+	call twspi_write
+	copy rega,pdata
+	lshift8 pdata,pdata
+	add pdata,0x23,pdata
+	call twspi_write
+mouse_sensor_enable_wp:
+	setarg 0x0009
+	branch twspi_write
+mouse_sensor_disable_wp:
+	setarg 0x5a09
+	branch twspi_write
+
+mouse_seting_3212_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_p3212_cpi0	//1200
+	beq MOUSE_DPI_LEVEL2,mouse_set_p3212_cpi1	//1600
+	beq MOUSE_DPI_LEVEL3,mouse_set_p3212_cpi2	//2400
+	beq MOUSE_DPI_LEVEL4,mouse_set_p3212_cpi3	//800
+mouse_set_p3212_cpi1:
+	fetch 1,mem_3212_dpi_1
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi0:
+	fetch 1,mem_3212_dpi_0
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi2:
+	fetch 1,mem_3212_dpi_2
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi3:
+	fetch 1,mem_3212_dpi_3
+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_ka8g2_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_pka8g2_cpi0		//1600
+	beq MOUSE_DPI_LEVEL2,mouse_set_pka8g2_cpi1		//2400
+	beq MOUSE_DPI_LEVEL3,mouse_set_pka8g2_cpi2		//3200
+	beq MOUSE_DPI_LEVEL4,mouse_set_pka8g2_cpi3		//800
+mouse_set_pka8g2_cpi1:
+	fetch 1,mem_ka8g2_dpi_1
+	branch mouse_p3212_dpi
+
+mouse_set_pka8g2_cpi0:
+	fetch 1,mem_ka8g2_dpi_0
+	branch mouse_p3212_dpi
+	
+mouse_set_pka8g2_cpi2:
+	fetch 1,mem_ka8g2_dpi_2
+	branch mouse_p3212_dpi
+
+mouse_set_pka8g2_cpi3:
+	fetch 1,mem_ka8g2_dpi_3
+	branch mouse_p3212_dpi
+
+		
+/********************dpi end***************************/		
+
+
+/***********************key******************************/
+
+mouse_key:
+	call mouse_check_firekey_gpio
+	fetch 1,mem_fire_key_flag
+	nbranch fire_key_press,blank
+	fetch 1,mem_fire_key_status
+	nbranch fire_key_process,blank
+	
+	call mouse_check_key_gpio
+	call mouse_ghost_key_check
+	call mouse_set_mult
+	call mouse_24g_key
+	copy rega,pdata
+	fetcht 1,mem_mouse_key_last
+	store 1,mem_mouse_key_last
+	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
+
+	
+/************************************ghost key******************************/
+
+mouse_ghost_key_check:
+	jam 0,mem_mouse_matrix_key_cow_count
+	jam 0,mem_mouse_matrix_key_row_count
+	jam 0,mem_mouse_ghost_flag
+	copy pdata,regb
+	fetcht 1,mem_lbutton_gpio
+	fetch 1,mem_bk_button_gpio
+	isub temp,null
+	branch mouse_matrix_ghost_key_L_BK,zero
+	fetch 1,mem_fw_button_gpio
+	isub temp,null
+	branch mouse_matrix_ghost_key_L_FW,zero
+	fetcht 1,mem_mbutton_gpio
+	fetch 1,mem_bk_button_gpio
+	isub temp,null
+	branch mouse_ghost_key_MBK_RFW,zero
+	branch mouse_ghost_key_MFW_RBK
+
+mouse_matrix_ghost_key_L_BK:
+	fetcht 1,mem_mbutton_gpio
+	fetch 1,mem_fw_button_gpio
+	isub temp,null
+	branch mouse_ghost_key_LBK_MFW,zero
+	branch mouse_ghost_key_LBK_RFW
+
+mouse_matrix_ghost_key_L_FW:
+	fetcht 1,mem_mbutton_gpio
+	fetch 1,mem_bk_button_gpio
+	isub temp,null
+	branch mouse_ghost_key_LFW_MBK,zero
+	branch mouse_ghost_key_LFW_RBK
+
+mouse_ghost_key_LBK_MFW:
+	call mouse_ghost_key_check_L_BK
+	call mouse_ghost_key_check_M_FW
+	branch mouse_ghost_key_check_next
+
+mouse_ghost_key_LBK_RFW:
+	call mouse_ghost_key_check_L_BK
+	branch mouse_ghost_key_RFW
+
+mouse_ghost_key_LFW_MBK:
+	call mouse_ghost_key_check_L_FW
+	call mouse_ghost_key_check_M_BK
+	branch mouse_ghost_key_check_next
+	
+mouse_ghost_key_LFW_RBK:
+	call mouse_ghost_key_check_L_FW
+	branch mouse_ghost_key_RBK
+	
+mouse_ghost_key_MBK_RFW:
+	call mouse_ghost_key_check_M_BK
+mouse_ghost_key_RFW:
+	call mouse_ghost_key_check_R_FW
+	branch mouse_ghost_key_check_next
+	
+mouse_ghost_key_MFW_RBK:
+	call mouse_ghost_key_check_M_FW
+mouse_ghost_key_RBK:
+	call mouse_ghost_key_check_R_BK
+mouse_ghost_key_check_next:
+	call mouse_ghost_key_check_BK_FW
+	call mouse_ghost_key_check_LMR
+	fetch 1,mem_mouse_matrix_key_row_count
+	rtn blank
+	fetch 1,mem_mouse_matrix_key_cow_count
+	rtn blank
+	jam 1,mem_mouse_ghost_flag
+	fetch 1,mem_mouse_key_last		// matrix have ghost key
+	copy pdata,rega
+	rtn
+
+mouse_ghost_key_check_L_BK:
+	and regb,MOUSE_L_BK_BUTTON,pdata
+	beq MOUSE_L_BK_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_M_BK:
+	and regb,MOUSE_M_BK_BUTTON,pdata
+	beq MOUSE_M_BK_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_R_BK:
+	and regb,MOUSE_R_BK_BUTTON,pdata
+	beq MOUSE_R_BK_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_L_FW:
+	and regb,MOUSE_L_FW_BUTTON,pdata
+	beq MOUSE_L_FW_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_M_FW:
+	and regb,MOUSE_M_FW_BUTTON,pdata
+	beq MOUSE_M_FW_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_R_FW:
+	and regb,MOUSE_R_FW_BUTTON,pdata
+	beq MOUSE_R_FW_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+
+mouse_ghost_key_check_BK_FW:
+	and regb,MOUSE_BK_FW_BUTTON,pdata
+	beq MOUSE_BK_FW_BUTTON,mouse_matrix_row_more_than_one_key
+	rtn	
+
+mouse_ghost_key_check_LMR:
+	and temp,MOUSE_LMR_BUTTON,pdata	// key LMR press
+	beq MOUSE_LR_BUTTON,mouse_matrix_row_more_than_one_key
+	beq MOUSE_LM_BUTTON,mouse_matrix_row_more_than_one_key
+	beq MOUSE_RM_BUTTON,mouse_matrix_row_more_than_one_key
+	beq MOUSE_LMR_BUTTON,mouse_matrix_row_more_than_one_key
+	rtn
+
+
+mouse_matrix_row_more_than_one_key:
+	jam 1,mem_mouse_matrix_key_row_count
+	rtn
+
+mouse_matrix_cow_more_than_one_key:
+	jam 1,mem_mouse_matrix_key_cow_count
+	rtn
+
+/************************************ghost key end******************************/
+
+
+
+/************************************double dpi key******************************/
+
+mouse_dpi_another_gpio_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_DOUBLE_DPI_KEY
+	bbit0 MOUSE_ENABLE_ANOTHER_DPI_KEY_CONNECT_GND,mouse_dpi_another_gpio_connect_vin_check
+mouse_dpi_another_gpio_connect_gnd_check:	
+	fetch 1,mem_dpi_another_button_gpio
+	call mouse_gpio_config_output_high
+	call mouse_dpi_another_check
+	fetcht 1,mem_dpi_another_button_gpio
+	branch device_gpio_config_input_pu	
+
+mouse_dpi_another_gpio_connect_vin_check:
+	fetch 1,mem_dpi_another_button_gpio
+	call mouse_gpio_config_output_low
+	jam MOUSE_DPI_ANOTHER_KEY,mem_mouse_key_temp_patch
+	fetcht 1,mem_dpi_another_button_gpio
+	fetch 1,mem_dpi_another_press_status
+	call mouse_check_key_connect_vin_new
+	call mouse_dpi_another_state_check
+	fetcht 1,mem_dpi_another_button_gpio
+	branch device_gpio_config_input_pu	
+
+mouse_dpi_another_down_new:
+	call device_gpio_config_input_pu	
+	fetch 1,mem_dpi_another_button_state
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_dpi_another_button_state
+	branch mouse_dpi_process
+
+mouse_dpi_another_check:
+	jam MOUSE_DPI_ANOTHER_KEY,mem_mouse_key_temp_patch
+	fetcht 1,mem_dpi_another_button_gpio
+	fetch 1,mem_dpi_another_press_status	
+	call mouse_check_key_connect_gnd_new
+mouse_dpi_another_state_check:
+	store 1,mem_dpi_another_press_status
+	fetch 1,mem_dpi_another_button_down_enable
+	branch mouse_dpi_another_up,blank	
+mouse_dpi_another_down:
+	fetch 1,mem_dpi_another_button_state
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_dpi_another_button_state
+	branch mouse_dpi_process
+
+mouse_dpi_another_up:
+	fetch 1,mem_dpi_another_button_state
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_dpi_another_button_state
+	rtn
+
+mouse_check_key_connect_gnd_new:	
+	lshift pdata,pdata
+	copy pdata,regb
+	call gpio_get_bit
+	setflag true,0,regb
+	and regb,0x07,pdata
+	fetcht 1,mem_mouse_key_temp_patch
+	copy temp,queue
+	beq 0x07,mouse_another_dpi_key_press		//  about 17~22ms three times
+	beq 0x00,mouse_another_dpi_key_release
+	rtn
+
+mouse_check_key_connect_vin_new:	
+	lshift pdata,pdata
+	copy pdata,regb
+	call device_gpio_config_input_pd
+	call gpio_get_bit
+	setflag true,0,regb
+	and regb,0x07,pdata
+	fetcht 1,mem_mouse_key_temp_patch
+	copy temp,queue
+	beq 0x07,mouse_another_dpi_key_press		//  about 17~22ms three times
+	beq 0x00,mouse_another_dpi_key_release
+	rtn
+
+mouse_another_dpi_key_press:
+	jam 1,mem_dpi_another_button_down_enable
+	rtn
+mouse_another_dpi_key_release:
+	jam 0,mem_dpi_another_button_down_enable
+	rtn
+
+/************************************double dpi key end******************************/
+
+
+
+/************************************fire key************************************/
+
+mouse_check_firekey_gpio:
+	arg 0,regb
+	fetch 1,mem_firebutton_gpio
+	rtneq GPIO_DISABLE
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_FIRE_KEY_CONNECT_GND,mouse_check_firekey_connect_vin
+mouse_check_firekey_connect_gnd:
+	fetcht 1,mem_firebutton_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_firebutton_gpio
+	call gpio_get_bit
+	setflag true,0,regb
+mouse_firekey_state_store:	
+	copy regb,pdata
+	store 1,mem_fire_key_flag
+	rtn
+
+mouse_check_firekey_connect_vin:
+	fetcht 1,mem_firebutton_gpio
+	call device_gpio_config_input_pd
+	fetcht 1,mem_firebutton_gpio
+	call gpio_get_bit
+	nsetflag true,0,regb
+	branch mouse_firekey_state_store
+
+fire_key_process: 
+	beq 4,fire_key_process_end
+fire_key_press:
+	call firekey_clkn_bt_timer_check 
+	fetch 4,mem_fire_key_delay
+	arg 0xa0,temp      
+	iadd temp,temp
+	copy clkn_bt,pdata
+	isub temp,null
+	nrtn positive
+	store 4,mem_fire_key_delay 
+	fetch 1,mem_fire_key_status
+	beq 0,fire_key_process_start
+	beq 1,fire_key_process_release1
+	beq 2,fire_key_process_start2
+	beq 3,fire_key_process_release2
+	rtn
+
+fire_key_process_start:
+	jam 1,mem_fire_key_status
+fire_key_down:
+	jam 1,mem_mouse_key
+	branch enable_user
+
+fire_key_process_release1:
+	jam 2,mem_fire_key_status
+fire_key_release:
+	jam 0,mem_mouse_key
+	branch enable_user
+
+fire_key_process_start2:
+	jam 3,mem_fire_key_status
+	branch fire_key_down
+
+fire_key_process_release2:
+	jam 0,mem_fire_key_status
+	branch fire_key_release
+
+fire_key_process_end:
+	jam 0,mem_fire_key_status
+	jam 0,mem_mouse_key
+	rtn
+
+firekey_clkn_bt_timer_check:
+	fetcht 4,mem_fire_key_delay
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall firekey_clkn_bt_timer_timeout,positive
+	rtn
+firekey_clkn_bt_timer_timeout:
+	setarg 0
+	store 4,mem_fire_key_delay
+	rtn
+
+/*********************************fire key end*****************************/
+
+
+
+/*********************************matrix key*****************************/
+
+mouse_key_check_once:
+	call mouse_check_key_gpio_once
+	call mouse_check_key_gpio
+	setarg 0x00
+	store 3,mem_mouse_lkey_press_status
+	rtn
+	
+mouse_check_key_gpio:
+	bpatch patch11_0,mem_patch11
+	fetch 1,mem_24g_shutdown_flag
+	ncall mouse_check_key_gpio_once,blank
+	arg 0,rega
+	call mouse_check_lkey_gpio
+	call mouse_check_rkey_gpio
+	call mouse_check_mkey_gpio
+	call mouse_check_bkkey_gpio
+	call mouse_check_fwkey_gpio
+	call mouse_check_firekey_gpio
+	call mouse_check_customerkey_gpio
+	copy rega,pdata
+	rtn
+
+mouse_check_key_gpio_once:
+	setarg 0x030303
+	store 3,mem_mouse_lkey_press_status
+	rtn
+
+mouse_check_lkey_gpio:
+	fetch 1,mem_lbutton_gpio
+	call mouse_gpio_config_output_high
+	jam MOUSE_L_KEY,mem_mouse_key_temp
+	fetcht 1,mem_lbutton_gpio
+	fetch 1,mem_mouse_lkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_lkey_press_status
+	fetcht 1,mem_lbutton_gpio
+	branch device_gpio_config_input_pu
+
+mouse_check_rkey_gpio:
+	fetch 1,mem_rbutton_gpio
+	call mouse_gpio_config_output_high
+	jam MOUSE_R_KEY,mem_mouse_key_temp
+	fetcht 1,mem_rbutton_gpio
+	fetch 1,mem_mouse_rkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_rkey_press_status
+	fetcht 1,mem_rbutton_gpio
+	branch device_gpio_config_input_pu
+	
+mouse_check_mkey_gpio:
+	fetch 1,mem_mbutton_gpio
+	call mouse_gpio_config_output_high
+	jam MOUSE_M_KEY,mem_mouse_key_temp
+	fetcht 1,mem_mbutton_gpio
+	fetch 1,mem_mouse_mkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_mkey_press_status
+	fetcht 1,mem_mbutton_gpio
+	branch device_gpio_config_input_pu
+
+mouse_check_bkkey_gpio:
+	fetch 1,mem_bk_button_gpio
+	rtneq GPIO_DISABLE
+	jam MOUSE_BK_KEY,mem_mouse_key_temp
+	fetch 1,mem_mouse_bkkey_press_status
+	copy pdata,regc
+	fetcht 1,mem_bk_button_gpio
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_bk_check
+	call gpio_get_bit
+	branch mouse_check_bk_button_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_bk_button_gpio
+	fetch 1,mem_mouse_bkkey_press_status
+	call mouse_check_key_connect_gnd
+mouse_check_bkkey_gpio_end:	
+	store 1,mem_mouse_bkkey_press_status
+	branch mouse_matrix_public_gpio_reset
+
+mouse_check_bk_button_connect_gnd:
+	fetcht 1,mem_matrix_public_gpio
+	fetch 1,mem_mouse_bkkey_press_status
+	call mouse_check_key_connect_gnd
+	branch mouse_check_bkkey_gpio_end
+
+mouse_3io6key_bk_check:
+	fetch 1,mem_bk_button_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_bk_button_gpio
+	call mouse_3io6key_check
+	store 1,mem_mouse_bkkey_press_status
+	fetcht 1,mem_bk_button_gpio
+	branch device_gpio_config_input_pu
+
+
+mouse_check_fwkey_gpio:
+	fetch 1,mem_fw_button_gpio
+	rtneq GPIO_DISABLE
+	jam MOUSE_FW_KEY,mem_mouse_key_temp
+	fetch 1,mem_mouse_fwkey_press_status
+	copy pdata,regc
+	fetcht 1,mem_fw_button_gpio
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_fw_check
+	call gpio_get_bit
+	branch mouse_check_fw_button_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_fw_button_gpio
+	fetch 1,mem_mouse_fwkey_press_status
+	call mouse_check_key_connect_gnd
+mouse_check_fwkey_gpio_end:	
+	store 1,mem_mouse_fwkey_press_status
+mouse_matrix_public_gpio_reset:	
+	fetcht 1,mem_matrix_public_gpio
+	branch device_gpio_config_input_pu
+
+mouse_check_fw_button_connect_gnd:
+	fetcht 1,mem_matrix_public_gpio
+	fetch 1,mem_mouse_fwkey_press_status
+	call mouse_check_key_connect_gnd
+	branch mouse_check_fwkey_gpio_end	
+
+mouse_3io6key_fw_check:
+	fetch 1,mem_fw_button_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_fw_button_gpio
+	call mouse_3io6key_check
+	store 1,mem_mouse_fwkey_press_status
+	fetcht 1,mem_fw_button_gpio
+	branch device_gpio_config_input_pu
+
+mouse_check_customerkey_gpio:
+	jam 0,mem_customer_key
+	fetch 1,mem_customer_key_gpio
+	rtneq GPIO_DISABLE
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_KEYBOARD
+	bbit1 MOUSE_ENABLE_CUSTOMER_KEY_CONNECT_VIN,mouse_customer_key_connect_vin
+mouse_customer_key_connect_gnd:
+	jam MOUSE_CUSTOMER_KEY,mem_mouse_key_temp
+	fetcht 1,mem_customer_key_gpio
+	fetch 1,mem_mouse_customerkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_customerkey_press_status
+mouse_check_customerkey_state:
+	copy rega,pdata
+	bbit1 MOUSE_CUSTOMER_KEY,mouse_customerkey_press
+	call mouse_customerkey_release
+mouse_check_customerkey_gpio_exit:
+	fetch 1,mem_customer_data_trigger
+	store 1,mem_customer_data_trigger_last
+	rtn
+
+mouse_customer_key_connect_vin:
+	jam MOUSE_CUSTOMER_KEY,mem_mouse_key_temp
+	fetch 1,mem_mouse_customerkey_press_status
+	copy pdata,regc
+	fetch 1,mem_customer_key_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_customer_key_gpio
+	call mouse_3io6key_check
+	store 1,mem_mouse_customerkey_press_status
+	call mouse_check_customerkey_state
+	fetcht 1,mem_customer_key_gpio
+	branch device_gpio_config_input_pu
+
+mouse_customerkey_press:
+	jam 1,mem_customer_data_trigger
+	call mouse_customer_key_need_send
+	branch mouse_check_customerkey_gpio_exit
+
+mouse_customerkey_release:
+	jam 0,mem_customer_data_trigger
+	fetch 1,mem_customer_data_trigger_last
+	rtn blank
+mouse_customer_key_need_send:	
+	jam 1,mem_customer_key
+	rtn	
+
+/*******************************matrix key end***************************/
+
+//mouse_check_matrix_button_connect_gnd:	
+//	call gpio_get_bit
+//	fetcht 1,mem_mouse_key_temp
+//	copy temp,queue	
+//	branch  mouse_key_press,true
+mouse_key_release:
+	qset0 rega
+	rtn	
+
+mouse_check_key_connect_gnd:	
+	lshift pdata,pdata
+	copy pdata,regb
+	call gpio_get_bit
+	setflag true,0,regb
+mouse_check_key_connect_gnd_next:
+	and regb,0x07,pdata
+	fetcht 1,mem_mouse_key_temp
+	copy temp,queue
+	beq 0x07,mouse_key_press		//  about 17~22ms three times
+	beq 0x00,mouse_key_release
+	rtn
+
+mouse_key_press:
+	qset1 rega
+	rtn
+
+mouse_3io6key_check:
+	bpatch patch11_1,mem_patch11
+	copy regc,pdata
+	store 1,mem_mouse_key_status
+	lshift pdata,pdata
+	copy pdata,regb
+	copy temp,regc
+	call device_gpio_config_input_pd
+	copy regc,temp
+	call gpio_get_bit
+	nsetflag true,0,regb
+	call mouse_check_press
+	branch mouse_check_key_connect_gnd_next
+
+mouse_check_press:
+	fetcht 1,mem_mouse_key_status
+	and_into 0x01,temp
+	and regb,0x01,pdata
+	isub temp,null
+	nbranch mouse_current_mult_update,zero
+	rtn
+	
+	
+//input:pdata gpio number
+mouse_gpio_config_output_high:
+	arg gpcfg_output_high,temp
+	branch gpio_config_function_int
+
+//input:pdata gpio number
+mouse_gpio_config_output_low:
+	arg gpcfg_output_low,temp
+	branch gpio_config_function_int	
+
+//input:pdata gpio number
+mouse_gpio_config_pu_check:
+	store 1,mem_device_temp_gpio
+	call mouse_gpio_config_output_high
+	fetcht 1,mem_device_temp_gpio
+	branch device_gpio_config_input_pu
+	
+//input:pdata gpio number
+mouse_gpio_config_pd_check:
+	store 1,mem_device_temp_gpio
+	call mouse_gpio_config_output_low
+	fetcht 1,mem_device_temp_gpio
+	branch device_gpio_config_input_pd	
+
+/*************************key***************************************/
+
+/**********************sensor******************************/	
+mouse_init_sunt:
+	bpatch patch11_2,mem_patch11
+	call mouse_sensor_spi_init
+	rtn wake
+mouse_init_sensor_wakeup:	
+	call mouse_sensor_poweron
+mouse_init_sensor:
+	bpatch patch11_3,mem_patch11
+	call mouse_read_sensor_id
+	beq P32XX_ID1,mouse_init_p32xx_id2_judge
+	beq P3065_ID1,mouse_init_p3065
+	beq PKA8G2_ID1,mouse_ka8g2_id2_judge
+	call mouse_twspi_reset
+	nop 6900
+	branch mouse_init_sensor
+mouse_twspi_reset:
+	fetcht 1,mem_mouse_sensor_sclk_gpio
+	call twspi_reset
+	branch mouse_spid_init_pin
+
+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 P_MX8650,mouse_mx8650_init_param
+	beq P8009_ID2,mouse_8009_init_param
+	beq P3205_TJ3T_ID2,mouse_S210X_3205_3t_judge
+	beq P3204_TJ3L_ID2,mouse_3204_3l_init_param
+	beq P3212_ID2,mouse_3212_init_param
+	beq PKA8_ID2,mouse_ka8_init_param_check
+	beq P6520A_ID2,mouse_p6520_init_param
+	branch mouse_init_sensor
+
+mouse_S210X_3205_3t_judge:
+	setarg 0x49		// id3
+	call twspi_read
+	beq 0xa1,mouse_S201X_init_param
+	branch mouse_3205_3t_init_param
+
+mouse_S201X_init_param:
+	jam S201X,mem_config_sensor_type
+	rtn
+	
+mouse_mx8650_init_param:
+	jam MX8650,mem_config_sensor_type
+	call mouse_sensor_reset
+	call delay_10ms
+	arg mem_sensor_8650_init,regc
+	branch mouse_sensor_poweron_end
+
+mouse_8009_init_param:
+	setarg 0x16
+	call twspi_read
+	sub pdata,0xbd,null 
+	nbranch mouse_init_sunt,zero
+	setarg 0x19
+	call twspi_read
+	sub pdata,0x55,null 
+	nbranch mouse_init_sunt,zero
+	setarg 0x1b
+	call twspi_read
+	sub pdata,0x1d,null 
+	nbranch mouse_init_sunt,zero
+	jam P8009,mem_config_sensor_type
+	arg mem_sensor_8009_init,regc
+	branch mouse_sensor_wr_seq
+
+mouse_3205_3t_init_param:
+	jam P3205,mem_config_sensor_type
+	arg mem_sensor_3205_init,regc
+	call mouse_sensor_wr_seq
+	arg mem_sensor_32xx_init,regc
+	call mouse_sensor_wr_seq
+	setarg 0x0943
+	call twspi_write
+	arg mem_sensor_32xx_init_1,regc
+	branch mouse_sensor_wr_seq	
+
+mouse_3204_3l_init_param:
+	jam P3204,mem_config_sensor_type
+	arg mem_sensor_3204_init,regc
+	call mouse_sensor_wr_seq
+	arg mem_sensor_32xx_init,regc
+	call mouse_sensor_wr_seq
+	arg mem_sensor_32xx_init_1,regc
+	branch mouse_sensor_wr_seq	
+
+mouse_3212_init_param:
+	jam P3212,mem_config_sensor_type
+	arg mem_sensor_3212_init,regc
+mouse_sensor_wr_seq:
+	ifetch 2,regc
+	arg 0xffff,temp
+	isub temp,null
+	rtn zero
+	call twspi_write
+	increase 2,regc
+	branch mouse_sensor_wr_seq
+
+mouse_ka8_init_param_check:	
+	call mouse_sensor_disable_wp
+	setarg 0x9a5b
+	call twspi_write
+	setarg 0x0d
+	call twspi_read
+	sub pdata,0x12,null
+	branch mouse_ka8ul_init_param,zero
+	sub pdata,0x0a,null
+	nbranch mouse_ka8hd_sensor_judge,zero
+	setarg 0x0e
+	call twspi_read
+	sub pdata,0xe5,null
+	nbranch mouse_init_sensor,zero
+	setarg 0x10
+	call twspi_read
+	sub pdata,0xa5,null
+	branch mouse_ka8ul_init_param,zero
+	call mouse_enable_ka8_sensor_wp
+mouse_ka8_init_param:
+	jam KA8,mem_config_sensor_type	
+	rtn
+mouse_ka8ul_init_param:
+	jam KA8_UL,mem_config_sensor_type	
+	arg mem_sensor_ka8ul_init,regc
+	branch mouse_sensor_wr_seq
+mouse_ka8hd_sensor_judge:
+	sub pdata,0x10,null
+	nbranch mouse_init_sensor,zero
+	setarg 0x0e
+	call twspi_read
+	sub pdata,0xc5,null
+	nbranch mouse_init_sensor,zero
+	setarg 0x10
+	call twspi_read
+	sub pdata,0x38,null
+	nbranch mouse_init_sensor,zero
+mouse_ka8hd_init_param:
+	call mouse_enable_ka8_sensor_wp
+	jam KA8_HD,mem_config_sensor_type
+	rtn
+mouse_enable_ka8_sensor_wp:
+	setarg 0x005b
+	call twspi_write
+	branch mouse_sensor_enable_wp
+	
+mouse_p6520_init_param:
+	jam P6520,mem_config_sensor_type
+	arg mem_sensor_p6520_init,regc
+	branch mouse_sensor_wr_seq
+	
+mouse_init_p3065:
+	call mouse_sensor_poweron
+	fetch 1,mem_sensor_id2
+	beq P3065_XY_ID2,mouse_p3065xy_init_param
+	beq P3065_ID2,mouse_p3065_init_param
+	branch mouse_init_sensor
+	
+mouse_p3065_init_param:	
+	jam P3065,mem_config_sensor_type
+	rtn
+
+mouse_p3065xy_init_param:
+	jam P3065_XY,mem_config_sensor_type
+	rtn
+	
+mouse_ka8g2_id2_judge:
+	call mouse_sensor_poweron
+	fetch 1,mem_sensor_id2
+	beq KA5857_ID2,mouse_ka5857_init_param
+	beq PKA8G2_ID2,mouse_ka8g2_init_param
+	branch mouse_init_p32xx_id2_judge
+mouse_ka8g2_init_param:
+	jam KA8G2,mem_config_sensor_type
+	arg mem_sensor_ka8g2_init,regc
+	branch mouse_sensor_wr_seq
+
+mouse_ka5857_init_param:
+	jam KA5857,mem_config_sensor_type
+	arg mem_sensor_ka5857_init,regc
+	branch mouse_sensor_poweron_end
+
+mouse_sensor_reset:	
+	arg 0x8006,temp
+	fetch 1,mem_config_sensor_type
+	bne KA8G2,mouse_sensor_reset_end
+	arg 0x9706,temp
+mouse_sensor_reset_end:
+	copy temp,pdata
+	call twspi_write
+	nop 12000
+	rtn
+
+mouse_sensor_poweron_init:
+	arg mem_sensor_poweron_init,regc
+	fetch 1,mem_config_sensor_type
+	rtnne KA8G2
+	arg mem_sensor_ka8g2_poweron_init,regc
+	rtn
+	
+mouse_sensor_poweron:
+	bpatch patch11_4,mem_patch11
+	call mouse_sensor_spi_init
+	call mouse_sensor_reset
+	call mouse_sensor_poweron_init
+mouse_sensor_poweron_end:
+	call mouse_sensor_wr_seq
+	branch mouse_setting_sensor_type
+
+mouse_sensor_powerdown:
+	bpatch patch11_5,mem_patch11
+	call mouse_init_sunt
+	call mouse_sensor_spi_init
+	arg 0x0806,temp
+	fetch 1,mem_config_sensor_type
+	bne KA8G2,mouse_sensor_powerdown_end
+	arg 0x1f06,temp
+mouse_sensor_powerdown_end:
+	copy temp,pdata
+	branch twspi_write
+/*********sensor init*************/	
+
+
+
+/*********sensor motion*************/
+mouse_check_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 P3065_xy,mouse_p32xx_sensor_motion
+	beq P8009,mouse_p8009_sensor_motion	
+	beq KA8G2,mouse_pka8g2_sensor_motion
+	beq KA5857,mouse_pka8g2_sensor_motion
+	branch mouse_p32xx_sensor_motion
+
+
+mouse_p32xx_sensor_motion:
+	call mouse_clear_sensor_data
+	disable user
+	fetch 1,mem_sensor_motion_gpio
+	beq GPIO_DISABLE,mouse_p32xx_sensor_motion_2
+	fetcht 1,mem_sensor_motion_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 mouse_data_extsign
+	store 2,mem_mouse_x
+	fetch 1,mem_mouse_y
+	call mouse_data_extsign
+	store 2,mem_mouse_y
+	fetch 1,mem_config_sensor_angle
+	beq MOUSE_6CLK_ANGLE,mouse_motion32xx_6clk_direction_selection
+	beq MOUSE_9CLK_ANGLE,mouse_motion32xx_9clk_direction_selection
+	beq MOUSE_12CLK_ANGLE,mouse_motion32xx_12clk_direction_selection
+	beq MOUSE_3CLK_ANGLE,mouse_motion32xx_3clk_direction_selection
+	rtn
+
+mouse_p3065_judge:
+	beq P3065_ID1,mouse_p32xx_sensor_motion_1
+	branch mouse_twspi_reset
+	
+mouse_motion32xx_6clk_direction_selection:
+	call mouse_motion_6clk_direction_dispose
+	branch mouse_sensor_sdio_low
+mouse_motion32xx_9clk_direction_selection:
+	call mouse_motion_9clk_direction_dispose
+	branch mouse_sensor_sdio_low
+mouse_motion32xx_12clk_direction_selection:
+	call mouse_motion_12clk_direction_dispose
+	branch mouse_sensor_sdio_low
+mouse_motion32xx_3clk_direction_selection:
+	call mouse_motion_3clk_direction_dispose
+	branch mouse_sensor_sdio_low
+
+
+	
+mouse_p3212_sensor_motion:
+	call mouse_clear_sensor_data
+	fetch 1,mem_sensor_motion_gpio
+	beq GPIO_DISABLE,mouse_p3212_sensor_motion_1
+	fetcht 1,mem_sensor_motion_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
+mouse_p3212_sensor_motion_2:
+	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 mouse_data_extsign_bit3
+	store 1,mem_mouse_x+1
+	fetch 1,mem_mouse_xy_h
+	and pdata,0x0f,pdata
+	call mouse_data_extsign_bit3
+	store 1,mem_mouse_y+1
+	fetch 1,mem_config_sensor_angle
+	beq MOUSE_6CLK_ANGLE,mouse_motion_6clk_direction_dispose
+	beq MOUSE_9CLK_ANGLE,mouse_motion_9clk_direction_dispose
+	beq MOUSE_12CLK_ANGLE,mouse_motion_12clk_direction_dispose
+	beq MOUSE_3CLK_ANGLE,mouse_motion_3clk_direction_dispose
+	rtn
+
+mouse_read_3212sensor_xy_high:
+	setarg 0x12
+	branch twspi_read
+
+mouse_pka8g2_sensor_motion:
+	call mouse_clear_sensor_data
+	fetch 1,mem_sensor_motion_gpio
+	beq GPIO_DISABLE,mouse_pka8g2_sensor_motion_1
+	fetcht 1,mem_sensor_motion_gpio
+	call gpio_get_bit
+	nrtn true
+mouse_pka8g2_sensor_motion_1:
+	setarg PAN_REG_PID_L
+	call twspi_read
+	bne PKA8G2_ID1,mouse_twspi_reset
+	branch mouse_p3212_sensor_motion_2
+
+
+mouse_p8009_sensor_motion:
+	call mouse_clear_sensor_data
+	disable user
+	setarg PAN_REG_MOTION_STAUS
+	call twspi_read
+	rtnbit0 7
+	setarg PAN_REG_OPRATION_STATE
+	call twspi_read
+	branch mouse_p32xx_sensor_motion_1+3,blank
+	setarg 0
+	store 6,mem_mouse_x
+	rtn
+
+mouse_motion_6clk_direction_dispose:
+	fetch 2,mem_mouse_x
+	sub pdata,0,pdata
+	store 2,mem_mouse_x
+	branch enable_user
+mouse_motion_12clk_direction_dispose:
+	fetch 2,mem_mouse_y
+	sub pdata,0,pdata
+	store 2,mem_mouse_y
+	branch enable_user
+mouse_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
+mouse_motion_3clk_direction_dispose:
+	call mouse_sensor_data_swap_places
+	branch enable_user
+
+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
+
+	
+mouse_clear_sensor_data:
+	fetch 1,mem_mouse_move_flag
+	call mouse_read_sensor_common,blank
+	jam 1,mem_mouse_move_flag
+	rtn
+
+mouse_clear_sensor_data_by_reset:
+	jam 1,mem_mouse_clear_sensor_data_flag
+	call le_set_config_more_data
+mouse_init_sensor_reset:
+	branch mouse_init_sunt
+
+mouse_data_xy_release:
+	fetch 1,mem_sensor_motion_gpio
+	rtnne GPIO_DISABLE
+	fetch 1,mem_mouse_long_mult_flag
+	rtn blank
+	increase -1,pdata
+	store 1,mem_mouse_long_mult_flag
+	setarg 0
+	store 4,mem_mouse_x
+	branch mouse_init_sensor_reset
+
+mouse_data_extsign:
+	rtnbit0 7
+	arg 0xff00,temp
+mouse_data_ior:
+	ior temp,pdata
+	rtn
+
+mouse_data_extsign_bit3:
+	rtnbit0 3
+	arg 0xf0,temp
+	branch mouse_data_ior
+
+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
+	branch mouse_data_y_store
+
+	/* sdio high will cost extra 9mA */
+mouse_sensor_sdio_low:
+	fetcht 1,mem_mouse_sensor_sdio_gpio
+	call gpio_get_bit
+	rtn true
+	setarg 0x0a
+	call twspi_read
+	nop 1000
+	branch mouse_sensor_sdio_low
+
+mouse_set_sdio_high:		// make sdio high to make 100uA less
+	setarg 0x8100
+	branch twspi_write
+	
+/****************************sensor*************************/
+
+/*******************mouse fast connect******************/
+mouse_bluetooth_fast_conn_init:
+	jam 0xff,mem_device_fast_conn_flag
+mouse_ble_fast_conn_init:	
+	jam 0x34,mem_xrecord_mode
+	setarg 0x0f0f0f
+	store 3,mem_le_lap
+	store 3,mem_le_lap+3
+	branch mouse_start_reconnect
+
+mouse_buletooth_fast_conn_end:
+	bpatch patch11_6,mem_patch11
+	call hid_device_select_reconn_device
+	call mouse_bluetooth_fast_conn_disable
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,mouse_device1_check_auto_discover
+	beq MODE_BT_DEVICE2,mouse_device2_check_auto_discover
+	rtn
+mouse_device1_check_auto_discover:
+	fetch 6,mem_device1_addr
+	branch mouse_device_check_auto_discover
+mouse_device2_check_auto_discover:
+	fetch 6,mem_device2_addr
+mouse_device_check_auto_discover:	
+	fetcht 6,mem_device_compare_addr
+	isub temp,null
+	branch mouse_start_discovery ,zero
+	branch mouse_start_reconnect_device
+
+mouse_bluetooth_fast_conn_disable:
+	jam 0x5a,mem_device_fast_conn_flag
+	rtn	
+/*******************mouse fast connect******************/
+
+mouse_stop_bluetooth_mode:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	branch mouse_stop_discovery
+mouse_disconnect:
+	setarg 0
+	store 2,mem_device_no_data_timer
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	rtn
+	
+mouse_check_125Hz:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_BT_125Hz
+mouse_bluetooth_125Hz:
+	nbranch mouse_bluetooth_125hz_clear,user
+	fetch 1,mem_bluetooth_125hz_cnt
+	increase 1,pdata
+	and_into 0x0f,pdata
+	store 1,mem_bluetooth_125hz_cnt
+	nrtn blank
+mouse_bluetooth_125hz_clear:
+	jam 0,mem_bluetooth_125hz_cnt
+	branch disable_user
+
+mouse_current_mult_update:
+	fetch 1,mem_sensor_motion_gpio
+	rtnne GPIO_DISABLE
+	jam 0,mem_lpm_mult
+	jam 30,mem_mouse_current_mult_timer
+	rtn
+
+
+mouse_priority_bb_event:	
+	bpatch patch11_7,mem_patch11
+	copy regc,pdata
+	beq BT_EVT_LE_CONNECTED,mouse_le_bb_event_connected
+	beq BT_EVT_LE_DISCONNECTED,mouse_le_bb_disconnected
+	beq BT_EVT_BUTTON_LONG_PRESSED,mouse_bb_event_discovery_btn
+	beq BT_EVT_LE_PAIRING_SUCCESS,mouse_le_pairing_success
+	beq BT_EVT_LE_ENC_INFO,mouse_le_enc_info
+	beq BT_EVT_LE_START_ENC,mouse_le_ll_start_encryt
+	beq BT_EVT_LE_PAIRING_COMPLETE,app_ble_store_reconn_info
+	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,mouse_le_conn_param_update_rsp_recieved
+	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
+	beq BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,mouse_le_parse_conn_param_accepted
+	rtn
+
+/***************************le*************************/
+mouse_le_bb_event_connected:
+	call mouse_device_poweron_led_config
+	jam 0,mem_mouse_long_mult_flag
+	call mouse_init_sensor_reset
+	jam 1,mem_device_le_bb_connected_flag
+	call mouse_24g_first_store_reconn_info
+	fetch 1,mem_device_le_reconnect_flag
+	nbranch mouse_le_bb_event_connected_next,blank
+	jam 0x14,mem_device_send_secutiry_request_timer
+mouse_le_bb_event_connected_next:
+	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
+	jam 0,mem_device_direct_timer
+	fetch 2,mem_le_battery_level_updata_timer_init
+	store 2,mem_le_battery_level_updata_timer
+	call mouse_no_data_timer_init
+	branch mouse_stop_discovery
+
+mouse_le_bb_disconnected:
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	jam 0,mem_device_le_bb_connected_flag
+	arg LE_INTERVAL_7_5MS,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_BT_125Hz,mouse_le_bb_disconnected_next
+	arg LE_INTERVAL_8_75MS,temp
+mouse_le_bb_disconnected_next:	
+	storet 2,mem_le_interval_min
+	storet 2,mem_le_interval_min+2
+	jam LE_LPM_ENABLE,mem_le_conn_param_reject
+	jam 0,mem_mouse_clear_sensor_data_flag
+	call le_clr_config_more_data
+	branch mouse_bb_disconnected
+
+mouse_le_pairing_success:
+	arg LL_PAIRING_SUCCESS_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_le_enc_info:
+mouse_updata_le_param:
+	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+mouse_le_ll_start_encryt:
+	fetch 1,mem_device_le_reconnect_flag
+	beq 1,mouse_le_ll_reconn_start_encryt
+	branch mouse_le_ll_enable_start_enc_flag
+mouse_le_ll_reconn_start_encryt:
+	call mouse_updata_le_param
+	jam 20,mem_le_start_encrypt_timer
+mouse_le_ll_enable_start_enc_flag:
+	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_conn_param_update_rsp_recieved:
+	fetch 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
+	rtneq BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
+	fetch 1,mem_le_tsniff
+	rshift2 pdata,pdata
+	sub pdata,LE_INTERVAL_15MS,null
+	rtn positive
+	setarg LE_INTERVAL_11_25MS
+	call mouse_le_interval_store
+	call mouse_updata_le_param
+mouse_le_conn_param_lpm_disable:
+	jam LE_LPM_DISABLE,mem_le_conn_param_reject
+	rtn
+
+mouse_le_bb_event_connect_complete:
+	fetch 1,mem_device_le_reconnect_flag
+	nrtn blank
+	fetch 1,mem_le_att_handle
+	sub pdata,34,pdata
+	nrtn zero
+	jam 0,mem_le_start_encrypt_timer
+mouse_le_write_enable:	
+	arg WRITE_REQ_ENABLE_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_le_parse_conn_param_accepted:
+	fetch 1,mem_le_new_conninterval
+	sub pdata,LE_INTERVAL_15MS,null
+	nbranch mouse_le_conn_param_lpm_disable,positive
+	call mouse_le_interval_store
+	fetch 1,mem_le_new_connslavelatency
+	branch mouse_le_lpm_mult_reinit,blank
+	fetcht 1,mem_lpm_mult_init
+	isub temp,null
+	branch mouse_le_lpm_mult_reinit,positive
+	fetch 1,mem_le_new_connslavelatency
+	store 1,mem_lpm_mult
+	branch mouse_le_conn_param_lpm_enable
+mouse_le_lpm_mult_reinit:
+	fetch 1,mem_lpm_mult_init
+	store 1,mem_lpm_mult
+mouse_le_conn_param_lpm_enable:
+	jam LE_LPM_ENABLE,mem_le_conn_param_reject
+	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_reconn_write_enable_timer_reinit:
+	fetch 1,mem_device_le_reconnect_flag
+	rtn blank
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtneq 0x03
+	jam 2,mem_le_start_encrypt_timer
+	rtn
+*/
+mouse_le:
+	bpatch patch12_0,mem_patch12
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,mouse_le_next
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtnne 0x03
+mouse_le_next:	
+	fetch 1,mem_mouse_clear_sensor_data_flag
+	call mouse_clear_sensor_data_by_reset,blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_24G_PAIRING_FLAG,hid_device_le_send_empty_packet
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,hid_device_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,hid_device_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,hid_device_le_send_empty_packet
+	call mouse_motion
+	call mouse_check_125Hz
+	nrtn user
+	call mouse_current_mult_update
+	call mouse_data_xy_release
+	call mouse_wheel_trigger
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,hid_device_le_send_mouse_data
+	branch hid_device_send_package_data_check
+
+mouse_fill_battery_level_le:
+	arg 1,rega
+	fetcht 2,mem_le_battery_level_handle
+	call le_att_malloc_tx_notify
+	fetch 1,mem_le_battery_level_percentage
+	branch   istore_1_contw_rtn
+
+
+mouse_check_51cmd_adv:
+	jam 0,mem_device_le_reconnect_flag
+	fetch 3,mem_le_adv_ind
+	store 3,mem_le_adv_data+4
+	call mouse_le_check_adv_flag
+	setarg ADV_FLAG_BREDR_NOT_SUPPORTED |ADV_FLAG_LIMITED_DISCOVERABLE
+	istore 1,contr
+	arg mem_le_adv_swift_pair,contr
+	call mouse_le_adv_data_update
+	branch check_51cmd_adv
+
+mouse_le_check_adv_flag:
+	arg mem_le_adv_data,rega
+mouse_le_check_adv_flag_loop:
+	ifetch 1,rega	//length
+	rtn blank
+	iadd contr,rega
+	ifetch 1,contr	//type
+	rtneq 0x01
+	branch mouse_le_check_adv_flag_loop
+	
+mouse_le_adv_data_update:
+	arg mem_le_adv_data+11,contw
+	arg 19,loopcnt
+	call memcpy
+	branch le_modified_name_adv
+	
+/***************************le*************************/
+mouse_le_parse_att:
+	bpatch patch12_1,mem_patch12
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_READ_REQUEST,mouse_le_parse_att_read_request
+	beq ATTOP_WRITE_REQUEST,mouse_le_parse_att_write_request	
+	branch le_parse_att2	
+
+mouse_le_parse_att_read_request:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL,le_parse_att_read_request
+	call le_check_encrypt_state
+	fetcht 2,mem_le_att_handle
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_READ_AUTH,mouse_le_send_att_read_response_check_auth
+//input:temp is handle
+mouse_le_send_att_read_response:
+	fetch 2,mem_le_att_handle
+	beq 0x30,le_send_att_error_response_notfound
+	fetcht 2,mem_le_att_handle
+	branch le_send_att_read_response
+
+mouse_le_send_att_read_response_check_auth:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch mouse_le_send_att_read_response,zero
+	nbranch mouse_le_send_att_read_response,user
+	branch le_send_att_read_response_error_insufficient_auth
+
+mouse_le_parse_att_write_request:		// mac os 10.9.5 reconnect can't move
+	copy contr,rega
+	fetch 2,mem_le_l2cap_size
+	add pdata,-3,regb
+	call le_writeatt_cb
+	branch hid_device_le_parse_att_write_request
+
+mouse_bb_disconnected:
+	bpatch patch12_2,mem_patch12
+	call mouse_bb_discon_clear_stack
+	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
+	branch mouse_start_discovery
+	
+mouse_bb_discon_clear_stack:
+	setarg 0
+	store 8,mem_wheel_tb_old_pinlevel
+	istore 2,contw             //clean wheel statue
+	jam 0,mem_mouse_move_flag
+	jam 0,mem_ltk_exists
+	rtn
+
+mouse4_0_event_bb_disconn:
+	jam 0,mem_le_connect_status_flag
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch mouse_app_enter_hibernate
+
+
+/********************mouse 100ms timer*****************/
+mouse_bb_event_timer:
+	bpatch patch12_3,mem_patch12
+	//adc
+	call mouse_low_voltage_led_timer
+	call mouse_adc_read
+	//led
+	call mouse_logo_led_on_timer
+	call mouse_led_multi_timer
+	call mouse_dpi_led_blink_delay_timer
+	//key
+	call mouse_dpi_key_check_long_press
+	call mouse_bt_discovery_check
+	call mouse_commbination_key_process
+	call mouse_commbination_dpi_check_timer
+	call mouse_commbination_key_select_device_timer
+
+	call mouse_current_mult_update_timer
+	call mouse_wheel_trigger_timer
+	call mouse_store_information_delay_timer
+	call mouse_check_no_data_timeout_timer
+	
+	//24g
+	call mouse_24g_long_sleep_param_update_timer
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+
+	//ble
+	call mouse_check_discovery_timeout_timer
+	call mouse_check_direct_timeout_timer
+	call mouse_le_enable_att_list_timer
+	call mouse_le_battery_updata_timer
+	branch mouse_le_send_smp_security_request_timer	
+
+/***********************************100MS TIMER******************************************/
+
+mouse_bt_discovery_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
+mouse_bt_discovery_by_pb_button:
+	fetch 1,mem_select_device_button_statue
+	rtnne PB_BUTTON_STATE_DOWN
+	arg mem_bt_discovery_count,regc
+	arg mouse_long_button_bt_discovery,regb
+	branch timer_single_step
+		
+mouse_long_button_bt_discovery:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_enable_function_flag
+	call app_evt_button_long_pressed
+	branch mouse_bb_event_discovery_btn
+
+mouse_commbination_dpi_check_timer:
+	fetch 1,mem_mouse_commbination_key_dpi
+	rtneq GPIO_DISABLE
+	fetch 1,mem_mouse_pair_flag
+	rtn blank
+	call mouse_check_key_gpio
+	and rega,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key_dpi
+	isub temp,null
+	branch mouse_commbination_dpi_check,zero
+	fetch 1,mem_mouse_commbination_dpi_timer
+mouse_commbination_key_count_init:
+	store 1,mem_mouse_commbination_key_count
+	rtn
+	
+mouse_commbination_dpi_check:	
+	arg mem_mouse_commbination_key_count,regc
+	arg mouse_dpi_process_skip_ghost,regb
+	branch timer_single_step
+
+
+mouse_retransmit_commbination_key_check:
+	fetch 1,mem_24g_shutdown_flag
+	rtn blank
+mouse_commbination_key_select_device_timer:
+	fetch 1,mem_mouse_commbination_key_select_device
+	rtneq GPIO_DISABLE
+	call mouse_check_key_gpio
+	and rega,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key_select_device
+	isub temp,null
+	branch p_mouse_check_mouse_key_select_device_set,zero
+	fetch 1,mem_mouse_commbination_select_device_timer
+	branch mouse_commbination_key_count_init
+	
+p_mouse_check_mouse_key_select_device_set:
+	arg mem_mouse_commbination_key_count,regc
+	arg mouse_ready_reconnection_by_button,regb
+	branch timer_single_step
+		
+mouse_commbination_key_process:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_commbination_key_process
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+	fetcht 1,mem_mouse_commbination_key_bt
+	branch mouse_commbination_key_start
+
+mouse_24g_commbination_key_process:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+	fetcht 1,mem_mouse_commbination_key_24g
+mouse_commbination_key_start:
+	storet 1,mem_mouse_commbination_key
+	call mouse_check_key_gpio
+	and rega,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key
+	isub temp,null
+	branch mouse_commbination_key_down,zero
+mouse_commbination_key_up:
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_combination_ui_button_count	//combination key timer init 
+	fetch 1,mem_commbination_key_statue
+	rtneq COMMBINATION_KEY_STATE_UP
+	jam COMMBINATION_KEY_STATE_UP,mem_commbination_key_statue	
+	rtn
+		
+mouse_commbination_key_down:
+	call mouse_combination_ui_timer
+	fetch 1,mem_commbination_key_statue
+	rtneq COMMBINATION_KEY_STATE_DOWN
+	jam COMMBINATION_KEY_STATE_DOWN,mem_commbination_key_statue
+	rtn
+
+mouse_combination_ui_timer:
+	arg mouse_24g_start_pair_mode,regb
+	arg mem_combination_ui_button_count,regc
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,timer_single_step
+	arg mouse_long_button_bt_discovery,regb
+	call timer_single_step
+	fetch 1,mem_combination_ui_button_count
+	beq 1,mouse_bt_discovery_button_down_enable	// ble release key press
+	rtn
+
+mouse_check_discovery_timeout_timer:	
+	arg mem_device_discovery_timer,regc
+	arg mouse_check_discovery_timeout,regb
+	branch timer_single_step_2B
+
+mouse_check_discovery_timeout:
+	call mouse_stop_discovery
+	branch mouse_app_enter_hibernate
+
+mouse_check_direct_timeout_timer:	
+	arg mem_device_direct_timer,regc
+	arg mouse_check_direct_timeout,regb
+	call timer_single_step
+	fetch 1,mem_device_direct_timer
+	beq 1,app_ble_stop_direct_adv
+	rtn
+
+mouse_check_direct_timeout:
+	fetch 1,mem_device_fast_conn_flag
+	beq 0xff,mouse_buletooth_fast_conn_end
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY,mouse_start_discovery
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_first_bb_event_reconn_timeout
+	branch mouse_app_enter_hibernate
+	
+mouse_le_enable_att_list_timer:
+	arg mem_le_start_encrypt_timer,regc
+	arg mouse_le_write_enable,regb
+	branch timer_single_step
+
+mouse_le_send_smp_security_request_timer:
+	fetch 1,mem_device_le_bb_connected_flag
+	rtn blank
+	arg mem_device_send_secutiry_request_timer,regc
+	arg mouse_le_pairing_sm_start_check,regb
+	branch timer_single_step
+mouse_le_pairing_sm_start_check:
+	fetch 1,mem_device_le_reconnect_flag
+	nrtn blank
+	fetch 1,mem_le_pairing_state
+	rtnne FLAG_LE_PAIRING_NULL
+	branch le_pairing_sm_start
+
+mouse_le_battery_updata_timer:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+	arg mem_le_battery_level_updata_timer,regc
+	arg mouse_le_battery_level_updata,regb
+	branch timer_single_step
+
+mouse_le_battery_level_updata:
+	fetch 2,mem_le_battery_level_updata_timer_init
+	store 2,mem_le_battery_level_updata_timer
+	branch mouse_fill_battery_level_le
+	
+mouse_le_enable_att_list:	
+	fetch 1,mem_le_connect_status_flag
+	rtnbit1 LL_PAIRING_SUCCESS_FLAG
+	call mouse_updata_le_param
+	arg WRITE_REQ_ENABLE_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_current_mult_update_timer:
+	arg mem_mouse_current_mult_timer,regc
+	arg mouse_current_mult_reinit,regb
+	branch timer_single_step
+mouse_current_mult_reinit:
+	fetch 1,mem_lpm_mult_init
+	store 1,mem_lpm_mult
+mouse_long_mult_init:
+	fetch 1,mem_mouse_long_mult_count
+	store 1,mem_mouse_long_mult_flag
+	rtn
+
+mouse_check_no_data_timeout_timer:	
+	arg mem_device_no_data_timer,regc
+	arg mouse_check_no_data_timeout,regb
+	branch timer_single_step_2B
+
+mouse_check_no_data_timeout:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_hibernate_set
+	branch mouse_disconnect
+	
+mouse_no_data_timer_init:
+	fetch 2,mem_device_no_data_timeout
+	store 2,mem_device_no_data_timer
+	rtn
+
+mouse_store_information_delay_timer:
+	arg mem_store_information_delay_timer,regc
+	arg mouse_store_device_info_check,regb
+	branch timer_single_step
+
+mouse_store_device_info_check:
+	call mouse_store_device_info
+	fetch 1,mem_device_need_soft_reset
+	nbranch mouse_soft_reset,blank
+	rtn
+
+/***********************************100MS TIMER END******************************************/
+
+mouse_bb_event_discovery_btn:
+	isolate1 mark_24g,mark
+	call mouse_24g_stop,true
+	call mouse_disconnect
+	jam 0,mem_le_connect_status_flag
+	branch mouse_start_discovery
+	
+mouse_start_discovery:
+	bpatch patch12_4,mem_patch12
+	call mouse_device_discovery_led_config
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BLE_ADV,pdata
+	call mouse_stop_le_adv,true		//reconnect adv
+	call mouse_bluetooth_fast_conn_disable
+	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
+	fetcht 1,mem_random_addr_increase_count
+	increase 1,temp
+	storet 1,mem_random_addr_increase_count
+	storet 1,mem_le_lap+2
+	random pdata					//random ble addr
+	store 2,mem_le_lap
+mouse_start_discovery_norandom:
+	fetch 3,mem_device_le_lap_temp
+	store 3,mem_le_lap+3
+	call app_lpm_mult_disable
+	fetch 2,mem_device_discovery_timeout
+	store 2,mem_device_discovery_timer
+	setarg 0
+	store 2,mem_device_no_data_timer
+	store 2,mem_le_battery_level_updata_timer
+	store 1,mem_device_direct_timer
+	store 1,mem_mouse_clear_sensor_data_flag
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_enable_function_flag
+	call mouse_bt_discovery_button_down_disable
+	branch mouse_check_51cmd_adv
+
+mouse_stop_discovery:
+	bpatch patch12_5,mem_patch12
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_disable_function_flag
+mouse_stop_le_adv:
+	setarg 0
+	store 1,mem_device_direct_timer
+	store 2,mem_device_discovery_timer
+	branch check_51cmd_stop_adv
+
+mouse_store_remote_bdaddr:
+	bpatch patch12_6,mem_patch12
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_STORE_EEPROM_FLAG
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_disable_function_flag
+	call hid_device_check_device_addr
+mouse_unplug_clean_bdaddr:
+	call hid_device_before_store_reconn_info
+	branch mouse_store_device_info_delay
+	
+/******************************store info start**************************************/
+	
+mouse_store_device_info_delay:	
+	fetch 1,mem_store_information_delay_timer_init
+	store 1,mem_store_information_delay_timer
+	rtn
+
+mouse_store_device_info:
+	bpatch patch12_7,mem_patch12
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eeprom_device_info
+	bbit1 MOUSE_ENABLE_FLASH,mouse_store_flash_device_info
+	bbit1 MOUSE_ENABLE_OTP,mouse_store_otp_device_info
+	rtn
+
+mouse_store_dpi_info_check:
+	bpatch patch13_0,mem_patch13
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eerpom_dpi
+	bbit1 MOUSE_ENABLE_OTP,mouse_store_otp_dpi
+	bbit1 MOUSE_ENABLE_FLASH,mouse_store_flash_device_info
+	rtn
+
+
+/******************eeprom data store****************/
+mouse_store_eeprom_device_info:
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg MOUSE_INFO_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data
+
+mouse_store_eerpom_dpi:
+	arg 1,temp
+	arg mem_mouse_dpi,rega
+	arg MOUSE_DPI_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data
+	
+
+/******************flash data store****************/
+mouse_store_flash_device_info:
+	call 	hid_device_store_flash_device_info
+	branch mouse_sensor_spi_init
+
+
+
+/******************otp data store****************/
+mouse_store_otp_device_info:
+	call mouse_write_otp_app_initflag
+	call mouse_write_otp_device_flag
+	call mouse_write_otp_device_info
+	branch mouse_write_otp_le_addr_increase_count_info
+
+mouse_write_otp_app_initflag:
+	call mouse_otp_load_app_initflag
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	rtn zero
+	branch mouse_otp_store_app_initflag
+
+/**********otp device flag store********/
+mouse_write_otp_device_flag:
+	fetchr regb,2,mem_otp_offset_device_flag
+	copy regb,regc
+mouse_write_otp_device_flag_loop:
+	call mouse_read_otp_device_flag_common
+	fetch 1,mem_device_otp_flag_temp
+	branch mouse_device_flag_store,blank
+	store 1,mem_device_flag_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_device_flag_end
+	isub regc,null
+	nrtn positive
+	copy regc,regb
+	branch mouse_write_otp_device_flag_loop
+
+mouse_device_flag_store:
+	fetch 1,mem_device_flag_last
+	and pdata,0xf0,pdata
+	branch mouse_device_flag_store_check,blank
+	
+	fetch 1,mem_device_flag
+	call mouse_device_flag_otp_store_judge			// add device_flag check
+	store 1,mem_device_flag_value
+	
+mouse_devoce_flag_store_end:	
+	arg 1,loopcnt
+	copy regc,regb
+	arg mem_device_flag_value,rega
+	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
+
+mouse_device_flag_store_check:
+	fetcht 1,mem_device_flag_last
+	fetch 1,mem_device_flag
+	call mouse_device_flag_otp_store_judge
+	
+	isub temp,null
+	rtn zero
+	lshift4 pdata,pdata
+	iadd temp,pdata
+	store 1,mem_device_flag_value
+	
+	copy regc,pdata
+	fetcht 2,mem_otp_offset_device_flag
+	isub temp,null
+	branch mouse_devoce_flag_store_end,zero
+	
+	increase -1,regc
+	branch mouse_devoce_flag_store_end
+
+mouse_device_flag_otp_store_judge:
+	rtnne MODE_24G_DEVICE
+	increase 4,pdata
+	rtn
+
+/**********otp addr store********/
+mouse_write_otp_device_info:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_write_otp_24g_addr
+	beq MODE_BT_DEVICE1,mouse_write_otp_le_device1
+	beq MODE_BT_DEVICE2,mouse_write_otp_le_device2
+	rtn
+
+mouse_write_otp_24g_addr:
+	fetchr regb,2,mem_otp_offset_24g_addr
+	copy regb,regc
+mouse_otp_store_24g_addr_loop:
+	call mouse_read_otp_24g_addr_common
+	fetch 4,mem_mouse_24g_addr_temp
+	branch mouse_24g_addr_store,blank	
+	store 4,mem_mouse_24g_addr_last
+	increase 4,regc
+	fetch 2,mem_otp_offset_24g_addr_end
+	isub regc,null
+	nrtn positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_otp_store_24g_addr_loop
+
+mouse_24g_addr_store:
+	fetch 4,mem_mouse_24g_addr_last
+	fetcht 4,mem_device_24g_addr
+	isub temp,null
+	rtn zero
+	arg 4,loopcnt
+	arg mem_device_24g_addr,rega
+	copy regc,regb
+	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
+
+mouse_write_otp_le_device1:
+	fetchr regb,2,mem_otp_offset_le_addr1
+	copy regb,regc
+mouse_otp_store_le_addr1_loop:
+	call mouse_read_otp_le_addr1_common
+	fetch 6,mem_mouse_le_addr1_temp
+	branch mouse_le_addr1_store,blank	
+	store 6,mem_mouse_le_addr1_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_addr1_end
+	isub regc,null
+	nrtn positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_otp_store_le_addr1_loop
+
+mouse_le_addr1_store:
+	fetch 6,mem_mouse_le_addr1_last
+	fetcht 6,mem_device1_addr
+	isub temp,null
+	rtn zero
+	arg 6,loopcnt
+	arg mem_device1_addr,rega
+	copy regc,regb
+	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
+
+
+mouse_write_otp_le_device2:
+	fetchr regb,2,mem_otp_offset_le_addr2
+	copy regb,regc
+mouse_otp_store_le_addr2_loop:
+	call mouse_read_otp_le_addr2_common
+	fetch 6,mem_mouse_le_addr2_temp
+	branch mouse_le_addr2_store,blank	
+	store 6,mem_mouse_le_addr2_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_addr2_end
+	isub regc,null
+	nrtn positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_otp_store_le_addr2_loop
+
+mouse_le_addr2_store:
+	fetch 6,mem_mouse_le_addr2_last
+	fetcht 6,mem_device2_addr
+	isub temp,null
+	rtn zero
+	arg 6,loopcnt
+	arg mem_device2_addr,rega
+	copy regc,regb
+	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
+
+
+/**************store le addr increase count**********/
+mouse_write_otp_le_addr_increase_count_info:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	fetchr regb,2,mem_otp_offset_le_addr_increase_count
+	copy regb,regc
+mouse_otp_store_le_addr_increase_count_loop:
+	call mouse_read_otp_le_addr_increase_count_common
+	fetch 1,mem_random_addr_increase_count_temp
+	branch mouse_le_addr_increase_count_store,blank	
+	store 1,mem_random_addr_increase_count_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_le_addr_increase_count_end
+	isub regc,null
+	nrtn positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_otp_store_le_addr_increase_count_loop
+
+mouse_le_addr_increase_count_store:
+	fetch 1,mem_random_addr_increase_count_last
+	fetcht 1,mem_random_addr_increase_count
+	isub temp,null
+	rtn zero
+	arg 1,loopcnt
+	arg mem_random_addr_increase_count,rega
+	copy regc,regb
+	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
+
+
+/**********otp dpi store********/
+mouse_store_otp_dpi:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_LOAD_AND_STORE_DPI
+	fetchr regb,2,mem_otp_offset_dpi
+	copy regb,regc
+mouse_otp_store_dpi_loop:
+	call mouse_read_otp_dpi_common
+	fetch 1,mem_mouse_dpi_temp
+	branch mouse_otp_dpi_store,blank
+	store 1,mem_mouse_dpi_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_dpi_end
+	isub regc,null
+	nrtn positive
+	copy regc,regb
+	branch mouse_otp_store_dpi_loop
+
+mouse_otp_dpi_store:
+	fetch 1,mem_mouse_dpi_last
+	and pdata,0xf0,pdata
+	branch mouse_dpi_store_last_check,blank
+	fetch 1,mem_mouse_dpi
+	call mouse_dpi_otp_store_judge	//add dpi check
+	store 1,mem_mouse_otp_dpi_value
+mouse_dpi_store_end:	
+	arg 1,loopcnt
+	copy regc,regb
+	arg mem_mouse_otp_dpi_value,rega
+	branch otp_write			/* regb = otp address, rega pointers data, loopcnt is count */
+
+mouse_dpi_store_last_check:
+	fetcht 1,mem_mouse_dpi_last
+	fetch 1,mem_mouse_dpi
+	call mouse_dpi_otp_store_judge
+	isub temp,null
+	rtn zero
+	lshift4 pdata,pdata
+	iadd temp,pdata
+	store 1,mem_mouse_otp_dpi_value
+	
+	copy regc,pdata
+	fetcht 2,mem_otp_offset_dpi
+	isub temp,null
+	branch mouse_dpi_store_end,zero
+	
+	increase -1,regc
+	branch mouse_dpi_store_end
+
+mouse_dpi_otp_store_judge:
+	rtnne MOUSE_DPI_LEVEL1
+	increase 7,pdata
+	rtn
+	
+/******************************store info end**************************************/
+	
+
+
+/******************************load info start**************************************/
+
+mouse_device_flag_check:
+	fetch 1,mem_device_flag
+	sub pdata,4,null
+	rtn positive
+	call set_pdata_0
+	branch mouse_store_device_flag
+
+/******************eeprom data load****************/
+mouse_load_eeprom_info_check:
+	call iicd_read_init_pin
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_ENABLE_2K_EEPROM,pdata
+	ncall clear_eeprom_size_2k,true
+	call set_eeprom_size_2k,true
+	call mouse_eeprom_load_recon_info
+	call mouse_device_flag_check
+	branch mouse_app_initflag_load_check
+
+mouse_eeprom_load_recon_info:
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg MOUSE_INFO_EEPROM_OFFECT,regb
+	branch iicd_read_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
+
+
+/******************flash data load****************/
+mouse_load_flash_info_check:
+	call hid_device_load_flash_info_check
+	call mouse_device_flag_check
+	call mouse_app_initflag_load_check
+	branch mouse_sensor_spi_init
+	
+mouse_information_flash_parameters:
+	setarg mem_device_information_end
+	arg mem_device_information_start,temp
+	isub temp,temp
+	fetch 3,mem_flash_base
+	arg mem_device_information_start,rega
+	rtn
+	
+mouse_spid_flash_release_form_powerdown:
+	jam FLASH_COMMAND_RELEASE_FROM_POWERDOWN,mem_temp
+mouse_spid_write_flash_cmd:
+	call delay_nop100
+	call spid_unlock_flash
+	arg mem_write_flash_head_temp,rega
+	fetcht 1,mem_temp
+	call mouse_spid_write_flash_cmd_common
+	branch delay_nop100
+
+mouse_spid_flash_powerdown:
+	jam FLASH_COMMAND_POWERDOWN,mem_temp
+	branch mouse_spid_write_flash_cmd
+
+mouse_spid_write_flash_cmd_common:
+	istoret 1,rega
+	rshift16 pdata,temp
+	istoret 1,contw
+	rshift8 pdata,temp
+	istoret 1,contw
+	istore 1,contw
+	deposit rega
+	store 2,core_spid_txaddr
+	setarg 0
+	store 2,core_spid_rxlen
+	jam spid_start,core_misc_ctrl
+	branch wait_spid_done
+		
+mouse_flash_erase_sector:
+	fetch 3,mem_flash_base
+	store 3,mem_spi_write_addr
+	branch spid_flash_erase_sector+2
+
+mouse_spid_write_flash:
+	copy pdata,regc
+	copy rega,pdata
+	increase -4,pdata
+	copy pdata,regb
+	ifetch 4,regb
+	store 4,mem_write_flash_head_temp
+	copy regc,pdata
+	call spid_write_flash
+	fetch 4,mem_write_flash_head_temp
+	istore 4,regb
+	rtn
+
+mouse_flash_power_down:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_FLASH
+	call mouse_spid_flash_powerdown
+	call twspi_enable	// 2 wire mode
+	fetcht 1,mem_spi_cs_gpio		//disable flash
+	call gpio_out_inactive
+	fetcht 1,mem_spi_hold_gpio
+	branch device_gpio_config_input_pd
+
+
+/******************otp data load****************/
+mouse_load_otp_info_check:
+	call mouse_read_otp_dpi
+	call mouse_read_otp_device_flag
+	call mouse_device_flag_check
+	call mouse_read_otp_device_info
+mouse_app_initflag_load_check:
+	bpatch patch13_1,mem_patch13
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_ENABLE_OTP,pdata
+	call mouse_otp_load_app_initflag,true
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	branch hid_device_load_device_info,zero
+mouse_app_initflag_load:
+	storet 2,mem_store_flag
+	call hid_device_ble_init_address
+	fetch 1,mem_device_flag_temp
+	store 1,mem_device_flag
+	store 1,mem_random_addr_increase_count
+mouse_load_default_dpi:
+	fetch 1,mem_config_sensor_dpi
+mouse_temp_store_dpi:
+	store 1,mem_mouse_dpi
+	rtn
+
+mouse_otp_load_app_initflag:
+	arg 2,loopcnt
+	fetchr regb,2,mem_otp_offset_app_initflag
+	arg mem_store_flag,rega
+	branch otp_read_data
+	
+mouse_otp_store_app_initflag:
+	arg 2,loopcnt
+	arg mem_store_flag,rega
+	fetchr regb,2,mem_otp_offset_app_initflag
+	branch otp_write
+
+/**************load device flag**********/
+mouse_read_otp_device_flag:
+	fetchr regb,2,mem_otp_offset_device_flag
+	copy regb,regc
+mouse_read_otp_device_flag_loop:
+	call mouse_read_otp_device_flag_common
+	fetch 1,mem_device_otp_flag_temp
+	branch mouse_device_flag_load,blank	
+	store 1,mem_device_flag_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_device_flag_end
+	isub regc,null
+	nbranch mouse_device_flag_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_device_flag_loop
+
+mouse_read_otp_device_flag_common:
+	arg 1,loopcnt
+	arg mem_device_otp_flag_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
+
+mouse_device_flag_load:
+	fetch 1,mem_device_flag_last
+	copy pdata,temp
+	and pdata,0xf0,pdata
+	branch mouse_device_flag_load_last,blank
+	rshift4 pdata,pdata
+	branch mouse_device_flag_load_end
+
+mouse_device_flag_load_last:
+	copy temp,pdata
+mouse_device_flag_load_end:
+	sub pdata,0,null
+	branch mouse_device_flag_temp_load,zero
+	sub pdata,4,null
+	call set_pdata_0,zero
+mouse_store_device_flag:
+	store 1,mem_device_flag
+	rtn
+
+mouse_device_flag_temp_load:
+	fetch 1,mem_device_flag_temp
+	branch mouse_store_device_flag
+
+/****************otp load addr*************/
+mouse_read_otp_device_info:
+	call mouse_read_otp_24g_addr
+	call mouse_read_otp_le_device1
+	call mouse_read_otp_le_device2
+	branch mouse_read_otp_le_addr_increase_count_info
+	
+mouse_read_otp_le_device1:
+	call mouse_read_otp_le_device1_addr
+	branch mouse_read_otp_le_device1_locall_addr
+
+mouse_read_otp_le_device2:
+	call mouse_read_otp_le_device2_addr
+	branch mouse_read_otp_le_device2_locall_addr
+
+/*************************load le addr1**********************************/
+mouse_read_otp_le_device1_addr:
+	fetchr regb,2,mem_otp_offset_le_addr1
+	copy regb,regc
+mouse_read_otp_le_device1_addr_loop:
+	call mouse_read_otp_le_addr1_common	
+	fetch 6,mem_mouse_le_addr1_temp
+	branch mouse_le_addr1_load,blank	
+	store 6,mem_mouse_le_addr1_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_addr1_end
+	isub regc,null
+	nbranch mouse_le_addr1_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_device1_addr_loop
+
+mouse_read_otp_le_addr1_common:
+	arg 6,loopcnt
+	arg mem_mouse_le_addr1_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */	
+
+mouse_le_addr1_load:
+	fetch 6,mem_mouse_le_addr1_last
+	store 6,mem_device1_addr
+	rtn
+
+
+mouse_read_otp_le_device1_locall_addr:
+	fetchr regb,2,mem_otp_offset_le_locall_addr1
+	copy regb,regc
+mouse_read_otp_le_device1_locall_addr_loop:
+	call mouse_read_otp_le_locall_addr1_common	
+	fetch 6,mem_mouse_le_locall_addr1_temp
+	branch mouse_le_locall_addr1_load,blank	
+	store 6,mem_mouse_le_locall_addr1_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_locall_addr1_end
+	isub regc,null
+	nbranch mouse_le_locall_addr1_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_device1_locall_addr_loop
+
+mouse_read_otp_le_locall_addr1_common:
+	arg 6,loopcnt
+	arg mem_mouse_le_locall_addr1_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */	
+
+mouse_le_locall_addr1_load:
+	fetch 6,mem_mouse_le_locall_addr1_last
+	fetcht 6,mem_device_compare_addr
+	isub temp,null
+	call mouse_device_le_locall_addr1_init,zero
+	store 6,mem_device1_locall_addr
+	rtn
+
+mouse_device_le_locall_addr1_init:
+	fetch 6,mem_le_lap
+	rtn
+
+/*************************load le addr2**********************************/
+mouse_read_otp_le_device2_addr:
+	fetchr regb,2,mem_otp_offset_le_addr2
+	copy regb,regc
+mouse_read_otp_le_device2_addr_loop:
+	call mouse_read_otp_le_addr2_common	
+	fetch 6,mem_mouse_le_addr2_temp
+	branch mouse_le_addr2_load,blank	
+	store 6,mem_mouse_le_addr2_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_addr2_end
+	isub regc,null
+	nbranch mouse_le_addr2_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_device2_addr_loop
+
+mouse_read_otp_le_addr2_common:
+	arg 6,loopcnt
+	arg mem_mouse_le_addr2_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */	
+
+mouse_le_addr2_load:
+	fetch 6,mem_mouse_le_addr2_last
+	store 6,mem_device2_addr
+	rtn
+
+
+mouse_read_otp_le_device2_locall_addr:
+	fetchr regb,2,mem_otp_offset_le_locall_addr2
+	copy regb,regc
+mouse_read_otp_le_device2_locall_addr_loop:
+	call mouse_read_otp_le_locall_addr2_common	
+	fetch 6,mem_mouse_le_locall_addr2_temp
+	branch mouse_le_locall_addr2_load,blank	
+	store 6,mem_mouse_le_locall_addr2_last
+	increase 6,regc
+	fetch 2,mem_otp_offset_le_locall_addr2_end
+	isub regc,null
+	nbranch mouse_le_locall_addr2_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_device2_locall_addr_loop
+
+mouse_read_otp_le_locall_addr2_common:
+	arg 6,loopcnt
+	arg mem_mouse_le_locall_addr2_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */	
+
+mouse_le_locall_addr2_load:
+	fetch 6,mem_mouse_le_locall_addr2_last
+	fetcht 6,mem_device_compare_addr
+	isub temp,null
+	call mouse_device_le_locall_addr2_init,zero
+	store 6,mem_device2_locall_addr
+	rtn
+
+mouse_device_le_locall_addr2_init:
+	fetch 6,mem_le_lap
+	add pdata,0x0100,pdata
+	rtn
+
+/**************load 24g addr**********/
+mouse_read_otp_24g_addr:
+	fetchr regb,2,mem_otp_offset_24g_addr
+	copy regb,regc
+mouse_read_otp_24g_addr_loop:
+	call mouse_read_otp_24g_addr_common
+	fetch 4,mem_mouse_24g_addr_temp
+	branch mouse_24g_addr_load,blank	
+	store 4,mem_mouse_24g_addr_last
+	increase 4,regc
+	fetch 2,mem_otp_offset_24g_addr_end
+	isub regc,null
+	nbranch mouse_24g_addr_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_24g_addr_loop
+
+mouse_read_otp_24g_addr_common:
+	arg 4,loopcnt
+	arg mem_mouse_24g_addr_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
+	
+mouse_24g_addr_load:
+	fetch 4,mem_mouse_24g_addr_last
+	store 4,mem_device_24g_addr
+	rtn
+
+/**************load le addr increase count**********/
+mouse_read_otp_le_addr_increase_count_info:
+	fetchr regb,2,mem_otp_offset_le_addr_increase_count
+	copy regb,regc
+mouse_read_otp_le_addr_increase_count_loop:
+	call mouse_read_otp_le_addr_increase_count_common
+	fetch 1,mem_random_addr_increase_count_temp
+	branch mouse_le_addr_increase_count_load,blank	
+	store 1,mem_random_addr_increase_count_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_le_addr_increase_count_end
+	isub regc,null
+	nbranch mouse_le_addr_increase_count_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_le_addr_increase_count_loop
+
+mouse_read_otp_le_addr_increase_count_common:
+	arg 1,loopcnt
+	arg mem_random_addr_increase_count_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
+	
+mouse_le_addr_increase_count_load:
+	fetch 1,mem_random_addr_increase_count_last
+	store 1,mem_random_addr_increase_count
+	rtn
+
+/*************load dpi**********/
+mouse_read_otp_dpi:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_LOAD_AND_STORE_DPI,mouse_load_default_dpi
+	fetchr regb,2,mem_otp_offset_dpi
+	copy regb,regc
+mouse_read_otp_dpi_loop:
+	call mouse_read_otp_dpi_common	
+	fetch 1,mem_mouse_dpi_temp
+	branch mouse_dpi_load,blank	
+	store 1,mem_mouse_dpi_last
+	increase 1,regc
+	fetch 2,mem_otp_offset_dpi_end
+	isub regc,null
+	nbranch mouse_dpi_load,positive	//if read end,retention last value
+	copy regc,regb
+	branch mouse_read_otp_dpi_loop
+
+mouse_read_otp_dpi_common:
+	arg 1,loopcnt
+	arg mem_mouse_dpi_temp,rega
+	branch otp_read_data				/* regb=otp address, rega points to data, loopcnt is count */
+
+mouse_dpi_load:
+	fetch 1,mem_mouse_dpi_last
+	copy pdata,temp
+	and pdata,0xf0,pdata
+	branch mouse_dpi_load_last,blank
+	rshift4 pdata,pdata
+	branch mouse_dpi_load_end
+
+mouse_dpi_load_last:
+	copy temp,pdata
+mouse_dpi_load_end:
+	sub pdata,7,null
+	call set_pdata_0,zero
+	branch mouse_temp_store_dpi
+
+/******************************load info end**************************************/
+
+
+mouse_idle:
+	bpatch patch13_2,mem_patch13
+	call mouse_low_voltage_led_no_enter_lpm
+	call ui_check_paring_button
+	call mouse_dpi_check
+	call mouse_dpi_another_gpio_check
+	call mouse_select_device_check
+	call mouse_check_select_device_by_switch
+	call mouse_bt_button_check
+	call mouse_wheel_check
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	bpatch patch13_3,mem_patch13
+	call mouse_usb_isr
+	branch mouse_usb_mode
+	
+mouse_select_device_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_PB_BUTTON,mouse_select_device_by_pb_button
+	bbit1 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY,mouse_select_device_by_pb_button
+	rtn
+
+mouse_select_device_by_pb_button:	
+	call mouse_select_device_by_pb_button_check
+	branch mouse_select_device_by_pb_button_exit
+	
+mouse_select_device_by_pb_button_check:
+	bpatch patch13_4,mem_patch13
+	arg 0,rega
+	jam MOUSE_PB_KEY,mem_mouse_key_temp
+	fetcht 1,mem_config_select_device_button_gpio
+	call mouse_pb_button_check
+	store 1,mem_mouse_pbkey_press_status
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_pb_button_check_end	
+	branch mouse_matrix_public_gpio_reset
+
+mouse_retransmit_select_device_by_pb_button:
+	fetch 1,mem_config_select_device_button_gpio
+	rtneq GPIO_DISABLE
+	call mouse_select_device_by_pb_button_check
+	copy rega,pdata
+	bbit1 MOUSE_PB_KEY,mouse_select_device_button_down+2
+	branch mouse_select_device_button_up
+	
+mouse_3io6key_pb_button_check_end:
+	fetcht 1,mem_config_select_device_button_gpio
+	call device_gpio_config_input_pu
+mouse_select_device_by_pb_button_exit:	
+	copy rega,pdata
+	bbit1 MOUSE_PB_KEY,mouse_select_device_button_down
+	branch mouse_select_device_button_up
+
+mouse_pb_button_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND,mouse_pb_button_connect_gnd
+	fetch 1,mem_mouse_pbkey_press_status
+	copy pdata,regc
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_check
+	fetch 1,mem_mouse_ghost_flag
+	nbranch mouse_select_device_by_pb_button_end,blank
+	branch mouse_pb_button_connect_matrix
+
+mouse_select_device_by_pb_button_end:
+	jam PB_BUTTON_STATE_UP,mem_select_device_button_statue
+	jam 0,mem_mouse_pbkey_press_status
+	rtn
+
+mouse_pb_button_connect_gnd:
+	fetch 1,mem_mouse_pbkey_press_status
+	branch mouse_check_key_connect_gnd
+
+mouse_pb_button_connect_matrix:
+	call gpio_get_bit
+	fetcht 1,mem_matrix_public_gpio
+	branch mouse_pb_button_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_config_select_device_button_gpio
+	fetch 1,mem_mouse_pbkey_press_status
+	branch mouse_check_key_connect_gnd
+	
+mouse_select_device_button_up:
+	fetch 1,mem_select_device_button_statue
+	rtneq PB_BUTTON_STATE_UP
+	jam PB_BUTTON_STATE_UP,mem_select_device_button_statue	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+	fetch 1,mem_bt_discovery_count
+	sub pdata,20,null
+	ncall mouse_ready_reconnection_by_button,positive		// press button less than 30-20=1000ms
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_bt_discovery_count
+	rtn
+
+mouse_select_device_button_down:
+	call mouse_select_device_ghost_check
+	rtn user
+	fetch 1,mem_select_device_button_statue
+	rtneq PB_BUTTON_STATE_DOWN
+	jam PB_BUTTON_STATE_DOWN,mem_select_device_button_statue
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY,mouse_long_button_bt_discovery
+	fetch 1,mem_device_direct_timer
+	rtn blank
+	fetch 1,mem_device_direct_timeout
+	store 1,mem_device_direct_timer
+	rtn
+
+mouse_select_device_ghost_check:
+	disable user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
+mouse_ghost_key_value_check:
+	fetch 1,mem_mouse_lkey_press_status
+	rtn blank
+	fetch 1,mem_mouse_rkey_press_status
+	rtn blank
+	fetch 1,mem_mouse_mkey_press_status
+	rtn blank
+	branch enable_user
+
+//===========================select device by switch start==================================//	
+	
+mouse_check_select_device_by_switch:
+	bpatch patch13_5,mem_patch13
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+	bbit0 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN,mouse_switch_gpio_connect_gnd_check
+mouse_switch_gpio_connect_vin_check:
+	call mouse_switch_gpio_connect_vin
+	fetch 1,mem_device_switch_gpio
+	branch mouse_gpio_config_pu_check
+
+mouse_switch_gpio_connect_gnd_check:
+	call mouse_switch_gpio_connect_gnd
+	fetch 1,mem_device_switch_gpio
+	branch mouse_gpio_config_pd_check
+	
+mouse_switch_gpio_connect_vin:
+	fetch 1,mem_device_switch_gpio
+	call mouse_gpio_config_pd_check
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch mouse_select_btdevice,true
+	branch mouse_select_24gdevice
+
+mouse_switch_gpio_connect_gnd:
+	fetch 1,mem_device_switch_gpio
+	call mouse_gpio_config_pu_check
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch mouse_select_24gdevice,true
+	branch mouse_select_btdevice
+
+mouse_select_btdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	branch mouse_select_device_set
+
+mouse_select_24gdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+mouse_select_device_set:
+	call mouse_select_device_stop_set
+	branch mouse_soft_reset
+
+//=========================================================//
+
+mouse_check_select_device_by_switch_once:
+	bpatch patch13_6,mem_patch13
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+	bbit0 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN,mouse_switch_gpio_connect_gnd_check_once
+mouse_switch_gpio_connect_vin_check_once:
+	call mouse_switch_gpio_connect_vin_once
+	fetch 1,mem_device_switch_gpio
+	branch mouse_gpio_config_pu_check
+
+mouse_switch_gpio_connect_gnd_check_once:
+	call mouse_switch_gpio_connect_gnd_once
+	fetch 1,mem_device_switch_gpio
+	branch mouse_gpio_config_pd_check
+
+
+mouse_switch_gpio_connect_vin_once:
+	fetch 1,mem_device_switch_gpio
+	call mouse_gpio_config_pd_check
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch mouse_check_select_btdevice,true
+	branch mouse_check_select_24g_device
+
+mouse_switch_gpio_connect_gnd_once:
	
+	fetch 1,mem_device_switch_gpio
+	call mouse_gpio_config_pu_check
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch mouse_check_select_24g_device,true
+	branch mouse_check_select_btdevice
+
+mouse_check_select_24g_device:	
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+mouse_select_device_stop_set:
+	call mouse_24g_stop
+	branch mouse_stop_bluetooth_mode
+
+mouse_check_select_btdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	branch mouse_select_device_stop_set
+	
+//===========================select device by switch end==================================//	
+
+
+mouse_ready_reconnection_by_button:
+	bpatch patch13_7,mem_patch13
+	fetch 1,mem_device_number
+	rtneq 1		// 1channel
+	call mouse_select_device_number
+	storet 1,mem_device_flag
+mouse_store_device_number_before_reset:	
+	call mouse_select_device_enable
+	call mouse_stop_bluetooth_mode
+	call app_evt_button_long_pressed
+	call mouse_select_device_disable
+	jam 1,mem_device_need_soft_reset
+	branch mouse_store_device_info_delay
+
+mouse_soft_reset:
+	call mouse_select_device_enable
+	branch soft_reset_chip
+
+mouse_select_device_number:
+	fetcht 1,mem_device_flag
+	increase 1,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G,mouse_select_device_number_24g
+	sub temp,2,null
+	rtn positive
+mouse_select_device_count_clean_bt:
+	arg 1,temp
+	rtn
+	
+mouse_select_device_number_24g:	
+	fetch 1,mem_device_number
+	increase -1,pdata
+	isub temp,null
+	rtn positive
+mouse_select_device_count_clean_24g:
+	arg 0,temp
+	rtn
+
+mouse_store_device_number2eeprom:
+	arg 1,temp
+	arg mem_device_flag,rega
+	arg 0,regb
+	branch iicd_write_protect_eep_data
+		
+mouse_bt_button_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+	branch mouse_select_device_by_pb_button
+	
+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_adc_read_enable:
+	arg MOUSE_ENABLE_ADC,queue
+	branch mouse_enable_function_flag
+
+mouse_24g_set_250Hz:
+	arg MOUSE_ENABLE_24G_250Hz,queue
+	branch mouse_enable_function_flag
+
+mouse_24g_search_dongle_enable:
+	arg MOUSE_ENABLE_24G_SEARCH_DONGLE,queue
+	branch mouse_enable_function_flag
+	
+mouse_16M_enable:
+	arg MOUSE_ENABLE_16M,queue
+	branch mouse_enable_function_flag
+	
+mouse_dpi_4level_enable:
+	arg MOUSE_ENABLE_DPI_LEVEL_4,queue
+	branch mouse_enable_function_flag
+
+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_polling_device:
+	bpatch patch14_0,mem_patch14
+	fetch 1,mem_reconn_times
+	increase -1,pdata
+	store 1,mem_reconn_times
+	fetcht 1,mem_device_flag
+	sub temp,1,null
+	ncall mouse_select_device_number,zero
+	storet 1,mem_device_flag
+	call mouse_store_device_number2eeprom
+	call hid_device_before_store_reconn_info
+	branch mouse_start_reconnect_device
+
+	
+//notice: need to call p_mouse_drawing_optima_init when waked from mult
+mouse_drawing_optima:
+	bpatch patch14_1,mem_patch14
+	fetch 1,mem_config_sensor_type
+	rtneq P3212
+	rtneq KA8G2
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SMOOTHER
+	fetch 4,mem_mouse_x
+	rtn blank
+	call mouse_data_abs_check
+	setarg 0x03	//asm_flag enable condition
+	call mouse_pdata_greater_than_check
+	call mouse_disable_asm,blank
+	ncall mouse_enable_asm,blank
+	setarg 0x02	//asm_flag disable condition
+	call mouse_data_less_than_check
+	call mouse_disable_asm,blank
+	fetch 1,mem_mouse_asm_flag
+	beq 1,mouse_drawing_optima_modify
+mouse_drawing_optima_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SMOOTHER
+	arg 5,loopcnt
+	arg mem_mouse_asm_flag,contw
+	branch clear_mem
+
+mouse_drawing_optima_modify:
+	call mouse_drawing_optima_xy_offset_modify
+	fetch 2,mem_mouse_x_pre
+	store 2,mem_data_pre
+	fetch 2,mem_mouse_x
+	store 2,mem_data_current
+	call mouse_drawing_optima_data_x
+	fetch 2,mem_data_pre
+	store 2,mem_mouse_x_pre
+	fetch 2,mem_data_current
+	store 2,mem_mouse_x
+
+	fetch 2,mem_mouse_y_pre
+	store 2,mem_data_pre
+	fetch 2,mem_mouse_y
+	store 2,mem_data_current
+	call mouse_drawing_optima_data_y
+	fetch 2,mem_data_pre
+	store 2,mem_mouse_y_pre
+	fetch 2,mem_data_current
+mouse_data_y_store:
+	store 2,mem_mouse_y
+	rtn
+
+mouse_drawing_optima_xy_offset_modify:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_XY_OFFSET
+	bpatch patch14_2,mem_patch14
+	fetch 2,mem_mouse_x_pre
+	store 2,mem_data_value
+	call mouse_pre_xy_data_judge
+	store 2,mem_mouse_x_pre
+	fetch 2,mem_mouse_x
+	store 2,mem_data_value
+	call mouse_current_xy_data_judge
+	store 2,mem_mouse_x
+	fetch 2,mem_mouse_y_pre
+	store 2,mem_data_value
+	call mouse_pre_xy_data_judge
+	store 2,mem_mouse_y_pre
+	fetch 2,mem_mouse_y
+	store 2,mem_data_value
+	call mouse_current_xy_data_judge
+	branch mouse_data_y_store
+
+mouse_pre_xy_data_judge:	
+	fetch 1,mem_data_value+1
+	branch mouse_pre_xy_pdata_offset,blank
+	branch mouse_pre_xy_ndata_offset
+
+mouse_pre_xy_pdata_offset:
+	fetch 1,mem_data_value
+	call mouse_pre_xy_get_0_4_times
+	store 1,mem_data_value
+mouse_xy_data_offset_new:
+	fetch 2,mem_data_value
+	rtn
+mouse_pre_xy_ndata_offset:
+	fetch 1,mem_data_value
+	call mouse_pdata_invert
+	call mouse_pre_xy_get_0_4_times
+	call disable_blank,blank
+	call mouse_pdata_get_new_value
+	branch mouse_xy_data_offset_new
+	
+mouse_current_xy_data_judge:
+	fetch 1,mem_data_value+1
+	branch mouse_current_xy_pdata_offset,blank
+	branch mouse_current_xy_ndata_offset
+mouse_current_xy_pdata_offset:
+	fetch 1,mem_data_value
+	call mouse_current_xy_get_0_6_times
+	store 1,mem_data_value
+	branch mouse_xy_data_offset_new
+mouse_current_xy_ndata_offset:	
+	fetch 1,mem_data_value
+	call mouse_pdata_invert
+	call mouse_current_xy_get_0_6_times
+	call disable_blank,blank
+	call mouse_pdata_get_new_value
+	branch mouse_xy_data_offset_new
+	
+mouse_pre_xy_get_0_4_times:
+	mul32 pdata,4,pdata
+	div pdata,5
+	branch mouse_div_end
+	
+mouse_current_xy_get_0_6_times:	//0.6 times
+	mul32 pdata,12,pdata
+	div pdata,10
+mouse_div_end:
+	call wait_div_end
+	quotient pdata
+	rtn	
+	
+mouse_drawing_optima_data_x:
+	fetch 2,mem_data_pre
+	fetcht 2,mem_data_current
+	iadd temp,pdata
+	fetcht 1,mem_mouse_data_xtemp
+	iadd temp,pdata
+	and pdata,0x01,temp
+	storet 1,mem_mouse_data_xtemp
+	branch mouse_drawing_optima_data
+
+mouse_drawing_optima_data_y:
+	fetch 2,mem_data_pre
+	fetcht 2,mem_data_current
+	iadd temp,pdata
+	fetcht 1,mem_mouse_data_ytemp
+	iadd temp,pdata
+	and pdata,0x01,temp
+	storet 1,mem_mouse_data_ytemp
+	branch mouse_drawing_optima_data
+
+/**********
+input:data_pre,data_current
+output:data_pre,data_current after optima
+***********/
+mouse_drawing_optima_data:
+	store 3,mem_data_sum
+	isolate1 16,pdata
+	branch mouse_data_sum_overflow,true
+	fetch 1,mem_data_sum+1
+	beq 0xff,mouse_data_sum_n
+	fetch 1,mem_data_sum
+mouse_data_store_pre:
+	rshift pdata,pdata
+	store 2,mem_data_pre
+	store 2,mem_data_current
+	rtn
+mouse_data_sum_overflow:
+	fetch 1,mem_data_sum+1	//sum positive
+	beq 0,mouse_data_sum_overflow_p
+	fetch 3,mem_data_sum	
+	branch mouse_data_store_pre
+mouse_data_sum_overflow_p:
+	jam 0,mem_data_sum+2
+	fetch 1,mem_data_sum
+	branch mouse_data_store_pre
+
+mouse_data_sum_n:
+	fetch 1,mem_data_sum	//sum negetive
+	call mouse_pdata_get_half
+	store 1,mem_data_pre
+	store 1,mem_data_current
+	branch mouse_data_zero,blank
+	setarg 0xff
+mouse_data_set_direction:	
+	store 1,mem_data_pre+1
+	store 1,mem_data_current+1
+	rtn
+mouse_data_zero:
+	setarg 0
+	branch mouse_data_set_direction
+
+mouse_pdata_get_half:
+	call mouse_pdata_invert
+	rshift pdata,pdata
+mouse_pdata_get_new_value:	
+	call mouse_rega_in_out
+	sub pdata,0,pdata
+	store 1,mem_data_value	
+	rtn
+
+mouse_pdata_invert:
+	sub pdata,0,pdata
+mouse_rega_in_out:	
+	store 1,mem_rega
+	fetch 1,mem_rega
+	rtn
+
+mouse_disable_asm:
+	jam 0,mem_mouse_asm_flag
+	rtn
+mouse_enable_asm:
+	jam 1,mem_mouse_asm_flag
+	rtn
+
+//rega mouse_x, regb mouse_y, pdata refer
+mouse_pdata_greater_than_check:
+	isub rega,null
+	nbranch disable_blank,positive
+	isub regb,null
+	nbranch disable_blank,positive
+	branch enable_blank
+mouse_data_less_than_check:
+	isub rega,null
+	nrtn positive
+	isub regb,null
+	nrtn positive
+	branch enable_blank
+
+mouse_data_abs_check:
+	fetch 2,mem_mouse_x
+	call mouse_data_abs
+	copy pdata,rega
+	fetch 2,mem_mouse_y
+	call mouse_data_abs
+	copy pdata,regb
+	rtn
+
+/***********
+input: data_current
+output:pdata,abs
+************/
+mouse_data_abs:
+	store 2,mem_data_current
+	fetch 1,mem_data_current+1
+	beq 0xff,mouse_data_reversal
+	fetch 1,mem_data_current
+mouse_data_abs_store:
+	and_into 0xff,pdata
+	//output:pdata
+	rtn
+mouse_data_reversal:
+	fetch 2,mem_data_current
+	sub pdata,0,pdata
+	branch mouse_data_abs_store
+
+mouse_24g_long_sleep_param_update_timer:
+	arg mem_24g_long_sleep_param_update_timer,regc
+	arg mouse_24g_long_sleep_normal_param,regb
+	branch timer_single_step
+mouse_24g_long_sleep_normal_param:
+	fetch 4,mem_24g_long_sleep_set1
+	store 4,mem_24g_enter_hibernate
+	branch mouse_long_mult_init
+
+
+mouse_24g_long_sleep_set:
+	fetch 1,mem_24g_long_sleep_set_level
+	beq 0x00,mouse_24g_long_sleep_set_30ms
+	beq 0x01,mouse_24g_long_sleep_set_50ms
+	beq 0x02,mouse_24g_long_sleep_set_80ms
+	beq 0x03,mouse_24g_long_sleep_set_100ms
+mouse_24g_long_sleep_set_80ms:
+	setarg 0x0ea600
+mouse_24g_long_sleep_set_end:	
+	store 4,mem_24g_long_sleep_set1
+	rtn
+mouse_24g_long_sleep_set_30ms:
+	setarg 0x05e740
+	branch mouse_24g_long_sleep_set_end
+mouse_24g_long_sleep_set_50ms:
+	setarg 0x0927c0
+	branch mouse_24g_long_sleep_set_end
+mouse_24g_long_sleep_set_100ms:
+	setarg 0x124f80
+	branch mouse_24g_long_sleep_set_end
+
+mouse_24g_hibernate_set:
+	bpatch patch14_3,mem_patch14
+	jam 0,mem_mouse_pair_flag
+	jam 0,mem_24g_attempt_fail_flag
+	call g24_transmit_next_packet
+	setarg -1
+	store 8,mem_24g_enter_hibernate
+	setarg 0
+	store 7,mem_mouse_key
+	jam 1,mem_24g_shutdown_flag
+	call mouse_sensor_powerdown
+	call mouse_setgpio_hibernate
+	branch mouse_24g_long_sleep
+
+mouse_wakeup_24g:
+	bpatch patch14_4,mem_patch14
+	fetch 1,mem_24g_shutdown_flag
+	ncall mouse_wakeup_24g_from_long_sleep,blank
+	jam 0,mem_24g_shutdown_flag
+	rtn
+
+mouse_wakeup_24g_from_long_sleep:
+	jam 1,mem_mouse_pair_flag
+	call mouse_init_sensor_wakeup
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+mouse_wheel_gpio_init:
+	fetcht 1,mem_whee_a_data_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_whee_b_data_gpio
+ 	branch device_gpio_config_input_pu	
+
+mouse_24g_transmit_start:
+	call mouse_24g_fast_conn_mode_check
+	fetch 1,mem_24g_shutdown_flag
+	nbranch mouse_24g_short_sleep,blank
+	branch g24_transmit_start_next
+
+mouse_24g_fast_conn_mode_check:
+	fetch 4,mem_24g_receiver_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	branch mouse_soft_agc_enable,zero
+mouse_soft_agc_disable:
+	jam 0xff,mem_gain_fix
+	rtn
+
+mouse_soft_agc_enable:
+	jam 0,mem_gain_fix
+	jam TX_POWER_FACTORY,mem_tx_power
+	rtn
+
+device_store_normal_tx_power:
+	fetch 1,mem_tx_power
+	store 1,mem_device_normal_tx_power
+	rtn
+
+device_fetch_normal_tx_power:
+	fetch 1,mem_device_normal_tx_power
+	store 1,mem_tx_power
+	rtn
+
+mouse_24g_stop:
+	set0 mark_24g,mark
+	jam STATE_24G_STOP,mem_24g_conn_sm
+	arg MOUSE_24G_PAIRING_FLAG,queue
+	branch mouse_disable_function_flag
+
+mouse_24g_start_mode:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G,mouse_24g_mode_setup_error
+	call mouse_device_24g_pair_led_config
+	call mouse_wakeup_from_power_check	// wake from hibernate :enble user
+	branch mouse_24g_reconn_dongle_start,user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_reconn_general_dongle
+	bbit0 MOUSE_ENABLE_24G_POWER_ON_PAIRING,mouse_24g_reconn_general_dongle
+	call mouse_key_check_once
+	and rega,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key_24g
+	isub temp,null
+	branch mouse_24g_start_pair_mode,zero
+	branch mouse_24g_reconn_general_dongle
+
+mouse_24g_mode_setup_error:
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	rtn
+
+mouse_24g_first_start_auto_pair_mode:
+	call mouse_wakeup_from_power_check
+	branch mouse_24g_first_start_reconn,user  	// wake from hibernate :enble user
+mouse_24g_reconn_general_dongle:	
+	jam MODE_24G_DEVICE,mem_device_flag
+	fetch 2,mem_device_24g_power_on_fast_conn_timer
+	store 2,mem_24g_reconn_timeout
+	jam FAST_CONN_AND_RECEIVER,mem_24g_reconn_type
+	branch g24_reconn_start
+
+mouse_24g_start_auto_pair:
+	fetch 2,mem_24g_pair_timeout_init
+	store 2,mem_24g_reconn_timeout
+	jam PAIR_AND_3_0_ADDR,mem_24g_reconn_type
+	branch g24_reconn_start
+
+mouse_24g_first_start_reconn:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_reconn_dongle_start
+	call mouse_bluetooth_fast_conn_disable
+mouse_24g_first_bluetooth_reconnect:
+	call mouse_24g_stop
+	jam MODE_BT_DEVICE1,mem_device_flag
+	call hid_device_select_reconn_device
+	branch mouse_le_fast_conn_judge
+
+mouse_24g_first_bb_event_reconn_timeout:
+	call mouse_wakeup_from_power_check
+	branch mouse_app_enter_hibernate,user
+	branch mouse_start_discovery
+
+mouse_24g_first_store_reconn_info:
+	call mouse_wakeup_from_power_check
+	rtn user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_store_device_info_delay
+	rtn
+
+mouse_24g_start_pair_mode:
+	call mouse_device_24g_pair_led_config
+	jam 0,mem_24g_reconn_type
+	arg MOUSE_24G_PAIRING_FLAG,queue
+	call mouse_enable_function_flag
+	setarg 0
+	store 2,mem_24g_reconn_timeout	
+	call mouse_stop_discovery
+mouse_24g_pair_mode_check:
+	jam TYPE_MS,mem_24g_data_type
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,g24_pair_start
+	jam TYPE_KB,mem_24g_data_type
+	branch g24_pair_start
+
+mouse_24g_attempt_fail:
+	call mouse_soft_agc_disable
+	call device_fetch_normal_tx_power
+	fetch 1,mem_24g_attempt_fail_flag
+	nbranch mouse_24g_hibernate_set,blank
+	fetch 1,mem_24g_reconn_type
+	beq FAST_CONN_AND_3_0_ADDR,mouse_24g_fast_conn_attempt_fail
+	beq FAST_CONN_AND_RECEIVER,mouse_24g_fast_conn_attempt_fail
+	beq PAIR_AND_3_0_ADDR,mouse_24g_auto_pair_attempt_fail
+	beq RECEIVER_AND_3_0_ADDR,mouse_reconn_dongle_attempt_fail
+mouse_24g_attempt_fail_enter_hibernate:
+	call mouse_24g_stop
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_app_enter_hibernate
+	rtn
+
+mouse_24g_fast_conn_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_start_auto_pair
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_start_auto_pair
+	bbit0 MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED,mouse_24g_reconn_dongle_start
+	fetch 4,mem_device_24g_addr		// auto pair first time
+	fetcht 4,mem_device_compare_addr
+	isub temp,null
+	branch mouse_24g_start_pair_mode,zero
+mouse_24g_reconn_dongle_start:
+	fetch 2,mem_24g_reconn_timeout_init
+	store 2,mem_24g_reconn_timeout
+	jam RECEIVER_AND_3_0_ADDR,mem_24g_reconn_type
+	branch g24_reconn_start
+
+mouse_24g_auto_pair_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
+	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_attempt_fail_enter_hibernate
+	fetch 1,mem_device_number
+	beq 1,mouse_24g_attempt_fail_enter_hibernate		//24g first mode and only 2.4g device
+	branch mouse_24g_first_bluetooth_reconnect
+
+mouse_reconn_dongle_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_attempt_fail_enter_hibernate
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_24g_attempt_fail_enter_hibernate
+	bbit1 MOUSE_ENABLE_FLASH,mouse_24g_attempt_fail_enter_hibernate
+	bbit1 MOUSE_ENABLE_OTP,mouse_24g_attempt_fail_enter_hibernate
+	branch mouse_24g_start_auto_pair
+	
+mouse_24g_attempt_success:
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_device_24g_addr		// if need store 24g address to eeprom/flash,need get mem_24g_addr
+	call g24_ch_syncword_crc8_init
+	call mouse_no_data_timer_init
+	call mouse_device_poweron_led_config
+	call mouse_init_sensor_reset
+	jam 0,mem_mouse_long_mult_flag
+	jam 0,mem_24g_conn_sm
+	jam 0,mem_24g_reconn_type
+	fetch 4,mem_24g_receiver_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	rtn zero
+	call mouse_soft_agc_disable
+	call device_fetch_normal_tx_power
+	branch mouse_24g_first_store_reconn_info
+	
+mouse_24g_pairing_complete:
+	call mouse_soft_agc_disable
+	call device_fetch_normal_tx_power
+	call mouse_init_sensor_reset
+	call mouse_read_sensor_common
+	call mouse_device_poweron_led_config
+	call mouse_no_data_timer_init
+	arg MOUSE_24G_PAIRING_FLAG,queue
+	call mouse_disable_function_flag
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_timeout
+	store 1,mem_24g_conn_sm
+	store 1,mem_mouse_move_flag
+	store 1,mem_24g_reconn_type
+
+
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_device_24g_addr
+	branch mouse_store_device_info_delay
+
+mouse_24g_short_sleep_clear_wake:
+	call clear_wake
+	branch lpm_write_gpio_wakeup
+
+mouse_24g_package_data:
+	bpatch patch14_5,mem_patch14
+	rtnmark0 mark_24g
+	call mouse_motion
+	nrtn user
+	fetch 1,mem_mouse_24g_long_sleep_flag
+	jam 0,mem_mouse_24g_long_sleep_flag
+	ncall mouse_24g_short_sleep_clear_wake,blank	
+	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,mouse_24g_mouse_package_data
+	fetch 1,mem_customer_key
+	nbranch mouse_24g_keyboard_package_data,blank
+mouse_24g_mouse_package_data:
+	call mouse_data_xy_release
+	fetch 1,mem_24g_data_type
+	bbit1 1,mouse_24g_mouse_package_data_now	// last package is keyboard data
+	fetcht 1,mem_24g_txbuf+1
+	fetch 1,mem_mouse_key
+	ior temp,pdata
+	store 1,mem_mouse_key
+	fetcht 1,mem_24g_txbuf+6
+	fetch 1,mem_mouse_z
+	iadd temp,pdata
+	store 1,mem_mouse_z
+	fetcht 1,mem_24g_txbuf+7
+	fetch 1,mem_mouse_tz
+	iadd temp,pdata
+	store 1,mem_mouse_tz	
+mouse_24g_mouse_package_data_now:	
+	jam TYPE_MS,mem_24g_data_type
+	arg 7,rega	//length
+	arg mem_mouse_key,regb //tx buff
+	fetch 2,mem_mouse_z
+	rtn blank
+	branch g24_transmit_by_interrupt_enable
+
+mouse_24g_keyboard_package_data:
+	jam TYPE_KB,mem_24g_data_type
+	arg 9,rega	//length
+	branch hid_device_24g_keyboard_package_data_set
+
+mouse_g24_retransmit:
+	fetch 1,mem_device_need_soft_reset
+	nrtn blank
+	call mouse_g24_retransmit_100ms_timer
+	branch g24_retransmit0
+
+mouse_g24_retransmit_100ms_timer:
+	arg 12,queue
+	call timer_check
+	nrtn blank
+	call mouse_retransmit_select_device_by_pb_button
+	call mouse_retransmit_commbination_key_check
+	call mouse_dpi_check_once
+	call mouse_dpi_key_check_long_press
+mouse_g24_retransmit_100ms_timer_init:
+	arg 12,queue
+	setarg 160
+	branch timer_init
+	
+mouse_dpi_check_once:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+	branch mouse_dpi_check
+
+/**************************************g24 new process start********************************************/
+mouse_24g_before_lpm_sleep:
+	call lpm_puchk_set_check
+	branch hid_device_before_lpm_set
+
+/**************************************g24 new process end********************************************/
+
+/*******************logo led*******************/
+mouse_logo_led_on_timer:
+	fetch 1,mem_mouse_logo_led_gpio
+	rtneq GPIO_DISABLE
+	fetch 2,mem_device_no_data_timer
+	rtn blank
+	fetch 2,mem_device_no_data_timeout
+	fetcht 2,mem_device_no_data_timer
+	isub temp,temp
+	fetch 2,mem_mouse_logo_led_on_time_init
+	isub temp,pdata
+	branch mouse_logo_led_on,positive
+mouse_logo_led_off:
+	fetcht 1,mem_mouse_logo_led_gpio
+	branch mouse_led_off
+mouse_logo_led_on:
+	fetcht 1,mem_mouse_logo_led_gpio
+	branch mouse_led_on
+	
+/*******************logo led end*******************/
+
+
+
+/*******************dpi led*******************/
+mouse_dpi_led_blink_delay_timer:
+	arg mem_mouse_dpi_led_delay_count,regc
+	arg mouse_dpi_led_blink_init,regb
+	branch timer_single_step
+	
+mouse_dpi_led_blink_init:
+	bpatch patch14_6,mem_patch14
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_LEVEL_4,mouse_dpi_led_blink_set_4_level
+mouse_dpi_led_blink_set_3_level:			//800-1200-1600
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_2_blink	//1200
+	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_3_blink	//1600		
+	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_1_blink	//800
+	rtn
+	
+mouse_dpi_led_blink_set_4_level:			//800-1000-1200-1600
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_dpi_level_3_blink		//1200
+	beq MOUSE_DPI_LEVEL2,mouse_dpi_level_4_blink		//1600
+	beq MOUSE_DPI_LEVEL3,mouse_dpi_level_1_blink		//800
+	beq MOUSE_DPI_LEVEL4,mouse_dpi_level_2_blink		//1000
+	rtn
+
+mouse_dpi_level_1_blink:
+	setarg 2
+	branch mouse_multi_dpi_led_blink_enable
+
+mouse_dpi_level_2_blink:
+	setarg 4
+	branch mouse_multi_dpi_led_blink_enable
+
+mouse_dpi_level_3_blink:
+	setarg 6
+	branch mouse_multi_dpi_led_blink_enable
+
+mouse_dpi_level_4_blink:
+	setarg 8
+	branch mouse_multi_dpi_led_blink_enable
+	
+mouse_multi_dpi_led_blink_enable:
+	store 1,mem_mouse_multi_led_blink_count
+	jam 4,mem_mouse_multi_led_blink_type
+	call mouse_multi_dpi_led_blink_timer_init	
+	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
+	branch mouse_multi_led_enable
+
+mouse_dpi_led_blink_delay:
+//	fetch 2,mem_device_discovery_timer
+//	nrtn blank
+//	fetch 2,mem_24g_pair_timeout
+//	nrtn blank
+//	fetch 2,mem_24g_reconn_timeout
+//	nrtn blank
+//	fetch 1,mem_mouse_multi_led_powon_timer
+//	nrtn blank
+	fetch 1,mem_mouse_pair_flag
+	rtn blank
+	fetch 1,mem_mouse_dpi_led_delay_count_init
+	branch mouse_dpi_led_blink_init,blank
+	store 1,mem_mouse_dpi_led_delay_count  //delay 1s led blink
+	rtn
+
+/*******************dpi led end*******************/
+
+
+
+/*******************low voltage led*************************/
+
+mouse_check_dpi_blink:
+	disable user
+	fetch 1,mem_mouse_multi_led_blink_type		//04:dpi blink
+	sub pdata,4,null
+	nrtn zero
+	branch enable_user
+
+mouse_low_voltage_led_timer:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_LOW_LED
+	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
+//	fetch 2,mem_device_discovery_timer
+//	nrtn blank
+//	fetch 2,mem_24g_pair_timeout
+//	nrtn blank
+//	fetch 2,mem_24g_reconn_timeout
+//	nrtn blank
+//	fetch 1,mem_mouse_multi_led_powon_timer
+//	nrtn blank
+	fetch 1,mem_mouse_pair_flag
+	rtn blank
+	call mouse_check_dpi_blink		//need judge blink led=dpi? if led=dpi led->rtn
+	rtn user
+
+	fetch 1,mem_mouse_multi_low_led_blink_count
+	branch mouse_low_led_blink_count_init_judge,blank
+mouse_low_led_blink_timer:
+	fetcht 1,mem_adc_low_volatage_led_timer_count
+	increase 1,temp
+	storet 1,mem_adc_low_volatage_led_timer_count
+	fetch 1,mem_mouse_low_led_blink_timer
+	isub temp,null
+	ncall mouse_low_led_timer_count_clean,positive
+	fetch 1,mem_mouse_low_led_blink_half_timer
+	isub temp,null
+	nbranch mouse_low_voltage_led_off_judge,positive
+mouse_low_voltage_led_on_judge:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_LOW_FOR_LED,mouse_device_led_on
+mouse_low_voltage_led_on:
+	fetcht 1,mem_mouse_low_voltage_alarm_gpio 
+	branch mouse_led_on
+
+mouse_low_led_timer_count_clean:
+	jam 1,mem_adc_low_volatage_led_timer_count
+	fetch 1,mem_mouse_multi_low_led_blink_count	//blink count decrease
+	increase -1,pdata
+	store 1,mem_mouse_multi_low_led_blink_count
+mouse_low_voltage_led_off_judge:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_LOW_FOR_LED,mouse_device_led_off
+mouse_low_voltage_led_off:
+	fetcht 1,mem_mouse_low_voltage_alarm_gpio
+	branch mouse_led_off
+
+mouse_low_led_blink_count_init_judge:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT,mouse_low_voltage_led_off_judge
+	call mouse_multi_low_led_blink_count_init
+	branch mouse_low_led_blink_timer
+	
+/*******************low voltage led end*************************/
+
+
+/*******************multi led start*************************/
+/***parm init****/
+
+mouse_device_multi_led_parm_init:
+	jam 0,mem_mouse_multi_led_blink_enable
+	call mouse_device_multi_led_all_off		//can be remove?
+	jam 0,mem_mouse_multi_led_blink_type
+	fetch 1, mem_mouse_low_led_blink_timer
+	rshift pdata,pdata
+	store 1,mem_mouse_low_led_blink_half_timer
+	rtn
+mouse_multi_low_led_blink_count_init:
+	fetch 1,mem_mouse_multi_lowled_blink_count_init
+	store 1,mem_mouse_multi_low_led_blink_count
+	rtn
+
+mouse_multi_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_led_blink_type		//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+	beq 1,mouse_device_24g_led_blink_timer_init
+	beq 2,mouse_device_le_discovery_led_blink_timer_init
+	beq 3,mouse_device_le_reconn_led_blink_timer_init
+mouse_multi_dpi_led_blink_timer_init:
+	fetch 1,mem_mouse_dpi_led_blink_timer_init
+mouse_store_multi_led_blink_timer:
+	store 1,mem_mouse_multi_led_blink_timer
+	rtn
+mouse_device_24g_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_24gled_blink_timer_init
+	branch mouse_store_multi_led_blink_timer
+mouse_device_le_discovery_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_le_discovery_blink_timer_init
+	branch mouse_store_multi_led_blink_timer
+mouse_device_le_reconn_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_le_reconn_blink_timer_init
+	branch mouse_store_multi_led_blink_timer
+
+//===led poweron config===//
+mouse_device_poweron_led_config:	//power on
+	bpatch patch14_7,mem_patch14
+	fetch 1,mem_mouse_multi_led_powon_timer_init
+	store 1,mem_mouse_multi_led_powon_timer
+	jam MULTI_LED_ON,mem_mouse_multi_led_type
+mouse_multi_led_enable:
+	jam OFF,mem_mouse_multi_led_state
+	jam ON,mem_mouse_multi_led_blink_enable
+	rtn
+
+//===led blink config===//
+mouse_device_24g_pair_led_config:		//24g pair led config
+	bpatch patch15_0,mem_patch15
+//	call mouse_device_24g_led_blink_timer_init
+	call mouse_multi_led_blink_enable_init
+	jam 1,mem_mouse_multi_led_blink_type
+	fetch 1,mem_mouse_le_reconn_blink_limit
+	rtn blank
+	fetch 1,mem_mouse_multi_24gled_blink_count_init
+	branch mouse_device_led_blink_count_init
+
+mouse_device_le_reconn_led_config:		//le recon led config
+	bpatchx patch3a_3,mem_patch3a
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
+//	call mouse_device_le_reconn_led_blink_timer_init
+	call mouse_multi_led_blink_enable_init
+	jam 3,mem_mouse_multi_led_blink_type
+	fetch 1,mem_mouse_le_reconn_blink_limit
+	rtn blank
+	fetch 1,mem_mouse_multi_le_reconn_blink_count_init
+mouse_device_led_blink_count_init:
+	store 1,mem_mouse_multi_led_blink_count
+	rtn	
+
+mouse_device_discovery_led_config:		//ble discovery led config
+//	call mouse_device_le_discovery_led_blink_timer_init
+	jam 0,mem_mouse_le_reconn_blink_limit
+	jam 2,mem_mouse_multi_led_blink_type
+mouse_multi_led_blink_enable_init:
+	bpatchx patch3a_4,mem_patch3a
+	jam 0x0a,mem_mouse_multi_led_blink_timer
+	jam 1,mem_mouse_multi_led_blink_enable
+	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
+	branch mouse_device_multi_led_on
+
+
+//====multi timer====//
+mouse_led_multi_timer:
+	fetch 1,mem_mouse_multi_led_blink_enable
+	rtn blank
+	fetch 1,mem_mouse_multi_led_type
+	beq MULTI_LED_BLINK,mouse_multi_led_type_blink
+mouse_device_multi_led_type_on:
+	fetch 1,mem_mouse_multi_led_powon_timer
+	branch mouse_device_poweron_led_off,blank
+	increase -1,pdata
+	store 1,mem_mouse_multi_led_powon_timer
+	branch mouse_device_led_on
+
+mouse_device_poweron_led_off:
+ 	jam 0,mem_mouse_multi_led_blink_enable
+ 	jam 1,mem_mouse_pair_flag
+	call mouse_multi_low_led_blink_count_init
+	branch mouse_device_led_off
+
+mouse_multi_led_type_blink:
+	bpatch patch15_1,mem_patch15
+	fetch 1,mem_mouse_multi_led_blink_type	//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+	rtn blank
+	beq 4,mouse_device_led_blink_limit	//dpi blink
+	branch mouse_device_led_blink_judge
+
+mouse_device_led_blink_judge:
+	fetch 1,mem_mouse_le_reconn_blink_limit
+	beq 1,mouse_device_led_blink_limit
+	branch mouse_multi_led_type_blink_next
+
+mouse_device_led_blink_limit:
+	fetch 1,mem_mouse_multi_led_blink_count
+	branch mouse_multi_led_off_judge, blank		//blink count =0
+mouse_multi_led_type_blink_next:	//blink no limit
+	arg mem_mouse_multi_led_blink_timer,regc
+	arg mouse_multi_led_type_blink_start,regb
+	branch timer_single_step
+	
+mouse_multi_led_type_blink_start:
+	fetch 1,mem_mouse_multi_led_blink_type
+	beq 4,mouse_multi_led_blink_count_decrease		//dpi blink
+	fetch 1,mem_mouse_le_reconn_blink_limit
+	beq 1,mouse_multi_led_blink_count_decrease
+mouse_multi_led_blink:
+	call mouse_multi_led_blink_timer_init
+	fetch 1,mem_mouse_multi_led_state
+	beq ON,mouse_multi_led_off_judge_next
+	branch mouse_multi_led_on_judge
+
+mouse_multi_led_blink_count_decrease:
+	fetch 1,mem_mouse_multi_led_blink_count	
+	increase -1,pdata
+	store 1,mem_mouse_multi_led_blink_count
+	branch mouse_multi_led_blink
+
+//=====led on/off interface=====//
+mouse_multi_led_on_judge:
+	fetch 1,mem_mouse_multi_led_blink_type
+	beq 4,mouse_multi_dpi_led_on_judge
+mouse_device_multi_led_on:
+	jam ON,mem_mouse_multi_led_state
+mouse_device_led_on:
+	bpatch patch15_2,mem_patch15
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_device_24g_led_on
+	beq MODE_BT_DEVICE1,mouse_device_bt1_led_on
+	beq MODE_BT_DEVICE2,mouse_device_bt2_led_on
+	rtn
+mouse_device_24g_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_24gled
+	branch mouse_led_on	//by mouse.dat config
+mouse_device_bt1_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_bt1led
+	branch mouse_led_on	//by mouse.dat config
+mouse_device_bt2_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_bt2led
+mouse_led_on:
+	branch gpio_out_active	//by mouse.dat config
+
+mouse_led_off:
+	branch gpio_out_inactive	//by mouse.dat config
+
+mouse_multi_led_off_judge:
+	jam 0,mem_mouse_multi_led_blink_enable
+	jam 0,mem_mouse_multi_led_blink_type
+mouse_multi_led_off_judge_next:
+	fetch 1,mem_mouse_multi_led_blink_type
+	beq 4,mouse_multi_dpi_led_off_judge
+mouse_device_multi_led_off:
+	jam OFF,mem_mouse_multi_led_state
+mouse_device_led_off:
+	bpatch patch15_3,mem_patch15
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_device_24g_led_off
+	beq MODE_BT_DEVICE1,mouse_device_bt1_led_off
+	beq MODE_BT_DEVICE2,mouse_device_bt2_led_off
+	rtn
+mouse_device_24g_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_24gled
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_1IO2LED,mouse_led_off
+	branch gpio_set_analog
+mouse_device_bt1_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_bt1led
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_1IO2LED,mouse_led_off
+	branch gpio_set_analog
+mouse_device_bt2_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_bt2led
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_1IO2LED,mouse_led_off
+	branch gpio_set_analog
+
+mouse_device_multi_led_all_off:		//dpi+low no
+	call mouse_device_24g_led_off
+	call mouse_device_bt1_led_off
+	call mouse_device_bt2_led_off
+	call mouse_low_voltage_led_off_judge
+	branch mouse_multi_dpi_led_off_judge
+
+mouse_multi_dpi_led_off_judge:
+	jam OFF,mem_mouse_multi_led_state
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_FOR_LED,mouse_device_multi_led_off
+mouse_multi_dpi_led_off:
+	fetcht 1,mem_mouse_dpi_gpio
+	branch mouse_led_off
+
+mouse_multi_dpi_led_on_judge:
+	jam ON,mem_mouse_multi_led_state
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_FOR_LED,mouse_device_multi_led_on
+mouse_multi_dpi_led_on:
+	fetcht 1,mem_mouse_dpi_gpio
+	branch mouse_led_on	//by mouse.dat config
+
+/*******************multi led end*************************/
+
+mouse_low_voltage_led_no_enter_lpm:	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
+	fetch 1,mem_adc_low_volatage_led_timer_count
+	fetcht 1,mem_mouse_low_led_blink_half_timer
+	sub pdata,temp,null
+	branch mouse_lpm_mode_clear,positive
+mouse_low_voltage_led_no_enter_lpm_next:	
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,g24_transmit_by_interrupt_exit_check
+	branch hid_device_enable_lpm
+
+g24_transmit_by_interrupt_exit_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag	
+	rtnbit1 MOUSE_ENABLE_24G_250Hz	
+	branch g24_transmit_by_interrupt_exit
+
+mouse_lpm_mode_clear:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,g24_transmit_by_interrupt_enable
+	branch hid_device_disable_lpm
+
+
+mouse_store_signal_rssi:
+//	call rssi_hex2dec
+	fetch 1,mem_rssi
+	branch rssi_signal
+
+mouse_le_transmit:
+	call mouse_store_signal_rssi
+	branch power_ctrl_start
+
+mouse_set_lpm_mult:
+	fetch 2,mem_ui_state_map
+	rtnbit0 UI_STATE_BLE_CONNECTED
+mouse_le_set_lpm_mult:
+	fetch 1,mem_le_connect_status_flag
+	compare 3,pdata,3
+	nbranch disable_blank,true
+	call app_lpm_mult_enable
+	branch enable_blank
+
+mouse_24g_long_sleep:
+	bpatch patch15_4,mem_patch15
+	call g24_lpm_wait
+	nrtn user
+	jam 1,mem_mouse_24g_long_sleep_flag
+	call g24_setgpio_lpm_before
+	jam 0,mem_mouse_24g_sleep_miss
+	call mouse_24g_send_time_long_wake
+	fetch 1,mem_24g_shutdown_flag
+	ncall mouse_setgpio_hibernate,blank
+	fetch 8,mem_24g_enter_hibernate
+	branch g24_long_seep2	
+
+mouse_24g_short_sleep:
+	fetch 1,mem_mouse_sleep_deal_type
+	branch g24_short_sleep,blank
+	call g24_lpm_wait
+	nrtn user
+	fetch 1,mem_mouse_24g_sleep_miss
+	jam 0,mem_mouse_24g_sleep_miss
+	sub pdata,0,null
+	nbranch mouse_24g_short_sleep_last_miss,zero
+	fetcht 2,mem_24g_retransmit
+	sub temp,0,null
+	branch mouse_24g_short_sleep_default,zero
+
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+	branch mouse_24g_short_sleep_default,blank
+mouse_24g_short_sleep_last_miss:
+	fetcht 4,mem_mouse_24g_sleep_miss_temp
+	isolate1 31,temp
+	branch mouse_24g_sub_miss_temp,true
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+	iadd temp,pdata
+mouse_24g_short_sleep_notify:
+	fetcht 4,mem_mouse_24g_tsniff
+	isub temp,temp
+	storet 4,mem_mouse_24g_sleep_miss_temp
+	nbranch mouse_24g_short_sleep_long,positive
+	fetch 3,mem_24g_short_sleep_set
+	isub temp,pdata
+	nbranch mouse_24g_short_sleep_2,positive
+	arg 0x600,temp
+	isub temp,null
+	nbranch mouse_24g_short_sleep_2,positive
+mouse_24g_short_sleep2:
+	jam 250,mem_mouse_24g_tx_time_offset
+mouse_24g_short_sleep3:
+	call clk2lpo
+	storet 4,mem_sleep_counter
+	branch lpm_sleep
+
+mouse_24g_short_sleep_default:
+	call mouse_24g_miss_temp_clear
+	fetch 3,mem_24g_short_sleep_set
+	branch mouse_24g_short_sleep2
+
+mouse_24g_short_sleep_long:
+	sub temp,0,temp
+	fetch 3,mem_24g_short_sleep_set
+	iadd temp,pdata
+	branch mouse_24g_short_sleep2
+
+mouse_24g_miss_temp_clear:
+	setarg 0
+	store 4,mem_mouse_24g_sleep_miss_temp
+	rtn
+	
+mouse_24g_short_sleep_2:
+	jam 1,mem_mouse_24g_sleep_miss
+	rtn
+
+mouse_24g_sub_miss_temp:
+	arg -1,pdata
+	isub temp,regext
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+	isub regext,pdata
+	branch mouse_24g_short_sleep_notify
+
+mouse_24g_transmit_callback:
+	call mouse_24g_send_time_check
+	branch mouse_wakeup_24g
+
+mouse_24g_send_time_check:
+	fetch 1,mem_mouse_sleep_deal_type
+	rtn blank
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,mouse_24g_send_timer_first
+	fetch 1,mem_mouse_24g_tx_count
+	branch mouse_24g_send_timer_first,blank
+	copy clkn,pdata
+	fetcht 6,mem_mouse_24g_tx_time_last
+	store 6,mem_mouse_24g_tx_time_last
+	call clk_diff_rt
+	store 4,mem_mouse_24g_tx_time_last_delt
+
+	fetch 1,mem_mouse_24g_sleep_miss
+	nrtn blank
+	fetch 2,mem_24g_retransmit
+	nrtn blank
+	fetch 4,mem_mouse_24g_sleep_miss_temp
+	nrtn blank
+	
+	fetch 4,mem_mouse_24g_tx_time_last_delt
+	fetcht 4,mem_mouse_24g_tsniff
+	lshift temp,temp
+	isub temp,null
+	branch mouse_24g_send_time_long_wake,positive
+	
+	fetcht 5,mem_mouse_24g_tx_time_sum
+	iadd temp,pdata
+	store 5,mem_mouse_24g_tx_time_sum	
+	fetcht 1,mem_mouse_24g_tx_count
+	fetch 1,mem_mouse_24g_tx_time_sum_count
+	isub temp,null
+	branch mouse_24g_send_time_check_average,zero
+	increase 1,temp
+	storet 1,mem_mouse_24g_tx_count
+	rtn
+
+mouse_24g_send_time_check_average:
+	jam 1,mem_mouse_24g_tx_count
+	arg 0,temp
+	fetch 5,mem_mouse_24g_tx_time_sum
+	storet 5,mem_mouse_24g_tx_time_sum
+	fetcht 1,mem_mouse_24g_tx_time_sum_count
+	idiv temp
+	call wait_div_end
+  	quotient rega
+
+	fetch 4,mem_mouse_24g_tsniff
+	fetcht 1,mem_mouse_24g_tx_time_offset
+	isub temp,temp
+
+	copy rega,pdata
+	isub temp,pdata
+	branch mouse_24g_send_time_check_average_late,positive
+	sub pdata,0,pdata
+	
+	rshift2 pdata,pdata
+	fetcht 3,mem_24g_short_sleep_set
+	iadd temp,temp
+	bpatch patch15_5,mem_patch15
+	fetch 3,mem_mouse_24g_short_sleep_set_init
+	arg 0x1800,rega
+	iadd rega,pdata
+	isub temp,null
+	nbranch mouse_24g_send_time_check_average_min,positive
+mouse_24g_short_sleep_storet:
+	storet 3,mem_24g_short_sleep_set
+	rtn
+
+mouse_24g_send_time_check_average_late:
+	rshift2 pdata,temp
+	fetch 3,mem_24g_short_sleep_set
+	isub temp,temp
+	bpatch patch15_6,mem_patch15
+	fetch 3,mem_mouse_24g_short_sleep_set_init
+	arg 0x1800,rega
+	isub rega,pdata
+	isub temp,null
+	branch mouse_24g_send_time_check_average_min,positive
+	branch mouse_24g_short_sleep_storet
+
+mouse_24g_send_time_check_average_min:
+	store 3,mem_24g_short_sleep_set
+	rtn
+
+mouse_24g_send_timer_first:
+	jam 1,mem_mouse_24g_tx_count
+	copy clkn,pdata
+	store 6,mem_mouse_24g_tx_time_last
+	rtn
+
+mouse_24g_send_time_long_wake:
+	setarg 0
+	store 1,mem_mouse_24g_tx_count
+	store 5,mem_mouse_24g_tx_time_sum
+	rtn
+
+/******************************************USB MODE*******************************************/
+mouse_usb_check_enable:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	jam USB_INTERFACE_REMOVE,mem_usb_vdd_status
+	rtn
+	
+mouse_usb_isr:
+	call mouse_usb_interface_check
+	fetch 1,mem_usb_vdd_status
+	rtnne USB_INTERFACE_INSERT
+	branch usb_isr
+
+mouse_usb_interface_check:
+	bpatch patch15_7,mem_patch15
+	fetcht 1,mem_usb_offline_check_gpio
+	call gpio_get_bit
+	nbranch mouse_usb_mode_disable,true
+mouse_usb_mode_enable:
+	fetch 1,mem_usb_vdd_status
+	rtneq USB_INTERFACE_INSERT
+	jam USB_INTERFACE_INSERT,mem_usb_vdd_status
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_timeout
+	jam 0,mem_lpm_mode
+	call select_system_clk_12M_dpll
+	call mouse_24g_stop
+	call mouse_stop_bluetooth_mode
+	disable wake
+	call mouse_init_sensor_reset
+
+	setarg mouse_usb_config_param
+	store 2,mem_cb_usb_config
+	fetch 1,mem_usb_tx_interval_retention
+	store 1,mem_usb_tx_interval
+	arg mem_usb_vid_pid_retention,contr
+	arg mem_usb_vid_pid,contw
+	arg 9,loopcnt
+	call memcpy
+	branch usb_init
+
+mouse_usb_mode_disable:
+	fetch 1,mem_usb_keyboard_flag
+	rtneq USB_INTERFACE_REMOVE
+	jam USB_INTERFACE_REMOVE,mem_usb_vdd_status
+	jam 0,mem_usb_device_enumeration_endflag
+	jam 0,mem_usb_status
+	jam 0,mem_usb_state
+	fetch 2,core_clkoff
+	set1 CLOCK_OFF_USB,pdata
+	store 2,core_clkoff
+	jam 1,mem_lpm_mode
+	call select_system_clk_12M_dpll
+	branch mouse_soft_reset
+	
+mouse_usb_mode:
+	fetch 1,core_usb_addr
+	store 1,mem_usb_addr
+	rtnbit0 7
+	call mouse_usb_timer_check
+	nrtn user
+	call mouse_motion
+	nrtn user
+	fetch 1,core_usb_txbusy
+	rtnbit1 2
+	branch mouse_push_data_to_usb
+	
+mouse_push_data_to_usb:
+	fetch 1,core_usb_addr
+	rtnbit0 7
+	bpatch patch16_0,mem_patch16
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,hid_device_push_mouse_data_to_usb
+	fetch 1,mem_customer_key
+	beq 1,hid_device_push_keyboard_data_to_usb
+	branch hid_device_push_mouse_data_to_usb
+
+mouse_usb_timer_check:
+	call disable_user
+	fetcht 4,mem_btclk_sensor
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall mouse_usb_timer_timeout,positive
+	copy pdata,regb
+	fetch 4,mem_btclk_sensor
+	fetcht 1,mem_wire_usb_interval
+	iadd temp,temp
+	copy regb,pdata
+	isub temp,null		
+	nrtn positive
+	set0 28,pdata
+	store 4,mem_btclk_sensor
+	branch enable_user
+
+mouse_usb_timer_timeout:
+	rtn zero
+	set1 28,pdata
+	rtn
+	
+mouse_usb_timer_init:
+	setarg 0
+	store 4,mem_btclk_sensor
+	rtn
+
+mouse_usb_config_param:
+	bpatch patch16_1,mem_patch16
+	call mouse_usb_config_kb_check
+	call mouse_usb_report_rate_set
+	call mouse_usb_config_param_setup
+mouse_usb_device_name_config:
+	fetch 1,mem_usb_device_name_retention
+	rtn blank
+	arg mem_usb_device_name_retention,contr
+	arg mem_string2,contw
+	arg 30,loopcnt
+	branch memcpy
+
+mouse_usb_config_kb_check:
+	jam DONGLE_KB_BIND_OTP_OFFECT,mem_usb_keyboard_flag
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_KEYBOARD
+	jam DONGLE_KB_BIND_SUCCESS,mem_usb_keyboard_flag
+	rtn
+
+mouse_usb_config_param_setup:
+	call usb_tx_interval_config
+	call dongle_usb_vid_pid_config
+mouse_usb_hid_icon_config:
+	fetch 1,mem_usb_keyboard_flag
+	branch dongle_usb_hid_icon_config+1
+
+mouse_usb_report_rate_set:
+	call mouse_usb_timer_init
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_USB_250,mouse_usb_report_rate_set_250hz
+	bbit1 MOUSE_ENABLE_USB_500,mouse_usb_report_rate_set_500hz
+	bbit1 MOUSE_ENABLE_USB_1000,mouse_usb_report_rate_set_1000hz
+mouse_usb_report_rate_set_125hz:
+	jam 32,mem_wire_usb_interval
+	rtn
+mouse_usb_report_rate_set_250hz:
+	jam 16,mem_wire_usb_interval
+	rtn
+mouse_usb_report_rate_set_500hz:
+	jam 8,mem_wire_usb_interval
+	rtn
+mouse_usb_report_rate_set_1000hz:
+	jam 4,mem_wire_usb_interval
+	rtn
+
+
+/*****************close define  COMPILE_MOUSE**********/
+else
+
+endif
+
+
+
Index: costumer/Bore/keyboard_ck801_only_24g/program/patch.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/program/patch.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/program/patch.prog	(working copy)
@@ -0,0 +1,698 @@
+
+
+	bbit1 8,pf_patch_ext
+	beq patch03_1,p_set_tx_power
+	beq patch03_2,p_initialize_radio_cont
+	beq patch05_0,p_lpm_dispatch
+	beq patch07_6,p_keyboard_setting_config_next
+	beq patch08_0,p_keyboard_store_device_info
+	beq patch08_3,p_keyboard_bb_event_timer
+	beq patch08_4,p_keyboard_adc_vol_init
+	beq patch09_4,p_kscan_dispatch
+	beq patch09_6,p_keyboard_keyvalue_change
+	beq patch10_2,p_mouse_adc_bat_percent_lowpower_out
+	beq patch0a_6,p_keyboard_long_button_bt_discovery
+	beq patch0b_1,p_keyboard_motion_data_check
+	beq patch0b_4,p_keyboard_value_tpye_consumer_set
+	beq patch0d_2,p_keyboard_le_parse_att
+	beq patch0f_4,p_keyboard_app_enter_hibernate
+	beq patch1d_1,p_otp_write
+	beq patch1d_2,p_otp_read_data
+	beq patch19_7,p_keyboard_init
+	beq patch1f_2,p_gpio_set_wake_by_current_state
+	branch assert
+
+pf_patch_ext:
+	rtneq patch3f_7
+	beq patch38_2,keyboard_g24_transmit_no_interrupt
+	branch assert
+
+/////////////////////////////
+p_set_tx_power:
+	fetch 1,mem_tx_power
+	beq TX_POWER_F30DB,p_set_tx_power_f30db
+	branch set_tx_power+2
+
+p_set_tx_power_f30db:
+	jam 0x17,0x8a14
+	setarg 0x251305
+	store 3,0x8a60
+	branch set_tx_power_8a63_28
+
+p_initialize_radio_cont:
+	until null,lpo_edge
+	jam 0x0d,0x8946
+	jam 0x10,0x896f
+	jam 0xcd,0x8a13
+//	jam 0x10,0x8a06
+	fetch 1,0x8a06
+	and pdata,0xfc,pdata
+	store 1,0x8a06
+	branch initialize_radio_cont+6
+
+p_otp_read_data:
+	call enable_otp_read
+	call otp_read_data1
+	branch otp_disable_chgpump
+
+/* regb = otp address, rega pointers data, loopcnt is count */
+p_otp_write:
+	//bpatch patch1d_1,mem_patch1d
+	call otp_enable_chgpump65
+	call otp_set_addr
+	call otp_reset
+p_otp_program:
+	ifetcht 1,rega
+	increase 1,rega
+	force 0,queue
+p_otp_program_bit:
+	set0 mark_otp_write,mark
+p_otp_program_bit2:
+	qisolate0 temp
+	branch p_otp_skip_0,true
+	fetch 1,core_otp_din
+	set1 6,pdata				/* din */
+	set1 7,pdata				/* dle */
+	store 1,core_otp_din
+	jam 0x02,core_otp_ctrl	/* web */
+	jam 0x82,core_otp_ctrl
+	set0 7,pdata				/* dle */
+	store 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 */
+	fetch 1,core_otp_rdata
+	jam 0x92,core_otp_ctrl	/* release readen */
+	nop 1
+	jam 0x82,core_otp_ctrl	/* release pgmvfy */
+	nop 1
+	qisolate0 pdata
+	branch p_otp_program_bit,true	/* program error */
+	bmark1 mark_otp_write,p_otp_skip_0
+	set1 mark_otp_write,mark
+	branch p_otp_program_bit2
+
+p_otp_skip_0:
+	fetch 2,core_otp_addr
+	increase 1,pdata
+	store 2,core_otp_addr
+	increase 1,queue
+	compare 8,queue,0xf
+	nbranch p_otp_program_bit,true
+	loop p_otp_program
+	branch otp_disable_chgpump
+
+p_gpio_set_wake_by_current_state:
+	set1 gpio_active_bit,temp
+	call gpio_get_bit
+	nsetflag true,gpio_active_bit,temp
+	branch gpio_set_wake
+
+//**************************APP INIT*******************************//
+p_lpm_dispatch:
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	rtn blank
+	// fetch 1,mem_device_le_bb_connected_flag
+	// rtn blank
+	fetch 1,mem_keyboard_fn_flag
+	nrtn blank
+	fetch 1,mem_keyboard_control_key_flag
+	nrtn blank
+	fetch 1,mem_device_direct_timer
+	nrtn blank
+	fetch 2,mem_device_discovery_timer
+	nrtn blank
+	fetch 1,mem_keyboard_commbination_control_key_delay_release_timer
+	nrtn blank
+	branch lpm_dispatch+4
+
+p_keyboard_init:
+	//jam 0x0a,mem_lpm_overhead
+	call app_param_init
+	call enable_authrom
+	call p_keyboard_setting_config
+	branch keyboard_init+2
+
+p_keyboard_setting_config:
+	rtn wake
+	call g24_transmit_init
+	call g24_chmap_param_init
+	call p_keyboard_param_init
+	jam 0x0a,mem_lpm_overhead
+	branch keyboard_setting_config+4
+
+p_keyboard_param_init:
+	call keyboard_compare_addr_init
+	call p_keyboard_param_common_init
+	branch	keyboard_param_init+2
+
+p_keyboard_param_common_init:
+	setarg MOUSE_BLE_ATT_LIST_ADDR				//ble attlist start address
+	store 2,mem_ui_le_uuid_table
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MOUSE,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_N_KEY_ROLLOVER_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER,hid_device_param_common_init
+	bbit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER,hid_device_param_common_init
+	setarg KEYBOARD_BLE_HID_MAP_MAGIC_KEYBOARD_ADDR
+	store 2,mem_keyboard_le_hid_map
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_MAGIC_KEYBOARD,hid_device_param_common_init
+	setarg mem_keyboard_le_table
+	store 2,mem_keyboard_le_hid_map
+	branch hid_device_param_common_init
+
+
+
+
+
+p_keyboard_store_device_info:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,p_keyboard_store_otp_device_info
+	branch keyboard_store_device_info+1
+
+p_keyboard_store_otp_device_info:
+	fetch 2,mem_otp_read_retention_offset
+	//arg 0x320,temp   //50*16 or 4*200
+	fetcht 2,mem_otp_read_retention_max_size
+	isub temp,null
+	rtn positive
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,keyboard_store_otp_device_info_g24
+	beq MODE_BT_DEVICE1,keyboard_store_otp_device_info_ble
+	rtn
+
+p_keyboard_adc_vol_init:
+	fetch 1,mem_keyboard_power_type
+	beq KEYBOARD_BATTARY_4V2,p_keyboard_adc_vol_4v2_init
+	branch keyboard_adc_vol_init+2
+
+p_keyboard_adc_vol_4v2_init:
+	setarg 0x2c0170		// 0x0170--3.7V  0x012c--3.0V  0x0140--3.2V  0x014a--3.3V
+	store 3,mem_keyboard_vdd_full_vol
+	setarg 0x014a01
+	istore 3,contw
+	rtn
+
+p_mouse_adc_bat_percent_lowpower_out:
+	ifetch 8,rega
+	store 8,mem_pdatatemp
+	call adc_clear_no_power_flag
+	call p_adc_clear_low_power_flag
+	fetch 2,mem_pdatatemp+6
+	fetcht 2,mem_pdatatemp+2	        //shutdown voltage
+	isub temp,null
+	ncall adc_set_no_power_flag,positive
+	fetcht 2,mem_pdatatemp+4		//low voltage
+	isub temp,null
+	ncall p_adc_set_low_power_flag,positive
+	branch mouse_adc_bat_level_set
+
+p_adc_clear_low_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set0 0,temp
+	branch adc_set_power_flag
+p_adc_set_low_power_flag:
+	fetcht 1,mem_adc_power_flag
+	set1 0,temp
+	branch adc_set_power_flag
+
+
+p_kscan_dispatch:
+	call p_keyboard_keyscan
+	branch kscan_dispatch+2
+
+p_keyboard_keyscan:
+	call keyboard_gpio_init
+	setarg 0
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	arg mem_keyscan_value_current,contr
+	arg mem_keyscan_value_check,contw
+	arg 20,loopcnt
+	call memcpy
+	call keyboard_stb_state_low							// exmcu wake up
+	setarg mem_keyscan_value_current
+	store 2,mem_keyscan_value_ptr
+	setarg mem_keyscan_exmcu_value_new
+	store 2,mem_keyscan_exmcu_value_ptr
+	call keyboard_stb_state_high
+	call keyboard_clk_input
+p_keyboard_keyscan_exmcu_start_check:
+	fetch 2,mem_keyscan_exmcu_wait_wake_count
+	increase 1,pdata
+	store 2,mem_keyscan_exmcu_wait_wake_count
+	bbit1 9,p_keyboard_keyscan 								// 953us restart
+	fetcht 1,mem_mcu_clk_gpio							// waiting for exmcu wake done
+	call gpio_get_bit
+	nbranch p_keyboard_keyscan_exmcu_start_check,true
+	call keyboard_stb_state_low
+	branch keyboard_keyscan_wait_wake_next
+
+
+
+
+
+
+
+p_keyboard_device_poweron_timer:
+	fetch 1,mem_keyboard_device_poweron_timer
+	rtn blank
+	increase -1,pdata
+	store 1,mem_keyboard_device_poweron_timer
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_030_POWER_LED,p_keyboard_device_poweron_030_led
+	fetch 1,mem_keyboard_device_poweron_timer
+	branch keyboard_device_led_off,blank
+	branch keyboard_device_led_on
+
+p_keyboard_device_poweron_030_led:
+	fetch 1,mem_keyboard_device_poweron_timer
+	branch keyboard_power_led_off,blank
+	branch keyboard_power_led_on
+p_keyboard_bb_event_timer:
+	call keyboard_low_voltage_param_set
+	call keyboard_adc_read
+	call keyboard_adc_gpio_set_before_hibernate
+
+	//led
+	call keyboard_low_voltage_led_timer
+	call p_keyboard_num_capslock_led_on_timer
+	call keyboard_rgb_on_timer
+	call p_keyboard_device_poweron_timer
+	call keyboard_mode_led_timer
+	call p_keyboard_device_pair_led_timer
+	//key
+	call p_keyboard_key_press_timer
+	call keyboard_commbination_key_process
+	call keyboard_same_key_long_press_timer
+
+	// g24
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+	call mouse_24g_long_sleep_param_update_timer
+	call p_keyboard_24g_repeat_send_data
+	call keyboard_24g_led_status_get_timer
+
+	//le
+	call keyboard_check_discovery_timeout_timer
+	call keyboard_check_direct_timeout_timer
+	call mouse_le_enable_att_list_timer
+	call keyboard_le_battery_updata_timer
+	call mouse_le_send_smp_security_request_timer
+	call keyboard_le_send_conn_param_update_timer
+	call keyboard_le_auto_recognize_timer
+
+	call mouse_current_mult_update_timer
+	call keyboard_store_information_delay_timer
+	call keyboard_commbination_delay_release_timer
+	call keyboard_usb_updata_timer
+	branch keyboard_check_no_data_timeout_timer
+
+p_keyboard_num_capslock_led_on_timer:
+	fetch 1,mem_24g_shutdown_flag
+	nrtn blank
+	branch keyboard_num_capslock_led_on_timer
+
+
+p_keyboard_key_press_timer:
+	fetch 1,mem_keyboard_switch_device_flag
+	bbit1 KEYBOARD_FLAG_G24_DEVICE_BUTTON,p_keyboard_device_select_g24_press_timer
+	call p_keyboard_device_select_g24_nopress_timer
+	fetch 1,mem_keyboard_switch_device_flag
+	bbit1 KEYBOARD_FLAG_BT_DEVICE_BUTTON,p_keyboard_device_select_bt_press_timer
+	branch p_keyboard_device_select_bt_nopress_timer
+
+p_keyboard_device_select_g24_press_timer:
+	fetch 1,mem_keyboard_switch_g24_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_g24_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_g24_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	call p_keyboard_store_device_number
+	call keyboard_stop_bluetooth_mode
+	branch keyboard_24g_start_pair_mode
+
+p_keyboard_device_select_bt_press_timer:
+	fetch 1,mem_keyboard_switch_bt_press_timer
+	sub pdata,100,null
+	nrtn positive
+	increase 1,pdata
+	store 1,mem_keyboard_switch_bt_press_timer
+	rtnne 25
+	jam 0,mem_keyboard_switch_bt_enable
+	fetch 1,mem_device_flag
+	rtneq MODE_USB_DEVICE
+	call p_keyboard_store_device_number
+	call hid_device_le_send_empty_packet
+	branch keyboard_long_button_bt_discovery
+
+
+p_keyboard_device_select_g24_nopress_timer:
+	jam 0,mem_keyboard_switch_g24_press_timer
+	fetch 1,mem_keyboard_switch_g24_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_g24_enable
+	call p_keyboard_store_device_number
+	branch soft_reset_chip
+
+p_keyboard_device_select_bt_nopress_timer:
+	jam 0,mem_keyboard_switch_bt_press_timer
+	fetch 1,mem_keyboard_switch_bt_enable
+	rtn blank
+	jam 0,mem_keyboard_switch_bt_enable
+	call keyboard_store_device_number
+	branch soft_reset_chip
+
+p_keyboard_store_device_number:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit1 KEYBOARD_ENABLE_OTP,mouse_write_otp_device_flag
+	bbit1 KEYBOARD_ENABLE_EEPROM,keyboard_store_device_number
+	rtn
+
+p_keyboard_long_button_bt_discovery:
+	branch keyboard_long_button_bt_discovery+2
+
+p_keyboard_24g_repeat_send_data:
+	fetch 1,mem_same_keyvalue_timerout_flag
+	nrtn blank
+	branch keyboard_24g_repeat_send_data
+
+/////////////////////////////////////store otp///////////////////////////////////////
+p_keyboard_setting_config_next:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	//bbit1 KEYBOARD_ENABLE_2K_EEPROM,p_keyboard_load_2k_eeprom_info
+	bbit1 KEYBOARD_ENABLE_OTP,keyboard_load_otp_info
+	branch keyboard_setting_config+11
+
+p_keyboard_load_2k_eeprom_info:
+	fetch KEYBOARD_FLAG_LEN,mem_keyboard_flag
+	bbit0 KEYBOARD_ENABLE_SDA_MULTI_R_LINE,p_keyboard_load_2k_eeprom_device_info_next
+	fetcht 1,mem_eeprom_sda_gpio
+	call device_gpio_config_input_pu
+	fetcht 1,mem_eeprom_sda_gpio
+	call gpio_get_bit
+	branch p_keyboard_load_2k_eeprom_info,true
+p_keyboard_load_2k_eeprom_device_info_next:
+	call keyboard_eeprom_init
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg KEYBOARD_DEVICE_NUMBER_EEPROM_OFFECT,regb
+	call iicd_read_eep_data
+	branch keyboard_load_info_check
+
+///////////////////////////ATT fix//////////////////////
+p_keyboard_le_parse_att:
+	copy rega,contr
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_ERROR_RESPONSE,keyboard_le_send_att_find_by_type_value_request_mac
+	beq ATTOP_FIND_BY_TYPE_VALUE_RESPONSE,keyboard_le_parse_att_find_by_type_value_rsp
+	beq ATTOP_READ_BY_TYPE_RESPONSE,keyboard_le_send_att_read_by_type_rsp_mac
+	beq ATTOP_READ_RESPONSE,keyboard_le_parse_att_manu_resp
+	beq ATTOP_READ_BY_TYPE_REQUEST,keyboard_le_parse_att_read_by_type_request
+	beq ATTOP_READ_BLOB_REQUEST,p_keyboard_le_parse_att_read_blob_request
+	beq ATTOP_READ_REQUEST,keyboard_le_parse_att_read_request
+	beq ATTOP_WRITE_REQUEST,keyboard_le_parse_att_write_request
+	beq ATTOP_WRITE_COMMAND,keyboard_le_parse_att_write_command
+	branch le_parse_att2
+
+p_keyboard_le_parse_att_read_blob_request:
+	ifetch 2,contr
+	store 2,mem_le_att_offset
+	iforce rega
+	fetcht 2,mem_le_att_handle
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch le_send_att_read_blob_response,zero
+	// fetch 2,mem_le_att_offset
+	// sub pdata,66,null
+	//nbranch keyboard_le_send_att_read_blob_response,zero
+	branch keyboard_le_send_att_read_blob_response
+
+p_keyboard_motion_data_check:
+	fetch 1,mem_keyboard_consumer_key_status
+	beq KEYBOARD_CONSUMER_KEY_RELEASE,p_keyboard_value_consumer_release
+	branch keyboard_motion_data_check+3
+p_keyboard_value_consumer_release:
+p_keyboard_value_consumer_all_key_release:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_consumer_release
+	jam 2,mem_keyboard_data_change_flag
+	fetch 1,mem_keyboard_all_press_key_count
+	call keyboard_value_release_all_key,blank
+	jam KEYBOARD_CONSUMER_KEY_STANDBY,mem_keyboard_consumer_key_status
+	setarg HID_REPORTID_CONSUMER_KEY
+	store 3,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+//////////////////////////////////////media/////////////////////////////////////
+p_keyboard_value_tpye_consumer_set:
+	copy temp,pdata
+	jam HID_REPORTID_BIT_CONSUMER_KEY,mem_keyboard_tx_data
+	fetcht 1,mem_keyboard_all_press_key_count
+	sub temp,HID_KEY_NULL,null
+	branch p_keyboard_value_consumer_all_key_release,zero
+	beq 	HID_KEY_MULTIKEY_MEDIA,p_keyboard_value_media
+	beq 	HID_KEY_MULTIKEY_VOL_DOWN,p_keyboard_value_vol_down
+	beq 	HID_KEY_MULTIKEY_VOL_UP,p_keyboard_value_vol_up
+	beq 	HID_KEY_MULTIKEY_MUTE,p_keyboard_value_mute
+	beq 	HID_KEY_MULTIKEY_PRE_TRACK,p_keyboard_value_pre_track
+	beq 	HID_KEY_MULTIKEY_NEXT_TRACK,p_keyboard_value_next_track
+	beq 	HID_KEY_MULTIKEY_PALY,p_keyboard_value_play
+	beq 	HID_KEY_MULTIKEY_STOP,p_keyboard_value_stop
+
+	beq 	HID_KEY_AC_HOME,p_keyboard_value_ac_home
+	beq 	HID_KEY_MAIL,p_keyboard_value_mail
+	beq 	HID_KEY_MY_COMPUTER,p_keyboard_value_my_computer
+	beq 	HID_KEY_AC_FAVORITES,p_keyboard_value_ac_favorites
+	beq 	HID_KEY_CALCULATOR,p_keyboard_value_calculator
+	beq 	HID_KEY_AC_SEARCH,p_keyboard_value_ac_search
+	beq 	HID_KEY_AC_BACK,p_keyboard_value_ac_back
+	beq 	HID_KEY_OS_SOFT_KB,p_keyboard_value_os_soft_kb
+
+	beq 	HID_KEY_LIGHT_DOWN,p_keyboard_value_light_down
+	beq 	HID_KEY_LIGHT_UP,p_keyboard_value_light_up
+	beq 	HID_KEY_IOS_ANDROID_OS_LOCK,p_keyboard_value_os_lock
+
+	beq 	HID_KEY_MAC_EJECT,p_keyboard_value_mac_eject
+	beq 	HID_KEY_AC_FORWARD,p_keyboard_value_ac_forward
+	beq 	HID_KEY_AC_STOP,p_keyboard_value_ac_stop
+	beq 	HID_KEY_AC_REFRESH,p_keyboard_value_ac_refresh
+
+	beq 	HID_KEY_SYSTEM_SLEEP,p_keyboard_value_system_sleep
+	branch keyboard_motion_data_check_next
+
+p_keyboard_value_media:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_media
+	setarg 0x0183
+
+p_keyboard_24g_standard_data_send:
+	store 2,mem_keyboard_tx_data+1
+	jam HID_REPORTID_CONSUMER_KEY,mem_keyboard_tx_data
+	branch keyboard_motion_data_check_next
+
+p_keyboard_value_vol_down:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_vol_down
+	setarg 0x00ea
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_vol_up:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_vol_up
+	setarg 0x00e9
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_mute:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_mute
+	setarg 0x00e2
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_pre_track:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_pre_track
+	setarg 0x00b6
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_next_track:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_next_track
+	setarg 0x00b5
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_play:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_play
+	setarg 0x00cd
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_stop:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_stop
+	setarg 0x00b7
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_home:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_home
+	setarg 0x0223
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_mail:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_mail
+	setarg 0x018a
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_my_computer:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_my_computer
+	setarg 0x0194
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_favorites:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_favorites
+	setarg 0x022a
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_calculator:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_calculator
+	setarg 0x0192
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_search:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_search
+	setarg 0x0221
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_back:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_back
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_IOS,p_keyboard_value_ac_home
+	beq SYSTEM_OS_MAC,p_keyboard_value_ac_home
+	setarg 0x0224
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_os_soft_kb:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_os_soft_kb
+	fetch 1,mem_kb_computer_system
+	beq SYSTEM_OS_ANDROID,p_keyboard_value_os_soft_kb_android
+	setarg 0x01ae
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_os_soft_kb_android:
+	setarg 0x0307
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_light_down:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_light_down
+	setarg 0x0070
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_light_up:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_light_up
+	setarg 0x006f
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_os_lock:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_os_lock
+	setarg 0x0030
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_mac_eject:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_mac_eject
+	setarg 0x00b8
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_forward:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_forward
+	setarg 0x0225
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_stop:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_stop
+	setarg 0x0226
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_ac_refresh:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_ac_refresh
+	setarg 0x0227
+	branch p_keyboard_24g_standard_data_send
+
+p_keyboard_value_system_sleep:
+	fetch 1,mem_device_flag
+	bne MODE_24G_DEVICE,keyboard_value_system_sleep
+	jam HID_REPORTID_SYSTEM_CTRL,mem_keyboard_tx_data
+	setarg 0x02
+	store 1,mem_keyboard_tx_data+1
+	branch keyboard_motion_data_check_next
+	beq HID_KEY_MULTIKEY_NEXT_TRACK,keyboard_value_next_track
+
+/////////////////////////////////////////////////////////////////////////
+p_keyboard_app_enter_hibernate:
+	call keyboard_setgpio_hibernate
+	branch app_enter_hibernate
+
+p_keyboard_device_pair_led_timer:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_keyboard_device_24g_pair_led
+	branch keyboard_device_pair_led_timer+2
+
+p_keyboard_device_24g_pair_led:
+	fetch 2,mem_24g_pair_timeout
+	branch p_keyboard_pair_success_led_move,blank
+	branch keyboard_device_pair_led
+
+p_keyboard_pair_success_led_move:
+	fetch 2,mem_24g_reconn_timeout
+	nbranch keyboard_device_pair_led,blank
+	branch keyboard_device_24g_led_off
+
+p_keyboard_keyvalue_change:
+	call keyboard_keyvalue_normal_replace
+	call keyboard_keyvalue_fn_replace
+	call p_keyboard_keyvalue_commbination_replace
+	call keyboard_keyvalue_in_out
+	branch keyboard_keyvalue_change_loop
+
+p_keyboard_keyvalue_commbination_replace:
+	fetch 1,mem_keyboard_keyvalue_temp
+	beq HID_KEY_FAVORITES,p_keyboard_favorites_combine
+	branch keyboard_keyvalue_commbination_replace+1
+
+p_keyboard_favorites_combine:
+	jam LEFT_CONTROL|LEFT_SHIFT,mem_keyboard_commbination_control_key_value
+	jam HID_KEY_O,mem_keyboard_commbination_standard_key_value
+	branch keyboard_commbination_keypress
\ No newline at end of file
Index: costumer/Bore/keyboard_ck801_only_24g/program/patch_sdk.prog
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/program/patch_sdk.prog	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/program/patch_sdk.prog	(working copy)
@@ -0,0 +1,18 @@
+define SECURE_CONNECTION
+define NEC
+define DEBUG_RF_INIT
+define COMPILE_SHUTTER
+define COMPILE_MOUSE
+define COMPILE_MODULE
+define COMPILE_USB
+define COMPILE_DONGLE
+define COMPILE_LE
+define COMPILE_24G
+define COMPILE_CAR
+define COMPILE_REMOTE_CAR
+define COMPLIE_ADPCM
+define SDKCODE
+ifdef SDKCODE
+INCLUDE "bt_format"
+org 0x0000  // start from patch ram address start
+endif
Index: costumer/Bore/keyboard_ck801_only_24g/sched/1.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/1.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/1.dat	(working copy)
@@ -0,0 +1,530 @@
+#device option
+mem_device_option:06
+#power on config
+mem_ui_button_gpio:ff
+
+mem_le_lap:61 21 20 98 07 2a
+mem_le_name_len:
+'BLE-M3
+
+mem_tx_power:06
+
+//save otp addr
+mem_shutter_efuse_start_offset: b0 1f
+mem_shutter_efuse_end_offset: 70 1a
+
+mem_shutter_le_pairing_handle:2b 00
+
+#默认相机圈
+#mem_initial_move_conf:aa 00 78 00 69 00 38 00
+#左下角
+#mem_initial_move_conf:0a 00 1e 00 07 00 06 00
+#安卓中间，IOS左下角
+mem_initial_move_conf:43 08 4a 0e 07 00 06 00
+
+mem_shutter_dy_conf:01
+#soft switch first power on
+mem_shutter_soft_switch_first_power_on:00
+
+#led config
+mem_shutter_led_on_light_dark_led_conf:
+00		#type:stop blink
+00		#blink count:no blink
+8c		#led gpio number:GPIO01
+46 00	#led blink light time
+96 00	#led blink dark time
+mem_shutter_led_off_light_dark_led_conf:
+01		#type:start blink
+03		#blink count:no blink
+8c		#led gpio number:GPIO01
+46 00	#led blink light time
+96 00	#led blink dark time
+
+
+mem_shutter_reconn_blink_on_time_conf:
+20 01
+20 03
+mem_shutter_discovery_blink_on_time_conf:
+20 01
+20 03
+
+#hard_soft_switch config
+mem_shutter_hard_soft_switch_case_temp:00
+mem_shutter_soft_switch_button_gpio_temp:ff
+
+#100ms timera
+mem_shutter_ble_discovery_time_conf:
+b8 0b #discovery_timeout
+70 17 #connect_timeout
+b8 0b #sleep_timeout
+b8 0b #sleep_timer
+
+
+#key config
+mem_shutter_key_num_conf:06
+mem_shutter_dy_key_conf:
+# #test 6key
+# 07
+# 0b
+# 13
+# 14
+# 15
+# 16
+# 0c
+
+# jxy-181
+07	#right
+12 	#like
+13 	#down
+06 	#photo
+08 	#up
+14 	#left
+
+# ff	#right
+# ff 	#like
+# 13 	#down
+# ff 	#photo
+# ff 	#up
+# ff 	#left
+
+mem_combine_key0:
+#6key
+28 00 #left 2
+09 00 #right 2
+18 00 #up 2
+0c 00 #down 2
+
+#6key -key mirror
+#09 00 #left 2
+#28 00 #right 2
+#0c 00 #up 2
+#18 00 #down 2
+
+#7key
+# 60 00 #left 2
+# 41 00 #right 2
+# 50 00 #up 2
+# 44 00 #down 2
+# 00 00
+
+#7key -key mirror
+#41 00 #left 2
+#60 00 #right 2
+#44 00 #up 2
+#50 00 #down 2
+#00 00
+
+
+mem_combine_key_release_value:
+#6key
+# 08 00
+#7key
+40 00
+
+
+mem_shutter_iphone_up_mid:
+1e 1e 1f 20 28 28 00
+mem_shutter_iphone_like_mid:
+1e 1e 1f 20 28 28 00
+mem_shutter_iphone_move_mid:
+1e 1e 1f 20 28 28 00
+
+
+mem_key0_press_i:  #right
+00
+mem_key0_release_new_i:
+27 24 24 24 28 23 23 23
+mem_key0_long_press_i:
+04 06 00
+
+mem_key1_press_i:#like
+27 00 28 00
+mem_key1_release_new_i:
+28 28 00
+
+mem_shutter_link_data_i:
+27 28 28 27 28 28 00
+
+mem_key2_press_i:#down
+00
+mem_key2_release_new_i:
+27 26 26 26 28 25 25 25
+
+#toggle between vol-inc and vol-dec
+mem_key3_press_i:#photo
+00
+mem_key3_release_new_i:#volume increment
+#7key
+01 06 00
+#6key
+# 27 01 06 28 00
+mem_key3_release_new_i_t:#volume decrement
+#7key
+02 06 00
+#6key
+# 27 02 06 28 00
+
+mem_key4_press_i:#up
+00
+mem_key4_release_new_i:
+27 25 25 25 28 26 26 26
+
+mem_key5_press_i:#left
+00
+mem_key5_release_new_i:
+27 23 23 23 28 24 24 24
+mem_key5_long_press_i: #lock
+03 06 00
+
+mem_key6_release_new_i:#move
+27 28 00 00
+mem_key6_release_new:#move
+00
+
+mem_dy_key0_press:  #right
+00
+mem_key0_release_new:
+13 14 15 16 17 18 19 1a 1b 00
+mem_key0_long_press:
+05 06 00
+
+mem_dy_key1_press:#like
+0b 11 00
+mem_key1_release_new:
+00
+
+mem_shutter_link_data:#like key loop
+0b 11 00 00 0b 11 00
+
+mem_dy_key2_press: #down
+00
+mem_key2_release_new:
+0f 0e 0d 0c 0b 0a 09 08 07 00
+mem_key2_long_press:#volume decrement
+02 06 00
+mem_key2_long_release:
+1c 1d 00
+
+#toggle between vol-inc and vol-dec
+mem_dy_key3_press:#photo
+00
+mem_key3_release_new:#volume increment
+# 1c 02 06 1d 00 #6key
+01 06 #7key
+mem_key3_release_new_t:#volume decrement
+# 1c 01 06 1d 00 #6key
+02 06 #7key
+
+
+mem_dy_key4_press:#up
+00
+mem_key4_release_new:
+08 09 0a 0b 0c 0d 0e 0f 10 00
+mem_key4_long_press:#volume increment
+01 06 00
+mem_key4_long_release:
+00
+
+
+mem_dy_key5_press:#left
+00
+mem_key5_release_new:
+1a 19 18 17 16 15 14 13 12 00
+mem_key5_long_press: #lock
+03 06 00
+
+mem_combine_key0_press:
+01
+mem_combine_key1_press:
+02
+mem_combine_key2_press:
+03
+mem_combine_key3_press:
+04
+mem_combine_key_release:
+00
+
+mem_move_mode_set:00 #00 combine key, 01 single key when another key has already triggered
+mem_move_mode_key_index:03 #move key index,SHUTTER_MOVE_KEY_NUM,SHUTTER_PHOTO_KEY_NUM
+mem_move_mode_trigger_enable:00
+
+mem_shutter_long_key_released_flag:01
+
+################ble kb val list#######################
+mem_shutter_mousekey_value_list:
+#Media key
+02 1b 00 01 00 00 00 00 00 00 #1 volume increment
+02 1b 00 02 00 00 00 00 00 00 #2 volume decrement
+02 1b 00 04 00 00 00 00 00 00 #3 lock
+02 1b 00 08 00 00 00 00 00 00 #4 ios home
+02 1b 00 10 00 00 00 00 00 00 #5 android home
+02 1b 00 00 00 00 00 00 00 00 #6 release
+#Android Key
+#up down
+06 23 00 02 01 00 00 00 00 00 #7
+06 23 00 03 01 f4 06 20 02 00 #8
+06 23 00 03 01 f4 06 d4 02 00 #9
+06 23 00 03 01 f4 06 28 03 00 #a
+06 23 00 03 01 f4 06 3c 04 00 #b like press
+06 23 00 03 01 f4 06 20 04 00 #c
+06 23 00 03 01 f4 06 74 05 00 #d
+06 23 00 03 01 f4 06 28 06 00 #e
+06 23 00 03 01 f4 06 dc 06 00 #f
+06 23 00 02 01 f4 06 70 07 00 #10
+#like release
+06 23 00 02 01 f4 06 3c 04 00 #11
+#right left
+06 23 00 02 01 f0 08 0f 06 00#12
+06 23 00 03 01 a3 07 0f 06 00#13
+06 23 00 03 01 2c 06 0f 06 00#14
+06 23 00 03 01 2c 05 0f 06 00#15
+06 23 00 03 01 52 04 0f 06 00#16
+06 23 00 03 01 e2 03 0f 06 00#17
+06 23 00 03 01 4f 03 0f 06 00#18
+06 23 00 03 01 4f 02 0f 06 00#19
+06 23 00 03 01 ab 01 0f 06 00#1a
+06 23 00 02 01 01 01 0f 06 00#1b
+#move
+06 23 00 07 04 00 00 00 00 00#1c    //move press
+06 23 00 06 04 00 00 00 00 00#1d    //move release
+
+#ios key
+#ios localinit key
+03 1b 00 01 18 80 00 00 00 00 #1e
+03 1b 00 00 10 80 00 00 00 00 #1f
+03 1b 00 41 40 0a 00 00 00 00 #20 ios init up local
+03 1b 00 41 40 0a 00 00 00 00 #21 ios init like local
+03 1b 00 41 40 0a 00 00 00 00 #22 ios init down/right/left local
+03 1b 00 20 00 00 00 00 00 00 #23 ios left
+03 1b 00 e0 0f 00 00 00 00 00 #24 ios right
+03 1b 00 00 00 02 00 00 00 00 #25 ios up
+03 1b 00 00 00 fe 00 00 00 00 #26 ios down
+
+#mouse key
+03 17 00 01 00 00 00 00 00 00 #27   press
+03 17 00 00 00 00 00 00 00 00 #28   release
+03 1b 00 00 00 00 00 00 00 00 #29 ios move
+03 1b 00 00 00 00 00 00 00 00 #2a ios move double
+
+03 1b 00 01 f8 7f 00 00 00 00 #2b
+03 1b 00 64 00 00 00 00 00 00 #2c
+03 1b 00 00 b0 f9 00 00 00 00 #2d
+mem_shutter_move_data:
+00 00 00  #defualt
+
+mem_ble_shutter_dy_interval_min_android:
+12 00
+15 00
+10 00
+2c 01
+
+mem_ble_shutter_dy_interval_min_ios:
+18 00
+1c 00
+10 00
+2c 01
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_shutter_le_uuid_sup:
+#Primary service GATT ------
+01 00 02 00 28 02 01 18
+#Service changed
+02 00 02 03 28 01 20
+03 00 02 05 2a 01 00
+#Client Characteristic Configuration
+04 00 02 02 29 02 00 00
+
+#Primary service GAP ------
+05 00 02 00 28 02 00 18
+
+#Device name
+06 00 02 03 28 01 02
+07 00 02 00 2a 13 43 68 69 70 73 65 61 2d 42 4c 45 20 20 20 20 20 20 20 20
+
+#Appearance
+08 00 02 03 28 01 02
+09 00 02 01 2a 02 c1 03
+
+#Peripheral Preferred Connection Parameters
+0a 00 02 03 28 01 02
+0b 00 02 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service device information ------
+0c 00 02 00 28 02 0a 18
+#PNP id
+0d 00 02 03 28 01 02
+0e 00 02 50 2a 07 01 05 0e 00 0a 02 40
+
+#Primary service hid ------
+0f 00 02 00 28 02 12 18
+
+#Protocol mode
+10 00 02 03 28 01 06
+11 00 02 4e 2a 01 01
+
+
+#Hid report
+12 00 02 03 28 01 10
+13 00 02 4d 2a 07 00 00 00 00 00 00 00
+#Client Characteristic
+14 00 02 02 29 02 00 00
+#Report reference
+15 00 02 08 29 02 01 01 # report id=1, type=1 input
+
+#Hid report id 4
+16 00 02 03 28 01 10
+17 00 02 4d 2a 03 00 00 00
+#Client Characteristic
+18 00 02 02 29 02 00 00
+#Report reference
+19 00 02 08 29 02 04 01 # report id=4, type=1 input
+
+#Hid report id 3
+1a 00 02 03 28 01 10
+1b 00 02 4d 2a 02 00 00
+#Client Characteristic
+1c 00 02 02 29 02 00 00
+#Report reference
+1d 00 02 08 29 02 03 01 # report id=3, type=1 input
+
+#Hid report id 5
+1e 00 02 03 28 01 10
+1f 00 02 4d 2a 03 00 00 00
+#Client Characteristic
+20 00 02 02 29 02 00 00
+#Report reference
+21 00 02 08 29 02 05 01 # report id=5, type=1 input
+
+#Hid report id 6
+22 00 02 03 28 01 10
+23 00 02 4d 2a 05 00 00 00 00 00
+#Client Characteristic
+24 00 02 02 29 02 00 00
+#Report reference
+25 00 02 08 29 02 06 01 # report id=6, type=1 input
+
+#Hid report id 2
+26 00 02 03 28 01 12
+27 00 02 4d 2a 02 00 00
+#00 00 00 00 00
+#Client Characteristic
+28 00 02 02 29 02 00 00
+#Report reference
+29 00 02 08 29 02 02 01 # report id=2, type=1 input
+
+#Report map
+2a 00 02 03 28 01 02
+2b 00 02 4b 2a 01 00
+
+#Hid information
+2c 00 02 03 28 01 02
+2d 00 02 4a 2a 04 11 01 00 01
+
+#Hid control point
+2e 00 02 03 28 01 04
+2f 00 02 4c 2a 01 00
+30 00 02 00 28 02 0f 18
+
+00 00
+
+mem_shutter_le_map_len_android:63 00 #6d 00
+mem_shutter_le_map_len_ios:b7 00
+mem_shutter_le_hid_map:
+05 0c # Usage Page(Consumer) #legth 30
+09 01 # Usage(Consumer Control)
+a1 01 # Collection(Application)
+85 03 # Report ID(3)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 05 # Report Count(5)
+09 e9 # volume up
+09 ea # volume down
+09 30 # lock
+09 40 # home
+0a 23 02  #home
+81 06 #Input (Data, Variable, Absolute)
+c0 #end
+
+05 0d	#Usage Page (Digitizer)
+09 04 	# Usage(touch screem)
+a1 01 	#Collection (Application)
+85 06	#Report Id (6)
+09 24   #Usage (Stylus)
+a1 02  	#Collection (Logical)
+09 42	#Usage (Tip Switch)
+15 00	#Logical minimum (0)
+25 01 	#Logical maximum (1)
+75 01	#Report Size (1)
+95 01	#Report Count (1)
+81 02 	#Input (Data,Value,Absolute,Bit Field)
+09 32	#Usage (In Range)
+81 02  	#Input (Data,Value,Absolute,Bit Field)
+95 06	#Report Count (6)
+81 03 	#Input (Constant,Array,Absolute,Bit Field)
+75 08 #        Report Size (8)
+09 51 #        Usage (Contact identifier)
+95 01 #        Report Count (1)
+81 02 #        Input (Data,Value,Absolute,Bit Field)
+05 01	#Usage Page (Generic Desktop)
+26 ff 0f  #Logical maximum (1'000)
+75 10	#Report Size (16)
+55 0E #Unit Exponent (14)
+65 33 #Unit(51)
+09 30 	#Usage (X)
+35 00   #Physical Minimum (0)
+46 00 10  #Physical maximum (1'205)
+81 02	#Input (Data,Value,Absolute,Bit Field)
+09 31	#Usage (Y)
+46 8a 03  #Physical maximum (906)
+81 02	#Input (Data,Value,Absolute,Bit Field)
+c0		#End Collection
+c0
+
+05 01 #Usage Page (Generic Desktop Controls)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 04 # Report ID(4)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+95 05 # Report Count(5)
+75 01 # Report Size(1)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 05 # Usage Maximum(5)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+81 02 #Input (Data, Variable, Absolute)
+95 01 # Report Count(1)
+75 03 # Report Size(3)
+81 01 #Input (Constant, Array, Absolute)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+05 01  #Usage Page (Generic Desktop Controls)
+09 38 #Usage (Wheel)
+15 81 # Logical Minimum(129)
+25 7f  # Logical Maximum(127)
+81 06 #Input (Data, Variable, Relative)
+05 0c #Usage page (Consumer)
+0a 38 02 	#Usage (AC Pan)
+95 01 # Report Count(1)
+81 06 #INPUT (Data, Variable, Relative)
+c0
+85 05 # Report ID(5)
+09 01 # Usage(Consumer Control)
+a1 00 # Collection(Physical)
+75 0c # Report Size(12)
+95 02 # Report Count(2)
+05 01 #Usage Page (Generic Desktop Controls)
+09 30 #Usage (x)
+09 31 #Usage (y)
+16 01 f8  # Logical Minimum(63489)
+26 ff 07 # Logical Maximum(2047)
+81 06 #Input (Data, Variable, Relative)
+c0 c0
+
+
+##############BLE ATT LIST END####################
+mem_dy_le_search_service_uuid:
+D0 00 2D 12 1E 4B 0F A4 99 4E CE B5 31 F4 05 79
+
Index: costumer/Bore/keyboard_ck801_only_24g/sched/1305.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/1305.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/1305.dat	(working copy)
@@ -0,0 +1,36 @@
+
+
+mem_system_clk:0c
+mem_lpm_xtalcnt:35 3f 64
+mem_lpm_isogate:db 7b 3b
+mem_lpm_hibernate_switch:20
+mem_lpm_ldo_sel:00
+mem_lpm_sysctl:08
+mem_lpm_hv_sel:b4
+
+mem_fcomp_div:18
+mem_xtal_c_sel:7f
+mem_gpio_wakeup_cfg:00 00 00 00 00 00 00 00 00 00 00 02
+
+mem_version:08 0e 05 03 00
+mem_le_tx2m_delay:20
+
+mem_rx_window_sniff:00 10
+
+mem_gain_fix:ff	#00:soft agc; ff:hw agc
+mem_gain_table:04 00 00
+mem_gain_second_agc_en:08	#hw agc: 0:second agc disable
+
+
+
+mem_ring_ibias_trim:a0
+mem_ring_ibias_vtune_high:bc 02 #700mv
+mem_ring_ibias_vtune_low:90 01 #400mv
+mem_ring_ibias_calc_adc_gpio:03
+mem_ring_ibias_calc_adc_channel:09
+
+mem_rf_init_data:
+ff
+mem_rf_init_ptr:mem_rf_init_data
+
+
Index: costumer/Bore/keyboard_ck801_only_24g/sched/DM_module.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/DM_module.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/DM_module.dat	(working copy)
@@ -0,0 +1,242 @@
+
+
+mem_device_option:0a
+
+mem_module_connect_state_gpio:FF
+mem_module_mcu_wake_pin:FF
+##############ADC CONFIG##############
+mem_module_read_vdd_count:01
+mem_module_read_vdd_flag:01
+#####################################
+
+##############NVRAM CONFIG##############
+mem_nv_data_ptr:mem_module_nv_data
+mem_nv_data_number:05
+#####################################
+
+
+#####################################
+
+##############UART CONFIG##############
+mem_module_uarta_baud_rate:D0 00
+mem_module_uart_rx_buffer:00 4d
+mem_module_uart_rx_buffer_end:7f 4e
+mem_module_uart_tx_buffer:80 4e
+mem_module_uart_tx_buffer_end:ef 4f
+#####################################
+
+
+
+##############BLUETOOTH CONFIG##############
+###commom###
+mem_soft_version_num:00 11
+mem_module_state:03
+mem_module_bluetooth_stauts_by_command:07
+
+mem_module_flag:00 00
+#bit0 MODULE_FLAG_UART_FLOW_CONTROL
+#bit1 MODULE_FLAG_BLE_SEND_MTU23
+#bit2 MODULE_FLAG_BLE_DATA_ENCRYPT
+
+mem_ui_button_gpio:ff
+mem_lpm_mode:01
+mem_lpm_interval:00 01
+mem_lpm_overhead:08
+mem_lpm_mult_timeout:02
+
+mem_module_wake_up_gpio:04
+
+
+
+###ble###
+mem_le_pairing_handle:2a 00
+mem_le_configuration:08
+
+mem_le_adv_channel_map:07
+mem_le_pairing_mode:01
+
+mem_module_ble_data_uart_max_length:f0
+
+mem_le_scan_enable:00
+mem_le_scan_type:01
+mem_le_scan_interval:00 02
+mem_le_scan_window:00 01
+#mem_le_conn_peer_addr:2a 31 00 33 02 3b
+#mem_cmd_le_create_conn:1b
+
+mem_le_adv_enable:01
+mem_le_adv_interval:f0 00
+mem_module_le_lpm_mult:05
+mem_le_lap:11 fa 0d 43 05 13
+mem_le_name_len:
+'Yichip 1121s
+
+mem_le_adv_data_len:03
+mem_le_adv_data:
+02 01 0e
+
+mem_le_scan_data_len:0e
+
+mem_le_scan_data:# 1 byte length + 1 byte type + N bytes data
+'\09Yichip 1121s
+
+mem_le_pres:02 03 00 05 10 02 03
+
+mem_le_interval_min:
+08 00 #min interval
+10 00 #max interval
+00 00 #latency
+2c 01 #timeout
+
+mem_le_conn_interval:90 00
+mem_le_local_mtu:20 00
+mem_local_rx_max_octets:fb 00 48 08 fb 00 48 08  # 1b
+mem_le_local_feature:21 09 
+mem_le_tx_phys:0707
+#####################################
+
+
+mem_ui_le_uuid_table:mem_module_le_att_list
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_module_le_att_list:
+#Primary service GAP ------
+01 00 02 00 28 02 00 18
+
+
+#Appearance
+02 00 02 03 28 01 02
+03 00 02 01 2a 02 c8 00 #3c2=hid mouse
+
+#Device name
+04 00 02 03 28 01 02
+05 00 02 00 2a 14 41 73 74 20 4c 45 20 4d 6f 75 73 65 20 20 20 20 20 20 20 20
+
+
+#Peripheral Preferred Connection Parameters
+06 00 02 03 28 01 02
+07 00 02 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+
+#privcy flag
+08 00 02 03 28 01 02
+09 00 02 02 2a 01 01
+
+#reconnecting addr 
+0a 00 02 03 28 01 08
+0b 00 02 03 2a 06 00 00 00 00 00 00
+
+#Primary service GATT ------
+0c 00 02 00 28 02 01 18
+
+#Service changed
+0d 00 02 03 28 01 20
+0e 00 02 05 2a 00
+#Client Characteristic Configuration
+0f 00 02 02 29 02 00 00
+
+#Primary service TX power ------
+10 00 02 00 28 02 04 18
+#Characteristic Tx power level
+11 00 02 03 28 01 16
+12 00 02 07 2a 01 00
+13 00 02 02 29 02 00 00
+
+#Primary service Battery ------
+14 00 02 00 28 02 0f 18
+#Characteristic Battery level
+15 00 02 03 28 01 12
+16 00 02 19 2a 01 38
+
+#Primary service device infomation
+17 00 02 00 28 02 0a 18
+#Characteristic system id
+18 00 02 03 28 01 02
+19 00 02 23 2a 03 00 00 00
+
+#Characteristic manufactor name
+1a 00 02 03 28 01 02
+1b 00 02 29 2a 06 79 69 63 68 69 70
+
+#Characteristic module number
+1c 00 02 03 28 01 02
+1d 00 02 24 2a 06 79 69 63 68 69 70
+
+#Characteristic serial number
+1e 00 02 03 28 01 02
+1f 00 02 25 2a 04 63 6f 6d 33
+
+#Characteristic firmware version
+20 00 02 03 28 01 02
+21 00 02 26 2a 03 31 2e 30
+
+#Characteristic software version
+22 00 02 03 28 01 02
+23 00 02 28 2a 03 31 2e 30
+
+#Characteristic hardware version
+24 00 02 03 28 01 02
+25 00 02 2a 2a 03 31 2e 30
+
+#Characteristic regulatory version
+26 00 02 03 28 01 02
+27 00 02 25 2a 04 63 6f 6d 33
+
+#Primary service yichip transmit ------
+28 00 02 00 28 10 55 e4 05 d2 af 9f a9 8f e5 4a 7d fe 43 53 53 49
+#Characteristic tx--notify read
+29 00 02 03 28 01 12
+2a 00 10 16 96 24 47 C6 23 61 BA D9 4B 4D 1E 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+2b 00 02 02 29 02 00 00
+
+#Characteristic rx--write
+2c 00 02 03 28 01 08
+2d 00 10 b3 9b 72 34 be ec d4 a8 f4 43 41 88 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Characteristic rx-- write without Response
+2e 00 02 03 28 01 04
+2f 00 10 fe 69 ca 9a 56 19 f6 ab 02 4d aa 6d 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Characteristic rx tx --read write notify
+30 00 02 03 28 01 2a
+31 0010 18 03 A6 28 5E D8 EC 91 1C 48 A3 AC 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+32 00 02 02 29 02 00 00
+
+
+#End of Attribute list
+00 00
+
+#mem_le_wechat_air_sync_ptr:mem_module_wechat_indication_handle
+#mem_module_wechat_indication_handle:35 38 
+
+#mem_module_wechat_tx_buffer_ptr:mem_wechat_tx_buffer
+#mem_module_wechat_rx_buffer_ptr:mem_wechat_rx_buffer
+
+#mem_le_adv_data_len:03
+#mem_le_adv_data:
+#02 
+#01 #GAP_ADTYPE_FLAGS
+#06 #GAP_ADTYPE_FLAGS_GENERAL |GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED
+
+#05 
+#02 #GAP_ADTYPE_16BIT_MORE
+#E7 FE 00 18
+
+#09 
+#FF #GAP_ADTYPE_MANUFACTURER_SPECIFIC
+#0e 05 #Yichip Microelectronics (Hangzhou) Co.,Ltd.
+#81 E8 2F 96 FD 64
+
+#mem_le_scan_data_len:0e
+
+#mem_le_scan_data:# 1 byte length + 1 byte type + N bytes data
+#'\09Yichip 1305 le
+
+
+
+#eeprom gpio config
+
+
+
Index: costumer/Bore/keyboard_ck801_only_24g/sched/adpcm.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/adpcm.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/adpcm.dat	(working copy)
@@ -0,0 +1,95 @@
+
+mem_ad_indexTable:ff ff ff ff 02 04 06 08 ff ff ff ff 02 04 06 08
+
+mem_ad_stepsizeTable:
+07 00 00 00
+08 00 00 00
+09 00 00 00
+0a 00 00 00
+0b 00 00 00
+0c 00 00 00
+0d 00 00 00
+0e 00 00 00
+10 00 00 00
+11 00 00 00
+13 00 00 00
+15 00 00 00
+17 00 00 00
+19 00 00 00
+1c 00 00 00
+1f 00 00 00
+22 00 00 00
+25 00 00 00
+29 00 00 00
+2d 00 00 00
+32 00 00 00
+37 00 00 00
+3c 00 00 00
+42 00 00 00
+49 00 00 00
+50 00 00 00
+58 00 00 00
+61 00 00 00
+6b 00 00 00
+76 00 00 00
+82 00 00 00
+8f 00 00 00
+9d 00 00 00
+ad 00 00 00
+be 00 00 00
+d1 00 00 00
+e6 00 00 00
+fd 00 00 00
+17 01 00 00
+33 01 00 00
+51 01 00 00
+73 01 00 00
+98 01 00 00
+c1 01 00 00
+ee 01 00 00
+20 02 00 00
+56 02 00 00
+92 02 00 00
+d4 02 00 00
+1c 03 00 00
+6c 03 00 00
+c3 03 00 00
+24 04 00 00
+8e 04 00 00
+02 05 00 00
+83 05 00 00
+10 06 00 00
+ab 06 00 00
+56 07 00 00
+12 08 00 00
+e0 08 00 00
+c3 09 00 00
+bd 0a 00 00
+d0 0b 00 00
+ff 0c 00 00
+4c 0e 00 00
+ba 0f 00 00
+4c 11 00 00
+07 13 00 00
+ee 14 00 00
+06 17 00 00
+54 19 00 00
+dc 1b 00 00
+a5 1e 00 00
+b6 21 00 00
+15 25 00 00
+ca 28 00 00
+df 2c 00 00
+5b 31 00 00
+4b 36 00 00
+b9 3b 00 00
+b2 41 00 00
+44 48 00 00
+7e 4f 00 00
+71 57 00 00
+2f 60 00 00
+ce 69 00 00
+62 74 00 00
+ff 7f 00 00
+
+
Index: costumer/Bore/keyboard_ck801_only_24g/sched/ble_car_att_list.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/ble_car_att_list.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/ble_car_att_list.dat	(working copy)
@@ -0,0 +1,204 @@
+01
+00
+02
+00
+28
+02
+01
+18
+02
+00
+02
+03
+28
+01
+20
+03
+00
+02
+05
+2a
+01
+00
+04
+00
+02
+02
+29
+02
+00
+00
+05
+00
+02
+00
+28
+02
+00
+18
+06
+00
+02
+03
+28
+01
+02
+07
+00
+02
+00
+2a
+11
+55
+43
+48
+4f
+4e
+20
+30
+31
+20
+20
+20
+20
+20
+20
+20
+20
+20
+08
+00
+02
+03
+28
+01
+02
+09
+00
+02
+01
+2a
+02
+c8
+00
+0a
+00
+02
+03
+28
+01
+02
+0b
+00
+02
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+0c
+00
+02
+00
+28
+02
+0a
+18
+0d
+00
+02
+03
+28
+01
+02
+0e
+00
+02
+50
+2a
+07
+02
+8a
+24
+66
+82
+01
+00
+0f
+00
+02
+00
+28
+02
+f0
+ff
+10
+00
+02
+03
+28
+01
+12
+11
+00
+02
+f1
+ff
+0e
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+12
+00
+02
+02
+29
+02
+00
+00
+13
+00
+02
+03
+28
+01
+08
+14
+00
+02
+f2
+ff
+0e
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
\ No newline at end of file
Index: costumer/Bore/keyboard_ck801_only_24g/sched/ble_shutter_gatt_list.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/ble_shutter_gatt_list.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/ble_shutter_gatt_list.dat	(working copy)
@@ -0,0 +1,313 @@
+01
+00
+02
+00
+28
+02
+01
+18
+02
+00
+02
+03
+28
+01
+20
+03
+00
+02
+05
+2a
+01
+00
+04
+00
+02
+02
+29
+02
+00
+00
+05
+00
+02
+00
+28
+02
+00
+18
+06
+00
+02
+03
+28
+01
+02
+07
+00
+02
+00
+2a
+13
+43
+68
+69
+70
+73
+65
+61
+2d
+42
+4c
+45
+20
+20
+20
+20
+20
+20
+20
+20
+08
+00
+02
+03
+28
+01
+02
+09
+00
+02
+01
+2a
+02
+c1
+03
+0a
+00
+02
+03
+28
+01
+02
+0b
+00
+02
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+0c
+00
+02
+00
+28
+02
+0a
+18
+0d
+00
+02
+03
+28
+01
+02
+0e
+00
+02
+50
+2a
+07
+02
+8a
+24
+66
+82
+01
+00
+0f
+00
+02
+00
+28
+02
+12
+18
+10
+00
+02
+03
+28
+01
+06
+11
+00
+02
+4e
+2a
+01
+01
+12
+00
+02
+03
+28
+01
+12
+13
+00
+02
+4d
+2a
+02
+00
+00
+14
+00
+02
+02
+29
+02
+00
+00
+15
+00
+02
+08
+29
+02
+02
+01
+16
+00
+02
+03
+28
+01
+12
+17
+00
+02
+4d
+2a
+02
+00
+00
+18
+00
+02
+02
+29
+02
+00
+00
+19
+00
+02
+08
+29
+02
+03
+01
+1a
+00
+02
+03
+28
+01
+02
+1b
+00
+02
+4b
+2a
+1b
+05
+0c
+09
+01
+a1
+01
+85
+02
+09
+e9
+09
+ea
+09
+e2
+09
+30
+15
+01
+25
+0c
+75
+10
+95
+01
+81
+00
+c0
+1c
+00
+02
+03
+28
+01
+02
+1d
+00
+02
+4a
+2a
+04
+11
+01
+00
+01
+1e
+00
+02
+03
+28
+01
+04
+1f
+00
+02
+4c
+2a
+01
+00
+20
+00
+02
+00
+28
+02
+0f
+18
+21
+00
+02
+03
+28
+01
+12
+22
+00
+02
+19
+2a
+01
+63
+00
+00
\ No newline at end of file
Index: costumer/Bore/keyboard_ck801_only_24g/sched/ble_shutter_key_value_list.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/ble_shutter_key_value_list.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/ble_shutter_key_value_list.dat	(working copy)
@@ -0,0 +1,40 @@
+02
+13
+00
+02
+00
+02
+13
+00
+01
+00
+02
+13
+00
+04
+00
+02
+13
+00
+06
+00
+02
+13
+00
+05
+00
+02
+13
+00
+00
+00
+02
+17
+00
+00
+28
+02
+17
+00
+00
+00
Index: costumer/Bore/keyboard_ck801_only_24g/sched/car.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/car.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/car.dat	(working copy)
@@ -0,0 +1,134 @@
+mem_device_option:0e
+mem_tx_power: 0a
+#0x00 TX_POWER_0DB
+#0x03 TX_POWER_3DB
+#0x05 TX_POWER_5DB
+#0x07 TX_POWER_7DB
+#0x0a TX_POWER_10DB
+
+#0x83 TX_POWER_F3DB
+#0x85 TX_POWER_F5DB
+#0x8a TX_POWER_F10DB
+#0x94 TX_POWER_F20DB
+
+
+mem_24g_tx_phy:84
+#Bit rate
+#0x01:1M
+#0x02:2M
+#0x04:S2, 500K
+#0x84:S8, 125K
+
+mem_24g_rx_phy:84
+#Bit rate
+#0x01:1M
+#0x02:2M
+#0x04:S2, 500K
+#0x84:S8, 125K
+
+mem_24g_ch_map1:04 14 24 34
+mem_24g_ch:20
+#2402Mhz + mem_24g_ch
+
+mem_factory_control_flag:01
+mem_car_full_control_remote_lap:ff ff ff ff
+
+mem_car_pwm_gpio:10
+
+mem_24g_addr:00 00 00 00
+
+
+mem_le_lap:ff ff ff ff 01 21
+mem_stop_4w1_flag:01
+#mem_rf_debug_rx_gpio:8a
+
+mem_le_adv_channel_map:07
+
+
+mem_le_scan_enable:
+00   #scan enable
+0a 00  #scan interval
+08 00  #scan window
+
+mem_le_adv_enable:
+01
+mem_le_adv_interval:f0 00
+
+mem_le_local_feature:01 08
+mem_le_tx_phys:84
+mem_le_rx_phys:84
+##############BLUETOOTH CONFIG##############
+mem_lpm_mode:00
+#mem_lpm_interval:00 01    #unit: 0.625ms
+mem_lpm_overhead:08   
+mem_lpm_mult:05
+mem_lpm_mult_timeout:02
+
+mem_le_name_len:
+'GP4WCAR_
+
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+02 01 05
+
+mem_le_interval_min:
+08 00 #min interval
+10 00 #max interval
+00 00 #latency
+2c 01 #timeout
+
+
+mem_queue_ptr: mem_car_le_queue_each_size
+
+mem_car_le_queue_each_size:
+14     #queue �ĵ���Ԫ�صĳ���
+04     #queue �Ķ��г���
+00     #queue current num
+00     #queue read ptr
+00     #queue write ptr
+
+
+#####################################
+
+
+mem_ui_le_uuid_table:mem_car_ble_att_list
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_car_ble_att_list:
+#Primary service yichip transmit ------
+01 00 02 00 28 02 01 18   #0x1801 GATT Service------Generic Access<16-bit UUID Numbers Document.pdf>
+#Service Changed
+02 00 02 03 28 01 20    #0x20 properties------notify
+03 00 02 05 2a 01 00
+#Client Characteristic Configuration
+04 00 02 02 29 02 01 00
+
+#Primary service GAP ------
+05 00 02 00 28 02 00 18
+
+#Device name
+06 00 02 03 28 01 4e
+07 00 02 00 2a 13 41 73 74 20 4c 45 20 4d 6f 75 73 65 20 20 20 20 20 20 20
+
+#Apperance
+08 00 02 03 28 01 4e
+09 00 02 01 2a 02 00 00
+
+#Perpheral Preferred Connection Parameters
+0a 00 02 03 28 01 02
+0b 00 02 04 2a 08 10 00 20 00 05 00 2c 01
+
+#Primary service yichip transmit ------
+0c 00 02 00 28 02 f0 ff
+
+#Characteristic tx--notify&read
+0d 00 02 03 28 01 12
+0e 00 02 f1 ff 04 00 00 00 00
+#Client Characteristic Configuration
+0f 00 02 02 29 02 00 00
+#Characteristic rx--write
+10 00 02 03 28 01 08
+11 00 02 f2 ff 01 00
+00 00   
+
+
Index: costumer/Bore/keyboard_ck801_only_24g/sched/dongle.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/dongle.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/dongle.dat	(working copy)
@@ -0,0 +1,69 @@
+
+mem_device_option:04
+mem_ui_button_gpio:ff
+
+
+#efuse size:28 bytes
+
+#sys config
+#bit7:enable 16M xtal#0:24M#1:16M
+#bit6:enable new channel map
+#bit5:enable eeprom
+#bit4:enable kb icon
+#bit3:enable 24g 2M
+#bit2-0:retention
+mem_dg_sys_config:00  #24M
+
+#24g new process #default value 00,if need new process set value 01
+mem_24g_disable_fec1:00
+mem_dg_24g_tx_power_default:06	#6dBm
+
+#usb config
+#mem_dg_usb_vid_pid:
+#00 #disable
+#mouse only#auto pair
+#51 31#VID
+#20 10#PID
+#mouse & keyboard
+#51 31#VID
+#20 30#PID
+#mem_dg_usb_tx_interval:00
+#mem_dg_usb_device_name:
+#'123456
+
+
+#rf config
+mem_24g_lap:36 26 10 30 12 23#low 4B used for 24g rxaddr
+#mem_24g_tx_phy:01#0x01:1M/0x02:2M/0x04:S2/0x84:S8
+#mem_24g_rx_phy:01#0x01:1M/0x02:2M/0x04:S2/0x84:S8
+#mem_24g_no_ack:00#no ack
+mem_24g_rx_window:78 69#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_pair_switch:00
+mem_24g_pair_mode:00
+#mem_24g_pair_ch:4e
+#mem_24g_pair_tx_power:85
+#mem_24g_pair_addr:20 15 10 05
+#mem_24g_ch_map_update:00
+#mem_24g_ch_update_map1
+#mem_24g_ch_update_map2
+#mem_24g_ch_update_map3
+#mem_24g_ch_update_map4
+
+#mem_rssi_buff_index:ff
+#mem_rssi_noise_buffer_ptr:mem_dg_rssi_noise_buffer
+#mem_rssi_noise_self_buffer_ptr:mem_dg_rssi_noise_dg_buffer
+#mem_rssi_noise_device1_buffer_ptr:mem_dg_rssi_noise_ms_buffer
+#mem_rssi_noise_device2_buffer_ptr:mem_dg_rssi_noise_kb_buffer
+
+
+
+#mem_rf_debug_rx_gpio:8c
+#mem_rf_debug_tx_gpio:8b
+
+
Index: costumer/Bore/keyboard_ck801_only_24g/sched/ff.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/ff.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/ff.dat	(working copy)
@@ -0,0 +1,88 @@
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
Index: costumer/Bore/keyboard_ck801_only_24g/sched/fpga.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/fpga.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/fpga.dat	(working copy)
@@ -0,0 +1,28 @@
+mem_xtal_freq:18
+mem_le_adv_enable:01
+
+mem_rx_window_sniff:00 0e
+
+mem_version:08 0e 05 03 00
+
+mem_le_lap:11 22 35
+mem_le_adv_data_len:03
+mem_le_adv_data:
+02 01 0e
+
+mem_le_scan_data_len:0b
+mem_le_scan_data:
+'\09FPGA1121S
+
+mem_le_adv_interval:20 00
+mem_le_scan_window:20 00
+mem_le_scan_type:01
+mem_le_adv_own_addr_type:01
+mem_le_adv_channel_map:07
+
+mem_device_option:05
+
+mem_rf_init_data:
+ff
+mem_rf_init_ptr:mem_rf_init_data
+
Index: costumer/Bore/keyboard_ck801_only_24g/sched/gatt.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/gatt.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/gatt.dat	(working copy)
@@ -0,0 +1,85 @@
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_le_att_list:
+
+#Primary service GAP ------
+01 00 00 28 02 00 18
+
+#Device name
+02 00 03 28 01 0a
+03 00 00 2a 0c 41 73 74 20 4c 45 20 4d 6f 75 73 65
+
+#Appearance
+04 00 03 28 01 02
+05 00 01 2a 02 c2 03 #3c2=hid mouse
+
+#Peripheral Preferred Connection Parameters
+06 00 03 28 01 02
+07 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service GATT ------
+08 00 00 28 02 01 18
+
+#Service changed
+09 00 03 28 01 20
+0a 00 05 2a 00
+
+#Client Characteristic Configuration
+0b 00 02 29 02 00 00
+
+#Primary service TX power ------
+0c 00 00 28 02 04 18
+#Characteristic Tx power level
+0d 00 03 28 01 06
+0e 00 07 2a 01 00
+
+
+#Primary service Battery ------
+0f 00 00 28 02 0f 18
+#Characteristic Battery level
+10 00 03 28 01 12
+11 00 19 2a 01 38
+
+#Primary service yichip transmit ------
+12 00 00 28 02 f0 18
+#Characteristic tx--notify
+13 00 03 28 01 12
+14 00 f1 2a 14	# for Android device, ATT MTU is just 23 bytes, so payload is 20 bytes max
+'Test read initial va
+#Client Characteristic Configuration
+15 00 02 29 02 00 00
+#Characteristic rx--write
+16 00 03 28 01 0c
+17 00 f0 2a 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#End of Attribute list
+00 00
+
+mem_le_adv_enable:01
+mem_le_adv_data_len:03
+
+mem_le_adv_data:02 01 05
+#flags NOTE: should be included here, or Android will not do connectgatt()
+
+
+mem_le_scan_data_len:17
+
+mem_le_scan_data:	# 1 byte length + 1 byte type + N bytes data
+
+#complete local name
+0e 09 
+#'Ast LE2Serial
+'YiChip BLE2IR
+
+#16bit uuid
+03 03 00 f0
+
+#Apperance
+03 19 40 02
+
+
+mem_le_adv_interval:00 08 
+mem_le_adv_channel_map:07 
+
+mem_24g_lap:77 11 00 33 00 00
+
Index: costumer/Bore/keyboard_ck801_only_24g/sched/hci_boot.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/hci_boot.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/hci_boot.dat	(working copy)
@@ -0,0 +1,7 @@
+
+mem_device_option:0c
+
+mem_rf_init_data:
+ff
+mem_rf_init_ptr:mem_rf_init_data
+
Index: costumer/Bore/keyboard_ck801_only_24g/sched/keyboard.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/keyboard.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/keyboard.dat	(working copy)
@@ -0,0 +1,765 @@
+mem_keyboard_flag:
+#byte 0
+#bit0 KEYBOARD_24G_PAIRING_FLAG
+#bit1 KEYBOARD_STORE_MEMORY_FLAG
+#bit2 KEYBOARD_LOW_VOLTAGE_FLAG
+#bit3 KEYBOARD_BT_DISCOVERY_BUTTON_DOWN_FLAG
+#bit4 KEYBOARD_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+00
+
+#byte 1
+#bit0 KEYBOARD_ENABLE_WAKEUP_FROM_POWER
+#bit1 KEYBOARD_ENABLE_16M
+#bit2 KEYBOARD_DISABLE_ICE
+#bit3 KEYBOARD_ENABLE_ADC
+#bit4 KEYBOARD_ENABLE_FLASH
+#bit5 KEYBOARD_ENABLE_2K_EEPROM
+#bit6 KEYBOARD_ENABLE_EEPROM
+#bit7 KEYBOARD_ENABLE_OTP
+89
+
+#byte 2
+#bit0 KEYBOARD_ENABLE_24G
+#bit1 KEYBOARD_ENABLE_AUTO_24G_PARING
+#bit2 KEYBOARD_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+#bit3 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+#bit4 KEYBOARD_ENABLE_24G_2M_PHY
+#bit5 KEYBOARD_ENABLE_24G_SEARCH_DONGLE
+0d
+
+#byte 3
+#bit0 KEYBOARD_ENABLE_BLE_RANDOM_ADDRE
+#bit1 KEYBOARD_ENABLE_LE_BATTERY_SERVICE_CANCEL
+#bit2 KEYBOARD_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+#bit3 KEYBOARD_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+00
+
+#byte 4
+#bit0 KEYBOARD_ENABLE_26_N_KEY_ROLLOVER
+#bit1 KEYBOARD_ENABLE_FULL_N_KEY_ROLLOVER
+#bit2 KEYBOARD_ENABLE_MAGIC_KEYBOARD
+#bit3 KEYBOARD_ENABLE_MOUSE
+#bit4 KEYBOARD_ENABLE_USB
+00
+
+#byte 5
+#bit0 KEYBOARD_ENABLE_030_POWER_LED
+#bit1 KEYBOARD_ENABLE_LOW_LED
+#bit2 KEYBOARD_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND
+#bit3 KEYBOARD_ENABLE_BACKLIGHT
+06
+
+#byte 6
+#bit0 KEYBOARD_ENABLE_FN_ARROW
+#bit1 KEYBOARD_ENABLE_FN_LEFT_CTRL_OSK
+#bit2 KEYBOARD_ENABLE_FN_SPACE_LANGUAGE
+#bit3 KEYBOARD_ENABLE_FN_OS_SWITCH
+#bit4 KEYBOARD_ENABLE_FN_LOCK
+00
+
+#byte 7
+#bit0 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+#bit1 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_GND
+#bit2 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_GND
+#bit3 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_G24_CONNECT_VDD
+#bit4 KEYBOARD_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO_BT_CONNECT_VDD
+00
+
+
+mem_device_option:0f
+mem_power_on_flag:01
+mem_keyboard_se_flag_init:a3 e4 #don't change
+#ui
+mem_ui_button_gpio:ff
+mem_ui_button_timeout:1e
+mem_ui_led_struct_num:01
+
+#rf
+mem_tx_power:01	#00--0db 01--3db  02--5db  03--f3db  04--f5db
+mem_rssi_buff_index:07
+mem_rssi_signal_buf_ptr:mem_mouse_rssi_signal_buf
+mem_rssi_dis_min_24g_init:85
+mem_rssi_dis_max_24g_init:90
+mem_rssi_dis_min_ble_init:75
+mem_rssi_dis_max_ble_init:80
+mem_rssi_hex_received_max_value_init:63
+mem_power_ctrl_pac_succ_cnt_init:7d
+
+#usb
+mem_keyboard_usb_vid_pid:
+01 #enable
+#mouse only#auto pair
+51 31#VID
+10 50#PID
+#mouse & keyboard
+51 31#VID
+20 50#PID
+
+#2.4g
+mem_24g_lap: 03 11 36 55 51 61
+mem_24g_data_type:02	#01--mouse  02--keyboard
+mem_24g_fast_conn_enable:01
+mem_24g_fast_conn_addr:0f 0f 0f 0f
+mem_24g_ch_map_update:00   #00--disable   01--enable
+mem_24g_long_sleep_set_level:02    #00--30ms   01--50ms  02--80ms  03--100ms
+mem_24g_disable_fec1:00	 #00--default mode  01--new process
+mem_24g_rx_window:c0 12     #400us  ## e0 2e#1ms #transmitter long range min:520us
+mem_device_24g_pair_tx_power:9e #-30dBm
+
+mem_24g_enter_hibernate:00 48 60
+mem_24g_long_sleep_param_update_timer_init:0a 00	#1s
+mem_24g_transmit_by_interrupt_exit_count_init:50 00
+mem_device_24g_search_dongle_time_init:32 00	#3mins
+mem_store_information_delay_timer_init:02
+mem_local_rx_max_octets:fb 00 48 08 fb 00 48 08  # 1b
+
+#bt
+mem_lpm_mode:01
+mem_lpm_mult:10
+mem_lpm_mult_init:10
+
+
+#ble
+mem_le_lap:73 83 92 a1 b1 c1
+mem_le_adv_channel_map:07
+
+mem_le_battery_level_updata_timer_init:96 00
+mem_le_keyboard_handle:15 00
+mem_le_notify_handle:19 00
+mem_le_multimedia_handle:1d 00
+mem_le_systemctrl_handle:21 00
+mem_le_pairing_handle:28 00
+mem_le_battery_level_handle:30 00
+
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#flag
+02 01 05
+#uuid
+03 03 12 18
+#appearance
+03 19 c1 03
+
+mem_le_adv_swift_pair:
+#microsoft swift pair
+06 ff 06 00 03 00 80
+#name
+#'\09Bluetooth Keyboard
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+#name
+'\09Bluetooth Keyboard
+
+#max 20bytes, att list data rom limits
+mem_le_name_len:
+'Bluetooth Keyboard
+
+mem_le_interval_min:
+08 00 #min interval
+08 00 #max interval
+20 00 #latency
+2c 01 #timeout
+
+mem_le_adv_ind:03 12 18
+mem_le_adv_direct_ind:ff 00 00
+
+mem_le_search_mac_manu_name:
+41 70 70 6c 65 20 49 6e 63
+mem_le_search_mac_uuid:
+0a 18
+mem_le_search_service_uuid:
+D0 00 2D 12 1E 4B 0F A4 99 4E CE B5 31 F4 05 79
+
+mem_keybord_appearance:c1 03 
+
+mem_keyboard_le_change_vid_pid_flag:
+01			# 00:disable    01:enable
+02
+e8 04		# vid: 04 e8
+21 70		# pid: 70 21
+01 00
+
+mem_keyboard_blob_response_consumer_customize:
+09 b8 		#bit4  MAC EJECT
+0a 25 02 		#bit5  AC Forward
+0a 26 02 		#bit6  AC Stop
+0a 24 02 		#bit6  AC Back
+
+81 02
+c0
+05 01
+09 06
+a1 01
+85 02
+
+#adc
+
+#adc config
+mem_adc_config_flag:02
+#01 ADC_CONFIG_HVIN
+#02 ADC_CONFIG_GPIO
+mem_adc_clkdiv:0a
+mem_adc_channel:0d
+#00 ADC_CH_VBAT
+#01 ADC_CH_VDCDC5V
+#06 ADC_CH_GPIO18
+#07 ADC_CH_GPIO10
+#08 ADC_CH_GPIO9
+#09 ADC_CH_GPIO12
+#0a ADC_CH_GPIO6
+#0b ADC_CH_GPIO20
+#0c ADC_CH_GPIO21
+#0d ADC_CH_GPIO22
+#0e ADC_CH_GPIO13
+
+mem_adc_dma_enable:00
+mem_adc_saddr_ptr:00 07
+mem_adc_eaddr_ptr:ff 07
+
+mem_keyboard_power_type:00  # 00--1.5V     01--3V    02--4.2V
+
+#led
+mem_keyboard_device_poweron_timer_init:1e
+
+#system
+mem_device_24g_power_on_fast_conn_timer:02 00	#1s
+mem_device_24g_reconn_timeout_init:64 #10s
+mem_device_24g_pair_timeout_init:58 02  #1min
+mem_device_fast_direct_timeout:64 #10s
+mem_device_direct_timeout:64  #10s
+mem_device_discovery_timeout:08 07  #3min
+mem_device_no_data_timeout:50 46   #10mins
+mem_adc_low_volatage_led_blink_timer:64 00 #10s
+mem_keyboard_pair_led_blink_count:05	#500ms
+mem_keyboard_low_volatage_led_blink_count:05		#200ms
+
+mem_same_keyvalue_timer_init:B8 0B		#5min
+
+mem_device_flag:00	#00--24g 01--ble
+mem_device1_type:34
+mem_device1_addr:00 00 00 00 00 00
+
+mem_device_number:01
+mem_keyboard_switch_device_to_g24:00 7f 1e		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt1:00 7f 1f		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt2:00 7f 20		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_bt3:00 7f 21		#enable flag + 2byte commbination key
+mem_keyboard_switch_device_to_usb:00 7f 22
+
+#rgb
+mem_rgb_on_color:
+07		#white
+01		#blue
+02		#green
+04		#red
+03		#cyan
+05		#purple
+06		#orange
+
+mem_customize_timer_setup: 50 00  	# n*0.3125ms
+mem_keyboard_num_caps_scoll_led_on_timer:58 02		#1min
+
+mem_rgb_pwm_conf:
+13	#pwm gpio
+01	#pwm channel
+a0	#three  byte frequency
+0f
+00
+1e 	#duty cycle (by percent %)
+
+mem_keyboard_led_r_gpio:ff #13
+mem_keyboard_led_g_gpio:ff #14
+mem_keyboard_led_b_gpio:ff #15
+
+##												bt button connct gnd          bt button in matrix        two button commbination
+mem_keyboard_pairing_type:01					#                 00                                    00                                 01
+mem_keyboard_pb_button_gpio:ff
+mem_keyboard_commbination_key_bt:7f ff			#		 not care				   not care			     Fn+C
+mem_keyboard_commbination_key_24g:29 14		#		 not care				   not care			     Esc+Q
+mem_keyboard_commbination_fast_conn_bt:2a 10	# bs+M
+mem_eeprom_wp_gpio:ff
+mem_eeprom_scl_gpio:ff
+mem_eeprom_sda_gpio:ff
+mem_eeprom_base:10 00
+mem_flash_base:00 50 00
+mem_otp_read_retention_max_size:20 03
+
+mem_keyboard_num_led_gpio:8c
+mem_keyboard_caps_led_gpio:89
+mem_keyboard_scroll_led_gpio:ff
+mem_keyboard_power_led_gpio:ff
+mem_keyboard_low_voltage_alarm_gpio:8a
+mem_keyboard_24g_led_gpio:8a
+mem_keyboard_bt1_led_gpio:ff
+mem_keyboard_bt2_led_gpio:ff
+mem_keyboard_bt3_led_gpio:ff
+
+#mem_rf_debug_rx_gpio:89
+#mem_rf_debug_tx_gpio:89
+
+mem_mcu_stb_gpio:0b			#IOB0
+mem_mcu_clk_gpio:0d			#IOB1
+mem_mcu_rstb_gpio:ff
+
+
+mem_device_reuse_2ice_gpio:05
+#portA:8x,portB:cx,fixed conf,don't change
+mem_key_excol_gpio:c2 c3 c4 c5 c6 c7 80 81 82 83 84 85
+
+#gpio00~16
+mem_key_row_gpio:
+08		#r0
+07 		#r1
+06		#r2
+04 		#r3
+03 		#r4
+00 		#r5
+01 		#r6
+02		#r7
+
+#gpio00~16   portA:8x,portB:cx
+mem_key_col_gpio:
+13		#c0
+c6		#c1
+c5		#c2
+c4		#c3
+c3		#c4
+c2		#c5
+80		#c6
+c7		#c7
+0f		#c8
+12		#c9
+0e		#c10
+84		#c11
+83		#c12
+82		#c13
+81		#c14
+85		#c15
+14		#c16
+15		#c17
+ff		#c18
+ff		#c19
+
+mem_keyboard_keyvalue_map:
+#r0 ~ r7
+48 00 00 00 e4 00 e0 3e 				#c0
+14 2b 04 29 1d 8b 35 1e 				#c1
+1a 39 16 64 1b 8a 3a 1f 					#c2
+08 3c 07 3d 06 88 3b 20 				#c3
+15 17 09 0a 19 05 22 21 				#c4
+18 1c 0d 0b 10 11 23 24					#c5
+0c 30 0e 3f 36 87 2e 25 					#c6
+12 40 0f 00 37 65 41 26 					#c7
+13 2f 33 34 32 38 2d 27 					#c8	
+47 00 7f e2 00 e6 00 46					#c9
+89 2a 31 44 28 45 42 43 				#c10
+5f 5c 59 2c 53 51 4c 00 					#c11
+60 5d 5a 62 54 4f 49 00 					#c12
+61 5e 5b 63 55 56 4b 4e 				#c13
+57 85 58 52 e9 50 4a 4d					#c14
+00 e1 e5 ed ee ec eb e8 				#c15
+f1 e3 f6 f8 f7 f9 ef fa					#c16
+91 f5 e7 f0 ea f2 fb 90					#c17
+
+mem_keyboard_fn_first:	00			#fn first  00:press f1~f12=f1~f12      01:press fn+f1~f12=f1~f12
+mem_keyboard_fn_esc:	29			#esc
+mem_keyboard_fn_f1:	e8			#f1
+mem_keyboard_fn_f2:	e9			#f2
+mem_keyboard_fn_f3:	ea			#f3
+mem_keyboard_fn_f4:	eb			#f4
+mem_keyboard_fn_f5:	ec			#f5
+mem_keyboard_fn_f6:	ed			#f6
+mem_keyboard_fn_f7:	ee			#f7
+mem_keyboard_fn_f8:	ef			#f8
+mem_keyboard_fn_f9:	f0			#f9
+mem_keyboard_fn_f10:	f1			#f10
+mem_keyboard_fn_f11:	f2			#f11
+mem_keyboard_fn_f12:	af			#f12
+mem_keyboard_fn_del:	4c			#delete
+mem_keyboard_fn_lock_keyvalue:29
+
+mem_keyboard_le_table:
+#att table
+# 01 00 02 00 28  # Primary Service Declaration
+# 02 00 18        # Generic Access Service (UUID: 0x1800)
+# 02 00 02 03 28  # Characteristic Declaration
+# 01 0a           # Properties: Read, Write
+# 03 00 02 00 2a  # Device Name Characteristic (UUID: 0x2A00)
+# 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+# 04 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 05 00 02 01 2a  # Appearance Characteristic (UUID: 0x2A01)
+# 02 c1 03        # Value: 0x03C2 (Generic Keyboard)
+
+# 06 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 07 00 02 04 2a  # Peripheral Preferred Connection Parameters (UUID: 0x2A04)
+# 08 06 00 06 00  # Minimum Connection Interval: 0x0006 (7.5ms)
+# 64 00           # Maximum Connection Interval: 0x0064 (100ms)
+# 2c 01           # Slave Latency: 0x012C (300)
+
+# 08 00 02 00 28  # Primary Service Declaration
+# 02 01 18        # Generic Attribute Service (UUID: 0x1801)
+# 09 00 02 03 28  # Characteristic Declaration
+# 01 20           # Properties: Indicate
+# 0a 00 02 05 2a 01 00 # Service Changed Characteristic (UUID: 0x2A05)
+# 0b 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+
+# 0c 00 02 00 28  # Primary Service Declaration
+# 02 0a 18        # Battery Service (UUID: 0x180F)
+# 0d 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 0e 00 02 29 2a  # Battery Level Characteristic (UUID: 0x2A19)
+# 06 59 69 43 68 69 70  # Value: Battery Level Data
+
+# 0f 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 10 00 02 50 2a  # HID Information Characteristic (UUID: 0x2A4A)
+# 07 02 e8 04 21 70 01 00  # Value: HID Information Data
+
+# 11 00 02 00 28  # Primary Service Declaration
+# 02 12 18        # HID Service (UUID: 0x1812)
+# 12 00 02 03 28  # Characteristic Declaration
+# 01 06           # Properties: Read, Write Without Response
+# 13 00 02 4e 2a  # Report Map Characteristic (UUID: 0x2A4B)
+# 01 01           # Value: Report Map Data
+
+# 14 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 15 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 08 00 00 00 00 00 00 00 00  # Value: Report Data
+# 16 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+# 17 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 02 01        # Value: Report ID and Type
+
+# 18 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 19 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 07 00 00 00 00 00 00 00  # Value: Report Data
+# 1a 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+# 1b 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 01 01        # Value: Report ID and Type
+
+# 1c 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 1d 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 02 00 00        # Value: Report Data
+# 1e 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+# 1f 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 05 01        # Value: Report ID and Type
+
+# 20 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 21 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 02 00 00        # Value: Report Data
+# 22 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+# 23 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 04 01        # Value: Report ID and Type
+
+# 24 00 02 03 28  # Characteristic Declaration
+# 01 0e           # Properties: Read, Write
+# 25 00 02 4d 2a  # Report Characteristic (UUID: 0x2A4D)
+# 02 00 00        # Value: Report Data
+# 26 00 02 08 29  # Report Reference Descriptor (UUID: 0x2908)
+# 02 02 02        # Value: Report ID and Type
+
+# 27 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 28 00 02 4b 2a  # HID Control Point Characteristic (UUID: 0x2A4C)
+# f5 05 0c 09 01 a1 01 85 05  # Value: HID Control Point Data
+# 15 00 25 01 75 01 95 18
+# 0a 83 01 09 ea 09 e9 09 e2
+# 09 b6 09 b5 09 cd 09 b7
+# 0a 23 02 0a 8a 01 0a 94 01
+# 0a 2a 02 0a 92 01 0a 21 02
+# 0a 24 02 0a 07 03 0a ae 01
+# 09 70 09 6f 09 30 09 b8
+# 0a 25 02 0a 26 02 0a 27 02
+# 81 02 c0
+
+# 05 01 09 06 a1 01 85 02  # HID Keyboard Input Report
+# 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 26 ff 00
+# 05 07 19 00 2a ff 00 81 00
+# c0
+
+# 05 01 09 02 a1 01 85 01  # HID Mouse Input Report
+# 09 01 a1 00 05 09 19 01 29 08
+# 15 00 25 01 75 01 95 08 81 02
+# 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 04  # HID System Control Input Report
+# 15 00 25 01 75 01 95 03 19 81
+# 29 83 81 02 95 01 75 05 81 03
+# c0
+# 29 00 02 03 28  # Characteristic Declaration
+# 01 1a           # Properties: Read, Notify
+# 2a 00 02 33 2a  # Report Characteristic (UUID: 0x2A33)
+# 08 00 00 00 00 00 00 00 00  # Value: Report Data
+
+# 2b 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 01 00        # Value: 0x0001 (Notifications Enabled)
+
+# 2c 00 02 03 28  # Characteristic Declaration
+# 01 02           # Properties: Read
+# 2d 00 02 4a 2a  # HID Information Characteristic (UUID: 0x2A4A)
+# 04 01 01 00 03  # Value: HID Information Data
+
+# 2e 00 02 00 28  # Primary Service Declaration
+# 02 0f 18        # Battery Service (UUID: 0x180F)
+
+# 2f 00 02 03 28  # Characteristic Declaration
+# 01 12           # Properties: Read, Notify
+# 30 00 02 19 2a  # Battery Level Characteristic (UUID: 0x2A19)
+# 01 64           # Value: Battery Level (100%)
+
+# 31 00 02 02 29  # Client Characteristic Configuration Descriptor (UUID: 0x2902)
+# 02 00 00        # Value: 0x0000 (Notifications Disabled)
+
+# 32 00 02 03 28  # Characteristic Declaration
+# 01 04           # Properties: Write Without Response
+# 33 00 02 4c 2a  # HID Control Point Characteristic (UUID: 0x2A4C)
+# 00 00 00        # Value: HID Control Point Data
+
+#se map
+af 00              # Feature
+05 01        # Usage Page (Generic Desktop Ctrls)
+09 06        # Usage (Keyboard)
+A1 01        # Collection (Application)
+85 02        #   Report ID (2)
+75 01        #   Report Size (1)
+95 08        #   Report Count (8)
+05 07        #   Usage Page (Kbrd/Keypad)
+19 E0        #   Usage Minimum (0xE0)
+29 E7        #   Usage Maximum (0xE7)
+15 00        #   Logical Minimum (0)
+25 01        #   Logical Maximum (1)
+81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+95 01        #   Report Count (1)
+75 08        #   Report Size (8)
+81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+95 05        #   Report Count (5)
+75 01        #   Report Size (1)
+05 08        #   Usage Page (LEDs)
+19 01        #   Usage Minimum (Num Lock)
+29 05        #   Usage Maximum (Kana)
+91 02        #   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+95 01        #   Report Count (1)
+75 03        #   Report Size (3)
+91 03        #   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+95 06        #   Report Count (6)
+75 08        #   Report Size (8)
+15 00        #   Logical Minimum (0)
+26 FF 00  #   Logical Maximum (255)
+05 07        #   Usage Page (Kbrd/Keypad)
+19 00        #   Usage Minimum (0x00)
+29 FF        #   Usage Maximum (0xFF)
+81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0              # End Collection
+
+05 0C        # Usage Page (Consumer)
+09 01        # Usage (Consumer Control)
+A1 01        # Collection (Application)
+85 03        #   Report ID (3)
+15 00        #   Logical Minimum (0)
+25 01        #   Logical Maximum (1)
+75 01        #   Report Size (1)
+95 18        #   Report Count (24)
+0A 83 01  #   Usage (AL Consumer Control Configuration)
+09 EA        #   Usage (Volume Decrement)
+09 E9        #   Usage (Volume Increment)
+09 E2        #   Usage (Mute)
+09 B6        #   Usage (Scan Previous Track)
+09 B5        #   Usage (Scan Next Track)
+09 CD        #   Usage (Play/Pause)
+09 B7        #   Usage (Stop)
+0A 23 02  #   Usage (AC Home)
+0A 8A 01  #   Usage (AL Email Reader)
+0A 94 01  #   Usage (AL Local Machine Browser)
+0A 2A 02  #   Usage (AC Bookmarks)
+0A 92 01  #   Usage (AL Calculator)
+0A 21 02  #   Usage (AC Search)
+0A 24 02  #   Usage (AC Back)
+0A 07 03  #   Usage (0x0307)
+0A AE 01  #   Usage (AL Keyboard Layout)
+09 70        #   Usage (0x70)
+09 6F        #   Usage (0x6F)
+09 30        #   Usage (Power)
+09 B8        #   Usage (Eject)
+0A 25 02  #   Usage (AC Forward)
+0A 26 02  #   Usage (AC Stop)
+0A 27 02  #   Usage (AC Refresh)
+81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0              # End Collection
+
+#af 00             # Feature
+
+
+# 05 01        # Usage Page (Generic Desktop Ctrls)
+# 09 06        # Usage (Keyboard)
+# A1 01        # Collection (Application)
+# 85 02        #   Report ID (2)
+# 75 01        #   Report Size (1)
+# 95 08        #   Report Count (8)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 E0        #   Usage Minimum (0xE0)
+# 29 E7        #   Usage Maximum (0xE7)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 01        #   Report Count (1)
+# 75 08        #   Report Size (8)
+# 81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 05        #   Report Count (5)
+# 75 01        #   Report Size (1)
+# 05 08        #   Usage Page (LEDs)
+# 19 01        #   Usage Minimum (Num Lock)
+# 29 05        #   Usage Maximum (Kana)
+# 91 02        #   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 01        #   Report Count (1)
+# 75 03        #   Report Size (3)
+# 91 03        #   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 06        #   Report Count (6)
+# 75 08        #   Report Size (8)
+# 15 00        #   Logical Minimum (0)
+# 26 FF 00  #   Logical Maximum (255)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 00        #   Usage Minimum (0x00)
+# 29 FF  #   Usage Maximum (0xFF)
+# 81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+
+05 01        # Usage Page (Generic Desktop Ctrls)
+09 80        # Usage (Sys Control)
+A1 01        # Collection (Application)
+85 04        #   Report ID (4)
+15 00        #   Logical Minimum (0)
+25 01        #   Logical Maximum (1)
+75 01        #   Report Size (1)
+95 03        #   Report Count (3)
+19 81        #   Usage Minimum (Sys Power Down)
+29 83        #   Usage Maximum (Sys Wake Up)
+81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+95 01        #   Report Count (1)
+75 05        #   Report Size (5)
+81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+C0              # End Collection
+
+#sb map
+# af 00             # Feature
+# 05 01        # Usage Page (Generic Desktop Ctrls)
+# 09 06        # Usage (Keyboard)
+# A1 01        # Collection (Application)
+# 85 02        #   Report ID (2)
+# 75 01        #   Report Size (1)
+# 95 08        #   Report Count (8)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 E0        #   Usage Minimum (0xE0)
+# 29 E7        #   Usage Maximum (0xE7)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 01        #   Report Count (1)
+# 75 08        #   Report Size (8)
+# 81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 05        #   Report Count (5)
+# 75 01        #   Report Size (1)
+# 05 08        #   Usage Page (LEDs)
+# 19 01        #   Usage Minimum (Num Lock)
+# 29 05        #   Usage Maximum (Kana)
+# 91 02        #   Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 01        #   Report Count (1)
+# 75 03        #   Report Size (3)
+# 91 03        #   Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile)
+# 95 06        #   Report Count (6)
+# 75 08        #   Report Size (8)
+# 15 00        #   Logical Minimum (0)
+# 26 FF 00  #   Logical Maximum (255)
+# 05 07        #   Usage Page (Kbrd/Keypad)
+# 19 00        #   Usage Minimum (0x00)
+# 29 FF        #   Usage Maximum (0xFF)
+# 81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+
+# 05 0C        # Usage Page (Consumer)
+# 09 01        # Usage (Consumer Control)
+# A1 01        # Collection (Application)
+# 85 03        #   Report ID (3)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 75 01        #   Report Size (1)
+# 95 18        #   Report Count (24)
+# 0A 83 01  #   Usage (AL Consumer Control Configuration)
+# 09 EA        #   Usage (Volume Decrement)
+# 09 E9        #   Usage (Volume Increment)
+# 09 E2        #   Usage (Mute)
+# 09 B6        #   Usage (Scan Previous Track)
+# 09 B5        #   Usage (Scan Next Track)
+# 09 CD        #   Usage (Play/Pause)
+# 09 B7        #   Usage (Stop)
+# 0A 23 02  #   Usage (AC Home)
+# 0A 8A 01  #   Usage (AL Email Reader)
+# 0A 94 01  #   Usage (AL Local Machine Browser)
+# 0A 2A 02  #   Usage (AC Bookmarks)
+# 0A 92 01  #   Usage (AL Calculator)
+# 0A 21 02  #   Usage (AC Search)
+# 0A 24 02  #   Usage (AC Back)
+# 0A 07 03  #   Usage (0x0307)
+# 0A AE 01  #   Usage (AL Keyboard Layout)
+# 09 70        #   Usage (0x70)
+# 09 6F        #   Usage (0x6F)
+# 09 30        #   Usage (Power)
+# 09 B8        #   Usage (Eject)
+# 0A 25 02  #   Usage (AC Forward)
+# 0A 26 02  #   Usage (AC Stop)
+# 0A 27 02  #   Usage (AC Refresh)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+
+# # 05 0C        # Usage Page (Consumer)
+# # 09 01        # Usage (Consumer Control)
+# # A1 01        # Collection (Application)
+# # 85 03        #   Report ID (3)
+# # 19 00        #   Usage Minimum (Unassigned)
+# # 2A FF 03  #   Usage Maximum (0x03FF)
+# # 15 00        #   Logical Minimum (0)
+# # 26 FF 03  #   Logical Maximum (1023)
+# # 95 01        #   Report Count (1)
+# # 75 10        #   Report Size (16)
+# # 81 00        #   Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# # C0              # End Collection
+
+# 05 01        # Usage Page (Generic Desktop Ctrls)
+# 09 80        # Usage (Sys Control)
+# A1 01        # Collection (Application)
+# 85 04        #   Report ID (4)
+# 15 00        #   Logical Minimum (0)
+# 25 01        #   Logical Maximum (1)
+# 75 01        #   Report Size (1)
+# 95 03        #   Report Count (3)
+# 19 81        #   Usage Minimum (Sys Power Down)
+# 29 83        #   Usage Maximum (Sys Wake Up)
+# 81 02        #   Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# 95 01        #   Report Count (1)
+# 75 05        #   Report Size (5)
+# 81 03        #   Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position)
+# C0              # End Collection
+# 120 bytes
+
Index: costumer/Bore/keyboard_ck801_only_24g/sched/keyboard_ble_hid_map_magic_keyboard.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/keyboard_ble_hid_map_magic_keyboard.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/keyboard_ble_hid_map_magic_keyboard.dat	(working copy)
@@ -0,0 +1,188 @@
+ba
+00
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+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
+26
+ff
+00
+05
+07
+19
+00
+2a
+ff
+00
+81
+00
+05
+ff
+09
+03
+75
+08
+95
+01
+81
+02
+c0
+05
+01
+09
+80
+a1
+01
+85
+04
+15
+00
+25
+01
+75
+01
+95
+03
+19
+81
+29
+83
+81
+02
+95
+01
+75
+05
+81
+03
+c0
\ No newline at end of file
Index: costumer/Bore/keyboard_ck801_only_24g/sched/keyboard_ble_hid_map_n_key_rollover_keyboard.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/keyboard_ble_hid_map_n_key_rollover_keyboard.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/keyboard_ble_hid_map_n_key_rollover_keyboard.dat	(working copy)
@@ -0,0 +1,204 @@
+ca
+00
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+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
+26
+ff
+00
+05
+07
+19
+00
+2a
+ff
+00
+81
+00
+c0
+05
+01
+09
+06
+a1
+01
+85
+01
+95
+70
+75
+01
+15
+00
+25
+01
+05
+07
+19
+00
+2a
+ff
+00
+81
+02
+c0
+05
+01
+09
+80
+a1
+01
+85
+04
+15
+00
+25
+01
+75
+01
+95
+03
+19
+81
+29
+83
+81
+02
+95
+01
+75
+05
+81
+03
+c0
\ No newline at end of file
Index: costumer/Bore/keyboard_ck801_only_24g/sched/keyboard_ble_hid_map_only_keyboard.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/keyboard_ble_hid_map_only_keyboard.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/keyboard_ble_hid_map_only_keyboard.dat	(working copy)
@@ -0,0 +1,178 @@
+b0
+00
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+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
+26
+ff
+00
+05
+07
+19
+00
+2a
+ff
+00
+81
+00
+c0
+05
+01
+09
+80
+a1
+01
+85
+04
+15
+00
+25
+01
+75
+01
+95
+03
+19
+81
+29
+83
+81
+02
+95
+01
+75
+05
+81
+03
+c0
\ No newline at end of file
Index: costumer/Bore/keyboard_ck801_only_24g/sched/le_prcp.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/le_prcp.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/le_prcp.dat	(working copy)
@@ -0,0 +1,77 @@
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_le_att_list:
+
+#Primary service GAP ------
+01 00 00 28 02 00 18
+
+#Device name
+02 00 03 28 01 0a
+03 00 00 2a 0c 41 73 74 20 4c 45 20 4d 6f 75 73 65
+
+#Appearance
+04 00 03 28 01 02
+05 00 01 2a 02 c2 03 #3c2=hid mouse
+
+#Peripheral Preferred Connection Parameters
+06 00 03 28 01 02
+07 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service GATT ------
+08 00 00 28 02 01 18
+
+#Service changed
+09 00 03 28 01 20
+0a 00 05 2a 00
+
+#Client Characteristic Configuration
+0b 00 02 29 02 00 00
+
+#Primary service TX power ------
+0c 00 00 28 02 04 18
+#Characteristic Tx power level
+0d 00 03 28 01 06
+0e 00 07 2a 01 00
+
+
+#Primary service Battery ------
+0f 00 00 28 02 0f 18
+#Characteristic Battery level
+10 00 03 28 01 12
+11 00 19 2a 01 38
+
+#Primary service yichip PRCP ------
+12 00 00 28 02 f1 18
+#Characteristic device tx
+13 00 03 28 01 12
+14 00 f3 2a 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+15 00 02 29 02 00 00
+#Characteristic device rx
+16 00 03 28 01 0e
+17 00 f2 2a 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#End of Attribute list
+00 00
+
+mem_le_adv_data_len:1b
+mem_le_adv_data:0c 09
+'Yichip Temp
+ 03 19 40 02 02 01 05 02 0a 00 03 03 f1 18
+mem_le_scan_data_len:00
+#mem_le_adv_param:00 08 00 08 00 01 00 00 00 00 00 00 00 07 00
+mem_le_adv_enable:01
+
+
+mem_le_adv_interval:20 00 
+mem_le_adv_type:00 
+mem_le_adv_own_addr_type:01 
+mem_le_adv_direct_addr:00 00 00 00 00 00 
+mem_le_adv_channel_map:07 
+
+mem_le_notify_handle:14
+
+mem_lpm_mode:00
+#mem_lpm_ctrl:0f 0f 10 06
+mem_lpm_xtalcnt:0c 10 ca 1f
+mem_device_option:0d
+mem_le_lap:45 67 78 89 90 56
+
Index: costumer/Bore/keyboard_ck801_only_24g/sched/le_transmit_uuid.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/le_transmit_uuid.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/le_transmit_uuid.dat	(working copy)
@@ -0,0 +1,62 @@
+mem_device_option: 01
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_le_att_list:
+
+#Primary service GAP ------
+01 00 00 28 02 00 18
+
+#Device name
+02 00 03 28 01 0a
+03 00 00 2a 0c 41 73 74 20 4c 45 20 4d 6f 75 73 65
+
+#Appearance
+04 00 03 28 01 02
+05 00 01 2a 02 c2 03 #3c2=hid mouse
+
+#Peripheral Preferred Connection Parameters
+06 00 03 28 01 02
+07 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service GATT ------
+08 00 00 28 02 01 18
+
+#Service changed
+09 00 03 28 01 20
+0a 00 05 2a 00
+
+#Client Characteristic Configuration
+0b 00 02 29 02 00 00
+
+#Primary service TX power ------
+0c 00 00 28 02 04 18
+#Characteristic Tx power level
+0d 00 03 28 01 06
+0e 00 07 2a 01 00
+
+
+#Primary service Battery ------
+0f 00 00 28 02 0f 18
+#Characteristic Battery level
+10 00 03 28 01 12
+11 00 19 2a 01 38
+
+#Primary service yichip transmit ------
+12 00 00 28 02 f0 18
+#Characteristic tx--notify
+13 00 03 28 01 12
+14 00 f1 2a 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+15 00 02 29 02 00 00
+#Characteristic rx--write
+16 00 03 28 01 0c
+17 00 f0 2a 17 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#End of Attribute list
+00 00
+
+mem_le_adv_data_len:1b
+mem_le_adv_data:0c 09 52 74 72 69 76 72 5f 52 36 32 31 03 19 40 02 02 01 05 02 0a 00 03 03 00 f0
+mem_le_scan_data_len:00
+mem_le_adv_param:00 08 00 08 00 01 00 00 00 00 00 00 00 07 00
+mem_le_adv_enable:01
Index: costumer/Bore/keyboard_ck801_only_24g/sched/mouse.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/mouse.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/mouse.dat	(working copy)
@@ -0,0 +1,337 @@
+mem_mouse_flag:
+#mouse flag byte1
+#bit0 MOUSE_SELECT_DEVICE_FLAG
+#bit1 MOUSE_24G_PAIRING_FLAG
+#bit2 MOUSE_STORE_EEPROM_FLAG
+#bit3 MOUSE_BT_CANNEL_RECONN_FLAG
+#bit4 MOUSE_LOW_VOLTAGE_FLAG
+#bit5 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
+#bit6 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+#bit7 MOUSE_ENABLE_SPI2
+04
+
+#mouse flag byte2
+#bit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE
+#bit1 MOUSE_ENABLE_2K_EEPROM
+#bit2 MOUSE_ENABLE_WAKEUP_FROM_POWER
+#bit3 MOUSE_ENABLE_16M
+#bit4 MOUSE_ENABLE_USB
+#bit5 MOUSE_ENABLE_24G_SEARCH_DONGLE
+#bit6 MOUSE_ENABLE_LOAD_AND_STORE_DPI
+#bit7 MOUSE_ENABLE_24G
+e5
+
+#mouse flag byte3
+#bit0 MOUSE_ENABLE_FLASH
+#bit1 MOUSE_ENABLE_EEPROM
+#bit2 MOUSE_ENABLE_OTP
+#bit3 MOUSE_ENABLE_ADC
+#bit4 MOUSE_ENABLE_KEYBOARD
+#bit5 MOUSE_ENABLE_DOUBLE_DPI_KEY
+#bit6 MOUSE_ENABLE_SWITCH_GPIO_CONNECT_VIN
+01
+
+#mouse flag byte4
+#bit0 MOUSE_ENABLE_24G_250Hz
+#bit1 MOUSE_ENABLE_24G_500Hz
+#bit2 MOUSE_ENABLE_24G_1000
+#bit3 MOUSE_ENABLE_BT_125Hz
+#bit4 MOUSE_ENABLE_DPI_LEVEL_4
+#bit5 MOUSE_ENABLE_USB_250
+#bit6 MOUSE_ENABLE_USB_500
+#bit7 MOUSE_ENABLE_USB_1000
+00
+
+#mouse flag byte5
+#bit0 MOUSE_ENABLE_1IO2LED
+#bit1 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
+#bit2 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT
+#bit3 MOUSE_ENABLE_LOW_LED
+#bit4 MOUSE_ENABLE_LOW_FOR_LED
+#bit5 MOUSE_ENABLE_DPI_FOR_LED
+00
+
+#mouse flag byte6 
+#bit0 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+#bit1 MOUSE_ENABLE_SELECT_DEVICE_BY_PB_BUTTON
+#bit2 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO
+#bit3 MOUSE_ENABLE_DPI_KEY_CONNECT_GND
+#bit4 MOUSE_ENABLE_ANOTHER_DPI_KEY_CONNECT_GND
+#bit5 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
+#bit6 MOUSE_ENABLE_FIRE_KEY_CONNECT_GND
+#bit7 MOUSE_ENABLE_CUSTOMER_KEY_CONNECT_VIN
+00
+
+#mouse flag byte7
+#bit0 MOUSE_ENABLE_AUTO_24G_PARING
+#bit1 MOUSE_ENABLE_24G_POWER_ON_PAIRING
+#bit2 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+#bit3 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY
+#bit4 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+#bit5 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+#bit6 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
+#bit7 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
+01
+
+#mouse flag byte8
+#bit0 MOUSE_ENABLE_SMOOTHER
+#bit1 MOUSE_ENABLE_XY_OFFSET
+#bit2 MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+#bit3 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+#bit4 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+#bit5 MOUSE_ENABLE_24G_2M_PHY
+#bit6 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING
+1b
+
+
+mem_device_switch_gpio:ff
+mem_device_reuse_2ice_gpio:05
+mem_sensor_motion_gpio:ff
+mem_whee_a_data_gpio:ff
+mem_whee_b_data_gpio:ff
+
+mem_mouse_param_config:
+06 #mem_lbutton_gpio
+0b #mem_mbutton_gpio
+0c #mem_rbutton_gpio
+06 #mem_bk_button_gpio
+0b #mem_fw_button_gpio
+0c #mem_dpi_button_gpio
+12 #mem_mouse_sensor_sclk_gpio
+13 #mem_mouse_sensor_sdio_gpio
+ff #mem_select_sensor_angle_gpio
+00 #mem_sensor_angle_default
+00 #mem_sensor_angle_gnd
+00 #mem_sensor_angle_vin
+00 #mem_config_sensor_dpi	#power on default dpi 00--1200  01--1600
+ff #mem_whee_ta_data_gpio
+ff #mem_whee_tb_data_gpio
+ff #mem_matrix_public_gpio
+ff #mem_config_select_device_button_gpio
+ff #mem_customer_key_gpio
+ff #mem_firebutton_gpio
+ff #mem_dpi_another_button_gpio
+ff #mem_mouse_logo_led_gpio
+ff #mem_mouse_1io2led_multi_24gled
+ff #mem_mouse_1io2led_multi_bt1led
+ff #mem_mouse_1io2led_multi_bt2led
+ff #mem_mouse_low_voltage_alarm_gpio
+ff #mem_mouse_dpi_gpio
+
+#mouse sensor angle
+#0x00 MOUSE_6CLK_ANGLE
+#0X01 MOUSE_9CLK_ANGLE
+#0X02 MOUSE_12CLK_ANGLE
+#0X03 MOUSE_3CLK_ANGLE
+
+
+#1io2led multi start
+#time parm
+mem_mouse_le_reconn_blink_limit:00		#00:disable 	01:enable
+mem_mouse_multi_led_powon_timer_init:14	#2s
+mem_mouse_multi_24gled_blink_timer_init:05			#24gled blink time		500ms on,500ms off
+mem_mouse_multi_le_discovery_blink_timer_init:02		#le discovery blink time	500ms on,500ms off
+mem_mouse_multi_le_reconn_blink_timer_init:05			#le reconn blink time		500ms on,500ms off
+mem_mouse_low_led_blink_timer:14				#low blink time			1000ms on,1000ms off
+mem_mouse_dpi_led_blink_timer_init:02			#dpi blink time			200ms on,200ms off
+#blink count=count/2
+mem_mouse_multi_24gled_blink_count_init:02		#24g count
+mem_mouse_multi_le_reconn_blink_count_init:06	#le reconn count
+mem_mouse_multi_lowled_blink_count_init:0a		#low count=count
+mem_mouse_dpi_led_delay_count_init:0a		#1s
+#1io2led multi end
+
+#time parm
+mem_mouse_logo_led_on_time_init:58 02	#1min
+mem_device_24g_pair_timeout_init:2c 01  #30s	    24g reconn timer&pair timer
+mem_device_24g_reconn_timeout_init:0a #1s
+mem_device_24g_power_on_fast_conn_timer:05 00	#500ms
+mem_device_direct_timeout:32  #05s
+mem_device_discovery_timeout:b0 04	#2min
+mem_device_fast_direct_timeout:0a #1s
+mem_device_no_data_timeout:70 17   #10mins
+
+#device parm
+mem_device_option:08
+mem_device_number:01   #01--only 2.4g   02--2.4g+ble
+
+mem_lpm_mode:01
+mem_lpm_mult:20
+mem_lpm_mult_init:20
+
+mem_device_set_analog_bit_set:00 00 00
+
+mem_device_flag:
+00		#00--24g 01--bt
+34
+ff ff ff ff ff ff			#eeprom need
+mem_device2_type:
+34
+ff ff ff ff ff ff			#eeprom need
+mem_device3_type:
+34
+ff ff ff ff ff ff			#eeprom need
+
+mem_customer_key_press_init:
+#05 00 01 00 00 00 00 00 00 00#AC Home
+#05 00 00 02 00 00 00 00 00 00#Volume Down
+#05 00 00 04 00 00 00 00 00 00#Volume Up
+#00 0a 00 72 00 00 00 00 00#copilot=win+shift+f23
+#00 05 00 04 00 00 00 00 00#CTRL+ALT+A
+#02 01 00 00 00 00 00 00 00 #POWERDOWN
+00 08 00 07 00 00 00 00 00#One-click desktop
+#03 ea 00 00 00 00 00 00 00 #VOL DOWN
+
+#adc
+mem_device_vdd_full_vol:dc 05		#1.5V
+84 03#mem_device_vdd_empty_vol  :0.9V
+e8 03#mem_device_vdd_low_vol   :1.0V
+#mem_device_vdd_full_vol:e4 0c		#3.3V
+#b8 0b#mem_device_vdd_empty_vol  :3.0V
+#80 0c#mem_device_vdd_low_vol   :3.2V
+
+mem_adc_channel_gpio:04
+#04
+#02
+#01
+#03
+#00
+#05
+#06
+#07
+
+#bit0:mouse_key_l    bit1:mouse_key_r  bit2:mouse_key_m
+mem_mouse_commbination_key_24g:03
+mem_mouse_commbination_key_bt:07
+mem_mouse_commbination_key_dpi:ff
+mem_mouse_commbination_key_select_device:ff
+mem_mouse_commbination_dpi_timer:1e	#3s
+mem_mouse_commbination_select_device_timer:1e	#3s
+
+#ui
+mem_ui_button_timeout:1e
+
+#2.4g
+mem_24g_lap: 11 11 31 41 51 61
+mem_24g_fast_conn_addr:0f 0f 0f 0f
+mem_24g_ch_map_update:00   #00--disable   01--enable
+mem_24g_long_sleep_set_level:02    #00--30ms   01--50ms  02--80ms  03--100ms
+mem_24g_rx_window:c0 12     #400us  ## e0 2e#1ms #transmitter long range min:520us
+
+mem_mouse_24g_fast_hop_count_2ms:09	#report 500hz
+mem_mouse_24g_tsniff_2ms:c0 5d 00 00
+
+mem_mouse_24g_short_sleep_set_4ms:ee 4d 00	#1662us
+mem_mouse_24g_long_sleep_set_4ms:80 bb 00
+mem_mouse_24g_tsniff_4ms:80 bb 00 00
+
+mem_mouse_24g_short_sleep_set_8ms:70 11 01	#SB:70 11 01	SA:60 ea 00
+mem_mouse_24g_long_sleep_set_8ms:00 77 01
+mem_mouse_24g_tsniff_8ms:00 77 01 00
+
+mem_device_24g_pair_tx_power:94 #-20dBm
+mem_24g_enter_hibernate:00 48 60
+mem_24g_long_sleep_param_update_timer_init:2c 01	#30s
+mem_24g_transmit_by_interrupt_exit_count_init:50 00
+mem_device_24g_search_dongle_time_init:64 00	#10s
+mem_store_information_delay_timer_init:05
+
+mem_mouse_long_mult_count:01
+
+#ble
+mem_le_lap:71 81 91 a1 b1 c1
+mem_le_adv_channel_map:07
+mem_local_rx_max_octets:fb 00 48 08 fb 00 48 08  # 1b
+mem_le_battery_level_updata_timer_init:96 00
+
+mem_le_keyboard_handle:15 00
+mem_le_notify_handle:19 00
+mem_le_multimedia_handle:1d 00
+mem_le_systemctrl_handle:21 00
+mem_le_pairing_handle:2d 00
+mem_le_battery_level_handle:30 00
+
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#flag
+02 01 05 
+#uuid
+03 03 12 18 
+#appearance
+03 19 c2 03
+
+mem_le_adv_swift_pair:
+#microsoft swift pair
+06 ff 06 00 03 00 80	
+#name
+'\09BT5.2 Mouse
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+#name
+'\09BT5.2 Mouse
+
+
+mem_le_name_len:
+'BT5.2 Mouse
+
+mem_le_name_patch_len:	#max 18bytes
+'BT5.2 Mouse
+
+mem_le_interval_min:
+07 00 #min interval
+07 00 #max interval
+20 00 #latency
+2c 01 #timeout
+
+#mem_le_adv_interval:01 00
+
+mem_le_adv_ind:03 12 18
+mem_le_adv_direct_ind:ff 00 00
+
+mem_flash_base:00 50 00
+mem_eeprom_base:80 1f
+mem_eeprom_block_size:80
+
+#otp write info offset
+mem_otp_offset_device_flag:96 06
+mem_otp_offset_device_flag_end:bf 06
+
+mem_otp_offset_24g_addr:c0 06
+mem_otp_offset_24g_addr_end:f9 06
+
+mem_otp_offset_le_addr1:fa 06
+mem_otp_offset_le_addr1_end:53 07
+
+mem_otp_offset_le_locall_addr1:54 07
+mem_otp_offset_le_locall_addr1_end:8f 07
+
+mem_otp_offset_le_addr2:90 07
+mem_otp_offset_le_addr2_end:e9 07
+
+mem_otp_offset_le_locall_addr2:ea 07
+mem_otp_offset_le_locall_addr2_end:43 08
+
+mem_otp_offset_dpi:44 08
+mem_otp_offset_dpi_end:73 08
+
+mem_otp_offset_le_addr_increase_count:74 08
+mem_otp_offset_le_addr_increase_count_end:d8 08
+
+mem_otp_offset_app_initflag:aa 08
+
+#usb
+mem_usb_offline_check_gpio:ff
+
+#rf
+mem_tx_power:00	#00--0db 01--3db  02--5db  03--f3db  04--f5db
+mem_rssi_buff_index:07
+mem_rssi_signal_buf_ptr:mem_mouse_rssi_signal_buf
+mem_rssi_dis_min_24g_init:85
+mem_rssi_dis_max_24g_init:90
+mem_rssi_dis_min_ble_init:75
+mem_rssi_dis_max_ble_init:80
+mem_rssi_hex_received_max_value_init:63
+mem_power_ctrl_pac_succ_cnt_init:7d
+
+
Index: costumer/Bore/keyboard_ck801_only_24g/sched/mouse_ble_att_list.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/mouse_ble_att_list.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/mouse_ble_att_list.dat	(working copy)
@@ -0,0 +1,682 @@
+01
+00
+02
+00
+28
+02
+00
+18
+02
+00
+02
+03
+28
+01
+0a
+03
+00
+02
+00
+2a
+14
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+04
+00
+02
+03
+28
+01
+02
+05
+00
+02
+01
+2a
+02
+c2
+03
+06
+00
+02
+03
+28
+01
+02
+07
+00
+02
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+08
+00
+02
+00
+28
+02
+01
+18
+09
+00
+02
+03
+28
+01
+20
+0a
+00
+02
+05
+2a
+00
+0b
+00
+02
+02
+29
+02
+00
+00
+0c
+00
+02
+00
+28
+02
+0a
+18
+0d
+00
+02
+03
+28
+01
+02
+0e
+00
+02
+29
+2a
+06
+59
+69
+43
+68
+69
+70
+0f
+00
+02
+03
+28
+01
+02
+10
+00
+02
+50
+2a
+07
+02
+35
+12
+22
+aa
+01
+00
+11
+00
+02
+00
+28
+02
+12
+18
+12
+00
+02
+03
+28
+01
+06
+13
+00
+02
+4e
+2a
+01
+01
+14
+00
+02
+03
+28
+01
+12
+15
+00
+02
+4d
+2a
+08
+00
+00
+00
+00
+00
+00
+00
+00
+16
+00
+02
+02
+29
+02
+00
+00
+17
+00
+02
+08
+29
+02
+02
+01
+18
+00
+02
+03
+28
+01
+1a
+19
+00
+02
+4d
+2a
+07
+00
+00
+00
+00
+00
+00
+00
+1a
+00
+02
+02
+29
+02
+00
+00
+1b
+00
+02
+08
+29
+02
+01
+01
+1c
+00
+02
+03
+28
+01
+12
+1d
+00
+02
+4d
+2a
+02
+00
+00
+1e
+00
+02
+02
+29
+02
+00
+00
+1f
+00
+02
+08
+29
+02
+03
+01
+20
+00
+02
+03
+28
+01
+12
+21
+00
+02
+4d
+2a
+02
+00
+00
+22
+00
+02
+02
+29
+02
+00
+00
+23
+00
+02
+08
+29
+02
+04
+01
+24
+00
+02
+03
+28
+01
+0e
+25
+00
+02
+4d
+2a
+02
+00
+00
+26
+00
+02
+08
+29
+02
+02
+02
+27
+00
+02
+03
+28
+01
+02
+28
+00
+02
+4b
+2a
+f5
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+c0
+05
+01
+09
+06
+a1
+01
+85
+02
+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
+26
+ff
+00
+05
+07
+19
+00
+2a
+ff
+00
+81
+00
+c0
+05
+01
+09
+02
+a1
+01
+85
+01
+09
+01
+a1
+00
+05
+09
+19
+01
+29
+08
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+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
+04
+15
+00
+25
+01
+75
+01
+95
+03
+19
+81
+29
+83
+81
+02
+95
+01
+75
+05
+81
+03
+c0
+29
+00
+02
+03
+28
+01
+1a
+2a
+00
+02
+33
+2a
+08
+00
+00
+00
+00
+00
+00
+00
+00
+2b
+00
+02
+02
+29
+02
+01
+00
+2c
+00
+02
+03
+28
+01
+02
+2d
+00
+02
+4a
+2a
+04
+01
+01
+00
+03
+2e
+00
+02
+00
+28
+02
+0f
+18
+2f
+00
+02
+03
+28
+01
+12
+30
+00
+02
+19
+2a
+01
+64
+31
+00
+02
+02
+29
+02
+00
+00
+32
+00
+02
+03
+28
+01
+04
+33
+00
+02
+4c
+2a
+00
+00
+00
\ No newline at end of file
Index: costumer/Bore/keyboard_ck801_only_24g/sched/mouse_sensor.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/mouse_sensor.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/mouse_sensor.dat	(working copy)
@@ -0,0 +1,166 @@
+
+mem_mouse_dpi_seting:
+03##mem_320x_dpi_0  	1200/1300
+04##mem_320x_dpi_1  	1600
+01##mem_320x_dpi_2   800
+02##mem_320x_dpi_3  	1000
+
+20##mem_3212_dpi_0	1200
+2a##mem_3212_dpi_1	1600
+3f ##mem_3212_dpi_2	2400
+15##mem_3212_dpi_3   800
+
+14##mem_ka8g2_dpi_0	1200
+1b##mem_ka8g2_dpi_1	1600
+11##mem_ka8g2_dpi_2	1000
+0e##mem_ka8g2_dpi_3	800
+
+mem_sensor_s201_dpi:
+8a  ##1200
+8b  ##1600
+83  ##2400
+84  ##3200
+88  ##800
+
+mem_sensor_3212_init:
+09 5a
+26 34
+19 04
+09 00
+ff ff
+
+#################sensor parm init#################
+
+
+mem_sensor_3204_init:
+09 5a
+0d f0
+1d e3
+7d d2
+ff ff
+
+mem_sensor_3205_init:
+09 5a
+0d 10
+1d ed
+7d 80
+ff ff
+
+mem_sensor_32xx_init:
+1b 35
+28 b4
+29 46
+2a 96
+2b 8c
+2c 6e
+2d 64
+38 5f
+39 0f
+3a 32
+3b 47
+42 10
+ff ff
+
+mem_sensor_32xx_init_1:
+54 2e
+55 f2
+61 f4
+63 70
+75 52 
+76 41
+77 ed
+78 23
+79 46
+7a e5
+7c 48
+7e 77
+7f 01
+0b 00
+7f 00
+09 00
+ff ff
+
+mem_sensor_8650_init:
+09 5a
+ff 27
+ab 40
+be d1
+a0 41
+a1 12
+a7 ff
+b6 00
+b5 c8
+a5 af
+ff 00
+09 00
+ff ff
+
+mem_sensor_p6520_init:
+05 b9
+09 5a
+0b 72
+0c 52
+09 00
+ff ff
+
+mem_sensor_ka8ul_init:
+09 5a
+0d 10
+0e c5
+5b 9a
+10 38
+11 42
+28 28
+41 23
+49 39
+4a b0
+4b a0
+4c 90
+4d 70
+09 00
+ff ff
+
+mem_sensor_8009_init:
+09 5a
+06 02
+09 69
+0d 48
+0e 9f
+0f ba
+09 00
+ff ff
+
+mem_sensor_ka8g2_init:
+09 a5
+26 34
+19 04
+60 07
+69 04
+7d 20
+7e 00
+09 00
+ff ff
+
+mem_sensor_ka5857_init:
+09 a5
+46 34
+6a c0
+69 24
+09 00
+ff ff
+
+mem_sensor_poweron_init:
+09 5a
+0b f3
+09 00
+ff ff
+
+mem_ka8g2_sensor_poweron_init:
+09 a5
+0b f3
+09 00
+ff ff
+
+
+
+
Index: costumer/Bore/keyboard_ck801_only_24g/sched/otp_set.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/otp_set.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/otp_set.dat	(working copy)
@@ -0,0 +1,11 @@
+0b
+00
+02
+00
+00
+00
+00
+00
+00
+00
+00
Index: costumer/Bore/keyboard_ck801_only_24g/sched/rec.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/rec.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/rec.dat	(working copy)
@@ -0,0 +1,501 @@
+
+mem_device_option:0b
+mem_ui_button_gpio:ff
+
+mem_tx_power:05
+
+###########################LED INITIAL##########################
+mem_ui_led_struct_num:01
+mem_ui_led_struct_ptr:mem_rec_led_style
+
+mem_rec_led_style:
+00		#type:stop blink 00---blink stop   01---blink start   02---lighting  03---darking  04---blink lighting  05---blink darking
+00		#blink count:no blink
+07		#led gpio number
+a0 01	#led blink light time, uint 0.625ms
+a0 01	#led blink dark time
+
+mem_rec_le_pair_led_style:
+01		#type:blink start
+ff		#blink count:no blink
+07		#led gpio number
+80 02	#led blink light time 400ms
+80 02	#led blink dark time		
+
+mem_rec_le_reconn_led_style:
+01		#type:blink start
+ff		#blink count:no blink
+07		#led gpio number
+60 04	#led blink light time 700ms
+60 04	#led blink dark time
+
+mem_rec_adc_low_led_style:
+01		#type:blink start
+03		#blink count:no blink
+07		#led gpio number
+40 01	#led blink light time 200ms
+40 01	#led blink dark time	
+
+mem_rec_led2_style:
+01		#type:blink start
+ff		#blink count:no blink
+ff		#led gpio number
+60 04	#led blink light time 700ms
+60 04	#led blink dark time
+
+
+###########################QUEUE INIT############################
+mem_queue_ptr:mem_rec_queue_each_size
+mem_rec_queue_each_size:01 20
+
+
+###########################TSCAN INITIAL##########################
+mem_rec_tscan_gpio_nums:06
+mem_rec_tscan_row_nums:05
+mem_rec_tscan_col_nums:05
+mem_rec_tscan_row_gpio:0d 0e 0c 0a 08
+mem_rec_tscan_col_gpio:0b 0d 0e 0c 0a 08
+
+mem_rec_gpio_wakeup_source:07	#tri-angle keyscan matrix check
+
+mem_rec_gnd_key_offset:0f
+
+mem_rec_key_map:01 02 04 07 0b 03 05 08 0c 06 09 0d 0a 0e 0f 
+
+mem_rec_tscan_key_nums_list:
+01 01 #k01
+02 01 #k02
+04 01 #k04
+08 01 #k07
+10 01 #k11
+01 02 #k03
+02 02 #k05
+04 02 #k08
+08 02 #k12
+01 04 #k06
+02 04 #k09
+04 04 #k13
+01 08 #k10
+02 08 #k14
+01 10 #k15
+00 00 #end
+
+mem_rec_tscan_gndkey_nums_list:
+01
+02
+04
+08
+10
+20
+40
+00
+
+mem_rec_combin_key_timeout:14		#2s
+mem_rec_tscan_combin_key_num_bit:42 00 00 00 00 00 00 00	#key2+key5 0x0042, key8+key13 0x0880
+
+
+###########################NEC INITIAL##########################
+mem_rec_nec_send_gpio:03
+
+
+###########################OTA INITIAL##########################
+mem_rec_code_a_flash_addr:00 60 00
+mem_rec_code_b_flash_addr:00 f0 00
+
+mem_rec_ota_notify_handle:48 00
+mem_rec_ota_queue_size:00 05 
+
+mem_rec_ota_le_conn_update_param:
+06 00
+06 00
+2b 01
+b0 04
+
+
+###########################ADPCM INITIAL##########################
+mem_rec_ad_indexTable1:ff ff ff ff 02 04 06 08 ff ff ff ff 02 04 06 08
+
+mem_rec_ad_stepsizeTable1:
+07 00 00 00
+08 00 00 00
+09 00 00 00
+0a 00 00 00
+0b 00 00 00
+0c 00 00 00
+0d 00 00 00
+0e 00 00 00
+10 00 00 00
+11 00 00 00
+13 00 00 00
+15 00 00 00
+17 00 00 00
+19 00 00 00
+1c 00 00 00
+1f 00 00 00
+22 00 00 00
+25 00 00 00
+29 00 00 00
+2d 00 00 00
+32 00 00 00
+37 00 00 00
+3c 00 00 00
+42 00 00 00
+49 00 00 00
+50 00 00 00
+58 00 00 00
+61 00 00 00
+6b 00 00 00
+76 00 00 00
+82 00 00 00
+8f 00 00 00
+9d 00 00 00
+ad 00 00 00
+be 00 00 00
+d1 00 00 00
+e6 00 00 00
+fd 00 00 00
+17 01 00 00
+33 01 00 00
+51 01 00 00
+73 01 00 00
+98 01 00 00
+c1 01 00 00
+ee 01 00 00
+20 02 00 00
+56 02 00 00
+92 02 00 00
+d4 02 00 00
+1c 03 00 00
+6c 03 00 00
+c3 03 00 00
+24 04 00 00
+8e 04 00 00
+02 05 00 00
+83 05 00 00
+10 06 00 00
+ab 06 00 00
+56 07 00 00
+12 08 00 00
+e0 08 00 00
+c3 09 00 00
+bd 0a 00 00
+d0 0b 00 00
+ff 0c 00 00
+4c 0e 00 00
+ba 0f 00 00
+4c 11 00 00
+07 13 00 00
+ee 14 00 00
+06 17 00 00
+54 19 00 00
+dc 1b 00 00
+a5 1e 00 00
+b6 21 00 00
+15 25 00 00
+ca 28 00 00
+df 2c 00 00
+5b 31 00 00
+4b 36 00 00
+b9 3b 00 00
+b2 41 00 00
+44 48 00 00
+7e 4f 00 00
+71 57 00 00
+2f 60 00 00
+ce 69 00 00
+62 74 00 00
+ff 7f 00 00
+
+
+
+###########################GATT INITIAL##########################
+mem_rec_voice_notify_apk_handle:42 00
+mem_rec_voice_notify_box_handle:2a 00
+mem_rec_control_notify_apk_handle:3f 00
+mem_rec_control_notify_box_handle:26 00
+
+
+mem_ui_le_uuid_table:mem_rec_le_att_list
+
+mem_rec_le_att_list:
+#Primary Service Gap	
+01 00 02 00 28 02 00 18 
+
+#Device name
+02 00 02 03 28 01 02
+03 00 02 00 2a 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Appearance
+04 00 02 03 28 01 02 
+05 00 02 01 2a 02 80 01 
+
+#Primary Service: Gatt Service
+06 00 02 00 28 02 01 18
+#Service Changed
+07 00 02 03 28 01 20
+08 00 02 05 2a 01 00 	
+#Client Characteristic Configuration
+09 00 02 02 29 02 00 00
+
+#Primary Service: Battery Service
+0a 00 02 00 28 02 0f 18
+0b 00 02 03 28 01 02
+0c 00 02 19 2a 01 64
+0d 00 02 02 29 02 00 00	
+
+#Primary Service: Device Information
+0e 00 02 00 28 02 0a 18
+#Model Number
+0f 00 02 03 28 01 02
+10 00 02 24 2a 05 4d 49 20 52 43
+#Manufacture name
+11 00 02 03 28 01 02
+12 00 02 29 2a 15 43 79 70 72 65 73 73 20 53 65 6D 69 63 6F 6E 64 75 63 74 6F 72
+#Pnp id
+13 00 02 03 28 01 02 
+14 00 02 50 2a 07 02 54 2b 00 16 00 00
+
+#Primary service: HID
+15 00 02 00 28 02 12 18
+#Characteristic:Hid information
+16 00 02 03 28 01 02
+17 00 02 4a 2a 04 01 01 00 02
+#Characteristic:Report map
+18 00 02 03 28 01 02
+19 00 02 4b 2a c5
+
+#65
+05 01    #Usage Page Generic Desktop) 
+09 06    #Usage (Keyboard) 
+A1 01    #Collection (Application) 
+85 0b    #report ID (HIDAPP_KEYBOARD_REPORT_ID) 
+75 01    #Report Size (1) 
+95 08    #Report Count (8) 
+05 07    #Usage Page (Key Codes) 
+19 e0    #Usage Minimum (224) 
+29 e7    #Usage Maximum (231) 
+15 00    #Logical Minimum (0) 
+25 01    #Logical Maximum (1) 
+81 02    #Input (Data, Variable, Absolute) 
+95 01    #Report Count (1) 
+75 08    #Report Size (8) 
+81 01    #Input (Constant) reserved byte(1) 
+95 05    #Report Count (5) 
+75 01    #Report Size (1) 
+05 08    #Usage Page (Page#for LEDs) 
+19 01    #Usage Minimum (1) 
+29 05    #Usage Maximum (5) 
+91 02    #Output (Data, Variable, Absolute), Led report 
+95 01    #Report Count (1) 
+75 03    #Report Size (3) 
+91 01    #Output (Constant), Led report padding 
+95 06    #Report Count (6) 
+75 08    #Report Size (8) 
+15 00    #Logical Minimum (0) 
+25 eb    #Logical Maximum (101) 
+05 07    #Usage Page (Key codes) 
+19 00    #Usage Minimum (0) 
+29 eb    #Usage Maximum (101) 
+81 00    #Input (Data, Array) Key array(6 bytes) 
+C0   	 #End Collection (Application) 
+
+
+#Consumer Usepage #46
+05 0c    #Usage Page (Consumer Devices) 
+09 01    #Usage (Consumer Control) 
+a1 01    #Collection (Application) 
+85 01    #HIDAPP_REMOTE_REPORT_ID,    #report ID (01) 
+19 00    #USAGE_MINIMUM (0) 
+2a 9c 02 #USAGE_MINIMUM (29c) 
+15 00    #Logical Minimum (0) 
+26 9c 02 #Logical Maximum (29c) 
+95 01    #Report Count (1) 
+75 10    #Report Size (16) 
+81 00    #Input (Data, array, Absolute) 
+09 02    #Usage (Numeric Key Pad ) 
+a1 02    #Collection (Application) 
+05 09    #Usage Page (button) 
+19 01    #Usage Minimum (1) 
+29 0a    #Usage Maximum (10) 
+15 01    #Logical Minimum (1) 
+25 0a    #Logical Maximum (10) 
+95 01    #Report Count (1) 
+75 08    #Report Size (8) 
+81 40    #Input (Data, Variable, Relative) 
+c0   	 #End Collection 
+c0    	 #End Collection 
+
+#optional mouse data #54
+05 01    #Usage Page (Generic Desktop) 
+09 02    #USAGE (Mouse) 
+a1 01    #COLLECTION (Application) 
+09 01    #USAGE (Pointer) 
+a1 00    #COLLECTION (Physical) 
+85 03    #HIDAPP_MOUSE_REPORT_ID,    #report ID (HIDAPP_MOUSE_REPORT_ID) 
+05 01    #USAGE_PAGE (Generic Desktop) 
+09 30    #USAGE (X) 
+09 31    #USAGE (Y) 
+09 38    #USAGE (Wheel)
+15 80    #LOGICAL_MINIMUM (-127) 
+25 7f    #LOGICAL_MAXIMUM (127) 
+75 08    #REPORT_SIZE (8) 
+95 03    #REPORT_COUNT (3) 
+81 06    #INPUT (Data, Variable, Relative) 
+05 09    #USAGE_PAGE (Button) 
+19 01    #USAGE_MINIMUM (Button 1) 
+29 05    #USAGE_MAXIMUM (Button 5) 
+15 00    #LOGICAL_MINIMUM (0) 
+25 01    #LOGICAL_MAXIMUM (1) 
+95 05    #REPORT_COUNT (5) 
+75 01    #REPORT_SIZE (1) 
+81 02    #INPUT () 
+95 01    #REPORT_COUNT (1) 
+75 03    #REPORT_SIZE (3) 
+81 03    #INPUT () 
+c0    	 #End Collection (Physical) 
+c0       #End Collection (Application) 
+
+#end mouse data	#32
+06 01 ff
+09 01    #Usage (Consumer Control) 
+a1 02    #COLLECTION () 
+85 08    #HIDAPP_VOICE_REPORT_ID,    #report ID (HIDAPP_KEYBOARD_REPORT_ID) 
+09 14
+75 08    #Report Size (8) 
+95 14    #Report Count (20) 
+15 80    #Logical Minimum (80) 
+25 7f    #Logical Minimum (7f) 
+81 22    #Input () 
+85 04    #report ID () 
+09 04    #USAGE () 
+75 08    #Report Size (8) 
+95 01    #Report Count (1) 
+91 02    #Output 
+c0
+
+#External Report Reference
+1a 00 02 07 29 02 19 2a
+#Characteristic:control point
+1b 00 02 03 28 01 04
+1c 00 02 4c 2a 01 00
+#Characteristic:boot keyboard Input report
+1d 00 02 03 28 01 12
+1e 00 02 22 2a 08 00 00 00 00 00 00 00 00
+1f 00 02 02 29 01 13
+#Characteristic:boot keyboard output report
+20 00 02 03 28 01 0e
+21 00 02 32 2a 08 00 00 00 00 00 00 00 00
+#Characteristic:boot Mouse Input report
+22 00 02 03 28 01 12
+23 00 02 33 2a 08 00 00 00 00 00 00 00 00
+24 00 02 02 29 01 13
+
+#Characteristic: hid report
+25 00 02 03 28 01 12   
+26 00 02 4d 2a 08 00 00 00 00 00 00 00 00	
+27 00 02 02 29 01 13	
+28 00 02 08 29 02 01 01	#Report ID: 1	Report Type: Input
+
+#Characteristic: hid report
+29 00 02 03 28 01 12   
+2a 00 02 4d 2a 08 00 00 00 00 00 00 00 00	
+2b 00 02 02 29 01 13	
+2c 00 02 08 29 02 08 01	#Report ID: 8	Report Type: Input
+
+#Characteristic: hid report
+2d 00 02 03 28 01 12   
+2e 00 02 4d 2a 08 00 00 00 00 00 00 00 00	
+2f 00 02 02 29 01 13
+30 00 02 08 29 02 03 01	#Report ID: 3	Report Type: input
+
+#Characteristic: hid report
+31 00 02 03 28 01 12   
+32 00 02 4d 2a 08 00 00 00 00 00 00 00 00	
+33 00 02 02 29 01 13
+34 00 02 08 29 02 0b 01	#Report ID: 0b 	 Report Type: input
+
+#Characteristic: hid report
+35 00 02 03 28 01 0e   
+36 00 02 4d 2a 08 00 00 00 00 00 00 00 00	
+37 00 02 08 29 02 00 02	#Report ID:2     Report Type:output
+
+#Characteristic: hid report
+38 00 02 03 28 01 0a  
+39 00 02 4d 2a 08 00 00 00 00 00 00 00 00	
+3a 00 02 08 29 02 00 03   #Report ID:0    Report Type:feature	
+
+#Characteristic:Protocol mode
+3b 00 02 03 28 01 06
+3c 00 02 4e 2a 01 01
+
+#Primary service yichip transmit ------
+3d 00 02 00 28 02 f0 ff 
+#Characteristic tx--notify
+3e 00 02 03 28 01 16
+3f 00 02 f1 ff 01 00 #voice data start and end 
+#Client Characteristic Configuration
+40 00 02 02 29 02 00 00
+
+41 00 02 03 28 01 16
+42 00 02 f2 ff 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  #voice data
+#Client Characteristic Configuration
+43 00 02 02 29 02 00 00
+
+44 00 02 03 28 01 0a
+45 00 02 f3 ff 01 00 # voice test bit
+46 00 02 02 29 02 00 00
+
+#ota notify
+47 00 02 03 28 01 16
+48 00 02 fe ff 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
+49 00 02 02 29 02 01 00
+
+#ota write
+4a 00 02 03 28 01 04
+4b 00 02 ff ff 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Warning Attention,long 16 byte uuid must put at the last
+#Primary service: Wicentric,Inc
+4c 00 02 00 28 10 fb 34 9b 5f 80 00 00 80 00 10 00 00 f6 fe 00 00 
+#
+4d 00 02 03 28 01 18
+4e 00 10 65 78 61 63 74 4c 45 b0 d5 4e f2 2f 02 00 5f 00 01 18
+4f 00 02  02 29 01 00
+#
+50 00 02 03 28 01 14
+51 00 10 65 78 61 63 74 4c 45 b0 d5 4e f2 2f 03 00 5f 00 01 14
+52 00 02 02 29 01 00
+#
+53 00 02 03 28 01 14
+54 00 10 65 78 61 63 74 4c 45 b0 d5 4e f2 2f 04 00 5f 00 01 14
+55 00 02 02 29 01 00
+#
+56 00 02 03 28 01 18
+57 00 10 65 78 61 63 74 4c 45 b0 d5 4e f2 2f 05 00 5f 00 01 18
+58 00 02 02 29 01 00
+
+#Google atv voice
+#primary service
+59 00 02 00 28 10 64 b6 17 f6 01 af 7d bc 05 4f 21 5a 01 00 5e ab
+
+#google atv write characeristic
+5a 00 02 03 28 01 08
+5b 00 10 64 b6 17 f6 01 af 7d bc 05 4f 21 5a 02 00 5e ab 01 14
+
+#google atv read characeristic
+5c 00 02 03 28 01 12
+5d 00 10 64 b6 17 f6 01 af 7d bc 05 4f 21 5a 03 00 5e ab 01 14
+5e 00 02 02 29 02 00 00
+
+#google atv ctrl characeristic
+5f 00 02 03 28 01 12
+60 00 10 64 b6 17 f6 01 af 7d bc 05 4f 21 5a 04 00 5e ab 01 14
+61 00 02 02 29 02 00 00
+
+#End of Attribute list
+00 00
+
+
+
+
+
Index: costumer/Bore/keyboard_ck801_only_24g/sched/remote_car.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/remote_car.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/remote_car.dat	(working copy)
@@ -0,0 +1,53 @@
+
+mem_device_option:0d
+
+mem_tx_power: 0a
+#0x00 TX_POWER_0DB
+#0x03 TX_POWER_3DB
+#0x05 TX_POWER_5DB
+#0x07 TX_POWER_7DB
+#0x0a TX_POWER_10DB
+
+#0x83 TX_POWER_F3DB
+#0x85 TX_POWER_F5DB
+#0x8a TX_POWER_F10DB
+#0x94 TX_POWER_F20DB
+
+
+mem_24g_tx_phy:84
+#Bit rate
+#0x01:1M
+#0x02:2M
+#0x04:S2, 500K
+#0x84:S8, 125K
+
+mem_24g_rx_phy:84
+#Bit rate
+#0x01:1M
+#0x02:2M
+#0x04:S2, 500K
+#0x84:S8, 125K
+
+mem_24g_ch_map1:04 14 24 34
+mem_24g_ch:20
+#2402Mhz + mem_24g_ch
+
+mem_remote_full_control_remote_lap:ff ff ff ff
+mem_le_lap:0f 01 00 00 01 22
+
+mem_24g_addr:00 00 00 00
+
+mem_remote_car_key_conf0:
+#0
+0c
+#1
+8c
+#2
+85
+#3
+05
+mem_24g_tx_led_map:0d
+
+
+mem_remote_mult_key:92
+mem_key_public_gpio:12
Index: costumer/Bore/keyboard_ck801_only_24g/sched/rtrivr_uuid.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/rtrivr_uuid.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/rtrivr_uuid.dat	(working copy)
@@ -0,0 +1,75 @@
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_le_att_list:
+
+#Primary service GAP ------
+01 00 00 28 02 00 18
+
+#Device name
+02 00 03 28 01 0a
+03 00 00 2a 0c 41 73 74 20 4c 45 20 4d 6f 75 73 65
+
+#Appearance
+04 00 03 28 01 02
+05 00 01 2a 02 c2 03 #3c2=hid mouse
+
+#Peripheral Preferred Connection Parameters
+06 00 03 28 01 02
+07 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service GATT ------
+08 00 00 28 02 01 18
+
+#Service changed
+09 00 03 28 01 20
+0a 00 05 2a 00
+
+#Client Characteristic Configuration
+0b 00 02 29 02 00 00
+
+#Primary service TX power ------
+0c 00 00 28 02 04 18
+#Characteristic Tx power level
+0d 00 03 28 01 06
+0e 00 07 2a 01 00
+
+#Primary service Immediate alert ------
+0f 00 00 28 02 02 18
+#Characteristic Alert level
+10 00 03 28 01 04
+11 00 06 2a 01 00
+
+#Primary service UUID:f003 ------
+12 00 00 28 02 03 f0
+#Characteristic UUID:f803
+13 00 03 28 01 04
+14 00 03 f8 01 00
+
+
+#Primary service Link loss alert ------
+15 00 00 28 02 03 f0
+#Characteristic Alert level
+16 00 03 28 01 0a
+17 00 06 2a 01 00
+
+#Primary service UUID:f002 ------
+18 00 00 28 02 02 f0
+#Characteristic UUID:f802
+19 00 03 28 01 12
+1a 00 02 f8 01 28
+1b 00 02 29 02 00 00
+
+#Primary service Battery ------
+1c 00 00 28 02 0f 18
+#Characteristic Battery level
+1d 00 03 28 01 12
+1e 00 19 2a 01 38
+
+
+#End of Attribute list
+00 00
+
+mem_le_adv_data_len:1b
+mem_le_adv_data:0c 09 52 74 72 69 76 72 5f 52 36 32 31 03 19 40 02 02 01 05 02 0a 00 03 03 00 f0
+mem_le_scan_data_len:00
+mem_le_adv_param:00 08 00 08 00 01 00 00 00 00 00 00 00 07 00
+mem_le_adv_enable:01
Index: costumer/Bore/keyboard_ck801_only_24g/sched/sha256.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/sha256.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/sha256.dat	(working copy)
@@ -0,0 +1,256 @@
+98
+2f
+8a
+42
+91
+44
+37
+71
+cf
+fb
+c0
+b5
+a5
+db
+b5
+e9
+5b
+c2
+56
+39
+f1
+11
+f1
+59
+a4
+82
+3f
+92
+d5
+5e
+1c
+ab
+98
+aa
+07
+d8
+01
+5b
+83
+12
+be
+85
+31
+24
+c3
+7d
+0c
+55
+74
+5d
+be
+72
+fe
+b1
+de
+80
+a7
+06
+dc
+9b
+74
+f1
+9b
+c1
+c1
+69
+9b
+e4
+86
+47
+be
+ef
+c6
+9d
+c1
+0f
+cc
+a1
+0c
+24
+6f
+2c
+e9
+2d
+aa
+84
+74
+4a
+dc
+a9
+b0
+5c
+da
+88
+f9
+76
+52
+51
+3e
+98
+6d
+c6
+31
+a8
+c8
+27
+03
+b0
+c7
+7f
+59
+bf
+f3
+0b
+e0
+c6
+47
+91
+a7
+d5
+51
+63
+ca
+06
+67
+29
+29
+14
+85
+0a
+b7
+27
+38
+21
+1b
+2e
+fc
+6d
+2c
+4d
+13
+0d
+38
+53
+54
+73
+0a
+65
+bb
+0a
+6a
+76
+2e
+c9
+c2
+81
+85
+2c
+72
+92
+a1
+e8
+bf
+a2
+4b
+66
+1a
+a8
+70
+8b
+4b
+c2
+a3
+51
+6c
+c7
+19
+e8
+92
+d1
+24
+06
+99
+d6
+85
+35
+0e
+f4
+70
+a0
+6a
+10
+16
+c1
+a4
+19
+08
+6c
+37
+1e
+4c
+77
+48
+27
+b5
+bc
+b0
+34
+b3
+0c
+1c
+39
+4a
+aa
+d8
+4e
+4f
+ca
+9c
+5b
+f3
+6f
+2e
+68
+ee
+82
+8f
+74
+6f
+63
+a5
+78
+14
+78
+c8
+84
+08
+02
+c7
+8c
+fa
+ff
+be
+90
+eb
+6c
+50
+a4
+f7
+a3
+f9
+be
+f2
+78
+71
+c6
\ No newline at end of file
Index: costumer/Bore/keyboard_ck801_only_24g/sched/shutter.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/shutter.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/shutter.dat	(working copy)
@@ -0,0 +1,16 @@
+mem_device_option:09
+mem_ui_button_gpio:ff
+
+mem_le_lap:20 31 20 98 07 2a
+mem_le_name_len:
+'AB Shutter3
+
+mem_shutter_key_conf0_temp:07 0b 8c 00 ff
+
+mem_shutter_soft_switch_first_power_on:00
+
+mem_tx_power:06
+
+mem_shutter_dy_conf:00
+
+
Index: costumer/Bore/keyboard_ck801_only_24g/sched/shutter_dy.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/shutter_dy.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/shutter_dy.dat	(working copy)
@@ -0,0 +1,521 @@
+#device option
+mem_device_option:06
+#power on config
+mem_ui_button_gpio:ff
+
+mem_le_lap:61 21 20 98 07 2a
+mem_le_name_len:
+'BLE-M3
+
+mem_tx_power:06
+
+//save otp addr
+mem_shutter_efuse_start_offset: b0 1f
+mem_shutter_efuse_end_offset: 70 19
+
+mem_shutter_le_pairing_handle:2b 00
+
+#默认相机圈
+#mem_initial_move_conf:aa 00 78 00 69 00 38 00
+#左下角
+#mem_initial_move_conf:0a 00 1e 00 07 00 06 00
+#安卓中间，IOS左下角
+mem_initial_move_conf:43 08 4a 0e 07 00 06 00
+
+mem_shutter_dy_conf:01
+#soft switch first power on
+mem_shutter_soft_switch_first_power_on:00
+
+#led config
+mem_shutter_led_on_light_dark_led_conf:
+00		#type:stop blink
+00		#blink count:no blink
+8c		#led gpio number:GPIO01
+46 00	#led blink light time
+96 00	#led blink dark time
+mem_shutter_led_off_light_dark_led_conf:
+01		#type:start blink
+03		#blink count:no blink
+8c		#led gpio number:GPIO01
+46 00	#led blink light time
+96 00	#led blink dark time
+
+
+mem_shutter_reconn_blink_on_time_conf:
+20 01
+20 03
+mem_shutter_discovery_blink_on_time_conf:
+20 01
+20 03
+
+#hard_soft_switch config
+mem_shutter_hard_soft_switch_case_temp:00
+mem_shutter_soft_switch_button_gpio_temp:ff
+
+#100ms timer
+mem_shutter_ble_discovery_time_conf:
+b8 0b #discovery_timeout
+70 17 #connect_timeout
+b8 0b #sleep_timeout
+b8 0b #sleep_timer
+
+
+#key config
+mem_shutter_key_num_conf:06
+mem_shutter_dy_key_conf:
+#test 6key
+# 07
+# 0b
+# 13
+# 14
+# 15
+# 16
+# 0c
+
+# jxy-181
+07	#right
+12 	#like
+13 	#down
+06 	#photo
+08 	#up
+14 	#left
+
+mem_combine_key0:
+#6key
+28 00 #left 2
+09 00 #right 2
+18 00 #up 2
+0c 00 #down 2
+
+#6key -key mirror
+#09 00 #left 2
+#28 00 #right 2
+#0c 00 #up 2
+#18 00 #down 2
+
+#7key
+# 60 00 #left 2
+# 41 00 #right 2
+# 50 00 #up 2
+# 44 00 #down 2
+# 00 00
+
+#7key -key mirror
+#41 00 #left 2
+#60 00 #right 2
+#44 00 #up 2
+#50 00 #down 2
+#00 00
+
+
+mem_combine_key_release_value:
+#6key
+08 00
+#7key
+# 40 00
+
+
+mem_shutter_iphone_up_mid:
+1e 1e 1f 20 28 28 00
+mem_shutter_iphone_like_mid:
+1e 1e 1f 20 28 28 00
+mem_shutter_iphone_move_mid:
+1e 1e 1f 20 28 28 00
+
+
+mem_key0_press_i:  #right
+00
+mem_key0_release_new_i:
+27 24 24 24 28 23 23 23
+mem_key0_long_press_i:
+04 06 00
+
+mem_key1_press_i:#like
+00
+mem_key1_release_new_i:
+27 28 00
+
+mem_shutter_link_data_i:
+27 28 27 28 00
+
+mem_key2_press_i:#down
+00
+mem_key2_release_new_i:
+27 26 26 26 28 25 25 25
+
+#toggle between vol-inc and vol-dec
+mem_key3_press_i:#photo
+00
+mem_key3_release_new_i:#volume increment
+#7key
+# 01 06 00
+#6key
+27 01 06 28 00
+mem_key3_release_new_i_t:#volume decrement
+#7key
+# 02 06 00
+#6key
+27 02 06 28 00
+
+mem_key4_press_i:#up
+00
+mem_key4_release_new_i:
+27 25 25 25 28 26 26 26
+
+mem_key5_press_i:#left
+00
+mem_key5_release_new_i:
+27 23 23 23 28 24 24 24
+mem_key5_long_press_i: #lock
+03 06 00
+
+mem_key6_release_new_i:#move
+27 28 00 00
+mem_key6_release_new:#move
+00
+
+mem_dy_key0_press:  #right
+00
+mem_key0_release_new:
+13 14 15 16 17 18 19 1a 1b 00
+mem_key0_long_press:
+05 06 00
+
+mem_dy_key1_press:#like
+00
+mem_key1_release_new:
+0b 11 00
+
+mem_shutter_link_data:#like key loop
+0b 11 00 00 0b 11 00
+
+mem_dy_key2_press: #down
+00
+mem_key2_release_new:
+0f 0e 0d 0c 0b 0a 09 08 07 00
+mem_key2_long_press:#volume decrement
+02 06 00
+mem_key2_long_release:
+1c 1d 00
+
+#toggle between vol-inc and vol-dec
+mem_dy_key3_press:#photo
+00
+mem_key3_release_new:#volume increment
+1c 02 06 1d 00 #6key
+# 01 06 #7key
+mem_key3_release_new_t:#volume decrement
+1c 01 06 1d 00 #6key
+#02 06 #7key
+
+
+mem_dy_key4_press:#up
+00
+mem_key4_release_new:
+08 09 0a 0b 0c 0d 0e 0f 10 00
+mem_key4_long_press:#volume increment
+01 06 00
+mem_key4_long_release:
+00
+
+
+mem_dy_key5_press:#left
+00
+mem_key5_release_new:
+1a 19 18 17 16 15 14 13 12 00
+mem_key5_long_press: #lock
+03 06 00
+
+mem_combine_key0_press:
+01
+mem_combine_key1_press:
+02
+mem_combine_key2_press:
+03
+mem_combine_key3_press:
+04
+mem_combine_key_release:
+00
+
+mem_move_mode_set:00 #00 combine key, 01 single key when another key has already triggered
+mem_move_mode_key_index:03 #move key index,SHUTTER_MOVE_KEY_NUM,SHUTTER_PHOTO_KEY_NUM
+mem_move_mode_trigger_enable:00
+
+mem_shutter_long_key_released_flag:01
+
+################ble kb val list#######################
+mem_shutter_mousekey_value_list:
+#Media key
+02 13 00 01 00 00 00 00 00 00 #1 volume increment
+02 13 00 02 00 00 00 00 00 00 #2 volume decrement
+02 13 00 04 00 00 00 00 00 00 #3 lock
+02 13 00 08 00 00 00 00 00 00 #4 ios home
+02 13 00 10 00 00 00 00 00 00 #5 android home
+02 13 00 00 00 00 00 00 00 00 #6 release
+#Android Key
+#up down
+06 23 00 02 01 00 00 00 00 00 #7
+06 23 00 03 01 f4 06 20 02 00 #8
+06 23 00 03 01 f4 06 d4 02 00 #9
+06 23 00 03 01 f4 06 28 03 00 #a
+06 23 00 03 01 f4 06 3c 04 00 #b like press
+06 23 00 03 01 f4 06 20 04 00 #c
+06 23 00 03 01 f4 06 74 05 00 #d
+06 23 00 03 01 f4 06 28 06 00 #e
+06 23 00 03 01 f4 06 dc 06 00 #f
+06 23 00 02 01 f4 06 70 07 00 #10
+#like release
+06 23 00 02 01 f4 06 3c 04 00 #11
+#right left
+06 23 00 02 01 f0 08 0f 09 00#12d   dd
+06 23 00 03 01 a3 07 0f 09 00#13
+06 23 00 03 01 2c 06 0f 09 00#14
+06 23 00 03 01 2c 05 0f 09 00#15
+06 23 00 03 01 52 04 0f 09 00#16
+06 23 00 03 01 e2 03 0f 09 00#17
+06 23 00 03 01 4f 03 0f 09 00#18
+06 23 00 03 01 4f 02 0f 09 00#19
+06 23 00 03 01 ab 01 0f 09 00#1a
+06 23 00 02 01 01 01 0f 09 00#1b
+#move
+06 23 00 07 04 00 00 00 00 00#1c    //move press
+06 23 00 06 04 00 00 00 00 00#1d    //move release
+
+#ios key
+#ios localinit key
+03 1b 00 01 18 80 00 00 00 00 #1e
+03 1b 00 00 10 80 00 00 00 00 #1f
+03 1b 00 41 40 0a 00 00 00 00 #20 ios init up local
+03 1b 00 41 40 0a 00 00 00 00 #21 ios init like local
+03 1b 00 41 40 0a 00 00 00 00 #22 ios init down/right/left local
+03 1b 00 20 00 00 00 00 00 00 #23 ios left
+03 1b 00 e0 0f 00 00 00 00 00 #24 ios right
+03 1b 00 00 00 02 00 00 00 00 #25 ios up
+03 1b 00 00 00 fe 00 00 00 00 #26 ios down
+
+#mouse key
+03 17 00 01 00 00 00 00 00 00 #27   press
+03 17 00 00 00 00 00 00 00 00 #28   release
+03 1b 00 00 00 00 00 00 00 00 #29 ios move
+03 1b 00 00 00 00 00 00 00 00 #2a ios move double
+
+03 1b 00 01 f8 7f 00 00 00 00 #2b
+03 1b 00 64 00 00 00 00 00 00 #2c
+03 1b 00 00 b0 f9 00 00 00 00 #2d
+mem_shutter_move_data:
+00 00 00  #defualt
+
+mem_ble_shutter_dy_interval_min_android:
+10 00
+10 00
+10 00
+2c 01
+
+mem_ble_shutter_dy_interval_min_ios:
+18 00
+1c 00
+10 00
+2c 01
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_shutter_le_uuid_sup:
+#Primary service GATT ------
+01 00 02 00 28 02 01 18
+#Service changed
+02 00 02 03 28 01 20
+03 00 02 05 2a 01 00
+#Client Characteristic Configuration
+04 00 02 02 29 02 00 00
+
+#Primary service GAP ------
+05 00 02 00 28 02 00 18
+
+#Device name
+06 00 02 03 28 01 02
+07 00 02 00 2a 13 43 68 69 70 73 65 61 2d 42 4c 45 20 20 20 20 20 20 20 20
+
+#Appearance
+08 00 02 03 28 01 02
+09 00 02 01 2a 02 c1 03
+
+#Peripheral Preferred Connection Parameters
+0a 00 02 03 28 01 02
+0b 00 02 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary service device information ------
+0c 00 02 00 28 02 0a 18
+#PNP id
+0d 00 02 03 28 01 02
+0e 00 02 50 2a 07 01 05 0e 00 0a 02 40
+
+#Primary service hid ------
+0f 00 02 00 28 02 12 18
+
+#Protocol mode
+10 00 02 03 28 01 06
+11 00 02 4e 2a 01 01
+
+
+#Hid report
+12 00 02 03 28 01 10
+13 00 02 4d 2a 02 00 00
+#Client Characteristic
+14 00 02 02 29 02 00 00
+#Report reference
+15 00 02 08 29 02 01 01 # report id=1, type=1 input
+
+#Hid report id 4
+16 00 02 03 28 01 10
+17 00 02 4d 2a 03 00 00 00
+#Client Characteristic
+18 00 02 02 29 03 00 00 00
+#Report reference
+19 00 02 08 29 02 04 01 # report id=4, type=1 input
+
+#Hid report id 3
+1a 00 02 03 28 01 10
+1b 00 02 4d 2a 03 00 00 00
+#Client Characteristic
+1c 00 02 02 29 02 00 00
+#Report reference
+1d 00 02 08 29 02 03 01 # report id=3, type=1 input
+
+#Hid report id 5
+1e 00 02 03 28 01 10
+1f 00 02 4d 2a 05 00 00 00 00 00
+#Client Characteristic
+20 00 02 02 29 02 00 00
+#Report reference
+21 00 02 08 29 02 05 01 # report id=5, type=1 input
+
+#Hid report id 2
+22 00 02 03 28 01 12
+23 00 02 4d 2a 06 00 00 00 00 00 00
+#00 00 00 00 00
+#Client Characteristic
+24 00 02 02 29 02 00 00
+#Report reference
+25 00 02 08 29 02 02 01 # report id=2, type=1 input
+
+#Hid report id 6
+26 00 02 03 28 01 12
+27 00 02 4d 2a 07 00 00 00 00 00 00 00
+#Client Characteristic
+28 00 02 02 29 02 00 00
+#Report reference
+29 00 02 08 29 02 06 01 # report id=6, type=1 input
+#Report map
+2a 00 02 03 28 01 02
+2b 00 02 4b 2a 01 00
+
+#Hid information
+2c 00 02 03 28 01 02
+2d 00 02 4a 2a 04 11 01 00 01
+
+#Hid control point
+2e 00 02 03 28 01 04
+2f 00 02 4c 2a 01 00
+30 00 02 00 28 02 0f 18
+00 00
+
+mem_shutter_le_map_len_android:63 00 #6d 00
+mem_shutter_le_map_len_ios:b7 00
+mem_shutter_le_hid_map:
+05 0c # Usage Page(Consumer) #legth 30
+09 01 # Usage(Consumer Control)
+a1 01 # Collection(Application)
+85 01 # Report ID(1)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 05 # Report Count(5)
+09 e9 # volume up
+09 ea # volume down
+09 30 # lock
+09 40 # home
+0a 23 02  #home
+81 06 #Input (Data, Variable, Absolute)
+c0 #end
+
+05 0d	#Usage Page (Digitizer)
+09 04 	# Usage(touch screem)
+a1 01 	#Collection (Application)
+85 02	#Report Id (2)
+09 24   #Usage (Stylus)
+a1 02  	#Collection (Logical)
+09 42	#Usage (Tip Switch)
+15 00	#Logical minimum (0)
+25 01 	#Logical maximum (1)
+75 01	#Report Size (1)
+95 01	#Report Count (1)
+81 02 	#Input (Data,Value,Absolute,Bit Field)
+09 32	#Usage (In Range)
+81 02  	#Input (Data,Value,Absolute,Bit Field)
+95 06	#Report Count (6)
+81 03 	#Input (Constant,Array,Absolute,Bit Field)
+75 08 #        Report Size (8)
+09 51 #        Usage (Contact identifier)
+95 01 #        Report Count (1)
+81 02 #        Input (Data,Value,Absolute,Bit Field)
+05 01	#Usage Page (Generic Desktop)
+26 ff 0f  #Logical maximum (1'000)
+75 10	#Report Size (16)
+55 0E #Unit Exponent (14)
+65 33 #Unit(51)
+09 30 	#Usage (X)
+35 00   #Physical Minimum (0)
+46 00 10  #Physical maximum (1'205)
+81 02	#Input (Data,Value,Absolute,Bit Field)
+09 31	#Usage (Y)
+46 8a 03  #Physical maximum (906)
+81 02	#Input (Data,Value,Absolute,Bit Field)
+c0		#End Collection
+c0
+
+05 01 #Usage Page (Generic Desktop Controls)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 04 # Report ID(4)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+95 05 # Report Count(5)
+75 01 # Report Size(1)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 05 # Usage Maximum(5)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+81 02 #Input (Data, Variable, Absolute)
+95 01 # Report Count(1)
+75 03 # Report Size(3)
+81 01 #Input (Constant, Array, Absolute)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+05 01  #Usage Page (Generic Desktop Controls)
+09 38 #Usage (Wheel)
+15 81 # Logical Minimum(129)
+25 7f  # Logical Maximum(127)
+81 06 #Input (Data, Variable, Relative)
+05 0c #Usage page (Consumer)
+0a 38 02 	#Usage (AC Pan)
+95 01 # Report Count(1)
+81 06 #INPUT (Data, Variable, Relative)
+c0
+85 03 # Report ID(3)
+09 01 # Usage(Consumer Control)
+a1 00 # Collection(Physical)
+75 0c # Report Size(12)
+95 02 # Report Count(2)
+05 01 #Usage Page (Generic Desktop Controls)
+09 30 #Usage (x)
+09 31 #Usage (y)
+16 01 f8  # Logical Minimum(63489)
+26 ff 07 # Logical Maximum(2047)
+81 06 #Input (Data, Variable, Relative)
+c0 c0
+
+
+##############BLE ATT LIST END####################
+mem_dy_le_search_service_uuid:
+D0 00 2D 12 1E 4B 0F A4 99 4E CE B5 31 F4 05 79
+
Index: costumer/Bore/keyboard_ck801_only_24g/sched/sim.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/sim.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/sim.dat	(working copy)
@@ -0,0 +1,54 @@
+
+mem_lpm_xtalcnt:10 20 64
+mem_lpm_isogate:8f 2f 3b
+mem_lpm_hibernate_switch:20
+mem_lpm_ldo_sel:19
+mem_fcomp_div:24
+
+mem_xtal_freq:18	#24MHz
+mem_set_cdb_on:00
+mem_syn_cal_ctrl:00
+
+mem_le_lap:11 22 33
+mem_le_adv_data_len:1b
+mem_le_adv_data:0c 09
+'Yichip Temp
+ 03 19 40 02 02 01 05 02 0a 00 03 03 f1 18
+mem_le_ch_mapped:24
+mem_le_adv_interval:20 00
+mem_le_scan_window:20 00
+mem_le_scan_type:01
+mem_le_adv_own_addr_type:01
+
+
+mem_patch00:01
+
+
+4580:ff
+mem_rf_init_ptr:80 45		
+
+
+
+
+
+
+#ecb enc data
+4f00:
+0a94 0bb5 416e f045 f1c3 9458 c653 ea5a 
+
+
+#cbc xor data
+4e00:
+5a5a 5a5a 5a5a 5a5a 6363 6363 6363 6363
+
+#cbc enc data1
+4e20:
+7033 eafa b089 698f 43cb 1050 1e73 1109 
+
+#cbc enc data2
+4e30:
+3cfd e1a1 eb69 42b0 2593 3009 5238 53f9 
+
+
+
+
Index: costumer/Bore/keyboard_ck801_only_24g/sched/spp.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/spp.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/spp.dat	(working copy)
@@ -0,0 +1,206 @@
+#device option
+mem_device_option:04
+
+#spp uuid
+mem_uuid_list:
+04
+10
+02
+12
+00
+01
+00
+00
+01
+00
+01
+00
+01
+36
+00
+5a
+09
+00
+00
+0a
+00
+01
+00
+01
+09
+00
+01
+35
+03
+19
+12
+00
+09
+00
+04
+35
+0d
+35
+06
+19
+01
+00
+09
+00
+01
+35
+03
+19
+00
+01
+09
+00
+05
+35
+03
+19
+10
+02
+09
+00
+09
+35
+08
+35
+06
+19
+12
+00
+09
+01
+00
+09
+02
+00
+09
+01
+03
+09
+02
+01
+09
+05
+ac
+09
+02
+02
+09
+02
+39
+09
+02
+03
+09
+06
+44
+09
+02
+04
+28
+01
+09
+02
+05
+09
+00
+02
+03
+11
+01
+00
+03
+01
+00
+00
+01
+00
+03
+36
+00
+4e
+09
+00
+00
+0a
+00
+01
+00
+03
+09
+00
+01
+35
+03
+19
+11
+01
+09
+00
+02
+0a
+00
+00
+00
+00
+09
+00
+04
+35
+0c
+35
+03
+19
+01
+00
+35
+05
+19
+00
+03
+08
+01
+09
+00
+05
+35
+03
+19
+10
+02
+09
+00
+06
+35
+09
+09
+65
+6e
+09
+00
+6a
+09
+01
+00
+09
+01
+00
+25
+0a
+53
+50
+50
+20
+73
+6c
+61
+76
+65
+00
+00
+00
+01
Index: costumer/Bore/keyboard_ck801_only_24g/sched/test.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/test.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/test.dat	(working copy)
@@ -0,0 +1,139 @@
+mem_device_option:ff
+mem_le_lap:11 22 33
+mem_le_adv_enable:01
+mem_le_adv_interval:00 02 
+mem_le_adv_channel_map:07
+mem_le_adv_data_len:03
+mem_le_adv_data:
+02 01 0e
+
+mem_le_scan_data_len:0a
+mem_le_scan_data:
+'\09test1305
+
+mem_ui_le_uuid_table:mem_module_le_att_list
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_module_le_att_list:
+#Primary service GAP ------
+01 00 02 00 28 02 00 18
+
+
+#Appearance
+02 00 02 03 28 01 02
+03 00 02 01 2a 02 c8 00 #3c2=hid mouse
+
+#Device name
+04 00 02 03 28 01 0a
+05 00 02 00 2a 14 41 73 74 20 4c 45 20 4d 6f 75 73 65 20 20 20 20 20 20 20 20
+
+
+#Peripheral Preferred Connection Parameters
+06 00 02 03 28 01 02
+07 00 02 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+
+#privcy flag
+08 00 02 03 28 01 02
+09 00 02 02 2a 01 01
+
+#reconnecting addr 
+0a 00 02 03 28 01 08
+0b 00 02 03 2a 06 00 00 00 00 00 00
+
+#Primary service GATT ------
+0c 00 02 00 28 02 01 18
+
+#Service changed
+0d 00 02 03 28 01 20
+0e 00 02 05 2a 00
+#Client Characteristic Configuration
+0f 00 02 02 29 02 00 00
+
+#Primary service TX power ------
+10 00 02 00 28 02 04 18
+#Characteristic Tx power level
+11 00 02 03 28 01 16
+12 00 02 07 2a 01 00
+13 00 02 02 29 02 00 00
+
+#Primary service Battery ------
+14 00 02 00 28 02 0f 18
+#Characteristic Battery level
+15 00 02 03 28 01 12
+16 00 02 19 2a 01 38
+
+#Primary service device infomation
+17 00 02 00 28 02 0a 18
+#Characteristic system id
+18 00 02 03 28 01 02
+19 00 02 23 2a 03 00 00 00
+
+#Characteristic manufactor name
+1a 00 02 03 28 01 02
+1b 00 02 29 2a 08 46 6c 61 67 74 72 69 70
+
+#Characteristic module number
+1c 00 02 03 28 01 02
+1d 00 02 24 2a 06 79 69 63 68 69 70
+
+#Characteristic serial number
+1e 00 02 03 28 01 02
+1f 00 02 25 2a 04 63 6f 6d 33
+
+#Characteristic firmware version
+20 00 02 03 28 01 02
+21 00 02 26 2a 03 31 2e 30
+
+#Characteristic software version
+22 00 02 03 28 01 02
+23 00 02 28 2a 03 31 2e 30
+
+#Characteristic hardware version
+24 00 02 03 28 01 02
+25 00 02 2a 2a 03 31 2e 30
+
+#Characteristic regulatory version
+26 00 02 03 28 01 02
+27 00 02 25 2a 04 63 6f 6d 33
+
+#Primary service yichip transmit ------
+28 00 02 00 28 10 55 e4 05 d2 af 9f a9 8f e5 4a 7d fe 43 53 53 49
+#Characteristic tx--notify read
+29 00 02 03 28 01 12
+2a 00 10 16 96 24 47 C6 23 61 BA D9 4B 4D 1E 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+2b 00 02 02 29 02 00 00
+
+#Characteristic rx--write
+2c 00 02 03 28 01 08
+2d 00 10 b3 9b 72 34 be ec d4 a8 f4 43 41 88 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Characteristic rx-- write without Response
+2e 00 02 03 28 01 04
+2f 00 10 fe 69 ca 9a 56 19 f6 ab 02 4d aa 6d 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Characteristic rx tx --read write notify
+30 00 02 03 28 01 2a
+31 0010 18 03 A6 28 5E D8 EC 91 1C 48 A3 AC 43 53 53 49 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+32 00 02 02 29 02 00 00
+
+#Primary service yichip transmit ------
+33 00 02 00 28 02 e7 fe 
+#Characteristic tx--indicate
+34 00 02 03 28 01 20
+35 00 02 c8 fe 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+#Client Characteristic Configuration
+36 00 02 02 29 02 00 00
+
+#Characteristic rx--write,read
+37 00 02 03 28 01 0a
+38 00 02 c7 fe 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+#Characteristic - read
+39 00 02 03 28 01 02
+3a 00 02 c9 fe 06 11 22 33 44 55 66
+
+#End of Attribute list
+00 00
Index: costumer/Bore/keyboard_ck801_only_24g/sched/usb_confdata.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/usb_confdata.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/usb_confdata.dat	(working copy)
@@ -0,0 +1,60 @@
+3b
+09
+02
+3b
+00
+02
+01
+00
+a0
+32
+09
+04
+00
+00
+01
+03
+01
+01
+00
+09
+21
+00
+02
+00
+01
+22
+1a
+00
+07
+05
+81
+03
+40
+00
+02
+09
+04
+01
+00
+01
+03
+01
+02
+00
+09
+21
+00
+02
+00
+01
+22
+f3
+00
+07
+05
+82
+03
+40
+00
+02
\ No newline at end of file
Index: costumer/Bore/keyboard_ck801_only_24g/sched/usb_devicedata.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/usb_devicedata.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/usb_devicedata.dat	(working copy)
@@ -0,0 +1,19 @@
+12
+12
+01
+00
+02
+00
+00
+00
+40
+51
+31
+20
+10
+02
+00
+01
+02
+00
+01
\ No newline at end of file
Index: costumer/Bore/keyboard_ck801_only_24g/sched/usb_kbdata.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/usb_kbdata.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/usb_kbdata.dat	(working copy)
@@ -0,0 +1,66 @@
+41
+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 
+26
+ff
+00
+05
+07
+19
+00
+2a
+ff
+00 
+81
+00
+c0
Index: costumer/Bore/keyboard_ck801_only_24g/sched/usb_kbdata_vendor_define.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/usb_kbdata_vendor_define.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/usb_kbdata_vendor_define.dat	(working copy)
@@ -0,0 +1,27 @@
+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
\ No newline at end of file
Index: costumer/Bore/keyboard_ck801_only_24g/sched/usb_msdata.dat
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/usb_msdata.dat	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/sched/usb_msdata.dat	(working copy)
@@ -0,0 +1,244 @@
+f3
+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
+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
+05
+0c
+09
+01
+a1
+01
+85
+05
+15
+00
+25
+01
+75
+01
+95
+18
+0a
+83
+01
+09
+ea
+09
+e9
+09
+e2
+09
+b6
+09
+b5
+09
+cd
+09
+b7
+0a
+23
+02
+0a
+8a
+01
+0a
+94
+01
+0a
+2a
+02
+0a
+92
+01
+0a
+21
+02
+0a
+24
+02
+0a
+07
+03
+0a
+ae
+01
+09
+70
+09
+6f
+09
+30
+09
+b8
+0a
+25
+02
+0a
+26
+02
+0a
+27
+02
+81
+02
+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
\ No newline at end of file
Index: costumer/Bore/keyboard_ck801_only_24g/util/crc16.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: costumer/Bore/keyboard_ck801_only_24g/util/crc16.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: costumer/Bore/keyboard_ck801_only_24g/util/eeprom2fulleeprom.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: costumer/Bore/keyboard_ck801_only_24g/util/eeprom2fulleeprom.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: costumer/Bore/keyboard_ck801_only_24g/util/eeprom2fulleeprom.pl
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/util/eeprom2fulleeprom.pl	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/util/eeprom2fulleeprom.pl	(working copy)
@@ -0,0 +1,18 @@
+
+
+
+$source_file = $ARGV[0];
+$eeprom_size = $ARGV[1];
+
+open(EEP,"$source_file") or die("cannot open files");
+for ($i = 1 ;$i<=$eeprom_size*128-2;$i++)
+{
+
+    while (<EEP>) { 
+        $c = hex();
+        printf "%02x\n", $c;
+        $i++;
+    }
+
+	printf "FF\n";
+}
Index: costumer/Bore/keyboard_ck801_only_24g/util/eeprom2otp.pl
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/util/eeprom2otp.pl	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/util/eeprom2otp.pl	(working copy)
@@ -0,0 +1,24 @@
+
+#改前三个字节为0200；
+#输入一个文件，输出一个文件；
+
+if(@ARGV < 2) {
+	printf "less files\n";
+	exit;
+}
+else{
+	open(file, $ARGV[0]) or die "Can't open  file  : $!"; 
+	open(file_out, ">$ARGV[1]")or die "Can't open out file  : $!"; 
+	@lines = <file>;
+	$length = @lines;
+	
+	my $j=2;
+	print file_out "00\n01\n";
+	while($j<$length){
+			print file_out "$lines[$j]";
+			$j++;
+	}
+#	print "----- reverse end -----";
+	close(file);
+	close(file_out);
+}
Index: costumer/Bore/keyboard_ck801_only_24g/util/geneep.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: costumer/Bore/keyboard_ck801_only_24g/util/geneep.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: costumer/Bore/keyboard_ck801_only_24g/util/mergepatch.pl
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/util/mergepatch.pl	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/util/mergepatch.pl	(working copy)
@@ -0,0 +1,351 @@
+#!/usr/bin/perl
+$defs = "";
+
+sub alloc {
+	my($end, %mc) = @_;
+	my(%eadr) = ();
+	my($tstr, $str, $i, $j, $addr);
+	my($tstr) = "";
+	
+	foreach $i (sort keys %mc) {
+		if($i =~ /(.+)_(.+)/ && exists($eadr{$1})) {
+			$addr = $eadr{$1};
+		} else {
+			$addr = $end;
+		}
+		for($j = 0;$j <= $#{$mc{$i}};$j++) {
+			if($mc{$i}[$j] =~ /^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
+				$str = sprintf "0x%04x %s%s\n", $addr, $2, $3;
+				$var{$2} = $addr;
+				$addr += $1;
+				$tstr .= $str;
+			}
+		}
+		$eadr{$i} = $addr;
+	}
+	if($addr > 0x4000) {
+		$xend = $addr if($addr > $xend);
+	} else {
+		$bend = $addr if($addr > $bend);
+	}
+	return $tstr . "\n";
+}
+
+
+sub malloc {
+	$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, $ocnt = 0;$i < @f;$i++) { 
+		$_ = $f[$i];
+		$start = 1 if(/^\s*memalloc\s*\(\s*$/);		# allocate from 0
+		$start = 2 if(/^\s*xmemalloc\s*\(\s*$/);	# allocate from 4000
+		$start = 3 if(/^\s*omemalloc\s*\(\s*$/);	# allocate after all xmemalloc, mutex from each other(obsolete, for compatibility)
+		if(/^\s*([ax]*)memalloc\s+([a-zA-Z_0-9]+)\s*\(\s*$/) {
+			$start = $1 eq 'a' ? 5 : $1 eq 'x' ? 6 : 7;
+			$basev = $2;
+		}
+		if($start) {
+			if(/^\s*([a-zA-Z0-9_]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/ && exists($def2{$1})) {		# macro for size
+				$_ = sprintf("%s %s %s", $def2{$1}, $2, $3);
+			}
+			if(/^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
+				if($start == 1) {
+					$str = sprintf "0x%04x %s%s\n", $addr, $2, $3;
+					$var{$2} = $addr;
+					$addr += $1;
+					$bstr .= $str;
+				} elsif($start == 2) {
+					$str = sprintf "0x%04x %s%s\n", $xaddr, $2, $3;
+					$var{$2} = $xaddr;
+					$xaddr += $1;
+					$xstr .= $str;
+				} else {
+					push @ostr, $_;
+				}
+			}
+			if(/^\s*\)\s*$/) {
+				if(@ostr > 0) {
+					if($start == 3) {
+						push @{$xmalloc{$ocnt}}, @ostr;
+						$ocnt++;
+					} elsif($start == 5) {
+						push @aaddr,$basev;
+						push @amalloc,[@ostr];
+					} elsif($start == 6) {
+						push @{$xmalloc{$basev}}, @ostr;
+					} elsif($start == 7) {
+						push @{$malloc{$basev}}, @ostr;
+					} 
+				}
+				$start = 0;
+				@ostr = ();
+			}
+		} else {
+			$def2{$2} = $1 if(/^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/);
+			$sstr .= $_;
+		}
+	}
+	
+#--------------------- o/x/memalloc process -----------------------
+	$bend = $addr, $xend = $xaddr;
+	$bstr .= alloc($addr, %malloc);
+	$xstr .= alloc($xaddr, %xmalloc);
+
+#--------------------- amemalloc process -----------------------
+	for($i = 0;$i <= $#aaddr;$i++) {
+		for($j = 0, $addr = $aaddr[$i] =~ /^0x([0-9a-f]+)/ ? hex($1) : $var{$aaddr[$i]};$addr != 0 && $j <= $#{$amalloc[$i]};$j++) {
+			if($amalloc[$i][$j] =~ /^\s*([0-9]+)\s+([a-zA-Z0-9_]+)\s*(.*)$/) {
+				$str = sprintf "0x%04x %s%s\n", $addr, $2, $3;
+				$addr += $1;
+				if($addr < 0x4000) {
+					$bstr .= $str;
+				} else  {
+					$xstr .= $str;
+				}
+			}
+		}
+	}
+
+	
+	print file $bstr, $xstr, $sstr;
+	print file1 $bstr, $xstr;
+	close file;
+	close file1;
+	printf "\nLast allocated address is %04x\n", $bend;
+	printf "\nLast allocated xmem address is %04x\n", $xend;
+}
+
+
+sub getdefs {
+	my($def) = @_;
+	my(@ifdefs) = split(/\s*\|\s*/, $def);
+	my $v = 0;
+	foreach (@ifdefs) {
+		s/\s//g;
+		$v = 1 if($defs =~ /(^|\s)$_(\s|$)/);
+	}
+	return $v;
+}
+
+sub parseif {
+	my($fname) = @_;
+	open file, $fname;
+	@f = <file>;
+	close file;
+	open file, ">$fname";
+	@valid = (1);
+	for($i = 0;$i < @f;$i++) { 
+		$_ = $f[$i];
+		s/\/\*.*\*\///g;
+		$comment = 1 if(/\/\*/ && !/\/\//);
+		if($comment) {
+			$comment = 0 if(/\*\//);
+			next;
+		}
+		if(/^\s*ifdef\s+(.+)$/) {
+			$v = getdefs($1) ? 1 : 0;
+			push @valid, $v & $valid[$#valid];
+		} elsif(/^\s*ifndef\s+(.+)$/) {
+			$v = getdefs($1) ? 0 : 1;
+			push @valid, $v & $valid[$#valid];
+		} elsif(/^\s*else/) {
+			printf "%s\nelse without if at line %d\n", $f[$i - 3], $i if($#valid == 0);
+			if($#valid == 0) {
+				for($j = -10;$j < 10;$j++) {
+					print $f[$i + $j];
+				}
+				last;
+ 				$i = $i;
+			}
+			$valid[$#valid] = (1 - $valid[$#valid]) & $valid[$#valid - 1];
+		} elsif(/^\s*endif/) {
+			printf "%s\nendif without if at line %d\n", $_, $i if($#valid == 0);
+			if($#valid == 0) {
+				for($j = -10;$j < 10;$j++) {
+					print $f[$i + $j];
+				}
+				last;
+ 				$i = $i;
+			}
+			pop @valid;
+		} elsif($valid[$#valid]) {
+			if(/^include\s+(.+)\s*/) {
+				open file2, "program/$1";
+				@f2 = <file2>;
+				close file2;
+				splice(@f, $i + 1, 0, @f2);
+			} else {
+			if(/^define\s+(\w+)\s*/) {
+				$defs .= $1 . " " 
+			}
+				print file $_;
+			}
+		}
+	}
+	close file;
+}
+
+sub genpatch
+{
+	print "genpatch\n";
+	$patched = 0;
+	open file,"output/bt_program23.meta";
+	while(<file>) {
+		if(/^\s*beq\s+patch([0-9a-f]+)_([0-7]),/) {
+			$a = hex($1), $b = hex($2);
+			$bits[$a] |= 1 << $b;
+			$patched = 1;
+		}
+	}
+	close file;
+	return if(!$patched);
+	open file,"output/sched.rom";
+	@sched = <file>;
+	close file;
+	for($j = 0;$j < 0x40;$j++) { 
+		$s .= sprintf ("%02x   #mem_patch%02x\n", $bits[$j], $j);
+	}
+	$s .= "\n\n";
+	for($i = $skip = 0;$i < @sched;$i++) {
+		$_ = $sched[$i];
+		if($skip > 0 && /:/) {
+			splice(@sched, $skip, $i - $skip, $s);
+			last;
+		}
+		$skip = $i + 1 if(/^mem_patch00:\s*$/);
+	}
+	if($skip == 0) {
+		$s = "mem_patch00:\n" . $s;
+		splice(@sched, 0, 0, $s);
+	}
+	open file,">output/sched.rom";
+	for($i = 0;$i < @sched;$i++) { print file $sched[$i]; }
+	close file;
+}
+
+sub zcode {
+	open file, "output/bt_program23.meta";
+	@f = <file>;
+	close file;
+	for($i = $label = $line[0] = 0, $z = 1;$i < @f;$i++) {
+		$_ = $f[$i];
+		$line[0] = $i - 1 if(/^org\s+0x([23]000|800)/ && $line[0] == 0);
+		if(/^org z\s*$/) {
+			$line[$z/0x10000 + 1] = $i - 1;
+			$z += 0x10000;
+			$f[$i] = sprintf("org 0x%x\n", $z);
+			$label = 1;
+		}
+		if(/^(\w+):\s*$/ && $label == 1) {
+			$lab{$1} = $z;
+			$label = 2;
+		}
+	}
+	return if($z == 1);
+	$line[$z/0x10000 + 1] = $i - 1;
+	for($i = 0;$i < @f;$i++) {
+		$_ = $f[$i];
+		$label = "";
+		if(/^\s*(branch|nbranch|call|ncall|setarg)\s+(\w+)\s*$/ || /^\s*(branch|nbranch|call|ncall|arg)\s+(\w+)\s*,\s*(\w+)\s*$/) {
+			$label = $2;
+		}
+		if(/^\s*(bmark|beq|bne|bbit[01])\s+(\w+)\s*,\s*(\w+)\s*$/) {
+			$label = $3;
+		}
+		$branch = /^\s+branch\s+$label\s*$/ ? 1 : 0;
+		if(exists($lab{$label})) {
+			$nlabel = "jmpz_" . $label;
+			$f[$i] =~ s/$label/eval "$nlabel"/e;
+			if($lab{$label} > 100) {
+				$z = int($lab{$label}/0x1000);
+				$l = $i < $line[1] ? $line[0] : $line[$z/10 - 1];
+				if($branch && $i >= $line[1]) {
+					$f[$i] = sprintf("\tsetarg 0x%x\n\tbranch p_zcode_entrance_2Bytes_common\n\n", $z);
+				} else {
+					$f[$l] .= sprintf("%s:\n\tsetarg 0x%x\n\tbranch p_zcode_entrance_2Bytes_common\n\n", $nlabel, $z);
+				}
+				$lab{$label} = 1;
+			}
+		}
+	}
+	open file, ">output/bt_program23.meta";
+	for($i = 0;$i < @f;$i++) {
+		if($f[$i] =~ /^\s*bbit1 8,pf_patch_ext\s*$/) {
+			printf file ("p_start:\n\tbranch p_patch_array\n\np_zcode:\n");
+			for($j = 0;$j < 63;$j++) {
+				printf file "\tnop %d\n", $j + 1;
+			}
+			printf file "p_patch_array:\n";
+		}
+		print file $f[$i];
+	}
+	close file;
+}
+
+sub authrom {
+	$addr = 0x9000;
+	foreach $s (@ARGV) {
+		open f, "../sched/" . $s . ".dat" or die "cannot open dat file $s";
+		@ff = <f>;
+		close f;
+		foreach (@ff) { $_ =~ s/\s//g;push @auth, $_ . "\n"; }
+	#	printf "0x%x %s_ADDR\n", $addr, uc($s);
+		$addr += $#ff + 1;
+	}
+	open f,">auth.rom";
+	print f @auth;
+	close f;
+	open f,"romcode.rom" or return;
+	@rom = <f>;
+	close f;
+	for($i = 0, $j = $#rom - 0x1ff;$i < 0x200;$i++,$j++) {
+		for($k = 0, $l = "";$k < 4;$k++) {
+			$_ = $auth[$i*4 + $k];
+			s/\s//g;
+			$_ = "00" if(/^$/);
+			$l =  $_ . $l;
+		}
+		$rom[$j] = $l . "\n";
+	}
+	open f,">romcode.rom";
+	print f @rom;
+	close f;
+}
+
+sub otp {
+	open f,'eeprom.dat';
+	@a=<f>;
+	open f,'../sched/otp_set.dat';
+	@b=<f>;
+	open f,'>otp.dat';
+#	printf f "0b\n00\n";
+	print f @b;
+	splice(@a,0,2);
+	print f @a;
+	close f;
+}
+
+if($ARGV[0] eq "otp") {
+	otp();
+	exit;
+} elsif(@ARGV > 0) {
+	authrom();
+	exit;
+}
+
+parseif("output/bt_program23.meta");
+parseif("output/bt_format.meta");
+genpatch() if($defs !~ / SIM /);
+malloc();
+zcode();
Index: costumer/Bore/keyboard_ck801_only_24g/util/romcrc.pl
===================================================================
--- /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/util/romcrc.pl	(nonexistent)
+++ /1121s/1121se/branch/keyboard/costumer/Bore/keyboard_ck801_only_24g/util/romcrc.pl	(working copy)
@@ -0,0 +1,54 @@
+#!/bin/perl
+sub crc16_ccitt2
+{
+	my($crc, $c) = @_;
+
+  $crc  = ($crc >> 8) | ($crc << 8);
+  $crc ^= $c;
+  $crc ^= ($crc & 0xff) >> 4;
+  $crc ^= $crc << 12;
+  $crc ^= ($crc & 0xff) << 5;
+  $crc &= 0xffff;
+ return $crc;
+}
+
+sub gencrc
+{
+  my($crc, $c) = @_;
+  my($i);
+	$c =~ s/\s//g;
+  for($i = 0;$i < length($c);$i+=2) {
+  	$crc = crc16_ccitt2($crc, hex(substr($c, $i, 2)));
+  }
+  return $crc;
+}
+
+open f,"$ARGV[0]" or die "open romfile fail";
+@txt = <f>;
+close f;
+$len = $len0 = $#txt;
+$len = hex($ARGV[1]) if(@ARGV > 1);
+for($i = 0, $crc = 0xffff;$i < $len;$i++) {
+	if($i <= $len) {
+		$_ = $txt[$i];
+		s/\s//g;
+		$wid = length($_) if($i == 0);
+		$crc = gencrc($crc, $_);
+		$txt[$i] = $_ . "\n";
+	} else {
+		$txt[$i] = join('', map('0', 1..$wid)) . "\n";
+		$crc = gencrc($crc, $txt[$i]);
+	}
+}
+if($wid > 4) {
+	$txt[$len] = join('', map('0', 1..($wid - 4)));
+	$crc = gencrc($crc, $txt[$i]);
+	$txt[$len] .= sprintf("%04x", $crc);
+} else {
+	$txt[$len] .= sprintf("%02x\n%02x\n", $crc >> 8, $crc & 0xff);
+}
+
+printf "%02x\n%02x\n", $crc >> 8, $crc & 0xff;
+open f,">$ARGV[0]";
+print f @txt;
+close f;
