]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blob - src/patches/suse-2.6.27.31/patches.suse/kdb-ia64
Merge branch 'master' of git://git.ipfire.org/ipfire-2.x
[people/teissler/ipfire-2.x.git] / src / patches / suse-2.6.27.31 / patches.suse / kdb-ia64
1 From: SGI KDB Development <kdb@oss.sgi.com>
2 Subject:/kdb-v4.4-2.6.27-rc8-ia64-1
3 References: FATE#303971
4 X-URL: ftp://oss.sgi.com/www/projects/kdb/download/v4.4/
5
6 The KDB IA64 code.
7
8 Acked-by: Bernhard Walle <bwalle@suse.de>
9
10 ---
11 arch/ia64/Kconfig.debug | 97
12 arch/ia64/Makefile | 1
13 arch/ia64/include/asm/ansidecl.h | 383 +
14 arch/ia64/include/asm/bfd.h | 5089 +++++++++++++++++++++
15 arch/ia64/include/asm/kdb.h | 45
16 arch/ia64/include/asm/kdb_break.h | 24
17 arch/ia64/include/asm/kdbprivate.h | 124
18 arch/ia64/include/asm/kmap_types.h | 3
19 arch/ia64/include/asm/kregs.h | 2
20 arch/ia64/kdb/ChangeLog | 1085 ++++
21 arch/ia64/kdb/Makefile | 21
22 arch/ia64/kdb/cpu-ia64-opc.c | 598 ++
23 arch/ia64/kdb/ia64-asmtab.c | 8585 +++++++++++++++++++++++++++++++++++++
24 arch/ia64/kdb/ia64-asmtab.h | 158
25 arch/ia64/kdb/ia64-dis.c | 312 +
26 arch/ia64/kdb/ia64-opc.c | 749 +++
27 arch/ia64/kdb/ia64-opc.h | 141
28 arch/ia64/kdb/ia64.h | 402 +
29 arch/ia64/kdb/kdb_cmds | 17
30 arch/ia64/kdb/kdba_bp.c | 841 +++
31 arch/ia64/kdb/kdba_bt.c | 285 +
32 arch/ia64/kdb/kdba_fru.c | 65
33 arch/ia64/kdb/kdba_id.c | 529 ++
34 arch/ia64/kdb/kdba_io.c | 661 ++
35 arch/ia64/kdb/kdba_jmp.S | 394 +
36 arch/ia64/kdb/kdba_pod.c | 64
37 arch/ia64/kdb/kdba_support.c | 1720 +++++++
38 arch/ia64/kernel/head.S | 7
39 arch/ia64/kernel/mca.c | 72
40 arch/ia64/kernel/smp.c | 23
41 arch/ia64/kernel/traps.c | 22
42 arch/ia64/kernel/unwind.c | 33
43 32 files changed, 22539 insertions(+), 13 deletions(-)
44
45 --- a/arch/ia64/Kconfig.debug
46 +++ b/arch/ia64/Kconfig.debug
47 @@ -56,9 +56,106 @@ config IA64_DEBUG_IRQ
48 and restore instructions. It's useful for tracking down spinlock
49 problems, but slow! If you're unsure, select N.
50
51 +config KDB
52 + bool "Built-in Kernel Debugger support"
53 + depends on DEBUG_KERNEL
54 + select KALLSYMS
55 + select KALLSYMS_ALL
56 + help
57 + This option provides a built-in kernel debugger. The built-in
58 + kernel debugger contains commands which allow memory to be examined,
59 + instructions to be disassembled and breakpoints to be set. For details,
60 + see Documentation/kdb/kdb.mm and the manual pages kdb_bt, kdb_ss, etc.
61 + Kdb can also be used via the serial port. Set up the system to
62 + have a serial console (see Documentation/serial-console.txt).
63 + The key sequence <escape>KDB on the serial port will cause the
64 + kernel debugger to be entered with input from the serial port and
65 + output to the serial console. If unsure, say N.
66 +
67 +config KDB_MODULES
68 + tristate "KDB modules"
69 + depends on KDB
70 + help
71 + KDB can be extended by adding your own modules, in directory
72 + kdb/modules. This option selects the way that these modules should
73 + be compiled, as free standing modules (select M) or built into the
74 + kernel (select Y). If unsure say M.
75 +
76 +config KDB_OFF
77 + bool "KDB off by default"
78 + depends on KDB
79 + help
80 + Normally kdb is activated by default, as long as CONFIG_KDB is set.
81 + If you want to ship a kernel with kdb support but only have kdb
82 + turned on when the user requests it then select this option. When
83 + compiled with CONFIG_KDB_OFF, kdb ignores all events unless you boot
84 + with kdb=on or you echo "1" > /proc/sys/kernel/kdb. This option also
85 + works in reverse, if kdb is normally activated, you can boot with
86 + kdb=off or echo "0" > /proc/sys/kernel/kdb to deactivate kdb. If
87 + unsure, say N.
88 +
89 +config KDB_CONTINUE_CATASTROPHIC
90 + int "KDB continues after catastrophic errors"
91 + depends on KDB
92 + default "0"
93 + help
94 + This integer controls the behaviour of kdb when the kernel gets a
95 + catastrophic error, i.e. for a panic, oops, NMI or other watchdog
96 + tripping. CONFIG_KDB_CONTINUE_CATASTROPHIC interacts with
97 + /proc/sys/kernel/kdb and CONFIG_LKCD_DUMP (if your kernel has the
98 + LKCD patch).
99 + When KDB is active (/proc/sys/kernel/kdb == 1) and a catastrophic
100 + error occurs, nothing extra happens until you type 'go'.
101 + CONFIG_KDB_CONTINUE_CATASTROPHIC == 0 (default). The first time
102 + you type 'go', kdb warns you. The second time you type 'go', KDB
103 + tries to continue - no guarantees that the kernel is still usable.
104 + CONFIG_KDB_CONTINUE_CATASTROPHIC == 1. KDB tries to continue - no
105 + guarantees that the kernel is still usable.
106 + CONFIG_KDB_CONTINUE_CATASTROPHIC == 2. If your kernel has the LKCD
107 + patch and LKCD is configured to take a dump then KDB forces a dump.
108 + Whether or not a dump is taken, KDB forces a reboot.
109 + When KDB is not active (/proc/sys/kernel/kdb == 0) and a catastrophic
110 + error occurs, the following steps are automatic, no human
111 + intervention is required.
112 + CONFIG_KDB_CONTINUE_CATASTROPHIC == 0 (default) or 1. KDB attempts
113 + to continue - no guarantees that the kernel is still usable.
114 + CONFIG_KDB_CONTINUE_CATASTROPHIC == 2. If your kernel has the LKCD
115 + patch and LKCD is configured to take a dump then KDB automatically
116 + forces a dump. Whether or not a dump is taken, KDB forces a
117 + reboot.
118 + If you are not sure, say 0. Read Documentation/kdb/dump.txt before
119 + setting to 2.
120 +
121 +config KDB_USB
122 + bool "Support for USB Keyboard in KDB (OHCI and/or EHCI only)"
123 + depends on KDB && (USB_OHCI_HCD || USB_UHCI_HCD)
124 + help
125 + If you want to use kdb from USB keyboards then say Y here. If you
126 + say N then kdb can only be used from a PC (AT) keyboard or a serial
127 + console.
128 +
129 +config KDB_HARDWARE_BREAKPOINTS
130 + bool "Enable hardware breakpoints in KDB"
131 + depends on KDB
132 + default y
133 + help
134 + If you say Y here, KDB will allow you to use the IA64
135 + hardware watchpoint feature (via the bph and bpha
136 + commands). Currently, only data breakpoints are
137 + implemented.
138 +
139 config SYSVIPC_COMPAT
140 bool
141 depends on COMPAT && SYSVIPC
142 default y
143
144 +config KDB_KDUMP
145 + bool "Support for Kdump in KDB"
146 + depends on KDB
147 + select KEXEC
148 + default N
149 + help
150 + If you want to take Kdump kernel vmcore from KDB then say Y here.
151 + Of imsire. say N.
152 +
153 endmenu
154 --- a/arch/ia64/Makefile
155 +++ b/arch/ia64/Makefile
156 @@ -60,6 +60,7 @@ core-$(CONFIG_IA64_SGI_SN2) += arch/ia64
157 core-$(CONFIG_IA64_SGI_UV) += arch/ia64/uv/
158 core-$(CONFIG_KVM) += arch/ia64/kvm/
159
160 +drivers-$(CONFIG_KDB) += arch/$(ARCH)/kdb/
161 drivers-$(CONFIG_PCI) += arch/ia64/pci/
162 drivers-$(CONFIG_IA64_HP_SIM) += arch/ia64/hp/sim/
163 drivers-$(CONFIG_IA64_HP_ZX1) += arch/ia64/hp/common/ arch/ia64/hp/zx1/
164 --- /dev/null
165 +++ b/arch/ia64/include/asm/ansidecl.h
166 @@ -0,0 +1,383 @@
167 +/* ANSI and traditional C compatability macros
168 + Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
169 + Free Software Foundation, Inc.
170 + This file is part of the GNU C Library.
171 +
172 +This program is free software; you can redistribute it and/or modify
173 +it under the terms of the GNU General Public License as published by
174 +the Free Software Foundation; either version 2 of the License, or
175 +(at your option) any later version.
176 +
177 +This program is distributed in the hope that it will be useful,
178 +but WITHOUT ANY WARRANTY; without even the implied warranty of
179 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
180 +GNU General Public License for more details.
181 +
182 +You should have received a copy of the GNU General Public License
183 +along with this program; if not, write to the Free Software
184 +Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
185 +
186 +/* Extracted from binutils 2.16.91.0.2 (OpenSUSE 10.0) and modified for kdb use.
187 + * Any trailing whitespace was removed and #ifdef/ifndef __KERNEL__ added as
188 + * required.
189 + * Keith Owens <kaos@sgi.com> 15 May 2006
190 + */
191 +
192 +/* ANSI and traditional C compatibility macros
193 +
194 + ANSI C is assumed if __STDC__ is #defined.
195 +
196 + Macro ANSI C definition Traditional C definition
197 + ----- ---- - ---------- ----------- - ----------
198 + ANSI_PROTOTYPES 1 not defined
199 + PTR `void *' `char *'
200 + PTRCONST `void *const' `char *'
201 + LONG_DOUBLE `long double' `double'
202 + const not defined `'
203 + volatile not defined `'
204 + signed not defined `'
205 + VA_START(ap, var) va_start(ap, var) va_start(ap)
206 +
207 + Note that it is safe to write "void foo();" indicating a function
208 + with no return value, in all K+R compilers we have been able to test.
209 +
210 + For declaring functions with prototypes, we also provide these:
211 +
212 + PARAMS ((prototype))
213 + -- for functions which take a fixed number of arguments. Use this
214 + when declaring the function. When defining the function, write a
215 + K+R style argument list. For example:
216 +
217 + char *strcpy PARAMS ((char *dest, char *source));
218 + ...
219 + char *
220 + strcpy (dest, source)
221 + char *dest;
222 + char *source;
223 + { ... }
224 +
225 +
226 + VPARAMS ((prototype, ...))
227 + -- for functions which take a variable number of arguments. Use
228 + PARAMS to declare the function, VPARAMS to define it. For example:
229 +
230 + int printf PARAMS ((const char *format, ...));
231 + ...
232 + int
233 + printf VPARAMS ((const char *format, ...))
234 + {
235 + ...
236 + }
237 +
238 + For writing functions which take variable numbers of arguments, we
239 + also provide the VA_OPEN, VA_CLOSE, and VA_FIXEDARG macros. These
240 + hide the differences between K+R <varargs.h> and C89 <stdarg.h> more
241 + thoroughly than the simple VA_START() macro mentioned above.
242 +
243 + VA_OPEN and VA_CLOSE are used *instead of* va_start and va_end.
244 + Immediately after VA_OPEN, put a sequence of VA_FIXEDARG calls
245 + corresponding to the list of fixed arguments. Then use va_arg
246 + normally to get the variable arguments, or pass your va_list object
247 + around. You do not declare the va_list yourself; VA_OPEN does it
248 + for you.
249 +
250 + Here is a complete example:
251 +
252 + int
253 + printf VPARAMS ((const char *format, ...))
254 + {
255 + int result;
256 +
257 + VA_OPEN (ap, format);
258 + VA_FIXEDARG (ap, const char *, format);
259 +
260 + result = vfprintf (stdout, format, ap);
261 + VA_CLOSE (ap);
262 +
263 + return result;
264 + }
265 +
266 +
267 + You can declare variables either before or after the VA_OPEN,
268 + VA_FIXEDARG sequence. Also, VA_OPEN and VA_CLOSE are the beginning
269 + and end of a block. They must appear at the same nesting level,
270 + and any variables declared after VA_OPEN go out of scope at
271 + VA_CLOSE. Unfortunately, with a K+R compiler, that includes the
272 + argument list. You can have multiple instances of VA_OPEN/VA_CLOSE
273 + pairs in a single function in case you need to traverse the
274 + argument list more than once.
275 +
276 + For ease of writing code which uses GCC extensions but needs to be
277 + portable to other compilers, we provide the GCC_VERSION macro that
278 + simplifies testing __GNUC__ and __GNUC_MINOR__ together, and various
279 + wrappers around __attribute__. Also, __extension__ will be #defined
280 + to nothing if it doesn't work. See below.
281 +
282 + This header also defines a lot of obsolete macros:
283 + CONST, VOLATILE, SIGNED, PROTO, EXFUN, DEFUN, DEFUN_VOID,
284 + AND, DOTS, NOARGS. Don't use them. */
285 +
286 +#ifndef _ANSIDECL_H
287 +#define _ANSIDECL_H 1
288 +
289 +/* Every source file includes this file,
290 + so they will all get the switch for lint. */
291 +/* LINTLIBRARY */
292 +
293 +/* Using MACRO(x,y) in cpp #if conditionals does not work with some
294 + older preprocessors. Thus we can't define something like this:
295 +
296 +#define HAVE_GCC_VERSION(MAJOR, MINOR) \
297 + (__GNUC__ > (MAJOR) || (__GNUC__ == (MAJOR) && __GNUC_MINOR__ >= (MINOR)))
298 +
299 +and then test "#if HAVE_GCC_VERSION(2,7)".
300 +
301 +So instead we use the macro below and test it against specific values. */
302 +
303 +/* This macro simplifies testing whether we are using gcc, and if it
304 + is of a particular minimum version. (Both major & minor numbers are
305 + significant.) This macro will evaluate to 0 if we are not using
306 + gcc at all. */
307 +#ifndef GCC_VERSION
308 +#define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
309 +#endif /* GCC_VERSION */
310 +
311 +#if defined (__STDC__) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(_WIN32) || (defined(__alpha) && defined(__cplusplus))
312 +/* All known AIX compilers implement these things (but don't always
313 + define __STDC__). The RISC/OS MIPS compiler defines these things
314 + in SVR4 mode, but does not define __STDC__. */
315 +/* eraxxon@alumni.rice.edu: The Compaq C++ compiler, unlike many other
316 + C++ compilers, does not define __STDC__, though it acts as if this
317 + was so. (Verified versions: 5.7, 6.2, 6.3, 6.5) */
318 +
319 +#define ANSI_PROTOTYPES 1
320 +#define PTR void *
321 +#define PTRCONST void *const
322 +#define LONG_DOUBLE long double
323 +
324 +/* PARAMS is often defined elsewhere (e.g. by libintl.h), so wrap it in
325 + a #ifndef. */
326 +#ifndef PARAMS
327 +#define PARAMS(ARGS) ARGS
328 +#endif
329 +
330 +#define VPARAMS(ARGS) ARGS
331 +#define VA_START(VA_LIST, VAR) va_start(VA_LIST, VAR)
332 +
333 +/* variadic function helper macros */
334 +/* "struct Qdmy" swallows the semicolon after VA_OPEN/VA_FIXEDARG's
335 + use without inhibiting further decls and without declaring an
336 + actual variable. */
337 +#define VA_OPEN(AP, VAR) { va_list AP; va_start(AP, VAR); { struct Qdmy
338 +#define VA_CLOSE(AP) } va_end(AP); }
339 +#define VA_FIXEDARG(AP, T, N) struct Qdmy
340 +
341 +#undef const
342 +#undef volatile
343 +#undef signed
344 +
345 +#ifdef __KERNEL__
346 +#ifndef __STDC_VERSION__
347 +#define __STDC_VERSION__ 0
348 +#endif
349 +#endif /* __KERNEL__ */
350 +
351 +/* inline requires special treatment; it's in C99, and GCC >=2.7 supports
352 + it too, but it's not in C89. */
353 +#undef inline
354 +#if __STDC_VERSION__ > 199901L
355 +/* it's a keyword */
356 +#else
357 +# if GCC_VERSION >= 2007
358 +# define inline __inline__ /* __inline__ prevents -pedantic warnings */
359 +# else
360 +# define inline /* nothing */
361 +# endif
362 +#endif
363 +
364 +/* These are obsolete. Do not use. */
365 +#ifndef IN_GCC
366 +#define CONST const
367 +#define VOLATILE volatile
368 +#define SIGNED signed
369 +
370 +#define PROTO(type, name, arglist) type name arglist
371 +#define EXFUN(name, proto) name proto
372 +#define DEFUN(name, arglist, args) name(args)
373 +#define DEFUN_VOID(name) name(void)
374 +#define AND ,
375 +#define DOTS , ...
376 +#define NOARGS void
377 +#endif /* ! IN_GCC */
378 +
379 +#else /* Not ANSI C. */
380 +
381 +#undef ANSI_PROTOTYPES
382 +#define PTR char *
383 +#define PTRCONST PTR
384 +#define LONG_DOUBLE double
385 +
386 +#define PARAMS(args) ()
387 +#define VPARAMS(args) (va_alist) va_dcl
388 +#define VA_START(va_list, var) va_start(va_list)
389 +
390 +#define VA_OPEN(AP, VAR) { va_list AP; va_start(AP); { struct Qdmy
391 +#define VA_CLOSE(AP) } va_end(AP); }
392 +#define VA_FIXEDARG(AP, TYPE, NAME) TYPE NAME = va_arg(AP, TYPE)
393 +
394 +/* some systems define these in header files for non-ansi mode */
395 +#undef const
396 +#undef volatile
397 +#undef signed
398 +#undef inline
399 +#define const
400 +#define volatile
401 +#define signed
402 +#define inline
403 +
404 +#ifndef IN_GCC
405 +#define CONST
406 +#define VOLATILE
407 +#define SIGNED
408 +
409 +#define PROTO(type, name, arglist) type name ()
410 +#define EXFUN(name, proto) name()
411 +#define DEFUN(name, arglist, args) name arglist args;
412 +#define DEFUN_VOID(name) name()
413 +#define AND ;
414 +#define DOTS
415 +#define NOARGS
416 +#endif /* ! IN_GCC */
417 +
418 +#endif /* ANSI C. */
419 +
420 +/* Define macros for some gcc attributes. This permits us to use the
421 + macros freely, and know that they will come into play for the
422 + version of gcc in which they are supported. */
423 +
424 +#if (GCC_VERSION < 2007)
425 +# define __attribute__(x)
426 +#endif
427 +
428 +/* Attribute __malloc__ on functions was valid as of gcc 2.96. */
429 +#ifndef ATTRIBUTE_MALLOC
430 +# if (GCC_VERSION >= 2096)
431 +# define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
432 +# else
433 +# define ATTRIBUTE_MALLOC
434 +# endif /* GNUC >= 2.96 */
435 +#endif /* ATTRIBUTE_MALLOC */
436 +
437 +/* Attributes on labels were valid as of gcc 2.93. */
438 +#ifndef ATTRIBUTE_UNUSED_LABEL
439 +# if (!defined (__cplusplus) && GCC_VERSION >= 2093)
440 +# define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED
441 +# else
442 +# define ATTRIBUTE_UNUSED_LABEL
443 +# endif /* !__cplusplus && GNUC >= 2.93 */
444 +#endif /* ATTRIBUTE_UNUSED_LABEL */
445 +
446 +#ifndef ATTRIBUTE_UNUSED
447 +#define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
448 +#endif /* ATTRIBUTE_UNUSED */
449 +
450 +/* Before GCC 3.4, the C++ frontend couldn't parse attributes placed after the
451 + identifier name. */
452 +#if ! defined(__cplusplus) || (GCC_VERSION >= 3004)
453 +# define ARG_UNUSED(NAME) NAME ATTRIBUTE_UNUSED
454 +#else /* !__cplusplus || GNUC >= 3.4 */
455 +# define ARG_UNUSED(NAME) NAME
456 +#endif /* !__cplusplus || GNUC >= 3.4 */
457 +
458 +#ifndef ATTRIBUTE_NORETURN
459 +#define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__))
460 +#endif /* ATTRIBUTE_NORETURN */
461 +
462 +/* Attribute `nonnull' was valid as of gcc 3.3. */
463 +#ifndef ATTRIBUTE_NONNULL
464 +# if (GCC_VERSION >= 3003)
465 +# define ATTRIBUTE_NONNULL(m) __attribute__ ((__nonnull__ (m)))
466 +# else
467 +# define ATTRIBUTE_NONNULL(m)
468 +# endif /* GNUC >= 3.3 */
469 +#endif /* ATTRIBUTE_NONNULL */
470 +
471 +/* Attribute `pure' was valid as of gcc 3.0. */
472 +#ifndef ATTRIBUTE_PURE
473 +# if (GCC_VERSION >= 3000)
474 +# define ATTRIBUTE_PURE __attribute__ ((__pure__))
475 +# else
476 +# define ATTRIBUTE_PURE
477 +# endif /* GNUC >= 3.0 */
478 +#endif /* ATTRIBUTE_PURE */
479 +
480 +/* Use ATTRIBUTE_PRINTF when the format specifier must not be NULL.
481 + This was the case for the `printf' format attribute by itself
482 + before GCC 3.3, but as of 3.3 we need to add the `nonnull'
483 + attribute to retain this behavior. */
484 +#ifndef ATTRIBUTE_PRINTF
485 +#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) ATTRIBUTE_NONNULL(m)
486 +#define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2)
487 +#define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3)
488 +#define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4)
489 +#define ATTRIBUTE_PRINTF_4 ATTRIBUTE_PRINTF(4, 5)
490 +#define ATTRIBUTE_PRINTF_5 ATTRIBUTE_PRINTF(5, 6)
491 +#endif /* ATTRIBUTE_PRINTF */
492 +
493 +/* Use ATTRIBUTE_FPTR_PRINTF when the format attribute is to be set on
494 + a function pointer. Format attributes were allowed on function
495 + pointers as of gcc 3.1. */
496 +#ifndef ATTRIBUTE_FPTR_PRINTF
497 +# if (GCC_VERSION >= 3001)
498 +# define ATTRIBUTE_FPTR_PRINTF(m, n) ATTRIBUTE_PRINTF(m, n)
499 +# else
500 +# define ATTRIBUTE_FPTR_PRINTF(m, n)
501 +# endif /* GNUC >= 3.1 */
502 +# define ATTRIBUTE_FPTR_PRINTF_1 ATTRIBUTE_FPTR_PRINTF(1, 2)
503 +# define ATTRIBUTE_FPTR_PRINTF_2 ATTRIBUTE_FPTR_PRINTF(2, 3)
504 +# define ATTRIBUTE_FPTR_PRINTF_3 ATTRIBUTE_FPTR_PRINTF(3, 4)
505 +# define ATTRIBUTE_FPTR_PRINTF_4 ATTRIBUTE_FPTR_PRINTF(4, 5)
506 +# define ATTRIBUTE_FPTR_PRINTF_5 ATTRIBUTE_FPTR_PRINTF(5, 6)
507 +#endif /* ATTRIBUTE_FPTR_PRINTF */
508 +
509 +/* Use ATTRIBUTE_NULL_PRINTF when the format specifier may be NULL. A
510 + NULL format specifier was allowed as of gcc 3.3. */
511 +#ifndef ATTRIBUTE_NULL_PRINTF
512 +# if (GCC_VERSION >= 3003)
513 +# define ATTRIBUTE_NULL_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n)))
514 +# else
515 +# define ATTRIBUTE_NULL_PRINTF(m, n)
516 +# endif /* GNUC >= 3.3 */
517 +# define ATTRIBUTE_NULL_PRINTF_1 ATTRIBUTE_NULL_PRINTF(1, 2)
518 +# define ATTRIBUTE_NULL_PRINTF_2 ATTRIBUTE_NULL_PRINTF(2, 3)
519 +# define ATTRIBUTE_NULL_PRINTF_3 ATTRIBUTE_NULL_PRINTF(3, 4)
520 +# define ATTRIBUTE_NULL_PRINTF_4 ATTRIBUTE_NULL_PRINTF(4, 5)
521 +# define ATTRIBUTE_NULL_PRINTF_5 ATTRIBUTE_NULL_PRINTF(5, 6)
522 +#endif /* ATTRIBUTE_NULL_PRINTF */
523 +
524 +/* Attribute `sentinel' was valid as of gcc 3.5. */
525 +#ifndef ATTRIBUTE_SENTINEL
526 +# if (GCC_VERSION >= 3005)
527 +# define ATTRIBUTE_SENTINEL __attribute__ ((__sentinel__))
528 +# else
529 +# define ATTRIBUTE_SENTINEL
530 +# endif /* GNUC >= 3.5 */
531 +#endif /* ATTRIBUTE_SENTINEL */
532 +
533 +
534 +#ifndef ATTRIBUTE_ALIGNED_ALIGNOF
535 +# if (GCC_VERSION >= 3000)
536 +# define ATTRIBUTE_ALIGNED_ALIGNOF(m) __attribute__ ((__aligned__ (__alignof__ (m))))
537 +# else
538 +# define ATTRIBUTE_ALIGNED_ALIGNOF(m)
539 +# endif /* GNUC >= 3.0 */
540 +#endif /* ATTRIBUTE_ALIGNED_ALIGNOF */
541 +
542 +/* We use __extension__ in some places to suppress -pedantic warnings
543 + about GCC extensions. This feature didn't work properly before
544 + gcc 2.8. */
545 +#if GCC_VERSION < 2008
546 +#define __extension__
547 +#endif
548 +
549 +#endif /* ansidecl.h */
550 --- /dev/null
551 +++ b/arch/ia64/include/asm/bfd.h
552 @@ -0,0 +1,5089 @@
553 +/* DO NOT EDIT! -*- buffer-read-only: t -*- This file is automatically
554 + generated from "bfd-in.h", "init.c", "opncls.c", "libbfd.c",
555 + "bfdio.c", "bfdwin.c", "section.c", "archures.c", "reloc.c",
556 + "syms.c", "bfd.c", "archive.c", "corefile.c", "targets.c", "format.c",
557 + "linker.c" and "simple.c".
558 + Run "make headers" in your build bfd/ to regenerate. */
559 +
560 +/* Main header file for the bfd library -- portable access to object files.
561 +
562 + Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
563 + 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
564 +
565 + Contributed by Cygnus Support.
566 +
567 + This file is part of BFD, the Binary File Descriptor library.
568 +
569 + This program is free software; you can redistribute it and/or modify
570 + it under the terms of the GNU General Public License as published by
571 + the Free Software Foundation; either version 2 of the License, or
572 + (at your option) any later version.
573 +
574 + This program is distributed in the hope that it will be useful,
575 + but WITHOUT ANY WARRANTY; without even the implied warranty of
576 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
577 + GNU General Public License for more details.
578 +
579 + You should have received a copy of the GNU General Public License
580 + along with this program; if not, write to the Free Software
581 + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
582 +
583 +/* Extracted from binutils 2.16.91.0.2 (OpenSUSE 10.0) and modified for kdb use.
584 + * Any trailing whitespace was removed and #ifdef/ifndef __KERNEL__ added as
585 + * required.
586 + * Keith Owens <kaos@sgi.com> 15 May 2006
587 + */
588 +
589 +#ifndef __BFD_H_SEEN__
590 +#define __BFD_H_SEEN__
591 +
592 +#ifdef __cplusplus
593 +extern "C" {
594 +#endif
595 +
596 +#ifdef __KERNEL__
597 +#include <asm/ansidecl.h>
598 +#else /* __KERNEL__ */
599 +#include "ansidecl.h"
600 +#include "symcat.h"
601 +#endif /* __KERNEL__ */
602 +#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
603 +#ifndef SABER
604 +/* This hack is to avoid a problem with some strict ANSI C preprocessors.
605 + The problem is, "32_" is not a valid preprocessing token, and we don't
606 + want extra underscores (e.g., "nlm_32_"). The XCONCAT2 macro will
607 + cause the inner CONCAT2 macros to be evaluated first, producing
608 + still-valid pp-tokens. Then the final concatenation can be done. */
609 +#undef CONCAT4
610 +#define CONCAT4(a,b,c,d) XCONCAT2(CONCAT2(a,b),CONCAT2(c,d))
611 +#endif
612 +#endif
613 +
614 +/* The word size used by BFD on the host. This may be 64 with a 32
615 + bit target if the host is 64 bit, or if other 64 bit targets have
616 + been selected with --enable-targets, or if --enable-64-bit-bfd. */
617 +#define BFD_ARCH_SIZE 64
618 +
619 +/* The word size of the default bfd target. */
620 +#define BFD_DEFAULT_TARGET_SIZE 64
621 +
622 +#define BFD_HOST_64BIT_LONG 1
623 +#define BFD_HOST_LONG_LONG 1
624 +#if 1
625 +#define BFD_HOST_64_BIT long
626 +#define BFD_HOST_U_64_BIT unsigned long
627 +typedef BFD_HOST_64_BIT bfd_int64_t;
628 +typedef BFD_HOST_U_64_BIT bfd_uint64_t;
629 +#endif
630 +
631 +#if BFD_ARCH_SIZE >= 64
632 +#define BFD64
633 +#endif
634 +
635 +#ifndef INLINE
636 +#if __GNUC__ >= 2
637 +#define INLINE __inline__
638 +#else
639 +#define INLINE
640 +#endif
641 +#endif
642 +
643 +/* Forward declaration. */
644 +typedef struct bfd bfd;
645 +
646 +/* Boolean type used in bfd. Too many systems define their own
647 + versions of "boolean" for us to safely typedef a "boolean" of
648 + our own. Using an enum for "bfd_boolean" has its own set of
649 + problems, with strange looking casts required to avoid warnings
650 + on some older compilers. Thus we just use an int.
651 +
652 + General rule: Functions which are bfd_boolean return TRUE on
653 + success and FALSE on failure (unless they're a predicate). */
654 +
655 +typedef int bfd_boolean;
656 +#undef FALSE
657 +#undef TRUE
658 +#define FALSE 0
659 +#define TRUE 1
660 +
661 +#ifdef BFD64
662 +
663 +#ifndef BFD_HOST_64_BIT
664 + #error No 64 bit integer type available
665 +#endif /* ! defined (BFD_HOST_64_BIT) */
666 +
667 +typedef BFD_HOST_U_64_BIT bfd_vma;
668 +typedef BFD_HOST_64_BIT bfd_signed_vma;
669 +typedef BFD_HOST_U_64_BIT bfd_size_type;
670 +typedef BFD_HOST_U_64_BIT symvalue;
671 +
672 +#ifndef fprintf_vma
673 +#if BFD_HOST_64BIT_LONG
674 +#define sprintf_vma(s,x) sprintf (s, "%016lx", x)
675 +#define fprintf_vma(f,x) fprintf (f, "%016lx", x)
676 +#else
677 +#define _bfd_int64_low(x) ((unsigned long) (((x) & 0xffffffff)))
678 +#define _bfd_int64_high(x) ((unsigned long) (((x) >> 32) & 0xffffffff))
679 +#define fprintf_vma(s,x) \
680 + fprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x))
681 +#define sprintf_vma(s,x) \
682 + sprintf ((s), "%08lx%08lx", _bfd_int64_high (x), _bfd_int64_low (x))
683 +#endif
684 +#endif
685 +
686 +#else /* not BFD64 */
687 +
688 +/* Represent a target address. Also used as a generic unsigned type
689 + which is guaranteed to be big enough to hold any arithmetic types
690 + we need to deal with. */
691 +typedef unsigned long bfd_vma;
692 +
693 +/* A generic signed type which is guaranteed to be big enough to hold any
694 + arithmetic types we need to deal with. Can be assumed to be compatible
695 + with bfd_vma in the same way that signed and unsigned ints are compatible
696 + (as parameters, in assignment, etc). */
697 +typedef long bfd_signed_vma;
698 +
699 +typedef unsigned long symvalue;
700 +typedef unsigned long bfd_size_type;
701 +
702 +/* Print a bfd_vma x on stream s. */
703 +#define fprintf_vma(s,x) fprintf (s, "%08lx", x)
704 +#define sprintf_vma(s,x) sprintf (s, "%08lx", x)
705 +
706 +#endif /* not BFD64 */
707 +
708 +#define HALF_BFD_SIZE_TYPE \
709 + (((bfd_size_type) 1) << (8 * sizeof (bfd_size_type) / 2))
710 +
711 +#ifndef BFD_HOST_64_BIT
712 +/* Fall back on a 32 bit type. The idea is to make these types always
713 + available for function return types, but in the case that
714 + BFD_HOST_64_BIT is undefined such a function should abort or
715 + otherwise signal an error. */
716 +typedef bfd_signed_vma bfd_int64_t;
717 +typedef bfd_vma bfd_uint64_t;
718 +#endif
719 +
720 +/* An offset into a file. BFD always uses the largest possible offset
721 + based on the build time availability of fseek, fseeko, or fseeko64. */
722 +typedef BFD_HOST_64_BIT file_ptr;
723 +typedef unsigned BFD_HOST_64_BIT ufile_ptr;
724 +
725 +extern void bfd_sprintf_vma (bfd *, char *, bfd_vma);
726 +extern void bfd_fprintf_vma (bfd *, void *, bfd_vma);
727 +
728 +#define printf_vma(x) fprintf_vma(stdout,x)
729 +#define bfd_printf_vma(abfd,x) bfd_fprintf_vma (abfd,stdout,x)
730 +
731 +typedef unsigned int flagword; /* 32 bits of flags */
732 +typedef unsigned char bfd_byte;
733 +
734 +typedef int (*bfd_qsort_closure_func) (const void *, const void *, const void *);
735 +extern void bfd_qsort (void *base, bfd_size_type nmemb, bfd_size_type size,
736 + bfd_qsort_closure_func cmp, void *closure);
737 +\f
738 +/* File formats. */
739 +
740 +typedef enum bfd_format
741 +{
742 + bfd_unknown = 0, /* File format is unknown. */
743 + bfd_object, /* Linker/assembler/compiler output. */
744 + bfd_archive, /* Object archive file. */
745 + bfd_core, /* Core dump. */
746 + bfd_type_end /* Marks the end; don't use it! */
747 +}
748 +bfd_format;
749 +
750 +/* Values that may appear in the flags field of a BFD. These also
751 + appear in the object_flags field of the bfd_target structure, where
752 + they indicate the set of flags used by that backend (not all flags
753 + are meaningful for all object file formats) (FIXME: at the moment,
754 + the object_flags values have mostly just been copied from backend
755 + to another, and are not necessarily correct). */
756 +
757 +/* No flags. */
758 +#define BFD_NO_FLAGS 0x00
759 +
760 +/* BFD contains relocation entries. */
761 +#define HAS_RELOC 0x01
762 +
763 +/* BFD is directly executable. */
764 +#define EXEC_P 0x02
765 +
766 +/* BFD has line number information (basically used for F_LNNO in a
767 + COFF header). */
768 +#define HAS_LINENO 0x04
769 +
770 +/* BFD has debugging information. */
771 +#define HAS_DEBUG 0x08
772 +
773 +/* BFD has symbols. */
774 +#define HAS_SYMS 0x10
775 +
776 +/* BFD has local symbols (basically used for F_LSYMS in a COFF
777 + header). */
778 +#define HAS_LOCALS 0x20
779 +
780 +/* BFD is a dynamic object. */
781 +#define DYNAMIC 0x40
782 +
783 +/* Text section is write protected (if D_PAGED is not set, this is
784 + like an a.out NMAGIC file) (the linker sets this by default, but
785 + clears it for -r or -N). */
786 +#define WP_TEXT 0x80
787 +
788 +/* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
789 + linker sets this by default, but clears it for -r or -n or -N). */
790 +#define D_PAGED 0x100
791 +
792 +/* BFD is relaxable (this means that bfd_relax_section may be able to
793 + do something) (sometimes bfd_relax_section can do something even if
794 + this is not set). */
795 +#define BFD_IS_RELAXABLE 0x200
796 +
797 +/* This may be set before writing out a BFD to request using a
798 + traditional format. For example, this is used to request that when
799 + writing out an a.out object the symbols not be hashed to eliminate
800 + duplicates. */
801 +#define BFD_TRADITIONAL_FORMAT 0x400
802 +
803 +/* This flag indicates that the BFD contents are actually cached in
804 + memory. If this is set, iostream points to a bfd_in_memory struct. */
805 +#define BFD_IN_MEMORY 0x800
806 +
807 +/* The sections in this BFD specify a memory page. */
808 +#define HAS_LOAD_PAGE 0x1000
809 +
810 +/* This BFD has been created by the linker and doesn't correspond
811 + to any input file. */
812 +#define BFD_LINKER_CREATED 0x2000
813 +\f
814 +/* Symbols and relocation. */
815 +
816 +/* A count of carsyms (canonical archive symbols). */
817 +typedef unsigned long symindex;
818 +
819 +/* How to perform a relocation. */
820 +typedef const struct reloc_howto_struct reloc_howto_type;
821 +
822 +#define BFD_NO_MORE_SYMBOLS ((symindex) ~0)
823 +
824 +/* General purpose part of a symbol X;
825 + target specific parts are in libcoff.h, libaout.h, etc. */
826 +
827 +#define bfd_get_section(x) ((x)->section)
828 +#define bfd_get_output_section(x) ((x)->section->output_section)
829 +#define bfd_set_section(x,y) ((x)->section) = (y)
830 +#define bfd_asymbol_base(x) ((x)->section->vma)
831 +#define bfd_asymbol_value(x) (bfd_asymbol_base(x) + (x)->value)
832 +#define bfd_asymbol_name(x) ((x)->name)
833 +/*Perhaps future: #define bfd_asymbol_bfd(x) ((x)->section->owner)*/
834 +#define bfd_asymbol_bfd(x) ((x)->the_bfd)
835 +#define bfd_asymbol_flavour(x) (bfd_asymbol_bfd(x)->xvec->flavour)
836 +
837 +/* A canonical archive symbol. */
838 +/* This is a type pun with struct ranlib on purpose! */
839 +typedef struct carsym
840 +{
841 + char *name;
842 + file_ptr file_offset; /* Look here to find the file. */
843 +}
844 +carsym; /* To make these you call a carsymogen. */
845 +
846 +/* Used in generating armaps (archive tables of contents).
847 + Perhaps just a forward definition would do? */
848 +struct orl /* Output ranlib. */
849 +{
850 + char **name; /* Symbol name. */
851 + union
852 + {
853 + file_ptr pos;
854 + bfd *abfd;
855 + } u; /* bfd* or file position. */
856 + int namidx; /* Index into string table. */
857 +};
858 +\f
859 +/* Linenumber stuff. */
860 +typedef struct lineno_cache_entry
861 +{
862 + unsigned int line_number; /* Linenumber from start of function. */
863 + union
864 + {
865 + struct bfd_symbol *sym; /* Function name. */
866 + bfd_vma offset; /* Offset into section. */
867 + } u;
868 +}
869 +alent;
870 +\f
871 +/* Object and core file sections. */
872 +
873 +#define align_power(addr, align) \
874 + (((addr) + ((bfd_vma) 1 << (align)) - 1) & ((bfd_vma) -1 << (align)))
875 +
876 +typedef struct bfd_section *sec_ptr;
877 +
878 +#define bfd_get_section_name(bfd, ptr) ((ptr)->name + 0)
879 +#define bfd_get_section_vma(bfd, ptr) ((ptr)->vma + 0)
880 +#define bfd_get_section_lma(bfd, ptr) ((ptr)->lma + 0)
881 +#define bfd_get_section_alignment(bfd, ptr) ((ptr)->alignment_power + 0)
882 +#define bfd_section_name(bfd, ptr) ((ptr)->name)
883 +#define bfd_section_size(bfd, ptr) ((ptr)->size)
884 +#define bfd_get_section_size(ptr) ((ptr)->size)
885 +#define bfd_section_vma(bfd, ptr) ((ptr)->vma)
886 +#define bfd_section_lma(bfd, ptr) ((ptr)->lma)
887 +#define bfd_section_alignment(bfd, ptr) ((ptr)->alignment_power)
888 +#define bfd_get_section_flags(bfd, ptr) ((ptr)->flags + 0)
889 +#define bfd_get_section_userdata(bfd, ptr) ((ptr)->userdata)
890 +
891 +#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
892 +
893 +#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
894 +#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
895 +#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
896 +/* Find the address one past the end of SEC. */
897 +#define bfd_get_section_limit(bfd, sec) \
898 + (((sec)->rawsize ? (sec)->rawsize : (sec)->size) \
899 + / bfd_octets_per_byte (bfd))
900 +
901 +typedef struct stat stat_type;
902 +\f
903 +typedef enum bfd_print_symbol
904 +{
905 + bfd_print_symbol_name,
906 + bfd_print_symbol_more,
907 + bfd_print_symbol_all
908 +} bfd_print_symbol_type;
909 +
910 +/* Information about a symbol that nm needs. */
911 +
912 +typedef struct _symbol_info
913 +{
914 + symvalue value;
915 + char type;
916 + const char *name; /* Symbol name. */
917 + unsigned char stab_type; /* Stab type. */
918 + char stab_other; /* Stab other. */
919 + short stab_desc; /* Stab desc. */
920 + const char *stab_name; /* String for stab type. */
921 +} symbol_info;
922 +
923 +/* Get the name of a stabs type code. */
924 +
925 +extern const char *bfd_get_stab_name (int);
926 +\f
927 +/* Hash table routines. There is no way to free up a hash table. */
928 +
929 +/* An element in the hash table. Most uses will actually use a larger
930 + structure, and an instance of this will be the first field. */
931 +
932 +struct bfd_hash_entry
933 +{
934 + /* Next entry for this hash code. */
935 + struct bfd_hash_entry *next;
936 + /* String being hashed. */
937 + const char *string;
938 + /* Hash code. This is the full hash code, not the index into the
939 + table. */
940 + unsigned long hash;
941 +};
942 +
943 +/* A hash table. */
944 +
945 +struct bfd_hash_table
946 +{
947 + /* The hash array. */
948 + struct bfd_hash_entry **table;
949 + /* The number of slots in the hash table. */
950 + unsigned int size;
951 + /* A function used to create new elements in the hash table. The
952 + first entry is itself a pointer to an element. When this
953 + function is first invoked, this pointer will be NULL. However,
954 + having the pointer permits a hierarchy of method functions to be
955 + built each of which calls the function in the superclass. Thus
956 + each function should be written to allocate a new block of memory
957 + only if the argument is NULL. */
958 + struct bfd_hash_entry *(*newfunc)
959 + (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
960 + /* An objalloc for this hash table. This is a struct objalloc *,
961 + but we use void * to avoid requiring the inclusion of objalloc.h. */
962 + void *memory;
963 +};
964 +
965 +/* Initialize a hash table. */
966 +extern bfd_boolean bfd_hash_table_init
967 + (struct bfd_hash_table *,
968 + struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
969 + struct bfd_hash_table *,
970 + const char *));
971 +
972 +/* Initialize a hash table specifying a size. */
973 +extern bfd_boolean bfd_hash_table_init_n
974 + (struct bfd_hash_table *,
975 + struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
976 + struct bfd_hash_table *,
977 + const char *),
978 + unsigned int size);
979 +
980 +/* Free up a hash table. */
981 +extern void bfd_hash_table_free
982 + (struct bfd_hash_table *);
983 +
984 +/* Look up a string in a hash table. If CREATE is TRUE, a new entry
985 + will be created for this string if one does not already exist. The
986 + COPY argument must be TRUE if this routine should copy the string
987 + into newly allocated memory when adding an entry. */
988 +extern struct bfd_hash_entry *bfd_hash_lookup
989 + (struct bfd_hash_table *, const char *, bfd_boolean create,
990 + bfd_boolean copy);
991 +
992 +/* Replace an entry in a hash table. */
993 +extern void bfd_hash_replace
994 + (struct bfd_hash_table *, struct bfd_hash_entry *old,
995 + struct bfd_hash_entry *nw);
996 +
997 +/* Base method for creating a hash table entry. */
998 +extern struct bfd_hash_entry *bfd_hash_newfunc
999 + (struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
1000 +
1001 +/* Grab some space for a hash table entry. */
1002 +extern void *bfd_hash_allocate
1003 + (struct bfd_hash_table *, unsigned int);
1004 +
1005 +/* Traverse a hash table in a random order, calling a function on each
1006 + element. If the function returns FALSE, the traversal stops. The
1007 + INFO argument is passed to the function. */
1008 +extern void bfd_hash_traverse
1009 + (struct bfd_hash_table *,
1010 + bfd_boolean (*) (struct bfd_hash_entry *, void *),
1011 + void *info);
1012 +
1013 +/* Allows the default size of a hash table to be configured. New hash
1014 + tables allocated using bfd_hash_table_init will be created with
1015 + this size. */
1016 +extern void bfd_hash_set_default_size (bfd_size_type);
1017 +
1018 +/* This structure is used to keep track of stabs in sections
1019 + information while linking. */
1020 +
1021 +struct stab_info
1022 +{
1023 + /* A hash table used to hold stabs strings. */
1024 + struct bfd_strtab_hash *strings;
1025 + /* The header file hash table. */
1026 + struct bfd_hash_table includes;
1027 + /* The first .stabstr section. */
1028 + struct bfd_section *stabstr;
1029 +};
1030 +
1031 +#define COFF_SWAP_TABLE (void *) &bfd_coff_std_swap_table
1032 +
1033 +/* User program access to BFD facilities. */
1034 +
1035 +/* Direct I/O routines, for programs which know more about the object
1036 + file than BFD does. Use higher level routines if possible. */
1037 +
1038 +extern bfd_size_type bfd_bread (void *, bfd_size_type, bfd *);
1039 +extern bfd_size_type bfd_bwrite (const void *, bfd_size_type, bfd *);
1040 +extern int bfd_seek (bfd *, file_ptr, int);
1041 +extern file_ptr bfd_tell (bfd *);
1042 +extern int bfd_flush (bfd *);
1043 +extern int bfd_stat (bfd *, struct stat *);
1044 +
1045 +/* Deprecated old routines. */
1046 +#if __GNUC__
1047 +#define bfd_read(BUF, ELTSIZE, NITEMS, ABFD) \
1048 + (warn_deprecated ("bfd_read", __FILE__, __LINE__, __FUNCTION__), \
1049 + bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
1050 +#define bfd_write(BUF, ELTSIZE, NITEMS, ABFD) \
1051 + (warn_deprecated ("bfd_write", __FILE__, __LINE__, __FUNCTION__), \
1052 + bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
1053 +#else
1054 +#define bfd_read(BUF, ELTSIZE, NITEMS, ABFD) \
1055 + (warn_deprecated ("bfd_read", (const char *) 0, 0, (const char *) 0), \
1056 + bfd_bread ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
1057 +#define bfd_write(BUF, ELTSIZE, NITEMS, ABFD) \
1058 + (warn_deprecated ("bfd_write", (const char *) 0, 0, (const char *) 0),\
1059 + bfd_bwrite ((BUF), (ELTSIZE) * (NITEMS), (ABFD)))
1060 +#endif
1061 +extern void warn_deprecated (const char *, const char *, int, const char *);
1062 +
1063 +/* Cast from const char * to char * so that caller can assign to
1064 + a char * without a warning. */
1065 +#define bfd_get_filename(abfd) ((char *) (abfd)->filename)
1066 +#define bfd_get_cacheable(abfd) ((abfd)->cacheable)
1067 +#define bfd_get_format(abfd) ((abfd)->format)
1068 +#define bfd_get_target(abfd) ((abfd)->xvec->name)
1069 +#define bfd_get_flavour(abfd) ((abfd)->xvec->flavour)
1070 +#define bfd_family_coff(abfd) \
1071 + (bfd_get_flavour (abfd) == bfd_target_coff_flavour || \
1072 + bfd_get_flavour (abfd) == bfd_target_xcoff_flavour)
1073 +#define bfd_big_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_BIG)
1074 +#define bfd_little_endian(abfd) ((abfd)->xvec->byteorder == BFD_ENDIAN_LITTLE)
1075 +#define bfd_header_big_endian(abfd) \
1076 + ((abfd)->xvec->header_byteorder == BFD_ENDIAN_BIG)
1077 +#define bfd_header_little_endian(abfd) \
1078 + ((abfd)->xvec->header_byteorder == BFD_ENDIAN_LITTLE)
1079 +#define bfd_get_file_flags(abfd) ((abfd)->flags)
1080 +#define bfd_applicable_file_flags(abfd) ((abfd)->xvec->object_flags)
1081 +#define bfd_applicable_section_flags(abfd) ((abfd)->xvec->section_flags)
1082 +#define bfd_my_archive(abfd) ((abfd)->my_archive)
1083 +#define bfd_has_map(abfd) ((abfd)->has_armap)
1084 +
1085 +#define bfd_valid_reloc_types(abfd) ((abfd)->xvec->valid_reloc_types)
1086 +#define bfd_usrdata(abfd) ((abfd)->usrdata)
1087 +
1088 +#define bfd_get_start_address(abfd) ((abfd)->start_address)
1089 +#define bfd_get_symcount(abfd) ((abfd)->symcount)
1090 +#define bfd_get_outsymbols(abfd) ((abfd)->outsymbols)
1091 +#define bfd_count_sections(abfd) ((abfd)->section_count)
1092 +
1093 +#define bfd_get_dynamic_symcount(abfd) ((abfd)->dynsymcount)
1094 +
1095 +#define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
1096 +
1097 +#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
1098 +
1099 +extern bfd_boolean bfd_cache_close
1100 + (bfd *abfd);
1101 +/* NB: This declaration should match the autogenerated one in libbfd.h. */
1102 +
1103 +extern bfd_boolean bfd_cache_close_all (void);
1104 +
1105 +extern bfd_boolean bfd_record_phdr
1106 + (bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma,
1107 + bfd_boolean, bfd_boolean, unsigned int, struct bfd_section **);
1108 +
1109 +/* Byte swapping routines. */
1110 +
1111 +bfd_uint64_t bfd_getb64 (const void *);
1112 +bfd_uint64_t bfd_getl64 (const void *);
1113 +bfd_int64_t bfd_getb_signed_64 (const void *);
1114 +bfd_int64_t bfd_getl_signed_64 (const void *);
1115 +bfd_vma bfd_getb32 (const void *);
1116 +bfd_vma bfd_getl32 (const void *);
1117 +bfd_signed_vma bfd_getb_signed_32 (const void *);
1118 +bfd_signed_vma bfd_getl_signed_32 (const void *);
1119 +bfd_vma bfd_getb16 (const void *);
1120 +bfd_vma bfd_getl16 (const void *);
1121 +bfd_signed_vma bfd_getb_signed_16 (const void *);
1122 +bfd_signed_vma bfd_getl_signed_16 (const void *);
1123 +void bfd_putb64 (bfd_uint64_t, void *);
1124 +void bfd_putl64 (bfd_uint64_t, void *);
1125 +void bfd_putb32 (bfd_vma, void *);
1126 +void bfd_putl32 (bfd_vma, void *);
1127 +void bfd_putb16 (bfd_vma, void *);
1128 +void bfd_putl16 (bfd_vma, void *);
1129 +
1130 +/* Byte swapping routines which take size and endiannes as arguments. */
1131 +
1132 +bfd_uint64_t bfd_get_bits (const void *, int, bfd_boolean);
1133 +void bfd_put_bits (bfd_uint64_t, void *, int, bfd_boolean);
1134 +
1135 +extern bfd_boolean bfd_section_already_linked_table_init (void);
1136 +extern void bfd_section_already_linked_table_free (void);
1137 +\f
1138 +/* Externally visible ECOFF routines. */
1139 +
1140 +#if defined(__STDC__) || defined(ALMOST_STDC)
1141 +struct ecoff_debug_info;
1142 +struct ecoff_debug_swap;
1143 +struct ecoff_extr;
1144 +struct bfd_symbol;
1145 +struct bfd_link_info;
1146 +struct bfd_link_hash_entry;
1147 +struct bfd_elf_version_tree;
1148 +#endif
1149 +extern bfd_vma bfd_ecoff_get_gp_value
1150 + (bfd * abfd);
1151 +extern bfd_boolean bfd_ecoff_set_gp_value
1152 + (bfd *abfd, bfd_vma gp_value);
1153 +extern bfd_boolean bfd_ecoff_set_regmasks
1154 + (bfd *abfd, unsigned long gprmask, unsigned long fprmask,
1155 + unsigned long *cprmask);
1156 +extern void *bfd_ecoff_debug_init
1157 + (bfd *output_bfd, struct ecoff_debug_info *output_debug,
1158 + const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
1159 +extern void bfd_ecoff_debug_free
1160 + (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
1161 + const struct ecoff_debug_swap *output_swap, struct bfd_link_info *);
1162 +extern bfd_boolean bfd_ecoff_debug_accumulate
1163 + (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
1164 + const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
1165 + struct ecoff_debug_info *input_debug,
1166 + const struct ecoff_debug_swap *input_swap, struct bfd_link_info *);
1167 +extern bfd_boolean bfd_ecoff_debug_accumulate_other
1168 + (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug,
1169 + const struct ecoff_debug_swap *output_swap, bfd *input_bfd,
1170 + struct bfd_link_info *);
1171 +extern bfd_boolean bfd_ecoff_debug_externals
1172 + (bfd *abfd, struct ecoff_debug_info *debug,
1173 + const struct ecoff_debug_swap *swap, bfd_boolean relocatable,
1174 + bfd_boolean (*get_extr) (struct bfd_symbol *, struct ecoff_extr *),
1175 + void (*set_index) (struct bfd_symbol *, bfd_size_type));
1176 +extern bfd_boolean bfd_ecoff_debug_one_external
1177 + (bfd *abfd, struct ecoff_debug_info *debug,
1178 + const struct ecoff_debug_swap *swap, const char *name,
1179 + struct ecoff_extr *esym);
1180 +extern bfd_size_type bfd_ecoff_debug_size
1181 + (bfd *abfd, struct ecoff_debug_info *debug,
1182 + const struct ecoff_debug_swap *swap);
1183 +extern bfd_boolean bfd_ecoff_write_debug
1184 + (bfd *abfd, struct ecoff_debug_info *debug,
1185 + const struct ecoff_debug_swap *swap, file_ptr where);
1186 +extern bfd_boolean bfd_ecoff_write_accumulated_debug
1187 + (void *handle, bfd *abfd, struct ecoff_debug_info *debug,
1188 + const struct ecoff_debug_swap *swap,
1189 + struct bfd_link_info *info, file_ptr where);
1190 +
1191 +/* Externally visible ELF routines. */
1192 +
1193 +struct bfd_link_needed_list
1194 +{
1195 + struct bfd_link_needed_list *next;
1196 + bfd *by;
1197 + const char *name;
1198 +};
1199 +
1200 +enum dynamic_lib_link_class {
1201 + DYN_NORMAL = 0,
1202 + DYN_AS_NEEDED = 1,
1203 + DYN_DT_NEEDED = 2,
1204 + DYN_NO_ADD_NEEDED = 4,
1205 + DYN_NO_NEEDED = 8
1206 +};
1207 +
1208 +extern bfd_boolean bfd_elf_record_link_assignment
1209 + (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
1210 + bfd_boolean);
1211 +extern struct bfd_link_needed_list *bfd_elf_get_needed_list
1212 + (bfd *, struct bfd_link_info *);
1213 +extern bfd_boolean bfd_elf_get_bfd_needed_list
1214 + (bfd *, struct bfd_link_needed_list **);
1215 +extern bfd_boolean bfd_elf_size_dynamic_sections
1216 + (bfd *, const char *, const char *, const char *, const char * const *,
1217 + struct bfd_link_info *, struct bfd_section **,
1218 + struct bfd_elf_version_tree *);
1219 +extern bfd_boolean bfd_elf_size_dynsym_hash_dynstr
1220 + (bfd *, struct bfd_link_info *);
1221 +extern void bfd_elf_set_dt_needed_name
1222 + (bfd *, const char *);
1223 +extern const char *bfd_elf_get_dt_soname
1224 + (bfd *);
1225 +extern void bfd_elf_set_dyn_lib_class
1226 + (bfd *, int);
1227 +extern int bfd_elf_get_dyn_lib_class
1228 + (bfd *);
1229 +extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
1230 + (bfd *, struct bfd_link_info *);
1231 +extern bfd_boolean bfd_elf_discard_info
1232 + (bfd *, struct bfd_link_info *);
1233 +extern unsigned int _bfd_elf_default_action_discarded
1234 + (struct bfd_section *);
1235 +
1236 +/* Return an upper bound on the number of bytes required to store a
1237 + copy of ABFD's program header table entries. Return -1 if an error
1238 + occurs; bfd_get_error will return an appropriate code. */
1239 +extern long bfd_get_elf_phdr_upper_bound
1240 + (bfd *abfd);
1241 +
1242 +/* Copy ABFD's program header table entries to *PHDRS. The entries
1243 + will be stored as an array of Elf_Internal_Phdr structures, as
1244 + defined in include/elf/internal.h. To find out how large the
1245 + buffer needs to be, call bfd_get_elf_phdr_upper_bound.
1246 +
1247 + Return the number of program header table entries read, or -1 if an
1248 + error occurs; bfd_get_error will return an appropriate code. */
1249 +extern int bfd_get_elf_phdrs
1250 + (bfd *abfd, void *phdrs);
1251 +
1252 +/* Create a new BFD as if by bfd_openr. Rather than opening a file,
1253 + reconstruct an ELF file by reading the segments out of remote memory
1254 + based on the ELF file header at EHDR_VMA and the ELF program headers it
1255 + points to. If not null, *LOADBASEP is filled in with the difference
1256 + between the VMAs from which the segments were read, and the VMAs the
1257 + file headers (and hence BFD's idea of each section's VMA) put them at.
1258 +
1259 + The function TARGET_READ_MEMORY is called to copy LEN bytes from the
1260 + remote memory at target address VMA into the local buffer at MYADDR; it
1261 + should return zero on success or an `errno' code on failure. TEMPL must
1262 + be a BFD for an ELF target with the word size and byte order found in
1263 + the remote memory. */
1264 +extern bfd *bfd_elf_bfd_from_remote_memory
1265 + (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
1266 + int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr, int len));
1267 +
1268 +/* Return the arch_size field of an elf bfd, or -1 if not elf. */
1269 +extern int bfd_get_arch_size
1270 + (bfd *);
1271 +
1272 +/* Return TRUE if address "naturally" sign extends, or -1 if not elf. */
1273 +extern int bfd_get_sign_extend_vma
1274 + (bfd *);
1275 +
1276 +extern struct bfd_section *_bfd_elf_tls_setup
1277 + (bfd *, struct bfd_link_info *);
1278 +
1279 +extern void _bfd_fix_excluded_sec_syms
1280 + (bfd *, struct bfd_link_info *);
1281 +
1282 +extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs
1283 + (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
1284 + char **);
1285 +
1286 +extern bfd_boolean bfd_bfin_elf32_create_embedded_relocs
1287 + (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *,
1288 + char **);
1289 +
1290 +/* SunOS shared library support routines for the linker. */
1291 +
1292 +extern struct bfd_link_needed_list *bfd_sunos_get_needed_list
1293 + (bfd *, struct bfd_link_info *);
1294 +extern bfd_boolean bfd_sunos_record_link_assignment
1295 + (bfd *, struct bfd_link_info *, const char *);
1296 +extern bfd_boolean bfd_sunos_size_dynamic_sections
1297 + (bfd *, struct bfd_link_info *, struct bfd_section **,
1298 + struct bfd_section **, struct bfd_section **);
1299 +
1300 +/* Linux shared library support routines for the linker. */
1301 +
1302 +extern bfd_boolean bfd_i386linux_size_dynamic_sections
1303 + (bfd *, struct bfd_link_info *);
1304 +extern bfd_boolean bfd_m68klinux_size_dynamic_sections
1305 + (bfd *, struct bfd_link_info *);
1306 +extern bfd_boolean bfd_sparclinux_size_dynamic_sections
1307 + (bfd *, struct bfd_link_info *);
1308 +
1309 +/* mmap hacks */
1310 +
1311 +struct _bfd_window_internal;
1312 +typedef struct _bfd_window_internal bfd_window_internal;
1313 +
1314 +typedef struct _bfd_window
1315 +{
1316 + /* What the user asked for. */
1317 + void *data;
1318 + bfd_size_type size;
1319 + /* The actual window used by BFD. Small user-requested read-only
1320 + regions sharing a page may share a single window into the object
1321 + file. Read-write versions shouldn't until I've fixed things to
1322 + keep track of which portions have been claimed by the
1323 + application; don't want to give the same region back when the
1324 + application wants two writable copies! */
1325 + struct _bfd_window_internal *i;
1326 +}
1327 +bfd_window;
1328 +
1329 +extern void bfd_init_window
1330 + (bfd_window *);
1331 +extern void bfd_free_window
1332 + (bfd_window *);
1333 +extern bfd_boolean bfd_get_file_window
1334 + (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean);
1335 +
1336 +/* XCOFF support routines for the linker. */
1337 +
1338 +extern bfd_boolean bfd_xcoff_link_record_set
1339 + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type);
1340 +extern bfd_boolean bfd_xcoff_import_symbol
1341 + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma,
1342 + const char *, const char *, const char *, unsigned int);
1343 +extern bfd_boolean bfd_xcoff_export_symbol
1344 + (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *);
1345 +extern bfd_boolean bfd_xcoff_link_count_reloc
1346 + (bfd *, struct bfd_link_info *, const char *);
1347 +extern bfd_boolean bfd_xcoff_record_link_assignment
1348 + (bfd *, struct bfd_link_info *, const char *);
1349 +extern bfd_boolean bfd_xcoff_size_dynamic_sections
1350 + (bfd *, struct bfd_link_info *, const char *, const char *,
1351 + unsigned long, unsigned long, unsigned long, bfd_boolean,
1352 + int, bfd_boolean, bfd_boolean, struct bfd_section **, bfd_boolean);
1353 +extern bfd_boolean bfd_xcoff_link_generate_rtinit
1354 + (bfd *, const char *, const char *, bfd_boolean);
1355 +
1356 +/* XCOFF support routines for ar. */
1357 +extern bfd_boolean bfd_xcoff_ar_archive_set_magic
1358 + (bfd *, char *);
1359 +
1360 +/* Externally visible COFF routines. */
1361 +
1362 +#if defined(__STDC__) || defined(ALMOST_STDC)
1363 +struct internal_syment;
1364 +union internal_auxent;
1365 +#endif
1366 +
1367 +extern bfd_boolean bfd_coff_get_syment
1368 + (bfd *, struct bfd_symbol *, struct internal_syment *);
1369 +
1370 +extern bfd_boolean bfd_coff_get_auxent
1371 + (bfd *, struct bfd_symbol *, int, union internal_auxent *);
1372 +
1373 +extern bfd_boolean bfd_coff_set_symbol_class
1374 + (bfd *, struct bfd_symbol *, unsigned int);
1375 +
1376 +extern bfd_boolean bfd_m68k_coff_create_embedded_relocs
1377 + (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **);
1378 +
1379 +/* ARM Interworking support. Called from linker. */
1380 +extern bfd_boolean bfd_arm_allocate_interworking_sections
1381 + (struct bfd_link_info *);
1382 +
1383 +extern bfd_boolean bfd_arm_process_before_allocation
1384 + (bfd *, struct bfd_link_info *, int);
1385 +
1386 +extern bfd_boolean bfd_arm_get_bfd_for_interworking
1387 + (bfd *, struct bfd_link_info *);
1388 +
1389 +/* PE ARM Interworking support. Called from linker. */
1390 +extern bfd_boolean bfd_arm_pe_allocate_interworking_sections
1391 + (struct bfd_link_info *);
1392 +
1393 +extern bfd_boolean bfd_arm_pe_process_before_allocation
1394 + (bfd *, struct bfd_link_info *, int);
1395 +
1396 +extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking
1397 + (bfd *, struct bfd_link_info *);
1398 +
1399 +/* ELF ARM Interworking support. Called from linker. */
1400 +extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections
1401 + (struct bfd_link_info *);
1402 +
1403 +extern bfd_boolean bfd_elf32_arm_process_before_allocation
1404 + (bfd *, struct bfd_link_info *, int);
1405 +
1406 +void bfd_elf32_arm_set_target_relocs
1407 + (struct bfd_link_info *, int, char *, int, int);
1408 +
1409 +extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
1410 + (bfd *, struct bfd_link_info *);
1411 +
1412 +extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
1413 + (bfd *, struct bfd_link_info *);
1414 +
1415 +/* ELF ARM mapping symbol support */
1416 +extern bfd_boolean bfd_is_arm_mapping_symbol_name
1417 + (const char * name);
1418 +
1419 +/* ARM Note section processing. */
1420 +extern bfd_boolean bfd_arm_merge_machines
1421 + (bfd *, bfd *);
1422 +
1423 +extern bfd_boolean bfd_arm_update_notes
1424 + (bfd *, const char *);
1425 +
1426 +extern unsigned int bfd_arm_get_mach_from_notes
1427 + (bfd *, const char *);
1428 +
1429 +/* TI COFF load page support. */
1430 +extern void bfd_ticoff_set_section_load_page
1431 + (struct bfd_section *, int);
1432 +
1433 +extern int bfd_ticoff_get_section_load_page
1434 + (struct bfd_section *);
1435 +
1436 +/* H8/300 functions. */
1437 +extern bfd_vma bfd_h8300_pad_address
1438 + (bfd *, bfd_vma);
1439 +
1440 +/* IA64 Itanium code generation. Called from linker. */
1441 +extern void bfd_elf32_ia64_after_parse
1442 + (int);
1443 +
1444 +extern void bfd_elf64_ia64_after_parse
1445 + (int);
1446 +
1447 +/* This structure is used for a comdat section, as in PE. A comdat
1448 + section is associated with a particular symbol. When the linker
1449 + sees a comdat section, it keeps only one of the sections with a
1450 + given name and associated with a given symbol. */
1451 +
1452 +struct coff_comdat_info
1453 +{
1454 + /* The name of the symbol associated with a comdat section. */
1455 + const char *name;
1456 +
1457 + /* The local symbol table index of the symbol associated with a
1458 + comdat section. This is only meaningful to the object file format
1459 + specific code; it is not an index into the list returned by
1460 + bfd_canonicalize_symtab. */
1461 + long symbol;
1462 +};
1463 +
1464 +extern struct coff_comdat_info *bfd_coff_get_comdat_section
1465 + (bfd *, struct bfd_section *);
1466 +
1467 +/* Extracted from init.c. */
1468 +void bfd_init (void);
1469 +
1470 +/* Extracted from opncls.c. */
1471 +bfd *bfd_fopen (const char *filename, const char *target,
1472 + const char *mode, int fd);
1473 +
1474 +bfd *bfd_openr (const char *filename, const char *target);
1475 +
1476 +bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
1477 +
1478 +bfd *bfd_openstreamr (const char *, const char *, void *);
1479 +
1480 +bfd *bfd_openr_iovec (const char *filename, const char *target,
1481 + void *(*open) (struct bfd *nbfd,
1482 + void *open_closure),
1483 + void *open_closure,
1484 + file_ptr (*pread) (struct bfd *nbfd,
1485 + void *stream,
1486 + void *buf,
1487 + file_ptr nbytes,
1488 + file_ptr offset),
1489 + int (*close) (struct bfd *nbfd,
1490 + void *stream));
1491 +
1492 +bfd *bfd_openw (const char *filename, const char *target);
1493 +
1494 +bfd_boolean bfd_close (bfd *abfd);
1495 +
1496 +bfd_boolean bfd_close_all_done (bfd *);
1497 +
1498 +bfd *bfd_create (const char *filename, bfd *templ);
1499 +
1500 +bfd_boolean bfd_make_writable (bfd *abfd);
1501 +
1502 +bfd_boolean bfd_make_readable (bfd *abfd);
1503 +
1504 +unsigned long bfd_calc_gnu_debuglink_crc32
1505 + (unsigned long crc, const unsigned char *buf, bfd_size_type len);
1506 +
1507 +char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
1508 +
1509 +struct bfd_section *bfd_create_gnu_debuglink_section
1510 + (bfd *abfd, const char *filename);
1511 +
1512 +bfd_boolean bfd_fill_in_gnu_debuglink_section
1513 + (bfd *abfd, struct bfd_section *sect, const char *filename);
1514 +
1515 +/* Extracted from libbfd.c. */
1516 +
1517 +/* Byte swapping macros for user section data. */
1518 +
1519 +#define bfd_put_8(abfd, val, ptr) \
1520 + ((void) (*((unsigned char *) (ptr)) = (val) & 0xff))
1521 +#define bfd_put_signed_8 \
1522 + bfd_put_8
1523 +#define bfd_get_8(abfd, ptr) \
1524 + (*(unsigned char *) (ptr) & 0xff)
1525 +#define bfd_get_signed_8(abfd, ptr) \
1526 + (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
1527 +
1528 +#define bfd_put_16(abfd, val, ptr) \
1529 + BFD_SEND (abfd, bfd_putx16, ((val),(ptr)))
1530 +#define bfd_put_signed_16 \
1531 + bfd_put_16
1532 +#define bfd_get_16(abfd, ptr) \
1533 + BFD_SEND (abfd, bfd_getx16, (ptr))
1534 +#define bfd_get_signed_16(abfd, ptr) \
1535 + BFD_SEND (abfd, bfd_getx_signed_16, (ptr))
1536 +
1537 +#define bfd_put_32(abfd, val, ptr) \
1538 + BFD_SEND (abfd, bfd_putx32, ((val),(ptr)))
1539 +#define bfd_put_signed_32 \
1540 + bfd_put_32
1541 +#define bfd_get_32(abfd, ptr) \
1542 + BFD_SEND (abfd, bfd_getx32, (ptr))
1543 +#define bfd_get_signed_32(abfd, ptr) \
1544 + BFD_SEND (abfd, bfd_getx_signed_32, (ptr))
1545 +
1546 +#define bfd_put_64(abfd, val, ptr) \
1547 + BFD_SEND (abfd, bfd_putx64, ((val), (ptr)))
1548 +#define bfd_put_signed_64 \
1549 + bfd_put_64
1550 +#define bfd_get_64(abfd, ptr) \
1551 + BFD_SEND (abfd, bfd_getx64, (ptr))
1552 +#define bfd_get_signed_64(abfd, ptr) \
1553 + BFD_SEND (abfd, bfd_getx_signed_64, (ptr))
1554 +
1555 +#define bfd_get(bits, abfd, ptr) \
1556 + ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \
1557 + : (bits) == 16 ? bfd_get_16 (abfd, ptr) \
1558 + : (bits) == 32 ? bfd_get_32 (abfd, ptr) \
1559 + : (bits) == 64 ? bfd_get_64 (abfd, ptr) \
1560 + : (abort (), (bfd_vma) - 1))
1561 +
1562 +#define bfd_put(bits, abfd, val, ptr) \
1563 + ((bits) == 8 ? bfd_put_8 (abfd, val, ptr) \
1564 + : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \
1565 + : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \
1566 + : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \
1567 + : (abort (), (void) 0))
1568 +
1569 +
1570 +/* Byte swapping macros for file header data. */
1571 +
1572 +#define bfd_h_put_8(abfd, val, ptr) \
1573 + bfd_put_8 (abfd, val, ptr)
1574 +#define bfd_h_put_signed_8(abfd, val, ptr) \
1575 + bfd_put_8 (abfd, val, ptr)
1576 +#define bfd_h_get_8(abfd, ptr) \
1577 + bfd_get_8 (abfd, ptr)
1578 +#define bfd_h_get_signed_8(abfd, ptr) \
1579 + bfd_get_signed_8 (abfd, ptr)
1580 +
1581 +#define bfd_h_put_16(abfd, val, ptr) \
1582 + BFD_SEND (abfd, bfd_h_putx16, (val, ptr))
1583 +#define bfd_h_put_signed_16 \
1584 + bfd_h_put_16
1585 +#define bfd_h_get_16(abfd, ptr) \
1586 + BFD_SEND (abfd, bfd_h_getx16, (ptr))
1587 +#define bfd_h_get_signed_16(abfd, ptr) \
1588 + BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr))
1589 +
1590 +#define bfd_h_put_32(abfd, val, ptr) \
1591 + BFD_SEND (abfd, bfd_h_putx32, (val, ptr))
1592 +#define bfd_h_put_signed_32 \
1593 + bfd_h_put_32
1594 +#define bfd_h_get_32(abfd, ptr) \
1595 + BFD_SEND (abfd, bfd_h_getx32, (ptr))
1596 +#define bfd_h_get_signed_32(abfd, ptr) \
1597 + BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr))
1598 +
1599 +#define bfd_h_put_64(abfd, val, ptr) \
1600 + BFD_SEND (abfd, bfd_h_putx64, (val, ptr))
1601 +#define bfd_h_put_signed_64 \
1602 + bfd_h_put_64
1603 +#define bfd_h_get_64(abfd, ptr) \
1604 + BFD_SEND (abfd, bfd_h_getx64, (ptr))
1605 +#define bfd_h_get_signed_64(abfd, ptr) \
1606 + BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr))
1607 +
1608 +/* Aliases for the above, which should eventually go away. */
1609 +
1610 +#define H_PUT_64 bfd_h_put_64
1611 +#define H_PUT_32 bfd_h_put_32
1612 +#define H_PUT_16 bfd_h_put_16
1613 +#define H_PUT_8 bfd_h_put_8
1614 +#define H_PUT_S64 bfd_h_put_signed_64
1615 +#define H_PUT_S32 bfd_h_put_signed_32
1616 +#define H_PUT_S16 bfd_h_put_signed_16
1617 +#define H_PUT_S8 bfd_h_put_signed_8
1618 +#define H_GET_64 bfd_h_get_64
1619 +#define H_GET_32 bfd_h_get_32
1620 +#define H_GET_16 bfd_h_get_16
1621 +#define H_GET_8 bfd_h_get_8
1622 +#define H_GET_S64 bfd_h_get_signed_64
1623 +#define H_GET_S32 bfd_h_get_signed_32
1624 +#define H_GET_S16 bfd_h_get_signed_16
1625 +#define H_GET_S8 bfd_h_get_signed_8
1626 +
1627 +
1628 +/* Extracted from bfdio.c. */
1629 +long bfd_get_mtime (bfd *abfd);
1630 +
1631 +long bfd_get_size (bfd *abfd);
1632 +
1633 +/* Extracted from bfdwin.c. */
1634 +/* Extracted from section.c. */
1635 +typedef struct bfd_section
1636 +{
1637 + /* The name of the section; the name isn't a copy, the pointer is
1638 + the same as that passed to bfd_make_section. */
1639 + const char *name;
1640 +
1641 + /* A unique sequence number. */
1642 + int id;
1643 +
1644 + /* Which section in the bfd; 0..n-1 as sections are created in a bfd. */
1645 + int index;
1646 +
1647 + /* The next section in the list belonging to the BFD, or NULL. */
1648 + struct bfd_section *next;
1649 +
1650 + /* The previous section in the list belonging to the BFD, or NULL. */
1651 + struct bfd_section *prev;
1652 +
1653 + /* The field flags contains attributes of the section. Some
1654 + flags are read in from the object file, and some are
1655 + synthesized from other information. */
1656 + flagword flags;
1657 +
1658 +#define SEC_NO_FLAGS 0x000
1659 +
1660 + /* Tells the OS to allocate space for this section when loading.
1661 + This is clear for a section containing debug information only. */
1662 +#define SEC_ALLOC 0x001
1663 +
1664 + /* Tells the OS to load the section from the file when loading.
1665 + This is clear for a .bss section. */
1666 +#define SEC_LOAD 0x002
1667 +
1668 + /* The section contains data still to be relocated, so there is
1669 + some relocation information too. */
1670 +#define SEC_RELOC 0x004
1671 +
1672 + /* A signal to the OS that the section contains read only data. */
1673 +#define SEC_READONLY 0x008
1674 +
1675 + /* The section contains code only. */
1676 +#define SEC_CODE 0x010
1677 +
1678 + /* The section contains data only. */
1679 +#define SEC_DATA 0x020
1680 +
1681 + /* The section will reside in ROM. */
1682 +#define SEC_ROM 0x040
1683 +
1684 + /* The section contains constructor information. This section
1685 + type is used by the linker to create lists of constructors and
1686 + destructors used by <<g++>>. When a back end sees a symbol
1687 + which should be used in a constructor list, it creates a new
1688 + section for the type of name (e.g., <<__CTOR_LIST__>>), attaches
1689 + the symbol to it, and builds a relocation. To build the lists
1690 + of constructors, all the linker has to do is catenate all the
1691 + sections called <<__CTOR_LIST__>> and relocate the data
1692 + contained within - exactly the operations it would peform on
1693 + standard data. */
1694 +#define SEC_CONSTRUCTOR 0x080
1695 +
1696 + /* The section has contents - a data section could be
1697 + <<SEC_ALLOC>> | <<SEC_HAS_CONTENTS>>; a debug section could be
1698 + <<SEC_HAS_CONTENTS>> */
1699 +#define SEC_HAS_CONTENTS 0x100
1700 +
1701 + /* An instruction to the linker to not output the section
1702 + even if it has information which would normally be written. */
1703 +#define SEC_NEVER_LOAD 0x200
1704 +
1705 + /* The section contains thread local data. */
1706 +#define SEC_THREAD_LOCAL 0x400
1707 +
1708 + /* The section has GOT references. This flag is only for the
1709 + linker, and is currently only used by the elf32-hppa back end.
1710 + It will be set if global offset table references were detected
1711 + in this section, which indicate to the linker that the section
1712 + contains PIC code, and must be handled specially when doing a
1713 + static link. */
1714 +#define SEC_HAS_GOT_REF 0x800
1715 +
1716 + /* The section contains common symbols (symbols may be defined
1717 + multiple times, the value of a symbol is the amount of
1718 + space it requires, and the largest symbol value is the one
1719 + used). Most targets have exactly one of these (which we
1720 + translate to bfd_com_section_ptr), but ECOFF has two. */
1721 +#define SEC_IS_COMMON 0x1000
1722 +
1723 + /* The section contains only debugging information. For
1724 + example, this is set for ELF .debug and .stab sections.
1725 + strip tests this flag to see if a section can be
1726 + discarded. */
1727 +#define SEC_DEBUGGING 0x2000
1728 +
1729 + /* The contents of this section are held in memory pointed to
1730 + by the contents field. This is checked by bfd_get_section_contents,
1731 + and the data is retrieved from memory if appropriate. */
1732 +#define SEC_IN_MEMORY 0x4000
1733 +
1734 + /* The contents of this section are to be excluded by the
1735 + linker for executable and shared objects unless those
1736 + objects are to be further relocated. */
1737 +#define SEC_EXCLUDE 0x8000
1738 +
1739 + /* The contents of this section are to be sorted based on the sum of
1740 + the symbol and addend values specified by the associated relocation
1741 + entries. Entries without associated relocation entries will be
1742 + appended to the end of the section in an unspecified order. */
1743 +#define SEC_SORT_ENTRIES 0x10000
1744 +
1745 + /* When linking, duplicate sections of the same name should be
1746 + discarded, rather than being combined into a single section as
1747 + is usually done. This is similar to how common symbols are
1748 + handled. See SEC_LINK_DUPLICATES below. */
1749 +#define SEC_LINK_ONCE 0x20000
1750 +
1751 + /* If SEC_LINK_ONCE is set, this bitfield describes how the linker
1752 + should handle duplicate sections. */
1753 +#define SEC_LINK_DUPLICATES 0x40000
1754 +
1755 + /* This value for SEC_LINK_DUPLICATES means that duplicate
1756 + sections with the same name should simply be discarded. */
1757 +#define SEC_LINK_DUPLICATES_DISCARD 0x0
1758 +
1759 + /* This value for SEC_LINK_DUPLICATES means that the linker
1760 + should warn if there are any duplicate sections, although
1761 + it should still only link one copy. */
1762 +#define SEC_LINK_DUPLICATES_ONE_ONLY 0x80000
1763 +
1764 + /* This value for SEC_LINK_DUPLICATES means that the linker
1765 + should warn if any duplicate sections are a different size. */
1766 +#define SEC_LINK_DUPLICATES_SAME_SIZE 0x100000
1767 +
1768 + /* This value for SEC_LINK_DUPLICATES means that the linker
1769 + should warn if any duplicate sections contain different
1770 + contents. */
1771 +#define SEC_LINK_DUPLICATES_SAME_CONTENTS \
1772 + (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE)
1773 +
1774 + /* This section was created by the linker as part of dynamic
1775 + relocation or other arcane processing. It is skipped when
1776 + going through the first-pass output, trusting that someone
1777 + else up the line will take care of it later. */
1778 +#define SEC_LINKER_CREATED 0x200000
1779 +
1780 + /* This section should not be subject to garbage collection. */
1781 +#define SEC_KEEP 0x400000
1782 +
1783 + /* This section contains "short" data, and should be placed
1784 + "near" the GP. */
1785 +#define SEC_SMALL_DATA 0x800000
1786 +
1787 + /* Attempt to merge identical entities in the section.
1788 + Entity size is given in the entsize field. */
1789 +#define SEC_MERGE 0x1000000
1790 +
1791 + /* If given with SEC_MERGE, entities to merge are zero terminated
1792 + strings where entsize specifies character size instead of fixed
1793 + size entries. */
1794 +#define SEC_STRINGS 0x2000000
1795 +
1796 + /* This section contains data about section groups. */
1797 +#define SEC_GROUP 0x4000000
1798 +
1799 + /* The section is a COFF shared library section. This flag is
1800 + only for the linker. If this type of section appears in
1801 + the input file, the linker must copy it to the output file
1802 + without changing the vma or size. FIXME: Although this
1803 + was originally intended to be general, it really is COFF
1804 + specific (and the flag was renamed to indicate this). It
1805 + might be cleaner to have some more general mechanism to
1806 + allow the back end to control what the linker does with
1807 + sections. */
1808 +#define SEC_COFF_SHARED_LIBRARY 0x10000000
1809 +
1810 + /* This section contains data which may be shared with other
1811 + executables or shared objects. This is for COFF only. */
1812 +#define SEC_COFF_SHARED 0x20000000
1813 +
1814 + /* When a section with this flag is being linked, then if the size of
1815 + the input section is less than a page, it should not cross a page
1816 + boundary. If the size of the input section is one page or more,
1817 + it should be aligned on a page boundary. This is for TI
1818 + TMS320C54X only. */
1819 +#define SEC_TIC54X_BLOCK 0x40000000
1820 +
1821 + /* Conditionally link this section; do not link if there are no
1822 + references found to any symbol in the section. This is for TI
1823 + TMS320C54X only. */
1824 +#define SEC_TIC54X_CLINK 0x80000000
1825 +
1826 + /* End of section flags. */
1827 +
1828 + /* Some internal packed boolean fields. */
1829 +
1830 + /* See the vma field. */
1831 + unsigned int user_set_vma : 1;
1832 +
1833 + /* A mark flag used by some of the linker backends. */
1834 + unsigned int linker_mark : 1;
1835 +
1836 + /* Another mark flag used by some of the linker backends. Set for
1837 + output sections that have an input section. */
1838 + unsigned int linker_has_input : 1;
1839 +
1840 + /* Mark flags used by some linker backends for garbage collection. */
1841 + unsigned int gc_mark : 1;
1842 + unsigned int gc_mark_from_eh : 1;
1843 +
1844 + /* The following flags are used by the ELF linker. */
1845 +
1846 + /* Mark sections which have been allocated to segments. */
1847 + unsigned int segment_mark : 1;
1848 +
1849 + /* Type of sec_info information. */
1850 + unsigned int sec_info_type:3;
1851 +#define ELF_INFO_TYPE_NONE 0
1852 +#define ELF_INFO_TYPE_STABS 1
1853 +#define ELF_INFO_TYPE_MERGE 2
1854 +#define ELF_INFO_TYPE_EH_FRAME 3
1855 +#define ELF_INFO_TYPE_JUST_SYMS 4
1856 +
1857 + /* Nonzero if this section uses RELA relocations, rather than REL. */
1858 + unsigned int use_rela_p:1;
1859 +
1860 + /* Bits used by various backends. The generic code doesn't touch
1861 + these fields. */
1862 +
1863 + /* Nonzero if this section has TLS related relocations. */
1864 + unsigned int has_tls_reloc:1;
1865 +
1866 + /* Nonzero if this section has a gp reloc. */
1867 + unsigned int has_gp_reloc:1;
1868 +
1869 + /* Nonzero if this section needs the relax finalize pass. */
1870 + unsigned int need_finalize_relax:1;
1871 +
1872 + /* Whether relocations have been processed. */
1873 + unsigned int reloc_done : 1;
1874 +
1875 + /* End of internal packed boolean fields. */
1876 +
1877 + /* The virtual memory address of the section - where it will be
1878 + at run time. The symbols are relocated against this. The
1879 + user_set_vma flag is maintained by bfd; if it's not set, the
1880 + backend can assign addresses (for example, in <<a.out>>, where
1881 + the default address for <<.data>> is dependent on the specific
1882 + target and various flags). */
1883 + bfd_vma vma;
1884 +
1885 + /* The load address of the section - where it would be in a
1886 + rom image; really only used for writing section header
1887 + information. */
1888 + bfd_vma lma;
1889 +
1890 + /* The size of the section in octets, as it will be output.
1891 + Contains a value even if the section has no contents (e.g., the
1892 + size of <<.bss>>). */
1893 + bfd_size_type size;
1894 +
1895 + /* For input sections, the original size on disk of the section, in
1896 + octets. This field is used by the linker relaxation code. It is
1897 + currently only set for sections where the linker relaxation scheme
1898 + doesn't cache altered section and reloc contents (stabs, eh_frame,
1899 + SEC_MERGE, some coff relaxing targets), and thus the original size
1900 + needs to be kept to read the section multiple times.
1901 + For output sections, rawsize holds the section size calculated on
1902 + a previous linker relaxation pass. */
1903 + bfd_size_type rawsize;
1904 +
1905 + /* If this section is going to be output, then this value is the
1906 + offset in *bytes* into the output section of the first byte in the
1907 + input section (byte ==> smallest addressable unit on the
1908 + target). In most cases, if this was going to start at the
1909 + 100th octet (8-bit quantity) in the output section, this value
1910 + would be 100. However, if the target byte size is 16 bits
1911 + (bfd_octets_per_byte is "2"), this value would be 50. */
1912 + bfd_vma output_offset;
1913 +
1914 + /* The output section through which to map on output. */
1915 + struct bfd_section *output_section;
1916 +
1917 + /* The alignment requirement of the section, as an exponent of 2 -
1918 + e.g., 3 aligns to 2^3 (or 8). */
1919 + unsigned int alignment_power;
1920 +
1921 + /* If an input section, a pointer to a vector of relocation
1922 + records for the data in this section. */
1923 + struct reloc_cache_entry *relocation;
1924 +
1925 + /* If an output section, a pointer to a vector of pointers to
1926 + relocation records for the data in this section. */
1927 + struct reloc_cache_entry **orelocation;
1928 +
1929 + /* The number of relocation records in one of the above. */
1930 + unsigned reloc_count;
1931 +
1932 + /* Information below is back end specific - and not always used
1933 + or updated. */
1934 +
1935 + /* File position of section data. */
1936 + file_ptr filepos;
1937 +
1938 + /* File position of relocation info. */
1939 + file_ptr rel_filepos;
1940 +
1941 + /* File position of line data. */
1942 + file_ptr line_filepos;
1943 +
1944 + /* Pointer to data for applications. */
1945 + void *userdata;
1946 +
1947 + /* If the SEC_IN_MEMORY flag is set, this points to the actual
1948 + contents. */
1949 + unsigned char *contents;
1950 +
1951 + /* Attached line number information. */
1952 + alent *lineno;
1953 +
1954 + /* Number of line number records. */
1955 + unsigned int lineno_count;
1956 +
1957 + /* Entity size for merging purposes. */
1958 + unsigned int entsize;
1959 +
1960 + /* Points to the kept section if this section is a link-once section,
1961 + and is discarded. */
1962 + struct bfd_section *kept_section;
1963 +
1964 + /* When a section is being output, this value changes as more
1965 + linenumbers are written out. */
1966 + file_ptr moving_line_filepos;
1967 +
1968 + /* What the section number is in the target world. */
1969 + int target_index;
1970 +
1971 + void *used_by_bfd;
1972 +
1973 + /* If this is a constructor section then here is a list of the
1974 + relocations created to relocate items within it. */
1975 + struct relent_chain *constructor_chain;
1976 +
1977 + /* The BFD which owns the section. */
1978 + bfd *owner;
1979 +
1980 + /* A symbol which points at this section only. */
1981 + struct bfd_symbol *symbol;
1982 + struct bfd_symbol **symbol_ptr_ptr;
1983 +
1984 + /* Early in the link process, map_head and map_tail are used to build
1985 + a list of input sections attached to an output section. Later,
1986 + output sections use these fields for a list of bfd_link_order
1987 + structs. */
1988 + union {
1989 + struct bfd_link_order *link_order;
1990 + struct bfd_section *s;
1991 + } map_head, map_tail;
1992 +} asection;
1993 +
1994 +/* These sections are global, and are managed by BFD. The application
1995 + and target back end are not permitted to change the values in
1996 + these sections. New code should use the section_ptr macros rather
1997 + than referring directly to the const sections. The const sections
1998 + may eventually vanish. */
1999 +#define BFD_ABS_SECTION_NAME "*ABS*"
2000 +#define BFD_UND_SECTION_NAME "*UND*"
2001 +#define BFD_COM_SECTION_NAME "*COM*"
2002 +#define BFD_IND_SECTION_NAME "*IND*"
2003 +
2004 +/* The absolute section. */
2005 +extern asection bfd_abs_section;
2006 +#define bfd_abs_section_ptr ((asection *) &bfd_abs_section)
2007 +#define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
2008 +/* Pointer to the undefined section. */
2009 +extern asection bfd_und_section;
2010 +#define bfd_und_section_ptr ((asection *) &bfd_und_section)
2011 +#define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
2012 +/* Pointer to the common section. */
2013 +extern asection bfd_com_section;
2014 +#define bfd_com_section_ptr ((asection *) &bfd_com_section)
2015 +/* Pointer to the indirect section. */
2016 +extern asection bfd_ind_section;
2017 +#define bfd_ind_section_ptr ((asection *) &bfd_ind_section)
2018 +#define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
2019 +
2020 +#define bfd_is_const_section(SEC) \
2021 + ( ((SEC) == bfd_abs_section_ptr) \
2022 + || ((SEC) == bfd_und_section_ptr) \
2023 + || ((SEC) == bfd_com_section_ptr) \
2024 + || ((SEC) == bfd_ind_section_ptr))
2025 +
2026 +extern const struct bfd_symbol * const bfd_abs_symbol;
2027 +extern const struct bfd_symbol * const bfd_com_symbol;
2028 +extern const struct bfd_symbol * const bfd_und_symbol;
2029 +extern const struct bfd_symbol * const bfd_ind_symbol;
2030 +
2031 +/* Macros to handle insertion and deletion of a bfd's sections. These
2032 + only handle the list pointers, ie. do not adjust section_count,
2033 + target_index etc. */
2034 +#define bfd_section_list_remove(ABFD, S) \
2035 + do \
2036 + { \
2037 + asection *_s = S; \
2038 + asection *_next = _s->next; \
2039 + asection *_prev = _s->prev; \
2040 + if (_prev) \
2041 + _prev->next = _next; \
2042 + else \
2043 + (ABFD)->sections = _next; \
2044 + if (_next) \
2045 + _next->prev = _prev; \
2046 + else \
2047 + (ABFD)->section_last = _prev; \
2048 + } \
2049 + while (0)
2050 +#define bfd_section_list_append(ABFD, S) \
2051 + do \
2052 + { \
2053 + asection *_s = S; \
2054 + bfd *_abfd = ABFD; \
2055 + _s->next = NULL; \
2056 + if (_abfd->section_last) \
2057 + { \
2058 + _s->prev = _abfd->section_last; \
2059 + _abfd->section_last->next = _s; \
2060 + } \
2061 + else \
2062 + { \
2063 + _s->prev = NULL; \
2064 + _abfd->sections = _s; \
2065 + } \
2066 + _abfd->section_last = _s; \
2067 + } \
2068 + while (0)
2069 +#define bfd_section_list_prepend(ABFD, S) \
2070 + do \
2071 + { \
2072 + asection *_s = S; \
2073 + bfd *_abfd = ABFD; \
2074 + _s->prev = NULL; \
2075 + if (_abfd->sections) \
2076 + { \
2077 + _s->next = _abfd->sections; \
2078 + _abfd->sections->prev = _s; \
2079 + } \
2080 + else \
2081 + { \
2082 + _s->next = NULL; \
2083 + _abfd->section_last = _s; \
2084 + } \
2085 + _abfd->sections = _s; \
2086 + } \
2087 + while (0)
2088 +#define bfd_section_list_insert_after(ABFD, A, S) \
2089 + do \
2090 + { \
2091 + asection *_a = A; \
2092 + asection *_s = S; \
2093 + asection *_next = _a->next; \
2094 + _s->next = _next; \
2095 + _s->prev = _a; \
2096 + _a->next = _s; \
2097 + if (_next) \
2098 + _next->prev = _s; \
2099 + else \
2100 + (ABFD)->section_last = _s; \
2101 + } \
2102 + while (0)
2103 +#define bfd_section_list_insert_before(ABFD, B, S) \
2104 + do \
2105 + { \
2106 + asection *_b = B; \
2107 + asection *_s = S; \
2108 + asection *_prev = _b->prev; \
2109 + _s->prev = _prev; \
2110 + _s->next = _b; \
2111 + _b->prev = _s; \
2112 + if (_prev) \
2113 + _prev->next = _s; \
2114 + else \
2115 + (ABFD)->sections = _s; \
2116 + } \
2117 + while (0)
2118 +#define bfd_section_removed_from_list(ABFD, S) \
2119 + ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S))
2120 +
2121 +#define BFD_FAKE_SECTION(SEC, FLAGS, SYM, SYM_PTR, NAME, IDX) \
2122 + /* name, id, index, next, prev, flags, user_set_vma, */ \
2123 + { NAME, IDX, 0, NULL, NULL, FLAGS, 0, \
2124 + \
2125 + /* linker_mark, linker_has_input, gc_mark, gc_mark_from_eh, */ \
2126 + 0, 0, 1, 0, \
2127 + \
2128 + /* segment_mark, sec_info_type, use_rela_p, has_tls_reloc, */ \
2129 + 0, 0, 0, 0, \
2130 + \
2131 + /* has_gp_reloc, need_finalize_relax, reloc_done, */ \
2132 + 0, 0, 0, \
2133 + \
2134 + /* vma, lma, size, rawsize */ \
2135 + 0, 0, 0, 0, \
2136 + \
2137 + /* output_offset, output_section, alignment_power, */ \
2138 + 0, (struct bfd_section *) &SEC, 0, \
2139 + \
2140 + /* relocation, orelocation, reloc_count, filepos, rel_filepos, */ \
2141 + NULL, NULL, 0, 0, 0, \
2142 + \
2143 + /* line_filepos, userdata, contents, lineno, lineno_count, */ \
2144 + 0, NULL, NULL, NULL, 0, \
2145 + \
2146 + /* entsize, kept_section, moving_line_filepos, */ \
2147 + 0, NULL, 0, \
2148 + \
2149 + /* target_index, used_by_bfd, constructor_chain, owner, */ \
2150 + 0, NULL, NULL, NULL, \
2151 + \
2152 + /* symbol, */ \
2153 + (struct bfd_symbol *) SYM, \
2154 + \
2155 + /* symbol_ptr_ptr, */ \
2156 + (struct bfd_symbol **) SYM_PTR, \
2157 + \
2158 + /* map_head, map_tail */ \
2159 + { NULL }, { NULL } \
2160 + }
2161 +
2162 +void bfd_section_list_clear (bfd *);
2163 +
2164 +asection *bfd_get_section_by_name (bfd *abfd, const char *name);
2165 +
2166 +asection *bfd_get_section_by_name_if
2167 + (bfd *abfd,
2168 + const char *name,
2169 + bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj),
2170 + void *obj);
2171 +
2172 +char *bfd_get_unique_section_name
2173 + (bfd *abfd, const char *templat, int *count);
2174 +
2175 +asection *bfd_make_section_old_way (bfd *abfd, const char *name);
2176 +
2177 +asection *bfd_make_section_anyway_with_flags
2178 + (bfd *abfd, const char *name, flagword flags);
2179 +
2180 +asection *bfd_make_section_anyway (bfd *abfd, const char *name);
2181 +
2182 +asection *bfd_make_section_with_flags
2183 + (bfd *, const char *name, flagword flags);
2184 +
2185 +asection *bfd_make_section (bfd *, const char *name);
2186 +
2187 +bfd_boolean bfd_set_section_flags
2188 + (bfd *abfd, asection *sec, flagword flags);
2189 +
2190 +void bfd_map_over_sections
2191 + (bfd *abfd,
2192 + void (*func) (bfd *abfd, asection *sect, void *obj),
2193 + void *obj);
2194 +
2195 +asection *bfd_sections_find_if
2196 + (bfd *abfd,
2197 + bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj),
2198 + void *obj);
2199 +
2200 +bfd_boolean bfd_set_section_size
2201 + (bfd *abfd, asection *sec, bfd_size_type val);
2202 +
2203 +bfd_boolean bfd_set_section_contents
2204 + (bfd *abfd, asection *section, const void *data,
2205 + file_ptr offset, bfd_size_type count);
2206 +
2207 +bfd_boolean bfd_get_section_contents
2208 + (bfd *abfd, asection *section, void *location, file_ptr offset,
2209 + bfd_size_type count);
2210 +
2211 +bfd_boolean bfd_malloc_and_get_section
2212 + (bfd *abfd, asection *section, bfd_byte **buf);
2213 +
2214 +bfd_boolean bfd_copy_private_section_data
2215 + (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
2216 +
2217 +#define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
2218 + BFD_SEND (obfd, _bfd_copy_private_section_data, \
2219 + (ibfd, isection, obfd, osection))
2220 +bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
2221 +
2222 +bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
2223 +
2224 +/* Extracted from archures.c. */
2225 +enum bfd_architecture
2226 +{
2227 + bfd_arch_unknown, /* File arch not known. */
2228 + bfd_arch_obscure, /* Arch known, not one of these. */
2229 + bfd_arch_m68k, /* Motorola 68xxx */
2230 +#define bfd_mach_m68000 1
2231 +#define bfd_mach_m68008 2
2232 +#define bfd_mach_m68010 3
2233 +#define bfd_mach_m68020 4
2234 +#define bfd_mach_m68030 5
2235 +#define bfd_mach_m68040 6
2236 +#define bfd_mach_m68060 7
2237 +#define bfd_mach_cpu32 8
2238 +#define bfd_mach_mcf5200 9
2239 +#define bfd_mach_mcf5206e 10
2240 +#define bfd_mach_mcf5307 11
2241 +#define bfd_mach_mcf5407 12
2242 +#define bfd_mach_mcf528x 13
2243 +#define bfd_mach_mcfv4e 14
2244 +#define bfd_mach_mcf521x 15
2245 +#define bfd_mach_mcf5249 16
2246 +#define bfd_mach_mcf547x 17
2247 +#define bfd_mach_mcf548x 18
2248 + bfd_arch_vax, /* DEC Vax */
2249 + bfd_arch_i960, /* Intel 960 */
2250 + /* The order of the following is important.
2251 + lower number indicates a machine type that
2252 + only accepts a subset of the instructions
2253 + available to machines with higher numbers.
2254 + The exception is the "ca", which is
2255 + incompatible with all other machines except
2256 + "core". */
2257 +
2258 +#define bfd_mach_i960_core 1
2259 +#define bfd_mach_i960_ka_sa 2
2260 +#define bfd_mach_i960_kb_sb 3
2261 +#define bfd_mach_i960_mc 4
2262 +#define bfd_mach_i960_xa 5
2263 +#define bfd_mach_i960_ca 6
2264 +#define bfd_mach_i960_jx 7
2265 +#define bfd_mach_i960_hx 8
2266 +
2267 + bfd_arch_or32, /* OpenRISC 32 */
2268 +
2269 + bfd_arch_sparc, /* SPARC */
2270 +#define bfd_mach_sparc 1
2271 +/* The difference between v8plus and v9 is that v9 is a true 64 bit env. */
2272 +#define bfd_mach_sparc_sparclet 2
2273 +#define bfd_mach_sparc_sparclite 3
2274 +#define bfd_mach_sparc_v8plus 4
2275 +#define bfd_mach_sparc_v8plusa 5 /* with ultrasparc add'ns. */
2276 +#define bfd_mach_sparc_sparclite_le 6
2277 +#define bfd_mach_sparc_v9 7
2278 +#define bfd_mach_sparc_v9a 8 /* with ultrasparc add'ns. */
2279 +#define bfd_mach_sparc_v8plusb 9 /* with cheetah add'ns. */
2280 +#define bfd_mach_sparc_v9b 10 /* with cheetah add'ns. */
2281 +/* Nonzero if MACH has the v9 instruction set. */
2282 +#define bfd_mach_sparc_v9_p(mach) \
2283 + ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
2284 + && (mach) != bfd_mach_sparc_sparclite_le)
2285 +/* Nonzero if MACH is a 64 bit sparc architecture. */
2286 +#define bfd_mach_sparc_64bit_p(mach) \
2287 + ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb)
2288 + bfd_arch_mips, /* MIPS Rxxxx */
2289 +#define bfd_mach_mips3000 3000
2290 +#define bfd_mach_mips3900 3900
2291 +#define bfd_mach_mips4000 4000
2292 +#define bfd_mach_mips4010 4010
2293 +#define bfd_mach_mips4100 4100
2294 +#define bfd_mach_mips4111 4111
2295 +#define bfd_mach_mips4120 4120
2296 +#define bfd_mach_mips4300 4300
2297 +#define bfd_mach_mips4400 4400
2298 +#define bfd_mach_mips4600 4600
2299 +#define bfd_mach_mips4650 4650
2300 +#define bfd_mach_mips5000 5000
2301 +#define bfd_mach_mips5400 5400
2302 +#define bfd_mach_mips5500 5500
2303 +#define bfd_mach_mips6000 6000
2304 +#define bfd_mach_mips7000 7000
2305 +#define bfd_mach_mips8000 8000
2306 +#define bfd_mach_mips9000 9000
2307 +#define bfd_mach_mips10000 10000
2308 +#define bfd_mach_mips12000 12000
2309 +#define bfd_mach_mips16 16
2310 +#define bfd_mach_mips5 5
2311 +#define bfd_mach_mips_sb1 12310201 /* octal 'SB', 01 */
2312 +#define bfd_mach_mipsisa32 32
2313 +#define bfd_mach_mipsisa32r2 33
2314 +#define bfd_mach_mipsisa64 64
2315 +#define bfd_mach_mipsisa64r2 65
2316 + bfd_arch_i386, /* Intel 386 */
2317 +#define bfd_mach_i386_i386 1
2318 +#define bfd_mach_i386_i8086 2
2319 +#define bfd_mach_i386_i386_intel_syntax 3
2320 +#define bfd_mach_x86_64 64
2321 +#define bfd_mach_x86_64_intel_syntax 65
2322 + bfd_arch_we32k, /* AT&T WE32xxx */
2323 + bfd_arch_tahoe, /* CCI/Harris Tahoe */
2324 + bfd_arch_i860, /* Intel 860 */
2325 + bfd_arch_i370, /* IBM 360/370 Mainframes */
2326 + bfd_arch_romp, /* IBM ROMP PC/RT */
2327 + bfd_arch_convex, /* Convex */
2328 + bfd_arch_m88k, /* Motorola 88xxx */
2329 + bfd_arch_m98k, /* Motorola 98xxx */
2330 + bfd_arch_pyramid, /* Pyramid Technology */
2331 + bfd_arch_h8300, /* Renesas H8/300 (formerly Hitachi H8/300) */
2332 +#define bfd_mach_h8300 1
2333 +#define bfd_mach_h8300h 2
2334 +#define bfd_mach_h8300s 3
2335 +#define bfd_mach_h8300hn 4
2336 +#define bfd_mach_h8300sn 5
2337 +#define bfd_mach_h8300sx 6
2338 +#define bfd_mach_h8300sxn 7
2339 + bfd_arch_pdp11, /* DEC PDP-11 */
2340 + bfd_arch_powerpc, /* PowerPC */
2341 +#define bfd_mach_ppc 32
2342 +#define bfd_mach_ppc64 64
2343 +#define bfd_mach_ppc_403 403
2344 +#define bfd_mach_ppc_403gc 4030
2345 +#define bfd_mach_ppc_505 505
2346 +#define bfd_mach_ppc_601 601
2347 +#define bfd_mach_ppc_602 602
2348 +#define bfd_mach_ppc_603 603
2349 +#define bfd_mach_ppc_ec603e 6031
2350 +#define bfd_mach_ppc_604 604
2351 +#define bfd_mach_ppc_620 620
2352 +#define bfd_mach_ppc_630 630
2353 +#define bfd_mach_ppc_750 750
2354 +#define bfd_mach_ppc_860 860
2355 +#define bfd_mach_ppc_a35 35
2356 +#define bfd_mach_ppc_rs64ii 642
2357 +#define bfd_mach_ppc_rs64iii 643
2358 +#define bfd_mach_ppc_7400 7400
2359 +#define bfd_mach_ppc_e500 500
2360 + bfd_arch_rs6000, /* IBM RS/6000 */
2361 +#define bfd_mach_rs6k 6000
2362 +#define bfd_mach_rs6k_rs1 6001
2363 +#define bfd_mach_rs6k_rsc 6003
2364 +#define bfd_mach_rs6k_rs2 6002
2365 + bfd_arch_hppa, /* HP PA RISC */
2366 +#define bfd_mach_hppa10 10
2367 +#define bfd_mach_hppa11 11
2368 +#define bfd_mach_hppa20 20
2369 +#define bfd_mach_hppa20w 25
2370 + bfd_arch_d10v, /* Mitsubishi D10V */
2371 +#define bfd_mach_d10v 1
2372 +#define bfd_mach_d10v_ts2 2
2373 +#define bfd_mach_d10v_ts3 3
2374 + bfd_arch_d30v, /* Mitsubishi D30V */
2375 + bfd_arch_dlx, /* DLX */
2376 + bfd_arch_m68hc11, /* Motorola 68HC11 */
2377 + bfd_arch_m68hc12, /* Motorola 68HC12 */
2378 +#define bfd_mach_m6812_default 0
2379 +#define bfd_mach_m6812 1
2380 +#define bfd_mach_m6812s 2
2381 + bfd_arch_z8k, /* Zilog Z8000 */
2382 +#define bfd_mach_z8001 1
2383 +#define bfd_mach_z8002 2
2384 + bfd_arch_h8500, /* Renesas H8/500 (formerly Hitachi H8/500) */
2385 + bfd_arch_sh, /* Renesas / SuperH SH (formerly Hitachi SH) */
2386 +#define bfd_mach_sh 1
2387 +#define bfd_mach_sh2 0x20
2388 +#define bfd_mach_sh_dsp 0x2d
2389 +#define bfd_mach_sh2a 0x2a
2390 +#define bfd_mach_sh2a_nofpu 0x2b
2391 +#define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
2392 +#define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
2393 +#define bfd_mach_sh2a_or_sh4 0x2a3
2394 +#define bfd_mach_sh2a_or_sh3e 0x2a4
2395 +#define bfd_mach_sh2e 0x2e
2396 +#define bfd_mach_sh3 0x30
2397 +#define bfd_mach_sh3_nommu 0x31
2398 +#define bfd_mach_sh3_dsp 0x3d
2399 +#define bfd_mach_sh3e 0x3e
2400 +#define bfd_mach_sh4 0x40
2401 +#define bfd_mach_sh4_nofpu 0x41
2402 +#define bfd_mach_sh4_nommu_nofpu 0x42
2403 +#define bfd_mach_sh4a 0x4a
2404 +#define bfd_mach_sh4a_nofpu 0x4b
2405 +#define bfd_mach_sh4al_dsp 0x4d
2406 +#define bfd_mach_sh5 0x50
2407 + bfd_arch_alpha, /* Dec Alpha */
2408 +#define bfd_mach_alpha_ev4 0x10
2409 +#define bfd_mach_alpha_ev5 0x20
2410 +#define bfd_mach_alpha_ev6 0x30
2411 + bfd_arch_arm, /* Advanced Risc Machines ARM. */
2412 +#define bfd_mach_arm_unknown 0
2413 +#define bfd_mach_arm_2 1
2414 +#define bfd_mach_arm_2a 2
2415 +#define bfd_mach_arm_3 3
2416 +#define bfd_mach_arm_3M 4
2417 +#define bfd_mach_arm_4 5
2418 +#define bfd_mach_arm_4T 6
2419 +#define bfd_mach_arm_5 7
2420 +#define bfd_mach_arm_5T 8
2421 +#define bfd_mach_arm_5TE 9
2422 +#define bfd_mach_arm_XScale 10
2423 +#define bfd_mach_arm_ep9312 11
2424 +#define bfd_mach_arm_iWMMXt 12
2425 + bfd_arch_ns32k, /* National Semiconductors ns32000 */
2426 + bfd_arch_w65, /* WDC 65816 */
2427 + bfd_arch_tic30, /* Texas Instruments TMS320C30 */
2428 + bfd_arch_tic4x, /* Texas Instruments TMS320C3X/4X */
2429 +#define bfd_mach_tic3x 30
2430 +#define bfd_mach_tic4x 40
2431 + bfd_arch_tic54x, /* Texas Instruments TMS320C54X */
2432 + bfd_arch_tic80, /* TI TMS320c80 (MVP) */
2433 + bfd_arch_v850, /* NEC V850 */
2434 +#define bfd_mach_v850 1
2435 +#define bfd_mach_v850e 'E'
2436 +#define bfd_mach_v850e1 '1'
2437 + bfd_arch_arc, /* ARC Cores */
2438 +#define bfd_mach_arc_5 5
2439 +#define bfd_mach_arc_6 6
2440 +#define bfd_mach_arc_7 7
2441 +#define bfd_mach_arc_8 8
2442 + bfd_arch_m32c, /* Renesas M16C/M32C. */
2443 +#define bfd_mach_m16c 0x75
2444 +#define bfd_mach_m32c 0x78
2445 + bfd_arch_m32r, /* Renesas M32R (formerly Mitsubishi M32R/D) */
2446 +#define bfd_mach_m32r 1 /* For backwards compatibility. */
2447 +#define bfd_mach_m32rx 'x'
2448 +#define bfd_mach_m32r2 '2'
2449 + bfd_arch_mn10200, /* Matsushita MN10200 */
2450 + bfd_arch_mn10300, /* Matsushita MN10300 */
2451 +#define bfd_mach_mn10300 300
2452 +#define bfd_mach_am33 330
2453 +#define bfd_mach_am33_2 332
2454 + bfd_arch_fr30,
2455 +#define bfd_mach_fr30 0x46523330
2456 + bfd_arch_frv,
2457 +#define bfd_mach_frv 1
2458 +#define bfd_mach_frvsimple 2
2459 +#define bfd_mach_fr300 300
2460 +#define bfd_mach_fr400 400
2461 +#define bfd_mach_fr450 450
2462 +#define bfd_mach_frvtomcat 499 /* fr500 prototype */
2463 +#define bfd_mach_fr500 500
2464 +#define bfd_mach_fr550 550
2465 + bfd_arch_mcore,
2466 + bfd_arch_ia64, /* HP/Intel ia64 */
2467 +#define bfd_mach_ia64_elf64 64
2468 +#define bfd_mach_ia64_elf32 32
2469 + bfd_arch_ip2k, /* Ubicom IP2K microcontrollers. */
2470 +#define bfd_mach_ip2022 1
2471 +#define bfd_mach_ip2022ext 2
2472 + bfd_arch_iq2000, /* Vitesse IQ2000. */
2473 +#define bfd_mach_iq2000 1
2474 +#define bfd_mach_iq10 2
2475 + bfd_arch_mt,
2476 +#define bfd_mach_ms1 1
2477 +#define bfd_mach_mrisc2 2
2478 +#define bfd_mach_ms2 3
2479 + bfd_arch_pj,
2480 + bfd_arch_avr, /* Atmel AVR microcontrollers. */
2481 +#define bfd_mach_avr1 1
2482 +#define bfd_mach_avr2 2
2483 +#define bfd_mach_avr3 3
2484 +#define bfd_mach_avr4 4
2485 +#define bfd_mach_avr5 5
2486 + bfd_arch_bfin, /* ADI Blackfin */
2487 +#define bfd_mach_bfin 1
2488 + bfd_arch_cr16c, /* National Semiconductor CompactRISC. */
2489 +#define bfd_mach_cr16c 1
2490 + bfd_arch_crx, /* National Semiconductor CRX. */
2491 +#define bfd_mach_crx 1
2492 + bfd_arch_cris, /* Axis CRIS */
2493 +#define bfd_mach_cris_v0_v10 255
2494 +#define bfd_mach_cris_v32 32
2495 +#define bfd_mach_cris_v10_v32 1032
2496 + bfd_arch_s390, /* IBM s390 */
2497 +#define bfd_mach_s390_31 31
2498 +#define bfd_mach_s390_64 64
2499 + bfd_arch_openrisc, /* OpenRISC */
2500 + bfd_arch_mmix, /* Donald Knuth's educational processor. */
2501 + bfd_arch_xstormy16,
2502 +#define bfd_mach_xstormy16 1
2503 + bfd_arch_msp430, /* Texas Instruments MSP430 architecture. */
2504 +#define bfd_mach_msp11 11
2505 +#define bfd_mach_msp110 110
2506 +#define bfd_mach_msp12 12
2507 +#define bfd_mach_msp13 13
2508 +#define bfd_mach_msp14 14
2509 +#define bfd_mach_msp15 15
2510 +#define bfd_mach_msp16 16
2511 +#define bfd_mach_msp21 21
2512 +#define bfd_mach_msp31 31
2513 +#define bfd_mach_msp32 32
2514 +#define bfd_mach_msp33 33
2515 +#define bfd_mach_msp41 41
2516 +#define bfd_mach_msp42 42
2517 +#define bfd_mach_msp43 43
2518 +#define bfd_mach_msp44 44
2519 + bfd_arch_xtensa, /* Tensilica's Xtensa cores. */
2520 +#define bfd_mach_xtensa 1
2521 + bfd_arch_maxq, /* Dallas MAXQ 10/20 */
2522 +#define bfd_mach_maxq10 10
2523 +#define bfd_mach_maxq20 20
2524 + bfd_arch_z80,
2525 +#define bfd_mach_z80strict 1 /* No undocumented opcodes. */
2526 +#define bfd_mach_z80 3 /* With ixl, ixh, iyl, and iyh. */
2527 +#define bfd_mach_z80full 7 /* All undocumented instructions. */
2528 +#define bfd_mach_r800 11 /* R800: successor with multiplication. */
2529 + bfd_arch_last
2530 + };
2531 +
2532 +typedef struct bfd_arch_info
2533 +{
2534 + int bits_per_word;
2535 + int bits_per_address;
2536 + int bits_per_byte;
2537 + enum bfd_architecture arch;
2538 + unsigned long mach;
2539 + const char *arch_name;
2540 + const char *printable_name;
2541 + unsigned int section_align_power;
2542 + /* TRUE if this is the default machine for the architecture.
2543 + The default arch should be the first entry for an arch so that
2544 + all the entries for that arch can be accessed via <<next>>. */
2545 + bfd_boolean the_default;
2546 + const struct bfd_arch_info * (*compatible)
2547 + (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
2548 +
2549 + bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
2550 +
2551 + const struct bfd_arch_info *next;
2552 +}
2553 +bfd_arch_info_type;
2554 +
2555 +const char *bfd_printable_name (bfd *abfd);
2556 +
2557 +const bfd_arch_info_type *bfd_scan_arch (const char *string);
2558 +
2559 +const char **bfd_arch_list (void);
2560 +
2561 +const bfd_arch_info_type *bfd_arch_get_compatible
2562 + (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns);
2563 +
2564 +void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
2565 +
2566 +enum bfd_architecture bfd_get_arch (bfd *abfd);
2567 +
2568 +unsigned long bfd_get_mach (bfd *abfd);
2569 +
2570 +unsigned int bfd_arch_bits_per_byte (bfd *abfd);
2571 +
2572 +unsigned int bfd_arch_bits_per_address (bfd *abfd);
2573 +
2574 +const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
2575 +
2576 +const bfd_arch_info_type *bfd_lookup_arch
2577 + (enum bfd_architecture arch, unsigned long machine);
2578 +
2579 +const char *bfd_printable_arch_mach
2580 + (enum bfd_architecture arch, unsigned long machine);
2581 +
2582 +unsigned int bfd_octets_per_byte (bfd *abfd);
2583 +
2584 +unsigned int bfd_arch_mach_octets_per_byte
2585 + (enum bfd_architecture arch, unsigned long machine);
2586 +
2587 +/* Extracted from reloc.c. */
2588 +typedef enum bfd_reloc_status
2589 +{
2590 + /* No errors detected. */
2591 + bfd_reloc_ok,
2592 +
2593 + /* The relocation was performed, but there was an overflow. */
2594 + bfd_reloc_overflow,
2595 +
2596 + /* The address to relocate was not within the section supplied. */
2597 + bfd_reloc_outofrange,
2598 +
2599 + /* Used by special functions. */
2600 + bfd_reloc_continue,
2601 +
2602 + /* Unsupported relocation size requested. */
2603 + bfd_reloc_notsupported,
2604 +
2605 + /* Unused. */
2606 + bfd_reloc_other,
2607 +
2608 + /* The symbol to relocate against was undefined. */
2609 + bfd_reloc_undefined,
2610 +
2611 + /* The relocation was performed, but may not be ok - presently
2612 + generated only when linking i960 coff files with i960 b.out
2613 + symbols. If this type is returned, the error_message argument
2614 + to bfd_perform_relocation will be set. */
2615 + bfd_reloc_dangerous
2616 + }
2617 + bfd_reloc_status_type;
2618 +
2619 +
2620 +typedef struct reloc_cache_entry
2621 +{
2622 + /* A pointer into the canonical table of pointers. */
2623 + struct bfd_symbol **sym_ptr_ptr;
2624 +
2625 + /* offset in section. */
2626 + bfd_size_type address;
2627 +
2628 + /* addend for relocation value. */
2629 + bfd_vma addend;
2630 +
2631 + /* Pointer to how to perform the required relocation. */
2632 + reloc_howto_type *howto;
2633 +
2634 +}
2635 +arelent;
2636 +
2637 +enum complain_overflow
2638 +{
2639 + /* Do not complain on overflow. */
2640 + complain_overflow_dont,
2641 +
2642 + /* Complain if the value overflows when considered as a signed
2643 + number one bit larger than the field. ie. A bitfield of N bits
2644 + is allowed to represent -2**n to 2**n-1. */
2645 + complain_overflow_bitfield,
2646 +
2647 + /* Complain if the value overflows when considered as a signed
2648 + number. */
2649 + complain_overflow_signed,
2650 +
2651 + /* Complain if the value overflows when considered as an
2652 + unsigned number. */
2653 + complain_overflow_unsigned
2654 +};
2655 +
2656 +struct reloc_howto_struct
2657 +{
2658 + /* The type field has mainly a documentary use - the back end can
2659 + do what it wants with it, though normally the back end's
2660 + external idea of what a reloc number is stored
2661 + in this field. For example, a PC relative word relocation
2662 + in a coff environment has the type 023 - because that's
2663 + what the outside world calls a R_PCRWORD reloc. */
2664 + unsigned int type;
2665 +
2666 + /* The value the final relocation is shifted right by. This drops
2667 + unwanted data from the relocation. */
2668 + unsigned int rightshift;
2669 +
2670 + /* The size of the item to be relocated. This is *not* a
2671 + power-of-two measure. To get the number of bytes operated
2672 + on by a type of relocation, use bfd_get_reloc_size. */
2673 + int size;
2674 +
2675 + /* The number of bits in the item to be relocated. This is used
2676 + when doing overflow checking. */
2677 + unsigned int bitsize;
2678 +
2679 + /* Notes that the relocation is relative to the location in the
2680 + data section of the addend. The relocation function will
2681 + subtract from the relocation value the address of the location
2682 + being relocated. */
2683 + bfd_boolean pc_relative;
2684 +
2685 + /* The bit position of the reloc value in the destination.
2686 + The relocated value is left shifted by this amount. */
2687 + unsigned int bitpos;
2688 +
2689 + /* What type of overflow error should be checked for when
2690 + relocating. */
2691 + enum complain_overflow complain_on_overflow;
2692 +
2693 + /* If this field is non null, then the supplied function is
2694 + called rather than the normal function. This allows really
2695 + strange relocation methods to be accommodated (e.g., i960 callj
2696 + instructions). */
2697 + bfd_reloc_status_type (*special_function)
2698 + (bfd *, arelent *, struct bfd_symbol *, void *, asection *,
2699 + bfd *, char **);
2700 +
2701 + /* The textual name of the relocation type. */
2702 + char *name;
2703 +
2704 + /* Some formats record a relocation addend in the section contents
2705 + rather than with the relocation. For ELF formats this is the
2706 + distinction between USE_REL and USE_RELA (though the code checks
2707 + for USE_REL == 1/0). The value of this field is TRUE if the
2708 + addend is recorded with the section contents; when performing a
2709 + partial link (ld -r) the section contents (the data) will be
2710 + modified. The value of this field is FALSE if addends are
2711 + recorded with the relocation (in arelent.addend); when performing
2712 + a partial link the relocation will be modified.
2713 + All relocations for all ELF USE_RELA targets should set this field
2714 + to FALSE (values of TRUE should be looked on with suspicion).
2715 + However, the converse is not true: not all relocations of all ELF
2716 + USE_REL targets set this field to TRUE. Why this is so is peculiar
2717 + to each particular target. For relocs that aren't used in partial
2718 + links (e.g. GOT stuff) it doesn't matter what this is set to. */
2719 + bfd_boolean partial_inplace;
2720 +
2721 + /* src_mask selects the part of the instruction (or data) to be used
2722 + in the relocation sum. If the target relocations don't have an
2723 + addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
2724 + dst_mask to extract the addend from the section contents. If
2725 + relocations do have an addend in the reloc, eg. ELF USE_RELA, this
2726 + field should be zero. Non-zero values for ELF USE_RELA targets are
2727 + bogus as in those cases the value in the dst_mask part of the
2728 + section contents should be treated as garbage. */
2729 + bfd_vma src_mask;
2730 +
2731 + /* dst_mask selects which parts of the instruction (or data) are
2732 + replaced with a relocated value. */
2733 + bfd_vma dst_mask;
2734 +
2735 + /* When some formats create PC relative instructions, they leave
2736 + the value of the pc of the place being relocated in the offset
2737 + slot of the instruction, so that a PC relative relocation can
2738 + be made just by adding in an ordinary offset (e.g., sun3 a.out).
2739 + Some formats leave the displacement part of an instruction
2740 + empty (e.g., m88k bcs); this flag signals the fact. */
2741 + bfd_boolean pcrel_offset;
2742 +};
2743 +
2744 +#define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \
2745 + { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC }
2746 +#define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \
2747 + HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \
2748 + NAME, FALSE, 0, 0, IN)
2749 +
2750 +#define EMPTY_HOWTO(C) \
2751 + HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
2752 + NULL, FALSE, 0, 0, FALSE)
2753 +
2754 +#define HOWTO_PREPARE(relocation, symbol) \
2755 + { \
2756 + if (symbol != NULL) \
2757 + { \
2758 + if (bfd_is_com_section (symbol->section)) \
2759 + { \
2760 + relocation = 0; \
2761 + } \
2762 + else \
2763 + { \
2764 + relocation = symbol->value; \
2765 + } \
2766 + } \
2767 + }
2768 +
2769 +unsigned int bfd_get_reloc_size (reloc_howto_type *);
2770 +
2771 +typedef struct relent_chain
2772 +{
2773 + arelent relent;
2774 + struct relent_chain *next;
2775 +}
2776 +arelent_chain;
2777 +
2778 +bfd_reloc_status_type bfd_check_overflow
2779 + (enum complain_overflow how,
2780 + unsigned int bitsize,
2781 + unsigned int rightshift,
2782 + unsigned int addrsize,
2783 + bfd_vma relocation);
2784 +
2785 +bfd_reloc_status_type bfd_perform_relocation
2786 + (bfd *abfd,
2787 + arelent *reloc_entry,
2788 + void *data,
2789 + asection *input_section,
2790 + bfd *output_bfd,
2791 + char **error_message);
2792 +
2793 +bfd_reloc_status_type bfd_install_relocation
2794 + (bfd *abfd,
2795 + arelent *reloc_entry,
2796 + void *data, bfd_vma data_start,
2797 + asection *input_section,
2798 + char **error_message);
2799 +
2800 +enum bfd_reloc_code_real {
2801 + _dummy_first_bfd_reloc_code_real,
2802 +
2803 +
2804 +/* Basic absolute relocations of N bits. */
2805 + BFD_RELOC_64,
2806 + BFD_RELOC_32,
2807 + BFD_RELOC_26,
2808 + BFD_RELOC_24,
2809 + BFD_RELOC_16,
2810 + BFD_RELOC_14,
2811 + BFD_RELOC_8,
2812 +
2813 +/* PC-relative relocations. Sometimes these are relative to the address
2814 +of the relocation itself; sometimes they are relative to the start of
2815 +the section containing the relocation. It depends on the specific target.
2816 +
2817 +The 24-bit relocation is used in some Intel 960 configurations. */
2818 + BFD_RELOC_64_PCREL,
2819 + BFD_RELOC_32_PCREL,
2820 + BFD_RELOC_24_PCREL,
2821 + BFD_RELOC_16_PCREL,
2822 + BFD_RELOC_12_PCREL,
2823 + BFD_RELOC_8_PCREL,
2824 +
2825 +/* Section relative relocations. Some targets need this for DWARF2. */
2826 + BFD_RELOC_32_SECREL,
2827 +
2828 +/* For ELF. */
2829 + BFD_RELOC_32_GOT_PCREL,
2830 + BFD_RELOC_16_GOT_PCREL,
2831 + BFD_RELOC_8_GOT_PCREL,
2832 + BFD_RELOC_32_GOTOFF,
2833 + BFD_RELOC_16_GOTOFF,
2834 + BFD_RELOC_LO16_GOTOFF,
2835 + BFD_RELOC_HI16_GOTOFF,
2836 + BFD_RELOC_HI16_S_GOTOFF,
2837 + BFD_RELOC_8_GOTOFF,
2838 + BFD_RELOC_64_PLT_PCREL,
2839 + BFD_RELOC_32_PLT_PCREL,
2840 + BFD_RELOC_24_PLT_PCREL,
2841 + BFD_RELOC_16_PLT_PCREL,
2842 + BFD_RELOC_8_PLT_PCREL,
2843 + BFD_RELOC_64_PLTOFF,
2844 + BFD_RELOC_32_PLTOFF,
2845 + BFD_RELOC_16_PLTOFF,
2846 + BFD_RELOC_LO16_PLTOFF,
2847 + BFD_RELOC_HI16_PLTOFF,
2848 + BFD_RELOC_HI16_S_PLTOFF,
2849 + BFD_RELOC_8_PLTOFF,
2850 +
2851 +/* Relocations used by 68K ELF. */
2852 + BFD_RELOC_68K_GLOB_DAT,
2853 + BFD_RELOC_68K_JMP_SLOT,
2854 + BFD_RELOC_68K_RELATIVE,
2855 +
2856 +/* Linkage-table relative. */
2857 + BFD_RELOC_32_BASEREL,
2858 + BFD_RELOC_16_BASEREL,
2859 + BFD_RELOC_LO16_BASEREL,
2860 + BFD_RELOC_HI16_BASEREL,
2861 + BFD_RELOC_HI16_S_BASEREL,
2862 + BFD_RELOC_8_BASEREL,
2863 + BFD_RELOC_RVA,
2864 +
2865 +/* Absolute 8-bit relocation, but used to form an address like 0xFFnn. */
2866 + BFD_RELOC_8_FFnn,
2867 +
2868 +/* These PC-relative relocations are stored as word displacements --
2869 +i.e., byte displacements shifted right two bits. The 30-bit word
2870 +displacement (<<32_PCREL_S2>> -- 32 bits, shifted 2) is used on the
2871 +SPARC. (SPARC tools generally refer to this as <<WDISP30>>.) The
2872 +signed 16-bit displacement is used on the MIPS, and the 23-bit
2873 +displacement is used on the Alpha. */
2874 + BFD_RELOC_32_PCREL_S2,
2875 + BFD_RELOC_16_PCREL_S2,
2876 + BFD_RELOC_23_PCREL_S2,
2877 +
2878 +/* High 22 bits and low 10 bits of 32-bit value, placed into lower bits of
2879 +the target word. These are used on the SPARC. */
2880 + BFD_RELOC_HI22,
2881 + BFD_RELOC_LO10,
2882 +
2883 +/* For systems that allocate a Global Pointer register, these are
2884 +displacements off that register. These relocation types are
2885 +handled specially, because the value the register will have is
2886 +decided relatively late. */
2887 + BFD_RELOC_GPREL16,
2888 + BFD_RELOC_GPREL32,
2889 +
2890 +/* Reloc types used for i960/b.out. */
2891 + BFD_RELOC_I960_CALLJ,
2892 +
2893 +/* SPARC ELF relocations. There is probably some overlap with other
2894 +relocation types already defined. */
2895 + BFD_RELOC_NONE,
2896 + BFD_RELOC_SPARC_WDISP22,
2897 + BFD_RELOC_SPARC22,
2898 + BFD_RELOC_SPARC13,
2899 + BFD_RELOC_SPARC_GOT10,
2900 + BFD_RELOC_SPARC_GOT13,
2901 + BFD_RELOC_SPARC_GOT22,
2902 + BFD_RELOC_SPARC_PC10,
2903 + BFD_RELOC_SPARC_PC22,
2904 + BFD_RELOC_SPARC_WPLT30,
2905 + BFD_RELOC_SPARC_COPY,
2906 + BFD_RELOC_SPARC_GLOB_DAT,
2907 + BFD_RELOC_SPARC_JMP_SLOT,
2908 + BFD_RELOC_SPARC_RELATIVE,
2909 + BFD_RELOC_SPARC_UA16,
2910 + BFD_RELOC_SPARC_UA32,
2911 + BFD_RELOC_SPARC_UA64,
2912 +
2913 +/* I think these are specific to SPARC a.out (e.g., Sun 4). */
2914 + BFD_RELOC_SPARC_BASE13,
2915 + BFD_RELOC_SPARC_BASE22,
2916 +
2917 +/* SPARC64 relocations */
2918 +#define BFD_RELOC_SPARC_64 BFD_RELOC_64
2919 + BFD_RELOC_SPARC_10,
2920 + BFD_RELOC_SPARC_11,
2921 + BFD_RELOC_SPARC_OLO10,
2922 + BFD_RELOC_SPARC_HH22,
2923 + BFD_RELOC_SPARC_HM10,
2924 + BFD_RELOC_SPARC_LM22,
2925 + BFD_RELOC_SPARC_PC_HH22,
2926 + BFD_RELOC_SPARC_PC_HM10,
2927 + BFD_RELOC_SPARC_PC_LM22,
2928 + BFD_RELOC_SPARC_WDISP16,
2929 + BFD_RELOC_SPARC_WDISP19,
2930 + BFD_RELOC_SPARC_7,
2931 + BFD_RELOC_SPARC_6,
2932 + BFD_RELOC_SPARC_5,
2933 +#define BFD_RELOC_SPARC_DISP64 BFD_RELOC_64_PCREL
2934 + BFD_RELOC_SPARC_PLT32,
2935 + BFD_RELOC_SPARC_PLT64,
2936 + BFD_RELOC_SPARC_HIX22,
2937 + BFD_RELOC_SPARC_LOX10,
2938 + BFD_RELOC_SPARC_H44,
2939 + BFD_RELOC_SPARC_M44,
2940 + BFD_RELOC_SPARC_L44,
2941 + BFD_RELOC_SPARC_REGISTER,
2942 +
2943 +/* SPARC little endian relocation */
2944 + BFD_RELOC_SPARC_REV32,
2945 +
2946 +/* SPARC TLS relocations */
2947 + BFD_RELOC_SPARC_TLS_GD_HI22,
2948 + BFD_RELOC_SPARC_TLS_GD_LO10,
2949 + BFD_RELOC_SPARC_TLS_GD_ADD,
2950 + BFD_RELOC_SPARC_TLS_GD_CALL,
2951 + BFD_RELOC_SPARC_TLS_LDM_HI22,
2952 + BFD_RELOC_SPARC_TLS_LDM_LO10,
2953 + BFD_RELOC_SPARC_TLS_LDM_ADD,
2954 + BFD_RELOC_SPARC_TLS_LDM_CALL,
2955 + BFD_RELOC_SPARC_TLS_LDO_HIX22,
2956 + BFD_RELOC_SPARC_TLS_LDO_LOX10,
2957 + BFD_RELOC_SPARC_TLS_LDO_ADD,
2958 + BFD_RELOC_SPARC_TLS_IE_HI22,
2959 + BFD_RELOC_SPARC_TLS_IE_LO10,
2960 + BFD_RELOC_SPARC_TLS_IE_LD,
2961 + BFD_RELOC_SPARC_TLS_IE_LDX,
2962 + BFD_RELOC_SPARC_TLS_IE_ADD,
2963 + BFD_RELOC_SPARC_TLS_LE_HIX22,
2964 + BFD_RELOC_SPARC_TLS_LE_LOX10,
2965 + BFD_RELOC_SPARC_TLS_DTPMOD32,
2966 + BFD_RELOC_SPARC_TLS_DTPMOD64,
2967 + BFD_RELOC_SPARC_TLS_DTPOFF32,
2968 + BFD_RELOC_SPARC_TLS_DTPOFF64,
2969 + BFD_RELOC_SPARC_TLS_TPOFF32,
2970 + BFD_RELOC_SPARC_TLS_TPOFF64,
2971 +
2972 +/* Alpha ECOFF and ELF relocations. Some of these treat the symbol or
2973 +"addend" in some special way.
2974 +For GPDISP_HI16 ("gpdisp") relocations, the symbol is ignored when
2975 +writing; when reading, it will be the absolute section symbol. The
2976 +addend is the displacement in bytes of the "lda" instruction from
2977 +the "ldah" instruction (which is at the address of this reloc). */
2978 + BFD_RELOC_ALPHA_GPDISP_HI16,
2979 +
2980 +/* For GPDISP_LO16 ("ignore") relocations, the symbol is handled as
2981 +with GPDISP_HI16 relocs. The addend is ignored when writing the
2982 +relocations out, and is filled in with the file's GP value on
2983 +reading, for convenience. */
2984 + BFD_RELOC_ALPHA_GPDISP_LO16,
2985 +
2986 +/* The ELF GPDISP relocation is exactly the same as the GPDISP_HI16
2987 +relocation except that there is no accompanying GPDISP_LO16
2988 +relocation. */
2989 + BFD_RELOC_ALPHA_GPDISP,
2990 +
2991 +/* The Alpha LITERAL/LITUSE relocs are produced by a symbol reference;
2992 +the assembler turns it into a LDQ instruction to load the address of
2993 +the symbol, and then fills in a register in the real instruction.
2994 +
2995 +The LITERAL reloc, at the LDQ instruction, refers to the .lita
2996 +section symbol. The addend is ignored when writing, but is filled
2997 +in with the file's GP value on reading, for convenience, as with the
2998 +GPDISP_LO16 reloc.
2999 +
3000 +The ELF_LITERAL reloc is somewhere between 16_GOTOFF and GPDISP_LO16.
3001 +It should refer to the symbol to be referenced, as with 16_GOTOFF,
3002 +but it generates output not based on the position within the .got
3003 +section, but relative to the GP value chosen for the file during the
3004 +final link stage.
3005 +
3006 +The LITUSE reloc, on the instruction using the loaded address, gives
3007 +information to the linker that it might be able to use to optimize
3008 +away some literal section references. The symbol is ignored (read
3009 +as the absolute section symbol), and the "addend" indicates the type
3010 +of instruction using the register:
3011 +1 - "memory" fmt insn
3012 +2 - byte-manipulation (byte offset reg)
3013 +3 - jsr (target of branch) */
3014 + BFD_RELOC_ALPHA_LITERAL,
3015 + BFD_RELOC_ALPHA_ELF_LITERAL,
3016 + BFD_RELOC_ALPHA_LITUSE,
3017 +
3018 +/* The HINT relocation indicates a value that should be filled into the
3019 +"hint" field of a jmp/jsr/ret instruction, for possible branch-
3020 +prediction logic which may be provided on some processors. */
3021 + BFD_RELOC_ALPHA_HINT,
3022 +
3023 +/* The LINKAGE relocation outputs a linkage pair in the object file,
3024 +which is filled by the linker. */
3025 + BFD_RELOC_ALPHA_LINKAGE,
3026 +
3027 +/* The CODEADDR relocation outputs a STO_CA in the object file,
3028 +which is filled by the linker. */
3029 + BFD_RELOC_ALPHA_CODEADDR,
3030 +
3031 +/* The GPREL_HI/LO relocations together form a 32-bit offset from the
3032 +GP register. */
3033 + BFD_RELOC_ALPHA_GPREL_HI16,
3034 + BFD_RELOC_ALPHA_GPREL_LO16,
3035 +
3036 +/* Like BFD_RELOC_23_PCREL_S2, except that the source and target must
3037 +share a common GP, and the target address is adjusted for
3038 +STO_ALPHA_STD_GPLOAD. */
3039 + BFD_RELOC_ALPHA_BRSGP,
3040 +
3041 +/* Alpha thread-local storage relocations. */
3042 + BFD_RELOC_ALPHA_TLSGD,
3043 + BFD_RELOC_ALPHA_TLSLDM,
3044 + BFD_RELOC_ALPHA_DTPMOD64,
3045 + BFD_RELOC_ALPHA_GOTDTPREL16,
3046 + BFD_RELOC_ALPHA_DTPREL64,
3047 + BFD_RELOC_ALPHA_DTPREL_HI16,
3048 + BFD_RELOC_ALPHA_DTPREL_LO16,
3049 + BFD_RELOC_ALPHA_DTPREL16,
3050 + BFD_RELOC_ALPHA_GOTTPREL16,
3051 + BFD_RELOC_ALPHA_TPREL64,
3052 + BFD_RELOC_ALPHA_TPREL_HI16,
3053 + BFD_RELOC_ALPHA_TPREL_LO16,
3054 + BFD_RELOC_ALPHA_TPREL16,
3055 +
3056 +/* Bits 27..2 of the relocation address shifted right 2 bits;
3057 +simple reloc otherwise. */
3058 + BFD_RELOC_MIPS_JMP,
3059 +
3060 +/* The MIPS16 jump instruction. */
3061 + BFD_RELOC_MIPS16_JMP,
3062 +
3063 +/* MIPS16 GP relative reloc. */
3064 + BFD_RELOC_MIPS16_GPREL,
3065 +
3066 +/* High 16 bits of 32-bit value; simple reloc. */
3067 + BFD_RELOC_HI16,
3068 +
3069 +/* High 16 bits of 32-bit value but the low 16 bits will be sign
3070 +extended and added to form the final result. If the low 16
3071 +bits form a negative number, we need to add one to the high value
3072 +to compensate for the borrow when the low bits are added. */
3073 + BFD_RELOC_HI16_S,
3074 +
3075 +/* Low 16 bits. */
3076 + BFD_RELOC_LO16,
3077 +
3078 +/* High 16 bits of 32-bit pc-relative value */
3079 + BFD_RELOC_HI16_PCREL,
3080 +
3081 +/* High 16 bits of 32-bit pc-relative value, adjusted */
3082 + BFD_RELOC_HI16_S_PCREL,
3083 +
3084 +/* Low 16 bits of pc-relative value */
3085 + BFD_RELOC_LO16_PCREL,
3086 +
3087 +/* MIPS16 high 16 bits of 32-bit value. */
3088 + BFD_RELOC_MIPS16_HI16,
3089 +
3090 +/* MIPS16 high 16 bits of 32-bit value but the low 16 bits will be sign
3091 +extended and added to form the final result. If the low 16
3092 +bits form a negative number, we need to add one to the high value
3093 +to compensate for the borrow when the low bits are added. */
3094 + BFD_RELOC_MIPS16_HI16_S,
3095 +
3096 +/* MIPS16 low 16 bits. */
3097 + BFD_RELOC_MIPS16_LO16,
3098 +
3099 +/* Relocation against a MIPS literal section. */
3100 + BFD_RELOC_MIPS_LITERAL,
3101 +
3102 +/* MIPS ELF relocations. */
3103 + BFD_RELOC_MIPS_GOT16,
3104 + BFD_RELOC_MIPS_CALL16,
3105 + BFD_RELOC_MIPS_GOT_HI16,
3106 + BFD_RELOC_MIPS_GOT_LO16,
3107 + BFD_RELOC_MIPS_CALL_HI16,
3108 + BFD_RELOC_MIPS_CALL_LO16,
3109 + BFD_RELOC_MIPS_SUB,
3110 + BFD_RELOC_MIPS_GOT_PAGE,
3111 + BFD_RELOC_MIPS_GOT_OFST,
3112 + BFD_RELOC_MIPS_GOT_DISP,
3113 + BFD_RELOC_MIPS_SHIFT5,
3114 + BFD_RELOC_MIPS_SHIFT6,
3115 + BFD_RELOC_MIPS_INSERT_A,
3116 + BFD_RELOC_MIPS_INSERT_B,
3117 + BFD_RELOC_MIPS_DELETE,
3118 + BFD_RELOC_MIPS_HIGHEST,
3119 + BFD_RELOC_MIPS_HIGHER,
3120 + BFD_RELOC_MIPS_SCN_DISP,
3121 + BFD_RELOC_MIPS_REL16,
3122 + BFD_RELOC_MIPS_RELGOT,
3123 + BFD_RELOC_MIPS_JALR,
3124 + BFD_RELOC_MIPS_TLS_DTPMOD32,
3125 + BFD_RELOC_MIPS_TLS_DTPREL32,
3126 + BFD_RELOC_MIPS_TLS_DTPMOD64,
3127 + BFD_RELOC_MIPS_TLS_DTPREL64,
3128 + BFD_RELOC_MIPS_TLS_GD,
3129 + BFD_RELOC_MIPS_TLS_LDM,
3130 + BFD_RELOC_MIPS_TLS_DTPREL_HI16,
3131 + BFD_RELOC_MIPS_TLS_DTPREL_LO16,
3132 + BFD_RELOC_MIPS_TLS_GOTTPREL,
3133 + BFD_RELOC_MIPS_TLS_TPREL32,
3134 + BFD_RELOC_MIPS_TLS_TPREL64,
3135 + BFD_RELOC_MIPS_TLS_TPREL_HI16,
3136 + BFD_RELOC_MIPS_TLS_TPREL_LO16,
3137 +
3138 +
3139 +/* Fujitsu Frv Relocations. */
3140 + BFD_RELOC_FRV_LABEL16,
3141 + BFD_RELOC_FRV_LABEL24,
3142 + BFD_RELOC_FRV_LO16,
3143 + BFD_RELOC_FRV_HI16,
3144 + BFD_RELOC_FRV_GPREL12,
3145 + BFD_RELOC_FRV_GPRELU12,
3146 + BFD_RELOC_FRV_GPREL32,
3147 + BFD_RELOC_FRV_GPRELHI,
3148 + BFD_RELOC_FRV_GPRELLO,
3149 + BFD_RELOC_FRV_GOT12,
3150 + BFD_RELOC_FRV_GOTHI,
3151 + BFD_RELOC_FRV_GOTLO,
3152 + BFD_RELOC_FRV_FUNCDESC,
3153 + BFD_RELOC_FRV_FUNCDESC_GOT12,
3154 + BFD_RELOC_FRV_FUNCDESC_GOTHI,
3155 + BFD_RELOC_FRV_FUNCDESC_GOTLO,
3156 + BFD_RELOC_FRV_FUNCDESC_VALUE,
3157 + BFD_RELOC_FRV_FUNCDESC_GOTOFF12,
3158 + BFD_RELOC_FRV_FUNCDESC_GOTOFFHI,
3159 + BFD_RELOC_FRV_FUNCDESC_GOTOFFLO,
3160 + BFD_RELOC_FRV_GOTOFF12,
3161 + BFD_RELOC_FRV_GOTOFFHI,
3162 + BFD_RELOC_FRV_GOTOFFLO,
3163 + BFD_RELOC_FRV_GETTLSOFF,
3164 + BFD_RELOC_FRV_TLSDESC_VALUE,
3165 + BFD_RELOC_FRV_GOTTLSDESC12,
3166 + BFD_RELOC_FRV_GOTTLSDESCHI,
3167 + BFD_RELOC_FRV_GOTTLSDESCLO,
3168 + BFD_RELOC_FRV_TLSMOFF12,
3169 + BFD_RELOC_FRV_TLSMOFFHI,
3170 + BFD_RELOC_FRV_TLSMOFFLO,
3171 + BFD_RELOC_FRV_GOTTLSOFF12,
3172 + BFD_RELOC_FRV_GOTTLSOFFHI,
3173 + BFD_RELOC_FRV_GOTTLSOFFLO,
3174 + BFD_RELOC_FRV_TLSOFF,
3175 + BFD_RELOC_FRV_TLSDESC_RELAX,
3176 + BFD_RELOC_FRV_GETTLSOFF_RELAX,
3177 + BFD_RELOC_FRV_TLSOFF_RELAX,
3178 + BFD_RELOC_FRV_TLSMOFF,
3179 +
3180 +
3181 +/* This is a 24bit GOT-relative reloc for the mn10300. */
3182 + BFD_RELOC_MN10300_GOTOFF24,
3183 +
3184 +/* This is a 32bit GOT-relative reloc for the mn10300, offset by two bytes
3185 +in the instruction. */
3186 + BFD_RELOC_MN10300_GOT32,
3187 +
3188 +/* This is a 24bit GOT-relative reloc for the mn10300, offset by two bytes
3189 +in the instruction. */
3190 + BFD_RELOC_MN10300_GOT24,
3191 +
3192 +/* This is a 16bit GOT-relative reloc for the mn10300, offset by two bytes
3193 +in the instruction. */
3194 + BFD_RELOC_MN10300_GOT16,
3195 +
3196 +/* Copy symbol at runtime. */
3197 + BFD_RELOC_MN10300_COPY,
3198 +
3199 +/* Create GOT entry. */
3200 + BFD_RELOC_MN10300_GLOB_DAT,
3201 +
3202 +/* Create PLT entry. */
3203 + BFD_RELOC_MN10300_JMP_SLOT,
3204 +
3205 +/* Adjust by program base. */
3206 + BFD_RELOC_MN10300_RELATIVE,
3207 +
3208 +
3209 +/* i386/elf relocations */
3210 + BFD_RELOC_386_GOT32,
3211 + BFD_RELOC_386_PLT32,
3212 + BFD_RELOC_386_COPY,
3213 + BFD_RELOC_386_GLOB_DAT,
3214 + BFD_RELOC_386_JUMP_SLOT,
3215 + BFD_RELOC_386_RELATIVE,
3216 + BFD_RELOC_386_GOTOFF,
3217 + BFD_RELOC_386_GOTPC,
3218 + BFD_RELOC_386_TLS_TPOFF,
3219 + BFD_RELOC_386_TLS_IE,
3220 + BFD_RELOC_386_TLS_GOTIE,
3221 + BFD_RELOC_386_TLS_LE,
3222 + BFD_RELOC_386_TLS_GD,
3223 + BFD_RELOC_386_TLS_LDM,
3224 + BFD_RELOC_386_TLS_LDO_32,
3225 + BFD_RELOC_386_TLS_IE_32,
3226 + BFD_RELOC_386_TLS_LE_32,
3227 + BFD_RELOC_386_TLS_DTPMOD32,
3228 + BFD_RELOC_386_TLS_DTPOFF32,
3229 + BFD_RELOC_386_TLS_TPOFF32,
3230 +
3231 +/* x86-64/elf relocations */
3232 + BFD_RELOC_X86_64_GOT32,
3233 + BFD_RELOC_X86_64_PLT32,
3234 + BFD_RELOC_X86_64_COPY,
3235 + BFD_RELOC_X86_64_GLOB_DAT,
3236 + BFD_RELOC_X86_64_JUMP_SLOT,
3237 + BFD_RELOC_X86_64_RELATIVE,
3238 + BFD_RELOC_X86_64_GOTPCREL,
3239 + BFD_RELOC_X86_64_32S,
3240 + BFD_RELOC_X86_64_DTPMOD64,
3241 + BFD_RELOC_X86_64_DTPOFF64,
3242 + BFD_RELOC_X86_64_TPOFF64,
3243 + BFD_RELOC_X86_64_TLSGD,
3244 + BFD_RELOC_X86_64_TLSLD,
3245 + BFD_RELOC_X86_64_DTPOFF32,
3246 + BFD_RELOC_X86_64_GOTTPOFF,
3247 + BFD_RELOC_X86_64_TPOFF32,
3248 + BFD_RELOC_X86_64_GOTOFF64,
3249 + BFD_RELOC_X86_64_GOTPC32,
3250 + BFD_RELOC_X86_64_GOT64,
3251 + BFD_RELOC_X86_64_GOTPCREL64,
3252 + BFD_RELOC_X86_64_GOTPC64,
3253 + BFD_RELOC_X86_64_GOTPLT64,
3254 + BFD_RELOC_X86_64_PLTOFF64,
3255 +
3256 +/* ns32k relocations */
3257 + BFD_RELOC_NS32K_IMM_8,
3258 + BFD_RELOC_NS32K_IMM_16,
3259 + BFD_RELOC_NS32K_IMM_32,
3260 + BFD_RELOC_NS32K_IMM_8_PCREL,
3261 + BFD_RELOC_NS32K_IMM_16_PCREL,
3262 + BFD_RELOC_NS32K_IMM_32_PCREL,
3263 + BFD_RELOC_NS32K_DISP_8,
3264 + BFD_RELOC_NS32K_DISP_16,
3265 + BFD_RELOC_NS32K_DISP_32,
3266 + BFD_RELOC_NS32K_DISP_8_PCREL,
3267 + BFD_RELOC_NS32K_DISP_16_PCREL,
3268 + BFD_RELOC_NS32K_DISP_32_PCREL,
3269 +
3270 +/* PDP11 relocations */
3271 + BFD_RELOC_PDP11_DISP_8_PCREL,
3272 + BFD_RELOC_PDP11_DISP_6_PCREL,
3273 +
3274 +/* Picojava relocs. Not all of these appear in object files. */
3275 + BFD_RELOC_PJ_CODE_HI16,
3276 + BFD_RELOC_PJ_CODE_LO16,
3277 + BFD_RELOC_PJ_CODE_DIR16,
3278 + BFD_RELOC_PJ_CODE_DIR32,
3279 + BFD_RELOC_PJ_CODE_REL16,
3280 + BFD_RELOC_PJ_CODE_REL32,
3281 +
3282 +/* Power(rs6000) and PowerPC relocations. */
3283 + BFD_RELOC_PPC_B26,
3284 + BFD_RELOC_PPC_BA26,
3285 + BFD_RELOC_PPC_TOC16,
3286 + BFD_RELOC_PPC_B16,
3287 + BFD_RELOC_PPC_B16_BRTAKEN,
3288 + BFD_RELOC_PPC_B16_BRNTAKEN,
3289 + BFD_RELOC_PPC_BA16,
3290 + BFD_RELOC_PPC_BA16_BRTAKEN,
3291 + BFD_RELOC_PPC_BA16_BRNTAKEN,
3292 + BFD_RELOC_PPC_COPY,
3293 + BFD_RELOC_PPC_GLOB_DAT,
3294 + BFD_RELOC_PPC_JMP_SLOT,
3295 + BFD_RELOC_PPC_RELATIVE,
3296 + BFD_RELOC_PPC_LOCAL24PC,
3297 + BFD_RELOC_PPC_EMB_NADDR32,
3298 + BFD_RELOC_PPC_EMB_NADDR16,
3299 + BFD_RELOC_PPC_EMB_NADDR16_LO,
3300 + BFD_RELOC_PPC_EMB_NADDR16_HI,
3301 + BFD_RELOC_PPC_EMB_NADDR16_HA,
3302 + BFD_RELOC_PPC_EMB_SDAI16,
3303 + BFD_RELOC_PPC_EMB_SDA2I16,
3304 + BFD_RELOC_PPC_EMB_SDA2REL,
3305 + BFD_RELOC_PPC_EMB_SDA21,
3306 + BFD_RELOC_PPC_EMB_MRKREF,
3307 + BFD_RELOC_PPC_EMB_RELSEC16,
3308 + BFD_RELOC_PPC_EMB_RELST_LO,
3309 + BFD_RELOC_PPC_EMB_RELST_HI,
3310 + BFD_RELOC_PPC_EMB_RELST_HA,
3311 + BFD_RELOC_PPC_EMB_BIT_FLD,
3312 + BFD_RELOC_PPC_EMB_RELSDA,
3313 + BFD_RELOC_PPC64_HIGHER,
3314 + BFD_RELOC_PPC64_HIGHER_S,
3315 + BFD_RELOC_PPC64_HIGHEST,
3316 + BFD_RELOC_PPC64_HIGHEST_S,
3317 + BFD_RELOC_PPC64_TOC16_LO,
3318 + BFD_RELOC_PPC64_TOC16_HI,
3319 + BFD_RELOC_PPC64_TOC16_HA,
3320 + BFD_RELOC_PPC64_TOC,
3321 + BFD_RELOC_PPC64_PLTGOT16,
3322 + BFD_RELOC_PPC64_PLTGOT16_LO,
3323 + BFD_RELOC_PPC64_PLTGOT16_HI,
3324 + BFD_RELOC_PPC64_PLTGOT16_HA,
3325 + BFD_RELOC_PPC64_ADDR16_DS,
3326 + BFD_RELOC_PPC64_ADDR16_LO_DS,
3327 + BFD_RELOC_PPC64_GOT16_DS,
3328 + BFD_RELOC_PPC64_GOT16_LO_DS,
3329 + BFD_RELOC_PPC64_PLT16_LO_DS,
3330 + BFD_RELOC_PPC64_SECTOFF_DS,
3331 + BFD_RELOC_PPC64_SECTOFF_LO_DS,
3332 + BFD_RELOC_PPC64_TOC16_DS,
3333 + BFD_RELOC_PPC64_TOC16_LO_DS,
3334 + BFD_RELOC_PPC64_PLTGOT16_DS,
3335 + BFD_RELOC_PPC64_PLTGOT16_LO_DS,
3336 +
3337 +/* PowerPC and PowerPC64 thread-local storage relocations. */
3338 + BFD_RELOC_PPC_TLS,
3339 + BFD_RELOC_PPC_DTPMOD,
3340 + BFD_RELOC_PPC_TPREL16,
3341 + BFD_RELOC_PPC_TPREL16_LO,
3342 + BFD_RELOC_PPC_TPREL16_HI,
3343 + BFD_RELOC_PPC_TPREL16_HA,
3344 + BFD_RELOC_PPC_TPREL,
3345 + BFD_RELOC_PPC_DTPREL16,
3346 + BFD_RELOC_PPC_DTPREL16_LO,
3347 + BFD_RELOC_PPC_DTPREL16_HI,
3348 + BFD_RELOC_PPC_DTPREL16_HA,
3349 + BFD_RELOC_PPC_DTPREL,
3350 + BFD_RELOC_PPC_GOT_TLSGD16,
3351 + BFD_RELOC_PPC_GOT_TLSGD16_LO,
3352 + BFD_RELOC_PPC_GOT_TLSGD16_HI,
3353 + BFD_RELOC_PPC_GOT_TLSGD16_HA,
3354 + BFD_RELOC_PPC_GOT_TLSLD16,
3355 + BFD_RELOC_PPC_GOT_TLSLD16_LO,
3356 + BFD_RELOC_PPC_GOT_TLSLD16_HI,
3357 + BFD_RELOC_PPC_GOT_TLSLD16_HA,
3358 + BFD_RELOC_PPC_GOT_TPREL16,
3359 + BFD_RELOC_PPC_GOT_TPREL16_LO,
3360 + BFD_RELOC_PPC_GOT_TPREL16_HI,
3361 + BFD_RELOC_PPC_GOT_TPREL16_HA,
3362 + BFD_RELOC_PPC_GOT_DTPREL16,
3363 + BFD_RELOC_PPC_GOT_DTPREL16_LO,
3364 + BFD_RELOC_PPC_GOT_DTPREL16_HI,
3365 + BFD_RELOC_PPC_GOT_DTPREL16_HA,
3366 + BFD_RELOC_PPC64_TPREL16_DS,
3367 + BFD_RELOC_PPC64_TPREL16_LO_DS,
3368 + BFD_RELOC_PPC64_TPREL16_HIGHER,
3369 + BFD_RELOC_PPC64_TPREL16_HIGHERA,
3370 + BFD_RELOC_PPC64_TPREL16_HIGHEST,
3371 + BFD_RELOC_PPC64_TPREL16_HIGHESTA,
3372 + BFD_RELOC_PPC64_DTPREL16_DS,
3373 + BFD_RELOC_PPC64_DTPREL16_LO_DS,
3374 + BFD_RELOC_PPC64_DTPREL16_HIGHER,
3375 + BFD_RELOC_PPC64_DTPREL16_HIGHERA,
3376 + BFD_RELOC_PPC64_DTPREL16_HIGHEST,
3377 + BFD_RELOC_PPC64_DTPREL16_HIGHESTA,
3378 +
3379 +/* IBM 370/390 relocations */
3380 + BFD_RELOC_I370_D12,
3381 +
3382 +/* The type of reloc used to build a constructor table - at the moment
3383 +probably a 32 bit wide absolute relocation, but the target can choose.
3384 +It generally does map to one of the other relocation types. */
3385 + BFD_RELOC_CTOR,
3386 +
3387 +/* ARM 26 bit pc-relative branch. The lowest two bits must be zero and are
3388 +not stored in the instruction. */
3389 + BFD_RELOC_ARM_PCREL_BRANCH,
3390 +
3391 +/* ARM 26 bit pc-relative branch. The lowest bit must be zero and is
3392 +not stored in the instruction. The 2nd lowest bit comes from a 1 bit
3393 +field in the instruction. */
3394 + BFD_RELOC_ARM_PCREL_BLX,
3395 +
3396 +/* Thumb 22 bit pc-relative branch. The lowest bit must be zero and is
3397 +not stored in the instruction. The 2nd lowest bit comes from a 1 bit
3398 +field in the instruction. */
3399 + BFD_RELOC_THUMB_PCREL_BLX,
3400 +
3401 +/* ARM 26-bit pc-relative branch for an unconditional BL or BLX instruction. */
3402 + BFD_RELOC_ARM_PCREL_CALL,
3403 +
3404 +/* ARM 26-bit pc-relative branch for B or conditional BL instruction. */
3405 + BFD_RELOC_ARM_PCREL_JUMP,
3406 +
3407 +/* Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches.
3408 +The lowest bit must be zero and is not stored in the instruction.
3409 +Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an
3410 +"nn" one smaller in all cases. Note further that BRANCH23
3411 +corresponds to R_ARM_THM_CALL. */
3412 + BFD_RELOC_THUMB_PCREL_BRANCH7,
3413 + BFD_RELOC_THUMB_PCREL_BRANCH9,
3414 + BFD_RELOC_THUMB_PCREL_BRANCH12,
3415 + BFD_RELOC_THUMB_PCREL_BRANCH20,
3416 + BFD_RELOC_THUMB_PCREL_BRANCH23,
3417 + BFD_RELOC_THUMB_PCREL_BRANCH25,
3418 +
3419 +/* 12-bit immediate offset, used in ARM-format ldr and str instructions. */
3420 + BFD_RELOC_ARM_OFFSET_IMM,
3421 +
3422 +/* 5-bit immediate offset, used in Thumb-format ldr and str instructions. */
3423 + BFD_RELOC_ARM_THUMB_OFFSET,
3424 +
3425 +/* Pc-relative or absolute relocation depending on target. Used for
3426 +entries in .init_array sections. */
3427 + BFD_RELOC_ARM_TARGET1,
3428 +
3429 +/* Read-only segment base relative address. */
3430 + BFD_RELOC_ARM_ROSEGREL32,
3431 +
3432 +/* Data segment base relative address. */
3433 + BFD_RELOC_ARM_SBREL32,
3434 +
3435 +/* This reloc is used for references to RTTI data from exception handling
3436 +tables. The actual definition depends on the target. It may be a
3437 +pc-relative or some form of GOT-indirect relocation. */
3438 + BFD_RELOC_ARM_TARGET2,
3439 +
3440 +/* 31-bit PC relative address. */
3441 + BFD_RELOC_ARM_PREL31,
3442 +
3443 +/* Relocations for setting up GOTs and PLTs for shared libraries. */
3444 + BFD_RELOC_ARM_JUMP_SLOT,
3445 + BFD_RELOC_ARM_GLOB_DAT,
3446 + BFD_RELOC_ARM_GOT32,
3447 + BFD_RELOC_ARM_PLT32,
3448 + BFD_RELOC_ARM_RELATIVE,
3449 + BFD_RELOC_ARM_GOTOFF,
3450 + BFD_RELOC_ARM_GOTPC,
3451 +
3452 +/* ARM thread-local storage relocations. */
3453 + BFD_RELOC_ARM_TLS_GD32,
3454 + BFD_RELOC_ARM_TLS_LDO32,
3455 + BFD_RELOC_ARM_TLS_LDM32,
3456 + BFD_RELOC_ARM_TLS_DTPOFF32,
3457 + BFD_RELOC_ARM_TLS_DTPMOD32,
3458 + BFD_RELOC_ARM_TLS_TPOFF32,
3459 + BFD_RELOC_ARM_TLS_IE32,
3460 + BFD_RELOC_ARM_TLS_LE32,
3461 +
3462 +/* These relocs are only used within the ARM assembler. They are not
3463 +(at present) written to any object files. */
3464 + BFD_RELOC_ARM_IMMEDIATE,
3465 + BFD_RELOC_ARM_ADRL_IMMEDIATE,
3466 + BFD_RELOC_ARM_T32_IMMEDIATE,
3467 + BFD_RELOC_ARM_T32_IMM12,
3468 + BFD_RELOC_ARM_T32_ADD_PC12,
3469 + BFD_RELOC_ARM_SHIFT_IMM,
3470 + BFD_RELOC_ARM_SMC,
3471 + BFD_RELOC_ARM_SWI,
3472 + BFD_RELOC_ARM_MULTI,
3473 + BFD_RELOC_ARM_CP_OFF_IMM,
3474 + BFD_RELOC_ARM_CP_OFF_IMM_S2,
3475 + BFD_RELOC_ARM_T32_CP_OFF_IMM,
3476 + BFD_RELOC_ARM_T32_CP_OFF_IMM_S2,
3477 + BFD_RELOC_ARM_ADR_IMM,
3478 + BFD_RELOC_ARM_LDR_IMM,
3479 + BFD_RELOC_ARM_LITERAL,
3480 + BFD_RELOC_ARM_IN_POOL,
3481 + BFD_RELOC_ARM_OFFSET_IMM8,
3482 + BFD_RELOC_ARM_T32_OFFSET_U8,
3483 + BFD_RELOC_ARM_T32_OFFSET_IMM,
3484 + BFD_RELOC_ARM_HWLITERAL,
3485 + BFD_RELOC_ARM_THUMB_ADD,
3486 + BFD_RELOC_ARM_THUMB_IMM,
3487 + BFD_RELOC_ARM_THUMB_SHIFT,
3488 +
3489 +/* Renesas / SuperH SH relocs. Not all of these appear in object files. */
3490 + BFD_RELOC_SH_PCDISP8BY2,
3491 + BFD_RELOC_SH_PCDISP12BY2,
3492 + BFD_RELOC_SH_IMM3,
3493 + BFD_RELOC_SH_IMM3U,
3494 + BFD_RELOC_SH_DISP12,
3495 + BFD_RELOC_SH_DISP12BY2,
3496 + BFD_RELOC_SH_DISP12BY4,
3497 + BFD_RELOC_SH_DISP12BY8,
3498 + BFD_RELOC_SH_DISP20,
3499 + BFD_RELOC_SH_DISP20BY8,
3500 + BFD_RELOC_SH_IMM4,
3501 + BFD_RELOC_SH_IMM4BY2,
3502 + BFD_RELOC_SH_IMM4BY4,
3503 + BFD_RELOC_SH_IMM8,
3504 + BFD_RELOC_SH_IMM8BY2,
3505 + BFD_RELOC_SH_IMM8BY4,
3506 + BFD_RELOC_SH_PCRELIMM8BY2,
3507 + BFD_RELOC_SH_PCRELIMM8BY4,
3508 + BFD_RELOC_SH_SWITCH16,
3509 + BFD_RELOC_SH_SWITCH32,
3510 + BFD_RELOC_SH_USES,
3511 + BFD_RELOC_SH_COUNT,
3512 + BFD_RELOC_SH_ALIGN,
3513 + BFD_RELOC_SH_CODE,
3514 + BFD_RELOC_SH_DATA,
3515 + BFD_RELOC_SH_LABEL,
3516 + BFD_RELOC_SH_LOOP_START,
3517 + BFD_RELOC_SH_LOOP_END,
3518 + BFD_RELOC_SH_COPY,
3519 + BFD_RELOC_SH_GLOB_DAT,
3520 + BFD_RELOC_SH_JMP_SLOT,
3521 + BFD_RELOC_SH_RELATIVE,
3522 + BFD_RELOC_SH_GOTPC,
3523 + BFD_RELOC_SH_GOT_LOW16,
3524 + BFD_RELOC_SH_GOT_MEDLOW16,
3525 + BFD_RELOC_SH_GOT_MEDHI16,
3526 + BFD_RELOC_SH_GOT_HI16,
3527 + BFD_RELOC_SH_GOTPLT_LOW16,
3528 + BFD_RELOC_SH_GOTPLT_MEDLOW16,
3529 + BFD_RELOC_SH_GOTPLT_MEDHI16,
3530 + BFD_RELOC_SH_GOTPLT_HI16,
3531 + BFD_RELOC_SH_PLT_LOW16,
3532 + BFD_RELOC_SH_PLT_MEDLOW16,
3533 + BFD_RELOC_SH_PLT_MEDHI16,
3534 + BFD_RELOC_SH_PLT_HI16,
3535 + BFD_RELOC_SH_GOTOFF_LOW16,
3536 + BFD_RELOC_SH_GOTOFF_MEDLOW16,
3537 + BFD_RELOC_SH_GOTOFF_MEDHI16,
3538 + BFD_RELOC_SH_GOTOFF_HI16,
3539 + BFD_RELOC_SH_GOTPC_LOW16,
3540 + BFD_RELOC_SH_GOTPC_MEDLOW16,
3541 + BFD_RELOC_SH_GOTPC_MEDHI16,
3542 + BFD_RELOC_SH_GOTPC_HI16,
3543 + BFD_RELOC_SH_COPY64,
3544 + BFD_RELOC_SH_GLOB_DAT64,
3545 + BFD_RELOC_SH_JMP_SLOT64,
3546 + BFD_RELOC_SH_RELATIVE64,
3547 + BFD_RELOC_SH_GOT10BY4,
3548 + BFD_RELOC_SH_GOT10BY8,
3549 + BFD_RELOC_SH_GOTPLT10BY4,
3550 + BFD_RELOC_SH_GOTPLT10BY8,
3551 + BFD_RELOC_SH_GOTPLT32,
3552 + BFD_RELOC_SH_SHMEDIA_CODE,
3553 + BFD_RELOC_SH_IMMU5,
3554 + BFD_RELOC_SH_IMMS6,
3555 + BFD_RELOC_SH_IMMS6BY32,
3556 + BFD_RELOC_SH_IMMU6,
3557 + BFD_RELOC_SH_IMMS10,
3558 + BFD_RELOC_SH_IMMS10BY2,
3559 + BFD_RELOC_SH_IMMS10BY4,
3560 + BFD_RELOC_SH_IMMS10BY8,
3561 + BFD_RELOC_SH_IMMS16,
3562 + BFD_RELOC_SH_IMMU16,
3563 + BFD_RELOC_SH_IMM_LOW16,
3564 + BFD_RELOC_SH_IMM_LOW16_PCREL,
3565 + BFD_RELOC_SH_IMM_MEDLOW16,
3566 + BFD_RELOC_SH_IMM_MEDLOW16_PCREL,
3567 + BFD_RELOC_SH_IMM_MEDHI16,
3568 + BFD_RELOC_SH_IMM_MEDHI16_PCREL,
3569 + BFD_RELOC_SH_IMM_HI16,
3570 + BFD_RELOC_SH_IMM_HI16_PCREL,
3571 + BFD_RELOC_SH_PT_16,
3572 + BFD_RELOC_SH_TLS_GD_32,
3573 + BFD_RELOC_SH_TLS_LD_32,
3574 + BFD_RELOC_SH_TLS_LDO_32,
3575 + BFD_RELOC_SH_TLS_IE_32,
3576 + BFD_RELOC_SH_TLS_LE_32,
3577 + BFD_RELOC_SH_TLS_DTPMOD32,
3578 + BFD_RELOC_SH_TLS_DTPOFF32,
3579 + BFD_RELOC_SH_TLS_TPOFF32,
3580 +
3581 +/* ARC Cores relocs.
3582 +ARC 22 bit pc-relative branch. The lowest two bits must be zero and are
3583 +not stored in the instruction. The high 20 bits are installed in bits 26
3584 +through 7 of the instruction. */
3585 + BFD_RELOC_ARC_B22_PCREL,
3586 +
3587 +/* ARC 26 bit absolute branch. The lowest two bits must be zero and are not
3588 +stored in the instruction. The high 24 bits are installed in bits 23
3589 +through 0. */
3590 + BFD_RELOC_ARC_B26,
3591 +
3592 +/* ADI Blackfin 16 bit immediate absolute reloc. */
3593 + BFD_RELOC_BFIN_16_IMM,
3594 +
3595 +/* ADI Blackfin 16 bit immediate absolute reloc higher 16 bits. */
3596 + BFD_RELOC_BFIN_16_HIGH,
3597 +
3598 +/* ADI Blackfin 'a' part of LSETUP. */
3599 + BFD_RELOC_BFIN_4_PCREL,
3600 +
3601 +/* ADI Blackfin. */
3602 + BFD_RELOC_BFIN_5_PCREL,
3603 +
3604 +/* ADI Blackfin 16 bit immediate absolute reloc lower 16 bits. */
3605 + BFD_RELOC_BFIN_16_LOW,
3606 +
3607 +/* ADI Blackfin. */
3608 + BFD_RELOC_BFIN_10_PCREL,
3609 +
3610 +/* ADI Blackfin 'b' part of LSETUP. */
3611 + BFD_RELOC_BFIN_11_PCREL,
3612 +
3613 +/* ADI Blackfin. */
3614 + BFD_RELOC_BFIN_12_PCREL_JUMP,
3615 +
3616 +/* ADI Blackfin Short jump, pcrel. */
3617 + BFD_RELOC_BFIN_12_PCREL_JUMP_S,
3618 +
3619 +/* ADI Blackfin Call.x not implemented. */
3620 + BFD_RELOC_BFIN_24_PCREL_CALL_X,
3621 +
3622 +/* ADI Blackfin Long Jump pcrel. */
3623 + BFD_RELOC_BFIN_24_PCREL_JUMP_L,
3624 +
3625 +/* ADI Blackfin GOT relocation. */
3626 + BFD_RELOC_BFIN_GOT,
3627 +
3628 +/* ADI Blackfin PLTPC relocation. */
3629 + BFD_RELOC_BFIN_PLTPC,
3630 +
3631 +/* ADI Blackfin arithmetic relocation. */
3632 + BFD_ARELOC_BFIN_PUSH,
3633 +
3634 +/* ADI Blackfin arithmetic relocation. */
3635 + BFD_ARELOC_BFIN_CONST,
3636 +
3637 +/* ADI Blackfin arithmetic relocation. */
3638 + BFD_ARELOC_BFIN_ADD,
3639 +
3640 +/* ADI Blackfin arithmetic relocation. */
3641 + BFD_ARELOC_BFIN_SUB,
3642 +
3643 +/* ADI Blackfin arithmetic relocation. */
3644 + BFD_ARELOC_BFIN_MULT,
3645 +
3646 +/* ADI Blackfin arithmetic relocation. */
3647 + BFD_ARELOC_BFIN_DIV,
3648 +
3649 +/* ADI Blackfin arithmetic relocation. */
3650 + BFD_ARELOC_BFIN_MOD,
3651 +
3652 +/* ADI Blackfin arithmetic relocation. */
3653 + BFD_ARELOC_BFIN_LSHIFT,
3654 +
3655 +/* ADI Blackfin arithmetic relocation. */
3656 + BFD_ARELOC_BFIN_RSHIFT,
3657 +
3658 +/* ADI Blackfin arithmetic relocation. */
3659 + BFD_ARELOC_BFIN_AND,
3660 +
3661 +/* ADI Blackfin arithmetic relocation. */
3662 + BFD_ARELOC_BFIN_OR,
3663 +
3664 +/* ADI Blackfin arithmetic relocation. */
3665 + BFD_ARELOC_BFIN_XOR,
3666 +
3667 +/* ADI Blackfin arithmetic relocation. */
3668 + BFD_ARELOC_BFIN_LAND,
3669 +
3670 +/* ADI Blackfin arithmetic relocation. */
3671 + BFD_ARELOC_BFIN_LOR,
3672 +
3673 +/* ADI Blackfin arithmetic relocation. */
3674 + BFD_ARELOC_BFIN_LEN,
3675 +
3676 +/* ADI Blackfin arithmetic relocation. */
3677 + BFD_ARELOC_BFIN_NEG,
3678 +
3679 +/* ADI Blackfin arithmetic relocation. */
3680 + BFD_ARELOC_BFIN_COMP,
3681 +
3682 +/* ADI Blackfin arithmetic relocation. */
3683 + BFD_ARELOC_BFIN_PAGE,
3684 +
3685 +/* ADI Blackfin arithmetic relocation. */
3686 + BFD_ARELOC_BFIN_HWPAGE,
3687 +
3688 +/* ADI Blackfin arithmetic relocation. */
3689 + BFD_ARELOC_BFIN_ADDR,
3690 +
3691 +/* Mitsubishi D10V relocs.
3692 +This is a 10-bit reloc with the right 2 bits
3693 +assumed to be 0. */
3694 + BFD_RELOC_D10V_10_PCREL_R,
3695 +
3696 +/* Mitsubishi D10V relocs.
3697 +This is a 10-bit reloc with the right 2 bits
3698 +assumed to be 0. This is the same as the previous reloc
3699 +except it is in the left container, i.e.,
3700 +shifted left 15 bits. */
3701 + BFD_RELOC_D10V_10_PCREL_L,
3702 +
3703 +/* This is an 18-bit reloc with the right 2 bits
3704 +assumed to be 0. */
3705 + BFD_RELOC_D10V_18,
3706 +
3707 +/* This is an 18-bit reloc with the right 2 bits
3708 +assumed to be 0. */
3709 + BFD_RELOC_D10V_18_PCREL,
3710 +
3711 +/* Mitsubishi D30V relocs.
3712 +This is a 6-bit absolute reloc. */
3713 + BFD_RELOC_D30V_6,
3714 +
3715 +/* This is a 6-bit pc-relative reloc with
3716 +the right 3 bits assumed to be 0. */
3717 + BFD_RELOC_D30V_9_PCREL,
3718 +
3719 +/* This is a 6-bit pc-relative reloc with
3720 +the right 3 bits assumed to be 0. Same
3721 +as the previous reloc but on the right side
3722 +of the container. */
3723 + BFD_RELOC_D30V_9_PCREL_R,
3724 +
3725 +/* This is a 12-bit absolute reloc with the
3726 +right 3 bitsassumed to be 0. */
3727 + BFD_RELOC_D30V_15,
3728 +
3729 +/* This is a 12-bit pc-relative reloc with
3730 +the right 3 bits assumed to be 0. */
3731 + BFD_RELOC_D30V_15_PCREL,
3732 +
3733 +/* This is a 12-bit pc-relative reloc with
3734 +the right 3 bits assumed to be 0. Same
3735 +as the previous reloc but on the right side
3736 +of the container. */
3737 + BFD_RELOC_D30V_15_PCREL_R,
3738 +
3739 +/* This is an 18-bit absolute reloc with
3740 +the right 3 bits assumed to be 0. */
3741 + BFD_RELOC_D30V_21,
3742 +
3743 +/* This is an 18-bit pc-relative reloc with
3744 +the right 3 bits assumed to be 0. */
3745 + BFD_RELOC_D30V_21_PCREL,
3746 +
3747 +/* This is an 18-bit pc-relative reloc with
3748 +the right 3 bits assumed to be 0. Same
3749 +as the previous reloc but on the right side
3750 +of the container. */
3751 + BFD_RELOC_D30V_21_PCREL_R,
3752 +
3753 +/* This is a 32-bit absolute reloc. */
3754 + BFD_RELOC_D30V_32,
3755 +
3756 +/* This is a 32-bit pc-relative reloc. */
3757 + BFD_RELOC_D30V_32_PCREL,
3758 +
3759 +/* DLX relocs */
3760 + BFD_RELOC_DLX_HI16_S,
3761 +
3762 +/* DLX relocs */
3763 + BFD_RELOC_DLX_LO16,
3764 +
3765 +/* DLX relocs */
3766 + BFD_RELOC_DLX_JMP26,
3767 +
3768 +/* Renesas M16C/M32C Relocations. */
3769 + BFD_RELOC_M32C_HI8,
3770 +
3771 +/* Renesas M32R (formerly Mitsubishi M32R) relocs.
3772 +This is a 24 bit absolute address. */
3773 + BFD_RELOC_M32R_24,
3774 +
3775 +/* This is a 10-bit pc-relative reloc with the right 2 bits assumed to be 0. */
3776 + BFD_RELOC_M32R_10_PCREL,
3777 +
3778 +/* This is an 18-bit reloc with the right 2 bits assumed to be 0. */
3779 + BFD_RELOC_M32R_18_PCREL,
3780 +
3781 +/* This is a 26-bit reloc with the right 2 bits assumed to be 0. */
3782 + BFD_RELOC_M32R_26_PCREL,
3783 +
3784 +/* This is a 16-bit reloc containing the high 16 bits of an address
3785 +used when the lower 16 bits are treated as unsigned. */
3786 + BFD_RELOC_M32R_HI16_ULO,
3787 +
3788 +/* This is a 16-bit reloc containing the high 16 bits of an address
3789 +used when the lower 16 bits are treated as signed. */
3790 + BFD_RELOC_M32R_HI16_SLO,
3791 +
3792 +/* This is a 16-bit reloc containing the lower 16 bits of an address. */
3793 + BFD_RELOC_M32R_LO16,
3794 +
3795 +/* This is a 16-bit reloc containing the small data area offset for use in
3796 +add3, load, and store instructions. */
3797 + BFD_RELOC_M32R_SDA16,
3798 +
3799 +/* For PIC. */
3800 + BFD_RELOC_M32R_GOT24,
3801 + BFD_RELOC_M32R_26_PLTREL,
3802 + BFD_RELOC_M32R_COPY,
3803 + BFD_RELOC_M32R_GLOB_DAT,
3804 + BFD_RELOC_M32R_JMP_SLOT,
3805 + BFD_RELOC_M32R_RELATIVE,
3806 + BFD_RELOC_M32R_GOTOFF,
3807 + BFD_RELOC_M32R_GOTOFF_HI_ULO,
3808 + BFD_RELOC_M32R_GOTOFF_HI_SLO,
3809 + BFD_RELOC_M32R_GOTOFF_LO,
3810 + BFD_RELOC_M32R_GOTPC24,
3811 + BFD_RELOC_M32R_GOT16_HI_ULO,
3812 + BFD_RELOC_M32R_GOT16_HI_SLO,
3813 + BFD_RELOC_M32R_GOT16_LO,
3814 + BFD_RELOC_M32R_GOTPC_HI_ULO,
3815 + BFD_RELOC_M32R_GOTPC_HI_SLO,
3816 + BFD_RELOC_M32R_GOTPC_LO,
3817 +
3818 +/* This is a 9-bit reloc */
3819 + BFD_RELOC_V850_9_PCREL,
3820 +
3821 +/* This is a 22-bit reloc */
3822 + BFD_RELOC_V850_22_PCREL,
3823 +
3824 +/* This is a 16 bit offset from the short data area pointer. */
3825 + BFD_RELOC_V850_SDA_16_16_OFFSET,
3826 +
3827 +/* This is a 16 bit offset (of which only 15 bits are used) from the
3828 +short data area pointer. */
3829 + BFD_RELOC_V850_SDA_15_16_OFFSET,
3830 +
3831 +/* This is a 16 bit offset from the zero data area pointer. */
3832 + BFD_RELOC_V850_ZDA_16_16_OFFSET,
3833 +
3834 +/* This is a 16 bit offset (of which only 15 bits are used) from the
3835 +zero data area pointer. */
3836 + BFD_RELOC_V850_ZDA_15_16_OFFSET,
3837 +
3838 +/* This is an 8 bit offset (of which only 6 bits are used) from the
3839 +tiny data area pointer. */
3840 + BFD_RELOC_V850_TDA_6_8_OFFSET,
3841 +
3842 +/* This is an 8bit offset (of which only 7 bits are used) from the tiny
3843 +data area pointer. */
3844 + BFD_RELOC_V850_TDA_7_8_OFFSET,
3845 +
3846 +/* This is a 7 bit offset from the tiny data area pointer. */
3847 + BFD_RELOC_V850_TDA_7_7_OFFSET,
3848 +
3849 +/* This is a 16 bit offset from the tiny data area pointer. */
3850 + BFD_RELOC_V850_TDA_16_16_OFFSET,
3851 +
3852 +/* This is a 5 bit offset (of which only 4 bits are used) from the tiny
3853 +data area pointer. */
3854 + BFD_RELOC_V850_TDA_4_5_OFFSET,
3855 +
3856 +/* This is a 4 bit offset from the tiny data area pointer. */
3857 + BFD_RELOC_V850_TDA_4_4_OFFSET,
3858 +
3859 +/* This is a 16 bit offset from the short data area pointer, with the
3860 +bits placed non-contiguously in the instruction. */
3861 + BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET,
3862 +
3863 +/* This is a 16 bit offset from the zero data area pointer, with the
3864 +bits placed non-contiguously in the instruction. */
3865 + BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET,
3866 +
3867 +/* This is a 6 bit offset from the call table base pointer. */
3868 + BFD_RELOC_V850_CALLT_6_7_OFFSET,
3869 +
3870 +/* This is a 16 bit offset from the call table base pointer. */
3871 + BFD_RELOC_V850_CALLT_16_16_OFFSET,
3872 +
3873 +/* Used for relaxing indirect function calls. */
3874 + BFD_RELOC_V850_LONGCALL,
3875 +
3876 +/* Used for relaxing indirect jumps. */
3877 + BFD_RELOC_V850_LONGJUMP,
3878 +
3879 +/* Used to maintain alignment whilst relaxing. */
3880 + BFD_RELOC_V850_ALIGN,
3881 +
3882 +/* This is a variation of BFD_RELOC_LO16 that can be used in v850e ld.bu
3883 +instructions. */
3884 + BFD_RELOC_V850_LO16_SPLIT_OFFSET,
3885 +
3886 +/* This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the
3887 +instruction. */
3888 + BFD_RELOC_MN10300_32_PCREL,
3889 +
3890 +/* This is a 16bit pcrel reloc for the mn10300, offset by two bytes in the
3891 +instruction. */
3892 + BFD_RELOC_MN10300_16_PCREL,
3893 +
3894 +/* This is a 8bit DP reloc for the tms320c30, where the most
3895 +significant 8 bits of a 24 bit word are placed into the least
3896 +significant 8 bits of the opcode. */
3897 + BFD_RELOC_TIC30_LDP,
3898 +
3899 +/* This is a 7bit reloc for the tms320c54x, where the least
3900 +significant 7 bits of a 16 bit word are placed into the least
3901 +significant 7 bits of the opcode. */
3902 + BFD_RELOC_TIC54X_PARTLS7,
3903 +
3904 +/* This is a 9bit DP reloc for the tms320c54x, where the most
3905 +significant 9 bits of a 16 bit word are placed into the least
3906 +significant 9 bits of the opcode. */
3907 + BFD_RELOC_TIC54X_PARTMS9,
3908 +
3909 +/* This is an extended address 23-bit reloc for the tms320c54x. */
3910 + BFD_RELOC_TIC54X_23,
3911 +
3912 +/* This is a 16-bit reloc for the tms320c54x, where the least
3913 +significant 16 bits of a 23-bit extended address are placed into
3914 +the opcode. */
3915 + BFD_RELOC_TIC54X_16_OF_23,
3916 +
3917 +/* This is a reloc for the tms320c54x, where the most
3918 +significant 7 bits of a 23-bit extended address are placed into
3919 +the opcode. */
3920 + BFD_RELOC_TIC54X_MS7_OF_23,
3921 +
3922 +/* This is a 48 bit reloc for the FR30 that stores 32 bits. */
3923 + BFD_RELOC_FR30_48,
3924 +
3925 +/* This is a 32 bit reloc for the FR30 that stores 20 bits split up into
3926 +two sections. */
3927 + BFD_RELOC_FR30_20,
3928 +
3929 +/* This is a 16 bit reloc for the FR30 that stores a 6 bit word offset in
3930 +4 bits. */
3931 + BFD_RELOC_FR30_6_IN_4,
3932 +
3933 +/* This is a 16 bit reloc for the FR30 that stores an 8 bit byte offset
3934 +into 8 bits. */
3935 + BFD_RELOC_FR30_8_IN_8,
3936 +
3937 +/* This is a 16 bit reloc for the FR30 that stores a 9 bit short offset
3938 +into 8 bits. */
3939 + BFD_RELOC_FR30_9_IN_8,
3940 +
3941 +/* This is a 16 bit reloc for the FR30 that stores a 10 bit word offset
3942 +into 8 bits. */
3943 + BFD_RELOC_FR30_10_IN_8,
3944 +
3945 +/* This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
3946 +short offset into 8 bits. */
3947 + BFD_RELOC_FR30_9_PCREL,
3948 +
3949 +/* This is a 16 bit reloc for the FR30 that stores a 12 bit pc relative
3950 +short offset into 11 bits. */
3951 + BFD_RELOC_FR30_12_PCREL,
3952 +
3953 +/* Motorola Mcore relocations. */
3954 + BFD_RELOC_MCORE_PCREL_IMM8BY4,
3955 + BFD_RELOC_MCORE_PCREL_IMM11BY2,
3956 + BFD_RELOC_MCORE_PCREL_IMM4BY2,
3957 + BFD_RELOC_MCORE_PCREL_32,
3958 + BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2,
3959 + BFD_RELOC_MCORE_RVA,
3960 +
3961 +/* These are relocations for the GETA instruction. */
3962 + BFD_RELOC_MMIX_GETA,
3963 + BFD_RELOC_MMIX_GETA_1,
3964 + BFD_RELOC_MMIX_GETA_2,
3965 + BFD_RELOC_MMIX_GETA_3,
3966 +
3967 +/* These are relocations for a conditional branch instruction. */
3968 + BFD_RELOC_MMIX_CBRANCH,
3969 + BFD_RELOC_MMIX_CBRANCH_J,
3970 + BFD_RELOC_MMIX_CBRANCH_1,
3971 + BFD_RELOC_MMIX_CBRANCH_2,
3972 + BFD_RELOC_MMIX_CBRANCH_3,
3973 +
3974 +/* These are relocations for the PUSHJ instruction. */
3975 + BFD_RELOC_MMIX_PUSHJ,
3976 + BFD_RELOC_MMIX_PUSHJ_1,
3977 + BFD_RELOC_MMIX_PUSHJ_2,
3978 + BFD_RELOC_MMIX_PUSHJ_3,
3979 + BFD_RELOC_MMIX_PUSHJ_STUBBABLE,
3980 +
3981 +/* These are relocations for the JMP instruction. */
3982 + BFD_RELOC_MMIX_JMP,
3983 + BFD_RELOC_MMIX_JMP_1,
3984 + BFD_RELOC_MMIX_JMP_2,
3985 + BFD_RELOC_MMIX_JMP_3,
3986 +
3987 +/* This is a relocation for a relative address as in a GETA instruction or
3988 +a branch. */
3989 + BFD_RELOC_MMIX_ADDR19,
3990 +
3991 +/* This is a relocation for a relative address as in a JMP instruction. */
3992 + BFD_RELOC_MMIX_ADDR27,
3993 +
3994 +/* This is a relocation for an instruction field that may be a general
3995 +register or a value 0..255. */
3996 + BFD_RELOC_MMIX_REG_OR_BYTE,
3997 +
3998 +/* This is a relocation for an instruction field that may be a general
3999 +register. */
4000 + BFD_RELOC_MMIX_REG,
4001 +
4002 +/* This is a relocation for two instruction fields holding a register and
4003 +an offset, the equivalent of the relocation. */
4004 + BFD_RELOC_MMIX_BASE_PLUS_OFFSET,
4005 +
4006 +/* This relocation is an assertion that the expression is not allocated as
4007 +a global register. It does not modify contents. */
4008 + BFD_RELOC_MMIX_LOCAL,
4009 +
4010 +/* This is a 16 bit reloc for the AVR that stores 8 bit pc relative
4011 +short offset into 7 bits. */
4012 + BFD_RELOC_AVR_7_PCREL,
4013 +
4014 +/* This is a 16 bit reloc for the AVR that stores 13 bit pc relative
4015 +short offset into 12 bits. */
4016 + BFD_RELOC_AVR_13_PCREL,
4017 +
4018 +/* This is a 16 bit reloc for the AVR that stores 17 bit value (usually
4019 +program memory address) into 16 bits. */
4020 + BFD_RELOC_AVR_16_PM,
4021 +
4022 +/* This is a 16 bit reloc for the AVR that stores 8 bit value (usually
4023 +data memory address) into 8 bit immediate value of LDI insn. */
4024 + BFD_RELOC_AVR_LO8_LDI,
4025 +
4026 +/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
4027 +of data memory address) into 8 bit immediate value of LDI insn. */
4028 + BFD_RELOC_AVR_HI8_LDI,
4029 +
4030 +/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
4031 +of program memory address) into 8 bit immediate value of LDI insn. */
4032 + BFD_RELOC_AVR_HH8_LDI,
4033 +
4034 +/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
4035 +(usually data memory address) into 8 bit immediate value of SUBI insn. */
4036 + BFD_RELOC_AVR_LO8_LDI_NEG,
4037 +
4038 +/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
4039 +(high 8 bit of data memory address) into 8 bit immediate value of
4040 +SUBI insn. */
4041 + BFD_RELOC_AVR_HI8_LDI_NEG,
4042 +
4043 +/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
4044 +(most high 8 bit of program memory address) into 8 bit immediate value
4045 +of LDI or SUBI insn. */
4046 + BFD_RELOC_AVR_HH8_LDI_NEG,
4047 +
4048 +/* This is a 16 bit reloc for the AVR that stores 8 bit value (usually
4049 +command address) into 8 bit immediate value of LDI insn. */
4050 + BFD_RELOC_AVR_LO8_LDI_PM,
4051 +
4052 +/* This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
4053 +of command address) into 8 bit immediate value of LDI insn. */
4054 + BFD_RELOC_AVR_HI8_LDI_PM,
4055 +
4056 +/* This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
4057 +of command address) into 8 bit immediate value of LDI insn. */
4058 + BFD_RELOC_AVR_HH8_LDI_PM,
4059 +
4060 +/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
4061 +(usually command address) into 8 bit immediate value of SUBI insn. */
4062 + BFD_RELOC_AVR_LO8_LDI_PM_NEG,
4063 +
4064 +/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
4065 +(high 8 bit of 16 bit command address) into 8 bit immediate value
4066 +of SUBI insn. */
4067 + BFD_RELOC_AVR_HI8_LDI_PM_NEG,
4068 +
4069 +/* This is a 16 bit reloc for the AVR that stores negated 8 bit value
4070 +(high 6 bit of 22 bit command address) into 8 bit immediate
4071 +value of SUBI insn. */
4072 + BFD_RELOC_AVR_HH8_LDI_PM_NEG,
4073 +
4074 +/* This is a 32 bit reloc for the AVR that stores 23 bit value
4075 +into 22 bits. */
4076 + BFD_RELOC_AVR_CALL,
4077 +
4078 +/* This is a 16 bit reloc for the AVR that stores all needed bits
4079 +for absolute addressing with ldi with overflow check to linktime */
4080 + BFD_RELOC_AVR_LDI,
4081 +
4082 +/* This is a 6 bit reloc for the AVR that stores offset for ldd/std
4083 +instructions */
4084 + BFD_RELOC_AVR_6,
4085 +
4086 +/* This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
4087 +instructions */
4088 + BFD_RELOC_AVR_6_ADIW,
4089 +
4090 +/* Direct 12 bit. */
4091 + BFD_RELOC_390_12,
4092 +
4093 +/* 12 bit GOT offset. */
4094 + BFD_RELOC_390_GOT12,
4095 +
4096 +/* 32 bit PC relative PLT address. */
4097 + BFD_RELOC_390_PLT32,
4098 +
4099 +/* Copy symbol at runtime. */
4100 + BFD_RELOC_390_COPY,
4101 +
4102 +/* Create GOT entry. */
4103 + BFD_RELOC_390_GLOB_DAT,
4104 +
4105 +/* Create PLT entry. */
4106 + BFD_RELOC_390_JMP_SLOT,
4107 +
4108 +/* Adjust by program base. */
4109 + BFD_RELOC_390_RELATIVE,
4110 +
4111 +/* 32 bit PC relative offset to GOT. */
4112 + BFD_RELOC_390_GOTPC,
4113 +
4114 +/* 16 bit GOT offset. */
4115 + BFD_RELOC_390_GOT16,
4116 +
4117 +/* PC relative 16 bit shifted by 1. */
4118 + BFD_RELOC_390_PC16DBL,
4119 +
4120 +/* 16 bit PC rel. PLT shifted by 1. */
4121 + BFD_RELOC_390_PLT16DBL,
4122 +
4123 +/* PC relative 32 bit shifted by 1. */
4124 + BFD_RELOC_390_PC32DBL,
4125 +
4126 +/* 32 bit PC rel. PLT shifted by 1. */
4127 + BFD_RELOC_390_PLT32DBL,
4128 +
4129 +/* 32 bit PC rel. GOT shifted by 1. */
4130 + BFD_RELOC_390_GOTPCDBL,
4131 +
4132 +/* 64 bit GOT offset. */
4133 + BFD_RELOC_390_GOT64,
4134 +
4135 +/* 64 bit PC relative PLT address. */
4136 + BFD_RELOC_390_PLT64,
4137 +
4138 +/* 32 bit rel. offset to GOT entry. */
4139 + BFD_RELOC_390_GOTENT,
4140 +
4141 +/* 64 bit offset to GOT. */
4142 + BFD_RELOC_390_GOTOFF64,
4143 +
4144 +/* 12-bit offset to symbol-entry within GOT, with PLT handling. */
4145 + BFD_RELOC_390_GOTPLT12,
4146 +
4147 +/* 16-bit offset to symbol-entry within GOT, with PLT handling. */
4148 + BFD_RELOC_390_GOTPLT16,
4149 +
4150 +/* 32-bit offset to symbol-entry within GOT, with PLT handling. */
4151 + BFD_RELOC_390_GOTPLT32,
4152 +
4153 +/* 64-bit offset to symbol-entry within GOT, with PLT handling. */
4154 + BFD_RELOC_390_GOTPLT64,
4155 +
4156 +/* 32-bit rel. offset to symbol-entry within GOT, with PLT handling. */
4157 + BFD_RELOC_390_GOTPLTENT,
4158 +
4159 +/* 16-bit rel. offset from the GOT to a PLT entry. */
4160 + BFD_RELOC_390_PLTOFF16,
4161 +
4162 +/* 32-bit rel. offset from the GOT to a PLT entry. */
4163 + BFD_RELOC_390_PLTOFF32,
4164 +
4165 +/* 64-bit rel. offset from the GOT to a PLT entry. */
4166 + BFD_RELOC_390_PLTOFF64,
4167 +
4168 +/* s390 tls relocations. */
4169 + BFD_RELOC_390_TLS_LOAD,
4170 + BFD_RELOC_390_TLS_GDCALL,
4171 + BFD_RELOC_390_TLS_LDCALL,
4172 + BFD_RELOC_390_TLS_GD32,
4173 + BFD_RELOC_390_TLS_GD64,
4174 + BFD_RELOC_390_TLS_GOTIE12,
4175 + BFD_RELOC_390_TLS_GOTIE32,
4176 + BFD_RELOC_390_TLS_GOTIE64,
4177 + BFD_RELOC_390_TLS_LDM32,
4178 + BFD_RELOC_390_TLS_LDM64,
4179 + BFD_RELOC_390_TLS_IE32,
4180 + BFD_RELOC_390_TLS_IE64,
4181 + BFD_RELOC_390_TLS_IEENT,
4182 + BFD_RELOC_390_TLS_LE32,
4183 + BFD_RELOC_390_TLS_LE64,
4184 + BFD_RELOC_390_TLS_LDO32,
4185 + BFD_RELOC_390_TLS_LDO64,
4186 + BFD_RELOC_390_TLS_DTPMOD,
4187 + BFD_RELOC_390_TLS_DTPOFF,
4188 + BFD_RELOC_390_TLS_TPOFF,
4189 +
4190 +/* Long displacement extension. */
4191 + BFD_RELOC_390_20,
4192 + BFD_RELOC_390_GOT20,
4193 + BFD_RELOC_390_GOTPLT20,
4194 + BFD_RELOC_390_TLS_GOTIE20,
4195 +
4196 +/* Scenix IP2K - 9-bit register number / data address */
4197 + BFD_RELOC_IP2K_FR9,
4198 +
4199 +/* Scenix IP2K - 4-bit register/data bank number */
4200 + BFD_RELOC_IP2K_BANK,
4201 +
4202 +/* Scenix IP2K - low 13 bits of instruction word address */
4203 + BFD_RELOC_IP2K_ADDR16CJP,
4204 +
4205 +/* Scenix IP2K - high 3 bits of instruction word address */
4206 + BFD_RELOC_IP2K_PAGE3,
4207 +
4208 +/* Scenix IP2K - ext/low/high 8 bits of data address */
4209 + BFD_RELOC_IP2K_LO8DATA,
4210 + BFD_RELOC_IP2K_HI8DATA,
4211 + BFD_RELOC_IP2K_EX8DATA,
4212 +
4213 +/* Scenix IP2K - low/high 8 bits of instruction word address */
4214 + BFD_RELOC_IP2K_LO8INSN,
4215 + BFD_RELOC_IP2K_HI8INSN,
4216 +
4217 +/* Scenix IP2K - even/odd PC modifier to modify snb pcl.0 */
4218 + BFD_RELOC_IP2K_PC_SKIP,
4219 +
4220 +/* Scenix IP2K - 16 bit word address in text section. */
4221 + BFD_RELOC_IP2K_TEXT,
4222 +
4223 +/* Scenix IP2K - 7-bit sp or dp offset */
4224 + BFD_RELOC_IP2K_FR_OFFSET,
4225 +
4226 +/* Scenix VPE4K coprocessor - data/insn-space addressing */
4227 + BFD_RELOC_VPE4KMATH_DATA,
4228 + BFD_RELOC_VPE4KMATH_INSN,
4229 +
4230 +/* These two relocations are used by the linker to determine which of
4231 +the entries in a C++ virtual function table are actually used. When
4232 +the --gc-sections option is given, the linker will zero out the entries
4233 +that are not used, so that the code for those functions need not be
4234 +included in the output.
4235 +
4236 +VTABLE_INHERIT is a zero-space relocation used to describe to the
4237 +linker the inheritance tree of a C++ virtual function table. The
4238 +relocation's symbol should be the parent class' vtable, and the
4239 +relocation should be located at the child vtable.
4240 +
4241 +VTABLE_ENTRY is a zero-space relocation that describes the use of a
4242 +virtual function table entry. The reloc's symbol should refer to the
4243 +table of the class mentioned in the code. Off of that base, an offset
4244 +describes the entry that is being used. For Rela hosts, this offset
4245 +is stored in the reloc's addend. For Rel hosts, we are forced to put
4246 +this offset in the reloc's section offset. */
4247 + BFD_RELOC_VTABLE_INHERIT,
4248 + BFD_RELOC_VTABLE_ENTRY,
4249 +
4250 +/* Intel IA64 Relocations. */
4251 + BFD_RELOC_IA64_IMM14,
4252 + BFD_RELOC_IA64_IMM22,
4253 + BFD_RELOC_IA64_IMM64,
4254 + BFD_RELOC_IA64_DIR32MSB,
4255 + BFD_RELOC_IA64_DIR32LSB,
4256 + BFD_RELOC_IA64_DIR64MSB,
4257 + BFD_RELOC_IA64_DIR64LSB,
4258 + BFD_RELOC_IA64_GPREL22,
4259 + BFD_RELOC_IA64_GPREL64I,
4260 + BFD_RELOC_IA64_GPREL32MSB,
4261 + BFD_RELOC_IA64_GPREL32LSB,
4262 + BFD_RELOC_IA64_GPREL64MSB,
4263 + BFD_RELOC_IA64_GPREL64LSB,
4264 + BFD_RELOC_IA64_LTOFF22,
4265 + BFD_RELOC_IA64_LTOFF64I,
4266 + BFD_RELOC_IA64_PLTOFF22,
4267 + BFD_RELOC_IA64_PLTOFF64I,
4268 + BFD_RELOC_IA64_PLTOFF64MSB,
4269 + BFD_RELOC_IA64_PLTOFF64LSB,
4270 + BFD_RELOC_IA64_FPTR64I,
4271 + BFD_RELOC_IA64_FPTR32MSB,
4272 + BFD_RELOC_IA64_FPTR32LSB,
4273 + BFD_RELOC_IA64_FPTR64MSB,
4274 + BFD_RELOC_IA64_FPTR64LSB,
4275 + BFD_RELOC_IA64_PCREL21B,
4276 + BFD_RELOC_IA64_PCREL21BI,
4277 + BFD_RELOC_IA64_PCREL21M,
4278 + BFD_RELOC_IA64_PCREL21F,
4279 + BFD_RELOC_IA64_PCREL22,
4280 + BFD_RELOC_IA64_PCREL60B,
4281 + BFD_RELOC_IA64_PCREL64I,
4282 + BFD_RELOC_IA64_PCREL32MSB,
4283 + BFD_RELOC_IA64_PCREL32LSB,
4284 + BFD_RELOC_IA64_PCREL64MSB,
4285 + BFD_RELOC_IA64_PCREL64LSB,
4286 + BFD_RELOC_IA64_LTOFF_FPTR22,
4287 + BFD_RELOC_IA64_LTOFF_FPTR64I,
4288 + BFD_RELOC_IA64_LTOFF_FPTR32MSB,
4289 + BFD_RELOC_IA64_LTOFF_FPTR32LSB,
4290 + BFD_RELOC_IA64_LTOFF_FPTR64MSB,
4291 + BFD_RELOC_IA64_LTOFF_FPTR64LSB,
4292 + BFD_RELOC_IA64_SEGREL32MSB,
4293 + BFD_RELOC_IA64_SEGREL32LSB,
4294 + BFD_RELOC_IA64_SEGREL64MSB,
4295 + BFD_RELOC_IA64_SEGREL64LSB,
4296 + BFD_RELOC_IA64_SECREL32MSB,
4297 + BFD_RELOC_IA64_SECREL32LSB,
4298 + BFD_RELOC_IA64_SECREL64MSB,
4299 + BFD_RELOC_IA64_SECREL64LSB,
4300 + BFD_RELOC_IA64_REL32MSB,
4301 + BFD_RELOC_IA64_REL32LSB,
4302 + BFD_RELOC_IA64_REL64MSB,
4303 + BFD_RELOC_IA64_REL64LSB,
4304 + BFD_RELOC_IA64_LTV32MSB,
4305 + BFD_RELOC_IA64_LTV32LSB,
4306 + BFD_RELOC_IA64_LTV64MSB,
4307 + BFD_RELOC_IA64_LTV64LSB,
4308 + BFD_RELOC_IA64_IPLTMSB,
4309 + BFD_RELOC_IA64_IPLTLSB,
4310 + BFD_RELOC_IA64_COPY,
4311 + BFD_RELOC_IA64_LTOFF22X,
4312 + BFD_RELOC_IA64_LDXMOV,
4313 + BFD_RELOC_IA64_TPREL14,
4314 + BFD_RELOC_IA64_TPREL22,
4315 + BFD_RELOC_IA64_TPREL64I,
4316 + BFD_RELOC_IA64_TPREL64MSB,
4317 + BFD_RELOC_IA64_TPREL64LSB,
4318 + BFD_RELOC_IA64_LTOFF_TPREL22,
4319 + BFD_RELOC_IA64_DTPMOD64MSB,
4320 + BFD_RELOC_IA64_DTPMOD64LSB,
4321 + BFD_RELOC_IA64_LTOFF_DTPMOD22,
4322 + BFD_RELOC_IA64_DTPREL14,
4323 + BFD_RELOC_IA64_DTPREL22,
4324 + BFD_RELOC_IA64_DTPREL64I,
4325 + BFD_RELOC_IA64_DTPREL32MSB,
4326 + BFD_RELOC_IA64_DTPREL32LSB,
4327 + BFD_RELOC_IA64_DTPREL64MSB,
4328 + BFD_RELOC_IA64_DTPREL64LSB,
4329 + BFD_RELOC_IA64_LTOFF_DTPREL22,
4330 +
4331 +/* Motorola 68HC11 reloc.
4332 +This is the 8 bit high part of an absolute address. */
4333 + BFD_RELOC_M68HC11_HI8,
4334 +
4335 +/* Motorola 68HC11 reloc.
4336 +This is the 8 bit low part of an absolute address. */
4337 + BFD_RELOC_M68HC11_LO8,
4338 +
4339 +/* Motorola 68HC11 reloc.
4340 +This is the 3 bit of a value. */
4341 + BFD_RELOC_M68HC11_3B,
4342 +
4343 +/* Motorola 68HC11 reloc.
4344 +This reloc marks the beginning of a jump/call instruction.
4345 +It is used for linker relaxation to correctly identify beginning
4346 +of instruction and change some branches to use PC-relative
4347 +addressing mode. */
4348 + BFD_RELOC_M68HC11_RL_JUMP,
4349 +
4350 +/* Motorola 68HC11 reloc.
4351 +This reloc marks a group of several instructions that gcc generates
4352 +and for which the linker relaxation pass can modify and/or remove
4353 +some of them. */
4354 + BFD_RELOC_M68HC11_RL_GROUP,
4355 +
4356 +/* Motorola 68HC11 reloc.
4357 +This is the 16-bit lower part of an address. It is used for 'call'
4358 +instruction to specify the symbol address without any special
4359 +transformation (due to memory bank window). */
4360 + BFD_RELOC_M68HC11_LO16,
4361 +
4362 +/* Motorola 68HC11 reloc.
4363 +This is a 8-bit reloc that specifies the page number of an address.
4364 +It is used by 'call' instruction to specify the page number of
4365 +the symbol. */
4366 + BFD_RELOC_M68HC11_PAGE,
4367 +
4368 +/* Motorola 68HC11 reloc.
4369 +This is a 24-bit reloc that represents the address with a 16-bit
4370 +value and a 8-bit page number. The symbol address is transformed
4371 +to follow the 16K memory bank of 68HC12 (seen as mapped in the window). */
4372 + BFD_RELOC_M68HC11_24,
4373 +
4374 +/* Motorola 68HC12 reloc.
4375 +This is the 5 bits of a value. */
4376 + BFD_RELOC_M68HC12_5B,
4377 +
4378 +/* NS CR16C Relocations. */
4379 + BFD_RELOC_16C_NUM08,
4380 + BFD_RELOC_16C_NUM08_C,
4381 + BFD_RELOC_16C_NUM16,
4382 + BFD_RELOC_16C_NUM16_C,
4383 + BFD_RELOC_16C_NUM32,
4384 + BFD_RELOC_16C_NUM32_C,
4385 + BFD_RELOC_16C_DISP04,
4386 + BFD_RELOC_16C_DISP04_C,
4387 + BFD_RELOC_16C_DISP08,
4388 + BFD_RELOC_16C_DISP08_C,
4389 + BFD_RELOC_16C_DISP16,
4390 + BFD_RELOC_16C_DISP16_C,
4391 + BFD_RELOC_16C_DISP24,
4392 + BFD_RELOC_16C_DISP24_C,
4393 + BFD_RELOC_16C_DISP24a,
4394 + BFD_RELOC_16C_DISP24a_C,
4395 + BFD_RELOC_16C_REG04,
4396 + BFD_RELOC_16C_REG04_C,
4397 + BFD_RELOC_16C_REG04a,
4398 + BFD_RELOC_16C_REG04a_C,
4399 + BFD_RELOC_16C_REG14,
4400 + BFD_RELOC_16C_REG14_C,
4401 + BFD_RELOC_16C_REG16,
4402 + BFD_RELOC_16C_REG16_C,
4403 + BFD_RELOC_16C_REG20,
4404 + BFD_RELOC_16C_REG20_C,
4405 + BFD_RELOC_16C_ABS20,
4406 + BFD_RELOC_16C_ABS20_C,
4407 + BFD_RELOC_16C_ABS24,
4408 + BFD_RELOC_16C_ABS24_C,
4409 + BFD_RELOC_16C_IMM04,
4410 + BFD_RELOC_16C_IMM04_C,
4411 + BFD_RELOC_16C_IMM16,
4412 + BFD_RELOC_16C_IMM16_C,
4413 + BFD_RELOC_16C_IMM20,
4414 + BFD_RELOC_16C_IMM20_C,
4415 + BFD_RELOC_16C_IMM24,
4416 + BFD_RELOC_16C_IMM24_C,
4417 + BFD_RELOC_16C_IMM32,
4418 + BFD_RELOC_16C_IMM32_C,
4419 +
4420 +/* NS CRX Relocations. */
4421 + BFD_RELOC_CRX_REL4,
4422 + BFD_RELOC_CRX_REL8,
4423 + BFD_RELOC_CRX_REL8_CMP,
4424 + BFD_RELOC_CRX_REL16,
4425 + BFD_RELOC_CRX_REL24,
4426 + BFD_RELOC_CRX_REL32,
4427 + BFD_RELOC_CRX_REGREL12,
4428 + BFD_RELOC_CRX_REGREL22,
4429 + BFD_RELOC_CRX_REGREL28,
4430 + BFD_RELOC_CRX_REGREL32,
4431 + BFD_RELOC_CRX_ABS16,
4432 + BFD_RELOC_CRX_ABS32,
4433 + BFD_RELOC_CRX_NUM8,
4434 + BFD_RELOC_CRX_NUM16,
4435 + BFD_RELOC_CRX_NUM32,
4436 + BFD_RELOC_CRX_IMM16,
4437 + BFD_RELOC_CRX_IMM32,
4438 + BFD_RELOC_CRX_SWITCH8,
4439 + BFD_RELOC_CRX_SWITCH16,
4440 + BFD_RELOC_CRX_SWITCH32,
4441 +
4442 +/* These relocs are only used within the CRIS assembler. They are not
4443 +(at present) written to any object files. */
4444 + BFD_RELOC_CRIS_BDISP8,
4445 + BFD_RELOC_CRIS_UNSIGNED_5,
4446 + BFD_RELOC_CRIS_SIGNED_6,
4447 + BFD_RELOC_CRIS_UNSIGNED_6,
4448 + BFD_RELOC_CRIS_SIGNED_8,
4449 + BFD_RELOC_CRIS_UNSIGNED_8,
4450 + BFD_RELOC_CRIS_SIGNED_16,
4451 + BFD_RELOC_CRIS_UNSIGNED_16,
4452 + BFD_RELOC_CRIS_LAPCQ_OFFSET,
4453 + BFD_RELOC_CRIS_UNSIGNED_4,
4454 +
4455 +/* Relocs used in ELF shared libraries for CRIS. */
4456 + BFD_RELOC_CRIS_COPY,
4457 + BFD_RELOC_CRIS_GLOB_DAT,
4458 + BFD_RELOC_CRIS_JUMP_SLOT,
4459 + BFD_RELOC_CRIS_RELATIVE,
4460 +
4461 +/* 32-bit offset to symbol-entry within GOT. */
4462 + BFD_RELOC_CRIS_32_GOT,
4463 +
4464 +/* 16-bit offset to symbol-entry within GOT. */
4465 + BFD_RELOC_CRIS_16_GOT,
4466 +
4467 +/* 32-bit offset to symbol-entry within GOT, with PLT handling. */
4468 + BFD_RELOC_CRIS_32_GOTPLT,
4469 +
4470 +/* 16-bit offset to symbol-entry within GOT, with PLT handling. */
4471 + BFD_RELOC_CRIS_16_GOTPLT,
4472 +
4473 +/* 32-bit offset to symbol, relative to GOT. */
4474 + BFD_RELOC_CRIS_32_GOTREL,
4475 +
4476 +/* 32-bit offset to symbol with PLT entry, relative to GOT. */
4477 + BFD_RELOC_CRIS_32_PLT_GOTREL,
4478 +
4479 +/* 32-bit offset to symbol with PLT entry, relative to this relocation. */
4480 + BFD_RELOC_CRIS_32_PLT_PCREL,
4481 +
4482 +/* Intel i860 Relocations. */
4483 + BFD_RELOC_860_COPY,
4484 + BFD_RELOC_860_GLOB_DAT,
4485 + BFD_RELOC_860_JUMP_SLOT,
4486 + BFD_RELOC_860_RELATIVE,
4487 + BFD_RELOC_860_PC26,
4488 + BFD_RELOC_860_PLT26,
4489 + BFD_RELOC_860_PC16,
4490 + BFD_RELOC_860_LOW0,
4491 + BFD_RELOC_860_SPLIT0,
4492 + BFD_RELOC_860_LOW1,
4493 + BFD_RELOC_860_SPLIT1,
4494 + BFD_RELOC_860_LOW2,
4495 + BFD_RELOC_860_SPLIT2,
4496 + BFD_RELOC_860_LOW3,
4497 + BFD_RELOC_860_LOGOT0,
4498 + BFD_RELOC_860_SPGOT0,
4499 + BFD_RELOC_860_LOGOT1,
4500 + BFD_RELOC_860_SPGOT1,
4501 + BFD_RELOC_860_LOGOTOFF0,
4502 + BFD_RELOC_860_SPGOTOFF0,
4503 + BFD_RELOC_860_LOGOTOFF1,
4504 + BFD_RELOC_860_SPGOTOFF1,
4505 + BFD_RELOC_860_LOGOTOFF2,
4506 + BFD_RELOC_860_LOGOTOFF3,
4507 + BFD_RELOC_860_LOPC,
4508 + BFD_RELOC_860_HIGHADJ,
4509 + BFD_RELOC_860_HAGOT,
4510 + BFD_RELOC_860_HAGOTOFF,
4511 + BFD_RELOC_860_HAPC,
4512 + BFD_RELOC_860_HIGH,
4513 + BFD_RELOC_860_HIGOT,
4514 + BFD_RELOC_860_HIGOTOFF,
4515 +
4516 +/* OpenRISC Relocations. */
4517 + BFD_RELOC_OPENRISC_ABS_26,
4518 + BFD_RELOC_OPENRISC_REL_26,
4519 +
4520 +/* H8 elf Relocations. */
4521 + BFD_RELOC_H8_DIR16A8,
4522 + BFD_RELOC_H8_DIR16R8,
4523 + BFD_RELOC_H8_DIR24A8,
4524 + BFD_RELOC_H8_DIR24R8,
4525 + BFD_RELOC_H8_DIR32A16,
4526 +
4527 +/* Sony Xstormy16 Relocations. */
4528 + BFD_RELOC_XSTORMY16_REL_12,
4529 + BFD_RELOC_XSTORMY16_12,
4530 + BFD_RELOC_XSTORMY16_24,
4531 + BFD_RELOC_XSTORMY16_FPTR16,
4532 +
4533 +/* Relocations used by VAX ELF. */
4534 + BFD_RELOC_VAX_GLOB_DAT,
4535 + BFD_RELOC_VAX_JMP_SLOT,
4536 + BFD_RELOC_VAX_RELATIVE,
4537 +
4538 +/* Morpho MT - 16 bit immediate relocation. */
4539 + BFD_RELOC_MT_PC16,
4540 +
4541 +/* Morpho MT - Hi 16 bits of an address. */
4542 + BFD_RELOC_MT_HI16,
4543 +
4544 +/* Morpho MT - Low 16 bits of an address. */
4545 + BFD_RELOC_MT_LO16,
4546 +
4547 +/* Morpho MT - Used to tell the linker which vtable entries are used. */
4548 + BFD_RELOC_MT_GNU_VTINHERIT,
4549 +
4550 +/* Morpho MT - Used to tell the linker which vtable entries are used. */
4551 + BFD_RELOC_MT_GNU_VTENTRY,
4552 +
4553 +/* Morpho MT - 8 bit immediate relocation. */
4554 + BFD_RELOC_MT_PCINSN8,
4555 +
4556 +/* msp430 specific relocation codes */
4557 + BFD_RELOC_MSP430_10_PCREL,
4558 + BFD_RELOC_MSP430_16_PCREL,
4559 + BFD_RELOC_MSP430_16,
4560 + BFD_RELOC_MSP430_16_PCREL_BYTE,
4561 + BFD_RELOC_MSP430_16_BYTE,
4562 + BFD_RELOC_MSP430_2X_PCREL,
4563 + BFD_RELOC_MSP430_RL_PCREL,
4564 +
4565 +/* IQ2000 Relocations. */
4566 + BFD_RELOC_IQ2000_OFFSET_16,
4567 + BFD_RELOC_IQ2000_OFFSET_21,
4568 + BFD_RELOC_IQ2000_UHI16,
4569 +
4570 +/* Special Xtensa relocation used only by PLT entries in ELF shared
4571 +objects to indicate that the runtime linker should set the value
4572 +to one of its own internal functions or data structures. */
4573 + BFD_RELOC_XTENSA_RTLD,
4574 +
4575 +/* Xtensa relocations for ELF shared objects. */
4576 + BFD_RELOC_XTENSA_GLOB_DAT,
4577 + BFD_RELOC_XTENSA_JMP_SLOT,
4578 + BFD_RELOC_XTENSA_RELATIVE,
4579 +
4580 +/* Xtensa relocation used in ELF object files for symbols that may require
4581 +PLT entries. Otherwise, this is just a generic 32-bit relocation. */
4582 + BFD_RELOC_XTENSA_PLT,
4583 +
4584 +/* Xtensa relocations to mark the difference of two local symbols.
4585 +These are only needed to support linker relaxation and can be ignored
4586 +when not relaxing. The field is set to the value of the difference
4587 +assuming no relaxation. The relocation encodes the position of the
4588 +first symbol so the linker can determine whether to adjust the field
4589 +value. */
4590 + BFD_RELOC_XTENSA_DIFF8,
4591 + BFD_RELOC_XTENSA_DIFF16,
4592 + BFD_RELOC_XTENSA_DIFF32,
4593 +
4594 +/* Generic Xtensa relocations for instruction operands. Only the slot
4595 +number is encoded in the relocation. The relocation applies to the
4596 +last PC-relative immediate operand, or if there are no PC-relative
4597 +immediates, to the last immediate operand. */
4598 + BFD_RELOC_XTENSA_SLOT0_OP,
4599 + BFD_RELOC_XTENSA_SLOT1_OP,
4600 + BFD_RELOC_XTENSA_SLOT2_OP,
4601 + BFD_RELOC_XTENSA_SLOT3_OP,
4602 + BFD_RELOC_XTENSA_SLOT4_OP,
4603 + BFD_RELOC_XTENSA_SLOT5_OP,
4604 + BFD_RELOC_XTENSA_SLOT6_OP,
4605 + BFD_RELOC_XTENSA_SLOT7_OP,
4606 + BFD_RELOC_XTENSA_SLOT8_OP,
4607 + BFD_RELOC_XTENSA_SLOT9_OP,
4608 + BFD_RELOC_XTENSA_SLOT10_OP,
4609 + BFD_RELOC_XTENSA_SLOT11_OP,
4610 + BFD_RELOC_XTENSA_SLOT12_OP,
4611 + BFD_RELOC_XTENSA_SLOT13_OP,
4612 + BFD_RELOC_XTENSA_SLOT14_OP,
4613 +
4614 +/* Alternate Xtensa relocations. Only the slot is encoded in the
4615 +relocation. The meaning of these relocations is opcode-specific. */
4616 + BFD_RELOC_XTENSA_SLOT0_ALT,
4617 + BFD_RELOC_XTENSA_SLOT1_ALT,
4618 + BFD_RELOC_XTENSA_SLOT2_ALT,
4619 + BFD_RELOC_XTENSA_SLOT3_ALT,
4620 + BFD_RELOC_XTENSA_SLOT4_ALT,
4621 + BFD_RELOC_XTENSA_SLOT5_ALT,
4622 + BFD_RELOC_XTENSA_SLOT6_ALT,
4623 + BFD_RELOC_XTENSA_SLOT7_ALT,
4624 + BFD_RELOC_XTENSA_SLOT8_ALT,
4625 + BFD_RELOC_XTENSA_SLOT9_ALT,
4626 + BFD_RELOC_XTENSA_SLOT10_ALT,
4627 + BFD_RELOC_XTENSA_SLOT11_ALT,
4628 + BFD_RELOC_XTENSA_SLOT12_ALT,
4629 + BFD_RELOC_XTENSA_SLOT13_ALT,
4630 + BFD_RELOC_XTENSA_SLOT14_ALT,
4631 +
4632 +/* Xtensa relocations for backward compatibility. These have all been
4633 +replaced by BFD_RELOC_XTENSA_SLOT0_OP. */
4634 + BFD_RELOC_XTENSA_OP0,
4635 + BFD_RELOC_XTENSA_OP1,
4636 + BFD_RELOC_XTENSA_OP2,
4637 +
4638 +/* Xtensa relocation to mark that the assembler expanded the
4639 +instructions from an original target. The expansion size is
4640 +encoded in the reloc size. */
4641 + BFD_RELOC_XTENSA_ASM_EXPAND,
4642 +
4643 +/* Xtensa relocation to mark that the linker should simplify
4644 +assembler-expanded instructions. This is commonly used
4645 +internally by the linker after analysis of a
4646 +BFD_RELOC_XTENSA_ASM_EXPAND. */
4647 + BFD_RELOC_XTENSA_ASM_SIMPLIFY,
4648 +
4649 +/* 8 bit signed offset in (ix+d) or (iy+d). */
4650 + BFD_RELOC_Z80_DISP8,
4651 +
4652 +/* DJNZ offset. */
4653 + BFD_RELOC_Z8K_DISP7,
4654 +
4655 +/* CALR offset. */
4656 + BFD_RELOC_Z8K_CALLR,
4657 +
4658 +/* 4 bit value. */
4659 + BFD_RELOC_Z8K_IMM4L,
4660 + BFD_RELOC_UNUSED };
4661 +typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
4662 +reloc_howto_type *bfd_reloc_type_lookup
4663 + (bfd *abfd, bfd_reloc_code_real_type code);
4664 +
4665 +const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
4666 +
4667 +/* Extracted from syms.c. */
4668 +
4669 +typedef struct bfd_symbol
4670 +{
4671 + /* A pointer to the BFD which owns the symbol. This information
4672 + is necessary so that a back end can work out what additional
4673 + information (invisible to the application writer) is carried
4674 + with the symbol.
4675 +
4676 + This field is *almost* redundant, since you can use section->owner
4677 + instead, except that some symbols point to the global sections
4678 + bfd_{abs,com,und}_section. This could be fixed by making
4679 + these globals be per-bfd (or per-target-flavor). FIXME. */
4680 + struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field. */
4681 +
4682 + /* The text of the symbol. The name is left alone, and not copied; the
4683 + application may not alter it. */
4684 + const char *name;
4685 +
4686 + /* The value of the symbol. This really should be a union of a
4687 + numeric value with a pointer, since some flags indicate that
4688 + a pointer to another symbol is stored here. */
4689 + symvalue value;
4690 +
4691 + /* Attributes of a symbol. */
4692 +#define BSF_NO_FLAGS 0x00
4693 +
4694 + /* The symbol has local scope; <<static>> in <<C>>. The value
4695 + is the offset into the section of the data. */
4696 +#define BSF_LOCAL 0x01
4697 +
4698 + /* The symbol has global scope; initialized data in <<C>>. The
4699 + value is the offset into the section of the data. */
4700 +#define BSF_GLOBAL 0x02
4701 +
4702 + /* The symbol has global scope and is exported. The value is
4703 + the offset into the section of the data. */
4704 +#define BSF_EXPORT BSF_GLOBAL /* No real difference. */
4705 +
4706 + /* A normal C symbol would be one of:
4707 + <<BSF_LOCAL>>, <<BSF_FORT_COMM>>, <<BSF_UNDEFINED>> or
4708 + <<BSF_GLOBAL>>. */
4709 +
4710 + /* The symbol is a debugging record. The value has an arbitrary
4711 + meaning, unless BSF_DEBUGGING_RELOC is also set. */
4712 +#define BSF_DEBUGGING 0x08
4713 +
4714 + /* The symbol denotes a function entry point. Used in ELF,
4715 + perhaps others someday. */
4716 +#define BSF_FUNCTION 0x10
4717 +
4718 + /* Used by the linker. */
4719 +#define BSF_KEEP 0x20
4720 +#define BSF_KEEP_G 0x40
4721 +
4722 + /* A weak global symbol, overridable without warnings by
4723 + a regular global symbol of the same name. */
4724 +#define BSF_WEAK 0x80
4725 +
4726 + /* This symbol was created to point to a section, e.g. ELF's
4727 + STT_SECTION symbols. */
4728 +#define BSF_SECTION_SYM 0x100
4729 +
4730 + /* The symbol used to be a common symbol, but now it is
4731 + allocated. */
4732 +#define BSF_OLD_COMMON 0x200
4733 +
4734 + /* The default value for common data. */
4735 +#define BFD_FORT_COMM_DEFAULT_VALUE 0
4736 +
4737 + /* In some files the type of a symbol sometimes alters its
4738 + location in an output file - ie in coff a <<ISFCN>> symbol
4739 + which is also <<C_EXT>> symbol appears where it was
4740 + declared and not at the end of a section. This bit is set
4741 + by the target BFD part to convey this information. */
4742 +#define BSF_NOT_AT_END 0x400
4743 +
4744 + /* Signal that the symbol is the label of constructor section. */
4745 +#define BSF_CONSTRUCTOR 0x800
4746 +
4747 + /* Signal that the symbol is a warning symbol. The name is a
4748 + warning. The name of the next symbol is the one to warn about;
4749 + if a reference is made to a symbol with the same name as the next
4750 + symbol, a warning is issued by the linker. */
4751 +#define BSF_WARNING 0x1000
4752 +
4753 + /* Signal that the symbol is indirect. This symbol is an indirect
4754 + pointer to the symbol with the same name as the next symbol. */
4755 +#define BSF_INDIRECT 0x2000
4756 +
4757 + /* BSF_FILE marks symbols that contain a file name. This is used
4758 + for ELF STT_FILE symbols. */
4759 +#define BSF_FILE 0x4000
4760 +
4761 + /* Symbol is from dynamic linking information. */
4762 +#define BSF_DYNAMIC 0x8000
4763 +
4764 + /* The symbol denotes a data object. Used in ELF, and perhaps
4765 + others someday. */
4766 +#define BSF_OBJECT 0x10000
4767 +
4768 + /* This symbol is a debugging symbol. The value is the offset
4769 + into the section of the data. BSF_DEBUGGING should be set
4770 + as well. */
4771 +#define BSF_DEBUGGING_RELOC 0x20000
4772 +
4773 + /* This symbol is thread local. Used in ELF. */
4774 +#define BSF_THREAD_LOCAL 0x40000
4775 +
4776 + flagword flags;
4777 +
4778 + /* A pointer to the section to which this symbol is
4779 + relative. This will always be non NULL, there are special
4780 + sections for undefined and absolute symbols. */
4781 + struct bfd_section *section;
4782 +
4783 + /* Back end special data. */
4784 + union
4785 + {
4786 + void *p;
4787 + bfd_vma i;
4788 + }
4789 + udata;
4790 +}
4791 +asymbol;
4792 +
4793 +#define bfd_get_symtab_upper_bound(abfd) \
4794 + BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
4795 +
4796 +bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
4797 +
4798 +bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
4799 +
4800 +#define bfd_is_local_label_name(abfd, name) \
4801 + BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
4802 +
4803 +bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
4804 +
4805 +#define bfd_is_target_special_symbol(abfd, sym) \
4806 + BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
4807 +
4808 +#define bfd_canonicalize_symtab(abfd, location) \
4809 + BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
4810 +
4811 +bfd_boolean bfd_set_symtab
4812 + (bfd *abfd, asymbol **location, unsigned int count);
4813 +
4814 +void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
4815 +
4816 +#define bfd_make_empty_symbol(abfd) \
4817 + BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
4818 +
4819 +asymbol *_bfd_generic_make_empty_symbol (bfd *);
4820 +
4821 +#define bfd_make_debug_symbol(abfd,ptr,size) \
4822 + BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
4823 +
4824 +int bfd_decode_symclass (asymbol *symbol);
4825 +
4826 +bfd_boolean bfd_is_undefined_symclass (int symclass);
4827 +
4828 +void bfd_symbol_info (asymbol *symbol, symbol_info *ret);
4829 +
4830 +bfd_boolean bfd_copy_private_symbol_data
4831 + (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
4832 +
4833 +#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
4834 + BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
4835 + (ibfd, isymbol, obfd, osymbol))
4836 +
4837 +/* Extracted from bfd.c. */
4838 +struct bfd
4839 +{
4840 + /* A unique identifier of the BFD */
4841 + unsigned int id;
4842 +
4843 + /* The filename the application opened the BFD with. */
4844 + const char *filename;
4845 +
4846 + /* A pointer to the target jump table. */
4847 + const struct bfd_target *xvec;
4848 +
4849 + /* The IOSTREAM, and corresponding IO vector that provide access
4850 + to the file backing the BFD. */
4851 + void *iostream;
4852 + const struct bfd_iovec *iovec;
4853 +
4854 + /* Is the file descriptor being cached? That is, can it be closed as
4855 + needed, and re-opened when accessed later? */
4856 + bfd_boolean cacheable;
4857 +
4858 + /* Marks whether there was a default target specified when the
4859 + BFD was opened. This is used to select which matching algorithm
4860 + to use to choose the back end. */
4861 + bfd_boolean target_defaulted;
4862 +
4863 + /* The caching routines use these to maintain a
4864 + least-recently-used list of BFDs. */
4865 + struct bfd *lru_prev, *lru_next;
4866 +
4867 + /* When a file is closed by the caching routines, BFD retains
4868 + state information on the file here... */
4869 + ufile_ptr where;
4870 +
4871 + /* ... and here: (``once'' means at least once). */
4872 + bfd_boolean opened_once;
4873 +
4874 + /* Set if we have a locally maintained mtime value, rather than
4875 + getting it from the file each time. */
4876 + bfd_boolean mtime_set;
4877 +
4878 + /* File modified time, if mtime_set is TRUE. */
4879 + long mtime;
4880 +
4881 + /* Reserved for an unimplemented file locking extension. */
4882 + int ifd;
4883 +
4884 + /* The format which belongs to the BFD. (object, core, etc.) */
4885 + bfd_format format;
4886 +
4887 + /* The direction with which the BFD was opened. */
4888 + enum bfd_direction
4889 + {
4890 + no_direction = 0,
4891 + read_direction = 1,
4892 + write_direction = 2,
4893 + both_direction = 3
4894 + }
4895 + direction;
4896 +
4897 + /* Format_specific flags. */
4898 + flagword flags;
4899 +
4900 + /* Currently my_archive is tested before adding origin to
4901 + anything. I believe that this can become always an add of
4902 + origin, with origin set to 0 for non archive files. */
4903 + ufile_ptr origin;
4904 +
4905 + /* Remember when output has begun, to stop strange things
4906 + from happening. */
4907 + bfd_boolean output_has_begun;
4908 +
4909 + /* A hash table for section names. */
4910 + struct bfd_hash_table section_htab;
4911 +
4912 + /* Pointer to linked list of sections. */
4913 + struct bfd_section *sections;
4914 +
4915 + /* The last section on the section list. */
4916 + struct bfd_section *section_last;
4917 +
4918 + /* The number of sections. */
4919 + unsigned int section_count;
4920 +
4921 + /* Stuff only useful for object files:
4922 + The start address. */
4923 + bfd_vma start_address;
4924 +
4925 + /* Used for input and output. */
4926 + unsigned int symcount;
4927 +
4928 + /* Symbol table for output BFD (with symcount entries). */
4929 + struct bfd_symbol **outsymbols;
4930 +
4931 + /* Used for slurped dynamic symbol tables. */
4932 + unsigned int dynsymcount;
4933 +
4934 + /* Pointer to structure which contains architecture information. */
4935 + const struct bfd_arch_info *arch_info;
4936 +
4937 + /* Flag set if symbols from this BFD should not be exported. */
4938 + bfd_boolean no_export;
4939 +
4940 + /* Stuff only useful for archives. */
4941 + void *arelt_data;
4942 + struct bfd *my_archive; /* The containing archive BFD. */
4943 + struct bfd *next; /* The next BFD in the archive. */
4944 + struct bfd *archive_head; /* The first BFD in the archive. */
4945 + bfd_boolean has_armap;
4946 +
4947 + /* A chain of BFD structures involved in a link. */
4948 + struct bfd *link_next;
4949 +
4950 + /* A field used by _bfd_generic_link_add_archive_symbols. This will
4951 + be used only for archive elements. */
4952 + int archive_pass;
4953 +
4954 + /* Used by the back end to hold private data. */
4955 + union
4956 + {
4957 + struct aout_data_struct *aout_data;
4958 + struct artdata *aout_ar_data;
4959 + struct _oasys_data *oasys_obj_data;
4960 + struct _oasys_ar_data *oasys_ar_data;
4961 + struct coff_tdata *coff_obj_data;
4962 + struct pe_tdata *pe_obj_data;
4963 + struct xcoff_tdata *xcoff_obj_data;
4964 + struct ecoff_tdata *ecoff_obj_data;
4965 + struct ieee_data_struct *ieee_data;
4966 + struct ieee_ar_data_struct *ieee_ar_data;
4967 + struct srec_data_struct *srec_data;
4968 + struct ihex_data_struct *ihex_data;
4969 + struct tekhex_data_struct *tekhex_data;
4970 + struct elf_obj_tdata *elf_obj_data;
4971 + struct nlm_obj_tdata *nlm_obj_data;
4972 + struct bout_data_struct *bout_data;
4973 + struct mmo_data_struct *mmo_data;
4974 + struct sun_core_struct *sun_core_data;
4975 + struct sco5_core_struct *sco5_core_data;
4976 + struct trad_core_struct *trad_core_data;
4977 + struct som_data_struct *som_data;
4978 + struct hpux_core_struct *hpux_core_data;
4979 + struct hppabsd_core_struct *hppabsd_core_data;
4980 + struct sgi_core_struct *sgi_core_data;
4981 + struct lynx_core_struct *lynx_core_data;
4982 + struct osf_core_struct *osf_core_data;
4983 + struct cisco_core_struct *cisco_core_data;
4984 + struct versados_data_struct *versados_data;
4985 + struct netbsd_core_struct *netbsd_core_data;
4986 + struct mach_o_data_struct *mach_o_data;
4987 + struct mach_o_fat_data_struct *mach_o_fat_data;
4988 + struct bfd_pef_data_struct *pef_data;
4989 + struct bfd_pef_xlib_data_struct *pef_xlib_data;
4990 + struct bfd_sym_data_struct *sym_data;
4991 + void *any;
4992 + }
4993 + tdata;
4994 +
4995 + /* Used by the application to hold private data. */
4996 + void *usrdata;
4997 +
4998 + /* Where all the allocated stuff under this BFD goes. This is a
4999 + struct objalloc *, but we use void * to avoid requiring the inclusion
5000 + of objalloc.h. */
5001 + void *memory;
5002 +};
5003 +
5004 +typedef enum bfd_error
5005 +{
5006 + bfd_error_no_error = 0,
5007 + bfd_error_system_call,
5008 + bfd_error_invalid_target,
5009 + bfd_error_wrong_format,
5010 + bfd_error_wrong_object_format,
5011 + bfd_error_invalid_operation,
5012 + bfd_error_no_memory,
5013 + bfd_error_no_symbols,
5014 + bfd_error_no_armap,
5015 + bfd_error_no_more_archived_files,
5016 + bfd_error_malformed_archive,
5017 + bfd_error_file_not_recognized,
5018 + bfd_error_file_ambiguously_recognized,
5019 + bfd_error_no_contents,
5020 + bfd_error_nonrepresentable_section,
5021 + bfd_error_no_debug_section,
5022 + bfd_error_bad_value,
5023 + bfd_error_file_truncated,
5024 + bfd_error_file_too_big,
5025 + bfd_error_invalid_error_code
5026 +}
5027 +bfd_error_type;
5028 +
5029 +bfd_error_type bfd_get_error (void);
5030 +
5031 +void bfd_set_error (bfd_error_type error_tag);
5032 +
5033 +const char *bfd_errmsg (bfd_error_type error_tag);
5034 +
5035 +void bfd_perror (const char *message);
5036 +
5037 +typedef void (*bfd_error_handler_type) (const char *, ...);
5038 +
5039 +bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
5040 +
5041 +void bfd_set_error_program_name (const char *);
5042 +
5043 +bfd_error_handler_type bfd_get_error_handler (void);
5044 +
5045 +long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect);
5046 +
5047 +long bfd_canonicalize_reloc
5048 + (bfd *abfd, asection *sec, arelent **loc, asymbol **syms);
5049 +
5050 +void bfd_set_reloc
5051 + (bfd *abfd, asection *sec, arelent **rel, unsigned int count);
5052 +
5053 +bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags);
5054 +
5055 +int bfd_get_arch_size (bfd *abfd);
5056 +
5057 +int bfd_get_sign_extend_vma (bfd *abfd);
5058 +
5059 +bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);
5060 +
5061 +unsigned int bfd_get_gp_size (bfd *abfd);
5062 +
5063 +void bfd_set_gp_size (bfd *abfd, unsigned int i);
5064 +
5065 +bfd_vma bfd_scan_vma (const char *string, const char **end, int base);
5066 +
5067 +bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd);
5068 +
5069 +#define bfd_copy_private_header_data(ibfd, obfd) \
5070 + BFD_SEND (obfd, _bfd_copy_private_header_data, \
5071 + (ibfd, obfd))
5072 +bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
5073 +
5074 +#define bfd_copy_private_bfd_data(ibfd, obfd) \
5075 + BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
5076 + (ibfd, obfd))
5077 +bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd);
5078 +
5079 +#define bfd_merge_private_bfd_data(ibfd, obfd) \
5080 + BFD_SEND (obfd, _bfd_merge_private_bfd_data, \
5081 + (ibfd, obfd))
5082 +bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
5083 +
5084 +#define bfd_set_private_flags(abfd, flags) \
5085 + BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
5086 +#define bfd_sizeof_headers(abfd, reloc) \
5087 + BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, reloc))
5088 +
5089 +#define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
5090 + BFD_SEND (abfd, _bfd_find_nearest_line, \
5091 + (abfd, sec, syms, off, file, func, line))
5092 +
5093 +#define bfd_find_line(abfd, syms, sym, file, line) \
5094 + BFD_SEND (abfd, _bfd_find_line, \
5095 + (abfd, syms, sym, file, line))
5096 +
5097 +#define bfd_find_inliner_info(abfd, file, func, line) \
5098 + BFD_SEND (abfd, _bfd_find_inliner_info, \
5099 + (abfd, file, func, line))
5100 +
5101 +#define bfd_debug_info_start(abfd) \
5102 + BFD_SEND (abfd, _bfd_debug_info_start, (abfd))
5103 +
5104 +#define bfd_debug_info_end(abfd) \
5105 + BFD_SEND (abfd, _bfd_debug_info_end, (abfd))
5106 +
5107 +#define bfd_debug_info_accumulate(abfd, section) \
5108 + BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section))
5109 +
5110 +#define bfd_stat_arch_elt(abfd, stat) \
5111 + BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat))
5112 +
5113 +#define bfd_update_armap_timestamp(abfd) \
5114 + BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd))
5115 +
5116 +#define bfd_set_arch_mach(abfd, arch, mach)\
5117 + BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach))
5118 +
5119 +#define bfd_relax_section(abfd, section, link_info, again) \
5120 + BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again))
5121 +
5122 +#define bfd_gc_sections(abfd, link_info) \
5123 + BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info))
5124 +
5125 +#define bfd_merge_sections(abfd, link_info) \
5126 + BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info))
5127 +
5128 +#define bfd_is_group_section(abfd, sec) \
5129 + BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
5130 +
5131 +#define bfd_discard_group(abfd, sec) \
5132 + BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
5133 +
5134 +#define bfd_link_hash_table_create(abfd) \
5135 + BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
5136 +
5137 +#define bfd_link_hash_table_free(abfd, hash) \
5138 + BFD_SEND (abfd, _bfd_link_hash_table_free, (hash))
5139 +
5140 +#define bfd_link_add_symbols(abfd, info) \
5141 + BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))
5142 +
5143 +#define bfd_link_just_syms(abfd, sec, info) \
5144 + BFD_SEND (abfd, _bfd_link_just_syms, (sec, info))
5145 +
5146 +#define bfd_final_link(abfd, info) \
5147 + BFD_SEND (abfd, _bfd_final_link, (abfd, info))
5148 +
5149 +#define bfd_free_cached_info(abfd) \
5150 + BFD_SEND (abfd, _bfd_free_cached_info, (abfd))
5151 +
5152 +#define bfd_get_dynamic_symtab_upper_bound(abfd) \
5153 + BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd))
5154 +
5155 +#define bfd_print_private_bfd_data(abfd, file)\
5156 + BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file))
5157 +
5158 +#define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \
5159 + BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols))
5160 +
5161 +#define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \
5162 + BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \
5163 + dyncount, dynsyms, ret))
5164 +
5165 +#define bfd_get_dynamic_reloc_upper_bound(abfd) \
5166 + BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd))
5167 +
5168 +#define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \
5169 + BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms))
5170 +
5171 +extern bfd_byte *bfd_get_relocated_section_contents
5172 + (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
5173 + bfd_boolean, asymbol **);
5174 +
5175 +bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative);
5176 +
5177 +struct bfd_preserve
5178 +{
5179 + void *marker;
5180 + void *tdata;
5181 + flagword flags;
5182 + const struct bfd_arch_info *arch_info;
5183 + struct bfd_section *sections;
5184 + struct bfd_section *section_last;
5185 + unsigned int section_count;
5186 + struct bfd_hash_table section_htab;
5187 +};
5188 +
5189 +bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *);
5190 +
5191 +void bfd_preserve_restore (bfd *, struct bfd_preserve *);
5192 +
5193 +void bfd_preserve_finish (bfd *, struct bfd_preserve *);
5194 +
5195 +/* Extracted from archive.c. */
5196 +symindex bfd_get_next_mapent
5197 + (bfd *abfd, symindex previous, carsym **sym);
5198 +
5199 +bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head);
5200 +
5201 +bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
5202 +
5203 +/* Extracted from corefile.c. */
5204 +const char *bfd_core_file_failing_command (bfd *abfd);
5205 +
5206 +int bfd_core_file_failing_signal (bfd *abfd);
5207 +
5208 +bfd_boolean core_file_matches_executable_p
5209 + (bfd *core_bfd, bfd *exec_bfd);
5210 +
5211 +/* Extracted from targets.c. */
5212 +#define BFD_SEND(bfd, message, arglist) \
5213 + ((*((bfd)->xvec->message)) arglist)
5214 +
5215 +#ifdef DEBUG_BFD_SEND
5216 +#undef BFD_SEND
5217 +#define BFD_SEND(bfd, message, arglist) \
5218 + (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
5219 + ((*((bfd)->xvec->message)) arglist) : \
5220 + (bfd_assert (__FILE__,__LINE__), NULL))
5221 +#endif
5222 +#define BFD_SEND_FMT(bfd, message, arglist) \
5223 + (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist)
5224 +
5225 +#ifdef DEBUG_BFD_SEND
5226 +#undef BFD_SEND_FMT
5227 +#define BFD_SEND_FMT(bfd, message, arglist) \
5228 + (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
5229 + (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \
5230 + (bfd_assert (__FILE__,__LINE__), NULL))
5231 +#endif
5232 +
5233 +enum bfd_flavour
5234 +{
5235 + bfd_target_unknown_flavour,
5236 + bfd_target_aout_flavour,
5237 + bfd_target_coff_flavour,
5238 + bfd_target_ecoff_flavour,
5239 + bfd_target_xcoff_flavour,
5240 + bfd_target_elf_flavour,
5241 + bfd_target_ieee_flavour,
5242 + bfd_target_nlm_flavour,
5243 + bfd_target_oasys_flavour,
5244 + bfd_target_tekhex_flavour,
5245 + bfd_target_srec_flavour,
5246 + bfd_target_ihex_flavour,
5247 + bfd_target_som_flavour,
5248 + bfd_target_os9k_flavour,
5249 + bfd_target_versados_flavour,
5250 + bfd_target_msdos_flavour,
5251 + bfd_target_ovax_flavour,
5252 + bfd_target_evax_flavour,
5253 + bfd_target_mmo_flavour,
5254 + bfd_target_mach_o_flavour,
5255 + bfd_target_pef_flavour,
5256 + bfd_target_pef_xlib_flavour,
5257 + bfd_target_sym_flavour
5258 +};
5259 +
5260 +enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN };
5261 +
5262 +/* Forward declaration. */
5263 +typedef struct bfd_link_info _bfd_link_info;
5264 +
5265 +typedef struct bfd_target
5266 +{
5267 + /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc. */
5268 + char *name;
5269 +
5270 + /* The "flavour" of a back end is a general indication about
5271 + the contents of a file. */
5272 + enum bfd_flavour flavour;
5273 +
5274 + /* The order of bytes within the data area of a file. */
5275 + enum bfd_endian byteorder;
5276 +
5277 + /* The order of bytes within the header parts of a file. */
5278 + enum bfd_endian header_byteorder;
5279 +
5280 + /* A mask of all the flags which an executable may have set -
5281 + from the set <<BFD_NO_FLAGS>>, <<HAS_RELOC>>, ...<<D_PAGED>>. */
5282 + flagword object_flags;
5283 +
5284 + /* A mask of all the flags which a section may have set - from
5285 + the set <<SEC_NO_FLAGS>>, <<SEC_ALLOC>>, ...<<SET_NEVER_LOAD>>. */
5286 + flagword section_flags;
5287 +
5288 + /* The character normally found at the front of a symbol.
5289 + (if any), perhaps `_'. */
5290 + char symbol_leading_char;
5291 +
5292 + /* The pad character for file names within an archive header. */
5293 + char ar_pad_char;
5294 +
5295 + /* The maximum number of characters in an archive header. */
5296 + unsigned short ar_max_namelen;
5297 +
5298 + /* Entries for byte swapping for data. These are different from the
5299 + other entry points, since they don't take a BFD as the first argument.
5300 + Certain other handlers could do the same. */
5301 + bfd_uint64_t (*bfd_getx64) (const void *);
5302 + bfd_int64_t (*bfd_getx_signed_64) (const void *);
5303 + void (*bfd_putx64) (bfd_uint64_t, void *);
5304 + bfd_vma (*bfd_getx32) (const void *);
5305 + bfd_signed_vma (*bfd_getx_signed_32) (const void *);
5306 + void (*bfd_putx32) (bfd_vma, void *);
5307 + bfd_vma (*bfd_getx16) (const void *);
5308 + bfd_signed_vma (*bfd_getx_signed_16) (const void *);
5309 + void (*bfd_putx16) (bfd_vma, void *);
5310 +
5311 + /* Byte swapping for the headers. */
5312 + bfd_uint64_t (*bfd_h_getx64) (const void *);
5313 + bfd_int64_t (*bfd_h_getx_signed_64) (const void *);
5314 + void (*bfd_h_putx64) (bfd_uint64_t, void *);
5315 + bfd_vma (*bfd_h_getx32) (const void *);
5316 + bfd_signed_vma (*bfd_h_getx_signed_32) (const void *);
5317 + void (*bfd_h_putx32) (bfd_vma, void *);
5318 + bfd_vma (*bfd_h_getx16) (const void *);
5319 + bfd_signed_vma (*bfd_h_getx_signed_16) (const void *);
5320 + void (*bfd_h_putx16) (bfd_vma, void *);
5321 +
5322 + /* Format dependent routines: these are vectors of entry points
5323 + within the target vector structure, one for each format to check. */
5324 +
5325 + /* Check the format of a file being read. Return a <<bfd_target *>> or zero. */
5326 + const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *);
5327 +
5328 + /* Set the format of a file being written. */
5329 + bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
5330 +
5331 + /* Write cached information into a file being written, at <<bfd_close>>. */
5332 + bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *);
5333 +
5334 +
5335 + /* Generic entry points. */
5336 +#define BFD_JUMP_TABLE_GENERIC(NAME) \
5337 + NAME##_close_and_cleanup, \
5338 + NAME##_bfd_free_cached_info, \
5339 + NAME##_new_section_hook, \
5340 + NAME##_get_section_contents, \
5341 + NAME##_get_section_contents_in_window
5342 +
5343 + /* Called when the BFD is being closed to do any necessary cleanup. */
5344 + bfd_boolean (*_close_and_cleanup) (bfd *);
5345 + /* Ask the BFD to free all cached information. */
5346 + bfd_boolean (*_bfd_free_cached_info) (bfd *);
5347 + /* Called when a new section is created. */
5348 + bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
5349 + /* Read the contents of a section. */
5350 + bfd_boolean (*_bfd_get_section_contents)
5351 + (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
5352 + bfd_boolean (*_bfd_get_section_contents_in_window)
5353 + (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type);
5354 +
5355 + /* Entry points to copy private data. */
5356 +#define BFD_JUMP_TABLE_COPY(NAME) \
5357 + NAME##_bfd_copy_private_bfd_data, \
5358 + NAME##_bfd_merge_private_bfd_data, \
5359 + _bfd_generic_init_private_section_data, \
5360 + NAME##_bfd_copy_private_section_data, \
5361 + NAME##_bfd_copy_private_symbol_data, \
5362 + NAME##_bfd_copy_private_header_data, \
5363 + NAME##_bfd_set_private_flags, \
5364 + NAME##_bfd_print_private_bfd_data
5365 +
5366 + /* Called to copy BFD general private data from one object file
5367 + to another. */
5368 + bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *);
5369 + /* Called to merge BFD general private data from one object file
5370 + to a common output file when linking. */
5371 + bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *);
5372 + /* Called to initialize BFD private section data from one object file
5373 + to another. */
5374 +#define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \
5375 + BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info))
5376 + bfd_boolean (*_bfd_init_private_section_data)
5377 + (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *);
5378 + /* Called to copy BFD private section data from one object file
5379 + to another. */
5380 + bfd_boolean (*_bfd_copy_private_section_data)
5381 + (bfd *, sec_ptr, bfd *, sec_ptr);
5382 + /* Called to copy BFD private symbol data from one symbol
5383 + to another. */
5384 + bfd_boolean (*_bfd_copy_private_symbol_data)
5385 + (bfd *, asymbol *, bfd *, asymbol *);
5386 + /* Called to copy BFD private header data from one object file
5387 + to another. */
5388 + bfd_boolean (*_bfd_copy_private_header_data)
5389 + (bfd *, bfd *);
5390 + /* Called to set private backend flags. */
5391 + bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
5392 +
5393 + /* Called to print private BFD data. */
5394 + bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *);
5395 +
5396 + /* Core file entry points. */
5397 +#define BFD_JUMP_TABLE_CORE(NAME) \
5398 + NAME##_core_file_failing_command, \
5399 + NAME##_core_file_failing_signal, \
5400 + NAME##_core_file_matches_executable_p
5401 +
5402 + char * (*_core_file_failing_command) (bfd *);
5403 + int (*_core_file_failing_signal) (bfd *);
5404 + bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *);
5405 +
5406 + /* Archive entry points. */
5407 +#define BFD_JUMP_TABLE_ARCHIVE(NAME) \
5408 + NAME##_slurp_armap, \
5409 + NAME##_slurp_extended_name_table, \
5410 + NAME##_construct_extended_name_table, \
5411 + NAME##_truncate_arname, \
5412 + NAME##_write_armap, \
5413 + NAME##_read_ar_hdr, \
5414 + NAME##_openr_next_archived_file, \
5415 + NAME##_get_elt_at_index, \
5416 + NAME##_generic_stat_arch_elt, \
5417 + NAME##_update_armap_timestamp
5418 +
5419 + bfd_boolean (*_bfd_slurp_armap) (bfd *);
5420 + bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
5421 + bfd_boolean (*_bfd_construct_extended_name_table)
5422 + (bfd *, char **, bfd_size_type *, const char **);
5423 + void (*_bfd_truncate_arname) (bfd *, const char *, char *);
5424 + bfd_boolean (*write_armap)
5425 + (bfd *, unsigned int, struct orl *, unsigned int, int);
5426 + void * (*_bfd_read_ar_hdr_fn) (bfd *);
5427 + bfd * (*openr_next_archived_file) (bfd *, bfd *);
5428 +#define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
5429 + bfd * (*_bfd_get_elt_at_index) (bfd *, symindex);
5430 + int (*_bfd_stat_arch_elt) (bfd *, struct stat *);
5431 + bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
5432 +
5433 + /* Entry points used for symbols. */
5434 +#define BFD_JUMP_TABLE_SYMBOLS(NAME) \
5435 + NAME##_get_symtab_upper_bound, \
5436 + NAME##_canonicalize_symtab, \
5437 + NAME##_make_empty_symbol, \
5438 + NAME##_print_symbol, \
5439 + NAME##_get_symbol_info, \
5440 + NAME##_bfd_is_local_label_name, \
5441 + NAME##_bfd_is_target_special_symbol, \
5442 + NAME##_get_lineno, \
5443 + NAME##_find_nearest_line, \
5444 + _bfd_generic_find_line, \
5445 + NAME##_find_inliner_info, \
5446 + NAME##_bfd_make_debug_symbol, \
5447 + NAME##_read_minisymbols, \
5448 + NAME##_minisymbol_to_symbol
5449 +
5450 + long (*_bfd_get_symtab_upper_bound) (bfd *);
5451 + long (*_bfd_canonicalize_symtab)
5452 + (bfd *, struct bfd_symbol **);
5453 + struct bfd_symbol *
5454 + (*_bfd_make_empty_symbol) (bfd *);
5455 + void (*_bfd_print_symbol)
5456 + (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type);
5457 +#define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
5458 + void (*_bfd_get_symbol_info)
5459 + (bfd *, struct bfd_symbol *, symbol_info *);
5460 +#define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
5461 + bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
5462 + bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
5463 + alent * (*_get_lineno) (bfd *, struct bfd_symbol *);
5464 + bfd_boolean (*_bfd_find_nearest_line)
5465 + (bfd *, struct bfd_section *, struct bfd_symbol **, bfd_vma,
5466 + const char **, const char **, unsigned int *);
5467 + bfd_boolean (*_bfd_find_line)
5468 + (bfd *, struct bfd_symbol **, struct bfd_symbol *,
5469 + const char **, unsigned int *);
5470 + bfd_boolean (*_bfd_find_inliner_info)
5471 + (bfd *, const char **, const char **, unsigned int *);
5472 + /* Back-door to allow format-aware applications to create debug symbols
5473 + while using BFD for everything else. Currently used by the assembler
5474 + when creating COFF files. */
5475 + asymbol * (*_bfd_make_debug_symbol)
5476 + (bfd *, void *, unsigned long size);
5477 +#define bfd_read_minisymbols(b, d, m, s) \
5478 + BFD_SEND (b, _read_minisymbols, (b, d, m, s))
5479 + long (*_read_minisymbols)
5480 + (bfd *, bfd_boolean, void **, unsigned int *);
5481 +#define bfd_minisymbol_to_symbol(b, d, m, f) \
5482 + BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
5483 + asymbol * (*_minisymbol_to_symbol)
5484 + (bfd *, bfd_boolean, const void *, asymbol *);
5485 +
5486 + /* Routines for relocs. */
5487 +#define BFD_JUMP_TABLE_RELOCS(NAME) \
5488 + NAME##_get_reloc_upper_bound, \
5489 + NAME##_canonicalize_reloc, \
5490 + NAME##_bfd_reloc_type_lookup
5491 +
5492 + long (*_get_reloc_upper_bound) (bfd *, sec_ptr);
5493 + long (*_bfd_canonicalize_reloc)
5494 + (bfd *, sec_ptr, arelent **, struct bfd_symbol **);
5495 + /* See documentation on reloc types. */
5496 + reloc_howto_type *
5497 + (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
5498 +
5499 + /* Routines used when writing an object file. */
5500 +#define BFD_JUMP_TABLE_WRITE(NAME) \
5501 + NAME##_set_arch_mach, \
5502 + NAME##_set_section_contents
5503 +
5504 + bfd_boolean (*_bfd_set_arch_mach)
5505 + (bfd *, enum bfd_architecture, unsigned long);
5506 + bfd_boolean (*_bfd_set_section_contents)
5507 + (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type);
5508 +
5509 + /* Routines used by the linker. */
5510 +#define BFD_JUMP_TABLE_LINK(NAME) \
5511 + NAME##_sizeof_headers, \
5512 + NAME##_bfd_get_relocated_section_contents, \
5513 + NAME##_bfd_relax_section, \
5514 + NAME##_bfd_link_hash_table_create, \
5515 + NAME##_bfd_link_hash_table_free, \
5516 + NAME##_bfd_link_add_symbols, \
5517 + NAME##_bfd_link_just_syms, \
5518 + NAME##_bfd_final_link, \
5519 + NAME##_bfd_link_split_section, \
5520 + NAME##_bfd_gc_sections, \
5521 + NAME##_bfd_merge_sections, \
5522 + NAME##_bfd_is_group_section, \
5523 + NAME##_bfd_discard_group, \
5524 + NAME##_section_already_linked \
5525 +
5526 + int (*_bfd_sizeof_headers) (bfd *, bfd_boolean);
5527 + bfd_byte * (*_bfd_get_relocated_section_contents)
5528 + (bfd *, struct bfd_link_info *, struct bfd_link_order *,
5529 + bfd_byte *, bfd_boolean, struct bfd_symbol **);
5530 +
5531 + bfd_boolean (*_bfd_relax_section)
5532 + (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *);
5533 +
5534 + /* Create a hash table for the linker. Different backends store
5535 + different information in this table. */
5536 + struct bfd_link_hash_table *
5537 + (*_bfd_link_hash_table_create) (bfd *);
5538 +
5539 + /* Release the memory associated with the linker hash table. */
5540 + void (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *);
5541 +
5542 + /* Add symbols from this object file into the hash table. */
5543 + bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
5544 +
5545 + /* Indicate that we are only retrieving symbol values from this section. */
5546 + void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
5547 +
5548 + /* Do a link based on the link_order structures attached to each
5549 + section of the BFD. */
5550 + bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *);
5551 +
5552 + /* Should this section be split up into smaller pieces during linking. */
5553 + bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *);
5554 +
5555 + /* Remove sections that are not referenced from the output. */
5556 + bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
5557 +
5558 + /* Attempt to merge SEC_MERGE sections. */
5559 + bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
5560 +
5561 + /* Is this section a member of a group? */
5562 + bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
5563 +
5564 + /* Discard members of a group. */
5565 + bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
5566 +
5567 + /* Check if SEC has been already linked during a reloceatable or
5568 + final link. */
5569 + void (*_section_already_linked) (bfd *, struct bfd_section *);
5570 +
5571 + /* Routines to handle dynamic symbols and relocs. */
5572 +#define BFD_JUMP_TABLE_DYNAMIC(NAME) \
5573 + NAME##_get_dynamic_symtab_upper_bound, \
5574 + NAME##_canonicalize_dynamic_symtab, \
5575 + NAME##_get_synthetic_symtab, \
5576 + NAME##_get_dynamic_reloc_upper_bound, \
5577 + NAME##_canonicalize_dynamic_reloc
5578 +
5579 + /* Get the amount of memory required to hold the dynamic symbols. */
5580 + long (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
5581 + /* Read in the dynamic symbols. */
5582 + long (*_bfd_canonicalize_dynamic_symtab)
5583 + (bfd *, struct bfd_symbol **);
5584 + /* Create synthetized symbols. */
5585 + long (*_bfd_get_synthetic_symtab)
5586 + (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **,
5587 + struct bfd_symbol **);
5588 + /* Get the amount of memory required to hold the dynamic relocs. */
5589 + long (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
5590 + /* Read in the dynamic relocs. */
5591 + long (*_bfd_canonicalize_dynamic_reloc)
5592 + (bfd *, arelent **, struct bfd_symbol **);
5593 +
5594 + /* Opposite endian version of this target. */
5595 + const struct bfd_target * alternative_target;
5596 +
5597 + /* Data for use by back-end routines, which isn't
5598 + generic enough to belong in this structure. */
5599 + const void *backend_data;
5600 +
5601 +} bfd_target;
5602 +
5603 +bfd_boolean bfd_set_default_target (const char *name);
5604 +
5605 +const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
5606 +
5607 +const char ** bfd_target_list (void);
5608 +
5609 +const bfd_target *bfd_search_for_target
5610 + (int (*search_func) (const bfd_target *, void *),
5611 + void *);
5612 +
5613 +/* Extracted from format.c. */
5614 +bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
5615 +
5616 +bfd_boolean bfd_check_format_matches
5617 + (bfd *abfd, bfd_format format, char ***matching);
5618 +
5619 +bfd_boolean bfd_set_format (bfd *abfd, bfd_format format);
5620 +
5621 +const char *bfd_format_string (bfd_format format);
5622 +
5623 +/* Extracted from linker.c. */
5624 +bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
5625 +
5626 +#define bfd_link_split_section(abfd, sec) \
5627 + BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
5628 +
5629 +void bfd_section_already_linked (bfd *abfd, asection *sec);
5630 +
5631 +#define bfd_section_already_linked(abfd, sec) \
5632 + BFD_SEND (abfd, _section_already_linked, (abfd, sec))
5633 +
5634 +/* Extracted from simple.c. */
5635 +bfd_byte *bfd_simple_get_relocated_section_contents
5636 + (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
5637 +
5638 +#ifdef __cplusplus
5639 +}
5640 +#endif
5641 +#endif
5642 --- /dev/null
5643 +++ b/arch/ia64/include/asm/kdb.h
5644 @@ -0,0 +1,45 @@
5645 +#ifndef _ASM_KDB_H
5646 +#define _ASM_KDB_H
5647 +
5648 +/*
5649 + * Kernel Debugger Architecture Dependent Global Headers
5650 + *
5651 + * This file is subject to the terms and conditions of the GNU General Public
5652 + * License. See the file "COPYING" in the main directory of this archive
5653 + * for more details.
5654 + *
5655 + * Copyright (c) 1999-2004 Silicon Graphics, Inc. All Rights Reserved.
5656 + */
5657 +
5658 +/*
5659 + * KDB_ENTER() is a macro which causes entry into the kernel
5660 + * debugger from any point in the kernel code stream. If it
5661 + * is intended to be used from interrupt level, it must use
5662 + * a non-maskable entry method.
5663 + */
5664 +#include <asm/kdb_break.h> /* break numbers are separated for CONFIG_KDB_LOCK */
5665 +#define __KDB_ENTER2(b) asm("\tbreak.m "#b"\n")
5666 +#define __KDB_ENTER1(b) __KDB_ENTER2(b)
5667 +#define KDB_ENTER() do {if (kdb_on && !KDB_IS_RUNNING()) { __KDB_ENTER1(KDB_BREAK_ENTER); }} while(0)
5668 +#define KDB_ENTER_SLAVE() do {if (kdb_on) { __KDB_ENTER1(KDB_BREAK_ENTER_SLAVE); }} while(0)
5669 +
5670 + /*
5671 + * Needed for exported symbols.
5672 + */
5673 +typedef unsigned long kdb_machreg_t;
5674 +
5675 +#define kdb_machreg_fmt "0x%lx"
5676 +#define kdb_machreg_fmt0 "0x%016lx"
5677 +#define kdb_bfd_vma_fmt "0x%lx"
5678 +#define kdb_bfd_vma_fmt0 "0x%016lx"
5679 +#define kdb_elfw_addr_fmt "0x%lx"
5680 +#define kdb_elfw_addr_fmt0 "0x%016lx"
5681 +
5682 +static inline unsigned long
5683 +kdba_funcptr_value(void *fp)
5684 +{
5685 + /* ia64 function descriptor, first word is address of code */
5686 + return *(unsigned long *)fp;
5687 +}
5688 +
5689 +#endif /* !_ASM_KDB_H */
5690 --- /dev/null
5691 +++ b/arch/ia64/include/asm/kdb_break.h
5692 @@ -0,0 +1,24 @@
5693 +#ifndef _ASM_KDB_BREAK_H
5694 +#define _ASM_KDB_BREAK_H
5695 +
5696 +/*
5697 + * Kernel Debugger Architecture Dependent Global Headers
5698 + *
5699 + * This file is subject to the terms and conditions of the GNU General Public
5700 + * License. See the file "COPYING" in the main directory of this archive
5701 + * for more details.
5702 + *
5703 + * Copyright (c) 1999-2004 Silicon Graphics, Inc. All Rights Reserved.
5704 + */
5705 +
5706 +/*
5707 + * Break numbers are used by CONFIG_KDB_LOCK code. They need to be seperated
5708 + * from asm/kdb.h to let spinlock code build without pulling in all of the kdb
5709 + * headers.
5710 + */
5711 +
5712 +#define KDB_BREAK_BREAK 0x80100 /* kdb breakpoint in kernel */
5713 +#define KDB_BREAK_ENTER 0x80101 /* KDB_ENTER(), single event or monarch */
5714 +#define KDB_BREAK_ENTER_SLAVE 0x80102 /* KDB_ENTER_SLAVE(), concurrent slave events */
5715 +
5716 +#endif /* !_ASM_KDB_BREAK_H */
5717 --- /dev/null
5718 +++ b/arch/ia64/include/asm/kdbprivate.h
5719 @@ -0,0 +1,124 @@
5720 +#ifndef _ASM_KDBPRIVATE_H
5721 +#define _ASM_KDBPRIVATE_H
5722 +
5723 +/*
5724 + * Kernel Debugger Architecture Dependent Private Headers
5725 + *
5726 + * This file is subject to the terms and conditions of the GNU General Public
5727 + * License. See the file "COPYING" in the main directory of this archive
5728 + * for more details.
5729 + *
5730 + * Copyright (c) 1999-2004 Silicon Graphics, Inc. All Rights Reserved.
5731 + */
5732 +
5733 +/* Definition of an machine instruction.
5734 + * Takes care of VLIW processors like Itanium
5735 + */
5736 +
5737 +typedef struct {
5738 + unsigned long inst[2];
5739 +} kdb_machinst_t;
5740 +
5741 +/*
5742 + * KDB_MAXBPT describes the total number of breakpoints
5743 + * supported by this architecure.
5744 + */
5745 +#define KDB_MAXBPT 16
5746 +
5747 +/*
5748 + * KDB_MAXHARDBPT describes the total number of hardware
5749 + * breakpoint registers that exist.
5750 + */
5751 +#define KDB_MAXHARDBPT 4
5752 +
5753 +/*
5754 + * Platform specific environment entries
5755 + */
5756 +#define KDB_PLATFORM_ENV "IDMODE=ia64", "BYTESPERWORD=4", "IDCOUNT=8"
5757 +
5758 +/*
5759 + * Support for IA64 debug registers
5760 + */
5761 +typedef struct _kdbhard_bp {
5762 + kdb_machreg_t bph_reg; /* Register this breakpoint uses */
5763 +
5764 + unsigned int bph_free:1; /* Register available for use */
5765 + unsigned int bph_data:1; /* Data Access breakpoint */
5766 +
5767 + unsigned int bph_write:1; /* Write Data breakpoint */
5768 + unsigned int bph_mode:2; /* 0=inst, 1=write, 2=io, 3=read */
5769 + unsigned int bph_length:2; /* 0=1, 1=2, 2=BAD, 3=4 (bytes) */
5770 +} kdbhard_bp_t;
5771 +
5772 +#define getprsregs(regs) ((struct switch_stack *)regs -1)
5773 +
5774 +/* bkpt support using break inst instead of IBP reg */
5775 +
5776 +/*
5777 + * Define certain specific instructions
5778 + */
5779 +#define BREAK_INSTR (long)(KDB_BREAK_BREAK << (5+6))
5780 +#define INST_SLOT0_MASK (0x1ffffffffffL << 5)
5781 +
5782 +#define BKPTMODE_DATAR 3
5783 +#define BKPTMODE_IO 2
5784 +#define BKPTMODE_DATAW 1
5785 +#define BKPTMODE_INST 0
5786 +
5787 +/* Some of the fault registers needed by kdb but not passed with
5788 + * regs or switch stack.
5789 + */
5790 +typedef struct fault_regs {
5791 + unsigned long isr ;
5792 + unsigned long ifa ;
5793 + unsigned long iim ;
5794 + unsigned long itir ;
5795 +} fault_regs_t ;
5796 +
5797 +/*
5798 + * Support for setjmp/longjmp
5799 + */
5800 +
5801 +/* __jmp_buf definition copied from libc/sysdeps/unix/sysv/linux/ia64/bits/setjmp.h */
5802 +
5803 +#define _JBLEN 70
5804 +
5805 +typedef struct __kdb_jmp_buf {
5806 + unsigned long __jmp_buf[_JBLEN];
5807 +} kdb_jmp_buf __attribute__ ((aligned (16)));
5808 +
5809 +extern int kdba_setjmp(kdb_jmp_buf *);
5810 +extern void kdba_longjmp(kdb_jmp_buf *, int);
5811 +#define kdba_setjmp kdba_setjmp
5812 +
5813 +extern kdb_jmp_buf *kdbjmpbuf;
5814 +
5815 +/* Arch specific data saved for running processes */
5816 +
5817 +struct kdba_running_process {
5818 + struct switch_stack *sw;
5819 +};
5820 +
5821 +extern void kdba_save_running(struct kdba_running_process *, struct pt_regs *);
5822 +extern void kdba_unsave_running(struct kdba_running_process *, struct pt_regs *);
5823 +
5824 +/* kdba wrappers which want to save switch stack will call unw_init_running().
5825 + * That routine only takes a void* so pack the interrupt data into a structure.
5826 + */
5827 +
5828 +#include <linux/interrupt.h> /* for irqreturn_t */
5829 +
5830 +enum kdba_serial_console {
5831 + KDBA_SC_NONE = 0,
5832 + KDBA_SC_STANDARD,
5833 + KDBA_SC_SGI_L1,
5834 +};
5835 +
5836 +extern enum kdba_serial_console kdba_serial_console;
5837 +
5838 +#define KDB_RUNNING_PROCESS_ORIGINAL kdb_running_process_save
5839 +extern struct kdb_running_process *kdb_running_process_save; /* [NR_CPUS] */
5840 +
5841 +extern void kdba_wait_for_cpus(void);
5842 +
5843 +#endif /* !_ASM_KDBPRIVATE_H */
5844 --- a/arch/ia64/include/asm/kmap_types.h
5845 +++ b/arch/ia64/include/asm/kmap_types.h
5846 @@ -22,7 +22,8 @@ D(9) KM_IRQ0,
5847 D(10) KM_IRQ1,
5848 D(11) KM_SOFTIRQ0,
5849 D(12) KM_SOFTIRQ1,
5850 -D(13) KM_TYPE_NR
5851 +D(13) KM_KDB,
5852 +D(14) KM_TYPE_NR
5853 };
5854
5855 #undef D
5856 --- a/arch/ia64/include/asm/kregs.h
5857 +++ b/arch/ia64/include/asm/kregs.h
5858 @@ -72,7 +72,7 @@
5859 /* A mask of PSR bits that we generally don't want to inherit across a clone2() or an
5860 execve(). Only list flags here that need to be cleared/set for BOTH clone2() and
5861 execve(). */
5862 -#define IA64_PSR_BITS_TO_CLEAR (IA64_PSR_MFL | IA64_PSR_MFH | IA64_PSR_DB | IA64_PSR_LP | \
5863 +#define IA64_PSR_BITS_TO_CLEAR (IA64_PSR_MFL | IA64_PSR_MFH | IA64_PSR_LP | \
5864 IA64_PSR_TB | IA64_PSR_ID | IA64_PSR_DA | IA64_PSR_DD | \
5865 IA64_PSR_SS | IA64_PSR_ED | IA64_PSR_IA)
5866 #define IA64_PSR_BITS_TO_SET (IA64_PSR_DFH | IA64_PSR_SP)
5867 --- /dev/null
5868 +++ b/arch/ia64/kdb/ChangeLog
5869 @@ -0,0 +1,1085 @@
5870 +2008-09-30 Jay Lan <jlan@sgi.com>
5871 +
5872 + * kdb-v4.4-2.6.27-rc8-ia64-1.
5873 +
5874 +2008-09-22 Jay Lan <jlan@sgi.com>
5875 +
5876 + * kdb-v4.4-2.6.27-rc7-ia64-1.
5877 +
5878 +2008-09-03 Jay Lan <jlan@sgi.com>
5879 +
5880 + * kdb-v4.4-2.6.27-rc5-ia64-1.
5881 +
5882 +2008-08-19 Jay Lan <jlan@sgi.com>
5883 +
5884 + * kdb-v4.4-2.6.27-rc3-ia64-1.
5885 +
5886 +2008-08-15 Jay Lan <jlan@sgi.com>
5887 +
5888 + * Fix a problem that slave cpus panic'ed during NMI.
5889 + Jay Lan <jlan@sgi.com>
5890 + * kdb-v4.4-2.6.27-rc2-ia64-2.1.
5891 +
5892 +2008-08-14 Jay Lan <jlan@sgi.com>
5893 +
5894 + * Support 'kdump' command to take a kdump vmcore from KDB,
5895 + Dan Aloni (da-x@monatomic.org),
5896 + Jason Xiao (jidong.xiao@gmail.com),
5897 + Jay Lan (jlan@sgi.com)
5898 + * kdb-v4.4-2.6.27-rc2-ia64-2.
5899 +
5900 +2008-08-06 Jay Lan <jlan@sgi.com>
5901 +
5902 + * Fix up the NULL pointer deference issue in ohci_kdb_poll_char,
5903 + Jason Xiao <jidong.xiao@gmail.com>
5904 + * kdb-v4.4-2.6.27-rc2-ia64-1.
5905 +
5906 +2008-07-18 Jay Lan <jlan@sgi.com>
5907 +
5908 + * support Hardware Breakpoint (bph/bpha) commands
5909 + IA64: Greg Banks <gnb@sgi.com>
5910 + X86: Konstantin Baydarov <kbaidarov@ru.mvista.com>
5911 + * kdb-v4.4-2.6.26-ia64-2.
5912 +
5913 +2008-07-14 Jay Lan <jlan@sgi.com>
5914 +
5915 + * kdb-v4.4-2.6.26-ia64-1.
5916 +
5917 +2008-07-11 Jay Lan <jlan@sgi.com>
5918 +
5919 + * New commands and some fixups and enhancements,
5920 + Joe Korty <joe.korty@ccur.com>
5921 + John Blackwood <john.blackwood@ccur.com>
5922 + Jim Houston <jim.houston@ccur.com>
5923 + - Use the non-sleeping copy_from_user_atomic.
5924 + - Enhance kdb_cmderror diagnostic output.
5925 + - Expand the KDB 'duplicate command' error message.
5926 + - Touch NMI watchdog in various KDB busy-loops.
5927 + - Support IMB HS20 Blade 8843 platform.
5928 + - Display exactly which cpus needed an NMI to get them into kdb.
5929 + - Better document that kdb's 'ps A' command can be used to show
5930 + _all_ processes and threads
5931 + - Suppress KDB boottime INFO messages if quiet boot.
5932 + - Add a KDB breakpoint to the OOPs path.
5933 + - Add CONFIG_DISCONTIGMEM support to kdbm_memmap.
5934 + - Extend the KDB task command to handle CONFIG_NUMA fields.
5935 + - Extend the KDB vm command to support NUMA stuff.
5936 + - Create the KDB mempolicy command.
5937 + - Create a pgdat command for KDB.
5938 + - Fix a hang on boot on some i386 systems.
5939 + * kdb-v4.4-2.6.26-rc9-ia64-1.
5940 +
5941 +2008-06-30 Jay Lan <jlan@sgi.com>
5942 +
5943 + * kdb-v4.4-2.6.26-rc8-ia64-1.
5944 +
5945 +2008-06-25 Jay Lan <jlan@sgi.com>
5946 +
5947 + * kdb-v4.4-2.6.26-rc7-ia64-1.
5948 +
5949 +2008-06-06 Jay Lan <jlan@sgi.com>
5950 +
5951 + * kdb-v4.4-2.6.26-rc5-ia64-1.
5952 +
5953 +2008-05-30 Jay Lan <jlan@sgi.com>
5954 +
5955 + * kdb-v4.4-2.6.26-rc4-ia64-1.
5956 +
5957 +2008-05-20 Jay Lan <jlan@sgi.com>
5958 +
5959 + * kdb-v4.4-2.6.26-rc3-ia64-1.
5960 +
5961 +2008-05-13 Jay Lan <jlan@sgi.com>
5962 +
5963 + * XPC support removed from KDB due to XPC changes to 2.6.26-rc1.
5964 + * kdb-v4.4-2.6.26-rc1-ia64-1.
5965 +
5966 +2008-04-17 Jay Lan <jlan@sgi.com>
5967 +
5968 + * kdb-v4.4-2.6.25-ia64-1.
5969 +
5970 +2008-03-16 Jay Lan <jlan@sgi.com>
5971 +
5972 + * kdb-v4.4-2.6.25-rc6-ia64-1.
5973 +
5974 +2008-03-03 Jay Lan <jlan@sgi.com>
5975 +
5976 + * kdb-v4.4-2.6.25-rc3-ia64-1.
5977 +
5978 +2008-02-26 Jay Lan <jlan@sgi.com>
5979 +
5980 + * kdb-v4.4-2.6.25-rc2-ia64-1.
5981 +
5982 +2008-02-19 Jay Lan <jlan@sgi.com>
5983 +
5984 + * kdb-v4.4-2.6.25-rc1-ia64-1.
5985 +
5986 +2008-02-01 Jay Lan <jlan@sgi.com>
5987 +
5988 + * Backed out USB UHCI support since it caused dropped characters and
5989 + broke OHCI.
5990 + * Restored "archkdbcommon" commands for x86. It was lost at the x86
5991 + merge.
5992 + * Detecting if the HC was "busy", Aaron Young <ayoung@sgi.com>
5993 + * kdb-v4.4-2.6.24-ia64-2.
5994 +
5995 +2008-01-29 Jay Lan <jlan@sgi.com>
5996 +
5997 + * kdb-v4.4-2.6.24-ia64-1.
5998 +
5999 +2008-01-22 Jay Lan <jlan@sgi.com>
6000 +
6001 + * USB UHCI kdb support, Konstantin Baydarov <kbaidarov@ru.mvista.com>
6002 + * kdb-v4.4-2.6.24-rc8-ia64-3.
6003 +
6004 +2008-01-18 Jay Lan <jlan@sgi.com>
6005 +
6006 + * USB EHCI kdb support, Aaron Young <ayoung@sgi.com>
6007 + * kdb-v4.4-2.6.24-rc8-ia64-2.
6008 +
6009 +2008-01-18 Jay Lan <jlan@sgi.com>
6010 +
6011 + * kdb-v4.4-2.6.24-rc8-ia64-1.
6012 +
6013 +2008-01-07 Jay Lan <jlan@sgi.com>
6014 +
6015 + * kdb-v4.4-2.6.24-rc7-ia64-1.
6016 +
6017 +2007-12-21 Jay Lan <jlan@sgi.com>
6018 +
6019 + * kdb v4.4-2.6.24-rc6-ia64-1.
6020 +
6021 +2007-12-12 Jay Lan <jlan@sgi.com>
6022 +
6023 + * kdb v4.4-2.6.24-rc5-ia64-1.
6024 +
6025 +2007-12-05 Jay Lan <jlan@sgi.com>
6026 +
6027 + * Fixed a 'sysctl table check failed' problem.
6028 + * kdb v4.4-2.6.24-rc4-ia64-1.
6029 +
6030 +2007-11-26 Jay Lan <jlan@sgi.com>
6031 +
6032 + * kdb v4.4-2.6.24-rc3-ia64-1.
6033 +
6034 +2007-11-13 Jay Lan <jlan@sgi.com>
6035 +
6036 + * Back ported "New KDB USB interface" from Aaron Young in
6037 + v4.4-2.6.23-ia64-2 to 2.6.24 kdb patchset.
6038 + * kdb v4.4-2.6.24-rc2-ia64-2.
6039 +
6040 +2007-11-12 Jay Lan <jlan@sgi.com>
6041 +
6042 + * kdb v4.4-2.6.24-rc2-ia64-1.
6043 +
6044 +2007-11-09 Jay Lan <jlan@sgi.com>
6045 +
6046 + * Rebase to 2.6.24-rc1 kernel
6047 + * - merged kdb-v4.4-2.6.23-i386-1 and kdb-v4.4-2.6.23-x86_64-1
6048 + * into kdb-v4.4-2.6.24-rc1-x86-1
6049 + * - Fields "done", "sglist_len", and "pid" are removed from
6050 + * struct scsi_cmnd. Thus, these fields are no longer displayed
6051 + * on "sc" command.
6052 + * kdb v4.4-2.6.24-rc1-ia64-1.
6053 +
6054 +2007-11-08 Jay Lan <jlan@sgi.com>
6055 +
6056 + * New KDB USB interface, Aaron Young <ayoung@sgi.com>
6057 + * 1. This patch allows KDB to work with any Host Contoller driver
6058 + * and call the correct HC driver poll routine (as long as the
6059 + * HC driver provides a .kdb_poll_char routine via it's
6060 + * associated hc_driver struct).
6061 + * 2. Hotplugged keyboards are now recognized by KDB.
6062 + * 3. Currently KDB can only make use of 1 USB type keyboard.
6063 + * New code can handle up to 8 attached keyboards - input is
6064 + * multiplexed from all of them while in kdb.
6065 + * kdb v4.4-2.6.23-ia64-2.
6066 +
6067 +2007-10-24 Jay Lan <jlan@sgi.com>
6068 +
6069 + * kdb v4.4-2.6.23-ia64-1.
6070 +
6071 +2007-09-26 Jay Lan <jlan@sgi.com>
6072 +
6073 + * kdb v4.4-2.6.23-rc8-ia64-1.
6074 +
6075 +2007-09-21 Jay Lan <jlan@sgi.com>
6076 +
6077 + * kdb v4.4-2.6.23-rc7-ia64-1.
6078 +
6079 +2007-09-19 Jay Lan <jlan@sgi.com>
6080 +
6081 + * Get into KDB successfully if multiple cpus are in MCA. <rja@sgi.com>
6082 + * kdb v4.4-2.6.23-rc6-ia64-2.
6083 +
6084 +2007-09-12 Jay Lan <jlan@sgi.com>
6085 +
6086 + * kdb v4.4-2.6.23-rc6-ia64-1.
6087 +
6088 +2007-09-06 Jay Lan <jlan@sgi.com>
6089 +
6090 + * kdb v4.4-2.6.23-rc5-ia64-1.
6091 +
6092 +2007-08-30 Keith Owens <kaos@sgi.com>
6093 +
6094 + * New i386/x86_64 backtrace requires that kdb_save_running() does not
6095 + exit until after kdb_main_loop() has completed.
6096 + * kdb v4.4-2.6.23-rc4-ia64-2.
6097 +
6098 +2007-08-30 Jay Lan <jlan@sgi.com>
6099 +
6100 + * kdb v4.4-2.6.23-rc4-ia64-1.
6101 +
6102 +2007-08-24 Keith Owens <kaos@sgi.com>
6103 +
6104 + * kdb v4.4-2.6.23-rc3-ia64-1.
6105 +
6106 +2007-08-07 Jay Lan <jlan@sgi.com>
6107 +
6108 + * kdb v4.4-2.6.23-rc2-ia64-1.
6109 +
6110 +2007-07-30 Keith Owens <kaos@sgi.com>
6111 +
6112 + * kdb v4.4-2.6.23-rc1-ia64-1.
6113 +
6114 +2007-07-09 Keith Owens <kaos@sgi.com>
6115 +
6116 + * kdb v4.4-2.6.22-ia64-1.
6117 +
6118 +2007-07-02 Keith Owens <kaos@sgi.com>
6119 +
6120 + * kdb v4.4-2.6.22-rc7-ia64-1.
6121 +
6122 +2007-06-20 Keith Owens <kaos@sgi.com>
6123 +
6124 + * kdb v4.4-2.6.22-rc5-ia64-1.
6125 +
6126 +2007-06-08 Keith Owens <kaos@sgi.com>
6127 +
6128 + * kdb v4.4-2.6.22-rc4-ia64-1.
6129 +
6130 +2007-05-28 Keith Owens <kaos@sgi.com>
6131 +
6132 + * kdb v4.4-2.6.22-rc3-ia64-1.
6133 +
6134 +2007-05-22 Keith Owens <kaos@sgi.com>
6135 +
6136 + * kdb v4.4-2.6.22-rc2-ia64-1.
6137 +
6138 +2007-05-22 Keith Owens <kaos@sgi.com>
6139 +
6140 + * kdb v4.4-2.6.22-rc1-ia64-1.
6141 +
6142 +2007-04-29 Keith Owens <kaos@sgi.com>
6143 +
6144 + * kdb v4.4-2.6.21-ia64-1.
6145 +
6146 +2007-04-16 Keith Owens <kaos@sgi.com>
6147 +
6148 + * kdb v4.4-2.6.21-rc7-ia64-1.
6149 +
6150 +2007-04-10 Keith Owens <kaos@sgi.com>
6151 +
6152 + * kdb v4.4-2.6.21-rc6-ia64-1.
6153 +
6154 +2007-04-02 Keith Owens <kaos@sgi.com>
6155 +
6156 + * kdb v4.4-2.6.21-rc5-ia64-1.
6157 +
6158 +2007-03-19 Keith Owens <kaos@sgi.com>
6159 +
6160 + * kdb v4.4-2.6.21-rc4-ia64-1.
6161 +
6162 +2007-03-14 Keith Owens <kaos@sgi.com>
6163 +
6164 + * kdb v4.4-2.6.21-rc3-ia64-1.
6165 +
6166 +2007-03-14 Keith Owens <kaos@sgi.com>
6167 +
6168 + * kdb v4.4-2.6.21-rc2-ia64-1.
6169 +
6170 +2007-03-01 Keith Owens <kaos@sgi.com>
6171 +
6172 + * kdb v4.4-2.6.21-rc1-ia64-1.
6173 +
6174 +2007-03-01 Keith Owens <kaos@sgi.com>
6175 +
6176 + * Remove sparse warnings.
6177 + * kdb v4.4-2.6.20-ia64-3.
6178 +
6179 +2007-02-16 Keith Owens <kaos@sgi.com>
6180 +
6181 + * Initialise variable bits of struct disassemble_info each time.
6182 + * kdb v4.4-2.6.20-ia64-2.
6183 +
6184 +2007-02-06 Keith Owens <kaos@sgi.com>
6185 +
6186 + * kdb v4.4-2.6.20-ia64-1.
6187 +
6188 +2007-02-01 Keith Owens <kaos@sgi.com>
6189 +
6190 + * kdb v4.4-2.6.20-rc7-ia64-1.
6191 +
6192 +2007-01-08 Keith Owens <kaos@sgi.com>
6193 +
6194 + * Detect calls via PLT and decode the target address.
6195 + * kdb v4.4-2.6.20-rc4-ia64-2.
6196 +
6197 +2007-01-08 Keith Owens <kaos@sgi.com>
6198 +
6199 + * kdb v4.4-2.6.20-rc4-ia64-1.
6200 +
6201 +2007-01-02 Keith Owens <kaos@sgi.com>
6202 +
6203 + * kdb v4.4-2.6.20-rc3-ia64-1.
6204 +
6205 +2006-12-20 Keith Owens <kaos@sgi.com>
6206 +
6207 + * kdb v4.4-2.6.20-rc1-ia64-1.
6208 +
6209 +2006-12-07 Keith Owens <kaos@sgi.com>
6210 +
6211 + * Export kdba_dumpregs.
6212 + * kdb v4.4-2.6.19-ia64-2.
6213 +
6214 +2006-11-30 Keith Owens <kaos@sgi.com>
6215 +
6216 + * kdb v4.4-2.6.19-ia64-1.
6217 +
6218 +2006-11-27 Keith Owens <kaos@sgi.com>
6219 +
6220 + * Only use VT keyboard if the command line allows it and ACPI indicates
6221 + that there is an i8042.
6222 + * kdb v4.4-2.6.19-rc6-ia64-2.
6223 +
6224 +2006-11-20 Keith Owens <kaos@sgi.com>
6225 +
6226 + * kdb v4.4-2.6.19-rc6-ia64-1.
6227 +
6228 +2006-11-09 Keith Owens <kaos@sgi.com>
6229 +
6230 + * Only use VT console if the command line allows it.
6231 + * kdb v4.4-2.6.19-rc5-ia64-2.
6232 +
6233 +2006-11-08 Keith Owens <kaos@sgi.com>
6234 +
6235 + * kdb v4.4-2.6.19-rc5-ia64-1.
6236 +
6237 +2006-11-01 Keith Owens <kaos@sgi.com>
6238 +
6239 + * kdb v4.4-2.6.19-rc4-ia64-1.
6240 +
6241 +2006-10-24 Keith Owens <kaos@sgi.com>
6242 +
6243 + * kdb v4.4-2.6.19-rc3-ia64-1.
6244 +
6245 +2006-10-24 Keith Owens <kaos@sgi.com>
6246 +
6247 + * Remove redundant regs and envp parameters.
6248 + * kdb v4.4-2.6.19-rc2-ia64-2.
6249 +
6250 +2006-10-18 Keith Owens <kaos@sgi.com>
6251 +
6252 + * kdb v4.4-2.6.19-rc2-ia64-1.
6253 +
6254 +2006-10-09 Keith Owens <kaos@sgi.com>
6255 +
6256 + * kdb v4.4-2.6.19-rc1-ia64-1.
6257 +
6258 +2006-10-06 Keith Owens <kaos@sgi.com>
6259 +
6260 + * Remove #include <linux/config.h>
6261 + * kdb v4.4-2.6.18-ia64-2.
6262 +
6263 +2006-09-20 Keith Owens <kaos@sgi.com>
6264 +
6265 + * kdb v4.4-2.6.18-ia64-1.
6266 +
6267 +2006-09-15 Keith Owens <kaos@sgi.com>
6268 +
6269 + * kdb v4.4-2.6.18-rc7-ia64-1.
6270 +
6271 +2006-08-29 Keith Owens <kaos@sgi.com>
6272 +
6273 + * Rewrite all backtrace code.
6274 + * kdb v4.4-2.6.18-rc5-ia64-2.
6275 +
6276 +2006-08-28 Keith Owens <kaos@sgi.com>
6277 +
6278 + * kdb v4.4-2.6.18-rc5-ia64-1.
6279 +
6280 +2006-08-08 Keith Owens <kaos@sgi.com>
6281 +
6282 + * kdb v4.4-2.6.18-rc4-ia64-1.
6283 +
6284 +2006-08-04 Keith Owens <kaos@sgi.com>
6285 +
6286 + * kdb v4.4-2.6.18-rc3-ia64-1.
6287 +
6288 +2006-07-18 Keith Owens <kaos@sgi.com>
6289 +
6290 + * kdb v4.4-2.6.18-rc2-ia64-1.
6291 +
6292 +2006-07-12 Keith Owens <kaos@sgi.com>
6293 +
6294 + * Remove dead KDB_REASON codes.
6295 + * sparse cleanups.
6296 + * kdb v4.4-2.6.18-rc1-ia64-2.
6297 +
6298 +2006-07-07 Keith Owens <kaos@sgi.com>
6299 +
6300 + * kdb v4.4-2.6.18-rc1-ia64-1.
6301 +
6302 +2006-07-04 Keith Owens <kaos@sgi.com>
6303 +
6304 + * Delete kdba_enable_lbr, kdba_disable_lbr, kdba_print_lbr,
6305 + page_fault_mca. Only ever implemented on x86, difficult to maintain
6306 + and rarely used in the field.
6307 + * Replace #ifdef KDB_HAVE_LONGJMP with #ifdef kdba_setjmp.
6308 + * kdb v4.4-2.6.17-ia64-2.
6309 +
6310 +2006-06-19 Keith Owens <kaos@sgi.com>
6311 +
6312 + * kdb v4.4-2.6.17-ia64-1.
6313 +
6314 +2006-05-25 Keith Owens <kaos@sgi.com>
6315 +
6316 + * kdb v4.4-2.6.17-rc5-ia64-1.
6317 +
6318 +2006-05-15 Keith Owens <kaos@sgi.com>
6319 +
6320 + * Refresh bfd related files from binutils 2.16.91.0.2.
6321 + * kdb v4.4-2.6.17-rc4-ia64-2.
6322 +
6323 +2006-05-12 Keith Owens <kaos@sgi.com>
6324 +
6325 + * kdb v4.4-2.6.17-rc4-ia64-1.
6326 +
6327 +2006-04-28 Keith Owens <kaos@sgi.com>
6328 +
6329 + * kdb v4.4-2.6.17-rc3-ia64-1.
6330 +
6331 +2006-04-22 Keith Owens <kaos@sgi.com>
6332 +
6333 + * kdb v4.4-2.6.17-rc2-ia64-1.
6334 +
6335 +2006-04-11 Keith Owens <kaos@sgi.com>
6336 +
6337 + * kdb v4.4-2.6.17-rc1-ia64-1.
6338 +
6339 +2006-03-30 Keith Owens <kaos@sgi.com>
6340 +
6341 + * Change CONFIG_LKCD to CONFIG_LKCD_DUMP.
6342 + * kdb v4.4-2.6.16-ia64-3.
6343 +
6344 +2006-03-24 Keith Owens <kaos@sgi.com>
6345 +
6346 + * Use INIT to interrupt cpus that do not respond to a normal kdb IPI.
6347 + * Remove KDBA_MCA_TRACE from arch/ia64/kernel/mca.c.
6348 + * kdb v4.4-2.6.16-ia64-2.
6349 +
6350 +2006-03-21 Keith Owens <kaos@sgi.com>
6351 +
6352 + * kdb v4.4-2.6.16-ia64-1.
6353 +
6354 +2006-03-14 Nathan Scott <nathans@sgi.com>
6355 +
6356 + * kdb v4.4-2.6.16-rc6-ia64-1.
6357 +
6358 +2006-02-28 Nathan Scott <nathans@sgi.com>
6359 +
6360 + * kdb v4.4-2.6.16-rc5-ia64-1.
6361 +
6362 +2006-02-20 Nathan Scott <nathans@sgi.com>
6363 +
6364 + * kdb v4.4-2.6.16-rc4-ia64-1.
6365 +
6366 +2006-02-07 Keith Owens <kaos@sgi.com>
6367 +
6368 + * Change kdb_running_process_save from a static array to a pointer.
6369 + gcc 4.0 objects to forward declarations for arrays with an incomplete
6370 + type.
6371 + * kdb v4.4-2.6.16-rc2-ia64-3.
6372 +
6373 +2006-02-06 Keith Owens <kaos@sgi.com>
6374 +
6375 + * Change CONFIG_CRASH_DUMP to CONFIG_LKCD.
6376 + * kdb v4.4-2.6.16-rc2-ia64-2.
6377 +
6378 +2006-02-06 Keith Owens <kaos@sgi.com>
6379 +
6380 + * kdb v4.4-2.6.16-rc2-ia64-1.
6381 +
6382 +2006-02-01 Keith Owens <kaos@sgi.com>
6383 +
6384 + * Handlers: check that the task is in kernel space before looking at
6385 + the thread_info bits.
6386 + * Expose kdb_running_process_save[] so 'pid R' can get the original
6387 + process, even when the MCA/INIT handlers are being used.
6388 + * kdb v4.4-2.6.16-rc1-ia64-3.
6389 +
6390 +2006-01-19 Keith Owens <kaos@sgi.com>
6391 +
6392 + * Add back some kdb changes to xpc_main that were lost due to a patch
6393 + conflict.
6394 + * kdb v4.4-2.6.16-rc1-ia64-2.
6395 +
6396 +2006-01-18 Keith Owens <kaos@sgi.com>
6397 +
6398 + * kdb v4.4-2.6.16-rc1-ia64-1.
6399 +
6400 +2006-01-10 Keith Owens <kaos@sgi.com>
6401 +
6402 + * Build kdba_pod for generic as well as sn2 kernels and test at run
6403 + time if the platform is sn2.
6404 + * kdb v4.4-2.6.15-ia64-3.
6405 +
6406 +2006-01-08 Keith Owens <kaos@sgi.com>
6407 +
6408 + * Convert xpc to use DIE_KDEBUG_ENTER and DIE_KDEBUG_LEAVE.
6409 + * Add debug option for xpc.
6410 + * break.b always sets a debug trap number of 0 , so pass that to kdb as
6411 + well as the normal kdb traaps.
6412 + * kdb v4.4-2.6.15-ia64-2.
6413 +
6414 +2006-01-04 Keith Owens <kaos@sgi.com>
6415 +
6416 + * Remove some inlines and the last vestige of CONFIG_NUMA_REPLICATE.
6417 + * Read the keyboard acknowledgment after sending a character. SuSE
6418 + Bugzilla 60240.
6419 + * kdb v4.4-2.6.15-ia64-1.
6420 +
6421 +2005-12-25 Keith Owens <kaos@sgi.com>
6422 +
6423 + * kdb v4.4-2.6.15-rc7-ia64-1.
6424 +
6425 +2005-12-20 Keith Owens <kaos@sgi.com>
6426 +
6427 + * kdb v4.4-2.6.15-rc6-ia64-1.
6428 +
6429 +2005-12-06 Keith Owens <kaos@sgi.com>
6430 +
6431 + * Use RECOVERY flag in MCA handler.
6432 + * kdb v4.4-2.6.15-rc5-ia64-2.
6433 +
6434 +2005-12-05 Keith Owens <kaos@sgi.com>
6435 +
6436 + * kdb v4.4-2.6.15-rc5-ia64-1.
6437 +
6438 +2005-12-02 Keith Owens <kaos@sgi.com>
6439 +
6440 + * Reinstate hook for debug trap, the patch chunk was accidentally
6441 + dropped in 2.6.15-rc1.
6442 + * kdb v4.4-2.6.15-rc4-ia64-1.
6443 +
6444 +2005-11-30 Keith Owens <kaos@sgi.com>
6445 +
6446 + * kdb v4.4-2.6.15-rc3-ia64-1.
6447 +
6448 +2005-11-21 Keith Owens <kaos@sgi.com>
6449 +
6450 + * kdb v4.4-2.6.15-rc2-ia64-1.
6451 +
6452 +2005-11-15 Keith Owens <kaos@sgi.com>
6453 +
6454 + * kdb v4.4-2.6.15-rc1-ia64-1.
6455 +
6456 +2005-10-28 Keith Owens <kaos@sgi.com>
6457 +
6458 + * kdb v4.4-2.6.14-ia64-1.
6459 +
6460 +2005-10-21 Keith Owens <kaos@sgi.com>
6461 +
6462 + * kdb v4.4-2.6.14-rc5-ia64-1.
6463 +
6464 +2005-10-11 Keith Owens <kaos@sgi.com>
6465 +
6466 + * Handle removal of USB keyboard. Aaron Young, SGI
6467 + * kdb v4.4-2.6.14-rc4-ia64-1.
6468 +
6469 +2005-10-04 Keith Owens <kaos@sgi.com>
6470 +
6471 + * kdb v4.4-2.6.14-rc3-ia64-1.
6472 +
6473 +2005-09-21 Keith Owens <kaos@sgi.com>
6474 +
6475 + * Support kdb_current_task in register display and modify commands.
6476 + * kdb v4.4-2.6.14-rc2-ia64-1.
6477 +
6478 +2005-09-20 Keith Owens <kaos@sgi.com>
6479 +
6480 + * Coexist with kprobes.
6481 + * Coexist with MCA/INIT rewrite.
6482 + * Add KDB_ENTER_SLAVE to handle concurrent entry to kdb from multiple
6483 + cpus.
6484 + * Add handlers command to control whether the MCA/INIT task or the
6485 + original task is displayed.
6486 + * Namespace clean up, remove unused kdba_sw_interrupt.
6487 + * kdb v4.4-2.6.14-rc1-ia64-1.
6488 +
6489 +2005-08-29 Keith Owens <kaos@sgi.com>
6490 +
6491 + * kdb v4.4-2.6.13-ia64-1.
6492 +
6493 +2005-08-24 Keith Owens <kaos@sgi.com>
6494 +
6495 + * kdb v4.4-2.6.13-rc7-ia64-1.
6496 +
6497 +2005-08-08 Keith Owens <kaos@sgi.com>
6498 +
6499 + * Add minstate command.
6500 + * kdb v4.4-2.6.13-rc6-ia64-1.
6501 +
6502 +2005-08-02 Keith Owens <kaos@sgi.com>
6503 +
6504 + * Replace hard coded kdb declarations with #include <asm/sections>.
6505 + * kdb v4.4-2.6.13-rc5-ia64-1.
6506 +
6507 +2005-07-30 Keith Owens <kaos@sgi.com>
6508 +
6509 + * kdb v4.4-2.6.13-rc4-ia64-1.
6510 +
6511 +2005-07-22 Keith Owens <kaos@sgi.com>
6512 +
6513 + * Handle INIT delivered while in physical mode.
6514 + * kdb v4.4-2.6.13-rc3-ia64-2.
6515 +
6516 +2005-07-19 Keith Owens <kaos@sgi.com>
6517 +
6518 + * Add support for USB keyboard (OHCI only). Aaron Young, SGI.
6519 + * kdb v4.4-2.6.13-rc3-ia64-1.
6520 +
6521 +2005-07-08 Keith Owens <kaos@sgi.com>
6522 +
6523 + * kdb v4.4-2.6.13-rc2-ia64-1.
6524 +
6525 +2005-07-01 Keith Owens <kaos@sgi.com>
6526 +
6527 + * kdb v4.4-2.6.13-rc1-ia64-1.
6528 +
6529 +2005-06-18 Keith Owens <kaos@sgi.com>
6530 +
6531 + * Standard IA64 code now works around break.b setting cr.iim to 0
6532 + instead of the break number. Remove the kdb workaround.
6533 + * kdb v4.4-2.6.12-ia64-1.
6534 +
6535 +2005-06-08 Keith Owens <kaos@sgi.com>
6536 +
6537 + * kdb v4.4-2.6.12-rc6-ia64-1.
6538 +
6539 +2005-05-25 Keith Owens <kaos@sgi.com>
6540 +
6541 + * kdb v4.4-2.6.12-rc5-ia64-1.
6542 +
6543 +2005-05-24 Keith Owens <kaos@sgi.com>
6544 +
6545 + * break.b sets cr.iim to 0 instead of the break number. Deal with it.
6546 + * kdb v4.4-2.6.12-rc4-ia64-3.
6547 +
6548 +2005-05-14 Keith Owens <kaos@sgi.com>
6549 +
6550 + * Correct MCA path after calling kdba_mca_bspstore_fixup().
6551 + Mark Larson, SGI.
6552 + * Tell the user that MCA/INIT is recoverable so kdb is not entered.
6553 + * kdb v4.4-2.6.12-rc4-ia64-2.
6554 +
6555 +2005-05-08 Keith Owens <kaos@sgi.com>
6556 +
6557 + * kdb v4.4-2.6.12-rc4-ia64-1.
6558 +
6559 +2005-04-21 Keith Owens <kaos@sgi.com>
6560 +
6561 + * kdb v4.4-2.6.12-rc3-ia64-1.
6562 +
6563 +2005-04-06 Keith Owens <kaos@sgi.com>
6564 +
6565 + * kdb v4.4-2.6.12-rc2-ia64-1.
6566 +
6567 +2005-04-04 Keith Owens <kaos@sgi.com>
6568 +
6569 + * More tweaks to cope with invalid old bspstore in MCA handler.
6570 + * kdb v4.4-2.6.12-rc1-ia64-2.
6571 +
6572 +2005-03-29 Keith Owens <kaos@sgi.com>
6573 +
6574 + * Replace __copy_to_user with __copy_to_user_inatomic.
6575 + * MCA handler, do not use old_bspstore if it is in region 4 or below.
6576 + * kdb v4.4-2.6.12-rc1-ia64-1.
6577 +
6578 +2005-03-08 Keith Owens <kaos@sgi.com>
6579 +
6580 + * Coexistence patches for lkcd. Jason Uhlenkott, SGI.
6581 + * kdb v4.4-2.6.11-ia64-2.
6582 +
6583 +2005-03-03 Keith Owens <kaos@sgi.com>
6584 +
6585 + * kdb-v4.4-2.6.11-ia64-1.
6586 +
6587 +2005-02-14 Keith Owens <kaos@sgi.com>
6588 +
6589 + * kdb-v4.4-2.6.11-rc4-ia64-1.
6590 +
6591 +2005-02-08 Keith Owens <kaos@sgi.com>
6592 +
6593 + * kdb-v4.4-2.6.11-rc3-bk4-ia64-1.
6594 +
6595 +2005-02-03 Keith Owens <kaos@sgi.com>
6596 +
6597 + * kdb-v4.4-2.6.11-rc3-ia64-1.
6598 +
6599 +2005-01-27 Keith Owens <kaos@sgi.com>
6600 +
6601 + * kdb-v4.4-2.6.11-rc2-ia64-1.
6602 +
6603 +2005-01-20 Keith Owens <kaos@sgi.com>
6604 +
6605 + * MCA and INIT stacks moved to per-cpu area.
6606 + * kdb-v4.4-2.6.11-rc1-bk7-ia64-1.
6607 +
6608 +2005-01-12 Keith Owens <kaos@sgi.com>
6609 +
6610 + * ia64_spinlock_contention_pre3_4_end is in base kernel, remove from kdb.
6611 + * Use last ditch allocator if unwind cannot allocate memory.
6612 + * kdb-v4.4-2.6.11-rc1-ia64-1.
6613 +
6614 +2004-12-25 Keith Owens <kaos@sgi.com>
6615 +
6616 + * Add cpuinfo command.
6617 + * kdb-v4.4-2.6.10-ia64-1.
6618 +
6619 +2004-12-07 Keith Owens <kaos@sgi.com>
6620 +
6621 + * Clean up error path in kdba_mca_init.
6622 + * kdb-v4.4-2.6.10-rc3-ia64-1.
6623 +
6624 +2004-11-15 Keith Owens <kaos@sgi.com>
6625 +
6626 + * kdb-v4.4-2.6.10-rc2-ia64-1.
6627 +
6628 +2004-10-29 Keith Owens <kaos@sgi.com>
6629 +
6630 + * kdb-v4.4-2.6.10-rc1-ia64-1.
6631 +
6632 +2004-10-19 Keith Owens <kaos@sgi.com>
6633 +
6634 + * kdb-v4.4-2.6.9-ia64-1.
6635 +
6636 +2004-10-12 Keith Owens <kaos@sgi.com>
6637 +
6638 + * kdb-v4.4-2.6.9-rc4-ia64-1.
6639 +
6640 +2004-10-01 Keith Owens <kaos@sgi.com>
6641 +
6642 + * kdb-v4.4-2.6.9-rc3-ia64-1.
6643 +
6644 +2004-09-30 Keith Owens <kaos@sgi.com>
6645 +
6646 + * Add stackdepth command.
6647 + * kdb-v4.4-2.6.9-rc2-ia64-3.
6648 +
6649 +2004-09-16 Keith Owens <kaos@sgi.com>
6650 +
6651 + * Fixes for current in region 5 instead of 7 (idle task on cpu 0).
6652 + * kdb-v4.4-2.6.9-rc2-ia64-2.
6653 +
6654 +2004-09-14 Keith Owens <kaos@sgi.com>
6655 +
6656 + * kdb-v4.4-2.6.9-rc2-ia64-1.
6657 +
6658 +2004-08-27 Keith Owens <kaos@sgi.com>
6659 +
6660 + * kdb-v4.4-2.6.9-rc1-ia64-1.
6661 +
6662 +2004-08-14 Keith Owens <kaos@sgi.com>
6663 +
6664 + * kdb-v4.4-2.6.8-ia64-1.
6665 +
6666 +2004-08-12 Keith Owens <kaos@sgi.com>
6667 +
6668 + * kdb-v4.4-2.6.8-rc4-ia64-1.
6669 +
6670 +2004-08-04 Keith Owens <kaos@sgi.com>
6671 +
6672 + * kdb-v4.4-2.6.8-rc3-ia64-1.
6673 +
6674 +2004-07-18 Keith Owens <kaos@sgi.com>
6675 +
6676 + * New config name for SN serial console.
6677 + * kdb-v4.4-2.6.8-rc2-ia64-1.
6678 +
6679 +2004-07-12 Keith Owens <kaos@sgi.com>
6680 +
6681 + * kdb-v4.4-2.6.8-rc1-ia64-1.
6682 +
6683 +2004-06-30 Keith Owens <kaos@sgi.com>
6684 +
6685 + * kdb-v4.4-2.6.7-ia64-040629-1.
6686 +
6687 +2004-06-16 Keith Owens <kaos@sgi.com>
6688 +
6689 + * Coexist with 2.6.7-ia64-040619.
6690 + * kdb-v4.4-2.6.7-ia64-040619-1.
6691 +
6692 +2004-06-16 Keith Owens <kaos@sgi.com>
6693 +
6694 + * kdb v4.4-2.6.7-ia64-1.
6695 +
6696 +2004-06-10 Keith Owens <kaos@sgi.com>
6697 +
6698 + * kdb v4.4-2.6.7-rc3-ia64-1.
6699 +
6700 +2004-06-09 Keith Owens <kaos@sgi.com>
6701 +
6702 + * Namespace clean up. Mark code/variables as static when it is only
6703 + used in one file, delete dead code/variables.
6704 + * Saved interrupt state requires long, not int.
6705 + * kdb v4.4-2.6.7-rc2-ia64-3.
6706 +
6707 +2004-06-08 Keith Owens <kaos@sgi.com>
6708 +
6709 + * Whitespace clean up, no code changes.
6710 + * kdb v4.4-2.6.7-rc2-2.
6711 +
6712 +2004-06-07 Keith Owens <kaos@sgi.com>
6713 +
6714 + * Force KALLSYMS and KALLSYMS_ALL for CONFIG_KDB.
6715 + * kdb v4.4-2.6.7-rc2-1.
6716 +
6717 +2004-06-06 Keith Owens <kaos@sgi.com>
6718 +
6719 + * Add standard archkdb commands.
6720 + * Move kdb_{get,put}userarea_size definitions to linux/kdb.h.
6721 + * kdb v4.4-2.6.6-ia64-040521-2.
6722 +
6723 +2004-05-25 Keith Owens <kaos@sgi.com>
6724 +
6725 + * Update Kconfig text.
6726 + * kdb v4.4-2.6.6-ia64-040521-1.
6727 +
6728 +2004-05-23 Keith Owens <kaos@sgi.com>
6729 +
6730 + * Move bfd.h and ansidecl.h from arch/$(ARCH)/kdb to include/asm-$(ARCH).
6731 + * ia64-opc.c needs kdbprivate.h after common reorganisation.
6732 + * Update copyright notices.
6733 + * kdb v4.4-2.6.6-ia64-1.
6734 +
6735 +2004-05-60 Keith Owens <kaos@sgi.com>
6736 +
6737 + * kdb v4.3-2.6.6-rc3-ia64-1.
6738 +
6739 +2004-05-60 Keith Owens <kaos@sgi.com>
6740 +
6741 + * Tweak WAR for backtrace through contended spinlocks.
6742 + * kdb v4.3-2.6.6-rc2-ia64-1.
6743 +
6744 +2004-04-30 Keith Owens <kaos@sgi.com>
6745 +
6746 + * kdb v4.3-2.6.6-rc1-ia64-1.
6747 +
6748 +2004-04-15 Keith Owens <kaos@sgi.com>
6749 +
6750 + * kdb v4.3-2.6.5-ia64-040413-1.
6751 +
6752 +2004-03-06 Keith Owens <kaos@sgi.com>
6753 +
6754 + * Use kdb_print for unwind debugging.
6755 + * kdb v4.3-2.6.4-rc2-ia64-1.
6756 +
6757 +2004-02-29 Keith Owens <kaos@sgi.com>
6758 +
6759 + * kdb v4.3-2.6.4-rc1-ia64-1.
6760 +
6761 +2004-02-18 Keith Owens <kaos@sgi.com>
6762 +
6763 + * kdb v4.3-2.6.3-ia64-1.
6764 +
6765 +2004-02-17 Keith Owens <kaos@sgi.com>
6766 +
6767 + * Reconcile 2.6-test versions from Xavier Bru (Bull), Greg Banks (SGI),
6768 + Jim Houston (Concurrent Computer Corp).
6769 + * Reconcile with kdb v4.3-2.4.23-ia64-0312??-1.
6770 + * Reconcile with salinfo changes.
6771 + * Port WAR for backtrace from spinlock contention from 2.4 to 2.6.
6772 + * Merge PGS FIFO tweak with SERIAL_IO_MEM and concurrent support for
6773 + multiple consoles (no USB consoles yet).
6774 + * Update pt_regs output to match the order of struct pt_regs.
6775 + * KDB wrappers for interrupts handlers now return the handler's return code.
6776 + * tpa and tpav commands from Anonymous.
6777 + * Reconcile with mca changes.
6778 + * Upgrade to 2.6.3-rc3.
6779 + * kdb v4.3-2.6.3-rc3-ia64-1.
6780 +
6781 +2003-10-22 Xavier Bru <xavier.bru@bull.net>
6782 + * Merge to 2.6.0-test7
6783 +2003-10-20 Philippe Garrigues <Philippe.Garrigues@bull.net>
6784 + * Enable FIFO in UART
6785 +2003-09-08 Xavier Bru <xavier.bru@bull.net>
6786 + * Merge to 2.6.0-test4
6787 +2003-03-21 Xavier Bru <xavier.bru@bull.net>
6788 + * Merge kdb v4.0 on 2.5.64 ia64
6789 + * new kernel parameters support
6790 + * new kallsyms support
6791 +
6792 +2003-10-24 Keith Owens <kaos@sgi.com>
6793 +
6794 + * kdb v4.3-2.4.23-pre8-cset-1.1069.1.143-to-1.1108-ia64-1.
6795 +
6796 +2003-10-03 Keith Owens <kaos@sgi.com>
6797 +
6798 + * After MCA, copy the saved RSE registers from ia64_mca_bspstore to the
6799 + stack of the failing process.
6800 + * Abort backtrace when we hit IVT, no unwind data which confuses
6801 + unw_unwind().
6802 + * Workaround for backtrace through spinlock contention called from leaf
6803 + functions.
6804 + * kdb v4.3-2.4.22-ia64-030909-1.
6805 +
6806 +2003-07-20 Keith Owens <kaos@sgi.com>
6807 +
6808 + * MCA rendezvous timeout affects kdb_wait_for_cpus_secs.
6809 + * Support SGI L1 console.
6810 + * kdb v4.3-2.4.21-ia64-030702-2.
6811 +
6812 +2003-07-08 Keith Owens <kaos@sgi.com>
6813 +
6814 + * print_symbol() in mca.c does something useful when kdb is installed.
6815 + * Unwind and SAL changes removed from kdb, they are in the base kernel.
6816 + * kdb v4.3-2.4.21-ia64-030702-1.
6817 +
6818 +2003-06-20 Keith Owens <kaos@sgi.com>
6819 +
6820 + * Add CONFIG_KDB_CONTINUE_CATASTROPHIC.
6821 + * Do not send IPI if the machine state does not require them.
6822 + * Correct definition of KDB_ENTER().
6823 + * Workaround for broken init monarch handler.
6824 + * Monarch cpu must get to kdb, even if it was interrupted in user space.
6825 + * Unwind fixes.
6826 + * Generalize ia64_spinlock_contention name.
6827 + * Add kdba_fru for SN machines.
6828 + * Correct test for cpu number.
6829 + * kdb v4.3-2.4.20-ia64-020821-1.
6830 +
6831 +2003-05-02 Keith Owens <kaos@sgi.com>
6832 +
6833 + * Add kdba_fp_value().
6834 + * Limit backtrace size to catch loops.
6835 + * Print spinlock name in ia64_spinlock_contention.
6836 + * Tweak INIT slave stack lock and handler.
6837 + * Add read/write access to user pages. Vamsi Krishna S., IBM
6838 + * Rename cpu_is_online to cpu_online, as in 2.5.
6839 + * Clean up USB keyboard support.
6840 + * Clean up serial console support.
6841 + * kdb v4.2-2.4.20-ia64-020821-1.
6842 +
6843 +2003-04-04 Keith Owens <kaos@sgi.com>
6844 +
6845 + * Add support for INIT slave interrupts.
6846 + * Tell SAL to always rendezvous on MCA.
6847 + * No lock on SAL rendezvous call.
6848 + * Include unwind.c from 2.4.21-pre5.
6849 + * Rename cpu_online to cpu_is_online.
6850 + * Workarounds for scheduler bugs.
6851 + * kdb v4.1-2.4.20-ia64-020821-1.
6852 +
6853 +2003-03-16 Keith Owens <kaos@sgi.com>
6854 +
6855 + * Each cpu saves its state as it enters kdb or before it enters code
6856 + which cannot call kdb, converting kdb from a pull to a push model.
6857 + * Clean up kdb interaction with CONFIG_SERIAL_CONSOLE.
6858 + * Removal of special cases for i386 backtrace from common code
6859 + simplifies the architecture code.
6860 + * Add support for MCA events (both main and rendezvous) plus INIT
6861 + monarch event.
6862 + * Correct decode of brl.
6863 + * Move kdba_print_nameval to common code.
6864 + * Generalize kdba unwind handlers.
6865 + * Fix decode of sal records (fix included in later ia64 kernels).
6866 + * Handle multiple pt_regs in stack (fix included in later ia64 kernels).
6867 + * Clean up debug code in unwind (fix included in later ia64 kernels).
6868 + * Move kdb break numbers to their own file so it can be used in asm.
6869 + * kdb v4.0-2.4.20-ia64-021210-1.
6870 +
6871 +2003-02-03 Keith Owens <kaos@sgi.com>
6872 +
6873 + * Register kdb commands early.
6874 + * Handle KDB_ENTER() when kdb=off.
6875 + * Optimize __kdba_getarea_size when width is a constant.
6876 + * Decode oops via kallsyms if it is available.
6877 + * Update copyright notices to 2003.
6878 + * Add commands to dump struct pt_regs and switch_stack.
6879 + * Handle padding from unw_init_running for switch_stack.
6880 + * Add dummy kdba_local_arch_setup/kdba_local_arch_cleanup.
6881 + * Warning for pod mode.
6882 + * Add command history and editing. Sonic Zhang.
6883 + * kdb_toggleled is conditional on KDB_BLINK_LED. Bernhard Fischer.
6884 + * Allow tab on serial line for symbol completion.
6885 + * Ignore KDB_ENTER() when kdb is already running.
6886 + * kdb v3.0-2.4.20-ia64-021210-1.
6887 +
6888 +2003-01-23 Keith Owens <kaos@sgi.com>
6889 +
6890 + * Upgrade to 2.4.20-ia64-021210.
6891 + * kdb v2.5-2.4.20-ia64-021210-1.
6892 +
6893 +2002-11-14 Keith Owens <kaos@sgi.com>
6894 +
6895 + * General clean up of handling for breakpoints and single stepping over
6896 + software breakpoints.
6897 + * kdb v2.5-2.4.19-ia64-020821-1.
6898 +
6899 +2002-10-31 Keith Owens <kaos@sgi.com>
6900 +
6901 + * Remove kdb_eframe_t.
6902 + * Sanity check if we have pt_regs.
6903 + * Remove kdba_getcurrentframe().
6904 + * Comments for coexistence with O(1) scheduler.
6905 + * kdb v2.4-2.4.19-ia64-020821-1.
6906 +
6907 +2002-10-15 Keith Owens <kaos@sgi.com>
6908 +
6909 + * Minimize differences between patches for 2.4 and 2.5 kernels.
6910 + * kdb v2.3-2.4.19-ia64-020821-2.
6911 +
6912 +2002-08-10 Keith Owens <kaos@sgi.com>
6913 +
6914 + * Verify rw address for instruction breakpoint.
6915 + * Replace kdb_port with kdb_serial to support memory mapped I/O.
6916 + David Mosberger.
6917 + Note: This needs kdb v2.3-2.4.18-common-2 or later.
6918 + * kdb v2.3-2.4.18-ia64-020722-2.
6919 +
6920 +2002-08-07 Keith Owens <kaos@sgi.com>
6921 +
6922 + * Upgrade to 2.4.18-ia64-020722.
6923 + * Remove individual SGI copyrights, the general SGI copyright applies.
6924 + * Clean up disassembly layout. Hugh Dickins, Keith Owens.
6925 + * Remove fixed KDB_MAX_COMMANDS size.
6926 + * Add set_fs() around __copy_to_user on kernel addresses.
6927 + Randolph Chung.
6928 + * Position ia64 for CONFIG_NUMA_REPLICATE.
6929 + * Stacked registers modification support. Sebastien Lelarge.
6930 + * USB keyboard support. Sebastien Lelarge.
6931 + * kdb v2.3-2.4.18-ia64-020722-1.
6932 +
6933 +2002-03-20 Keith Owens <kaos@sgi.com>
6934 +
6935 + * Sync with 2.4.17-sn2.
6936 + * Add pod command.
6937 +
6938 +2002-02-20 Keith Owens <kaos@sgi.com>
6939 +
6940 + * Call kdb from mca handler. Jenna S. Hall, Intel.
6941 + * kdb v2.1-2.4.17-ia64-011226-2.
6942 +
6943 +2002-01-18 Keith Owens <kaos@sgi.com>
6944 +
6945 + * Replace kdb_get/putword with kdb_get/putarea functions.
6946 + * Wrap kdb references in #ifdef CONFIG_KDB.
6947 + * Delete sample i386 code.
6948 + * Refuse to update kernel text on NUMA systems.
6949 + * Reject hardware breakpoints, not supported yet.
6950 + * kdb v2.1-2.4.17-ia64-011226-1.
6951 +
6952 +2002-01-07 Keith Owens <kaos@sgi.com>
6953 +
6954 + * Split kdb for ia64 as kdb v2.0-2.4.17-ia64-011226-1.
6955 --- /dev/null
6956 +++ b/arch/ia64/kdb/Makefile
6957 @@ -0,0 +1,21 @@
6958 +#
6959 +# This file is subject to the terms and conditions of the GNU General Public
6960 +# License. See the file "COPYING" in the main directory of this archive
6961 +# for more details.
6962 +#
6963 +# Copyright (c) 1999-2004 Silicon Graphics, Inc. All Rights Reserved.
6964 +#
6965 +
6966 +obj-y := kdba_bt.o kdba_bp.o kdba_io.o kdba_support.o \
6967 + cpu-ia64-opc.o ia64-dis.o ia64-opc.o kdba_id.o kdba_jmp.o
6968 +
6969 +# fru does not compile on 2.6.
6970 +# obj-$(CONFIG_IA64_SGI_SN2) += kdba_fru.o
6971 +obj-$(CONFIG_IA64_SGI_SN2) += kdba_pod.o
6972 +obj-$(CONFIG_IA64_GENERIC) += kdba_pod.o
6973 +
6974 +override CFLAGS := $(CFLAGS:%-pg=% )
6975 +
6976 +AFLAGS_kdba_jmp.o += $(AFLAGS_KERNEL)
6977 +
6978 +USE_STANDARD_AS_RULE := true
6979 --- /dev/null
6980 +++ b/arch/ia64/kdb/cpu-ia64-opc.c
6981 @@ -0,0 +1,598 @@
6982 +/* Copyright 1998, 1999, 2000, 2001, 2002, 2003
6983 + Free Software Foundation, Inc.
6984 + Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
6985 +
6986 +This file is part of BFD, the Binary File Descriptor library.
6987 +
6988 +This program is free software; you can redistribute it and/or modify
6989 +it under the terms of the GNU General Public License as published by
6990 +the Free Software Foundation; either version 2 of the License, or
6991 +(at your option) any later version.
6992 +
6993 +This program is distributed in the hope that it will be useful,
6994 +but WITHOUT ANY WARRANTY; without even the implied warranty of
6995 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
6996 +GNU General Public License for more details.
6997 +
6998 +You should have received a copy of the GNU General Public License
6999 +along with this program; if not, write to the Free Software
7000 +Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
7001 +
7002 +/* Extracted from binutils 2.16.91.0.2 (OpenSUSE 10.0) and modified for kdb use.
7003 + * Any trailing whitespace was removed and #ifdef/ifndef __KERNEL__ added as
7004 + * required.
7005 + * Keith Owens <kaos@sgi.com> 15 May 2006
7006 + */
7007 +
7008 +/* Logically, this code should be part of libopcode but since some of
7009 + the operand insertion/extraction functions help bfd to implement
7010 + relocations, this code is included as part of cpu-ia64.c. This
7011 + avoids circular dependencies between libopcode and libbfd and also
7012 + obviates the need for applications to link in libopcode when all
7013 + they really want is libbfd.
7014 +
7015 + --davidm Mon Apr 13 22:14:02 1998 */
7016 +
7017 +#ifdef __KERNEL__
7018 +#include "ia64-opc.h"
7019 +#else /* __KERNEL__ */
7020 +#include "../opcodes/ia64-opc.h"
7021 +#endif /* __KERNEL__ */
7022 +
7023 +#define NELEMS(a) ((int) (sizeof (a) / sizeof ((a)[0])))
7024 +
7025 +static const char*
7026 +ins_rsvd (const struct ia64_operand *self ATTRIBUTE_UNUSED,
7027 + ia64_insn value ATTRIBUTE_UNUSED, ia64_insn *code ATTRIBUTE_UNUSED)
7028 +{
7029 + return "internal error---this shouldn't happen";
7030 +}
7031 +
7032 +static const char*
7033 +ext_rsvd (const struct ia64_operand *self ATTRIBUTE_UNUSED,
7034 + ia64_insn code ATTRIBUTE_UNUSED, ia64_insn *valuep ATTRIBUTE_UNUSED)
7035 +{
7036 + return "internal error---this shouldn't happen";
7037 +}
7038 +
7039 +static const char*
7040 +ins_const (const struct ia64_operand *self ATTRIBUTE_UNUSED,
7041 + ia64_insn value ATTRIBUTE_UNUSED, ia64_insn *code ATTRIBUTE_UNUSED)
7042 +{
7043 + return 0;
7044 +}
7045 +
7046 +static const char*
7047 +ext_const (const struct ia64_operand *self ATTRIBUTE_UNUSED,
7048 + ia64_insn code ATTRIBUTE_UNUSED, ia64_insn *valuep ATTRIBUTE_UNUSED)
7049 +{
7050 + return 0;
7051 +}
7052 +
7053 +static const char*
7054 +ins_reg (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7055 +{
7056 + if (value >= 1u << self->field[0].bits)
7057 + return "register number out of range";
7058 +
7059 + *code |= value << self->field[0].shift;
7060 + return 0;
7061 +}
7062 +
7063 +static const char*
7064 +ext_reg (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7065 +{
7066 + *valuep = ((code >> self->field[0].shift)
7067 + & ((1u << self->field[0].bits) - 1));
7068 + return 0;
7069 +}
7070 +
7071 +static const char*
7072 +ins_immu (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7073 +{
7074 + ia64_insn new = 0;
7075 + int i;
7076 +
7077 + for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
7078 + {
7079 + new |= ((value & ((((ia64_insn) 1) << self->field[i].bits) - 1))
7080 + << self->field[i].shift);
7081 + value >>= self->field[i].bits;
7082 + }
7083 + if (value)
7084 + return "integer operand out of range";
7085 +
7086 + *code |= new;
7087 + return 0;
7088 +}
7089 +
7090 +static const char*
7091 +ext_immu (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7092 +{
7093 + BFD_HOST_U_64_BIT value = 0;
7094 + int i, bits = 0, total = 0;
7095 +
7096 + for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
7097 + {
7098 + bits = self->field[i].bits;
7099 + value |= ((code >> self->field[i].shift)
7100 + & ((((BFD_HOST_U_64_BIT) 1) << bits) - 1)) << total;
7101 + total += bits;
7102 + }
7103 + *valuep = value;
7104 + return 0;
7105 +}
7106 +
7107 +static const char*
7108 +ins_immus8 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7109 +{
7110 + if (value & 0x7)
7111 + return "value not an integer multiple of 8";
7112 + return ins_immu (self, value >> 3, code);
7113 +}
7114 +
7115 +static const char*
7116 +ext_immus8 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7117 +{
7118 + const char *result;
7119 +
7120 + result = ext_immu (self, code, valuep);
7121 + if (result)
7122 + return result;
7123 +
7124 + *valuep = *valuep << 3;
7125 + return 0;
7126 +}
7127 +
7128 +static const char*
7129 +ins_imms_scaled (const struct ia64_operand *self, ia64_insn value,
7130 + ia64_insn *code, int scale)
7131 +{
7132 + BFD_HOST_64_BIT svalue = value, sign_bit = 0;
7133 + ia64_insn new = 0;
7134 + int i;
7135 +
7136 + svalue >>= scale;
7137 +
7138 + for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
7139 + {
7140 + new |= ((svalue & ((((ia64_insn) 1) << self->field[i].bits) - 1))
7141 + << self->field[i].shift);
7142 + sign_bit = (svalue >> (self->field[i].bits - 1)) & 1;
7143 + svalue >>= self->field[i].bits;
7144 + }
7145 + if ((!sign_bit && svalue != 0) || (sign_bit && svalue != -1))
7146 + return "integer operand out of range";
7147 +
7148 + *code |= new;
7149 + return 0;
7150 +}
7151 +
7152 +static const char*
7153 +ext_imms_scaled (const struct ia64_operand *self, ia64_insn code,
7154 + ia64_insn *valuep, int scale)
7155 +{
7156 + int i, bits = 0, total = 0;
7157 + BFD_HOST_64_BIT val = 0, sign;
7158 +
7159 + for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
7160 + {
7161 + bits = self->field[i].bits;
7162 + val |= ((code >> self->field[i].shift)
7163 + & ((((BFD_HOST_U_64_BIT) 1) << bits) - 1)) << total;
7164 + total += bits;
7165 + }
7166 + /* sign extend: */
7167 + sign = (BFD_HOST_64_BIT) 1 << (total - 1);
7168 + val = (val ^ sign) - sign;
7169 +
7170 + *valuep = (val << scale);
7171 + return 0;
7172 +}
7173 +
7174 +static const char*
7175 +ins_imms (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7176 +{
7177 + return ins_imms_scaled (self, value, code, 0);
7178 +}
7179 +
7180 +static const char*
7181 +ins_immsu4 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7182 +{
7183 + value = ((value & 0xffffffff) ^ 0x80000000) - 0x80000000;
7184 +
7185 + return ins_imms_scaled (self, value, code, 0);
7186 +}
7187 +
7188 +static const char*
7189 +ext_imms (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7190 +{
7191 + return ext_imms_scaled (self, code, valuep, 0);
7192 +}
7193 +
7194 +static const char*
7195 +ins_immsm1 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7196 +{
7197 + --value;
7198 + return ins_imms_scaled (self, value, code, 0);
7199 +}
7200 +
7201 +static const char*
7202 +ins_immsm1u4 (const struct ia64_operand *self, ia64_insn value,
7203 + ia64_insn *code)
7204 +{
7205 + value = ((value & 0xffffffff) ^ 0x80000000) - 0x80000000;
7206 +
7207 + --value;
7208 + return ins_imms_scaled (self, value, code, 0);
7209 +}
7210 +
7211 +static const char*
7212 +ext_immsm1 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7213 +{
7214 + const char *res = ext_imms_scaled (self, code, valuep, 0);
7215 +
7216 + ++*valuep;
7217 + return res;
7218 +}
7219 +
7220 +static const char*
7221 +ins_imms1 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7222 +{
7223 + return ins_imms_scaled (self, value, code, 1);
7224 +}
7225 +
7226 +static const char*
7227 +ext_imms1 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7228 +{
7229 + return ext_imms_scaled (self, code, valuep, 1);
7230 +}
7231 +
7232 +static const char*
7233 +ins_imms4 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7234 +{
7235 + return ins_imms_scaled (self, value, code, 4);
7236 +}
7237 +
7238 +static const char*
7239 +ext_imms4 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7240 +{
7241 + return ext_imms_scaled (self, code, valuep, 4);
7242 +}
7243 +
7244 +static const char*
7245 +ins_imms16 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7246 +{
7247 + return ins_imms_scaled (self, value, code, 16);
7248 +}
7249 +
7250 +static const char*
7251 +ext_imms16 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7252 +{
7253 + return ext_imms_scaled (self, code, valuep, 16);
7254 +}
7255 +
7256 +static const char*
7257 +ins_cimmu (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7258 +{
7259 + ia64_insn mask = (((ia64_insn) 1) << self->field[0].bits) - 1;
7260 + return ins_immu (self, value ^ mask, code);
7261 +}
7262 +
7263 +static const char*
7264 +ext_cimmu (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7265 +{
7266 + const char *result;
7267 + ia64_insn mask;
7268 +
7269 + mask = (((ia64_insn) 1) << self->field[0].bits) - 1;
7270 + result = ext_immu (self, code, valuep);
7271 + if (!result)
7272 + {
7273 + mask = (((ia64_insn) 1) << self->field[0].bits) - 1;
7274 + *valuep ^= mask;
7275 + }
7276 + return result;
7277 +}
7278 +
7279 +static const char*
7280 +ins_cnt (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7281 +{
7282 + --value;
7283 + if (value >= ((BFD_HOST_U_64_BIT) 1) << self->field[0].bits)
7284 + return "count out of range";
7285 +
7286 + *code |= value << self->field[0].shift;
7287 + return 0;
7288 +}
7289 +
7290 +static const char*
7291 +ext_cnt (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7292 +{
7293 + *valuep = ((code >> self->field[0].shift)
7294 + & ((((BFD_HOST_U_64_BIT) 1) << self->field[0].bits) - 1)) + 1;
7295 + return 0;
7296 +}
7297 +
7298 +static const char*
7299 +ins_cnt2b (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7300 +{
7301 + --value;
7302 +
7303 + if (value > 2)
7304 + return "count must be in range 1..3";
7305 +
7306 + *code |= value << self->field[0].shift;
7307 + return 0;
7308 +}
7309 +
7310 +static const char*
7311 +ext_cnt2b (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7312 +{
7313 + *valuep = ((code >> self->field[0].shift) & 0x3) + 1;
7314 + return 0;
7315 +}
7316 +
7317 +static const char*
7318 +ins_cnt2c (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7319 +{
7320 + switch (value)
7321 + {
7322 + case 0: value = 0; break;
7323 + case 7: value = 1; break;
7324 + case 15: value = 2; break;
7325 + case 16: value = 3; break;
7326 + default: return "count must be 0, 7, 15, or 16";
7327 + }
7328 + *code |= value << self->field[0].shift;
7329 + return 0;
7330 +}
7331 +
7332 +static const char*
7333 +ext_cnt2c (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7334 +{
7335 + ia64_insn value;
7336 +
7337 + value = (code >> self->field[0].shift) & 0x3;
7338 + switch (value)
7339 + {
7340 + case 0: value = 0; break;
7341 + case 1: value = 7; break;
7342 + case 2: value = 15; break;
7343 + case 3: value = 16; break;
7344 + }
7345 + *valuep = value;
7346 + return 0;
7347 +}
7348 +
7349 +static const char*
7350 +ins_inc3 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
7351 +{
7352 + BFD_HOST_64_BIT val = value;
7353 + BFD_HOST_U_64_BIT sign = 0;
7354 +
7355 + if (val < 0)
7356 + {
7357 + sign = 0x4;
7358 + value = -value;
7359 + }
7360 + switch (value)
7361 + {
7362 + case 1: value = 3; break;
7363 + case 4: value = 2; break;
7364 + case 8: value = 1; break;
7365 + case 16: value = 0; break;
7366 + default: return "count must be +/- 1, 4, 8, or 16";
7367 + }
7368 + *code |= (sign | value) << self->field[0].shift;
7369 + return 0;
7370 +}
7371 +
7372 +static const char*
7373 +ext_inc3 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
7374 +{
7375 + BFD_HOST_64_BIT val;
7376 + int negate;
7377 +
7378 + val = (code >> self->field[0].shift) & 0x7;
7379 + negate = val & 0x4;
7380 + switch (val & 0x3)
7381 + {
7382 + case 0: val = 16; break;
7383 + case 1: val = 8; break;
7384 + case 2: val = 4; break;
7385 + case 3: val = 1; break;
7386 + }
7387 + if (negate)
7388 + val = -val;
7389 +
7390 + *valuep = val;
7391 + return 0;
7392 +}
7393 +
7394 +#define CST IA64_OPND_CLASS_CST
7395 +#define REG IA64_OPND_CLASS_REG
7396 +#define IND IA64_OPND_CLASS_IND
7397 +#define ABS IA64_OPND_CLASS_ABS
7398 +#define REL IA64_OPND_CLASS_REL
7399 +
7400 +#define SDEC IA64_OPND_FLAG_DECIMAL_SIGNED
7401 +#define UDEC IA64_OPND_FLAG_DECIMAL_UNSIGNED
7402 +
7403 +const struct ia64_operand elf64_ia64_operands[IA64_OPND_COUNT] =
7404 + {
7405 + /* constants: */
7406 + { CST, ins_const, ext_const, "NIL", {{ 0, 0}}, 0, "<none>" },
7407 + { CST, ins_const, ext_const, "ar.csd", {{ 0, 0}}, 0, "ar.csd" },
7408 + { CST, ins_const, ext_const, "ar.ccv", {{ 0, 0}}, 0, "ar.ccv" },
7409 + { CST, ins_const, ext_const, "ar.pfs", {{ 0, 0}}, 0, "ar.pfs" },
7410 + { CST, ins_const, ext_const, "1", {{ 0, 0}}, 0, "1" },
7411 + { CST, ins_const, ext_const, "8", {{ 0, 0}}, 0, "8" },
7412 + { CST, ins_const, ext_const, "16", {{ 0, 0}}, 0, "16" },
7413 + { CST, ins_const, ext_const, "r0", {{ 0, 0}}, 0, "r0" },
7414 + { CST, ins_const, ext_const, "ip", {{ 0, 0}}, 0, "ip" },
7415 + { CST, ins_const, ext_const, "pr", {{ 0, 0}}, 0, "pr" },
7416 + { CST, ins_const, ext_const, "pr.rot", {{ 0, 0}}, 0, "pr.rot" },
7417 + { CST, ins_const, ext_const, "psr", {{ 0, 0}}, 0, "psr" },
7418 + { CST, ins_const, ext_const, "psr.l", {{ 0, 0}}, 0, "psr.l" },
7419 + { CST, ins_const, ext_const, "psr.um", {{ 0, 0}}, 0, "psr.um" },
7420 +
7421 + /* register operands: */
7422 + { REG, ins_reg, ext_reg, "ar", {{ 7, 20}}, 0, /* AR3 */
7423 + "an application register" },
7424 + { REG, ins_reg, ext_reg, "b", {{ 3, 6}}, 0, /* B1 */
7425 + "a branch register" },
7426 + { REG, ins_reg, ext_reg, "b", {{ 3, 13}}, 0, /* B2 */
7427 + "a branch register"},
7428 + { REG, ins_reg, ext_reg, "cr", {{ 7, 20}}, 0, /* CR */
7429 + "a control register"},
7430 + { REG, ins_reg, ext_reg, "f", {{ 7, 6}}, 0, /* F1 */
7431 + "a floating-point register" },
7432 + { REG, ins_reg, ext_reg, "f", {{ 7, 13}}, 0, /* F2 */
7433 + "a floating-point register" },
7434 + { REG, ins_reg, ext_reg, "f", {{ 7, 20}}, 0, /* F3 */
7435 + "a floating-point register" },
7436 + { REG, ins_reg, ext_reg, "f", {{ 7, 27}}, 0, /* F4 */
7437 + "a floating-point register" },
7438 + { REG, ins_reg, ext_reg, "p", {{ 6, 6}}, 0, /* P1 */
7439 + "a predicate register" },
7440 + { REG, ins_reg, ext_reg, "p", {{ 6, 27}}, 0, /* P2 */
7441 + "a predicate register" },
7442 + { REG, ins_reg, ext_reg, "r", {{ 7, 6}}, 0, /* R1 */
7443 + "a general register" },
7444 + { REG, ins_reg, ext_reg, "r", {{ 7, 13}}, 0, /* R2 */
7445 + "a general register" },
7446 + { REG, ins_reg, ext_reg, "r", {{ 7, 20}}, 0, /* R3 */
7447 + "a general register" },
7448 + { REG, ins_reg, ext_reg, "r", {{ 2, 20}}, 0, /* R3_2 */
7449 + "a general register r0-r3" },
7450 +
7451 + /* indirect operands: */
7452 + { IND, ins_reg, ext_reg, "cpuid", {{7, 20}}, 0, /* CPUID_R3 */
7453 + "a cpuid register" },
7454 + { IND, ins_reg, ext_reg, "dbr", {{7, 20}}, 0, /* DBR_R3 */
7455 + "a dbr register" },
7456 + { IND, ins_reg, ext_reg, "dtr", {{7, 20}}, 0, /* DTR_R3 */
7457 + "a dtr register" },
7458 + { IND, ins_reg, ext_reg, "itr", {{7, 20}}, 0, /* ITR_R3 */
7459 + "an itr register" },
7460 + { IND, ins_reg, ext_reg, "ibr", {{7, 20}}, 0, /* IBR_R3 */
7461 + "an ibr register" },
7462 + { IND, ins_reg, ext_reg, "", {{7, 20}}, 0, /* MR3 */
7463 + "an indirect memory address" },
7464 + { IND, ins_reg, ext_reg, "msr", {{7, 20}}, 0, /* MSR_R3 */
7465 + "an msr register" },
7466 + { IND, ins_reg, ext_reg, "pkr", {{7, 20}}, 0, /* PKR_R3 */
7467 + "a pkr register" },
7468 + { IND, ins_reg, ext_reg, "pmc", {{7, 20}}, 0, /* PMC_R3 */
7469 + "a pmc register" },
7470 + { IND, ins_reg, ext_reg, "pmd", {{7, 20}}, 0, /* PMD_R3 */
7471 + "a pmd register" },
7472 + { IND, ins_reg, ext_reg, "rr", {{7, 20}}, 0, /* RR_R3 */
7473 + "an rr register" },
7474 +
7475 + /* immediate operands: */
7476 + { ABS, ins_cimmu, ext_cimmu, 0, {{ 5, 20 }}, UDEC, /* CCNT5 */
7477 + "a 5-bit count (0-31)" },
7478 + { ABS, ins_cnt, ext_cnt, 0, {{ 2, 27 }}, UDEC, /* CNT2a */
7479 + "a 2-bit count (1-4)" },
7480 + { ABS, ins_cnt2b, ext_cnt2b, 0, {{ 2, 27 }}, UDEC, /* CNT2b */
7481 + "a 2-bit count (1-3)" },
7482 + { ABS, ins_cnt2c, ext_cnt2c, 0, {{ 2, 30 }}, UDEC, /* CNT2c */
7483 + "a count (0, 7, 15, or 16)" },
7484 + { ABS, ins_immu, ext_immu, 0, {{ 5, 14}}, UDEC, /* CNT5 */
7485 + "a 5-bit count (0-31)" },
7486 + { ABS, ins_immu, ext_immu, 0, {{ 6, 27}}, UDEC, /* CNT6 */
7487 + "a 6-bit count (0-63)" },
7488 + { ABS, ins_cimmu, ext_cimmu, 0, {{ 6, 20}}, UDEC, /* CPOS6a */
7489 + "a 6-bit bit pos (0-63)" },
7490 + { ABS, ins_cimmu, ext_cimmu, 0, {{ 6, 14}}, UDEC, /* CPOS6b */
7491 + "a 6-bit bit pos (0-63)" },
7492 + { ABS, ins_cimmu, ext_cimmu, 0, {{ 6, 31}}, UDEC, /* CPOS6c */
7493 + "a 6-bit bit pos (0-63)" },
7494 + { ABS, ins_imms, ext_imms, 0, {{ 1, 36}}, SDEC, /* IMM1 */
7495 + "a 1-bit integer (-1, 0)" },
7496 + { ABS, ins_immu, ext_immu, 0, {{ 2, 13}}, UDEC, /* IMMU2 */
7497 + "a 2-bit unsigned (0-3)" },
7498 + { ABS, ins_immu, ext_immu, 0, {{ 7, 13}}, 0, /* IMMU7a */
7499 + "a 7-bit unsigned (0-127)" },
7500 + { ABS, ins_immu, ext_immu, 0, {{ 7, 20}}, 0, /* IMMU7b */
7501 + "a 7-bit unsigned (0-127)" },
7502 + { ABS, ins_immu, ext_immu, 0, {{ 7, 13}}, UDEC, /* SOF */
7503 + "a frame size (register count)" },
7504 + { ABS, ins_immu, ext_immu, 0, {{ 7, 20}}, UDEC, /* SOL */
7505 + "a local register count" },
7506 + { ABS, ins_immus8,ext_immus8,0, {{ 4, 27}}, UDEC, /* SOR */
7507 + "a rotating register count (integer multiple of 8)" },
7508 + { ABS, ins_imms, ext_imms, 0, /* IMM8 */
7509 + {{ 7, 13}, { 1, 36}}, SDEC,
7510 + "an 8-bit integer (-128-127)" },
7511 + { ABS, ins_immsu4, ext_imms, 0, /* IMM8U4 */
7512 + {{ 7, 13}, { 1, 36}}, SDEC,
7513 + "an 8-bit signed integer for 32-bit unsigned compare (-128-127)" },
7514 + { ABS, ins_immsm1, ext_immsm1, 0, /* IMM8M1 */
7515 + {{ 7, 13}, { 1, 36}}, SDEC,
7516 + "an 8-bit integer (-127-128)" },
7517 + { ABS, ins_immsm1u4, ext_immsm1, 0, /* IMM8M1U4 */
7518 + {{ 7, 13}, { 1, 36}}, SDEC,
7519 + "an 8-bit integer for 32-bit unsigned compare (-127-(-1),1-128,0x100000000)" },
7520 + { ABS, ins_immsm1, ext_immsm1, 0, /* IMM8M1U8 */
7521 + {{ 7, 13}, { 1, 36}}, SDEC,
7522 + "an 8-bit integer for 64-bit unsigned compare (-127-(-1),1-128,0x10000000000000000)" },
7523 + { ABS, ins_immu, ext_immu, 0, {{ 2, 33}, { 7, 20}}, 0, /* IMMU9 */
7524 + "a 9-bit unsigned (0-511)" },
7525 + { ABS, ins_imms, ext_imms, 0, /* IMM9a */
7526 + {{ 7, 6}, { 1, 27}, { 1, 36}}, SDEC,
7527 + "a 9-bit integer (-256-255)" },
7528 + { ABS, ins_imms, ext_imms, 0, /* IMM9b */
7529 + {{ 7, 13}, { 1, 27}, { 1, 36}}, SDEC,
7530 + "a 9-bit integer (-256-255)" },
7531 + { ABS, ins_imms, ext_imms, 0, /* IMM14 */
7532 + {{ 7, 13}, { 6, 27}, { 1, 36}}, SDEC,
7533 + "a 14-bit integer (-8192-8191)" },
7534 + { ABS, ins_imms1, ext_imms1, 0, /* IMM17 */
7535 + {{ 7, 6}, { 8, 24}, { 1, 36}}, 0,
7536 + "a 17-bit integer (-65536-65535)" },
7537 + { ABS, ins_immu, ext_immu, 0, {{20, 6}, { 1, 36}}, 0, /* IMMU21 */
7538 + "a 21-bit unsigned" },
7539 + { ABS, ins_imms, ext_imms, 0, /* IMM22 */
7540 + {{ 7, 13}, { 9, 27}, { 5, 22}, { 1, 36}}, SDEC,
7541 + "a 22-bit signed integer" },
7542 + { ABS, ins_immu, ext_immu, 0, /* IMMU24 */
7543 + {{21, 6}, { 2, 31}, { 1, 36}}, 0,
7544 + "a 24-bit unsigned" },
7545 + { ABS, ins_imms16,ext_imms16,0, {{27, 6}, { 1, 36}}, 0, /* IMM44 */
7546 + "a 44-bit unsigned (least 16 bits ignored/zeroes)" },
7547 + { ABS, ins_rsvd, ext_rsvd, 0, {{0, 0}}, 0, /* IMMU62 */
7548 + "a 62-bit unsigned" },
7549 + { ABS, ins_rsvd, ext_rsvd, 0, {{0, 0}}, 0, /* IMMU64 */
7550 + "a 64-bit unsigned" },
7551 + { ABS, ins_inc3, ext_inc3, 0, {{ 3, 13}}, SDEC, /* INC3 */
7552 + "an increment (+/- 1, 4, 8, or 16)" },
7553 + { ABS, ins_cnt, ext_cnt, 0, {{ 4, 27}}, UDEC, /* LEN4 */
7554 + "a 4-bit length (1-16)" },
7555 + { ABS, ins_cnt, ext_cnt, 0, {{ 6, 27}}, UDEC, /* LEN6 */
7556 + "a 6-bit length (1-64)" },
7557 + { ABS, ins_immu, ext_immu, 0, {{ 4, 20}}, 0, /* MBTYPE4 */
7558 + "a mix type (@rev, @mix, @shuf, @alt, or @brcst)" },
7559 + { ABS, ins_immu, ext_immu, 0, {{ 8, 20}}, 0, /* MBTYPE8 */
7560 + "an 8-bit mix type" },
7561 + { ABS, ins_immu, ext_immu, 0, {{ 6, 14}}, UDEC, /* POS6 */
7562 + "a 6-bit bit pos (0-63)" },
7563 + { REL, ins_imms4, ext_imms4, 0, {{ 7, 6}, { 2, 33}}, 0, /* TAG13 */
7564 + "a branch tag" },
7565 + { REL, ins_imms4, ext_imms4, 0, {{ 9, 24}}, 0, /* TAG13b */
7566 + "a branch tag" },
7567 + { REL, ins_imms4, ext_imms4, 0, {{20, 6}, { 1, 36}}, 0, /* TGT25 */
7568 + "a branch target" },
7569 + { REL, ins_imms4, ext_imms4, 0, /* TGT25b */
7570 + {{ 7, 6}, {13, 20}, { 1, 36}}, 0,
7571 + "a branch target" },
7572 + { REL, ins_imms4, ext_imms4, 0, {{20, 13}, { 1, 36}}, 0, /* TGT25c */
7573 + "a branch target" },
7574 + { REL, ins_rsvd, ext_rsvd, 0, {{0, 0}}, 0, /* TGT64 */
7575 + "a branch target" },
7576 +
7577 + { ABS, ins_const, ext_const, 0, {{0, 0}}, 0, /* LDXMOV */
7578 + "ldxmov target" },
7579 + };
7580 --- /dev/null
7581 +++ b/arch/ia64/kdb/ia64-asmtab.c
7582 @@ -0,0 +1,8585 @@
7583 +/* This file is automatically generated by ia64-gen. Do not edit! */
7584 +
7585 +/* Extracted from binutils 2.16.91.0.2 (OpenSUSE 10.0) and modified for kdb use.
7586 + * Any trailing whitespace was removed and #ifdef/ifndef __KERNEL__ added as
7587 + * required.
7588 + * Keith Owens <kaos@sgi.com> 15 May 2006
7589 + */
7590 +
7591 +static const char * const ia64_strings[] = {
7592 + "", "0", "1", "a", "acq", "add", "addl", "addp4", "adds", "alloc", "and",
7593 + "andcm", "b", "bias", "br", "break", "brl", "brp", "bsw", "c", "call",
7594 + "cexit", "chk", "cloop", "clr", "clrrrb", "cmp", "cmp4", "cmp8xchg16",
7595 + "cmpxchg1", "cmpxchg2", "cmpxchg4", "cmpxchg8", "cond", "cover", "ctop",
7596 + "czx1", "czx2", "d", "dep", "dpnt", "dptk", "e", "epc", "eq", "excl",
7597 + "exit", "exp", "extr", "f", "fabs", "fadd", "famax", "famin", "fand",
7598 + "fandcm", "fault", "fc", "fchkf", "fclass", "fclrf", "fcmp", "fcvt",
7599 + "fetchadd4", "fetchadd8", "few", "fill", "flushrs", "fma", "fmax",
7600 + "fmerge", "fmin", "fmix", "fmpy", "fms", "fneg", "fnegabs", "fnma",
7601 + "fnmpy", "fnorm", "for", "fpabs", "fpack", "fpamax", "fpamin", "fpcmp",
7602 + "fpcvt", "fpma", "fpmax", "fpmerge", "fpmin", "fpmpy", "fpms", "fpneg",
7603 + "fpnegabs", "fpnma", "fpnmpy", "fprcpa", "fprsqrta", "frcpa", "frsqrta",
7604 + "fselect", "fsetc", "fsub", "fswap", "fsxt", "fwb", "fx", "fxor", "fxu",
7605 + "g", "ga", "ge", "getf", "geu", "gt", "gtu", "h", "hint", "hu", "i", "ia",
7606 + "imp", "invala", "itc", "itr", "l", "ld1", "ld16", "ld2", "ld4", "ld8",
7607 + "ldf", "ldf8", "ldfd", "ldfe", "ldfp8", "ldfpd", "ldfps", "ldfs", "le",
7608 + "leu", "lfetch", "loadrs", "loop", "lr", "lt", "ltu", "lu", "m", "many",
7609 + "mf", "mix1", "mix2", "mix4", "mov", "movl", "mux1", "mux2", "nc", "ne",
7610 + "neq", "nge", "ngt", "nl", "nle", "nlt", "nm", "nop", "nr", "ns", "nt1",
7611 + "nt2", "nta", "nz", "or", "orcm", "ord", "pack2", "pack4", "padd1",
7612 + "padd2", "padd4", "pavg1", "pavg2", "pavgsub1", "pavgsub2", "pcmp1",
7613 + "pcmp2", "pcmp4", "pmax1", "pmax2", "pmin1", "pmin2", "pmpy2", "pmpyshr2",
7614 + "popcnt", "pr", "probe", "psad1", "pshl2", "pshl4", "pshladd2", "pshr2",
7615 + "pshr4", "pshradd2", "psub1", "psub2", "psub4", "ptc", "ptr", "r", "raz",
7616 + "rel", "ret", "rfi", "rsm", "rum", "rw", "s", "s0", "s1", "s2", "s3",
7617 + "sa", "se", "setf", "shl", "shladd", "shladdp4", "shr", "shrp", "sig",
7618 + "spill", "spnt", "sptk", "srlz", "ssm", "sss", "st1", "st16", "st2",
7619 + "st4", "st8", "stf", "stf8", "stfd", "stfe", "stfs", "sub", "sum", "sxt1",
7620 + "sxt2", "sxt4", "sync", "tak", "tbit", "thash", "tnat", "tpa", "trunc",
7621 + "ttag", "u", "unc", "unord", "unpack1", "unpack2", "unpack4", "uss",
7622 + "uus", "uuu", "w", "wexit", "wtop", "x", "xchg1", "xchg2", "xchg4",
7623 + "xchg8", "xf", "xma", "xmpy", "xor", "xuf", "z", "zxt1", "zxt2", "zxt4",
7624 +};
7625 +
7626 +static const struct ia64_dependency
7627 +dependencies[] = {
7628 + { "ALAT", 0, 0, 0, -1, NULL, },
7629 + { "AR[BSP]", 26, 0, 2, 17, NULL, },
7630 + { "AR[BSPSTORE]", 26, 0, 2, 18, NULL, },
7631 + { "AR[CFLG]", 26, 0, 2, 27, NULL, },
7632 + { "AR[CCV]", 26, 0, 2, 32, NULL, },
7633 + { "AR[CSD]", 26, 0, 2, 25, NULL, },
7634 + { "AR[EC]", 26, 0, 2, 66, NULL, },
7635 + { "AR[EFLAG]", 26, 0, 2, 24, NULL, },
7636 + { "AR[FCR]", 26, 0, 2, 21, NULL, },
7637 + { "AR[FDR]", 26, 0, 2, 30, NULL, },
7638 + { "AR[FIR]", 26, 0, 2, 29, NULL, },
7639 + { "AR[FPSR].sf0.controls", 30, 0, 2, -1, NULL, },
7640 + { "AR[FPSR].sf1.controls", 30, 0, 2, -1, NULL, },
7641 + { "AR[FPSR].sf2.controls", 30, 0, 2, -1, NULL, },
7642 + { "AR[FPSR].sf3.controls", 30, 0, 2, -1, NULL, },
7643 + { "AR[FPSR].sf0.flags", 30, 0, 2, -1, NULL, },
7644 + { "AR[FPSR].sf1.flags", 30, 0, 2, -1, NULL, },
7645 + { "AR[FPSR].sf2.flags", 30, 0, 2, -1, NULL, },
7646 + { "AR[FPSR].sf3.flags", 30, 0, 2, -1, NULL, },
7647 + { "AR[FPSR].traps", 30, 0, 2, -1, NULL, },
7648 + { "AR[FPSR].rv", 30, 0, 2, -1, NULL, },
7649 + { "AR[FSR]", 26, 0, 2, 28, NULL, },
7650 + { "AR[ITC]", 26, 0, 2, 44, NULL, },
7651 + { "AR[K%], % in 0 - 7", 1, 0, 2, -1, NULL, },
7652 + { "AR[LC]", 26, 0, 2, 65, NULL, },
7653 + { "AR[PFS]", 26, 0, 2, 64, NULL, },
7654 + { "AR[PFS]", 26, 0, 2, 64, NULL, },
7655 + { "AR[PFS]", 26, 0, 0, 64, NULL, },
7656 + { "AR[RNAT]", 26, 0, 2, 19, NULL, },
7657 + { "AR[RSC]", 26, 0, 2, 16, NULL, },
7658 + { "AR[SSD]", 26, 0, 2, 26, NULL, },
7659 + { "AR[UNAT]{%}, % in 0 - 63", 2, 0, 2, -1, NULL, },
7660 + { "AR%, % in 8-15, 20, 22-23, 31, 33-35, 37-39, 41-43, 45-47, 67-111", 3, 0, 0, -1, NULL, },
7661 + { "AR%, % in 48-63, 112-127", 4, 0, 2, -1, NULL, },
7662 + { "BR%, % in 0 - 7", 5, 0, 2, -1, NULL, },
7663 + { "BR%, % in 0 - 7", 5, 0, 0, -1, NULL, },
7664 + { "BR%, % in 0 - 7", 5, 0, 2, -1, NULL, },
7665 + { "CFM", 6, 0, 2, -1, NULL, },
7666 + { "CFM", 6, 0, 2, -1, NULL, },
7667 + { "CFM", 6, 0, 2, -1, NULL, },
7668 + { "CFM", 6, 0, 2, -1, NULL, },
7669 + { "CFM", 6, 0, 0, -1, NULL, },
7670 + { "CPUID#", 7, 0, 5, -1, NULL, },
7671 + { "CR[CMCV]", 27, 0, 3, 74, NULL, },
7672 + { "CR[DCR]", 27, 0, 3, 0, NULL, },
7673 + { "CR[EOI]", 27, 0, 7, 67, "SC Section 10.8.3.4", },
7674 + { "CR[GPTA]", 27, 0, 3, 9, NULL, },
7675 + { "CR[IFA]", 27, 0, 1, 20, NULL, },
7676 + { "CR[IFA]", 27, 0, 3, 20, NULL, },
7677 + { "CR[IFS]", 27, 0, 3, 23, NULL, },
7678 + { "CR[IFS]", 27, 0, 1, 23, NULL, },
7679 + { "CR[IFS]", 27, 0, 1, 23, NULL, },
7680 + { "CR[IHA]", 27, 0, 3, 25, NULL, },
7681 + { "CR[IIM]", 27, 0, 3, 24, NULL, },
7682 + { "CR[IIP]", 27, 0, 3, 19, NULL, },
7683 + { "CR[IIP]", 27, 0, 1, 19, NULL, },
7684 + { "CR[IIPA]", 27, 0, 3, 22, NULL, },
7685 + { "CR[IPSR]", 27, 0, 3, 16, NULL, },
7686 + { "CR[IPSR]", 27, 0, 1, 16, NULL, },
7687 + { "CR[IRR%], % in 0 - 3", 8, 0, 3, -1, NULL, },
7688 + { "CR[ISR]", 27, 0, 3, 17, NULL, },
7689 + { "CR[ITIR]", 27, 0, 3, 21, NULL, },
7690 + { "CR[ITIR]", 27, 0, 1, 21, NULL, },
7691 + { "CR[ITM]", 27, 0, 3, 1, NULL, },
7692 + { "CR[ITV]", 27, 0, 3, 72, NULL, },
7693 + { "CR[IVA]", 27, 0, 4, 2, NULL, },
7694 + { "CR[IVR]", 27, 0, 7, 65, "SC Section 10.8.3.2", },
7695 + { "CR[LID]", 27, 0, 7, 64, "SC Section 10.8.3.1", },
7696 + { "CR[LRR%], % in 0 - 1", 9, 0, 3, -1, NULL, },
7697 + { "CR[PMV]", 27, 0, 3, 73, NULL, },
7698 + { "CR[PTA]", 27, 0, 3, 8, NULL, },
7699 + { "CR[TPR]", 27, 0, 3, 66, NULL, },
7700 + { "CR[TPR]", 27, 0, 7, 66, "SC Section 10.8.3.3", },
7701 + { "CR%, % in 3-7, 10-15, 18, 26-63, 75-79, 82-127", 10, 0, 0, -1, NULL, },
7702 + { "DBR#", 11, 0, 2, -1, NULL, },
7703 + { "DBR#", 11, 0, 3, -1, NULL, },
7704 + { "DTC", 0, 0, 3, -1, NULL, },
7705 + { "DTC", 0, 0, 2, -1, NULL, },
7706 + { "DTC", 0, 0, 0, -1, NULL, },
7707 + { "DTC", 0, 0, 2, -1, NULL, },
7708 + { "DTC_LIMIT*", 0, 0, 2, -1, NULL, },
7709 + { "DTR", 0, 0, 3, -1, NULL, },
7710 + { "DTR", 0, 0, 2, -1, NULL, },
7711 + { "DTR", 0, 0, 3, -1, NULL, },
7712 + { "DTR", 0, 0, 0, -1, NULL, },
7713 + { "DTR", 0, 0, 2, -1, NULL, },
7714 + { "FR%, % in 0 - 1", 12, 0, 0, -1, NULL, },
7715 + { "FR%, % in 2 - 127", 13, 0, 2, -1, NULL, },
7716 + { "FR%, % in 2 - 127", 13, 0, 0, -1, NULL, },
7717 + { "GR0", 14, 0, 0, -1, NULL, },
7718 + { "GR%, % in 1 - 127", 15, 0, 0, -1, NULL, },
7719 + { "GR%, % in 1 - 127", 15, 0, 2, -1, NULL, },
7720 + { "IBR#", 16, 0, 2, -1, NULL, },
7721 + { "InService*", 17, 0, 3, -1, NULL, },
7722 + { "InService*", 17, 0, 2, -1, NULL, },
7723 + { "InService*", 17, 0, 2, -1, NULL, },
7724 + { "IP", 0, 0, 0, -1, NULL, },
7725 + { "ITC", 0, 0, 4, -1, NULL, },
7726 + { "ITC", 0, 0, 2, -1, NULL, },
7727 + { "ITC", 0, 0, 0, -1, NULL, },
7728 + { "ITC", 0, 0, 4, -1, NULL, },
7729 + { "ITC", 0, 0, 2, -1, NULL, },
7730 + { "ITC_LIMIT*", 0, 0, 2, -1, NULL, },
7731 + { "ITR", 0, 0, 2, -1, NULL, },
7732 + { "ITR", 0, 0, 4, -1, NULL, },
7733 + { "ITR", 0, 0, 2, -1, NULL, },
7734 + { "ITR", 0, 0, 0, -1, NULL, },
7735 + { "ITR", 0, 0, 4, -1, NULL, },
7736 + { "memory", 0, 0, 0, -1, NULL, },
7737 + { "MSR#", 18, 0, 5, -1, NULL, },
7738 + { "PKR#", 19, 0, 3, -1, NULL, },
7739 + { "PKR#", 19, 0, 0, -1, NULL, },
7740 + { "PKR#", 19, 0, 2, -1, NULL, },
7741 + { "PKR#", 19, 0, 2, -1, NULL, },
7742 + { "PMC#", 20, 0, 2, -1, NULL, },
7743 + { "PMC#", 20, 0, 7, -1, "SC+3 Section 12.1.1", },
7744 + { "PMD#", 21, 0, 2, -1, NULL, },
7745 + { "PR0", 0, 0, 0, -1, NULL, },
7746 + { "PR%, % in 1 - 15", 22, 0, 2, -1, NULL, },
7747 + { "PR%, % in 1 - 15", 22, 0, 2, -1, NULL, },
7748 + { "PR%, % in 1 - 15", 22, 0, 0, -1, NULL, },
7749 + { "PR%, % in 16 - 62", 23, 0, 2, -1, NULL, },
7750 + { "PR%, % in 16 - 62", 23, 0, 2, -1, NULL, },
7751 + { "PR%, % in 16 - 62", 23, 0, 0, -1, NULL, },
7752 + { "PR63", 24, 0, 2, -1, NULL, },
7753 + { "PR63", 24, 0, 2, -1, NULL, },
7754 + { "PR63", 24, 0, 0, -1, NULL, },
7755 + { "PSR.ac", 28, 0, 1, 3, NULL, },
7756 + { "PSR.ac", 28, 0, 3, 3, NULL, },
7757 + { "PSR.ac", 28, 0, 2, 3, NULL, },
7758 + { "PSR.be", 28, 0, 1, 1, NULL, },
7759 + { "PSR.be", 28, 0, 3, 1, NULL, },
7760 + { "PSR.be", 28, 0, 2, 1, NULL, },
7761 + { "PSR.bn", 28, 0, 2, 44, NULL, },
7762 + { "PSR.cpl", 28, 0, 1, 32, NULL, },
7763 + { "PSR.da", 28, 0, 3, 38, NULL, },
7764 + { "PSR.db", 28, 0, 3, 24, NULL, },
7765 + { "PSR.db", 28, 0, 2, 24, NULL, },
7766 + { "PSR.db", 28, 0, 3, 24, NULL, },
7767 + { "PSR.dd", 28, 0, 3, 39, NULL, },
7768 + { "PSR.dfh", 28, 0, 3, 19, NULL, },
7769 + { "PSR.dfh", 28, 0, 2, 19, NULL, },
7770 + { "PSR.dfl", 28, 0, 3, 18, NULL, },
7771 + { "PSR.dfl", 28, 0, 2, 18, NULL, },
7772 + { "PSR.di", 28, 0, 3, 22, NULL, },
7773 + { "PSR.di", 28, 0, 2, 22, NULL, },
7774 + { "PSR.dt", 28, 0, 3, 17, NULL, },
7775 + { "PSR.dt", 28, 0, 2, 17, NULL, },
7776 + { "PSR.ed", 28, 0, 3, 43, NULL, },
7777 + { "PSR.i", 28, 0, 2, 14, NULL, },
7778 + { "PSR.i", 28, 0, 3, 14, NULL, },
7779 + { "PSR.ia", 28, 0, 0, 14, NULL, },
7780 + { "PSR.ic", 28, 0, 2, 13, NULL, },
7781 + { "PSR.ic", 28, 0, 3, 13, NULL, },
7782 + { "PSR.id", 28, 0, 0, 14, NULL, },
7783 + { "PSR.is", 28, 0, 0, 14, NULL, },
7784 + { "PSR.it", 28, 0, 3, 14, NULL, },
7785 + { "PSR.lp", 28, 0, 2, 25, NULL, },
7786 + { "PSR.lp", 28, 0, 3, 25, NULL, },
7787 + { "PSR.lp", 28, 0, 3, 25, NULL, },
7788 + { "PSR.mc", 28, 0, 0, 35, NULL, },
7789 + { "PSR.mfh", 28, 0, 2, 5, NULL, },
7790 + { "PSR.mfl", 28, 0, 2, 4, NULL, },
7791 + { "PSR.pk", 28, 0, 3, 15, NULL, },
7792 + { "PSR.pk", 28, 0, 2, 15, NULL, },
7793 + { "PSR.pp", 28, 0, 2, 21, NULL, },
7794 + { "PSR.ri", 28, 0, 0, 41, NULL, },
7795 + { "PSR.rt", 28, 0, 2, 27, NULL, },
7796 + { "PSR.rt", 28, 0, 3, 27, NULL, },
7797 + { "PSR.rt", 28, 0, 3, 27, NULL, },
7798 + { "PSR.si", 28, 0, 2, 23, NULL, },
7799 + { "PSR.si", 28, 0, 3, 23, NULL, },
7800 + { "PSR.sp", 28, 0, 2, 20, NULL, },
7801 + { "PSR.sp", 28, 0, 3, 20, NULL, },
7802 + { "PSR.ss", 28, 0, 3, 40, NULL, },
7803 + { "PSR.tb", 28, 0, 3, 26, NULL, },
7804 + { "PSR.tb", 28, 0, 2, 26, NULL, },
7805 + { "PSR.up", 28, 0, 2, 2, NULL, },
7806 + { "RR#", 25, 0, 3, -1, NULL, },
7807 + { "RR#", 25, 0, 2, -1, NULL, },
7808 + { "RSE", 29, 0, 2, -1, NULL, },
7809 + { "ALAT", 0, 1, 0, -1, NULL, },
7810 + { "AR[BSP]", 26, 1, 2, 17, NULL, },
7811 + { "AR[BSPSTORE]", 26, 1, 2, 18, NULL, },
7812 + { "AR[CCV]", 26, 1, 2, 32, NULL, },
7813 + { "AR[CFLG]", 26, 1, 2, 27, NULL, },
7814 + { "AR[CSD]", 26, 1, 2, 25, NULL, },
7815 + { "AR[EC]", 26, 1, 2, 66, NULL, },
7816 + { "AR[EFLAG]", 26, 1, 2, 24, NULL, },
7817 + { "AR[FCR]", 26, 1, 2, 21, NULL, },
7818 + { "AR[FDR]", 26, 1, 2, 30, NULL, },
7819 + { "AR[FIR]", 26, 1, 2, 29, NULL, },
7820 + { "AR[FPSR].sf0.controls", 30, 1, 2, -1, NULL, },
7821 + { "AR[FPSR].sf1.controls", 30, 1, 2, -1, NULL, },
7822 + { "AR[FPSR].sf2.controls", 30, 1, 2, -1, NULL, },
7823 + { "AR[FPSR].sf3.controls", 30, 1, 2, -1, NULL, },
7824 + { "AR[FPSR].sf0.flags", 30, 1, 0, -1, NULL, },
7825 + { "AR[FPSR].sf0.flags", 30, 1, 2, -1, NULL, },
7826 + { "AR[FPSR].sf0.flags", 30, 1, 2, -1, NULL, },
7827 + { "AR[FPSR].sf1.flags", 30, 1, 0, -1, NULL, },
7828 + { "AR[FPSR].sf1.flags", 30, 1, 2, -1, NULL, },
7829 + { "AR[FPSR].sf1.flags", 30, 1, 2, -1, NULL, },
7830 + { "AR[FPSR].sf2.flags", 30, 1, 0, -1, NULL, },
7831 + { "AR[FPSR].sf2.flags", 30, 1, 2, -1, NULL, },
7832 + { "AR[FPSR].sf2.flags", 30, 1, 2, -1, NULL, },
7833 + { "AR[FPSR].sf3.flags", 30, 1, 0, -1, NULL, },
7834 + { "AR[FPSR].sf3.flags", 30, 1, 2, -1, NULL, },
7835 + { "AR[FPSR].sf3.flags", 30, 1, 2, -1, NULL, },
7836 + { "AR[FPSR].rv", 30, 1, 2, -1, NULL, },
7837 + { "AR[FPSR].traps", 30, 1, 2, -1, NULL, },
7838 + { "AR[FSR]", 26, 1, 2, 28, NULL, },
7839 + { "AR[ITC]", 26, 1, 2, 44, NULL, },
7840 + { "AR[K%], % in 0 - 7", 1, 1, 2, -1, NULL, },
7841 + { "AR[LC]", 26, 1, 2, 65, NULL, },
7842 + { "AR[PFS]", 26, 1, 0, 64, NULL, },
7843 + { "AR[PFS]", 26, 1, 2, 64, NULL, },
7844 + { "AR[PFS]", 26, 1, 2, 64, NULL, },
7845 + { "AR[RNAT]", 26, 1, 2, 19, NULL, },
7846 + { "AR[RSC]", 26, 1, 2, 16, NULL, },
7847 + { "AR[UNAT]{%}, % in 0 - 63", 2, 1, 2, -1, NULL, },
7848 + { "AR%, % in 8-15, 20, 22-23, 31, 33-35, 37-39, 41-43, 45-47, 67-111", 3, 1, 0, -1, NULL, },
7849 + { "AR%, % in 48 - 63, 112-127", 4, 1, 2, -1, NULL, },
7850 + { "BR%, % in 0 - 7", 5, 1, 2, -1, NULL, },
7851 + { "BR%, % in 0 - 7", 5, 1, 2, -1, NULL, },
7852 + { "BR%, % in 0 - 7", 5, 1, 2, -1, NULL, },
7853 + { "BR%, % in 0 - 7", 5, 1, 0, -1, NULL, },
7854 + { "CFM", 6, 1, 2, -1, NULL, },
7855 + { "CPUID#", 7, 1, 0, -1, NULL, },
7856 + { "CR[CMCV]", 27, 1, 2, 74, NULL, },
7857 + { "CR[DCR]", 27, 1, 2, 0, NULL, },
7858 + { "CR[EOI]", 27, 1, 7, 67, "SC Section 10.8.3.4", },
7859 + { "CR[GPTA]", 27, 1, 2, 9, NULL, },
7860 + { "CR[IFA]", 27, 1, 2, 20, NULL, },
7861 + { "CR[IFS]", 27, 1, 2, 23, NULL, },
7862 + { "CR[IHA]", 27, 1, 2, 25, NULL, },
7863 + { "CR[IIM]", 27, 1, 2, 24, NULL, },
7864 + { "CR[IIP]", 27, 1, 2, 19, NULL, },
7865 + { "CR[IIPA]", 27, 1, 2, 22, NULL, },
7866 + { "CR[IPSR]", 27, 1, 2, 16, NULL, },
7867 + { "CR[IRR%], % in 0 - 3", 8, 1, 2, -1, NULL, },
7868 + { "CR[ISR]", 27, 1, 2, 17, NULL, },
7869 + { "CR[ITIR]", 27, 1, 2, 21, NULL, },
7870 + { "CR[ITM]", 27, 1, 2, 1, NULL, },
7871 + { "CR[ITV]", 27, 1, 2, 72, NULL, },
7872 + { "CR[IVA]", 27, 1, 2, 2, NULL, },
7873 + { "CR[IVR]", 27, 1, 7, 65, "SC", },
7874 + { "CR[LID]", 27, 1, 7, 64, "SC", },
7875 + { "CR[LRR%], % in 0 - 1", 9, 1, 2, -1, NULL, },
7876 + { "CR[PMV]", 27, 1, 2, 73, NULL, },
7877 + { "CR[PTA]", 27, 1, 2, 8, NULL, },
7878 + { "CR[TPR]", 27, 1, 2, 66, NULL, },
7879 + { "CR%, % in 3-7, 10-15, 18, 26-63, 75-79, 82-127", 10, 1, 0, -1, NULL, },
7880 + { "DBR#", 11, 1, 2, -1, NULL, },
7881 + { "DTC", 0, 1, 0, -1, NULL, },
7882 + { "DTC", 0, 1, 2, -1, NULL, },
7883 + { "DTC", 0, 1, 2, -1, NULL, },
7884 + { "DTC_LIMIT*", 0, 1, 2, -1, NULL, },
7885 + { "DTR", 0, 1, 2, -1, NULL, },
7886 + { "DTR", 0, 1, 2, -1, NULL, },
7887 + { "DTR", 0, 1, 2, -1, NULL, },
7888 + { "DTR", 0, 1, 0, -1, NULL, },
7889 + { "FR%, % in 0 - 1", 12, 1, 0, -1, NULL, },
7890 + { "FR%, % in 2 - 127", 13, 1, 2, -1, NULL, },
7891 + { "GR0", 14, 1, 0, -1, NULL, },
7892 + { "GR%, % in 1 - 127", 15, 1, 2, -1, NULL, },
7893 + { "IBR#", 16, 1, 2, -1, NULL, },
7894 + { "InService*", 17, 1, 7, -1, "SC", },
7895 + { "IP", 0, 1, 0, -1, NULL, },
7896 + { "ITC", 0, 1, 0, -1, NULL, },
7897 + { "ITC", 0, 1, 2, -1, NULL, },
7898 + { "ITC", 0, 1, 2, -1, NULL, },
7899 + { "ITR", 0, 1, 2, -1, NULL, },
7900 + { "ITR", 0, 1, 2, -1, NULL, },
7901 + { "ITR", 0, 1, 0, -1, NULL, },
7902 + { "memory", 0, 1, 0, -1, NULL, },
7903 + { "MSR#", 18, 1, 7, -1, "SC", },
7904 + { "PKR#", 19, 1, 0, -1, NULL, },
7905 + { "PKR#", 19, 1, 0, -1, NULL, },
7906 + { "PKR#", 19, 1, 2, -1, NULL, },
7907 + { "PMC#", 20, 1, 2, -1, NULL, },
7908 + { "PMD#", 21, 1, 2, -1, NULL, },
7909 + { "PR0", 0, 1, 0, -1, NULL, },
7910 + { "PR%, % in 1 - 15", 22, 1, 0, -1, NULL, },
7911 + { "PR%, % in 1 - 15", 22, 1, 0, -1, NULL, },
7912 + { "PR%, % in 1 - 15", 22, 1, 2, -1, NULL, },
7913 + { "PR%, % in 1 - 15", 22, 1, 2, -1, NULL, },
7914 + { "PR%, % in 16 - 62", 23, 1, 0, -1, NULL, },
7915 + { "PR%, % in 16 - 62", 23, 1, 0, -1, NULL, },
7916 + { "PR%, % in 16 - 62", 23, 1, 2, -1, NULL, },
7917 + { "PR%, % in 16 - 62", 23, 1, 2, -1, NULL, },
7918 + { "PR63", 24, 1, 0, -1, NULL, },
7919 + { "PR63", 24, 1, 0, -1, NULL, },
7920 + { "PR63", 24, 1, 2, -1, NULL, },
7921 + { "PR63", 24, 1, 2, -1, NULL, },
7922 + { "PSR.ac", 28, 1, 2, 3, NULL, },
7923 + { "PSR.be", 28, 1, 2, 1, NULL, },
7924 + { "PSR.bn", 28, 1, 2, 44, NULL, },
7925 + { "PSR.cpl", 28, 1, 2, 32, NULL, },
7926 + { "PSR.da", 28, 1, 2, 38, NULL, },
7927 + { "PSR.db", 28, 1, 2, 24, NULL, },
7928 + { "PSR.dd", 28, 1, 2, 39, NULL, },
7929 + { "PSR.dfh", 28, 1, 2, 19, NULL, },
7930 + { "PSR.dfl", 28, 1, 2, 18, NULL, },
7931 + { "PSR.di", 28, 1, 2, 22, NULL, },
7932 + { "PSR.dt", 28, 1, 2, 17, NULL, },
7933 + { "PSR.ed", 28, 1, 2, 43, NULL, },
7934 + { "PSR.i", 28, 1, 2, 14, NULL, },
7935 + { "PSR.ia", 28, 1, 2, 14, NULL, },
7936 + { "PSR.ic", 28, 1, 2, 13, NULL, },
7937 + { "PSR.id", 28, 1, 2, 14, NULL, },
7938 + { "PSR.is", 28, 1, 2, 14, NULL, },
7939 + { "PSR.it", 28, 1, 2, 14, NULL, },
7940 + { "PSR.lp", 28, 1, 2, 25, NULL, },
7941 + { "PSR.mc", 28, 1, 2, 35, NULL, },
7942 + { "PSR.mfh", 28, 1, 0, 5, NULL, },
7943 + { "PSR.mfh", 28, 1, 2, 5, NULL, },
7944 + { "PSR.mfh", 28, 1, 2, 5, NULL, },
7945 + { "PSR.mfl", 28, 1, 0, 4, NULL, },
7946 + { "PSR.mfl", 28, 1, 2, 4, NULL, },
7947 + { "PSR.mfl", 28, 1, 2, 4, NULL, },
7948 + { "PSR.pk", 28, 1, 2, 15, NULL, },
7949 + { "PSR.pp", 28, 1, 2, 21, NULL, },
7950 + { "PSR.ri", 28, 1, 2, 41, NULL, },
7951 + { "PSR.rt", 28, 1, 2, 27, NULL, },
7952 + { "PSR.si", 28, 1, 2, 23, NULL, },
7953 + { "PSR.sp", 28, 1, 2, 20, NULL, },
7954 + { "PSR.ss", 28, 1, 2, 40, NULL, },
7955 + { "PSR.tb", 28, 1, 2, 26, NULL, },
7956 + { "PSR.up", 28, 1, 2, 2, NULL, },
7957 + { "RR#", 25, 1, 2, -1, NULL, },
7958 + { "RSE", 29, 1, 2, -1, NULL, },
7959 + { "PR63", 24, 2, 6, -1, NULL, },
7960 +};
7961 +
7962 +static const unsigned short dep0[] = {
7963 + 96, 267, 2139, 2312,
7964 +};
7965 +
7966 +static const unsigned short dep1[] = {
7967 + 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312, 4135,
7968 + 20613,
7969 +};
7970 +
7971 +static const unsigned short dep2[] = {
7972 + 96, 267, 2165, 2166, 2168, 2169, 2171, 2172, 2174, 2329, 2332, 2333, 2336,
7973 + 2337, 2340, 2341,
7974 +};
7975 +
7976 +static const unsigned short dep3[] = {
7977 + 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2329, 2332,
7978 + 2333, 2336, 2337, 2340, 2341, 4135, 20613,
7979 +};
7980 +
7981 +static const unsigned short dep4[] = {
7982 + 96, 267, 22645, 22646, 22648, 22649, 22651, 22652, 22654, 22809, 22812, 22813,
7983 + 22816, 22817, 22820, 22821,
7984 +};
7985 +
7986 +static const unsigned short dep5[] = {
7987 + 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
7988 + 22809, 22812, 22813, 22816, 22817, 22820, 22821,
7989 +};
7990 +
7991 +static const unsigned short dep6[] = {
7992 + 96, 267, 2165, 2166, 2168, 2169, 2171, 2172, 2174, 2329, 2330, 2332, 2334,
7993 + 2336, 2338, 2340,
7994 +};
7995 +
7996 +static const unsigned short dep7[] = {
7997 + 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2329, 2330,
7998 + 2333, 2334, 2337, 2338, 2341, 4135, 20613,
7999 +};
8000 +
8001 +static const unsigned short dep8[] = {
8002 + 96, 267, 2165, 2166, 2168, 2169, 2171, 2172, 2174, 2329, 2331, 2333, 2335,
8003 + 2337, 2339, 2341,
8004 +};
8005 +
8006 +static const unsigned short dep9[] = {
8007 + 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2329, 2331,
8008 + 2332, 2335, 2336, 2339, 2340, 4135, 20613,
8009 +};
8010 +
8011 +static const unsigned short dep10[] = {
8012 + 96, 267, 2165, 2166, 2168, 2169, 2171, 2172, 2174, 2329, 2330, 2331, 2332,
8013 + 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341,
8014 +};
8015 +
8016 +static const unsigned short dep11[] = {
8017 + 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2329, 2330,
8018 + 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 4135, 20613,
8019 +
8020 +};
8021 +
8022 +static const unsigned short dep12[] = {
8023 + 96, 267, 2379,
8024 +};
8025 +
8026 +static const unsigned short dep13[] = {
8027 + 40, 41, 96, 156, 174, 175, 267, 2082, 2083, 2165, 2167, 2168, 2170, 2171,
8028 + 2173, 2174, 4135,
8029 +};
8030 +
8031 +static const unsigned short dep14[] = {
8032 + 96, 155, 267, 310, 2379, 28852, 29002,
8033 +};
8034 +
8035 +static const unsigned short dep15[] = {
8036 + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
8037 + 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 40, 41, 96, 144, 156, 174, 175,
8038 + 267, 310, 2082, 2083, 2165, 2167, 2168, 2170, 2171, 2173, 2174, 4135, 28852,
8039 + 29002,
8040 +};
8041 +
8042 +static const unsigned short dep16[] = {
8043 + 1, 6, 40, 96, 134, 182, 187, 226, 267, 297, 2379, 28852, 29002,
8044 +};
8045 +
8046 +static const unsigned short dep17[] = {
8047 + 1, 25, 27, 38, 40, 41, 96, 156, 158, 159, 174, 175, 182, 187, 226, 267, 297,
8048 + 2082, 2083, 2165, 2167, 2168, 2170, 2171, 2173, 2174, 4135, 28852, 29002,
8049 +
8050 +};
8051 +
8052 +static const unsigned short dep18[] = {
8053 + 1, 40, 51, 96, 182, 226, 233, 267, 28852, 29002,
8054 +};
8055 +
8056 +static const unsigned short dep19[] = {
8057 + 1, 38, 40, 41, 96, 153, 174, 182, 226, 233, 267, 4135, 28852, 29002,
8058 +};
8059 +
8060 +static const unsigned short dep20[] = {
8061 + 40, 96, 226, 267,
8062 +};
8063 +
8064 +static const unsigned short dep21[] = {
8065 + 96, 174, 226, 267,
8066 +};
8067 +
8068 +static const unsigned short dep22[] = {
8069 + 1, 40, 96, 128, 129, 131, 132, 133, 134, 135, 138, 139, 140, 141, 142, 143,
8070 + 144, 145, 146, 147, 148, 150, 151, 152, 153, 154, 155, 156, 159, 160, 161,
8071 + 162, 163, 164, 165, 166, 169, 170, 171, 172, 173, 174, 175, 176, 177, 182,
8072 + 226, 267, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
8073 + 307, 308, 309, 310, 311, 312, 313, 315, 316, 318, 319, 320, 321, 322, 323,
8074 + 324, 325, 326, 327, 328, 28852, 29002,
8075 +};
8076 +
8077 +static const unsigned short dep23[] = {
8078 + 1, 38, 40, 41, 50, 51, 55, 58, 72, 96, 134, 174, 182, 226, 267, 294, 295,
8079 + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
8080 + 311, 312, 313, 315, 316, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
8081 + 328, 4135, 28852, 29002,
8082 +};
8083 +
8084 +static const unsigned short dep24[] = {
8085 + 96, 133, 267, 296,
8086 +};
8087 +
8088 +static const unsigned short dep25[] = {
8089 + 96, 134, 174, 267, 296,
8090 +};
8091 +
8092 +static const unsigned short dep26[] = {
8093 + 96, 134, 267, 297,
8094 +};
8095 +
8096 +static const unsigned short dep27[] = {
8097 + 25, 26, 96, 97, 100, 104, 107, 134, 156, 174, 267, 297,
8098 +};
8099 +
8100 +static const unsigned short dep28[] = {
8101 + 40, 41, 96, 174, 267, 2165, 2167, 2168, 2170, 2171, 2173, 2174, 4135,
8102 +};
8103 +
8104 +static const unsigned short dep29[] = {
8105 + 1, 25, 40, 96, 182, 214, 215, 226, 267, 2082, 2270, 2273, 2379, 28852, 29002,
8106 +
8107 +};
8108 +
8109 +static const unsigned short dep30[] = {
8110 + 1, 6, 38, 40, 41, 96, 134, 156, 174, 175, 182, 214, 216, 226, 267, 2082, 2083,
8111 + 2165, 2167, 2168, 2170, 2171, 2173, 2174, 2271, 2273, 4135, 28852, 29002,
8112 +
8113 +};
8114 +
8115 +static const unsigned short dep31[] = {
8116 + 96, 267,
8117 +};
8118 +
8119 +static const unsigned short dep32[] = {
8120 + 96, 174, 267, 2082, 2084,
8121 +};
8122 +
8123 +static const unsigned short dep33[] = {
8124 + 40, 41, 96, 156, 174, 175, 267, 2165, 2167, 2168, 2170, 2171, 2173, 2174,
8125 + 4135,
8126 +};
8127 +
8128 +static const unsigned short dep34[] = {
8129 + 6, 37, 38, 39, 96, 124, 125, 187, 226, 267, 292, 293, 2379,
8130 +};
8131 +
8132 +static const unsigned short dep35[] = {
8133 + 6, 37, 40, 41, 96, 156, 174, 175, 187, 226, 267, 292, 293, 331, 2165, 2167,
8134 + 2168, 2170, 2171, 2173, 2174, 4135,
8135 +};
8136 +
8137 +static const unsigned short dep36[] = {
8138 + 24, 96, 213, 267, 2379,
8139 +};
8140 +
8141 +static const unsigned short dep37[] = {
8142 + 24, 40, 41, 96, 156, 174, 175, 213, 267, 2165, 2167, 2168, 2170, 2171, 2173,
8143 + 2174, 4135,
8144 +};
8145 +
8146 +static const unsigned short dep38[] = {
8147 + 6, 24, 37, 38, 39, 96, 124, 125, 187, 213, 226, 267, 292, 293, 2379,
8148 +};
8149 +
8150 +static const unsigned short dep39[] = {
8151 + 6, 24, 37, 40, 41, 96, 156, 174, 175, 187, 213, 226, 267, 292, 293, 331, 2165,
8152 + 2167, 2168, 2170, 2171, 2173, 2174, 4135,
8153 +};
8154 +
8155 +static const unsigned short dep40[] = {
8156 + 1, 6, 38, 40, 41, 96, 134, 156, 174, 175, 182, 214, 216, 226, 267, 2165, 2167,
8157 + 2168, 2170, 2171, 2173, 2174, 2271, 2273, 4135, 28852, 29002,
8158 +};
8159 +
8160 +static const unsigned short dep41[] = {
8161 + 96, 174, 267,
8162 +};
8163 +
8164 +static const unsigned short dep42[] = {
8165 + 15, 96, 196, 197, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
8166 + 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816,
8167 + 22817, 22820, 22821,
8168 +};
8169 +
8170 +static const unsigned short dep43[] = {
8171 + 11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2134, 2135, 2136, 2165, 2166,
8172 + 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 22809, 22812,
8173 + 22813, 22816, 22817, 22820, 22821,
8174 +};
8175 +
8176 +static const unsigned short dep44[] = {
8177 + 15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267, 2135, 2310,
8178 + 18593, 18594, 18746, 18747, 18749, 18750, 22645, 22646, 22647, 22649, 22650,
8179 + 22652, 22653, 22809, 22812, 22813, 22816, 22817, 22820, 22821,
8180 +};
8181 +
8182 +static const unsigned short dep45[] = {
8183 + 11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205,
8184 + 207, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2310, 4135, 16524, 16526,
8185 + 18746, 18748, 18749, 18751, 22809, 22812, 22813, 22816, 22817, 22820, 22821,
8186 +
8187 +};
8188 +
8189 +static const unsigned short dep46[] = {
8190 + 16, 96, 199, 200, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
8191 + 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816,
8192 + 22817, 22820, 22821,
8193 +};
8194 +
8195 +static const unsigned short dep47[] = {
8196 + 12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2134, 2135, 2136, 2165, 2166,
8197 + 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 22809, 22812,
8198 + 22813, 22816, 22817, 22820, 22821,
8199 +};
8200 +
8201 +static const unsigned short dep48[] = {
8202 + 17, 96, 202, 203, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
8203 + 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816,
8204 + 22817, 22820, 22821,
8205 +};
8206 +
8207 +static const unsigned short dep49[] = {
8208 + 13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2134, 2135, 2136, 2165, 2166,
8209 + 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 22809, 22812,
8210 + 22813, 22816, 22817, 22820, 22821,
8211 +};
8212 +
8213 +static const unsigned short dep50[] = {
8214 + 18, 96, 205, 206, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
8215 + 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816,
8216 + 22817, 22820, 22821,
8217 +};
8218 +
8219 +static const unsigned short dep51[] = {
8220 + 14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2134, 2135, 2136, 2165, 2166,
8221 + 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 22809, 22812,
8222 + 22813, 22816, 22817, 22820, 22821,
8223 +};
8224 +
8225 +static const unsigned short dep52[] = {
8226 + 15, 96, 196, 197, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
8227 +
8228 +};
8229 +
8230 +static const unsigned short dep53[] = {
8231 + 11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2134, 2135, 2136, 2165, 2166,
8232 + 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751,
8233 +};
8234 +
8235 +static const unsigned short dep54[] = {
8236 + 15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267, 2135, 2310,
8237 + 18593, 18594, 18746, 18747, 18749, 18750,
8238 +};
8239 +
8240 +static const unsigned short dep55[] = {
8241 + 11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205,
8242 + 207, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2310, 4135, 16524, 16526,
8243 + 18746, 18748, 18749, 18751,
8244 +};
8245 +
8246 +static const unsigned short dep56[] = {
8247 + 16, 96, 199, 200, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
8248 +
8249 +};
8250 +
8251 +static const unsigned short dep57[] = {
8252 + 12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2134, 2135, 2136, 2165, 2166,
8253 + 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751,
8254 +};
8255 +
8256 +static const unsigned short dep58[] = {
8257 + 17, 96, 202, 203, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
8258 +
8259 +};
8260 +
8261 +static const unsigned short dep59[] = {
8262 + 13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2134, 2135, 2136, 2165, 2166,
8263 + 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751,
8264 +};
8265 +
8266 +static const unsigned short dep60[] = {
8267 + 18, 96, 205, 206, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
8268 +
8269 +};
8270 +
8271 +static const unsigned short dep61[] = {
8272 + 14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2134, 2135, 2136, 2165, 2166,
8273 + 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751,
8274 +};
8275 +
8276 +static const unsigned short dep62[] = {
8277 + 96, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
8278 +};
8279 +
8280 +static const unsigned short dep63[] = {
8281 + 40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2310, 4135,
8282 + 16524, 16526, 18746, 18748, 18749, 18751,
8283 +};
8284 +
8285 +static const unsigned short dep64[] = {
8286 + 11, 96, 192, 267,
8287 +};
8288 +
8289 +static const unsigned short dep65[] = {
8290 + 11, 40, 41, 96, 174, 192, 267, 2165, 2166, 2169, 2172, 4135,
8291 +};
8292 +
8293 +static const unsigned short dep66[] = {
8294 + 11, 40, 41, 96, 174, 267, 2165, 2166, 2169, 2172, 4135,
8295 +};
8296 +
8297 +static const unsigned short dep67[] = {
8298 + 12, 96, 193, 267,
8299 +};
8300 +
8301 +static const unsigned short dep68[] = {
8302 + 11, 40, 41, 96, 174, 193, 267, 2165, 2166, 2169, 2172, 4135,
8303 +};
8304 +
8305 +static const unsigned short dep69[] = {
8306 + 13, 96, 194, 267,
8307 +};
8308 +
8309 +static const unsigned short dep70[] = {
8310 + 11, 40, 41, 96, 174, 194, 267, 2165, 2166, 2169, 2172, 4135,
8311 +};
8312 +
8313 +static const unsigned short dep71[] = {
8314 + 14, 96, 195, 267,
8315 +};
8316 +
8317 +static const unsigned short dep72[] = {
8318 + 11, 40, 41, 96, 174, 195, 267, 2165, 2166, 2169, 2172, 4135,
8319 +};
8320 +
8321 +static const unsigned short dep73[] = {
8322 + 15, 96, 197, 198, 267,
8323 +};
8324 +
8325 +static const unsigned short dep74[] = {
8326 + 40, 41, 96, 174, 197, 198, 267, 2165, 2166, 2169, 2172, 4135,
8327 +};
8328 +
8329 +static const unsigned short dep75[] = {
8330 + 40, 41, 96, 174, 267, 2165, 2166, 2169, 2172, 4135,
8331 +};
8332 +
8333 +static const unsigned short dep76[] = {
8334 + 16, 96, 200, 201, 267,
8335 +};
8336 +
8337 +static const unsigned short dep77[] = {
8338 + 40, 41, 96, 174, 200, 201, 267, 2165, 2166, 2169, 2172, 4135,
8339 +};
8340 +
8341 +static const unsigned short dep78[] = {
8342 + 17, 96, 203, 204, 267,
8343 +};
8344 +
8345 +static const unsigned short dep79[] = {
8346 + 40, 41, 96, 174, 203, 204, 267, 2165, 2166, 2169, 2172, 4135,
8347 +};
8348 +
8349 +static const unsigned short dep80[] = {
8350 + 18, 96, 206, 207, 267,
8351 +};
8352 +
8353 +static const unsigned short dep81[] = {
8354 + 40, 41, 96, 174, 206, 207, 267, 2165, 2166, 2169, 2172, 4135,
8355 +};
8356 +
8357 +static const unsigned short dep82[] = {
8358 + 15, 19, 20, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135,
8359 +
8360 +};
8361 +
8362 +static const unsigned short dep83[] = {
8363 + 15, 16, 19, 20, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135,
8364 +
8365 +};
8366 +
8367 +static const unsigned short dep84[] = {
8368 + 15, 17, 19, 20, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135,
8369 +
8370 +};
8371 +
8372 +static const unsigned short dep85[] = {
8373 + 15, 18, 19, 20, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135,
8374 +
8375 +};
8376 +
8377 +static const unsigned short dep86[] = {
8378 + 15, 96, 196, 197, 267,
8379 +};
8380 +
8381 +static const unsigned short dep87[] = {
8382 + 11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2165, 2166, 2169, 2172, 4135,
8383 +
8384 +};
8385 +
8386 +static const unsigned short dep88[] = {
8387 + 15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267,
8388 +};
8389 +
8390 +static const unsigned short dep89[] = {
8391 + 11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205,
8392 + 207, 267, 2165, 2166, 2169, 2172, 4135,
8393 +};
8394 +
8395 +static const unsigned short dep90[] = {
8396 + 16, 96, 199, 200, 267,
8397 +};
8398 +
8399 +static const unsigned short dep91[] = {
8400 + 12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2165, 2166, 2169, 2172, 4135,
8401 +
8402 +};
8403 +
8404 +static const unsigned short dep92[] = {
8405 + 17, 96, 202, 203, 267,
8406 +};
8407 +
8408 +static const unsigned short dep93[] = {
8409 + 13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2165, 2166, 2169, 2172, 4135,
8410 +
8411 +};
8412 +
8413 +static const unsigned short dep94[] = {
8414 + 18, 96, 205, 206, 267,
8415 +};
8416 +
8417 +static const unsigned short dep95[] = {
8418 + 14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2165, 2166, 2169, 2172, 4135,
8419 +
8420 +};
8421 +
8422 +static const unsigned short dep96[] = {
8423 + 15, 96, 196, 197, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332,
8424 + 2333, 2336, 2337, 2340, 2341,
8425 +};
8426 +
8427 +static const unsigned short dep97[] = {
8428 + 11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2134, 2135, 2136, 2165, 2166,
8429 + 2169, 2172, 2329, 2332, 2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526,
8430 +
8431 +};
8432 +
8433 +static const unsigned short dep98[] = {
8434 + 15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267, 2165, 2166,
8435 + 2167, 2169, 2170, 2172, 2173, 2329, 2332, 2333, 2336, 2337, 2340, 2341,
8436 +};
8437 +
8438 +static const unsigned short dep99[] = {
8439 + 11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205,
8440 + 207, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2329, 2332, 2333, 2336,
8441 + 2337, 2340, 2341, 4135, 16524, 16526,
8442 +};
8443 +
8444 +static const unsigned short dep100[] = {
8445 + 16, 96, 199, 200, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332,
8446 + 2333, 2336, 2337, 2340, 2341,
8447 +};
8448 +
8449 +static const unsigned short dep101[] = {
8450 + 12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2134, 2135, 2136, 2165, 2166,
8451 + 2169, 2172, 2329, 2332, 2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526,
8452 +
8453 +};
8454 +
8455 +static const unsigned short dep102[] = {
8456 + 17, 96, 202, 203, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332,
8457 + 2333, 2336, 2337, 2340, 2341,
8458 +};
8459 +
8460 +static const unsigned short dep103[] = {
8461 + 13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2134, 2135, 2136, 2165, 2166,
8462 + 2169, 2172, 2329, 2332, 2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526,
8463 +
8464 +};
8465 +
8466 +static const unsigned short dep104[] = {
8467 + 18, 96, 205, 206, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332,
8468 + 2333, 2336, 2337, 2340, 2341,
8469 +};
8470 +
8471 +static const unsigned short dep105[] = {
8472 + 14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2134, 2135, 2136, 2165, 2166,
8473 + 2169, 2172, 2329, 2332, 2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526,
8474 +
8475 +};
8476 +
8477 +static const unsigned short dep106[] = {
8478 + 15, 96, 196, 197, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809,
8479 + 22812, 22813, 22816, 22817, 22820, 22821,
8480 +};
8481 +
8482 +static const unsigned short dep107[] = {
8483 + 11, 19, 20, 40, 41, 96, 174, 196, 198, 267, 2134, 2135, 2136, 2165, 2166,
8484 + 2169, 2172, 4135, 16524, 16526, 22809, 22812, 22813, 22816, 22817, 22820,
8485 + 22821,
8486 +};
8487 +
8488 +static const unsigned short dep108[] = {
8489 + 15, 16, 17, 18, 96, 196, 197, 199, 200, 202, 203, 205, 206, 267, 22645, 22646,
8490 + 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813, 22816, 22817, 22820,
8491 + 22821,
8492 +};
8493 +
8494 +static const unsigned short dep109[] = {
8495 + 11, 12, 13, 14, 19, 20, 40, 41, 96, 174, 196, 198, 199, 201, 202, 204, 205,
8496 + 207, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 4135, 16524, 16526, 22809,
8497 + 22812, 22813, 22816, 22817, 22820, 22821,
8498 +};
8499 +
8500 +static const unsigned short dep110[] = {
8501 + 16, 96, 199, 200, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809,
8502 + 22812, 22813, 22816, 22817, 22820, 22821,
8503 +};
8504 +
8505 +static const unsigned short dep111[] = {
8506 + 12, 19, 20, 40, 41, 96, 174, 199, 201, 267, 2134, 2135, 2136, 2165, 2166,
8507 + 2169, 2172, 4135, 16524, 16526, 22809, 22812, 22813, 22816, 22817, 22820,
8508 + 22821,
8509 +};
8510 +
8511 +static const unsigned short dep112[] = {
8512 + 17, 96, 202, 203, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809,
8513 + 22812, 22813, 22816, 22817, 22820, 22821,
8514 +};
8515 +
8516 +static const unsigned short dep113[] = {
8517 + 13, 19, 20, 40, 41, 96, 174, 202, 204, 267, 2134, 2135, 2136, 2165, 2166,
8518 + 2169, 2172, 4135, 16524, 16526, 22809, 22812, 22813, 22816, 22817, 22820,
8519 + 22821,
8520 +};
8521 +
8522 +static const unsigned short dep114[] = {
8523 + 18, 96, 205, 206, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809,
8524 + 22812, 22813, 22816, 22817, 22820, 22821,
8525 +};
8526 +
8527 +static const unsigned short dep115[] = {
8528 + 14, 19, 20, 40, 41, 96, 174, 205, 207, 267, 2134, 2135, 2136, 2165, 2166,
8529 + 2169, 2172, 4135, 16524, 16526, 22809, 22812, 22813, 22816, 22817, 22820,
8530 + 22821,
8531 +};
8532 +
8533 +static const unsigned short dep116[] = {
8534 + 96, 267, 2165, 2166, 2167, 2169, 2170, 2172, 2173, 2329, 2332, 2333, 2336,
8535 + 2337, 2340, 2341,
8536 +};
8537 +
8538 +static const unsigned short dep117[] = {
8539 + 40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2329, 2332,
8540 + 2333, 2336, 2337, 2340, 2341, 4135, 16524, 16526,
8541 +};
8542 +
8543 +static const unsigned short dep118[] = {
8544 + 96, 267, 22645, 22646, 22647, 22649, 22650, 22652, 22653, 22809, 22812, 22813,
8545 + 22816, 22817, 22820, 22821,
8546 +};
8547 +
8548 +static const unsigned short dep119[] = {
8549 + 40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 4135, 16524,
8550 + 16526, 22809, 22812, 22813, 22816, 22817, 22820, 22821,
8551 +};
8552 +
8553 +static const unsigned short dep120[] = {
8554 + 19, 20, 40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2310,
8555 + 4135, 16524, 16526, 18746, 18748, 18749, 18751,
8556 +};
8557 +
8558 +static const unsigned short dep121[] = {
8559 + 40, 41, 96, 156, 174, 175, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172,
8560 + 4135, 20613,
8561 +};
8562 +
8563 +static const unsigned short dep122[] = {
8564 + 96, 267, 2083, 2084, 2271, 2272,
8565 +};
8566 +
8567 +static const unsigned short dep123[] = {
8568 + 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2270, 2272,
8569 + 4135, 20613,
8570 +};
8571 +
8572 +static const unsigned short dep124[] = {
8573 + 40, 41, 96, 174, 267, 2082, 2084, 2165, 2166, 2169, 2172, 2312, 4135, 20613,
8574 +
8575 +};
8576 +
8577 +static const unsigned short dep125[] = {
8578 + 96, 267, 14454, 14456, 14457, 14459, 14460, 14462, 14620, 14621, 14624, 14625,
8579 + 14628, 14629,
8580 +};
8581 +
8582 +static const unsigned short dep126[] = {
8583 + 40, 41, 96, 174, 267, 2137, 2138, 2139, 4135, 14620, 14621, 14624, 14625,
8584 + 14628, 14629, 20613, 24693, 24694, 24697, 24700,
8585 +};
8586 +
8587 +static const unsigned short dep127[] = {
8588 + 96, 121, 123, 124, 126, 267, 288, 289, 292, 293,
8589 +};
8590 +
8591 +static const unsigned short dep128[] = {
8592 + 40, 41, 96, 174, 267, 288, 289, 292, 293, 4135, 24693, 24694, 24697, 24700,
8593 +
8594 +};
8595 +
8596 +static const unsigned short dep129[] = {
8597 + 40, 41, 96, 174, 267, 2165, 2166, 2169, 2172, 2312, 4135, 20613,
8598 +};
8599 +
8600 +static const unsigned short dep130[] = {
8601 + 40, 41, 96, 118, 121, 124, 174, 267, 2312, 4135, 20613, 24693,
8602 +};
8603 +
8604 +static const unsigned short dep131[] = {
8605 + 6, 24, 26, 27, 96, 187, 213, 216, 267, 2081, 2269,
8606 +};
8607 +
8608 +static const unsigned short dep132[] = {
8609 + 40, 41, 96, 174, 187, 213, 215, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172,
8610 + 2269, 4135, 20613,
8611 +};
8612 +
8613 +static const unsigned short dep133[] = {
8614 + 6, 24, 25, 26, 40, 41, 96, 174, 267, 2081, 2165, 2166, 2169, 2172, 2312, 4135,
8615 + 20613,
8616 +};
8617 +
8618 +static const unsigned short dep134[] = {
8619 + 0, 40, 41, 96, 156, 174, 175, 267, 2165, 2166, 2169, 2172, 4135,
8620 +};
8621 +
8622 +static const unsigned short dep135[] = {
8623 + 0, 96, 181, 267,
8624 +};
8625 +
8626 +static const unsigned short dep136[] = {
8627 + 0, 40, 41, 96, 156, 174, 175, 181, 267, 2165, 2166, 2169, 2172, 4135,
8628 +};
8629 +
8630 +static const unsigned short dep137[] = {
8631 + 40, 41, 96, 174, 181, 267, 2165, 2166, 2169, 2172, 4135,
8632 +};
8633 +
8634 +static const unsigned short dep138[] = {
8635 + 2, 28, 96, 183, 217, 267, 28852, 29002,
8636 +};
8637 +
8638 +static const unsigned short dep139[] = {
8639 + 1, 2, 28, 29, 96, 168, 169, 174, 183, 217, 267, 28852, 29002,
8640 +};
8641 +
8642 +static const unsigned short dep140[] = {
8643 + 1, 28, 29, 38, 40, 41, 96, 168, 169, 174, 183, 217, 267, 4135, 28852, 29002,
8644 +
8645 +};
8646 +
8647 +static const unsigned short dep141[] = {
8648 + 0, 40, 41, 96, 174, 181, 267, 2165, 2166, 2169, 2172, 4135,
8649 +};
8650 +
8651 +static const unsigned short dep142[] = {
8652 + 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
8653 + 28, 29, 30, 31, 96, 182, 183, 184, 185, 186, 188, 189, 190, 191, 192, 193,
8654 + 194, 195, 197, 198, 200, 201, 203, 204, 206, 207, 208, 209, 210, 211, 217,
8655 + 218, 219, 267, 2071, 2081, 2260, 2269, 28852, 29002,
8656 +};
8657 +
8658 +static const unsigned short dep143[] = {
8659 + 29, 40, 41, 96, 134, 174, 182, 183, 184, 185, 186, 188, 189, 190, 191, 192,
8660 + 193, 194, 195, 197, 198, 200, 201, 203, 204, 206, 207, 208, 209, 210, 211,
8661 + 217, 218, 219, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2260, 2269,
8662 + 4135, 20613, 28852, 29002,
8663 +};
8664 +
8665 +static const unsigned short dep144[] = {
8666 + 96, 267, 14463, 14465, 14466, 14468, 14497, 14498, 14513, 14630, 14631, 14651,
8667 + 14652, 14654, 14655, 14664,
8668 +};
8669 +
8670 +static const unsigned short dep145[] = {
8671 + 40, 41, 96, 173, 174, 267, 2165, 2166, 2169, 2172, 4135, 14630, 14631, 14651,
8672 + 14652, 14654, 14655, 14664,
8673 +};
8674 +
8675 +static const unsigned short dep146[] = {
8676 + 14463, 14465, 14466, 14468, 14497, 14498, 14513, 14630, 14631, 14651, 14652,
8677 + 14654, 14655, 14664,
8678 +};
8679 +
8680 +static const unsigned short dep147[] = {
8681 + 173, 14630, 14631, 14651, 14652, 14654, 14655, 14664,
8682 +};
8683 +
8684 +static const unsigned short dep148[] = {
8685 + 96, 267, 14464, 14465, 14467, 14468, 14476, 14477, 14478, 14479, 14480, 14481,
8686 + 14482, 14483, 14485, 14488, 14489, 14497, 14498, 14499, 14500, 14501, 14506,
8687 + 14507, 14508, 14509, 14513, 14630, 14631, 14637, 14638, 14639, 14640, 14642,
8688 + 14644, 14651, 14652, 14654, 14655, 14656, 14657, 14660, 14661, 14664,
8689 +};
8690 +
8691 +static const unsigned short dep149[] = {
8692 + 40, 41, 72, 96, 134, 174, 267, 2165, 2166, 2169, 2172, 4135, 14630, 14631,
8693 + 14637, 14638, 14639, 14640, 14642, 14644, 14651, 14652, 14654, 14655, 14656,
8694 + 14657, 14660, 14661, 14664,
8695 +};
8696 +
8697 +static const unsigned short dep150[] = {
8698 + 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
8699 + 28, 29, 30, 31, 40, 41, 96, 134, 171, 174, 267, 2071, 2081, 2165, 2166, 2169,
8700 + 2172, 2312, 4135, 20613, 28852,
8701 +};
8702 +
8703 +static const unsigned short dep151[] = {
8704 + 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63,
8705 + 64, 65, 67, 69, 70, 71, 72, 93, 95, 96, 228, 229, 230, 231, 232, 233, 234,
8706 + 235, 236, 237, 238, 240, 241, 242, 243, 244, 246, 248, 249, 250, 266, 267,
8707 + 2116, 2295,
8708 +};
8709 +
8710 +static const unsigned short dep152[] = {
8711 + 40, 41, 95, 96, 134, 153, 174, 228, 229, 230, 231, 232, 233, 234, 235, 236,
8712 + 237, 238, 240, 241, 242, 243, 244, 246, 248, 249, 250, 266, 267, 2137, 2138,
8713 + 2139, 2165, 2166, 2169, 2172, 2295, 4135, 20613,
8714 +};
8715 +
8716 +static const unsigned short dep153[] = {
8717 + 59, 94, 96, 239, 266, 267, 2139, 2312,
8718 +};
8719 +
8720 +static const unsigned short dep154[] = {
8721 + 40, 41, 43, 44, 46, 48, 49, 51, 52, 53, 54, 56, 57, 60, 61, 63, 64, 65, 66,
8722 + 67, 69, 70, 71, 93, 94, 96, 134, 153, 174, 239, 266, 267, 2107, 2116, 2165,
8723 + 2166, 2169, 2172, 2312, 4135, 20613,
8724 +};
8725 +
8726 +static const unsigned short dep155[] = {
8727 + 2, 28, 41, 96, 183, 217, 226, 267, 2139, 2312, 28852, 29002,
8728 +};
8729 +
8730 +static const unsigned short dep156[] = {
8731 + 2, 25, 26, 28, 29, 38, 40, 41, 96, 168, 169, 174, 183, 217, 226, 267, 2312,
8732 + 4135, 20613, 28852, 29002,
8733 +};
8734 +
8735 +static const unsigned short dep157[] = {
8736 + 96, 128, 129, 131, 132, 136, 137, 140, 141, 142, 143, 144, 145, 146, 147,
8737 + 149, 152, 153, 157, 158, 161, 162, 163, 164, 165, 167, 168, 170, 171, 172,
8738 + 173, 175, 176, 177, 267, 294, 295, 299, 301, 302, 303, 304, 306, 308, 312,
8739 + 315, 316, 318, 319, 320, 321, 323, 324, 325, 327, 328,
8740 +};
8741 +
8742 +static const unsigned short dep158[] = {
8743 + 40, 41, 72, 96, 134, 174, 267, 294, 295, 299, 301, 302, 303, 304, 306, 308,
8744 + 312, 315, 316, 318, 319, 320, 321, 323, 324, 325, 327, 328, 2137, 2138, 2139,
8745 + 2165, 2166, 2169, 2172, 4135, 20613,
8746 +};
8747 +
8748 +static const unsigned short dep159[] = {
8749 + 96, 127, 129, 130, 132, 161, 162, 177, 267, 294, 295, 315, 316, 318, 319,
8750 + 328,
8751 +};
8752 +
8753 +static const unsigned short dep160[] = {
8754 + 40, 41, 96, 173, 174, 267, 294, 295, 315, 316, 318, 319, 328, 2137, 2138,
8755 + 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8756 +};
8757 +
8758 +static const unsigned short dep161[] = {
8759 + 40, 41, 96, 129, 132, 134, 137, 138, 141, 143, 145, 147, 149, 150, 152, 156,
8760 + 157, 159, 160, 161, 162, 164, 165, 167, 169, 170, 172, 174, 176, 177, 267,
8761 + 2165, 2166, 2169, 2172, 2312, 4135, 20613,
8762 +};
8763 +
8764 +static const unsigned short dep162[] = {
8765 + 40, 41, 96, 129, 132, 161, 162, 174, 177, 267, 2165, 2166, 2169, 2172, 2312,
8766 + 4135, 20613,
8767 +};
8768 +
8769 +static const unsigned short dep163[] = {
8770 + 40, 41, 75, 76, 81, 83, 96, 110, 134, 163, 174, 178, 267, 2137, 2138, 2139,
8771 + 2165, 2166, 2169, 2172, 2312, 4135, 20613,
8772 +};
8773 +
8774 +static const unsigned short dep164[] = {
8775 + 40, 41, 75, 76, 81, 83, 96, 110, 134, 135, 136, 138, 139, 163, 174, 178, 267,
8776 + 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8777 +};
8778 +
8779 +static const unsigned short dep165[] = {
8780 + 76, 77, 96, 100, 101, 254, 255, 267, 269, 270,
8781 +};
8782 +
8783 +static const unsigned short dep166[] = {
8784 + 40, 41, 47, 62, 77, 79, 85, 96, 98, 101, 134, 153, 174, 178, 254, 255, 267,
8785 + 269, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8786 +};
8787 +
8788 +static const unsigned short dep167[] = {
8789 + 40, 41, 47, 62, 77, 79, 96, 98, 101, 103, 105, 134, 153, 174, 178, 254, 255,
8790 + 267, 269, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8791 +};
8792 +
8793 +static const unsigned short dep168[] = {
8794 + 96, 267, 12466, 12467, 12617,
8795 +};
8796 +
8797 +static const unsigned short dep169[] = {
8798 + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135,
8799 + 12617, 20613,
8800 +};
8801 +
8802 +static const unsigned short dep170[] = {
8803 + 96, 267, 6218, 6219, 6396,
8804 +};
8805 +
8806 +static const unsigned short dep171[] = {
8807 + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135,
8808 + 6396, 20613,
8809 +};
8810 +
8811 +static const unsigned short dep172[] = {
8812 + 96, 267, 6236, 6409,
8813 +};
8814 +
8815 +static const unsigned short dep173[] = {
8816 + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135,
8817 + 6409, 20613,
8818 +};
8819 +
8820 +static const unsigned short dep174[] = {
8821 + 96, 267, 6254, 6255, 6256, 6257, 6420, 6422, 8469,
8822 +};
8823 +
8824 +static const unsigned short dep175[] = {
8825 + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135,
8826 + 6257, 6421, 6422, 8303, 8468, 20613,
8827 +};
8828 +
8829 +static const unsigned short dep176[] = {
8830 + 96, 267, 6258, 6259, 6423,
8831 +};
8832 +
8833 +static const unsigned short dep177[] = {
8834 + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135,
8835 + 6423, 20613,
8836 +};
8837 +
8838 +static const unsigned short dep178[] = {
8839 + 96, 267, 6260, 6424,
8840 +};
8841 +
8842 +static const unsigned short dep179[] = {
8843 + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135,
8844 + 6424, 20613,
8845 +};
8846 +
8847 +static const unsigned short dep180[] = {
8848 + 96, 267, 10349, 10515,
8849 +};
8850 +
8851 +static const unsigned short dep181[] = {
8852 + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135,
8853 + 10515, 20613,
8854 +};
8855 +
8856 +static const unsigned short dep182[] = {
8857 + 76, 77, 81, 82, 96, 100, 101, 254, 255, 257, 258, 267, 269, 270,
8858 +};
8859 +
8860 +static const unsigned short dep183[] = {
8861 + 40, 41, 47, 62, 77, 79, 82, 85, 96, 98, 101, 134, 153, 174, 178, 254, 255,
8862 + 257, 259, 267, 269, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8863 +
8864 +};
8865 +
8866 +static const unsigned short dep184[] = {
8867 + 76, 77, 96, 100, 101, 103, 104, 254, 255, 267, 269, 270, 271, 272,
8868 +};
8869 +
8870 +static const unsigned short dep185[] = {
8871 + 40, 41, 47, 62, 77, 79, 96, 98, 101, 103, 105, 134, 153, 174, 178, 254, 255,
8872 + 267, 269, 270, 271, 272, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8873 +
8874 +};
8875 +
8876 +static const unsigned short dep186[] = {
8877 + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312,
8878 + 4135, 12467, 20613,
8879 +};
8880 +
8881 +static const unsigned short dep187[] = {
8882 + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312,
8883 + 4135, 6218, 20613,
8884 +};
8885 +
8886 +static const unsigned short dep188[] = {
8887 + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312,
8888 + 4135, 6236, 20613,
8889 +};
8890 +
8891 +static const unsigned short dep189[] = {
8892 + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312,
8893 + 4135, 6256, 8302, 20613,
8894 +};
8895 +
8896 +static const unsigned short dep190[] = {
8897 + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312,
8898 + 4135, 6258, 20613,
8899 +};
8900 +
8901 +static const unsigned short dep191[] = {
8902 + 40, 41, 96, 134, 173, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172,
8903 + 2312, 4135, 6259, 6260, 20613,
8904 +};
8905 +
8906 +static const unsigned short dep192[] = {
8907 + 40, 41, 96, 134, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312,
8908 + 4135, 10349, 20613,
8909 +};
8910 +
8911 +static const unsigned short dep193[] = {
8912 + 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312, 4135,
8913 + 6186, 20613,
8914 +};
8915 +
8916 +static const unsigned short dep194[] = {
8917 + 76, 78, 79, 96, 97, 98, 99, 253, 254, 267, 268, 269,
8918 +};
8919 +
8920 +static const unsigned short dep195[] = {
8921 + 40, 41, 77, 78, 82, 84, 96, 99, 101, 103, 106, 134, 174, 178, 253, 255, 267,
8922 + 268, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8923 +};
8924 +
8925 +static const unsigned short dep196[] = {
8926 + 76, 78, 79, 80, 96, 97, 98, 99, 102, 253, 254, 256, 267, 268, 269,
8927 +};
8928 +
8929 +static const unsigned short dep197[] = {
8930 + 40, 41, 77, 78, 80, 82, 84, 96, 99, 101, 102, 103, 106, 134, 174, 178, 253,
8931 + 255, 256, 267, 268, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8932 +
8933 +};
8934 +
8935 +static const unsigned short dep198[] = {
8936 + 76, 78, 79, 83, 84, 85, 96, 97, 98, 99, 253, 254, 259, 260, 267, 268, 269,
8937 +
8938 +};
8939 +
8940 +static const unsigned short dep199[] = {
8941 + 40, 41, 77, 78, 82, 84, 96, 99, 101, 134, 174, 178, 253, 255, 258, 260, 267,
8942 + 268, 270, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8943 +};
8944 +
8945 +static const unsigned short dep200[] = {
8946 + 76, 78, 79, 96, 97, 98, 99, 105, 106, 107, 253, 254, 267, 268, 269, 272, 273,
8947 +
8948 +};
8949 +
8950 +static const unsigned short dep201[] = {
8951 + 40, 41, 77, 78, 96, 99, 101, 103, 106, 134, 174, 178, 253, 255, 267, 268,
8952 + 270, 271, 273, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 4135, 20613,
8953 +};
8954 +
8955 +static const unsigned short dep202[] = {
8956 + 40, 41, 46, 70, 96, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172,
8957 + 2312, 4135, 20613,
8958 +};
8959 +
8960 +static const unsigned short dep203[] = {
8961 + 40, 41, 96, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312,
8962 + 4135, 20613,
8963 +};
8964 +
8965 +static const unsigned short dep204[] = {
8966 + 40, 41, 76, 81, 83, 96, 134, 174, 178, 267, 2137, 2138, 2139, 2165, 2166,
8967 + 2169, 2172, 2312, 4135, 20613,
8968 +};
8969 +
8970 +static const unsigned short dep205[] = {
8971 + 40, 41, 96, 156, 174, 175, 267, 2134, 2135, 2136, 2137, 2138, 2139, 2165,
8972 + 2166, 2169, 2172, 4135, 16524, 16526, 20613,
8973 +};
8974 +
8975 +static const unsigned short dep206[] = {
8976 + 40, 41, 76, 81, 83, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172,
8977 + 4135, 20613,
8978 +};
8979 +
8980 +static const unsigned short dep207[] = {
8981 + 40, 41, 77, 78, 96, 99, 134, 174, 253, 255, 267, 268, 270, 2137, 2138, 2139,
8982 + 2165, 2166, 2169, 2172, 4135, 20613,
8983 +};
8984 +
8985 +static const unsigned short dep208[] = {
8986 + 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, 138,
8987 + 139, 146, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2312,
8988 + 4135, 20613,
8989 +};
8990 +
8991 +static const unsigned short dep209[] = {
8992 + 5, 96, 186, 267, 2139, 2312,
8993 +};
8994 +
8995 +static const unsigned short dep210[] = {
8996 + 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, 138,
8997 + 139, 146, 163, 174, 178, 186, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172,
8998 + 2312, 4135, 20613,
8999 +};
9000 +
9001 +static const unsigned short dep211[] = {
9002 + 40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136,
9003 + 138, 139, 146, 148, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169,
9004 + 2172, 2312, 4135, 20613,
9005 +};
9006 +
9007 +static const unsigned short dep212[] = {
9008 + 0, 96, 181, 267, 2139, 2312,
9009 +};
9010 +
9011 +static const unsigned short dep213[] = {
9012 + 0, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136,
9013 + 138, 139, 146, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165, 2166, 2169,
9014 + 2172, 2312, 4135, 20613,
9015 +};
9016 +
9017 +static const unsigned short dep214[] = {
9018 + 0, 40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135,
9019 + 136, 138, 139, 146, 148, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165,
9020 + 2166, 2169, 2172, 2312, 4135, 20613,
9021 +};
9022 +
9023 +static const unsigned short dep215[] = {
9024 + 31, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136,
9025 + 138, 139, 146, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172,
9026 + 2312, 4135, 20613,
9027 +};
9028 +
9029 +static const unsigned short dep216[] = {
9030 + 0, 96, 181, 267, 2312, 26714,
9031 +};
9032 +
9033 +static const unsigned short dep217[] = {
9034 + 0, 96, 108, 181, 267, 274,
9035 +};
9036 +
9037 +static const unsigned short dep218[] = {
9038 + 0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138,
9039 + 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165, 2166, 2169,
9040 + 2172, 4135, 20613,
9041 +};
9042 +
9043 +static const unsigned short dep219[] = {
9044 + 0, 5, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136,
9045 + 138, 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165, 2166,
9046 + 2169, 2172, 4135, 20613,
9047 +};
9048 +
9049 +static const unsigned short dep220[] = {
9050 + 0, 31, 96, 108, 181, 219, 267, 274,
9051 +};
9052 +
9053 +static const unsigned short dep221[] = {
9054 + 0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138,
9055 + 139, 146, 163, 174, 178, 181, 219, 267, 274, 2137, 2138, 2139, 2165, 2166,
9056 + 2169, 2172, 4135, 20613,
9057 +};
9058 +
9059 +static const unsigned short dep222[] = {
9060 + 0, 96, 108, 181, 267, 274, 2139, 2312,
9061 +};
9062 +
9063 +static const unsigned short dep223[] = {
9064 + 0, 4, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135,
9065 + 136, 138, 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165,
9066 + 2166, 2169, 2172, 2312, 4135, 20613,
9067 +};
9068 +
9069 +static const unsigned short dep224[] = {
9070 + 0, 4, 5, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135,
9071 + 136, 138, 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165,
9072 + 2166, 2169, 2172, 2312, 4135, 20613,
9073 +};
9074 +
9075 +static const unsigned short dep225[] = {
9076 + 0, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136,
9077 + 138, 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165, 2166,
9078 + 2169, 2172, 2312, 4135, 20613,
9079 +};
9080 +
9081 +static const unsigned short dep226[] = {
9082 + 40, 41, 96, 174, 267, 2134, 2135, 2136, 2165, 2166, 2169, 2172, 2312, 4135,
9083 + 16524, 16526, 20613,
9084 +};
9085 +
9086 +static const unsigned short dep227[] = {
9087 + 0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138,
9088 + 139, 146, 163, 174, 178, 181, 267, 274, 2137, 2138, 2139, 2165, 2166, 2169,
9089 + 2172, 2312, 4135, 20613,
9090 +};
9091 +
9092 +static const unsigned short dep228[] = {
9093 + 0, 31, 96, 108, 181, 219, 267, 274, 2139, 2312,
9094 +};
9095 +
9096 +static const unsigned short dep229[] = {
9097 + 0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138,
9098 + 139, 146, 163, 174, 178, 181, 219, 267, 274, 2137, 2138, 2139, 2165, 2166,
9099 + 2169, 2172, 2312, 4135, 20613,
9100 +};
9101 +
9102 +static const unsigned short dep230[] = {
9103 + 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, 138,
9104 + 139, 146, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2310,
9105 + 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613,
9106 +};
9107 +
9108 +static const unsigned short dep231[] = {
9109 + 40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136,
9110 + 138, 139, 146, 148, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169,
9111 + 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613,
9112 +};
9113 +
9114 +static const unsigned short dep232[] = {
9115 + 0, 96, 181, 267, 2135, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
9116 +};
9117 +
9118 +static const unsigned short dep233[] = {
9119 + 0, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136,
9120 + 138, 139, 146, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165, 2166, 2169,
9121 + 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613,
9122 +};
9123 +
9124 +static const unsigned short dep234[] = {
9125 + 0, 40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135,
9126 + 136, 138, 139, 146, 148, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165,
9127 + 2166, 2169, 2172, 2310, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613,
9128 +
9129 +};
9130 +
9131 +static const unsigned short dep235[] = {
9132 + 0, 96, 181, 267, 2136, 2310, 18593, 18594, 18746, 18747, 18749, 18750,
9133 +};
9134 +
9135 +static const unsigned short dep236[] = {
9136 + 96, 267, 2135, 2139, 2310, 2312, 18593, 18594, 18746, 18747, 18749, 18750,
9137 +
9138 +};
9139 +
9140 +static const unsigned short dep237[] = {
9141 + 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136, 138,
9142 + 139, 146, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2310,
9143 + 2312, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613,
9144 +};
9145 +
9146 +static const unsigned short dep238[] = {
9147 + 40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136,
9148 + 138, 139, 146, 148, 163, 174, 178, 267, 2137, 2138, 2139, 2165, 2166, 2169,
9149 + 2172, 2310, 2312, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613,
9150 +};
9151 +
9152 +static const unsigned short dep239[] = {
9153 + 0, 96, 181, 267, 2135, 2139, 2310, 2312, 18593, 18594, 18746, 18747, 18749,
9154 + 18750,
9155 +};
9156 +
9157 +static const unsigned short dep240[] = {
9158 + 0, 40, 41, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135, 136,
9159 + 138, 139, 146, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165, 2166, 2169,
9160 + 2172, 2310, 2312, 4135, 16524, 16526, 18746, 18748, 18749, 18751, 20613,
9161 +};
9162 +
9163 +static const unsigned short dep241[] = {
9164 + 0, 40, 41, 44, 75, 76, 81, 83, 96, 108, 110, 127, 128, 130, 131, 134, 135,
9165 + 136, 138, 139, 146, 148, 163, 174, 178, 181, 267, 2137, 2138, 2139, 2165,
9166 + 2166, 2169, 2172, 2310, 2312, 4135, 16524, 16526, 18746, 18748, 18749, 18751,
9167 + 20613,
9168 +};
9169 +
9170 +static const unsigned short dep242[] = {
9171 + 0, 96, 181, 267, 2136, 2139, 2310, 2312, 18593, 18594, 18746, 18747, 18749,
9172 + 18750,
9173 +};
9174 +
9175 +static const unsigned short dep243[] = {
9176 + 0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138,
9177 + 139, 146, 163, 174, 178, 181, 267, 274, 2134, 2135, 2136, 2137, 2138, 2139,
9178 + 2165, 2166, 2169, 2172, 4135, 16524, 16526, 20613,
9179 +};
9180 +
9181 +static const unsigned short dep244[] = {
9182 + 40, 41, 75, 96, 134, 148, 174, 267, 2165, 2166, 2169, 2172, 4135,
9183 +};
9184 +
9185 +static const unsigned short dep245[] = {
9186 + 40, 41, 75, 96, 134, 135, 139, 148, 174, 267, 2165, 2166, 2169, 2172, 4135,
9187 +
9188 +};
9189 +
9190 +static const unsigned short dep246[] = {
9191 + 40, 41, 75, 96, 134, 148, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172,
9192 + 2312, 4135, 20613,
9193 +};
9194 +
9195 +static const unsigned short dep247[] = {
9196 + 40, 41, 75, 96, 134, 135, 139, 148, 174, 267, 2137, 2138, 2139, 2165, 2166,
9197 + 2169, 2172, 2312, 4135, 20613,
9198 +};
9199 +
9200 +static const unsigned short dep248[] = {
9201 + 40, 41, 96, 174, 267, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2310, 4135,
9202 + 16524, 16526, 18746, 18748, 18749, 18751, 20613,
9203 +};
9204 +
9205 +static const unsigned short dep249[] = {
9206 + 0, 40, 41, 75, 76, 81, 83, 96, 110, 127, 128, 130, 131, 134, 135, 136, 138,
9207 + 139, 146, 163, 174, 178, 181, 267, 274, 2134, 2135, 2136, 2137, 2138, 2139,
9208 + 2165, 2166, 2169, 2172, 2312, 4135, 16524, 16526, 20613,
9209 +};
9210 +
9211 +static const unsigned short dep250[] = {
9212 + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
9213 + 22, 24, 26, 27, 28, 29, 30, 31, 96, 182, 183, 184, 185, 186, 187, 188, 189,
9214 + 190, 191, 192, 193, 194, 195, 197, 198, 200, 201, 203, 204, 206, 207, 208,
9215 + 209, 210, 211, 213, 216, 217, 218, 219, 267, 2071, 2081, 2139, 2260, 2269,
9216 + 2312, 28852, 29002,
9217 +};
9218 +
9219 +static const unsigned short dep251[] = {
9220 + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
9221 + 22, 24, 25, 26, 28, 29, 30, 31, 40, 41, 96, 134, 171, 174, 182, 183, 184,
9222 + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 197, 198, 200, 201,
9223 + 203, 204, 206, 207, 208, 209, 210, 211, 213, 215, 217, 218, 219, 267, 2071,
9224 + 2081, 2137, 2138, 2139, 2165, 2166, 2169, 2172, 2260, 2269, 2312, 4135, 20613,
9225 + 28852, 29002,
9226 +};
9227 +
9228 +#define NELS(X) (sizeof(X)/sizeof(X[0]))
9229 +static const struct ia64_opcode_dependency
9230 +op_dependencies[] = {
9231 + { NELS(dep1), dep1, NELS(dep0), dep0, },
9232 + { NELS(dep3), dep3, NELS(dep2), dep2, },
9233 + { NELS(dep5), dep5, NELS(dep4), dep4, },
9234 + { NELS(dep7), dep7, NELS(dep6), dep6, },
9235 + { NELS(dep9), dep9, NELS(dep8), dep8, },
9236 + { NELS(dep11), dep11, NELS(dep10), dep10, },
9237 + { NELS(dep13), dep13, NELS(dep12), dep12, },
9238 + { NELS(dep15), dep15, NELS(dep14), dep14, },
9239 + { NELS(dep17), dep17, NELS(dep16), dep16, },
9240 + { NELS(dep19), dep19, NELS(dep18), dep18, },
9241 + { NELS(dep21), dep21, NELS(dep20), dep20, },
9242 + { NELS(dep23), dep23, NELS(dep22), dep22, },
9243 + { NELS(dep25), dep25, NELS(dep24), dep24, },
9244 + { NELS(dep27), dep27, NELS(dep26), dep26, },
9245 + { NELS(dep28), dep28, NELS(dep12), dep12, },
9246 + { NELS(dep30), dep30, NELS(dep29), dep29, },
9247 + { NELS(dep32), dep32, NELS(dep31), dep31, },
9248 + { NELS(dep33), dep33, NELS(dep12), dep12, },
9249 + { NELS(dep35), dep35, NELS(dep34), dep34, },
9250 + { NELS(dep37), dep37, NELS(dep36), dep36, },
9251 + { NELS(dep39), dep39, NELS(dep38), dep38, },
9252 + { NELS(dep40), dep40, NELS(dep29), dep29, },
9253 + { NELS(dep41), dep41, NELS(dep31), dep31, },
9254 + { NELS(dep43), dep43, NELS(dep42), dep42, },
9255 + { NELS(dep45), dep45, NELS(dep44), dep44, },
9256 + { NELS(dep47), dep47, NELS(dep46), dep46, },
9257 + { NELS(dep49), dep49, NELS(dep48), dep48, },
9258 + { NELS(dep51), dep51, NELS(dep50), dep50, },
9259 + { NELS(dep53), dep53, NELS(dep52), dep52, },
9260 + { NELS(dep55), dep55, NELS(dep54), dep54, },
9261 + { NELS(dep57), dep57, NELS(dep56), dep56, },
9262 + { NELS(dep59), dep59, NELS(dep58), dep58, },
9263 + { NELS(dep61), dep61, NELS(dep60), dep60, },
9264 + { NELS(dep63), dep63, NELS(dep62), dep62, },
9265 + { NELS(dep65), dep65, NELS(dep64), dep64, },
9266 + { NELS(dep66), dep66, NELS(dep31), dep31, },
9267 + { NELS(dep68), dep68, NELS(dep67), dep67, },
9268 + { NELS(dep70), dep70, NELS(dep69), dep69, },
9269 + { NELS(dep72), dep72, NELS(dep71), dep71, },
9270 + { NELS(dep74), dep74, NELS(dep73), dep73, },
9271 + { NELS(dep75), dep75, NELS(dep31), dep31, },
9272 + { NELS(dep77), dep77, NELS(dep76), dep76, },
9273 + { NELS(dep79), dep79, NELS(dep78), dep78, },
9274 + { NELS(dep81), dep81, NELS(dep80), dep80, },
9275 + { NELS(dep82), dep82, NELS(dep31), dep31, },
9276 + { NELS(dep83), dep83, NELS(dep31), dep31, },
9277 + { NELS(dep84), dep84, NELS(dep31), dep31, },
9278 + { NELS(dep85), dep85, NELS(dep31), dep31, },
9279 + { NELS(dep87), dep87, NELS(dep86), dep86, },
9280 + { NELS(dep89), dep89, NELS(dep88), dep88, },
9281 + { NELS(dep91), dep91, NELS(dep90), dep90, },
9282 + { NELS(dep93), dep93, NELS(dep92), dep92, },
9283 + { NELS(dep95), dep95, NELS(dep94), dep94, },
9284 + { NELS(dep97), dep97, NELS(dep96), dep96, },
9285 + { NELS(dep99), dep99, NELS(dep98), dep98, },
9286 + { NELS(dep101), dep101, NELS(dep100), dep100, },
9287 + { NELS(dep103), dep103, NELS(dep102), dep102, },
9288 + { NELS(dep105), dep105, NELS(dep104), dep104, },
9289 + { NELS(dep107), dep107, NELS(dep106), dep106, },
9290 + { NELS(dep109), dep109, NELS(dep108), dep108, },
9291 + { NELS(dep111), dep111, NELS(dep110), dep110, },
9292 + { NELS(dep113), dep113, NELS(dep112), dep112, },
9293 + { NELS(dep115), dep115, NELS(dep114), dep114, },
9294 + { NELS(dep117), dep117, NELS(dep116), dep116, },
9295 + { NELS(dep119), dep119, NELS(dep118), dep118, },
9296 + { NELS(dep120), dep120, NELS(dep62), dep62, },
9297 + { NELS(dep121), dep121, NELS(dep31), dep31, },
9298 + { NELS(dep123), dep123, NELS(dep122), dep122, },
9299 + { NELS(dep124), dep124, NELS(dep0), dep0, },
9300 + { NELS(dep126), dep126, NELS(dep125), dep125, },
9301 + { NELS(dep128), dep128, NELS(dep127), dep127, },
9302 + { NELS(dep129), dep129, NELS(dep0), dep0, },
9303 + { NELS(dep130), dep130, NELS(dep0), dep0, },
9304 + { NELS(dep132), dep132, NELS(dep131), dep131, },
9305 + { NELS(dep133), dep133, NELS(dep0), dep0, },
9306 + { NELS(dep134), dep134, NELS(dep31), dep31, },
9307 + { NELS(dep136), dep136, NELS(dep135), dep135, },
9308 + { NELS(dep137), dep137, NELS(dep135), dep135, },
9309 + { NELS(dep139), dep139, NELS(dep138), dep138, },
9310 + { NELS(dep140), dep140, NELS(dep138), dep138, },
9311 + { NELS(dep141), dep141, NELS(dep135), dep135, },
9312 + { NELS(dep143), dep143, NELS(dep142), dep142, },
9313 + { NELS(dep145), dep145, NELS(dep144), dep144, },
9314 + { NELS(dep147), dep147, NELS(dep146), dep146, },
9315 + { NELS(dep149), dep149, NELS(dep148), dep148, },
9316 + { NELS(dep150), dep150, NELS(dep0), dep0, },
9317 + { NELS(dep152), dep152, NELS(dep151), dep151, },
9318 + { NELS(dep154), dep154, NELS(dep153), dep153, },
9319 + { NELS(dep156), dep156, NELS(dep155), dep155, },
9320 + { NELS(dep158), dep158, NELS(dep157), dep157, },
9321 + { NELS(dep160), dep160, NELS(dep159), dep159, },
9322 + { NELS(dep161), dep161, NELS(dep0), dep0, },
9323 + { NELS(dep162), dep162, NELS(dep0), dep0, },
9324 + { NELS(dep163), dep163, NELS(dep0), dep0, },
9325 + { NELS(dep164), dep164, NELS(dep31), dep31, },
9326 + { NELS(dep166), dep166, NELS(dep165), dep165, },
9327 + { NELS(dep167), dep167, NELS(dep165), dep165, },
9328 + { NELS(dep169), dep169, NELS(dep168), dep168, },
9329 + { NELS(dep171), dep171, NELS(dep170), dep170, },
9330 + { NELS(dep173), dep173, NELS(dep172), dep172, },
9331 + { NELS(dep175), dep175, NELS(dep174), dep174, },
9332 + { NELS(dep177), dep177, NELS(dep176), dep176, },
9333 + { NELS(dep179), dep179, NELS(dep178), dep178, },
9334 + { NELS(dep181), dep181, NELS(dep180), dep180, },
9335 + { NELS(dep183), dep183, NELS(dep182), dep182, },
9336 + { NELS(dep185), dep185, NELS(dep184), dep184, },
9337 + { NELS(dep186), dep186, NELS(dep0), dep0, },
9338 + { NELS(dep187), dep187, NELS(dep0), dep0, },
9339 + { NELS(dep188), dep188, NELS(dep0), dep0, },
9340 + { NELS(dep189), dep189, NELS(dep0), dep0, },
9341 + { NELS(dep190), dep190, NELS(dep0), dep0, },
9342 + { NELS(dep191), dep191, NELS(dep0), dep0, },
9343 + { NELS(dep192), dep192, NELS(dep0), dep0, },
9344 + { NELS(dep193), dep193, NELS(dep0), dep0, },
9345 + { NELS(dep195), dep195, NELS(dep194), dep194, },
9346 + { NELS(dep197), dep197, NELS(dep196), dep196, },
9347 + { NELS(dep199), dep199, NELS(dep198), dep198, },
9348 + { NELS(dep201), dep201, NELS(dep200), dep200, },
9349 + { NELS(dep202), dep202, NELS(dep0), dep0, },
9350 + { NELS(dep203), dep203, NELS(dep0), dep0, },
9351 + { NELS(dep204), dep204, NELS(dep0), dep0, },
9352 + { NELS(dep205), dep205, NELS(dep31), dep31, },
9353 + { NELS(dep206), dep206, NELS(dep31), dep31, },
9354 + { NELS(dep207), dep207, NELS(dep194), dep194, },
9355 + { NELS(dep208), dep208, NELS(dep0), dep0, },
9356 + { NELS(dep210), dep210, NELS(dep209), dep209, },
9357 + { NELS(dep211), dep211, NELS(dep0), dep0, },
9358 + { NELS(dep213), dep213, NELS(dep212), dep212, },
9359 + { NELS(dep214), dep214, NELS(dep212), dep212, },
9360 + { NELS(dep215), dep215, NELS(dep0), dep0, },
9361 + { NELS(dep213), dep213, NELS(dep216), dep216, },
9362 + { NELS(dep218), dep218, NELS(dep217), dep217, },
9363 + { NELS(dep219), dep219, NELS(dep217), dep217, },
9364 + { NELS(dep221), dep221, NELS(dep220), dep220, },
9365 + { NELS(dep223), dep223, NELS(dep222), dep222, },
9366 + { NELS(dep224), dep224, NELS(dep222), dep222, },
9367 + { NELS(dep225), dep225, NELS(dep222), dep222, },
9368 + { NELS(dep226), dep226, NELS(dep0), dep0, },
9369 + { NELS(dep227), dep227, NELS(dep222), dep222, },
9370 + { NELS(dep229), dep229, NELS(dep228), dep228, },
9371 + { NELS(dep230), dep230, NELS(dep62), dep62, },
9372 + { NELS(dep231), dep231, NELS(dep62), dep62, },
9373 + { NELS(dep233), dep233, NELS(dep232), dep232, },
9374 + { NELS(dep234), dep234, NELS(dep232), dep232, },
9375 + { NELS(dep233), dep233, NELS(dep235), dep235, },
9376 + { NELS(dep237), dep237, NELS(dep236), dep236, },
9377 + { NELS(dep238), dep238, NELS(dep236), dep236, },
9378 + { NELS(dep240), dep240, NELS(dep239), dep239, },
9379 + { NELS(dep241), dep241, NELS(dep239), dep239, },
9380 + { NELS(dep240), dep240, NELS(dep242), dep242, },
9381 + { NELS(dep243), dep243, NELS(dep217), dep217, },
9382 + { NELS(dep244), dep244, NELS(dep31), dep31, },
9383 + { NELS(dep245), dep245, NELS(dep31), dep31, },
9384 + { NELS(dep246), dep246, NELS(dep0), dep0, },
9385 + { NELS(dep247), dep247, NELS(dep0), dep0, },
9386 + { NELS(dep248), dep248, NELS(dep62), dep62, },
9387 + { NELS(dep249), dep249, NELS(dep222), dep222, },
9388 + { 0, NULL, 0, NULL, },
9389 + { NELS(dep251), dep251, NELS(dep250), dep250, },
9390 +};
9391 +
9392 +static const struct ia64_completer_table
9393 +completer_table[] = {
9394 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9395 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9396 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9397 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9398 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9399 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9400 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9401 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9402 + { 0x0, 0x0, 0, -1, -1, 0, 1, 88 },
9403 + { 0x0, 0x0, 0, -1, -1, 0, 1, 88 },
9404 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9405 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9406 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9407 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9408 + { 0x0, 0x0, 0, 576, -1, 0, 1, 6 },
9409 + { 0x0, 0x0, 0, 639, -1, 0, 1, 17 },
9410 + { 0x0, 0x0, 0, -1, -1, 0, 1, 157 },
9411 + { 0x0, 0x0, 0, 738, -1, 0, 1, 17 },
9412 + { 0x0, 0x0, 0, 2164, -1, 0, 1, 10 },
9413 + { 0x0, 0x0, 0, -1, -1, 0, 1, 9 },
9414 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9415 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9416 + { 0x0, 0x0, 0, -1, -1, 0, 1, 13 },
9417 + { 0x1, 0x1, 0, -1, -1, 13, 1, 0 },
9418 + { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9419 + { 0x0, 0x0, 0, 2372, -1, 0, 1, 29 },
9420 + { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9421 + { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9422 + { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9423 + { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9424 + { 0x0, 0x0, 0, 1122, -1, 0, 1, 122 },
9425 + { 0x0, 0x0, 0, -1, -1, 0, 1, 44 },
9426 + { 0x0, 0x0, 0, -1, -1, 0, 1, 40 },
9427 + { 0x0, 0x0, 0, -1, -1, 0, 1, 78 },
9428 + { 0x0, 0x0, 0, 2212, -1, 0, 1, 29 },
9429 + { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9430 + { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9431 + { 0x0, 0x0, 0, 2439, -1, 0, 1, 29 },
9432 + { 0x0, 0x0, 0, 2216, -1, 0, 1, 29 },
9433 + { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9434 + { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9435 + { 0x0, 0x0, 0, 2218, -1, 0, 1, 29 },
9436 + { 0x0, 0x0, 0, 2448, -1, 0, 1, 29 },
9437 + { 0x0, 0x0, 0, 2451, -1, 0, 1, 29 },
9438 + { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9439 + { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9440 + { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9441 + { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9442 + { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9443 + { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9444 + { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9445 + { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9446 + { 0x0, 0x0, 0, 2473, -1, 0, 1, 29 },
9447 + { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9448 + { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9449 + { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9450 + { 0x0, 0x0, 0, -1, -1, 0, 1, 29 },
9451 + { 0x0, 0x0, 0, 2476, -1, 0, 1, 29 },
9452 + { 0x0, 0x0, 0, -1, -1, 0, 1, 24 },
9453 + { 0x0, 0x0, 0, -1, -1, 0, 1, 24 },
9454 + { 0x0, 0x0, 0, -1, -1, 0, 1, 24 },
9455 + { 0x0, 0x0, 0, -1, -1, 0, 1, 24 },
9456 + { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9457 + { 0x0, 0x0, 0, -1, -1, 0, 1, 35 },
9458 + { 0x0, 0x0, 0, 2484, -1, 0, 1, 29 },
9459 + { 0x0, 0x0, 0, 1391, -1, 0, 1, 33 },
9460 + { 0x0, 0x0, 0, -1, -1, 0, 1, 40 },
9461 + { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9462 + { 0x0, 0x0, 0, -1, -1, 0, 1, 157 },
9463 + { 0x0, 0x0, 0, -1, -1, 0, 1, 77 },
9464 + { 0x0, 0x0, 0, 1439, -1, 0, 1, 124 },
9465 + { 0x0, 0x0, 0, 1448, -1, 0, 1, 124 },
9466 + { 0x0, 0x0, 0, 1457, -1, 0, 1, 124 },
9467 + { 0x0, 0x0, 0, 1459, -1, 0, 1, 125 },
9468 + { 0x0, 0x0, 0, 1461, -1, 0, 1, 125 },
9469 + { 0x0, 0x0, 0, 1470, -1, 0, 1, 124 },
9470 + { 0x0, 0x0, 0, 1479, -1, 0, 1, 124 },
9471 + { 0x0, 0x0, 0, 1488, -1, 0, 1, 124 },
9472 + { 0x0, 0x0, 0, 1497, -1, 0, 1, 124 },
9473 + { 0x0, 0x0, 0, 1506, -1, 0, 1, 124 },
9474 + { 0x0, 0x0, 0, 1515, -1, 0, 1, 124 },
9475 + { 0x0, 0x0, 0, 1525, -1, 0, 1, 124 },
9476 + { 0x0, 0x0, 0, 1535, -1, 0, 1, 124 },
9477 + { 0x0, 0x0, 0, 1545, -1, 0, 1, 124 },
9478 + { 0x0, 0x0, 0, 1554, -1, 0, 1, 140 },
9479 + { 0x0, 0x0, 0, 1560, -1, 0, 1, 145 },
9480 + { 0x0, 0x0, 0, 1566, -1, 0, 1, 145 },
9481 + { 0x0, 0x0, 0, 1572, -1, 0, 1, 140 },
9482 + { 0x0, 0x0, 0, 1578, -1, 0, 1, 145 },
9483 + { 0x0, 0x0, 0, 1584, -1, 0, 1, 145 },
9484 + { 0x0, 0x0, 0, 1590, -1, 0, 1, 140 },
9485 + { 0x0, 0x0, 0, 1596, -1, 0, 1, 145 },
9486 + { 0x0, 0x0, 0, 1602, -1, 0, 1, 145 },
9487 + { 0x0, 0x0, 0, 1608, -1, 0, 1, 140 },
9488 + { 0x0, 0x0, 0, 1614, -1, 0, 1, 145 },
9489 + { 0x0, 0x0, 0, 1620, -1, 0, 1, 140 },
9490 + { 0x0, 0x0, 0, 1626, -1, 0, 1, 145 },
9491 + { 0x0, 0x0, 0, 1632, -1, 0, 1, 140 },
9492 + { 0x0, 0x0, 0, 1638, -1, 0, 1, 145 },
9493 + { 0x0, 0x0, 0, 1644, -1, 0, 1, 140 },
9494 + { 0x0, 0x0, 0, 1650, -1, 0, 1, 145 },
9495 + { 0x0, 0x0, 0, 1656, -1, 0, 1, 145 },
9496 + { 0x0, 0x0, 0, 1660, -1, 0, 1, 151 },
9497 + { 0x0, 0x0, 0, 1664, -1, 0, 1, 153 },
9498 + { 0x0, 0x0, 0, 1668, -1, 0, 1, 153 },
9499 + { 0x0, 0x0, 0, -1, -1, 0, 1, 79 },
9500 + { 0x0, 0x0, 0, 256, -1, 0, 1, 40 },
9501 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9502 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9503 + { 0x0, 0x0, 0, -1, -1, 0, 1, 33 },
9504 + { 0x0, 0x0, 0, -1, -1, 0, 1, 67 },
9505 + { 0x1, 0x1, 0, 1148, -1, 20, 1, 67 },
9506 + { 0x0, 0x0, 0, -1, -1, 0, 1, 68 },
9507 + { 0x0, 0x0, 0, -1, -1, 0, 1, 69 },
9508 + { 0x0, 0x0, 0, -1, -1, 0, 1, 69 },
9509 + { 0x0, 0x0, 0, -1, -1, 0, 1, 70 },
9510 + { 0x0, 0x0, 0, -1, -1, 0, 1, 71 },
9511 + { 0x0, 0x0, 0, -1, -1, 0, 1, 72 },
9512 + { 0x0, 0x0, 0, -1, -1, 0, 1, 86 },
9513 + { 0x0, 0x0, 0, -1, -1, 0, 1, 87 },
9514 + { 0x0, 0x0, 0, -1, -1, 0, 1, 89 },
9515 + { 0x0, 0x0, 0, -1, -1, 0, 1, 90 },
9516 + { 0x0, 0x0, 0, -1, -1, 0, 1, 91 },
9517 + { 0x0, 0x0, 0, -1, -1, 0, 1, 92 },
9518 + { 0x0, 0x0, 0, -1, -1, 0, 1, 97 },
9519 + { 0x0, 0x0, 0, -1, -1, 0, 1, 98 },
9520 + { 0x0, 0x0, 0, -1, -1, 0, 1, 99 },
9521 + { 0x0, 0x0, 0, -1, -1, 0, 1, 100 },
9522 + { 0x0, 0x0, 0, -1, -1, 0, 1, 101 },
9523 + { 0x0, 0x0, 0, -1, -1, 0, 1, 102 },
9524 + { 0x0, 0x0, 0, -1, -1, 0, 1, 103 },
9525 + { 0x0, 0x0, 0, -1, -1, 0, 1, 106 },
9526 + { 0x0, 0x0, 0, -1, -1, 0, 1, 107 },
9527 + { 0x0, 0x0, 0, -1, -1, 0, 1, 108 },
9528 + { 0x0, 0x0, 0, -1, -1, 0, 1, 109 },
9529 + { 0x0, 0x0, 0, -1, -1, 0, 1, 110 },
9530 + { 0x0, 0x0, 0, -1, -1, 0, 1, 111 },
9531 + { 0x0, 0x0, 0, -1, -1, 0, 1, 112 },
9532 + { 0x0, 0x0, 0, -1, -1, 0, 1, 113 },
9533 + { 0x0, 0x0, 0, -1, -1, 0, 1, 158 },
9534 + { 0x0, 0x0, 0, -1, -1, 0, 1, 158 },
9535 + { 0x0, 0x0, 0, -1, -1, 0, 1, 158 },
9536 + { 0x0, 0x0, 0, -1, -1, 0, 1, 71 },
9537 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9538 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9539 + { 0x0, 0x0, 0, -1, -1, 0, 1, 157 },
9540 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9541 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9542 + { 0x0, 0x0, 0, 2824, -1, 0, 1, 0 },
9543 + { 0x0, 0x0, 0, 2825, -1, 0, 1, 0 },
9544 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9545 + { 0x0, 0x0, 0, 2176, -1, 0, 1, 0 },
9546 + { 0x0, 0x0, 0, 2177, -1, 0, 1, 0 },
9547 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9548 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9549 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9550 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9551 + { 0x0, 0x0, 0, 2839, -1, 0, 1, 0 },
9552 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9553 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9554 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9555 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9556 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9557 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9558 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9559 + { 0x0, 0x0, 0, 2840, -1, 0, 1, 0 },
9560 + { 0x0, 0x0, 0, 2841, -1, 0, 1, 0 },
9561 + { 0x0, 0x0, 0, 2842, -1, 0, 1, 0 },
9562 + { 0x0, 0x0, 0, 2843, -1, 0, 1, 0 },
9563 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9564 + { 0x0, 0x0, 0, 2826, -1, 0, 1, 0 },
9565 + { 0x0, 0x0, 0, 2827, -1, 0, 1, 0 },
9566 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9567 + { 0x0, 0x0, 0, -1, -1, 0, 1, 11 },
9568 + { 0x0, 0x0, 0, -1, -1, 0, 1, 84 },
9569 + { 0x0, 0x0, 0, -1, -1, 0, 1, 83 },
9570 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9571 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9572 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9573 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9574 + { 0x1, 0x1, 0, -1, -1, 13, 1, 0 },
9575 + { 0x0, 0x0, 0, 2845, -1, 0, 1, 0 },
9576 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9577 + { 0x0, 0x0, 0, -1, -1, 0, 1, 84 },
9578 + { 0x0, 0x0, 0, 1948, -1, 0, 1, 131 },
9579 + { 0x0, 0x0, 0, 1950, -1, 0, 1, 138 },
9580 + { 0x0, 0x0, 0, 1952, -1, 0, 1, 132 },
9581 + { 0x0, 0x0, 0, 1954, -1, 0, 1, 132 },
9582 + { 0x0, 0x0, 0, 1956, -1, 0, 1, 131 },
9583 + { 0x0, 0x0, 0, 1958, -1, 0, 1, 138 },
9584 + { 0x0, 0x0, 0, 1960, -1, 0, 1, 131 },
9585 + { 0x0, 0x0, 0, 1962, -1, 0, 1, 138 },
9586 + { 0x0, 0x0, 0, 1965, -1, 0, 1, 131 },
9587 + { 0x0, 0x0, 0, 1968, -1, 0, 1, 138 },
9588 + { 0x0, 0x0, 0, 1971, -1, 0, 1, 150 },
9589 + { 0x0, 0x0, 0, 1972, -1, 0, 1, 156 },
9590 + { 0x0, 0x0, 0, 1973, -1, 0, 1, 150 },
9591 + { 0x0, 0x0, 0, 1974, -1, 0, 1, 156 },
9592 + { 0x0, 0x0, 0, 1975, -1, 0, 1, 150 },
9593 + { 0x0, 0x0, 0, 1976, -1, 0, 1, 156 },
9594 + { 0x0, 0x0, 0, 1977, -1, 0, 1, 150 },
9595 + { 0x0, 0x0, 0, 1978, -1, 0, 1, 156 },
9596 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9597 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9598 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9599 + { 0x0, 0x0, 0, -1, -1, 0, 1, 82 },
9600 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9601 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9602 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9603 + { 0x0, 0x0, 0, -1, -1, 0, 1, 120 },
9604 + { 0x0, 0x0, 0, -1, -1, 0, 1, 118 },
9605 + { 0x0, 0x0, 0, -1, -1, 0, 1, 120 },
9606 + { 0x0, 0x0, 0, -1, -1, 0, 1, 119 },
9607 + { 0x0, 0x0, 0, 1669, -1, 0, 1, 136 },
9608 + { 0x0, 0x0, 0, 1670, -1, 0, 1, 136 },
9609 + { 0x0, 0x0, 0, 1671, -1, 0, 1, 136 },
9610 + { 0x0, 0x0, 0, 1672, -1, 0, 1, 136 },
9611 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9612 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9613 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9614 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9615 + { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
9616 + { 0x0, 0x0, 1, 223, -1, 0, 1, 12 },
9617 + { 0x1, 0x1, 2, -1, -1, 27, 1, 12 },
9618 + { 0x0, 0x0, 3, -1, 1322, 0, 0, -1 },
9619 + { 0x0, 0x0, 3, -1, 1323, 0, 0, -1 },
9620 + { 0x1, 0x1, 3, 2715, 1432, 33, 1, 127 },
9621 + { 0x1, 0x1, 3, 2716, 1441, 33, 1, 127 },
9622 + { 0x1, 0x1, 3, 2717, 1450, 33, 1, 127 },
9623 + { 0x1, 0x1, 3, 2718, 1463, 33, 1, 127 },
9624 + { 0x1, 0x1, 3, 2719, 1472, 33, 1, 127 },
9625 + { 0x1, 0x1, 3, 2720, 1481, 33, 1, 127 },
9626 + { 0x1, 0x1, 3, 2721, 1490, 33, 1, 127 },
9627 + { 0x1, 0x1, 3, 2722, 1499, 33, 1, 127 },
9628 + { 0x1, 0x1, 3, 2723, 1508, 33, 1, 127 },
9629 + { 0x1, 0x1, 3, 2724, 1517, 33, 1, 127 },
9630 + { 0x1, 0x1, 3, 2725, 1527, 33, 1, 127 },
9631 + { 0x1, 0x1, 3, 2726, 1537, 33, 1, 127 },
9632 + { 0x1, 0x1, 3, 2727, 1550, 33, 1, 142 },
9633 + { 0x1, 0x1, 3, 2728, 1556, 33, 1, 147 },
9634 + { 0x1, 0x1, 3, 2729, 1562, 33, 1, 147 },
9635 + { 0x1, 0x1, 3, 2730, 1568, 33, 1, 142 },
9636 + { 0x1, 0x1, 3, 2731, 1574, 33, 1, 147 },
9637 + { 0x1, 0x1, 3, 2732, 1580, 33, 1, 147 },
9638 + { 0x1, 0x1, 3, 2733, 1586, 33, 1, 142 },
9639 + { 0x1, 0x1, 3, 2734, 1592, 33, 1, 147 },
9640 + { 0x1, 0x1, 3, 2735, 1598, 33, 1, 147 },
9641 + { 0x1, 0x1, 3, 2736, 1604, 33, 1, 142 },
9642 + { 0x1, 0x1, 3, 2737, 1610, 33, 1, 147 },
9643 + { 0x1, 0x1, 3, 2738, 1616, 33, 1, 142 },
9644 + { 0x1, 0x1, 3, 2739, 1622, 33, 1, 147 },
9645 + { 0x1, 0x1, 3, 2740, 1628, 33, 1, 142 },
9646 + { 0x1, 0x1, 3, 2741, 1634, 33, 1, 147 },
9647 + { 0x1, 0x1, 3, 2742, 1640, 33, 1, 142 },
9648 + { 0x1, 0x1, 3, 2743, 1646, 33, 1, 147 },
9649 + { 0x1, 0x1, 3, 2744, 1652, 33, 1, 147 },
9650 + { 0x1, 0x1, 3, -1, -1, 27, 1, 40 },
9651 + { 0x0, 0x0, 4, 2178, 1407, 0, 1, 135 },
9652 + { 0x0, 0x0, 4, 2179, 1409, 0, 1, 135 },
9653 + { 0x0, 0x0, 4, 2180, 1411, 0, 1, 134 },
9654 + { 0x0, 0x0, 4, 2181, 1413, 0, 1, 134 },
9655 + { 0x0, 0x0, 4, 2182, 1415, 0, 1, 134 },
9656 + { 0x0, 0x0, 4, 2183, 1417, 0, 1, 134 },
9657 + { 0x0, 0x0, 4, 2184, 1419, 0, 1, 134 },
9658 + { 0x0, 0x0, 4, 2185, 1421, 0, 1, 134 },
9659 + { 0x0, 0x0, 4, 2186, 1423, 0, 1, 134 },
9660 + { 0x0, 0x0, 4, 2187, 1425, 0, 1, 134 },
9661 + { 0x0, 0x0, 4, 2188, 1427, 0, 1, 136 },
9662 + { 0x0, 0x0, 4, 2189, 1429, 0, 1, 136 },
9663 + { 0x1, 0x1, 4, -1, 1436, 33, 1, 130 },
9664 + { 0x5, 0x5, 4, 534, 1435, 32, 1, 124 },
9665 + { 0x1, 0x1, 4, -1, 1445, 33, 1, 130 },
9666 + { 0x5, 0x5, 4, 535, 1444, 32, 1, 124 },
9667 + { 0x1, 0x1, 4, -1, 1454, 33, 1, 130 },
9668 + { 0x5, 0x5, 4, 536, 1453, 32, 1, 124 },
9669 + { 0x1, 0x1, 4, -1, 1458, 32, 1, 125 },
9670 + { 0x1, 0x1, 4, -1, 1460, 32, 1, 125 },
9671 + { 0x1, 0x1, 4, -1, 1467, 33, 1, 130 },
9672 + { 0x5, 0x5, 4, 537, 1466, 32, 1, 124 },
9673 + { 0x1, 0x1, 4, -1, 1476, 33, 1, 130 },
9674 + { 0x5, 0x5, 4, 538, 1475, 32, 1, 124 },
9675 + { 0x1, 0x1, 4, -1, 1485, 33, 1, 130 },
9676 + { 0x5, 0x5, 4, 539, 1484, 32, 1, 124 },
9677 + { 0x1, 0x1, 4, -1, 1494, 33, 1, 130 },
9678 + { 0x5, 0x5, 4, 540, 1493, 32, 1, 124 },
9679 + { 0x1, 0x1, 4, -1, 1503, 33, 1, 130 },
9680 + { 0x5, 0x5, 4, 541, 1502, 32, 1, 124 },
9681 + { 0x1, 0x1, 4, -1, 1512, 33, 1, 130 },
9682 + { 0x5, 0x5, 4, 542, 1511, 32, 1, 124 },
9683 + { 0x1, 0x1, 4, -1, 1522, 33, 1, 130 },
9684 + { 0x5, 0x5, 4, 1018, 1520, 32, 1, 124 },
9685 + { 0x1, 0x1, 4, -1, 1532, 33, 1, 130 },
9686 + { 0x5, 0x5, 4, 1019, 1530, 32, 1, 124 },
9687 + { 0x1, 0x1, 4, -1, 1542, 33, 1, 130 },
9688 + { 0x5, 0x5, 4, 1020, 1540, 32, 1, 124 },
9689 + { 0x1, 0x21, 10, 1991, -1, 33, 1, 3 },
9690 + { 0x200001, 0x200001, 10, 1992, -1, 12, 1, 3 },
9691 + { 0x1, 0x21, 10, 410, -1, 33, 1, 3 },
9692 + { 0x200001, 0x200001, 10, 2048, -1, 12, 1, 3 },
9693 + { 0x0, 0x0, 10, -1, 2049, 0, 0, -1 },
9694 + { 0x0, 0x0, 10, -1, 2050, 0, 0, -1 },
9695 + { 0x0, 0x0, 10, 1995, -1, 0, 1, 3 },
9696 + { 0x1, 0x1, 10, 1996, -1, 12, 1, 3 },
9697 + { 0x1, 0x1, 10, 1997, -1, 33, 1, 3 },
9698 + { 0x200001, 0x200001, 10, 1998, -1, 12, 1, 3 },
9699 + { 0x0, 0x0, 10, 420, -1, 0, 1, 3 },
9700 + { 0x1, 0x1, 10, 2054, -1, 12, 1, 3 },
9701 + { 0x1, 0x1, 10, 424, -1, 33, 1, 3 },
9702 + { 0x200001, 0x200001, 10, 2056, -1, 12, 1, 3 },
9703 + { 0x0, 0x0, 10, 428, -1, 0, 1, 3 },
9704 + { 0x1, 0x1, 10, 2058, -1, 12, 1, 3 },
9705 + { 0x1, 0x1, 10, 432, -1, 33, 1, 3 },
9706 + { 0x200001, 0x200001, 10, 2060, -1, 12, 1, 3 },
9707 + { 0x0, 0x0, 10, 436, -1, 0, 1, 3 },
9708 + { 0x1, 0x1, 10, 2062, -1, 12, 1, 3 },
9709 + { 0x1, 0x1, 10, 440, -1, 33, 1, 3 },
9710 + { 0x200001, 0x200001, 10, 2064, -1, 12, 1, 3 },
9711 + { 0x1, 0x21, 10, 2011, -1, 33, 1, 3 },
9712 + { 0x200001, 0x200001, 10, 2012, -1, 12, 1, 3 },
9713 + { 0x1, 0x21, 10, 450, -1, 33, 1, 3 },
9714 + { 0x200001, 0x200001, 10, 2070, -1, 12, 1, 3 },
9715 + { 0x0, 0x0, 10, -1, 2071, 0, 0, -1 },
9716 + { 0x0, 0x0, 10, -1, 2072, 0, 0, -1 },
9717 + { 0x0, 0x0, 10, -1, 2075, 0, 0, -1 },
9718 + { 0x0, 0x0, 10, -1, 2076, 0, 0, -1 },
9719 + { 0x0, 0x0, 10, -1, 2077, 0, 0, -1 },
9720 + { 0x0, 0x0, 10, -1, 2078, 0, 0, -1 },
9721 + { 0x0, 0x0, 10, -1, 2079, 0, 0, -1 },
9722 + { 0x0, 0x0, 10, -1, 2080, 0, 0, -1 },
9723 + { 0x0, 0x0, 10, -1, 2081, 0, 0, -1 },
9724 + { 0x0, 0x0, 10, -1, 2082, 0, 0, -1 },
9725 + { 0x0, 0x0, 10, -1, 2083, 0, 0, -1 },
9726 + { 0x0, 0x0, 10, -1, 2084, 0, 0, -1 },
9727 + { 0x0, 0x0, 10, -1, 2085, 0, 0, -1 },
9728 + { 0x0, 0x0, 10, -1, 2086, 0, 0, -1 },
9729 + { 0x0, 0x0, 10, -1, 2087, 0, 0, -1 },
9730 + { 0x0, 0x0, 10, -1, 2088, 0, 0, -1 },
9731 + { 0x0, 0x0, 10, -1, 2089, 0, 0, -1 },
9732 + { 0x0, 0x0, 10, -1, 2090, 0, 0, -1 },
9733 + { 0x0, 0x0, 10, -1, 2091, 0, 0, -1 },
9734 + { 0x0, 0x0, 10, -1, 2092, 0, 0, -1 },
9735 + { 0x0, 0x0, 10, -1, 2093, 0, 0, -1 },
9736 + { 0x0, 0x0, 10, -1, 2094, 0, 0, -1 },
9737 + { 0x1, 0x21, 10, 2015, -1, 33, 1, 3 },
9738 + { 0x200001, 0x200001, 10, 2016, -1, 12, 1, 3 },
9739 + { 0x1, 0x21, 10, 458, -1, 33, 1, 3 },
9740 + { 0x200001, 0x200001, 10, 2096, -1, 12, 1, 3 },
9741 + { 0x0, 0x0, 10, -1, 2097, 0, 0, -1 },
9742 + { 0x0, 0x0, 10, -1, 2098, 0, 0, -1 },
9743 + { 0x0, 0x0, 10, 2019, -1, 0, 1, 3 },
9744 + { 0x1, 0x1, 10, 2020, -1, 12, 1, 3 },
9745 + { 0x1, 0x1, 10, 2021, -1, 33, 1, 3 },
9746 + { 0x200001, 0x200001, 10, 2022, -1, 12, 1, 3 },
9747 + { 0x0, 0x0, 10, 468, -1, 0, 1, 3 },
9748 + { 0x1, 0x1, 10, 2102, -1, 12, 1, 3 },
9749 + { 0x1, 0x1, 10, 472, -1, 33, 1, 3 },
9750 + { 0x200001, 0x200001, 10, 2104, -1, 12, 1, 3 },
9751 + { 0x0, 0x0, 10, 476, -1, 0, 1, 3 },
9752 + { 0x1, 0x1, 10, 2106, -1, 12, 1, 3 },
9753 + { 0x1, 0x1, 10, 480, -1, 33, 1, 3 },
9754 + { 0x200001, 0x200001, 10, 2108, -1, 12, 1, 3 },
9755 + { 0x0, 0x0, 10, 484, -1, 0, 1, 3 },
9756 + { 0x1, 0x1, 10, 2110, -1, 12, 1, 3 },
9757 + { 0x1, 0x1, 10, 488, -1, 33, 1, 3 },
9758 + { 0x200001, 0x200001, 10, 2112, -1, 12, 1, 3 },
9759 + { 0x1, 0x21, 10, 2035, -1, 33, 1, 3 },
9760 + { 0x200001, 0x200001, 10, 2036, -1, 12, 1, 3 },
9761 + { 0x1, 0x21, 10, 498, -1, 33, 1, 3 },
9762 + { 0x200001, 0x200001, 10, 2118, -1, 12, 1, 3 },
9763 + { 0x0, 0x0, 10, -1, 2119, 0, 0, -1 },
9764 + { 0x0, 0x0, 10, -1, 2120, 0, 0, -1 },
9765 + { 0x0, 0x0, 10, -1, 2123, 0, 0, -1 },
9766 + { 0x0, 0x0, 10, -1, 2124, 0, 0, -1 },
9767 + { 0x0, 0x0, 10, -1, 2125, 0, 0, -1 },
9768 + { 0x0, 0x0, 10, -1, 2126, 0, 0, -1 },
9769 + { 0x0, 0x0, 10, -1, 2127, 0, 0, -1 },
9770 + { 0x0, 0x0, 10, -1, 2128, 0, 0, -1 },
9771 + { 0x0, 0x0, 10, -1, 2129, 0, 0, -1 },
9772 + { 0x0, 0x0, 10, -1, 2130, 0, 0, -1 },
9773 + { 0x0, 0x0, 10, -1, 2131, 0, 0, -1 },
9774 + { 0x0, 0x0, 10, -1, 2132, 0, 0, -1 },
9775 + { 0x0, 0x0, 10, -1, 2133, 0, 0, -1 },
9776 + { 0x0, 0x0, 10, -1, 2134, 0, 0, -1 },
9777 + { 0x0, 0x0, 10, -1, 2135, 0, 0, -1 },
9778 + { 0x0, 0x0, 10, -1, 2136, 0, 0, -1 },
9779 + { 0x0, 0x0, 10, -1, 2137, 0, 0, -1 },
9780 + { 0x0, 0x0, 10, -1, 2138, 0, 0, -1 },
9781 + { 0x0, 0x0, 10, -1, 2139, 0, 0, -1 },
9782 + { 0x0, 0x0, 10, -1, 2140, 0, 0, -1 },
9783 + { 0x0, 0x0, 10, -1, 2141, 0, 0, -1 },
9784 + { 0x0, 0x0, 10, -1, 2142, 0, 0, -1 },
9785 + { 0x1, 0x1, 10, 2039, -1, 36, 1, 3 },
9786 + { 0x1000001, 0x1000001, 10, 2040, -1, 12, 1, 3 },
9787 + { 0x1, 0x1, 10, 2041, -1, 36, 1, 3 },
9788 + { 0x1000001, 0x1000001, 10, 2042, -1, 12, 1, 3 },
9789 + { 0x0, 0x0, 10, -1, 2143, 0, 0, -1 },
9790 + { 0x0, 0x0, 10, -1, 2145, 0, 0, -1 },
9791 + { 0x0, 0x0, 10, -1, 2147, 0, 0, -1 },
9792 + { 0x0, 0x0, 10, -1, 2149, 0, 0, -1 },
9793 + { 0x1, 0x1, 10, 2043, -1, 36, 1, 3 },
9794 + { 0x1000001, 0x1000001, 10, 2044, -1, 12, 1, 3 },
9795 + { 0x1, 0x1, 10, 2045, -1, 36, 1, 3 },
9796 + { 0x1000001, 0x1000001, 10, 2046, -1, 12, 1, 3 },
9797 + { 0x0, 0x0, 10, -1, 2151, 0, 0, -1 },
9798 + { 0x0, 0x0, 10, -1, 2153, 0, 0, -1 },
9799 + { 0x0, 0x0, 10, -1, 2155, 0, 0, -1 },
9800 + { 0x0, 0x0, 10, -1, 2157, 0, 0, -1 },
9801 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9802 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9803 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9804 + { 0x200001, 0x4200001, 11, 1993, -1, 12, 1, 3 },
9805 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9806 + { 0x1, 0x1, 11, 298, -1, 33, 1, 3 },
9807 + { 0x0, 0x0, 11, 2051, -1, 0, 1, 3 },
9808 + { 0x1, 0x1, 11, 2052, -1, 12, 1, 3 },
9809 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9810 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9811 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9812 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9813 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9814 + { 0x1, 0x1, 11, 1999, -1, 12, 1, 3 },
9815 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9816 + { 0x0, 0x0, 11, 306, -1, 0, 1, 3 },
9817 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9818 + { 0x200001, 0x200001, 11, 2001, -1, 12, 1, 3 },
9819 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9820 + { 0x1, 0x1, 11, 308, -1, 33, 1, 3 },
9821 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9822 + { 0x1, 0x1, 11, 2003, -1, 12, 1, 3 },
9823 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9824 + { 0x0, 0x0, 11, 310, -1, 0, 1, 3 },
9825 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9826 + { 0x200001, 0x200001, 11, 2005, -1, 12, 1, 3 },
9827 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9828 + { 0x1, 0x1, 11, 312, -1, 33, 1, 3 },
9829 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9830 + { 0x1, 0x1, 11, 2007, -1, 12, 1, 3 },
9831 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9832 + { 0x0, 0x0, 11, 314, -1, 0, 1, 3 },
9833 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9834 + { 0x200001, 0x200001, 11, 2009, -1, 12, 1, 3 },
9835 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9836 + { 0x1, 0x1, 11, 316, -1, 33, 1, 3 },
9837 + { 0x0, 0x0, 11, 2065, -1, 0, 1, 3 },
9838 + { 0x1, 0x1, 11, 2066, -1, 12, 1, 3 },
9839 + { 0x1, 0x1, 11, 2067, -1, 33, 1, 3 },
9840 + { 0x200001, 0x200001, 11, 2068, -1, 12, 1, 3 },
9841 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9842 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9843 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9844 + { 0x200001, 0x4200001, 11, 2013, -1, 12, 1, 3 },
9845 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9846 + { 0x1, 0x1, 11, 320, -1, 33, 1, 3 },
9847 + { 0x0, 0x0, 11, 2073, -1, 0, 1, 3 },
9848 + { 0x1, 0x1, 11, 2074, -1, 12, 1, 3 },
9849 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9850 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9851 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9852 + { 0x200001, 0x4200001, 11, 2017, -1, 12, 1, 3 },
9853 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9854 + { 0x1, 0x1, 11, 346, -1, 33, 1, 3 },
9855 + { 0x0, 0x0, 11, 2099, -1, 0, 1, 3 },
9856 + { 0x1, 0x1, 11, 2100, -1, 12, 1, 3 },
9857 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9858 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9859 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9860 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9861 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9862 + { 0x1, 0x1, 11, 2023, -1, 12, 1, 3 },
9863 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9864 + { 0x0, 0x0, 11, 354, -1, 0, 1, 3 },
9865 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9866 + { 0x200001, 0x200001, 11, 2025, -1, 12, 1, 3 },
9867 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9868 + { 0x1, 0x1, 11, 356, -1, 33, 1, 3 },
9869 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9870 + { 0x1, 0x1, 11, 2027, -1, 12, 1, 3 },
9871 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9872 + { 0x0, 0x0, 11, 358, -1, 0, 1, 3 },
9873 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9874 + { 0x200001, 0x200001, 11, 2029, -1, 12, 1, 3 },
9875 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9876 + { 0x1, 0x1, 11, 360, -1, 33, 1, 3 },
9877 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9878 + { 0x1, 0x1, 11, 2031, -1, 12, 1, 3 },
9879 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9880 + { 0x0, 0x0, 11, 362, -1, 0, 1, 3 },
9881 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9882 + { 0x200001, 0x200001, 11, 2033, -1, 12, 1, 3 },
9883 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9884 + { 0x1, 0x1, 11, 364, -1, 33, 1, 3 },
9885 + { 0x0, 0x0, 11, 2113, -1, 0, 1, 3 },
9886 + { 0x1, 0x1, 11, 2114, -1, 12, 1, 3 },
9887 + { 0x1, 0x1, 11, 2115, -1, 33, 1, 3 },
9888 + { 0x200001, 0x200001, 11, 2116, -1, 12, 1, 3 },
9889 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9890 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9891 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9892 + { 0x200001, 0x4200001, 11, 2037, -1, 12, 1, 3 },
9893 + { 0x2, 0x3, 11, -1, -1, 37, 1, 5 },
9894 + { 0x1, 0x1, 11, 368, -1, 33, 1, 3 },
9895 + { 0x0, 0x0, 11, 2121, -1, 0, 1, 3 },
9896 + { 0x1, 0x1, 11, 2122, -1, 12, 1, 3 },
9897 + { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
9898 + { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
9899 + { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
9900 + { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
9901 + { 0x1, 0x1, 11, 2144, -1, 36, 1, 3 },
9902 + { 0x1000001, 0x1000001, 11, 2146, -1, 12, 1, 3 },
9903 + { 0x1, 0x1, 11, 2148, -1, 36, 1, 3 },
9904 + { 0x1000001, 0x1000001, 11, 2150, -1, 12, 1, 3 },
9905 + { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
9906 + { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
9907 + { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
9908 + { 0x1, 0x1, 11, -1, -1, 36, 1, 5 },
9909 + { 0x1, 0x1, 11, 2152, -1, 36, 1, 3 },
9910 + { 0x1000001, 0x1000001, 11, 2154, -1, 12, 1, 3 },
9911 + { 0x1, 0x1, 11, 2156, -1, 36, 1, 3 },
9912 + { 0x1000001, 0x1000001, 11, 2158, -1, 12, 1, 3 },
9913 + { 0x0, 0x0, 12, -1, -1, 0, 1, 14 },
9914 + { 0x0, 0x0, 12, -1, -1, 0, 1, 14 },
9915 + { 0x0, 0x0, 12, -1, -1, 0, 1, 14 },
9916 + { 0x1, 0x1, 13, 270, 1434, 34, 1, 124 },
9917 + { 0x1, 0x1, 13, 272, 1443, 34, 1, 124 },
9918 + { 0x1, 0x1, 13, 274, 1452, 34, 1, 124 },
9919 + { 0x1, 0x1, 13, 278, 1465, 34, 1, 124 },
9920 + { 0x1, 0x1, 13, 280, 1474, 34, 1, 124 },
9921 + { 0x1, 0x1, 13, 282, 1483, 34, 1, 124 },
9922 + { 0x1, 0x1, 13, 284, 1492, 34, 1, 124 },
9923 + { 0x1, 0x1, 13, 286, 1501, 34, 1, 124 },
9924 + { 0x1, 0x1, 13, 288, 1510, 34, 1, 124 },
9925 + { 0x1, 0x1, 13, 290, 1519, 34, 1, 124 },
9926 + { 0x1, 0x1, 13, 292, 1529, 34, 1, 124 },
9927 + { 0x1, 0x1, 13, 294, 1539, 34, 1, 124 },
9928 + { 0x0, 0x0, 19, -1, 777, 0, 0, -1 },
9929 + { 0x0, 0x0, 19, -1, 778, 0, 0, -1 },
9930 + { 0x0, 0x0, 19, -1, 779, 0, 0, -1 },
9931 + { 0x0, 0x0, 19, -1, 780, 0, 0, -1 },
9932 + { 0x0, 0x0, 19, -1, 781, 0, 0, -1 },
9933 + { 0x0, 0x0, 19, -1, 782, 0, 0, -1 },
9934 + { 0x0, 0x0, 19, -1, 783, 0, 0, -1 },
9935 + { 0x0, 0x0, 19, -1, 784, 0, 0, -1 },
9936 + { 0x0, 0x0, 19, -1, 785, 0, 0, -1 },
9937 + { 0x0, 0x0, 19, -1, 786, 0, 0, -1 },
9938 + { 0x0, 0x0, 19, -1, 787, 0, 0, -1 },
9939 + { 0x0, 0x0, 19, -1, 788, 0, 0, -1 },
9940 + { 0x0, 0x0, 19, -1, 789, 0, 0, -1 },
9941 + { 0x0, 0x0, 19, -1, 790, 0, 0, -1 },
9942 + { 0x0, 0x0, 19, -1, 791, 0, 0, -1 },
9943 + { 0x0, 0x0, 19, -1, 792, 0, 0, -1 },
9944 + { 0x0, 0x0, 19, -1, 793, 0, 0, -1 },
9945 + { 0x0, 0x0, 19, -1, 794, 0, 0, -1 },
9946 + { 0x0, 0x0, 19, -1, 795, 0, 0, -1 },
9947 + { 0x0, 0x0, 19, -1, 796, 0, 0, -1 },
9948 + { 0x0, 0x0, 19, -1, 797, 0, 0, -1 },
9949 + { 0x0, 0x0, 19, -1, 798, 0, 0, -1 },
9950 + { 0x0, 0x0, 19, -1, 799, 0, 0, -1 },
9951 + { 0x0, 0x0, 19, -1, 800, 0, 0, -1 },
9952 + { 0x0, 0x0, 19, -1, 801, 0, 0, -1 },
9953 + { 0x0, 0x0, 19, -1, 802, 0, 0, -1 },
9954 + { 0x0, 0x0, 19, -1, 803, 0, 0, -1 },
9955 + { 0x0, 0x0, 19, -1, 804, 0, 0, -1 },
9956 + { 0x0, 0x0, 19, -1, 805, 0, 0, -1 },
9957 + { 0x0, 0x0, 19, -1, 806, 0, 0, -1 },
9958 + { 0x0, 0x0, 20, -1, 2793, 0, 0, -1 },
9959 + { 0x0, 0x0, 20, -1, 2794, 0, 0, -1 },
9960 + { 0x0, 0x0, 20, -1, 2809, 0, 0, -1 },
9961 + { 0x0, 0x0, 20, -1, 2810, 0, 0, -1 },
9962 + { 0x0, 0x0, 20, -1, 2815, 0, 0, -1 },
9963 + { 0x0, 0x0, 20, -1, 2816, 0, 0, -1 },
9964 + { 0x0, 0x0, 21, 813, 2805, 0, 0, -1 },
9965 + { 0x0, 0x0, 21, 814, 2807, 0, 0, -1 },
9966 + { 0x0, 0x0, 23, -1, 2803, 0, 0, -1 },
9967 + { 0x0, 0x0, 23, -1, 2804, 0, 0, -1 },
9968 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9969 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9970 + { 0x1, 0x1, 24, 1254, -1, 35, 1, 6 },
9971 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9972 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9973 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9974 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9975 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9976 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9977 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9978 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9979 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9980 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9981 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9982 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9983 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9984 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9985 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9986 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9987 + { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
9988 + { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
9989 + { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
9990 + { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
9991 + { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
9992 + { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
9993 + { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
9994 + { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
9995 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9996 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9997 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9998 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
9999 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
10000 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
10001 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
10002 + { 0x1, 0x1, 24, -1, -1, 35, 1, 6 },
10003 + { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
10004 + { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
10005 + { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
10006 + { 0x1, 0x1, 24, -1, -1, 35, 1, 7 },
10007 + { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10008 + { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10009 + { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10010 + { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10011 + { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10012 + { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10013 + { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10014 + { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10015 + { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10016 + { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10017 + { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10018 + { 0x1, 0x1, 24, -1, -1, 35, 1, 8 },
10019 + { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10020 + { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10021 + { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10022 + { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10023 + { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10024 + { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10025 + { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10026 + { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10027 + { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10028 + { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10029 + { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10030 + { 0x1, 0x1, 24, -1, -1, 35, 1, 15 },
10031 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10032 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10033 + { 0x1, 0x1, 24, 1275, -1, 35, 1, 17 },
10034 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10035 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10036 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10037 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10038 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10039 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10040 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10041 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10042 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10043 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10044 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10045 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10046 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10047 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10048 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10049 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10050 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10051 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10052 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10053 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10054 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10055 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10056 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10057 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10058 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10059 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10060 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10061 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10062 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10063 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10064 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10065 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10066 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10067 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10068 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10069 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10070 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10071 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10072 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10073 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10074 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10075 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10076 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10077 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10078 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10079 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10080 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10081 + { 0x1, 0x1, 24, -1, -1, 35, 1, 18 },
10082 + { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10083 + { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10084 + { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10085 + { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10086 + { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10087 + { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10088 + { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10089 + { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10090 + { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10091 + { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10092 + { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10093 + { 0x1, 0x1, 24, -1, -1, 35, 1, 19 },
10094 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10095 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10096 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10097 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10098 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10099 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10100 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10101 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10102 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10103 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10104 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10105 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10106 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10107 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10108 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10109 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10110 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10111 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10112 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10113 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10114 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10115 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10116 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10117 + { 0x1, 0x1, 24, -1, -1, 35, 1, 20 },
10118 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10119 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10120 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10121 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10122 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10123 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10124 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10125 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10126 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10127 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10128 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10129 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10130 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10131 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10132 + { 0x1, 0x1, 24, 1308, -1, 35, 1, 17 },
10133 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10134 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10135 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10136 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10137 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10138 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10139 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10140 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10141 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10142 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10143 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10144 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10145 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10146 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10147 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10148 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10149 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10150 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10151 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10152 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10153 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10154 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10155 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10156 + { 0x1, 0x1, 24, -1, -1, 35, 1, 17 },
10157 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10158 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10159 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10160 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10161 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10162 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10163 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10164 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10165 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10166 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10167 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10168 + { 0x1, 0x1, 24, -1, -1, 35, 1, 21 },
10169 + { 0x1, 0x1, 24, -1, -1, 33, 1, 76 },
10170 + { 0x1, 0x1, 24, -1, -1, 33, 1, 76 },
10171 + { 0x1, 0x1, 24, 1324, 1437, 35, 1, 130 },
10172 + { 0x1, 0x1, 24, 1325, 1446, 35, 1, 130 },
10173 + { 0x1, 0x1, 24, 1326, 1455, 35, 1, 130 },
10174 + { 0x1, 0x1, 24, 1327, 1468, 35, 1, 130 },
10175 + { 0x1, 0x1, 24, 1328, 1477, 35, 1, 130 },
10176 + { 0x1, 0x1, 24, 1329, 1486, 35, 1, 130 },
10177 + { 0x1, 0x1, 24, 1330, 1495, 35, 1, 130 },
10178 + { 0x1, 0x1, 24, 1331, 1504, 35, 1, 130 },
10179 + { 0x1, 0x1, 24, 1332, 1513, 35, 1, 130 },
10180 + { 0x1, 0x1, 24, 1333, 1523, 35, 1, 130 },
10181 + { 0x1, 0x1, 24, 1334, 1533, 35, 1, 130 },
10182 + { 0x1, 0x1, 24, 1335, 1543, 35, 1, 130 },
10183 + { 0x1, 0x1, 24, 1336, 1552, 35, 1, 144 },
10184 + { 0x1, 0x1, 24, 1337, 1558, 35, 1, 149 },
10185 + { 0x1, 0x1, 24, 1338, 1564, 35, 1, 149 },
10186 + { 0x1, 0x1, 24, 1339, 1570, 35, 1, 144 },
10187 + { 0x1, 0x1, 24, 1340, 1576, 35, 1, 149 },
10188 + { 0x1, 0x1, 24, 1341, 1582, 35, 1, 149 },
10189 + { 0x1, 0x1, 24, 1342, 1588, 35, 1, 144 },
10190 + { 0x1, 0x1, 24, 1343, 1594, 35, 1, 149 },
10191 + { 0x1, 0x1, 24, 1344, 1600, 35, 1, 149 },
10192 + { 0x1, 0x1, 24, 1345, 1606, 35, 1, 144 },
10193 + { 0x1, 0x1, 24, 1346, 1612, 35, 1, 149 },
10194 + { 0x1, 0x1, 24, 1347, 1618, 35, 1, 144 },
10195 + { 0x1, 0x1, 24, 1348, 1624, 35, 1, 149 },
10196 + { 0x1, 0x1, 24, 1349, 1630, 35, 1, 144 },
10197 + { 0x1, 0x1, 24, 1350, 1636, 35, 1, 149 },
10198 + { 0x1, 0x1, 24, 1351, 1642, 35, 1, 144 },
10199 + { 0x1, 0x1, 24, 1352, 1648, 35, 1, 149 },
10200 + { 0x1, 0x1, 24, 1353, 1654, 35, 1, 149 },
10201 + { 0x0, 0x0, 33, 2787, 2785, 0, 0, -1 },
10202 + { 0x0, 0x0, 33, 2790, 2788, 0, 0, -1 },
10203 + { 0x0, 0x0, 33, 2796, 2795, 0, 0, -1 },
10204 + { 0x0, 0x0, 33, 2798, 2797, 0, 0, -1 },
10205 + { 0x0, 0x0, 33, 2812, 2811, 0, 0, -1 },
10206 + { 0x0, 0x0, 33, 2814, 2813, 0, 0, -1 },
10207 + { 0x0, 0x0, 35, -1, 2806, 0, 0, -1 },
10208 + { 0x0, 0x0, 35, -1, 2808, 0, 0, -1 },
10209 + { 0x1, 0x1, 38, -1, 2256, 37, 1, 29 },
10210 + { 0x1, 0x1, 38, -1, 2315, 37, 1, 29 },
10211 + { 0x0, 0x0, 38, -1, 2318, 0, 0, -1 },
10212 + { 0x1, 0x1, 38, -1, -1, 37, 1, 29 },
10213 + { 0x1, 0x1, 38, -1, 2323, 37, 1, 29 },
10214 + { 0x0, 0x0, 38, -1, 2326, 0, 0, -1 },
10215 + { 0x1, 0x1, 38, -1, -1, 37, 1, 29 },
10216 + { 0x0, 0x0, 38, -1, 2329, 0, 0, -1 },
10217 + { 0x1, 0x1, 38, -1, -1, 37, 1, 29 },
10218 + { 0x1, 0x1, 38, -1, 2332, 37, 1, 29 },
10219 + { 0x1, 0x1, 38, -1, 2335, 37, 1, 29 },
10220 + { 0x1, 0x1, 38, -1, 2368, 37, 1, 29 },
10221 + { 0x3, 0x3, 38, -1, -1, 30, 1, 137 },
10222 + { 0x0, 0x0, 38, 1124, -1, 0, 1, 95 },
10223 + { 0x0, 0x0, 38, -1, -1, 0, 1, 104 },
10224 + { 0x0, 0x0, 38, 1130, -1, 0, 1, 116 },
10225 + { 0x3, 0x3, 38, -1, -1, 30, 1, 155 },
10226 + { 0x0, 0x0, 38, 1131, -1, 0, 1, 40 },
10227 + { 0x0, 0x0, 40, -1, 955, 0, 0, -1 },
10228 + { 0x0, 0x0, 40, -1, 963, 0, 0, -1 },
10229 + { 0x0, 0x0, 40, 1133, 959, 0, 0, -1 },
10230 + { 0x3, 0x3, 40, -1, 604, 33, 1, 6 },
10231 + { 0x18000001, 0x18000001, 40, -1, 612, 6, 1, 7 },
10232 + { 0x3, 0x3, 40, 1134, 608, 33, 1, 6 },
10233 + { 0x0, 0x0, 40, -1, 967, 0, 0, -1 },
10234 + { 0x3, 0x3, 40, -1, 624, 33, 1, 8 },
10235 + { 0x0, 0x0, 40, -1, 971, 0, 0, -1 },
10236 + { 0x3, 0x3, 40, -1, 636, 33, 1, 15 },
10237 + { 0x0, 0x0, 40, -1, 976, 0, 0, -1 },
10238 + { 0x0, 0x0, 40, -1, 980, 0, 0, -1 },
10239 + { 0x3, 0x3, 40, -1, 659, 33, 1, 17 },
10240 + { 0x3, 0x3, 40, -1, 663, 33, 1, 17 },
10241 + { 0x0, 0x0, 40, -1, 984, 0, 0, -1 },
10242 + { 0x0, 0x0, 40, -1, 988, 0, 0, -1 },
10243 + { 0x3, 0x3, 40, -1, 683, 33, 1, 18 },
10244 + { 0x18000001, 0x18000001, 40, -1, 687, 6, 1, 18 },
10245 + { 0x0, 0x0, 40, -1, 992, 0, 0, -1 },
10246 + { 0x3, 0x3, 40, -1, 699, 33, 1, 19 },
10247 + { 0x0, 0x0, 40, -1, 996, 0, 0, -1 },
10248 + { 0x0, 0x0, 40, -1, 1000, 0, 0, -1 },
10249 + { 0x3, 0x3, 40, -1, 719, 33, 1, 20 },
10250 + { 0x18000001, 0x18000001, 40, -1, 723, 6, 1, 20 },
10251 + { 0x0, 0x0, 40, -1, 1004, 0, 0, -1 },
10252 + { 0x3, 0x3, 40, -1, 735, 33, 1, 21 },
10253 + { 0x0, 0x0, 40, -1, 1009, 0, 0, -1 },
10254 + { 0x0, 0x0, 40, -1, 1013, 0, 0, -1 },
10255 + { 0x3, 0x3, 40, -1, 758, 33, 1, 17 },
10256 + { 0x3, 0x3, 40, -1, 762, 33, 1, 17 },
10257 + { 0x0, 0x0, 40, -1, 1017, 0, 0, -1 },
10258 + { 0x3, 0x3, 40, -1, 774, 33, 1, 21 },
10259 + { 0x0, 0x0, 41, 833, 954, 0, 0, -1 },
10260 + { 0x0, 0x0, 41, 834, 962, 0, 0, -1 },
10261 + { 0x0, 0x0, 41, 835, 958, 0, 0, -1 },
10262 + { 0x1, 0x1, 41, 836, 603, 34, 1, 6 },
10263 + { 0x10000001, 0x10000001, 41, 837, 611, 6, 1, 7 },
10264 + { 0x1, 0x1, 41, 838, 607, 34, 1, 6 },
10265 + { 0x0, 0x0, 41, 839, 966, 0, 0, -1 },
10266 + { 0x1, 0x1, 41, 840, 623, 34, 1, 8 },
10267 + { 0x0, 0x0, 41, 841, 970, 0, 0, -1 },
10268 + { 0x1, 0x1, 41, 842, 635, 34, 1, 15 },
10269 + { 0x0, 0x0, 41, 843, 975, 0, 0, -1 },
10270 + { 0x0, 0x0, 41, 844, 979, 0, 0, -1 },
10271 + { 0x1, 0x1, 41, 845, 658, 34, 1, 17 },
10272 + { 0x1, 0x1, 41, 846, 662, 34, 1, 17 },
10273 + { 0x0, 0x0, 41, 847, 983, 0, 0, -1 },
10274 + { 0x0, 0x0, 41, 848, 987, 0, 0, -1 },
10275 + { 0x1, 0x1, 41, 849, 682, 34, 1, 18 },
10276 + { 0x10000001, 0x10000001, 41, 850, 686, 6, 1, 18 },
10277 + { 0x0, 0x0, 41, 851, 991, 0, 0, -1 },
10278 + { 0x1, 0x1, 41, 852, 698, 34, 1, 19 },
10279 + { 0x0, 0x0, 41, 853, 995, 0, 0, -1 },
10280 + { 0x0, 0x0, 41, 854, 999, 0, 0, -1 },
10281 + { 0x1, 0x1, 41, 855, 718, 34, 1, 20 },
10282 + { 0x10000001, 0x10000001, 41, 856, 722, 6, 1, 20 },
10283 + { 0x0, 0x0, 41, 857, 1003, 0, 0, -1 },
10284 + { 0x1, 0x1, 41, 858, 734, 34, 1, 21 },
10285 + { 0x0, 0x0, 41, 859, 1008, 0, 0, -1 },
10286 + { 0x0, 0x0, 41, 860, 1012, 0, 0, -1 },
10287 + { 0x1, 0x1, 41, 861, 757, 34, 1, 17 },
10288 + { 0x1, 0x1, 41, 862, 761, 34, 1, 17 },
10289 + { 0x0, 0x0, 41, 863, 1016, 0, 0, -1 },
10290 + { 0x1, 0x1, 41, 864, 773, 34, 1, 21 },
10291 + { 0x800001, 0x800001, 41, -1, 1138, 4, 1, 16 },
10292 + { 0x1, 0x1, 41, 2202, 1136, 4, 1, 16 },
10293 + { 0x1, 0x1, 41, 939, 1141, 4, 1, 22 },
10294 + { 0x2, 0x3, 41, -1, 1146, 20, 1, 67 },
10295 + { 0x1, 0x1, 41, 2203, 1144, 21, 1, 67 },
10296 + { 0x0, 0x0, 42, -1, -1, 0, 1, 80 },
10297 + { 0x0, 0x0, 42, -1, -1, 0, 1, 80 },
10298 + { 0x0, 0x0, 42, -1, -1, 0, 1, 123 },
10299 + { 0x1, 0x1, 44, 1354, 295, 38, 1, 1 },
10300 + { 0x1, 0x1, 44, 1355, 297, 38, 1, 1 },
10301 + { 0x0, 0x0, 44, -1, 300, 0, 0, -1 },
10302 + { 0x0, 0x0, 44, -1, 414, 0, 0, -1 },
10303 + { 0x1, 0x1, 44, 1359, 317, 38, 1, 1 },
10304 + { 0x1, 0x1, 44, 1360, 319, 38, 1, 1 },
10305 + { 0x0, 0x0, 44, -1, 322, 0, 0, -1 },
10306 + { 0x0, 0x0, 44, -1, 454, 0, 0, -1 },
10307 + { 0x0, 0x0, 44, -1, 324, 0, 0, -1 },
10308 + { 0x0, 0x0, 44, -1, 342, 0, 0, -1 },
10309 + { 0x1, 0x1, 44, 1366, 343, 38, 1, 1 },
10310 + { 0x1, 0x1, 44, 1367, 345, 38, 1, 1 },
10311 + { 0x0, 0x0, 44, -1, 348, 0, 0, -1 },
10312 + { 0x0, 0x0, 44, -1, 462, 0, 0, -1 },
10313 + { 0x1, 0x1, 44, 1371, 365, 38, 1, 1 },
10314 + { 0x1, 0x1, 44, 1372, 367, 38, 1, 1 },
10315 + { 0x0, 0x0, 44, -1, 370, 0, 0, -1 },
10316 + { 0x0, 0x0, 44, -1, 502, 0, 0, -1 },
10317 + { 0x0, 0x0, 44, -1, 372, 0, 0, -1 },
10318 + { 0x0, 0x0, 44, -1, 390, 0, 0, -1 },
10319 + { 0x0, 0x0, 44, 1230, 2263, 0, 0, -1 },
10320 + { 0x0, 0x0, 44, 1231, 2271, 0, 1, 54 },
10321 + { 0x0, 0x0, 44, 1232, 2938, 0, 1, 54 },
10322 + { 0x0, 0x0, 44, 1233, 2339, 0, 0, -1 },
10323 + { 0x0, 0x0, 44, 1234, -1, 0, 1, 49 },
10324 + { 0x0, 0x0, 44, 1102, -1, 0, 1, 0 },
10325 + { 0x0, 0x0, 44, 1103, -1, 0, 1, 0 },
10326 + { 0x0, 0x0, 44, 1104, -1, 0, 1, 0 },
10327 + { 0x1, 0x1, 45, -1, 1658, 30, 1, 152 },
10328 + { 0x1, 0x1, 45, 945, 1657, 30, 1, 151 },
10329 + { 0x1, 0x1, 45, -1, 1662, 30, 1, 154 },
10330 + { 0x1, 0x1, 45, 946, 1661, 30, 1, 153 },
10331 + { 0x1, 0x1, 45, -1, 1666, 30, 1, 154 },
10332 + { 0x1, 0x1, 45, 947, 1665, 30, 1, 153 },
10333 + { 0x3, 0x3, 46, -1, 1142, 3, 1, 22 },
10334 + { 0x1, 0x1, 47, 2223, -1, 30, 1, 137 },
10335 + { 0x1, 0x1, 47, 2254, -1, 30, 1, 155 },
10336 + { 0x0, 0x0, 49, -1, -1, 0, 1, 40 },
10337 + { 0x0, 0x0, 49, -1, -1, 0, 1, 40 },
10338 + { 0x0, 0x0, 49, -1, -1, 0, 1, 40 },
10339 + { 0x1, 0x1, 56, -1, 1659, 31, 1, 152 },
10340 + { 0x1, 0x1, 56, -1, 1663, 31, 1, 154 },
10341 + { 0x1, 0x1, 56, -1, 1667, 31, 1, 154 },
10342 + { 0x0, 0x0, 56, -1, -1, 0, 1, 94 },
10343 + { 0x2, 0x3, 56, -1, -1, 27, 1, 94 },
10344 + { 0x1, 0x1, 56, -1, -1, 28, 1, 94 },
10345 + { 0x0, 0x0, 65, 14, 574, 0, 1, 6 },
10346 + { 0x0, 0x0, 65, 1255, 577, 0, 1, 6 },
10347 + { 0x1, 0x1, 65, 1256, 579, 33, 1, 6 },
10348 + { 0x1, 0x1, 65, 1257, 581, 34, 1, 6 },
10349 + { 0x3, 0x3, 65, 1258, 583, 33, 1, 6 },
10350 + { 0x0, 0x0, 65, 1259, 585, 0, 1, 6 },
10351 + { 0x1, 0x1, 65, 1260, 587, 33, 1, 6 },
10352 + { 0x1, 0x1, 65, 1261, 589, 34, 1, 6 },
10353 + { 0x3, 0x3, 65, 1262, 591, 33, 1, 6 },
10354 + { 0x1, 0x1, 65, 1263, 593, 6, 1, 7 },
10355 + { 0x8000001, 0x8000001, 65, 1264, 595, 6, 1, 7 },
10356 + { 0x10000001, 0x10000001, 65, 1265, 597, 6, 1, 7 },
10357 + { 0x18000001, 0x18000001, 65, 1266, 599, 6, 1, 7 },
10358 + { 0x0, 0x0, 65, 1267, 613, 0, 1, 8 },
10359 + { 0x1, 0x1, 65, 1268, 615, 33, 1, 8 },
10360 + { 0x1, 0x1, 65, 1269, 617, 34, 1, 8 },
10361 + { 0x3, 0x3, 65, 1270, 619, 33, 1, 8 },
10362 + { 0x0, 0x0, 65, 1271, 625, 0, 1, 15 },
10363 + { 0x1, 0x1, 65, 1272, 627, 33, 1, 15 },
10364 + { 0x1, 0x1, 65, 1273, 629, 34, 1, 15 },
10365 + { 0x3, 0x3, 65, 1274, 631, 33, 1, 15 },
10366 + { 0x0, 0x0, 65, 15, 637, 0, 1, 17 },
10367 + { 0x0, 0x0, 65, 1276, 640, 0, 1, 17 },
10368 + { 0x1, 0x1, 65, 1277, 642, 33, 1, 17 },
10369 + { 0x1, 0x1, 65, 1278, 644, 34, 1, 17 },
10370 + { 0x3, 0x3, 65, 1279, 646, 33, 1, 17 },
10371 + { 0x0, 0x0, 65, 1280, 648, 0, 1, 17 },
10372 + { 0x1, 0x1, 65, 1281, 650, 33, 1, 17 },
10373 + { 0x1, 0x1, 65, 1282, 652, 34, 1, 17 },
10374 + { 0x3, 0x3, 65, 1283, 654, 33, 1, 17 },
10375 + { 0x0, 0x0, 65, 1284, 664, 0, 1, 18 },
10376 + { 0x1, 0x1, 65, 1285, 666, 33, 1, 18 },
10377 + { 0x1, 0x1, 65, 1286, 668, 34, 1, 18 },
10378 + { 0x3, 0x3, 65, 1287, 670, 33, 1, 18 },
10379 + { 0x1, 0x1, 65, 1288, 672, 6, 1, 18 },
10380 + { 0x8000001, 0x8000001, 65, 1289, 674, 6, 1, 18 },
10381 + { 0x10000001, 0x10000001, 65, 1290, 676, 6, 1, 18 },
10382 + { 0x18000001, 0x18000001, 65, 1291, 678, 6, 1, 18 },
10383 + { 0x0, 0x0, 65, 1292, 688, 0, 1, 19 },
10384 + { 0x1, 0x1, 65, 1293, 690, 33, 1, 19 },
10385 + { 0x1, 0x1, 65, 1294, 692, 34, 1, 19 },
10386 + { 0x3, 0x3, 65, 1295, 694, 33, 1, 19 },
10387 + { 0x0, 0x0, 65, 1296, 700, 0, 1, 20 },
10388 + { 0x1, 0x1, 65, 1297, 702, 33, 1, 20 },
10389 + { 0x1, 0x1, 65, 1298, 704, 34, 1, 20 },
10390 + { 0x3, 0x3, 65, 1299, 706, 33, 1, 20 },
10391 + { 0x1, 0x1, 65, 1300, 708, 6, 1, 20 },
10392 + { 0x8000001, 0x8000001, 65, 1301, 710, 6, 1, 20 },
10393 + { 0x10000001, 0x10000001, 65, 1302, 712, 6, 1, 20 },
10394 + { 0x18000001, 0x18000001, 65, 1303, 714, 6, 1, 20 },
10395 + { 0x0, 0x0, 65, 1304, 724, 0, 1, 21 },
10396 + { 0x1, 0x1, 65, 1305, 726, 33, 1, 21 },
10397 + { 0x1, 0x1, 65, 1306, 728, 34, 1, 21 },
10398 + { 0x3, 0x3, 65, 1307, 730, 33, 1, 21 },
10399 + { 0x0, 0x0, 65, 17, 736, 0, 1, 17 },
10400 + { 0x0, 0x0, 65, 1309, 739, 0, 1, 17 },
10401 + { 0x1, 0x1, 65, 1310, 741, 33, 1, 17 },
10402 + { 0x1, 0x1, 65, 1311, 743, 34, 1, 17 },
10403 + { 0x3, 0x3, 65, 1312, 745, 33, 1, 17 },
10404 + { 0x0, 0x0, 65, 1313, 747, 0, 1, 17 },
10405 + { 0x1, 0x1, 65, 1314, 749, 33, 1, 17 },
10406 + { 0x1, 0x1, 65, 1315, 751, 34, 1, 17 },
10407 + { 0x3, 0x3, 65, 1316, 753, 33, 1, 17 },
10408 + { 0x0, 0x0, 65, 1317, 763, 0, 1, 21 },
10409 + { 0x1, 0x1, 65, 1318, 765, 33, 1, 21 },
10410 + { 0x1, 0x1, 65, 1319, 767, 34, 1, 21 },
10411 + { 0x3, 0x3, 65, 1320, 769, 33, 1, 21 },
10412 + { 0x3, 0x3, 66, 543, 1521, 33, 1, 129 },
10413 + { 0x3, 0x3, 66, 544, 1531, 33, 1, 129 },
10414 + { 0x3, 0x3, 66, 545, 1541, 33, 1, 129 },
10415 + { 0x0, 0x0, 66, -1, 1546, 0, 1, 140 },
10416 + { 0x0, 0x0, 66, -1, 1547, 0, 1, 145 },
10417 + { 0x0, 0x0, 66, -1, 1548, 0, 1, 145 },
10418 + { 0x0, 0x0, 107, 1028, 2311, 0, 0, -1 },
10419 + { 0x0, 0x0, 107, 1029, 2830, 0, 1, 29 },
10420 + { 0x0, 0x0, 107, 1030, 2352, 0, 0, -1 },
10421 + { 0x0, 0x0, 107, 1031, 2834, 0, 1, 29 },
10422 + { 0x0, 0x0, 109, -1, 2313, 0, 0, -1 },
10423 + { 0x1, 0x1, 109, -1, 2831, 27, 1, 29 },
10424 + { 0x0, 0x0, 109, -1, 2354, 0, 0, -1 },
10425 + { 0x1, 0x1, 109, -1, 2835, 27, 1, 29 },
10426 + { 0x0, 0x0, 110, 1033, -1, 0, 1, 115 },
10427 + { 0x1, 0x1, 111, -1, -1, 27, 1, 115 },
10428 + { 0x0, 0x0, 112, 1064, 2860, 0, 1, 1 },
10429 + { 0x0, 0x0, 112, 1065, 2863, 0, 1, 1 },
10430 + { 0x0, 0x0, 112, 1206, 303, 0, 0, -1 },
10431 + { 0x0, 0x0, 112, 1207, 307, 0, 0, -1 },
10432 + { 0x0, 0x0, 112, 1167, 430, 0, 0, -1 },
10433 + { 0x0, 0x0, 112, 1168, 438, 0, 0, -1 },
10434 + { 0x0, 0x0, 112, -1, 446, 0, 0, -1 },
10435 + { 0x0, 0x0, 112, 1066, 2876, 0, 1, 1 },
10436 + { 0x0, 0x0, 112, 1067, 2879, 0, 1, 1 },
10437 + { 0x0, 0x0, 112, -1, 328, 0, 0, -1 },
10438 + { 0x0, 0x0, 112, -1, 332, 0, 0, -1 },
10439 + { 0x0, 0x0, 112, 1215, 333, 0, 0, -1 },
10440 + { 0x0, 0x0, 112, 1216, 337, 0, 0, -1 },
10441 + { 0x0, 0x0, 112, 1068, 2900, 0, 1, 1 },
10442 + { 0x0, 0x0, 112, 1069, 2903, 0, 1, 1 },
10443 + { 0x0, 0x0, 112, 1219, 351, 0, 0, -1 },
10444 + { 0x0, 0x0, 112, 1220, 355, 0, 0, -1 },
10445 + { 0x0, 0x0, 112, 1180, 478, 0, 0, -1 },
10446 + { 0x0, 0x0, 112, 1181, 486, 0, 0, -1 },
10447 + { 0x0, 0x0, 112, -1, 494, 0, 0, -1 },
10448 + { 0x0, 0x0, 112, 1373, 2914, 0, 1, 1 },
10449 + { 0x0, 0x0, 112, 1374, 2916, 0, 1, 1 },
10450 + { 0x0, 0x0, 112, -1, 376, 0, 0, -1 },
10451 + { 0x0, 0x0, 112, -1, 380, 0, 0, -1 },
10452 + { 0x0, 0x0, 112, 1228, 381, 0, 0, -1 },
10453 + { 0x0, 0x0, 112, 1229, 385, 0, 0, -1 },
10454 + { 0x0, 0x0, 112, -1, 2281, 0, 0, -1 },
10455 + { 0x1, 0x9, 112, -1, 2285, 33, 1, 54 },
10456 + { 0x1, 0x9, 112, -1, 2947, 33, 1, 54 },
10457 + { 0x2, 0x3, 112, 1390, 2348, 27, 1, 49 },
10458 + { 0x1, 0x1, 114, 1356, 2861, 37, 1, 1 },
10459 + { 0x1, 0x1, 114, 1357, 2864, 37, 1, 1 },
10460 + { 0x1, 0x1, 114, 1361, 2877, 37, 1, 1 },
10461 + { 0x1, 0x1, 114, 1362, 2880, 37, 1, 1 },
10462 + { 0x1, 0x1, 114, 1368, 2901, 37, 1, 1 },
10463 + { 0x1, 0x1, 114, 1369, 2904, 37, 1, 1 },
10464 + { 0x0, 0x0, 114, -1, 2924, 0, 1, 1 },
10465 + { 0x0, 0x0, 114, -1, 2925, 0, 1, 1 },
10466 + { 0x0, 0x0, 115, 1105, 2856, 0, 1, 1 },
10467 + { 0x0, 0x0, 115, 1106, 2858, 0, 1, 1 },
10468 + { 0x0, 0x0, 115, 1165, 301, 0, 0, -1 },
10469 + { 0x0, 0x0, 115, 1166, 305, 0, 0, -1 },
10470 + { 0x0, 0x0, 115, -1, 434, 0, 0, -1 },
10471 + { 0x0, 0x0, 115, -1, 442, 0, 0, -1 },
10472 + { 0x0, 0x0, 115, 1210, 444, 0, 0, -1 },
10473 + { 0x0, 0x0, 115, -1, 2874, 0, 1, 1 },
10474 + { 0x0, 0x0, 115, -1, 2875, 0, 1, 1 },
10475 + { 0x0, 0x0, 115, 1213, 326, 0, 0, -1 },
10476 + { 0x0, 0x0, 115, 1214, 330, 0, 0, -1 },
10477 + { 0x0, 0x0, 115, 1174, 335, 0, 0, -1 },
10478 + { 0x0, 0x0, 115, 1175, 339, 0, 0, -1 },
10479 + { 0x0, 0x0, 115, 1109, 2896, 0, 1, 1 },
10480 + { 0x0, 0x0, 115, 1110, 2898, 0, 1, 1 },
10481 + { 0x0, 0x0, 115, 1178, 349, 0, 0, -1 },
10482 + { 0x0, 0x0, 115, 1179, 353, 0, 0, -1 },
10483 + { 0x0, 0x0, 115, -1, 482, 0, 0, -1 },
10484 + { 0x0, 0x0, 115, -1, 490, 0, 0, -1 },
10485 + { 0x0, 0x0, 115, 1223, 492, 0, 0, -1 },
10486 + { 0x0, 0x0, 115, -1, 2912, 0, 1, 1 },
10487 + { 0x0, 0x0, 115, -1, 2913, 0, 1, 1 },
10488 + { 0x0, 0x0, 115, 1226, 374, 0, 0, -1 },
10489 + { 0x0, 0x0, 115, 1227, 378, 0, 0, -1 },
10490 + { 0x0, 0x0, 115, 1187, 383, 0, 0, -1 },
10491 + { 0x0, 0x0, 115, 1188, 387, 0, 0, -1 },
10492 + { 0x0, 0x0, 115, 1060, 2279, 0, 0, -1 },
10493 + { 0x0, 0x0, 115, 1061, 2283, 0, 1, 54 },
10494 + { 0x0, 0x0, 115, 1062, 2946, 0, 1, 54 },
10495 + { 0x0, 0x0, 115, 1063, 2347, 0, 1, 49 },
10496 + { 0x1, 0x1, 115, -1, -1, 27, 1, 0 },
10497 + { 0x1, 0x1, 115, -1, -1, 27, 1, 0 },
10498 + { 0x1, 0x1, 115, -1, -1, 27, 1, 0 },
10499 + { 0x1, 0x1, 116, -1, 2857, 37, 1, 1 },
10500 + { 0x1, 0x1, 116, -1, 2859, 37, 1, 1 },
10501 + { 0x0, 0x0, 116, -1, 2884, 0, 1, 1 },
10502 + { 0x0, 0x0, 116, -1, 2885, 0, 1, 1 },
10503 + { 0x1, 0x1, 116, -1, 2897, 37, 1, 1 },
10504 + { 0x1, 0x1, 116, -1, 2899, 37, 1, 1 },
10505 + { 0x0, 0x0, 116, -1, 2922, 0, 1, 1 },
10506 + { 0x0, 0x0, 116, -1, 2923, 0, 1, 1 },
10507 + { 0x0, 0x0, 117, 1158, -1, 0, 1, 0 },
10508 + { 0x0, 0x0, 117, 1159, -1, 0, 1, 0 },
10509 + { 0x0, 0x0, 117, 1160, -1, 0, 1, 0 },
10510 + { 0x3, 0x3, 117, 1118, -1, 34, 1, 33 },
10511 + { 0x3, 0x3, 117, 1119, -1, 34, 1, 40 },
10512 + { 0x1, 0x1, 119, -1, -1, 35, 1, 33 },
10513 + { 0x1, 0x1, 119, -1, -1, 35, 1, 40 },
10514 + { 0x0, 0x0, 120, -1, -1, 0, 1, 40 },
10515 + { 0x0, 0x0, 120, -1, -1, 0, 1, 66 },
10516 + { 0x1, 0x1, 120, -1, -1, 36, 1, 122 },
10517 + { 0x0, 0x0, 120, -1, -1, 0, 1, 40 },
10518 + { 0x1, 0x1, 120, -1, -1, 27, 1, 96 },
10519 + { 0x0, 0x0, 120, -1, -1, 0, 1, 105 },
10520 + { 0x0, 0x0, 120, -1, -1, 0, 1, 73 },
10521 + { 0x0, 0x0, 120, -1, -1, 0, 1, 73 },
10522 + { 0x0, 0x0, 120, -1, -1, 0, 1, 74 },
10523 + { 0x0, 0x0, 120, -1, -1, 0, 1, 40 },
10524 + { 0x1, 0x1, 120, -1, -1, 27, 1, 117 },
10525 + { 0x1, 0x1, 120, -1, -1, 27, 1, 40 },
10526 + { 0x0, 0x0, 120, -1, -1, 0, 1, 40 },
10527 + { 0x0, 0x0, 121, -1, 2786, 0, 0, -1 },
10528 + { 0x0, 0x0, 121, -1, 2789, 0, 0, -1 },
10529 + { 0x1, 0x1, 122, -1, -1, 35, 1, 16 },
10530 + { 0x1, 0x1, 122, -1, -1, 35, 1, 16 },
10531 + { 0x1, 0x1, 122, -1, -1, 35, 1, 16 },
10532 + { 0x1, 0x1, 122, -1, -1, 35, 1, 16 },
10533 + { 0x1, 0x1, 122, -1, -1, 35, 1, 22 },
10534 + { 0x1, 0x1, 122, -1, -1, 35, 1, 22 },
10535 + { 0x1, 0x1, 122, -1, -1, 35, 1, 22 },
10536 + { 0x1, 0x1, 122, -1, -1, 35, 1, 22 },
10537 + { 0x1, 0x1, 122, -1, -1, 23, 1, 67 },
10538 + { 0x1, 0x1, 122, -1, -1, 23, 1, 67 },
10539 + { 0x1, 0x1, 122, -1, -1, 23, 1, 67 },
10540 + { 0x1, 0x1, 122, -1, -1, 23, 1, 67 },
10541 + { 0x1, 0x1, 122, 900, -1, 23, 1, 67 },
10542 + { 0x9, 0x9, 122, 901, -1, 20, 1, 67 },
10543 + { 0x0, 0x0, 126, 2165, -1, 0, 1, 0 },
10544 + { 0x0, 0x0, 126, 2166, -1, 0, 1, 0 },
10545 + { 0x1, 0x1, 126, -1, -1, 28, 1, 33 },
10546 + { 0x1, 0x1, 126, -1, -1, 27, 1, 33 },
10547 + { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
10548 + { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
10549 + { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
10550 + { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
10551 + { 0x0, 0x0, 126, -1, -1, 0, 1, 114 },
10552 + { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
10553 + { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
10554 + { 0x1, 0x1, 126, -1, -1, 29, 1, 0 },
10555 + { 0x0, 0x0, 126, 1116, -1, 0, 1, 33 },
10556 + { 0x0, 0x0, 126, 1244, -1, 0, 1, 40 },
10557 + { 0x0, 0x0, 140, 1194, 2852, 0, 1, 1 },
10558 + { 0x0, 0x0, 140, 1195, 2854, 0, 1, 1 },
10559 + { 0x0, 0x0, 140, 1036, 302, 0, 0, -1 },
10560 + { 0x0, 0x0, 140, 1037, 422, 0, 0, -1 },
10561 + { 0x0, 0x0, 140, 1076, 311, 0, 0, -1 },
10562 + { 0x0, 0x0, 140, 1077, 315, 0, 0, -1 },
10563 + { 0x0, 0x0, 140, 1078, 443, 0, 0, -1 },
10564 + { 0x0, 0x0, 140, -1, 2872, 0, 1, 1 },
10565 + { 0x0, 0x0, 140, -1, 2873, 0, 1, 1 },
10566 + { 0x0, 0x0, 140, 1081, 325, 0, 0, -1 },
10567 + { 0x0, 0x0, 140, 1082, 329, 0, 0, -1 },
10568 + { 0x0, 0x0, 140, -1, 336, 0, 0, -1 },
10569 + { 0x0, 0x0, 140, -1, 340, 0, 0, -1 },
10570 + { 0x0, 0x0, 140, 1198, 2892, 0, 1, 1 },
10571 + { 0x0, 0x0, 140, 1199, 2894, 0, 1, 1 },
10572 + { 0x0, 0x0, 140, 1049, 350, 0, 0, -1 },
10573 + { 0x0, 0x0, 140, 1050, 470, 0, 0, -1 },
10574 + { 0x0, 0x0, 140, 1089, 359, 0, 0, -1 },
10575 + { 0x0, 0x0, 140, 1090, 363, 0, 0, -1 },
10576 + { 0x0, 0x0, 140, 1091, 491, 0, 0, -1 },
10577 + { 0x0, 0x0, 140, -1, 2910, 0, 1, 1 },
10578 + { 0x0, 0x0, 140, -1, 2911, 0, 1, 1 },
10579 + { 0x0, 0x0, 140, 1094, 373, 0, 0, -1 },
10580 + { 0x0, 0x0, 140, 1095, 377, 0, 0, -1 },
10581 + { 0x0, 0x0, 140, -1, 384, 0, 0, -1 },
10582 + { 0x0, 0x0, 140, -1, 388, 0, 0, -1 },
10583 + { 0x0, 0x0, 140, 2974, 2267, 0, 0, -1 },
10584 + { 0x1, 0x1, 140, 2975, 2275, 33, 1, 54 },
10585 + { 0x1, 0x1, 140, 2976, 2940, 33, 1, 54 },
10586 + { 0x0, 0x0, 140, 2977, 2341, 0, 0, -1 },
10587 + { 0x1, 0x1, 140, 2978, -1, 28, 1, 49 },
10588 + { 0x1, 0x1, 141, -1, 2853, 37, 1, 1 },
10589 + { 0x1, 0x1, 141, -1, 2855, 37, 1, 1 },
10590 + { 0x0, 0x0, 141, -1, 2882, 0, 1, 1 },
10591 + { 0x0, 0x0, 141, -1, 2883, 0, 1, 1 },
10592 + { 0x1, 0x1, 141, -1, 2893, 37, 1, 1 },
10593 + { 0x1, 0x1, 141, -1, 2895, 37, 1, 1 },
10594 + { 0x0, 0x0, 141, -1, 2920, 0, 1, 1 },
10595 + { 0x0, 0x0, 141, -1, 2921, 0, 1, 1 },
10596 + { 0x1, 0x1, 144, 899, 1140, 3, 1, 22 },
10597 + { 0x0, 0x0, 145, 2167, -1, 0, 1, 33 },
10598 + { 0x0, 0x0, 146, 905, 2846, 0, 1, 1 },
10599 + { 0x0, 0x0, 146, 906, 2849, 0, 1, 1 },
10600 + { 0x0, 0x0, 146, -1, 304, 0, 0, -1 },
10601 + { 0x0, 0x0, 146, -1, 426, 0, 0, -1 },
10602 + { 0x0, 0x0, 146, 1038, 309, 0, 0, -1 },
10603 + { 0x0, 0x0, 146, 1039, 313, 0, 0, -1 },
10604 + { 0x0, 0x0, 146, 1040, 445, 0, 0, -1 },
10605 + { 0x0, 0x0, 146, 909, 2866, 0, 1, 1 },
10606 + { 0x0, 0x0, 146, 910, 2869, 0, 1, 1 },
10607 + { 0x0, 0x0, 146, 1043, 327, 0, 0, -1 },
10608 + { 0x0, 0x0, 146, 1044, 331, 0, 0, -1 },
10609 + { 0x0, 0x0, 146, 1083, 334, 0, 0, -1 },
10610 + { 0x0, 0x0, 146, 1084, 338, 0, 0, -1 },
10611 + { 0x0, 0x0, 146, 915, 2886, 0, 1, 1 },
10612 + { 0x0, 0x0, 146, 916, 2889, 0, 1, 1 },
10613 + { 0x0, 0x0, 146, -1, 352, 0, 0, -1 },
10614 + { 0x0, 0x0, 146, -1, 474, 0, 0, -1 },
10615 + { 0x0, 0x0, 146, 1051, 357, 0, 0, -1 },
10616 + { 0x0, 0x0, 146, 1052, 361, 0, 0, -1 },
10617 + { 0x0, 0x0, 146, 1053, 493, 0, 0, -1 },
10618 + { 0x0, 0x0, 146, 919, 2906, 0, 1, 1 },
10619 + { 0x0, 0x0, 146, 920, 2908, 0, 1, 1 },
10620 + { 0x0, 0x0, 146, 1056, 375, 0, 0, -1 },
10621 + { 0x0, 0x0, 146, 1057, 379, 0, 0, -1 },
10622 + { 0x0, 0x0, 146, 1096, 382, 0, 0, -1 },
10623 + { 0x0, 0x0, 146, 1097, 386, 0, 0, -1 },
10624 + { 0x0, 0x0, 146, 1189, 2265, 0, 0, -1 },
10625 + { 0x1, 0x1, 146, 1190, 2273, 36, 1, 54 },
10626 + { 0x1, 0x1, 146, 1191, 2939, 36, 1, 54 },
10627 + { 0x0, 0x0, 146, 1192, 2340, 0, 0, -1 },
10628 + { 0x1, 0x1, 146, 1193, -1, 27, 1, 49 },
10629 + { 0x1, 0x1, 147, -1, 2848, 37, 1, 1 },
10630 + { 0x1, 0x1, 147, -1, 2851, 37, 1, 1 },
10631 + { 0x1, 0x1, 147, -1, 2868, 37, 1, 1 },
10632 + { 0x1, 0x1, 147, -1, 2871, 37, 1, 1 },
10633 + { 0x1, 0x1, 147, -1, 2888, 37, 1, 1 },
10634 + { 0x1, 0x1, 147, -1, 2891, 37, 1, 1 },
10635 + { 0x0, 0x0, 147, -1, 2918, 0, 1, 1 },
10636 + { 0x0, 0x0, 147, -1, 2919, 0, 1, 1 },
10637 + { 0x0, 0x0, 148, -1, -1, 0, 1, 33 },
10638 + { 0x0, 0x0, 148, 1117, -1, 0, 1, 40 },
10639 + { 0x0, 0x0, 149, -1, -1, 0, 1, 40 },
10640 + { 0x0, 0x0, 149, -1, -1, 0, 1, 66 },
10641 + { 0x0, 0x0, 149, -1, 2926, 0, 1, 63 },
10642 + { 0x0, 0x0, 149, -1, 2927, 0, 1, 63 },
10643 + { 0x0, 0x0, 149, -1, -1, 0, 1, 40 },
10644 + { 0x0, 0x0, 149, -1, -1, 0, 1, 81 },
10645 + { 0x0, 0x0, 149, -1, -1, 0, 1, 81 },
10646 + { 0x0, 0x0, 149, -1, -1, 0, 1, 85 },
10647 + { 0x0, 0x0, 149, -1, -1, 0, 1, 40 },
10648 + { 0x1, 0x1, 150, -1, 575, 12, 1, 6 },
10649 + { 0x1, 0x1, 150, -1, 578, 12, 1, 6 },
10650 + { 0x200001, 0x200001, 150, -1, 580, 12, 1, 6 },
10651 + { 0x400001, 0x400001, 150, -1, 582, 12, 1, 6 },
10652 + { 0x600001, 0x600001, 150, -1, 584, 12, 1, 6 },
10653 + { 0x1, 0x1, 150, -1, 586, 12, 1, 6 },
10654 + { 0x200001, 0x200001, 150, -1, 588, 12, 1, 6 },
10655 + { 0x400001, 0x400001, 150, -1, 590, 12, 1, 6 },
10656 + { 0x600001, 0x600001, 150, -1, 592, 12, 1, 6 },
10657 + { 0x41, 0x41, 150, -1, 594, 6, 1, 7 },
10658 + { 0x8000041, 0x8000041, 150, -1, 596, 6, 1, 7 },
10659 + { 0x10000041, 0x10000041, 150, -1, 598, 6, 1, 7 },
10660 + { 0x18000041, 0x18000041, 150, -1, 600, 6, 1, 7 },
10661 + { 0x1, 0x1, 150, -1, 614, 12, 1, 8 },
10662 + { 0x200001, 0x200001, 150, -1, 616, 12, 1, 8 },
10663 + { 0x400001, 0x400001, 150, -1, 618, 12, 1, 8 },
10664 + { 0x600001, 0x600001, 150, -1, 620, 12, 1, 8 },
10665 + { 0x1, 0x1, 150, -1, 626, 12, 1, 15 },
10666 + { 0x200001, 0x200001, 150, -1, 628, 12, 1, 15 },
10667 + { 0x400001, 0x400001, 150, -1, 630, 12, 1, 15 },
10668 + { 0x600001, 0x600001, 150, -1, 632, 12, 1, 15 },
10669 + { 0x1, 0x1, 150, -1, 638, 12, 1, 17 },
10670 + { 0x1, 0x1, 150, -1, 641, 12, 1, 17 },
10671 + { 0x200001, 0x200001, 150, -1, 643, 12, 1, 17 },
10672 + { 0x400001, 0x400001, 150, -1, 645, 12, 1, 17 },
10673 + { 0x600001, 0x600001, 150, -1, 647, 12, 1, 17 },
10674 + { 0x1, 0x1, 150, -1, 649, 12, 1, 17 },
10675 + { 0x200001, 0x200001, 150, -1, 651, 12, 1, 17 },
10676 + { 0x400001, 0x400001, 150, -1, 653, 12, 1, 17 },
10677 + { 0x600001, 0x600001, 150, -1, 655, 12, 1, 17 },
10678 + { 0x1, 0x1, 150, -1, 665, 12, 1, 18 },
10679 + { 0x200001, 0x200001, 150, -1, 667, 12, 1, 18 },
10680 + { 0x400001, 0x400001, 150, -1, 669, 12, 1, 18 },
10681 + { 0x600001, 0x600001, 150, -1, 671, 12, 1, 18 },
10682 + { 0x41, 0x41, 150, -1, 673, 6, 1, 18 },
10683 + { 0x8000041, 0x8000041, 150, -1, 675, 6, 1, 18 },
10684 + { 0x10000041, 0x10000041, 150, -1, 677, 6, 1, 18 },
10685 + { 0x18000041, 0x18000041, 150, -1, 679, 6, 1, 18 },
10686 + { 0x1, 0x1, 150, -1, 689, 12, 1, 19 },
10687 + { 0x200001, 0x200001, 150, -1, 691, 12, 1, 19 },
10688 + { 0x400001, 0x400001, 150, -1, 693, 12, 1, 19 },
10689 + { 0x600001, 0x600001, 150, -1, 695, 12, 1, 19 },
10690 + { 0x1, 0x1, 150, -1, 701, 12, 1, 20 },
10691 + { 0x200001, 0x200001, 150, -1, 703, 12, 1, 20 },
10692 + { 0x400001, 0x400001, 150, -1, 705, 12, 1, 20 },
10693 + { 0x600001, 0x600001, 150, -1, 707, 12, 1, 20 },
10694 + { 0x41, 0x41, 150, -1, 709, 6, 1, 20 },
10695 + { 0x8000041, 0x8000041, 150, -1, 711, 6, 1, 20 },
10696 + { 0x10000041, 0x10000041, 150, -1, 713, 6, 1, 20 },
10697 + { 0x18000041, 0x18000041, 150, -1, 715, 6, 1, 20 },
10698 + { 0x1, 0x1, 150, -1, 725, 12, 1, 21 },
10699 + { 0x200001, 0x200001, 150, -1, 727, 12, 1, 21 },
10700 + { 0x400001, 0x400001, 150, -1, 729, 12, 1, 21 },
10701 + { 0x600001, 0x600001, 150, -1, 731, 12, 1, 21 },
10702 + { 0x1, 0x1, 150, -1, 737, 12, 1, 17 },
10703 + { 0x1, 0x1, 150, -1, 740, 12, 1, 17 },
10704 + { 0x200001, 0x200001, 150, -1, 742, 12, 1, 17 },
10705 + { 0x400001, 0x400001, 150, -1, 744, 12, 1, 17 },
10706 + { 0x600001, 0x600001, 150, -1, 746, 12, 1, 17 },
10707 + { 0x1, 0x1, 150, -1, 748, 12, 1, 17 },
10708 + { 0x200001, 0x200001, 150, -1, 750, 12, 1, 17 },
10709 + { 0x400001, 0x400001, 150, -1, 752, 12, 1, 17 },
10710 + { 0x600001, 0x600001, 150, -1, 754, 12, 1, 17 },
10711 + { 0x1, 0x1, 150, -1, 764, 12, 1, 21 },
10712 + { 0x200001, 0x200001, 150, -1, 766, 12, 1, 21 },
10713 + { 0x400001, 0x400001, 150, -1, 768, 12, 1, 21 },
10714 + { 0x600001, 0x600001, 150, -1, 770, 12, 1, 21 },
10715 + { 0x0, 0x0, 155, -1, -1, 0, 1, 124 },
10716 + { 0x0, 0x0, 159, 775, -1, 0, 1, 75 },
10717 + { 0x0, 0x0, 159, 776, -1, 0, 1, 75 },
10718 + { 0x9, 0x9, 159, -1, 1438, 32, 1, 130 },
10719 + { 0x9, 0x9, 159, -1, 1447, 32, 1, 130 },
10720 + { 0x9, 0x9, 159, -1, 1456, 32, 1, 130 },
10721 + { 0x9, 0x9, 159, -1, 1469, 32, 1, 130 },
10722 + { 0x9, 0x9, 159, -1, 1478, 32, 1, 130 },
10723 + { 0x9, 0x9, 159, -1, 1487, 32, 1, 130 },
10724 + { 0x9, 0x9, 159, -1, 1496, 32, 1, 130 },
10725 + { 0x9, 0x9, 159, -1, 1505, 32, 1, 130 },
10726 + { 0x9, 0x9, 159, -1, 1514, 32, 1, 130 },
10727 + { 0x9, 0x9, 159, -1, 1524, 32, 1, 130 },
10728 + { 0x9, 0x9, 159, -1, 1534, 32, 1, 130 },
10729 + { 0x9, 0x9, 159, -1, 1544, 32, 1, 130 },
10730 + { 0x9, 0x9, 159, -1, 1553, 32, 1, 144 },
10731 + { 0x9, 0x9, 159, -1, 1559, 32, 1, 149 },
10732 + { 0x9, 0x9, 159, -1, 1565, 32, 1, 149 },
10733 + { 0x9, 0x9, 159, -1, 1571, 32, 1, 144 },
10734 + { 0x9, 0x9, 159, -1, 1577, 32, 1, 149 },
10735 + { 0x9, 0x9, 159, -1, 1583, 32, 1, 149 },
10736 + { 0x9, 0x9, 159, -1, 1589, 32, 1, 144 },
10737 + { 0x9, 0x9, 159, -1, 1595, 32, 1, 149 },
10738 + { 0x9, 0x9, 159, -1, 1601, 32, 1, 149 },
10739 + { 0x9, 0x9, 159, -1, 1607, 32, 1, 144 },
10740 + { 0x9, 0x9, 159, -1, 1613, 32, 1, 149 },
10741 + { 0x9, 0x9, 159, -1, 1619, 32, 1, 144 },
10742 + { 0x9, 0x9, 159, -1, 1625, 32, 1, 149 },
10743 + { 0x9, 0x9, 159, -1, 1631, 32, 1, 144 },
10744 + { 0x9, 0x9, 159, -1, 1637, 32, 1, 149 },
10745 + { 0x9, 0x9, 159, -1, 1643, 32, 1, 144 },
10746 + { 0x9, 0x9, 159, -1, 1649, 32, 1, 149 },
10747 + { 0x9, 0x9, 159, -1, 1655, 32, 1, 149 },
10748 + { 0x0, 0x0, 160, 1235, 296, 0, 0, -1 },
10749 + { 0x0, 0x0, 160, 1236, 412, 0, 0, -1 },
10750 + { 0x1, 0x1, 160, -1, 2862, 38, 1, 1 },
10751 + { 0x1, 0x1, 160, 907, 2865, 38, 1, 1 },
10752 + { 0x0, 0x0, 160, 908, 413, 0, 0, -1 },
10753 + { 0x0, 0x0, 160, 1237, 318, 0, 0, -1 },
10754 + { 0x0, 0x0, 160, 1238, 452, 0, 0, -1 },
10755 + { 0x1, 0x1, 160, -1, 2878, 38, 1, 1 },
10756 + { 0x1, 0x1, 160, 911, 2881, 38, 1, 1 },
10757 + { 0x0, 0x0, 160, 912, 453, 0, 0, -1 },
10758 + { 0x0, 0x0, 160, 913, 323, 0, 0, -1 },
10759 + { 0x0, 0x0, 160, 914, 341, 0, 0, -1 },
10760 + { 0x0, 0x0, 160, 1239, 344, 0, 0, -1 },
10761 + { 0x0, 0x0, 160, 1240, 460, 0, 0, -1 },
10762 + { 0x1, 0x1, 160, -1, 2902, 38, 1, 1 },
10763 + { 0x1, 0x1, 160, 917, 2905, 38, 1, 1 },
10764 + { 0x0, 0x0, 160, 918, 461, 0, 0, -1 },
10765 + { 0x0, 0x0, 160, -1, 366, 0, 0, -1 },
10766 + { 0x0, 0x0, 160, -1, 500, 0, 0, -1 },
10767 + { 0x1, 0x1, 160, -1, 2915, 38, 1, 1 },
10768 + { 0x1, 0x1, 160, 921, 2917, 38, 1, 1 },
10769 + { 0x0, 0x0, 160, 922, 501, 0, 0, -1 },
10770 + { 0x0, 0x0, 160, 923, 371, 0, 0, -1 },
10771 + { 0x0, 0x0, 160, 924, 389, 0, 0, -1 },
10772 + { 0x0, 0x0, 161, 1397, 2287, 0, 0, -1 },
10773 + { 0x0, 0x0, 161, 1398, 2295, 0, 1, 54 },
10774 + { 0x0, 0x0, 161, 1399, 2956, 0, 1, 54 },
10775 + { 0x0, 0x0, 161, 1400, 2343, 0, 0, -1 },
10776 + { 0x1, 0x1, 161, 1401, -1, 29, 1, 49 },
10777 + { 0x0, 0x0, 162, -1, 2305, 0, 0, -1 },
10778 + { 0x1, 0x9, 162, -1, 2309, 33, 1, 54 },
10779 + { 0x1, 0x9, 162, -1, 2965, 33, 1, 54 },
10780 + { 0x6, 0x7, 162, -1, 2350, 27, 1, 49 },
10781 + { 0x0, 0x0, 163, 1383, 2303, 0, 0, -1 },
10782 + { 0x0, 0x0, 163, 1384, 2307, 0, 1, 54 },
10783 + { 0x0, 0x0, 163, 1385, 2964, 0, 1, 54 },
10784 + { 0x1, 0x1, 163, 1386, 2349, 29, 1, 49 },
10785 + { 0x1, 0x1, 164, 1404, -1, 27, 1, 33 },
10786 + { 0x0, 0x0, 165, 2159, 2291, 0, 0, -1 },
10787 + { 0x1, 0x1, 165, 2160, 2299, 33, 1, 54 },
10788 + { 0x1, 0x1, 165, 2161, 2958, 33, 1, 54 },
10789 + { 0x0, 0x0, 165, 2162, 2345, 0, 0, -1 },
10790 + { 0x3, 0x3, 165, 2163, -1, 28, 1, 49 },
10791 + { 0x0, 0x0, 166, 1392, 2289, 0, 0, -1 },
10792 + { 0x1, 0x1, 166, 1393, 2297, 36, 1, 54 },
10793 + { 0x1, 0x1, 166, 1394, 2957, 36, 1, 54 },
10794 + { 0x0, 0x0, 166, 1395, 2344, 0, 0, -1 },
10795 + { 0x5, 0x5, 166, 1396, -1, 27, 1, 49 },
10796 + { 0x0, 0x0, 167, -1, 2928, 0, 1, 63 },
10797 + { 0x0, 0x0, 167, -1, 2929, 0, 1, 63 },
10798 + { 0x1, 0x1, 169, -1, -1, 28, 1, 33 },
10799 + { 0x1, 0x1, 170, 2745, -1, 27, 1, 33 },
10800 + { 0x1, 0x1, 170, 2746, -1, 27, 1, 33 },
10801 + { 0x1, 0x1, 171, 1685, -1, 28, 1, 135 },
10802 + { 0x1, 0x1, 171, 1686, -1, 28, 1, 135 },
10803 + { 0x1, 0x1, 171, 1687, -1, 28, 1, 135 },
10804 + { 0x1, 0x1, 171, 1688, -1, 28, 1, 135 },
10805 + { 0x1, 0x1, 171, 1689, -1, 28, 1, 134 },
10806 + { 0x1, 0x1, 171, 1690, -1, 28, 1, 134 },
10807 + { 0x1, 0x1, 171, 1691, -1, 28, 1, 134 },
10808 + { 0x1, 0x1, 171, 1692, -1, 28, 1, 134 },
10809 + { 0x1, 0x1, 171, 1693, -1, 28, 1, 134 },
10810 + { 0x1, 0x1, 171, 1694, -1, 28, 1, 134 },
10811 + { 0x1, 0x1, 171, 1695, -1, 28, 1, 134 },
10812 + { 0x1, 0x1, 171, 1696, -1, 28, 1, 134 },
10813 + { 0x1, 0x1, 171, 1697, -1, 28, 1, 134 },
10814 + { 0x1, 0x1, 171, 1698, -1, 28, 1, 134 },
10815 + { 0x1, 0x1, 171, 1699, -1, 28, 1, 134 },
10816 + { 0x1, 0x1, 171, 1700, -1, 28, 1, 134 },
10817 + { 0x1, 0x1, 171, 1701, -1, 28, 1, 134 },
10818 + { 0x1, 0x1, 171, 1702, -1, 28, 1, 134 },
10819 + { 0x1, 0x1, 171, 1703, -1, 28, 1, 134 },
10820 + { 0x1, 0x1, 171, 1704, -1, 28, 1, 134 },
10821 + { 0x1, 0x1, 171, 1705, -1, 28, 1, 136 },
10822 + { 0x1, 0x1, 171, 1706, -1, 28, 1, 136 },
10823 + { 0x1, 0x1, 171, 1707, -1, 28, 1, 136 },
10824 + { 0x1, 0x1, 171, 1708, -1, 28, 1, 136 },
10825 + { 0x1, 0x1, 171, 1709, -1, 28, 1, 126 },
10826 + { 0x1, 0x1, 171, 1710, -1, 28, 1, 127 },
10827 + { 0x1, 0x1, 171, 1711, -1, 28, 1, 128 },
10828 + { 0x1, 0x1, 171, 1712, -1, 28, 1, 124 },
10829 + { 0x1, 0x1, 171, 1713, -1, 28, 1, 124 },
10830 + { 0x1, 0x1, 171, 1714, -1, 28, 1, 130 },
10831 + { 0x1, 0x1, 171, 1715, -1, 28, 1, 130 },
10832 + { 0x1, 0x1, 171, 1716, -1, 28, 1, 130 },
10833 + { 0x1, 0x1, 171, 1717, -1, 28, 1, 124 },
10834 + { 0x1, 0x1, 171, 1718, -1, 28, 1, 126 },
10835 + { 0x1, 0x1, 171, 1719, -1, 28, 1, 127 },
10836 + { 0x1, 0x1, 171, 1720, -1, 28, 1, 128 },
10837 + { 0x1, 0x1, 171, 1721, -1, 28, 1, 124 },
10838 + { 0x1, 0x1, 171, 1722, -1, 28, 1, 124 },
10839 + { 0x1, 0x1, 171, 1723, -1, 28, 1, 130 },
10840 + { 0x1, 0x1, 171, 1724, -1, 28, 1, 130 },
10841 + { 0x1, 0x1, 171, 1725, -1, 28, 1, 130 },
10842 + { 0x1, 0x1, 171, 1726, -1, 28, 1, 124 },
10843 + { 0x1, 0x1, 171, 1727, -1, 28, 1, 126 },
10844 + { 0x1, 0x1, 171, 1728, -1, 28, 1, 127 },
10845 + { 0x1, 0x1, 171, 1729, -1, 28, 1, 128 },
10846 + { 0x1, 0x1, 171, 1730, -1, 28, 1, 124 },
10847 + { 0x1, 0x1, 171, 1731, -1, 28, 1, 124 },
10848 + { 0x1, 0x1, 171, 1732, -1, 28, 1, 130 },
10849 + { 0x1, 0x1, 171, 1733, -1, 28, 1, 130 },
10850 + { 0x1, 0x1, 171, 1734, -1, 28, 1, 130 },
10851 + { 0x1, 0x1, 171, 1735, -1, 28, 1, 124 },
10852 + { 0x1, 0x1, 171, 1736, -1, 28, 1, 125 },
10853 + { 0x1, 0x1, 171, 1737, -1, 28, 1, 125 },
10854 + { 0x1, 0x1, 171, 1738, -1, 28, 1, 125 },
10855 + { 0x1, 0x1, 171, 1739, -1, 28, 1, 125 },
10856 + { 0x1, 0x1, 171, 1740, -1, 28, 1, 126 },
10857 + { 0x1, 0x1, 171, 1741, -1, 28, 1, 127 },
10858 + { 0x1, 0x1, 171, 1742, -1, 28, 1, 128 },
10859 + { 0x1, 0x1, 171, 1743, -1, 28, 1, 124 },
10860 + { 0x1, 0x1, 171, 1744, -1, 28, 1, 124 },
10861 + { 0x1, 0x1, 171, 1745, -1, 28, 1, 130 },
10862 + { 0x1, 0x1, 171, 1746, -1, 28, 1, 130 },
10863 + { 0x1, 0x1, 171, 1747, -1, 28, 1, 130 },
10864 + { 0x1, 0x1, 171, 1748, -1, 28, 1, 124 },
10865 + { 0x1, 0x1, 171, 1749, -1, 28, 1, 126 },
10866 + { 0x1, 0x1, 171, 1750, -1, 28, 1, 127 },
10867 + { 0x1, 0x1, 171, 1751, -1, 28, 1, 128 },
10868 + { 0x1, 0x1, 171, 1752, -1, 28, 1, 124 },
10869 + { 0x1, 0x1, 171, 1753, -1, 28, 1, 124 },
10870 + { 0x1, 0x1, 171, 1754, -1, 28, 1, 130 },
10871 + { 0x1, 0x1, 171, 1755, -1, 28, 1, 130 },
10872 + { 0x1, 0x1, 171, 1756, -1, 28, 1, 130 },
10873 + { 0x1, 0x1, 171, 1757, -1, 28, 1, 124 },
10874 + { 0x1, 0x1, 171, 1758, -1, 28, 1, 126 },
10875 + { 0x1, 0x1, 171, 1759, -1, 28, 1, 127 },
10876 + { 0x1, 0x1, 171, 1760, -1, 28, 1, 128 },
10877 + { 0x1, 0x1, 171, 1761, -1, 28, 1, 124 },
10878 + { 0x1, 0x1, 171, 1762, -1, 28, 1, 124 },
10879 + { 0x1, 0x1, 171, 1763, -1, 28, 1, 130 },
10880 + { 0x1, 0x1, 171, 1764, -1, 28, 1, 130 },
10881 + { 0x1, 0x1, 171, 1765, -1, 28, 1, 130 },
10882 + { 0x1, 0x1, 171, 1766, -1, 28, 1, 124 },
10883 + { 0x1, 0x1, 171, 1767, -1, 28, 1, 126 },
10884 + { 0x1, 0x1, 171, 1768, -1, 28, 1, 127 },
10885 + { 0x1, 0x1, 171, 1769, -1, 28, 1, 128 },
10886 + { 0x1, 0x1, 171, 1770, -1, 28, 1, 124 },
10887 + { 0x1, 0x1, 171, 1771, -1, 28, 1, 124 },
10888 + { 0x1, 0x1, 171, 1772, -1, 28, 1, 130 },
10889 + { 0x1, 0x1, 171, 1773, -1, 28, 1, 130 },
10890 + { 0x1, 0x1, 171, 1774, -1, 28, 1, 130 },
10891 + { 0x1, 0x1, 171, 1775, -1, 28, 1, 124 },
10892 + { 0x1, 0x1, 171, 1776, -1, 28, 1, 126 },
10893 + { 0x1, 0x1, 171, 1777, -1, 28, 1, 127 },
10894 + { 0x1, 0x1, 171, 1778, -1, 28, 1, 128 },
10895 + { 0x1, 0x1, 171, 1779, -1, 28, 1, 124 },
10896 + { 0x1, 0x1, 171, 1780, -1, 28, 1, 124 },
10897 + { 0x1, 0x1, 171, 1781, -1, 28, 1, 130 },
10898 + { 0x1, 0x1, 171, 1782, -1, 28, 1, 130 },
10899 + { 0x1, 0x1, 171, 1783, -1, 28, 1, 130 },
10900 + { 0x1, 0x1, 171, 1784, -1, 28, 1, 124 },
10901 + { 0x1, 0x1, 171, 1785, -1, 28, 1, 126 },
10902 + { 0x1, 0x1, 171, 1786, -1, 28, 1, 127 },
10903 + { 0x1, 0x1, 171, 1787, -1, 28, 1, 128 },
10904 + { 0x1, 0x1, 171, 1788, -1, 28, 1, 124 },
10905 + { 0x1, 0x1, 171, 1789, -1, 28, 1, 124 },
10906 + { 0x1, 0x1, 171, 1790, -1, 28, 1, 130 },
10907 + { 0x1, 0x1, 171, 1791, -1, 28, 1, 130 },
10908 + { 0x1, 0x1, 171, 1792, -1, 28, 1, 130 },
10909 + { 0x1, 0x1, 171, 1793, -1, 28, 1, 124 },
10910 + { 0x1, 0x1, 171, 1794, -1, 28, 1, 126 },
10911 + { 0x1, 0x1, 171, 1795, -1, 28, 1, 127 },
10912 + { 0x1, 0x1, 171, 1796, -1, 28, 1, 128 },
10913 + { 0x1, 0x1, 171, 1797, -1, 28, 1, 124 },
10914 + { 0x1, 0x1, 171, 1798, -1, 28, 1, 124 },
10915 + { 0x1, 0x1, 171, 1799, -1, 28, 1, 129 },
10916 + { 0x1, 0x1, 171, 1800, -1, 28, 1, 130 },
10917 + { 0x1, 0x1, 171, 1801, -1, 28, 1, 130 },
10918 + { 0x1, 0x1, 171, 1802, -1, 28, 1, 130 },
10919 + { 0x1, 0x1, 171, 1803, -1, 28, 1, 124 },
10920 + { 0x1, 0x1, 171, 1804, -1, 28, 1, 126 },
10921 + { 0x1, 0x1, 171, 1805, -1, 28, 1, 127 },
10922 + { 0x1, 0x1, 171, 1806, -1, 28, 1, 128 },
10923 + { 0x1, 0x1, 171, 1807, -1, 28, 1, 124 },
10924 + { 0x1, 0x1, 171, 1808, -1, 28, 1, 124 },
10925 + { 0x1, 0x1, 171, 1809, -1, 28, 1, 129 },
10926 + { 0x1, 0x1, 171, 1810, -1, 28, 1, 130 },
10927 + { 0x1, 0x1, 171, 1811, -1, 28, 1, 130 },
10928 + { 0x1, 0x1, 171, 1812, -1, 28, 1, 130 },
10929 + { 0x1, 0x1, 171, 1813, -1, 28, 1, 124 },
10930 + { 0x1, 0x1, 171, 1814, -1, 28, 1, 126 },
10931 + { 0x1, 0x1, 171, 1815, -1, 28, 1, 127 },
10932 + { 0x1, 0x1, 171, 1816, -1, 28, 1, 128 },
10933 + { 0x1, 0x1, 171, 1817, -1, 28, 1, 124 },
10934 + { 0x1, 0x1, 171, 1818, -1, 28, 1, 124 },
10935 + { 0x1, 0x1, 171, 1819, -1, 28, 1, 129 },
10936 + { 0x1, 0x1, 171, 1820, -1, 28, 1, 130 },
10937 + { 0x1, 0x1, 171, 1821, -1, 28, 1, 130 },
10938 + { 0x1, 0x1, 171, 1822, -1, 28, 1, 130 },
10939 + { 0x1, 0x1, 171, 1823, -1, 28, 1, 124 },
10940 + { 0x1, 0x1, 171, 1824, -1, 28, 1, 140 },
10941 + { 0x1, 0x1, 171, 1825, -1, 28, 1, 145 },
10942 + { 0x1, 0x1, 171, 1826, -1, 28, 1, 145 },
10943 + { 0x1, 0x1, 171, 1827, -1, 28, 1, 141 },
10944 + { 0x1, 0x1, 171, 1828, -1, 28, 1, 142 },
10945 + { 0x1, 0x1, 171, 1829, -1, 28, 1, 143 },
10946 + { 0x1, 0x1, 171, 1830, -1, 28, 1, 144 },
10947 + { 0x1, 0x1, 171, 1831, -1, 28, 1, 144 },
10948 + { 0x1, 0x1, 171, 1832, -1, 28, 1, 140 },
10949 + { 0x1, 0x1, 171, 1833, -1, 28, 1, 146 },
10950 + { 0x1, 0x1, 171, 1834, -1, 28, 1, 147 },
10951 + { 0x1, 0x1, 171, 1835, -1, 28, 1, 148 },
10952 + { 0x1, 0x1, 171, 1836, -1, 28, 1, 149 },
10953 + { 0x1, 0x1, 171, 1837, -1, 28, 1, 149 },
10954 + { 0x1, 0x1, 171, 1838, -1, 28, 1, 145 },
10955 + { 0x1, 0x1, 171, 1839, -1, 28, 1, 146 },
10956 + { 0x1, 0x1, 171, 1840, -1, 28, 1, 147 },
10957 + { 0x1, 0x1, 171, 1841, -1, 28, 1, 148 },
10958 + { 0x1, 0x1, 171, 1842, -1, 28, 1, 149 },
10959 + { 0x1, 0x1, 171, 1843, -1, 28, 1, 149 },
10960 + { 0x1, 0x1, 171, 1844, -1, 28, 1, 145 },
10961 + { 0x1, 0x1, 171, 1845, -1, 28, 1, 141 },
10962 + { 0x1, 0x1, 171, 1846, -1, 28, 1, 142 },
10963 + { 0x1, 0x1, 171, 1847, -1, 28, 1, 143 },
10964 + { 0x1, 0x1, 171, 1848, -1, 28, 1, 144 },
10965 + { 0x1, 0x1, 171, 1849, -1, 28, 1, 144 },
10966 + { 0x1, 0x1, 171, 1850, -1, 28, 1, 140 },
10967 + { 0x1, 0x1, 171, 1851, -1, 28, 1, 146 },
10968 + { 0x1, 0x1, 171, 1852, -1, 28, 1, 147 },
10969 + { 0x1, 0x1, 171, 1853, -1, 28, 1, 148 },
10970 + { 0x1, 0x1, 171, 1854, -1, 28, 1, 149 },
10971 + { 0x1, 0x1, 171, 1855, -1, 28, 1, 149 },
10972 + { 0x1, 0x1, 171, 1856, -1, 28, 1, 145 },
10973 + { 0x1, 0x1, 171, 1857, -1, 28, 1, 146 },
10974 + { 0x1, 0x1, 171, 1858, -1, 28, 1, 147 },
10975 + { 0x1, 0x1, 171, 1859, -1, 28, 1, 148 },
10976 + { 0x1, 0x1, 171, 1860, -1, 28, 1, 149 },
10977 + { 0x1, 0x1, 171, 1861, -1, 28, 1, 149 },
10978 + { 0x1, 0x1, 171, 1862, -1, 28, 1, 145 },
10979 + { 0x1, 0x1, 171, 1863, -1, 28, 1, 141 },
10980 + { 0x1, 0x1, 171, 1864, -1, 28, 1, 142 },
10981 + { 0x1, 0x1, 171, 1865, -1, 28, 1, 143 },
10982 + { 0x1, 0x1, 171, 1866, -1, 28, 1, 144 },
10983 + { 0x1, 0x1, 171, 1867, -1, 28, 1, 144 },
10984 + { 0x1, 0x1, 171, 1868, -1, 28, 1, 140 },
10985 + { 0x1, 0x1, 171, 1869, -1, 28, 1, 146 },
10986 + { 0x1, 0x1, 171, 1870, -1, 28, 1, 147 },
10987 + { 0x1, 0x1, 171, 1871, -1, 28, 1, 148 },
10988 + { 0x1, 0x1, 171, 1872, -1, 28, 1, 149 },
10989 + { 0x1, 0x1, 171, 1873, -1, 28, 1, 149 },
10990 + { 0x1, 0x1, 171, 1874, -1, 28, 1, 145 },
10991 + { 0x1, 0x1, 171, 1875, -1, 28, 1, 146 },
10992 + { 0x1, 0x1, 171, 1876, -1, 28, 1, 147 },
10993 + { 0x1, 0x1, 171, 1877, -1, 28, 1, 148 },
10994 + { 0x1, 0x1, 171, 1878, -1, 28, 1, 149 },
10995 + { 0x1, 0x1, 171, 1879, -1, 28, 1, 149 },
10996 + { 0x1, 0x1, 171, 1880, -1, 28, 1, 145 },
10997 + { 0x1, 0x1, 171, 1881, -1, 28, 1, 141 },
10998 + { 0x1, 0x1, 171, 1882, -1, 28, 1, 142 },
10999 + { 0x1, 0x1, 171, 1883, -1, 28, 1, 143 },
11000 + { 0x1, 0x1, 171, 1884, -1, 28, 1, 144 },
11001 + { 0x1, 0x1, 171, 1885, -1, 28, 1, 144 },
11002 + { 0x1, 0x1, 171, 1886, -1, 28, 1, 140 },
11003 + { 0x1, 0x1, 171, 1887, -1, 28, 1, 146 },
11004 + { 0x1, 0x1, 171, 1888, -1, 28, 1, 147 },
11005 + { 0x1, 0x1, 171, 1889, -1, 28, 1, 148 },
11006 + { 0x1, 0x1, 171, 1890, -1, 28, 1, 149 },
11007 + { 0x1, 0x1, 171, 1891, -1, 28, 1, 149 },
11008 + { 0x1, 0x1, 171, 1892, -1, 28, 1, 145 },
11009 + { 0x1, 0x1, 171, 1893, -1, 28, 1, 141 },
11010 + { 0x1, 0x1, 171, 1894, -1, 28, 1, 142 },
11011 + { 0x1, 0x1, 171, 1895, -1, 28, 1, 143 },
11012 + { 0x1, 0x1, 171, 1896, -1, 28, 1, 144 },
11013 + { 0x1, 0x1, 171, 1897, -1, 28, 1, 144 },
11014 + { 0x1, 0x1, 171, 1898, -1, 28, 1, 140 },
11015 + { 0x1, 0x1, 171, 1899, -1, 28, 1, 146 },
11016 + { 0x1, 0x1, 171, 1900, -1, 28, 1, 147 },
11017 + { 0x1, 0x1, 171, 1901, -1, 28, 1, 148 },
11018 + { 0x1, 0x1, 171, 1902, -1, 28, 1, 149 },
11019 + { 0x1, 0x1, 171, 1903, -1, 28, 1, 149 },
11020 + { 0x1, 0x1, 171, 1904, -1, 28, 1, 145 },
11021 + { 0x1, 0x1, 171, 1905, -1, 28, 1, 141 },
11022 + { 0x1, 0x1, 171, 1906, -1, 28, 1, 142 },
11023 + { 0x1, 0x1, 171, 1907, -1, 28, 1, 143 },
11024 + { 0x1, 0x1, 171, 1908, -1, 28, 1, 144 },
11025 + { 0x1, 0x1, 171, 1909, -1, 28, 1, 144 },
11026 + { 0x1, 0x1, 171, 1910, -1, 28, 1, 140 },
11027 + { 0x1, 0x1, 171, 1911, -1, 28, 1, 146 },
11028 + { 0x1, 0x1, 171, 1912, -1, 28, 1, 147 },
11029 + { 0x1, 0x1, 171, 1913, -1, 28, 1, 148 },
11030 + { 0x1, 0x1, 171, 1914, -1, 28, 1, 149 },
11031 + { 0x1, 0x1, 171, 1915, -1, 28, 1, 149 },
11032 + { 0x1, 0x1, 171, 1916, -1, 28, 1, 145 },
11033 + { 0x1, 0x1, 171, 1917, -1, 28, 1, 141 },
11034 + { 0x1, 0x1, 171, 1918, -1, 28, 1, 142 },
11035 + { 0x1, 0x1, 171, 1919, -1, 28, 1, 143 },
11036 + { 0x1, 0x1, 171, 1920, -1, 28, 1, 144 },
11037 + { 0x1, 0x1, 171, 1921, -1, 28, 1, 144 },
11038 + { 0x1, 0x1, 171, 1922, -1, 28, 1, 140 },
11039 + { 0x1, 0x1, 171, 1923, -1, 28, 1, 146 },
11040 + { 0x1, 0x1, 171, 1924, -1, 28, 1, 147 },
11041 + { 0x1, 0x1, 171, 1925, -1, 28, 1, 148 },
11042 + { 0x1, 0x1, 171, 1926, -1, 28, 1, 149 },
11043 + { 0x1, 0x1, 171, 1927, -1, 28, 1, 149 },
11044 + { 0x1, 0x1, 171, 1928, -1, 28, 1, 145 },
11045 + { 0x1, 0x1, 171, 1929, -1, 28, 1, 146 },
11046 + { 0x1, 0x1, 171, 1930, -1, 28, 1, 147 },
11047 + { 0x1, 0x1, 171, 1931, -1, 28, 1, 148 },
11048 + { 0x1, 0x1, 171, 1932, -1, 28, 1, 149 },
11049 + { 0x1, 0x1, 171, 1933, -1, 28, 1, 149 },
11050 + { 0x1, 0x1, 171, 1934, -1, 28, 1, 145 },
11051 + { 0x1, 0x1, 171, 1673, -1, 28, 1, 151 },
11052 + { 0x1, 0x1, 171, 1674, -1, 28, 1, 152 },
11053 + { 0x1, 0x1, 171, 1675, -1, 28, 1, 152 },
11054 + { 0x1, 0x1, 171, 1676, -1, 28, 1, 151 },
11055 + { 0x1, 0x1, 171, 1677, -1, 28, 1, 153 },
11056 + { 0x1, 0x1, 171, 1678, -1, 28, 1, 154 },
11057 + { 0x1, 0x1, 171, 1679, -1, 28, 1, 154 },
11058 + { 0x1, 0x1, 171, 1680, -1, 28, 1, 153 },
11059 + { 0x1, 0x1, 171, 1681, -1, 28, 1, 153 },
11060 + { 0x1, 0x1, 171, 1682, -1, 28, 1, 154 },
11061 + { 0x1, 0x1, 171, 1683, -1, 28, 1, 154 },
11062 + { 0x1, 0x1, 171, 1684, -1, 28, 1, 153 },
11063 + { 0x1, 0x1, 171, 1979, -1, 28, 1, 136 },
11064 + { 0x1, 0x1, 171, 1980, -1, 28, 1, 136 },
11065 + { 0x1, 0x1, 171, 1981, -1, 28, 1, 136 },
11066 + { 0x1, 0x1, 171, 1982, -1, 28, 1, 136 },
11067 + { 0x1, 0x1, 172, 1935, -1, 29, 1, 151 },
11068 + { 0x1, 0x1, 172, 1936, -1, 29, 1, 152 },
11069 + { 0x1, 0x1, 172, 1937, -1, 29, 1, 152 },
11070 + { 0x1, 0x1, 172, 1938, -1, 29, 1, 151 },
11071 + { 0x1, 0x1, 172, 1939, -1, 29, 1, 153 },
11072 + { 0x1, 0x1, 172, 1940, -1, 29, 1, 154 },
11073 + { 0x1, 0x1, 172, 1941, -1, 29, 1, 154 },
11074 + { 0x1, 0x1, 172, 1942, -1, 29, 1, 153 },
11075 + { 0x1, 0x1, 172, 1943, -1, 29, 1, 153 },
11076 + { 0x1, 0x1, 172, 1944, -1, 29, 1, 154 },
11077 + { 0x1, 0x1, 172, 1945, -1, 29, 1, 154 },
11078 + { 0x1, 0x1, 172, 1946, -1, 29, 1, 153 },
11079 + { 0x3, 0x3, 173, -1, -1, 28, 1, 135 },
11080 + { 0x3, 0x3, 173, -1, -1, 28, 1, 135 },
11081 + { 0x3, 0x3, 173, -1, -1, 28, 1, 135 },
11082 + { 0x3, 0x3, 173, -1, -1, 28, 1, 135 },
11083 + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11084 + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11085 + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11086 + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11087 + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11088 + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11089 + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11090 + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11091 + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11092 + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11093 + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11094 + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11095 + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11096 + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11097 + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11098 + { 0x3, 0x3, 173, -1, -1, 28, 1, 134 },
11099 + { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
11100 + { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
11101 + { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
11102 + { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
11103 + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11104 + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11105 + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11106 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11107 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11108 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11109 + { 0x3, 0x3, 173, 269, -1, 28, 1, 130 },
11110 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11111 + { 0x3, 0x3, 173, 2224, -1, 28, 1, 124 },
11112 + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11113 + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11114 + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11115 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11116 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11117 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11118 + { 0x3, 0x3, 173, 271, -1, 28, 1, 130 },
11119 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11120 + { 0x3, 0x3, 173, 2225, -1, 28, 1, 124 },
11121 + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11122 + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11123 + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11124 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11125 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11126 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11127 + { 0x3, 0x3, 173, 273, -1, 28, 1, 130 },
11128 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11129 + { 0x3, 0x3, 173, 2226, -1, 28, 1, 124 },
11130 + { 0x3, 0x3, 173, -1, -1, 28, 1, 125 },
11131 + { 0x3, 0x3, 173, 275, -1, 28, 1, 125 },
11132 + { 0x3, 0x3, 173, -1, -1, 28, 1, 125 },
11133 + { 0x3, 0x3, 173, 276, -1, 28, 1, 125 },
11134 + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11135 + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11136 + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11137 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11138 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11139 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11140 + { 0x3, 0x3, 173, 277, -1, 28, 1, 130 },
11141 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11142 + { 0x3, 0x3, 173, 2227, -1, 28, 1, 124 },
11143 + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11144 + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11145 + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11146 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11147 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11148 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11149 + { 0x3, 0x3, 173, 279, -1, 28, 1, 130 },
11150 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11151 + { 0x3, 0x3, 173, 2228, -1, 28, 1, 124 },
11152 + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11153 + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11154 + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11155 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11156 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11157 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11158 + { 0x3, 0x3, 173, 281, -1, 28, 1, 130 },
11159 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11160 + { 0x3, 0x3, 173, 2229, -1, 28, 1, 124 },
11161 + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11162 + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11163 + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11164 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11165 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11166 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11167 + { 0x3, 0x3, 173, 283, -1, 28, 1, 130 },
11168 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11169 + { 0x3, 0x3, 173, 2230, -1, 28, 1, 124 },
11170 + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11171 + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11172 + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11173 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11174 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11175 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11176 + { 0x3, 0x3, 173, 285, -1, 28, 1, 130 },
11177 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11178 + { 0x3, 0x3, 173, 2231, -1, 28, 1, 124 },
11179 + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11180 + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11181 + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11182 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11183 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11184 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11185 + { 0x3, 0x3, 173, 287, -1, 28, 1, 130 },
11186 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11187 + { 0x3, 0x3, 173, 2232, -1, 28, 1, 124 },
11188 + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11189 + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11190 + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11191 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11192 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11193 + { 0x3, 0x3, 173, -1, -1, 28, 1, 129 },
11194 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11195 + { 0x3, 0x3, 173, 289, -1, 28, 1, 130 },
11196 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11197 + { 0x3, 0x3, 173, 2233, -1, 28, 1, 124 },
11198 + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11199 + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11200 + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11201 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11202 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11203 + { 0x3, 0x3, 173, -1, -1, 28, 1, 129 },
11204 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11205 + { 0x3, 0x3, 173, 291, -1, 28, 1, 130 },
11206 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11207 + { 0x3, 0x3, 173, 2234, -1, 28, 1, 124 },
11208 + { 0x3, 0x3, 173, -1, -1, 28, 1, 126 },
11209 + { 0x3, 0x3, 173, -1, -1, 28, 1, 127 },
11210 + { 0x3, 0x3, 173, -1, -1, 28, 1, 128 },
11211 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11212 + { 0x3, 0x3, 173, -1, -1, 28, 1, 124 },
11213 + { 0x3, 0x3, 173, -1, -1, 28, 1, 129 },
11214 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11215 + { 0x3, 0x3, 173, 293, -1, 28, 1, 130 },
11216 + { 0x3, 0x3, 173, -1, -1, 28, 1, 130 },
11217 + { 0x3, 0x3, 173, 2235, -1, 28, 1, 124 },
11218 + { 0x3, 0x3, 173, -1, -1, 28, 1, 140 },
11219 + { 0x3, 0x3, 173, -1, -1, 28, 1, 145 },
11220 + { 0x3, 0x3, 173, -1, -1, 28, 1, 145 },
11221 + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
11222 + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
11223 + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
11224 + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11225 + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11226 + { 0x3, 0x3, 173, 2236, -1, 28, 1, 140 },
11227 + { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11228 + { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11229 + { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11230 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11231 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11232 + { 0x3, 0x3, 173, 2237, -1, 28, 1, 145 },
11233 + { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11234 + { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11235 + { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11236 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11237 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11238 + { 0x3, 0x3, 173, 2238, -1, 28, 1, 145 },
11239 + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
11240 + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
11241 + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
11242 + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11243 + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11244 + { 0x3, 0x3, 173, 2239, -1, 28, 1, 140 },
11245 + { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11246 + { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11247 + { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11248 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11249 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11250 + { 0x3, 0x3, 173, 2240, -1, 28, 1, 145 },
11251 + { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11252 + { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11253 + { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11254 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11255 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11256 + { 0x3, 0x3, 173, 2241, -1, 28, 1, 145 },
11257 + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
11258 + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
11259 + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
11260 + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11261 + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11262 + { 0x3, 0x3, 173, 2242, -1, 28, 1, 140 },
11263 + { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11264 + { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11265 + { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11266 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11267 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11268 + { 0x3, 0x3, 173, 2243, -1, 28, 1, 145 },
11269 + { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11270 + { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11271 + { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11272 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11273 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11274 + { 0x3, 0x3, 173, 2244, -1, 28, 1, 145 },
11275 + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
11276 + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
11277 + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
11278 + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11279 + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11280 + { 0x3, 0x3, 173, 2245, -1, 28, 1, 140 },
11281 + { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11282 + { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11283 + { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11284 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11285 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11286 + { 0x3, 0x3, 173, 2246, -1, 28, 1, 145 },
11287 + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
11288 + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
11289 + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
11290 + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11291 + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11292 + { 0x3, 0x3, 173, 2247, -1, 28, 1, 140 },
11293 + { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11294 + { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11295 + { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11296 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11297 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11298 + { 0x3, 0x3, 173, 2248, -1, 28, 1, 145 },
11299 + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
11300 + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
11301 + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
11302 + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11303 + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11304 + { 0x3, 0x3, 173, 2249, -1, 28, 1, 140 },
11305 + { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11306 + { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11307 + { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11308 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11309 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11310 + { 0x3, 0x3, 173, 2250, -1, 28, 1, 145 },
11311 + { 0x3, 0x3, 173, -1, -1, 28, 1, 141 },
11312 + { 0x3, 0x3, 173, -1, -1, 28, 1, 142 },
11313 + { 0x3, 0x3, 173, -1, -1, 28, 1, 143 },
11314 + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11315 + { 0x3, 0x3, 173, -1, -1, 28, 1, 144 },
11316 + { 0x3, 0x3, 173, 2251, -1, 28, 1, 140 },
11317 + { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11318 + { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11319 + { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11320 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11321 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11322 + { 0x3, 0x3, 173, 2252, -1, 28, 1, 145 },
11323 + { 0x3, 0x3, 173, -1, -1, 28, 1, 146 },
11324 + { 0x3, 0x3, 173, -1, -1, 28, 1, 147 },
11325 + { 0x3, 0x3, 173, -1, -1, 28, 1, 148 },
11326 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11327 + { 0x3, 0x3, 173, -1, -1, 28, 1, 149 },
11328 + { 0x3, 0x3, 173, 2253, -1, 28, 1, 145 },
11329 + { 0x3, 0x3, 173, -1, -1, 28, 1, 151 },
11330 + { 0x3, 0x3, 173, -1, -1, 28, 1, 152 },
11331 + { 0x3, 0x3, 173, 933, -1, 28, 1, 152 },
11332 + { 0x3, 0x3, 173, 934, -1, 28, 1, 151 },
11333 + { 0x3, 0x3, 173, -1, -1, 28, 1, 153 },
11334 + { 0x3, 0x3, 173, -1, -1, 28, 1, 154 },
11335 + { 0x3, 0x3, 173, 935, -1, 28, 1, 154 },
11336 + { 0x3, 0x3, 173, 936, -1, 28, 1, 153 },
11337 + { 0x3, 0x3, 173, -1, -1, 28, 1, 153 },
11338 + { 0x3, 0x3, 173, -1, -1, 28, 1, 154 },
11339 + { 0x3, 0x3, 173, 937, -1, 28, 1, 154 },
11340 + { 0x3, 0x3, 173, 938, -1, 28, 1, 153 },
11341 + { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
11342 + { 0x3, 0x3, 173, 2190, -1, 28, 1, 131 },
11343 + { 0x3, 0x3, 173, -1, -1, 28, 1, 138 },
11344 + { 0x3, 0x3, 173, 2191, -1, 28, 1, 138 },
11345 + { 0x3, 0x3, 173, -1, -1, 28, 1, 132 },
11346 + { 0x3, 0x3, 173, 2192, -1, 28, 1, 132 },
11347 + { 0x3, 0x3, 173, -1, -1, 28, 1, 132 },
11348 + { 0x3, 0x3, 173, 2193, -1, 28, 1, 132 },
11349 + { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
11350 + { 0x3, 0x3, 173, 2194, -1, 28, 1, 131 },
11351 + { 0x3, 0x3, 173, -1, -1, 28, 1, 138 },
11352 + { 0x3, 0x3, 173, 2195, -1, 28, 1, 138 },
11353 + { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
11354 + { 0x3, 0x3, 173, 2196, -1, 28, 1, 131 },
11355 + { 0x3, 0x3, 173, -1, -1, 28, 1, 138 },
11356 + { 0x3, 0x3, 173, 2197, -1, 28, 1, 138 },
11357 + { 0x3, 0x3, 173, -1, -1, 28, 1, 131 },
11358 + { 0x3, 0x3, 173, -1, -1, 28, 1, 133 },
11359 + { 0x3, 0x3, 173, 2198, -1, 28, 1, 131 },
11360 + { 0x3, 0x3, 173, -1, -1, 28, 1, 138 },
11361 + { 0x3, 0x3, 173, -1, -1, 28, 1, 139 },
11362 + { 0x3, 0x3, 173, 2199, -1, 28, 1, 138 },
11363 + { 0x3, 0x3, 173, -1, -1, 28, 1, 150 },
11364 + { 0x3, 0x3, 173, -1, -1, 28, 1, 156 },
11365 + { 0x3, 0x3, 173, -1, -1, 28, 1, 150 },
11366 + { 0x3, 0x3, 173, -1, -1, 28, 1, 156 },
11367 + { 0x3, 0x3, 173, -1, -1, 28, 1, 150 },
11368 + { 0x3, 0x3, 173, -1, -1, 28, 1, 156 },
11369 + { 0x3, 0x3, 173, -1, -1, 28, 1, 150 },
11370 + { 0x3, 0x3, 173, -1, -1, 28, 1, 156 },
11371 + { 0x3, 0x3, 173, -1, -1, 28, 1, 150 },
11372 + { 0x3, 0x3, 173, -1, -1, 28, 1, 156 },
11373 + { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
11374 + { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
11375 + { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
11376 + { 0x3, 0x3, 173, -1, -1, 28, 1, 136 },
11377 + { 0x0, 0x0, 174, -1, 392, 0, 0, -1 },
11378 + { 0x0, 0x0, 174, -1, 394, 0, 0, -1 },
11379 + { 0x0, 0x0, 174, 3004, 2968, 0, 1, 1 },
11380 + { 0x0, 0x0, 174, 3005, 2969, 0, 1, 1 },
11381 + { 0x0, 0x0, 174, -1, 400, 0, 0, -1 },
11382 + { 0x0, 0x0, 174, -1, 402, 0, 0, -1 },
11383 + { 0x0, 0x0, 174, 3008, 2972, 0, 1, 1 },
11384 + { 0x0, 0x0, 174, 3009, 2973, 0, 1, 1 },
11385 + { 0x11, 0x31, 175, 2847, 407, 33, 1, 4 },
11386 + { 0x2200001, 0x2200001, 175, -1, 408, 12, 1, 4 },
11387 + { 0x11, 0x31, 175, 2047, 409, 33, 1, 4 },
11388 + { 0x2200001, 0x2200001, 175, -1, 411, 12, 1, 4 },
11389 + { 0x1, 0x1, 175, -1, 415, 37, 1, 4 },
11390 + { 0x2000001, 0x2000001, 175, -1, 416, 12, 1, 4 },
11391 + { 0x11, 0x11, 175, -1, 417, 33, 1, 4 },
11392 + { 0x2200001, 0x2200001, 175, -1, 418, 12, 1, 4 },
11393 + { 0x1, 0x1, 175, 2053, 419, 37, 1, 4 },
11394 + { 0x2000001, 0x2000001, 175, -1, 421, 12, 1, 4 },
11395 + { 0x11, 0x11, 175, 2055, 423, 33, 1, 4 },
11396 + { 0x2200001, 0x2200001, 175, -1, 425, 12, 1, 4 },
11397 + { 0x1, 0x1, 175, 2057, 427, 37, 1, 4 },
11398 + { 0x2000001, 0x2000001, 175, -1, 429, 12, 1, 4 },
11399 + { 0x11, 0x11, 175, 2059, 431, 33, 1, 4 },
11400 + { 0x2200001, 0x2200001, 175, -1, 433, 12, 1, 4 },
11401 + { 0x1, 0x1, 175, 2061, 435, 37, 1, 4 },
11402 + { 0x2000001, 0x2000001, 175, -1, 437, 12, 1, 4 },
11403 + { 0x11, 0x11, 175, 2063, 439, 33, 1, 4 },
11404 + { 0x2200001, 0x2200001, 175, -1, 441, 12, 1, 4 },
11405 + { 0x11, 0x31, 175, 2867, 447, 33, 1, 4 },
11406 + { 0x2200001, 0x2200001, 175, -1, 448, 12, 1, 4 },
11407 + { 0x11, 0x31, 175, 2069, 449, 33, 1, 4 },
11408 + { 0x2200001, 0x2200001, 175, -1, 451, 12, 1, 4 },
11409 + { 0x11, 0x31, 175, 2887, 455, 33, 1, 4 },
11410 + { 0x2200001, 0x2200001, 175, -1, 456, 12, 1, 4 },
11411 + { 0x11, 0x31, 175, 2095, 457, 33, 1, 4 },
11412 + { 0x2200001, 0x2200001, 175, -1, 459, 12, 1, 4 },
11413 + { 0x1, 0x1, 175, -1, 463, 37, 1, 4 },
11414 + { 0x2000001, 0x2000001, 175, -1, 464, 12, 1, 4 },
11415 + { 0x11, 0x11, 175, -1, 465, 33, 1, 4 },
11416 + { 0x2200001, 0x2200001, 175, -1, 466, 12, 1, 4 },
11417 + { 0x1, 0x1, 175, 2101, 467, 37, 1, 4 },
11418 + { 0x2000001, 0x2000001, 175, -1, 469, 12, 1, 4 },
11419 + { 0x11, 0x11, 175, 2103, 471, 33, 1, 4 },
11420 + { 0x2200001, 0x2200001, 175, -1, 473, 12, 1, 4 },
11421 + { 0x1, 0x1, 175, 2105, 475, 37, 1, 4 },
11422 + { 0x2000001, 0x2000001, 175, -1, 477, 12, 1, 4 },
11423 + { 0x11, 0x11, 175, 2107, 479, 33, 1, 4 },
11424 + { 0x2200001, 0x2200001, 175, -1, 481, 12, 1, 4 },
11425 + { 0x1, 0x1, 175, 2109, 483, 37, 1, 4 },
11426 + { 0x2000001, 0x2000001, 175, -1, 485, 12, 1, 4 },
11427 + { 0x11, 0x11, 175, 2111, 487, 33, 1, 4 },
11428 + { 0x2200001, 0x2200001, 175, -1, 489, 12, 1, 4 },
11429 + { 0x11, 0x31, 175, 2907, 495, 33, 1, 4 },
11430 + { 0x2200001, 0x2200001, 175, -1, 496, 12, 1, 4 },
11431 + { 0x11, 0x31, 175, 2117, 497, 33, 1, 4 },
11432 + { 0x2200001, 0x2200001, 175, -1, 499, 12, 1, 4 },
11433 + { 0x1, 0x1, 175, -1, 503, 33, 1, 4 },
11434 + { 0x200001, 0x200001, 175, -1, 504, 12, 1, 4 },
11435 + { 0x1, 0x1, 175, -1, 505, 33, 1, 4 },
11436 + { 0x200001, 0x200001, 175, -1, 506, 12, 1, 4 },
11437 + { 0x1, 0x1, 175, -1, 511, 33, 1, 4 },
11438 + { 0x200001, 0x200001, 175, -1, 512, 12, 1, 4 },
11439 + { 0x1, 0x1, 175, -1, 513, 33, 1, 4 },
11440 + { 0x200001, 0x200001, 175, -1, 514, 12, 1, 4 },
11441 + { 0x2200001, 0x6200001, 176, 2850, -1, 12, 1, 4 },
11442 + { 0x11, 0x11, 176, 1994, -1, 33, 1, 4 },
11443 + { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11444 + { 0x4200001, 0x4200001, 176, -1, -1, 12, 1, 5 },
11445 + { 0x1, 0x1, 176, -1, -1, 37, 1, 4 },
11446 + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11447 + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11448 + { 0x1, 0x1, 176, 2000, -1, 37, 1, 4 },
11449 + { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
11450 + { 0x11, 0x11, 176, 2002, -1, 33, 1, 4 },
11451 + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11452 + { 0x1, 0x1, 176, 2004, -1, 37, 1, 4 },
11453 + { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
11454 + { 0x11, 0x11, 176, 2006, -1, 33, 1, 4 },
11455 + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11456 + { 0x1, 0x1, 176, 2008, -1, 37, 1, 4 },
11457 + { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
11458 + { 0x11, 0x11, 176, 2010, -1, 33, 1, 4 },
11459 + { 0x1, 0x1, 176, -1, -1, 37, 1, 4 },
11460 + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11461 + { 0x11, 0x11, 176, -1, -1, 33, 1, 4 },
11462 + { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
11463 + { 0x2200001, 0x6200001, 176, 2870, -1, 12, 1, 4 },
11464 + { 0x11, 0x11, 176, 2014, -1, 33, 1, 4 },
11465 + { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11466 + { 0x4200001, 0x4200001, 176, -1, -1, 12, 1, 5 },
11467 + { 0x1, 0x1, 176, -1, -1, 37, 1, 4 },
11468 + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11469 + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11470 + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11471 + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11472 + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11473 + { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11474 + { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
11475 + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11476 + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11477 + { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11478 + { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
11479 + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11480 + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11481 + { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11482 + { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
11483 + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11484 + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11485 + { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11486 + { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
11487 + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11488 + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11489 + { 0x2200001, 0x6200001, 176, 2890, -1, 12, 1, 4 },
11490 + { 0x11, 0x11, 176, 2018, -1, 33, 1, 4 },
11491 + { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11492 + { 0x4200001, 0x4200001, 176, -1, -1, 12, 1, 5 },
11493 + { 0x1, 0x1, 176, -1, -1, 37, 1, 4 },
11494 + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11495 + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11496 + { 0x1, 0x1, 176, 2024, -1, 37, 1, 4 },
11497 + { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
11498 + { 0x11, 0x11, 176, 2026, -1, 33, 1, 4 },
11499 + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11500 + { 0x1, 0x1, 176, 2028, -1, 37, 1, 4 },
11501 + { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
11502 + { 0x11, 0x11, 176, 2030, -1, 33, 1, 4 },
11503 + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11504 + { 0x1, 0x1, 176, 2032, -1, 37, 1, 4 },
11505 + { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
11506 + { 0x11, 0x11, 176, 2034, -1, 33, 1, 4 },
11507 + { 0x1, 0x1, 176, -1, -1, 37, 1, 4 },
11508 + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11509 + { 0x11, 0x11, 176, -1, -1, 33, 1, 4 },
11510 + { 0x2200001, 0x2200001, 176, -1, -1, 12, 1, 4 },
11511 + { 0x2200001, 0x6200001, 176, 2909, -1, 12, 1, 4 },
11512 + { 0x11, 0x11, 176, 2038, -1, 33, 1, 4 },
11513 + { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11514 + { 0x4200001, 0x4200001, 176, -1, -1, 12, 1, 5 },
11515 + { 0x1, 0x1, 176, -1, -1, 37, 1, 4 },
11516 + { 0x2000001, 0x2000001, 176, -1, -1, 12, 1, 4 },
11517 + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11518 + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11519 + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11520 + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11521 + { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11522 + { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
11523 + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11524 + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11525 + { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11526 + { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
11527 + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11528 + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11529 + { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11530 + { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
11531 + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11532 + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11533 + { 0x1, 0x1, 176, -1, -1, 33, 1, 5 },
11534 + { 0x200001, 0x200001, 176, -1, -1, 12, 1, 5 },
11535 + { 0x0, 0x0, 176, -1, -1, 0, 1, 5 },
11536 + { 0x1, 0x1, 176, -1, -1, 12, 1, 5 },
11537 + { 0x9, 0x9, 176, -1, -1, 33, 1, 5 },
11538 + { 0x1, 0x1, 176, 395, -1, 33, 1, 4 },
11539 + { 0x1200001, 0x1200001, 176, -1, -1, 12, 1, 5 },
11540 + { 0x200001, 0x200001, 176, 396, -1, 12, 1, 4 },
11541 + { 0x9, 0x9, 176, -1, -1, 33, 1, 5 },
11542 + { 0x1, 0x1, 176, 397, -1, 33, 1, 4 },
11543 + { 0x1200001, 0x1200001, 176, -1, -1, 12, 1, 5 },
11544 + { 0x200001, 0x200001, 176, 398, -1, 12, 1, 4 },
11545 + { 0x9, 0x9, 176, -1, -1, 33, 1, 5 },
11546 + { 0x1, 0x1, 176, 403, -1, 33, 1, 4 },
11547 + { 0x1200001, 0x1200001, 176, -1, -1, 12, 1, 5 },
11548 + { 0x200001, 0x200001, 176, 404, -1, 12, 1, 4 },
11549 + { 0x9, 0x9, 176, -1, -1, 33, 1, 5 },
11550 + { 0x1, 0x1, 176, 405, -1, 33, 1, 4 },
11551 + { 0x1200001, 0x1200001, 176, -1, -1, 12, 1, 5 },
11552 + { 0x200001, 0x200001, 176, 406, -1, 12, 1, 4 },
11553 + { 0x0, 0x0, 177, -1, 2293, 0, 0, -1 },
11554 + { 0x9, 0x9, 177, -1, 2301, 33, 1, 49 },
11555 + { 0x9, 0x9, 177, -1, 2959, 33, 1, 49 },
11556 + { 0x0, 0x0, 177, -1, 2346, 0, 0, -1 },
11557 + { 0x7, 0x7, 177, -1, -1, 27, 1, 49 },
11558 + { 0x1, 0x1, 197, -1, -1, 27, 1, 10 },
11559 + { 0x1, 0x1, 211, -1, -1, 29, 1, 0 },
11560 + { 0x1, 0x1, 211, -1, -1, 29, 1, 0 },
11561 + { 0x2, 0x3, 211, 1151, -1, 27, 1, 33 },
11562 + { 0x0, 0x0, 211, 1152, -1, 0, 1, 33 },
11563 + { 0x0, 0x0, 211, 1153, -1, 0, 1, 0 },
11564 + { 0x0, 0x0, 211, 1154, -1, 0, 1, 0 },
11565 + { 0x0, 0x0, 211, 1155, -1, 0, 1, 0 },
11566 + { 0x0, 0x0, 211, 1156, -1, 0, 1, 0 },
11567 + { 0x0, 0x0, 211, 2988, -1, 0, 1, 93 },
11568 + { 0x0, 0x0, 211, 2989, -1, 0, 1, 93 },
11569 + { 0x0, 0x0, 211, 2990, 949, 0, 0, -1 },
11570 + { 0x1, 0x1, 212, -1, -1, 27, 1, 0 },
11571 + { 0x1, 0x1, 212, -1, -1, 27, 1, 0 },
11572 + { 0x1, 0x1, 213, -1, 1408, 32, 1, 135 },
11573 + { 0x1, 0x1, 213, -1, 1410, 32, 1, 135 },
11574 + { 0x1, 0x1, 213, -1, 1412, 32, 1, 134 },
11575 + { 0x1, 0x1, 213, -1, 1414, 32, 1, 134 },
11576 + { 0x1, 0x1, 213, -1, 1416, 32, 1, 134 },
11577 + { 0x1, 0x1, 213, -1, 1418, 32, 1, 134 },
11578 + { 0x1, 0x1, 213, -1, 1420, 32, 1, 134 },
11579 + { 0x1, 0x1, 213, -1, 1422, 32, 1, 134 },
11580 + { 0x1, 0x1, 213, -1, 1424, 32, 1, 134 },
11581 + { 0x1, 0x1, 213, -1, 1426, 32, 1, 134 },
11582 + { 0x1, 0x1, 213, -1, 1428, 32, 1, 136 },
11583 + { 0x1, 0x1, 213, -1, 1430, 32, 1, 136 },
11584 + { 0x1, 0x1, 213, -1, 1947, 32, 1, 131 },
11585 + { 0x1, 0x1, 213, -1, 1949, 32, 1, 138 },
11586 + { 0x1, 0x1, 213, -1, 1951, 32, 1, 132 },
11587 + { 0x1, 0x1, 213, -1, 1953, 32, 1, 132 },
11588 + { 0x1, 0x1, 213, -1, 1955, 32, 1, 131 },
11589 + { 0x1, 0x1, 213, -1, 1957, 32, 1, 138 },
11590 + { 0x1, 0x1, 213, -1, 1959, 32, 1, 131 },
11591 + { 0x1, 0x1, 213, -1, 1961, 32, 1, 138 },
11592 + { 0x1, 0x1, 213, 2749, 1963, 32, 1, 131 },
11593 + { 0x1, 0x1, 213, 2750, 1966, 32, 1, 138 },
11594 + { 0x0, 0x0, 214, -1, 2791, 0, 0, -1 },
11595 + { 0x0, 0x0, 214, -1, 2792, 0, 0, -1 },
11596 + { 0x0, 0x0, 214, -1, 2817, 0, 0, -1 },
11597 + { 0x5, 0x5, 214, -1, 2820, 20, 1, 67 },
11598 + { 0x0, 0x0, 218, 2175, 948, 0, 0, -1 },
11599 + { 0x0, 0x0, 219, -1, 1121, 0, 0, -1 },
11600 + { 0x0, 0x0, 219, -1, 1246, 0, 0, -1 },
11601 + { 0x0, 0x0, 219, -1, -1, 0, 1, 121 },
11602 + { 0x0, 0x0, 219, -1, -1, 0, 1, 66 },
11603 + { 0x1, 0x1, 219, 815, 2255, 36, 1, 65 },
11604 + { 0x1, 0x1, 219, 816, 2314, 36, 1, 65 },
11605 + { 0x0, 0x0, 219, 817, 2317, 0, 0, -1 },
11606 + { 0x1, 0x1, 219, 818, -1, 36, 1, 65 },
11607 + { 0x0, 0x0, 219, 1405, -1, 0, 1, 33 },
11608 + { 0x1, 0x1, 219, 819, 2322, 36, 1, 65 },
11609 + { 0x0, 0x0, 219, 820, 2325, 0, 0, -1 },
11610 + { 0x1, 0x1, 219, 821, -1, 36, 1, 65 },
11611 + { 0x0, 0x0, 219, 822, 2328, 0, 0, -1 },
11612 + { 0x1, 0x1, 219, 823, -1, 36, 1, 65 },
11613 + { 0x1, 0x1, 219, 824, 2331, 36, 1, 65 },
11614 + { 0x1, 0x1, 219, 825, 2334, 36, 1, 65 },
11615 + { 0x0, 0x0, 219, 1406, -1, 0, 1, 33 },
11616 + { 0x1, 0x1, 219, 826, 2367, 36, 1, 65 },
11617 + { 0x1, 0x1, 219, 827, -1, 31, 1, 137 },
11618 + { 0x1, 0x1, 219, 226, 1431, 32, 1, 126 },
11619 + { 0x1, 0x1, 219, 227, 1440, 32, 1, 126 },
11620 + { 0x1, 0x1, 219, 228, 1449, 32, 1, 126 },
11621 + { 0x1, 0x1, 219, 229, 1462, 32, 1, 126 },
11622 + { 0x1, 0x1, 219, 230, 1471, 32, 1, 126 },
11623 + { 0x1, 0x1, 219, 231, 1480, 32, 1, 126 },
11624 + { 0x1, 0x1, 219, 232, 1489, 32, 1, 126 },
11625 + { 0x1, 0x1, 219, 233, 1498, 32, 1, 126 },
11626 + { 0x1, 0x1, 219, 234, 1507, 32, 1, 126 },
11627 + { 0x1, 0x1, 219, 235, 1516, 32, 1, 126 },
11628 + { 0x1, 0x1, 219, 236, 1526, 32, 1, 126 },
11629 + { 0x1, 0x1, 219, 237, 1536, 32, 1, 126 },
11630 + { 0x1, 0x1, 219, 238, 1549, 32, 1, 141 },
11631 + { 0x1, 0x1, 219, 239, 1555, 32, 1, 146 },
11632 + { 0x1, 0x1, 219, 240, 1561, 32, 1, 146 },
11633 + { 0x1, 0x1, 219, 241, 1567, 32, 1, 141 },
11634 + { 0x1, 0x1, 219, 242, 1573, 32, 1, 146 },
11635 + { 0x1, 0x1, 219, 243, 1579, 32, 1, 146 },
11636 + { 0x1, 0x1, 219, 244, 1585, 32, 1, 141 },
11637 + { 0x1, 0x1, 219, 245, 1591, 32, 1, 146 },
11638 + { 0x1, 0x1, 219, 246, 1597, 32, 1, 146 },
11639 + { 0x1, 0x1, 219, 247, 1603, 32, 1, 141 },
11640 + { 0x1, 0x1, 219, 248, 1609, 32, 1, 146 },
11641 + { 0x1, 0x1, 219, 249, 1615, 32, 1, 141 },
11642 + { 0x1, 0x1, 219, 250, 1621, 32, 1, 146 },
11643 + { 0x1, 0x1, 219, 251, 1627, 32, 1, 141 },
11644 + { 0x1, 0x1, 219, 252, 1633, 32, 1, 146 },
11645 + { 0x1, 0x1, 219, 253, 1639, 32, 1, 141 },
11646 + { 0x1, 0x1, 219, 254, 1645, 32, 1, 146 },
11647 + { 0x1, 0x1, 219, 255, 1651, 32, 1, 146 },
11648 + { 0x1, 0x1, 219, 831, -1, 31, 1, 155 },
11649 + { 0x0, 0x0, 220, 2370, -1, 0, 1, 65 },
11650 + { 0x0, 0x0, 220, 2371, -1, 0, 1, 28 },
11651 + { 0x0, 0x0, 220, 25, -1, 0, 1, 28 },
11652 + { 0x0, 0x0, 220, 2373, -1, 0, 1, 28 },
11653 + { 0x0, 0x0, 220, 2374, -1, 0, 1, 28 },
11654 + { 0x0, 0x0, 220, 2375, -1, 0, 1, 44 },
11655 + { 0x0, 0x0, 220, 2376, -1, 0, 1, 39 },
11656 + { 0x1, 0x1, 220, 2377, -1, 12, 1, 58 },
11657 + { 0x0, 0x0, 220, 2378, -1, 0, 1, 53 },
11658 + { 0x1000001, 0x1000001, 220, 2379, -1, 12, 1, 58 },
11659 + { 0x1, 0x1, 220, 2380, -1, 36, 1, 53 },
11660 + { 0x200001, 0x200001, 220, 2381, -1, 12, 1, 58 },
11661 + { 0x1, 0x1, 220, 2382, -1, 33, 1, 53 },
11662 + { 0x1200001, 0x1200001, 220, 2383, -1, 12, 1, 48 },
11663 + { 0x9, 0x9, 220, 2384, -1, 33, 1, 48 },
11664 + { 0x0, 0x0, 220, 2385, -1, 0, 1, 58 },
11665 + { 0x0, 0x0, 220, 2386, -1, 0, 1, 53 },
11666 + { 0x0, 0x0, 220, 2387, -1, 0, 1, 58 },
11667 + { 0x0, 0x0, 220, 2388, -1, 0, 1, 53 },
11668 + { 0x0, 0x0, 220, 2389, -1, 0, 1, 58 },
11669 + { 0x0, 0x0, 220, 2390, -1, 0, 1, 53 },
11670 + { 0x0, 0x0, 220, 2391, -1, 0, 1, 48 },
11671 + { 0x0, 0x0, 220, 2392, -1, 0, 1, 48 },
11672 + { 0x1, 0x1, 220, 2393, -1, 12, 1, 58 },
11673 + { 0x0, 0x0, 220, 2394, -1, 0, 1, 53 },
11674 + { 0x200001, 0x1200001, 220, 2395, -1, 12, 1, 58 },
11675 + { 0x1, 0x9, 220, 2396, -1, 33, 1, 53 },
11676 + { 0x0, 0x0, 220, 2397, -1, 0, 1, 58 },
11677 + { 0x0, 0x0, 220, 2398, -1, 0, 1, 53 },
11678 + { 0x0, 0x0, 220, 2399, -1, 0, 1, 58 },
11679 + { 0x0, 0x0, 220, 2400, -1, 0, 1, 53 },
11680 + { 0x1, 0x1, 220, 2401, -1, 12, 1, 58 },
11681 + { 0x0, 0x0, 220, 2402, -1, 0, 1, 53 },
11682 + { 0x1000001, 0x1000001, 220, 2403, -1, 12, 1, 58 },
11683 + { 0x1, 0x1, 220, 2404, -1, 36, 1, 53 },
11684 + { 0x200001, 0x200001, 220, 2405, -1, 12, 1, 58 },
11685 + { 0x1, 0x1, 220, 2406, -1, 33, 1, 53 },
11686 + { 0x1200001, 0x1200001, 220, 2407, -1, 12, 1, 48 },
11687 + { 0x9, 0x9, 220, 2408, -1, 33, 1, 48 },
11688 + { 0x0, 0x0, 220, 2409, -1, 0, 1, 58 },
11689 + { 0x0, 0x0, 220, 2410, -1, 0, 1, 53 },
11690 + { 0x0, 0x0, 220, 2411, -1, 0, 1, 58 },
11691 + { 0x0, 0x0, 220, 2412, -1, 0, 1, 53 },
11692 + { 0x0, 0x0, 220, 2413, -1, 0, 1, 58 },
11693 + { 0x0, 0x0, 220, 2414, -1, 0, 1, 53 },
11694 + { 0x0, 0x0, 220, 2415, -1, 0, 1, 48 },
11695 + { 0x0, 0x0, 220, 2416, -1, 0, 1, 48 },
11696 + { 0x1, 0x1, 220, 2417, -1, 12, 1, 58 },
11697 + { 0x0, 0x0, 220, 2418, -1, 0, 1, 53 },
11698 + { 0x200001, 0x1200001, 220, 2419, -1, 12, 1, 58 },
11699 + { 0x1, 0x9, 220, 2420, -1, 33, 1, 53 },
11700 + { 0x0, 0x0, 220, 2421, -1, 0, 1, 58 },
11701 + { 0x0, 0x0, 220, 2422, -1, 0, 1, 53 },
11702 + { 0x0, 0x0, 220, 2423, -1, 0, 1, 58 },
11703 + { 0x0, 0x0, 220, 2424, -1, 0, 1, 53 },
11704 + { 0x1, 0x1, 220, 2425, -1, 28, 1, 28 },
11705 + { 0x0, 0x0, 220, 2426, -1, 0, 1, 28 },
11706 + { 0x3, 0x3, 220, 2427, -1, 27, 1, 28 },
11707 + { 0x1, 0x1, 220, 2428, -1, 27, 1, 28 },
11708 + { 0x0, 0x0, 220, 2429, -1, 0, 1, 65 },
11709 + { 0x0, 0x0, 220, 2430, -1, 0, 1, 28 },
11710 + { 0x0, 0x0, 220, 2431, -1, 0, 1, 28 },
11711 + { 0x1, 0x1, 220, 2432, -1, 36, 1, 65 },
11712 + { 0x1, 0x1, 220, 2433, -1, 37, 1, 28 },
11713 + { 0x0, 0x0, 220, 2434, -1, 0, 1, 28 },
11714 + { 0x0, 0x0, 220, 2435, -1, 0, 1, 28 },
11715 + { 0x0, 0x0, 220, 2436, -1, 0, 1, 28 },
11716 + { 0x0, 0x0, 220, 2437, -1, 0, 1, 65 },
11717 + { 0x0, 0x0, 220, 2438, -1, 0, 1, 28 },
11718 + { 0x0, 0x0, 220, 37, -1, 0, 1, 28 },
11719 + { 0x1, 0x1, 220, 2440, -1, 36, 1, 65 },
11720 + { 0x1, 0x1, 220, 2441, -1, 37, 1, 28 },
11721 + { 0x0, 0x0, 220, 2442, -1, 0, 1, 28 },
11722 + { 0x1, 0x1, 220, 2443, -1, 36, 1, 65 },
11723 + { 0x1, 0x1, 220, 2444, -1, 37, 1, 28 },
11724 + { 0x0, 0x0, 220, 2445, -1, 0, 1, 28 },
11725 + { 0x0, 0x0, 220, 2446, -1, 0, 1, 65 },
11726 + { 0x0, 0x0, 220, 2447, -1, 0, 1, 28 },
11727 + { 0x0, 0x0, 220, 42, -1, 0, 1, 28 },
11728 + { 0x0, 0x0, 220, 2449, -1, 0, 1, 65 },
11729 + { 0x0, 0x0, 220, 2450, -1, 0, 1, 28 },
11730 + { 0x0, 0x0, 220, 43, -1, 0, 1, 28 },
11731 + { 0x0, 0x0, 220, 2452, -1, 0, 1, 28 },
11732 + { 0x0, 0x0, 220, 2453, -1, 0, 1, 28 },
11733 + { 0x0, 0x0, 220, 2454, -1, 0, 1, 48 },
11734 + { 0x1, 0x1, 220, 2455, -1, 27, 1, 48 },
11735 + { 0x1, 0x1, 220, 2456, -1, 28, 1, 48 },
11736 + { 0x3, 0x3, 220, 2457, -1, 27, 1, 48 },
11737 + { 0x1, 0x1, 220, 2458, -1, 29, 1, 48 },
11738 + { 0x5, 0x5, 220, 2459, -1, 27, 1, 48 },
11739 + { 0x3, 0x3, 220, 2460, -1, 28, 1, 48 },
11740 + { 0x7, 0x7, 220, 2461, -1, 27, 1, 48 },
11741 + { 0x0, 0x0, 220, 2462, -1, 0, 1, 48 },
11742 + { 0x0, 0x0, 220, 2463, -1, 0, 1, 48 },
11743 + { 0x0, 0x0, 220, 2464, -1, 0, 1, 48 },
11744 + { 0x0, 0x0, 220, 2465, -1, 0, 1, 48 },
11745 + { 0x1, 0x1, 220, 2466, -1, 28, 1, 28 },
11746 + { 0x0, 0x0, 220, 2467, -1, 0, 1, 28 },
11747 + { 0x3, 0x3, 220, 2468, -1, 27, 1, 28 },
11748 + { 0x1, 0x1, 220, 2469, -1, 27, 1, 28 },
11749 + { 0x0, 0x0, 220, 2470, -1, 0, 1, 28 },
11750 + { 0x0, 0x0, 220, 2471, -1, 0, 1, 28 },
11751 + { 0x0, 0x0, 220, 2472, -1, 0, 1, 28 },
11752 + { 0x0, 0x0, 220, 52, -1, 0, 1, 28 },
11753 + { 0x0, 0x0, 220, 2474, -1, 0, 1, 28 },
11754 + { 0x0, 0x0, 220, 2475, -1, 0, 1, 28 },
11755 + { 0x0, 0x0, 220, 57, -1, 0, 1, 28 },
11756 + { 0x0, 0x0, 220, 2477, -1, 0, 1, 23 },
11757 + { 0x0, 0x0, 220, 2478, -1, 0, 1, 23 },
11758 + { 0x0, 0x0, 220, 2479, -1, 0, 1, 23 },
11759 + { 0x0, 0x0, 220, 2480, -1, 0, 1, 23 },
11760 + { 0x0, 0x0, 220, 2481, -1, 0, 1, 34 },
11761 + { 0x0, 0x0, 220, 2482, -1, 0, 1, 65 },
11762 + { 0x0, 0x0, 220, 2483, -1, 0, 1, 28 },
11763 + { 0x0, 0x0, 220, 64, -1, 0, 1, 28 },
11764 + { 0x1, 0x1, 221, 2485, -1, 34, 1, 65 },
11765 + { 0x1, 0x1, 221, 2486, -1, 34, 1, 30 },
11766 + { 0x1, 0x1, 221, 2487, -1, 34, 1, 30 },
11767 + { 0x1, 0x1, 221, 2488, -1, 34, 1, 30 },
11768 + { 0x1, 0x1, 221, 2489, -1, 34, 1, 30 },
11769 + { 0x1, 0x1, 221, 2490, -1, 34, 1, 45 },
11770 + { 0x1, 0x1, 221, 2491, -1, 34, 1, 41 },
11771 + { 0x400001, 0x400001, 221, 2492, -1, 12, 1, 60 },
11772 + { 0x1, 0x1, 221, 2493, -1, 34, 1, 55 },
11773 + { 0x1400001, 0x1400001, 221, 2494, -1, 12, 1, 60 },
11774 + { 0x5, 0x5, 221, 2495, -1, 34, 1, 55 },
11775 + { 0x600001, 0x600001, 221, 2496, -1, 12, 1, 60 },
11776 + { 0x3, 0x3, 221, 2497, -1, 33, 1, 55 },
11777 + { 0x1600001, 0x1600001, 221, 2498, -1, 12, 1, 50 },
11778 + { 0xb, 0xb, 221, 2499, -1, 33, 1, 50 },
11779 + { 0x1, 0x1, 221, 2500, -1, 34, 1, 60 },
11780 + { 0x1, 0x1, 221, 2501, -1, 34, 1, 55 },
11781 + { 0x1, 0x1, 221, 2502, -1, 34, 1, 60 },
11782 + { 0x1, 0x1, 221, 2503, -1, 34, 1, 55 },
11783 + { 0x1, 0x1, 221, 2504, -1, 34, 1, 60 },
11784 + { 0x1, 0x1, 221, 2505, -1, 34, 1, 55 },
11785 + { 0x1, 0x1, 221, 2506, -1, 34, 1, 50 },
11786 + { 0x1, 0x1, 221, 2507, -1, 34, 1, 50 },
11787 + { 0x400001, 0x400001, 221, 2508, -1, 12, 1, 60 },
11788 + { 0x1, 0x1, 221, 2509, -1, 34, 1, 55 },
11789 + { 0x600001, 0x1600001, 221, 2510, -1, 12, 1, 60 },
11790 + { 0x3, 0xb, 221, 2511, -1, 33, 1, 55 },
11791 + { 0x1, 0x1, 221, 2512, -1, 34, 1, 60 },
11792 + { 0x1, 0x1, 221, 2513, -1, 34, 1, 55 },
11793 + { 0x1, 0x1, 221, 2514, -1, 34, 1, 60 },
11794 + { 0x1, 0x1, 221, 2515, -1, 34, 1, 55 },
11795 + { 0x400001, 0x400001, 221, 2516, -1, 12, 1, 60 },
11796 + { 0x1, 0x1, 221, 2517, -1, 34, 1, 55 },
11797 + { 0x1400001, 0x1400001, 221, 2518, -1, 12, 1, 60 },
11798 + { 0x5, 0x5, 221, 2519, -1, 34, 1, 55 },
11799 + { 0x600001, 0x600001, 221, 2520, -1, 12, 1, 60 },
11800 + { 0x3, 0x3, 221, 2521, -1, 33, 1, 55 },
11801 + { 0x1600001, 0x1600001, 221, 2522, -1, 12, 1, 50 },
11802 + { 0xb, 0xb, 221, 2523, -1, 33, 1, 50 },
11803 + { 0x1, 0x1, 221, 2524, -1, 34, 1, 60 },
11804 + { 0x1, 0x1, 221, 2525, -1, 34, 1, 55 },
11805 + { 0x1, 0x1, 221, 2526, -1, 34, 1, 60 },
11806 + { 0x1, 0x1, 221, 2527, -1, 34, 1, 55 },
11807 + { 0x1, 0x1, 221, 2528, -1, 34, 1, 60 },
11808 + { 0x1, 0x1, 221, 2529, -1, 34, 1, 55 },
11809 + { 0x1, 0x1, 221, 2530, -1, 34, 1, 50 },
11810 + { 0x1, 0x1, 221, 2531, -1, 34, 1, 50 },
11811 + { 0x400001, 0x400001, 221, 2532, -1, 12, 1, 60 },
11812 + { 0x1, 0x1, 221, 2533, -1, 34, 1, 55 },
11813 + { 0x600001, 0x1600001, 221, 2534, -1, 12, 1, 60 },
11814 + { 0x3, 0xb, 221, 2535, -1, 33, 1, 55 },
11815 + { 0x1, 0x1, 221, 2536, -1, 34, 1, 60 },
11816 + { 0x1, 0x1, 221, 2537, -1, 34, 1, 55 },
11817 + { 0x1, 0x1, 221, 2538, -1, 34, 1, 60 },
11818 + { 0x1, 0x1, 221, 2539, -1, 34, 1, 55 },
11819 + { 0x41, 0x41, 221, 2540, -1, 28, 1, 30 },
11820 + { 0x1, 0x1, 221, 2541, -1, 34, 1, 30 },
11821 + { 0x83, 0x83, 221, 2542, -1, 27, 1, 30 },
11822 + { 0x81, 0x81, 221, 2543, -1, 27, 1, 30 },
11823 + { 0x1, 0x1, 221, 2544, -1, 34, 1, 65 },
11824 + { 0x1, 0x1, 221, 2545, -1, 34, 1, 30 },
11825 + { 0x1, 0x1, 221, 2546, -1, 34, 1, 30 },
11826 + { 0x5, 0x5, 221, 2547, -1, 34, 1, 65 },
11827 + { 0x9, 0x9, 221, 2548, -1, 34, 1, 30 },
11828 + { 0x1, 0x1, 221, 2549, -1, 34, 1, 30 },
11829 + { 0x1, 0x1, 221, 2550, -1, 34, 1, 30 },
11830 + { 0x1, 0x1, 221, 2551, -1, 34, 1, 30 },
11831 + { 0x1, 0x1, 221, 2552, -1, 34, 1, 65 },
11832 + { 0x1, 0x1, 221, 2553, -1, 34, 1, 30 },
11833 + { 0x1, 0x1, 221, 2554, -1, 34, 1, 30 },
11834 + { 0x5, 0x5, 221, 2555, -1, 34, 1, 65 },
11835 + { 0x9, 0x9, 221, 2556, -1, 34, 1, 30 },
11836 + { 0x1, 0x1, 221, 2557, -1, 34, 1, 30 },
11837 + { 0x5, 0x5, 221, 2558, -1, 34, 1, 65 },
11838 + { 0x9, 0x9, 221, 2559, -1, 34, 1, 30 },
11839 + { 0x1, 0x1, 221, 2560, -1, 34, 1, 30 },
11840 + { 0x1, 0x1, 221, 2561, -1, 34, 1, 65 },
11841 + { 0x1, 0x1, 221, 2562, -1, 34, 1, 30 },
11842 + { 0x1, 0x1, 221, 2563, -1, 34, 1, 30 },
11843 + { 0x1, 0x1, 221, 2564, -1, 34, 1, 65 },
11844 + { 0x1, 0x1, 221, 2565, -1, 34, 1, 30 },
11845 + { 0x1, 0x1, 221, 2566, -1, 34, 1, 30 },
11846 + { 0x1, 0x1, 221, 2567, -1, 34, 1, 30 },
11847 + { 0x1, 0x1, 221, 2568, -1, 34, 1, 30 },
11848 + { 0x1, 0x1, 221, 2569, -1, 34, 1, 50 },
11849 + { 0x81, 0x81, 221, 2570, -1, 27, 1, 50 },
11850 + { 0x41, 0x41, 221, 2571, -1, 28, 1, 50 },
11851 + { 0x83, 0x83, 221, 2572, -1, 27, 1, 50 },
11852 + { 0x21, 0x21, 221, 2573, -1, 29, 1, 50 },
11853 + { 0x85, 0x85, 221, 2574, -1, 27, 1, 50 },
11854 + { 0x43, 0x43, 221, 2575, -1, 28, 1, 50 },
11855 + { 0x87, 0x87, 221, 2576, -1, 27, 1, 50 },
11856 + { 0x1, 0x1, 221, 2577, -1, 34, 1, 50 },
11857 + { 0x1, 0x1, 221, 2578, -1, 34, 1, 50 },
11858 + { 0x1, 0x1, 221, 2579, -1, 34, 1, 50 },
11859 + { 0x1, 0x1, 221, 2580, -1, 34, 1, 50 },
11860 + { 0x41, 0x41, 221, 2581, -1, 28, 1, 30 },
11861 + { 0x1, 0x1, 221, 2582, -1, 34, 1, 30 },
11862 + { 0x83, 0x83, 221, 2583, -1, 27, 1, 30 },
11863 + { 0x81, 0x81, 221, 2584, -1, 27, 1, 30 },
11864 + { 0x1, 0x1, 221, 2585, -1, 34, 1, 30 },
11865 + { 0x1, 0x1, 221, 2586, -1, 34, 1, 30 },
11866 + { 0x1, 0x1, 221, 2587, -1, 34, 1, 30 },
11867 + { 0x1, 0x1, 221, 2588, -1, 34, 1, 30 },
11868 + { 0x1, 0x1, 221, 2589, -1, 34, 1, 30 },
11869 + { 0x1, 0x1, 221, 2590, -1, 34, 1, 30 },
11870 + { 0x1, 0x1, 221, 2591, -1, 34, 1, 30 },
11871 + { 0x1, 0x1, 221, 2592, -1, 34, 1, 25 },
11872 + { 0x1, 0x1, 221, 2593, -1, 34, 1, 25 },
11873 + { 0x1, 0x1, 221, 2594, -1, 34, 1, 25 },
11874 + { 0x1, 0x1, 221, 2595, -1, 34, 1, 25 },
11875 + { 0x1, 0x1, 221, 2596, -1, 34, 1, 36 },
11876 + { 0x1, 0x1, 221, 2597, -1, 34, 1, 65 },
11877 + { 0x1, 0x1, 221, 2598, -1, 34, 1, 30 },
11878 + { 0x1, 0x1, 221, 2599, -1, 34, 1, 30 },
11879 + { 0x1, 0x1, 222, 2600, -1, 35, 1, 65 },
11880 + { 0x1, 0x1, 222, 2601, -1, 35, 1, 31 },
11881 + { 0x1, 0x1, 222, 2602, -1, 35, 1, 31 },
11882 + { 0x1, 0x1, 222, 2603, -1, 35, 1, 31 },
11883 + { 0x1, 0x1, 222, 2604, -1, 35, 1, 31 },
11884 + { 0x1, 0x1, 222, 2605, -1, 35, 1, 46 },
11885 + { 0x1, 0x1, 222, 2606, -1, 35, 1, 42 },
11886 + { 0x800001, 0x800001, 222, 2607, -1, 12, 1, 61 },
11887 + { 0x1, 0x1, 222, 2608, -1, 35, 1, 56 },
11888 + { 0x1800001, 0x1800001, 222, 2609, -1, 12, 1, 61 },
11889 + { 0x3, 0x3, 222, 2610, -1, 35, 1, 56 },
11890 + { 0xa00001, 0xa00001, 222, 2611, -1, 12, 1, 61 },
11891 + { 0x5, 0x5, 222, 2612, -1, 33, 1, 56 },
11892 + { 0x1a00001, 0x1a00001, 222, 2613, -1, 12, 1, 51 },
11893 + { 0xd, 0xd, 222, 2614, -1, 33, 1, 51 },
11894 + { 0x1, 0x1, 222, 2615, -1, 35, 1, 61 },
11895 + { 0x1, 0x1, 222, 2616, -1, 35, 1, 56 },
11896 + { 0x1, 0x1, 222, 2617, -1, 35, 1, 61 },
11897 + { 0x1, 0x1, 222, 2618, -1, 35, 1, 56 },
11898 + { 0x1, 0x1, 222, 2619, -1, 35, 1, 61 },
11899 + { 0x1, 0x1, 222, 2620, -1, 35, 1, 56 },
11900 + { 0x1, 0x1, 222, 2621, -1, 35, 1, 51 },
11901 + { 0x1, 0x1, 222, 2622, -1, 35, 1, 51 },
11902 + { 0x800001, 0x800001, 222, 2623, -1, 12, 1, 61 },
11903 + { 0x1, 0x1, 222, 2624, -1, 35, 1, 56 },
11904 + { 0xa00001, 0x1a00001, 222, 2625, -1, 12, 1, 61 },
11905 + { 0x5, 0xd, 222, 2626, -1, 33, 1, 56 },
11906 + { 0x1, 0x1, 222, 2627, -1, 35, 1, 61 },
11907 + { 0x1, 0x1, 222, 2628, -1, 35, 1, 56 },
11908 + { 0x1, 0x1, 222, 2629, -1, 35, 1, 61 },
11909 + { 0x1, 0x1, 222, 2630, -1, 35, 1, 56 },
11910 + { 0x800001, 0x800001, 222, 2631, -1, 12, 1, 61 },
11911 + { 0x1, 0x1, 222, 2632, -1, 35, 1, 56 },
11912 + { 0x1800001, 0x1800001, 222, 2633, -1, 12, 1, 61 },
11913 + { 0x3, 0x3, 222, 2634, -1, 35, 1, 56 },
11914 + { 0xa00001, 0xa00001, 222, 2635, -1, 12, 1, 61 },
11915 + { 0x5, 0x5, 222, 2636, -1, 33, 1, 56 },
11916 + { 0x1a00001, 0x1a00001, 222, 2637, -1, 12, 1, 51 },
11917 + { 0xd, 0xd, 222, 2638, -1, 33, 1, 51 },
11918 + { 0x1, 0x1, 222, 2639, -1, 35, 1, 61 },
11919 + { 0x1, 0x1, 222, 2640, -1, 35, 1, 56 },
11920 + { 0x1, 0x1, 222, 2641, -1, 35, 1, 61 },
11921 + { 0x1, 0x1, 222, 2642, -1, 35, 1, 56 },
11922 + { 0x1, 0x1, 222, 2643, -1, 35, 1, 61 },
11923 + { 0x1, 0x1, 222, 2644, -1, 35, 1, 56 },
11924 + { 0x1, 0x1, 222, 2645, -1, 35, 1, 51 },
11925 + { 0x1, 0x1, 222, 2646, -1, 35, 1, 51 },
11926 + { 0x800001, 0x800001, 222, 2647, -1, 12, 1, 61 },
11927 + { 0x1, 0x1, 222, 2648, -1, 35, 1, 56 },
11928 + { 0xa00001, 0x1a00001, 222, 2649, -1, 12, 1, 61 },
11929 + { 0x5, 0xd, 222, 2650, -1, 33, 1, 56 },
11930 + { 0x1, 0x1, 222, 2651, -1, 35, 1, 61 },
11931 + { 0x1, 0x1, 222, 2652, -1, 35, 1, 56 },
11932 + { 0x1, 0x1, 222, 2653, -1, 35, 1, 61 },
11933 + { 0x1, 0x1, 222, 2654, -1, 35, 1, 56 },
11934 + { 0x81, 0x81, 222, 2655, -1, 28, 1, 31 },
11935 + { 0x1, 0x1, 222, 2656, -1, 35, 1, 31 },
11936 + { 0x103, 0x103, 222, 2657, -1, 27, 1, 31 },
11937 + { 0x101, 0x101, 222, 2658, -1, 27, 1, 31 },
11938 + { 0x1, 0x1, 222, 2659, -1, 35, 1, 65 },
11939 + { 0x1, 0x1, 222, 2660, -1, 35, 1, 31 },
11940 + { 0x1, 0x1, 222, 2661, -1, 35, 1, 31 },
11941 + { 0x3, 0x3, 222, 2662, -1, 35, 1, 65 },
11942 + { 0x5, 0x5, 222, 2663, -1, 35, 1, 31 },
11943 + { 0x1, 0x1, 222, 2664, -1, 35, 1, 31 },
11944 + { 0x1, 0x1, 222, 2665, -1, 35, 1, 31 },
11945 + { 0x1, 0x1, 222, 2666, -1, 35, 1, 31 },
11946 + { 0x1, 0x1, 222, 2667, -1, 35, 1, 65 },
11947 + { 0x1, 0x1, 222, 2668, -1, 35, 1, 31 },
11948 + { 0x1, 0x1, 222, 2669, -1, 35, 1, 31 },
11949 + { 0x3, 0x3, 222, 2670, -1, 35, 1, 65 },
11950 + { 0x5, 0x5, 222, 2671, -1, 35, 1, 31 },
11951 + { 0x1, 0x1, 222, 2672, -1, 35, 1, 31 },
11952 + { 0x3, 0x3, 222, 2673, -1, 35, 1, 65 },
11953 + { 0x5, 0x5, 222, 2674, -1, 35, 1, 31 },
11954 + { 0x1, 0x1, 222, 2675, -1, 35, 1, 31 },
11955 + { 0x1, 0x1, 222, 2676, -1, 35, 1, 65 },
11956 + { 0x1, 0x1, 222, 2677, -1, 35, 1, 31 },
11957 + { 0x1, 0x1, 222, 2678, -1, 35, 1, 31 },
11958 + { 0x1, 0x1, 222, 2679, -1, 35, 1, 65 },
11959 + { 0x1, 0x1, 222, 2680, -1, 35, 1, 31 },
11960 + { 0x1, 0x1, 222, 2681, -1, 35, 1, 31 },
11961 + { 0x1, 0x1, 222, 2682, -1, 35, 1, 31 },
11962 + { 0x1, 0x1, 222, 2683, -1, 35, 1, 31 },
11963 + { 0x1, 0x1, 222, 2684, -1, 35, 1, 51 },
11964 + { 0x101, 0x101, 222, 2685, -1, 27, 1, 51 },
11965 + { 0x81, 0x81, 222, 2686, -1, 28, 1, 51 },
11966 + { 0x103, 0x103, 222, 2687, -1, 27, 1, 51 },
11967 + { 0x41, 0x41, 222, 2688, -1, 29, 1, 51 },
11968 + { 0x105, 0x105, 222, 2689, -1, 27, 1, 51 },
11969 + { 0x83, 0x83, 222, 2690, -1, 28, 1, 51 },
11970 + { 0x107, 0x107, 222, 2691, -1, 27, 1, 51 },
11971 + { 0x1, 0x1, 222, 2692, -1, 35, 1, 51 },
11972 + { 0x1, 0x1, 222, 2693, -1, 35, 1, 51 },
11973 + { 0x1, 0x1, 222, 2694, -1, 35, 1, 51 },
11974 + { 0x1, 0x1, 222, 2695, -1, 35, 1, 51 },
11975 + { 0x81, 0x81, 222, 2696, -1, 28, 1, 31 },
11976 + { 0x1, 0x1, 222, 2697, -1, 35, 1, 31 },
11977 + { 0x103, 0x103, 222, 2698, -1, 27, 1, 31 },
11978 + { 0x101, 0x101, 222, 2699, -1, 27, 1, 31 },
11979 + { 0x1, 0x1, 222, 2700, -1, 35, 1, 31 },
11980 + { 0x1, 0x1, 222, 2701, -1, 35, 1, 31 },
11981 + { 0x1, 0x1, 222, 2702, -1, 35, 1, 31 },
11982 + { 0x1, 0x1, 222, 2703, -1, 35, 1, 31 },
11983 + { 0x1, 0x1, 222, 2704, -1, 35, 1, 31 },
11984 + { 0x1, 0x1, 222, 2705, -1, 35, 1, 31 },
11985 + { 0x1, 0x1, 222, 2706, -1, 35, 1, 31 },
11986 + { 0x1, 0x1, 222, 2707, -1, 35, 1, 26 },
11987 + { 0x1, 0x1, 222, 2708, -1, 35, 1, 26 },
11988 + { 0x1, 0x1, 222, 2709, -1, 35, 1, 26 },
11989 + { 0x1, 0x1, 222, 2710, -1, 35, 1, 26 },
11990 + { 0x1, 0x1, 222, 2711, -1, 35, 1, 37 },
11991 + { 0x1, 0x1, 222, 2712, -1, 35, 1, 65 },
11992 + { 0x1, 0x1, 222, 2713, -1, 35, 1, 31 },
11993 + { 0x1, 0x1, 222, 2714, -1, 35, 1, 31 },
11994 + { 0x3, 0x3, 223, -1, -1, 34, 1, 65 },
11995 + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
11996 + { 0x3, 0x3, 223, 2209, -1, 34, 1, 32 },
11997 + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
11998 + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
11999 + { 0x3, 0x3, 223, -1, -1, 34, 1, 47 },
12000 + { 0x3, 0x3, 223, -1, -1, 34, 1, 43 },
12001 + { 0xc00001, 0xc00001, 223, -1, -1, 12, 1, 62 },
12002 + { 0x3, 0x3, 223, 2930, -1, 34, 1, 57 },
12003 + { 0x1c00001, 0x1c00001, 223, -1, -1, 12, 1, 62 },
12004 + { 0x7, 0x7, 223, 2931, -1, 34, 1, 57 },
12005 + { 0xe00001, 0xe00001, 223, -1, -1, 12, 1, 62 },
12006 + { 0x7, 0x7, 223, 2932, -1, 33, 1, 57 },
12007 + { 0x1e00001, 0x1e00001, 223, -1, -1, 12, 1, 52 },
12008 + { 0xf, 0xf, 223, 2933, -1, 33, 1, 52 },
12009 + { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12010 + { 0x3, 0x3, 223, 2934, -1, 34, 1, 57 },
12011 + { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12012 + { 0x3, 0x3, 223, 2935, -1, 34, 1, 57 },
12013 + { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12014 + { 0x3, 0x3, 223, 2936, -1, 34, 1, 57 },
12015 + { 0x3, 0x3, 223, -1, -1, 34, 1, 52 },
12016 + { 0x3, 0x3, 223, 2937, -1, 34, 1, 52 },
12017 + { 0xc00001, 0xc00001, 223, -1, -1, 12, 1, 62 },
12018 + { 0x3, 0x3, 223, 2942, -1, 34, 1, 57 },
12019 + { 0xe00001, 0x1e00001, 223, -1, -1, 12, 1, 62 },
12020 + { 0x7, 0xf, 223, 2943, -1, 33, 1, 57 },
12021 + { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12022 + { 0x3, 0x3, 223, 2944, -1, 34, 1, 57 },
12023 + { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12024 + { 0x3, 0x3, 223, 2945, -1, 34, 1, 57 },
12025 + { 0xc00001, 0xc00001, 223, -1, -1, 12, 1, 62 },
12026 + { 0x3, 0x3, 223, 2948, -1, 34, 1, 57 },
12027 + { 0x1c00001, 0x1c00001, 223, -1, -1, 12, 1, 62 },
12028 + { 0x7, 0x7, 223, 2949, -1, 34, 1, 57 },
12029 + { 0xe00001, 0xe00001, 223, -1, -1, 12, 1, 62 },
12030 + { 0x7, 0x7, 223, 2950, -1, 33, 1, 57 },
12031 + { 0x1e00001, 0x1e00001, 223, -1, -1, 12, 1, 52 },
12032 + { 0xf, 0xf, 223, 2951, -1, 33, 1, 52 },
12033 + { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12034 + { 0x3, 0x3, 223, 2952, -1, 34, 1, 57 },
12035 + { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12036 + { 0x3, 0x3, 223, 2953, -1, 34, 1, 57 },
12037 + { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12038 + { 0x3, 0x3, 223, 2954, -1, 34, 1, 57 },
12039 + { 0x3, 0x3, 223, -1, -1, 34, 1, 52 },
12040 + { 0x3, 0x3, 223, 2955, -1, 34, 1, 52 },
12041 + { 0xc00001, 0xc00001, 223, -1, -1, 12, 1, 62 },
12042 + { 0x3, 0x3, 223, 2960, -1, 34, 1, 57 },
12043 + { 0xe00001, 0x1e00001, 223, -1, -1, 12, 1, 62 },
12044 + { 0x7, 0xf, 223, 2961, -1, 33, 1, 57 },
12045 + { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12046 + { 0x3, 0x3, 223, 2962, -1, 34, 1, 57 },
12047 + { 0x3, 0x3, 223, -1, -1, 34, 1, 62 },
12048 + { 0x3, 0x3, 223, 2963, -1, 34, 1, 57 },
12049 + { 0xc1, 0xc1, 223, -1, -1, 28, 1, 32 },
12050 + { 0x3, 0x3, 223, 2828, -1, 34, 1, 32 },
12051 + { 0x183, 0x183, 223, -1, -1, 27, 1, 32 },
12052 + { 0x181, 0x181, 223, 2829, -1, 27, 1, 32 },
12053 + { 0x3, 0x3, 223, -1, -1, 34, 1, 65 },
12054 + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12055 + { 0x3, 0x3, 223, 2210, -1, 34, 1, 32 },
12056 + { 0x7, 0x7, 223, -1, -1, 34, 1, 65 },
12057 + { 0xb, 0xb, 223, -1, -1, 34, 1, 32 },
12058 + { 0x3, 0x3, 223, 2211, -1, 34, 1, 32 },
12059 + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12060 + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12061 + { 0x3, 0x3, 223, -1, -1, 34, 1, 65 },
12062 + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12063 + { 0x3, 0x3, 223, 2214, -1, 34, 1, 32 },
12064 + { 0x7, 0x7, 223, -1, -1, 34, 1, 65 },
12065 + { 0xb, 0xb, 223, -1, -1, 34, 1, 32 },
12066 + { 0x3, 0x3, 223, 2215, -1, 34, 1, 32 },
12067 + { 0x7, 0x7, 223, -1, -1, 34, 1, 65 },
12068 + { 0xb, 0xb, 223, -1, -1, 34, 1, 32 },
12069 + { 0x3, 0x3, 223, 2217, -1, 34, 1, 32 },
12070 + { 0x3, 0x3, 223, -1, -1, 34, 1, 65 },
12071 + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12072 + { 0x3, 0x3, 223, 2219, -1, 34, 1, 32 },
12073 + { 0x3, 0x3, 223, -1, -1, 34, 1, 65 },
12074 + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12075 + { 0x3, 0x3, 223, 2220, -1, 34, 1, 32 },
12076 + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12077 + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12078 + { 0x3, 0x3, 223, -1, -1, 34, 1, 52 },
12079 + { 0x181, 0x181, 223, -1, -1, 27, 1, 52 },
12080 + { 0xc1, 0xc1, 223, -1, -1, 28, 1, 52 },
12081 + { 0x183, 0x183, 223, -1, -1, 27, 1, 52 },
12082 + { 0x61, 0x61, 223, -1, -1, 29, 1, 52 },
12083 + { 0x185, 0x185, 223, -1, -1, 27, 1, 52 },
12084 + { 0xc3, 0xc3, 223, -1, -1, 28, 1, 52 },
12085 + { 0x187, 0x187, 223, -1, -1, 27, 1, 52 },
12086 + { 0x3, 0x3, 223, -1, -1, 34, 1, 52 },
12087 + { 0x3, 0x3, 223, -1, -1, 34, 1, 52 },
12088 + { 0x3, 0x3, 223, -1, -1, 34, 1, 52 },
12089 + { 0x3, 0x3, 223, -1, -1, 34, 1, 52 },
12090 + { 0xc1, 0xc1, 223, -1, -1, 28, 1, 32 },
12091 + { 0x3, 0x3, 223, 2832, -1, 34, 1, 32 },
12092 + { 0x183, 0x183, 223, -1, -1, 27, 1, 32 },
12093 + { 0x181, 0x181, 223, 2833, -1, 27, 1, 32 },
12094 + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12095 + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12096 + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12097 + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12098 + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12099 + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12100 + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12101 + { 0x3, 0x3, 223, -1, -1, 34, 1, 27 },
12102 + { 0x3, 0x3, 223, -1, -1, 34, 1, 27 },
12103 + { 0x3, 0x3, 223, -1, -1, 34, 1, 27 },
12104 + { 0x3, 0x3, 223, -1, -1, 34, 1, 27 },
12105 + { 0x3, 0x3, 223, -1, -1, 34, 1, 38 },
12106 + { 0x3, 0x3, 223, -1, -1, 34, 1, 65 },
12107 + { 0x3, 0x3, 223, -1, -1, 34, 1, 32 },
12108 + { 0x3, 0x3, 223, 2222, -1, 34, 1, 32 },
12109 + { 0x3, 0x3, 224, 522, 1433, 32, 1, 128 },
12110 + { 0x3, 0x3, 224, 523, 1442, 32, 1, 128 },
12111 + { 0x3, 0x3, 224, 524, 1451, 32, 1, 128 },
12112 + { 0x3, 0x3, 224, 525, 1464, 32, 1, 128 },
12113 + { 0x3, 0x3, 224, 526, 1473, 32, 1, 128 },
12114 + { 0x3, 0x3, 224, 527, 1482, 32, 1, 128 },
12115 + { 0x3, 0x3, 224, 528, 1491, 32, 1, 128 },
12116 + { 0x3, 0x3, 224, 529, 1500, 32, 1, 128 },
12117 + { 0x3, 0x3, 224, 530, 1509, 32, 1, 128 },
12118 + { 0x3, 0x3, 224, 531, 1518, 32, 1, 128 },
12119 + { 0x3, 0x3, 224, 532, 1528, 32, 1, 128 },
12120 + { 0x3, 0x3, 224, 533, 1538, 32, 1, 128 },
12121 + { 0x3, 0x3, 224, 546, 1551, 32, 1, 143 },
12122 + { 0x3, 0x3, 224, 547, 1557, 32, 1, 148 },
12123 + { 0x3, 0x3, 224, 548, 1563, 32, 1, 148 },
12124 + { 0x3, 0x3, 224, 549, 1569, 32, 1, 143 },
12125 + { 0x3, 0x3, 224, 550, 1575, 32, 1, 148 },
12126 + { 0x3, 0x3, 224, 551, 1581, 32, 1, 148 },
12127 + { 0x3, 0x3, 224, 552, 1587, 32, 1, 143 },
12128 + { 0x3, 0x3, 224, 553, 1593, 32, 1, 148 },
12129 + { 0x3, 0x3, 224, 554, 1599, 32, 1, 148 },
12130 + { 0x3, 0x3, 224, 555, 1605, 32, 1, 143 },
12131 + { 0x3, 0x3, 224, 556, 1611, 32, 1, 148 },
12132 + { 0x3, 0x3, 224, 557, 1617, 32, 1, 143 },
12133 + { 0x3, 0x3, 224, 558, 1623, 32, 1, 148 },
12134 + { 0x3, 0x3, 224, 559, 1629, 32, 1, 143 },
12135 + { 0x3, 0x3, 224, 560, 1635, 32, 1, 148 },
12136 + { 0x3, 0x3, 224, 561, 1641, 32, 1, 143 },
12137 + { 0x3, 0x3, 224, 562, 1647, 32, 1, 148 },
12138 + { 0x3, 0x3, 224, 563, 1653, 32, 1, 148 },
12139 + { 0x1, 0x1, 225, -1, -1, 28, 1, 33 },
12140 + { 0x1, 0x1, 225, -1, -1, 28, 1, 33 },
12141 + { 0x0, 0x0, 232, 940, -1, 0, 1, 137 },
12142 + { 0x0, 0x0, 232, 941, -1, 0, 1, 155 },
12143 + { 0x1, 0x1, 233, -1, 1964, 33, 1, 133 },
12144 + { 0x1, 0x1, 233, -1, 1967, 33, 1, 139 },
12145 + { 0x0, 0x0, 233, -1, 1969, 0, 1, 150 },
12146 + { 0x0, 0x0, 233, -1, 1970, 0, 1, 156 },
12147 + { 0x0, 0x0, 234, 865, 953, 0, 0, -1 },
12148 + { 0x0, 0x0, 234, 866, 961, 0, 0, -1 },
12149 + { 0x0, 0x0, 234, 867, 957, 0, 0, -1 },
12150 + { 0x1, 0x1, 234, 868, 602, 33, 1, 6 },
12151 + { 0x8000001, 0x8000001, 234, 869, 610, 6, 1, 7 },
12152 + { 0x1, 0x1, 234, 870, 606, 33, 1, 6 },
12153 + { 0x0, 0x0, 234, 871, 965, 0, 0, -1 },
12154 + { 0x1, 0x1, 234, 872, 622, 33, 1, 8 },
12155 + { 0x0, 0x0, 234, 873, 969, 0, 0, -1 },
12156 + { 0x1, 0x1, 234, 874, 634, 33, 1, 15 },
12157 + { 0x0, 0x0, 234, 875, 974, 0, 0, -1 },
12158 + { 0x0, 0x0, 234, 876, 978, 0, 0, -1 },
12159 + { 0x1, 0x1, 234, 877, 657, 33, 1, 17 },
12160 + { 0x1, 0x1, 234, 878, 661, 33, 1, 17 },
12161 + { 0x0, 0x0, 234, 879, 982, 0, 0, -1 },
12162 + { 0x0, 0x0, 234, 880, 986, 0, 0, -1 },
12163 + { 0x1, 0x1, 234, 881, 681, 33, 1, 18 },
12164 + { 0x8000001, 0x8000001, 234, 882, 685, 6, 1, 18 },
12165 + { 0x0, 0x0, 234, 883, 990, 0, 0, -1 },
12166 + { 0x1, 0x1, 234, 884, 697, 33, 1, 19 },
12167 + { 0x0, 0x0, 234, 885, 994, 0, 0, -1 },
12168 + { 0x0, 0x0, 234, 886, 998, 0, 0, -1 },
12169 + { 0x1, 0x1, 234, 887, 717, 33, 1, 20 },
12170 + { 0x8000001, 0x8000001, 234, 888, 721, 6, 1, 20 },
12171 + { 0x0, 0x0, 234, 889, 1002, 0, 0, -1 },
12172 + { 0x1, 0x1, 234, 890, 733, 33, 1, 21 },
12173 + { 0x0, 0x0, 234, 891, 1007, 0, 0, -1 },
12174 + { 0x0, 0x0, 234, 892, 1011, 0, 0, -1 },
12175 + { 0x1, 0x1, 234, 893, 756, 33, 1, 17 },
12176 + { 0x1, 0x1, 234, 894, 760, 33, 1, 17 },
12177 + { 0x0, 0x0, 234, 895, 1015, 0, 0, -1 },
12178 + { 0x1, 0x1, 234, 896, 772, 33, 1, 21 },
12179 + { 0x0, 0x0, 235, 2753, 952, 0, 0, -1 },
12180 + { 0x0, 0x0, 235, 2754, 960, 0, 0, -1 },
12181 + { 0x0, 0x0, 235, 2755, 956, 0, 0, -1 },
12182 + { 0x0, 0x0, 235, 2756, 601, 0, 1, 6 },
12183 + { 0x1, 0x1, 235, 2757, 609, 6, 1, 7 },
12184 + { 0x0, 0x0, 235, 2758, 605, 0, 1, 6 },
12185 + { 0x0, 0x0, 235, 2759, 964, 0, 0, -1 },
12186 + { 0x0, 0x0, 235, 2760, 621, 0, 1, 8 },
12187 + { 0x0, 0x0, 235, 2761, 968, 0, 0, -1 },
12188 + { 0x0, 0x0, 235, 2762, 633, 0, 1, 15 },
12189 + { 0x0, 0x0, 235, 2763, 973, 0, 0, -1 },
12190 + { 0x0, 0x0, 235, 2764, 977, 0, 0, -1 },
12191 + { 0x0, 0x0, 235, 2765, 656, 0, 1, 17 },
12192 + { 0x0, 0x0, 235, 2766, 660, 0, 1, 17 },
12193 + { 0x0, 0x0, 235, 2767, 981, 0, 0, -1 },
12194 + { 0x0, 0x0, 235, 2768, 985, 0, 0, -1 },
12195 + { 0x0, 0x0, 235, 2769, 680, 0, 1, 18 },
12196 + { 0x1, 0x1, 235, 2770, 684, 6, 1, 18 },
12197 + { 0x0, 0x0, 235, 2771, 989, 0, 0, -1 },
12198 + { 0x0, 0x0, 235, 2772, 696, 0, 1, 19 },
12199 + { 0x0, 0x0, 235, 2773, 993, 0, 0, -1 },
12200 + { 0x0, 0x0, 235, 2774, 997, 0, 0, -1 },
12201 + { 0x0, 0x0, 235, 2775, 716, 0, 1, 20 },
12202 + { 0x1, 0x1, 235, 2776, 720, 6, 1, 20 },
12203 + { 0x0, 0x0, 235, 2777, 1001, 0, 0, -1 },
12204 + { 0x0, 0x0, 235, 2778, 732, 0, 1, 21 },
12205 + { 0x0, 0x0, 235, 2779, 1006, 0, 0, -1 },
12206 + { 0x0, 0x0, 235, 2780, 1010, 0, 0, -1 },
12207 + { 0x0, 0x0, 235, 2781, 755, 0, 1, 17 },
12208 + { 0x0, 0x0, 235, 2782, 759, 0, 1, 17 },
12209 + { 0x0, 0x0, 235, 2783, 1014, 0, 0, -1 },
12210 + { 0x0, 0x0, 235, 2784, 771, 0, 1, 21 },
12211 + { 0x1, 0x1, 235, 897, 1137, 27, 1, 16 },
12212 + { 0x0, 0x0, 235, 898, 1135, 0, 1, 16 },
12213 + { 0x0, 0x0, 235, 1202, 1139, 0, 1, 22 },
12214 + { 0x0, 0x1, 235, 1147, 1145, 20, 1, 67 },
12215 + { 0x0, 0x0, 235, 111, 1143, 0, 1, 67 },
12216 + { 0x1, 0x1, 238, -1, -1, 29, 1, 0 },
12217 + { 0x0, 0x0, 238, -1, -1, 0, 1, 0 },
12218 + { 0x1, 0x1, 238, 2984, -1, 27, 1, 0 },
12219 + { 0x1, 0x1, 238, 2985, -1, 27, 1, 0 },
12220 + { 0x1, 0x1, 238, 2986, -1, 27, 1, 0 },
12221 + { 0x1, 0x1, 238, 2987, -1, 27, 1, 0 },
12222 + { 0x0, 0x0, 260, -1, 2310, 0, 0, -1 },
12223 + { 0x0, 0x0, 260, -1, 2312, 0, 0, -1 },
12224 + { 0x1, 0x1, 260, -1, -1, 28, 1, 29 },
12225 + { 0x1, 0x1, 260, -1, -1, 28, 1, 29 },
12226 + { 0x0, 0x0, 260, -1, 2351, 0, 0, -1 },
12227 + { 0x0, 0x0, 260, -1, 2353, 0, 0, -1 },
12228 + { 0x1, 0x1, 260, -1, -1, 28, 1, 29 },
12229 + { 0x1, 0x1, 260, -1, -1, 28, 1, 29 },
12230 + { 0x0, 0x0, 262, 23, -1, 0, 1, 0 },
12231 + { 0x0, 0x0, 262, -1, -1, 0, 1, 0 },
12232 + { 0x0, 0x0, 262, -1, -1, 0, 1, 0 },
12233 + { 0x0, 0x1, 262, -1, -1, 29, 1, 0 },
12234 + { 0x0, 0x1, 262, -1, -1, 29, 1, 0 },
12235 + { 0x0, 0x1, 262, -1, -1, 29, 1, 0 },
12236 + { 0x0, 0x1, 262, -1, -1, 29, 1, 0 },
12237 + { 0x0, 0x1, 262, -1, -1, 29, 1, 0 },
12238 + { 0x0, 0x0, 262, 180, -1, 0, 1, 0 },
12239 + { 0x0, 0x1, 262, -1, -1, 29, 1, 0 },
12240 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12241 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12242 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12243 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12244 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12245 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12246 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12247 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12248 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12249 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12250 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12251 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12252 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12253 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12254 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12255 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12256 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12257 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12258 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12259 + { 0x1, 0x1, 263, 299, -1, 12, 1, 2 },
12260 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12261 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12262 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12263 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12264 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12265 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12266 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12267 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12268 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12269 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12270 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12271 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12272 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12273 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12274 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12275 + { 0x1, 0x1, 263, 321, -1, 12, 1, 2 },
12276 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12277 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12278 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12279 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12280 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12281 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12282 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12283 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12284 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12285 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12286 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12287 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12288 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12289 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12290 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12291 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12292 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12293 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12294 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12295 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12296 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12297 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12298 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12299 + { 0x1, 0x1, 263, 347, -1, 12, 1, 2 },
12300 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12301 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12302 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12303 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12304 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12305 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12306 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12307 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12308 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12309 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12310 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12311 + { 0x1, 0x1, 263, 369, -1, 12, 1, 2 },
12312 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12313 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12314 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12315 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12316 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12317 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12318 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12319 + { 0x1, 0x1, 263, -1, -1, 12, 1, 2 },
12320 + { 0x1, 0x1, 263, -1, -1, 12, 1, 64 },
12321 + { 0x1, 0x1, 263, -1, -1, 12, 1, 64 },
12322 + { 0x1, 0x1, 263, -1, -1, 12, 1, 64 },
12323 + { 0x1, 0x1, 263, -1, -1, 12, 1, 64 },
12324 + { 0x0, 0x0, 263, -1, 2262, 0, 0, -1 },
12325 + { 0x0, 0x0, 263, -1, 2264, 0, 0, -1 },
12326 + { 0x0, 0x0, 263, -1, 2266, 0, 0, -1 },
12327 + { 0x0, 0x0, 263, -1, 2268, 0, 0, -1 },
12328 + { 0x1, 0x1, 263, -1, 2270, 12, 1, 59 },
12329 + { 0x1, 0x1, 263, -1, 2272, 12, 1, 59 },
12330 + { 0x1, 0x1, 263, -1, 2274, 12, 1, 59 },
12331 + { 0x1, 0x1, 263, -1, 2276, 12, 1, 49 },
12332 + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12333 + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12334 + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12335 + { 0x1, 0x1, 263, -1, -1, 12, 1, 49 },
12336 + { 0x0, 0x0, 263, -1, 2278, 0, 0, -1 },
12337 + { 0x0, 0x0, 263, -1, 2280, 0, 0, -1 },
12338 + { 0x1, 0x1, 263, -1, 2282, 12, 1, 59 },
12339 + { 0x1, 0x1, 263, -1, 2284, 12, 1, 59 },
12340 + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12341 + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12342 + { 0x0, 0x0, 263, -1, 2286, 0, 0, -1 },
12343 + { 0x0, 0x0, 263, -1, 2288, 0, 0, -1 },
12344 + { 0x0, 0x0, 263, -1, 2290, 0, 0, -1 },
12345 + { 0x0, 0x0, 263, -1, 2292, 0, 0, -1 },
12346 + { 0x1, 0x1, 263, -1, 2294, 12, 1, 59 },
12347 + { 0x1, 0x1, 263, -1, 2296, 12, 1, 59 },
12348 + { 0x1, 0x1, 263, -1, 2298, 12, 1, 59 },
12349 + { 0x1, 0x1, 263, -1, 2300, 12, 1, 49 },
12350 + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12351 + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12352 + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12353 + { 0x1, 0x1, 263, -1, -1, 12, 1, 49 },
12354 + { 0x0, 0x0, 263, -1, 2302, 0, 0, -1 },
12355 + { 0x0, 0x0, 263, -1, 2304, 0, 0, -1 },
12356 + { 0x1, 0x1, 263, -1, 2306, 12, 1, 59 },
12357 + { 0x1, 0x1, 263, -1, 2308, 12, 1, 59 },
12358 + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12359 + { 0x1, 0x1, 263, -1, -1, 12, 1, 59 },
12360 + { 0x1, 0x1, 263, 391, -1, 12, 1, 2 },
12361 + { 0x1, 0x1, 263, 393, -1, 12, 1, 2 },
12362 + { 0x1, 0x1, 263, 507, -1, 12, 1, 2 },
12363 + { 0x1, 0x1, 263, 509, -1, 12, 1, 2 },
12364 + { 0x1, 0x1, 263, 399, -1, 12, 1, 2 },
12365 + { 0x1, 0x1, 263, 401, -1, 12, 1, 2 },
12366 + { 0x1, 0x1, 263, 515, -1, 12, 1, 2 },
12367 + { 0x1, 0x1, 263, 517, -1, 12, 1, 2 },
12368 + { 0x0, 0x0, 264, -1, 2269, 0, 0, -1 },
12369 + { 0x9, 0x9, 264, -1, 2277, 33, 1, 49 },
12370 + { 0x9, 0x9, 264, -1, 2941, 33, 1, 49 },
12371 + { 0x0, 0x0, 264, 1381, 2342, 0, 0, -1 },
12372 + { 0x3, 0x3, 264, 1382, -1, 27, 1, 49 },
12373 + { 0x0, 0x0, 268, 2822, -1, 0, 1, 0 },
12374 + { 0x3, 0x3, 269, -1, -1, 27, 1, 0 },
12375 + { 0x3, 0x3, 269, -1, -1, 27, 1, 0 },
12376 + { 0x3, 0x3, 269, -1, -1, 27, 1, 0 },
12377 + { 0x3, 0x3, 269, -1, -1, 27, 1, 0 },
12378 + { 0x1, 0x1, 270, 2980, -1, 28, 1, 0 },
12379 + { 0x1, 0x1, 270, 2981, -1, 28, 1, 0 },
12380 + { 0x1, 0x1, 270, 2982, -1, 28, 1, 0 },
12381 + { 0x1, 0x1, 270, 2983, -1, 28, 1, 0 },
12382 + { 0x1, 0x1, 271, -1, -1, 27, 1, 93 },
12383 + { 0x1, 0x1, 271, -1, -1, 27, 1, 93 },
12384 + { 0x0, 0x0, 271, -1, 950, 0, 0, -1 },
12385 + { 0x0, 0x0, 272, 2993, 2799, 0, 0, -1 },
12386 + { 0x0, 0x0, 272, 2994, 2801, 0, 0, -1 },
12387 + { 0x0, 0x0, 273, -1, 2800, 0, 0, -1 },
12388 + { 0x0, 0x0, 273, -1, 2802, 0, 0, -1 },
12389 + { 0x0, 0x0, 274, -1, -1, 0, 1, 40 },
12390 + { 0x0, 0x0, 274, -1, -1, 0, 1, 40 },
12391 + { 0x0, 0x0, 274, -1, -1, 0, 1, 40 },
12392 + { 0x0, 0x0, 279, -1, -1, 0, 1, 33 },
12393 + { 0x0, 0x0, 283, -1, 2316, 0, 1, 29 },
12394 + { 0x0, 0x0, 284, -1, -1, 0, 1, 0 },
12395 + { 0x0, 0x0, 284, -1, -1, 0, 1, 71 },
12396 + { 0x0, 0x0, 284, 1983, 2966, 0, 1, 1 },
12397 + { 0x0, 0x0, 284, 1984, 2967, 0, 1, 1 },
12398 + { 0x0, 0x0, 284, -1, 508, 0, 0, -1 },
12399 + { 0x0, 0x0, 284, -1, 510, 0, 0, -1 },
12400 + { 0x0, 0x0, 284, 1987, 2970, 0, 1, 1 },
12401 + { 0x0, 0x0, 284, 1988, 2971, 0, 1, 1 },
12402 + { 0x0, 0x0, 284, -1, 516, 0, 0, -1 },
12403 + { 0x0, 0x0, 284, -1, 518, 0, 0, -1 },
12404 +};
12405 +
12406 +static const struct ia64_main_table
12407 +main_table[] = {
12408 + { 5, 1, 1, 0x0000010000000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 0, },
12409 + { 5, 1, 1, 0x0000010008000000ull, 0x000001eff8000000ull, { 24, 25, 26, 4, 0 }, 0x0, 1, },
12410 + { 5, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 24, 66, 27, 0, 0 }, 0x0, 2, },
12411 + { 5, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 24, 63, 26, 0, 0 }, 0x0, 3, },
12412 + { 6, 1, 1, 0x0000012000000000ull, 0x000001e000000000ull, { 24, 66, 27, 0, 0 }, 0x0, 4, },
12413 + { 7, 1, 1, 0x0000010040000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 5, },
12414 + { 7, 1, 1, 0x0000010c00000000ull, 0x000001ee00000000ull, { 24, 63, 26, 0, 0 }, 0x0, 6, },
12415 + { 8, 1, 1, 0x0000010800000000ull, 0x000001ee00000000ull, { 24, 63, 26, 0, 0 }, 0x0, 7, },
12416 + { 9, 3, 1, 0x0000002c00000000ull, 0x000001ee00000000ull, { 24, 3, 52, 53, 54 }, 0x221, 8, },
12417 + { 9, 3, 1, 0x0000002c00000000ull, 0x000001ee00000000ull, { 24, 52, 53, 54, 0 }, 0x261, 9, },
12418 + { 10, 1, 1, 0x0000010060000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 10, },
12419 + { 10, 1, 1, 0x0000010160000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 11, },
12420 + { 11, 1, 1, 0x0000010068000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 12, },
12421 + { 11, 1, 1, 0x0000010168000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 13, },
12422 + { 14, 4, 0, 0x0000000100000000ull, 0x000001eff80011ffull, { 16, 0, 0, 0, 0 }, 0x40, 951, },
12423 + { 14, 4, 0, 0x0000000100000000ull, 0x000001eff80011c0ull, { 16, 0, 0, 0, 0 }, 0x0, 807, },
12424 + { 14, 4, 0, 0x0000000100000000ull, 0x000001eff80011c0ull, { 16, 0, 0, 0, 0 }, 0x40, 808, },
12425 + { 14, 4, 0, 0x0000000108000100ull, 0x000001eff80011c0ull, { 16, 0, 0, 0, 0 }, 0x200, 2200, },
12426 + { 14, 4, 0, 0x0000000108000100ull, 0x000001eff80011c0ull, { 16, 0, 0, 0, 0 }, 0x240, 2201, },
12427 + { 14, 4, 1, 0x0000002100000000ull, 0x000001ef00001000ull, { 15, 16, 0, 0, 0 }, 0x0, 564, },
12428 + { 14, 4, 1, 0x0000002100000000ull, 0x000001ef00001000ull, { 15, 16, 0, 0, 0 }, 0x40, 565, },
12429 + { 14, 4, 0, 0x0000008000000000ull, 0x000001ee000011ffull, { 81, 0, 0, 0, 0 }, 0x40, 972, },
12430 + { 14, 4, 0, 0x0000008000000000ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x0, 809, },
12431 + { 14, 4, 0, 0x0000008000000000ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x40, 810, },
12432 + { 14, 4, 0, 0x0000008000000080ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x210, 2991, },
12433 + { 14, 4, 0, 0x0000008000000080ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x250, 2992, },
12434 + { 14, 4, 0, 0x0000008000000140ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x30, 572, },
12435 + { 14, 4, 0, 0x0000008000000140ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x70, 573, },
12436 + { 14, 4, 0, 0x0000008000000180ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x230, 570, },
12437 + { 14, 4, 0, 0x0000008000000180ull, 0x000001ee000011c0ull, { 81, 0, 0, 0, 0 }, 0x270, 571, },
12438 + { 14, 4, 1, 0x000000a000000000ull, 0x000001ee00001000ull, { 15, 81, 0, 0, 0 }, 0x0, 566, },
12439 + { 14, 4, 1, 0x000000a000000000ull, 0x000001ee00001000ull, { 15, 81, 0, 0, 0 }, 0x40, 567, },
12440 + { 15, 4, 0, 0x0000000000000000ull, 0x000001e1f8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 519, },
12441 + { 15, 5, 0, 0x0000000000000000ull, 0x000001e3f8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 942, },
12442 + { 15, 2, 0, 0x0000000000000000ull, 0x000001eff8000000ull, { 65, 0, 0, 0, 0 }, 0x2, 1120, },
12443 + { 15, 3, 0, 0x0000000000000000ull, 0x000001eff8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 1245, },
12444 + { 15, 6, 0, 0x0000000000000000ull, 0x000001eff8000000ull, { 69, 0, 0, 0, 0 }, 0x0, 2995, },
12445 + { 15, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 65, 0, 0, 0, 0 }, 0x0, 16, },
12446 + { 16, 6, 0, 0x0000018000000000ull, 0x000001ee000011ffull, { 82, 0, 0, 0, 0 }, 0x40, 1005, },
12447 + { 16, 6, 0, 0x0000018000000000ull, 0x000001ee000011c0ull, { 82, 0, 0, 0, 0 }, 0x0, 811, },
12448 + { 16, 6, 0, 0x0000018000000000ull, 0x000001ee000011c0ull, { 82, 0, 0, 0, 0 }, 0x40, 812, },
12449 + { 16, 6, 1, 0x000001a000000000ull, 0x000001ee00001000ull, { 15, 82, 0, 0, 0 }, 0x0, 568, },
12450 + { 16, 6, 1, 0x000001a000000000ull, 0x000001ee00001000ull, { 15, 82, 0, 0, 0 }, 0x40, 569, },
12451 + { 17, 4, 0, 0x0000004080000000ull, 0x000001e9f8000018ull, { 16, 77, 0, 0, 0 }, 0x20, 2818, },
12452 + { 17, 4, 0, 0x000000e000000000ull, 0x000001e800000018ull, { 81, 77, 0, 0, 0 }, 0x20, 2819, },
12453 + { 18, 4, 0, 0x0000000060000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x2c, 222, },
12454 + { 22, 2, 0, 0x0000000200000000ull, 0x000001ee00000000ull, { 25, 80, 0, 0, 0 }, 0x0, 2205, },
12455 + { 22, 3, 0, 0x0000000800000000ull, 0x000001ee00000000ull, { 24, 81, 0, 0, 0 }, 0x0, 224, },
12456 + { 22, 3, 0, 0x0000000c00000000ull, 0x000001ee00000000ull, { 18, 81, 0, 0, 0 }, 0x0, 225, },
12457 + { 22, 3, 0, 0x0000002200000000ull, 0x000001ee00000000ull, { 25, 80, 0, 0, 0 }, 0x0, 2206, },
12458 + { 22, 3, 0, 0x0000002600000000ull, 0x000001ee00000000ull, { 19, 80, 0, 0, 0 }, 0x0, 2207, },
12459 + { 22, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 25, 80, 0, 0, 0 }, 0x0, 2208, },
12460 + { 25, 4, 0, 0x0000000020000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x224, 18, },
12461 + { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 22, 23, 25, 26, 0 }, 0x0, 1204, },
12462 + { 26, 1, 1, 0x0000018000000000ull, 0x000001fe00001000ull, { 22, 25, 26, 0, 0 }, 0x40, 1205, },
12463 + { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 23, 22, 26, 25, 0 }, 0x0, 1163, },
12464 + { 26, 1, 1, 0x0000018000000000ull, 0x000001fe00001000ull, { 23, 26, 25, 0, 0 }, 0x40, 1164, },
12465 + { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 22, 23, 26, 25, 0 }, 0x0, 1072, },
12466 + { 26, 1, 1, 0x0000018000000000ull, 0x000001fe00001000ull, { 22, 26, 25, 0, 0 }, 0x40, 1073, },
12467 + { 26, 1, 2, 0x0000018000000000ull, 0x000001fe00001000ull, { 23, 22, 25, 26, 0 }, 0x0, 1034, },
12468 + { 26, 1, 1, 0x0000018000000000ull, 0x000001fe00001000ull, { 23, 25, 26, 0, 0 }, 0x40, 1035, },
12469 + { 26, 1, 2, 0x0000018200000000ull, 0x000001fe00001000ull, { 22, 23, 25, 26, 0 }, 0x40, 1358, },
12470 + { 26, 1, 2, 0x0000019000000000ull, 0x000001fe00001000ull, { 22, 23, 7, 26, 0 }, 0x0, 1074, },
12471 + { 26, 1, 1, 0x0000019000000000ull, 0x000001fe00001000ull, { 22, 7, 26, 0, 0 }, 0x40, 1075, },
12472 + { 26, 1, 2, 0x0000019000000000ull, 0x000001fe00001000ull, { 22, 23, 26, 7, 0 }, 0x40, 1208, },
12473 + { 26, 1, 1, 0x0000019000000000ull, 0x000001fe00001000ull, { 22, 26, 7, 0, 0 }, 0x40, 1209, },
12474 + { 26, 1, 2, 0x0000019000000000ull, 0x000001fe00001000ull, { 22, 23, 7, 26, 0 }, 0x40, 1169, },
12475 + { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 22, 23, 55, 26, 0 }, 0x0, 1211, },
12476 + { 26, 1, 1, 0x0000018800000000ull, 0x000001ee00001000ull, { 22, 55, 26, 0, 0 }, 0x40, 1212, },
12477 + { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 22, 23, 57, 26, 0 }, 0x0, 1170, },
12478 + { 26, 1, 1, 0x0000018800000000ull, 0x000001ee00001000ull, { 22, 57, 26, 0, 0 }, 0x40, 1171, },
12479 + { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 23, 22, 57, 26, 0 }, 0x0, 1079, },
12480 + { 26, 1, 1, 0x0000018800000000ull, 0x000001ee00001000ull, { 23, 57, 26, 0, 0 }, 0x40, 1080, },
12481 + { 26, 1, 2, 0x0000018800000000ull, 0x000001ee00001000ull, { 23, 22, 55, 26, 0 }, 0x0, 1041, },
12482 + { 26, 1, 1, 0x0000018800000000ull, 0x000001ee00001000ull, { 23, 55, 26, 0, 0 }, 0x40, 1042, },
12483 + { 26, 1, 2, 0x0000018a00000000ull, 0x000001ee00001000ull, { 22, 23, 55, 26, 0 }, 0x40, 1363, },
12484 + { 26, 1, 2, 0x000001a800000000ull, 0x000001ee00001000ull, { 22, 23, 59, 26, 0 }, 0x0, 1196, },
12485 + { 26, 1, 1, 0x000001a800000000ull, 0x000001ee00001000ull, { 22, 59, 26, 0, 0 }, 0x40, 1197, },
12486 + { 26, 1, 2, 0x000001a800000000ull, 0x000001ee00001000ull, { 23, 22, 59, 26, 0 }, 0x0, 1107, },
12487 + { 26, 1, 1, 0x000001a800000000ull, 0x000001ee00001000ull, { 23, 59, 26, 0, 0 }, 0x40, 1108, },
12488 + { 26, 1, 2, 0x000001c200000000ull, 0x000001fe00001000ull, { 23, 22, 25, 26, 0 }, 0x40, 1364, },
12489 + { 26, 1, 2, 0x000001d000000000ull, 0x000001fe00001000ull, { 23, 22, 7, 26, 0 }, 0x40, 1172, },
12490 + { 26, 1, 1, 0x000001d000000000ull, 0x000001fe00001000ull, { 23, 7, 26, 0, 0 }, 0x40, 1173, },
12491 + { 26, 1, 2, 0x000001d000000000ull, 0x000001fe00001000ull, { 23, 22, 26, 7, 0 }, 0x40, 1045, },
12492 + { 26, 1, 1, 0x000001d000000000ull, 0x000001fe00001000ull, { 23, 26, 7, 0, 0 }, 0x40, 1046, },
12493 + { 26, 1, 2, 0x000001ca00000000ull, 0x000001ee00001000ull, { 23, 22, 55, 26, 0 }, 0x40, 1365, },
12494 + { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 22, 23, 25, 26, 0 }, 0x0, 1217, },
12495 + { 27, 1, 1, 0x0000018400000000ull, 0x000001fe00001000ull, { 22, 25, 26, 0, 0 }, 0x40, 1218, },
12496 + { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 23, 22, 26, 25, 0 }, 0x0, 1176, },
12497 + { 27, 1, 1, 0x0000018400000000ull, 0x000001fe00001000ull, { 23, 26, 25, 0, 0 }, 0x40, 1177, },
12498 + { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 22, 23, 26, 25, 0 }, 0x0, 1085, },
12499 + { 27, 1, 1, 0x0000018400000000ull, 0x000001fe00001000ull, { 22, 26, 25, 0, 0 }, 0x40, 1086, },
12500 + { 27, 1, 2, 0x0000018400000000ull, 0x000001fe00001000ull, { 23, 22, 25, 26, 0 }, 0x0, 1047, },
12501 + { 27, 1, 1, 0x0000018400000000ull, 0x000001fe00001000ull, { 23, 25, 26, 0, 0 }, 0x40, 1048, },
12502 + { 27, 1, 2, 0x0000018600000000ull, 0x000001fe00001000ull, { 22, 23, 25, 26, 0 }, 0x40, 1370, },
12503 + { 27, 1, 2, 0x0000019400000000ull, 0x000001fe00001000ull, { 22, 23, 7, 26, 0 }, 0x0, 1087, },
12504 + { 27, 1, 1, 0x0000019400000000ull, 0x000001fe00001000ull, { 22, 7, 26, 0, 0 }, 0x40, 1088, },
12505 + { 27, 1, 2, 0x0000019400000000ull, 0x000001fe00001000ull, { 22, 23, 26, 7, 0 }, 0x40, 1221, },
12506 + { 27, 1, 1, 0x0000019400000000ull, 0x000001fe00001000ull, { 22, 26, 7, 0, 0 }, 0x40, 1222, },
12507 + { 27, 1, 2, 0x0000019400000000ull, 0x000001fe00001000ull, { 22, 23, 7, 26, 0 }, 0x40, 1182, },
12508 + { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 22, 23, 55, 26, 0 }, 0x0, 1224, },
12509 + { 27, 1, 1, 0x0000018c00000000ull, 0x000001ee00001000ull, { 22, 55, 26, 0, 0 }, 0x40, 1225, },
12510 + { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 22, 23, 57, 26, 0 }, 0x0, 1183, },
12511 + { 27, 1, 1, 0x0000018c00000000ull, 0x000001ee00001000ull, { 22, 57, 26, 0, 0 }, 0x40, 1184, },
12512 + { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 23, 22, 57, 26, 0 }, 0x0, 1092, },
12513 + { 27, 1, 1, 0x0000018c00000000ull, 0x000001ee00001000ull, { 23, 57, 26, 0, 0 }, 0x40, 1093, },
12514 + { 27, 1, 2, 0x0000018c00000000ull, 0x000001ee00001000ull, { 23, 22, 55, 26, 0 }, 0x0, 1054, },
12515 + { 27, 1, 1, 0x0000018c00000000ull, 0x000001ee00001000ull, { 23, 55, 26, 0, 0 }, 0x40, 1055, },
12516 + { 27, 1, 2, 0x0000018e00000000ull, 0x000001ee00001000ull, { 22, 23, 55, 26, 0 }, 0x40, 1375, },
12517 + { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 22, 23, 56, 26, 0 }, 0x0, 1241, },
12518 + { 27, 1, 1, 0x000001ac00000000ull, 0x000001ee00001000ull, { 22, 56, 26, 0, 0 }, 0x40, 1242, },
12519 + { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 22, 23, 58, 26, 0 }, 0x0, 1200, },
12520 + { 27, 1, 1, 0x000001ac00000000ull, 0x000001ee00001000ull, { 22, 58, 26, 0, 0 }, 0x40, 1201, },
12521 + { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 23, 22, 58, 26, 0 }, 0x0, 1111, },
12522 + { 27, 1, 1, 0x000001ac00000000ull, 0x000001ee00001000ull, { 23, 58, 26, 0, 0 }, 0x40, 1112, },
12523 + { 27, 1, 2, 0x000001ac00000000ull, 0x000001ee00001000ull, { 23, 22, 56, 26, 0 }, 0x0, 1070, },
12524 + { 27, 1, 1, 0x000001ac00000000ull, 0x000001ee00001000ull, { 23, 56, 26, 0, 0 }, 0x40, 1071, },
12525 + { 27, 1, 2, 0x000001c600000000ull, 0x000001fe00001000ull, { 23, 22, 25, 26, 0 }, 0x40, 1376, },
12526 + { 27, 1, 2, 0x000001d400000000ull, 0x000001fe00001000ull, { 23, 22, 7, 26, 0 }, 0x40, 1185, },
12527 + { 27, 1, 1, 0x000001d400000000ull, 0x000001fe00001000ull, { 23, 7, 26, 0, 0 }, 0x40, 1186, },
12528 + { 27, 1, 2, 0x000001d400000000ull, 0x000001fe00001000ull, { 23, 22, 26, 7, 0 }, 0x40, 1058, },
12529 + { 27, 1, 1, 0x000001d400000000ull, 0x000001fe00001000ull, { 23, 26, 7, 0, 0 }, 0x40, 1059, },
12530 + { 27, 1, 2, 0x000001ce00000000ull, 0x000001ee00001000ull, { 23, 22, 55, 26, 0 }, 0x40, 1377, },
12531 + { 28, 3, 1, 0x0000008808000000ull, 0x000001fff8000000ull, { 24, 33, 25, 1, 2 }, 0x0, 257, },
12532 + { 28, 3, 1, 0x0000008808000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x40, 258, },
12533 + { 29, 3, 1, 0x0000008008000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 259, },
12534 + { 29, 3, 1, 0x0000008008000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x40, 260, },
12535 + { 30, 3, 1, 0x0000008048000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 261, },
12536 + { 30, 3, 1, 0x0000008048000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x40, 262, },
12537 + { 31, 3, 1, 0x0000008088000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 263, },
12538 + { 31, 3, 1, 0x0000008088000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x40, 264, },
12539 + { 32, 3, 1, 0x00000080c8000000ull, 0x000001fff8000000ull, { 24, 33, 25, 2, 0 }, 0x0, 265, },
12540 + { 32, 3, 1, 0x00000080c8000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x40, 266, },
12541 + { 34, 4, 0, 0x0000000010000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x224, 19, },
12542 + { 36, 2, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 1149, },
12543 + { 37, 2, 1, 0x00000000c8000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 1150, },
12544 + { 39, 2, 1, 0x0000008000000000ull, 0x000001e000000000ull, { 24, 25, 26, 47, 72 }, 0x0, 20, },
12545 + { 39, 2, 1, 0x000000a600000000ull, 0x000001ee04000000ull, { 24, 25, 45, 73, 0 }, 0x0, 3000, },
12546 + { 39, 2, 1, 0x000000a604000000ull, 0x000001ee04000000ull, { 24, 55, 45, 73, 0 }, 0x0, 3001, },
12547 + { 39, 2, 1, 0x000000ae00000000ull, 0x000001ee00000000ull, { 24, 48, 26, 46, 73 }, 0x0, 21, },
12548 + { 43, 4, 0, 0x0000000080000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x20, 22, },
12549 + { 48, 2, 1, 0x000000a400000000ull, 0x000001ee00002000ull, { 24, 26, 76, 73, 0 }, 0x0, 2836, },
12550 + { 50, 5, 1, 0x0000000080000000ull, 0x000001e3f80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 24, },
12551 + { 51, 5, 1, 0x0000010008000000ull, 0x000001fff8000000ull, { 18, 20, 19, 0, 0 }, 0x40, 2257, },
12552 + { 52, 5, 1, 0x00000000b8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2258, },
12553 + { 52, 5, 1, 0x00000000b8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 26, },
12554 + { 53, 5, 1, 0x00000000b0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2259, },
12555 + { 53, 5, 1, 0x00000000b0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 27, },
12556 + { 54, 5, 1, 0x0000000160000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 28, },
12557 + { 55, 5, 1, 0x0000000168000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 29, },
12558 + { 57, 3, 0, 0x0000002180000000ull, 0x000001fff8000000ull, { 26, 0, 0, 0, 0 }, 0x0, 30, },
12559 + { 58, 5, 0, 0x0000000040000000ull, 0x000001eff8000000ull, { 79, 0, 0, 0, 0 }, 0x0, 2260, },
12560 + { 58, 5, 0, 0x0000000040000000ull, 0x000001eff8000000ull, { 79, 0, 0, 0, 0 }, 0x40, 31, },
12561 + { 59, 5, 2, 0x000000a000000000ull, 0x000001e000001000ull, { 22, 23, 19, 60, 0 }, 0x0, 1247, },
12562 + { 59, 5, 1, 0x000000a000000000ull, 0x000001e000001000ull, { 22, 19, 60, 0, 0 }, 0x40, 1248, },
12563 + { 59, 5, 2, 0x000000a000000000ull, 0x000001e000001000ull, { 23, 22, 19, 60, 0 }, 0x40, 1402, },
12564 + { 59, 5, 1, 0x000000a000000000ull, 0x000001e000001000ull, { 23, 19, 60, 0, 0 }, 0x40, 1403, },
12565 + { 60, 5, 0, 0x0000000028000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 2261, },
12566 + { 60, 5, 0, 0x0000000028000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x40, 32, },
12567 + { 61, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 22, 23, 19, 20, 0 }, 0x0, 925, },
12568 + { 61, 5, 1, 0x0000008000000000ull, 0x000001fe00001000ull, { 22, 19, 20, 0, 0 }, 0x40, 926, },
12569 + { 61, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 22, 23, 19, 20, 0 }, 0x40, 927, },
12570 + { 61, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 22, 23, 20, 19, 0 }, 0x0, 1098, },
12571 + { 61, 5, 1, 0x0000009000000000ull, 0x000001fe00001000ull, { 22, 20, 19, 0, 0 }, 0x40, 1099, },
12572 + { 61, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 22, 23, 20, 19, 0 }, 0x40, 1100, },
12573 + { 61, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 23, 22, 19, 20, 0 }, 0x0, 1378, },
12574 + { 61, 5, 1, 0x0000008000000000ull, 0x000001fe00001000ull, { 23, 19, 20, 0, 0 }, 0x40, 1379, },
12575 + { 61, 5, 2, 0x0000008000000000ull, 0x000001fe00001000ull, { 23, 22, 19, 20, 0 }, 0x40, 1380, },
12576 + { 61, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 23, 22, 20, 19, 0 }, 0x0, 1387, },
12577 + { 61, 5, 1, 0x0000009000000000ull, 0x000001fe00001000ull, { 23, 20, 19, 0, 0 }, 0x40, 1388, },
12578 + { 61, 5, 2, 0x0000009000000000ull, 0x000001fe00001000ull, { 23, 22, 20, 19, 0 }, 0x40, 1389, },
12579 + { 62, 5, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 18, 19, 0, 0, 0 }, 0x0, 1024, },
12580 + { 62, 5, 1, 0x00000000c0000000ull, 0x000001eff8000000ull, { 18, 19, 0, 0, 0 }, 0x40, 1025, },
12581 + { 62, 5, 1, 0x00000000e0000000ull, 0x000001e3f8000000ull, { 18, 19, 0, 0, 0 }, 0x0, 2998, },
12582 + { 62, 5, 1, 0x0000010008000000ull, 0x000001fff80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 2999, },
12583 + { 63, 3, 1, 0x0000008488000000ull, 0x000001fff8000000ull, { 24, 33, 71, 0, 0 }, 0x0, 267, },
12584 + { 64, 3, 1, 0x00000084c8000000ull, 0x000001fff8000000ull, { 24, 33, 71, 0, 0 }, 0x0, 268, },
12585 + { 67, 3, 0, 0x0000000060000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x21, 33, },
12586 + { 68, 5, 1, 0x0000010000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 2319, },
12587 + { 68, 5, 1, 0x0000010000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 34, },
12588 + { 69, 5, 1, 0x00000000a8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2320, },
12589 + { 69, 5, 1, 0x00000000a8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 35, },
12590 + { 70, 5, 1, 0x0000000080000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2213, },
12591 + { 71, 5, 1, 0x00000000a0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2321, },
12592 + { 71, 5, 1, 0x00000000a0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 36, },
12593 + { 72, 5, 1, 0x00000001c8000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 1203, },
12594 + { 73, 5, 1, 0x0000010000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 2324, },
12595 + { 74, 5, 1, 0x0000014000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 2327, },
12596 + { 74, 5, 1, 0x0000014000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 38, },
12597 + { 75, 5, 1, 0x0000000088000000ull, 0x000001e3f8000000ull, { 18, 20, 0, 0, 0 }, 0xc0, 39, },
12598 + { 76, 5, 1, 0x0000000088000000ull, 0x000001e3f80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 40, },
12599 + { 77, 5, 1, 0x0000018000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 2330, },
12600 + { 77, 5, 1, 0x0000018000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 41, },
12601 + { 78, 5, 1, 0x0000018000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 2333, },
12602 + { 79, 5, 1, 0x0000010008000000ull, 0x000001fff80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 2336, },
12603 + { 80, 5, 1, 0x0000000170000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 44, },
12604 + { 81, 5, 1, 0x0000002080000000ull, 0x000001e3f80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 45, },
12605 + { 82, 5, 1, 0x0000000140000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 46, },
12606 + { 83, 5, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2337, },
12607 + { 83, 5, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 47, },
12608 + { 84, 5, 1, 0x00000020b0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2338, },
12609 + { 84, 5, 1, 0x00000020b0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 48, },
12610 + { 85, 5, 1, 0x0000002180000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 928, },
12611 + { 85, 5, 1, 0x0000002180000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 929, },
12612 + { 85, 5, 1, 0x0000002188000000ull, 0x000001eff8000000ull, { 18, 20, 19, 0, 0 }, 0x40, 1101, },
12613 + { 86, 5, 1, 0x00000020c0000000ull, 0x000001eff8000000ull, { 18, 19, 0, 0, 0 }, 0x0, 1026, },
12614 + { 86, 5, 1, 0x00000020c0000000ull, 0x000001eff8000000ull, { 18, 19, 0, 0, 0 }, 0x40, 1027, },
12615 + { 87, 5, 1, 0x0000013000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 2355, },
12616 + { 87, 5, 1, 0x0000013000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 49, },
12617 + { 88, 5, 1, 0x00000020a8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2356, },
12618 + { 88, 5, 1, 0x00000020a8000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 50, },
12619 + { 89, 5, 1, 0x0000002080000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2221, },
12620 + { 90, 5, 1, 0x00000020a0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2357, },
12621 + { 90, 5, 1, 0x00000020a0000000ull, 0x000001eff8000000ull, { 18, 19, 20, 0, 0 }, 0x40, 51, },
12622 + { 91, 5, 1, 0x0000013000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 2358, },
12623 + { 92, 5, 1, 0x0000017000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 2359, },
12624 + { 92, 5, 1, 0x0000017000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 53, },
12625 + { 93, 5, 1, 0x0000002088000000ull, 0x000001e3f8000000ull, { 18, 20, 0, 0, 0 }, 0xc0, 54, },
12626 + { 94, 5, 1, 0x0000002088000000ull, 0x000001e3f80fe000ull, { 18, 20, 0, 0, 0 }, 0x40, 55, },
12627 + { 95, 5, 1, 0x000001b000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 2360, },
12628 + { 95, 5, 1, 0x000001b000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 56, },
12629 + { 96, 5, 1, 0x000001b000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 2361, },
12630 + { 97, 5, 2, 0x0000002200000000ull, 0x000001fe00000000ull, { 18, 23, 19, 20, 0 }, 0x0, 2362, },
12631 + { 97, 5, 2, 0x0000002200000000ull, 0x000001fe00000000ull, { 18, 23, 19, 20, 0 }, 0x40, 58, },
12632 + { 98, 5, 2, 0x0000003200000000ull, 0x000001fe00000000ull, { 18, 23, 20, 0, 0 }, 0x0, 2363, },
12633 + { 98, 5, 2, 0x0000003200000000ull, 0x000001fe00000000ull, { 18, 23, 20, 0, 0 }, 0x40, 59, },
12634 + { 99, 5, 2, 0x0000000200000000ull, 0x000001fe00000000ull, { 18, 23, 19, 20, 0 }, 0x0, 2364, },
12635 + { 99, 5, 2, 0x0000000200000000ull, 0x000001fe00000000ull, { 18, 23, 19, 20, 0 }, 0x40, 60, },
12636 + { 100, 5, 2, 0x0000001200000000ull, 0x000001fe00000000ull, { 18, 23, 20, 0, 0 }, 0x0, 2365, },
12637 + { 100, 5, 2, 0x0000001200000000ull, 0x000001fe00000000ull, { 18, 23, 20, 0, 0 }, 0x40, 61, },
12638 + { 101, 5, 1, 0x000001c000000000ull, 0x000001f000000000ull, { 18, 20, 21, 19, 0 }, 0x0, 62, },
12639 + { 102, 5, 0, 0x0000000020000000ull, 0x000001eff8000000ull, { 50, 51, 0, 0, 0 }, 0x0, 2366, },
12640 + { 102, 5, 0, 0x0000000020000000ull, 0x000001eff8000000ull, { 50, 51, 0, 0, 0 }, 0x40, 63, },
12641 + { 103, 5, 1, 0x0000014008000000ull, 0x000001fff8000000ull, { 18, 20, 19, 0, 0 }, 0x40, 2369, },
12642 + { 104, 5, 1, 0x00000001a0000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 65, },
12643 + { 105, 5, 1, 0x00000001e0000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 2168, },
12644 + { 106, 3, 0, 0x0000000100000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 66, },
12645 + { 108, 5, 1, 0x0000000178000000ull, 0x000001e3f8000000ull, { 18, 19, 20, 0, 0 }, 0x0, 67, },
12646 + { 113, 3, 1, 0x0000008708000000ull, 0x000001ffc8000000ull, { 24, 19, 0, 0, 0 }, 0x0, 2747, },
12647 + { 118, 4, 0, 0x0000004008000000ull, 0x000001e1f8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 520, },
12648 + { 118, 5, 0, 0x000000000c000000ull, 0x000001e3fc000000ull, { 65, 0, 0, 0, 0 }, 0x0, 943, },
12649 + { 118, 2, 0, 0x000000000c000000ull, 0x000001effc000000ull, { 65, 0, 0, 0, 0 }, 0x2, 1123, },
12650 + { 118, 3, 0, 0x000000000c000000ull, 0x000001effc000000ull, { 65, 0, 0, 0, 0 }, 0x0, 1249, },
12651 + { 118, 6, 0, 0x000000000c000000ull, 0x000001effc000000ull, { 69, 0, 0, 0, 0 }, 0x0, 2996, },
12652 + { 118, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 65, 0, 0, 0, 0 }, 0x0, 68, },
12653 + { 123, 3, 0, 0x0000000080000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 69, },
12654 + { 123, 3, 0, 0x0000000090000000ull, 0x000001eff8000000ull, { 24, 0, 0, 0, 0 }, 0x0, 902, },
12655 + { 123, 3, 0, 0x0000000098000000ull, 0x000001eff8000000ull, { 18, 0, 0, 0, 0 }, 0x0, 903, },
12656 + { 124, 3, 0, 0x0000002170000000ull, 0x000001eff8000000ull, { 25, 0, 0, 0, 0 }, 0xc, 828, },
12657 + { 125, 3, 1, 0x0000002070000000ull, 0x000001eff8000000ull, { 30, 25, 0, 0, 0 }, 0x8, 829, },
12658 + { 125, 3, 1, 0x0000002078000000ull, 0x000001eff8000000ull, { 31, 25, 0, 0, 0 }, 0x8, 1125, },
12659 + { 127, 3, 1, 0x0000008000000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 70, },
12660 + { 127, 3, 1, 0x0000009000000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 71, },
12661 + { 127, 3, 1, 0x000000a000000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 72, },
12662 + { 128, 3, 2, 0x0000008a08000000ull, 0x000001fff8000000ull, { 24, 1, 33, 0, 0 }, 0x0, 73, },
12663 + { 128, 3, 1, 0x0000008a08000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x40, 74, },
12664 + { 129, 3, 1, 0x0000008040000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 75, },
12665 + { 129, 3, 1, 0x0000009040000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 76, },
12666 + { 129, 3, 1, 0x000000a040000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 77, },
12667 + { 130, 3, 1, 0x0000008080000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 78, },
12668 + { 130, 3, 1, 0x0000009080000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 79, },
12669 + { 130, 3, 1, 0x000000a080000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 80, },
12670 + { 131, 3, 1, 0x00000080c0000000ull, 0x000001fff8000000ull, { 24, 33, 0, 0, 0 }, 0x0, 81, },
12671 + { 131, 3, 1, 0x00000080c0000000ull, 0x000001fff8000000ull, { 24, 33, 83, 0, 0 }, 0x0, 1321, },
12672 + { 131, 3, 1, 0x00000090c0000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x400, 82, },
12673 + { 131, 3, 1, 0x000000a0c0000000ull, 0x000001eff0000000ull, { 24, 33, 62, 0, 0 }, 0x400, 83, },
12674 + { 132, 3, 1, 0x000000c6c0000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 1021, },
12675 + { 132, 3, 1, 0x000000d6c0000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 1022, },
12676 + { 132, 3, 1, 0x000000e6c0000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 1023, },
12677 + { 133, 3, 1, 0x000000c040000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 84, },
12678 + { 133, 3, 1, 0x000000d040000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 85, },
12679 + { 133, 3, 1, 0x000000e040000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 86, },
12680 + { 134, 3, 1, 0x000000c0c0000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 87, },
12681 + { 134, 3, 1, 0x000000d0c0000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 88, },
12682 + { 134, 3, 1, 0x000000e0c0000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 89, },
12683 + { 135, 3, 1, 0x000000c000000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 90, },
12684 + { 135, 3, 1, 0x000000d000000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 91, },
12685 + { 135, 3, 1, 0x000000e000000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 92, },
12686 + { 136, 3, 2, 0x000000c048000000ull, 0x000001fff8000000ull, { 18, 19, 33, 0, 0 }, 0x0, 93, },
12687 + { 136, 3, 2, 0x000000d048000000ull, 0x000001fff8000000ull, { 18, 19, 33, 6, 0 }, 0x400, 94, },
12688 + { 137, 3, 2, 0x000000c0c8000000ull, 0x000001fff8000000ull, { 18, 19, 33, 0, 0 }, 0x0, 95, },
12689 + { 137, 3, 2, 0x000000d0c8000000ull, 0x000001fff8000000ull, { 18, 19, 33, 6, 0 }, 0x400, 96, },
12690 + { 138, 3, 2, 0x000000c088000000ull, 0x000001fff8000000ull, { 18, 19, 33, 0, 0 }, 0x0, 97, },
12691 + { 138, 3, 2, 0x000000d088000000ull, 0x000001fff8000000ull, { 18, 19, 33, 5, 0 }, 0x400, 98, },
12692 + { 139, 3, 1, 0x000000c080000000ull, 0x000001fff8000000ull, { 18, 33, 0, 0, 0 }, 0x0, 99, },
12693 + { 139, 3, 1, 0x000000d080000000ull, 0x000001fff8000000ull, { 18, 33, 25, 0, 0 }, 0x400, 100, },
12694 + { 139, 3, 1, 0x000000e080000000ull, 0x000001eff0000000ull, { 18, 33, 62, 0, 0 }, 0x400, 101, },
12695 + { 142, 3, 0, 0x000000cb00000000ull, 0x000001fff8000000ull, { 33, 0, 0, 0, 0 }, 0x0, 102, },
12696 + { 142, 3, 0, 0x000000db00000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x400, 103, },
12697 + { 142, 3, 0, 0x000000eb00000000ull, 0x000001eff0000000ull, { 33, 62, 0, 0, 0 }, 0x400, 104, },
12698 + { 143, 3, 0, 0x0000000050000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x21, 105, },
12699 + { 151, 3, 0, 0x0000000110000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 106, },
12700 + { 152, 2, 1, 0x000000e880000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2169, },
12701 + { 153, 2, 1, 0x000000ea80000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2170, },
12702 + { 154, 2, 1, 0x000000f880000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2171, },
12703 + { 155, 1, 1, 0x0000010800000000ull, 0x000001fff80fe000ull, { 24, 26, 0, 0, 0 }, 0x0, 107, },
12704 + { 155, 1, 1, 0x0000012000000000ull, 0x000001e000300000ull, { 24, 66, 0, 0, 0 }, 0x40, 108, },
12705 + { 155, 5, 1, 0x0000000080000000ull, 0x000001e3f8000000ull, { 18, 20, 0, 0, 0 }, 0xc0, 109, },
12706 + { 155, 2, 1, 0x0000000e00100000ull, 0x000001ee00f00000ull, { 15, 25, 0, 0, 0 }, 0x40, 110, },
12707 + { 155, 2, 1, 0x0000000e00000000ull, 0x000001ee00f00000ull, { 15, 25, 78, 0, 0 }, 0x0, 2821, },
12708 + { 155, 2, 1, 0x0000000188000000ull, 0x000001eff8000000ull, { 24, 16, 0, 0, 0 }, 0x0, 112, },
12709 + { 155, 2, 1, 0x0000000600000000ull, 0x000001ee00000000ull, { 9, 25, 64, 0, 0 }, 0x0, 113, },
12710 + { 155, 2, 1, 0x00000016ff001fc0ull, 0x000001feff001fc0ull, { 9, 25, 0, 0, 0 }, 0x40, 114, },
12711 + { 155, 2, 1, 0x0000000400000000ull, 0x000001ee00000000ull, { 10, 68, 0, 0, 0 }, 0x0, 115, },
12712 + { 155, 2, 1, 0x0000000180000000ull, 0x000001eff8000000ull, { 24, 8, 0, 0, 0 }, 0x0, 116, },
12713 + { 155, 2, 1, 0x0000000198000000ull, 0x000001eff8000000ull, { 24, 9, 0, 0, 0 }, 0x0, 117, },
12714 + { 155, 2, 1, 0x0000000150000000ull, 0x000001eff8000000ull, { 14, 25, 0, 0, 0 }, 0x0, 1126, },
12715 + { 155, 2, 1, 0x0000000050000000ull, 0x000001eff8000000ull, { 14, 55, 0, 0, 0 }, 0x0, 1127, },
12716 + { 155, 2, 1, 0x0000000190000000ull, 0x000001eff8000000ull, { 24, 14, 0, 0, 0 }, 0x0, 1128, },
12717 + { 155, 3, 1, 0x0000000140000000ull, 0x000001eff8000000ull, { 14, 55, 0, 0, 0 }, 0x0, 1250, },
12718 + { 155, 3, 1, 0x0000002150000000ull, 0x000001eff8000000ull, { 14, 25, 0, 0, 0 }, 0x0, 1251, },
12719 + { 155, 3, 1, 0x0000002110000000ull, 0x000001eff8000000ull, { 24, 14, 0, 0, 0 }, 0x0, 1252, },
12720 + { 155, 3, 1, 0x0000002160000000ull, 0x000001eff8000000ull, { 17, 25, 0, 0, 0 }, 0x8, 118, },
12721 + { 155, 3, 1, 0x0000002120000000ull, 0x000001eff8000000ull, { 24, 17, 0, 0, 0 }, 0x8, 119, },
12722 + { 155, 3, 1, 0x0000002168000000ull, 0x000001eff8000000ull, { 12, 25, 0, 0, 0 }, 0x8, 120, },
12723 + { 155, 3, 1, 0x0000002148000000ull, 0x000001eff8000000ull, { 13, 25, 0, 0, 0 }, 0x0, 121, },
12724 + { 155, 3, 1, 0x0000002128000000ull, 0x000001eff8000000ull, { 24, 11, 0, 0, 0 }, 0x8, 122, },
12725 + { 155, 3, 1, 0x0000002108000000ull, 0x000001eff8000000ull, { 24, 13, 0, 0, 0 }, 0x0, 123, },
12726 + { 155, 3, 1, 0x0000002000000000ull, 0x000001eff8000000ull, { 38, 25, 0, 0, 0 }, 0x8, 124, },
12727 + { 155, 3, 1, 0x0000002008000000ull, 0x000001eff8000000ull, { 29, 25, 0, 0, 0 }, 0x8, 125, },
12728 + { 155, 3, 1, 0x0000002010000000ull, 0x000001eff8000000ull, { 32, 25, 0, 0, 0 }, 0x8, 126, },
12729 + { 155, 3, 1, 0x0000002018000000ull, 0x000001eff8000000ull, { 35, 25, 0, 0, 0 }, 0x8, 127, },
12730 + { 155, 3, 1, 0x0000002020000000ull, 0x000001eff8000000ull, { 36, 25, 0, 0, 0 }, 0x8, 128, },
12731 + { 155, 3, 1, 0x0000002028000000ull, 0x000001eff8000000ull, { 37, 25, 0, 0, 0 }, 0x8, 129, },
12732 + { 155, 3, 1, 0x0000002030000000ull, 0x000001eff8000000ull, { 34, 25, 0, 0, 0 }, 0x8, 130, },
12733 + { 155, 3, 1, 0x0000002080000000ull, 0x000001eff8000000ull, { 24, 38, 0, 0, 0 }, 0x8, 131, },
12734 + { 155, 3, 1, 0x0000002088000000ull, 0x000001eff8000000ull, { 24, 29, 0, 0, 0 }, 0x8, 132, },
12735 + { 155, 3, 1, 0x0000002090000000ull, 0x000001eff8000000ull, { 24, 32, 0, 0, 0 }, 0x8, 133, },
12736 + { 155, 3, 1, 0x0000002098000000ull, 0x000001eff8000000ull, { 24, 35, 0, 0, 0 }, 0x8, 134, },
12737 + { 155, 3, 1, 0x00000020a0000000ull, 0x000001eff8000000ull, { 24, 36, 0, 0, 0 }, 0x8, 135, },
12738 + { 155, 3, 1, 0x00000020a8000000ull, 0x000001eff8000000ull, { 24, 37, 0, 0, 0 }, 0x0, 136, },
12739 + { 155, 3, 1, 0x00000020b0000000ull, 0x000001eff8000000ull, { 24, 34, 0, 0, 0 }, 0x8, 137, },
12740 + { 155, 3, 1, 0x00000020b8000000ull, 0x000001eff8000000ull, { 24, 28, 0, 0, 0 }, 0x0, 138, },
12741 + { 155, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 24, 14, 0, 0, 0 }, 0x0, 139, },
12742 + { 155, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 14, 55, 0, 0, 0 }, 0x0, 140, },
12743 + { 155, 7, 1, 0x0000000000000000ull, 0x0000000000000000ull, { 14, 25, 0, 0, 0 }, 0x0, 141, },
12744 + { 156, 6, 1, 0x000000c000000000ull, 0x000001e000100000ull, { 24, 70, 0, 0, 0 }, 0x0, 142, },
12745 + { 157, 2, 1, 0x000000eca0000000ull, 0x000001fff0000000ull, { 24, 25, 74, 0, 0 }, 0x0, 143, },
12746 + { 158, 2, 1, 0x000000eea0000000ull, 0x000001fff0000000ull, { 24, 25, 75, 0, 0 }, 0x0, 144, },
12747 + { 168, 4, 0, 0x0000004000000000ull, 0x000001e1f8000000ull, { 65, 0, 0, 0, 0 }, 0x0, 521, },
12748 + { 168, 5, 0, 0x0000000008000000ull, 0x000001e3fc000000ull, { 65, 0, 0, 0, 0 }, 0x0, 944, },
12749 + { 168, 2, 0, 0x0000000008000000ull, 0x000001effc000000ull, { 65, 0, 0, 0, 0 }, 0x2, 1129, },
12750 + { 168, 3, 0, 0x0000000008000000ull, 0x000001effc000000ull, { 65, 0, 0, 0, 0 }, 0x0, 1253, },
12751 + { 168, 6, 0, 0x0000000008000000ull, 0x000001effc000000ull, { 69, 0, 0, 0, 0 }, 0x0, 2997, },
12752 + { 168, 7, 0, 0x0000000000000000ull, 0x0000000000000000ull, { 65, 0, 0, 0, 0 }, 0x0, 145, },
12753 + { 175, 1, 1, 0x0000010070000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 146, },
12754 + { 175, 1, 1, 0x0000010170000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 147, },
12755 + { 178, 2, 1, 0x000000ea00000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2979, },
12756 + { 179, 2, 1, 0x000000f820000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2823, },
12757 + { 180, 1, 1, 0x0000010400000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 148, },
12758 + { 181, 1, 1, 0x0000010600000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 149, },
12759 + { 182, 1, 1, 0x0000011400000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 150, },
12760 + { 183, 1, 1, 0x0000010450000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 151, },
12761 + { 184, 1, 1, 0x0000010650000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 152, },
12762 + { 185, 1, 1, 0x0000010470000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 153, },
12763 + { 186, 1, 1, 0x0000010670000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 154, },
12764 + { 187, 1, 1, 0x0000010520000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 930, },
12765 + { 188, 1, 1, 0x0000010720000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 931, },
12766 + { 189, 1, 1, 0x0000011520000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 932, },
12767 + { 190, 2, 1, 0x000000e850000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2837, },
12768 + { 191, 2, 1, 0x000000ea70000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 155, },
12769 + { 192, 2, 1, 0x000000e810000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2838, },
12770 + { 193, 2, 1, 0x000000ea30000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 156, },
12771 + { 194, 2, 1, 0x000000ead0000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 2172, },
12772 + { 195, 2, 1, 0x000000e230000000ull, 0x000001ff30000000ull, { 24, 25, 26, 42, 0 }, 0x0, 157, },
12773 + { 196, 2, 1, 0x000000e690000000ull, 0x000001fff0000000ull, { 24, 26, 0, 0, 0 }, 0x0, 158, },
12774 + { 198, 3, 1, 0x00000021c0000000ull, 0x000001eff8000000ull, { 24, 26, 25, 0, 0 }, 0x0, 2173, },
12775 + { 198, 3, 1, 0x00000020c0000000ull, 0x000001eff8000000ull, { 24, 26, 49, 0, 0 }, 0x0, 2174, },
12776 + { 198, 3, 0, 0x0000002188000000ull, 0x000001eff8000000ull, { 26, 49, 0, 0, 0 }, 0x0, 2204, },
12777 + { 199, 2, 1, 0x000000e8b0000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 159, },
12778 + { 200, 2, 1, 0x000000e240000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 160, },
12779 + { 200, 2, 1, 0x000000ee50000000ull, 0x000001fff0000000ull, { 24, 25, 39, 0, 0 }, 0x0, 161, },
12780 + { 201, 2, 1, 0x000000f040000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 162, },
12781 + { 201, 2, 1, 0x000000fc50000000ull, 0x000001fff0000000ull, { 24, 25, 39, 0, 0 }, 0x0, 163, },
12782 + { 202, 1, 1, 0x0000010680000000ull, 0x000001ffe0000000ull, { 24, 25, 41, 26, 0 }, 0x0, 164, },
12783 + { 203, 2, 1, 0x000000e220000000ull, 0x000001fff0000000ull, { 24, 26, 25, 0, 0 }, 0x0, 165, },
12784 + { 203, 2, 1, 0x000000e630000000ull, 0x000001fff0000000ull, { 24, 26, 43, 0, 0 }, 0x0, 166, },
12785 + { 204, 2, 1, 0x000000f020000000ull, 0x000001fff0000000ull, { 24, 26, 25, 0, 0 }, 0x0, 167, },
12786 + { 204, 2, 1, 0x000000f430000000ull, 0x000001fff0000000ull, { 24, 26, 43, 0, 0 }, 0x0, 168, },
12787 + { 205, 1, 1, 0x00000106c0000000ull, 0x000001ffe0000000ull, { 24, 25, 41, 26, 0 }, 0x0, 169, },
12788 + { 206, 1, 1, 0x0000010420000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 170, },
12789 + { 207, 1, 1, 0x0000010620000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 171, },
12790 + { 208, 1, 1, 0x0000011420000000ull, 0x000001fff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 172, },
12791 + { 209, 3, 0, 0x0000002048000000ull, 0x000001eff8000000ull, { 26, 25, 0, 0, 0 }, 0x8, 1157, },
12792 + { 209, 3, 0, 0x0000002050000000ull, 0x000001eff8000000ull, { 26, 25, 0, 0, 0 }, 0xc, 1032, },
12793 + { 209, 3, 0, 0x00000021a0000000ull, 0x000001eff8000000ull, { 26, 0, 0, 0, 0 }, 0x8, 904, },
12794 + { 210, 3, 0, 0x0000002060000000ull, 0x000001eff8000000ull, { 26, 25, 0, 0, 0 }, 0x8, 830, },
12795 + { 215, 4, 0, 0x0000000040000000ull, 0x000001e1f8000000ull, { 0, 0, 0, 0, 0 }, 0x22c, 173, },
12796 + { 216, 3, 0, 0x0000000038000000ull, 0x000001ee78000000ull, { 67, 0, 0, 0, 0 }, 0x8, 174, },
12797 + { 217, 3, 0, 0x0000000028000000ull, 0x000001ee78000000ull, { 67, 0, 0, 0, 0 }, 0x0, 175, },
12798 + { 226, 3, 1, 0x000000c708000000ull, 0x000001ffc8000000ull, { 18, 25, 0, 0, 0 }, 0x0, 2748, },
12799 + { 227, 2, 1, 0x000000a600000000ull, 0x000001ee04000000ull, { 24, 25, 45, 0, 0 }, 0x140, 176, },
12800 + { 227, 2, 1, 0x000000f240000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 177, },
12801 + { 228, 1, 1, 0x0000010080000000ull, 0x000001efe0000000ull, { 24, 25, 40, 26, 0 }, 0x0, 178, },
12802 + { 229, 1, 1, 0x00000100c0000000ull, 0x000001efe0000000ull, { 24, 25, 40, 26, 0 }, 0x0, 179, },
12803 + { 230, 2, 1, 0x000000a400000000ull, 0x000001ee00002000ull, { 24, 26, 76, 0, 0 }, 0x140, 2844, },
12804 + { 230, 2, 1, 0x000000f220000000ull, 0x000001fff0000000ull, { 24, 26, 25, 0, 0 }, 0x0, 181, },
12805 + { 231, 2, 1, 0x000000ac00000000ull, 0x000001ee00000000ull, { 24, 25, 26, 44, 0 }, 0x0, 182, },
12806 + { 236, 3, 0, 0x0000000180000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 832, },
12807 + { 237, 3, 0, 0x0000000030000000ull, 0x000001ee78000000ull, { 67, 0, 0, 0, 0 }, 0x8, 183, },
12808 + { 239, 3, 1, 0x0000008c00000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 184, },
12809 + { 239, 3, 1, 0x000000ac00000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 185, },
12810 + { 240, 3, 1, 0x0000008c08000000ull, 0x000001fff8000000ull, { 33, 25, 1, 0, 0 }, 0x0, 186, },
12811 + { 240, 3, 1, 0x0000008c08000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x40, 187, },
12812 + { 241, 3, 1, 0x0000008c40000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 188, },
12813 + { 241, 3, 1, 0x000000ac40000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 189, },
12814 + { 242, 3, 1, 0x0000008c80000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 190, },
12815 + { 242, 3, 1, 0x000000ac80000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 191, },
12816 + { 243, 3, 1, 0x0000008cc0000000ull, 0x000001fff8000000ull, { 33, 25, 0, 0, 0 }, 0x0, 192, },
12817 + { 243, 3, 1, 0x000000acc0000000ull, 0x000001eff0000000ull, { 33, 25, 61, 0, 0 }, 0x400, 193, },
12818 + { 244, 3, 1, 0x000000cec0000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 2751, },
12819 + { 244, 3, 1, 0x000000eec0000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 2752, },
12820 + { 245, 3, 1, 0x000000cc40000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 194, },
12821 + { 245, 3, 1, 0x000000ec40000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 195, },
12822 + { 246, 3, 1, 0x000000ccc0000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 196, },
12823 + { 246, 3, 1, 0x000000ecc0000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 197, },
12824 + { 247, 3, 1, 0x000000cc00000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 198, },
12825 + { 247, 3, 1, 0x000000ec00000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 199, },
12826 + { 248, 3, 1, 0x000000cc80000000ull, 0x000001fff8000000ull, { 33, 19, 0, 0, 0 }, 0x0, 200, },
12827 + { 248, 3, 1, 0x000000ec80000000ull, 0x000001eff0000000ull, { 33, 19, 61, 0, 0 }, 0x400, 201, },
12828 + { 249, 1, 1, 0x0000010028000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 202, },
12829 + { 249, 1, 1, 0x0000010020000000ull, 0x000001eff8000000ull, { 24, 25, 26, 4, 0 }, 0x0, 203, },
12830 + { 249, 1, 1, 0x0000010128000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 204, },
12831 + { 250, 3, 0, 0x0000000020000000ull, 0x000001ee78000000ull, { 67, 0, 0, 0, 0 }, 0x0, 205, },
12832 + { 251, 2, 1, 0x00000000a0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 206, },
12833 + { 252, 2, 1, 0x00000000a8000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 207, },
12834 + { 253, 2, 1, 0x00000000b0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 208, },
12835 + { 254, 3, 0, 0x0000000198000000ull, 0x000001eff8000000ull, { 0, 0, 0, 0, 0 }, 0x0, 1132, },
12836 + { 255, 3, 1, 0x00000020f8000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x8, 209, },
12837 + { 256, 2, 2, 0x000000a000000000ull, 0x000001fe00003000ull, { 22, 23, 26, 76, 0 }, 0x0, 3002, },
12838 + { 256, 2, 1, 0x000000a000000000ull, 0x000001fe00003000ull, { 22, 26, 76, 0, 0 }, 0x40, 3003, },
12839 + { 256, 2, 2, 0x000000a000000000ull, 0x000001fe00003000ull, { 23, 22, 26, 76, 0 }, 0x40, 1985, },
12840 + { 256, 2, 1, 0x000000a000000000ull, 0x000001fe00003000ull, { 23, 26, 76, 0, 0 }, 0x40, 1986, },
12841 + { 257, 3, 1, 0x00000020d0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 210, },
12842 + { 258, 2, 2, 0x000000a000002000ull, 0x000001fe00003000ull, { 22, 23, 26, 0, 0 }, 0x0, 3006, },
12843 + { 258, 2, 1, 0x000000a000002000ull, 0x000001fe00003000ull, { 22, 26, 0, 0, 0 }, 0x40, 3007, },
12844 + { 258, 2, 2, 0x000000a000002000ull, 0x000001fe00003000ull, { 23, 22, 26, 0, 0 }, 0x40, 1989, },
12845 + { 258, 2, 1, 0x000000a000002000ull, 0x000001fe00003000ull, { 23, 26, 0, 0, 0 }, 0x40, 1990, },
12846 + { 259, 3, 1, 0x00000020f0000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x8, 211, },
12847 + { 261, 3, 1, 0x00000020d8000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 212, },
12848 + { 265, 2, 1, 0x000000e840000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 1113, },
12849 + { 266, 2, 1, 0x000000ea40000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 1114, },
12850 + { 267, 2, 1, 0x000000f840000000ull, 0x000001fff0000000ull, { 24, 25, 26, 0, 0 }, 0x0, 1115, },
12851 + { 275, 3, 1, 0x0000008208000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 213, },
12852 + { 276, 3, 1, 0x0000008248000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 214, },
12853 + { 277, 3, 1, 0x0000008288000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 215, },
12854 + { 278, 3, 1, 0x00000082c8000000ull, 0x000001fff8000000ull, { 24, 33, 25, 0, 0 }, 0x0, 216, },
12855 + { 280, 5, 1, 0x000001d000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x0, 1161, },
12856 + { 280, 5, 1, 0x000001d000000000ull, 0x000001fc00000000ull, { 18, 20, 21, 19, 0 }, 0x40, 1243, },
12857 + { 281, 5, 1, 0x000001d000000000ull, 0x000001fc000fe000ull, { 18, 20, 21, 0, 0 }, 0x40, 1162, },
12858 + { 282, 1, 1, 0x0000010078000000ull, 0x000001eff8000000ull, { 24, 25, 26, 0, 0 }, 0x0, 217, },
12859 + { 282, 1, 1, 0x0000010178000000ull, 0x000001eff8000000ull, { 24, 55, 26, 0, 0 }, 0x0, 218, },
12860 + { 285, 2, 1, 0x0000000080000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 219, },
12861 + { 286, 2, 1, 0x0000000088000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 220, },
12862 + { 287, 2, 1, 0x0000000090000000ull, 0x000001eff8000000ull, { 24, 26, 0, 0, 0 }, 0x0, 221, },
12863 +};
12864 +
12865 +static const char dis_table[] = {
12866 +0xa0, 0xc5, 0xe8, 0xa0, 0x2e, 0x98, 0xa0, 0x2c, 0x80, 0xa0, 0x1b, 0xc0,
12867 +0x98, 0xb0, 0x02, 0x50, 0x90, 0x50, 0x90, 0x28, 0x24, 0x38, 0x28, 0x24,
12868 +0x38, 0x20, 0x90, 0x28, 0x24, 0x38, 0x18, 0x24, 0x38, 0x10, 0x91, 0x60,
12869 +0x90, 0x28, 0x24, 0x38, 0x00, 0x10, 0x10, 0x58, 0x41, 0x61, 0xbf, 0xc0,
12870 +0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
12871 +0x10, 0x10, 0x52, 0xc0, 0xc0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
12872 +0x10, 0x10, 0x10, 0x24, 0x23, 0x70, 0x90, 0x28, 0x24, 0x37, 0xf0, 0x24,
12873 +0x37, 0xe8, 0xa8, 0x0b, 0x48, 0x15, 0x20, 0x97, 0x20, 0x95, 0xc8, 0x9a,
12874 +0xb8, 0x05, 0x38, 0x91, 0x18, 0x90, 0xa0, 0x90, 0x60, 0x80, 0x90, 0x20,
12875 +0x34, 0x86, 0xa4, 0x24, 0x00, 0x34, 0x83, 0x80, 0xa4, 0x35, 0xa0, 0x36,
12876 +0xb9, 0x90, 0x50, 0x90, 0x28, 0x80, 0x36, 0xaf, 0x80, 0x34, 0x66, 0x81,
12877 +0x33, 0xe2, 0x90, 0xe0, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x23, 0x10, 0x34,
12878 +0x63, 0xa4, 0x1f, 0x08, 0x34, 0x60, 0x90, 0x38, 0xa4, 0x37, 0xa0, 0x36,
12879 +0xfa, 0xa4, 0x37, 0x48, 0x36, 0xee, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x36,
12880 +0x20, 0x36, 0xcf, 0xa4, 0x35, 0xf8, 0x36, 0xca, 0x80, 0xa4, 0x22, 0xf0,
12881 +0x34, 0x5f, 0x92, 0x18, 0x91, 0xc0, 0x80, 0x91, 0x80, 0x90, 0xf8, 0xdb,
12882 +0x84, 0x60, 0xf9, 0x40, 0xc0, 0xc0, 0x80, 0xa4, 0x41, 0x58, 0x8c, 0x42,
12883 +0xb8, 0x84, 0x38, 0x61, 0xc0, 0xc0, 0x80, 0xa4, 0x41, 0x48, 0x8c, 0x42,
12884 +0x98, 0x84, 0x38, 0x5f, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x38,
12885 +0x13, 0x50, 0xc0, 0xc0, 0x81, 0x38, 0x11, 0xa4, 0x1f, 0x18, 0x33, 0xe4,
12886 +0x80, 0x90, 0x28, 0x80, 0x33, 0xe0, 0x80, 0x34, 0x68, 0x81, 0x90, 0x38,
12887 +0xa4, 0x23, 0x80, 0x34, 0x6b, 0xa4, 0x23, 0x48, 0x34, 0x65, 0xc0, 0x40,
12888 +0x10, 0x10, 0x90, 0x38, 0xa4, 0x1e, 0xf0, 0x33, 0xdf, 0xa4, 0x1e, 0xe0,
12889 +0x33, 0xdd, 0x18, 0x24, 0x23, 0xf8, 0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0,
12890 +0xc0, 0xc0, 0x80, 0xa4, 0x41, 0x28, 0x38, 0x4b, 0xc0, 0xc0, 0x80, 0xa4,
12891 +0x41, 0x18, 0x38, 0x47, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x38,
12892 +0x0d, 0x50, 0xc0, 0xc0, 0x81, 0x38, 0x0b, 0x92, 0xb8, 0x99, 0x84, 0x23,
12893 +0x68, 0x90, 0x78, 0x90, 0x50, 0x10, 0x10, 0x80, 0xa4, 0x35, 0x98, 0x36,
12894 +0xb8, 0x82, 0x36, 0xae, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x37,
12895 +0x98, 0x36, 0xf9, 0xa4, 0x37, 0x40, 0x36, 0xed, 0x80, 0x90, 0x38, 0xa4,
12896 +0x36, 0x18, 0x36, 0xce, 0xa4, 0x35, 0xf0, 0x36, 0xc9, 0x83, 0x90, 0xa8,
12897 +0xd3, 0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x40, 0xf8, 0x38, 0x3f, 0xc0,
12898 +0xc0, 0x80, 0xa4, 0x40, 0xe8, 0x38, 0x3b, 0xd3, 0x82, 0x40, 0x50, 0xc0,
12899 +0xc0, 0x81, 0x38, 0x07, 0x50, 0xc0, 0xc0, 0x81, 0x38, 0x05, 0x18, 0x24,
12900 +0x23, 0x78, 0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4,
12901 +0x40, 0xc8, 0x38, 0x33, 0xc0, 0xc0, 0x80, 0xa4, 0x40, 0xb8, 0x38, 0x2f,
12902 +0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x38, 0x01, 0x50, 0xc0, 0xc0,
12903 +0x81, 0x37, 0xff, 0x94, 0x50, 0x92, 0xf8, 0x99, 0x84, 0x1f, 0x48, 0x90,
12904 +0x78, 0x90, 0x50, 0x10, 0x10, 0x80, 0xa4, 0x35, 0x90, 0x36, 0xb7, 0x82,
12905 +0x36, 0xad, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x37, 0x90, 0x36,
12906 +0xf8, 0xa4, 0x37, 0x38, 0x36, 0xec, 0x80, 0x90, 0x38, 0xa4, 0x36, 0x10,
12907 +0x36, 0xcd, 0xa4, 0x35, 0xe8, 0x36, 0xc8, 0x83, 0x90, 0xe8, 0xd3, 0x83,
12908 +0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x41, 0x68, 0x8c, 0x42, 0xd8, 0x84, 0x38,
12909 +0x63, 0xc0, 0xc0, 0x80, 0xa4, 0x41, 0x50, 0x8c, 0x42, 0xa8, 0x84, 0x38,
12910 +0x60, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x38, 0x15, 0x50, 0xc0,
12911 +0xc0, 0x81, 0x38, 0x12, 0x18, 0x24, 0x1f, 0x40, 0x83, 0x90, 0xa8, 0xd3,
12912 +0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x41, 0x38, 0x38, 0x4f, 0xc0, 0xc0,
12913 +0x80, 0xa4, 0x41, 0x20, 0x38, 0x49, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0,
12914 +0x81, 0x38, 0x0f, 0x50, 0xc0, 0xc0, 0x81, 0x38, 0x0c, 0x92, 0xb8, 0x99,
12915 +0x84, 0x1f, 0x38, 0x90, 0x78, 0x90, 0x50, 0x10, 0x10, 0x80, 0xa4, 0x35,
12916 +0x88, 0x36, 0xb6, 0x82, 0x36, 0xac, 0x90, 0x80, 0x10, 0x10, 0x90, 0x38,
12917 +0xa4, 0x37, 0x88, 0x36, 0xf7, 0xa4, 0x37, 0x30, 0x36, 0xeb, 0x80, 0x90,
12918 +0x38, 0xa4, 0x36, 0x08, 0x36, 0xcc, 0xa4, 0x35, 0xe0, 0x36, 0xc7, 0x83,
12919 +0x90, 0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0, 0x80, 0xa4, 0x41, 0x08, 0x38,
12920 +0x43, 0xc0, 0xc0, 0x80, 0xa4, 0x40, 0xf0, 0x38, 0x3d, 0xd3, 0x82, 0x40,
12921 +0x50, 0xc0, 0xc0, 0x81, 0x38, 0x09, 0x50, 0xc0, 0xc0, 0x81, 0x38, 0x06,
12922 +0x18, 0x20, 0x01, 0x48, 0x83, 0x90, 0xa8, 0xd3, 0x82, 0xc0, 0xc0, 0xc0,
12923 +0x80, 0xa4, 0x40, 0xd8, 0x38, 0x37, 0xc0, 0xc0, 0x80, 0xa4, 0x40, 0xc0,
12924 +0x38, 0x31, 0xd3, 0x82, 0x40, 0x50, 0xc0, 0xc0, 0x81, 0x38, 0x03, 0x50,
12925 +0xc0, 0xc0, 0x81, 0x38, 0x00, 0xda, 0x06, 0xe0, 0xf9, 0x80, 0x90, 0x60,
12926 +0x90, 0x38, 0xa4, 0x23, 0xe8, 0x34, 0x7b, 0x80, 0x34, 0x78, 0x90, 0x38,
12927 +0xa4, 0x23, 0x90, 0x34, 0x76, 0x80, 0x34, 0x73, 0x90, 0x60, 0x90, 0x38,
12928 +0xa4, 0x23, 0xd0, 0x34, 0x7c, 0x80, 0x34, 0x79, 0x90, 0x38, 0xa4, 0x23,
12929 +0xa8, 0x34, 0x77, 0x80, 0x34, 0x74, 0xc8, 0x40, 0x19, 0x00, 0x91, 0x58,
12930 +0x90, 0x60, 0x82, 0x90, 0x20, 0x36, 0xab, 0xa4, 0x35, 0x48, 0x36, 0xaa,
12931 +0x90, 0xc0, 0x80, 0x90, 0x90, 0x90, 0x48, 0xc9, 0xe1, 0xb9, 0x00, 0x85,
12932 +0x36, 0xe3, 0xc9, 0xe1, 0xb8, 0x40, 0x85, 0x36, 0xe0, 0x80, 0x36, 0xdf,
12933 +0x10, 0x10, 0x81, 0x36, 0xbb, 0x90, 0xa8, 0x10, 0x10, 0x90, 0x28, 0x81,
12934 +0x36, 0xd9, 0x90, 0x38, 0xa4, 0x36, 0xa0, 0x36, 0xd5, 0xa4, 0x36, 0x90,
12935 +0x36, 0xd3, 0x90, 0x70, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x36, 0xb8, 0x36,
12936 +0xd8, 0x80, 0x36, 0xd6, 0x90, 0x60, 0x90, 0x28, 0x24, 0x36, 0xf0, 0xa4,
12937 +0x36, 0xe0, 0x36, 0xdd, 0x80, 0xa4, 0x36, 0xd0, 0x36, 0xdb, 0x80, 0x90,
12938 +0xf8, 0x90, 0x90, 0x90, 0x50, 0x90, 0x28, 0x80, 0x37, 0xf7, 0x80, 0x37,
12939 +0xfe, 0x80, 0xa4, 0x3f, 0xe0, 0x37, 0xfd, 0x90, 0x28, 0x81, 0x37, 0xfb,
12940 +0x80, 0xa4, 0x3f, 0xc8, 0x37, 0xfa, 0x83, 0x37, 0xf8, 0x98, 0xe8, 0x01,
12941 +0xb0, 0x90, 0x88, 0x90, 0x60, 0xa4, 0x35, 0x38, 0x10, 0x10, 0x10, 0x10,
12942 +0x83, 0x33, 0xb7, 0x24, 0x35, 0x30, 0x90, 0x28, 0x24, 0x35, 0x28, 0x24,
12943 +0x35, 0x20, 0x90, 0x88, 0x90, 0x60, 0xa4, 0x35, 0x10, 0x10, 0x10, 0x10,
12944 +0x10, 0x83, 0x33, 0xb6, 0x24, 0x35, 0x08, 0x90, 0x28, 0x24, 0x35, 0x00,
12945 +0x24, 0x34, 0xf8, 0xa8, 0x09, 0x00, 0x0e, 0x20, 0x96, 0x48, 0x95, 0xe8,
12946 +0x93, 0x38, 0x91, 0xa0, 0x90, 0xd0, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x1e,
12947 +0x60, 0x33, 0xcd, 0xa4, 0x1e, 0x50, 0x33, 0xcb, 0x90, 0x38, 0xa4, 0x1e,
12948 +0x40, 0x33, 0xc9, 0x80, 0x33, 0xc7, 0x90, 0x60, 0x90, 0x28, 0x24, 0x1e,
12949 +0x00, 0xa4, 0x1d, 0xf0, 0x33, 0xbf, 0x90, 0x38, 0xa4, 0x1d, 0xe0, 0x33,
12950 +0xbd, 0xa4, 0x1e, 0x28, 0x33, 0xc6, 0x90, 0xe0, 0x90, 0x70, 0x90, 0x38,
12951 +0xa4, 0x1e, 0x18, 0x33, 0xc4, 0xa4, 0x1e, 0x08, 0x33, 0xc2, 0x90, 0x38,
12952 +0xa4, 0x34, 0xb0, 0x36, 0x9c, 0xa4, 0x34, 0x50, 0x36, 0x90, 0x90, 0x70,
12953 +0x90, 0x38, 0xa4, 0x31, 0x90, 0x36, 0x3e, 0xa4, 0x31, 0x60, 0x36, 0x38,
12954 +0x10, 0x10, 0xa4, 0x1d, 0xd0, 0x33, 0xbb, 0x99, 0x60, 0x02, 0x70, 0x90,
12955 +0x90, 0x90, 0x50, 0x90, 0x28, 0x24, 0x1e, 0x90, 0x80, 0x33, 0xda, 0x80,
12956 +0xa4, 0x1e, 0x98, 0x33, 0xd8, 0x90, 0x50, 0x90, 0x28, 0x24, 0x1e, 0xa0,
12957 +0x80, 0x33, 0xdb, 0x90, 0x38, 0xa4, 0x1e, 0xa8, 0x33, 0xd9, 0xa4, 0x1e,
12958 +0x70, 0x33, 0xcf, 0x90, 0xe0, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x33, 0xe8,
12959 +0x36, 0x85, 0xa4, 0x33, 0x48, 0x36, 0x72, 0x90, 0x38, 0xa4, 0x32, 0xe0,
12960 +0x36, 0x63, 0xa4, 0x32, 0x50, 0x36, 0x52, 0x81, 0xa4, 0x1e, 0x80, 0x33,
12961 +0xd1, 0xe4, 0xa1, 0xfc, 0x40, 0x37, 0xf3, 0x18, 0x24, 0x1d, 0xc8, 0xe4,
12962 +0xe1, 0xfa, 0xc0, 0x37, 0xed, 0x92, 0x40, 0x91, 0x08, 0x10, 0x10, 0x90,
12963 +0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x34, 0xa8, 0x36, 0x9b, 0xa4, 0x34,
12964 +0x48, 0x36, 0x8f, 0x80, 0x90, 0x38, 0xa4, 0x31, 0x88, 0x36, 0x3d, 0xa4,
12965 +0x31, 0x58, 0x36, 0x37, 0x18, 0x20, 0x00, 0xf8, 0x80, 0x90, 0x70, 0x90,
12966 +0x38, 0xa4, 0x33, 0xd8, 0x36, 0x84, 0xa4, 0x33, 0x40, 0x36, 0x70, 0x90,
12967 +0x38, 0xa4, 0x32, 0xd0, 0x36, 0x62, 0xa4, 0x32, 0x48, 0x36, 0x50, 0xe4,
12968 +0xa1, 0xf9, 0x40, 0x37, 0xe7, 0x18, 0x24, 0x1d, 0xc0, 0xe4, 0xe1, 0xf7,
12969 +0xc0, 0x37, 0xe1, 0x92, 0x90, 0x92, 0x40, 0x91, 0x08, 0x10, 0x10, 0x90,
12970 +0x80, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x34, 0xa0, 0x36, 0x9a, 0xa4, 0x34,
12971 +0x40, 0x36, 0x8e, 0x80, 0x90, 0x38, 0xa4, 0x31, 0x80, 0x36, 0x3c, 0xa4,
12972 +0x31, 0x50, 0x36, 0x36, 0x18, 0x20, 0x00, 0xf8, 0x80, 0x90, 0x70, 0x90,
12973 +0x38, 0xa4, 0x33, 0xc8, 0x36, 0x83, 0xa4, 0x33, 0x38, 0x36, 0x6e, 0x90,
12974 +0x38, 0xa4, 0x32, 0xc0, 0x36, 0x61, 0xa4, 0x32, 0x40, 0x36, 0x4e, 0xe4,
12975 +0xa1, 0xfc, 0x80, 0x37, 0xf5, 0x10, 0x10, 0xe4, 0xe1, 0xfb, 0x00, 0x37,
12976 +0xef, 0x92, 0x50, 0x99, 0x1c, 0x1e, 0xb0, 0x10, 0x10, 0x90, 0x80, 0x10,
12977 +0x10, 0x90, 0x38, 0xa4, 0x34, 0x98, 0x36, 0x99, 0xa4, 0x34, 0x38, 0x36,
12978 +0x8d, 0x80, 0x90, 0x38, 0xa4, 0x31, 0x78, 0x36, 0x3b, 0xa4, 0x31, 0x48,
12979 +0x36, 0x35, 0x18, 0x20, 0x00, 0xf8, 0x80, 0x90, 0x70, 0x90, 0x38, 0xa4,
12980 +0x33, 0xb8, 0x36, 0x82, 0xa4, 0x33, 0x30, 0x36, 0x6c, 0x90, 0x38, 0xa4,
12981 +0x32, 0xb0, 0x36, 0x60, 0xa4, 0x32, 0x38, 0x36, 0x4c, 0xe4, 0xa1, 0xf9,
12982 +0x80, 0x37, 0xe9, 0x10, 0x10, 0xe4, 0xe1, 0xf8, 0x00, 0x37, 0xe3, 0xc0,
12983 +0x40, 0x80, 0x10, 0x10, 0x81, 0x90, 0x90, 0x90, 0x48, 0xc9, 0xe1, 0x90,
12984 +0x80, 0x85, 0x36, 0x46, 0xc9, 0xe1, 0x91, 0x00, 0x85, 0x36, 0x43, 0x80,
12985 +0x36, 0x41, 0x80, 0xd8, 0x47, 0x80, 0x0d, 0xc0, 0xc0, 0x80, 0x10, 0x10,
12986 +0x82, 0x90, 0x58, 0xd5, 0x81, 0x80, 0x80, 0x37, 0xdd, 0x80, 0x37, 0xdb,
12987 +0xd5, 0x81, 0x80, 0x80, 0x37, 0xd9, 0x80, 0x37, 0xd7, 0xc0, 0x80, 0x10,
12988 +0x10, 0x82, 0x90, 0x58, 0xd5, 0x81, 0x80, 0x80, 0x37, 0xde, 0x80, 0x37,
12989 +0xdc, 0xd5, 0x81, 0x80, 0x80, 0x37, 0xda, 0x80, 0x37, 0xd8, 0xc0, 0x80,
12990 +0x83, 0xa4, 0x3e, 0xa8, 0x37, 0xd6, 0xa0, 0x57, 0xc0, 0xa0, 0x41, 0xe0,
12991 +0xa8, 0x1e, 0xb0, 0x34, 0x88, 0xa0, 0x12, 0x38, 0xa0, 0x0b, 0x48, 0x96,
12992 +0x00, 0x9a, 0xf0, 0x05, 0xc0, 0x91, 0x70, 0x90, 0xb8, 0x90, 0x70, 0x90,
12993 +0x38, 0xa4, 0x15, 0x58, 0x33, 0xb5, 0xa4, 0x15, 0x78, 0x33, 0xb4, 0x10,
12994 +0x10, 0xa4, 0x15, 0x68, 0x33, 0xb3, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x14,
12995 +0xf8, 0x33, 0x9a, 0xa4, 0x15, 0x18, 0x33, 0x99, 0x10, 0x10, 0xa4, 0x15,
12996 +0x08, 0x33, 0x98, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x14, 0x98,
12997 +0x33, 0x7f, 0xa4, 0x14, 0xb8, 0x33, 0x7e, 0x10, 0x10, 0xa4, 0x14, 0xa8,
12998 +0x33, 0x7d, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x14, 0x38, 0x33, 0x63, 0xa4,
12999 +0x14, 0x58, 0x33, 0x62, 0x10, 0x10, 0xa4, 0x14, 0x48, 0x33, 0x61, 0x91,
13000 +0x70, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x15, 0x28, 0x33, 0xb0,
13001 +0xa4, 0x15, 0x48, 0x33, 0xb2, 0x10, 0x10, 0xa4, 0x15, 0x38, 0x33, 0xb1,
13002 +0x90, 0x70, 0x90, 0x38, 0xa4, 0x14, 0xc8, 0x33, 0x95, 0xa4, 0x14, 0xe8,
13003 +0x33, 0x97, 0x10, 0x10, 0xa4, 0x14, 0xd8, 0x33, 0x96, 0x90, 0xb8, 0x90,
13004 +0x70, 0x90, 0x38, 0xa4, 0x14, 0x68, 0x33, 0x7a, 0xa4, 0x14, 0x88, 0x33,
13005 +0x7c, 0x10, 0x10, 0xa4, 0x14, 0x78, 0x33, 0x7b, 0x90, 0x70, 0x90, 0x38,
13006 +0xa4, 0x14, 0x08, 0x33, 0x5e, 0xa4, 0x14, 0x28, 0x33, 0x60, 0x10, 0x10,
13007 +0xa4, 0x14, 0x18, 0x33, 0x5f, 0xe4, 0xe1, 0x83, 0x40, 0x36, 0x21, 0x9a,
13008 +0xf0, 0x05, 0x00, 0x91, 0x70, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4,
13009 +0x13, 0xa0, 0x33, 0xad, 0xa4, 0x13, 0x98, 0x33, 0xaf, 0x10, 0x10, 0xa4,
13010 +0x13, 0x90, 0x33, 0xae, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x88, 0x33,
13011 +0x92, 0xa4, 0x13, 0x80, 0x33, 0x94, 0x10, 0x10, 0xa4, 0x13, 0x78, 0x33,
13012 +0x93, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x70, 0x33, 0x77,
13013 +0xa4, 0x13, 0x68, 0x33, 0x79, 0x10, 0x10, 0xa4, 0x13, 0x60, 0x33, 0x78,
13014 +0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x58, 0x33, 0x5b, 0xa4, 0x13, 0x50,
13015 +0x33, 0x5d, 0x10, 0x10, 0xa4, 0x13, 0x48, 0x33, 0x5c, 0x91, 0x10, 0x90,
13016 +0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0xaa, 0x80, 0x33, 0xac, 0x10,
13017 +0x10, 0x80, 0x33, 0xab, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x8f, 0x80,
13018 +0x33, 0x91, 0x10, 0x10, 0x80, 0x33, 0x90, 0x90, 0x88, 0x90, 0x50, 0x90,
13019 +0x28, 0x80, 0x33, 0x74, 0x80, 0x33, 0x76, 0x10, 0x10, 0x80, 0x33, 0x75,
13020 +0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x58, 0x80, 0x33, 0x5a, 0x10, 0x10,
13021 +0x80, 0x33, 0x59, 0xe4, 0xe1, 0x5e, 0x40, 0x35, 0xa1, 0x95, 0x40, 0x9a,
13022 +0x90, 0x05, 0x00, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80,
13023 +0x33, 0xa7, 0x80, 0x33, 0xa9, 0x10, 0x10, 0x80, 0x33, 0xa8, 0x90, 0x50,
13024 +0x90, 0x28, 0x80, 0x33, 0x8c, 0x80, 0x33, 0x8e, 0x10, 0x10, 0x80, 0x33,
13025 +0x8d, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x30, 0x33, 0x71,
13026 +0xa4, 0x13, 0x40, 0x33, 0x73, 0x10, 0x10, 0xa4, 0x13, 0x38, 0x33, 0x72,
13027 +0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0x00, 0x33, 0x55, 0xa4, 0x13, 0x10,
13028 +0x33, 0x57, 0x10, 0x10, 0xa4, 0x13, 0x08, 0x33, 0x56, 0x91, 0x10, 0x90,
13029 +0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0xa4, 0x80, 0x33, 0xa6, 0x10,
13030 +0x10, 0x80, 0x33, 0xa5, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x89, 0x80,
13031 +0x33, 0x8b, 0x10, 0x10, 0x80, 0x33, 0x8a, 0x90, 0xb8, 0x90, 0x70, 0x90,
13032 +0x38, 0xa4, 0x13, 0x18, 0x33, 0x6e, 0xa4, 0x13, 0x28, 0x33, 0x70, 0x10,
13033 +0x10, 0xa4, 0x13, 0x20, 0x33, 0x6f, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x12,
13034 +0xe8, 0x33, 0x52, 0xa4, 0x12, 0xf8, 0x33, 0x54, 0x10, 0x10, 0xa4, 0x12,
13035 +0xf0, 0x33, 0x53, 0xe4, 0xe1, 0x82, 0x40, 0x36, 0x1d, 0x98, 0xb8, 0x01,
13036 +0x68, 0x10, 0x10, 0x10, 0x10, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x4f,
13037 +0x80, 0x33, 0x51, 0x10, 0x10, 0x80, 0x33, 0x50, 0x90, 0x60, 0x90, 0x30,
13038 +0x60, 0xa0, 0x97, 0x00, 0x60, 0xa0, 0x96, 0xc0, 0x90, 0x30, 0x60, 0xa0,
13039 +0x96, 0x80, 0x60, 0xa0, 0x96, 0x40, 0xe4, 0xe1, 0x5c, 0x40, 0x35, 0x99,
13040 +0xa0, 0x08, 0x08, 0x94, 0xe0, 0x9a, 0x60, 0x04, 0xa0, 0x91, 0x40, 0x90,
13041 +0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0xd8, 0x33, 0x9e, 0xa4, 0x13,
13042 +0xf8, 0x33, 0xa3, 0x10, 0x10, 0xa4, 0x13, 0xe8, 0x33, 0xa2, 0x90, 0x50,
13043 +0x90, 0x28, 0x80, 0x33, 0x83, 0x80, 0x33, 0x88, 0x10, 0x10, 0x80, 0x33,
13044 +0x87, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x68, 0x80, 0x33,
13045 +0x6d, 0x10, 0x10, 0x80, 0x33, 0x6c, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33,
13046 +0x49, 0x80, 0x33, 0x4e, 0x10, 0x10, 0x80, 0x33, 0x4d, 0x91, 0x40, 0x90,
13047 +0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x13, 0xa8, 0x33, 0x9b, 0xa4, 0x13,
13048 +0xc8, 0x33, 0x9d, 0x10, 0x10, 0xa4, 0x13, 0xb8, 0x33, 0x9c, 0x90, 0x50,
13049 +0x90, 0x28, 0x80, 0x33, 0x80, 0x80, 0x33, 0x82, 0x10, 0x10, 0x80, 0x33,
13050 +0x81, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x65, 0x80, 0x33,
13051 +0x67, 0x10, 0x10, 0x80, 0x33, 0x66, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33,
13052 +0x46, 0x80, 0x33, 0x48, 0x10, 0x10, 0x80, 0x33, 0x47, 0xe4, 0xe1, 0x81,
13053 +0x40, 0x36, 0x19, 0x9a, 0x60, 0x02, 0xe0, 0x91, 0x40, 0x90, 0xb8, 0x90,
13054 +0x70, 0x90, 0x38, 0xa4, 0x1a, 0x20, 0x33, 0x9f, 0xa4, 0x1a, 0x10, 0x33,
13055 +0xa1, 0x10, 0x10, 0xa4, 0x1a, 0x00, 0x33, 0xa0, 0x90, 0x50, 0x90, 0x28,
13056 +0x80, 0x33, 0x84, 0x80, 0x33, 0x86, 0x10, 0x10, 0x80, 0x33, 0x85, 0x90,
13057 +0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x69, 0x80, 0x33, 0x6b, 0x10,
13058 +0x10, 0x80, 0x33, 0x6a, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x4a, 0x80,
13059 +0x33, 0x4c, 0x10, 0x10, 0x80, 0x33, 0x4b, 0x81, 0x90, 0x50, 0x90, 0x28,
13060 +0x24, 0x19, 0xd0, 0x24, 0x19, 0xf0, 0x10, 0x10, 0x24, 0x19, 0xe0, 0xe4,
13061 +0xe1, 0x5a, 0x40, 0x35, 0x91, 0x93, 0x90, 0x99, 0xb8, 0x03, 0x50, 0x90,
13062 +0xe8, 0x90, 0x88, 0x90, 0x40, 0x80, 0xa4, 0x15, 0xb8, 0x32, 0xca, 0x10,
13063 +0x10, 0xa4, 0x15, 0xa8, 0x32, 0xc9, 0x90, 0x28, 0x81, 0x32, 0xc6, 0x10,
13064 +0x10, 0x80, 0x32, 0xc5, 0x90, 0x60, 0x90, 0x28, 0x81, 0x32, 0xc2, 0x10,
13065 +0x10, 0x80, 0x32, 0xc1, 0x90, 0x28, 0x81, 0x32, 0xbe, 0x10, 0x10, 0x80,
13066 +0x32, 0xbd, 0x90, 0xe8, 0x90, 0x88, 0x90, 0x40, 0x80, 0xa4, 0x15, 0x88,
13067 +0x32, 0xc7, 0x10, 0x10, 0xa4, 0x15, 0x98, 0x32, 0xc8, 0x90, 0x28, 0x81,
13068 +0x32, 0xc3, 0x10, 0x10, 0x80, 0x32, 0xc4, 0x90, 0x60, 0x90, 0x28, 0x81,
13069 +0x32, 0xbf, 0x10, 0x10, 0x80, 0x32, 0xc0, 0x90, 0x28, 0x81, 0x32, 0xbb,
13070 +0x10, 0x10, 0x80, 0x32, 0xbc, 0xe4, 0xe1, 0x80, 0x40, 0x36, 0x15, 0x88,
13071 +0x00, 0x88, 0x10, 0x10, 0x10, 0x10, 0x90, 0x28, 0x81, 0x32, 0xb9, 0x10,
13072 +0x10, 0x80, 0x32, 0xba, 0xe4, 0xe1, 0x58, 0x40, 0x35, 0x89, 0xa0, 0x0e,
13073 +0x80, 0xa0, 0x09, 0x08, 0x94, 0x80, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x10,
13074 +0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x39, 0x80, 0x33, 0x38,
13075 +0x10, 0x10, 0x80, 0x33, 0x37, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x1e,
13076 +0x80, 0x33, 0x1d, 0x10, 0x10, 0x80, 0x33, 0x1c, 0x90, 0x88, 0x90, 0x50,
13077 +0x90, 0x28, 0x80, 0x33, 0x03, 0x80, 0x33, 0x02, 0x10, 0x10, 0x80, 0x33,
13078 +0x01, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xe8, 0x80, 0x32, 0xe7, 0x10,
13079 +0x10, 0x80, 0x32, 0xe6, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28,
13080 +0x80, 0x33, 0x34, 0x80, 0x33, 0x36, 0x10, 0x10, 0x80, 0x33, 0x35, 0x90,
13081 +0x50, 0x90, 0x28, 0x80, 0x33, 0x19, 0x80, 0x33, 0x1b, 0x10, 0x10, 0x80,
13082 +0x33, 0x1a, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xfe, 0x80,
13083 +0x33, 0x00, 0x10, 0x10, 0x80, 0x32, 0xff, 0x90, 0x50, 0x90, 0x28, 0x80,
13084 +0x32, 0xe3, 0x80, 0x32, 0xe5, 0x10, 0x10, 0x80, 0x32, 0xe4, 0xe4, 0xe1,
13085 +0x72, 0x40, 0x35, 0xf1, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x10, 0x90, 0x88,
13086 +0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x31, 0x80, 0x33, 0x33, 0x10, 0x10,
13087 +0x80, 0x33, 0x32, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x16, 0x80, 0x33,
13088 +0x18, 0x10, 0x10, 0x80, 0x33, 0x17, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28,
13089 +0x80, 0x32, 0xfb, 0x80, 0x32, 0xfd, 0x10, 0x10, 0x80, 0x32, 0xfc, 0x90,
13090 +0x50, 0x90, 0x28, 0x80, 0x32, 0xe0, 0x80, 0x32, 0xe2, 0x10, 0x10, 0x80,
13091 +0x32, 0xe1, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33,
13092 +0x2e, 0x80, 0x33, 0x30, 0x10, 0x10, 0x80, 0x33, 0x2f, 0x90, 0x50, 0x90,
13093 +0x28, 0x80, 0x33, 0x13, 0x80, 0x33, 0x15, 0x10, 0x10, 0x80, 0x33, 0x14,
13094 +0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xf8, 0x80, 0x32, 0xfa,
13095 +0x10, 0x10, 0x80, 0x32, 0xf9, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xdd,
13096 +0x80, 0x32, 0xdf, 0x10, 0x10, 0x80, 0x32, 0xde, 0xe4, 0xe1, 0x51, 0x40,
13097 +0x35, 0x59, 0x94, 0x80, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x10, 0x90, 0x88,
13098 +0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x2b, 0x80, 0x33, 0x2d, 0x10, 0x10,
13099 +0x80, 0x33, 0x2c, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x10, 0x80, 0x33,
13100 +0x12, 0x10, 0x10, 0x80, 0x33, 0x11, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28,
13101 +0x80, 0x32, 0xf5, 0x80, 0x32, 0xf7, 0x10, 0x10, 0x80, 0x32, 0xf6, 0x90,
13102 +0x50, 0x90, 0x28, 0x80, 0x32, 0xda, 0x80, 0x32, 0xdc, 0x10, 0x10, 0x80,
13103 +0x32, 0xdb, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33,
13104 +0x28, 0x80, 0x33, 0x2a, 0x10, 0x10, 0x80, 0x33, 0x29, 0x90, 0x50, 0x90,
13105 +0x28, 0x80, 0x33, 0x0d, 0x80, 0x33, 0x0f, 0x10, 0x10, 0x80, 0x33, 0x0e,
13106 +0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xf2, 0x80, 0x32, 0xf4,
13107 +0x10, 0x10, 0x80, 0x32, 0xf3, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xd7,
13108 +0x80, 0x32, 0xd9, 0x10, 0x10, 0x80, 0x32, 0xd8, 0xe4, 0xe1, 0x70, 0x40,
13109 +0x35, 0xe9, 0x88, 0x00, 0xb0, 0x10, 0x10, 0x10, 0x10, 0x90, 0x50, 0x90,
13110 +0x28, 0x80, 0x32, 0xd4, 0x80, 0x32, 0xd6, 0x10, 0x10, 0x80, 0x32, 0xd5,
13111 +0xe4, 0xe1, 0x50, 0x40, 0x35, 0x55, 0x96, 0xe8, 0x94, 0x80, 0x9a, 0x30,
13112 +0x04, 0x40, 0x91, 0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33,
13113 +0x22, 0x80, 0x33, 0x27, 0x10, 0x10, 0x80, 0x33, 0x26, 0x90, 0x50, 0x90,
13114 +0x28, 0x80, 0x33, 0x07, 0x80, 0x33, 0x0c, 0x10, 0x10, 0x80, 0x33, 0x0b,
13115 +0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xec, 0x80, 0x32, 0xf1,
13116 +0x10, 0x10, 0x80, 0x32, 0xf0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xce,
13117 +0x80, 0x32, 0xd3, 0x10, 0x10, 0x80, 0x32, 0xd2, 0x91, 0x10, 0x90, 0x88,
13118 +0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x1f, 0x80, 0x33, 0x21, 0x10, 0x10,
13119 +0x80, 0x33, 0x20, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x04, 0x80, 0x33,
13120 +0x06, 0x10, 0x10, 0x80, 0x33, 0x05, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28,
13121 +0x80, 0x32, 0xe9, 0x80, 0x32, 0xeb, 0x10, 0x10, 0x80, 0x32, 0xea, 0x90,
13122 +0x50, 0x90, 0x28, 0x80, 0x32, 0xcb, 0x80, 0x32, 0xcd, 0x10, 0x10, 0x80,
13123 +0x32, 0xcc, 0xe4, 0xe1, 0x6e, 0x40, 0x35, 0xe1, 0x88, 0x02, 0x28, 0x91,
13124 +0x10, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0x23, 0x80, 0x33,
13125 +0x25, 0x10, 0x10, 0x80, 0x33, 0x24, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33,
13126 +0x08, 0x80, 0x33, 0x0a, 0x10, 0x10, 0x80, 0x33, 0x09, 0x90, 0x88, 0x90,
13127 +0x50, 0x90, 0x28, 0x80, 0x32, 0xed, 0x80, 0x32, 0xef, 0x10, 0x10, 0x80,
13128 +0x32, 0xee, 0x90, 0x50, 0x90, 0x28, 0x80, 0x32, 0xcf, 0x80, 0x32, 0xd1,
13129 +0x10, 0x10, 0x80, 0x32, 0xd0, 0xe4, 0xe1, 0x4f, 0x40, 0x35, 0x51, 0x90,
13130 +0x40, 0xe5, 0x21, 0x6c, 0x40, 0x35, 0xd9, 0xe5, 0x21, 0x4e, 0x40, 0x35,
13131 +0x4d, 0x9e, 0xb4, 0x22, 0xe8, 0x93, 0x70, 0x91, 0xd8, 0xd5, 0x07, 0x80,
13132 +0xd0, 0xc4, 0x40, 0x90, 0x48, 0x80, 0x8c, 0x3e, 0x38, 0x84, 0x37, 0xd1,
13133 +0xa4, 0x3c, 0x18, 0x37, 0x9b, 0x90, 0x28, 0x24, 0x3b, 0x58, 0xa4, 0x39,
13134 +0xd8, 0x37, 0x53, 0xd0, 0xc4, 0x40, 0x90, 0x48, 0x80, 0x8c, 0x3e, 0x18,
13135 +0x84, 0x37, 0xcf, 0xa4, 0x3c, 0x08, 0x37, 0x99, 0x90, 0x28, 0x24, 0x3b,
13136 +0x48, 0xa4, 0x39, 0xc8, 0x37, 0x51, 0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40,
13137 +0x90, 0x28, 0x80, 0x37, 0xbb, 0xa4, 0x3b, 0xe8, 0x37, 0x95, 0x90, 0x28,
13138 +0x24, 0x3b, 0x28, 0xa4, 0x39, 0xa8, 0x37, 0x4d, 0xd0, 0xc3, 0x40, 0x90,
13139 +0x28, 0x80, 0x37, 0xb7, 0xa4, 0x3b, 0xd8, 0x37, 0x93, 0x90, 0x28, 0x24,
13140 +0x3b, 0x18, 0xa4, 0x39, 0x98, 0x37, 0x4b, 0x91, 0x98, 0xd5, 0x06, 0x80,
13141 +0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x37, 0xaf, 0xa4, 0x3b, 0xb8, 0x37,
13142 +0x8f, 0x90, 0x28, 0x24, 0x3a, 0xf8, 0xa4, 0x39, 0x78, 0x37, 0x47, 0xd0,
13143 +0xc3, 0x40, 0x90, 0x28, 0x80, 0x37, 0xab, 0xa4, 0x3b, 0xa8, 0x37, 0x8d,
13144 +0x90, 0x28, 0x24, 0x3a, 0xe8, 0xa4, 0x39, 0x68, 0x37, 0x45, 0xd5, 0x06,
13145 +0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x37, 0xa3, 0xa4, 0x3b, 0x88,
13146 +0x37, 0x89, 0x90, 0x28, 0x24, 0x3a, 0xc8, 0xa4, 0x39, 0x48, 0x37, 0x41,
13147 +0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x37, 0x9f, 0xa4, 0x3b, 0x78, 0x37,
13148 +0x87, 0x90, 0x28, 0x24, 0x3a, 0xb8, 0xa4, 0x39, 0x38, 0x37, 0x3f, 0x93,
13149 +0x70, 0x91, 0xd8, 0xd5, 0x07, 0x80, 0xd0, 0xc4, 0x40, 0x90, 0x48, 0x80,
13150 +0x8c, 0x3e, 0x58, 0x84, 0x37, 0xd3, 0xa4, 0x3c, 0x28, 0x37, 0x9d, 0x90,
13151 +0x28, 0x24, 0x3b, 0x68, 0xa4, 0x39, 0xe8, 0x37, 0x55, 0xd0, 0xc4, 0x40,
13152 +0x90, 0x48, 0x80, 0x8c, 0x3e, 0x28, 0x84, 0x37, 0xd0, 0xa4, 0x3c, 0x10,
13153 +0x37, 0x9a, 0x90, 0x28, 0x24, 0x3b, 0x50, 0xa4, 0x39, 0xd0, 0x37, 0x52,
13154 +0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x37, 0xbf, 0xa4,
13155 +0x3b, 0xf8, 0x37, 0x97, 0x90, 0x28, 0x24, 0x3b, 0x38, 0xa4, 0x39, 0xb8,
13156 +0x37, 0x4f, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x37, 0xb9, 0xa4, 0x3b,
13157 +0xe0, 0x37, 0x94, 0x90, 0x28, 0x24, 0x3b, 0x20, 0xa4, 0x39, 0xa0, 0x37,
13158 +0x4c, 0x91, 0x98, 0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80,
13159 +0x37, 0xb3, 0xa4, 0x3b, 0xc8, 0x37, 0x91, 0x90, 0x28, 0x24, 0x3b, 0x08,
13160 +0xa4, 0x39, 0x88, 0x37, 0x49, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80, 0x37,
13161 +0xad, 0xa4, 0x3b, 0xb0, 0x37, 0x8e, 0x90, 0x28, 0x24, 0x3a, 0xf0, 0xa4,
13162 +0x39, 0x70, 0x37, 0x46, 0xd5, 0x06, 0x80, 0xd0, 0xc3, 0x40, 0x90, 0x28,
13163 +0x80, 0x37, 0xa7, 0xa4, 0x3b, 0x98, 0x37, 0x8b, 0x90, 0x28, 0x24, 0x3a,
13164 +0xd8, 0xa4, 0x39, 0x58, 0x37, 0x43, 0xd0, 0xc3, 0x40, 0x90, 0x28, 0x80,
13165 +0x37, 0xa1, 0xa4, 0x3b, 0x80, 0x37, 0x88, 0x90, 0x28, 0x24, 0x3a, 0xc0,
13166 +0xa4, 0x39, 0x40, 0x37, 0x40, 0x99, 0x08, 0x01, 0xf0, 0x81, 0x90, 0x78,
13167 +0xd4, 0xc2, 0x00, 0xa4, 0x22, 0x80, 0x34, 0x40, 0xa4, 0x21, 0x80, 0x34,
13168 +0x20, 0xd4, 0xc2, 0x00, 0xa4, 0x21, 0xa0, 0x34, 0x44, 0xa4, 0x20, 0xa0,
13169 +0x34, 0x24, 0x81, 0x90, 0x78, 0xd4, 0xc2, 0x00, 0xa4, 0x21, 0xe0, 0x34,
13170 +0x4c, 0xa4, 0x20, 0xe0, 0x34, 0x2c, 0xd4, 0xc2, 0x00, 0xa4, 0x21, 0xc0,
13171 +0x34, 0x48, 0xa4, 0x20, 0xc0, 0x34, 0x28, 0xa8, 0x0b, 0x18, 0x13, 0xa8,
13172 +0x96, 0x80, 0x93, 0x40, 0x99, 0x90, 0x03, 0x00, 0x90, 0xc0, 0x90, 0x60,
13173 +0x90, 0x38, 0xa4, 0x12, 0xb8, 0x32, 0x58, 0x24, 0x12, 0xb0, 0x90, 0x38,
13174 +0xa4, 0x11, 0xe0, 0x32, 0x3d, 0x24, 0x11, 0xd8, 0x90, 0x60, 0x90, 0x38,
13175 +0xa4, 0x11, 0x08, 0x32, 0x22, 0x24, 0x11, 0x00, 0x90, 0x38, 0xa4, 0x10,
13176 +0x30, 0x32, 0x07, 0x24, 0x10, 0x28, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38,
13177 +0xa4, 0x12, 0xa8, 0x32, 0x53, 0x24, 0x12, 0xa0, 0x90, 0x38, 0xa4, 0x11,
13178 +0xd0, 0x32, 0x38, 0x24, 0x11, 0xc8, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10,
13179 +0xf8, 0x32, 0x1d, 0x24, 0x10, 0xf0, 0x90, 0x38, 0xa4, 0x10, 0x20, 0x32,
13180 +0x02, 0x24, 0x10, 0x18, 0xe4, 0xe1, 0xc8, 0x40, 0x37, 0x23, 0x99, 0x90,
13181 +0x03, 0x00, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x90, 0x32,
13182 +0x50, 0x24, 0x12, 0x88, 0x90, 0x38, 0xa4, 0x11, 0xb8, 0x32, 0x35, 0x24,
13183 +0x11, 0xb0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0xe0, 0x32, 0x1a, 0x24,
13184 +0x10, 0xd8, 0x90, 0x38, 0xa4, 0x10, 0x08, 0x31, 0xff, 0x24, 0x10, 0x00,
13185 +0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x78, 0x32, 0x4d, 0x24,
13186 +0x12, 0x70, 0x90, 0x38, 0xa4, 0x11, 0xa0, 0x32, 0x32, 0x24, 0x11, 0x98,
13187 +0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0xc8, 0x32, 0x17, 0x24, 0x10, 0xc0,
13188 +0x90, 0x38, 0xa4, 0x0f, 0xf0, 0x31, 0xfc, 0x24, 0x0f, 0xe8, 0xe4, 0xe1,
13189 +0xc6, 0xc0, 0x37, 0x1d, 0x93, 0x78, 0x99, 0x90, 0x03, 0x00, 0x90, 0xc0,
13190 +0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x60, 0x32, 0x4a, 0x24, 0x12, 0x58,
13191 +0x90, 0x38, 0xa4, 0x11, 0x88, 0x32, 0x2f, 0x24, 0x11, 0x80, 0x90, 0x60,
13192 +0x90, 0x38, 0xa4, 0x10, 0xb0, 0x32, 0x14, 0x24, 0x10, 0xa8, 0x90, 0x38,
13193 +0xa4, 0x0f, 0xd8, 0x31, 0xf9, 0x24, 0x0f, 0xd0, 0x90, 0xc0, 0x90, 0x60,
13194 +0x90, 0x38, 0xa4, 0x12, 0x48, 0x32, 0x47, 0x24, 0x12, 0x40, 0x90, 0x38,
13195 +0xa4, 0x11, 0x70, 0x32, 0x2c, 0x24, 0x11, 0x68, 0x90, 0x60, 0x90, 0x38,
13196 +0xa4, 0x10, 0x98, 0x32, 0x11, 0x24, 0x10, 0x90, 0x90, 0x38, 0xa4, 0x0f,
13197 +0xc0, 0x31, 0xf6, 0x24, 0x0f, 0xb8, 0xec, 0xa1, 0x16, 0x00, 0x02, 0x00,
13198 +0x34, 0x5a, 0xa4, 0x38, 0xa8, 0x37, 0x17, 0x88, 0x00, 0x88, 0x10, 0x10,
13199 +0x10, 0x10, 0x90, 0x38, 0xa4, 0x0f, 0xa8, 0x31, 0xf3, 0x24, 0x0f, 0xa0,
13200 +0xe9, 0x61, 0x15, 0x40, 0x02, 0x00, 0x34, 0x56, 0xe3, 0x61, 0xc3, 0xc0,
13201 +0x37, 0x11, 0x95, 0x08, 0x93, 0x40, 0x99, 0x90, 0x03, 0x00, 0x90, 0xc0,
13202 +0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x30, 0x32, 0x41, 0x24, 0x12, 0x28,
13203 +0x90, 0x38, 0xa4, 0x11, 0x58, 0x32, 0x26, 0x24, 0x11, 0x50, 0x90, 0x60,
13204 +0x90, 0x38, 0xa4, 0x10, 0x80, 0x32, 0x0b, 0x24, 0x10, 0x78, 0x90, 0x38,
13205 +0xa4, 0x0f, 0x90, 0x31, 0xed, 0x24, 0x0f, 0x88, 0x90, 0xc0, 0x90, 0x60,
13206 +0x90, 0x38, 0xa4, 0x12, 0x00, 0x32, 0x3e, 0x24, 0x11, 0xf8, 0x90, 0x38,
13207 +0xa4, 0x11, 0x28, 0x32, 0x23, 0x24, 0x11, 0x20, 0x90, 0x60, 0x90, 0x38,
13208 +0xa4, 0x10, 0x50, 0x32, 0x08, 0x24, 0x10, 0x48, 0x90, 0x38, 0xa4, 0x0f,
13209 +0x60, 0x31, 0xea, 0x24, 0x0f, 0x58, 0xe4, 0xe1, 0xc8, 0x80, 0x37, 0x25,
13210 +0x88, 0x01, 0x88, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x12, 0x20,
13211 +0x32, 0x42, 0x24, 0x12, 0x18, 0x90, 0x38, 0xa4, 0x11, 0x48, 0x32, 0x27,
13212 +0x24, 0x11, 0x40, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x10, 0x70, 0x32, 0x0c,
13213 +0x24, 0x10, 0x68, 0x90, 0x38, 0xa4, 0x0f, 0x80, 0x31, 0xee, 0x24, 0x0f,
13214 +0x78, 0xe4, 0xe1, 0xc7, 0x00, 0x37, 0x1f, 0x92, 0xd0, 0x99, 0x50, 0x02,
13215 +0x80, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0xe9, 0x24, 0x0f,
13216 +0x40, 0x90, 0x28, 0x80, 0x31, 0xe5, 0x24, 0x0f, 0x20, 0x90, 0x50, 0x90,
13217 +0x28, 0x80, 0x31, 0xe1, 0x24, 0x0f, 0x00, 0x90, 0x28, 0x80, 0x31, 0xdd,
13218 +0x24, 0x0e, 0xe0, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0xe6,
13219 +0x24, 0x0f, 0x38, 0x90, 0x28, 0x80, 0x31, 0xe2, 0x24, 0x0f, 0x18, 0x90,
13220 +0x50, 0x90, 0x28, 0x80, 0x31, 0xde, 0x24, 0x0e, 0xf8, 0x90, 0x28, 0x80,
13221 +0x31, 0xda, 0x24, 0x0e, 0xd8, 0xec, 0xe1, 0xc5, 0xa1, 0x17, 0x00, 0x37,
13222 +0x19, 0x88, 0x00, 0x78, 0x10, 0x10, 0x10, 0x10, 0x90, 0x28, 0x80, 0x31,
13223 +0xd8, 0x24, 0x0e, 0xc8, 0xec, 0xe1, 0xc4, 0x21, 0x15, 0x00, 0x37, 0x13,
13224 +0xe5, 0xa1, 0x4d, 0x40, 0x35, 0x31, 0xa0, 0x2a, 0x10, 0xa8, 0x16, 0x60,
13225 +0x29, 0xd8, 0xa0, 0x0c, 0x48, 0xa0, 0x0a, 0xc8, 0x95, 0x60, 0x92, 0xb0,
13226 +0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0xa1, 0x80,
13227 +0x31, 0xa0, 0x10, 0x10, 0x80, 0x31, 0x9f, 0x90, 0x70, 0x90, 0x38, 0xa4,
13228 +0x08, 0x98, 0x31, 0xb3, 0xa4, 0x08, 0x90, 0x31, 0xb2, 0x10, 0x10, 0xa4,
13229 +0x08, 0x88, 0x31, 0xb1, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09,
13230 +0xb8, 0x31, 0xd7, 0xa4, 0x09, 0xb0, 0x31, 0xd6, 0x10, 0x10, 0xa4, 0x09,
13231 +0xa8, 0x31, 0xd5, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, 0x28, 0x31, 0xc5,
13232 +0xa4, 0x09, 0x20, 0x31, 0xc4, 0x10, 0x10, 0xa4, 0x09, 0x18, 0x31, 0xc3,
13233 +0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x9c, 0x80,
13234 +0x31, 0x9e, 0x10, 0x10, 0x80, 0x31, 0x9d, 0x90, 0x70, 0x90, 0x38, 0xa4,
13235 +0x08, 0x70, 0x31, 0xae, 0xa4, 0x08, 0x80, 0x31, 0xb0, 0x10, 0x10, 0xa4,
13236 +0x08, 0x78, 0x31, 0xaf, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09,
13237 +0x90, 0x31, 0xd2, 0xa4, 0x09, 0xa0, 0x31, 0xd4, 0x10, 0x10, 0xa4, 0x09,
13238 +0x98, 0x31, 0xd3, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x09, 0x00, 0x31, 0xc0,
13239 +0xa4, 0x09, 0x10, 0x31, 0xc2, 0x10, 0x10, 0xa4, 0x09, 0x08, 0x31, 0xc1,
13240 +0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31,
13241 +0x99, 0x80, 0x31, 0x9b, 0x10, 0x10, 0x80, 0x31, 0x9a, 0x90, 0x70, 0x90,
13242 +0x38, 0xa4, 0x08, 0x58, 0x31, 0xab, 0xa4, 0x08, 0x68, 0x31, 0xad, 0x10,
13243 +0x10, 0xa4, 0x08, 0x60, 0x31, 0xac, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38,
13244 +0xa4, 0x09, 0x78, 0x31, 0xcf, 0xa4, 0x09, 0x88, 0x31, 0xd1, 0x10, 0x10,
13245 +0xa4, 0x09, 0x80, 0x31, 0xd0, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0xe8,
13246 +0x31, 0xbd, 0xa4, 0x08, 0xf8, 0x31, 0xbf, 0x10, 0x10, 0xa4, 0x08, 0xf0,
13247 +0x31, 0xbe, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80, 0x31,
13248 +0x96, 0x80, 0x31, 0x98, 0x10, 0x10, 0x80, 0x31, 0x97, 0x90, 0x70, 0x90,
13249 +0x38, 0xa4, 0x08, 0x40, 0x31, 0xa8, 0xa4, 0x08, 0x50, 0x31, 0xaa, 0x10,
13250 +0x10, 0xa4, 0x08, 0x48, 0x31, 0xa9, 0x90, 0xb8, 0x90, 0x70, 0x90, 0x38,
13251 +0xa4, 0x09, 0x60, 0x31, 0xcc, 0xa4, 0x09, 0x70, 0x31, 0xce, 0x10, 0x10,
13252 +0xa4, 0x09, 0x68, 0x31, 0xcd, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0xd0,
13253 +0x31, 0xba, 0xa4, 0x08, 0xe0, 0x31, 0xbc, 0x10, 0x10, 0xa4, 0x08, 0xd8,
13254 +0x31, 0xbb, 0x10, 0x10, 0x90, 0xa8, 0x10, 0x10, 0x10, 0x10, 0x90, 0x50,
13255 +0x90, 0x28, 0x80, 0x31, 0x8d, 0x80, 0x31, 0x8f, 0x10, 0x10, 0x80, 0x31,
13256 +0x8e, 0x90, 0x60, 0x90, 0x30, 0x60, 0xa0, 0x2a, 0xc0, 0x60, 0xa0, 0x2a,
13257 +0x80, 0x90, 0x30, 0x60, 0xa0, 0x2a, 0x40, 0x60, 0xa0, 0x2a, 0x00, 0x97,
13258 +0xf0, 0x95, 0x60, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90,
13259 +0x28, 0x80, 0x31, 0x93, 0x80, 0x31, 0x95, 0x10, 0x10, 0x80, 0x31, 0x94,
13260 +0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0x28, 0x31, 0xa5, 0xa4, 0x08, 0x38,
13261 +0x31, 0xa7, 0x10, 0x10, 0xa4, 0x08, 0x30, 0x31, 0xa6, 0x90, 0xb8, 0x90,
13262 +0x70, 0x90, 0x38, 0xa4, 0x09, 0x48, 0x31, 0xc9, 0xa4, 0x09, 0x58, 0x31,
13263 +0xcb, 0x10, 0x10, 0xa4, 0x09, 0x50, 0x31, 0xca, 0x90, 0x70, 0x90, 0x38,
13264 +0xa4, 0x08, 0xb8, 0x31, 0xb7, 0xa4, 0x08, 0xc8, 0x31, 0xb9, 0x10, 0x10,
13265 +0xa4, 0x08, 0xc0, 0x31, 0xb8, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90,
13266 +0x28, 0x80, 0x31, 0x90, 0x80, 0x31, 0x92, 0x10, 0x10, 0x80, 0x31, 0x91,
13267 +0x90, 0x70, 0x90, 0x38, 0xa4, 0x08, 0x10, 0x31, 0xa2, 0xa4, 0x08, 0x20,
13268 +0x31, 0xa4, 0x10, 0x10, 0xa4, 0x08, 0x18, 0x31, 0xa3, 0x90, 0xb8, 0x90,
13269 +0x70, 0x90, 0x38, 0xa4, 0x09, 0x30, 0x31, 0xc6, 0xa4, 0x09, 0x40, 0x31,
13270 +0xc8, 0x10, 0x10, 0xa4, 0x09, 0x38, 0x31, 0xc7, 0x90, 0x70, 0x90, 0x38,
13271 +0xa4, 0x08, 0xa0, 0x31, 0xb4, 0xa4, 0x08, 0xb0, 0x31, 0xb6, 0x10, 0x10,
13272 +0xa4, 0x08, 0xa8, 0x31, 0xb5, 0x10, 0x10, 0x91, 0x40, 0x90, 0xa0, 0x90,
13273 +0x50, 0x90, 0x28, 0x80, 0x30, 0xcb, 0x80, 0x30, 0xca, 0x90, 0x28, 0x80,
13274 +0x30, 0xc9, 0x80, 0x30, 0xc8, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xc4,
13275 +0x80, 0x30, 0xc7, 0x90, 0x28, 0x80, 0x30, 0xc6, 0x80, 0x30, 0xc5, 0x90,
13276 +0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xbc, 0x80, 0x30, 0xc3, 0x90,
13277 +0x28, 0x80, 0x30, 0xc2, 0x80, 0x30, 0xc1, 0x90, 0x50, 0x90, 0x28, 0x80,
13278 +0x30, 0xbd, 0x80, 0x30, 0xc0, 0x90, 0x28, 0x80, 0x30, 0xbf, 0x80, 0x30,
13279 +0xbe, 0x91, 0x88, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x28, 0x81, 0x31,
13280 +0x3b, 0x10, 0x10, 0x80, 0x31, 0x3a, 0x90, 0x28, 0x81, 0x31, 0x3d, 0x10,
13281 +0x10, 0x80, 0x31, 0x3c, 0x90, 0x60, 0x90, 0x28, 0x81, 0x31, 0x41, 0x10,
13282 +0x10, 0x80, 0x31, 0x40, 0x90, 0x28, 0x81, 0x31, 0x3f, 0x10, 0x10, 0x80,
13283 +0x31, 0x3e, 0x80, 0x10, 0x10, 0x10, 0x10, 0x90, 0x28, 0x81, 0x31, 0x38,
13284 +0x10, 0x10, 0x80, 0x31, 0x39, 0xa0, 0x0b, 0x90, 0xa0, 0x0a, 0xc8, 0x95,
13285 +0x60, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80,
13286 +0x31, 0x56, 0x80, 0x31, 0x55, 0x10, 0x10, 0x80, 0x31, 0x54, 0x90, 0x70,
13287 +0x90, 0x38, 0xa4, 0x06, 0xe8, 0x31, 0x68, 0xa4, 0x06, 0xe0, 0x31, 0x67,
13288 +0x10, 0x10, 0xa4, 0x06, 0xd8, 0x31, 0x66, 0x90, 0xb8, 0x90, 0x70, 0x90,
13289 +0x38, 0xa4, 0x08, 0x08, 0x31, 0x8c, 0xa4, 0x08, 0x00, 0x31, 0x8b, 0x10,
13290 +0x10, 0xa4, 0x07, 0xf8, 0x31, 0x8a, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07,
13291 +0x78, 0x31, 0x7a, 0xa4, 0x07, 0x70, 0x31, 0x79, 0x10, 0x10, 0xa4, 0x07,
13292 +0x68, 0x31, 0x78, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90, 0x28, 0x80,
13293 +0x31, 0x51, 0x80, 0x31, 0x53, 0x10, 0x10, 0x80, 0x31, 0x52, 0x90, 0x70,
13294 +0x90, 0x38, 0xa4, 0x06, 0xc0, 0x31, 0x63, 0xa4, 0x06, 0xd0, 0x31, 0x65,
13295 +0x10, 0x10, 0xa4, 0x06, 0xc8, 0x31, 0x64, 0x90, 0xb8, 0x90, 0x70, 0x90,
13296 +0x38, 0xa4, 0x07, 0xe0, 0x31, 0x87, 0xa4, 0x07, 0xf0, 0x31, 0x89, 0x10,
13297 +0x10, 0xa4, 0x07, 0xe8, 0x31, 0x88, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07,
13298 +0x50, 0x31, 0x75, 0xa4, 0x07, 0x60, 0x31, 0x77, 0x10, 0x10, 0xa4, 0x07,
13299 +0x58, 0x31, 0x76, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90,
13300 +0x28, 0x80, 0x31, 0x4e, 0x80, 0x31, 0x50, 0x10, 0x10, 0x80, 0x31, 0x4f,
13301 +0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0xa8, 0x31, 0x60, 0xa4, 0x06, 0xb8,
13302 +0x31, 0x62, 0x10, 0x10, 0xa4, 0x06, 0xb0, 0x31, 0x61, 0x90, 0xb8, 0x90,
13303 +0x70, 0x90, 0x38, 0xa4, 0x07, 0xc8, 0x31, 0x84, 0xa4, 0x07, 0xd8, 0x31,
13304 +0x86, 0x10, 0x10, 0xa4, 0x07, 0xd0, 0x31, 0x85, 0x90, 0x70, 0x90, 0x38,
13305 +0xa4, 0x07, 0x38, 0x31, 0x72, 0xa4, 0x07, 0x48, 0x31, 0x74, 0x10, 0x10,
13306 +0xa4, 0x07, 0x40, 0x31, 0x73, 0x91, 0x40, 0x90, 0x88, 0x90, 0x50, 0x90,
13307 +0x28, 0x80, 0x31, 0x4b, 0x80, 0x31, 0x4d, 0x10, 0x10, 0x80, 0x31, 0x4c,
13308 +0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0x90, 0x31, 0x5d, 0xa4, 0x06, 0xa0,
13309 +0x31, 0x5f, 0x10, 0x10, 0xa4, 0x06, 0x98, 0x31, 0x5e, 0x90, 0xb8, 0x90,
13310 +0x70, 0x90, 0x38, 0xa4, 0x07, 0xb0, 0x31, 0x81, 0xa4, 0x07, 0xc0, 0x31,
13311 +0x83, 0x10, 0x10, 0xa4, 0x07, 0xb8, 0x31, 0x82, 0x90, 0x70, 0x90, 0x38,
13312 +0xa4, 0x07, 0x20, 0x31, 0x6f, 0xa4, 0x07, 0x30, 0x31, 0x71, 0x10, 0x10,
13313 +0xa4, 0x07, 0x28, 0x31, 0x70, 0x10, 0x10, 0x80, 0x10, 0x10, 0x10, 0x10,
13314 +0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x42, 0x80, 0x31, 0x44, 0x10, 0x10,
13315 +0x80, 0x31, 0x43, 0x80, 0x95, 0x60, 0x92, 0xb0, 0x91, 0x40, 0x90, 0x88,
13316 +0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x48, 0x80, 0x31, 0x4a, 0x10, 0x10,
13317 +0x80, 0x31, 0x49, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0x78, 0x31, 0x5a,
13318 +0xa4, 0x06, 0x88, 0x31, 0x5c, 0x10, 0x10, 0xa4, 0x06, 0x80, 0x31, 0x5b,
13319 +0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0x98, 0x31, 0x7e, 0xa4,
13320 +0x07, 0xa8, 0x31, 0x80, 0x10, 0x10, 0xa4, 0x07, 0xa0, 0x31, 0x7f, 0x90,
13321 +0x70, 0x90, 0x38, 0xa4, 0x07, 0x08, 0x31, 0x6c, 0xa4, 0x07, 0x18, 0x31,
13322 +0x6e, 0x10, 0x10, 0xa4, 0x07, 0x10, 0x31, 0x6d, 0x91, 0x40, 0x90, 0x88,
13323 +0x90, 0x50, 0x90, 0x28, 0x80, 0x31, 0x45, 0x80, 0x31, 0x47, 0x10, 0x10,
13324 +0x80, 0x31, 0x46, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x06, 0x60, 0x31, 0x57,
13325 +0xa4, 0x06, 0x70, 0x31, 0x59, 0x10, 0x10, 0xa4, 0x06, 0x68, 0x31, 0x58,
13326 +0x90, 0xb8, 0x90, 0x70, 0x90, 0x38, 0xa4, 0x07, 0x80, 0x31, 0x7b, 0xa4,
13327 +0x07, 0x90, 0x31, 0x7d, 0x10, 0x10, 0xa4, 0x07, 0x88, 0x31, 0x7c, 0x90,
13328 +0x70, 0x90, 0x38, 0xa4, 0x06, 0xf0, 0x31, 0x69, 0xa4, 0x07, 0x00, 0x31,
13329 +0x6b, 0x10, 0x10, 0xa4, 0x06, 0xf8, 0x31, 0x6a, 0x10, 0x10, 0x91, 0x40,
13330 +0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xbb, 0x80, 0x30, 0xba,
13331 +0x90, 0x28, 0x80, 0x30, 0xb9, 0x80, 0x30, 0xb8, 0x90, 0x50, 0x90, 0x28,
13332 +0x80, 0x30, 0xb4, 0x80, 0x30, 0xb7, 0x90, 0x28, 0x80, 0x30, 0xb6, 0x80,
13333 +0x30, 0xb5, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0xac, 0x80,
13334 +0x30, 0xb3, 0x90, 0x28, 0x80, 0x30, 0xb2, 0x80, 0x30, 0xb1, 0x90, 0x50,
13335 +0x90, 0x28, 0x80, 0x30, 0xad, 0x80, 0x30, 0xb0, 0x90, 0x28, 0x80, 0x30,
13336 +0xaf, 0x80, 0x30, 0xae, 0xc3, 0xc0, 0x30, 0x42, 0x9c, 0xe8, 0x07, 0x60,
13337 +0x91, 0x90, 0x90, 0xf0, 0x10, 0x10, 0x80, 0x88, 0x00, 0x80, 0x90, 0x50,
13338 +0x90, 0x28, 0x80, 0x33, 0xf8, 0x80, 0x33, 0xf9, 0x81, 0x33, 0xef, 0xd0,
13339 +0x41, 0x80, 0x24, 0x20, 0x90, 0x24, 0x20, 0x98, 0x10, 0x10, 0x80, 0x90,
13340 +0x58, 0x80, 0x90, 0x28, 0x24, 0x1f, 0x90, 0x24, 0x1f, 0x98, 0x81, 0x24,
13341 +0x1f, 0x50, 0x92, 0x68, 0x91, 0x00, 0x80, 0x90, 0x90, 0x90, 0x30, 0x80,
13342 +0x24, 0x20, 0x00, 0x90, 0x38, 0xa4, 0x1f, 0xf8, 0x34, 0x06, 0x80, 0x34,
13343 +0x05, 0x80, 0x90, 0x28, 0x80, 0x34, 0x0f, 0xa4, 0x1f, 0xe0, 0x34, 0x0e,
13344 +0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x28, 0x80, 0x34, 0x09, 0xa4, 0x1f,
13345 +0xf0, 0x34, 0x08, 0x90, 0x28, 0x80, 0x34, 0x04, 0xa4, 0x1f, 0xe8, 0x34,
13346 +0x03, 0x90, 0x50, 0x90, 0x28, 0x80, 0x34, 0x0d, 0x80, 0x34, 0x0c, 0x90,
13347 +0x28, 0x24, 0x20, 0x88, 0x24, 0x20, 0x80, 0x90, 0x58, 0x80, 0x10, 0x10,
13348 +0x80, 0x10, 0x10, 0x80, 0x33, 0xfb, 0x80, 0x90, 0x40, 0x10, 0x10, 0x80,
13349 +0x24, 0x1f, 0x60, 0x80, 0x10, 0x10, 0x80, 0x33, 0xfa, 0x91, 0x58, 0x91,
13350 +0x00, 0x90, 0x80, 0x81, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33, 0xf6, 0x80,
13351 +0x33, 0xf7, 0x81, 0x33, 0xee, 0x81, 0x90, 0x50, 0x90, 0x28, 0x80, 0x33,
13352 +0xf4, 0x80, 0x33, 0xf5, 0x81, 0x33, 0xed, 0x83, 0x90, 0x28, 0x24, 0x1f,
13353 +0x80, 0x24, 0x1f, 0x88, 0x90, 0xe8, 0x81, 0x90, 0x88, 0x90, 0x38, 0x10,
13354 +0x10, 0x80, 0x34, 0x07, 0x90, 0x28, 0x80, 0x34, 0x02, 0x80, 0x34, 0x01,
13355 +0x80, 0x90, 0x28, 0x80, 0x34, 0x0b, 0x80, 0x34, 0x0a, 0x82, 0x10, 0x10,
13356 +0x80, 0x24, 0x1f, 0x58, 0x97, 0x10, 0x9e, 0x10, 0x06, 0x98, 0x93, 0x00,
13357 +0x91, 0x80, 0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x80, 0x30,
13358 +0x71, 0x24, 0x03, 0x78, 0x90, 0x38, 0xa4, 0x04, 0x10, 0x30, 0x83, 0x24,
13359 +0x04, 0x08, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x05, 0x30, 0x30, 0xa7, 0x24,
13360 +0x05, 0x28, 0x90, 0x38, 0xa4, 0x04, 0xa0, 0x30, 0x95, 0x24, 0x04, 0x98,
13361 +0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x70, 0x30, 0x6c, 0x24,
13362 +0x03, 0x68, 0x90, 0x38, 0xa4, 0x04, 0x00, 0x30, 0x7e, 0x24, 0x03, 0xf8,
13363 +0x90, 0x60, 0x90, 0x38, 0xa4, 0x05, 0x20, 0x30, 0xa2, 0x24, 0x05, 0x18,
13364 +0x90, 0x38, 0xa4, 0x04, 0x90, 0x30, 0x90, 0x24, 0x04, 0x88, 0x91, 0x80,
13365 +0x90, 0xc0, 0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x58, 0x30, 0x69, 0x24,
13366 +0x03, 0x50, 0x90, 0x38, 0xa4, 0x03, 0xe8, 0x30, 0x7b, 0x24, 0x03, 0xe0,
13367 +0x90, 0x60, 0x90, 0x38, 0xa4, 0x05, 0x08, 0x30, 0x9f, 0x24, 0x05, 0x00,
13368 +0x90, 0x38, 0xa4, 0x04, 0x78, 0x30, 0x8d, 0x24, 0x04, 0x70, 0x90, 0xc0,
13369 +0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x40, 0x30, 0x66, 0x24, 0x03, 0x38,
13370 +0x90, 0x38, 0xa4, 0x03, 0xd0, 0x30, 0x78, 0x24, 0x03, 0xc8, 0x90, 0x60,
13371 +0x90, 0x38, 0xa4, 0x04, 0xf0, 0x30, 0x9c, 0x24, 0x04, 0xe8, 0x90, 0x38,
13372 +0xa4, 0x04, 0x60, 0x30, 0x8a, 0x24, 0x04, 0x58, 0x10, 0x10, 0x80, 0x10,
13373 +0x10, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x02, 0xf8, 0x30, 0x5d, 0x24, 0x02,
13374 +0xf0, 0xd7, 0x42, 0x00, 0xa4, 0x38, 0x58, 0x37, 0x0d, 0xa4, 0x38, 0x38,
13375 +0x37, 0x09, 0x9c, 0xe0, 0x06, 0x90, 0x93, 0x00, 0x91, 0x80, 0x90, 0xc0,
13376 +0x90, 0x60, 0x90, 0x38, 0xa4, 0x03, 0x28, 0x30, 0x63, 0x24, 0x03, 0x20,
13377 +0x90, 0x38, 0xa4, 0x03, 0xb8, 0x30, 0x75, 0x24, 0x03, 0xb0, 0x90, 0x60,
13378 +0x90, 0x38, 0xa4, 0x04, 0xd8, 0x30, 0x99, 0x24, 0x04, 0xd0, 0x90, 0x38,
13379 +0xa4, 0x04, 0x48, 0x30, 0x87, 0x24, 0x04, 0x40, 0x90, 0xc0, 0x90, 0x60,
13380 +0x90, 0x38, 0xa4, 0x03, 0x10, 0x30, 0x60, 0x24, 0x03, 0x08, 0x90, 0x38,
13381 +0xa4, 0x03, 0xa0, 0x30, 0x72, 0x24, 0x03, 0x98, 0x90, 0x60, 0x90, 0x38,
13382 +0xa4, 0x04, 0xc0, 0x30, 0x96, 0x24, 0x04, 0xb8, 0x90, 0x38, 0xa4, 0x04,
13383 +0x30, 0x30, 0x84, 0x24, 0x04, 0x28, 0x10, 0x10, 0x90, 0xe0, 0x90, 0x70,
13384 +0x90, 0x38, 0xa4, 0x02, 0x88, 0x30, 0x52, 0xa4, 0x02, 0x78, 0x30, 0x50,
13385 +0x90, 0x38, 0xa4, 0x02, 0x70, 0x30, 0x4b, 0xa4, 0x02, 0x60, 0x30, 0x4d,
13386 +0x90, 0x70, 0x90, 0x38, 0xa4, 0x02, 0x50, 0x30, 0x43, 0xa4, 0x02, 0x40,
13387 +0x30, 0x49, 0x90, 0x38, 0xa4, 0x02, 0x38, 0x30, 0x44, 0xa4, 0x02, 0x28,
13388 +0x30, 0x46, 0x91, 0x48, 0x80, 0x90, 0xa0, 0x90, 0x50, 0x90, 0x28, 0x80,
13389 +0x30, 0x56, 0x24, 0x02, 0xa8, 0x90, 0x28, 0x80, 0x30, 0x58, 0x24, 0x02,
13390 +0xb8, 0x90, 0x50, 0x90, 0x28, 0x80, 0x30, 0x5c, 0x24, 0x02, 0xd8, 0x90,
13391 +0x28, 0x80, 0x30, 0x5a, 0x24, 0x02, 0xc8, 0x80, 0x10, 0x10, 0x10, 0x10,
13392 +0x90, 0x28, 0x80, 0x30, 0x53, 0x24, 0x02, 0xa0, 0xd7, 0x42, 0x00, 0xa4,
13393 +0x38, 0x60, 0x37, 0x0e, 0xa4, 0x38, 0x40, 0x37, 0x0a, 0xa0, 0x14, 0x68,
13394 +0xa0, 0x10, 0x90, 0xa0, 0x0c, 0x60, 0x9e, 0x88, 0x09, 0xd0, 0x94, 0xf0,
13395 +0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x44, 0x40,
13396 +0x85, 0x35, 0x2d, 0xcb, 0x61, 0x3d, 0x00, 0x85, 0x35, 0x03, 0x9a, 0x00,
13397 +0x03, 0xf8, 0x91, 0x98, 0x80, 0x91, 0x10, 0x90, 0xa0, 0x90, 0x68, 0x90,
13398 +0x20, 0x3a, 0x53, 0xc9, 0xe2, 0x94, 0x40, 0x85, 0x35, 0x2b, 0xa4, 0x52,
13399 +0x78, 0x3a, 0x50, 0x90, 0x38, 0xa4, 0x52, 0x40, 0x3a, 0x49, 0xa4, 0x52,
13400 +0x30, 0x3a, 0x47, 0x90, 0x48, 0x10, 0x10, 0xa4, 0x51, 0xf8, 0x3a, 0x40,
13401 +0x10, 0x10, 0x80, 0x3a, 0x3c, 0x81, 0x10, 0x10, 0x80, 0xa4, 0x51, 0xc8,
13402 +0x3a, 0x3a, 0x91, 0xb0, 0x91, 0x60, 0x90, 0xe0, 0x90, 0x70, 0x90, 0x38,
13403 +0xa4, 0x52, 0x68, 0x3a, 0x4e, 0xa4, 0x52, 0x58, 0x3a, 0x4c, 0x90, 0x38,
13404 +0xa4, 0x52, 0x20, 0x3a, 0x45, 0xa4, 0x52, 0x10, 0x3a, 0x43, 0x90, 0x48,
13405 +0x10, 0x10, 0xa4, 0x51, 0xe8, 0x3a, 0x3e, 0x10, 0x10, 0x80, 0x3a, 0x3b,
13406 +0x90, 0x28, 0x80, 0x3a, 0x34, 0x80, 0x3a, 0x33, 0x81, 0x10, 0x10, 0x80,
13407 +0xa4, 0x51, 0xb8, 0x3a, 0x38, 0xcb, 0x61, 0x3c, 0xc0, 0x85, 0x35, 0x02,
13408 +0x90, 0xd8, 0x88, 0x00, 0x90, 0x84, 0x90, 0x38, 0xc1, 0xc0, 0x85, 0x3a,
13409 +0x56, 0xc9, 0xe1, 0x44, 0x00, 0x85, 0x35, 0x29, 0xcb, 0x61, 0x3c, 0x80,
13410 +0x85, 0x35, 0x01, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x43,
13411 +0xc0, 0x85, 0x35, 0x27, 0xcb, 0x61, 0x3c, 0x40, 0x85, 0x35, 0x00, 0x91,
13412 +0xf8, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x43,
13413 +0x40, 0x85, 0x35, 0x23, 0xcb, 0x61, 0x3b, 0xc0, 0x85, 0x34, 0xfe, 0x88,
13414 +0x01, 0x00, 0x90, 0xa0, 0x81, 0x90, 0x70, 0x80, 0x90, 0x20, 0x3a, 0x4a,
13415 +0xc9, 0xe1, 0x43, 0x00, 0x85, 0x35, 0x21, 0x81, 0x3a, 0x41, 0x81, 0x10,
13416 +0x10, 0x80, 0xa4, 0x51, 0xa8, 0x3a, 0x36, 0xcb, 0x61, 0x3b, 0x80, 0x85,
13417 +0x34, 0xfd, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1,
13418 +0x42, 0xc0, 0x85, 0x35, 0x1f, 0xcb, 0x61, 0x3b, 0x40, 0x85, 0x34, 0xfc,
13419 +0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x42, 0x80, 0x85, 0x35,
13420 +0x1d, 0xcb, 0x61, 0x3b, 0x00, 0x85, 0x34, 0xfb, 0x92, 0x38, 0x81, 0x91,
13421 +0x68, 0x91, 0x18, 0x90, 0x80, 0x90, 0x40, 0x80, 0xa4, 0x53, 0x28, 0x3a,
13422 +0x66, 0x80, 0xa4, 0x53, 0x20, 0x3a, 0x63, 0x90, 0x28, 0x81, 0x3a, 0x62,
13423 +0x90, 0x38, 0xa4, 0x53, 0x00, 0x3a, 0x61, 0xa4, 0x52, 0xf0, 0x3a, 0x5f,
13424 +0x90, 0x28, 0x80, 0x3a, 0x5d, 0x80, 0x3a, 0x5c, 0x80, 0x90, 0x40, 0x10,
13425 +0x10, 0x80, 0x24, 0x52, 0xd8, 0x10, 0x10, 0x90, 0x38, 0xa4, 0x52, 0xc8,
13426 +0x3a, 0x5a, 0xa4, 0x52, 0xb8, 0x3a, 0x58, 0x90, 0x28, 0x80, 0x3a, 0x55,
13427 +0x80, 0x3a, 0x54, 0x9a, 0xd0, 0x03, 0xe0, 0x91, 0x60, 0x90, 0xb0, 0x88,
13428 +0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x42, 0x00, 0x85, 0x35, 0x19,
13429 +0xcb, 0x61, 0x3a, 0x80, 0x85, 0x34, 0xf9, 0x88, 0x00, 0x68, 0x84, 0x10,
13430 +0x10, 0xc9, 0xe1, 0x41, 0xc0, 0x85, 0x35, 0x17, 0xcb, 0x61, 0x3a, 0x40,
13431 +0x85, 0x34, 0xf8, 0x90, 0xb0, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9,
13432 +0xe1, 0x41, 0x80, 0x85, 0x35, 0x15, 0xcb, 0x61, 0x3a, 0x00, 0x85, 0x34,
13433 +0xf7, 0x88, 0x00, 0x68, 0x84, 0x10, 0x10, 0xc9, 0xe1, 0x41, 0x40, 0x85,
13434 +0x35, 0x13, 0xcb, 0x61, 0x39, 0xc0, 0x85, 0x34, 0xf6, 0x90, 0x90, 0x90,
13435 +0x48, 0xcb, 0xa1, 0x38, 0x00, 0x85, 0x34, 0xe5, 0xcb, 0xa1, 0x37, 0xc0,
13436 +0x85, 0x34, 0xe4, 0x90, 0x48, 0xcb, 0xa1, 0x37, 0x80, 0x85, 0x34, 0xe3,
13437 +0xcb, 0xa1, 0x37, 0x40, 0x85, 0x34, 0xe2, 0xcb, 0xa2, 0x8c, 0x40, 0x80,
13438 +0x3a, 0x32, 0x92, 0x40, 0x91, 0x20, 0x90, 0x90, 0x90, 0x48, 0x8c, 0x26,
13439 +0x60, 0x84, 0x24, 0x26, 0xd8, 0x8c, 0x26, 0x58, 0x84, 0x24, 0x26, 0xd0,
13440 +0x90, 0x48, 0x8c, 0x26, 0x50, 0x84, 0x24, 0x26, 0xc8, 0x8c, 0x26, 0x48,
13441 +0x84, 0x24, 0x26, 0xc0, 0x90, 0x90, 0x90, 0x48, 0x8c, 0x26, 0x38, 0x84,
13442 +0x24, 0x26, 0xb0, 0x8c, 0x26, 0x30, 0x84, 0x24, 0x26, 0xa8, 0x90, 0x48,
13443 +0x8c, 0x26, 0x28, 0x84, 0x24, 0x26, 0xa0, 0x8c, 0x26, 0x20, 0x84, 0x24,
13444 +0x26, 0x98, 0x91, 0x20, 0x90, 0x90, 0x90, 0x48, 0x8c, 0x26, 0x10, 0x84,
13445 +0x24, 0x26, 0x88, 0x8c, 0x26, 0x08, 0x84, 0x24, 0x26, 0x80, 0x90, 0x48,
13446 +0x8c, 0x26, 0x00, 0x84, 0x24, 0x26, 0x78, 0x8c, 0x25, 0xf8, 0x84, 0x24,
13447 +0x26, 0x70, 0x90, 0x38, 0xa4, 0x25, 0xe0, 0x34, 0xbd, 0xa4, 0x25, 0xd0,
13448 +0x34, 0xbb, 0xa0, 0x0f, 0x50, 0xa0, 0x09, 0x08, 0x9a, 0x30, 0x04, 0x40,
13449 +0x91, 0x90, 0x90, 0xc8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x8a, 0x40,
13450 +0x3a, 0x21, 0xe5, 0x22, 0x82, 0x40, 0x3a, 0x1d, 0xcb, 0x61, 0x2a, 0x40,
13451 +0x85, 0x34, 0xb8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x7a, 0x40, 0x39,
13452 +0xe1, 0xe5, 0x22, 0x72, 0x40, 0x39, 0xdd, 0xcb, 0x61, 0x2a, 0x00, 0x85,
13453 +0x34, 0xb7, 0x90, 0x48, 0xcb, 0xa1, 0x29, 0xc0, 0x85, 0x34, 0xb6, 0xcb,
13454 +0xa1, 0x29, 0x80, 0x85, 0x34, 0xb5, 0x91, 0x90, 0x90, 0xc8, 0x98, 0x50,
13455 +0x00, 0x80, 0xe5, 0x22, 0x64, 0x40, 0x39, 0xa9, 0xe5, 0x22, 0x58, 0x40,
13456 +0x39, 0x79, 0xcb, 0x61, 0x29, 0x00, 0x85, 0x34, 0xb3, 0x98, 0x50, 0x00,
13457 +0x80, 0xe5, 0x22, 0x4c, 0x40, 0x39, 0x49, 0xe5, 0x22, 0x40, 0x40, 0x39,
13458 +0x19, 0xcb, 0x61, 0x28, 0xc0, 0x85, 0x34, 0xb2, 0x90, 0x48, 0xcb, 0xa1,
13459 +0x28, 0x80, 0x85, 0x34, 0xb1, 0xcb, 0xa1, 0x28, 0x40, 0x85, 0x34, 0xb0,
13460 +0x92, 0x20, 0x91, 0x30, 0x90, 0xb8, 0xd5, 0x03, 0x00, 0xc0, 0xc0, 0x81,
13461 +0x8c, 0x01, 0xa0, 0x84, 0x30, 0x3e, 0xc0, 0xc0, 0x81, 0x8c, 0x01, 0x80,
13462 +0x84, 0x30, 0x3c, 0xd5, 0x02, 0x00, 0xc0, 0xc0, 0x81, 0x30, 0x28, 0xc0,
13463 +0xc0, 0x81, 0x30, 0x24, 0x90, 0x78, 0xd5, 0x02, 0x00, 0xc0, 0xc0, 0x81,
13464 +0x30, 0x1c, 0xc0, 0xc0, 0x81, 0x30, 0x18, 0xd5, 0x02, 0x00, 0xc0, 0xc0,
13465 +0x81, 0x30, 0x10, 0xc0, 0xc0, 0x81, 0x30, 0x0c, 0x91, 0x70, 0x90, 0xd8,
13466 +0xd5, 0x03, 0x80, 0xc8, 0xe2, 0x38, 0x40, 0x81, 0x8c, 0x01, 0xc0, 0x84,
13467 +0x30, 0x40, 0xc8, 0xe2, 0x3a, 0x40, 0x81, 0x8c, 0x01, 0x90, 0x84, 0x30,
13468 +0x3d, 0xd5, 0x02, 0x80, 0xc8, 0xe2, 0x37, 0x40, 0x81, 0x30, 0x2c, 0xc8,
13469 +0xe2, 0x31, 0xc0, 0x81, 0x30, 0x26, 0x90, 0x98, 0xd5, 0x02, 0x80, 0xc8,
13470 +0xe2, 0x26, 0xc0, 0x81, 0x30, 0x20, 0xc8, 0xe2, 0x28, 0xc0, 0x81, 0x30,
13471 +0x1a, 0xd5, 0x02, 0x80, 0xc8, 0xe2, 0x25, 0xc0, 0x81, 0x30, 0x14, 0xc8,
13472 +0xe2, 0x20, 0x40, 0x81, 0x30, 0x0e, 0x9a, 0x30, 0x04, 0x40, 0x91, 0x90,
13473 +0x90, 0xc8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x7e, 0x40, 0x39, 0xf1,
13474 +0xe5, 0x22, 0x80, 0x40, 0x3a, 0x15, 0xcb, 0x61, 0x27, 0xc0, 0x85, 0x34,
13475 +0xae, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22, 0x6e, 0x40, 0x39, 0xb1, 0xe5,
13476 +0x22, 0x70, 0x40, 0x39, 0xd5, 0xcb, 0x61, 0x27, 0x80, 0x85, 0x34, 0xad,
13477 +0x90, 0x48, 0xcb, 0xa1, 0x27, 0x40, 0x85, 0x34, 0xac, 0xcb, 0xa1, 0x27,
13478 +0x00, 0x85, 0x34, 0xab, 0x91, 0x90, 0x90, 0xc8, 0x98, 0x50, 0x00, 0x80,
13479 +0xe5, 0x22, 0x60, 0x40, 0x39, 0x99, 0xe5, 0x22, 0x54, 0x40, 0x39, 0x69,
13480 +0xcb, 0x61, 0x25, 0x40, 0x85, 0x34, 0x9a, 0x98, 0x50, 0x00, 0x80, 0xe5,
13481 +0x22, 0x48, 0x40, 0x39, 0x39, 0xe5, 0x22, 0x3c, 0x40, 0x39, 0x09, 0xcb,
13482 +0x61, 0x25, 0x00, 0x85, 0x34, 0x99, 0x90, 0x48, 0xcb, 0xa1, 0x24, 0xc0,
13483 +0x85, 0x34, 0x98, 0xcb, 0xa1, 0x24, 0x80, 0x85, 0x34, 0x97, 0x91, 0x00,
13484 +0x90, 0x80, 0x90, 0x40, 0xe5, 0x20, 0x02, 0x40, 0x30, 0x0a, 0xe5, 0x20,
13485 +0x01, 0x80, 0x30, 0x07, 0x90, 0x40, 0xe5, 0x20, 0x00, 0xc0, 0x30, 0x04,
13486 +0xe5, 0x20, 0x00, 0x00, 0x30, 0x01, 0x90, 0x80, 0x90, 0x40, 0xe5, 0x22,
13487 +0x2d, 0x40, 0x38, 0xab, 0xe5, 0x22, 0x2f, 0x80, 0x38, 0xd3, 0x90, 0x40,
13488 +0xe5, 0x22, 0x1b, 0xc0, 0x38, 0x65, 0xe5, 0x22, 0x1e, 0x00, 0x38, 0x8d,
13489 +0x80, 0x99, 0x28, 0x02, 0xf0, 0x8c, 0x24, 0x48, 0x90, 0x80, 0x90, 0x40,
13490 +0xe5, 0x22, 0x84, 0x40, 0x3a, 0x0d, 0xe5, 0x22, 0x81, 0x40, 0x3a, 0x19,
13491 +0x90, 0x40, 0xe5, 0x22, 0x74, 0x40, 0x39, 0xcd, 0xe5, 0x22, 0x71, 0x40,
13492 +0x39, 0xd9, 0x91, 0x48, 0x90, 0xc8, 0x98, 0x50, 0x00, 0x80, 0xe5, 0x22,
13493 +0x62, 0x40, 0x39, 0xa1, 0xe5, 0x22, 0x56, 0x40, 0x39, 0x71, 0xcb, 0x61,
13494 +0x23, 0x00, 0x85, 0x34, 0x90, 0x90, 0x40, 0xe5, 0x22, 0x4a, 0x40, 0x39,
13495 +0x41, 0xe5, 0x22, 0x3e, 0x40, 0x39, 0x11, 0x90, 0x48, 0xcb, 0xa1, 0x22,
13496 +0x80, 0x85, 0x34, 0x8e, 0xcb, 0xa1, 0x22, 0xc0, 0x85, 0x34, 0x8f, 0x10,
13497 +0x10, 0x90, 0x80, 0x90, 0x40, 0xe5, 0x22, 0x33, 0xc0, 0x38, 0xcb, 0xe5,
13498 +0x22, 0x30, 0xc0, 0x38, 0xd9, 0x90, 0x40, 0xe5, 0x22, 0x22, 0x40, 0x38,
13499 +0x85, 0xe5, 0x22, 0x1f, 0x40, 0x38, 0x93,
13500 +};
13501 +
13502 +static const struct ia64_dis_names ia64_dis_names[] = {
13503 +{ 0x51, 41, 0, 10 },
13504 +{ 0x31, 41, 1, 20 },
13505 +{ 0x11, 42, 0, 19 },
13506 +{ 0x29, 41, 0, 12 },
13507 +{ 0x19, 41, 1, 24 },
13508 +{ 0x9, 42, 0, 23 },
13509 +{ 0x15, 41, 0, 14 },
13510 +{ 0xd, 41, 1, 28 },
13511 +{ 0x5, 42, 0, 27 },
13512 +{ 0xb, 41, 0, 16 },
13513 +{ 0x7, 41, 1, 32 },
13514 +{ 0x3, 42, 0, 31 },
13515 +{ 0x51, 39, 1, 58 },
13516 +{ 0x50, 39, 0, 34 },
13517 +{ 0xd1, 39, 1, 57 },
13518 +{ 0xd0, 39, 0, 33 },
13519 +{ 0x31, 39, 1, 68 },
13520 +{ 0x30, 39, 1, 44 },
13521 +{ 0x11, 40, 1, 67 },
13522 +{ 0x10, 40, 0, 43 },
13523 +{ 0x71, 39, 1, 66 },
13524 +{ 0x70, 39, 1, 42 },
13525 +{ 0x31, 40, 1, 65 },
13526 +{ 0x30, 40, 0, 41 },
13527 +{ 0x29, 39, 1, 60 },
13528 +{ 0x28, 39, 0, 36 },
13529 +{ 0x69, 39, 1, 59 },
13530 +{ 0x68, 39, 0, 35 },
13531 +{ 0x19, 39, 1, 72 },
13532 +{ 0x18, 39, 1, 48 },
13533 +{ 0x9, 40, 1, 71 },
13534 +{ 0x8, 40, 0, 47 },
13535 +{ 0x39, 39, 1, 70 },
13536 +{ 0x38, 39, 1, 46 },
13537 +{ 0x19, 40, 1, 69 },
13538 +{ 0x18, 40, 0, 45 },
13539 +{ 0x15, 39, 1, 62 },
13540 +{ 0x14, 39, 0, 38 },
13541 +{ 0x35, 39, 1, 61 },
13542 +{ 0x34, 39, 0, 37 },
13543 +{ 0xd, 39, 1, 76 },
13544 +{ 0xc, 39, 1, 52 },
13545 +{ 0x5, 40, 1, 75 },
13546 +{ 0x4, 40, 0, 51 },
13547 +{ 0x1d, 39, 1, 74 },
13548 +{ 0x1c, 39, 1, 50 },
13549 +{ 0xd, 40, 1, 73 },
13550 +{ 0xc, 40, 0, 49 },
13551 +{ 0xb, 39, 1, 64 },
13552 +{ 0xa, 39, 0, 40 },
13553 +{ 0x1b, 39, 1, 63 },
13554 +{ 0x1a, 39, 0, 39 },
13555 +{ 0x7, 39, 1, 80 },
13556 +{ 0x6, 39, 1, 56 },
13557 +{ 0x3, 40, 1, 79 },
13558 +{ 0x2, 40, 0, 55 },
13559 +{ 0xf, 39, 1, 78 },
13560 +{ 0xe, 39, 1, 54 },
13561 +{ 0x7, 40, 1, 77 },
13562 +{ 0x6, 40, 0, 53 },
13563 +{ 0x8, 38, 0, 82 },
13564 +{ 0x18, 38, 0, 81 },
13565 +{ 0x1, 38, 1, 86 },
13566 +{ 0x2, 38, 0, 85 },
13567 +{ 0x3, 38, 1, 84 },
13568 +{ 0x4, 38, 0, 83 },
13569 +{ 0x1, 336, 0, 87 },
13570 +{ 0x20, 289, 0, 98 },
13571 +{ 0x220, 289, 0, 94 },
13572 +{ 0x1220, 289, 0, 91 },
13573 +{ 0xa20, 289, 0, 92 },
13574 +{ 0x620, 289, 0, 93 },
13575 +{ 0x120, 289, 0, 95 },
13576 +{ 0xa0, 289, 0, 96 },
13577 +{ 0x60, 289, 0, 97 },
13578 +{ 0x10, 289, 0, 102 },
13579 +{ 0x90, 289, 0, 99 },
13580 +{ 0x50, 289, 0, 100 },
13581 +{ 0x30, 289, 0, 101 },
13582 +{ 0x8, 289, 0, 103 },
13583 +{ 0x4, 289, 0, 104 },
13584 +{ 0x2, 289, 0, 105 },
13585 +{ 0x1, 289, 0, 106 },
13586 +{ 0x1, 411, 0, 108 },
13587 +{ 0x3, 411, 0, 107 },
13588 +{ 0x2, 417, 0, 109 },
13589 +{ 0x1, 417, 0, 110 },
13590 +{ 0x2, 413, 0, 111 },
13591 +{ 0x1, 413, 0, 112 },
13592 +{ 0x2, 415, 0, 113 },
13593 +{ 0x1, 415, 0, 114 },
13594 +{ 0x2, 419, 0, 115 },
13595 +{ 0x1, 419, 0, 116 },
13596 +{ 0x1, 268, 0, 143 },
13597 +{ 0x5, 268, 0, 141 },
13598 +{ 0x3, 268, 0, 142 },
13599 +{ 0x140, 277, 0, 119 },
13600 +{ 0x540, 277, 0, 117 },
13601 +{ 0x340, 277, 0, 118 },
13602 +{ 0xc0, 277, 0, 131 },
13603 +{ 0x2c0, 277, 0, 129 },
13604 +{ 0x1c0, 277, 0, 130 },
13605 +{ 0x20, 277, 0, 146 },
13606 +{ 0xa0, 277, 0, 144 },
13607 +{ 0x60, 277, 0, 145 },
13608 +{ 0x10, 277, 0, 158 },
13609 +{ 0x50, 277, 0, 156 },
13610 +{ 0x30, 277, 0, 157 },
13611 +{ 0x8, 277, 0, 170 },
13612 +{ 0x28, 277, 0, 168 },
13613 +{ 0x18, 277, 0, 169 },
13614 +{ 0x4, 277, 0, 180 },
13615 +{ 0x2, 277, 0, 181 },
13616 +{ 0x1, 277, 0, 182 },
13617 +{ 0x140, 271, 0, 122 },
13618 +{ 0x540, 271, 0, 120 },
13619 +{ 0x340, 271, 0, 121 },
13620 +{ 0xc0, 271, 0, 134 },
13621 +{ 0x2c0, 271, 0, 132 },
13622 +{ 0x1c0, 271, 0, 133 },
13623 +{ 0x20, 271, 0, 149 },
13624 +{ 0xa0, 271, 0, 147 },
13625 +{ 0x60, 271, 0, 148 },
13626 +{ 0x10, 271, 0, 161 },
13627 +{ 0x50, 271, 0, 159 },
13628 +{ 0x30, 271, 0, 160 },
13629 +{ 0x8, 271, 0, 173 },
13630 +{ 0x28, 271, 0, 171 },
13631 +{ 0x18, 271, 0, 172 },
13632 +{ 0x4, 271, 0, 183 },
13633 +{ 0x2, 271, 0, 184 },
13634 +{ 0x1, 271, 0, 185 },
13635 +{ 0x140, 274, 0, 125 },
13636 +{ 0x540, 274, 0, 123 },
13637 +{ 0x340, 274, 0, 124 },
13638 +{ 0xc0, 274, 0, 137 },
13639 +{ 0x2c0, 274, 0, 135 },
13640 +{ 0x1c0, 274, 0, 136 },
13641 +{ 0x20, 274, 0, 152 },
13642 +{ 0xa0, 274, 0, 150 },
13643 +{ 0x60, 274, 0, 151 },
13644 +{ 0x10, 274, 0, 164 },
13645 +{ 0x50, 274, 0, 162 },
13646 +{ 0x30, 274, 0, 163 },
13647 +{ 0x8, 274, 0, 176 },
13648 +{ 0x28, 274, 0, 174 },
13649 +{ 0x18, 274, 0, 175 },
13650 +{ 0x4, 274, 0, 186 },
13651 +{ 0x2, 274, 0, 187 },
13652 +{ 0x1, 274, 0, 188 },
13653 +{ 0x140, 286, 0, 128 },
13654 +{ 0x540, 286, 0, 126 },
13655 +{ 0x340, 286, 0, 127 },
13656 +{ 0xc0, 286, 0, 140 },
13657 +{ 0x2c0, 286, 0, 138 },
13658 +{ 0x1c0, 286, 0, 139 },
13659 +{ 0x20, 286, 0, 155 },
13660 +{ 0xa0, 286, 0, 153 },
13661 +{ 0x60, 286, 0, 154 },
13662 +{ 0x10, 286, 0, 167 },
13663 +{ 0x50, 286, 0, 165 },
13664 +{ 0x30, 286, 0, 166 },
13665 +{ 0x8, 286, 0, 179 },
13666 +{ 0x28, 286, 0, 177 },
13667 +{ 0x18, 286, 0, 178 },
13668 +{ 0x4, 286, 0, 189 },
13669 +{ 0x2, 286, 0, 190 },
13670 +{ 0x1, 286, 0, 191 },
13671 +{ 0x8, 390, 0, 192 },
13672 +{ 0x4, 390, 0, 193 },
13673 +{ 0x2, 390, 0, 194 },
13674 +{ 0x1, 390, 0, 195 },
13675 +{ 0x20, 288, 0, 203 },
13676 +{ 0x220, 288, 0, 199 },
13677 +{ 0x1220, 288, 0, 196 },
13678 +{ 0xa20, 288, 0, 197 },
13679 +{ 0x620, 288, 0, 198 },
13680 +{ 0x120, 288, 0, 200 },
13681 +{ 0xa0, 288, 0, 201 },
13682 +{ 0x60, 288, 0, 202 },
13683 +{ 0x10, 288, 0, 207 },
13684 +{ 0x90, 288, 0, 204 },
13685 +{ 0x50, 288, 0, 205 },
13686 +{ 0x30, 288, 0, 206 },
13687 +{ 0x8, 288, 0, 208 },
13688 +{ 0x4, 288, 0, 209 },
13689 +{ 0x2, 288, 0, 210 },
13690 +{ 0x1, 288, 0, 211 },
13691 +{ 0x20, 287, 0, 219 },
13692 +{ 0x220, 287, 0, 215 },
13693 +{ 0x1220, 287, 0, 212 },
13694 +{ 0xa20, 287, 0, 213 },
13695 +{ 0x620, 287, 0, 214 },
13696 +{ 0x120, 287, 0, 216 },
13697 +{ 0xa0, 287, 0, 217 },
13698 +{ 0x60, 287, 0, 218 },
13699 +{ 0x10, 287, 0, 223 },
13700 +{ 0x90, 287, 0, 220 },
13701 +{ 0x50, 287, 0, 221 },
13702 +{ 0x30, 287, 0, 222 },
13703 +{ 0x8, 287, 0, 224 },
13704 +{ 0x4, 287, 0, 225 },
13705 +{ 0x2, 287, 0, 226 },
13706 +{ 0x1, 287, 0, 227 },
13707 +{ 0x140, 279, 0, 230 },
13708 +{ 0x540, 279, 0, 228 },
13709 +{ 0x340, 279, 0, 229 },
13710 +{ 0xc0, 279, 0, 239 },
13711 +{ 0x2c0, 279, 0, 237 },
13712 +{ 0x1c0, 279, 0, 238 },
13713 +{ 0x20, 279, 0, 248 },
13714 +{ 0xa0, 279, 0, 246 },
13715 +{ 0x60, 279, 0, 247 },
13716 +{ 0x10, 279, 0, 257 },
13717 +{ 0x50, 279, 0, 255 },
13718 +{ 0x30, 279, 0, 256 },
13719 +{ 0x8, 279, 0, 266 },
13720 +{ 0x28, 279, 0, 264 },
13721 +{ 0x18, 279, 0, 265 },
13722 +{ 0x4, 279, 0, 273 },
13723 +{ 0x2, 279, 0, 274 },
13724 +{ 0x1, 279, 0, 275 },
13725 +{ 0x140, 281, 0, 233 },
13726 +{ 0x540, 281, 0, 231 },
13727 +{ 0x340, 281, 0, 232 },
13728 +{ 0xc0, 281, 0, 242 },
13729 +{ 0x2c0, 281, 0, 240 },
13730 +{ 0x1c0, 281, 0, 241 },
13731 +{ 0x20, 281, 0, 251 },
13732 +{ 0xa0, 281, 0, 249 },
13733 +{ 0x60, 281, 0, 250 },
13734 +{ 0x10, 281, 0, 260 },
13735 +{ 0x50, 281, 0, 258 },
13736 +{ 0x30, 281, 0, 259 },
13737 +{ 0x8, 281, 0, 269 },
13738 +{ 0x28, 281, 0, 267 },
13739 +{ 0x18, 281, 0, 268 },
13740 +{ 0x4, 281, 0, 276 },
13741 +{ 0x2, 281, 0, 277 },
13742 +{ 0x1, 281, 0, 278 },
13743 +{ 0x140, 283, 0, 236 },
13744 +{ 0x540, 283, 0, 234 },
13745 +{ 0x340, 283, 0, 235 },
13746 +{ 0xc0, 283, 0, 245 },
13747 +{ 0x2c0, 283, 0, 243 },
13748 +{ 0x1c0, 283, 0, 244 },
13749 +{ 0x20, 283, 0, 254 },
13750 +{ 0xa0, 283, 0, 252 },
13751 +{ 0x60, 283, 0, 253 },
13752 +{ 0x10, 283, 0, 263 },
13753 +{ 0x50, 283, 0, 261 },
13754 +{ 0x30, 283, 0, 262 },
13755 +{ 0x8, 283, 0, 272 },
13756 +{ 0x28, 283, 0, 270 },
13757 +{ 0x18, 283, 0, 271 },
13758 +{ 0x4, 283, 0, 279 },
13759 +{ 0x2, 283, 0, 280 },
13760 +{ 0x1, 283, 0, 281 },
13761 +{ 0x140, 278, 0, 284 },
13762 +{ 0x540, 278, 0, 282 },
13763 +{ 0x340, 278, 0, 283 },
13764 +{ 0xc0, 278, 0, 293 },
13765 +{ 0x2c0, 278, 0, 291 },
13766 +{ 0x1c0, 278, 0, 292 },
13767 +{ 0x20, 278, 0, 302 },
13768 +{ 0xa0, 278, 0, 300 },
13769 +{ 0x60, 278, 0, 301 },
13770 +{ 0x10, 278, 0, 311 },
13771 +{ 0x50, 278, 0, 309 },
13772 +{ 0x30, 278, 0, 310 },
13773 +{ 0x8, 278, 0, 320 },
13774 +{ 0x28, 278, 0, 318 },
13775 +{ 0x18, 278, 0, 319 },
13776 +{ 0x4, 278, 0, 327 },
13777 +{ 0x2, 278, 0, 328 },
13778 +{ 0x1, 278, 0, 329 },
13779 +{ 0x140, 280, 0, 287 },
13780 +{ 0x540, 280, 0, 285 },
13781 +{ 0x340, 280, 0, 286 },
13782 +{ 0xc0, 280, 0, 296 },
13783 +{ 0x2c0, 280, 0, 294 },
13784 +{ 0x1c0, 280, 0, 295 },
13785 +{ 0x20, 280, 0, 305 },
13786 +{ 0xa0, 280, 0, 303 },
13787 +{ 0x60, 280, 0, 304 },
13788 +{ 0x10, 280, 0, 314 },
13789 +{ 0x50, 280, 0, 312 },
13790 +{ 0x30, 280, 0, 313 },
13791 +{ 0x8, 280, 0, 323 },
13792 +{ 0x28, 280, 0, 321 },
13793 +{ 0x18, 280, 0, 322 },
13794 +{ 0x4, 280, 0, 330 },
13795 +{ 0x2, 280, 0, 331 },
13796 +{ 0x1, 280, 0, 332 },
13797 +{ 0x140, 282, 0, 290 },
13798 +{ 0x540, 282, 0, 288 },
13799 +{ 0x340, 282, 0, 289 },
13800 +{ 0xc0, 282, 0, 299 },
13801 +{ 0x2c0, 282, 0, 297 },
13802 +{ 0x1c0, 282, 0, 298 },
13803 +{ 0x20, 282, 0, 308 },
13804 +{ 0xa0, 282, 0, 306 },
13805 +{ 0x60, 282, 0, 307 },
13806 +{ 0x10, 282, 0, 317 },
13807 +{ 0x50, 282, 0, 315 },
13808 +{ 0x30, 282, 0, 316 },
13809 +{ 0x8, 282, 0, 326 },
13810 +{ 0x28, 282, 0, 324 },
13811 +{ 0x18, 282, 0, 325 },
13812 +{ 0x4, 282, 0, 333 },
13813 +{ 0x2, 282, 0, 334 },
13814 +{ 0x1, 282, 0, 335 },
13815 +{ 0x1, 410, 0, 337 },
13816 +{ 0x3, 410, 0, 336 },
13817 +{ 0x2, 416, 0, 338 },
13818 +{ 0x1, 416, 0, 339 },
13819 +{ 0x2, 412, 0, 340 },
13820 +{ 0x1, 412, 0, 341 },
13821 +{ 0x2, 414, 0, 342 },
13822 +{ 0x1, 414, 0, 343 },
13823 +{ 0x2, 418, 0, 344 },
13824 +{ 0x1, 418, 0, 345 },
13825 +{ 0x1, 267, 0, 372 },
13826 +{ 0x5, 267, 0, 370 },
13827 +{ 0x3, 267, 0, 371 },
13828 +{ 0x140, 276, 0, 348 },
13829 +{ 0x540, 276, 0, 346 },
13830 +{ 0x340, 276, 0, 347 },
13831 +{ 0xc0, 276, 0, 360 },
13832 +{ 0x2c0, 276, 0, 358 },
13833 +{ 0x1c0, 276, 0, 359 },
13834 +{ 0x20, 276, 0, 375 },
13835 +{ 0xa0, 276, 0, 373 },
13836 +{ 0x60, 276, 0, 374 },
13837 +{ 0x10, 276, 0, 387 },
13838 +{ 0x50, 276, 0, 385 },
13839 +{ 0x30, 276, 0, 386 },
13840 +{ 0x8, 276, 0, 399 },
13841 +{ 0x28, 276, 0, 397 },
13842 +{ 0x18, 276, 0, 398 },
13843 +{ 0x4, 276, 0, 409 },
13844 +{ 0x2, 276, 0, 410 },
13845 +{ 0x1, 276, 0, 411 },
13846 +{ 0x140, 270, 0, 351 },
13847 +{ 0x540, 270, 0, 349 },
13848 +{ 0x340, 270, 0, 350 },
13849 +{ 0xc0, 270, 0, 363 },
13850 +{ 0x2c0, 270, 0, 361 },
13851 +{ 0x1c0, 270, 0, 362 },
13852 +{ 0x20, 270, 0, 378 },
13853 +{ 0xa0, 270, 0, 376 },
13854 +{ 0x60, 270, 0, 377 },
13855 +{ 0x10, 270, 0, 390 },
13856 +{ 0x50, 270, 0, 388 },
13857 +{ 0x30, 270, 0, 389 },
13858 +{ 0x8, 270, 0, 402 },
13859 +{ 0x28, 270, 0, 400 },
13860 +{ 0x18, 270, 0, 401 },
13861 +{ 0x4, 270, 0, 412 },
13862 +{ 0x2, 270, 0, 413 },
13863 +{ 0x1, 270, 0, 414 },
13864 +{ 0x140, 273, 0, 354 },
13865 +{ 0x540, 273, 0, 352 },
13866 +{ 0x340, 273, 0, 353 },
13867 +{ 0xc0, 273, 0, 366 },
13868 +{ 0x2c0, 273, 0, 364 },
13869 +{ 0x1c0, 273, 0, 365 },
13870 +{ 0x20, 273, 0, 381 },
13871 +{ 0xa0, 273, 0, 379 },
13872 +{ 0x60, 273, 0, 380 },
13873 +{ 0x10, 273, 0, 393 },
13874 +{ 0x50, 273, 0, 391 },
13875 +{ 0x30, 273, 0, 392 },
13876 +{ 0x8, 273, 0, 405 },
13877 +{ 0x28, 273, 0, 403 },
13878 +{ 0x18, 273, 0, 404 },
13879 +{ 0x4, 273, 0, 415 },
13880 +{ 0x2, 273, 0, 416 },
13881 +{ 0x1, 273, 0, 417 },
13882 +{ 0x140, 285, 0, 357 },
13883 +{ 0x540, 285, 0, 355 },
13884 +{ 0x340, 285, 0, 356 },
13885 +{ 0xc0, 285, 0, 369 },
13886 +{ 0x2c0, 285, 0, 367 },
13887 +{ 0x1c0, 285, 0, 368 },
13888 +{ 0x20, 285, 0, 384 },
13889 +{ 0xa0, 285, 0, 382 },
13890 +{ 0x60, 285, 0, 383 },
13891 +{ 0x10, 285, 0, 396 },
13892 +{ 0x50, 285, 0, 394 },
13893 +{ 0x30, 285, 0, 395 },
13894 +{ 0x8, 285, 0, 408 },
13895 +{ 0x28, 285, 0, 406 },
13896 +{ 0x18, 285, 0, 407 },
13897 +{ 0x4, 285, 0, 418 },
13898 +{ 0x2, 285, 0, 419 },
13899 +{ 0x1, 285, 0, 420 },
13900 +{ 0x1, 266, 0, 447 },
13901 +{ 0x5, 266, 0, 445 },
13902 +{ 0x3, 266, 0, 446 },
13903 +{ 0x140, 275, 0, 423 },
13904 +{ 0x540, 275, 0, 421 },
13905 +{ 0x340, 275, 0, 422 },
13906 +{ 0xc0, 275, 0, 435 },
13907 +{ 0x2c0, 275, 0, 433 },
13908 +{ 0x1c0, 275, 0, 434 },
13909 +{ 0x20, 275, 0, 450 },
13910 +{ 0xa0, 275, 0, 448 },
13911 +{ 0x60, 275, 0, 449 },
13912 +{ 0x10, 275, 0, 462 },
13913 +{ 0x50, 275, 0, 460 },
13914 +{ 0x30, 275, 0, 461 },
13915 +{ 0x8, 275, 0, 474 },
13916 +{ 0x28, 275, 0, 472 },
13917 +{ 0x18, 275, 0, 473 },
13918 +{ 0x4, 275, 0, 484 },
13919 +{ 0x2, 275, 0, 485 },
13920 +{ 0x1, 275, 0, 486 },
13921 +{ 0x140, 269, 0, 426 },
13922 +{ 0x540, 269, 0, 424 },
13923 +{ 0x340, 269, 0, 425 },
13924 +{ 0xc0, 269, 0, 438 },
13925 +{ 0x2c0, 269, 0, 436 },
13926 +{ 0x1c0, 269, 0, 437 },
13927 +{ 0x20, 269, 0, 453 },
13928 +{ 0xa0, 269, 0, 451 },
13929 +{ 0x60, 269, 0, 452 },
13930 +{ 0x10, 269, 0, 465 },
13931 +{ 0x50, 269, 0, 463 },
13932 +{ 0x30, 269, 0, 464 },
13933 +{ 0x8, 269, 0, 477 },
13934 +{ 0x28, 269, 0, 475 },
13935 +{ 0x18, 269, 0, 476 },
13936 +{ 0x4, 269, 0, 487 },
13937 +{ 0x2, 269, 0, 488 },
13938 +{ 0x1, 269, 0, 489 },
13939 +{ 0x140, 272, 0, 429 },
13940 +{ 0x540, 272, 0, 427 },
13941 +{ 0x340, 272, 0, 428 },
13942 +{ 0xc0, 272, 0, 441 },
13943 +{ 0x2c0, 272, 0, 439 },
13944 +{ 0x1c0, 272, 0, 440 },
13945 +{ 0x20, 272, 0, 456 },
13946 +{ 0xa0, 272, 0, 454 },
13947 +{ 0x60, 272, 0, 455 },
13948 +{ 0x10, 272, 0, 468 },
13949 +{ 0x50, 272, 0, 466 },
13950 +{ 0x30, 272, 0, 467 },
13951 +{ 0x8, 272, 0, 480 },
13952 +{ 0x28, 272, 0, 478 },
13953 +{ 0x18, 272, 0, 479 },
13954 +{ 0x4, 272, 0, 490 },
13955 +{ 0x2, 272, 0, 491 },
13956 +{ 0x1, 272, 0, 492 },
13957 +{ 0x140, 284, 0, 432 },
13958 +{ 0x540, 284, 0, 430 },
13959 +{ 0x340, 284, 0, 431 },
13960 +{ 0xc0, 284, 0, 444 },
13961 +{ 0x2c0, 284, 0, 442 },
13962 +{ 0x1c0, 284, 0, 443 },
13963 +{ 0x20, 284, 0, 459 },
13964 +{ 0xa0, 284, 0, 457 },
13965 +{ 0x60, 284, 0, 458 },
13966 +{ 0x10, 284, 0, 471 },
13967 +{ 0x50, 284, 0, 469 },
13968 +{ 0x30, 284, 0, 470 },
13969 +{ 0x8, 284, 0, 483 },
13970 +{ 0x28, 284, 0, 481 },
13971 +{ 0x18, 284, 0, 482 },
13972 +{ 0x4, 284, 0, 493 },
13973 +{ 0x2, 284, 0, 494 },
13974 +{ 0x1, 284, 0, 495 },
13975 +{ 0x8, 409, 0, 497 },
13976 +{ 0x18, 409, 0, 496 },
13977 +{ 0x4, 409, 0, 499 },
13978 +{ 0xc, 409, 0, 498 },
13979 +{ 0x2, 409, 0, 506 },
13980 +{ 0x1, 409, 0, 507 },
13981 +{ 0x4, 407, 0, 501 },
13982 +{ 0xc, 407, 0, 500 },
13983 +{ 0x2, 407, 0, 508 },
13984 +{ 0x1, 407, 0, 509 },
13985 +{ 0x4, 405, 0, 503 },
13986 +{ 0xc, 405, 0, 502 },
13987 +{ 0x2, 405, 0, 510 },
13988 +{ 0x1, 405, 0, 511 },
13989 +{ 0x4, 401, 0, 505 },
13990 +{ 0xc, 401, 0, 504 },
13991 +{ 0x2, 401, 0, 512 },
13992 +{ 0x1, 401, 0, 513 },
13993 +{ 0xa00, 265, 0, 528 },
13994 +{ 0x2a00, 265, 0, 526 },
13995 +{ 0x1a00, 265, 0, 527 },
13996 +{ 0x600, 265, 0, 540 },
13997 +{ 0x2600, 265, 0, 516 },
13998 +{ 0xa600, 265, 0, 514 },
13999 +{ 0x6600, 265, 0, 515 },
14000 +{ 0x1600, 265, 0, 538 },
14001 +{ 0xe00, 265, 0, 539 },
14002 +{ 0x100, 265, 0, 552 },
14003 +{ 0x500, 265, 0, 550 },
14004 +{ 0x300, 265, 0, 551 },
14005 +{ 0x80, 265, 0, 555 },
14006 +{ 0x280, 265, 0, 553 },
14007 +{ 0x180, 265, 0, 554 },
14008 +{ 0x40, 265, 0, 567 },
14009 +{ 0x140, 265, 0, 565 },
14010 +{ 0xc0, 265, 0, 566 },
14011 +{ 0x20, 265, 0, 579 },
14012 +{ 0xa0, 265, 0, 577 },
14013 +{ 0x60, 265, 0, 578 },
14014 +{ 0x10, 265, 0, 591 },
14015 +{ 0x50, 265, 0, 589 },
14016 +{ 0x30, 265, 0, 590 },
14017 +{ 0x8, 265, 0, 603 },
14018 +{ 0x28, 265, 0, 601 },
14019 +{ 0x18, 265, 0, 602 },
14020 +{ 0x4, 265, 0, 613 },
14021 +{ 0x2, 265, 0, 614 },
14022 +{ 0x1, 265, 0, 615 },
14023 +{ 0x500, 261, 0, 531 },
14024 +{ 0x1500, 261, 0, 529 },
14025 +{ 0xd00, 261, 0, 530 },
14026 +{ 0x300, 261, 0, 543 },
14027 +{ 0x1300, 261, 0, 519 },
14028 +{ 0x5300, 261, 0, 517 },
14029 +{ 0x3300, 261, 0, 518 },
14030 +{ 0xb00, 261, 0, 541 },
14031 +{ 0x700, 261, 0, 542 },
14032 +{ 0x80, 261, 0, 558 },
14033 +{ 0x280, 261, 0, 556 },
14034 +{ 0x180, 261, 0, 557 },
14035 +{ 0x40, 261, 0, 570 },
14036 +{ 0x140, 261, 0, 568 },
14037 +{ 0xc0, 261, 0, 569 },
14038 +{ 0x20, 261, 0, 582 },
14039 +{ 0xa0, 261, 0, 580 },
14040 +{ 0x60, 261, 0, 581 },
14041 +{ 0x10, 261, 0, 594 },
14042 +{ 0x50, 261, 0, 592 },
14043 +{ 0x30, 261, 0, 593 },
14044 +{ 0x8, 261, 0, 606 },
14045 +{ 0x28, 261, 0, 604 },
14046 +{ 0x18, 261, 0, 605 },
14047 +{ 0x4, 261, 0, 616 },
14048 +{ 0x2, 261, 0, 617 },
14049 +{ 0x1, 261, 0, 618 },
14050 +{ 0x500, 258, 0, 534 },
14051 +{ 0x1500, 258, 0, 532 },
14052 +{ 0xd00, 258, 0, 533 },
14053 +{ 0x300, 258, 0, 546 },
14054 +{ 0x1300, 258, 0, 522 },
14055 +{ 0x5300, 258, 0, 520 },
14056 +{ 0x3300, 258, 0, 521 },
14057 +{ 0xb00, 258, 0, 544 },
14058 +{ 0x700, 258, 0, 545 },
14059 +{ 0x80, 258, 0, 561 },
14060 +{ 0x280, 258, 0, 559 },
14061 +{ 0x180, 258, 0, 560 },
14062 +{ 0x40, 258, 0, 573 },
14063 +{ 0x140, 258, 0, 571 },
14064 +{ 0xc0, 258, 0, 572 },
14065 +{ 0x20, 258, 0, 585 },
14066 +{ 0xa0, 258, 0, 583 },
14067 +{ 0x60, 258, 0, 584 },
14068 +{ 0x10, 258, 0, 597 },
14069 +{ 0x50, 258, 0, 595 },
14070 +{ 0x30, 258, 0, 596 },
14071 +{ 0x8, 258, 0, 609 },
14072 +{ 0x28, 258, 0, 607 },
14073 +{ 0x18, 258, 0, 608 },
14074 +{ 0x4, 258, 0, 619 },
14075 +{ 0x2, 258, 0, 620 },
14076 +{ 0x1, 258, 0, 621 },
14077 +{ 0x500, 253, 0, 537 },
14078 +{ 0x1500, 253, 0, 535 },
14079 +{ 0xd00, 253, 0, 536 },
14080 +{ 0x300, 253, 0, 549 },
14081 +{ 0x1300, 253, 0, 525 },
14082 +{ 0x5300, 253, 0, 523 },
14083 +{ 0x3300, 253, 0, 524 },
14084 +{ 0xb00, 253, 0, 547 },
14085 +{ 0x700, 253, 0, 548 },
14086 +{ 0x80, 253, 0, 564 },
14087 +{ 0x280, 253, 0, 562 },
14088 +{ 0x180, 253, 0, 563 },
14089 +{ 0x40, 253, 0, 576 },
14090 +{ 0x140, 253, 0, 574 },
14091 +{ 0xc0, 253, 0, 575 },
14092 +{ 0x20, 253, 0, 588 },
14093 +{ 0xa0, 253, 0, 586 },
14094 +{ 0x60, 253, 0, 587 },
14095 +{ 0x10, 253, 0, 600 },
14096 +{ 0x50, 253, 0, 598 },
14097 +{ 0x30, 253, 0, 599 },
14098 +{ 0x8, 253, 0, 612 },
14099 +{ 0x28, 253, 0, 610 },
14100 +{ 0x18, 253, 0, 611 },
14101 +{ 0x4, 253, 0, 622 },
14102 +{ 0x2, 253, 0, 623 },
14103 +{ 0x1, 253, 0, 624 },
14104 +{ 0x8, 238, 0, 625 },
14105 +{ 0x4, 238, 0, 626 },
14106 +{ 0x2, 238, 0, 627 },
14107 +{ 0x1, 238, 0, 628 },
14108 +{ 0x2, 176, 0, 631 },
14109 +{ 0xa, 176, 0, 629 },
14110 +{ 0x6, 176, 0, 630 },
14111 +{ 0x1, 176, 0, 637 },
14112 +{ 0x5, 176, 0, 635 },
14113 +{ 0x3, 176, 0, 636 },
14114 +{ 0x2, 175, 0, 634 },
14115 +{ 0xa, 175, 0, 632 },
14116 +{ 0x6, 175, 0, 633 },
14117 +{ 0x1, 175, 0, 640 },
14118 +{ 0x5, 175, 0, 638 },
14119 +{ 0x3, 175, 0, 639 },
14120 +{ 0x4, 446, 0, 641 },
14121 +{ 0x2, 446, 0, 642 },
14122 +{ 0x1, 446, 0, 643 },
14123 +{ 0x4, 445, 0, 644 },
14124 +{ 0x2, 445, 0, 645 },
14125 +{ 0x1, 445, 0, 646 },
14126 +{ 0x4, 444, 0, 647 },
14127 +{ 0x2, 444, 0, 648 },
14128 +{ 0x1, 444, 0, 649 },
14129 +{ 0x4, 443, 0, 650 },
14130 +{ 0x2, 443, 0, 651 },
14131 +{ 0x1, 443, 0, 652 },
14132 +{ 0x2, 123, 1, 658 },
14133 +{ 0x2, 124, 0, 657 },
14134 +{ 0xa, 123, 1, 654 },
14135 +{ 0xa, 124, 0, 653 },
14136 +{ 0x6, 123, 1, 656 },
14137 +{ 0x6, 124, 0, 655 },
14138 +{ 0x1, 123, 1, 688 },
14139 +{ 0x1, 124, 0, 687 },
14140 +{ 0x5, 123, 1, 684 },
14141 +{ 0x5, 124, 0, 683 },
14142 +{ 0x3, 123, 1, 686 },
14143 +{ 0x3, 124, 0, 685 },
14144 +{ 0x2, 131, 1, 664 },
14145 +{ 0x2, 132, 0, 663 },
14146 +{ 0xa, 131, 1, 660 },
14147 +{ 0xa, 132, 0, 659 },
14148 +{ 0x6, 131, 1, 662 },
14149 +{ 0x6, 132, 0, 661 },
14150 +{ 0x1, 131, 1, 694 },
14151 +{ 0x1, 132, 0, 693 },
14152 +{ 0x5, 131, 1, 690 },
14153 +{ 0x5, 132, 0, 689 },
14154 +{ 0x3, 131, 1, 692 },
14155 +{ 0x3, 132, 0, 691 },
14156 +{ 0x2, 129, 1, 670 },
14157 +{ 0x2, 130, 0, 669 },
14158 +{ 0xa, 129, 1, 666 },
14159 +{ 0xa, 130, 0, 665 },
14160 +{ 0x6, 129, 1, 668 },
14161 +{ 0x6, 130, 0, 667 },
14162 +{ 0x1, 129, 1, 700 },
14163 +{ 0x1, 130, 0, 699 },
14164 +{ 0x5, 129, 1, 696 },
14165 +{ 0x5, 130, 0, 695 },
14166 +{ 0x3, 129, 1, 698 },
14167 +{ 0x3, 130, 0, 697 },
14168 +{ 0x2, 127, 1, 676 },
14169 +{ 0x2, 128, 0, 675 },
14170 +{ 0xa, 127, 1, 672 },
14171 +{ 0xa, 128, 0, 671 },
14172 +{ 0x6, 127, 1, 674 },
14173 +{ 0x6, 128, 0, 673 },
14174 +{ 0x1, 127, 1, 706 },
14175 +{ 0x1, 128, 0, 705 },
14176 +{ 0x5, 127, 1, 702 },
14177 +{ 0x5, 128, 0, 701 },
14178 +{ 0x3, 127, 1, 704 },
14179 +{ 0x3, 128, 0, 703 },
14180 +{ 0x2, 125, 1, 682 },
14181 +{ 0x2, 126, 0, 681 },
14182 +{ 0xa, 125, 1, 678 },
14183 +{ 0xa, 126, 0, 677 },
14184 +{ 0x6, 125, 1, 680 },
14185 +{ 0x6, 126, 0, 679 },
14186 +{ 0x1, 125, 1, 712 },
14187 +{ 0x1, 126, 0, 711 },
14188 +{ 0x5, 125, 1, 708 },
14189 +{ 0x5, 126, 0, 707 },
14190 +{ 0x3, 125, 1, 710 },
14191 +{ 0x3, 126, 0, 709 },
14192 +{ 0x4, 402, 1, 718 },
14193 +{ 0x4, 403, 0, 717 },
14194 +{ 0xc, 402, 1, 716 },
14195 +{ 0xc, 403, 0, 715 },
14196 +{ 0x2, 402, 1, 728 },
14197 +{ 0x2, 403, 0, 727 },
14198 +{ 0x1, 402, 1, 730 },
14199 +{ 0x1, 403, 0, 729 },
14200 +{ 0x8, 408, 0, 714 },
14201 +{ 0x18, 408, 0, 713 },
14202 +{ 0x4, 408, 0, 720 },
14203 +{ 0xc, 408, 0, 719 },
14204 +{ 0x2, 408, 0, 731 },
14205 +{ 0x1, 408, 0, 732 },
14206 +{ 0x4, 406, 0, 722 },
14207 +{ 0xc, 406, 0, 721 },
14208 +{ 0x2, 406, 0, 733 },
14209 +{ 0x1, 406, 0, 734 },
14210 +{ 0x4, 404, 0, 724 },
14211 +{ 0xc, 404, 0, 723 },
14212 +{ 0x2, 404, 0, 735 },
14213 +{ 0x1, 404, 0, 736 },
14214 +{ 0x4, 400, 0, 726 },
14215 +{ 0xc, 400, 0, 725 },
14216 +{ 0x2, 400, 0, 737 },
14217 +{ 0x1, 400, 0, 738 },
14218 +{ 0xa00, 264, 0, 753 },
14219 +{ 0x2a00, 264, 0, 751 },
14220 +{ 0x1a00, 264, 0, 752 },
14221 +{ 0x600, 264, 0, 765 },
14222 +{ 0x2600, 264, 0, 741 },
14223 +{ 0xa600, 264, 0, 739 },
14224 +{ 0x6600, 264, 0, 740 },
14225 +{ 0x1600, 264, 0, 763 },
14226 +{ 0xe00, 264, 0, 764 },
14227 +{ 0x100, 264, 0, 777 },
14228 +{ 0x500, 264, 0, 775 },
14229 +{ 0x300, 264, 0, 776 },
14230 +{ 0x80, 264, 0, 780 },
14231 +{ 0x280, 264, 0, 778 },
14232 +{ 0x180, 264, 0, 779 },
14233 +{ 0x40, 264, 0, 792 },
14234 +{ 0x140, 264, 0, 790 },
14235 +{ 0xc0, 264, 0, 791 },
14236 +{ 0x20, 264, 0, 804 },
14237 +{ 0xa0, 264, 0, 802 },
14238 +{ 0x60, 264, 0, 803 },
14239 +{ 0x10, 264, 0, 816 },
14240 +{ 0x50, 264, 0, 814 },
14241 +{ 0x30, 264, 0, 815 },
14242 +{ 0x8, 264, 0, 828 },
14243 +{ 0x28, 264, 0, 826 },
14244 +{ 0x18, 264, 0, 827 },
14245 +{ 0x4, 264, 0, 838 },
14246 +{ 0x2, 264, 0, 839 },
14247 +{ 0x1, 264, 0, 840 },
14248 +{ 0x500, 260, 0, 756 },
14249 +{ 0x1500, 260, 0, 754 },
14250 +{ 0xd00, 260, 0, 755 },
14251 +{ 0x300, 260, 0, 768 },
14252 +{ 0x1300, 260, 0, 744 },
14253 +{ 0x5300, 260, 0, 742 },
14254 +{ 0x3300, 260, 0, 743 },
14255 +{ 0xb00, 260, 0, 766 },
14256 +{ 0x700, 260, 0, 767 },
14257 +{ 0x80, 260, 0, 783 },
14258 +{ 0x280, 260, 0, 781 },
14259 +{ 0x180, 260, 0, 782 },
14260 +{ 0x40, 260, 0, 795 },
14261 +{ 0x140, 260, 0, 793 },
14262 +{ 0xc0, 260, 0, 794 },
14263 +{ 0x20, 260, 0, 807 },
14264 +{ 0xa0, 260, 0, 805 },
14265 +{ 0x60, 260, 0, 806 },
14266 +{ 0x10, 260, 0, 819 },
14267 +{ 0x50, 260, 0, 817 },
14268 +{ 0x30, 260, 0, 818 },
14269 +{ 0x8, 260, 0, 831 },
14270 +{ 0x28, 260, 0, 829 },
14271 +{ 0x18, 260, 0, 830 },
14272 +{ 0x4, 260, 0, 841 },
14273 +{ 0x2, 260, 0, 842 },
14274 +{ 0x1, 260, 0, 843 },
14275 +{ 0x500, 257, 0, 759 },
14276 +{ 0x1500, 257, 0, 757 },
14277 +{ 0xd00, 257, 0, 758 },
14278 +{ 0x300, 257, 0, 771 },
14279 +{ 0x1300, 257, 0, 747 },
14280 +{ 0x5300, 257, 0, 745 },
14281 +{ 0x3300, 257, 0, 746 },
14282 +{ 0xb00, 257, 0, 769 },
14283 +{ 0x700, 257, 0, 770 },
14284 +{ 0x80, 257, 0, 786 },
14285 +{ 0x280, 257, 0, 784 },
14286 +{ 0x180, 257, 0, 785 },
14287 +{ 0x40, 257, 0, 798 },
14288 +{ 0x140, 257, 0, 796 },
14289 +{ 0xc0, 257, 0, 797 },
14290 +{ 0x20, 257, 0, 810 },
14291 +{ 0xa0, 257, 0, 808 },
14292 +{ 0x60, 257, 0, 809 },
14293 +{ 0x10, 257, 0, 822 },
14294 +{ 0x50, 257, 0, 820 },
14295 +{ 0x30, 257, 0, 821 },
14296 +{ 0x8, 257, 0, 834 },
14297 +{ 0x28, 257, 0, 832 },
14298 +{ 0x18, 257, 0, 833 },
14299 +{ 0x4, 257, 0, 844 },
14300 +{ 0x2, 257, 0, 845 },
14301 +{ 0x1, 257, 0, 846 },
14302 +{ 0x500, 252, 0, 762 },
14303 +{ 0x1500, 252, 0, 760 },
14304 +{ 0xd00, 252, 0, 761 },
14305 +{ 0x300, 252, 0, 774 },
14306 +{ 0x1300, 252, 0, 750 },
14307 +{ 0x5300, 252, 0, 748 },
14308 +{ 0x3300, 252, 0, 749 },
14309 +{ 0xb00, 252, 0, 772 },
14310 +{ 0x700, 252, 0, 773 },
14311 +{ 0x80, 252, 0, 789 },
14312 +{ 0x280, 252, 0, 787 },
14313 +{ 0x180, 252, 0, 788 },
14314 +{ 0x40, 252, 0, 801 },
14315 +{ 0x140, 252, 0, 799 },
14316 +{ 0xc0, 252, 0, 800 },
14317 +{ 0x20, 252, 0, 813 },
14318 +{ 0xa0, 252, 0, 811 },
14319 +{ 0x60, 252, 0, 812 },
14320 +{ 0x10, 252, 0, 825 },
14321 +{ 0x50, 252, 0, 823 },
14322 +{ 0x30, 252, 0, 824 },
14323 +{ 0x8, 252, 0, 837 },
14324 +{ 0x28, 252, 0, 835 },
14325 +{ 0x18, 252, 0, 836 },
14326 +{ 0x4, 252, 0, 847 },
14327 +{ 0x2, 252, 0, 848 },
14328 +{ 0x1, 252, 0, 849 },
14329 +{ 0x8, 254, 1, 895 },
14330 +{ 0x8, 255, 0, 894 },
14331 +{ 0x28, 254, 1, 891 },
14332 +{ 0x28, 255, 0, 890 },
14333 +{ 0x18, 254, 1, 893 },
14334 +{ 0x18, 255, 0, 892 },
14335 +{ 0x4, 254, 1, 957 },
14336 +{ 0x4, 255, 0, 956 },
14337 +{ 0x2, 254, 1, 959 },
14338 +{ 0x2, 255, 0, 958 },
14339 +{ 0x1, 254, 1, 961 },
14340 +{ 0x1, 255, 0, 960 },
14341 +{ 0xa00, 262, 0, 865 },
14342 +{ 0x2a00, 262, 0, 863 },
14343 +{ 0x1a00, 262, 0, 864 },
14344 +{ 0x600, 262, 0, 877 },
14345 +{ 0x2600, 262, 0, 853 },
14346 +{ 0xa600, 262, 0, 851 },
14347 +{ 0x6600, 262, 0, 852 },
14348 +{ 0x1600, 262, 0, 875 },
14349 +{ 0xe00, 262, 0, 876 },
14350 +{ 0x100, 262, 0, 889 },
14351 +{ 0x500, 262, 0, 887 },
14352 +{ 0x300, 262, 0, 888 },
14353 +{ 0x80, 262, 0, 898 },
14354 +{ 0x280, 262, 0, 896 },
14355 +{ 0x180, 262, 0, 897 },
14356 +{ 0x40, 262, 0, 910 },
14357 +{ 0x140, 262, 0, 908 },
14358 +{ 0xc0, 262, 0, 909 },
14359 +{ 0x20, 262, 0, 922 },
14360 +{ 0xa0, 262, 0, 920 },
14361 +{ 0x60, 262, 0, 921 },
14362 +{ 0x10, 262, 0, 934 },
14363 +{ 0x50, 262, 0, 932 },
14364 +{ 0x30, 262, 0, 933 },
14365 +{ 0x8, 262, 0, 946 },
14366 +{ 0x28, 262, 0, 944 },
14367 +{ 0x18, 262, 0, 945 },
14368 +{ 0x4, 262, 0, 962 },
14369 +{ 0x2, 262, 0, 963 },
14370 +{ 0x1, 262, 1, 964 },
14371 +{ 0x1, 263, 0, 850 },
14372 +{ 0x500, 259, 0, 868 },
14373 +{ 0x1500, 259, 0, 866 },
14374 +{ 0xd00, 259, 0, 867 },
14375 +{ 0x300, 259, 0, 880 },
14376 +{ 0x1300, 259, 0, 856 },
14377 +{ 0x5300, 259, 0, 854 },
14378 +{ 0x3300, 259, 0, 855 },
14379 +{ 0xb00, 259, 0, 878 },
14380 +{ 0x700, 259, 0, 879 },
14381 +{ 0x80, 259, 0, 901 },
14382 +{ 0x280, 259, 0, 899 },
14383 +{ 0x180, 259, 0, 900 },
14384 +{ 0x40, 259, 0, 913 },
14385 +{ 0x140, 259, 0, 911 },
14386 +{ 0xc0, 259, 0, 912 },
14387 +{ 0x20, 259, 0, 925 },
14388 +{ 0xa0, 259, 0, 923 },
14389 +{ 0x60, 259, 0, 924 },
14390 +{ 0x10, 259, 0, 937 },
14391 +{ 0x50, 259, 0, 935 },
14392 +{ 0x30, 259, 0, 936 },
14393 +{ 0x8, 259, 0, 949 },
14394 +{ 0x28, 259, 0, 947 },
14395 +{ 0x18, 259, 0, 948 },
14396 +{ 0x4, 259, 0, 965 },
14397 +{ 0x2, 259, 0, 966 },
14398 +{ 0x1, 259, 0, 967 },
14399 +{ 0x500, 256, 0, 871 },
14400 +{ 0x1500, 256, 0, 869 },
14401 +{ 0xd00, 256, 0, 870 },
14402 +{ 0x300, 256, 0, 883 },
14403 +{ 0x1300, 256, 0, 859 },
14404 +{ 0x5300, 256, 0, 857 },
14405 +{ 0x3300, 256, 0, 858 },
14406 +{ 0xb00, 256, 0, 881 },
14407 +{ 0x700, 256, 0, 882 },
14408 +{ 0x80, 256, 0, 904 },
14409 +{ 0x280, 256, 0, 902 },
14410 +{ 0x180, 256, 0, 903 },
14411 +{ 0x40, 256, 0, 916 },
14412 +{ 0x140, 256, 0, 914 },
14413 +{ 0xc0, 256, 0, 915 },
14414 +{ 0x20, 256, 0, 928 },
14415 +{ 0xa0, 256, 0, 926 },
14416 +{ 0x60, 256, 0, 927 },
14417 +{ 0x10, 256, 0, 940 },
14418 +{ 0x50, 256, 0, 938 },
14419 +{ 0x30, 256, 0, 939 },
14420 +{ 0x8, 256, 0, 952 },
14421 +{ 0x28, 256, 0, 950 },
14422 +{ 0x18, 256, 0, 951 },
14423 +{ 0x4, 256, 0, 968 },
14424 +{ 0x2, 256, 0, 969 },
14425 +{ 0x1, 256, 0, 970 },
14426 +{ 0x500, 251, 0, 874 },
14427 +{ 0x1500, 251, 0, 872 },
14428 +{ 0xd00, 251, 0, 873 },
14429 +{ 0x300, 251, 0, 886 },
14430 +{ 0x1300, 251, 0, 862 },
14431 +{ 0x5300, 251, 0, 860 },
14432 +{ 0x3300, 251, 0, 861 },
14433 +{ 0xb00, 251, 0, 884 },
14434 +{ 0x700, 251, 0, 885 },
14435 +{ 0x80, 251, 0, 907 },
14436 +{ 0x280, 251, 0, 905 },
14437 +{ 0x180, 251, 0, 906 },
14438 +{ 0x40, 251, 0, 919 },
14439 +{ 0x140, 251, 0, 917 },
14440 +{ 0xc0, 251, 0, 918 },
14441 +{ 0x20, 251, 0, 931 },
14442 +{ 0xa0, 251, 0, 929 },
14443 +{ 0x60, 251, 0, 930 },
14444 +{ 0x10, 251, 0, 943 },
14445 +{ 0x50, 251, 0, 941 },
14446 +{ 0x30, 251, 0, 942 },
14447 +{ 0x8, 251, 0, 955 },
14448 +{ 0x28, 251, 0, 953 },
14449 +{ 0x18, 251, 0, 954 },
14450 +{ 0x4, 251, 0, 971 },
14451 +{ 0x2, 251, 0, 972 },
14452 +{ 0x1, 251, 0, 973 },
14453 +{ 0x2, 150, 0, 975 },
14454 +{ 0x1, 150, 0, 976 },
14455 +{ 0x1, 50, 0, 977 },
14456 +{ 0x3, 49, 0, 978 },
14457 +{ 0x1, 428, 0, 979 },
14458 +{ 0x1, 438, 0, 980 },
14459 +{ 0x2, 386, 0, 983 },
14460 +{ 0x1, 386, 0, 984 },
14461 +{ 0x2, 384, 0, 985 },
14462 +{ 0x1, 384, 0, 986 },
14463 +{ 0x1, 383, 0, 987 },
14464 +{ 0x1, 328, 0, 992 },
14465 +{ 0x1, 327, 0, 993 },
14466 +{ 0x1, 326, 0, 994 },
14467 +{ 0x1, 325, 0, 995 },
14468 +{ 0x1, 250, 0, 996 },
14469 +{ 0x1, 249, 0, 997 },
14470 +{ 0x1, 324, 0, 998 },
14471 +{ 0x1, 323, 0, 999 },
14472 +{ 0x1, 322, 0, 1000 },
14473 +{ 0x1, 321, 0, 1001 },
14474 +{ 0x1, 320, 0, 1002 },
14475 +{ 0x1, 319, 0, 1003 },
14476 +{ 0x1, 318, 0, 1004 },
14477 +{ 0x2, 248, 0, 1005 },
14478 +{ 0x1, 248, 0, 1006 },
14479 +{ 0x2, 366, 0, 1012 },
14480 +{ 0x1, 366, 0, 1013 },
14481 +{ 0x1, 317, 0, 1014 },
14482 +{ 0x1, 316, 0, 1015 },
14483 +{ 0x1, 315, 0, 1016 },
14484 +{ 0x1, 314, 0, 1017 },
14485 +{ 0x1, 8, 1, 1019 },
14486 +{ 0x1, 9, 0, 1018 },
14487 +{ 0x1, 313, 0, 1020 },
14488 +{ 0x1, 312, 0, 1021 },
14489 +{ 0x1, 311, 0, 1022 },
14490 +{ 0x1, 310, 0, 1023 },
14491 +{ 0x1, 388, 0, 1024 },
14492 +{ 0x1, 399, 0, 1025 },
14493 +{ 0x1, 389, 0, 1026 },
14494 +{ 0x1, 423, 0, 1027 },
14495 +{ 0x1, 309, 0, 1031 },
14496 +{ 0x1, 247, 0, 1032 },
14497 +{ 0x1, 177, 0, 1035 },
14498 +{ 0x2, 291, 0, 1039 },
14499 +{ 0x1, 291, 0, 1040 },
14500 +{ 0x1, 236, 0, 1041 },
14501 +{ 0x5, 48, 0, 1043 },
14502 +{ 0x3, 48, 0, 1044 },
14503 +{ 0x5, 47, 0, 1045 },
14504 +{ 0x3, 47, 0, 1046 },
14505 +{ 0x1, 365, 0, 1047 },
14506 +{ 0x1, 373, 0, 1048 },
14507 +{ 0x1, 371, 0, 1049 },
14508 +{ 0x1, 392, 0, 1050 },
14509 +{ 0x1, 372, 0, 1051 },
14510 +{ 0x1, 370, 0, 1052 },
14511 +{ 0x2, 378, 0, 1053 },
14512 +{ 0x1, 378, 0, 1055 },
14513 +{ 0x2, 376, 0, 1054 },
14514 +{ 0x1, 376, 0, 1056 },
14515 +{ 0x2, 396, 0, 1057 },
14516 +{ 0x1, 396, 0, 1060 },
14517 +{ 0x2, 377, 0, 1058 },
14518 +{ 0x1, 377, 0, 1061 },
14519 +{ 0x2, 375, 0, 1059 },
14520 +{ 0x1, 375, 0, 1062 },
14521 +{ 0x1, 338, 0, 1063 },
14522 +{ 0x1, 337, 0, 1064 },
14523 +{ 0x1, 369, 0, 1065 },
14524 +{ 0x1, 360, 0, 1066 },
14525 +{ 0x1, 362, 0, 1067 },
14526 +{ 0x1, 359, 0, 1068 },
14527 +{ 0x1, 361, 0, 1069 },
14528 +{ 0x2, 442, 0, 1070 },
14529 +{ 0x1, 442, 0, 1073 },
14530 +{ 0x2, 441, 0, 1071 },
14531 +{ 0x1, 441, 0, 1074 },
14532 +{ 0x2, 440, 0, 1072 },
14533 +{ 0x1, 440, 0, 1075 },
14534 +{ 0x1, 348, 0, 1076 },
14535 +{ 0x2, 347, 0, 1077 },
14536 +{ 0x1, 347, 0, 1078 },
14537 +{ 0x2, 294, 0, 1079 },
14538 +{ 0x1, 294, 0, 1082 },
14539 +{ 0x2, 293, 0, 1080 },
14540 +{ 0x1, 293, 0, 1083 },
14541 +{ 0x2, 292, 0, 1081 },
14542 +{ 0x1, 292, 0, 1084 },
14543 +{ 0x2, 363, 0, 1085 },
14544 +{ 0x1, 363, 0, 1086 },
14545 +{ 0x2, 364, 0, 1087 },
14546 +{ 0x1, 364, 0, 1088 },
14547 +{ 0xa, 434, 1, 1100 },
14548 +{ 0xa, 435, 1, 1099 },
14549 +{ 0xa, 436, 1, 1098 },
14550 +{ 0xa, 437, 0, 1097 },
14551 +{ 0x1a, 434, 1, 1092 },
14552 +{ 0x1a, 435, 1, 1091 },
14553 +{ 0x32, 436, 1, 1090 },
14554 +{ 0x32, 437, 0, 1089 },
14555 +{ 0x6, 434, 1, 1108 },
14556 +{ 0x6, 435, 1, 1107 },
14557 +{ 0x6, 436, 1, 1106 },
14558 +{ 0x6, 437, 0, 1105 },
14559 +{ 0x1, 434, 1, 1120 },
14560 +{ 0x1, 435, 1, 1119 },
14561 +{ 0x1, 436, 1, 1118 },
14562 +{ 0x1, 437, 0, 1117 },
14563 +{ 0x9, 434, 1, 1104 },
14564 +{ 0x9, 435, 1, 1103 },
14565 +{ 0x9, 436, 1, 1102 },
14566 +{ 0x9, 437, 0, 1101 },
14567 +{ 0x19, 434, 1, 1096 },
14568 +{ 0x19, 435, 1, 1095 },
14569 +{ 0x31, 436, 1, 1094 },
14570 +{ 0x31, 437, 0, 1093 },
14571 +{ 0x5, 434, 1, 1112 },
14572 +{ 0x5, 435, 1, 1111 },
14573 +{ 0x5, 436, 1, 1110 },
14574 +{ 0x5, 437, 0, 1109 },
14575 +{ 0x3, 434, 1, 1116 },
14576 +{ 0x3, 435, 1, 1115 },
14577 +{ 0x3, 436, 1, 1114 },
14578 +{ 0x3, 437, 0, 1113 },
14579 +{ 0xa, 429, 1, 1132 },
14580 +{ 0xa, 430, 1, 1131 },
14581 +{ 0xa, 431, 1, 1130 },
14582 +{ 0xa, 432, 0, 1129 },
14583 +{ 0x1a, 429, 1, 1124 },
14584 +{ 0x1a, 430, 1, 1123 },
14585 +{ 0x32, 431, 1, 1122 },
14586 +{ 0x32, 432, 0, 1121 },
14587 +{ 0x6, 429, 1, 1140 },
14588 +{ 0x6, 430, 1, 1139 },
14589 +{ 0x6, 431, 1, 1138 },
14590 +{ 0x6, 432, 0, 1137 },
14591 +{ 0x1, 429, 1, 1152 },
14592 +{ 0x1, 430, 1, 1151 },
14593 +{ 0x1, 431, 1, 1150 },
14594 +{ 0x1, 432, 0, 1149 },
14595 +{ 0x9, 429, 1, 1136 },
14596 +{ 0x9, 430, 1, 1135 },
14597 +{ 0x9, 431, 1, 1134 },
14598 +{ 0x9, 432, 0, 1133 },
14599 +{ 0x19, 429, 1, 1128 },
14600 +{ 0x19, 430, 1, 1127 },
14601 +{ 0x31, 431, 1, 1126 },
14602 +{ 0x31, 432, 0, 1125 },
14603 +{ 0x5, 429, 1, 1144 },
14604 +{ 0x5, 430, 1, 1143 },
14605 +{ 0x5, 431, 1, 1142 },
14606 +{ 0x5, 432, 0, 1141 },
14607 +{ 0x3, 429, 1, 1148 },
14608 +{ 0x3, 430, 1, 1147 },
14609 +{ 0x3, 431, 1, 1146 },
14610 +{ 0x3, 432, 0, 1145 },
14611 +{ 0x1, 139, 0, 1153 },
14612 +{ 0x1, 138, 0, 1154 },
14613 +{ 0x1, 391, 1, 1156 },
14614 +{ 0x1, 137, 0, 1155 },
14615 +{ 0x2, 395, 1, 1158 },
14616 +{ 0x2, 141, 0, 1157 },
14617 +{ 0x1, 395, 1, 1160 },
14618 +{ 0x1, 141, 0, 1159 },
14619 +{ 0x1, 397, 0, 1161 },
14620 +{ 0x1, 136, 0, 1162 },
14621 +{ 0x2, 135, 0, 1163 },
14622 +{ 0x2, 134, 0, 1164 },
14623 +{ 0x1, 454, 1, 1170 },
14624 +{ 0x1, 246, 0, 1033 },
14625 +{ 0x1, 453, 0, 1171 },
14626 +{ 0x1, 452, 1, 1172 },
14627 +{ 0x1, 245, 0, 1042 },
14628 +{ 0x1, 308, 0, 1173 },
14629 +{ 0x1, 307, 1, 1174 },
14630 +{ 0x1, 290, 0, 1034 },
14631 +{ 0x1, 306, 0, 1175 },
14632 +{ 0x1, 305, 1, 1176 },
14633 +{ 0x1, 427, 0, 1036 },
14634 +{ 0x1, 304, 1, 1177 },
14635 +{ 0x1, 398, 0, 1038 },
14636 +{ 0x1, 303, 0, 1178 },
14637 +{ 0x1, 302, 0, 1179 },
14638 +{ 0x1, 301, 0, 1180 },
14639 +{ 0x1, 300, 1, 1181 },
14640 +{ 0x2, 398, 0, 1037 },
14641 +{ 0x10, 299, 0, 1185 },
14642 +{ 0x90, 299, 0, 1183 },
14643 +{ 0x190, 299, 0, 1182 },
14644 +{ 0x50, 299, 0, 1184 },
14645 +{ 0x30, 299, 0, 1187 },
14646 +{ 0x70, 299, 0, 1186 },
14647 +{ 0x8, 299, 0, 1189 },
14648 +{ 0x18, 299, 0, 1188 },
14649 +{ 0x4, 299, 0, 1190 },
14650 +{ 0x1, 299, 0, 1193 },
14651 +{ 0x3, 299, 0, 1192 },
14652 +{ 0x1, 298, 1, 1194 },
14653 +{ 0x2, 299, 0, 1191 },
14654 +{ 0x3, 46, 0, 1195 },
14655 +{ 0x1, 241, 1, 1196 },
14656 +{ 0x1, 242, 1, 1028 },
14657 +{ 0x1, 243, 0, 88 },
14658 +{ 0x1, 341, 1, 1197 },
14659 +{ 0x1, 342, 1, 1029 },
14660 +{ 0x1, 343, 0, 89 },
14661 +{ 0x1, 34, 1, 1198 },
14662 +{ 0x1, 35, 1, 1030 },
14663 +{ 0x1, 36, 0, 90 },
14664 +{ 0x1, 230, 0, 1199 },
14665 +{ 0x4, 447, 0, 1200 },
14666 +{ 0x2, 447, 0, 1201 },
14667 +{ 0x1, 447, 1, 1203 },
14668 +{ 0x1, 448, 0, 1202 },
14669 +{ 0x8, 449, 0, 1204 },
14670 +{ 0x4, 449, 0, 1205 },
14671 +{ 0x1, 449, 1, 1207 },
14672 +{ 0x2, 449, 0, 1206 },
14673 +{ 0x8, 219, 0, 1208 },
14674 +{ 0x4, 219, 0, 1209 },
14675 +{ 0x2, 219, 0, 1210 },
14676 +{ 0x1, 219, 1, 1212 },
14677 +{ 0x1, 220, 0, 1211 },
14678 +{ 0x10, 221, 0, 1213 },
14679 +{ 0x8, 221, 0, 1214 },
14680 +{ 0x4, 221, 0, 1215 },
14681 +{ 0x1, 221, 1, 1217 },
14682 +{ 0x2, 221, 0, 1216 },
14683 +{ 0x220, 191, 0, 1218 },
14684 +{ 0x120, 191, 0, 1219 },
14685 +{ 0xa0, 191, 0, 1220 },
14686 +{ 0x60, 191, 1, 1222 },
14687 +{ 0x4, 192, 0, 1221 },
14688 +{ 0x110, 191, 0, 1228 },
14689 +{ 0x90, 191, 0, 1229 },
14690 +{ 0x50, 191, 0, 1230 },
14691 +{ 0x30, 191, 1, 1232 },
14692 +{ 0x2, 192, 0, 1231 },
14693 +{ 0x8, 191, 0, 1233 },
14694 +{ 0x4, 191, 0, 1234 },
14695 +{ 0x2, 191, 0, 1235 },
14696 +{ 0x1, 191, 1, 1237 },
14697 +{ 0x1, 192, 0, 1236 },
14698 +{ 0x440, 193, 0, 1223 },
14699 +{ 0x240, 193, 0, 1224 },
14700 +{ 0x140, 193, 0, 1225 },
14701 +{ 0xc0, 193, 1, 1227 },
14702 +{ 0x40, 193, 0, 1226 },
14703 +{ 0x220, 193, 0, 1238 },
14704 +{ 0x120, 193, 0, 1239 },
14705 +{ 0xa0, 193, 0, 1240 },
14706 +{ 0x60, 193, 1, 1242 },
14707 +{ 0x20, 193, 0, 1241 },
14708 +{ 0x10, 193, 0, 1243 },
14709 +{ 0x8, 193, 0, 1244 },
14710 +{ 0x4, 193, 0, 1245 },
14711 +{ 0x1, 193, 1, 1247 },
14712 +{ 0x2, 193, 0, 1246 },
14713 +{ 0x8, 215, 0, 1248 },
14714 +{ 0x4, 215, 0, 1249 },
14715 +{ 0x2, 215, 0, 1250 },
14716 +{ 0x1, 215, 1, 1252 },
14717 +{ 0x1, 216, 0, 1251 },
14718 +{ 0x220, 187, 0, 1253 },
14719 +{ 0x120, 187, 0, 1254 },
14720 +{ 0xa0, 187, 0, 1255 },
14721 +{ 0x60, 187, 1, 1257 },
14722 +{ 0x4, 188, 0, 1256 },
14723 +{ 0x110, 187, 0, 1263 },
14724 +{ 0x90, 187, 0, 1264 },
14725 +{ 0x50, 187, 0, 1265 },
14726 +{ 0x30, 187, 1, 1267 },
14727 +{ 0x2, 188, 0, 1266 },
14728 +{ 0x8, 187, 0, 1268 },
14729 +{ 0x4, 187, 0, 1269 },
14730 +{ 0x2, 187, 0, 1270 },
14731 +{ 0x1, 187, 1, 1272 },
14732 +{ 0x1, 188, 0, 1271 },
14733 +{ 0x440, 233, 0, 1258 },
14734 +{ 0x240, 233, 0, 1259 },
14735 +{ 0x140, 233, 0, 1260 },
14736 +{ 0xc0, 233, 1, 1262 },
14737 +{ 0x40, 233, 0, 1261 },
14738 +{ 0x220, 233, 0, 1273 },
14739 +{ 0x120, 233, 0, 1274 },
14740 +{ 0xa0, 233, 0, 1275 },
14741 +{ 0x60, 233, 1, 1277 },
14742 +{ 0x20, 233, 0, 1276 },
14743 +{ 0x10, 233, 0, 1278 },
14744 +{ 0x8, 233, 0, 1279 },
14745 +{ 0x4, 233, 0, 1280 },
14746 +{ 0x1, 233, 1, 1282 },
14747 +{ 0x2, 233, 0, 1281 },
14748 +{ 0x8, 207, 0, 1283 },
14749 +{ 0x4, 207, 0, 1284 },
14750 +{ 0x2, 207, 0, 1285 },
14751 +{ 0x1, 207, 1, 1287 },
14752 +{ 0x1, 208, 0, 1286 },
14753 +{ 0x10, 214, 0, 1288 },
14754 +{ 0x8, 214, 0, 1289 },
14755 +{ 0x4, 214, 0, 1290 },
14756 +{ 0x1, 214, 1, 1292 },
14757 +{ 0x2, 214, 0, 1291 },
14758 +{ 0x220, 178, 0, 1293 },
14759 +{ 0x120, 178, 0, 1294 },
14760 +{ 0xa0, 178, 0, 1295 },
14761 +{ 0x60, 178, 1, 1297 },
14762 +{ 0x4, 179, 0, 1296 },
14763 +{ 0x110, 178, 0, 1318 },
14764 +{ 0x90, 178, 0, 1319 },
14765 +{ 0x50, 178, 0, 1320 },
14766 +{ 0x30, 178, 1, 1322 },
14767 +{ 0x2, 179, 0, 1321 },
14768 +{ 0x8, 178, 0, 1323 },
14769 +{ 0x4, 178, 0, 1324 },
14770 +{ 0x2, 178, 0, 1325 },
14771 +{ 0x1, 178, 1, 1327 },
14772 +{ 0x1, 179, 0, 1326 },
14773 +{ 0x440, 186, 0, 1298 },
14774 +{ 0x240, 186, 0, 1299 },
14775 +{ 0x140, 186, 0, 1300 },
14776 +{ 0xc0, 186, 1, 1302 },
14777 +{ 0x40, 186, 0, 1301 },
14778 +{ 0x220, 186, 0, 1328 },
14779 +{ 0x120, 186, 0, 1329 },
14780 +{ 0xa0, 186, 0, 1330 },
14781 +{ 0x60, 186, 1, 1332 },
14782 +{ 0x20, 186, 0, 1331 },
14783 +{ 0x10, 186, 0, 1333 },
14784 +{ 0x8, 186, 0, 1334 },
14785 +{ 0x4, 186, 0, 1335 },
14786 +{ 0x1, 186, 1, 1337 },
14787 +{ 0x2, 186, 0, 1336 },
14788 +{ 0x440, 143, 0, 1303 },
14789 +{ 0x240, 143, 0, 1304 },
14790 +{ 0x140, 143, 0, 1305 },
14791 +{ 0xc0, 143, 1, 1307 },
14792 +{ 0x40, 143, 0, 1306 },
14793 +{ 0x220, 143, 0, 1338 },
14794 +{ 0x120, 143, 0, 1339 },
14795 +{ 0xa0, 143, 0, 1340 },
14796 +{ 0x60, 143, 1, 1342 },
14797 +{ 0x20, 143, 0, 1341 },
14798 +{ 0x10, 143, 0, 1343 },
14799 +{ 0x8, 143, 0, 1344 },
14800 +{ 0x1, 143, 1, 1347 },
14801 +{ 0x2, 143, 0, 1346 },
14802 +{ 0x440, 194, 1, 1313 },
14803 +{ 0x441, 174, 0, 1308 },
14804 +{ 0x240, 194, 1, 1314 },
14805 +{ 0x241, 174, 0, 1309 },
14806 +{ 0x140, 194, 1, 1315 },
14807 +{ 0x141, 174, 0, 1310 },
14808 +{ 0xc0, 194, 1, 1317 },
14809 +{ 0x40, 194, 1, 1316 },
14810 +{ 0xc1, 174, 1, 1312 },
14811 +{ 0x41, 174, 0, 1311 },
14812 +{ 0x220, 194, 1, 1358 },
14813 +{ 0x221, 174, 0, 1348 },
14814 +{ 0x120, 194, 1, 1359 },
14815 +{ 0x121, 174, 0, 1349 },
14816 +{ 0xa0, 194, 1, 1360 },
14817 +{ 0xa1, 174, 0, 1350 },
14818 +{ 0x60, 194, 1, 1362 },
14819 +{ 0x20, 194, 1, 1361 },
14820 +{ 0x61, 174, 1, 1352 },
14821 +{ 0x21, 174, 0, 1351 },
14822 +{ 0x10, 194, 1, 1363 },
14823 +{ 0x11, 174, 0, 1353 },
14824 +{ 0x8, 194, 1, 1364 },
14825 +{ 0x9, 174, 0, 1354 },
14826 +{ 0x4, 194, 1, 1365 },
14827 +{ 0x5, 174, 0, 1355 },
14828 +{ 0x1, 194, 1, 1367 },
14829 +{ 0x2, 194, 1, 1366 },
14830 +{ 0x3, 174, 1, 1357 },
14831 +{ 0x1, 174, 0, 1356 },
14832 +{ 0x1, 153, 1, 1375 },
14833 +{ 0x1, 154, 1, 1374 },
14834 +{ 0x1, 155, 1, 1373 },
14835 +{ 0x1, 156, 0, 1372 },
14836 +{ 0x3, 153, 1, 1371 },
14837 +{ 0x3, 154, 1, 1370 },
14838 +{ 0x3, 155, 1, 1369 },
14839 +{ 0x3, 156, 0, 1368 },
14840 +{ 0x1108, 159, 1, 1537 },
14841 +{ 0x1108, 160, 1, 1536 },
14842 +{ 0x1108, 165, 1, 1377 },
14843 +{ 0x1108, 166, 0, 1376 },
14844 +{ 0x908, 159, 1, 1539 },
14845 +{ 0x908, 160, 1, 1538 },
14846 +{ 0x908, 165, 1, 1379 },
14847 +{ 0x908, 166, 0, 1378 },
14848 +{ 0x508, 159, 1, 1541 },
14849 +{ 0x508, 160, 1, 1540 },
14850 +{ 0x508, 165, 1, 1381 },
14851 +{ 0x508, 166, 0, 1380 },
14852 +{ 0x308, 159, 1, 1545 },
14853 +{ 0x308, 160, 1, 1544 },
14854 +{ 0x108, 160, 1, 1542 },
14855 +{ 0x18, 161, 1, 1543 },
14856 +{ 0x308, 165, 1, 1385 },
14857 +{ 0x308, 166, 1, 1384 },
14858 +{ 0x108, 166, 1, 1382 },
14859 +{ 0x18, 167, 0, 1383 },
14860 +{ 0x88, 159, 1, 1577 },
14861 +{ 0x88, 160, 1, 1576 },
14862 +{ 0x88, 165, 1, 1457 },
14863 +{ 0x88, 166, 0, 1456 },
14864 +{ 0x48, 159, 1, 1579 },
14865 +{ 0x48, 160, 1, 1578 },
14866 +{ 0x48, 165, 1, 1459 },
14867 +{ 0x48, 166, 0, 1458 },
14868 +{ 0x28, 159, 1, 1581 },
14869 +{ 0x28, 160, 1, 1580 },
14870 +{ 0x28, 165, 1, 1461 },
14871 +{ 0x28, 166, 0, 1460 },
14872 +{ 0x18, 159, 1, 1585 },
14873 +{ 0x18, 160, 1, 1584 },
14874 +{ 0x8, 160, 1, 1582 },
14875 +{ 0x8, 161, 1, 1583 },
14876 +{ 0x18, 165, 1, 1465 },
14877 +{ 0x18, 166, 1, 1464 },
14878 +{ 0x8, 166, 1, 1462 },
14879 +{ 0x8, 167, 0, 1463 },
14880 +{ 0x884, 159, 1, 1547 },
14881 +{ 0x884, 160, 1, 1546 },
14882 +{ 0x442, 162, 1, 1437 },
14883 +{ 0x442, 163, 1, 1436 },
14884 +{ 0x884, 165, 1, 1407 },
14885 +{ 0x884, 166, 1, 1406 },
14886 +{ 0x442, 168, 1, 1387 },
14887 +{ 0x442, 169, 0, 1386 },
14888 +{ 0x484, 159, 1, 1549 },
14889 +{ 0x484, 160, 1, 1548 },
14890 +{ 0x242, 162, 1, 1439 },
14891 +{ 0x242, 163, 1, 1438 },
14892 +{ 0x484, 165, 1, 1409 },
14893 +{ 0x484, 166, 1, 1408 },
14894 +{ 0x242, 168, 1, 1389 },
14895 +{ 0x242, 169, 0, 1388 },
14896 +{ 0x284, 159, 1, 1551 },
14897 +{ 0x284, 160, 1, 1550 },
14898 +{ 0x142, 162, 1, 1441 },
14899 +{ 0x142, 163, 1, 1440 },
14900 +{ 0x284, 165, 1, 1411 },
14901 +{ 0x284, 166, 1, 1410 },
14902 +{ 0x142, 168, 1, 1391 },
14903 +{ 0x142, 169, 0, 1390 },
14904 +{ 0x184, 159, 1, 1555 },
14905 +{ 0x184, 160, 1, 1554 },
14906 +{ 0x84, 160, 1, 1552 },
14907 +{ 0xc, 161, 1, 1553 },
14908 +{ 0xc2, 162, 1, 1445 },
14909 +{ 0xc2, 163, 1, 1444 },
14910 +{ 0x42, 163, 1, 1442 },
14911 +{ 0x6, 164, 1, 1443 },
14912 +{ 0x184, 165, 1, 1415 },
14913 +{ 0x184, 166, 1, 1414 },
14914 +{ 0x84, 166, 1, 1412 },
14915 +{ 0xc, 167, 1, 1413 },
14916 +{ 0xc2, 168, 1, 1395 },
14917 +{ 0xc2, 169, 1, 1394 },
14918 +{ 0x42, 169, 1, 1392 },
14919 +{ 0x6, 170, 0, 1393 },
14920 +{ 0x44, 159, 1, 1587 },
14921 +{ 0x44, 160, 1, 1586 },
14922 +{ 0x22, 162, 1, 1517 },
14923 +{ 0x22, 163, 1, 1516 },
14924 +{ 0x44, 165, 1, 1487 },
14925 +{ 0x44, 166, 1, 1486 },
14926 +{ 0x22, 168, 1, 1467 },
14927 +{ 0x22, 169, 0, 1466 },
14928 +{ 0x24, 159, 1, 1589 },
14929 +{ 0x24, 160, 1, 1588 },
14930 +{ 0x12, 162, 1, 1519 },
14931 +{ 0x12, 163, 1, 1518 },
14932 +{ 0x24, 165, 1, 1489 },
14933 +{ 0x24, 166, 1, 1488 },
14934 +{ 0x12, 168, 1, 1469 },
14935 +{ 0x12, 169, 0, 1468 },
14936 +{ 0x14, 159, 1, 1591 },
14937 +{ 0x14, 160, 1, 1590 },
14938 +{ 0xa, 162, 1, 1521 },
14939 +{ 0xa, 163, 1, 1520 },
14940 +{ 0x14, 165, 1, 1491 },
14941 +{ 0x14, 166, 1, 1490 },
14942 +{ 0xa, 168, 1, 1471 },
14943 +{ 0xa, 169, 0, 1470 },
14944 +{ 0xc, 159, 1, 1595 },
14945 +{ 0xc, 160, 1, 1594 },
14946 +{ 0x4, 160, 1, 1592 },
14947 +{ 0x4, 161, 1, 1593 },
14948 +{ 0x6, 162, 1, 1525 },
14949 +{ 0x6, 163, 1, 1524 },
14950 +{ 0x2, 163, 1, 1522 },
14951 +{ 0x2, 164, 1, 1523 },
14952 +{ 0xc, 165, 1, 1495 },
14953 +{ 0xc, 166, 1, 1494 },
14954 +{ 0x4, 166, 1, 1492 },
14955 +{ 0x4, 167, 1, 1493 },
14956 +{ 0x6, 168, 1, 1475 },
14957 +{ 0x6, 169, 1, 1474 },
14958 +{ 0x2, 169, 1, 1472 },
14959 +{ 0x2, 170, 0, 1473 },
14960 +{ 0x442, 159, 1, 1557 },
14961 +{ 0x442, 160, 1, 1556 },
14962 +{ 0x221, 162, 1, 1447 },
14963 +{ 0x221, 163, 1, 1446 },
14964 +{ 0x442, 165, 1, 1417 },
14965 +{ 0x442, 166, 1, 1416 },
14966 +{ 0x221, 168, 1, 1397 },
14967 +{ 0x221, 169, 0, 1396 },
14968 +{ 0x242, 159, 1, 1559 },
14969 +{ 0x242, 160, 1, 1558 },
14970 +{ 0x121, 162, 1, 1449 },
14971 +{ 0x121, 163, 1, 1448 },
14972 +{ 0x242, 165, 1, 1419 },
14973 +{ 0x242, 166, 1, 1418 },
14974 +{ 0x121, 168, 1, 1399 },
14975 +{ 0x121, 169, 0, 1398 },
14976 +{ 0x142, 159, 1, 1561 },
14977 +{ 0x142, 160, 1, 1560 },
14978 +{ 0xa1, 162, 1, 1451 },
14979 +{ 0xa1, 163, 1, 1450 },
14980 +{ 0x142, 165, 1, 1421 },
14981 +{ 0x142, 166, 1, 1420 },
14982 +{ 0xa1, 168, 1, 1401 },
14983 +{ 0xa1, 169, 0, 1400 },
14984 +{ 0xc2, 159, 1, 1565 },
14985 +{ 0xc2, 160, 1, 1564 },
14986 +{ 0x42, 160, 1, 1562 },
14987 +{ 0x6, 161, 1, 1563 },
14988 +{ 0x61, 162, 1, 1455 },
14989 +{ 0x61, 163, 1, 1454 },
14990 +{ 0x21, 163, 1, 1452 },
14991 +{ 0x3, 164, 1, 1453 },
14992 +{ 0xc2, 165, 1, 1425 },
14993 +{ 0xc2, 166, 1, 1424 },
14994 +{ 0x42, 166, 1, 1422 },
14995 +{ 0x6, 167, 1, 1423 },
14996 +{ 0x61, 168, 1, 1405 },
14997 +{ 0x61, 169, 1, 1404 },
14998 +{ 0x21, 169, 1, 1402 },
14999 +{ 0x3, 170, 0, 1403 },
15000 +{ 0x22, 159, 1, 1597 },
15001 +{ 0x22, 160, 1, 1596 },
15002 +{ 0x11, 162, 1, 1527 },
15003 +{ 0x11, 163, 1, 1526 },
15004 +{ 0x22, 165, 1, 1497 },
15005 +{ 0x22, 166, 1, 1496 },
15006 +{ 0x11, 168, 1, 1477 },
15007 +{ 0x11, 169, 0, 1476 },
15008 +{ 0x12, 159, 1, 1599 },
15009 +{ 0x12, 160, 1, 1598 },
15010 +{ 0x9, 162, 1, 1529 },
15011 +{ 0x9, 163, 1, 1528 },
15012 +{ 0x12, 165, 1, 1499 },
15013 +{ 0x12, 166, 1, 1498 },
15014 +{ 0x9, 168, 1, 1479 },
15015 +{ 0x9, 169, 0, 1478 },
15016 +{ 0xa, 159, 1, 1601 },
15017 +{ 0xa, 160, 1, 1600 },
15018 +{ 0x5, 162, 1, 1531 },
15019 +{ 0x5, 163, 1, 1530 },
15020 +{ 0xa, 165, 1, 1501 },
15021 +{ 0xa, 166, 1, 1500 },
15022 +{ 0x5, 168, 1, 1481 },
15023 +{ 0x5, 169, 0, 1480 },
15024 +{ 0x6, 159, 1, 1605 },
15025 +{ 0x6, 160, 1, 1604 },
15026 +{ 0x2, 160, 1, 1602 },
15027 +{ 0x2, 161, 1, 1603 },
15028 +{ 0x3, 162, 1, 1535 },
15029 +{ 0x3, 163, 1, 1534 },
15030 +{ 0x1, 163, 1, 1532 },
15031 +{ 0x1, 164, 1, 1533 },
15032 +{ 0x6, 165, 1, 1505 },
15033 +{ 0x6, 166, 1, 1504 },
15034 +{ 0x2, 166, 1, 1502 },
15035 +{ 0x2, 167, 1, 1503 },
15036 +{ 0x3, 168, 1, 1485 },
15037 +{ 0x3, 169, 1, 1484 },
15038 +{ 0x1, 169, 1, 1482 },
15039 +{ 0x1, 170, 0, 1483 },
15040 +{ 0x221, 159, 1, 1567 },
15041 +{ 0x221, 160, 1, 1566 },
15042 +{ 0x221, 165, 1, 1427 },
15043 +{ 0x221, 166, 0, 1426 },
15044 +{ 0x121, 159, 1, 1569 },
15045 +{ 0x121, 160, 1, 1568 },
15046 +{ 0x121, 165, 1, 1429 },
15047 +{ 0x121, 166, 0, 1428 },
15048 +{ 0xa1, 159, 1, 1571 },
15049 +{ 0xa1, 160, 1, 1570 },
15050 +{ 0xa1, 165, 1, 1431 },
15051 +{ 0xa1, 166, 0, 1430 },
15052 +{ 0x61, 159, 1, 1575 },
15053 +{ 0x61, 160, 1, 1574 },
15054 +{ 0x21, 160, 1, 1572 },
15055 +{ 0x3, 161, 1, 1573 },
15056 +{ 0x61, 165, 1, 1435 },
15057 +{ 0x61, 166, 1, 1434 },
15058 +{ 0x21, 166, 1, 1432 },
15059 +{ 0x3, 167, 0, 1433 },
15060 +{ 0x11, 159, 1, 1607 },
15061 +{ 0x11, 160, 1, 1606 },
15062 +{ 0x11, 165, 1, 1507 },
15063 +{ 0x11, 166, 0, 1506 },
15064 +{ 0x9, 159, 1, 1609 },
15065 +{ 0x9, 160, 1, 1608 },
15066 +{ 0x9, 165, 1, 1509 },
15067 +{ 0x9, 166, 0, 1508 },
15068 +{ 0x5, 159, 1, 1611 },
15069 +{ 0x5, 160, 1, 1610 },
15070 +{ 0x5, 165, 1, 1511 },
15071 +{ 0x5, 166, 0, 1510 },
15072 +{ 0x3, 159, 1, 1615 },
15073 +{ 0x3, 160, 1, 1614 },
15074 +{ 0x1, 160, 1, 1612 },
15075 +{ 0x1, 161, 1, 1613 },
15076 +{ 0x3, 165, 1, 1515 },
15077 +{ 0x3, 166, 1, 1514 },
15078 +{ 0x1, 166, 1, 1512 },
15079 +{ 0x1, 167, 0, 1513 },
15080 +{ 0x442, 205, 0, 1616 },
15081 +{ 0x242, 205, 0, 1617 },
15082 +{ 0x142, 205, 0, 1618 },
15083 +{ 0xc2, 205, 1, 1620 },
15084 +{ 0x6, 206, 1, 1619 },
15085 +{ 0x1, 439, 0, 981 },
15086 +{ 0x22, 205, 0, 1626 },
15087 +{ 0x12, 205, 0, 1627 },
15088 +{ 0xa, 205, 0, 1628 },
15089 +{ 0x6, 205, 1, 1630 },
15090 +{ 0x2, 206, 1, 1629 },
15091 +{ 0x2, 367, 0, 1010 },
15092 +{ 0x221, 205, 0, 1621 },
15093 +{ 0x121, 205, 0, 1622 },
15094 +{ 0xa1, 205, 0, 1623 },
15095 +{ 0x61, 205, 1, 1625 },
15096 +{ 0x3, 206, 1, 1624 },
15097 +{ 0x1, 433, 0, 982 },
15098 +{ 0x11, 205, 0, 1631 },
15099 +{ 0x9, 205, 0, 1632 },
15100 +{ 0x5, 205, 0, 1633 },
15101 +{ 0x3, 205, 1, 1635 },
15102 +{ 0x1, 206, 1, 1634 },
15103 +{ 0x1, 367, 0, 1011 },
15104 +{ 0x4, 211, 0, 1636 },
15105 +{ 0x1, 211, 0, 1638 },
15106 +{ 0x1, 218, 0, 1639 },
15107 +{ 0x1, 217, 1, 1640 },
15108 +{ 0x2, 211, 0, 1637 },
15109 +{ 0x1, 196, 0, 1641 },
15110 +{ 0x880, 202, 0, 1642 },
15111 +{ 0x480, 202, 0, 1643 },
15112 +{ 0x280, 202, 0, 1644 },
15113 +{ 0x180, 202, 1, 1646 },
15114 +{ 0x80, 203, 0, 1645 },
15115 +{ 0x440, 202, 1, 1657 },
15116 +{ 0x88, 204, 0, 1647 },
15117 +{ 0x240, 202, 1, 1658 },
15118 +{ 0x48, 204, 0, 1648 },
15119 +{ 0x140, 202, 1, 1659 },
15120 +{ 0x28, 204, 0, 1649 },
15121 +{ 0xc0, 202, 1, 1661 },
15122 +{ 0x40, 203, 1, 1660 },
15123 +{ 0x18, 204, 1, 1651 },
15124 +{ 0x8, 204, 0, 1650 },
15125 +{ 0x220, 202, 1, 1662 },
15126 +{ 0x44, 204, 0, 1652 },
15127 +{ 0x120, 202, 1, 1663 },
15128 +{ 0x24, 204, 0, 1653 },
15129 +{ 0xa0, 202, 1, 1664 },
15130 +{ 0x14, 204, 0, 1654 },
15131 +{ 0x60, 202, 1, 1666 },
15132 +{ 0x20, 203, 1, 1665 },
15133 +{ 0xc, 204, 1, 1656 },
15134 +{ 0x4, 204, 0, 1655 },
15135 +{ 0x110, 202, 0, 1667 },
15136 +{ 0x90, 202, 0, 1668 },
15137 +{ 0x50, 202, 0, 1669 },
15138 +{ 0x30, 202, 1, 1671 },
15139 +{ 0x10, 203, 1, 1670 },
15140 +{ 0x1, 385, 0, 974 },
15141 +{ 0x88, 202, 0, 1672 },
15142 +{ 0x48, 202, 0, 1673 },
15143 +{ 0x28, 202, 0, 1674 },
15144 +{ 0x18, 202, 1, 1676 },
15145 +{ 0x8, 203, 1, 1675 },
15146 +{ 0xc, 368, 0, 1007 },
15147 +{ 0x44, 202, 1, 1687 },
15148 +{ 0x22, 204, 0, 1677 },
15149 +{ 0x24, 202, 1, 1688 },
15150 +{ 0x12, 204, 0, 1678 },
15151 +{ 0x14, 202, 1, 1689 },
15152 +{ 0xa, 204, 0, 1679 },
15153 +{ 0xc, 202, 1, 1691 },
15154 +{ 0x4, 203, 1, 1690 },
15155 +{ 0x6, 204, 1, 1681 },
15156 +{ 0x2, 204, 1, 1680 },
15157 +{ 0x6, 368, 0, 1008 },
15158 +{ 0x22, 202, 1, 1692 },
15159 +{ 0x11, 204, 0, 1682 },
15160 +{ 0x12, 202, 1, 1693 },
15161 +{ 0x9, 204, 0, 1683 },
15162 +{ 0xa, 202, 1, 1694 },
15163 +{ 0x5, 204, 0, 1684 },
15164 +{ 0x6, 202, 1, 1696 },
15165 +{ 0x2, 203, 1, 1695 },
15166 +{ 0x3, 204, 1, 1686 },
15167 +{ 0x1, 204, 1, 1685 },
15168 +{ 0x3, 368, 0, 1009 },
15169 +{ 0x11, 202, 0, 1697 },
15170 +{ 0x9, 202, 0, 1698 },
15171 +{ 0x5, 202, 0, 1699 },
15172 +{ 0x3, 202, 1, 1701 },
15173 +{ 0x1, 203, 0, 1700 },
15174 +{ 0x8, 198, 0, 1702 },
15175 +{ 0x4, 198, 0, 1703 },
15176 +{ 0x2, 198, 0, 1704 },
15177 +{ 0x1, 198, 1, 1706 },
15178 +{ 0x1, 199, 1, 1705 },
15179 +{ 0x1, 332, 0, 988 },
15180 +{ 0x8, 200, 0, 1707 },
15181 +{ 0x4, 200, 0, 1708 },
15182 +{ 0x2, 200, 0, 1709 },
15183 +{ 0x1, 200, 1, 1711 },
15184 +{ 0x1, 201, 1, 1710 },
15185 +{ 0x1, 331, 0, 989 },
15186 +{ 0x8, 209, 0, 1712 },
15187 +{ 0x4, 209, 0, 1713 },
15188 +{ 0x2, 209, 0, 1714 },
15189 +{ 0x1, 209, 1, 1716 },
15190 +{ 0x1, 210, 1, 1715 },
15191 +{ 0x1, 330, 0, 990 },
15192 +{ 0x8, 212, 0, 1717 },
15193 +{ 0x4, 212, 0, 1718 },
15194 +{ 0x2, 212, 0, 1719 },
15195 +{ 0x1, 212, 1, 1721 },
15196 +{ 0x1, 213, 1, 1720 },
15197 +{ 0x1, 329, 0, 991 },
15198 +{ 0x8, 224, 0, 1722 },
15199 +{ 0x4, 224, 0, 1723 },
15200 +{ 0x2, 224, 0, 1724 },
15201 +{ 0x1, 224, 1, 1726 },
15202 +{ 0x1, 225, 0, 1725 },
15203 +{ 0x8, 222, 0, 1727 },
15204 +{ 0x4, 222, 0, 1728 },
15205 +{ 0x2, 222, 0, 1729 },
15206 +{ 0x1, 222, 1, 1731 },
15207 +{ 0x1, 223, 0, 1730 },
15208 +{ 0x1, 240, 0, 1732 },
15209 +{ 0x1, 340, 0, 1733 },
15210 +{ 0x1, 33, 0, 1734 },
15211 +{ 0x8, 151, 0, 1735 },
15212 +{ 0x4, 151, 0, 1736 },
15213 +{ 0x2, 151, 0, 1737 },
15214 +{ 0x1, 151, 1, 1739 },
15215 +{ 0x1, 152, 0, 1738 },
15216 +{ 0x8, 157, 0, 1740 },
15217 +{ 0x4, 157, 0, 1741 },
15218 +{ 0x2, 157, 0, 1742 },
15219 +{ 0x1, 157, 1, 1744 },
15220 +{ 0x1, 158, 0, 1743 },
15221 +{ 0x8, 231, 0, 1745 },
15222 +{ 0x4, 231, 0, 1746 },
15223 +{ 0x2, 231, 0, 1747 },
15224 +{ 0x1, 231, 1, 1749 },
15225 +{ 0x1, 232, 0, 1748 },
15226 +{ 0x1, 173, 0, 1750 },
15227 +{ 0x442, 171, 0, 1751 },
15228 +{ 0x242, 171, 0, 1752 },
15229 +{ 0x142, 171, 0, 1753 },
15230 +{ 0xc2, 171, 1, 1755 },
15231 +{ 0x6, 172, 0, 1754 },
15232 +{ 0x22, 171, 0, 1761 },
15233 +{ 0x12, 171, 0, 1762 },
15234 +{ 0xa, 171, 0, 1763 },
15235 +{ 0x6, 171, 1, 1765 },
15236 +{ 0x2, 172, 1, 1764 },
15237 +{ 0x1, 135, 0, 1165 },
15238 +{ 0x221, 171, 0, 1756 },
15239 +{ 0x121, 171, 0, 1757 },
15240 +{ 0xa1, 171, 0, 1758 },
15241 +{ 0x61, 171, 1, 1760 },
15242 +{ 0x3, 172, 0, 1759 },
15243 +{ 0x11, 171, 0, 1766 },
15244 +{ 0x9, 171, 0, 1767 },
15245 +{ 0x5, 171, 0, 1768 },
15246 +{ 0x3, 171, 1, 1770 },
15247 +{ 0x1, 172, 1, 1769 },
15248 +{ 0x1, 134, 0, 1166 },
15249 +{ 0x1, 237, 0, 1771 },
15250 +{ 0x1, 195, 0, 1772 },
15251 +{ 0x1, 149, 0, 1773 },
15252 +{ 0x1, 148, 0, 1774 },
15253 +{ 0x4, 234, 0, 1775 },
15254 +{ 0x2, 234, 0, 1776 },
15255 +{ 0x1, 234, 0, 1777 },
15256 +{ 0x1, 197, 0, 1778 },
15257 +{ 0x2, 235, 0, 1779 },
15258 +{ 0x1, 235, 0, 1780 },
15259 +{ 0x4, 185, 0, 1781 },
15260 +{ 0x2, 185, 0, 1782 },
15261 +{ 0x1, 185, 0, 1783 },
15262 +{ 0x4, 182, 0, 1784 },
15263 +{ 0x1, 190, 0, 1787 },
15264 +{ 0x1, 189, 1, 1788 },
15265 +{ 0x2, 182, 0, 1785 },
15266 +{ 0x1, 142, 0, 1789 },
15267 +{ 0x1, 297, 1, 1790 },
15268 +{ 0x1, 182, 0, 1786 },
15269 +{ 0x8, 144, 0, 1791 },
15270 +{ 0x4, 144, 0, 1792 },
15271 +{ 0x2, 144, 0, 1793 },
15272 +{ 0x1, 144, 1, 1795 },
15273 +{ 0x1, 145, 0, 1794 },
15274 +{ 0x8, 146, 0, 1796 },
15275 +{ 0x4, 146, 0, 1797 },
15276 +{ 0x2, 146, 0, 1798 },
15277 +{ 0x1, 146, 1, 1800 },
15278 +{ 0x1, 147, 1, 1799 },
15279 +{ 0x1, 426, 0, 1167 },
15280 +{ 0x8, 180, 0, 1801 },
15281 +{ 0x4, 180, 0, 1802 },
15282 +{ 0x2, 180, 0, 1803 },
15283 +{ 0x1, 180, 1, 1805 },
15284 +{ 0x1, 181, 1, 1804 },
15285 +{ 0x1, 425, 0, 1168 },
15286 +{ 0x8, 183, 0, 1806 },
15287 +{ 0x4, 183, 0, 1807 },
15288 +{ 0x2, 183, 0, 1808 },
15289 +{ 0x1, 183, 1, 1810 },
15290 +{ 0x1, 184, 1, 1809 },
15291 +{ 0x1, 424, 0, 1169 },
15292 +{ 0x8, 228, 0, 1811 },
15293 +{ 0x4, 228, 0, 1812 },
15294 +{ 0x2, 228, 0, 1813 },
15295 +{ 0x1, 228, 1, 1815 },
15296 +{ 0x1, 229, 0, 1814 },
15297 +{ 0x8, 226, 0, 1816 },
15298 +{ 0x4, 226, 0, 1817 },
15299 +{ 0x2, 226, 0, 1818 },
15300 +{ 0x1, 226, 1, 1820 },
15301 +{ 0x1, 227, 0, 1819 },
15302 +{ 0x8, 44, 0, 1825 },
15303 +{ 0x18, 44, 0, 1821 },
15304 +{ 0x4, 44, 0, 1826 },
15305 +{ 0xc, 44, 0, 1822 },
15306 +{ 0x2, 44, 0, 1827 },
15307 +{ 0x6, 44, 0, 1823 },
15308 +{ 0x1, 44, 0, 1828 },
15309 +{ 0x3, 44, 0, 1824 },
15310 +{ 0x51, 30, 0, 1830 },
15311 +{ 0xd1, 30, 0, 1829 },
15312 +{ 0x31, 30, 1, 1840 },
15313 +{ 0x11, 31, 0, 1839 },
15314 +{ 0x71, 30, 1, 1838 },
15315 +{ 0x31, 31, 0, 1837 },
15316 +{ 0x29, 30, 0, 1832 },
15317 +{ 0x69, 30, 0, 1831 },
15318 +{ 0x19, 30, 1, 1844 },
15319 +{ 0x9, 31, 0, 1843 },
15320 +{ 0x39, 30, 1, 1842 },
15321 +{ 0x19, 31, 0, 1841 },
15322 +{ 0x15, 30, 0, 1834 },
15323 +{ 0x35, 30, 0, 1833 },
15324 +{ 0xd, 30, 1, 1848 },
15325 +{ 0x5, 31, 0, 1847 },
15326 +{ 0x1d, 30, 1, 1846 },
15327 +{ 0xd, 31, 0, 1845 },
15328 +{ 0xb, 30, 0, 1836 },
15329 +{ 0x1b, 30, 0, 1835 },
15330 +{ 0x7, 30, 1, 1852 },
15331 +{ 0x3, 31, 0, 1851 },
15332 +{ 0xf, 30, 1, 1850 },
15333 +{ 0x7, 31, 0, 1849 },
15334 +{ 0xa2, 28, 0, 1854 },
15335 +{ 0x1a2, 28, 0, 1853 },
15336 +{ 0x62, 28, 1, 1864 },
15337 +{ 0x22, 29, 0, 1863 },
15338 +{ 0xe2, 28, 1, 1862 },
15339 +{ 0x62, 29, 0, 1861 },
15340 +{ 0x52, 28, 0, 1856 },
15341 +{ 0xd2, 28, 0, 1855 },
15342 +{ 0x32, 28, 1, 1868 },
15343 +{ 0x12, 29, 0, 1867 },
15344 +{ 0x72, 28, 1, 1866 },
15345 +{ 0x32, 29, 0, 1865 },
15346 +{ 0x2a, 28, 0, 1858 },
15347 +{ 0x6a, 28, 0, 1857 },
15348 +{ 0x1a, 28, 1, 1872 },
15349 +{ 0xa, 29, 0, 1871 },
15350 +{ 0x3a, 28, 1, 1870 },
15351 +{ 0x1a, 29, 0, 1869 },
15352 +{ 0x16, 28, 0, 1860 },
15353 +{ 0x36, 28, 0, 1859 },
15354 +{ 0xe, 28, 1, 1876 },
15355 +{ 0x6, 29, 0, 1875 },
15356 +{ 0x1e, 28, 1, 1874 },
15357 +{ 0xe, 29, 0, 1873 },
15358 +{ 0x51, 28, 0, 1878 },
15359 +{ 0xd1, 28, 0, 1877 },
15360 +{ 0x31, 28, 1, 1888 },
15361 +{ 0x11, 29, 0, 1887 },
15362 +{ 0x71, 28, 1, 1886 },
15363 +{ 0x31, 29, 0, 1885 },
15364 +{ 0x29, 28, 0, 1880 },
15365 +{ 0x69, 28, 0, 1879 },
15366 +{ 0x19, 28, 1, 1892 },
15367 +{ 0x9, 29, 0, 1891 },
15368 +{ 0x39, 28, 1, 1890 },
15369 +{ 0x19, 29, 0, 1889 },
15370 +{ 0x15, 28, 0, 1882 },
15371 +{ 0x35, 28, 0, 1881 },
15372 +{ 0xd, 28, 1, 1896 },
15373 +{ 0x5, 29, 0, 1895 },
15374 +{ 0x1d, 28, 1, 1894 },
15375 +{ 0xd, 29, 0, 1893 },
15376 +{ 0xb, 28, 0, 1884 },
15377 +{ 0x1b, 28, 0, 1883 },
15378 +{ 0x7, 28, 1, 1900 },
15379 +{ 0x3, 29, 0, 1899 },
15380 +{ 0xf, 28, 1, 1898 },
15381 +{ 0x7, 29, 0, 1897 },
15382 +{ 0x51, 26, 0, 1902 },
15383 +{ 0xd1, 26, 0, 1901 },
15384 +{ 0x31, 26, 1, 1912 },
15385 +{ 0x11, 27, 0, 1911 },
15386 +{ 0x71, 26, 1, 1910 },
15387 +{ 0x31, 27, 0, 1909 },
15388 +{ 0x29, 26, 0, 1904 },
15389 +{ 0x69, 26, 0, 1903 },
15390 +{ 0x19, 26, 1, 1916 },
15391 +{ 0x9, 27, 0, 1915 },
15392 +{ 0x39, 26, 1, 1914 },
15393 +{ 0x19, 27, 0, 1913 },
15394 +{ 0x15, 26, 0, 1906 },
15395 +{ 0x35, 26, 0, 1905 },
15396 +{ 0xd, 26, 1, 1920 },
15397 +{ 0x5, 27, 0, 1919 },
15398 +{ 0x1d, 26, 1, 1918 },
15399 +{ 0xd, 27, 0, 1917 },
15400 +{ 0xb, 26, 0, 1908 },
15401 +{ 0x1b, 26, 0, 1907 },
15402 +{ 0x7, 26, 1, 1924 },
15403 +{ 0x3, 27, 0, 1923 },
15404 +{ 0xf, 26, 1, 1922 },
15405 +{ 0x7, 27, 0, 1921 },
15406 +{ 0xa2, 24, 0, 1926 },
15407 +{ 0x1a2, 24, 0, 1925 },
15408 +{ 0x62, 24, 1, 1936 },
15409 +{ 0x22, 25, 0, 1935 },
15410 +{ 0xe2, 24, 1, 1934 },
15411 +{ 0x62, 25, 0, 1933 },
15412 +{ 0x52, 24, 0, 1928 },
15413 +{ 0xd2, 24, 0, 1927 },
15414 +{ 0x32, 24, 1, 1940 },
15415 +{ 0x12, 25, 0, 1939 },
15416 +{ 0x72, 24, 1, 1938 },
15417 +{ 0x32, 25, 0, 1937 },
15418 +{ 0x2a, 24, 0, 1930 },
15419 +{ 0x6a, 24, 0, 1929 },
15420 +{ 0x1a, 24, 1, 1944 },
15421 +{ 0xa, 25, 0, 1943 },
15422 +{ 0x3a, 24, 1, 1942 },
15423 +{ 0x1a, 25, 0, 1941 },
15424 +{ 0x16, 24, 0, 1932 },
15425 +{ 0x36, 24, 0, 1931 },
15426 +{ 0xe, 24, 1, 1948 },
15427 +{ 0x6, 25, 0, 1947 },
15428 +{ 0x1e, 24, 1, 1946 },
15429 +{ 0xe, 25, 0, 1945 },
15430 +{ 0x51, 24, 0, 1950 },
15431 +{ 0xd1, 24, 0, 1949 },
15432 +{ 0x31, 24, 1, 1960 },
15433 +{ 0x11, 25, 0, 1959 },
15434 +{ 0x71, 24, 1, 1958 },
15435 +{ 0x31, 25, 0, 1957 },
15436 +{ 0x29, 24, 0, 1952 },
15437 +{ 0x69, 24, 0, 1951 },
15438 +{ 0x19, 24, 1, 1964 },
15439 +{ 0x9, 25, 0, 1963 },
15440 +{ 0x39, 24, 1, 1962 },
15441 +{ 0x19, 25, 0, 1961 },
15442 +{ 0x15, 24, 0, 1954 },
15443 +{ 0x35, 24, 0, 1953 },
15444 +{ 0xd, 24, 1, 1968 },
15445 +{ 0x5, 25, 0, 1967 },
15446 +{ 0x1d, 24, 1, 1966 },
15447 +{ 0xd, 25, 0, 1965 },
15448 +{ 0xb, 24, 0, 1956 },
15449 +{ 0x1b, 24, 0, 1955 },
15450 +{ 0x7, 24, 1, 1972 },
15451 +{ 0x3, 25, 0, 1971 },
15452 +{ 0xf, 24, 1, 1970 },
15453 +{ 0x7, 25, 0, 1969 },
15454 +{ 0x51, 22, 1, 1998 },
15455 +{ 0x50, 22, 0, 1974 },
15456 +{ 0xd1, 22, 1, 1997 },
15457 +{ 0xd0, 22, 0, 1973 },
15458 +{ 0x31, 22, 1, 2008 },
15459 +{ 0x30, 22, 1, 1984 },
15460 +{ 0x11, 23, 1, 2007 },
15461 +{ 0x10, 23, 0, 1983 },
15462 +{ 0x71, 22, 1, 2006 },
15463 +{ 0x70, 22, 1, 1982 },
15464 +{ 0x31, 23, 1, 2005 },
15465 +{ 0x30, 23, 0, 1981 },
15466 +{ 0x29, 22, 1, 2000 },
15467 +{ 0x28, 22, 0, 1976 },
15468 +{ 0x69, 22, 1, 1999 },
15469 +{ 0x68, 22, 0, 1975 },
15470 +{ 0x19, 22, 1, 2012 },
15471 +{ 0x18, 22, 1, 1988 },
15472 +{ 0x9, 23, 1, 2011 },
15473 +{ 0x8, 23, 0, 1987 },
15474 +{ 0x39, 22, 1, 2010 },
15475 +{ 0x38, 22, 1, 1986 },
15476 +{ 0x19, 23, 1, 2009 },
15477 +{ 0x18, 23, 0, 1985 },
15478 +{ 0x15, 22, 1, 2002 },
15479 +{ 0x14, 22, 0, 1978 },
15480 +{ 0x35, 22, 1, 2001 },
15481 +{ 0x34, 22, 0, 1977 },
15482 +{ 0xd, 22, 1, 2016 },
15483 +{ 0xc, 22, 1, 1992 },
15484 +{ 0x5, 23, 1, 2015 },
15485 +{ 0x4, 23, 0, 1991 },
15486 +{ 0x1d, 22, 1, 2014 },
15487 +{ 0x1c, 22, 1, 1990 },
15488 +{ 0xd, 23, 1, 2013 },
15489 +{ 0xc, 23, 0, 1989 },
15490 +{ 0xb, 22, 1, 2004 },
15491 +{ 0xa, 22, 0, 1980 },
15492 +{ 0x1b, 22, 1, 2003 },
15493 +{ 0x1a, 22, 0, 1979 },
15494 +{ 0x7, 22, 1, 2020 },
15495 +{ 0x6, 22, 1, 1996 },
15496 +{ 0x3, 23, 1, 2019 },
15497 +{ 0x2, 23, 0, 1995 },
15498 +{ 0xf, 22, 1, 2018 },
15499 +{ 0xe, 22, 1, 1994 },
15500 +{ 0x7, 23, 1, 2017 },
15501 +{ 0x6, 23, 0, 1993 },
15502 +{ 0x8, 21, 0, 2022 },
15503 +{ 0x18, 21, 0, 2021 },
15504 +{ 0x1, 21, 1, 2026 },
15505 +{ 0x2, 21, 0, 2025 },
15506 +{ 0x3, 21, 1, 2024 },
15507 +{ 0x4, 21, 0, 2023 },
15508 +{ 0x1, 239, 0, 2027 },
15509 +{ 0x1, 339, 0, 2028 },
15510 +{ 0x14, 43, 0, 2031 },
15511 +{ 0x34, 43, 0, 2029 },
15512 +{ 0xc, 43, 0, 2032 },
15513 +{ 0x1c, 43, 0, 2030 },
15514 +{ 0x2, 43, 0, 2035 },
15515 +{ 0x6, 43, 0, 2033 },
15516 +{ 0x1, 43, 0, 2036 },
15517 +{ 0x3, 43, 0, 2034 },
15518 +{ 0x51, 19, 0, 2038 },
15519 +{ 0xd1, 19, 0, 2037 },
15520 +{ 0x31, 19, 1, 2048 },
15521 +{ 0x11, 20, 0, 2047 },
15522 +{ 0x71, 19, 1, 2046 },
15523 +{ 0x31, 20, 0, 2045 },
15524 +{ 0x29, 19, 0, 2040 },
15525 +{ 0x69, 19, 0, 2039 },
15526 +{ 0x19, 19, 1, 2052 },
15527 +{ 0x9, 20, 0, 2051 },
15528 +{ 0x39, 19, 1, 2050 },
15529 +{ 0x19, 20, 0, 2049 },
15530 +{ 0x15, 19, 0, 2042 },
15531 +{ 0x35, 19, 0, 2041 },
15532 +{ 0xd, 19, 1, 2056 },
15533 +{ 0x5, 20, 0, 2055 },
15534 +{ 0x1d, 19, 1, 2054 },
15535 +{ 0xd, 20, 0, 2053 },
15536 +{ 0xb, 19, 0, 2044 },
15537 +{ 0x1b, 19, 0, 2043 },
15538 +{ 0x7, 19, 1, 2060 },
15539 +{ 0x3, 20, 0, 2059 },
15540 +{ 0xf, 19, 1, 2058 },
15541 +{ 0x7, 20, 0, 2057 },
15542 +{ 0x1, 32, 0, 2061 },
15543 +{ 0x1, 140, 0, 2062 },
15544 +{ 0x2, 45, 0, 2063 },
15545 +{ 0x1, 45, 0, 2064 },
15546 +{ 0x1, 387, 0, 2065 },
15547 +{ 0x2, 52, 0, 2066 },
15548 +{ 0x1, 52, 0, 2067 },
15549 +{ 0x1, 133, 0, 2068 },
15550 +{ 0x51, 17, 0, 2070 },
15551 +{ 0xd1, 17, 0, 2069 },
15552 +{ 0x31, 17, 1, 2080 },
15553 +{ 0x11, 18, 0, 2079 },
15554 +{ 0x71, 17, 1, 2078 },
15555 +{ 0x31, 18, 0, 2077 },
15556 +{ 0x29, 17, 0, 2072 },
15557 +{ 0x69, 17, 0, 2071 },
15558 +{ 0x19, 17, 1, 2084 },
15559 +{ 0x9, 18, 0, 2083 },
15560 +{ 0x39, 17, 1, 2082 },
15561 +{ 0x19, 18, 0, 2081 },
15562 +{ 0x15, 17, 0, 2074 },
15563 +{ 0x35, 17, 0, 2073 },
15564 +{ 0xd, 17, 1, 2088 },
15565 +{ 0x5, 18, 0, 2087 },
15566 +{ 0x1d, 17, 1, 2086 },
15567 +{ 0xd, 18, 0, 2085 },
15568 +{ 0xb, 17, 0, 2076 },
15569 +{ 0x1b, 17, 0, 2075 },
15570 +{ 0x7, 17, 1, 2092 },
15571 +{ 0x3, 18, 0, 2091 },
15572 +{ 0xf, 17, 1, 2090 },
15573 +{ 0x7, 18, 0, 2089 },
15574 +{ 0xa20, 15, 0, 2094 },
15575 +{ 0x1a20, 15, 0, 2093 },
15576 +{ 0x620, 15, 1, 2104 },
15577 +{ 0x220, 16, 0, 2103 },
15578 +{ 0xe20, 15, 1, 2102 },
15579 +{ 0x620, 16, 0, 2101 },
15580 +{ 0x520, 15, 0, 2096 },
15581 +{ 0xd20, 15, 0, 2095 },
15582 +{ 0x320, 15, 1, 2108 },
15583 +{ 0x120, 16, 0, 2107 },
15584 +{ 0x720, 15, 1, 2106 },
15585 +{ 0x320, 16, 0, 2105 },
15586 +{ 0x2a0, 15, 0, 2098 },
15587 +{ 0x6a0, 15, 0, 2097 },
15588 +{ 0x1a0, 15, 1, 2112 },
15589 +{ 0xa0, 16, 0, 2111 },
15590 +{ 0x3a0, 15, 1, 2110 },
15591 +{ 0x1a0, 16, 0, 2109 },
15592 +{ 0x160, 15, 0, 2100 },
15593 +{ 0x360, 15, 0, 2099 },
15594 +{ 0xe0, 15, 1, 2116 },
15595 +{ 0x60, 16, 0, 2115 },
15596 +{ 0x1e0, 15, 1, 2114 },
15597 +{ 0xe0, 16, 0, 2113 },
15598 +{ 0x51, 15, 1, 2142 },
15599 +{ 0x50, 15, 0, 2118 },
15600 +{ 0xd1, 15, 1, 2141 },
15601 +{ 0xd0, 15, 0, 2117 },
15602 +{ 0x31, 15, 1, 2152 },
15603 +{ 0x30, 15, 1, 2128 },
15604 +{ 0x11, 16, 1, 2151 },
15605 +{ 0x10, 16, 0, 2127 },
15606 +{ 0x71, 15, 1, 2150 },
15607 +{ 0x70, 15, 1, 2126 },
15608 +{ 0x31, 16, 1, 2149 },
15609 +{ 0x30, 16, 0, 2125 },
15610 +{ 0x29, 15, 1, 2144 },
15611 +{ 0x28, 15, 0, 2120 },
15612 +{ 0x69, 15, 1, 2143 },
15613 +{ 0x68, 15, 0, 2119 },
15614 +{ 0x19, 15, 1, 2156 },
15615 +{ 0x18, 15, 1, 2132 },
15616 +{ 0x9, 16, 1, 2155 },
15617 +{ 0x8, 16, 0, 2131 },
15618 +{ 0x39, 15, 1, 2154 },
15619 +{ 0x38, 15, 1, 2130 },
15620 +{ 0x19, 16, 1, 2153 },
15621 +{ 0x18, 16, 0, 2129 },
15622 +{ 0x15, 15, 1, 2146 },
15623 +{ 0x14, 15, 0, 2122 },
15624 +{ 0x35, 15, 1, 2145 },
15625 +{ 0x34, 15, 0, 2121 },
15626 +{ 0xd, 15, 1, 2160 },
15627 +{ 0xc, 15, 1, 2136 },
15628 +{ 0x5, 16, 1, 2159 },
15629 +{ 0x4, 16, 0, 2135 },
15630 +{ 0x1d, 15, 1, 2158 },
15631 +{ 0x1c, 15, 1, 2134 },
15632 +{ 0xd, 16, 1, 2157 },
15633 +{ 0xc, 16, 0, 2133 },
15634 +{ 0xb, 15, 1, 2148 },
15635 +{ 0xa, 15, 0, 2124 },
15636 +{ 0x1b, 15, 1, 2147 },
15637 +{ 0x1a, 15, 0, 2123 },
15638 +{ 0x7, 15, 1, 2164 },
15639 +{ 0x6, 15, 1, 2140 },
15640 +{ 0x3, 16, 1, 2163 },
15641 +{ 0x2, 16, 0, 2139 },
15642 +{ 0xf, 15, 1, 2162 },
15643 +{ 0xe, 15, 1, 2138 },
15644 +{ 0x7, 16, 1, 2161 },
15645 +{ 0x6, 16, 0, 2137 },
15646 +{ 0x8, 14, 0, 2166 },
15647 +{ 0x18, 14, 0, 2165 },
15648 +{ 0x1, 14, 1, 2170 },
15649 +{ 0x2, 14, 0, 2169 },
15650 +{ 0x3, 14, 1, 2168 },
15651 +{ 0x4, 14, 0, 2167 },
15652 +{ 0x1, 109, 1, 2322 },
15653 +{ 0x1, 110, 1, 2321 },
15654 +{ 0x1, 111, 1, 2320 },
15655 +{ 0x1, 112, 1, 2319 },
15656 +{ 0x1, 113, 1, 2318 },
15657 +{ 0x1, 114, 1, 2317 },
15658 +{ 0x1, 115, 1, 2316 },
15659 +{ 0x1, 116, 1, 2315 },
15660 +{ 0x39, 41, 1, 22 },
15661 +{ 0x19, 42, 0, 21 },
15662 +{ 0x3, 109, 1, 2314 },
15663 +{ 0x3, 110, 1, 2313 },
15664 +{ 0x3, 111, 1, 2312 },
15665 +{ 0x3, 112, 1, 2311 },
15666 +{ 0x3, 113, 1, 2310 },
15667 +{ 0x3, 114, 1, 2309 },
15668 +{ 0x3, 115, 1, 2308 },
15669 +{ 0x3, 116, 1, 2307 },
15670 +{ 0x69, 41, 0, 11 },
15671 +{ 0x14, 100, 1, 2302 },
15672 +{ 0x22, 101, 1, 2299 },
15673 +{ 0x44, 101, 1, 2301 },
15674 +{ 0xa, 108, 1, 2300 },
15675 +{ 0xd1, 41, 0, 9 },
15676 +{ 0x34, 100, 1, 2174 },
15677 +{ 0xc4, 101, 1, 2173 },
15678 +{ 0x1c, 107, 1, 2171 },
15679 +{ 0xe, 122, 0, 2172 },
15680 +{ 0xc, 100, 1, 2462 },
15681 +{ 0xa, 101, 1, 2459 },
15682 +{ 0x14, 101, 1, 2461 },
15683 +{ 0x6, 108, 0, 2460 },
15684 +{ 0x2, 100, 1, 2186 },
15685 +{ 0x2, 101, 1, 2185 },
15686 +{ 0x2, 106, 1, 2184 },
15687 +{ 0x2, 107, 0, 2183 },
15688 +{ 0x12, 100, 1, 2182 },
15689 +{ 0x42, 101, 1, 2181 },
15690 +{ 0x6, 106, 1, 2180 },
15691 +{ 0x6, 107, 0, 2179 },
15692 +{ 0xa, 100, 1, 2306 },
15693 +{ 0x12, 101, 1, 2305 },
15694 +{ 0x24, 101, 1, 2303 },
15695 +{ 0x5, 108, 1, 2304 },
15696 +{ 0x71, 41, 1, 18 },
15697 +{ 0x31, 42, 0, 17 },
15698 +{ 0x1a, 100, 1, 2178 },
15699 +{ 0x32, 101, 1, 2177 },
15700 +{ 0x1a, 107, 1, 2175 },
15701 +{ 0x7, 122, 0, 2176 },
15702 +{ 0x6, 100, 1, 2466 },
15703 +{ 0x6, 101, 1, 2465 },
15704 +{ 0xc, 101, 1, 2463 },
15705 +{ 0x3, 108, 0, 2464 },
15706 +{ 0x1, 100, 1, 2482 },
15707 +{ 0x1, 101, 1, 2481 },
15708 +{ 0x1, 102, 1, 2480 },
15709 +{ 0x1, 103, 1, 2479 },
15710 +{ 0x1, 104, 1, 2478 },
15711 +{ 0x1, 105, 1, 2477 },
15712 +{ 0x1, 106, 1, 2476 },
15713 +{ 0x1, 107, 0, 2475 },
15714 +{ 0x3, 100, 1, 2474 },
15715 +{ 0x3, 101, 1, 2473 },
15716 +{ 0x3, 102, 1, 2472 },
15717 +{ 0x3, 103, 1, 2471 },
15718 +{ 0x3, 104, 1, 2470 },
15719 +{ 0x3, 105, 1, 2469 },
15720 +{ 0x3, 106, 1, 2468 },
15721 +{ 0x3, 107, 0, 2467 },
15722 +{ 0x8, 67, 1, 2346 },
15723 +{ 0x8, 68, 1, 2345 },
15724 +{ 0x2, 73, 1, 2340 },
15725 +{ 0x2, 74, 1, 2339 },
15726 +{ 0x1, 76, 1, 2344 },
15727 +{ 0x1, 77, 1, 2343 },
15728 +{ 0x1, 78, 1, 2342 },
15729 +{ 0x1, 79, 1, 2341 },
15730 +{ 0xf, 41, 1, 30 },
15731 +{ 0x7, 42, 0, 29 },
15732 +{ 0x18, 67, 1, 2338 },
15733 +{ 0x18, 68, 1, 2337 },
15734 +{ 0x6, 73, 1, 2332 },
15735 +{ 0x6, 74, 1, 2331 },
15736 +{ 0x3, 76, 1, 2336 },
15737 +{ 0x3, 77, 1, 2335 },
15738 +{ 0x3, 78, 1, 2334 },
15739 +{ 0x3, 79, 1, 2333 },
15740 +{ 0x1b, 41, 0, 15 },
15741 +{ 0x14, 67, 1, 2326 },
15742 +{ 0x22, 68, 1, 2323 },
15743 +{ 0x44, 68, 1, 2325 },
15744 +{ 0xa, 75, 1, 2324 },
15745 +{ 0x35, 41, 0, 13 },
15746 +{ 0x34, 67, 1, 2190 },
15747 +{ 0xc4, 68, 1, 2189 },
15748 +{ 0x38, 74, 1, 2187 },
15749 +{ 0xe, 85, 0, 2188 },
15750 +{ 0xc, 67, 1, 2486 },
15751 +{ 0xa, 68, 1, 2483 },
15752 +{ 0x14, 68, 1, 2485 },
15753 +{ 0x6, 75, 0, 2484 },
15754 +{ 0x2, 67, 1, 2202 },
15755 +{ 0x2, 68, 1, 2201 },
15756 +{ 0x4, 73, 1, 2200 },
15757 +{ 0x4, 74, 0, 2199 },
15758 +{ 0x12, 67, 1, 2198 },
15759 +{ 0x42, 68, 1, 2197 },
15760 +{ 0xc, 73, 1, 2196 },
15761 +{ 0xc, 74, 0, 2195 },
15762 +{ 0xa, 67, 1, 2330 },
15763 +{ 0x12, 68, 1, 2329 },
15764 +{ 0x24, 68, 1, 2327 },
15765 +{ 0x5, 75, 1, 2328 },
15766 +{ 0x1d, 41, 1, 26 },
15767 +{ 0xd, 42, 0, 25 },
15768 +{ 0x1a, 67, 1, 2194 },
15769 +{ 0x32, 68, 1, 2193 },
15770 +{ 0x34, 74, 1, 2191 },
15771 +{ 0x7, 85, 0, 2192 },
15772 +{ 0x6, 67, 1, 2490 },
15773 +{ 0x6, 68, 1, 2489 },
15774 +{ 0xc, 68, 1, 2487 },
15775 +{ 0x3, 75, 0, 2488 },
15776 +{ 0x1, 67, 1, 2506 },
15777 +{ 0x1, 68, 1, 2505 },
15778 +{ 0x1, 69, 1, 2504 },
15779 +{ 0x1, 70, 1, 2503 },
15780 +{ 0x1, 71, 1, 2502 },
15781 +{ 0x1, 72, 1, 2501 },
15782 +{ 0x1, 73, 1, 2500 },
15783 +{ 0x1, 74, 0, 2499 },
15784 +{ 0x3, 67, 1, 2498 },
15785 +{ 0x3, 68, 1, 2497 },
15786 +{ 0x3, 69, 1, 2496 },
15787 +{ 0x3, 70, 1, 2495 },
15788 +{ 0x3, 71, 1, 2494 },
15789 +{ 0x3, 72, 1, 2493 },
15790 +{ 0x3, 73, 1, 2492 },
15791 +{ 0x3, 74, 0, 2491 },
15792 +{ 0x28, 95, 1, 2354 },
15793 +{ 0x44, 96, 1, 2349 },
15794 +{ 0x88, 96, 1, 2353 },
15795 +{ 0x44, 97, 1, 2348 },
15796 +{ 0x88, 97, 1, 2352 },
15797 +{ 0x44, 98, 1, 2347 },
15798 +{ 0x88, 98, 1, 2351 },
15799 +{ 0x28, 99, 0, 2350 },
15800 +{ 0x68, 95, 1, 2210 },
15801 +{ 0x188, 96, 1, 2209 },
15802 +{ 0x188, 97, 1, 2208 },
15803 +{ 0x188, 98, 1, 2207 },
15804 +{ 0x38, 118, 1, 2206 },
15805 +{ 0x38, 119, 1, 2205 },
15806 +{ 0x38, 120, 1, 2204 },
15807 +{ 0x38, 121, 0, 2203 },
15808 +{ 0x18, 95, 1, 2514 },
15809 +{ 0x14, 96, 1, 2509 },
15810 +{ 0x28, 96, 1, 2513 },
15811 +{ 0x14, 97, 1, 2508 },
15812 +{ 0x28, 97, 1, 2512 },
15813 +{ 0x14, 98, 1, 2507 },
15814 +{ 0x28, 98, 1, 2511 },
15815 +{ 0x18, 99, 0, 2510 },
15816 +{ 0x14, 95, 1, 2362 },
15817 +{ 0x24, 96, 1, 2361 },
15818 +{ 0x48, 96, 1, 2357 },
15819 +{ 0x24, 97, 1, 2360 },
15820 +{ 0x48, 97, 1, 2356 },
15821 +{ 0x24, 98, 1, 2359 },
15822 +{ 0x48, 98, 1, 2355 },
15823 +{ 0x14, 99, 0, 2358 },
15824 +{ 0x34, 95, 1, 2218 },
15825 +{ 0x64, 96, 1, 2217 },
15826 +{ 0x64, 97, 1, 2216 },
15827 +{ 0x64, 98, 1, 2215 },
15828 +{ 0x1c, 118, 1, 2214 },
15829 +{ 0x1c, 119, 1, 2213 },
15830 +{ 0x1c, 120, 1, 2212 },
15831 +{ 0x1c, 121, 0, 2211 },
15832 +{ 0xc, 95, 1, 2522 },
15833 +{ 0xc, 96, 1, 2521 },
15834 +{ 0x18, 96, 1, 2517 },
15835 +{ 0xc, 97, 1, 2520 },
15836 +{ 0x18, 97, 1, 2516 },
15837 +{ 0xc, 98, 1, 2519 },
15838 +{ 0x18, 98, 1, 2515 },
15839 +{ 0xc, 99, 0, 2518 },
15840 +{ 0xa, 95, 1, 2370 },
15841 +{ 0x11, 96, 1, 2365 },
15842 +{ 0x22, 96, 1, 2369 },
15843 +{ 0x11, 97, 1, 2364 },
15844 +{ 0x22, 97, 1, 2368 },
15845 +{ 0x11, 98, 1, 2363 },
15846 +{ 0x22, 98, 1, 2367 },
15847 +{ 0xa, 99, 0, 2366 },
15848 +{ 0x1a, 95, 1, 2226 },
15849 +{ 0x62, 96, 1, 2225 },
15850 +{ 0x62, 97, 1, 2224 },
15851 +{ 0x62, 98, 1, 2223 },
15852 +{ 0xe, 118, 1, 2222 },
15853 +{ 0xe, 119, 1, 2221 },
15854 +{ 0xe, 120, 1, 2220 },
15855 +{ 0xe, 121, 0, 2219 },
15856 +{ 0x6, 95, 1, 2530 },
15857 +{ 0x5, 96, 1, 2525 },
15858 +{ 0xa, 96, 1, 2529 },
15859 +{ 0x5, 97, 1, 2524 },
15860 +{ 0xa, 97, 1, 2528 },
15861 +{ 0x5, 98, 1, 2523 },
15862 +{ 0xa, 98, 1, 2527 },
15863 +{ 0x6, 99, 0, 2526 },
15864 +{ 0x5, 95, 1, 2378 },
15865 +{ 0x9, 96, 1, 2377 },
15866 +{ 0x12, 96, 1, 2373 },
15867 +{ 0x9, 97, 1, 2376 },
15868 +{ 0x12, 97, 1, 2372 },
15869 +{ 0x9, 98, 1, 2375 },
15870 +{ 0x12, 98, 1, 2371 },
15871 +{ 0x5, 99, 0, 2374 },
15872 +{ 0xd, 95, 1, 2234 },
15873 +{ 0x19, 96, 1, 2233 },
15874 +{ 0x19, 97, 1, 2232 },
15875 +{ 0x19, 98, 1, 2231 },
15876 +{ 0x7, 118, 1, 2230 },
15877 +{ 0x7, 119, 1, 2229 },
15878 +{ 0x7, 120, 1, 2228 },
15879 +{ 0x7, 121, 0, 2227 },
15880 +{ 0x3, 95, 1, 2538 },
15881 +{ 0x3, 96, 1, 2537 },
15882 +{ 0x6, 96, 1, 2533 },
15883 +{ 0x3, 97, 1, 2536 },
15884 +{ 0x6, 97, 1, 2532 },
15885 +{ 0x3, 98, 1, 2535 },
15886 +{ 0x6, 98, 1, 2531 },
15887 +{ 0x3, 99, 0, 2534 },
15888 +{ 0x28, 62, 1, 2386 },
15889 +{ 0x44, 63, 1, 2381 },
15890 +{ 0x88, 63, 1, 2385 },
15891 +{ 0x44, 64, 1, 2380 },
15892 +{ 0x88, 64, 1, 2384 },
15893 +{ 0x44, 65, 1, 2379 },
15894 +{ 0x88, 65, 1, 2383 },
15895 +{ 0x28, 66, 0, 2382 },
15896 +{ 0x68, 62, 1, 2242 },
15897 +{ 0x188, 63, 1, 2241 },
15898 +{ 0x188, 64, 1, 2240 },
15899 +{ 0x188, 65, 1, 2239 },
15900 +{ 0x38, 81, 1, 2238 },
15901 +{ 0x38, 82, 1, 2237 },
15902 +{ 0x38, 83, 1, 2236 },
15903 +{ 0x38, 84, 0, 2235 },
15904 +{ 0x18, 62, 1, 2546 },
15905 +{ 0x14, 63, 1, 2541 },
15906 +{ 0x28, 63, 1, 2545 },
15907 +{ 0x14, 64, 1, 2540 },
15908 +{ 0x28, 64, 1, 2544 },
15909 +{ 0x14, 65, 1, 2539 },
15910 +{ 0x28, 65, 1, 2543 },
15911 +{ 0x18, 66, 0, 2542 },
15912 +{ 0x14, 62, 1, 2394 },
15913 +{ 0x24, 63, 1, 2393 },
15914 +{ 0x48, 63, 1, 2389 },
15915 +{ 0x24, 64, 1, 2392 },
15916 +{ 0x48, 64, 1, 2388 },
15917 +{ 0x24, 65, 1, 2391 },
15918 +{ 0x48, 65, 1, 2387 },
15919 +{ 0x14, 66, 0, 2390 },
15920 +{ 0x34, 62, 1, 2250 },
15921 +{ 0x64, 63, 1, 2249 },
15922 +{ 0x64, 64, 1, 2248 },
15923 +{ 0x64, 65, 1, 2247 },
15924 +{ 0x1c, 81, 1, 2246 },
15925 +{ 0x1c, 82, 1, 2245 },
15926 +{ 0x1c, 83, 1, 2244 },
15927 +{ 0x1c, 84, 0, 2243 },
15928 +{ 0xc, 62, 1, 2554 },
15929 +{ 0xc, 63, 1, 2553 },
15930 +{ 0x18, 63, 1, 2549 },
15931 +{ 0xc, 64, 1, 2552 },
15932 +{ 0x18, 64, 1, 2548 },
15933 +{ 0xc, 65, 1, 2551 },
15934 +{ 0x18, 65, 1, 2547 },
15935 +{ 0xc, 66, 0, 2550 },
15936 +{ 0xa, 62, 1, 2402 },
15937 +{ 0x11, 63, 1, 2397 },
15938 +{ 0x22, 63, 1, 2401 },
15939 +{ 0x11, 64, 1, 2396 },
15940 +{ 0x22, 64, 1, 2400 },
15941 +{ 0x11, 65, 1, 2395 },
15942 +{ 0x22, 65, 1, 2399 },
15943 +{ 0xa, 66, 0, 2398 },
15944 +{ 0x1a, 62, 1, 2258 },
15945 +{ 0x62, 63, 1, 2257 },
15946 +{ 0x62, 64, 1, 2256 },
15947 +{ 0x62, 65, 1, 2255 },
15948 +{ 0xe, 81, 1, 2254 },
15949 +{ 0xe, 82, 1, 2253 },
15950 +{ 0xe, 83, 1, 2252 },
15951 +{ 0xe, 84, 0, 2251 },
15952 +{ 0x6, 62, 1, 2562 },
15953 +{ 0x5, 63, 1, 2557 },
15954 +{ 0xa, 63, 1, 2561 },
15955 +{ 0x5, 64, 1, 2556 },
15956 +{ 0xa, 64, 1, 2560 },
15957 +{ 0x5, 65, 1, 2555 },
15958 +{ 0xa, 65, 1, 2559 },
15959 +{ 0x6, 66, 0, 2558 },
15960 +{ 0x5, 62, 1, 2410 },
15961 +{ 0x9, 63, 1, 2409 },
15962 +{ 0x12, 63, 1, 2405 },
15963 +{ 0x9, 64, 1, 2408 },
15964 +{ 0x12, 64, 1, 2404 },
15965 +{ 0x9, 65, 1, 2407 },
15966 +{ 0x12, 65, 1, 2403 },
15967 +{ 0x5, 66, 0, 2406 },
15968 +{ 0xd, 62, 1, 2266 },
15969 +{ 0x19, 63, 1, 2265 },
15970 +{ 0x19, 64, 1, 2264 },
15971 +{ 0x19, 65, 1, 2263 },
15972 +{ 0x7, 81, 1, 2262 },
15973 +{ 0x7, 82, 1, 2261 },
15974 +{ 0x7, 83, 1, 2260 },
15975 +{ 0x7, 84, 0, 2259 },
15976 +{ 0x3, 62, 1, 2570 },
15977 +{ 0x3, 63, 1, 2569 },
15978 +{ 0x6, 63, 1, 2565 },
15979 +{ 0x3, 64, 1, 2568 },
15980 +{ 0x6, 64, 1, 2564 },
15981 +{ 0x3, 65, 1, 2567 },
15982 +{ 0x6, 65, 1, 2563 },
15983 +{ 0x3, 66, 0, 2566 },
15984 +{ 0x8, 86, 1, 2434 },
15985 +{ 0x8, 87, 1, 2433 },
15986 +{ 0x2, 88, 1, 2432 },
15987 +{ 0x2, 89, 1, 2431 },
15988 +{ 0x2, 90, 1, 2430 },
15989 +{ 0x2, 91, 1, 2429 },
15990 +{ 0x2, 92, 1, 2428 },
15991 +{ 0x2, 93, 0, 2427 },
15992 +{ 0x18, 86, 1, 2426 },
15993 +{ 0x18, 87, 1, 2425 },
15994 +{ 0x6, 88, 1, 2424 },
15995 +{ 0x6, 89, 1, 2423 },
15996 +{ 0x6, 90, 1, 2422 },
15997 +{ 0x6, 91, 1, 2421 },
15998 +{ 0x6, 92, 1, 2420 },
15999 +{ 0x6, 93, 0, 2419 },
16000 +{ 0x14, 86, 1, 2414 },
16001 +{ 0x22, 87, 1, 2411 },
16002 +{ 0x44, 87, 1, 2413 },
16003 +{ 0xa, 94, 0, 2412 },
16004 +{ 0x34, 86, 1, 2270 },
16005 +{ 0xc4, 87, 1, 2269 },
16006 +{ 0x38, 93, 1, 2267 },
16007 +{ 0xe, 117, 0, 2268 },
16008 +{ 0xc, 86, 1, 2574 },
16009 +{ 0xa, 87, 1, 2571 },
16010 +{ 0x14, 87, 1, 2573 },
16011 +{ 0x6, 94, 0, 2572 },
16012 +{ 0x2, 86, 1, 2282 },
16013 +{ 0x2, 87, 1, 2281 },
16014 +{ 0x4, 92, 1, 2280 },
16015 +{ 0x4, 93, 0, 2279 },
16016 +{ 0x12, 86, 1, 2278 },
16017 +{ 0x42, 87, 1, 2277 },
16018 +{ 0xc, 92, 1, 2276 },
16019 +{ 0xc, 93, 0, 2275 },
16020 +{ 0xa, 86, 1, 2418 },
16021 +{ 0x12, 87, 1, 2417 },
16022 +{ 0x24, 87, 1, 2415 },
16023 +{ 0x5, 94, 0, 2416 },
16024 +{ 0x1a, 86, 1, 2274 },
16025 +{ 0x32, 87, 1, 2273 },
16026 +{ 0x34, 93, 1, 2271 },
16027 +{ 0x7, 117, 0, 2272 },
16028 +{ 0x6, 86, 1, 2578 },
16029 +{ 0x6, 87, 1, 2577 },
16030 +{ 0xc, 87, 1, 2575 },
16031 +{ 0x3, 94, 0, 2576 },
16032 +{ 0x1, 86, 1, 2594 },
16033 +{ 0x1, 87, 1, 2593 },
16034 +{ 0x1, 88, 1, 2592 },
16035 +{ 0x1, 89, 1, 2591 },
16036 +{ 0x1, 90, 1, 2590 },
16037 +{ 0x1, 91, 1, 2589 },
16038 +{ 0x1, 92, 1, 2588 },
16039 +{ 0x1, 93, 0, 2587 },
16040 +{ 0x3, 86, 1, 2586 },
16041 +{ 0x3, 87, 1, 2585 },
16042 +{ 0x3, 88, 1, 2584 },
16043 +{ 0x3, 89, 1, 2583 },
16044 +{ 0x3, 90, 1, 2582 },
16045 +{ 0x3, 91, 1, 2581 },
16046 +{ 0x3, 92, 1, 2580 },
16047 +{ 0x3, 93, 0, 2579 },
16048 +{ 0x8, 53, 1, 2458 },
16049 +{ 0x8, 54, 1, 2457 },
16050 +{ 0x2, 55, 1, 2456 },
16051 +{ 0x2, 56, 1, 2455 },
16052 +{ 0x2, 57, 1, 2454 },
16053 +{ 0x2, 58, 1, 2453 },
16054 +{ 0x2, 59, 1, 2452 },
16055 +{ 0x2, 60, 0, 2451 },
16056 +{ 0x18, 53, 1, 2450 },
16057 +{ 0x18, 54, 1, 2449 },
16058 +{ 0x6, 55, 1, 2448 },
16059 +{ 0x6, 56, 1, 2447 },
16060 +{ 0x6, 57, 1, 2446 },
16061 +{ 0x6, 58, 1, 2445 },
16062 +{ 0x6, 59, 1, 2444 },
16063 +{ 0x6, 60, 0, 2443 },
16064 +{ 0x14, 53, 1, 2438 },
16065 +{ 0x22, 54, 1, 2435 },
16066 +{ 0x44, 54, 1, 2437 },
16067 +{ 0xa, 61, 0, 2436 },
16068 +{ 0x34, 53, 1, 2286 },
16069 +{ 0xc4, 54, 1, 2285 },
16070 +{ 0x38, 60, 1, 2283 },
16071 +{ 0xe, 80, 0, 2284 },
16072 +{ 0xc, 53, 1, 2598 },
16073 +{ 0xa, 54, 1, 2595 },
16074 +{ 0x14, 54, 1, 2597 },
16075 +{ 0x6, 61, 0, 2596 },
16076 +{ 0x2, 53, 1, 2298 },
16077 +{ 0x2, 54, 1, 2297 },
16078 +{ 0x4, 59, 1, 2296 },
16079 +{ 0x4, 60, 0, 2295 },
16080 +{ 0x12, 53, 1, 2294 },
16081 +{ 0x42, 54, 1, 2293 },
16082 +{ 0xc, 59, 1, 2292 },
16083 +{ 0xc, 60, 0, 2291 },
16084 +{ 0xa, 53, 1, 2442 },
16085 +{ 0x12, 54, 1, 2441 },
16086 +{ 0x24, 54, 1, 2439 },
16087 +{ 0x5, 61, 0, 2440 },
16088 +{ 0x1a, 53, 1, 2290 },
16089 +{ 0x32, 54, 1, 2289 },
16090 +{ 0x34, 60, 1, 2287 },
16091 +{ 0x7, 80, 0, 2288 },
16092 +{ 0x6, 53, 1, 2602 },
16093 +{ 0x6, 54, 1, 2601 },
16094 +{ 0xc, 54, 1, 2599 },
16095 +{ 0x3, 61, 0, 2600 },
16096 +{ 0x1, 53, 1, 2618 },
16097 +{ 0x1, 54, 1, 2617 },
16098 +{ 0x1, 55, 1, 2616 },
16099 +{ 0x1, 56, 1, 2615 },
16100 +{ 0x1, 57, 1, 2614 },
16101 +{ 0x1, 58, 1, 2613 },
16102 +{ 0x1, 59, 1, 2612 },
16103 +{ 0x1, 60, 0, 2611 },
16104 +{ 0x3, 53, 1, 2610 },
16105 +{ 0x3, 54, 1, 2609 },
16106 +{ 0x3, 55, 1, 2608 },
16107 +{ 0x3, 56, 1, 2607 },
16108 +{ 0x3, 57, 1, 2606 },
16109 +{ 0x3, 58, 1, 2605 },
16110 +{ 0x3, 59, 1, 2604 },
16111 +{ 0x3, 60, 0, 2603 },
16112 +{ 0x1, 4, 0, 2619 },
16113 +{ 0x1, 296, 0, 2620 },
16114 +{ 0x1, 379, 0, 2621 },
16115 +{ 0x1, 374, 0, 2622 },
16116 +{ 0x2, 358, 0, 2623 },
16117 +{ 0x1, 358, 0, 2626 },
16118 +{ 0x2, 357, 0, 2624 },
16119 +{ 0x1, 357, 0, 2627 },
16120 +{ 0x2, 356, 0, 2625 },
16121 +{ 0x1, 356, 0, 2628 },
16122 +{ 0x1, 355, 0, 2629 },
16123 +{ 0x1, 354, 0, 2630 },
16124 +{ 0x2, 353, 0, 2631 },
16125 +{ 0x1, 353, 0, 2633 },
16126 +{ 0x2, 352, 0, 2632 },
16127 +{ 0x1, 352, 0, 2634 },
16128 +{ 0x1, 382, 0, 2641 },
16129 +{ 0x8, 381, 0, 2635 },
16130 +{ 0x4, 381, 0, 2637 },
16131 +{ 0x2, 381, 0, 2639 },
16132 +{ 0x1, 381, 0, 2642 },
16133 +{ 0x8, 380, 0, 2636 },
16134 +{ 0x4, 380, 0, 2638 },
16135 +{ 0x2, 380, 0, 2640 },
16136 +{ 0x1, 380, 0, 2643 },
16137 +{ 0x1, 351, 0, 2650 },
16138 +{ 0x8, 350, 0, 2644 },
16139 +{ 0x4, 350, 0, 2646 },
16140 +{ 0x2, 350, 0, 2648 },
16141 +{ 0x1, 350, 0, 2651 },
16142 +{ 0x8, 349, 0, 2645 },
16143 +{ 0x4, 349, 0, 2647 },
16144 +{ 0x2, 349, 1, 2649 },
16145 +{ 0x4, 143, 0, 1345 },
16146 +{ 0x1, 349, 0, 2652 },
16147 +{ 0x1, 6, 0, 2653 },
16148 +{ 0x1, 7, 0, 2654 },
16149 +{ 0x1, 295, 0, 2655 },
16150 +{ 0x1, 451, 0, 2656 },
16151 +{ 0x1, 346, 0, 2657 },
16152 +{ 0x1, 13, 0, 2658 },
16153 +{ 0x1, 11, 0, 2659 },
16154 +{ 0x1, 422, 0, 2660 },
16155 +{ 0x1, 394, 0, 2661 },
16156 +{ 0x1, 393, 0, 2662 },
16157 +{ 0x1, 450, 0, 2663 },
16158 +{ 0x1, 345, 0, 2664 },
16159 +{ 0x1, 12, 0, 2665 },
16160 +{ 0x1, 10, 0, 2666 },
16161 +{ 0x1, 5, 0, 2667 },
16162 +{ 0x1, 421, 0, 2668 },
16163 +{ 0x1, 420, 0, 2669 },
16164 +{ 0x1, 1, 0, 2670 },
16165 +{ 0x1, 0, 0, 2671 },
16166 +};
16167 +
16168 --- /dev/null
16169 +++ b/arch/ia64/kdb/ia64-asmtab.h
16170 @@ -0,0 +1,158 @@
16171 +/* ia64-asmtab.h -- Header for compacted IA-64 opcode tables.
16172 + Copyright 1999, 2000 Free Software Foundation, Inc.
16173 + Contributed by Bob Manson of Cygnus Support <manson@cygnus.com>
16174 +
16175 + This file is part of GDB, GAS, and the GNU binutils.
16176 +
16177 + GDB, GAS, and the GNU binutils are free software; you can redistribute
16178 + them and/or modify them under the terms of the GNU General Public
16179 + License as published by the Free Software Foundation; either version
16180 + 2, or (at your option) any later version.
16181 +
16182 + GDB, GAS, and the GNU binutils are distributed in the hope that they
16183 + will be useful, but WITHOUT ANY WARRANTY; without even the implied
16184 + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
16185 + the GNU General Public License for more details.
16186 +
16187 + You should have received a copy of the GNU General Public License
16188 + along with this file; see the file COPYING. If not, write to the
16189 + Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
16190 + 02110-1301, USA. */
16191 +
16192 +/* Extracted from binutils 2.16.91.0.2 (OpenSUSE 10.0) and modified for kdb use.
16193 + * Any trailing whitespace was removed and #ifdef/ifndef __KERNEL__ added as
16194 + * required.
16195 + * Keith Owens <kaos@sgi.com> 15 May 2006
16196 + */
16197 +
16198 +#ifndef IA64_ASMTAB_H
16199 +#define IA64_ASMTAB_H
16200 +
16201 +#ifdef __KERNEL__
16202 +#include "ia64.h"
16203 +#else /* __KERNEL__ */
16204 +#include "opcode/ia64.h"
16205 +#endif /* __KERNEL__ */
16206 +
16207 +/* The primary opcode table is made up of the following: */
16208 +struct ia64_main_table
16209 +{
16210 + /* The entry in the string table that corresponds to the name of this
16211 + opcode. */
16212 + unsigned short name_index;
16213 +
16214 + /* The type of opcode; corresponds to the TYPE field in
16215 + struct ia64_opcode. */
16216 + unsigned char opcode_type;
16217 +
16218 + /* The number of outputs for this opcode. */
16219 + unsigned char num_outputs;
16220 +
16221 + /* The base insn value for this opcode. It may be modified by completers. */
16222 + ia64_insn opcode;
16223 +
16224 + /* The mask of valid bits in OPCODE. Zeros indicate operand fields. */
16225 + ia64_insn mask;
16226 +
16227 + /* The operands of this instruction. Corresponds to the OPERANDS field
16228 + in struct ia64_opcode. */
16229 + unsigned char operands[5];
16230 +
16231 + /* The flags for this instruction. Corresponds to the FLAGS field in
16232 + struct ia64_opcode. */
16233 + short flags;
16234 +
16235 + /* The tree of completers for this instruction; this is an offset into
16236 + completer_table. */
16237 + short completers;
16238 +};
16239 +
16240 +/* Each instruction has a set of possible "completers", or additional
16241 + suffixes that can alter the instruction's behavior, and which has
16242 + potentially different dependencies.
16243 +
16244 + The completer entries modify certain bits in the instruction opcode.
16245 + Which bits are to be modified are marked by the BITS, MASK and
16246 + OFFSET fields. The completer entry may also note dependencies for the
16247 + opcode.
16248 +
16249 + These completers are arranged in a DAG; the pointers are indexes
16250 + into the completer_table array. The completer DAG is searched by
16251 + find_completer () and ia64_find_matching_opcode ().
16252 +
16253 + Note that each completer needs to be applied in turn, so that if we
16254 + have the instruction
16255 + cmp.lt.unc
16256 + the completer entries for both "lt" and "unc" would need to be applied
16257 + to the opcode's value.
16258 +
16259 + Some instructions do not require any completers; these contain an
16260 + empty completer entry. Instructions that require a completer do
16261 + not contain an empty entry.
16262 +
16263 + Terminal completers (those completers that validly complete an
16264 + instruction) are marked by having the TERMINAL_COMPLETER flag set.
16265 +
16266 + Only dependencies listed in the terminal completer for an opcode are
16267 + considered to apply to that opcode instance. */
16268 +
16269 +struct ia64_completer_table
16270 +{
16271 + /* The bit value that this completer sets. */
16272 + unsigned int bits;
16273 +
16274 + /* And its mask. 1s are bits that are to be modified in the
16275 + instruction. */
16276 + unsigned int mask;
16277 +
16278 + /* The entry in the string table that corresponds to the name of this
16279 + completer. */
16280 + unsigned short name_index;
16281 +
16282 + /* An alternative completer, or -1 if this is the end of the chain. */
16283 + short alternative;
16284 +
16285 + /* A pointer to the DAG of completers that can potentially follow
16286 + this one, or -1. */
16287 + short subentries;
16288 +
16289 + /* The bit offset in the instruction where BITS and MASK should be
16290 + applied. */
16291 + unsigned char offset : 7;
16292 +
16293 + unsigned char terminal_completer : 1;
16294 +
16295 + /* Index into the dependency list table */
16296 + short dependencies;
16297 +};
16298 +
16299 +/* This contains sufficient information for the disassembler to resolve
16300 + the complete name of the original instruction. */
16301 +struct ia64_dis_names
16302 +{
16303 + /* COMPLETER_INDEX represents the tree of completers that make up
16304 + the instruction. The LSB represents the top of the tree for the
16305 + specified instruction.
16306 +
16307 + A 0 bit indicates to go to the next alternate completer via the
16308 + alternative field; a 1 bit indicates that the current completer
16309 + is part of the instruction, and to go down the subentries index.
16310 + We know we've reached the final completer when we run out of 1
16311 + bits.
16312 +
16313 + There is always at least one 1 bit. */
16314 + unsigned int completer_index : 20;
16315 +
16316 + /* The index in the main_table[] array for the instruction. */
16317 + unsigned short insn_index : 11;
16318 +
16319 + /* If set, the next entry in this table is an alternate possibility
16320 + for this instruction encoding. Which one to use is determined by
16321 + the instruction type and other factors (see opcode_verify ()). */
16322 + unsigned int next_flag : 1;
16323 +
16324 + /* The disassembly priority of this entry among instructions. */
16325 + unsigned short priority;
16326 +};
16327 +
16328 +#endif
16329 --- /dev/null
16330 +++ b/arch/ia64/kdb/ia64-dis.c
16331 @@ -0,0 +1,312 @@
16332 +/* ia64-dis.c -- Disassemble ia64 instructions
16333 + Copyright 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
16334 + Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
16335 +
16336 + This file is part of GDB, GAS, and the GNU binutils.
16337 +
16338 + GDB, GAS, and the GNU binutils are free software; you can redistribute
16339 + them and/or modify them under the terms of the GNU General Public
16340 + License as published by the Free Software Foundation; either version
16341 + 2, or (at your option) any later version.
16342 +
16343 + GDB, GAS, and the GNU binutils are distributed in the hope that they
16344 + will be useful, but WITHOUT ANY WARRANTY; without even the implied
16345 + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
16346 + the GNU General Public License for more details.
16347 +
16348 + You should have received a copy of the GNU General Public License
16349 + along with this file; see the file COPYING. If not, write to the
16350 + Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
16351 + 02110-1301, USA. */
16352 +
16353 +/* Extracted from binutils 2.16.91.0.2 (OpenSUSE 10.0) and modified for kdb use.
16354 + * Any trailing whitespace was removed and #ifdef/ifndef __KERNEL__ added as
16355 + * required.
16356 + * Keith Owens <kaos@sgi.com> 15 May 2006
16357 + */
16358 +
16359 +#ifdef __KERNEL__
16360 +#include <linux/kernel.h>
16361 +#include <linux/string.h>
16362 +#include <linux/dis-asm.h>
16363 +#include "ia64.h"
16364 +
16365 +/* imported from bfd/libbfd.c for kernel */
16366 +bfd_uint64_t
16367 +bfd_getl64 (const void *p ATTRIBUTE_UNUSED)
16368 +{
16369 +#ifdef BFD_HOST_64_BIT
16370 + const bfd_byte *addr = p;
16371 + bfd_uint64_t v;
16372 +
16373 + v = addr[7]; v <<= 8;
16374 + v |= addr[6]; v <<= 8;
16375 + v |= addr[5]; v <<= 8;
16376 + v |= addr[4]; v <<= 8;
16377 + v |= addr[3]; v <<= 8;
16378 + v |= addr[2]; v <<= 8;
16379 + v |= addr[1]; v <<= 8;
16380 + v |= addr[0];
16381 +
16382 + return v;
16383 +#else
16384 + BFD_FAIL();
16385 + return 0;
16386 +#endif
16387 +
16388 +}
16389 +
16390 +#else /* __KERNEL__ */
16391 +#include <assert.h>
16392 +#include <string.h>
16393 +
16394 +#include "dis-asm.h"
16395 +#include "opcode/ia64.h"
16396 +#endif /* __KERNEL__ */
16397 +
16398 +#define NELEMS(a) ((int) (sizeof (a) / sizeof (a[0])))
16399 +
16400 +/* Disassemble ia64 instruction. */
16401 +
16402 +/* Return the instruction type for OPCODE found in unit UNIT. */
16403 +
16404 +static enum ia64_insn_type
16405 +unit_to_type (ia64_insn opcode, enum ia64_unit unit)
16406 +{
16407 + enum ia64_insn_type type;
16408 + int op;
16409 +
16410 + op = IA64_OP (opcode);
16411 +
16412 + if (op >= 8 && (unit == IA64_UNIT_I || unit == IA64_UNIT_M))
16413 + {
16414 + type = IA64_TYPE_A;
16415 + }
16416 + else
16417 + {
16418 + switch (unit)
16419 + {
16420 + case IA64_UNIT_I:
16421 + type = IA64_TYPE_I; break;
16422 + case IA64_UNIT_M:
16423 + type = IA64_TYPE_M; break;
16424 + case IA64_UNIT_B:
16425 + type = IA64_TYPE_B; break;
16426 + case IA64_UNIT_F:
16427 + type = IA64_TYPE_F; break;
16428 + case IA64_UNIT_L:
16429 + case IA64_UNIT_X:
16430 + type = IA64_TYPE_X; break;
16431 + default:
16432 + type = -1;
16433 + }
16434 + }
16435 + return type;
16436 +}
16437 +
16438 +int
16439 +print_insn_ia64 (bfd_vma memaddr, struct disassemble_info *info)
16440 +{
16441 + ia64_insn t0, t1, slot[3], template, s_bit, insn;
16442 + int slotnum, j, status, need_comma, retval, slot_multiplier;
16443 + const struct ia64_operand *odesc;
16444 + const struct ia64_opcode *idesc;
16445 + const char *err, *str, *tname;
16446 + BFD_HOST_U_64_BIT value;
16447 + bfd_byte bundle[16];
16448 + enum ia64_unit unit;
16449 + char regname[16];
16450 +
16451 + if (info->bytes_per_line == 0)
16452 + info->bytes_per_line = 6;
16453 + info->display_endian = info->endian;
16454 +
16455 + slot_multiplier = info->bytes_per_line;
16456 + retval = slot_multiplier;
16457 +
16458 + slotnum = (((long) memaddr) & 0xf) / slot_multiplier;
16459 + if (slotnum > 2)
16460 + return -1;
16461 +
16462 + memaddr -= (memaddr & 0xf);
16463 + status = (*info->read_memory_func) (memaddr, bundle, sizeof (bundle), info);
16464 + if (status != 0)
16465 + {
16466 + (*info->memory_error_func) (status, memaddr, info);
16467 + return -1;
16468 + }
16469 + /* bundles are always in little-endian byte order */
16470 + t0 = bfd_getl64 (bundle);
16471 + t1 = bfd_getl64 (bundle + 8);
16472 + s_bit = t0 & 1;
16473 + template = (t0 >> 1) & 0xf;
16474 + slot[0] = (t0 >> 5) & 0x1ffffffffffLL;
16475 + slot[1] = ((t0 >> 46) & 0x3ffff) | ((t1 & 0x7fffff) << 18);
16476 + slot[2] = (t1 >> 23) & 0x1ffffffffffLL;
16477 +
16478 + tname = ia64_templ_desc[template].name;
16479 + if (slotnum == 0)
16480 + (*info->fprintf_func) (info->stream, "[%s] ", tname);
16481 + else
16482 + (*info->fprintf_func) (info->stream, " ");
16483 +
16484 + unit = ia64_templ_desc[template].exec_unit[slotnum];
16485 +
16486 + if (template == 2 && slotnum == 1)
16487 + {
16488 + /* skip L slot in MLI template: */
16489 + slotnum = 2;
16490 + retval += slot_multiplier;
16491 + }
16492 +
16493 + insn = slot[slotnum];
16494 +
16495 + if (unit == IA64_UNIT_NIL)
16496 + goto decoding_failed;
16497 +
16498 + idesc = ia64_dis_opcode (insn, unit_to_type (insn, unit));
16499 + if (idesc == NULL)
16500 + goto decoding_failed;
16501 +
16502 + /* print predicate, if any: */
16503 +
16504 + if ((idesc->flags & IA64_OPCODE_NO_PRED)
16505 + || (insn & 0x3f) == 0)
16506 + (*info->fprintf_func) (info->stream, " ");
16507 + else
16508 + (*info->fprintf_func) (info->stream, "(p%02d) ", (int)(insn & 0x3f));
16509 +
16510 + /* now the actual instruction: */
16511 +
16512 + (*info->fprintf_func) (info->stream, "%s", idesc->name);
16513 + if (idesc->operands[0])
16514 + (*info->fprintf_func) (info->stream, " ");
16515 +
16516 + need_comma = 0;
16517 + for (j = 0; j < NELEMS (idesc->operands) && idesc->operands[j]; ++j)
16518 + {
16519 + odesc = elf64_ia64_operands + idesc->operands[j];
16520 +
16521 + if (need_comma)
16522 + (*info->fprintf_func) (info->stream, ",");
16523 +
16524 + if (odesc - elf64_ia64_operands == IA64_OPND_IMMU64)
16525 + {
16526 + /* special case of 64 bit immediate load: */
16527 + value = ((insn >> 13) & 0x7f) | (((insn >> 27) & 0x1ff) << 7)
16528 + | (((insn >> 22) & 0x1f) << 16) | (((insn >> 21) & 0x1) << 21)
16529 + | (slot[1] << 22) | (((insn >> 36) & 0x1) << 63);
16530 + }
16531 + else if (odesc - elf64_ia64_operands == IA64_OPND_IMMU62)
16532 + {
16533 + /* 62-bit immediate for nop.x/break.x */
16534 + value = ((slot[1] & 0x1ffffffffffLL) << 21)
16535 + | (((insn >> 36) & 0x1) << 20)
16536 + | ((insn >> 6) & 0xfffff);
16537 + }
16538 + else if (odesc - elf64_ia64_operands == IA64_OPND_TGT64)
16539 + {
16540 + /* 60-bit immediate for long branches. */
16541 + value = (((insn >> 13) & 0xfffff)
16542 + | (((insn >> 36) & 1) << 59)
16543 + | (((slot[1] >> 2) & 0x7fffffffffLL) << 20)) << 4;
16544 + }
16545 + else
16546 + {
16547 + err = (*odesc->extract) (odesc, insn, &value);
16548 + if (err)
16549 + {
16550 + (*info->fprintf_func) (info->stream, "%s", err);
16551 + goto done;
16552 + }
16553 + }
16554 +
16555 + switch (odesc->class)
16556 + {
16557 + case IA64_OPND_CLASS_CST:
16558 + (*info->fprintf_func) (info->stream, "%s", odesc->str);
16559 + break;
16560 +
16561 + case IA64_OPND_CLASS_REG:
16562 + if (odesc->str[0] == 'a' && odesc->str[1] == 'r')
16563 + {
16564 + switch (value)
16565 + {
16566 + case 0: case 1: case 2: case 3:
16567 + case 4: case 5: case 6: case 7:
16568 + sprintf (regname, "ar.k%u", (unsigned int) value);
16569 + break;
16570 + case 16: strcpy (regname, "ar.rsc"); break;
16571 + case 17: strcpy (regname, "ar.bsp"); break;
16572 + case 18: strcpy (regname, "ar.bspstore"); break;
16573 + case 19: strcpy (regname, "ar.rnat"); break;
16574 + case 32: strcpy (regname, "ar.ccv"); break;
16575 + case 36: strcpy (regname, "ar.unat"); break;
16576 + case 40: strcpy (regname, "ar.fpsr"); break;
16577 + case 44: strcpy (regname, "ar.itc"); break;
16578 + case 64: strcpy (regname, "ar.pfs"); break;
16579 + case 65: strcpy (regname, "ar.lc"); break;
16580 + case 66: strcpy (regname, "ar.ec"); break;
16581 + default:
16582 + sprintf (regname, "ar%u", (unsigned int) value);
16583 + break;
16584 + }
16585 + (*info->fprintf_func) (info->stream, "%s", regname);
16586 + }
16587 + else
16588 + (*info->fprintf_func) (info->stream, "%s%d", odesc->str, (int)value);
16589 + break;
16590 +
16591 + case IA64_OPND_CLASS_IND:
16592 + (*info->fprintf_func) (info->stream, "%s[r%d]", odesc->str, (int)value);
16593 + break;
16594 +
16595 + case IA64_OPND_CLASS_ABS:
16596 + str = 0;
16597 + if (odesc - elf64_ia64_operands == IA64_OPND_MBTYPE4)
16598 + switch (value)
16599 + {
16600 + case 0x0: str = "@brcst"; break;
16601 + case 0x8: str = "@mix"; break;
16602 + case 0x9: str = "@shuf"; break;
16603 + case 0xa: str = "@alt"; break;
16604 + case 0xb: str = "@rev"; break;
16605 + }
16606 +
16607 + if (str)
16608 + (*info->fprintf_func) (info->stream, "%s", str);
16609 + else if (odesc->flags & IA64_OPND_FLAG_DECIMAL_SIGNED)
16610 + (*info->fprintf_func) (info->stream, "%lld", (long long) value);
16611 + else if (odesc->flags & IA64_OPND_FLAG_DECIMAL_UNSIGNED)
16612 + (*info->fprintf_func) (info->stream, "%llu", (long long) value);
16613 + else
16614 + (*info->fprintf_func) (info->stream, "0x%llx", (long long) value);
16615 + break;
16616 +
16617 + case IA64_OPND_CLASS_REL:
16618 + (*info->print_address_func) (memaddr + value, info);
16619 + break;
16620 + }
16621 +
16622 + need_comma = 1;
16623 + if (j + 1 == idesc->num_outputs)
16624 + {
16625 + (*info->fprintf_func) (info->stream, "=");
16626 + need_comma = 0;
16627 + }
16628 + }
16629 + if (slotnum + 1 == ia64_templ_desc[template].group_boundary
16630 + || ((slotnum == 2) && s_bit))
16631 + (*info->fprintf_func) (info->stream, ";;");
16632 +
16633 + done:
16634 + ia64_free_opcode ((struct ia64_opcode *)idesc);
16635 + failed:
16636 + if (slotnum == 2)
16637 + retval += 16 - 3*slot_multiplier;
16638 + return retval;
16639 +
16640 + decoding_failed:
16641 + (*info->fprintf_func) (info->stream, " data8 %#011llx", (long long) insn);
16642 + goto failed;
16643 +}
16644 --- /dev/null
16645 +++ b/arch/ia64/kdb/ia64-opc.c
16646 @@ -0,0 +1,749 @@
16647 +/* ia64-opc.c -- Functions to access the compacted opcode table
16648 + Copyright 1999, 2000, 2001, 2003, 2005 Free Software Foundation, Inc.
16649 + Written by Bob Manson of Cygnus Solutions, <manson@cygnus.com>
16650 +
16651 + This file is part of GDB, GAS, and the GNU binutils.
16652 +
16653 + GDB, GAS, and the GNU binutils are free software; you can redistribute
16654 + them and/or modify them under the terms of the GNU General Public
16655 + License as published by the Free Software Foundation; either version
16656 + 2, or (at your option) any later version.
16657 +
16658 + GDB, GAS, and the GNU binutils are distributed in the hope that they
16659 + will be useful, but WITHOUT ANY WARRANTY; without even the implied
16660 + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
16661 + the GNU General Public License for more details.
16662 +
16663 + You should have received a copy of the GNU General Public License
16664 + along with this file; see the file COPYING. If not, write to the
16665 + Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
16666 + 02110-1301, USA. */
16667 +
16668 +/* Extracted from binutils 2.16.91.0.2 (OpenSUSE 10.0) and modified for kdb use.
16669 + * Any trailing whitespace was removed and #ifdef/ifndef __KERNEL__ added as
16670 + * required.
16671 + * Keith Owens <kaos@sgi.com> 15 May 2006
16672 + */
16673 +
16674 +#ifdef __KERNEL__
16675 +#include <linux/kernel.h>
16676 +#include <linux/kdb.h>
16677 +#include <linux/kdbprivate.h>
16678 +#include <asm/ansidecl.h>
16679 +
16680 +#define xstrdup(string) ({ char *res = kdb_strdup(string, GFP_ATOMIC); if (!res) BUG(); res; })
16681 +#define xmalloc(size) ({ void *res = debug_kmalloc(size, GFP_ATOMIC); if (!res) BUG(); res; })
16682 +#define free(address) debug_kfree(address)
16683 +#define abort() BUG()
16684 +
16685 +#else /* __KERNEL__ */
16686 +#include "ansidecl.h"
16687 +#include "sysdep.h"
16688 +#include "libiberty.h"
16689 +#endif /* __KERNEL__ */
16690 +#include "ia64-asmtab.h"
16691 +#include "ia64-asmtab.c"
16692 +
16693 +static void get_opc_prefix (const char **, char *);
16694 +static short int find_string_ent (const char *);
16695 +static short int find_main_ent (short int);
16696 +static short int find_completer (short int, short int, const char *);
16697 +static ia64_insn apply_completer (ia64_insn, int);
16698 +static int extract_op_bits (int, int, int);
16699 +static int extract_op (int, int *, unsigned int *);
16700 +static int opcode_verify (ia64_insn, int, enum ia64_insn_type);
16701 +static int locate_opcode_ent (ia64_insn, enum ia64_insn_type);
16702 +static struct ia64_opcode *make_ia64_opcode
16703 + (ia64_insn, const char *, int, int);
16704 +static struct ia64_opcode *ia64_find_matching_opcode
16705 + (const char *, short int);
16706 +
16707 +const struct ia64_templ_desc ia64_templ_desc[16] =
16708 + {
16709 + { 0, { IA64_UNIT_M, IA64_UNIT_I, IA64_UNIT_I }, "MII" }, /* 0 */
16710 + { 2, { IA64_UNIT_M, IA64_UNIT_I, IA64_UNIT_I }, "MII" },
16711 + { 0, { IA64_UNIT_M, IA64_UNIT_L, IA64_UNIT_X }, "MLX" },
16712 + { 0, { 0, }, "-3-" },
16713 + { 0, { IA64_UNIT_M, IA64_UNIT_M, IA64_UNIT_I }, "MMI" }, /* 4 */
16714 + { 1, { IA64_UNIT_M, IA64_UNIT_M, IA64_UNIT_I }, "MMI" },
16715 + { 0, { IA64_UNIT_M, IA64_UNIT_F, IA64_UNIT_I }, "MFI" },
16716 + { 0, { IA64_UNIT_M, IA64_UNIT_M, IA64_UNIT_F }, "MMF" },
16717 + { 0, { IA64_UNIT_M, IA64_UNIT_I, IA64_UNIT_B }, "MIB" }, /* 8 */
16718 + { 0, { IA64_UNIT_M, IA64_UNIT_B, IA64_UNIT_B }, "MBB" },
16719 + { 0, { 0, }, "-a-" },
16720 + { 0, { IA64_UNIT_B, IA64_UNIT_B, IA64_UNIT_B }, "BBB" },
16721 + { 0, { IA64_UNIT_M, IA64_UNIT_M, IA64_UNIT_B }, "MMB" }, /* c */
16722 + { 0, { 0, }, "-d-" },
16723 + { 0, { IA64_UNIT_M, IA64_UNIT_F, IA64_UNIT_B }, "MFB" },
16724 + { 0, { 0, }, "-f-" },
16725 + };
16726 +
16727 +
16728 +/* Copy the prefix contained in *PTR (up to a '.' or a NUL) to DEST.
16729 + PTR will be adjusted to point to the start of the next portion
16730 + of the opcode, or at the NUL character. */
16731 +
16732 +static void
16733 +get_opc_prefix (const char **ptr, char *dest)
16734 +{
16735 + char *c = strchr (*ptr, '.');
16736 + if (c != NULL)
16737 + {
16738 + memcpy (dest, *ptr, c - *ptr);
16739 + dest[c - *ptr] = '\0';
16740 + *ptr = c + 1;
16741 + }
16742 + else
16743 + {
16744 + int l = strlen (*ptr);
16745 + memcpy (dest, *ptr, l);
16746 + dest[l] = '\0';
16747 + *ptr += l;
16748 + }
16749 +}
16750 +\f
16751 +/* Find the index of the entry in the string table corresponding to
16752 + STR; return -1 if one does not exist. */
16753 +
16754 +static short
16755 +find_string_ent (const char *str)
16756 +{
16757 + short start = 0;
16758 + short end = sizeof (ia64_strings) / sizeof (const char *);
16759 + short i = (start + end) / 2;
16760 +
16761 + if (strcmp (str, ia64_strings[end - 1]) > 0)
16762 + {
16763 + return -1;
16764 + }
16765 + while (start <= end)
16766 + {
16767 + int c = strcmp (str, ia64_strings[i]);
16768 + if (c < 0)
16769 + {
16770 + end = i - 1;
16771 + }
16772 + else if (c == 0)
16773 + {
16774 + return i;
16775 + }
16776 + else
16777 + {
16778 + start = i + 1;
16779 + }
16780 + i = (start + end) / 2;
16781 + }
16782 + return -1;
16783 +}
16784 +\f
16785 +/* Find the opcode in the main opcode table whose name is STRINGINDEX, or
16786 + return -1 if one does not exist. */
16787 +
16788 +static short
16789 +find_main_ent (short nameindex)
16790 +{
16791 + short start = 0;
16792 + short end = sizeof (main_table) / sizeof (struct ia64_main_table);
16793 + short i = (start + end) / 2;
16794 +
16795 + if (nameindex < main_table[0].name_index
16796 + || nameindex > main_table[end - 1].name_index)
16797 + {
16798 + return -1;
16799 + }
16800 + while (start <= end)
16801 + {
16802 + if (nameindex < main_table[i].name_index)
16803 + {
16804 + end = i - 1;
16805 + }
16806 + else if (nameindex == main_table[i].name_index)
16807 + {
16808 + while (i > 0 && main_table[i - 1].name_index == nameindex)
16809 + {
16810 + i--;
16811 + }
16812 + return i;
16813 + }
16814 + else
16815 + {
16816 + start = i + 1;
16817 + }
16818 + i = (start + end) / 2;
16819 + }
16820 + return -1;
16821 +}
16822 +\f
16823 +/* Find the index of the entry in the completer table that is part of
16824 + MAIN_ENT (starting from PREV_COMPLETER) that matches NAME, or
16825 + return -1 if one does not exist. */
16826 +
16827 +static short
16828 +find_completer (short main_ent, short prev_completer, const char *name)
16829 +{
16830 + short name_index = find_string_ent (name);
16831 +
16832 + if (name_index < 0)
16833 + {
16834 + return -1;
16835 + }
16836 +
16837 + if (prev_completer == -1)
16838 + {
16839 + prev_completer = main_table[main_ent].completers;
16840 + }
16841 + else
16842 + {
16843 + prev_completer = completer_table[prev_completer].subentries;
16844 + }
16845 +
16846 + while (prev_completer != -1)
16847 + {
16848 + if (completer_table[prev_completer].name_index == name_index)
16849 + {
16850 + return prev_completer;
16851 + }
16852 + prev_completer = completer_table[prev_completer].alternative;
16853 + }
16854 + return -1;
16855 +}
16856 +\f
16857 +/* Apply the completer referred to by COMPLETER_INDEX to OPCODE, and
16858 + return the result. */
16859 +
16860 +static ia64_insn
16861 +apply_completer (ia64_insn opcode, int completer_index)
16862 +{
16863 + ia64_insn mask = completer_table[completer_index].mask;
16864 + ia64_insn bits = completer_table[completer_index].bits;
16865 + int shiftamt = (completer_table[completer_index].offset & 63);
16866 +
16867 + mask = mask << shiftamt;
16868 + bits = bits << shiftamt;
16869 + opcode = (opcode & ~mask) | bits;
16870 + return opcode;
16871 +}
16872 +\f
16873 +/* Extract BITS number of bits starting from OP_POINTER + BITOFFSET in
16874 + the dis_table array, and return its value. (BITOFFSET is numbered
16875 + starting from MSB to LSB, so a BITOFFSET of 0 indicates the MSB of the
16876 + first byte in OP_POINTER.) */
16877 +
16878 +static int
16879 +extract_op_bits (int op_pointer, int bitoffset, int bits)
16880 +{
16881 + int res = 0;
16882 +
16883 + op_pointer += (bitoffset / 8);
16884 +
16885 + if (bitoffset % 8)
16886 + {
16887 + unsigned int op = dis_table[op_pointer++];
16888 + int numb = 8 - (bitoffset % 8);
16889 + int mask = (1 << numb) - 1;
16890 + int bata = (bits < numb) ? bits : numb;
16891 + int delta = numb - bata;
16892 +
16893 + res = (res << bata) | ((op & mask) >> delta);
16894 + bitoffset += bata;
16895 + bits -= bata;
16896 + }
16897 + while (bits >= 8)
16898 + {
16899 + res = (res << 8) | (dis_table[op_pointer++] & 255);
16900 + bits -= 8;
16901 + }
16902 + if (bits > 0)
16903 + {
16904 + unsigned int op = (dis_table[op_pointer++] & 255);
16905 + res = (res << bits) | (op >> (8 - bits));
16906 + }
16907 + return res;
16908 +}
16909 +\f
16910 +/* Examine the state machine entry at OP_POINTER in the dis_table
16911 + array, and extract its values into OPVAL and OP. The length of the
16912 + state entry in bits is returned. */
16913 +
16914 +static int
16915 +extract_op (int op_pointer, int *opval, unsigned int *op)
16916 +{
16917 + int oplen = 5;
16918 +
16919 + *op = dis_table[op_pointer];
16920 +
16921 + if ((*op) & 0x40)
16922 + {
16923 + opval[0] = extract_op_bits (op_pointer, oplen, 5);
16924 + oplen += 5;
16925 + }
16926 + switch ((*op) & 0x30)
16927 + {
16928 + case 0x10:
16929 + {
16930 + opval[1] = extract_op_bits (op_pointer, oplen, 8);
16931 + oplen += 8;
16932 + opval[1] += op_pointer;
16933 + break;
16934 + }
16935 + case 0x20:
16936 + {
16937 + opval[1] = extract_op_bits (op_pointer, oplen, 16);
16938 + if (! (opval[1] & 32768))
16939 + {
16940 + opval[1] += op_pointer;
16941 + }
16942 + oplen += 16;
16943 + break;
16944 + }
16945 + case 0x30:
16946 + {
16947 + oplen--;
16948 + opval[2] = extract_op_bits (op_pointer, oplen, 12);
16949 + oplen += 12;
16950 + opval[2] |= 32768;
16951 + break;
16952 + }
16953 + }
16954 + if (((*op) & 0x08) && (((*op) & 0x30) != 0x30))
16955 + {
16956 + opval[2] = extract_op_bits (op_pointer, oplen, 16);
16957 + oplen += 16;
16958 + if (! (opval[2] & 32768))
16959 + {
16960 + opval[2] += op_pointer;
16961 + }
16962 + }
16963 + return oplen;
16964 +}
16965 +\f
16966 +/* Returns a non-zero value if the opcode in the main_table list at
16967 + PLACE matches OPCODE and is of type TYPE. */
16968 +
16969 +static int
16970 +opcode_verify (ia64_insn opcode, int place, enum ia64_insn_type type)
16971 +{
16972 + if (main_table[place].opcode_type != type)
16973 + {
16974 + return 0;
16975 + }
16976 + if (main_table[place].flags
16977 + & (IA64_OPCODE_F2_EQ_F3 | IA64_OPCODE_LEN_EQ_64MCNT))
16978 + {
16979 + const struct ia64_operand *o1, *o2;
16980 + ia64_insn f2, f3;
16981 +
16982 + if (main_table[place].flags & IA64_OPCODE_F2_EQ_F3)
16983 + {
16984 + o1 = elf64_ia64_operands + IA64_OPND_F2;
16985 + o2 = elf64_ia64_operands + IA64_OPND_F3;
16986 + (*o1->extract) (o1, opcode, &f2);
16987 + (*o2->extract) (o2, opcode, &f3);
16988 + if (f2 != f3)
16989 + return 0;
16990 + }
16991 + else
16992 + {
16993 + ia64_insn len, count;
16994 +
16995 + /* length must equal 64-count: */
16996 + o1 = elf64_ia64_operands + IA64_OPND_LEN6;
16997 + o2 = elf64_ia64_operands + main_table[place].operands[2];
16998 + (*o1->extract) (o1, opcode, &len);
16999 + (*o2->extract) (o2, opcode, &count);
17000 + if (len != 64 - count)
17001 + return 0;
17002 + }
17003 + }
17004 + return 1;
17005 +}
17006 +\f
17007 +/* Find an instruction entry in the ia64_dis_names array that matches
17008 + opcode OPCODE and is of type TYPE. Returns either a positive index
17009 + into the array, or a negative value if an entry for OPCODE could
17010 + not be found. Checks all matches and returns the one with the highest
17011 + priority. */
17012 +
17013 +static int
17014 +locate_opcode_ent (ia64_insn opcode, enum ia64_insn_type type)
17015 +{
17016 + int currtest[41];
17017 + int bitpos[41];
17018 + int op_ptr[41];
17019 + int currstatenum = 0;
17020 + short found_disent = -1;
17021 + short found_priority = -1;
17022 +
17023 + currtest[currstatenum] = 0;
17024 + op_ptr[currstatenum] = 0;
17025 + bitpos[currstatenum] = 40;
17026 +
17027 + while (1)
17028 + {
17029 + int op_pointer = op_ptr[currstatenum];
17030 + unsigned int op;
17031 + int currbitnum = bitpos[currstatenum];
17032 + int oplen;
17033 + int opval[3] = {0};
17034 + int next_op;
17035 + int currbit;
17036 +
17037 + oplen = extract_op (op_pointer, opval, &op);
17038 +
17039 + bitpos[currstatenum] = currbitnum;
17040 +
17041 + /* Skip opval[0] bits in the instruction. */
17042 + if (op & 0x40)
17043 + {
17044 + currbitnum -= opval[0];
17045 + }
17046 +
17047 + /* The value of the current bit being tested. */
17048 + currbit = opcode & (((ia64_insn) 1) << currbitnum) ? 1 : 0;
17049 + next_op = -1;
17050 +
17051 + /* We always perform the tests specified in the current state in
17052 + a particular order, falling through to the next test if the
17053 + previous one failed. */
17054 + switch (currtest[currstatenum])
17055 + {
17056 + case 0:
17057 + currtest[currstatenum]++;
17058 + if (currbit == 0 && (op & 0x80))
17059 + {
17060 + /* Check for a zero bit. If this test solely checks for
17061 + a zero bit, we can check for up to 8 consecutive zero
17062 + bits (the number to check is specified by the lower 3
17063 + bits in the state code.)
17064 +
17065 + If the state instruction matches, we go to the very
17066 + next state instruction; otherwise, try the next test. */
17067 +
17068 + if ((op & 0xf8) == 0x80)
17069 + {
17070 + int count = op & 0x7;
17071 + int x;
17072 +
17073 + for (x = 0; x <= count; x++)
17074 + {
17075 + int i =
17076 + opcode & (((ia64_insn) 1) << (currbitnum - x)) ? 1 : 0;
17077 + if (i)
17078 + {
17079 + break;
17080 + }
17081 + }
17082 + if (x > count)
17083 + {
17084 + next_op = op_pointer + ((oplen + 7) / 8);
17085 + currbitnum -= count;
17086 + break;
17087 + }
17088 + }
17089 + else if (! currbit)
17090 + {
17091 + next_op = op_pointer + ((oplen + 7) / 8);
17092 + break;
17093 + }
17094 + }
17095 + /* FALLTHROUGH */
17096 + case 1:
17097 + /* If the bit in the instruction is one, go to the state
17098 + instruction specified by opval[1]. */
17099 + currtest[currstatenum]++;
17100 + if (currbit && (op & 0x30) != 0 && ((op & 0x30) != 0x30))
17101 + {
17102 + next_op = opval[1];
17103 + break;
17104 + }
17105 + /* FALLTHROUGH */
17106 + case 2:
17107 + /* Don't care. Skip the current bit and go to the state
17108 + instruction specified by opval[2].
17109 +
17110 + An encoding of 0x30 is special; this means that a 12-bit
17111 + offset into the ia64_dis_names[] array is specified. */
17112 + currtest[currstatenum]++;
17113 + if ((op & 0x08) || ((op & 0x30) == 0x30))
17114 + {
17115 + next_op = opval[2];
17116 + break;
17117 + }
17118 + }
17119 +
17120 + /* If bit 15 is set in the address of the next state, an offset
17121 + in the ia64_dis_names array was specified instead. We then
17122 + check to see if an entry in the list of opcodes matches the
17123 + opcode we were given; if so, we have succeeded. */
17124 +
17125 + if ((next_op >= 0) && (next_op & 32768))
17126 + {
17127 + short disent = next_op & 32767;
17128 + short priority = -1;
17129 +
17130 + if (next_op > 65535)
17131 + {
17132 + abort ();
17133 + }
17134 +
17135 + /* Run through the list of opcodes to check, trying to find
17136 + one that matches. */
17137 + while (disent >= 0)
17138 + {
17139 + int place = ia64_dis_names[disent].insn_index;
17140 +
17141 + priority = ia64_dis_names[disent].priority;
17142 +
17143 + if (opcode_verify (opcode, place, type)
17144 + && priority > found_priority)
17145 + {
17146 + break;
17147 + }
17148 + if (ia64_dis_names[disent].next_flag)
17149 + {
17150 + disent++;
17151 + }
17152 + else
17153 + {
17154 + disent = -1;
17155 + }
17156 + }
17157 +
17158 + if (disent >= 0)
17159 + {
17160 + found_disent = disent;
17161 + found_priority = priority;
17162 + }
17163 + /* Try the next test in this state, regardless of whether a match
17164 + was found. */
17165 + next_op = -2;
17166 + }
17167 +
17168 + /* next_op == -1 is "back up to the previous state".
17169 + next_op == -2 is "stay in this state and try the next test".
17170 + Otherwise, transition to the state indicated by next_op. */
17171 +
17172 + if (next_op == -1)
17173 + {
17174 + currstatenum--;
17175 + if (currstatenum < 0)
17176 + {
17177 + return found_disent;
17178 + }
17179 + }
17180 + else if (next_op >= 0)
17181 + {
17182 + currstatenum++;
17183 + bitpos[currstatenum] = currbitnum - 1;
17184 + op_ptr[currstatenum] = next_op;
17185 + currtest[currstatenum] = 0;
17186 + }
17187 + }
17188 +}
17189 +\f
17190 +/* Construct an ia64_opcode entry based on OPCODE, NAME and PLACE. */
17191 +
17192 +static struct ia64_opcode *
17193 +make_ia64_opcode (ia64_insn opcode, const char *name, int place, int depind)
17194 +{
17195 + struct ia64_opcode *res =
17196 + (struct ia64_opcode *) xmalloc (sizeof (struct ia64_opcode));
17197 + res->name = xstrdup (name);
17198 + res->type = main_table[place].opcode_type;
17199 + res->num_outputs = main_table[place].num_outputs;
17200 + res->opcode = opcode;
17201 + res->mask = main_table[place].mask;
17202 + res->operands[0] = main_table[place].operands[0];
17203 + res->operands[1] = main_table[place].operands[1];
17204 + res->operands[2] = main_table[place].operands[2];
17205 + res->operands[3] = main_table[place].operands[3];
17206 + res->operands[4] = main_table[place].operands[4];
17207 + res->flags = main_table[place].flags;
17208 + res->ent_index = place;
17209 + res->dependencies = &op_dependencies[depind];
17210 + return res;
17211 +}
17212 +\f
17213 +/* Determine the ia64_opcode entry for the opcode specified by INSN
17214 + and TYPE. If a valid entry is not found, return NULL. */
17215 +struct ia64_opcode *
17216 +ia64_dis_opcode (ia64_insn insn, enum ia64_insn_type type)
17217 +{
17218 + int disent = locate_opcode_ent (insn, type);
17219 +
17220 + if (disent < 0)
17221 + {
17222 + return NULL;
17223 + }
17224 + else
17225 + {
17226 + unsigned int cb = ia64_dis_names[disent].completer_index;
17227 + static char name[128];
17228 + int place = ia64_dis_names[disent].insn_index;
17229 + int ci = main_table[place].completers;
17230 + ia64_insn tinsn = main_table[place].opcode;
17231 +
17232 + strcpy (name, ia64_strings [main_table[place].name_index]);
17233 +
17234 + while (cb)
17235 + {
17236 + if (cb & 1)
17237 + {
17238 + int cname = completer_table[ci].name_index;
17239 +
17240 + tinsn = apply_completer (tinsn, ci);
17241 +
17242 + if (ia64_strings[cname][0] != '\0')
17243 + {
17244 + strcat (name, ".");
17245 + strcat (name, ia64_strings[cname]);
17246 + }
17247 + if (cb != 1)
17248 + {
17249 + ci = completer_table[ci].subentries;
17250 + }
17251 + }
17252 + else
17253 + {
17254 + ci = completer_table[ci].alternative;
17255 + }
17256 + if (ci < 0)
17257 + {
17258 + abort ();
17259 + }
17260 + cb = cb >> 1;
17261 + }
17262 + if (tinsn != (insn & main_table[place].mask))
17263 + {
17264 + abort ();
17265 + }
17266 + return make_ia64_opcode (insn, name, place,
17267 + completer_table[ci].dependencies);
17268 + }
17269 +}
17270 +\f
17271 +/* Search the main_opcode table starting from PLACE for an opcode that
17272 + matches NAME. Return NULL if one is not found. */
17273 +
17274 +static struct ia64_opcode *
17275 +ia64_find_matching_opcode (const char *name, short place)
17276 +{
17277 + char op[129];
17278 + const char *suffix;
17279 + short name_index;
17280 +
17281 + if (strlen (name) > 128)
17282 + {
17283 + return NULL;
17284 + }
17285 + suffix = name;
17286 + get_opc_prefix (&suffix, op);
17287 + name_index = find_string_ent (op);
17288 + if (name_index < 0)
17289 + {
17290 + return NULL;
17291 + }
17292 +
17293 + while (main_table[place].name_index == name_index)
17294 + {
17295 + const char *curr_suffix = suffix;
17296 + ia64_insn curr_insn = main_table[place].opcode;
17297 + short completer = -1;
17298 +
17299 + do {
17300 + if (suffix[0] == '\0')
17301 + {
17302 + completer = find_completer (place, completer, suffix);
17303 + }
17304 + else
17305 + {
17306 + get_opc_prefix (&curr_suffix, op);
17307 + completer = find_completer (place, completer, op);
17308 + }
17309 + if (completer != -1)
17310 + {
17311 + curr_insn = apply_completer (curr_insn, completer);
17312 + }
17313 + } while (completer != -1 && curr_suffix[0] != '\0');
17314 +
17315 + if (completer != -1 && curr_suffix[0] == '\0'
17316 + && completer_table[completer].terminal_completer)
17317 + {
17318 + int depind = completer_table[completer].dependencies;
17319 + return make_ia64_opcode (curr_insn, name, place, depind);
17320 + }
17321 + else
17322 + {
17323 + place++;
17324 + }
17325 + }
17326 + return NULL;
17327 +}
17328 +\f
17329 +/* Find the next opcode after PREV_ENT that matches PREV_ENT, or return NULL
17330 + if one does not exist.
17331 +
17332 + It is the caller's responsibility to invoke ia64_free_opcode () to
17333 + release any resources used by the returned entry. */
17334 +
17335 +struct ia64_opcode *
17336 +ia64_find_next_opcode (struct ia64_opcode *prev_ent)
17337 +{
17338 + return ia64_find_matching_opcode (prev_ent->name,
17339 + prev_ent->ent_index + 1);
17340 +}
17341 +
17342 +/* Find the first opcode that matches NAME, or return NULL if it does
17343 + not exist.
17344 +
17345 + It is the caller's responsibility to invoke ia64_free_opcode () to
17346 + release any resources used by the returned entry. */
17347 +
17348 +struct ia64_opcode *
17349 +ia64_find_opcode (const char *name)
17350 +{
17351 + char op[129];
17352 + const char *suffix;
17353 + short place;
17354 + short name_index;
17355 +
17356 + if (strlen (name) > 128)
17357 + {
17358 + return NULL;
17359 + }
17360 + suffix = name;
17361 + get_opc_prefix (&suffix, op);
17362 + name_index = find_string_ent (op);
17363 + if (name_index < 0)
17364 + {
17365 + return NULL;
17366 + }
17367 +
17368 + place = find_main_ent (name_index);
17369 +
17370 + if (place < 0)
17371 + {
17372 + return NULL;
17373 + }
17374 + return ia64_find_matching_opcode (name, place);
17375 +}
17376 +
17377 +/* Free any resources used by ENT. */
17378 +void
17379 +ia64_free_opcode (struct ia64_opcode *ent)
17380 +{
17381 + free ((void *)ent->name);
17382 + free (ent);
17383 +}
17384 +
17385 +const struct ia64_dependency *
17386 +ia64_find_dependency (int index)
17387 +{
17388 + index = DEP(index);
17389 +
17390 + if (index < 0
17391 + || index >= (int)(sizeof(dependencies) / sizeof(dependencies[0])))
17392 + return NULL;
17393 +
17394 + return &dependencies[index];
17395 +}
17396 --- /dev/null
17397 +++ b/arch/ia64/kdb/ia64-opc.h
17398 @@ -0,0 +1,141 @@
17399 +/* ia64-opc.h -- IA-64 opcode table.
17400 + Copyright 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
17401 + Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
17402 +
17403 + This file is part of GDB, GAS, and the GNU binutils.
17404 +
17405 + GDB, GAS, and the GNU binutils are free software; you can redistribute
17406 + them and/or modify them under the terms of the GNU General Public
17407 + License as published by the Free Software Foundation; either version
17408 + 2, or (at your option) any later version.
17409 +
17410 + GDB, GAS, and the GNU binutils are distributed in the hope that they
17411 + will be useful, but WITHOUT ANY WARRANTY; without even the implied
17412 + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
17413 + the GNU General Public License for more details.
17414 +
17415 + You should have received a copy of the GNU General Public License
17416 + along with this file; see the file COPYING. If not, write to the
17417 + Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
17418 + 02110-1301, USA. */
17419 +
17420 +/* Extracted from binutils 2.16.91.0.2 (OpenSUSE 10.0) and modified for kdb use.
17421 + * Any trailing whitespace was removed and #ifdef/ifndef __KERNEL__ added as
17422 + * required.
17423 + * Keith Owens <kaos@sgi.com> 15 May 2006
17424 + */
17425 +
17426 +#ifndef IA64_OPC_H
17427 +#define IA64_OPC_H
17428 +
17429 +#ifdef __KERNEL__
17430 +#include "ia64.h"
17431 +#else /* __KERNEL__ */
17432 +#include "opcode/ia64.h"
17433 +#endif /* __KERNEL__ */
17434 +
17435 +/* define a couple of abbreviations: */
17436 +
17437 +#define bOp(x) (((ia64_insn) ((x) & 0xf)) << 37)
17438 +#define mOp bOp (-1)
17439 +#define Op(x) bOp (x), mOp
17440 +
17441 +#define FIRST IA64_OPCODE_FIRST
17442 +#define X_IN_MLX IA64_OPCODE_X_IN_MLX
17443 +#define LAST IA64_OPCODE_LAST
17444 +#define PRIV IA64_OPCODE_PRIV
17445 +#define NO_PRED IA64_OPCODE_NO_PRED
17446 +#define SLOT2 IA64_OPCODE_SLOT2
17447 +#define PSEUDO IA64_OPCODE_PSEUDO
17448 +#define F2_EQ_F3 IA64_OPCODE_F2_EQ_F3
17449 +#define LEN_EQ_64MCNT IA64_OPCODE_LEN_EQ_64MCNT
17450 +#define MOD_RRBS IA64_OPCODE_MOD_RRBS
17451 +#define POSTINC IA64_OPCODE_POSTINC
17452 +
17453 +#define AR_CCV IA64_OPND_AR_CCV
17454 +#define AR_PFS IA64_OPND_AR_PFS
17455 +#define AR_CSD IA64_OPND_AR_CSD
17456 +#define C1 IA64_OPND_C1
17457 +#define C8 IA64_OPND_C8
17458 +#define C16 IA64_OPND_C16
17459 +#define GR0 IA64_OPND_GR0
17460 +#define IP IA64_OPND_IP
17461 +#define PR IA64_OPND_PR
17462 +#define PR_ROT IA64_OPND_PR_ROT
17463 +#define PSR IA64_OPND_PSR
17464 +#define PSR_L IA64_OPND_PSR_L
17465 +#define PSR_UM IA64_OPND_PSR_UM
17466 +
17467 +#define AR3 IA64_OPND_AR3
17468 +#define B1 IA64_OPND_B1
17469 +#define B2 IA64_OPND_B2
17470 +#define CR3 IA64_OPND_CR3
17471 +#define F1 IA64_OPND_F1
17472 +#define F2 IA64_OPND_F2
17473 +#define F3 IA64_OPND_F3
17474 +#define F4 IA64_OPND_F4
17475 +#define P1 IA64_OPND_P1
17476 +#define P2 IA64_OPND_P2
17477 +#define R1 IA64_OPND_R1
17478 +#define R2 IA64_OPND_R2
17479 +#define R3 IA64_OPND_R3
17480 +#define R3_2 IA64_OPND_R3_2
17481 +
17482 +#define CPUID_R3 IA64_OPND_CPUID_R3
17483 +#define DBR_R3 IA64_OPND_DBR_R3
17484 +#define DTR_R3 IA64_OPND_DTR_R3
17485 +#define ITR_R3 IA64_OPND_ITR_R3
17486 +#define IBR_R3 IA64_OPND_IBR_R3
17487 +#define MR3 IA64_OPND_MR3
17488 +#define MSR_R3 IA64_OPND_MSR_R3
17489 +#define PKR_R3 IA64_OPND_PKR_R3
17490 +#define PMC_R3 IA64_OPND_PMC_R3
17491 +#define PMD_R3 IA64_OPND_PMD_R3
17492 +#define RR_R3 IA64_OPND_RR_R3
17493 +
17494 +#define CCNT5 IA64_OPND_CCNT5
17495 +#define CNT2a IA64_OPND_CNT2a
17496 +#define CNT2b IA64_OPND_CNT2b
17497 +#define CNT2c IA64_OPND_CNT2c
17498 +#define CNT5 IA64_OPND_CNT5
17499 +#define CNT6 IA64_OPND_CNT6
17500 +#define CPOS6a IA64_OPND_CPOS6a
17501 +#define CPOS6b IA64_OPND_CPOS6b
17502 +#define CPOS6c IA64_OPND_CPOS6c
17503 +#define IMM1 IA64_OPND_IMM1
17504 +#define IMM14 IA64_OPND_IMM14
17505 +#define IMM17 IA64_OPND_IMM17
17506 +#define IMM22 IA64_OPND_IMM22
17507 +#define IMM44 IA64_OPND_IMM44
17508 +#define SOF IA64_OPND_SOF
17509 +#define SOL IA64_OPND_SOL
17510 +#define SOR IA64_OPND_SOR
17511 +#define IMM8 IA64_OPND_IMM8
17512 +#define IMM8U4 IA64_OPND_IMM8U4
17513 +#define IMM8M1 IA64_OPND_IMM8M1
17514 +#define IMM8M1U4 IA64_OPND_IMM8M1U4
17515 +#define IMM8M1U8 IA64_OPND_IMM8M1U8
17516 +#define IMM9a IA64_OPND_IMM9a
17517 +#define IMM9b IA64_OPND_IMM9b
17518 +#define IMMU2 IA64_OPND_IMMU2
17519 +#define IMMU21 IA64_OPND_IMMU21
17520 +#define IMMU24 IA64_OPND_IMMU24
17521 +#define IMMU62 IA64_OPND_IMMU62
17522 +#define IMMU64 IA64_OPND_IMMU64
17523 +#define IMMU7a IA64_OPND_IMMU7a
17524 +#define IMMU7b IA64_OPND_IMMU7b
17525 +#define IMMU9 IA64_OPND_IMMU9
17526 +#define INC3 IA64_OPND_INC3
17527 +#define LEN4 IA64_OPND_LEN4
17528 +#define LEN6 IA64_OPND_LEN6
17529 +#define MBTYPE4 IA64_OPND_MBTYPE4
17530 +#define MHTYPE8 IA64_OPND_MHTYPE8
17531 +#define POS6 IA64_OPND_POS6
17532 +#define TAG13 IA64_OPND_TAG13
17533 +#define TAG13b IA64_OPND_TAG13b
17534 +#define TGT25 IA64_OPND_TGT25
17535 +#define TGT25b IA64_OPND_TGT25b
17536 +#define TGT25c IA64_OPND_TGT25c
17537 +#define TGT64 IA64_OPND_TGT64
17538 +
17539 +#endif
17540 --- /dev/null
17541 +++ b/arch/ia64/kdb/ia64.h
17542 @@ -0,0 +1,402 @@
17543 +/* ia64.h -- Header file for ia64 opcode table
17544 + Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
17545 + Contributed by David Mosberger-Tang <davidm@hpl.hp.com> */
17546 +
17547 +/* Extracted from binutils 2.16.91.0.2 (OpenSUSE 10.0) and modified for kdb use.
17548 + * Any trailing whitespace was removed and #ifdef/ifndef __KERNEL__ added as
17549 + * required.
17550 + * Keith Owens <kaos@sgi.com> 15 May 2006
17551 + */
17552 +
17553 +#ifndef opcode_ia64_h
17554 +#define opcode_ia64_h
17555 +
17556 +#ifdef __KERNEL__
17557 +#include <asm/bfd.h>
17558 +#else /* __KERNEL__ */
17559 +#include <sys/types.h>
17560 +
17561 +#include "bfd.h"
17562 +#endif /* __KERNEL__ */
17563 +
17564 +
17565 +typedef BFD_HOST_U_64_BIT ia64_insn;
17566 +
17567 +enum ia64_insn_type
17568 + {
17569 + IA64_TYPE_NIL = 0, /* illegal type */
17570 + IA64_TYPE_A, /* integer alu (I- or M-unit) */
17571 + IA64_TYPE_I, /* non-alu integer (I-unit) */
17572 + IA64_TYPE_M, /* memory (M-unit) */
17573 + IA64_TYPE_B, /* branch (B-unit) */
17574 + IA64_TYPE_F, /* floating-point (F-unit) */
17575 + IA64_TYPE_X, /* long encoding (X-unit) */
17576 + IA64_TYPE_DYN, /* Dynamic opcode */
17577 + IA64_NUM_TYPES
17578 + };
17579 +
17580 +enum ia64_unit
17581 + {
17582 + IA64_UNIT_NIL = 0, /* illegal unit */
17583 + IA64_UNIT_I, /* integer unit */
17584 + IA64_UNIT_M, /* memory unit */
17585 + IA64_UNIT_B, /* branching unit */
17586 + IA64_UNIT_F, /* floating-point unit */
17587 + IA64_UNIT_L, /* long "unit" */
17588 + IA64_UNIT_X, /* may be integer or branch unit */
17589 + IA64_NUM_UNITS
17590 + };
17591 +
17592 +/* Changes to this enumeration must be propagated to the operand table in
17593 + bfd/cpu-ia64-opc.c
17594 + */
17595 +enum ia64_opnd
17596 + {
17597 + IA64_OPND_NIL, /* no operand---MUST BE FIRST!*/
17598 +
17599 + /* constants */
17600 + IA64_OPND_AR_CSD, /* application register csd (ar.csd) */
17601 + IA64_OPND_AR_CCV, /* application register ccv (ar.ccv) */
17602 + IA64_OPND_AR_PFS, /* application register pfs (ar.pfs) */
17603 + IA64_OPND_C1, /* the constant 1 */
17604 + IA64_OPND_C8, /* the constant 8 */
17605 + IA64_OPND_C16, /* the constant 16 */
17606 + IA64_OPND_GR0, /* gr0 */
17607 + IA64_OPND_IP, /* instruction pointer (ip) */
17608 + IA64_OPND_PR, /* predicate register (pr) */
17609 + IA64_OPND_PR_ROT, /* rotating predicate register (pr.rot) */
17610 + IA64_OPND_PSR, /* processor status register (psr) */
17611 + IA64_OPND_PSR_L, /* processor status register L (psr.l) */
17612 + IA64_OPND_PSR_UM, /* processor status register UM (psr.um) */
17613 +
17614 + /* register operands: */
17615 + IA64_OPND_AR3, /* third application register # (bits 20-26) */
17616 + IA64_OPND_B1, /* branch register # (bits 6-8) */
17617 + IA64_OPND_B2, /* branch register # (bits 13-15) */
17618 + IA64_OPND_CR3, /* third control register # (bits 20-26) */
17619 + IA64_OPND_F1, /* first floating-point register # */
17620 + IA64_OPND_F2, /* second floating-point register # */
17621 + IA64_OPND_F3, /* third floating-point register # */
17622 + IA64_OPND_F4, /* fourth floating-point register # */
17623 + IA64_OPND_P1, /* first predicate # */
17624 + IA64_OPND_P2, /* second predicate # */
17625 + IA64_OPND_R1, /* first register # */
17626 + IA64_OPND_R2, /* second register # */
17627 + IA64_OPND_R3, /* third register # */
17628 + IA64_OPND_R3_2, /* third register # (limited to gr0-gr3) */
17629 +
17630 + /* indirect operands: */
17631 + IA64_OPND_CPUID_R3, /* cpuid[reg] */
17632 + IA64_OPND_DBR_R3, /* dbr[reg] */
17633 + IA64_OPND_DTR_R3, /* dtr[reg] */
17634 + IA64_OPND_ITR_R3, /* itr[reg] */
17635 + IA64_OPND_IBR_R3, /* ibr[reg] */
17636 + IA64_OPND_MR3, /* memory at addr of third register # */
17637 + IA64_OPND_MSR_R3, /* msr[reg] */
17638 + IA64_OPND_PKR_R3, /* pkr[reg] */
17639 + IA64_OPND_PMC_R3, /* pmc[reg] */
17640 + IA64_OPND_PMD_R3, /* pmd[reg] */
17641 + IA64_OPND_RR_R3, /* rr[reg] */
17642 +
17643 + /* immediate operands: */
17644 + IA64_OPND_CCNT5, /* 5-bit count (31 - bits 20-24) */
17645 + IA64_OPND_CNT2a, /* 2-bit count (1 + bits 27-28) */
17646 + IA64_OPND_CNT2b, /* 2-bit count (bits 27-28): 1, 2, 3 */
17647 + IA64_OPND_CNT2c, /* 2-bit count (bits 30-31): 0, 7, 15, or 16 */
17648 + IA64_OPND_CNT5, /* 5-bit count (bits 14-18) */
17649 + IA64_OPND_CNT6, /* 6-bit count (bits 27-32) */
17650 + IA64_OPND_CPOS6a, /* 6-bit count (63 - bits 20-25) */
17651 + IA64_OPND_CPOS6b, /* 6-bit count (63 - bits 14-19) */
17652 + IA64_OPND_CPOS6c, /* 6-bit count (63 - bits 31-36) */
17653 + IA64_OPND_IMM1, /* signed 1-bit immediate (bit 36) */
17654 + IA64_OPND_IMMU2, /* unsigned 2-bit immediate (bits 13-14) */
17655 + IA64_OPND_IMMU7a, /* unsigned 7-bit immediate (bits 13-19) */
17656 + IA64_OPND_IMMU7b, /* unsigned 7-bit immediate (bits 20-26) */
17657 + IA64_OPND_SOF, /* 8-bit stack frame size */
17658 + IA64_OPND_SOL, /* 8-bit size of locals */
17659 + IA64_OPND_SOR, /* 6-bit number of rotating registers (scaled by 8) */
17660 + IA64_OPND_IMM8, /* signed 8-bit immediate (bits 13-19 & 36) */
17661 + IA64_OPND_IMM8U4, /* cmp4*u signed 8-bit immediate (bits 13-19 & 36) */
17662 + IA64_OPND_IMM8M1, /* signed 8-bit immediate -1 (bits 13-19 & 36) */
17663 + IA64_OPND_IMM8M1U4, /* cmp4*u signed 8-bit immediate -1 (bits 13-19 & 36)*/
17664 + IA64_OPND_IMM8M1U8, /* cmp*u signed 8-bit immediate -1 (bits 13-19 & 36) */
17665 + IA64_OPND_IMMU9, /* unsigned 9-bit immediate (bits 33-34, 20-26) */
17666 + IA64_OPND_IMM9a, /* signed 9-bit immediate (bits 6-12, 27, 36) */
17667 + IA64_OPND_IMM9b, /* signed 9-bit immediate (bits 13-19, 27, 36) */
17668 + IA64_OPND_IMM14, /* signed 14-bit immediate (bits 13-19, 27-32, 36) */
17669 + IA64_OPND_IMM17, /* signed 17-bit immediate (2*bits 6-12, 24-31, 36) */
17670 + IA64_OPND_IMMU21, /* unsigned 21-bit immediate (bits 6-25, 36) */
17671 + IA64_OPND_IMM22, /* signed 22-bit immediate (bits 13-19, 22-36) */
17672 + IA64_OPND_IMMU24, /* unsigned 24-bit immediate (bits 6-26, 31-32, 36) */
17673 + IA64_OPND_IMM44, /* signed 44-bit immediate (2^16*bits 6-32, 36) */
17674 + IA64_OPND_IMMU62, /* unsigned 62-bit immediate */
17675 + IA64_OPND_IMMU64, /* unsigned 64-bit immediate (lotsa bits...) */
17676 + IA64_OPND_INC3, /* signed 3-bit (bits 13-15): +/-1, 4, 8, 16 */
17677 + IA64_OPND_LEN4, /* 4-bit count (bits 27-30 + 1) */
17678 + IA64_OPND_LEN6, /* 6-bit count (bits 27-32 + 1) */
17679 + IA64_OPND_MBTYPE4, /* 4-bit mux type (bits 20-23) */
17680 + IA64_OPND_MHTYPE8, /* 8-bit mux type (bits 20-27) */
17681 + IA64_OPND_POS6, /* 6-bit count (bits 14-19) */
17682 + IA64_OPND_TAG13, /* signed 13-bit tag (ip + 16*bits 6-12, 33-34) */
17683 + IA64_OPND_TAG13b, /* signed 13-bit tag (ip + 16*bits 24-32) */
17684 + IA64_OPND_TGT25, /* signed 25-bit (ip + 16*bits 6-25, 36) */
17685 + IA64_OPND_TGT25b, /* signed 25-bit (ip + 16*bits 6-12, 20-32, 36) */
17686 + IA64_OPND_TGT25c, /* signed 25-bit (ip + 16*bits 13-32, 36) */
17687 + IA64_OPND_TGT64, /* 64-bit (ip + 16*bits 13-32, 36, 2-40(L)) */
17688 + IA64_OPND_LDXMOV, /* any symbol, generates R_IA64_LDXMOV. */
17689 +
17690 + IA64_OPND_COUNT /* # of operand types (MUST BE LAST!) */
17691 + };
17692 +
17693 +enum ia64_dependency_mode
17694 +{
17695 + IA64_DV_RAW,
17696 + IA64_DV_WAW,
17697 + IA64_DV_WAR,
17698 +};
17699 +
17700 +enum ia64_dependency_semantics
17701 +{
17702 + IA64_DVS_NONE,
17703 + IA64_DVS_IMPLIED,
17704 + IA64_DVS_IMPLIEDF,
17705 + IA64_DVS_DATA,
17706 + IA64_DVS_INSTR,
17707 + IA64_DVS_SPECIFIC,
17708 + IA64_DVS_STOP,
17709 + IA64_DVS_OTHER,
17710 +};
17711 +
17712 +enum ia64_resource_specifier
17713 +{
17714 + IA64_RS_ANY,
17715 + IA64_RS_AR_K,
17716 + IA64_RS_AR_UNAT,
17717 + IA64_RS_AR, /* 8-15, 20, 22-23, 31, 33-35, 37-39, 41-43, 45-47, 67-111 */
17718 + IA64_RS_ARb, /* 48-63, 112-127 */
17719 + IA64_RS_BR,
17720 + IA64_RS_CFM,
17721 + IA64_RS_CPUID,
17722 + IA64_RS_CR_IRR,
17723 + IA64_RS_CR_LRR,
17724 + IA64_RS_CR, /* 3-7,10-15,18,26-63,75-79,82-127 */
17725 + IA64_RS_DBR,
17726 + IA64_RS_FR,
17727 + IA64_RS_FRb,
17728 + IA64_RS_GR0,
17729 + IA64_RS_GR,
17730 + IA64_RS_IBR,
17731 + IA64_RS_INSERVICE, /* CR[EOI] or CR[IVR] */
17732 + IA64_RS_MSR,
17733 + IA64_RS_PKR,
17734 + IA64_RS_PMC,
17735 + IA64_RS_PMD,
17736 + IA64_RS_PR, /* non-rotating, 1-15 */
17737 + IA64_RS_PRr, /* rotating, 16-62 */
17738 + IA64_RS_PR63,
17739 + IA64_RS_RR,
17740 +
17741 + IA64_RS_ARX, /* ARs not in RS_AR or RS_ARb */
17742 + IA64_RS_CRX, /* CRs not in RS_CR */
17743 + IA64_RS_PSR, /* PSR bits */
17744 + IA64_RS_RSE, /* implementation-specific RSE resources */
17745 + IA64_RS_AR_FPSR,
17746 +};
17747 +
17748 +enum ia64_rse_resource
17749 +{
17750 + IA64_RSE_N_STACKED_PHYS,
17751 + IA64_RSE_BOF,
17752 + IA64_RSE_STORE_REG,
17753 + IA64_RSE_LOAD_REG,
17754 + IA64_RSE_BSPLOAD,
17755 + IA64_RSE_RNATBITINDEX,
17756 + IA64_RSE_CFLE,
17757 + IA64_RSE_NDIRTY,
17758 +};
17759 +
17760 +/* Information about a given resource dependency */
17761 +struct ia64_dependency
17762 +{
17763 + /* Name of the resource */
17764 + const char *name;
17765 + /* Does this dependency need further specification? */
17766 + enum ia64_resource_specifier specifier;
17767 + /* Mode of dependency */
17768 + enum ia64_dependency_mode mode;
17769 + /* Dependency semantics */
17770 + enum ia64_dependency_semantics semantics;
17771 + /* Register index, if applicable (distinguishes AR, CR, and PSR deps) */
17772 +#define REG_NONE (-1)
17773 + int regindex;
17774 + /* Special info on semantics */
17775 + const char *info;
17776 +};
17777 +
17778 +/* Two arrays of indexes into the ia64_dependency table.
17779 + chks are dependencies to check for conflicts when an opcode is
17780 + encountered; regs are dependencies to register (mark as used) when an
17781 + opcode is used. chks correspond to readers (RAW) or writers (WAW or
17782 + WAR) of a resource, while regs correspond to writers (RAW or WAW) and
17783 + readers (WAR) of a resource. */
17784 +struct ia64_opcode_dependency
17785 +{
17786 + int nchks;
17787 + const unsigned short *chks;
17788 + int nregs;
17789 + const unsigned short *regs;
17790 +};
17791 +
17792 +/* encode/extract the note/index for a dependency */
17793 +#define RDEP(N,X) (((N)<<11)|(X))
17794 +#define NOTE(X) (((X)>>11)&0x1F)
17795 +#define DEP(X) ((X)&0x7FF)
17796 +
17797 +/* A template descriptor describes the execution units that are active
17798 + for each of the three slots. It also specifies the location of
17799 + instruction group boundaries that may be present between two slots. */
17800 +struct ia64_templ_desc
17801 + {
17802 + int group_boundary; /* 0=no boundary, 1=between slot 0 & 1, etc. */
17803 + enum ia64_unit exec_unit[3];
17804 + const char *name;
17805 + };
17806 +
17807 +/* The opcode table is an array of struct ia64_opcode. */
17808 +
17809 +struct ia64_opcode
17810 + {
17811 + /* The opcode name. */
17812 + const char *name;
17813 +
17814 + /* The type of the instruction: */
17815 + enum ia64_insn_type type;
17816 +
17817 + /* Number of output operands: */
17818 + int num_outputs;
17819 +
17820 + /* The opcode itself. Those bits which will be filled in with
17821 + operands are zeroes. */
17822 + ia64_insn opcode;
17823 +
17824 + /* The opcode mask. This is used by the disassembler. This is a
17825 + mask containing ones indicating those bits which must match the
17826 + opcode field, and zeroes indicating those bits which need not
17827 + match (and are presumably filled in by operands). */
17828 + ia64_insn mask;
17829 +
17830 + /* An array of operand codes. Each code is an index into the
17831 + operand table. They appear in the order which the operands must
17832 + appear in assembly code, and are terminated by a zero. */
17833 + enum ia64_opnd operands[5];
17834 +
17835 + /* One bit flags for the opcode. These are primarily used to
17836 + indicate specific processors and environments support the
17837 + instructions. The defined values are listed below. */
17838 + unsigned int flags;
17839 +
17840 + /* Used by ia64_find_next_opcode (). */
17841 + short ent_index;
17842 +
17843 + /* Opcode dependencies. */
17844 + const struct ia64_opcode_dependency *dependencies;
17845 + };
17846 +
17847 +/* Values defined for the flags field of a struct ia64_opcode. */
17848 +
17849 +#define IA64_OPCODE_FIRST (1<<0) /* must be first in an insn group */
17850 +#define IA64_OPCODE_X_IN_MLX (1<<1) /* insn is allowed in X slot of MLX */
17851 +#define IA64_OPCODE_LAST (1<<2) /* must be last in an insn group */
17852 +#define IA64_OPCODE_PRIV (1<<3) /* privileged instruct */
17853 +#define IA64_OPCODE_SLOT2 (1<<4) /* insn allowed in slot 2 only */
17854 +#define IA64_OPCODE_NO_PRED (1<<5) /* insn cannot be predicated */
17855 +#define IA64_OPCODE_PSEUDO (1<<6) /* insn is a pseudo-op */
17856 +#define IA64_OPCODE_F2_EQ_F3 (1<<7) /* constraint: F2 == F3 */
17857 +#define IA64_OPCODE_LEN_EQ_64MCNT (1<<8) /* constraint: LEN == 64-CNT */
17858 +#define IA64_OPCODE_MOD_RRBS (1<<9) /* modifies all rrbs in CFM */
17859 +#define IA64_OPCODE_POSTINC (1<<10) /* postincrement MR3 operand */
17860 +
17861 +/* A macro to extract the major opcode from an instruction. */
17862 +#define IA64_OP(i) (((i) >> 37) & 0xf)
17863 +
17864 +enum ia64_operand_class
17865 + {
17866 + IA64_OPND_CLASS_CST, /* constant */
17867 + IA64_OPND_CLASS_REG, /* register */
17868 + IA64_OPND_CLASS_IND, /* indirect register */
17869 + IA64_OPND_CLASS_ABS, /* absolute value */
17870 + IA64_OPND_CLASS_REL, /* IP-relative value */
17871 + };
17872 +
17873 +/* The operands table is an array of struct ia64_operand. */
17874 +
17875 +struct ia64_operand
17876 +{
17877 + enum ia64_operand_class class;
17878 +
17879 + /* Set VALUE as the operand bits for the operand of type SELF in the
17880 + instruction pointed to by CODE. If an error occurs, *CODE is not
17881 + modified and the returned string describes the cause of the
17882 + error. If no error occurs, NULL is returned. */
17883 + const char *(*insert) (const struct ia64_operand *self, ia64_insn value,
17884 + ia64_insn *code);
17885 +
17886 + /* Extract the operand bits for an operand of type SELF from
17887 + instruction CODE store them in *VALUE. If an error occurs, the
17888 + cause of the error is described by the string returned. If no
17889 + error occurs, NULL is returned. */
17890 + const char *(*extract) (const struct ia64_operand *self, ia64_insn code,
17891 + ia64_insn *value);
17892 +
17893 + /* A string whose meaning depends on the operand class. */
17894 +
17895 + const char *str;
17896 +
17897 + struct bit_field
17898 + {
17899 + /* The number of bits in the operand. */
17900 + int bits;
17901 +
17902 + /* How far the operand is left shifted in the instruction. */
17903 + int shift;
17904 + }
17905 + field[4]; /* no operand has more than this many bit-fields */
17906 +
17907 + unsigned int flags;
17908 +
17909 + const char *desc; /* brief description */
17910 +};
17911 +
17912 +/* Values defined for the flags field of a struct ia64_operand. */
17913 +
17914 +/* Disassemble as signed decimal (instead of hex): */
17915 +#define IA64_OPND_FLAG_DECIMAL_SIGNED (1<<0)
17916 +/* Disassemble as unsigned decimal (instead of hex): */
17917 +#define IA64_OPND_FLAG_DECIMAL_UNSIGNED (1<<1)
17918 +
17919 +extern const struct ia64_templ_desc ia64_templ_desc[16];
17920 +
17921 +/* The tables are sorted by major opcode number and are otherwise in
17922 + the order in which the disassembler should consider instructions. */
17923 +extern struct ia64_opcode ia64_opcodes_a[];
17924 +extern struct ia64_opcode ia64_opcodes_i[];
17925 +extern struct ia64_opcode ia64_opcodes_m[];
17926 +extern struct ia64_opcode ia64_opcodes_b[];
17927 +extern struct ia64_opcode ia64_opcodes_f[];
17928 +extern struct ia64_opcode ia64_opcodes_d[];
17929 +
17930 +
17931 +extern struct ia64_opcode *ia64_find_opcode (const char *name);
17932 +extern struct ia64_opcode *ia64_find_next_opcode (struct ia64_opcode *ent);
17933 +
17934 +extern struct ia64_opcode *ia64_dis_opcode (ia64_insn insn,
17935 + enum ia64_insn_type type);
17936 +
17937 +extern void ia64_free_opcode (struct ia64_opcode *ent);
17938 +extern const struct ia64_dependency *ia64_find_dependency (int index);
17939 +
17940 +/* To avoid circular library dependencies, this array is implemented
17941 + in bfd/cpu-ia64-opc.c: */
17942 +extern const struct ia64_operand elf64_ia64_operands[IA64_OPND_COUNT];
17943 +
17944 +#endif /* opcode_ia64_h */
17945 --- /dev/null
17946 +++ b/arch/ia64/kdb/kdb_cmds
17947 @@ -0,0 +1,17 @@
17948 +# Standard architecture specific commands for kdb.
17949 +# These commands are appended to those in kdb/kdb_cmds, see that file for
17950 +# restrictions.
17951 +
17952 +# Standard debugging information for first level support, invoked from archkdb*
17953 +# commands that are defined in kdb/kdb_cmds.
17954 +
17955 +defcmd archkdbcommon "" "Common arch debugging"
17956 + set LINES 2000000
17957 + set BTAPROMPT 0
17958 + -summary
17959 + -id %ip-0x40
17960 + -cpu
17961 + -ps
17962 + -dmesg 600
17963 + -bt
17964 +endefcmd
17965 --- /dev/null
17966 +++ b/arch/ia64/kdb/kdba_bp.c
17967 @@ -0,0 +1,841 @@
17968 +/*
17969 + * Kernel Debugger Architecture Dependent Breakpoint Handling
17970 + *
17971 + * This file is subject to the terms and conditions of the GNU General Public
17972 + * License. See the file "COPYING" in the main directory of this archive
17973 + * for more details.
17974 + *
17975 + * Copyright (c) 1999-2004 Silicon Graphics, Inc. All Rights Reserved.
17976 + */
17977 +
17978 +#include <linux/string.h>
17979 +#include <linux/kernel.h>
17980 +#include <linux/sched.h>
17981 +#include <linux/smp.h>
17982 +#include <linux/ptrace.h>
17983 +#include <linux/kdb.h>
17984 +#include <linux/kdbprivate.h>
17985 +#include <asm/pgalloc.h>
17986 +
17987 +
17988 +static char *kdba_rwtypes[] = { "Instruction(Register)", "Data Write",
17989 + "I/O", "Data Access"};
17990 +
17991 +/*
17992 + * Table describing processor architecture hardware
17993 + * breakpoint registers.
17994 + */
17995 +
17996 +static kdbhard_bp_t kdb_hardbreaks[KDB_MAXHARDBPT];
17997 +
17998 +#ifdef CONFIG_KDB_HARDWARE_BREAKPOINTS
17999 +/*
18000 + * Counters for number of debug registers used on each CPU.
18001 + * Used to detect when to enable and disable debug traps.
18002 + */
18003 +static unsigned char kdb_dbrs_used[NR_CPUS];
18004 +#endif /* CONFIG_KDB_HARDWARE_BREAKPOINTS */
18005 +
18006 +/*
18007 + * kdba_db_trap
18008 + *
18009 + * Perform breakpoint processing upon entry to the
18010 + * processor debugger fault. Determine and print
18011 + * the active breakpoint.
18012 + *
18013 + * Parameters:
18014 + * regs Exception frame containing machine register state
18015 + * error Error number passed to kdb.
18016 + * Outputs:
18017 + * None.
18018 + * Returns:
18019 + * KDB_DB_BPT Standard instruction or data breakpoint encountered
18020 + * KDB_DB_SS Single Step fault ('ss' command or end of 'ssb' command)
18021 + * KDB_DB_SSB Single Step fault, caller should continue ('ssb' command)
18022 + * KDB_DB_SSBPT Single step over breakpoint
18023 + * KDB_DB_NOBPT No existing kdb breakpoint matches this debug exception
18024 + * Locking:
18025 + * None.
18026 + * Remarks:
18027 + * Yup, there be goto's here.
18028 + *
18029 + * If multiple processors receive debug exceptions simultaneously,
18030 + * one may be waiting at the kdb fence in kdb() while the user
18031 + * issues a 'bc' command to clear the breakpoint the processor
18032 + * which is waiting has already encountered. If this is the case,
18033 + * the debug registers will no longer match any entry in the
18034 + * breakpoint table, and we'll return the value KDB_DB_NOBPT.
18035 + * This can cause a panic in die_if_kernel(). It is safer to
18036 + * disable the breakpoint (bd), go until all processors are past
18037 + * the breakpoint then clear the breakpoint (bc). This code
18038 + * recognises a breakpoint even when disabled but not when it has
18039 + * been cleared.
18040 + *
18041 + * WARNING: This routine clears the debug state. It should be called
18042 + * once per debug and the result cached.
18043 + */
18044 +
18045 +kdb_dbtrap_t
18046 +kdba_db_trap(struct pt_regs *regs, int error)
18047 +{
18048 + int i;
18049 + kdb_dbtrap_t rv = KDB_DB_BPT;
18050 + kdb_bp_t *bp;
18051 +
18052 + if (KDB_NULL_REGS(regs))
18053 + return KDB_DB_NOBPT;
18054 +
18055 + if (KDB_DEBUG(BP))
18056 + kdb_printf("kdba_db_trap: error %d\n", error);
18057 +
18058 + if (error == 36) {
18059 + /* Single step */
18060 + if (KDB_STATE(SSBPT)) {
18061 + if (KDB_DEBUG(BP))
18062 + kdb_printf("ssbpt\n");
18063 + KDB_STATE_CLEAR(SSBPT);
18064 + for(i=0,bp=kdb_breakpoints;
18065 + i < KDB_MAXBPT;
18066 + i++, bp++) {
18067 + if (KDB_DEBUG(BP))
18068 + kdb_printf("bp 0x%p enabled %d delayed %d global %d cpu %d\n",
18069 + bp, bp->bp_enabled, bp->bp_delayed, bp->bp_global, bp->bp_cpu);
18070 + if (!bp->bp_enabled)
18071 + continue;
18072 + if (!bp->bp_global && bp->bp_cpu != smp_processor_id())
18073 + continue;
18074 + if (KDB_DEBUG(BP))
18075 + kdb_printf("bp for this cpu\n");
18076 + if (bp->bp_delayed) {
18077 + bp->bp_delayed = 0;
18078 + if (KDB_DEBUG(BP))
18079 + kdb_printf("kdba_installbp\n");
18080 + kdba_installbp(regs, bp);
18081 + if (!KDB_STATE(DOING_SS)) {
18082 + kdba_clearsinglestep(regs);
18083 + return(KDB_DB_SSBPT);
18084 + }
18085 + break;
18086 + }
18087 + }
18088 + if (i == KDB_MAXBPT) {
18089 + kdb_printf("kdb: Unable to find delayed breakpoint\n");
18090 + }
18091 + if (!KDB_STATE(DOING_SS)) {
18092 + kdba_clearsinglestep(regs);
18093 + return(KDB_DB_NOBPT);
18094 + }
18095 + /* FALLTHROUGH */
18096 + }
18097 +
18098 + /*
18099 + * KDB_STATE_DOING_SS is set when the kernel debugger is using
18100 + * the processor trap flag to single-step a processor. If a
18101 + * single step trap occurs and this flag is clear, the SS trap
18102 + * will be ignored by KDB and the kernel will be allowed to deal
18103 + * with it as necessary (e.g. for ptrace).
18104 + */
18105 + if (!KDB_STATE(DOING_SS))
18106 + return(KDB_DB_NOBPT);
18107 +
18108 + /* single step */
18109 + rv = KDB_DB_SS; /* Indicate single step */
18110 + if (KDB_STATE(DOING_SSB)) /* No ia64 ssb support yet */
18111 + KDB_STATE_CLEAR(DOING_SSB); /* No ia64 ssb support yet */
18112 + if (KDB_STATE(DOING_SSB)) {
18113 + /* No IA64 ssb support yet */
18114 + } else {
18115 + /*
18116 + * Print current insn
18117 + */
18118 + kdb_machreg_t pc = regs->cr_iip + ia64_psr(regs)->ri * 6;
18119 + kdb_printf("SS trap at ");
18120 + kdb_symbol_print(pc, NULL, KDB_SP_DEFAULT|KDB_SP_NEWLINE);
18121 + kdb_id1(pc);
18122 + KDB_STATE_CLEAR(DOING_SS);
18123 + }
18124 +
18125 + if (rv != KDB_DB_SSB)
18126 + kdba_clearsinglestep(regs);
18127 + }
18128 +
18129 + return(rv);
18130 +}
18131 +
18132 +/*
18133 + * kdba_bp_trap
18134 + *
18135 + * Perform breakpoint processing upon entry to the
18136 + * processor breakpoint instruction fault. Determine and print
18137 + * the active breakpoint.
18138 + *
18139 + * Parameters:
18140 + * regs Exception frame containing machine register state
18141 + * error Error number passed to kdb.
18142 + * Outputs:
18143 + * None.
18144 + * Returns:
18145 + * 0 Standard instruction or data breakpoint encountered
18146 + * 1 Single Step fault ('ss' command)
18147 + * 2 Single Step fault, caller should continue ('ssb' command)
18148 + * 3 No existing kdb breakpoint matches this debug exception
18149 + * Locking:
18150 + * None.
18151 + * Remarks:
18152 + *
18153 + * If multiple processors receive debug exceptions simultaneously,
18154 + * one may be waiting at the kdb fence in kdb() while the user
18155 + * issues a 'bc' command to clear the breakpoint the processor which
18156 + * is waiting has already encountered. If this is the case, the
18157 + * debug registers will no longer match any entry in the breakpoint
18158 + * table, and we'll return the value '3'. This can cause a panic
18159 + * in die_if_kernel(). It is safer to disable the breakpoint (bd),
18160 + * 'go' until all processors are past the breakpoint then clear the
18161 + * breakpoint (bc). This code recognises a breakpoint even when
18162 + * disabled but not when it has been cleared.
18163 + *
18164 + * WARNING: This routine resets the ip. It should be called
18165 + * once per breakpoint and the result cached.
18166 + */
18167 +
18168 +kdb_dbtrap_t
18169 +kdba_bp_trap(struct pt_regs *regs, int error)
18170 +{
18171 + int i;
18172 + kdb_dbtrap_t rv;
18173 + kdb_bp_t *bp;
18174 +
18175 + if (KDB_NULL_REGS(regs))
18176 + return KDB_DB_NOBPT;
18177 +
18178 + /*
18179 + * Determine which breakpoint was encountered.
18180 + */
18181 + if (KDB_DEBUG(BP))
18182 + kdb_printf("kdba_bp_trap: ip=0x%lx "
18183 + "regs=0x%p sp=0x%lx\n",
18184 + regs->cr_iip, regs, regs->r12);
18185 +
18186 + rv = KDB_DB_NOBPT; /* Cause kdb() to return */
18187 +
18188 + for(i=0, bp=kdb_breakpoints; i<KDB_MAXBPT; i++, bp++) {
18189 + if (bp->bp_free)
18190 + continue;
18191 + if (!bp->bp_global && bp->bp_cpu != smp_processor_id())
18192 + continue;
18193 + if (bp->bp_addr == regs->cr_iip) {
18194 + /* Hit this breakpoint. */
18195 + kdb_printf("Instruction(i) breakpoint #%d at 0x%lx\n",
18196 + i, regs->cr_iip);
18197 + kdb_id1(regs->cr_iip);
18198 + rv = KDB_DB_BPT;
18199 + bp->bp_delay = 1;
18200 + /* SSBPT is set when the kernel debugger must single
18201 + * step a task in order to re-establish an instruction
18202 + * breakpoint which uses the instruction replacement
18203 + * mechanism. It is cleared by any action that removes
18204 + * the need to single-step the breakpoint.
18205 + */
18206 + KDB_STATE_SET(SSBPT);
18207 + break;
18208 + }
18209 + }
18210 +
18211 + return rv;
18212 +}
18213 +
18214 +/*
18215 + * kdba_handle_bp
18216 + *
18217 + * Handle an instruction-breakpoint trap. Called when re-installing
18218 + * an enabled breakpoint which has has the bp_delay bit set.
18219 + *
18220 + * Parameters:
18221 + * Returns:
18222 + * Locking:
18223 + * Remarks:
18224 + *
18225 + * Ok, we really need to:
18226 + * 1) Restore the original instruction byte(s)
18227 + * 2) Single Step
18228 + * 3) Restore breakpoint instruction
18229 + * 4) Continue.
18230 + *
18231 + *
18232 + */
18233 +
18234 +static void
18235 +kdba_handle_bp(struct pt_regs *regs, kdb_bp_t *bp)
18236 +{
18237 + if (KDB_NULL_REGS(regs))
18238 + return;
18239 +
18240 + if (KDB_DEBUG(BP))
18241 + kdb_printf("regs->cr_iip = 0x%lx\n", regs->cr_iip);
18242 +
18243 + /*
18244 + * Setup single step
18245 + */
18246 + kdba_setsinglestep(regs);
18247 +
18248 + /*
18249 + * Reset delay attribute
18250 + */
18251 + bp->bp_delay = 0;
18252 + bp->bp_delayed = 1;
18253 +}
18254 +
18255 +
18256 +/*
18257 + * kdba_bptype
18258 + *
18259 + * Return a string describing type of breakpoint.
18260 + *
18261 + * Parameters:
18262 + * bph Pointer to hardware breakpoint description
18263 + * Outputs:
18264 + * None.
18265 + * Returns:
18266 + * Character string.
18267 + * Locking:
18268 + * None.
18269 + * Remarks:
18270 + */
18271 +
18272 +char *
18273 +kdba_bptype(kdbhard_bp_t *bph)
18274 +{
18275 + char *mode;
18276 +
18277 + mode = kdba_rwtypes[bph->bph_mode];
18278 +
18279 + return mode;
18280 +}
18281 +
18282 +/*
18283 + * kdba_printbpreg
18284 + *
18285 + * Print register name assigned to breakpoint
18286 + *
18287 + * Parameters:
18288 + * bph Pointer hardware breakpoint structure
18289 + * Outputs:
18290 + * None.
18291 + * Returns:
18292 + * None.
18293 + * Locking:
18294 + * None.
18295 + * Remarks:
18296 + */
18297 +
18298 +static void
18299 +kdba_printbpreg(kdbhard_bp_t *bph)
18300 +{
18301 + kdb_printf(" in dr%ld", bph->bph_reg);
18302 +}
18303 +
18304 +/*
18305 + * kdba_printbp
18306 + *
18307 + * Print string describing hardware breakpoint.
18308 + *
18309 + * Parameters:
18310 + * bph Pointer to hardware breakpoint description
18311 + * Outputs:
18312 + * None.
18313 + * Returns:
18314 + * None.
18315 + * Locking:
18316 + * None.
18317 + * Remarks:
18318 + */
18319 +
18320 +void
18321 +kdba_printbp(kdb_bp_t *bp)
18322 +{
18323 + kdb_printf("\n is enabled");
18324 + if (bp->bp_hardtype) {
18325 + /* Note that bp->bp_hard[NR_CPU] is for x86.
18326 + * The ia64 uses bp->bp_hard[0] only.
18327 + */
18328 + kdba_printbpreg(bp->bp_hard[0]);
18329 + if (bp->bp_hard[0]->bph_mode != 0) {
18330 + kdb_printf(" for %d bytes",
18331 + bp->bp_hard[0]->bph_length+1);
18332 + }
18333 + }
18334 +}
18335 +
18336 +/*
18337 + * kdba_parsebp
18338 + *
18339 + * Parse architecture dependent portion of the
18340 + * breakpoint command.
18341 + *
18342 + * Parameters:
18343 + * None.
18344 + * Outputs:
18345 + * None.
18346 + * Returns:
18347 + * Zero for success, a kdb diagnostic for failure
18348 + * Locking:
18349 + * None.
18350 + * Remarks:
18351 + * for IA64 architure, data access, data write and
18352 + * I/O breakpoints are supported in addition to instruction
18353 + * breakpoints.
18354 + *
18355 + * {datar|dataw|io|inst} [length]
18356 + */
18357 +
18358 +int
18359 +kdba_parsebp(int argc, const char **argv, int *nextargp, kdb_bp_t *bp)
18360 +{
18361 + int nextarg = *nextargp;
18362 + int diag;
18363 + kdbhard_bp_t *bph = &bp->bp_template;
18364 +
18365 + bph->bph_mode = 0; /* Default to instruction breakpoint */
18366 + bph->bph_length = 0; /* Length must be zero for insn bp */
18367 + if ((argc + 1) != nextarg) {
18368 + if (strnicmp(argv[nextarg], "datar", sizeof("datar")) == 0) {
18369 + bph->bph_mode = 3;
18370 + } else if (strnicmp(argv[nextarg], "dataw", sizeof("dataw")) == 0) {
18371 + bph->bph_mode = 1;
18372 + } else if (strnicmp(argv[nextarg], "io", sizeof("io")) == 0) {
18373 + bph->bph_mode = 2;
18374 + } else if (strnicmp(argv[nextarg], "inst", sizeof("inst")) == 0) {
18375 + bph->bph_mode = 0;
18376 + } else {
18377 + return KDB_ARGCOUNT;
18378 + }
18379 +
18380 + if (bph->bph_mode == 0)
18381 + kdba_check_pc(&bp->bp_addr);
18382 +
18383 + bph->bph_length = 3; /* Default to 4 byte */
18384 +
18385 + nextarg++;
18386 +
18387 + if ((argc + 1) != nextarg) {
18388 + unsigned long len;
18389 +
18390 + diag = kdbgetularg((char *)argv[nextarg],
18391 + &len);
18392 + if (diag)
18393 + return diag;
18394 +
18395 +
18396 + if ((len > 4) || (len == 3))
18397 + return KDB_BADLENGTH;
18398 +
18399 + bph->bph_length = len;
18400 + bph->bph_length--; /* Normalize for debug register */
18401 + nextarg++;
18402 + }
18403 +
18404 + if ((argc + 1) != nextarg)
18405 + return KDB_ARGCOUNT;
18406 +
18407 + /*
18408 + * Indicate to architecture independent level that
18409 + * a hardware register assignment is required to enable
18410 + * this breakpoint.
18411 + */
18412 +
18413 + bph->bph_free = 0;
18414 + } else {
18415 + if (KDB_DEBUG(BP))
18416 + kdb_printf("kdba_bp: no args, forcehw is %d\n", bp->bp_forcehw);
18417 + if (bp->bp_forcehw) {
18418 + /*
18419 + * We are forced to use a hardware register for this
18420 + * breakpoint because either the bph or bpha
18421 + * commands were used to establish this breakpoint.
18422 + */
18423 + bph->bph_free = 0;
18424 + } else {
18425 + /*
18426 + * Indicate to architecture dependent level that
18427 + * the instruction replacement breakpoint technique
18428 + * should be used for this breakpoint.
18429 + */
18430 + bph->bph_free = 1;
18431 + bp->bp_adjust = 0; /* software, break is fault, not trap */
18432 + }
18433 + }
18434 +
18435 + if (bph->bph_mode == 0 && kdba_verify_rw(bp->bp_addr, bph->bph_length+1)) {
18436 + kdb_printf("Invalid address for breakpoint, ignoring bp command\n");
18437 + return KDB_BADADDR;
18438 + }
18439 +
18440 + *nextargp = nextarg;
18441 +#ifndef CONFIG_KDB_HARDWARE_BREAKPOINTS
18442 + if (!bph->bph_free) {
18443 + kdb_printf("kdba_parsebp hardware breakpoints are not supported yet\n");
18444 + return KDB_NOTIMP;
18445 + }
18446 +#endif /* CONFIG_KDB_HARDWARE_BREAKPOINTS */
18447 + return 0;
18448 +}
18449 +
18450 +/*
18451 + * kdba_allocbp
18452 + *
18453 + * Associate a hardware register with a breakpoint.
18454 + *
18455 + * Parameters:
18456 + * None.
18457 + * Outputs:
18458 + * None.
18459 + * Returns:
18460 + * A pointer to the allocated register kdbhard_bp_t structure for
18461 + * success, Null and a non-zero diagnostic for failure.
18462 + * Locking:
18463 + * None.
18464 + * Remarks:
18465 + */
18466 +
18467 +static kdbhard_bp_t *
18468 +kdba_allocbp(kdbhard_bp_t *bph, int *diagp)
18469 +{
18470 + int i;
18471 + kdbhard_bp_t *newbph;
18472 +
18473 + for(i=0,newbph=kdb_hardbreaks; i < KDB_MAXHARDBPT; i++, newbph++) {
18474 + if (newbph->bph_free) {
18475 + break;
18476 + }
18477 + }
18478 +
18479 + if (i == KDB_MAXHARDBPT) {
18480 + *diagp = KDB_TOOMANYDBREGS;
18481 + return NULL;
18482 + }
18483 +
18484 + *diagp = 0;
18485 +
18486 + /*
18487 + * Copy data from template. Can't just copy the entire template
18488 + * here because the register number in kdb_hardbreaks must be
18489 + * preserved.
18490 + */
18491 + newbph->bph_data = bph->bph_data;
18492 + newbph->bph_write = bph->bph_write;
18493 + newbph->bph_mode = bph->bph_mode;
18494 + newbph->bph_length = bph->bph_length;
18495 +
18496 + /*
18497 + * Mark entry allocated.
18498 + */
18499 + newbph->bph_free = 0;
18500 +
18501 + return newbph;
18502 +}
18503 +
18504 +/*
18505 + * kdba_alloc_hwbp
18506 + *
18507 + * Associate a hardware registers with a breakpoint.
18508 + * If hw bp is global hw registers descriptor will be allocated
18509 + * on every CPU.
18510 + *
18511 + * Parameters:
18512 + * bp - hardware bp
18513 + * diagp - pointer to variable that will store error when
18514 + * function complete
18515 + * Outputs:
18516 + * None.
18517 + * Returns:
18518 + * None
18519 + * Locking:
18520 + * None.
18521 + * Remarks:
18522 + * Should be called with correct bp->bp_template.
18523 + */
18524 +
18525 +void
18526 +kdba_alloc_hwbp(kdb_bp_t *bp, int *diagp)
18527 +{
18528 + /* Note that bp->bp_hard[NR_CPU] is for x86.
18529 + * The ia64 uses bp->bp_hard[0] only.
18530 + */
18531 + bp->bp_hard[0] = kdba_allocbp(&bp->bp_template, diagp);
18532 + bp->bp_hardtype = 1;
18533 +}
18534 +
18535 +
18536 +
18537 +/*
18538 + * kdba_freebp
18539 + *
18540 + * Deallocate a hardware breakpoint
18541 + *
18542 + * Parameters:
18543 + * None.
18544 + * Outputs:
18545 + * None.
18546 + * Returns:
18547 + * Zero for success, a kdb diagnostic for failure
18548 + * Locking:
18549 + * None.
18550 + * Remarks:
18551 + */
18552 +
18553 +static void
18554 +kdba_freebp(kdbhard_bp_t *bph)
18555 +{
18556 + bph->bph_free = 1;
18557 +}
18558 +
18559 +/*
18560 + * kdba_free_hwbp
18561 + *
18562 + * Frees allocated hw registers descriptors for bp.
18563 + * If hw bp is global, hw registers descriptors will be freed
18564 + * on every CPU.
18565 + *
18566 + * Parameters:
18567 + * bp - hardware bp
18568 + * Outputs:
18569 + * None.
18570 + * Returns:
18571 + * None
18572 + * Locking:
18573 + * None.
18574 + * Remarks:
18575 + * Should be called with correct bp->bp_template
18576 + */
18577 +
18578 +void
18579 +kdba_free_hwbp(kdb_bp_t *bp)
18580 +{
18581 + /* When kernel enters KDB, first, all local bps
18582 + * are removed, so here we don't need to clear
18583 + * debug registers.
18584 + */
18585 +
18586 + kdba_freebp(bp->bp_hard[0]);
18587 + bp->bp_hard[0] = NULL;
18588 + bp->bp_hardtype = 0;
18589 +}
18590 +
18591 +
18592 +/*
18593 + * kdba_initbp
18594 + *
18595 + * Initialize the breakpoint table for the hardware breakpoint
18596 + * register.
18597 + *
18598 + * Parameters:
18599 + * None.
18600 + * Outputs:
18601 + * None.
18602 + * Returns:
18603 + * Zero for success, a kdb diagnostic for failure
18604 + * Locking:
18605 + * None.
18606 + * Remarks:
18607 + *
18608 + * There is one entry per register. On the ia64 architecture
18609 + * all the registers are interchangeable, so no special allocation
18610 + * criteria are required.
18611 + */
18612 +
18613 +void
18614 +kdba_initbp(void)
18615 +{
18616 + int i;
18617 + kdbhard_bp_t *bph;
18618 +
18619 + /*
18620 + * Clear the hardware breakpoint table
18621 + */
18622 +
18623 + memset(kdb_hardbreaks, '\0', sizeof(kdb_hardbreaks));
18624 +
18625 + for(i=0,bph=kdb_hardbreaks; i<KDB_MAXHARDBPT; i++, bph++) {
18626 + bph->bph_reg = i;
18627 + bph->bph_free = 1;
18628 + }
18629 +}
18630 +
18631 +#ifdef CONFIG_KDB_HARDWARE_BREAKPOINTS
18632 +/*
18633 + * Enable Instruction Debug & Data Debug faults on this CPU now.
18634 + */
18635 +static inline void kdba_enable_debug_faults(void)
18636 +{
18637 + unsigned long tmp;
18638 +
18639 + tmp = ia64_getreg(_IA64_REG_PSR);
18640 + ia64_stop();
18641 + tmp |= IA64_PSR_DB;
18642 + ia64_stop();
18643 + ia64_setreg(_IA64_REG_PSR_L, tmp);
18644 + ia64_srlz_i();
18645 + if (KDB_DEBUG(BP))
18646 + kdb_printf("enabling debug faults: [%d]PSR.L=%08x\n",
18647 + smp_processor_id(), (unsigned int)tmp);
18648 +}
18649 +
18650 +/*
18651 + * Disable Instruction Debug & Data Debug faults on this CPU now.
18652 + */
18653 +static inline void kdba_disable_debug_faults(void)
18654 +{
18655 + unsigned long tmp;
18656 +
18657 + tmp = ia64_getreg(_IA64_REG_PSR);
18658 + ia64_stop();
18659 + tmp &= ~IA64_PSR_DB;
18660 + ia64_stop();
18661 + ia64_setreg(_IA64_REG_PSR_L, tmp);
18662 + ia64_srlz_i();
18663 + if (KDB_DEBUG(BP))
18664 + kdb_printf("disabling debug faults: [%d]PSR.L=%08x\n",
18665 + smp_processor_id(), (unsigned int)tmp);
18666 +}
18667 +#endif /* CONFIG_KDB_HARDWARE_BREAKPOINTS */
18668 +
18669 +/*
18670 + * kdba_installbp
18671 + *
18672 + * Install a breakpoint
18673 + *
18674 + * Parameters:
18675 + * regs Exception frame
18676 + * bp Breakpoint structure for the breakpoint to be installed
18677 + * Outputs:
18678 + * None.
18679 + * Returns:
18680 + * 0 if breakpoint set, otherwise error.
18681 + * Locking:
18682 + * None.
18683 + * Remarks:
18684 + * For hardware breakpoints, a debug register is allocated
18685 + * and assigned to the breakpoint. If no debug register is
18686 + * available, a warning message is printed and the breakpoint
18687 + * is disabled.
18688 + *
18689 + * For instruction replacement breakpoints, we must single-step
18690 + * over the replaced instruction at this point so we can re-install
18691 + * the breakpoint instruction after the single-step. SSBPT is set
18692 + * when the breakpoint is initially hit and is cleared by any action
18693 + * that removes the need for single-step over the breakpoint.
18694 + */
18695 +
18696 +int
18697 +kdba_installbp(struct pt_regs *regs, kdb_bp_t *bp)
18698 +{
18699 + /*
18700 + * Install the breakpoint, if it is not already installed.
18701 + */
18702 +
18703 + if (KDB_DEBUG(BP)) {
18704 + kdb_printf("kdba_installbp bp_installed %d\n", bp->bp_installed);
18705 + }
18706 + if (!KDB_STATE(SSBPT))
18707 + bp->bp_delay = 0;
18708 +
18709 + if (bp->bp_hardtype) {
18710 +#ifdef CONFIG_KDB_HARDWARE_BREAKPOINTS
18711 + /*
18712 + * Hardware breakpoints are always local for the
18713 + * purposes of installation (i.e. they use per-cpu
18714 + * registers), so we don't need to check bp_installed
18715 + */
18716 + kdba_installdbreg(bp);
18717 + if (++kdb_dbrs_used[smp_processor_id()] == 1)
18718 + kdba_enable_debug_faults();
18719 + bp->bp_installed = 1;
18720 + if (KDB_DEBUG(BP)) {
18721 + kdb_printf("kdba_installbp hardware reg %ld at " kdb_bfd_vma_fmt0 "\n",
18722 + bp->bp_hard[0]->bph_reg, bp->bp_addr);
18723 + }
18724 +#endif /* CONFIG_KDB_HARDWARE_BREAKPOINTS */
18725 +
18726 + } else if (bp->bp_delay) {
18727 + if (!bp->bp_installed) {
18728 + if (KDB_DEBUG(BP))
18729 + kdb_printf("kdba_installbp delayed bp\n");
18730 + kdba_handle_bp(regs, bp);
18731 + }
18732 + } else {
18733 + if (!bp->bp_installed) {
18734 + /* Software breakpoints always use slot 0 in the 128 bit
18735 + * bundle. The template type does not matter, slot 0
18736 + * can only be M or B and the encodings for break.m and
18737 + * break.b are the same.
18738 + */
18739 + unsigned long break_inst;
18740 + if (kdb_getarea_size(bp->bp_inst.inst, bp->bp_addr, sizeof(bp->bp_inst.inst))) {
18741 + kdb_printf("kdba_installbp failed to read software breakpoint at 0x%lx\n", bp->bp_addr);
18742 + return(1);
18743 + }
18744 + break_inst = (bp->bp_inst.inst[0] & ~INST_SLOT0_MASK) | BREAK_INSTR;
18745 + if (kdb_putarea_size(bp->bp_addr, &break_inst, sizeof(break_inst))) {
18746 + kdb_printf("kdba_installbp failed to set software breakpoint at 0x%lx\n", bp->bp_addr);
18747 + return(1);
18748 + }
18749 + if (KDB_DEBUG(BP))
18750 + kdb_printf("kdba_installbp instruction 0x%lx at " kdb_bfd_vma_fmt0 "\n",
18751 + BREAK_INSTR, bp->bp_addr);
18752 + bp->bp_installed = 1;
18753 + flush_icache_range(bp->bp_addr, bp->bp_addr+16);
18754 + }
18755 + }
18756 + return(0);
18757 +}
18758 +
18759 +/*
18760 + * kdba_removebp
18761 + *
18762 + * Make a breakpoint ineffective.
18763 + *
18764 + * Parameters:
18765 + * None.
18766 + * Outputs:
18767 + * None.
18768 + * Returns:
18769 + * 0 if breakpoint removed, otherwise error.
18770 + * Locking:
18771 + * None.
18772 + * Remarks:
18773 + */
18774 +
18775 +int
18776 +kdba_removebp(kdb_bp_t *bp)
18777 +{
18778 + /*
18779 + * For hardware breakpoints, remove it from the active register,
18780 + * for software breakpoints, restore the instruction stream.
18781 + */
18782 + if (KDB_DEBUG(BP)) {
18783 + kdb_printf("kdba_removebp bp_installed %d\n", bp->bp_installed);
18784 + }
18785 +
18786 + if (bp->bp_hardtype) {
18787 +#ifdef CONFIG_KDB_HARDWARE_BREAKPOINTS
18788 + if (KDB_DEBUG(BP)) {
18789 + kdb_printf("kdb: removing hardware reg %ld at " kdb_bfd_vma_fmt0 "\n",
18790 + bp->bp_hard[0]->bph_reg, bp->bp_addr);
18791 + }
18792 + if (--kdb_dbrs_used[smp_processor_id()] == 0)
18793 + kdba_disable_debug_faults();
18794 + kdba_removedbreg(bp);
18795 +#endif /* CONFIG_KDB_HARDWARE_BREAKPOINTS */
18796 + } else {
18797 + if (bp->bp_installed) {
18798 + if (KDB_DEBUG(BP))
18799 + kdb_printf("kdb: restoring instruction 0x%016lx%016lx at " kdb_bfd_vma_fmt0 "\n",
18800 + bp->bp_inst.inst[0], bp->bp_inst.inst[1], bp->bp_addr);
18801 + if (kdba_putarea_size(bp->bp_addr, bp->bp_inst.inst, sizeof(bp->bp_inst.inst)))
18802 + return(1);
18803 + }
18804 + bp->bp_installed = 0;
18805 + flush_icache_range(bp->bp_addr, bp->bp_addr+16);
18806 + }
18807 + return(0);
18808 +}
18809 --- /dev/null
18810 +++ b/arch/ia64/kdb/kdba_bt.c
18811 @@ -0,0 +1,285 @@
18812 +/*
18813 + * Kernel Debugger Architecture Dependent Stack Traceback
18814 + *
18815 + * This file is subject to the terms and conditions of the GNU General Public
18816 + * License. See the file "COPYING" in the main directory of this archive
18817 + * for more details.
18818 + *
18819 + * Copyright (c) 1999-2004 Silicon Graphics, Inc. All Rights Reserved.
18820 + */
18821 +
18822 +#include <linux/ctype.h>
18823 +#include <linux/string.h>
18824 +#include <linux/kernel.h>
18825 +#include <linux/sched.h>
18826 +#include <linux/kallsyms.h>
18827 +#include <linux/kdb.h>
18828 +#include <linux/kdbprivate.h>
18829 +#include <asm/system.h>
18830 +#include <asm/sections.h>
18831 +
18832 +/*
18833 + * bt_print_one
18834 + *
18835 + * Print one back trace entry.
18836 + *
18837 + * Inputs:
18838 + * ip Current program counter.
18839 + * symtab Information about symbol that ip falls within.
18840 + * argcount Maximum number of arguments to print.
18841 + * Outputs:
18842 + * None.
18843 + * Returns:
18844 + * None.
18845 + * Locking:
18846 + * None.
18847 + * Remarks:
18848 + * None.
18849 + */
18850 +
18851 +static void
18852 +bt_print_one(kdb_machreg_t ip,
18853 + const kdb_symtab_t *symtab, int argcount,
18854 + struct unw_frame_info *info)
18855 +{
18856 + int btsymarg = 0; /* Convert arguments to symbols */
18857 + int btsp = 0; /* Print stack and backing store pointers */
18858 + int nosect = 0; /* Suppress section data */
18859 + int args;
18860 + kdb_machreg_t sp, bsp, cfm;
18861 +
18862 + kdbgetintenv("BTSYMARG", &btsymarg);
18863 + kdbgetintenv("BTSP", &btsp);
18864 + kdbgetintenv("NOSECT", &nosect);
18865 +
18866 + unw_get_sp(info, &sp);
18867 + unw_get_bsp(info, &bsp);
18868 + unw_get_cfm(info, &cfm);
18869 + kdb_symbol_print(ip, symtab, KDB_SP_VALUE|KDB_SP_NEWLINE);
18870 + args = (cfm >> 7) & 0x7f; /* sol */
18871 + if (!args)
18872 + args = cfm & 0x7f; /* no in/local, use sof instead */
18873 + if (argcount && args) {
18874 + int i, argc = args;
18875 +
18876 + kdb_printf(" args (");
18877 + if (argc > argcount)
18878 + argc = argcount;
18879 +
18880 + for(i = 0; i < argc; i++){
18881 + kdb_machreg_t arg;
18882 + char nat;
18883 + if (unw_access_gr(info, i+32, &arg, &nat, 0))
18884 + arg = 0;
18885 +
18886 + if (i)
18887 + kdb_printf(", ");
18888 + kdb_printf("0x%lx", arg);
18889 + }
18890 + kdb_printf(")\n");
18891 + if (btsymarg) {
18892 + kdb_symtab_t arg_symtab;
18893 + kdb_machreg_t arg;
18894 + for(i = 0; i < argc; i++){
18895 + char nat;
18896 + if (unw_access_gr(info, i+32, &arg, &nat, 0))
18897 + arg = 0;
18898 + if (kdbnearsym(arg, &arg_symtab)) {
18899 + kdb_printf(" arg %d ", i);
18900 + kdb_symbol_print(arg, &arg_symtab, KDB_SP_DEFAULT|KDB_SP_NEWLINE);
18901 + }
18902 + }
18903 + }
18904 + }
18905 + if (symtab->sym_name) {
18906 + if (!nosect) {
18907 + kdb_printf(" %s", symtab->mod_name);
18908 + if (symtab->sec_name)
18909 + kdb_printf(" %s 0x%lx", symtab->sec_name, symtab->sec_start);
18910 + kdb_printf(" 0x%lx", symtab->sym_start);
18911 + if (symtab->sym_end)
18912 + kdb_printf(" 0x%lx", symtab->sym_end);
18913 + kdb_printf("\n");
18914 + }
18915 + if (strncmp(symtab->sym_name, "ia64_spinlock_contention", 24) == 0) {
18916 + kdb_machreg_t r31;
18917 + char nat;
18918 + kdb_printf(" r31 (spinlock address) ");
18919 + if (unw_access_gr(info, 31, &r31, &nat, 0))
18920 + r31 = 0;
18921 + kdb_symbol_print(r31, NULL, KDB_SP_VALUE|KDB_SP_NEWLINE);
18922 + }
18923 + }
18924 + if (btsp)
18925 + kdb_printf(" sp 0x%016lx bsp 0x%016lx cfm 0x%016lx info->pfs_loc 0x%016lx 0x%016lx\n",
18926 + sp, bsp, cfm, (u64) info->pfs_loc, info->pfs_loc ? *(info->pfs_loc) : 0);
18927 +}
18928 +
18929 +/*
18930 + * kdba_bt_stack
18931 + *
18932 + * Unwind the ia64 backtrace for a specified process.
18933 + *
18934 + * Inputs:
18935 + * argcount
18936 + * p Pointer to task structure to unwind.
18937 + * Outputs:
18938 + * None.
18939 + * Returns:
18940 + * zero for success, a kdb diagnostic if error
18941 + * Locking:
18942 + * none.
18943 + * Remarks:
18944 + * none.
18945 + */
18946 +
18947 +static int
18948 +kdba_bt_stack(int argcount, const struct task_struct *p)
18949 +{
18950 + kdb_symtab_t symtab;
18951 + struct unw_frame_info info;
18952 + struct switch_stack *sw;
18953 + struct pt_regs *regs = NULL;
18954 + int count = 0;
18955 + int btsp = 0; /* Backtrace the kdb code as well */
18956 + u64 *prev_pfs_loc = NULL;
18957 + extern char __attribute__ ((weak)) ia64_spinlock_contention_pre3_4[];
18958 + extern char __attribute__ ((weak)) ia64_spinlock_contention_pre3_4_end[];
18959 +
18960 + /*
18961 + * Upon entering kdb_main_loop, the stack frame looks like this:
18962 + *
18963 + * +---------------------+
18964 + * | struct pt_regs |
18965 + * +---------------------+
18966 + * | |
18967 + * | kernel stack |
18968 + * | |
18969 + * +=====================+ <--- top of stack upon entering kdb
18970 + * | struct pt_regs |
18971 + * +---------------------+
18972 + * | |
18973 + * | kdb stack |
18974 + * | |
18975 + * +---------------------+
18976 + * | struct switch_stack |
18977 + * +=====================+ <--- kdb_running_process[cpu].arch.sw from do_kdba_main_loop
18978 + *
18979 + * When looking at another process, we do not have the address of the
18980 + * current pt_regs, it is NULL. If the process has saved its state, use
18981 + * that pt_regs instead.
18982 + */
18983 +
18984 + kdbgetintenv("BTSP", &btsp);
18985 +
18986 + if (kdb_task_has_cpu(p)) {
18987 + struct kdb_running_process *krp = kdb_running_process + kdb_process_cpu(p);
18988 + if (krp->seqno) {
18989 + sw = krp->arch.sw;
18990 + regs = krp->regs;
18991 + }
18992 + else
18993 + sw = NULL;
18994 + }
18995 + else {
18996 + /* Not running, assume blocked */
18997 + sw = (struct switch_stack *) (p->thread.ksp + 16);
18998 + }
18999 + if (!sw) {
19000 + kdb_printf("Process does not have a switch_stack, cannot backtrace\n");
19001 + kdb_ps1(p);
19002 + return 0;
19003 + }
19004 +
19005 + unw_init_frame_info(&info, (struct task_struct *)p, sw);
19006 +
19007 + /* If we have the address of pt_regs, suppress backtrace on the frames below
19008 + * pt_regs. No point in displaying kdb itself, unless the user is debugging
19009 + * the unwinder using set BTSP=1.
19010 + */
19011 + if (regs && !btsp) {
19012 + kdb_machreg_t sp;
19013 + if (user_mode(regs)) {
19014 + kdb_printf("Process was interrupted in user mode, no backtrace available\n");
19015 + return 0;
19016 + }
19017 + do {
19018 + unw_get_sp(&info, &sp);
19019 + if (sp >= (kdb_machreg_t)regs)
19020 + break;
19021 + } while (unw_unwind(&info) >= 0 && count++ < 200);
19022 + }
19023 +
19024 + do {
19025 + kdb_machreg_t ip;
19026 +
19027 + /* Avoid unsightly console message from unw_unwind() when attempting
19028 + * to unwind through the Interrupt Vector Table which has no unwind
19029 + * information. dispatch_illegal_op_fault() is an exception, it sits
19030 + * in the 0x3c00 slot.
19031 + */
19032 + if (info.ip >= (u64)__start_ivt_text && info.ip < (u64)__end_ivt_text) {
19033 + if (info.ip < (u64)__start_ivt_text + 0x3c00 ||
19034 + info.ip >= (u64)__start_ivt_text + 0x4000)
19035 + return 0;
19036 + }
19037 +
19038 + /* WAR for spinlock contention from leaf functions. ia64_spinlock_contention_pre3_4
19039 + * has ar.pfs == r0. Leaf functions do not modify ar.pfs so ar.pfs remains
19040 + * as 0, stopping the backtrace. Record the previous ar.pfs when the current
19041 + * IP is in ia64_spinlock_contention_pre3_4 then unwind, if pfs_loc has not changed
19042 + * after unwind then use pt_regs.ar_pfs which is where the real ar.pfs is for
19043 + * leaf functions.
19044 + */
19045 + if (prev_pfs_loc && regs && info.pfs_loc == prev_pfs_loc)
19046 + info.pfs_loc = &regs->ar_pfs;
19047 + prev_pfs_loc = (info.ip >= (u64)ia64_spinlock_contention_pre3_4 &&
19048 + info.ip < (u64)ia64_spinlock_contention_pre3_4_end) ?
19049 + info.pfs_loc : NULL;
19050 +
19051 + unw_get_ip(&info, &ip);
19052 + if (ip == 0)
19053 + break;
19054 +
19055 + kdbnearsym(ip, &symtab);
19056 + if (!symtab.sym_name) {
19057 + kdb_printf("0x%0*lx - No name. May be an area that has no unwind data\n",
19058 + (int)(2*sizeof(ip)), ip);
19059 + return 0;
19060 + }
19061 + bt_print_one(ip, &symtab, argcount, &info);
19062 + } while (unw_unwind(&info) >= 0 && count++ < 200);
19063 + if (count >= 200)
19064 + kdb_printf("bt truncated, count limit reached\n");
19065 +
19066 + return 0;
19067 +}
19068 +
19069 +int
19070 +kdba_bt_address(kdb_machreg_t addr, int argcount)
19071 +{
19072 + kdb_printf("Backtrace from a stack address is not supported on ia64\n");
19073 + return KDB_NOTIMP;
19074 +}
19075 +
19076 +/*
19077 + * kdba_bt_process
19078 + *
19079 + * Do a backtrace for a specified process.
19080 + *
19081 + * Inputs:
19082 + * p Struct task pointer extracted by 'bt' command.
19083 + * argcount
19084 + * Outputs:
19085 + * None.
19086 + * Returns:
19087 + * zero for success, a kdb diagnostic if error
19088 + * Locking:
19089 + * none.
19090 + */
19091 +
19092 +int
19093 +kdba_bt_process(const struct task_struct *p, int argcount)
19094 +{
19095 + return kdba_bt_stack(argcount, p);
19096 +}
19097 --- /dev/null
19098 +++ b/arch/ia64/kdb/kdba_fru.c
19099 @@ -0,0 +1,65 @@
19100 +/*
19101 + * Kernel Debugger Architecture Dependent FRU functions.
19102 + *
19103 + * This file is subject to the terms and conditions of the GNU General Public
19104 + * License. See the file "COPYING" in the main directory of this archive
19105 + * for more details.
19106 + *
19107 + * Copyright (c) 1999-2004 Silicon Graphics, Inc. All Rights Reserved.
19108 + */
19109 +
19110 +#include <linux/types.h>
19111 +#include <linux/kdb.h>
19112 +#include <linux/kdbprivate.h>
19113 +#include <linux/module.h>
19114 +#include <asm/sal.h>
19115 +#include <asm/sn/sn_sal.h>
19116 +
19117 +MODULE_AUTHOR("Jesse Barnes");
19118 +MODULE_DESCRIPTION("Capture FRU data");
19119 +MODULE_LICENSE("GPL");
19120 +
19121 +/**
19122 + * kdba_fru - capture FRU data
19123 + * @argc: arg count
19124 + * @argv: arg values
19125 + *
19126 + * Tell the system contollers to capture FRU data
19127 + */
19128 +static int
19129 +kdba_fru(int argc, const char **argv)
19130 +{
19131 + u64 ret;
19132 +
19133 + kdb_printf("Capturing FRU data...");
19134 + ret = ia64_sn_fru_capture();
19135 + kdb_printf("done.\n");
19136 + return ret;
19137 +}
19138 +
19139 +/**
19140 + * kdba_fru_init - register 'fru' command with kdb
19141 + *
19142 + * Register the 'fru' command with kdb at load time.
19143 + */
19144 +static int __init
19145 +kdba_fru_init(void)
19146 +{
19147 + kdb_register("fru", kdba_fru, 0, "Capture FRU data", 0);
19148 +
19149 + return 0;
19150 +}
19151 +
19152 +/**
19153 + * kdba_fru_exit - unregister the 'fru' command
19154 + *
19155 + * Tell kdb that the 'fru' command is no longer available.
19156 + */
19157 +static void __exit
19158 +kdba_fru_exit(void)
19159 +{
19160 + kdb_unregister("fru");
19161 +}
19162 +
19163 +module_init(kdba_fru_init)
19164 +module_exit(kdba_fru_exit)
19165 --- /dev/null
19166 +++ b/arch/ia64/kdb/kdba_id.c
19167 @@ -0,0 +1,529 @@
19168 +/*
19169 + * Kernel Debugger Architecture Dependent Instruction Disassembly
19170 + *
19171 + * This file is subject to the terms and conditions of the GNU General Public
19172 + * License. See the file "COPYING" in the main directory of this archive
19173 + * for more details.
19174 + *
19175 + * Copyright (c) 1999-2004 Silicon Graphics, Inc. All Rights Reserved.
19176 + */
19177 +
19178 +#include <stdarg.h>
19179 +#include <linux/kernel.h>
19180 +#include <linux/init.h>
19181 +#include <linux/ctype.h>
19182 +#include <linux/string.h>
19183 +#include <linux/kdb.h>
19184 +#include <linux/kdbprivate.h>
19185 +#include <asm/patch.h>
19186 +
19187 +#define KDBA_PRINTBUF_LEN 64 /* buffer len to print a single instr */
19188 +#define KDBA_READBUFFER_LEN 256 /* buffer for BFD disassembler */
19189 +
19190 +#define BUNDLE_MULTIPLIER 3 /* how many instr/bundle */
19191 +#define BUNDLE_SIZE 16 /* how many bytes/bundle */
19192 +#define KDBA_DEFAULT_IDLEN 3 /* default number of bundles to disassemble */
19193 +
19194 +/*
19195 + * kdba_dis_getsym
19196 + *
19197 + * Get a symbol for the disassembler.
19198 + *
19199 + * Parameters:
19200 + * addr Address for which to get symbol
19201 + * dip Pointer to disassemble_info
19202 + * Returns:
19203 + * 0
19204 + * Locking:
19205 + * Remarks:
19206 + * Not used for kdb.
19207 + */
19208 +
19209 +/* ARGSUSED */
19210 +static int
19211 +kdba_dis_getsym(bfd_vma addr, disassemble_info *dip)
19212 +{
19213 +
19214 + return 0;
19215 +}
19216 +
19217 +/*
19218 + * kdba_printaddress
19219 + *
19220 + * Print (symbolically) an address.
19221 + *
19222 + * Parameters:
19223 + * addr Address for which to get symbol
19224 + * dip Pointer to disassemble_info
19225 + * flag True if a ":<tab>" sequence should follow the address
19226 + * Returns:
19227 + * 0
19228 + * Locking:
19229 + * Remarks:
19230 + *
19231 + */
19232 +
19233 +/* ARGSUSED */
19234 +static void
19235 +kdba_printaddress(kdb_machreg_t addr, disassemble_info *dip, int flag)
19236 +{
19237 + kdb_symtab_t symtab;
19238 + int spaces = 5;
19239 + unsigned int offset;
19240 + int slot;
19241 +
19242 + /* Some code prints slot number, some prints "byte" offset
19243 + * from start of bundle. Standardise on "byte" offset.
19244 + */
19245 + slot = addr & 0x0f;
19246 + if (slot < 3)
19247 + slot *= 6;
19248 + addr = (addr & ~0x0f) + slot;
19249 +
19250 + /*
19251 + * Print a symbol name or address as necessary.
19252 + */
19253 + dip->fprintf_func(dip->stream, "0x%0*lx ", (int)(2*sizeof(addr)), addr);
19254 + kdbnearsym(addr, &symtab);
19255 + if (symtab.sym_name) {
19256 + /* Do not use kdb_symbol_print here, it always does
19257 + * kdb_printf but we want dip->fprintf_func.
19258 + */
19259 + dip->fprintf_func(dip->stream, "%s", symtab.sym_name);
19260 + if ((offset = addr - symtab.sym_start) == 0) {
19261 + spaces += 4;
19262 + }
19263 + else {
19264 + unsigned int o = offset;
19265 + while (o >>= 4)
19266 + --spaces;
19267 + dip->fprintf_func(dip->stream, "+0x%x", offset);
19268 + }
19269 + }
19270 +
19271 + if (flag) {
19272 + if (spaces < 1) {
19273 + spaces = 1;
19274 + }
19275 + dip->fprintf_func(dip->stream, ":%*s", spaces, " ");
19276 + }
19277 +}
19278 +
19279 +/* Calls outside the current kernel module use a PLT */
19280 +
19281 +static int addr_maybe_plt;
19282 +
19283 +/* The templates below were extracted from arch/ia64/kernel/module.c. The
19284 + * masks were generated by this quick and dirty program:
19285 + */
19286 +
19287 +#if 0 /* mask program */
19288 +#include <stdio.h>
19289 +
19290 +#define u64 unsigned long
19291 +
19292 +/* routines copied from arch/ia64/kernel/patch.c */
19293 +
19294 +static void
19295 +ia64_patch (u64 insn_addr, u64 mask, u64 val)
19296 +{
19297 + u64 m0, m1, v0, v1, b0, b1, *b = (u64 *) (insn_addr & -16);
19298 +# define insn_mask ((1UL << 41) - 1)
19299 + unsigned long shift;
19300 +
19301 + b0 = b[0]; b1 = b[1];
19302 + shift = 5 + 41 * (insn_addr % 16); /* 5 bits of template, then 3 x 41-bit instructions */
19303 + if (shift >= 64) {
19304 + m1 = mask << (shift - 64);
19305 + v1 = val << (shift - 64);
19306 + } else {
19307 + m0 = mask << shift; m1 = mask >> (64 - shift);
19308 + v0 = val << shift; v1 = val >> (64 - shift);
19309 + b[0] = (b0 & ~m0) | (v0 & m0);
19310 + }
19311 + b[1] = (b1 & ~m1) | (v1 & m1);
19312 +}
19313 +
19314 +static void
19315 +ia64_patch_imm64 (u64 insn_addr, u64 val)
19316 +{
19317 + /* The assembler may generate offset pointing to either slot 1
19318 + or slot 2 for a long (2-slot) instruction, occupying slots 1
19319 + and 2. */
19320 + insn_addr &= -16UL;
19321 + ia64_patch(insn_addr + 2,
19322 + 0x01fffefe000UL, ( ((val & 0x8000000000000000UL) >> 27) /* bit 63 -> 36 */
19323 + | ((val & 0x0000000000200000UL) << 0) /* bit 21 -> 21 */
19324 + | ((val & 0x00000000001f0000UL) << 6) /* bit 16 -> 22 */
19325 + | ((val & 0x000000000000ff80UL) << 20) /* bit 7 -> 27 */
19326 + | ((val & 0x000000000000007fUL) << 13) /* bit 0 -> 13 */));
19327 + ia64_patch(insn_addr + 1, 0x1ffffffffffUL, val >> 22);
19328 +}
19329 +
19330 +static void
19331 +ia64_patch_imm60 (u64 insn_addr, u64 val)
19332 +{
19333 + /* The assembler may generate offset pointing to either slot 1
19334 + or slot 2 for a long (2-slot) instruction, occupying slots 1
19335 + and 2. */
19336 + insn_addr &= -16UL;
19337 + ia64_patch(insn_addr + 2,
19338 + 0x011ffffe000UL, ( ((val & 0x0800000000000000UL) >> 23) /* bit 59 -> 36 */
19339 + | ((val & 0x00000000000fffffUL) << 13) /* bit 0 -> 13 */));
19340 + ia64_patch(insn_addr + 1, 0x1fffffffffcUL, val >> 18);
19341 +}
19342 +
19343 +struct plt_entry {
19344 + unsigned char bundle[3][16];
19345 +};
19346 +static struct plt_entry ia64_plt_mask;
19347 +
19348 +int main(void)
19349 +{
19350 + int i, j;
19351 + printf("2 bundle\n");
19352 + for (i = 0; i < 2; ++i)
19353 + for (j = 0; j < 16; ++j)
19354 + ia64_plt_mask.bundle[i][j] = 0xff;
19355 + ia64_patch_imm64((u64) (ia64_plt_mask.bundle + 0), 0);
19356 + ia64_patch_imm60((u64) (ia64_plt_mask.bundle + 1), 0);
19357 + for (i = 0; i < 2; ++i) {
19358 + for (j = 0; j < 16; ++j) {
19359 + printf("0x%02x", ia64_plt_mask.bundle[i][j]);
19360 + if (j != 15)
19361 + printf(", ");
19362 + if (j % 6 == 5 || j == 15)
19363 + printf("\n");
19364 + }
19365 + }
19366 + printf("\n3 bundle\n");
19367 + for (i = 0; i < 3; ++i)
19368 + for (j = 0; j < 16; ++j)
19369 + ia64_plt_mask.bundle[i][j] = 0xff;
19370 + ia64_patch_imm64((u64) (ia64_plt_mask.bundle + 0), 0);
19371 + ia64_patch_imm64((u64) (ia64_plt_mask.bundle + 1), 0);
19372 + for (i = 0; i < 3; ++i) {
19373 + for (j = 0; j < 16; ++j) {
19374 + printf("0x%02x", ia64_plt_mask.bundle[i][j]);
19375 + if (j != 15)
19376 + printf(", ");
19377 + if (j % 6 == 5 || j == 15)
19378 + printf("\n");
19379 + }
19380 + }
19381 + return 0;
19382 +}
19383 +#endif /* mask program */
19384 +
19385 +#ifdef CONFIG_IA64_BRL_EMU
19386 +#define PLT_BUNDLES 3
19387 +struct plt_entry {
19388 + unsigned char bundle[PLT_BUNDLES][16];
19389 +};
19390 +static const struct plt_entry ia64_plt_template = {
19391 + {
19392 + {
19393 + 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, /* [MLX] nop.m 0 */
19394 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* movl r16=TARGET_IP */
19395 + 0x02, 0x00, 0x00, 0x60
19396 + },
19397 + {
19398 + 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, /* [MLX] nop.m 0 */
19399 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, /* movl gp=TARGET_GP */
19400 + 0x00, 0x00, 0x00, 0x60
19401 + },
19402 + {
19403 + 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, /* [MIB] nop.m 0 */
19404 + 0x60, 0x80, 0x04, 0x80, 0x03, 0x00, /* mov b6=r16 */
19405 + 0x60, 0x00, 0x80, 0x00 /* br.few b6 */
19406 + }
19407 + }
19408 +};
19409 +static const struct plt_entry ia64_plt_mask = {
19410 + {
19411 + {
19412 + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, /* [MLX] nop.m 0 */
19413 + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, /* movl r16=TARGET_IP */
19414 + 0x0f, 0x08, 0x00, 0xf0
19415 + },
19416 + {
19417 + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, /* [MLX] nop.m 0 */
19418 + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, /* movl gp=TARGET_GP */
19419 + 0x0f, 0x08, 0x00, 0xf0
19420 + },
19421 + {
19422 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* [MIB] nop.m 0 */
19423 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* mov b6=r16 */
19424 + 0xff, 0xff, 0xff, 0xff /* br.few b6 */
19425 + }
19426 +};
19427 +
19428 +#else /* !CONFIG_IA64_BRL_EMU */
19429 +
19430 +#define PLT_BUNDLES 2
19431 +struct plt_entry {
19432 + unsigned char bundle[PLT_BUNDLES][16];
19433 +};
19434 +static const struct plt_entry ia64_plt_template = {
19435 + {
19436 + {
19437 + 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, /* [MLX] nop.m 0 */
19438 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, /* movl gp=TARGET_GP */
19439 + 0x00, 0x00, 0x00, 0x60
19440 + },
19441 + {
19442 + 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, /* [MLX] nop.m 0 */
19443 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* brl.many TARGET_IP */
19444 + 0x08, 0x00, 0x00, 0xc0
19445 + }
19446 + }
19447 +};
19448 +static const struct plt_entry ia64_plt_mask = {
19449 + {
19450 + {
19451 + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, /* [MLX] nop.m 0 */
19452 + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, /* movl gp=TARGET_GP */
19453 + 0x0f, 0x08, 0x00, 0xf0
19454 + },
19455 + {
19456 + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* [MLX] nop.m 0 */
19457 + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, /* brl.many TARGET_IP */
19458 + 0x0f, 0x00, 0x00, 0xf7
19459 + }
19460 + }
19461 +};
19462 +#endif /* CONFIG_IA64_BRL_EMU */
19463 +
19464 +static inline u64
19465 +get_slot(u64 bundle, int slot)
19466 +{
19467 + switch (slot) {
19468 + case 0:
19469 + return (((u64 *)bundle)[0] >> 5) & 0x1ffffffffffLL;
19470 + case 1:
19471 + return ((((u64 *)bundle)[0] >> 46) & 0x3ffff) |
19472 + ((((u64 *)bundle)[1] & 0x7fffff) << 18);
19473 + default:
19474 + return (((u64 *)bundle)[1] >> 23) & 0x1ffffffffffLL;
19475 + }
19476 +}
19477 +
19478 +static inline u64
19479 +get_movl (u64 addr)
19480 +{
19481 + /* X2 format */
19482 + u64 slot1 = get_slot(addr, 1), slot2 = get_slot(addr, 2);
19483 + u64 i, imm9d, imm5c, ic, imm7b, imm41;
19484 + i = (slot2 >> 36) & 0x1UL;
19485 + imm9d = (slot2 >> 27) & 0xfffUL;
19486 + imm5c = (slot2 >> 22) & 0x1fUL;
19487 + ic = (slot2 >> 21) & 0x1UL;
19488 + imm7b = (slot2 >> 13) & 0x7fUL;
19489 + imm41 = slot1;
19490 + return (i << 63) | (imm41 << 22) | (ic << 21) | (imm5c << 16) |
19491 + (imm9d << 7) | imm7b;
19492 +}
19493 +
19494 +static inline u64
19495 +get_brl (u64 addr)
19496 +{
19497 + /* X3 format */
19498 + u64 slot1 = get_slot(addr, 1), slot2 = get_slot(addr, 2);
19499 + u64 i, imm20b, imm39;
19500 + i = (slot2 >> 36) & 0x1UL;
19501 + imm20b = (slot2 >> 13) & 0xfffffUL;
19502 + imm39 = slot1 >> 2;
19503 + return ((i << 59) | (imm39 << 20) | imm20b) << 4;
19504 +}
19505 +
19506 +static bfd_vma
19507 +is_plt(bfd_vma addr) {
19508 + int i, j;
19509 + u64 target;
19510 + struct plt_entry plt;
19511 + if (kdb_getarea_size(&plt, addr, sizeof(plt)))
19512 + return 0;
19513 + for (i = 0; i < PLT_BUNDLES; ++i) {
19514 + for (j = 0; j < 16; ++j) {
19515 + if ((plt.bundle[i][j] & ia64_plt_mask.bundle[i][j]) !=
19516 + ia64_plt_template.bundle[i][j])
19517 + return 0;
19518 + }
19519 + }
19520 + if (PLT_BUNDLES == 2) {
19521 + /* brl is IP relative, in second bundle */
19522 + target = get_brl(addr + 16) + addr + 16;
19523 + } else {
19524 + /* movl is absolute, in first bundle */
19525 + target = get_movl(addr);
19526 + }
19527 + return target;
19528 +}
19529 +
19530 +/*
19531 + * kdba_dis_printaddr
19532 + *
19533 + * Print (symbolically) an address. Called by GNU disassembly
19534 + * code via disassemble_info structure.
19535 + *
19536 + * Parameters:
19537 + * addr Address for which to get symbol
19538 + * dip Pointer to disassemble_info
19539 + * Returns:
19540 + * 0
19541 + * Locking:
19542 + * Remarks:
19543 + * This function will never append ":<tab>" to the printed
19544 + * symbolic address. If the address may be a PLT entry then try to decode
19545 + * the PLT information.
19546 + */
19547 +
19548 +static void
19549 +kdba_dis_printaddr(bfd_vma addr, disassemble_info *dip)
19550 +{
19551 + bfd_vma target;
19552 + kdba_printaddress(addr, dip, 0);
19553 + if (!addr_maybe_plt)
19554 + return;
19555 + if (!(target = is_plt(addr)))
19556 + return;
19557 + kdb_printf(" PLT --> ");
19558 + kdba_printaddress(target, dip, 0);
19559 +}
19560 +
19561 +/*
19562 + * kdba_dis_getmem
19563 + *
19564 + * Fetch 'length' bytes from 'addr' into 'buf'.
19565 + *
19566 + * Parameters:
19567 + * addr Address for which to get symbol
19568 + * buf Address of buffer to fill with bytes from 'addr'
19569 + * length Number of bytes to fetch
19570 + * dip Pointer to disassemble_info
19571 + * Returns:
19572 + * 0
19573 + * Locking:
19574 + * Remarks:
19575 + *
19576 + */
19577 +
19578 +/* ARGSUSED */
19579 +static int
19580 +kdba_dis_getmem(bfd_vma addr, bfd_byte *buf, unsigned int length, disassemble_info *dip)
19581 +{
19582 + return kdb_getarea_size(buf, addr, length);
19583 +}
19584 +
19585 +/*
19586 + * kdba_id_parsemode
19587 + *
19588 + * Parse IDMODE environment variable string and
19589 + * set appropriate value into "disassemble_info" structure.
19590 + *
19591 + * Parameters:
19592 + * mode Mode string
19593 + * dip Disassemble_info structure pointer
19594 + * Returns:
19595 + * Locking:
19596 + * Remarks:
19597 + * No mode supported yet.
19598 + */
19599 +
19600 +int
19601 +kdba_id_parsemode(const char *mode, disassemble_info *dip)
19602 +{
19603 + if (mode && strcmp(mode, "ia64"))
19604 + return KDB_BADMODE;
19605 + return 0;
19606 +}
19607 +
19608 +/*
19609 + * kdba_check_pc
19610 + *
19611 + * Check that the pc is satisfactory.
19612 + *
19613 + * Parameters:
19614 + * pc Program Counter Value.
19615 + * Returns:
19616 + * None
19617 + * Locking:
19618 + * None.
19619 + * Remarks:
19620 + * Can change pc.
19621 + */
19622 +
19623 +void
19624 +kdba_check_pc(kdb_machreg_t *pc)
19625 +{
19626 + (*pc) &= ~0xf; /* pc must be 16 byte aligned */
19627 +}
19628 +
19629 +/*
19630 + * kdba_id_printinsn
19631 + *
19632 + * Format and print a single bundle at 'pc'. Return the
19633 + * length of the bundle.
19634 + *
19635 + * Parameters:
19636 + * pc Program Counter Value.
19637 + * dip Disassemble_info structure pointer
19638 + * Returns:
19639 + * Length of instruction, -1 for error.
19640 + * Locking:
19641 + * None.
19642 + * Remarks:
19643 + * None.
19644 + */
19645 +
19646 +int
19647 +kdba_id_printinsn(kdb_machreg_t pc, disassemble_info *dip)
19648 +{
19649 + int ret;
19650 + int byte = 0;
19651 +
19652 + kdba_check_pc(&pc);
19653 + while (byte < 16) {
19654 + kdba_dis_printaddr(pc+byte, dip);
19655 + addr_maybe_plt = 1;
19656 + ret = print_insn_ia64((kdb_machreg_t)(pc+byte), dip);
19657 + addr_maybe_plt = 0;
19658 + dip->fprintf_func(dip->stream, "\n");
19659 + if (ret < 0)
19660 + break;
19661 + byte += ret;
19662 + }
19663 + return(byte);
19664 +}
19665 +
19666 +/*
19667 + * kdba_id_init
19668 + *
19669 + * Initialize the architecture dependent elements of
19670 + * the disassembly information structure
19671 + * for the GNU disassembler.
19672 + *
19673 + * Parameters:
19674 + * None.
19675 + * Outputs:
19676 + * None.
19677 + * Returns:
19678 + * None.
19679 + * Locking:
19680 + * None.
19681 + * Remarks:
19682 + */
19683 +
19684 +void
19685 +kdba_id_init(disassemble_info *dip)
19686 +{
19687 + dip->read_memory_func = kdba_dis_getmem;
19688 + dip->print_address_func = kdba_dis_printaddr;
19689 + dip->symbol_at_address_func = kdba_dis_getsym;
19690 +
19691 + dip->flavour = bfd_target_elf_flavour;
19692 + dip->arch = bfd_arch_ia64;
19693 + dip->endian = BFD_ENDIAN_LITTLE;
19694 +
19695 + dip->display_endian = BFD_ENDIAN_LITTLE;
19696 +}
19697 --- /dev/null
19698 +++ b/arch/ia64/kdb/kdba_io.c
19699 @@ -0,0 +1,661 @@
19700 +/*
19701 + * Kernel Debugger Architecture Dependent Console I/O handler
19702 + *
19703 + * This file is subject to the terms and conditions of the GNU General Public
19704 + * License. See the file "COPYING" in the main directory of this archive
19705 + * for more details.
19706 + *
19707 + * Copyright (c) 1999-2006 Silicon Graphics, Inc. All Rights Reserved.
19708 + */
19709 +
19710 +#include <linux/kernel.h>
19711 +#include <asm/io.h>
19712 +#include <linux/delay.h>
19713 +#include <linux/console.h>
19714 +#include <linux/ctype.h>
19715 +#include <linux/keyboard.h>
19716 +#include <linux/serial.h>
19717 +#include <linux/serial_reg.h>
19718 +
19719 +#include <linux/kdb.h>
19720 +#include <linux/kdbprivate.h>
19721 +
19722 +#if defined(CONFIG_SERIAL_8250_CONSOLE) || defined(CONFIG_SERIAL_SGI_L1_CONSOLE)
19723 +#define HAVE_KDBA_SERIAL_CONSOLE
19724 +#endif
19725 +
19726 +/* from include/linux/pc_keyb.h on 2.4 */
19727 +#define KBD_STATUS_REG 0x64 /* Status register (R) */
19728 +#define KBD_DATA_REG 0x60 /* Keyboard data register (R/W) */
19729 +#define KBD_CMD_SET_LEDS 0xED /* Set keyboard leds */
19730 +#define KBD_STAT_OBF 0x01 /* Keyboard output buffer full */
19731 +#define KBD_STAT_IBF 0x02 /* Keyboard input buffer full */
19732 +#define KBD_STAT_MOUSE_OBF 0x20 /* Mouse output buffer full */
19733 +
19734 +#ifdef CONFIG_VT_CONSOLE
19735 +#define KDB_BLINK_LED 1
19736 +#else
19737 +#undef KDB_BLINK_LED
19738 +#endif
19739 +
19740 +#ifdef CONFIG_KDB_USB
19741 +
19742 +/* support up to 8 USB keyboards (probably excessive, but...) */
19743 +#define KDB_USB_NUM_KEYBOARDS 8
19744 +struct kdb_usb_kbd_info kdb_usb_kbds[KDB_USB_NUM_KEYBOARDS];
19745 +
19746 +extern int kdb_no_usb;
19747 +
19748 +static unsigned char kdb_usb_keycode[256] = {
19749 + 0, 0, 0, 0, 30, 48, 46, 32, 18, 33, 34, 35, 23, 36, 37, 38,
19750 + 50, 49, 24, 25, 16, 19, 31, 20, 22, 47, 17, 45, 21, 44, 2, 3,
19751 + 4, 5, 6, 7, 8, 9, 10, 11, 28, 1, 14, 15, 57, 12, 13, 26,
19752 + 27, 43, 84, 39, 40, 41, 51, 52, 53, 58, 59, 60, 61, 62, 63, 64,
19753 + 65, 66, 67, 68, 87, 88, 99, 70,119,110,102,104,111,107,109,106,
19754 + 105,108,103, 69, 98, 55, 74, 78, 96, 79, 80, 81, 75, 76, 77, 71,
19755 + 72, 73, 82, 83, 86,127,116,117, 85, 89, 90, 91, 92, 93, 94, 95,
19756 + 120,121,122,123,134,138,130,132,128,129,131,137,133,135,136,113,
19757 + 115,114, 0, 0, 0,124, 0,181,182,183,184,185,186,187,188,189,
19758 + 190,191,192,193,194,195,196,197,198, 0, 0, 0, 0, 0, 0, 0,
19759 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
19760 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
19761 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
19762 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
19763 + 29, 42, 56,125, 97, 54,100,126,164,166,165,163,161,115,114,113,
19764 + 150,158,159,128,136,177,178,176,142,152,173,140
19765 +};
19766 +
19767 +/*
19768 + * kdb_usb_keyboard_attach()
19769 + * Attach a USB keyboard to kdb.
19770 + */
19771 +int
19772 +kdb_usb_keyboard_attach(struct urb *urb, unsigned char *buffer, void *poll_func)
19773 +{
19774 + int i;
19775 + int rc = -1;
19776 +
19777 + if (kdb_no_usb)
19778 + return 0;
19779 +
19780 + /*
19781 + * Search through the array of KDB USB keyboards (kdb_usb_kbds)
19782 + * looking for a free index. If found, assign the keyboard to
19783 + * the array index.
19784 + */
19785 +
19786 + for (i = 0; i < KDB_USB_NUM_KEYBOARDS; i++) {
19787 + if (kdb_usb_kbds[i].urb) /* index is already assigned */
19788 + continue;
19789 +
19790 + /* found a free array index */
19791 + kdb_usb_kbds[i].urb = urb;
19792 + kdb_usb_kbds[i].buffer = buffer;
19793 + kdb_usb_kbds[i].poll_func = poll_func;
19794 +
19795 + rc = 0; /* success */
19796 +
19797 + break;
19798 + }
19799 +
19800 + return rc;
19801 +}
19802 +EXPORT_SYMBOL_GPL (kdb_usb_keyboard_attach);
19803 +
19804 +/*
19805 + * kdb_usb_keyboard_detach()
19806 + * Detach a USB keyboard from kdb.
19807 + */
19808 +int
19809 +kdb_usb_keyboard_detach(struct urb *urb)
19810 +{
19811 + int i;
19812 + int rc = -1;
19813 +
19814 + if (kdb_no_usb)
19815 + return 0;
19816 +
19817 + /*
19818 + * Search through the array of KDB USB keyboards (kdb_usb_kbds)
19819 + * looking for the index with the matching URB. If found,
19820 + * clear the array index.
19821 + */
19822 +
19823 + for (i = 0; i < KDB_USB_NUM_KEYBOARDS; i++) {
19824 + if (kdb_usb_kbds[i].urb != urb)
19825 + continue;
19826 +
19827 + /* found it, clear the index */
19828 + kdb_usb_kbds[i].urb = NULL;
19829 + kdb_usb_kbds[i].buffer = NULL;
19830 + kdb_usb_kbds[i].poll_func = NULL;
19831 + kdb_usb_kbds[i].caps_lock = 0;
19832 +
19833 + rc = 0; /* success */
19834 +
19835 + break;
19836 + }
19837 +
19838 + return rc;
19839 +}
19840 +EXPORT_SYMBOL_GPL (kdb_usb_keyboard_detach);
19841 +
19842 +/*
19843 + * get_usb_char
19844 + * This function drives the USB attached keyboards.
19845 + * Fetch the USB scancode and decode it.
19846 + */
19847 +static int
19848 +get_usb_char(void)
19849 +{
19850 + int i;
19851 + int ret;
19852 + unsigned char keycode, spec;
19853 + extern u_short plain_map[], shift_map[], ctrl_map[];
19854 +
19855 + if (kdb_no_usb)
19856 + return -1;
19857 +
19858 + /*
19859 + * Loop through all the USB keyboard(s) and return
19860 + * the first character obtained from them.
19861 + */
19862 +
19863 + for (i = 0; i < KDB_USB_NUM_KEYBOARDS; i++) {
19864 + /* skip uninitialized keyboard array entries */
19865 + if (!kdb_usb_kbds[i].urb || !kdb_usb_kbds[i].buffer ||
19866 + !kdb_usb_kbds[i].poll_func)
19867 + continue;
19868 +
19869 + /* Transfer char */
19870 + ret = (*kdb_usb_kbds[i].poll_func)(kdb_usb_kbds[i].urb);
19871 +
19872 + if (ret == -EBUSY && kdb_usb_kbds[i].poll_ret != -EBUSY)
19873 + kdb_printf("NOTICE: USB HC driver BUSY. "
19874 + "USB keyboard has been disabled.\n");
19875 +
19876 + kdb_usb_kbds[i].poll_ret = ret;
19877 +
19878 + if (ret < 0) /* error or no characters, try the next kbd */
19879 + continue;
19880 +
19881 + spec = kdb_usb_kbds[i].buffer[0];
19882 + keycode = kdb_usb_kbds[i].buffer[2];
19883 + kdb_usb_kbds[i].buffer[0] = (char)0;
19884 + kdb_usb_kbds[i].buffer[2] = (char)0;
19885 +
19886 + if(kdb_usb_kbds[i].buffer[3]) {
19887 + kdb_usb_kbds[i].buffer[3] = (char)0;
19888 + continue;
19889 + }
19890 +
19891 + /* A normal key is pressed, decode it */
19892 + if(keycode)
19893 + keycode = kdb_usb_keycode[keycode];
19894 +
19895 + /* 2 Keys pressed at one time ? */
19896 + if (spec && keycode) {
19897 + switch(spec)
19898 + {
19899 + case 0x2:
19900 + case 0x20: /* Shift */
19901 + return shift_map[keycode];
19902 + case 0x1:
19903 + case 0x10: /* Ctrl */
19904 + return ctrl_map[keycode];
19905 + case 0x4:
19906 + case 0x40: /* Alt */
19907 + break;
19908 + }
19909 + } else if (keycode) { /* If only one key pressed */
19910 + switch(keycode)
19911 + {
19912 + case 0x1C: /* Enter */
19913 + return 13;
19914 +
19915 + case 0x3A: /* Capslock */
19916 + kdb_usb_kbds[i].caps_lock = !(kdb_usb_kbds[i].caps_lock);
19917 + break;
19918 + case 0x0E: /* Backspace */
19919 + return 8;
19920 + case 0x0F: /* TAB */
19921 + return 9;
19922 + case 0x77: /* Pause */
19923 + break ;
19924 + default:
19925 + if(!kdb_usb_kbds[i].caps_lock) {
19926 + return plain_map[keycode];
19927 + }
19928 + else {
19929 + return shift_map[keycode];
19930 + }
19931 + }
19932 + }
19933 + }
19934 +
19935 + /* no chars were returned from any of the USB keyboards */
19936 +
19937 + return -1;
19938 +}
19939 +#endif /* CONFIG_KDB_USB */
19940 +
19941 +/*
19942 + * This module contains code to read characters from the keyboard or a serial
19943 + * port.
19944 + *
19945 + * It is used by the kernel debugger, and is polled, not interrupt driven.
19946 + *
19947 + */
19948 +
19949 +#ifdef KDB_BLINK_LED
19950 +/*
19951 + * send: Send a byte to the keyboard controller. Used primarily to
19952 + * alter LED settings.
19953 + */
19954 +
19955 +static void
19956 +kdb_kbdsend(unsigned char byte)
19957 +{
19958 + int timeout;
19959 + for (timeout = 200 * 1000; timeout && (inb(KBD_STATUS_REG) & KBD_STAT_IBF); timeout--);
19960 + outb(byte, KBD_DATA_REG);
19961 + udelay(40);
19962 + for (timeout = 200 * 1000; timeout && (~inb(KBD_STATUS_REG) & KBD_STAT_OBF); timeout--);
19963 + inb(KBD_DATA_REG);
19964 + udelay(40);
19965 +}
19966 +
19967 +static void
19968 +kdb_toggleled(int led)
19969 +{
19970 + static int leds;
19971 +
19972 + leds ^= led;
19973 +
19974 + kdb_kbdsend(KBD_CMD_SET_LEDS);
19975 + kdb_kbdsend((unsigned char)leds);
19976 +}
19977 +#endif /* KDB_BLINK_LED */
19978 +
19979 +#ifdef HAVE_KDBA_SERIAL_CONSOLE
19980 +
19981 +struct kdb_serial kdb_serial;
19982 +enum kdba_serial_console kdba_serial_console;
19983 +static int get_serial_char(void);
19984 +
19985 +/* There must be a serial_inp_xxx() and get_serial_char_xxx() for each type
19986 + * of console. See enum kdba_serial_console in include/asm-$(ARCH)/kdbprivate.h.
19987 + */
19988 +
19989 +#ifdef CONFIG_SERIAL_8250_CONSOLE
19990 +
19991 +static unsigned int
19992 +serial_inp_standard(const struct kdb_serial *kdb_serial, int offset)
19993 +{
19994 + offset <<= kdb_serial->ioreg_shift;
19995 +
19996 + switch (kdb_serial->io_type) {
19997 + case SERIAL_IO_MEM:
19998 + return readb((void __iomem *)(kdb_serial->iobase + offset));
19999 + break;
20000 + default:
20001 + return inb(kdb_serial->iobase + offset);
20002 + break;
20003 + }
20004 +}
20005 +
20006 +/* Check if there is a byte ready at the serial port */
20007 +static int
20008 +get_serial_char_standard(void)
20009 +{
20010 + unsigned char ch;
20011 + static unsigned long fifon;
20012 + if (fifon == 0) {
20013 + /* try to set the FIFO */
20014 + fifon = kdb_serial.iobase +
20015 + (UART_FCR << kdb_serial.ioreg_shift);
20016 + switch (kdb_serial.io_type) {
20017 + case SERIAL_IO_MEM:
20018 + writeb((UART_FCR_ENABLE_FIFO | UART_FCR_CLEAR_RCVR |
20019 + UART_FCR_CLEAR_XMIT), (void __iomem *)fifon);
20020 + break;
20021 + default:
20022 + outb((UART_FCR_ENABLE_FIFO | UART_FCR_CLEAR_RCVR |
20023 + UART_FCR_CLEAR_XMIT), fifon);
20024 + break;
20025 + }
20026 + }
20027 +
20028 + if (kdb_serial.iobase == 0)
20029 + return -1;
20030 +
20031 + if (serial_inp_standard(&kdb_serial, UART_LSR) & UART_LSR_DR) {
20032 + ch = serial_inp_standard(&kdb_serial, UART_RX);
20033 + if (ch == 0x7f)
20034 + ch = 8;
20035 + return ch;
20036 + }
20037 + return -1;
20038 +}
20039 +
20040 +#else /* !CONFIG_SERIAL_8250_CONSOLE */
20041 +
20042 +#define get_serial_char_standard() -1
20043 +
20044 +#endif /* CONFIG_SERIAL_8250_CONSOLE */
20045 +
20046 +#ifdef CONFIG_SERIAL_SGI_L1_CONSOLE
20047 +
20048 +extern u64 master_node_bedrock_address;
20049 +
20050 +/* UART registers on the Bedrock start at 0x80 */
20051 +
20052 +extern int l1_serial_in_polled(void);
20053 +extern int l1_control_in_polled(int);
20054 +
20055 +/* Read a byte from the L1 port. kdb_serial is ignored */
20056 +static unsigned int
20057 +serial_inp_sgi_l1(const struct kdb_serial *kdb_serial, int offset)
20058 +{
20059 + if (offset & 0x80) {
20060 + int counter = 10000;
20061 + unsigned int value;
20062 + while ( counter-- ) {
20063 + value = l1_serial_in_polled();
20064 + /* Gobble up the 0's */
20065 + if ( value )
20066 + return(value);
20067 + }
20068 + return(0);
20069 + }
20070 + else {
20071 + return l1_control_in_polled(offset);
20072 + }
20073 +}
20074 +
20075 +/* Check if there is a byte ready at the L1 port. */
20076 +static int
20077 +get_serial_char_sgi_l1(void)
20078 +{
20079 + unsigned char ch;
20080 + int status;
20081 +
20082 + if ((status = serial_inp_sgi_l1(&kdb_serial, UART_LSR)) & UART_LSR_DR) {
20083 + ch = serial_inp_sgi_l1(&kdb_serial, UART_RX | 0x80); /* bedrock offset */
20084 + if (ch == 0x7f)
20085 + ch = 8;
20086 + return ch;
20087 + }
20088 + return -1;
20089 +}
20090 +
20091 +#else /* !CONFIG_SERIAL_SGI_L1_CONSOLE */
20092 +
20093 +#define get_serial_char_sgi_l1() -1
20094 +
20095 +#endif /* CONFIG_SERIAL_SGI_L1_CONSOLE */
20096 +
20097 +/* Select the serial console input at run time, to handle generic kernels */
20098 +
20099 +static int
20100 +get_serial_char(void)
20101 +{
20102 + switch (kdba_serial_console) {
20103 + case KDBA_SC_NONE:
20104 + return -1;
20105 + case KDBA_SC_STANDARD:
20106 + return get_serial_char_standard();
20107 + case KDBA_SC_SGI_L1:
20108 + return get_serial_char_sgi_l1();
20109 + }
20110 + /* gcc is not smart enough to realize that all paths return before here :( */
20111 + return -1;
20112 +}
20113 +
20114 +#endif /* HAVE_KDBA_SERIAL_CONSOLE */
20115 +
20116 +#ifdef CONFIG_VT_CONSOLE
20117 +
20118 +static int kbd_exists;
20119 +
20120 +/*
20121 + * Check if the keyboard controller has a keypress for us.
20122 + * Some parts (Enter Release, LED change) are still blocking polled here,
20123 + * but hopefully they are all short.
20124 + */
20125 +static int get_kbd_char(void)
20126 +{
20127 + int scancode, scanstatus;
20128 + static int shift_lock; /* CAPS LOCK state (0-off, 1-on) */
20129 + static int shift_key; /* Shift next keypress */
20130 + static int ctrl_key;
20131 + u_short keychar;
20132 + extern u_short plain_map[], shift_map[], ctrl_map[];
20133 +
20134 + if (KDB_FLAG(NO_I8042) || KDB_FLAG(NO_VT_CONSOLE) ||
20135 + (inb(KBD_STATUS_REG) == 0xff && inb(KBD_DATA_REG) == 0xff)) {
20136 + kbd_exists = 0;
20137 + return -1;
20138 + }
20139 + kbd_exists = 1;
20140 +
20141 + if ((inb(KBD_STATUS_REG) & KBD_STAT_OBF) == 0)
20142 + return -1;
20143 +
20144 + /*
20145 + * Fetch the scancode
20146 + */
20147 + scancode = inb(KBD_DATA_REG);
20148 + scanstatus = inb(KBD_STATUS_REG);
20149 +
20150 + /*
20151 + * Ignore mouse events.
20152 + */
20153 + if (scanstatus & KBD_STAT_MOUSE_OBF)
20154 + return -1;
20155 +
20156 + /*
20157 + * Ignore release, trigger on make
20158 + * (except for shift keys, where we want to
20159 + * keep the shift state so long as the key is
20160 + * held down).
20161 + */
20162 +
20163 + if (((scancode&0x7f) == 0x2a) || ((scancode&0x7f) == 0x36)) {
20164 + /*
20165 + * Next key may use shift table
20166 + */
20167 + if ((scancode & 0x80) == 0) {
20168 + shift_key=1;
20169 + } else {
20170 + shift_key=0;
20171 + }
20172 + return -1;
20173 + }
20174 +
20175 + if ((scancode&0x7f) == 0x1d) {
20176 + /*
20177 + * Left ctrl key
20178 + */
20179 + if ((scancode & 0x80) == 0) {
20180 + ctrl_key = 1;
20181 + } else {
20182 + ctrl_key = 0;
20183 + }
20184 + return -1;
20185 + }
20186 +
20187 + if ((scancode & 0x80) != 0)
20188 + return -1;
20189 +
20190 + scancode &= 0x7f;
20191 +
20192 + /*
20193 + * Translate scancode
20194 + */
20195 +
20196 + if (scancode == 0x3a) {
20197 + /*
20198 + * Toggle caps lock
20199 + */
20200 + shift_lock ^= 1;
20201 +
20202 +#ifdef KDB_BLINK_LED
20203 + kdb_toggleled(0x4);
20204 +#endif
20205 + return -1;
20206 + }
20207 +
20208 + if (scancode == 0x0e) {
20209 + /*
20210 + * Backspace
20211 + */
20212 + return 8;
20213 + }
20214 +
20215 + /* Special Key */
20216 + switch (scancode) {
20217 + case 0xF: /* Tab */
20218 + return 9;
20219 + case 0x53: /* Del */
20220 + return 4;
20221 + case 0x47: /* Home */
20222 + return 1;
20223 + case 0x4F: /* End */
20224 + return 5;
20225 + case 0x4B: /* Left */
20226 + return 2;
20227 + case 0x48: /* Up */
20228 + return 16;
20229 + case 0x50: /* Down */
20230 + return 14;
20231 + case 0x4D: /* Right */
20232 + return 6;
20233 + }
20234 +
20235 + if (scancode == 0xe0) {
20236 + return -1;
20237 + }
20238 +
20239 + /*
20240 + * For Japanese 86/106 keyboards
20241 + * See comment in drivers/char/pc_keyb.c.
20242 + * - Masahiro Adegawa
20243 + */
20244 + if (scancode == 0x73) {
20245 + scancode = 0x59;
20246 + } else if (scancode == 0x7d) {
20247 + scancode = 0x7c;
20248 + }
20249 +
20250 + if (!shift_lock && !shift_key && !ctrl_key) {
20251 + keychar = plain_map[scancode];
20252 + } else if (shift_lock || shift_key) {
20253 + keychar = shift_map[scancode];
20254 + } else if (ctrl_key) {
20255 + keychar = ctrl_map[scancode];
20256 + } else {
20257 + keychar = 0x0020;
20258 + kdb_printf("Unknown state/scancode (%d)\n", scancode);
20259 + }
20260 + keychar &= 0x0fff;
20261 + switch (KTYP(keychar)) {
20262 + case KT_LETTER:
20263 + case KT_LATIN:
20264 + if (isprint(keychar))
20265 + break; /* printable characters */
20266 + /* drop through */
20267 + case KT_SPEC:
20268 + if (keychar == K_ENTER)
20269 + break;
20270 + /* drop through */
20271 + default:
20272 + return(-1); /* ignore unprintables */
20273 + }
20274 +
20275 + if ((scancode & 0x7f) == 0x1c) {
20276 + /*
20277 + * enter key. All done. Absorb the release scancode.
20278 + */
20279 + while ((inb(KBD_STATUS_REG) & KBD_STAT_OBF) == 0)
20280 + ;
20281 +
20282 + /*
20283 + * Fetch the scancode
20284 + */
20285 + scancode = inb(KBD_DATA_REG);
20286 + scanstatus = inb(KBD_STATUS_REG);
20287 +
20288 + while (scanstatus & KBD_STAT_MOUSE_OBF) {
20289 + scancode = inb(KBD_DATA_REG);
20290 + scanstatus = inb(KBD_STATUS_REG);
20291 + }
20292 +
20293 + if (scancode != 0x9c) {
20294 + /*
20295 + * Wasn't an enter-release, why not?
20296 + */
20297 + kdb_printf("kdb: expected enter got 0x%x status 0x%x\n",
20298 + scancode, scanstatus);
20299 + }
20300 +
20301 + kdb_printf("\n");
20302 + return 13;
20303 + }
20304 +
20305 + return keychar & 0xff;
20306 +}
20307 +#endif /* CONFIG_VT_CONSOLE */
20308 +
20309 +#ifdef KDB_BLINK_LED
20310 +
20311 +/* Leave numlock alone, setting it messes up laptop keyboards with the keypad
20312 + * mapped over normal keys.
20313 + */
20314 +static int kdba_blink_mask = 0x1 | 0x4;
20315 +
20316 +#ifdef CONFIG_SMP
20317 +#define BOGOMIPS (local_cpu_data->loops_per_jiffy/(500000/HZ))
20318 +#else
20319 +#define BOGOMIPS (loops_per_jiffy/(500000/HZ))
20320 +#endif
20321 +static int blink_led(void)
20322 +{
20323 + static long delay;
20324 +
20325 + if (kbd_exists == 0)
20326 + return -1;
20327 +
20328 + if (--delay < 0) {
20329 + if (BOGOMIPS == 0) /* early kdb */
20330 + delay = 150000000/1000; /* arbitrary bogomips */
20331 + else
20332 + delay = 150000000/BOGOMIPS; /* Roughly 1 second when polling */
20333 + kdb_toggleled(kdba_blink_mask);
20334 + }
20335 + return -1;
20336 +}
20337 +#endif
20338 +
20339 +get_char_func poll_funcs[] = {
20340 +#if defined(CONFIG_VT_CONSOLE)
20341 + get_kbd_char,
20342 +#endif
20343 +#ifdef HAVE_KDBA_SERIAL_CONSOLE
20344 + get_serial_char,
20345 +#endif
20346 +#ifdef KDB_BLINK_LED
20347 + blink_led,
20348 +#endif
20349 +#ifdef CONFIG_KDB_USB
20350 + get_usb_char,
20351 +#endif
20352 + NULL
20353 +};
20354 +
20355 +/* Dummy versions of kdba_local_arch_setup, kdba_local_arch_cleanup.
20356 + * FIXME: ia64 with legacy keyboard might need the same code as i386.
20357 + */
20358 +
20359 +void kdba_local_arch_setup(void) {}
20360 +void kdba_local_arch_cleanup(void) {}
20361 --- /dev/null
20362 +++ b/arch/ia64/kdb/kdba_jmp.S
20363 @@ -0,0 +1,394 @@
20364 +/*
20365 + * Kernel Debugger Architecture Dependent Longjump Support.
20366 + */
20367 +
20368 +/* setjmp() and longjmp() assembler support for kdb on ia64.
20369 +
20370 + This code was copied from glibc CVS as of 2001-06-27 and modified where
20371 + necessary to fit the kernel. No glibc lines were changed or deleted, all
20372 + adjustments are wrapped in #ifdef __KERNEL__, except for the added
20373 + .mem.offset lines, they work in or out of the kenrel. The original code is
20374 + in sysdeps/unix/sysv/linux/ia64/{setjmp.S,__longjmp.S}.
20375 +
20376 + glibc has setjmp (save signals) and _setjmp (do not save signals). Kernel
20377 + code does not have signals, only kdba_setjmp_asm() is used.
20378 +
20379 + Keith Owens <kaos@melbourne.sgi.com> 2001-06-27
20380 + */
20381 +
20382 +/* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
20383 + Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
20384 +
20385 + The GNU C Library is free software; you can redistribute it and/or
20386 + modify it under the terms of the GNU Library General Public License as
20387 + published by the Free Software Foundation; either version 2 of the
20388 + License, or (at your option) any later version.
20389 +
20390 + The GNU C Library is distributed in the hope that it will be useful,
20391 + but WITHOUT ANY WARRANTY; without even the implied warranty of
20392 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20393 + Library General Public License for more details.
20394 +
20395 + You should have received a copy of the GNU Library General Public
20396 + License along with the GNU C Library; see the file COPYING.LIB. If
20397 + not, write to the Free Software Foundation, Inc.,
20398 + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20399 +
20400 + The layout of the jmp_buf is as follows. This is subject to change
20401 + and user-code should never depend on the particular layout of
20402 + jmp_buf!
20403 +
20404 +
20405 + offset: description:
20406 + ------- ------------
20407 + 0x000 stack pointer (r12) ; unchangeable (see _JMPBUF_UNWINDS)
20408 + 0x008 r1 (gp)
20409 + 0x010 caller's unat
20410 + 0x018 fpsr
20411 + 0x020 r4
20412 + 0x028 r5
20413 + 0x030 r6
20414 + 0x038 r7
20415 + 0x040 rp (b0)
20416 + 0x048 b1
20417 + 0x050 b2
20418 + 0x058 b3
20419 + 0x060 b4
20420 + 0x068 b5
20421 + 0x070 ar.pfs
20422 + 0x078 ar.lc
20423 + 0x080 pr
20424 + 0x088 ar.bsp ; unchangeable (see __longjmp.S)
20425 + 0x090 ar.unat
20426 + 0x098 &__jmp_buf ; address of the jmpbuf (needed to locate NaT bits in unat)
20427 + 0x0a0 f2
20428 + 0x0b0 f3
20429 + 0x0c0 f4
20430 + 0x0d0 f5
20431 + 0x0e0 f16
20432 + 0x0f0 f17
20433 + 0x100 f18
20434 + 0x110 f19
20435 + 0x120 f20
20436 + 0x130 f21
20437 + 0x130 f22
20438 + 0x140 f23
20439 + 0x150 f24
20440 + 0x160 f25
20441 + 0x170 f26
20442 + 0x180 f27
20443 + 0x190 f28
20444 + 0x1a0 f29
20445 + 0x1b0 f30
20446 + 0x1c0 f31 */
20447 +
20448 +#ifndef __KERNEL__
20449 +
20450 +#include <sysdep.h>
20451 +#include <features.h>
20452 +
20453 + /* The following two entry points are the traditional entry points: */
20454 +
20455 +LEAF(setjmp)
20456 + alloc r8=ar.pfs,2,0,0,0
20457 + mov in1=1
20458 + br.cond.sptk.many __sigsetjmp
20459 +END(setjmp)
20460 +
20461 +LEAF(_setjmp)
20462 + alloc r8=ar.pfs,2,0,0,0
20463 + mov in1=0
20464 + br.cond.sptk.many __sigsetjmp
20465 +END(_setjmp)
20466 +
20467 + /* __sigsetjmp(__jmp_buf buf, int savemask) */
20468 +
20469 +ENTRY(__sigsetjmp)
20470 +
20471 +#else /* __KERNEL __ */
20472 +#include <asm/asmmacro.h>
20473 +#define ret br.ret.sptk.few rp
20474 +GLOBAL_ENTRY(kdba_setjmp)
20475 +#endif /* !__KERNEL__ */
20476 +
20477 + .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(2)
20478 + alloc loc1=ar.pfs,2,2,2,0
20479 + mov r16=ar.unat
20480 + ;;
20481 + mov r17=ar.fpsr
20482 + mov r2=in0
20483 + add r3=8,in0
20484 + ;;
20485 +.mem.offset 0,0;
20486 + st8.spill.nta [r2]=sp,16 // r12 (sp)
20487 +.mem.offset 8,0;
20488 + st8.spill.nta [r3]=gp,16 // r1 (gp)
20489 + ;;
20490 + st8.nta [r2]=r16,16 // save caller's unat
20491 + st8.nta [r3]=r17,16 // save fpsr
20492 + add r8=0xa0,in0
20493 + ;;
20494 +.mem.offset 160,0;
20495 + st8.spill.nta [r2]=r4,16 // r4
20496 +.mem.offset 168,0;
20497 + st8.spill.nta [r3]=r5,16 // r5
20498 + add r9=0xb0,in0
20499 + ;;
20500 + stf.spill.nta [r8]=f2,32
20501 + stf.spill.nta [r9]=f3,32
20502 + mov loc0=rp
20503 + .body
20504 + ;;
20505 + stf.spill.nta [r8]=f4,32
20506 + stf.spill.nta [r9]=f5,32
20507 + mov r17=b1
20508 + ;;
20509 + stf.spill.nta [r8]=f16,32
20510 + stf.spill.nta [r9]=f17,32
20511 + mov r18=b2
20512 + ;;
20513 + stf.spill.nta [r8]=f18,32
20514 + stf.spill.nta [r9]=f19,32
20515 + mov r19=b3
20516 + ;;
20517 + stf.spill.nta [r8]=f20,32
20518 + stf.spill.nta [r9]=f21,32
20519 + mov r20=b4
20520 + ;;
20521 + stf.spill.nta [r8]=f22,32
20522 + stf.spill.nta [r9]=f23,32
20523 + mov r21=b5
20524 + ;;
20525 + stf.spill.nta [r8]=f24,32
20526 + stf.spill.nta [r9]=f25,32
20527 + mov r22=ar.lc
20528 + ;;
20529 + stf.spill.nta [r8]=f26,32
20530 + stf.spill.nta [r9]=f27,32
20531 + mov r24=pr
20532 + ;;
20533 + stf.spill.nta [r8]=f28,32
20534 + stf.spill.nta [r9]=f29,32
20535 + ;;
20536 + stf.spill.nta [r8]=f30
20537 + stf.spill.nta [r9]=f31
20538 +
20539 +.mem.offset 0,0;
20540 + st8.spill.nta [r2]=r6,16 // r6
20541 +.mem.offset 8,0;
20542 + st8.spill.nta [r3]=r7,16 // r7
20543 + ;;
20544 + mov r23=ar.bsp
20545 + mov r25=ar.unat
20546 +#ifndef __KERNEL__
20547 + mov out0=in0
20548 +#endif /* !__KERNEL__ */
20549 +
20550 + st8.nta [r2]=loc0,16 // b0
20551 + st8.nta [r3]=r17,16 // b1
20552 +#ifndef __KERNEL__
20553 + mov out1=in1
20554 +#endif /* !__KERNEL__ */
20555 + ;;
20556 + st8.nta [r2]=r18,16 // b2
20557 + st8.nta [r3]=r19,16 // b3
20558 + ;;
20559 + st8.nta [r2]=r20,16 // b4
20560 + st8.nta [r3]=r21,16 // b5
20561 + ;;
20562 + st8.nta [r2]=loc1,16 // ar.pfs
20563 + st8.nta [r3]=r22,16 // ar.lc
20564 + ;;
20565 + st8.nta [r2]=r24,16 // pr
20566 + st8.nta [r3]=r23,16 // ar.bsp
20567 + ;;
20568 + st8.nta [r2]=r25 // ar.unat
20569 + st8.nta [r3]=in0 // &__jmp_buf
20570 +#ifndef __KERNEL__
20571 + br.call.dpnt.few rp=__sigjmp_save
20572 +.ret0: // force a new bundle ::q
20573 +#endif /* !_KERNEL__ */
20574 + mov r8=0
20575 + mov rp=loc0
20576 + mov ar.pfs=loc1
20577 + ret
20578 +#ifndef __KERNEL__
20579 +END(__sigsetjmp)
20580 +
20581 +weak_extern(_setjmp)
20582 +weak_extern(setjmp)
20583 +
20584 +#else /* __KERNEL__ */
20585 +END(kdba_setjmp)
20586 +#endif /* !_KERNEL__ */
20587 +
20588 +/* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
20589 + Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
20590 +
20591 + The GNU C Library is free software; you can redistribute it and/or
20592 + modify it under the terms of the GNU Library General Public License as
20593 + published by the Free Software Foundation; either version 2 of the
20594 + License, or (at your option) any later version.
20595 +
20596 + The GNU C Library is distributed in the hope that it will be useful,
20597 + but WITHOUT ANY WARRANTY; without even the implied warranty of
20598 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20599 + Library General Public License for more details.
20600 +
20601 + You should have received a copy of the GNU Library General Public
20602 + License along with the GNU C Library; see the file COPYING.LIB. If
20603 + not, write to the Free Software Foundation, Inc.,
20604 + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20605 +
20606 + Note that __sigsetjmp() did NOT flush the register stack. Instead,
20607 + we do it here since __longjmp() is usually much less frequently
20608 + invoked than __sigsetjmp(). The only difficulty is that __sigsetjmp()
20609 + didn't (and wouldn't be able to) save ar.rnat either. This is a problem
20610 + because if we're not careful, we could end up loading random NaT bits.
20611 + There are two cases:
20612 +
20613 + (i) ar.bsp < ia64_rse_rnat_addr(jmpbuf.ar_bsp)
20614 + ar.rnat contains the desired bits---preserve ar.rnat
20615 + across loadrs and write to ar.bspstore
20616 +
20617 + (ii) ar.bsp >= ia64_rse_rnat_addr(jmpbuf.ar_bsp)
20618 + The desired ar.rnat is stored in
20619 + ia64_rse_rnat_addr(jmpbuf.ar_bsp). Load those
20620 + bits into ar.rnat after setting ar.bspstore. */
20621 +
20622 +#ifndef __KERNEL__
20623 +#include <sysdep.h>
20624 +#include <features.h>
20625 +#endif /* !__KERNEL__ */
20626 +
20627 +# define pPos p6 /* is rotate count positive? */
20628 +# define pNeg p7 /* is rotate count negative? */
20629 +
20630 +
20631 + /* __longjmp(__jmp_buf buf, int val) */
20632 +
20633 +#ifndef __KERNEL__
20634 +LEAF(__longjmp)
20635 +#else /* __KERNEL__ */
20636 +GLOBAL_ENTRY(kdba_longjmp)
20637 +#endif /* !__KERNEL__ */
20638 + alloc r8=ar.pfs,2,1,0,0
20639 + mov r27=ar.rsc
20640 + add r2=0x98,in0 // r2 <- &jmpbuf.orig_jmp_buf_addr
20641 + ;;
20642 + ld8 r8=[r2],-16 // r8 <- orig_jmp_buf_addr
20643 + mov r10=ar.bsp
20644 + and r11=~0x3,r27 // clear ar.rsc.mode
20645 + ;;
20646 + flushrs // flush dirty regs to backing store (must be first in insn grp)
20647 + ld8 r23=[r2],8 // r23 <- jmpbuf.ar_bsp
20648 + sub r8=r8,in0 // r8 <- &orig_jmpbuf - &jmpbuf
20649 + ;;
20650 + ld8 r25=[r2] // r25 <- jmpbuf.ar_unat
20651 + extr.u r8=r8,3,6 // r8 <- (&orig_jmpbuf - &jmpbuf)/8 & 0x3f
20652 + ;;
20653 + cmp.lt pNeg,pPos=r8,r0
20654 + mov r2=in0
20655 + ;;
20656 +(pPos) mov r16=r8
20657 +(pNeg) add r16=64,r8
20658 +(pPos) sub r17=64,r8
20659 +(pNeg) sub r17=r0,r8
20660 + ;;
20661 + mov ar.rsc=r11 // put RSE in enforced lazy mode
20662 + shr.u r8=r25,r16
20663 + add r3=8,in0 // r3 <- &jmpbuf.r1
20664 + shl r9=r25,r17
20665 + ;;
20666 + or r25=r8,r9
20667 + ;;
20668 + mov r26=ar.rnat
20669 + mov ar.unat=r25 // setup ar.unat (NaT bits for r1, r4-r7, and r12)
20670 + ;;
20671 + ld8.fill.nta sp=[r2],16 // r12 (sp)
20672 + ld8.fill.nta gp=[r3],16 // r1 (gp)
20673 + dep r11=-1,r23,3,6 // r11 <- ia64_rse_rnat_addr(jmpbuf.ar_bsp)
20674 + ;;
20675 + ld8.nta r16=[r2],16 // caller's unat
20676 + ld8.nta r17=[r3],16 // fpsr
20677 + ;;
20678 + ld8.fill.nta r4=[r2],16 // r4
20679 + ld8.fill.nta r5=[r3],16 // r5 (gp)
20680 + cmp.geu p8,p0=r10,r11 // p8 <- (ar.bsp >= jmpbuf.ar_bsp)
20681 + ;;
20682 + ld8.fill.nta r6=[r2],16 // r6
20683 + ld8.fill.nta r7=[r3],16 // r7
20684 + ;;
20685 + mov ar.unat=r16 // restore caller's unat
20686 + mov ar.fpsr=r17 // restore fpsr
20687 + ;;
20688 + ld8.nta r16=[r2],16 // b0
20689 + ld8.nta r17=[r3],16 // b1
20690 + ;;
20691 +(p8) ld8 r26=[r11] // r26 <- *ia64_rse_rnat_addr(jmpbuf.ar_bsp)
20692 + mov ar.bspstore=r23 // restore ar.bspstore
20693 + ;;
20694 + ld8.nta r18=[r2],16 // b2
20695 + ld8.nta r19=[r3],16 // b3
20696 + ;;
20697 + ld8.nta r20=[r2],16 // b4
20698 + ld8.nta r21=[r3],16 // b5
20699 + ;;
20700 + ld8.nta r11=[r2],16 // ar.pfs
20701 + ld8.nta r22=[r3],56 // ar.lc
20702 + ;;
20703 + ld8.nta r24=[r2],32 // pr
20704 + mov b0=r16
20705 + ;;
20706 + ldf.fill.nta f2=[r2],32
20707 + ldf.fill.nta f3=[r3],32
20708 + mov b1=r17
20709 + ;;
20710 + ldf.fill.nta f4=[r2],32
20711 + ldf.fill.nta f5=[r3],32
20712 + mov b2=r18
20713 + ;;
20714 + ldf.fill.nta f16=[r2],32
20715 + ldf.fill.nta f17=[r3],32
20716 + mov b3=r19
20717 + ;;
20718 + ldf.fill.nta f18=[r2],32
20719 + ldf.fill.nta f19=[r3],32
20720 + mov b4=r20
20721 + ;;
20722 + ldf.fill.nta f20=[r2],32
20723 + ldf.fill.nta f21=[r3],32
20724 + mov b5=r21
20725 + ;;
20726 + ldf.fill.nta f22=[r2],32
20727 + ldf.fill.nta f23=[r3],32
20728 + mov ar.lc=r22
20729 + ;;
20730 + ldf.fill.nta f24=[r2],32
20731 + ldf.fill.nta f25=[r3],32
20732 + cmp.eq p8,p9=0,in1
20733 + ;;
20734 + ldf.fill.nta f26=[r2],32
20735 + ldf.fill.nta f27=[r3],32
20736 + mov ar.pfs=r11
20737 + ;;
20738 + ldf.fill.nta f28=[r2],32
20739 + ldf.fill.nta f29=[r3],32
20740 + ;;
20741 + ldf.fill.nta f30=[r2]
20742 + ldf.fill.nta f31=[r3]
20743 +(p8) mov r8=1
20744 +
20745 + mov ar.rnat=r26 // restore ar.rnat
20746 + ;;
20747 + mov ar.rsc=r27 // restore ar.rsc
20748 +(p9) mov r8=in1
20749 +
20750 + invala // virt. -> phys. regnum mapping may change
20751 + mov pr=r24,-1
20752 + ret
20753 +#ifndef __KERNEL__
20754 +END(__longjmp)
20755 +#else /* __KERNEL__ */
20756 +END(kdba_longjmp)
20757 +#endif /* !_KERNEL__ */
20758 --- /dev/null
20759 +++ b/arch/ia64/kdb/kdba_pod.c
20760 @@ -0,0 +1,64 @@
20761 +/*
20762 + * Kernel Debugger Architecture Dependent POD functions.
20763 + *
20764 + * This file is subject to the terms and conditions of the GNU General Public
20765 + * License. See the file "COPYING" in the main directory of this archive
20766 + * for more details.
20767 + *
20768 + * Copyright (c) 1999-2006 Silicon Graphics, Inc. All Rights Reserved.
20769 + */
20770 +
20771 +#include <linux/types.h>
20772 +#include <linux/kdb.h>
20773 +#include <linux/kdbprivate.h>
20774 +#include <linux/module.h>
20775 +#include <asm/sal.h>
20776 +#include <asm/sn/sn_sal.h>
20777 +
20778 +MODULE_AUTHOR("Jesse Barnes");
20779 +MODULE_DESCRIPTION("Enter POD through KDB");
20780 +MODULE_LICENSE("GPL");
20781 +
20782 +/**
20783 + * kdba_pod - enter POD mode from kdb
20784 + * @argc: arg count
20785 + * @argv: arg values
20786 + *
20787 + * Enter POD mode from kdb using SGI SN specific SAL function call.
20788 + */
20789 +static int
20790 +kdba_pod(int argc, const char **argv)
20791 +{
20792 + kdb_printf("WARNING: pod commands are dangerous unless you know exactly\n"
20793 + "what you are doing. If in doubt, type exit immediately.\n");
20794 + return ia64_sn_pod_mode();
20795 +}
20796 +
20797 +/**
20798 + * kdba_pod_init - register 'pod' command with kdb
20799 + *
20800 + * Register the 'pod' command with kdb at load time.
20801 + */
20802 +static int __init
20803 +kdba_pod_init(void)
20804 +{
20805 + if (ia64_platform_is("sn2"))
20806 + kdb_register("pod", kdba_pod, NULL, "Enter POD", 0);
20807 +
20808 + return 0;
20809 +}
20810 +
20811 +/**
20812 + * kdba_pod_exit - unregister the 'pod' command
20813 + *
20814 + * Tell kdb that the 'pod' command is no longer available.
20815 + */
20816 +static void __exit
20817 +kdba_pod_exit(void)
20818 +{
20819 + if (ia64_platform_is("sn2"))
20820 + kdb_unregister("pod");
20821 +}
20822 +
20823 +module_init(kdba_pod_init)
20824 +module_exit(kdba_pod_exit)
20825 --- /dev/null
20826 +++ b/arch/ia64/kdb/kdba_support.c
20827 @@ -0,0 +1,1720 @@
20828 +/*
20829 + * Kernel Debugger Architecture Independent Support Functions
20830 + *
20831 + * This file is subject to the terms and conditions of the GNU General Public
20832 + * License. See the file "COPYING" in the main directory of this archive
20833 + * for more details.
20834 + *
20835 + * Copyright (c) 1999-2006 Silicon Graphics, Inc. All Rights Reserved.
20836 + * Copyright (C) David Mosberger-Tang <davidm@hpl.hp.com>
20837 + */
20838 +
20839 +#include <linux/string.h>
20840 +#include <linux/stddef.h>
20841 +#include <linux/kernel.h>
20842 +#include <linux/ptrace.h>
20843 +#include <linux/interrupt.h>
20844 +#include <linux/mm.h>
20845 +#include <linux/sched.h>
20846 +#include <linux/kdb.h>
20847 +#include <linux/kdbprivate.h>
20848 +#include <linux/module.h>
20849 +#ifdef CONFIG_KDB_KDUMP
20850 +#include <linux/kexec.h>
20851 +#endif
20852 +
20853 +#include <asm/processor.h>
20854 +#include <asm/uaccess.h>
20855 +#include <asm/rse.h>
20856 +#include <asm/delay.h>
20857 +#ifdef CONFIG_SMP
20858 +#include <asm/hw_irq.h>
20859 +#endif
20860 +#include <asm/mca.h>
20861 +
20862 +struct kdb_running_process *kdb_running_process_save; /* [NR_CPUS] */
20863 +static int kdba_show_handlers = 0;
20864 +
20865 +static int
20866 +kdba_itm (int argc, const char **argv)
20867 +{
20868 + int diag;
20869 + unsigned long val;
20870 +
20871 + diag = kdbgetularg(argv[1], &val);
20872 + if (diag)
20873 + return diag;
20874 + kdb_printf("new itm=" kdb_machreg_fmt "\n", val);
20875 +
20876 + ia64_set_itm(val);
20877 + return 0;
20878 +}
20879 +
20880 +static void
20881 +kdba_show_intregs(void)
20882 +{
20883 + u64 lid, tpr, lrr0, lrr1, itv, pmv, cmcv;
20884 +
20885 + asm ("mov %0=cr.lid" : "=r"(lid));
20886 + asm ("mov %0=cr.tpr" : "=r"(tpr));
20887 + asm ("mov %0=cr.lrr0" : "=r"(lrr0));
20888 + asm ("mov %0=cr.lrr1" : "=r"(lrr1));
20889 + kdb_printf("lid=" kdb_machreg_fmt ", tpr=" kdb_machreg_fmt ", lrr0=" kdb_machreg_fmt ", llr1=" kdb_machreg_fmt "\n", lid, tpr, lrr0, lrr1);
20890 +
20891 + asm ("mov %0=cr.itv" : "=r"(itv));
20892 + asm ("mov %0=cr.pmv" : "=r"(pmv));
20893 + asm ("mov %0=cr.cmcv" : "=r"(cmcv));
20894 + kdb_printf("itv=" kdb_machreg_fmt ", pmv=" kdb_machreg_fmt ", cmcv=" kdb_machreg_fmt "\n", itv, pmv, cmcv);
20895 +
20896 + kdb_printf("irr=0x%016lx,0x%016lx,0x%016lx,0x%016lx\n",
20897 + ia64_getreg(_IA64_REG_CR_IRR0), ia64_getreg(_IA64_REG_CR_IRR1), ia64_getreg(_IA64_REG_CR_IRR2), ia64_getreg(_IA64_REG_CR_IRR3));
20898 +
20899 + kdb_printf("itc=0x%016lx, itm=0x%016lx\n", ia64_get_itc(), ia64_get_itm());
20900 +}
20901 +
20902 +static int
20903 +kdba_sir (int argc, const char **argv)
20904 +{
20905 + kdba_show_intregs();
20906 +
20907 + return 0;
20908 +}
20909 +
20910 +/*
20911 + * kdba_pt_regs
20912 + *
20913 + * Format a struct pt_regs
20914 + *
20915 + * Inputs:
20916 + * argc argument count
20917 + * argv argument vector
20918 + * Outputs:
20919 + * None.
20920 + * Returns:
20921 + * zero for success, a kdb diagnostic if error
20922 + * Locking:
20923 + * none.
20924 + * Remarks:
20925 + * If no address is supplied, it uses the current irq pt_regs.
20926 + */
20927 +
20928 +static int
20929 +kdba_pt_regs(int argc, const char **argv)
20930 +{
20931 + int diag;
20932 + kdb_machreg_t addr;
20933 + long offset = 0;
20934 + int nextarg;
20935 + struct pt_regs *p;
20936 +
20937 + if (argc == 0) {
20938 + addr = (kdb_machreg_t) get_irq_regs();
20939 + } else if (argc == 1) {
20940 + nextarg = 1;
20941 + diag = kdbgetaddrarg(argc, argv, &nextarg, &addr, &offset, NULL);
20942 + if (diag)
20943 + return diag;
20944 + } else {
20945 + return KDB_ARGCOUNT;
20946 + }
20947 +
20948 + p = (struct pt_regs *) addr;
20949 + kdb_printf("struct pt_regs %p-%p\n", p, (unsigned char *)p + sizeof(*p) - 1);
20950 + kdb_print_nameval("b6", p->b6);
20951 + kdb_print_nameval("b7", p->b7);
20952 + kdb_printf(" ar_csd 0x%lx\n", p->ar_csd);
20953 + kdb_printf(" ar_ssd 0x%lx\n", p->ar_ssd);
20954 + kdb_print_nameval("r8", p->r8);
20955 + kdb_print_nameval("r9", p->r9);
20956 + kdb_print_nameval("r10", p->r10);
20957 + kdb_print_nameval("r11", p->r11);
20958 + kdb_printf(" cr_ipsr 0x%lx\n", p->cr_ipsr);
20959 + kdb_print_nameval("cr_iip", p->cr_iip);
20960 + kdb_printf(" cr_ifs 0x%lx\n", p->cr_ifs);
20961 + kdb_printf(" ar_unat 0x%lx\n", p->ar_unat);
20962 + kdb_printf(" ar_pfs 0x%lx\n", p->ar_pfs);
20963 + kdb_printf(" ar_rsc 0x%lx\n", p->ar_rsc);
20964 + kdb_printf(" ar_rnat 0x%lx\n", p->ar_rnat);
20965 + kdb_printf(" ar_bspstore 0x%lx\n", p->ar_bspstore);
20966 + kdb_printf(" pr 0x%lx\n", p->pr);
20967 + kdb_print_nameval("b0", p->b0);
20968 + kdb_printf(" loadrs 0x%lx\n", p->loadrs);
20969 + kdb_print_nameval("r1", p->r1);
20970 + kdb_print_nameval("r12", p->r12);
20971 + kdb_print_nameval("r13", p->r13);
20972 + kdb_printf(" ar_fpsr 0x%lx\n", p->ar_fpsr);
20973 + kdb_print_nameval("r15", p->r15);
20974 + kdb_print_nameval("r14", p->r14);
20975 + kdb_print_nameval("r2", p->r2);
20976 + kdb_print_nameval("r3", p->r3);
20977 + kdb_print_nameval("r16", p->r16);
20978 + kdb_print_nameval("r17", p->r17);
20979 + kdb_print_nameval("r18", p->r18);
20980 + kdb_print_nameval("r19", p->r19);
20981 + kdb_print_nameval("r20", p->r20);
20982 + kdb_print_nameval("r21", p->r21);
20983 + kdb_print_nameval("r22", p->r22);
20984 + kdb_print_nameval("r23", p->r23);
20985 + kdb_print_nameval("r24", p->r24);
20986 + kdb_print_nameval("r25", p->r25);
20987 + kdb_print_nameval("r26", p->r26);
20988 + kdb_print_nameval("r27", p->r27);
20989 + kdb_print_nameval("r28", p->r28);
20990 + kdb_print_nameval("r29", p->r29);
20991 + kdb_print_nameval("r30", p->r30);
20992 + kdb_print_nameval("r31", p->r31);
20993 + kdb_printf(" ar_ccv 0x%lx\n", p->ar_ccv);
20994 + kdb_printf(" f6 0x%lx 0x%lx\n", p->f6.u.bits[0], p->f6.u.bits[1]);
20995 + kdb_printf(" f7 0x%lx 0x%lx\n", p->f7.u.bits[0], p->f7.u.bits[1]);
20996 + kdb_printf(" f8 0x%lx 0x%lx\n", p->f8.u.bits[0], p->f8.u.bits[1]);
20997 + kdb_printf(" f9 0x%lx 0x%lx\n", p->f9.u.bits[0], p->f9.u.bits[1]);
20998 + kdb_printf(" f10 0x%lx 0x%lx\n", p->f10.u.bits[0], p->f10.u.bits[1]);
20999 + kdb_printf(" f11 0x%lx 0x%lx\n", p->f11.u.bits[0], p->f11.u.bits[1]);
21000 +
21001 + return 0;
21002 +}
21003 +
21004 +/*
21005 + * kdba_stackdepth
21006 + *
21007 + * Print processes that are using more than a specific percentage of their
21008 + * stack.
21009 + *
21010 + * Inputs:
21011 + * argc argument count
21012 + * argv argument vector
21013 + * Outputs:
21014 + * None.
21015 + * Returns:
21016 + * zero for success, a kdb diagnostic if error
21017 + * Locking:
21018 + * none.
21019 + * Remarks:
21020 + * If no percentage is supplied, it uses 60.
21021 + */
21022 +
21023 +static int
21024 +kdba_stackdepth(int argc, const char **argv)
21025 +{
21026 + int diag, threshold, used;
21027 + unsigned long percentage;
21028 + unsigned long esp;
21029 + long offset = 0;
21030 + int nextarg;
21031 + struct task_struct *p, *g;
21032 + struct switch_stack *sw;
21033 +
21034 + if (argc == 0) {
21035 + percentage = 60;
21036 + } else if (argc == 1) {
21037 + nextarg = 1;
21038 + diag = kdbgetaddrarg(argc, argv, &nextarg, &percentage, &offset, NULL);
21039 + if (diag)
21040 + return diag;
21041 + } else {
21042 + return KDB_ARGCOUNT;
21043 + }
21044 + percentage = max_t(int, percentage, 1);
21045 + percentage = min_t(int, percentage, 100);
21046 + threshold = ((2 * THREAD_SIZE * percentage) / 100 + 1) >> 1;
21047 + kdb_printf("stackdepth: processes using more than %ld%% (%d bytes) of stack\n",
21048 + percentage, threshold);
21049 + kdb_do_each_thread(g, p) {
21050 + if (kdb_task_has_cpu(p)) {
21051 + struct kdb_running_process *krp = kdb_running_process + kdb_process_cpu(p);
21052 + if (krp->seqno)
21053 + sw = krp->arch.sw;
21054 + else
21055 + sw = NULL;
21056 + } else
21057 + sw = (struct switch_stack *) (p->thread.ksp + 16);
21058 + if (!sw)
21059 + continue;
21060 + esp = (unsigned long) sw;
21061 + used = THREAD_SIZE - (esp - sw->ar_bspstore);
21062 + if (used >= threshold) {
21063 + kdb_ps1(p);
21064 + kdb_printf(" esp %lx bsp %lx used %d\n", esp, sw->ar_bspstore, used);
21065 + }
21066 + } kdb_while_each_thread(g, p);
21067 +
21068 + return 0;
21069 +}
21070 +
21071 +/*
21072 + * kdb_switch_stack
21073 + *
21074 + * Format a struct switch_stack
21075 + *
21076 + * Inputs:
21077 + * argc argument count
21078 + * argv argument vector
21079 + * Outputs:
21080 + * None.
21081 + * Returns:
21082 + * zero for success, a kdb diagnostic if error
21083 + * Locking:
21084 + * none.
21085 + * Remarks:
21086 + * If no address is supplied, it uses kdb_running_process[smp_processor_id()].arch.sw.
21087 + */
21088 +
21089 +static int
21090 +kdba_switch_stack(int argc, const char **argv)
21091 +{
21092 + int diag;
21093 + kdb_machreg_t addr;
21094 + long offset = 0;
21095 + int nextarg;
21096 + struct switch_stack *p;
21097 +
21098 + if (argc == 0) {
21099 + addr = (kdb_machreg_t) kdb_running_process[smp_processor_id()].arch.sw;
21100 + } else if (argc == 1) {
21101 + nextarg = 1;
21102 + diag = kdbgetaddrarg(argc, argv, &nextarg, &addr, &offset, NULL);
21103 + if (diag)
21104 + return diag;
21105 + } else {
21106 + return KDB_ARGCOUNT;
21107 + }
21108 +
21109 + p = (struct switch_stack *) addr;
21110 + kdb_printf("struct switch_stack %p-%p\n", p, (unsigned char *)p + sizeof(*p) - 1);
21111 + kdb_printf(" caller_unat 0x%lx\n", p->caller_unat);
21112 + kdb_printf(" ar_fpsr 0x%lx\n", p->ar_fpsr);
21113 + kdb_printf(" f2 0x%lx 0x%lx\n", p->f2.u.bits[0], p->f2.u.bits[1]);
21114 + kdb_printf(" f3 0x%lx 0x%lx\n", p->f3.u.bits[0], p->f3.u.bits[1]);
21115 + kdb_printf(" f4 0x%lx 0x%lx\n", p->f4.u.bits[0], p->f4.u.bits[1]);
21116 + kdb_printf(" f5 0x%lx 0x%lx\n", p->f5.u.bits[0], p->f5.u.bits[1]);
21117 + kdb_printf(" f12 0x%lx 0x%lx\n", p->f12.u.bits[0], p->f12.u.bits[1]);
21118 + kdb_printf(" f13 0x%lx 0x%lx\n", p->f13.u.bits[0], p->f13.u.bits[1]);
21119 + kdb_printf(" f14 0x%lx 0x%lx\n", p->f14.u.bits[0], p->f14.u.bits[1]);
21120 + kdb_printf(" f15 0x%lx 0x%lx\n", p->f15.u.bits[0], p->f15.u.bits[1]);
21121 + kdb_printf(" f16 0x%lx 0x%lx\n", p->f16.u.bits[0], p->f16.u.bits[1]);
21122 + kdb_printf(" f17 0x%lx 0x%lx\n", p->f17.u.bits[0], p->f17.u.bits[1]);
21123 + kdb_printf(" f18 0x%lx 0x%lx\n", p->f18.u.bits[0], p->f18.u.bits[1]);
21124 + kdb_printf(" f19 0x%lx 0x%lx\n", p->f19.u.bits[0], p->f19.u.bits[1]);
21125 + kdb_printf(" f20 0x%lx 0x%lx\n", p->f20.u.bits[0], p->f20.u.bits[1]);
21126 + kdb_printf(" f21 0x%lx 0x%lx\n", p->f21.u.bits[0], p->f21.u.bits[1]);
21127 + kdb_printf(" f22 0x%lx 0x%lx\n", p->f22.u.bits[0], p->f22.u.bits[1]);
21128 + kdb_printf(" f23 0x%lx 0x%lx\n", p->f23.u.bits[0], p->f23.u.bits[1]);
21129 + kdb_printf(" f24 0x%lx 0x%lx\n", p->f24.u.bits[0], p->f24.u.bits[1]);
21130 + kdb_printf(" f25 0x%lx 0x%lx\n", p->f25.u.bits[0], p->f25.u.bits[1]);
21131 + kdb_printf(" f26 0x%lx 0x%lx\n", p->f26.u.bits[0], p->f26.u.bits[1]);
21132 + kdb_printf(" f27 0x%lx 0x%lx\n", p->f27.u.bits[0], p->f27.u.bits[1]);
21133 + kdb_printf(" f28 0x%lx 0x%lx\n", p->f28.u.bits[0], p->f28.u.bits[1]);
21134 + kdb_printf(" f29 0x%lx 0x%lx\n", p->f29.u.bits[0], p->f29.u.bits[1]);
21135 + kdb_printf(" f30 0x%lx 0x%lx\n", p->f30.u.bits[0], p->f30.u.bits[1]);
21136 + kdb_printf(" f31 0x%lx 0x%lx\n", p->f31.u.bits[0], p->f31.u.bits[1]);
21137 + kdb_print_nameval("r4", p->r4);
21138 + kdb_print_nameval("r5", p->r5);
21139 + kdb_print_nameval("r6", p->r6);
21140 + kdb_print_nameval("r7", p->r7);
21141 + kdb_print_nameval("b0", p->b0);
21142 + kdb_print_nameval("b1", p->b1);
21143 + kdb_print_nameval("b2", p->b2);
21144 + kdb_print_nameval("b3", p->b3);
21145 + kdb_print_nameval("b4", p->b4);
21146 + kdb_print_nameval("b5", p->b5);
21147 + kdb_printf(" ar_pfs 0x%lx\n", p->ar_pfs);
21148 + kdb_printf(" ar_lc 0x%lx\n", p->ar_lc);
21149 + kdb_printf(" ar_unat 0x%lx\n", p->ar_unat);
21150 + kdb_printf(" ar_rnat 0x%lx\n", p->ar_rnat);
21151 + kdb_printf(" ar_bspstore 0x%lx\n", p->ar_bspstore);
21152 + kdb_printf(" pr 0x%lx\n", p->pr);
21153 +
21154 + return 0;
21155 +}
21156 +
21157 +/*
21158 + * kdb_minstate
21159 + *
21160 + * Format the PAL minstate area.
21161 + *
21162 + * Inputs:
21163 + * argc argument count
21164 + * argv argument vector
21165 + * Outputs:
21166 + * None.
21167 + * Returns:
21168 + * zero for success, a kdb diagnostic if error
21169 + * Locking:
21170 + * none.
21171 + * Remarks:
21172 + * None.
21173 + */
21174 +
21175 +static int
21176 +kdba_minstate(int argc, const char **argv)
21177 +{
21178 + int diag;
21179 + kdb_machreg_t addr;
21180 + long offset = 0;
21181 + int nextarg;
21182 + pal_min_state_area_t *p;
21183 +
21184 + if (argc == 1) {
21185 + nextarg = 1;
21186 + diag = kdbgetaddrarg(argc, argv, &nextarg, &addr, &offset, NULL);
21187 + if (diag)
21188 + return diag;
21189 + } else {
21190 + return KDB_ARGCOUNT;
21191 + }
21192 +
21193 + p = (pal_min_state_area_t *) addr;
21194 + kdb_printf("PAL minstate %p-%p\n", p, (unsigned char *)p + sizeof(*p) - 1);
21195 + kdb_printf(" pmsa_nat_bits 0x%lx\n", p->pmsa_nat_bits);
21196 + kdb_print_nameval("r1", p->pmsa_gr[1-1]);
21197 + kdb_print_nameval("r2", p->pmsa_gr[2-1]);
21198 + kdb_print_nameval("r3", p->pmsa_gr[3-1]);
21199 + kdb_print_nameval("r4", p->pmsa_gr[4-1]);
21200 + kdb_print_nameval("r5", p->pmsa_gr[5-1]);
21201 + kdb_print_nameval("r6", p->pmsa_gr[6-1]);
21202 + kdb_print_nameval("r7", p->pmsa_gr[7-1]);
21203 + kdb_print_nameval("r8", p->pmsa_gr[8-1]);
21204 + kdb_print_nameval("r9", p->pmsa_gr[9-1]);
21205 + kdb_print_nameval("r10", p->pmsa_gr[10-1]);
21206 + kdb_print_nameval("r11", p->pmsa_gr[11-1]);
21207 + kdb_print_nameval("r12", p->pmsa_gr[12-1]);
21208 + kdb_print_nameval("r13", p->pmsa_gr[13-1]);
21209 + kdb_print_nameval("r14", p->pmsa_gr[14-1]);
21210 + kdb_print_nameval("r15", p->pmsa_gr[15-1]);
21211 + kdb_printf(" Bank 0\n");
21212 + kdb_print_nameval("r16", p->pmsa_bank0_gr[16-16]);
21213 + kdb_print_nameval("r17", p->pmsa_bank0_gr[17-16]);
21214 + kdb_print_nameval("r18", p->pmsa_bank0_gr[18-16]);
21215 + kdb_print_nameval("r19", p->pmsa_bank0_gr[19-16]);
21216 + kdb_print_nameval("r20", p->pmsa_bank0_gr[20-16]);
21217 + kdb_print_nameval("r21", p->pmsa_bank0_gr[21-16]);
21218 + kdb_print_nameval("r22", p->pmsa_bank0_gr[22-16]);
21219 + kdb_print_nameval("r23", p->pmsa_bank0_gr[23-16]);
21220 + kdb_print_nameval("r24", p->pmsa_bank0_gr[24-16]);
21221 + kdb_print_nameval("r25", p->pmsa_bank0_gr[25-16]);
21222 + kdb_print_nameval("r26", p->pmsa_bank0_gr[26-16]);
21223 + kdb_print_nameval("r27", p->pmsa_bank0_gr[27-16]);
21224 + kdb_print_nameval("r28", p->pmsa_bank0_gr[28-16]);
21225 + kdb_print_nameval("r29", p->pmsa_bank0_gr[29-16]);
21226 + kdb_print_nameval("r30", p->pmsa_bank0_gr[30-16]);
21227 + kdb_print_nameval("r31", p->pmsa_bank0_gr[31-16]);
21228 + kdb_printf(" Bank 1\n");
21229 + kdb_print_nameval("r16", p->pmsa_bank1_gr[16-16]);
21230 + kdb_print_nameval("r17", p->pmsa_bank1_gr[17-16]);
21231 + kdb_print_nameval("r18", p->pmsa_bank1_gr[18-16]);
21232 + kdb_print_nameval("r19", p->pmsa_bank1_gr[19-16]);
21233 + kdb_print_nameval("r20", p->pmsa_bank1_gr[20-16]);
21234 + kdb_print_nameval("r21", p->pmsa_bank1_gr[21-16]);
21235 + kdb_print_nameval("r22", p->pmsa_bank1_gr[22-16]);
21236 + kdb_print_nameval("r23", p->pmsa_bank1_gr[23-16]);
21237 + kdb_print_nameval("r24", p->pmsa_bank1_gr[24-16]);
21238 + kdb_print_nameval("r25", p->pmsa_bank1_gr[25-16]);
21239 + kdb_print_nameval("r26", p->pmsa_bank1_gr[26-16]);
21240 + kdb_print_nameval("r27", p->pmsa_bank1_gr[27-16]);
21241 + kdb_print_nameval("r28", p->pmsa_bank1_gr[28-16]);
21242 + kdb_print_nameval("r29", p->pmsa_bank1_gr[29-16]);
21243 + kdb_print_nameval("r30", p->pmsa_bank1_gr[30-16]);
21244 + kdb_print_nameval("r31", p->pmsa_bank1_gr[31-16]);
21245 + kdb_printf(" pr 0x%lx\n", p->pmsa_pr);
21246 + kdb_print_nameval("b0", p->pmsa_br0);
21247 + kdb_printf(" ar.rsc 0x%lx\n", p->pmsa_rsc);
21248 + kdb_print_nameval("cr.iip", p->pmsa_iip);
21249 + kdb_printf(" cr.ipsr 0x%lx\n", p->pmsa_ipsr);
21250 + kdb_printf(" cr.ifs 0x%lx\n", p->pmsa_ifs);
21251 + kdb_print_nameval("cr.xip", p->pmsa_xip);
21252 + kdb_printf(" cr.xpsr 0x%lx\n", p->pmsa_xpsr);
21253 + kdb_printf(" cr.xfs 0x%lx\n", p->pmsa_xfs);
21254 + kdb_print_nameval("b1", p->pmsa_br1);
21255 +
21256 + return 0;
21257 +}
21258 +
21259 +/*
21260 + * kdba_cpuinfo
21261 + *
21262 + * Format struct cpuinfo_ia64.
21263 + *
21264 + * Inputs:
21265 + * argc argument count
21266 + * argv argument vector
21267 + * Outputs:
21268 + * None.
21269 + * Returns:
21270 + * zero for success, a kdb diagnostic if error
21271 + * Locking:
21272 + * none.
21273 + * Remarks:
21274 + * If no cpu is supplied, it prints cpuinfo for all online cpus.
21275 + */
21276 +
21277 +static int
21278 +kdba_cpuinfo(int argc, const char **argv)
21279 +{
21280 + int diag;
21281 + unsigned long cpunum = -1;
21282 + long offset = 0;
21283 + int nextarg, c, i;
21284 + struct cpuinfo_ia64 *cpuinfo;
21285 +
21286 + if (argc == 1) {
21287 + nextarg = 1;
21288 + diag = kdbgetaddrarg(argc, argv, &nextarg, &cpunum, &offset, NULL);
21289 + if (diag)
21290 + return diag;
21291 + if (cpunum >= NR_CPUS || !cpu_online(cpunum))
21292 + return KDB_BADCPUNUM;
21293 + } else if (argc > 1) {
21294 + return KDB_ARGCOUNT;
21295 + }
21296 +
21297 + for (c = (cpunum == -1 ? 0 : cpunum);
21298 + c < (cpunum == -1 ? NR_CPUS : cpunum+1);
21299 + ++c) {
21300 + if (!cpu_online(c))
21301 + continue;
21302 + cpuinfo = cpu_data(c);
21303 + kdb_printf("struct cpuinfo_ia64 for cpu %d is at 0x%p\n", c, cpuinfo);
21304 + kdb_printf(" softirq_pending 0x%x\n", cpuinfo->softirq_pending);
21305 + kdb_printf(" itm_delta %ld\n", cpuinfo->itm_delta);
21306 + kdb_printf(" itm_next %ld\n", cpuinfo->itm_next);
21307 + kdb_printf(" nsec_per_cyc %ld\n", cpuinfo->nsec_per_cyc);
21308 + kdb_printf(" unimpl_va_mask 0x%lx\n", cpuinfo->unimpl_va_mask);
21309 + kdb_printf(" unimpl_pa_mask 0x%lx\n", cpuinfo->unimpl_pa_mask);
21310 + kdb_printf(" itc_freq %ld\n", cpuinfo->itc_freq);
21311 + kdb_printf(" proc_freq %ld\n", cpuinfo->proc_freq);
21312 + kdb_printf(" cyc_per_usec %ld\n", cpuinfo->cyc_per_usec);
21313 + kdb_printf(" cyc_per_usec %ld\n", cpuinfo->cyc_per_usec);
21314 +#if 0 /* RJA per-cpu MCA */
21315 + kdb_printf(" percpu_paddr 0x%lx\n", cpuinfo->percpu_paddr);
21316 +#endif
21317 + kdb_printf(" ptce_base 0x%lx\n", cpuinfo->ptce_base);
21318 + kdb_printf(" ptce_count %d %d\n", cpuinfo->ptce_count[0], cpuinfo->ptce_count[1]);
21319 + kdb_printf(" ptce_stride %d %d\n", cpuinfo->ptce_stride[0], cpuinfo->ptce_stride[1]);
21320 +#if 0 /* RJA per-cpu MCA */
21321 + kdb_printf(" pal_paddr 0x%lx\n", cpuinfo->pal_paddr);
21322 + kdb_printf(" pal_base 0x%lx\n", cpuinfo->pal_base);
21323 +#endif
21324 + kdb_printf(" ksoftirqd 0x%p\n", cpuinfo->ksoftirqd);
21325 +#ifdef CONFIG_SMP
21326 + kdb_printf(" loops_per_jiffy %ld\n", cpuinfo->loops_per_jiffy);
21327 + kdb_printf(" cpu %d\n", cpuinfo->cpu);
21328 + kdb_printf(" socket_id %d\n", cpuinfo->socket_id);
21329 + kdb_printf(" core_id %d\n", cpuinfo->core_id);
21330 + kdb_printf(" thread_id %d\n", cpuinfo->thread_id);
21331 + kdb_printf(" num_log %d\n", cpuinfo->num_log);
21332 + kdb_printf(" cores_per_socket %d\n", cpuinfo->cores_per_socket);
21333 + kdb_printf(" threads_per_core %d\n", cpuinfo->threads_per_core);
21334 +#endif
21335 + kdb_printf(" ppn 0x%lx\n", cpuinfo->ppn);
21336 + kdb_printf(" features 0x%lx\n", cpuinfo->features);
21337 + kdb_printf(" number %d\n", cpuinfo->number);
21338 + kdb_printf(" revision %d\n", cpuinfo->revision);
21339 + kdb_printf(" model %d\n", cpuinfo->model);
21340 + kdb_printf(" family %d\n", cpuinfo->family);
21341 + kdb_printf(" archrev %d\n", cpuinfo->archrev);
21342 + kdb_printf(" vendor ");
21343 + for (i = 0; i < sizeof(cpuinfo->vendor); ++i)
21344 + kdb_printf(" 0x%02x", cpuinfo->vendor[i]);
21345 + kdb_printf("\n");
21346 +#ifdef CONFIG_NUMA
21347 + kdb_printf(" node_data 0x%p\n", cpuinfo->node_data);
21348 +#endif
21349 +#if 0 /* RJA per-cpu MCA */
21350 + kdb_printf(" ia64_pa_mca_data 0x%p\n", cpuinfo->ia64_pa_mca_data);
21351 +#endif
21352 + }
21353 + return 0;
21354 +}
21355 +
21356 +#ifdef CONFIG_KDB_HARDWARE_BREAKPOINTS
21357 +void
21358 +kdba_installdbreg(kdb_bp_t *bp)
21359 +{
21360 + unsigned long mask;
21361 + unsigned int regbase;
21362 + static unsigned long masks[] = {
21363 + 0x00FFFFFFFFFFFFFFUL, // 1 byte long
21364 + 0x00FFFFFFFFFFFFFEUL, // 2 bytes long
21365 + 0x0000000000000000UL, // invalid
21366 + 0x00FFFFFFFFFFFFFCUL // 4 bytes long
21367 + };
21368 + static unsigned char modes[] = {
21369 + 0x81, // instruction => x, plm=priv level 0 only
21370 + 0x41, // write => w, plm=priv level 0 only
21371 + 0x00, // io
21372 + 0x81 // read => r, plm=priv level 0 only
21373 + };
21374 +
21375 + /* Note that bp->bp_hard[NR_CPU] is for x86.
21376 + * The ia64 uses bp->bp_hard[0] only.
21377 + */
21378 + if (KDB_DEBUG(BP))
21379 + kdb_printf("kdba_installdbreg:\n");
21380 + mask = masks[bp->bp_hard[0]->bph_length] |
21381 + (((unsigned long)(modes[bp->bp_hard[0]->bph_mode])) << 56);
21382 + regbase = 2*bp->bp_hard[0]->bph_reg;
21383 +
21384 + switch (bp->bp_hard[0]->bph_mode)
21385 + {
21386 + case 1:
21387 + case 3:
21388 + if (KDB_DEBUG(BP)) {
21389 + kdb_printf("kdba_installdbreg: dbr[%u]=%016lx\n",
21390 + regbase, bp->bp_addr);
21391 + kdb_printf("kdba_installdbreg: dbr[%u]=%016lx\n",
21392 + regbase+1, mask);
21393 + }
21394 +
21395 + ia64_set_dbr(regbase, bp->bp_addr);
21396 + ia64_set_dbr(regbase+1, mask);
21397 + ia64_srlz_d();
21398 + break;
21399 +
21400 + case 0: /* instruction */
21401 +#if 0
21402 + ia64_set_ibr(regbase, bp->bp_addr);
21403 + ia64_set_ibr(regbase+1, mask);
21404 + ia64_srlz_d();
21405 +#else
21406 + kdb_printf("\"instr\" mode not implemented\n");
21407 +#endif
21408 + break;
21409 +
21410 + case 2: /* io */
21411 + kdb_printf("\"io\" mode not implemented\n");
21412 + break;
21413 + }
21414 +}
21415 +
21416 +void
21417 +kdba_removedbreg(kdb_bp_t *bp)
21418 +{
21419 + unsigned int regbase = 2*bp->bp_hard[0]->bph_reg;
21420 +
21421 + /* Note that bp->bp_hard[NR_CPU] is for x86.
21422 + * The ia64 uses bp->bp_hard[0] only.
21423 + */
21424 + switch (bp->bp_hard[0]->bph_mode)
21425 + {
21426 + case 1:
21427 + case 3:
21428 + ia64_set_dbr(regbase, 0);
21429 + ia64_set_dbr(regbase+1, 0);
21430 + ia64_srlz_d();
21431 + break;
21432 +
21433 + case 0: /* instruction */
21434 +#if 0
21435 + ia64_set_ibr(regbase, 0);
21436 + ia64_set_ibr(regbase+1, 0);
21437 + ia64_srlz_d();
21438 +#else
21439 + kdb_printf("\"instr\" mode not implemented\n");
21440 +#endif
21441 + break;
21442 +
21443 + case 2: /* io */
21444 + kdb_printf("\"io\" mode not implemented\n");
21445 + break;
21446 + }
21447 +}
21448 +#endif /* CONFIG_KDB_HARDWARE_BREAKPOINTS */
21449 +
21450 +
21451 +static kdb_machreg_t
21452 +kdba_getdr(int regnum)
21453 +{
21454 + kdb_machreg_t contents = 0;
21455 + unsigned long reg = (unsigned long)regnum;
21456 +
21457 + __asm__ ("mov %0=ibr[%1]"::"r"(contents),"r"(reg));
21458 +// __asm__ ("mov ibr[%0]=%1"::"r"(dbreg_cond),"r"(value));
21459 +
21460 + return contents;
21461 +}
21462 +
21463 +
21464 +static void
21465 +get_fault_regs(fault_regs_t *fr)
21466 +{
21467 + fr->ifa = 0 ;
21468 + fr->isr = 0 ;
21469 +
21470 + __asm__ ("rsm psr.ic;;") ;
21471 + ia64_srlz_d();
21472 + __asm__ ("mov %0=cr.ifa" : "=r"(fr->ifa));
21473 + __asm__ ("mov %0=cr.isr" : "=r"(fr->isr));
21474 + __asm__ ("ssm psr.ic;;") ;
21475 + ia64_srlz_d();
21476 +}
21477 +
21478 +static void
21479 +show_kernel_regs (void)
21480 +{
21481 + unsigned long kr[8];
21482 + int i;
21483 +
21484 + asm ("mov %0=ar.k0" : "=r"(kr[0])); asm ("mov %0=ar.k1" : "=r"(kr[1]));
21485 + asm ("mov %0=ar.k2" : "=r"(kr[2])); asm ("mov %0=ar.k3" : "=r"(kr[3]));
21486 + asm ("mov %0=ar.k4" : "=r"(kr[4])); asm ("mov %0=ar.k5" : "=r"(kr[5]));
21487 + asm ("mov %0=ar.k6" : "=r"(kr[6])); asm ("mov %0=ar.k7" : "=r"(kr[7]));
21488 +
21489 + for (i = 0; i < 4; ++i)
21490 + kdb_printf(" kr%d: %016lx kr%d: %016lx\n", 2*i, kr[2*i], 2*i+1, kr[2*i+1]);
21491 + kdb_printf("\n");
21492 +}
21493 +
21494 +static int
21495 +change_cur_stack_frame(int regno, unsigned long *contents)
21496 +{
21497 + unsigned long sof, i, cfm, sp, *bsp, __user *ubsp;
21498 + struct unw_frame_info info;
21499 + mm_segment_t old_fs;
21500 + int cpu = kdb_process_cpu(kdb_current_task);
21501 + struct kdb_running_process *krp = kdb_running_process + cpu;
21502 +
21503 + if (kdb_current_task != krp->p) {
21504 + kdb_printf("Stacked registers are not available for tasks that are not running.\n");
21505 + kdb_printf("Use bt with a large BTARGS value instead\n");
21506 + return 0;
21507 + }
21508 + unw_init_frame_info(&info, krp->p, krp->arch.sw);
21509 + do {
21510 + if (unw_unwind(&info) < 0) {
21511 + kdb_printf("Failed to unwind\n");
21512 + return 0;
21513 + }
21514 + unw_get_sp(&info, &sp);
21515 + } while (sp <= (unsigned long) kdb_current_regs);
21516 + unw_get_bsp(&info, (unsigned long *) &bsp);
21517 + unw_get_cfm(&info, &cfm);
21518 +
21519 + if (!bsp) {
21520 + kdb_printf("Unable to get Current Stack Frame\n");
21521 + return 0;
21522 + }
21523 +
21524 + sof = (cfm & 0x7f);
21525 +
21526 + if(((unsigned long)regno - 32) >= (sof - 2)) return 1;
21527 +
21528 + old_fs = set_fs(KERNEL_DS);
21529 + for (i = 0; i < (regno - 32); ++i)
21530 + bsp = ia64_rse_skip_regs(bsp, 1);
21531 + ubsp = (unsigned long __user *) bsp;
21532 + put_user(*contents, ubsp);
21533 + set_fs(old_fs);
21534 +
21535 + return 0 ;
21536 +}
21537 +
21538 +static int
21539 +show_cur_stack_frame(int regno, unsigned long *contents)
21540 +{
21541 + unsigned long sof, i, cfm, val, sp, *bsp, __user *ubsp;
21542 + struct unw_frame_info info;
21543 + mm_segment_t old_fs;
21544 + int cpu = kdb_process_cpu(kdb_current_task);
21545 + struct kdb_running_process *krp = kdb_running_process + cpu;
21546 +
21547 + if (kdb_current_task != krp->p) {
21548 + kdb_printf("Stacked registers are not available for tasks that are not running.\n");
21549 + kdb_printf("Use bt with a large BTARGS value instead\n");
21550 + return 0;
21551 + }
21552 + unw_init_frame_info(&info, krp->p, krp->arch.sw);
21553 + do {
21554 + if (unw_unwind(&info) < 0) {
21555 + kdb_printf("Failed to unwind\n");
21556 + return 0;
21557 + }
21558 + unw_get_sp(&info, &sp);
21559 + } while (sp <= (unsigned long) kdb_current_regs);
21560 + unw_get_bsp(&info, (unsigned long *) &bsp);
21561 + unw_get_cfm(&info, &cfm);
21562 +
21563 + if (!bsp) {
21564 + kdb_printf("Unable to display Current Stack Frame\n");
21565 + return 0;
21566 + }
21567 +
21568 + sof = (cfm & 0x7f);
21569 +
21570 + if (regno) {
21571 + if ((unsigned) regno - 32 >= sof)
21572 + return 0;
21573 + bsp = ia64_rse_skip_regs(bsp, regno - 32);
21574 + old_fs = set_fs(KERNEL_DS);
21575 + ubsp = (unsigned long __user *) bsp;
21576 + get_user(val, ubsp);
21577 + set_fs(old_fs);
21578 + *contents = val;
21579 + return 1;
21580 + }
21581 +
21582 + old_fs = set_fs(KERNEL_DS);
21583 + for (i = 0; i < sof; ++i) {
21584 + ubsp = (unsigned long __user *) bsp;
21585 + get_user(val, ubsp);
21586 + kdb_printf(" r%lu: %016lx ", 32 + i, val);
21587 + if (!((i + 1) % 3))
21588 + kdb_printf("\n");
21589 + bsp = ia64_rse_skip_regs(bsp, 1);
21590 + }
21591 + kdb_printf("\n");
21592 + set_fs(old_fs);
21593 +
21594 + return 0 ;
21595 +}
21596 +
21597 +/*
21598 + * kdba_getregcontents
21599 + *
21600 + * Return the contents of the register specified by the
21601 + * input string argument. Return an error if the string
21602 + * does not match a machine register.
21603 + *
21604 + * The following pseudo register names are supported:
21605 + * &regs - Prints address of exception frame
21606 + * kesp - Prints kernel stack pointer at time of fault
21607 + * sstk - Prints switch stack for ia64
21608 + * %<regname> - Uses the value of the registers at the
21609 + * last time the user process entered kernel
21610 + * mode, instead of the registers at the time
21611 + * kdb was entered.
21612 + *
21613 + * Parameters:
21614 + * regname Pointer to string naming register
21615 + * regs Pointer to structure containing registers.
21616 + * Outputs:
21617 + * *contents Pointer to unsigned long to recieve register contents
21618 + * Returns:
21619 + * 0 Success
21620 + * KDB_BADREG Invalid register name
21621 + * Locking:
21622 + * None.
21623 + * Remarks:
21624 + *
21625 + * Note that this function is really machine independent. The kdb
21626 + * register list is not, however.
21627 + */
21628 +
21629 +static struct kdbregs {
21630 + char *reg_name;
21631 + size_t reg_offset;
21632 +} kdbreglist[] = {
21633 + { "psr", offsetof(struct pt_regs, cr_ipsr) },
21634 + { "ifs", offsetof(struct pt_regs, cr_ifs) },
21635 + { "ip", offsetof(struct pt_regs, cr_iip) },
21636 +
21637 + { "unat", offsetof(struct pt_regs, ar_unat) },
21638 + { "pfs", offsetof(struct pt_regs, ar_pfs) },
21639 + { "rsc", offsetof(struct pt_regs, ar_rsc) },
21640 +
21641 + { "rnat", offsetof(struct pt_regs, ar_rnat) },
21642 + { "bsps", offsetof(struct pt_regs, ar_bspstore) },
21643 + { "pr", offsetof(struct pt_regs, pr) },
21644 +
21645 + { "ldrs", offsetof(struct pt_regs, loadrs) },
21646 + { "ccv", offsetof(struct pt_regs, ar_ccv) },
21647 + { "fpsr", offsetof(struct pt_regs, ar_fpsr) },
21648 +
21649 + { "b0", offsetof(struct pt_regs, b0) },
21650 + { "b6", offsetof(struct pt_regs, b6) },
21651 + { "b7", offsetof(struct pt_regs, b7) },
21652 +
21653 + { "r1",offsetof(struct pt_regs, r1) },
21654 + { "r2",offsetof(struct pt_regs, r2) },
21655 + { "r3",offsetof(struct pt_regs, r3) },
21656 +
21657 + { "r8",offsetof(struct pt_regs, r8) },
21658 + { "r9",offsetof(struct pt_regs, r9) },
21659 + { "r10",offsetof(struct pt_regs, r10) },
21660 +
21661 + { "r11",offsetof(struct pt_regs, r11) },
21662 + { "r12",offsetof(struct pt_regs, r12) },
21663 + { "r13",offsetof(struct pt_regs, r13) },
21664 +
21665 + { "r14",offsetof(struct pt_regs, r14) },
21666 + { "r15",offsetof(struct pt_regs, r15) },
21667 + { "r16",offsetof(struct pt_regs, r16) },
21668 +
21669 + { "r17",offsetof(struct pt_regs, r17) },
21670 + { "r18",offsetof(struct pt_regs, r18) },
21671 + { "r19",offsetof(struct pt_regs, r19) },
21672 +
21673 + { "r20",offsetof(struct pt_regs, r20) },
21674 + { "r21",offsetof(struct pt_regs, r21) },
21675 + { "r22",offsetof(struct pt_regs, r22) },
21676 +
21677 + { "r23",offsetof(struct pt_regs, r23) },
21678 + { "r24",offsetof(struct pt_regs, r24) },
21679 + { "r25",offsetof(struct pt_regs, r25) },
21680 +
21681 + { "r26",offsetof(struct pt_regs, r26) },
21682 + { "r27",offsetof(struct pt_regs, r27) },
21683 + { "r28",offsetof(struct pt_regs, r28) },
21684 +
21685 + { "r29",offsetof(struct pt_regs, r29) },
21686 + { "r30",offsetof(struct pt_regs, r30) },
21687 + { "r31",offsetof(struct pt_regs, r31) },
21688 +
21689 +};
21690 +
21691 +static const int nkdbreglist = sizeof(kdbreglist) / sizeof(struct kdbregs);
21692 +
21693 +int
21694 +kdba_getregcontents(const char *regname, struct pt_regs *regs, unsigned long *contents)
21695 +{
21696 + int i;
21697 +
21698 + if (strcmp(regname, "isr") == 0) {
21699 + fault_regs_t fr ;
21700 + get_fault_regs(&fr) ;
21701 + *contents = fr.isr ;
21702 + return 0 ;
21703 + }
21704 +
21705 + if (!regs) {
21706 + kdb_printf("%s: pt_regs not available, use bt* or pid to select a different task\n", __FUNCTION__);
21707 + return KDB_BADREG;
21708 + }
21709 +
21710 + if (strcmp(regname, "&regs") == 0) {
21711 + *contents = (unsigned long)regs;
21712 + return 0;
21713 + }
21714 +
21715 + if (strcmp(regname, "sstk") == 0) {
21716 + *contents = (unsigned long)getprsregs(regs) ;
21717 + return 0;
21718 + }
21719 +
21720 + if (strcmp(regname, "ksp") == 0) {
21721 + *contents = (unsigned long) (regs + 1);
21722 + return 0;
21723 + }
21724 +
21725 + for (i=0; i<nkdbreglist; i++) {
21726 + if (strstr(kdbreglist[i].reg_name, regname))
21727 + break;
21728 + }
21729 +
21730 + if (i == nkdbreglist) {
21731 + /* Lets check the rse maybe */
21732 + if (regname[0] == 'r')
21733 + if (show_cur_stack_frame(simple_strtoul(regname+1, NULL, 0), contents))
21734 + return 0 ;
21735 + return KDB_BADREG;
21736 + }
21737 +
21738 + *contents = *(unsigned long *)((unsigned long)regs +
21739 + kdbreglist[i].reg_offset);
21740 +
21741 + return 0;
21742 +}
21743 +
21744 +/*
21745 + * kdba_setregcontents
21746 + *
21747 + * Set the contents of the register specified by the
21748 + * input string argument. Return an error if the string
21749 + * does not match a machine register.
21750 + *
21751 + * Supports modification of user-mode registers via
21752 + * %<register-name>
21753 + *
21754 + * Parameters:
21755 + * regname Pointer to string naming register
21756 + * regs Pointer to structure containing registers.
21757 + * contents Unsigned long containing new register contents
21758 + * Outputs:
21759 + * Returns:
21760 + * 0 Success
21761 + * KDB_BADREG Invalid register name
21762 + * Locking:
21763 + * None.
21764 + * Remarks:
21765 + */
21766 +
21767 +int
21768 +kdba_setregcontents(const char *regname,
21769 + struct pt_regs *regs,
21770 + unsigned long contents)
21771 +{
21772 + int i, ret = 0, fixed = 0;
21773 + char *endp;
21774 + unsigned long regno;
21775 +
21776 + if (regname[0] == '%') {
21777 + regname++;
21778 + regs = (struct pt_regs *)
21779 + (kdb_current_task->thread.ksp - sizeof(struct pt_regs));
21780 + }
21781 +
21782 + if (!regs) {
21783 + kdb_printf("%s: pt_regs not available, use bt* or pid to select a different task\n", __FUNCTION__);
21784 + return KDB_BADREG;
21785 + }
21786 +
21787 + /* fixed registers */
21788 + for (i=0; i<nkdbreglist; i++) {
21789 + if (strnicmp(kdbreglist[i].reg_name,
21790 + regname,
21791 + strlen(regname)) == 0) {
21792 + fixed = 1;
21793 + break;
21794 + }
21795 + }
21796 +
21797 + /* stacked registers */
21798 + if (!fixed) {
21799 + regno = (simple_strtoul(&regname[1], &endp, 10));
21800 + if ((regname[0] == 'r') && regno > (unsigned long)31) {
21801 + ret = change_cur_stack_frame(regno, &contents);
21802 + if(!ret) return 0;
21803 + }
21804 + }
21805 +
21806 + if ((i == nkdbreglist)
21807 + || (strlen(kdbreglist[i].reg_name) != strlen(regname))
21808 + || ret) {
21809 + return KDB_BADREG;
21810 + }
21811 +
21812 + /* just in case of "standard" register */
21813 + *(unsigned long *)((unsigned long)regs + kdbreglist[i].reg_offset) =
21814 + contents;
21815 +
21816 + return 0;
21817 +}
21818 +
21819 +/*
21820 + * kdba_dumpregs
21821 + *
21822 + * Dump the specified register set to the display.
21823 + *
21824 + * Parameters:
21825 + * regs Pointer to structure containing registers.
21826 + * type Character string identifying register set to dump
21827 + * extra string further identifying register (optional)
21828 + * Outputs:
21829 + * Returns:
21830 + * 0 Success
21831 + * Locking:
21832 + * None.
21833 + * Remarks:
21834 + * This function will dump the general register set if the type
21835 + * argument is NULL (struct pt_regs). The alternate register
21836 + * set types supported by this function:
21837 + *
21838 + * d Debug registers
21839 + * c Control registers
21840 + * u User registers at most recent entry to kernel
21841 + * i Interrupt registers -- same as "irr" command
21842 + * Following not yet implemented:
21843 + * m Model Specific Registers (extra defines register #)
21844 + * r Memory Type Range Registers (extra defines register)
21845 + *
21846 + * For now, all registers are covered as follows:
21847 + *
21848 + * rd - dumps all regs
21849 + * rd %isr - current interrupt status reg, read freshly
21850 + * rd s - valid stacked regs
21851 + * rd %sstk - gets switch stack addr. dump memory and search
21852 + * rd d - debug regs, may not be too useful
21853 + * rd k - dump kernel regs
21854 + *
21855 + * ARs TB Done
21856 + * OTHERS TB Decided ??
21857 + *
21858 + * Intel wish list
21859 + * These will be implemented later - Srinivasa
21860 + *
21861 + * type action
21862 + * ---- ------
21863 + * g dump all General static registers
21864 + * s dump all general Stacked registers
21865 + * f dump all Floating Point registers
21866 + * p dump all Predicate registers
21867 + * b dump all Branch registers
21868 + * a dump all Application registers
21869 + * c dump all Control registers
21870 + *
21871 + */
21872 +
21873 +int
21874 +kdba_dumpregs(struct pt_regs *regs,
21875 + const char *type,
21876 + const char *extra)
21877 +
21878 +{
21879 + int i;
21880 + int count = 0;
21881 +
21882 + if (type
21883 + && (type[0] == 'u')) {
21884 + type = NULL;
21885 + regs = (struct pt_regs *)
21886 + (kdb_current_task->thread.ksp - sizeof(struct pt_regs));
21887 + }
21888 +
21889 + if (type == NULL) {
21890 + if (!regs) {
21891 + kdb_printf("%s: pt_regs not available, use bt* or pid to select a different task\n", __FUNCTION__);
21892 + return KDB_BADREG;
21893 + }
21894 + for (i=0; i<nkdbreglist; i++) {
21895 + kdb_printf("%4s: 0x%16.16lx ",
21896 + kdbreglist[i].reg_name,
21897 + *(unsigned long *)((unsigned long)regs +
21898 + kdbreglist[i].reg_offset));
21899 +
21900 + if ((++count % 3) == 0)
21901 + kdb_printf("\n");
21902 + }
21903 +
21904 + kdb_printf("&regs = %p\n", (void *)regs);
21905 +
21906 + return 0;
21907 + }
21908 +
21909 + switch (type[0]) {
21910 + case 'd':
21911 + {
21912 + for(i=0; i<8; i+=2) {
21913 + kdb_printf("idr%d: 0x%16.16lx idr%d: 0x%16.16lx\n", i,
21914 + kdba_getdr(i), i+1, kdba_getdr(i+1));
21915 +
21916 + }
21917 + return 0;
21918 + }
21919 + case 'i':
21920 + kdba_show_intregs();
21921 + break;
21922 + case 'k':
21923 + show_kernel_regs();
21924 + break;
21925 + case 'm':
21926 + break;
21927 + case 'r':
21928 + break;
21929 +
21930 + case 's':
21931 + {
21932 + if (!regs) {
21933 + kdb_printf("%s: pt_regs not available, use bt* or pid to select a different task\n", __FUNCTION__);
21934 + return KDB_BADREG;
21935 + }
21936 + show_cur_stack_frame(0, NULL) ;
21937 +
21938 + return 0 ;
21939 + }
21940 +
21941 + case '%':
21942 + {
21943 + unsigned long contents ;
21944 +
21945 + if (!kdba_getregcontents(type+1, regs, &contents))
21946 + kdb_printf("%s = 0x%16.16lx\n", type+1, contents) ;
21947 + else
21948 + kdb_printf("diag: Invalid register %s\n", type+1) ;
21949 +
21950 + return 0 ;
21951 + }
21952 +
21953 + default:
21954 + return KDB_BADREG;
21955 + }
21956 +
21957 + /* NOTREACHED */
21958 + return 0;
21959 +}
21960 +EXPORT_SYMBOL(kdba_dumpregs);
21961 +
21962 +kdb_machreg_t
21963 +kdba_getpc(struct pt_regs *regs)
21964 +{
21965 + return regs ? regs->cr_iip + ia64_psr(regs)->ri : 0;
21966 +}
21967 +
21968 +int
21969 +kdba_setpc(struct pt_regs *regs, kdb_machreg_t newpc)
21970 +{
21971 + if (KDB_NULL_REGS(regs))
21972 + return KDB_BADREG;
21973 + regs->cr_iip = newpc & ~0xf;
21974 + ia64_psr(regs)->ri = newpc & 0x3;
21975 + KDB_STATE_SET(IP_ADJUSTED);
21976 + return 0;
21977 +}
21978 +
21979 +struct kdba_main_loop_data {
21980 + kdb_reason_t reason;
21981 + kdb_reason_t reason2;
21982 + int error;
21983 + kdb_dbtrap_t db_result;
21984 + struct pt_regs *regs;
21985 + int ret;
21986 +};
21987 +
21988 +/*
21989 + * do_kdba_main_loop
21990 + *
21991 + * Invoked from kdba_main_loop via unw_init_running() after that routine
21992 + * has pushed a struct switch_stack.
21993 + *
21994 + * Inputs:
21995 + * info Unwind information.
21996 + * data kdb data passed as void * to unw_init_running.
21997 + * Returns:
21998 + * none (unw_init_running requires void). vdata->ret is set to
21999 + * 0 KDB was invoked for an event which it wasn't responsible
22000 + * 1 KDB handled the event for which it was invoked.
22001 + * Outputs:
22002 + * none
22003 + * Locking:
22004 + * None.
22005 + * Remarks:
22006 + * unw_init_running() creates struct switch_stack then struct
22007 + * unw_frame_info. We get the address of the info so step over
22008 + * that to get switch_stack. Just hope that unw_init_running
22009 + * does not change its stack usage. unw_init_running adds padding
22010 + * to put switch_stack on a 16 byte boundary.
22011 + */
22012 +
22013 +static void
22014 +do_kdba_main_loop(struct unw_frame_info *info, void *vdata)
22015 +{
22016 + struct kdba_main_loop_data *data = vdata;
22017 + struct switch_stack *sw, *prev_sw;
22018 + struct pt_regs *prev_regs;
22019 + struct kdb_running_process *krp =
22020 + kdb_running_process + smp_processor_id();
22021 + KDB_DEBUG_STATE(__FUNCTION__, data->reason);
22022 + prev_sw = krp->arch.sw;
22023 + sw = (struct switch_stack *)(info+1);
22024 + /* padding from unw_init_running */
22025 + sw = (struct switch_stack *)(((unsigned long)sw + 15) & ~15);
22026 + krp->arch.sw = sw;
22027 + prev_regs = krp->regs;
22028 + data->ret = kdb_save_running(data->regs, data->reason, data->reason2,
22029 + data->error, data->db_result);
22030 + kdb_unsave_running(data->regs);
22031 + krp->regs = prev_regs;
22032 + krp->arch.sw = prev_sw;
22033 +}
22034 +
22035 +/*
22036 + * kdba_main_loop
22037 + *
22038 + * Do any architecture specific set up before entering the main kdb loop.
22039 + * The primary function of this routine is to make all processes look the
22040 + * same to kdb, kdb must be able to list a process without worrying if the
22041 + * process is running or blocked, so make all processes look as though they
22042 + * are blocked.
22043 + *
22044 + * Inputs:
22045 + * reason The reason KDB was invoked
22046 + * error The hardware-defined error code
22047 + * error2 kdb's current reason code. Initially error but can change
22048 + * acording to kdb state.
22049 + * db_result Result from break or debug point.
22050 + * regs The exception frame at time of fault/breakpoint. If reason
22051 + * is SILENT or CPU_UP then regs is NULL, otherwise it should
22052 + * always be valid.
22053 + * Returns:
22054 + * 0 KDB was invoked for an event which it wasn't responsible
22055 + * 1 KDB handled the event for which it was invoked.
22056 + * Outputs:
22057 + * Builds a switch_stack structure before calling the main loop.
22058 + * Locking:
22059 + * None.
22060 + * Remarks:
22061 + * none.
22062 + */
22063 +
22064 +int
22065 +kdba_main_loop(kdb_reason_t reason, kdb_reason_t reason2, int error,
22066 + kdb_dbtrap_t db_result, struct pt_regs *regs)
22067 +{
22068 + struct kdba_main_loop_data data;
22069 + KDB_DEBUG_STATE("kdba_main_loop", reason);
22070 + data.reason = reason;
22071 + data.reason2 = reason2;
22072 + data.error = error;
22073 + data.db_result = db_result;
22074 + data.regs = regs;
22075 + unw_init_running(do_kdba_main_loop, &data);
22076 + return(data.ret);
22077 +}
22078 +
22079 +void
22080 +kdba_disableint(kdb_intstate_t *state)
22081 +{
22082 + unsigned long *fp = (unsigned long *)state;
22083 + unsigned long flags;
22084 +
22085 + local_irq_save(flags);
22086 + *fp = flags;
22087 +}
22088 +
22089 +void
22090 +kdba_restoreint(kdb_intstate_t *state)
22091 +{
22092 + unsigned long flags = *(unsigned long *)state;
22093 + local_irq_restore(flags);
22094 +}
22095 +
22096 +void
22097 +kdba_setsinglestep(struct pt_regs *regs)
22098 +{
22099 + if (KDB_NULL_REGS(regs))
22100 + return;
22101 + ia64_psr(regs)->ss = 1;
22102 +}
22103 +
22104 +void
22105 +kdba_clearsinglestep(struct pt_regs *regs)
22106 +{
22107 + if (KDB_NULL_REGS(regs))
22108 + return;
22109 + ia64_psr(regs)->ss = 0;
22110 +}
22111 +
22112 +/*
22113 + * kdb_tpa
22114 + *
22115 + * Virtual to Physical address translation command.
22116 + *
22117 + * tpa <addr>
22118 + *
22119 + * Parameters:
22120 + * argc Count of arguments in argv
22121 + * argv Space delimited command line arguments
22122 + * Outputs:
22123 + * None.
22124 + * Returns:
22125 + * Zero for success, a kdb diagnostic if failure.
22126 + * Locking:
22127 + * None.
22128 + * Remarks:
22129 + */
22130 +#define __xtpa(x) ({ia64_va _v; asm("tpa %0=%1" : "=r"(_v.l) : "r"(x)); _v.l;})
22131 +static int
22132 +kdba_tpa(int argc, const char **argv)
22133 +{
22134 + kdb_machreg_t addr;
22135 + int diag;
22136 + long offset = 0;
22137 + int nextarg;
22138 + char c;
22139 +
22140 + nextarg = 1;
22141 + if (argc != 1)
22142 + return KDB_ARGCOUNT;
22143 + diag = kdbgetaddrarg(argc, argv, &nextarg, &addr, &offset, NULL);
22144 + if (diag)
22145 + return diag;
22146 + if (kdb_getarea(c, addr))
22147 + return(0);
22148 + kdb_printf("vaddr: 0x%lx , paddr: 0x%lx\n", addr, __xtpa(addr));
22149 + return(0);
22150 +}
22151 +#if defined(CONFIG_NUMA)
22152 +static int
22153 +kdba_tpav(int argc, const char **argv)
22154 +{
22155 + kdb_machreg_t addr, end, paddr;
22156 + int diag;
22157 + long offset = 0;
22158 + int nextarg, nid, nid_old;
22159 + char c;
22160 +
22161 + nextarg = 1;
22162 + if (argc != 2)
22163 + return KDB_ARGCOUNT;
22164 + diag = kdbgetaddrarg(argc, argv, &nextarg, &addr, &offset, NULL);
22165 + if (diag)
22166 + return diag;
22167 + diag = kdbgetaddrarg(argc, argv, &nextarg, &end, &offset, NULL);
22168 + if (diag)
22169 + return diag;
22170 + if (kdb_getarea(c, addr))
22171 + return(0);
22172 + if (kdb_getarea(c, end))
22173 + return(0);
22174 + paddr=__xtpa(addr);
22175 + nid = paddr_to_nid(paddr);
22176 + kdb_printf("begin: 0x%lx , paddr: 0x%lx , nid: %d\n", addr, __xtpa(addr), nid);
22177 + for(;addr<end; addr += PAGE_SIZE) {
22178 + nid_old=nid;
22179 + paddr =__xtpa(addr);
22180 + nid = paddr_to_nid(paddr);
22181 + if (nid != nid_old)
22182 + kdb_printf("NOT on same NODE: addr: 0x%lx , paddr: 0x%lx , nid: %d\n", addr, paddr, nid);
22183 + }
22184 + paddr=__xtpa(end);
22185 + nid=paddr_to_nid(end);
22186 + kdb_printf("end: 0x%lx , paddr: 0x%lx , nid: %d\n", end, paddr, nid);
22187 + return(0);
22188 +}
22189 +#endif
22190 +
22191 +#if defined(CONFIG_SMP)
22192 +/*
22193 + * kdba_sendinit
22194 + *
22195 + * This function implements the 'init' command.
22196 + *
22197 + * init [<cpunum>]
22198 + *
22199 + * Inputs:
22200 + * argc argument count
22201 + * argv argument vector
22202 + * Outputs:
22203 + * None.
22204 + * Returns:
22205 + * zero for success, a kdb diagnostic if error
22206 + * Locking:
22207 + * none.
22208 + * Remarks:
22209 + */
22210 +
22211 +static int
22212 +kdba_sendinit(int argc, const char **argv)
22213 +{
22214 + unsigned long cpunum;
22215 + int diag;
22216 +
22217 + if (argc != 1)
22218 + return KDB_ARGCOUNT;
22219 +
22220 + diag = kdbgetularg(argv[1], &cpunum);
22221 + if (diag)
22222 + return diag;
22223 +
22224 + if (cpunum >= NR_CPUS || !cpu_online(cpunum))
22225 + return KDB_BADCPUNUM;
22226 +
22227 + platform_send_ipi(cpunum, 0, IA64_IPI_DM_INIT, 0);
22228 + return 0;
22229 +}
22230 +
22231 +/* Invoked once from kdb_wait_for_cpus when waiting for cpus. For those cpus
22232 + * that have not responded to the normal KDB interrupt yet, hit them with an
22233 + * INIT event.
22234 + */
22235 +void
22236 +kdba_wait_for_cpus(void)
22237 +{
22238 + int c;
22239 + if (KDB_FLAG(CATASTROPHIC))
22240 + return;
22241 + kdb_printf(" Sending INIT to cpus that have not responded yet\n");
22242 + for_each_online_cpu(c)
22243 + if (kdb_running_process[c].seqno < kdb_seqno - 1)
22244 + platform_send_ipi(c, 0, IA64_IPI_DM_INIT, 0);
22245 +}
22246 +
22247 +#endif /* CONFIG_SMP */
22248 +
22249 +/* This code is sensitive to the layout of the MCA/INIT stack (see mca_asm.h)
22250 + * and to the stack layout that ia64_mca_modify_original_stack() creates when
22251 + * it makes the original task look blocked.
22252 + */
22253 +static void
22254 +kdba_handlers_modify(struct task_struct *task, int cpu)
22255 +{
22256 + struct kdb_running_process *work, *save;
22257 + work = kdb_running_process + cpu;
22258 + save = kdb_running_process_save + cpu;
22259 + *work = *save;
22260 + if (!kdba_show_handlers && REGION_NUMBER(task) >= RGN_GATE &&
22261 + (task_thread_info(task)->flags & _TIF_MCA_INIT)) {
22262 + struct ia64_sal_os_state *sos = (struct ia64_sal_os_state *)
22263 + ((unsigned long)save->p + MCA_SOS_OFFSET);
22264 + char *p;
22265 + if (!sos->prev_task)
22266 + return;
22267 + work->p = sos->prev_task;
22268 + p = (char *)sos->prev_task->thread.ksp;
22269 + p += 16;
22270 + work->arch.sw = (struct switch_stack *)p;
22271 + p += sizeof(struct switch_stack);
22272 + work->regs = (struct pt_regs *)p;
22273 + work->irq_depth = 2; /* any value >1 will do */
22274 + }
22275 +}
22276 +
22277 +/* Turn the display of the MCA/INIT handlers on or off, or display the status
22278 + * of the MCA/INIT handlers.
22279 + */
22280 +static int
22281 +kdba_handlers(int argc, const char **argv)
22282 +{
22283 + int cpu;
22284 + struct kdb_running_process *krp;
22285 + if (argc != 1)
22286 + return KDB_ARGCOUNT;
22287 + if (strcmp(argv[1], "show") == 0)
22288 + kdba_show_handlers = 1;
22289 + else if (strcmp(argv[1], "hide") == 0)
22290 + kdba_show_handlers = 0;
22291 + else if (strcmp(argv[1], "status") != 0) {
22292 + kdb_printf("handlers <show|hide|status>\n");
22293 + return 0;
22294 + }
22295 + for (cpu = 0, krp = kdb_running_process_save; cpu < NR_CPUS; ++cpu, ++krp) {
22296 + if (krp->p)
22297 + kdba_handlers_modify(krp->p, cpu);
22298 + }
22299 + if (strcmp(argv[1], "status") != 0)
22300 + return 0;
22301 + kdb_printf("handlers status is %s\n", kdba_show_handlers ? "'show'" : "'hide'");
22302 + kdb_printf(" cpu handler task command original task command\n");
22303 + for (cpu = 0, krp = kdb_running_process_save; cpu < NR_CPUS; ++cpu, ++krp) {
22304 + struct task_struct *p = krp->p;
22305 + if (!p)
22306 + continue;
22307 + kdb_printf("%4d", cpu);
22308 + if (task_thread_info(p)->flags & _TIF_MCA_INIT) {
22309 + struct ia64_sal_os_state *sos;
22310 + kdb_printf(" " kdb_machreg_fmt0 " %-*s ",
22311 + (unsigned long)p, (int)sizeof(p->comm), p->comm);
22312 + sos = (struct ia64_sal_os_state *)((unsigned long)p + MCA_SOS_OFFSET);
22313 + p = sos->prev_task;
22314 + } else
22315 + kdb_printf("%*s", (int)(1+2+16+1+sizeof(p->comm)+2), " ");
22316 + if (p)
22317 + kdb_printf(" " kdb_machreg_fmt0 " %-*s",
22318 + (unsigned long)p, (int)sizeof(p->comm), p->comm);
22319 + kdb_printf("\n");
22320 + }
22321 + return 0;
22322 +}
22323 +
22324 +/* Executed once on each cpu at startup. */
22325 +void
22326 +kdba_cpu_up(void)
22327 +{
22328 +}
22329 +
22330 +/*
22331 + * kdba_init
22332 + *
22333 + * Architecture specific initialization.
22334 + *
22335 + * Parameters:
22336 + * None.
22337 + * Returns:
22338 + * None.
22339 + * Locking:
22340 + * None.
22341 + * Remarks:
22342 + * None.
22343 + */
22344 +
22345 +void
22346 +kdba_init(void)
22347 +{
22348 + kdb_running_process_save = kzalloc(
22349 + sizeof(*kdb_running_process_save) * NR_CPUS, GFP_KERNEL);
22350 + BUG_ON(!kdb_running_process_save);
22351 + kdb_register("irr", kdba_sir, "", "Show interrupt registers", 0);
22352 + kdb_register("itm", kdba_itm, "", "Set new ITM value", 0);
22353 +#if defined(CONFIG_SMP)
22354 + kdb_register("init", kdba_sendinit, "", "Send INIT to cpu", 0);
22355 +#endif
22356 + kdb_register("pt_regs", kdba_pt_regs, "address", "Format struct pt_regs", 0);
22357 + kdb_register("switch_stack", kdba_switch_stack, "address", "Format struct switch_stack", 0);
22358 + kdb_register("minstate", kdba_minstate, "address", "Format PAL minstate", 0);
22359 + kdb_register("tpa", kdba_tpa, "<vaddr>", "Translate virtual to physical address", 0);
22360 +#if defined(CONFIG_NUMA)
22361 + kdb_register("tpav", kdba_tpav, "<begin addr> <end addr>", "Verify that physical addresses corresponding to virtual addresses from <begin addr> to <end addr> are in same node", 0);
22362 +#endif
22363 + kdb_register("stackdepth", kdba_stackdepth, "[percentage]", "Print processes using >= stack percentage", 0);
22364 + kdb_register("cpuinfo", kdba_cpuinfo, "[cpu]", "Print struct cpuinfo_ia64", 0);
22365 + kdb_register("handlers", kdba_handlers, "<show|hide|status>", "Control the display of MCA/INIT handlers", 0);
22366 +
22367 +#ifdef CONFIG_SERIAL_8250_CONSOLE
22368 + kdba_serial_console = KDBA_SC_STANDARD;
22369 +#endif
22370 +#ifdef CONFIG_SERIAL_SGI_L1_CONSOLE
22371 + if (ia64_platform_is("sn2"))
22372 + kdba_serial_console = KDBA_SC_SGI_L1;
22373 +#endif
22374 + return;
22375 +}
22376 +
22377 +/*
22378 + * kdba_adjust_ip
22379 + *
22380 + * Architecture specific adjustment of instruction pointer before leaving
22381 + * kdb.
22382 + *
22383 + * Parameters:
22384 + * reason The reason KDB was invoked
22385 + * error The hardware-defined error code
22386 + * regs The exception frame at time of fault/breakpoint. If reason
22387 + * is SILENT or CPU_UP then regs is NULL, otherwise it should
22388 + * always be valid.
22389 + * Returns:
22390 + * None.
22391 + * Locking:
22392 + * None.
22393 + * Remarks:
22394 + * On IA64, KDB_ENTER() and KDB_ENTER_SLAVE() use break which is a fault,
22395 + * not a trap. The instruction pointer must be stepped before leaving
22396 + * kdb, otherwise we get a loop.
22397 + */
22398 +
22399 +void
22400 +kdba_adjust_ip(kdb_reason_t reason, int error, struct pt_regs *regs)
22401 +{
22402 + if ((reason == KDB_REASON_ENTER || reason == KDB_REASON_ENTER_SLAVE) &&
22403 + !KDB_STATE(IP_ADJUSTED)) {
22404 + if (KDB_NULL_REGS(regs))
22405 + return;
22406 + if (ia64_psr(regs)->ri < 2)
22407 + kdba_setpc(regs, regs->cr_iip + ia64_psr(regs)->ri + 1);
22408 + else
22409 + kdba_setpc(regs, regs->cr_iip + 16);
22410 + }
22411 +}
22412 +
22413 +void
22414 +kdba_save_running(struct kdba_running_process *k, struct pt_regs *regs)
22415 +{
22416 + struct kdb_running_process *work, *save;
22417 + int cpu = smp_processor_id();
22418 + work = kdb_running_process + cpu;
22419 + save = kdb_running_process_save + cpu;
22420 + *save = *work;
22421 + if (!regs)
22422 + return;
22423 + kdba_handlers_modify((struct task_struct *)regs->r13, cpu);
22424 +}
22425 +
22426 +void
22427 +kdba_unsave_running(struct kdba_running_process *k, struct pt_regs *regs)
22428 +{
22429 + memset(kdb_running_process_save + smp_processor_id(), 0,
22430 + sizeof(*kdb_running_process_save));
22431 +}
22432 +
22433 +void
22434 +kdba_set_current_task(const struct task_struct *p)
22435 +{
22436 + int cpu = kdb_process_cpu(p);
22437 + struct kdb_running_process *work, *save;
22438 + work = kdb_running_process + cpu;
22439 + save = kdb_running_process_save + cpu;
22440 + kdb_current_task = p;
22441 + if (kdb_task_has_cpu(p)) {
22442 + kdb_current_regs = work->regs;
22443 + return;
22444 + }
22445 + kdb_current_regs = NULL;
22446 + /* For most blocked tasks we cannot get the pt_regs without doing an
22447 + * unwind, which is not worth doing. For tasks interrupted by
22448 + * MCA/INIT, when the user is not working on the handlers, we must use
22449 + * the registers at the time of interrupt.
22450 + */
22451 + if (work->p == save->p || work->p != p)
22452 + return;
22453 + kdb_current_regs = (struct pt_regs *)(work->p->thread.ksp + 16 +
22454 + sizeof(struct switch_stack));
22455 +}
22456 +
22457 +/*
22458 + * asm-ia64 uaccess.h supplies __copy_to_user which relies on MMU to
22459 + * trap invalid addresses in the _xxx fields. Verify the other address
22460 + * of the pair is valid by accessing the first and last byte ourselves,
22461 + * then any access violations should only be caused by the _xxx
22462 + * addresses,
22463 + */
22464 +
22465 +int
22466 +kdba_putarea_size(unsigned long to_xxx, void *from, size_t size)
22467 +{
22468 + mm_segment_t oldfs = get_fs();
22469 + int r;
22470 + char c;
22471 + c = *((volatile char *)from);
22472 + c = *((volatile char *)from + size - 1);
22473 +
22474 + if (to_xxx >> 61 <= 4) {
22475 + return kdb_putuserarea_size(to_xxx, from, size);
22476 + }
22477 +
22478 + set_fs(KERNEL_DS);
22479 + r = __copy_to_user_inatomic((void __user *)to_xxx, from, size);
22480 + set_fs(oldfs);
22481 + return r;
22482 +}
22483 +
22484 +int
22485 +kdba_getarea_size(void *to, unsigned long from_xxx, size_t size)
22486 +{
22487 + mm_segment_t oldfs = get_fs();
22488 + int r;
22489 + *((volatile char *)to) = '\0';
22490 + *((volatile char *)to + size - 1) = '\0';
22491 +
22492 + if (from_xxx >> 61 <= 4)
22493 + return kdb_getuserarea_size(to, from_xxx, size);
22494 +
22495 + set_fs(KERNEL_DS);
22496 + switch (size) {
22497 + case 1:
22498 + r = __copy_to_user_inatomic((void __user *)to, (void *)from_xxx, 1);
22499 + break;
22500 + case 2:
22501 + r = __copy_to_user_inatomic((void __user *)to, (void *)from_xxx, 2);
22502 + break;
22503 + case 4:
22504 + r = __copy_to_user_inatomic((void __user *)to, (void *)from_xxx, 4);
22505 + break;
22506 + case 8:
22507 + r = __copy_to_user_inatomic((void __user *)to, (void *)from_xxx, 8);
22508 + break;
22509 + default:
22510 + r = __copy_to_user_inatomic((void __user *)to, (void *)from_xxx, size);
22511 + break;
22512 + }
22513 + set_fs(oldfs);
22514 + return r;
22515 +}
22516 +
22517 +int
22518 +kdba_verify_rw(unsigned long addr, size_t size)
22519 +{
22520 + unsigned char data[(__force size_t) size];
22521 + return(kdba_getarea_size(data, addr, size) || kdba_putarea_size(addr, data, size));
22522 +}
22523 +
22524 +#ifdef CONFIG_KDB_KDUMP
22525 +void
22526 +kdba_kdump_prepare(struct pt_regs *fixed_regs)
22527 +{
22528 + int i;
22529 +
22530 + /* Set on KEXEC bit on all onlinr cpus */
22531 + for (i = 1; i < NR_CPUS; ++i) {
22532 + if (!cpu_online(i))
22533 + continue;
22534 +
22535 + KDB_STATE_SET_CPU(KEXEC, i);
22536 + }
22537 +
22538 + machine_crash_shutdown(fixed_regs);
22539 +}
22540 +
22541 +void kdba_kdump_shutdown_slave(struct pt_regs *regs)
22542 +{
22543 + if (kdb_kdump_state != KDB_KDUMP_RESET) {
22544 + unw_init_running(kdump_cpu_freeze, NULL);
22545 + }
22546 +}
22547 +#endif
22548 --- a/arch/ia64/kernel/head.S
22549 +++ b/arch/ia64/kernel/head.S
22550 @@ -259,8 +259,13 @@ start_ap:
22551 /*
22552 * Switch into virtual mode:
22553 */
22554 +#ifdef CONFIG_KDB_HARDWARE_BREAKPOINTS
22555 +#define IA64_PSR_KDB_FLAGS IA64_PSR_DB
22556 +#else
22557 +#define IA64_PSR_KDB_FLAGS 0
22558 +#endif
22559 movl r16=(IA64_PSR_IT|IA64_PSR_IC|IA64_PSR_DT|IA64_PSR_RT|IA64_PSR_DFH|IA64_PSR_BN \
22560 - |IA64_PSR_DI)
22561 + |IA64_PSR_DI|IA64_PSR_KDB_FLAGS)
22562 ;;
22563 mov cr.ipsr=r16
22564 movl r17=1f
22565 --- a/arch/ia64/kernel/mca.c
22566 +++ b/arch/ia64/kernel/mca.c
22567 @@ -88,6 +88,10 @@
22568 #include <linux/cpumask.h>
22569 #include <linux/kdebug.h>
22570 #include <linux/cpu.h>
22571 +#ifdef CONFIG_KDB
22572 +#include <linux/kdb.h>
22573 +#include <linux/kdbprivate.h> /* for switch state wrappers */
22574 +#endif /* CONFIG_KDB */
22575
22576 #include <asm/delay.h>
22577 #include <asm/machvec.h>
22578 @@ -824,6 +828,14 @@ ia64_mca_rendez_int_handler(int rendez_i
22579 */
22580 ia64_sal_mc_rendez();
22581
22582 +#ifdef CONFIG_KDB
22583 + /* We get here when the MCA monarch has entered and has woken up the
22584 + * slaves. Do a KDB rendezvous to meet the monarch cpu.
22585 + */
22586 + if (monarch_cpu != -1)
22587 + KDB_ENTER_SLAVE();
22588 +#endif
22589 +
22590 NOTIFY_MCA(DIE_MCA_RENDZVOUS_PROCESS, get_irq_regs(), (long)&nd, 1);
22591
22592 /* Wait for the monarch cpu to exit. */
22593 @@ -1361,6 +1373,19 @@ ia64_mca_handler(struct pt_regs *regs, s
22594 mca_insert_tr(0x2); /*Reload dynamic itrs*/
22595 }
22596
22597 +#ifdef CONFIG_KDB
22598 + kdb_save_flags();
22599 + KDB_FLAG_CLEAR(CATASTROPHIC);
22600 + KDB_FLAG_CLEAR(RECOVERY);
22601 + if (recover)
22602 + KDB_FLAG_SET(RECOVERY);
22603 + else
22604 + KDB_FLAG_SET(CATASTROPHIC);
22605 + KDB_FLAG_SET(NOIPI); /* do not send IPI for MCA/INIT events */
22606 + KDB_ENTER();
22607 + kdb_restore_flags();
22608 +#endif /* CONFIG_KDB */
22609 +
22610 NOTIFY_MCA(DIE_MCA_MONARCH_LEAVE, regs, (long)&nd, 1);
22611
22612 if (atomic_dec_return(&mca_count) > 0) {
22613 @@ -1373,6 +1398,12 @@ ia64_mca_handler(struct pt_regs *regs, s
22614 if (cpu_isset(i, mca_cpu)) {
22615 monarch_cpu = i;
22616 cpu_clear(i, mca_cpu); /* wake next cpu */
22617 +#ifdef CONFIG_KDB
22618 + /*
22619 + * No longer a monarch, report in as a slave.
22620 + */
22621 + KDB_ENTER_SLAVE();
22622 +#endif
22623 while (monarch_cpu != -1)
22624 cpu_relax(); /* spin until last cpu leaves */
22625 set_curr_task(cpu, previous_current);
22626 @@ -1382,6 +1413,7 @@ ia64_mca_handler(struct pt_regs *regs, s
22627 }
22628 }
22629 }
22630 +
22631 set_curr_task(cpu, previous_current);
22632 ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_NOTDONE;
22633 monarch_cpu = -1; /* This frees the slaves and previous monarchs */
22634 @@ -1642,6 +1674,11 @@ default_monarch_init_process(struct noti
22635 }
22636 }
22637 printk("\n\n");
22638 +#ifdef CONFIG_KDB
22639 + KDB_FLAG_SET(NOIPI); /* do not send IPI for MCA/INIT events */
22640 + KDB_ENTER();
22641 + KDB_FLAG_CLEAR(NOIPI);
22642 +#else /* !CONFIG_KDB */
22643 if (read_trylock(&tasklist_lock)) {
22644 do_each_thread (g, t) {
22645 printk("\nBacktrace of pid %d (%s)\n", t->pid, t->comm);
22646 @@ -1649,6 +1686,7 @@ default_monarch_init_process(struct noti
22647 } while_each_thread (g, t);
22648 read_unlock(&tasklist_lock);
22649 }
22650 +#endif /* CONFIG_KDB */
22651 /* FIXME: This will not restore zapped printk locks. */
22652 RESTORE_LOGLEVEL(console_loglevel);
22653 return NOTIFY_DONE;
22654 @@ -1681,6 +1719,20 @@ ia64_init_handler(struct pt_regs *regs,
22655 int cpu = smp_processor_id();
22656 struct ia64_mca_notify_die nd =
22657 { .sos = sos, .monarch_cpu = &monarch_cpu };
22658 +#ifdef CONFIG_KDB
22659 + int kdba_recalcitrant = 0;
22660 + /* kdba_wait_for_cpus() sends INIT to recalcitrant cpus which ends up
22661 + * calling this routine. If KDB is waiting for the IPI to be processed
22662 + * then treat all INIT events as slaves, kdb_initial_cpu is the
22663 + * monarch.
22664 + */
22665 + if (KDB_STATE(WAIT_IPI)) {
22666 + monarch_cpu = kdb_initial_cpu;
22667 + sos->monarch = 0;
22668 + KDB_STATE_CLEAR(WAIT_IPI);
22669 + kdba_recalcitrant = 1;
22670 + }
22671 +#endif /* CONFIG_KDB */
22672
22673 NOTIFY_INIT(DIE_INIT_ENTER, regs, (long)&nd, 0);
22674
22675 @@ -1719,6 +1771,11 @@ ia64_init_handler(struct pt_regs *regs,
22676 ia64_mc_info.imi_rendez_checkin[cpu] = IA64_MCA_RENDEZ_CHECKIN_INIT;
22677 while (monarch_cpu == -1)
22678 cpu_relax(); /* spin until monarch enters */
22679 +#ifdef CONFIG_KDB
22680 + KDB_ENTER_SLAVE();
22681 + if (kdba_recalcitrant)
22682 + monarch_cpu = -1;
22683 +#endif /* CONFIG_KDB */
22684
22685 NOTIFY_INIT(DIE_INIT_SLAVE_ENTER, regs, (long)&nd, 1);
22686 NOTIFY_INIT(DIE_INIT_SLAVE_PROCESS, regs, (long)&nd, 1);
22687 @@ -1747,6 +1804,14 @@ ia64_init_handler(struct pt_regs *regs,
22688 mprintk("Delaying for 5 seconds...\n");
22689 udelay(5*1000000);
22690 ia64_wait_for_slaves(cpu, "INIT");
22691 +
22692 +#ifdef CONFIG_KDB
22693 + kdb_save_flags();
22694 + KDB_FLAG_SET(NOIPI); /* do not send IPI for MCA/INIT events */
22695 + KDB_ENTER();
22696 + kdb_restore_flags();
22697 +#endif /* CONFIG_KDB */
22698 +
22699 /* If nobody intercepts DIE_INIT_MONARCH_PROCESS then we drop through
22700 * to default_monarch_init_process() above and just print all the
22701 * tasks.
22702 @@ -1985,6 +2050,13 @@ ia64_mca_init(void)
22703 printk(KERN_INFO "Increasing MCA rendezvous timeout from "
22704 "%ld to %ld milliseconds\n", timeout, isrv.v0);
22705 timeout = isrv.v0;
22706 +#ifdef CONFIG_KDB
22707 + /* kdb must wait long enough for the MCA timeout to trip
22708 + * and process. The MCA timeout is in milliseconds.
22709 + */
22710 + kdb_wait_for_cpus_secs = max(kdb_wait_for_cpus_secs,
22711 + (int)(timeout/1000) + 10);
22712 +#endif /* CONFIG_KDB */
22713 NOTIFY_MCA(DIE_MCA_NEW_TIMEOUT, NULL, timeout, 0);
22714 continue;
22715 }
22716 --- a/arch/ia64/kernel/smp.c
22717 +++ b/arch/ia64/kernel/smp.c
22718 @@ -36,6 +36,11 @@
22719 #include <asm/current.h>
22720 #include <asm/delay.h>
22721 #include <asm/machvec.h>
22722 +
22723 +#ifdef CONFIG_KDB
22724 +#include <linux/kdb.h>
22725 +#endif /* CONFIG_KDB */
22726 +
22727 #include <asm/io.h>
22728 #include <asm/irq.h>
22729 #include <asm/page.h>
22730 @@ -64,6 +69,9 @@ static DEFINE_PER_CPU(unsigned short, sh
22731 #define IPI_CPU_STOP 1
22732 #define IPI_CALL_FUNC_SINGLE 2
22733 #define IPI_KDUMP_CPU_STOP 3
22734 +#ifdef CONFIG_KDB
22735 +#define IPI_KDB_INTERRUPT 4
22736 +#endif /* CONFIG_KDB */
22737
22738 /* This needs to be cacheline aligned because it is written to by *other* CPUs. */
22739 static DEFINE_PER_CPU_SHARED_ALIGNED(u64, ipi_operation);
22740 @@ -124,6 +132,12 @@ handle_IPI (int irq, void *dev_id)
22741 unw_init_running(kdump_cpu_freeze, NULL);
22742 break;
22743 #endif
22744 +#ifdef CONFIG_KDB
22745 + case IPI_KDB_INTERRUPT:
22746 + if (!kdb_ipi(get_irq_regs(), NULL))
22747 + printk(KERN_ERR "kdb_ipi() rejected IPI_KDB_INTERRUPT\n");
22748 + break;
22749 +#endif
22750 default:
22751 printk(KERN_CRIT "Unknown IPI on CPU %d: %lu\n",
22752 this_cpu, which);
22753 @@ -332,3 +346,12 @@ setup_profiling_timer (unsigned int mult
22754 {
22755 return -EINVAL;
22756 }
22757 +
22758 +#if defined(CONFIG_KDB)
22759 +void
22760 +smp_kdb_stop(void)
22761 +{
22762 + if (!KDB_FLAG(NOIPI))
22763 + send_IPI_allbutself(IPI_KDB_INTERRUPT);
22764 +}
22765 +#endif /* CONFIG_KDB */
22766 --- a/arch/ia64/kernel/traps.c
22767 +++ b/arch/ia64/kernel/traps.c
22768 @@ -13,6 +13,9 @@
22769 #include <linux/tty.h>
22770 #include <linux/vt_kern.h> /* For unblank_screen() */
22771 #include <linux/module.h> /* for EXPORT_SYMBOL */
22772 +#ifdef CONFIG_KDB
22773 +#include <linux/kdb.h>
22774 +#endif /* CONFIG_KDB */
22775 #include <linux/hardirq.h>
22776 #include <linux/kprobes.h>
22777 #include <linux/delay.h> /* for ssleep() */
22778 @@ -78,6 +81,10 @@ die (const char *str, struct pt_regs *re
22779 if (!regs)
22780 return 1;
22781
22782 +#ifdef CONFIG_KDB
22783 + (void)kdb(KDB_REASON_OOPS, err, regs);
22784 +#endif /* CONFIG_KDB */
22785 +
22786 if (panic_on_oops)
22787 panic("Fatal exception");
22788
22789 @@ -171,6 +178,17 @@ __kprobes ia64_bad_break (unsigned long
22790 if (break_num < 0x80000) {
22791 sig = SIGILL; code = __ILL_BREAK;
22792 } else {
22793 +#ifdef CONFIG_KDB
22794 + if (break_num == KDB_BREAK_ENTER &&
22795 + kdb(KDB_REASON_ENTER, break_num, regs))
22796 + return; /* kdb handled it */
22797 + if (break_num == KDB_BREAK_ENTER_SLAVE &&
22798 + kdb(KDB_REASON_ENTER_SLAVE, break_num, regs))
22799 + return; /* kdb handled it */
22800 + if (break_num == KDB_BREAK_BREAK &&
22801 + kdb(KDB_REASON_BREAK, break_num, regs))
22802 + return; /* kdb handled it */
22803 +#endif /* CONFIG_KDB */
22804 if (notify_die(DIE_BREAK, "bad break", regs, break_num, TRAP_BRKPT, SIGTRAP)
22805 == NOTIFY_STOP)
22806 return;
22807 @@ -565,6 +583,10 @@ ia64_fault (unsigned long vector, unsign
22808 if (notify_die(DIE_FAULT, "ia64_fault", &regs, vector, siginfo.si_code, SIGTRAP)
22809 == NOTIFY_STOP)
22810 return;
22811 +#ifdef CONFIG_KDB
22812 + if (!user_mode(&regs) && kdb(KDB_REASON_DEBUG, vector, &regs))
22813 + return; /* kdb handled this */
22814 +#endif /* CONFIG_KDB */
22815 siginfo.si_signo = SIGTRAP;
22816 siginfo.si_errno = 0;
22817 siginfo.si_addr = (void __user *) ifa;
22818 --- a/arch/ia64/kernel/unwind.c
22819 +++ b/arch/ia64/kernel/unwind.c
22820 @@ -57,14 +57,27 @@
22821
22822 #ifdef UNW_DEBUG
22823 static unsigned int unw_debug_level = UNW_DEBUG;
22824 -# define UNW_DEBUG_ON(n) unw_debug_level >= n
22825 - /* Do not code a printk level, not all debug lines end in newline */
22826 -# define UNW_DPRINT(n, ...) if (UNW_DEBUG_ON(n)) printk(__VA_ARGS__)
22827 +# ifdef CONFIG_KDB
22828 +# include <linux/kdb.h>
22829 +# include <linux/kdbprivate.h>
22830 +# define UNW_KMALLOC(s, f) debug_kmalloc(s, f)
22831 +# define UNW_KFREE(p) debug_kfree(p)
22832 +# define UNW_DEBUG_ON(n) (unw_debug_level >= n && !KDB_IS_RUNNING())
22833 +# define UNW_DPRINT(n, ...) if (UNW_DEBUG_ON(n)) kdb_printf(__VA_ARGS__)
22834 +# else /* !CONFIG_KDB */
22835 +# define UNW_DEBUG_ON(n) unw_debug_level >= n
22836 + /* Do not code a printk level, not all debug lines end in newline */
22837 +# define UNW_DPRINT(n, ...) if (UNW_DEBUG_ON(n)) printk(__VA_ARGS__)
22838 +# define UNW_KMALLOC(s, f) kmalloc(s, f)
22839 +# define UNW_KFREE(p) kfree(p)
22840 +# endif /* CONFIG_KDB */
22841 # undef inline
22842 # define inline
22843 #else /* !UNW_DEBUG */
22844 # define UNW_DEBUG_ON(n) 0
22845 # define UNW_DPRINT(n, ...)
22846 +# define UNW_KMALLOC(s, f) kmalloc(s, f)
22847 +# define UNW_KFREE(p) kfree(p)
22848 #endif /* UNW_DEBUG */
22849
22850 #if UNW_STATS
22851 @@ -73,10 +86,10 @@
22852 # define STAT(x...)
22853 #endif
22854
22855 -#define alloc_reg_state() kmalloc(sizeof(struct unw_reg_state), GFP_ATOMIC)
22856 -#define free_reg_state(usr) kfree(usr)
22857 -#define alloc_labeled_state() kmalloc(sizeof(struct unw_labeled_state), GFP_ATOMIC)
22858 -#define free_labeled_state(usr) kfree(usr)
22859 +#define alloc_reg_state() UNW_KMALLOC(sizeof(struct unw_reg_state), GFP_ATOMIC)
22860 +#define free_reg_state(usr) UNW_KFREE(usr)
22861 +#define alloc_labeled_state() UNW_KMALLOC(sizeof(struct unw_labeled_state), GFP_ATOMIC)
22862 +#define free_labeled_state(usr) UNW_KFREE(usr)
22863
22864 typedef unsigned long unw_word;
22865 typedef unsigned char unw_hash_index_t;
22866 @@ -2092,7 +2105,7 @@ unw_add_unwind_table (const char *name,
22867 return NULL;
22868 }
22869
22870 - table = kmalloc(sizeof(*table), GFP_USER);
22871 + table = UNW_KMALLOC(sizeof(*table), GFP_USER);
22872 if (!table)
22873 return NULL;
22874
22875 @@ -2165,7 +2178,7 @@ unw_remove_unwind_table (void *handle)
22876 write_unlock(&tmp->lock);
22877 }
22878
22879 - kfree(table);
22880 + UNW_KFREE(table);
22881 }
22882
22883 static int __init
22884 @@ -2199,7 +2212,7 @@ create_gate_table (void)
22885 size += 3*8 + 8 + 8*UNW_LENGTH(*(u64 *) (segbase + entry->info_offset));
22886 size += 8; /* reserve space for "end of table" marker */
22887
22888 - unw.gate_table = kmalloc(size, GFP_KERNEL);
22889 + unw.gate_table = UNW_KMALLOC(size, GFP_KERNEL);
22890 if (!unw.gate_table) {
22891 unw.gate_table_size = 0;
22892 printk(KERN_ERR "%s: unable to create unwind data for gate page!\n", __func__);