packages: dahdi-linux/dahdi-linux-svn-fixes.patch (NEW) - fixes from upstream

hawk hawk at pld-linux.org
Fri Sep 25 11:40:31 CEST 2009


Author: hawk                         Date: Fri Sep 25 09:40:31 2009 GMT
Module: packages                      Tag: HEAD
---- Log message:
- fixes from upstream

---- Files affected:
packages/dahdi-linux:
   dahdi-linux-svn-fixes.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/dahdi-linux/dahdi-linux-svn-fixes.patch
diff -u /dev/null packages/dahdi-linux/dahdi-linux-svn-fixes.patch:1.1
--- /dev/null	Fri Sep 25 11:40:31 2009
+++ packages/dahdi-linux/dahdi-linux-svn-fixes.patch	Fri Sep 25 11:40:26 2009
@@ -0,0 +1,2510 @@
+diff -urN dahdi-linux-2.2.0.2/drivers/dahdi/dahdi-base.c dahdi-linux.svn/drivers/dahdi/dahdi-base.c
+--- dahdi-linux-2.2.0.2/drivers/dahdi/dahdi-base.c	2009-07-21 20:11:53.000000000 +0200
++++ dahdi-linux.svn/drivers/dahdi/dahdi-base.c	2009-09-25 11:21:38.000000000 +0200
+@@ -2882,47 +2882,63 @@
+ */
+ static int ioctl_load_zone(unsigned long data)
+ {
+-	struct dahdi_tone *samples[MAX_TONES] = { NULL, };
+-	short next[MAX_TONES] = { 0, };
+-	struct dahdi_tone_def_header th;
+-	struct dahdi_tone_def td;
+-	struct dahdi_zone *z;
+-	struct dahdi_tone *t;
+-	void *slab, *ptr;
+-	int x;
++	struct load_zone_workarea {
++		struct dahdi_tone *samples[MAX_TONES];
++		short next[MAX_TONES];
++		struct dahdi_tone_def_header th;
++		struct dahdi_tone_def td;
++	} *work;
++
+ 	size_t space;
+ 	size_t size;
+ 	int res;
++	int x;
++	void *slab, *ptr;
++	struct dahdi_zone *z;
++	struct dahdi_tone *t;
++
++	work = kzalloc(sizeof(*work), GFP_KERNEL);
++	if (!work)
++		return -ENOMEM;
+ 
+-	if (copy_from_user(&th, (struct dahdi_tone_def_header *) data, sizeof(th)))
++	if (copy_from_user(&work->th, (struct dahdi_tone_def_header *)data,
++	    sizeof(work->th))) {
++		kfree(work);
+ 		return -EFAULT;
++	}
+ 
+-	data += sizeof(th);
++	data += sizeof(work->th);
+ 
+-	if ((th.count < 0) || (th.count > MAX_TONES)) {
++	if ((work->th.count < 0) || (work->th.count > MAX_TONES)) {
+ 		module_printk(KERN_NOTICE, "Too many tones included\n");
++		kfree(work);
+ 		return -EINVAL;
+ 	}
+ 
+-	space = size = sizeof(*z) + th.count * sizeof(*t);
++	space = size = sizeof(*z) + work->th.count * sizeof(*t);
+ 
+-	if (size > MAX_SIZE)
++	if (size > MAX_SIZE) {
++		kfree(work);
+ 		return -E2BIG;
++	}
+ 
+-	if (!(z = ptr = slab = kzalloc(size, GFP_KERNEL)))
++	z = ptr = slab = kzalloc(size, GFP_KERNEL);
++	if (!z) {
++		kfree(work);
+ 		return -ENOMEM;
++	}
+ 
+ 	ptr += sizeof(*z);
+ 	space -= sizeof(*z);
+ 
+-	dahdi_copy_string(z->name, th.name, sizeof(z->name));
++	dahdi_copy_string(z->name, work->th.name, sizeof(z->name));
+ 
+ 	for (x = 0; x < DAHDI_MAX_CADENCE; x++)
+-		z->ringcadence[x] = th.ringcadence[x];
++		z->ringcadence[x] = work->th.ringcadence[x];
+ 
+ 	atomic_set(&z->refcount, 0);
+ 
+-	for (x = 0; x < th.count; x++) {
++	for (x = 0; x < work->th.count; x++) {
+ 		enum {
+ 			REGULAR_TONE,
+ 			DTMF_TONE,
+@@ -2933,82 +2949,94 @@
+ 
+ 		if (space < sizeof(*t)) {
+ 			kfree(slab);
++			kfree(work);
+ 			module_printk(KERN_NOTICE, "Insufficient tone zone space\n");
+ 			return -EINVAL;
+ 		}
+ 
+-		if (copy_from_user(&td, (struct dahdi_tone_def *) data, sizeof(td))) {
++		res = copy_from_user(&work->td, (struct dahdi_tone_def *)data,
++				     sizeof(work->td));
++		if (res) {
+ 			kfree(slab);
++			kfree(work);
+ 			return -EFAULT;
+ 		}
+ 
+-		data += sizeof(td);
++		data += sizeof(work->td);
+ 
+-		if ((td.tone >= 0) && (td.tone < DAHDI_TONE_MAX)) {
++		if ((work->td.tone >= 0) && (work->td.tone < DAHDI_TONE_MAX)) {
+ 			tone_type = REGULAR_TONE;
+ 
+-			t = samples[x] = ptr;
++			t = work->samples[x] = ptr;
+ 
+ 			space -= sizeof(*t);
+ 			ptr += sizeof(*t);
+ 
+-			/* Remember which sample is next */
+-			next[x] = td.next;
++			/* Remember which sample is work->next */
++			work->next[x] = work->td.next;
+ 
+ 			/* Make sure the "next" one is sane */
+-			if ((next[x] >= th.count) || (next[x] < 0)) {
+-				module_printk(KERN_NOTICE, "Invalid 'next' pointer: %d\n", next[x]);
++			if ((work->next[x] >= work->th.count) ||
++			    (work->next[x] < 0)) {
++				module_printk(KERN_NOTICE,
++					      "Invalid 'next' pointer: %d\n",
++					      work->next[x]);
+ 				kfree(slab);
++				kfree(work);
+ 				return -EINVAL;
+ 			}
+-		} else if ((td.tone >= DAHDI_TONE_DTMF_BASE) &&
+-			   (td.tone <= DAHDI_TONE_DTMF_MAX)) {
++		} else if ((work->td.tone >= DAHDI_TONE_DTMF_BASE) &&
++			   (work->td.tone <= DAHDI_TONE_DTMF_MAX)) {
+ 			tone_type = DTMF_TONE;
+-			td.tone -= DAHDI_TONE_DTMF_BASE;
+-			t = &z->dtmf[td.tone];
+-		} else if ((td.tone >= DAHDI_TONE_MFR1_BASE) &&
+-			   (td.tone <= DAHDI_TONE_MFR1_MAX)) {
++			work->td.tone -= DAHDI_TONE_DTMF_BASE;
++			t = &z->dtmf[work->td.tone];
++		} else if ((work->td.tone >= DAHDI_TONE_MFR1_BASE) &&
++			   (work->td.tone <= DAHDI_TONE_MFR1_MAX)) {
+ 			tone_type = MFR1_TONE;
+-			td.tone -= DAHDI_TONE_MFR1_BASE;
+-			t = &z->mfr1[td.tone];
+-		} else if ((td.tone >= DAHDI_TONE_MFR2_FWD_BASE) &&
+-			   (td.tone <= DAHDI_TONE_MFR2_FWD_MAX)) {
++			work->td.tone -= DAHDI_TONE_MFR1_BASE;
++			t = &z->mfr1[work->td.tone];
++		} else if ((work->td.tone >= DAHDI_TONE_MFR2_FWD_BASE) &&
++			   (work->td.tone <= DAHDI_TONE_MFR2_FWD_MAX)) {
+ 			tone_type = MFR2_FWD_TONE;
+-			td.tone -= DAHDI_TONE_MFR2_FWD_BASE;
+-			t = &z->mfr2_fwd[td.tone];
+-		} else if ((td.tone >= DAHDI_TONE_MFR2_REV_BASE) &&
+-			   (td.tone <= DAHDI_TONE_MFR2_REV_MAX)) {
++			work->td.tone -= DAHDI_TONE_MFR2_FWD_BASE;
++			t = &z->mfr2_fwd[work->td.tone];
++		} else if ((work->td.tone >= DAHDI_TONE_MFR2_REV_BASE) &&
++			   (work->td.tone <= DAHDI_TONE_MFR2_REV_MAX)) {
+ 			tone_type = MFR2_REV_TONE;
+-			td.tone -= DAHDI_TONE_MFR2_REV_BASE;
+-			t = &z->mfr2_rev[td.tone];
++			work->td.tone -= DAHDI_TONE_MFR2_REV_BASE;
++			t = &z->mfr2_rev[work->td.tone];
+ 		} else {
+-			module_printk(KERN_NOTICE, "Invalid tone (%d) defined\n", td.tone);
++			module_printk(KERN_NOTICE,
++				      "Invalid tone (%d) defined\n",
++				      work->td.tone);
+ 			kfree(slab);
++			kfree(work);
+ 			return -EINVAL;
+ 		}
+ 
+-		t->fac1 = td.fac1;
+-		t->init_v2_1 = td.init_v2_1;
+-		t->init_v3_1 = td.init_v3_1;
+-		t->fac2 = td.fac2;
+-		t->init_v2_2 = td.init_v2_2;
+-		t->init_v3_2 = td.init_v3_2;
+-		t->modulate = td.modulate;
++		t->fac1 = work->td.fac1;
++		t->init_v2_1 = work->td.init_v2_1;
++		t->init_v3_1 = work->td.init_v3_1;
++		t->fac2 = work->td.fac2;
++		t->init_v2_2 = work->td.init_v2_2;
++		t->init_v3_2 = work->td.init_v3_2;
++		t->modulate = work->td.modulate;
+ 
+ 		switch (tone_type) {
+ 		case REGULAR_TONE:
+-			t->tonesamples = td.samples;
+-			if (!z->tones[td.tone])
+-				z->tones[td.tone] = t;
++			t->tonesamples = work->td.samples;
++			if (!z->tones[work->td.tone])
++				z->tones[work->td.tone] = t;
+ 			break;
+ 		case DTMF_TONE:
+ 			t->tonesamples = global_dialparams.dtmf_tonelen;
+ 			t->next = &dtmf_silence;
+-			z->dtmf_continuous[td.tone] = *t;
+-			z->dtmf_continuous[td.tone].next = &z->dtmf_continuous[td.tone];
++			z->dtmf_continuous[work->td.tone] = *t;
++			z->dtmf_continuous[work->td.tone].next =
++				&z->dtmf_continuous[work->td.tone];
+ 			break;
+ 		case MFR1_TONE:
+-			switch (td.tone + DAHDI_TONE_MFR1_BASE) {
++			switch (work->td.tone + DAHDI_TONE_MFR1_BASE) {
+ 			case DAHDI_TONE_MFR1_KP:
+ 			case DAHDI_TONE_MFR1_ST:
+ 			case DAHDI_TONE_MFR1_STP:
+@@ -3026,31 +3054,35 @@
+ 		case MFR2_FWD_TONE:
+ 			t->tonesamples = global_dialparams.mfr2_tonelen;
+ 			t->next = &dtmf_silence;
+-			z->mfr2_fwd_continuous[td.tone] = *t;
+-			z->mfr2_fwd_continuous[td.tone].next = &z->mfr2_fwd_continuous[td.tone];
++			z->mfr2_fwd_continuous[work->td.tone] = *t;
++			z->mfr2_fwd_continuous[work->td.tone].next =
++					&z->mfr2_fwd_continuous[work->td.tone];
+ 			break;
+ 		case MFR2_REV_TONE:
+ 			t->tonesamples = global_dialparams.mfr2_tonelen;
+ 			t->next = &dtmf_silence;
+-			z->mfr2_rev_continuous[td.tone] = *t;
+-			z->mfr2_rev_continuous[td.tone].next = &z->mfr2_rev_continuous[td.tone];
++			z->mfr2_rev_continuous[work->td.tone] = *t;
++			z->mfr2_rev_continuous[work->td.tone].next =
++					&z->mfr2_rev_continuous[work->td.tone];
+ 			break;
+ 		}
+ 	}
+ 
+-	for (x = 0; x < th.count; x++) {
+-		if (samples[x])
+-			samples[x]->next = samples[next[x]];
++	for (x = 0; x < work->th.count; x++) {
++		if (work->samples[x])
++			work->samples[x]->next = work->samples[work->next[x]];
+ 	}
+ 
+-	if ((res = dahdi_register_tone_zone(th.zone, z))) {
++	res = dahdi_register_tone_zone(work->th.zone, z);
++	if (res) {
+ 		kfree(slab);
+ 	} else {
+ 		if ( -1 == default_zone ) {
+-			dahdi_set_default_zone(th.zone);
++			dahdi_set_default_zone(work->th.zone);
+ 		}
+ 	}
+ 
++	kfree(work);
+ 	return res;
+ }
+ 
+diff -urN dahdi-linux-2.2.0.2/drivers/dahdi/dahdi_dummy.c dahdi-linux.svn/drivers/dahdi/dahdi_dummy.c
+--- dahdi-linux-2.2.0.2/drivers/dahdi/dahdi_dummy.c	2009-04-29 19:48:27.000000000 +0200
++++ dahdi-linux.svn/drivers/dahdi/dahdi_dummy.c	2009-09-25 11:21:38.000000000 +0200
+@@ -161,12 +161,31 @@
+ 	unsigned long ms_since_start;
+ 	struct timespec now;
+ 	const unsigned long MAX_INTERVAL = 100000L;
++	const unsigned long MS_LIMIT = 3000;
+ 
+ 	if (!atomic_read(&shutdown))
+ 		mod_timer(&timer, jiffies + JIFFIES_INTERVAL);
+ 
+ 	now = current_kernel_time();
+ 	ms_since_start = timespec_diff_ms(&ztd->start_interval, &now);
++	
++	/*
++	 * If the system time has changed, it is possible for us to be far
++	 * behind.  If we are more than MS_LIMIT milliseconds behind, just
++	 * reset our time base and continue so that we do not hang the system
++	 * here.
++	 *
++	 */
++	if (unlikely((ms_since_start - ztd->calls_since_start) > MS_LIMIT)) {
++		if (printk_ratelimit()) {
++			printk(KERN_INFO
++			       "dahdi_dummy: Detected time shift.\n");
++		}
++		ztd->calls_since_start = 0;
++		ztd->start_interval = now;
++		return;
++	}
++
+ 	while (ms_since_start > ztd->calls_since_start) {
+ 		ztd->calls_since_start++;
+ 		dahdi_receive(&ztd->span);
+diff -urN dahdi-linux-2.2.0.2/drivers/dahdi/wct4xxp/base.c dahdi-linux.svn/drivers/dahdi/wct4xxp/base.c
+--- dahdi-linux-2.2.0.2/drivers/dahdi/wct4xxp/base.c	2009-07-21 20:11:53.000000000 +0200
++++ dahdi-linux.svn/drivers/dahdi/wct4xxp/base.c	2009-09-25 11:21:37.000000000 +0200
+@@ -1585,6 +1585,24 @@
+ 	return 0;
+ }
+ 
++static void set_span_devicetype(struct t4 *wc)
++{
++	int x;
++	struct t4_span *ts;
++
++	for (x = 0; x < wc->numspans; x++) {
++		ts = wc->tspans[x];
++		dahdi_copy_string(ts->span.devicetype, wc->variety, sizeof(ts->span.devicetype));
++		if (wc->vpm == T4_VPM_PRESENT) {
++			if (!wc->vpm450m)
++				strncat(ts->span.devicetype, " (VPM400M)", sizeof(ts->span.devicetype) - 1);
++			else
++				strncat(ts->span.devicetype, (wc->numspans > 2) ? " (VPMOCT128)" : " (VPMOCT064)",
++					sizeof(ts->span.devicetype) - 1);
++		}
++	}
++}
++
+ /* The number of cards we have seen with each
+    possible 'order' switch setting.
+ */
+@@ -1606,14 +1624,6 @@
+ 		snprintf(ts->span.desc, sizeof(ts->span.desc) - 1,
+ 			 "T%dXXP (PCI) Card %d Span %d", wc->numspans, wc->num, x+1);
+ 		ts->span.manufacturer = "Digium";
+-		dahdi_copy_string(ts->span.devicetype, wc->variety, sizeof(ts->span.devicetype));
+-		if (wc->vpm == T4_VPM_PRESENT) {
+-			if (!wc->vpm450m)
+-				strncat(ts->span.devicetype, " with VPM400M", sizeof(ts->span.devicetype) - 1);
+-			else
+-				strncat(ts->span.devicetype, (wc->numspans > 2) ? " with VPMOCT128" : " with VPMOCT064",
+-					sizeof(ts->span.devicetype) - 1);
+-		}
+ 		if (order_index[wc->order] == 1)
+ 			snprintf(ts->span.location, sizeof(ts->span.location) - 1, "Board ID Switch %d", wc->order);
+ 		else
+@@ -1685,6 +1695,7 @@
+ 			}
+ 		}
+ 	}
++	set_span_devicetype(wc);
+ }
+ 
+ static void t4_serial_setup(struct t4 *wc, int unit)
+@@ -2153,6 +2164,8 @@
+ 			t4_vpm450_init(wc);
+ 		wc->dmactrl |= wc->vpm;
+ 		t4_pci_out(wc, WC_DMACTRL, wc->dmactrl);
++		if (wc->vpm)
++			set_span_devicetype(wc);
+ 	}
+ #endif
+ 	printk(KERN_INFO "Completed startup!\n");
+diff -urN dahdi-linux-2.2.0.2/drivers/dahdi/wctc4xxp/base.c dahdi-linux.svn/drivers/dahdi/wctc4xxp/base.c
+--- dahdi-linux-2.2.0.2/drivers/dahdi/wctc4xxp/base.c	2009-05-01 18:42:45.000000000 +0200
++++ dahdi-linux.svn/drivers/dahdi/wctc4xxp/base.c	2009-09-25 11:21:38.000000000 +0200
+@@ -742,6 +742,17 @@
+ 	return 0;
+ }
+ 
++#ifdef HAVE_NET_DEVICE_OPS
++static const struct net_device_ops wctc4xxp_netdev_ops = {
++	.ndo_set_multicast_list = &wctc4xxp_net_set_multi,
++	.ndo_open = &wctc4xxp_net_up,
++	.ndo_stop = &wctc4xxp_net_down,
++	.ndo_start_xmit = &wctc4xxp_net_hard_start_xmit,
++	.ndo_get_stats = &wctc4xxp_net_get_stats,
++	.ndo_do_ioctl = &wctc4xxp_net_ioctl,
++};
++#endif
++
+ /**
+  * wctc4xxp_net_register - Register a new network interface.
+  * @wc: transcoder card to register the interface for.
+@@ -773,14 +784,21 @@
+ 	netdev->priv = wc;
+ #	endif
+ 	memcpy(netdev->dev_addr, our_mac, sizeof(our_mac));
++
++#	ifdef HAVE_NET_DEVICE_OPS
++	netdev->netdev_ops = &wctc4xxp_netdev_ops;
++#	else
+ 	netdev->set_multicast_list = &wctc4xxp_net_set_multi;
+ 	netdev->open = &wctc4xxp_net_up;
+ 	netdev->stop = &wctc4xxp_net_down;
+ 	netdev->hard_start_xmit = &wctc4xxp_net_hard_start_xmit;
+ 	netdev->get_stats = &wctc4xxp_net_get_stats;
+ 	netdev->do_ioctl = &wctc4xxp_net_ioctl;
++#	endif
++
+ 	netdev->promiscuity = 0;
+ 	netdev->flags |= IFF_NOARP;
++
+ #	if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)
+ 	netdev->poll = &wctc4xxp_poll;
+ 	netdev->weight = 64;
+diff -urN dahdi-linux-2.2.0.2/drivers/dahdi/wctdm24xxp/base.c dahdi-linux.svn/drivers/dahdi/wctdm24xxp/base.c
+--- dahdi-linux-2.2.0.2/drivers/dahdi/wctdm24xxp/base.c	2009-06-18 20:03:26.000000000 +0200
++++ dahdi-linux.svn/drivers/dahdi/wctdm24xxp/base.c	2009-09-25 11:21:38.000000000 +0200
+@@ -3265,9 +3265,9 @@
+ 	}
+ 
+ 	if (wc->vpm100) {
+-		strncat(wc->span.devicetype, " with VPM100M", sizeof(wc->span.devicetype) - 1);
++		strncat(wc->span.devicetype, " (VPM100M)", sizeof(wc->span.devicetype) - 1);
+ 	} else if (wc->vpmadt032) {
+-		strncat(wc->span.devicetype, " with VPMADT032", sizeof(wc->span.devicetype) - 1);
++		strncat(wc->span.devicetype, " (VPMADT032)", sizeof(wc->span.devicetype) - 1);
+ 	}
+ }
+ 
+diff -urN dahdi-linux-2.2.0.2/drivers/dahdi/wcte12xp/base.c dahdi-linux.svn/drivers/dahdi/wcte12xp/base.c
+--- dahdi-linux-2.2.0.2/drivers/dahdi/wcte12xp/base.c	2009-07-21 20:11:53.000000000 +0200
++++ dahdi-linux.svn/drivers/dahdi/wcte12xp/base.c	2009-09-25 11:21:38.000000000 +0200
+@@ -1191,6 +1191,16 @@
+ 	vpmadt032_echocan_free(wc->vpmadt032, chan, ec);
+ }
+ 
++static void set_span_devicetype(struct t1 *wc)
++{
++	strncpy(wc->span.devicetype, wc->variety, sizeof(wc->span.devicetype) - 1);
++
++#if defined(VPM_SUPPORT)
++	if (wc->vpmadt032)
++		strncat(wc->span.devicetype, " (VPMADT032)", sizeof(wc->span.devicetype) - 1);
++#endif
++}
++
+ static int t1_software_init(struct t1 *wc)
+ {
+ 	int x;
+@@ -1216,12 +1226,7 @@
+ 	sprintf(wc->span.name, "WCT1/%d", num);
+ 	snprintf(wc->span.desc, sizeof(wc->span.desc) - 1, "%s Card %d", wc->variety, num);
+ 	wc->span.manufacturer = "Digium";
+-	strncpy(wc->span.devicetype, wc->variety, sizeof(wc->span.devicetype) - 1);
+-
+-#if defined(VPM_SUPPORT)
+-	if (wc->vpmadt032)
+-		strncat(wc->span.devicetype, " with VPMADT032", sizeof(wc->span.devicetype) - 1);
+-#endif
++	set_span_devicetype(wc);
+ 
+ 	snprintf(wc->span.location, sizeof(wc->span.location) - 1,
+ 		"PCI Bus %02d Slot %02d", dev->bus->number, PCI_SLOT(dev->devfn) + 1);
+@@ -1395,6 +1400,7 @@
+ 
+ 		config_vpmadt032(wc->vpmadt032);
+ 
++		set_span_devicetype(wc);
+ 		module_printk("VPM present and operational (Firmware version %x)\n", wc->vpmadt032->version);
+ 		wc->ctlreg |= 0x10; /* turn on vpm (RX audio from vpm module) */
+ 		if (vpmtsisupport) {
+diff -urN dahdi-linux-2.2.0.2/drivers/dahdi/xpp/firmwares/FPGA_1161.hex dahdi-linux.svn/drivers/dahdi/xpp/firmwares/FPGA_1161.hex
+--- dahdi-linux-2.2.0.2/drivers/dahdi/xpp/firmwares/FPGA_1161.hex	2009-05-25 10:23:29.000000000 +0200
++++ dahdi-linux.svn/drivers/dahdi/xpp/firmwares/FPGA_1161.hex	2009-09-25 11:21:37.000000000 +0200
+@@ -1,8 +1,8 @@
+ #
+-# $Id$
++# $Id$
+ #
+ :020000040000FA
+-:80000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6AD6FF4000B00910006AD6FF4000B00910006AD6FF4000B009100000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4455544455557475577775577675577775577765566665562635523235D2F37127511115511115511115511172
++:80000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6AD6FF4000301B10006AD6FF4000301B10006AD6FF4000301B100000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4455544455557475577775577675577775577765566665562635523235D2F371275111155111155111155111BC
+ :800080001551111551111551111551111551111551111551111551111551111551111551111551111551111551111551111551111551111551111551111551111551111551111551111551111551111551111511010000000000181AA1111A2101000000181AA1111A2101181A210100181AE121F112122F21F1121227212592121AE12154
+ :80010000F112122F21F11212230100000000181AA1111A21012425120200181AA1111A2101181A210100181AA1111AA1111A2101181AA1111AA1111A210100002425522225D222F112122F21F1121227212552222552222552222592121AA1111A2101181A612125522225D222F112122F21F112122F21F11212272125D222F112122F21D9
+ :80018000F112122F21F11212272125120200000024255222251202002425522225120200242552222512020000242512020024255222251202002425522225120200000000242512020000002425522225120200000000242512020000000000000000000000000000000000000000000000000000000000242512020000002425522225EA
+@@ -21,1014 +21,1018 @@
+ :80080000FCCCCCCFBCFFFBFBBF7FF33737730300FCFFFFFFFFBFFFFBFBBFFFFFFFFFF30F0000004445D464F116166F21F11212230100008CFCC8C88FBCFFFBFBBF3FF33333374345D424F1121223018CFCC8C88FBCFFFBFBBF3FF333333723251202BCFFFBFBBFBFFFFBFBBFBFFFFBFBB30F000000CCF44C4CCFF4F44F4FF73435130300E2
+ :8008800000CCF88C8CCFF8FBBFBFFF3BF333333FC3F44C4CCFB4F44B4BBF84F448488F44F884844FB8FFFBFBBFFFF77F7FFFB7F44B4BBF84F448488FF4FFFFFFFFBFFFFBFBBFFFFFFFFFF30F000000CCF44C4CCFD4F44D4DD7141511010000CCF88C8CCFD8FBBDBDDF1BF331311FC3F44C4CCF14F441411B444AE4C4F88C8CCF98FFF9F90C
+ :800900009F5FF775755F17F441411B444AE4D4FFFDFDDF9FFFF9F99FDFFFFDFDD30F000000CCFCCCCCCFDCFFFDFDDF1FF3313113030000C4C5DCDCF33D3DDF13F331311FC3FCCCCCCF1CF771711B474A64C4C5DCDCF77D7DDF17F771711F17F661611B464AE4D4F77D7DDFD7F77D7DDFD7F77D7DD307000000CCF44C4CCFD4F77D7DDF1791
+-:80098000F33131130300008CF888888F98FBB9B99F1BF3313117C3C5DC9CF3393997838598888AE898FBB9B99F9BF339399F83F33838878385D898FBB9B99F9BFBB9B99F9BFBB9B9930B00000000000000000000000000000000009CF889899FA8F44A4AA3040000000000000000000000000000000000000000000000000000000000000B
+-:800A000000000000000000000000BE13000000000000000000000000000000000000000000000000000022000000000000008241000000000000EC345200000000000000000000000000000000000000000000000000000000000000000000000000000000E03B010000000000000000000000000000000000000000000000000020020010
+-:800A800000000000002018040000000000C04E230500000000000000000000000000000000000000000000000000000000000000000000000000000000BE13001210022200121002221100420022112021140210011242210011001002220000212002004200000042210000200400000021200200D0A23A4900000000000000000000003B
+-:800B00000000000000000000000000000000000000000000000000000000000000E03B0100000000000000000000000000000000000000000000000000000000000000000000000000000000B8330100000000000000000000000000000000180018008001004001000028140000001C080024001C4804000088440000003F4D0300000034
+-:800B8000000000000000000000000000000000000000000000800100200200000000200100824100000000C0A2B34102280018400228140048002814808144024001184824001480012480028001248042018084012814001A4502C08112124824001C6841002480A2811604400228F0FD5B00000000000000000000000000000000001248
+-:800C000000000012000011000020120100003081001002308141000020180400003C312E00000000000000000000000000000000000000000000000000000000000000000000000000000000E03B010000000000000000000000000000000000000000000000000000000000200800000000000082000000EC34120000000000000000009A
+-:800C8000000000000000002001000080010040010000100100800111004002400100000044000000FFF60D00000000000000000000000000000000000000000000000000000000000000000000000000000000B8330100000000000000000000000000000000000000000000000000000000000000000000000000000000BE1300000000E8
+-:800D00000000000000000000000000000000000018000000000000000018000000001001000088440000007C35D200000000000000000000000000000000800100000000000000000000000000000000000000000000008F1F0D0000000000000000000000000000000000000000000014000000000000400100100200000000000000C080
+-:800D800016130D00000000000000000000000000000000000000000000000000000000000000000000000000000000BE130000000000000000000000000000000000000000000000000000140000008800000000000000000000C0523302000000000000000000000000000000000000400100000082000000000000000000000000000046
+-:800E00000000002F3A0400000000004002000000000000000000000000002001001800001001000000140000000000000021002008E06135B7000000000000000000000000000000000000001100000000004001000000000000000000000000200800DFCB0D0000000000400200000000000000000000000000200100182008000000001B
+-:800E800000140000000000000021000080C1B94307000000000000008200000000000000000000000000000080022001000020018001004100180080280118001200F0687B0000000000200200000000000000000000280000000000000000000000000000000000000000000000C012430E00000000000000000000000000000000000046
+-:800F000000000048000000000000000000800200000000000000005F940E20020000000000000000000000200200000020040000000000001001002004000000000000000048000000B41305220000000000000000000000002800000000480000000000000014000000000000000000000000000000DF290900000000000000000000003E
+-:800F800000000000000000000000480000000000004200000028000000000048000000B8330E800100800200128002000000000000000018000000000020042001000000000012000000002014040000000000FF7C011200002001002002000000800220011A020000200248800400202102180000180000002200800228000000002004DF
+-:80100000000012E0A43BD50012000000000000000000001880810200000000000020014280210100120000800200200200000000200400001880F469AA200100808102001822280000008002000000002021022084040000220000000000000020010028000048440000000000C07123071280020000000020010000000020128201243814
+-:8010800018000000281800002800004800000038001241282280010000000032000018F09D73002021020000000020821282020000001820012100000000220000000000420040018004800200202181022001002810040018DC314F0000808102008002000080010018000000280000124003808484020000008002002002000000002882
+-:801100002220020000200400001F7F09A0110000220000228022810218000000A012210020220100140080042200220000000000223242201104228022A12220220100180000208137458200001200000000002420020018000000281200200121004A0100000000800200000000282200000000000080040080F1E3FE00008021020080F4
+-:801180000100180028282021A1211820010000120012103212481821222001280020830220820200800628008004422200A02100000042BC332B22000000000000009012211812100200000028220000281A04128084210100000000000000000000000000002800480000F0C9BD88000000001800188081010038800222122002A012207F
+-:8012000002280000120000002838A022004828A031000000000000200180014820240200121E7513020080022200000010020000220000808102602128120000000021001200180000008001000000000000120020010000002FAC02002002000020810100000000002021011200000000242848100112000000000000008002A01200125E
+-:80128000004200202104480048004EC723040080020000000000000028000000800180010000002822180000000048280042200400008021040044000000008082016FE58E020000200100200140420200211840024002902200001042220100428001280022000000000000000000000080014200000068A30382002081210118180000EA
+-:801300000020028082820200002001000000000000001200420042001800202222220200000000428004228044011FA28A0800200200000000244A01001112A0110018822003212302000022A01200290200182800422828181302000020081218214200000020024100425E16B38722082280A32112000012301224182081A223A0212E79
+-:801380002218120028321A42022220221422A2444AA1311A01003AA22222122024067A0242002822000020A4542200808124242402E01101CE83288800800100181A0112002450228021011AA2111880913228212A8222220112A01100184200800212122A04002A031A010000622A210200420080A1614832008026B441C1DB830E0000C4
+-:80140000800100181218001A3112A0222682B1320218A012180080A11100217012C23218603221213A8181021280022A0228800300222022025212004418001A04482A0400424AF59AD700008820010012800100180022212221282901290180021A020000210048001200221822002002221800002880020020040020018004118024C101
+-:80148000941389020020011A01200118002427212124272225622225722252227012022502120050227012F23222003731257212A22200A01200004A044A45A14400288002A0441A01504400200180A422A0221248E72A00002A882181218181011812484672127252C22133A22113D32231323AA1819632129E2229B222233322401242A9
+-:80150000F2122223A2421C35412C912232282232322242282AE41692616AB1112404A082A222B22CB442A14123644441001A2124C6444B241392246A25C5E993AC2200282081A11180212181014825721212E232A2133AB332C1323A032D8212182D222C22A13200250227212B2328483D432F21F112122A0222323A014820A2462E214A36
+-:80158000A5114A0480A282282A014E421A2124544400125AA4644AC4442A026A26A1116F778322020018121A2181A111181812E024F1125227212837222D313E121227232B131E122B191AC82229A23236220324212CF112322382C4533F25F112122B213228223AA2232280A2426A92616E111A2404A022A22A2A82B442E121246444410F
+-:8016000080A1114842484B242684A2565AE45436E70000000000200100120080020012200100000000002400400200000000000000000000000000002004000042009FF10A000000128001000000001880A122000000A022200100001248001220012022210200222022018002002200480000001200420018484C37AF19B21284F21241B8
+-:80168000F012412AF11261222F11A4922F11A4922F11E42269112E9256E122A9242E921B242E921B252E921B252E121B24A6B24122BB4133B219B3B2B441B392C4222F19A4142F1924F292612AF112412AF912612AE911E622C9212E925E212E925AE222B941C2921B242E921F44E222F5412486F24124921F44B2B2D441B392D441B3B2CD
+-:80170000C4342B494E142B49222B4943B612B424F9DB17142E12422E121366221364211B261E121B249E121B249E121B24CE121B248E5219F293421B222F39A4222F3985F29253AAF282433AEA1194B22D411EB2141AEA14B4320B2D921F16E423A924881B26272113E629B161A2191B26233C612B1913B2D3B52172C221F2D2412A7292E4
+-:80178000B1A4F2D2414B8327116B822F14F434A646E12368144F232AF434926AF4349249D224E946C6122E249E47E30582000000000000800400140000008800000018000000000000000000001400000088006022000020080040042414F0C9A7000018002200004002408203002082022818800200188001004021010032424819010092
+-:801800002200A0220080040042000000422001120000001C31CB228A218208122001208283012A21810228800114C03120020012000012000048200318280000A0211228002220022112222084C14412382002260200C041C021245B6E28882828821828200180A211905222204221021A0228A082221A0124000000128002118081031A4B
+-:80188000021880042042A122A02200A084800324184C840148281828384004108112C1B2A30612001800002002002041A221000014C0112002222001122001008081042880041C0400281812000080022118422004003800400200800440F26CFA20011A0100400180010000182200000000000000008002000000200222180000000020C7
+-:80190000040000004200280000000000221C3C72000000180022008001400180022200002228008001422A240400001A828203420000002001A0212212208182820400424220040000420080E2EA0F800100001001002001003200280000A02200001200222002001820A222A0240012000012808206000020840420240442000020042818
+-:80198000C072C38201200120012002120000110022000000000000808424040000282001000000000020011220212202000080020000000020F24D5480012A210212120000000022001301108104A022200100281420011A222402800220050012521800200128D0220100A0421200000022482800102402EC32DC00800214222011010026
+-:801A00000000C021000000001800120000200428482022810200808204202401281200802201C0121A0410042218282002220080F4FB4A00002001008001400100000020010000000000000000210000220000002420020028000080028002280000800400484035F98001128021031001001120022003800100200200120014004A810426
+-:801A800029042212224A03002A81011223A42100202262212001284A2201224122282A8122042002284248876D0020021211001220010000000014800420020000288001002200002200000000001828184002200200200400000000430400C0F22383210100801181010000000000601260120000282002281A0214802404488084022040
+-:801B00002201208323A2214822202201002002002A81022A01000000182828DFA709111901130222009021000000800220011100400114120000000000000028804202002400121A04200280244182110280010000209414281818FC3C44208202008021810111121438142A418101001800111228200228181420A2412812802102A04123
+-:801B8000800148008001001812C012290428226800208134420000004100F0B4410011002A1101280000002800002800001222001218148001120000001800006280020000008001400224004822100220043022001002DC2E2C8341010018188041810260124001201121B2110211800211A02110014842200412000000200480012A0490
+-:801C000080042842004004121A1482220200420020042021746E040000A02100001828000000111100301100001280810280010020A2128001482004004200581848E02402000028421800800100200280016AE132346E1180410100002041018011210100000000802102100100200112000080018001422682040000002100000000441B
+-:801C8000000000000010F2A1CE8008220000000012200132001820A1211800000080810100A01428A01118001218002004200100422005281002001800180028280022180011FC32B78042018A020000362122011448141140811201221901A819C211282428112818120042280012002A0400224822204101181002800829012C0418006A
+-:801D000048422C2484027C24240248EF2B061A9B3113021C81A211A013181113228131111B121712A01218C0111AE11181923118159121111815A131A031581A82021A8221A31112124A24E4210422183A042AA4112AA4617A220221A02129A41246A225A012484848424280B443E124A2321F23674413F811218A01118238100111281980
+-:801D800021022222181413011B2226C1218001282828382A9221121C8304488021A114200512222A2181246622B022A11100481223250125E24294223602221A614300402212820241C041F02AF540611212130218A011E011A231181C41E112410100121E112AC2211312011C8202181AA2211382011385A455421800A042483222628043
+-:801E0000A1632082A1445A017012122206004AA4116022481E325242228004A01112E03337DF80211201188001182811001001110040012601002601226012182200004A0100008022042428241A420248124812220000A04200302610221402211002298281E28DC131171219712191818023820118171219A312381B231B131711112077
+-:801E800041F111111E211F11210114152102141C2182A5454AA5152084218181A111121AA7151E424682C2122D525E121A24A441422E522F25B112224256262B42181AF1121663C3122F217152F242622E4227242556324E522F25B21266252B24421F13F23111222882183A2221A11122223A22A1772E311A0514182A83A1311AA3118A41
+-:801F0000A822B8282D223AD321A331284A045A25A1751220A1111AA111382AA4552B442B4227222F23B342F61311521CA1141AF352722F21F1A2A2D066D922D222A255186F61F312321AA11127242B664A0665F642415E541AF352526AF49A741C73219111171213828123A211807121B111A2131E111F17B33171111111A1312E311F1331
+-:801F8000E113F3311112821C7231A12229C1311F12B121A3514AA5545A2525A71112181AA1111AA3715AA54523E426B21283B752B113A4141A25E52266252B21A6526263A16229A1111AE163B3162161254AB622244612B442A5351AE625F16275E3E813F231313E3115011AA1231A21A1113E311F13A3331AA1731F13E315511180A113C8
+-:802000001F13B111F311311B11882AF2812119E222A2333D311AA3225AA5555AA5115A25A111121AA1111AA1773AA5554E422AA2122F23E325E73121B551A5145AF772722F21F122A225728686E226A6551AF112324F43A3112F21B542E426A6442552424E424B552F23F372527AB6BE0110018200001200220018220000188001000000C2
+-:8020800000208104002001122001184800000000420000400200A021002081040048001260A1A128121902200100121112201101190120011B2122110080621220826112004A2121040000202184820180A212800118122A148211420280828421012004800400A01220F67ED3143E3246E1237141C1121F14E221F141211E121F16622910
+-:802100001F1622F9412123D911B292B521B292A4222F1984F293412AF293512AF213412ADA13A4B21D412EB215E1237B41E122BB41E422B941E421B941C6921B662CB16166281B2696B261F292121B222F29B421B292A5222F1DA5222F1D24F292414B222F15B424FA42414BB24E414F22EB14F426B24E416F2229F426924AD426A9242D19
+-:80218000924E242D126E242F793B9819B32294312F1196212D4119B11296112996912D611B921CF621D2481D925E213CE814E22239412E9313E432A9852E831B14AE134E22B6A324271B4AF3B241F0B241422F19A6342719622F1926F612614AD812A2922D612AFD1261882F14E212ED11C2C21B212ED219E222FD41A44F22FD4114AE5291
+-:802200001D26BE421F44B2B4F44122B21764BA44A6694E269664629A7444A2214F22F9BFA98008000000000000200400000000200800210000000000000000000020021100000082001002000000001004108137FBC011004001100219010011000012121A0222120022002E1118162104168121A4410021003A0442120028000022002145
+-:80228000420020140444000024200400164222016B7D284AA8A2308229011400202202212818130822209211002603000000000000482081012248220014121821208211220480022842001A228C2412E242010040210211112E88C3021B1AA22E82100114001E2100244222001982A1122A2121A22186011A02211A229111001418482216
+-:8023000048188081822702122024321210011E22002448A2200144124726A04224224C012A0441194252121681F211944822009012001002200214402109001400400200001180042001184200210048200414120028004800008024220420080024000080010024F324044A0100001901002200120000000020210200002200422601001F
+-:8023800000124282222880022160110000222002000048004664124602200100200442EFC20A12220040810228A012A0312414260122288002182A03002082410142C20020812884A124002220042118189012A042A04380052C86A442003A232404002C04A0140000E0C2348F00000080822102181832400100228002008002282041A1CA
+-:80240000248A04C021004880A521488A0222602240023418282083045A02260242A0342A2404904220848184018004685F448324A14212001400112880022418268102000038381800000000004218800800002848008001121280042800004A060018801434214002000000C0437383622228280000120000145800C02100C01224808837
+-:80248000A41200138102111800244A02100220022288C84820010000009A841802800148202182220242438A24022800DF330B002002380000004820041410012200802428210124000020021122A0281800284200200448400180820220888284B412012400004280024582012C022E7A410000184800282223220218002120010000C0D0
+-:8025000021220000002200180080040048884002000028188218422400000042A0822200000000108281D45903242222002812208202C0411A01241021032220011C862221021C01801201602120042C021220248C88040048A01288A0412829244182024218482C082A022A06488841422A01223AE2343F34280080810480814282020044
+-:80258000000000401202800400800220810211008A04002822282482001800002002880000424820820100000064401202EF8F068002111420324180C24220021450110042688092112800222823A1411420228502224200A02120048081020080041A81880448400200A011281A842421880420044222E03833D24229169162904212219F
+-:80260000221C0414301200100200210000000024001830111681210248120082808C98428088B84208002B24908249480444614C01444368482844484C0444828644122412F427C5200211100100A0880019C112222C013C2241032682418241226118880012211221142B441A118212223182182190423A012001200118002212008004C4
+-:80268000483200281A010018280058C096131C91210024122042220280611280842A04200218001110A11813043922512100004022218444022A0800984812A082A08280012440E224AA182009C042924880042C043084295442F033E64800268144A141008086126212184081034240810220A2182A110100301180342132A044208184F5
+-:80270000048A84098A228888A1984828824A022C098A0242C082228888A0288880A82142A82089A882E0F538EF000080220111200800424800122001000088281800004820010000001222002C025248008004200100A880014E12222081014200284448004823786306000048004011020000211C0410220224221A4202880014280000D0
+-:802780000000000024000082212004218268800123941488488841004C24C81482400412204C22C219230B480048A04200A2800400A02432420000000000882001621842482A04422084A12542482084041142802C82062A2402A042220048240020028280248404C0812AF47DEF28312140210229860248408102200400110022122A812B
+-:80280000220813012301224810022120A224210088481820024A021822114800008223081230221800100221204211C64218C0835329B22162121942B17164211316E216A2224215B1232204A2428084812463322A21A1233219E812011180031A95612858482AE524A4442B4162298A813E725A4A818985222225238193964A14D22204CD
+-:80288000218AA1728AA1124CA156A0CD4248B21721242F26E6323432CF67C3411724145021421922A5241581682421181D12142D121F36F14152112CC22124222CA1821722251111A114241611A254258132122127229022182B292223A5C42B3412921AB812E224A8389A240E1AE2238A012B224BA244C83A8189018A87A992431542824B
+-:8029000024A5488830B1CC328F2CE22484622413C4124AC222282B884AB821A423183810A1327824199222A031A012188A22E82888E113E413737281E53462157A252424A511A0148A288C38C26882889242CA44A2EA2B64CAC4C28243E824B414B28298446EC44592846B498A5E244A18A442474449A86C4BC84463ED4CFC8E9D8044424E
+-:8029800041C24116A242208288042691121042B14201211082921228298112210812111E22481692411E22482448168264214824002A140221304222232432420041424902414241701402458274840245820448E04284C8F373F281232AF6222335435131160225F2228288482D2315D322512225F241122D1225F2321215532225D2226B
+-:802A0000012D121D21828212502225D222F423211542D222041E122E222D422A52222D82CAF8B2922B9D2B991F19F9B2322B952BB18AF882832B132B11BE129E964F46524447428E844F46F294944F63F192864F4CFCD4F64F61F112926F45F5464625B296E938A8C84F48FE16164BA2DF6E84B642E2227222F2224229B452D722B662621C
+-:802A80002229A62E2E2229731232421C62122F263143381E2137222B222AA133B6D212A2832429611119B121E323F542723AB762F132422F2694422B742F22F142722BC34AE828BD92EB23ED2DE93DF883B22F2BE53DF391E22F2CFAE3525E523AB9B2F99666672E2B222B816F68BEE6A9B98E926F69B886BDF2FF92D66F65FD14444B4608
+-:802B00006CBDD4F993C24F2CEA2AFD52F43E14D3D631F222422E211D212D431F11B43286F422222F22A8A22D422F327223C15220F263113C013A531326A2132AF122822AD31173816128121F11E11323B412F521631B512B26682D421AB522A6512D42C8C89AFDB2D27E329AFD9393BA6B243EF12726EAEA23E521A58A4B996EA42D422F2A
+-:802B800022F38682EEA69AAFBB4B892F6CADFD2BF86F49ED2CA4644D442F49ED25F982C22D627AB5347B9EC7E13F36B663722193431D511F25C7622B262E8339EE2EF442223D331B1127212D211F32B471755292323613F122222B123E322B131E212E81822B181691111F22F732524E713F13E726E523B44284E525E726B142A763EE42D8
+-:802C00002F2CBDD2ABDF2B9C9E911F29BBB2BD52BBD1EE3CBAE2B452F732B22F6BB9927664B666F222842BE86F4EB9F4EB6BB992F4D4D44F2FEF2BED45BD56E464D426BDD4FD92C6CEA2AEF66F6DFFF276C30922008008002800112800000000000000000000A01422004200A0140020240192200980248124080000009820248209882067
+-:802C800004880020F47F2D485011221C848104268188068001400122520022182A8281021021081A92411200192401184880822882298421A21820015AA82280C2128084522280A4A8A01120A844822021044812682F28081E9143F641222B411F24F2124117242F11F461122F1166262F19B661F812411B922F11F621922F19F2219227F7
+-:802D0000152ED22B242ED233E522BD53E232B953E232B141623A1BA4BE411B342F1BF441322F19F441322F1BE424F392414E122F19E426F192416E922F11E422D912E626D912E622D912E2227942E122BD52E222BDC3C2D21B244DD21F44F224521F44F284421F44B294F441246B4B1D366B491F64B296C4A66B4946B69264262B6943F613
+-:802D800092644B826F89C9412F23E114F422121F127422D211F612122A94921F16961266F182121F16E22CE916E22915F1C1121B22CE52281F2DA5221F39A52A1B483A32132BB833A4B31F14B432FA41412BB119B412B961B43298412B811B422B191B2223B96176927221612D6AE22934211F2D3121CEC322D6E142F2D2418E242F1DE47B
+-:802E000041FA52412DB427144C6B142F41E914F42214422F4AA9462B9249D426A9662C39248E5A630F8200002001200400000080010000000040020000000000000000000000140000000000240000000000440014F03A6188301125010022142908230248140022002C020000001081818298230018182A012001202A8728060028004864
+-:802E80002820868181342228004A8304006048128282001280042E4F330F821400001601180024183800112800281423A2283C066621081400C04116C1410011004200001A2884884802882100008681014800800A2094244822144188244817228E21888F930A1C48D2110200221219A1284082A46100141C02242A028088188371410174
+-:802F000080D2129822A014111A81228101808A220182824A8C4822422128840620E12908182248A0832302C02458805241A018B0441231C12EEA712001000014244002001901220000409122224A02288260110040011C84021100488004681800000021220040A1252004004200488841A882002440828278BD8E04462141011501004872
+-:802F80002082490122000000180022000000481A1211820480080000002C010000002C012C08000021002850424084644200004800DC2E1D12C142A041185822002321E111140216C211230321B023A14200182860122228902100141361211002112238601182C8A2882901220028280048404422A4824921026200200129458208214A40
+-:8030000018F288E960144622011304132402A01522301280C1320040B231021200221C0200B0210540A151008814A022001A8888A281208102002A022C0840043042202102420041322C4102402224883E6E2130418061111800400256211831321100240042003800202202001352124002240020011420348210020000290120041002FB
+-:80308000A841206222410042444280088044F21F610028482A41410240210110112284C1213011000040210812480000800C802442012412460321804922948280C2212301004AA84282003012908400A02220E2218258260041C0ECA34D111182022002801402902148004214101221018088A112822001005220848482042200228001D2
+-:803100008004200411000046829822A0282CA121222302004A018826440462214A01A7568005000000000022800200004002B022B2420442601280382200008001C2210028800800A2800888620021004400004024040044000000244E7FF34B91512180413122001611021CD2120222186601101241022CE212A41422826011E028024A57
+-:8031800021044848188E4123128264122418888A11C2228842822E128A06C042214229122408124332824480A216B014584282A0242158481F290E0022420000200400000020010012400248802402000082428004800124280000880028000080220C80022880820400200224104204D0923A6424111148214220642246014211429012DC
+-:8032000011421A82026012860148809121130400A09440116114144820C6211C1411B18132411414860200204402242C460419A814144825011180081082082C082288AF69038004001119028002000000001022110250121A141122925114141001240014141800284248008210212208864101204803100400422908821188214D2200AF
+-:8032800000212D91E3C2110000222C32112C010012141811181400108181824A0100204101242211122118330411114200581A040010C222482800480022A821000020932234002001902222226F640D208411810128800110010012108214A14180041A02218A8808A0124200222002222888241822860280024E210000212028021001B2
+-:803300001288412A482202002022020000747316022100109111C021133211404201421824320068141CF882211426C1211C41C11114368168292200202424822124043042480050122190813041482120120430444840A2122400822418298898442CE2EF030013C4532258C021800122130130420090121825C112002C22182208482850
+-:8033800000112A0100221002602811862221082384021001271222214144230812204263428008002418888002C0FA930E0000132502200100001100002130123042001002120000001391214001181400100113082400200224222100400114002211410021200800003FFC011A082113240420B41102190234144218141224C042112C62
+-:80340000A42100240000481A011A1101002B2424E024A2812488122D8224004A84414282088244800200220080220880240824822018C1BC331401A0128E21304200001200800420C3111480242205A880214A0228212821281A0228A024202422984282002924420214302200488288181840220220110224A02840052145021E9C9081A2
+-:803480002C9441242D7168271415931119822521D11341122281A1125A41A1251C9A812EA31D1220A228111E5119052AA119211439C241422AA6429E131CAC492B868E531F18388223CA8180382229F222A11B841125862214411664111120D826B89109C0822AC8129A29C8828E2219D8323BDB1B11C681B431A1485835A1131E124A9362
+-:80350000212E211331438031411D532C61222563312D332C756182F221218E523D23192681F4212121E21712142AD21151121354131B426E522A521216E2283442171435A24222391112D2229A816A22086F62A22B158144E442D221B422A2222B221D818098822434864252342AF2AB4C242114211F141591112AA4262E211815011148D5
+-:803580001D111981814222E221C4514E522A213D422593A198869121125E1137111F22A8333E121A042113B4422132214E818E4352324A08243F223422A084407222A1446F245812008222AAE42434211C01672821212744292842A228224726BC34BC250121422113142204001112244002241A021248802401008822184818211823027C
+-:803600002302214229A2142D2142860196216418C021008042218854425041504150414811908100800888800841F032FF3C711253232F24F112123F39F513322B1727212B111A42117111533335D3337112D12132127011D332D523F482822F29F22222293222A6B12181042F23B2227892B2227122532225D322F443233F14D333724316
+-:803680007383F38343273C371D3718373825D222F4421323113222281F1AF2214445D772F2242517525D2617121D255F32D443F227B11F6B7225532329A4842CE911487286D666F644266F923CFE3F21511325B252F782422B5135F253532F21A3313A53111F1151331D4335F2111215E113C3121CF143533F33F361A32F29DF33F82323AA
+-:803700001F127381F183231217353F33F722222F2BF982A227212F33932225924237322F35F433232F14D43358333F31E914D4335C333F22B263F41313702272A281F8636365D666F826265F4253557F72F221211F26F623237F52F2B3337F53513325A2EC246F49E11171827686F266466F22F25AB23C711353212F24E123F113531F21BD
+-:80378000B352F312322B331AE3116113173135714353133F31D123B213A31216F313433F23FDA2C22F29F2A22229A283AAB823A141523E333F12F891B22B1A17232563222D424E233F14F751233725373A3F2C71C233D33718335C322D632F267113522223C2A1AE611F4654343F78F227213695252F52F225654F36F623266F12FBB13658
+-:803800005733312D422F26D822F9149223F182242F62F446262FC231A23F3151112F24E415F552531F15F573733F37F732323E113AD311F211113553112F21D1117111F132321819F141533F34F5F1A33F3DFF23212F32F22121A6F1A123123F15F431723F33E23BF9B2A23E332F2242F143421CF423235E633F37B6C2F6C3C31F2DF4D3BE
+-:80388000D3CAF4838335F223233F16E41151222F22B2A1A2AA1F165666757227B62452554F32F221216F46F623236F72F2B3337F5B5B33242F2CFC82822F49F912924F28F8A2A26F66D622F2487F20010000122001000040810120028001241001008002122019010000002200250200242224400200000000008002230121001002002D4C
+-:8039000015630A14132411A141421C12A1211128190111125012301230131CA4282EC331902390A180E11214611A11221901421480A614824223A814822421110060222348B142022114280043022A44022C09002C388218E02218023E751CE422B141E422F141412CB141C6121B642CF141618E121B649AB141329219B29295212B5D2AC5
+-:80398000F2D241F0D251222F1D25F252412AFA4241AAEB14E423E914E4236B143EB24AE422B941E421F941612CF961619E921F16E229F961619AF861212B891B222BC91B222BC92AF2D2C1223F3DAC222F1D34242F35B424D812B4A4E914F4A49246F1A49246F1A492424F6A29F484924AE228E944E228E944E278318F1B242F11A4242FF3
+-:803A000011B2417212217612217612B161B812A4961E412EC21CE42269153CED15E2221DC1D21B212CBD51CAC21B342E521D82BE4219B382B441B3A294112B4B4AF282614A739231412B291B942B281B122B691B168AF221528AC692DE213CEC1CE222AD2C3CB583E212FD41A42CFD4334AAF141869E421DA46B491DA46B4119BA92E4449E
+-:803A8000BA1686FA12442E841AF464822B494B82DBFE800800000000000000000000000000002100000000008008000000000000000000000000000000000010C18263051810011001121001C2190211D0120812100214584031232002140016011420014001800100420022000042105252422100008001160280224482C12223C4121825
+-:803B000088CF3B041948A1518A49010048121001188031222C0838212A028848001011A111D01284A44222211C140231482B384829041B841CD2220840A1244820D2218AA284160446E44448240428104414624470820430111141114D179342A118E01B041100185810A14811521042918320C12240A11882E0210225011C41C24178681A
+-:803B8000247021021542E124A8212C051C2468264200191481244231822A6459432CB41464482904800329118494242BC26149612242254441F4896A001412204901001400200219E2210818282128004A041501112A0100100111184200008004001123880228004828241002210041001004210000701112A111E01835451800100118D6
+-:803C0000144A813221121502242100100260122822200222138404202403140040911180C141228218000023018200242122402124028A04488800800200002088F1694F001A6114484021449112184E412A6214A21132112128124A8194522C051A042242001C8308312B3130116024122210222A611223642A822400282016820A112826
+-:803C8000C0442845E442021D4428882564224C8518A244282460222C351800481114C051C04222681661161312810124C0128091435A220628282842426011421A22C111148014220323B16188833A53A882401202826840229A211001484C32444C42212C22082C82048004242829F1A35A182021810400191121B1114682082562120066
+-:803D000020228402B0120142481400286028112902128011110100004002001220022110022848442288222014042912C4142C8804208208BC3F5D002992211200243041A222001A048062110014212AC42214800100108222814412820A002188424A22023848231882021180C222008848226022488800822822242003400229085F3F8D
+-:803D80000E1D2342112286812201002190112064221C1412010018230829011A082C1101100120212222014800138A040042A0481D8214218631124818CE4282805814232162264C820224002982C8848018828232D7000088402201000014000000208102822248002A04800E00420024824800000082210024221880042902110020443E
+-:803E0000018A0200188A0282000000DF75011C2274230112282041811A22C211800229160180418221BE82924112884818118823A612402235222412822460182AA244804B42022974212222C1512225A2469A04A082B021846A242E2428A0222B2123882801801812C218E31D110200142C1102480011800110820110211222120200282C
+-:803E8000001001420082004248A0488002008288218821882122003148102464122008820010028288212028F217651442482034432CD531841492422B4914230400304180042904884AE23401A02817158A222401806821200422232288C142224280022A0220028008882906186221216026110022000080022B28886C386B8024010030
+-:803F00000080011C0110010022001304A82400282028318228111C2282942100B04101A2281188194891412100000021000082132804001440812242422242024002EF4F8112021880042001422440430111120042238291121814200410021916011612014A025800122004808408882D420046A22821A024112C04000088282002212006
+-:803F80000849C2822888422E7C43A54129211182C41324008822901148224800111400A08422C021802308928229924100920000489280042E1100190426918320224401418288D01482328121142415028E24002823090022F0EECF406231100100142301200658001681810223041442110011A0422288880000E024041A062A021828DA
+-:804000002388228842011F2822A422118A24024A02004A82022841460280028849B18208A84C84D28136FB00424A11C142139411422413C1124214F012412084044092210015023219C141181C041120B4210800221800002001100180088800400219824402450200420021C06280020048EFCD0B008041810100886220012222002A0425
+-:804080001C8284C212424221001001A0211001229041001001009082154202420000280010060040821241712202100210220229D8B23E181442212112004212134501800412004032114022214A22022A08888021014280210100A8181800888A922220C222804A02291882622410224222222222C42500218AA284002142001DDA1822B8
+-:8041000000202201004001002024841432212A440100228220012B16B0412882C221520062005602A061281002421B84481083F482412A041384B28182240131004002002022348482008C14EF1596521AA1414E511523E431A1114E939AB412A414463221181A042C046E6127321A3421DE122E223B2228881F12A2A21392211B28424A45
+-:8041800082BD81A12123A412524A8C82A2312AA28A26B281CA2248422BC82B481322E416A8642B222A4286D252BC22C2A129D2331A32222C120223482491A2886EA21C34227F1AC5231A85D421B4139152244E412C7443A2243F1334113384C421211E411B642862124A14613766A21414144846A1442BE4121C52214AA622624219C121DE
+-:804200003A81034825A2141B8130432C62323B223302F04282248865E22874216218232204C06114291281A2222146A223A8C064884EC1D240D222041129F511134820B141682213D111C4311601C03123542213D423A28D2A7841613432AAE228E91DE119E911FC32913817121719162284A4642CA43A8E935A9141CA98213BA4223712FC
+-:804280001738AA2CA4222F28BAA2D821061F14A44413A256622417422A64421CD61416E3625A22882F2CE8686C282D22822DA2A84FB30A4800211C0414213012100221901210024230412818100100110016022448241124196421196421111211888008004A08004E81601441144146114411044110044130842008824C0474D3F513137A
+-:804300002F2154224622D8225722009E82AACE424AF541412F31D133D111012F2323B412D12244D211F8A3832F24F44262288AAACCBAF8F1C113798252221D412B899E833F35D511F413412E233F3CFE23813541E315F5331217222C582223F2428227242CC8823F327243B24356541F34D423F247246F76D2133321574267721D613D44EF
<<Diff was trimmed, longer than 597 lines>>


More information about the pld-cvs-commit mailing list