diff options
author | Niklas Hallqvist <niklas@cvs.openbsd.org> | 1996-11-28 23:28:18 +0000 |
---|---|---|
committer | Niklas Hallqvist <niklas@cvs.openbsd.org> | 1996-11-28 23:28:18 +0000 |
commit | 1c7998136960f5cd78adc56dff1c8f9352da3445 (patch) | |
tree | 6b334b57971c98fdbe305b8359ae1097b753f699 /sys/dev/microcode | |
parent | 1044779b3ae9b633aece0922893e08ff6efc74c0 (diff) |
Adaption to new bus.h from NetBSD. Various driver has been updated to
NetBSD 961107 state. Other has not, partly because sometimes the bus.h
changes was coupled with other changes.
Diffstat (limited to 'sys/dev/microcode')
-rw-r--r-- | sys/dev/microcode/aic7xxx/Makefile.inc | 1 | ||||
-rw-r--r-- | sys/dev/microcode/aic7xxx/aic7xxx.seq | 200 | ||||
-rw-r--r-- | sys/dev/microcode/aic7xxx/aic7xxx_asm.1 | 2 | ||||
-rw-r--r-- | sys/dev/microcode/aic7xxx/aic7xxx_asm.c | 4 | ||||
-rw-r--r-- | sys/dev/microcode/aic7xxx/aic7xxx_seq.h | 388 |
5 files changed, 454 insertions, 141 deletions
diff --git a/sys/dev/microcode/aic7xxx/Makefile.inc b/sys/dev/microcode/aic7xxx/Makefile.inc index e11e5e06e3f..7e89b517581 100644 --- a/sys/dev/microcode/aic7xxx/Makefile.inc +++ b/sys/dev/microcode/aic7xxx/Makefile.inc @@ -1,3 +1,4 @@ +# $OpenBSD: Makefile.inc,v 1.5 1996/11/28 23:27:58 niklas Exp $ # $NetBSD: Makefile.inc,v 1.4 1996/05/20 00:48:43 thorpej Exp $ .if target(aic7xxx.o) diff --git a/sys/dev/microcode/aic7xxx/aic7xxx.seq b/sys/dev/microcode/aic7xxx/aic7xxx.seq index 901fa34eec1..21d1c0af813 100644 --- a/sys/dev/microcode/aic7xxx/aic7xxx.seq +++ b/sys/dev/microcode/aic7xxx/aic7xxx.seq @@ -1,3 +1,6 @@ +/* $OpenBSD: aic7xxx.seq,v 1.5 1996/11/28 23:27:59 niklas Exp $ */ +/* $NetBSD: aic7xxx.seq,v 1.6 1996/10/08 03:04:06 gibbs Exp $ */ + /*+M*********************************************************************** *Adaptec 274x/284x/294x device driver for Linux and FreeBSD. * @@ -37,14 +40,18 @@ *OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF *SUCH DAMAGE. * + * from Id: aic7xxx.seq,v 1.42 1996/06/09 17:29:11 gibbs Exp + * *-M************************************************************************/ -VERSION AIC7XXX_SEQ_VER "$Id: aic7xxx.seq,v 1.4 1996/06/27 21:15:52 shawn Exp $" +VERSION AIC7XXX_SEQ_VER "$NetBSD: aic7xxx.seq,v 1.6 1996/10/08 03:04:06 gibbs Exp $" #if defined(__NetBSD__) -#include "../../../../dev/ic/aic7xxxreg.h" +#include "../../ic/aic7xxxreg.h" +#include "../../../scsi/scsi_message.h" #elif defined(__FreeBSD__) #include "../../dev/aic7xxx/aic7xxx_reg.h" +#include "../../scsi/scsi_message.h" #endif /* @@ -186,45 +193,36 @@ start_selection: * Messages are stored in scratch RAM starting with a length byte * followed by the message itself. */ - test SCB_CMDLEN,0xff jnz mk_identify /* 0 Length Command? */ - -/* - * The kernel has sent us an SCB with no command attached. This implies - * that the kernel wants to send a message of some sort to this target, - * so we interrupt the driver, allow it to fill the message buffer, and - * then go back into the arbitration loop - */ - mvi INTSTAT,AWAITING_MSG - jmp wait_for_selection mk_identify: and A,DISCENB,SCB_CONTROL /* mask off disconnect privledge */ and MSG0,0x7,SCB_TCL /* lun */ or MSG0,A /* or in disconnect privledge */ - or MSG0,MSG_IDENTIFY + or MSG0,MSG_IDENTIFYFLAG mvi MSG_LEN, 1 - test SCB_CONTROL,0xb0 jz !message /* WDTR, SDTR or TAG?? */ /* * Send a tag message if TAG_ENB is set in the SCB control block. * Use SCB_TAG (the position in the kernel's SCB array) as the tag value. */ - mk_tag: + test SCB_CONTROL,TAG_ENB jz mk_message mvi DINDEX, MSG1 - test SCB_CONTROL,TAG_ENB jz mk_tag_done and DINDIR,0x23,SCB_CONTROL mov DINDIR,SCB_TAG add MSG_LEN,COMP_MSG0,DINDEX /* update message length */ -mk_tag_done: +/* + * Interrupt the driver, and allow it to tweak the message buffer + * if it asks. + */ +mk_message: + test SCB_CONTROL,MK_MESSAGE jz wait_for_selection - test SCB_CONTROL,0x90 jz !message /* NEEDWDTR|NEEDSDTR */ - mov DINDEX call mk_dtr /* build DTR message if needed */ + mvi INTSTAT,AWAITING_MSG -!message: wait_for_selection: test SSTAT0,SELDO jnz select test SSTAT0,SELDI jz wait_for_selection @@ -511,7 +509,7 @@ p_status: */ p_mesgout: test MSG_LEN, 0xff jnz p_mesgout_start - mvi MSG_NOP call mk_mesg /* build NOP message */ + mvi MSG_NOOP call mk_mesg /* build NOP message */ p_mesgout_start: /* @@ -569,13 +567,13 @@ p_mesgin: mvi A call inb_first /* read the 1st message byte */ mov REJBYTE,A /* save it for the driver */ - test A,MSG_IDENTIFY jnz mesgin_identify + test A,MSG_IDENTIFYFLAG jnz mesgin_identify cmp A,MSG_DISCONNECT je mesgin_disconnect - cmp A,MSG_SDPTRS je mesgin_sdptrs + cmp A,MSG_SAVEDATAPOINTER je mesgin_sdptrs cmp ALLZEROS,A je mesgin_complete - cmp A,MSG_RDPTRS je mesgin_rdptrs + cmp A,MSG_RESTOREPOINTERS je mesgin_rdptrs cmp A,MSG_EXTENDED je mesgin_extended - cmp A,MSG_REJECT je mesgin_reject + cmp A,MSG_MESSAGE_REJECT je mesgin_reject rej_mesgin: /* @@ -589,7 +587,7 @@ rej_mesgin: or SCSISIGO,ATNO /* turn on ATNO */ mvi INTSTAT,SEND_REJECT /* let driver know */ - mvi MSG_REJECT call mk_mesg + mvi MSG_MESSAGE_REJECT call mk_mesg mesgin_done: call inb_last /*ack & turn auto PIO back on*/ @@ -665,51 +663,38 @@ complete: /* - * Is it an extended message? We only support the synchronous and wide data - * transfer request messages, which will probably be in response to - * WDTR or SDTR message outs from us. If it's not SDTR or WDTR, reject it - - * apparently this can be done after any message in byte, according - * to the SCSI-2 spec. + * Is it an extended message? Copy the message to our message buffer and + * notify the host. The host will tell us whether to reject this message, + * respond to it with the message that the host placed in our message buffer, + * or simply to do nothing. */ mesgin_extended: - mvi ARG_1 call inb_next /* extended message length */ - mvi REJBYTE_EXT call inb_next /* extended message code */ - - cmp REJBYTE_EXT,MSG_SDTR je p_mesginSDTR - cmp REJBYTE_EXT,MSG_WDTR je p_mesginWDTR - jmp rej_mesgin - -p_mesginWDTR: - cmp ARG_1,2 jne rej_mesgin /* extended mesg length=2 */ - mvi ARG_1 call inb_next /* Width of bus */ - mvi INTSTAT,WDTR_MSG /* let driver know */ - test RETURN_1,0xff jz mesgin_done /* Do we need to send WDTR? */ - cmp RETURN_1,SEND_REJ je rej_mesgin /* - * Bus width was too large - * Reject it. - */ - -/* We didn't initiate the wide negotiation, so we must respond to the request */ - and RETURN_1,0x7f /* Clear the SEND_WDTR Flag */ - mvi DINDEX,MSG0 - mvi MSG0 call mk_wdtr /* build WDTR message */ - or SCSISIGO,ATNO /* turn on ATNO */ - jmp mesgin_done - -p_mesginSDTR: - cmp ARG_1,3 jne rej_mesgin /* extended mesg length=3 */ - mvi ARG_1 call inb_next /* xfer period */ - mvi A call inb_next /* REQ/ACK offset */ - mvi INTSTAT,SDTR_MSG /* call driver to convert */ - - test RETURN_1,0xff jz mesgin_done /* Do we need to mk_sdtr/rej */ - cmp RETURN_1,SEND_REJ je rej_mesgin /* - * Requested SDTR too small - * Reject it. - */ - clr ARG_1 /* Use the scratch ram rate */ - mvi DINDEX, MSG0 - mvi MSG0 call mk_sdtr + mvi MSGIN_EXT_LEN call inb_next + mvi MSGIN_EXT_OPCODE call inb_next + mov A, MSGIN_EXT_LEN + dec A /* Length counts the op code */ + mvi SINDEX, MSGIN_EXT_BYTE0 +mesgin_extended_loop: + test A, 0xFF jz mesgin_extended_intr + cmp SINDEX, MSGIN_EXT_LASTBYTE je mesgin_extended_dump + call inb_next + dec A +/* + * We pass the arg to inb in SINDEX, but DINDEX is the one incremented + * so update SINDEX with DINDEX's value before looping again. + */ + mov DINDEX jmp mesgin_extended_loop +mesgin_extended_dump: +/* We have no more storage space, so dump the rest */ + test A, 0xFF jz mesgin_extended_intr + mvi NONE call inb_next + dec A + jmp mesgin_extended_dump +mesgin_extended_intr: + mvi INTSTAT,EXTENDED_MSG /* let driver know */ + cmp RETURN_1,SEND_REJ je rej_mesgin + cmp RETURN_1,SEND_MSG jne mesgin_done +/* The kernel has setup a message to be sent */ or SCSISIGO,ATNO /* turn on ATNO */ jmp mesgin_done @@ -783,11 +768,11 @@ mesgin_identify: */ mvi ARG_1,SCB_LIST_NULL /* Default to no-tag */ snoop_tag_loop: - test SSTAT1,BUSFREE jnz use_findSCB - test SSTAT1,REQINIT jz snoop_tag_loop - test SSTAT1,PHASEMIS jnz use_findSCB - mvi A call inb_first - cmp A,MSG_SIMPLE_TAG jne use_findSCB + test SSTAT1,BUSFREE jnz use_findSCB + test SSTAT1,REQINIT jz snoop_tag_loop + test SSTAT1,PHASEMIS jnz use_findSCB + mvi A call inb_first + cmp A,MSG_SIMPLE_Q_TAG jne use_findSCB get_tag: mvi ARG_1 call inb_next /* tag value */ /* @@ -947,7 +932,7 @@ dma5: and DFCNTRL,WIDEODD dma6: test DFCNTRL,0x38 jnz dma6 /* SCSIENACK|SDMAENACK|HDMAENACK */ - +return: ret /* @@ -1087,68 +1072,3 @@ ndx_dtr: or A,0x08 /* Channel B entries add 8 */ ndx_dtr_2: add SINDEX,TARG_SCRATCH,A ret - -/* - * If we need to negotiate transfer parameters, build the WDTR or SDTR message - * starting at the address passed in SINDEX. DINDEX is modified on return. - * The SCSI-II spec requires that Wide negotiation occur first and you can - * only negotiat one or the other at a time otherwise in the event of a message - * reject, you wouldn't be able to tell which message was the culpret. - */ -mk_dtr: - test SCB_CONTROL,NEEDWDTR jnz mk_wdtr_16bit - mvi ARG_1, MAXOFFSET /* Force an offset of 15 or 8 if WIDE */ - -mk_sdtr: - mvi DINDIR,1 /* extended message */ - mvi DINDIR,3 /* extended message length = 3 */ - mvi DINDIR,1 /* SDTR code */ - call sdtr_to_rate - mov DINDIR,RETURN_1 /* REQ/ACK transfer period */ - cmp ARG_1, MAXOFFSET je mk_sdtr_max_offset - and DINDIR,0x0f,SINDIR /* Sync Offset */ - -mk_sdtr_done: - add MSG_LEN,COMP_MSG0,DINDEX ret /* update message length */ - -mk_sdtr_max_offset: -/* - * We're initiating sync negotiation, so request the max offset we can (15 or 8) - */ - /* Talking to a WIDE device? */ - test SCSIRATE, WIDEXFER jnz wmax_offset - mvi DINDIR, MAX_OFFSET_8BIT - jmp mk_sdtr_done - -wmax_offset: - mvi DINDIR, MAX_OFFSET_16BIT - jmp mk_sdtr_done - -mk_wdtr_16bit: - mvi ARG_1,BUS_16_BIT -mk_wdtr: - mvi DINDIR,1 /* extended message */ - mvi DINDIR,2 /* extended message length = 2 */ - mvi DINDIR,3 /* WDTR code */ - mov DINDIR,ARG_1 /* bus width */ - - add MSG_LEN,COMP_MSG0,DINDEX ret /* update message length */ - -sdtr_to_rate: - call ndx_dtr /* index scratch space for target */ - shr A,SINDIR,0x4 - dec SINDEX /* Preserve SINDEX */ - and A,0x7 - clr RETURN_1 -sdtr_to_rate_loop: - test A,0x0f jz sdtr_to_rate_done - add RETURN_1,0x19 - dec A - jmp sdtr_to_rate_loop -sdtr_to_rate_done: - shr RETURN_1,0x2 - add RETURN_1,0x19 - test SXFRCTL0,ULTRAEN jz return - shr RETURN_1,0x1 -return: - ret diff --git a/sys/dev/microcode/aic7xxx/aic7xxx_asm.1 b/sys/dev/microcode/aic7xxx/aic7xxx_asm.1 index 2ff33b78190..ba7ce937dba 100644 --- a/sys/dev/microcode/aic7xxx/aic7xxx_asm.1 +++ b/sys/dev/microcode/aic7xxx/aic7xxx_asm.1 @@ -1,3 +1,5 @@ +.\" $OpenBSD: aic7xxx_asm.1,v 1.4 1996/11/28 23:27:59 niklas Exp $ +.\" .\" Copyright (c) 1994, 1995 .\" Justin T. Gibbs. All rights reserved. .\" diff --git a/sys/dev/microcode/aic7xxx/aic7xxx_asm.c b/sys/dev/microcode/aic7xxx/aic7xxx_asm.c index 109c3e66428..03dc38f8f10 100644 --- a/sys/dev/microcode/aic7xxx/aic7xxx_asm.c +++ b/sys/dev/microcode/aic7xxx/aic7xxx_asm.c @@ -1,3 +1,5 @@ +/* $OpenBSD: aic7xxx_asm.c,v 1.6 1996/11/28 23:28:00 niklas Exp $ */ + /*+M************************************************************************* * Adaptec AIC7770/AIC7870 sequencer code assembler. * @@ -43,7 +45,7 @@ * are token separators. * *-M*************************************************************************/ -static char id[] = "$Id: aic7xxx_asm.c,v 1.5 1996/06/27 21:15:54 shawn Exp $"; +static char id[] = "$Id: aic7xxx_asm.c,v 1.6 1996/11/28 23:28:00 niklas Exp $"; #include <ctype.h> #include <stdio.h> #include <string.h> diff --git a/sys/dev/microcode/aic7xxx/aic7xxx_seq.h b/sys/dev/microcode/aic7xxx/aic7xxx_seq.h new file mode 100644 index 00000000000..1380773d842 --- /dev/null +++ b/sys/dev/microcode/aic7xxx/aic7xxx_seq.h @@ -0,0 +1,388 @@ +#define AIC7XXX_SEQ_VER "$OpenBSD: aic7xxx_seq.h,v 1.1 1996/11/28 23:28:00 niklas Exp $" +#if 0 +#define AIC7XXX_SEQ_VER "$NetBSD: aic7xxx_seq.h,v 1.2 1996/10/08 03:04:07 gibbs Exp $" +#endif + 0xff, 0x6a, 0x93, 0x02, + 0xff, 0x6a, 0x03, 0x02, + 0x0f, 0x4a, 0x4a, 0x02, + 0x10, 0x6a, 0x00, 0x00, + 0xff, 0x6a, 0x04, 0x02, + 0x01, 0x4a, 0x09, 0x1e, + 0x08, 0x1f, 0x1f, 0x04, + 0x20, 0x0b, 0x32, 0x1a, + 0x08, 0x1f, 0x1f, 0x04, + 0x20, 0x0b, 0x32, 0x1a, + 0xff, 0x4e, 0x17, 0x18, + 0xff, 0x49, 0x64, 0x02, + 0x00, 0x9c, 0x05, 0x1e, + 0xff, 0x9b, 0x90, 0x02, + 0xff, 0xa1, 0x6e, 0x02, + 0xff, 0x6e, 0x64, 0x02, + 0x88, 0xa1, 0x19, 0x1e, + 0x00, 0x4d, 0x15, 0x1a, + 0x20, 0xa0, 0x1c, 0x1a, + 0x00, 0x4d, 0x4d, 0x00, + 0x00, 0x65, 0x1c, 0x10, + 0xff, 0x90, 0x9b, 0x02, + 0x00, 0x65, 0x05, 0x10, + 0xff, 0x4e, 0x90, 0x02, + 0x00, 0x65, 0x1e, 0x10, + 0x00, 0x4c, 0x15, 0x1a, + 0x20, 0xa0, 0x1c, 0x1a, + 0x00, 0x4c, 0x4c, 0x00, + 0xff, 0x4e, 0xba, 0x02, + 0xff, 0x90, 0x4e, 0x02, + 0xf7, 0x1f, 0x65, 0x02, + 0x08, 0xa1, 0x64, 0x02, + 0x00, 0x65, 0x65, 0x00, + 0xff, 0x65, 0x1f, 0x02, + 0x00, 0xa1, 0x35, 0x17, + 0x58, 0x6a, 0x00, 0x00, + 0x40, 0xa0, 0x64, 0x02, + 0x07, 0xa1, 0x35, 0x02, + 0x00, 0x35, 0x35, 0x00, + 0x80, 0x35, 0x35, 0x00, + 0x01, 0x6a, 0x34, 0x00, + 0x20, 0xa0, 0x2e, 0x1e, + 0x36, 0x6a, 0x66, 0x00, + 0x23, 0xa0, 0x6d, 0x02, + 0xff, 0xb9, 0x6d, 0x02, + 0xcb, 0x66, 0x34, 0x06, + 0x80, 0xa0, 0x30, 0x1e, + 0xa1, 0x6a, 0x91, 0x00, + 0x40, 0x0b, 0x36, 0x1a, + 0x20, 0x0b, 0x30, 0x1e, + 0xff, 0x6a, 0x34, 0x02, + 0x00, 0x19, 0x35, 0x17, + 0x80, 0x4a, 0x4a, 0x00, + 0x00, 0x65, 0x38, 0x10, + 0xff, 0xba, 0x4e, 0x02, + 0x20, 0x4a, 0x4a, 0x00, + 0x02, 0x01, 0x01, 0x00, + 0x00, 0x65, 0x7c, 0x17, + 0xff, 0x6c, 0x04, 0x02, + 0xff, 0x05, 0x6e, 0x02, + 0xff, 0x6e, 0x64, 0x02, + 0xdf, 0x01, 0x65, 0x02, + 0x80, 0x05, 0x42, 0x1a, + 0x08, 0x1f, 0x42, 0x1a, + 0x00, 0x52, 0x44, 0x1e, + 0x20, 0x65, 0x44, 0x10, + 0x00, 0x53, 0x44, 0x1e, + 0x20, 0x65, 0x65, 0x00, + 0xff, 0x65, 0x01, 0x02, + 0x02, 0x6a, 0x00, 0x00, + 0x08, 0x6a, 0x0c, 0x00, + 0x60, 0x6a, 0x0b, 0x00, + 0x08, 0x0c, 0x18, 0x1b, + 0x01, 0x0c, 0x48, 0x1e, + 0xe0, 0x03, 0x64, 0x02, + 0xff, 0x64, 0x3d, 0x02, + 0xff, 0x64, 0x03, 0x02, + 0x00, 0x6a, 0x55, 0x1c, + 0x40, 0x64, 0x5b, 0x1c, + 0x80, 0x64, 0x8d, 0x1c, + 0xa0, 0x64, 0x9c, 0x1c, + 0xc0, 0x64, 0x9a, 0x1c, + 0xe0, 0x64, 0xb1, 0x1c, + 0x01, 0x6a, 0x91, 0x00, + 0x00, 0x65, 0x48, 0x10, + 0x7d, 0x6a, 0x41, 0x00, + 0x00, 0x65, 0x5c, 0x10, + 0xff, 0xa9, 0x08, 0x02, + 0xff, 0xaa, 0x09, 0x02, + 0xff, 0xab, 0x0a, 0x02, + 0x00, 0x65, 0x60, 0x10, + 0x79, 0x6a, 0x41, 0x00, + 0x00, 0x65, 0x39, 0x17, + 0x10, 0x4a, 0x57, 0x1a, + 0x00, 0x65, 0x60, 0x17, + 0x10, 0x4a, 0x4a, 0x00, + 0xff, 0x42, 0x65, 0x1a, + 0x80, 0x02, 0x02, 0x00, + 0xff, 0x6a, 0x08, 0x00, + 0xff, 0x6a, 0x09, 0x00, + 0xff, 0x6a, 0x0a, 0x00, + 0x01, 0x42, 0x67, 0x18, + 0xbf, 0x41, 0x41, 0x02, + 0x00, 0x41, 0x2d, 0x17, + 0x80, 0x02, 0x8a, 0x1a, + 0x04, 0x0b, 0x85, 0x1e, + 0xff, 0x42, 0x42, 0x06, + 0xff, 0x42, 0x85, 0x1e, + 0xff, 0x6a, 0x64, 0x02, + 0x08, 0x43, 0x43, 0x06, + 0x00, 0x44, 0x44, 0x08, + 0xff, 0x6a, 0x8e, 0x02, + 0xff, 0x6a, 0x8d, 0x02, + 0x08, 0x6a, 0x8c, 0x00, + 0xff, 0x43, 0x88, 0x02, + 0xff, 0x44, 0x89, 0x02, + 0xff, 0x45, 0x8a, 0x02, + 0xff, 0x46, 0x8b, 0x02, + 0x0d, 0x93, 0x93, 0x00, + 0x08, 0x94, 0x77, 0x1e, + 0x40, 0x93, 0x93, 0x02, + 0x08, 0x93, 0x79, 0x1a, + 0xff, 0x99, 0x88, 0x02, + 0xff, 0x99, 0x89, 0x02, + 0xff, 0x99, 0x8a, 0x02, + 0xff, 0x99, 0x8b, 0x02, + 0xff, 0x99, 0x8c, 0x02, + 0xff, 0x99, 0x8d, 0x02, + 0xff, 0x99, 0x8e, 0x02, + 0xff, 0x8c, 0x08, 0x02, + 0xff, 0x8d, 0x09, 0x02, + 0xff, 0x8e, 0x0a, 0x02, + 0x10, 0x0c, 0x60, 0x1e, + 0xff, 0x08, 0xa9, 0x02, + 0xff, 0x09, 0xaa, 0x02, + 0xff, 0x0a, 0xab, 0x02, + 0xff, 0x42, 0xa8, 0x02, + 0x00, 0x65, 0x48, 0x10, + 0x7f, 0x02, 0x02, 0x02, + 0xe1, 0x6a, 0x91, 0x00, + 0x00, 0x65, 0x48, 0x10, + 0x00, 0x65, 0x39, 0x17, + 0xff, 0xb4, 0x88, 0x02, + 0xff, 0xb5, 0x89, 0x02, + 0xff, 0xb6, 0x8a, 0x02, + 0xff, 0xb7, 0x8b, 0x02, + 0xff, 0xb8, 0x8c, 0x02, + 0xff, 0x6a, 0x8d, 0x02, + 0xff, 0x6a, 0x8e, 0x02, + 0xff, 0x8c, 0x08, 0x02, + 0xff, 0x8d, 0x09, 0x02, + 0xff, 0x8e, 0x0a, 0x02, + 0x3d, 0x6a, 0x2d, 0x17, + 0x00, 0x65, 0x48, 0x10, + 0xa2, 0x6a, 0x27, 0x17, + 0x00, 0x65, 0xbd, 0x10, + 0xff, 0x34, 0x9e, 0x1a, + 0x08, 0x6a, 0x1c, 0x17, + 0x35, 0x6a, 0x65, 0x00, + 0xff, 0x34, 0x66, 0x02, + 0x10, 0x0c, 0xae, 0x1a, + 0x02, 0x0b, 0xa0, 0x1e, + 0x10, 0x0c, 0xae, 0x1a, + 0x01, 0x66, 0xa5, 0x18, + 0x40, 0x6a, 0x0c, 0x00, + 0xff, 0x66, 0x66, 0x06, + 0x02, 0x0b, 0x0b, 0x00, + 0xff, 0x6c, 0x06, 0x02, + 0xff, 0x66, 0xa0, 0x1a, + 0x08, 0x0c, 0xaf, 0x1a, + 0x01, 0x0c, 0xa9, 0x1e, + 0x10, 0x0c, 0xaf, 0x1a, + 0x10, 0x03, 0x03, 0x00, + 0x00, 0x65, 0x48, 0x10, + 0x40, 0x6a, 0x0c, 0x00, + 0xff, 0x6a, 0x34, 0x02, + 0x00, 0x65, 0x48, 0x10, + 0x64, 0x6a, 0x27, 0x17, + 0xff, 0x64, 0x30, 0x02, + 0x80, 0x64, 0xf5, 0x1a, + 0x04, 0x64, 0xe5, 0x1c, + 0x02, 0x64, 0xf1, 0x1c, + 0x00, 0x6a, 0xbf, 0x1c, + 0x03, 0x64, 0xf3, 0x1c, + 0x01, 0x64, 0xd2, 0x1c, + 0x07, 0x64, 0x16, 0x1d, + 0x10, 0x03, 0x03, 0x00, + 0x11, 0x6a, 0x91, 0x00, + 0x07, 0x6a, 0x1c, 0x17, + 0x00, 0x65, 0x2a, 0x17, + 0x00, 0x65, 0x48, 0x10, + 0xff, 0xa8, 0xc1, 0x1e, + 0x81, 0x6a, 0x91, 0x00, + 0xff, 0xa2, 0xc5, 0x1e, + 0x71, 0x6a, 0x91, 0x00, + 0x40, 0x3f, 0xc5, 0x18, + 0x00, 0x65, 0xbd, 0x10, + 0x20, 0xa0, 0xcc, 0x1a, + 0xff, 0xa1, 0x6e, 0x02, + 0xff, 0x6e, 0x64, 0x02, + 0x88, 0xa1, 0xcb, 0x1e, + 0x00, 0x4d, 0x4d, 0x04, + 0x00, 0x65, 0xcc, 0x10, + 0x00, 0x4c, 0x4c, 0x04, + 0xff, 0xb8, 0xcf, 0x1a, + 0xb1, 0x6a, 0x91, 0x00, + 0x00, 0x65, 0x02, 0x10, + 0xff, 0xb9, 0x9d, 0x02, + 0x02, 0x6a, 0x91, 0x00, + 0x00, 0x65, 0xbd, 0x10, + 0x54, 0x6a, 0x23, 0x17, + 0x55, 0x6a, 0x23, 0x17, + 0xff, 0x54, 0x64, 0x02, + 0xff, 0x64, 0x64, 0x06, + 0x56, 0x6a, 0x65, 0x00, + 0xff, 0x64, 0xe0, 0x1e, + 0x58, 0x65, 0xdc, 0x1c, + 0x00, 0x65, 0x23, 0x17, + 0xff, 0x64, 0x64, 0x06, + 0x00, 0x66, 0xd7, 0x10, + 0xff, 0x64, 0xe0, 0x1e, + 0x6a, 0x6a, 0x23, 0x17, + 0xff, 0x64, 0x64, 0x06, + 0x00, 0x65, 0xdc, 0x10, + 0x41, 0x6a, 0x91, 0x00, + 0x20, 0x3f, 0xba, 0x1c, + 0x80, 0x3f, 0xbd, 0x18, + 0x10, 0x03, 0x03, 0x00, + 0x00, 0x65, 0xbd, 0x10, + 0x04, 0xa0, 0xa0, 0x00, + 0x04, 0x4a, 0xbd, 0x1e, + 0xff, 0x6a, 0xbb, 0x00, + 0x50, 0x6a, 0x60, 0x00, + 0xff, 0x4f, 0xba, 0x02, + 0xff, 0x90, 0x4f, 0x02, + 0xff, 0xba, 0xef, 0x1c, + 0xff, 0xba, 0x90, 0x02, + 0xff, 0x4f, 0xbb, 0x02, + 0xff, 0x4f, 0x90, 0x02, + 0x10, 0x6a, 0x60, 0x00, + 0x00, 0x65, 0xbd, 0x10, + 0x00, 0x65, 0x6f, 0x17, + 0x00, 0x65, 0xbd, 0x10, + 0xef, 0x4a, 0x4a, 0x02, + 0x00, 0x65, 0xbd, 0x10, + 0x78, 0x64, 0xba, 0x1a, + 0x07, 0x64, 0x64, 0x02, + 0x00, 0x19, 0x4b, 0x00, + 0xf7, 0x4b, 0x4b, 0x02, + 0x08, 0x1f, 0x64, 0x02, + 0x00, 0x4b, 0x4b, 0x00, + 0x00, 0x65, 0x2a, 0x17, + 0xff, 0x6a, 0x3e, 0x00, + 0x08, 0x0c, 0x08, 0x1b, + 0x01, 0x0c, 0xfd, 0x1e, + 0x10, 0x0c, 0x08, 0x1b, + 0x64, 0x6a, 0x27, 0x17, + 0x20, 0x64, 0x08, 0x19, + 0x3e, 0x6a, 0x23, 0x17, + 0xff, 0x48, 0x64, 0x02, + 0x00, 0x3e, 0x65, 0x06, + 0x00, 0x65, 0x12, 0x13, + 0x04, 0x4a, 0x0c, 0x1f, + 0x00, 0x65, 0x2a, 0x17, + 0x00, 0x6a, 0x3c, 0x17, + 0xfb, 0xa0, 0xa0, 0x02, + 0x40, 0x4a, 0x4a, 0x00, + 0x00, 0x65, 0x48, 0x10, + 0xff, 0x3e, 0x90, 0x02, + 0xff, 0x4b, 0x64, 0x02, + 0x00, 0xa1, 0x12, 0x19, + 0x20, 0xa0, 0x12, 0x1f, + 0x00, 0x65, 0x2a, 0x17, + 0x00, 0x65, 0x09, 0x11, + 0x10, 0x03, 0x03, 0x00, + 0x91, 0x6a, 0x91, 0x00, + 0x0d, 0x6a, 0x1c, 0x17, + 0x00, 0x65, 0xbd, 0x10, + 0x61, 0x6a, 0x91, 0x00, + 0x00, 0x65, 0xbd, 0x10, + 0x40, 0x6a, 0x0c, 0x00, + 0xff, 0x6a, 0x3d, 0x02, + 0xff, 0xb8, 0xc5, 0x1e, + 0x00, 0x65, 0x02, 0x10, + 0x50, 0x6a, 0x60, 0x00, + 0xff, 0x34, 0x20, 0x1f, + 0x10, 0x6a, 0x60, 0x00, + 0xc1, 0x6a, 0x91, 0x00, + 0x01, 0x6a, 0x34, 0x00, + 0xff, 0x65, 0x35, 0x02, + 0x10, 0x6a, 0x60, 0x01, + 0x02, 0x0b, 0x0b, 0x00, + 0xff, 0x06, 0x6a, 0x02, + 0x10, 0x0c, 0x2b, 0x1b, + 0x02, 0x0b, 0x25, 0x1f, + 0xff, 0x65, 0x66, 0x02, + 0x10, 0x0c, 0x2b, 0x1b, + 0xff, 0x12, 0x6d, 0x03, + 0xff, 0x06, 0x6a, 0x03, + 0xd1, 0x6a, 0x91, 0x00, + 0x00, 0x65, 0x48, 0x10, + 0xff, 0x65, 0x93, 0x02, + 0x01, 0x0b, 0x30, 0x1b, + 0x10, 0x0c, 0x2e, 0x1f, + 0x04, 0x65, 0x32, 0x1b, + 0x01, 0x94, 0x31, 0x1f, + 0x40, 0x93, 0x93, 0x02, + 0x38, 0x93, 0x33, 0x1b, + 0xff, 0x6a, 0x6a, 0x03, + 0xf0, 0x65, 0x65, 0x02, + 0x0f, 0x05, 0x64, 0x02, + 0x00, 0x65, 0x65, 0x00, + 0xff, 0x65, 0x05, 0x03, + 0x80, 0x4a, 0x34, 0x1f, + 0x40, 0x4a, 0x34, 0x1b, + 0x21, 0x6a, 0x91, 0x01, + 0xff, 0x4b, 0x64, 0x02, + 0xff, 0x65, 0x90, 0x02, + 0x50, 0x6a, 0x60, 0x00, + 0x00, 0xa1, 0x54, 0x19, + 0x04, 0xa0, 0x54, 0x1f, + 0x20, 0xa0, 0x44, 0x1b, + 0xff, 0x3e, 0x46, 0x1d, + 0x00, 0x65, 0x54, 0x11, + 0xff, 0x3e, 0x64, 0x02, + 0x00, 0xb9, 0x54, 0x19, + 0x04, 0x4a, 0x53, 0x1f, + 0xff, 0xba, 0x4c, 0x1d, + 0xff, 0xbb, 0x50, 0x02, + 0xff, 0xba, 0x90, 0x02, + 0xff, 0x50, 0xbb, 0x02, + 0xff, 0x65, 0x90, 0x02, + 0xff, 0xbb, 0x52, 0x1d, + 0xff, 0xba, 0x50, 0x02, + 0xff, 0xbb, 0x90, 0x02, + 0xff, 0x50, 0xba, 0x02, + 0xff, 0x65, 0x90, 0x02, + 0x10, 0x6a, 0x60, 0x01, + 0xff, 0xba, 0x4f, 0x02, + 0x10, 0x6a, 0x60, 0x01, + 0x10, 0x6a, 0x60, 0x00, + 0x01, 0x65, 0x65, 0x06, + 0xff, 0x47, 0x64, 0x02, + 0x00, 0x65, 0x3c, 0x19, + 0x31, 0x6a, 0x91, 0x00, + 0x10, 0x3f, 0x34, 0x1d, + 0x10, 0x03, 0x03, 0x00, + 0xff, 0x3e, 0x5e, 0x19, + 0x06, 0x6a, 0x1c, 0x17, + 0x00, 0x65, 0x48, 0x10, + 0x0d, 0x6a, 0x1c, 0x17, + 0x00, 0x65, 0x48, 0x10, + 0xff, 0xac, 0x88, 0x02, + 0xff, 0xad, 0x89, 0x02, + 0xff, 0xae, 0x8a, 0x02, + 0xff, 0xaf, 0x8b, 0x02, + 0xff, 0xb0, 0x8c, 0x02, + 0xff, 0xb1, 0x8d, 0x02, + 0xff, 0xb2, 0x8e, 0x02, + 0xff, 0x8c, 0x08, 0x02, + 0xff, 0x8d, 0x09, 0x02, + 0xff, 0x8e, 0x0a, 0x02, + 0xff, 0xa3, 0x42, 0x02, + 0xff, 0xa4, 0x43, 0x02, + 0xff, 0xa5, 0x44, 0x02, + 0xff, 0xa6, 0x45, 0x02, + 0xff, 0xa7, 0x46, 0x03, + 0x10, 0x4a, 0x34, 0x1f, + 0xff, 0x42, 0xa3, 0x02, + 0xff, 0x43, 0xa4, 0x02, + 0xff, 0x44, 0xa5, 0x02, + 0xff, 0x45, 0xa6, 0x02, + 0xff, 0x46, 0xa7, 0x02, + 0xff, 0x14, 0xac, 0x02, + 0xff, 0x15, 0xad, 0x02, + 0xff, 0x16, 0xae, 0x02, + 0xff, 0x17, 0xaf, 0x02, + 0xff, 0xa9, 0xb0, 0x02, + 0xff, 0xaa, 0xb1, 0x02, + 0xff, 0xab, 0xb2, 0x03, + 0x4c, 0x05, 0x64, 0x0a, + 0x08, 0x1f, 0x7f, 0x1f, + 0x08, 0x64, 0x64, 0x00, + 0x20, 0x64, 0x65, 0x07, |