Jump to content
3 posts in this topic

Recommended Posts

I'm having an issue patching my DSDT.  I have found code to patch the DSDT for ALC269VC in 2 or 3 places in the usual circles.  Here is the code:

 

Device (HDEF)
{
Name (_ADR, 0x001B0000)
OperationRegion (HDAR, PCI_Config, 0x4C, 0x10)
Field (HDAR, WordAcc, NoLock, Preserve)
{
DCKA, 1, 
Offset (0x01), 
DCKM, 1, 
, 6, 
DCKS, 1, 
Offset (0x08), 
, 15, 
PMES, 1
}

Method (_DSM, 4, NotSerialized)
{
Store (Package (0x16)
{
"AAPL,slot-name", 
Buffer (0x09)
{
"built-in"
}, 

"codec-id", 
Buffer (0x04)
{
0x69, 0x02, 0xEC, 0x10
}, 

"built-in", 
Buffer (One)
{
0x00
}, 

"name", 
Buffer (0x0F)
{
"Realtek ALC269"
}, 

"model", 
Buffer (0x10)
{
"Realtek ALC271X"
}, 

"device-type", 
Buffer (0x25)
{
"High Definition Audio Controller"
}, 

"layout-id", 
Buffer (0x04)
{
0x1C, 0x00, 0x00, 0x00
}, 

"device_type", 
Buffer (0x06)
{
"Sound"
}, 

"subsystem-vendor-id", 
Buffer (0x04)
{
0x86, 0x80, 0x00, 0x00
}, 

"hda-gfx", 
Buffer (0x0A)
{
"onboard-2"
}, 

"PinConfigurations", 
Buffer (Zero) {}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}

Method (_PRW, 0, NotSerialized)
{
Return (Package (0x02)
{
0x0D, 
0x05
})
}
}

However, the patch won't apply or compile in maciASL.  Here is my current DSDT:
 

/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20130725-64 [Jul 30 2013]
 * Copyright (c) 2000 - 2013 Intel Corporation
 * 
 * Disassembly of iASLkXj2Iu.aml, Fri Apr 18 10:39:57 2014
 *
 * Original Table Header:
 *     Signature        "DSDT"
 *     Length           0x000128DC (75996)
 *     Revision         0x02
 *     Checksum         0x9B
 *     OEM ID           "_ASUS_"
 *     OEM Table ID     "Notebook"
 *     OEM Revision     0x00000000 (0)
 *     Compiler ID      "INTL"
 *     Compiler Version 0x20051117 (537202967)
 */
DefinitionBlock ("iASLkXj2Iu.aml", "DSDT", 2, "_ASUS_", "Notebook", 0x00000000)
{

    External (ALIB, MethodObj)    // 2 Arguments
    External (APTS, MethodObj)    // 1 Arguments
    External (AWAK, MethodObj)    // 1 Arguments

    Name (SMBB, 0x0B20)
    Name (SMBL, 0x20)
    Name (SMB0, 0x0B00)
    Name (SMBM, 0x10)
    Name (PMBS, 0x0800)
    Name (SMIO, 0xB2)
    Name (GPBS, Zero)
    Name (GPLN, Zero)
    Name (APCB, 0xFEC00000)
    Name (APCL, 0x1000)
    Name (HPTB, 0xFED00000)
    Name (HPTL, 0x1000)
    Name (GIOB, 0xFED80100)
    Name (IOMB, 0xFED80D00)
    Name (SMIB, 0xFED80200)
    Name (PEBS, 0xE0000000)
    Name (PEBL, 0x10000000)
    Name (PXNO, 0x02)
    Name (ACPH, 0xDE)
    Name (ASSB, Zero)
    Name (AOTB, Zero)
    Name (AAXB, Zero)
    Name (PEHP, One)
    Name (SHPC, Zero)
    Name (PEER, One)
    Name (PECS, One)
    Name (ITKE, Zero)
    Name (SRSI, 0xB2)
    Name (CSMI, 0x61)
    Name (DSSP, Zero)
    Name (FHPP, Zero)
    Name (PEPM, One)
    Name (CPVD, One)
    Name (HIDK, "MSFT0001")
    Name (HIDM, "MSFT0003")
    Name (CIDK, 0x0303D041)
    Name (CIDM, 0x030FD041)
    Name (ATIS, 0xB0)
    Name (MBEC, Zero)
    Name (SPIB, 0xFEC10000)
    Name (SPIL, 0x1000)
    Name (PMLN, 0xA0)
    Name (MBLF, 0x0A)
    Name (SOAO, 0x6B)
    Name (PICM, Zero)
    Method (_PIC, 1, NotSerialized)  // _PIC: Interrupt Model
    {
        If (Arg0)
        {
            Store (0xAE, DBG8)
            \_SB.IRQC ()
        }
        Else
        {
            Store (0xAC, DBG8)
        }

        Store (Arg0, PICM)
    }

    Name (OSVR, Ones)
    Method (OSFL, 0, NotSerialized)
    {
        If (LNotEqual (OSVR, Ones))
        {
            Return (OSVR)
        }

        If (LEqual (PICM, Zero))
        {
            Store (0xAC, DBG8)
        }

        Store (0x03, OSVR)
        If (CondRefOf (_OSI, Local0))
        {
            If (_OSI ("Windows 2001"))
            {
                Store (0x04, OSVR)
            }

            If (_OSI ("Windows 2001.1"))
            {
                Store (0x05, OSVR)
            }

            If (_OSI ("FreeBSD"))
            {
                Store (0x06, OSVR)
            }

            If (_OSI ("HP-UX"))
            {
                Store (0x07, OSVR)
            }

            If (_OSI ("OpenVMS"))
            {
                Store (0x08, OSVR)
            }

            If (_OSI ("Windows 2001 SP1"))
            {
                Store (0x09, OSVR)
            }

            If (_OSI ("Windows 2001 SP2"))
            {
                Store (0x0A, OSVR)
            }

            If (_OSI ("Windows 2001 SP3"))
            {
                Store (0x0B, OSVR)
            }

            If (_OSI ("Windows 2006"))
            {
                Store (0x0C, OSVR)
            }

            If (_OSI ("Windows 2006 SP1"))
            {
                Store (0x0D, OSVR)
            }

            If (_OSI ("Windows 2009"))
            {
                Store (0x0E, OSVR)
            }

            If (_OSI ("Windows 2012"))
            {
                Store (0x0F, OSVR)
            }
        }
        Else
        {
            If (MCTH (_OS, "Microsoft Windows NT"))
            {
                Store (Zero, OSVR)
            }

            If (MCTH (_OS, "Microsoft Windows"))
            {
                Store (One, OSVR)
            }

            If (MCTH (_OS, "Microsoft WindowsME: Millennium Edition"))
            {
                Store (0x02, OSVR)
            }

            If (MCTH (_OS, "Linux"))
            {
                Store (0x03, OSVR)
            }

            If (MCTH (_OS, "FreeBSD"))
            {
                Store (0x06, OSVR)
            }

            If (MCTH (_OS, "HP-UX"))
            {
                Store (0x07, OSVR)
            }

            If (MCTH (_OS, "OpenVMS"))
            {
                Store (0x08, OSVR)
            }
        }

        Return (OSVR)
    }

    Method (MCTH, 2, NotSerialized)
    {
        If (LLess (SizeOf (Arg0), SizeOf (Arg1)))
        {
            Return (Zero)
        }

        Add (SizeOf (Arg0), One, Local0)
        Name (BUF0, Buffer (Local0) {})
        Name (BUF1, Buffer (Local0) {})
        Store (Arg0, BUF0)
        Store (Arg1, BUF1)
        While (Local0)
        {
            Decrement (Local0)
            If (LNotEqual (DerefOf (Index (BUF0, Local0)), DerefOf (Index (
                BUF1, Local0))))
            {
                Return (Zero)
            }
        }

        Return (One)
    }

    Name (PRWP, Package (0x02)
    {
        Zero, 
        Zero
    })
    Method (GPRW, 2, NotSerialized)
    {
        Store (Arg0, Index (PRWP, Zero))
        Store (ShiftLeft (SS1, One), Local0)
        Or (Local0, ShiftLeft (SS2, 0x02), Local0)
        Or (Local0, ShiftLeft (SS3, 0x03), Local0)
        Or (Local0, ShiftLeft (SS4, 0x04), Local0)
        If (And (ShiftLeft (One, Arg1), Local0))
        {
            Store (Arg1, Index (PRWP, One))
        }
        Else
        {
            ShiftRight (Local0, One, Local0)
            If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
            {
                FindSetLeftBit (Local0, Index (PRWP, One))
            }
            Else
            {
                FindSetRightBit (Local0, Index (PRWP, One))
            }
        }

        Return (PRWP)
    }

    Name (WAKP, Package (0x02)
    {
        Zero, 
        Zero
    })
    OperationRegion (DEB0, SystemIO, 0x80, One)
    Field (DEB0, ByteAcc, NoLock, Preserve)
    {
        DBG8,   8
    }

    OperationRegion (DEB1, SystemIO, 0x90, 0x02)
    Field (DEB1, WordAcc, NoLock, Preserve)
    {
        DBG9,   16
    }

    Name (SS1, Zero)
    Name (SS2, Zero)
    Name (SS3, One)
    Name (SS4, One)
    Name (IOST, 0xC400)
    Name (TOPM, 0x00000000)
    Name (ROMS, 0xFFE00000)
    Name (VGAF, One)
    OperationRegion (DEB2, SystemIO, 0xEB, 0x02)
    Field (DEB2, WordAcc, NoLock, Preserve)
    {
        P80H,   16
    }

    Name (OSTY, Ones)
    OperationRegion (ACMS, SystemIO, 0x72, 0x10)
    Field (ACMS, ByteAcc, NoLock, Preserve)
    {
        ICMS,   8, 
        DCMS,   8, 
        Offset (0x0E), 
        P80,    8
    }

    Name (PCIE, 0xE0000000)
    Name (OSCF, Zero)
    Name (GGN2, One)
    OperationRegion (CMPT, SystemIO, 0x0C50, 0x03)
    Field (CMPT, ByteAcc, NoLock, Preserve)
    {
        CMID,   8, 
            ,   6, 
        GPCT,   2, 
        GP0I,   1, 
        GP1I,   1, 
        GP2I,   1, 
        GP3I,   1, 
        GP4I,   1, 
        GP5I,   1, 
        GP6I,   1, 
        GP7I,   1
    }

    OperationRegion (PCFG, SystemMemory, PCIE, 0x02000000)
    Field (PCFG, AnyAcc, NoLock, Preserve)
    {
        Offset (0x20078), 
        Offset (0x2007A), 
        PMSA,   1, 
        Offset (0x28078), 
        Offset (0x2807A), 
        PMSB,   1, 
        Offset (0x48078), 
        Offset (0x4807A), 
        PMSC,   1, 
        Offset (0x8800A), 
        STCL,   16, 
        Offset (0x880FC), 
        RMBA,   32, 
        Offset (0xA0004), 
        SMIE,   1, 
        SMME,   1, 
        Offset (0xA0008), 
        RVID,   8, 
        Offset (0xA0014), 
        SMB1,   32, 
        Offset (0xA0082), 
            ,   2, 
        G31O,   1, 
        Offset (0xA00E1), 
            ,   6, 
        ACIR,   1, 
        Offset (0xA4004), 
        PCMD,   2, 
        Offset (0xA807A), 
        PMS0,   1, 
        Offset (0xA8088), 
        TLS0,   4, 
        Offset (0xA907A), 
        PMS1,   1, 
        Offset (0xA9088), 
        TLS1,   4, 
        Offset (0xAA07A), 
        PMS2,   1, 
        Offset (0xAA088), 
        TLS2,   4, 
        Offset (0xAB07A), 
        PMS3,   1, 
        Offset (0xAB088), 
        TLS3,   4
    }

    OperationRegion (PMIO, SystemIO, 0x0CD6, 0x02)
    Field (PMIO, ByteAcc, NoLock, Preserve)
    {
        INPM,   8, 
        DAPM,   8
    }

    IndexField (INPM, DAPM, ByteAcc, NoLock, Preserve)
    {
        Offset (0x24), 
        MMSO,   32, 
        Offset (0x50), 
        HPAD,   32, 
        Offset (0x60), 
        P1EB,   16
    }

    OperationRegion (ERMM, SystemMemory, MMSO, 0x1000)
    Field (ERMM, AnyAcc, NoLock, Preserve)
    {
        Offset (0x105), 
            ,   5, 
        G06E,   1, 
        G06O,   1, 
        G06I,   1, 
        G07B,   8, 
        Offset (0x10A), 
        G0BB,   8, 
        Offset (0x10D), 
        G0EB,   8, 
        Offset (0x113), 
            ,   5, 
        G14E,   1, 
        G14O,   1, 
        G14I,   1, 
            ,   5, 
        G15E,   1, 
        G15O,   1, 
        G15I,   1, 
        Offset (0x11B), 
            ,   7, 
        G1CI,   1, 
        Offset (0x11F), 
            ,   7, 
        G20I,   1, 
        Offset (0x122), 
            ,   5, 
        G23E,   1, 
        G23O,   1, 
        G23I,   1, 
        Offset (0x12B), 
            ,   5, 
        G2CE,   1, 
        G2CO,   1, 
        G2CI,   1, 
            ,   5, 
        G2DE,   1, 
        G2DO,   1, 
        G2DI,   1, 
        Offset (0x132), 
            ,   5, 
        G33E,   1, 
        G33O,   1, 
        G33I,   1, 
        Offset (0x134), 
            ,   5, 
        G35E,   1, 
        G35O,   1, 
        Offset (0x136), 
            ,   5, 
        G37E,   1, 
        G37O,   1, 
        G37I,   1, 
        Offset (0x13F), 
            ,   7, 
        G40I,   1, 
        Offset (0x164), 
            ,   7, 
        GE05,   1, 
            ,   7, 
        GE06,   1, 
        Offset (0x16E), 
            ,   7, 
        GE15,   1, 
            ,   7, 
        GE16,   1, 
        Offset (0x175), 
            ,   7, 
        GE22,   1, 
        Offset (0x1A9), 
            ,   5, 
        GAAE,   1, 
        GAAO,   1, 
        GAAI,   1, 
            ,   5, 
        GABE,   1, 
        GABO,   1, 
        Offset (0x1AE), 
        GAFB,   8, 
        GB0B,   8, 
        Offset (0x1FF), 
            ,   9, 
        GESA,   1, 
        Offset (0x207), 
            ,   5, 
        E05C,   1, 
        E06C,   1, 
        Offset (0x208), 
        E08C,   1, 
        E09C,   1, 
        Offset (0x209), 
        E10C,   1, 
        Offset (0x20A), 
            ,   5, 
        E1DC,   1, 
        Offset (0x2AF), 
            ,   2, 
        SLPS,   2, 
        Offset (0x376), 
        EPNM,   1, 
        DPPF,   1, 
        Offset (0x3BA), 
            ,   6, 
        PWDE,   1, 
        Offset (0x3BD), 
            ,   5, 
        ALLS,   1, 
        Offset (0x3EF), 
        PHYD,   1, 
            ,   1, 
            ,   1, 
        US5R,   1, 
        Offset (0x3F5), 
        GECD,   1, 
        Offset (0xD05), 
        G06M,   8, 
        G07M,   8, 
        Offset (0xD0A), 
        G0BM,   8, 
        Offset (0xD0D), 
        G0EM,   8, 
        Offset (0xD13), 
        G14M,   8, 
        Offset (0xD1B), 
        G1CM,   8, 
        Offset (0xD1F), 
        G20M,   8, 
        Offset (0xD22), 
        G23M,   8, 
        Offset (0xD2C), 
        G2DM,   8, 
        Offset (0xD36), 
        G37M,   8, 
        Offset (0xD6F), 
        G70M,   8, 
        Offset (0xD75), 
        G76M,   8, 
        Offset (0xDA9), 
        GAAM,   8, 
        Offset (0xDAE), 
        GAFM,   8, 
        GB0M,   8, 
        Offset (0xE7F), 
            ,   2, 
        IMCS,   1
    }

    OperationRegion (ABIO, SystemIO, 0x0CD8, 0x08)
    Field (ABIO, DWordAcc, NoLock, Preserve)
    {
        INAB,   32, 
        DAAB,   32
    }

    Method (RDAB, 1, NotSerialized)
    {
        Store (Arg0, INAB)
        Return (DAAB)
    }

    Method (WTAB, 2, NotSerialized)
    {
        Store (Arg0, INAB)
        Store (Arg1, DAAB)
    }

    Method (RWAB, 3, NotSerialized)
    {
        And (RDAB (Arg0), Arg1, Local0)
        Or (Local0, Arg2, Local1)
        WTAB (Arg0, Local1)
    }

    Method (CABR, 3, NotSerialized)
    {
        ShiftLeft (Arg0, 0x05, Local0)
        Add (Local0, Arg1, Local1)
        ShiftLeft (Local1, 0x18, Local2)
        Add (Local2, Arg2, Local3)
        Return (Local3)
    }

    Method (GHPS, 2, NotSerialized)
    {
        If (LEqual (Arg0, Zero))
        {
            RWAB (CABR (0x06, Zero, 0xC0), 0xFFFFBFFF, Zero)
            RWAB (CABR (One, Zero, 0x65), 0xFFFFFBFB, Zero)
            Stall (0xC8)
        }

        If (LEqual (Arg0, One))
        {
            RWAB (CABR (0x06, Zero, 0xC0), 0xFFFFBFFF, 0x4000)
            RWAB (CABR (One, Zero, 0x65), 0xFFFFFBFB, 0x0404)
            Stall (0xC8)
        }

        If (GGN2)
        {
            If (LEqual (Arg0, Zero))
            {
                GEN2 ()
                Store (RDAB (CABR (0x03, 0x02, 0xA5)), Local0)
                And (Local0, 0xFF, Local0)
                Store (0x01F4, Local1)
                While (LAnd (LGreater (Local1, Zero), LNotEqual (Local0, 0x10)))
                {
                    Store (RDAB (CABR (0x03, 0x02, 0xA5)), Local0)
                    And (Local0, 0xFF, Local0)
                    Decrement (Local1)
                    Stall (0xC8)
                    Stall (0xC8)
                }

                If (LNotEqual (Local0, 0x10))
                {
                    GEN1 ()
                }
            }
        }
    }

    Method (GEN2, 0, NotSerialized)
    {
        Store (0x02, TLS2)
        RWAB (CABR (0x03, 0x02, 0xA4), 0xFFFFFFFE, One)
        RWAB (CABR (0x03, 0x02, 0xA2), 0xFFFFDFFF, 0x2000)
        RWAB (CABR (0x03, 0x02, 0xC0), 0xFFFF7FFF, 0x8000)
        RWAB (CABR (0x03, 0x02, 0xA4), 0xDFFFFFFF, 0x20000000)
        Stall (0xC8)
        Stall (0xC8)
    }

    Method (GEN1, 0, NotSerialized)
    {
        Store (One, TLS2)
        RWAB (CABR (0x03, 0x02, 0xA4), 0xFFFFFFFE, Zero)
        RWAB (CABR (0x03, 0x02, 0xA2), 0xFFFFDFFF, 0x2000)
        Stall (0xC8)
        Stall (0xC8)
    }

    OperationRegion (P1E0, SystemIO, P1EB, 0x04)
    Field (P1E0, ByteAcc, NoLock, Preserve)
    {
            ,   14, 
        PEWS,   1, 
        WSTA,   1, 
            ,   14, 
        PEWD,   1
    }

    Method (SPTS, 1, NotSerialized)
    {
        Store (One, PCMD)
        Store (Arg0, P80)
        If (IMCS)
        {
            IBSE ()
        }

        CPMS ()
        CPMS ()
        Store (One, PEWS)
    }

    Method (SWAK, 1, NotSerialized)
    {
        If (PICM)
        {
            \_SB.IRQC ()
        }

        CPMS ()
        CPMS ()
        Store (One, PEWS)
        If (IMCS)
        {
            IBWE ()
        }
    }

    Method (TRMD, 1, NotSerialized)
    {
    }

    Method (CPMS, 0, NotSerialized)
    {
        If (LEqual (EPNM, Zero))
        {
            Store (One, PMSA)
            Store (One, PMSB)
            Store (One, PMSC)
            Store (One, PMS0)
            Store (One, PMS1)
            Store (One, PMS2)
            Store (One, PMS3)
        }
    }

    Scope (_GPE)
    {
    }

    OperationRegion (IMIO, SystemIO, 0x3E, 0x02)
    Field (IMIO, ByteAcc, NoLock, Preserve)
    {
        IMCX,   8, 
        IMCA,   8
    }

    IndexField (IMCX, IMCA, ByteAcc, NoLock, Preserve)
    {
        Offset (0x80), 
        MSTI,   8, 
        MITS,   8, 
        MRG0,   8, 
        MRG1,   8, 
        MRG2,   8, 
        MRG3,   8
    }

    Method (WACK, 0, NotSerialized)
    {
        Store (Zero, Local0)
        While (LNotEqual (Local0, 0xFA))
        {
            Store (MRG0, Local0)
            Sleep (0x0A)
        }
    }

    Method (IBSE, 0, NotSerialized)
    {
        Store (Zero, MRG0)
        Store (0xB5, MRG1)
        Store (Zero, MRG2)
        Store (0x96, MSTI)
        WACK ()
        Store (Zero, MRG0)
        Store (Zero, MRG1)
        Store (Zero, MRG2)
        Store (0x80, MSTI)
        WACK ()
        Store (MRG2, Local0)
        And (Local0, 0xFE, Local0)
        Store (Zero, MRG0)
        Store (Zero, MRG1)
        Store (Local0, MRG2)
        Store (0x81, MSTI)
        WACK ()
        Store (Zero, MRG0)
        Store (One, MRG1)
        Store (Zero, MRG2)
        Store (0x98, MSTI)
        WACK ()
        Store (Zero, MRG0)
        Store (0xB4, MRG1)
        Store (Zero, MRG2)
        Store (0x96, MSTI)
        WACK ()
    }

    Method (IBWE, 0, NotSerialized)
    {
        Store (Zero, MRG0)
        Store (0xB5, MRG1)
        Store (Zero, MRG2)
        Store (0x96, MSTI)
        WACK ()
        Store (Zero, MRG0)
        Store (Zero, MRG1)
        Store (Zero, MRG2)
        Store (0x80, MSTI)
        WACK ()
        Store (MRG2, Local0)
        Or (Local0, One, Local0)
        Store (Zero, MRG0)
        Store (Zero, MRG1)
        Store (Local0, MRG2)
        Store (0x81, MSTI)
        WACK ()
    }

    Scope (_SB)
    {
        Name (PR00, Package (0x2D)
        {
            Package (0x04)
            {
                0x0014FFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0014FFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0011FFFF, 
                Zero, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                Zero, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                One, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                0x02, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                0x03, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                Zero, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                One, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x02, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x03, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                0x03, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                Zero, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                One, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                0x02, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                0x03, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                Zero, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                One, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                0x02, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                0x03, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0007FFFF, 
                Zero, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x0007FFFF, 
                One, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0007FFFF, 
                0x02, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0007FFFF, 
                0x03, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0014FFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0014FFFF, 
                0x03, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x0012FFFF, 
                Zero, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0012FFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0013FFFF, 
                Zero, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0013FFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                Zero, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0010FFFF, 
                Zero, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0010FFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0015FFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0015FFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0015FFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0015FFFF, 
                0x03, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                Zero, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                One, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x02, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x03, 
                LNKB, 
                Zero
            }
        })
        Name (AR00, Package (0x2D)
        {
            Package (0x04)
            {
                0x0014FFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0014FFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0011FFFF, 
                Zero, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                Zero, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                One, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                0x02, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                0x03, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                Zero, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                One, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x02, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x03, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                0x03, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                Zero, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                One, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                0x02, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                0x03, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                Zero, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                One, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                0x02, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                0x03, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0007FFFF, 
                Zero, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x0007FFFF, 
                One, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0007FFFF, 
                0x02, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0007FFFF, 
                0x03, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0014FFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0014FFFF, 
                0x03, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x0012FFFF, 
                Zero, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0012FFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0013FFFF, 
                Zero, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0013FFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                Zero, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0010FFFF, 
                Zero, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0010FFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0015FFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0015FFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0015FFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0015FFFF, 
                0x03, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                Zero, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                One, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x02, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x03, 
                Zero, 
                0x11
            }
        })
        Name (PR20, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKD, 
                Zero
            }
        })
        Name (AR20, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x13
            }
        })
        Name (PR21, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKA, 
                Zero
            }
        })
        Name (AR21, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x10
            }
        })
        Name (PR22, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKB, 
                Zero
            }
        })
        Name (AR22, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x11
            }
        })
        Name (PR23, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKC, 
                Zero
            }
        })
        Name (AR23, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x12
            }
        })
        Name (PR12, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKB, 
                Zero
            }
        })
        Name (AR12, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x11
            }
        })
        Name (PR13, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKC, 
                Zero
            }
        })
        Name (AR13, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x12
            }
        })
        Name (PR14, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKD, 
                Zero
            }
        })
        Name (AR14, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x13
            }
        })
        Name (PR15, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKA, 
                Zero
            }
        })
        Name (AR15, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x10
            }
        })
        Name (PR16, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKB, 
                Zero
            }
        })
        Name (AR16, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x11
            }
        })
        Name (PR17, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKC, 
                Zero
            }
        })
        Name (AR17, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x12
            }
        })
        Name (PRSA, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {4,5,7,10,11,14,15}
        })
        Alias (PRSA, PRSB)
        Alias (PRSA, PRSC)
        Alias (PRSA, PRSD)
        Alias (PRSA, PRSE)
        Alias (PRSA, PRSF)
        Alias (PRSA, PRSG)
        Alias (PRSA, PRSH)
        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A03"))  // _HID: Hardware ID
            Name (_ADR, 0x00180000)  // _ADR: Address
            Method (^BN00, 0, NotSerialized)
            {
                Return (Zero)
            }

            Method (_BBN, 0, NotSerialized)  // _BBN: BIOS Bus Number
            {
                Return (BN00 ())
            }

            Name (_UID, Zero)  // _UID: Unique ID
            Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
            {
                If (PICM)
                {
                    Return (AR00)
                }

                Return (PR00)
            }

            Name (CPRB, One)
            Name (LVGA, 0x01)
            Name (STAV, 0x0F)
            Name (BRB, 0x0000)
            Name (BRL, 0x0100)
            Name (IOB, 0x1000)
            Name (IOL, 0xF000)
            Name (MBB, 0xB0000000)
            Name (MBL, 0x50000000)
            Name (MABL, 0x00000000)
            Name (MABH, 0x00000000)
            Name (MALL, 0x00000000)
            Name (MALH, 0x00000000)
            Name (MAML, 0x00000000)
            Name (MAMH, 0x00000000)
            Name (CRS1, ResourceTemplate ()
            {
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
                    0x0000,             // Granularity
                    0x0000,             // Range Minimum
                    0x007F,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0080,             // Length
                    ,, _Y00)
                IO (Decode16,
                    0x0CF8,             // Range Minimum
                    0x0CF8,             // Range Maximum
                    0x01,               // Alignment
                    0x08,               // Length
                    )
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,             // Granularity
                    0x0000,             // Range Minimum
                    0x03AF,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x03B0,             // Length
                    ,, , TypeStatic)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,             // Granularity
                    0x03E0,             // Range Minimum
                    0x0CF7,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0918,             // Length
                    ,, , TypeStatic)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,             // Granularity
                    0x0000,             // Range Minimum
                    0x0000,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0000,             // Length
                    ,, _Y02, TypeStatic)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,             // Granularity
                    0x0D00,             // Range Minimum
                    0x0FFF,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0300,             // Length
                    ,, _Y01, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x00000000,         // Range Minimum
                    0x00000000,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000000,         // Length
                    ,, _Y03, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000C0000,         // Range Minimum
                    0x000DFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00020000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x02000000,         // Range Minimum
                    0xFFDFFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0xFDFC0000,         // Length
                    ,, _Y04, AddressRangeMemory, TypeStatic)
                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x0000000000000000, // Granularity
                    0x0000000000000000, // Range Minimum
                    0x0000000000000000, // Range Maximum
                    0x0000000000000000, // Translation Offset
                    0x0000000000000000, // Length
                    ,, _Y05, AddressRangeMemory, TypeStatic)
            })
            Name (CRS2, ResourceTemplate ()
            {
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
                    0x0000,             // Granularity
                    0x0080,             // Range Minimum
                    0x00FF,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0080,             // Length
                    ,, _Y06)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,             // Granularity
                    0x0000,             // Range Minimum
                    0x0000,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0000,             // Length
                    ,, _Y08, TypeStatic)
                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x0000,             // Granularity
                    0x0000,             // Range Minimum
                    0x0000,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0000,             // Length
                    ,, _Y07, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x00000000,         // Range Minimum
                    0x00000000,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000000,         // Length
                    ,, _Y09, AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x80000000,         // Range Minimum
                    0xFFFFFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x80000000,         // Length
                    ,, _Y0A, AddressRangeMemory, TypeStatic)
                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x0000000000000000, // Granularity
                    0x0000000000000000, // Range Minimum
                    0x0000000000000000, // Range Maximum
                    0x0000000000000000, // Translation Offset
                    0x0000000000000000, // Length
                    ,, _Y0B, AddressRangeMemory, TypeStatic)
            })
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Return (STAV)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                If (CPRB)
                {
                    CreateWordField (CRS1, \_SB.PCI0._Y00._MIN, MIN0)  // _MIN: Minimum Base Address
                    CreateWordField (CRS1, \_SB.PCI0._Y00._MAX, MAX0)  // _MAX: Maximum Base Address
                    CreateWordField (CRS1, \_SB.PCI0._Y00._LEN, LEN0)  // _LEN: Length
                    Store (BRB, MIN0)
                    Store (BRL, LEN0)
                    Store (LEN0, Local0)
                    Add (MIN0, Decrement (Local0), MAX0)
                    CreateWordField (CRS1, \_SB.PCI0._Y01._MIN, MIN1)  // _MIN: Minimum Base Address
                    CreateWordField (CRS1, \_SB.PCI0._Y01._MAX, MAX1)  // _MAX: Maximum Base Address
                    CreateWordField (CRS1, \_SB.PCI0._Y01._LEN, LEN1)  // _LEN: Length
                    If (LEqual (IOB, 0x1000))
                    {
                        Store (IOL, Local0)
                        Add (IOB, Decrement (Local0), MAX1)
                        Subtract (MAX1, MIN1, Local0)
                        Add (Local0, One, LEN1)
                    }
                    Else
                    {
                        Store (IOB, MIN1)
                        Store (IOL, LEN1)
                        Store (LEN1, Local0)
                        Add (MIN1, Decrement (Local0), MAX1)
                    }

                    If (LOr (LEqual (LVGA, One), LEqual (LVGA, 0x55)))
                    {
                        If (VGAF)
                        {
                            CreateWordField (CRS1, \_SB.PCI0._Y02._MIN, IMN1)  // _MIN: Minimum Base Address
                            CreateWordField (CRS1, \_SB.PCI0._Y02._MAX, IMX1)  // _MAX: Maximum Base Address
                            CreateWordField (CRS1, \_SB.PCI0._Y02._LEN, ILN1)  // _LEN: Length
                            Store (0x03B0, IMN1)
                            Store (0x03DF, IMX1)
                            Store (0x30, ILN1)
                            CreateDWordField (CRS1, \_SB.PCI0._Y03._MIN, VMN1)  // _MIN: Minimum Base Address
                            CreateDWordField (CRS1, \_SB.PCI0._Y03._MAX, VMX1)  // _MAX: Maximum Base Address
                            CreateDWordField (CRS1, \_SB.PCI0._Y03._LEN, VLN1)  // _LEN: Length
                            Store (0x000A0000, VMN1)
                            Store (0x000BFFFF, VMX1)
                            Store (0x00020000, VLN1)
                            Store (Zero, VGAF)
                        }
                    }

                    CreateDWordField (CRS1, \_SB.PCI0._Y04._MIN, MIN3)  // _MIN: Minimum Base Address
                    CreateDWordField (CRS1, \_SB.PCI0._Y04._MAX, MAX3)  // _MAX: Maximum Base Address
                    CreateDWordField (CRS1, \_SB.PCI0._Y04._LEN, LEN3)  // _LEN: Length
                    Store (MBB, MIN3)
                    Store (MBL, LEN3)
                    Store (LEN3, Local0)
                    Add (MIN3, Decrement (Local0), MAX3)
                    If (LOr (MALH, MALL))
                    {
                        CreateDWordField (CRS1, \_SB.PCI0._Y05._MIN, MN8L)  // _MIN: Minimum Base Address
                        Add (0xB4, 0x04, Local0)
                        CreateDWordField (CRS1, Local0, MN8H)
                        Store (MABL, MN8L)
                        Store (MABH, MN8H)
                        CreateDWordField (CRS1, \_SB.PCI0._Y05._MAX, MX8L)  // _MAX: Maximum Base Address
                        Add (0xBC, 0x04, Local1)
                        CreateDWordField (CRS1, Local1, MX8H)
                        CreateDWordField (CRS1, \_SB.PCI0._Y05._LEN, LN8L)  // _LEN: Length
                        Add (0xCC, 0x04, Local2)
                        CreateDWordField (CRS1, Local2, LN8H)
                        Store (MABL, MN8L)
                        Store (MABH, MN8H)
                        Store (MALL, LN8L)
                        Store (MALH, LN8H)
                        Store (MAML, MX8L)
                        Store (MAMH, MX8H)
                    }

                    Return (CRS1)
                }
                Else
                {
                    CreateWordField (CRS2, \_SB.PCI0._Y06._MIN, MIN2)  // _MIN: Minimum Base Address
                    CreateWordField (CRS2, \_SB.PCI0._Y06._MAX, MAX2)  // _MAX: Maximum Base Address
                    CreateWordField (CRS2, \_SB.PCI0._Y06._LEN, LEN2)  // _LEN: Length
                    Store (BRB, MIN2)
                    Store (BRL, LEN2)
                    Store (LEN2, Local1)
                    Add (MIN2, Decrement (Local1), MAX2)
                    CreateWordField (CRS2, \_SB.PCI0._Y07._MIN, MIN4)  // _MIN: Minimum Base Address
                    CreateWordField (CRS2, \_SB.PCI0._Y07._MAX, MAX4)  // _MAX: Maximum Base Address
                    CreateWordField (CRS2, \_SB.PCI0._Y07._LEN, LEN4)  // _LEN: Length
                    Store (IOB, MIN4)
                    Store (IOL, LEN4)
                    Store (LEN4, Local1)
                    Add (MIN4, Decrement (Local1), MAX4)
                    If (LVGA)
                    {
                        CreateWordField (CRS2, \_SB.PCI0._Y08._MIN, IMN2)  // _MIN: Minimum Base Address
                        CreateWordField (CRS2, \_SB.PCI0._Y08._MAX, IMX2)  // _MAX: Maximum Base Address
                        CreateWordField (CRS2, \_SB.PCI0._Y08._LEN, ILN2)  // _LEN: Length
                        Store (0x03B0, IMN2)
                        Store (0x03DF, IMX2)
                        Store (0x30, ILN2)
                        CreateDWordField (CRS2, \_SB.PCI0._Y09._MIN, VMN2)  // _MIN: Minimum Base Address
                        CreateDWordField (CRS2, \_SB.PCI0._Y09._MAX, VMX2)  // _MAX: Maximum Base Address
                        CreateDWordField (CRS2, \_SB.PCI0._Y09._LEN, VLN2)  // _LEN: Length
                        Store (0x000A0000, VMN2)
                        Store (0x000BFFFF, VMX2)
                        Store (0x00020000, VLN2)
                    }

                    CreateDWordField (CRS2, \_SB.PCI0._Y0A._MIN, MIN5)  // _MIN: Minimum Base Address
                    CreateDWordField (CRS2, \_SB.PCI0._Y0A._MAX, MAX5)  // _MAX: Maximum Base Address
                    CreateDWordField (CRS2, \_SB.PCI0._Y0A._LEN, LEN5)  // _LEN: Length
                    Store (MBB, MIN5)
                    Store (MBL, LEN5)
                    Store (LEN5, Local1)
                    Add (MIN5, Decrement (Local1), MAX5)
                    If (LOr (MALH, MALL))
                    {
                        CreateDWordField (CRS2, \_SB.PCI0._Y0B._MIN, MN9L)  // _MIN: Minimum Base Address
                        Add (0x72, 0x04, Local0)
                        CreateDWordField (CRS2, Local0, MN9H)
                        CreateDWordField (CRS2, \_SB.PCI0._Y0B._MAX, MX9L)  // _MAX: Maximum Base Address
                        Add (0x7A, 0x04, Local1)
                        CreateDWordField (CRS2, Local1, MX9H)
                        CreateDWordField (CRS2, \_SB.PCI0._Y0B._LEN, LN9L)  // _LEN: Length
                        Add (0x8A, 0x04, Local2)
                        CreateDWordField (CRS2, Local2, LN9H)
                        Store (MABL, MN9L)
                        Store (MABH, MN9H)
                        Store (MALL, LN9L)
                        Store (MALH, LN9H)
                        Store (MAML, MX9L)
                        Store (MAMH, MX9H)
                    }

                    Return (CRS2)
                }
            }

            Scope (\_SB)
            {
                Scope (PCI0)
                {
                    Device (AMDN)
                    {
                        Name (_HID, EisaId ("PNP0C01"))  // _HID: Hardware ID
                        Name (_UID, 0xC8)  // _UID: Unique ID
                        Name (_STA, 0x0F)  // _STA: Status
                        Name (NPTR, ResourceTemplate ()
                        {
                            Memory32Fixed (ReadWrite,
                                0x00000000,         // Address Base
                                0x00000000,         // Address Length
                                _Y0C)
                        })
                        Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                        {
                            CreateDWordField (NPTR, \_SB.PCI0.AMDN._Y0C._LEN, PL)  // _LEN: Length
                            CreateDWordField (NPTR, \_SB.PCI0.AMDN._Y0C._BAS, PB)  // _BAS: Base Address
                            Store (PEBS, PB)
                            Store (PEBL, PL)
                            Return (NPTR)
                        }
                    }
                }
            }

            Method (NPTS, 1, NotSerialized)
            {
                APTS (Arg0)
            }

            Method (NWAK, 1, NotSerialized)
            {
                AWAK (Arg0)
            }

            Device (IDEC)
            {
                Name (_ADR, 0x00140001)  // _ADR: Address
                Name (UDMT, Package (0x08)
                {
                    0x78, 
                    0x5A, 
                    0x3C, 
                    0x2D, 
                    0x1E, 
                    0x14, 
                    0x0F, 
                    Zero
                })
                Name (PIOT, Package (0x06)
                {
                    0x0258, 
                    0x0186, 
                    0x010E, 
                    0xB4, 
                    0x78, 
                    Zero
                })
                Name (PITR, Package (0x06)
                {
                    0x99, 
                    0x47, 
                    0x34, 
                    0x22, 
                    0x20, 
                    0x99
                })
                Name (MDMT, Package (0x04)
                {
                    0x01E0, 
                    0x96, 
                    0x78, 
                    Zero
                })
                Name (MDTR, Package (0x04)
                {
                    0x77, 
                    0x21, 
                    0x20, 
                    0xFF
                })
                OperationRegion (IDE, PCI_Config, 0x40, 0x20)
                Field (IDE, AnyAcc, NoLock, Preserve)
                {
                    PPIT,   16, 
                    SPIT,   16, 
                    PMDT,   16, 
                    SMDT,   16, 
                    PPIC,   8, 
                    SPIC,   8, 
                    PPIM,   8, 
                    SPIM,   8, 
                    Offset (0x14), 
                    PUDC,   2, 
                    SUDC,   2, 
                    Offset (0x16), 
                    PUDM,   8, 
                    SUDM,   8
                }

                Method (GETT, 1, NotSerialized)
                {
                    Store (And (Arg0, 0x0F), Local0)
                    Store (ShiftRight (Arg0, 0x04), Local1)
                    Return (Multiply (0x1E, Add (Add (Local0, One), Add (Local1, 
                        One))))
                }

                Method (GTM, 1, NotSerialized)
                {
                    CreateByteField (Arg0, Zero, PIT1)
                    CreateByteField (Arg0, One, PIT0)
                    CreateByteField (Arg0, 0x02, MDT1)
                    CreateByteField (Arg0, 0x03, MDT0)
                    CreateByteField (Arg0, 0x04, PICX)
                    CreateByteField (Arg0, 0x05, UDCX)
                    CreateByteField (Arg0, 0x06, UDMX)
                    Name (BUF, Buffer (0x14)
                    {
                        /* 0000 */   0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
                        /* 0008 */   0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
                        /* 0010 */   0x00, 0x00, 0x00, 0x00
                    })
                    CreateDWordField (BUF, Zero, PIO0)
                    CreateDWordField (BUF, 0x04, DMA0)
                    CreateDWordField (BUF, 0x08, PIO1)
                    CreateDWordField (BUF, 0x0C, DMA1)
                    CreateDWordField (BUF, 0x10, FLAG)
                    If (And (PICX, One))
                    {
                        Return (BUF)
                    }

                    Store (GETT (PIT0), PIO0)
                    Store (GETT (PIT1), PIO1)
                    If (And (UDCX, One))
                    {
                        Or (FLAG, One, FLAG)
                        Store (DerefOf (Index (UDMT, And (UDMX, 0x0F))), DMA0)
                    }
                    Else
                    {
                        Store (GETT (MDT0), DMA0)
                    }

                    If (And (UDCX, 0x02))
                    {
                        Or (FLAG, 0x04, FLAG)
                        Store (DerefOf (Index (UDMT, ShiftRight (UDMX, 0x04))), DMA1)
                    }
                    Else
                    {
                        Store (GETT (MDT1), DMA1)
                    }

                    Or (FLAG, 0x1A, FLAG)
                    Return (BUF)
                }

                Method (STM, 3, NotSerialized)
                {
                    CreateDWordField (Arg0, Zero, PIO0)
                    CreateDWordField (Arg0, 0x04, DMA0)
                    CreateDWordField (Arg0, 0x08, PIO1)
                    CreateDWordField (Arg0, 0x0C, DMA1)
                    CreateDWordField (Arg0, 0x10, FLAG)
                    Name (BUF, Buffer (0x07)
                    {
                         0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00
                    })
                    CreateByteField (BUF, Zero, PIT1)
                    CreateByteField (BUF, One, PIT0)
                    CreateByteField (BUF, 0x02, MDT1)
                    CreateByteField (BUF, 0x03, MDT0)
                    CreateByteField (BUF, 0x04, PIMX)
                    CreateByteField (BUF, 0x05, UDCX)
                    CreateByteField (BUF, 0x06, UDMX)
                    Store (Match (PIOT, MLE, PIO0, MTR, Zero, Zero), Local0)
                    Divide (Local0, 0x05, Local0)
                    Store (Match (PIOT, MLE, PIO1, MTR, Zero, Zero), Local1)
                    Divide (Local1, 0x05, Local1)
                    Store (Or (ShiftLeft (Local1, 0x04), Local0), PIMX)
                    Store (DerefOf (Index (PITR, Local0)), PIT0)
                    Store (DerefOf (Index (PITR, Local1)), PIT1)
                    If (And (FLAG, One))
                    {
                        Store (Match (UDMT, MLE, DMA0, MTR, Zero, Zero), Local0)
                        Divide (Local0, 0x07, Local0)
                        Or (UDMX, Local0, UDMX)
                        Or (UDCX, One, UDCX)
                    }
                    Else
                    {
                        If (LNotEqual (DMA0, 0xFFFFFFFF))
                        {
                            Store (Match (MDMT, MLE, DMA0, MTR, Zero, Zero), Local0)
                            Store (DerefOf (Index (MDTR, Local0)), MDT0)
                        }
                    }

                    If (And (FLAG, 0x04))
                    {
                        Store (Match (UDMT, MLE, DMA1, MTR, Zero, Zero), Local0)
                        Divide (Local0, 0x07, Local0)
                        Or (UDMX, ShiftLeft (Local0, 0x04), UDMX)
                        Or (UDCX, 0x02, UDCX)
                    }
                    Else
                    {
                        If (LNotEqual (DMA1, 0xFFFFFFFF))
                        {
                            Store (Match (MDMT, MLE, DMA1, MTR, Zero, Zero), Local0)
                            Store (DerefOf (Index (MDTR, Local0)), MDT1)
                        }
                    }

                    Return (BUF)
                }

                Method (GTF, 2, NotSerialized)
                {
                    CreateByteField (Arg1, Zero, MDT1)
                    CreateByteField (Arg1, One, MDT0)
                    CreateByteField (Arg1, 0x02, PIMX)
                    CreateByteField (Arg1, 0x03, UDCX)
                    CreateByteField (Arg1, 0x04, UDMX)
                    If (LEqual (Arg0, 0xA0))
                    {
                        Store (And (PIMX, 0x0F), Local0)
                        Store (MDT0, Local1)
                        And (UDCX, One, Local2)
                        Store (And (UDMX, 0x0F), Local3)
                    }
                    Else
                    {
                        Store (ShiftRight (PIMX, 0x04), Local0)
                        Store (MDT1, Local1)
                        And (UDCX, 0x02, Local2)
                        Store (ShiftRight (UDMX, 0x04), Local3)
                    }

                    Name (BUF, Buffer (0x15)
                    {
                        /* 0000 */   0x03, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF, 0x03,
                        /* 0008 */   0x00, 0x00, 0x00, 0x00, 0xFF, 0xEF, 0x00, 0x00,
                        /* 0010 */   0x00, 0x00, 0x00, 0x00, 0xF5
                    })
                    CreateByteField (BUF, One, PMOD)
                    CreateByteField (BUF, 0x08, DMOD)
                    CreateByteField (BUF, 0x05, CMDA)
                    CreateByteField (BUF, 0x0C, CMDB)
                    CreateByteField (BUF, 0x13, CMDC)
                    Store (Arg0, CMDA)
                    Store (Arg0, CMDB)
                    Store (Arg0, CMDC)
                    Or (Local0, 0x08, PMOD)
                    If (Local2)
                    {
                        Or (Local3, 0x40, DMOD)
                    }
                    Else
                    {
                        Store (Match (MDMT, MLE, GETT (Local1), MTR, Zero, Zero), Local4)
                        If (LLess (Local4, 0x03))
                        {
                            Or (0x20, Local4, DMOD)
                        }
                    }

                    Return (BUF)
                }

                Device (PRID)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Method (_GTM, 0, NotSerialized)  // _GTM: Get Timing Mode
                    {
                        Name (BUF, Buffer (0x07)
                        {
                             0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00
                        })
                        CreateWordField (BUF, Zero, VPIT)
                        CreateWordField (BUF, 0x02, VMDT)
                        CreateByteField (BUF, 0x04, VPIC)
                        CreateByteField (BUF, 0x05, VUDC)
                        CreateByteField (BUF, 0x06, VUDM)
                        Store (PPIT, VPIT)
                        Store (PMDT, VMDT)
                        Store (PPIC, VPIC)
                        Store (PUDC, VUDC)
                        Store (PUDM, VUDM)
                        Return (GTM (BUF))
                    }

                    Method (_STM, 3, NotSerialized)  // _STM: Set Timing Mode
                    {
                        Name (BUF, Buffer (0x07)
                        {
                             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                        })
                        CreateWordField (BUF, Zero, VPIT)
                        CreateWordField (BUF, 0x02, VMDT)
                        CreateByteField (BUF, 0x04, VPIM)
                        CreateByteField (BUF, 0x05, VUDC)
                        CreateByteField (BUF, 0x06, VUDM)
                        Store (STM (Arg0, Arg1, Arg2), BUF)
                        Store (VPIT, PPIT)
                        Store (VMDT, PMDT)
                        Store (VPIM, PPIM)
                        Store (VUDC, PUDC)
                        Store (VUDM, PUDM)
                    }

                    Device (P_D0)
                    {
                        Name (_ADR, Zero)  // _ADR: Address
                        Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
                        {
                            Name (BUF, Buffer (0x05)
                            {
                                 0x00, 0x00, 0x00, 0x00, 0x00
                            })
                            CreateWordField (BUF, Zero, VMDT)
                            CreateByteField (BUF, 0x02, VPIM)
                            CreateByteField (BUF, 0x03, VUDC)
                            CreateByteField (BUF, 0x04, VUDM)
                            Store (PMDT, VMDT)
                            Store (PPIM, VPIM)
                            Store (PUDC, VUDC)
                            Store (PUDM, VUDM)
                            Return (GTF (0xA0, BUF))
                        }
                    }

                    Device (P_D1)
                    {
                        Name (_ADR, One)  // _ADR: Address
                        Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
                        {
                            Name (BUF, Buffer (0x05)
                            {
                                 0x00, 0x00, 0x00, 0x00, 0x00
                            })
                            CreateWordField (BUF, Zero, VMDT)
                            CreateByteField (BUF, 0x02, VPIM)
                            CreateByteField (BUF, 0x03, VUDC)
                            CreateByteField (BUF, 0x04, VUDM)
                            Store (PMDT, VMDT)
                            Store (PPIM, VPIM)
                            Store (PUDC, VUDC)
                            Store (PUDM, VUDM)
                            Return (GTF (0xB0, BUF))
                        }
                    }
                }

                Device (SECD)
                {
                    Name (_ADR, One)  // _ADR: Address
                    Method (_GTM, 0, NotSerialized)  // _GTM: Get Timing Mode
                    {
                        Name (BUF, Buffer (0x07)
                        {
                             0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00
                        })
                        CreateWordField (BUF, Zero, VPIT)
                        CreateWordField (BUF, 0x02, VMDT)
                        CreateByteField (BUF, 0x04, VPIC)
                        CreateByteField (BUF, 0x05, VUDC)
                        CreateByteField (BUF, 0x06, VUDM)
                        Store (SPIT, VPIT)
                        Store (SMDT, VMDT)
                        Store (SPIC, VPIC)
                        Store (SUDC, VUDC)
                        Store (SUDM, VUDM)
                        Return (GTM (BUF))
                    }

                    Method (_STM, 3, NotSerialized)  // _STM: Set Timing Mode
                    {
                        Name (BUF, Buffer (0x07)
                        {
                             0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                        })
                        CreateWordField (BUF, Zero, VPIT)
                        CreateWordField (BUF, 0x02, VMDT)
                        CreateByteField (BUF, 0x04, VPIM)
                        CreateByteField (BUF, 0x05, VUDC)
                        CreateByteField (BUF, 0x06, VUDM)
                        Store (STM (Arg0, Arg1, Arg2), BUF)
                        Store (VPIT, SPIT)
                        Store (VMDT, SMDT)
                        Store (VPIM, SPIM)
                        Store (VUDC, SUDC)
                        Store (VUDM, SUDM)
                    }

                    Device (S_D0)
                    {
                        Name (_ADR, Zero)  // _ADR: Address
                        Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
                        {
                            Name (BUF, Buffer (0x05)
                            {
                                 0x00, 0x00, 0x00, 0x00, 0x00
                            })
                            CreateWordField (BUF, Zero, VMDT)
                            CreateByteField (BUF, 0x02, VPIM)
                            CreateByteField (BUF, 0x03, VUDC)
                            CreateByteField (BUF, 0x04, VUDM)
                            Store (SMDT, VMDT)
                            Store (SPIM, VPIM)
                            Store (SUDC, VUDC)
                            Store (SUDM, VUDM)
                            Return (GTF (0xA0, BUF))
                        }
                    }

                    Device (S_D1)
                    {
                        Name (_ADR, One)  // _ADR: Address
                        Method (_GTF, 0, NotSerialized)  // _GTF: Get Task File
                        {
                            Name (BUF, Buffer (0x05)
                            {
                                 0x00, 0x00, 0x00, 0x00, 0x00
                            })
                            CreateWordField (BUF, Zero, VMDT)
                            CreateByteField (BUF, 0x02, VPIM)
                            CreateByteField (BUF, 0x03, VUDC)
                            CreateByteField (BUF, 0x04, VUDM)
                            Store (SMDT, VMDT)
                            Store (SPIM, VPIM)
                            Store (SUDC, VUDC)
                            Store (SUDM, VUDM)
                            Return (GTF (0xB0, BUF))
                        }
                    }
                }
            }

            Device (GNBD)
            {
                Name (_ADR, Zero)  // _ADR: Address
                Scope (\)
                {
                    OperationRegion (ATFB, SystemMemory, 0x7E231018, 0x0105)
                    Field (ATFB, AnyAcc, NoLock, Preserve)
                    {
                        BCMD,   8, 
                        DID,    32, 
                        INFO,   2048
                    }

                    Field (ATFB, AnyAcc, NoLock, Preserve)
                    {
                        Offset (0x05), 
                        INF0,   8, 
                        INF1,   8, 
                        INF2,   8, 
                        INF3,   8, 
                        INF4,   8, 
                        INF5,   8, 
                        INF6,   8, 
                        INF7,   8
                    }

                    Field (ATFB, AnyAcc, NoLock, Preserve)
                    {
                        AccessAs (ByteAcc, 0x00), 
                        Offset (0x05), 
                        INF,    8
                    }
                }

                OperationRegion (NBRV, PCI_Config, 0x08, One)
                Field (NBRV, ByteAcc, NoLock, Preserve)
                {
                    PREV,   8
                }

                OperationRegion (NBBR, PCI_Config, 0x1C, 0x08)
                Field (NBBR, DWordAcc, NoLock, Preserve)
                {
                    BR3L,   32, 
                    BR3H,   32
                }

                OperationRegion (NBBI, PCI_Config, 0x84, 0x04)
                Field (NBBI, DWordAcc, NoLock, Preserve)
                {
                    PARB,   32
                }

                OperationRegion (NBMS, PCI_Config, 0x60, 0x08)
                Field (NBMS, DWordAcc, NoLock, Preserve)
                {
                    MIDX,   32, 
                    MIDR,   32
                }

                Mutex (NBMM, 0x00)
                Method (NBMR, 1, NotSerialized)
                {
                    Acquire (NBMM, 0xFFFF)
                    And (Arg0, 0x7F, Local0)
                    Store (Local0, MIDX)
                    Store (MIDR, Local0)
                    Store (0x7F, MIDX)
                    Release (NBMM)
                    Return (Local0)
                }

                Method (NBMW, 2, NotSerialized)
                {
                    Acquire (NBMM, 0xFFFF)
                    And (Arg0, 0x7F, Local0)
                    Or (Local0, 0x80, Local0)
                    Store (Local0, MIDX)
                    Store (Arg1, MIDR)
                    Store (And (Local0, 0x7F, Local0), MIDX)
                    Release (NBMM)
                }

                OperationRegion (NBXP, PCI_Config, 0xE0, 0x08)
                Field (NBXP, DWordAcc, NoLock, Preserve)
                {
                    NBXI,   32, 
                    NBXD,   32
                }

                Mutex (NBXM, 0x00)
                Method (NBXR, 1, NotSerialized)
                {
                    Acquire (NBXM, 0xFFFF)
                    Store (Arg0, NBXI)
                    Store (NBXD, Local0)
                    Store (Zero, NBXI)
                    Release (NBXM)
                    Return (Local0)
                }

                Method (NBXW, 2, NotSerialized)
                {
                    Acquire (NBXM, 0xFFFF)
                    Store (Arg0, NBXI)
                    Store (Arg1, NBXD)
                    Store (Zero, NBXI)
                    Release (NBXM)
                }

                Method (GFXM, 0, NotSerialized)
                {
                    Store (NBMR (0x08), Local0)
                    And (Local0, 0x0F, Local0)
                    Return (Local0)
                }

                Method (GPPM, 0, NotSerialized)
                {
                    Store (NBMR (0x67), Local0)
                    And (Local0, 0xF0, Local0)
                    Return (Local0)
                }

                Method (GPPX, 0, NotSerialized)
                {
                    Store (NBMR (0x2D), Local0)
                    ShiftRight (Local0, 0x07, Local0)
                    And (Local0, 0x0F, Local0)
                    Return (Local0)
                }

                Method (XPTR, 2, NotSerialized)
                {
                    If (LAnd (LLess (Arg0, 0x02), LGreater (Arg0, 0x07)))
                    {
                        Return (Zero)
                    }
                    Else
                    {
                        Store (GPPM (), Local0)
                        Store (GPPX (), Local1)
                        Store (One, Local0)
                        If (LLess (Arg0, 0x04))
                        {
                            Add (Arg0, 0x02, Local1)
                        }
                        Else
                        {
                            Add (Arg0, 0x11, Local1)
                        }

                        ShiftLeft (Local0, Local1, Local0)
                        Store (NBMR (0x08), Local2)
                        If (Arg1)
                        {
                            And (Local2, Not (Local0), Local2)
                        }
                        Else
                        {
                            Or (Local2, Local0, Local2)
                        }

                        NBMW (0x08, Local2)
                        Return (Ones)
                    }
                }

                Name (PX3L, 0x80000000)
                Name (PX3H, 0x80000000)
                Name (PX3S, 0x10000000)
                Name (PX3K, 0xF0000000)
                Mutex (BR3X, 0x00)
                Method (BR3M, 0, NotSerialized)
                {
                    Store (PARB, Local0)
                    ShiftRight (Local0, 0x10, Local0)
                    And (Local0, 0x07, Local0)
                    If (Local0)
                    {
                        ShiftLeft (One, Local0, Local1)
                        Subtract (0x1000, Local1, Local1)
                        ShiftLeft (Local1, 0x14, Local1)
                        Store (Local1, PX3K)
                        ShiftRight (0x00100000, Local0, Local0)
                        Store (Local0, PX3S)
                    }

                    Acquire (BR3X, 0xFFFF)
                    Store (NBMR (Zero), Local0)
                    And (Local0, 0xFFFFFFF7, Local0)
                    NBMW (Zero, Local0)
                    Store (BR3L, Local0)
                    And (Local0, PX3K, Local0)
                    Store (Local0, PX3L)
                    Store (BR3H, Local0)
                    And (Local0, 0xFF, Local0)
                    Store (Local0, PX3H)
                    Store (NBMR (Zero), Local0)
                    Or (Local0, 0x08, Local0)
                    NBMW (Zero, Local0)
                    Release (BR3X)
                    Return (PX3L)
                }

                OperationRegion (NB2, PCI_Config, Zero, 0x0100)
                Field (NB2, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x60), 
                    MI,     32, 
                    MD,     32, 
                    Offset (0x90), 
                    TOM,    32, 
                    OI,     32, 
                    OD,     32, 
                    Offset (0xE0), 
                    LI,     32, 
                    LD,     32
                }

                Device (BROD)
                {
                    Name (_HID, EisaId ("PNP0C02"))  // _HID: Hardware ID
                    Name (_UID, 0x14)  // _UID: Unique ID
                    Name (UMAS, 0x30000000)
                    Name (CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly,
                            0x00000000,         // Address Base
                            0x00000000,         // Address Length
                            _Y0D)
                    })
                    Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                    {
                        CreateDWordField (CRS, \_SB.PCI0.GNBD.BROD._Y0D._BAS, BAS1)  // _BAS: Base Address
                        CreateDWordField (CRS, \_SB.PCI0.GNBD.BROD._Y0D._LEN, LEN1)  // _LEN: Length
                        Store (UMAS, LEN1)
                        Subtract (TOM, LEN1, BAS1)
                        Return (CRS)
                    }
                }
            }

            Device (PCED)
            {
                Name (_ADR, 0x00020000)  // _ADR: Address
                OperationRegion (XPEX, SystemMemory, 0xE0010100, 0x0100)
                Field (XPEX, DWordAcc, NoLock, Preserve)
                {
                    Offset (0x28), 
                    VC0S,   32
                }

                OperationRegion (PCFG, PCI_Config, Zero, 0x20)
                Field (PCFG, DWordAcc, NoLock, Preserve)
                {
                    DVID,   32, 
                    Offset (0x18), 
                    SBUS,   32
                }

                OperationRegion (XPCB, PCI_Config, 0x58, 0x24)
                Field (XPCB, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x10), 
                    LKCN,   16, 
                    LKST,   16, 
                    Offset (0x18), 
                        ,   3, 
                    PDC8,   1, 
                        ,   2, 
                    PDS8,   1, 
                    Offset (0x19), 
                    HPC8,   1, 
                    Offset (0x1A), 
                        ,   3, 
                    PDC2,   1, 
                        ,   2, 
                    PDS2,   1, 
                    Offset (0x1B), 
                    HPCS,   1, 
                    Offset (0x20), 
                    Offset (0x22), 
                    PMES,   1
                }

                OperationRegion (XPRI, PCI_Config, 0xE0, 0x08)
                Field (XPRI, ByteAcc, NoLock, Preserve)
                {
                    XPIR,   32, 
                    XPID,   32
                }

                Method (XPDL, 0, NotSerialized)
                {
                    Store (Zero, Local0)
                    If (And (VC0S, 0x00020000))
                    {
                        Store (Ones, Local0)
                    }

                    Return (Local0)
                }

                Mutex (XPPM, 0x00)
                Method (XPRD, 1, NotSerialized)
                {
                    Acquire (XPPM, 0xFFFF)
                    Store (Arg0, XPIR)
                    Store (XPID, Local0)
                    Store (Zero, XPIR)
                    Release (XPPM)
                    Return (Local0)
                }

                Method (XPWR, 2, NotSerialized)
                {
                    Acquire (XPPM, 0xFFFF)
                    Store (Arg0, XPIR)
                    Store (Arg1, XPID)
                    Store (Zero, XPIR)
                    Release (XPPM)
                }

                Method (XPRT, 0, NotSerialized)
                {
                    Store (XPRD (0xA2), Local0)
                    And (Local0, 0xFFFFFFF8, Local0)
                    ShiftRight (Local0, 0x04, Local1)
                    And (Local1, 0x07, Local1)
                    Or (Local0, Local1, Local0)
                    Or (Local0, 0x0100, Local0)
                    XPWR (0xA2, Local0)
                }

                Method (XPPB, 0, NotSerialized)
                {
                    Store (_ADR, Local0)
                    Store (ShiftRight (Local0, 0x10), Local1)
                    Store (ShiftLeft (Local1, 0x03), Local1)
                    Store (And (Local0, 0x0F), Local2)
                    Store (Or (Local1, Local2), Local3)
                    Return (Local3)
                }

                Method (XPCN, 0, NotSerialized)
                {
                    Store (Zero, Local1)
                    Store (XPPB (), Local0)
                    If (LGreater (0x04, Local0))
                    {
                        Store (Zero, Local1)
                    }

                    If (LGreater (0x08, Local0))
                    {
                        Store (0x00010000, Local1)
                    }

                    If (LGreater (0x0B, Local0))
                    {
                        Store (0x00020000, Local1)
                    }

                    Return (Local1)
                }

                Method (XPPD, 0, NotSerialized)
                {
                    Store (XPPB (), Local0)
                    Store (^^GNBD.GPPX (), Local2)
                    Store (^^GNBD.GFXM (), Local3)
                    Store (Zero, Local1)
                    If (LEqual (0x10, Local0))
                    {
                        Store (0xFFFF, Local1)
                        If (Local3)
                        {
                            Store (0x0F0F, Local1)
                        }
                    }

                    If (LEqual (0x18, Local0))
                    {
                        Store (0xF0F0, Local1)
                    }

                    If (LEqual (0x20, Local0))
                    {
                        Store (0x1010, Local1)
                    }

                    If (LEqual (0x28, Local0))
                    {
                        Store (0x2020, Local1)
                    }

                    If (LEqual (0x30, Local0))
                    {
                        Store (0x4040, Local1)
                    }

                    If (LEqual (0x38, Local0))
                    {
                        Store (0x8080, Local1)
                    }

                    If (LEqual (0x48, Local0))
                    {
                        Store (Zero, Local1)
                        If (LEqual (0x02, Local2))
                        {
                            Store (0x0303, Local1)
                        }

                        If (LEqual (0x03, Local2))
                        {
                            Store (0x0101, Local1)
                        }
                    }

                    If (LEqual (0x50, Local0))
                    {
                        Store (Zero, Local1)
                        If (LEqual (0x03, Local2))
                        {
                            Store (0x0202, Local1)
                        }
                    }

                    Return (Local1)
                }

                Method (XPLP, 1, NotSerialized)
                {
                    Store (XPPD (), Local1)
                    If (LNotEqual (Zero, Local1))
                    {
                        Store (^^GNBD.NBXR (Add (0x65, XPCN ())), Local2)
                        If (Arg0)
                        {
                            And (Local2, Not (Local1), Local2)
                        }
                        Else
                        {
                            Or (Local2, Local1, Local2)
                        }

                        ^^GNBD.NBXW (Add (0x65, XPCN ()), Local2)
                    }
                }

                Method (XPR2, 0, NotSerialized)
                {
                    Store (LKCN, Local0)
                    And (Local0, 0xFFFFFFDF, Local0)
                    Store (Local0, LKCN)
                    Or (Local0, 0x20, Local0)
                    Store (Local0, LKCN)
                    Store (0x64, Local1)
                    Store (One, Local2)
                    While (LAnd (Local1, Local2))
                    {
                        Sleep (One)
                        Store (LKST, Local3)
                        If (And (Local3, 0x0800))
                        {
                            Decrement (Local1)
                        }
                        Else
                        {
                            Store (Zero, Local2)
                        }
                    }

                    And (Local0, 0xFFFFFFDF, Local0)
                    Store (Local0, LKCN)
                    If (LNot (Local2))
                    {
                        Return (Ones)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Method (XPLL, 1, NotSerialized)
                {
                    Store (^^GNBD.GFXM (), Local0)
                    Store (XPPB (), Local1)
                    Store (Zero, Local2)
                    If (LEqual (0x10, Local1))
                    {
                        Store (One, Local2)
                        Store (0x00770070, Local3)
                        If (Local0)
                        {
                            Store (0x00330030, Local3)
                        }
                    }

                    If (LAnd (LEqual (0x18, Local1), Local0))
                    {
                        Store (One, Local2)
                        Store (0x00440040, Local3)
                    }

                    Store (^^GNBD.NBMR (0x07), Local0)
                    Store (^^GNBD.NBXR (0x65), Local1)
                    If (LAnd (Local0, 0x0201F000))
                    {
                        Store (0x00440040, Local4)
                        Store (Local4, Local5)
                        If (LAnd (Not (Local1), 0xF0F0))
                        {
                            Store (Zero, Local5)
                        }
                    }
                    Else
                    {
                        Store (0x00110010, Local4)
                        Store (Local4, Local5)
                        If (LAnd (Not (Local1), 0x0F0F))
                        {
                            Store (Zero, Local5)
                        }
                    }

                    If (Local2)
                    {
                        Store (Or (Local3, Local4), Local6)
                        Store (And (Local5, Local4), Local0)
                        Store (Or (Local3, Local0), Local7)
                        Store (^^GNBD.NBMR (0x2E), Local0)
                        If (Arg0)
                        {
                            And (Local0, Not (Local6), Local0)
                        }
                        Else
                        {
                            Or (Local0, Local7, Local0)
                        }

                        ^^GNBD.NBMW (0x2E, Local0)
                    }
                }

                Method (XPPR, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        XPLL (One)
                        XPLP (One)
                        Sleep (0xC8)
                        ^^GNBD.XPTR (ShiftLeft (XPPB (), 0x03), One)
                        Sleep (0x14)
                    }
                    Else
                    {
                        ^^GNBD.XPTR (ShiftLeft (XPPB (), 0x03), Zero)
                        XPLP (Zero)
                        XPLL (Zero)
                    }

                    Return (Ones)
                }

                Device (VGA)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    OperationRegion (VSID, PCI_Config, Zero, 0x20)
                    Field (VSID, ByteAcc, NoLock, Preserve)
                    {
                        REG0,   32, 
                        REG4,   32, 
                        REG8,   32
                    }

                    Method (PRST, 0, NotSerialized)
                    {
                        If (LEqual (REG0, 0xFFFFFFFF))
                        {
                            Return (Zero)
                        }
                        Else
                        {
                            If (LEqual (And (REG8, 0xFFFFFF00), 0x03000000))
                            {
                                Return (One)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }

                    Name (DVIM, 0x10)
                    Name (HDMM, 0x08)
                    Name (PCTG, Package (0x0D) {})
                    Name (PCW8, Package (0x67) {})
                    Name (LCDM, One)
                    Name (CRTM, 0x02)
                    Name (TVOM, 0x04)
                    Name (DO1M, 0x10)
                    Name (DO2M, 0x08)
                    Name (DONE, Zero)
                    Name (DOSF, One)
                    Name (BRNC, Zero)
                    Name (UPDN, One)
                    Name (NXTD, One)
                    Name (GADD, Zero)
                    Method (MD2A, 1, NotSerialized)
                    {
                        Store (Zero, Local0)
                        If (And (Arg0, LCDM))
                        {
                            Or (Local0, One, Local0)
                        }

                        If (And (Arg0, CRTM))
                        {
                            Or (Local0, 0x02, Local0)
                        }

                        If (And (Arg0, TVOM))
                        {
                            Or (Local0, 0x04, Local0)
                        }

                        If (And (Arg0, DVIM))
                        {
                            Or (Local0, 0x08, Local0)
                        }

                        If (And (Arg0, HDMM))
                        {
                            Or (Local0, 0x10, Local0)
                        }

                        If (LNot (Local0))
                        {
                            Return (NXTD)
                        }

                        Return (Local0)
                    }

                    Method (MA2D, 1, NotSerialized)
                    {
                        Store (Zero, Local0)
                        If (And (Arg0, One))
                        {
                            Or (Local0, LCDM, Local0)
                        }

                        If (And (Arg0, 0x02))
                        {
                            Or (Local0, CRTM, Local0)
                        }

                        If (And (Arg0, 0x04))
                        {
                            Or (Local0, TVOM, Local0)
                        }

                        If (And (Arg0, 0x08))
                        {
                            Or (Local0, DVIM, Local0)
                        }

                        If (And (Arg0, 0x10))
                        {
                            Or (Local0, HDMM, Local0)
                        }

                        If (LNot (Local0))
                        {
                            Return (LCDM)
                        }

                        Return (Local0)
                    }

                    Method (_INI, 0, NotSerialized)  // _INI: Initialize
                    {
                    }

                    Method (_DOS, 1, NotSerialized)  // _DOS: Disable Output Switching
                    {
                        And (Arg0, 0x03, DOSF)
                        Store (ShiftRight (Arg0, 0x02), BRNC)
                        And (BRNC, One, BRNC)
                        If (LGreaterEqual (OSFG, OSW8))
                        {
                            If (LEqual (\WMI0.VGAF, 0x02))
                            {
                                Or (^^^VGA.AF7E, One, ^^^VGA.AF7E)
                            }
                        }
                    }

                    Method (_DOD, 0, NotSerialized)  // _DOD: Display Output Devices
                    {
                        Name (ADOD, Package (0x03)
                        {
                            0x00010110, 
                            0x00010100, 
                            0x0210
                        })
                        Name (NDOD, Package (0x03)
                        {
                            0x00010110, 
                            0x00010100, 
                            0x0121
                        })
                        If (LEqual (\WMI0.VGAF, 0x02))
                        {
                            Return (ADOD)
                        }
                        Else
                        {
                            Return (NDOD)
                        }
                    }

                    Device (LCDD)
                    {
                        Name (_ADR, 0x0110)  // _ADR: Address
                        Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
                        {
                            If (And (\WMI0.AVLD, LCDM))
                            {
                                Return (0x1F)
                            }

                            Return (0x1D)
                        }

                        Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
                        {
                            If (And (\WMI0.SETD, LCDM))
                            {
                                Return (One)
                            }

                            Return (Zero)
                        }

                        Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
                        {
                            If (And (Arg0, 0x40000000))
                            {
                                If (And (Arg0, 0x80000000))
                                {
                                    Store (One, DONE)
                                }
                            }
                        }

                        Method (_BCL, 0, NotSerialized)  // _BCL: Brightness Control Levels
                        {
                            If (LGreaterEqual (OSFG, OSW8))
                            {
                                Store (Zero, Local0)
                                Store (Divide (Multiply (\WMI0.AB00, 0x64), 0xFF, ), Local1)
                                While (LLess (Local0, 0x65))
                                {
                                    If (LLess (Local0, Local1))
                                    {
                                        Store (Local1, Index (PCW8, Add (Local0, 0x02)))
                                    }
                                    Else
                                    {
                                        Store (Local0, Index (PCW8, Add (Local0, 0x02)))
                                    }

                                    Increment (Local0)
                                }

                                Store (0x64, Index (PCW8, Zero))
                                Store (0x28, Index (PCW8, One))
                                Return (PCW8)
                            }

                            Subtract (0x0B, One, Local0)
                            Store (^^^^SBRG.HEC.PWAC (Local0), Local1)
                            Store (Divide (Multiply (Local1, 0x64), 0xFF, ), Local2)
                            Store (Local2, Index (PCTG, Zero))
                            Subtract (0x0B, 0x04, Local0)
                            Store (^^^^SBRG.HEC.PWAC (Local0), Local1)
                            Store (Divide (Multiply (Local1, 0x64), 0xFF, ), Local2)
                            Store (Local2, Index (PCTG, One))
                            Store (Zero, Local0)
                            While (LLess (Local0, 0x0B))
                            {
                                Store (^^^^SBRG.HEC.PWAC (Local0), Local1)
                                Store (Divide (Multiply (Local1, 0x64), 0xFF, ), Local2)
                                Store (Local2, Index (PCTG, Add (Local0, 0x02)))
                                Increment (Local0)
                            }

                            Return (PCTG)
                        }

                        Method (_BCM, 1, NotSerialized)  // _BCM: Brightness Control Method
                        {
                            Store (GCBL (Arg0), Local0)
                            Store (Local0, \WMI0.LBTN)
                            If (LGreaterEqual (OSFG, OSW8))
                            {
                                Store (Divide (Multiply (Local0, 0xFF), 0x64, ), Local1)
                                If (LEqual (^^^^VGA.AF7E, 0x80000001))
                                {
                                    ^^^^VGA.AFN7 (Local1)
                                }
                            }
                            Else
                            {
                                ^^^^SBRG.HEC.STBR ()
                            }
                        }

                        Method (_BQC, 0, NotSerialized)  // _BQC: Brightness Query Current
                        {
                            Store (\WMI0.LBTN, Local0)
                            If (LGreaterEqual (OSFG, OSW8))
                            {
                                Return (DerefOf (Index (PCW8, Add (Local0, 0x02))))
                            }
                            Else
                            {
                                Return (DerefOf (Index (PCTG, Add (Local0, 0x02))))
                            }
                        }
                    }

                    Device (CRTD)
                    {
                        Name (_ADR, 0x0100)  // _ADR: Address
                        Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
                        {
                            If (And (\WMI0.AVLD, CRTM))
                            {
                                Return (0x1F)
                            }

                            Return (0x1D)
                        }

                        Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
                        {
                            If (And (\WMI0.SETD, CRTM))
                            {
                                Return (One)
                            }

                            Return (Zero)
                        }

                        Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
                        {
                            If (And (Arg0, 0x40000000))
                            {
                                If (And (Arg0, 0x80000000))
                                {
                                    Store (One, DONE)
                                }
                            }
                        }
                    }

                    Device (DO2D)
                    {
                        Method (_ADR, 0, NotSerialized)  // _ADR: Address
                        {
                            If (LEqual (\WMI0.VGAF, 0x02))
                            {
                                Return (0x0210)
                            }
                            Else
                            {
                                Return (0x0121)
                            }
                        }

                        Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
                        {
                            If (And (\WMI0.AVLD, DO2M))
                            {
                                Return (0x1F)
                            }

                            Return (0x1D)
                        }

                        Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
                        {
                            If (And (\WMI0.SETD, DO2M))
                            {
                                Return (One)
                            }

                            Return (Zero)
                        }

                        Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
                        {
                            If (And (Arg0, 0x40000000))
                            {
                                If (And (Arg0, 0x80000000))
                                {
                                    Store (One, DONE)
                                }
                            }
                        }
                    }

                    Method (SWHD, 1, Serialized)
                    {
                        Store (One, UPDN)
                        If (And (DOSF, 0x03))
                        {
                            Store (MA2D (Arg0), \WMI0.SETD)
                            ISMI (0x94)
                        }
                        Else
                        {
                            Store (MA2D (Arg0), \WMI0.SETD)
                            Notify (VGA, 0x80)
                        }
                    }

                    Method (GETD, 0, NotSerialized)
                    {
                        Store (One, GADD)
                        ^^^VGA.AFN0 ()
                        Store (Zero, Local0)
                        While (LAnd (LLess (Local0, 0x0A), GADD))
                        {
                            Sleep (0x64)
                            Increment (Local0)
                        }

                        Store (Zero, GADD)
                        Return (\WMI0.ACTD)
                    }

                    Method (GNDD, 0, NotSerialized)
                    {
                        ISMI (0xA0)
                        Return (\WMI0.SETD)
                    }

                    Method (ADVD, 0, NotSerialized)
                    {
                        If (UPDN)
                        {
                            GETD ()
                            Store (\WMI0.ACTD, \WMI0.SETD)
                            Store (Zero, UPDN)
                        }

                        GNDD ()
                        Store (\WMI0.SETD, NXTD)
                        Store (MD2A (NXTD), NXTD)
                        Return (NXTD)
                    }

                    Method (NATK, 0, NotSerialized)
                    {
                        Return (One)
                    }

                    Method (UPBL, 0, NotSerialized)
                    {
                        If (LGreaterEqual (OSFG, OSW8))
                        {
                            Notify (LCDD, 0x86)
                            Sleep (0x19)
                            Return (Zero)
                        }

                        If (ATKP)
                        {
                            Store (\WMI0.LBTN, Local0)
                            If (LLess (\WMI0.LBTN, 0x0A))
                            {
                                Increment (Local0)
                            }
                            Else
                            {
                                Store (0x0A, Local0)
                            }

                            Store (Local0, \WMI0.LBTN)
                            ^^^^ATKD.NTFY (Add (Local0, 0x10))
                        }

                        Notify (LCDD, 0x86)
                    }

                    Method (DWBL, 0, NotSerialized)
                    {
                        If (LGreaterEqual (OSFG, OSW8))
                        {
                            Notify (LCDD, 0x87)
                            Sleep (0x19)
                            Return (Zero)
                        }

                        If (ATKP)
                        {
                            Store (\WMI0.LBTN, Local0)
                            If (LGreater (\WMI0.LBTN, Zero))
                            {
                                Decrement (Local0)
                            }

                            If (LGreater (\WMI0.LBTN, 0x0A))
                            {
                                Store (0x0A, Local0)
                            }

                            Store (Local0, \WMI0.LBTN)
                            ^^^^ATKD.NTFY (Add (Local0, 0x20))
                        }

                        Notify (LCDD, 0x87)
                    }

                    Method (GCBL, 1, NotSerialized)
                    {
                        Store (Zero, Local0)
                        And (Arg0, 0x7FFFFFFF, Arg0)
                        While (LLess (Local0, 0x0B))
                        {
                            Store (DerefOf (Index (PCTG, Add (Local0, 0x02))), Local1)
                            If (LGreaterEqual (Local1, Arg0))
                            {
                                Break
                            }

                            Increment (Local0)
                        }

                        If (LGreaterEqual (Local0, 0x0B))
                        {
                            Store (0x0A, Local2)
                        }
                        Else
                        {
                            Store (Local0, Local2)
                        }

                        Return (Local2)
                    }

                    OperationRegion (PCFG, PCI_Config, Zero, 0x50)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32, 
                        Offset (0x2C), 
                        SVID,   32, 
                        Offset (0x4C), 
                        SMID,   32
                    }

                    Name (DOSP, Zero)
                    Name (BLVL, Buffer (0x10)
                    {
                        /* 0000 */   0x00, 0x20, 0x30, 0x40, 0x50, 0x58, 0x60, 0x70,
                        /* 0008 */   0x80, 0x90, 0xA0, 0xB0, 0xC0, 0xD0, 0xE0, 0xFF
                    })
                    Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
                    {
                        Return (Zero)
                    }
                }

                Device (HDAU)
                {
                    Name (_ADR, One)  // _ADR: Address
                    OperationRegion (PCFG, PCI_Config, Zero, 0x50)
                    Field (PCFG, DWordAcc, NoLock, Preserve)
                    {
                        DVID,   32, 
                        Offset (0x2C), 
                        SVID,   32, 
                        Offset (0x4C), 
                        SMID,   32
                    }
                }

                Method (XPDT, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (Zero, Local0)
                        Store (Zero, Local2)
                        While (LLess (Local2, 0x0F))
                        {
                            Store (One, PDC2)
                            Store (One, Local4)
                            Store (0xC8, Local5)
                            While (LAnd (Local4, Local5))
                            {
                                Store (XPRD (0xA5), Local6)
                                And (Local6, 0x7F, Local6)
                                If (LAnd (LGreaterEqual (Local6, 0x10), LNotEqual (Local6, 0x7F)))
                                {
                                    Store (Zero, Local4)
                                }
                                Else
                                {
                                    Sleep (0x05)
                                    Decrement (Local5)
                                }
                            }

                            If (LNot (Local4))
                            {
                                Store (XPDL (), Local5)
                                If (Local5)
                                {
                                    XPRT ()
                                    Sleep (0x05)
                                    Increment (Local2)
                                }
                                Else
                                {
                                    Store (ShiftLeft (XPPB (), 0x03), INFO)
                                    Store (0x87, BCMD)
                                    Store (Zero, ^^SBRG.SMIC)
                                    If (LEqual (XPR2 (), Ones))
                                    {
                                        Store (One, Local0)
                                        Store (0x10, Local2)
                                    }
                                    Else
                                    {
                                        Store (Zero, Local0)
                                        Store (0x10, Local2)
                                    }
                                }
                            }
                            Else
                            {
                                Store (0x10, Local2)
                            }
                        }

                        If (LNot (Local0))
                        {
                            XPDT (Zero)
                            XPPR (Zero)
                            Return (Zero)
                        }

                        Return (Ones)
                    }
                    Else
                    {
                        Store (One, PDC2)
                        Store (^VGA.DVID, Local7)
                        Sleep (0x0A)
                        Store (One, Local4)
                        Store (0x05, Local5)
                        While (LAnd (Local4, Local5))
                        {
                            Store (XPRD (0xA5), Local6)
                            And (Local6, 0x7F, Local6)
                            If (LLessEqual (Local6, 0x04))
                            {
                                Store (Zero, Local4)
                            }
                            Else
                            {
                                Store (^VGA.DVID, Local7)
                                Sleep (0x05)
                                Decrement (Local5)
                            }
                        }

                        Return (Ones)
                    }
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        Return (AR12)
                    }

                    Return (PR12)
                }
            }

            Device (BR13)
            {
                Name (_ADR, 0x00030000)  // _ADR: Address
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        Return (AR13)
                    }

                    Return (PR13)
                }
            }

            Device (BR14)
            {
                Name (_ADR, 0x00040000)  // _ADR: Address
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        Return (AR14)
                    }

                    Return (PR14)
                }
            }

            Device (BR15)
            {
                Name (_ADR, 0x00050000)  // _ADR: Address
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        Return (AR15)
                    }

                    Return (PR15)
                }
            }

            Device (BR16)
            {
                Name (_ADR, 0x00060000)  // _ADR: Address
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        Return (AR16)
                    }

                    Return (PR16)
                }
            }

            Device (BR17)
            {
                Name (_ADR, 0x00070000)  // _ADR: Address
                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        Return (AR17)
                    }

                    Return (PR17)
                }
            }

            Device (SBAZ)
            {
                Name (_ADR, 0x00140002)  // _ADR: Address
                OperationRegion (PCI, PCI_Config, Zero, 0x0100)
                Field (PCI, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x42), 
                    DNSP,   1, 
                    DNSO,   1, 
                    ENSR,   1
                }

                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x1B, 0x04))
                }
            }

            Device (SBRG)
            {
                Name (_ADR, 0x00140003)  // _ADR: Address
                OperationRegion (RMBS, PCI_Config, Zero, 0x0100)
                Field (RMBS, ByteAcc, NoLock, Preserve)
                {
                    Offset (0x6C), 
                    LR2S,   16, 
                    LR2E,   16
                }

                Method (SPTS, 1, NotSerialized)
                {
                }

                Method (SWAK, 1, NotSerialized)
                {
                    If (PICM)
                    {
                        IRQC ()
                    }
                }

                Scope (\_SB)
                {
                    Name (SLPS, Zero)
                }

                OperationRegion (SMI0, SystemIO, SMIO, One)
                Field (SMI0, ByteAcc, NoLock, Preserve)
                {
                    SMIC,   8
                }

                Scope (\_SB)
                {
                    Scope (PCI0)
                    {
                        Device (S900)
                        {
                            Name (_HID, EisaId ("PNP0C02"))  // _HID: Hardware ID
                            Name (_UID, 0x0700)  // _UID: Unique ID
                            Name (_STA, 0x0F)  // _STA: Status
                            Name (CRS, ResourceTemplate ()
                            {
                                IO (Decode16,
                                    0x0010,             // Range Minimum
                                    0x0010,             // Range Maximum
                                    0x00,               // Alignment
                                    0x10,               // Length
                                    )
                                IO (Decode16,
                                    0x0022,             // Range Minimum
                                    0x0022,             // Range Maximum
                                    0x00,               // Alignment
                                    0x1E,               // Length
                                    )
                                IO (Decode16,
                                    0x0063,             // Range Minimum
                                    0x0063,             // Range Maximum
                                    0x00,               // Alignment
                                    0x01,               // Length
                                    )
                                IO (Decode16,
                                    0x0065,             // Range Minimum
                                    0x0065,             // Range Maximum
                                    0x00,               // Alignment
                                    0x01,               // Length
                                    )
                                IO (Decode16,
                                    0x0067,             // Range Minimum
                                    0x0067,             // Range Maximum
                                    0x00,               // Alignment
                                    0x09,               // Length
                                    )
                                IO (Decode16,
                                    0x0072,             // Range Minimum
                                    0x0072,             // Range Maximum
                                    0x00,               // Alignment
                                    0x0E,               // Length
                                    )
                                IO (Decode16,
                                    0x0080,             // Range Minimum
                                    0x0080,             // Range Maximum
                                    0x00,               // Alignment
                                    0x01,               // Length
                                    )
                                IO (Decode16,
                                    0x0084,             // Range Minimum
                                    0x0084,             // Range Maximum
                                    0x00,               // Alignment
                                    0x03,               // Length
                                    )
                                IO (Decode16,
                                    0x0088,             // Range Minimum
                                    0x0088,             // Range Maximum
                                    0x00,               // Alignment
                                    0x01,               // Length
                                    )
                                IO (Decode16,
                                    0x008C,             // Range Minimum
                                    0x008C,             // Range Maximum
                                    0x00,               // Alignment
                                    0x03,               // Length
                                    )
                                IO (Decode16,
                                    0x0090,             // Range Minimum
                                    0x0090,             // Range Maximum
                                    0x00,               // Alignment
                                    0x10,               // Length
                                    )
                                IO (Decode16,
                                    0x00A2,             // Range Minimum
                                    0x00A2,             // Range Maximum
                                    0x00,               // Alignment
                                    0x1E,               // Length
                                    )
                                IO (Decode16,
                                    0x00B1,             // Range Minimum
                                    0x00B1,             // Range Maximum
                                    0x00,               // Alignment
                                    0x01,               // Length
                                    )
                                IO (Decode16,
                                    0x00E0,             // Range Minimum
                                    0x00E0,             // Range Maximum
                                    0x00,               // Alignment
                                    0x10,               // Length
                                    )
                                IO (Decode16,
                                    0x04D0,             // Range Minimum
                                    0x04D0,             // Range Maximum
                                    0x00,               // Alignment
                                    0x02,               // Length
                                    )
                                IO (Decode16,
                                    0x040B,             // Range Minimum
                                    0x040B,             // Range Maximum
                                    0x00,               // Alignment
                                    0x01,               // Length
                                    )
                                IO (Decode16,
                                    0x04D6,             // Range Minimum
                                    0x04D6,             // Range Maximum
                                    0x00,               // Alignment
                                    0x01,               // Length
                                    )
                                IO (Decode16,
                                    0x0C00,             // Range Minimum
                                    0x0C00,             // Range Maximum
                                    0x00,               // Alignment
                                    0x02,               // Length
                                    )
                                IO (Decode16,
                                    0x0C14,             // Range Minimum
                                    0x0C14,             // Range Maximum
                                    0x00,               // Alignment
                                    0x01,               // Length
                                    )
                                IO (Decode16,
                                    0x0C50,             // Range Minimum
                                    0x0C50,             // Range Maximum
                                    0x00,               // Alignment
                                    0x02,               // Length
                                    )
                                IO (Decode16,
                                    0x0C52,             // Range Minimum
                                    0x0C52,             // Range Maximum
                                    0x00,               // Alignment
                                    0x01,               // Length
                                    )
                                IO (Decode16,
                                    0x0C6C,             // Range Minimum
                                    0x0C6C,             // Range Maximum
                                    0x00,               // Alignment
                                    0x01,               // Length
                                    )
                                IO (Decode16,
                                    0x0C6F,             // Range Minimum
                                    0x0C6F,             // Range Maximum
                                    0x00,               // Alignment
                                    0x01,               // Length
                                    )
                                IO (Decode16,
                                    0x0CD0,             // Range Minimum
                                    0x0CD0,             // Range Maximum
                                    0x00,               // Alignment
                                    0x02,               // Length
                                    )
                                IO (Decode16,
                                    0x0CD2,             // Range Minimum
                                    0x0CD2,             // Range Maximum
                                    0x00,               // Alignment
                                    0x02,               // Length
                                    )
                                IO (Decode16,
                                    0x0CD4,             // Range Minimum
                                    0x0CD4,             // Range Maximum
                                    0x00,               // Alignment
                                    0x02,               // Length
                                    )
                                IO (Decode16,
                                    0x0CD6,             // Range Minimum
                                    0x0CD6,             // Range Maximum
                                    0x00,               // Alignment
                                    0x02,               // Length
                                    )
                                IO (Decode16,
                                    0x0CD8,             // Range Minimum
                                    0x0CD8,             // Range Maximum
                                    0x00,               // Alignment
                                    0x08,               // Length
                                    )
                                IO (Decode16,
                                    0x0000,             // Range Minimum
                                    0x0000,             // Range Maximum
                                    0x00,               // Alignment
                                    0x00,               // Length
                                    _Y0E)
                                IO (Decode16,
                                    0x0000,             // Range Minimum
                                    0x0000,             // Range Maximum
                                    0x00,               // Alignment
                                    0x00,               // Length
                                    _Y11)
                                IO (Decode16,
                                    0x0000,             // Range Minimum
                                    0x0000,             // Range Maximum
                                    0x00,               // Alignment
                                    0x00,               // Length
                                    _Y10)
                                IO (Decode16,
                                    0x0000,             // Range Minimum
                                    0x0000,             // Range Maximum
                                    0x00,               // Alignment
                                    0x00,               // Length
                                    _Y0F)
                                IO (Decode16,
                                    0x0900,             // Range Minimum
                                    0x0900,             // Range Maximum
                                    0x00,               // Alignment
                                    0x10,               // Length
                                    )
                                IO (Decode16,
                                    0x0910,             // Range Minimum
                                    0x0910,             // Range Maximum
                                    0x00,               // Alignment
                                    0x10,               // Length
                                    )
                                IO (Decode16,
                                    0xFE00,             // Range Minimum
                                    0xFE00,             // Range Maximum
                                    0x00,               // Alignment
                                    0xFF,               // Length
                                    )
                                IO (Decode16,
                                    0x0060,             // Range Minimum
                                    0x0060,             // Range Maximum
                                    0x00,               // Alignment
                                    0x00,               // Length
                                    )
                                IO (Decode16,
                                    0x0064,             // Range Minimum
                                    0x0064,             // Range Maximum
                                    0x00,               // Alignment
                                    0x00,               // Length
                                    )
                                Memory32Fixed (ReadWrite,
                                    0x00000000,         // Address Base
                                    0x00000000,         // Address Length
                                    _Y12)
                                Memory32Fixed (ReadWrite,
                                    0xFEE00000,         // Address Base
                                    0x00001000,         // Address Length
                                    )
                                Memory32Fixed (ReadWrite,
                                    0xFED80000,         // Address Base
                                    0x00010000,         // Address Length
                                    )
                                Memory32Fixed (ReadWrite,
                                    0xFED61000,         // Address Base
                                    0x00010000,         // Address Length
                                    )
                                Memory32Fixed (ReadWrite,
                                    0x00000000,         // Address Base
                                    0x00000000,         // Address Length
                                    _Y13)
                                Memory32Fixed (ReadWrite,
                                    0x00000000,         // Address Base
                                    0x00000000,         // Address Length
                                    _Y14)
                                Memory32Fixed (ReadWrite,
                                    0x00000000,         // Address Base
                                    0x00000000,         // Address Length
                                    _Y15)
                            })
                            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                            {
                                CreateWordField (CRS, \_SB.PCI0.S900._Y0E._MIN, PBB)  // _MIN: Minimum Base Address
                                CreateWordField (CRS, \_SB.PCI0.S900._Y0E._MAX, PBH)  // _MAX: Maximum Base Address
                                CreateByteField (CRS, \_SB.PCI0.S900._Y0E._LEN, PML)  // _LEN: Length
                                Store (PMBS, PBB)
                                Store (PMBS, PBH)
                                Store (PMLN, PML)
                                If (SMBB)
                                {
                                    CreateWordField (CRS, \_SB.PCI0.S900._Y0F._MIN, SMB1)  // _MIN: Minimum Base Address
                                    CreateWordField (CRS, \_SB.PCI0.S900._Y0F._MAX, SMH1)  // _MAX: Maximum Base Address
                                    CreateByteField (CRS, \_SB.PCI0.S900._Y0F._LEN, SML1)  // _LEN: Length
                                    Store (SMBB, SMB1)
                                    Store (SMBB, SMH1)
                                    Store (SMBL, SML1)
                                    CreateWordField (CRS, \_SB.PCI0.S900._Y10._MIN, SMB0)  // _MIN: Minimum Base Address
                                    CreateWordField (CRS, \_SB.PCI0.S900._Y10._MAX, SMH0)  // _MAX: Maximum Base Address
                                    CreateByteField (CRS, \_SB.PCI0.S900._Y10._LEN, SML0)  // _LEN: Length
                                    Store (SMB0, SMB0)
                                    Store (SMB0, SMH0)
                                    Store (SMBM, SML0)
                                }

                                If (GPBS)
                                {
                                    CreateWordField (CRS, \_SB.PCI0.S900._Y11._MIN, IGB)  // _MIN: Minimum Base Address
                                    CreateWordField (CRS, \_SB.PCI0.S900._Y11._MAX, IGH)  // _MAX: Maximum Base Address
                                    CreateByteField (CRS, \_SB.PCI0.S900._Y11._LEN, IGL)  // _LEN: Length
                                    Store (GPBS, IGB)
                                    Store (GPBS, IGH)
                                    Store (GPLN, IGL)
                                }

                                If (APCB)
                                {
                                    CreateDWordField (CRS, \_SB.PCI0.S900._Y12._BAS, APB)  // _BAS: Base Address
                                    CreateDWordField (CRS, \_SB.PCI0.S900._Y12._LEN, APL)  // _LEN: Length
                                    Store (APCB, APB)
                                    Store (APCL, APL)
                                }

                                If (SPIB)
                                {
                                    CreateDWordField (CRS, \_SB.PCI0.S900._Y13._BAS, SPIB)  // _BAS: Base Address
                                    CreateDWordField (CRS, \_SB.PCI0.S900._Y13._LEN, SPIL)  // _LEN: Length
                                    Store (\SPIB, SPIB)
                                    Store (\SPIL, SPIL)
                                }

                                If (HPTB)
                                {
                                    CreateDWordField (CRS, \_SB.PCI0.S900._Y14._BAS, HXTB)  // _BAS: Base Address
                                    CreateDWordField (CRS, \_SB.PCI0.S900._Y14._LEN, HXTL)  // _LEN: Length
                                    Store (HPTB, HXTB)
                                    Store (HPTL, HXTL)
                                }

                                CreateDWordField (CRS, \_SB.PCI0.S900._Y15._BAS, ROMB)  // _BAS: Base Address
                                CreateDWordField (CRS, \_SB.PCI0.S900._Y15._LEN, ROML)  // _LEN: Length
                                If (^^SBRG.LR2S)
                                {
                                    Store (ShiftLeft (^^SBRG.LR2S, 0x10), ROMB)
                                    Store (ShiftLeft (Add (Subtract (^^SBRG.LR2E, ^^SBRG.LR2S), One), 0x10
                                        ), ROML)
                                }
                                Else
                                {
                                    Store (ROMS, ROMB)
                                    Subtract (Zero, ROMS, ROML)
                                }

                                Return (CRS)
                            }
                        }
                    }
                }

                Device (PIC)
                {
                    Name (_HID, EisaId ("PNP0000"))  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0020,             // Range Minimum
                            0x0020,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00A0,             // Range Minimum
                            0x00A0,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {2}
                    })
                }

                Device (DMAD)
                {
                    Name (_HID, EisaId ("PNP0200"))  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        DMA (Compatibility, BusMaster, Transfer8, )
                            {4}
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0081,             // Range Minimum
                            0x0081,             // Range Maximum
                            0x00,               // Alignment
                            0x03,               // Length
                            )
                        IO (Decode16,
                            0x0087,             // Range Minimum
                            0x0087,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0089,             // Range Minimum
                            0x0089,             // Range Maximum
                            0x00,               // Alignment
                            0x03,               // Length
                            )
                        IO (Decode16,
                            0x008F,             // Range Minimum
                            0x008F,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x00C0,             // Range Minimum
                            0x00C0,             // Range Maximum
                            0x00,               // Alignment
                            0x20,               // Length
                            )
                    })
                }

                Device (TMR)
                {
                    Name (_HID, EisaId ("PNP0100"))  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0040,             // Range Minimum
                            0x0040,             // Range Maximum
                            0x00,               // Alignment
                            0x04,               // Length
                            )
                        IRQNoFlags ()
                            {0}
                    })
                }

                Device (RTC0)
                {
                    Name (_HID, EisaId ("PNP0B00"))  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {8}
                    })
                }

                Device (SPKR)
                {
                    Name (_HID, EisaId ("PNP0800"))  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0061,             // Range Minimum
                            0x0061,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                    })
                }

                Device (NBRM)
                {
                    Name (_HID, EisaId ("PNP0C02"))  // _HID: Hardware ID
                    Name (_UID, 0x99)  // _UID: Unique ID
                    Name (CRS, ResourceTemplate ()
                    {
                    })
                    Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                    {
                        Return (CRS)
                    }
                }

                Device (RMSC)
                {
                    Name (_HID, EisaId ("PNP0C02"))  // _HID: Hardware ID
                    Name (_UID, 0x10)  // _UID: Unique ID
                    Name (CRS1, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0010,             // Range Minimum
                            0x0010,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0022,             // Range Minimum
                            0x0022,             // Range Maximum
                            0x00,               // Alignment
                            0x1E,               // Length
                            )
                        IO (Decode16,
                            0x0044,             // Range Minimum
                            0x0044,             // Range Maximum
                            0x00,               // Alignment
                            0x1C,               // Length
                            )
                        IO (Decode16,
                            0x0062,             // Range Minimum
                            0x0062,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0065,             // Range Minimum
                            0x0065,             // Range Maximum
                            0x00,               // Alignment
                            0x0B,               // Length
                            )
                        IO (Decode16,
                            0x0072,             // Range Minimum
                            0x0072,             // Range Maximum
                            0x00,               // Alignment
                            0x0E,               // Length
                            )
                        IO (Decode16,
                            0x0080,             // Range Minimum
                            0x0080,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0084,             // Range Minimum
                            0x0084,             // Range Maximum
                            0x00,               // Alignment
                            0x03,               // Length
                            )
                        IO (Decode16,
                            0x0088,             // Range Minimum
                            0x0088,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x008C,             // Range Minimum
                            0x008C,             // Range Maximum
                            0x00,               // Alignment
                            0x03,               // Length
                            )
                        IO (Decode16,
                            0x0090,             // Range Minimum
                            0x0090,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x00A2,             // Range Minimum
                            0x00A2,             // Range Maximum
                            0x00,               // Alignment
                            0x1E,               // Length
                            )
                        IO (Decode16,
                            0x00E0,             // Range Minimum
                            0x00E0,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x04D0,             // Range Minimum
                            0x04D0,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                    })
                    Name (CRS2, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0010,             // Range Minimum
                            0x0010,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x0022,             // Range Minimum
                            0x0022,             // Range Maximum
                            0x00,               // Alignment
                            0x1E,               // Length
                            )
                        IO (Decode16,
                            0x0044,             // Range Minimum
                            0x0044,             // Range Maximum
                            0x00,               // Alignment
                            0x1C,               // Length
                            )
                        IO (Decode16,
                            0x0072,             // Range Minimum
                            0x0072,             // Range Maximum
                            0x00,               // Alignment
                            0x0E,               // Length
                            )
                        IO (Decode16,
                            0x0080,             // Range Minimum
                            0x0080,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0084,             // Range Minimum
                            0x0084,             // Range Maximum
                            0x00,               // Alignment
                            0x03,               // Length
                            )
                        IO (Decode16,
                            0x0088,             // Range Minimum
                            0x0088,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x008C,             // Range Minimum
                            0x008C,             // Range Maximum
                            0x00,               // Alignment
                            0x03,               // Length
                            )
                        IO (Decode16,
                            0x0090,             // Range Minimum
                            0x0090,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x00A2,             // Range Minimum
                            0x00A2,             // Range Maximum
                            0x00,               // Alignment
                            0x1E,               // Length
                            )
                        IO (Decode16,
                            0x00E0,             // Range Minimum
                            0x00E0,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0x04D0,             // Range Minimum
                            0x04D0,             // Range Maximum
                            0x00,               // Alignment
                            0x02,               // Length
                            )
                    })
                    Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                    {
                        If (And (MBEC, 0xFFFF))
                        {
                            Return (CRS1)
                        }
                        Else
                        {
                            Return (CRS2)
                        }
                    }
                }

                Device (COPR)
                {
                    Name (_HID, EisaId ("PNP0C04"))  // _HID: Hardware ID
                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x00F0,             // Range Minimum
                            0x00F0,             // Range Maximum
                            0x00,               // Alignment
                            0x10,               // Length
                            )
                        IRQNoFlags ()
                            {13}
                    })
                }

                Device (ADBG)
                {
                    Name (_HID, EisaId ("PNP0C02"))  // _HID: Hardware ID
                    Name (_UID, 0x13)  // _UID: Unique ID
                    Name (CRS1, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0240,             // Range Minimum
                            0x0240,             // Range Maximum
                            0x01,               // Alignment
                            0x1A,               // Length
                            )
                    })
                    OperationRegion (DBGC, SystemIO, 0x0259, 0x10)
                    Field (DBGC, ByteAcc, Lock, Preserve)
                    {
                        DBGP,   8
                    }

                    OperationRegion (DBPP, SystemIO, 0x0250, 0x02)
                    Field (DBPP, ByteAcc, Lock, Preserve)
                    {
                        PPDT,   8, 
                        PPST,   8
                    }

                    OperationRegion (DB80, SystemIO, 0x80, One)
                    Field (DB80, ByteAcc, Lock, Preserve)
                    {
                        DP80,   8
                    }

                    Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                    {
                        Return (CRS1)
                    }

                    Method (CALL, 0, Serialized)
                    {
                        ISMI (0x96)
                    }

                    Method (PUTD, 1, Serialized)
                    {
                        Or (And (Arg0, 0x0F), 0x10, Local0)
                        And (ShiftRight (Arg0, 0x04), 0x0F, Local1)
                        And (Not (Local1), 0x0F, Local2)
                        Store (0xFFFF, Local4)
                        Store (Local0, PPDT)
                        Store (ShiftRight (XOr (PPST, 0x80), 0x03), Local3)
                        While (LAnd (LNotEqual (Local3, 0x10), LNotEqual (Local4, Zero)))
                        {
                            Store (ShiftRight (XOr (PPST, 0x80), 0x03), Local3)
                            Decrement (Local4)
                            Stall (0x1E)
                        }

                        If (LEqual (Local4, Zero))
                        {
                            Store (Zero, PPDT)
                            Return (Zero)
                        }

                        Store (0xFFFF, Local4)
                        Store (Local1, PPDT)
                        Store (ShiftRight (XOr (PPST, 0x80), 0x03), Local3)
                        While (LAnd (LNotEqual (Local3, Zero), LNotEqual (Local4, Zero)))
                        {
                            Store (ShiftRight (XOr (PPST, 0x80), 0x03), Local3)
                            Decrement (Local4)
                            Stall (0x1E)
                        }

                        If (LEqual (Local4, Zero))
                        {
                            Store (Zero, PPDT)
                            Return (Zero)
                        }

                        Store (Local2, PPDT)
                        Return (One)
                    }

                    Method (OUTS, 1, Serialized)
                    {
                        If (LNotEqual (DBGP, 0xFF))
                        {
                            Add (SizeOf (Arg0), One, Local0)
                            Store (Zero, Local1)
                            Name (BUFF, Buffer (Local0) {})
                            Store (Arg0, BUFF)
                            Subtract (Local0, One, Local0)
                            If (LEqual (PUTD (0x53), Zero))
                            {
                                Return (Zero)
                            }

                            While (LNotEqual (DerefOf (Index (BUFF, Local1)), Zero))
                            {
                                If (LEqual (PUTD (DerefOf (Index (BUFF, Local1))), Zero))
                                {
                                    PUTD (Zero)
                                    Return (Zero)
                                }

                                Increment (Local1)
                            }

                            PUTD (Zero)
                            Return (One)
                        }
                        Else
                        {
                            Return (Zero)
                        }
                    }

                    Method (OUTD, 1, Serialized)
                    {
                        Name (DEC, Buffer (0x0B)
                        {
                            "0123456789"
                        })
                        Name (TMP, Buffer (0x0B) {})
                        Store (Zero, Local0)
                        Store (Arg0, Local1)
                        If (LEqual (Local1, Zero))
                        {
                            OUTS ("0")
                        }
                        Else
                        {
                            While (LGreater (Local1, Zero))
                            {
                                Divide (Local1, 0x0A, Local2, Local1)
                                Store (DerefOf (Index (DEC, Local2)), Index (TMP, Local0))
                                Increment (Local0)
                                Store (Zero, Index (TMP, Local0))
                            }

                            Store (Zero, Local2)
                            Decrement (Local0)
                            While (LLess (Local2, Local0))
                            {
                                Store (DerefOf (Index (TMP, Local2)), Local3)
                                Store (DerefOf (Index (TMP, Local0)), Index (TMP, Local2))
                                Store (Local3, Index (TMP, Local0))
                                Increment (Local2)
                                Decrement (Local0)
                            }

                            OUTS (TMP)
                        }
                    }

                    Method (OUTH, 1, Serialized)
                    {
                        Name (HEX, Buffer (0x11)
                        {
                            "0123456789ABCDEF"
                        })
                        Name (TMP, Buffer (0x0A) {})
                        Store (Zero, Local0)
                        Store (Arg0, Local1)
                        While (LLess (Local0, 0x08))
                        {
                            And (Local1, 0x0F, Local2)
                            Store (DerefOf (Index (HEX, Local2)), Index (TMP, Local0))
                            ShiftRight (Local1, 0x04, Local1)
                            Increment (Local0)
                            Store (Zero, Index (TMP, Local0))
                        }

                        Store (Zero, Local2)
                        Decrement (Local0)
                        While (LLess (Local2, Local0))
                        {
                            Store (DerefOf (Index (TMP, Local2)), Local3)
                            Store (DerefOf (Index (TMP, Local0)), Index (TMP, Local2))
                            Store (Local3, Index (TMP, Local0))
                            Increment (Local2)
                            Decrement (Local0)
                        }

                        OUTS (TMP)
                    }
                }

                Device (PS2M)
                {
                    Method (_HID, 0, NotSerialized)  // _HID: Hardware ID
                    {
                        If (\WMI0.FOTP)
                        {
                            Return (0x01019419)
                        }

                        If (\WMI0.SYNA)
                        {
                            Return (0x191D2E4F)
                        }

                        If (\WMI0.ALPS)
                        {
                            Return (0x09018416)
                        }

                        Return (0x060A2E4F)
                    }

                    Name (_CID, Package (0x03)  // _CID: Compatible ID
                    {
                        EisaId ("SYN1D00"), 
                        EisaId ("SYN0002"), 
                        EisaId ("PNP0F13")
                    })
                    Method (_STA, 0, NotSerialized)  // _STA: Status
                    {
                        ShiftLeft (One, 0x0E, Local0)
                        If (And (IOST, Local0))
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (Zero)
                        }

                        Return (Zero)
                    }

                    Name (CRS1, ResourceTemplate ()
                    {
                        IRQNoFlags ()
                            {12}
                    })
                    Name (CRS2, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0060,             // Range Minimum
                            0x0060,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0064,             // Range Minimum
                            0x0064,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IRQNoFlags ()
                            {12}
                    })
                    Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
                    {
                        ShiftLeft (One, 0x0A, Local0)
                        If (And (IOST, Local0))
                        {
                            Return (CRS1)
                        }
                        Else
                        {
                            Return (CRS2)
                        }
                    }
                }

                Device (PS2K)
                {
                    Name (_HID, "ATK3001")  // _HID: Hardware ID
                    Name (_CID, EisaId ("PNP0303"))  // _CID: Compatible ID
                    Method (_STA, 0, NotSerialized)  // _STA: Status
                    {
                        ShiftLeft (One, 0x0A, Local0)
                        If (And (IOST, Local0))
                        {
                            Return (0x0F)
                        }

                        Return (Zero)
                    }

                    Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
                    {
                        IO (Decode16,
                            0x0060,             // Range Minimum
                            0x0060,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0064,             // Range Minimum
                            0x0064,             // Range Maximum
                            0x00,               // Alignment
                            0x01,               // Length
                            )
                        IRQNoFlags ()
                            {1}
                    })
                }
            }

            Device (P0PC)
            {
                Name (_ADR, 0x00140004)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x04, 0x04))
                }
            }

            Device (OHC1)
            {
                Name (_ADR, 0x00120000)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x0B, 0x03))
                }
            }

            Device (EHC1)
            {
                Name (_ADR, 0x00120002)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x0B, 0x03))
                }
            }

            Device (OHC2)
            {
                Name (_ADR, 0x00130000)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x0B, 0x03))
                }
            }

            Device (EHC2)
            {
                Name (_ADR, 0x00130002)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x0B, 0x03))
                }
            }

            Device (OHC3)
            {
                Name (_ADR, 0x00160000)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x0B, 0x03))
                }
            }

            Device (EHC3)
            {
                Name (_ADR, 0x00160002)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x0B, 0x03))
                }
            }

            Device (OHC4)
            {
                Name (_ADR, 0x00140005)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x0B, 0x03))
                }
            }

            Device (XHC0)
            {
                Name (_ADR, 0x00100000)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x0B, 0x03))
                }
            }

            Device (XHC1)
            {
                Name (_ADR, 0x00100001)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x0B, 0x03))
                }
            }

            Device (PE20)
            {
                Name (_ADR, 0x00150000)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x09, 0x04))
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        Return (AR20)
                    }

                    Return (PR20)
                }
            }

            Device (PE21)
            {
                Name (_ADR, 0x00150001)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x09, 0x04))
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        Return (AR21)
                    }

                    Return (PR21)
                }

                Device (WLAN)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    OperationRegion (MINP, PCI_Config, Zero, 0x68)
                    Field (MINP, ByteAcc, NoLock, Preserve)
                    {
                        VNUM,   32, 
                        Offset (0x09), 
                        PINF,   8, 
                        SBCC,   8, 
                        BSCC,   8, 
                        Offset (0x2C), 
                        SNUM,   32, 
                        Offset (0x34)
                    }

                    Method (MPDP, 0, NotSerialized)
                    {
                        If (LEqual (SNUM, 0xFFFFFFFF))
                        {
                            Return (Zero)
                        }

                        If (LNotEqual (BSCC, 0x02))
                        {
                            Return (Zero)
                        }

                        Return (One)
                    }

                    Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                    {
                        Return (GPRW (0x09, 0x04))
                    }
                }
            }

            Device (PE22)
            {
                Name (_ADR, 0x00150002)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x09, 0x04))
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        Return (AR22)
                    }

                    Return (PR22)
                }

                Device (GLAN)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    OperationRegion (LANR, PCI_Config, Zero, 0x0100)
                    Field (LANR, ByteAcc, NoLock, Preserve)
                    {
                        VID,    16, 
                        Offset (0xE0), 
                            ,   15, 
                        PMES,   1
                    }

                    Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                    {
                        Return (GPRW (0x09, 0x04))
                    }
                }
            }

            Device (PE23)
            {
                Name (_ADR, 0x00150003)  // _ADR: Address
                Method (_PRW, 0, NotSerialized)  // _PRW: Power Resources for Wake
                {
                    Return (GPRW (0x09, 0x04))
                }

                Method (_PRT, 0, NotSerialized)  // _PRT: PCI Routing Table
                {
                    If (PICM)
                    {
                        Return (AR23)
                    }

                    Return (PR23)
                }
            }

            Device (VGA)
            {
                Name (_ADR, 0x00010000)  // _ADR: Address
                OperationRegion (VSID, PCI_Config, Zero, 0x20)
                Field (VSID, ByteAcc, NoLock, Preserve)
                {
                    REG0,   32, 
                    REG4,   32, 
                    REG8,   32
                }

                Method (PRST, 0, NotSerialized)
                {
                    If (LEqual (REG0, 0xFFFFFFFF))
                    {
                        Return (Zero)
                    }
                    Else
                    {
                        If (LEqual (And (REG8, 0xFFFFFF00), 0x03000000))
                        {
                            Return (One)
                        }
                        Else
                        {
                            Return (Zero)
                        }
                    }
                }

                Name (DVIM, 0x10)
                Name (HDMM, 0x08)
                Name (PCTG, Package (0x0D) {})
                Name (PCW8, Package (0x67) {})
                Name (LCDM, One)
                Name (CRTM, 0x02)
                Name (TVOM, 0x04)
                Name (DO1M, 0x10)
                Name (DO2M, 0x08)
                Name (DONE, Zero)
                Name (DOSF, One)
                Name (BRNC, Zero)
                Name (UPDN, One)
                Name (NXTD, One)
                Name (GADD, Zero)
                Method (MD2A, 1, NotSerialized)
                {
                    Store (Zero, Local0)
                    If (And (Arg0, LCDM))
                    {
                        Or (Local0, One, Local0)
                    }

                    If (And (Arg0, CRTM))
                    {
                        Or (Local0, 0x02, Local0)
                    }

                    If (And (Arg0, TVOM))
                    {
                        Or (Local0, 0x04, Local0)
                    }

                    If (And (Arg0, DVIM))
                    {
                        Or (Local0, 0x08, Local0)
                    }

                    If (And (Arg0, HDMM))
                    {
                        Or (Local0, 0x10, Local0)
                    }

                    If (LNot (Local0))
                    {
                        Return (NXTD)
                    }

                    Return (Local0)
                }

                Method (MA2D, 1, NotSerialized)
                {
                    Store (Zero, Local0)
                    If (And (Arg0, One))
                    {
                        Or (Local0, LCDM, Local0)
                    }

                    If (And (Arg0, 0x02))
                    {
                        Or (Local0, CRTM, Local0)
                    }

                    If (And (Arg0, 0x04))
                    {
                        Or (Local0, TVOM, Local0)
                    }

                    If (And (Arg0, 0x08))
                    {
                        Or (Local0, DVIM, Local0)
                    }

                    If (And (Arg0, 0x10))
                    {
                        Or (Local0, HDMM, Local0)
                    }

                    If (LNot (Local0))
                    {
                        Return (LCDM)
                    }

                    Return (Local0)
                }

                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                }

                Method (_DOS, 1, NotSerialized)  // _DOS: Disable Output Switching
                {
                    And (Arg0, 0x03, DOSF)
                    Store (ShiftRight (Arg0, 0x02), BRNC)
                    And (BRNC, One, BRNC)
                    If (LGreaterEqual (OSFG, OSW8))
                    {
                        If (LEqual (\WMI0.VGAF, 0x02))
                        {
                            Or (AF7E, One, AF7E)
                        }
                    }
                }

                Method (_DOD, 0, NotSerialized)  // _DOD: Display Output Devices
                {
                    Name (ADOD, Package (0x03)
                    {
                        0x00010110, 
                        0x00010100, 
                        0x0210
                    })
                    Name (NDOD, Package (0x03)
                    {
                        0x00010110, 
                        0x00010100, 
                        0x0121
                    })
                    If (LEqual (\WMI0.VGAF, 0x02))
                    {
                        Return (ADOD)
                    }
                    Else
                    {
                        Return (NDOD)
                    }
                }

                Device (LCDD)
                {
                    Name (_ADR, 0x0110)  // _ADR: Address
                    Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
                    {
                        If (And (\WMI0.AVLD, LCDM))
                        {
                            Return (0x1F)
                        }

                        Return (0x1D)
                    }

                    Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
                    {
                        If (And (\WMI0.SETD, LCDM))
                        {
                            Return (One)
                        }

                        Return (Zero)
                    }

                    Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
                    {
                        If (And (Arg0, 0x40000000))
                        {
                            If (And (Arg0, 0x80000000))
                            {
                                Store (One, DONE)
                            }
                        }
                    }

                    Method (_BCL, 0, NotSerialized)  // _BCL: Brightness Control Levels
                    {
                        If (LGreaterEqual (OSFG, OSW8))
                        {
                            Store (Zero, Local0)
                            Store (Divide (Multiply (\WMI0.AB00, 0x64), 0xFF, ), Local1)
                            While (LLess (Local0, 0x65))
                            {
                                If (LLess (Local0, Local1))
                                {
                                    Store (Local1, Index (PCW8, Add (Local0, 0x02)))
                                }
                                Else
                                {
                                    Store (Local0, Index (PCW8, Add (Local0, 0x02)))
                                }

                                Increment (Local0)
                            }

                            Store (0x64, Index (PCW8, Zero))
                            Store (0x28, Index (PCW8, One))
                            Return (PCW8)
                        }

                        Subtract (0x0B, One, Local0)
                        Store (^^^SBRG.HEC.PWAC (Local0), Local1)
                        Store (Divide (Multiply (Local1, 0x64), 0xFF, ), Local2)
                        Store (Local2, Index (PCTG, Zero))
                        Subtract (0x0B, 0x04, Local0)
                        Store (^^^SBRG.HEC.PWAC (Local0), Local1)
                        Store (Divide (Multiply (Local1, 0x64), 0xFF, ), Local2)
                        Store (Local2, Index (PCTG, One))
                        Store (Zero, Local0)
                        While (LLess (Local0, 0x0B))
                        {
                            Store (^^^SBRG.HEC.PWAC (Local0), Local1)
                            Store (Divide (Multiply (Local1, 0x64), 0xFF, ), Local2)
                            Store (Local2, Index (PCTG, Add (Local0, 0x02)))
                            Increment (Local0)
                        }

                        Return (PCTG)
                    }

                    Method (_BCM, 1, NotSerialized)  // _BCM: Brightness Control Method
                    {
                        Store (GCBL (Arg0), Local0)
                        Store (Local0, \WMI0.LBTN)
                        If (LGreaterEqual (OSFG, OSW8))
                        {
                            Store (Divide (Multiply (Local0, 0xFF), 0x64, ), Local1)
                            If (LEqual (AF7E, 0x80000001))
                            {
                                AFN7 (Local1)
                            }
                        }
                        Else
                        {
                            ^^^SBRG.HEC.STBR ()
                        }
                    }

                    Method (_BQC, 0, NotSerialized)  // _BQC: Brightness Query Current
                    {
                        Store (\WMI0.LBTN, Local0)
                        If (LGreaterEqual (OSFG, OSW8))
                        {
                            Return (DerefOf (Index (PCW8, Add (Local0, 0x02))))
                        }
                        Else
                        {
                            Return (DerefOf (Index (PCTG, Add (Local0, 0x02))))
                        }
                    }
                }

                Device (CRTD)
                {
                    Name (_ADR, 0x0100)  // _ADR: Address
                    Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
                    {
                        If (And (\WMI0.AVLD, CRTM))
                        {
                            Return (0x1F)
                        }

                        Return (0x1D)
                    }

                    Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
                    {
                        If (And (\WMI0.SETD, CRTM))
                        {
                            Return (One)
                        }

                        Return (Zero)
                    }

                    Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
                    {
                        If (And (Arg0, 0x40000000))
                        {
                            If (And (Arg0, 0x80000000))
                            {
                                Store (One, DONE)
                            }
                        }
                    }
                }

                Device (DO2D)
                {
                    Method (_ADR, 0, NotSerialized)  // _ADR: Address
                    {
                        If (LEqual (\WMI0.VGAF, 0x02))
                        {
                            Return (0x0210)
                        }
                        Else
                        {
                            Return (0x0121)
                        }
                    }

                    Method (_DCS, 0, NotSerialized)  // _DCS: Display Current Status
                    {
                        If (And (\WMI0.AVLD, DO2M))
                        {
                            Return (0x1F)
                        }

                        Return (0x1D)
                    }

                    Method (_DGS, 0, NotSerialized)  // _DGS: Display Graphics State
                    {
                        If (And (\WMI0.SETD, DO2M))
                        {
                            Return (One)
                        }

                        Return (Zero)
                    }

                    Method (_DSS, 1, NotSerialized)  // _DSS: Device Set State
                    {
                        If (And (Arg0, 0x40000000))
                        {
                            If (And (Arg0, 0x80000000))
                            {
                                Store (One, DONE)
                            }
                        }
                    }
                }

                Method (SWHD, 1, Serialized)
                {
                    Store (One, UPDN)
                    If (And (DOSF, 0x03))
                    {
                        Store (MA2D (Arg0), \WMI0.SETD)
                        ISMI (0x94)
                    }
                    Else
                    {
                        Store (MA2D (Arg0), \WMI0.SETD)
                        Notify (VGA, 0x80)
                    }
                }

                Method (GETD, 0, NotSerialized)
                {
                    Store (One, GADD)
                    AFN0 ()
                    Store (Zero, Local0)
                    While (LAnd (LLess (Local0, 0x0A), GADD))
                    {
                        Sleep (0x64)
                        Increment (Local0)
                    }

                    Store (Zero, GADD)
                    Return (\WMI0.ACTD)
                }

                Method (GNDD, 0, NotSerialized)
                {
                    ISMI (0xA0)
                    Return (\WMI0.SETD)
                }

                Method (ADVD, 0, NotSerialized)
                {
                    If (UPDN)
                    {
                        GETD ()
                        Store (\WMI0.ACTD, \WMI0.SETD)
                        Store (Zero, UPDN)
                    }

                    GNDD ()
                    Store (\WMI0.SETD, NXTD)
                    Store (MD2A (NXTD), NXTD)
                    Return (NXTD)
                }

                Method (NATK, 0, NotSerialized)
                {
                    Return (One)
                }

                Method (UPBL, 0, NotSerialized)
                {
                    If (LGreaterEqual (OSFG, OSW8))
                    {
                        Notify (LCDD, 0x86)
                        Sleep (0x19)
                        Return (Zero)
                    }

                    If (ATKP)
                    {
                        Store (\WMI0.LBTN, Local0)
                        If (LLess (\WMI0.LBTN, 0x0A))
                        {
                            Increment (Local0)
                        }
                        Else
                        {
                            Store (0x0A, Local0)
                        }

                        Store (Local0, \WMI0.LBTN)
                        ^^^ATKD.NTFY (Add (Local0, 0x10))
                    }

                    Notify (LCDD, 0x86)
                }

                Method (DWBL, 0, NotSerialized)
                {
                    If (LGreaterEqual (OSFG, OSW8))
                    {
                        Notify (LCDD, 0x87)
                        Sleep (0x19)
                        Return (Zero)
                    }

                    If (ATKP)
                    {
                        Store (\WMI0.LBTN, Local0)
                        If (LGreater (\WMI0.LBTN, Zero))
                        {
                            Decrement (Local0)
                        }

                        If (LGreater (\WMI0.LBTN, 0x0A))
                        {
                            Store (0x0A, Local0)
                        }

                        Store (Local0, \WMI0.LBTN)
                        ^^^ATKD.NTFY (Add (Local0, 0x20))
                    }

                    Notify (LCDD, 0x87)
                }

                Method (GCBL, 1, NotSerialized)
                {
                    Store (Zero, Local0)
                    And (Arg0, 0x7FFFFFFF, Arg0)
                    While (LLess (Local0, 0x0B))
                    {
                        Store (DerefOf (Index (PCTG, Add (Local0, 0x02))), Local1)
                        If (LGreaterEqual (Local1, Arg0))
                        {
                            Break
                        }

                        Increment (Local0)
                    }

                    If (LGreaterEqual (Local0, 0x0B))
                    {
                        Store (0x0A, Local2)
                    }
                    Else
                    {
                        Store (Local0, Local2)
                    }

                    Return (Local2)
                }
            }

            Device (SATA)
            {
                Name (_ADR, 0x00110000)  // _ADR: Address
                Method (_INI, 0, NotSerialized)  // _INI: Initialize
                {
                }

                OperationRegion (SACS, PCI_Config, Zero, 0x40)
                Field (SACS, AnyAcc, NoLock, Preserve)
                {
                    Offset (0x24), 
                    STB5,   32
                }

                Name (SPTM, Buffer (0x14)
                {
                    /* 0000 */   0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
                    /* 0008 */   0x78, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,
                    /* 0010 */   0x1F, 0x00, 0x00, 0x00
                })
                Device (PRID)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Method (_GTM, 0, NotSerialized)  // _GTM: Get Timing Mode
                    {
                        Return (SPTM)
                    }

                    Method (_STM, 3, NotSerialized)  // _STM: Set Timing Mode
                    {
                    }

                    Method (_STA, 0, NotSerialized)  // _STA: Status
                    {
                        If (LEqual (STCL, 0x0101))
                        {
                            Store (0x0F, Local1)
                        }
                        Else
                        {
                            Store (Zero, Local1)
                        }

                        Return (Local1)
                    }

                    Name (PRIS, Zero)
                    Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
                    {
                        OperationRegion (BAR, SystemMemory, STB5, 0x0400)
                        Field (BAR, AnyAcc, NoLock, Preserve)
                        {
                            Offset (0x120), 
                                ,   7, 
                            PMBY,   1, 
                            Offset (0x128), 
                            PMS0,   4, 
                            Offset (0x129), 
                            PMS1,   4, 
                            Offset (0x220), 
                                ,   7, 
                            PSBY,   1, 
                            Offset (0x228), 
                            PSS0,   4, 
                            Offset (0x229), 
                            PSS1,   4, 
                            Offset (0x2A0), 
                                ,   7
                        }

                        If (LOr (LEqual (OSVR, 0x06), LEqual (OSVR, 0x04)))
                        {
                            If (PMS1)
                            {
                                Store (0x32, Local0)
                                While (LAnd (LEqual (PMBY, One), Local0))
                                {
                                    Sleep (0xFA)
                                    Decrement (Local0)
                                }
                            }

                            If (PSS1)
                            {
                                Store (0x32, Local0)
                                While (LAnd (LEqual (PSBY, One), Local0))
                                {
                                    Sleep (0xFA)
                                    Decrement (Local0)
                                }
                            }
                        }

                        Store (Zero, PRIS)
                    }

                    Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
                    {
                        Store (0x03, PRIS)
                    }

                    Method (_PSC, 0, NotSerialized)  // _PSC: Power State Current
                    {
                        Return (PRIS)
                    }

                    Device (P_D0)
                    {
                        Name (_ADR, Zero)  // _ADR: Address
                        Method (_STA, 0, NotSerialized)  // _STA: Status
                        {
                            OperationRegion (BAR, SystemMemory, STB5, 0x0400)
                            Field (BAR, AnyAcc, NoLock, Preserve)
                            {
                                Offset (0x128), 
                                PMS0,   4, 
                                Offset (0x129), 
                                PMS1,   4
                            }

                            If (Not (LEqual (PMS1, Zero)))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }

                        Name (S12P, Zero)
                        Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
                        {
                            OperationRegion (BAR, SystemMemory, STB5, 0x0400)
                            Field (BAR, AnyAcc, NoLock, Preserve)
                            {
                                Offset (0x120), 
                                    ,   7, 
                                PMBY,   1
                            }

                            Store (0x32, Local0)
                            While (LAnd (LEqual (PMBY, One), Local0))
                            {
                                Sleep (0xFA)
                                Decrement (Local0)
                            }

                            Store (Zero, S12P)
                        }

                        Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
                        {
                            Store (0x03, S12P)
                        }

                        Method (_PSC, 0, NotSerialized)  // _PSC: Power State Current
                        {
                            Return (S12P)
                        }
                    }

                    Device (P_D1)
                    {
                        Name (_ADR, One)  // _ADR: Address
                        Method (_STA, 0, NotSerialized)  // _STA: Status
                        {
                            OperationRegion (BAR, SystemMemory, STB5, 0x0400)
                            Field (BAR, AnyAcc, NoLock, Preserve)
                            {
                                Offset (0x228), 
                                PSS0,   4, 
                                Offset (0x229), 
                                PSS1,   4
                            }

                            If (Not (LEqual (PSS1, Zero)))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }

                        Name (S12P, Zero)
                        Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
                        {
                            OperationRegion (BAR, SystemMemory, STB5, 0x0400)
                            Field (BAR, AnyAcc, NoLock, Preserve)
                            {
                                Offset (0x220), 
                                    ,   7, 
                                PSBY,   1
                            }

                            Store (0x32, Local0)
                            While (LAnd (LEqual (PSBY, One), Local0))
                            {
                                Sleep (0xFA)
                                Decrement (Local0)
                            }

                            Store (Zero, S12P)
                        }

                        Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
                        {
                            Store (0x03, S12P)
                        }

                        Method (_PSC, 0, NotSerialized)  // _PSC: Power State Current
                        {
                            Return (S12P)
                        }
                    }
                }

                Device (SECD)
                {
                    Name (_ADR, One)  // _ADR: Address
                    Method (_GTM, 0, NotSerialized)  // _GTM: Get Timing Mode
                    {
                        Return (SPTM)
                    }

                    Method (_STM, 3, NotSerialized)  // _STM: Set Timing Mode
                    {
                    }

                    Name (SECS, Zero)
                    Method (_STA, 0, NotSerialized)  // _STA: Status
                    {
                        If (LEqual (STCL, 0x0101))
                        {
                            Store (0x0F, Local1)
                        }
                        Else
                        {
                            Store (Zero, Local1)
                        }

                        Return (Local1)
                    }

                    Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
                    {
                        OperationRegion (BAR, SystemMemory, STB5, 0x0400)
                        Field (BAR, AnyAcc, NoLock, Preserve)
                        {
                            Offset (0x1A0), 
                                ,   7, 
                            SMBY,   1, 
                            Offset (0x1A8), 
                            SMS0,   4, 
                            Offset (0x1A9), 
                            SMS1,   4, 
                            Offset (0x2A0), 
                                ,   7, 
                            SSBY,   1, 
                            Offset (0x2A8), 
                            SSS0,   4, 
                            Offset (0x2A9), 
                            SSS1,   4, 
                            Offset (0x2AC)
                        }

                        If (LOr (LEqual (OSVR, 0x06), LEqual (OSVR, 0x04)))
                        {
                            If (SMS1)
                            {
                                Store (0x32, Local0)
                                While (LAnd (LEqual (SMBY, One), Local0))
                                {
                                    Sleep (0xFA)
                                    Decrement (Local0)
                                }
                            }

                            If (SSS1)
                            {
                                Store (0x32, Local0)
                                While (LAnd (LEqual (SSBY, One), Local0))
                                {
                                    Sleep (0xFA)
                                    Decrement (Local0)
                                }
                            }
                        }

                        Store (Zero, SECS)
                    }

                    Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
                    {
                        Store (0x03, SECS)
                    }

                    Method (_PSC, 0, NotSerialized)  // _PSC: Power State Current
                    {
                        Return (SECS)
                    }

                    Device (S_D0)
                    {
                        Name (_ADR, Zero)  // _ADR: Address
                        Method (_STA, 0, NotSerialized)  // _STA: Status
                        {
                            OperationRegion (BAR, SystemMemory, STB5, 0x0400)
                            Field (BAR, AnyAcc, NoLock, Preserve)
                            {
                                Offset (0x1A8), 
                                SMS0,   4, 
                                Offset (0x1A9), 
                                SMS1,   4
                            }

                            If (Not (LEqual (SMS1, Zero)))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }

                        Name (S12P, Zero)
                        Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
                        {
                            OperationRegion (BAR, SystemMemory, STB5, 0x1000)
                            Field (BAR, AnyAcc, NoLock, Preserve)
                            {
                                Offset (0x1A0), 
                                    ,   7, 
                                SMBY,   1
                            }

                            Store (0x32, Local0)
                            While (LAnd (LEqual (SMBY, One), Local0))
                            {
                                Sleep (0xFA)
                                Decrement (Local0)
                            }

                            Store (Zero, S12P)
                        }

                        Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
                        {
                            Store (0x03, S12P)
                        }

                        Method (_PSC, 0, NotSerialized)  // _PSC: Power State Current
                        {
                            Return (S12P)
                        }
                    }

                    Device (S_D1)
                    {
                        Name (_ADR, One)  // _ADR: Address
                        Method (_STA, 0, NotSerialized)  // _STA: Status
                        {
                            OperationRegion (BAR, SystemMemory, STB5, 0x0400)
                            Field (BAR, AnyAcc, NoLock, Preserve)
                            {
                                Offset (0x2A8), 
                                SSS0,   4, 
                                Offset (0x2A9), 
                                SSS1,   4
                            }

                            If (Not (LEqual (SSS1, Zero)))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }

                        Name (S12P, Zero)
                        Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
                        {
                            OperationRegion (BAR, SystemMemory, STB5, 0x0400)
                            Field (BAR, AnyAcc, NoLock, Preserve)
                            {
                                Offset (0x2A0), 
                                    ,   7, 
                                SSBY,   1
                            }

                            Store (0x32, Local0)
                            While (LAnd (LEqual (SSBY, One), Local0))
                            {
                                Sleep (0xFA)
                                Decrement (Local0)
                            }

                            Store (Zero, S12P)
                        }

                        Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
                        {
                            Store (0x03, S12P)
                        }

                        Method (_PSC, 0, NotSerialized)  // _PSC: Power State Current
                        {
                            Return (S12P)
                        }
                    }
                }
            }
        }
    }

    Scope (_SB)
    {
        OperationRegion (PIRQ, SystemIO, 0x0C00, 0x02)
        Field (PIRQ, ByteAcc, NoLock, Preserve)
        {
            PIDX,   8, 
            PDAT,   8
        }

        IndexField (PIDX, PDAT, ByteAcc, NoLock, Preserve)
        {
            PIRA,   8, 
            PIRB,   8, 
            PIRC,   8, 
            PIRD,   8, 
            PIRE,   8, 
            PIRF,   8, 
            PIRG,   8, 
            PIRH,   8, 
            Offset (0x10), 
            PIRS,   8, 
            Offset (0x13), 
            HDAD,   8, 
            Offset (0x15), 
            GEC,    8, 
            Offset (0x30), 
            USB1,   8, 
            USB2,   8, 
            USB3,   8, 
            USB4,   8, 
            USB5,   8, 
            USB6,   8, 
            USB7,   8, 
            Offset (0x40), 
            IDE,    8, 
            SATA,   8, 
            Offset (0x50), 
            GPP0,   8, 
            GPP1,   8, 
            GPP2,   8, 
            GPP3,   8
        }

        OperationRegion (KBDD, SystemIO, 0x64, One)
        Field (KBDD, ByteAcc, NoLock, Preserve)
        {
            PD64,   8
        }

        Method (IRQC, 0, NotSerialized)
        {
            INTA (0x1F)
            INTB (0x1F)
            INTC (0x1F)
            INTD (0x1F)
            Store (PD64, Local1)
            Store (0x1F, PIRE)
            Store (0x1F, PIRF)
            Store (0x1F, PIRG)
            Store (0x1F, PIRH)
        }

        Method (INTA, 1, NotSerialized)
        {
            Store (Arg0, PIRA)
            Store (Arg0, HDAD)
            Store (Arg0, GEC)
            Store (Arg0, GPP0)
            Store (Arg0, GPP0)
        }

        Method (INTB, 1, NotSerialized)
        {
            Store (Arg0, PIRB)
            Store (Arg0, USB2)
            Store (Arg0, USB4)
            Store (Arg0, USB6)
            Store (Arg0, GPP1)
            Store (Arg0, IDE)
        }

        Method (INTC, 1, NotSerialized)
        {
            Store (Arg0, PIRC)
            Store (Arg0, USB1)
            Store (Arg0, USB3)
            Store (Arg0, USB5)
            Store (Arg0, USB7)
            Store (Arg0, GPP2)
        }

        Method (INTD, 1, NotSerialized)
        {
            Store (Arg0, PIRD)
            Store (Arg0, SATA)
            Store (Arg0, GPP3)
        }

        Name (BUFA, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {15}
        })
        Name (IPRA, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {5,10,11}
        })
        Name (IPRB, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {5,10,11}
        })
        Name (IPRC, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {5,10,11}
        })
        Name (IPRD, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {5,10,11}
        })
        Device (LNKA)
        {
            Name (_HID, EisaId ("PNP0C0F"))  // _HID: Hardware ID
            Name (_UID, One)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (PIRA)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                Return (PRSA)
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                INTA (0x1F)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                CreateWordField (BUFA, One, IRQX)
                ShiftLeft (One, PIRA, IRQX)
                Return (BUFA)
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Decrement (Local0)
                INTA (Local0)
            }
        }

        Device (LNKB)
        {
            Name (_HID, EisaId ("PNP0C0F"))  // _HID: Hardware ID
            Name (_UID, 0x02)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (PIRB)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                Return (PRSB)
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                INTB (0x1F)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                CreateWordField (BUFA, One, IRQX)
                ShiftLeft (One, PIRB, IRQX)
                Return (BUFA)
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Decrement (Local0)
                INTB (Local0)
            }
        }

        Device (LNKC)
        {
            Name (_HID, EisaId ("PNP0C0F"))  // _HID: Hardware ID
            Name (_UID, 0x03)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (PIRC)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                Return (PRSC)
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                INTC (0x1F)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                CreateWordField (BUFA, One, IRQX)
                ShiftLeft (One, PIRC, IRQX)
                Return (BUFA)
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Decrement (Local0)
                INTC (Local0)
            }
        }

        Device (LNKD)
        {
            Name (_HID, EisaId ("PNP0C0F"))  // _HID: Hardware ID
            Name (_UID, 0x04)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (PIRD)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                Return (PRSD)
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                INTD (0x1F)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                CreateWordField (BUFA, One, IRQX)
                ShiftLeft (One, PIRD, IRQX)
                Return (BUFA)
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Decrement (Local0)
                INTD (Local0)
            }
        }

        Device (LNKE)
        {
            Name (_HID, EisaId ("PNP0C0F"))  // _HID: Hardware ID
            Name (_UID, 0x05)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (PIRE)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                Return (PRSE)
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                Store (0x1F, PIRE)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                CreateWordField (BUFA, One, IRQX)
                ShiftLeft (One, PIRE, IRQX)
                Return (BUFA)
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (PIRE, Local0)
                Decrement (Local0)
                Store (Local0, PIRE)
            }
        }

        Device (LNKF)
        {
            Name (_HID, EisaId ("PNP0C0F"))  // _HID: Hardware ID
            Name (_UID, 0x02)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (PIRF)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                Return (PRSF)
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                Store (0x1F, PIRF)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                CreateWordField (BUFA, One, IRQX)
                ShiftLeft (One, PIRF, IRQX)
                Return (BUFA)
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Decrement (Local0)
                Store (Local0, PIRF)
            }
        }

        Device (LNKG)
        {
            Name (_HID, EisaId ("PNP0C0F"))  // _HID: Hardware ID
            Name (_UID, 0x03)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (PIRG)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                Return (PRSG)
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                Store (0x1F, PIRG)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                CreateWordField (BUFA, One, IRQX)
                ShiftLeft (One, PIRG, IRQX)
                Return (BUFA)
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Decrement (Local0)
                Store (Local0, PIRG)
            }
        }

        Device (LNKH)
        {
            Name (_HID, EisaId ("PNP0C0F"))  // _HID: Hardware ID
            Name (_UID, 0x04)  // _UID: Unique ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (PIRH)
                {
                    Return (0x0B)
                }
                Else
                {
                    Return (0x09)
                }
            }

            Method (_PRS, 0, NotSerialized)  // _PRS: Possible Resource Settings
            {
                Return (PRSH)
            }

            Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
            {
                Store (0x1F, PIRH)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                CreateWordField (BUFA, One, IRQX)
                ShiftLeft (One, PIRH, IRQX)
                Return (BUFA)
            }

            Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
            {
                CreateWordField (Arg0, One, IRA)
                FindSetRightBit (IRA, Local0)
                Decrement (Local0)
                Store (Local0, PIRH)
            }
        }
    }

    Scope (_SB.PCI0)
    {
        Method (_INI, 0, NotSerialized)  // _INI: Initialize
        {
            OSFL ()
            If (LLessEqual (RVID, 0x13)) {}
            If (IMCS)
            {
                IBWE ()
            }

            PINI ()
        }
    }

    Scope (_SB)
    {
        Scope (PCI0)
        {
            Scope (SBRG)
            {
                Method (RRIO, 4, NotSerialized)
                {
                    Store ("RRIO", Debug)
                }

                Method (RDMA, 3, NotSerialized)
                {
                    Store ("rDMA", Debug)
                }
            }
        }
    }

    Device (HPET)
    {
        Name (_HID, EisaId ("PNP0103"))  // _HID: Hardware ID
        Name (CRS, ResourceTemplate ()
        {
            Memory32Fixed (ReadOnly,
                0xFED00000,         // Address Base
                0x00000400,         // Address Length
                _Y16)
        })
        Method (_STA, 0, NotSerialized)  // _STA: Status
        {
            If (LEqual (And (HPAD, 0x03), 0x03))
            {
                If (LGreaterEqual (OSVR, 0x0C))
                {
                    Return (0x0F)
                }

                Store (And (HPAD, 0xFFFFFFE0), HPAD)
                Return (One)
            }

            Return (One)
        }

        Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
        {
            CreateDWordField (CRS, \HPET._Y16._BAS, HPT)  // _BAS: Base Address
            Store (0xFED00000, HPT)
            Return (CRS)
        }
    }

    Scope (_SB.PCI0)
    {
        Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
        {
            Name (SUPP, Zero)
            Name (CTRL, Zero)
            If (LEqual (Arg0, Buffer (0x10)
                    {
                        /* 0000 */   0x5B, 0x4D, 0xDB, 0x33, 0xF7, 0x1F, 0x1C, 0x40,
                        /* 0008 */   0x96, 0x57, 0x74, 0x41, 0xC0, 0x3D, 0xD7, 0x66
                    }))
            {
                CreateDWordField (Arg3, Zero, CDW1)
                CreateDWordField (Arg3, 0x04, CDW2)
                CreateDWordField (Arg3, 0x08, CDW3)
                Store (CDW2, SUPP)
                Store (CDW3, CTRL)
                If (LNotEqual (And (SUPP, 0x16), 0x16))
                {
                    And (CTRL, 0x1E)
                }

                If (LNot (PEHP))
                {
                    And (CTRL, 0x1E, CTRL)
                }

                If (LNot (SHPC))
                {
                    And (CTRL, 0x1D, CTRL)
                }

                If (LNot (PEPM))
                {
                    And (CTRL, 0x1B, CTRL)
                }

                If (LNot (PEER))
                {
                    And (CTRL, 0x15, CTRL)
                }

                If (LNot (PECS))
                {
                    And (CTRL, 0x0F, CTRL)
                }

                If (\OSCF)
                {
                    If (Not (And (CDW1, One)))
                    {
                        If (And (CTRL, One)) {}
                        If (And (CTRL, 0x04))
                        {
                            Store (One, EPNM)
                        }
                        Else
                        {
                            Store (Zero, EPNM)
                        }

                        If (And (CTRL, 0x10)) {}
                    }
                }

                If (LNotEqual (Arg1, One))
                {
                    Or (CDW1, 0x08, CDW1)
                }

                If (LNotEqual (CDW3, CTRL))
                {
                    Or (CDW1, 0x10, CDW1)
                }

                Store (CTRL, CDW3)
                Return (Arg3)
            }
            Else
            {
                Or (CDW1, 0x04, CDW1)
                Return (Arg3)
            }
        }
    }

    Scope (_SB.PCI0.VGA)
    {
        Name (PXEN, 0x80000001)
        Name (PXID, 0x00020000)
        Name (PXMX, 0x80000001)
        Name (LCDT, 0x80000000)
        Name (DSCT, 0x80000000)
        Name (AF7E, 0x80000001)
        Name (PXDY, 0x80000001)
        Name (PXFX, 0x80000000)
        Method (_STA, 0, NotSerialized)  // _STA: Status
        {
            Return (0x0F)
        }

        Scope (\_SB.PCI0.VGA)
        {
            Name (ATIB, Buffer (0x0100) {})
            Method (ATIF, 2, Serialized)
            {
                If (LEqual (Arg0, Zero))
                {
                    Return (AF00 ())
                }

                If (LEqual (Arg0, One))
                {
                    Return (AF01 ())
                }

                If (LEqual (Arg0, 0x02))
                {
                    Return (AF02 ())
                }

                If (LEqual (Arg0, 0x03))
                {
                    Return (AF03 (DerefOf (Index (Arg1, 0x02)), DerefOf (Index (Arg1, 
                        0x04))))
                }

                If (LEqual (Arg0, 0x0F))
                {
                    Return (AF15 ())
                }
                Else
                {
                    CreateWordField (ATIB, Zero, SSZE)
                    CreateWordField (ATIB, 0x02, VERN)
                    CreateDWordField (ATIB, 0x04, NMSK)
                    CreateDWordField (ATIB, 0x08, SFUN)
                    Store (Zero, SSZE)
                    Store (Zero, VERN)
                    Store (Zero, NMSK)
                    Store (Zero, SFUN)
                    Return (ATIB)
                }
            }

            Method (AF00, 0, NotSerialized)
            {
                Store (0xF0, P80H)
                And (AZPS, 0xC0000001, AZPS)
                CreateWordField (ATIB, Zero, SSZE)
                CreateWordField (ATIB, 0x02, VERN)
                CreateDWordField (ATIB, 0x04, NMSK)
                CreateDWordField (ATIB, 0x08, SFUN)
                Store (0x0C, SSZE)
                Store (One, VERN)
                If (LEqual (PXEN, 0x80000000))
                {
                    Store (0x11, NMSK)
                }
                Else
                {
                    Store (0x51, NMSK)
                }

                If (LEqual (AF7E, 0x80000001))
                {
                    Or (NMSK, 0x80, NMSK)
                }

                Store (NMSK, MSKN)
                Store (0x07, SFUN)
                Return (ATIB)
            }

            Name (NCOD, 0x81)
            Method (AF01, 0, NotSerialized)
            {
                Store (0xF1, P80H)
                CreateWordField (ATIB, Zero, SSZE)
                CreateDWordField (ATIB, 0x02, VMSK)
                CreateDWordField (ATIB, 0x06, FLGS)
                Store (0x0A, SSZE)
                Store (0x03, VMSK)
                Store (0x0A, SSZE)
                Store (One, FLGS)
                Return (ATIB)
            }

            Name (PSBR, Buffer (0x04)
            {
                 0x00, 0x00, 0x00, 0x00
            })
            Name (MSKN, Zero)
            Name (SEXM, Zero)
            Name (STHG, Zero)
            Name (STHI, Zero)
            Name (SFPG, Zero)
            Name (SFPI, Zero)
            Name (SSPS, Zero)
            Name (SSDM, 0x0A)
            Name (SCDY, Zero)
            Name (SACT, Buffer (0x07)
            {
                 0x01, 0x02, 0x08, 0x80, 0x03, 0x09, 0x81
            })
            Method (AF02, 0, NotSerialized)
            {
                Store (0xF2, P80H)
                CreateBitField (PSBR, Zero, PDSW)
                CreateBitField (PSBR, One, PEXM)
                CreateBitField (PSBR, 0x02, PTHR)
                CreateBitField (PSBR, 0x03, PFPS)
                CreateBitField (PSBR, 0x04, PSPS)
                CreateBitField (PSBR, 0x05, PDCC)
                CreateBitField (PSBR, 0x06, PXPS)
                CreateBitField (PSBR, 0x07, PBRT)
                CreateWordField (ATIB, Zero, SSZE)
                CreateDWordField (ATIB, 0x02, PSBI)
                CreateByteField (ATIB, 0x06, EXPM)
                CreateByteField (ATIB, 0x07, THRM)
                CreateByteField (ATIB, 0x08, THID)
                CreateByteField (ATIB, 0x09, FPWR)
                CreateByteField (ATIB, 0x0A, FPID)
                CreateByteField (ATIB, 0x0B, SPWR)
                CreateByteField (ATIB, 0x0C, BRTL)
                Store (0x0D, SSZE)
                Store (PSBR, PSBI)
                If (PDSW)
                {
                    Store (0x82, P80H)
                    Store (Zero, PDSW)
                }

                If (PEXM)
                {
                    Store (SEXM, EXPM)
                    Store (Zero, SEXM)
                    Store (Zero, PEXM)
                }

                If (PTHR)
                {
                    Store (STHG, THRM)
                    Store (STHI, THID)
                    Store (Zero, STHG)
                    Store (Zero, STHI)
                    Store (Zero, PTHR)
                }

                If (PFPS)
                {
                    Store (SFPG, FPWR)
                    Store (SFPI, FPWR)
                    Store (Zero, SFPG)
                    Store (Zero, SFPI)
                    Store (Zero, PFPS)
                }

                If (PSPS)
                {
                    Store (SSPS, SPWR)
                    Store (Zero, PSPS)
                }

                If (PXPS)
                {
                    Store (0xA2, P80H)
                    Store (Zero, PXPS)
                }

                If (PBRT)
                {
                    Store (0xF7, P80H)
                    Store (Zero, PBRT)
                }

                Return (ATIB)
            }

            Method (AF03, 2, NotSerialized)
            {
                Store (0xF3, P80H)
                CreateWordField (ATIB, Zero, SSZE)
                CreateWordField (ATIB, 0x02, SSDP)
                CreateWordField (ATIB, 0x04, SCDP)
                Store (Arg0, SSDP)
                Store (Arg1, SCDP)
                If (GADD)
                {
                    Store (Zero, GADD)
                    Store (SSDP, \WMI0.ACTD)
                    Store (SCDP, \WMI0.AVLD)
                    Return (ATIB)
                }

                Name (NXTD, 0x06)
                Name (CIDX, 0x06)
                Store (SSDP, Local1)
                And (Local1, 0x8B, Local1)
                Store (SCDP, Local2)
                If (CondRefOf (^^^LID._LID, Local4))
                {
                    And (Local2, 0xFFFFFFFFFFFFFFFE, Local2)
                    Or (Local2, One, Local2)
                }
                Else
                {
                    Or (Local2, One, Local2)
                }

                Store (Local2, P80H)
                Store (Zero, Local0)
                While (LLess (Local0, SizeOf (SACT)))
                {
                    Store (DerefOf (Index (SACT, Local0)), Local3)
                    If (LEqual (Local3, Local1))
                    {
                        Store (Local0, CIDX)
                        Store (SizeOf (SACT), Local0)
                    }
                    Else
                    {
                        Increment (Local0)
                    }
                }

                Store (CIDX, Local0)
                While (LLess (Local0, SizeOf (SACT)))
                {
                    Increment (Local0)
                    If (LEqual (Local0, SizeOf (SACT)))
                    {
                        Store (Zero, Local0)
                    }

                    Store (DerefOf (Index (SACT, Local0)), Local3)
                    If (LEqual (And (Local3, Local2), Local3))
                    {
                        Store (Local0, NXTD)
                        Store (SizeOf (SACT), Local0)
                    }
                }

                If (LEqual (NXTD, SizeOf (SACT)))
                {
                    Store (Zero, SSDP)
                }
                Else
                {
                    Store (NXTD, Local0)
                    Store (DerefOf (Index (SACT, Local0)), Local3)
                    And (SSDP, 0xFFFFFFFFFFFFFFF4, SSDP)
                    Or (SSDP, Local3, SSDP)
                }

                Store (0x04, SSZE)
                Store (SSDP, P80H)
                Return (ATIB)
            }

            Method (AFN0, 0, Serialized)
            {
                If (And (MSKN, One))
                {
                    CreateBitField (PSBR, Zero, PDSW)
                    Store (One, PDSW)
                    Notify (VGA, NCOD)
                }
            }

            Method (AFN3, 2, Serialized)
            {
                If (And (MSKN, 0x08))
                {
                    Store (Arg0, Local0)
                    Store (Local0, SFPI)
                    Store (Arg1, Local0)
                    Store (And (Local0, 0x03, Local0), SFPG)
                    CreateBitField (PSBR, 0x03, PFPS)
                    Store (One, PFPS)
                    Notify (VGA, NCOD)
                }
            }

            Method (AFN4, 1, Serialized)
            {
                If (And (MSKN, 0x10))
                {
                    Store (Arg0, Local0)
                    Store (SSPS, Local1)
                    Store (Local0, SSPS)
                    If (LEqual (Local0, Local1)) {}
                    Else
                    {
                        CreateBitField (PSBR, 0x04, PSPS)
                        Store (One, PSPS)
                        Notify (VGA, NCOD)
                    }
                }
            }

            Method (AFN5, 0, Serialized)
            {
                If (And (MSKN, 0x20))
                {
                    CreateBitField (PSBR, 0x05, PDCC)
                    Store (One, PDCC)
                    Notify (VGA, NCOD)
                }
            }

            Method (AFN6, 0, Serialized)
            {
                If (And (MSKN, 0x40))
                {
                    CreateBitField (PSBR, 0x06, PXPS)
                    Store (One, PXPS)
                    Notify (VGA, NCOD)
                }
            }

            Method (AFN7, 1, Serialized)
            {
                If (And (MSKN, 0x80))
                {
                    CreateBitField (PSBR, 0x07, PBRT)
                    Store (One, PBRT)
                    CreateByteField (ATIB, 0x0C, BRTL)
                    Store (Arg0, BRTL)
                    Notify (VGA, NCOD)
                }
            }

            Method (AF15, 0, NotSerialized)
            {
                Store (0xFF, P80H)
                CreateWordField (ATIB, Zero, DNUM)
                CreateWordField (ATIB, 0x02, DSZE)
                Store (0x08, DSZE)
                Acquire (PXPX, 0xFFFF)
                Store (0x8D, BCMD)
                Store (0x0F, DID)
                Store (ATIB, INFO)
                Store (ATIS, ^^SBRG.SMIC)
                Store (INFO, ATIB)
                Release (PXPX)
                Return (ATIB)
            }

            Name (AT00, Buffer (0xFF) {})
            Name (AT01, Buffer (0x03) {})
            Method (ATCS, 2, Serialized)
            {
                If (LEqual (Arg0, Zero))
                {
                    ATC0 ()
                }

                If (LEqual (Arg0, One))
                {
                    ATC1 ()
                }

                If (LEqual (Arg0, 0x02))
                {
                    ATC2 (Arg1)
                }

                If (LEqual (Arg0, 0x03))
                {
                    ATC3 ()
                }

                If (LEqual (Arg0, 0x04))
                {
                    ATC4 (Arg1)
                }

                Return (AT00)
            }

            Method (ATC0, 0, NotSerialized)
            {
                CreateWordField (AT00, Zero, SZZE)
                CreateWordField (AT00, 0x02, INTF)
                CreateDWordField (AT00, 0x04, SUPP)
                Store (0x08, SZZE)
                Store (One, INTF)
                Store (0x0F, SUPP)
            }

            Method (ATC1, 0, Serialized)
            {
                CreateWordField (AT00, Zero, SZZE)
                CreateDWordField (AT00, 0x02, VFMK)
                CreateDWordField (AT00, 0x06, FLAG)
                CreateField (AT00, 0x30, One, DOCK)
                Store (0x0A, SZZE)
                Store (One, VFMK)
                Store (Zero, FLAG)
                Store (One, DOCK)
            }

            Method (ATC2, 1, Serialized)
            {
                CreateField (Arg0, 0x10, 0x03, FUCC)
                CreateField (Arg0, 0x13, 0x06, DEVV)
                CreateByteField (Arg0, 0x03, BUSS)
                CreateDWordField (Arg0, 0x04, VFMK)
                CreateDWordField (Arg0, 0x06, FLAG)
                CreateField (Arg0, 0x30, One, ADVC)
                CreateField (Arg0, 0x31, One, WFCM)
                CreateByteField (Arg0, 0x08, RQST)
                CreateByteField (Arg0, 0x09, PFRQ)
                CreateWordField (AT00, Zero, SZZE)
                CreateByteField (AT00, 0x02, RETV)
                Store (0x03, SZZE)
                Store (One, RETV)
                Store (ALIB (0x02, Arg0), AT00)
            }

            Method (ATC3, 0, Serialized)
            {
                CreateWordField (AT00, Zero, SZZE)
                CreateByteField (AT00, 0x02, RETV)
                CreateWordField (AT01, Zero, SZZB)
                CreateByteField (AT01, 0x02, PSPP)
                Store (0x03, SZZE)
                Store (One, RETV)
                Store (0x03, SZZB)
                Store (One, PSPP)
                Store (ALIB (0x03, AT01), AT00)
            }

            Method (ATC4, 1, Serialized)
            {
                CreateField (Arg0, 0x10, 0x03, FUCC)
                CreateField (Arg0, 0x13, 0x06, DEVV)
                CreateByteField (Arg0, 0x03, BUSS)
                CreateByteField (Arg0, 0x04, NULN)
                CreateWordField (AT00, Zero, SZZE)
                CreateByteField (AT00, 0x02, NULM)
                Store (0x03, SZZE)
                Store (One, NULM)
                Store (ALIB (0x04, Arg0), AT00)
            }
        }

        Name (ATPB, Buffer (0x0100) {})
        Name (DSID, 0xFFFFFFFF)
        Name (HSID, 0xFFFFFFFF)
        Name (CNT0, Buffer (0x05)
        {
             0x05, 0x00, 0x00, 0x10, 0x01
        })
        Name (CNT1, Buffer (0x05)
        {
             0x05, 0x01, 0x00, 0x00, 0x01
        })
        Name (CNT2, Buffer (0x05)
        {
             0x07, 0x03, 0x00, 0x10, 0x02
        })
        Name (CNT3, Buffer (0x05)
        {
             0x07, 0x07, 0x00, 0x20, 0x02
        })
        Name (CNT4, Buffer (0x05)
        {
             0x00, 0x09, 0x00, 0x30, 0x02
        })
        Name (CNT5, Buffer (0x05)
        {
             0x01, 0x00, 0x01, 0x10, 0x01
        })
        Name (CNT6, Buffer (0x05)
        {
             0x01, 0x01, 0x01, 0x00, 0x01
        })
        Name (CNT7, Buffer (0x05)
        {
             0x03, 0x03, 0x01, 0x10, 0x02
        })
        Name (CNT8, Buffer (0x05)
        {
             0x03, 0x07, 0x01, 0x20, 0x02
        })
        Name (CNT9, Buffer (0x05)
        {
             0x00, 0x09, 0x01, 0x30, 0x02
        })
        OperationRegion (REVD, SystemMemory, 0x7E23111D, 0x00008204)
        Field (REVD, AnyAcc, NoLock, Preserve)
        {
            SROM,   32, 
            VROM,   266240
        }

        Name (TVGA, Buffer (0x8200)
        {
             0x00
        })
        Method (ATRM, 2, Serialized)
        {
            Add (Arg0, Arg1, Local0)
            If (LLessEqual (Local0, SROM))
            {
                Multiply (Arg1, 0x08, Local1)
                Multiply (Arg0, 0x08, Local2)
                Store (VROM, TVGA)
                CreateField (TVGA, Local2, Local1, TEMP)
                Name (RETB, Buffer (Arg1) {})
                Store (TEMP, RETB)
                Return (RETB)
            }
            Else
            {
                If (LLess (Arg0, SROM))
                {
                    Subtract (SROM, Arg0, Local3)
                    Multiply (Local3, 0x08, Local1)
                    Multiply (Arg0, 0x08, Local2)
                    Store (VROM, TVGA)
                    CreateField (TVGA, Local2, Local1, TEM)
                    Name (RETC, Buffer (Local3) {})
                    Store (TEM, RETC)
                    Return (RETC)
                }
                Else
                {
                    Name (RETD, Buffer (One) {})
                    Return (RETD)
                }
            }
        }

        Method (ATPX, 2, Serialized)
        {
            If (LEqual (Arg0, Zero))
            {
                Return (PX00 ())
            }

            If (LEqual (Arg0, One))
            {
                Return (PX01 ())
            }

            If (LEqual (Arg0, 0x02))
            {
                PX02 (DerefOf (Index (Arg1, 0x02)))
                Return (ATPB)
            }

            If (LEqual (Arg0, 0x03))
            {
                PX03 (DerefOf (Index (Arg1, 0x02)))
                Return (ATPB)
            }

            If (LEqual (Arg0, 0x04))
            {
                PX04 (DerefOf (Index (Arg1, 0x02)))
                Return (ATPB)
            }

            If (LEqual (Arg0, 0x08))
            {
                Return (PX08 ())
            }

            If (LEqual (Arg0, 0x09))
            {
                Return (PX09 ())
            }

            CreateWordField (ATPB, Zero, SSZE)
            CreateWordField (ATPB, 0x02, VERN)
            CreateDWordField (ATPB, 0x04, SFUN)
            Store (Zero, SSZE)
            Store (Zero, VERN)
            Store (Zero, SFUN)
            Return (ATPB)
        }

        Method (PX00, 0, NotSerialized)
        {
            Store (0xE0, P80H)
            CreateWordField (ATPB, Zero, SSZE)
            CreateWordField (ATPB, 0x02, VERN)
            CreateDWordField (ATPB, 0x04, SFUN)
            Store (0x08, SSZE)
            Store (One, VERN)
            If (LEqual (PXEN, 0x80000000))
            {
                Store (Zero, SFUN)
                Return (ATPB)
            }

            If (LEqual (PXMX, 0x80000000))
            {
                Store (0x018F, SFUN)
            }
            Else
            {
                Store (0x03, SFUN)
            }

            Store (^^PCED.VGA.SVID, Local0)
            Store (^^PCED.HDAU.SVID, Local1)
            If (LNotEqual (Local0, 0xFFFFFFFF))
            {
                Store (Local0, DSID)
            }

            If (LNotEqual (Local1, 0xFFFFFFFF))
            {
                Store (Local1, HSID)
            }

            Return (ATPB)
        }

        Method (PX01, 0, NotSerialized)
        {
            Store (0xE1, P80H)
            CreateWordField (ATPB, Zero, SSZE)
            CreateDWordField (ATPB, 0x02, VMSK)
            CreateDWordField (ATPB, 0x06, FLGS)
            Store (0x0A, SSZE)
            Store (0x07FF, VMSK)
            If (LEqual (PXMX, 0x80000000))
            {
                Store (0x4B, FLGS)
            }
            Else
            {
                Store (Zero, FLGS)
                If (LEqual (PXDY, 0x80000001))
                {
                    Or (FLGS, 0x0680, FLGS)
                }

                If (LEqual (PXDY, 0x80000002))
                {
                    Or (FLGS, 0x0280, FLGS)
                }
            }

            Return (ATPB)
        }

        Method (PX02, 1, NotSerialized)
        {
            CreateWordField (ATPB, Zero, SSZE)
            CreateByteField (ATPB, 0x02, PWST)
            Store (0x03, SSZE)
            Store (Buffer (0x05) {}, Local7)
            CreateWordField (Local7, Zero, SZZE)
            CreateField (Local7, 0x10, 0x03, FUCC)
            CreateField (Local7, 0x13, 0x05, DEVV)
            CreateByteField (Local7, 0x03, BUSS)
            CreateByteField (Local7, 0x04, HPST)
            Store (0x05, SZZE)
            Store (Zero, BUSS)
            Store (Zero, FUCC)
            Store (Buffer (0x04) {}, Local6)
            CreateByteField (Local6, 0x02, HPOX)
            And (Arg0, One, PWST)
            Name (HPOK, Zero)
            If (PWST)
            {
                Store (0x11E2, P80H)
                Store (Zero, ^^PCED.PDC8)
                Store (Zero, ^^PCED.PDS8)
                Store (Zero, ^^PCED.HPC8)
                DPON ()
                Store (Zero, HPOK)
                Sleep (0x64)
                Sleep (0x64)
                Store (0x02, DEVV)
                Store (One, HPST)
                Store (ALIB (0x06, Local7), Local6)
                Sleep (0x14)
                Store (Zero, Local2)
                While (LLess (Local2, 0x0F))
                {
                    Store (One, ^^PCED.PDC2)
                    Store (One, Local4)
                    Store (0xC8, Local5)
                    While (LAnd (Local4, Local5))
                    {
                        Store (^^PCED.XPRD (0xA5), Local0)
                        And (Local0, 0x7F, Local0)
                        If (LAnd (LGreaterEqual (Local0, 0x10), LNotEqual (Local0, 0x7F)))
                        {
                            Store (Zero, Local4)
                        }
                        Else
                        {
                            Sleep (0x05)
                            Decrement (Local5)
                        }
                    }

                    If (LNot (Local4))
                    {
                        Store (^^PCED.XPDL (), Local5)
                        If (Local5)
                        {
                            ^^PCED.XPRT ()
                            Sleep (0x05)
                            Increment (Local2)
                        }
                        Else
                        {
                            Store (Zero, Local0)
                            If (LEqual (^^PCED.XPR2 (), Ones))
                            {
                                Store (One, Local0)
                            }

                            If (Local0)
                            {
                                Store (One, HPOK)
                                Store (0x10, Local2)
                            }
                            Else
                            {
                                Store (Zero, HPOK)
                                Store (0x10, Local2)
                            }
                        }
                    }
                    Else
                    {
                        Store (0x10, Local2)
                    }
                }

                If (LNot (HPOK))
                {
                    Store (0x13E2, P80H)
                    Store (^^PCED.VGA.DVID, Local1)
                    Sleep (0x0A)
                    Store (One, Local4)
                    Store (0x05, Local5)
                    While (LAnd (Local4, Local5))
                    {
                        Store (^^PCED.XPRD (0xA5), Local0)
                        And (Local0, 0x7F, Local0)
                        If (LLessEqual (Local0, 0x04))
                        {
                            Store (Zero, Local4)
                        }
                        Else
                        {
                            Store (^^PCED.VGA.DVID, Local1)
                            Sleep (0x05)
                            Decrement (Local5)
                        }
                    }

                    Store (0x02, DEVV)
                    Store (Zero, HPST)
                    ALIB (0x06, Local7)
                }

                Store (0x14E2, P80H)
            }
            Else
            {
                Store (0x02E2, P80H)
                DPOF ()
                Store (One, ^^PCED.PDC2)
                Store (^^PCED.VGA.DVID, Local1)
                Sleep (0x0A)
                Store (One, Local4)
                Store (0x05, Local5)
                While (LAnd (Local4, Local5))
                {
                    Store (^^PCED.XPRD (0xA5), Local0)
                    And (Local0, 0x7F, Local0)
                    If (LLessEqual (Local0, 0x04))
                    {
                        Store (Zero, Local4)
                    }
                    Else
                    {
                        Store (^^PCED.VGA.DVID, Local1)
                        Sleep (0x05)
                        Decrement (Local5)
                    }
                }

                Store (0x02, DEVV)
                Store (Zero, HPST)
                ALIB (0x06, Local7)
                Store (0x02, HPOK)
                Store (0x04E2, P80H)
            }

            If (HPOK)
            {
                If (LAnd (LEqual (HPOK, One), LNotEqual (DSID, 0xFFFFFFFF)))
                {
                    Store (DSID, Local1)
                    Store (Local1, ^^PCED.VGA.SMID)
                    Sleep (0x0A)
                    Store (HSID, Local1)
                    If (LNotEqual (Local1, 0xFFFFFFFF))
                    {
                        Store (Local1, ^^PCED.HDAU.SMID)
                    }

                    Sleep (0x0A)
                }
            }
        }

        Method (PX03, 1, NotSerialized)
        {
            CreateWordField (ATPB, Zero, SSZE)
            CreateWordField (ATPB, 0x02, DPSW)
            Store (0x04, SSZE)
            And (Arg0, One, DPSW)
        }

        Method (PX04, 1, NotSerialized)
        {
            Store (0xE4, P80H)
            CreateWordField (ATPB, Zero, SSZE)
            CreateWordField (ATPB, 0x02, ICSW)
            Store (0x04, SSZE)
            And (Arg0, One, ICSW)
        }

        Method (PX08, 0, NotSerialized)
        {
            Store (0xE8, P80H)
            CreateWordField (ATPB, Zero, CNUM)
            CreateWordField (ATPB, 0x02, CSSZ)
            Store (0x0A, CNUM)
            Store (0x05, CSSZ)
            CreateField (ATPB, 0x20, 0x28, CTI0)
            Store (CNT0, CTI0)
            CreateField (ATPB, 0x48, 0x28, CTI1)
            Store (CNT1, CTI1)
            CreateField (ATPB, 0x70, 0x28, CTI2)
            CreateByteField (CNT2, Zero, FLG2)
            If (LEqual (LCDT, 0x80000001))
            {
                If (LEqual (DSCT, 0x80000001))
                {
                    Store (Zero, FLG2)
                }

                If (LEqual (DSCT, 0x80000002))
                {
                    Store (0x07, FLG2)
                }
            }

            Store (CNT2, CTI2)
            CreateField (ATPB, 0x98, 0x28, CTI3)
            CreateByteField (CNT3, Zero, FLG3)
            If (LEqual (LCDT, 0x80000000))
            {
                Store (0x07, FLG3)
            }

            If (LEqual (LCDT, 0x80000001))
            {
                Store (Zero, FLG3)
                If (LEqual (DSCT, 0x80000002))
                {
                    Store (Zero, FLG3)
                }
            }

            If (LEqual (LCDT, 0x80000002))
            {
                Store (Zero, FLG3)
                If (LEqual (DSCT, 0x80000002))
                {
                    Store (0x07, FLG3)
                }
            }

            Store (CNT3, CTI3)
            CreateField (ATPB, 0xC0, 0x28, CTI4)
            Store (CNT4, CTI4)
            CreateField (ATPB, 0xE8, 0x28, CTI5)
            Store (CNT5, CTI5)
            CreateField (ATPB, 0x0110, 0x28, CTI6)
            Store (CNT6, CTI6)
            CreateField (ATPB, 0x0138, 0x28, CTI7)
            CreateByteField (CNT7, Zero, FLG7)
            If (LEqual (LCDT, 0x80000001))
            {
                If (LEqual (DSCT, 0x80000001))
                {
                    Store (Zero, FLG7)
                }

                If (LEqual (DSCT, 0x80000002))
                {
                    Store (Zero, FLG7)
                }
            }

            Store (CNT7, CTI7)
            CreateField (ATPB, 0x0160, 0x28, CTI8)
            CreateByteField (CNT8, Zero, FLG8)
            If (LEqual (LCDT, 0x80000000))
            {
                Store (0x07, FLG8)
            }

            If (LEqual (LCDT, 0x80000001))
            {
                Store (Zero, FLG8)
            }

            If (LEqual (LCDT, 0x80000002))
            {
                Store (Zero, FLG8)
            }

            If (LEqual (DSCT, 0x80000002))
            {
                Store (0x07, FLG8)
            }

            Store (CNT8, CTI8)
            CreateField (ATPB, 0x0188, 0x28, CTI9)
            CreateByteField (CNT9, Zero, FLG9)
            If (LEqual (DSCT, 0x80000002))
            {
                Store (0x07, FLG9)
            }

            Store (CNT9, CTI9)
            Return (ATPB)
        }

        Method (PX09, 0, NotSerialized)
        {
            Store (0xE9, P80H)
            CreateWordField (ATPB, Zero, CNUM)
            CreateWordField (ATPB, 0x02, CSSZ)
            Store (Zero, CNUM)
            Store (Zero, CSSZ)
            CreateByteField (ATPB, 0x04, ATI0)
            CreateByteField (ATPB, 0x05, HPD0)
            CreateByteField (ATPB, 0x06, DDC0)
            Store (Zero, ATI0)
            Store (Zero, HPD0)
            Store (Zero, DDC0)
            CreateByteField (ATPB, 0x07, ATI1)
            CreateByteField (ATPB, 0x08, HPD1)
            CreateByteField (ATPB, 0x09, DDC1)
            Store (Zero, ATI1)
            Store (Zero, HPD1)
            Store (Zero, DDC1)
            Return (ATPB)
        }
    }

    Method (DPON, 0, NotSerialized)
    {
        DGSW (One)
    }

    Method (DPOF, 0, NotSerialized)
    {
        DGSW (Zero)
    }

    Scope (_PR)
    {
        OperationRegion (SSDT, SystemMemory, 0xFFFF0000, 0xFFFF)
        Name (DCOR, 0x02)
        Name (TBLD, 0x04)
        Name (NPSS, 0x05)
        Name (HNDL, 0x80000000)
        Name (APSS, Package (0x0A)
        {
            Package (0x06)
            {
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF
            }, 

            Package (0x06)
            {
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF
            }, 

            Package (0x06)
            {
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF
            }, 

            Package (0x06)
            {
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF
            }, 

            Package (0x06)
            {
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF
            }, 

            Package (0x06)
            {
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF
            }, 

            Package (0x06)
            {
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF
            }, 

            Package (0x06)
            {
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF
            }, 

            Package (0x06)
            {
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF
            }, 

            Package (0x06)
            {
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF, 
                0xFFFF
            }
        })
        Processor (P000, 0x01, 0x00000810, 0x06)
        {
            Name (TYPE, 0x80000000)
            Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
            {
                CreateDWordField (Arg0, 0x08, DAT0)
                Store (DAT0, TYPE)
                If (LAnd (LEqual (TBLD, Zero), LNotEqual (NPSS, Zero)))
                {
                    If (LOr (LEqual (And (TYPE, 0x1B), 0x1B), LEqual (DCOR, 
                        Zero)))
                    {
                        Store (One, TBLD)
                        Load (SSDT, HNDL)
                    }
                }
            }
        }

        Processor (P001, 0x02, 0x00000810, 0x06)
        {
            Name (TYPE, 0x80000000)
            Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
            {
                CreateDWordField (Arg0, 0x08, DAT0)
                Store (DAT0, TYPE)
                If (LAnd (LEqual (TBLD, Zero), LNotEqual (NPSS, Zero)))
                {
                    If (LOr (LEqual (And (TYPE, 0x1B), 0x1B), LEqual (DCOR, 
                        Zero)))
                    {
                        Store (One, TBLD)
                        Load (SSDT, HNDL)
                    }
                }
            }
        }

        Processor (P002, 0x03, 0x00000810, 0x06)
        {
            Name (TYPE, 0x80000000)
            Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
            {
                CreateDWordField (Arg0, 0x08, DAT0)
                Store (DAT0, TYPE)
                If (LAnd (LEqual (TBLD, Zero), LNotEqual (NPSS, Zero)))
                {
                    If (LOr (LEqual (And (TYPE, 0x1B), 0x1B), LEqual (DCOR, 
                        Zero)))
                    {
                        Store (One, TBLD)
                        Load (SSDT, HNDL)
                    }
                }
            }
        }

        Processor (P003, 0x04, 0x00000810, 0x06)
        {
            Name (TYPE, 0x80000000)
            Method (_PDC, 1, NotSerialized)  // _PDC: Processor Driver Capabilities
            {
                CreateDWordField (Arg0, 0x08, DAT0)
                Store (DAT0, TYPE)
                If (LAnd (LEqual (TBLD, Zero), LNotEqual (NPSS, Zero)))
                {
                    If (LOr (LEqual (And (TYPE, 0x1B), 0x1B), LEqual (DCOR, 
                        Zero)))
                    {
                        Store (One, TBLD)
                        Load (SSDT, HNDL)
                    }
                }
            }
        }
    }

    Method (CHKH, 0, NotSerialized)
    {
        Store (Not (GE06), E06C)
        Store (Not (GE16), E1DC)
        Store (Not (GE16), GABO)
    }

    Name (WOTB, Zero)
    Name (WSSB, Zero)
    Name (WAXB, Zero)
    Method (_PTS, 1, NotSerialized)  // _PTS: Prepare To Sleep
    {
        Store (Arg0, DBG8)
        If (LAnd (LEqual (Arg0, 0x04), LEqual (OSFL (), 0x02)))
        {
            Sleep (0x0BB8)
        }

        PTS (Arg0)
        Store (Zero, Index (WAKP, Zero))
        Store (Zero, Index (WAKP, One))
        Store (ASSB, WSSB)
        Store (AOTB, WOTB)
        Store (AAXB, WAXB)
        Store (Arg0, ASSB)
        Store (OSFL (), AOTB)
        Store (Zero, AAXB)
    }

    Method (_WAK, 1, NotSerialized)  // _WAK: Wake
    {
        ShiftLeft (Arg0, 0x04, DBG8)
        WAK (Arg0)
        If (ASSB)
        {
            Store (WSSB, ASSB)
            Store (WOTB, AOTB)
            Store (WAXB, AAXB)
        }

        If (LEqual (Arg0, 0x03))
        {
            CHKH ()
        }

        If (DerefOf (Index (WAKP, Zero)))
        {
            Store (Zero, Index (WAKP, One))
        }
        Else
        {
            Store (Arg0, Index (WAKP, One))
        }

        Return (WAKP)
    }

    Device (OMSC)
    {
        Name (_HID, EisaId ("PNP0C02"))  // _HID: Hardware ID
        Name (_UID, 0x0E11)  // _UID: Unique ID
    }

    Device (_SB.RMEM)
    {
        Name (_HID, EisaId ("PNP0C01"))  // _HID: Hardware ID
        Name (_UID, One)  // _UID: Unique ID
    }

    Scope (_SB.PCI0.VGA)
    {
        OperationRegion (PCFG, PCI_Config, Zero, 0x50)
        Field (PCFG, DWordAcc, NoLock, Preserve)
        {
            DVID,   32, 
            Offset (0x2C), 
            SVID,   32, 
            Offset (0x4C), 
            SMID,   32
        }

        OperationRegion (PCIG, PCI_Config, Zero, 0x50)
        Field (PCIG, ByteAcc, NoLock, Preserve)
        {
            Offset (0x18), 
            GBA2,   32
        }

        OperationRegion (GFMM, SystemMemory, GBA2, 0x6000)
        Field (GFMM, DWordAcc, NoLock, Preserve)
        {
            Offset (0x5F68), 
            AZPS,   32
        }

        Scope (\)
        {
            Mutex (PXPX, 0x00)
        }

        Name (DOSP, Zero)
        Name (BLVL, Buffer (0x10)
        {
            /* 0000 */   0x00, 0x20, 0x30, 0x40, 0x50, 0x58, 0x60, 0x70,
            /* 0008 */   0x80, 0x90, 0xA0, 0xB0, 0xC0, 0xD0, 0xE0, 0xFF
        })
    }

    Scope (_SB)
    {
        Name (XCPD, Zero)
        Name (XNPT, One)
        Name (XCAP, 0x02)
        Name (XDCP, 0x04)
        Name (XDCT, 0x08)
        Name (XDST, 0x0A)
        Name (XLCP, 0x0C)
        Name (XLCT, 0x10)
        Name (XLST, 0x12)
        Name (XSCP, 0x14)
        Name (XSCT, 0x18)
        Name (XSST, 0x1A)
        Name (XRCT, 0x1C)
        Mutex (MUTE, 0x00)
        Method (RBPE, 1, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            Add (Arg0, PEBS, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, One)
            Field (PCFG, ByteAcc, NoLock, Preserve)
            {
                XCFG,   8
            }

            Release (MUTE)
            Return (XCFG)
        }

        Method (RWPE, 1, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFE, Arg0)
            Add (Arg0, PEBS, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x02)
            Field (PCFG, WordAcc, NoLock, Preserve)
            {
                XCFG,   16
            }

            Release (MUTE)
            Return (XCFG)
        }

        Method (RDPE, 1, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFC, Arg0)
            Add (Arg0, PEBS, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x04)
            Field (PCFG, DWordAcc, NoLock, Preserve)
            {
                XCFG,   32
            }

            Release (MUTE)
            Return (XCFG)
        }

        Method (WBPE, 2, NotSerialized)
        {
            Acquire (MUTE, 0x0FFF)
            Add (Arg0, PEBS, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, One)
            Field (PCFG, ByteAcc, NoLock, Preserve)
            {
                XCFG,   8
            }

            Store (Arg1, XCFG)
            Release (MUTE)
        }

        Method (WWPE, 2, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFE, Arg0)
            Add (Arg0, PEBS, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x02)
            Field (PCFG, WordAcc, NoLock, Preserve)
            {
                XCFG,   16
            }

            Store (Arg1, XCFG)
            Release (MUTE)
        }

        Method (WDPE, 2, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFC, Arg0)
            Add (Arg0, PEBS, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x04)
            Field (PCFG, DWordAcc, NoLock, Preserve)
            {
                XCFG,   32
            }

            Store (Arg1, XCFG)
            Release (MUTE)
        }

        Method (RWDP, 3, NotSerialized)
        {
            Acquire (MUTE, 0x03E8)
            And (Arg0, 0xFFFFFFFC, Arg0)
            Add (Arg0, PEBS, Local0)
            OperationRegion (PCFG, SystemMemory, Local0, 0x04)
            Field (PCFG, DWordAcc, NoLock, Preserve)
            {
                XCFG,   32
            }

            And (XCFG, Arg2, Local1)
            Or (Local1, Arg1, XCFG)
            Release (MUTE)
        }

        Method (RPME, 1, NotSerialized)
        {
            Add (Arg0, 0x84, Local0)
            Store (RDPE (Local0), Local1)
            If (LEqual (Local1, 0xFFFFFFFF))
            {
                Return (Zero)
            }
            Else
            {
                If (LAnd (Local1, 0x00010000))
                {
                    WDPE (Local0, And (Local1, 0x00010000))
                    Return (One)
                }

                Return (Zero)
            }
        }
    }

    Scope (\)
    {
        Device (WMI0)
        {
            Name (_HID, "PNP0C14")  // _HID: Hardware ID
            Name (_UID, Zero)  // _UID: Unique ID
        }
    }

    Scope (\)
    {
        Method (DIAG, 1, NotSerialized)
        {
            P8XH (Zero, Arg0)
            SBYT (Zero, Arg0)
        }

        OperationRegion (GPSC, SystemIO, 0xB2, 0x02)
        Field (GPSC, ByteAcc, NoLock, Preserve)
        {
            SMCM,   8, 
            SMST,   8
        }

        Method (ISMI, 1, Serialized)
        {
            Store (Arg0, SMCM)
        }

        Method (ASMI, 1, Serialized)
        {
            Store (Arg0, \WMI0.ALPR)
            Store (0xA3, SMCM)
            Return (\WMI0.ALPR)
        }

        Scope (WMI0)
        {
            OperationRegion (\ECMS, SystemIO, 0x72, 0x02)
            Field (ECMS, ByteAcc, Lock, Preserve)
            {
                EIND,   8, 
                EDAT,   8
            }

            IndexField (EIND, EDAT, ByteAcc, NoLock, Preserve)
            {
                Offset (0xA0), 
                IKFG,   8, 
                IKF2,   8, 
                FRPN,   16, 
                RAMB,   32, 
                AVOL,   8, 
                LBTN,   8, 
                LBT2,   8, 
                ERRF,   8, 
                OCLK,   8, 
                WIDE,   1, 
                OVCK,   2, 
                SLPN,   3, 
                ACRD,   1, 
                VGAS,   1, 
                CPUR,   6, 
                CPUF,   2, 
                CLKS,   8, 
                CLKL,   8, 
                ALSL,   8, 
                ALAE,   1, 
                ALDE,   1, 
                ALSP,   1, 
                SYNA,   1, 
                ALPS,   1, 
                SIDE,   1, 
                PWBS,   1, 
                WFFG,   1, 
                WLDP,   1, 
                WRST,   1, 
                BTDP,   1, 
                BRST,   1, 
                WWDP,   1, 
                WWST,   1, 
                WRPS,   1, 
                BRPS,   1, 
                WMDP,   1, 
                WMST,   1, 
                Offset (0xB5), 
                UHDB,   8, 
                OSPM,   8, 
                SP80,   1, 
                B1OF,   1, 
                B1CS,   5, 
                Offset (0xB8), 
                FBDP,   8, 
                SWD2,   1, 
                F9KP,   1, 
                LSDF,   1, 
                MANF,   1, 
                RRSF,   1, 
                FOTP,   1, 
                Offset (0xBA), 
                USBD,   16, 
                FDAY,   8, 
                FMON,   8, 
                FYER,   8, 
                FPRC,   8, 
                EDID,   8, 
                NCPP,   8, 
                HEM1,   32, 
                HEM2,   32, 
                DS3F,   1, 
                Offset (0xCB), 
                WFOK,   8, 
                UWDP,   1, 
                GPDP,   1, 
                TGDP,   1, 
                UWST,   1, 
                GPST,   1, 
                TGST,   1, 
                Offset (0xCD)
            }

            OperationRegion (RAMW, SystemMemory, RAMB, 0x1000)
            Field (RAMW, AnyAcc, NoLock, Preserve)
            {
                NRSN,   8, 
                TRTY,   8, 
                FSFN,   8, 
                FSTA,   16, 
                FADR,   32, 
                FSIZ,   16, 
                GNBF,   32, 
                BIPA,   32, 
                RTCW,   16, 
                DBR1,   32, 
                DBR2,   32, 
                DBR3,   32, 
                DBR4,   32, 
                ACTD,   8, 
                AVLD,   8, 
                SETD,   8, 
                PADL,   16, 
                CADL,   16, 
                CSTE,   16, 
                NSTE,   16, 
                SSTE,   16, 
                SFUN,   8, 
                VGAF,   16, 
                LCDV,   32, 
                LCDR,   8, 
                VBIF,   16, 
                GCDF,   16, 
                AB00,   8, 
                AB01,   8, 
                AB02,   8, 
                AB03,   8, 
                AB04,   8, 
                AB05,   8, 
                AB06,   8, 
                AB07,   8, 
                AB08,   8, 
                AB09,   8, 
                AB0A,   8, 
                AB0B,   8, 
                AB0C,   8, 
                AB0D,   8, 
                AB0E,   8, 
                AB0F,   8, 
                AB10,   8, 
                AB11,   8, 
                AB12,   8, 
                AB13,   8, 
                AB14,   8, 
                AB15,   8, 
                AB16,   8, 
                AB17,   8, 
                AB18,   8, 
                AB19,   8, 
                AB1A,   8, 
                AB1B,   8, 
                AB1C,   8, 
                AB1D,   8, 
                AB1E,   8, 
                AB1F,   8, 
                DB00,   8, 
                DB01,   8, 
                DB02,   8, 
                DB03,   8, 
                DB04,   8, 
                DB05,   8, 
                DB06,   8, 
                DB07,   8, 
                DB08,   8, 
                DB09,   8, 
                DB0A,   8, 
                DB0B,   8, 
                DB0C,   8, 
                DB0D,   8, 
                DB0E,   8, 
                DB0F,   8, 
                DB10,   8, 
                DB11,   8, 
                DB12,   8, 
                DB13,   8, 
                DB14,   8, 
                DB15,   8, 
                DB16,   8, 
                DB17,   8, 
                DB18,   8, 
                DB19,   8, 
                DB1A,   8, 
                DB1B,   8, 
                DB1C,   8, 
                DB1D,   8, 
                DB1E,   8, 
                DB1F,   8, 
                ACPF,   8, 
                DCPF,   8, 
                DCP2,   8, 
                DCTP,   8, 
                TPSV,   8, 
                TAC0,   8, 
                TCRT,   8, 
                PPSV,   8, 
                LUXS,   8, 
                LUXL,   8, 
                LUXH,   8, 
                LUXF,   8, 
                PTIM,   8, 
                PTMP,   8, 
                QFAN,   8, 
                CPUN,   8, 
                CIST,   8, 
                CPUP,   16, 
                SLMT,   16, 
                PSTN,   16, 
                TJMX,   16, 
                SLPT,   8, 
                ALPR,   32, 
                IDES,   8, 
                HDDF,   8, 
                MNAM,   64, 
                OSVR,   32, 
                SGRQ,   32, 
                SGFN,   8, 
                SGMD,   8, 
                B0DP,   8, 
                B1DP,   8, 
                WMIB,   32, 
                WMIS,   8, 
                LDST,   8, 
                TBOT,   16, 
                TRTC,   32, 
                EXPC,   64, 
                MEMS,   8, 
                BAML,   8, 
                AMLA,   32, 
                AICD,   32, 
                AIST,   8
            }
        }

        OperationRegion (DBGM, SystemMemory, 0x000D0000, 0x04)
        Field (DBGM, DWordAcc, NoLock, Preserve)
        {
            DBGG,   32
        }

        Name (OSFG, Zero)
        Name (OS9X, One)
        Name (OS98, 0x02)
        Name (OSME, 0x04)
        Name (OS2K, 0x08)
        Name (OSLX, 0x09)
        Name (OSXP, 0x10)
        Name (OSVT, 0x20)
        Name (OSW7, 0x40)
        Name (OSW8, 0x80)
        Name (OSBL, 0x81)
        Method (MSOS, 0, NotSerialized)
        {
            If (CondRefOf (_OSI, Local0))
            {
                If (_OSI ("Windows 2001"))
                {
                    Store (OSXP, OSFG)
                }

                If (_OSI ("Windows 2001 SP1"))
                {
                    Store (OSXP, OSFG)
                }

                If (_OSI ("Windows 2001 SP2"))
                {
                    Store (OSXP, OSFG)
                }

                If (_OSI ("Windows 2006"))
                {
                    Store (OSVT, OSFG)
                }

                If (_OSI ("Windows 2009"))
                {
                    Store (OSW7, OSFG)
                }

                If (_OSI ("Windows 2012"))
                {
                    Store (OSW8, OSFG)
                }

                If (_OSI ("Windows 2013"))
                {
                    Store (OSBL, OSFG)
                }

                Store (OSFG, \WMI0.OSVR)
                Return (OSFG)
            }
            Else
            {
                If (MCTH (_OS, "Microsoft Windows"))
                {
                    Store (OS98, OSFG)
                }
                Else
                {
                    If (MCTH (_OS, "Microsoft WindowsME: Millennium Edition"))
                    {
                        Store (OSME, OSFG)
                    }
                    Else
                    {
                        If (MCTH (_OS, "Microsoft Windows NT"))
                        {
                            Store (OS2K, OSFG)
                        }
                        Else
                        {
                            Store (OSXP, OSFG)
                        }
                    }
                }
            }

            Return (OSFG)
        }

        Method (DBGR, 4, NotSerialized)
        {
            Store (Arg0, \WMI0.DBR1)
            Store (Arg1, \WMI0.DBR2)
            Store (Arg2, \WMI0.DBR3)
            Store (Arg3, \WMI0.DBR4)
            ASMI (0x80)
        }

        Name (ONAM, "ASUS")
        Method (ADVG, 0, NotSerialized)
        {
            If (\_SB.PCI0.VGA.PRST ())
            {
                Return (\_SB.PCI0.VGA.ADVD ())
            }

            Return (0x03)
        }

        Method (SWHG, 1, Serialized)
        {
            If (\_SB.PCI0.VGA.PRST ())
            {
                \_SB.PCI0.VGA.SWHD (Arg0)
                Return (One)
            }

            Return (Zero)
        }

        Method (NATK, 0, NotSerialized)
        {
            If (\_SB.PCI0.VGA.PRST ())
            {
                Return (\_SB.PCI0.VGA.NATK ())
            }

            Return (One)
        }
    }

    Scope (_SB.PCI0)
    {
        Method (PINI, 0, NotSerialized)
        {
            Store (MSOS (), \WMI0.OSPM)
            If (LEqual (\WMI0.OSPM, OSW8))
            {
                ^SBRG.HEC.WRAM (0x0C0C, 0x80)
            }
        }
    }

    Scope (_SB)
    {
        Name (ATKP, Zero)
        Name (AITM, Zero)
        Name (PLMD, Zero)
        Name (MUTX, One)
        Name (LEDS, Zero)
        Name (LIDP, Zero)
        Device (ATKD)
        {
            Name (_HID, "pnp0c14")  // _HID: Hardware ID
            Name (_UID, "ATK")  // _UID: Unique ID
            Name (ATKQ, Package (0x10)
            {
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF
            })
            Name (AQHI, Zero)
            Name (AQTI, 0x0F)
            Name (AQNO, Zero)
            Name (WAPF, Zero)
            Name (PCDV, Zero)
            Method (IANQ, 1, Serialized)
            {
                If (LGreaterEqual (AQNO, 0x10))
                {
                    Store (0x64, Local0)
                    While (LAnd (Local0, LGreaterEqual (AQNO, 0x10)))
                    {
                        Decrement (Local0)
                        Sleep (0x0A)
                    }

                    If (LAnd (Local0, LGreaterEqual (AQNO, 0x10)))
                    {
                        Return (Zero)
                    }
                }

                Increment (AQTI)
                And (AQTI, 0x0F, AQTI)
                Store (Arg0, Index (ATKQ, AQTI))
                Increment (AQNO)
                Return (One)
            }

            Method (GANQ, 0, Serialized)
            {
                If (AQNO)
                {
                    Decrement (AQNO)
                    Store (DerefOf (Index (ATKQ, AQHI)), Local0)
                    Increment (AQHI)
                    And (AQHI, 0x0F, AQHI)
                    Return (Local0)
                }

                Return (Ones)
            }

            Method (IANE, 1, Serialized)
            {
                IANQ (Arg0)
                Notify (ATKD, 0xFF)
            }

            Name (_WDG, Buffer (0x28)
            {
                /* 0000 */   0xD0, 0x5E, 0x84, 0x97, 0x6D, 0x4E, 0xDE, 0x11,
                /* 0008 */   0x8A, 0x39, 0x08, 0x00, 0x20, 0x0C, 0x9A, 0x66,
                /* 0010 */   0x4E, 0x42, 0x01, 0x02, 0x35, 0xBB, 0x3C, 0x0B,
                /* 0018 */   0xC2, 0xE3, 0xED, 0x45, 0x91, 0xC2, 0x4C, 0x5A,
                /* 0020 */   0x6D, 0x19, 0x5D, 0x1C, 0xFF, 0x00, 0x01, 0x08
            })
            Method (HKEY, 0, NotSerialized)
            {
                Store (^^PCI0.SBRG.HEC.CDTD, Local0)
            }

            Method (KBFT, 1, NotSerialized)
            {
                Store (Arg0, ^^PCI0.SBRG.HEC.HKEN)
                If (LEqual (OSFG, OSW8))
                {
                    ^^PCI0.SBRG.HEC.WRAM (0x0C25, 0x80)
                }
                Else
                {
                    If (LEqual (OSFG, OSBL))
                    {
                        ^^PCI0.SBRG.HEC.WRAM (0x0C25, 0x80)
                    }
                }

                Return (Zero)
            }

            Method (NTFY, 1, Serialized)
            {
                IANE (Arg0)
            }

            Method (AICH, 0, NotSerialized)
            {
                Or (\WMI0.AIST, 0x04, Local0)
                Return (Local0)
            }

            Method (AICG, 1, Serialized)
            {
                Store (Arg0, \WMI0.AICD)
                ISMI (0xE7)
                Return (Zero)
            }

            Method (WMNB, 3, NotSerialized)
            {
                CreateDWordField (Arg2, Zero, IIA0)
                And (Arg1, 0xFFFFFFFF, Local0)
                Name (_T_0, Zero)  // _T_x: Emitted by ASL Compiler
                Store (Local0, _T_0)
                If (LEqual (_T_0, 0x54494E49))
                {
                    INIT (IIA0)
                    Return (One)
                }
                Else
                {
                    If (LEqual (_T_0, 0x53545342))
                    {
                        Return (BSTS ())
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x4E554653))
                        {
                            Return (SFUN ())
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x474F4457))
                            {
                                Return (WDOG (IIA0))
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x494E424B))
                                {
                                    Return (KBNI ())
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x43455053))
                                    {
                                        If (LEqual (Arg0, One))
                                        {
                                            Return (One)
                                        }
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x5256534F))
                                        {
                                            OSVR (IIA0)
                                            Return (Zero)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_0, 0x48534C46))
                                            {
                                                FLSH (IIA0)
                                                Return (One)
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_0, 0x494E4946))
                                                {
                                                    Return (FINI (IIA0))
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_0, 0x53524546))
                                                    {
                                                        Return (FERS (IIA0))
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (_T_0, 0x49525746))
                                                        {
                                                            Return (FWRI (IIA0))
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual (_T_0, 0x50525746))
                                                            {
                                                                Return (FWRP ())
                                                            }
                                                            Else
                                                            {
                                                                If (LEqual (_T_0, 0x52534345))
                                                                {
                                                                    Return (ECSR (IIA0))
                                                                }
                                                                Else
                                                                {
                                                                    If (LEqual (_T_0, 0x43534C46))
                                                                    {
                                                                        Return (FLSC (IIA0))
                                                                    }
                                                                    Else
                                                                    {
                                                                        If (LEqual (_T_0, 0x57504346))
                                                                        {
                                                                            Return (FCPW (IIA0))
                                                                        }
                                                                        Else
                                                                        {
                                                                            If (LEqual (_T_0, 0x50504346))
                                                                            {
                                                                                Return (FCPP ())
                                                                            }
                                                                            Else
                                                                            {
                                                                                If (LEqual (_T_0, 0x4C425053))
                                                                                {
                                                                                    Return (SPBL (IIA0))
                                                                                }
                                                                                Else
                                                                                {
                                                                                    If (LEqual (_T_0, 0x50534453))
                                                                                    {
                                                                                        SDSP (IIA0)
                                                                                        Return (One)
                                                                                    }
                                                                                    Else
                                                                                    {
                                                                                        If (LEqual (_T_0, 0x50534447))
                                                                                        {
                                                                                            Return (GDSP (IIA0))
                                                                                        }
                                                                                        Else
                                                                                        {
                                                                                            If (LEqual (_T_0, 0x44495047))
                                                                                            {
                                                                                                Return (GPID ())
                                                                                            }
                                                                                            Else
                                                                                            {
                                                                                                If (LEqual (_T_0, 0x44434C47))
                                                                                                {
                                                                                                    Return (GLCD ())
                                                                                                }
                                                                                                Else
                                                                                                {
                                                                                                    If (LEqual (_T_0, 0x444F4D51))
                                                                                                    {
                                                                                                        Return (QMOD (IIA0))
                                                                                                    }
                                                                                                    Else
                                                                                                    {
                                                                                                        If (LEqual (_T_0, 0x44424653))
                                                                                                        {
                                                                                                            Return (Zero)
                                                                                                        }
                                                                                                        Else
                                                                                                        {
                                                                                                            If (LEqual (_T_0, 0x49564E41))
                                                                                                            {
                                                                                                                Return (ANVI (IIA0))
                                                                                                            }
                                                                                                            Else
                                                                                                            {
                                                                                                                If (LEqual (_T_0, 0x46494243))
                                                                                                                {
                                                                                                                    Return (CBIF (IIA0))
                                                                                                                }
                                                                                                                Else
                                                                                                                {
                                                                                                                    If (LEqual (_T_0, 0x5453424B))
                                                                                                                    {
                                                                                                                        Return (Zero)
                                                                                                                    }
                                                                                                                    Else
                                                                                                                    {
                                                                                                                        If (LEqual (_T_0, 0x4E554647))
                                                                                                                        {
                                                                                                                            Return (AGFN (IIA0))
                                                                                                                        }
                                                                                                                        Else
                                                                                                                        {
                                                                                                                            If (LEqual (_T_0, 0x4E464741))
                                                                                                                            {
                                                                                                                                Return (AGFN (IIA0))
                                                                                                                            }
                                                                                                                            Else
                                                                                                                            {
                                                                                                                                If (LEqual (_T_0, 0x53545344))
                                                                                                                                {
                                                                                                                                    If (LEqual (IIA0, 0x00010002))
                                                                                                                                    {
                                                                                                                                        Return (Zero)
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00020011))
                                                                                                                                    {
                                                                                                                                        Return (Or (GALE (One), 0x00050000))
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00020012))
                                                                                                                                    {
                                                                                                                                        Return (Or (GALE (0x02), 0x00050000))
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00020013))
                                                                                                                                    {
                                                                                                                                        Return (Or (GALE (0x04), 0x00050000))
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00040015))
                                                                                                                                    {
                                                                                                                                        Return (Or (GALE (0x08), 0x00050000))
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00020014))
                                                                                                                                    {
                                                                                                                                        Return (Or (GALE (0x10), 0x00050000))
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00020015))
                                                                                                                                    {
                                                                                                                                        Return (Or (GALE (0x20), 0x00050000))
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00020016))
                                                                                                                                    {
                                                                                                                                        Return (Or (GALE (0x40), 0x00050000))
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00110011))
                                                                                                                                    {
                                                                                                                                        Return (And (TMPR (), 0xFFFF))
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00110012))
                                                                                                                                    {
                                                                                                                                        Store (TMPR (), Local0)
                                                                                                                                        Store (Local0, Local1)
                                                                                                                                        ShiftRight (And (Local0, 0xF0000000), 0x1C, Local0)
                                                                                                                                        ShiftRight (And (Local1, 0x0F000000), 0x18, Local1)
                                                                                                                                        ShiftLeft (Local1, 0x08, Local1)
                                                                                                                                        Return (Add (Local0, Local1))
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00050012))
                                                                                                                                    {
                                                                                                                                        Store (0x0A, Local0)
                                                                                                                                        ShiftLeft (Local0, 0x08, Local0)
                                                                                                                                        Store (Add (GPLV (), Local0), Local1)
                                                                                                                                        Return (Local1)
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00010011))
                                                                                                                                    {
                                                                                                                                        If (\WMI0.WLDP)
                                                                                                                                        {
                                                                                                                                            Return (Add (\WMI0.WRST, 0x00030000))
                                                                                                                                        }
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00010013))
                                                                                                                                    {
                                                                                                                                        If (\WMI0.BTDP)
                                                                                                                                        {
                                                                                                                                            Return (Add (\WMI0.BRST, 0x00050000))
                                                                                                                                        }
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00010021))
                                                                                                                                    {
                                                                                                                                        If (\WMI0.UWDP)
                                                                                                                                        {
                                                                                                                                            Return (Add (\WMI0.UWST, 0x00050000))
                                                                                                                                        }
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00010017))
                                                                                                                                    {
                                                                                                                                        If (\WMI0.WMDP)
                                                                                                                                        {
                                                                                                                                            Return (Add (\WMI0.WMST, 0x00050000))
                                                                                                                                        }
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00010015))
                                                                                                                                    {
                                                                                                                                        If (\WMI0.GPDP)
                                                                                                                                        {
                                                                                                                                            Return (Add (\WMI0.GPST, 0x00050000))
                                                                                                                                        }
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00010019))
                                                                                                                                    {
                                                                                                                                        If (\WMI0.TGDP)
                                                                                                                                        {
                                                                                                                                            Return (Add (\WMI0.TGST, 0x00050000))
                                                                                                                                        }
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00120012))
                                                                                                                                    {
                                                                                                                                        Return (PSTC (Zero))
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00120031))
                                                                                                                                    {
                                                                                                                                        Return (GDS3 (Arg0))
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00120032)) {}
                                                                                                                                    If (LEqual (IIA0, 0x00130001)) {}
                                                                                                                                    If (LEqual (IIA0, 0x00050021))
                                                                                                                                    {
                                                                                                                                        If (GLKB (One))
                                                                                                                                        {
                                                                                                                                            Store (GLKB (0x03), Local0)
                                                                                                                                            ShiftLeft (Local0, 0x08, Local0)
                                                                                                                                            Add (GLKB (0x02), Local0, Local0)
                                                                                                                                            Or (Local0, 0x00050000, Local0)
                                                                                                                                            Return (Local0)
                                                                                                                                        }

                                                                                                                                        Return (0x8000)
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00060023))
                                                                                                                                    {
                                                                                                                                        Return (AICH ())
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00060024))
                                                                                                                                    {
                                                                                                                                        Name (BBUF, Buffer (0x14) {})
                                                                                                                                        CreateDWordField (BBUF, Zero, DAT1)
                                                                                                                                        CreateDWordField (BBUF, 0x04, DAT2)
                                                                                                                                        CreateDWordField (BBUF, 0x08, DAT3)
                                                                                                                                        CreateDWordField (BBUF, 0x0C, DAT4)
                                                                                                                                        CreateDWordField (BBUF, 0x10, DAT5)
                                                                                                                                        Store (0x78141022, DAT1)
                                                                                                                                        Store (0x03, DAT2)
                                                                                                                                        Store (0x78141022, DAT3)
                                                                                                                                        Store (0x04, DAT4)
                                                                                                                                        Store (0xFFFFFFFF, DAT5)
                                                                                                                                        Return (BBUF)
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00060025))
                                                                                                                                    {
                                                                                                                                        Name (INFO, Buffer (0x08) {})
                                                                                                                                        CreateDWordField (INFO, Zero, INF1)
                                                                                                                                        CreateDWordField (INFO, 0x04, INF2)
                                                                                                                                        Store (0x1000, INF1)
                                                                                                                                        Store (0xFFFFFFFF, INF2)
                                                                                                                                        Return (INFO)
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00120041))
                                                                                                                                    {
                                                                                                                                        Return (NS3P ())
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00120042))
                                                                                                                                    {
                                                                                                                                        Return (DS3P ())
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00120043))
                                                                                                                                    {
                                                                                                                                        Return (T2BF ())
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00120037))
                                                                                                                                    {
                                                                                                                                        Return (0x00010000)
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00120038))
                                                                                                                                    {
                                                                                                                                        Return (0x00010000)
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00120044))
                                                                                                                                    {
                                                                                                                                        Store (0x00010000, Local0)
                                                                                                                                        Or (^^PCI0.SBRG.HEC.BRCP (), Local0, Local0)
                                                                                                                                        Return (Local0)
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00120045))
                                                                                                                                    {
                                                                                                                                        Store (0x00010000, Local0)
                                                                                                                                        Or (N3MV (), Local0, Local0)
                                                                                                                                        Return (Local0)
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00120046))
                                                                                                                                    {
                                                                                                                                        Store (0x00010000, Local0)
                                                                                                                                        Or (D3MV (), Local0, Local0)
                                                                                                                                        Return (Local0)
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00120047))
                                                                                                                                    {
                                                                                                                                        Store (0x00010000, Local0)
                                                                                                                                        Or (^^PCI0.SBRG.HEC.BIF4 (), Local0, Local0)
                                                                                                                                        Return (Local0)
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00120048))
                                                                                                                                    {
                                                                                                                                        Store (0x00010000, Local0)
                                                                                                                                        Or (S4PC (), Local0, Local0)
                                                                                                                                        Return (Local0)
                                                                                                                                    }

                                                                                                                                    If (LEqual (IIA0, 0x00120049))
                                                                                                                                    {
                                                                                                                                        Store (0x00010000, Local0)
                                                                                                                                        Or (^^PCI0.SBRG.HEC.BIF2 (), Local0, Local0)
                                                                                                                                        Return (Local0)
                                                                                                                                    }

                                                                                                                                    Return (0x02)
                                                                                                                                }
                                                                                                                                Else
                                                                                                                                {
                                                                                                                                    If (LEqual (_T_0, 0x53564544))
                                                                                                                                    {
                                                                                                                                        CreateDWordField (Arg2, 0x04, IIA1)
                                                                                                                                        If (LEqual (IIA0, 0x00020011))
                                                                                                                                        {
                                                                                                                                            Return (SALE (Add (IIA1, 0x02)))
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00020012))
                                                                                                                                        {
                                                                                                                                            Return (SALE (Add (IIA1, 0x04)))
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00020013))
                                                                                                                                        {
                                                                                                                                            Return (SALE (Add (IIA1, 0x08)))
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00040015))
                                                                                                                                        {
                                                                                                                                            Return (SALE (Add (IIA1, 0x10)))
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00020014))
                                                                                                                                        {
                                                                                                                                            Return (SALE (Add (IIA1, 0x20)))
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00020015))
                                                                                                                                        {
                                                                                                                                            Return (SALE (Add (IIA1, 0x40)))
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00020016))
                                                                                                                                        {
                                                                                                                                            Return (SALE (Add (IIA1, 0x80)))
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00020019))
                                                                                                                                        {
                                                                                                                                            Return (One)
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00020020))
                                                                                                                                        {
                                                                                                                                            CPCS (IIA1)
                                                                                                                                            Return (One)
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00050012))
                                                                                                                                        {
                                                                                                                                            SPLV (IIA1)
                                                                                                                                            Return (One)
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00050011))
                                                                                                                                        {
                                                                                                                                            If (LEqual (IIA1, 0x02))
                                                                                                                                            {
                                                                                                                                                Store (One, LIDP)
                                                                                                                                            }
                                                                                                                                            Else
                                                                                                                                            {
                                                                                                                                                Store (Zero, LIDP)
                                                                                                                                            }
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00010002))
                                                                                                                                        {
                                                                                                                                            OWGD (IIA1)
                                                                                                                                            Return (One)
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00010012))
                                                                                                                                        {
                                                                                                                                            If (\WMI0.WLDP)
                                                                                                                                            {
                                                                                                                                                WLED (IIA1)
                                                                                                                                            }

                                                                                                                                            Return (One)
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00010013))
                                                                                                                                        {
                                                                                                                                            If (\WMI0.BTDP)
                                                                                                                                            {
                                                                                                                                                BLED (IIA1)
                                                                                                                                            }

                                                                                                                                            Return (One)
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00010003))
                                                                                                                                        {
                                                                                                                                            Return (CWAP (IIA1))
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00010015))
                                                                                                                                        {
                                                                                                                                            If (\WMI0.GPDP)
                                                                                                                                            {
                                                                                                                                                GPSC (IIA1)
                                                                                                                                            }

                                                                                                                                            Return (One)
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00010019))
                                                                                                                                        {
                                                                                                                                            If (\WMI0.TGDP)
                                                                                                                                            {
                                                                                                                                                GSMC (IIA1)
                                                                                                                                            }

                                                                                                                                            Return (One)
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00010017))
                                                                                                                                        {
                                                                                                                                            If (\WMI0.WMDP)
                                                                                                                                            {
                                                                                                                                                WMXC (IIA1)
                                                                                                                                            }

                                                                                                                                            Return (One)
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00010021))
                                                                                                                                        {
                                                                                                                                            If (\WMI0.UWDP)
                                                                                                                                            {
                                                                                                                                                UWBC (IIA1)
                                                                                                                                            }

                                                                                                                                            Return (One)
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00120012))
                                                                                                                                        {
                                                                                                                                            Return (PSTC (Add (IIA1, One)))
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00100012))
                                                                                                                                        {
                                                                                                                                            TLED (IIA1)
                                                                                                                                            Return (One)
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00020018))
                                                                                                                                        {
                                                                                                                                            EGCR (IIA1)
                                                                                                                                            Return (One)
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00120031))
                                                                                                                                        {
                                                                                                                                            DESP (IIA1)
                                                                                                                                            Return (One)
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00120037))
                                                                                                                                        {
                                                                                                                                            IOMB (IIA1)
                                                                                                                                            Return (One)
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00120038))
                                                                                                                                        {
                                                                                                                                            IOMT (IIA1)
                                                                                                                                            Return (One)
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00120032))
                                                                                                                                        {
                                                                                                                                            Return (Zero)
                                                                                                                                        }

                                                                                                                                        If (LEqual (IIA0, 0x00060023))
                                                                                                                                        {
                                                                                                                                            AICG (IIA1)
                                                                                                                                            Return (One)
                                                                                                                                        }

                                                                                                                                        Return (Zero)
                                                                                                                                    }
                                                                                                                                    Else
                                                                                                                                    {
                                                                                                                                        If (LEqual (_T_0, 0x50564544))
                                                                                                                                        {
                                                                                                                                            Return (GSRD (IIA0))
                                                                                                                                        }
                                                                                                                                        Else
                                                                                                                                        {
                                                                                                                                            If (LEqual (_T_0, 0x59454B48))
                                                                                                                                            {
                                                                                                                                                HKEY ()
                                                                                                                                                Return (One)
                                                                                                                                            }
                                                                                                                                            Else
                                                                                                                                            {
                                                                                                                                                If (LEqual (_T_0, 0x5446424B))
                                                                                                                                                {
                                                                                                                                                    KBFT (IIA0)
                                                                                                                                                    Return (One)
                                                                                                                                                }
                                                                                                                                                Else
                                                                                                                                                {
                                                                                                                                                    If (LEqual (_T_0, 0x46494643))
                                                                                                                                                    {
                                                                                                                                                        Return (One)
                                                                                                                                                    }
                                                                                                                                                    Else
                                                                                                                                                    {
                                                                                                                                                        If (LEqual (_T_0, 0x44495046))
                                                                                                                                                        {
                                                                                                                                                            Return (FPID ())
                                                                                                                                                        }
                                                                                                                                                        Else
                                                                                                                                                        {
                                                                                                                                                            If (LEqual (_T_0, 0x424D5352))
                                                                                                                                                            {
                                                                                                                                                                Return (RSMB (IIA0))
                                                                                                                                                            }
                                                                                                                                                            Else
                                                                                                                                                            {
                                                                                                                                                                If (LEqual (_T_0, 0x424D5357))
                                                                                                                                                                {
                                                                                                                                                                    Return (WSMB (IIA0))
                                                                                                                                                                }
                                                                                                                                                                Else
                                                                                                                                                                {
                                                                                                                                                                    If (LEqual (_T_0, 0x574D5352))
                                                                                                                                                                    {
                                                                                                                                                                        Return (RSMW (IIA0))
                                                                                                                                                                    }
                                                                                                                                                                    Else
                                                                                                                                                                    {
                                                                                                                                                                        If (LEqual (_T_0, 0x574D5357))
                                                                                                                                                                        {
                                                                                                                                                                            Return (WSMW (IIA0))
                                                                                                                                                                        }
                                                                                                                                                                        Else
                                                                                                                                                                        {
                                                                                                                                                                            If (LEqual (_T_0, 0x4B4D5352))
                                                                                                                                                                            {
                                                                                                                                                                                Return (RSMK (IIA0))
                                                                                                                                                                            }
                                                                                                                                                                            Else
                                                                                                                                                                            {
                                                                                                                                                                                If (LEqual (_T_0, 0x4B4D5357))
                                                                                                                                                                                {
                                                                                                                                                                                    Return (WSMK (IIA0))
                                                                                                                                                                                }
                                                                                                                                                                                Else
                                                                                                                                                                                {
                                                                                                                                                                                    Return (0xFFFFFFFE)
                                                                                                                                                                                }
                                                                                                                                                                            }
                                                                                                                                                                        }
                                                                                                                                                                    }
                                                                                                                                                                }
                                                                                                                                                            }
                                                                                                                                                        }
                                                                                                                                                    }
                                                                                                                                                }
                                                                                                                                            }
                                                                                                                                        }
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }

            Method (_WED, 1, NotSerialized)  // _Wxx: Wake Event
            {
                If (LEqual (Arg0, 0xFF))
                {
                    Return (GANQ ())
                }

                Return (Ones)
            }

            Method (INIT, 1, NotSerialized)
            {
                Store (One, ATKP)
                Return (\WMI0.MNAM)
            }

            Method (BSTS, 0, NotSerialized)
            {
                If (LOr (LEqual (^^PCI0.SBRG.HEC.RRAM (0x04FE), 0x34), LEqual (^^PCI0.SBRG.HEC.RRAM (0x04FE), 0x39)))
                {
                    Return (0x05)
                }
                Else
                {
                    Return (Zero)
                }
            }

            Method (TMPR, 0, NotSerialized)
            {
                Return (Ones)
            }

            Method (SFUN, 0, NotSerialized)
            {
                Store (0x37, Local0)
                Or (Local0, 0x40, Local0)
                Or (Local0, 0x80, Local0)
                Or (Local0, 0x0800, Local0)
                Or (Local0, 0x00020000, Local0)
                Or (Local0, 0x00080000, Local0)
                Or (Local0, 0x00400000, Local0)
                Return (Local0)
            }

            Method (OSVR, 1, NotSerialized)
            {
            }

            Method (GPLV, 0, NotSerialized)
            {
                Return (\WMI0.LBTN)
            }

            Method (SPLV, 1, NotSerialized)
            {
                Store (Arg0, \WMI0.LBTN)
                ^^PCI0.SBRG.HEC.STBR ()
                Return (One)
            }

            Method (SPBL, 1, NotSerialized)
            {
                If (LEqual (Arg0, 0x0100))
                {
                    Return (Zero)
                }

                If (LEqual (Arg0, 0x80))
                {
                    Return (Zero)
                }

                If (LGreaterEqual (Arg0, 0x0B))
                {
                    Return (Zero)
                }

                If (LLess (Arg0, Zero))
                {
                    Return (Zero)
                }

                Store (Arg0, \WMI0.LBTN)
                ^^PCI0.SBRG.HEC.STBR ()
                Return (One)
            }

            Method (GSRD, 1, NotSerialized)
            {
                Return (One)
            }

            Method (OWGD, 1, NotSerialized)
            {
            }

            Method (WLED, 1, NotSerialized)
            {
                OWLD (Arg0)
                Return (One)
            }

            Method (BLED, 1, NotSerialized)
            {
                OBTD (Arg0)
                Return (One)
            }

            Method (UWBC, 1, NotSerialized)
            {
                Return (One)
            }

            Method (WMXC, 1, NotSerialized)
            {
                Return (One)
            }

            Method (GPSC, 1, NotSerialized)
            {
                Return (One)
            }

            Method (GSMC, 1, NotSerialized)
            {
                Return (One)
            }

            Method (KBNI, 0, NotSerialized)
            {
                Return (Zero)
            }

            Method (GALE, 1, NotSerialized)
            {
                If (LEqual (Arg0, 0x04))
                {
                    If (LAnd (LEDS, 0x04))
                    {
                        Return (One)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                If (LEqual (Arg0, 0x08))
                {
                    If (LAnd (LEDS, 0x08))
                    {
                        Return (One)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                If (LEqual (Arg0, 0x10))
                {
                    If (LAnd (LEDS, 0x10))
                    {
                        Return (One)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Return (0x02)
            }

            Method (SALE, 1, NotSerialized)
            {
                Return (One)
            }

            Method (GMLE, 1, NotSerialized)
            {
                If (LEqual (Arg0, One))
                {
                    Return (One)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Return (One)
                }

                If (LEqual (Arg0, 0x03))
                {
                    Return (One)
                }

                Return (One)
            }

            Method (SMLE, 1, NotSerialized)
            {
                Return (One)
            }

            Method (GDSP, 1, NotSerialized)
            {
                If (NATK ())
                {
                    Name (_T_0, Zero)  // _T_x: Emitted by ASL Compiler
                    Store (Arg0, _T_0)
                    If (LEqual (_T_0, Zero))
                    {
                        Return (OGND ())
                    }
                    Else
                    {
                        If (LEqual (_T_0, One))
                        {
                            Return (OEAD ())
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x02))
                            {
                                Return (OGCD ())
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x80))
                                {
                                    Return (One)
                                }
                            }
                        }
                    }
                }
            }

            Method (SDSP, 1, NotSerialized)
            {
                SWHG (Arg0)
            }

            Method (GPID, 0, NotSerialized)
            {
                Return (\WMI0.LCDR)
            }

            Method (FPID, 0, NotSerialized)
            {
                Return (0x0118)
            }

            Method (ALSC, 1, NotSerialized)
            {
                If (Arg0) {}
                Else
                {
                }

                Return (One)
            }

            Method (ALSL, 1, NotSerialized)
            {
                Return (One)
            }

            Method (HWRS, 0, NotSerialized)
            {
                Return (OHWR ())
            }

            Method (GLCD, 0, NotSerialized)
            {
                Return (\WMI0.LCDV)
            }

            Method (CWAP, 1, NotSerialized)
            {
                Or (Arg0, WAPF, WAPF)
                Return (One)
            }

            Method (WDOG, 1, NotSerialized)
            {
                If (LEqual (Arg0, Zero))
                {
                    Store (\WMI0.PTIM, PCDV)
                    Return (0x3C)
                }

                If (LEqual (Arg0, One))
                {
                    If (^^LID._LID ())
                    {
                        Store (\WMI0.PTIM, PCDV)
                        Return (One)
                    }

                    If (LLess (\_TZ.RLTM (), \WMI0.PTMP))
                    {
                        Store (\WMI0.PTIM, PCDV)
                        Return (One)
                    }

                    Decrement (PCDV)
                    If (LEqual (PCDV, Zero))
                    {
                        Store (\WMI0.PTIM, PCDV)
                        NTFY (0x6D)
                    }

                    Return (One)
                }

                Return (Zero)
            }

            Method (DPWR, 1, NotSerialized)
            {
                Return (One)
            }

            Method (QDEV, 1, NotSerialized)
            {
                If (LEqual (Arg0, One))
                {
                    Return (0x02)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Return (0x02)
                }

                If (LEqual (Arg0, 0x04))
                {
                    Return (0x02)
                }

                If (LEqual (Arg0, 0x08))
                {
                    Return (0x02)
                }

                Return (0x02)
            }

            Method (SDON, 1, NotSerialized)
            {
                If (LEqual (Arg0, One))
                {
                    Return (Zero)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Return (Zero)
                }

                If (LEqual (Arg0, 0x04))
                {
                    Return (Zero)
                }

                If (LEqual (Arg0, 0x08))
                {
                    Return (Zero)
                }

                Return (Zero)
            }

            Method (SDOF, 1, NotSerialized)
            {
                If (LEqual (Arg0, One))
                {
                    Return (Zero)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Return (Zero)
                }

                If (LEqual (Arg0, 0x04))
                {
                    Return (Zero)
                }

                If (LEqual (Arg0, 0x08))
                {
                    Return (Zero)
                }

                Return (Zero)
            }

            Method (QMOD, 1, NotSerialized)
            {
                If (LEqual (Arg0, Zero))
                {
                    Return (Zero)
                }

                If (LEqual (Arg0, One)) {}
                If (LEqual (Arg0, 0x02)) {}
                Return (One)
            }

            Method (ANVI, 1, Serialized)
            {
                Store (ASMI (Arg0), Local0)
                Return (Local0)
            }

            Method (PSTC, 1, Serialized)
            {
                If (LEqual (Arg0, Zero))
                {
                    Return (\WMI0.PSTN)
                }

                If (\WMI0.ACPF)
                {
                    ShiftRight (\WMI0.PSTN, 0x08, Local0)
                }
                Else
                {
                    And (\WMI0.PSTN, 0xFF, Local0)
                }

                If (LGreater (Arg0, Local0))
                {
                    Return (Ones)
                }

                Store (Arg0, \WMI0.SLMT)
                PNOT ()
                Return (Zero)
            }

            Method (SMBB, 1, Serialized)
            {
                ShiftRight (Arg0, 0x10, Local0)
                And (Local0, 0xFF, Local0)
                ShiftRight (Arg0, 0x18, Local1)
                And (Arg0, 0xFF, Local2)
                If (And (Local1, One))
                {
                    Return (RBYT (Local1, Local0))
                }
                Else
                {
                    Return (WBYT (Local1, Local0, Local2))
                }
            }

            Method (SMBW, 1, Serialized)
            {
                ShiftRight (Arg0, 0x10, Local0)
                And (Local0, 0xFF, Local0)
                ShiftRight (Arg0, 0x18, Local1)
                And (Arg0, 0xFF, Local2)
                If (And (Local1, One))
                {
                    Return (RWRD (Local1, Local0))
                }
                Else
                {
                    Return (WWRD (Local1, Local0, Local2))
                }
            }

            Method (SMBK, 1, Serialized)
            {
                ShiftRight (Arg0, 0x08, Local0)
                And (Local0, 0xFF, Local0)
                If (Local0)
                {
                    ShiftRight (Arg0, 0x10, Local0)
                    And (Local0, 0xFF, Local0)
                    ShiftRight (Arg0, 0x18, Local1)
                    And (Local1, 0xFF, Local1)
                    And (Arg0, 0x0F, Local3)
                    If (And (Local1, One))
                    {
                        RBLK (Local1, Local0, Local3)
                    }
                    Else
                    {
                        WBLK (Local1, Local0, Local3)
                    }

                    Return (Zero)
                }
                Else
                {
                    ShiftRight (Arg0, 0x10, Local2)
                    And (Local2, 0xFF, Local2)
                    ShiftRight (Arg0, 0x18, Local1)
                    If (And (Local1, One))
                    {
                        Return (DerefOf (Index (RBUF, Local2)))
                    }
                    Else
                    {
                        And (Arg0, 0xFF, Local1)
                        Store (Local1, Index (RBUF, Local2))
                        Return (Zero)
                    }
                }
            }

            Method (ECRW, 1, Serialized)
            {
                ShiftRight (Arg0, 0x18, Local0)
                And (Local0, 0xFF, Local0)
                ShiftRight (Arg0, 0x10, Local1)
                And (Local1, 0xFF, Local1)
                ShiftRight (Arg0, 0x08, Local2)
                And (Local2, 0xFF, Local2)
                And (Arg0, 0xFF, Local3)
                If (LNotEqual (Acquire (^^PCI0.SBRG.HEC.MUEC, 0xFFFF), Zero))
                {
                    Return (Ones)
                }

                Store (Local0, ^^PCI0.SBRG.HEC.CDT3)
                Store (Local1, ^^PCI0.SBRG.HEC.CDT2)
                Store (Local2, ^^PCI0.SBRG.HEC.CDT1)
                Store (Local3, ^^PCI0.SBRG.HEC.CMD1)
                Store (0x05, Local0)
                While (LAnd (Local0, ^^PCI0.SBRG.HEC.CMD1))
                {
                    Sleep (One)
                    Decrement (Local0)
                }

                Store (^^PCI0.SBRG.HEC.CDT3, Local0)
                Store (^^PCI0.SBRG.HEC.CDT2, Local1)
                Store (^^PCI0.SBRG.HEC.CDT1, Local2)
                Store (^^PCI0.SBRG.HEC.CMD1, Local3)
                Release (^^PCI0.SBRG.HEC.MUEC)
                ShiftLeft (Local0, 0x08, Local0)
                Or (Local0, Local1, Local0)
                ShiftLeft (Local0, 0x08, Local0)
                Or (Local0, Local2, Local0)
                ShiftLeft (Local0, 0x08, Local0)
                Or (Local0, Local3, Local0)
                Return (Local0)
            }

            Method (CBIF, 1, Serialized)
            {
                Return (One)
            }

            Method (TLED, 1, NotSerialized)
            {
                OTLD (Arg0)
            }

            Method (GLED, 1, NotSerialized)
            {
                OGLD (Arg0)
            }

            Method (GLKB, 1, NotSerialized)
            {
                If (LEqual (Arg0, One))
                {
                    Return (Zero)
                }
                Else
                {
                    If (LEqual (Arg0, 0x02))
                    {
                        Return (Zero)
                    }
                    Else
                    {
                        If (LEqual (Arg0, 0x03))
                        {
                            Return (0x80)
                        }
                    }
                }

                Return (Ones)
            }

            Method (SLKB, 1, NotSerialized)
            {
                Return (One)
            }

            Method (RLKB, 1, NotSerialized)
            {
                Return (One)
            }

            Method (CPCS, 1, NotSerialized)
            {
                Return (One)
            }

            Method (EGCR, 1, Serialized)
            {
            }

            Method (RSMB, 1, NotSerialized)
            {
                Return (One)
            }

            Method (WSMB, 1, NotSerialized)
            {
                Return (One)
            }

            Method (RSMW, 1, NotSerialized)
            {
                Return (One)
            }

            Method (WSMW, 1, NotSerialized)
            {
                Return (One)
            }

            Method (RSMK, 1, NotSerialized)
            {
                Return (One)
            }

            Method (WSMK, 1, NotSerialized)
            {
                Return (One)
            }

            Method (USBC, 1, NotSerialized)
            {
            }
        }
    }

    Scope (_SB)
    {
        Device (ASHS)
        {
            Name (_HID, "ATK4001")  // _HID: Hardware ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (_OSI ("Windows 2012"))
                {
                    Return (0x0F)
                }
                Else
                {
                    If (_OSI ("Windows 2013"))
                    {
                        Return (0x0F)
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }
            }

            Method (NTFY, 1, Serialized)
            {
                Notify (ASHS, Arg0)
            }

            Method (HSWC, 1, Serialized)
            {
                If (LLess (Arg0, 0x02))
                {
                    If (\WMI0.WLDP)
                    {
                        OWLD (Arg0)
                    }

                    If (\WMI0.BTDP)
                    {
                        OBTD (Arg0)
                    }

                    Return (One)
                }

                If (LEqual (Arg0, 0x02))
                {
                    Return (\WMI0.BRST)
                }

                If (LEqual (Arg0, 0x03))
                {
                    Return (OHWR ())
                }

                If (LEqual (Arg0, 0x80))
                {
                    Return (One)
                    Return (0x03)
                }
            }
        }
    }

    Scope (_SB.PCI0.SBRG)
    {
        Device (HEC)
        {
            Name (_HID, EisaId ("PNP0C09"))  // _HID: Hardware ID
            Name (CRS, ResourceTemplate ()
            {
                IO (Decode16,
                    0x0062,             // Range Minimum
                    0x0062,             // Range Maximum
                    0x00,               // Alignment
                    0x01,               // Length
                    )
                IO (Decode16,
                    0x0066,             // Range Minimum
                    0x0066,             // Range Maximum
                    0x00,               // Alignment
                    0x01,               // Length
                    )
                Memory32Fixed (ReadOnly,
                    0x00000000,         // Address Base
                    0x00000500,         // Address Length
                    _Y17)
            })
            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                CreateDWordField (CRS, \_SB.PCI0.SBRG.HEC._Y17._BAS, HB01)  // _BAS: Base Address
                Store (\WMI0.HEM1, HB01)
                Return (CRS)
            }

            Name (_GPE, 0x0C)  // _GPE: General Purpose Events
            Mutex (MUEC, 0x00)
            Mutex (ASIO, 0x00)
            Name (ECFL, Ones)
            Method (ECAV, 0, NotSerialized)
            {
                If (LGreaterEqual (_REV, 0x02))
                {
                    Return (One)
                }

                If (LGreaterEqual (\WMI0.SLPT, 0x04))
                {
                    Return (Zero)
                }

                If (LEqual (ECFL, Ones))
                {
                    Return (Zero)
                }

                Return (ECFL)
            }

            OperationRegion (ECOR, EmbeddedControl, Zero, 0xFF)
            Field (ECOR, ByteAcc, Lock, Preserve)
            {
                Offset (0x04), 
                Offset (0x05), 
                CDTD,   8, 
                Offset (0x8A), 
                HKEN,   1
            }

            OperationRegion (ECW1, SystemMemory, \WMI0.HEM1, 0x80)
            Field (ECW1, ByteAcc, Lock, Preserve)
            {
                Offset (0x01), 
                EPWS,   8, 
                EB0S,   8, 
                EB1S,   8, 
                EB0R,   8, 
                EB1R,   8, 
                EB0T,   8, 
                EB1T,   8, 
                Offset (0x10), 
                B0PN,   16, 
                B0VL,   16, 
                B0RC,   16, 
                B0FC,   16, 
                B0ST,   16, 
                B0CC,   16, 
                B0TM,   16, 
                B0C1,   16, 
                B0CV,   16, 
                Offset (0x30), 
                B1PN,   16, 
                B1VL,   16, 
                B1RC,   16, 
                B1FC,   16, 
                B1ST,   16, 
                B1CC,   16, 
                B1TM,   16, 
                B1C1,   16, 
                B1CV,   16, 
                Offset (0x50), 
                B0DC,   16, 
                B0DV,   16, 
                B0SN,   16, 
                B0MD,   16, 
                B1DC,   16, 
                B1DV,   8, 
                B1SN,   8, 
                B1MD,   8, 
                Offset (0x60), 
                TH1R,   8, 
                TH1L,   8, 
                TH0R,   8, 
                TH0L,   8, 
                ECRT,   8, 
                EPSV,   8, 
                EACT,   8, 
                TERR,   8, 
                F0TS,   16, 
                F1TS,   16, 
                F0CS,   8, 
                F1CS,   8, 
                PCPT,   16
            }

            OperationRegion (ECW2, SystemMemory, \WMI0.HEM2, 0x80)
            Field (ECW2, ByteAcc, Lock, Preserve)
            {
                ESEM,   8, 
                CMD1,   8, 
                CDT1,   8, 
                CDT2,   8, 
                CDT3,   8, 
                CDT4,   8, 
                CDT5,   8, 
                CDT6,   8, 
                CDT7,   8, 
                CDT8,   8, 
                CDT9,   8, 
                CD10,   8, 
                Offset (0x40), 
                EDA1,   8, 
                EDA2,   8, 
                EDA3,   8, 
                EDA4,   8, 
                EDA5,   8, 
                EDA6,   8, 
                EDA7,   8, 
                EDA8,   8, 
                EDA9,   8, 
                ED10,   8
            }

            OperationRegion (ECWB, SystemMemory, \WMI0.HEM2, 0x80)
            Field (ECWB, ByteAcc, Lock, Preserve)
            {
                ESEB,   8, 
                CMDB,   8, 
                CDTB,   256, 
                Offset (0x40), 
                EDAB,   256
            }

            Method (_INI, 0, NotSerialized)  // _INI: Initialize
            {
                If (LLessEqual (OSFG, OSME))
                {
                    Store (One, ECFL)
                }
            }

            Method (_REG, 2, NotSerialized)  // _REG: Region Availability
            {
                If (LEqual (Arg0, 0x03))
                {
                    Store (Arg1, ECFL)
                }
            }
        }
    }

    Scope (_SB.ATKD)
    {
        Method (CPUX, 4, NotSerialized)
        {
            If (LEqual (Arg1, 0x31))
            {
                If (LEqual (Arg2, 0x02))
                {
                    GCPU (Arg0, Arg1, Arg2, Arg3)
                    Return (Zero)
                }

                If (LEqual (Arg2, 0x03))
                {
                    SCPU (Arg0, Arg1, Arg2, Arg3)
                    Return (Zero)
                }
            }

            Return (Zero)
        }

        Method (GCPU, 4, NotSerialized)
        {
            OperationRegion (\F31A, SystemMemory, Arg0, 0x10)
            Field (F31A, DWordAcc, NoLock, Preserve)
            {
                MFUN,   16, 
                SFUN,   16, 
                LEN,    16, 
                STAS,   8, 
                EROR,   8, 
                PSIN,   16
            }

            Store (PSTC (Zero), PSIN)
            Store (0x80, STAS)
        }

        Method (SCPU, 4, NotSerialized)
        {
            OperationRegion (\F31B, SystemMemory, Arg0, 0x10)
            Field (F31B, DWordAcc, NoLock, Preserve)
            {
                MFUN,   16, 
                SFUN,   16, 
                LEN,    16, 
                STAS,   8, 
                EROR,   8, 
                PSTL,   8
            }

            If (PSTC (PSTL))
            {
                Store (0x82, STAS)
                Store (One, EROR)
            }
            Else
            {
                Store (0x80, STAS)
            }
        }
    }

    Scope (\)
    {
        Method (PNOT, 0, Serialized)
        {
            Notify (\_PR.P000, 0x80)
            Sleep (0x64)
            Notify (\_PR.P000, 0x81)
            Notify (\_PR.P001, 0x80)
            Sleep (0x64)
            Notify (\_PR.P001, 0x81)
            If (LGreater (\WMI0.CPUN, 0x02))
            {
                Notify (\_PR.P002, 0x80)
                Sleep (0x64)
                Notify (\_PR.P002, 0x81)
            }

            If (LGreater (\WMI0.CPUN, 0x03))
            {
                Notify (\_PR.P003, 0x80)
                Sleep (0x64)
                Notify (\_PR.P003, 0x81)
            }
        }
    }

    Scope (\)
    {
        OperationRegion (SMIX, SystemMemory, SMIB, 0x0100)
        Field (SMIX, ByteAcc, Lock, Preserve)
        {
            SEST,   32, 
            SEEN,   32, 
            SETR,   32, 
            SEEL,   32, 
            SSCS,   32, 
            SSCE,   32, 
            SWSE,   32, 
            SWSD,   32, 
            Offset (0xA0), 
            SCT0,   32, 
            SCT1,   32, 
            SCT2,   32, 
            SCT3,   32, 
            SCT4,   32, 
            SCT5,   32, 
            SCT6,   32, 
            SCT7,   32, 
            SCT8,   32, 
            SCT9,   32
        }

        OperationRegion (IOMX, SystemMemory, IOMB, 0x0100)
        Field (IOMX, ByteAcc, Lock, Preserve)
        {
            IM00,   8
        }

        OperationRegion (P80X, SystemIO, 0x80, 0x04)
        Field (P80X, DWordAcc, Lock, Preserve)
        {
            P80D,   32
        }

        Method (P8XH, 2, Serialized)
        {
            Store (P80D, Local0)
            If (LEqual (Arg0, Zero))
            {
                Or (And (Local0, 0xFFFFFF00), Arg1, Local0)
            }

            If (LEqual (Arg0, One))
            {
                Or (And (Local0, 0xFFFF00FF), ShiftLeft (Arg1, 0x08), Local0)
            }

            If (LEqual (Arg0, 0x02))
            {
                Or (And (Local0, 0xFF00FFFF), ShiftLeft (Arg1, 0x10), Local0)
            }

            If (LEqual (Arg0, 0x03))
            {
                Or (And (Local0, 0x00FFFFFF), ShiftLeft (Arg1, 0x18), Local0)
            }

            Store (Local0, P80D)
        }

        Method (RGLV, 1, Serialized)
        {
            Add (Arg0, GIOB, Local0)
            OperationRegion (GLVX, SystemMemory, Local0, 0x08)
            Field (GLVX, ByteAcc, Lock, Preserve)
            {
                GPXX,   8
            }

            If (And (GPXX, 0x80))
            {
                Return (One)
            }
            Else
            {
                Return (Zero)
            }
        }

        Method (SGLV, 2, Serialized)
        {
            Add (Arg0, GIOB, Local0)
            OperationRegion (GLVX, SystemMemory, Local0, 0x08)
            Field (GLVX, ByteAcc, Lock, Preserve)
            {
                GPXX,   8
            }

            If (Arg1)
            {
                Or (GPXX, 0x40, GPXX)
            }
            Else
            {
                And (GPXX, 0xBF, GPXX)
            }
        }

        Method (RGPL, 2, Serialized)
        {
            Store (Arg0, Local0)
            Store (Arg1, Local1)
            Store (Zero, Local3)
            Store (Zero, Local4)
            While (Local1)
            {
                If (RGLV (Local0))
                {
                    Or (ShiftLeft (One, Local4), Local3, Local3)
                }

                Increment (Local0)
                Decrement (Local1)
                Increment (Local4)
            }

            Return (Local3)
        }

        Method (SGPL, 3, Serialized)
        {
            Store (Arg0, Local0)
            Store (Arg1, Local1)
            Store (Arg2, Local3)
            Store (Zero, Local4)
            While (Local1)
            {
                Store (ShiftLeft (One, Local4), Local2)
                If (And (Local2, Local3))
                {
                    SGLV (Local0, One)
                }
                Else
                {
                    SGLV (Local0, Zero)
                }

                Increment (Local0)
                Decrement (Local1)
                Increment (Local4)
            }
        }

        Method (RGPP, 1, Serialized)
        {
            If (LLess (Arg0, 0x60))
            {
                Return (Zero)
            }

            Subtract (Arg0, 0x60, Local1)
            If (LGreaterEqual (Local1, 0x18))
            {
                Return (Zero)
            }

            Store (SETR, Local0)
            If (LLess (Local1, 0x10))
            {
                Add (Local1, 0x10, Local1)
            }
            Else
            {
                If (LLess (Local1, 0x13))
                {
                    Subtract (Local1, 0x0D, Local1)
                }
                Else
                {
                    If (LEqual (Local1, 0x13))
                    {
                        Store (0x07, Local1)
                    }
                    Else
                    {
                        If (LEqual (Local1, 0x14))
                        {
                            Store (0x0A, Local1)
                        }
                        Else
                        {
                            If (LEqual (Local1, 0x15))
                            {
                                Store (0x0C, Local1)
                            }
                            Else
                            {
                                If (LEqual (Local1, 0x16))
                                {
                                    Store (0x0E, Local1)
                                }
                                Else
                                {
                                    If (LEqual (Local1, 0x17))
                                    {
                                        Store (0x0F, Local1)
                                    }
                                }
                            }
                        }
                    }
                }
            }

            ShiftLeft (One, Local1, Local1)
            If (And (Local0, Local1))
            {
                Return (One)
            }
            Else
            {
                Return (Zero)
            }
        }

        Method (TGPP, 1, Serialized)
        {
            If (LLess (Arg0, 0x60))
            {
                Return (Zero)
            }

            Subtract (Arg0, 0x60, Local1)
            If (LGreaterEqual (Local1, 0x18))
            {
                Return (Zero)
            }

            Store (SETR, Local0)
            If (LLess (Local1, 0x10))
            {
                Add (Local1, 0x10, Local1)
            }
            Else
            {
                If (LLess (Local1, 0x13))
                {
                    Subtract (Local1, 0x0D, Local1)
                }
                Else
                {
                    If (LEqual (Local1, 0x13))
                    {
                        Store (0x07, Local1)
                    }
                    Else
                    {
                        If (LEqual (Local1, 0x14))
                        {
                            Store (0x0A, Local1)
                        }
                        Else
                        {
                            If (LEqual (Local1, 0x15))
                            {
                                Store (0x0C, Local1)
                            }
                            Else
                            {
                                If (LEqual (Local1, 0x16))
                                {
                                    Store (0x0E, Local1)
                                }
                                Else
                                {
                                    If (LEqual (Local1, 0x17))
                                    {
                                        Store (0x0F, Local1)
                                    }
                                }
                            }
                        }
                    }
                }
            }

            ShiftLeft (One, Local1, Local1)
            XOr (Local0, Local1, SETR)
            Return (Zero)
        }

        Method (SGPP, 2, Serialized)
        {
            If (LLess (Arg0, 0x60))
            {
                Return (Zero)
            }

            Subtract (Arg0, 0x60, Local1)
            If (LGreaterEqual (Local1, 0x18))
            {
                Return (Zero)
            }

            Store (SETR, Local0)
            If (LLess (Local1, 0x10))
            {
                Add (Local1, 0x10, Local1)
            }
            Else
            {
                If (LLess (Local1, 0x13))
                {
                    Subtract (Local1, 0x0D, Local1)
                }
                Else
                {
                    If (LEqual (Local1, 0x13))
                    {
                        Store (0x07, Local1)
                    }
                    Else
                    {
                        If (LEqual (Local1, 0x14))
                        {
                            Store (0x0A, Local1)
                        }
                        Else
                        {
                            If (LEqual (Local1, 0x15))
                            {
                                Store (0x0C, Local1)
                            }
                            Else
                            {
                                If (LEqual (Local1, 0x16))
                                {
                                    Store (0x0E, Local1)
                                }
                                Else
                                {
                                    If (LEqual (Local1, 0x17))
                                    {
                                        Store (0x0F, Local1)
                                    }
                                }
                            }
                        }
                    }
                }
            }

            ShiftLeft (One, Local1, Local1)
            If (Arg1)
            {
                Or (Local0, Local1, SETR)
            }
            Else
            {
                And (Local0, Not (Local1), SETR)
            }

            Return (Zero)
        }

        Name (PMEW, Zero)
        Method (SBRS, 1, NotSerialized)
        {
            CPXS ()
        }

        Method (SBRW, 1, NotSerialized)
        {
        }

        Method (STRP, 1, NotSerialized)
        {
            Store (SCT4, Local0)
            If (Arg0)
            {
                And (Local0, 0xFFFFFFFFFFFFFFF3, Local0)
                Or (Local0, 0x04, Local0)
            }
            Else
            {
                And (Local0, 0xFFFFFFFFFFFFFFF3, Local0)
            }

            Store (Local0, SCT4)
        }

        Method (HKTH, 0, Serialized)
        {
            Return (0xFFFF)
        }

        Method (CPXS, 0, NotSerialized)
        {
        }
    }

    Scope (\)
    {
        OperationRegion (SMBX, SystemIO, 0x0B00, 0x10)
        Field (SMBX, ByteAcc, NoLock, Preserve)
        {
            HSTS,   8, 
            SSTS,   8, 
            HSTC,   8, 
            HCMD,   8, 
            HADR,   8, 
            HDT0,   8, 
            HDT1,   8, 
            BLKD,   8, 
            SPEC,   8, 
            SRCV,   8, 
            SLVD,   16, 
            AUXS,   8, 
            AUXC,   8
        }

        Name (RBUF, Package (0x20) {})
        Method (HBSY, 0, NotSerialized)
        {
            Store (0x000FFFFF, Local0)
            While (Local0)
            {
                And (HSTS, One, Local1)
                If (LNot (Local1))
                {
                    Return (Zero)
                }

                Decrement (Local0)
            }

            Return (One)
        }

        Method (WTSB, 0, NotSerialized)
        {
            Store (0x000FFFFF, Local0)
            While (Local0)
            {
                Decrement (Local0)
                And (HSTS, 0x1E, Local1)
                If (LEqual (Local1, 0x02))
                {
                    Return (One)
                }

                If (Local1)
                {
                    Return (Zero)
                }
            }

            Return (Zero)
        }

        Mutex (P4SM, 0x00)
        Method (SBYT, 2, Serialized)
        {
            If (LNotEqual (Acquire (P4SM, 0xFFFF), Zero))
            {
                Return (Ones)
            }

            Store (Zero, AUXC)
            Store (Arg0, HADR)
            Store (Arg1, HCMD)
            Store (0xFF, HSTS)
            Store (0x44, HSTC)
            If (WTSB ())
            {
                Release (P4SM)
                Return (One)
            }
            Else
            {
                Release (P4SM)
                Return (Zero)
            }

            Return (Ones)
        }

        Method (WBYT, 3, Serialized)
        {
            If (LNotEqual (Acquire (P4SM, 0xFFFF), Zero))
            {
                Return (Ones)
            }

            Store (0x05, Local0)
            While (Local0)
            {
                If (HBSY ())
                {
                    Decrement (Local0)
                }
                Else
                {
                    Store (Arg0, HADR)
                    Store (Arg1, HCMD)
                    Store (Arg2, HDT0)
                    Store (0xFF, HSTS)
                    Store (0x48, HSTC)
                    If (WTSB ())
                    {
                        Release (P4SM)
                        Return (One)
                    }
                    Else
                    {
                        Decrement (Local0)
                    }
                }
            }

            Release (P4SM)
            Return (Ones)
        }

        Method (WWRD, 3, Serialized)
        {
            If (LNotEqual (Acquire (P4SM, 0xFFFF), Zero))
            {
                Return (Ones)
            }

            Store (0x05, Local0)
            While (Local0)
            {
                If (HBSY ())
                {
                    Decrement (Local0)
                }
                Else
                {
                    Store (Arg0, HADR)
                    Store (Arg1, HCMD)
                    And (Arg2, 0xFF, Local1)
                    ShiftRight (Arg2, 0x08, Local2)
                    And (Local2, 0xFF, Local2)
                    Store (Local2, HDT0)
                    Store (Local1, HDT1)
                    Store (0xFF, HSTS)
                    Store (0x4C, HSTC)
                    If (WTSB ())
                    {
                        Release (P4SM)
                        Return (One)
                    }
                    Else
                    {
                        Decrement (Local0)
                    }
                }
            }

            Release (P4SM)
            Return (Ones)
        }

        Method (WBLK, 3, Serialized)
        {
            If (LNotEqual (Acquire (P4SM, 0xFFFF), Zero))
            {
                Return (Ones)
            }

            Store (0x05, Local0)
            While (Local0)
            {
                If (HBSY ())
                {
                    Decrement (Local0)
                }
                Else
                {
                    Store (Arg0, HADR)
                    Store (Arg1, HCMD)
                    Store (Arg2, HDT0)
                    Store (0xFF, HSTS)
                    Store (Arg2, Local2)
                    Store (Zero, Local1)
                    While (Local2)
                    {
                        Store (DerefOf (Index (RBUF, Local1)), BLKD)
                        Store (0x80, HSTS)
                        If (LEqual (Local1, Zero))
                        {
                            Store (0x54, HSTC)
                        }

                        Store (0xFFFF, Local3)
                        While (Local3)
                        {
                            Store (HSTS, Local4)
                            If (And (Local4, 0x80, Local5))
                            {
                                Store (Zero, Local3)
                            }
                            Else
                            {
                                Decrement (Local3)
                            }
                        }

                        If (Local5)
                        {
                            Decrement (Local2)
                            Increment (Local1)
                            If (And (Local4, 0x02, Local5))
                            {
                                Release (P4SM)
                                Return (One)
                            }
                        }
                        Else
                        {
                            Decrement (Local0)
                            Store (Zero, Local2)
                            Store (0x02, HSTC)
                        }
                    }
                }
            }

            Release (P4SM)
            Return (Ones)
        }

        Method (RSBT, 2, Serialized)
        {
            If (LNotEqual (Acquire (P4SM, 0xFFFF), Zero))
            {
                Return (Ones)
            }

            Store (0x05, Local0)
            While (Local0)
            {
                If (HBSY ())
                {
                    Decrement (Local0)
                }
                Else
                {
                    Or (Arg0, One, HADR)
                    Store (Arg1, HCMD)
                    Store (0xFF, HSTS)
                    Store (0x44, HSTC)
                    If (WTSB ())
                    {
                        Release (P4SM)
                        Return (HDT0)
                    }
                    Else
                    {
                        Decrement (Local0)
                    }
                }
            }

            Release (P4SM)
            Return (Ones)
        }

        Method (RBYT, 2, Serialized)
        {
            If (LNotEqual (Acquire (P4SM, 0xFFFF), Zero))
            {
                Return (Ones)
            }

            Store (0x05, Local0)
            While (Local0)
            {
                If (HBSY ())
                {
                    Decrement (Local0)
                }
                Else
                {
                    Or (Arg0, One, HADR)
                    Store (Arg1, HCMD)
                    Store (0xFF, HSTS)
                    Store (0x48, HSTC)
                    If (WTSB ())
                    {
                        Release (P4SM)
                        Return (HDT0)
                    }
                    Else
                    {
                        Decrement (Local0)
                    }
                }
            }

            Release (P4SM)
            Return (Ones)
        }

        Method (RWRD, 2, Serialized)
        {
            If (LNotEqual (Acquire (P4SM, 0xFFFF), Zero))
            {
                Return (Ones)
            }

            Store (0x05, Local0)
            While (Local0)
            {
                If (HBSY ())
                {
                    Decrement (Local0)
                }
                Else
                {
                    Or (Arg0, One, HADR)
                    Store (Arg1, HCMD)
                    Store (0xFF, HSTS)
                    Store (0x4C, HSTC)
                    If (WTSB ())
                    {
                        Store (HDT0, Local1)
                        ShiftLeft (Local1, 0x08, Local1)
                        Store (HDT1, Local2)
                        Add (Local1, Local2, Local1)
                        Release (P4SM)
                        Return (Local1)
                    }
                    Else
                    {
                        Decrement (Local0)
                    }
                }
            }

            Release (P4SM)
            Return (Ones)
        }

        Method (RBLK, 3, Serialized)
        {
            If (LNotEqual (Acquire (P4SM, 0xFFFF), Zero))
            {
                Return (Ones)
            }

            Store (0x05, Local0)
            While (Local0)
            {
                If (HBSY ())
                {
                    Decrement (Local0)
                }
                Else
                {
                    Or (Arg0, One, HADR)
                    Store (Arg1, HCMD)
                    Store (0xFF, HSTS)
                    Store (0x54, HSTC)
                    If (WTSB ())
                    {
                        Store (HSTC, Local1)
                        Store (HDT0, Local2)
                        Store (Local2, Local3)
                        Store (Zero, RBUF)
                        Store (Zero, Local1)
                        While (Local2)
                        {
                            Store (BLKD, Index (RBUF, Local1))
                            Decrement (Local2)
                            Increment (Local1)
                        }

                        Release (P4SM)
                        Return (Local3)
                    }
                    Else
                    {
                        Decrement (Local0)
                    }
                }
            }

            Release (P4SM)
            Return (Ones)
        }
    }

    Scope (_SB.PCI0)
    {
        Name (SUPP, Zero)
        Name (CTRL, Zero)
        Name (OSCF, Zero)
        Method (OSCW, 0, NotSerialized)
        {
        }
    }

    Scope (_GPE)
    {
        Method (_L0B, 0, Serialized)  // _Lxx: Level-Triggered GPE
        {
            Sleep (One)
            Notify (\_SB.SLPB, 0x02)
        }
    }

    Scope (WMI0)
    {
        Name (CNTB, Buffer (0x0E)
        {
            /* 0000 */   0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF,
            /* 0008 */   0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00
        })
        Name (VISB, Buffer (0x0E)
        {
            /* 0000 */   0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
            /* 0008 */   0x00, 0x00, 0x01, 0x01, 0x00, 0x00
        })
        Name (SHPB, Buffer (0x0E)
        {
            /* 0000 */   0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
            /* 0008 */   0x07, 0x07, 0x07, 0x07, 0x07, 0x07
        })
        Name (BUPC, Package (0x04)
        {
            0xFF, 
            Zero, 
            Zero, 
            Zero
        })
        Name (BPLD, Buffer (0x10)
        {
            /* 0000 */   0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            /* 0008 */   0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
        })
        Method (OUPC, 1, Serialized)
        {
            Store (DerefOf (Index (CNTB, Arg0)), Local0)
            Store (Local0, Index (BUPC, Zero))
        }

        Method (OPLD, 1, Serialized)
        {
            Store (DerefOf (Index (VISB, Arg0)), Local0)
            Store (DerefOf (Index (BPLD, 0x08)), Local1)
            And (Local1, 0xFE, Local1)
            Or (Local1, Local0, Local1)
            Store (Local1, Index (BPLD, 0x08))
            Store (DerefOf (Index (SHPB, Arg0)), Local0)
            Store (DerefOf (Index (BPLD, 0x09)), Local1)
            And (Local1, 0xC3, Local1)
            Or (Local1, Local0, Local1)
            Store (Local1, Index (BPLD, 0x09))
        }
    }

    Scope (_SB.PCI0.OHC2)
    {
        Device (RHUB)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Device (PRT5)
            {
                Name (_ADR, 0x05)  // _ADR: Address
                Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
                {
                    \WMI0.OUPC (0x09)
                    Return (\WMI0.BUPC)
                }

                Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
                {
                    \WMI0.OPLD (0x09)
                    Return (\WMI0.BPLD)
                }
            }
        }
    }

    Scope (_SB.PCI0.EHC2)
    {
        Device (RHUB)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Device (PRT4)
            {
                Name (_ADR, 0x04)  // _ADR: Address
                Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
                {
                    \WMI0.OUPC (0x08)
                    Return (\WMI0.BUPC)
                }

                Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
                {
                    \WMI0.OPLD (0x08)
                    Return (\WMI0.BPLD)
                }
            }

            Device (PRT5)
            {
                Name (_ADR, 0x05)  // _ADR: Address
                Method (_UPC, 0, NotSerialized)  // _UPC: USB Port Capabilities
                {
                    \WMI0.OUPC (0x09)
                    Return (\WMI0.BUPC)
                }

                Method (_PLD, 0, NotSerialized)  // _PLD: Physical Location of Device
                {
                    \WMI0.OPLD (0x09)
                    Return (\WMI0.BPLD)
                }
            }
        }
    }

    Scope (_SB.PCI0.EHC2.RHUB.PRT4)
    {
        Device (CAM0)
        {
            Name (_ADR, 0x04)  // _ADR: Address
            Name (_PLD, Package (0x01)  // _PLD: Physical Location of Device
            {
                Buffer (0x14)
                {
                    /* 0000 */   0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                    /* 0008 */   0xA1, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                    /* 0010 */   0xFF, 0xFF, 0xFF, 0xFF
                    /*           Revision : 02     */
                    /*        IgnoreColor : 01     */
                    /*              Color : 000000 */
                    /*              Width : 0000   */
                    /*             Height : 0000   */
                    /*        UserVisible : 01     */
                    /*               Dock : 00     */
                    /*                Lid : 00     */
                    /*              Panel : 04     */
                    /*   VerticalPosition : 02     */
                    /* HorizontalPosition : 02     */
                    /*              Shape : 07     */
                    /*   GroupOrientation : 00     */
                    /*         GroupToken : 00     */
                    /*      GroupPosition : 00     */
                    /*                Bay : 00     */
                    /*          Ejectable : 00     */
                    /*  OspmEjectRequired : 00     */
                    /*      CabinetNumber : 00     */
                    /*     CardCageNumber : 00     */
                    /*          Reference : 00     */
                    /*           Rotation : 00     */
                    /*              Order : 00     */
                    /*     VerticalOffset : FFFF   */
                    /*   HorizontalOffset : FFFF   */
                }
            })
        }
    }

    Scope (_SB.PCI0)
    {
        Device (AC0)
        {
            Name (_HID, "ACPI0003")  // _HID: Hardware ID
            Name (XBUF, Buffer (0x03) {})
            Method (_PSR, 0, NotSerialized)  // _PSR: Power Source
            {
                CreateWordField (XBUF, Zero, SSZE)
                CreateByteField (XBUF, 0x02, ACST)
                Store (0x03, SSZE)
                Store (^^SBRG.HEC.ACAP (), Local0)
                If (Local0)
                {
                    ^^VGA.AFN4 (One)
                    Store (Zero, ACST)
                }
                Else
                {
                    ^^VGA.AFN4 (0x02)
                    Store (One, ACST)
                }

                ALIB (One, XBUF)
                Return (^^SBRG.HEC.ACAP ())
            }

            Name (_PCL, Package (0x01)  // _PCL: Power Consumer List
            {
                PCI0
            })
        }
    }

    Scope (_SB.PCI0.SBRG.HEC)
    {
        Method (ACAP, 0, Serialized)
        {
            Return (\WMI0.ACPF)
        }
    }

    Scope (_SB.PCI0)
    {
        Device (BAT0)
        {
            Name (_HID, EisaId ("PNP0C0A"))  // _HID: Hardware ID
            Name (_UID, Zero)  // _UID: Unique ID
            Name (_PCL, Package (0x01)  // _PCL: Power Consumer List
            {
                PCI0
            })
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (\WMI0.B0DP)
                {
                    If (^^SBRG.HEC.BATP (Zero))
                    {
                        Return (0x1F)
                    }
                    Else
                    {
                        Return (0x0F)
                    }
                }
                Else
                {
                    Return (Zero)
                }
            }

            Name (LOW2, 0x012C)
            Name (DVOT, 0x0E)
            Name (PUNT, One)
            Name (LFCC, 0x1770)
            Name (NBIF, Package (0x0D)
            {
                Zero, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                One, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                "", 
                "", 
                "", 
                ""
            })
            Name (PBIF, Package (0x0D)
            {
                One, 
                0x1770, 
                0x1770, 
                One, 
                0x39D0, 
                0x0258, 
                0x012C, 
                0x3C, 
                0x3C, 
                "M3N", 
                "  ", 
                "LIon", 
                "ASUS"
            })
            Name (NBIX, Package (0x14)
            {
                One, 
                One, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                One, 
                0xFFFFFFFF, 
                0xFA, 
                0x96, 
                Zero, 
                0x00100000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x0A, 
                0x19, 
                "M3N", 
                " ", 
                "LIon", 
                "ASUS"
            })
            Name (PBIX, Package (0x14)
            {
                One, 
                One, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                One, 
                0xFFFFFFFF, 
                0xFA, 
                0x96, 
                Zero, 
                0x00100000, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0x0A, 
                0x19, 
                "M3N", 
                " ", 
                "LIon", 
                "ASUS"
            })
            Name (PBST, Package (0x04)
            {
                Zero, 
                0xFFFFFFFF, 
                0xFFFFFFFF, 
                0xFFFFFFFF
            })
            Method (FBIF, 5, NotSerialized)
            {
                Store (Arg0, PUNT)
                Store (Arg1, Local1)
                Store (Arg2, Local2)
                If (LEqual (PUNT, Zero))
                {
                    Multiply (Local1, 0x0A, Local1)
                    Multiply (Local2, 0x0A, Local2)
                }

                Store (Arg0, Index (PBIF, Zero))
                Store (Local1, Index (PBIF, One))
                Store (Local2, Index (PBIF, 0x02))
                Store (Local2, LFCC)
                Store (Arg3, Index (PBIF, 0x03))
                Store (Arg4, Index (PBIF, 0x04))
                If (LLess (OSFG, OSVT))
                {
                    Divide (Local1, 0x64, Local3, Local5)
                }
                Else
                {
                    Divide (Local2, 0x64, Local3, Local5)
                }

                Multiply (Local5, 0x0A, Local6)
                Store (Local6, Index (PBIF, 0x05))
                Multiply (Local5, One, Local6)
                Store (Local6, Index (PBIF, 0x06))
                Store (Local6, LOW2)
                Divide (Local1, 0x64, Local3, Local7)
                Store (Local7, Index (PBIF, 0x07))
                Store (Local7, Index (PBIF, 0x08))
            }

            Method (CBIF, 0, NotSerialized)
            {
                If (PUNT)
                {
                    Store (DerefOf (Index (PBIF, 0x04)), Local0)
                    Add (Local0, 0x01F4, Local0)
                    Divide (Local0, 0x03E8, Local1, DVOT)
                    Store (Zero, Index (PBIF, Zero))
                    Multiply (DerefOf (Index (PBIF, One)), DVOT, Index (PBIF, One
                        ))
                    Multiply (DerefOf (Index (PBIF, 0x02)), DVOT, Index (PBIF, 0x02
                        ))
                    Multiply (DerefOf (Index (PBIF, 0x05)), DVOT, Index (PBIF, 0x05
                        ))
                    Multiply (DerefOf (Index (PBIF, 0x06)), DVOT, Index (PBIF, 0x06
                        ))
                    Multiply (DerefOf (Index (PBIF, 0x07)), DVOT, Index (PBIF, 0x07
                        ))
                    Multiply (DerefOf (Index (PBIF, 0x08)), DVOT, Index (PBIF, 0x08
                        ))
                }
            }

            Method (_BIF, 0, Serialized)  // _BIF: Battery Information
            {
                If (LNot (^^SBRG.HEC.BATP (Zero)))
                {
                    Return (NBIF)
                }

                If (LEqual (^^SBRG.HEC.GBTT (Zero), 0xFF))
                {
                    Return (NBIF)
                }

                BATS (Zero)
                Store (^^SBRG.HEC.BIF9 (), Index (PBIF, 0x09))
                Store (ONAM, Index (PBIF, 0x0C))
                Store (^^SBRG.HEC.BIF0 (), Local0)
                Store (^^SBRG.HEC.BIF1 (), Local1)
                Store (^^SBRG.HEC.BIF2 (), Local2)
                Store (^^SBRG.HEC.BIF3 (), Local3)
                Store (^^SBRG.HEC.BIF4 (), Local4)
                If (LNotEqual (Local0, Ones))
                {
                    If (LNotEqual (Local1, Ones))
                    {
                        If (LNotEqual (Local2, Ones))
                        {
                            If (LNotEqual (Local3, Ones))
                            {
                                If (LNotEqual (Local4, Ones))
                                {
                                    FBIF (Local0, Local1, Local2, Local3, Local4)
                                    CBIF ()
                                }
                            }
                        }
                    }
                }

                If (LEqual (PUNT, Zero))
                {
                    Multiply (Local2, 0x0A, Local2)
                }

                Store (Local2, LFCC)
                Return (PBIF)
            }

            Method (_BIX, 0, NotSerialized)  // _BIX: Battery Information Extended
            {
                If (LNot (^^SBRG.HEC.BATP (Zero)))
                {
                    Return (NBIX)
                }

                If (LEqual (^^SBRG.HEC.GBTT (Zero), 0xFF))
                {
                    Return (NBIX)
                }

                _BIF ()
                Store (Zero, Index (PBIX, Zero))
                Store (DerefOf (Index (PBIF, Zero)), Index (PBIX, One))
                Store (DerefOf (Index (PBIF, One)), Index (PBIX, 0x02))
                Store (DerefOf (Index (PBIF, 0x02)), Index (PBIX, 0x03))
                Store (DerefOf (Index (PBIF, 0x03)), Index (PBIX, 0x04))
                Store (DerefOf (Index (PBIF, 0x04)), Index (PBIX, 0x05))
                Store (DerefOf (Index (PBIF, 0x05)), Index (PBIX, 0x06))
                Store (DerefOf (Index (PBIF, 0x06)), Index (PBIX, 0x07))
                Store (0x1000, Index (PBIX, 0x08))
                Store (0x00080000, Index (PBIX, 0x09))
                Store (0xFFFFFFFF, Index (PBIX, 0x0A))
                Store (0xFFFFFFFF, Index (PBIX, 0x0B))
                Store (0xEA60, Index (PBIX, 0x0C))
                Store (0xEA60, Index (PBIX, 0x0D))
                Store (DerefOf (Index (PBIF, 0x07)), Index (PBIX, 0x0E))
                Store (DerefOf (Index (PBIF, 0x08)), Index (PBIX, 0x0F))
                Store (DerefOf (Index (PBIF, 0x09)), Index (PBIX, 0x10))
                Store (DerefOf (Index (PBIF, 0x0A)), Index (PBIX, 0x11))
                Store (DerefOf (Index (PBIF, 0x0B)), Index (PBIX, 0x12))
                Store (DerefOf (Index (PBIF, 0x0C)), Index (PBIX, 0x13))
                Return (PBIX)
            }

            Method (FBST, 4, NotSerialized)
            {
                And (Arg1, 0xFFFF, Local1)
                Store (Zero, Local0)
                If (^^SBRG.HEC.ACAP ())
                {
                    Store (One, Local0)
                }

                If (Local0)
                {
                    If (CHGS (Zero))
                    {
                        Store (0x02, Local0)
                    }
                    Else
                    {
                        Store (One, Local0)
                    }
                }
                Else
                {
                    Store (One, Local0)
                }

                And (Arg0, 0x0300, Local2)
                If (Local2)
                {
                    ShiftLeft (One, 0x02, Local2)
                    Or (Local0, Local2, Local0)
                }

                If (LGreaterEqual (Local1, 0x8000))
                {
                    Subtract (0xFFFF, Local1, Local1)
                }

                Store (Arg2, Local2)
                If (LEqual (PUNT, Zero))
                {
                    Multiply (Local1, DVOT, Local1)
                    Multiply (Local2, 0x0A, Local2)
                }

                And (Local0, 0x02, Local3)
                If (LNot (Local3))
                {
                    Subtract (LFCC, Local2, Local3)
                    Divide (LFCC, 0xC8, Local4, Local5)
                    If (LLess (Local3, Local5))
                    {
                        Store (LFCC, Local2)
                    }
                }
                Else
                {
                    Divide (LFCC, 0xC8, Local4, Local5)
                    Subtract (LFCC, Local5, Local4)
                    If (LGreater (Local2, Local4))
                    {
                        Store (Local4, Local2)
                    }
                }

                If (LNot (^^SBRG.HEC.ACAP ()))
                {
                    Divide (Local2, MBLF, Local3, Local4)
                    If (LLess (Local1, Local4))
                    {
                        Store (Local4, Local1)
                    }
                }

                Store (Local0, Index (PBST, Zero))
                Store (Local1, Index (PBST, One))
                Store (Local2, Index (PBST, 0x02))
                Store (Arg3, Index (PBST, 0x03))
            }

            Method (CBST, 0, NotSerialized)
            {
                If (PUNT)
                {
                    Multiply (DerefOf (Index (PBST, One)), DVOT, Index (PBST, One
                        ))
                    Multiply (DerefOf (Index (PBST, 0x02)), DVOT, Index (PBST, 0x02
                        ))
                }
            }

            Method (_BST, 0, Serialized)  // _BST: Battery Status
            {
                Store (Zero, Index (PBST, Zero))
                Store (Ones, Index (PBST, One))
                Store (Ones, Index (PBST, 0x02))
                Store (Ones, Index (PBST, 0x03))
                If (LNot (^^SBRG.HEC.BATP (Zero)))
                {
                    Return (PBST)
                }

                If (LEqual (^^SBRG.HEC.GBTT (Zero), 0xFF))
                {
                    Return (PBST)
                }

                If (MES4)
                {
                    Decrement (MES4)
                    Return (PBST)
                }

                BATS (Zero)
                Store (^^SBRG.HEC.BSTS (), Local0)
                Store (^^SBRG.HEC.BCRT (), Local1)
                Store (^^SBRG.HEC.BRCP (), Local2)
                Store (^^SBRG.HEC.BVOT (), Local3)
                BATR ()
                If (LNotEqual (Local0, Ones))
                {
                    If (LNotEqual (Local1, Ones))
                    {
                        If (LNotEqual (Local2, Ones))
                        {
                            If (LNotEqual (Local3, Ones))
                            {
                                FBST (Local0, Local1, Local2, Local3)
                                CBST ()
                            }
                        }
                    }
                }

                Return (PBST)
            }
        }
    }

    Scope (_SB.PCI0)
    {
        Name (B0CR, Zero)
        Name (B1CR, Zero)
        Method (GGCC, 1, Serialized)
        {
            BATS (Arg0)
            Store (^SBRG.HEC.BCRT (), Local0)
            BATR ()
            If (LEqual (Local0, Ones))
            {
                If (Arg0)
                {
                    Store (B1CR, Local0)
                }
                Else
                {
                    Store (B0CR, Local0)
                }
            }

            And (Local0, 0x8000, Local1)
            If (Local1)
            {
                Store (Zero, Local0)
            }

            If (Arg0)
            {
                Store (Local0, B1CR)
            }
            Else
            {
                Store (Local0, B0CR)
            }

            Return (Local0)
        }
    }

    Scope (_SB.PCI0.SBRG.HEC)
    {
        Name (BADR, 0x0B)
        Name (CADR, 0x09)
        Name (SADR, 0x0A)
        Method (BIF0, 0, Serialized)
        {
            If (ECAV ())
            {
                If (LNotEqual (Acquire (MUEC, 0xFFFF), Zero))
                {
                    Return (Ones)
                }

                If (BSLF)
                {
                    Store (B1MD, Local0)
                }
                Else
                {
                    Store (B0MD, Local0)
                }

                If (LNotEqual (Local0, 0xFFFF))
                {
                    ShiftRight (Local0, 0x0F, Local1)
                    And (Local1, One, Local1)
                    XOr (Local1, One, Local0)
                }

                Release (MUEC)
            }
            Else
            {
                Store (Ones, Local0)
            }

            Return (Local0)
        }

        Method (BIF1, 0, Serialized)
        {
            If (ECAV ())
            {
                If (LNotEqual (Acquire (MUEC, 0xFFFF), Zero))
                {
                    Store (Ones, Local0)
                    Return (Local0)
                }

                If (BSLF)
                {
                    Store (B1DC, Local0)
                }
                Else
                {
                    Store (B0DC, Local0)
                }

                And (Local0, 0xFFFF, Local0)
                Release (MUEC)
            }
            Else
            {
                Store (Ones, Local0)
            }

            Return (Local0)
        }

        Method (BIF2, 0, Serialized)
        {
            If (ECAV ())
            {
                If (LNotEqual (Acquire (MUEC, 0xFFFF), Zero))
                {
                    Return (Ones)
                }

                If (BSLF)
                {
                    Store (B1FC, Local0)
                }
                Else
                {
                    Store (B0FC, Local0)
                }

                And (Local0, 0xFFFF, Local0)
                Release (MUEC)
            }
            Else
            {
                Store (Ones, Local0)
            }

            Return (Local0)
        }

        Method (BIF3, 0, Serialized)
        {
            If (ECAV ())
            {
                If (LNotEqual (Acquire (MUEC, 0xFFFF), Zero))
                {
                    Return (Ones)
                }

                If (BSLF)
                {
                    Store (B1MD, Local0)
                }
                Else
                {
                    Store (B0MD, Local0)
                }

                If (LNotEqual (Local0, 0xFFFF))
                {
                    ShiftRight (Local0, 0x09, Local0)
                    And (Local0, One, Local0)
                    XOr (Local0, One, Local0)
                }

                Release (MUEC)
            }
            Else
            {
                Store (Ones, Local0)
            }

            Return (Local0)
        }

        Method (BIF4, 0, Serialized)
        {
            If (ECAV ())
            {
                If (LNotEqual (Acquire (MUEC, 0xFFFF), Zero))
                {
                    Return (Ones)
                }

                If (BSLF)
                {
                    Store (B1DV, Local0)
                }
                Else
                {
                    Store (B0DV, Local0)
                }

                Release (MUEC)
            }
            Else
            {
                Store (Ones, Local0)
            }

            Return (Local0)
        }

        Method (BIF9, 0, NotSerialized)
        {
            Name (BSTR, Buffer (0x20) {})
            Store (SMBR (RDBL, BADR, 0x21), Local0)
            If (LNotEqual (DerefOf (Index (Local0, Zero)), Zero))
            {
                Store (\WMI0.MNAM, BSTR)
                Store (Zero, Index (BSTR, 0x04))
            }
            Else
            {
                Store (DerefOf (Index (Local0, 0x02)), BSTR)
                Store (Zero, Index (BSTR, DerefOf (Index (Local0, One))))
            }

            Return (BSTR)
        }

        Method (BIFA, 0, Serialized)
        {
            If (ECAV ())
            {
                If (LNotEqual (Acquire (MUEC, 0xFFFF), Zero))
                {
                    Return (Ones)
                }

                If (BSLF)
                {
                    Store (B1SN, Local0)
                }
                Else
                {
                    Store (B0SN, Local0)
                }

                Release (MUEC)
            }
            Else
            {
                Store (Ones, Local0)
            }

            Return (Local0)
        }

        Method (BSTS, 0, Serialized)
        {
            If (ECAV ())
            {
                If (LNotEqual (Acquire (MUEC, 0xFFFF), Zero))
                {
                    Return (Ones)
                }

                If (BSLF)
                {
                    Store (B1ST, Local0)
                }
                Else
                {
                    Store (B0ST, Local0)
                }

                Release (MUEC)
            }
            Else
            {
                Store (Ones, Local0)
            }

            Return (Local0)
        }

        Method (BCRT, 0, Serialized)
        {
            If (ECAV ())
            {
                If (LNotEqual (Acquire (MUEC, 0xFFFF), Zero))
                {
                    Return (Ones)
                }

                If (BSLF)
                {
                    Store (B1CC, Local0)
                }
                Else
                {
                    Store (B0CC, Local0)
                }

                Release (MUEC)
            }
            Else
            {
                Store (Ones, Local0)
            }

            Return (Local0)
        }

        Method (BRCP, 0, Serialized)
        {
            If (ECAV ())
            {
                If (LNotEqual (Acquire (MUEC, 0xFFFF), Zero))
                {
                    Return (Ones)
                }

                If (BSLF)
                {
                    Store (B1RC, Local0)
                }
                Else
                {
                    Store (B0RC, Local0)
                }

                If (LEqual (Local0, 0xFFFF))
                {
                    Store (Ones, Local0)
                }

                Release (MUEC)
            }
            Else
            {
                Store (Ones, Local0)
            }

            Return (Local0)
        }

        Method (BVOT, 0, Serialized)
        {
            If (ECAV ())
            {
                If (LNotEqual (Acquire (MUEC, 0xFFFF), Zero))
                {
                    Return (Ones)
                }

                If (BSLF)
                {
                    Store (B1VL, Local0)
                }
                Else
                {
                    Store (B0VL, Local0)
                }

                Release (MUEC)
            }
            Else
            {
                Store (Ones, Local0)
            }

            Return (Local0)
        }
    }

    Scope (\)
    {
        Method (CHGS, 1, Serialized)
        {
            Store (\_SB.PCI0.SBRG.HEC.BCHG (Arg0), Local0)
            Return (Local0)
        }

        Name (BSLF, Zero)
        Method (BATS, 1, Serialized)
        {
            If (Arg0)
            {
                Store (One, BSLF)
            }
            Else
            {
                Store (Zero, BSLF)
            }
        }

        Method (BATR, 0, Serialized)
        {
        }
    }

    Scope (_SB.PCI0.SBRG.HEC)
    {
        Method (_QA1, 0, NotSerialized)  // _Qxx: EC Query
        {
            Store (DCPS (Zero), \WMI0.DCPF)
            If (\WMI0.DCPF)
            {
                Sleep (0x07D0)
            }

            Notify (BAT0, 0x80)
            Notify (BAT0, 0x81)
        }

        Method (BATP, 1, Serialized)
        {
            If (LNot (And (RRAM (0x0620), 0x80)))
            {
                Return (Zero)
            }

            If (Arg0)
            {
                Return (\WMI0.DCP2)
            }
            Else
            {
                Return (\WMI0.DCPF)
            }
        }

        Method (NBAT, 1, NotSerialized)
        {
            If (BATP (Zero))
            {
                Notify (BAT0, Arg0)
            }
        }
    }

    Scope (\)
    {
        Name (MES4, Zero)
        Method (OEMS, 1, NotSerialized)
        {
            SBRS (Arg0)
            \_SB.PCI0.SBRG.HEC.EC0S (Arg0)
            Store (Arg0, \WMI0.SLPN)
            Store (Arg0, \WMI0.SLPT)
            DIAG (Add (Arg0, 0xD0))
            If (Arg0)
            {
                STRP (One)
            }

            PRJS (Arg0)
            ISMI (0x9D)
        }

        Method (OEMW, 1, NotSerialized)
        {
            ISMI (0x9E)
            Store (Zero, \WMI0.SLPT)
            \_SB.PCI0.SBRG.HEC.EC0W (Arg0)
            If (LEqual (Arg0, 0x03)) {}
            SBRW (Arg0)
            If (LEqual (Arg0, 0x04))
            {
                Notify (\_SB.SLPB, 0x02)
            }

            PRJW (Arg0)
            DIAG (Add (Arg0, 0xF0))
        }
    }

    Scope (_SB.ATKD)
    {
        Method (AGFN, 1, Serialized)
        {
            If (LEqual (Arg0, Zero))
            {
                Return (\WMI0.GNBF)
            }

            Store (AGFB (Arg0), Local0)
            Store (And (ShiftRight (Local0, 0x10), 0xFFFF), Local1)
            And (Local0, 0xFFFF, Local0)
            Store (GLEN (Arg0), Local2)
            If (LEqual (Local0, One))
            {
                GVER (Arg0, Local2)
                And (STAS, 0xFE, STAS)
            }

            If (LEqual (Local0, 0x02))
            {
                BSMI (Arg0)
                And (STAS, 0xFE, STAS)
            }

            AGLN (Arg0, Local0, Local1, Local2)
            OperationRegion (\PARM, SystemMemory, Arg0, 0x08)
            Field (PARM, DWordAcc, NoLock, Preserve)
            {
                Offset (0x06), 
                STAS,   8, 
                EROR,   8
            }

            If (LEqual (STAS, One))
            {
                Store (One, EROR)
                Or (STAS, 0x02, STAS)
            }

            And (STAS, 0xFE, STAS)
            Or (STAS, 0x80, STAS)
            Return (Zero)
        }

        Method (AGFB, 1, NotSerialized)
        {
            OperationRegion (\PAR, SystemMemory, Arg0, 0x08)
            Field (PAR, DWordAcc, NoLock, Preserve)
            {
                FUNC,   32, 
                Offset (0x06), 
                STAS,   8, 
                EROR,   8
            }

            Store (Zero, EROR)
            Store (One, STAS)
            Return (FUNC)
        }

        Method (GLEN, 1, NotSerialized)
        {
            OperationRegion (\PARL, SystemMemory, Arg0, 0x08)
            Field (PARL, DWordAcc, NoLock, Preserve)
            {
                Offset (0x04), 
                LEN,    16
            }

            Return (LEN)
        }

        Method (GVER, 2, NotSerialized)
        {
            OperationRegion (\FGVR, SystemMemory, Arg0, Arg1)
            Field (FGVR, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                APID,   16, 
                APRV,   32
            }

            If (LLess (Arg1, 0x0E))
            {
                Return (0x02)
            }

            If (And (APID, One))
            {
                ^^PCI0.SBRG.HEC.PKEN (One)
            }
            Else
            {
                ^^PCI0.SBRG.HEC.PKEN (Zero)
            }

            Return (Zero)
        }

        Method (GENS, 1, NotSerialized)
        {
        }

        Method (GENW, 1, NotSerialized)
        {
            Store (Zero, \WMI0.RTCW)
        }

        Method (BSMI, 1, Serialized)
        {
            Store (Arg0, \WMI0.BIPA)
            ISMI (0xA1)
        }
    }

    Scope (_SB.ATKD)
    {
        Method (MF1X, 4, NotSerialized)
        {
            If (LNotEqual (And (Arg1, 0xF0), 0x10))
            {
                Return (Zero)
            }

            OperationRegion (FM1X, SystemMemory, Arg0, 0x08)
            Field (FM1X, DWordAcc, NoLock, Preserve)
            {
                Offset (0x06), 
                SM1X,   8, 
                EM1X,   8
            }

            Store (One, Local0)
            If (LEqual (Arg1, 0x10))
            {
                Store (MF10 (Arg0, Arg3, Arg2), Local0)
            }

            If (LEqual (Arg1, 0x11))
            {
                Store (MF11 (Arg0, Arg3, Arg2), Local0)
            }

            If (LEqual (Arg1, 0x12))
            {
                Store (MF12 (Arg0, Arg3, Arg2), Local0)
            }

            If (LEqual (Arg1, 0x13))
            {
                Store (MF13 (Arg0, Arg3, Arg2), Local0)
            }

            If (LEqual (Arg1, 0x14))
            {
                Store (MF14 (Arg0, Arg3, Arg2), Local0)
            }

            If (LEqual (Arg1, 0x15))
            {
                Store (MF15 (Arg0, Arg3, Arg2), Local0)
            }

            If (LEqual (Arg1, 0x16))
            {
                Store (MF16 (Arg0, Arg3, Arg2), Local0)
            }

            If (LEqual (Arg1, 0x17))
            {
                Store (MF17 (Arg0, Arg3, Arg2), Local0)
            }

            If (LEqual (Arg1, 0x18))
            {
                Store (MF18 (Arg0, Arg3, Arg2), Local0)
            }

            If (LEqual (Arg1, 0x19))
            {
                Store (MF19 (Arg0, Arg3, Arg2), Local0)
            }

            If (LEqual (Arg1, 0x1A))
            {
                Store (MF1A (Arg0, Arg3, Arg2), Local0)
            }

            And (SM1X, 0xFE, SM1X)
            If (Local0)
            {
                Store (Local0, EM1X)
                Or (SM1X, 0x02, SM1X)
            }

            Or (SM1X, 0x80, SM1X)
            Return (Zero)
        }

        Method (MF10, 3, NotSerialized)
        {
            Store (One, Local0)
            If (LEqual (Arg2, Zero))
            {
                Store (G10V (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, One))
            {
                Store (SRTC (Arg0, Arg1), Local0)
            }

            Return (Local0)
        }

        Method (G10V, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0C))
            {
                Return (0x02)
            }

            OperationRegion (\F100, SystemMemory, Arg0, Arg1)
            Field (F100, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                SVER,   16, 
                MVER,   16
            }

            Store (Zero, MVER)
            Store (Zero, SVER)
            Return (Zero)
        }

        Method (SRTC, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0C))
            {
                Return (0x02)
            }

            OperationRegion (\F101, SystemMemory, Arg0, Arg1)
            Field (F101, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                DLTM,   16
            }

            Store (DLTM, \WMI0.RTCW)
            Return (Zero)
        }

        Method (MF11, 3, NotSerialized)
        {
            Store (One, Local0)
            If (LEqual (Arg2, Zero))
            {
                Store (G11V (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, One))
            {
                Store (GBAT (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x02))
            {
                Store (ASBR (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x03))
            {
                Store (ASBE (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x04))
            {
                Store (BTCR (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x80))
            {
                Store (GTSB (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x81))
            {
                Store (GPST (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x82))
            {
                Store (SBSM (Arg0, Arg1), Local0)
            }

            Return (Local0)
        }

        Method (G11V, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0C))
            {
                Return (0x02)
            }

            OperationRegion (\F110, SystemMemory, Arg0, Arg1)
            Field (F110, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                SVER,   16, 
                MVER,   16
            }

            Store (Zero, MVER)
            Store (Zero, SVER)
            Return (Zero)
        }

        Method (GBAT, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0A))
            {
                Return (0x02)
            }

            OperationRegion (\F111, SystemMemory, Arg0, Arg1)
            Field (F111, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                BTNM,   8, 
                BTTP,   8
            }

            Store (One, BTNM)
            Store (Zero, BTTP)
            Return (Zero)
        }

        Method (ASBR, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x30))
            {
                Return (0x02)
            }

            OperationRegion (\F112, SystemMemory, Arg0, Arg1)
            Field (F112, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                BATN,   8, 
                BATA,   8, 
                REGS,   8, 
                BDAT,   16, 
                BLEN,   8, 
                BREV,   16, 
                BLK1,   32, 
                BLK2,   32, 
                BLK3,   32, 
                BLK4,   32, 
                BLK5,   32, 
                BLK6,   32, 
                BLK7,   32, 
                BLK8,   32
            }

            If (LGreaterEqual (BATN, One))
            {
                Return (0x11)
            }

            If (LEqual (BATA, Zero))
            {
                Store (^^PCI0.SBRG.HEC.SMBR (^^PCI0.SBRG.HEC.RDWD, ^^PCI0.SBRG.HEC.BADR, REGS), Local0)
                Store (DerefOf (Index (Local0, 0x02)), BDAT)
                Store (DerefOf (Index (Local0, Zero)), Local2)
                And (Local2, 0x1F, Local2)
                If (Local2)
                {
                    Add (Local2, 0x10, Local2)
                }

                Return (Local2)
            }

            If (LEqual (BATA, One))
            {
                Store (^^PCI0.SBRG.HEC.SMBW (^^PCI0.SBRG.HEC.WRWD, ^^PCI0.SBRG.HEC.BADR, REGS, 0x02, BDAT), Local0)
                Store (DerefOf (Index (Local0, Zero)), Local2)
                And (Local2, 0x1F, Local2)
                If (Local2)
                {
                    Add (Local2, 0x10, Local2)
                }

                Return (Local2)
            }

            If (LEqual (BATA, 0x02))
            {
                Store (^^PCI0.SBRG.HEC.SMBR (^^PCI0.SBRG.HEC.RDBL, ^^PCI0.SBRG.HEC.BADR, REGS), Local0)
                Store (DerefOf (Index (Local0, 0x02)), BKUF)
                Store (DerefOf (Index (Local0, One)), BLEN)
                Store (DerefOf (Index (Local0, Zero)), Local2)
                Name (BKUF, Buffer (0x20) {})
                CreateDWordField (BKUF, Zero, DAT1)
                CreateDWordField (BKUF, 0x04, DAT2)
                CreateDWordField (BKUF, 0x08, DAT3)
                CreateDWordField (BKUF, 0x0C, DAT4)
                CreateDWordField (BKUF, 0x10, DAT5)
                CreateDWordField (BKUF, 0x14, DAT6)
                CreateDWordField (BKUF, 0x18, DAT7)
                CreateDWordField (BKUF, 0x1C, DAT8)
                Store (DAT1, BLK1)
                Store (DAT2, BLK2)
                Store (DAT3, BLK3)
                Store (DAT4, BLK4)
                Store (DAT5, BLK5)
                Store (DAT6, BLK6)
                Store (DAT7, BLK7)
                Store (DAT8, BLK8)
                And (Local2, 0x1F, Local2)
                If (Local2)
                {
                    Add (Local2, 0x10, Local2)
                }

                Return (Local2)
            }

            Return (0x10)
        }

        Method (ASBE, 2, Serialized)
        {
            If (LLess (Arg1, 0x0C))
            {
                Return (0x02)
            }

            OperationRegion (\F113, SystemMemory, Arg0, Arg1)
            Field (F113, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                BATN,   8, 
                BATA,   8, 
                REGS,   8, 
                BDAT,   8
            }

            If (LGreater (BATN, One))
            {
                Return (0x11)
            }

            If (LEqual (BATA, Zero))
            {
                Store (^^PCI0.SBRG.HEC.RBEP (REGS), Local2)
                And (Local2, 0xFF, Local3)
                Store (Local3, BDAT)
                ShiftRight (Local2, 0x08, Local2)
                And (Local2, 0x1F, Local2)
                If (Local2)
                {
                    Add (Local2, 0x10, Local2)
                }

                Return (Local2)
            }

            If (LEqual (BATA, One))
            {
                Store (^^PCI0.SBRG.HEC.WBEP (REGS, BDAT), Local2)
                And (Local2, 0x1F, Local2)
                If (Local2)
                {
                    Add (Local2, 0x10, Local2)
                }

                Return (Local2)
            }

            Return (0x10)
        }

        Method (BTCR, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x09))
            {
                Return (0x02)
            }

            OperationRegion (\F114, SystemMemory, Arg0, Arg1)
            Field (F114, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                BCDC,   8
            }

            SBTL (BCDC)
            Return (Zero)
        }

        Method (GTSB, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0F))
            {
                Return (0x02)
            }

            OperationRegion (\F118, SystemMemory, Arg0, Arg1)
            Field (F118, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                BAST,   16
            }

            Store (^^PCI0.SBRG.HEC.SMBR (^^PCI0.SBRG.HEC.RDWD, ^^PCI0.SBRG.HEC.BADR, 0x16), Local0)
            Store (DerefOf (Index (Local0, 0x02)), BAST)
            Store (DerefOf (Index (Local0, Zero)), Local1)
            And (Local1, 0x1F, Local1)
            If (Local1)
            {
                Add (Local1, 0x10, Local1)
            }

            Return (Local1)
        }

        Method (GPST, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0F))
            {
                Return (0x02)
            }

            OperationRegion (\F119, SystemMemory, Arg0, Arg1)
            Field (F119, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                SORC,   8, 
                GPCT,   8
            }

            If (Or (LEqual (SORC, Zero), LGreater (SORC, 0x03)))
            {
                Return (One)
            }

            If (LEqual (SORC, One))
            {
                Store (^^PCI0.SBRG.HEC.RPIN (0x02, 0x04), GPCT)
            }
            Else
            {
                If (LEqual (SORC, 0x02))
                {
                    Store (^^PCI0.SBRG.HEC.RPIN (0x02, 0x06), Local0)
                    If (Local0)
                    {
                        Store (Zero, GPCT)
                    }
                    Else
                    {
                        Store (One, GPCT)
                    }
                }
                Else
                {
                    If (LEqual (SORC, 0x03))
                    {
                        Store (^^PCI0.SBRG.HEC.RPIN (0x04, 0x06), Local0)
                        If (Local0)
                        {
                            Store (Zero, GPCT)
                        }
                        Else
                        {
                            Store (One, GPCT)
                        }
                    }
                }
            }

            Return (Zero)
        }

        Method (SBSM, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x10))
            {
                Return (0x02)
            }

            OperationRegion (\F1A3, SystemMemory, Arg0, Arg1)
            Field (F1A3, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                EABL,   8
            }

            If (LEqual (EABL, One))
            {
                PRJB ()
            }

            Return (Zero)
        }

        Method (MF12, 3, NotSerialized)
        {
            Store (One, Local0)
            If (LEqual (Arg2, Zero))
            {
                Store (G12V (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, One))
            {
                Store (GLDI (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x02))
            {
                Store (LDCR (Arg0, Arg1), Local0)
            }

            Return (Local0)
        }

        Method (G12V, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0C))
            {
                Return (0x02)
            }

            OperationRegion (\F120, SystemMemory, Arg0, Arg1)
            Field (F120, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                SVER,   16, 
                MVER,   16
            }

            Store (Zero, MVER)
            Store (Zero, SVER)
            Return (Zero)
        }

        Method (GLDI, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x10))
            {
                Return (0x02)
            }

            OperationRegion (\F121, SystemMemory, Arg0, Arg1)
            Field (F121, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                LDI0,   32, 
                LDI1,   32
            }

            Store (Zero, Local0)
            Or (Local0, 0x10, Local0)
            Or (Local0, 0x20, Local0)
            Store (Local0, LDI0)
            Return (Zero)
        }

        Method (LDCR, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0B))
            {
                Return (0x02)
            }

            OperationRegion (\F122, SystemMemory, Arg0, Arg1)
            Field (F122, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                LDNM,   8, 
                LCRT,   8
            }

            If (LEqual (LDNM, 0x04))
            {
                WLED (LCRT)
                Return (Zero)
            }

            Return (0x10)
        }

        Method (MF13, 3, NotSerialized)
        {
            Store (One, Local0)
            If (LEqual (Arg2, Zero))
            {
                Store (G13V (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, One))
            {
                Store (GTSI (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x02))
            {
                Store (GTSV (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x03))
            {
                Store (GVSN (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x04))
            {
                Store (GVSV (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x05))
            {
                Store (GFNN (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x06))
            {
                Store (GFNS (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x07))
            {
                Store (SFNS (Arg0, Arg1), Local0)
            }

            Return (Local0)
        }

        Method (G13V, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0C))
            {
                Return (0x02)
            }

            OperationRegion (\F130, SystemMemory, Arg0, Arg1)
            Field (F130, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                SVER,   16, 
                MVER,   16
            }

            Store (Zero, MVER)
            Store (Zero, SVER)
            Return (Zero)
        }

        Method (GTSI, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0C))
            {
                Return (0x02)
            }

            OperationRegion (\F131, SystemMemory, Arg0, Arg1)
            Field (F131, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                THRI,   32
            }

            Store (Zero, Local0)
            Or (Local0, One, Local0)
            If (LGreaterEqual (\WMI0.CPUN, One))
            {
                Or (Local0, 0x0100, Local0)
            }

            If (LGreaterEqual (\WMI0.CPUN, 0x02))
            {
                Or (Local0, 0x0200, Local0)
            }

            If (LGreaterEqual (\WMI0.CPUN, 0x03))
            {
                Or (Local0, 0x0400, Local0)
            }

            If (LGreaterEqual (\WMI0.CPUN, 0x04))
            {
                Or (Local0, 0x0800, Local0)
            }

            Store (Local0, THRI)
            Return (Zero)
        }

        Method (GTSV, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0A))
            {
                Return (0x02)
            }

            OperationRegion (\F132, SystemMemory, Arg0, Arg1)
            Field (F132, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                TSNM,   8, 
                TSVL,   8, 
                TSST,   8
            }

            Store (Zero, TSST)
            If (LEqual (TSNM, Zero))
            {
                Store (\_TZ.RTMP (), TSVL)
                Return (Zero)
            }

            If (LEqual (TSNM, 0x08))
            {
                BSMI (Arg0)
                Return (Zero)
            }

            If (LEqual (TSNM, 0x09))
            {
                BSMI (Arg0)
                Return (Zero)
            }

            If (LEqual (TSNM, 0x0A))
            {
                BSMI (Arg0)
                Return (Zero)
            }

            If (LEqual (TSNM, 0x0B))
            {
                BSMI (Arg0)
                Return (Zero)
            }

            Return (0x10)
        }

        Method (GVSN, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x09))
            {
                Return (0x02)
            }

            OperationRegion (\F133, SystemMemory, Arg0, Arg1)
            Field (F133, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                NMVS,   8
            }

            Store (Zero, NMVS)
            Return (Zero)
        }

        Method (GVSV, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0B))
            {
                Return (0x02)
            }

            OperationRegion (\F134, SystemMemory, Arg0, Arg1)
            Field (F134, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                VSNM,   8, 
                VSVL,   16
            }

            If (LGreater (VSNM, Zero))
            {
                Return (0x10)
            }

            Return (Zero)
        }

        Method (GFNN, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x09))
            {
                Return (0x02)
            }

            OperationRegion (\F135, SystemMemory, Arg0, Arg1)
            Field (F135, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                NMFN,   32
            }

            Store (One, NMFN)
            Return (Zero)
        }

        Method (GFNS, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0D))
            {
                Return (0x02)
            }

            OperationRegion (\F136, SystemMemory, Arg0, Arg1)
            Field (F136, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                FNNM,   8, 
                GFNS,   32
            }

            If (Or (LEqual (FNNM, Zero), LGreater (FNNM, One)))
            {
                Return (0x10)
            }

            Store (FNNM, Local0)
            Store (\_TZ.RFAN (Decrement (Local0)), GFNS)
            Return (Zero)
        }

        Method (SFNS, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0A))
            {
                Return (0x02)
            }

            OperationRegion (\F137, SystemMemory, Arg0, Arg1)
            Field (F137, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                FNNB,   8, 
                FNSP,   8
            }

            If (LGreater (FNNB, One))
            {
                Return (0x10)
            }

            ^^PCI0.SBRG.HEC.SFNV (FNNB, FNSP)
            Return (Zero)
        }

        Method (MF14, 3, NotSerialized)
        {
            Store (One, Local0)
            If (LEqual (Arg2, Zero))
            {
                Store (G14V (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, One))
            {
                Store (GNBT (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x02))
            {
                Store (GBTS (Arg0, Arg1), Local0)
            }

            Return (Local0)
        }

        Method (G14V, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0C))
            {
                Return (0x02)
            }

            OperationRegion (\F140, SystemMemory, Arg0, Arg1)
            Field (F140, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                SVER,   16, 
                MVER,   16
            }

            Store (Zero, MVER)
            Store (Zero, SVER)
            Return (Zero)
        }

        Method (GNBT, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x09))
            {
                Return (0x02)
            }

            OperationRegion (\F141, SystemMemory, Arg0, Arg1)
            Field (F141, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                NBBT,   8
            }

            Store (0x05, NBBT)
            Return (Zero)
        }

        Method (GBTS, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0A))
            {
                Return (0x02)
            }

            OperationRegion (\F142, SystemMemory, Arg0, Arg1)
            Field (F142, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                BTNM,   8, 
                BTST,   8
            }

            Name (BTTB, Package (0x05)
            {
                Package (0x04)
                {
                    Zero, 
                    0x0C, 
                    Zero, 
                    Zero
                }, 

                Package (0x04)
                {
                    Zero, 
                    0x0D, 
                    Zero, 
                    Zero
                }, 

                Package (0x04)
                {
                    Zero, 
                    0x0E, 
                    Zero, 
                    Zero
                }, 

                Package (0x04)
                {
                    Zero, 
                    0x0F, 
                    Zero, 
                    Zero
                }, 

                Package (0x04)
                {
                    Zero, 
                    0x15, 
                    Zero, 
                    Zero
                }
            })
            If (LGreater (BTNM, 0x05))
            {
                Return (0x10)
            }

            Store (BTNM, Local0)
            Decrement (Local0)
            Store (DerefOf (Index (BTTB, Local0)), Local1)
            If (LEqual (DerefOf (Index (Local1, 0x02)), Zero))
            {
                Store (^^PCI0.SBRG.HEC.RPIN (DerefOf (Index (Local1, Zero)), DerefOf (Index (Local1, 
                    One))), Local2)
            }

            If (LEqual (DerefOf (Index (Local1, One)), One))
            {
                Store (RGPL (DerefOf (Index (Local1, Zero)), One), Local2)
            }

            If (LEqual (DerefOf (Index (Local1, One)), 0x03)) {}
            If (LEqual (DerefOf (Index (Local1, 0x02)), Local2))
            {
                Store (Zero, BTST)
            }
            Else
            {
                Store (One, BTST)
            }

            Return (Zero)
        }

        Method (MF15, 3, NotSerialized)
        {
            Store (One, Local0)
            If (LEqual (Arg2, Zero))
            {
                Store (G15V (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, One))
            {
                Store (GLDB (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x02))
            {
                Store (SLDB (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x03))
            {
                Store (GDPI (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x04))
            {
                Store (SODP (Arg0, Arg1), Local0)
            }

            Return (Local0)
        }

        Method (G15V, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0C))
            {
                Return (0x02)
            }

            OperationRegion (\F150, SystemMemory, Arg0, Arg1)
            Field (F150, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                SVER,   16, 
                MVER,   16
            }

            Store (Zero, MVER)
            Store (Zero, SVER)
            Return (Zero)
        }

        Method (GLDB, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0A))
            {
                Return (0x02)
            }

            OperationRegion (\F151, SystemMemory, Arg0, Arg1)
            Field (F151, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                LCDB,   8, 
                MLDB,   8
            }

            Store (GPLV (), LCDB)
            Store (0x0A, MLDB)
            Return (Zero)
        }

        Method (SLDB, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0A))
            {
                Return (0x02)
            }

            OperationRegion (\F152, SystemMemory, Arg0, Arg1)
            Field (F152, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                LCDL,   8, 
                LTPE,   8
            }

            If (LEqual (LTPE, Zero))
            {
                If (LGreaterEqual (LCDL, 0x0B))
                {
                    Return (0x10)
                }

                SPLV (LCDL)
                Return (Zero)
            }

            If (LEqual (LTPE, One))
            {
                ^^PCI0.SBRG.HEC.SBRV (LCDL)
                Return (Zero)
            }

            Return (0x11)
        }

        Method (GDPI, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x10))
            {
                Return (0x02)
            }

            OperationRegion (\F153, SystemMemory, Arg0, Arg1)
            Field (F153, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                ODPI,   32, 
                ODPC,   32, 
                ODAV,   32
            }

            Store (Zero, Local0)
            Or (Local0, One, Local0)
            Or (Local0, 0x02, Local0)
            Or (Local0, 0x08, Local0)
            Or (Local0, 0x10, Local0)
            Store (Local0, ODPI)
            If (^^PCI0.VGA.PRST ())
            {
                ^^PCI0.VGA.GETD ()
                Store (\WMI0.ACTD, Local0)
                Store (^^PCI0.VGA.MD2A (Local0), ODAV)
                Store (\WMI0.AVLD, Local1)
                Store (^^PCI0.VGA.MD2A (Local1), ODPC)
            }

            Return (Zero)
        }

        Method (SODP, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0C))
            {
                Return (0x02)
            }

            OperationRegion (\F154, SystemMemory, Arg0, Arg1)
            Field (F154, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                ODPM,   32
            }

            Store (Zero, Local0)
            Or (Local0, One, Local0)
            Or (Local0, 0x02, Local0)
            Or (Local0, 0x08, Local0)
            Or (Local0, 0x10, Local0)
            And (ODPM, Local0, Local0)
            If (LEqual (Local0, ODPM))
            {
                SDSP (ODPM)
                Return (Zero)
            }

            Return (0x10)
        }

        Method (MF16, 3, NotSerialized)
        {
            Store (One, Local0)
            If (LEqual (Arg2, Zero))
            {
                Store (G16V (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, One))
            {
                BSMI (Arg0)
                Return (Zero)
            }

            If (LEqual (Arg2, 0x02))
            {
                Store (LCMD (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x03))
            {
                Store (BSFN (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x04))
            {
                Store (PSSF (Arg0, Arg1), Local0)
            }

            Return (Local0)
        }

        Method (G16V, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0C))
            {
                Return (0x02)
            }

            OperationRegion (\F160, SystemMemory, Arg0, Arg1)
            Field (F160, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                SVER,   16, 
                MVER,   16
            }

            Store (Zero, MVER)
            Store (Zero, SVER)
            Return (Zero)
        }

        Method (SFBD, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0A))
            {
                Return (0x02)
            }

            OperationRegion (\F161, SystemMemory, Arg0, Arg1)
            Field (F161, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                NXBD,   8
            }

            BSMI (Arg0)
            Return (Zero)
        }

        Method (LCMD, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0A))
            {
                Return (0x02)
            }

            BSMI (Arg0)
            Store (0xAA55, \WMI0.FRPN)
            Return (Zero)
        }

        Method (BSFN, 2, NotSerialized)
        {
            BSMI (Arg0)
            Return (Zero)
        }

        Method (PSSF, 2, NotSerialized)
        {
            BSMI (Arg0)
            Return (Zero)
        }

        Method (MF17, 3, NotSerialized)
        {
            Store (One, Local0)
            If (LEqual (Arg2, Zero))
            {
                Store (G17V (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, One))
            {
                Store (GMDL (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x02))
            {
                Store (GBSI (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x03))
            {
                Store (GECI (Arg0, Arg1), Local0)
            }

            Return (Local0)
        }

        Method (G17V, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0C))
            {
                Return (0x02)
            }

            OperationRegion (\F170, SystemMemory, Arg0, Arg1)
            Field (F170, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                SVER,   16, 
                MVER,   16
            }

            Store (Zero, MVER)
            Store (Zero, SVER)
            Return (Zero)
        }

        Method (GMDL, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x19))
            {
                Return (0x02)
            }

            OperationRegion (\F171, SystemMemory, Arg0, Arg1)
            Field (F171, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                MLEN,   8, 
                MDL1,   32, 
                MDL2,   32, 
                MDL3,   32, 
                MDL4,   32
            }

            Store (Zero, MDL1)
            Store (Zero, MDL2)
            Store (Zero, MDL3)
            Store (Zero, MDL4)
            Name (BBUF, Buffer (0x10) {})
            CreateDWordField (BBUF, Zero, DAT1)
            CreateDWordField (BBUF, 0x04, DAT2)
            CreateDWordField (BBUF, 0x08, DAT3)
            CreateDWordField (BBUF, 0x0C, DAT4)
            Store (GBMN (), Local0)
            Store (SizeOf (Local0), MLEN)
            Store (GBMN (), BBUF)
            Store (DAT1, MDL1)
            Store (DAT2, MDL2)
            Store (DAT3, MDL3)
            Store (DAT4, MDL4)
            Return (Zero)
        }

        Method (GBSI, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x19))
            {
                Return (0x02)
            }

            OperationRegion (\F172, SystemMemory, Arg0, Arg1)
            Field (F172, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                BLEN,   8, 
                BDL1,   32, 
                BDL2,   32, 
                BDL3,   32, 
                BDL4,   24, 
                YEAR,   32, 
                MON,    16, 
                DAY,    16
            }

            Store (Zero, BDL1)
            Store (Zero, BDL2)
            Store (Zero, BDL3)
            Store (Zero, BDL4)
            Name (BBUF, Buffer (0x10) {})
            CreateDWordField (BBUF, Zero, DAT1)
            CreateDWordField (BBUF, 0x04, DAT2)
            CreateDWordField (BBUF, 0x08, DAT3)
            CreateDWordField (BBUF, 0x0C, DAT4)
            Store (GBRV (), Local0)
            Store (SizeOf (Local0), BLEN)
            Store (GBRV (), BBUF)
            Store (DAT1, BDL1)
            Store (DAT2, BDL2)
            Store (DAT3, BDL3)
            Store (DAT4, BDL4)
            CreateWordField (BBUF, Zero, WRD0)
            Store ("2013", BBUF)
            Store (DAT1, YEAR)
            Store ("12", BBUF)
            Store (WRD0, MON)
            Store ("25", BBUF)
            Store (WRD0, DAY)
            Return (Zero)
        }

        Method (GECI, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x19))
            {
                Return (0x02)
            }

            OperationRegion (\F173, SystemMemory, Arg0, Arg1)
            Field (F173, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                ELEN,   8, 
                EDL1,   32, 
                EDL2,   32, 
                EDL3,   32, 
                EDL4,   32
            }

            Store (Zero, EDL1)
            Store (Zero, EDL2)
            Store (Zero, EDL3)
            Store (Zero, EDL4)
            BSMI (Arg0)
            Return (Zero)
        }

        Method (MF18, 3, NotSerialized)
        {
            Store (One, Local0)
            If (LEqual (Arg2, Zero))
            {
                Store (G18V (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, One))
            {
                Store (GDVI (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x02))
            {
                Store (GDVS (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x03))
            {
                Store (SDPW (Arg0, Arg1), Local0)
            }

            Return (Local0)
        }

        Method (G18V, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0C))
            {
                Return (0x02)
            }

            OperationRegion (\F180, SystemMemory, Arg0, Arg1)
            Field (F180, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                SVER,   16, 
                MVER,   16
            }

            Store (Zero, MVER)
            Store (Zero, SVER)
            Return (Zero)
        }

        Method (GDVI, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x18))
            {
                Return (0x02)
            }

            OperationRegion (\F181, SystemMemory, Arg0, Arg1)
            Field (F181, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                LDI0,   32, 
                LDI1,   32
            }

            Store (Zero, LDI0)
            Return (Zero)
        }

        Method (GDVS, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0A))
            {
                Return (0x02)
            }

            OperationRegion (\F182, SystemMemory, Arg0, Arg1)
            Field (F182, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                DNUM,   8, 
                DSTS,   8
            }

            ShiftLeft (One, DNUM, Local0)
            If (LEqual (And (Local0, Zero), Zero))
            {
                Return (0x10)
            }

            Return (Zero)
        }

        Method (SDPW, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0A))
            {
                Return (0x02)
            }

            OperationRegion (\F183, SystemMemory, Arg0, Arg1)
            Field (F183, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                DNUM,   8, 
                DCTR,   8
            }

            ShiftLeft (One, DNUM, Local0)
            If (LEqual (And (Local0, Zero), Zero))
            {
                Return (0x10)
            }

            If (LGreater (DCTR, One))
            {
                Return (0x11)
            }

            Return (Zero)
        }

        Method (MF19, 3, NotSerialized)
        {
            Store (One, Local0)
            If (LEqual (Arg2, Zero))
            {
                Store (G19V (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, One))
            {
                Store (ACMS (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x02))
            {
                Store (CSIN (Arg0, Arg1), Local0)
            }

            Return (Local0)
        }

        Method (G19V, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0C))
            {
                Return (0x02)
            }

            OperationRegion (\F190, SystemMemory, Arg0, Arg1)
            Field (F190, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                SVER,   16, 
                MVER,   16
            }

            Store (Zero, MVER)
            Store (Zero, SVER)
            Return (Zero)
        }

        Method (ACMS, 2, NotSerialized)
        {
            BSMI (Arg0)
            Return (Zero)
        }

        Method (CSIN, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0A))
            {
                Return (0x02)
            }

            OperationRegion (\F192, SystemMemory, Arg0, Arg1)
            Field (F192, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                CMAX,   16
            }

            Store (0xFF, CMAX)
            Return (Zero)
        }

        Method (MF1A, 3, NotSerialized)
        {
            Store (One, Local0)
            If (LEqual (Arg2, Zero))
            {
                Store (G1AV (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, One))
            {
                Store (GWDS (Arg0, Arg1), Local0)
            }

            If (LEqual (Arg2, 0x02))
            {
                Store (SWDS (Arg0, Arg1), Local0)
            }

            Return (Local0)
        }

        Method (G1AV, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0C))
            {
                Return (0x02)
            }

            OperationRegion (\F1A0, SystemMemory, Arg0, Arg1)
            Field (F1A0, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                SVER,   16, 
                MVER,   16
            }

            Store (Zero, MVER)
            Store (Zero, SVER)
            Return (Zero)
        }

        Method (GWDS, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x10))
            {
                Return (0x02)
            }

            OperationRegion (\F1A1, SystemMemory, Arg0, Arg1)
            Field (F1A1, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                WDS0,   32, 
                WDS1,   32
            }

            Store (Zero, Local0)
            Store (Zero, Local1)
            Store (Zero, Local2)
            If (^^PCI0.PE21.WLAN.MPDP ())
            {
                Or (Local0, 0x04, Local0)
            }

            Store (RGPL (0x35, One), Local1)
            If (Local1)
            {
                Or (Local0, 0x08, Local0)
            }
            Else
            {
                And (Local0, 0xFFF7, Local0)
            }

            If (\WMI0.BTDP)
            {
                Or (Local0, 0x10, Local0)
            }

            Store (RGPL (0xD2, One), Local1)
            If (Local1)
            {
                Or (Local0, 0x20, Local0)
            }
            Else
            {
                And (Local0, 0xFFDF, Local0)
            }

            If (\WMI0.WWDP)
            {
                Or (Local0, 0x40, Local0)
            }

            If (\WMI0.WMDP)
            {
                Or (Local0, 0x0100, Local0)
            }

            Store (Local0, WDS0)
            Return (Zero)
        }

        Method (SWDS, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0A))
            {
                Return (0x02)
            }

            OperationRegion (\F1A2, SystemMemory, Arg0, Arg1)
            Field (F1A2, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                SWD0,   8, 
                SWD1,   8
            }

            Store (SWD0, Local0)
            And (Local0, One, Local1)
            ShiftRight (Local1, Zero, Local1)
            OWLD (Local1)
            And (Local0, 0x02, Local1)
            ShiftRight (Local1, One, Local1)
            OBTD (Local1)
            Return (Zero)
        }
    }

    Scope (_SB.ATKD)
    {
        Method (AGLN, 4, NotSerialized)
        {
            CPUX (Arg0, Arg1, Arg2, Arg3)
            MF1X (Arg0, Arg1, Arg2, Arg3)
            ^^PCI0.SBRG.HEC.MF63 (Arg0, Arg1, Arg2, Arg3)
            ^^PCI0.SBRG.HEC.MF30 (Arg0, Arg1, Arg2, Arg3)
            MF42 (Arg0, Arg1, Arg2, Arg3)
            MF1F (Arg0, Arg1, Arg2, Arg3)
        }
    }

    Scope (_SB.ATKD)
    {
        Method (GBRV, 0, NotSerialized)
        {
            Store ("209", Local0)
            Return (Local0)
        }

        Method (GBMN, 0, NotSerialized)
        {
            Store ("X550DP", Local0)
            Return (Local0)
        }
    }

    Scope (WMI0)
    {
        Name (_WDG, Buffer (0x01B8)
        {
            /* 0000 */   0x00, 0x24, 0x14, 0x39, 0xA3, 0xC6, 0xFA, 0x40,
            /* 0008 */   0xBA, 0xDB, 0x8A, 0x26, 0x52, 0x83, 0x41, 0x00,
            /* 0010 */   0x30, 0x30, 0x01, 0x01, 0x00, 0x24, 0x14, 0x49,
            /* 0018 */   0xA3, 0xC6, 0xFA, 0x40, 0xBA, 0xDB, 0x8A, 0x26,
            /* 0020 */   0x52, 0x83, 0x41, 0x00, 0x30, 0x31, 0x01, 0x01,
            /* 0028 */   0x00, 0x24, 0x14, 0x4A, 0xA3, 0xC6, 0xFA, 0x40,
            /* 0030 */   0xBA, 0xDB, 0x8A, 0x26, 0x52, 0x83, 0x41, 0x00,
            /* 0038 */   0x30, 0x32, 0x01, 0x01, 0x01, 0x24, 0x14, 0x49,
            /* 0040 */   0xA3, 0xC6, 0xFA, 0x40, 0xBA, 0xDB, 0x8A, 0x26,
            /* 0048 */   0x52, 0x83, 0x41, 0x00, 0x31, 0x31, 0x01, 0x01,
            /* 0050 */   0x01, 0x24, 0x14, 0x4A, 0xA3, 0xC6, 0xFA, 0x40,
            /* 0058 */   0xBA, 0xDB, 0x8A, 0x26, 0x52, 0x83, 0x41, 0x00,
            /* 0060 */   0x31, 0x32, 0x01, 0x01, 0x02, 0x24, 0x14, 0x49,
            /* 0068 */   0xA3, 0xC6, 0xFA, 0x40, 0xBA, 0xDB, 0x8A, 0x26,
            /* 0070 */   0x52, 0x83, 0x41, 0x00, 0x32, 0x31, 0x01, 0x01,
            /* 0078 */   0x02, 0x24, 0x14, 0x4A, 0xA3, 0xC6, 0xFA, 0x40,
            /* 0080 */   0xBA, 0xDB, 0x8A, 0x26, 0x52, 0x83, 0x41, 0x00,
            /* 0088 */   0x32, 0x32, 0x01, 0x01, 0x03, 0x24, 0x14, 0x49,
            /* 0090 */   0xA3, 0xC6, 0xFA, 0x40, 0xBA, 0xDB, 0x8A, 0x26,
            /* 0098 */   0x52, 0x83, 0x41, 0x00, 0x33, 0x31, 0x01, 0x01,
            /* 00A0 */   0x03, 0x24, 0x14, 0x4A, 0xA3, 0xC6, 0xFA, 0x40,
            /* 00A8 */   0xBA, 0xDB, 0x8A, 0x26, 0x52, 0x83, 0x41, 0x00,
            /* 00B0 */   0x33, 0x32, 0x01, 0x01, 0x04, 0x24, 0x14, 0x49,
            /* 00B8 */   0xA3, 0xC6, 0xFA, 0x40, 0xBA, 0xDB, 0x8A, 0x26,
            /* 00C0 */   0x52, 0x83, 0x41, 0x00, 0x34, 0x31, 0x01, 0x01,
            /* 00C8 */   0x04, 0x24, 0x14, 0x4A, 0xA3, 0xC6, 0xFA, 0x40,
            /* 00D0 */   0xBA, 0xDB, 0x8A, 0x26, 0x52, 0x83, 0x41, 0x00,
            /* 00D8 */   0x34, 0x32, 0x01, 0x01, 0x05, 0x24, 0x14, 0x49,
            /* 00E0 */   0xA3, 0xC6, 0xFA, 0x40, 0xBA, 0xDB, 0x8A, 0x26,
            /* 00E8 */   0x52, 0x83, 0x41, 0x00, 0x35, 0x31, 0x01, 0x01,
            /* 00F0 */   0x05, 0x24, 0x14, 0x4A, 0xA3, 0xC6, 0xFA, 0x40,
            /* 00F8 */   0xBA, 0xDB, 0x8A, 0x26, 0x52, 0x83, 0x41, 0x00,
            /* 0100 */   0x35, 0x32, 0x01, 0x01, 0x06, 0x24, 0x14, 0x49,
            /* 0108 */   0xA3, 0xC6, 0xFA, 0x40, 0xBA, 0xDB, 0x8A, 0x26,
            /* 0110 */   0x52, 0x83, 0x41, 0x00, 0x36, 0x31, 0x01, 0x01,
            /* 0118 */   0x06, 0x24, 0x14, 0x4A, 0xA3, 0xC6, 0xFA, 0x40,
            /* 0120 */   0xBA, 0xDB, 0x8A, 0x26, 0x52, 0x83, 0x41, 0x00,
            /* 0128 */   0x36, 0x32, 0x01, 0x01, 0x07, 0x24, 0x14, 0x49,
            /* 0130 */   0xA3, 0xC6, 0xFA, 0x40, 0xBA, 0xDB, 0x8A, 0x26,
            /* 0138 */   0x52, 0x83, 0x41, 0x00, 0x37, 0x31, 0x01, 0x01,
            /* 0140 */   0x07, 0x24, 0x14, 0x4A, 0xA3, 0xC6, 0xFA, 0x40,
            /* 0148 */   0xBA, 0xDB, 0x8A, 0x26, 0x52, 0x83, 0x41, 0x00,
            /* 0150 */   0x37, 0x32, 0x01, 0x01, 0x00, 0x24, 0x14, 0x59,
            /* 0158 */   0xA3, 0xC6, 0xFA, 0x40, 0xBA, 0xDB, 0x8A, 0x26,
            /* 0160 */   0x52, 0x83, 0x41, 0x00, 0x80, 0x00, 0x01, 0x08,
            /* 0168 */   0x00, 0x24, 0x14, 0x69, 0xA3, 0xC6, 0xFA, 0x40,
            /* 0170 */   0xBA, 0xDB, 0x8A, 0x26, 0x52, 0x83, 0x41, 0x00,
            /* 0178 */   0x30, 0x35, 0x01, 0x02, 0x00, 0x24, 0x14, 0x79,
            /* 0180 */   0xA3, 0xC6, 0xFA, 0x40, 0xBA, 0xDB, 0x8A, 0x26,
            /* 0188 */   0x52, 0x83, 0x41, 0x00, 0x30, 0x36, 0x01, 0x02,
            /* 0190 */   0x00, 0x24, 0x14, 0x89, 0xA3, 0xC6, 0xFA, 0x40,
            /* 0198 */   0xBA, 0xDB, 0x8A, 0x26, 0x52, 0x83, 0x41, 0x00,
            /* 01A0 */   0x30, 0x37, 0x01, 0x02, 0x21, 0x12, 0x90, 0x05,
            /* 01A8 */   0x66, 0xD5, 0xD1, 0x11, 0xB2, 0xF0, 0x00, 0xA0,
            /* 01B0 */   0xC9, 0x06, 0x29, 0x10, 0x42, 0x41, 0x01, 0x01
        })
        Name (EVCD, Zero)
        Method (WQ00, 1, NotSerialized)
        {
            Return (EVCD)
        }

        OperationRegion (\WMIA, SystemMemory, WMIB, 0x9000)
        Field (WMIA, AnyAcc, NoLock, Preserve)
        {
            WAG1,   2048, 
            WAG2,   2048, 
            WAG3,   2048, 
            WAG4,   2048, 
            WAG5,   2048, 
            WAG6,   2048, 
            WAG7,   2048, 
            WAG8,   2048, 
            Offset (0x1000), 
            WPD1,   32768, 
            WPD2,   32768, 
            WPD3,   32768, 
            WPD4,   32768, 
            WPD5,   32768, 
            WPD6,   32768, 
            WPD7,   32768, 
            WPD8,   32768
        }

        Method (WQ01, 1, NotSerialized)
        {
            Return (WAG1)
        }

        Method (WS01, 2, NotSerialized)
        {
            Store (Arg1, WAG1)
            Return (Zero)
        }

        Method (WQ02, 1, NotSerialized)
        {
            Return (WPD1)
        }

        Method (WS02, 2, NotSerialized)
        {
            Store (Arg1, WPD1)
            Return (Zero)
        }

        Method (WQ11, 1, NotSerialized)
        {
            Return (WAG2)
        }

        Method (WS11, 2, NotSerialized)
        {
            Store (Arg1, WAG2)
            Return (Zero)
        }

        Method (WQ12, 1, NotSerialized)
        {
            Return (WPD2)
        }

        Method (WS12, 2, NotSerialized)
        {
            Store (Arg1, WPD2)
            Return (Zero)
        }

        Method (WQ21, 1, NotSerialized)
        {
            Return (WAG3)
        }

        Method (WS21, 2, NotSerialized)
        {
            Store (Arg1, WAG3)
            Return (Zero)
        }

        Method (WQ22, 1, NotSerialized)
        {
            Return (WPD3)
        }

        Method (WS22, 2, NotSerialized)
        {
            Store (Arg1, WPD3)
            Return (Zero)
        }

        Method (WQ31, 1, NotSerialized)
        {
            Return (WAG4)
        }

        Method (WS31, 2, NotSerialized)
        {
            Store (Arg1, WAG4)
            Return (Zero)
        }

        Method (WQ32, 1, NotSerialized)
        {
            Return (WPD4)
        }

        Method (WS32, 2, NotSerialized)
        {
            Store (Arg1, WPD4)
            Return (Zero)
        }

        Method (WQ41, 1, NotSerialized)
        {
            Return (WAG5)
        }

        Method (WS41, 2, NotSerialized)
        {
            Store (Arg1, WAG5)
            Return (Zero)
        }

        Method (WQ42, 1, NotSerialized)
        {
            Return (WPD5)
        }

        Method (WS42, 2, NotSerialized)
        {
            Store (Arg1, WPD5)
            Return (Zero)
        }

        Method (WQ51, 1, NotSerialized)
        {
            Return (WAG6)
        }

        Method (WS51, 2, NotSerialized)
        {
            Store (Arg1, WAG6)
            Return (Zero)
        }

        Method (WQ52, 1, NotSerialized)
        {
            Return (WPD6)
        }

        Method (WS52, 2, NotSerialized)
        {
            Store (Arg1, WPD6)
            Return (Zero)
        }

        Method (WQ61, 1, NotSerialized)
        {
            Return (WAG7)
        }

        Method (WS61, 2, NotSerialized)
        {
            Store (Arg1, WAG7)
            Return (Zero)
        }

        Method (WQ62, 1, NotSerialized)
        {
            Return (WPD7)
        }

        Method (WS62, 2, NotSerialized)
        {
            Store (Arg1, WPD7)
            Return (Zero)
        }

        Method (WQ71, 1, NotSerialized)
        {
            Return (WAG8)
        }

        Method (WS71, 2, NotSerialized)
        {
            Store (Arg1, WAG8)
            Return (Zero)
        }

        Method (WQ72, 1, NotSerialized)
        {
            Return (WPD8)
        }

        Method (WS72, 2, NotSerialized)
        {
            Store (Arg1, WPD8)
            Return (Zero)
        }

        Method (WM05, 3, NotSerialized)
        {
            CreateDWordField (Arg2, Zero, WMA5)
            If (LEqual (WMA5, One))
            {
                WMIG (WMIB, Add (WMIB, 0x1000), One)
                Return (Zero)
            }

            If (LEqual (WMA5, 0x02))
            {
                WMIG (Add (WMIB, 0x0100), Add (WMIB, 0x2000), 0x02)
                Return (Zero)
            }

            If (LEqual (WMA5, 0x03))
            {
                WMIG (Add (WMIB, 0x0200), Add (WMIB, 0x3000), 0x03)
                Return (Zero)
            }

            If (LEqual (WMA5, 0x04))
            {
                WMIG (Add (WMIB, 0x0300), Add (WMIB, 0x4000), 0x04)
                Return (Zero)
            }

            If (LEqual (WMA5, 0x05))
            {
                WMIG (Add (WMIB, 0x0400), Add (WMIB, 0x5000), 0x05)
                Return (Zero)
            }

            If (LEqual (WMA5, 0x06))
            {
                WMIG (Add (WMIB, 0x0500), Add (WMIB, 0x6000), 0x06)
                Return (Zero)
            }

            If (LEqual (WMA5, 0x07))
            {
                WMIG (Add (WMIB, 0x0600), Add (WMIB, 0x7000), 0x07)
                Return (Zero)
            }

            If (LEqual (WMA5, 0x08))
            {
                WMIG (Add (WMIB, 0x0700), Add (WMIB, 0x8000), 0x08)
                Return (Zero)
            }

            Return (Zero)
        }

        Method (WM06, 3, Serialized)
        {
            CreateDWordField (Arg2, Zero, WM6A)
            Store (INIT (WM6A), Local0)
            Return (Local0)
        }

        Method (WM07, 3, Serialized)
        {
            CreateDWordField (Arg2, Zero, WM7A)
            Store (WDOG (WM7A), Local0)
            Return (Local0)
        }

        Method (NTFY, 1, Serialized)
        {
            If (LNot (QNTY (Arg0)))
            {
                Return (Zero)
            }

            Store (Arg0, EVCD)
            Notify (WMI0, 0x80)
        }

        Method (WSMI, 1, Serialized)
        {
            Store (Arg0, WMIS)
            ISMI (0xE3)
        }

        Name (WQBA, Buffer (0x0914)
        {
            /* 0000 */   0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x00,
            /* 0008 */   0x04, 0x09, 0x00, 0x00, 0x50, 0x67, 0x00, 0x00,
            /* 0010 */   0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x54,
            /* 0018 */   0x28, 0xC7, 0xB2, 0x00, 0x01, 0x06, 0x18, 0x42,
            /* 0020 */   0x10, 0x2B, 0x10, 0x92, 0x2B, 0x81, 0x42, 0x04,
            /* 0028 */   0x0A, 0x44, 0x24, 0x81, 0x30, 0x28, 0x0D, 0x20,
            /* 0030 */   0x92, 0x03, 0x21, 0x17, 0x4C, 0x4C, 0x80, 0x08,
            /* 0038 */   0x08, 0x79, 0x15, 0x60, 0x53, 0x80, 0x49, 0x10,
            /* 0040 */   0xF5, 0xEF, 0x0F, 0x51, 0x12, 0x1C, 0x4A, 0x08,
            /* 0048 */   0x84, 0x24, 0x0A, 0x30, 0x2F, 0x40, 0xB7, 0x00,
            /* 0050 */   0xC3, 0x02, 0x6C, 0x0B, 0x30, 0x2D, 0xC0, 0x31,
            /* 0058 */   0x24, 0x95, 0x06, 0x4E, 0x09, 0x2C, 0x05, 0x42,
            /* 0060 */   0x42, 0x05, 0x28, 0x17, 0xE0, 0x5B, 0x80, 0x76,
            /* 0068 */   0x44, 0x49, 0x16, 0xB0, 0xA3, 0x30, 0x09, 0x3C,
            /* 0070 */   0x8A, 0xC8, 0x46, 0xE3, 0xD0, 0xD8, 0x61, 0x58,
            /* 0078 */   0x26, 0x98, 0x06, 0x71, 0x18, 0x65, 0x23, 0x8B,
            /* 0080 */   0xC0, 0x13, 0xEA, 0x74, 0x74, 0x05, 0x08, 0x13,
            /* 0088 */   0x20, 0x1E, 0x55, 0x18, 0xCD, 0x41, 0x91, 0x08,
            /* 0090 */   0xD0, 0x28, 0x31, 0x63, 0x22, 0xB0, 0x9D, 0x63,
            /* 0098 */   0x6B, 0x14, 0xA7, 0x51, 0xB8, 0x00, 0xE9, 0x18,
            /* 00A0 */   0x1A, 0xC1, 0x71, 0x85, 0xF7, 0xC8, 0x8E, 0x90,
            /* 00A8 */   0x59, 0x1C, 0x8B, 0x20, 0x43, 0x85, 0xEB, 0x10,
            /* 00B0 */   0x4E, 0x73, 0x32, 0xC8, 0x89, 0x9C, 0x49, 0xEC,
            /* 00B8 */   0x08, 0x05, 0x09, 0xB0, 0x8E, 0x21, 0xA4, 0x58,
            /* 00C0 */   0x51, 0x6A, 0xC6, 0xD3, 0x0C, 0x82, 0x34, 0x0A,
            /* 00C8 */   0xA5, 0xC9, 0x79, 0x00, 0x61, 0xC2, 0xC3, 0x20,
            /* 00D0 */   0x30, 0xFE, 0x11, 0x61, 0x64, 0x40, 0xC8, 0x33,
            /* 00D8 */   0xB2, 0x86, 0x6A, 0x02, 0xBB, 0x17, 0xE0, 0x6C,
            /* 00E0 */   0x6A, 0x32, 0x36, 0x39, 0x29, 0x9B, 0x1D, 0x41,
            /* 00E8 */   0x68, 0x0B, 0x5E, 0xDA, 0x04, 0x18, 0x04, 0x13,
            /* 00F0 */   0x4A, 0x24, 0x0F, 0xE5, 0x78, 0xA2, 0x54, 0x88,
            /* 00F8 */   0xA4, 0xF1, 0xC5, 0x88, 0x52, 0x1C, 0x8A, 0x60,
            /* 0100 */   0x23, 0xB6, 0x86, 0x21, 0x98, 0x98, 0x21, 0xE3,
            /* 0108 */   0x07, 0xB7, 0xFD, 0x83, 0x01, 0x53, 0x00, 0xD1,
            /* 0110 */   0x02, 0x88, 0x22, 0x8D, 0x06, 0x75, 0x18, 0x48,
            /* 0118 */   0xF0, 0x70, 0xE0, 0x71, 0x9E, 0xD6, 0xF9, 0x1D,
            /* 0120 */   0xD7, 0x41, 0x04, 0x39, 0xE1, 0xE3, 0xAA, 0xF3,
            /* 0128 */   0x54, 0x40, 0x46, 0xC6, 0xFE, 0xFF, 0x58, 0x09,
            /* 0130 */   0x3A, 0x38, 0x26, 0x40, 0x71, 0x0D, 0xA8, 0x69,
            /* 0138 */   0x3E, 0x1D, 0xB0, 0x81, 0x86, 0xC3, 0x0C, 0xD1,
            /* 0140 */   0xA3, 0x0D, 0x77, 0x02, 0x87, 0xC8, 0x00, 0x3D,
            /* 0148 */   0xA2, 0x07, 0x03, 0xEC, 0x10, 0x4F, 0xE6, 0x25,
            /* 0150 */   0xA0, 0x54, 0x01, 0x66, 0x4F, 0x08, 0x9A, 0x76,
            /* 0158 */   0x82, 0xE3, 0xF1, 0x71, 0xC0, 0xF3, 0x39, 0xE1,
            /* 0160 */   0x04, 0x96, 0x3F, 0x08, 0xD4, 0xC8, 0x0C, 0xED,
            /* 0168 */   0x71, 0x9E, 0xD6, 0x5B, 0x81, 0x8F, 0x00, 0x26,
            /* 0170 */   0xB0, 0x58, 0x08, 0x6D, 0x52, 0xE3, 0x01, 0x02,
            /* 0178 */   0x8A, 0x0F, 0x05, 0x42, 0x78, 0x75, 0xF0, 0x7C,
            /* 0180 */   0x4D, 0x30, 0x32, 0x84, 0x9C, 0x8C, 0x07, 0x35,
            /* 0188 */   0x0A, 0x83, 0xD6, 0x0A, 0xAE, 0x9B, 0x40, 0x02,
            /* 0190 */   0x47, 0x84, 0xD0, 0x67, 0xC3, 0xA2, 0x86, 0x4D,
            /* 0198 */   0x8F, 0x16, 0xFC, 0x54, 0xC1, 0x20, 0xCF, 0xE0,
            /* 01A0 */   0x11, 0xC0, 0x23, 0x39, 0x21, 0x1F, 0x3E, 0x3C,
            /* 01A8 */   0x30, 0xF8, 0xB3, 0xF0, 0x91, 0x02, 0x1C, 0x1E,
            /* 01B0 */   0xC1, 0x84, 0xF3, 0x0A, 0x01, 0x6B, 0xA4, 0xF0,
            /* 01B8 */   0x6F, 0x11, 0x46, 0xF6, 0xA9, 0xE1, 0xB5, 0x21,
            /* 01C0 */   0x81, 0x0F, 0x1E, 0x81, 0xB1, 0x43, 0xB5, 0x5F,
            /* 01C8 */   0x01, 0x08, 0xC1, 0xA3, 0x3D, 0x0A, 0x3C, 0x7B,
            /* 01D0 */   0x44, 0x78, 0xDC, 0xC0, 0xFC, 0xFF, 0x8F, 0x1B,
            /* 01D8 */   0xB0, 0x09, 0x8A, 0x1C, 0x20, 0x7A, 0x0C, 0xFC,
            /* 01E0 */   0x04, 0x71, 0x0A, 0xF1, 0xC3, 0x1F, 0xC3, 0x11,
            /* 01E8 */   0x45, 0x89, 0x7C, 0x48, 0x3E, 0x9C, 0x18, 0xE1,
            /* 01F0 */   0x10, 0x9E, 0x49, 0xCE, 0xC0, 0x07, 0x0C, 0x4F,
            /* 01F8 */   0xEB, 0x14, 0x5E, 0x24, 0x3C, 0x02, 0x4C, 0xA0,
            /* 0200 */   0x43, 0x0C, 0x8D, 0xB2, 0x7E, 0x45, 0x80, 0x41,
            /* 0208 */   0x9D, 0x63, 0x00, 0x57, 0x30, 0xCF, 0x31, 0xE0,
            /* 0210 */   0x3B, 0x3E, 0xF0, 0x6B, 0x00, 0xE6, 0x7C, 0xF2,
            /* 0218 */   0x14, 0x03, 0x07, 0x97, 0x81, 0xBC, 0x04, 0xC4,
            /* 0220 */   0x79, 0x77, 0xF1, 0xCD, 0xC4, 0xD7, 0x02, 0xE3,
            /* 0228 */   0x3E, 0xC4, 0x80, 0x61, 0x60, 0x0F, 0x31, 0xE0,
            /* 0230 */   0xFC, 0xFF, 0x1F, 0x62, 0xE0, 0x05, 0x3F, 0xC4,
            /* 0238 */   0x00, 0x34, 0x91, 0x77, 0xBE, 0x90, 0x91, 0x55,
            /* 0240 */   0xF8, 0x10, 0x83, 0xBA, 0x21, 0x9C, 0xCF, 0x43,
            /* 0248 */   0xCA, 0xD3, 0x01, 0x93, 0x73, 0xCE, 0xA0, 0x87,
            /* 0250 */   0x18, 0xE0, 0x01, 0x88, 0xF7, 0x3E, 0x65, 0x32,
            /* 0258 */   0x82, 0x33, 0x35, 0xA0, 0x51, 0x7D, 0xAE, 0x00,
            /* 0260 */   0xC7, 0x79, 0x82, 0xFF, 0xFF, 0xCF, 0x13, 0x18,
            /* 0268 */   0xBC, 0xD7, 0x0A, 0x76, 0x0C, 0x60, 0x67, 0x0A,
            /* 0270 */   0x38, 0x57, 0x0A, 0x9F, 0x5A, 0x7C, 0x4E, 0xF0,
            /* 0278 */   0x18, 0xF9, 0x58, 0x0C, 0x1A, 0xF2, 0x41, 0xC0,
            /* 0280 */   0x0B, 0xB4, 0xAC, 0xB3, 0x0D, 0x68, 0x2E, 0x13,
            /* 0288 */   0xCF, 0x3D, 0xD8, 0xA3, 0x0D, 0x18, 0x90, 0x2A,
            /* 0290 */   0xBD, 0x05, 0xE8, 0x02, 0x82, 0x23, 0xF0, 0xC1,
            /* 0298 */   0x06, 0xF8, 0xC4, 0x3A, 0xD5, 0xD0, 0x30, 0x63,
            /* 02A0 */   0x54, 0x10, 0x18, 0xD4, 0xC1, 0x06, 0x70, 0x75,
            /* 02A8 */   0xE8, 0xF0, 0xC1, 0x06, 0x3C, 0xFF, 0xFF, 0x11,
            /* 02B0 */   0xB2, 0xC1, 0x9C, 0x44, 0x98, 0xA3, 0x08, 0xF6,
            /* 02B8 */   0x2C, 0xE1, 0x9B, 0x0D, 0x78, 0xB0, 0xB1, 0x27,
            /* 02C0 */   0x1B, 0xB0, 0x9C, 0x09, 0x9E, 0x6C, 0x80, 0x49,
            /* 02C8 */   0xF8, 0x93, 0x0D, 0x40, 0x1E, 0xD8, 0x27, 0x81,
            /* 02D0 */   0x77, 0x80, 0xFF, 0xFF, 0x93, 0x0D, 0x60, 0xF1,
            /* 02D8 */   0x4A, 0x81, 0x3D, 0xD9, 0x40, 0x5E, 0xBC, 0x4E,
            /* 02E0 */   0x36, 0xE0, 0x3A, 0x03, 0x82, 0xED, 0x08, 0x02,
            /* 02E8 */   0xF3, 0x6C, 0x03, 0x9C, 0xCE, 0x80, 0xC0, 0xE1,
            /* 02F0 */   0xFF, 0x7F, 0x06, 0x04, 0x1C, 0x9E, 0x5B, 0x9E,
            /* 02F8 */   0x01, 0xC1, 0x75, 0xF2, 0x64, 0x67, 0x40, 0x70,
            /* 0300 */   0xA1, 0x3C, 0x03, 0x02, 0x66, 0xFF, 0xFF, 0x67,
            /* 0308 */   0x40, 0xC0, 0xD2, 0xE9, 0x80, 0x9D, 0x01, 0x01,
            /* 0310 */   0x4E, 0xFD, 0xFF, 0x2F, 0x20, 0xFC, 0x0C, 0x08,
            /* 0318 */   0x30, 0xEC, 0x66, 0x03, 0x1B, 0x1B, 0x7B, 0xB2,
            /* 0320 */   0x01, 0xCB, 0x19, 0x10, 0x77, 0xB2, 0x01, 0xEF,
            /* 0328 */   0xFF, 0xFF, 0x0C, 0x08, 0x30, 0xE9, 0x64, 0x03,
            /* 0330 */   0x58, 0xFB, 0xFF, 0x9F, 0x01, 0x01, 0x63, 0x67,
            /* 0338 */   0x1B, 0x60, 0x75, 0x06, 0x04, 0xBC, 0xFF, 0xFF,
            /* 0340 */   0xCF, 0x80, 0xF8, 0x63, 0xCB, 0x33, 0x20, 0xB8,
            /* 0348 */   0x70, 0x9F, 0x01, 0xC1, 0x87, 0xF1, 0x0C, 0x08,
            /* 0350 */   0xF0, 0xEF, 0x74, 0xC0, 0x8E, 0x36, 0xFC, 0xFF,
            /* 0358 */   0x7F, 0x06, 0x04, 0x18, 0x75, 0x10, 0x60, 0x67,
            /* 0360 */   0x40, 0xC0, 0xD3, 0xFF, 0xFF, 0x0C, 0x08, 0x58,
            /* 0368 */   0xBB, 0xD9, 0xC0, 0xC6, 0xC6, 0x9E, 0x6C, 0xC0,
            /* 0370 */   0x72, 0x06, 0xC4, 0x9D, 0x6C, 0xC0, 0x7F, 0x06,
            /* 0378 */   0x04, 0x5C, 0xFD, 0xFF, 0xCF, 0x80, 0x80, 0x95,
            /* 0380 */   0x93, 0x0D, 0xE0, 0xF1, 0x0C, 0x08, 0xF8, 0x39,
            /* 0388 */   0x0A, 0xFC, 0xFF, 0x9F, 0x01, 0x01, 0x6E, 0xCD,
            /* 0390 */   0xE1, 0x19, 0x10, 0x5C, 0x33, 0xF3, 0x19, 0x10,
            /* 0398 */   0x6C, 0xF7, 0x1A, 0x9F, 0x01, 0xC1, 0xFF, 0xFF,
            /* 03A0 */   0x3F, 0x03, 0x02, 0xEC, 0x39, 0x1D, 0xB0, 0xA3,
            /* 03A8 */   0x0D, 0xE0, 0xEE, 0xFF, 0x7F, 0x06, 0x04, 0xEC,
            /* 03B0 */   0x1C, 0x04, 0xD8, 0x19, 0x10, 0xE0, 0xD6, 0xFF,
            /* 03B8 */   0xFF, 0x66, 0x03, 0x1F, 0x1B, 0x7B, 0xB2, 0x01,
            /* 03C0 */   0xCB, 0x19, 0x10, 0x77, 0xB2, 0x01, 0xFF, 0x19,
            /* 03C8 */   0x10, 0x60, 0xD0, 0xC9, 0x06, 0xF6, 0xFF, 0xFF,
            /* 03D0 */   0x0C, 0x08, 0x30, 0xE9, 0x6C, 0x03, 0xAC, 0xCE,
            /* 03D8 */   0x80, 0xC0, 0xEF, 0xFF, 0x7F, 0x06, 0x04, 0x3C,
            /* 03E0 */   0xDD, 0x5B, 0x9E, 0x01, 0xC1, 0x85, 0xFB, 0x0C,
            /* 03E8 */   0x08, 0x3E, 0x88, 0x67, 0x40, 0xC0, 0xFA, 0xFF,
            /* 03F0 */   0xFF, 0x0C, 0x08, 0x98, 0x38, 0x1D, 0xB0, 0x33,
            /* 03F8 */   0x20, 0xC0, 0xAC, 0x83, 0x00, 0x3B, 0xD8, 0xE0,
            /* 0400 */   0xFF, 0xFF, 0x67, 0x40, 0x80, 0x4D, 0x37, 0x1B,
            /* 0408 */   0xD8, 0xD8, 0xD8, 0x93, 0x0D, 0x58, 0xCE, 0x80,
            /* 0410 */   0xB8, 0x93, 0x0D, 0xF8, 0xCF, 0x80, 0x70, 0xFE,
            /* 0418 */   0xFF, 0x67, 0x40, 0x80, 0x2D, 0x27, 0x1B, 0xC0,
            /* 0420 */   0xE3, 0x95, 0x02, 0xF3, 0xFF, 0x3F, 0x03, 0x02,
            /* 0428 */   0x56, 0xCE, 0x36, 0xC0, 0xEA, 0x0C, 0x08, 0xF0,
            /* 0430 */   0xE0, 0xE0, 0xF2, 0x66, 0x83, 0xF9, 0xFF, 0x9F,
            /* 0438 */   0x01, 0xC1, 0x80, 0xFB, 0x0C, 0x08, 0xBE, 0xFB,
            /* 0440 */   0xC1, 0x33, 0x20, 0xC0, 0xBF, 0xD3, 0x01, 0x3B,
            /* 0448 */   0xDA, 0x80, 0xE3, 0xFF, 0x7F, 0x06, 0x04, 0x58,
            /* 0450 */   0x73, 0x10, 0x60, 0x67, 0x40, 0xC0, 0xE1, 0xFF,
            /* 0458 */   0xFF, 0x0C, 0x08, 0x98, 0xB9, 0xD9, 0xC0, 0xC6,
            /* 0460 */   0xC6, 0x9E, 0x6C, 0xC0, 0x72, 0x06, 0xC4, 0x9D,
            /* 0468 */   0x6C, 0xC0, 0x7F, 0x06, 0x04, 0x3C, 0xFE, 0xFF,
            /* 0470 */   0xCF, 0x80, 0xC0, 0xFC, 0x64, 0x03, 0x78, 0x3C,
            /* 0478 */   0x03, 0x02, 0x7E, 0xCE, 0x36, 0xB0, 0xFF, 0xFF,
            /* 0480 */   0x67, 0x40, 0x80, 0x3F, 0xDE, 0xCE, 0x80, 0x20,
            /* 0488 */   0xC3, 0x7D, 0x06, 0x04, 0xDF, 0xFD, 0xE0, 0x19,
            /* 0490 */   0x10, 0xD8, 0xFD, 0xFF, 0xCF, 0x80, 0x00, 0x43,
            /* 0498 */   0x4E, 0x07, 0xEC, 0x0C, 0x08, 0x78, 0xFD, 0xFF,
            /* 04A0 */   0x9F, 0x01, 0x01, 0x03, 0x07, 0x01, 0x76, 0x06,
            /* 04A8 */   0x04, 0xD8, 0x75, 0xB3, 0x81, 0xF9, 0xFF, 0xBF,
            /* 04B0 */   0x60, 0xC1, 0x38, 0xD9, 0x80, 0xE5, 0x0C, 0x88,
            /* 04B8 */   0x3B, 0xD9, 0x80, 0xFF, 0x0C, 0x08, 0x30, 0xE8,
            /* 04C0 */   0x64, 0x03, 0xE6, 0xFF, 0xFF, 0x19, 0x10, 0x60,
            /* 04C8 */   0xCB, 0xD9, 0x06, 0x58, 0x9D, 0x01, 0x81, 0xFB,
            /* 04D0 */   0xFF, 0xFF, 0x0C, 0x08, 0xB8, 0x38, 0x1A, 0x3C,
            /* 04D8 */   0x03, 0x82, 0xEB, 0x96, 0xE0, 0x33, 0x20, 0xD8,
            /* 04E0 */   0xEE, 0x07, 0xCF, 0x80, 0x00, 0x23, 0xFE, 0xFF,
            /* 04E8 */   0x67, 0x40, 0x60, 0x7B, 0x3A, 0x60, 0x67, 0x40,
            /* 04F0 */   0x80, 0x59, 0x07, 0x01, 0x76, 0xB0, 0x01, 0xD7,
            /* 04F8 */   0xFF, 0xFF, 0x0C, 0x08, 0x30, 0xE6, 0x66, 0x03,
            /* 0500 */   0x1B, 0x1B, 0x7B, 0xB2, 0x01, 0xCB, 0x19, 0x10,
            /* 0508 */   0x77, 0xB2, 0x01, 0xFF, 0x19, 0x10, 0x7C, 0xFF,
            /* 0510 */   0xFF, 0x33, 0x20, 0xC0, 0x88, 0x93, 0x0D, 0xE0,
            /* 0518 */   0xF1, 0x0C, 0x08, 0x96, 0xFF, 0xFF, 0x19, 0x10,
            /* 0520 */   0x98, 0x9F, 0x6D, 0x80, 0x55, 0xB4, 0x83, 0x0D,
            /* 0528 */   0x2A, 0xCC, 0xD9, 0x06, 0x10, 0x3D, 0xEF, 0x87,
            /* 0530 */   0x0F, 0x1F, 0x0C, 0x7C, 0x10, 0xC0, 0xDC, 0x6C,
            /* 0538 */   0xE0, 0xDC, 0x2A, 0x7C, 0x5D, 0xF1, 0x41, 0xC4,
            /* 0540 */   0x87, 0x07, 0xF6, 0xFF, 0x87, 0x8A, 0x13, 0x9E,
            /* 0548 */   0x9F, 0x1C, 0x7C, 0xB6, 0x81, 0x7D, 0x9A, 0x79,
            /* 0550 */   0x08, 0xC4, 0x21, 0x3C, 0xDB, 0x80, 0xFD, 0x4D,
            /* 0558 */   0xE1, 0x63, 0x81, 0xCF, 0x36, 0x00, 0x3F, 0x44,
            /* 0560 */   0x1C, 0x30, 0xE4, 0x64, 0x3C, 0xA8, 0x51, 0x58,
            /* 0568 */   0xE3, 0x25, 0x81, 0x4C, 0xDB, 0x04, 0x43, 0x43,
            /* 0570 */   0xE8, 0xB4, 0xE4, 0xB3, 0x0D, 0x38, 0xFF, 0xFF,
            /* 0578 */   0x67, 0x1B, 0x70, 0x9E, 0x4E, 0xF0, 0x67, 0x1B,
            /* 0580 */   0x30, 0x9D, 0x25, 0x30, 0x04, 0x1E, 0x32, 0xFC,
            /* 0588 */   0xD3, 0x0C, 0x3F, 0x3E, 0xBC, 0x3F, 0x24, 0xF0,
            /* 0590 */   0xB9, 0x0F, 0x6C, 0xA7, 0x0E, 0x38, 0x87, 0x19,
            /* 0598 */   0x60, 0x32, 0x26, 0xDC, 0x91, 0xC2, 0x43, 0xE0,
            /* 05A0 */   0x03, 0x68, 0x75, 0x7E, 0xE4, 0x58, 0x78, 0x56,
            /* 05A8 */   0xB8, 0xB3, 0x0C, 0x1F, 0x15, 0xE6, 0x74, 0x83,
            /* 05B0 */   0x8B, 0xF2, 0x3E, 0x30, 0x81, 0x82, 0xBC, 0x0B,
            /* 05B8 */   0x24, 0xF2, 0x81, 0x40, 0x61, 0x7C, 0xBA, 0x01,
            /* 05C0 */   0x8E, 0xFF, 0xFF, 0xD3, 0x0D, 0xF0, 0x98, 0xA4,
            /* 05C8 */   0x4F, 0x37, 0x60, 0x83, 0x88, 0x18, 0xAC, 0x68,
            /* 05D0 */   0x30, 0xDD, 0x9A, 0x70, 0xB7, 0x1B, 0x1C, 0x5E,
            /* 05D8 */   0xB8, 0x18, 0xA7, 0xC3, 0x10, 0xA2, 0x3C, 0xB0,
            /* 05E0 */   0x18, 0x99, 0x1F, 0x03, 0xC1, 0x70, 0x9B, 0x79,
            /* 05E8 */   0xB6, 0x01, 0x2E, 0xE1, 0x0E, 0x05, 0xFA, 0x43,
            /* 05F0 */   0xF9, 0x6C, 0x03, 0xF8, 0xFC, 0xFF, 0x9F, 0x6D,
            /* 05F8 */   0x80, 0xCF, 0x41, 0x04, 0x77, 0x32, 0x01, 0xC3,
            /* 0600 */   0x89, 0x01, 0xD6, 0xB1, 0x0D, 0xB8, 0x88, 0x5B,
            /* 0608 */   0xA9, 0x4E, 0x3B, 0x16, 0x06, 0x22, 0x1B, 0x87,
            /* 0610 */   0x45, 0x3A, 0x54, 0x0B, 0xA1, 0xD2, 0x90, 0x7C,
            /* 0618 */   0x04, 0x3A, 0xBB, 0x47, 0x85, 0xE7, 0x04, 0x01,
            /* 0620 */   0x09, 0xD4, 0x10, 0x0E, 0x0F, 0xA1, 0xE8, 0xA3,
            /* 0628 */   0xA1, 0xC0, 0x0E, 0x0B, 0x46, 0x41, 0x3C, 0x7A,
            /* 0630 */   0x07, 0x81, 0xD0, 0xA1, 0x08, 0x7F, 0x62, 0xF0,
            /* 0638 */   0x7C, 0xDE, 0xF8, 0x4D, 0xF0, 0xB0, 0xF1, 0xB4,
            /* 0640 */   0x00, 0xEB, 0x62, 0xE0, 0x63, 0x00, 0x3F, 0x13,
            /* 0648 */   0xE2, 0x0F, 0xFD, 0x26, 0xE0, 0xC7, 0x1E, 0xF0,
            /* 0650 */   0x09, 0x3C, 0x0D, 0x80, 0x02, 0xC8, 0x93, 0xF7,
            /* 0658 */   0xB1, 0xE6, 0x01, 0x80, 0xCD, 0xE1, 0xC9, 0xC6,
            /* 0660 */   0x68, 0xFF, 0xFF, 0x47, 0x1A, 0x9C, 0x8C, 0x95,
            /* 0668 */   0xEA, 0x4B, 0xE3, 0x33, 0xA3, 0xC7, 0xC5, 0xCF,
            /* 0670 */   0x03, 0x3E, 0xB8, 0xB0, 0xB3, 0x01, 0xEE, 0x0C,
            /* 0678 */   0x85, 0x81, 0xF5, 0x48, 0x39, 0xAC, 0xD1, 0xC2,
            /* 0680 */   0x1E, 0xF0, 0x43, 0x83, 0x2F, 0x1C, 0x9E, 0x99,
            /* 0688 */   0xCF, 0x28, 0x3E, 0x6A, 0x80, 0xE5, 0x38, 0x05,
            /* 0690 */   0xFF, 0xB0, 0x82, 0x3B, 0xC9, 0xC0, 0x9D, 0xE6,
            /* 0698 */   0x23, 0xC1, 0xA3, 0x9E, 0x87, 0x1E, 0xDE, 0x47,
            /* 06A0 */   0x18, 0xCF, 0x2E, 0x88, 0xAF, 0x9D, 0xFC, 0xF2,
            /* 06A8 */   0x7D, 0x5A, 0xBE, 0xEF, 0xF8, 0xE8, 0x63, 0xA0,
            /* 06B0 */   0x27, 0x86, 0xA8, 0xAF, 0x27, 0x9E, 0x00, 0xBF,
            /* 06B8 */   0x50, 0x38, 0xC6, 0xA9, 0x88, 0x06, 0x5A, 0xA9,
            /* 06C0 */   0xA4, 0xAE, 0x99, 0xC2, 0xF8, 0x54, 0x04, 0xB8,
            /* 06C8 */   0x8A, 0x30, 0x78, 0x50, 0xFC, 0xFF, 0x4F, 0x45,
            /* 06D0 */   0xD8, 0x1B, 0x86, 0x2F, 0x03, 0x3E, 0x14, 0x81,
            /* 06D8 */   0xE5, 0x40, 0xE2, 0x89, 0xBD, 0x04, 0xF8, 0xDC,
            /* 06E0 */   0x80, 0xC3, 0x39, 0x03, 0x7E, 0x32, 0x02, 0xC3,
            /* 06E8 */   0x5D, 0xFB, 0xC9, 0x08, 0xB8, 0x44, 0x3B, 0x19,
            /* 06F0 */   0x01, 0x34, 0x39, 0xDF, 0xE1, 0xFE, 0xFF, 0x27,
            /* 06F8 */   0x23, 0x30, 0x9C, 0x1A, 0x60, 0x1C, 0x8C, 0x80,
            /* 0700 */   0x8B, 0xA4, 0x83, 0x11, 0x95, 0x73, 0x30, 0x82,
            /* 0708 */   0x72, 0x84, 0xC0, 0x1D, 0x8C, 0xC0, 0x3F, 0xA6,
            /* 0710 */   0x33, 0x7A, 0x1D, 0x38, 0x75, 0x1F, 0x8C, 0x00,
            /* 0718 */   0x73, 0xC3, 0xF5, 0xC1, 0x08, 0xF8, 0xFC, 0xFF,
            /* 0720 */   0x0F, 0x46, 0xC0, 0xE5, 0x70, 0xE1, 0x83, 0x11,
            /* 0728 */   0xB8, 0x0F, 0x0B, 0xFC, 0x10, 0x83, 0x25, 0x28,
            /* 0730 */   0xFE, 0x35, 0x64, 0x02, 0x85, 0x5A, 0xA4, 0x24,
            /* 0738 */   0x2F, 0x97, 0xC2, 0xF8, 0x4C, 0x04, 0xB8, 0x8A,
            /* 0740 */   0x71, 0x26, 0x02, 0x21, 0xC6, 0xE3, 0xB1, 0x11,
            /* 0748 */   0xCF, 0x38, 0x6C, 0xB8, 0xE7, 0x8B, 0xA7, 0x22,
            /* 0750 */   0xB0, 0xCF, 0xE1, 0x0C, 0xFA, 0xBC, 0x6E, 0xE9,
            /* 0758 */   0x54, 0x84, 0xFF, 0xFF, 0x9F, 0x8A, 0x60, 0x1C,
            /* 0760 */   0x83, 0x9E, 0x8A, 0x80, 0x4B, 0xBC, 0x53, 0x11,
            /* 0768 */   0x40, 0x93, 0x13, 0xC4, 0x53, 0x11, 0xB8, 0xCE,
            /* 0770 */   0x0D, 0x30, 0xCF, 0x45, 0xE0, 0xFB, 0xFF, 0x9F,
            /* 0778 */   0x8B, 0xE0, 0x3E, 0x08, 0x7C, 0x18, 0x22, 0xE7,
            /* 0780 */   0x22, 0x74, 0x78, 0x2A, 0x1D, 0x22, 0x70, 0xB1,
            /* 0788 */   0xCF, 0x45, 0x74, 0xD8, 0x0E, 0x4C, 0xA2, 0x43,
            /* 0790 */   0xBD, 0xCF, 0x45, 0x3C, 0xE6, 0x91, 0x86, 0x82,
            /* 0798 */   0x18, 0xD0, 0x19, 0xCE, 0x45, 0x68, 0x15, 0xE7,
            /* 07A0 */   0x22, 0xE4, 0x20, 0xDF, 0x16, 0xD8, 0xEC, 0x7C,
            /* 07A8 */   0x0F, 0xE0, 0x37, 0x15, 0x5F, 0x8B, 0x18, 0x6E,
            /* 07B0 */   0x35, 0xD7, 0x1D, 0x14, 0x98, 0x6F, 0x45, 0x18,
            /* 07B8 */   0x5D, 0xA7, 0x22, 0x90, 0xE9, 0xBB, 0x14, 0x81,
            /* 07C0 */   0x1C, 0x9D, 0x9F, 0xA8, 0xC0, 0x87, 0xFF, 0x3C,
            /* 07C8 */   0xE0, 0x21, 0x3C, 0x51, 0xC1, 0x3D, 0x13, 0xBC,
            /* 07D0 */   0xF5, 0xF8, 0x44, 0x05, 0xFB, 0x90, 0x4B, 0x4E,
            /* 07D8 */   0x54, 0x40, 0xE3, 0xFF, 0x7F, 0xA2, 0x02, 0x5F,
            /* 07E0 */   0xEC, 0x13, 0x15, 0xA0, 0xE7, 0x08, 0x82, 0x3B,
            /* 07E8 */   0xB9, 0x82, 0xF5, 0x98, 0x81, 0x51, 0x68, 0xD3,
            /* 07F0 */   0xA7, 0x46, 0xA3, 0x56, 0x0D, 0xCA, 0xD4, 0x28,
            /* 07F8 */   0xD3, 0xA0, 0x56, 0x9F, 0x4A, 0x8D, 0x19, 0xBB,
            /* 0800 */   0x0F, 0x58, 0xE2, 0x3B, 0x41, 0xC3, 0x75, 0x40,
            /* 0808 */   0x10, 0x1A, 0x89, 0x42, 0x20, 0x8E, 0xF2, 0xA7,
            /* 0810 */   0x10, 0x88, 0x85, 0x78, 0x00, 0x61, 0x42, 0x57,
            /* 0818 */   0x24, 0x10, 0x8B, 0x5B, 0x9B, 0x40, 0x1C, 0x0D,
            /* 0820 */   0x84, 0x46, 0x5F, 0x9D, 0x40, 0x1C, 0xD8, 0x07,
            /* 0828 */   0x08, 0x93, 0xFB, 0x26, 0x10, 0x88, 0xE3, 0x18,
            /* 0830 */   0x01, 0x61, 0x11, 0x5E, 0x54, 0x3A, 0x06, 0x10,
            /* 0838 */   0x2B, 0x20, 0x4C, 0xA0, 0x16, 0x10, 0x26, 0xCB,
            /* 0840 */   0x0C, 0x08, 0x0B, 0x05, 0x42, 0x43, 0x7F, 0x39,
            /* 0848 */   0x04, 0xE2, 0xA0, 0x76, 0x40, 0x98, 0x4C, 0x3D,
            /* 0850 */   0x20, 0x2C, 0x86, 0x1F, 0x10, 0x26, 0x5E, 0xD1,
            /* 0858 */   0x60, 0x28, 0x08, 0x95, 0xF6, 0xE6, 0xD2, 0x61,
            /* 0860 */   0x82, 0x78, 0x02, 0x61, 0x61, 0x40, 0xE8, 0xFF,
            /* 0868 */   0x3F, 0xAC, 0x28, 0x10, 0x16, 0xD1, 0xD5, 0x60,
            /* 0870 */   0xE8, 0xDB, 0x40, 0x20, 0x0E, 0xF0, 0x4C, 0x0A,
            /* 0878 */   0x42, 0x44, 0x3F, 0x25, 0x04, 0xE2, 0xC8, 0x20,
            /* 0880 */   0x54, 0xD2, 0x1F, 0x42, 0x43, 0x25, 0x7F, 0xA5,
            /* 0888 */   0x83, 0x61, 0x20, 0x34, 0xE6, 0x83, 0xE9, 0x50,
            /* 0890 */   0xD9, 0x5F, 0x4B, 0x20, 0x16, 0xA6, 0x0E, 0x84,
            /* 0898 */   0x09, 0x77, 0x37, 0x54, 0xFA, 0x19, 0xD1, 0x60,
            /* 08A0 */   0x08, 0x08, 0x15, 0xF3, 0xA8, 0xD0, 0x50, 0xC9,
            /* 08A8 */   0x83, 0x22, 0x08, 0x91, 0x0F, 0x42, 0xE3, 0xBD,
            /* 08B0 */   0x04, 0x34, 0x54, 0xF2, 0x21, 0xD0, 0x60, 0xC8,
            /* 08B8 */   0x1B, 0x47, 0x20, 0x96, 0xFC, 0x4A, 0xD3, 0x50,
            /* 08C0 */   0xC9, 0x43, 0x41, 0x20, 0x0E, 0x09, 0x42, 0x45,
            /* 08C8 */   0xBC, 0x72, 0x82, 0x90, 0xF0, 0xCF, 0x8B, 0x20,
            /* 08D0 */   0x44, 0xBA, 0xD1, 0x41, 0xD0, 0xE7, 0xC5, 0x83,
            /* 08D8 */   0x01, 0xB3, 0x0A, 0xC2, 0x04, 0x69, 0x1D, 0x36,
            /* 08E0 */   0x7D, 0x28, 0x14, 0xF0, 0x15, 0xD0, 0xE1, 0x20,
            /* 08E8 */   0x88, 0x80, 0x2C, 0xD2, 0xED, 0x80, 0x29, 0x08,
            /* 08F0 */   0x15, 0x63, 0x17, 0x90, 0x49, 0x03, 0x11, 0x90,
            /* 08F8 */   0xE3, 0x0A, 0x06, 0x61, 0x62, 0x5F, 0x14, 0x41,
            /* 0900 */   0x48, 0xAE, 0xE7, 0x51, 0x40, 0x12, 0x12, 0x44,
            /* 0908 */   0xC7, 0x03, 0xF2, 0x84, 0x13, 0x90, 0xC3, 0x81,
            /* 0910 */   0x08, 0xC8, 0xFF, 0x7F
        })
    }

    Scope (WMI0)
    {
        Name (WMIP, Zero)
        Method (INIT, 1, NotSerialized)
        {
            Store (One, WMIP)
            WINI (Arg0)
            Return (Zero)
        }

        Name (PCDV, Zero)
        Method (WDOG, 1, NotSerialized)
        {
            If (LEqual (Arg0, Zero))
            {
                Store (PTIM, PCDV)
                Return (0x3C)
            }

            If (LEqual (Arg0, One))
            {
                If (\_SB.LID._LID ())
                {
                    Store (PTIM, PCDV)
                    Return (One)
                }

                If (LLess (\_TZ.RLTM (), PTMP))
                {
                    Store (PTIM, PCDV)
                    Return (One)
                }

                Decrement (PCDV)
                If (LEqual (PCDV, Zero))
                {
                    Store (PTIM, PCDV)
                    NTFY (0x6D)
                }

                Return (One)
            }

            Return (Zero)
        }

        Method (_WED, 1, NotSerialized)  // _Wxx: Wake Event
        {
            Return (Arg0)
        }

        Method (WMIG, 3, Serialized)
        {
            \_SB.ATKD.AGFN (Arg0)
            Store (CWMI (Arg0), Local0)
            If (LEqual (Local0, Zero))
            {
                Return (Zero)
            }

            Store (And (ShiftRight (Local0, 0x10), 0xFFFF), Local1)
            And (Local0, 0xFFFF, Local0)
            If (CWAC (Arg0))
            {
                Return (Zero)
            }

            If (LAnd (LEqual (Local0, 0x15), LEqual (Local1, 0x05)))
            {
                WSMI (Arg2)
                Return (Zero)
            }

            If (Or (LEqual (Local0, 0x64), LEqual (Local0, 0x67)))
            {
                WSMI (Arg2)
                Return (Zero)
            }

            Store (\_SB.ATKD.GLEN (Arg0), Local2)
            WGLN (Arg0, Arg1, Local0, Local1, Arg2)
            OperationRegion (\WMIF, SystemMemory, Arg0, 0x0100)
            Field (WMIF, DWordAcc, NoLock, Preserve)
            {
                Offset (0x06), 
                STAS,   8, 
                REST,   8
            }

            If (LNotEqual (STAS, One))
            {
                Return (Zero)
            }

            Store (0x82, STAS)
            Store (One, REST)
            Return (Zero)
        }

        Method (CWMI, 1, NotSerialized)
        {
            OperationRegion (\WMID, SystemMemory, Arg0, 0x0100)
            Field (WMID, DWordAcc, NoLock, Preserve)
            {
                FUNC,   32, 
                LEN,    16, 
                STAS,   8, 
                REST,   8
            }

            If (LEqual (And (REST, One), Zero))
            {
                Return (Zero)
            }

            Store (One, STAS)
            Store (Zero, REST)
            Return (FUNC)
        }

        Method (CWAC, 1, NotSerialized)
        {
            OperationRegion (\WMIC, SystemMemory, Arg0, 0x0100)
            Field (WMIC, DWordAcc, NoLock, Preserve)
            {
                Offset (0x07), 
                REST,   8
            }

            ISMI (0xE4)
            Return (REST)
        }
    }

    Scope (WMI0)
    {
        Method (QNTY, 1, NotSerialized)
        {
            Return (One)
        }
    }

    Scope (WMI0)
    {
        Method (WGLN, 5, NotSerialized)
        {
            \_SB.ATKD.WFLH (Arg0, Arg1, Arg2, Arg3, Arg4)
            \_SB.ATKD.GVBD (Arg0, Arg1, Arg2, Arg3, Arg4)
        }
    }

    Scope (WMI0)
    {
        Method (WINI, 1, NotSerialized)
        {
        }
    }

    Scope (_SB)
    {
        Device (LID)
        {
            Name (_HID, EisaId ("PNP0C0D"))  // _HID: Hardware ID
            Name (_PRW, Package (0x02)  // _PRW: Power Resources for Wake
            {
                0x10, 
                0x05
            })
            Method (_PSW, 1, NotSerialized)  // _PSW: Power State Wake
            {
                Store (Arg0, \WMI0.LDST)
            }

            Method (_LID, 0, NotSerialized)  // _LID: Lid Status
            {
                Store (One, Local0)
                Store (^^PCI0.SBRG.HEC.RPIN (0x04, 0x06), Local0)
                If (LEqual (Local0, Ones))
                {
                    Store (One, Local0)
                }

                Return (Local0)
            }
        }
    }

    Scope (_SB.PCI0.SBRG.HEC)
    {
        Method (_Q81, 0, NotSerialized)  // _Qxx: EC Query
        {
            Notify (LID, 0x80)
        }
    }

    Scope (_SB)
    {
        Device (PWRB)
        {
            Name (_HID, EisaId ("PNP0C0C"))  // _HID: Hardware ID
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                Return (0x0F)
            }
        }
    }

    Scope (_SB)
    {
        Device (SLPB)
        {
            Name (_HID, EisaId ("PNP0C0E"))  // _HID: Hardware ID
            Name (_STA, 0x0F)  // _STA: Status
        }
    }

    Scope (_SB.PCI0.SBRG.HEC)
    {
        Method (GBTT, 1, Serialized)
        {
            If (LEqual (Arg0, Zero))
            {
                Store (EB0T, Local0)
            }
            Else
            {
                Store (EB1T, Local0)
            }

            Return (Local0)
        }

        Method (RRAM, 1, Serialized)
        {
            If (LEqual (Acquire (MUEC, 0xFFFF), Zero))
            {
                Store (0x7F, Local6)
                Store (0x0F, Local7)
                While (LAnd (Local6, And (Local7, ESEM)))
                {
                    Sleep (0x02)
                    Decrement (Local6)
                }

                Store (Arg0, Local0)
                And (Local0, 0xFF, Local1)
                ShiftRight (Local0, 0x08, Local0)
                And (Local0, 0xFF, Local0)
                Store (Local1, CDT2)
                Store (Local0, CDT1)
                Store (0x80, CMD1)
                Store (0x0F, ESEM)
                Store (0x7F, Local0)
                Store (0xFF, Local1)
                While (LAnd (Local0, And (Local1, CMD1)))
                {
                    Sleep (0x02)
                    Decrement (Local0)
                }

                If (LEqual (CMD1, Zero))
                {
                    Store (EDA1, Local0)
                }
                Else
                {
                    Store (Ones, Local0)
                }

                Release (MUEC)
                Return (Local0)
            }

            Return (Ones)
        }

        Method (WRAM, 2, Serialized)
        {
            If (LEqual (Acquire (MUEC, 0xFFFF), Zero))
            {
                Store (0x7F, Local6)
                Store (0x0F, Local7)
                While (LAnd (Local6, And (Local7, ESEM)))
                {
                    Sleep (0x02)
                    Decrement (Local6)
                }

                Store (Arg0, Local0)
                And (Local0, 0xFF, Local1)
                ShiftRight (Local0, 0x08, Local0)
                And (Local0, 0xFF, Local0)
                Store (Local1, CDT2)
                Store (Local0, CDT1)
                Store (Arg1, CDT3)
                Store (0x81, CMD1)
                Store (0x0F, ESEM)
                Store (0x7F, Local0)
                While (LAnd (Local0, CMD1))
                {
                    Sleep (One)
                    Decrement (Local0)
                }

                If (LEqual (CMD1, Zero))
                {
                    Store (One, Local0)
                }
                Else
                {
                    Store (Ones, Local0)
                }

                Release (MUEC)
                Return (Local0)
            }

            Return (Ones)
        }

        Method (STBR, 0, Serialized)
        {
            And (\WMI0.VGAF, One, Local0)
            ISMI (0x9A)
        }

        Method (SBRV, 1, Serialized)
        {
            WBOV (Zero, Arg0)
        }

        Name (DECF, Zero)
        Method (SFNV, 2, Serialized)
        {
            Store (RRAM (0x0521), Local1)
            Store (RRAM (0x0522), Local2)
            Store (RRAM (0x0523), Local3)
            Store (RRAM (0x0524), Local4)
            If (LEqual (Arg0, Zero))
            {
                Or (Local3, 0x80, Local3)
                Or (Local4, 0x80, Local4)
                If (And (Local1, 0x80))
                {
                    ShiftRight (Local1, 0x04, Local0)
                    And (Local0, 0x03, Local0)
                    If (LEqual (Local0, Zero))
                    {
                        WRAM (0x0523, Local3)
                    }
                    Else
                    {
                        If (LEqual (Local0, One))
                        {
                            WRAM (0x0524, Local4)
                        }
                        Else
                        {
                            If (LEqual (Local0, 0x02))
                            {
                                WRAM (0x0523, Local3)
                                WRAM (0x0524, Local4)
                            }
                        }
                    }
                }

                If (And (Local2, 0x80))
                {
                    ShiftRight (Local2, 0x04, Local0)
                    And (Local0, 0x03, Local0)
                    If (LEqual (Local0, Zero))
                    {
                        WRAM (0x0523, Local3)
                    }
                    Else
                    {
                        If (LEqual (Local0, One))
                        {
                            WRAM (0x0524, Local4)
                        }
                        Else
                        {
                            If (LEqual (Local0, 0x02))
                            {
                                WRAM (0x0523, Local3)
                                WRAM (0x0524, Local4)
                            }
                        }
                    }
                }

                Return (Zero)
            }

            And (Local3, 0x7F, Local3)
            And (Local4, 0x7F, Local4)
            WRAM (0x0523, Local3)
            WRAM (0x0524, Local4)
            WFOV (Decrement (Arg0), Arg1)
            Return (Zero)
        }

        Method (SPIN, 3, Serialized)
        {
            If (LEqual (Acquire (MUEC, 0xFFFF), Zero))
            {
                Store (0x7F, Local6)
                Store (0x0F, Local7)
                While (LAnd (Local6, And (Local7, ESEM)))
                {
                    Sleep (0x02)
                    Decrement (Local6)
                }

                Store (Arg0, Local0)
                Store (Arg1, Local1)
                If (LGreaterEqual (Local0, 0x41))
                {
                    Subtract (Local0, 0x41, Local0)
                }

                ShiftLeft (Local0, 0x04, Local0)
                Or (Local0, Local1, Local0)
                Store (Local0, CDT2)
                If (LEqual (Arg2, One))
                {
                    Store (0x20, Local2)
                }
                Else
                {
                    Store (0x40, Local2)
                }

                Store (Local2, CDT1)
                Store (0x87, CMD1)
                Store (0x0F, ESEM)
                Store (0x7F, Local0)
                While (LAnd (Local0, CMD1))
                {
                    Sleep (One)
                    Decrement (Local0)
                }

                If (LEqual (CMD1, Zero))
                {
                    Store (One, Local0)
                }
                Else
                {
                    Store (Ones, Local0)
                }

                Release (MUEC)
                Return (Local0)
            }

            Return (Ones)
        }

        Method (RPIN, 2, Serialized)
        {
            If (LEqual (Acquire (MUEC, 0xFFFF), Zero))
            {
                Store (0x7F, Local6)
                Store (0x0F, Local7)
                While (LAnd (Local6, And (Local7, ESEM)))
                {
                    Sleep (0x02)
                    Decrement (Local6)
                }

                Store (Arg0, Local0)
                If (LGreaterEqual (Local0, 0x41))
                {
                    Subtract (Local0, 0x41, Local0)
                }

                ShiftLeft (Local0, 0x04, Local0)
                Or (Local0, Arg1, Local0)
                Store (Local0, CDT2)
                Store (Zero, CDT1)
                Store (0x87, CMD1)
                Store (0x0F, ESEM)
                Store (0x7F, Local0)
                While (LAnd (Local0, CMD1))
                {
                    Sleep (One)
                    Decrement (Local0)
                }

                If (LEqual (CMD1, Zero))
                {
                    Store (EDA1, Local0)
                }
                Else
                {
                    Store (Ones, Local0)
                }

                Release (MUEC)
                Return (Local0)
            }

            Return (Ones)
        }

        Name (WRQK, 0x02)
        Name (RDQK, 0x03)
        Name (SDBT, 0x04)
        Name (RCBT, 0x05)
        Name (WRBT, 0x06)
        Name (RDBT, 0x07)
        Name (WRWD, 0x08)
        Name (RDWD, 0x09)
        Name (WRBL, 0x0A)
        Name (RDBL, 0x0B)
        Name (WBLP, 0x8A)
        Name (RBLP, 0x8B)
        Name (PCLL, 0x0C)
        Name (GOOD, Zero)
        Name (UKER, 0x07)
        Name (DAER, 0x10)
        Name (DERR, 0x11)
        Name (CMDN, 0x12)
        Name (UKE2, 0x13)
        Name (DADN, 0x17)
        Name (SBTO, 0x18)
        Name (USPT, 0x19)
        Name (SBBY, 0x1A)
        Method (SMBR, 3, Serialized)
        {
            Store (Package (0x03)
                {
                    0x07, 
                    Zero, 
                    Zero
                }, Local0)
            OperationRegion (ECBD, SystemMemory, \WMI0.HEM2, 0x80)
            Field (ECBD, ByteAcc, Lock, Preserve)
            {
                Offset (0x40), 
                BCNT,   8, 
                BDAT,   256
            }

            If (LNotEqual (Arg0, RDBL))
            {
                If (LNotEqual (Arg0, RDWD))
                {
                    If (LNotEqual (Arg0, RDBT))
                    {
                        If (LNotEqual (Arg0, RCBT))
                        {
                            If (LNotEqual (Arg0, RDQK))
                            {
                                If (LNotEqual (Arg0, RBLP))
                                {
                                    Return (Local0)
                                }
                            }
                        }
                    }
                }
            }

            If (LEqual (Acquire (MUEC, 0xFFFF), Zero))
            {
                Store (0x7F, Local6)
                Store (0x0F, Local7)
                While (LAnd (Local6, And (Local7, ESEM)))
                {
                    Sleep (0x02)
                    Decrement (Local6)
                }

                Store (Zero, CDT1)
                Store (Arg0, CDT2)
                ShiftLeft (Arg1, One, Local1)
                Store (Local1, CDT3)
                Store (Arg2, CDT4)
                Store (Zero, CDT5)
                Store (0x9A, CMD1)
                Store (0x0F, ESEM)
                Store (0x7F, Local2)
                While (LAnd (Local2, CMD1))
                {
                    Sleep (One)
                    Decrement (Local2)
                }

                If (LEqual (CMD1, Zero))
                {
                    Store (GOOD, Index (Local0, Zero))
                    If (LEqual (Arg0, RDBL))
                    {
                        Store (BCNT, Index (Local0, One))
                        Store (BDAT, Index (Local0, 0x02))
                    }

                    If (LEqual (Arg0, RBLP))
                    {
                        Store (BCNT, Index (Local0, One))
                        Store (BDAT, Index (Local0, 0x02))
                    }

                    If (LEqual (Arg0, RDWD))
                    {
                        Store (0x02, Index (Local0, One))
                        Store (EDA1, Local1)
                        ShiftLeft (Local1, 0x08, Local1)
                        Or (Local1, EDA2, Local1)
                        Store (Local1, Index (Local0, 0x02))
                    }

                    If (LEqual (Arg0, RDBT))
                    {
                        Store (One, Index (Local0, One))
                        Store (EDA1, Index (Local0, 0x02))
                    }

                    If (LEqual (Arg0, RCBT))
                    {
                        Store (One, Index (Local0, One))
                        Store (EDA1, Index (Local0, 0x02))
                    }
                }

                Release (MUEC)
            }

            Return (Local0)
        }

        Method (SMBW, 5, Serialized)
        {
            Store (Package (0x03)
                {
                    0x07, 
                    Zero, 
                    Zero
                }, Local0)
            OperationRegion (ECBD, SystemMemory, \WMI0.HEM2, 0x80)
            Field (ECBD, ByteAcc, Lock, Preserve)
            {
                Offset (0x07), 
                BDAT,   256
            }

            If (LNotEqual (Arg0, WRBL))
            {
                If (LNotEqual (Arg0, WRWD))
                {
                    If (LNotEqual (Arg0, WRBT))
                    {
                        If (LNotEqual (Arg0, SDBT))
                        {
                            If (LNotEqual (Arg0, WRQK))
                            {
                                If (LNotEqual (Arg0, WBLP))
                                {
                                    Return (Local0)
                                }
                            }
                        }
                    }
                }
            }

            If (LEqual (Acquire (MUEC, 0xFFFF), Zero))
            {
                Store (0x7F, Local6)
                Store (0x0F, Local7)
                While (LAnd (Local6, And (Local7, ESEM)))
                {
                    Sleep (0x02)
                    Decrement (Local6)
                }

                Store (Zero, CDT1)
                Store (Arg0, CDT2)
                ShiftLeft (Arg1, One, Local1)
                Store (Local1, CDT3)
                Store (Arg2, CDT4)
                If (LEqual (Arg0, WRBL))
                {
                    Store (Arg3, CDT5)
                    Store (Arg4, BDAT)
                }

                If (LEqual (Arg0, WBLP))
                {
                    Store (Arg3, CDT5)
                    Store (Arg4, BDAT)
                }

                If (LEqual (Arg0, WRWD))
                {
                    Store (0x02, CDT5)
                    Store (Arg4, Local1)
                    ShiftRight (Local1, 0x08, Local1)
                    Store (Local1, CDT6)
                    And (Arg4, 0x0F, Local1)
                    Store (Local1, CDT7)
                }

                If (LEqual (Arg0, WRBT))
                {
                    Store (Zero, CDT5)
                    Store (Arg4, CDT6)
                }

                If (LEqual (Arg0, SDBT))
                {
                    Store (Zero, CDT5)
                    Store (Arg4, CDT6)
                }

                Store (0x9A, CMD1)
                Store (0x0F, ESEM)
                Store (0x7F, Local2)
                While (LAnd (Local2, CMD1))
                {
                    Sleep (One)
                    Decrement (Local2)
                }

                If (LEqual (CMD1, Zero))
                {
                    Store (Zero, Index (Local0, Zero))
                }
                Else
                {
                    Store (UKER, Index (Local0, Zero))
                }

                Release (MUEC)
            }

            Return (Local0)
        }

        Method (SMR1, 3, Serialized)
        {
            Store (Package (0x03)
                {
                    0x07, 
                    Zero, 
                    Zero
                }, Local0)
            If (LNotEqual (Arg0, RDBL))
            {
                If (LNotEqual (Arg0, RDWD))
                {
                    If (LNotEqual (Arg0, RDBT))
                    {
                        Return (Local0)
                    }
                }
            }

            If (LEqual (Acquire (MUEC, 0xFFFF), Zero))
            {
                Store (0x7F, Local6)
                Store (0x0F, Local7)
                While (LAnd (Local6, And (Local7, ESEM)))
                {
                    Sleep (0x02)
                    Decrement (Local6)
                }

                Store (One, CDT1)
                Store (Arg0, CDT2)
                ShiftLeft (Arg1, One, Local1)
                Store (Local1, CDT3)
                Store (Arg2, CDT4)
                Store (Zero, CDT5)
                Store (0x9A, CMD1)
                Store (0x0F, ESEM)
                Store (0x7F, Local2)
                While (LAnd (Local2, CMD1))
                {
                    Sleep (One)
                    Decrement (Local2)
                }

                If (LEqual (CMD1, Zero))
                {
                    Store (GOOD, Index (Local0, Zero))
                    If (LEqual (Arg0, RDBL))
                    {
                        OperationRegion (ECBD, SystemMemory, \WMI0.HEM2, 0x80)
                        Field (ECBD, ByteAcc, Lock, Preserve)
                        {
                            Offset (0x40), 
                            BCNT,   8, 
                            BDAT,   256
                        }

                        Store (BCNT, Index (Local0, One))
                        Store (BDAT, Index (Local0, 0x02))
                    }

                    If (LEqual (Arg0, RDWD))
                    {
                        Store (0x02, Index (Local0, One))
                        Store (EDA1, Local1)
                        ShiftLeft (Local1, 0x08, Local1)
                        Or (Local1, EDA2, Local1)
                        Store (Local1, Index (Local0, 0x02))
                    }

                    If (LEqual (Arg0, RDBT))
                    {
                        Store (One, Index (Local0, One))
                        Store (EDA1, Index (Local0, 0x02))
                    }
                }

                Release (MUEC)
            }

            Return (Local0)
        }

        Method (SMW1, 5, Serialized)
        {
            Store (Package (0x03)
                {
                    0x07, 
                    Zero, 
                    Zero
                }, Local0)
            If (LNotEqual (Arg0, WRBL))
            {
                If (LNotEqual (Arg0, WRWD))
                {
                    If (LNotEqual (Arg0, WRBT))
                    {
                        Return (Local0)
                    }
                }
            }

            If (LEqual (Acquire (MUEC, 0xFFFF), Zero))
            {
                Store (0x7F, Local6)
                Store (0x0F, Local7)
                While (LAnd (Local6, And (Local7, ESEM)))
                {
                    Sleep (0x02)
                    Decrement (Local6)
                }

                Store (One, CDT1)
                Store (Arg0, CDT2)
                ShiftLeft (Arg1, One, Local1)
                Store (Local1, CDT3)
                Store (Arg2, CDT4)
                If (LEqual (Arg0, WRBL))
                {
                    Store (Arg3, CDT5)
                    OperationRegion (ECBD, SystemMemory, \WMI0.HEM2, 0x80)
                    Field (ECBD, ByteAcc, Lock, Preserve)
                    {
                        Offset (0x07), 
                        BDAT,   256
                    }

                    Store (Arg4, BDAT)
                }

                If (LEqual (Arg0, WRWD))
                {
                    Store (Zero, CDT5)
                    Store (Arg4, CDT6)
                }

                If (LEqual (Arg0, WRBT))
                {
                    Store (Zero, CDT5)
                    Store (Arg4, CDT6)
                }

                Store (0x9A, CMD1)
                Store (0x0F, ESEM)
                Store (0x7F, Local2)
                While (LAnd (Local2, CMD1))
                {
                    Sleep (One)
                    Decrement (Local2)
                }

                If (LEqual (CMD1, Zero))
                {
                    Store (Zero, Index (Local0, Zero))
                }
                Else
                {
                    Store (UKER, Index (Local0, Zero))
                }

                Release (MUEC)
            }

            Return (Local0)
        }

        Mutex (MUEP, 0x00)
        Method (RBEP, 1, NotSerialized)
        {
            Return (Zero)
        }

        Method (WBEP, 2, NotSerialized)
        {
            Return (Zero)
        }

        Method (SDAC, 2, Serialized)
        {
            If (LEqual (Acquire (MUEC, 0xFFFF), Zero))
            {
                Store (0x7F, Local6)
                Store (0x0F, Local7)
                While (LAnd (Local6, And (Local7, ESEM)))
                {
                    Sleep (0x02)
                    Decrement (Local6)
                }

                Store (Arg0, CDT1)
                Store (Arg1, CDT2)
                Store (0x86, CMD1)
                Store (0x0F, ESEM)
                Store (0x7F, Local0)
                While (LAnd (Local0, CMD1))
                {
                    Sleep (One)
                    Decrement (Local0)
                }

                If (LEqual (CMD1, Zero))
                {
                    Store (One, Local0)
                }
                Else
                {
                    Store (Ones, Local0)
                }

                Release (MUEC)
                Return (Local0)
            }

            Return (Ones)
        }

        Method (ECXT, 6, NotSerialized)
        {
            Store (Package (0x06)
                {
                    0x10, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero
                }, Local1)
            If (LEqual (Acquire (MUEC, 0xFFFF), Zero))
            {
                Store (0x7F, Local6)
                Store (0x0F, Local7)
                While (LAnd (Local6, And (Local7, ESEM)))
                {
                    Sleep (0x02)
                    Decrement (Local6)
                }

                Store (Arg1, CDT1)
                Store (Arg2, CDT2)
                Store (Arg3, CDT3)
                Store (Arg4, CDT4)
                Store (Arg5, CDT5)
                Store (Arg0, CMD1)
                Store (0x0F, ESEM)
                Store (0x7F, Local0)
                Store (0xFF, Local2)
                While (LAnd (Local0, And (Local2, CMD1)))
                {
                    Sleep (0x02)
                    Decrement (Local0)
                }

                If (LEqual (CMD1, Zero))
                {
                    Store (Zero, Index (Local1, Zero))
                    Store (EDA1, Index (Local1, One))
                    Store (EDA2, Index (Local1, 0x02))
                    Store (EDA3, Index (Local1, 0x03))
                    Store (EDA4, Index (Local1, 0x04))
                    Store (EDA5, Index (Local1, 0x05))
                }
                Else
                {
                    Store (0x10, Index (Local1, Zero))
                }

                Release (MUEC)
            }

            Return (Local1)
        }

        Method (ECSB, 6, NotSerialized)
        {
            Store (Package (0x05)
                {
                    0x11, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero
                }, Local1)
            If (LGreater (Arg0, One))
            {
                Return (Local1)
            }

            If (LEqual (Acquire (MUEC, 0xFFFF), Zero))
            {
                Store (0x7F, Local6)
                Store (0x0F, Local7)
                While (LAnd (Local6, And (Local7, ESEM)))
                {
                    Sleep (0x02)
                    Decrement (Local6)
                }

                Store (Arg0, CDT1)
                Store (Arg1, CDT2)
                Store (Arg2, CDT3)
                Store (Arg3, CDT4)
                Store (Zero, CDT5)
                Store (Arg4, CDT6)
                Store (Arg5, CDT7)
                Store (0x9A, CMD1)
                Store (0x0F, ESEM)
                Store (0x7F, Local2)
                While (LAnd (Local2, CMD1))
                {
                    Sleep (One)
                    Decrement (Local2)
                }

                If (LEqual (CMD1, Zero))
                {
                    Store (Zero, Index (Local1, Zero))
                    Store (EDA1, Index (Local1, One))
                    Store (EDA2, Index (Local1, 0x02))
                    Store (EDA3, Index (Local1, 0x03))
                    Store (EDA4, Index (Local1, 0x04))
                }
                Else
                {
                    Store (0x10, Index (Local1, Zero))
                }

                Release (MUEC)
            }

            Return (Local1)
        }

        OperationRegion (KAID, SystemIO, 0x025C, One)
        Field (KAID, ByteAcc, NoLock, Preserve)
        {
            AEID,   8
        }

        OperationRegion (KAIC, SystemIO, 0x025D, One)
        Field (KAIC, ByteAcc, NoLock, Preserve)
        {
            AEIC,   8
        }

        Method (WEIE, 0, Serialized)
        {
            Store (0x4000, Local0)
            And (AEIC, 0x02, Local1)
            While (LAnd (LNotEqual (Local0, Zero), LEqual (Local1, 0x02)))
            {
                And (AEIC, 0x02, Local1)
                Decrement (Local0)
            }
        }

        Method (WEOF, 0, Serialized)
        {
            Store (0x4000, Local0)
            And (AEIC, One, Local1)
            While (LAnd (LNotEqual (Local0, Zero), LEqual (Local1, Zero)))
            {
                And (AEIC, One, Local1)
                Decrement (Local0)
            }
        }

        Method (RFOV, 1, Serialized)
        {
            If (LEqual (Acquire (MUEC, 0xFFFF), Zero))
            {
                Store (0x7F, Local6)
                Store (0x0F, Local7)
                While (LAnd (Local6, And (Local7, ESEM)))
                {
                    Sleep (0x02)
                    Decrement (Local6)
                }

                Store (Arg0, CDT1)
                Store (0x83, CMD1)
                Store (0x0F, ESEM)
                Store (0x7F, Local0)
                While (LAnd (Local0, CMD1))
                {
                    Sleep (One)
                    Decrement (Local0)
                }

                If (LEqual (CMD1, Zero))
                {
                    Store (EDA1, Local0)
                }
                Else
                {
                    Store (Ones, Local0)
                }

                Release (MUEC)
                Return (Local0)
            }

            Return (Ones)
        }

        Method (WFOV, 2, Serialized)
        {
            If (LEqual (Acquire (MUEC, 0xFFFF), Zero))
            {
                Store (0x7F, Local6)
                Store (0x0F, Local7)
                While (LAnd (Local6, And (Local7, ESEM)))
                {
                    Sleep (0x02)
                    Decrement (Local6)
                }

                Store (Arg0, CDT1)
                Store (Arg1, CDT2)
                Store (0x84, CMD1)
                Store (0x0F, ESEM)
                Store (0x7F, Local0)
                While (LAnd (Local0, CMD1))
                {
                    Sleep (One)
                    Decrement (Local0)
                }

                If (LEqual (CMD1, Zero))
                {
                    Store (One, Local0)
                }
                Else
                {
                    Store (Ones, Local0)
                }

                Release (MUEC)
                Return (Local0)
            }

            Return (Ones)
        }

        Method (RBOV, 1, Serialized)
        {
            If (LEqual (Acquire (MUEC, 0xFFFF), Zero))
            {
                Store (0x7F, Local6)
                Store (0x0F, Local7)
                While (LAnd (Local6, And (Local7, ESEM)))
                {
                    Sleep (0x02)
                    Decrement (Local6)
                }

                Store (Arg0, CDT1)
                Store (0x85, CMD1)
                Store (0x0F, ESEM)
                Store (0x7F, Local0)
                While (LAnd (Local0, CMD1))
                {
                    Sleep (One)
                    Decrement (Local0)
                }

                If (LEqual (CMD1, Zero))
                {
                    Store (EDA1, Local0)
                }
                Else
                {
                    Store (Ones, Local0)
                }

                Release (MUEC)
                Return (Local0)
            }

            Return (Ones)
        }

        Method (WBOV, 2, Serialized)
        {
            If (LEqual (Acquire (MUEC, 0xFFFF), Zero))
            {
                Store (0x7F, Local6)
                Store (0x0F, Local7)
                While (LAnd (Local6, And (Local7, ESEM)))
                {
                    Sleep (0x02)
                    Decrement (Local6)
                }

                Store (Arg0, CDT1)
                Store (Arg1, CDT2)
                Store (0x86, CMD1)
                Store (0x0F, ESEM)
                Store (0x7F, Local0)
                While (LAnd (Local0, CMD1))
                {
                    Sleep (One)
                    Decrement (Local0)
                }

                If (LEqual (CMD1, Zero))
                {
                    Store (One, Local0)
                }
                Else
                {
                    Store (Ones, Local0)
                }

                Release (MUEC)
                Return (Local0)
            }

            Return (Ones)
        }

        Method (PKEN, 1, NotSerialized)
        {
            If (LEqual (Acquire (MUEC, 0xFFFF), Zero))
            {
                Store (0x7F, Local6)
                Store (0x0F, Local7)
                While (LAnd (Local6, And (Local7, ESEM)))
                {
                    Sleep (0x02)
                    Decrement (Local6)
                }

                Store (Arg0, CDT1)
                Store (0xB1, CMD1)
                Store (0x0F, ESEM)
                Store (0x7F, Local0)
                While (LAnd (Local0, CMD1))
                {
                    Sleep (One)
                    Decrement (Local0)
                }

                If (LEqual (CMD1, Zero))
                {
                    Store (One, Local0)
                }
                Else
                {
                    Store (Ones, Local0)
                }

                Release (MUEC)
                Return (Local0)
            }

            Return (Ones)
        }

        Method (FNLK, 1, NotSerialized)
        {
            If (LEqual (Acquire (MUEC, 0xFFFF), Zero))
            {
                Store (0x7F, Local6)
                Store (0x0F, Local7)
                While (LAnd (Local6, And (Local7, ESEM)))
                {
                    Sleep (0x02)
                    Decrement (Local6)
                }

                Store (Arg0, CDT1)
                Store (0xB0, CMD1)
                Store (0x0F, ESEM)
                Store (0x7F, Local0)
                While (LAnd (Local0, CMD1))
                {
                    Sleep (One)
                    Decrement (Local0)
                }

                If (LEqual (CMD1, Zero))
                {
                    Store (One, Local0)
                }
                Else
                {
                    Store (Ones, Local0)
                }

                Release (MUEC)
                Return (Local0)
            }

            Return (Ones)
        }
    }

    Scope (\)
    {
        Name (TSP, 0x0A)
        Name (TC1, 0x02)
        Name (TC2, 0x0A)
        Name (PSVF, Zero)
        Name (CRTF, Zero)
    }

    Scope (_TZ)
    {
        Method (KELV, 1, NotSerialized)
        {
            And (Arg0, 0xFF, Local0)
            If (LGreaterEqual (Local0, 0x80))
            {
                Subtract (0x0100, Local0, Local0)
                Multiply (Local0, 0x0A, Local0)
                Subtract (0x0AAC, Local0, Local0)
                Return (Local0)
            }

            Multiply (Local0, 0x0A, Local0)
            Add (Local0, 0x0AAC, Local0)
            Return (Local0)
        }

        Method (CELC, 1, NotSerialized)
        {
            Subtract (Arg0, 0x0AAC, Local0)
            Divide (Local0, 0x0A, Local1, Local0)
            Return (Local0)
        }

        Name (PLCY, Zero)
        ThermalZone (THRM)
        {
            Method (_CRT, 0, NotSerialized)  // _CRT: Critical Temperature
            {
                RCRT ()
                Return (KELV (\WMI0.TCRT))
            }

            Method (_TMP, 0, NotSerialized)  // _TMP: Temperature
            {
                Store (0x05, Local1)
                While (Local1)
                {
                    Store (RTMP (), Local0)
                    If (LGreater (Local0, \WMI0.TCRT))
                    {
                        Decrement (Local1)
                    }
                    Else
                    {
                        Store (Zero, Local1)
                    }
                }

                Store (\WMI0.TCRT, Local2)
                Decrement (Local2)
                If (LGreater (Local0, Local2))
                {
                    If (LEqual (PSVF, One))
                    {
                        Return (KELV (Local2))
                    }
                    Else
                    {
                        If (LEqual (CRTF, One))
                        {
                            Return (KELV (Local0))
                        }
                    }
                }

                Return (KELV (Local0))
            }

            Method (_PSL, 0, NotSerialized)  // _PSL: Passive List
            {
                If (LEqual (\WMI0.CPUN, 0x04))
                {
                    Return (Package (0x04)
                    {
                        \_PR.P000, 
                        \_PR.P001, 
                        \_PR.P002, 
                        \_PR.P003
                    })
                }

                If (LEqual (\WMI0.CPUN, 0x02))
                {
                    Return (Package (0x02)
                    {
                        \_PR.P000, 
                        \_PR.P001
                    })
                }

                Return (Package (0x01)
                {
                    \_PR.P000
                })
            }

            Method (_TSP, 0, NotSerialized)  // _TSP: Thermal Sampling Period
            {
                Multiply (TSP, 0x0A, Local0)
                Return (Local0)
            }

            Method (_TC1, 0, NotSerialized)  // _TC1: Thermal Constant 1
            {
                Return (TC1)
            }

            Method (_TC2, 0, NotSerialized)  // _TC2: Thermal Constant 2
            {
                Return (TC2)
            }

            Method (_PSV, 0, NotSerialized)  // _PSV: Passive Temperature
            {
                RPSV ()
                If (PLCY)
                {
                    Return (KELV (\WMI0.PPSV))
                }
                Else
                {
                    Return (KELV (\WMI0.TPSV))
                }
            }

            Method (_SCP, 1, NotSerialized)  // _SCP: Set Cooling Policy
            {
                Store (Zero, PLCY)
                Notify (THRM, 0x81)
            }
        }
    }

    Scope (_TZ)
    {
        Name (ATMP, 0x3C)
        Name (LTMP, 0x3C)
        Name (FANS, Zero)
        Method (RTMP, 0, NotSerialized)
        {
            If (\_SB.PCI0.SBRG.HEC.ECAV ())
            {
                Store (\_SB.PCI0.SBRG.HEC.TH0R, Local0)
                If (LLess (Local0, 0x80))
                {
                    Store (Local0, LTMP)
                }
            }

            Return (LTMP)
        }

        Method (RLTM, 0, NotSerialized)
        {
            Return (ATMP)
        }

        Method (RCRT, 0, NotSerialized)
        {
            If (\_SB.PCI0.SBRG.HEC.ECAV ())
            {
                Store (\_SB.PCI0.SBRG.HEC.ECRT, Local0)
                If (LLess (Local0, 0x80))
                {
                    Store (Local0, \WMI0.TCRT)
                }
            }
        }

        Method (RPSV, 0, NotSerialized)
        {
            If (\_SB.PCI0.SBRG.HEC.ECAV ())
            {
                Store (\_SB.PCI0.SBRG.HEC.EPSV, Local0)
                If (LLess (Local0, 0x80))
                {
                    Store (Local0, \WMI0.TPSV)
                }
            }
        }

        Method (RFAN, 1, NotSerialized)
        {
            If (\_SB.PCI0.SBRG.HEC.ECAV ())
            {
                Store (\_SB.PCI0.SBRG.HEC.TACH (Arg0), Local0)
                Divide (Local0, 0x64, Local1, Local0)
                Add (Local0, One, Local0)
                If (LLessEqual (Local0, 0x3C))
                {
                    Store (Local0, FANS)
                }
                Else
                {
                    Store (FANS, Local0)
                }
            }
            Else
            {
                Store (Zero, Local0)
            }

            Return (Local0)
        }

        Method (RFSE, 0, NotSerialized)
        {
            Return (Zero)
        }

        Method (TCHG, 0, NotSerialized)
        {
        }

        Method (THDL, 0, NotSerialized)
        {
        }

        Method (TMSS, 1, NotSerialized)
        {
        }

        Method (TMSW, 1, NotSerialized)
        {
        }
    }

    Scope (_SB.PCI0.SBRG.HEC)
    {
        Method (PWAC, 1, Serialized)
        {
            If (LGreaterEqual (Arg0, 0x0B))
            {
                Store (0x0A, Local0)
            }
            Else
            {
                Store (Arg0, Local0)
            }

            If (LEqual (Local0, Zero))
            {
                Return (\WMI0.AB00)
            }

            If (LEqual (Local0, One))
            {
                Return (\WMI0.AB01)
            }

            If (LEqual (Local0, 0x02))
            {
                Return (\WMI0.AB02)
            }

            If (LEqual (Local0, 0x03))
            {
                Return (\WMI0.AB03)
            }

            If (LEqual (Local0, 0x04))
            {
                Return (\WMI0.AB04)
            }

            If (LEqual (Local0, 0x05))
            {
                Return (\WMI0.AB05)
            }

            If (LEqual (Local0, 0x06))
            {
                Return (\WMI0.AB06)
            }

            If (LEqual (Local0, 0x07))
            {
                Return (\WMI0.AB07)
            }

            If (LEqual (Local0, 0x08))
            {
                Return (\WMI0.AB08)
            }

            If (LEqual (Local0, 0x09))
            {
                Return (\WMI0.AB09)
            }

            If (LEqual (Local0, 0x0A))
            {
                Return (\WMI0.AB0A)
            }

            If (LEqual (Local0, 0x0B))
            {
                Return (\WMI0.AB0B)
            }

            If (LEqual (Local0, 0x0C))
            {
                Return (\WMI0.AB0C)
            }

            If (LEqual (Local0, 0x0D))
            {
                Return (\WMI0.AB0D)
            }

            If (LEqual (Local0, 0x0E))
            {
                Return (\WMI0.AB0E)
            }

            If (LEqual (Local0, 0x0F))
            {
                Return (\WMI0.AB0F)
            }

            If (LEqual (Local0, 0x10))
            {
                Return (\WMI0.AB10)
            }

            If (LEqual (Local0, 0x11))
            {
                Return (\WMI0.AB11)
            }

            If (LEqual (Local0, 0x12))
            {
                Return (\WMI0.AB12)
            }

            If (LEqual (Local0, 0x13))
            {
                Return (\WMI0.AB13)
            }

            If (LEqual (Local0, 0x14))
            {
                Return (\WMI0.AB14)
            }

            If (LEqual (Local0, 0x15))
            {
                Return (\WMI0.AB15)
            }

            If (LEqual (Local0, 0x16))
            {
                Return (\WMI0.AB16)
            }

            If (LEqual (Local0, 0x17))
            {
                Return (\WMI0.AB17)
            }

            If (LEqual (Local0, 0x18))
            {
                Return (\WMI0.AB18)
            }

            If (LEqual (Local0, 0x19))
            {
                Return (\WMI0.AB19)
            }

            If (LEqual (Local0, 0x1A))
            {
                Return (\WMI0.AB1A)
            }

            If (LEqual (Local0, 0x1B))
            {
                Return (\WMI0.AB1B)
            }

            If (LEqual (Local0, 0x1C))
            {
                Return (\WMI0.AB1C)
            }

            If (LEqual (Local0, 0x1D))
            {
                Return (\WMI0.AB1D)
            }

            If (LEqual (Local0, 0x1E))
            {
                Return (\WMI0.AB1E)
            }

            If (LEqual (Local0, 0x1F))
            {
                Return (\WMI0.AB1F)
            }

            Return (Zero)
        }

        Method (PWDC, 1, Serialized)
        {
            If (LGreaterEqual (Arg0, 0x0B))
            {
                Store (0x0A, Local0)
            }
            Else
            {
                Store (Arg0, Local0)
            }

            If (LEqual (Local0, Zero))
            {
                Return (\WMI0.DB00)
            }

            If (LEqual (Local0, One))
            {
                Return (\WMI0.DB01)
            }

            If (LEqual (Local0, 0x02))
            {
                Return (\WMI0.DB02)
            }

            If (LEqual (Local0, 0x03))
            {
                Return (\WMI0.DB03)
            }

            If (LEqual (Local0, 0x04))
            {
                Return (\WMI0.DB04)
            }

            If (LEqual (Local0, 0x05))
            {
                Return (\WMI0.DB05)
            }

            If (LEqual (Local0, 0x06))
            {
                Return (\WMI0.DB06)
            }

            If (LEqual (Local0, 0x07))
            {
                Return (\WMI0.DB07)
            }

            If (LEqual (Local0, 0x08))
            {
                Return (\WMI0.DB08)
            }

            If (LEqual (Local0, 0x09))
            {
                Return (\WMI0.DB09)
            }

            If (LEqual (Local0, 0x0A))
            {
                Return (\WMI0.DB0A)
            }

            If (LEqual (Local0, 0x0B))
            {
                Return (\WMI0.DB0B)
            }

            If (LEqual (Local0, 0x0C))
            {
                Return (\WMI0.DB0C)
            }

            If (LEqual (Local0, 0x0D))
            {
                Return (\WMI0.DB0D)
            }

            If (LEqual (Local0, 0x0E))
            {
                Return (\WMI0.DB0E)
            }

            If (LEqual (Local0, 0x0F))
            {
                Return (\WMI0.DB0F)
            }

            If (LEqual (Local0, 0x10))
            {
                Return (\WMI0.DB10)
            }

            If (LEqual (Local0, 0x11))
            {
                Return (\WMI0.DB11)
            }

            If (LEqual (Local0, 0x12))
            {
                Return (\WMI0.DB12)
            }

            If (LEqual (Local0, 0x13))
            {
                Return (\WMI0.DB13)
            }

            If (LEqual (Local0, 0x14))
            {
                Return (\WMI0.DB14)
            }

            If (LEqual (Local0, 0x15))
            {
                Return (\WMI0.DB15)
            }

            If (LEqual (Local0, 0x16))
            {
                Return (\WMI0.DB16)
            }

            If (LEqual (Local0, 0x17))
            {
                Return (\WMI0.DB17)
            }

            If (LEqual (Local0, 0x18))
            {
                Return (\WMI0.DB18)
            }

            If (LEqual (Local0, 0x19))
            {
                Return (\WMI0.DB19)
            }

            If (LEqual (Local0, 0x1A))
            {
                Return (\WMI0.DB1A)
            }

            If (LEqual (Local0, 0x1B))
            {
                Return (\WMI0.DB1B)
            }

            If (LEqual (Local0, 0x1C))
            {
                Return (\WMI0.DB1C)
            }

            If (LEqual (Local0, 0x1D))
            {
                Return (\WMI0.DB1D)
            }

            If (LEqual (Local0, 0x1E))
            {
                Return (\WMI0.DB1E)
            }

            If (LEqual (Local0, 0x1F))
            {
                Return (\WMI0.DB1F)
            }

            Return (Zero)
        }

        Method (ACPS, 0, Serialized)
        {
            Return (And (GPWS (), One))
        }

        Method (DCPS, 1, Serialized)
        {
            Store (GPWS (), Local0)
            If (Arg0)
            {
                And (Local0, 0x04, Local0)
            }
            Else
            {
                And (Local0, 0x02, Local0)
            }

            If (Local0)
            {
                Store (One, Local0)
            }
            Else
            {
                Store (Zero, Local0)
            }

            Return (Local0)
        }

        Method (GPWS, 0, Serialized)
        {
            Store (EPWS, Local0)
            Return (Local0)
        }

        Method (BCHG, 1, Serialized)
        {
            If (Arg0)
            {
                If (ECAV ())
                {
                    Store (EB1S, Local0)
                    And (Local0, 0xFF, Local0)
                    If (LNotEqual (Local0, 0xFF))
                    {
                        And (Local0, 0x02, Local0)
                    }
                    Else
                    {
                        Store (Zero, Local0)
                    }
                }
                Else
                {
                    Store (Zero, Local0)
                }

                Return (Local0)
            }
            Else
            {
                If (ECAV ())
                {
                    Store (EB0S, Local0)
                    And (Local0, 0xFF, Local0)
                    If (LNotEqual (Local0, 0xFF))
                    {
                        And (Local0, 0x02, Local0)
                    }
                    Else
                    {
                        Store (Zero, Local0)
                    }
                }
                Else
                {
                    Store (Zero, Local0)
                }

                Return (Local0)
            }
        }

        Method (BCLE, 1, Serialized)
        {
            If (Arg0)
            {
                If (ECAV ())
                {
                    Store (EB1S, Local1)
                    And (Local1, 0xFFFF, Local1)
                    If (LNotEqual (Local1, 0xFFFF))
                    {
                        And (Local1, 0x16, Local1)
                        If (LEqual (Local1, 0x04))
                        {
                            Store (Zero, Local0)
                        }
                        Else
                        {
                            If (LEqual (Local1, 0x02))
                            {
                                Store (One, Local0)
                            }
                            Else
                            {
                                If (LEqual (Local1, 0x10))
                                {
                                    Store (One, Local0)
                                }
                            }
                        }
                    }

                    Store (Ones, Local0)
                }
                Else
                {
                    Store (Ones, Local0)
                }

                Return (Local0)
            }
            Else
            {
                If (ECAV ())
                {
                    Store (EB0S, Local1)
                    And (Local1, 0xFFFF, Local1)
                    If (LNotEqual (Local1, 0xFFFF))
                    {
                        And (Local1, 0x16, Local1)
                        If (LEqual (Local1, 0x04))
                        {
                            Store (Zero, Local0)
                        }
                        Else
                        {
                            If (LEqual (Local1, 0x02))
                            {
                                Store (One, Local0)
                            }
                            Else
                            {
                                If (LEqual (Local1, 0x10))
                                {
                                    Store (One, Local0)
                                }
                            }
                        }
                    }

                    Store (Ones, Local0)
                }
                Else
                {
                    Store (Ones, Local0)
                }

                Return (Local0)
            }
        }

        Method (CHBT, 1, Serialized)
        {
            Store (GBTT (Arg0), Local1)
            If (LEqual (Local1, 0xFF))
            {
                Store (Zero, Local0)
            }
            Else
            {
                And (Local1, 0x10, Local0)
                If (Local0)
                {
                    Store (One, Local0)
                }
            }

            Return (Local0)
        }

        Method (TACH, 1, NotSerialized)
        {
            If (ECAV ())
            {
                If (Arg0)
                {
                    Store (F1TS, Local0)
                }
                Else
                {
                    Store (F0TS, Local0)
                }

                Store (0x8CA0, Local1)
                Divide (Local1, Local0, Local2, Local0)
                Multiply (Local0, 0x3C, Local0)
            }
            Else
            {
                Store (Zero, Local0)
            }

            Return (Local0)
        }

        Method (EC0S, 1, NotSerialized)
        {
        }

        Method (EC0W, 1, NotSerialized)
        {
            If (LLessEqual (Arg0, 0x04))
            {
                Store (ACPS (), \WMI0.ACPF)
                Store (DCPS (Zero), \WMI0.DCPF)
                PNOT ()
            }
        }

        Name (FHKM, One)
        Method (FHKW, 0, Serialized)
        {
            While (LNot (FHKM))
            {
                Sleep (0x0A)
            }

            Store (Zero, FHKM)
        }

        Method (FHKS, 0, Serialized)
        {
            Store (One, FHKM)
        }

        Method (_Q0A, 0, NotSerialized)  // _Qxx: EC Query
        {
            Notify (SLPB, 0x80)
        }

        Method (_Q0B, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (LGreaterEqual (OSFG, OSW8))
            {
                ^^^^ASHS.NTFY (0x88)
                Return (Zero)
            }

            If (And (^^^^ATKD.WAPF, 0x04))
            {
                If (ATKP)
                {
                    ^^^^ATKD.NTFY (0x88)
                }
            }
            Else
            {
                Store (OHWR (), Local0)
                If (And (Local0, 0x02))
                {
                    If (And (Local0, One))
                    {
                        Store (One, Local0)
                    }
                    Else
                    {
                        Store (Zero, Local0)
                    }
                }
                Else
                {
                    Store (One, Local0)
                }

                If (Local0)
                {
                    If (And (^^^^ATKD.WAPF, One))
                    {
                        If (LAnd (\WMI0.WLDP, \WMI0.BTDP))
                        {
                            Store (\WMI0.WRST, Local0)
                            Or (ShiftLeft (\WMI0.BRST, One), Local0, Local0)
                            Increment (Local0)
                            If (LGreater (Local0, 0x03))
                            {
                                Store (Zero, Local0)
                            }

                            Store (DerefOf (Index (WBTL, Local0)), Local1)
                            If (LEqual (Local1, Zero))
                            {
                                ^^^^ATKD.NTFY (0x5D)
                                Sleep (0x0DAC)
                                OBTD (Zero)
                                ^^^^ATKD.NTFY (0x7E)
                            }

                            If (LEqual (Local1, One))
                            {
                                ^^^^ATKD.NTFY (0x5D)
                                Sleep (0x0DAC)
                                OBTD (Zero)
                                ^^^^ATKD.NTFY (0x7E)
                            }

                            If (LEqual (Local1, 0x02))
                            {
                                ^^^^ATKD.NTFY (0x5D)
                                Sleep (0x0DAC)
                                OBTD (One)
                                ^^^^ATKD.NTFY (0x7D)
                            }

                            If (LEqual (Local1, 0x03))
                            {
                                ^^^^ATKD.NTFY (0x5D)
                                Sleep (0x0DAC)
                                OBTD (One)
                                ^^^^ATKD.NTFY (0x7D)
                            }
                        }
                        Else
                        {
                            If (\WMI0.WLDP)
                            {
                                ^^^^ATKD.NTFY (0x5D)
                            }
                            Else
                            {
                                If (\WMI0.BTDP)
                                {
                                    If (\WMI0.BRST)
                                    {
                                        OBTD (Zero)
                                        ^^^^ATKD.NTFY (0x7E)
                                    }
                                    Else
                                    {
                                        OBTD (One)
                                        ^^^^ATKD.NTFY (0x7D)
                                    }
                                }
                            }
                        }
                    }
                    Else
                    {
                        If (LAnd (\WMI0.WLDP, \WMI0.BTDP))
                        {
                            Store (\WMI0.WRST, Local0)
                            Or (ShiftLeft (\WMI0.BRST, One), Local0, Local0)
                            Increment (Local0)
                            If (LGreater (Local0, 0x03))
                            {
                                Store (Zero, Local0)
                            }

                            Store (DerefOf (Index (WBTL, Local0)), Local1)
                            If (LEqual (Local1, Zero))
                            {
                                OWLD (Zero)
                                ^^^^ATKD.NTFY (0x5F)
                                Sleep (0x0DAC)
                                OBTD (Zero)
                                ^^^^ATKD.NTFY (0x7E)
                            }

                            If (LEqual (Local1, One))
                            {
                                OWLD (One)
                                ^^^^ATKD.NTFY (0x5E)
                                Sleep (0x0DAC)
                                OBTD (Zero)
                                ^^^^ATKD.NTFY (0x7E)
                            }

                            If (LEqual (Local1, 0x02))
                            {
                                OWLD (Zero)
                                ^^^^ATKD.NTFY (0x5F)
                                Sleep (0x0DAC)
                                OBTD (One)
                                ^^^^ATKD.NTFY (0x7D)
                            }

                            If (LEqual (Local1, 0x03))
                            {
                                OWLD (One)
                                ^^^^ATKD.NTFY (0x5E)
                                Sleep (0x0DAC)
                                OBTD (One)
                                ^^^^ATKD.NTFY (0x7D)
                            }
                        }
                        Else
                        {
                            If (\WMI0.WLDP)
                            {
                                If (\WMI0.WRST)
                                {
                                    OWLD (Zero)
                                    ^^^^ATKD.NTFY (0x5F)
                                }
                                Else
                                {
                                    OWLD (One)
                                    ^^^^ATKD.NTFY (0x5E)
                                }
                            }
                            Else
                            {
                                If (\WMI0.BTDP)
                                {
                                    If (\WMI0.BRST)
                                    {
                                        OBTD (Zero)
                                        ^^^^ATKD.NTFY (0x7E)
                                    }
                                    Else
                                    {
                                        OBTD (One)
                                        ^^^^ATKD.NTFY (0x7D)
                                    }
                                }
                            }
                        }
                    }
                }
                Else
                {
                    If (\WMI0.WLDP)
                    {
                        ^^^^ATKD.NTFY (0x5F)
                    }

                    If (LAnd (\WMI0.WLDP, \WMI0.BTDP))
                    {
                        Sleep (0x0DAC)
                    }

                    If (\WMI0.BTDP)
                    {
                        ^^^^ATKD.NTFY (0x7E)
                    }
                }
            }
        }

        Name (WBTL, Package (0x04)
        {
            Zero, 
            One, 
            0x02, 
            0x03
        })
        Method (_Q0E, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (LGreaterEqual (OSFG, OSVT))
            {
                If (^^^VGA.PRST ())
                {
                    ^^^VGA.DWBL ()
                }
            }
            Else
            {
                If (LGreater (\WMI0.LBTN, Zero))
                {
                    Decrement (\WMI0.LBTN)
                }

                If (LGreater (\WMI0.LBTN, 0x0A))
                {
                    Store (0x0A, \WMI0.LBTN)
                }

                STBR ()
                If (ATKP)
                {
                    ^^^^ATKD.NTFY (Add (\WMI0.LBTN, 0x20))
                }
            }

            Return (One)
        }

        Method (_Q0F, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (LGreaterEqual (OSFG, OSVT))
            {
                If (^^^VGA.PRST ())
                {
                    ^^^VGA.UPBL ()
                }
            }
            Else
            {
                If (LLess (\WMI0.LBTN, 0x0A))
                {
                    Increment (\WMI0.LBTN)
                }
                Else
                {
                    Store (0x0A, \WMI0.LBTN)
                }

                STBR ()
                If (ATKP)
                {
                    ^^^^ATKD.NTFY (Add (\WMI0.LBTN, 0x10))
                }
            }

            Return (One)
        }

        Method (_Q10, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (LIDP)
            {
                If (ATKP)
                {
                    ^^^^ATKD.NTFY (0x35)
                }
            }
            Else
            {
                Store (One, Local0)
                Store (RPIN (0x05, 0x07), Local0)
                XOr (Local0, One, Local0)
                SPIN (0x05, 0x07, Local0)
                If (ATKP)
                {
                    Subtract (0x34, Local0, Local0)
                    ^^^^ATKD.NTFY (Local0)
                }
            }
        }

        Name (AVNC, Package (0x20)
        {
            0x61, 
            0x61, 
            0x62, 
            0x63, 
            0x64, 
            0x65, 
            0x66, 
            0x67, 
            0x8C, 
            0x8D, 
            0x8E, 
            0x90, 
            0x8F, 
            0x91, 
            0x92, 
            0x93, 
            0xA0, 
            0xA1, 
            0xA2, 
            0xA4, 
            0xA3, 
            0xA5, 
            0xA6, 
            0xA7, 
            0x61, 
            0x61, 
            0x61, 
            0x61, 
            0x61, 
            0x61, 
            0x61, 
            0x61
        })
        Name (LVNC, Package (0x04)
        {
            Zero, 
            0x61, 
            0x62, 
            0xA0
        })
        Name (FNF8, Zero)
        Method (_QD7, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (FNF8)
            {
                ECXT (0xB8, 0x02, Zero, Zero, Zero, Zero)
                Store (Zero, FNF8)
            }
        }

        Method (_Q11, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (LGreaterEqual (OSFG, OSW8))
            {
                If (LEqual (FNF8, Zero))
                {
                    ECXT (0xB8, Zero, Zero, Zero, Zero, Zero)
                    Sleep (0x01F4)
                    ECXT (0xB8, One, Zero, Zero, Zero, Zero)
                    Sleep (0x01F4)
                    Store (One, FNF8)
                }
                Else
                {
                    ECXT (0xB8, One, Zero, Zero, Zero, Zero)
                }
            }
            Else
            {
                FHKW ()
                Store (ADVG (), Local0)
                If (NATK ())
                {
                    If (LEqual (OSFG, OSLX))
                    {
                        If (LEqual (Local0, 0x10))
                        {
                            Store (0x03, Local0)
                        }

                        Store (DerefOf (Index (LVNC, Local0)), Local1)
                    }
                    Else
                    {
                        Store (DerefOf (Index (AVNC, Local0)), Local1)
                    }

                    If (ATKP)
                    {
                        ^^^^ATKD.NTFY (Local1)
                    }
                    Else
                    {
                        SWHG (Local0)
                    }
                }
                Else
                {
                    SWHG (Local0)
                }

                FHKS ()
            }
        }

        Method (_Q13, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (LGreaterEqual (OSFG, OSW8))
            {
                ECXT (0xB8, 0x03, Zero, Zero, Zero, Zero)
            }
            Else
            {
                If (ATKP)
                {
                    ^^^^ATKD.NTFY (0x32)
                }
            }
        }

        Method (_Q14, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (LGreaterEqual (OSFG, OSW8))
            {
                ECXT (0xB8, 0x04, Zero, Zero, Zero, Zero)
            }
            Else
            {
                If (LLess (\WMI0.AVOL, 0x0F))
                {
                    Increment (\WMI0.AVOL)
                }

                If (ATKP)
                {
                    ^^^^ATKD.NTFY (0x31)
                }
            }
        }

        Method (_Q15, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (LGreaterEqual (OSFG, OSW8))
            {
                ECXT (0xB8, 0x05, Zero, Zero, Zero, Zero)
            }
            Else
            {
                If (LGreater (\WMI0.AVOL, Zero))
                {
                    Decrement (\WMI0.AVOL)
                }

                If (ATKP)
                {
                    ^^^^ATKD.NTFY (0x30)
                }
            }
        }

        Method (_Q6C, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (ATKP)
            {
                ^^^^ATKD.NTFY (0x45)
            }
        }

        Method (_Q6B, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (ATKP)
            {
                ^^^^ATKD.NTFY (0x43)
            }
        }

        Method (_Q6D, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (ATKP)
            {
                ^^^^ATKD.NTFY (0x40)
            }
        }

        Method (_Q6E, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (ATKP)
            {
                ^^^^ATKD.NTFY (0x41)
            }
        }

        Method (_Q12, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (ATKP)
            {
                ShiftLeft (One, 0x0E, Local0)
                If (And (IOST, Local0))
                {
                    ^^^^ATKD.NTFY (0x6B)
                }
                Else
                {
                    ^^^^ATKD.NTFY (0x6F)
                }
            }
        }

        Method (_Q0C, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (ATKP)
            {
                ^^^^ATKD.NTFY (0x50)
            }
        }

        Method (_Q0D, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (ATKP)
            {
                ^^^^ATKD.NTFY (0x51)
            }
        }

        Method (_Q72, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (ATKP)
            {
                ^^^^ATKD.NTFY (0x5C)
            }
        }

        Method (_Q71, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (ATKP)
            {
                ^^^^ATKD.NTFY (0x8A)
            }
        }

        Method (_Q70, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (ATKP)
            {
                ^^^^ATKD.NTFY (0x82)
            }
        }

        Method (_Q73, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (ATKP)
            {
                ^^^^ATKD.NTFY (0x84)
            }
        }

        Method (_QB0, 0, NotSerialized)  // _Qxx: EC Query
        {
            Store (RRAM (0x051C), Local0)
            If (And (Local0, 0x02))
            {
                Store (One, CRTF)
                Store (Zero, PSVF)
            }
            Else
            {
                If (And (Local0, One))
                {
                    Store (One, PSVF)
                    Store (Zero, CRTF)
                }
                Else
                {
                    Store (Zero, PSVF)
                    Store (Zero, CRTF)
                }
            }

            Notify (\_TZ.THRM, 0x80)
        }

        Method (_QCC, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (ATKP)
            {
                ^^^^ATKD.NTFY (0x6D)
            }
            Else
            {
                Notify (SLPB, 0x80)
            }
        }

        Method (_Q60, 0, NotSerialized)  // _Qxx: EC Query
        {
            Notify (PWRB, 0x80)
        }

        Method (_Q68, 0, NotSerialized)  // _Qxx: EC Query
        {
        }

        Method (_QA0, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (ACPS ())
            {
                Store (One, \WMI0.ACPF)
                Store (0x58, Local0)
            }
            Else
            {
                Store (Zero, \WMI0.ACPF)
                Store (0x57, Local0)
            }

            If (LLess (OSFG, OSVT))
            {
                STBR ()
            }

            Notify (AC0, 0x80)
            If (ATKP)
            {
                ^^^^ATKD.NTFY (Local0)
            }

            Sleep (0x64)
            PNOT ()
            Sleep (0x0A)
            NBAT (0x80)
        }

        Method (_Q6F, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (ATKP)
            {
                ^^^^ATKD.NTFY (0xB5)
            }
        }

        Method (_QA5, 0, NotSerialized)  // _Qxx: EC Query
        {
            If (ATKP)
            {
                ^^^^ATKD.NTFY (0x6D)
            }
            Else
            {
                If (BATP (Zero))
                {
                    Notify (BAT0, 0x80)
                }
            }
        }

        Method (_QAE, 0, NotSerialized)  // _Qxx: EC Query
        {
            SGPL (0x04, One, Zero)
        }

        Method (_QAF, 0, NotSerialized)  // _Qxx: EC Query
        {
            SGPL (0x04, One, One)
        }

        Method (_QBE, 0, NotSerialized)  // _Qxx: EC Query
        {
            SGPL (0x04, One, Zero)
        }

        Method (_QBF, 0, NotSerialized)  // _Qxx: EC Query
        {
            SGPL (0x04, One, One)
        }

        Method (_QA6, 0, NotSerialized)  // _Qxx: EC Query
        {
            Store (One, \WMI0.SLMT)
            PNOT ()
        }

        Method (_QA7, 0, NotSerialized)  // _Qxx: EC Query
        {
            Store (\WMI0.CPUP, \WMI0.SLMT)
            PNOT ()
        }

        Method (_QAC, 0, NotSerialized)  // _Qxx: EC Query
        {
        }

        Method (_QAD, 0, NotSerialized)  // _Qxx: EC Query
        {
        }

        Method (_QBA, 0, NotSerialized)  // _Qxx: EC Query
        {
            SGPL (0x1A, One, Zero)
        }

        Method (_QBB, 0, NotSerialized)  // _Qxx: EC Query
        {
            SGPL (0x1A, One, One)
        }
    }

    Scope (_TZ)
    {
    }

    Scope (_SB.PCI0.SBRG.HEC)
    {
        Method (MF63, 4, NotSerialized)
        {
            If (LNotEqual (Arg1, 0x63))
            {
                Return (Zero)
            }

            If (LEqual (Arg2, One))
            {
                M631 (Arg0, Arg1)
            }

            If (LEqual (Arg2, 0x02))
            {
                M632 (Arg0, Arg1)
            }

            If (LEqual (Arg2, 0x03))
            {
                M633 (Arg0, Arg1)
            }

            If (LEqual (Arg2, 0x04))
            {
                M634 (Arg0, Arg1)
            }

            If (LEqual (Arg2, 0x05))
            {
                M635 (Arg0, Arg1)
            }

            If (LEqual (Arg2, 0x06))
            {
                M636 (Arg0, Arg1)
            }

            If (LEqual (Arg2, 0x07))
            {
                M637 (Arg0, Arg1)
            }

            If (LEqual (Arg2, 0x08))
            {
                M638 (Arg0, Arg1)
            }

            If (LEqual (Arg2, 0x09))
            {
                M639 (Arg0, Arg1)
            }

            If (LEqual (Arg2, 0x0A))
            {
                M63A (Arg0, Arg1)
            }

            If (LEqual (Arg2, 0x0B))
            {
                M63B (Arg0, Arg1)
            }

            If (LEqual (Arg2, 0x0C))
            {
                M63C (Arg0, Arg1)
            }

            If (LEqual (Arg2, 0x0D))
            {
                M63D (Arg0, Arg1)
            }

            If (LEqual (Arg2, 0x0E))
            {
                M63E (Arg0, Arg1)
            }

            Return (Zero)
        }

        Method (M631, 2, NotSerialized)
        {
            OperationRegion (FM63, SystemMemory, Arg0, 0x10)
            Field (FM63, ByteAcc, NoLock, Preserve)
            {
                Offset (0x06), 
                SM63,   8, 
                EM63,   8, 
                FUNC,   8, 
                TSXR,   8, 
                TSXL,   8
            }

            Or (SM63, 0x80, SM63)
            Store (Zero, EM63)
            If (LEqual (FUNC, Zero))
            {
                Store (RRAM (0x03E2), TSXR)
                Store (RRAM (0x03E3), TSXL)
            }
            Else
            {
                If (LEqual (FUNC, One))
                {
                    Store (RRAM (0x03E0), TSXR)
                    Store (RRAM (0x03E1), TSXL)
                }
                Else
                {
                    Store (0x80, SM63)
                    Store (One, EM63)
                }
            }

            Return (Zero)
        }

        Method (M632, 2, NotSerialized)
        {
            OperationRegion (FM63, SystemMemory, Arg0, 0x10)
            Field (FM63, ByteAcc, NoLock, Preserve)
            {
                Offset (0x06), 
                SM63,   8, 
                EM63,   8, 
                DEVS,   8, 
                DEVT,   16
            }

            Store (0x80, SM63)
            Store (Zero, EM63)
            If (LEqual (DEVS, Zero))
            {
                Store (\WMI0.TJMX, DEVT)
            }
            Else
            {
                If (LEqual (DEVS, One))
                {
                    Store (TH0R, DEVT)
                }
                Else
                {
                    If (LEqual (DEVS, 0x02))
                    {
                        Store (Zero, DEVT)
                    }
                    Else
                    {
                        Store (0x80, SM63)
                        Store (One, EM63)
                    }
                }
            }

            Return (Zero)
        }

        Method (M633, 2, NotSerialized)
        {
            OperationRegion (FM63, SystemMemory, Arg0, 0x10)
            Field (FM63, ByteAcc, NoLock, Preserve)
            {
                Offset (0x06), 
                SM63,   8, 
                EM63,   8, 
                FANX,   8, 
                FANS,   8, 
                FANT,   16, 
                TRGG,   8
            }

            Or (SM63, 0x80, SM63)
            Store (Zero, EM63)
            If (LEqual (FANX, Zero))
            {
                Store (F0CS, FANS)
                Store (F0TS, FANT)
                Store (RRAM (0x0576), TRGG)
            }
            Else
            {
                If (LEqual (FANX, One))
                {
                    Store (F1CS, FANS)
                    Store (F1TS, FANT)
                    Store (RRAM (0x0577), TRGG)
                }
                Else
                {
                    Store (0x80, SM63)
                    Store (One, EM63)
                }
            }

            Return (Zero)
        }

        Method (M634, 2, NotSerialized)
        {
            OperationRegion (FM63, SystemMemory, Arg0, 0x10)
            Field (FM63, ByteAcc, NoLock, Preserve)
            {
                Offset (0x06), 
                SM63,   8, 
                EM63,   8, 
                FUNC,   8, 
                PARA,   8, 
                DATA,   8
            }

            Or (SM63, 0x80, SM63)
            Store (Zero, EM63)
            If (LEqual (FUNC, Zero))
            {
                Name (_T_0, Zero)  // _T_x: Emitted by ASL Compiler
                Store (ToInteger (PARA), _T_0)
                If (LEqual (_T_0, Zero))
                {
                    Store (RRAM (0x0521), DATA)
                }
                Else
                {
                    If (LEqual (_T_0, One))
                    {
                        Store (RRAM (0x0522), DATA)
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x02))
                        {
                            Store (RRAM (0x0523), DATA)
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x03))
                            {
                                Store (RRAM (0x0524), DATA)
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x04))
                                {
                                    Store (RRAM (0x0509), DATA)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x05))
                                    {
                                        Store (RRAM (0x050A), DATA)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x06))
                                        {
                                            Store (RRAM (0x0568), DATA)
                                        }
                                        Else
                                        {
                                            Store (0x80, SM63)
                                            Store (One, EM63)
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            Else
            {
                If (LEqual (FUNC, One))
                {
                    Name (_T_1, Zero)  // _T_x: Emitted by ASL Compiler
                    Store (ToInteger (PARA), _T_1)
                    If (LEqual (_T_1, Zero))
                    {
                        WRAM (0x0521, DATA)
                    }
                    Else
                    {
                        If (LEqual (_T_1, One))
                        {
                            WRAM (0x0522, DATA)
                        }
                        Else
                        {
                            If (LEqual (_T_1, 0x02))
                            {
                                WRAM (0x0523, DATA)
                            }
                            Else
                            {
                                If (LEqual (_T_1, 0x03))
                                {
                                    WRAM (0x0524, DATA)
                                }
                                Else
                                {
                                    If (LEqual (_T_1, 0x04))
                                    {
                                        WRAM (0x0509, DATA)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_1, 0x05))
                                        {
                                            WRAM (0x050A, DATA)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_1, 0x06))
                                            {
                                                WRAM (0x0568, DATA)
                                            }
                                            Else
                                            {
                                                Store (0x80, SM63)
                                                Store (One, EM63)
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                Else
                {
                    Store (0x80, SM63)
                    Store (One, EM63)
                }
            }

            Return (Zero)
        }

        Method (M635, 2, NotSerialized)
        {
            OperationRegion (FM63, SystemMemory, Arg0, 0x10)
            Field (FM63, ByteAcc, NoLock, Preserve)
            {
                Offset (0x06), 
                SM63,   8, 
                EM63,   8, 
                FUNC,   8, 
                ECSD,   8, 
                OSSD,   8, 
                OSPV,   8, 
                THON,   8, 
                THOF,   8, 
                FNER,   8, 
                VGSD,   8
            }

            Or (SM63, 0x80, SM63)
            Store (Zero, EM63)
            If (LEqual (FUNC, Zero))
            {
                Store (RRAM (0x0530), ECSD)
                Store (RRAM (0x03E4), OSSD)
                Store (RRAM (0x03E5), OSPV)
                Store (RRAM (0x0533), THON)
                Store (RRAM (0x0534), THOF)
                Store (RRAM (0x0535), FNER)
                Store (RRAM (0x0536), VGSD)
            }
            Else
            {
                If (LEqual (FUNC, One))
                {
                    WRAM (0x0530, ECSD)
                    WRAM (0x03E4, OSSD)
                    WRAM (0x03E5, OSPV)
                    WRAM (0x0533, THON)
                    WRAM (0x0534, THOF)
                    WRAM (0x0535, FNER)
                    WRAM (0x0536, VGSD)
                }
                Else
                {
                    Store (0x80, SM63)
                    Store (One, EM63)
                }
            }

            Return (Zero)
        }

        Method (M636, 2, NotSerialized)
        {
            OperationRegion (FM63, SystemMemory, Arg0, 0x20)
            Field (FM63, ByteAcc, NoLock, Preserve)
            {
                Offset (0x06), 
                SM63,   8, 
                EM63,   8, 
                FUNC,   8, 
                ALGM,   8, 
                TTS1,   8, 
                TTS2,   8, 
                TTS3,   8, 
                TTS4,   8, 
                TTS5,   8, 
                TTS6,   8, 
                TTS7,   8, 
                TTS8,   8, 
                TFFP,   8
            }

            Or (SM63, 0x80, SM63)
            Store (Zero, EM63)
            If (LEqual (FUNC, Zero))
            {
                If (LEqual (ALGM, Zero))
                {
                    Store (RRAM (0x0537), TTS1)
                    Store (RRAM (0x0538), TTS2)
                    Store (RRAM (0x0539), TTS3)
                    Store (RRAM (0x053A), TTS4)
                    Store (RRAM (0x053B), TTS5)
                    Store (RRAM (0x053C), TTS6)
                    Store (RRAM (0x053D), TTS7)
                    Store (RRAM (0x053E), TTS8)
                    Store (RRAM (0x053F), TFFP)
                }
                Else
                {
                    If (LEqual (ALGM, One))
                    {
                        Store (RRAM (0x0597), TTS1)
                        Store (RRAM (0x0598), TTS2)
                        Store (RRAM (0x0599), TTS3)
                        Store (RRAM (0x059A), TTS4)
                        Store (RRAM (0x059B), TTS5)
                        Store (RRAM (0x059C), TTS6)
                        Store (RRAM (0x059D), TTS7)
                        Store (RRAM (0x059E), TTS8)
                        Store (RRAM (0x059F), TFFP)
                    }
                    Else
                    {
                        Store (0x80, SM63)
                        Store (One, EM63)
                    }
                }
            }
            Else
            {
                If (LEqual (FUNC, One))
                {
                    If (LEqual (ALGM, Zero))
                    {
                        WRAM (0x0537, TTS1)
                        WRAM (0x0538, TTS2)
                        WRAM (0x0539, TTS3)
                        WRAM (0x053A, TTS4)
                        WRAM (0x053B, TTS5)
                        WRAM (0x053C, TTS6)
                        WRAM (0x053D, TTS7)
                        WRAM (0x053E, TTS8)
                        WRAM (0x053F, TFFP)
                    }
                    Else
                    {
                        If (LEqual (ALGM, One))
                        {
                            WRAM (0x0597, TTS1)
                            WRAM (0x0598, TTS2)
                            WRAM (0x0599, TTS3)
                            WRAM (0x059A, TTS4)
                            WRAM (0x059B, TTS5)
                            WRAM (0x059C, TTS6)
                            WRAM (0x059D, TTS7)
                            WRAM (0x059E, TTS8)
                            WRAM (0x059F, TFFP)
                        }
                        Else
                        {
                            Store (0x80, SM63)
                            Store (One, EM63)
                        }
                    }
                }
                Else
                {
                    Store (0x80, SM63)
                    Store (One, EM63)
                }
            }
        }

        Method (M637, 2, NotSerialized)
        {
            OperationRegion (FM63, SystemMemory, Arg0, 0x20)
            Field (FM63, ByteAcc, NoLock, Preserve)
            {
                Offset (0x06), 
                SM63,   8, 
                EM63,   8, 
                FUNC,   8, 
                ALGM,   8, 
                TDA1,   8, 
                TDA2,   8, 
                TDA3,   8, 
                TDA4,   8, 
                TDA5,   8, 
                TDA6,   8, 
                TDA7,   8, 
                TDA8,   8
            }

            Or (SM63, 0x80, SM63)
            Store (Zero, EM63)
            If (LEqual (FUNC, Zero))
            {
                If (LEqual (ALGM, Zero))
                {
                    Store (RRAM (0x0548), TDA1)
                    Store (RRAM (0x0549), TDA2)
                    Store (RRAM (0x054A), TDA3)
                    Store (RRAM (0x054B), TDA4)
                    Store (RRAM (0x054C), TDA5)
                    Store (RRAM (0x054D), TDA6)
                    Store (RRAM (0x054E), TDA7)
                    Store (RRAM (0x054F), TDA8)
                }
                Else
                {
                    If (LEqual (ALGM, One))
                    {
                        Store (RRAM (0x05A8), TDA1)
                        Store (RRAM (0x05A9), TDA2)
                        Store (RRAM (0x05AA), TDA3)
                        Store (RRAM (0x05AB), TDA4)
                        Store (RRAM (0x05AC), TDA5)
                        Store (RRAM (0x05AD), TDA6)
                        Store (RRAM (0x05AE), TDA7)
                        Store (RRAM (0x05AF), TDA8)
                    }
                    Else
                    {
                        Store (0x80, SM63)
                        Store (One, EM63)
                    }
                }
            }
            Else
            {
                If (LEqual (FUNC, One))
                {
                    If (LEqual (ALGM, Zero))
                    {
                        WRAM (0x0548, TDA1)
                        WRAM (0x0549, TDA2)
                        WRAM (0x054A, TDA3)
                        WRAM (0x054B, TDA4)
                        WRAM (0x054C, TDA5)
                        WRAM (0x054D, TDA6)
                        WRAM (0x054E, TDA7)
                        WRAM (0x054F, TDA8)
                    }
                    Else
                    {
                        If (LEqual (ALGM, One))
                        {
                            WRAM (0x05A8, TDA1)
                            WRAM (0x05A9, TDA2)
                            WRAM (0x05AA, TDA3)
                            WRAM (0x05AB, TDA4)
                            WRAM (0x05AC, TDA5)
                            WRAM (0x05AD, TDA6)
                            WRAM (0x05AE, TDA7)
                            WRAM (0x05AF, TDA8)
                        }
                        Else
                        {
                            Store (0x80, SM63)
                            Store (One, EM63)
                        }
                    }
                }
                Else
                {
                    Store (0x80, SM63)
                    Store (One, EM63)
                }
            }
        }

        Method (M638, 2, NotSerialized)
        {
            OperationRegion (FM63, SystemMemory, Arg0, 0x20)
            Field (FM63, ByteAcc, NoLock, Preserve)
            {
                Offset (0x06), 
                SM63,   8, 
                EM63,   8, 
                FUNC,   8, 
                ALGM,   8, 
                ASC1,   8, 
                ASC2,   8, 
                ASC3,   8, 
                ASC4,   8, 
                ADA1,   8, 
                ADA2,   8, 
                ADA3,   8, 
                ADA4,   8, 
                DSC1,   8, 
                DSC2,   8, 
                DSC3,   8, 
                DSC4,   8, 
                DDA1,   8, 
                DDA2,   8, 
                DDA3,   8, 
                DDA4,   8
            }

            Or (SM63, 0x80, SM63)
            Store (Zero, EM63)
            If (LEqual (FUNC, Zero))
            {
                If (LEqual (ALGM, Zero))
                {
                    Store (RRAM (0x0550), ASC1)
                    Store (RRAM (0x0551), ASC2)
                    Store (RRAM (0x0552), ASC3)
                    Store (RRAM (0x0553), ASC4)
                    Store (RRAM (0x0554), ADA1)
                    Store (RRAM (0x0555), ADA2)
                    Store (RRAM (0x0556), ADA3)
                    Store (RRAM (0x0557), ADA4)
                    Store (RRAM (0x0558), DSC1)
                    Store (RRAM (0x0559), DSC2)
                    Store (RRAM (0x055A), DSC3)
                    Store (RRAM (0x055B), DSC4)
                    Store (RRAM (0x055C), DDA1)
                    Store (RRAM (0x055D), DDA2)
                    Store (RRAM (0x055E), DDA3)
                    Store (RRAM (0x055F), DDA4)
                }
                Else
                {
                    If (LEqual (ALGM, One))
                    {
                        Store (RRAM (0x05B0), ASC1)
                        Store (RRAM (0x05B1), ASC2)
                        Store (RRAM (0x05B2), ASC3)
                        Store (RRAM (0x05B3), ASC4)
                        Store (RRAM (0x05B4), ADA1)
                        Store (RRAM (0x05B5), ADA2)
                        Store (RRAM (0x05B6), ADA3)
                        Store (RRAM (0x05B7), ADA4)
                        Store (RRAM (0x05B8), DSC1)
                        Store (RRAM (0x05B9), DSC2)
                        Store (RRAM (0x05BA), DSC3)
                        Store (RRAM (0x05BB), DSC4)
                        Store (RRAM (0x05BC), DDA1)
                        Store (RRAM (0x05BD), DDA2)
                        Store (RRAM (0x05BE), DDA3)
                        Store (RRAM (0x05BF), DDA4)
                    }
                    Else
                    {
                        Store (0x80, SM63)
                        Store (One, EM63)
                    }
                }
            }
            Else
            {
                If (LEqual (FUNC, One))
                {
                    If (LEqual (ALGM, Zero))
                    {
                        WRAM (0x0550, ASC1)
                        WRAM (0x0551, ASC2)
                        WRAM (0x0552, ASC3)
                        WRAM (0x0553, ASC4)
                        WRAM (0x0554, ADA1)
                        WRAM (0x0555, ADA2)
                        WRAM (0x0556, ADA3)
                        WRAM (0x0557, ADA4)
                        WRAM (0x0558, DSC1)
                        WRAM (0x0559, DSC2)
                        WRAM (0x055A, DSC3)
                        WRAM (0x055B, DSC4)
                        WRAM (0x055C, DDA1)
                        WRAM (0x055D, DDA2)
                        WRAM (0x055E, DDA3)
                        WRAM (0x055F, DDA4)
                    }
                    Else
                    {
                        If (LEqual (ALGM, One))
                        {
                            WRAM (0x05B0, ASC1)
                            WRAM (0x05B1, ASC2)
                            WRAM (0x05B2, ASC3)
                            WRAM (0x05B3, ASC4)
                            WRAM (0x05B4, ADA1)
                            WRAM (0x05B5, ADA2)
                            WRAM (0x05B6, ADA3)
                            WRAM (0x05B7, ADA4)
                            WRAM (0x05B8, DSC1)
                            WRAM (0x05B9, DSC2)
                            WRAM (0x05BA, DSC3)
                            WRAM (0x05BB, DSC4)
                            WRAM (0x05BC, DDA1)
                            WRAM (0x05BD, DDA2)
                            WRAM (0x05BE, DDA3)
                            WRAM (0x05BF, DDA4)
                        }
                        Else
                        {
                            Store (0x80, SM63)
                            Store (One, EM63)
                        }
                    }
                }
                Else
                {
                    Store (0x80, SM63)
                    Store (One, EM63)
                }
            }
        }

        Method (M639, 2, NotSerialized)
        {
            OperationRegion (FM63, SystemMemory, Arg0, 0x20)
            Field (FM63, ByteAcc, NoLock, Preserve)
            {
                Offset (0x06), 
                SM63,   8, 
                EM63,   8, 
                FUNC,   8, 
                ALGM,   8, 
                HYS1,   8, 
                HYS2,   8, 
                HYS3,   8, 
                HYS4,   8, 
                HYS5,   8, 
                HYS6,   8, 
                HYS7,   8, 
                HYS8,   8
            }

            Or (SM63, 0x80, SM63)
            Store (Zero, EM63)
            If (LEqual (FUNC, Zero))
            {
                If (LEqual (ALGM, Zero))
                {
                    Store (RRAM (0x0540), HYS1)
                    Store (RRAM (0x0541), HYS2)
                    Store (RRAM (0x0542), HYS3)
                    Store (RRAM (0x0543), HYS4)
                    Store (RRAM (0x0544), HYS5)
                    Store (RRAM (0x0545), HYS6)
                    Store (RRAM (0x0546), HYS7)
                    Store (RRAM (0x0547), HYS8)
                }
                Else
                {
                    If (LEqual (ALGM, One))
                    {
                        Store (RRAM (0x05A0), HYS1)
                        Store (RRAM (0x05A1), HYS2)
                        Store (RRAM (0x05A2), HYS3)
                        Store (RRAM (0x05A3), HYS4)
                        Store (RRAM (0x05A4), HYS5)
                        Store (RRAM (0x05A5), HYS6)
                        Store (RRAM (0x05A6), HYS7)
                        Store (RRAM (0x05A7), HYS8)
                    }
                    Else
                    {
                        Store (0x80, SM63)
                        Store (One, EM63)
                    }
                }
            }
            Else
            {
                If (LEqual (FUNC, One))
                {
                    If (LEqual (ALGM, Zero))
                    {
                        WRAM (0x0540, HYS1)
                        WRAM (0x0541, HYS2)
                        WRAM (0x0542, HYS3)
                        WRAM (0x0543, HYS4)
                        WRAM (0x0544, HYS5)
                        WRAM (0x0545, HYS6)
                        WRAM (0x0546, HYS7)
                        WRAM (0x0547, HYS8)
                    }
                    Else
                    {
                        If (LEqual (ALGM, One))
                        {
                            WRAM (0x05A0, HYS1)
                            WRAM (0x05A1, HYS2)
                            WRAM (0x05A2, HYS3)
                            WRAM (0x05A3, HYS4)
                            WRAM (0x05A4, HYS5)
                            WRAM (0x05A5, HYS6)
                            WRAM (0x05A6, HYS7)
                            WRAM (0x05A7, HYS8)
                        }
                        Else
                        {
                            Store (0x80, SM63)
                            Store (One, EM63)
                        }
                    }
                }
                Else
                {
                    Store (0x80, SM63)
                    Store (One, EM63)
                }
            }

            Return (Zero)
        }

        Method (M63A, 2, NotSerialized)
        {
            OperationRegion (FM63, SystemMemory, Arg0, 0x20)
            Field (FM63, ByteAcc, NoLock, Preserve)
            {
                Offset (0x06), 
                SM63,   8, 
                EM63,   8, 
                FUNC,   8, 
                FANX,   8, 
                TA1L,   8, 
                TA1H,   8, 
                TA2L,   8, 
                TA2H,   8, 
                TA3L,   8, 
                TA3H,   8, 
                TA4L,   8, 
                TA4H,   8, 
                TA5L,   8, 
                TA5H,   8, 
                TA6L,   8, 
                TA6H,   8, 
                TA7L,   8, 
                TA7H,   8, 
                TA8L,   8, 
                TA8H,   8
            }

            Or (SM63, 0x80, SM63)
            Store (Zero, EM63)
            If (LEqual (FUNC, Zero))
            {
                If (LEqual (FANX, Zero))
                {
                    Store (RRAM (0x05C0), TA1L)
                    Store (RRAM (0x05C1), TA1H)
                    Store (RRAM (0x05C2), TA2L)
                    Store (RRAM (0x05C3), TA2H)
                    Store (RRAM (0x05C4), TA3L)
                    Store (RRAM (0x05C5), TA3H)
                    Store (RRAM (0x05C6), TA4L)
                    Store (RRAM (0x05C7), TA4H)
                    Store (RRAM (0x05C8), TA5L)
                    Store (RRAM (0x05C9), TA5H)
                    Store (RRAM (0x05CA), TA6L)
                    Store (RRAM (0x05CB), TA6H)
                    Store (RRAM (0x05CC), TA7L)
                    Store (RRAM (0x05CD), TA7H)
                    Store (RRAM (0x05CE), TA8L)
                    Store (RRAM (0x05CF), TA8H)
                }
                Else
                {
                    If (LEqual (FANX, One))
                    {
                        Store (RRAM (0x05D0), TA1L)
                        Store (RRAM (0x05D1), TA1H)
                        Store (RRAM (0x05D2), TA2L)
                        Store (RRAM (0x05D3), TA2H)
                        Store (RRAM (0x05D4), TA3L)
                        Store (RRAM (0x05D5), TA3H)
                        Store (RRAM (0x05D6), TA4L)
                        Store (RRAM (0x05D7), TA4H)
                        Store (RRAM (0x05D8), TA5L)
                        Store (RRAM (0x05D9), TA5H)
                        Store (RRAM (0x05DA), TA6L)
                        Store (RRAM (0x05DB), TA6H)
                        Store (RRAM (0x05DC), TA7L)
                        Store (RRAM (0x05DD), TA7H)
                        Store (RRAM (0x05DE), TA8L)
                        Store (RRAM (0x05DF), TA8H)
                    }
                    Else
                    {
                        Store (0x80, SM63)
                        Store (One, EM63)
                    }
                }
            }
            Else
            {
                If (LEqual (FUNC, One))
                {
                    If (LEqual (FANX, Zero))
                    {
                        WRAM (0x05C0, TA1L)
                        WRAM (0x05C1, TA1H)
                        WRAM (0x05C2, TA2L)
                        WRAM (0x05C3, TA2H)
                        WRAM (0x05C4, TA3L)
                        WRAM (0x05C5, TA3H)
                        WRAM (0x05C6, TA4L)
                        WRAM (0x05C7, TA4H)
                        WRAM (0x05C8, TA5L)
                        WRAM (0x05C9, TA5H)
                        WRAM (0x05CA, TA6L)
                        WRAM (0x05CB, TA6H)
                        WRAM (0x05CC, TA7L)
                        WRAM (0x05CD, TA7H)
                        WRAM (0x05CE, TA8L)
                        WRAM (0x05CF, TA8H)
                    }
                    Else
                    {
                        If (LEqual (FANX, One))
                        {
                            WRAM (0x05D0, TA1L)
                            WRAM (0x05D1, TA1H)
                            WRAM (0x05D2, TA2L)
                            WRAM (0x05D3, TA2H)
                            WRAM (0x05D4, TA3L)
                            WRAM (0x05D5, TA3H)
                            WRAM (0x05D6, TA4L)
                            WRAM (0x05D7, TA4H)
                            WRAM (0x05D8, TA5L)
                            WRAM (0x05D9, TA5H)
                            WRAM (0x05DA, TA6L)
                            WRAM (0x05DB, TA6H)
                            WRAM (0x05DC, TA7L)
                            WRAM (0x05DD, TA7H)
                            WRAM (0x05DE, TA8L)
                            WRAM (0x05DF, TA8H)
                        }
                        Else
                        {
                            Store (0x80, SM63)
                            Store (One, EM63)
                        }
                    }
                }
                Else
                {
                    Store (0x80, SM63)
                    Store (One, EM63)
                }
            }

            Return (Zero)
        }

        Method (M63B, 2, NotSerialized)
        {
            OperationRegion (FM63, SystemMemory, Arg0, 0x20)
            Field (FM63, ByteAcc, NoLock, Preserve)
            {
                Offset (0x06), 
                SM63,   8, 
                EM63,   8, 
                FUNC,   8, 
                PARA,   8, 
                DATA,   8
            }

            Or (SM63, 0x80, SM63)
            Store (Zero, EM63)
            If (LEqual (FUNC, Zero))
            {
                If (LEqual (PARA, Zero))
                {
                    Store (RRAM (0x0569), DATA)
                }
                Else
                {
                    If (LEqual (PARA, One))
                    {
                        Store (RRAM (0x056A), DATA)
                    }
                    Else
                    {
                        Store (0x80, SM63)
                        Store (One, EM63)
                    }
                }
            }
            Else
            {
                If (LEqual (FUNC, One))
                {
                    If (LEqual (PARA, Zero))
                    {
                        WRAM (0x0569, DATA)
                    }
                    Else
                    {
                        If (LEqual (PARA, One))
                        {
                            WRAM (0x056A, DATA)
                        }
                        Else
                        {
                            Store (0x80, SM63)
                            Store (One, EM63)
                        }
                    }
                }
                Else
                {
                    Store (0x80, SM63)
                    Store (One, EM63)
                }
            }

            Return (Zero)
        }

        Method (M63C, 2, NotSerialized)
        {
            OperationRegion (FM63, SystemMemory, Arg0, 0x20)
            Field (FM63, ByteAcc, NoLock, Preserve)
            {
                Offset (0x06), 
                SM63,   8, 
                EM63,   8, 
                FUNC,   8, 
                DATA,   8
            }

            Or (SM63, 0x80, SM63)
            Store (Zero, EM63)
            If (LEqual (FUNC, Zero))
            {
                Store (RRAM (0x0511), DATA)
            }
            Else
            {
                If (LEqual (FUNC, One))
                {
                    Store (RRAM (0x0512), DATA)
                }
                Else
                {
                    If (LEqual (FUNC, 0x02))
                    {
                        Store (RRAM (0x0513), DATA)
                    }
                    Else
                    {
                        Store (0x80, SM63)
                        Store (One, EM63)
                    }
                }
            }

            Return (Zero)
        }

        Method (M63D, 2, NotSerialized)
        {
            OperationRegion (FM63, SystemMemory, Arg0, 0x10)
            Field (FM63, ByteAcc, NoLock, Preserve)
            {
                Offset (0x06), 
                SM63,   8, 
                EM63,   8, 
                FUNC,   8, 
                FREQ,   16
            }

            Or (SM63, 0x80, SM63)
            Store (Zero, EM63)
            If (LEqual (FUNC, Zero))
            {
                Store (0x017D7840, Local0)
                Store (RRAM (0xF4A0), Local1)
                Add (Local1, One, Local1)
                Store (RRAM (0xF4A2), Local2)
                Add (Local2, One, Local2)
                Multiply (Local2, Local1, Local2)
                Divide (Local0, Local2, Local3, Local1)
                Store (Local1, FREQ)
            }
            Else
            {
                If (LEqual (FUNC, One))
                {
                    Store (Zero, FREQ)
                }
                Else
                {
                    Store (0x80, SM63)
                    Store (One, EM63)
                }
            }

            Return (Zero)
        }

        Method (M63E, 2, NotSerialized)
        {
            OperationRegion (FM63, SystemMemory, Arg0, 0x10)
            Field (FM63, ByteAcc, NoLock, Preserve)
            {
                Offset (0x06), 
                SM63,   8, 
                EM63,   8, 
                FUNC,   8, 
                FANX,   8, 
                FAND,   8
            }

            Or (SM63, 0x80, SM63)
            Store (Zero, EM63)
            If (LEqual (FUNC, Zero))
            {
                If (LEqual (FANX, Zero))
                {
                    Store (RFOV (Zero), FAND)
                }
                Else
                {
                    If (LEqual (FANX, One))
                    {
                        Store (RFOV (One), FAND)
                    }
                    Else
                    {
                        Store (0x80, SM63)
                        Store (One, EM63)
                    }
                }
            }
            Else
            {
                If (LEqual (FUNC, One))
                {
                    If (LEqual (FANX, Zero))
                    {
                        WFOV (Zero, FAND)
                    }
                    Else
                    {
                        If (LEqual (FANX, One))
                        {
                            WFOV (One, FAND)
                        }
                        Else
                        {
                            Store (0x80, SM63)
                            Store (One, EM63)
                        }
                    }
                }
                Else
                {
                    Store (0x80, SM63)
                    Store (One, EM63)
                }
            }

            Return (Zero)
        }
    }

    Scope (_SB.PCI0.SBRG.HEC)
    {
        Method (MF30, 4, NotSerialized)
        {
            If (LNotEqual (Arg1, 0x30))
            {
                Return (Zero)
            }

            Store (0xFF, Local0)
            If (LEqual (Arg2, Zero))
            {
                Store (G30V (Arg0, Arg3), Local0)
            }

            If (LEqual (Arg2, One))
            {
                Store (EC01 (Arg0, Arg3), Local0)
            }

            If (LEqual (Arg2, 0x02))
            {
                Store (EC02 (Arg0, Arg3), Local0)
            }

            If (LEqual (Arg2, 0x03))
            {
                Store (EC03 (Arg0, Arg3), Local0)
            }

            If (LEqual (Arg2, 0x84))
            {
                Store (EC84 (Arg0, Arg3), Local0)
            }

            And (Arg2, 0xFC, Local2)
            If (LEqual (Local2, 0x80))
            {
                ^^^^ATKD.BSMI (Arg0)
                If (LEqual (Arg2, 0x81))
                {
                    If (BATP (Zero))
                    {
                        Notify (BAT0, 0x80)
                    }
                }

                Return (Zero)
            }

            If (LEqual (Local0, 0xFF))
            {
                Return (Zero)
            }

            OperationRegion (FM30, SystemMemory, Arg0, 0x08)
            Field (FM30, DWordAcc, NoLock, Preserve)
            {
                Offset (0x06), 
                SM30,   8, 
                EM30,   8
            }

            If (Local0)
            {
                Store (Local0, EM30)
                Or (SM30, 0x02, SM30)
            }

            And (SM30, 0xFE, SM30)
            Or (SM30, 0x80, SM30)
            Return (Zero)
        }

        Method (G30V, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0C))
            {
                Return (0x02)
            }

            OperationRegion (\F300, SystemMemory, Arg0, Arg1)
            Field (F300, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                SVER,   16, 
                MVER,   16
            }

            Store (Zero, MVER)
            Store (Zero, SVER)
            Return (Zero)
        }

        Method (EC01, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x10))
            {
                Return (0x02)
            }

            OperationRegion (FEC1, SystemMemory, Arg0, Arg1)
            Field (FEC1, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                ECMD,   8, 
                EDA1,   8, 
                EDA2,   8, 
                EDA3,   8, 
                EDA4,   8, 
                EDA5,   8
            }

            Store (ECXT (ECMD, EDA1, EDA2, EDA3, EDA4, EDA5), Local0)
            Store (DerefOf (Index (Local0, One)), EDA1)
            Store (DerefOf (Index (Local0, One)), EDA2)
            Store (DerefOf (Index (Local0, One)), EDA3)
            Store (DerefOf (Index (Local0, One)), EDA4)
            Store (DerefOf (Index (Local0, One)), EDA5)
            Return (DerefOf (Index (Local0, Zero)))
        }

        Method (EC02, 2, NotSerialized)
        {
            Return (Zero)
        }

        Method (EC03, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x09))
            {
                Return (0x02)
            }

            Store (Zero, Local0)
            OperationRegion (FEC3, SystemMemory, Arg0, Arg1)
            Field (FEC3, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                FNEN,   8
            }

            If (FNEN)
            {
                FNLK (One)
            }
            Else
            {
                FNLK (Zero)
            }

            Return (Zero)
        }

        Method (EC84, 2, NotSerialized)
        {
            If (LLess (Arg1, 0x0A))
            {
                Return (0x02)
            }

            OperationRegion (ECEG, SystemMemory, Arg0, Arg1)
            Field (ECEG, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                EVTP,   8, 
                EVID,   8
            }

            ECXT (0xAE, EVTP, EVID, Zero, Zero, Zero)
            Return (Zero)
        }
    }

    Scope (_SB.ATKD)
    {
        Method (MF42, 4, NotSerialized)
        {
            If (LEqual (Arg1, 0x42))
            {
                OperationRegion (F042, SystemMemory, Arg0, 0x08)
                Field (F042, DWordAcc, NoLock, Preserve)
                {
                    MFUN,   16, 
                    SFUN,   16, 
                    LEN,    16, 
                    STAS,   8, 
                    EROR,   8
                }

                Store (One, Local0)
                If (LEqual (Arg2, One))
                {
                    Store (SFB0 (Arg0, Arg3), Local0)
                }

                If (LEqual (Arg2, 0x02))
                {
                    Store (SAOC (Arg0, Arg3), Local0)
                }

                If (LEqual (Arg2, 0x03))
                {
                    Store (GBST (Arg0, Arg3), Local0)
                }

                If (Local0)
                {
                    Store (Local0, EROR)
                    Or (STAS, 0x02, STAS)
                }

                Or (STAS, 0x80, STAS)
                Return (Zero)
            }
        }

        Method (SFB0, 2, NotSerialized)
        {
            OperationRegion (F421, SystemMemory, Arg0, Arg1)
            Field (F421, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                SOPT,   8
            }

            Return (Zero)
        }

        Method (SAOC, 2, NotSerialized)
        {
            OperationRegion (F422, SystemMemory, Arg0, Arg1)
            Field (F422, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                CNTF,   8
            }

            Return (Zero)
        }

        Method (GBST, 2, NotSerialized)
        {
            OperationRegion (F423, SystemMemory, Arg0, Arg1)
            Field (F423, DWordAcc, NoLock, Preserve)
            {
                Offset (0x08), 
                BOT1,   64, 
                BOT2,   64
            }

            Store (\WMI0.TBOT, BOT1)
            Store (\WMI0.TRTC, BOT2)
            Return (Zero)
        }
    }

    Scope (_SB.ATKD)
    {
        Method (DS3S, 1, NotSerialized)
        {
            Store (^^PCI0.SBRG.HEC.RRAM (0x02FA), Local0)
            If (LEqual (Arg0, 0x03))
            {
                If (\WMI0.DS3F)
                {
                    And (0xFE, Local0, Local0)
                }
                Else
                {
                    Or (One, Local0, Local0)
                }
            }
            Else
            {
                And (0xFE, Local0, Local0)
            }

            ^^PCI0.SBRG.HEC.WRAM (0x02FA, Local0)
        }

        Method (DS3W, 1, NotSerialized)
        {
            If (LNot (\WMI0.DS3F))
            {
                Notify (SLPB, 0x02)
            }
        }

        Method (DESP, 1, Serialized)
        {
            If (Arg0)
            {
                Store (Zero, \WMI0.DS3F)
            }
            Else
            {
                Store (One, \WMI0.DS3F)
            }

            Return (One)
        }

        Method (GDS3, 1, Serialized)
        {
            If (\WMI0.DS3F)
            {
                Return (0x00010000)
            }
            Else
            {
                Return (0x00010001)
            }
        }

        Method (NS3P, 0, NotSerialized)
        {
            Store (^^PCI0.SBRG.HEC.RRAM (0x0C4A), Local0)
            Store (^^PCI0.SBRG.HEC.RRAM (0x0C4B), Local1)
            ShiftLeft (Local0, 0x08, Local0)
            Add (Local0, Local1, Local0)
            If (LEqual (Local0, Zero))
            {
                Return (0xFFEB)
            }

            Return (Local0)
        }

        Method (DS3P, 0, NotSerialized)
        {
            Store (^^PCI0.SBRG.HEC.RRAM (0x0C4A), Local0)
            Store (^^PCI0.SBRG.HEC.RRAM (0x0C4B), Local1)
            ShiftLeft (Local0, 0x08, Local0)
            Add (Local0, Local1, Local0)
            If (LEqual (Local0, Zero))
            {
                Return (0xFFF3)
            }

            Return (Local0)
        }

        Method (T2BF, 0, NotSerialized)
        {
            Store (^^PCI0.SBRG.HEC.SMBR (^^PCI0.SBRG.HEC.RDWD, 0x16, 0x13), Local0)
            If (LNotEqual (DerefOf (Index (Local0, Zero)), Zero))
            {
                Return (0xFFFF)
            }

            Store (DerefOf (Index (Local0, 0x02)), Local1)
            Return (Local1)
        }

        Method (N3MV, 0, NotSerialized)
        {
            Store (^^PCI0.SBRG.HEC.RRAM (0x0C48), Local0)
            Store (^^PCI0.SBRG.HEC.RRAM (0x0C49), Local1)
            ShiftLeft (Local0, 0x08, Local0)
            Add (Local0, Local1, Local0)
            If (LEqual (Local0, Zero))
            {
                Return (0x3EDA)
            }

            Subtract (0xFFFF, Local0, Local0)
            Return (Local0)
        }

        Method (D3MV, 0, NotSerialized)
        {
            Store (^^PCI0.SBRG.HEC.RRAM (0x0C48), Local0)
            Store (^^PCI0.SBRG.HEC.RRAM (0x0C49), Local1)
            ShiftLeft (Local0, 0x08, Local0)
            Add (Local0, Local1, Local0)
            If (LEqual (Local0, Zero))
            {
                Return (0x3EDA)
            }

            Subtract (0xFFFF, Local0, Local0)
            Return (Local0)
        }

        Method (S4PC, 0, NotSerialized)
        {
            Return (0x0A)
        }

        Method (IOMB, 1, Serialized)
        {
            Store (^^PCI0.SBRG.HEC.RRAM (0x02FA), Local0)
            If (Arg0)
            {
                Or (0x02, Local0, Local0)
            }
            Else
            {
                And (0xFD, Local0, Local0)
            }

            ^^PCI0.SBRG.HEC.WRAM (0x02FA, Local0)
            Return (One)
        }

        Method (IOMT, 1, Serialized)
        {
            Return (One)
        }
    }

    Scope (_SB.ATKD)
    {
        Method (FSMI, 1, NotSerialized)
        {
            Store (Arg0, \WMI0.FSFN)
            Or (Arg0, 0xA0, Local0)
            ISMI (0x90)
            Return (\WMI0.FSTA)
        }

        Method (FLSH, 1, NotSerialized)
        {
            Store (Arg0, \WMI0.FSTA)
            FSMI (Zero)
        }

        Method (FINI, 1, NotSerialized)
        {
            Store (Arg0, \WMI0.FADR)
            Return (FSMI (One))
        }

        Method (FERS, 1, NotSerialized)
        {
            Store (Arg0, \WMI0.FSTA)
            Return (FSMI (0x02))
        }

        Method (FWRI, 1, NotSerialized)
        {
            Store (Arg0, \WMI0.FADR)
            Store (0x1000, \WMI0.FSIZ)
            Return (Subtract (0x1000, FSMI (0x03)))
        }

        Method (FWRP, 0, NotSerialized)
        {
            Store (Zero, \WMI0.FSIZ)
            Return (Subtract (0x1000, FSMI (0x03)))
        }

        Method (FEBW, 1, NotSerialized)
        {
            Store (Arg0, \WMI0.FADR)
            Return (FSMI (0x04))
        }

        Method (FEBR, 1, NotSerialized)
        {
            Store (Arg0, \WMI0.FADR)
            Return (FSMI (0x05))
        }

        Method (FEDW, 0, NotSerialized)
        {
            Return (FSMI (0x06))
        }

        Method (ECSR, 1, NotSerialized)
        {
            Store (Arg0, \WMI0.FSTA)
            Return (FSMI (0x07))
        }

        Method (FLSC, 1, NotSerialized)
        {
            Store (Arg0, \WMI0.FSTA)
            Return (FSMI (0x08))
        }

        Method (FIME, 1, NotSerialized)
        {
            Store (Arg0, \WMI0.FSTA)
            Return (FSMI (0x09))
        }

        Method (FREC, 1, NotSerialized)
        {
            Store (Arg0, \WMI0.FSTA)
            Return (FSMI (0x0A))
        }

        Method (FCPW, 1, NotSerialized)
        {
            Store (Arg0, \WMI0.FADR)
            Store (0x1000, \WMI0.FSIZ)
            Return (FSMI (0x0D))
        }

        Method (FCPP, 0, NotSerialized)
        {
            Store (Zero, \WMI0.FSIZ)
            Return (FSMI (0x0D))
        }

        Method (WFLH, 5, Serialized)
        {
            If (LEqual (Arg2, 0x66))
            {
                If (LEqual (Arg3, One))
                {
                    OperationRegion (WFLS, SystemMemory, Arg0, 0x0100)
                    Field (WFLS, DWordAcc, NoLock, Preserve)
                    {
                        Offset (0x06), 
                        STAS,   8, 
                        REST,   8, 
                        FSFN,   8, 
                        FSTA,   16, 
                        FADR,   32, 
                        FSIZ,   16
                    }

                    Store (0x90, \WMI0.TRTY)
                    Store (FSFN, \WMI0.FSFN)
                    Store (FSTA, \WMI0.FSTA)
                    Store (FADR, \WMI0.FADR)
                    Store (FSIZ, \WMI0.FSIZ)
                    If (LEqual (FSFN, One))
                    {
                        Store (Arg1, \WMI0.FADR)
                    }
                    Else
                    {
                        If (LEqual (FSFN, 0x80))
                        {
                            Store (Arg1, \WMI0.FADR)
                        }
                        Else
                        {
                            If (LEqual (FSFN, 0x81))
                            {
                                Store (Arg1, \WMI0.FADR)
                            }
                        }
                    }

                    ISMI (0x90)
                    Store (0x012C, Local0)
                    While (LAnd (Local0, \WMI0.TRTY))
                    {
                        Sleep (One)
                        Decrement (Local0)
                    }

                    Store (\WMI0.FSFN, FSFN)
                    Store (\WMI0.FSTA, FSTA)
                    Store (\WMI0.FADR, FADR)
                    Store (\WMI0.FSIZ, FSIZ)
                    And (STAS, 0xFE, STAS)
                    Or (STAS, 0x80, STAS)
                    Return (Zero)
                }
                Else
                {
                    \WMI0.WSMI (Arg4)
                    Return (Zero)
                }

                Return (Zero)
            }

            Return (Zero)
        }

        Method (FIN2, 1, NotSerialized)
        {
            Store (Zero, \WMI0.FSTA)
            Return (FSMI (0x80))
        }
    }

    Scope (_SB.ATKD)
    {
        Method (GVBD, 5, NotSerialized)
        {
            If (LEqual (Arg2, 0x69))
            {
                If (LEqual (Arg3, One))
                {
                    \WMI0.WSMI (Arg4)
                    Return (Zero)
                }

                If (LEqual (Arg3, 0x02))
                {
                    \WMI0.WSMI (Arg4)
                    Return (Zero)
                }
            }

            Return (Zero)
        }
    }

    Scope (_SB.ATKD)
    {
        Method (MF1F, 4, NotSerialized)
        {
            If (LEqual (Arg1, 0x1F))
            {
                OperationRegion (F01F, SystemMemory, Arg0, 0x08)
                Field (F01F, DWordAcc, NoLock, Preserve)
                {
                    MFUN,   16, 
                    SFUN,   16, 
                    LEN,    16, 
                    STAS,   8, 
                    EROR,   8
                }

                BSMI (Arg0)
                And (STAS, 0xFE, STAS)
            }
        }
    }

    Scope (\)
    {
        Method (LIMT, 0, NotSerialized)
        {
            Subtract (\WMI0.CPUP, \WMI0.SLMT, Local0)
            Return (Local0)
        }

        Method (PRJS, 1, Serialized)
        {
        }

        Method (PRJW, 1, Serialized)
        {
            \_SB.PCI0.SBRG.HEC.STBR ()
        }

        Method (PRJB, 0, NotSerialized)
        {
            \_SB.PCI0.SBRG.HEC.WRAM (0x07FE, 0x80)
            \_SB.PCI0.SBRG.HEC.SMBW (\_SB.PCI0.SBRG.HEC.WRWD, \_SB.PCI0.SBRG.HEC.BADR, Zero, Zero, 0x1000)
        }

        Method (GLID, 0, Serialized)
        {
            Return (\_SB.PCI0.SBRG.HEC.RPIN (0x04, 0x06))
        }

        Method (OMLD, 1, Serialized)
        {
        }

        Method (OTLD, 1, Serialized)
        {
        }

        Method (OGLD, 1, Serialized)
        {
            Return (Zero)
        }

        Method (OWLD, 1, Serialized)
        {
            Store (Arg0, \WMI0.WRST)
            SGPL (0xBB, One, Arg0)
        }

        Method (OBTD, 1, Serialized)
        {
            Store (Arg0, \WMI0.BRST)
            SGPL (0xBD, One, Arg0)
        }

        Method (OHWR, 0, Serialized)
        {
            Store (Zero, Local0)
            If (\_SB.PCI0.PE21.WLAN.MPDP ())
            {
                Or (Local0, 0x80, Local0)
            }

            If (\WMI0.BTDP)
            {
                Or (Local0, 0x0100, Local0)
            }

            Return (Local0)
        }

        Method (ORST, 0, Serialized)
        {
            Store (Zero, Local0)
            If (\WMI0.WRST)
            {
                Or (Local0, One, Local0)
            }

            If (\WMI0.BRST)
            {
                Or (Local0, 0x02, Local0)
            }

            Return (Local0)
        }

        Method (GBTL, 0, Serialized)
        {
            Return (Zero)
        }

        Method (SBTL, 1, Serialized)
        {
        }

        Method (BL2C, 0, NotSerialized)
        {
            Return (Zero)
        }

        Method (ACPS, 0, Serialized)
        {
            Store (\_SB.PCI0.SBRG.HEC.RPIN (0x02, 0x04), Local0)
            Return (Local0)
        }

        Method (OGND, 0, NotSerialized)
        {
            If (\_SB.PCI0.VGA.PRST ())
            {
                Return (\_SB.PCI0.VGA.NXTD)
            }

            Return (Zero)
        }

        Method (OEAD, 0, NotSerialized)
        {
            If (\_SB.PCI0.VGA.PRST ())
            {
                Return (\WMI0.AVLD)
            }

            Return (Zero)
        }

        Method (OGCD, 0, NotSerialized)
        {
            If (\_SB.PCI0.VGA.PRST ())
            {
                Return (\_SB.PCI0.VGA.GETD ())
            }

            Return (Zero)
        }

        Method (DGSW, 1, Serialized)
        {
            If (Arg0)
            {
                SGPL (0x2C, One, Zero)
                SGPL (0x2D, One, Zero)
                Sleep (0x0A)
                SGPL (0x2D, One, One)
                Sleep (0x64)
                Store (RGPL (0x1C, One), Local0)
                While (LEqual (Local0, Zero))
                {
                    Store (RGPL (0x1C, One), Local0)
                }

                Sleep (0x64)
                SGPL (0x2C, One, One)
                Sleep (0x012C)
                Store (\_SB.PCI0.SBRG.HEC.RRAM (0x0520), Local0)
                \_SB.PCI0.SBRG.HEC.WRAM (0x0520, And (Local0, 0xFFFFFFFFFFFFFF7F))
                \_SB.PCI0.SBRG.HEC.WRAM (0x0523, 0x9D)
                \_SB.PCI0.SBRG.HEC.WRAM (0x0524, 0x9D)
                \_SB.PCI0.SBRG.HEC.WRAM (0x0522, 0x25)
                \_SB.PCI0.SBRG.HEC.WRAM (0x0521, 0xA5)
                \_SB.PCI0.SBRG.HEC.WRAM (0x0520, 0xB2)
            }
            Else
            {
                Store (\_SB.PCI0.SBRG.HEC.RRAM (0x0520), Local0)
                \_SB.PCI0.SBRG.HEC.WRAM (0x0520, And (Local0, 0xFFFFFFFFFFFFFF7F))
                \_SB.PCI0.SBRG.HEC.WRAM (0x0523, 0x9D)
                \_SB.PCI0.SBRG.HEC.WRAM (0x0522, Zero)
                \_SB.PCI0.SBRG.HEC.WRAM (0x0521, 0x85)
                \_SB.PCI0.SBRG.HEC.WRAM (0x0520, 0x81)
                Sleep (0x0A)
                SGPL (0x2C, One, Zero)
                Sleep (0x0A)
                SGPL (0x2D, One, Zero)
            }
        }

        Name (GPED, Zero)
        Scope (_SB.PCI0)
        {
            Device (AFD)
            {
                Name (_HID, "AFD0001")  // _HID: Hardware ID
                Name (ODZP, 0x80000001)
                Method (_STA, 0, NotSerialized)  // _STA: Status
                {
                    Return (Zero)
                }
            }
        }

        Scope (_SB.PCI0.SATA)
        {
            OperationRegion (SATX, PCI_Config, Zero, 0x43)
            Field (SATX, AnyAcc, NoLock, Preserve)
            {
                VIDI,   32, 
                Offset (0x24), 
                BA05,   32, 
                WTEN,   1, 
                Offset (0x42), 
                DIS0,   1, 
                DIS1,   1, 
                DIS2,   1, 
                DIS3,   1, 
                DIS4,   1, 
                DIS5,   1
            }

            Device (PRT1)
            {
                Name (_ADR, One)  // _ADR: Address
                Method (_STA, 0, NotSerialized)  // _STA: Status
                {
                    Return (Zero)
                }

                Device (ODD)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
                    {
                        Return (One)
                    }
                }
            }

            Device (ODDZ)
            {
                Method (_ADR, 0, NotSerialized)  // _ADR: Address
                {
                    If (LGreaterEqual (OSVR, 0x0F))
                    {
                        Return (0x0002FFFF)
                    }
                    Else
                    {
                        Return (0x02)
                    }
                }

                Name (WDSW, One)
                Name (ODPS, Zero)
                Method (_STA, 0, NotSerialized)  // _STA: Status
                {
                    If (LEqual (^^^AFD.ODZP, 0x80000000))
                    {
                        Return (Zero)
                    }
                    Else
                    {
                        Return (0x0F)
                    }
                }

                Method (_PS0, 0, NotSerialized)  // _PS0: Power State 0
                {
                    If (LEqual (^^^AFD.ODZP, 0x80000001))
                    {
                        If (LEqual (VIDI, 0x78041022))
                        {
                            Store (One, GPED)
                            Sleep (0x28)
                            SGPL (0x37, One, One)
                            Sleep (0x28)
                            Sleep (0x012C)
                            Store (Zero, GPED)
                        }

                        If (LEqual (VIDI, 0x78011022))
                        {
                            Store (Zero, DIS2)
                            Sleep (0x28)
                            Store (One, GPED)
                            Sleep (0x28)
                            SGPL (0x37, One, One)
                            Sleep (0x28)
                            Sleep (0x012C)
                            Store (Zero, GPED)
                        }
                    }

                    Store (Zero, ODPS)
                }

                Method (_PS3, 0, NotSerialized)  // _PS3: Power State 3
                {
                    If (LEqual (^^^AFD.ODZP, 0x80000001))
                    {
                        If (LEqual (VIDI, 0x78041022))
                        {
                            Store (One, GPED)
                            Sleep (0x28)
                            SGPL (0x37, One, Zero)
                            Sleep (0x28)
                            Sleep (0xC8)
                            Store (Zero, GPED)
                        }

                        If (LEqual (VIDI, 0x78011022))
                        {
                            Store (One, GPED)
                            Sleep (0x28)
                            SGPL (0x37, One, Zero)
                            Sleep (0x28)
                            Sleep (0xC8)
                            Store (Zero, GPED)
                            Store (One, DIS2)
                            Sleep (0x28)
                        }
                    }

                    Store (0x03, ODPS)
                }

                Method (_PSC, 0, NotSerialized)  // _PSC: Power State Current
                {
                    Return (ODPS)
                }

                Method (_DSW, 3, NotSerialized)  // _DSW: Device Sleep Wake
                {
                    If (Arg0)
                    {
                        Store (One, WDSW)
                    }
                    Else
                    {
                        Store (Zero, WDSW)
                    }
                }

                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
                {
                    _PS3 ()
                }

                Name (_S0W, 0x04)  // _S0W: S0 Device Wake State
                Device (ODD)
                {
                    Name (_ADR, Zero)  // _ADR: Address
                    Method (_RMV, 0, NotSerialized)  // _RMV: Removal Status
                    {
                        Return (Zero)
                    }
                }
            }
        }

        Scope (_GPE)
        {
            Method (_L1F, 0, NotSerialized)  // _Lxx: Level-Triggered GPE
            {
                If (LNotEqual (GPED, Zero))
                {
                    Return (Zero)
                }

                If (LEqual (\_SB.PCI0.AFD.ODZP, 0x80000001))
                {
                    If (RGPP (0x6F))
                    {
                        Sleep (0x14)
                        If (RGPL (0x6F, One))
                        {
                            SGPP (0x6F, Zero)
                            If (LOr (LEqual (\_SB.PCI0.SATA.VIDI, 0x78001022), LEqual (\_SB.PCI0.SATA.VIDI, 0x78011022)))
                            {
                                If (LGreaterEqual (OSVR, 0x0F))
                                {
                                    Notify (\_SB.PCI0.SATA.ODDZ, 0x02)
                                }
                                Else
                                {
                                    Notify (\_SB.PCI0.SATA.ODDZ, 0x80)
                                }
                            }

                            If (LEqual (\_SB.PCI0.SATA.VIDI, 0x78041022))
                            {
                                If (LGreaterEqual (OSVR, 0x0F))
                                {
                                    Notify (\_SB.PCI0.SATA.ODDZ, 0x02)
                                }
                                Else
                                {
                                    Notify (\_SB.PCI0.SATA.ODDZ, 0x80)
                                }
                            }

                            If (LEqual (\_SB.PCI0.SATA.VIDI, 0x78011022))
                            {
                                If (LGreaterEqual (OSVR, 0x0F))
                                {
                                    Notify (\_SB.PCI0.SATA.ODDZ, 0x02)
                                }
                                Else
                                {
                                    Notify (\_SB.PCI0.SATA.ODDZ, 0x80)
                                }
                            }
                        }
                    }
                    Else
                    {
                        Sleep (0x14)
                        If (LNot (RGPL (0x6F, Zero)))
                        {
                            SGPP (0x6F, One)
                            If (LOr (LEqual (\_SB.PCI0.SATA.VIDI, 0x78001022), LEqual (\_SB.PCI0.SATA.VIDI, 0x78011022)))
                            {
                                If (LGreaterEqual (OSVR, 0x0F))
                                {
                                    Notify (\_SB.PCI0.SATA.ODDZ, 0x02)
                                }
                                Else
                                {
                                    Notify (\_SB.PCI0.SATA.ODDZ, 0x80)
                                }
                            }

                            If (LEqual (\_SB.PCI0.SATA.VIDI, 0x78041022))
                            {
                                If (LGreaterEqual (OSVR, 0x0F))
                                {
                                    Notify (\_SB.PCI0.SATA.ODDZ, 0x02)
                                }
                                Else
                                {
                                    Notify (\_SB.PCI0.SATA.ODDZ, 0x80)
                                }
                            }

                            If (LEqual (\_SB.PCI0.SATA.VIDI, 0x78011022))
                            {
                                If (LGreaterEqual (OSVR, 0x0F))
                                {
                                    Notify (\_SB.PCI0.SATA.ODDZ, 0x02)
                                }
                                Else
                                {
                                    Notify (\_SB.PCI0.SATA.ODDZ, 0x80)
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    Name (_S0, Package (0x04)  // _S0_: S0 System State
    {
        Zero, 
        Zero, 
        Zero, 
        Zero
    })
    If (SS3)
    {
        Name (_S3, Package (0x04)  // _S3_: S3 System State
        {
            0x03, 
            Zero, 
            Zero, 
            Zero
        })
    }

    If (SS4)
    {
        Name (_S4, Package (0x04)  // _S4_: S4 System State
        {
            0x04, 
            Zero, 
            Zero, 
            Zero
        })
    }

    Name (_S5, Package (0x04)  // _S5_: S5 System State
    {
        0x05, 
        Zero, 
        Zero, 
        Zero
    })
    Method (PTS, 1, NotSerialized)
    {
        If (Arg0)
        {
            SPTS (Arg0)
            \_SB.PCI0.NPTS (Arg0)
            \_SB.ATKD.GENS (Arg0)
            \_SB.ATKD.DS3S (Arg0)
            OEMS (Arg0)
        }
    }

    Method (WAK, 1, NotSerialized)
    {
        SWAK (Arg0)
        \_SB.PCI0.NWAK (Arg0)
        \_SB.ATKD.GENW (Arg0)
        \_SB.ATKD.DS3W (Arg0)
        OEMW (Arg0)
    }
}

Searching for HDEF also is not found in my DSDT.  Can anyone shed some light on why I am unable to apply this patch?  Specifically, when typing in my patch code "apply" is greyed out on maciASL.

 

I feel like I'm missing something really small and if someone could help and take a look at the DSDT/Patch I think it would be a 'easy' fix.... whether or not my ALC269VC actually works is another thing.

  • 2 weeks later...

It is possible the OEM placed it in one of the SSDTs. It is also possible to have a different name than HDEF (although rare).

 

Look for a device with 'Name (_ADR, 0x001B0000)'

 

Look in DSDT and all OEM SSDTs.

×
×
  • Create New...