From owner-acpi-jp@jp.FreeBSD.org Sat Dec 21 05:09:17 2002
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) id gBKK9H658941;
	Sat, 21 Dec 2002 05:09:17 +0900 (JST)
	(envelope-from owner-acpi-jp@jp.FreeBSD.org)
Received: from smtp.web.de (smtp02.web.de [217.72.192.151])
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) with ESMTP/inet id gBKK9E258936
	for <acpi-jp@jp.freebsd.org>; Sat, 21 Dec 2002 05:09:15 +0900 (JST)
	(envelope-from lukas.kaminski@web.de)
Received: from [217.233.212.94] (helo=duron.mynet.home)
	by smtp.web.de with asmtp (WEB.DE(Exim) 4.93 #1)
	id 18PTRx-0008Su-00; Fri, 20 Dec 2002 21:08:49 +0100
Received: from kaminski by duron.mynet.home with local (Exim 3.36 #1 (Debian))
	id 18PTSJ-0000BZ-00; Fri, 20 Dec 2002 21:09:11 +0100
From: Lukas Kaminski <lukas.kaminski@web.de>
User-Agent: KMail/1.4.3
MIME-Version: 1.0
To: freebsd-current@freebsd.org
Cc: acpi-jp@jp.FreeBSD.org
Content-Type: Multipart/Mixed;
  boundary="------------Boundary-00=_BBPFW5Q4S2KQ9DEFPRK0"
Message-Id: <200212202109.11570.lukas.kaminski@web.de>
Reply-To: acpi-jp@jp.FreeBSD.org
Precedence: list
Date: Fri, 20 Dec 2002 21:09:11 +0100
X-Sequence: acpi-jp 2046
Subject: [acpi-jp 2046] ACPI Poweroff fails
Errors-To: owner-acpi-jp@jp.FreeBSD.org
Sender: owner-acpi-jp@jp.FreeBSD.org
X-Originator: lukas.kaminski@web.de
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+021210


--------------Boundary-00=_BBPFW5Q4S2KQ9DEFPRK0
Content-Type: text/plain;
  charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hello everyone !

If i press the poweroff-button on my machine, the shutdown is initialised=
=20
correctly, but then, instead of powering off, this message is displayed o=
n=20
the console :=20

Power system off using ACPI...
=09ACPI-1287: *** Error: Method execution failed, AE_AML_UNINITIALIZED_LO=
CAL
=09ACPI-1287: *** Error: Method execution failed, AE_AML_UNINITIALIZED_LO=
CAL
AcpiEnterSleepStatePrep failed - AE_AML_UNINITIALIZED_LOCAL

The operating system has halted.
Please press any key to reboot.


I've posted this problem already a few weeks ago, but now i've a recent k=
ernel=20
(cvsup'ed 20 minutes ago) and the newest acpi-patch applied=20
(acpica-20021118-20021122-test20021128.diff).
Along comes the dmesg output of my Machine, my kernel options, and the=20
acpidump output. (hope this helps)


--------------Boundary-00=_BBPFW5Q4S2KQ9DEFPRK0
Content-Type: text/plain;
  charset="us-ascii";
  name="dmesg.out"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="dmesg.out"

Copyright (c) 1992-2002 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD 5.0-CURRENT #0: Fri Dec 20 20:28:54 CET 2002
    kaminski@duron.mynet.home:/usr/src/sys/i386/compile/MYKERNEL
Preloaded elf kernel "/boot/kernel/kernel" at 0xc04c9000.
Preloaded elf module "/boot/kernel/linux.ko" at 0xc04c90a8.
Preloaded elf module "/boot/kernel/acpi.ko" at 0xc04c9154.
Timecounter "i8254"  frequency 1193182 Hz
Timecounter "TSC"  frequency 1200023667 Hz
CPU: AMD Duron(tm) processor (1200.02-MHz 686-class CPU)
  Origin = "AuthenticAMD"  Id = 0x671  Stepping = 1
  Features=0x383fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
  AMD Features=0xffffffffc0400000<AMIE,DSP,3DNow!>
real memory  = 536805376 (511 MB)
avail memory = 516288512 (492 MB)
Initializing GEOMetry subsystem
Pentium Pro MTRR support enabled
VESA: v3.0, 65536k memory, flags:0x1, mode table:0xc03e3882 (1000022)
VESA: NVidia
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <VT8366 MSI ACPI> on motherboard
    ACPI-0628: *** Info: GPE Block0 defined as GPE0 to GPE15
Using $PIR table, 6 entries at 0xc00fdd40
acpi0: power button is handled as a fixed feature programming model.
Timecounter "ACPI-fast"  frequency 3579545 Hz
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0
acpi_cpu0: <CPU> on acpi0
acpi_tz0: <thermal zone> on acpi0
acpi_button0: <Power Button> on acpi0
acpi_button1: <Sleep Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0x5000-0x500f,0x4080-0x40ff,0x4000-0x407f,0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib1: <PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pci1: <display, VGA> at device 0.0 (no driver attached)
bktr0: <BrookTree 878> mem 0xe7002000-0xe7002fff irq 9 at device 6.0 on pci0
bktr0: Warning - card vendor 0x1002 (model 0x0003) unknown.
bktr0: Pinnacle/Miro TV, Philips PAL tuner.
pci0: <multimedia> at device 6.1 (no driver attached)
rl0: <RealTek 8139 10/100BaseTX> port 0xa000-0xa0ff mem 0xe7001000-0xe70010ff irq 11 at device 7.0 on pci0
rl0: Realtek 8139B detected. Warning, this may be unstable in autoselect mode
rl0: Ethernet address: 00:50:bf:7a:54:9a
miibus0: <MII bus> on rl0
rlphy0: <RealTek internal media interface> on miibus0
rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
isab0: <PCI-ISA bridge> at device 17.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <VIA 8233 ATA100 controller> port 0xa400-0xa40f at device 17.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
uhci0: <VIA 83C572 USB controller> port 0xa800-0xa81f irq 11 at device 17.2 on pci0
usb0: <VIA 83C572 USB controller> on uhci0
usb0: USB revision 1.0
uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1: <VIA 83C572 USB controller> port 0xac00-0xac1f irq 11 at device 17.3 on pci0
usb1: <VIA 83C572 USB controller> on uhci1
usb1: USB revision 1.0
uhub1: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
pcm0: <VIA VT8233 (pre)> port 0xb400-0xb4ff irq 11 at device 17.5 on pci0
sio0 port 0x3f8-0x3ff irq 4 on acpi0
sio0: type 16550A
sio1 port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A
ppc0 port 0xf78-0xf7b,0xb78-0xb7b,0x778-0x77b,0x378-0x37f irq 7 on acpi0
ppc0: Generic chipset (EPP/NIBBLE) in COMPATIBLE mode
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
atkbdc0: <Keyboard controller (i8042)> port 0x64,0x60 irq 1 on acpi0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/2 mouse, device ID 0
joy0 port 0x200-0x207 on acpi0
pmtimer0 on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
fb0 at vga0
Timecounters tick every 10.000 msec
acpi_cpu: CPU throttling enabled, 2 steps from 100% to 50.0%
ad0: 76351MB <SAMSUNG SP8004H> [155127/16/63] at ata0-master UDMA100
ad1: 8063MB <Maxtor 90845D4> [16383/16/63] at ata1-slave UDMA33
MBREXT Slice 5 on ad0s2:
0000   00 01 c1 0f 0b fe bf 72 3f 00 00 00 25 de b6 06  |.......r?...%...|
[0] f:00 typ:11 s(CHS):15/1/193 e(CHS):114/254/191 s:63 l:112647717
0000   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
[1] f:00 typ:0 s(CHS):0/0/0 e(CHS):0/0/0 s:0 l:0
Mounting root from ufs:/dev/ad0s3a

--------------Boundary-00=_BBPFW5Q4S2KQ9DEFPRK0
Content-Type: application/octet-stream;
  name="acpi.dsdt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="acpi.dsdt"

RFNEVGU2AAABJ1ZUODM2Nk1TSSBBQ1BJABAAAE1TRlQMAAABEBlcX1BSX1uDEVwuX1BSX0NQVTAA
AAAAAABbgENNNzIBCnAKAluBEENNNzIBQ0k3MghDTzczCFuGEkNJNzJDTzczAQBIIVNVU0YICFNU
QVQKAAhcX1MwXxIKBAoACgAKAAoACFxfUzFfEgoECgQKBAoECgR7U1VTRgoBU1RBVAhcX1M0XxIK
BAoCCgIKAgoCCFxfUzVfEgoECgIKAgoCCgJbgFxERUJHAQqACgFbgQxcREVCRwFEQkcxCFuARVhU
TQAMMPgPAAoQW4EpRVhUTQJST00xEFJNUzEQUk9NMhBSTVMyEFJPTTMQUk1TMxBBTUVNIFuARUxD
UgEL0AQKAluBEEVMQ1IBRUxDMQhFTEMyCFuAXFBNU18BCwBACgJbgRpcUE1TXwFBSVRTAQAHUEJU
UwEABldBS0UBW4BcR1BTVAELIEAKBFuBTghcR1BTVAFHUzAwAUdTMDEBR1MwMgFHUzAzAUdTMDQB
R1MwNQFHUzA2AUdTMDcBR1MwOAFHUzA5AUdTMEEBR1MwQgFHUzBDAQADR0UwMAFHRTAxAUdFMDIB
R0UwMwFHRTA0AUdFMDUBR0UwNgFHRTA3AUdFMDgBR0UwOQFHRTBBAUdFMEIBR0UwQwEAA1uAXEdQ
U0UBCyRACgJbgTVcR1BTRQFHUFMwAUdQUzEBS0JDRQFMQU5FAUVYVEUBUE1FXwEAAlJJTkcBAAVV
U0JFAQABW4BcR0xPUwELKEAKAluBIVxHTE9TAQAGU1NNSQFQUklJAQACU0xQRQFTSVJTAQAEW4Bc
V0lSUQELKkAKAVuBDFxXSVJRAUlSUVIIW4BcU01JQwELL0AKAVuBDFxTTUlDAVNDUF8IW4BcU1RV
UwELMEAKAVuBDFxTVFVTAVBBRFMIW4BHUE9CAQtMQAoEW4FHCkdQT0IBR1AwMAFHUDAxAUdQMDIB
R1AwMwFHUDA0AUdQMDUBR1AwNgFHUDA3AUdQMDgBR1AwOQFHUDEwAUdQMTEBR1AxMgFHUDEzAUdQ
MTQBR1AxNQFHUDE2AUdQMTcBR1AxOAFHUDE5AUdQMjABR1AyMQFHUDIyAUdQMjMBR1AyNAFHUDI1
AUdQMjYBR1AyNwFHUDI4AUdQMjkBR1AzMAFHUFhYAQhPU0ZMCgEUQQVTVFJDAqAKkpOHaIdppAoA
codoCgFgCEJVRjARAmAIQlVGMRECYHBoQlVGMHBpQlVGMaIaYHZgoBWSk4OIQlVGMGAAg4hCVUYx
YACkAKQBW4BSVENNAQpwCgJbgRBSVENNAUNNSU4IQ01EQQhbhhJDTUlOQ01EQQEASAdTSFVUCFuA
XEdSQU0ACwAECwABW4EXXEdSQU0BAEAIRkxHMAgASFRTRkxHCFuASU5GTwAMQPgPAAoBW4EkSU5G
TwFLQkRJAVJUQ1cBUFMyRgFJUkZMAkRJU0UBU1NIVQFbgEJFRVABCmEKAVuBC0JFRVABUzFCXwhb
gENPTlQBCkAKBFuBGkNPTlQBQ05UMAhDTlQxCENOVDIIQ1RSTAgUQwZTUEtSAXBTMUJfYHAKtkNU
UkxwClVDTlQycAoDQ05UMnBoYqI3lGIKAH1TMUJfCgNTMUJfcAv/X2OiB5RjCgB2Y3tTMUJfCvxT
MUJfcAv/DmOiB5RjCgB2Y3ZicGBTMUJfEBdcAAhQSUNGCgAUDF9QSUMBcGhQSUNGFE8IXF9QVFMB
fWgK8GBwYERCRzGgOZNoCgFTQUxEaFNGQU4AogtQUklJcAFQUklJohKSk1BBRFMKAHBQQURTUEFE
U31JUlFSCoBJUlFSoBWTaAoDfWgKUGFwYVNDUF9TQUxEaKAQk2gKBXAAR0UwNFNBTERooAWTaAoB
oAWTaAoDoAqTaAoEWyIL0AdbIgpkFEQMXF9XQUsBcAr/REJHMaAFk2gKAaAFk2gKA1NBTEQKAKIO
kpNHUzA0AHABR1MwNKA1k2gKAVNGQU4K/3tJUlFSCn9JUlFSogtQUklJcAFQUklJohKSk1BBRFMK
AHBQQURTUEFEU4ZcLwNfU0JfUENJMFVBUjEKAIZcLwNfU0JfUENJMFVBUjIKAIZcLwNfU0JfUENJ
MExQVDEKAIZcLwNfU0JfUENJMEVDUDEKAKAVk1JUQ1cKAIZcLl9TQl9QV1JCCgIQK1xfU0lfFAlf
TVNHAXBgYBQaX1NTVAGgBZNoCgOgBZNoCgGgBJNoAHBgYFuAVEVNTQAMEPgPAAoMW4EkVEVNTQJU
UDFIEFRQMUwQVFAySBBUUDJMEFRSUEMQU0VORhAIVFZBUhEICgUAAAAAAIxUVkFSCgBQTENZi1RW
QVIKAUNUT1OLVFZBUgoDQ1RIWQhUQlVGEQcKBAAAAACMVEJVRgoAREIwMIxUQlVGCgFEQjAxi1RC
VUYKAERXMDCLVEJVRgoCRFcwMYpUQlVGCgBEQVREW4BJUF9fAQuVAgoCW4EQSVBfXwFJTkRYCERB
VDAIFA1TQ0ZHAVNCWVQKQGgUL1NUT1MDcEdCWVQKTmB9YAoBYVNCWVQKTmFTQllUClVpU0JZVApW
aFNCWVQKTmAUL1NUSFkDcEdCWVQKTmB9YAoBYVNCWVQKTmFTQllUClNpU0JZVApUaFNCWVQKTmAU
SAdSVE1QAHBHQllUCk5gfWAKAWFTQllUCk5hcEdCWVQKUGFwR0JZVApRYnlhCghhfWFiY3pjCgdj
eWMKAmFyY2FjcmMLrApjoAuUYwuUDnALrApjoA6TVFJQQwuVDnALrApjoAuTYwusCnALhgtjU0JZ
VApOYKRjFBJTQllUAnBoSU5EWHBpREFUMBQUR0JZVAFwaElORFhwREFUMGekZxQUU0ZBTgFTQllU
ClpoU0JZVApaaBBNElxfVFpfW4IoRkFOXwhfSElEDEHQDAsUGF9JTkkAcFRQMUhDVE9TcFRQMUxD
VEhZW4VKD1RIUk0IX0FMMBIGAUZBTl8UHl9BQzAAoBB9UExDWVBMQ1lnpFRQMkihBqRUUDFICF9Q
U0wSDAFcLl9QUl9DUFUwCF9UU1AKPAhfVEMxCgQIX1RDMgoDFB5fUFNWAKAQfVBMQ1lQTENZZ6RU
UDFIoQakVFAySBQLX0NSVACkVFJQQxQfX1RNUAB7U0VORgoBZqAKk2YKAaRSVE1QoQWkC4YLFCRf
U0NQAaAIaHABUExDWaEHcABQTENZhlwuX1RaX1RIUk0KgRQxU1RNUAJwaURXMDCgEmhTVEhZREIw
MERCMDFEVzAwoRFTVE9TREIwMERCMDFEVzAwEEEGXF9HUEUUE19MMDUAhlwuX1NCX1BDSTAKAhQY
X0wwOACGXC8DX1NCX1BDSTBVQVIxCgIUGF9MMDkAhlwvA19TQl9QQ0kwVVNCMAoCFBNfTDA0AIZc
Ll9TQl9TTFBCCoAQhMUCXF9TQl9bghlQV1JCCF9ISUQMQdAMDBQJX1NUQQCkCgtbgiVTTFBCCF9I
SUQMQdAMDhQJX1NUQQCkCgsIX1BSVxIGAgoECgVbgkYdTUVNXwhfSElEDEHQDAEURRxfQ1JTAAhC
VUYwEUoICoaGCQABAAAPAABAAACGCQABAEAPAABAAACGCQABAIAPAABAAACGCQABAMAPAABAAACG
CQABAAAAAAAAAQCGCQABAAD//wAAAQCGCQABAAAAAAAACgCGCQABAAAQAAAAAACGCQABAADA/gAQ
AACGCQABAADg/gAQAACGCQABAAD4/wAABwB5AIpCVUYwCjRBQ01NikJVRjAKBFJNQTGKQlVGMAoI
UlNTMYpCVUYwChBSTUEyikJVRjAKFFJTUzKKQlVGMAocUk1BM4pCVUYwCiBSU1MzikJVRjAKKFJN
QTSKQlVGMAosUlNTNIpCVUYwClxFWFRNdEFNRU0MAAAQAEVYVE2gNZKTUk9NMQBwUk1BMVJNQTJ5
Uk9NMQoIYHBgUk1BMXlSTVMxCghgcGBSU1MxcAsAgFJTUzKgNZKTUk9NMgBwUk1BMlJNQTN5Uk9N
MgoIYHBgUk1BMnlSTVMyCghgcGBSU1MycAsAwFJTUzOgN5KTUk9NMwBwUk1BM1JNQTR5Uk9NMwoI
YHBgUk1BM3lSTVMzCghgcGBSU1MzcAwAAAEAUlNTNHBBTUVNQUNNTaRCVUYwW4KAowJQQ0kwCF9I
SUQMQdAKAwhfQURSCgAIU1MzRAoCW4BHQVJUAgqACgEQG1wAW4EWXC8DX1NCX1BDSTBHQVJUAUdB
UjEIW4BHQVJBAgqICgEQG1wAW4EWXC8DX1NCX1BDSTBHQVJBAUdBUjIIFAlfU1RBAKQKDxRIEF9D
UlMACEJVRjARRAwKwIgNAAIBAAAAAAD/AAAAAAFHAfgM+AwBCIgNAAEMAwAAAAD3DAAA+AyIDQAB
DAMAAAAN/z8AAAAzRwEAQABAAYBHAYBAgEABgIgNAAEMAwAAAEH/TwAA/w5HAQBQAFABEIgNAAEM
AwAAEFD//wAA76+HFwAADAMAAAAAAAAKAP//CwAAAAAAAAACAIcXAAAMAwAAAAAAAAwA//8NAAAA
AAAAAAIAhxcAAAwDAAAAAAAAEAD//+//AAAAAAAA8P95AIpCVUYwCq5UQ01NikJVRjAKulRPTU1y
QU1FTQwAAAEAVENNTXQMAADw/1RDTU1UT01NpEJVRjAIUElDTRJHLxwSGgQM//8FAAoAXC8DX1NC
X1BDSTBMTktBCgASGgQM//8FAAoBXC8DX1NCX1BDSTBMTktCCgASGgQM//8FAAoCXC8DX1NCX1BD
STBMTktDCgASGgQM//8FAAoDXC8DX1NCX1BDSTBMTktECgASGgQM//8GAAoAXC8DX1NCX1BDSTBM
TktCCgASGgQM//8GAAoBXC8DX1NCX1BDSTBMTktDCgASGgQM//8GAAoCXC8DX1NCX1BDSTBMTktE
CgASGgQM//8GAAoDXC8DX1NCX1BDSTBMTktBCgASGgQM//8HAAoAXC8DX1NCX1BDSTBMTktDCgAS
GgQM//8HAAoBXC8DX1NCX1BDSTBMTktECgASGgQM//8HAAoCXC8DX1NCX1BDSTBMTktBCgASGgQM
//8HAAoDXC8DX1NCX1BDSTBMTktCCgASGgQM//8IAAoAXC8DX1NCX1BDSTBMTktECgASGgQM//8I
AAoBXC8DX1NCX1BDSTBMTktBCgASGgQM//8IAAoCXC8DX1NCX1BDSTBMTktCCgASGgQM//8IAAoD
XC8DX1NCX1BDSTBMTktDCgASGgQM//8RAAoAXC8DX1NCX1BDSTBMTktBCgASGgQM//8RAAoBXC8D
X1NCX1BDSTBMTktCCgASGgQM//8RAAoCXC8DX1NCX1BDSTBMTktDCgASGgQM//8RAAoDXC8DX1NC
X1BDSTBMTktECgASGgQM//8BAAoAXC8DX1NCX1BDSTBMTktBCgASGgQM//8BAAoBXC8DX1NCX1BD
STBMTktCCgASGgQM//8BAAoCXC8DX1NCX1BDSTBMTktDCgASGgQM//8BAAoDXC8DX1NCX1BDSTBM
TktECgASGgQM//8SAAoAXC8DX1NCX1BDSTBMTktBCgASGgQM//8SAAoBXC8DX1NCX1BDSTBMTktC
CgASGgQM//8SAAoCXC8DX1NCX1BDSTBMTktDCgASGgQM//8SAAoDXC8DX1NCX1BDSTBMTktECgAI
QVBJQxJDHxwSDQQM//8FAAoACgAKEBINBAz//wUACgEKAAoREg0EDP//BQAKAgoAChISDQQM//8F
AAoDCgAKExINBAz//wYACgAKAAoREg0EDP//BgAKAQoAChISDQQM//8GAAoCCgAKExINBAz//wYA
CgMKAAoQEg0EDP//BwAKAAoAChISDQQM//8HAAoBCgAKExINBAz//wcACgIKAAoQEg0EDP//BwAK
AwoAChESDQQM//8IAAoACgAKExINBAz//wgACgEKAAoQEg0EDP//CAAKAgoAChESDQQM//8IAAoD
CgAKEhIaBAz//xEACgBcLwNfU0JfUENJMExOS0EKABIaBAz//xEACgFcLwNfU0JfUENJMExOS0IK
ABIaBAz//xEACgJcLwNfU0JfUENJMExOS0MKABIaBAz//xEACgNcLwNfU0JfUENJMExOS0QKABIN
BAz//wEACgAKAAoQEg0EDP//AQAKAQoAChESDQQM//8BAAoCCgAKEhINBAz//wEACgMKAAoTEhoE
DP//EgAKAAoAXC8DX1NCX1BDSTBMTktBEhoEDP//EgAKAQoAXC8DX1NCX1BDSTBMTktCEhoEDP//
EgAKAgoAXC8DX1NCX1BDSTBMTktDEhoEDP//EgAKAwoAXC8DX1NCX1BDSTBMTktEFBlfUFJUAKAL
klBJQ0akUElDTaEGpEFQSUNbgkcFVlQ4NghfQURSDAAAEQBbgFZUU0ICCgAK6BA7XABbgTZcLwRf
U0JfUENJMFZUODZWVFNCAQBAKVNJUlEIABBQSVJBCFBJQkMIUElSRAgAQB5QV0MxCFuCS3FJREUw
CF9BRFIMAQARAAhSRUdGCgEUEl9SRUcCoAuTaAoCcGlSRUdGCFRJTTASTgoMEgsECngKtArwC4QD
EgoECiAKMQplCqgSEggKAgoBCgAKAAoACgAKAAoAEhIICgQKAwoCCgIKAQoBCgAKABIOBgpwCkkK
NgonChkKFBIMBQoCCgEKAAoACgASDAUKBgoECgIKAQoAEgwFCgAKAAoACgEKARIKBAoECgMKAgoA
EgoECgIKAQoACgASEggKBQoECgMKAgoCCgEKAQoAEg4GCgcKBgoECgIKAQoACFRNRDARAwoUilRN
RDAKAFBJTzCKVE1EMAoERE1BMIpUTUQwCghQSU8xilRNRDAKDERNQTGKVE1EMAoQQ0hORluAQ0ZH
MgIKQAogW4FKBUNGRzIDAEAEU1NQVAhTTVBUCFBTUFQIUE1QVAgAIFNTVVQDU0NCQwEAAVNTVUUD
U01VVAMAAlNNVUUDUFNVVANQQ0JDAQABUFNVRQNQTVVUAwACUE1VRQMIR01QVAoACEdNVUUKAAhH
TVVUCgAIR1NQVAoACEdTVUUKAAhHU1VUCgAIR0JDUwoAW4JNEUNITjAIX0FEUgoAFCdfR1RNAKRH
VE1fUE1QVFBNVUVQTVVUUFNQVFBTVUVQU1VUUENCQxRPCF9TVE0DcGhUTUQwcFBNUFRHTVBUcFBN
VUVHTVVFcFBNVVRHTVVUcFBTUFRHU1BUcFBTVUVHU1VFcFBTVVRHU1VUcFBDQkNHQkNTU1RNX3BH
TVBUUE1QVHBHTVVFUE1VRXBHTVVUUE1VVHBHU1BUUFNQVHBHU1VFUFNVRXBHU1VUUFNVVHBHQkNT
UENCQ1uCKkRSVjAIX0FEUgoAFB1fR1RGAKRHVEZfCgBQTVVFUE1VVFBNUFRQQ0JDW4IqRFJWMQhf
QURSCgEUHV9HVEYApEdURl8KAVBTVUVQU1VUUFNQVFBDQkNbgk0RQ0hOMQhfQURSCgEUJ19HVE0A
pEdUTV9TTVBUU01VRVNNVVRTU1BUU1NVRVNTVVRTQ0JDFE8IX1NUTQNwaFRNRDBwU01QVEdNUFRw
U01VRUdNVUVwU01VVEdNVVRwU1NQVEdTUFRwU1NVRUdTVUVwU1NVVEdTVVRwU0NCQ0dCQ1NTVE1f
cEdNUFRTTVBUcEdNVUVTTVVFcEdNVVRTTVVUcEdTUFRTU1BUcEdTVUVTU1VFcEdTVVRTU1VUcEdC
Q1NTQ0JDW4IqRFJWMAhfQURSCgAUHV9HVEYApEdURl8KAlNNVUVTTVVUU01QVFBDQkNbgipEUlYx
CF9BRFIKARQdX0dURgCkR1RGXwoDU1NVRVNTVVRTU1BUUENCQxREDUdURl8NcBEKCgcDAAAAAKDv
YXARCgoHAwAAAACg72KMYQoBTU9ERYxiCgFVTU9EjGEKBVBDSEGMYgoFVUNIQXtoCgNjoBeTe2MK
AQAKAXAKsFBDSEFwCrBVQ0hBoB9pcIOIg4hUSU0wCgoAagBVTU9EfVVNT0QKQFVNT0ShKHCJg4hU
SU0wCgEAAWsACgAKAGB9CiCDiIOIVElNMAoJAGAAVU1PRHCJg4hUSU0wCgEAAWsACgAKAGB9CgiD
iIOIVElNMAoIAGAATU9ERXNhYmakZhRCD0dUTV8PcP9QSU8wcP9QSU8xcP9ETUEwcP9ETUExcAoQ
Q0hORqAFUkVHRqEGpFRNRDBwiYOIVElNMAoBAAFoAAoACgBmcIOIg4hUSU0wCgAAZgBncGdETUEw
cGdQSU8wcImDiFRJTTAKAQABawAKAAoAZnCDiIOIVElNMAoAAGYAZ3BnRE1BMXBnUElPMaAuaXCD
iIOIVElNMAoKAGoAZXCDiIOIVElNMAoEAGUARE1BMH1DSE5GCgFDSE5GoC5scIOIg4hUSU0wCgoA
bQBlcIOIg4hUSU0wCgQAZQBETUExfUNITkYKBENITkakVE1EMBROFVNUTV8IoAVSRUdGoQakVE1E
MHAKAEdNVUVwCgBHU1VFcAoHR01VVHAKB0dTVVSgPHtDSE5GCgEAcImDiFRJTTAKBAACRE1BMAAK
AAoAYHCDiIOIVElNMAoLAGAAR01VVH1HTVVFCgNHTVVFoSygKn2TUElPMP+TUElPMAoAAKAZe5VE
TUEw/5RETUEwCgAAcERNQTBQSU8woDx7Q0hORgoEAHCJg4hUSU0wCgQAAkRNQTEACgAKAGBwg4iD
iFRJTTAKCwBgAEdTVVR9R01VRQoDR01VRaEsoCp9k1BJTzH/k1BJTzEKAACgGXuVRE1BMf+URE1B
MQoAAHBETUExUElPMXuJg4hUSU0wCgAABFBJTzAACgAKAAoDYHCDiIOIVElNMAoBAGAAYXBhR01Q
VHuJg4hUSU0wCgAABFBJTzEACgAKAAoDYHCDiIOIVElNMAoBAGAAYXBhR1NQVFuCIlVTQjAIX0FE
UgwCABEACF9QUlcSBgIKCQoFCFNTM0QKAluCIlVTQjEIX0FEUgwDABEACF9QUlcSBgIKCQoFCFNT
M0QKAluCIlVTQjIIX0FEUgwEABEACF9QUlcSBgIKCQoFCFNTM0QKAluCD0FVREkIX0FEUgwFABEA
W4IbTU9ETQhfQURSDAYAEQAIX1BSVxIGAgoNCgUQGFwAFAZESVNEARQGQ0tJTwIUBlNMRE0CW4JN
EkxOS0EIX0hJRAxB0AwPCF9VSUQKARQcX1NUQQB7UElSQQrwYKAIk2AKAKQKCaEEpAoLFBpfUFJT
AAhCVUZCEQkKBiP63Bh5AKRCVUZCFBFfRElTAHtQSVJBCg9QSVJBFEQHX0NSUwAIQlVGQhEJCgYj
AAAYeQCMQlVGQgoBSVJCMYxCVUZCCgJJUkIycAoAY3AKAGR7UElSQQrwYXphCgRhoC2Sk2EKAKAO
lGEKB3RhCghieQFiZKELoAmUYQoAeQFhY3BjSVJCMXBkSVJCMqRCVUZCFEYFX1NSUwGMaAoBSVJC
MYxoCgJJUkIyeUlSQjIKCGB9YElSQjFgcAoAYXpgCgFgogyUYAoAdWF6YAoBYHtQSVJBCg9QSVJB
eWEKBGF9UElSQWFQSVJBW4JDEkxOS0IIX0hJRAxB0AwPCF9VSUQKAhQcX1NUQQB7UElCQwoPYKAI
k2AKAKQKCaEEpAoLFBpfUFJTAAhCVUZBEQkKBiP63Bh5AKRCVUZBFBFfRElTAHtQSUJDCvBQSUJD
FE8GX0NSUwAIQlVGQREJCgYjAAAYeQCMQlVGQQoBSVJBMYxCVUZBCgJJUkEycAoAY3AKAGR7UElC
QwoPYaAtkpNhCgCgDpRhCgd0YQoIYnkBYmShC6AJlGEKAHkBYWNwY0lSQTFwZElSQTKkQlVGQRRB
BV9TUlMBjGgKAUlSQTGMaAoCSVJBMnlJUkEyCghgfWBJUkExYHAKAGF6YAoBYKIMlGAKAHVhemAK
AWB7UElCQwrwUElCQ31QSUJDYVBJQkNbgk0STE5LQwhfSElEDEHQDA8IX1VJRAoDFBxfU1RBAHtQ
SUJDCvBgoAiTYAoApAoJoQSkCgsUGl9QUlMACEJVRkMRCQoGI/rcGHkApEJVRkMUEV9ESVMAe1BJ
QkMKD1BJQkMURAdfQ1JTAAhCVUZDEQkKBiMAABh5AIxCVUZDCgFJUkMxjEJVRkMKAklSQzJwCgBj
cAoAZHtQSUJDCvBhemEKBGGgLZKTYQoAoA6UYQoHdGEKCGJ5AWJkoQugCZRhCgB5AWFjcGNJUkMx
cGRJUkMypEJVRkMURgVfU1JTAYxoCgFJUkMxjGgKAklSQzJ5SVJDMgoIYH1gSVJDMWBwCgBhemAK
AWCiDJRgCgB1YXpgCgFge1BJQkMKD1BJQkN5YQoEYX1QSUJDYVBJQkNbgk0STE5LRAhfSElEDEHQ
DA8IX1VJRAoEFBxfU1RBAHtQSVJECvBgoAiTYAoApAoJoQSkCgsUGl9QUlMACEJVRkQRCQoGI/rc
GHkApEJVRkQUEV9ESVMAe1BJUkQKD1BJUkQURAdfQ1JTAAhCVUZEEQkKBiMAABh5AIxCVUZECgFJ
UkQxjEJVRkQKAklSRDJwCgBjcAoAZHtQSVJECvBhemEKBGGgLZKTYQoAoA6UYQoHdGEKCGJ5AWJk
oQugCZRhCgB5AWFjcGNJUkQxcGRJUkQypEJVRkQURgVfU1JTAYxoCgFJUkQxjGgKAklSRDJ5SVJE
MgoIYH1gSVJEMWBwCgBhemAKAWCiDJRgCgB1YXpgCgFge1BJUkQKD1BJUkR5YQoEYX1QSVJEYVBJ
UkQUQwZcLwNfU0JfUENJMF9JTkkAoB1TVFJDXF9PU18NTWljcm9zb2Z0IFdpbmRvd3MAoTKgJ1NU
UkNcX09TXw1NaWNyb3NvZnQgV2luZG93cyBOVABwCgBPU0ZMoQhwCgJPU0ZMW4JLB1NZU1IIX0hJ
RAxB0AwCCF9VSUQKAQhfQ1JTEU4FClpHARAAEAABEEcBIgAiAAEeRwFEAEQAARxHAWIAYgABAkcB
ZQBlAAELRwF0AHQAAQxHAZEAkQABA0cBogCiAAEeRwHgAOAAARBHAdAE0AQBAkcBlAKUAgEEeQBb
gitQSUNfCF9ISUQLQdAIX0NSUxEYChVHASAAIAABAkcBoACgAAECIgQAeQBbgj1ETUExCF9ISUQM
QdACAAhfQ1JTESgKJSoQBEcBAAAAAAEQRwGAAIAAARFHAZQAlAABDEcBwADAAAEgeQBbgiVUTVJf
CF9ISUQMQdABAAhfQ1JTERAKDUcBQABAAAEEIgEAeQBbgiVSVENfCF9ISUQMQdALAAhfQ1JTERAK
DUcBcABwAAQEIgABeQBbgiJTUEtSCF9ISUQMQdAIAAhfQ1JTEQ0KCkcBYQBhAAEBeQBbgiVDT1BS
CF9ISUQMQdAMBAhfQ1JTERAKDUcB8ADwAAEQIgAgeQAQRA1cAFuAV0lOMQEKLgoCW4EQV0lOMQFJ
TkRTCERBVEEIW4ZOCElORFNEQVRBAQAQQ0ZHXwgAIExETl8IAEAMSURISQhJRExPCFBPV0MIAEgG
QUNUUggASBdJT0FICElPQUwISU8ySAhJTzJMCABABklOVFIIAAhJTlQxCAAIRE1DSAgASCVHUDQw
CABIF09QVDEIT1BUMghPUFQzCE9QVDQIT1BUNQhPUFQ2CE9QVDcIFBRFTkZHAHAKh0lORFNwCodJ
TkRTFA1FWEZHAHAKqklORFNbgkYVRkRDMAhfSElEDEHQBwAUOl9TVEEARU5GR3AATEROX6AMQUNU
UkVYRkekCg+hHKARkUlPQUhJT0FMRVhGR6QKDaEIRVhGR6QKABQrX0RJUwBFTkZHcAoATEROX3AA
QUNUUlNMRE1ETUNICgRFWEZHRElTRAoDFEEGX0NSUwAIQlVGMBEbChhHAfID8gMBBEcB9wP3AwEB
IkAAKgQAeQCMQlVGMAoCSU9MT4xCVUYwCgNJT0hJjEJVRjAKBElPUkyMQlVGMAoFSU9SSEVORkdF
WEZHpEJVRjAIX1BSUxEdChowRwHyA/IDAQRHAfcD9wMBASJAACoEADh5ABRJBV9TUlMBjGgKAklP
TE+MaAoDSU9ISYtoCgJJT0FEi2gKGUlSUUyMaAocRE1BVkVORkdwAExETl9wAUFDVFJTTERNRE1D
SERNQ0hFWEZHQ0tJT0lPQUQKA1uCRhtVQVIxCF9ISUQMQdAFAQhfVUlECgEUP19TVEEARU5GR3AK
AkxETl+gDEFDVFJFWEZHpAoPoRygEZFJT0FISU9BTEVYRkekCg2hCEVYRkekCgBFWEZHFCFfRElT
AEVORkdwCgJMRE5fcABBQ1RSRVhGR0RJU0QKABRJCV9DUlMACEJVRjEREAoNRwEAAAAACAgiAAB5
AIxCVUYxCgJJT0xPjEJVRjEKA0lPSEmMQlVGMQoESU9STIxCVUYxCgVJT1JIi0JVRjEKCUlSUVdF
TkZHcAoCTEROX3BJT0FMSU9MT3BJT0FMSU9STHBJT0FISU9ISXBJT0FISU9SSHABYHlgSU5UUklS
UVdFWEZHpEJVRjEIX1BSUxE2CjMwRwH4A/gDCAgiEAwwRwH4AvgCCAgiCAwwRwHoA+gDCAgiuB4w
RwHoAugCCAgiuB44eQAURgZfU1JTAYxoCgJJT0xPjGgKA0lPSEmLaAoCSU9BRItoCglJUlFXRU5G
R3AKAkxETl9wAUFDVFJwSU9MT0lPQUxwSU9ISUlPQUiCSVJRV2B0YAoBSU5UUkVYRkdDS0lPSU9B
RAoAW4JJHVVBUjIIX0hJRAxB0AUBCF9VSUQKAhREBV9TVEEARU5GR3AKA0xETl97T1BUMgowYKAw
kpNgChCgDEFDVFJFWEZHpAoPoRygEZFJT0FISU9BTEVYRkekCg2hCEVYRkekCgChCEVYRkekCgAU
L19ESVMARU5GR3AKA0xETl97T1BUMgo4YKALk2AKAHAAQUNUUkVYRkdESVNECgEUSQlfQ1JTAAhC
VUYyERAKDUcBAAAAAAgIIhAAeQCMQlVGMgoCSU9MT4xCVUYyCgNJT0hJjEJVRjIKBElPUkyMQlVG
MgoFSU9SSItCVUYyCglJUlFXRU5GR3AKA0xETl9wSU9BTElPTE9wSU9BTElPUkxwSU9BSElPSElw
SU9BSElPUkhwAWB5YElOVFJJUlFXRVhGR6RCVUYyCF9QUlMRNgozMEcB+AP4AwgIIhAMMEcB+AL4
AggIIggMMEcB6APoAwgIIrgeMEcB6ALoAggIIrgeOHkAFEYGX1NSUwGMaAoCSU9MT4xoCgNJT0hJ
i2gKAklPQUSLaAoJSVJRV0VORkdwCgNMRE5fcAFBQ1RScElPTE9JT0FMcElPSElJT0FIgklSUVdg
dGAKAUlOVFJFWEZHQ0tJT0lPQUQKAVuCQB1JUkRBCF9ISUQMQdAFEBRDBV9TVEEARU5GR3AKA0xE
Tl97T1BUMgowYKAvk2AKEKAMQUNUUkVYRkekCg+hHKARkUlPQUhJT0FMRVhGR6QKDaEIRVhGR6QK
AKEIRVhGR6QKABQwX0RJUwBFTkZHcAoDTEROX3tPUFQyCjhgoAySk2AKAHAAQUNUUkVYRkdESVNE
CgEURwlfQ1JTAAhCVUY0ERAKDUcBAAAAAAgIIgAAeQCMQlVGNAoCSU9MT4xCVUY0CgNJT0hJjEJV
RjQKBElPUkyMQlVGNAoFSU9SSItCVUY0CglJUlFXRU5GR3AKA0xETl9wSU9BTElPTE9wSU9BTElP
UkxwSU9BSElPSElwSU9BSElPUkh5CgFJTlRSSVJRV0VYRkekQlVGNAhfUFJTETYKMzBHAfgD+AMI
CCK4HjBHAfgC+AIICCK4HjBHAegD6AMICCK4HjBHAegC6AIICCK4Hjh5ABRGBl9TUlMBjGgKAklP
TE+MaAoDSU9ISYtoCgJJT0FEi2gKCUlSUVdFTkZHcAoDTEROX3ABQUNUUnBJT0xPSU9BTHBJT0hJ
SU9BSIJJUlFXYHRgCgFJTlRSRVhGR0NLSU9JT0FECgFbgkU1TFBUMQhfSElEDEHQBAAURAVfU1RB
AEVORkdwCgFMRE5fe09QVDEKAmCgMJKTYAoCoAxBQ1RSRVhGR6QKD6EcoBGRSU9BSElPQUxFWEZH
pAoNoQhFWEZHpAoAoQhFWEZHpAoAFCFfRElTAEVORkdwCgFMRE5fcABBQ1RSRVhGR0RJU0QKAhRK
HV9DUlMACEJVRjURKAolRwEAAAAABAhHAQAAAAAEBEcBAAAAAAQERwEAAAAABAQiAAB5AIxCVUY1
CgJJT0xPjEJVRjUKA0lPSEmMQlVGNQoESU9STIxCVUY1CgVJT1JIjEJVRjUKB0lPTEWMQlVGNQoK
SU8yMYxCVUY1CgtJTzIyjEJVRjUKDElPMjOMQlVGNQoNSU8yNIxCVUY1ChJJTzMxjEJVRjUKE0lP
MzKMQlVGNQoUSU8zM4xCVUY1ChVJTzM0jEJVRjUKGklPNDGMQlVGNQobSU80MoxCVUY1ChxJTzQz
jEJVRjUKHUlPNDSLQlVGNQohSVJRV0VORkdwCgFMRE5fcElPQUxJT0xPcElPTE9JT1JMcElPQUhJ
T0hJcElPSElJT1JIcElPQUxJTzIxcElPQUxJTzIzcklPQUgKBElPMjJySU9BSAoESU8yNHBJT0FM
SU8zMXBJT0FMSU8zM3JJT0FICghJTzMycklPQUgKCElPMzRwSU9BTElPNDFwSU9BTElPNDNySU9B
SAoMSU80MnJJT0FICgxJTzQ0oA+TSU9MTwq8cAoESU9MRaEIcAoISU9MRXABYHBJTlRSZXlgZUlS
UVdwAUFDVFJFWEZHpEJVRjUIX1BSUxFDBwpvMEcBeAN4AwQIRwF4B3gHBARHAXgLeAsEBEcBeA94
DwQEIqAAMEcBeAJ4AgQIRwF4BngGBARHAXgKeAoEBEcBeA54DgQEIqAAMEcBvAO8AwQERwG8B7wH
BARHAbwLvAsEBEcBvA+8DwQEIqAAOHkAFEkHX1NSUwGMaAoCSU9MT4xoCgNJT0hJi2gKAklPQUSM
aAoESU9STIxoCgVJT1JIi2gKIUlSUVdFTkZHcAoBTEROX3ABQUNUUnBJT0xPSU9BTHBJT0hJSU9B
SIFJUlFXYHRgCgFgcGBJTlRSRVhGR0NLSU9JT0FECgJbgks5RUNQMQhfSElEDEHQBAEUQwVfU1RB
AEVORkdwCgFMRE5fe09QVDEKAmCgL5NgCgKgDEFDVFJFWEZHpAoPoRygEZFJT0FISU9BTEVYRkek
Cg2hCEVYRkekCgChCEVYRkekCgAUK19ESVMARU5GR3AKAUxETl9wAEFDVFJTTERNRE1DSAoERVhG
R0RJU0QKAhRJH19DUlMACEJVRjYRKwooRwEAAAAABAhHAQAAAAAEBEcBAAAAAAQERwEAAAAABAQi
AAAqAAB5AIxCVUY2CgJJT0xPjEJVRjYKA0lPSEmMQlVGNgoESU9STIxCVUY2CgVJT1JIjEJVRjYK
CklPRUyMQlVGNgoLSU9FSIxCVUY2CgxJT01MjEJVRjYKDUlPTUiMQlVGNgoHSU9MRYxCVUY2ChJJ
TzMxjEJVRjYKE0lPMzKMQlVGNgoUSU8zM4xCVUY2ChVJTzM0jEJVRjYKGklPNDGMQlVGNgobSU80
MoxCVUY2ChxJTzQzjEJVRjYKHUlPNDSLQlVGNgohSVJRV4xCVUY2CiRETUFDRU5GR3AKAUxETl9w
AUFDVFJwSU9BTGJwYklPTE9wSU9BSGNwY0lPSEl9YwoEY3BjSU9FSHBjSU9NSHBJT0xPSU9STHBJ
T0xPSU9FTHBJT0xPSU9NTHBJT0hJSU9SSHBJT0FMSU8zMXBJT0FMSU8zM3JJT0FICghJTzMycklP
QUgKCElPMzRwSU9BTElPNDFwSU9BTElPNDNySU9BSAoMSU80MnJJT0FICgxJTzQ0oA+TSU9MTwq8
cAoESU9MRaEIcAoISU9MRXABYHBJTlRSZXlgZUlSUVdwAWBwRE1DSGV5YGVETUFDRVhGR6RCVUY2
CF9QUlMRTAcKeDBHAXgDeAMACEcBeAd4BwAERwF4C3gLBARHAXgPeA8EBCKgACoLADBHAXgCeAIA
CEcBeAZ4BgAERwF4CngKBARHAXgOeA4EBCKgACoLADBHAbwDvAMABEcBvAe8BwAERwG8C7wLBARH
AbwPvA8EBCKgACoLADh5ABROCF9TUlMBjGgKAklPTE+MaAoDSU9ISYtoCgJJT0FEi2gKIUlSUVeM
aAokRE1BQ0VORkdwCgFMRE5fcAFBQ1RScElPTE9JT0FMcElPSElJT0FIgUlSUVdgdGAKAWBwYElO
VFKBRE1BQ2FwRE1DSGB0YQoBRE1DSFNMRE1gRE1DSEVYRkdDS0lPSU9BRAoCW4JBB1BTMk0IX0hJ
RAxB0A8TFBdfU1RBAKALk1BTMkYKAKQKD6EEpAoAFEgEX0NSUwAIQlVGMREICgUiABB5AAhCVUYy
ERgKFUcBYABgAAEBRwFkAGQAAQEiABB5AKANk0tCREkKAaRCVUYyoQakQlVGMVuCRgRQUzJLCF9I
SUQMQdADAxQXX1NUQQCgC5NLQkRJCgGkCgChBKQKDwhfQ1JTERgKFUcBYABgAAEBRwFkAGQAAQEi
AgB5AFuCQBdHQU1FCF9ISUQMQdCwLxREBF9TVEEARU5GR3AKB0xETl+gEZFJT0FISU9BTEVYRkek
Cg+hH3tBQ1RSCgJgoAyTYAoCRVhGR6QKDaEIRVhGR6QKABQnX0RJUwBFTkZHcAoHTEROX3AASU9B
SHAASU9BTEVYRkdESVNECgQUTgdfQ1JTAAhCVUYxEQ0KCkcBAAAAAAgIeQCMQlVGMQoCSU9MT4xC
VUYxCgNJT0hJjEJVRjEKBElPUkyMQlVGMQoFSU9SSEVORkdwCgdMRE5fcElPQUxJT0xPcElPQUxJ
T1JMcElPQUhJT0hJcElPQUhJT1JIRVhGR6RCVUYxCF9QUlMRGAoVMEcBAAIAAggIMEcBCAIIAggI
OHkAFEUFX1NSUwGMaAoCSU9MT4xoCgNJT0hJi2gKAklPQURFTkZHcAoHTEROX31BQ1RSCgJBQ1RS
cElPTE9JT0FMcElPSElJT0FIRVhGR0NLSU9JT0FECgRbgkMiTUlESQhfSElEDEHQsAYURARfU1RB
AEVORkdwCgdMRE5foBGRSU8ySElPMkxFWEZHpAoPoR97QUNUUgoEYKAMk2AKBEVYRkekCg2hCEVY
RkekCgAULV9ESVMARU5GR3AKB0xETl9wAElPMkhwAElPMkxwAElOVFJFWEZHRElTRAoFFEkJX0NS
UwAIQlVGMREQCg1HAQAAAAACAiIAAHkAjEJVRjEKAklPTE+MQlVGMQoDSU9ISYxCVUYxCgRJT1JM
jEJVRjEKBUlPUkiLQlVGMQoJSVJRV0VORkdwCgdMRE5fcElPMkxJT0xPcElPMkxJT1JMcElPMkhJ
T0hJcElPMkhJT1JIcAFgeWBJTlRSSVJRV0VYRkekQlVGMQhfUFJTETYKMzBHATADMAMCAiK4HjBH
AQADAAMCAiK4HjBHAZACkAICAiK4HjBHAZICkgICAiK4Hjh5ABRJDF9TUlMBjGgKAklPTE+MaAoD
SU9ISYtoCgJJT0FEi2gKCUlSUVdFTkZHcAoHTEROX31BQ1RSCgRBQ1RScElPTE9JTzJMcElPSElJ
TzJIgUlSUVdgdGAKAWBwYElOVFJFWEZHQ0tJT0lPQUQKBXBJT0xPYHBJT0hJYXlhCghhcmBhYluA
TURQQQFiCgJbgRBNRFBBAU1EUDAITURQMQhwCwAgYKIkYHBNRFAwYXBNRFAxYXthCoBhoAmTYQqA
cAoAYKEGdGAKAWAQQA1cAFuAV0lOMgEKcAoCW4EQV0lOMgFJTkQyCERBVDIIFCZSQ01TAHAKA2Bw
CklJTkQycERBVDJhe2FgYYJgYnZiemFiYaRhFEcIU0FMRAGgDpNoCgBwCgBgU0xFRGCgLpNoCgFw
UkNNU2CgCZNgCgBwCgBgoRigEJNgCgF/CgAKQGBTTEVEYKEFcAqAYKAqk2gKA0VORkdwCglMRE5f
e09QVDQKP2B9YAqAT1BUNEVYRkd/CgAKQGCgC5NoCgR/CgAKQGCgBZNoCgVQTEVEYBAoXAAUJFBM
RUQBRU5GR3AKCExETl97T1BUNgo/YH1gaE9QVDZFWEZHEChcABQkU0xFRAFFTkZHcAoJTEROX3tP
UFQ0Cj9gfWBoT1BUNEVYRkcUKV9QUlcAe1NVU0YKAVNUQVSgDVNUQVSkEgYCCgUKA6EJpBIGAgoF
CgEUPVwvBF9TQl9QQ0kwVUFSMV9QUlcAoA1PU0ZMpBIGAgoICgShGaANU1RBVKQSBgIKCAoDoQmk
EgYCCggKARQ9XC8EX1NCX1BDSTBMUFQxX1BSVwCgDU9TRkykEgYCCggKBKEZoA1TVEFUpBIGAgoI
CgOhCaQSBgIKCAoBFD1cLwRfU0JfUENJMEVDUDFfUFJXAKANT1NGTKQSBgIKCAoEoRmgDVNUQVSk
EgYCCggKA6EJpBIGAgoICgE=

--------------Boundary-00=_BBPFW5Q4S2KQ9DEFPRK0
Content-Type: text/x-csrc;
  charset="us-ascii";
  name="acpi.asl"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment; filename="acpi.asl"

/*
RSD PTR: Checksum=3D18, OEMID=3DVT8366, RsdtAddress=3D0x1fff3000
 */
/*
RSDT: Length=3D44, Revision=3D1, Checksum=3D157,
=09OEMID=3DVT8366, OEM Table ID=3DMSI ACPI, OEM Revision=3D0x42302e31,
=09Creator ID=3DAWRD, Creator Revision=3D0x0
 */
/*
=09Entries=3D{ 0x1fff3040, 0x1fff6740 }
 */
/*
=09DSDT=3D0x1fff30c0
=09INT_MODEL=3DPIC
=09SCI_INT=3D11
=09SMI_CMD=3D0x402f, ACPI_ENABLE=3D0xa1, ACPI_DISABLE=3D0xa0, S4BIOS_REQ=3D=
0x0
=09PM1a_EVT_BLK=3D0x4000-0x4003
=09PM1a_CNT_BLK=3D0x40f0-0x40f1
=09PM2_TMR_BLK=3D0x4008-0x400b
=09PM2_GPE0_BLK=3D0x4020-0x4023
=09P_LVL2_LAT=3D90ms, P_LVL3_LAT=3D900ms
=09FLUSH_SIZE=3D0, FLUSH_STRIDE=3D0
=09DUTY_OFFSET=3D0, DUTY_WIDTH=3D1
=09DAY_ALRM=3D125, MON_ALRM=3D126, CENTURY=3D50
=09Flags=3D{WBINVD,PROC_C1,SLP_BUTTON,RTC_S4}
 */
/*
DSDT: Length=3D13925, Revision=3D1, Checksum=3D39,
=09OEMID=3DVT8366, OEM Table ID=3DMSI ACPI, OEM Revision=3D0x1000,
=09Creator ID=3DMSFT, Creator Revision=3D0x100000c
 */
DefinitionBlock (
    "acpi_dsdt.aml",=09//Output filename
    "DSDT",=09=09//Signature
    0x1,=09=09//DSDT Revision
    "VT8366",=09=09//OEMID
    "MSI ACPI",=09=09//TABLE ID
    0x1000=09=09//OEM Revision
)

{
Scope(\_PR_) {
    Processor(\_PR_.CPU0, 0, 0x0, 0x0) {
    }
}
OperationRegion(CM72, SystemIO, 0x70, 0x2)
Field(CM72, ByteAcc, NoLock, Preserve) {
    CI72,=098,
    CO73,=098
}
IndexField(CI72, CO73, ByteAcc, NoLock, Preserve) {
    Offset(0x43),
    SUSF,=098
}
Name(STAT, 0x0)
Name(\_S0_, Package(0x4) {
    0x0,
    0x0,
    0x0,
    0x0,
})
Name(\_S1_, Package(0x4) {
    0x4,
    0x4,
    0x4,
    0x4,
})
And(SUSF, 0x1, STAT)
Name(\_S4_, Package(0x4) {
    0x2,
    0x2,
    0x2,
    0x2,
})
Name(\_S5_, Package(0x4) {
    0x2,
    0x2,
    0x2,
    0x2,
})
OperationRegion(\DEBG, SystemIO, 0x80, 0x1)
Field(\DEBG, ByteAcc, NoLock, Preserve) {
    DBG1,=098
}
OperationRegion(EXTM, SystemMemory, 0x000ff830, 0x10)
Field(EXTM, WordAcc, NoLock, Preserve) {
    ROM1,=0916,
    RMS1,=0916,
    ROM2,=0916,
    RMS2,=0916,
    ROM3,=0916,
    RMS3,=0916,
    AMEM,=0932
}
OperationRegion(ELCR, SystemIO, 0x04d0, 0x2)
Field(ELCR, ByteAcc, NoLock, Preserve) {
    ELC1,=098,
    ELC2,=098
}
OperationRegion(\PMS_, SystemIO, 0x4000, 0x2)
Field(\PMS_, ByteAcc, NoLock, Preserve) {
    AITS,=091,
    Offset(0x1),
    PBTS,=091,
    ,=096,
    WAKE,=091
}
OperationRegion(\GPST, SystemIO, 0x4020, 0x4)
Field(\GPST, ByteAcc, NoLock, Preserve) {
    GS00,=091,
    GS01,=091,
    GS02,=091,
    GS03,=091,
    GS04,=091,
    GS05,=091,
    GS06,=091,
    GS07,=091,
    GS08,=091,
    GS09,=091,
    GS0A,=091,
    GS0B,=091,
    GS0C,=091,
    Offset(0x2),
    GE00,=091,
    GE01,=091,
    GE02,=091,
    GE03,=091,
    GE04,=091,
    GE05,=091,
    GE06,=091,
    GE07,=091,
    GE08,=091,
    GE09,=091,
    GE0A,=091,
    GE0B,=091,
    GE0C,=091,
    Offset(0x4)
}
OperationRegion(\GPSE, SystemIO, 0x4024, 0x2)
Field(\GPSE, ByteAcc, NoLock, Preserve) {
    GPS0,=091,
    GPS1,=091,
    KBCE,=091,
    LANE,=091,
    EXTE,=091,
    PME_,=091,
    Offset(0x1),
    RING,=091,
    ,=095,
    USBE,=091,
    Offset(0x2)
}
OperationRegion(\GLOS, SystemIO, 0x4028, 0x2)
Field(\GLOS, ByteAcc, NoLock, Preserve) {
    ,=096,
    SSMI,=091,
    PRII,=091,
    ,=092,
    SLPE,=091,
    SIRS,=091,
    Offset(0x2)
}
OperationRegion(\WIRQ, SystemIO, 0x402a, 0x1)
Field(\WIRQ, ByteAcc, NoLock, Preserve) {
    IRQR,=098
}
OperationRegion(\SMIC, SystemIO, 0x402f, 0x1)
Field(\SMIC, ByteAcc, NoLock, Preserve) {
    SCP_,=098
}
OperationRegion(\STUS, SystemIO, 0x4030, 0x1)
Field(\STUS, ByteAcc, NoLock, Preserve) {
    PADS,=098
}
OperationRegion(GPOB, SystemIO, 0x404c, 0x4)
Field(GPOB, ByteAcc, NoLock, Preserve) {
    GP00,=091,
    GP01,=091,
    GP02,=091,
    GP03,=091,
    GP04,=091,
    GP05,=091,
    GP06,=091,
    GP07,=091,
    GP08,=091,
    GP09,=091,
    GP10,=091,
    GP11,=091,
    GP12,=091,
    GP13,=091,
    GP14,=091,
    GP15,=091,
    GP16,=091,
    GP17,=091,
    GP18,=091,
    GP19,=091,
    GP20,=091,
    GP21,=091,
    GP22,=091,
    GP23,=091,
    GP24,=091,
    GP25,=091,
    GP26,=091,
    GP27,=091,
    GP28,=091,
    GP29,=091,
    GP30,=091,
    GPXX,=091
}
Name(OSFL, 0x1)
Method(STRC, 2) {
    If(LNot(LEqual(SizeOf(Arg0), SizeOf(Arg1)))) {
        Return(0x0)
    }
    Add(SizeOf(Arg0), 0x1, Local0)
    Name(BUF0, Buffer(Local0) { })
    Name(BUF1, Buffer(Local0) { })
    Store(Arg0, BUF0)
    Store(Arg1, BUF1)
    While(Local0) {
        Decrement(Local0)
        If(LNot(LEqual(DerefOf(Index(BUF0, Local0, )), DerefOf(Index(BUF1=
, Local0, ))))) {
            Return(Zero)
        }
    }
    Return(One)
}
OperationRegion(RTCM, SystemIO, 0x70, 0x2)
Field(RTCM, ByteAcc, NoLock, Preserve) {
    CMIN,=098,
    CMDA,=098
}
IndexField(CMIN, CMDA, ByteAcc, NoLock, Preserve) {
    Offset(0xf),
    SHUT,=098
}
OperationRegion(\GRAM, SystemMemory, 0x0400, 0x0100)
Field(\GRAM, ByteAcc, NoLock, Preserve) {
    Offset(0x10),
    FLG0,=098,
    Offset(0xba),
    SFLG,=098
}
OperationRegion(INFO, SystemMemory, 0x000ff840, 0x1)
Field(INFO, ByteAcc, NoLock, Preserve) {
    KBDI,=091,
    RTCW,=091,
    PS2F,=091,
    IRFL,=092,
    DISE,=091,
    SSHU,=091
}
OperationRegion(BEEP, SystemIO, 0x61, 0x1)
Field(BEEP, ByteAcc, NoLock, Preserve) {
    S1B_,=098
}
OperationRegion(CONT, SystemIO, 0x40, 0x4)
Field(CONT, ByteAcc, NoLock, Preserve) {
    CNT0,=098,
    CNT1,=098,
    CNT2,=098,
    CTRL,=098
}
Method(SPKR, 1) {
    Store(S1B_, Local0)
    Store(0xb6, CTRL)
    Store(0x55, CNT2)
    Store(0x3, CNT2)
    Store(Arg0, Local2)
    While(LGreater(Local2, 0x0)) {
        Or(S1B_, 0x3, S1B_)
        Store(0x5fff, Local3)
        While(LGreater(Local3, 0x0)) {
            Decrement(Local3)
        }
        And(S1B_, 0xfc, S1B_)
        Store(0x0eff, Local3)
        While(LGreater(Local3, 0x0)) {
            Decrement(Local3)
        }
        Decrement(Local2)
    }
    Store(Local0, S1B_)
}
Scope(\) {
    Name(PICF, 0x0)
    Method(_PIC, 1) {
        Store(Arg0, PICF)
    }
}
Method(\_PTS, 1) {
    Or(Arg0, 0xf0, Local0)
    Store(Local0, DBG1)
    If(LEqual(Arg0, 0x1)) {
        SALD(Arg0)
        SFAN(Zero)
        While(PRII) {
            Store(One, PRII)
        }
        While(LNot(LEqual(PADS, 0x0))) {
            Store(PADS, PADS)
        }
        Or(IRQR, 0x80, IRQR)
    }
    If(LEqual(Arg0, 0x3)) {
        Or(Arg0, 0x50, Local1)
        Store(Local1, SCP_)
        SALD(Arg0)
    }
    If(LEqual(Arg0, 0x5)) {
        Store(Zero, GE04)
        SALD(Arg0)
    }
    If(LEqual(Arg0, 0x1)) {
    }
    If(LEqual(Arg0, 0x3)) {
    }
    If(LEqual(Arg0, 0x4)) {
        Sleep(0x07d0)
    }
    Sleep(0x64)
}
Method(\_WAK, 1) {
    Store(0xff, DBG1)
    If(LEqual(Arg0, 0x1)) {
    }
    If(LEqual(Arg0, 0x3)) {
    }
    SALD(0x0)
    While(LNot(LEqual(GS04, Zero))) {
        Store(One, GS04)
    }
    If(LEqual(Arg0, 0x1)) {
        SFAN(0xff)
        And(IRQR, 0x7f, IRQR)
        While(PRII) {
            Store(One, PRII)
        }
        While(LNot(LEqual(PADS, 0x0))) {
            Store(PADS, PADS)
        }
    }
    Notify(\_SB_.PCI0.UAR1, 0x0)
    Notify(\_SB_.PCI0.UAR2, 0x0)
    Notify(\_SB_.PCI0.LPT1, 0x0)
    Notify(\_SB_.PCI0.ECP1, 0x0)
    If(LEqual(RTCW, 0x0)) {
        Notify(\_SB_.PWRB, 0x2)
    }
}
Scope(\_SI_) {
    Method(_MSG, 1) {
        Store(Local0, Local0)
    }
    Method(_SST, 1) {
        If(LEqual(Arg0, 0x3)) {
        }
        If(LEqual(Arg0, 0x1)) {
        }
        If(LEqual(Arg0, Zero)) {
        }
        Store(Local0, Local0)
    }
}
OperationRegion(TEMM, SystemMemory, 0x000ff810, 0xc)
Field(TEMM, WordAcc, NoLock, Preserve) {
    TP1H,=0916,
    TP1L,=0916,
    TP2H,=0916,
    TP2L,=0916,
    TRPC,=0916,
    SENF,=0916
}
Name(TVAR, Buffer(0x5) {0x0, 0x0, 0x0, 0x0, 0x0 })
CreateByteField(TVAR, 0x0, PLCY)
CreateWordField(TVAR, 0x1, CTOS)
CreateWordField(TVAR, 0x3, CTHY)
Name(TBUF, Buffer(0x4) {0x0, 0x0, 0x0, 0x0 })
CreateByteField(TBUF, 0x0, DB00)
CreateByteField(TBUF, 0x1, DB01)
CreateWordField(TBUF, 0x0, DW00)
CreateWordField(TBUF, 0x2, DW01)
CreateDWordField(TBUF, 0x0, DATD)
OperationRegion(IP__, SystemIO, 0x0295, 0x2)
Field(IP__, ByteAcc, NoLock, Preserve) {
    INDX,=098,
    DAT0,=098
}
Method(SCFG, 1) {
    SBYT(0x40, Arg0)
}
Method(STOS, 3) {
    Store(GBYT(0x4e), Local0)
    Or(Local0, 0x1, Local1)
    SBYT(0x4e, Local1)
    SBYT(0x55, Arg1)
    SBYT(0x56, Arg0)
    SBYT(0x4e, Local0)
}
Method(STHY, 3) {
    Store(GBYT(0x4e), Local0)
    Or(Local0, 0x1, Local1)
    SBYT(0x4e, Local1)
    SBYT(0x53, Arg1)
    SBYT(0x54, Arg0)
    SBYT(0x4e, Local0)
}
Method(RTMP) {
    Store(GBYT(0x4e), Local0)
    Or(Local0, 0x1, Local1)
    SBYT(0x4e, Local1)
    Store(GBYT(0x50), Local1)
    Store(GBYT(0x51), Local2)
    ShiftLeft(Local1, 0x8, Local1)
    Or(Local1, Local2, Local3)
    ShiftRight(Local3, 0x7, Local3)
    ShiftLeft(Local3, 0x2, Local1)
    Add(Local3, Local1, Local3)
    Add(Local3, 0x0aac, Local3)
    If(LGreater(Local3, 0x0e94)) {
        Store(0x0aac, Local3)
    }
    If(LEqual(TRPC, 0x0e95)) {
        Store(0x0aac, Local3)
    }
    If(LEqual(Local3, 0x0aac)) {
        Store(0x0b86, Local3)
    }
    SBYT(0x4e, Local0)
    Return(Local3)
}
Method(SBYT, 2) {
    Store(Arg0, INDX)
    Store(Arg1, DAT0)
}
Method(GBYT, 1) {
    Store(Arg0, INDX)
    Store(DAT0, Local7)
    Return(Local7)
}
Method(SFAN, 1) {
    SBYT(0x5a, Arg0)
    SBYT(0x5a, Arg0)
}
Scope(\_TZ_) {
    Device(FAN_) {
        Name(_HID, 0x0b0cd041)
        Method(_INI) {
            Store(TP1H, CTOS)
            Store(TP1L, CTHY)
        }
    }
    ThermalZone(THRM) {
        Name(_AL0, Package(0x1) {
            FAN_,
        })
        Method(_AC0) {
            If(Or(PLCY, PLCY, Local7)) {
                Return(TP2H)
            }
            Else {
                Return(TP1H)
            }
        }
        Name(_PSL, Package(0x1) {
            \_PR_.CPU0,
        })
        Name(_TSP, 0x3c)
        Name(_TC1, 0x4)
        Name(_TC2, 0x3)
        Method(_PSV) {
            If(Or(PLCY, PLCY, Local7)) {
                Return(TP1H)
            }
            Else {
                Return(TP2H)
            }
        }
        Method(_CRT) {
            Return(TRPC)
        }
        Method(_TMP) {
            And(SENF, 0x1, Local6)
            If(LEqual(Local6, 0x1)) {
                Return(RTMP())
            }
            Else {
                Return(0x0b86)
            }
        }
        Method(_SCP, 1) {
            If(Arg0) {
                Store(One, PLCY)
            }
            Else {
                Store(Zero, PLCY)
            }
            Notify(\_TZ_.THRM, 0x81)
        }
        Method(STMP, 2) {
            Store(Arg1, DW00)
            If(Arg0) {
                STHY(DB00, DB01, DW00)
            }
            Else {
                STOS(DB00, DB01, DW00)
            }
        }
    }
}
Scope(\_GPE) {
    Method(_L05) {
        Notify(\_SB_.PCI0, 0x2)
    }
    Method(_L08) {
        Notify(\_SB_.PCI0.UAR1, 0x2)
    }
    Method(_L09) {
        Notify(\_SB_.PCI0.USB0, 0x2)
    }
    Method(_L04) {
        Notify(\_SB_.SLPB, 0x80)
    }
}
Scope(\_SB_) {
    Device(PWRB) {
        Name(_HID, 0x0c0cd041)
        Method(_STA) {
            Return(0xb)
        }
    }
    Device(SLPB) {
        Name(_HID, 0x0e0cd041)
        Method(_STA) {
            Return(0xb)
        }
        Name(_PRW, Package(0x2) {
            0x4,
            0x5,
        })
    }
    Device(MEM_) {
        Name(_HID, 0x010cd041)
        Method(_CRS) {
            Name(BUF0, Buffer(0x86) {0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xf, =
0x0, 0x0, 0x40, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x40, 0xf, 0x0, 0x0, =
0x40, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x80, 0xf, 0x0, 0x0, 0x40, 0x0,=
 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0xc0, 0xf, 0x0, 0x0, 0x40, 0x0, 0x0, 0x86=
, 0x9, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x86, 0x9, 0x0, =
0x1, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x1, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, =
0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0x10, 0=
x0, 0x0, 0x0, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xc0, 0xfe, 0x0, 0=
x10, 0x0, 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xe0, 0xfe, 0x0, 0x10, 0x0,=
 0x0, 0x86, 0x9, 0x0, 0x1, 0x0, 0x0, 0xf8, 0xff, 0x0, 0x0, 0x7, 0x0, 0x79=
, 0x0 })
            CreateDWordField(BUF0, 0x34, ACMM)
            CreateDWordField(BUF0, 0x4, RMA1)
            CreateDWordField(BUF0, 0x8, RSS1)
            CreateDWordField(BUF0, 0x10, RMA2)
            CreateDWordField(BUF0, 0x14, RSS2)
            CreateDWordField(BUF0, 0x1c, RMA3)
            CreateDWordField(BUF0, 0x20, RSS3)
            CreateDWordField(BUF0, 0x28, RMA4)
            CreateDWordField(BUF0, 0x2c, RSS4)
            CreateDWordField(BUF0, 0x5c, EXTM)
            Subtract(AMEM, 0x00100000, EXTM)
            If(LNot(LEqual(ROM1, Zero))) {
                Store(RMA1, RMA2)
                ShiftLeft(ROM1, 0x8, Local0)
                Store(Local0, RMA1)
                ShiftLeft(RMS1, 0x8, Local0)
                Store(Local0, RSS1)
                Store(0x8000, RSS2)
            }
            If(LNot(LEqual(ROM2, Zero))) {
                Store(RMA2, RMA3)
                ShiftLeft(ROM2, 0x8, Local0)
                Store(Local0, RMA2)
                ShiftLeft(RMS2, 0x8, Local0)
                Store(Local0, RSS2)
                Store(0xc000, RSS3)
            }
            If(LNot(LEqual(ROM3, Zero))) {
                Store(RMA3, RMA4)
                ShiftLeft(ROM3, 0x8, Local0)
                Store(Local0, RMA3)
                ShiftLeft(RMS3, 0x8, Local0)
                Store(Local0, RSS3)
                Store(0x00010000, RSS4)
            }
            Store(AMEM, ACMM)
            Return(BUF0)
        }
    }
    Device(PCI0) {
        Name(_HID, 0x030ad041)
        Name(_ADR, 0x0)
        Name(SS3D, 0x2)
        OperationRegion(GART, PCI_Config, 0x80, 0x1)
        Scope(\) {
            Field(\_SB_.PCI0.GART, ByteAcc, NoLock, Preserve) {
                GAR1,=098
            }
        }
        OperationRegion(GARA, PCI_Config, 0x88, 0x1)
        Scope(\) {
            Field(\_SB_.PCI0.GARA, ByteAcc, NoLock, Preserve) {
                GAR2,=098
            }
        }
        Method(_STA) {
            Return(0xf)
        }
        Method(_CRS) {
            Name(BUF0, Buffer(0xc0) {0x88, 0xd, 0x0, 0x2, 0x1, 0x0, 0x0, =
0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1, 0x47, 0x1, 0xf8, 0xc, 0xf8,=
 0xc, 0x1, 0x8, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0xf7, =
0xc, 0x0, 0x0, 0xf8, 0xc, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0=
xd, 0xff, 0x3f, 0x0, 0x0, 0x0, 0x33, 0x47, 0x1, 0x0, 0x40, 0x0, 0x40, 0x1=
, 0x80, 0x47, 0x1, 0x80, 0x40, 0x80, 0x40, 0x1, 0x80, 0x88, 0xd, 0x0, 0x1=
, 0xc, 0x3, 0x0, 0x0, 0x0, 0x41, 0xff, 0x4f, 0x0, 0x0, 0xff, 0xe, 0x47, 0=
x1, 0x0, 0x50, 0x0, 0x50, 0x1, 0x10, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, =
0x0, 0x10, 0x50, 0xff, 0xff, 0x0, 0x0, 0xef, 0xaf, 0x87, 0x17, 0x0, 0x0, =
0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0xff, 0xff, 0xb, 0x0, 0=
x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x=
0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0xff, 0xff, 0xd, 0x0, 0x0, 0x0, 0x0=
, 0x0, 0x0, 0x0, 0x2, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0,=
 0x0, 0x0, 0x0, 0x10, 0x0, 0xff, 0xff, 0xef, 0xff, 0x0, 0x0, 0x0, 0x0, 0x=
0, 0x0, 0xf0, 0xff, 0x79, 0x0 })
            CreateDWordField(BUF0, 0xae, TCMM)
            CreateDWordField(BUF0, 0xba, TOMM)
            Add(AMEM, 0x00010000, TCMM)
            Subtract(0xfff00000, TCMM, TOMM)
            Return(BUF0)
        }
        Name(PICM, Package(0x1c) {
            Package(0x4) {
                0x0005ffff,
                0x0,
                \_SB_.PCI0.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0005ffff,
                0x1,
                \_SB_.PCI0.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0005ffff,
                0x2,
                \_SB_.PCI0.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0005ffff,
                0x3,
                \_SB_.PCI0.LNKD,
                0x0,
            },
            Package(0x4) {
                0x0006ffff,
                0x0,
                \_SB_.PCI0.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0006ffff,
                0x1,
                \_SB_.PCI0.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0006ffff,
                0x2,
                \_SB_.PCI0.LNKD,
                0x0,
            },
            Package(0x4) {
                0x0006ffff,
                0x3,
                \_SB_.PCI0.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0007ffff,
                0x0,
                \_SB_.PCI0.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0007ffff,
                0x1,
                \_SB_.PCI0.LNKD,
                0x0,
            },
            Package(0x4) {
                0x0007ffff,
                0x2,
                \_SB_.PCI0.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0007ffff,
                0x3,
                \_SB_.PCI0.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0008ffff,
                0x0,
                \_SB_.PCI0.LNKD,
                0x0,
            },
            Package(0x4) {
                0x0008ffff,
                0x1,
                \_SB_.PCI0.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0008ffff,
                0x2,
                \_SB_.PCI0.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0008ffff,
                0x3,
                \_SB_.PCI0.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0011ffff,
                0x0,
                \_SB_.PCI0.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0011ffff,
                0x1,
                \_SB_.PCI0.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0011ffff,
                0x2,
                \_SB_.PCI0.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0011ffff,
                0x3,
                \_SB_.PCI0.LNKD,
                0x0,
            },
            Package(0x4) {
                0x0001ffff,
                0x0,
                \_SB_.PCI0.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0001ffff,
                0x1,
                \_SB_.PCI0.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0001ffff,
                0x2,
                \_SB_.PCI0.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0001ffff,
                0x3,
                \_SB_.PCI0.LNKD,
                0x0,
            },
            Package(0x4) {
                0x0012ffff,
                0x0,
                \_SB_.PCI0.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0012ffff,
                0x1,
                \_SB_.PCI0.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0012ffff,
                0x2,
                \_SB_.PCI0.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0012ffff,
                0x3,
                \_SB_.PCI0.LNKD,
                0x0,
            },
        })
        Name(APIC, Package(0x1c) {
            Package(0x4) {
                0x0005ffff,
                0x0,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x0005ffff,
                0x1,
                0x0,
                0x11,
            },
            Package(0x4) {
                0x0005ffff,
                0x2,
                0x0,
                0x12,
            },
            Package(0x4) {
                0x0005ffff,
                0x3,
                0x0,
                0x13,
            },
            Package(0x4) {
                0x0006ffff,
                0x0,
                0x0,
                0x11,
            },
            Package(0x4) {
                0x0006ffff,
                0x1,
                0x0,
                0x12,
            },
            Package(0x4) {
                0x0006ffff,
                0x2,
                0x0,
                0x13,
            },
            Package(0x4) {
                0x0006ffff,
                0x3,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x0007ffff,
                0x0,
                0x0,
                0x12,
            },
            Package(0x4) {
                0x0007ffff,
                0x1,
                0x0,
                0x13,
            },
            Package(0x4) {
                0x0007ffff,
                0x2,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x0007ffff,
                0x3,
                0x0,
                0x11,
            },
            Package(0x4) {
                0x0008ffff,
                0x0,
                0x0,
                0x13,
            },
            Package(0x4) {
                0x0008ffff,
                0x1,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x0008ffff,
                0x2,
                0x0,
                0x11,
            },
            Package(0x4) {
                0x0008ffff,
                0x3,
                0x0,
                0x12,
            },
            Package(0x4) {
                0x0011ffff,
                0x0,
                \_SB_.PCI0.LNKA,
                0x0,
            },
            Package(0x4) {
                0x0011ffff,
                0x1,
                \_SB_.PCI0.LNKB,
                0x0,
            },
            Package(0x4) {
                0x0011ffff,
                0x2,
                \_SB_.PCI0.LNKC,
                0x0,
            },
            Package(0x4) {
                0x0011ffff,
                0x3,
                \_SB_.PCI0.LNKD,
                0x0,
            },
            Package(0x4) {
                0x0001ffff,
                0x0,
                0x0,
                0x10,
            },
            Package(0x4) {
                0x0001ffff,
                0x1,
                0x0,
                0x11,
            },
            Package(0x4) {
                0x0001ffff,
                0x2,
                0x0,
                0x12,
            },
            Package(0x4) {
                0x0001ffff,
                0x3,
                0x0,
                0x13,
            },
            Package(0x4) {
                0x0012ffff,
                0x0,
                0x0,
                \_SB_.PCI0.LNKA,
            },
            Package(0x4) {
                0x0012ffff,
                0x1,
                0x0,
                \_SB_.PCI0.LNKB,
            },
            Package(0x4) {
                0x0012ffff,
                0x2,
                0x0,
                \_SB_.PCI0.LNKC,
            },
            Package(0x4) {
                0x0012ffff,
                0x3,
                0x0,
                \_SB_.PCI0.LNKD,
            },
        })
        Method(_PRT) {
            If(LNot(PICF)) {
                Return(PICM)
            }
            Else {
                Return(APIC)
            }
        }
        Device(VT86) {
            Name(_ADR, 0x00110000)
            OperationRegion(VTSB, PCI_Config, 0x0, 0xe8)
            Scope(\) {
                Field(\_SB_.PCI0.VT86.VTSB, ByteAcc, NoLock, Preserve) {
                    Offset(0x52),
                    SIRQ,=098,
                    Offset(0x55),
                    PIRA,=098,
                    PIBC,=098,
                    PIRD,=098,
                    Offset(0x94),
                    PWC1,=098
                }
            }
        }
        Device(IDE0) {
            Name(_ADR, 0x00110001)
            Name(REGF, 0x1)
            Method(_REG, 2) {
                If(LEqual(Arg0, 0x2)) {
                    Store(Arg1, REGF)
                }
            }
            Name(TIM0, Package(0xc) {
                Package(0x4) {
                    0x78,
                    0xb4,
                    0xf0,
                    0x0384,
                },
                Package(0x4) {
                    0x20,
                    0x31,
                    0x65,
                    0xa8,
                },
                Package(0x8) {
                    0x2,
                    0x1,
                    0x0,
                    0x0,
                    0x0,
                    0x0,
                    0x0,
                    0x0,
                },
                Package(0x8) {
                    0x4,
                    0x3,
                    0x2,
                    0x2,
                    0x1,
                    0x1,
                    0x0,
                    0x0,
                },
                Package(0x6) {
                    0x70,
                    0x49,
                    0x36,
                    0x27,
                    0x19,
                    0x14,
                },
                Package(0x5) {
                    0x2,
                    0x1,
                    0x0,
                    0x0,
                    0x0,
                },
                Package(0x5) {
                    0x6,
                    0x4,
                    0x2,
                    0x1,
                    0x0,
                },
                Package(0x5) {
                    0x0,
                    0x0,
                    0x0,
                    0x1,
                    0x1,
                },
                Package(0x4) {
                    0x4,
                    0x3,
                    0x2,
                    0x0,
                },
                Package(0x4) {
                    0x2,
                    0x1,
                    0x0,
                    0x0,
                },
                Package(0x8) {
                    0x5,
                    0x4,
                    0x3,
                    0x2,
                    0x2,
                    0x1,
                    0x1,
                    0x0,
                },
                Package(0x6) {
                    0x7,
                    0x6,
                    0x4,
                    0x2,
                    0x1,
                    0x0,
                },
            })
            Name(TMD0, Buffer(0x14) { })
            CreateDWordField(TMD0, 0x0, PIO0)
            CreateDWordField(TMD0, 0x4, DMA0)
            CreateDWordField(TMD0, 0x8, PIO1)
            CreateDWordField(TMD0, 0xc, DMA1)
            CreateDWordField(TMD0, 0x10, CHNF)
            OperationRegion(CFG2, PCI_Config, 0x40, 0x20)
            Field(CFG2, DWordAcc, NoLock, Preserve) {
                Offset(0x8),
                SSPT,=098,
                SMPT,=098,
                PSPT,=098,
                PMPT,=098,
                Offset(0x10),
                SSUT,=093,
                SCBC,=091,
                ,=091,
                SSUE,=093,
                SMUT,=093,
                ,=092,
                SMUE,=093,
                PSUT,=093,
                PCBC,=091,
                ,=091,
                PSUE,=093,
                PMUT,=093,
                ,=092,
                PMUE,=093
            }
            Name(GMPT, 0x0)
            Name(GMUE, 0x0)
            Name(GMUT, 0x0)
            Name(GSPT, 0x0)
            Name(GSUE, 0x0)
            Name(GSUT, 0x0)
            Name(GBCS, 0x0)
            Device(CHN0) {
                Name(_ADR, 0x0)
                Method(_GTM) {
                    Return(GTM_(PMPT, PMUE, PMUT, PSPT, PSUE, PSUT, PCBC)=
)
                }
                Method(_STM, 3) {
                    Store(Arg0, TMD0)
                    Store(PMPT, GMPT)
                    Store(PMUE, GMUE)
                    Store(PMUT, GMUT)
                    Store(PSPT, GSPT)
                    Store(PSUE, GSUE)
                    Store(PSUT, GSUT)
                    Store(PCBC, GBCS)
                    STM_()
                    Store(GMPT, PMPT)
                    Store(GMUE, PMUE)
                    Store(GMUT, PMUT)
                    Store(GSPT, PSPT)
                    Store(GSUE, PSUE)
                    Store(GSUT, PSUT)
                    Store(GBCS, PCBC)
                }
                Device(DRV0) {
                    Name(_ADR, 0x0)
                    Method(_GTF) {
                        Return(GTF_(0x0, PMUE, PMUT, PMPT, PCBC))
                    }
                }
                Device(DRV1) {
                    Name(_ADR, 0x1)
                    Method(_GTF) {
                        Return(GTF_(0x1, PSUE, PSUT, PSPT, PCBC))
                    }
                }
            }
            Device(CHN1) {
                Name(_ADR, 0x1)
                Method(_GTM) {
                    Return(GTM_(SMPT, SMUE, SMUT, SSPT, SSUE, SSUT, SCBC)=
)
                }
                Method(_STM, 3) {
                    Store(Arg0, TMD0)
                    Store(SMPT, GMPT)
                    Store(SMUE, GMUE)
                    Store(SMUT, GMUT)
                    Store(SSPT, GSPT)
                    Store(SSUE, GSUE)
                    Store(SSUT, GSUT)
                    Store(SCBC, GBCS)
                    STM_()
                    Store(GMPT, SMPT)
                    Store(GMUE, SMUE)
                    Store(GMUT, SMUT)
                    Store(GSPT, SSPT)
                    Store(GSUE, SSUE)
                    Store(GSUT, SSUT)
                    Store(GBCS, SCBC)
                }
                Device(DRV0) {
                    Name(_ADR, 0x0)
                    Method(_GTF) {
                        Return(GTF_(0x2, SMUE, SMUT, SMPT, PCBC))
                    }
                }
                Device(DRV1) {
                    Name(_ADR, 0x1)
                    Method(_GTF) {
                        Return(GTF_(0x3, SSUE, SSUT, SSPT, PCBC))
                    }
                }
            }
            Method(GTF_, 5, Serialized) {
                Store(Buffer(0x7) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef },=
 Local1)
                Store(Buffer(0x7) {0x3, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xef },=
 Local2)
                CreateByteField(Local1, 0x1, MODE)
                CreateByteField(Local2, 0x1, UMOD)
                CreateByteField(Local1, 0x5, PCHA)
                CreateByteField(Local2, 0x5, UCHA)
                And(Arg0, 0x3, Local3)
                If(LEqual(And(Local3, 0x1, ), 0x1)) {
                    Store(0xb0, PCHA)
                    Store(0xb0, UCHA)
                }
                If(Arg1) {
                    Store(DerefOf(Index(DerefOf(Index(TIM0, 0xa, )), Arg2=
, )), UMOD)
                    Or(UMOD, 0x40, UMOD)
                }
                Else {
                    Store(Match(DerefOf(Index(TIM0, 0x1, )), MEQ, Arg3, M=
TR, 0x0, 0x0), Local0)
                    Or(0x20, DerefOf(Index(DerefOf(Index(TIM0, 0x9, )), L=
ocal0, )), UMOD)
                }
                Store(Match(DerefOf(Index(TIM0, 0x1, )), MEQ, Arg3, MTR, =
0x0, 0x0), Local0)
                Or(0x8, DerefOf(Index(DerefOf(Index(TIM0, 0x8, )), Local0=
, )), MODE)
                Concatenate(Local1, Local2, Local6)
                Return(Local6)
            }
            Method(GTM_, 7, Serialized) {
                Store(Ones, PIO0)
                Store(Ones, PIO1)
                Store(Ones, DMA0)
                Store(Ones, DMA1)
                Store(0x10, CHNF)
                If(REGF) {
                }
                Else {
                    Return(TMD0)
                }
                Store(Match(DerefOf(Index(TIM0, 0x1, )), MEQ, Arg0, MTR, =
0x0, 0x0), Local6)
                Store(DerefOf(Index(DerefOf(Index(TIM0, 0x0, )), Local6, =
)), Local7)
                Store(Local7, DMA0)
                Store(Local7, PIO0)
                Store(Match(DerefOf(Index(TIM0, 0x1, )), MEQ, Arg3, MTR, =
0x0, 0x0), Local6)
                Store(DerefOf(Index(DerefOf(Index(TIM0, 0x0, )), Local6, =
)), Local7)
                Store(Local7, DMA1)
                Store(Local7, PIO1)
                If(Arg1) {
                    Store(DerefOf(Index(DerefOf(Index(TIM0, 0xa, )), Arg2=
, )), Local5)
                    Store(DerefOf(Index(DerefOf(Index(TIM0, 0x4, )), Loca=
l5, )), DMA0)
                    Or(CHNF, 0x1, CHNF)
                }
                If(Arg4) {
                    Store(DerefOf(Index(DerefOf(Index(TIM0, 0xa, )), Arg5=
, )), Local5)
                    Store(DerefOf(Index(DerefOf(Index(TIM0, 0x4, )), Loca=
l5, )), DMA1)
                    Or(CHNF, 0x4, CHNF)
                }
                Return(TMD0)
            }
            Method(STM_, 0, Serialized) {
                If(REGF) {
                }
                Else {
                    Return(TMD0)
                }
                Store(0x0, GMUE)
                Store(0x0, GSUE)
                Store(0x7, GMUT)
                Store(0x7, GSUT)
                If(And(CHNF, 0x1, )) {
                    Store(Match(DerefOf(Index(TIM0, 0x4, )), MLE, DMA0, M=
TR, 0x0, 0x0), Local0)
                    Store(DerefOf(Index(DerefOf(Index(TIM0, 0xb, )), Loca=
l0, )), GMUT)
                    Or(GMUE, 0x3, GMUE)
                }
                Else {
                    If(Or(LEqual(PIO0, Ones), LEqual(PIO0, 0x0), )) {
                        If(And(LLess(DMA0, Ones), LGreater(DMA0, 0x0), ))=
 {
                            Store(DMA0, PIO0)
                        }
                    }
                }
                If(And(CHNF, 0x4, )) {
                    Store(Match(DerefOf(Index(TIM0, 0x4, )), MLE, DMA1, M=
TR, 0x0, 0x0), Local0)
                    Store(DerefOf(Index(DerefOf(Index(TIM0, 0xb, )), Loca=
l0, )), GSUT)
                    Or(GMUE, 0x3, GMUE)
                }
                Else {
                    If(Or(LEqual(PIO1, Ones), LEqual(PIO1, 0x0), )) {
                        If(And(LLess(DMA1, Ones), LGreater(DMA1, 0x0), ))=
 {
                            Store(DMA1, PIO1)
                        }
                    }
                }
                And(Match(DerefOf(Index(TIM0, 0x0, )), MGE, PIO0, MTR, 0x=
0, 0x0), 0x3, Local0)
                Store(DerefOf(Index(DerefOf(Index(TIM0, 0x1, )), Local0, =
)), Local1)
                Store(Local1, GMPT)
                And(Match(DerefOf(Index(TIM0, 0x0, )), MGE, PIO1, MTR, 0x=
0, 0x0), 0x3, Local0)
                Store(DerefOf(Index(DerefOf(Index(TIM0, 0x1, )), Local0, =
)), Local1)
                Store(Local1, GSPT)
            }
        }
        Device(USB0) {
            Name(_ADR, 0x00110002)
            Name(_PRW, Package(0x2) {
                0x9,
                0x5,
            })
            Name(SS3D, 0x2)
        }
        Device(USB1) {
            Name(_ADR, 0x00110003)
            Name(_PRW, Package(0x2) {
                0x9,
                0x5,
            })
            Name(SS3D, 0x2)
        }
        Device(USB2) {
            Name(_ADR, 0x00110004)
            Name(_PRW, Package(0x2) {
                0x9,
                0x5,
            })
            Name(SS3D, 0x2)
        }
        Device(AUDI) {
            Name(_ADR, 0x00110005)
        }
        Device(MODM) {
            Name(_ADR, 0x00110006)
            Name(_PRW, Package(0x2) {
                0xd,
                0x5,
            })
        }
        Scope(\) {
            Method(DISD, 1) {
            }
            Method(CKIO, 2) {
            }
            Method(SLDM, 2) {
            }
        }
        Device(LNKA) {
            Name(_HID, 0x0f0cd041)
            Name(_UID, 0x1)
            Method(_STA) {
                And(PIRA, 0xf0, Local0)
                If(LEqual(Local0, 0x0)) {
                    Return(0x9)
                }
                Else {
                    Return(0xb)
                }
            }
            Method(_PRS) {
                Name(BUFB, Buffer(0x6) {0x23, 0xfa, 0xdc, 0x18, 0x79, 0x0=
 })
                Return(BUFB)
            }
            Method(_DIS) {
                And(PIRA, 0xf, PIRA)
            }
            Method(_CRS) {
                Name(BUFB, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 }=
)
                CreateByteField(BUFB, 0x1, IRB1)
                CreateByteField(BUFB, 0x2, IRB2)
                Store(0x0, Local3)
                Store(0x0, Local4)
                And(PIRA, 0xf0, Local1)
                ShiftRight(Local1, 0x4, Local1)
                If(LNot(LEqual(Local1, 0x0))) {
                    If(LGreater(Local1, 0x7)) {
                        Subtract(Local1, 0x8, Local2)
                        ShiftLeft(One, Local2, Local4)
                    }
                    Else {
                        If(LGreater(Local1, 0x0)) {
                            ShiftLeft(One, Local1, Local3)
                        }
                    }
                    Store(Local3, IRB1)
                    Store(Local4, IRB2)
                }
                Return(BUFB)
            }
            Method(_SRS, 1) {
                CreateByteField(Arg0, 0x1, IRB1)
                CreateByteField(Arg0, 0x2, IRB2)
                ShiftLeft(IRB2, 0x8, Local0)
                Or(Local0, IRB1, Local0)
                Store(0x0, Local1)
                ShiftRight(Local0, 0x1, Local0)
                While(LGreater(Local0, 0x0)) {
                    Increment(Local1)
                    ShiftRight(Local0, 0x1, Local0)
                }
                And(PIRA, 0xf, PIRA)
                ShiftLeft(Local1, 0x4, Local1)
                Or(PIRA, Local1, PIRA)
            }
        }
        Device(LNKB) {
            Name(_HID, 0x0f0cd041)
            Name(_UID, 0x2)
            Method(_STA) {
                And(PIBC, 0xf, Local0)
                If(LEqual(Local0, 0x0)) {
                    Return(0x9)
                }
                Else {
                    Return(0xb)
                }
            }
            Method(_PRS) {
                Name(BUFA, Buffer(0x6) {0x23, 0xfa, 0xdc, 0x18, 0x79, 0x0=
 })
                Return(BUFA)
            }
            Method(_DIS) {
                And(PIBC, 0xf0, PIBC)
            }
            Method(_CRS) {
                Name(BUFA, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 }=
)
                CreateByteField(BUFA, 0x1, IRA1)
                CreateByteField(BUFA, 0x2, IRA2)
                Store(0x0, Local3)
                Store(0x0, Local4)
                And(PIBC, 0xf, Local1)
                If(LNot(LEqual(Local1, 0x0))) {
                    If(LGreater(Local1, 0x7)) {
                        Subtract(Local1, 0x8, Local2)
                        ShiftLeft(One, Local2, Local4)
                    }
                    Else {
                        If(LGreater(Local1, 0x0)) {
                            ShiftLeft(One, Local1, Local3)
                        }
                    }
                    Store(Local3, IRA1)
                    Store(Local4, IRA2)
                }
                Return(BUFA)
            }
            Method(_SRS, 1) {
                CreateByteField(Arg0, 0x1, IRA1)
                CreateByteField(Arg0, 0x2, IRA2)
                ShiftLeft(IRA2, 0x8, Local0)
                Or(Local0, IRA1, Local0)
                Store(0x0, Local1)
                ShiftRight(Local0, 0x1, Local0)
                While(LGreater(Local0, 0x0)) {
                    Increment(Local1)
                    ShiftRight(Local0, 0x1, Local0)
                }
                And(PIBC, 0xf0, PIBC)
                Or(PIBC, Local1, PIBC)
            }
        }
        Device(LNKC) {
            Name(_HID, 0x0f0cd041)
            Name(_UID, 0x3)
            Method(_STA) {
                And(PIBC, 0xf0, Local0)
                If(LEqual(Local0, 0x0)) {
                    Return(0x9)
                }
                Else {
                    Return(0xb)
                }
            }
            Method(_PRS) {
                Name(BUFC, Buffer(0x6) {0x23, 0xfa, 0xdc, 0x18, 0x79, 0x0=
 })
                Return(BUFC)
            }
            Method(_DIS) {
                And(PIBC, 0xf, PIBC)
            }
            Method(_CRS) {
                Name(BUFC, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 }=
)
                CreateByteField(BUFC, 0x1, IRC1)
                CreateByteField(BUFC, 0x2, IRC2)
                Store(0x0, Local3)
                Store(0x0, Local4)
                And(PIBC, 0xf0, Local1)
                ShiftRight(Local1, 0x4, Local1)
                If(LNot(LEqual(Local1, 0x0))) {
                    If(LGreater(Local1, 0x7)) {
                        Subtract(Local1, 0x8, Local2)
                        ShiftLeft(One, Local2, Local4)
                    }
                    Else {
                        If(LGreater(Local1, 0x0)) {
                            ShiftLeft(One, Local1, Local3)
                        }
                    }
                    Store(Local3, IRC1)
                    Store(Local4, IRC2)
                }
                Return(BUFC)
            }
            Method(_SRS, 1) {
                CreateByteField(Arg0, 0x1, IRC1)
                CreateByteField(Arg0, 0x2, IRC2)
                ShiftLeft(IRC2, 0x8, Local0)
                Or(Local0, IRC1, Local0)
                Store(0x0, Local1)
                ShiftRight(Local0, 0x1, Local0)
                While(LGreater(Local0, 0x0)) {
                    Increment(Local1)
                    ShiftRight(Local0, 0x1, Local0)
                }
                And(PIBC, 0xf, PIBC)
                ShiftLeft(Local1, 0x4, Local1)
                Or(PIBC, Local1, PIBC)
            }
        }
        Device(LNKD) {
            Name(_HID, 0x0f0cd041)
            Name(_UID, 0x4)
            Method(_STA) {
                And(PIRD, 0xf0, Local0)
                If(LEqual(Local0, 0x0)) {
                    Return(0x9)
                }
                Else {
                    Return(0xb)
                }
            }
            Method(_PRS) {
                Name(BUFD, Buffer(0x6) {0x23, 0xfa, 0xdc, 0x18, 0x79, 0x0=
 })
                Return(BUFD)
            }
            Method(_DIS) {
                And(PIRD, 0xf, PIRD)
            }
            Method(_CRS) {
                Name(BUFD, Buffer(0x6) {0x23, 0x0, 0x0, 0x18, 0x79, 0x0 }=
)
                CreateByteField(BUFD, 0x1, IRD1)
                CreateByteField(BUFD, 0x2, IRD2)
                Store(0x0, Local3)
                Store(0x0, Local4)
                And(PIRD, 0xf0, Local1)
                ShiftRight(Local1, 0x4, Local1)
                If(LNot(LEqual(Local1, 0x0))) {
                    If(LGreater(Local1, 0x7)) {
                        Subtract(Local1, 0x8, Local2)
                        ShiftLeft(One, Local2, Local4)
                    }
                    Else {
                        If(LGreater(Local1, 0x0)) {
                            ShiftLeft(One, Local1, Local3)
                        }
                    }
                    Store(Local3, IRD1)
                    Store(Local4, IRD2)
                }
                Return(BUFD)
            }
            Method(_SRS, 1) {
                CreateByteField(Arg0, 0x1, IRD1)
                CreateByteField(Arg0, 0x2, IRD2)
                ShiftLeft(IRD2, 0x8, Local0)
                Or(Local0, IRD1, Local0)
                Store(0x0, Local1)
                ShiftRight(Local0, 0x1, Local0)
                While(LGreater(Local0, 0x0)) {
                    Increment(Local1)
                    ShiftRight(Local0, 0x1, Local0)
                }
                And(PIRD, 0xf, PIRD)
                ShiftLeft(Local1, 0x4, Local1)
                Or(PIRD, Local1, PIRD)
            }
        }
        Method(\_SB_.PCI0._INI) {
            If(STRC(\_OS_, "Microsoft Windows")) {
            }
            Else {
                If(STRC(\_OS_, "Microsoft Windows NT")) {
                    Store(0x0, OSFL)
                }
                Else {
                    Store(0x2, OSFL)
                }
            }
        }
        Device(SYSR) {
            Name(_HID, 0x020cd041)
            Name(_UID, 0x1)
            Name(_CRS, Buffer(0x5a) {0x47, 0x1, 0x10, 0x0, 0x10, 0x0, 0x1=
, 0x10, 0x47, 0x1, 0x22, 0x0, 0x22, 0x0, 0x1, 0x1e, 0x47, 0x1, 0x44, 0x0,=
 0x44, 0x0, 0x1, 0x1c, 0x47, 0x1, 0x62, 0x0, 0x62, 0x0, 0x1, 0x2, 0x47, 0=
x1, 0x65, 0x0, 0x65, 0x0, 0x1, 0xb, 0x47, 0x1, 0x74, 0x0, 0x74, 0x0, 0x1,=
 0xc, 0x47, 0x1, 0x91, 0x0, 0x91, 0x0, 0x1, 0x3, 0x47, 0x1, 0xa2, 0x0, 0x=
a2, 0x0, 0x1, 0x1e, 0x47, 0x1, 0xe0, 0x0, 0xe0, 0x0, 0x1, 0x10, 0x47, 0x1=
, 0xd0, 0x4, 0xd0, 0x4, 0x1, 0x2, 0x47, 0x1, 0x94, 0x2, 0x94, 0x2, 0x1, 0=
x4, 0x79, 0x0 })
        }
        Device(PIC_) {
            Name(_HID, 0xd041)
            Name(_CRS, Buffer(0x15) {0x47, 0x1, 0x20, 0x0, 0x20, 0x0, 0x1=
, 0x2, 0x47, 0x1, 0xa0, 0x0, 0xa0, 0x0, 0x1, 0x2, 0x22, 0x4, 0x0, 0x79, 0=
x0 })
        }
        Device(DMA1) {
            Name(_HID, 0x0002d041)
            Name(_CRS, Buffer(0x25) {0x2a, 0x10, 0x4, 0x47, 0x1, 0x0, 0x0=
, 0x0, 0x0, 0x1, 0x10, 0x47, 0x1, 0x80, 0x0, 0x80, 0x0, 0x1, 0x11, 0x47, =
0x1, 0x94, 0x0, 0x94, 0x0, 0x1, 0xc, 0x47, 0x1, 0xc0, 0x0, 0xc0, 0x0, 0x1=
, 0x20, 0x79, 0x0 })
        }
        Device(TMR_) {
            Name(_HID, 0x0001d041)
            Name(_CRS, Buffer(0xd) {0x47, 0x1, 0x40, 0x0, 0x40, 0x0, 0x1,=
 0x4, 0x22, 0x1, 0x0, 0x79, 0x0 })
        }
        Device(RTC_) {
            Name(_HID, 0x000bd041)
            Name(_CRS, Buffer(0xd) {0x47, 0x1, 0x70, 0x0, 0x70, 0x0, 0x4,=
 0x4, 0x22, 0x0, 0x1, 0x79, 0x0 })
        }
        Device(SPKR) {
            Name(_HID, 0x0008d041)
            Name(_CRS, Buffer(0xa) {0x47, 0x1, 0x61, 0x0, 0x61, 0x0, 0x1,=
 0x1, 0x79, 0x0 })
        }
        Device(COPR) {
            Name(_HID, 0x040cd041)
            Name(_CRS, Buffer(0xd) {0x47, 0x1, 0xf0, 0x0, 0xf0, 0x0, 0x1,=
 0x10, 0x22, 0x0, 0x20, 0x79, 0x0 })
        }
        Scope(\) {
            OperationRegion(WIN1, SystemIO, 0x2e, 0x2)
            Field(WIN1, ByteAcc, NoLock, Preserve) {
                INDS,=098,
                DATA,=098
            }
            IndexField(INDS, DATA, ByteAcc, NoLock, Preserve) {
                Offset(0x2),
                CFG_,=098,
                Offset(0x7),
                LDN_,=098,
                Offset(0x20),
                IDHI,=098,
                IDLO,=098,
                POWC,=098,
                Offset(0x30),
                ACTR,=098,
                Offset(0x60),
                IOAH,=098,
                IOAL,=098,
                IO2H,=098,
                IO2L,=098,
                Offset(0x70),
                INTR,=098,
                Offset(0x72),
                INT1,=098,
                Offset(0x74),
                DMCH,=098,
                Offset(0xc0),
                GP40,=098,
                Offset(0xf0),
                OPT1,=098,
                OPT2,=098,
                OPT3,=098,
                OPT4,=098,
                OPT5,=098,
                OPT6,=098,
                OPT7,=098
            }
            Method(ENFG) {
                Store(0x87, INDS)
                Store(0x87, INDS)
            }
            Method(EXFG) {
                Store(0xaa, INDS)
            }
        }
        Device(FDC0) {
            Name(_HID, 0x0007d041)
            Method(_STA) {
                ENFG()
                Store(Zero, LDN_)
                If(ACTR) {
                    EXFG()
                    Return(0xf)
                }
                Else {
                    If(LOr(IOAH, IOAL)) {
                        EXFG()
                        Return(0xd)
                    }
                    Else {
                        EXFG()
                        Return(0x0)
                    }
                }
            }
            Method(_DIS) {
                ENFG()
                Store(0x0, LDN_)
                Store(Zero, ACTR)
                SLDM(DMCH, 0x4)
                EXFG()
                DISD(0x3)
            }
            Method(_CRS) {
                Name(BUF0, Buffer(0x18) {0x47, 0x1, 0xf2, 0x3, 0xf2, 0x3,=
 0x1, 0x4, 0x47, 0x1, 0xf7, 0x3, 0xf7, 0x3, 0x1, 0x1, 0x22, 0x40, 0x0, 0x=
2a, 0x4, 0x0, 0x79, 0x0 })
                CreateByteField(BUF0, 0x2, IOLO)
                CreateByteField(BUF0, 0x3, IOHI)
                CreateByteField(BUF0, 0x4, IORL)
                CreateByteField(BUF0, 0x5, IORH)
                ENFG()
                EXFG()
                Return(BUF0)
            }
            Name(_PRS, Buffer(0x1a) {0x30, 0x47, 0x1, 0xf2, 0x3, 0xf2, 0x=
3, 0x1, 0x4, 0x47, 0x1, 0xf7, 0x3, 0xf7, 0x3, 0x1, 0x1, 0x22, 0x40, 0x0, =
0x2a, 0x4, 0x0, 0x38, 0x79, 0x0 })
            Method(_SRS, 1) {
                CreateByteField(Arg0, 0x2, IOLO)
                CreateByteField(Arg0, 0x3, IOHI)
                CreateWordField(Arg0, 0x2, IOAD)
                CreateWordField(Arg0, 0x19, IRQL)
                CreateByteField(Arg0, 0x1c, DMAV)
                ENFG()
                Store(Zero, LDN_)
                Store(One, ACTR)
                SLDM(DMCH, DMCH)
                EXFG()
                CKIO(IOAD, 0x3)
            }
        }
        Device(UAR1) {
            Name(_HID, 0x0105d041)
            Name(_UID, 0x1)
            Method(_STA) {
                ENFG()
                Store(0x2, LDN_)
                If(ACTR) {
                    EXFG()
                    Return(0xf)
                }
                Else {
                    If(LOr(IOAH, IOAL)) {
                        EXFG()
                        Return(0xd)
                    }
                    Else {
                        EXFG()
                        Return(0x0)
                    }
                }
                EXFG()
            }
            Method(_DIS) {
                ENFG()
                Store(0x2, LDN_)
                Store(Zero, ACTR)
                EXFG()
                DISD(0x0)
            }
            Method(_CRS) {
                Name(BUF1, Buffer(0xd) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x=
8, 0x8, 0x22, 0x0, 0x0, 0x79, 0x0 })
                CreateByteField(BUF1, 0x2, IOLO)
                CreateByteField(BUF1, 0x3, IOHI)
                CreateByteField(BUF1, 0x4, IORL)
                CreateByteField(BUF1, 0x5, IORH)
                CreateWordField(BUF1, 0x9, IRQW)
                ENFG()
                Store(0x2, LDN_)
                Store(IOAL, IOLO)
                Store(IOAL, IORL)
                Store(IOAH, IOHI)
                Store(IOAH, IORH)
                Store(One, Local0)
                ShiftLeft(Local0, INTR, IRQW)
                EXFG()
                Return(BUF1)
            }
            Name(_PRS, Buffer(0x33) {0x30, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x=
3, 0x8, 0x8, 0x22, 0x10, 0xc, 0x30, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x8,=
 0x8, 0x22, 0x8, 0xc, 0x30, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x8, 0x8, 0x=
22, 0xb8, 0x1e, 0x30, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x8, 0x8, 0x22, 0x=
b8, 0x1e, 0x38, 0x79, 0x0 })
            Method(_SRS, 1) {
                CreateByteField(Arg0, 0x2, IOLO)
                CreateByteField(Arg0, 0x3, IOHI)
                CreateWordField(Arg0, 0x2, IOAD)
                CreateWordField(Arg0, 0x9, IRQW)
                ENFG()
                Store(0x2, LDN_)
                Store(One, ACTR)
                Store(IOLO, IOAL)
                Store(IOHI, IOAH)
                FindSetRightBit(IRQW, Local0)
                Subtract(Local0, 0x1, INTR)
                EXFG()
                CKIO(IOAD, 0x0)
            }
        }
        Device(UAR2) {
            Name(_HID, 0x0105d041)
            Name(_UID, 0x2)
            Method(_STA) {
                ENFG()
                Store(0x3, LDN_)
                And(OPT2, 0x30, Local0)
                If(LNot(LEqual(Local0, 0x10))) {
                    If(ACTR) {
                        EXFG()
                        Return(0xf)
                    }
                    Else {
                        If(LOr(IOAH, IOAL)) {
                            EXFG()
                            Return(0xd)
                        }
                        Else {
                            EXFG()
                            Return(0x0)
                        }
                    }
                }
                Else {
                    EXFG()
                    Return(0x0)
                }
            }
            Method(_DIS) {
                ENFG()
                Store(0x3, LDN_)
                And(OPT2, 0x38, Local0)
                If(LEqual(Local0, 0x0)) {
                    Store(Zero, ACTR)
                }
                EXFG()
                DISD(0x1)
            }
            Method(_CRS) {
                Name(BUF2, Buffer(0xd) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x=
8, 0x8, 0x22, 0x10, 0x0, 0x79, 0x0 })
                CreateByteField(BUF2, 0x2, IOLO)
                CreateByteField(BUF2, 0x3, IOHI)
                CreateByteField(BUF2, 0x4, IORL)
                CreateByteField(BUF2, 0x5, IORH)
                CreateWordField(BUF2, 0x9, IRQW)
                ENFG()
                Store(0x3, LDN_)
                Store(IOAL, IOLO)
                Store(IOAL, IORL)
                Store(IOAH, IOHI)
                Store(IOAH, IORH)
                Store(One, Local0)
                ShiftLeft(Local0, INTR, IRQW)
                EXFG()
                Return(BUF2)
            }
            Name(_PRS, Buffer(0x33) {0x30, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x=
3, 0x8, 0x8, 0x22, 0x10, 0xc, 0x30, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x8,=
 0x8, 0x22, 0x8, 0xc, 0x30, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x8, 0x8, 0x=
22, 0xb8, 0x1e, 0x30, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x8, 0x8, 0x22, 0x=
b8, 0x1e, 0x38, 0x79, 0x0 })
            Method(_SRS, 1) {
                CreateByteField(Arg0, 0x2, IOLO)
                CreateByteField(Arg0, 0x3, IOHI)
                CreateWordField(Arg0, 0x2, IOAD)
                CreateWordField(Arg0, 0x9, IRQW)
                ENFG()
                Store(0x3, LDN_)
                Store(One, ACTR)
                Store(IOLO, IOAL)
                Store(IOHI, IOAH)
                FindSetRightBit(IRQW, Local0)
                Subtract(Local0, 0x1, INTR)
                EXFG()
                CKIO(IOAD, 0x1)
            }
        }
        Device(IRDA) {
            Name(_HID, 0x1005d041)
            Method(_STA) {
                ENFG()
                Store(0x3, LDN_)
                And(OPT2, 0x30, Local0)
                If(LEqual(Local0, 0x10)) {
                    If(ACTR) {
                        EXFG()
                        Return(0xf)
                    }
                    Else {
                        If(LOr(IOAH, IOAL)) {
                            EXFG()
                            Return(0xd)
                        }
                        Else {
                            EXFG()
                            Return(0x0)
                        }
                    }
                }
                Else {
                    EXFG()
                    Return(0x0)
                }
            }
            Method(_DIS) {
                ENFG()
                Store(0x3, LDN_)
                And(OPT2, 0x38, Local0)
                If(LNot(LEqual(Local0, 0x0))) {
                    Store(Zero, ACTR)
                }
                EXFG()
                DISD(0x1)
            }
            Method(_CRS) {
                Name(BUF4, Buffer(0xd) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x=
8, 0x8, 0x22, 0x0, 0x0, 0x79, 0x0 })
                CreateByteField(BUF4, 0x2, IOLO)
                CreateByteField(BUF4, 0x3, IOHI)
                CreateByteField(BUF4, 0x4, IORL)
                CreateByteField(BUF4, 0x5, IORH)
                CreateWordField(BUF4, 0x9, IRQW)
                ENFG()
                Store(0x3, LDN_)
                Store(IOAL, IOLO)
                Store(IOAL, IORL)
                Store(IOAH, IOHI)
                Store(IOAH, IORH)
                ShiftLeft(0x1, INTR, IRQW)
                EXFG()
                Return(BUF4)
            }
            Name(_PRS, Buffer(0x33) {0x30, 0x47, 0x1, 0xf8, 0x3, 0xf8, 0x=
3, 0x8, 0x8, 0x22, 0xb8, 0x1e, 0x30, 0x47, 0x1, 0xf8, 0x2, 0xf8, 0x2, 0x8=
, 0x8, 0x22, 0xb8, 0x1e, 0x30, 0x47, 0x1, 0xe8, 0x3, 0xe8, 0x3, 0x8, 0x8,=
 0x22, 0xb8, 0x1e, 0x30, 0x47, 0x1, 0xe8, 0x2, 0xe8, 0x2, 0x8, 0x8, 0x22,=
 0xb8, 0x1e, 0x38, 0x79, 0x0 })
            Method(_SRS, 1) {
                CreateByteField(Arg0, 0x2, IOLO)
                CreateByteField(Arg0, 0x3, IOHI)
                CreateWordField(Arg0, 0x2, IOAD)
                CreateWordField(Arg0, 0x9, IRQW)
                ENFG()
                Store(0x3, LDN_)
                Store(One, ACTR)
                Store(IOLO, IOAL)
                Store(IOHI, IOAH)
                FindSetRightBit(IRQW, Local0)
                Subtract(Local0, 0x1, INTR)
                EXFG()
                CKIO(IOAD, 0x1)
            }
        }
        Device(LPT1) {
            Name(_HID, 0x0004d041)
            Method(_STA) {
                ENFG()
                Store(0x1, LDN_)
                And(OPT1, 0x2, Local0)
                If(LNot(LEqual(Local0, 0x2))) {
                    If(ACTR) {
                        EXFG()
                        Return(0xf)
                    }
                    Else {
                        If(LOr(IOAH, IOAL)) {
                            EXFG()
                            Return(0xd)
                        }
                        Else {
                            EXFG()
                            Return(0x0)
                        }
                    }
                }
                Else {
                    EXFG()
                    Return(0x0)
                }
            }
            Method(_DIS) {
                ENFG()
                Store(0x1, LDN_)
                Store(Zero, ACTR)
                EXFG()
                DISD(0x2)
            }
            Method(_CRS) {
                Name(BUF5, Buffer(0x25) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0=
x4, 0x8, 0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x4, 0x4, 0x47, 0x1, 0x0, 0x0, 0x=
0, 0x0, 0x4, 0x4, 0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x4, 0x4, 0x22, 0x0, 0x0=
, 0x79, 0x0 })
                CreateByteField(BUF5, 0x2, IOLO)
                CreateByteField(BUF5, 0x3, IOHI)
                CreateByteField(BUF5, 0x4, IORL)
                CreateByteField(BUF5, 0x5, IORH)
                CreateByteField(BUF5, 0x7, IOLE)
                CreateByteField(BUF5, 0xa, IO21)
                CreateByteField(BUF5, 0xb, IO22)
                CreateByteField(BUF5, 0xc, IO23)
                CreateByteField(BUF5, 0xd, IO24)
                CreateByteField(BUF5, 0x12, IO31)
                CreateByteField(BUF5, 0x13, IO32)
                CreateByteField(BUF5, 0x14, IO33)
                CreateByteField(BUF5, 0x15, IO34)
                CreateByteField(BUF5, 0x1a, IO41)
                CreateByteField(BUF5, 0x1b, IO42)
                CreateByteField(BUF5, 0x1c, IO43)
                CreateByteField(BUF5, 0x1d, IO44)
                CreateWordField(BUF5, 0x21, IRQW)
                ENFG()
                Store(0x1, LDN_)
                Store(IOAL, IOLO)
                Store(IOLO, IORL)
                Store(IOAH, IOHI)
                Store(IOHI, IORH)
                Store(IOAL, IO21)
                Store(IOAL, IO23)
                Add(IOAH, 0x4, IO22)
                Add(IOAH, 0x4, IO24)
                Store(IOAL, IO31)
                Store(IOAL, IO33)
                Add(IOAH, 0x8, IO32)
                Add(IOAH, 0x8, IO34)
                Store(IOAL, IO41)
                Store(IOAL, IO43)
                Add(IOAH, 0xc, IO42)
                Add(IOAH, 0xc, IO44)
                If(LEqual(IOLO, 0xbc)) {
                    Store(0x4, IOLE)
                }
                Else {
                    Store(0x8, IOLE)
                }
                Store(One, Local0)
                Store(INTR, Local5)
                ShiftLeft(Local0, Local5, IRQW)
                Store(One, ACTR)
                EXFG()
                Return(BUF5)
            }
            Name(_PRS, Buffer(0x6f) {0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x=
3, 0x4, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x4, 0x4, 0x47, 0x1, 0x78, =
0xb, 0x78, 0xb, 0x4, 0x4, 0x47, 0x1, 0x78, 0xf, 0x78, 0xf, 0x4, 0x4, 0x22=
, 0xa0, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x4, 0x8, 0x47, 0x1, =
0x78, 0x6, 0x78, 0x6, 0x4, 0x4, 0x47, 0x1, 0x78, 0xa, 0x78, 0xa, 0x4, 0x4=
, 0x47, 0x1, 0x78, 0xe, 0x78, 0xe, 0x4, 0x4, 0x22, 0xa0, 0x0, 0x30, 0x47,=
 0x1, 0xbc, 0x3, 0xbc, 0x3, 0x4, 0x4, 0x47, 0x1, 0xbc, 0x7, 0xbc, 0x7, 0x=
4, 0x4, 0x47, 0x1, 0xbc, 0xb, 0xbc, 0xb, 0x4, 0x4, 0x47, 0x1, 0xbc, 0xf, =
0xbc, 0xf, 0x4, 0x4, 0x22, 0xa0, 0x0, 0x38, 0x79, 0x0 })
            Method(_SRS, 1) {
                CreateByteField(Arg0, 0x2, IOLO)
                CreateByteField(Arg0, 0x3, IOHI)
                CreateWordField(Arg0, 0x2, IOAD)
                CreateByteField(Arg0, 0x4, IORL)
                CreateByteField(Arg0, 0x5, IORH)
                CreateWordField(Arg0, 0x21, IRQW)
                ENFG()
                Store(0x1, LDN_)
                Store(One, ACTR)
                Store(IOLO, IOAL)
                Store(IOHI, IOAH)
                FindSetLeftBit(IRQW, Local0)
                Subtract(Local0, 0x1, Local0)
                Store(Local0, INTR)
                EXFG()
                CKIO(IOAD, 0x2)
            }
        }
        Device(ECP1) {
            Name(_HID, 0x0104d041)
            Method(_STA) {
                ENFG()
                Store(0x1, LDN_)
                And(OPT1, 0x2, Local0)
                If(LEqual(Local0, 0x2)) {
                    If(ACTR) {
                        EXFG()
                        Return(0xf)
                    }
                    Else {
                        If(LOr(IOAH, IOAL)) {
                            EXFG()
                            Return(0xd)
                        }
                        Else {
                            EXFG()
                            Return(0x0)
                        }
                    }
                }
                Else {
                    EXFG()
                    Return(0x0)
                }
            }
            Method(_DIS) {
                ENFG()
                Store(0x1, LDN_)
                Store(Zero, ACTR)
                SLDM(DMCH, 0x4)
                EXFG()
                DISD(0x2)
            }
            Method(_CRS) {
                Name(BUF6, Buffer(0x28) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0=
x4, 0x8, 0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x4, 0x4, 0x47, 0x1, 0x0, 0x0, 0x=
0, 0x0, 0x4, 0x4, 0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x4, 0x4, 0x22, 0x0, 0x0=
, 0x2a, 0x0, 0x0, 0x79, 0x0 })
                CreateByteField(BUF6, 0x2, IOLO)
                CreateByteField(BUF6, 0x3, IOHI)
                CreateByteField(BUF6, 0x4, IORL)
                CreateByteField(BUF6, 0x5, IORH)
                CreateByteField(BUF6, 0xa, IOEL)
                CreateByteField(BUF6, 0xb, IOEH)
                CreateByteField(BUF6, 0xc, IOML)
                CreateByteField(BUF6, 0xd, IOMH)
                CreateByteField(BUF6, 0x7, IOLE)
                CreateByteField(BUF6, 0x12, IO31)
                CreateByteField(BUF6, 0x13, IO32)
                CreateByteField(BUF6, 0x14, IO33)
                CreateByteField(BUF6, 0x15, IO34)
                CreateByteField(BUF6, 0x1a, IO41)
                CreateByteField(BUF6, 0x1b, IO42)
                CreateByteField(BUF6, 0x1c, IO43)
                CreateByteField(BUF6, 0x1d, IO44)
                CreateWordField(BUF6, 0x21, IRQW)
                CreateByteField(BUF6, 0x24, DMAC)
                ENFG()
                Store(0x1, LDN_)
                Store(One, ACTR)
                Store(IOAL, Local2)
                Store(Local2, IOLO)
                Store(IOAH, Local3)
                Store(Local3, IOHI)
                Or(Local3, 0x4, Local3)
                Store(Local3, IOEH)
                Store(Local3, IOMH)
                Store(IOLO, IORL)
                Store(IOLO, IOEL)
                Store(IOLO, IOML)
                Store(IOHI, IORH)
                Store(IOAL, IO31)
                Store(IOAL, IO33)
                Add(IOAH, 0x8, IO32)
                Add(IOAH, 0x8, IO34)
                Store(IOAL, IO41)
                Store(IOAL, IO43)
                Add(IOAH, 0xc, IO42)
                Add(IOAH, 0xc, IO44)
                If(LEqual(IOLO, 0xbc)) {
                    Store(0x4, IOLE)
                }
                Else {
                    Store(0x8, IOLE)
                }
                Store(One, Local0)
                Store(INTR, Local5)
                ShiftLeft(Local0, Local5, IRQW)
                Store(One, Local0)
                Store(DMCH, Local5)
                ShiftLeft(Local0, Local5, DMAC)
                EXFG()
                Return(BUF6)
            }
            Name(_PRS, Buffer(0x78) {0x30, 0x47, 0x1, 0x78, 0x3, 0x78, 0x=
3, 0x0, 0x8, 0x47, 0x1, 0x78, 0x7, 0x78, 0x7, 0x0, 0x4, 0x47, 0x1, 0x78, =
0xb, 0x78, 0xb, 0x4, 0x4, 0x47, 0x1, 0x78, 0xf, 0x78, 0xf, 0x4, 0x4, 0x22=
, 0xa0, 0x0, 0x2a, 0xb, 0x0, 0x30, 0x47, 0x1, 0x78, 0x2, 0x78, 0x2, 0x0, =
0x8, 0x47, 0x1, 0x78, 0x6, 0x78, 0x6, 0x0, 0x4, 0x47, 0x1, 0x78, 0xa, 0x7=
8, 0xa, 0x4, 0x4, 0x47, 0x1, 0x78, 0xe, 0x78, 0xe, 0x4, 0x4, 0x22, 0xa0, =
0x0, 0x2a, 0xb, 0x0, 0x30, 0x47, 0x1, 0xbc, 0x3, 0xbc, 0x3, 0x0, 0x4, 0x4=
7, 0x1, 0xbc, 0x7, 0xbc, 0x7, 0x0, 0x4, 0x47, 0x1, 0xbc, 0xb, 0xbc, 0xb, =
0x4, 0x4, 0x47, 0x1, 0xbc, 0xf, 0xbc, 0xf, 0x4, 0x4, 0x22, 0xa0, 0x0, 0x2=
a, 0xb, 0x0, 0x38, 0x79, 0x0 })
            Method(_SRS, 1) {
                CreateByteField(Arg0, 0x2, IOLO)
                CreateByteField(Arg0, 0x3, IOHI)
                CreateWordField(Arg0, 0x2, IOAD)
                CreateWordField(Arg0, 0x21, IRQW)
                CreateByteField(Arg0, 0x24, DMAC)
                ENFG()
                Store(0x1, LDN_)
                Store(One, ACTR)
                Store(IOLO, IOAL)
                Store(IOHI, IOAH)
                FindSetLeftBit(IRQW, Local0)
                Subtract(Local0, 0x1, Local0)
                Store(Local0, INTR)
                FindSetLeftBit(DMAC, Local1)
                Store(DMCH, Local0)
                Subtract(Local1, 0x1, DMCH)
                SLDM(Local0, DMCH)
                EXFG()
                CKIO(IOAD, 0x2)
            }
        }
        Device(PS2M) {
            Name(_HID, 0x130fd041)
            Method(_STA) {
                If(LEqual(PS2F, 0x0)) {
                    Return(0xf)
                }
                Else {
                    Return(0x0)
                }
            }
            Method(_CRS) {
                Name(BUF1, Buffer(0x5) {0x22, 0x0, 0x10, 0x79, 0x0 })
                Name(BUF2, Buffer(0x15) {0x47, 0x1, 0x60, 0x0, 0x60, 0x0,=
 0x1, 0x1, 0x47, 0x1, 0x64, 0x0, 0x64, 0x0, 0x1, 0x1, 0x22, 0x0, 0x10, 0x=
79, 0x0 })
                If(LEqual(KBDI, 0x1)) {
                    Return(BUF2)
                }
                Else {
                    Return(BUF1)
                }
            }
        }
        Device(PS2K) {
            Name(_HID, 0x0303d041)
            Method(_STA) {
                If(LEqual(KBDI, 0x1)) {
                    Return(0x0)
                }
                Else {
                    Return(0xf)
                }
            }
            Name(_CRS, Buffer(0x15) {0x47, 0x1, 0x60, 0x0, 0x60, 0x0, 0x1=
, 0x1, 0x47, 0x1, 0x64, 0x0, 0x64, 0x0, 0x1, 0x1, 0x22, 0x2, 0x0, 0x79, 0=
x0 })
        }
        Device(GAME) {
            Name(_HID, 0x2fb0d041)
            Method(_STA) {
                ENFG()
                Store(0x7, LDN_)
                If(LOr(IOAH, IOAL)) {
                    EXFG()
                    Return(0xf)
                }
                Else {
                    And(ACTR, 0x2, Local0)
                    If(LEqual(Local0, 0x2)) {
                        EXFG()
                        Return(0xd)
                    }
                    Else {
                        EXFG()
                        Return(0x0)
                    }
                }
            }
            Method(_DIS) {
                ENFG()
                Store(0x7, LDN_)
                Store(Zero, IOAH)
                Store(Zero, IOAL)
                EXFG()
                DISD(0x4)
            }
            Method(_CRS) {
                Name(BUF1, Buffer(0xa) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x=
8, 0x8, 0x79, 0x0 })
                CreateByteField(BUF1, 0x2, IOLO)
                CreateByteField(BUF1, 0x3, IOHI)
                CreateByteField(BUF1, 0x4, IORL)
                CreateByteField(BUF1, 0x5, IORH)
                ENFG()
                Store(0x7, LDN_)
                Store(IOAL, IOLO)
                Store(IOAL, IORL)
                Store(IOAH, IOHI)
                Store(IOAH, IORH)
                EXFG()
                Return(BUF1)
            }
            Name(_PRS, Buffer(0x15) {0x30, 0x47, 0x1, 0x0, 0x2, 0x0, 0x2,=
 0x8, 0x8, 0x30, 0x47, 0x1, 0x8, 0x2, 0x8, 0x2, 0x8, 0x8, 0x38, 0x79, 0x0=
 })
            Method(_SRS, 1) {
                CreateByteField(Arg0, 0x2, IOLO)
                CreateByteField(Arg0, 0x3, IOHI)
                CreateWordField(Arg0, 0x2, IOAD)
                ENFG()
                Store(0x7, LDN_)
                Or(ACTR, 0x2, ACTR)
                Store(IOLO, IOAL)
                Store(IOHI, IOAH)
                EXFG()
                CKIO(IOAD, 0x4)
            }
        }
        Device(MIDI) {
            Name(_HID, 0x06b0d041)
            Method(_STA) {
                ENFG()
                Store(0x7, LDN_)
                If(LOr(IO2H, IO2L)) {
                    EXFG()
                    Return(0xf)
                }
                Else {
                    And(ACTR, 0x4, Local0)
                    If(LEqual(Local0, 0x4)) {
                        EXFG()
                        Return(0xd)
                    }
                    Else {
                        EXFG()
                        Return(0x0)
                    }
                }
            }
            Method(_DIS) {
                ENFG()
                Store(0x7, LDN_)
                Store(Zero, IO2H)
                Store(Zero, IO2L)
                Store(Zero, INTR)
                EXFG()
                DISD(0x5)
            }
            Method(_CRS) {
                Name(BUF1, Buffer(0xd) {0x47, 0x1, 0x0, 0x0, 0x0, 0x0, 0x=
2, 0x2, 0x22, 0x0, 0x0, 0x79, 0x0 })
                CreateByteField(BUF1, 0x2, IOLO)
                CreateByteField(BUF1, 0x3, IOHI)
                CreateByteField(BUF1, 0x4, IORL)
                CreateByteField(BUF1, 0x5, IORH)
                CreateWordField(BUF1, 0x9, IRQW)
                ENFG()
                Store(0x7, LDN_)
                Store(IO2L, IOLO)
                Store(IO2L, IORL)
                Store(IO2H, IOHI)
                Store(IO2H, IORH)
                Store(One, Local0)
                ShiftLeft(Local0, INTR, IRQW)
                EXFG()
                Return(BUF1)
            }
            Name(_PRS, Buffer(0x33) {0x30, 0x47, 0x1, 0x30, 0x3, 0x30, 0x=
3, 0x2, 0x2, 0x22, 0xb8, 0x1e, 0x30, 0x47, 0x1, 0x0, 0x3, 0x0, 0x3, 0x2, =
0x2, 0x22, 0xb8, 0x1e, 0x30, 0x47, 0x1, 0x90, 0x2, 0x90, 0x2, 0x2, 0x2, 0=
x22, 0xb8, 0x1e, 0x30, 0x47, 0x1, 0x92, 0x2, 0x92, 0x2, 0x2, 0x2, 0x22, 0=
xb8, 0x1e, 0x38, 0x79, 0x0 })
            Method(_SRS, 1) {
                CreateByteField(Arg0, 0x2, IOLO)
                CreateByteField(Arg0, 0x3, IOHI)
                CreateWordField(Arg0, 0x2, IOAD)
                CreateWordField(Arg0, 0x9, IRQW)
                ENFG()
                Store(0x7, LDN_)
                Or(ACTR, 0x4, ACTR)
                Store(IOLO, IO2L)
                Store(IOHI, IO2H)
                FindSetLeftBit(IRQW, Local0)
                Subtract(Local0, 0x1, Local0)
                Store(Local0, INTR)
                EXFG()
                CKIO(IOAD, 0x5)
                Store(IOLO, Local0)
                Store(IOHI, Local1)
                ShiftLeft(Local1, 0x8, Local1)
                Add(Local0, Local1, Local2)
                OperationRegion(MDPA, SystemIO, Local2, 0x2)
                Field(MDPA, ByteAcc, NoLock, Preserve) {
                    MDP0,=098,
                    MDP1,=098
                }
                Store(0x2000, Local0)
                While(Local0) {
                    Store(MDP0, Local1)
                    Store(MDP1, Local1)
                    And(Local1, 0x80, Local1)
                    If(LEqual(Local1, 0x80)) {
                        Store(0x0, Local0)
                    }
                    Else {
                        Subtract(Local0, 0x1, Local0)
                    }
                }
            }
        }
        Scope(\) {
            OperationRegion(WIN2, SystemIO, 0x70, 0x2)
            Field(WIN2, ByteAcc, NoLock, Preserve) {
                IND2,=098,
                DAT2,=098
            }
            Method(RCMS) {
                Store(0x3, Local0)
                Store(0x49, IND2)
                Store(DAT2, Local1)
                And(Local1, Local0, Local1)
                FindSetRightBit(Local0, Local2)
                Decrement(Local2)
                ShiftRight(Local1, Local2, Local1)
                Return(Local1)
            }
            Method(SALD, 1) {
                If(LEqual(Arg0, 0x0)) {
                    Store(0x0, Local0)
                    SLED(Local0)
                }
                If(LEqual(Arg0, 0x1)) {
                    Store(RCMS(), Local0)
                    If(LEqual(Local0, 0x0)) {
                        Store(0x0, Local0)
                    }
                    Else {
                        If(LEqual(Local0, 0x1)) {
                            XOr(0x0, 0x40, Local0)
                            SLED(Local0)
                        }
                        Else {
                            Store(0x80, Local0)
                        }
                    }
                }
                If(LEqual(Arg0, 0x3)) {
                    ENFG()
                    Store(0x9, LDN_)
                    And(OPT4, 0x3f, Local0)
                    Or(Local0, 0x80, OPT4)
                    EXFG()
                    XOr(0x0, 0x40, Local0)
                }
                If(LEqual(Arg0, 0x4)) {
                    XOr(0x0, 0x40, Local0)
                }
                If(LEqual(Arg0, 0x5)) {
                }
                PLED(Local0)
            }
        }
        Scope(\) {
            Method(PLED, 1) {
                ENFG()
                Store(0x8, LDN_)
                And(OPT6, 0x3f, Local0)
                Or(Local0, Arg0, OPT6)
                EXFG()
            }
        }
        Scope(\) {
            Method(SLED, 1) {
                ENFG()
                Store(0x9, LDN_)
                And(OPT4, 0x3f, Local0)
                Or(Local0, Arg0, OPT4)
                EXFG()
            }
        }
        Method(_PRW) {
            And(SUSF, 0x1, STAT)
            If(STAT) {
                Return(Package(0x2) {
                    0x5,
                    0x3,
                })
            }
            Else {
                Return(Package(0x2) {
                    0x5,
                    0x1,
                })
            }
        }
        Method(\_SB_.PCI0.UAR1._PRW) {
            If(OSFL) {
                Return(Package(0x2) {
                    0x8,
                    0x4,
                })
            }
            Else {
                If(STAT) {
                    Return(Package(0x2) {
                        0x8,
                        0x3,
                    })
                }
                Else {
                    Return(Package(0x2) {
                        0x8,
                        0x1,
                    })
                }
            }
        }
        Method(\_SB_.PCI0.LPT1._PRW) {
            If(OSFL) {
                Return(Package(0x2) {
                    0x8,
                    0x4,
                })
            }
            Else {
                If(STAT) {
                    Return(Package(0x2) {
                        0x8,
                        0x3,
                    })
                }
                Else {
                    Return(Package(0x2) {
                        0x8,
                        0x1,
                    })
                }
            }
        }
        Method(\_SB_.PCI0.ECP1._PRW) {
            If(OSFL) {
                Return(Package(0x2) {
                    0x8,
                    0x4,
                })
            }
            Else {
                If(STAT) {
                    Return(Package(0x2) {
                        0x8,
                        0x3,
                    })
                }
                Else {
                    Return(Package(0x2) {
                        0x8,
                        0x1,
                    })
                }
            }
        }
    }
}

}
/*
APIC: Length=3D84, Revision=3D1, Checksum=3D7,
=09OEMID=3DVT8366, OEM Table ID=3DMSI ACPI, OEM Revision=3D0x42302e31,
=09Creator ID=3DAWRD, Creator Revision=3D0x0
 */

--------------Boundary-00=_BBPFW5Q4S2KQ9DEFPRK0
Content-Type: text/plain;
  charset="us-ascii";
  name="MYKERNEL"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="MYKERNEL"

machine		i386
cpu		I686_CPU
options		CPU_ENABLE_SSE
options         CPU_SUSP_HLT

ident		MYKERNEL
maxusers	0

# Networking Options
options 	INET			#InterNETworking
#options        NFSCLIENT               #Network Filesystem Client
#options        NFSSERVER               #Network Filesystem Server

# Filesystems
options 	FFS			#Berkeley Fast Filesystem
options 	SOFTUPDATES		#Enable FFS soft updates support
options 	UFS_DIRHASH		#Improve performance on big directories

options 	MSDOSFS			#MSDOS Filesystem
options 	CD9660			#ISO 9660 Filesystem

options 	PROCFS			#Process filesystem (requires PSEUDOFS)
options 	PSEUDOFS		#Pseudo-filesystem framework

# Compatibility options
options 	COMPAT_43		#Compatible with BSD 4.3 [KEEP THIS!]
options 	COMPAT_FREEBSD4		#Compatible with FreeBSD4

options 	SYSVSHM			#SYSV-style shared memory
options 	SYSVMSG			#SYSV-style message queues
options 	SYSVSEM			#SYSV-style semaphores
options 	_KPOSIX_PRIORITY_SCHEDULING#Posix P1003_1B real-time extensions
options         KTRACE                  #ktrace(1) support

# Devices
device		isa
device		pci

# ATA and ATAPI devices
device		ata
device		atadisk			# ATA disk drives
device		atapicd			# ATAPI CDROM drives
device		atapifd			# ATAPI floppy drives

# SCSI peripherals
device		scbus		# SCSI bus (required)
device		da		# Direct Access (disks)
device		cd		# CD

# atkbdc0 controls both the keyboard and the PS/2 mouse
device		atkbdc		# AT keyboard controller
device		atkbd		# AT keyboard
device		psm		# PS/2 mouse
options         KBD_INSTALL_CDEV# install a CDEV entry in /dev

# VGA / VESA 
device		vga		# VGA video card driver
options         FB_INSTALL_CDEV # install a CDEV entry in /dev

device		splash		# Splash screen and screen saver support

# syscons is the default console driver, resembling an SCO console
device		sc
options         SC_PIXEL_MODE
options         VESA

# Floating point support - do not disable.
device		npx

# PowerManagement

device		pmtimer

# Serial (COM) ports
device		sio		# 8250, 16[45]50 based serial ports

# Parallel port
device		ppc
device		ppbus		# Parallel port bus (required)
device		lpt		# Printer
device		ppi		# Parallel port interface device
device		vpo		# Requires scbus and da

# PCI Ethernet NICs that use the common MII bus controller code.
device		miibus		# MII bus support
device		rl		# RealTek 8129/8139

# Multimedia Devices
device		pcm
device		joy
device          pca
device		smbus
device		iicbus
device		iicbb
device		bktr
options		OVERRIDE_TUNER=5

# Pseudo devices - the number indicates how many units to allocate.
device		random		# Entropy device
device		loop		# Network loopback
device		ether		# Ethernet support
device		ppp		# Kernel PPP
device		tun		# Packet tunnel.
device		pty		# Pseudo-ttys (telnet etc)
device		bpf		# Berkeley packet filter

# USB support
device		uhci		# UHCI PCI->USB interface
device		usb		# USB Bus (required)

--------------Boundary-00=_BBPFW5Q4S2KQ9DEFPRK0--
