Index: do.bat
===================================================================
--- /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/do.bat	(revision 1669)
+++ /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/do.bat	(working copy)
@@ -72,11 +72,11 @@
 ::echo exist c51 code
 ::geneep
 
-if "%device_option%" equ "mouse" (
+if "%device_option%" equ "dongle" (
 cd ..\output
 copy eeprom.dat ..\util\eeprom.dat
 cd ..\util
-eeprom2fulleeprom.exe eeprom.dat 128>compare2.dat
+eeprom2fulleeprom.exe eeprom.dat 64>compare2.dat
 crc16.exe compare2.dat 2 >..\output\eeprom.dat
 del eeprom.dat
 del compare2.dat
Index: format/app_dongle.format
===================================================================
--- /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/format/app_dongle.format	(revision 1669)
+++ /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/format/app_dongle.format	(working copy)
@@ -31,6 +31,7 @@
 1 mem_soft_agc_en
 1 mem_24g_mouse_bind_enable
 1 mem_24g_keyboard_bind_enable
+2 mem_tx_power_factory_param
 )
 
 
Index: output/eeprom.dat
===================================================================
--- /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/output/eeprom.dat	(revision 1669)
+++ /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-b6
+c2
 03
 c2
 84
@@ -23,11 +23,11 @@
 c0
 45
 80
-32
+35
 c0
 46
 00
-70
+73
 c0
 56
 80
@@ -35,11 +35,11 @@
 c0
 5d
 00
-3e
+41
 c0
 5d
 80
-40
+43
 20
 20
 13
@@ -47,27 +47,27 @@
 c0
 46
 00
-8b
+8e
 c0
 47
 00
-8f
+92
 c0
 49
 80
-9f
+a2
 c0
 53
 80
-85
+88
 c0
 70
 00
-a5
+a8
 c0
 72
 00
-b6
+b9
 20
 20
 13
@@ -91,7 +91,7 @@
 c0
 07
 80
-61
+64
 20
 20
 36
@@ -187,11 +187,11 @@
 24
 3a
 00
-2f
+32
 20
 20
 12
-37
+29
 70
 8a
 39
@@ -204,6 +204,18 @@
 20
 12
 26
+6f
+e1
+49
+43
+67
+f1
+0a
+39
+20
+20
+12
+26
 70
 41
 ea
@@ -239,7 +251,7 @@
 20
 40
 00
-65
+68
 20
 40
 62
@@ -255,7 +267,7 @@
 20
 40
 00
-3c
+3f
 20
 20
 37
@@ -275,7 +287,7 @@
 20
 40
 00
-45
+48
 20
 20
 37
@@ -287,11 +299,11 @@
 20
 40
 00
-48
+4b
 20
 20
 00
-54
+57
 6f
 e0
 c9
@@ -407,7 +419,7 @@
 20
 20
 00
-62
+65
 6f
 e0
 c8
@@ -415,7 +427,7 @@
 c0
 07
 80
-69
+6c
 70
 49
 40
@@ -499,7 +511,7 @@
 20
 40
 00
-6b
+6e
 1f
 e6
 7e
@@ -523,7 +535,7 @@
 24
 20
 80
-83
+86
 58
 00
 00
@@ -591,7 +603,7 @@
 c0
 00
 00
-94
+97
 20
 20
 7a
@@ -615,7 +627,7 @@
 c0
 00
 80
-9a
+9d
 20
 20
 7a
@@ -627,7 +639,7 @@
 c0
 04
 80
-9d
+a0
 20
 20
 7a
@@ -739,15 +751,15 @@
 c0
 55
 00
-bb
+be
 c0
 2a
 80
-c5
+c8
 c0
 11
 00
-d5
+d8
 20
 20
 23
@@ -759,11 +771,11 @@
 c0
 00
 80
-bf
+c2
 c0
 01
 00
-c2
+c5
 20
 60
 00
@@ -799,7 +811,7 @@
 20
 3a
 00
-cb
+ce
 6f
 e2
 48
@@ -823,11 +835,11 @@
 c0
 00
 80
-cf
+d2
 c0
 01
 00
-d2
+d5
 20
 60
 00
@@ -863,7 +875,7 @@
 20
 3a
 00
-db
+de
 6f
 e2
 48
@@ -887,11 +899,11 @@
 c0
 00
 80
-df
+e2
 c0
 01
 00
-e6
+e9
 20
 60
 00
@@ -911,7 +923,7 @@
 c0
 01
 00
-e4
+e7
 20
 60
 00
@@ -939,7 +951,7 @@
 c0
 80
 00
-eb
+ee
 20
 60
 00
@@ -952,8 +964,8 @@
 20
 23
 b4
-5d
-13
+1c
+54
 aa
 55
 40
@@ -1033,6 +1045,14 @@
 06
 aa
 55
+02
+00
+43
+49
+42
+00
+aa
+55
 06
 00
 a8
@@ -1068,7 +1088,7105 @@
 aa
 aa
 55
-c0
-0c
-41
-e0
+8f
+0e
+af
+28
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+a4
+15
Index: output/memmap.format
===================================================================
--- /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/output/memmap.format	(revision 1669)
+++ /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/output/memmap.format	(working copy)
@@ -1930,6 +1930,7 @@
 0x4940 mem_soft_agc_en
 0x4941 mem_24g_mouse_bind_enable
 0x4942 mem_24g_keyboard_bind_enable
+0x4943 mem_tx_power_factory_param
 0x4882 mem_rssi_hex_received
 0x4883 mem_24g_pair_sm
 0x4884 mem_24g_pair_no_ack
Index: output/program.lis
===================================================================
--- /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/output/program.lis	(revision 1669)
+++ /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/output/program.lis	(working copy)
@@ -4,20 +4,20 @@
 0001 c0418017 beq patch10_3 ,p_set_sync_on 
 0002 c042801e beq patch10_5 ,p_rf_rx_enable 
 0003 c045002c beq patch11_2 ,p_txon_next 
-0004 c0458032 beq patch11_3 ,p_initialize_radio_cont 
-0005 c0460070 beq patch11_4 ,p_save_rssi 
+0004 c0458035 beq patch11_3 ,p_initialize_radio_cont 
+0005 c0460073 beq patch11_4 ,p_save_rssi 
 0006 c0568011 beq patch15_5 ,p_app_init 
-0007 c05d003e beq patch17_2 ,p_dongle_usb_dispatch 
-0008 c05d8040 beq patch17_3 ,p_dongle_work_mode_auto 
+0007 c05d0041 beq patch17_2 ,p_dongle_usb_dispatch 
+0008 c05d8043 beq patch17_3 ,p_dongle_work_mode_auto 
 0009 2020137e branch loop 
 
 pf_patch_ext:
-000a c046008b beq patch31_4 ,p_usb_init 
-000b c047008f beq patch31_6 ,p_usb_class_type 
-000c c049809f beq patch32_3 ,p_usb_tx 
-000d c0538085 beq patch34_7 ,p_le_enable 
-000e c07000a5 beq patch3c_0 ,p_g24_receive_skip_end 
-000f c07200b6 beq patch3c_4 ,p_g24_bind_data_parse_next 
+000a c046008e beq patch31_4 ,p_usb_init 
+000b c0470092 beq patch31_6 ,p_usb_class_type 
+000c c04980a2 beq patch32_3 ,p_usb_tx 
+000d c0538088 beq patch34_7 ,p_le_enable 
+000e c07000a8 beq patch3c_0 ,p_g24_receive_skip_end 
+000f c07200b9 beq patch3c_4 ,p_g24_bind_data_parse_next 
 0010 2020137e branch loop 
 
 p_app_init:
@@ -29,7 +29,7 @@
 
 p_dongle_dispatch:
 0014 6fe0c8bd fetch 1 ,mem_24g_pair_mode 
-0015 c0078061 beq 0x0f ,p_dongle_all_powerful 
+0015 c0078064 beq 0x0f ,p_dongle_all_powerful 
 0016 202036cd branch dongle_dispatch + 1 
 
 p_set_sync_on:
@@ -63,274 +63,279 @@
 
 p_txon_next:
 002c 6fe0c940 fetch 1 ,mem_soft_agc_en 
-002d 243a002f nbranch p_set_tx_power_f20db ,blank 
-002e 20201237 branch set_tx_power_10db 
+002d 243a0032 nbranch p_set_tx_power_factory_db ,blank 
+002e 20201229 branch set_tx_power_3db 
 
 p_set_tx_power_f20db:
 002f 708a3953 jam 0x53 ,core_tx_pwr_ctrl0 
 0030 708a3a01 jam 0x01 ,core_tx_pwr_ctrl1 
 0031 20201226 branch set_rf_ldo_cfg89 
 
+p_set_tx_power_factory_db:
+0032 6fe14943 fetch 2 ,mem_tx_power_factory_param 
+0033 67f10a39 store 2 ,core_tx_pwr_ctrl0 
+0034 20201226 branch set_rf_ldo_cfg89 
+
 p_initialize_radio_cont:
-0032 7041eaff jam 0xff ,mem_gain_fix 
-0033 708a8500 jam 0x00 ,core_syn_loopdiv_dsm_cfg 
-0034 70892140 jam 0x40 ,0x8921 
-0035 70486702 jam 0x02 ,mem_24g_rx_phy 
-0036 70486802 jam 0x02 ,mem_24g_tx_phy 
-0037 70487a01 jam 0x01 ,mem_24g_disable_fec1 
-0038 7048bc1e jam 0x1e ,mem_24g_hop_interval 
-0039 20401252 call initialize_radio_cont + 1 
-003a 20400065 call p_g24_fast_conn_mode_check 
-003b 204062a4 call wdt_set_enable 
+0035 7041eaff jam 0xff ,mem_gain_fix 
+0036 708a8500 jam 0x00 ,core_syn_loopdiv_dsm_cfg 
+0037 70892140 jam 0x40 ,0x8921 
+0038 70486702 jam 0x02 ,mem_24g_rx_phy 
+0039 70486802 jam 0x02 ,mem_24g_tx_phy 
+003a 70487a01 jam 0x01 ,mem_24g_disable_fec1 
+003b 7048bc1e jam 0x1e ,mem_24g_hop_interval 
+003c 20401252 call initialize_radio_cont + 1 
+003d 20400068 call p_g24_fast_conn_mode_check 
+003e 204062a4 call wdt_set_enable 
 
 p_wdt_kick:
-003c 5800007d setarg 125 
-003d 20206295 branch wdt_init_config 
+003f 5800007d setarg 125 
+0040 20206295 branch wdt_init_config 
 
 p_dongle_usb_dispatch:
-003e 2040003c call p_wdt_kick 
-003f 20203730 branch dongle_usb_dispatch + 1 
+0041 2040003f call p_wdt_kick 
+0042 20203730 branch dongle_usb_dispatch + 1 
 
 p_dongle_work_mode_auto:
-0040 6fe0c8c3 fetch 1 ,mem_24g_work_mode 
-0041 c1800000 rtnne dongle_work 
-0042 20402497 call g24_work_mode_start 
-0043 20400045 call p_dongle_g24_blank_data_process 
-0044 20203770 branch dongle_work_mode_auto + 5 
+0043 6fe0c8c3 fetch 1 ,mem_24g_work_mode 
+0044 c1800000 rtnne dongle_work 
+0045 20402497 call g24_work_mode_start 
+0046 20400048 call p_dongle_g24_blank_data_process 
+0047 20203770 branch dongle_work_mode_auto + 5 
 
 p_dongle_g24_blank_data_process:
-0045 20403705 call dongle_g24_ms_blank_data 
-0046 20400048 call p_dongle_g24_kb_blank_data 
-0047 20200054 branch p_dongle_g24_kb_mul_blank_data 
+0048 20403705 call dongle_g24_ms_blank_data 
+0049 2040004b call p_dongle_g24_kb_blank_data 
+004a 20200057 branch p_dongle_g24_kb_mul_blank_data 
 
 p_dongle_g24_kb_blank_data:
-0048 6fe0c912 fetch 1 ,mem_dg_kb_blank_data_enable 
-0049 207a0000 rtn blank 
-004a d8e0000e arg timer_kb_blank ,queue 
-004b 20407de9 call timer_check 
-004c 247a0000 nrtn blank 
-004d 70491200 jam 0 ,mem_dg_kb_blank_data_enable 
-004e d8a00c0f arg mem_usb_kb_data ,contw 
-004f df200002 arg 2 ,loopcnt 
-0050 20407d8c call memset0 
-0051 6fe40c0f fetch 8 ,mem_usb_kb_data 
-0052 67e448fe store 8 ,mem_dg_kb_data_last_data 
-0053 2020371d branch dongle_usb_tx_kb_data 
+004b 6fe0c912 fetch 1 ,mem_dg_kb_blank_data_enable 
+004c 207a0000 rtn blank 
+004d d8e0000e arg timer_kb_blank ,queue 
+004e 20407de9 call timer_check 
+004f 247a0000 nrtn blank 
+0050 70491200 jam 0 ,mem_dg_kb_blank_data_enable 
+0051 d8a00c0f arg mem_usb_kb_data ,contw 
+0052 df200002 arg 2 ,loopcnt 
+0053 20407d8c call memset0 
+0054 6fe40c0f fetch 8 ,mem_usb_kb_data 
+0055 67e448fe store 8 ,mem_dg_kb_data_last_data 
+0056 2020371d branch dongle_usb_tx_kb_data 
 
 p_dongle_g24_kb_mul_blank_data:
-0054 6fe0c913 fetch 1 ,mem_dg_kb_mul_blank_data_enable 
-0055 207a0000 rtn blank 
-0056 d8e0000c arg timer_kb_mul_blank ,queue 
-0057 20407de9 call timer_check 
-0058 247a0000 nrtn blank 
-0059 70491300 jam 0 ,mem_dg_kb_mul_blank_data_enable 
-005a d8a00c1f arg mem_usb_kb_multikey ,contw 
-005b df200002 arg 2 ,loopcnt 
-005c 20407d8c call memset0 
-005d 700c1f03 jam kb_multikey_report_id ,mem_usb_kb_multikey 
-005e 6fe18c1f fetch 3 ,mem_usb_kb_multikey 
-005f 67e1c909 store 3 ,mem_dg_kb_multikey_last_data 
-0060 2020372d branch dongle_usb_tx_multikey_data 
+0057 6fe0c913 fetch 1 ,mem_dg_kb_mul_blank_data_enable 
+0058 207a0000 rtn blank 
+0059 d8e0000c arg timer_kb_mul_blank ,queue 
+005a 20407de9 call timer_check 
+005b 247a0000 nrtn blank 
+005c 70491300 jam 0 ,mem_dg_kb_mul_blank_data_enable 
+005d d8a00c1f arg mem_usb_kb_multikey ,contw 
+005e df200002 arg 2 ,loopcnt 
+005f 20407d8c call memset0 
+0060 700c1f03 jam kb_multikey_report_id ,mem_usb_kb_multikey 
+0061 6fe18c1f fetch 3 ,mem_usb_kb_multikey 
+0062 67e1c909 store 3 ,mem_dg_kb_multikey_last_data 
+0063 2020372d branch dongle_usb_tx_multikey_data 
 
 p_dongle_all_powerful:
-0061 20402493 call g24_switch_work_mode 
+0064 20402493 call g24_switch_work_mode 
 
 p_dongle_all_powerful_loop:
-0062 2040376b call dongle_work_mode_auto 
-0063 2040372f call dongle_usb_dispatch 
-0064 20200062 branch p_dongle_all_powerful_loop 
+0065 2040376b call dongle_work_mode_auto 
+0066 2040372f call dongle_usb_dispatch 
+0067 20200065 branch p_dongle_all_powerful_loop 
 
 p_g24_fast_conn_mode_check:
-0065 6fe0c8bd fetch 1 ,mem_24g_pair_mode 
-0066 c0078069 beq 0x0f ,p_soft_agc_en_true 
+0068 6fe0c8bd fetch 1 ,mem_24g_pair_mode 
+0069 c007806c beq 0x0f ,p_soft_agc_en_true 
 
 p_soft_agc_en_false:
-0067 70494000 jam 0 ,mem_soft_agc_en 
-0068 20600000 rtn 
+006a 70494000 jam 0 ,mem_soft_agc_en 
+006b 20600000 rtn 
 
 p_soft_agc_en_true:
-0069 70494001 jam 1 ,mem_soft_agc_en 
-006a 20600000 rtn 
+006c 70494001 jam 1 ,mem_soft_agc_en 
+006d 20600000 rtn 
 
 p_byte_sign_extern:
-006b 2feffe07 isolate1 7 ,pdata 
-006c 24608000 nrtn true 
-006d d840ff00 arg 0xff00 ,temp 
-006e 9841fe00 ior temp ,pdata 
-006f 20600000 rtn 
+006e 2feffe07 isolate1 7 ,pdata 
+006f 24608000 nrtn true 
+0070 d840ff00 arg 0xff00 ,temp 
+0071 9841fe00 ior temp ,pdata 
+0072 20600000 rtn 
 
 p_save_rssi:
-0070 6ff089a2 fetch 1 ,modem_nb_pow 
-0071 2feffe06 isolate1 6 ,pdata 
-0072 7920fe07 setflag true ,7 ,pdata 
-0073 67e0c1e9 store 1 ,mem_modem_rssi 
-0074 6ff089a3 fetch 1 ,modem_gain 
-0075 1fe1040f and pdata ,0x0f ,temp 
-0076 18438400 lshift temp ,temp 
-0077 1ff1fe00 rshift4 pdata ,pdata 
-0078 98408400 iadd temp ,temp 
-0079 184fa203 mul32 temp ,3 ,rega 
-007a 6fe0c1e9 fetch 1 ,mem_modem_rssi 
-007b 2040006b call p_byte_sign_extern 
-007c 1fe67e00 sub pdata ,0 ,pdata 
-007d 9a20fe00 iadd rega ,pdata 
-007e 1fe0fff7 increase -9 ,pdata 
-007f 1fe17fff and pdata ,0x1ff ,pdata 
-0080 2feffe08 isolate1 8 ,pdata 
-0081 24208083 nbranch p_save_rssi_store ,true 
-0082 58000000 setarg 0 
+0073 6ff089a2 fetch 1 ,modem_nb_pow 
+0074 2feffe06 isolate1 6 ,pdata 
+0075 7920fe07 setflag true ,7 ,pdata 
+0076 67e0c1e9 store 1 ,mem_modem_rssi 
+0077 6ff089a3 fetch 1 ,modem_gain 
+0078 1fe1040f and pdata ,0x0f ,temp 
+0079 18438400 lshift temp ,temp 
+007a 1ff1fe00 rshift4 pdata ,pdata 
+007b 98408400 iadd temp ,temp 
+007c 184fa203 mul32 temp ,3 ,rega 
+007d 6fe0c1e9 fetch 1 ,mem_modem_rssi 
+007e 2040006e call p_byte_sign_extern 
+007f 1fe67e00 sub pdata ,0 ,pdata 
+0080 9a20fe00 iadd rega ,pdata 
+0081 1fe0fff7 increase -9 ,pdata 
+0082 1fe17fff and pdata ,0x1ff ,pdata 
+0083 2feffe08 isolate1 8 ,pdata 
+0084 24208086 nbranch p_save_rssi_store ,true 
+0085 58000000 setarg 0 
 
 p_save_rssi_store:
-0083 67e08154 store 1 ,mem_rssi_hex 
-0084 20201293 branch rssi_hex2dec 
+0086 67e08154 store 1 ,mem_rssi_hex 
+0087 20201293 branch rssi_hex2dec 
 
 p_le_enable:
-0085 20401652 call le_enable + 1 
-0086 708a6d89 jam 0x89 ,core_rx_bq_cfg0 
-0087 6ff08a43 fetch 1 ,core_syn_cal_ctrl 
-0088 1fe1fe0f or pdata ,0x0f ,pdata 
-0089 67f08a43 store 1 ,core_syn_cal_ctrl 
-008a 20600000 rtn 
+0088 20401652 call le_enable + 1 
+0089 708a6d89 jam 0x89 ,core_rx_bq_cfg0 
+008a 6ff08a43 fetch 1 ,core_syn_cal_ctrl 
+008b 1fe1fe0f or pdata ,0x0f ,pdata 
+008c 67f08a43 store 1 ,core_syn_cal_ctrl 
+008d 20600000 rtn 
 
 p_usb_init:
-008b 20406e5e call enable_authrom 
-008c 20407a27 call usb_init_param 
-008d 700aa803 jam 0x03 ,mem_devicedesc + 17 
-008e 20207a0b branch usb_init_next 
+008e 20406e5e call enable_authrom 
+008f 20407a27 call usb_init_param 
+0090 700aa803 jam 0x03 ,mem_devicedesc + 17 
+0091 20207a0b branch usb_init_next 
 
 p_usb_class_type:
-008f 793f8023 set0 mark_isstr ,mark 
-0090 6fe08b59 fetch 1 ,mem_usb_setup_bmrequesttype 
-0091 1fe17e80 and_into 0x80 ,pdata 
-0092 c0000094 beq out_device ,p_usb_out_device 
-0093 20207aa1 branch usb_class_type + 4 
+0092 793f8023 set0 mark_isstr ,mark 
+0093 6fe08b59 fetch 1 ,mem_usb_setup_bmrequesttype 
+0094 1fe17e80 and_into 0x80 ,pdata 
+0095 c0000097 beq out_device ,p_usb_out_device 
+0096 20207aa1 branch usb_class_type + 4 
 
 p_usb_out_device:
-0094 6fe08b59 fetch 1 ,mem_usb_setup_bmrequesttype 
-0095 1ff1fe00 rshift4 pdata ,pdata 
-0096 1fe37e00 rshift pdata ,pdata 
-0097 1fe17e03 and_into 0x03 ,pdata 
-0098 c000809a beq class_req ,p_usb_out_class_req 
-0099 20207ab4 branch usb_out_device + 4 
+0097 6fe08b59 fetch 1 ,mem_usb_setup_bmrequesttype 
+0098 1ff1fe00 rshift4 pdata ,pdata 
+0099 1fe37e00 rshift pdata ,pdata 
+009a 1fe17e03 and_into 0x03 ,pdata 
+009b c000809d beq class_req ,p_usb_out_class_req 
+009c 20207ab4 branch usb_out_device + 4 
 
 p_usb_out_class_req:
-009a 6fe08b5a fetch 1 ,mem_usb_setup_brequest 
-009b c004809d beq set_report ,p_usb_set_report 
-009c 20207acd branch usb_out_class_req + 1 
+009d 6fe08b5a fetch 1 ,mem_usb_setup_brequest 
+009e c00480a0 beq set_report ,p_usb_set_report 
+009f 20207acd branch usb_out_class_req + 1 
 
 p_usb_set_report:
-009d 20003a98 nop 15000 
-009e 20207c4a branch usb_set_report 
+00a0 20003a98 nop 15000 
+00a1 20207c4a branch usb_set_report 
 
 p_usb_tx:
-009f 6fe08bf9 fetch 1 ,mem_usb_tx_enable 
-00a0 207a0000 rtn blank 
-00a1 6ff08c24 fetch 1 ,core_usb_txbusy 
-00a2 1fe17e0f and_into 0x0f ,pdata 
-00a3 243a7d17 nbranch usb_inwake_state_tx_dispose ,blank 
-00a4 20207ccc branch usb_tx + 3 
+00a2 6fe08bf9 fetch 1 ,mem_usb_tx_enable 
+00a3 207a0000 rtn blank 
+00a4 6ff08c24 fetch 1 ,core_usb_txbusy 
+00a5 1fe17e0f and_into 0x0f ,pdata 
+00a6 243a7d17 nbranch usb_inwake_state_tx_dispose ,blank 
+00a7 20207ccc branch usb_tx + 3 
 
 p_g24_receive_skip_end:
-00a5 6fe0c868 fetch 1 ,mem_24g_tx_phy 
-00a6 20401637 call le_enable_phy_by_pdata 
-00a7 6fe2483f fetch 4 ,mem_24g_addr 
-00a8 98001200 iforce access 
-00a9 20402181 call g24_prep 
-00aa 2040115d call set_sync_on 
-00ab 6848c83d fetcht 1 ,mem_24g_ch 
-00ac 708a3d12 jam 0x12 ,core_syn_top_ctrl 
-00ad 60488017 storet 1 ,mem_last_freq 
-00ae 1840a202 add temp ,2 ,rega 
-00af 204011c6 call rf_tx_write_freq 
-00b0 20401207 call txon 
-00b1 20000064 nop 100 
-00b2 204023e3 call g24_ackpayload_prep 
-00b3 20402247 call g24_transmit_prep 
-00b4 204021ff call g24_transmit + 7 
-00b5 202021d6 branch g24_receive_skip_end 
+00a8 6fe0c868 fetch 1 ,mem_24g_tx_phy 
+00a9 20401637 call le_enable_phy_by_pdata 
+00aa 6fe2483f fetch 4 ,mem_24g_addr 
+00ab 98001200 iforce access 
+00ac 20402181 call g24_prep 
+00ad 2040115d call set_sync_on 
+00ae 6848c83d fetcht 1 ,mem_24g_ch 
+00af 708a3d12 jam 0x12 ,core_syn_top_ctrl 
+00b0 60488017 storet 1 ,mem_last_freq 
+00b1 1840a202 add temp ,2 ,rega 
+00b2 204011c6 call rf_tx_write_freq 
+00b3 20401207 call txon 
+00b4 20000064 nop 100 
+00b5 204023e3 call g24_ackpayload_prep 
+00b6 20402247 call g24_transmit_prep 
+00b7 204021ff call g24_transmit + 7 
+00b8 202021d6 branch g24_receive_skip_end 
 
 p_g24_bind_data_parse_next:
-00b6 6fe0c897 fetch 1 ,mem_24g_rxdata_temp + 2 
-00b7 c05500bb beq datatype_bind ,p_g24_bind_first_step 
-00b8 c02a80c5 beq datatype_config ,p_g24_bind_second_step 
-00b9 c01100d5 beq datatype_ok ,p_g24_bind_third_step 
-00ba 20202370 branch g24_bind_data_parse_next + 4 
+00b9 6fe0c897 fetch 1 ,mem_24g_rxdata_temp + 2 
+00ba c05500be beq datatype_bind ,p_g24_bind_first_step 
+00bb c02a80c8 beq datatype_config ,p_g24_bind_second_step 
+00bc c01100d8 beq datatype_ok ,p_g24_bind_third_step 
+00bd 20202370 branch g24_bind_data_parse_next + 4 
 
 p_g24_bind_first_step:
-00bb 6fe0c898 fetch 1 ,mem_24g_rxdata_temp + 3 
-00bc c00080bf beq datatype_device1 ,p_g24_bind_first_step_device1 
-00bd c00100c2 beq datatype_device2 ,p_g24_bind_first_step_device2 
-00be 20600000 rtn 
+00be 6fe0c898 fetch 1 ,mem_24g_rxdata_temp + 3 
+00bf c00080c2 beq datatype_device1 ,p_g24_bind_first_step_device1 
+00c0 c00100c5 beq datatype_device2 ,p_g24_bind_first_step_device2 
+00c1 20600000 rtn 
 
 p_g24_bind_first_step_device1:
-00bf 6fe0c941 fetch 1 ,mem_24g_mouse_bind_enable 
-00c0 247a0000 nrtn blank 
-00c1 20202376 branch g24_bind_first_step_device1 
+00c2 6fe0c941 fetch 1 ,mem_24g_mouse_bind_enable 
+00c3 247a0000 nrtn blank 
+00c4 20202376 branch g24_bind_first_step_device1 
 
 p_g24_bind_first_step_device2:
-00c2 6fe0c942 fetch 1 ,mem_24g_keyboard_bind_enable 
-00c3 247a0000 nrtn blank 
-00c4 2020237c branch g24_bind_first_step_device2 
+00c5 6fe0c942 fetch 1 ,mem_24g_keyboard_bind_enable 
+00c6 247a0000 nrtn blank 
+00c7 2020237c branch g24_bind_first_step_device2 
 
 p_g24_bind_second_step:
-00c5 6fe0c85e fetch 1 ,mem_24g_pair_switch 
-00c6 203a00cb branch p_g24_bind_second_step_skip ,blank 
-00c7 6fe24899 fetch 4 ,mem_24g_rxdata_temp + 4 
-00c8 684a40a8 fetcht 4 ,mem_lap 
-00c9 98467c00 isub temp ,null 
-00ca 24628000 nrtn zero 
+00c8 6fe0c85e fetch 1 ,mem_24g_pair_switch 
+00c9 203a00ce branch p_g24_bind_second_step_skip ,blank 
+00ca 6fe24899 fetch 4 ,mem_24g_rxdata_temp + 4 
+00cb 684a40a8 fetcht 4 ,mem_lap 
+00cc 98467c00 isub temp ,null 
+00cd 24628000 nrtn zero 
 
 p_g24_bind_second_step_skip:
-00cb 6fe0c898 fetch 1 ,mem_24g_rxdata_temp + 3 
-00cc c00080cf beq datatype_device1 ,p_g24_bind_second_step_device1 
-00cd c00100d2 beq datatype_device2 ,p_g24_bind_second_step_device2 
-00ce 20600000 rtn 
+00ce 6fe0c898 fetch 1 ,mem_24g_rxdata_temp + 3 
+00cf c00080d2 beq datatype_device1 ,p_g24_bind_second_step_device1 
+00d0 c00100d5 beq datatype_device2 ,p_g24_bind_second_step_device2 
+00d1 20600000 rtn 
 
 p_g24_bind_second_step_device1:
-00cf 6fe0c941 fetch 1 ,mem_24g_mouse_bind_enable 
-00d0 247a0000 nrtn blank 
-00d1 20202389 branch g24_bind_second_step_device1 
+00d2 6fe0c941 fetch 1 ,mem_24g_mouse_bind_enable 
+00d3 247a0000 nrtn blank 
+00d4 20202389 branch g24_bind_second_step_device1 
 
 p_g24_bind_second_step_device2:
-00d2 6fe0c942 fetch 1 ,mem_24g_keyboard_bind_enable 
-00d3 247a0000 nrtn blank 
-00d4 20202394 branch g24_bind_second_step_device2 
+00d5 6fe0c942 fetch 1 ,mem_24g_keyboard_bind_enable 
+00d6 247a0000 nrtn blank 
+00d7 20202394 branch g24_bind_second_step_device2 
 
 p_g24_bind_third_step:
-00d5 6fe0c85e fetch 1 ,mem_24g_pair_switch 
-00d6 203a00db branch p_g24_bind_third_step_skip ,blank 
-00d7 6fe24899 fetch 4 ,mem_24g_rxdata_temp + 4 
-00d8 684a48d9 fetcht 4 ,mem_24g_transmitter_addr 
-00d9 98467c00 isub temp ,null 
-00da 24628000 nrtn zero 
+00d8 6fe0c85e fetch 1 ,mem_24g_pair_switch 
+00d9 203a00de branch p_g24_bind_third_step_skip ,blank 
+00da 6fe24899 fetch 4 ,mem_24g_rxdata_temp + 4 
+00db 684a48d9 fetcht 4 ,mem_24g_transmitter_addr 
+00dc 98467c00 isub temp ,null 
+00dd 24628000 nrtn zero 
 
 p_g24_bind_third_step_skip:
-00db 6fe0c898 fetch 1 ,mem_24g_rxdata_temp + 3 
-00dc c00080df beq datatype_device1 ,p_g24_bind_third_step_device1 
-00dd c00100e6 beq datatype_device2 ,p_g24_bind_third_step_device2 
-00de 20600000 rtn 
+00de 6fe0c898 fetch 1 ,mem_24g_rxdata_temp + 3 
+00df c00080e2 beq datatype_device1 ,p_g24_bind_third_step_device1 
+00e0 c00100e9 beq datatype_device2 ,p_g24_bind_third_step_device2 
+00e1 20600000 rtn 
 
 p_g24_bind_third_step_device1:
-00df 6fe0c941 fetch 1 ,mem_24g_mouse_bind_enable 
-00e0 247a0000 nrtn blank 
-00e1 6fe0c882 fetch 1 ,mem_24g_device1_bind_step 
-00e2 c00100e4 beq 2 ,p_g24_bind_dvc1_step_success 
-00e3 20600000 rtn 
+00e2 6fe0c941 fetch 1 ,mem_24g_mouse_bind_enable 
+00e3 247a0000 nrtn blank 
+00e4 6fe0c882 fetch 1 ,mem_24g_device1_bind_step 
+00e5 c00100e7 beq 2 ,p_g24_bind_dvc1_step_success 
+00e6 20600000 rtn 
 
 p_g24_bind_dvc1_step_success:
-00e4 70494101 jam 1 ,mem_24g_mouse_bind_enable 
-00e5 202023a9 branch g24_bind_dvc1_step_success 
+00e7 70494101 jam 1 ,mem_24g_mouse_bind_enable 
+00e8 202023a9 branch g24_bind_dvc1_step_success 
 
 p_g24_bind_third_step_device2:
-00e6 6fe0c942 fetch 1 ,mem_24g_keyboard_bind_enable 
-00e7 247a0000 nrtn blank 
-00e8 6fe0c883 fetch 1 ,mem_24g_device2_bind_step 
-00e9 c08000eb bne 0 ,p_g24_bind_dvc2_step_success 
-00ea 20600000 rtn 
+00e9 6fe0c942 fetch 1 ,mem_24g_keyboard_bind_enable 
+00ea 247a0000 nrtn blank 
+00eb 6fe0c883 fetch 1 ,mem_24g_device2_bind_step 
+00ec c08000ee bne 0 ,p_g24_bind_dvc2_step_success 
+00ed 20600000 rtn 
 
 p_g24_bind_dvc2_step_success:
-00eb 70494201 jam 1 ,mem_24g_keyboard_bind_enable 
-00ec 202023b4 branch g24_bind_dvc2_step_success 
+00ee 70494201 jam 1 ,mem_24g_keyboard_bind_enable 
+00ef 202023b4 branch g24_bind_dvc2_step_success 
               org 0x800
 
 start:
Index: program/patch.prog
===================================================================
--- /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/program/patch.prog	(revision 1669)
+++ /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/program/patch.prog	(working copy)
@@ -67,14 +67,19 @@
 
 p_txon_next:
 	fetch 1,mem_soft_agc_en
-	nbranch p_set_tx_power_f20db,blank
-	branch set_tx_power_10db
+	nbranch p_set_tx_power_factory_db,blank
+	branch set_tx_power_3db
 
 p_set_tx_power_f20db:	//F20dbm
 	jam 0x53,core_tx_pwr_ctrl0	
 	jam 0x01,core_tx_pwr_ctrl1
 	branch set_rf_ldo_cfg89
 
+p_set_tx_power_factory_db:
+	fetch 2,mem_tx_power_factory_param
+	store 2,core_tx_pwr_ctrl0
+	branch set_rf_ldo_cfg89
+
 p_initialize_radio_cont:
 	//hw agc
 	jam 0xff,mem_gain_fix
@@ -365,100 +370,4 @@
 	branch g24_bind_dvc2_step_success
 
 
-/*
-p_g24_end_of_packet:
-	call g24_end_of_packet
-p_g24_receive_packet:
-	fetch 1,mem_24g_rx_phy
-	call le_enable_phy_by_pdata
-	fetch 4,mem_24g_addr
-	iforce access
-	call calc_mod_value_scale_le
-	call set_sync_on
-	fetcht 1,mem_24g_ch
-	call le_rf_rx_enable
-p_g24_receive_rxon:
-	call g24_prep
-	bmark0 mark_ble_lr,p_g24_receive_nolr
-	pulse dewhiten_code_calc
-	nop 30
-	call g24_prep
-p_g24_receive_nolr:
-	disable user3
-	enable decode_fec0
-	enable is_rx
-	disable is_tx
-	enable swfine
-	fetch 2,mem_24g_rx_window
-	iforce stop_watch
-	correlate null,timeout
-	nbranch g24_sync_timeout,sync
-	call rf_debug_rx_sync_line
-	bmark1 mark_ble_lr,p_g24_receive_skip_fec1
-	fetch 1,mem_24g_disable_fec1
-	nbranch p_g24_receive_skip_fec1,blank
-	disable decode_fec0	
-	enable decode_fec1	//lr do not use fec1
-p_g24_receive_skip_fec1:
-	enable enable_white
-	enable enable_crc
-	call g24_receive_byte
-	store 1,mem_24g_get_syncword_crc8
-	fetcht 1,mem_24g_syncword_crc8
-	isub temp,null
-	nbranch p_g24_end_of_packet,zero
-	branch g24_receive_skip_fec1_next
-
-p_g24_receive_skip_fec1_next:
	
-	disable user7
-	isolate1 mark_ble_lr,mark
-	call g24_lr_receive_pdu_len,true
-	branch g24_end_of_packet,user7
-	call g24_receive_byte
-	store 1,mem_24g_rxbuf	//device id
-	bmark1 mark_24g_rxmode,g24_receive_skip
-	fetch 1,mem_24g_rxbuf
-	fetcht 1,mem_24g_data_type
-	icompare bits_data,temp
-	nbranch g24_end_of_packet,true
-p_g24_receive_skip:
-	call g24_receive_byte
-	isolate1 mark_ble_lr,mark
-	call g24_lr_receive_payload_len,true
-	istore 1,contw
-	rshift3 pdata,pdata
-	sub pdata,0x1f,null
-	nbranch p_g24_end_of_packet,positive	//max payload: 32bytes
-	copy pdata,loopcnt
-	branch p_g24rx_nopayload,zero
-	//branch g24rx_loop
-p_g24rx_loop:
-	call g24_receive_byte
-	istore 1,contw
-	loop p_g24rx_loop
-p_g24rx_nopayload:
-	bmark1 mark_24g_rxmode,p_g24_receive_skip_rssi
-	copy contw,rega
-	call g24_receive_byte
-	store 1,mem_rssi_hex_received	//receive rssi hex
-	copy rega,contw
-p_g24_receive_skip_rssi:
-	parse demod,bucket,24
-	rshift32 pdata,pdata
-	rshift16 pdata,pdata
-	istore 3,contw
-	fetch 1,mem_24g_disable_fec1
-	nbranch p_g24_receive_skip_disable_fec1,blank
-	disable decode_fec1
-p_g24_receive_skip_next:
-	isolate1 mark_24g_rxmode,mark
-	call save_rssi_dec,true
-	branch p_g24_end_of_packet,crc_failed	
-	branch g24_receive_skip_next+3
-
-p_g24_receive_skip_disable_fec1:
-	disable decode_fec0
-	branch p_g24_receive_skip_next
-*/
-
 
Index: sched/dongle.dat
===================================================================
--- /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/sched/dongle.dat	(revision 1669)
+++ /YC1308AF/branch/usb/USB_64K_2M_Allpowerful/sched/dongle.dat	(working copy)
@@ -24,7 +24,7 @@
 #mem_dg_usb_device_name:
 #'123456
 
-
+mem_tx_power_factory_param:42 00 #-50 =00 42 -30= 00 4c
 #rf config
 mem_lap:0f 0f 0f 0f 44 55#low 4B used for 24g rxaddr
 #mem_24g_tx_phy:01#0x01:1M/0x02:2M/0x04:S2/0x84:S8
