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