Index: bt_rom/format/hid.format
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/BT_code_patch/shoubing/bt_rom/format/hid.format	(revision 936)
+++ /YC3121_demo/ModuleDemo/BlueTooth/BT_code_patch/shoubing/bt_rom/format/hid.format	(working copy)
@@ -2,6 +2,7 @@
 (
 /*HID TYPE*/
 0x01 HID_TYPE_CONTROL
+0x02 HID_TYPE_RESERVED
 0x04 HID_TYPE_GET_REPORT
 0x05 HID_TYPE_SET_REPORT
 0x07 HID_TYPE_SET_PROTOCOL
@@ -17,5 +18,19 @@
 0x04 HID_CONTROL_P_EXITSUSPEND
 0x05 HID_CONTROL_P_VIRTUALCABLEUNPLUG
 )
-
+//HANDSHAKE
+(
+0X00 HANDSHAKE_SUCCESSFUL
+0X01 HANDSHAKE_NOT_READY
+0X02 HANDSHAKE_ERR_INVALID_REPORT_ID
+0X03 HANDSHAKE_ERR_UNSUPPORTED_REQUEST
+0X04 HANDSHAKE_ERR_INVALID_PARAMETER
+0X0E HANDSHAKE_ERR_UNKNOWN
+0X0F HANDSHAKE_ERR_FATAL
+)
+(
+0x01 HID_REPORT_INPUT
+0x02 HID_REPORT_OUTPUT
+0x03 HID_REPORT_FEATURE
+)
 
Index: do.bat
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/BT_code_patch/shoubing/do.bat	(revision 936)
+++ /YC3121_demo/ModuleDemo/BlueTooth/BT_code_patch/shoubing/do.bat	(working copy)
@@ -1,4 +1,3 @@
-cls
 @echo off
 
 ::get Rom path
@@ -104,6 +103,11 @@
 echo create bt_code.c file
 perl %util%/rom2h.pl  <.\output\eeprom.dat>  .\output\bt_code.c
 copy   .\output\bt_code.c  E:\my_svn\yc3121\SDK\Librarier\core
+copy   .\output\bt_code.c  E:\客户资料\八位堂\SDK\Librarier\core
+copy   .\output\bt_code.c E:\客户资料\八位堂\Test_patch_code
+copy .\output\bt_code.c E:\客户资料\八位堂\Test_patch_code(断联100ms后立即回连)
+copy .\output\bt_code.c  E:\客户资料\八位堂\Test_patch_code(断联复位)
+copy .\output\bt_code.c  E:\客户资料\八位堂\creat_bin(有线版本_双字节按键数据)
 goto:eof
 
 
Index: output/bt_code.c
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/BT_code_patch/shoubing/output/bt_code.c	(revision 944)
+++ /YC3121_demo/ModuleDemo/BlueTooth/BT_code_patch/shoubing/output/bt_code.c	(working copy)
@@ -1,16 +1,16 @@
 const unsigned char bt_code[] = {
-0x00,0x02,0xaa,0x55,0xb2,0x16,0xc2,0x84,0x00,0x1b,0xc0,0x00,0x84,0x21,0xc0,0x02,
+0x00,0x02,0xaa,0x55,0x06,0x17,0xc2,0x84,0x00,0x1b,0xc0,0x00,0x84,0x25,0xc0,0x02,
 0x80,0x51,0xc0,0x17,0x00,0x4e,0xc0,0x1a,0x00,0x4a,0xc0,0x2a,0x80,0x32,0xc0,0x2f,
 0x80,0xce,0xc0,0x30,0x00,0xd3,0xc0,0x2e,0x80,0xb4,0xc0,0x2f,0x00,0xc3,0xc0,0x38,
-0x00,0xa3,0xc0,0x1e,0x83,0xf6,0xc0,0x42,0x84,0x28,0xc0,0x44,0x84,0x4f,0xc0,0x46,
-0x00,0x2c,0xc0,0x4a,0x04,0x07,0xc0,0x51,0x04,0x8b,0xc0,0x51,0x84,0x12,0xc0,0x54,
-0x84,0x15,0xc0,0x56,0x04,0x92,0xc0,0x5c,0x01,0x19,0xc0,0x5d,0x81,0xa4,0xc0,0x5e,
-0x02,0x5a,0xc0,0x5f,0x05,0x84,0xc0,0x64,0x00,0xf7,0xc0,0x6d,0x80,0xeb,0x20,0x20,
-0x4a,0x8b,0xc0,0x01,0x84,0xa2,0xc0,0x02,0x84,0x99,0xc0,0x03,0x04,0x4a,0xc0,0x09,
-0x84,0xd1,0xc0,0x0f,0x84,0xae,0xc0,0x10,0x84,0xc0,0xc0,0x12,0x84,0xc5,0xc0,0x18,
-0x00,0xf2,0xc0,0x1e,0x02,0x72,0xc0,0x1d,0x02,0x82,0xc0,0x1e,0x82,0x92,0xc0,0x1f,
-0x82,0x9f,0xc0,0x1f,0x02,0xad,0xc0,0x20,0x82,0xc0,0xc0,0x4c,0x82,0xc6,0xc0,0x51,
-0x82,0xca,0x20,0x20,0x4a,0x8b,0x20,0x40,0x49,0x98,0x6f,0xe2,0x40,0xce,0xc1,0x9f,
+0x00,0xa3,0xc0,0x1e,0x83,0xfa,0xc0,0x42,0x84,0x2c,0xc0,0x44,0x84,0x53,0xc0,0x46,
+0x00,0x2c,0xc0,0x4a,0x04,0x0b,0xc0,0x51,0x04,0x8f,0xc0,0x51,0x84,0x16,0xc0,0x54,
+0x84,0x19,0xc0,0x56,0x04,0x96,0xc0,0x5c,0x01,0x19,0xc0,0x5d,0x81,0xa4,0xc0,0x5e,
+0x02,0x5a,0xc0,0x5f,0x05,0x88,0xc0,0x64,0x00,0xf7,0xc0,0x6d,0x80,0xeb,0x20,0x20,
+0x4a,0x8b,0xc0,0x01,0x84,0xa6,0xc0,0x02,0x84,0x9d,0xc0,0x03,0x04,0x4e,0xc0,0x09,
+0x84,0xd5,0xc0,0x0f,0x84,0xb2,0xc0,0x10,0x84,0xc4,0xc0,0x12,0x84,0xc9,0xc0,0x18,
+0x00,0xf2,0xc0,0x1e,0x02,0x72,0xc0,0x1d,0x02,0x82,0xc0,0x1e,0x82,0x96,0xc0,0x1f,
+0x82,0xa3,0xc0,0x1f,0x02,0xb1,0xc0,0x20,0x82,0xc4,0xc0,0x4c,0x82,0xca,0xc0,0x51,
+0x82,0xce,0x20,0x20,0x4a,0x8b,0x20,0x40,0x49,0x98,0x6f,0xe2,0x40,0xce,0xc1,0x9f,
 0x80,0x00,0x20,0x00,0x00,0x64,0x20,0x40,0x49,0xc8,0x20,0x20,0x00,0x2c,0x6f,0xe2,
 0x00,0x19,0x1f,0xe2,0x02,0x00,0xc5,0x05,0x45,0x57,0x68,0x42,0x01,0x5c,0x6f,0xe2,
 0x00,0x47,0x79,0x3f,0xfe,0x00,0x28,0x4f,0xfe,0x00,0x79,0x20,0xfe,0x00,0x28,0x4f,
@@ -72,9 +72,9 @@
 0x52,0x8b,0x70,0x0a,0x95,0x42,0x20,0x20,0x7b,0xab,0x58,0x00,0x01,0x51,0x67,0xe4,
 0x41,0xf6,0x58,0x00,0x01,0x93,0x67,0xe4,0x41,0xfe,0x58,0x00,0x01,0x2a,0x67,0xe4,
 0x41,0xf4,0x58,0x00,0x01,0x97,0x67,0xe4,0x41,0xfa,0x58,0x00,0x01,0x9f,0x67,0xe4,
-0x41,0xea,0x58,0x00,0x01,0xa0,0x67,0xe4,0x41,0xf2,0x20,0x40,0x04,0x93,0x20,0x40,
+0x41,0xea,0x58,0x00,0x01,0xa0,0x67,0xe4,0x41,0xf2,0x20,0x40,0x04,0x97,0x20,0x40,
 0x4d,0xaf,0x20,0x40,0x4d,0xbc,0x20,0x40,0x4c,0x2a,0x20,0x20,0x50,0x4d,0x20,0x40,
-0x03,0x3a,0x20,0x40,0x50,0xd3,0x20,0x40,0x01,0x2d,0x20,0x40,0x56,0x48,0x24,0x7a,
+0x03,0x3e,0x20,0x40,0x50,0xd3,0x20,0x40,0x01,0x2d,0x20,0x40,0x56,0x48,0x24,0x7a,
 0x00,0x00,0x20,0x20,0x01,0x30,0x6f,0xe4,0x4f,0xfc,0x68,0x44,0x4f,0xfe,0x98,0x46,
 0x7c,0x00,0x20,0x22,0xce,0x3a,0x20,0x40,0x67,0xf7,0xef,0xe2,0x00,0x03,0xc0,0x80,
 0xce,0x4e,0xef,0xe2,0x00,0x03,0xc0,0x50,0x01,0x43,0xc0,0x58,0x01,0x43,0x67,0xe2,
@@ -84,15 +84,15 @@
 0x4b,0xb4,0x70,0x0b,0x01,0x01,0x20,0x40,0x4e,0x5a,0x6f,0xe2,0x0b,0x01,0xc1,0x00,
 0x00,0x00,0x20,0x20,0x01,0x4c,0x20,0x40,0x67,0xf7,0x18,0x60,0x86,0x02,0xef,0xe4,
 0x00,0x03,0x98,0x60,0x86,0x00,0x20,0x20,0x4e,0x59,0x1a,0x62,0x7e,0x00,0xc0,0x00,
-0x81,0x66,0xc0,0x01,0x01,0x71,0xc0,0x02,0x01,0x74,0xc0,0x02,0x85,0x35,0xc0,0x03,
-0x05,0x36,0xc0,0x03,0x85,0x39,0xc0,0x09,0x05,0x42,0xc0,0x09,0x81,0x74,0xc0,0x13,
-0x85,0x4d,0xc0,0x17,0x05,0x50,0xc0,0x0c,0x05,0x52,0xc0,0x19,0x04,0xe4,0xc0,0x14,
-0x84,0xe6,0xc0,0x05,0x81,0x85,0xc0,0x11,0x01,0x75,0xc0,0x21,0x81,0x75,0xc0,0x21,
+0x81,0x66,0xc0,0x01,0x01,0x71,0xc0,0x02,0x01,0x74,0xc0,0x02,0x85,0x39,0xc0,0x03,
+0x05,0x3a,0xc0,0x03,0x85,0x3d,0xc0,0x09,0x05,0x46,0xc0,0x09,0x81,0x74,0xc0,0x13,
+0x85,0x51,0xc0,0x17,0x05,0x54,0xc0,0x0c,0x05,0x56,0xc0,0x19,0x04,0xe8,0xc0,0x14,
+0x84,0xea,0xc0,0x05,0x81,0x85,0xc0,0x11,0x01,0x75,0xc0,0x21,0x81,0x75,0xc0,0x21,
 0x01,0x7c,0xc0,0x0a,0x4e,0x29,0xc0,0x0a,0x81,0x6e,0x20,0x20,0x4d,0xdf,0x70,0x4b,
 0x7f,0x00,0x70,0x4b,0x7e,0x00,0x70,0x0a,0xff,0xb9,0x58,0x00,0x00,0x01,0x20,0x40,
 0x50,0xa5,0x58,0x00,0x00,0x00,0xe7,0xe2,0x00,0x0a,0x20,0x20,0x67,0xb9,0x20,0x40,
 0x5b,0xf6,0x20,0x40,0x4d,0x75,0x20,0x20,0x50,0x28,0x70,0x4b,0xd6,0x00,0x20,0x40,
-0x4d,0x69,0x20,0x20,0x05,0x21,0x20,0x20,0x05,0x2e,0x58,0x00,0x00,0x02,0x70,0x0a,
+0x4d,0x69,0x20,0x20,0x05,0x25,0x20,0x20,0x05,0x32,0x58,0x00,0x00,0x02,0x70,0x0a,
 0xff,0xb8,0x20,0x40,0x50,0xa5,0x6f,0xe4,0x00,0x32,0x1f,0xe3,0x7e,0x00,0xe7,0xe4,
 0x00,0x0a,0x20,0x20,0x67,0xb9,0x6f,0xe4,0x46,0x52,0x79,0x20,0x7e,0x02,0x67,0xe4,
 0x46,0x52,0x58,0x00,0x00,0x02,0x70,0x0a,0xff,0xb7,0x20,0x40,0x50,0xa5,0x68,0x44,
@@ -100,14 +100,14 @@
 0x00,0x32,0x1f,0xe3,0x7e,0x00,0x68,0x44,0x41,0xe4,0x98,0x46,0x7c,0x00,0x20,0x20,
 0x4d,0x91,0x6f,0xe2,0x46,0x79,0xc3,0x82,0x80,0x00,0x6f,0xe4,0x4f,0xfc,0x68,0x44,
 0x4f,0xfe,0x98,0x46,0x7c,0x00,0x24,0x42,0xd0,0xda,0x20,0x20,0x4d,0x87,0x20,0x60,
-0x00,0x00,0x20,0x40,0x03,0x33,0x20,0x40,0x05,0x5e,0x20,0x40,0x05,0x66,0x20,0x20,
-0x05,0x69,0x20,0x40,0x05,0x13,0x20,0x74,0x00,0x00,0x1a,0x22,0x7e,0x00,0x67,0xe4,
+0x00,0x00,0x20,0x40,0x03,0x37,0x20,0x40,0x05,0x62,0x20,0x40,0x05,0x6a,0x20,0x20,
+0x05,0x6d,0x20,0x40,0x05,0x17,0x20,0x74,0x00,0x00,0x1a,0x22,0x7e,0x00,0x67,0xe4,
 0x46,0x71,0x1a,0x42,0x7e,0x00,0x67,0xe2,0x46,0x70,0x6f,0xe4,0x04,0x74,0x20,0x20,
 0x50,0xbb,0x20,0x20,0x4d,0xbd,0x20,0x20,0x01,0xa1,0x6f,0xe2,0x4b,0xd5,0x20,0x7a,
 0x00,0x00,0x20,0x20,0x4d,0xc8,0x6f,0xe2,0x0a,0xff,0xc0,0x08,0x82,0x24,0xc0,0x0a,
 0x82,0x2c,0xc0,0x13,0x82,0x3a,0xc0,0x06,0x02,0x31,0xc0,0x58,0x02,0x3c,0xc0,0x59,
-0x02,0x4c,0xc0,0x04,0x85,0x0f,0xc0,0x50,0x81,0xbf,0xc0,0x51,0x01,0xb9,0xc0,0x58,
-0x85,0x79,0xc0,0x50,0x02,0x1f,0xc0,0x1c,0x81,0xb6,0xc0,0x3b,0x01,0xda,0xc0,0x3b,
+0x02,0x4c,0xc0,0x04,0x85,0x13,0xc0,0x50,0x81,0xbf,0xc0,0x51,0x01,0xb9,0xc0,0x58,
+0x85,0x7d,0xc0,0x50,0x02,0x1f,0xc0,0x1c,0x81,0xb6,0xc0,0x3b,0x01,0xda,0xc0,0x3b,
 0x81,0xe0,0xc0,0x3c,0x01,0xe5,0xc0,0x38,0x01,0xc2,0x20,0x20,0x4e,0x5c,0xef,0xe4,
 0x00,0x03,0x67,0xe4,0x44,0x78,0x20,0x20,0x50,0x1f,0xef,0xe2,0x00,0x03,0x67,0xe2,
 0x4b,0xd5,0x20,0x3a,0x50,0x1f,0xef,0xe4,0x00,0x03,0x67,0xe4,0x41,0xe4,0x20,0x20,
@@ -117,7 +117,7 @@
 0x00,0x03,0x67,0xe8,0x4b,0xca,0xe8,0x48,0x00,0x03,0x5f,0xff,0xff,0xff,0x98,0x42,
 0xfe,0x00,0x67,0xe8,0x4b,0xc1,0xef,0xe8,0x00,0x03,0x67,0xe8,0x4b,0xc5,0xd8,0xa0,
 0x41,0xbf,0xdf,0x20,0x00,0x10,0x20,0x40,0x67,0xed,0x70,0x4b,0xb6,0x01,0x58,0x00,
-0x00,0x3c,0x67,0xe4,0x4b,0xb7,0x20,0x40,0x03,0x40,0x20,0x20,0x50,0x1f,0xd8,0x40,
+0x00,0x3c,0x67,0xe4,0x4b,0xb7,0x20,0x40,0x03,0x44,0x20,0x20,0x50,0x1f,0xd8,0x40,
 0x00,0x0c,0x20,0x40,0x5b,0x4d,0x18,0xc0,0x8b,0xfe,0x58,0x00,0x00,0x00,0xe7,0xe4,
 0x00,0x05,0x20,0x20,0x50,0x1f,0x20,0x40,0x01,0xe9,0x20,0x40,0x02,0x06,0x58,0x00,
 0x00,0x00,0xe7,0xe4,0x00,0x05,0x20,0x20,0x02,0x18,0xef,0xe2,0x00,0x03,0x20,0x40,
@@ -160,70 +160,71 @@
 0x04,0xcd,0x79,0x20,0x7e,0x00,0x67,0xe2,0x04,0xcd,0x70,0x0a,0x95,0x01,0x20,0x40,
 0x7b,0xab,0x6f,0xe2,0x4b,0xd6,0x20,0x3a,0x61,0xbf,0x70,0x01,0x6b,0x03,0x70,0x00,
 0x55,0x06,0x70,0x41,0xbe,0x01,0x70,0x46,0x51,0x01,0x20,0x60,0x00,0x00,0x6f,0xe2,
-0x00,0x7d,0xc0,0x08,0x02,0x89,0xc0,0x0b,0x82,0x8f,0x20,0x20,0x60,0xfe,0x70,0x00,
+0x00,0x7d,0xc0,0x08,0x02,0x8d,0xc0,0x1e,0x82,0x87,0xc0,0x0b,0x82,0x93,0x20,0x20,
+0x60,0xfe,0x58,0x00,0x00,0x00,0x67,0xe8,0x09,0xb2,0x20,0x20,0x62,0xf2,0x70,0x00,
 0x7d,0x2a,0x70,0x00,0x7c,0x03,0x20,0x60,0x00,0x00,0x68,0x42,0x05,0x4e,0x18,0x46,
-0x7c,0x06,0x20,0x21,0x02,0x8d,0x20,0x20,0x62,0x06,0x70,0x00,0x7e,0x24,0x20,0x20,
+0x7c,0x06,0x20,0x21,0x02,0x91,0x20,0x20,0x62,0x06,0x70,0x00,0x7e,0x24,0x20,0x20,
 0x61,0x34,0x6f,0xe4,0x05,0x53,0x20,0x3a,0x62,0xd2,0x20,0x20,0x62,0xbc,0x6f,0xe2,
-0x05,0x4e,0x67,0xe2,0x04,0xc5,0xc0,0x05,0x82,0x96,0x20,0x20,0x61,0xa6,0x20,0x40,
+0x05,0x4e,0x67,0xe2,0x04,0xc5,0xc0,0x05,0x82,0x9a,0x20,0x20,0x61,0xa6,0x20,0x40,
 0x61,0xdf,0x6f,0xe2,0x00,0x55,0xc1,0x8c,0x80,0x00,0x70,0x0a,0xff,0xb1,0x58,0x00,
 0x00,0x01,0x20,0x40,0x50,0xa5,0x58,0x00,0x00,0x01,0xe7,0xe2,0x00,0x0a,0x20,0x20,
-0x67,0xb9,0x6f,0xe2,0x00,0x49,0xc0,0x0b,0x82,0xaa,0xc0,0x19,0x82,0xa3,0x20,0x20,
+0x67,0xb9,0x6f,0xe2,0x00,0x49,0xc0,0x0b,0x82,0xae,0xc0,0x19,0x82,0xa7,0x20,0x20,
 0x64,0x33,0x70,0x00,0x7c,0x8b,0x70,0x00,0x7c,0x31,0x6f,0xe2,0x04,0xcd,0x79,0x20,
 0x7e,0x00,0x67,0xe2,0x04,0xcd,0x70,0x0a,0x95,0x01,0x20,0x20,0x7b,0xab,0x70,0x0a,
 0x95,0x43,0x20,0x40,0x7b,0xab,0x20,0x20,0x46,0xc2,0x78,0x54,0x7c,0x00,0x20,0x40,
-0x66,0xa3,0x6f,0xe2,0x00,0x48,0x20,0x7a,0x00,0x00,0xc2,0x83,0x82,0xb4,0xc0,0x21,
-0x03,0xe4,0x20,0x20,0x63,0xf2,0xc0,0x42,0x02,0xb7,0xc0,0x41,0x82,0xba,0x20,0x20,
-0x64,0x21,0x20,0x40,0x02,0xbd,0x6f,0xe2,0x00,0x48,0x20,0x20,0x64,0x7b,0x20,0x40,
-0x02,0xbd,0x6f,0xe2,0x00,0x48,0x20,0x20,0x64,0xef,0x6f,0xe2,0x46,0x2c,0x20,0x3a,
+0x66,0xa3,0x6f,0xe2,0x00,0x48,0x20,0x7a,0x00,0x00,0xc2,0x83,0x82,0xb8,0xc0,0x21,
+0x03,0xe8,0x20,0x20,0x63,0xf2,0xc0,0x42,0x02,0xbb,0xc0,0x41,0x82,0xbe,0x20,0x20,
+0x64,0x21,0x20,0x40,0x02,0xc1,0x6f,0xe2,0x00,0x48,0x20,0x20,0x64,0x7b,0x20,0x40,
+0x02,0xc1,0x6f,0xe2,0x00,0x48,0x20,0x20,0x64,0xef,0x6f,0xe2,0x46,0x2c,0x20,0x3a,
 0x65,0x0d,0x20,0x20,0x65,0x06,0x6f,0xe2,0x40,0x9e,0x79,0x3f,0xfe,0x03,0x67,0xe2,
 0x40,0x9e,0x58,0x00,0x00,0x01,0x67,0xe4,0x04,0xca,0x20,0x60,0x00,0x00,0x6f,0xe2,
 0x44,0x90,0x20,0x3a,0x5e,0xd0,0x20,0x40,0x74,0x38,0x20,0x20,0x79,0x32,0x20,0x40,
 0x66,0x9e,0x24,0x3a,0x7b,0xfd,0x6f,0xe2,0x0a,0x95,0xc5,0x84,0xfb,0xf8,0xc0,0x02,
-0x82,0xd0,0x20,0x20,0x7b,0xec,0x6f,0xe2,0x4b,0xd5,0x20,0x3a,0x50,0xea,0x20,0x20,
+0x82,0xd4,0x20,0x20,0x7b,0xec,0x6f,0xe2,0x4b,0xd5,0x20,0x3a,0x50,0xea,0x20,0x20,
 0x50,0xfd,0x6f,0xe2,0x46,0x6c,0x79,0x20,0x7e,0x07,0x67,0xe2,0x46,0x6c,0xda,0xc0,
 0x00,0x00,0xd8,0xc0,0x89,0x73,0xef,0xe2,0x00,0x06,0x79,0x20,0x7e,0x06,0xd8,0xa0,
 0x89,0x73,0xe7,0xe2,0x00,0x05,0xda,0xc0,0x00,0x0f,0xdf,0x20,0x00,0x06,0xda,0x40,
-0x00,0x02,0xda,0x20,0x4b,0x97,0x20,0x40,0x02,0xf5,0xdf,0x20,0x00,0x14,0xda,0x40,
-0x01,0x2c,0xda,0x20,0x4b,0x9d,0x20,0x40,0x02,0xf5,0xdf,0x20,0x00,0x02,0xda,0x40,
-0x1f,0xfe,0xda,0x20,0x4b,0xb1,0x20,0x40,0x02,0xf5,0x20,0x40,0x03,0x11,0xda,0xc0,
+0x00,0x02,0xda,0x20,0x4b,0x97,0x20,0x40,0x02,0xf9,0xdf,0x20,0x00,0x14,0xda,0x40,
+0x01,0x2c,0xda,0x20,0x4b,0x9d,0x20,0x40,0x02,0xf9,0xdf,0x20,0x00,0x02,0xda,0x40,
+0x1f,0xfe,0xda,0x20,0x4b,0xb1,0x20,0x40,0x02,0xf9,0x20,0x40,0x03,0x15,0xda,0xc0,
 0x00,0x00,0xd8,0xc0,0x89,0x73,0xef,0xe2,0x00,0x06,0x79,0x3f,0xfe,0x06,0xd8,0xa0,
 0x89,0x73,0xe7,0xe2,0x00,0x05,0xda,0xc0,0x00,0x00,0x6f,0xe2,0x46,0x6c,0x79,0x3f,
 0xfe,0x07,0x67,0xe2,0x46,0x6c,0x20,0x60,0x00,0x00,0x1a,0x49,0xa4,0x00,0x20,0x40,
-0x02,0xff,0x20,0x40,0x03,0x0c,0x20,0x40,0x03,0x0e,0x6f,0xe3,0x85,0x0c,0xe7,0xe2,
-0x00,0x11,0x1a,0x40,0xa4,0x08,0x1a,0x20,0xa2,0x01,0xc2,0x00,0x02,0xf8,0x20,0x60,
-0x00,0x00,0x58,0x00,0x02,0x0c,0x20,0x40,0x03,0x07,0x58,0x00,0x02,0x08,0x20,0x40,
-0x03,0x07,0x58,0x00,0x02,0x00,0x20,0x40,0x03,0x07,0x58,0x00,0x02,0x08,0x20,0x20,
-0x03,0x07,0xd8,0xa1,0x85,0x0a,0xe7,0xe2,0x00,0x05,0x1f,0xec,0xfe,0x00,0xe7,0xe2,
-0x00,0x05,0x20,0x60,0x00,0x00,0x58,0x00,0x02,0x88,0x20,0x20,0x03,0x07,0x1a,0x42,
-0x7e,0x00,0xd8,0xa1,0x85,0x08,0x20,0x20,0x03,0x08,0x58,0x00,0x02,0x0c,0x20,0x20,
-0x03,0x07,0xdf,0x20,0x00,0x0d,0xd8,0x40,0x55,0xaa,0xd8,0xc0,0x4b,0x97,0xef,0xe4,
-0x00,0x06,0x98,0x40,0xfe,0x00,0x1f,0xe2,0x04,0x00,0xc2,0x00,0x03,0x16,0x20,0x60,
+0x03,0x03,0x20,0x40,0x03,0x10,0x20,0x40,0x03,0x12,0x6f,0xe3,0x85,0x0c,0xe7,0xe2,
+0x00,0x11,0x1a,0x40,0xa4,0x08,0x1a,0x20,0xa2,0x01,0xc2,0x00,0x02,0xfc,0x20,0x60,
+0x00,0x00,0x58,0x00,0x02,0x0c,0x20,0x40,0x03,0x0b,0x58,0x00,0x02,0x08,0x20,0x40,
+0x03,0x0b,0x58,0x00,0x02,0x00,0x20,0x40,0x03,0x0b,0x58,0x00,0x02,0x08,0x20,0x20,
+0x03,0x0b,0xd8,0xa1,0x85,0x0a,0xe7,0xe2,0x00,0x05,0x1f,0xec,0xfe,0x00,0xe7,0xe2,
+0x00,0x05,0x20,0x60,0x00,0x00,0x58,0x00,0x02,0x88,0x20,0x20,0x03,0x0b,0x1a,0x42,
+0x7e,0x00,0xd8,0xa1,0x85,0x08,0x20,0x20,0x03,0x0c,0x58,0x00,0x02,0x0c,0x20,0x20,
+0x03,0x0b,0xdf,0x20,0x00,0x0d,0xd8,0x40,0x55,0xaa,0xd8,0xc0,0x4b,0x97,0xef,0xe4,
+0x00,0x06,0x98,0x40,0xfe,0x00,0x1f,0xe2,0x04,0x00,0xc2,0x00,0x03,0x1a,0x20,0x60,
 0x00,0x00,0xdf,0x20,0x00,0x0d,0xd8,0xc0,0x4b,0x97,0xef,0xe4,0x00,0x06,0x98,0x42,
-0xfe,0x00,0x1f,0xe2,0x04,0x00,0xc2,0x00,0x03,0x1d,0x20,0x60,0x00,0x00,0x70,0x4b,
+0xfe,0x00,0x1f,0xe2,0x04,0x00,0xc2,0x00,0x03,0x21,0x20,0x60,0x00,0x00,0x70,0x4b,
 0xb3,0x00,0xd8,0x40,0xff,0xff,0x98,0x41,0x7e,0x00,0xd8,0xc0,0x4b,0xb1,0xe8,0x44,
 0x00,0x06,0x98,0x46,0x7c,0x00,0x24,0x62,0x80,0x00,0x70,0x4b,0xb3,0x01,0x20,0x60,
-0x00,0x00,0x20,0x40,0x02,0xd3,0x20,0x40,0x03,0x13,0x20,0x40,0x03,0x1b,0x20,0x40,
-0x03,0x22,0x6f,0xe2,0x4b,0xb3,0x2f,0xe1,0xfe,0x01,0x20,0x60,0x80,0x00,0x20,0x20,
+0x00,0x00,0x20,0x40,0x02,0xd7,0x20,0x40,0x03,0x17,0x20,0x40,0x03,0x1f,0x20,0x40,
+0x03,0x26,0x6f,0xe2,0x4b,0xb3,0x2f,0xe1,0xfe,0x01,0x20,0x60,0x80,0x00,0x20,0x20,
 0x4a,0x8b,0x6f,0xe2,0x4b,0xb6,0x20,0x7a,0x00,0x00,0xda,0x60,0x4b,0xd3,0xda,0x40,
-0x03,0x38,0x20,0x20,0x4d,0x0b,0x70,0x0a,0xff,0xba,0x20,0x20,0x50,0x4e,0x6f,0xe2,
-0x4b,0xb6,0x20,0x7a,0x00,0x00,0x20,0x20,0x03,0x43,0x70,0x4b,0xb6,0x01,0x58,0x00,
+0x03,0x3c,0x20,0x20,0x4d,0x0b,0x70,0x0a,0xff,0xba,0x20,0x20,0x50,0x4e,0x6f,0xe2,
+0x4b,0xb6,0x20,0x7a,0x00,0x00,0x20,0x20,0x03,0x47,0x70,0x4b,0xb6,0x01,0x58,0x00,
 0x00,0x3c,0x67,0xe4,0x4b,0xb7,0x58,0x00,0x00,0xa0,0x18,0x00,0x0e,0x0e,0x20,0x20,
 0x7c,0xe3,0x18,0x00,0x0e,0x0e,0x20,0x40,0x7c,0xf1,0x24,0x7a,0x00,0x00,0x20,0x40,
-0x48,0xd8,0x20,0x40,0x03,0x5b,0x20,0x40,0x03,0x40,0x68,0x44,0x4b,0xb7,0x78,0x48,
-0x7c,0x00,0x18,0x42,0x36,0x00,0x20,0x21,0x83,0x86,0x20,0x40,0x49,0x15,0xd8,0x40,
-0x00,0x00,0x20,0x40,0x49,0x30,0x20,0x40,0x4a,0x50,0x20,0x40,0x03,0x72,0x20,0x40,
-0x46,0x49,0x20,0x00,0x13,0x88,0x20,0x20,0x03,0x4c,0x6f,0xf2,0x4b,0xc1,0x1f,0xef,
+0x48,0xd8,0x20,0x40,0x03,0x5f,0x20,0x40,0x03,0x44,0x68,0x44,0x4b,0xb7,0x78,0x48,
+0x7c,0x00,0x18,0x42,0x36,0x00,0x20,0x21,0x83,0x8a,0x20,0x40,0x49,0x15,0xd8,0x40,
+0x00,0x00,0x20,0x40,0x49,0x30,0x20,0x40,0x4a,0x50,0x20,0x40,0x03,0x76,0x20,0x40,
+0x46,0x49,0x20,0x00,0x13,0x88,0x20,0x20,0x03,0x50,0x6f,0xf2,0x4b,0xc1,0x1f,0xef,
 0x7e,0x00,0x1f,0xeb,0x7e,0x00,0x67,0xe6,0x07,0x42,0x6d,0x86,0x07,0x42,0x20,0x60,
-0x00,0x00,0x20,0x40,0x03,0x55,0x6f,0xf2,0x4b,0xc1,0x68,0x50,0x4b,0xb9,0x98,0x42,
+0x00,0x00,0x20,0x40,0x03,0x59,0x6f,0xf2,0x4b,0xc1,0x68,0x50,0x4b,0xb9,0x98,0x42,
 0xfe,0x00,0x67,0xf0,0x07,0x42,0x6f,0xea,0x07,0x42,0x78,0x3b,0x7c,0x00,0x98,0x00,
 0x12,0x00,0x78,0x5b,0x7c,0x00,0x20,0x60,0x00,0x00,0x20,0x40,0x4a,0x63,0x78,0x43,
 0xfc,0x00,0x78,0x25,0x7c,0x00,0x78,0x2d,0xfc,0x00,0x6f,0xe4,0x0b,0x37,0x08,0x00,
 0x86,0x0a,0x78,0x24,0x7c,0x00,0x08,0x00,0x86,0x08,0x78,0x4d,0xfc,0x00,0x78,0x44,
 0x7c,0x00,0x78,0x45,0x7c,0x00,0x79,0x3f,0xaa,0x02,0x20,0x60,0x00,0x00,0x58,0x00,
-0x00,0x78,0x67,0xe4,0x0b,0x37,0x20,0x40,0x03,0x65,0x78,0x2e,0xfc,0x00,0x78,0x47,
+0x00,0x78,0x67,0xe4,0x0b,0x37,0x20,0x40,0x03,0x69,0x78,0x2e,0xfc,0x00,0x78,0x47,
 0x7c,0x00,0x78,0x24,0xfc,0x00,0x58,0x00,0x0a,0x98,0x08,0x00,0x86,0x10,0xdf,0x20,
-0x00,0x50,0x6f,0xe8,0x4b,0xca,0x08,0x00,0x86,0x20,0xc2,0x00,0x03,0x7b,0xdf,0x20,
-0x00,0x13,0x58,0x00,0x00,0x00,0x08,0x00,0x86,0x08,0xc2,0x00,0x03,0x7f,0x78,0x24,
+0x00,0x50,0x6f,0xe8,0x4b,0xca,0x08,0x00,0x86,0x20,0xc2,0x00,0x03,0x7f,0xdf,0x20,
+0x00,0x13,0x58,0x00,0x00,0x00,0x08,0x00,0x86,0x08,0xc2,0x00,0x03,0x83,0x78,0x24,
 0x7c,0x00,0x08,0x00,0x86,0x10,0x78,0x44,0x7c,0x00,0x20,0x60,0x00,0x00,0x68,0x44,
 0x4b,0xb7,0x78,0x48,0x7c,0x00,0x18,0x42,0x36,0x00,0x78,0x58,0x7c,0x00,0x78,0x57,
 0x7c,0x00,0xd8,0x40,0x00,0x00,0x20,0x40,0x49,0x1c,0x20,0x40,0x49,0xea,0x20,0x40,
@@ -231,25 +232,25 @@
 0xfc,0x00,0x09,0x80,0x00,0x0a,0x19,0x83,0x7e,0x00,0x67,0xe4,0x0b,0x39,0x09,0x80,
 0x00,0x08,0x78,0x45,0xfc,0x00,0x78,0x45,0x7c,0x00,0x20,0x23,0x46,0x49,0xdf,0x20,
 0x00,0x12,0xd8,0xa0,0x0b,0x1e,0x78,0x26,0x7c,0x00,0x78,0x24,0xfc,0x00,0x09,0x80,
-0x00,0x08,0x19,0x89,0x7e,0x00,0xe7,0xe2,0x00,0x05,0xc2,0x00,0x03,0x9e,0x09,0x80,
+0x00,0x08,0x19,0x89,0x7e,0x00,0xe7,0xe2,0x00,0x05,0xc2,0x00,0x03,0xa2,0x09,0x80,
 0x00,0x10,0x20,0x40,0x46,0x49,0x20,0x63,0x00,0x00,0x6f,0xec,0x0b,0x20,0x68,0x4c,
 0x41,0xd1,0x98,0x46,0x7c,0x00,0x24,0x62,0x80,0x00,0x6f,0xe8,0x0b,0x2c,0x1f,0xe3,
 0x7e,0x00,0x67,0xe8,0x01,0x63,0x6f,0xe2,0x0b,0x1f,0x67,0xe2,0x01,0x72,0x58,0x00,
 0x00,0x67,0x67,0xe2,0x0b,0x1e,0x6f,0xec,0x40,0xa0,0x67,0xec,0x0b,0x1f,0x58,0x00,
 0x00,0x00,0x67,0xf2,0x0b,0x25,0x20,0x40,0x4a,0x4c,0x20,0x40,0x49,0x15,0xd8,0x40,
 0x00,0x00,0x20,0x40,0x49,0x30,0x20,0x40,0x4a,0x50,0x20,0x40,0x4a,0x5e,0x6f,0xe4,
-0x0b,0x39,0x67,0xe4,0x0b,0x37,0x20,0x40,0x03,0x65,0x78,0x2e,0x7c,0x00,0x78,0x47,
+0x0b,0x39,0x67,0xe4,0x0b,0x37,0x20,0x40,0x03,0x69,0x78,0x2e,0x7c,0x00,0x78,0x47,
 0x7c,0x00,0x78,0x24,0xfc,0x00,0xdf,0x20,0x00,0x0d,0xd8,0xc0,0x0b,0x1e,0xef,0xe2,
-0x00,0x06,0x08,0x00,0x86,0x08,0xc2,0x00,0x03,0xc2,0x78,0x24,0x7c,0x00,0x08,0x00,
+0x00,0x06,0x08,0x00,0x86,0x08,0xc2,0x00,0x03,0xc6,0x78,0x24,0x7c,0x00,0x08,0x00,
 0x86,0x10,0x78,0x44,0x7c,0x00,0x20,0x40,0x46,0x49,0x70,0x4b,0xb6,0x00,0x58,0x00,
-0x00,0x00,0x67,0xe4,0x03,0x33,0x2d,0x00,0x06,0x03,0x20,0x20,0x83,0xd0,0x37,0xcb,
-0x82,0x00,0x20,0x20,0x03,0xcc,0x6f,0xe8,0x01,0x63,0x1f,0xe1,0xfe,0x03,0x1f,0xe2,
+0x00,0x00,0x67,0xe4,0x03,0x37,0x2d,0x00,0x06,0x03,0x20,0x20,0x83,0xd4,0x37,0xcb,
+0x82,0x00,0x20,0x20,0x03,0xd0,0x6f,0xe8,0x01,0x63,0x1f,0xe1,0xfe,0x03,0x1f,0xe2,
 0x50,0x00,0x6f,0xec,0x41,0xd1,0x67,0xec,0x00,0x40,0x20,0x40,0x44,0x31,0x20,0x40,
-0x44,0x78,0x20,0x36,0x83,0xdc,0x20,0x40,0x44,0x51,0x24,0x3a,0x03,0xd6,0x70,0x0a,
+0x44,0x78,0x20,0x36,0x83,0xe0,0x20,0x40,0x44,0x51,0x24,0x3a,0x03,0xda,0x70,0x0a,
 0xff,0xbb,0x20,0x20,0x50,0x4e,0x70,0x4b,0xd6,0x01,0x6f,0xe2,0x05,0x4d,0x20,0x40,
-0x03,0xe0,0x20,0x20,0x43,0xc4,0x6f,0xe6,0x05,0x4e,0x67,0xe6,0x4b,0xce,0x70,0x00,
+0x03,0xe4,0x20,0x20,0x43,0xc4,0x6f,0xe6,0x05,0x4e,0x67,0xe6,0x4b,0xce,0x70,0x00,
 0x7c,0x42,0x20,0x60,0x00,0x00,0x58,0x00,0x00,0x00,0x67,0xe2,0x00,0x48,0x6f,0xe2,
-0x4b,0xce,0xc0,0x00,0x03,0xea,0xc0,0x02,0x03,0xf0,0x20,0x60,0x00,0x00,0x18,0x00,
+0x4b,0xce,0xc0,0x00,0x03,0xee,0xc0,0x02,0x03,0xf4,0x20,0x60,0x00,0x00,0x18,0x00,
 0x7e,0x0a,0x20,0x40,0x66,0x7a,0x58,0x1d,0x32,0x01,0xe7,0xf2,0x00,0x05,0x58,0x00,
 0x00,0x00,0x20,0x20,0x66,0x99,0x18,0x00,0x7e,0x04,0x20,0x40,0x66,0x7a,0x58,0x00,
 0x00,0x04,0xe7,0xe6,0x00,0x05,0x58,0x00,0x00,0x01,0x20,0x20,0x66,0x99,0x20,0x40,
@@ -259,29 +260,29 @@
 0x00,0x0b,0x1f,0xe0,0xfe,0x01,0x67,0xe2,0x00,0x0b,0x20,0x40,0x48,0x3d,0x20,0x20,
 0x43,0xde,0x18,0x42,0x7e,0x00,0x20,0x40,0x7d,0x2b,0x1c,0x30,0x7e,0x00,0x79,0x20,
 0x7e,0x2c,0x20,0x40,0x7d,0x14,0x79,0x3f,0xfe,0x2c,0x20,0x40,0x4a,0x76,0x20,0x40,
-0x7d,0x14,0x20,0x74,0x00,0x00,0x20,0x40,0x04,0x1e,0x20,0x20,0x4a,0x2f,0x1b,0x42,
-0x7e,0x00,0x20,0x40,0x04,0x1d,0x20,0x20,0x4a,0xe9,0x6f,0xe4,0x40,0x4e,0x1f,0xe3,
+0x7d,0x14,0x20,0x74,0x00,0x00,0x20,0x40,0x04,0x22,0x20,0x20,0x4a,0x2f,0x1b,0x42,
+0x7e,0x00,0x20,0x40,0x04,0x21,0x20,0x20,0x4a,0xe9,0x6f,0xe4,0x40,0x4e,0x1f,0xe3,
 0x7e,0x00,0x20,0x40,0x7d,0x2b,0x1e,0x02,0x7e,0x00,0x20,0x40,0x7d,0x14,0x1b,0x42,
-0x04,0x00,0x20,0x40,0x04,0x1d,0x20,0x20,0x4b,0x67,0x20,0x40,0x7d,0x14,0x98,0x00,
+0x04,0x00,0x20,0x40,0x04,0x21,0x20,0x20,0x4b,0x67,0x20,0x40,0x7d,0x14,0x98,0x00,
 0x0c,0x00,0x79,0x3f,0x8c,0x10,0x20,0x20,0x7d,0x1f,0x20,0x40,0x68,0xc4,0x20,0x40,
-0x60,0xd7,0x20,0x40,0x04,0x25,0x20,0x20,0x40,0x0a,0x20,0x75,0x80,0x00,0x20,0x20,
-0x7b,0x9a,0x20,0x20,0x40,0x10,0x20,0x30,0x84,0x39,0x70,0x89,0x55,0xd4,0x20,0x00,
+0x60,0xd7,0x20,0x40,0x04,0x29,0x20,0x20,0x40,0x0a,0x20,0x75,0x80,0x00,0x20,0x20,
+0x7b,0x9a,0x20,0x20,0x40,0x10,0x20,0x30,0x84,0x3d,0x70,0x89,0x55,0xd4,0x20,0x00,
 0x00,0x04,0x70,0x89,0x55,0xd2,0x20,0x00,0x00,0x04,0x70,0x89,0x55,0xd1,0x20,0x00,
-0x00,0x04,0x6f,0xe2,0x41,0xdf,0xc0,0x00,0x04,0x37,0xc0,0x00,0x84,0x47,0xc0,0x01,
-0x04,0x37,0xc0,0x04,0x04,0x37,0xc0,0x01,0x84,0x47,0xc0,0x02,0x04,0x47,0xc0,0x10,
-0x04,0x47,0x70,0x89,0x55,0xd0,0x70,0x89,0x56,0xe0,0x18,0x00,0x2a,0x08,0x18,0x00,
+0x00,0x04,0x6f,0xe2,0x41,0xdf,0xc0,0x00,0x04,0x3b,0xc0,0x00,0x84,0x4b,0xc0,0x01,
+0x04,0x3b,0xc0,0x04,0x04,0x3b,0xc0,0x01,0x84,0x4b,0xc0,0x02,0x04,0x4b,0xc0,0x10,
+0x04,0x4b,0x70,0x89,0x55,0xd0,0x70,0x89,0x56,0xe0,0x18,0x00,0x2a,0x08,0x18,0x00,
 0x2a,0x00,0x78,0x50,0xfc,0x00,0x78,0x50,0x7c,0x00,0x78,0x2f,0x7c,0x00,0x70,0x89,
 0x02,0x00,0x70,0x89,0x01,0x00,0x70,0x89,0x00,0x00,0x70,0x89,0x03,0x00,0x70,0x89,
 0x04,0x70,0x6f,0xe2,0x89,0x06,0x79,0x20,0x7e,0x00,0x67,0xe2,0x89,0x06,0x20,0x60,
-0x00,0x00,0x70,0x89,0x55,0xd0,0x70,0x89,0x56,0xc0,0x20,0x20,0x04,0x39,0x20,0x40,
-0x57,0xaf,0x20,0x40,0x04,0x4d,0x20,0x20,0x58,0xa7,0x20,0x36,0x84,0x54,0x20,0x20,
+0x00,0x00,0x70,0x89,0x55,0xd0,0x70,0x89,0x56,0xc0,0x20,0x20,0x04,0x3d,0x20,0x40,
+0x57,0xaf,0x20,0x40,0x04,0x51,0x20,0x20,0x58,0xa7,0x20,0x36,0x84,0x58,0x20,0x20,
 0x57,0xbe,0x60,0x42,0x00,0x17,0x20,0x40,0x49,0x2a,0x20,0x40,0x49,0x80,0x58,0x00,
 0x05,0x00,0x20,0x40,0x4a,0x8e,0x6f,0xe2,0x89,0x06,0x79,0x20,0x7e,0x00,0x67,0xe2,
 0x89,0x06,0x70,0x89,0x00,0x3c,0x70,0x89,0x01,0xe0,0x70,0x89,0x6d,0x12,0x20,0x00,
 0x00,0x0a,0x70,0x89,0x02,0x01,0x70,0x89,0x02,0x3d,0x20,0x00,0x00,0x0a,0x70,0x89,
 0x03,0xb7,0x20,0x00,0x00,0x0a,0x70,0x89,0x02,0x7f,0x70,0x89,0x4b,0xba,0x6f,0xe2,
-0x41,0xdf,0xc0,0x00,0x04,0x6a,0xc0,0x00,0x84,0x6f,0xc0,0x01,0x04,0x77,0xc0,0x04,
-0x04,0x81,0xc0,0x01,0x84,0x7c,0xc0,0x02,0x49,0x58,0xc0,0x10,0x49,0x5c,0x58,0x88,
+0x41,0xdf,0xc0,0x00,0x04,0x6e,0xc0,0x00,0x84,0x73,0xc0,0x01,0x04,0x7b,0xc0,0x04,
+0x04,0x85,0xc0,0x01,0x84,0x80,0xc0,0x02,0x49,0x58,0xc0,0x10,0x49,0x5c,0x58,0x88,
 0xe0,0xd0,0x67,0xe6,0x89,0x55,0x58,0x00,0x10,0x5c,0x67,0xe4,0x89,0x58,0x20,0x20,
 0x49,0x48,0x58,0x88,0xf7,0xdf,0x67,0xe6,0x89,0x55,0x58,0x00,0x10,0x3c,0x67,0xe4,
 0x89,0x58,0x70,0x89,0x56,0xf7,0x20,0x40,0x49,0x62,0x70,0x89,0x55,0xdf,0x20,0x60,
@@ -303,7 +304,7 @@
 0x7e,0x03,0x67,0xe2,0x44,0xde,0xef,0xe2,0x00,0x06,0x67,0xe2,0x44,0xdd,0x20,0x7a,
 0x00,0x00,0x18,0xc2,0x7e,0x00,0x67,0xe4,0x44,0xdf,0x6f,0xe2,0x44,0xde,0xc0,0x01,
 0xe0,0x44,0x20,0x40,0x5a,0x76,0xd8,0xe0,0x00,0x03,0x24,0x34,0x4b,0xec,0x20,0x40,
-0x4b,0xf0,0x20,0x20,0x5a,0x6b,0xef,0xe4,0x00,0x06,0xc0,0x02,0x04,0xf1,0xc0,0x03,
+0x4b,0xf0,0x20,0x20,0x5a,0x6b,0xef,0xe4,0x00,0x06,0xc0,0x02,0x04,0xf5,0xc0,0x03,
 0x5e,0xd4,0xc0,0x02,0xde,0x96,0x20,0x60,0x00,0x00,0x18,0x0a,0x7e,0x00,0xd8,0x40,
 0x00,0x0f,0x98,0x41,0x7e,0x00,0x1f,0xe0,0xfe,0x19,0x20,0x40,0x5a,0xef,0x6f,0xe2,
 0x0a,0xbe,0x68,0x42,0x44,0x5f,0x98,0x46,0x7c,0x00,0x24,0x22,0xda,0xce,0xd8,0xe0,
@@ -316,18 +317,18 @@
 0xff,0xb4,0x58,0x00,0x00,0x1c,0x20,0x40,0x50,0xa5,0x6f,0xec,0x44,0x72,0xe7,0xec,
 0x00,0x0a,0x6f,0xec,0x04,0x4b,0xe7,0xec,0x00,0x0a,0xd8,0xc0,0x43,0xeb,0xdf,0x20,
 0x00,0x10,0x20,0x40,0x67,0xd4,0x20,0x20,0x67,0xb9,0xef,0xe6,0x00,0x06,0x67,0xe6,
-0x04,0x73,0xc0,0x09,0x04,0xf6,0xc0,0x05,0x05,0x04,0x20,0x20,0x5c,0x8d,0x18,0xc2,
+0x04,0x73,0xc0,0x09,0x04,0xfa,0xc0,0x05,0x05,0x08,0x20,0x20,0x5c,0x8d,0x18,0xc2,
 0x22,0x00,0x6f,0xe4,0x44,0xce,0x1f,0xe0,0xa5,0xfd,0x20,0x40,0x5a,0xbe,0x6f,0xe2,
 0x44,0xbb,0xc3,0x02,0x5e,0x1d,0x68,0x44,0x04,0x74,0x6f,0xe4,0x44,0xcc,0x98,0x46,
-0x7c,0x00,0x24,0x22,0xde,0x1d,0x20,0x40,0x05,0x16,0x24,0x34,0x5e,0x1d,0x70,0x04,
+0x7c,0x00,0x24,0x22,0xde,0x1d,0x20,0x40,0x05,0x1a,0x24,0x34,0x5e,0x1d,0x70,0x04,
 0x76,0x05,0x20,0x20,0x5e,0x57,0x68,0x44,0x04,0x74,0x6f,0xe2,0x44,0xbb,0xc2,0x81,
-0x85,0x08,0x20,0x20,0x5d,0x9f,0x6f,0xe4,0x44,0xcc,0x98,0x46,0x7c,0x00,0x24,0x22,
-0xdd,0x9f,0x20,0x40,0x05,0x16,0x24,0x34,0x5d,0x9f,0x70,0x04,0x76,0x05,0x20,0x20,
-0x5e,0x57,0x6f,0xe4,0x46,0x52,0xc3,0x04,0xd0,0x1c,0x20,0x40,0x05,0x13,0x20,0x20,
-0x4e,0xda,0x6f,0xe2,0x46,0x79,0xc2,0x81,0x05,0x16,0x20,0x20,0x7d,0xc1,0x20,0x40,
+0x85,0x0c,0x20,0x20,0x5d,0x9f,0x6f,0xe4,0x44,0xcc,0x98,0x46,0x7c,0x00,0x24,0x22,
+0xdd,0x9f,0x20,0x40,0x05,0x1a,0x24,0x34,0x5d,0x9f,0x70,0x04,0x76,0x05,0x20,0x20,
+0x5e,0x57,0x6f,0xe4,0x46,0x52,0xc3,0x04,0xd0,0x1c,0x20,0x40,0x05,0x17,0x20,0x20,
+0x4e,0xda,0x6f,0xe2,0x46,0x79,0xc2,0x81,0x05,0x1a,0x20,0x20,0x7d,0xc1,0x20,0x40,
 0x7d,0xc1,0x6f,0xe2,0x44,0x98,0xc1,0x00,0x00,0x00,0x6f,0xe2,0x04,0x3b,0xc3,0x82,
 0x00,0x00,0x20,0x20,0x7d,0xbf,0x70,0x4b,0x7f,0x00,0x70,0x4b,0x7e,0x00,0x20,0x20,
-0x4d,0x6b,0x70,0x4b,0xd6,0x00,0x20,0x40,0x4e,0x2f,0x20,0x40,0x05,0x27,0x6f,0xe4,
+0x4d,0x6b,0x70,0x4b,0xd6,0x00,0x20,0x40,0x4e,0x2f,0x20,0x40,0x05,0x2b,0x6f,0xe4,
 0x46,0x52,0x79,0x3f,0xfe,0x0c,0x67,0xe4,0x46,0x52,0x70,0x0a,0xff,0xb6,0x20,0x20,
 0x50,0x4e,0x70,0x41,0xe3,0x00,0x70,0x46,0x50,0x00,0x70,0x42,0x04,0x00,0x70,0x4b,
 0x7e,0x00,0x70,0x4b,0x7f,0x00,0x20,0x60,0x00,0x00,0x20,0x40,0x4e,0x2f,0x70,0x0a,
@@ -338,14 +339,14 @@
 0x7e,0x00,0x58,0x00,0x00,0x01,0x67,0xe2,0x4b,0x7f,0x20,0x60,0x00,0x00,0x6f,0xe2,
 0x41,0xe3,0xc1,0x00,0x80,0x00,0x6f,0xe4,0x46,0x52,0x79,0x20,0x7e,0x0c,0x67,0xe4,
 0x46,0x52,0x70,0x0a,0xff,0xb0,0x20,0x40,0x50,0x4e,0x70,0x41,0xe3,0x01,0x20,0x40,
-0x4d,0x6b,0x20,0x20,0x4d,0x89,0x20,0x20,0x05,0x2d,0x58,0x00,0x00,0x05,0x67,0xe2,
+0x4d,0x6b,0x20,0x20,0x4d,0x89,0x20,0x20,0x05,0x31,0x58,0x00,0x00,0x05,0x67,0xe2,
 0x4b,0x7e,0x20,0x60,0x00,0x00,0x20,0x20,0x4d,0x48,0x20,0x60,0x00,0x00,0x20,0x20,
-0x05,0x53,0x70,0x0a,0xff,0xb5,0x58,0x00,0x00,0x1c,0x20,0x40,0x50,0xa5,0x6f,0xec,
+0x05,0x57,0x70,0x0a,0xff,0xb5,0x58,0x00,0x00,0x1c,0x20,0x40,0x50,0xa5,0x6f,0xec,
 0x40,0xa0,0xe7,0xec,0x00,0x0a,0x6f,0xec,0x00,0x40,0xe7,0xec,0x00,0x0a,0xd8,0xc0,
 0x41,0xbf,0xdf,0x20,0x00,0x10,0x20,0x40,0x67,0xd4,0x20,0x20,0x67,0xb9,0xda,0x60,
-0x4b,0x7e,0xda,0x40,0x05,0x61,0x20,0x20,0x4d,0x04,0x6f,0xe2,0x02,0x7b,0x79,0x20,
+0x4b,0x7e,0xda,0x40,0x05,0x65,0x20,0x20,0x4d,0x04,0x6f,0xe2,0x02,0x7b,0x79,0x20,
 0x7e,0x00,0x79,0x20,0x7e,0x07,0x67,0xe2,0x02,0x7b,0x20,0x60,0x00,0x00,0xda,0x60,
-0x46,0x50,0xda,0x40,0x05,0x42,0x20,0x20,0x4d,0x04,0xda,0x60,0x4b,0x7f,0xda,0x40,
+0x46,0x50,0xda,0x40,0x05,0x46,0x20,0x20,0x4d,0x04,0xda,0x60,0x4b,0x7f,0xda,0x40,
 0x4d,0x64,0x20,0x20,0x4d,0x04,0x20,0x40,0x56,0x4b,0x24,0x7a,0x00,0x00,0x6f,0xe2,
 0x0b,0x00,0x1f,0xe0,0xa2,0x01,0x20,0x40,0x51,0x3d,0x6f,0xe4,0x42,0x20,0xe7,0xe4,
 0x00,0x05,0x58,0x00,0x00,0xa1,0xe7,0xe2,0x00,0x05,0x6f,0xe2,0x0b,0x00,0x1f,0xe2,
@@ -354,112 +355,116 @@
 0x00,0x10,0x20,0x40,0x67,0xed,0x20,0x40,0x68,0xbe,0x20,0x40,0x4d,0x6b,0x20,0x40,
 0x4d,0x5c,0x20,0x20,0x50,0x1f,0x6f,0xe4,0x02,0x60,0x1f,0xe2,0x0c,0x00,0xef,0xe2,
 0x00,0x06,0x1f,0xe1,0x04,0x0f,0x1f,0xf1,0xfe,0x00,0xc0,0x04,0xd1,0x2d,0xc0,0x03,
-0xd1,0x2d,0xc0,0x05,0x05,0x90,0xc0,0x02,0x85,0xa3,0xc0,0x00,0x85,0xa5,0xc0,0x02,
-0x51,0x2d,0x20,0x60,0x00,0x00,0x20,0x20,0x05,0x95,0xef,0xe4,0x00,0x06,0x67,0xe4,
-0x0a,0x96,0xc0,0x00,0x85,0x9d,0x20,0x60,0x00,0x00,0x70,0x0a,0xff,0xb2,0x6f,0xe4,
-0x02,0x62,0x1f,0xe2,0x72,0x00,0x20,0x40,0x50,0xa5,0x6f,0xe4,0x02,0x60,0x1f,0xe2,
-0x0c,0x00,0x20,0x40,0x67,0xc1,0x20,0x20,0x67,0xb9,0x70,0x0a,0xff,0xb2,0x58,0x00,
-0x00,0x02,0x20,0x40,0x50,0xa5,0x6f,0xe4,0x0a,0x96,0xe7,0xe4,0x00,0x0a,0x20,0x20,
-0x67,0xb9,0x20,0x40,0x05,0x90,0x20,0x20,0x51,0x26,0x18,0x42,0x7e,0x00,0xc0,0x02,
-0xd1,0x1e,0x70,0x4b,0x80,0x01,0xc0,0x01,0xd1,0x2d,0x70,0x4b,0x80,0x00,0xc0,0x02,
-0x51,0x2d,0x20,0x60,0x00,0x00,0x9a,0x48,0xaa,0x55,0x40,0x00,0x00,0x40,0x22,0x00,
-0x00,0x00,0x00,0x40,0x10,0x20,0x00,0x00,0x20,0xe0,0x01,0x00,0x01,0x00,0x20,0x12,
-0x10,0x00,0x0c,0x12,0x00,0x59,0x00,0x01,0x00,0x08,0x00,0x00,0x00,0x00,0x68,0x00,
-0x08,0x80,0x22,0x00,0x01,0xf4,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x02,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xaa,0x55,
-0x01,0x00,0x6e,0x46,0x05,0xaa,0x55,0x07,0x00,0x25,0x44,0x02,0x03,0x00,0x05,0x10,
-0x02,0x03,0xaa,0x55,0x08,0x00,0x68,0x44,0x08,0x00,0x10,0x00,0x00,0x00,0x2c,0x01,
-0xaa,0x55,0x02,0x00,0xcc,0x44,0x31,0x00,0xaa,0x55,0x01,0x00,0x78,0x44,0x17,0xaa,
-0x55,0x01,0x00,0x7a,0x44,0x17,0xaa,0x55,0x01,0x00,0x90,0x44,0x00,0xaa,0x55,0x01,
-0x00,0x5f,0x44,0x07,0xaa,0x55,0x01,0x00,0x98,0x44,0x00,0xaa,0x55,0x01,0x00,0x40,
-0x43,0x00,0xaa,0x55,0x02,0x00,0x54,0x44,0x40,0x00,0xaa,0x55,0x06,0x00,0x72,0x44,
-0x21,0x2a,0x01,0x33,0x02,0x3a,0xaa,0x55,0x0f,0x00,0x81,0x43,0x0e,0x42,0x54,0x34,
-0x2e,0x32,0x20,0x4b,0x65,0x79,0x62,0x6f,0x61,0x72,0x64,0xaa,0x55,0x1c,0x00,0x41,
-0x43,0x03,0x02,0x01,0x05,0x03,0x19,0xc1,0x03,0x03,0x03,0x12,0x18,0x0f,0x09,0x42,
-0x54,0x34,0x2e,0x32,0x20,0x4b,0x65,0x79,0x62,0x6f,0x61,0x72,0x64,0xaa,0x55,0x11,
-0x00,0x61,0x43,0x1f,0x0f,0x09,0x42,0x54,0x34,0x2e,0x32,0x20,0x4b,0x65,0x79,0x62,
-0x6f,0x61,0x72,0x64,0xaa,0x55,0x02,0x00,0x8e,0x44,0x75,0x49,0xaa,0x55,0xca,0x00,
-0x75,0x49,0x01,0x00,0x02,0x00,0x28,0x02,0x01,0x18,0x02,0x00,0x02,0x03,0x28,0x01,
-0x20,0x03,0x00,0x02,0x05,0x2a,0x01,0x00,0x04,0x00,0x02,0x02,0x29,0x02,0x00,0x00,
-0x05,0x00,0x02,0x00,0x28,0x02,0x00,0x18,0x06,0x00,0x02,0x03,0x28,0x01,0x02,0x07,
-0x00,0x02,0x00,0x2a,0x1d,0x42,0x54,0x34,0x2e,0x32,0x20,0x4b,0x65,0x79,0x62,0x6f,
+0xd1,0x2d,0xc0,0x05,0x05,0x95,0xc0,0x02,0x85,0xb8,0xc0,0x00,0x85,0xba,0xc0,0x02,
+0x05,0x9e,0xc0,0x01,0x05,0xa5,0x20,0x60,0x00,0x00,0x20,0x20,0x05,0x96,0x70,0x0a,
+0xff,0xb2,0x6f,0xe4,0x02,0x62,0x1f,0xe2,0x72,0x00,0x20,0x40,0x50,0xa5,0x6f,0xe4,
+0x02,0x60,0x1f,0xe2,0x0c,0x00,0x20,0x40,0x67,0xc1,0x20,0x20,0x67,0xb9,0x18,0x42,
+0x7e,0x00,0xc0,0x00,0xd1,0x2d,0xc0,0x01,0x05,0xa2,0x20,0x20,0x05,0xa6,0xef,0xe2,
+0x00,0x06,0xc0,0x7f,0x85,0xa8,0x20,0x20,0x51,0x2d,0x20,0x20,0x05,0xaa,0xd9,0x00,
+0x00,0x04,0x20,0x20,0x05,0xab,0xd9,0x00,0x00,0x02,0x20,0x20,0x05,0xab,0xd9,0x00,
+0x00,0x03,0xda,0x20,0x00,0x01,0x20,0x40,0x51,0x3d,0x6f,0xe4,0x42,0x1e,0xe7,0xe4,
+0x00,0x05,0x19,0x02,0x7e,0x00,0xe7,0xe2,0x00,0x05,0x20,0x60,0x00,0x00,0x70,0x0a,
+0xff,0xb2,0x58,0x00,0x00,0x02,0x20,0x40,0x50,0xa5,0x6f,0xe4,0x0a,0x96,0xe7,0xe4,
+0x00,0x0a,0x20,0x20,0x67,0xb9,0x20,0x40,0x05,0x95,0x20,0x20,0x51,0x26,0x18,0x42,
+0x7e,0x00,0xc0,0x02,0xd1,0x1e,0x70,0x4b,0x80,0x01,0xc0,0x01,0xd1,0x2d,0x70,0x4b,
+0x80,0x00,0xc0,0x02,0x51,0x2d,0x20,0x60,0x00,0x00,0xc9,0xc3,0xaa,0x55,0x40,0x00,
+0x00,0x40,0x22,0x00,0x00,0x00,0x00,0x40,0x10,0x20,0x00,0x00,0x20,0xe0,0x01,0x00,
+0x01,0x00,0x20,0x12,0x10,0x00,0x0c,0x12,0x00,0x59,0x00,0x01,0x00,0x08,0x00,0x00,
+0x00,0x00,0x68,0x00,0x08,0x80,0x22,0x00,0x01,0xf4,0x02,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x02,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0xaa,0x55,0x01,0x00,0x6e,0x46,0x05,0xaa,0x55,0x07,0x00,0x25,0x44,0x02,
+0x03,0x00,0x05,0x10,0x02,0x03,0xaa,0x55,0x08,0x00,0x68,0x44,0x08,0x00,0x10,0x00,
+0x00,0x00,0x2c,0x01,0xaa,0x55,0x02,0x00,0xcc,0x44,0x31,0x00,0xaa,0x55,0x01,0x00,
+0x78,0x44,0x17,0xaa,0x55,0x01,0x00,0x7a,0x44,0x17,0xaa,0x55,0x01,0x00,0x90,0x44,
+0x00,0xaa,0x55,0x01,0x00,0x5f,0x44,0x07,0xaa,0x55,0x01,0x00,0x98,0x44,0x00,0xaa,
+0x55,0x01,0x00,0x40,0x43,0x00,0xaa,0x55,0x02,0x00,0x54,0x44,0x40,0x00,0xaa,0x55,
+0x06,0x00,0x72,0x44,0x21,0x2a,0x01,0x33,0x02,0x3a,0xaa,0x55,0x0f,0x00,0x81,0x43,
+0x0e,0x42,0x54,0x34,0x2e,0x32,0x20,0x4b,0x65,0x79,0x62,0x6f,0x61,0x72,0x64,0xaa,
+0x55,0x1c,0x00,0x41,0x43,0x03,0x02,0x01,0x05,0x03,0x19,0xc1,0x03,0x03,0x03,0x12,
+0x18,0x0f,0x09,0x42,0x54,0x34,0x2e,0x32,0x20,0x4b,0x65,0x79,0x62,0x6f,0x61,0x72,
+0x64,0xaa,0x55,0x11,0x00,0x61,0x43,0x1f,0x0f,0x09,0x42,0x54,0x34,0x2e,0x32,0x20,
+0x4b,0x65,0x79,0x62,0x6f,0x61,0x72,0x64,0xaa,0x55,0x02,0x00,0x8e,0x44,0x75,0x49,
+0xaa,0x55,0xca,0x00,0x75,0x49,0x01,0x00,0x02,0x00,0x28,0x02,0x01,0x18,0x02,0x00,
+0x02,0x03,0x28,0x01,0x20,0x03,0x00,0x02,0x05,0x2a,0x01,0x00,0x04,0x00,0x02,0x02,
+0x29,0x02,0x00,0x00,0x05,0x00,0x02,0x00,0x28,0x02,0x00,0x18,0x06,0x00,0x02,0x03,
+0x28,0x01,0x02,0x07,0x00,0x02,0x00,0x2a,0x1d,0x42,0x54,0x34,0x2e,0x32,0x20,0x4b,
+0x65,0x79,0x62,0x6f,0x61,0x72,0x64,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+0x20,0x20,0x20,0x20,0x20,0x20,0x08,0x00,0x02,0x03,0x28,0x01,0x02,0x09,0x00,0x02,
+0x01,0x2a,0x02,0xc1,0x03,0x0a,0x00,0x02,0x03,0x28,0x01,0x02,0x0b,0x00,0x02,0x04,
+0x2a,0x08,0x10,0x00,0x18,0x00,0x20,0x00,0x2c,0x01,0x0c,0x00,0x02,0x00,0x28,0x02,
+0x0a,0x18,0x0d,0x00,0x02,0x03,0x28,0x01,0x02,0x0e,0x00,0x02,0x29,0x2a,0x06,0x59,
+0x69,0x43,0x68,0x69,0x70,0x0f,0x00,0x02,0x00,0x28,0x10,0x02,0xfb,0x34,0x9b,0x5f,
+0x80,0x00,0x00,0x80,0x00,0x10,0x00,0x00,0x10,0xff,0x00,0x10,0x00,0x02,0x03,0x28,
+0x01,0x14,0x11,0x00,0x10,0xfb,0x34,0x9b,0x5f,0x80,0x00,0x00,0x80,0x00,0x10,0x00,
+0x00,0x13,0xff,0x00,0x01,0x00,0x12,0x00,0x02,0x02,0x29,0x02,0x00,0x00,0x00,0x00,
+0xaa,0x55,0x01,0x00,0x06,0x42,0x17,0xaa,0x55,0x01,0x00,0x93,0x40,0x00,0xaa,0x55,
+0x01,0x00,0x6d,0x46,0x28,0xaa,0x55,0x03,0x00,0x2d,0x46,0x02,0x00,0x04,0xaa,0x55,
+0x01,0x00,0x2c,0x46,0x01,0xaa,0x55,0x01,0x00,0x34,0x46,0x02,0xaa,0x55,0x01,0x00,
+0x54,0x46,0x01,0xaa,0x55,0x06,0x00,0xa0,0x40,0x1c,0x6a,0xa4,0xd8,0x17,0xe4,0xaa,
+0x55,0x0f,0x00,0xe7,0x44,0x0e,0x42,0x54,0x33,0x2e,0x30,0x20,0x4b,0x65,0x79,0x62,
+0x6f,0x61,0x72,0x64,0xaa,0x55,0x03,0x00,0xe4,0x41,0x0e,0x00,0x01,0xaa,0x55,0x01,
+0x00,0xe8,0x41,0x01,0xaa,0x55,0x01,0x00,0x2c,0x45,0x0a,0xaa,0x55,0x03,0x00,0xaa,
+0x40,0x40,0x25,0x00,0xaa,0x55,0x01,0x00,0x92,0x40,0x43,0xaa,0x55,0x01,0x00,0x5b,
+0x41,0x01,0xaa,0x55,0x08,0x00,0x98,0x40,0xff,0xfb,0x8f,0xfa,0x8b,0x85,0x59,0x83,
+0xaa,0x55,0x01,0x00,0xd1,0x40,0x01,0xaa,0x55,0x0e,0x00,0x49,0x45,0x06,0x03,0x11,
+0x00,0x00,0x01,0x02,0x10,0x24,0x11,0x00,0x12,0x01,0x00,0xaa,0x55,0x01,0x00,0x5f,
+0x45,0x00,0xaa,0x55,0x02,0x00,0x47,0x45,0x83,0x46,0xaa,0x55,0x5a,0x02,0x83,0x46,
+0x04,0x00,0x11,0x01,0x00,0x10,0x02,0x11,0x24,0x00,0x01,0x00,0x00,0x36,0x01,0x9a,
+0x09,0x00,0x00,0x0a,0x00,0x01,0x00,0x00,0x09,0x00,0x01,0x35,0x03,0x19,0x11,0x24,
+0x09,0x00,0x04,0x35,0x0d,0x35,0x06,0x19,0x01,0x00,0x09,0x00,0x11,0x35,0x03,0x19,
+0x00,0x11,0x09,0x00,0x05,0x35,0x03,0x19,0x10,0x02,0x09,0x00,0x06,0x35,0x09,0x09,
+0x65,0x6e,0x09,0x00,0x6a,0x09,0x01,0x00,0x09,0x00,0x09,0x35,0x08,0x35,0x06,0x19,
+0x11,0x24,0x09,0x01,0x00,0x09,0x00,0x0d,0x35,0x0f,0x35,0x0d,0x35,0x06,0x19,0x01,
+0x00,0x09,0x00,0x13,0x35,0x03,0x19,0x00,0x11,0x09,0x01,0x00,0x25,0x3d,0x42,0x72,
+0x6f,0x61,0x64,0x63,0x6f,0x6d,0x20,0x42,0x6c,0x75,0x65,0x74,0x6f,0x6f,0x74,0x68,
+0x20,0x57,0x69,0x72,0x65,0x6c,0x65,0x73,0x73,0x20,0x20,0x4b,0x65,0x79,0x62,0x6f,
 0x61,0x72,0x64,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x20,0x20,0x08,0x00,0x02,0x03,0x28,0x01,0x02,0x09,0x00,0x02,0x01,0x2a,0x02,0xc1,
-0x03,0x0a,0x00,0x02,0x03,0x28,0x01,0x02,0x0b,0x00,0x02,0x04,0x2a,0x08,0x10,0x00,
-0x18,0x00,0x20,0x00,0x2c,0x01,0x0c,0x00,0x02,0x00,0x28,0x02,0x0a,0x18,0x0d,0x00,
-0x02,0x03,0x28,0x01,0x02,0x0e,0x00,0x02,0x29,0x2a,0x06,0x59,0x69,0x43,0x68,0x69,
-0x70,0x0f,0x00,0x02,0x00,0x28,0x10,0x02,0xfb,0x34,0x9b,0x5f,0x80,0x00,0x00,0x80,
-0x00,0x10,0x00,0x00,0x10,0xff,0x00,0x10,0x00,0x02,0x03,0x28,0x01,0x14,0x11,0x00,
-0x10,0xfb,0x34,0x9b,0x5f,0x80,0x00,0x00,0x80,0x00,0x10,0x00,0x00,0x13,0xff,0x00,
-0x01,0x00,0x12,0x00,0x02,0x02,0x29,0x02,0x00,0x00,0x00,0x00,0xaa,0x55,0x01,0x00,
-0x06,0x42,0x17,0xaa,0x55,0x01,0x00,0x93,0x40,0x00,0xaa,0x55,0x01,0x00,0x6d,0x46,
-0x28,0xaa,0x55,0x03,0x00,0x2d,0x46,0x02,0x00,0x04,0xaa,0x55,0x01,0x00,0x2c,0x46,
-0x01,0xaa,0x55,0x01,0x00,0x34,0x46,0x02,0xaa,0x55,0x01,0x00,0x54,0x46,0x01,0xaa,
-0x55,0x06,0x00,0xa0,0x40,0x1c,0x6a,0xa4,0xd8,0x17,0xe4,0xaa,0x55,0x0f,0x00,0xe7,
-0x44,0x0e,0x42,0x54,0x33,0x2e,0x30,0x20,0x4b,0x65,0x79,0x62,0x6f,0x61,0x72,0x64,
-0xaa,0x55,0x03,0x00,0xe4,0x41,0x0e,0x00,0x01,0xaa,0x55,0x01,0x00,0xe8,0x41,0x01,
-0xaa,0x55,0x01,0x00,0x2c,0x45,0x0a,0xaa,0x55,0x03,0x00,0xaa,0x40,0x40,0x25,0x00,
-0xaa,0x55,0x01,0x00,0x92,0x40,0x43,0xaa,0x55,0x01,0x00,0x5b,0x41,0x01,0xaa,0x55,
-0x08,0x00,0x98,0x40,0xff,0xfb,0x8f,0xfa,0x8b,0x85,0x59,0x83,0xaa,0x55,0x01,0x00,
-0xd1,0x40,0x01,0xaa,0x55,0x0e,0x00,0x49,0x45,0x06,0x03,0x11,0x00,0x00,0x01,0x02,
-0x10,0x24,0x11,0x00,0x12,0x01,0x00,0xaa,0x55,0x01,0x00,0x5f,0x45,0x00,0xaa,0x55,
-0x02,0x00,0x47,0x45,0x83,0x46,0xaa,0x55,0x5a,0x02,0x83,0x46,0x04,0x00,0x11,0x01,
-0x00,0x10,0x02,0x11,0x24,0x00,0x01,0x00,0x00,0x36,0x01,0x9a,0x09,0x00,0x00,0x0a,
-0x00,0x01,0x00,0x00,0x09,0x00,0x01,0x35,0x03,0x19,0x11,0x24,0x09,0x00,0x04,0x35,
-0x0d,0x35,0x06,0x19,0x01,0x00,0x09,0x00,0x11,0x35,0x03,0x19,0x00,0x11,0x09,0x00,
-0x05,0x35,0x03,0x19,0x10,0x02,0x09,0x00,0x06,0x35,0x09,0x09,0x65,0x6e,0x09,0x00,
-0x6a,0x09,0x01,0x00,0x09,0x00,0x09,0x35,0x08,0x35,0x06,0x19,0x11,0x24,0x09,0x01,
-0x00,0x09,0x00,0x0d,0x35,0x0f,0x35,0x0d,0x35,0x06,0x19,0x01,0x00,0x09,0x00,0x13,
-0x35,0x03,0x19,0x00,0x11,0x09,0x01,0x00,0x25,0x3d,0x42,0x72,0x6f,0x61,0x64,0x63,
+0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x09,0x01,0x01,0x25,0x08,
+0x4b,0x65,0x79,0x62,0x6f,0x61,0x72,0x64,0x09,0x01,0x02,0x25,0x10,0x42,0x72,0x6f,
+0x61,0x64,0x63,0x6f,0x6d,0x20,0x43,0x6f,0x72,0x70,0x2e,0x20,0x20,0x09,0x02,0x00,
+0x09,0x01,0x00,0x09,0x02,0x01,0x09,0x01,0x11,0x09,0x02,0x02,0x08,0x40,0x09,0x02,
+0x03,0x08,0x21,0x09,0x02,0x04,0x28,0x01,0x09,0x02,0x05,0x28,0x01,0x09,0x02,0x06,
+0x35,0x89,0x35,0x87,0x08,0x22,0x25,0x83,0x05,0x01,0x09,0x06,0xa1,0x01,0x85,0x01,
+0x75,0x01,0x95,0x08,0x05,0x07,0x19,0xe0,0x29,0xe7,0x15,0x00,0x25,0x01,0x81,0x02,
+0x95,0x01,0x75,0x08,0x81,0x03,0x95,0x05,0x75,0x01,0x05,0x08,0x19,0x01,0x29,0x05,
+0x91,0x02,0x95,0x01,0x75,0x03,0x91,0x03,0x95,0x06,0x75,0x08,0x15,0x00,0x25,0xff,
+0x05,0x07,0x19,0x00,0x29,0xff,0x81,0x00,0xc0,0x05,0x0c,0x09,0x01,0xa1,0x01,0x85,
+0x02,0x19,0x00,0x2a,0xff,0x03,0x15,0x00,0x26,0xff,0x03,0x95,0x01,0x75,0x10,0x81,
+0x00,0xc0,0x05,0x01,0x09,0x06,0xa1,0x01,0x85,0x07,0x05,0x07,0x19,0xe0,0x29,0xe7,
+0x15,0x00,0x25,0x01,0x75,0x01,0x95,0x08,0x81,0x00,0x95,0xa8,0x75,0x01,0x15,0x00,
+0x25,0x01,0x05,0x07,0x19,0x00,0x29,0xa8,0x81,0x02,0xc0,0x09,0x02,0x07,0x35,0x08,
+0x35,0x06,0x09,0x04,0x09,0x09,0x01,0x00,0x09,0x02,0x0b,0x09,0x01,0x00,0x09,0x02,
+0x0c,0x09,0x0c,0x80,0x09,0x02,0x0d,0x28,0x00,0x09,0x02,0x0e,0x28,0x01,0x09,0x02,
+0x0f,0x09,0x03,0x18,0x09,0x02,0x10,0x09,0x00,0x00,0x03,0x10,0x02,0x12,0x00,0x00,
+0x01,0x00,0x01,0x00,0x01,0x36,0x00,0xa1,0x09,0x00,0x00,0x0a,0x00,0x01,0x00,0x01,
+0x09,0x00,0x01,0x35,0x03,0x19,0x12,0x00,0x09,0x00,0x04,0x35,0x0d,0x35,0x06,0x19,
+0x01,0x00,0x09,0x00,0x01,0x35,0x03,0x19,0x00,0x01,0x09,0x00,0x06,0x35,0x09,0x09,
+0x65,0x6e,0x09,0x00,0x6a,0x09,0x01,0x00,0x09,0x00,0x09,0x35,0x08,0x35,0x06,0x19,
+0x12,0x00,0x09,0x01,0x00,0x09,0x01,0x00,0x25,0x2f,0x42,0x72,0x6f,0x61,0x64,0x63,
 0x6f,0x6d,0x20,0x42,0x6c,0x75,0x65,0x74,0x6f,0x6f,0x74,0x68,0x20,0x57,0x69,0x72,
-0x65,0x6c,0x65,0x73,0x73,0x20,0x20,0x4b,0x65,0x79,0x62,0x6f,0x61,0x72,0x64,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x09,0x01,0x01,0x25,0x08,0x4b,0x65,0x79,0x62,
-0x6f,0x61,0x72,0x64,0x09,0x01,0x02,0x25,0x10,0x42,0x72,0x6f,0x61,0x64,0x63,0x6f,
-0x6d,0x20,0x43,0x6f,0x72,0x70,0x2e,0x20,0x20,0x09,0x02,0x00,0x09,0x01,0x00,0x09,
-0x02,0x01,0x09,0x01,0x11,0x09,0x02,0x02,0x08,0x40,0x09,0x02,0x03,0x08,0x21,0x09,
-0x02,0x04,0x28,0x01,0x09,0x02,0x05,0x28,0x01,0x09,0x02,0x06,0x35,0x89,0x35,0x87,
-0x08,0x22,0x25,0x83,0x05,0x01,0x09,0x06,0xa1,0x01,0x85,0x01,0x75,0x01,0x95,0x08,
-0x05,0x07,0x19,0xe0,0x29,0xe7,0x15,0x00,0x25,0x01,0x81,0x02,0x95,0x01,0x75,0x08,
-0x81,0x03,0x95,0x05,0x75,0x01,0x05,0x08,0x19,0x01,0x29,0x05,0x91,0x02,0x95,0x01,
-0x75,0x03,0x91,0x03,0x95,0x06,0x75,0x08,0x15,0x00,0x25,0xff,0x05,0x07,0x19,0x00,
-0x29,0xff,0x81,0x00,0xc0,0x05,0x0c,0x09,0x01,0xa1,0x01,0x85,0x02,0x19,0x00,0x2a,
-0xff,0x03,0x15,0x00,0x26,0xff,0x03,0x95,0x01,0x75,0x10,0x81,0x00,0xc0,0x05,0x01,
-0x09,0x06,0xa1,0x01,0x85,0x07,0x05,0x07,0x19,0xe0,0x29,0xe7,0x15,0x00,0x25,0x01,
-0x75,0x01,0x95,0x08,0x81,0x00,0x95,0xa8,0x75,0x01,0x15,0x00,0x25,0x01,0x05,0x07,
-0x19,0x00,0x29,0xa8,0x81,0x02,0xc0,0x09,0x02,0x07,0x35,0x08,0x35,0x06,0x09,0x04,
-0x09,0x09,0x01,0x00,0x09,0x02,0x0b,0x09,0x01,0x00,0x09,0x02,0x0c,0x09,0x0c,0x80,
-0x09,0x02,0x0d,0x28,0x00,0x09,0x02,0x0e,0x28,0x01,0x09,0x02,0x0f,0x09,0x03,0x18,
-0x09,0x02,0x10,0x09,0x00,0x00,0x03,0x10,0x02,0x12,0x00,0x00,0x01,0x00,0x01,0x00,
-0x01,0x36,0x00,0xa1,0x09,0x00,0x00,0x0a,0x00,0x01,0x00,0x01,0x09,0x00,0x01,0x35,
-0x03,0x19,0x12,0x00,0x09,0x00,0x04,0x35,0x0d,0x35,0x06,0x19,0x01,0x00,0x09,0x00,
-0x01,0x35,0x03,0x19,0x00,0x01,0x09,0x00,0x06,0x35,0x09,0x09,0x65,0x6e,0x09,0x00,
-0x6a,0x09,0x01,0x00,0x09,0x00,0x09,0x35,0x08,0x35,0x06,0x19,0x12,0x00,0x09,0x01,
-0x00,0x09,0x01,0x00,0x25,0x2f,0x42,0x72,0x6f,0x61,0x64,0x63,0x6f,0x6d,0x20,0x42,
-0x6c,0x75,0x65,0x74,0x6f,0x6f,0x74,0x68,0x20,0x57,0x69,0x72,0x65,0x6c,0x65,0x73,
-0x73,0x20,0x4b,0x65,0x79,0x62,0x6f,0x61,0x72,0x64,0x20,0x50,0x6e,0x50,0x20,0x53,
-0x65,0x72,0x76,0x65,0x72,0x09,0x01,0x01,0x25,0x08,0x4b,0x65,0x79,0x62,0x6f,0x61,
-0x72,0x64,0x09,0x02,0x00,0x09,0x01,0x03,0x09,0x02,0x01,0x09,0x04,0xe8,0x09,0x02,
-0x02,0x09,0x70,0x21,0x09,0x02,0x03,0x09,0x00,0x01,0x09,0x02,0x04,0x28,0x01,0x09,
-0x02,0x05,0x09,0x00,0x02,0x00,0xaa,0x55,0x01,0x00,0x92,0x40,0x0a,0xaa,0x55,0x03,
-0x00,0x14,0x42,0xc5,0x4a,0x05,0xaa,0x55,0x10,0x00,0xf0,0x4f,0x00,0x1c,0xff,0x1f,
-0x00,0x1c,0x00,0x1c,0x80,0x4c,0xe0,0x4f,0x80,0x4c,0x80,0x4c,0xaa,0x55,0x02,0x00,
-0x68,0x46,0x20,0x11,0xaa,0x55,0x01,0x00,0x6c,0x46,0x03,0xaa,0x55,0x01,0x00,0x6f,
-0x46,0x07,0xaa,0x55,0x01,0x00,0x79,0x46,0x00,0xaa,0x55,0x01,0x00,0x91,0x40,0x00,
-0xaa,0x55,0x03,0x00,0x54,0x41,0x00,0x01,0x08,0xaa,0x55,0x01,0x00,0x74,0x41,0x02,
-0xaa,0x55,0x02,0x00,0xe4,0x41,0x0e,0x00,0xaa,0x55,0x10,0x00,0xb9,0x4b,0xfc,0x54,
-0xcc,0xbb,0x96,0x8d,0x84,0x83,0x70,0x39,0xeb,0x2e,0x66,0xe9,0x60,0x4e,0xaa,0x55,
-0x06,0x00,0xd1,0x41,0x59,0x3a,0x98,0xe9,0xb6,0x98,0xaa,0x55,0x04,0x00,0xca,0x4b,
-0x05,0x2e,0x67,0xdd,0xaa,0x55,0x10,0x00,0xbf,0x41,0xf0,0xc0,0x93,0xe2,0x91,0xfa,
-0x78,0x23,0xd0,0x48,0x17,0x4c,0x5d,0x13,0xeb,0x23,0xaa,0x55,0x01,0x00,0xdf,0x41,
-0x02,0xaa,0x55,0x07,0x00,0x76,0x41,0x0f,0x84,0xf0,0x0a,0x0b,0xb2,0x32,0xaa,0x55,
-0x02,0x00,0x57,0x41,0x8b,0x0b,0xaa,0x55,0x08,0x00,0xa1,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0xaa,0x55,0x02,0x00,0xbd,0x40,0x02,0x24,0xaa,0x55,0x08,0x00,
-0xad,0x40,0x03,0x00,0x10,0x00,0x03,0x00,0x30,0x00,0xaa,0x55,0x02,0x00,0xbb,0x40,
-0x20,0x00,0xaa,0x55,0x04,0x00,0xb7,0x40,0x20,0x00,0x00,0x20,0xaa,0x55,0x04,0x00,
-0xbf,0x40,0x80,0x04,0x00,0x10,0xaa,0x55,0x05,0x00,0xe2,0x44,0x08,0x0e,0x05,0x04,
-0x00,0xaa,0x55,0x02,0x00,0x02,0x42,0x30,0x1f,0xaa,0x55,0x01,0x00,0x10,0x42,0x20,
-0xaa,0x55,0x01,0x00,0xe0,0x41,0x01,0xaa,0x55,0x0f,0x00,0x6f,0x4b,0x4b,0xba,0x55,
-0xd0,0x56,0xe0,0x57,0x88,0x58,0x6c,0x59,0x10,0x07,0xff,0xff,0xaa,0x55,0x02,0x00,
-0xc3,0x40,0x6f,0x4b,0x55,0xaa,0xaa,0x55,0x46,0x44,0xc6,0xcb
+0x65,0x6c,0x65,0x73,0x73,0x20,0x4b,0x65,0x79,0x62,0x6f,0x61,0x72,0x64,0x20,0x50,
+0x6e,0x50,0x20,0x53,0x65,0x72,0x76,0x65,0x72,0x09,0x01,0x01,0x25,0x08,0x4b,0x65,
+0x79,0x62,0x6f,0x61,0x72,0x64,0x09,0x02,0x00,0x09,0x01,0x03,0x09,0x02,0x01,0x09,
+0x04,0xe8,0x09,0x02,0x02,0x09,0x70,0x21,0x09,0x02,0x03,0x09,0x00,0x01,0x09,0x02,
+0x04,0x28,0x01,0x09,0x02,0x05,0x09,0x00,0x02,0x00,0xaa,0x55,0x01,0x00,0x92,0x40,
+0x0a,0xaa,0x55,0x03,0x00,0x14,0x42,0xc5,0x4a,0x05,0xaa,0x55,0x10,0x00,0xf0,0x4f,
+0x00,0x1c,0xff,0x1f,0x00,0x1c,0x00,0x1c,0x80,0x4c,0xe0,0x4f,0x80,0x4c,0x80,0x4c,
+0xaa,0x55,0x02,0x00,0x68,0x46,0x20,0x11,0xaa,0x55,0x01,0x00,0x6c,0x46,0x03,0xaa,
+0x55,0x01,0x00,0x6f,0x46,0x07,0xaa,0x55,0x01,0x00,0x79,0x46,0x00,0xaa,0x55,0x01,
+0x00,0x91,0x40,0x00,0xaa,0x55,0x03,0x00,0x54,0x41,0x00,0x01,0x08,0xaa,0x55,0x01,
+0x00,0x74,0x41,0x02,0xaa,0x55,0x02,0x00,0xe4,0x41,0x0e,0x00,0xaa,0x55,0x10,0x00,
+0xb9,0x4b,0xfc,0x54,0xcc,0xbb,0x96,0x8d,0x84,0x83,0x70,0x39,0xeb,0x2e,0x66,0xe9,
+0x60,0x4e,0xaa,0x55,0x06,0x00,0xd1,0x41,0x59,0x3a,0x98,0xe9,0xb6,0x98,0xaa,0x55,
+0x04,0x00,0xca,0x4b,0x05,0x2e,0x67,0xdd,0xaa,0x55,0x10,0x00,0xbf,0x41,0xf0,0xc0,
+0x93,0xe2,0x91,0xfa,0x78,0x23,0xd0,0x48,0x17,0x4c,0x5d,0x13,0xeb,0x23,0xaa,0x55,
+0x01,0x00,0xdf,0x41,0x02,0xaa,0x55,0x07,0x00,0x76,0x41,0x0f,0x84,0xf0,0x0a,0x0b,
+0xb2,0x32,0xaa,0x55,0x02,0x00,0x57,0x41,0x8b,0x0b,0xaa,0x55,0x08,0x00,0xa1,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xaa,0x55,0x02,0x00,0xbd,0x40,0x02,0x24,
+0xaa,0x55,0x08,0x00,0xad,0x40,0x03,0x00,0x10,0x00,0x03,0x00,0x30,0x00,0xaa,0x55,
+0x02,0x00,0xbb,0x40,0x20,0x00,0xaa,0x55,0x04,0x00,0xb7,0x40,0x20,0x00,0x00,0x20,
+0xaa,0x55,0x04,0x00,0xbf,0x40,0x80,0x04,0x00,0x10,0xaa,0x55,0x05,0x00,0xe2,0x44,
+0x08,0x0e,0x05,0x04,0x00,0xaa,0x55,0x02,0x00,0x02,0x42,0x30,0x1f,0xaa,0x55,0x01,
+0x00,0x10,0x42,0x20,0xaa,0x55,0x01,0x00,0xe0,0x41,0x01,0xaa,0x55,0x0f,0x00,0x6f,
+0x4b,0x4b,0xba,0x55,0xd0,0x56,0xe0,0x57,0x88,0x58,0x6c,0x59,0x10,0x07,0xff,0xff,
+0xaa,0x55,0x02,0x00,0xc3,0x40,0x6f,0x4b,0x55,0xaa,0xaa,0x55,0x46,0x44,0x1e,0x7e
 };
Index: patch/patch.prog
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/BT_code_patch/shoubing/patch/patch.prog	(revision 944)
+++ /YC3121_demo/ModuleDemo/BlueTooth/BT_code_patch/shoubing/patch/patch.prog	(working copy)
@@ -961,6 +961,7 @@
 p_parse_lmp:
 	fetch 1,mem_lmi_opcode2
  	beq LMP_ENCRYPTION_KEY_SIZE_REQ,p_parse_lmp_crypt_key
+	beq LMP_ENCAPSULATED_HEADER,p_parse_lmp_encapsulated_header
 	beq LMP_SNIFF_REQ, p_parse_lmp_sniff_req
 //	beq LMP_QUALITY_OF_SERVICE_REQ,parse_lmp_quality_of_service_req
  	branch parse_lmp + 21
@@ -975,6 +976,11 @@
 	branch uartd_send 	
 	*/
 
+p_parse_lmp_encapsulated_header:
+	setarg 0
+	store 4,mem_sp_flag_start
+	branch parse_lmp_encapsulated_header
+
 parse_lmp_quality_of_service_req: 
  	jam LMP_QUALITY_OF_SERVICE_REQ,mem_lmi_opcode2  
  	jam LMP_ACCEPTED,mem_lmo_opcode2  
@@ -2209,16 +2215,18 @@
 	beq hid_type_data,p_hid_rx_process_data
 	beq HID_TYPE_SET_REPORT,p_hid_rx_process_set_report
 	beq HID_TYPE_CONTROL,p_hid_rx_process_hid_control
-	beq HID_TYPE_GET_REPORT,hid_rx_process_handshake
+	beq HID_TYPE_GET_REPORT,p_hid_get_report
+	beq HID_TYPE_RESERVED,p_hid_reserved
 	rtn
 
 p_hid_rx_process_data:
 	
 	branch p_hid_rx_process_out_data
-	ifetch 2,contr
-	store 2,mem_pdatatemp
-	beq HID_REPORT_ID_KB,p_hid_rx_process_data_hid_kb	
-	rtn
+//	ifetch 2,contr
+//	store 2,mem_pdatatemp
+//	beq HID_REPORT_ID_KB,p_hid_rx_process_data_hid_kb	
+//	rtn
+	
 p_hid_rx_process_out_data:
 
 	jam HCI_EVENT_RECEIVE_BT_HID_DATA,mem_module_uart_opcode
@@ -2233,6 +2241,38 @@
 	call uart_copy_tx_bytes_fast
 	branch uartd_send
 
+
+p_hid_get_report:
+	copy temp,pdata
+	beq HID_REPORT_INPUT,hid_rx_process_handshake
+	beq HID_REPORT_OUTPUT,p_hid_get_report_output
+	branch p_hid_invalid_parameter	
+
+p_hid_get_report_output:
+	ifetch 1,contr
+	beq 0xff,p_hid_invalid_report_id
+	branch hid_rx_process_handshake
+	
+p_hid_reserved:
+	branch p_hid_unsupported_req
+	
+p_hid_invalid_parameter:
+	arg HANDSHAKE_ERR_INVALID_PARAMETER,debug
+	branch p_hid_handshake
+p_hid_invalid_report_id:
+	arg HANDSHAKE_ERR_INVALID_REPORT_ID,debug
+	branch p_hid_handshake
+p_hid_unsupported_req:
+	arg HANDSHAKE_ERR_UNSUPPORTED_REQUEST,debug
+
+p_hid_handshake:
+	arg 1,regA//payload length
+	call hid_malloc_tx_buff
+	fetch 2,mem_hid_ctrl_remote_cid
+	istore 2,contw	
+	deposit debug
+	istore 1,contw
+	rtn
 	
 p_hid_rx_process_data_hid_kb:
 	jam HCI_EVENT_RECEIVE_BT_HID_DATA,mem_module_uart_opcode
Index: program_patch/keyboard_bt_spec_code/patch_bt_hid.prog
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/BT_code_patch/shoubing/program_patch/keyboard_bt_spec_code/patch_bt_hid.prog	(revision 936)
+++ /YC3121_demo/ModuleDemo/BlueTooth/BT_code_patch/shoubing/program_patch/keyboard_bt_spec_code/patch_bt_hid.prog	(working copy)
@@ -13,16 +13,18 @@
 	beq hid_type_data,p_hid_rx_process_data
 	beq HID_TYPE_SET_REPORT,p_hid_rx_process_set_report
 	beq HID_TYPE_CONTROL,p_hid_rx_process_hid_control
-	beq HID_TYPE_GET_REPORT,hid_rx_process_handshake
+	beq HID_TYPE_GET_REPORT,p_hid_get_report
+	beq HID_TYPE_RESERVED,p_hid_reserved
 	rtn
 
 p_hid_rx_process_data:
 	
 	branch p_hid_rx_process_out_data
-	ifetch 2,contr
-	store 2,mem_pdatatemp
-	beq HID_REPORT_ID_KB,p_hid_rx_process_data_hid_kb	
-	rtn
+//	ifetch 2,contr
+//	store 2,mem_pdatatemp
+//	beq HID_REPORT_ID_KB,p_hid_rx_process_data_hid_kb	
+//	rtn
+	
 p_hid_rx_process_out_data:
 
 	jam HCI_EVENT_RECEIVE_BT_HID_DATA,mem_module_uart_opcode
@@ -37,6 +39,38 @@
 	call uart_copy_tx_bytes_fast
 	branch uartd_send
 
+
+p_hid_get_report:
+	copy temp,pdata
+	beq HID_REPORT_INPUT,hid_rx_process_handshake
+	beq HID_REPORT_OUTPUT,p_hid_get_report_output
+	branch p_hid_invalid_parameter	
+
+p_hid_get_report_output:
+	ifetch 1,contr
+	beq 0xff,p_hid_invalid_report_id
+	branch hid_rx_process_handshake
+	
+p_hid_reserved:
+	branch p_hid_unsupported_req
+	
+p_hid_invalid_parameter:
+	arg HANDSHAKE_ERR_INVALID_PARAMETER,debug
+	branch p_hid_handshake
+p_hid_invalid_report_id:
+	arg HANDSHAKE_ERR_INVALID_REPORT_ID,debug
+	branch p_hid_handshake
+p_hid_unsupported_req:
+	arg HANDSHAKE_ERR_UNSUPPORTED_REQUEST,debug
+
+p_hid_handshake:
+	arg 1,regA//payload length
+	call hid_malloc_tx_buff
+	fetch 2,mem_hid_ctrl_remote_cid
+	istore 2,contw	
+	deposit debug
+	istore 1,contw
+	rtn
 	
 p_hid_rx_process_data_hid_kb:
 	jam HCI_EVENT_RECEIVE_BT_HID_DATA,mem_module_uart_opcode
Index: program_patch/main_patch.prog
===================================================================
--- /YC3121_demo/ModuleDemo/BlueTooth/BT_code_patch/shoubing/program_patch/main_patch.prog	(revision 944)
+++ /YC3121_demo/ModuleDemo/BlueTooth/BT_code_patch/shoubing/program_patch/main_patch.prog	(working copy)
@@ -961,6 +961,7 @@
 p_parse_lmp:
 	fetch 1,mem_lmi_opcode2
  	beq LMP_ENCRYPTION_KEY_SIZE_REQ,p_parse_lmp_crypt_key
+	beq LMP_ENCAPSULATED_HEADER,p_parse_lmp_encapsulated_header
 	beq LMP_SNIFF_REQ, p_parse_lmp_sniff_req
 //	beq LMP_QUALITY_OF_SERVICE_REQ,parse_lmp_quality_of_service_req
  	branch parse_lmp + 21
@@ -975,6 +976,11 @@
 	branch uartd_send 	
 	*/
 
+p_parse_lmp_encapsulated_header:
+	setarg 0
+	store 4,mem_sp_flag_start
+	branch parse_lmp_encapsulated_header
+
 parse_lmp_quality_of_service_req: 
  	jam LMP_QUALITY_OF_SERVICE_REQ,mem_lmi_opcode2  
  	jam LMP_ACCEPTED,mem_lmo_opcode2  
