1/*	$NetBSD: kue_fw.h,v 1.4 2010/08/16 09:44:01 tsutsui Exp $	*/
2/*
3 * Copyright (c) 1997, 1998, 1999, 2000
4 *	Bill Paul <wpaul@ee.columbia.edu>.  All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 *    notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 *    notice, this list of conditions and the following disclaimer in the
13 *    documentation and/or other materials provided with the distribution.
14 * 3. All advertising materials mentioning features or use of this software
15 *    must display the following acknowledgement:
16 *	This product includes software developed by Bill Paul.
17 * 4. Neither the name of the author nor the names of any co-contributors
18 *    may be used to endorse or promote products derived from this software
19 *    without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED.  IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD
25 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
31 * THE POSSIBILITY OF SUCH DAMAGE.
32 *
33 * $FreeBSD: src/sys/dev/usb/kue_fw.h,v 1.1 2000/01/05 04:27:07 wpaul Exp $
34 */
35
36/*
37 * This file contains the firmware needed to make the KLSI chip work,
38 * along with a few constants related to the QT Engine microcontroller
39 * embedded in the KLSI part.
40 *
41 * Firmware is loaded using the vendor-specific 'send scan data'
42 * command (0xFF). The basic operation is that we must load the
43 * firmware, then issue some trigger commands to fix it up and start
44 * it running. There are three transfers: load the binary code,
45 * load the 'fixup' (data segment?), then issue a command to
46 * start the code firmware running. The data itself is prefixed by
47 * a 16-bit signature word, a 16-bit length value, a type byte
48 * and an interrupt (command) byte. The code segment is of type
49 * 0x02 (replacement interrupt vector data) and the fixup segment
50 * is of type 0x03 (replacement interrupt fixup data). The interrupt
51 * code is 0x64 (load new code). The length word is the total length
52 * of the segment minus 7. I precomputed the values and stuck them
53 * into the appropriate locations within the segments to save some
54 * work in the driver.
55 */
56
57/* QT controller data block types. */
58/* Write data into specific memory location. */
59#define KUE_QTBTYPE_WRITE_DATA		0x00
60/* Write data into interrupt vector location */
61#define KUE_QTBTYPE_WRITE_INTVEC	0x01
62/* Replace interrupt vector with this data */
63#define KUE_QTBTYPE_REPL_INTVEC		0x02
64/* Fixup interrupt vector code with this data */
65#define KUE_QTBTYPE_FIXUP_INTVEC	0x03
66/* Force jump to location */
67#define KUE_QTBTYPE_JUMP		0x04
68/* Force call to location */
69#define KUE_QTBTYPE_CALL		0x05
70/* Force interrupt call */
71#define KUE_QTBTYPE_CALLINTR		0x06
72/*
73 * Cause data to be written using the specified QT engine
74 * interrupt, from starting location in memory for a specified
75 * number of bytes.
76 */
77#define KUE_QTBTYPE_WRITE_WITH_INTR	0x07
78/* Cause data from stream to be written using specified QT interrupt. */
79#define KUE_QTBTYPE_WRITE_STR_WITH_INTR 0x08
80/* Cause data to be written to config locations. */
81/* Addresses assume 0xc000 offset. */
82#define KUE_QTBTYPE_WRITE_CONFIG	0x09
83
84#define KUE_QTINTR_LOAD_CODE		0x64
85#define KUE_QTINTR_TRIGGER_CODE		0x3B
86#define KUE_QTINTR_LOAD_CODE_HIGH	0x9C
87
88/* Firmware code segment */
89static const uint8_t kue_code_seg[] =
90{
91    /******************************************/
92    /* NOTE: B6/C3 is data header signature   */
93    /*	     0xAA/0xBB is data length = total */
94    /*	     bytes - 7, 0xCC is type, 0xDD is */
95    /*	     interrupt to use.		      */
96    /******************************************/
97    0xB6, 0xC3, 0xf7, 0x0e, 0x02, 0x64,
98    0x9f, 0xcf, 0xbc, 0x08, 0xe7, 0x57, 0x00, 0x00,
99    0x9a, 0x08, 0x97, 0xc1, 0xe7, 0x67, 0xff, 0x1f,
100    0x28, 0xc0, 0xe7, 0x87, 0x00, 0x04, 0x24, 0xc0,
101    0xe7, 0x67, 0xff, 0xf9, 0x22, 0xc0, 0x97, 0xcf,
102    0xe7, 0x09, 0xa2, 0xc0, 0x94, 0x08, 0xd7, 0x09,
103    0x00, 0xc0, 0xe7, 0x59, 0xba, 0x08, 0x94, 0x08,
104    0x03, 0xc1, 0xe7, 0x67, 0xff, 0xf7, 0x24, 0xc0,
105    0xe7, 0x05, 0x00, 0xc0, 0xa7, 0xcf, 0x92, 0x08,
106    0xe7, 0x57, 0x00, 0x00, 0x8e, 0x08, 0xa7, 0xa1,
107    0x8e, 0x08, 0x97, 0xcf, 0xe7, 0x57, 0x00, 0x00,
108    0xf2, 0x09, 0x0a, 0xc0, 0xe7, 0x57, 0x00, 0x00,
109    0xa4, 0xc0, 0xa7, 0xc0, 0x56, 0x08, 0x9f, 0xaf,
110    0x70, 0x09, 0xe7, 0x07, 0x00, 0x00, 0xf2, 0x09,
111    0xe7, 0x57, 0xff, 0xff, 0x90, 0x08, 0x9f, 0xa0,
112    0x40, 0x00, 0xe7, 0x59, 0x90, 0x08, 0x94, 0x08,
113    0x9f, 0xa0, 0x40, 0x00, 0xc8, 0x09, 0xa2, 0x08,
114    0x08, 0x62, 0x9f, 0xa1, 0x14, 0x0a, 0xe7, 0x57,
115    0x00, 0x00, 0x52, 0x08, 0xa7, 0xc0, 0x56, 0x08,
116    0x9f, 0xaf, 0x04, 0x00, 0xe7, 0x57, 0x00, 0x00,
117    0x8e, 0x08, 0xa7, 0xc1, 0x56, 0x08, 0xc0, 0x09,
118    0xa8, 0x08, 0x00, 0x60, 0x05, 0xc4, 0xc0, 0x59,
119    0x94, 0x08, 0x02, 0xc0, 0x9f, 0xaf, 0xee, 0x00,
120    0xe7, 0x59, 0xae, 0x08, 0x94, 0x08, 0x02, 0xc1,
121    0x9f, 0xaf, 0xf6, 0x00, 0x9f, 0xaf, 0x9e, 0x03,
122    0xef, 0x57, 0x00, 0x00, 0xf0, 0x09, 0x9f, 0xa1,
123    0xde, 0x01, 0xe7, 0x57, 0x00, 0x00, 0x78, 0x08,
124    0x9f, 0xa0, 0xe4, 0x03, 0x9f, 0xaf, 0x2c, 0x04,
125    0xa7, 0xcf, 0x56, 0x08, 0x48, 0x02, 0xe7, 0x09,
126    0x94, 0x08, 0xa8, 0x08, 0xc8, 0x37, 0x04, 0x00,
127    0x9f, 0xaf, 0x68, 0x04, 0x97, 0xcf, 0xe7, 0x57,
128    0x00, 0x00, 0xa6, 0x08, 0x97, 0xc0, 0xd7, 0x09,
129    0x00, 0xc0, 0xc1, 0xdf, 0xc8, 0x09, 0x9c, 0x08,
130    0x08, 0x62, 0x1d, 0xc0, 0x27, 0x04, 0x9c, 0x08,
131    0x10, 0x94, 0xf0, 0x07, 0xee, 0x09, 0x02, 0x00,
132    0xc1, 0x07, 0x01, 0x00, 0x70, 0x00, 0x04, 0x00,
133    0xf0, 0x07, 0x44, 0x01, 0x06, 0x00, 0x50, 0xaf,
134    0xe7, 0x09, 0x94, 0x08, 0xae, 0x08, 0xe7, 0x17,
135    0x14, 0x00, 0xae, 0x08, 0xe7, 0x67, 0xff, 0x07,
136    0xae, 0x08, 0xe7, 0x07, 0xff, 0xff, 0xa8, 0x08,
137    0xe7, 0x07, 0x00, 0x00, 0xa6, 0x08, 0xe7, 0x05,
138    0x00, 0xc0, 0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0,
139    0xc1, 0xdf, 0x48, 0x02, 0xd0, 0x09, 0x9c, 0x08,
140    0x27, 0x02, 0x9c, 0x08, 0xe7, 0x09, 0x20, 0xc0,
141    0xee, 0x09, 0xe7, 0xd0, 0xee, 0x09, 0xe7, 0x05,
142    0x00, 0xc0, 0x97, 0xcf, 0x48, 0x02, 0xc8, 0x37,
143    0x04, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x60,
144    0x21, 0xc0, 0xc0, 0x37, 0x3e, 0x00, 0x23, 0xc9,
145    0xc0, 0x57, 0xb4, 0x05, 0x1b, 0xc8, 0xc0, 0x17,
146    0x3f, 0x00, 0xc0, 0x67, 0xc0, 0xff, 0x30, 0x00,
147    0x08, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x04, 0x00,
148    0x00, 0x02, 0xc0, 0x17, 0x4c, 0x00, 0x30, 0x00,
149    0x06, 0x00, 0xf0, 0x07, 0xbe, 0x01, 0x0a, 0x00,
150    0x48, 0x02, 0xc1, 0x07, 0x02, 0x00, 0xd7, 0x09,
151    0x00, 0xc0, 0xc1, 0xdf, 0x51, 0xaf, 0xe7, 0x05,
152    0x00, 0xc0, 0x97, 0xcf, 0x9f, 0xaf, 0x68, 0x04,
153    0x9f, 0xaf, 0xe4, 0x03, 0x97, 0xcf, 0x9f, 0xaf,
154    0xe4, 0x03, 0xc9, 0x37, 0x04, 0x00, 0xc1, 0xdf,
155    0xc8, 0x09, 0x70, 0x08, 0x50, 0x02, 0x67, 0x02,
156    0x70, 0x08, 0xd1, 0x07, 0x00, 0x00, 0xc0, 0xdf,
157    0x9f, 0xaf, 0xde, 0x01, 0x97, 0xcf, 0xe7, 0x57,
158    0x00, 0x00, 0xaa, 0x08, 0x97, 0xc1, 0xe7, 0x57,
159    0x01, 0x00, 0x7a, 0x08, 0x97, 0xc0, 0xc8, 0x09,
160    0x6e, 0x08, 0x08, 0x62, 0x97, 0xc0, 0x00, 0x02,
161    0xc0, 0x17, 0x0e, 0x00, 0x27, 0x00, 0x34, 0x01,
162    0x27, 0x0c, 0x0c, 0x00, 0x36, 0x01, 0xef, 0x57,
163    0x00, 0x00, 0xf0, 0x09, 0x9f, 0xc0, 0xbe, 0x02,
164    0xe7, 0x57, 0x00, 0x00, 0xb0, 0x08, 0x97, 0xc1,
165    0xe7, 0x07, 0x09, 0x00, 0x12, 0xc0, 0xe7, 0x77,
166    0x00, 0x08, 0x20, 0xc0, 0x9f, 0xc1, 0xb6, 0x02,
167    0xe7, 0x57, 0x09, 0x00, 0x12, 0xc0, 0x77, 0xc9,
168    0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0xe7, 0x77,
169    0x00, 0x08, 0x20, 0xc0, 0x2f, 0xc1, 0xe7, 0x07,
170    0x00, 0x00, 0x42, 0xc0, 0xe7, 0x07, 0x05, 0x00,
171    0x90, 0xc0, 0xc8, 0x07, 0x0a, 0x00, 0xe7, 0x77,
172    0x04, 0x00, 0x20, 0xc0, 0x09, 0xc1, 0x08, 0xda,
173    0x7a, 0xc1, 0xe7, 0x07, 0x00, 0x01, 0x42, 0xc0,
174    0xe7, 0x07, 0x04, 0x00, 0x90, 0xc0, 0x1a, 0xcf,
175    0xe7, 0x07, 0x01, 0x00, 0x7a, 0x08, 0x00, 0xd8,
176    0x27, 0x50, 0x34, 0x01, 0x17, 0xc1, 0xe7, 0x77,
177    0x02, 0x00, 0x20, 0xc0, 0x79, 0xc1, 0x27, 0x50,
178    0x34, 0x01, 0x10, 0xc1, 0xe7, 0x77, 0x02, 0x00,
179    0x20, 0xc0, 0x79, 0xc0, 0x9f, 0xaf, 0xd8, 0x02,
180    0xe7, 0x05, 0x00, 0xc0, 0x00, 0x60, 0x9f, 0xc0,
181    0xde, 0x01, 0x97, 0xcf, 0xe7, 0x07, 0x01, 0x00,
182    0xb8, 0x08, 0x06, 0xcf, 0xe7, 0x07, 0x30, 0x0e,
183    0x02, 0x00, 0xe7, 0x07, 0x50, 0xc3, 0x12, 0xc0,
184    0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf, 0xe7, 0x07,
185    0x01, 0x00, 0xb8, 0x08, 0x97, 0xcf, 0xe7, 0x07,
186    0x50, 0xc3, 0x12, 0xc0, 0xe7, 0x07, 0x30, 0x0e,
187    0x02, 0x00, 0xe7, 0x07, 0x01, 0x00, 0x7a, 0x08,
188    0xe7, 0x07, 0x05, 0x00, 0x90, 0xc0, 0x97, 0xcf,
189    0xe7, 0x07, 0x00, 0x01, 0x42, 0xc0, 0xe7, 0x07,
190    0x04, 0x00, 0x90, 0xc0, 0xe7, 0x07, 0x00, 0x00,
191    0x7a, 0x08, 0xe7, 0x57, 0x0f, 0x00, 0xb2, 0x08,
192    0x13, 0xc1, 0x9f, 0xaf, 0x2e, 0x08, 0xca, 0x09,
193    0xac, 0x08, 0xf2, 0x17, 0x01, 0x00, 0x5c, 0x00,
194    0xf2, 0x27, 0x00, 0x00, 0x5e, 0x00, 0xe7, 0x07,
195    0x00, 0x00, 0xb2, 0x08, 0xe7, 0x07, 0x01, 0x00,
196    0xb4, 0x08, 0xc0, 0x07, 0xff, 0xff, 0x97, 0xcf,
197    0x9f, 0xaf, 0x4c, 0x03, 0xc0, 0x69, 0xb4, 0x08,
198    0x57, 0x00, 0x9f, 0xde, 0x33, 0x00, 0xc1, 0x05,
199    0x27, 0xd8, 0xb2, 0x08, 0x27, 0xd2, 0xb4, 0x08,
200    0xe7, 0x87, 0x01, 0x00, 0xb4, 0x08, 0xe7, 0x67,
201    0xff, 0x03, 0xb4, 0x08, 0x00, 0x60, 0x97, 0xc0,
202    0xe7, 0x07, 0x01, 0x00, 0xb0, 0x08, 0x27, 0x00,
203    0x12, 0xc0, 0x97, 0xcf, 0xc0, 0x09, 0xb6, 0x08,
204    0x00, 0xd2, 0x02, 0xc3, 0xc0, 0x97, 0x05, 0x80,
205    0x27, 0x00, 0xb6, 0x08, 0xc0, 0x99, 0x82, 0x08,
206    0xc0, 0x99, 0xa2, 0xc0, 0x97, 0xcf, 0xe7, 0x07,
207    0x00, 0x00, 0xb0, 0x08, 0xc0, 0xdf, 0x97, 0xcf,
208    0xc8, 0x09, 0x72, 0x08, 0x08, 0x62, 0x02, 0xc0,
209    0x10, 0x64, 0x07, 0xc1, 0xe7, 0x07, 0x00, 0x00,
210    0x64, 0x08, 0xe7, 0x07, 0xc8, 0x05, 0x24, 0x00,
211    0x97, 0xcf, 0x27, 0x04, 0x72, 0x08, 0xc8, 0x17,
212    0x0e, 0x00, 0x27, 0x02, 0x64, 0x08, 0xe7, 0x07,
213    0xd6, 0x05, 0x24, 0x00, 0x97, 0xcf, 0xd7, 0x09,
214    0x00, 0xc0, 0xc1, 0xdf, 0xe7, 0x57, 0x00, 0x00,
215    0x62, 0x08, 0x13, 0xc1, 0x9f, 0xaf, 0x70, 0x03,
216    0xe7, 0x57, 0x00, 0x00, 0x64, 0x08, 0x13, 0xc0,
217    0xe7, 0x09, 0x64, 0x08, 0x30, 0x01, 0xe7, 0x07,
218    0xf2, 0x05, 0x32, 0x01, 0xe7, 0x07, 0x10, 0x00,
219    0x96, 0xc0, 0xe7, 0x09, 0x64, 0x08, 0x62, 0x08,
220    0x04, 0xcf, 0xe7, 0x57, 0x00, 0x00, 0x64, 0x08,
221    0x02, 0xc1, 0x9f, 0xaf, 0x70, 0x03, 0xe7, 0x05,
222    0x00, 0xc0, 0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0,
223    0xc1, 0xdf, 0xc8, 0x09, 0x72, 0x08, 0x27, 0x02,
224    0x78, 0x08, 0x08, 0x62, 0x03, 0xc1, 0xe7, 0x05,
225    0x00, 0xc0, 0x97, 0xcf, 0x27, 0x04, 0x72, 0x08,
226    0xe7, 0x05, 0x00, 0xc0, 0xf0, 0x07, 0x40, 0x00,
227    0x08, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x04, 0x00,
228    0x00, 0x02, 0xc0, 0x17, 0x0c, 0x00, 0x30, 0x00,
229    0x06, 0x00, 0xf0, 0x07, 0x64, 0x01, 0x0a, 0x00,
230    0xc8, 0x17, 0x04, 0x00, 0xc1, 0x07, 0x02, 0x00,
231    0x51, 0xaf, 0x97, 0xcf, 0xe7, 0x57, 0x00, 0x00,
232    0x6a, 0x08, 0x97, 0xc0, 0xc1, 0xdf, 0xc8, 0x09,
233    0x6a, 0x08, 0x27, 0x04, 0x6a, 0x08, 0x27, 0x52,
234    0x6c, 0x08, 0x03, 0xc1, 0xe7, 0x07, 0x6a, 0x08,
235    0x6c, 0x08, 0xc0, 0xdf, 0x17, 0x02, 0xc8, 0x17,
236    0x0e, 0x00, 0x9f, 0xaf, 0x16, 0x05, 0xc8, 0x05,
237    0x00, 0x60, 0x03, 0xc0, 0x9f, 0xaf, 0x80, 0x04,
238    0x97, 0xcf, 0x9f, 0xaf, 0x68, 0x04, 0x97, 0xcf,
239    0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0x08, 0x62,
240    0x1c, 0xc0, 0xd0, 0x09, 0x72, 0x08, 0x27, 0x02,
241    0x72, 0x08, 0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf,
242    0x97, 0x02, 0xca, 0x09, 0xac, 0x08, 0xf2, 0x17,
243    0x01, 0x00, 0x04, 0x00, 0xf2, 0x27, 0x00, 0x00,
244    0x06, 0x00, 0xca, 0x17, 0x2c, 0x00, 0xf8, 0x77,
245    0x01, 0x00, 0x0e, 0x00, 0x06, 0xc0, 0xca, 0xd9,
246    0xf8, 0x57, 0xff, 0x00, 0x0e, 0x00, 0x01, 0xc1,
247    0xca, 0xd9, 0x22, 0x1c, 0x0c, 0x00, 0xe2, 0x27,
248    0x00, 0x00, 0xe2, 0x17, 0x01, 0x00, 0xe2, 0x27,
249    0x00, 0x00, 0xca, 0x05, 0x00, 0x0c, 0x0c, 0x00,
250    0xc0, 0x17, 0x41, 0x00, 0xc0, 0x67, 0xc0, 0xff,
251    0x30, 0x00, 0x08, 0x00, 0x00, 0x02, 0xc0, 0x17,
252    0x0c, 0x00, 0x30, 0x00, 0x06, 0x00, 0xf0, 0x07,
253    0xdc, 0x00, 0x0a, 0x00, 0xf0, 0x07, 0x00, 0x00,
254    0x04, 0x00, 0x00, 0x0c, 0x08, 0x00, 0x40, 0xd1,
255    0x01, 0x00, 0xc0, 0x19, 0xa6, 0x08, 0xc0, 0x59,
256    0x98, 0x08, 0x04, 0xc9, 0x49, 0xaf, 0x9f, 0xaf,
257    0xee, 0x00, 0x4a, 0xaf, 0x67, 0x10, 0xa6, 0x08,
258    0xc8, 0x17, 0x04, 0x00, 0xc1, 0x07, 0x01, 0x00,
259    0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0x50, 0xaf,
260    0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf, 0xc0, 0x07,
261    0x01, 0x00, 0xc1, 0x09, 0x7c, 0x08, 0xc1, 0x77,
262    0x01, 0x00, 0x97, 0xc1, 0xd8, 0x77, 0x01, 0x00,
263    0x12, 0xc0, 0xc9, 0x07, 0x4c, 0x08, 0x9f, 0xaf,
264    0x64, 0x05, 0x04, 0xc1, 0xc1, 0x77, 0x08, 0x00,
265    0x13, 0xc0, 0x97, 0xcf, 0xc1, 0x77, 0x02, 0x00,
266    0x97, 0xc1, 0xc1, 0x77, 0x10, 0x00, 0x0c, 0xc0,
267    0x9f, 0xaf, 0x86, 0x05, 0x97, 0xcf, 0xc1, 0x77,
268    0x04, 0x00, 0x06, 0xc0, 0xc9, 0x07, 0x7e, 0x08,
269    0x9f, 0xaf, 0x64, 0x05, 0x97, 0xc0, 0x00, 0xcf,
270    0x00, 0x90, 0x97, 0xcf, 0x50, 0x54, 0x97, 0xc1,
271    0x70, 0x5c, 0x02, 0x00, 0x02, 0x00, 0x97, 0xc1,
272    0x70, 0x5c, 0x04, 0x00, 0x04, 0x00, 0x97, 0xcf,
273    0xc0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00,
274    0x0c, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcb, 0x09,
275    0x88, 0x08, 0xcc, 0x09, 0x8a, 0x08, 0x0b, 0x53,
276    0x11, 0xc0, 0xc9, 0x02, 0xca, 0x07, 0x78, 0x05,
277    0x9f, 0xaf, 0x64, 0x05, 0x97, 0xc0, 0x0a, 0xc8,
278    0x82, 0x08, 0x0a, 0xcf, 0x82, 0x08, 0x9f, 0xaf,
279    0x64, 0x05, 0x97, 0xc0, 0x05, 0xc2, 0x89, 0x30,
280    0x82, 0x60, 0x78, 0xc1, 0x00, 0x90, 0x97, 0xcf,
281    0x89, 0x10, 0x09, 0x53, 0x79, 0xc2, 0x89, 0x30,
282    0x82, 0x08, 0x7a, 0xcf, 0xc0, 0xdf, 0x97, 0xcf,
283    0xe7, 0x09, 0x96, 0xc0, 0x66, 0x08, 0xe7, 0x09,
284    0x98, 0xc0, 0x68, 0x08, 0x0f, 0xcf, 0xe7, 0x09,
285    0x96, 0xc0, 0x66, 0x08, 0xe7, 0x09, 0x98, 0xc0,
286    0x68, 0x08, 0xe7, 0x09, 0x64, 0x08, 0x30, 0x01,
287    0xe7, 0x07, 0xf2, 0x05, 0x32, 0x01, 0xe7, 0x07,
288    0x10, 0x00, 0x96, 0xc0, 0xd7, 0x09, 0x00, 0xc0,
289    0x17, 0x02, 0xc8, 0x09, 0x62, 0x08, 0xc8, 0x37,
290    0x0e, 0x00, 0xe7, 0x57, 0x04, 0x00, 0x68, 0x08,
291    0x3d, 0xc0, 0xe7, 0x87, 0x00, 0x08, 0x24, 0xc0,
292    0xe7, 0x09, 0x94, 0x08, 0xba, 0x08, 0xe7, 0x17,
293    0x64, 0x00, 0xba, 0x08, 0xe7, 0x67, 0xff, 0x07,
294    0xba, 0x08, 0xe7, 0x77, 0x2a, 0x00, 0x66, 0x08,
295    0x30, 0xc0, 0x97, 0x02, 0xca, 0x09, 0xac, 0x08,
296    0xe7, 0x77, 0x20, 0x00, 0x66, 0x08, 0x0e, 0xc0,
297    0xf2, 0x17, 0x01, 0x00, 0x10, 0x00, 0xf2, 0x27,
298    0x00, 0x00, 0x12, 0x00, 0xe7, 0x77, 0x0a, 0x00,
299    0x66, 0x08, 0xca, 0x05, 0x1e, 0xc0, 0x97, 0x02,
300    0xca, 0x09, 0xac, 0x08, 0xf2, 0x17, 0x01, 0x00,
301    0x0c, 0x00, 0xf2, 0x27, 0x00, 0x00, 0x0e, 0x00,
302    0xe7, 0x77, 0x02, 0x00, 0x66, 0x08, 0x07, 0xc0,
303    0xf2, 0x17, 0x01, 0x00, 0x44, 0x00, 0xf2, 0x27,
304    0x00, 0x00, 0x46, 0x00, 0x06, 0xcf, 0xf2, 0x17,
305    0x01, 0x00, 0x60, 0x00, 0xf2, 0x27, 0x00, 0x00,
306    0x62, 0x00, 0xca, 0x05, 0x9f, 0xaf, 0x68, 0x04,
307    0x0f, 0xcf, 0x57, 0x02, 0x09, 0x02, 0xf1, 0x09,
308    0x68, 0x08, 0x0c, 0x00, 0xf1, 0xda, 0x0c, 0x00,
309    0xc8, 0x09, 0x6c, 0x08, 0x50, 0x02, 0x67, 0x02,
310    0x6c, 0x08, 0xd1, 0x07, 0x00, 0x00, 0xc9, 0x05,
311    0xe7, 0x09, 0x64, 0x08, 0x62, 0x08, 0xe7, 0x57,
312    0x00, 0x00, 0x62, 0x08, 0x02, 0xc0, 0x9f, 0xaf,
313    0x70, 0x03, 0xc8, 0x05, 0xe7, 0x05, 0x00, 0xc0,
314    0xc0, 0xdf, 0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0,
315    0x17, 0x00, 0x17, 0x02, 0x97, 0x02, 0xc0, 0x09,
316    0x92, 0xc0, 0xe7, 0x87, 0x00, 0x08, 0x24, 0xc0,
317    0xe7, 0x09, 0x94, 0x08, 0xba, 0x08, 0xe7, 0x17,
318    0x64, 0x00, 0xba, 0x08, 0xe7, 0x67, 0xff, 0x07,
319    0xba, 0x08, 0xe7, 0x07, 0x04, 0x00, 0x90, 0xc0,
320    0xca, 0x09, 0xac, 0x08, 0xe7, 0x07, 0x00, 0x00,
321    0x7a, 0x08, 0xe7, 0x07, 0x66, 0x03, 0x02, 0x00,
322    0xc0, 0x77, 0x02, 0x00, 0x10, 0xc0, 0xef, 0x57,
323    0x00, 0x00, 0xf0, 0x09, 0x04, 0xc0, 0x9f, 0xaf,
324    0xd8, 0x02, 0x9f, 0xcf, 0x12, 0x08, 0xf2, 0x17,
325    0x01, 0x00, 0x50, 0x00, 0xf2, 0x27, 0x00, 0x00,
326    0x52, 0x00, 0x9f, 0xcf, 0x12, 0x08, 0xef, 0x57,
327    0x00, 0x00, 0xf0, 0x09, 0x08, 0xc0, 0xe7, 0x57,
328    0x00, 0x00, 0xb8, 0x08, 0xe7, 0x07, 0x00, 0x00,
329    0xb8, 0x08, 0x0a, 0xc0, 0x03, 0xcf, 0xc0, 0x77,
330    0x10, 0x00, 0x06, 0xc0, 0xf2, 0x17, 0x01, 0x00,
331    0x58, 0x00, 0xf2, 0x27, 0x00, 0x00, 0x5a, 0x00,
332    0xc0, 0x77, 0x80, 0x00, 0x06, 0xc0, 0xf2, 0x17,
333    0x01, 0x00, 0x70, 0x00, 0xf2, 0x27, 0x00, 0x00,
334    0x72, 0x00, 0xc0, 0x77, 0x08, 0x00, 0x1d, 0xc1,
335    0xf2, 0x17, 0x01, 0x00, 0x08, 0x00, 0xf2, 0x27,
336    0x00, 0x00, 0x0a, 0x00, 0xc0, 0x77, 0x00, 0x02,
337    0x06, 0xc0, 0xf2, 0x17, 0x01, 0x00, 0x64, 0x00,
338    0xf2, 0x27, 0x00, 0x00, 0x66, 0x00, 0xc0, 0x77,
339    0x40, 0x00, 0x06, 0xc0, 0xf2, 0x17, 0x01, 0x00,
340    0x5c, 0x00, 0xf2, 0x27, 0x00, 0x00, 0x5e, 0x00,
341    0xc0, 0x77, 0x01, 0x00, 0x01, 0xc0, 0x37, 0xcf,
342    0x36, 0xcf, 0xf2, 0x17, 0x01, 0x00, 0x00, 0x00,
343    0xf2, 0x27, 0x00, 0x00, 0x02, 0x00, 0xef, 0x57,
344    0x00, 0x00, 0xf0, 0x09, 0x18, 0xc0, 0xe7, 0x57,
345    0x01, 0x00, 0xb2, 0x08, 0x0e, 0xc2, 0x07, 0xc8,
346    0xf2, 0x17, 0x01, 0x00, 0x50, 0x00, 0xf2, 0x27,
347    0x00, 0x00, 0x52, 0x00, 0x06, 0xcf, 0xf2, 0x17,
348    0x01, 0x00, 0x54, 0x00, 0xf2, 0x27, 0x00, 0x00,
349    0x56, 0x00, 0xe7, 0x07, 0x00, 0x00, 0xb2, 0x08,
350    0xe7, 0x07, 0x01, 0x00, 0xb4, 0x08, 0xc8, 0x09,
351    0x34, 0x01, 0xca, 0x17, 0x14, 0x00, 0xd8, 0x77,
352    0x01, 0x00, 0x05, 0xc0, 0xca, 0xd9, 0xd8, 0x57,
353    0xff, 0x00, 0x01, 0xc0, 0xca, 0xd9, 0xe2, 0x19,
354    0x94, 0xc0, 0xe2, 0x27, 0x00, 0x00, 0xe2, 0x17,
355    0x01, 0x00, 0xe2, 0x27, 0x00, 0x00, 0x9f, 0xaf,
356    0x2e, 0x08, 0x9f, 0xaf, 0xde, 0x01, 0xe7, 0x57,
357    0x00, 0x00, 0xaa, 0x08, 0x9f, 0xa1, 0xf0, 0x0b,
358    0xca, 0x05, 0xc8, 0x05, 0xc0, 0x05, 0xe7, 0x05,
359    0x00, 0xc0, 0xc0, 0xdf, 0x97, 0xcf, 0xc8, 0x09,
360    0x6e, 0x08, 0x08, 0x62, 0x97, 0xc0, 0x27, 0x04,
361    0x6e, 0x08, 0x27, 0x52, 0x70, 0x08, 0x03, 0xc1,
362    0xe7, 0x07, 0x6e, 0x08, 0x70, 0x08, 0x9f, 0xaf,
363    0x68, 0x04, 0x97, 0xcf, 0xff, 0xff, 0xff, 0xff,
364    0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
365    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
366    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
367    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
368    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
369    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
370    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
371    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
372    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
373    0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
374    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
375    0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
376    0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x33, 0xcc,
377    0x00, 0x00, 0x00, 0x00, 0xe7, 0x57, 0x00, 0x80,
378    0xb2, 0x00, 0x06, 0xc2, 0xe7, 0x07, 0x52, 0x0e,
379    0x12, 0x00, 0xe7, 0x07, 0x98, 0x0e, 0xb2, 0x00,
380    0xe7, 0x07, 0xa4, 0x09, 0xf2, 0x02, 0xc8, 0x09,
381    0xb4, 0x00, 0xf8, 0x07, 0x02, 0x00, 0x0d, 0x00,
382    0xd7, 0x09, 0x0e, 0xc0, 0xe7, 0x07, 0x00, 0x00,
383    0x0e, 0xc0, 0xc8, 0x09, 0xdc, 0x00, 0xf0, 0x07,
384    0xff, 0xff, 0x09, 0x00, 0xf0, 0x07, 0xfb, 0x13,
385    0x0b, 0x00, 0xe7, 0x09, 0xc0, 0x00, 0x58, 0x08,
386    0xe7, 0x09, 0xbe, 0x00, 0x54, 0x08, 0xe7, 0x09,
387    0x10, 0x00, 0x92, 0x08, 0xc8, 0x07, 0xb4, 0x09,
388    0x9f, 0xaf, 0x8c, 0x09, 0x9f, 0xaf, 0xe2, 0x0b,
389    0xc0, 0x07, 0x80, 0x01, 0x44, 0xaf, 0x27, 0x00,
390    0x88, 0x08, 0x27, 0x00, 0x8a, 0x08, 0x27, 0x00,
391    0x8c, 0x08, 0xc0, 0x07, 0x74, 0x00, 0x44, 0xaf,
392    0x27, 0x00, 0xac, 0x08, 0x08, 0x00, 0x00, 0x90,
393    0xc1, 0x07, 0x1d, 0x00, 0x20, 0x00, 0x20, 0x00,
394    0x01, 0xda, 0x7c, 0xc1, 0x9f, 0xaf, 0x8a, 0x0b,
395    0xc0, 0x07, 0x4c, 0x00, 0x48, 0xaf, 0x27, 0x00,
396    0x56, 0x08, 0x9f, 0xaf, 0x72, 0x0c, 0xe7, 0x07,
397    0x00, 0x80, 0x96, 0x08, 0xef, 0x57, 0x00, 0x00,
398    0xf0, 0x09, 0x03, 0xc0, 0xe7, 0x07, 0x01, 0x00,
399    0x1c, 0xc0, 0xe7, 0x05, 0x0e, 0xc0, 0x97, 0xcf,
400    0x49, 0xaf, 0xe7, 0x87, 0x43, 0x00, 0x0e, 0xc0,
401    0xe7, 0x07, 0xff, 0xff, 0x94, 0x08, 0x9f, 0xaf,
402    0x8a, 0x0c, 0xc0, 0x07, 0x01, 0x00, 0x60, 0xaf,
403    0x4a, 0xaf, 0x97, 0xcf, 0x00, 0x08, 0x09, 0x08,
404    0x11, 0x08, 0x00, 0xda, 0x7c, 0xc1, 0x97, 0xcf,
405    0x67, 0x04, 0xcc, 0x02, 0xc0, 0xdf, 0x51, 0x94,
406    0xb1, 0xaf, 0x06, 0x00, 0xc1, 0xdf, 0xc9, 0x09,
407    0xcc, 0x02, 0x49, 0x62, 0x75, 0xc1, 0xc0, 0xdf,
408    0xa7, 0xcf, 0xd6, 0x02, 0x0e, 0x00, 0x24, 0x00,
409    0xd6, 0x05, 0x22, 0x00, 0xc4, 0x06, 0xd0, 0x00,
410    0xf0, 0x0b, 0xaa, 0x00, 0x0e, 0x0a, 0xbe, 0x00,
411    0x2c, 0x0c, 0x10, 0x00, 0x20, 0x00, 0x04, 0x00,
412    0xc4, 0x05, 0x02, 0x00, 0x66, 0x03, 0x06, 0x00,
413    0x00, 0x00, 0x24, 0xc0, 0x04, 0x04, 0x28, 0xc0,
414    0xfe, 0xfb, 0x1e, 0xc0, 0x00, 0x04, 0x22, 0xc0,
415    0xff, 0xf0, 0xc0, 0x00, 0x60, 0x0b, 0x00, 0x00,
416    0x00, 0x00, 0xff, 0xff, 0x34, 0x0a, 0x3e, 0x0a,
417    0x9e, 0x0a, 0xa8, 0x0a, 0xce, 0x0a, 0xd2, 0x0a,
418    0xd6, 0x0a, 0x00, 0x0b, 0x10, 0x0b, 0x1e, 0x0b,
419    0x20, 0x0b, 0x28, 0x0b, 0x28, 0x0b, 0x27, 0x02,
420    0xa2, 0x08, 0x97, 0xcf, 0xe7, 0x07, 0x00, 0x00,
421    0xa2, 0x08, 0x0a, 0x0e, 0x01, 0x00, 0xca, 0x57,
422    0x0e, 0x00, 0x9f, 0xc3, 0x2a, 0x0b, 0xca, 0x37,
423    0x00, 0x00, 0x9f, 0xc2, 0x2a, 0x0b, 0x0a, 0xd2,
424    0xb2, 0xcf, 0xf4, 0x09, 0xc8, 0x09, 0xde, 0x00,
425    0x07, 0x06, 0x9f, 0xcf, 0x3c, 0x0b, 0xf0, 0x57,
426    0x80, 0x01, 0x06, 0x00, 0x9f, 0xc8, 0x2a, 0x0b,
427    0x27, 0x0c, 0x02, 0x00, 0x86, 0x08, 0xc0, 0x09,
428    0x88, 0x08, 0x27, 0x00, 0x8a, 0x08, 0xe7, 0x07,
429    0x00, 0x00, 0x84, 0x08, 0x27, 0x00, 0x5c, 0x08,
430    0x00, 0x1c, 0x06, 0x00, 0x27, 0x00, 0x8c, 0x08,
431    0x41, 0x90, 0x67, 0x50, 0x86, 0x08, 0x0d, 0xc0,
432    0x67, 0x00, 0x5a, 0x08, 0x27, 0x0c, 0x06, 0x00,
433    0x5e, 0x08, 0xe7, 0x07, 0x8a, 0x0a, 0x60, 0x08,
434    0xc8, 0x07, 0x5a, 0x08, 0x41, 0x90, 0x51, 0xaf,
435    0x97, 0xcf, 0x9f, 0xaf, 0xac, 0x0e, 0xe7, 0x09,
436    0x8c, 0x08, 0x8a, 0x08, 0xe7, 0x09, 0x86, 0x08,
437    0x84, 0x08, 0x59, 0xaf, 0x97, 0xcf, 0x27, 0x0c,
438    0x02, 0x00, 0x7c, 0x08, 0x59, 0xaf, 0x97, 0xcf,
439    0x09, 0x0c, 0x02, 0x00, 0x09, 0xda, 0x49, 0xd2,
440    0xc9, 0x19, 0xac, 0x08, 0xc8, 0x07, 0x5a, 0x08,
441    0xe0, 0x07, 0x00, 0x00, 0x60, 0x02, 0xe0, 0x07,
442    0x04, 0x00, 0xd0, 0x07, 0x9a, 0x0a, 0x48, 0xdb,
443    0x41, 0x90, 0x50, 0xaf, 0x97, 0xcf, 0x59, 0xaf,
444    0x97, 0xcf, 0x59, 0xaf, 0x97, 0xcf, 0xf0, 0x57,
445    0x06, 0x00, 0x06, 0x00, 0x26, 0xc1, 0xe7, 0x07,
446    0x7e, 0x08, 0x5c, 0x08, 0x41, 0x90, 0x67, 0x00,
447    0x5a, 0x08, 0x27, 0x0c, 0x06, 0x00, 0x5e, 0x08,
448    0xe7, 0x07, 0x5c, 0x0b, 0x60, 0x08, 0xc8, 0x07,
449    0x5a, 0x08, 0x41, 0x90, 0x51, 0xaf, 0x97, 0xcf,
450    0x07, 0x0c, 0x06, 0x00, 0xc7, 0x57, 0x06, 0x00,
451    0x10, 0xc1, 0xc8, 0x07, 0x7e, 0x08, 0x16, 0xcf,
452    0x00, 0x0c, 0x02, 0x00, 0x00, 0xda, 0x40, 0xd1,
453    0x27, 0x00, 0x98, 0x08, 0x1f, 0xcf, 0x1e, 0xcf,
454    0x27, 0x0c, 0x02, 0x00, 0xa4, 0x08, 0x1a, 0xcf,
455    0x00, 0xcf, 0x27, 0x02, 0x20, 0x01, 0xe7, 0x07,
456    0x08, 0x00, 0x22, 0x01, 0xe7, 0x07, 0x13, 0x00,
457    0xb0, 0xc0, 0x97, 0xcf, 0x41, 0x90, 0x67, 0x00,
458    0x5a, 0x08, 0xe7, 0x01, 0x5e, 0x08, 0x27, 0x02,
459    0x5c, 0x08, 0xe7, 0x07, 0x5c, 0x0b, 0x60, 0x08,
460    0xc8, 0x07, 0x5a, 0x08, 0xc1, 0x07, 0x00, 0x80,
461    0x50, 0xaf, 0x97, 0xcf, 0x59, 0xaf, 0x97, 0xcf,
462    0x00, 0x60, 0x05, 0xc0, 0xe7, 0x07, 0x00, 0x00,
463    0x9a, 0x08, 0xa7, 0xcf, 0x58, 0x08, 0x9f, 0xaf,
464    0xe2, 0x0b, 0xe7, 0x07, 0x01, 0x00, 0x9a, 0x08,
465    0x49, 0xaf, 0xd7, 0x09, 0x00, 0xc0, 0x07, 0xaf,
466    0xe7, 0x05, 0x00, 0xc0, 0x4a, 0xaf, 0xa7, 0xcf,
467    0x58, 0x08, 0xc0, 0x07, 0x40, 0x00, 0x44, 0xaf,
468    0x27, 0x00, 0xa0, 0x08, 0x08, 0x00, 0xc0, 0x07,
469    0x20, 0x00, 0x20, 0x94, 0x00, 0xda, 0x7d, 0xc1,
470    0xc0, 0x07, 0xfe, 0x7f, 0x44, 0xaf, 0x40, 0x00,
471    0x41, 0x90, 0xc0, 0x37, 0x08, 0x00, 0xdf, 0xde,
472    0x50, 0x06, 0xc0, 0x57, 0x10, 0x00, 0x02, 0xc2,
473    0xc0, 0x07, 0x10, 0x00, 0x27, 0x00, 0x76, 0x08,
474    0x41, 0x90, 0x9f, 0xde, 0x40, 0x06, 0x44, 0xaf,
475    0x27, 0x00, 0x74, 0x08, 0xc0, 0x09, 0x76, 0x08,
476    0x41, 0x90, 0x00, 0xd2, 0x00, 0xd8, 0x9f, 0xde,
477    0x08, 0x00, 0x44, 0xaf, 0x27, 0x00, 0x9e, 0x08,
478    0x97, 0xcf, 0xe7, 0x87, 0x00, 0x84, 0x28, 0xc0,
479    0xe7, 0x67, 0xff, 0xf3, 0x24, 0xc0, 0x97, 0xcf,
480    0xe7, 0x87, 0x01, 0x00, 0xaa, 0x08, 0xe7, 0x57,
481    0x00, 0x00, 0x7a, 0x08, 0x97, 0xc1, 0x9f, 0xaf,
482    0xe2, 0x0b, 0xe7, 0x87, 0x00, 0x06, 0x22, 0xc0,
483    0xe7, 0x07, 0x00, 0x00, 0x90, 0xc0, 0xe7, 0x67,
484    0xfe, 0xff, 0x3e, 0xc0, 0xe7, 0x07, 0x2e, 0x00,
485    0x0a, 0xc0, 0xe7, 0x87, 0x01, 0x00, 0x3e, 0xc0,
486    0xe7, 0x07, 0xff, 0xff, 0x94, 0x08, 0x9f, 0xaf,
487    0xf0, 0x0c, 0x97, 0xcf, 0x17, 0x00, 0xa7, 0xaf,
488    0x54, 0x08, 0xc0, 0x05, 0x27, 0x00, 0x52, 0x08,
489    0xe7, 0x87, 0x01, 0x00, 0xaa, 0x08, 0x9f, 0xaf,
490    0xe2, 0x0b, 0xe7, 0x07, 0x0c, 0x00, 0x40, 0xc0,
491    0x9f, 0xaf, 0xf0, 0x0c, 0xe7, 0x07, 0x00, 0x00,
492    0x78, 0x08, 0x00, 0x90, 0xe7, 0x09, 0x88, 0x08,
493    0x8a, 0x08, 0x27, 0x00, 0x84, 0x08, 0x27, 0x00,
494    0x7c, 0x08, 0x9f, 0xaf, 0x8a, 0x0c, 0xe7, 0x07,
495    0x00, 0x00, 0xb2, 0x02, 0xe7, 0x07, 0x00, 0x00,
496    0xb4, 0x02, 0xc0, 0x07, 0x06, 0x00, 0xc8, 0x09,
497    0xde, 0x00, 0xc8, 0x17, 0x03, 0x00, 0xc9, 0x07,
498    0x7e, 0x08, 0x29, 0x0a, 0x00, 0xda, 0x7d, 0xc1,
499    0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf,
500    0x00, 0x90, 0x27, 0x00, 0x6a, 0x08, 0xe7, 0x07,
501    0x6a, 0x08, 0x6c, 0x08, 0x27, 0x00, 0x6e, 0x08,
502    0xe7, 0x07, 0x6e, 0x08, 0x70, 0x08, 0x27, 0x00,
503    0x78, 0x08, 0x27, 0x00, 0x62, 0x08, 0x27, 0x00,
504    0x64, 0x08, 0xc8, 0x09, 0x74, 0x08, 0xc1, 0x09,
505    0x76, 0x08, 0xc9, 0x07, 0x72, 0x08, 0x11, 0x02,
506    0x09, 0x02, 0xc8, 0x17, 0x40, 0x06, 0x01, 0xda,
507    0x7a, 0xc1, 0x51, 0x94, 0xc8, 0x09, 0x9e, 0x08,
508    0xc9, 0x07, 0x9c, 0x08, 0xc1, 0x09, 0x76, 0x08,
509    0x01, 0xd2, 0x01, 0xd8, 0x11, 0x02, 0x09, 0x02,
510    0xc8, 0x17, 0x08, 0x00, 0x01, 0xda, 0x7a, 0xc1,
511    0x51, 0x94, 0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf,
512    0xe7, 0x57, 0x00, 0x00, 0x52, 0x08, 0x97, 0xc0,
513    0x9f, 0xaf, 0x04, 0x00, 0xe7, 0x09, 0x94, 0x08,
514    0x90, 0x08, 0xe7, 0x57, 0xff, 0xff, 0x90, 0x08,
515    0x04, 0xc1, 0xe7, 0x07, 0xf0, 0x0c, 0x8e, 0x08,
516    0x97, 0xcf, 0xe7, 0x17, 0x32, 0x00, 0x90, 0x08,
517    0xe7, 0x67, 0xff, 0x07, 0x90, 0x08, 0xe7, 0x07,
518    0x26, 0x0d, 0x8e, 0x08, 0x97, 0xcf, 0xd7, 0x09,
519    0x00, 0xc0, 0xc1, 0xdf, 0xe7, 0x57, 0x00, 0x00,
520    0x96, 0x08, 0x23, 0xc0, 0xe7, 0x07, 0x00, 0x80,
521    0x80, 0xc0, 0xe7, 0x07, 0x04, 0x00, 0x90, 0xc0,
522    0xe7, 0x07, 0x00, 0x00, 0x80, 0xc0, 0xe7, 0x07,
523    0x00, 0x80, 0x80, 0xc0, 0xc0, 0x07, 0x00, 0x00,
524    0xc0, 0x07, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00,
525    0xe7, 0x07, 0x00, 0x00, 0x80, 0xc0, 0xe7, 0x07,
526    0x00, 0x80, 0x80, 0xc0, 0xe7, 0x07, 0x00, 0x80,
527    0x40, 0xc0, 0xc0, 0x07, 0x00, 0x00, 0xe7, 0x07,
528    0x00, 0x00, 0x40, 0xc0, 0xe7, 0x07, 0x00, 0x00,
529    0x80, 0xc0, 0xef, 0x57, 0x00, 0x00, 0xf1, 0x09,
530    0x9f, 0xa0, 0xc0, 0x0d, 0xe7, 0x07, 0x04, 0x00,
531    0x90, 0xc0, 0xe7, 0x07, 0x00, 0x02, 0x40, 0xc0,
532    0xe7, 0x07, 0x0c, 0x02, 0x40, 0xc0, 0xe7, 0x07,
533    0x00, 0x00, 0x96, 0x08, 0xe7, 0x07, 0x00, 0x00,
534    0x8e, 0x08, 0xe7, 0x07, 0x00, 0x00, 0xaa, 0x08,
535    0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0x9f, 0xaf,
536    0x9e, 0x03, 0xe7, 0x05, 0x00, 0xc0, 0x9f, 0xaf,
537    0xde, 0x01, 0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf,
538    0x9f, 0xaf, 0xde, 0x0d, 0xef, 0x77, 0x00, 0x00,
539    0xf1, 0x09, 0x97, 0xc1, 0x9f, 0xaf, 0xde, 0x0d,
540    0xef, 0x77, 0x00, 0x00, 0xf1, 0x09, 0x97, 0xc1,
541    0xef, 0x07, 0x01, 0x00, 0xf1, 0x09, 0xe7, 0x87,
542    0x00, 0x08, 0x1e, 0xc0, 0xe7, 0x87, 0x00, 0x08,
543    0x22, 0xc0, 0xe7, 0x67, 0xff, 0xf7, 0x22, 0xc0,
544    0xe7, 0x77, 0x00, 0x08, 0x20, 0xc0, 0x11, 0xc0,
545    0xe7, 0x67, 0xff, 0xf7, 0x1e, 0xc0, 0xe7, 0x87,
546    0x00, 0x08, 0x22, 0xc0, 0xe7, 0x67, 0xff, 0xf7,
547    0x22, 0xc0, 0xe7, 0x77, 0x00, 0x08, 0x20, 0xc0,
548    0x04, 0xc1, 0xe7, 0x87, 0x00, 0x08, 0x22, 0xc0,
549    0x97, 0xcf, 0xe7, 0x07, 0x01, 0x01, 0xf0, 0x09,
550    0xef, 0x57, 0x18, 0x00, 0xfe, 0xff, 0x97, 0xc2,
551    0xef, 0x07, 0x00, 0x00, 0xf0, 0x09, 0x97, 0xcf,
552    0xd7, 0x09, 0x00, 0xc0, 0x17, 0x00, 0x17, 0x02,
553    0x97, 0x02, 0xe7, 0x57, 0x00, 0x00, 0x7a, 0x08,
554    0x06, 0xc0, 0xc0, 0x09, 0x92, 0xc0, 0xc0, 0x77,
555    0x09, 0x02, 0x9f, 0xc1, 0xea, 0x06, 0x9f, 0xcf,
556    0x20, 0x08, 0xd7, 0x09, 0x0e, 0xc0, 0xe7, 0x07,
557    0x00, 0x00, 0x0e, 0xc0, 0x9f, 0xaf, 0x66, 0x0e,
558    0xe7, 0x05, 0x0e, 0xc0, 0x97, 0xcf, 0xd7, 0x09,
559    0x00, 0xc0, 0x17, 0x02, 0xc8, 0x09, 0xb0, 0xc0,
560    0xe7, 0x67, 0xfe, 0x7f, 0xb0, 0xc0, 0xc8, 0x77,
561    0x00, 0x20, 0x9f, 0xc1, 0x64, 0xeb, 0xe7, 0x57,
562    0x00, 0x00, 0xc8, 0x02, 0x9f, 0xc1, 0x80, 0xeb,
563    0xc8, 0x99, 0xca, 0x02, 0xc8, 0x67, 0x04, 0x00,
564    0x9f, 0xc1, 0x96, 0xeb, 0x9f, 0xcf, 0x4c, 0xeb,
565    0xe7, 0x07, 0x00, 0x00, 0xa6, 0xc0, 0xe7, 0x09,
566    0xb0, 0xc0, 0xc8, 0x02, 0xe7, 0x07, 0x03, 0x00,
567    0xb0, 0xc0, 0x97, 0xcf, 0xc0, 0x09, 0x86, 0x08,
568    0xc0, 0x37, 0x01, 0x00, 0x97, 0xc9, 0xc9, 0x09,
569    0x88, 0x08, 0x02, 0x00, 0x41, 0x90, 0x48, 0x02,
570    0xc9, 0x17, 0x06, 0x00, 0x9f, 0xaf, 0x64, 0x05,
571    0x9f, 0xa2, 0xd6, 0x0e, 0x02, 0xda, 0x77, 0xc1,
572    0x41, 0x60, 0x71, 0xc1, 0x97, 0xcf, 0x17, 0x02,
573    0x57, 0x02, 0x43, 0x04, 0x21, 0x04, 0xe0, 0x00,
574    0x43, 0x04, 0x21, 0x04, 0xe0, 0x00, 0x43, 0x04,
575    0x21, 0x04, 0xe0, 0x00, 0xc1, 0x07, 0x01, 0x00,
576    0xc9, 0x05, 0xc8, 0x05, 0x97, 0xcf,
577    0,	  0
578};
579
580/* Firmware fixup (data?) segment */
581static const uint8_t kue_fix_seg[] =
582{
583    /******************************************/
584    /* NOTE: B6/C3 is data header signature   */
585    /*	     0xAA/0xBB is data length = total */
586    /*	     bytes - 7, 0xCC is type, 0xDD is */
587    /*	     interrupt to use.		      */
588    /******************************************/
589    0xB6, 0xC3, 0xc9, 0x02, 0x03, 0x64,
590    0x02, 0x00, 0x08, 0x00, 0x24, 0x00, 0x2e, 0x00,
591    0x2c, 0x00, 0x3e, 0x00, 0x44, 0x00, 0x48, 0x00,
592    0x50, 0x00, 0x5c, 0x00, 0x60, 0x00, 0x66, 0x00,
593    0x6c, 0x00, 0x70, 0x00, 0x76, 0x00, 0x74, 0x00,
594    0x7a, 0x00, 0x7e, 0x00, 0x84, 0x00, 0x8a, 0x00,
595    0x8e, 0x00, 0x92, 0x00, 0x98, 0x00, 0x9c, 0x00,
596    0xa0, 0x00, 0xa8, 0x00, 0xae, 0x00, 0xb4, 0x00,
597    0xb2, 0x00, 0xba, 0x00, 0xbe, 0x00, 0xc4, 0x00,
598    0xc8, 0x00, 0xce, 0x00, 0xd2, 0x00, 0xd6, 0x00,
599    0xda, 0x00, 0xe2, 0x00, 0xe0, 0x00, 0xea, 0x00,
600    0xf2, 0x00, 0xfe, 0x00, 0x06, 0x01, 0x0c, 0x01,
601    0x1a, 0x01, 0x24, 0x01, 0x22, 0x01, 0x2a, 0x01,
602    0x30, 0x01, 0x36, 0x01, 0x3c, 0x01, 0x4e, 0x01,
603    0x52, 0x01, 0x58, 0x01, 0x5c, 0x01, 0x9c, 0x01,
604    0xb6, 0x01, 0xba, 0x01, 0xc0, 0x01, 0xca, 0x01,
605    0xd0, 0x01, 0xda, 0x01, 0xe2, 0x01, 0xea, 0x01,
606    0xf0, 0x01, 0x0a, 0x02, 0x0e, 0x02, 0x14, 0x02,
607    0x26, 0x02, 0x6c, 0x02, 0x8e, 0x02, 0x98, 0x02,
608    0xa0, 0x02, 0xa6, 0x02, 0xba, 0x02, 0xc6, 0x02,
609    0xce, 0x02, 0xe8, 0x02, 0xee, 0x02, 0xf4, 0x02,
610    0xf8, 0x02, 0x0a, 0x03, 0x10, 0x03, 0x1a, 0x03,
611    0x1e, 0x03, 0x2a, 0x03, 0x2e, 0x03, 0x34, 0x03,
612    0x3a, 0x03, 0x44, 0x03, 0x4e, 0x03, 0x5a, 0x03,
613    0x5e, 0x03, 0x6a, 0x03, 0x72, 0x03, 0x80, 0x03,
614    0x84, 0x03, 0x8c, 0x03, 0x94, 0x03, 0x98, 0x03,
615    0xa8, 0x03, 0xae, 0x03, 0xb4, 0x03, 0xba, 0x03,
616    0xce, 0x03, 0xcc, 0x03, 0xd6, 0x03, 0xdc, 0x03,
617    0xec, 0x03, 0xf0, 0x03, 0xfe, 0x03, 0x1c, 0x04,
618    0x30, 0x04, 0x38, 0x04, 0x3c, 0x04, 0x40, 0x04,
619    0x48, 0x04, 0x46, 0x04, 0x54, 0x04, 0x5e, 0x04,
620    0x64, 0x04, 0x74, 0x04, 0x78, 0x04, 0x84, 0x04,
621    0xd8, 0x04, 0xec, 0x04, 0xf0, 0x04, 0xf8, 0x04,
622    0xfe, 0x04, 0x1c, 0x05, 0x2c, 0x05, 0x30, 0x05,
623    0x4a, 0x05, 0x56, 0x05, 0x5a, 0x05, 0x88, 0x05,
624    0x8c, 0x05, 0x96, 0x05, 0x9a, 0x05, 0xa8, 0x05,
625    0xcc, 0x05, 0xd2, 0x05, 0xda, 0x05, 0xe0, 0x05,
626    0xe4, 0x05, 0xfc, 0x05, 0x06, 0x06, 0x14, 0x06,
627    0x12, 0x06, 0x1a, 0x06, 0x20, 0x06, 0x26, 0x06,
628    0x2e, 0x06, 0x34, 0x06, 0x48, 0x06, 0x52, 0x06,
629    0x64, 0x06, 0x86, 0x06, 0x90, 0x06, 0x9a, 0x06,
630    0xa0, 0x06, 0xac, 0x06, 0xaa, 0x06, 0xb2, 0x06,
631    0xb8, 0x06, 0xdc, 0x06, 0xda, 0x06, 0xe2, 0x06,
632    0xe8, 0x06, 0xf2, 0x06, 0xf8, 0x06, 0xfc, 0x06,
633    0x0a, 0x07, 0x10, 0x07, 0x14, 0x07, 0x24, 0x07,
634    0x2a, 0x07, 0x32, 0x07, 0x38, 0x07, 0xb2, 0x07,
635    0xba, 0x07, 0xde, 0x07, 0xe4, 0x07, 0x10, 0x08,
636    0x14, 0x08, 0x1a, 0x08, 0x1e, 0x08, 0x30, 0x08,
637    0x38, 0x08, 0x3c, 0x08, 0x44, 0x08, 0x42, 0x08,
638    0x48, 0x08, 0xc6, 0x08, 0xcc, 0x08, 0xd2, 0x08,
639    0xfe, 0x08, 0x04, 0x09, 0x0a, 0x09, 0x0e, 0x09,
640    0x12, 0x09, 0x16, 0x09, 0x20, 0x09, 0x24, 0x09,
641    0x28, 0x09, 0x32, 0x09, 0x46, 0x09, 0x4a, 0x09,
642    0x50, 0x09, 0x54, 0x09, 0x5a, 0x09, 0x60, 0x09,
643    0x7c, 0x09, 0x80, 0x09, 0xb8, 0x09, 0xbc, 0x09,
644    0xc0, 0x09, 0xc4, 0x09, 0xc8, 0x09, 0xcc, 0x09,
645    0xd0, 0x09, 0xd4, 0x09, 0xec, 0x09, 0xf4, 0x09,
646    0xf6, 0x09, 0xf8, 0x09, 0xfa, 0x09, 0xfc, 0x09,
647    0xfe, 0x09, 0x00, 0x0a, 0x02, 0x0a, 0x04, 0x0a,
648    0x06, 0x0a, 0x08, 0x0a, 0x0a, 0x0a, 0x0c, 0x0a,
649    0x10, 0x0a, 0x18, 0x0a, 0x24, 0x0a, 0x2c, 0x0a,
650    0x32, 0x0a, 0x3c, 0x0a, 0x46, 0x0a, 0x4c, 0x0a,
651    0x50, 0x0a, 0x54, 0x0a, 0x5a, 0x0a, 0x5e, 0x0a,
652    0x66, 0x0a, 0x6c, 0x0a, 0x72, 0x0a, 0x78, 0x0a,
653    0x7e, 0x0a, 0x7c, 0x0a, 0x82, 0x0a, 0x8c, 0x0a,
654    0x92, 0x0a, 0x90, 0x0a, 0x98, 0x0a, 0x96, 0x0a,
655    0xa2, 0x0a, 0xb2, 0x0a, 0xb6, 0x0a, 0xc4, 0x0a,
656    0xe2, 0x0a, 0xe0, 0x0a, 0xe8, 0x0a, 0xee, 0x0a,
657    0xf4, 0x0a, 0xf2, 0x0a, 0xf8, 0x0a, 0x0c, 0x0b,
658    0x1a, 0x0b, 0x24, 0x0b, 0x40, 0x0b, 0x44, 0x0b,
659    0x48, 0x0b, 0x4e, 0x0b, 0x4c, 0x0b, 0x52, 0x0b,
660    0x68, 0x0b, 0x6c, 0x0b, 0x70, 0x0b, 0x76, 0x0b,
661    0x88, 0x0b, 0x92, 0x0b, 0xbe, 0x0b, 0xca, 0x0b,
662    0xce, 0x0b, 0xde, 0x0b, 0xf4, 0x0b, 0xfa, 0x0b,
663    0x00, 0x0c, 0x24, 0x0c, 0x28, 0x0c, 0x30, 0x0c,
664    0x36, 0x0c, 0x3c, 0x0c, 0x40, 0x0c, 0x4a, 0x0c,
665    0x50, 0x0c, 0x58, 0x0c, 0x56, 0x0c, 0x5c, 0x0c,
666    0x60, 0x0c, 0x64, 0x0c, 0x80, 0x0c, 0x94, 0x0c,
667    0x9a, 0x0c, 0x98, 0x0c, 0x9e, 0x0c, 0xa4, 0x0c,
668    0xa2, 0x0c, 0xa8, 0x0c, 0xac, 0x0c, 0xb0, 0x0c,
669    0xb4, 0x0c, 0xb8, 0x0c, 0xbc, 0x0c, 0xce, 0x0c,
670    0xd2, 0x0c, 0xd6, 0x0c, 0xf4, 0x0c, 0xfa, 0x0c,
671    0x00, 0x0d, 0xfe, 0x0c, 0x06, 0x0d, 0x0e, 0x0d,
672    0x0c, 0x0d, 0x16, 0x0d, 0x1c, 0x0d, 0x22, 0x0d,
673    0x20, 0x0d, 0x30, 0x0d, 0x7e, 0x0d, 0x82, 0x0d,
674    0x9a, 0x0d, 0xa0, 0x0d, 0xa6, 0x0d, 0xb0, 0x0d,
675    0xb8, 0x0d, 0xc2, 0x0d, 0xc8, 0x0d, 0xce, 0x0d,
676    0xd4, 0x0d, 0xdc, 0x0d, 0x1e, 0x0e, 0x2c, 0x0e,
677    0x3e, 0x0e, 0x4c, 0x0e, 0x50, 0x0e, 0x5e, 0x0e,
678    0xae, 0x0e, 0xb8, 0x0e, 0xc6, 0x0e, 0xca, 0x0e,
679    0,	  0
680};
681
682/* Fixup command. */
683#define KUE_TRIGCMD_OFFSET	5
684static const uint8_t kue_trig_seg[] = {
685    0xb6, 0xc3, 0x01, 0x00, 0x06, 0x64, 0x00, 0x00
686};
687