Monitoring USB traffic between AKAIs MPK PLAY software (favorite editor) and MPK play mini.
I used the software Wireshark for monitoring.
The interface between my macbook and USB device is named XHC20.
It has to be started via terminal
“sudo ifconfig xhc20 UP”
I sent a total of 4 messages to monitor
Message 1 = Reference
Message 2 = Difference A
Message 3 = Difference B
Message 4 = Difference A+B
Below are the messages formatted in C arrays
Message 1
Transpose: 0
External clock: OFF
/* Frame (32 bytes) */ static const unsigned char pkt65[32] = { 0x00, 0x01, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xc3, 0xa3, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02 /* ........ */ }; /* Frame (64 bytes) */ static const unsigned char pkt66[64] = { 0x00, 0x01, 0x20, 0x01, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xc3, 0xa3, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02, /* ........ */ 0x04, 0xf0, 0x47, 0x7f, 0x04, 0x44, 0x64, 0x00, /* ..G..Dd. */ 0x04, 0x63, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, /* .c...... */ 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, /* ........ */ 0x04, 0x00, 0x78, 0x00, 0x04, 0x00, 0x00, 0x00 /* ..x..... */ }; /* Frame (32 bytes) */ static const unsigned char pkt67[32] = { 0x00, 0x01, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xc5, 0xa3, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02 /* ........ */ }; /* Frame (64 bytes) */ static const unsigned char pkt68[64] = { 0x00, 0x01, 0x20, 0x01, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xc5, 0xa3, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02, /* ........ */ 0x04, 0x01, 0x10, 0x00, 0x04, 0x10, 0x11, 0x12, /* ........ */ 0x04, 0x13, 0x14, 0x15, 0x04, 0x16, 0x1f, 0x20, /* ....... */ 0x04, 0x21, 0x22, 0x23, 0x04, 0x24, 0x25, 0x26, /* .!"#.$%& */ 0x04, 0x27, 0x30, 0x00, 0x04, 0x7f, 0x31, 0x00 /* .'0...1. */ }; /* Frame (32 bytes) */ static const unsigned char pkt69[32] = { 0x00, 0x01, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xc7, 0xa3, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02 /* ........ */ }; /* Frame (64 bytes) */ static const unsigned char pkt70[64] = { 0x00, 0x01, 0x20, 0x01, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xc7, 0xa3, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02, /* ........ */ 0x04, 0x7f, 0x32, 0x00, 0x04, 0x7f, 0x33, 0x00, /* ..2...3. */ 0x04, 0x7f, 0x40, 0x00, 0x04, 0x7f, 0x41, 0x00, /* ..@...A. */ 0x04, 0x7f, 0x42, 0x00, 0x04, 0x7f, 0x43, 0x00, /* ..B...C. */ 0x04, 0x7f, 0x0c, 0x00, 0x04, 0x00, 0x43, 0x00 /* ......C. */ }; /* Frame (32 bytes) */ static const unsigned char pkt71[32] = { 0x00, 0x01, 0x20, 0x00, 0x0c, 0x00, 0x00, 0x00, /* .. ..... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xc9, 0xa3, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02 /* ........ */ }; /* Frame (44 bytes) */ static const unsigned char pkt72[44] = { 0x00, 0x01, 0x20, 0x01, 0x0c, 0x00, 0x00, 0x00, /* .. ..... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xc9, 0xa3, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02, /* ........ */ 0x04, 0x23, 0x00, 0x00, 0x04, 0x38, 0x40, 0x40, /* .#...8@@ */ 0x05, 0xf7, 0x00, 0x00 /* .... */ };
Message 2
Transpose: +1
External clock: OFF
/* Frame (32 bytes) */ static const unsigned char pkt77[32] = { 0x00, 0x01, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xd3, 0xaa, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02 /* ........ */ }; /* Frame (64 bytes) */ static const unsigned char pkt78[64] = { 0x00, 0x01, 0x20, 0x01, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xd3, 0xaa, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02, /* ........ */ 0x04, 0xf0, 0x47, 0x7f, 0x04, 0x44, 0x64, 0x00, /* ..G..Dd. */ 0x04, 0x63, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, /* .c...... */ 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, /* ........ */ 0x04, 0x00, 0x78, 0x00, 0x04, 0x00, 0x00, 0x00 /* ..x..... */ }; /* Frame (32 bytes) */ static const unsigned char pkt79[32] = { 0x00, 0x01, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xd5, 0xaa, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02 /* ........ */ }; /* Frame (64 bytes) */ static const unsigned char pkt80[64] = { 0x00, 0x01, 0x20, 0x01, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xd5, 0xaa, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02, /* ........ */ 0x04, 0x01, 0x10, 0x00, 0x04, 0x10, 0x11, 0x12, /* ........ */ 0x04, 0x13, 0x14, 0x15, 0x04, 0x16, 0x1f, 0x20, /* ....... */ 0x04, 0x21, 0x22, 0x23, 0x04, 0x24, 0x25, 0x26, /* .!"#.$%& */ 0x04, 0x27, 0x30, 0x00, 0x04, 0x7f, 0x31, 0x00 /* .'0...1. */ }; /* Frame (32 bytes) */ static const unsigned char pkt81[32] = { 0x00, 0x01, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xd7, 0xaa, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02 /* ........ */ }; /* Frame (64 bytes) */ static const unsigned char pkt82[64] = { 0x00, 0x01, 0x20, 0x01, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xd7, 0xaa, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02, /* ........ */ 0x04, 0x7f, 0x32, 0x00, 0x04, 0x7f, 0x33, 0x00, /* ..2...3. */ 0x04, 0x7f, 0x40, 0x00, 0x04, 0x7f, 0x41, 0x00, /* ..@...A. */ 0x04, 0x7f, 0x42, 0x00, 0x04, 0x7f, 0x43, 0x00, /* ..B...C. */ 0x04, 0x7f, 0x0d, 0x00, 0x04, 0x00, 0x43, 0x00 /* ......C. */ }; /* Frame (32 bytes) */ static const unsigned char pkt83[32] = { 0x00, 0x01, 0x20, 0x00, 0x0c, 0x00, 0x00, 0x00, /* .. ..... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xd9, 0xaa, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02 /* ........ */ }; /* Frame (44 bytes) */ static const unsigned char pkt84[44] = { 0x00, 0x01, 0x20, 0x01, 0x0c, 0x00, 0x00, 0x00, /* .. ..... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xd9, 0xaa, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02, /* ........ */ 0x04, 0x23, 0x00, 0x00, 0x04, 0x38, 0x40, 0x40, /* .#...8@@ */ 0x05, 0xf7, 0x00, 0x00 /* .... */ };
Message 3
Transpose: 0
External clock: ON
/* Frame (32 bytes) */ static const unsigned char pkt629[32] = { 0x00, 0x01, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xe1, 0xaf, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02 /* ........ */ }; /* Frame (64 bytes) */ static const unsigned char pkt630[64] = { 0x00, 0x01, 0x20, 0x01, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xe1, 0xaf, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02, /* ........ */ 0x04, 0xf0, 0x47, 0x7f, 0x04, 0x44, 0x64, 0x00, /* ..G..Dd. */ 0x04, 0x63, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, /* .c...... */ 0x04, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x03, /* ........ */ 0x04, 0x00, 0x78, 0x00, 0x04, 0x00, 0x00, 0x00 /* ..x..... */ }; /* Frame (32 bytes) */ static const unsigned char pkt631[32] = { 0x00, 0x01, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xe3, 0xaf, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02 /* ........ */ }; /* Frame (64 bytes) */ static const unsigned char pkt632[64] = { 0x00, 0x01, 0x20, 0x01, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xe3, 0xaf, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02, /* ........ */ 0x04, 0x01, 0x10, 0x00, 0x04, 0x10, 0x11, 0x12, /* ........ */ 0x04, 0x13, 0x14, 0x15, 0x04, 0x16, 0x1f, 0x20, /* ....... */ 0x04, 0x21, 0x22, 0x23, 0x04, 0x24, 0x25, 0x26, /* .!"#.$%& */ 0x04, 0x27, 0x30, 0x00, 0x04, 0x7f, 0x31, 0x00 /* .'0...1. */ }; /* Frame (32 bytes) */ static const unsigned char pkt633[32] = { 0x00, 0x01, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xe5, 0xaf, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02 /* ........ */ }; /* Frame (64 bytes) */ static const unsigned char pkt634[64] = { 0x00, 0x01, 0x20, 0x01, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xe5, 0xaf, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02, /* ........ */ 0x04, 0x7f, 0x32, 0x00, 0x04, 0x7f, 0x33, 0x00, /* ..2...3. */ 0x04, 0x7f, 0x40, 0x00, 0x04, 0x7f, 0x41, 0x00, /* ..@...A. */ 0x04, 0x7f, 0x42, 0x00, 0x04, 0x7f, 0x43, 0x00, /* ..B...C. */ 0x04, 0x7f, 0x0c, 0x00, 0x04, 0x00, 0x43, 0x00 /* ......C. */ }; /* Frame (32 bytes) */ static const unsigned char pkt635[32] = { 0x00, 0x01, 0x20, 0x00, 0x0c, 0x00, 0x00, 0x00, /* .. ..... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xe7, 0xaf, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02 /* ........ */ }; /* Frame (44 bytes) */ static const unsigned char pkt636[44] = { 0x00, 0x01, 0x20, 0x01, 0x0c, 0x00, 0x00, 0x00, /* .. ..... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xe7, 0xaf, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02, /* ........ */ 0x04, 0x23, 0x00, 0x00, 0x04, 0x38, 0x40, 0x40, /* .#...8@@ */ 0x05, 0xf7, 0x00, 0x00 /* .... */ };
Message 4
Transpose: +1
External clock: ON
/* Frame (32 bytes) */ static const unsigned char pkt355[32] = { 0x00, 0x01, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xed, 0xb2, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02 /* ........ */ }; /* Frame (64 bytes) */ static const unsigned char pkt356[64] = { 0x00, 0x01, 0x20, 0x01, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xed, 0xb2, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02, /* ........ */ 0x04, 0xf0, 0x47, 0x7f, 0x04, 0x44, 0x64, 0x00, /* ..G..Dd. */ 0x04, 0x63, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, /* .c...... */ 0x04, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x03, /* ........ */ 0x04, 0x00, 0x78, 0x00, 0x04, 0x00, 0x00, 0x00 /* ..x..... */ }; /* Frame (32 bytes) */ static const unsigned char pkt357[32] = { 0x00, 0x01, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xef, 0xb2, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02 /* ........ */ }; /* Frame (64 bytes) */ static const unsigned char pkt358[64] = { 0x00, 0x01, 0x20, 0x01, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xef, 0xb2, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02, /* ........ */ 0x04, 0x01, 0x10, 0x00, 0x04, 0x10, 0x11, 0x12, /* ........ */ 0x04, 0x13, 0x14, 0x15, 0x04, 0x16, 0x1f, 0x20, /* ....... */ 0x04, 0x21, 0x22, 0x23, 0x04, 0x24, 0x25, 0x26, /* .!"#.$%& */ 0x04, 0x27, 0x30, 0x00, 0x04, 0x7f, 0x31, 0x00 /* .'0...1. */ }; /* Frame (32 bytes) */ static const unsigned char pkt359[32] = { 0x00, 0x01, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xf1, 0xb2, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02 /* ........ */ }; /* Frame (64 bytes) */ static const unsigned char pkt360[64] = { 0x00, 0x01, 0x20, 0x01, 0x20, 0x00, 0x00, 0x00, /* .. . ... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xf1, 0xb2, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02, /* ........ */ 0x04, 0x7f, 0x32, 0x00, 0x04, 0x7f, 0x33, 0x00, /* ..2...3. */ 0x04, 0x7f, 0x40, 0x00, 0x04, 0x7f, 0x41, 0x00, /* ..@...A. */ 0x04, 0x7f, 0x42, 0x00, 0x04, 0x7f, 0x43, 0x00, /* ..B...C. */ 0x04, 0x7f, 0x0d, 0x00, 0x04, 0x00, 0x43, 0x00 /* ......C. */ }; /* Frame (32 bytes) */ static const unsigned char pkt361[32] = { 0x00, 0x01, 0x20, 0x00, 0x0c, 0x00, 0x00, 0x00, /* .. ..... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xf3, 0xb2, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02 /* ........ */ }; /* Frame (44 bytes) */ static const unsigned char pkt362[44] = { 0x00, 0x01, 0x20, 0x01, 0x0c, 0x00, 0x00, 0x00, /* .. ..... */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */ 0xf3, 0xb2, 0x7d, 0x01, 0x00, 0x00, 0x00, 0x00, /* ..}..... */ 0x00, 0x00, 0x10, 0x14, 0x01, 0x19, 0x02, 0x02, /* ........ */ 0x04, 0x23, 0x00, 0x00, 0x04, 0x38, 0x40, 0x40, /* .#...8@@ */ 0x05, 0xf7, 0x00, 0x00 /* .... */ };