All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luben Tuikov <luben_tuikov@adaptec.com>
To: SCSI Mailing List <linux-scsi@vger.kernel.org>
Subject: [patch 24/28] Sync up drivers/scsi/aic7xxx
Date: Tue, 28 Sep 2004 09:07:32 -0400	[thread overview]
Message-ID: <41596214.4050609@adaptec.com> (raw)

Sync up drivers/scsi/aic7xxx/. (3367-3707)

Signed-off-by: Luben Tuikov <luben_tuikov@adaptec.com>

==== //depot/aic7xxx/aic7xxx/aic79xx.h#106 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx.h ====
--- /tmp/tmp.27211.0	2004-09-27 13:36:51.779634848 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx.h	2004-04-29 12:52:06.000000000 -0400
@@ -37,7 +37,7 @@
   * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGES.
   *
- * $Id: //depot/aic7xxx/aic7xxx/aic79xx.h#106 $
+ * $Id: //depot/aic7xxx/aic7xxx/aic79xx.h#107 $
   *
   * $FreeBSD$
   */
@@ -1065,7 +1065,6 @@
  {
  	uint16_t	tag;
  	uint8_t		sg_status;
-	uint8_t		pad[4];
  	uint8_t		valid_tag;
  };

==== //depot/aic7xxx/aic7xxx/aic79xx.reg#75 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx.reg ====
--- /tmp/tmp.27211.1	2004-09-27 13:36:52.572514312 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx.reg	2004-04-29 13:04:55.000000000 -0400
@@ -39,7 +39,7 @@
   *
   * $FreeBSD$
   */
-VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#75 $"
+VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.reg#76 $"

  /*
   * This file is processed by the aic7xxx_asm utility for use in assembling
@@ -3968,6 +3968,7 @@
  const SG_SIZEOF download
  const PKT_OVERRUN_BUFOFFSET download
  const SCB_TRANSFER_SIZE	download
+const CACHELINE_MASK download

  /*
   * BIOS SCB offsets
==== //depot/aic7xxx/aic7xxx/aic79xx.seq#118 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx.seq ====
--- /tmp/tmp.27211.2	2004-09-27 13:36:53.336398184 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx.seq	2004-05-07 15:48:50.000000000 -0400
@@ -40,7 +40,7 @@
   * $FreeBSD$
   */

-VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#118 $"
+VERSION = "$Id: //depot/aic7xxx/aic7xxx/aic79xx.seq#119 $"
  PATCH_ARG_LIST = "struct ahd_softc *ahd"
  PREFIX = "ahd_"

@@ -364,11 +364,11 @@
  	bmov	COMPLETE_SCB_DMAINPROG_HEAD, COMPLETE_SCB_HEAD, 2;
  	mvi	CCSCBCTL, CCSCBRESET;
  	bmov	SCBHADDR, QOUTFIFO_NEXT_ADDR, 4;
+	mov	A, QOUTFIFO_NEXT_ADDR;
  	bmov	SCBPTR, COMPLETE_SCB_HEAD, 2;
  fill_qoutfifo_loop:
  	bmov	CCSCBRAM, SCBPTR, 2;
  	mov	CCSCBRAM, SCB_SGPTR[0];
-	bmov	CCSCBRAM, ALLZEROS, 4;
  	mov	CCSCBRAM, QOUTFIFO_ENTRY_VALID_TAG;
  	mov	NONE, SDSCB_QOFF;
  	inc	INT_COALESCING_CMDCOUNT;
@@ -377,6 +377,18 @@
  	cmp	SCB_NEXT_COMPLETE[1], SCB_LIST_NULL je fill_qoutfifo_done;
  	cmp	CCSCBADDR, CCSCBADDR_MAX je fill_qoutfifo_done;
  	test	QOFF_CTLSTA, SDSCB_ROLLOVR jnz fill_qoutfifo_done;
+	/*
+	 * Don't cross an ADB or Cachline boundary when DMA'ing
+	 * completion entries.  In PCI mode, at least in 32/33
+	 * configurations, the SCB DMA engine may lose its place
+	 * in the data-stream should the target force a retry on
+	 * something other than an 8byte aligned boundary. In
+	 * PCI-X mode, we do this to avoid split transactions since
+	 * many chipsets seem to be unable to format proper split
+	 * completions to continue the data transfer.
+	 */
+	add	SINDEX, A, CCSCBADDR;
+	test	SINDEX, CACHELINE_MASK jz fill_qoutfifo_done;
  	bmov	SCBPTR, SCB_NEXT_COMPLETE, 2;
  	jmp	fill_qoutfifo_loop;
  fill_qoutfifo_done:
==== //depot/aic7xxx/aic7xxx/aic79xx.c#242 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_core.c ====
--- /tmp/tmp.27211.3	2004-09-27 13:37:00.423320808 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_core.c	2004-05-07 15:45:35.000000000 -0400
@@ -37,7 +37,7 @@
   * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGES.
   *
- * $Id: //depot/aic7xxx/aic7xxx/aic79xx.c#242 $
+ * $Id: //depot/aic7xxx/aic7xxx/aic79xx.c#245 $
   */

  #ifdef __linux__
@@ -225,7 +225,7 @@
  static void		ahd_download_instr(struct ahd_softc *ahd,
  					   u_int instrptr, uint8_t *dconsts);
  static int		ahd_probe_stack_size(struct ahd_softc *ahd);
-static void		ahd_other_scb_timeout(struct ahd_softc *ahd,
+static int		ahd_other_scb_timeout(struct ahd_softc *ahd,
  					      struct scb *scb,
  					      struct scb *other_scb);
  static int		ahd_scb_active_in_fifo(struct ahd_softc *ahd,
@@ -1635,7 +1635,7 @@
  					    CAM_LUN_WILDCARD,
  					    CAM_SEL_TIMEOUT,
  					    "Selection Timeout",
-					    /*verbose_level*/0);
+					    /*verbose_level*/1);
  		}
  		ahd_outb(ahd, CLRINT, CLRSCSIINT);
  		ahd_iocell_first_selection(ahd);
@@ -6025,22 +6025,6 @@
  		hscb = (struct hardware_scb *)hscb_map->vaddr;
  		hscb_busaddr = hscb_map->busaddr;
  		scb_data->scbs_left = PAGE_SIZE / sizeof(*hscb);
-		if (ahd->next_queued_hscb == NULL) {
-			/*
-			 * We need one HSCB to serve as the "next HSCB".  Since
-			 * the tag identifier in this HSCB will never be used,
-			 * there is no point in using a valid SCB from the
-			 * free pool for it.  So, we allocate this "sentinel"
-			 * specially.
-	 		 */
-			ahd->next_queued_hscb = hscb;
-			ahd->next_queued_hscb_map = hscb_map;
-			memset(hscb, 0, sizeof(*hscb));
-			hscb->hscb_busaddr = aic_htole32(hscb_busaddr);
-			hscb++;
-			hscb_busaddr += sizeof(*hscb);
-			scb_data->scbs_left--;
-		}
  	}

  	if (scb_data->sgs_left != 0) {
@@ -6300,7 +6284,8 @@
  	 * for the target mode role, we must additionally provide space for
  	 * the incoming target command fifo.
  	 */
-	driver_data_size = AHD_SCB_MAX * sizeof(*ahd->qoutfifo);
+	driver_data_size = AHD_SCB_MAX * sizeof(*ahd->qoutfifo)
+			 + sizeof(struct hardware_scb);
  	if ((ahd->features & AHD_TARGETMODE) != 0)
  		driver_data_size += AHD_TMODE_CMDS * sizeof(struct target_cmd);
  	if ((ahd->bugs & AHD_PKT_BITBUCKET_BUG) != 0)
@@ -6350,6 +6335,17 @@
  		next_baddr += PKT_OVERRUN_BUFSIZE;
  	}

+	/*
+	 * We need one SCB to serve as the "next SCB".  Since the
+	 * tag identifier in this SCB will never be used, there is
+	 * no point in using a valid HSCB tag from an SCB pulled from
+	 * the standard free pool.  So, we allocate this "sentinel"
+	 * specially from the DMA safe memory chunk used for the QOUTFIFO.
+	 */
+	ahd->next_queued_hscb = (struct hardware_scb *)next_vaddr;
+	ahd->next_queued_hscb_map = &ahd->shared_data_map;
+	ahd->next_queued_hscb->hscb_busaddr = aic_htole32(next_baddr);
+
  	ahd->init_level++;

  	/* Allocate SCB data now that buffer_dmat is initialized */
@@ -8478,13 +8474,14 @@
  	u_int	sg_prefetch_cnt_limit;
  	u_int	sg_prefetch_align;
  	u_int	sg_size;
+	u_int	cacheline_mask;
  	uint8_t	download_consts[DOWNLOAD_CONST_COUNT];

  	if (bootverbose)
  		printf("%s: Downloading Sequencer Program...",
  		       ahd_name(ahd));

-#if DOWNLOAD_CONST_COUNT != 7
+#if DOWNLOAD_CONST_COUNT != 8
  #error "Download Const Mismatch"
  #endif
  	/*
@@ -8520,6 +8517,9 @@
  	/* Round down to the nearest power of 2. */
  	while (powerof2(sg_prefetch_align) == 0)
  		sg_prefetch_align--;
+
+	cacheline_mask = sg_prefetch_align - 1;
+
  	/*
  	 * If the cacheline boundary is greater than half our prefetch RAM
  	 * we risk not being able to fetch even a single complete S/G
@@ -8560,6 +8560,7 @@
  	download_consts[PKT_OVERRUN_BUFOFFSET] =
  		(ahd->overrun_buf - (uint8_t *)ahd->qoutfifo) / 256;
  	download_consts[SCB_TRANSFER_SIZE] = SCB_TRANSFER_SIZE_1BYTE_LUN;
+	download_consts[CACHELINE_MASK] = cacheline_mask;
  	cur_patch = patches;
  	downloaded = 0;
  	skip_addr = 0;
@@ -9239,13 +9240,18 @@
  		if (active_scb != NULL) {

  			if (active_scb != scb) {
+
  				/*
  				 * If the active SCB is not us, assume that
  				 * the active SCB has a longer timeout than
  				 * the timedout SCB, and wait for the active
-				 * SCB to timeout.
+				 * SCB to timeout.  As a safeguard, only
+				 * allow this deferral to continue if some
+				 * untimed-out command is outstanding.
  				 */
-				ahd_other_scb_timeout(ahd, scb, active_scb);
+				if (ahd_other_scb_timeout(ahd, scb,
+							  active_scb) != 0)
+					goto bus_reset;
  				continue;
  			}

@@ -9283,7 +9289,8 @@
  			 * some other command.  Reset the timer
  			 * and go on.
  			 */
-			ahd_other_scb_timeout(ahd, scb, scb);
+			if (ahd_other_scb_timeout(ahd, scb, NULL) != 0)
+				goto bus_reset;
  		} else {
  			/*
  			 * This SCB is for a disconnected transaction
@@ -9379,20 +9386,55 @@
  	ahd_unlock(ahd, &s);
  }

-static void
+/*
+ * Re-schedule a timeout for the passed in SCB if we determine that some
+ * other SCB is in the process of recovery or an SCB with a longer
+ * timeout is still pending.  Limit our search to just "other_scb"
+ * if it is non-NULL.
+ */
+static int
  ahd_other_scb_timeout(struct ahd_softc *ahd, struct scb *scb,
  		      struct scb *other_scb)
  {
  	u_int	newtimeout;
+	int	found;

  	ahd_print_path(ahd, scb);
  	printf("Other SCB Timeout%s",
   	       (scb->flags & SCB_OTHERTCL_TIMEOUT) != 0
  	       ? " again\n" : "\n");
+
+	newtimeout = aic_get_timeout(scb);
  	scb->flags |= SCB_OTHERTCL_TIMEOUT;
-	newtimeout = MAX(aic_get_timeout(other_scb),
-			 aic_get_timeout(scb));
-	aic_scb_timer_reset(scb, newtimeout);
+	found = 0;
+	if (other_scb != NULL) {
+		if ((other_scb->flags
+		   & (SCB_OTHERTCL_TIMEOUT|SCB_TIMEDOUT)) == 0
+		 || (other_scb->flags & SCB_RECOVERY_SCB) != 0) {
+			found++;
+			newtimeout = MAX(aic_get_timeout(other_scb),
+					 newtimeout);
+		}
+	} else {
+		LIST_FOREACH(other_scb, &ahd->pending_scbs, pending_links) {
+			if ((other_scb->flags
+			   & (SCB_OTHERTCL_TIMEOUT|SCB_TIMEDOUT)) == 0
+			 || (other_scb->flags & SCB_RECOVERY_SCB) != 0) {
+				found++;
+				newtimeout = MAX(aic_get_timeout(other_scb),
+						 newtimeout);
+			}
+		}
+	}
+
+	if (found != 0)
+		aic_scb_timer_reset(scb, newtimeout);
+	else {
+		ahd_print_path(ahd, scb);
+		printf("No other SCB worth waiting for...\n");
+	}
+
+	return (found != 0);
  }

  /**************************** Flexport Logic **********************************/
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#208 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_osm.c ====
--- /tmp/tmp.27211.4	2004-09-27 13:37:01.441166072 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_osm.c	2004-04-09 12:57:15.000000000 -0400
@@ -1,7 +1,7 @@
  /*
   * Adaptec AIC79xx device driver for Linux.
   *
- * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#208 $
+ * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.c#209 $
   *
   * --------------------------------------------------------------------------
   * Copyright (c) 1994-2000 Justin T. Gibbs.
@@ -4904,7 +4904,21 @@
  			new_status = DID_BAD_TARGET;
  			break;
  		case CAM_SEL_TIMEOUT:
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+			/*
+			 * The 2.4.X SCSI layer will not offline
+			 * devices in response to DID_NO_CONNECT.
+			 * Return a command timeout here instead
+			 * so that for commands other than inquiry
+			 * and request sense commands (which the
+			 * mid-layer special cases) recovery will
+			 * take place and persistently missing
+			 * devices are eventually offlined.
+			 */
+			new_status = DID_TIME_OUT;
+#else
  			new_status = DID_NO_CONNECT;
+#endif
  			break;
  		case CAM_SCSI_BUS_RESET:
  		case CAM_BDR_SENT:
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#159 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_osm.h ====
--- /tmp/tmp.27211.5	2004-09-27 13:37:01.511155432 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_osm.h	2004-04-09 16:48:02.000000000 -0400
@@ -36,7 +36,7 @@
   * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGES.
   *
- * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#159 $
+ * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm.h#161 $
   *
   */
  #ifndef _AIC79XX_LINUX_H_
@@ -94,7 +94,7 @@
  #include <linux/smp.h>
  #endif

-#define AIC79XX_DRIVER_VERSION "2.0.8"
+#define AIC79XX_DRIVER_VERSION "2.0.10"

  /********************* Definitions Required by the Core ***********************/
  /*
==== //depot/aic7xxx/aic7xxx/aic79xx_pci.c#87 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_pci.c ====
--- /tmp/tmp.27211.6	2004-09-27 13:37:01.709125336 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_pci.c	2004-04-09 17:09:51.000000000 -0400
@@ -38,7 +38,7 @@
   * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGES.
   *
- * $Id: //depot/aic7xxx/aic7xxx/aic79xx_pci.c#87 $
+ * $Id: //depot/aic7xxx/aic7xxx/aic79xx_pci.c#88 $
   */

  #ifdef __linux__
@@ -83,6 +83,7 @@
  #define ID_AHA_29320			0x8012900500429005ull
  #define ID_AHA_29320B			0x8013900500439005ull
  #define ID_AHA_39320_B			0x8015900500409005ull
+#define ID_AHA_39320_B_DELL		0x8015900501681028ull
  #define ID_AHA_39320A			0x8016900500409005ull
  #define ID_AHA_39320D			0x8011900500419005ull
  #define ID_AHA_39320D_B			0x801C900500419005ull
@@ -168,6 +169,12 @@
  		ahd_aic7902_setup
  	},
  	{
+		ID_AHA_39320_B_DELL,
+		ID_ALL_MASK,
+		"Adaptec (Dell OEM) 39320 Ultra320 SCSI adapter",
+		ahd_aic7902_setup
+	},
+	{
  		ID_AHA_39320A,
  		ID_ALL_MASK,
  		"Adaptec 39320A Ultra320 SCSI adapter",
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_reg.h#85 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_reg.h_shipped ====
--- /tmp/tmp.27211.7	2004-09-27 13:37:02.484007536 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_reg.h_shipped	2004-05-04 18:25:30.000000000 -0400
@@ -3788,6 +3788,7 @@


  /* Downloaded Constant Definitions */
+#define	CACHELINE_MASK	0x07
  #define	SCB_TRANSFER_SIZE	0x06
  #define	PKT_OVERRUN_BUFOFFSET	0x05
  #define	SG_SIZEOF	0x04
@@ -3795,9 +3796,9 @@
  #define	SG_PREFETCH_ALIGN_MASK	0x02
  #define	SG_PREFETCH_CNT_LIMIT	0x01
  #define	SG_PREFETCH_CNT	0x00
-#define	DOWNLOAD_CONST_COUNT	0x07
+#define	DOWNLOAD_CONST_COUNT	0x08


  /* Exported Labels */
-#define	LABEL_seq_isr 	0x283
-#define	LABEL_timer_isr	0x27f
+#define	LABEL_seq_isr 	0x285
+#define	LABEL_timer_isr	0x281
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_seq.h#86 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_seq.h_shipped ====
--- /tmp/tmp.27211.8	2004-09-27 13:37:02.617987168 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic79xx_seq.h_shipped	2004-05-04 18:25:30.000000000 -0400
@@ -7,12 +7,12 @@
   */
  static uint8_t seqprog[] = {
  	0xff, 0x02, 0x06, 0x78,
-	0x00, 0xea, 0x60, 0x59,
+	0x00, 0xea, 0x64, 0x59,
  	0x01, 0xea, 0x04, 0x30,
  	0xff, 0x04, 0x0c, 0x78,
-	0x19, 0xea, 0x60, 0x59,
+	0x19, 0xea, 0x64, 0x59,
  	0x19, 0xea, 0x04, 0x00,
-	0x33, 0xea, 0x5a, 0x59,
+	0x33, 0xea, 0x5e, 0x59,
  	0x33, 0xea, 0x00, 0x00,
  	0x60, 0x3a, 0x3a, 0x68,
  	0x04, 0x4d, 0x35, 0x78,
@@ -33,15 +33,15 @@
  	0xff, 0xea, 0x62, 0x02,
  	0x00, 0xe2, 0x3a, 0x40,
  	0xff, 0x21, 0x3b, 0x70,
-	0x40, 0x4b, 0xa6, 0x69,
-	0x00, 0xe2, 0x64, 0x59,
-	0x40, 0x4b, 0xa6, 0x69,
-	0x20, 0x4b, 0x92, 0x69,
+	0x40, 0x4b, 0xaa, 0x69,
+	0x00, 0xe2, 0x68, 0x59,
+	0x40, 0x4b, 0xaa, 0x69,
+	0x20, 0x4b, 0x96, 0x69,
  	0xfc, 0x42, 0x44, 0x78,
  	0x10, 0x40, 0x44, 0x78,
-	0x00, 0xe2, 0xf8, 0x5d,
+	0x00, 0xe2, 0xfc, 0x5d,
  	0x20, 0x4d, 0x48, 0x78,
-	0x00, 0xe2, 0xf8, 0x5d,
+	0x00, 0xe2, 0xfc, 0x5d,
  	0x30, 0x3f, 0xc0, 0x09,
  	0x30, 0xe0, 0x50, 0x60,
  	0x7f, 0x4a, 0x94, 0x08,
@@ -51,7 +51,7 @@
  	0x00, 0xe2, 0x76, 0x58,
  	0x00, 0xe2, 0x86, 0x58,
  	0x00, 0xe2, 0x06, 0x40,
-	0x33, 0xea, 0x5a, 0x59,
+	0x33, 0xea, 0x5e, 0x59,
  	0x33, 0xea, 0x00, 0x00,
  	0x01, 0x52, 0x84, 0x78,
  	0x02, 0x58, 0x50, 0x31,
@@ -59,21 +59,21 @@
  	0xff, 0x97, 0x6f, 0x78,
  	0x50, 0x4b, 0x6a, 0x68,
  	0xbf, 0x3a, 0x74, 0x08,
-	0x14, 0xea, 0x60, 0x59,
+	0x14, 0xea, 0x64, 0x59,
  	0x14, 0xea, 0x04, 0x00,
  	0x08, 0x92, 0x25, 0x03,
  	0xff, 0x90, 0x5f, 0x68,
-	0x00, 0xe2, 0x72, 0x5b,
+	0x00, 0xe2, 0x76, 0x5b,
  	0x00, 0xe2, 0x5e, 0x40,
-	0x00, 0xea, 0x5a, 0x59,
+	0x00, 0xea, 0x5e, 0x59,
  	0x01, 0xea, 0x00, 0x30,
  	0x80, 0xf9, 0x7e, 0x68,
-	0x00, 0xe2, 0x58, 0x59,
-	0x11, 0xea, 0x5a, 0x59,
+	0x00, 0xe2, 0x5c, 0x59,
+	0x11, 0xea, 0x5e, 0x59,
  	0x11, 0xea, 0x00, 0x00,
-	0x80, 0xf9, 0x58, 0x79,
+	0x80, 0xf9, 0x5c, 0x79,
  	0xff, 0xea, 0xd4, 0x0d,
-	0x22, 0xea, 0x5a, 0x59,
+	0x22, 0xea, 0x5e, 0x59,
  	0x22, 0xea, 0x00, 0x00,
  	0x10, 0x16, 0x90, 0x78,
  	0x10, 0x16, 0x2c, 0x00,
@@ -144,35 +144,37 @@
  	0x02, 0xa0, 0x40, 0x32,
  	0x02, 0xa0, 0x44, 0x36,
  	0x04, 0x4d, 0x17, 0x69,
-	0x40, 0x16, 0x44, 0x69,
-	0xff, 0x2d, 0x49, 0x61,
+	0x40, 0x16, 0x48, 0x69,
+	0xff, 0x2d, 0x4d, 0x61,
  	0xff, 0x29, 0x85, 0x70,
  	0x02, 0x28, 0x55, 0x32,
  	0x01, 0xea, 0x5a, 0x01,
  	0x04, 0x44, 0xf9, 0x30,
+	0x01, 0x44, 0xc1, 0x31,
  	0x02, 0x28, 0x51, 0x31,
  	0x02, 0xa8, 0x60, 0x31,
  	0x01, 0xa4, 0x61, 0x31,
-	0x04, 0xea, 0x60, 0x31,
  	0x01, 0x3d, 0x61, 0x31,
  	0x01, 0x14, 0xd4, 0x31,
  	0x01, 0x56, 0xad, 0x1a,
  	0xff, 0x54, 0xa9, 0x1a,
  	0xff, 0x55, 0xab, 0x22,
-	0xff, 0x8d, 0x3d, 0x71,
-	0x80, 0xac, 0x3c, 0x71,
-	0x20, 0x16, 0x3c, 0x69,
+	0xff, 0x8d, 0x41, 0x71,
+	0x80, 0xac, 0x40, 0x71,
+	0x20, 0x16, 0x40, 0x69,
+	0x00, 0xac, 0xc4, 0x19,
+	0x07, 0xe2, 0x40, 0xf9,
  	0x02, 0x8c, 0x51, 0x31,
-	0x00, 0xe2, 0x22, 0x41,
+	0x00, 0xe2, 0x24, 0x41,
  	0x01, 0xac, 0x08, 0x31,
  	0x09, 0xea, 0x5a, 0x01,
  	0x02, 0x8c, 0x51, 0x32,
  	0xff, 0xea, 0x1a, 0x07,
  	0x04, 0x24, 0xf9, 0x30,
-	0x1d, 0xea, 0x4e, 0x41,
+	0x1d, 0xea, 0x52, 0x41,
  	0x02, 0x2c, 0x51, 0x31,
  	0x04, 0xa8, 0xf9, 0x30,
-	0x19, 0xea, 0x4e, 0x41,
+	0x19, 0xea, 0x52, 0x41,
  	0x06, 0xea, 0x08, 0x81,
  	0x01, 0xe2, 0x5a, 0x35,
  	0x02, 0xf2, 0xf0, 0x31,
@@ -188,27 +190,27 @@
  	0x02, 0x20, 0xb9, 0x30,
  	0x02, 0x20, 0x51, 0x31,
  	0x4c, 0x93, 0xd7, 0x28,
-	0x10, 0x92, 0x73, 0x79,
+	0x10, 0x92, 0x77, 0x79,
  	0x01, 0x6b, 0xc0, 0x30,
  	0x02, 0x64, 0xc8, 0x00,
  	0x40, 0x3a, 0x74, 0x04,
  	0x00, 0xe2, 0x76, 0x58,
-	0x33, 0xea, 0x5a, 0x59,
+	0x33, 0xea, 0x5e, 0x59,
  	0x33, 0xea, 0x00, 0x00,
  	0x30, 0x3f, 0xc0, 0x09,
-	0x30, 0xe0, 0x74, 0x61,
-	0x20, 0x3f, 0x8a, 0x69,
-	0x10, 0x3f, 0x74, 0x79,
+	0x30, 0xe0, 0x78, 0x61,
+	0x20, 0x3f, 0x8e, 0x69,
+	0x10, 0x3f, 0x78, 0x79,
  	0x02, 0xea, 0x7e, 0x00,
-	0x00, 0xea, 0x5a, 0x59,
+	0x00, 0xea, 0x5e, 0x59,
  	0x01, 0xea, 0x00, 0x30,
  	0x02, 0x4e, 0x51, 0x35,
  	0x01, 0xea, 0x7e, 0x00,
-	0x11, 0xea, 0x5a, 0x59,
+	0x11, 0xea, 0x5e, 0x59,
  	0x11, 0xea, 0x00, 0x00,
  	0x02, 0x4e, 0x51, 0x35,
  	0xc0, 0x4a, 0x94, 0x00,
-	0x04, 0x41, 0x98, 0x79,
+	0x04, 0x41, 0x9c, 0x79,
  	0x08, 0xea, 0x98, 0x00,
  	0x08, 0x57, 0xae, 0x00,
  	0x08, 0x3c, 0x78, 0x00,
@@ -216,12 +218,12 @@
  	0x0f, 0x67, 0xc0, 0x09,
  	0x00, 0x3a, 0x75, 0x02,
  	0x20, 0xea, 0x96, 0x00,
-	0x00, 0xe2, 0x10, 0x42,
+	0x00, 0xe2, 0x14, 0x42,
  	0xc0, 0x4a, 0x94, 0x00,
-	0x40, 0x3a, 0xc4, 0x69,
+	0x40, 0x3a, 0xc8, 0x69,
  	0x02, 0x55, 0x06, 0x68,
-	0x02, 0x56, 0xc4, 0x69,
-	0xff, 0x5b, 0xc4, 0x61,
+	0x02, 0x56, 0xc8, 0x69,
+	0xff, 0x5b, 0xc8, 0x61,
  	0x02, 0x20, 0x51, 0x31,
  	0x80, 0xea, 0xb2, 0x01,
  	0x44, 0xea, 0x00, 0x00,
@@ -229,40 +231,40 @@
  	0x33, 0xea, 0x00, 0x00,
  	0xff, 0xea, 0xb2, 0x09,
  	0xff, 0xe0, 0xc0, 0x19,
-	0xff, 0xe0, 0xc6, 0x79,
+	0xff, 0xe0, 0xca, 0x79,
  	0x02, 0xac, 0x51, 0x31,
-	0x00, 0xe2, 0xbc, 0x41,
+	0x00, 0xe2, 0xc0, 0x41,
  	0x02, 0x5e, 0x50, 0x31,
  	0x02, 0xa8, 0xb8, 0x30,
  	0x02, 0x5c, 0x50, 0x31,
-	0xff, 0xad, 0xd7, 0x71,
+	0xff, 0xad, 0xdb, 0x71,
  	0x02, 0xac, 0x41, 0x31,
  	0x02, 0x22, 0x51, 0x31,
  	0x02, 0xa0, 0x5c, 0x33,
  	0x02, 0xa0, 0x44, 0x32,
-	0x00, 0xe2, 0xe0, 0x41,
-	0x10, 0x92, 0xe1, 0x69,
+	0x00, 0xe2, 0xe4, 0x41,
+	0x10, 0x92, 0xe5, 0x69,
  	0x3d, 0x93, 0xc9, 0x29,
  	0x01, 0xe4, 0xc8, 0x01,
  	0x01, 0xea, 0xca, 0x01,
  	0xff, 0xea, 0xda, 0x01,
  	0x02, 0x20, 0x51, 0x31,
  	0x02, 0xae, 0x41, 0x32,
-	0xff, 0x21, 0xe9, 0x61,
+	0xff, 0x21, 0xed, 0x61,
  	0xff, 0xea, 0x46, 0x02,
  	0x02, 0x5c, 0x50, 0x31,
  	0x40, 0xea, 0x96, 0x00,
-	0x02, 0x56, 0x00, 0x6e,
-	0x01, 0x55, 0x00, 0x6e,
-	0x10, 0x92, 0xf5, 0x79,
-	0x10, 0x40, 0xfe, 0x69,
-	0x01, 0x56, 0xfe, 0x79,
+	0x02, 0x56, 0x04, 0x6e,
+	0x01, 0x55, 0x04, 0x6e,
+	0x10, 0x92, 0xf9, 0x79,
+	0x10, 0x40, 0x02, 0x6a,
+	0x01, 0x56, 0x02, 0x7a,
  	0xff, 0x97, 0x07, 0x78,
-	0x13, 0xea, 0x60, 0x59,
+	0x13, 0xea, 0x64, 0x59,
  	0x13, 0xea, 0x04, 0x00,
  	0x00, 0xe2, 0x06, 0x40,
  	0xbf, 0x3a, 0x74, 0x08,
-	0x04, 0x41, 0x04, 0x7a,
+	0x04, 0x41, 0x08, 0x7a,
  	0x08, 0xea, 0x98, 0x00,
  	0x08, 0x57, 0xae, 0x00,
  	0x01, 0x93, 0x75, 0x32,
@@ -270,108 +272,108 @@
  	0x40, 0xea, 0x72, 0x02,
  	0x08, 0x3c, 0x78, 0x00,
  	0x80, 0xea, 0x6e, 0x02,
-	0x00, 0xe2, 0xde, 0x5b,
+	0x00, 0xe2, 0xe2, 0x5b,
  	0x01, 0x3c, 0xc1, 0x31,
-	0x9f, 0xe0, 0x80, 0x7c,
-	0x80, 0xe0, 0x24, 0x72,
-	0xa0, 0xe0, 0x60, 0x72,
-	0xc0, 0xe0, 0x56, 0x72,
-	0xe0, 0xe0, 0x90, 0x72,
-	0x01, 0xea, 0x60, 0x59,
+	0x9f, 0xe0, 0x84, 0x7c,
+	0x80, 0xe0, 0x28, 0x72,
+	0xa0, 0xe0, 0x64, 0x72,
+	0xc0, 0xe0, 0x5a, 0x72,
+	0xe0, 0xe0, 0x94, 0x72,
+	0x01, 0xea, 0x64, 0x59,
  	0x01, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0x10, 0x42,
-	0x80, 0x39, 0x2b, 0x7a,
-	0x03, 0xea, 0x60, 0x59,
+	0x00, 0xe2, 0x14, 0x42,
+	0x80, 0x39, 0x2f, 0x7a,
+	0x03, 0xea, 0x64, 0x59,
  	0x03, 0xea, 0x04, 0x00,
-	0xee, 0x00, 0x32, 0x6a,
+	0xee, 0x00, 0x36, 0x6a,
  	0x05, 0xea, 0xb4, 0x00,
-	0x33, 0xea, 0x5a, 0x59,
+	0x33, 0xea, 0x5e, 0x59,
  	0x33, 0xea, 0x00, 0x00,
  	0x02, 0xa8, 0x9c, 0x32,
-	0x00, 0xe2, 0x7a, 0x59,
+	0x00, 0xe2, 0x7e, 0x59,
  	0xef, 0x96, 0xd5, 0x19,
-	0x00, 0xe2, 0x42, 0x52,
+	0x00, 0xe2, 0x46, 0x52,
  	0x09, 0x80, 0xe1, 0x30,
  	0x02, 0xea, 0x36, 0x00,
  	0xa8, 0xea, 0x32, 0x00,
-	0x00, 0xe2, 0x48, 0x42,
+	0x00, 0xe2, 0x4c, 0x42,
  	0x01, 0x96, 0xd1, 0x30,
  	0x10, 0x80, 0x89, 0x31,
  	0x20, 0xea, 0x32, 0x00,
  	0xbf, 0x39, 0x73, 0x0a,
-	0x10, 0x4c, 0x52, 0x6a,
-	0x20, 0x19, 0x4a, 0x6a,
+	0x10, 0x4c, 0x56, 0x6a,
  	0x20, 0x19, 0x4e, 0x6a,
-	0x02, 0x4d, 0x10, 0x6a,
+	0x20, 0x19, 0x52, 0x6a,
+	0x02, 0x4d, 0x14, 0x6a,
  	0x40, 0x39, 0x73, 0x02,
-	0x00, 0xe2, 0x10, 0x42,
-	0x80, 0x39, 0xd1, 0x6a,
+	0x00, 0xe2, 0x14, 0x42,
+	0x80, 0x39, 0xd5, 0x6a,
  	0x01, 0x44, 0x10, 0x33,
  	0x08, 0x92, 0x25, 0x03,
-	0x00, 0xe2, 0x10, 0x42,
+	0x00, 0xe2, 0x14, 0x42,
  	0x10, 0xea, 0x80, 0x00,
  	0x01, 0x37, 0xc5, 0x31,
-	0x80, 0xe2, 0x7c, 0x62,
-	0x10, 0x92, 0xa1, 0x6a,
+	0x80, 0xe2, 0x80, 0x62,
+	0x10, 0x92, 0xa5, 0x6a,
  	0xc0, 0x94, 0xc5, 0x01,
-	0x40, 0x92, 0x6d, 0x6a,
+	0x40, 0x92, 0x71, 0x6a,
  	0xbf, 0xe2, 0xc4, 0x09,
-	0x20, 0x92, 0x81, 0x7a,
+	0x20, 0x92, 0x85, 0x7a,
  	0x01, 0xe2, 0x88, 0x30,
-	0x00, 0xe2, 0xde, 0x5b,
-	0xa0, 0x3c, 0x89, 0x62,
+	0x00, 0xe2, 0xe2, 0x5b,
+	0xa0, 0x3c, 0x8d, 0x62,
  	0x23, 0x92, 0x89, 0x08,
-	0x00, 0xe2, 0xde, 0x5b,
-	0xa0, 0x3c, 0x89, 0x62,
-	0x00, 0xa8, 0x80, 0x42,
-	0xff, 0xe2, 0x80, 0x62,
-	0x00, 0xe2, 0xa0, 0x42,
+	0x00, 0xe2, 0xe2, 0x5b,
+	0xa0, 0x3c, 0x8d, 0x62,
+	0x00, 0xa8, 0x84, 0x42,
+	0xff, 0xe2, 0x84, 0x62,
+	0x00, 0xe2, 0xa4, 0x42,
  	0x40, 0xea, 0x98, 0x00,
  	0x01, 0xe2, 0x88, 0x30,
-	0x00, 0xe2, 0xde, 0x5b,
-	0xa0, 0x3c, 0x5f, 0x72,
+	0x00, 0xe2, 0xe2, 0x5b,
+	0xa0, 0x3c, 0x63, 0x72,
  	0x40, 0xea, 0x98, 0x00,
  	0x01, 0x37, 0x95, 0x32,
  	0x08, 0xea, 0x6e, 0x02,
-	0x00, 0xe2, 0x10, 0x42,
-	0xe0, 0xea, 0xfa, 0x5b,
-	0x80, 0xe0, 0xdc, 0x6a,
-	0x04, 0xe0, 0x8e, 0x73,
-	0x02, 0xe0, 0xc0, 0x73,
-	0x00, 0xea, 0x3a, 0x73,
-	0x03, 0xe0, 0xd0, 0x73,
-	0x23, 0xe0, 0xb2, 0x72,
-	0x08, 0xe0, 0xd8, 0x72,
-	0x00, 0xe2, 0xde, 0x5b,
-	0x07, 0xea, 0x60, 0x59,
+	0x00, 0xe2, 0x14, 0x42,
+	0xe0, 0xea, 0xfe, 0x5b,
+	0x80, 0xe0, 0xe0, 0x6a,
+	0x04, 0xe0, 0x92, 0x73,
+	0x02, 0xe0, 0xc4, 0x73,
+	0x00, 0xea, 0x3e, 0x73,
+	0x03, 0xe0, 0xd4, 0x73,
+	0x23, 0xe0, 0xb6, 0x72,
+	0x08, 0xe0, 0xdc, 0x72,
+	0x00, 0xe2, 0xe2, 0x5b,
+	0x07, 0xea, 0x64, 0x59,
  	0x07, 0xea, 0x04, 0x00,
-	0x08, 0x48, 0x11, 0x72,
-	0x04, 0x48, 0xaf, 0x62,
+	0x08, 0x48, 0x15, 0x72,
+	0x04, 0x48, 0xb3, 0x62,
  	0x01, 0x49, 0x89, 0x30,
-	0x00, 0xe2, 0xa0, 0x42,
+	0x00, 0xe2, 0xa4, 0x42,
  	0x01, 0x44, 0xd4, 0x31,
-	0x00, 0xe2, 0xa0, 0x42,
+	0x00, 0xe2, 0xa4, 0x42,
  	0x01, 0x00, 0x6c, 0x32,
-	0x33, 0xea, 0x5a, 0x59,
+	0x33, 0xea, 0x5e, 0x59,
  	0x33, 0xea, 0x00, 0x00,
  	0x4c, 0x3a, 0xc1, 0x28,
  	0x01, 0x64, 0xc0, 0x31,
-	0x00, 0x36, 0x5b, 0x59,
+	0x00, 0x36, 0x5f, 0x59,
  	0x01, 0x36, 0x01, 0x30,
-	0x01, 0xe0, 0xd6, 0x7a,
-	0xa0, 0xea, 0xf0, 0x5b,
-	0x01, 0xa0, 0xd6, 0x62,
-	0x01, 0x84, 0xcb, 0x7a,
-	0x01, 0x95, 0xd9, 0x6a,
-	0x05, 0xea, 0x60, 0x59,
+	0x01, 0xe0, 0xda, 0x7a,
+	0xa0, 0xea, 0xf4, 0x5b,
+	0x01, 0xa0, 0xda, 0x62,
+	0x01, 0x84, 0xcf, 0x7a,
+	0x01, 0x95, 0xdd, 0x6a,
+	0x05, 0xea, 0x64, 0x59,
  	0x05, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0xd8, 0x42,
-	0x03, 0xea, 0x60, 0x59,
+	0x00, 0xe2, 0xdc, 0x42,
+	0x03, 0xea, 0x64, 0x59,
  	0x03, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0xd8, 0x42,
-	0x07, 0xea, 0x02, 0x5c,
+	0x00, 0xe2, 0xdc, 0x42,
+	0x07, 0xea, 0x06, 0x5c,
  	0x01, 0x44, 0xd4, 0x31,
-	0x00, 0xe2, 0x10, 0x42,
+	0x00, 0xe2, 0x14, 0x42,
  	0x3f, 0xe0, 0x76, 0x0a,
  	0xc0, 0x3a, 0xc1, 0x09,
  	0x00, 0x3b, 0x51, 0x01,
@@ -382,54 +384,54 @@
  	0x01, 0xea, 0xc6, 0x01,
  	0x02, 0xe2, 0xc8, 0x31,
  	0x02, 0xec, 0x40, 0x31,
-	0xff, 0xa1, 0xf8, 0x72,
+	0xff, 0xa1, 0xfc, 0x72,
  	0x02, 0xe8, 0xda, 0x31,
  	0x02, 0xa0, 0x50, 0x31,
-	0x00, 0xe2, 0x1a, 0x43,
+	0x00, 0xe2, 0x1e, 0x43,
  	0x80, 0x39, 0x73, 0x02,
  	0x01, 0x44, 0xd4, 0x31,
-	0x00, 0xe2, 0xde, 0x5b,
+	0x00, 0xe2, 0xe2, 0x5b,
  	0x01, 0x39, 0x73, 0x02,
-	0xe0, 0x3c, 0x35, 0x63,
+	0xe0, 0x3c, 0x39, 0x63,
  	0x02, 0x39, 0x73, 0x02,
-	0x20, 0x46, 0x2e, 0x63,
+	0x20, 0x46, 0x32, 0x63,
  	0xff, 0xea, 0x52, 0x09,
-	0xa8, 0xea, 0xf0, 0x5b,
-	0x04, 0x92, 0x15, 0x7b,
+	0xa8, 0xea, 0xf4, 0x5b,
+	0x04, 0x92, 0x19, 0x7b,
  	0x01, 0x3a, 0xc1, 0x31,
-	0x00, 0x93, 0x15, 0x63,
+	0x00, 0x93, 0x19, 0x63,
  	0x01, 0x3b, 0xc1, 0x31,
-	0x00, 0x94, 0x1f, 0x73,
+	0x00, 0x94, 0x23, 0x73,
  	0x01, 0xa9, 0x52, 0x11,
-	0xff, 0xa9, 0x0a, 0x6b,
-	0x00, 0xe2, 0x2e, 0x43,
+	0xff, 0xa9, 0x0e, 0x6b,
+	0x00, 0xe2, 0x32, 0x43,
  	0x10, 0x39, 0x73, 0x02,
-	0x04, 0x92, 0x2f, 0x7b,
+	0x04, 0x92, 0x33, 0x7b,
  	0xfb, 0x92, 0x25, 0x0b,
  	0xff, 0xea, 0x72, 0x0a,
-	0x01, 0xa4, 0x29, 0x6b,
+	0x01, 0xa4, 0x2d, 0x6b,
  	0x02, 0xa8, 0x9c, 0x32,
-	0x00, 0xe2, 0x7a, 0x59,
-	0x10, 0x92, 0xd9, 0x7a,
-	0xff, 0xea, 0x02, 0x5c,
-	0x00, 0xe2, 0xd8, 0x42,
-	0x04, 0xea, 0x60, 0x59,
+	0x00, 0xe2, 0x7e, 0x59,
+	0x10, 0x92, 0xdd, 0x7a,
+	0xff, 0xea, 0x06, 0x5c,
+	0x00, 0xe2, 0xdc, 0x42,
+	0x04, 0xea, 0x64, 0x59,
  	0x04, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0xd8, 0x42,
-	0x04, 0xea, 0x60, 0x59,
+	0x00, 0xe2, 0xdc, 0x42,
+	0x04, 0xea, 0x64, 0x59,
  	0x04, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0x10, 0x42,
-	0x08, 0x92, 0xd1, 0x7a,
-	0xc0, 0x39, 0x45, 0x7b,
-	0x80, 0x39, 0xd1, 0x6a,
-	0xff, 0x88, 0x45, 0x6b,
-	0x40, 0x39, 0xd1, 0x6a,
-	0x10, 0x92, 0x4b, 0x7b,
-	0x0a, 0xea, 0x60, 0x59,
+	0x00, 0xe2, 0x14, 0x42,
+	0x08, 0x92, 0xd5, 0x7a,
+	0xc0, 0x39, 0x49, 0x7b,
+	0x80, 0x39, 0xd5, 0x6a,
+	0xff, 0x88, 0x49, 0x6b,
+	0x40, 0x39, 0xd5, 0x6a,
+	0x10, 0x92, 0x4f, 0x7b,
+	0x0a, 0xea, 0x64, 0x59,
  	0x0a, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0x6a, 0x5b,
-	0x00, 0xe2, 0xaa, 0x43,
-	0x50, 0x4b, 0x52, 0x6b,
+	0x00, 0xe2, 0x6e, 0x5b,
+	0x00, 0xe2, 0xae, 0x43,
+	0x50, 0x4b, 0x56, 0x6b,
  	0xbf, 0x3a, 0x74, 0x08,
  	0x01, 0xe0, 0xf4, 0x31,
  	0xff, 0xea, 0xc0, 0x09,
@@ -439,31 +441,31 @@
  	0x01, 0xfa, 0xc0, 0x35,
  	0x02, 0xa8, 0x90, 0x32,
  	0x02, 0xea, 0xb4, 0x00,
-	0x33, 0xea, 0x5a, 0x59,
+	0x33, 0xea, 0x5e, 0x59,
  	0x33, 0xea, 0x00, 0x00,
  	0x02, 0x48, 0x51, 0x31,
  	0xff, 0x90, 0x85, 0x68,
-	0xff, 0x88, 0x77, 0x6b,
-	0x01, 0xa4, 0x73, 0x6b,
-	0x02, 0xa4, 0x7b, 0x6b,
-	0x01, 0x84, 0x7b, 0x7b,
+	0xff, 0x88, 0x7b, 0x6b,
+	0x01, 0xa4, 0x77, 0x6b,
+	0x02, 0xa4, 0x7f, 0x6b,
+	0x01, 0x84, 0x7f, 0x7b,
  	0x02, 0x28, 0x19, 0x33,
  	0x02, 0xa8, 0x50, 0x36,
-	0xff, 0x88, 0x7b, 0x73,
-	0x00, 0xe2, 0x4e, 0x5b,
+	0xff, 0x88, 0x7f, 0x73,
+	0x00, 0xe2, 0x52, 0x5b,
  	0x02, 0xa8, 0x20, 0x33,
  	0x04, 0xa4, 0x49, 0x03,
  	0xff, 0xea, 0x1a, 0x03,
-	0xff, 0x2d, 0x87, 0x63,
+	0xff, 0x2d, 0x8b, 0x63,
  	0x02, 0xa8, 0x58, 0x32,
  	0x02, 0xa8, 0x5c, 0x36,
  	0x02, 0xa8, 0x40, 0x31,
  	0x02, 0x2e, 0x51, 0x31,
  	0x02, 0xa0, 0x18, 0x33,
  	0x02, 0xa0, 0x5c, 0x36,
-	0xc0, 0x39, 0xd1, 0x6a,
+	0xc0, 0x39, 0xd5, 0x6a,
  	0x04, 0x92, 0x25, 0x03,
-	0x20, 0x92, 0xab, 0x6b,
+	0x20, 0x92, 0xaf, 0x6b,
  	0x02, 0xa8, 0x40, 0x31,
  	0xc0, 0x3a, 0xc1, 0x09,
  	0x00, 0x3b, 0x51, 0x01,
@@ -478,60 +480,60 @@
  	0xf7, 0x57, 0xae, 0x08,
  	0x08, 0xea, 0x98, 0x00,
  	0x01, 0x44, 0xd4, 0x31,
-	0xee, 0x00, 0xb4, 0x6b,
+	0xee, 0x00, 0xb8, 0x6b,
  	0x02, 0xea, 0xb4, 0x00,
  	0xc0, 0xea, 0x72, 0x02,
-	0x09, 0x4c, 0xb6, 0x7b,
+	0x09, 0x4c, 0xba, 0x7b,
  	0x01, 0xea, 0x78, 0x02,
  	0x08, 0x4c, 0x06, 0x68,
-	0x0b, 0xea, 0x60, 0x59,
+	0x0b, 0xea, 0x64, 0x59,
  	0x0b, 0xea, 0x04, 0x00,
  	0x01, 0x44, 0xd4, 0x31,
-	0x20, 0x39, 0x11, 0x7a,
-	0x00, 0xe2, 0xc8, 0x5b,
-	0x00, 0xe2, 0x10, 0x42,
-	0x01, 0x84, 0xcd, 0x7b,
+	0x20, 0x39, 0x15, 0x7a,
+	0x00, 0xe2, 0xcc, 0x5b,
+	0x00, 0xe2, 0x14, 0x42,
+	0x01, 0x84, 0xd1, 0x7b,
  	0x01, 0xa4, 0x49, 0x07,
  	0x08, 0x60, 0x30, 0x33,
  	0x08, 0x80, 0x41, 0x37,
  	0xdf, 0x39, 0x73, 0x0a,
-	0xee, 0x00, 0xda, 0x6b,
+	0xee, 0x00, 0xde, 0x6b,
  	0x05, 0xea, 0xb4, 0x00,
-	0x33, 0xea, 0x5a, 0x59,
+	0x33, 0xea, 0x5e, 0x59,
  	0x33, 0xea, 0x00, 0x00,
-	0x00, 0xe2, 0x7a, 0x59,
-	0x00, 0xe2, 0xd8, 0x42,
-	0xff, 0x42, 0xea, 0x6b,
-	0x01, 0x41, 0xde, 0x6b,
-	0x02, 0x41, 0xde, 0x7b,
-	0xff, 0x42, 0xea, 0x6b,
-	0x01, 0x41, 0xde, 0x6b,
-	0x02, 0x41, 0xde, 0x7b,
-	0xff, 0x42, 0xea, 0x7b,
-	0x04, 0x4c, 0xde, 0x6b,
+	0x00, 0xe2, 0x7e, 0x59,
+	0x00, 0xe2, 0xdc, 0x42,
+	0xff, 0x42, 0xee, 0x6b,
+	0x01, 0x41, 0xe2, 0x6b,
+	0x02, 0x41, 0xe2, 0x7b,
+	0xff, 0x42, 0xee, 0x6b,
+	0x01, 0x41, 0xe2, 0x6b,
+	0x02, 0x41, 0xe2, 0x7b,
+	0xff, 0x42, 0xee, 0x7b,
+	0x04, 0x4c, 0xe2, 0x6b,
  	0xe0, 0x41, 0x78, 0x0e,
  	0x01, 0x44, 0xd4, 0x31,
-	0xff, 0x42, 0xf2, 0x7b,
-	0x04, 0x4c, 0xf2, 0x6b,
+	0xff, 0x42, 0xf6, 0x7b,
+	0x04, 0x4c, 0xf6, 0x6b,
  	0xe0, 0x41, 0x78, 0x0a,
-	0xe0, 0x3c, 0x11, 0x62,
+	0xe0, 0x3c, 0x15, 0x62,
  	0xff, 0xea, 0xca, 0x09,
  	0x01, 0xe2, 0xc8, 0x31,
  	0x01, 0x46, 0xda, 0x35,
  	0x01, 0x44, 0xd4, 0x35,
  	0x10, 0xea, 0x80, 0x00,
  	0x01, 0xe2, 0x6e, 0x36,
-	0x04, 0xa6, 0x0a, 0x7c,
+	0x04, 0xa6, 0x0e, 0x7c,
  	0xff, 0xea, 0x5a, 0x09,
  	0xff, 0xea, 0x4c, 0x0d,
-	0x01, 0xa6, 0x36, 0x6c,
+	0x01, 0xa6, 0x3a, 0x6c,
  	0x10, 0xad, 0x84, 0x78,
-	0x80, 0xad, 0x2e, 0x6c,
+	0x80, 0xad, 0x32, 0x6c,
  	0x08, 0xad, 0x84, 0x68,
-	0x20, 0x19, 0x22, 0x7c,
+	0x20, 0x19, 0x26, 0x7c,
  	0x80, 0xea, 0xb2, 0x01,
  	0x11, 0x00, 0x00, 0x10,
-	0x02, 0xa6, 0x1e, 0x7c,
+	0x02, 0xa6, 0x22, 0x7c,
  	0xff, 0xea, 0xb2, 0x0d,
  	0x11, 0x00, 0x00, 0x10,
  	0xff, 0xea, 0xb2, 0x09,
@@ -559,7 +561,7 @@
  	0x00, 0x86, 0x0d, 0x23,
  	0x00, 0x87, 0x0f, 0x23,
  	0x01, 0x84, 0xc5, 0x31,
-	0x80, 0x83, 0x59, 0x7c,
+	0x80, 0x83, 0x5d, 0x7c,
  	0x02, 0xe2, 0xc4, 0x01,
  	0xff, 0xea, 0x4c, 0x09,
  	0x01, 0xe2, 0x36, 0x30,
@@ -570,75 +572,75 @@
  	0xfe, 0xa6, 0x4c, 0x0d,
  	0x0b, 0x98, 0xe1, 0x30,
  	0xfd, 0xa4, 0x49, 0x09,
-	0x80, 0xa3, 0x6d, 0x7c,
+	0x80, 0xa3, 0x71, 0x7c,
  	0x02, 0xa4, 0x48, 0x01,
  	0x01, 0xa4, 0x36, 0x30,
  	0xa8, 0xea, 0x32, 0x00,
  	0xfd, 0xa4, 0x49, 0x0b,
  	0x05, 0xa3, 0x07, 0x33,
-	0x80, 0x83, 0x79, 0x6c,
+	0x80, 0x83, 0x7d, 0x6c,
  	0x02, 0xea, 0x4c, 0x05,
  	0xff, 0xea, 0x4c, 0x0d,
-	0x00, 0xe2, 0x52, 0x59,
-	0x02, 0xa6, 0x0c, 0x6c,
+	0x00, 0xe2, 0x56, 0x59,
+	0x02, 0xa6, 0x10, 0x6c,
  	0x80, 0xf9, 0xf2, 0x05,
-	0xc0, 0x39, 0x87, 0x7c,
-	0x03, 0xea, 0x60, 0x59,
+	0xc0, 0x39, 0x8b, 0x7c,
+	0x03, 0xea, 0x64, 0x59,
  	0x03, 0xea, 0x04, 0x00,
-	0x20, 0x39, 0xab, 0x7c,
-	0x01, 0x84, 0x91, 0x6c,
-	0x06, 0xea, 0x60, 0x59,
+	0x20, 0x39, 0xaf, 0x7c,
+	0x01, 0x84, 0x95, 0x6c,
+	0x06, 0xea, 0x64, 0x59,
  	0x06, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0xae, 0x44,
+	0x00, 0xe2, 0xb2, 0x44,
  	0x01, 0x00, 0x6c, 0x32,
-	0xee, 0x00, 0x9a, 0x6c,
+	0xee, 0x00, 0x9e, 0x6c,
  	0x05, 0xea, 0xb4, 0x00,
-	0x33, 0xea, 0x5a, 0x59,
+	0x33, 0xea, 0x5e, 0x59,
  	0x33, 0xea, 0x00, 0x00,
  	0x80, 0x3d, 0x7a, 0x00,
-	0xfc, 0x42, 0x9c, 0x7c,
+	0xfc, 0x42, 0xa0, 0x7c,
  	0x7f, 0x3d, 0x7a, 0x08,
-	0x00, 0x36, 0x5b, 0x59,
+	0x00, 0x36, 0x5f, 0x59,
  	0x01, 0x36, 0x01, 0x30,
-	0x09, 0xea, 0x60, 0x59,
+	0x09, 0xea, 0x64, 0x59,
  	0x09, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0x10, 0x42,
-	0x01, 0xa4, 0x91, 0x6c,
-	0x00, 0xe2, 0x64, 0x5c,
+	0x00, 0xe2, 0x14, 0x42,
+	0x01, 0xa4, 0x95, 0x6c,
+	0x00, 0xe2, 0x68, 0x5c,
  	0x20, 0x39, 0x73, 0x02,
  	0x01, 0x00, 0x6c, 0x32,
-	0x02, 0xa6, 0xb6, 0x7c,
-	0x00, 0xe2, 0x7a, 0x5c,
+	0x02, 0xa6, 0xba, 0x7c,
+	0x00, 0xe2, 0x7e, 0x5c,
  	0x00, 0xe2, 0x76, 0x58,
  	0x00, 0xe2, 0x86, 0x58,
  	0x00, 0xe2, 0x5a, 0x58,
-	0x00, 0x36, 0x5b, 0x59,
+	0x00, 0x36, 0x5f, 0x59,
  	0x01, 0x36, 0x01, 0x30,
-	0x20, 0x19, 0xb6, 0x6c,
-	0x00, 0xe2, 0xe6, 0x5c,
-	0x04, 0x19, 0xd0, 0x6c,
+	0x20, 0x19, 0xba, 0x6c,
+	0x00, 0xe2, 0xea, 0x5c,
+	0x04, 0x19, 0xd4, 0x6c,
  	0x02, 0x19, 0x32, 0x00,
-	0x01, 0x84, 0xd1, 0x7c,
-	0x01, 0x1b, 0xca, 0x7c,
-	0x01, 0x1a, 0xd0, 0x6c,
-	0x00, 0xe2, 0x80, 0x44,
-	0x80, 0x4b, 0xd6, 0x6c,
-	0x01, 0x4c, 0xd2, 0x7c,
-	0x03, 0x42, 0x80, 0x6c,
-	0x00, 0xe2, 0x06, 0x5c,
+	0x01, 0x84, 0xd5, 0x7c,
+	0x01, 0x1b, 0xce, 0x7c,
+	0x01, 0x1a, 0xd4, 0x6c,
+	0x00, 0xe2, 0x84, 0x44,
+	0x80, 0x4b, 0xda, 0x6c,
+	0x01, 0x4c, 0xd6, 0x7c,
+	0x03, 0x42, 0x84, 0x6c,
+	0x00, 0xe2, 0x0a, 0x5c,
  	0x80, 0xf9, 0xf2, 0x01,
-	0x04, 0x39, 0x11, 0x7a,
-	0x00, 0xe2, 0x10, 0x42,
-	0x08, 0x5d, 0xee, 0x6c,
+	0x04, 0x39, 0x15, 0x7a,
+	0x00, 0xe2, 0x14, 0x42,
+	0x08, 0x5d, 0xf2, 0x6c,
  	0x00, 0xe2, 0x76, 0x58,
-	0x00, 0x36, 0x5b, 0x59,
+	0x00, 0x36, 0x5f, 0x59,
  	0x01, 0x36, 0x01, 0x30,
-	0x02, 0x1b, 0xde, 0x7c,
-	0x08, 0x5d, 0xec, 0x7c,
+	0x02, 0x1b, 0xe2, 0x7c,
+	0x08, 0x5d, 0xf0, 0x7c,
  	0x03, 0x68, 0x00, 0x37,
  	0x01, 0x84, 0x09, 0x07,
-	0x80, 0x1b, 0xf8, 0x7c,
-	0x80, 0x84, 0xf9, 0x6c,
+	0x80, 0x1b, 0xfc, 0x7c,
+	0x80, 0x84, 0xfd, 0x6c,
  	0xff, 0x85, 0x0b, 0x1b,
  	0xff, 0x86, 0x0d, 0x23,
  	0xff, 0x87, 0x0f, 0x23,
@@ -650,161 +652,161 @@
  	0xf9, 0xd9, 0xb2, 0x0d,
  	0x01, 0xd9, 0xb2, 0x05,
  	0x01, 0x52, 0x48, 0x31,
-	0x20, 0xa4, 0x22, 0x7d,
-	0x20, 0x5b, 0x22, 0x7d,
-	0x80, 0xf9, 0x30, 0x7d,
+	0x20, 0xa4, 0x26, 0x7d,
+	0x20, 0x5b, 0x26, 0x7d,
+	0x80, 0xf9, 0x34, 0x7d,
  	0x02, 0xea, 0xb4, 0x00,
  	0x11, 0x00, 0x00, 0x10,
-	0x04, 0x19, 0x3c, 0x7d,
+	0x04, 0x19, 0x40, 0x7d,
  	0xdf, 0x19, 0x32, 0x08,
-	0x60, 0x5b, 0x3c, 0x6d,
-	0x01, 0x4c, 0x16, 0x7d,
+	0x60, 0x5b, 0x40, 0x6d,
+	0x01, 0x4c, 0x1a, 0x7d,
  	0x20, 0x19, 0x32, 0x00,
  	0x01, 0xd9, 0xb2, 0x05,
  	0x02, 0xea, 0xb4, 0x00,
  	0x01, 0xd9, 0xb2, 0x05,
-	0x10, 0x5b, 0x34, 0x6d,
-	0x08, 0x5b, 0x3e, 0x6d,
-	0x20, 0x5b, 0x2e, 0x6d,
-	0x02, 0x5b, 0x5e, 0x6d,
-	0x0e, 0xea, 0x60, 0x59,
+	0x10, 0x5b, 0x38, 0x6d,
+	0x08, 0x5b, 0x42, 0x6d,
+	0x20, 0x5b, 0x32, 0x6d,
+	0x02, 0x5b, 0x62, 0x6d,
+	0x0e, 0xea, 0x64, 0x59,
  	0x0e, 0xea, 0x04, 0x00,
-	0x80, 0xf9, 0x1e, 0x6d,
+	0x80, 0xf9, 0x22, 0x6d,
  	0xdf, 0x5c, 0xb8, 0x08,
  	0x01, 0xd9, 0xb2, 0x05,
-	0x01, 0xa4, 0x19, 0x6e,
-	0x00, 0xe2, 0x64, 0x5c,
-	0x00, 0xe2, 0x68, 0x5d,
+	0x01, 0xa4, 0x1d, 0x6e,
+	0x00, 0xe2, 0x68, 0x5c,
+	0x00, 0xe2, 0x6c, 0x5d,
  	0x01, 0x90, 0x21, 0x1b,
  	0x01, 0xd9, 0xb2, 0x05,
-	0x00, 0xe2, 0x4e, 0x5b,
+	0x00, 0xe2, 0x52, 0x5b,
  	0xf3, 0x96, 0xd5, 0x19,
-	0x00, 0xe2, 0x4c, 0x55,
-	0x80, 0x96, 0x4d, 0x6d,
-	0x0f, 0xea, 0x60, 0x59,
+	0x00, 0xe2, 0x50, 0x55,
+	0x80, 0x96, 0x51, 0x6d,
+	0x0f, 0xea, 0x64, 0x59,
  	0x0f, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0x54, 0x45,
+	0x00, 0xe2, 0x58, 0x45,
  	0x04, 0x8c, 0xe1, 0x30,
  	0x01, 0xea, 0xf2, 0x00,
  	0x02, 0xea, 0x36, 0x00,
  	0xa8, 0xea, 0x32, 0x00,
-	0xff, 0x97, 0x5b, 0x7d,
-	0x14, 0xea, 0x60, 0x59,
+	0xff, 0x97, 0x5f, 0x7d,
+	0x14, 0xea, 0x64, 0x59,
  	0x14, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0xca, 0x5d,
+	0x00, 0xe2, 0xce, 0x5d,
  	0x01, 0xd9, 0xb2, 0x05,
  	0x09, 0x80, 0xe1, 0x30,
  	0x02, 0xea, 0x36, 0x00,
  	0xa8, 0xea, 0x32, 0x00,
-	0x00, 0xe2, 0xc2, 0x5d,
+	0x00, 0xe2, 0xc6, 0x5d,
  	0x01, 0xd9, 0xb2, 0x05,
-	0x02, 0xa6, 0x78, 0x7d,
-	0x00, 0xe2, 0x52, 0x59,
-	0x20, 0x5b, 0x86, 0x6d,
-	0xfc, 0x42, 0x72, 0x7d,
-	0x10, 0x40, 0x74, 0x6d,
-	0x20, 0x4d, 0x76, 0x7d,
-	0x08, 0x5d, 0x86, 0x6d,
-	0x02, 0xa6, 0x0c, 0x6c,
-	0x00, 0xe2, 0x52, 0x59,
-	0x20, 0x5b, 0x86, 0x6d,
-	0x01, 0x1b, 0xa6, 0x6d,
-	0xfc, 0x42, 0x82, 0x7d,
-	0x10, 0x40, 0x84, 0x6d,
+	0x02, 0xa6, 0x7c, 0x7d,
+	0x00, 0xe2, 0x56, 0x59,
+	0x20, 0x5b, 0x8a, 0x6d,
+	0xfc, 0x42, 0x76, 0x7d,
+	0x10, 0x40, 0x78, 0x6d,
+	0x20, 0x4d, 0x7a, 0x7d,
+	0x08, 0x5d, 0x8a, 0x6d,
+	0x02, 0xa6, 0x10, 0x6c,
+	0x00, 0xe2, 0x56, 0x59,
+	0x20, 0x5b, 0x8a, 0x6d,
+	0x01, 0x1b, 0xaa, 0x6d,
+	0xfc, 0x42, 0x86, 0x7d,
+	0x10, 0x40, 0x88, 0x6d,
  	0x20, 0x4d, 0x84, 0x78,
  	0x08, 0x5d, 0x84, 0x78,
  	0x02, 0x19, 0x32, 0x00,
  	0x01, 0x5b, 0x40, 0x31,
-	0x00, 0xe2, 0xe6, 0x5c,
-	0x00, 0xe2, 0xc8, 0x5b,
+	0x00, 0xe2, 0xea, 0x5c,
+	0x00, 0xe2, 0xcc, 0x5b,
  	0x20, 0xea, 0xb6, 0x00,
-	0x00, 0xe2, 0x06, 0x5c,
+	0x00, 0xe2, 0x0a, 0x5c,
  	0x20, 0x5c, 0xb8, 0x00,
-	0x04, 0x19, 0x9c, 0x6d,
-	0x01, 0x1a, 0x9c, 0x6d,
-	0x00, 0xe2, 0x52, 0x59,
+	0x04, 0x19, 0xa0, 0x6d,
+	0x01, 0x1a, 0xa0, 0x6d,
+	0x00, 0xe2, 0x56, 0x59,
  	0x01, 0x1a, 0x84, 0x78,
  	0x80, 0xf9, 0xf2, 0x01,
-	0x20, 0xa0, 0x00, 0x7e,
+	0x20, 0xa0, 0x04, 0x7e,
  	0xff, 0x90, 0x21, 0x1b,
-	0x08, 0x92, 0x5f, 0x6b,
+	0x08, 0x92, 0x63, 0x6b,
  	0x02, 0xea, 0xb4, 0x04,
  	0x01, 0xa4, 0x49, 0x03,
-	0x40, 0x5b, 0xb6, 0x6d,
-	0x00, 0xe2, 0x52, 0x59,
-	0x40, 0x5b, 0xb6, 0x6d,
-	0x04, 0x5d, 0x1a, 0x7e,
-	0x01, 0x1a, 0x1a, 0x7e,
+	0x40, 0x5b, 0xba, 0x6d,
+	0x00, 0xe2, 0x56, 0x59,
+	0x40, 0x5b, 0xba, 0x6d,
+	0x04, 0x5d, 0x1e, 0x7e,
+	0x01, 0x1a, 0x1e, 0x7e,
  	0x20, 0x4d, 0x84, 0x78,
-	0x40, 0x5b, 0x00, 0x7e,
-	0x04, 0x5d, 0x1a, 0x7e,
-	0x01, 0x1a, 0x1a, 0x7e,
+	0x40, 0x5b, 0x04, 0x7e,
+	0x04, 0x5d, 0x1e, 0x7e,
+	0x01, 0x1a, 0x1e, 0x7e,
  	0x80, 0xf9, 0xf2, 0x01,
  	0xff, 0x90, 0x21, 0x1b,
-	0x08, 0x92, 0x5f, 0x6b,
+	0x08, 0x92, 0x63, 0x6b,
  	0x02, 0xea, 0xb4, 0x04,
-	0x00, 0xe2, 0x52, 0x59,
+	0x00, 0xe2, 0x56, 0x59,
  	0x01, 0x1b, 0x84, 0x78,
  	0x80, 0xf9, 0xf2, 0x01,
  	0x02, 0xea, 0xb4, 0x04,
-	0x00, 0xe2, 0x52, 0x59,
-	0x01, 0x1b, 0xde, 0x6d,
-	0x40, 0x5b, 0xec, 0x7d,
-	0x01, 0x1b, 0xde, 0x6d,
+	0x00, 0xe2, 0x56, 0x59,
+	0x01, 0x1b, 0xe2, 0x6d,
+	0x40, 0x5b, 0xf0, 0x7d,
+	0x01, 0x1b, 0xe2, 0x6d,
  	0x02, 0x19, 0x32, 0x00,
  	0x01, 0x1a, 0x84, 0x78,
  	0x80, 0xf9, 0xf2, 0x01,
  	0xff, 0xea, 0x10, 0x03,
  	0x08, 0x92, 0x25, 0x03,
-	0x00, 0xe2, 0x5e, 0x43,
-	0x01, 0x1a, 0xe8, 0x7d,
-	0x40, 0x5b, 0xe4, 0x7d,
-	0x01, 0x1a, 0xd2, 0x6d,
+	0x00, 0xe2, 0x62, 0x43,
+	0x01, 0x1a, 0xec, 0x7d,
+	0x40, 0x5b, 0xe8, 0x7d,
+	0x01, 0x1a, 0xd6, 0x6d,
  	0xfc, 0x42, 0x84, 0x78,
-	0x01, 0x1a, 0xec, 0x6d,
-	0x10, 0xea, 0x60, 0x59,
+	0x01, 0x1a, 0xf0, 0x6d,
+	0x10, 0xea, 0x64, 0x59,
  	0x10, 0xea, 0x04, 0x00,
  	0xfc, 0x42, 0x84, 0x78,
-	0x10, 0x40, 0xf2, 0x6d,
+	0x10, 0x40, 0xf6, 0x6d,
  	0x20, 0x4d, 0x84, 0x78,
-	0x40, 0x5b, 0xd2, 0x6d,
+	0x40, 0x5b, 0xd6, 0x6d,
  	0x01, 0x1a, 0x84, 0x78,
  	0x01, 0x90, 0x21, 0x1b,
  	0x30, 0x3f, 0xc0, 0x09,
  	0x30, 0xe0, 0x84, 0x60,
  	0x40, 0x4b, 0x84, 0x68,
  	0xff, 0xea, 0x52, 0x01,
-	0xee, 0x00, 0x08, 0x6e,
+	0xee, 0x00, 0x0c, 0x6e,
  	0x80, 0xf9, 0xf2, 0x01,
  	0xff, 0x90, 0x21, 0x1b,
  	0x02, 0xea, 0xb4, 0x00,
  	0x20, 0xea, 0x9a, 0x00,
-	0xf3, 0x42, 0x12, 0x6e,
-	0x12, 0xea, 0x60, 0x59,
+	0xf3, 0x42, 0x16, 0x6e,
+	0x12, 0xea, 0x64, 0x59,
  	0x12, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0x10, 0x42,
-	0x0d, 0xea, 0x60, 0x59,
+	0x00, 0xe2, 0x14, 0x42,
+	0x0d, 0xea, 0x64, 0x59,
  	0x0d, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0x10, 0x42,
+	0x00, 0xe2, 0x14, 0x42,
  	0x01, 0x90, 0x21, 0x1b,
-	0x11, 0xea, 0x60, 0x59,
+	0x11, 0xea, 0x64, 0x59,
  	0x11, 0xea, 0x04, 0x00,
-	0x00, 0xe2, 0x4e, 0x5b,
+	0x00, 0xe2, 0x52, 0x5b,
  	0x08, 0x5a, 0xb4, 0x00,
-	0x00, 0xe2, 0x40, 0x5e,
+	0x00, 0xe2, 0x44, 0x5e,
  	0xa8, 0xea, 0x32, 0x00,
-	0x00, 0xe2, 0x52, 0x59,
-	0x80, 0x1a, 0x2e, 0x7e,
-	0x00, 0xe2, 0x40, 0x5e,
+	0x00, 0xe2, 0x56, 0x59,
+	0x80, 0x1a, 0x32, 0x7e,
+	0x00, 0xe2, 0x44, 0x5e,
  	0x80, 0x19, 0x32, 0x00,
-	0x40, 0x5b, 0x34, 0x6e,
-	0x08, 0x5a, 0x34, 0x7e,
+	0x40, 0x5b, 0x38, 0x6e,
+	0x08, 0x5a, 0x38, 0x7e,
  	0x20, 0x4d, 0x84, 0x78,
  	0x02, 0x84, 0x09, 0x03,
-	0x40, 0x5b, 0x00, 0x7e,
+	0x40, 0x5b, 0x04, 0x7e,
  	0xff, 0x90, 0x21, 0x1b,
  	0x80, 0xf9, 0xf2, 0x01,
-	0x08, 0x92, 0x5f, 0x6b,
+	0x08, 0x92, 0x63, 0x6b,
  	0x02, 0xea, 0xb4, 0x04,
  	0x01, 0x40, 0xe1, 0x30,
  	0x05, 0x41, 0xe3, 0x98,
@@ -1038,116 +1040,116 @@
  	{ ahd_patch2_func, 67, 1, 2 },
  	{ ahd_patch0_func, 68, 1, 1 },
  	{ ahd_patch4_func, 116, 1, 1 },
-	{ ahd_patch2_func, 173, 3, 1 },
-	{ ahd_patch1_func, 176, 2, 1 },
-	{ ahd_patch5_func, 178, 1, 1 },
-	{ ahd_patch2_func, 187, 1, 2 },
-	{ ahd_patch0_func, 188, 1, 1 },
-	{ ahd_patch6_func, 189, 2, 2 },
-	{ ahd_patch0_func, 191, 6, 3 },
-	{ ahd_patch2_func, 194, 1, 2 },
-	{ ahd_patch0_func, 195, 1, 1 },
-	{ ahd_patch2_func, 198, 1, 2 },
-	{ ahd_patch0_func, 199, 1, 1 },
-	{ ahd_patch3_func, 201, 1, 1 },
-	{ ahd_patch7_func, 202, 3, 1 },
-	{ ahd_patch3_func, 211, 1, 1 },
-	{ ahd_patch5_func, 212, 16, 2 },
-	{ ahd_patch0_func, 228, 1, 1 },
-	{ ahd_patch8_func, 248, 2, 1 },
-	{ ahd_patch1_func, 252, 1, 2 },
-	{ ahd_patch0_func, 253, 1, 1 },
-	{ ahd_patch7_func, 256, 3, 1 },
-	{ ahd_patch1_func, 271, 1, 2 },
-	{ ahd_patch0_func, 272, 1, 1 },
-	{ ahd_patch1_func, 275, 1, 2 },
-	{ ahd_patch0_func, 276, 1, 1 },
-	{ ahd_patch2_func, 279, 1, 2 },
-	{ ahd_patch0_func, 280, 1, 1 },
-	{ ahd_patch9_func, 293, 2, 2 },
-	{ ahd_patch0_func, 295, 1, 1 },
-	{ ahd_patch1_func, 337, 1, 2 },
-	{ ahd_patch0_func, 338, 1, 1 },
-	{ ahd_patch2_func, 346, 1, 2 },
-	{ ahd_patch0_func, 347, 1, 1 },
-	{ ahd_patch2_func, 350, 1, 2 },
-	{ ahd_patch0_func, 351, 1, 1 },
-	{ ahd_patch1_func, 357, 1, 2 },
-	{ ahd_patch0_func, 358, 1, 1 },
-	{ ahd_patch1_func, 360, 1, 2 },
-	{ ahd_patch0_func, 361, 1, 1 },
-	{ ahd_patch10_func, 380, 1, 1 },
-	{ ahd_patch10_func, 383, 1, 1 },
+	{ ahd_patch2_func, 175, 3, 1 },
+	{ ahd_patch1_func, 178, 2, 1 },
+	{ ahd_patch5_func, 180, 1, 1 },
+	{ ahd_patch2_func, 189, 1, 2 },
+	{ ahd_patch0_func, 190, 1, 1 },
+	{ ahd_patch6_func, 191, 2, 2 },
+	{ ahd_patch0_func, 193, 6, 3 },
+	{ ahd_patch2_func, 196, 1, 2 },
+	{ ahd_patch0_func, 197, 1, 1 },
+	{ ahd_patch2_func, 200, 1, 2 },
+	{ ahd_patch0_func, 201, 1, 1 },
+	{ ahd_patch3_func, 203, 1, 1 },
+	{ ahd_patch7_func, 204, 3, 1 },
+	{ ahd_patch3_func, 213, 1, 1 },
+	{ ahd_patch5_func, 214, 16, 2 },
+	{ ahd_patch0_func, 230, 1, 1 },
+	{ ahd_patch8_func, 250, 2, 1 },
+	{ ahd_patch1_func, 254, 1, 2 },
+	{ ahd_patch0_func, 255, 1, 1 },
+	{ ahd_patch7_func, 258, 3, 1 },
+	{ ahd_patch1_func, 273, 1, 2 },
+	{ ahd_patch0_func, 274, 1, 1 },
+	{ ahd_patch1_func, 277, 1, 2 },
+	{ ahd_patch0_func, 278, 1, 1 },
+	{ ahd_patch2_func, 281, 1, 2 },
+	{ ahd_patch0_func, 282, 1, 1 },
+	{ ahd_patch9_func, 295, 2, 2 },
+	{ ahd_patch0_func, 297, 1, 1 },
+	{ ahd_patch1_func, 339, 1, 2 },
+	{ ahd_patch0_func, 340, 1, 1 },
+	{ ahd_patch2_func, 348, 1, 2 },
+	{ ahd_patch0_func, 349, 1, 1 },
+	{ ahd_patch2_func, 352, 1, 2 },
+	{ ahd_patch0_func, 353, 1, 1 },
+	{ ahd_patch1_func, 359, 1, 2 },
+	{ ahd_patch0_func, 360, 1, 1 },
+	{ ahd_patch1_func, 362, 1, 2 },
+	{ ahd_patch0_func, 363, 1, 1 },
+	{ ahd_patch10_func, 382, 1, 1 },
  	{ ahd_patch10_func, 385, 1, 1 },
-	{ ahd_patch10_func, 397, 1, 1 },
-	{ ahd_patch1_func, 407, 1, 2 },
-	{ ahd_patch0_func, 408, 1, 1 },
-	{ ahd_patch1_func, 410, 1, 2 },
-	{ ahd_patch0_func, 411, 1, 1 },
-	{ ahd_patch1_func, 419, 1, 2 },
-	{ ahd_patch0_func, 420, 1, 1 },
-	{ ahd_patch2_func, 433, 1, 2 },
-	{ ahd_patch0_func, 434, 1, 1 },
-	{ ahd_patch11_func, 470, 1, 1 },
-	{ ahd_patch1_func, 478, 1, 2 },
-	{ ahd_patch0_func, 479, 1, 1 },
-	{ ahd_patch2_func, 491, 1, 2 },
-	{ ahd_patch0_func, 492, 1, 1 },
-	{ ahd_patch12_func, 495, 6, 2 },
-	{ ahd_patch0_func, 501, 1, 1 },
-	{ ahd_patch13_func, 522, 7, 1 },
-	{ ahd_patch14_func, 531, 1, 1 },
-	{ ahd_patch15_func, 540, 1, 1 },
-	{ ahd_patch16_func, 541, 1, 2 },
-	{ ahd_patch0_func, 542, 1, 1 },
-	{ ahd_patch17_func, 545, 1, 1 },
-	{ ahd_patch16_func, 546, 1, 1 },
-	{ ahd_patch18_func, 557, 1, 2 },
-	{ ahd_patch0_func, 558, 1, 1 },
-	{ ahd_patch1_func, 577, 1, 2 },
-	{ ahd_patch0_func, 578, 1, 1 },
-	{ ahd_patch1_func, 581, 1, 2 },
-	{ ahd_patch0_func, 582, 1, 1 },
-	{ ahd_patch2_func, 587, 1, 2 },
-	{ ahd_patch0_func, 588, 1, 1 },
-	{ ahd_patch2_func, 592, 1, 2 },
-	{ ahd_patch0_func, 593, 1, 1 },
-	{ ahd_patch1_func, 594, 1, 2 },
+	{ ahd_patch10_func, 387, 1, 1 },
+	{ ahd_patch10_func, 399, 1, 1 },
+	{ ahd_patch1_func, 409, 1, 2 },
+	{ ahd_patch0_func, 410, 1, 1 },
+	{ ahd_patch1_func, 412, 1, 2 },
+	{ ahd_patch0_func, 413, 1, 1 },
+	{ ahd_patch1_func, 421, 1, 2 },
+	{ ahd_patch0_func, 422, 1, 1 },
+	{ ahd_patch2_func, 435, 1, 2 },
+	{ ahd_patch0_func, 436, 1, 1 },
+	{ ahd_patch11_func, 472, 1, 1 },
+	{ ahd_patch1_func, 480, 1, 2 },
+	{ ahd_patch0_func, 481, 1, 1 },
+	{ ahd_patch2_func, 493, 1, 2 },
+	{ ahd_patch0_func, 494, 1, 1 },
+	{ ahd_patch12_func, 497, 6, 2 },
+	{ ahd_patch0_func, 503, 1, 1 },
+	{ ahd_patch13_func, 524, 7, 1 },
+	{ ahd_patch14_func, 533, 1, 1 },
+	{ ahd_patch15_func, 542, 1, 1 },
+	{ ahd_patch16_func, 543, 1, 2 },
+	{ ahd_patch0_func, 544, 1, 1 },
+	{ ahd_patch17_func, 547, 1, 1 },
+	{ ahd_patch16_func, 548, 1, 1 },
+	{ ahd_patch18_func, 559, 1, 2 },
+	{ ahd_patch0_func, 560, 1, 1 },
+	{ ahd_patch1_func, 579, 1, 2 },
+	{ ahd_patch0_func, 580, 1, 1 },
+	{ ahd_patch1_func, 583, 1, 2 },
+	{ ahd_patch0_func, 584, 1, 1 },
+	{ ahd_patch2_func, 589, 1, 2 },
+	{ ahd_patch0_func, 590, 1, 1 },
+	{ ahd_patch2_func, 594, 1, 2 },
  	{ ahd_patch0_func, 595, 1, 1 },
-	{ ahd_patch2_func, 606, 1, 2 },
-	{ ahd_patch0_func, 607, 1, 1 },
-	{ ahd_patch19_func, 611, 1, 1 },
-	{ ahd_patch20_func, 616, 1, 1 },
-	{ ahd_patch21_func, 617, 2, 1 },
-	{ ahd_patch20_func, 621, 1, 2 },
-	{ ahd_patch0_func, 622, 1, 1 },
-	{ ahd_patch2_func, 625, 1, 2 },
-	{ ahd_patch0_func, 626, 1, 1 },
-	{ ahd_patch2_func, 641, 1, 2 },
-	{ ahd_patch0_func, 642, 1, 1 },
-	{ ahd_patch13_func, 643, 14, 1 },
-	{ ahd_patch1_func, 661, 1, 2 },
-	{ ahd_patch0_func, 662, 1, 1 },
-	{ ahd_patch13_func, 663, 1, 1 },
-	{ ahd_patch1_func, 675, 1, 2 },
-	{ ahd_patch0_func, 676, 1, 1 },
-	{ ahd_patch1_func, 683, 1, 2 },
-	{ ahd_patch0_func, 684, 1, 1 },
-	{ ahd_patch19_func, 707, 1, 1 },
-	{ ahd_patch19_func, 745, 1, 1 },
-	{ ahd_patch1_func, 756, 1, 2 },
-	{ ahd_patch0_func, 757, 1, 1 },
-	{ ahd_patch1_func, 774, 1, 2 },
-	{ ahd_patch0_func, 775, 1, 1 },
-	{ ahd_patch1_func, 777, 1, 2 },
-	{ ahd_patch0_func, 778, 1, 1 },
-	{ ahd_patch1_func, 781, 1, 2 },
-	{ ahd_patch0_func, 782, 1, 1 },
-	{ ahd_patch22_func, 784, 1, 2 },
-	{ ahd_patch0_func, 785, 2, 1 },
-	{ ahd_patch23_func, 788, 4, 2 },
-	{ ahd_patch0_func, 792, 1, 1 },
-	{ ahd_patch23_func, 800, 11, 1 }
+	{ ahd_patch1_func, 596, 1, 2 },
+	{ ahd_patch0_func, 597, 1, 1 },
+	{ ahd_patch2_func, 608, 1, 2 },
+	{ ahd_patch0_func, 609, 1, 1 },
+	{ ahd_patch19_func, 613, 1, 1 },
+	{ ahd_patch20_func, 618, 1, 1 },
+	{ ahd_patch21_func, 619, 2, 1 },
+	{ ahd_patch20_func, 623, 1, 2 },
+	{ ahd_patch0_func, 624, 1, 1 },
+	{ ahd_patch2_func, 627, 1, 2 },
+	{ ahd_patch0_func, 628, 1, 1 },
+	{ ahd_patch2_func, 643, 1, 2 },
+	{ ahd_patch0_func, 644, 1, 1 },
+	{ ahd_patch13_func, 645, 14, 1 },
+	{ ahd_patch1_func, 663, 1, 2 },
+	{ ahd_patch0_func, 664, 1, 1 },
+	{ ahd_patch13_func, 665, 1, 1 },
+	{ ahd_patch1_func, 677, 1, 2 },
+	{ ahd_patch0_func, 678, 1, 1 },
+	{ ahd_patch1_func, 685, 1, 2 },
+	{ ahd_patch0_func, 686, 1, 1 },
+	{ ahd_patch19_func, 709, 1, 1 },
+	{ ahd_patch19_func, 747, 1, 1 },
+	{ ahd_patch1_func, 758, 1, 2 },
+	{ ahd_patch0_func, 759, 1, 1 },
+	{ ahd_patch1_func, 776, 1, 2 },
+	{ ahd_patch0_func, 777, 1, 1 },
+	{ ahd_patch1_func, 779, 1, 2 },
+	{ ahd_patch0_func, 780, 1, 1 },
+	{ ahd_patch1_func, 783, 1, 2 },
+	{ ahd_patch0_func, 784, 1, 1 },
+	{ ahd_patch22_func, 786, 1, 2 },
+	{ ahd_patch0_func, 787, 2, 1 },
+	{ ahd_patch23_func, 790, 4, 2 },
+	{ ahd_patch0_func, 794, 1, 1 },
+	{ ahd_patch23_func, 802, 11, 1 }
  };

  static struct cs {
@@ -1161,14 +1163,14 @@
  	{ 65, 66 },
  	{ 72, 92 },
  	{ 110, 137 },
-	{ 138, 173 },
-	{ 178, 186 },
-	{ 211, 262 },
-	{ 423, 431 },
-	{ 441, 443 },
-	{ 446, 455 },
-	{ 707, 737 },
-	{ 747, 751 }
+	{ 138, 175 },
+	{ 180, 188 },
+	{ 213, 264 },
+	{ 425, 433 },
+	{ 443, 445 },
+	{ 448, 457 },
+	{ 709, 739 },
+	{ 749, 753 }
  };

  static const int num_critical_sections = sizeof(critical_sections)
==== //depot/aic7xxx/aic7xxx/aic7xxx.c#153 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7xxx_core.c ====
--- /tmp/tmp.27211.9	2004-09-27 13:37:03.641831520 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7xxx_core.c	2004-04-09 16:46:42.000000000 -0400
@@ -37,7 +37,7 @@
   * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGES.
   *
- * $Id: //depot/aic7xxx/aic7xxx/aic7xxx.c#153 $
+ * $Id: //depot/aic7xxx/aic7xxx/aic7xxx.c#155 $
   */

  #ifdef __linux__
@@ -231,6 +231,9 @@
  					u_int start_instr, u_int *skip_addr);
  static void		ahc_download_instr(struct ahc_softc *ahc,
  					   u_int instrptr, uint8_t *dconsts);
+static int		ahc_other_scb_timeout(struct ahc_softc *ahc,
+					      struct scb *scb,
+					      struct scb *other_scb);
  #ifdef AHC_TARGET_MODE
  static void		ahc_queue_lstate_event(struct ahc_softc *ahc,
  					       struct ahc_tmode_lstate *lstate,
@@ -1200,7 +1203,7 @@
  			ahc_handle_devreset(ahc, &devinfo,
  					    CAM_SEL_TIMEOUT,
  					    "Selection Timeout",
-					    /*verbose_level*/0);
+					    /*verbose_level*/1);
  		}
  		ahc_outb(ahc, CLRINT, CLRSCSIINT);
  		ahc_restart(ahc);
@@ -6864,6 +6867,58 @@
  }

  /*
+ * Re-schedule a timeout for the passed in SCB if we determine that some
+ * other SCB is in the process of recovery or an SCB with a longer
+ * timeout is still pending.  Limit our search to just "other_scb"
+ * if it is non-NULL.
+ */
+static int
+ahc_other_scb_timeout(struct ahc_softc *ahc, struct scb *scb,
+		      struct scb *other_scb)
+{
+	u_int	newtimeout;
+	int	found;
+
+	ahc_print_path(ahc, scb);
+	printf("Other SCB Timeout%s",
+ 	       (scb->flags & SCB_OTHERTCL_TIMEOUT) != 0
+	       ? " again\n" : "\n");
+
+	newtimeout = aic_get_timeout(scb);
+	scb->flags |= SCB_OTHERTCL_TIMEOUT;
+	found = 0;
+	if (other_scb != NULL) {
+		if ((other_scb->flags
+		   & (SCB_OTHERTCL_TIMEOUT|SCB_TIMEDOUT)) == 0
+		 || (other_scb->flags & SCB_RECOVERY_SCB) != 0) {
+			found++;
+			newtimeout = MAX(aic_get_timeout(other_scb),
+					 newtimeout);
+		}
+	} else {
+		LIST_FOREACH(other_scb, &ahc->pending_scbs, pending_links) {
+			if ((other_scb->flags
+			   & (SCB_OTHERTCL_TIMEOUT|SCB_TIMEDOUT)) == 0
+			 || (other_scb->flags & SCB_RECOVERY_SCB) != 0) {
+				found++;
+				newtimeout =
+				    MAX(aic_get_timeout(other_scb),
+					newtimeout);
+			}
+		}
+	}
+
+	if (found != 0)
+		aic_scb_timer_reset(scb, newtimeout);
+	else {
+		ahc_print_path(ahc, scb);
+		printf("No other SCB worth waiting for...\n");
+	}
+
+	return (found != 0);
+}
+
+/*
   * ahc_recover_commands determines if any of the commands that have currently
   * timedout are the root cause for this timeout.  Innocent commands are given
   * a new timeout while we wait for the command executing on the bus to timeout.
@@ -6990,17 +7045,9 @@
  			 */
  			active_scb = ahc_lookup_scb(ahc, active_scb_index);
  			if (active_scb != scb) {
-				u_int	newtimeout;
-
-				ahc_print_path(ahc, scb);
-				printf("Other SCB Timeout%s",
-			 	       (scb->flags & SCB_OTHERTCL_TIMEOUT) != 0
-				       ? " again\n" : "\n");
-				scb->flags |= SCB_OTHERTCL_TIMEOUT;
-				newtimeout =
-				    MAX(aic_get_timeout(active_scb),
-					aic_get_timeout(scb));
-				aic_scb_timer_reset(scb, newtimeout);
+				if (ahc_other_scb_timeout(ahc, scb,
+							  active_scb) != 0)
+					goto bus_reset;
  				continue;
  			}

==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.c#270 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7xxx_osm.c ====
--- /tmp/tmp.27211.10	2004-09-27 13:37:08.994017864 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7xxx_osm.c	2004-04-09 12:57:10.000000000 -0400
@@ -1,7 +1,7 @@
  /*
   * Adaptec AIC7xxx device driver for Linux.
   *
- * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.c#270 $
+ * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.c#271 $
   *
   * Copyright (c) 1994 John Aycock
   *   The University of Calgary Department of Computer Science.
@@ -4563,7 +4563,21 @@
  			new_status = DID_BAD_TARGET;
  			break;
  		case CAM_SEL_TIMEOUT:
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+			/*
+			 * The 2.4.X SCSI layer will not offline
+			 * devices in response to DID_NO_CONNECT.
+			 * Return a command timeout here instead
+			 * so that for commands other than inquiry
+			 * and request sense commands (which the
+			 * mid-layer special cases) recovery will
+			 * take place and persistently missing
+			 * devices are eventually offlined.
+			 */
+			new_status = DID_TIME_OUT;
+#else
  			new_status = DID_NO_CONNECT;
+#endif
  			break;
  		case CAM_SCSI_BUS_RESET:
  		case CAM_BDR_SENT:
==== //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.h#170 - /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7xxx_osm.h ====
--- /tmp/tmp.27211.11	2004-09-27 13:37:09.297971656 -0400
+++ /home/luben/projects/linux/2.6/linux-2.5/drivers/scsi/aic7xxx/aic7xxx_osm.h	2004-04-09 16:48:09.000000000 -0400
@@ -53,7 +53,7 @@
   * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   * POSSIBILITY OF SUCH DAMAGES.
   *
- * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.h#170 $
+ * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic7xxx_osm.h#172 $
   *
   */
  #ifndef _AIC7XXX_LINUX_H_
@@ -113,7 +113,7 @@
  #include <linux/smp.h>
  #endif

-#define AIC7XXX_DRIVER_VERSION "6.3.6"
+#define AIC7XXX_DRIVER_VERSION "6.3.8"

  /********************* Definitions Required by the Core ***********************/
  /*



                 reply	other threads:[~2004-09-28 13:07 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=41596214.4050609@adaptec.com \
    --to=luben_tuikov@adaptec.com \
    --cc=linux-scsi@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.