public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* RE: [PATCH] 2.6.5- es7000 subarch update
@ 2004-04-13  3:44 Protasevich, Natalie
  2004-04-14  4:29 ` Len Brown
  0 siblings, 1 reply; 13+ messages in thread
From: Protasevich, Natalie @ 2004-04-13  3:44 UTC (permalink / raw)
  To: Len Brown; +Cc: Andrew Morton, Martin J. Bligh, linux-kernel, lse-tech

Hi Len,

>The ES7000 sure is a great tester of the over-ride code!

Yes, indeed...

>But I don't like the proposal to selectively invalidate
>existing mp_irqs[] entries.
>I think the proper fix is to parse the over-ride entries before
>filling in the (remaining) identity mappings.  This also gets
>rid of the special case for IRQ2, which would be handled exactly
>like the mappings to < 16 on the ES7000 above.

This is great idea! I know that the patch I suggested was "patching the symptom", not really addressing the cause. I didn't really expect it to be used, mostly just to illustrate the problem.

>Perhaps I should send you a patch you can test on the ES7000,
>since I don't have one of those?

Yes, please send me the patch and I will test it immediately.

>In any case, I'd prefer that proposed patches to this code come
>through me, since it is ACPI specific.

Actually, I was just looking for you, and this is my email to one of my friends, who I think won't get it till tomorrow: "The alternative patch I came up with I think is correct, but looks really ugly.  There are like 3 or 4 places where it can be done, maybe someone could give me a hand to decide where to put the fix. Who is actually in charge of the mpparse and things like that I could cc to?"
:)
Thanks,
--Natalie

^ permalink raw reply	[flat|nested] 13+ messages in thread
* [PATCH] 2.6.5- es7000 subarch update
@ 2004-04-19 17:30 Protasevich, Natalie
  0 siblings, 0 replies; 13+ messages in thread
From: Protasevich, Natalie @ 2004-04-19 17:30 UTC (permalink / raw)
  To: Andrew Morton, Len Brown
  Cc: linux-kernel, lse-tech, Martin J. Bligh, Zwane Mwaikambo

Hi Andrew,
I am re-submitting the patch for ES7000. It only contains changes that ES7000 subarch-specific and allow the system to boot.
The IRQ override portion has transformed into a separate patch by Len Brown which corrects the problem properly. Thanks to Len and also to Zwane, and Andrew who helped resolve this issue for systems like ES7000 that rely on this code.

Regards,
--Natalie

-------------------------------------------------------------------------------------------------------------------

diff -Naur linux6.5/arch/i386/mach-es7000/es7000.c linux265/arch/i386/mach-es7000/es7000.c
--- linux6.5/arch/i386/mach-es7000/es7000.c	2004-04-04 18:22:39.000000000 -0400
+++ linux265/arch/i386/mach-es7000/es7000.c	2004-04-14 23:08:42.000000000 -0400
@@ -83,6 +83,7 @@
 			host = (struct mip_reg *)val;
 			host_reg = __va(host);
 			val = MIP_RD_LO(mi->mip_reg);
+			mip_port = MIP_PORT(mi->mip_info);
 			mip_addr = val;
 			mip = (struct mip_reg *)val;
 			mip_reg = __va(mip);
diff -Naur linux6.5/arch/i386/mach-es7000/es7000.h linux265/arch/i386/mach-es7000/es7000.h
--- linux6.5/arch/i386/mach-es7000/es7000.h	2004-04-04 18:22:39.000000000 -0400
+++ linux265/arch/i386/mach-es7000/es7000.h	2004-04-14 23:10:51.000000000 -0400
@@ -30,6 +30,7 @@
 #define	MIP_BUSY		1
 #define	MIP_SPIN		0xf0000
 #define	MIP_VALID		0x0100000000000000
+#define	MIP_PORT(VALUE)	((VALUE >> 32) & 0xffff)
 
 #define	MIP_RD_LO(VALUE)	(VALUE & 0xffffffff)   
 
diff -Naur linux6.5/include/asm-i386/mach-es7000/mach_apic.h linux265/include/asm-i386/mach-es7000/mach_apic.h
--- linux6.5/include/asm-i386/mach-es7000/mach_apic.h	2004-04-04 18:22:46.000000000 -0400
+++ linux265/include/asm-i386/mach-es7000/mach_apic.h	2004-04-14 23:05:24.000000000 -0400
@@ -39,7 +39,7 @@
 #endif
 
 #define APIC_BROADCAST_ID	(0xff)
-#define NO_IOAPIC_CHECK (0)
+#define NO_IOAPIC_CHECK (1)
 
 static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
 { 
@@ -169,7 +169,11 @@
 	num_bits_set = cpus_weight_const(cpumask);
 	/* Return id to all */
 	if (num_bits_set == NR_CPUS)
+#if defined CONFIG_ES7000_CLUSTERED_APIC
 		return 0xFF;
+#else
+		return cpu_to_logical_apicid(0);
+#endif
 	/* 
 	 * The cpus in the mask must all be on the apic cluster.  If are not 
 	 * on the same apicid cluster return default value of TARGET_CPUS. 
@@ -182,7 +186,11 @@
 			if (apicid_cluster(apicid) != 
 					apicid_cluster(new_apicid)){
 				printk ("%s: Not a valid mask!\n",__FUNCTION__);
+#if defined CONFIG_ES7000_CLUSTERED_APIC
 				return 0xFF;
+#else
+				return cpu_to_logical_apicid(0);
+#endif
 			}
 			apicid = new_apicid;
 			cpus_found++;

----------------------------------------------------------------------------------------------------------------

^ permalink raw reply	[flat|nested] 13+ messages in thread
* RE: [PATCH] 2.6.5- es7000 subarch update
@ 2004-04-14 16:45 Protasevich, Natalie
  0 siblings, 0 replies; 13+ messages in thread
From: Protasevich, Natalie @ 2004-04-14 16:45 UTC (permalink / raw)
  To: Len Brown
  Cc: Andrew Morton, Martin J. Bligh, linux-kernel, lse-tech,
	Maciej W. Rozycki

[-- Attachment #1: Type: text/plain, Size: 3364 bytes --]

Hi Len,

>please test it on your ES7000.  I'd love to see
>the full dmesg from an ES7000 if you can grow your
>CONFIG_LOG_BUF_SHIFT to capture it all.

The patch worked great, my system came up beautifully. Len, it was so well done, and it was fast, too - thanks! I forgot to increase this parameter, but still collected a full trace with some extra IO-APIC snapshots. For now, I am attaching a serial console trace, and later will provide you full dmesg.

>I expect that if the Linux IRQ convention was working
>on the ES7000 before, this patch will maintain
>compatibility with that.  However, if things were
>not working as expected before, I just wanted to
>point out that another convention is possible --
>particularly with a sub-architecture.

Yes, the IRQ schema you described was used on the ES7000 previously on 2.6. For example, the way interrupts looked with the old interrupt code (with irq_balance off, and my tweak for the IDE):
  0:    1566205          0          0          0         IO-APIC-edge  timer
  1:         12          0          0          0         IO-APIC-edge  i8042
  2:          0          0          0          0               XT-PIC  cascade
  4:         20          0          0          0         IO-APIC-edge  serial
  8:          3          0          0          0         IO-APIC-edge  rtc
 12:        399          0          0          0         IO-APIC-edge  i8042
 15:         37          0          0          0         IO-APIC-edge  ide1
 17:       8083          0          0          0        IO-APIC-level  megaraid
 20:      20141          0          0          0        IO-APIC-level  eth0
 23:          0          0          0          0        IO-APIC-level  acpi
NMI:          0          0          0          0       
LOC:    1562738    1562605    1562608    1562607    
ERR:          0
MIS:          0

With your patch, it looks like this:

  0:      21266      79032          0          0    IO-APIC-edge  timer
  1:         14          0          0          0    IO-APIC-edge  i8042
  2:          0          0          0          0          XT-PIC  cascade
  4:         19          0          0          0    IO-APIC-edge  serial
  8:          2          0          0          0    IO-APIC-edge  rtc
 12:        503          0          0          0    IO-APIC-edge  i8042
 15:         39          0          0          1    IO-APIC-edge  ide1
 17:       1762          0          0          0   IO-APIC-level  megaraid
 20:        868          0          0          0   IO-APIC-level  eth0
 23:          0          0          0          0   IO-APIC-level  acpi
NMI:          0          0          0          0
LOC:      94472      94484      94483      94482
ERR:          0
MIS:          0

There were other strange schemas that I've used before in 2.4, mostly due to ongoing inconsistencies in the BIOS and ACPI. Those were eventually cleaned up and now I guess a general convention can be applied, even though BIOS-clean IRQ schema still looks pretty exotic, as you noticed... With this patch, it looks like everything's taken care off.

Let me know if you need particular debug done with this patch. I'll send you a dmesg you've requested with increased CONFIG_LOG_BUF_SHIFT shortly (as soon as the system becomes available today).

Thanks,
--Natalie

[-- Attachment #2: trace.txt --]
[-- Type: text/plain, Size: 52036 bytes --]

ÿþL\0i\0n\0u\0x\0 \0v\0e\0r\0s\0i\0o\0n\0 \02\0.\06\0.\05\0 \0(\0r\0o\0o\0t\0@\0m\00\00\07\07\0-\0c\0e\0l\0l\00\0)\0 \0(\0g\0c\0c\0 \0v\0e\0r\0s\0i\0o\0n\0 \03\0.\02\0)\0 \0#\03\0 \0S\0\r\0
\0M\0P\0 \0W\0e\0d\0 \0A\0p\0r\0 \01\04\0 \00\02\0:\02\06\0:\05\05\0 \0E\0D\0T\0 \02\00\00\04\0\r\0
\0B\0I\0O\0S\0-\0p\0r\0o\0v\0i\0d\0e\0d\0 \0p\0h\0y\0s\0i\0c\0a\0l\0 \0R\0A\0M\0 \0m\0a\0p\0:\0\r\0
\0 \0B\0I\0O\0S\0-\0e\08\02\00\0:\0 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0 \0-\0 \00\00\00\00\00\00\00\00\00\00\00\09\0e\08\00\00\0 \0(\0u\0s\0a\0b\0l\0e\0)\0\r\0
\0 \0B\0I\0O\0S\0-\0e\08\02\00\0:\0 \00\00\00\00\00\00\00\00\00\00\00\09\0e\08\00\00\0 \0-\0 \00\00\00\00\00\00\00\00\00\00\00\0a\00\00\00\00\0 \0(\0r\0e\0s\0e\0r\0v\0e\0d\0)\0\r\0
\0 \0B\0I\0O\0S\0-\0e\08\02\00\0:\0 \00\00\00\00\00\00\00\00\00\00\00\0c\0e\00\00\00\0 \0-\0 \00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\0 \0(\0r\0e\0s\0e\0r\0v\0e\0d\0)\0\r\0
\0 \0B\0I\0O\0S\0-\0e\08\02\00\0:\0 \00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\0 \0-\0 \00\00\00\00\00\00\00\00\0f\09\0f\0b\00\00\00\00\0 \0(\0u\0s\0a\0b\0l\0e\0)\0\r\0
\0 \0B\0I\0O\0S\0-\0e\08\02\00\0:\0 \00\00\00\00\00\00\00\00\0f\09\0f\0b\00\00\00\00\0 \0-\0 \00\00\00\00\00\00\00\00\0f\09\0f\0e\0a\00\00\00\0 \0(\0A\0C\0P\0I\0 \0d\0a\0t\0a\0)\0\r\0
\0 \0B\0I\0O\0S\0-\0e\08\02\00\0:\0 \00\00\00\00\00\00\00\00\0f\09\0f\0e\0a\00\00\00\0 \0-\0 \00\00\00\00\00\00\00\00\0f\0a\00\00\00\00\00\00\0 \0(\0A\0C\0P\0I\0 \0N\0V\0S\0)\0\r\0
\0 \0B\0I\0O\0S\0-\0e\08\02\00\0:\0 \00\00\00\00\00\00\00\00\0f\0e\00\00\00\00\00\00\0 \0-\0 \00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\0 \0(\0r\0e\0s\0e\0r\0v\0e\0d\0)\0\r\0
\0 \0B\0I\0O\0S\0-\0e\08\02\00\0:\0 \00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\0 \0-\0 \00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\0 \0(\0u\0s\0a\0b\0l\0e\0)\0\r\0
\07\02\09\06\0M\0B\0 \0H\0I\0G\0H\0M\0E\0M\0 \0a\0v\0a\0i\0l\0a\0b\0l\0e\0.\0\r\0
\08\09\06\0M\0B\0 \0L\0O\0W\0M\0E\0M\0 \0a\0v\0a\0i\0l\0a\0b\0l\0e\0.\0\r\0
\0A\0C\0P\0I\0:\0 \0S\03\0 \0a\0n\0d\0 \0P\0A\0E\0 \0d\0o\0 \0n\0o\0t\0 \0l\0i\0k\0e\0 \0e\0a\0c\0h\0 \0o\0t\0h\0e\0r\0 \0f\0o\0r\0 \0n\0o\0w\0,\0 \0S\03\0 \0d\0i\0s\0a\0b\0l\0e\0d\0.\0\r\0
\0f\0o\0u\0n\0d\0 \0S\0M\0P\0 \0M\0P\0-\0t\0a\0b\0l\0e\0 \0a\0t\0 \00\00\00\0f\05\04\05\00\0\r\0
\0O\0n\0 \0n\0o\0d\0e\0 \00\0 \0t\0o\0t\0a\0l\0p\0a\0g\0e\0s\0:\0 \02\00\09\07\01\05\02\0\r\0
\0 \0 \0D\0M\0A\0 \0z\0o\0n\0e\0:\0 \04\00\09\06\0 \0p\0a\0g\0e\0s\0,\0 \0L\0I\0F\0O\0 \0b\0a\0t\0c\0h\0:\01\0\r\0
\0 \0 \0N\0o\0r\0m\0a\0l\0 \0z\0o\0n\0e\0:\0 \02\02\05\02\08\00\0 \0p\0a\0g\0e\0s\0,\0 \0L\0I\0F\0O\0 \0b\0a\0t\0c\0h\0:\01\06\0\r\0
\0 \0 \0H\0i\0g\0h\0M\0e\0m\0 \0z\0o\0n\0e\0:\0 \01\08\06\07\07\07\06\0 \0p\0a\0g\0e\0s\0,\0 \0L\0I\0F\0O\0 \0b\0a\0t\0c\0h\0:\01\06\0\r\0
\0D\0M\0I\0 \0p\0r\0e\0s\0e\0n\0t\0.\0\r\0
\0A\0C\0P\0I\0:\0 \0R\0S\0D\0P\0 \0(\0v\00\00\00\0 \0P\0T\0L\0T\0D\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0)\0 \0@\0 \00\0x\00\00\00\0f\05\04\02\00\0\r\0
\0A\0C\0P\0I\0:\0 \0R\0S\0D\0T\0 \0(\0v\00\00\01\0 \0P\0T\0L\0T\0D\0 \0 \0 \0 \0R\0S\0D\0T\0 \0 \0 \00\0x\00\06\00\04\00\00\00\00\0 \0 \0L\0T\0P\0 \00\0x\00\06\00\04\00\00\00\00\0)\0 \0@\0 \00\0x\0f\09\0f\0b\0b\01\06\0e\0\r\0
\0A\0C\0P\0I\0:\0 \0F\0A\0D\0T\0 \0(\0v\00\00\01\0 \0U\0N\0I\0S\0Y\0S\0 \04\04\00\0B\0X\03\00\09\0 \00\0x\00\06\00\04\00\00\00\00\0 \0P\0T\0L\0 \0 \00\0x\00\00\00\0f\04\02\04\00\0)\0 \0@\0 \00\0x\0f\09\0f\0e\09\0d\0f\02\0\r\0
\0A\0C\0P\0I\0:\0 \0O\0E\0M\01\0 \0(\0v\00\00\01\0 \0U\0N\0I\0S\0Y\0S\0 \0 \0 \0O\0E\0M\01\0 \0 \0 \00\0x\00\06\00\04\00\00\00\00\0 \0 \0L\0T\0P\0 \00\0x\00\06\00\04\00\00\00\00\0)\0 \0@\0 \00\0x\0f\09\0f\0e\09\0e\06\06\0\r\0
\0A\0C\0P\0I\0:\0 \0S\0R\0A\0T\0 \0(\0v\00\00\01\0 \0U\0N\0I\0S\0Y\0S\0 \0 \0 \0S\0R\0A\0T\0 \0 \0 \00\0x\00\06\00\04\00\00\00\00\0 \0 \0L\0T\0P\0 \00\0x\00\06\00\04\00\00\00\00\0)\0 \0@\0 \00\0x\0f\09\0f\0e\09\0e\09\06\0\r\0
\0A\0C\0P\0I\0:\0 \0M\0A\0D\0T\0 \0(\0v\00\00\01\0 \0P\0T\0L\0T\0D\0 \0 \0	\0 \0A\0P\0I\0C\0 \0 \0 \00\0x\00\06\00\04\00\00\00\00\0 \0 \0L\0T\0P\0 \00\0x\00\06\00\04\00\00\00\00\0)\0 \0@\0 \00\0x\0f\09\0f\0e\09\0e\0e\0e\0\r\0
\0A\0C\0P\0I\0:\0 \0B\0O\0O\0T\0 \0(\0v\00\00\01\0 \0P\0T\0L\0T\0D\0 \0 \0$\0S\0B\0F\0T\0B\0L\0$\0 \00\0x\00\06\00\04\00\00\00\00\0 \0 \0L\0T\0P\0 \00\0x\00\00\00\00\00\00\00\01\0)\0 \0@\0 \00\0x\0f\09\0f\0e\09\0f\0d\08\0\r\0
\0A\0C\0P\0I\0:\0 \0D\0S\0D\0T\0 \0(\0v\00\00\01\0 \0U\0N\0I\0S\0Y\0S\0 \0 \0H\0o\0r\0i\0z\0o\0n\0 \00\0x\00\06\00\04\00\00\00\00\0 \0M\0S\0F\0T\0 \00\0x\00\02\00\00\00\00\00\01\0)\0 \0@\0 \00\0x\00\00\00\00\00\00\00\00\0\r\0
\0A\0C\0P\0I\0:\0 \0O\0E\0M\01\0 \0(\0v\00\00\01\0 \0U\0N\0I\0S\0Y\0S\0 \0 \0 \0O\0E\0M\01\0 \0 \0 \00\0x\00\06\00\04\00\00\00\00\0 \0 \0L\0T\0P\0 \00\0x\00\06\00\04\00\00\00\00\0)\0 \0@\0 \00\0x\0f\09\0f\0e\09\0e\06\06\0\r\0
\0\r\0
\0E\0n\0a\0b\0l\0i\0n\0g\0 \0E\0S\07\00\00\00\0 \0s\0p\0e\0c\0i\0f\0i\0c\0 \0f\0e\0a\0t\0u\0r\0e\0s\0.\0.\0.\0\r\0
\0A\0C\0P\0I\0:\0 \0L\0A\0P\0I\0C\0 \0(\0a\0c\0p\0i\0_\0i\0d\0[\00\0x\00\00\0]\0 \0l\0a\0p\0i\0c\0_\0i\0d\0[\00\0x\00\00\0]\0 \0e\0n\0a\0b\0l\0e\0d\0)\0\r\0
\0P\0r\0o\0c\0e\0s\0s\0o\0r\0 \0#\00\0 \01\05\0:\02\0 \0A\0P\0I\0C\0 \0v\0e\0r\0s\0i\0o\0n\0 \02\00\0\r\0
\0A\0C\0P\0I\0:\0 \0L\0A\0P\0I\0C\0 \0(\0a\0c\0p\0i\0_\0i\0d\0[\00\0x\00\01\0]\0 \0l\0a\0p\0i\0c\0_\0i\0d\0[\00\0x\00\02\0]\0 \0e\0n\0a\0b\0l\0e\0d\0)\0\r\0
\0P\0r\0o\0c\0e\0s\0s\0o\0r\0 \0#\02\0 \01\05\0:\02\0 \0A\0P\0I\0C\0 \0v\0e\0r\0s\0i\0o\0n\0 \02\00\0\r\0
\0A\0C\0P\0I\0:\0 \0L\0A\0P\0I\0C\0 \0(\0a\0c\0p\0i\0_\0i\0d\0[\00\0x\00\02\0]\0 \0l\0a\0p\0i\0c\0_\0i\0d\0[\00\0x\00\04\0]\0 \0e\0n\0a\0b\0l\0e\0d\0)\0\r\0
\0P\0r\0o\0c\0e\0s\0s\0o\0r\0 \0#\04\0 \01\05\0:\02\0 \0A\0P\0I\0C\0 \0v\0e\0r\0s\0i\0o\0n\0 \02\00\0\r\0
\0A\0C\0P\0I\0:\0 \0L\0A\0P\0I\0C\0 \0(\0a\0c\0p\0i\0_\0i\0d\0[\00\0x\00\03\0]\0 \0l\0a\0p\0i\0c\0_\0i\0d\0[\00\0x\00\06\0]\0 \0e\0n\0a\0b\0l\0e\0d\0)\0\r\0
\0P\0r\0o\0c\0e\0s\0s\0o\0r\0 \0#\06\0 \01\05\0:\02\0 \0A\0P\0I\0C\0 \0v\0e\0r\0s\0i\0o\0n\0 \02\00\0\r\0
\0A\0C\0P\0I\0:\0 \0L\0A\0P\0I\0C\0_\0N\0M\0I\0 \0(\0a\0c\0p\0i\0_\0i\0d\0[\00\0x\00\00\0]\0 \0h\0i\0g\0h\0 \0e\0d\0g\0e\0 \0l\0i\0n\0t\0[\00\0x\01\0]\0)\0\r\0
\0A\0C\0P\0I\0:\0 \0L\0A\0P\0I\0C\0_\0N\0M\0I\0 \0(\0a\0c\0p\0i\0_\0i\0d\0[\00\0x\00\01\0]\0 \0h\0i\0g\0h\0 \0e\0d\0g\0e\0 \0l\0i\0n\0t\0[\00\0x\01\0]\0)\0\r\0
\0A\0C\0P\0I\0:\0 \0L\0A\0P\0I\0C\0_\0N\0M\0I\0 \0(\0a\0c\0p\0i\0_\0i\0d\0[\00\0x\00\02\0]\0 \0h\0i\0g\0h\0 \0e\0d\0g\0e\0 \0l\0i\0n\0t\0[\00\0x\01\0]\0)\0\r\0
\0A\0C\0P\0I\0:\0 \0L\0A\0P\0I\0C\0_\0N\0M\0I\0 \0(\0a\0c\0p\0i\0_\0i\0d\0[\00\0x\00\03\0]\0 \0h\0i\0g\0h\0 \0e\0d\0g\0e\0 \0l\0i\0n\0t\0[\00\0x\01\0]\0)\0\r\0
\0A\0C\0P\0I\0:\0 \0I\0O\0A\0P\0I\0C\0 \0(\0i\0d\0[\00\0x\08\01\0]\0 \0a\0d\0d\0r\0e\0s\0s\0[\00\0x\0f\0e\0c\00\00\00\00\00\0]\0 \0g\0l\0o\0b\0a\0l\0_\0i\0r\0q\0_\0b\0a\0s\0e\0[\00\0x\00\0]\0)\0\r\0
\0I\0O\0A\0P\0I\0C\0[\00\0]\0:\0 \0A\0s\0s\0i\0g\0n\0e\0d\0 \0a\0p\0i\0c\0_\0i\0d\0 \01\02\09\0\r\0
\0I\0O\0A\0P\0I\0C\0[\00\0]\0:\0 \0a\0p\0i\0c\0_\0i\0d\0 \01\02\09\0,\0 \0v\0e\0r\0s\0i\0o\0n\0 \04\0,\0 \0a\0d\0d\0r\0e\0s\0s\0 \00\0x\0f\0e\0c\00\00\00\00\00\0,\0 \0G\0S\0I\0 \00\0-\02\03\0\r\0
\0A\0C\0P\0I\0:\0 \0I\0O\0A\0P\0I\0C\0 \0(\0i\0d\0[\00\0x\08\04\0]\0 \0a\0d\0d\0r\0e\0s\0s\0[\00\0x\0f\0e\0c\00\01\00\00\00\0]\0 \0g\0l\0o\0b\0a\0l\0_\0i\0r\0q\0_\0b\0a\0s\0e\0[\00\0x\01\08\0]\0)\0\r\0
\0I\0O\0A\0P\0I\0C\0[\01\0]\0:\0 \0A\0s\0s\0i\0g\0n\0e\0d\0 \0a\0p\0i\0c\0_\0i\0d\0 \01\03\02\0\r\0
\0I\0O\0A\0P\0I\0C\0[\01\0]\0:\0 \0a\0p\0i\0c\0_\0i\0d\0 \01\03\02\0,\0 \0v\0e\0r\0s\0i\0o\0n\0 \04\0,\0 \0a\0d\0d\0r\0e\0s\0s\0 \00\0x\0f\0e\0c\00\01\00\00\00\0,\0 \0G\0S\0I\0 \02\04\0-\04\07\0\r\0
\0A\0C\0P\0I\0:\0 \0I\0N\0T\0_\0S\0R\0C\0_\0O\0V\0R\0 \0(\0b\0u\0s\0 \00\0 \0b\0u\0s\0_\0i\0r\0q\0 \01\0 \0g\0l\0o\0b\0a\0l\0_\0i\0r\0q\0 \01\02\0 \0h\0i\0g\0h\0 \0e\0d\0g\0e\0)\0\r\0
\0I\0n\0t\0:\0 \0t\0y\0p\0e\0 \00\0,\0 \0p\0o\0l\0 \01\0,\0 \0t\0r\0i\0g\0 \01\0,\0 \0b\0u\0s\0 \00\0,\0 \0i\0r\0q\0 \01\0,\0 \01\02\09\0-\01\02\0\r\0
\0A\0C\0P\0I\0:\0 \0I\0N\0T\0_\0S\0R\0C\0_\0O\0V\0R\0 \0(\0b\0u\0s\0 \00\0 \0b\0u\0s\0_\0i\0r\0q\0 \01\05\0 \0g\0l\0o\0b\0a\0l\0_\0i\0r\0q\0 \01\03\0 \0h\0i\0g\0h\0 \0e\0d\0g\0e\0)\0\r\0
\0I\0n\0t\0:\0 \0t\0y\0p\0e\0 \00\0,\0 \0p\0o\0l\0 \01\0,\0 \0t\0r\0i\0g\0 \01\0,\0 \0b\0u\0s\0 \00\0,\0 \0i\0r\0q\0 \01\05\0,\0 \01\02\09\0-\01\03\0\r\0
\0A\0C\0P\0I\0:\0 \0I\0N\0T\0_\0S\0R\0C\0_\0O\0V\0R\0 \0(\0b\0u\0s\0 \00\0 \0b\0u\0s\0_\0i\0r\0q\0 \04\0 \0g\0l\0o\0b\0a\0l\0_\0i\0r\0q\0 \01\04\0 \0h\0i\0g\0h\0 \0e\0d\0g\0e\0)\0\r\0
\0I\0n\0t\0:\0 \0t\0y\0p\0e\0 \00\0,\0 \0p\0o\0l\0 \01\0,\0 \0t\0r\0i\0g\0 \01\0,\0 \0b\0u\0s\0 \00\0,\0 \0i\0r\0q\0 \04\0,\0 \01\02\09\0-\01\04\0\r\0
\0A\0C\0P\0I\0:\0 \0I\0N\0T\0_\0S\0R\0C\0_\0O\0V\0R\0 \0(\0b\0u\0s\0 \00\0 \0b\0u\0s\0_\0i\0r\0q\0 \01\04\0 \0g\0l\0o\0b\0a\0l\0_\0i\0r\0q\0 \01\05\0 \0h\0i\0g\0h\0 \0e\0d\0g\0e\0)\0\r\0
\0I\0n\0t\0:\0 \0t\0y\0p\0e\0 \00\0,\0 \0p\0o\0l\0 \01\0,\0 \0t\0r\0i\0g\0 \01\0,\0 \0b\0u\0s\0 \00\0,\0 \0i\0r\0q\0 \01\04\0,\0 \01\02\09\0-\01\05\0\r\0
\0A\0C\0P\0I\0:\0 \0I\0N\0T\0_\0S\0R\0C\0_\0O\0V\0R\0 \0(\0b\0u\0s\0 \00\0 \0b\0u\0s\0_\0i\0r\0q\0 \06\0 \0g\0l\0o\0b\0a\0l\0_\0i\0r\0q\0 \01\06\0 \0h\0i\0g\0h\0 \0e\0d\0g\0e\0)\0\r\0
\0I\0n\0t\0:\0 \0t\0y\0p\0e\0 \00\0,\0 \0p\0o\0l\0 \01\0,\0 \0t\0r\0i\0g\0 \01\0,\0 \0b\0u\0s\0 \00\0,\0 \0i\0r\0q\0 \06\0,\0 \01\02\09\0-\01\06\0\r\0
\0A\0C\0P\0I\0:\0 \0I\0N\0T\0_\0S\0R\0C\0_\0O\0V\0R\0 \0(\0b\0u\0s\0 \00\0 \0b\0u\0s\0_\0i\0r\0q\0 \07\0 \0g\0l\0o\0b\0a\0l\0_\0i\0r\0q\0 \01\07\0 \0h\0i\0g\0h\0 \0e\0d\0g\0e\0)\0\r\0
\0I\0n\0t\0:\0 \0t\0y\0p\0e\0 \00\0,\0 \0p\0o\0l\0 \01\0,\0 \0t\0r\0i\0g\0 \01\0,\0 \0b\0u\0s\0 \00\0,\0 \0i\0r\0q\0 \07\0,\0 \01\02\09\0-\01\07\0\r\0
\0A\0C\0P\0I\0:\0 \0I\0N\0T\0_\0S\0R\0C\0_\0O\0V\0R\0 \0(\0b\0u\0s\0 \00\0 \0b\0u\0s\0_\0i\0r\0q\0 \08\0 \0g\0l\0o\0b\0a\0l\0_\0i\0r\0q\0 \01\08\0 \0l\0o\0w\0 \0e\0d\0g\0e\0)\0\r\0
\0I\0n\0t\0:\0 \0t\0y\0p\0e\0 \00\0,\0 \0p\0o\0l\0 \03\0,\0 \0t\0r\0i\0g\0 \01\0,\0 \0b\0u\0s\0 \00\0,\0 \0i\0r\0q\0 \08\0,\0 \01\02\09\0-\01\08\0\r\0
\0A\0C\0P\0I\0:\0 \0I\0N\0T\0_\0S\0R\0C\0_\0O\0V\0R\0 \0(\0b\0u\0s\0 \00\0 \0b\0u\0s\0_\0i\0r\0q\0 \01\02\0 \0g\0l\0o\0b\0a\0l\0_\0i\0r\0q\0 \01\09\0 \0h\0i\0g\0h\0 \0e\0d\0g\0e\0)\0\r\0
\0I\0n\0t\0:\0 \0t\0y\0p\0e\0 \00\0,\0 \0p\0o\0l\0 \01\0,\0 \0t\0r\0i\0g\0 \01\0,\0 \0b\0u\0s\0 \00\0,\0 \0i\0r\0q\0 \01\02\0,\0 \01\02\09\0-\01\09\0\r\0
\0A\0C\0P\0I\0:\0 \0I\0N\0T\0_\0S\0R\0C\0_\0O\0V\0R\0 \0(\0b\0u\0s\0 \00\0 \0b\0u\0s\0_\0i\0r\0q\0 \00\0 \0g\0l\0o\0b\0a\0l\0_\0i\0r\0q\0 \02\00\0 \0h\0i\0g\0h\0 \0e\0d\0g\0e\0)\0\r\0
\0I\0n\0t\0:\0 \0t\0y\0p\0e\0 \00\0,\0 \0p\0o\0l\0 \01\0,\0 \0t\0r\0i\0g\0 \01\0,\0 \0b\0u\0s\0 \00\0,\0 \0i\0r\0q\0 \00\0,\0 \01\02\09\0-\02\00\0\r\0
\0A\0C\0P\0I\0:\0 \0I\0N\0T\0_\0S\0R\0C\0_\0O\0V\0R\0 \0(\0b\0u\0s\0 \00\0 \0b\0u\0s\0_\0i\0r\0q\0 \09\0 \0g\0l\0o\0b\0a\0l\0_\0i\0r\0q\0 \02\03\0 \0h\0i\0g\0h\0 \0l\0e\0v\0e\0l\0)\0\r\0
\0I\0n\0t\0:\0 \0t\0y\0p\0e\0 \00\0,\0 \0p\0o\0l\0 \01\0,\0 \0t\0r\0i\0g\0 \03\0,\0 \0b\0u\0s\0 \00\0,\0 \0i\0r\0q\0 \02\03\0,\0 \01\02\09\0-\02\03\0\r\0
\0A\0C\0P\0I\0:\0 \0I\0N\0T\0_\0S\0R\0C\0_\0O\0V\0R\0 \0(\0b\0u\0s\0 \00\0 \0b\0u\0s\0_\0i\0r\0q\0 \09\0 \0g\0l\0o\0b\0a\0l\0_\0i\0r\0q\0 \02\03\0 \0h\0i\0g\0h\0 \0l\0e\0v\0e\0l\0)\0\r\0
\0I\0n\0t\0:\0 \0t\0y\0p\0e\0 \00\0,\0 \0p\0o\0l\0 \01\0,\0 \0t\0r\0i\0g\0 \03\0,\0 \0b\0u\0s\0 \00\0,\0 \0i\0r\0q\0 \02\03\0,\0 \01\02\09\0-\02\03\0\r\0
\0I\0n\0t\0:\0 \0t\0y\0p\0e\0 \00\0,\0 \0p\0o\0l\0 \00\0,\0 \0t\0r\0i\0g\0 \00\0,\0 \0b\0u\0s\0 \00\0,\0 \0i\0r\0q\0 \02\0,\0 \01\02\09\0-\02\0\r\0
\0I\0n\0t\0:\0 \0t\0y\0p\0e\0 \00\0,\0 \0p\0o\0l\0 \00\0,\0 \0t\0r\0i\0g\0 \00\0,\0 \0b\0u\0s\0 \00\0,\0 \0i\0r\0q\0 \03\0,\0 \01\02\09\0-\03\0\r\0
\0I\0n\0t\0:\0 \0t\0y\0p\0e\0 \00\0,\0 \0p\0o\0l\0 \00\0,\0 \0t\0r\0i\0g\0 \00\0,\0 \0b\0u\0s\0 \00\0,\0 \0i\0r\0q\0 \05\0,\0 \01\02\09\0-\05\0\r\0
\0I\0n\0t\0:\0 \0t\0y\0p\0e\0 \00\0,\0 \0p\0o\0l\0 \00\0,\0 \0t\0r\0i\0g\0 \00\0,\0 \0b\0u\0s\0 \00\0,\0 \0i\0r\0q\0 \09\0,\0 \01\02\09\0-\09\0\r\0
\0I\0n\0t\0:\0 \0t\0y\0p\0e\0 \00\0,\0 \0p\0o\0l\0 \00\0,\0 \0t\0r\0i\0g\0 \00\0,\0 \0b\0u\0s\0 \00\0,\0 \0i\0r\0q\0 \01\00\0,\0 \01\02\09\0-\01\00\0\r\0
\0I\0n\0t\0:\0 \0t\0y\0p\0e\0 \00\0,\0 \0p\0o\0l\0 \00\0,\0 \0t\0r\0i\0g\0 \00\0,\0 \0b\0u\0s\0 \00\0,\0 \0i\0r\0q\0 \01\01\0,\0 \01\02\09\0-\01\01\0\r\0
\0E\0n\0a\0b\0l\0i\0n\0g\0 \0A\0P\0I\0C\0 \0m\0o\0d\0e\0:\0 \0 \0P\0h\0y\0s\0i\0c\0a\0l\0 \0C\0l\0u\0s\0t\0e\0r\0.\0 \0 \0U\0s\0i\0n\0g\0 \02\0 \0I\0/\0O\0 \0A\0P\0I\0C\0s\0,\0 \0t\0a\0r\0g\0e\0t\0 \0c\0p\0u\0s\0 \01\0\r\0
\0U\0s\0i\0n\0g\0 \0A\0C\0P\0I\0 \0(\0M\0A\0D\0T\0)\0 \0f\0o\0r\0 \0S\0M\0P\0 \0c\0o\0n\0f\0i\0g\0u\0r\0a\0t\0i\0o\0n\0 \0i\0n\0f\0o\0r\0m\0a\0t\0i\0o\0n\0\r\0
\0B\0u\0i\0l\0t\0 \01\0 \0z\0o\0n\0e\0l\0i\0s\0t\0s\0\r\0
\0K\0e\0r\0n\0e\0l\0 \0c\0o\0m\0m\0a\0n\0d\0 \0l\0i\0n\0e\0:\0 \0r\0o\0o\0t\0=\0/\0d\0e\0v\0/\0s\0d\0a\02\0 \0c\0o\0n\0s\0o\0l\0e\0=\0t\0t\0y\0S\00\0 \0c\0o\0n\0s\0o\0l\0e\0=\0t\0t\0y\01\0 \0i\0n\0i\0t\0c\0a\0l\0l\0_\0d\0e\0b\0u\0g\0\r\0
\0I\0n\0i\0t\0i\0a\0l\0i\0z\0i\0n\0g\0 \0C\0P\0U\0#\00\0\r\0
\0P\0I\0D\0 \0h\0a\0s\0h\0 \0t\0a\0b\0l\0e\0 \0e\0n\0t\0r\0i\0e\0s\0:\0 \04\00\09\06\0 \0(\0o\0r\0d\0e\0r\0 \01\02\0:\0 \03\02\07\06\08\0 \0b\0y\0t\0e\0s\0)\0\r\0
\0D\0e\0t\0e\0c\0t\0e\0d\0 \02\08\00\01\0.\07\01\03\0 \0M\0H\0z\0 \0p\0r\0o\0c\0e\0s\0s\0o\0r\0.\0\r\0
\0U\0s\0i\0n\0g\0 \0t\0s\0c\0 \0f\0o\0r\0 \0h\0i\0g\0h\0-\0r\0e\0s\0 \0t\0i\0m\0e\0s\0o\0u\0r\0c\0e\0\r\0
\0C\0o\0n\0s\0o\0l\0e\0:\0 \0c\0o\0l\0o\0u\0r\0 \0V\0G\0A\0+\0 \08\00\0x\02\05\0\r\0
\0M\0e\0m\0o\0r\0y\0:\0 \08\02\00\01\01\02\08\0k\0/\08\03\08\08\06\00\08\0k\0 \0a\0v\0a\0i\0l\0a\0b\0l\0e\0 \0(\01\09\04\04\0k\0 \0k\0e\0r\0n\0e\0l\0 \0c\0o\0d\0e\0,\0 \08\07\07\00\00\0k\0 \0r\0e\0s\0e\0r\0v\0e\0d\0,\0 \08\09\03\0k\0 \0d\0a\0\r\0
\0t\0a\0,\0 \02\09\02\0k\0 \0i\0n\0i\0t\0,\0 \07\03\07\02\04\08\00\0k\0 \0h\0i\0g\0h\0m\0e\0m\0)\0\r\0
\0C\0h\0e\0c\0k\0i\0n\0g\0 \0i\0f\0 \0t\0h\0i\0s\0 \0p\0r\0o\0c\0e\0s\0s\0o\0r\0 \0h\0o\0n\0o\0u\0r\0s\0 \0t\0h\0e\0 \0W\0P\0 \0b\0i\0t\0 \0e\0v\0e\0n\0 \0i\0n\0 \0s\0u\0p\0e\0r\0v\0i\0s\0o\0r\0 \0m\0o\0d\0e\0.\0.\0.\0 \0O\0k\0.\0\r\0
\0C\0a\0l\0i\0b\0r\0a\0t\0i\0n\0g\0 \0d\0e\0l\0a\0y\0 \0l\0o\0o\0p\0.\0.\0.\0 \05\04\05\05\0.\08\07\0 \0B\0o\0g\0o\0M\0I\0P\0S\0\r\0
\0D\0e\0n\0t\0r\0y\0 \0c\0a\0c\0h\0e\0 \0h\0a\0s\0h\0 \0t\0a\0b\0l\0e\0 \0e\0n\0t\0r\0i\0e\0s\0:\0 \01\00\04\08\05\07\06\0 \0(\0o\0r\0d\0e\0r\0:\0 \01\00\0,\0 \04\01\09\04\03\00\04\0 \0b\0y\0t\0e\0s\0)\0\r\0
\0I\0n\0o\0d\0e\0-\0c\0a\0c\0h\0e\0 \0h\0a\0s\0h\0 \0t\0a\0b\0l\0e\0 \0e\0n\0t\0r\0i\0e\0s\0:\0 \05\02\04\02\08\08\0 \0(\0o\0r\0d\0e\0r\0:\0 \09\0,\0 \02\00\09\07\01\05\02\0 \0b\0y\0t\0e\0s\0)\0\r\0
\0M\0o\0u\0n\0t\0-\0c\0a\0c\0h\0e\0 \0h\0a\0s\0h\0 \0t\0a\0b\0l\0e\0 \0e\0n\0t\0r\0i\0e\0s\0:\0 \05\01\02\0 \0(\0o\0r\0d\0e\0r\0:\0 \00\0,\0 \04\00\09\06\0 \0b\0y\0t\0e\0s\0)\0\r\0
\0c\0h\0e\0c\0k\0i\0n\0g\0 \0i\0f\0 \0i\0m\0a\0g\0e\0 \0i\0s\0 \0i\0n\0i\0t\0r\0a\0m\0f\0s\0.\0.\0.\0i\0t\0 \0i\0s\0n\0'\0t\0 \0(\0n\0o\0 \0c\0p\0i\0o\0 \0m\0a\0g\0i\0c\0)\0;\0 \0l\0o\0o\0k\0s\0 \0l\0i\0k\0e\0 \0a\0n\0 \0i\0n\0i\0t\0r\0d\0\r\0
\0F\0r\0e\0e\0i\0n\0g\0 \0i\0n\0i\0t\0r\0d\0 \0m\0e\0m\0o\0r\0y\0:\0 \09\01\04\0k\0 \0f\0r\0e\0e\0d\0\r\0
\0C\0P\0U\0:\0 \0T\0r\0a\0c\0e\0 \0c\0a\0c\0h\0e\0:\0 \01\02\0K\0 \0u\0o\0p\0s\0,\0 \0L\01\0 \0D\0 \0c\0a\0c\0h\0e\0:\0 \08\0K\0\r\0
\0C\0P\0U\0:\0 \0L\02\0 \0c\0a\0c\0h\0e\0:\0 \05\01\02\0K\0\r\0
\0C\0P\0U\0:\0 \0L\03\0 \0c\0a\0c\0h\0e\0:\0 \04\00\09\06\0K\0\r\0
\0C\0P\0U\0:\0 \0H\0y\0p\0e\0r\0-\0T\0h\0r\0e\0a\0d\0i\0n\0g\0 \0i\0s\0 \0d\0i\0s\0a\0b\0l\0e\0d\0\r\0
\0I\0n\0t\0e\0l\0 \0m\0a\0c\0h\0i\0n\0e\0 \0c\0h\0e\0c\0k\0 \0a\0r\0c\0h\0i\0t\0e\0c\0t\0u\0r\0e\0 \0s\0u\0p\0p\0o\0r\0t\0e\0d\0.\0\r\0
\0I\0n\0t\0e\0l\0 \0m\0a\0c\0h\0i\0n\0e\0 \0c\0h\0e\0c\0k\0 \0r\0e\0p\0o\0r\0t\0i\0n\0g\0 \0e\0n\0a\0b\0l\0e\0d\0 \0o\0n\0 \0C\0P\0U\0#\00\0.\0\r\0
\0C\0P\0U\0#\00\0:\0 \0I\0n\0t\0e\0l\0 \0P\04\0/\0X\0e\0o\0n\0 \0E\0x\0t\0e\0n\0d\0e\0d\0 \0M\0C\0E\0 \0M\0S\0R\0s\0 \0(\01\02\0)\0 \0a\0v\0a\0i\0l\0a\0b\0l\0e\0\r\0
\0E\0n\0a\0b\0l\0i\0n\0g\0 \0f\0a\0s\0t\0 \0F\0P\0U\0 \0s\0a\0v\0e\0 \0a\0n\0d\0 \0r\0e\0s\0t\0o\0r\0e\0.\0.\0.\0 \0d\0o\0n\0e\0.\0\r\0
\0E\0n\0a\0b\0l\0i\0n\0g\0 \0u\0n\0m\0a\0s\0k\0e\0d\0 \0S\0I\0M\0D\0 \0F\0P\0U\0 \0e\0x\0c\0e\0p\0t\0i\0o\0n\0 \0s\0u\0p\0p\0o\0r\0t\0.\0.\0.\0 \0d\0o\0n\0e\0.\0\r\0
\0C\0h\0e\0c\0k\0i\0n\0g\0 \0'\0h\0l\0t\0'\0 \0i\0n\0s\0t\0r\0u\0c\0t\0i\0o\0n\0.\0.\0.\0 \0O\0K\0.\0\r\0
\0P\0O\0S\0I\0X\0 \0c\0o\0n\0f\0o\0r\0m\0a\0n\0c\0e\0 \0t\0e\0s\0t\0i\0n\0g\0 \0b\0y\0 \0U\0N\0I\0F\0I\0X\0\r\0
\0C\0P\0U\00\0:\0 \0I\0n\0t\0e\0l\0(\0R\0)\0 \0X\0e\0o\0n\0(\0T\0M\0)\0 \0M\0P\0 \0C\0P\0U\0 \02\0.\08\00\0G\0H\0z\0 \0s\0t\0e\0p\0p\0i\0n\0g\0 \00\06\0\r\0
\0p\0e\0r\0-\0C\0P\0U\0 \0t\0i\0m\0e\0s\0l\0i\0c\0e\0 \0c\0u\0t\0o\0f\0f\0:\0 \01\04\06\03\0.\02\00\0 \0u\0s\0e\0c\0s\0.\0\r\0
\0t\0a\0s\0k\0 \0m\0i\0g\0r\0a\0t\0i\0o\0n\0 \0c\0a\0c\0h\0e\0 \0d\0e\0c\0a\0y\0 \0t\0i\0m\0e\0o\0u\0t\0:\0 \02\0 \0m\0s\0e\0c\0s\0.\0\r\0
\0E\0S\07\00\00\00\0:\0 \0E\0n\0a\0b\0l\0i\0n\0g\0 \0A\0P\0I\0C\0 \0m\0o\0d\0e\0.\0\r\0
\0m\0a\0s\0k\0e\0d\0 \0E\0x\0t\0I\0N\0T\0 \0o\0n\0 \0C\0P\0U\0#\00\0\r\0
\0L\0e\0a\0v\0i\0n\0g\0 \0E\0S\0R\0 \0d\0i\0s\0a\0b\0l\0e\0d\0.\0\r\0
\0B\0o\0o\0t\0i\0n\0g\0 \0p\0r\0o\0c\0e\0s\0s\0o\0r\0 \01\0/\02\0 \0e\0i\0p\0 \02\00\00\00\0\r\0
\0I\0n\0i\0t\0i\0a\0l\0i\0z\0i\0n\0g\0 \0C\0P\0U\0#\01\0\r\0
\0m\0a\0s\0k\0e\0d\0 \0E\0x\0t\0I\0N\0T\0 \0o\0n\0 \0C\0P\0U\0#\01\0\r\0
\0L\0e\0a\0v\0i\0n\0g\0 \0E\0S\0R\0 \0d\0i\0s\0a\0b\0l\0e\0d\0.\0\r\0
\0C\0a\0l\0i\0b\0r\0a\0t\0i\0n\0g\0 \0d\0e\0l\0a\0y\0 \0l\0o\0o\0p\0.\0.\0.\0 \05\05\08\06\0.\09\04\0 \0B\0o\0g\0o\0M\0I\0P\0S\0\r\0
\0C\0P\0U\0:\0 \0T\0r\0a\0c\0e\0 \0c\0a\0c\0h\0e\0:\0 \01\02\0K\0 \0u\0o\0p\0s\0,\0 \0L\01\0 \0D\0 \0c\0a\0c\0h\0e\0:\0 \08\0K\0\r\0
\0C\0P\0U\0:\0 \0L\02\0 \0c\0a\0c\0h\0e\0:\0 \05\01\02\0K\0\r\0
\0C\0P\0U\0:\0 \0L\03\0 \0c\0a\0c\0h\0e\0:\0 \04\00\09\06\0K\0\r\0
\0C\0P\0U\0:\0 \0H\0y\0p\0e\0r\0-\0T\0h\0r\0e\0a\0d\0i\0n\0g\0 \0i\0s\0 \0d\0i\0s\0a\0b\0l\0e\0d\0\r\0
\0I\0n\0t\0e\0l\0 \0m\0a\0c\0h\0i\0n\0e\0 \0c\0h\0e\0c\0k\0 \0a\0r\0c\0h\0i\0t\0e\0c\0t\0u\0r\0e\0 \0s\0u\0p\0p\0o\0r\0t\0e\0d\0.\0\r\0
\0I\0n\0t\0e\0l\0 \0m\0a\0c\0h\0i\0n\0e\0 \0c\0h\0e\0c\0k\0 \0r\0e\0p\0o\0r\0t\0i\0n\0g\0 \0e\0n\0a\0b\0l\0e\0d\0 \0o\0n\0 \0C\0P\0U\0#\01\0.\0\r\0
\0C\0P\0U\0#\01\0:\0 \0I\0n\0t\0e\0l\0 \0P\04\0/\0X\0e\0o\0n\0 \0E\0x\0t\0e\0n\0d\0e\0d\0 \0M\0C\0E\0 \0M\0S\0R\0s\0 \0(\01\02\0)\0 \0a\0v\0a\0i\0l\0a\0b\0l\0e\0\r\0
\0C\0P\0U\01\0:\0 \0I\0n\0t\0e\0l\0(\0R\0)\0 \0X\0e\0o\0n\0(\0T\0M\0)\0 \0M\0P\0 \0C\0P\0U\0 \02\0.\08\00\0G\0H\0z\0 \0s\0t\0e\0p\0p\0i\0n\0g\0 \00\06\0\r\0
\0B\0o\0o\0t\0i\0n\0g\0 \0p\0r\0o\0c\0e\0s\0s\0o\0r\0 \02\0/\04\0 \0e\0i\0p\0 \02\00\00\00\0\r\0
\0I\0n\0i\0t\0i\0a\0l\0i\0z\0i\0n\0g\0 \0C\0P\0U\0#\02\0\r\0
\0m\0a\0s\0k\0e\0d\0 \0E\0x\0t\0I\0N\0T\0 \0o\0n\0 \0C\0P\0U\0#\02\0\r\0
\0L\0e\0a\0v\0i\0n\0g\0 \0E\0S\0R\0 \0d\0i\0s\0a\0b\0l\0e\0d\0.\0\r\0
\0C\0a\0l\0i\0b\0r\0a\0t\0i\0n\0g\0 \0d\0e\0l\0a\0y\0 \0l\0o\0o\0p\0.\0.\0.\0 \05\05\08\06\0.\09\04\0 \0B\0o\0g\0o\0M\0I\0P\0S\0\r\0
\0C\0P\0U\0:\0 \0T\0r\0a\0c\0e\0 \0c\0a\0c\0h\0e\0:\0 \01\02\0K\0 \0u\0o\0p\0s\0,\0 \0L\01\0 \0D\0 \0c\0a\0c\0h\0e\0:\0 \08\0K\0\r\0
\0C\0P\0U\0:\0 \0L\02\0 \0c\0a\0c\0h\0e\0:\0 \05\01\02\0K\0\r\0
\0C\0P\0U\0:\0 \0L\03\0 \0c\0a\0c\0h\0e\0:\0 \04\00\09\06\0K\0\r\0
\0C\0P\0U\0:\0 \0H\0y\0p\0e\0r\0-\0T\0h\0r\0e\0a\0d\0i\0n\0g\0 \0i\0s\0 \0d\0i\0s\0a\0b\0l\0e\0d\0\r\0
\0I\0n\0t\0e\0l\0 \0m\0a\0c\0h\0i\0n\0e\0 \0c\0h\0e\0c\0k\0 \0a\0r\0c\0h\0i\0t\0e\0c\0t\0u\0r\0e\0 \0s\0u\0p\0p\0o\0r\0t\0e\0d\0.\0\r\0
\0I\0n\0t\0e\0l\0 \0m\0a\0c\0h\0i\0n\0e\0 \0c\0h\0e\0c\0k\0 \0r\0e\0p\0o\0r\0t\0i\0n\0g\0 \0e\0n\0a\0b\0l\0e\0d\0 \0o\0n\0 \0C\0P\0U\0#\02\0.\0\r\0
\0C\0P\0U\0#\02\0:\0 \0I\0n\0t\0e\0l\0 \0P\04\0/\0X\0e\0o\0n\0 \0E\0x\0t\0e\0n\0d\0e\0d\0 \0M\0C\0E\0 \0M\0S\0R\0s\0 \0(\01\02\0)\0 \0a\0v\0a\0i\0l\0a\0b\0l\0e\0\r\0
\0C\0P\0U\02\0:\0 \0I\0n\0t\0e\0l\0(\0R\0)\0 \0X\0e\0o\0n\0(\0T\0M\0)\0 \0M\0P\0 \0C\0P\0U\0 \02\0.\08\00\0G\0H\0z\0 \0s\0t\0e\0p\0p\0i\0n\0g\0 \00\06\0\r\0
\0B\0o\0o\0t\0i\0n\0g\0 \0p\0r\0o\0c\0e\0s\0s\0o\0r\0 \03\0/\06\0 \0e\0i\0p\0 \02\00\00\00\0\r\0
\0I\0n\0i\0t\0i\0a\0l\0i\0z\0i\0n\0g\0 \0C\0P\0U\0#\03\0\r\0
\0m\0a\0s\0k\0e\0d\0 \0E\0x\0t\0I\0N\0T\0 \0o\0n\0 \0C\0P\0U\0#\03\0\r\0
\0L\0e\0a\0v\0i\0n\0g\0 \0E\0S\0R\0 \0d\0i\0s\0a\0b\0l\0e\0d\0.\0\r\0
\0C\0a\0l\0i\0b\0r\0a\0t\0i\0n\0g\0 \0d\0e\0l\0a\0y\0 \0l\0o\0o\0p\0.\0.\0.\0 \05\05\08\06\0.\09\04\0 \0B\0o\0g\0o\0M\0I\0P\0S\0\r\0
\0C\0P\0U\0:\0 \0T\0r\0a\0c\0e\0 \0c\0a\0c\0h\0e\0:\0 \01\02\0K\0 \0u\0o\0p\0s\0,\0 \0L\01\0 \0D\0 \0c\0a\0c\0h\0e\0:\0 \08\0K\0\r\0
\0C\0P\0U\0:\0 \0L\02\0 \0c\0a\0c\0h\0e\0:\0 \05\01\02\0K\0\r\0
\0C\0P\0U\0:\0 \0L\03\0 \0c\0a\0c\0h\0e\0:\0 \04\00\09\06\0K\0\r\0
\0C\0P\0U\0:\0 \0H\0y\0p\0e\0r\0-\0T\0h\0r\0e\0a\0d\0i\0n\0g\0 \0i\0s\0 \0d\0i\0s\0a\0b\0l\0e\0d\0\r\0
\0I\0n\0t\0e\0l\0 \0m\0a\0c\0h\0i\0n\0e\0 \0c\0h\0e\0c\0k\0 \0a\0r\0c\0h\0i\0t\0e\0c\0t\0u\0r\0e\0 \0s\0u\0p\0p\0o\0r\0t\0e\0d\0.\0\r\0
\0I\0n\0t\0e\0l\0 \0m\0a\0c\0h\0i\0n\0e\0 \0c\0h\0e\0c\0k\0 \0r\0e\0p\0o\0r\0t\0i\0n\0g\0 \0e\0n\0a\0b\0l\0e\0d\0 \0o\0n\0 \0C\0P\0U\0#\03\0.\0\r\0
\0C\0P\0U\0#\03\0:\0 \0I\0n\0t\0e\0l\0 \0P\04\0/\0X\0e\0o\0n\0 \0E\0x\0t\0e\0n\0d\0e\0d\0 \0M\0C\0E\0 \0M\0S\0R\0s\0 \0(\01\02\0)\0 \0a\0v\0a\0i\0l\0a\0b\0l\0e\0\r\0
\0C\0P\0U\03\0:\0 \0I\0n\0t\0e\0l\0(\0R\0)\0 \0X\0e\0o\0n\0(\0T\0M\0)\0 \0M\0P\0 \0C\0P\0U\0 \02\0.\08\00\0G\0H\0z\0 \0s\0t\0e\0p\0p\0i\0n\0g\0 \00\06\0\r\0
\0T\0o\0t\0a\0l\0 \0o\0f\0 \04\0 \0p\0r\0o\0c\0e\0s\0s\0o\0r\0s\0 \0a\0c\0t\0i\0v\0a\0t\0e\0d\0 \0(\02\02\02\01\06\0.\07\00\0 \0B\0o\0g\0o\0M\0I\0P\0S\0)\0.\0\r\0
\0E\0N\0A\0B\0L\0I\0N\0G\0 \0I\0O\0-\0A\0P\0I\0C\0 \0I\0R\0Q\0s\0\r\0
\0.\0.\0T\0I\0M\0E\0R\0:\0 \0v\0e\0c\0t\0o\0r\0=\00\0x\03\01\0 \0p\0i\0n\01\0=\02\00\0 \0p\0i\0n\02\0=\0-\01\0\r\0
\0U\0s\0i\0n\0g\0 \0l\0o\0c\0a\0l\0 \0A\0P\0I\0C\0 \0t\0i\0m\0e\0r\0 \0i\0n\0t\0e\0r\0r\0u\0p\0t\0s\0.\0\r\0
\0c\0a\0l\0i\0b\0r\0a\0t\0i\0n\0g\0 \0A\0P\0I\0C\0 \0t\0i\0m\0e\0r\0 \0.\0.\0.\0\r\0
\0.\0.\0.\0.\0.\0 \0C\0P\0U\0 \0c\0l\0o\0c\0k\0 \0s\0p\0e\0e\0d\0 \0i\0s\0 \02\07\09\09\0.\00\04\02\00\0 \0M\0H\0z\0.\0\r\0
\0.\0.\0.\0.\0.\0 \0h\0o\0s\0t\0 \0b\0u\0s\0 \0c\0l\0o\0c\0k\0 \0s\0p\0e\0e\0d\0 \0i\0s\0 \09\09\0.\00\09\07\09\0 \0M\0H\0z\0.\0\r\0
\0c\0h\0e\0c\0k\0i\0n\0g\0 \0T\0S\0C\0 \0s\0y\0n\0c\0h\0r\0o\0n\0i\0z\0a\0t\0i\0o\0n\0 \0a\0c\0r\0o\0s\0s\0 \04\0 \0C\0P\0U\0s\0:\0 \0p\0a\0s\0s\0e\0d\0.\0\r\0
\0B\0r\0o\0u\0g\0h\0t\0 \0u\0p\0 \04\0 \0C\0P\0U\0s\0\r\0
\0N\0E\0T\0:\0 \0R\0e\0g\0i\0s\0t\0e\0r\0e\0d\0 \0p\0r\0o\0t\0o\0c\0o\0l\0 \0f\0a\0m\0i\0l\0y\0 \01\06\0\r\0
\0E\0I\0S\0A\0 \0b\0u\0s\0 \0r\0e\0g\0i\0s\0t\0e\0r\0e\0d\0\r\0
\0P\0C\0I\0:\0 \0P\0C\0I\0 \0B\0I\0O\0S\0 \0r\0e\0v\0i\0s\0i\0o\0n\0 \02\0.\01\00\0 \0e\0n\0t\0r\0y\0 \0a\0t\0 \00\0x\0f\0c\04\0b\0e\0,\0 \0l\0a\0s\0t\0 \0b\0u\0s\0=\07\04\0\r\0
\0P\0C\0I\0:\0 \0U\0s\0i\0n\0g\0 \0c\0o\0n\0f\0i\0g\0u\0r\0a\0t\0i\0o\0n\0 \0t\0y\0p\0e\0 \01\0\r\0
\0m\0t\0r\0r\0:\0 \0v\02\0.\00\0 \0(\02\00\00\02\00\05\01\09\0)\0\r\0
\0A\0C\0P\0I\0:\0 \0S\0u\0b\0s\0y\0s\0t\0e\0m\0 \0r\0e\0v\0i\0s\0i\0o\0n\0 \02\00\00\04\00\03\02\06\0\r\0
\0n\0u\0m\0b\0e\0r\0 \0o\0f\0 \0M\0P\0 \0I\0R\0Q\0 \0s\0o\0u\0r\0c\0e\0s\0:\0 \01\07\0.\0\r\0
\0n\0u\0m\0b\0e\0r\0 \0o\0f\0 \0I\0O\0-\0A\0P\0I\0C\0 \0#\01\02\09\0 \0r\0e\0g\0i\0s\0t\0e\0r\0s\0:\0 \02\04\0.\0\r\0
\0n\0u\0m\0b\0e\0r\0 \0o\0f\0 \0I\0O\0-\0A\0P\0I\0C\0 \0#\01\03\02\0 \0r\0e\0g\0i\0s\0t\0e\0r\0s\0:\0 \02\04\0.\0\r\0
\0t\0e\0s\0t\0i\0n\0g\0 \0t\0h\0e\0 \0I\0O\0 \0A\0P\0I\0C\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0\r\0
\0I\0O\0 \0A\0P\0I\0C\0 \0#\01\02\09\0.\0.\0.\0.\0.\0.\0\r\0
\0.\0.\0.\0.\0 \0r\0e\0g\0i\0s\0t\0e\0r\0 \0#\00\00\0:\0 \08\01\00\00\00\00\00\00\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0:\0 \0p\0h\0y\0s\0i\0c\0a\0l\0 \0A\0P\0I\0C\0 \0i\0d\0:\0 \08\01\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0:\0 \0D\0e\0l\0i\0v\0e\0r\0y\0 \0T\0y\0p\0e\0:\0 \00\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0:\0 \0L\0T\0S\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0:\0 \00\0\r\0
\0.\0.\0.\0.\0 \0r\0e\0g\0i\0s\0t\0e\0r\0 \0#\00\01\0:\0 \00\00\01\07\00\00\00\04\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0 \0:\0 \0m\0a\0x\0 \0r\0e\0d\0i\0r\0e\0c\0t\0i\0o\0n\0 \0e\0n\0t\0r\0i\0e\0s\0:\0 \00\00\01\07\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0 \0:\0 \0P\0R\0Q\0 \0i\0m\0p\0l\0e\0m\0e\0n\0t\0e\0d\0:\0 \00\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0 \0:\0 \0I\0O\0 \0A\0P\0I\0C\0 \0v\0e\0r\0s\0i\0o\0n\0:\0 \00\00\00\04\0\r\0
\0.\0.\0.\0.\0 \0I\0R\0Q\0 \0r\0e\0d\0i\0r\0e\0c\0t\0i\0o\0n\0 \0t\0a\0b\0l\0e\0:\0\r\0
\0 \0N\0R\0 \0L\0o\0g\0 \0P\0h\0y\0 \0M\0a\0s\0k\0 \0T\0r\0i\0g\0 \0I\0R\0R\0 \0P\0o\0l\0 \0S\0t\0a\0t\0 \0D\0e\0s\0t\0 \0D\0e\0l\0i\0 \0V\0e\0c\0t\0:\0 \0 \0 \0\r\0
\0 \00\00\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\01\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\02\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\03\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \03\09\0\r\0
\0 \00\04\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\05\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \04\01\0\r\0
\0 \00\06\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\07\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\08\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\09\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \04\09\0\r\0
\0 \00\0a\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \05\01\0\r\0
\0 \00\0b\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \05\09\0\r\0
\0 \00\0c\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \06\01\0\r\0
\0 \00\0d\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \06\09\0\r\0
\0 \00\0e\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \07\01\0\r\0
\0 \00\0f\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \07\09\0\r\0
\0 \01\00\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \08\01\0\r\0
\0 \01\01\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \08\09\0\r\0
\0 \01\02\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \09\01\0\r\0
\0 \01\03\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \09\09\0\r\0
\0 \01\04\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \03\01\0\r\0
\0 \01\05\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\06\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\07\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0A\01\0\r\0
\0I\0O\0 \0A\0P\0I\0C\0 \0#\01\03\02\0.\0.\0.\0.\0.\0.\0\r\0
\0.\0.\0.\0.\0 \0r\0e\0g\0i\0s\0t\0e\0r\0 \0#\00\00\0:\0 \08\04\00\00\00\00\00\00\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0:\0 \0p\0h\0y\0s\0i\0c\0a\0l\0 \0A\0P\0I\0C\0 \0i\0d\0:\0 \08\04\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0:\0 \0D\0e\0l\0i\0v\0e\0r\0y\0 \0T\0y\0p\0e\0:\0 \00\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0:\0 \0L\0T\0S\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0:\0 \00\0\r\0
\0.\0.\0.\0.\0 \0r\0e\0g\0i\0s\0t\0e\0r\0 \0#\00\01\0:\0 \00\00\01\07\00\00\00\04\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0 \0:\0 \0m\0a\0x\0 \0r\0e\0d\0i\0r\0e\0c\0t\0i\0o\0n\0 \0e\0n\0t\0r\0i\0e\0s\0:\0 \00\00\01\07\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0 \0:\0 \0P\0R\0Q\0 \0i\0m\0p\0l\0e\0m\0e\0n\0t\0e\0d\0:\0 \00\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0 \0:\0 \0I\0O\0 \0A\0P\0I\0C\0 \0v\0e\0r\0s\0i\0o\0n\0:\0 \00\00\00\04\0\r\0
\0.\0.\0.\0.\0 \0I\0R\0Q\0 \0r\0e\0d\0i\0r\0e\0c\0t\0i\0o\0n\0 \0t\0a\0b\0l\0e\0:\0\r\0
\0 \0N\0R\0 \0L\0o\0g\0 \0P\0h\0y\0 \0M\0a\0s\0k\0 \0T\0r\0i\0g\0 \0I\0R\0R\0 \0P\0o\0l\0 \0S\0t\0a\0t\0 \0D\0e\0s\0t\0 \0D\0e\0l\0i\0 \0V\0e\0c\0t\0:\0 \0 \0 \0\r\0
\0 \00\00\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\01\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\02\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\03\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\04\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\05\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\06\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\07\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\08\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\09\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\0a\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\0b\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\0c\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\0d\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\0e\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\0f\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\00\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\01\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\02\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\03\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\04\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\05\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\06\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\07\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0I\0R\0Q\0 \0t\0o\0 \0p\0i\0n\0 \0m\0a\0p\0p\0i\0n\0g\0s\0:\0\r\0
\0I\0R\0Q\00\0 \0-\0>\0 \00\0:\02\00\0\r\0
\0I\0R\0Q\01\0 \0-\0>\0 \00\0:\01\02\0\r\0
\0I\0R\0Q\02\0 \0-\0>\0 \00\0:\02\0\r\0
\0I\0R\0Q\03\0 \0-\0>\0 \00\0:\03\0\r\0
\0I\0R\0Q\04\0 \0-\0>\0 \00\0:\01\04\0\r\0
\0I\0R\0Q\05\0 \0-\0>\0 \00\0:\05\0\r\0
\0I\0R\0Q\06\0 \0-\0>\0 \00\0:\01\06\0\r\0
\0I\0R\0Q\07\0 \0-\0>\0 \00\0:\01\07\0\r\0
\0I\0R\0Q\08\0 \0-\0>\0 \00\0:\01\08\0\r\0
\0I\0R\0Q\09\0 \0-\0>\0 \00\0:\09\0\r\0
\0I\0R\0Q\01\00\0 \0-\0>\0 \00\0:\01\00\0\r\0
\0I\0R\0Q\01\01\0 \0-\0>\0 \00\0:\01\01\0\r\0
\0I\0R\0Q\01\02\0 \0-\0>\0 \00\0:\01\09\0\r\0
\0I\0R\0Q\01\04\0 \0-\0>\0 \00\0:\01\05\0\r\0
\0I\0R\0Q\01\05\0 \0-\0>\0 \00\0:\01\03\0\r\0
\0I\0R\0Q\02\03\0 \0-\0>\0 \00\0:\02\03\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0 \0d\0o\0n\0e\0.\0\r\0
\0A\0C\0P\0I\0:\0 \0I\0n\0t\0e\0r\0p\0r\0e\0t\0e\0r\0 \0e\0n\0a\0b\0l\0e\0d\0\r\0
\0A\0C\0P\0I\0:\0 \0U\0s\0i\0n\0g\0 \0I\0O\0A\0P\0I\0C\0 \0f\0o\0r\0 \0i\0n\0t\0e\0r\0r\0u\0p\0t\0 \0r\0o\0u\0t\0i\0n\0g\0\r\0
\0A\0C\0P\0I\0:\0 \0P\0C\0I\0 \0R\0o\0o\0t\0 \0B\0r\0i\0d\0g\0e\0 \0[\0D\00\0P\01\0]\0 \0(\00\00\0:\00\0a\0)\0\r\0
\0P\0C\0I\0:\0 \0P\0r\0o\0b\0i\0n\0g\0 \0P\0C\0I\0 \0h\0a\0r\0d\0w\0a\0r\0e\0 \0(\0b\0u\0s\0 \00\0a\0)\0\r\0
\0A\0C\0P\0I\0:\0 \0P\0C\0I\0 \0R\0o\0o\0t\0 \0B\0r\0i\0d\0g\0e\0 \0[\0D\00\0P\02\0]\0 \0(\00\00\0:\01\03\0)\0\r\0
\0P\0C\0I\0:\0 \0P\0r\0o\0b\0i\0n\0g\0 \0P\0C\0I\0 \0h\0a\0r\0d\0w\0a\0r\0e\0 \0(\0b\0u\0s\0 \01\03\0)\0\r\0
\0A\0C\0P\0I\0:\0 \0P\0C\0I\0 \0R\0o\0o\0t\0 \0B\0r\0i\0d\0g\0e\0 \0[\0D\00\0P\03\0]\0 \0(\00\00\0:\00\01\0)\0\r\0
\0P\0C\0I\0:\0 \0P\0r\0o\0b\0i\0n\0g\0 \0P\0C\0I\0 \0h\0a\0r\0d\0w\0a\0r\0e\0 \0(\0b\0u\0s\0 \00\01\0)\0\r\0
\0A\0C\0P\0I\0:\0 \0P\0C\0I\0 \0I\0n\0t\0e\0r\0r\0u\0p\0t\0 \0L\0i\0n\0k\0 \0[\0L\0N\0K\0F\0]\0 \0(\0I\0R\0Q\0s\0 \0*\01\05\0)\0\r\0
\0A\0C\0P\0I\0:\0 \0P\0C\0I\0 \0R\0o\0o\0t\0 \0B\0r\0i\0d\0g\0e\0 \0[\0D\01\0P\01\0]\0 \0(\00\00\0:\03\07\0)\0\r\0
\0P\0C\0I\0:\0 \0P\0r\0o\0b\0i\0n\0g\0 \0P\0C\0I\0 \0h\0a\0r\0d\0w\0a\0r\0e\0 \0(\0b\0u\0s\0 \03\07\0)\0\r\0
\0A\0C\0P\0I\0:\0 \0P\0C\0I\0 \0R\0o\0o\0t\0 \0B\0r\0i\0d\0g\0e\0 \0[\0D\01\0P\02\0]\0 \0(\00\00\0:\04\00\0)\0\r\0
\0P\0C\0I\0:\0 \0P\0r\0o\0b\0i\0n\0g\0 \0P\0C\0I\0 \0h\0a\0r\0d\0w\0a\0r\0e\0 \0(\0b\0u\0s\0 \04\00\0)\0\r\0
\0A\0C\0P\0I\0:\0 \0P\0C\0I\0 \0R\0o\0o\0t\0 \0B\0r\0i\0d\0g\0e\0 \0[\0D\01\0P\03\0]\0 \0(\00\00\0:\04\09\0)\0\r\0
\0P\0C\0I\0:\0 \0P\0r\0o\0b\0i\0n\0g\0 \0P\0C\0I\0 \0h\0a\0r\0d\0w\0a\0r\0e\0 \0(\0b\0u\0s\0 \04\09\0)\0\r\0
\0A\0C\0P\0I\0:\0 \0P\0C\0I\0 \0I\0n\0t\0e\0r\0r\0u\0p\0t\0 \0L\0i\0n\0k\0 \0[\0L\0N\0K\0A\0]\0 \0(\0I\0R\0Q\0s\0 \0*\01\00\0)\0\r\0
\0L\0i\0n\0u\0x\0 \0P\0l\0u\0g\0 \0a\0n\0d\0 \0P\0l\0a\0y\0 \0S\0u\0p\0p\0o\0r\0t\0 \0v\00\0.\09\07\0 \0(\0c\0)\0 \0A\0d\0a\0m\0 \0B\0e\0l\0a\0y\0\r\0
\0n\0u\0m\0b\0e\0r\0 \0o\0f\0 \0M\0P\0 \0I\0R\0Q\0 \0s\0o\0u\0r\0c\0e\0s\0:\0 \01\07\0.\0\r\0
\0n\0u\0m\0b\0e\0r\0 \0o\0f\0 \0I\0O\0-\0A\0P\0I\0C\0 \0#\01\02\09\0 \0r\0e\0g\0i\0s\0t\0e\0r\0s\0:\0 \02\04\0.\0\r\0
\0n\0u\0m\0b\0e\0r\0 \0o\0f\0 \0I\0O\0-\0A\0P\0I\0C\0 \0#\01\03\02\0 \0r\0e\0g\0i\0s\0t\0e\0r\0s\0:\0 \02\04\0.\0\r\0
\0t\0e\0s\0t\0i\0n\0g\0 \0t\0h\0e\0 \0I\0O\0 \0A\0P\0I\0C\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0\r\0
\0I\0O\0 \0A\0P\0I\0C\0 \0#\01\02\09\0.\0.\0.\0.\0.\0.\0\r\0
\0.\0.\0.\0.\0 \0r\0e\0g\0i\0s\0t\0e\0r\0 \0#\00\00\0:\0 \08\01\00\00\00\00\00\00\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0:\0 \0p\0h\0y\0s\0i\0c\0a\0l\0 \0A\0P\0I\0C\0 \0i\0d\0:\0 \08\01\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0:\0 \0D\0e\0l\0i\0v\0e\0r\0y\0 \0T\0y\0p\0e\0:\0 \00\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0:\0 \0L\0T\0S\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0:\0 \00\0\r\0
\0.\0.\0.\0.\0 \0r\0e\0g\0i\0s\0t\0e\0r\0 \0#\00\01\0:\0 \00\00\01\07\00\00\00\04\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0 \0:\0 \0m\0a\0x\0 \0r\0e\0d\0i\0r\0e\0c\0t\0i\0o\0n\0 \0e\0n\0t\0r\0i\0e\0s\0:\0 \00\00\01\07\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0 \0:\0 \0P\0R\0Q\0 \0i\0m\0p\0l\0e\0m\0e\0n\0t\0e\0d\0:\0 \00\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0 \0:\0 \0I\0O\0 \0A\0P\0I\0C\0 \0v\0e\0r\0s\0i\0o\0n\0:\0 \00\00\00\04\0\r\0
\0.\0.\0.\0.\0 \0I\0R\0Q\0 \0r\0e\0d\0i\0r\0e\0c\0t\0i\0o\0n\0 \0t\0a\0b\0l\0e\0:\0\r\0
\0 \0N\0R\0 \0L\0o\0g\0 \0P\0h\0y\0 \0M\0a\0s\0k\0 \0T\0r\0i\0g\0 \0I\0R\0R\0 \0P\0o\0l\0 \0S\0t\0a\0t\0 \0D\0e\0s\0t\0 \0D\0e\0l\0i\0 \0V\0e\0c\0t\0:\0 \0 \0 \0\r\0
\0 \00\00\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0A\09\0\r\0
\0 \00\01\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0B\01\0\r\0
\0 \00\02\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0B\09\0\r\0
\0 \00\03\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0C\01\0\r\0
\0 \00\04\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0C\09\0\r\0
\0 \00\05\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0D\01\0\r\0
\0 \00\06\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0D\09\0\r\0
\0 \00\07\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0A\01\0\r\0
\0 \00\08\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0E\01\0\r\0
\0 \00\09\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0E\09\0\r\0
\0 \00\0a\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \03\02\0\r\0
\0 \00\0b\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \03\0A\0\r\0
\0 \00\0c\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \06\01\0\r\0
\0 \00\0d\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \06\09\0\r\0
\0 \00\0e\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \07\01\0\r\0
\0 \00\0f\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \07\09\0\r\0
\0 \01\00\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \08\01\0\r\0
\0 \01\01\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \08\09\0\r\0
\0 \01\02\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \09\01\0\r\0
\0 \01\03\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \09\09\0\r\0
\0 \01\04\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \03\01\0\r\0
\0 \01\05\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\06\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\07\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0A\01\0\r\0
\0I\0O\0 \0A\0P\0I\0C\0 \0#\01\03\02\0.\0.\0.\0.\0.\0.\0\r\0
\0.\0.\0.\0.\0 \0r\0e\0g\0i\0s\0t\0e\0r\0 \0#\00\00\0:\0 \08\04\00\00\00\00\00\00\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0:\0 \0p\0h\0y\0s\0i\0c\0a\0l\0 \0A\0P\0I\0C\0 \0i\0d\0:\0 \08\04\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0:\0 \0D\0e\0l\0i\0v\0e\0r\0y\0 \0T\0y\0p\0e\0:\0 \00\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0:\0 \0L\0T\0S\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0:\0 \00\0\r\0
\0.\0.\0.\0.\0 \0r\0e\0g\0i\0s\0t\0e\0r\0 \0#\00\01\0:\0 \00\00\01\07\00\00\00\04\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0 \0:\0 \0m\0a\0x\0 \0r\0e\0d\0i\0r\0e\0c\0t\0i\0o\0n\0 \0e\0n\0t\0r\0i\0e\0s\0:\0 \00\00\01\07\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0 \0:\0 \0P\0R\0Q\0 \0i\0m\0p\0l\0e\0m\0e\0n\0t\0e\0d\0:\0 \00\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0 \0:\0 \0I\0O\0 \0A\0P\0I\0C\0 \0v\0e\0r\0s\0i\0o\0n\0:\0 \00\00\00\04\0\r\0
\0.\0.\0.\0.\0 \0I\0R\0Q\0 \0r\0e\0d\0i\0r\0e\0c\0t\0i\0o\0n\0 \0t\0a\0b\0l\0e\0:\0\r\0
\0 \0N\0R\0 \0L\0o\0g\0 \0P\0h\0y\0 \0M\0a\0s\0k\0 \0T\0r\0i\0g\0 \0I\0R\0R\0 \0P\0o\0l\0 \0S\0t\0a\0t\0 \0D\0e\0s\0t\0 \0D\0e\0l\0i\0 \0V\0e\0c\0t\0:\0 \0 \0 \0\r\0
\0 \00\00\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0E\01\0\r\0
\0 \00\01\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0E\09\0\r\0
\0 \00\02\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \03\02\0\r\0
\0 \00\03\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \03\0A\0\r\0
\0 \00\04\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \04\02\0\r\0
\0 \00\05\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \04\0A\0\r\0
\0 \00\06\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \05\02\0\r\0
\0 \00\07\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \05\0A\0\r\0
\0 \00\08\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \06\02\0\r\0
\0 \00\09\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \06\0A\0\r\0
\0 \00\0a\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \07\02\0\r\0
\0 \00\0b\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \07\0A\0\r\0
\0 \00\0c\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\0d\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\0e\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \00\0f\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\00\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\01\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\02\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\03\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\04\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\05\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\06\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0 \01\07\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0I\0R\0Q\0 \0t\0o\0 \0p\0i\0n\0 \0m\0a\0p\0p\0i\0n\0g\0s\0:\0\r\0
\0I\0R\0Q\00\0 \0-\0>\0 \00\0:\02\00\0\r\0
\0I\0R\0Q\01\0 \0-\0>\0 \00\0:\01\02\0\r\0
\0I\0R\0Q\02\0 \0-\0>\0 \00\0:\02\0\r\0
\0I\0R\0Q\03\0 \0-\0>\0 \00\0:\03\0\r\0
\0I\0R\0Q\04\0 \0-\0>\0 \00\0:\01\04\0\r\0
\0I\0R\0Q\05\0 \0-\0>\0 \00\0:\05\0\r\0
\0I\0R\0Q\06\0 \0-\0>\0 \00\0:\01\06\0\r\0
\0I\0R\0Q\07\0 \0-\0>\0 \00\0:\01\07\0\r\0
\0I\0R\0Q\08\0 \0-\0>\0 \00\0:\01\08\0\r\0
\0I\0R\0Q\09\0 \0-\0>\0 \00\0:\09\0\r\0
\0I\0R\0Q\01\00\0 \0-\0>\0 \00\0:\01\00\0\r\0
\0I\0R\0Q\01\01\0 \0-\0>\0 \00\0:\01\01\0\r\0
\0I\0R\0Q\01\02\0 \0-\0>\0 \00\0:\01\09\0\r\0
\0I\0R\0Q\01\04\0 \0-\0>\0 \00\0:\01\05\0\r\0
\0I\0R\0Q\01\05\0 \0-\0>\0 \00\0:\01\03\0\r\0
\0I\0R\0Q\01\06\0 \0-\0>\0 \00\0:\00\0\r\0
\0I\0R\0Q\01\07\0 \0-\0>\0 \00\0:\01\0\r\0
\0I\0R\0Q\01\08\0 \0-\0>\0 \00\0:\02\0\r\0
\0I\0R\0Q\01\09\0 \0-\0>\0 \00\0:\03\0\r\0
\0I\0R\0Q\02\00\0 \0-\0>\0 \00\0:\04\0\r\0
\0I\0R\0Q\02\01\0 \0-\0>\0 \00\0:\05\0\r\0
\0I\0R\0Q\02\02\0 \0-\0>\0 \00\0:\06\0\r\0
\0I\0R\0Q\02\03\0 \0-\0>\0 \00\0:\02\03\0-\0>\0 \00\0:\07\0\r\0
\0I\0R\0Q\02\04\0 \0-\0>\0 \00\0:\08\0-\0>\0 \01\0:\00\0\r\0
\0I\0R\0Q\02\05\0 \0-\0>\0 \00\0:\09\0-\0>\0 \01\0:\01\0\r\0
\0I\0R\0Q\02\06\0 \0-\0>\0 \00\0:\01\00\0-\0>\0 \01\0:\02\0\r\0
\0I\0R\0Q\02\07\0 \0-\0>\0 \00\0:\01\01\0-\0>\0 \01\0:\03\0\r\0
\0I\0R\0Q\02\08\0 \0-\0>\0 \01\0:\04\0\r\0
\0I\0R\0Q\02\09\0 \0-\0>\0 \01\0:\05\0\r\0
\0I\0R\0Q\03\00\0 \0-\0>\0 \01\0:\06\0\r\0
\0I\0R\0Q\03\01\0 \0-\0>\0 \01\0:\07\0\r\0
\0I\0R\0Q\03\02\0 \0-\0>\0 \01\0:\08\0\r\0
\0I\0R\0Q\03\03\0 \0-\0>\0 \01\0:\09\0\r\0
\0I\0R\0Q\03\04\0 \0-\0>\0 \01\0:\01\00\0\r\0
\0I\0R\0Q\03\05\0 \0-\0>\0 \01\0:\01\01\0\r\0
\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0 \0d\0o\0n\0e\0.\0\r\0
\0P\0C\0I\0:\0 \0U\0s\0i\0n\0g\0 \0A\0C\0P\0I\0 \0f\0o\0r\0 \0I\0R\0Q\0 \0r\0o\0u\0t\0i\0n\0g\0\r\0
\0P\0C\0I\0:\0 \0i\0f\0 \0y\0o\0u\0 \0e\0x\0p\0e\0r\0i\0e\0n\0c\0e\0 \0p\0r\0o\0b\0l\0e\0m\0s\0,\0 \0t\0r\0y\0 \0u\0s\0i\0n\0g\0 \0o\0p\0t\0i\0o\0n\0 \0'\0p\0c\0i\0=\0n\0o\0a\0c\0p\0i\0'\0 \0o\0r\0 \0e\0v\0e\0n\0 \0'\0a\0c\0p\0i\0=\0o\0f\0f\0\r\0
\0'\0\r\0
\0S\0i\0m\0p\0l\0e\0 \0B\0o\0o\0t\0 \0F\0l\0a\0g\0 \0a\0t\0 \00\0x\03\07\0 \0s\0e\0t\0 \0t\0o\0 \00\0x\08\00\0\r\0
\0a\0p\0m\0:\0 \0B\0I\0O\0S\0 \0n\0o\0t\0 \0f\0o\0u\0n\0d\0.\0\r\0
\0S\0t\0a\0r\0t\0i\0n\0g\0 \0b\0a\0l\0a\0n\0c\0e\0d\0_\0i\0r\0q\0\r\0
\0h\0i\0g\0h\0m\0e\0m\0 \0b\0o\0u\0n\0c\0e\0 \0p\0o\0o\0l\0 \0s\0i\0z\0e\0:\0 \06\04\0 \0p\0a\0g\0e\0s\0\r\0
\0V\0F\0S\0:\0 \0D\0i\0s\0k\0 \0q\0u\0o\0t\0a\0s\0 \0d\0q\0u\0o\0t\0_\06\0.\05\0.\01\0\r\0
\0I\0n\0i\0t\0i\0a\0l\0i\0z\0i\0n\0g\0 \0C\0r\0y\0p\0t\0o\0g\0r\0a\0p\0h\0i\0c\0 \0A\0P\0I\0\r\0
\0R\0e\0a\0l\0 \0T\0i\0m\0e\0 \0C\0l\0o\0c\0k\0 \0D\0r\0i\0v\0e\0r\0 \0v\01\0.\01\02\0\r\0
\0S\0e\0r\0i\0a\0l\0:\0 \08\02\05\00\0/\01\06\05\05\00\0 \0d\0r\0i\0v\0e\0r\0 \0$\0R\0e\0v\0i\0s\0i\0o\0n\0:\0 \01\0.\09\00\0 \0$\0 \08\0 \0p\0o\0r\0t\0s\0,\0 \0I\0R\0Q\0 \0s\0h\0a\0r\0i\0n\0g\0 \0d\0i\0s\0a\0b\0l\0e\0d\0\r\0
\0\r\0
\0\r\0
\0T\0h\0i\0s\0 \0p\0i\0e\0c\0e\0 \0i\0s\0 \0f\0r\0o\0m\0 \0/\0v\0a\0r\0/\0l\0o\0g\0/\0m\0e\0s\0s\0a\0g\0e\0s\0\r\0
\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0e\0t\0h\00\0:\0 \0I\0n\0t\0e\0l\0(\0R\0)\0 \0P\0R\0O\0/\01\00\00\00\0 \0N\0e\0t\0w\0o\0r\0k\0 \0C\0o\0n\0n\0e\0c\0t\0i\0o\0n\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0e\0t\0h\01\0:\0 \0I\0n\0t\0e\0l\0(\0R\0)\0 \0P\0R\0O\0/\01\00\00\00\0 \0N\0e\0t\0w\0o\0r\0k\0 \0C\0o\0n\0n\0e\0c\0t\0i\0o\0n\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0n\0u\0m\0b\0e\0r\0 \0o\0f\0 \0M\0P\0 \0I\0R\0Q\0 \0s\0o\0u\0r\0c\0e\0s\0:\0 \01\07\0.\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0d\0r\0i\0v\0e\0r\0s\0/\0u\0s\0b\0/\0c\0o\0r\0e\0/\0u\0s\0b\0.\0c\0:\0 \0r\0e\0g\0i\0s\0t\0e\0r\0e\0d\0 \0n\0e\0w\0 \0d\0r\0i\0v\0e\0r\0 \0u\0s\0b\0f\0s\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0d\0r\0i\0v\0e\0r\0s\0/\0u\0s\0b\0/\0c\0o\0r\0e\0/\0u\0s\0b\0.\0c\0:\0 \0r\0e\0g\0i\0s\0t\0e\0r\0e\0d\0 \0n\0e\0w\0 \0d\0r\0i\0v\0e\0r\0 \0h\0u\0b\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0e\01\00\00\00\0:\0 \0e\0t\0h\00\0 \0N\0I\0C\0 \0L\0i\0n\0k\0 \0i\0s\0 \0U\0p\0 \01\00\00\0 \0M\0b\0p\0s\0 \0F\0u\0l\0l\0 \0D\0u\0p\0l\0e\0x\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0N\0E\0T\0:\0 \0R\0e\0g\0i\0s\0t\0e\0r\0e\0d\0 \0p\0r\0o\0t\0o\0c\0o\0l\0 \0f\0a\0m\0i\0l\0y\0 \01\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0D\0i\0s\0a\0b\0l\0e\0d\0 \0P\0r\0i\0v\0a\0c\0y\0 \0E\0x\0t\0e\0n\0s\0i\0o\0n\0s\0 \0o\0n\0 \0d\0e\0v\0i\0c\0e\0 \0c\00\03\07\0a\07\0a\00\0(\0l\0o\0)\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0P\0v\06\0 \0o\0v\0e\0r\0 \0I\0P\0v\04\0 \0t\0u\0n\0n\0e\0l\0i\0n\0g\0 \0d\0r\0i\0v\0e\0r\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0a\0t\0k\0b\0d\0.\0c\0:\0 \0U\0n\0k\0n\0o\0w\0n\0 \0k\0e\0y\0 \0r\0e\0l\0e\0a\0s\0e\0d\0 \0(\0t\0r\0a\0n\0s\0l\0a\0t\0e\0d\0 \0s\0e\0t\0 \02\0,\0 \0c\0o\0d\0e\0 \00\0x\07\0a\0 \0o\0n\0 \0i\0s\0a\00\00\06\00\0/\0s\0e\0r\0i\0o\00\0)\0.\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0a\0t\0k\0b\0d\0.\0c\0:\0 \0T\0h\0i\0s\0 \0i\0s\0 \0a\0n\0 \0X\0F\0r\0e\0e\08\06\0 \0b\0u\0g\0.\0 \0I\0t\0 \0s\0h\0o\0u\0l\0d\0n\0'\0t\0 \0a\0c\0c\0e\0s\0s\0 \0h\0a\0r\0d\0w\0a\0r\0e\0 \0d\0i\0r\0e\0c\0t\0l\0y\0.\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0a\0t\0k\0b\0d\0.\0c\0:\0 \0U\0n\0k\0n\0o\0w\0n\0 \0k\0e\0y\0 \0r\0e\0l\0e\0a\0s\0e\0d\0 \0(\0t\0r\0a\0n\0s\0l\0a\0t\0e\0d\0 \0s\0e\0t\0 \02\0,\0 \0c\0o\0d\0e\0 \00\0x\07\0a\0 \0o\0n\0 \0i\0s\0a\00\00\06\00\0/\0s\0e\0r\0i\0o\00\0)\0.\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0a\0t\0k\0b\0d\0.\0c\0:\0 \0T\0h\0i\0s\0 \0i\0s\0 \0a\0n\0 \0X\0F\0r\0e\0e\08\06\0 \0b\0u\0g\0.\0 \0I\0t\0 \0s\0h\0o\0u\0l\0d\0n\0'\0t\0 \0a\0c\0c\0e\0s\0s\0 \0h\0a\0r\0d\0w\0a\0r\0e\0 \0d\0i\0r\0e\0c\0t\0l\0y\0.\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0A\0t\0t\0a\0c\0h\0e\0d\0 \0s\0c\0s\0i\0 \0g\0e\0n\0e\0r\0i\0c\0 \0s\0g\00\0 \0a\0t\0 \0s\0c\0s\0i\00\0,\0 \0c\0h\0a\0n\0n\0e\0l\0 \00\0,\0 \0i\0d\0 \00\0,\0 \0l\0u\0n\0 \00\0,\0 \0 \0t\0y\0p\0e\0 \00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0s\0t\0:\0 \0V\0e\0r\0s\0i\0o\0n\0 \02\00\00\04\00\03\01\08\0,\0 \0f\0i\0x\0e\0d\0 \0b\0u\0f\0s\0i\0z\0e\0 \03\02\07\06\08\0,\0 \0s\0/\0g\0 \0s\0e\0g\0s\0 \02\05\06\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0h\0d\0c\0:\0 \0p\0a\0c\0k\0e\0t\0 \0c\0o\0m\0m\0a\0n\0d\0 \0e\0r\0r\0o\0r\0:\0 \0s\0t\0a\0t\0u\0s\0=\00\0x\05\01\0 \0{\0 \0D\0r\0i\0v\0e\0R\0e\0a\0d\0y\0 \0S\0e\0e\0k\0C\0o\0m\0p\0l\0e\0t\0e\0 \0E\0r\0r\0o\0r\0 \0}\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0h\0d\0c\0:\0 \0p\0a\0c\0k\0e\0t\0 \0c\0o\0m\0m\0a\0n\0d\0 \0e\0r\0r\0o\0r\0:\0 \0e\0r\0r\0o\0r\0=\00\0x\05\04\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0A\0T\0A\0P\0I\0 \0d\0e\0v\0i\0c\0e\0 \0h\0d\0c\0:\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \0 \0E\0r\0r\0o\0r\0:\0 \0I\0l\0l\0e\0g\0a\0l\0 \0r\0e\0q\0u\0e\0s\0t\0 \0-\0-\0 \0(\0S\0e\0n\0s\0e\0 \0k\0e\0y\0=\00\0x\00\05\0)\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \0 \0I\0n\0v\0a\0l\0i\0d\0 \0f\0i\0e\0l\0d\0 \0i\0n\0 \0c\0o\0m\0m\0a\0n\0d\0 \0p\0a\0c\0k\0e\0t\0 \0-\0-\0 \0(\0a\0s\0c\0=\00\0x\02\04\0,\0 \0a\0s\0c\0q\0=\00\0x\00\00\0)\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \0 \0T\0h\0e\0 \0f\0a\0i\0l\0e\0d\0 \0"\0S\0t\0a\0r\0t\0/\0S\0t\0o\0p\0 \0U\0n\0i\0t\0"\0 \0p\0a\0c\0k\0e\0t\0 \0c\0o\0m\0m\0a\0n\0d\0 \0w\0a\0s\0:\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \0 \0"\01\0b\0 \00\00\0 \00\00\0 \00\00\0 \00\03\0 \00\00\0 \00\00\0 \00\00\0 \00\00\0 \00\00\0 \00\00\0 \00\00\0 \00\00\0 \00\00\0 \00\00\0 \00\00\0 \0"\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0c\0d\0r\0o\0m\0:\0 \0o\0p\0e\0n\0 \0f\0a\0i\0l\0e\0d\0.\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0n\0u\0m\0b\0e\0r\0 \0o\0f\0 \0M\0P\0 \0I\0R\0Q\0 \0s\0o\0u\0r\0c\0e\0s\0:\0 \01\07\0.\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0n\0u\0m\0b\0e\0r\0 \0o\0f\0 \0I\0O\0-\0A\0P\0I\0C\0 \0#\01\02\09\0 \0r\0e\0g\0i\0s\0t\0e\0r\0s\0:\0 \02\04\0.\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0n\0u\0m\0b\0e\0r\0 \0o\0f\0 \0I\0O\0-\0A\0P\0I\0C\0 \0#\01\03\02\0 \0r\0e\0g\0i\0s\0t\0e\0r\0s\0:\0 \02\04\0.\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0t\0e\0s\0t\0i\0n\0g\0 \0t\0h\0e\0 \0I\0O\0 \0A\0P\0I\0C\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0O\0 \0A\0P\0I\0C\0 \0#\01\02\09\0.\0.\0.\0.\0.\0.\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0.\0.\0.\0.\0 \0r\0e\0g\0i\0s\0t\0e\0r\0 \0#\00\00\0:\0 \08\01\00\00\00\00\00\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0:\0 \0p\0h\0y\0s\0i\0c\0a\0l\0 \0A\0P\0I\0C\0 \0i\0d\0:\0 \08\01\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0:\0 \0D\0e\0l\0i\0v\0e\0r\0y\0 \0T\0y\0p\0e\0:\0 \00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0:\0 \0L\0T\0S\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0:\0 \00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0.\0.\0.\0.\0 \0r\0e\0g\0i\0s\0t\0e\0r\0 \0#\00\01\0:\0 \00\00\01\07\00\00\00\04\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0 \0:\0 \0m\0a\0x\0 \0r\0e\0d\0i\0r\0e\0c\0t\0i\0o\0n\0 \0e\0n\0t\0r\0i\0e\0s\0:\0 \00\00\01\07\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0 \0:\0 \0P\0R\0Q\0 \0i\0m\0p\0l\0e\0m\0e\0n\0t\0e\0d\0:\0 \00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0 \0:\0 \0I\0O\0 \0A\0P\0I\0C\0 \0v\0e\0r\0s\0i\0o\0n\0:\0 \00\00\00\04\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0.\0.\0.\0.\0 \0I\0R\0Q\0 \0r\0e\0d\0i\0r\0e\0c\0t\0i\0o\0n\0 \0t\0a\0b\0l\0e\0:\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \0N\0R\0 \0L\0o\0g\0 \0P\0h\0y\0 \0M\0a\0s\0k\0 \0T\0r\0i\0g\0 \0I\0R\0R\0 \0P\0o\0l\0 \0S\0t\0a\0t\0 \0D\0e\0s\0t\0 \0D\0e\0l\0i\0 \0V\0e\0c\0t\0:\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\00\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0A\09\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\01\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0B\01\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\02\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0B\09\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\03\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0C\01\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\04\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0C\09\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\05\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0D\01\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\06\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0D\09\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\07\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0A\01\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\08\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0E\01\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\09\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0E\09\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\0a\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \03\02\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\0b\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \03\0A\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\0c\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \06\01\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\0d\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \06\09\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\0e\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \07\01\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\0f\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \07\09\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \01\00\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \08\01\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \01\01\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \08\09\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \01\02\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \09\01\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \01\03\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \09\09\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \01\04\0 \00\00\02\0 \00\02\0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \03\01\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \01\05\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \01\06\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \01\07\0 \00\00\00\0 \00\00\0 \0 \00\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0A\01\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0O\0 \0A\0P\0I\0C\0 \0#\01\03\02\0.\0.\0.\0.\0.\0.\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0.\0.\0.\0.\0 \0r\0e\0g\0i\0s\0t\0e\0r\0 \0#\00\00\0:\0 \08\04\00\00\00\00\00\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0:\0 \0p\0h\0y\0s\0i\0c\0a\0l\0 \0A\0P\0I\0C\0 \0i\0d\0:\0 \08\04\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0:\0 \0D\0e\0l\0i\0v\0e\0r\0y\0 \0T\0y\0p\0e\0:\0 \00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0:\0 \0L\0T\0S\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0:\0 \00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0.\0.\0.\0.\0 \0r\0e\0g\0i\0s\0t\0e\0r\0 \0#\00\01\0:\0 \00\00\01\07\00\00\00\04\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0 \0:\0 \0m\0a\0x\0 \0r\0e\0d\0i\0r\0e\0c\0t\0i\0o\0n\0 \0e\0n\0t\0r\0i\0e\0s\0:\0 \00\00\01\07\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0 \0:\0 \0P\0R\0Q\0 \0i\0m\0p\0l\0e\0m\0e\0n\0t\0e\0d\0:\0 \00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0.\0.\0.\0.\0.\0.\0.\0 \0 \0 \0 \0 \0:\0 \0I\0O\0 \0A\0P\0I\0C\0 \0v\0e\0r\0s\0i\0o\0n\0:\0 \00\00\00\04\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0.\0.\0.\0.\0 \0I\0R\0Q\0 \0r\0e\0d\0i\0r\0e\0c\0t\0i\0o\0n\0 \0t\0a\0b\0l\0e\0:\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \0N\0R\0 \0L\0o\0g\0 \0P\0h\0y\0 \0M\0a\0s\0k\0 \0T\0r\0i\0g\0 \0I\0R\0R\0 \0P\0o\0l\0 \0S\0t\0a\0t\0 \0D\0e\0s\0t\0 \0D\0e\0l\0i\0 \0V\0e\0c\0t\0:\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\00\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0E\01\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\01\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \0E\09\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\02\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \03\02\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\03\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \03\0A\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\04\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \04\02\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\05\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \04\0A\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\06\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \05\02\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\07\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \05\0A\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\08\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \06\02\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\09\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \06\0A\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\0a\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \07\02\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\0b\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \01\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \07\0A\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\0c\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\0d\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\0e\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \00\0f\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \01\00\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \01\01\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \01\02\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \01\03\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \01\04\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \01\05\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \01\06\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0 \01\07\0 \00\00\00\0 \00\00\0 \0 \01\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\0 \0 \0 \0 \00\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\0 \0t\0o\0 \0p\0i\0n\0 \0m\0a\0p\0p\0i\0n\0g\0s\0:\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\00\0 \0-\0>\0 \00\0:\02\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\01\0 \0-\0>\0 \00\0:\01\02\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\02\0 \0-\0>\0 \00\0:\02\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\03\0 \0-\0>\0 \00\0:\03\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\04\0 \0-\0>\0 \00\0:\01\04\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\05\0 \0-\0>\0 \00\0:\05\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\06\0 \0-\0>\0 \00\0:\01\06\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\07\0 \0-\0>\0 \00\0:\01\07\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\08\0 \0-\0>\0 \00\0:\01\08\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\09\0 \0-\0>\0 \00\0:\09\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\01\00\0 \0-\0>\0 \00\0:\01\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\01\01\0 \0-\0>\0 \00\0:\01\01\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\01\02\0 \0-\0>\0 \00\0:\01\09\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\01\04\0 \0-\0>\0 \00\0:\01\05\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\01\05\0 \0-\0>\0 \00\0:\01\03\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\01\06\0 \0-\0>\0 \00\0:\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\01\07\0 \0-\0>\0 \00\0:\01\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\01\08\0 \0-\0>\0 \00\0:\02\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\01\09\0 \0-\0>\0 \00\0:\03\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\02\00\0 \0-\0>\0 \00\0:\04\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\02\01\0 \0-\0>\0 \00\0:\05\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\02\02\0 \0-\0>\0 \00\0:\06\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\02\03\0 \0-\0>\0 \00\0:\02\03\0-\0>\0 \00\0:\07\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\02\04\0 \0-\0>\0 \00\0:\08\0-\0>\0 \01\0:\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\02\05\0 \0-\0>\0 \00\0:\09\0-\0>\0 \01\0:\01\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\02\06\0 \0-\0>\0 \00\0:\01\00\0-\0>\0 \01\0:\02\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\02\07\0 \0-\0>\0 \00\0:\01\01\0-\0>\0 \01\0:\03\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\02\08\0 \0-\0>\0 \01\0:\04\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\02\09\0 \0-\0>\0 \01\0:\05\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\03\00\0 \0-\0>\0 \01\0:\06\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\03\01\0 \0-\0>\0 \01\0:\07\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\03\02\0 \0-\0>\0 \01\0:\08\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\03\03\0 \0-\0>\0 \01\0:\09\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\03\04\0 \0-\0>\0 \01\0:\01\00\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0I\0R\0Q\03\05\0 \0-\0>\0 \01\0:\01\01\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\00\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0.\0 \0d\0o\0n\0e\0.\0\r\0
\0A\0p\0r\0 \01\04\0 \00\02\0:\04\02\0:\04\06\0 \0m\00\00\07\07\0-\0c\0e\0l\0l\00\0 \0k\0e\0r\0n\0e\0l\0:\0 \0e\0t\0h\00\0:\0 \0n\0o\0 \0I\0P\0v\06\0 \0r\0o\0u\0t\0e\0r\0s\0 \0p\0r\0e\0s\0e\0n\0t\0\r\0
\0\r\0
\0\r\0
\0

^ permalink raw reply	[flat|nested] 13+ messages in thread
[parent not found: <A6974D8E5F98D511BB910002A50A6647615F888E@hdsmsx403.hd.intel.com>]
* RE: [PATCH] 2.6.5- es7000 subarch update
@ 2004-04-12 20:25 Protasevich, Natalie
  2004-04-12 20:50 ` Zwane Mwaikambo
  0 siblings, 1 reply; 13+ messages in thread
From: Protasevich, Natalie @ 2004-04-12 20:25 UTC (permalink / raw)
  To: Zwane Mwaikambo; +Cc: Andrew Morton, Martin J. Bligh, Linux Kernel, LSE

> > Since it is a valid entry, find_irq_entry() in setup_IO_APIC_irqs() searches the mp_irqs[] by the pin number and runs into this element first. It uses it to program the pin and never gets to the element down below that contains modified entry with a correct overwrite in it.
> > I was able to get rid of this problem on the ES7000 with the following code:
> >
> >         for (i = 0; i < mp_irq_entries; i++) {
> >                 if ((mp_irqs[i].mpc_srcbus == intsrc.mpc_srcbus)
> >                       && (mp_irqs[i].mpc_srcbusirq == intsrc.mpc_srcbusirq)) {
> >                         mp_irqs[i] = intsrc;
> >   +                     if (intsrc.mpc_srcbusirq > pin) {
> >   +                            int j;
> >   +                            for (j = 0; j < i; j++)
> >   +                                   if (mp_irqs[j].mpc_dstirq == intsrc.mpc_dstirq)
> >   +                                         mp_irqs[j].mpc_irqtype = -1;
> >   +                     }
> >                         found = 1;
> >                         break;
> >                 }
> >         }
> > I will appreciate any feedback and suggestions.
>
> Out of interest, doesn't this have the same effect?

Hi Zwane,
It is actually close to what I had in my initial patch when I posted it (and got in trouble with the timer IRQ0):

			...
			intsrc.mpc_dstirq = pin;
			...			
-			&& (mp_irqs[i].mpc_srcbusirq == intsrc.mpc_srcbusirq)) {
+			&& (mp_irqs[i].mpc_dstirq == intsrc.mpc_dstirq)) {

This code indexes mp_irqs[] by the pin, but has a similar "miscounting" problem and adds a second element with the same bus irq. I think this code could work either way being indexed by the pin or by the bus irq, but it has to be fixed in either case. (As I understand, with srcbusirq it doesn't work as is for much fewer people than with dstirq :)

Regards,
--Natalie 

>Forgot the bus check;

>Index: linux-2.6.5-mc3/arch/i386/kernel/mpparse.c
>===================================================================
>RCS file: /home/cvsroot/linux-2.6.5-mc3/arch/i386/kernel/mpparse.c,v
>retrieving revision 1.1.1.1
>diff -u -p -B -r1.1.1.1 mpparse.c
>--- linux-2.6.5-mc3/arch/i386/kernel/mpparse.c	9 Apr 2004 17:53:27 -0000	1.1.1.1
>+++ linux-2.6.5-mc3/arch/i386/kernel/mpparse.c	12 Apr 2004 18:31:22 -0000
>@@ -968,8 +968,9 @@ void __init mp_override_legacy_irq (
> 	 * Otherwise create a new entry (e.g. gsi == 2).
> 	 */
> 	for (i = 0; i < mp_irq_entries; i++) {
>-		if ((mp_irqs[i].mpc_srcbus == intsrc.mpc_srcbus)
>-			&& (mp_irqs[i].mpc_srcbusirq == intsrc.mpc_srcbusirq)) {
>+		if ((mp_irqs[i].srcbus == MP_ISA_BUS) &&
>+			mp_irqs[i].mpc_dstirq == pin) {
>+
> 			mp_irqs[i] = intsrc;
> 			found = 1;
> 			break;

^ permalink raw reply	[flat|nested] 13+ messages in thread
* RE: [PATCH] 2.6.5- es7000 subarch update
@ 2004-04-12 17:00 Protasevich, Natalie
  2004-04-12 17:58 ` Zwane Mwaikambo
  0 siblings, 1 reply; 13+ messages in thread
From: Protasevich, Natalie @ 2004-04-12 17:00 UTC (permalink / raw)
  To: Andrew Morton, Martin J. Bligh; +Cc: linux-kernel, lse-tech

Hi Andrew, Martin,
I was able to reproduce the timer problem on a Xeon generic box, where my patch caused the same thing: a duplicate entry for the timer was programmed in the IO-APIC. The fact that it worked for es7000 was unfortunately just a coincidence :( I investigated it more and found that the legacy irq overwrite code had a bit of deficiency, which was revealed with our overwrite case. Please consider the following problem.
 
mp_config_acpi_legacy_irqs() constructs legacy irq table (irq<16), namely the default mp_irqs[] array which initially has one to one correspondence of a pin and a bus irq (pin=bus irq, for general case).

ACPI: IOAPIC (id[0x81] address[0xfec00000] global_irq_base[0x0])
IOAPIC[0]: Assigned apic_id 129
IOAPIC[0]: apic_id 129, version 4, address 0xfec00000, IRQ 0-23
Int: entry 0, type 0, pol 0, trig 0, bus 0, irq 0, 129-0
Int: entry 1, type 0, pol 0, trig 0, bus 0, irq 1, 129-1
Int: entry 3, type 0, pol 0, trig 0, bus 0, irq 3, 129-3
Int: entry 4, type 0, pol 0, trig 0, bus 0, irq 4, 129-4
Int: entry 5, type 0, pol 0, trig 0, bus 0, irq 5, 129-5
Int: entry 6, type 0, pol 0, trig 0, bus 0, irq 6, 129-6
Int: entry 7, type 0, pol 0, trig 0, bus 0, irq 7, 129-7
Int: entry 8, type 0, pol 0, trig 0, bus 0, irq 8, 129-8
Int: entry 9, type 0, pol 0, trig 0, bus 0, irq 9, 129-9
Int: entry 10, type 0, pol 0, trig 0, bus 0, irq 10, 129-10
Int: entry 11, type 0, pol 0, trig 0, bus 0, irq 11, 129-11
Int: entry 12, type 0, pol 0, trig 0, bus 0, irq 12, 129-12
Int: entry 13, type 0, pol 0, trig 0, bus 0, irq 13, 129-13
Int: entry 14, type 0, pol 0, trig 0, bus 0, irq 14, 129-14
Int: entry 15, type 0, pol 0, trig 0, bus 0, irq 15, 129-15

The override function mp_override_legacy_irq() parses ACPI INT_SRC_OVR entries, and each override entry results in a change of corresponding mp_irqs[] array element.
The problem happens when the dest_irq (pin) numerically smaller than the bus irq and is assigned higher array element (we index of the srcbus_irq) that the original bus irq with default correspondence. The mp_irqs[] element with new bus irq gets changed allright, but there is still the original (unmodified) element with default one-to-one assignment above it in the array: 
...
Int: mp_irq 7, type 0, pol 3, trig 1, bus 0, irq 8, 129-18
Int: mp_irq 8, type 0, pol 1, trig 3, bus 0, irq 9, 129-23
Int: mp_irq 9, type 0, pol 0, trig 0, bus 0, irq 10, 129-10
Int: mp_irq 10, type 0, pol 0, trig 0, bus 0, irq 11, 129-11
Int: mp_irq 11, type 0, pol 1, trig 1, bus 0, irq 12, 129-19
Int: mp_irq 12, type 0, pol 0, trig 0, bus 0, irq 13, 129-13 <-- original entry for bus irq (and pin) 13
Int: mp_irq 13, type 0, pol 1, trig 1, bus 0, irq 14, 129-15
Int: mp_irq 14, type 0, pol 1, trig 1, bus 0, irq 15, 129-13 <-- modified entry for bus irq 15, with override for pin 13
...

Since it is a valid entry, find_irq_entry() in setup_IO_APIC_irqs() searches the mp_irqs[] by the pin number and runs into this element first. It uses it to program the pin and never gets to the element down below that contains modified entry with a correct overwrite in it. 
I was able to get rid of this problem on the ES7000 with the following code:

        for (i = 0; i < mp_irq_entries; i++) {
                if ((mp_irqs[i].mpc_srcbus == intsrc.mpc_srcbus)
                      && (mp_irqs[i].mpc_srcbusirq == intsrc.mpc_srcbusirq)) {
                        mp_irqs[i] = intsrc;
  +                     if (intsrc.mpc_srcbusirq > pin) {
  +                            int j;
  +                            for (j = 0; j < i; j++) 
  +                                   if (mp_irqs[j].mpc_dstirq == intsrc.mpc_dstirq)  
  +                                         mp_irqs[j].mpc_irqtype = -1;
  +                     }
                        found = 1;
                        break;
                }
        }

This resulted in the following array changes:
...
Int: mp_irq 10, type 0, pol 0, trig 0, bus 0, irq 11, 129-11
Int: mp_irq 11, type 0, pol 1, trig 1, bus 0, irq 12, 129-19
Int: mp_irq 12, type 255, pol 0, trig 0, bus 0, irq 13, 129-13 <-- invalidated element
Int: mp_irq 13, type 0, pol 1, trig 1, bus 0, irq 14, 129-15
Int: mp_irq 14, type 0, pol 1, trig 1, bus 0, irq 15, 129-13 <-- valid element
...

... and find_irq_entry() skipped the first element of mp_irqs[] with the pin 13 and went on searching until found the correct one.

This code did not affect my generic Xeon system.
Please let me know if it appears a viable solution to you. I can think of a couple other possible ways, this one seems to be the easiest... 

I will appreciate any feedback and suggestions.
Thanks,
--Natalie


-----Original Message-----
From: Protasevich, Natalie 
Sent: Tuesday, April 06, 2004 9:08 AM
To: 'Andrew Morton'
Cc: linux-kernel@vger.kernel.org; lse-tech@lists.sourceforge.net
Subject: RE: [PATCH] 2.6.5- es7000 subarch update


Hi Andrew,

The only line that is outside the es7000 code and could cause this is:

> --- linux6.5/arch/i386/kernel/mpparse.c	2004-04-04 18:22:39.000000000 -0400
> +++ linux-2.6.5/arch/i386/kernel/mpparse.c	2004-04-05 00:07:13.000000000 -0400
> @@ -969,7 +969,7 @@
>  	 */
>  	for (i = 0; i < mp_irq_entries; i++) {
>  		if ((mp_irqs[i].mpc_srcbus == intsrc.mpc_srcbus) 
> -			&& (mp_irqs[i].mpc_srcbusirq == intsrc.mpc_srcbusirq)) {
> +			&& (mp_irqs[i].mpc_dstirq == intsrc.mpc_dstirq)) {
>  			mp_irqs[i] = intsrc;
>  			found = 1;

(The one that Martin asked me about)
The code is for the legacy/overwrites, and used to have this line (and I am researching it now).
ES7000 has pretty extensive overrides:
ACPI: INT_SRC_OVR (bus 0 bus_irq 1 global_irq 12 high edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 15 global_irq 13 high edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 4 global_irq 14 high edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 14 global_irq 15 high edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 6 global_irq 16 high edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 7 global_irq 17 high edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 8 global_irq 18 low edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 12 global_irq 19 high edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 20 high edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 23 high level)

The only device that fails to set the line correctly with the code as it is now is the IDE (line 4) and works fine with the suggested line. In the case below, the clock gets mapped to the cascade...
I will do more testing on the generic Xeon then, it should be a good solution there. Maybe, this is something that the hook might be needed for es7000.
Thanks,
--Natalie

-----Original Message-----
From: Andrew Morton [mailto:akpm@osdl.org]
Sent: Tuesday, April 06, 2004 12:30 AM
To: Protasevich, Natalie
Cc: linux-kernel@vger.kernel.org; lse-tech@lists.sourceforge.net
Subject: Re: [PATCH] 2.6.5- es7000 subarch update


"Protasevich, Natalie" <Natalie.Protasevich@UNISYS.com> wrote:
>
> ES7000 was failing to boot since first couple revisions of 2.6. The patch fixes the boot problem. 
>  In the patch, some maintenance and cleanup was done for es7000 subarch, such as APIC destinations were corrected, missing initialization for the variable was added, extraneous file was removed, etc.
>  The patch was created against 2.6.5, compiled  cleanly, and tested on the ES7000 system.

This patch appears to cause the local-apic based time interrupts to run too
fast on my old 4-way Xeon server.  A `sleep 10' takes about five seconds.

Diffing the dmesg output shows the changes which your patch caused:

--- without	2004-04-05 22:18:41.061198208 -0700
+++ with	2004-04-05 22:17:15.000000000 -0700
@@ -1,4 +1,4 @@
- IO-APIC (apicid-pin) 4-0, 4-16, 4-17, 4-18, 4-19, 4-20, 4-21, 4-22, 4-23, 4-24, 4-25, 4-26, 4-27, 4-28, 4-29, 4-30, 4-31, 4-32, 4-33, 4-34, 4-35, 4-36, 4-37, 4-38, 4-39, 4-40, 4-41, 4-42, 4-43, 4-44, 4-45, 4-46, 4-47, 4-48, 4-49, 4-50, 4-51, 4-52, 4-53, 4-54, 4-55, 4-56, 4-57, 4-58, 4-59, 4-60, 4-61, 4-62, 4-63 not connected.
-..TIMER: vector=0x31 pin1=2 pin2=-1
+ IO-APIC (apicid-pin) 4-16, 4-17, 4-18, 4-19, 4-20, 4-21, 4-22, 4-23, 4-24, 4-25, 4-26, 4-27, 4-28, 4-29, 4-30, 4-31, 4-32, 4-33, 4-34, 4-35, 4-36, 4-37, 4-38, 4-39, 4-40, 4-41, 4-42, 4-43, 4-44, 4-45, 4-46, 4-47, 4-48, 4-49, 4-50, 4-51, 4-52, 4-53, 4-54, 4-55, 4-56, 4-57, 4-58, 4-59, 4-60, 4-61, 4-62, 4-63 not connected.
+..TIMER: vector=0x31 pin1=0 pin2=-1


-number of MP IRQ sources: 15.
+number of MP IRQ sources: 16.


 .... IRQ redirection table:
  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
- 00 000 00  1    0    0   0   0    0    0    00
+ 00 00F 0F  0    0    0   0   0    1    1    31
  01 00F 0F  0    0    0   0   0    1    1    39
  02 00F 0F  0    0    0   0   0    1    1    31
  03 00F 0F  0    0    0   0   0    1    1    41
@@ -368,7 +368,7 @@
  3e 000 00  1    0    0   0   0    0    0    00
  3f 000 00  1    0    0   0   0    0    0    00
 IRQ to pin mappings:
-IRQ0 -> 0:2
+IRQ0 -> 0:0-> 0:2
 IRQ1 -> 0:1
 IRQ3 -> 0:3
 IRQ4 -> 0:4


^ permalink raw reply	[flat|nested] 13+ messages in thread
* RE: [PATCH] 2.6.5- es7000 subarch update
@ 2004-04-06 15:08 Protasevich, Natalie
  0 siblings, 0 replies; 13+ messages in thread
From: Protasevich, Natalie @ 2004-04-06 15:08 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, lse-tech

Hi Andrew,

The only line that is outside the es7000 code and could cause this is:

> --- linux6.5/arch/i386/kernel/mpparse.c	2004-04-04 18:22:39.000000000 -0400
> +++ linux-2.6.5/arch/i386/kernel/mpparse.c	2004-04-05 00:07:13.000000000 -0400
> @@ -969,7 +969,7 @@
>  	 */
>  	for (i = 0; i < mp_irq_entries; i++) {
>  		if ((mp_irqs[i].mpc_srcbus == intsrc.mpc_srcbus) 
> -			&& (mp_irqs[i].mpc_srcbusirq == intsrc.mpc_srcbusirq)) {
> +			&& (mp_irqs[i].mpc_dstirq == intsrc.mpc_dstirq)) {
>  			mp_irqs[i] = intsrc;
>  			found = 1;

(The one that Martin asked me about)
The code is for the legacy/overwrites, and used to have this line (and I am researching it now).
ES7000 has pretty extensive overrides:
ACPI: INT_SRC_OVR (bus 0 bus_irq 1 global_irq 12 high edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 15 global_irq 13 high edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 4 global_irq 14 high edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 14 global_irq 15 high edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 6 global_irq 16 high edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 7 global_irq 17 high edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 8 global_irq 18 low edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 12 global_irq 19 high edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 20 high edge)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 23 high level)

The only device that fails to set the line correctly with the code as it is now is the IDE (line 4) and works fine with the suggested line. In the case below, the clock gets mapped to the cascade...
I will do more testing on the generic Xeon then, it should be a good solution there. Maybe, this is something that the hook might be needed for es7000.
Thanks,
--Natalie

-----Original Message-----
From: Andrew Morton [mailto:akpm@osdl.org]
Sent: Tuesday, April 06, 2004 12:30 AM
To: Protasevich, Natalie
Cc: linux-kernel@vger.kernel.org; lse-tech@lists.sourceforge.net
Subject: Re: [PATCH] 2.6.5- es7000 subarch update


"Protasevich, Natalie" <Natalie.Protasevich@UNISYS.com> wrote:
>
> ES7000 was failing to boot since first couple revisions of 2.6. The patch fixes the boot problem. 
>  In the patch, some maintenance and cleanup was done for es7000 subarch, such as APIC destinations were corrected, missing initialization for the variable was added, extraneous file was removed, etc.
>  The patch was created against 2.6.5, compiled  cleanly, and tested on the ES7000 system.

This patch appears to cause the local-apic based time interrupts to run too
fast on my old 4-way Xeon server.  A `sleep 10' takes about five seconds.

Diffing the dmesg output shows the changes which your patch caused:

--- without	2004-04-05 22:18:41.061198208 -0700
+++ with	2004-04-05 22:17:15.000000000 -0700
@@ -1,4 +1,4 @@
- IO-APIC (apicid-pin) 4-0, 4-16, 4-17, 4-18, 4-19, 4-20, 4-21, 4-22, 4-23, 4-24, 4-25, 4-26, 4-27, 4-28, 4-29, 4-30, 4-31, 4-32, 4-33, 4-34, 4-35, 4-36, 4-37, 4-38, 4-39, 4-40, 4-41, 4-42, 4-43, 4-44, 4-45, 4-46, 4-47, 4-48, 4-49, 4-50, 4-51, 4-52, 4-53, 4-54, 4-55, 4-56, 4-57, 4-58, 4-59, 4-60, 4-61, 4-62, 4-63 not connected.
-..TIMER: vector=0x31 pin1=2 pin2=-1
+ IO-APIC (apicid-pin) 4-16, 4-17, 4-18, 4-19, 4-20, 4-21, 4-22, 4-23, 4-24, 4-25, 4-26, 4-27, 4-28, 4-29, 4-30, 4-31, 4-32, 4-33, 4-34, 4-35, 4-36, 4-37, 4-38, 4-39, 4-40, 4-41, 4-42, 4-43, 4-44, 4-45, 4-46, 4-47, 4-48, 4-49, 4-50, 4-51, 4-52, 4-53, 4-54, 4-55, 4-56, 4-57, 4-58, 4-59, 4-60, 4-61, 4-62, 4-63 not connected.
+..TIMER: vector=0x31 pin1=0 pin2=-1


-number of MP IRQ sources: 15.
+number of MP IRQ sources: 16.


 .... IRQ redirection table:
  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
- 00 000 00  1    0    0   0   0    0    0    00
+ 00 00F 0F  0    0    0   0   0    1    1    31
  01 00F 0F  0    0    0   0   0    1    1    39
  02 00F 0F  0    0    0   0   0    1    1    31
  03 00F 0F  0    0    0   0   0    1    1    41
@@ -368,7 +368,7 @@
  3e 000 00  1    0    0   0   0    0    0    00
  3f 000 00  1    0    0   0   0    0    0    00
 IRQ to pin mappings:
-IRQ0 -> 0:2
+IRQ0 -> 0:0-> 0:2
 IRQ1 -> 0:1
 IRQ3 -> 0:3
 IRQ4 -> 0:4


^ permalink raw reply	[flat|nested] 13+ messages in thread
* [PATCH] 2.6.5- es7000 subarch update
@ 2004-04-05 16:12 Protasevich, Natalie
  2004-04-06  6:30 ` Andrew Morton
  0 siblings, 1 reply; 13+ messages in thread
From: Protasevich, Natalie @ 2004-04-05 16:12 UTC (permalink / raw)
  To: Linux Kernel; +Cc: akpm, lse-tech

Hello,

ES7000 was failing to boot since first couple revisions of 2.6. The patch fixes the boot problem. 
In the patch, some maintenance and cleanup was done for es7000 subarch, such as APIC destinations were corrected, missing initialization for the variable was added, extraneous file was removed, etc.
The patch was created against 2.6.5, compiled  cleanly, and tested on the ES7000 system.

Thanks,
--Natalie
------------------------------------

diff -Naur linux6.5/arch/i386/mach-es7000/Makefile linux-2.6.5/arch/i386/mach-es7000/Makefile
--- linux6.5/arch/i386/mach-es7000/Makefile	2004-04-04 18:22:39.000000000 -0400
+++ linux-2.6.5/arch/i386/mach-es7000/Makefile	2004-04-05 00:07:13.000000000 -0400
@@ -2,4 +2,4 @@
 # Makefile for the linux kernel.
 #
 
-obj-y		:= setup.o topology.o es7000.o
+obj-y		:= setup.o es7000.o
diff -Naur linux6.5/arch/i386/mach-es7000/es7000.c linux-2.6.5/arch/i386/mach-es7000/es7000.c
--- linux6.5/arch/i386/mach-es7000/es7000.c	2004-04-04 18:22:39.000000000 -0400
+++ linux-2.6.5/arch/i386/mach-es7000/es7000.c	2004-04-05 00:07:13.000000000 -0400
@@ -82,6 +82,7 @@
 			host_addr = val;
 			host = (struct mip_reg *)val;
 			host_reg = __va(host);
+			mip_port = MIP_PORT(mi->mip_info);
 			val = MIP_RD_LO(mi->mip_reg);
 			mip_addr = val;
 			mip = (struct mip_reg *)val;
diff -Naur linux6.5/arch/i386/mach-es7000/es7000.h linux-2.6.5/arch/i386/mach-es7000/es7000.h
--- linux6.5/arch/i386/mach-es7000/es7000.h	2004-04-04 18:22:39.000000000 -0400
+++ linux-2.6.5/arch/i386/mach-es7000/es7000.h	2004-04-05 00:07:13.000000000 -0400
@@ -32,6 +32,7 @@
 #define	MIP_VALID		0x0100000000000000
 
 #define	MIP_RD_LO(VALUE)	(VALUE & 0xffffffff)   
+#define	MIP_PORT(VALUE)		((VALUE >> 32) & 0xffff)
 
 struct mip_reg_info {
 	unsigned long long mip_info;
diff -Naur linux6.5/arch/i386/mach-es7000/topology.c linux-2.6.5/arch/i386/mach-es7000/topology.c
--- linux6.5/arch/i386/mach-es7000/topology.c	2004-04-04 18:22:39.000000000 -0400
+++ linux-2.6.5/arch/i386/mach-es7000/topology.c	1969-12-31 19:00:00.000000000 -0500
@@ -1,64 +0,0 @@
-/*
- * arch/i386/mach-generic/topology.c - Populate driverfs with topology information
- *
- * Written by: Matthew Dobson, IBM Corporation
- * Original Code: Paul Dorwin, IBM Corporation, Patrick Mochel, OSDL
- *
- * Copyright (C) 2002, IBM Corp.
- *
- * All rights reserved.          
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
- * NON INFRINGEMENT.  See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * Send feedback to <colpatch@us.ibm.com>
- */
-#include <linux/init.h>
-#include <linux/smp.h>
-#include <asm/cpu.h>
-
-struct i386_cpu cpu_devices[NR_CPUS];
-
-#ifdef CONFIG_NUMA
-#include <linux/mmzone.h>
-#include <asm/node.h>
-
-struct i386_node node_devices[MAX_NUMNODES];
-
-static int __init topology_init(void)
-{
-	int i;
-
-	for (i = 0; i < num_online_nodes(); i++)
-		arch_register_node(i);
-	for (i = 0; i < NR_CPUS; i++)
-		if (cpu_possible(i)) arch_register_cpu(i);
-	return 0;
-}
-
-#else /* !CONFIG_NUMA */
-
-static int __init topology_init(void)
-{
-	int i;
-
-	for (i = 0; i < NR_CPUS; i++)
-		if (cpu_possible(i)) arch_register_cpu(i);
-	return 0;
-}
-
-#endif /* CONFIG_NUMA */
-
-subsys_initcall(topology_init);
diff -Naur linux6.5/arch/i386/kernel/mpparse.c linux-2.6.5/arch/i386/kernel/mpparse.c
--- linux6.5/arch/i386/kernel/mpparse.c	2004-04-04 18:22:39.000000000 -0400
+++ linux-2.6.5/arch/i386/kernel/mpparse.c	2004-04-05 00:07:13.000000000 -0400
@@ -969,7 +969,7 @@
 	 */
 	for (i = 0; i < mp_irq_entries; i++) {
 		if ((mp_irqs[i].mpc_srcbus == intsrc.mpc_srcbus) 
-			&& (mp_irqs[i].mpc_srcbusirq == intsrc.mpc_srcbusirq)) {
+			&& (mp_irqs[i].mpc_dstirq == intsrc.mpc_dstirq)) {
 			mp_irqs[i] = intsrc;
 			found = 1;
 			break;
diff -Naur linux6.5/include/asm-i386/mach-es7000/mach_apic.h linux-2.6.5/include/asm-i386/mach-es7000/mach_apic.h
--- linux6.5/include/asm-i386/mach-es7000/mach_apic.h	2004-04-04 18:22:46.000000000 -0400
+++ linux-2.6.5/include/asm-i386/mach-es7000/mach_apic.h	2004-04-05 00:11:50.000000000 -0400
@@ -39,7 +39,7 @@
 #endif
 
 #define APIC_BROADCAST_ID	(0xff)
-#define NO_IOAPIC_CHECK (0)
+#define NO_IOAPIC_CHECK (1)
 
 static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)
 { 
@@ -166,10 +166,12 @@
 	int cpu;
 	int apicid;	
 
+#if defined CONFIG_ES7000_CLUSTERED_APIC
+	return 0xFF;
+#endif
 	num_bits_set = cpus_weight_const(cpumask);
-	/* Return id to all */
 	if (num_bits_set == NR_CPUS)
-		return 0xFF;
+		return cpu_to_logical_apicid(0);
 	/* 
 	 * The cpus in the mask must all be on the apic cluster.  If are not 
 	 * on the same apicid cluster return default value of TARGET_CPUS. 
@@ -182,7 +184,7 @@
 			if (apicid_cluster(apicid) != 
 					apicid_cluster(new_apicid)){
 				printk ("%s: Not a valid mask!\n",__FUNCTION__);
-				return 0xFF;
+				return cpu_to_logical_apicid(0);
 			}
 			apicid = new_apicid;
 			cpus_found++;

----------------------------------------------------



^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2004-04-19 17:31 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-04-13  3:44 [PATCH] 2.6.5- es7000 subarch update Protasevich, Natalie
2004-04-14  4:29 ` Len Brown
  -- strict thread matches above, loose matches on Subject: below --
2004-04-19 17:30 Protasevich, Natalie
2004-04-14 16:45 Protasevich, Natalie
     [not found] <A6974D8E5F98D511BB910002A50A6647615F888E@hdsmsx403.hd.intel.com>
2004-04-13  3:19 ` Len Brown
2004-04-12 20:25 Protasevich, Natalie
2004-04-12 20:50 ` Zwane Mwaikambo
2004-04-12 17:00 Protasevich, Natalie
2004-04-12 17:58 ` Zwane Mwaikambo
2004-04-12 18:31   ` Zwane Mwaikambo
2004-04-06 15:08 Protasevich, Natalie
2004-04-05 16:12 Protasevich, Natalie
2004-04-06  6:30 ` Andrew Morton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox