All of lore.kernel.org
 help / color / mirror / Atom feed
* [SEABIOS PATCH 0/2] fix of hotplug multi-func device
@ 2011-09-19  6:53 Amos Kong
  2011-09-19  6:53 ` [SeaBIOS PATCH 1/2] Fix regression of commit 87b533bf Amos Kong
       [not found] ` <20110919065347.22802.53640.stgit@t>
  0 siblings, 2 replies; 56+ messages in thread
From: Amos Kong @ 2011-09-19  6:53 UTC (permalink / raw)
  To: seabios; +Cc: kvm, mst, jasowang, mtosatti, alex.williamson, kevin

Hotplug multi-func device doesn't work, only func 0 are regiestered 
to guest pci driver, this patchset just add device entry in ACPI 
DSDT tables for all functions in the slot.

---

Amos Kong (2):
      Fix regression of commit 87b533bf
      hotplug: Add device per func in ACPI DSDT tables


 0 files changed, 0 insertions(+), 0 deletions(-)

--
Amos

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

* [SeaBIOS PATCH 1/2] Fix regression of commit 87b533bf
  2011-09-19  6:53 [SEABIOS PATCH 0/2] fix of hotplug multi-func device Amos Kong
@ 2011-09-19  6:53 ` Amos Kong
  2011-09-19  7:27   ` [SeaBIOS PATCH 2/2] hotplug: Add device per func in ACPI DSDT tables Amos Kong
  2011-09-20  8:00   ` [SeaBIOS PATCH v2] Fix regression of commit 87b533bf Amos Kong
       [not found] ` <20110919065347.22802.53640.stgit@t>
  1 sibling, 2 replies; 56+ messages in thread
From: Amos Kong @ 2011-09-19  6:53 UTC (permalink / raw)
  To: seabios; +Cc: kvm, mst, jasowang, mtosatti, alex.williamson, kevin

After adding more device entries in ACPI DSDT tables,
the filesize of bios.bin changed from 128K to 256K.
But bios could not initialize successfully.

This is a regression since seabios commit 87b533bf. Prior to
that commit, seabios did not mark the early 32bit initialization
code as init code. However, a side effect of marking that code
(handle_post) as init code is that it is more likely the linker
could place the code at an address less than 0xe0000.
The patch (just a hack) would cover up the issue.

Signed-off-by: Amos Kong <akong@redhat.com>
---
 0 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/src/post.c b/src/post.c
index e195e89..bc2e548 100644
--- a/src/post.c
+++ b/src/post.c
@@ -336,7 +336,7 @@ reloc_init(void)
 // Start of Power On Self Test (POST) - the BIOS initilization phase.
 // This function does the setup needed for code relocation, and then
 // invokes the relocation and main setup code.
-void VISIBLE32INIT
+void VISIBLE32FLAT
 handle_post(void)
 {
     debug_serial_setup();
@@ -356,6 +356,14 @@ handle_post(void)
 
     // Allow writes to modify bios area (0xf0000)
     make_bios_writable();
+
+    void handle_post2(void);
+    handle_post2();
+}
+
+void VISIBLE32INIT
+handle_post2(void)
+{
     HaveRunPost = 1;
 
     // Detect ram and setup internal malloc.


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

* [SeaBIOS PATCH 2/2] hotplug: Add device per func in ACPI DSDT tables
  2011-09-19  6:53 ` [SeaBIOS PATCH 1/2] Fix regression of commit 87b533bf Amos Kong
@ 2011-09-19  7:27   ` Amos Kong
  2011-09-19  9:57     ` [SeaBIOS] " Gleb Natapov
  2011-09-20  8:00   ` [SeaBIOS PATCH v2] Fix regression of commit 87b533bf Amos Kong
  1 sibling, 1 reply; 56+ messages in thread
From: Amos Kong @ 2011-09-19  7:27 UTC (permalink / raw)
  To: seabios; +Cc: kvm, mst, jasowang, alex williamson


Only func 0 is registered to guest driver (we can
only found func 0 in slot->funcs list of driver),
the other functions could not be cleaned when
hot-removing the whole slot. This patch adds
device per function in ACPI DSDT tables.

Have tested with linux/winxp/win7, hot-adding/hot-remving,
single/multiple function device, they are all fine.

new acpi-dst.hex(332K):
http://amos-kong.rhcloud.com/pub/acpi-dsdt.hex

Signed-off-by: Amos Kong <akong@redhat.com>
---
 src/acpi-dsdt.dsl |   31 +++++++++++++++++++++++++------
 1 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl
index 08412e2..d1426ec 100644
--- a/src/acpi-dsdt.dsl
+++ b/src/acpi-dsdt.dsl
@@ -128,9 +128,9 @@ DefinitionBlock (
                 PCRM, 32,
             }
 
-#define hotplug_slot(name, nr) \
-            Device (S##name) {                    \
-               Name (_ADR, nr##0000)              \
+#define hotplug_func(name, nr, adr, fn) \
+            Device (S##name##fn) {                \
+               Name (_ADR, adr)                    \
                Method (_EJ0,1) {                  \
                     Store(ShiftLeft(1, nr), B0EJ) \
                     Return (0x0)                  \
@@ -138,6 +138,16 @@ DefinitionBlock (
                Name (_SUN, name)                  \
             }
 
+#define hotplug_slot(name, nr) \
+	    hotplug_func(name, nr, nr##0000, 0)  \
+	    hotplug_func(name, nr, nr##0001, 1)  \
+	    hotplug_func(name, nr, nr##0002, 2)  \
+	    hotplug_func(name, nr, nr##0003, 3)  \
+	    hotplug_func(name, nr, nr##0004, 4)  \
+	    hotplug_func(name, nr, nr##0005, 5)  \
+	    hotplug_func(name, nr, nr##0006, 6)  \
+	    hotplug_func(name, nr, nr##0007, 7)
+
 	    hotplug_slot(1, 0x0001)
 	    hotplug_slot(2, 0x0002)
 	    hotplug_slot(3, 0x0003)
@@ -842,13 +852,22 @@ DefinitionBlock (
             Return(0x01)
         }
 
-#define gen_pci_hotplug(nr)                                       \
+#define gen_pci_hotplug_func(nr, fn)                              \
             If (And(\_SB.PCI0.PCIU, ShiftLeft(1, nr))) {          \
-                Notify(\_SB.PCI0.S##nr, 1)                        \
+                Notify(\_SB.PCI0.S##nr##fn, 1)                    \
             }                                                     \
             If (And(\_SB.PCI0.PCID, ShiftLeft(1, nr))) {          \
-                Notify(\_SB.PCI0.S##nr, 3)                        \
+                Notify(\_SB.PCI0.S##nr##fn, 3)                    \
             }
+#define gen_pci_hotplug(nr) \
+	    gen_pci_hotplug_func(nr, 0)    \
+	    gen_pci_hotplug_func(nr, 1)    \
+	    gen_pci_hotplug_func(nr, 2)    \
+	    gen_pci_hotplug_func(nr, 3)    \
+	    gen_pci_hotplug_func(nr, 4)    \
+	    gen_pci_hotplug_func(nr, 5)    \
+	    gen_pci_hotplug_func(nr, 6)    \
+	    gen_pci_hotplug_func(nr, 7)
 
         Method(_L01) {
             gen_pci_hotplug(1)
-- 
1.7.6.1

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

* Re: [SeaBIOS PATCH 2/2] hotplug: Add device per func in ACPI DSDT tables
       [not found]   ` <20110919093644.GC4501@redhat.com>
@ 2011-09-19  9:49     ` Michael S. Tsirkin
  2011-09-19 10:04     ` Michael S. Tsirkin
  1 sibling, 0 replies; 56+ messages in thread
From: Michael S. Tsirkin @ 2011-09-19  9:49 UTC (permalink / raw)
  To: Amos Kong; +Cc: seabios, kvm, jasowang, mtosatti, alex.williamson, kevin

On Mon, Sep 19, 2011 at 12:36:44PM +0300, Michael S. Tsirkin wrote:
> On Mon, Sep 19, 2011 at 02:53:47PM +0800, Amos Kong wrote:
> > Only func 0 is registered to guest driver (we can
> > only found func 0 in slot->funcs list of driver),
> > the other functions could not be cleaned when
> > hot-removing the whole slot. This patch adds
> > device per function in ACPI DSDT tables.
> > 
> > Have tested with linux/winxp/win7, hot-adding/hot-remving,
> > single/multiple function device, they are all fine.
> > 
> > Signed-off-by: Amos Kong <akong@redhat.com>
> 
> On top of my previous patch, the below saves another 6K by moving the
> method to the correct scope. The code for hotplug handling
> also gets better organized this way which is nice.
> 
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

To clarify: both this and the previous patch are only compiled,
not tested.

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

* Re: [SeaBIOS] [SeaBIOS PATCH 2/2] hotplug: Add device per func in ACPI DSDT tables
  2011-09-19  7:27   ` [SeaBIOS PATCH 2/2] hotplug: Add device per func in ACPI DSDT tables Amos Kong
@ 2011-09-19  9:57     ` Gleb Natapov
  2011-09-19 10:02       ` Michael S. Tsirkin
  0 siblings, 1 reply; 56+ messages in thread
From: Gleb Natapov @ 2011-09-19  9:57 UTC (permalink / raw)
  To: Amos Kong; +Cc: seabios, kvm, mst, jasowang, alex williamson

On Mon, Sep 19, 2011 at 03:27:38AM -0400, Amos Kong wrote:
> 
> Only func 0 is registered to guest driver (we can
> only found func 0 in slot->funcs list of driver),
> the other functions could not be cleaned when
> hot-removing the whole slot. This patch adds
> device per function in ACPI DSDT tables.
> 
You can't unplug a single function. Guest surely knows that.

> Have tested with linux/winxp/win7, hot-adding/hot-remving,
> single/multiple function device, they are all fine.
> 
What was not fine before?

Have you looked at real HW that supports PCI hot plug DSDT? Does it
looks the same?

> new acpi-dst.hex(332K):
> http://amos-kong.rhcloud.com/pub/acpi-dsdt.hex
> 
> Signed-off-by: Amos Kong <akong@redhat.com>
> ---
>  src/acpi-dsdt.dsl |   31 +++++++++++++++++++++++++------
>  1 files changed, 25 insertions(+), 6 deletions(-)
> 
> diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl
> index 08412e2..d1426ec 100644
> --- a/src/acpi-dsdt.dsl
> +++ b/src/acpi-dsdt.dsl
> @@ -128,9 +128,9 @@ DefinitionBlock (
>                  PCRM, 32,
>              }
>  
> -#define hotplug_slot(name, nr) \
> -            Device (S##name) {                    \
> -               Name (_ADR, nr##0000)              \
> +#define hotplug_func(name, nr, adr, fn) \
> +            Device (S##name##fn) {                \
> +               Name (_ADR, adr)                    \
>                 Method (_EJ0,1) {                  \
>                      Store(ShiftLeft(1, nr), B0EJ) \
>                      Return (0x0)                  \
> @@ -138,6 +138,16 @@ DefinitionBlock (
>                 Name (_SUN, name)                  \
>              }
>  
> +#define hotplug_slot(name, nr) \
> +	    hotplug_func(name, nr, nr##0000, 0)  \
> +	    hotplug_func(name, nr, nr##0001, 1)  \
> +	    hotplug_func(name, nr, nr##0002, 2)  \
> +	    hotplug_func(name, nr, nr##0003, 3)  \
> +	    hotplug_func(name, nr, nr##0004, 4)  \
> +	    hotplug_func(name, nr, nr##0005, 5)  \
> +	    hotplug_func(name, nr, nr##0006, 6)  \
> +	    hotplug_func(name, nr, nr##0007, 7)
> +
>  	    hotplug_slot(1, 0x0001)
>  	    hotplug_slot(2, 0x0002)
>  	    hotplug_slot(3, 0x0003)
> @@ -842,13 +852,22 @@ DefinitionBlock (
>              Return(0x01)
>          }
>  
> -#define gen_pci_hotplug(nr)                                       \
> +#define gen_pci_hotplug_func(nr, fn)                              \
>              If (And(\_SB.PCI0.PCIU, ShiftLeft(1, nr))) {          \
> -                Notify(\_SB.PCI0.S##nr, 1)                        \
> +                Notify(\_SB.PCI0.S##nr##fn, 1)                    \
>              }                                                     \
>              If (And(\_SB.PCI0.PCID, ShiftLeft(1, nr))) {          \
> -                Notify(\_SB.PCI0.S##nr, 3)                        \
> +                Notify(\_SB.PCI0.S##nr##fn, 3)                    \
>              }
> +#define gen_pci_hotplug(nr) \
> +	    gen_pci_hotplug_func(nr, 0)    \
> +	    gen_pci_hotplug_func(nr, 1)    \
> +	    gen_pci_hotplug_func(nr, 2)    \
> +	    gen_pci_hotplug_func(nr, 3)    \
> +	    gen_pci_hotplug_func(nr, 4)    \
> +	    gen_pci_hotplug_func(nr, 5)    \
> +	    gen_pci_hotplug_func(nr, 6)    \
> +	    gen_pci_hotplug_func(nr, 7)
>  
>          Method(_L01) {
>              gen_pci_hotplug(1)
> -- 
> 1.7.6.1
> 
> _______________________________________________
> SeaBIOS mailing list
> SeaBIOS@seabios.org
> http://www.seabios.org/mailman/listinfo/seabios

--
			Gleb.

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

* Re: [SeaBIOS] [SeaBIOS PATCH 2/2] hotplug: Add device per func in ACPI DSDT tables
  2011-09-19  9:57     ` [SeaBIOS] " Gleb Natapov
@ 2011-09-19 10:02       ` Michael S. Tsirkin
  2011-09-19 10:12         ` Gleb Natapov
  2011-09-19 16:27         ` Marcelo Tosatti
  0 siblings, 2 replies; 56+ messages in thread
From: Michael S. Tsirkin @ 2011-09-19 10:02 UTC (permalink / raw)
  To: Gleb Natapov; +Cc: Amos Kong, seabios, kvm, jasowang, alex williamson

On Mon, Sep 19, 2011 at 12:57:33PM +0300, Gleb Natapov wrote:
> On Mon, Sep 19, 2011 at 03:27:38AM -0400, Amos Kong wrote:
> > 
> > Only func 0 is registered to guest driver (we can
> > only found func 0 in slot->funcs list of driver),
> > the other functions could not be cleaned when
> > hot-removing the whole slot. This patch adds
> > device per function in ACPI DSDT tables.
> > 
> You can't unplug a single function. Guest surely knows that.

Looking at guest code, it's clear that
at least a Linux guest doesn't know that.

> > Have tested with linux/winxp/win7, hot-adding/hot-remving,
> > single/multiple function device, they are all fine.
> > 
> What was not fine before?
> 
> Have you looked at real HW that supports PCI hot plug DSDT? Does it
> looks the same?

I recall I saw some examples like this on the net.


> > new acpi-dst.hex(332K):
> > http://amos-kong.rhcloud.com/pub/acpi-dsdt.hex
> > 
> > Signed-off-by: Amos Kong <akong@redhat.com>

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

* Re: [SeaBIOS PATCH 2/2] hotplug: Add device per func in ACPI DSDT tables
       [not found]   ` <20110919093644.GC4501@redhat.com>
  2011-09-19  9:49     ` [SeaBIOS PATCH 2/2] hotplug: Add device per func in ACPI DSDT tables Michael S. Tsirkin
@ 2011-09-19 10:04     ` Michael S. Tsirkin
  1 sibling, 0 replies; 56+ messages in thread
From: Michael S. Tsirkin @ 2011-09-19 10:04 UTC (permalink / raw)
  To: Amos Kong; +Cc: seabios, kvm, jasowang, mtosatti, alex.williamson, kevin

On Mon, Sep 19, 2011 at 12:36:44PM +0300, Michael S. Tsirkin wrote:
> On Mon, Sep 19, 2011 at 02:53:47PM +0800, Amos Kong wrote:
> > Only func 0 is registered to guest driver (we can
> > only found func 0 in slot->funcs list of driver),
> > the other functions could not be cleaned when
> > hot-removing the whole slot. This patch adds
> > device per function in ACPI DSDT tables.
> > 
> > Have tested with linux/winxp/win7, hot-adding/hot-remving,
> > single/multiple function device, they are all fine.
> > 
> > Signed-off-by: Amos Kong <akong@redhat.com>
> 
> On top of my previous patch, the below saves another 6K by moving the
> method to the correct scope. The code for hotplug handling
> also gets better organized this way which is nice.
> 
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

We naturally should cleanup the old macro, it's unused now,
even though this doe snot save space :)


diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl
index 36467ea..646f146 100644
--- a/src/acpi-dsdt.dsl
+++ b/src/acpi-dsdt.dsl
@@ -523,7 +523,7 @@ DefinitionBlock (
                 Notify(S##nr##5, 1)                \
                 Notify(S##nr##6, 1)                \
                 Notify(S##nr##7, 1)                \
-            }                                                \
+            }                                      \
             If (And(PCID, ShiftLeft(1, nr))) {     \
                 Notify(S##nr##0, 3)                \
                 Notify(S##nr##1, 3)                \
@@ -910,28 +910,6 @@ DefinitionBlock (
             Return(0x01)
         }
 
-#define gen_pci_hotplug(nr) \
-            If (And(\_SB.PCI0.PCIU, ShiftLeft(1, nr))) {          \
-                Notify(\_SB.PCI0.S##nr##0, 1)                \
-                Notify(\_SB.PCI0.S##nr##1, 1)                \
-                Notify(\_SB.PCI0.S##nr##2, 1)                \
-                Notify(\_SB.PCI0.S##nr##3, 1)                \
-                Notify(\_SB.PCI0.S##nr##4, 1)                \
-                Notify(\_SB.PCI0.S##nr##5, 1)                \
-                Notify(\_SB.PCI0.S##nr##6, 1)                \
-                Notify(\_SB.PCI0.S##nr##7, 1)                \
-            }                                                \
-            If (And(\_SB.PCI0.PCID, ShiftLeft(1, nr))) {     \
-                Notify(\_SB.PCI0.S##nr##0, 3)                \
-                Notify(\_SB.PCI0.S##nr##1, 3)                \
-                Notify(\_SB.PCI0.S##nr##2, 3)                \
-                Notify(\_SB.PCI0.S##nr##3, 3)                \
-                Notify(\_SB.PCI0.S##nr##4, 3)                \
-                Notify(\_SB.PCI0.S##nr##5, 3)                \
-                Notify(\_SB.PCI0.S##nr##6, 3)                \
-                Notify(\_SB.PCI0.S##nr##7, 3)                \
-            }
-
         Method(_L01) {
 	    \_SB.PCI0.HPLG()
             Return (0x01)

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

* Re: [SeaBIOS PATCH 2/2] hotplug: Add device per func in ACPI DSDT tables
  2011-09-19 10:02       ` Michael S. Tsirkin
@ 2011-09-19 10:12         ` Gleb Natapov
  2011-09-19 10:32           ` Gleb Natapov
  2011-09-19 16:27         ` Marcelo Tosatti
  1 sibling, 1 reply; 56+ messages in thread
From: Gleb Natapov @ 2011-09-19 10:12 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: jasowang, Amos Kong, seabios, alex williamson, kvm

On Mon, Sep 19, 2011 at 01:02:59PM +0300, Michael S. Tsirkin wrote:
> On Mon, Sep 19, 2011 at 12:57:33PM +0300, Gleb Natapov wrote:
> > On Mon, Sep 19, 2011 at 03:27:38AM -0400, Amos Kong wrote:
> > > 
> > > Only func 0 is registered to guest driver (we can
> > > only found func 0 in slot->funcs list of driver),
> > > the other functions could not be cleaned when
> > > hot-removing the whole slot. This patch adds
> > > device per function in ACPI DSDT tables.
> > > 
> > You can't unplug a single function. Guest surely knows that.
> 
> Looking at guest code, it's clear that
> at least a Linux guest doesn't know that.
> 
Have you asked relevant maintainers why is it so? Does Windows do the
same? (Obviously you can't check Windows code, but you can see if
removing function zero removes other functions from the device manager,
or you can even try to access other function).

If I am not mistaken, with this new DSDT you will see more then one eject
options in Windows GUI from each multi-function device. Is it so?

> > > Have tested with linux/winxp/win7, hot-adding/hot-remving,
> > > single/multiple function device, they are all fine.
> > > 
> > What was not fine before?
> > 
> > Have you looked at real HW that supports PCI hot plug DSDT? Does it
> > looks the same?
> 
> I recall I saw some examples like this on the net.
> 
Checking real HW DSDT will validate that we are doing a right thing here.

--
			Gleb.

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

* Re: [SeaBIOS PATCH 2/2] hotplug: Add device per func in ACPI DSDT tables
  2011-09-19 10:12         ` Gleb Natapov
@ 2011-09-19 10:32           ` Gleb Natapov
  2011-09-19 12:18             ` [SeaBIOS] " Michael S. Tsirkin
  0 siblings, 1 reply; 56+ messages in thread
From: Gleb Natapov @ 2011-09-19 10:32 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: jasowang, Amos Kong, seabios, alex williamson, kvm

On Mon, Sep 19, 2011 at 01:12:30PM +0300, Gleb Natapov wrote:
> On Mon, Sep 19, 2011 at 01:02:59PM +0300, Michael S. Tsirkin wrote:
> > On Mon, Sep 19, 2011 at 12:57:33PM +0300, Gleb Natapov wrote:
> > > On Mon, Sep 19, 2011 at 03:27:38AM -0400, Amos Kong wrote:
> > > > 
> > > > Only func 0 is registered to guest driver (we can
> > > > only found func 0 in slot->funcs list of driver),
> > > > the other functions could not be cleaned when
> > > > hot-removing the whole slot. This patch adds
> > > > device per function in ACPI DSDT tables.
> > > > 
> > > You can't unplug a single function. Guest surely knows that.
> > 
> > Looking at guest code, it's clear that
> > at least a Linux guest doesn't know that.
> > 
> Have you asked relevant maintainers why is it so? Does Windows do the
> same? (Obviously you can't check Windows code, but you can see if
> removing function zero removes other functions from the device manager,
> or you can even try to access other function).
> 
> If I am not mistaken, with this new DSDT you will see more then one eject
> options in Windows GUI from each multi-function device. Is it so?
> 
> > > > Have tested with linux/winxp/win7, hot-adding/hot-remving,
> > > > single/multiple function device, they are all fine.
> > > > 
> > > What was not fine before?
> > > 
> > > Have you looked at real HW that supports PCI hot plug DSDT? Does it
> > > looks the same?
> > 
> > I recall I saw some examples like this on the net.
> > 
> Checking real HW DSDT will validate that we are doing a right thing here.
> 
According to Microsoft own documentation they want _EJ0 for each
function:
http://www.microsoft.com/china/whdc/system/pnppwr/hotadd/hotplugpci.mspx

--
			Gleb.

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

* Re: [SeaBIOS] [SeaBIOS PATCH 2/2] hotplug: Add device per func in ACPI DSDT tables
  2011-09-19 10:32           ` Gleb Natapov
@ 2011-09-19 12:18             ` Michael S. Tsirkin
  0 siblings, 0 replies; 56+ messages in thread
From: Michael S. Tsirkin @ 2011-09-19 12:18 UTC (permalink / raw)
  To: Gleb Natapov; +Cc: Amos Kong, seabios, kvm, jasowang, alex williamson

On Mon, Sep 19, 2011 at 01:32:48PM +0300, Gleb Natapov wrote:
> > > I recall I saw some examples like this on the net.
> > > 
> > Checking real HW DSDT will validate that we are doing a right thing here.
> > 
> According to Microsoft own documentation they want _EJ0 for each
> function:
> http://www.microsoft.com/china/whdc/system/pnppwr/hotadd/hotplugpci.mspx

Right, this is the link I was thinking of.

-- 
MST

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

* Re: [SeaBIOS] [SeaBIOS PATCH 2/2] hotplug: Add device per func in ACPI DSDT tables
  2011-09-19 10:02       ` Michael S. Tsirkin
  2011-09-19 10:12         ` Gleb Natapov
@ 2011-09-19 16:27         ` Marcelo Tosatti
  2011-09-19 19:08           ` Michael S. Tsirkin
  2011-09-20 10:44           ` [SeaBIOS PATCH] hotplug: Add " Amos Kong
  1 sibling, 2 replies; 56+ messages in thread
From: Marcelo Tosatti @ 2011-09-19 16:27 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Gleb Natapov, Amos Kong, seabios, kvm, jasowang, alex williamson

On Mon, Sep 19, 2011 at 01:02:59PM +0300, Michael S. Tsirkin wrote:
> On Mon, Sep 19, 2011 at 12:57:33PM +0300, Gleb Natapov wrote:
> > On Mon, Sep 19, 2011 at 03:27:38AM -0400, Amos Kong wrote:
> > > 
> > > Only func 0 is registered to guest driver (we can
> > > only found func 0 in slot->funcs list of driver),
> > > the other functions could not be cleaned when
> > > hot-removing the whole slot. This patch adds
> > > device per function in ACPI DSDT tables.
> > > 
> > You can't unplug a single function. Guest surely knows that.
> 
> Looking at guest code, it's clear that
> at least a Linux guest doesn't know that.

acpiphp_disable_slot function appears to eject all functions.

> > > Have tested with linux/winxp/win7, hot-adding/hot-remving,
> > > single/multiple function device, they are all fine.
> > > 

Does not work for me (FC12 guest). As mentioned previously, Linux driver
looks for function 0 when injection request is seen (see enable_device
function in acpiphp_glue.c).

> > What was not fine before?
> > 
> > Have you looked at real HW that supports PCI hot plug DSDT? Does it
> > looks the same?
> 
> I recall I saw some examples like this on the net.
> 
> 
> > > new acpi-dst.hex(332K):
> > > http://amos-kong.rhcloud.com/pub/acpi-dsdt.hex
> > > 
> > > Signed-off-by: Amos Kong <akong@redhat.com>


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

* Re: [SeaBIOS] [SeaBIOS PATCH 2/2] hotplug: Add device per func in ACPI DSDT tables
  2011-09-19 16:27         ` Marcelo Tosatti
@ 2011-09-19 19:08           ` Michael S. Tsirkin
  2011-09-20 10:45             ` [SeaBIOS PATCH v2] " Amos Kong
  2011-09-20 10:44           ` [SeaBIOS PATCH] hotplug: Add " Amos Kong
  1 sibling, 1 reply; 56+ messages in thread
From: Michael S. Tsirkin @ 2011-09-19 19:08 UTC (permalink / raw)
  To: Marcelo Tosatti
  Cc: Gleb Natapov, Amos Kong, seabios, kvm, jasowang, alex williamson

On Mon, Sep 19, 2011 at 01:27:25PM -0300, Marcelo Tosatti wrote:
> On Mon, Sep 19, 2011 at 01:02:59PM +0300, Michael S. Tsirkin wrote:
> > On Mon, Sep 19, 2011 at 12:57:33PM +0300, Gleb Natapov wrote:
> > > On Mon, Sep 19, 2011 at 03:27:38AM -0400, Amos Kong wrote:
> > > > 
> > > > Only func 0 is registered to guest driver (we can
> > > > only found func 0 in slot->funcs list of driver),
> > > > the other functions could not be cleaned when
> > > > hot-removing the whole slot. This patch adds
> > > > device per function in ACPI DSDT tables.
> > > > 
> > > You can't unplug a single function. Guest surely knows that.
> > 
> > Looking at guest code, it's clear that
> > at least a Linux guest doesn't know that.
> 
> acpiphp_disable_slot function appears to eject all functions.

Yes but the siblings list seems to be populated from the ACPI
tables, but by probing PCI functions.
So we need to, at a minimum, have Device tables for all functions.

> > > > Have tested with linux/winxp/win7, hot-adding/hot-remving,
> > > > single/multiple function device, they are all fine.
> > > > 
> 
> Does not work for me (FC12 guest). As mentioned previously, Linux driver
> looks for function 0 when injection request is seen (see enable_device
> function in acpiphp_glue.c).

What exactly are you trying to do?
ATM the idea is to add all functions, add function 0
as the last one.

> > > What was not fine before?
> > > 
> > > Have you looked at real HW that supports PCI hot plug DSDT? Does it
> > > looks the same?
> > 
> > I recall I saw some examples like this on the net.
> > 
> > 
> > > > new acpi-dst.hex(332K):
> > > > http://amos-kong.rhcloud.com/pub/acpi-dsdt.hex
> > > > 
> > > > Signed-off-by: Amos Kong <akong@redhat.com>

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

* [SeaBIOS PATCH v2] Fix regression of commit 87b533bf
  2011-09-19  6:53 ` [SeaBIOS PATCH 1/2] Fix regression of commit 87b533bf Amos Kong
  2011-09-19  7:27   ` [SeaBIOS PATCH 2/2] hotplug: Add device per func in ACPI DSDT tables Amos Kong
@ 2011-09-20  8:00   ` Amos Kong
  2011-09-20 23:52     ` Kevin O'Connor
  1 sibling, 1 reply; 56+ messages in thread
From: Amos Kong @ 2011-09-20  8:00 UTC (permalink / raw)
  To: seabios; +Cc: kvm, mst, jasowang, alex williamson

>From 4678a3cb0e0a3cd7a4bc3d284c5719fdba90bc61 Mon Sep 17 00:00:00 2001
From: Kevin O'Connor <kevin@koconnor.net>
Date: Tue, 20 Sep 2011 15:43:55 +0800
Subject: [PATCH V2] Fix regression of commit 87b533bf

From: Kevin O'Connor <kevin@koconnor.net>

After adding more device entries in ACPI DSDT tables,
the filesize of bios.bin changed from 128K to 256K.
But bios could not initialize successfully.

This is a regression since seabios commit 87b533bf. Prior to
that commit, seabios did not mark the early 32bit initialization
code as init code. However, a side effect of marking that code
(handle_post) as init code is that it is more likely the linker
could place the code at an address less than 0xe0000.
The patch (just a hack) would cover up the issue.

---
Changes from v1:
- correct the attribution

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
---
 src/post.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/src/post.c b/src/post.c
index e195e89..bc2e548 100644
--- a/src/post.c
+++ b/src/post.c
@@ -336,7 +336,7 @@ reloc_init(void)
 // Start of Power On Self Test (POST) - the BIOS initilization phase.
 // This function does the setup needed for code relocation, and then
 // invokes the relocation and main setup code.
-void VISIBLE32INIT
+void VISIBLE32FLAT
 handle_post(void)
 {
     debug_serial_setup();
@@ -356,6 +356,14 @@ handle_post(void)
 
     // Allow writes to modify bios area (0xf0000)
     make_bios_writable();
+
+    void handle_post2(void);
+    handle_post2();
+}
+
+void VISIBLE32INIT
+handle_post2(void)
+{
     HaveRunPost = 1;
 
     // Detect ram and setup internal malloc.
-- 
1.7.6.1

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

* [SeaBIOS PATCH] hotplug: Add device per func in ACPI DSDT tables
  2011-09-19 16:27         ` Marcelo Tosatti
  2011-09-19 19:08           ` Michael S. Tsirkin
@ 2011-09-20 10:44           ` Amos Kong
  2011-09-20 11:42             ` Marcelo Tosatti
  1 sibling, 1 reply; 56+ messages in thread
From: Amos Kong @ 2011-09-20 10:44 UTC (permalink / raw)
  To: Marcelo Tosatti
  Cc: Gleb Natapov, seabios, kvm, jasowang, alex williamson,
	Michael S. Tsirkin

----- Original Message -----
> On Mon, Sep 19, 2011 at 01:02:59PM +0300, Michael S. Tsirkin wrote:
> > On Mon, Sep 19, 2011 at 12:57:33PM +0300, Gleb Natapov wrote:
> > > On Mon, Sep 19, 2011 at 03:27:38AM -0400, Amos Kong wrote:
> > > > 
> > > > Only func 0 is registered to guest driver (we can
> > > > only found func 0 in slot->funcs list of driver),
> > > > the other functions could not be cleaned when
> > > > hot-removing the whole slot. This patch adds
> > > > device per function in ACPI DSDT tables.
> > > > 
> > > You can't unplug a single function. Guest surely knows that.
> > 
> > Looking at guest code, it's clear that
> > at least a Linux guest doesn't know that.
> 
> acpiphp_disable_slot function appears to eject all functions.
>
> > > > Have tested with linux/winxp/win7, hot-adding/hot-remving,
> > > > single/multiple function device, they are all fine.
> > > > 
> 
> Does not work for me (FC12 guest).

what's your problem?  only func 0 can be added?
I hotplug/hot-remove device by this script(add func 1~7, then add func 0):

j=6
for i in `seq 1 7` 0;do
qemu-img create /tmp/resize$j$i.qcow2 10M -f qcow2
echo drive_add 0x$j.$i id=drv$j$i,if=none,file=/tmp/resize$j$i.qcow2 | nc -U /tmp/a
echo device_add virtio-blk-pci,id=dev$j$i,drive=drv$j$i,addr=0x$j.$i,multifunction=on | nc -U /tmp/monitor
done
sleep 5;
echo device_del dev60 | nc -U /tmp/monitor

> As mentioned previously, Linux driver
> looks for function 0 when injection request is seen (see
> enable_device
> function in acpiphp_glue.c).
>
> > > What was not fine before?

When hot-removing multifunc device, only func 0 can be removed from guest.

> > > Have you looked at real HW that supports PCI hot plug DSDT? Does
> > > it
> > > looks the same?
> > 
> > I recall I saw some examples like this on the net.
> > 
> > 
> > > > new acpi-dst.hex(332K):
> > > > http://amos-kong.rhcloud.com/pub/acpi-dsdt.hex
> > > > 
> > > > Signed-off-by: Amos Kong <akong@redhat.com>

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

* [SeaBIOS PATCH v2] hotplug: Add device per func in ACPI DSDT tables
  2011-09-19 19:08           ` Michael S. Tsirkin
@ 2011-09-20 10:45             ` Amos Kong
  2011-09-20 11:47               ` Marcelo Tosatti
  2011-09-21  1:48               ` Kevin O'Connor
  0 siblings, 2 replies; 56+ messages in thread
From: Amos Kong @ 2011-09-20 10:45 UTC (permalink / raw)
  To: Michael S. Tsirkin, seabios
  Cc: Gleb Natapov, kvm, jasowang, alex williamson, Marcelo Tosatti

>From 48ea1c9188334b89a60b4f9e853e86fc04fda4a5 Mon Sep 17 00:00:00 2001
From: Amos Kong <akong@redhat.com>
Date: Tue, 20 Sep 2011 15:38:43 +0800
Subject: [SeaBIOS PATCH v2] hotplug: Add device per func in ACPI DSDT tables

Only func 0 is registered to guest driver (we can
only found func 0 in slot->funcs list of driver),
the other functions could not be cleaned when
hot-removing the whole slot. This patch adds
device per function in ACPI DSDT tables.

Have tested with linux/winxp/win7, hot-adding/hot-remving,
single/multiple function device, they are all fine.
---
Changes from v1:
- cleanup the macros, bios.bin gets back to 128K
- notify only when func0 is added and removed

Signed-off-by: Amos Kong <akong@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 src/acpi-dsdt.dsl |  106 ++++++++++++++++++++++++++++++----------------------
 1 files changed, 61 insertions(+), 45 deletions(-)

diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl
index 08412e2..707c3d6 100644
--- a/src/acpi-dsdt.dsl
+++ b/src/acpi-dsdt.dsl
@@ -128,9 +128,9 @@ DefinitionBlock (
                 PCRM, 32,
             }
 
-#define hotplug_slot(name, nr) \
-            Device (S##name) {                    \
-               Name (_ADR, nr##0000)              \
+#define hotplug_func(name, nr, adr, fn) \
+            Device (S##name##fn) {                \
+               Name (_ADR, adr)                    \
                Method (_EJ0,1) {                  \
                     Store(ShiftLeft(1, nr), B0EJ) \
                     Return (0x0)                  \
@@ -138,6 +138,16 @@ DefinitionBlock (
                Name (_SUN, name)                  \
             }
 
+#define hotplug_slot(name, nr) \
+	    hotplug_func(name, nr, nr##0000, 0)  \
+	    hotplug_func(name, nr, nr##0001, 1)  \
+	    hotplug_func(name, nr, nr##0002, 2)  \
+	    hotplug_func(name, nr, nr##0003, 3)  \
+	    hotplug_func(name, nr, nr##0004, 4)  \
+	    hotplug_func(name, nr, nr##0005, 5)  \
+	    hotplug_func(name, nr, nr##0006, 6)  \
+	    hotplug_func(name, nr, nr##0007, 7)
+
 	    hotplug_slot(1, 0x0001)
 	    hotplug_slot(2, 0x0002)
 	    hotplug_slot(3, 0x0003)
@@ -460,7 +470,7 @@ DefinitionBlock (
 	    }
 	}
 
-#define gen_pci_device(name, nr)                                \
+#define gen_pci_device(name, nr) \
         Device(SL##name) {                                      \
             Name (_ADR, nr##0000)                               \
             Method (_RMV) {                                     \
@@ -502,6 +512,52 @@ DefinitionBlock (
 	gen_pci_device(29, 0x001d)
 	gen_pci_device(30, 0x001e)
 	gen_pci_device(31, 0x001f)
+
+#define gen_pci_hotplug(nr) \
+            If (And(PCIU, ShiftLeft(1, nr))) {     \
+                Notify(S##nr##0, 1)                \
+            }                                      \
+            If (And(PCID, ShiftLeft(1, nr))) {     \
+                Notify(S##nr##0, 3)                \
+            }
+
+        Method(HPLG) {
+            gen_pci_hotplug(1)
+            gen_pci_hotplug(2)
+            gen_pci_hotplug(3)
+            gen_pci_hotplug(4)
+            gen_pci_hotplug(5)
+            gen_pci_hotplug(6)
+            gen_pci_hotplug(7)
+            gen_pci_hotplug(8)
+            gen_pci_hotplug(9)
+            gen_pci_hotplug(10)
+            gen_pci_hotplug(11)
+            gen_pci_hotplug(12)
+            gen_pci_hotplug(13)
+            gen_pci_hotplug(14)
+            gen_pci_hotplug(15)
+            gen_pci_hotplug(16)
+            gen_pci_hotplug(17)
+            gen_pci_hotplug(18)
+            gen_pci_hotplug(19)
+            gen_pci_hotplug(20)
+            gen_pci_hotplug(21)
+            gen_pci_hotplug(22)
+            gen_pci_hotplug(23)
+            gen_pci_hotplug(24)
+            gen_pci_hotplug(25)
+            gen_pci_hotplug(26)
+            gen_pci_hotplug(27)
+            gen_pci_hotplug(28)
+            gen_pci_hotplug(29)
+            gen_pci_hotplug(30)
+            gen_pci_hotplug(31)
+
+            Return (0x01)
+        }
+
+
     }
 
     /* PCI IRQs */
@@ -842,49 +898,9 @@ DefinitionBlock (
             Return(0x01)
         }
 
-#define gen_pci_hotplug(nr)                                       \
-            If (And(\_SB.PCI0.PCIU, ShiftLeft(1, nr))) {          \
-                Notify(\_SB.PCI0.S##nr, 1)                        \
-            }                                                     \
-            If (And(\_SB.PCI0.PCID, ShiftLeft(1, nr))) {          \
-                Notify(\_SB.PCI0.S##nr, 3)                        \
-            }
-
         Method(_L01) {
-            gen_pci_hotplug(1)
-            gen_pci_hotplug(2)
-            gen_pci_hotplug(3)
-            gen_pci_hotplug(4)
-            gen_pci_hotplug(5)
-            gen_pci_hotplug(6)
-            gen_pci_hotplug(7)
-            gen_pci_hotplug(8)
-            gen_pci_hotplug(9)
-            gen_pci_hotplug(10)
-            gen_pci_hotplug(11)
-            gen_pci_hotplug(12)
-            gen_pci_hotplug(13)
-            gen_pci_hotplug(14)
-            gen_pci_hotplug(15)
-            gen_pci_hotplug(16)
-            gen_pci_hotplug(17)
-            gen_pci_hotplug(18)
-            gen_pci_hotplug(19)
-            gen_pci_hotplug(20)
-            gen_pci_hotplug(21)
-            gen_pci_hotplug(22)
-            gen_pci_hotplug(23)
-            gen_pci_hotplug(24)
-            gen_pci_hotplug(25)
-            gen_pci_hotplug(26)
-            gen_pci_hotplug(27)
-            gen_pci_hotplug(28)
-            gen_pci_hotplug(29)
-            gen_pci_hotplug(30)
-            gen_pci_hotplug(31)
-
+            \_SB.PCI0.HPLG()
             Return (0x01)
-
         }
         Method(_L02) {
             // CPU hotplug event
-- 
1.7.6.1

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

* Re: [SeaBIOS PATCH] hotplug: Add device per func in ACPI DSDT tables
  2011-09-20 10:44           ` [SeaBIOS PATCH] hotplug: Add " Amos Kong
@ 2011-09-20 11:42             ` Marcelo Tosatti
  0 siblings, 0 replies; 56+ messages in thread
From: Marcelo Tosatti @ 2011-09-20 11:42 UTC (permalink / raw)
  To: Amos Kong
  Cc: Gleb Natapov, seabios, kvm, jasowang, alex williamson,
	Michael S. Tsirkin

On Tue, Sep 20, 2011 at 06:44:54AM -0400, Amos Kong wrote:
> ----- Original Message -----
> > On Mon, Sep 19, 2011 at 01:02:59PM +0300, Michael S. Tsirkin wrote:
> > > On Mon, Sep 19, 2011 at 12:57:33PM +0300, Gleb Natapov wrote:
> > > > On Mon, Sep 19, 2011 at 03:27:38AM -0400, Amos Kong wrote:
> > > > > 
> > > > > Only func 0 is registered to guest driver (we can
> > > > > only found func 0 in slot->funcs list of driver),
> > > > > the other functions could not be cleaned when
> > > > > hot-removing the whole slot. This patch adds
> > > > > device per function in ACPI DSDT tables.
> > > > > 
> > > > You can't unplug a single function. Guest surely knows that.
> > > 
> > > Looking at guest code, it's clear that
> > > at least a Linux guest doesn't know that.
> > 
> > acpiphp_disable_slot function appears to eject all functions.
> >
> > > > > Have tested with linux/winxp/win7, hot-adding/hot-remving,
> > > > > single/multiple function device, they are all fine.
> > > > > 
> > 
> > Does not work for me (FC12 guest).
> 
> what's your problem?  only func 0 can be added?
> I hotplug/hot-remove device by this script(add func 1~7, then add func 0):
> 
> j=6
> for i in `seq 1 7` 0;do
> qemu-img create /tmp/resize$j$i.qcow2 10M -f qcow2
> echo drive_add 0x$j.$i id=drv$j$i,if=none,file=/tmp/resize$j$i.qcow2 | nc -U /tmp/a
> echo device_add virtio-blk-pci,id=dev$j$i,drive=drv$j$i,addr=0x$j.$i,multifunction=on | nc -U /tmp/monitor
> done
> sleep 5;
> echo device_del dev60 | nc -U /tmp/monitor
> 
> > As mentioned previously, Linux driver
> > looks for function 0 when injection request is seen (see
> > enable_device
> > function in acpiphp_glue.c).
> >
> > > > What was not fine before?
> 
> When hot-removing multifunc device, only func 0 can be removed from guest.

Ah OK, musunderstood the patch was aiming for per-function hotplug.


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

* Re: [SeaBIOS PATCH v2] hotplug: Add device per func in ACPI DSDT tables
  2011-09-20 10:45             ` [SeaBIOS PATCH v2] " Amos Kong
@ 2011-09-20 11:47               ` Marcelo Tosatti
  2011-09-21  1:48               ` Kevin O'Connor
  1 sibling, 0 replies; 56+ messages in thread
From: Marcelo Tosatti @ 2011-09-20 11:47 UTC (permalink / raw)
  To: Amos Kong; +Cc: kvm, Michael S. Tsirkin, jasowang, seabios, alex williamson

On Tue, Sep 20, 2011 at 06:45:57AM -0400, Amos Kong wrote:
> >From 48ea1c9188334b89a60b4f9e853e86fc04fda4a5 Mon Sep 17 00:00:00 2001
> From: Amos Kong <akong@redhat.com>
> Date: Tue, 20 Sep 2011 15:38:43 +0800
> Subject: [SeaBIOS PATCH v2] hotplug: Add device per func in ACPI DSDT tables
> 
> Only func 0 is registered to guest driver (we can
> only found func 0 in slot->funcs list of driver),
> the other functions could not be cleaned when
> hot-removing the whole slot. This patch adds
> device per function in ACPI DSDT tables.
> 
> Have tested with linux/winxp/win7, hot-adding/hot-remving,
> single/multiple function device, they are all fine.
> ---
> Changes from v1:
> - cleanup the macros, bios.bin gets back to 128K
> - notify only when func0 is added and removed
> 
> Signed-off-by: Amos Kong <akong@redhat.com>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ---
>  src/acpi-dsdt.dsl |  106 ++++++++++++++++++++++++++++++----------------------
>  1 files changed, 61 insertions(+), 45 deletions(-)
> 
> diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl
> index 08412e2..707c3d6 100644
> --- a/src/acpi-dsdt.dsl
> +++ b/src/acpi-dsdt.dsl
> @@ -128,9 +128,9 @@ DefinitionBlock (
>                  PCRM, 32,
>              }
>  
> -#define hotplug_slot(name, nr) \
> -            Device (S##name) {                    \
> -               Name (_ADR, nr##0000)              \
> +#define hotplug_func(name, nr, adr, fn) \
> +            Device (S##name##fn) {                \
> +               Name (_ADR, adr)                    \
>                 Method (_EJ0,1) {                  \
>                      Store(ShiftLeft(1, nr), B0EJ) \
>                      Return (0x0)                  \
> @@ -138,6 +138,16 @@ DefinitionBlock (
>                 Name (_SUN, name)                  \
>              }
>  
> +#define hotplug_slot(name, nr) \
> +	    hotplug_func(name, nr, nr##0000, 0)  \
> +	    hotplug_func(name, nr, nr##0001, 1)  \
> +	    hotplug_func(name, nr, nr##0002, 2)  \
> +	    hotplug_func(name, nr, nr##0003, 3)  \
> +	    hotplug_func(name, nr, nr##0004, 4)  \
> +	    hotplug_func(name, nr, nr##0005, 5)  \
> +	    hotplug_func(name, nr, nr##0006, 6)  \
> +	    hotplug_func(name, nr, nr##0007, 7)
> +
>  	    hotplug_slot(1, 0x0001)
>  	    hotplug_slot(2, 0x0002)
>  	    hotplug_slot(3, 0x0003)
> @@ -460,7 +470,7 @@ DefinitionBlock (
>  	    }
>  	}
>  
> -#define gen_pci_device(name, nr)                                \
> +#define gen_pci_device(name, nr) \
>          Device(SL##name) {                                      \
>              Name (_ADR, nr##0000)                               \
>              Method (_RMV) {                                     \
> @@ -502,6 +512,52 @@ DefinitionBlock (
>  	gen_pci_device(29, 0x001d)
>  	gen_pci_device(30, 0x001e)
>  	gen_pci_device(31, 0x001f)
> +
> +#define gen_pci_hotplug(nr) \
> +            If (And(PCIU, ShiftLeft(1, nr))) {     \
> +                Notify(S##nr##0, 1)                \
> +            }                                      \
> +            If (And(PCID, ShiftLeft(1, nr))) {     \
> +                Notify(S##nr##0, 3)                \
> +            }
> +
> +        Method(HPLG) {
> +            gen_pci_hotplug(1)
> +            gen_pci_hotplug(2)
> +            gen_pci_hotplug(3)
> +            gen_pci_hotplug(4)
> +            gen_pci_hotplug(5)
> +            gen_pci_hotplug(6)
> +            gen_pci_hotplug(7)
> +            gen_pci_hotplug(8)
> +            gen_pci_hotplug(9)
> +            gen_pci_hotplug(10)
> +            gen_pci_hotplug(11)
> +            gen_pci_hotplug(12)
> +            gen_pci_hotplug(13)
> +            gen_pci_hotplug(14)
> +            gen_pci_hotplug(15)
> +            gen_pci_hotplug(16)
> +            gen_pci_hotplug(17)
> +            gen_pci_hotplug(18)
> +            gen_pci_hotplug(19)
> +            gen_pci_hotplug(20)
> +            gen_pci_hotplug(21)
> +            gen_pci_hotplug(22)
> +            gen_pci_hotplug(23)
> +            gen_pci_hotplug(24)
> +            gen_pci_hotplug(25)
> +            gen_pci_hotplug(26)
> +            gen_pci_hotplug(27)
> +            gen_pci_hotplug(28)
> +            gen_pci_hotplug(29)
> +            gen_pci_hotplug(30)
> +            gen_pci_hotplug(31)
> +
> +            Return (0x01)
> +        }
> +
> +
>      }
>  
>      /* PCI IRQs */
> @@ -842,49 +898,9 @@ DefinitionBlock (
>              Return(0x01)
>          }
>  
> -#define gen_pci_hotplug(nr)                                       \
> -            If (And(\_SB.PCI0.PCIU, ShiftLeft(1, nr))) {          \
> -                Notify(\_SB.PCI0.S##nr, 1)                        \
> -            }                                                     \
> -            If (And(\_SB.PCI0.PCID, ShiftLeft(1, nr))) {          \
> -                Notify(\_SB.PCI0.S##nr, 3)                        \
> -            }
> -
>          Method(_L01) {
> -            gen_pci_hotplug(1)
> -            gen_pci_hotplug(2)
> -            gen_pci_hotplug(3)
> -            gen_pci_hotplug(4)
> -            gen_pci_hotplug(5)
> -            gen_pci_hotplug(6)
> -            gen_pci_hotplug(7)
> -            gen_pci_hotplug(8)
> -            gen_pci_hotplug(9)
> -            gen_pci_hotplug(10)
> -            gen_pci_hotplug(11)
> -            gen_pci_hotplug(12)
> -            gen_pci_hotplug(13)
> -            gen_pci_hotplug(14)
> -            gen_pci_hotplug(15)
> -            gen_pci_hotplug(16)
> -            gen_pci_hotplug(17)
> -            gen_pci_hotplug(18)
> -            gen_pci_hotplug(19)
> -            gen_pci_hotplug(20)
> -            gen_pci_hotplug(21)
> -            gen_pci_hotplug(22)
> -            gen_pci_hotplug(23)
> -            gen_pci_hotplug(24)
> -            gen_pci_hotplug(25)
> -            gen_pci_hotplug(26)
> -            gen_pci_hotplug(27)
> -            gen_pci_hotplug(28)
> -            gen_pci_hotplug(29)
> -            gen_pci_hotplug(30)
> -            gen_pci_hotplug(31)
> -
> +            \_SB.PCI0.HPLG()

What is the point of this new method?

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

* Re: [SeaBIOS PATCH v2] Fix regression of commit 87b533bf
  2011-09-20  8:00   ` [SeaBIOS PATCH v2] Fix regression of commit 87b533bf Amos Kong
@ 2011-09-20 23:52     ` Kevin O'Connor
  0 siblings, 0 replies; 56+ messages in thread
From: Kevin O'Connor @ 2011-09-20 23:52 UTC (permalink / raw)
  To: Amos Kong; +Cc: seabios, kvm, mst, jasowang, mtosatti, alex williamson

On Tue, Sep 20, 2011 at 04:00:57AM -0400, Amos Kong wrote:
> From 4678a3cb0e0a3cd7a4bc3d284c5719fdba90bc61 Mon Sep 17 00:00:00 2001
> From: Kevin O'Connor <kevin@koconnor.net>
> Date: Tue, 20 Sep 2011 15:43:55 +0800
> Subject: [PATCH V2] Fix regression of commit 87b533bf
> 
> From: Kevin O'Connor <kevin@koconnor.net>
> 
> After adding more device entries in ACPI DSDT tables,
> the filesize of bios.bin changed from 128K to 256K.
> But bios could not initialize successfully.
> 
> This is a regression since seabios commit 87b533bf. Prior to
> that commit, seabios did not mark the early 32bit initialization
> code as init code. However, a side effect of marking that code
> (handle_post) as init code is that it is more likely the linker
> could place the code at an address less than 0xe0000.
> The patch (just a hack) would cover up the issue.

Thanks.  I committed a slightly different patch (but similar concept)
to the seabios repo.

-Kevin

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

* Re: [SeaBIOS PATCH v2] hotplug: Add device per func in ACPI DSDT tables
  2011-09-20 10:45             ` [SeaBIOS PATCH v2] " Amos Kong
  2011-09-20 11:47               ` Marcelo Tosatti
@ 2011-09-21  1:48               ` Kevin O'Connor
  2011-09-21  5:39                 ` Amos Kong
  1 sibling, 1 reply; 56+ messages in thread
From: Kevin O'Connor @ 2011-09-21  1:48 UTC (permalink / raw)
  To: Amos Kong
  Cc: Michael S. Tsirkin, seabios, Gleb Natapov, kvm, jasowang,
	alex williamson, Marcelo Tosatti

On Tue, Sep 20, 2011 at 06:45:57AM -0400, Amos Kong wrote:
> From 48ea1c9188334b89a60b4f9e853e86fc04fda4a5 Mon Sep 17 00:00:00 2001
> From: Amos Kong <akong@redhat.com>
> Date: Tue, 20 Sep 2011 15:38:43 +0800
> Subject: [SeaBIOS PATCH v2] hotplug: Add device per func in ACPI DSDT tables
> 
> Only func 0 is registered to guest driver (we can
> only found func 0 in slot->funcs list of driver),
> the other functions could not be cleaned when
> hot-removing the whole slot. This patch adds
> device per function in ACPI DSDT tables.
> 
> Have tested with linux/winxp/win7, hot-adding/hot-remving,
> single/multiple function device, they are all fine.
> ---
> Changes from v1:
> - cleanup the macros, bios.bin gets back to 128K
> - notify only when func0 is added and removed

How about moving code into functions so that it isn't duplicated for
each PCI device.  See the patch below as an example (100% untested).
The CPU hotplug stuff works this way, except it run-time generates the
equivalent of "Device(S???)" and "PCNT".  (It may make sense to
run-time generate the PCI hotplug as well - it consumes about 10K of
space to statically generate the 31 devices.)

-Kevin


diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl
index 08412e2..31ac5eb 100644
--- a/src/acpi-dsdt.dsl
+++ b/src/acpi-dsdt.dsl
@@ -128,48 +128,6 @@ DefinitionBlock (
                 PCRM, 32,
             }
 
-#define hotplug_slot(name, nr) \
-            Device (S##name) {                    \
-               Name (_ADR, nr##0000)              \
-               Method (_EJ0,1) {                  \
-                    Store(ShiftLeft(1, nr), B0EJ) \
-                    Return (0x0)                  \
-               }                                  \
-               Name (_SUN, name)                  \
-            }
-
-	    hotplug_slot(1, 0x0001)
-	    hotplug_slot(2, 0x0002)
-	    hotplug_slot(3, 0x0003)
-	    hotplug_slot(4, 0x0004)
-	    hotplug_slot(5, 0x0005)
-	    hotplug_slot(6, 0x0006)
-	    hotplug_slot(7, 0x0007)
-	    hotplug_slot(8, 0x0008)
-	    hotplug_slot(9, 0x0009)
-	    hotplug_slot(10, 0x000a)
-	    hotplug_slot(11, 0x000b)
-	    hotplug_slot(12, 0x000c)
-	    hotplug_slot(13, 0x000d)
-	    hotplug_slot(14, 0x000e)
-	    hotplug_slot(15, 0x000f)
-	    hotplug_slot(16, 0x0010)
-	    hotplug_slot(17, 0x0011)
-	    hotplug_slot(18, 0x0012)
-	    hotplug_slot(19, 0x0013)
-	    hotplug_slot(20, 0x0014)
-	    hotplug_slot(21, 0x0015)
-	    hotplug_slot(22, 0x0016)
-	    hotplug_slot(23, 0x0017)
-	    hotplug_slot(24, 0x0018)
-	    hotplug_slot(25, 0x0019)
-	    hotplug_slot(26, 0x001a)
-	    hotplug_slot(27, 0x001b)
-	    hotplug_slot(28, 0x001c)
-	    hotplug_slot(29, 0x001d)
-	    hotplug_slot(30, 0x001e)
-	    hotplug_slot(31, 0x001f)
-
             Name (_CRS, ResourceTemplate ()
             {
                 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
@@ -762,6 +720,119 @@ DefinitionBlock (
         Zero   /* reserved */
     })
 
+    /* PCI hotplug */
+    Scope(\_SB.PCI0) {
+        /* Methods called by bulk generated PCI devices below */
+        Method (PCEJ, 1, NotSerialized) {
+            // _EJ0 method - eject callback
+            Store(ShiftLeft(1, Arg0), B0EJ)
+            Return (0x0)
+        }
+
+        /* Bulk generated PCI hotplug devices */
+#define hotplug_func(nr, fn)                            \
+        Device (S##nr##fn) {                            \
+            Name (_ADR, 0x##nr##000##fn)                \
+            Method (_EJ0, 1) { Return(PCEJ(0x##nr)) }   \
+            Name (_SUN, 0x##nr)                         \
+        }
+
+#define hotplug_slot(nr) \
+            hotplug_func(nr, 0)  \
+            hotplug_func(nr, 1)  \
+            hotplug_func(nr, 2)  \
+            hotplug_func(nr, 3)  \
+            hotplug_func(nr, 4)  \
+            hotplug_func(nr, 5)  \
+            hotplug_func(nr, 6)  \
+            hotplug_func(nr, 7)
+
+	hotplug_slot(01)
+	hotplug_slot(02)
+	hotplug_slot(03)
+	hotplug_slot(04)
+	hotplug_slot(05)
+	hotplug_slot(06)
+	hotplug_slot(07)
+	hotplug_slot(08)
+	hotplug_slot(09)
+	hotplug_slot(0a)
+	hotplug_slot(0b)
+	hotplug_slot(0c)
+	hotplug_slot(0d)
+	hotplug_slot(0e)
+	hotplug_slot(0f)
+	hotplug_slot(10)
+	hotplug_slot(11)
+	hotplug_slot(12)
+	hotplug_slot(13)
+	hotplug_slot(14)
+	hotplug_slot(15)
+	hotplug_slot(16)
+	hotplug_slot(17)
+	hotplug_slot(18)
+	hotplug_slot(19)
+	hotplug_slot(1a)
+	hotplug_slot(1b)
+	hotplug_slot(1c)
+	hotplug_slot(1d)
+	hotplug_slot(1e)
+	hotplug_slot(1f)
+
+        /* PCI hotplug notify method */
+        Method(PCNF, 0) {
+            // Local0 = iterator
+            Store (Zero, Local0)
+            While (LLess(Local0, 31)) {
+                Increment(Local0)
+                If (And(PCIU, ShiftLeft(1, Local0))) {
+                    PCNT(Local0, 1)
+                }
+                If (And(PCID, ShiftLeft(1, Local0))) {
+                    PCNT(Local0, 3)
+                }
+            }
+            Return(One)
+        }
+
+#define hotplug_notify(nr) \
+            If (LEqual(Arg0, 0x##nr)) {Notify(S##nr##0, Arg1)}
+
+        Method(PCNT, 2) {
+            hotplug_notify(01)
+            hotplug_notify(02)
+            hotplug_notify(03)
+            hotplug_notify(04)
+            hotplug_notify(05)
+            hotplug_notify(06)
+            hotplug_notify(07)
+            hotplug_notify(08)
+            hotplug_notify(09)
+            hotplug_notify(0a)
+            hotplug_notify(0b)
+            hotplug_notify(0c)
+            hotplug_notify(0d)
+            hotplug_notify(0e)
+            hotplug_notify(0f)
+            hotplug_notify(10)
+            hotplug_notify(11)
+            hotplug_notify(12)
+            hotplug_notify(13)
+            hotplug_notify(14)
+            hotplug_notify(15)
+            hotplug_notify(16)
+            hotplug_notify(17)
+            hotplug_notify(18)
+            hotplug_notify(19)
+            hotplug_notify(1a)
+            hotplug_notify(1b)
+            hotplug_notify(1c)
+            hotplug_notify(1d)
+            hotplug_notify(1e)
+            hotplug_notify(1f)
+        }
+    }
+
     /* CPU hotplug */
     Scope(\_SB) {
         /* Objects filled in by run-time generated SSDT */
@@ -842,49 +913,9 @@ DefinitionBlock (
             Return(0x01)
         }
 
-#define gen_pci_hotplug(nr)                                       \
-            If (And(\_SB.PCI0.PCIU, ShiftLeft(1, nr))) {          \
-                Notify(\_SB.PCI0.S##nr, 1)                        \
-            }                                                     \
-            If (And(\_SB.PCI0.PCID, ShiftLeft(1, nr))) {          \
-                Notify(\_SB.PCI0.S##nr, 3)                        \
-            }
-
         Method(_L01) {
-            gen_pci_hotplug(1)
-            gen_pci_hotplug(2)
-            gen_pci_hotplug(3)
-            gen_pci_hotplug(4)
-            gen_pci_hotplug(5)
-            gen_pci_hotplug(6)
-            gen_pci_hotplug(7)
-            gen_pci_hotplug(8)
-            gen_pci_hotplug(9)
-            gen_pci_hotplug(10)
-            gen_pci_hotplug(11)
-            gen_pci_hotplug(12)
-            gen_pci_hotplug(13)
-            gen_pci_hotplug(14)
-            gen_pci_hotplug(15)
-            gen_pci_hotplug(16)
-            gen_pci_hotplug(17)
-            gen_pci_hotplug(18)
-            gen_pci_hotplug(19)
-            gen_pci_hotplug(20)
-            gen_pci_hotplug(21)
-            gen_pci_hotplug(22)
-            gen_pci_hotplug(23)
-            gen_pci_hotplug(24)
-            gen_pci_hotplug(25)
-            gen_pci_hotplug(26)
-            gen_pci_hotplug(27)
-            gen_pci_hotplug(28)
-            gen_pci_hotplug(29)
-            gen_pci_hotplug(30)
-            gen_pci_hotplug(31)
-
-            Return (0x01)
-
+            // PCI hotplug event
+            Return(\_SB.PCI0.PCNF())
         }
         Method(_L02) {
             // CPU hotplug event

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

* Re: [SeaBIOS PATCH v2] hotplug: Add device per func in ACPI DSDT tables
  2011-09-21  1:48               ` Kevin O'Connor
@ 2011-09-21  5:39                 ` Amos Kong
  2011-09-21 11:09                   ` Michael S. Tsirkin
  0 siblings, 1 reply; 56+ messages in thread
From: Amos Kong @ 2011-09-21  5:39 UTC (permalink / raw)
  To: Kevin O'Connor
  Cc: Michael S. Tsirkin, seabios, Gleb Natapov, kvm, jasowang,
	alex williamson, Marcelo Tosatti

----- Original Message -----
> On Tue, Sep 20, 2011 at 06:45:57AM -0400, Amos Kong wrote:
> > From 48ea1c9188334b89a60b4f9e853e86fc04fda4a5 Mon Sep 17 00:00:00
> > 2001
> > From: Amos Kong <akong@redhat.com>
> > Date: Tue, 20 Sep 2011 15:38:43 +0800
> > Subject: [SeaBIOS PATCH v2] hotplug: Add device per func in ACPI
> > DSDT tables
> > 
> > Only func 0 is registered to guest driver (we can
> > only found func 0 in slot->funcs list of driver),
> > the other functions could not be cleaned when
> > hot-removing the whole slot. This patch adds
> > device per function in ACPI DSDT tables.
> > 
> > Have tested with linux/winxp/win7, hot-adding/hot-remving,
> > single/multiple function device, they are all fine.
> > ---
> > Changes from v1:
> > - cleanup the macros, bios.bin gets back to 128K
> > - notify only when func0 is added and removed
> 
> How about moving code into functions so that it isn't duplicated for
> each PCI device.  See the patch below as an example (100% untested).

Tested, it works as my original patch-v2.

> The CPU hotplug stuff works this way, except it run-time generates
> the
> equivalent of "Device(S???)" and "PCNT".  (It may make sense to
> run-time generate the PCI hotplug as well - it consumes about 10K of
> space to statically generate the 31 devices.)

I'm ok with the new version.

Acked-by: Amos Kong <akong@redhat.com>

> -Kevin
> 
> 
> diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl
> index 08412e2..31ac5eb 100644
> --- a/src/acpi-dsdt.dsl
> +++ b/src/acpi-dsdt.dsl
> @@ -128,48 +128,6 @@ DefinitionBlock (
>                  PCRM, 32,
>              }
>  
> -#define hotplug_slot(name, nr) \
> -            Device (S##name) {                    \
> -               Name (_ADR, nr##0000)              \
> -               Method (_EJ0,1) {                  \
> -                    Store(ShiftLeft(1, nr), B0EJ) \
> -                    Return (0x0)                  \
> -               }                                  \
> -               Name (_SUN, name)                  \
> -            }
> -
> -	    hotplug_slot(1, 0x0001)
> -	    hotplug_slot(2, 0x0002)
> -	    hotplug_slot(3, 0x0003)
> -	    hotplug_slot(4, 0x0004)
> -	    hotplug_slot(5, 0x0005)
> -	    hotplug_slot(6, 0x0006)
> -	    hotplug_slot(7, 0x0007)
> -	    hotplug_slot(8, 0x0008)
> -	    hotplug_slot(9, 0x0009)
> -	    hotplug_slot(10, 0x000a)
> -	    hotplug_slot(11, 0x000b)
> -	    hotplug_slot(12, 0x000c)
> -	    hotplug_slot(13, 0x000d)
> -	    hotplug_slot(14, 0x000e)
> -	    hotplug_slot(15, 0x000f)
> -	    hotplug_slot(16, 0x0010)
> -	    hotplug_slot(17, 0x0011)
> -	    hotplug_slot(18, 0x0012)
> -	    hotplug_slot(19, 0x0013)
> -	    hotplug_slot(20, 0x0014)
> -	    hotplug_slot(21, 0x0015)
> -	    hotplug_slot(22, 0x0016)
> -	    hotplug_slot(23, 0x0017)
> -	    hotplug_slot(24, 0x0018)
> -	    hotplug_slot(25, 0x0019)
> -	    hotplug_slot(26, 0x001a)
> -	    hotplug_slot(27, 0x001b)
> -	    hotplug_slot(28, 0x001c)
> -	    hotplug_slot(29, 0x001d)
> -	    hotplug_slot(30, 0x001e)
> -	    hotplug_slot(31, 0x001f)
> -
>              Name (_CRS, ResourceTemplate ()
>              {
>                  WordBusNumber (ResourceProducer, MinFixed, MaxFixed,
>                  PosDecode,
> @@ -762,6 +720,119 @@ DefinitionBlock (
>          Zero   /* reserved */
>      })
>  
> +    /* PCI hotplug */
> +    Scope(\_SB.PCI0) {
> +        /* Methods called by bulk generated PCI devices below */
> +        Method (PCEJ, 1, NotSerialized) {
> +            // _EJ0 method - eject callback
> +            Store(ShiftLeft(1, Arg0), B0EJ)
> +            Return (0x0)
> +        }
> +
> +        /* Bulk generated PCI hotplug devices */
> +#define hotplug_func(nr, fn)                            \
> +        Device (S##nr##fn) {                            \
> +            Name (_ADR, 0x##nr##000##fn)                \
> +            Method (_EJ0, 1) { Return(PCEJ(0x##nr)) }   \
> +            Name (_SUN, 0x##nr)                         \
> +        }
> +
> +#define hotplug_slot(nr) \
> +            hotplug_func(nr, 0)  \
> +            hotplug_func(nr, 1)  \
> +            hotplug_func(nr, 2)  \
> +            hotplug_func(nr, 3)  \
> +            hotplug_func(nr, 4)  \
> +            hotplug_func(nr, 5)  \
> +            hotplug_func(nr, 6)  \
> +            hotplug_func(nr, 7)
> +
> +	hotplug_slot(01)
> +	hotplug_slot(02)
> +	hotplug_slot(03)
> +	hotplug_slot(04)
> +	hotplug_slot(05)
> +	hotplug_slot(06)
> +	hotplug_slot(07)
> +	hotplug_slot(08)
> +	hotplug_slot(09)
> +	hotplug_slot(0a)
> +	hotplug_slot(0b)
> +	hotplug_slot(0c)
> +	hotplug_slot(0d)
> +	hotplug_slot(0e)
> +	hotplug_slot(0f)
> +	hotplug_slot(10)
> +	hotplug_slot(11)
> +	hotplug_slot(12)
> +	hotplug_slot(13)
> +	hotplug_slot(14)
> +	hotplug_slot(15)
> +	hotplug_slot(16)
> +	hotplug_slot(17)
> +	hotplug_slot(18)
> +	hotplug_slot(19)
> +	hotplug_slot(1a)
> +	hotplug_slot(1b)
> +	hotplug_slot(1c)
> +	hotplug_slot(1d)
> +	hotplug_slot(1e)
> +	hotplug_slot(1f)
> +
> +        /* PCI hotplug notify method */
> +        Method(PCNF, 0) {
> +            // Local0 = iterator
> +            Store (Zero, Local0)
> +            While (LLess(Local0, 31)) {
> +                Increment(Local0)
> +                If (And(PCIU, ShiftLeft(1, Local0))) {
> +                    PCNT(Local0, 1)
> +                }
> +                If (And(PCID, ShiftLeft(1, Local0))) {
> +                    PCNT(Local0, 3)
> +                }
> +            }
> +            Return(One)
> +        }
> +
> +#define hotplug_notify(nr) \
> +            If (LEqual(Arg0, 0x##nr)) {Notify(S##nr##0, Arg1)}
> +
> +        Method(PCNT, 2) {
> +            hotplug_notify(01)
> +            hotplug_notify(02)
> +            hotplug_notify(03)
> +            hotplug_notify(04)
> +            hotplug_notify(05)
> +            hotplug_notify(06)
> +            hotplug_notify(07)
> +            hotplug_notify(08)
> +            hotplug_notify(09)
> +            hotplug_notify(0a)
> +            hotplug_notify(0b)
> +            hotplug_notify(0c)
> +            hotplug_notify(0d)
> +            hotplug_notify(0e)
> +            hotplug_notify(0f)
> +            hotplug_notify(10)
> +            hotplug_notify(11)
> +            hotplug_notify(12)
> +            hotplug_notify(13)
> +            hotplug_notify(14)
> +            hotplug_notify(15)
> +            hotplug_notify(16)
> +            hotplug_notify(17)
> +            hotplug_notify(18)
> +            hotplug_notify(19)
> +            hotplug_notify(1a)
> +            hotplug_notify(1b)
> +            hotplug_notify(1c)
> +            hotplug_notify(1d)
> +            hotplug_notify(1e)
> +            hotplug_notify(1f)
> +        }
> +    }
> +
>      /* CPU hotplug */
>      Scope(\_SB) {
>          /* Objects filled in by run-time generated SSDT */
> @@ -842,49 +913,9 @@ DefinitionBlock (
>              Return(0x01)
>          }
>  
> -#define gen_pci_hotplug(nr)                                       \
> -            If (And(\_SB.PCI0.PCIU, ShiftLeft(1, nr))) {          \
> -                Notify(\_SB.PCI0.S##nr, 1)                        \
> -            }                                                     \
> -            If (And(\_SB.PCI0.PCID, ShiftLeft(1, nr))) {          \
> -                Notify(\_SB.PCI0.S##nr, 3)                        \
> -            }
> -
>          Method(_L01) {
> -            gen_pci_hotplug(1)
> -            gen_pci_hotplug(2)
> -            gen_pci_hotplug(3)
> -            gen_pci_hotplug(4)
> -            gen_pci_hotplug(5)
> -            gen_pci_hotplug(6)
> -            gen_pci_hotplug(7)
> -            gen_pci_hotplug(8)
> -            gen_pci_hotplug(9)
> -            gen_pci_hotplug(10)
> -            gen_pci_hotplug(11)
> -            gen_pci_hotplug(12)
> -            gen_pci_hotplug(13)
> -            gen_pci_hotplug(14)
> -            gen_pci_hotplug(15)
> -            gen_pci_hotplug(16)
> -            gen_pci_hotplug(17)
> -            gen_pci_hotplug(18)
> -            gen_pci_hotplug(19)
> -            gen_pci_hotplug(20)
> -            gen_pci_hotplug(21)
> -            gen_pci_hotplug(22)
> -            gen_pci_hotplug(23)
> -            gen_pci_hotplug(24)
> -            gen_pci_hotplug(25)
> -            gen_pci_hotplug(26)
> -            gen_pci_hotplug(27)
> -            gen_pci_hotplug(28)
> -            gen_pci_hotplug(29)
> -            gen_pci_hotplug(30)
> -            gen_pci_hotplug(31)
> -
> -            Return (0x01)
> -
> +            // PCI hotplug event
> +            Return(\_SB.PCI0.PCNF())
>          }
>          Method(_L02) {
>              // CPU hotplug event
> 

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

* Re: [SeaBIOS PATCH v2] hotplug: Add device per func in ACPI DSDT tables
  2011-09-21  5:39                 ` Amos Kong
@ 2011-09-21 11:09                   ` Michael S. Tsirkin
  2011-09-21 12:47                     ` Kevin O'Connor
  0 siblings, 1 reply; 56+ messages in thread
From: Michael S. Tsirkin @ 2011-09-21 11:09 UTC (permalink / raw)
  To: Amos Kong; +Cc: kvm, jasowang, seabios, alex williamson

On Wed, Sep 21, 2011 at 01:39:22AM -0400, Amos Kong wrote:
> ----- Original Message -----
> > On Tue, Sep 20, 2011 at 06:45:57AM -0400, Amos Kong wrote:
> > > From 48ea1c9188334b89a60b4f9e853e86fc04fda4a5 Mon Sep 17 00:00:00
> > > 2001
> > > From: Amos Kong <akong@redhat.com>
> > > Date: Tue, 20 Sep 2011 15:38:43 +0800
> > > Subject: [SeaBIOS PATCH v2] hotplug: Add device per func in ACPI
> > > DSDT tables
> > > 
> > > Only func 0 is registered to guest driver (we can
> > > only found func 0 in slot->funcs list of driver),
> > > the other functions could not be cleaned when
> > > hot-removing the whole slot. This patch adds
> > > device per function in ACPI DSDT tables.
> > > 
> > > Have tested with linux/winxp/win7, hot-adding/hot-remving,
> > > single/multiple function device, they are all fine.
> > > ---
> > > Changes from v1:
> > > - cleanup the macros, bios.bin gets back to 128K
> > > - notify only when func0 is added and removed
> > 
> > How about moving code into functions so that it isn't duplicated for
> > each PCI device.  See the patch below as an example (100% untested).

Hmm, I sent patches that did a similar thing but
in a slightly more compact way.
Message ids:
20110919092932.GB4501@redhat.com
20110919093644.GC4501@redhat.com
20110919100434.GA6764@redhat.com

Did they not reach you or something's wrong with them?

> 
> Tested, it works as my original patch-v2.
> 
> > The CPU hotplug stuff works this way, except it run-time generates
> > the
> > equivalent of "Device(S???)" and "PCNT".  (It may make sense to
> > run-time generate the PCI hotplug as well - it consumes about 10K of
> > space to statically generate the 31 devices.)
> 
> I'm ok with the new version.
> 
> Acked-by: Amos Kong <akong@redhat.com>
> 
> > -Kevin
> > 
> > 
> > diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl
> > index 08412e2..31ac5eb 100644
> > --- a/src/acpi-dsdt.dsl
> > +++ b/src/acpi-dsdt.dsl
> > @@ -128,48 +128,6 @@ DefinitionBlock (
> >                  PCRM, 32,
> >              }
> >  
> > -#define hotplug_slot(name, nr) \
> > -            Device (S##name) {                    \
> > -               Name (_ADR, nr##0000)              \
> > -               Method (_EJ0,1) {                  \
> > -                    Store(ShiftLeft(1, nr), B0EJ) \
> > -                    Return (0x0)                  \
> > -               }                                  \
> > -               Name (_SUN, name)                  \
> > -            }
> > -
> > -	    hotplug_slot(1, 0x0001)
> > -	    hotplug_slot(2, 0x0002)
> > -	    hotplug_slot(3, 0x0003)
> > -	    hotplug_slot(4, 0x0004)
> > -	    hotplug_slot(5, 0x0005)
> > -	    hotplug_slot(6, 0x0006)
> > -	    hotplug_slot(7, 0x0007)
> > -	    hotplug_slot(8, 0x0008)
> > -	    hotplug_slot(9, 0x0009)
> > -	    hotplug_slot(10, 0x000a)
> > -	    hotplug_slot(11, 0x000b)
> > -	    hotplug_slot(12, 0x000c)
> > -	    hotplug_slot(13, 0x000d)
> > -	    hotplug_slot(14, 0x000e)
> > -	    hotplug_slot(15, 0x000f)
> > -	    hotplug_slot(16, 0x0010)
> > -	    hotplug_slot(17, 0x0011)
> > -	    hotplug_slot(18, 0x0012)
> > -	    hotplug_slot(19, 0x0013)
> > -	    hotplug_slot(20, 0x0014)
> > -	    hotplug_slot(21, 0x0015)
> > -	    hotplug_slot(22, 0x0016)
> > -	    hotplug_slot(23, 0x0017)
> > -	    hotplug_slot(24, 0x0018)
> > -	    hotplug_slot(25, 0x0019)
> > -	    hotplug_slot(26, 0x001a)
> > -	    hotplug_slot(27, 0x001b)
> > -	    hotplug_slot(28, 0x001c)
> > -	    hotplug_slot(29, 0x001d)
> > -	    hotplug_slot(30, 0x001e)
> > -	    hotplug_slot(31, 0x001f)
> > -
> >              Name (_CRS, ResourceTemplate ()
> >              {
> >                  WordBusNumber (ResourceProducer, MinFixed, MaxFixed,
> >                  PosDecode,
> > @@ -762,6 +720,119 @@ DefinitionBlock (
> >          Zero   /* reserved */
> >      })
> >  
> > +    /* PCI hotplug */
> > +    Scope(\_SB.PCI0) {
> > +        /* Methods called by bulk generated PCI devices below */
> > +        Method (PCEJ, 1, NotSerialized) {
> > +            // _EJ0 method - eject callback
> > +            Store(ShiftLeft(1, Arg0), B0EJ)
> > +            Return (0x0)
> > +        }
> > +
> > +        /* Bulk generated PCI hotplug devices */
> > +#define hotplug_func(nr, fn)                            \
> > +        Device (S##nr##fn) {                            \
> > +            Name (_ADR, 0x##nr##000##fn)                \
> > +            Method (_EJ0, 1) { Return(PCEJ(0x##nr)) }   \
> > +            Name (_SUN, 0x##nr)                         \
> > +        }

The fundamental question is still why would
we have _EJ0 methods in functions >0 when they are
not individually hotpluggable.
I think only function 0 should have _EJ0.

> > +
> > +#define hotplug_slot(nr) \
> > +            hotplug_func(nr, 0)  \
> > +            hotplug_func(nr, 1)  \
> > +            hotplug_func(nr, 2)  \
> > +            hotplug_func(nr, 3)  \
> > +            hotplug_func(nr, 4)  \
> > +            hotplug_func(nr, 5)  \
> > +            hotplug_func(nr, 6)  \
> > +            hotplug_func(nr, 7)
> > +
> > +	hotplug_slot(01)
> > +	hotplug_slot(02)
> > +	hotplug_slot(03)
> > +	hotplug_slot(04)
> > +	hotplug_slot(05)
> > +	hotplug_slot(06)
> > +	hotplug_slot(07)
> > +	hotplug_slot(08)
> > +	hotplug_slot(09)
> > +	hotplug_slot(0a)
> > +	hotplug_slot(0b)
> > +	hotplug_slot(0c)
> > +	hotplug_slot(0d)
> > +	hotplug_slot(0e)
> > +	hotplug_slot(0f)
> > +	hotplug_slot(10)
> > +	hotplug_slot(11)
> > +	hotplug_slot(12)
> > +	hotplug_slot(13)
> > +	hotplug_slot(14)
> > +	hotplug_slot(15)
> > +	hotplug_slot(16)
> > +	hotplug_slot(17)
> > +	hotplug_slot(18)
> > +	hotplug_slot(19)
> > +	hotplug_slot(1a)
> > +	hotplug_slot(1b)
> > +	hotplug_slot(1c)
> > +	hotplug_slot(1d)
> > +	hotplug_slot(1e)
> > +	hotplug_slot(1f)
> > +
> > +        /* PCI hotplug notify method */
> > +        Method(PCNF, 0) {
> > +            // Local0 = iterator
> > +            Store (Zero, Local0)
> > +            While (LLess(Local0, 31)) {
> > +                Increment(Local0)
> > +                If (And(PCIU, ShiftLeft(1, Local0))) {
> > +                    PCNT(Local0, 1)
> > +                }
> > +                If (And(PCID, ShiftLeft(1, Local0))) {
> > +                    PCNT(Local0, 3)
> > +                }
> > +            }
> > +            Return(One)
> > +        }
> > +
> > +#define hotplug_notify(nr) \
> > +            If (LEqual(Arg0, 0x##nr)) {Notify(S##nr##0, Arg1)}
> > +
> > +        Method(PCNT, 2) {
> > +            hotplug_notify(01)
> > +            hotplug_notify(02)
> > +            hotplug_notify(03)
> > +            hotplug_notify(04)
> > +            hotplug_notify(05)
> > +            hotplug_notify(06)
> > +            hotplug_notify(07)
> > +            hotplug_notify(08)
> > +            hotplug_notify(09)
> > +            hotplug_notify(0a)
> > +            hotplug_notify(0b)
> > +            hotplug_notify(0c)
> > +            hotplug_notify(0d)
> > +            hotplug_notify(0e)
> > +            hotplug_notify(0f)
> > +            hotplug_notify(10)
> > +            hotplug_notify(11)
> > +            hotplug_notify(12)
> > +            hotplug_notify(13)
> > +            hotplug_notify(14)
> > +            hotplug_notify(15)
> > +            hotplug_notify(16)
> > +            hotplug_notify(17)
> > +            hotplug_notify(18)
> > +            hotplug_notify(19)
> > +            hotplug_notify(1a)
> > +            hotplug_notify(1b)
> > +            hotplug_notify(1c)
> > +            hotplug_notify(1d)
> > +            hotplug_notify(1e)
> > +            hotplug_notify(1f)
> > +        }
> > +    }
> > +
> >      /* CPU hotplug */
> >      Scope(\_SB) {
> >          /* Objects filled in by run-time generated SSDT */
> > @@ -842,49 +913,9 @@ DefinitionBlock (
> >              Return(0x01)
> >          }
> >  
> > -#define gen_pci_hotplug(nr)                                       \
> > -            If (And(\_SB.PCI0.PCIU, ShiftLeft(1, nr))) {          \
> > -                Notify(\_SB.PCI0.S##nr, 1)                        \
> > -            }                                                     \
> > -            If (And(\_SB.PCI0.PCID, ShiftLeft(1, nr))) {          \
> > -                Notify(\_SB.PCI0.S##nr, 3)                        \
> > -            }
> > -
> >          Method(_L01) {
> > -            gen_pci_hotplug(1)
> > -            gen_pci_hotplug(2)
> > -            gen_pci_hotplug(3)
> > -            gen_pci_hotplug(4)
> > -            gen_pci_hotplug(5)
> > -            gen_pci_hotplug(6)
> > -            gen_pci_hotplug(7)
> > -            gen_pci_hotplug(8)
> > -            gen_pci_hotplug(9)
> > -            gen_pci_hotplug(10)
> > -            gen_pci_hotplug(11)
> > -            gen_pci_hotplug(12)
> > -            gen_pci_hotplug(13)
> > -            gen_pci_hotplug(14)
> > -            gen_pci_hotplug(15)
> > -            gen_pci_hotplug(16)
> > -            gen_pci_hotplug(17)
> > -            gen_pci_hotplug(18)
> > -            gen_pci_hotplug(19)
> > -            gen_pci_hotplug(20)
> > -            gen_pci_hotplug(21)
> > -            gen_pci_hotplug(22)
> > -            gen_pci_hotplug(23)
> > -            gen_pci_hotplug(24)
> > -            gen_pci_hotplug(25)
> > -            gen_pci_hotplug(26)
> > -            gen_pci_hotplug(27)
> > -            gen_pci_hotplug(28)
> > -            gen_pci_hotplug(29)
> > -            gen_pci_hotplug(30)
> > -            gen_pci_hotplug(31)
> > -
> > -            Return (0x01)
> > -
> > +            // PCI hotplug event
> > +            Return(\_SB.PCI0.PCNF())
> >          }
> >          Method(_L02) {
> >              // CPU hotplug event
> > 

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

* Re: [SeaBIOS PATCH v2] hotplug: Add device per func in ACPI DSDT tables
  2011-09-21 11:09                   ` Michael S. Tsirkin
@ 2011-09-21 12:47                     ` Kevin O'Connor
  2011-09-21 13:14                       ` Michael S. Tsirkin
  0 siblings, 1 reply; 56+ messages in thread
From: Kevin O'Connor @ 2011-09-21 12:47 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Amos Kong, seabios, Gleb Natapov, kvm, jasowang, alex williamson,
	Marcelo Tosatti

On Wed, Sep 21, 2011 at 02:09:08PM +0300, Michael S. Tsirkin wrote:
> On Wed, Sep 21, 2011 at 01:39:22AM -0400, Amos Kong wrote:
> > ----- Original Message -----
> > > How about moving code into functions so that it isn't duplicated for
> > > each PCI device.  See the patch below as an example (100% untested).
> 
> Hmm, I sent patches that did a similar thing but
> in a slightly more compact way.
> Message ids:
> 20110919092932.GB4501@redhat.com
> 20110919093644.GC4501@redhat.com
> 20110919100434.GA6764@redhat.com
> 
> Did they not reach you or something's wrong with them?

I received them, but when I saw Amos' v2 patch I thought he included
them.

> > > +        /* Bulk generated PCI hotplug devices */
> > > +#define hotplug_func(nr, fn)                            \
> > > +        Device (S##nr##fn) {                            \
> > > +            Name (_ADR, 0x##nr##000##fn)                \
> > > +            Method (_EJ0, 1) { Return(PCEJ(0x##nr)) }   \
> > > +            Name (_SUN, 0x##nr)                         \
> > > +        }
> 
> The fundamental question is still why would
> we have _EJ0 methods in functions >0 when they are
> not individually hotpluggable.
> I think only function 0 should have _EJ0.

I don't know the answer to this question.

Maybe we should just collapse the current definitions and then put the
fixes and enhancements on top of the collapsed version.

-Kevin

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

* Re: [SeaBIOS PATCH v2] hotplug: Add device per func in ACPI DSDT tables
  2011-09-21 12:47                     ` Kevin O'Connor
@ 2011-09-21 13:14                       ` Michael S. Tsirkin
  2011-12-06  5:39                         ` [SeaBIOS PATCH v3] " Amos Kong
  0 siblings, 1 reply; 56+ messages in thread
From: Michael S. Tsirkin @ 2011-09-21 13:14 UTC (permalink / raw)
  To: Kevin O'Connor
  Cc: Amos Kong, seabios, Gleb Natapov, kvm, jasowang, alex williamson,
	Marcelo Tosatti

On Wed, Sep 21, 2011 at 08:47:39AM -0400, Kevin O'Connor wrote:
> On Wed, Sep 21, 2011 at 02:09:08PM +0300, Michael S. Tsirkin wrote:
> > On Wed, Sep 21, 2011 at 01:39:22AM -0400, Amos Kong wrote:
> > > ----- Original Message -----
> > > > How about moving code into functions so that it isn't duplicated for
> > > > each PCI device.  See the patch below as an example (100% untested).
> > 
> > Hmm, I sent patches that did a similar thing but
> > in a slightly more compact way.
> > Message ids:
> > 20110919092932.GB4501@redhat.com
> > 20110919093644.GC4501@redhat.com
> > 20110919100434.GA6764@redhat.com
> > 
> > Did they not reach you or something's wrong with them?
> 
> I received them, but when I saw Amos' v2 patch I thought he included
> them.
> 
> > > > +        /* Bulk generated PCI hotplug devices */
> > > > +#define hotplug_func(nr, fn)                            \
> > > > +        Device (S##nr##fn) {                            \
> > > > +            Name (_ADR, 0x##nr##000##fn)                \
> > > > +            Method (_EJ0, 1) { Return(PCEJ(0x##nr)) }   \
> > > > +            Name (_SUN, 0x##nr)                         \
> > > > +        }
> > 
> > The fundamental question is still why would
> > we have _EJ0 methods in functions >0 when they are
> > not individually hotpluggable.
> > I think only function 0 should have _EJ0.
> 
> I don't know the answer to this question.
> 
> Maybe we should just collapse the current definitions and then put the
> fixes and enhancements on top of the collapsed version.
> 
> -Kevin

OK, I'll refactor my patches.
I just sent a patchset which in particular removes
the gen_pci_device macro, probably best to work on top of that?

-- 
MST

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

* [SeaBIOS PATCH v3] hotplug: Add device per func in ACPI DSDT tables
  2011-09-21 13:14                       ` Michael S. Tsirkin
@ 2011-12-06  5:39                         ` Amos Kong
  2011-12-06 11:36                           ` Michael S. Tsirkin
  0 siblings, 1 reply; 56+ messages in thread
From: Amos Kong @ 2011-12-06  5:39 UTC (permalink / raw)
  To: seabios; +Cc: mst, kvm, alex.williamson, mtosatti, mtosatti

Only func 0 is registered to guest driver (we can
only found func 0 in slot->funcs list of driver),
the other functions could not be cleaned when
hot-removing the whole slot. This patch adds
device per function in ACPI DSDT tables.
Notify only when func0 is added and removed.

Have tested with linux/winxp/win7, hot-adding/hot-remving,
single/multiple function device, they are all fine(all
added devices can be removed).

Changes from v2:
 update patch based on latest seabios tree

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Amos Kong <akong@redhat.com>
---

 src/ssdt-pcihp.dsl |   17 
 src/ssdt-pcihp.hex | 9225 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 2 files changed, 8959 insertions(+), 283 deletions(-)

diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
index 4b435b8..2a3c326 100644
--- a/src/ssdt-pcihp.dsl
+++ b/src/ssdt-pcihp.dsl
@@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
         // at runtime, if the slot is detected to not support hotplug.
         // Extract the offset of the address dword and the
         // _EJ0 name to allow this patching.
-#define hotplug_slot(slot)                              \
-        Device (S##slot) {                              \
+#define hotplug_func(slot, fn)                          \
+        Device (S##slot##fn) {                          \
            ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
-           Name (_ADR, 0x##slot##0000)                  \
+           Name (_ADR, 0x##slot##000##fn)               \
            ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
            Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
            Name (_SUN, 0x##slot)                        \
         }
+#define hotplug_slot(slot)     \
+        hotplug_func(slot, 0)  \
+        hotplug_func(slot, 1)  \
+        hotplug_func(slot, 2)  \
+        hotplug_func(slot, 3)  \
+        hotplug_func(slot, 4)  \
+        hotplug_func(slot, 5)  \
+        hotplug_func(slot, 6)  \
+        hotplug_func(slot, 7)
 
         hotplug_slot(01)
         hotplug_slot(02)
@@ -59,7 +68,7 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
         hotplug_slot(1f)
 
 #define gen_pci_hotplug(slot)   \
-            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot, Arg1) }
+            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot##0, Arg1) }
 
         Method(PCNT, 2) {
             gen_pci_hotplug(01)
diff --git a/src/ssdt-pcihp.hex b/src/ssdt-pcihp.hex
index b15ad5a..4c9b5df 100644
--- a/src/ssdt-pcihp.hex
+++ b/src/ssdt-pcihp.hex
@@ -1,80 +1,514 @@
 static unsigned short aml_adr_dword[] = {
-0x3e,
-0x62,
-0x88,
-0xae,
-0xd4,
-0xfa,
-0x120,
-0x146,
-0x16c,
-0x192,
-0x1b8,
-0x1de,
-0x204,
-0x22a,
-0x250,
-0x276,
-0x29c,
-0x2c2,
-0x2e8,
-0x30e,
-0x334,
-0x35a,
-0x380,
-0x3a6,
-0x3cc,
-0x3f2,
-0x418,
-0x43e,
-0x464,
-0x48a,
-0x4b0
+0x3f,
+0x63,
+0x87,
+0xab,
+0xcf,
+0xf3,
+0x117,
+0x13b,
+0x15f,
+0x185,
+0x1ab,
+0x1d1,
+0x1f7,
+0x21d,
+0x243,
+0x269,
+0x28f,
+0x2b5,
+0x2db,
+0x301,
+0x327,
+0x34d,
+0x373,
+0x399,
+0x3bf,
+0x3e5,
+0x40b,
+0x431,
+0x457,
+0x47d,
+0x4a3,
+0x4c9,
+0x4ef,
+0x515,
+0x53b,
+0x561,
+0x587,
+0x5ad,
+0x5d3,
+0x5f9,
+0x61f,
+0x645,
+0x66b,
+0x691,
+0x6b7,
+0x6dd,
+0x703,
+0x729,
+0x74f,
+0x775,
+0x79b,
+0x7c1,
+0x7e7,
+0x80d,
+0x833,
+0x859,
+0x87f,
+0x8a5,
+0x8cb,
+0x8f1,
+0x917,
+0x93d,
+0x963,
+0x989,
+0x9af,
+0x9d5,
+0x9fb,
+0xa21,
+0xa47,
+0xa6d,
+0xa93,
+0xab9,
+0xadf,
+0xb05,
+0xb2b,
+0xb51,
+0xb77,
+0xb9d,
+0xbc3,
+0xbe9,
+0xc0f,
+0xc35,
+0xc5b,
+0xc81,
+0xca7,
+0xccd,
+0xcf3,
+0xd19,
+0xd3f,
+0xd65,
+0xd8b,
+0xdb1,
+0xdd7,
+0xdfd,
+0xe23,
+0xe49,
+0xe6f,
+0xe95,
+0xebb,
+0xee1,
+0xf07,
+0xf2d,
+0xf53,
+0xf79,
+0xf9f,
+0xfc5,
+0xfeb,
+0x1011,
+0x1037,
+0x105d,
+0x1083,
+0x10a9,
+0x10cf,
+0x10f5,
+0x111b,
+0x1141,
+0x1167,
+0x118d,
+0x11b3,
+0x11d9,
+0x11ff,
+0x1225,
+0x124b,
+0x1271,
+0x1297,
+0x12bd,
+0x12e3,
+0x1309,
+0x132f,
+0x1355,
+0x137b,
+0x13a1,
+0x13c7,
+0x13ed,
+0x1413,
+0x1439,
+0x145f,
+0x1485,
+0x14ab,
+0x14d1,
+0x14f7,
+0x151d,
+0x1543,
+0x1569,
+0x158f,
+0x15b5,
+0x15db,
+0x1601,
+0x1627,
+0x164d,
+0x1673,
+0x1699,
+0x16bf,
+0x16e5,
+0x170b,
+0x1731,
+0x1757,
+0x177d,
+0x17a3,
+0x17c9,
+0x17ef,
+0x1815,
+0x183b,
+0x1861,
+0x1887,
+0x18ad,
+0x18d3,
+0x18f9,
+0x191f,
+0x1945,
+0x196b,
+0x1991,
+0x19b7,
+0x19dd,
+0x1a03,
+0x1a29,
+0x1a4f,
+0x1a75,
+0x1a9b,
+0x1ac1,
+0x1ae7,
+0x1b0d,
+0x1b33,
+0x1b59,
+0x1b7f,
+0x1ba5,
+0x1bcb,
+0x1bf1,
+0x1c17,
+0x1c3d,
+0x1c63,
+0x1c89,
+0x1caf,
+0x1cd5,
+0x1cfb,
+0x1d21,
+0x1d47,
+0x1d6d,
+0x1d93,
+0x1db9,
+0x1ddf,
+0x1e05,
+0x1e2b,
+0x1e51,
+0x1e77,
+0x1e9d,
+0x1ec3,
+0x1ee9,
+0x1f0f,
+0x1f35,
+0x1f5b,
+0x1f81,
+0x1fa7,
+0x1fcd,
+0x1ff3,
+0x2019,
+0x203f,
+0x2065,
+0x208b,
+0x20b1,
+0x20d7,
+0x20fd,
+0x2123,
+0x2149,
+0x216f,
+0x2195,
+0x21bb,
+0x21e1,
+0x2207,
+0x222d,
+0x2253,
+0x2279,
+0x229f,
+0x22c5,
+0x22eb,
+0x2311,
+0x2337,
+0x235d,
+0x2383,
+0x23a9,
+0x23cf,
+0x23f5,
+0x241b,
+0x2441,
+0x2467,
+0x248d,
+0x24b3,
+0x24d9
 };
 static unsigned short aml_ej0_name[] = {
-0x44,
-0x68,
-0x8e,
-0xb4,
-0xda,
-0x100,
-0x126,
-0x14c,
-0x172,
-0x198,
-0x1be,
-0x1e4,
-0x20a,
-0x230,
-0x256,
-0x27c,
-0x2a2,
-0x2c8,
-0x2ee,
-0x314,
-0x33a,
-0x360,
-0x386,
-0x3ac,
-0x3d2,
-0x3f8,
-0x41e,
-0x444,
-0x46a,
-0x490,
-0x4b6
+0x45,
+0x69,
+0x8d,
+0xb1,
+0xd5,
+0xf9,
+0x11d,
+0x141,
+0x165,
+0x18b,
+0x1b1,
+0x1d7,
+0x1fd,
+0x223,
+0x249,
+0x26f,
+0x295,
+0x2bb,
+0x2e1,
+0x307,
+0x32d,
+0x353,
+0x379,
+0x39f,
+0x3c5,
+0x3eb,
+0x411,
+0x437,
+0x45d,
+0x483,
+0x4a9,
+0x4cf,
+0x4f5,
+0x51b,
+0x541,
+0x567,
+0x58d,
+0x5b3,
+0x5d9,
+0x5ff,
+0x625,
+0x64b,
+0x671,
+0x697,
+0x6bd,
+0x6e3,
+0x709,
+0x72f,
+0x755,
+0x77b,
+0x7a1,
+0x7c7,
+0x7ed,
+0x813,
+0x839,
+0x85f,
+0x885,
+0x8ab,
+0x8d1,
+0x8f7,
+0x91d,
+0x943,
+0x969,
+0x98f,
+0x9b5,
+0x9db,
+0xa01,
+0xa27,
+0xa4d,
+0xa73,
+0xa99,
+0xabf,
+0xae5,
+0xb0b,
+0xb31,
+0xb57,
+0xb7d,
+0xba3,
+0xbc9,
+0xbef,
+0xc15,
+0xc3b,
+0xc61,
+0xc87,
+0xcad,
+0xcd3,
+0xcf9,
+0xd1f,
+0xd45,
+0xd6b,
+0xd91,
+0xdb7,
+0xddd,
+0xe03,
+0xe29,
+0xe4f,
+0xe75,
+0xe9b,
+0xec1,
+0xee7,
+0xf0d,
+0xf33,
+0xf59,
+0xf7f,
+0xfa5,
+0xfcb,
+0xff1,
+0x1017,
+0x103d,
+0x1063,
+0x1089,
+0x10af,
+0x10d5,
+0x10fb,
+0x1121,
+0x1147,
+0x116d,
+0x1193,
+0x11b9,
+0x11df,
+0x1205,
+0x122b,
+0x1251,
+0x1277,
+0x129d,
+0x12c3,
+0x12e9,
+0x130f,
+0x1335,
+0x135b,
+0x1381,
+0x13a7,
+0x13cd,
+0x13f3,
+0x1419,
+0x143f,
+0x1465,
+0x148b,
+0x14b1,
+0x14d7,
+0x14fd,
+0x1523,
+0x1549,
+0x156f,
+0x1595,
+0x15bb,
+0x15e1,
+0x1607,
+0x162d,
+0x1653,
+0x1679,
+0x169f,
+0x16c5,
+0x16eb,
+0x1711,
+0x1737,
+0x175d,
+0x1783,
+0x17a9,
+0x17cf,
+0x17f5,
+0x181b,
+0x1841,
+0x1867,
+0x188d,
+0x18b3,
+0x18d9,
+0x18ff,
+0x1925,
+0x194b,
+0x1971,
+0x1997,
+0x19bd,
+0x19e3,
+0x1a09,
+0x1a2f,
+0x1a55,
+0x1a7b,
+0x1aa1,
+0x1ac7,
+0x1aed,
+0x1b13,
+0x1b39,
+0x1b5f,
+0x1b85,
+0x1bab,
+0x1bd1,
+0x1bf7,
+0x1c1d,
+0x1c43,
+0x1c69,
+0x1c8f,
+0x1cb5,
+0x1cdb,
+0x1d01,
+0x1d27,
+0x1d4d,
+0x1d73,
+0x1d99,
+0x1dbf,
+0x1de5,
+0x1e0b,
+0x1e31,
+0x1e57,
+0x1e7d,
+0x1ea3,
+0x1ec9,
+0x1eef,
+0x1f15,
+0x1f3b,
+0x1f61,
+0x1f87,
+0x1fad,
+0x1fd3,
+0x1ff9,
+0x201f,
+0x2045,
+0x206b,
+0x2091,
+0x20b7,
+0x20dd,
+0x2103,
+0x2129,
+0x214f,
+0x2175,
+0x219b,
+0x21c1,
+0x21e7,
+0x220d,
+0x2233,
+0x2259,
+0x227f,
+0x22a5,
+0x22cb,
+0x22f1,
+0x2317,
+0x233d,
+0x2363,
+0x2389,
+0x23af,
+0x23d5,
+0x23fb,
+0x2421,
+0x2447,
+0x246d,
+0x2493,
+0x24b9,
+0x24df
 };
 static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x53,
 0x44,
 0x54,
-0x44,
-0x6,
+0x6d,
+0x26,
 0x0,
 0x0,
 0x1,
-0x94,
+0x6f,
 0x42,
 0x58,
 0x50,
@@ -102,8 +536,9 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x10,
 0x20,
 0x10,
-0x4f,
-0x61,
+0x88,
+0x64,
+0x2,
 0x5c,
 0x2e,
 0x5f,
@@ -120,7 +555,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x31,
-0x5f,
+0x30,
 0x8,
 0x5f,
 0x41,
@@ -152,23 +587,59 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x1,
 0x5b,
 0x82,
-0x24,
+0x22,
 0x53,
 0x30,
-0x32,
-0x5f,
+0x31,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0x1,
 0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
 0x2,
 0x0,
+0x1,
+0x0,
 0x14,
-0xd,
+0xc,
 0x5f,
 0x45,
 0x4a,
@@ -179,34 +650,32 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x43,
 0x45,
 0x4a,
-0xa,
-0x2,
+0x1,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
-0xa,
-0x2,
+0x1,
 0x5b,
 0x82,
-0x24,
+0x22,
 0x53,
 0x30,
+0x31,
 0x33,
-0x5f,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
-0x0,
-0x0,
 0x3,
 0x0,
+0x1,
+0x0,
 0x14,
-0xd,
+0xc,
 0x5f,
 0x45,
 0x4a,
@@ -217,34 +686,32 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x43,
 0x45,
 0x4a,
-0xa,
-0x3,
+0x1,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
-0xa,
-0x3,
+0x1,
 0x5b,
 0x82,
-0x24,
+0x22,
 0x53,
 0x30,
+0x31,
 0x34,
-0x5f,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
-0x0,
-0x0,
 0x4,
 0x0,
+0x1,
+0x0,
 0x14,
-0xd,
+0xc,
 0x5f,
 0x45,
 0x4a,
@@ -255,34 +722,32 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x43,
 0x45,
 0x4a,
-0xa,
-0x4,
+0x1,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
-0xa,
-0x4,
+0x1,
 0x5b,
 0x82,
-0x24,
+0x22,
 0x53,
 0x30,
+0x31,
 0x35,
-0x5f,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
-0x0,
-0x0,
 0x5,
 0x0,
+0x1,
+0x0,
 0x14,
-0xd,
+0xc,
 0x5f,
 0x45,
 0x4a,
@@ -293,34 +758,32 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x43,
 0x45,
 0x4a,
-0xa,
-0x5,
+0x1,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
-0xa,
-0x5,
+0x1,
 0x5b,
 0x82,
-0x24,
+0x22,
 0x53,
 0x30,
+0x31,
 0x36,
-0x5f,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
-0x0,
-0x0,
 0x6,
 0x0,
+0x1,
+0x0,
 0x14,
-0xd,
+0xc,
 0x5f,
 0x45,
 0x4a,
@@ -331,22 +794,56 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x43,
 0x45,
 0x4a,
-0xa,
-0x6,
+0x1,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
-0xa,
-0x6,
+0x1,
 0x5b,
 0x82,
-0x24,
+0x22,
 0x53,
 0x30,
+0x31,
 0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x1,
+0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x30,
 0x8,
 0x5f,
 0x41,
@@ -355,7 +852,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0xc,
 0x0,
 0x0,
-0x7,
+0x2,
 0x0,
 0x14,
 0xd,
@@ -370,30 +867,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0x7,
+0x2,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0x7,
+0x2,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x30,
-0x38,
-0x5f,
+0x32,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
-0x0,
-0x8,
+0x2,
 0x0,
 0x14,
 0xd,
@@ -408,30 +905,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0x8,
+0x2,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0x8,
+0x2,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x30,
-0x39,
-0x5f,
+0x32,
+0x32,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x2,
 0x0,
-0x0,
-0x9,
+0x2,
 0x0,
 0x14,
 0xd,
@@ -446,30 +943,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0x9,
+0x2,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0x9,
+0x2,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x30,
-0x41,
-0x5f,
+0x32,
+0x33,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x3,
 0x0,
-0x0,
-0xa,
+0x2,
 0x0,
 0x14,
 0xd,
@@ -484,30 +981,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0xa,
+0x2,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0xa,
+0x2,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x30,
-0x42,
-0x5f,
+0x32,
+0x34,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x4,
 0x0,
-0x0,
-0xb,
+0x2,
 0x0,
 0x14,
 0xd,
@@ -522,30 +1019,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0xb,
+0x2,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0xb,
+0x2,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x30,
-0x43,
-0x5f,
+0x32,
+0x35,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x5,
 0x0,
-0x0,
-0xc,
+0x2,
 0x0,
 0x14,
 0xd,
@@ -560,30 +1057,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0xc,
+0x2,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0xc,
+0x2,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x30,
-0x44,
-0x5f,
+0x32,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
 0x0,
-0x0,
-0xd,
+0x2,
 0x0,
 0x14,
 0xd,
@@ -598,30 +1095,8200 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0xd,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x2,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xc,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0xc,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xc,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xc,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0xc,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xc,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0xc,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0xc,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0xd,
+0x1d,
 0x5b,
 0x82,
 0x24,
 0x53,
-0x30,
-0x45,
-0x5f,
+0x31,
+0x44,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
 0x0,
-0x0,
-0xe,
+0x1d,
 0x0,
 0x14,
 0xd,
@@ -636,30 +9303,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0xe,
+0x1d,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0xe,
+0x1d,
 0x5b,
 0x82,
 0x24,
 0x53,
-0x30,
-0x46,
-0x5f,
+0x31,
+0x44,
+0x37,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x7,
 0x0,
-0x0,
-0xf,
+0x1d,
 0x0,
 0x14,
 0xd,
@@ -674,21 +9341,21 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0xf,
+0x1d,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0xf,
+0x1d,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x31,
+0x45,
 0x30,
-0x5f,
 0x8,
 0x5f,
 0x41,
@@ -697,7 +9364,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0xc,
 0x0,
 0x0,
-0x10,
+0x1e,
 0x0,
 0x14,
 0xd,
@@ -712,30 +9379,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0x10,
+0x1e,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0x10,
+0x1e,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x31,
+0x45,
 0x31,
-0x5f,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
-0x0,
-0x11,
+0x1e,
 0x0,
 0x14,
 0xd,
@@ -750,30 +9417,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0x11,
+0x1e,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0x11,
+0x1e,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x31,
+0x45,
 0x32,
-0x5f,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x2,
 0x0,
-0x0,
-0x12,
+0x1e,
 0x0,
 0x14,
 0xd,
@@ -788,30 +9455,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0x12,
+0x1e,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0x12,
+0x1e,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x31,
+0x45,
 0x33,
-0x5f,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x3,
 0x0,
-0x0,
-0x13,
+0x1e,
 0x0,
 0x14,
 0xd,
@@ -826,30 +9493,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0x13,
+0x1e,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0x13,
+0x1e,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x31,
+0x45,
 0x34,
-0x5f,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x4,
 0x0,
-0x0,
-0x14,
+0x1e,
 0x0,
 0x14,
 0xd,
@@ -864,30 +9531,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0x14,
+0x1e,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0x14,
+0x1e,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x31,
+0x45,
 0x35,
-0x5f,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x5,
 0x0,
-0x0,
-0x15,
+0x1e,
 0x0,
 0x14,
 0xd,
@@ -902,30 +9569,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0x15,
+0x1e,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0x15,
+0x1e,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x31,
+0x45,
 0x36,
-0x5f,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
 0x0,
-0x0,
-0x16,
+0x1e,
 0x0,
 0x14,
 0xd,
@@ -940,30 +9607,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0x16,
+0x1e,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0x16,
+0x1e,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x31,
+0x45,
 0x37,
-0x5f,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x7,
 0x0,
-0x0,
-0x17,
+0x1e,
 0x0,
 0x14,
 0xd,
@@ -978,21 +9645,21 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0x17,
+0x1e,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0x17,
+0x1e,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x31,
-0x38,
-0x5f,
+0x46,
+0x30,
 0x8,
 0x5f,
 0x41,
@@ -1001,7 +9668,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0xc,
 0x0,
 0x0,
-0x18,
+0x1f,
 0x0,
 0x14,
 0xd,
@@ -1016,30 +9683,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0x18,
+0x1f,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0x18,
+0x1f,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x31,
-0x39,
-0x5f,
+0x46,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
-0x0,
-0x19,
+0x1f,
 0x0,
 0x14,
 0xd,
@@ -1054,30 +9721,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0x19,
+0x1f,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0x19,
+0x1f,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x31,
-0x41,
-0x5f,
+0x46,
+0x32,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x2,
 0x0,
-0x0,
-0x1a,
+0x1f,
 0x0,
 0x14,
 0xd,
@@ -1092,30 +9759,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0x1a,
+0x1f,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0x1a,
+0x1f,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x31,
-0x42,
-0x5f,
+0x46,
+0x33,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x3,
 0x0,
-0x0,
-0x1b,
+0x1f,
 0x0,
 0x14,
 0xd,
@@ -1130,30 +9797,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0x1b,
+0x1f,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0x1b,
+0x1f,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x31,
-0x43,
-0x5f,
+0x46,
+0x34,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x4,
 0x0,
-0x0,
-0x1c,
+0x1f,
 0x0,
 0x14,
 0xd,
@@ -1168,30 +9835,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0x1c,
+0x1f,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0x1c,
+0x1f,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x31,
-0x44,
-0x5f,
+0x46,
+0x35,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x5,
 0x0,
-0x0,
-0x1d,
+0x1f,
 0x0,
 0x14,
 0xd,
@@ -1206,30 +9873,30 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0x1d,
+0x1f,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0x1d,
+0x1f,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x31,
-0x45,
-0x5f,
+0x46,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
 0x0,
-0x0,
-0x1e,
+0x1f,
 0x0,
 0x14,
 0xd,
@@ -1244,28 +9911,28 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
-0x1e,
+0x1f,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
-0x1e,
+0x1f,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x31,
 0x46,
-0x5f,
+0x37,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
-0x0,
+0x7,
 0x0,
 0x1f,
 0x0,
@@ -1307,7 +9974,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x31,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1319,7 +9986,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x32,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1331,7 +9998,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x33,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1343,7 +10010,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x34,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1355,7 +10022,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x35,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1367,7 +10034,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x36,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1379,7 +10046,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x37,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1391,7 +10058,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x38,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1403,7 +10070,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x39,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1415,7 +10082,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x41,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1427,7 +10094,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x42,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1439,7 +10106,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x43,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1451,7 +10118,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x44,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1463,7 +10130,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x45,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1475,7 +10142,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x46,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1487,7 +10154,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x30,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1499,7 +10166,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x31,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1511,7 +10178,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x32,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1523,7 +10190,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x33,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1535,7 +10202,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x34,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1547,7 +10214,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x35,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1559,7 +10226,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x36,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1571,7 +10238,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x37,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1583,7 +10250,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x38,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1595,7 +10262,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x39,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1607,7 +10274,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x41,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1619,7 +10286,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x42,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1631,7 +10298,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x43,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1643,7 +10310,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x44,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1655,7 +10322,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x45,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1667,6 +10334,6 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x46,
-0x5f,
+0x30,
 0x69
 };


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

* Re: [SeaBIOS PATCH v3] hotplug: Add device per func in ACPI DSDT tables
  2011-12-06  5:39                         ` [SeaBIOS PATCH v3] " Amos Kong
@ 2011-12-06 11:36                           ` Michael S. Tsirkin
  2011-12-07  0:32                             ` Amos Kong
  0 siblings, 1 reply; 56+ messages in thread
From: Michael S. Tsirkin @ 2011-12-06 11:36 UTC (permalink / raw)
  To: Amos Kong; +Cc: seabios, kvm, alex.williamson, mtosatti

On Tue, Dec 06, 2011 at 01:39:35PM +0800, Amos Kong wrote:
> Only func 0 is registered to guest driver (we can
> only found func 0 in slot->funcs list of driver),
> the other functions could not be cleaned when
> hot-removing the whole slot. This patch adds
> device per function in ACPI DSDT tables.
> Notify only when func0 is added and removed.
> 
> Have tested with linux/winxp/win7, hot-adding/hot-remving,
> single/multiple function device, they are all fine(all
> added devices can be removed).
> 
> Changes from v2:
>  update patch based on latest seabios tree
> 
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> Signed-off-by: Amos Kong <akong@redhat.com>

This includes some bits I wrote but this is not an ack
of the patch yet :)

I find it surprising that this works: a function
has _EJ0 so would not guest expect that ejecting
a single one will only remove it, and not all functions?

> ---
> 
>  src/ssdt-pcihp.dsl |   17 
>  src/ssdt-pcihp.hex | 9225 ++++++++++++++++++++++++++++++++++++++++++++++++++--
>  2 files changed, 8959 insertions(+), 283 deletions(-)
> 
> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> index 4b435b8..2a3c326 100644
> --- a/src/ssdt-pcihp.dsl
> +++ b/src/ssdt-pcihp.dsl
> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>          // at runtime, if the slot is detected to not support hotplug.
>          // Extract the offset of the address dword and the
>          // _EJ0 name to allow this patching.
> -#define hotplug_slot(slot)                              \
> -        Device (S##slot) {                              \
> +#define hotplug_func(slot, fn)                          \
> +        Device (S##slot##fn) {                          \
>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> -           Name (_ADR, 0x##slot##0000)                  \
> +           Name (_ADR, 0x##slot##000##fn)               \
>             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
>             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
>             Name (_SUN, 0x##slot)                        \
>          }
> +#define hotplug_slot(slot)     \
> +        hotplug_func(slot, 0)  \
> +        hotplug_func(slot, 1)  \
> +        hotplug_func(slot, 2)  \
> +        hotplug_func(slot, 3)  \
> +        hotplug_func(slot, 4)  \
> +        hotplug_func(slot, 5)  \
> +        hotplug_func(slot, 6)  \
> +        hotplug_func(slot, 7)
>  
>          hotplug_slot(01)
>          hotplug_slot(02)
> @@ -59,7 +68,7 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>          hotplug_slot(1f)
>  
>  #define gen_pci_hotplug(slot)   \
> -            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot, Arg1) }
> +            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot##0, Arg1) }
>  
>          Method(PCNT, 2) {
>              gen_pci_hotplug(01)
> diff --git a/src/ssdt-pcihp.hex b/src/ssdt-pcihp.hex
> index b15ad5a..4c9b5df 100644
> --- a/src/ssdt-pcihp.hex
> +++ b/src/ssdt-pcihp.hex
> @@ -1,80 +1,514 @@
>  static unsigned short aml_adr_dword[] = {
> -0x3e,
> -0x62,
> -0x88,
> -0xae,
> -0xd4,
> -0xfa,
> -0x120,
> -0x146,
> -0x16c,
> -0x192,
> -0x1b8,
> -0x1de,
> -0x204,
> -0x22a,
> -0x250,
> -0x276,
> -0x29c,
> -0x2c2,
> -0x2e8,
> -0x30e,
> -0x334,
> -0x35a,
> -0x380,
> -0x3a6,
> -0x3cc,
> -0x3f2,
> -0x418,
> -0x43e,
> -0x464,
> -0x48a,
> -0x4b0
> +0x3f,
> +0x63,
> +0x87,
> +0xab,
> +0xcf,
> +0xf3,
> +0x117,
> +0x13b,
> +0x15f,
> +0x185,
> +0x1ab,
> +0x1d1,
> +0x1f7,
> +0x21d,
> +0x243,
> +0x269,
> +0x28f,
> +0x2b5,
> +0x2db,
> +0x301,
> +0x327,
> +0x34d,
> +0x373,
> +0x399,
> +0x3bf,
> +0x3e5,
> +0x40b,
> +0x431,
> +0x457,
> +0x47d,
> +0x4a3,
> +0x4c9,
> +0x4ef,
> +0x515,
> +0x53b,
> +0x561,
> +0x587,
> +0x5ad,
> +0x5d3,
> +0x5f9,
> +0x61f,
> +0x645,
> +0x66b,
> +0x691,
> +0x6b7,
> +0x6dd,
> +0x703,
> +0x729,
> +0x74f,
> +0x775,
> +0x79b,
> +0x7c1,
> +0x7e7,
> +0x80d,
> +0x833,
> +0x859,
> +0x87f,
> +0x8a5,
> +0x8cb,
> +0x8f1,
> +0x917,
> +0x93d,
> +0x963,
> +0x989,
> +0x9af,
> +0x9d5,
> +0x9fb,
> +0xa21,
> +0xa47,
> +0xa6d,
> +0xa93,
> +0xab9,
> +0xadf,
> +0xb05,
> +0xb2b,
> +0xb51,
> +0xb77,
> +0xb9d,
> +0xbc3,
> +0xbe9,
> +0xc0f,
> +0xc35,
> +0xc5b,
> +0xc81,
> +0xca7,
> +0xccd,
> +0xcf3,
> +0xd19,
> +0xd3f,
> +0xd65,
> +0xd8b,
> +0xdb1,
> +0xdd7,
> +0xdfd,
> +0xe23,
> +0xe49,
> +0xe6f,
> +0xe95,
> +0xebb,
> +0xee1,
> +0xf07,
> +0xf2d,
> +0xf53,
> +0xf79,
> +0xf9f,
> +0xfc5,
> +0xfeb,
> +0x1011,
> +0x1037,
> +0x105d,
> +0x1083,
> +0x10a9,
> +0x10cf,
> +0x10f5,
> +0x111b,
> +0x1141,
> +0x1167,
> +0x118d,
> +0x11b3,
> +0x11d9,
> +0x11ff,
> +0x1225,
> +0x124b,
> +0x1271,
> +0x1297,
> +0x12bd,
> +0x12e3,
> +0x1309,
> +0x132f,
> +0x1355,
> +0x137b,
> +0x13a1,
> +0x13c7,
> +0x13ed,
> +0x1413,
> +0x1439,
> +0x145f,
> +0x1485,
> +0x14ab,
> +0x14d1,
> +0x14f7,
> +0x151d,
> +0x1543,
> +0x1569,
> +0x158f,
> +0x15b5,
> +0x15db,
> +0x1601,
> +0x1627,
> +0x164d,
> +0x1673,
> +0x1699,
> +0x16bf,
> +0x16e5,
> +0x170b,
> +0x1731,
> +0x1757,
> +0x177d,
> +0x17a3,
> +0x17c9,
> +0x17ef,
> +0x1815,
> +0x183b,
> +0x1861,
> +0x1887,
> +0x18ad,
> +0x18d3,
> +0x18f9,
> +0x191f,
> +0x1945,
> +0x196b,
> +0x1991,
> +0x19b7,
> +0x19dd,
> +0x1a03,
> +0x1a29,
> +0x1a4f,
> +0x1a75,
> +0x1a9b,
> +0x1ac1,
> +0x1ae7,
> +0x1b0d,
> +0x1b33,
> +0x1b59,
> +0x1b7f,
> +0x1ba5,
> +0x1bcb,
> +0x1bf1,
> +0x1c17,
> +0x1c3d,
> +0x1c63,
> +0x1c89,
> +0x1caf,
> +0x1cd5,
> +0x1cfb,
> +0x1d21,
> +0x1d47,
> +0x1d6d,
> +0x1d93,
> +0x1db9,
> +0x1ddf,
> +0x1e05,
> +0x1e2b,
> +0x1e51,
> +0x1e77,
> +0x1e9d,
> +0x1ec3,
> +0x1ee9,
> +0x1f0f,
> +0x1f35,
> +0x1f5b,
> +0x1f81,
> +0x1fa7,
> +0x1fcd,
> +0x1ff3,
> +0x2019,
> +0x203f,
> +0x2065,
> +0x208b,
> +0x20b1,
> +0x20d7,
> +0x20fd,
> +0x2123,
> +0x2149,
> +0x216f,
> +0x2195,
> +0x21bb,
> +0x21e1,
> +0x2207,
> +0x222d,
> +0x2253,
> +0x2279,
> +0x229f,
> +0x22c5,
> +0x22eb,
> +0x2311,
> +0x2337,
> +0x235d,
> +0x2383,
> +0x23a9,
> +0x23cf,
> +0x23f5,
> +0x241b,
> +0x2441,
> +0x2467,
> +0x248d,
> +0x24b3,
> +0x24d9
>  };
>  static unsigned short aml_ej0_name[] = {
> -0x44,
> -0x68,
> -0x8e,
> -0xb4,
> -0xda,
> -0x100,
> -0x126,
> -0x14c,
> -0x172,
> -0x198,
> -0x1be,
> -0x1e4,
> -0x20a,
> -0x230,
> -0x256,
> -0x27c,
> -0x2a2,
> -0x2c8,
> -0x2ee,
> -0x314,
> -0x33a,
> -0x360,
> -0x386,
> -0x3ac,
> -0x3d2,
> -0x3f8,
> -0x41e,
> -0x444,
> -0x46a,
> -0x490,
> -0x4b6
> +0x45,
> +0x69,
> +0x8d,
> +0xb1,
> +0xd5,
> +0xf9,
> +0x11d,
> +0x141,
> +0x165,
> +0x18b,
> +0x1b1,
> +0x1d7,
> +0x1fd,
> +0x223,
> +0x249,
> +0x26f,
> +0x295,
> +0x2bb,
> +0x2e1,
> +0x307,
> +0x32d,
> +0x353,
> +0x379,
> +0x39f,
> +0x3c5,
> +0x3eb,
> +0x411,
> +0x437,
> +0x45d,
> +0x483,
> +0x4a9,
> +0x4cf,
> +0x4f5,
> +0x51b,
> +0x541,
> +0x567,
> +0x58d,
> +0x5b3,
> +0x5d9,
> +0x5ff,
> +0x625,
> +0x64b,
> +0x671,
> +0x697,
> +0x6bd,
> +0x6e3,
> +0x709,
> +0x72f,
> +0x755,
> +0x77b,
> +0x7a1,
> +0x7c7,
> +0x7ed,
> +0x813,
> +0x839,
> +0x85f,
> +0x885,
> +0x8ab,
> +0x8d1,
> +0x8f7,
> +0x91d,
> +0x943,
> +0x969,
> +0x98f,
> +0x9b5,
> +0x9db,
> +0xa01,
> +0xa27,
> +0xa4d,
> +0xa73,
> +0xa99,
> +0xabf,
> +0xae5,
> +0xb0b,
> +0xb31,
> +0xb57,
> +0xb7d,
> +0xba3,
> +0xbc9,
> +0xbef,
> +0xc15,
> +0xc3b,
> +0xc61,
> +0xc87,
> +0xcad,
> +0xcd3,
> +0xcf9,
> +0xd1f,
> +0xd45,
> +0xd6b,
> +0xd91,
> +0xdb7,
> +0xddd,
> +0xe03,
> +0xe29,
> +0xe4f,
> +0xe75,
> +0xe9b,
> +0xec1,
> +0xee7,
> +0xf0d,
> +0xf33,
> +0xf59,
> +0xf7f,
> +0xfa5,
> +0xfcb,
> +0xff1,
> +0x1017,
> +0x103d,
> +0x1063,
> +0x1089,
> +0x10af,
> +0x10d5,
> +0x10fb,
> +0x1121,
> +0x1147,
> +0x116d,
> +0x1193,
> +0x11b9,
> +0x11df,
> +0x1205,
> +0x122b,
> +0x1251,
> +0x1277,
> +0x129d,
> +0x12c3,
> +0x12e9,
> +0x130f,
> +0x1335,
> +0x135b,
> +0x1381,
> +0x13a7,
> +0x13cd,
> +0x13f3,
> +0x1419,
> +0x143f,
> +0x1465,
> +0x148b,
> +0x14b1,
> +0x14d7,
> +0x14fd,
> +0x1523,
> +0x1549,
> +0x156f,
> +0x1595,
> +0x15bb,
> +0x15e1,
> +0x1607,
> +0x162d,
> +0x1653,
> +0x1679,
> +0x169f,
> +0x16c5,
> +0x16eb,
> +0x1711,
> +0x1737,
> +0x175d,
> +0x1783,
> +0x17a9,
> +0x17cf,
> +0x17f5,
> +0x181b,
> +0x1841,
> +0x1867,
> +0x188d,
> +0x18b3,
> +0x18d9,
> +0x18ff,
> +0x1925,
> +0x194b,
> +0x1971,
> +0x1997,
> +0x19bd,
> +0x19e3,
> +0x1a09,
> +0x1a2f,
> +0x1a55,
> +0x1a7b,
> +0x1aa1,
> +0x1ac7,
> +0x1aed,
> +0x1b13,
> +0x1b39,
> +0x1b5f,
> +0x1b85,
> +0x1bab,
> +0x1bd1,
> +0x1bf7,
> +0x1c1d,
> +0x1c43,
> +0x1c69,
> +0x1c8f,
> +0x1cb5,
> +0x1cdb,
> +0x1d01,
> +0x1d27,
> +0x1d4d,
> +0x1d73,
> +0x1d99,
> +0x1dbf,
> +0x1de5,
> +0x1e0b,
> +0x1e31,
> +0x1e57,
> +0x1e7d,
> +0x1ea3,
> +0x1ec9,
> +0x1eef,
> +0x1f15,
> +0x1f3b,
> +0x1f61,
> +0x1f87,
> +0x1fad,
> +0x1fd3,
> +0x1ff9,
> +0x201f,
> +0x2045,
> +0x206b,
> +0x2091,
> +0x20b7,
> +0x20dd,
> +0x2103,
> +0x2129,
> +0x214f,
> +0x2175,
> +0x219b,
> +0x21c1,
> +0x21e7,
> +0x220d,
> +0x2233,
> +0x2259,
> +0x227f,
> +0x22a5,
> +0x22cb,
> +0x22f1,
> +0x2317,
> +0x233d,
> +0x2363,
> +0x2389,
> +0x23af,
> +0x23d5,
> +0x23fb,
> +0x2421,
> +0x2447,
> +0x246d,
> +0x2493,
> +0x24b9,
> +0x24df
>  };
>  static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x53,
>  0x44,
>  0x54,
> -0x44,
> -0x6,
> +0x6d,
> +0x26,
>  0x0,
>  0x0,
>  0x1,
> -0x94,
> +0x6f,
>  0x42,
>  0x58,
>  0x50,
> @@ -102,8 +536,9 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x10,
>  0x20,
>  0x10,
> -0x4f,
> -0x61,
> +0x88,
> +0x64,
> +0x2,
>  0x5c,
>  0x2e,
>  0x5f,
> @@ -120,7 +555,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x30,
>  0x31,
> -0x5f,
> +0x30,
>  0x8,
>  0x5f,
>  0x41,
> @@ -152,23 +587,59 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x1,
>  0x5b,
>  0x82,
> -0x24,
> +0x22,
>  0x53,
>  0x30,
> -0x32,
> -0x5f,
> +0x31,
> +0x31,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x1,
>  0x0,
> +0x1,
>  0x0,
> +0x14,
> +0xc,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0x1,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0x1,
> +0x5b,
> +0x82,
> +0x22,
> +0x53,
> +0x30,
> +0x31,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
>  0x2,
>  0x0,
> +0x1,
> +0x0,
>  0x14,
> -0xd,
> +0xc,
>  0x5f,
>  0x45,
>  0x4a,
> @@ -179,34 +650,32 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x43,
>  0x45,
>  0x4a,
> -0xa,
> -0x2,
> +0x1,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
> -0xa,
> -0x2,
> +0x1,
>  0x5b,
>  0x82,
> -0x24,
> +0x22,
>  0x53,
>  0x30,
> +0x31,
>  0x33,
> -0x5f,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> -0x0,
> -0x0,
>  0x3,
>  0x0,
> +0x1,
> +0x0,
>  0x14,
> -0xd,
> +0xc,
>  0x5f,
>  0x45,
>  0x4a,
> @@ -217,34 +686,32 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x43,
>  0x45,
>  0x4a,
> -0xa,
> -0x3,
> +0x1,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
> -0xa,
> -0x3,
> +0x1,
>  0x5b,
>  0x82,
> -0x24,
> +0x22,
>  0x53,
>  0x30,
> +0x31,
>  0x34,
> -0x5f,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> -0x0,
> -0x0,
>  0x4,
>  0x0,
> +0x1,
> +0x0,
>  0x14,
> -0xd,
> +0xc,
>  0x5f,
>  0x45,
>  0x4a,
> @@ -255,34 +722,32 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x43,
>  0x45,
>  0x4a,
> -0xa,
> -0x4,
> +0x1,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
> -0xa,
> -0x4,
> +0x1,
>  0x5b,
>  0x82,
> -0x24,
> +0x22,
>  0x53,
>  0x30,
> +0x31,
>  0x35,
> -0x5f,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> -0x0,
> -0x0,
>  0x5,
>  0x0,
> +0x1,
> +0x0,
>  0x14,
> -0xd,
> +0xc,
>  0x5f,
>  0x45,
>  0x4a,
> @@ -293,34 +758,32 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x43,
>  0x45,
>  0x4a,
> -0xa,
> -0x5,
> +0x1,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
> -0xa,
> -0x5,
> +0x1,
>  0x5b,
>  0x82,
> -0x24,
> +0x22,
>  0x53,
>  0x30,
> +0x31,
>  0x36,
> -0x5f,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> -0x0,
> -0x0,
>  0x6,
>  0x0,
> +0x1,
> +0x0,
>  0x14,
> -0xd,
> +0xc,
>  0x5f,
>  0x45,
>  0x4a,
> @@ -331,22 +794,56 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x43,
>  0x45,
>  0x4a,
> -0xa,
> -0x6,
> +0x1,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
> -0xa,
> -0x6,
> +0x1,
>  0x5b,
>  0x82,
> -0x24,
> +0x22,
>  0x53,
>  0x30,
> +0x31,
>  0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x1,
> +0x0,
> +0x14,
> +0xc,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0x1,
> +0x8,
>  0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0x1,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x32,
> +0x30,
>  0x8,
>  0x5f,
>  0x41,
> @@ -355,7 +852,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0xc,
>  0x0,
>  0x0,
> -0x7,
> +0x2,
>  0x0,
>  0x14,
>  0xd,
> @@ -370,30 +867,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0x7,
> +0x2,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0x7,
> +0x2,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x30,
> -0x38,
> -0x5f,
> +0x32,
> +0x31,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x1,
>  0x0,
> -0x0,
> -0x8,
> +0x2,
>  0x0,
>  0x14,
>  0xd,
> @@ -408,30 +905,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0x8,
> +0x2,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0x8,
> +0x2,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x30,
> -0x39,
> -0x5f,
> +0x32,
> +0x32,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x2,
>  0x0,
> -0x0,
> -0x9,
> +0x2,
>  0x0,
>  0x14,
>  0xd,
> @@ -446,30 +943,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0x9,
> +0x2,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0x9,
> +0x2,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x30,
> -0x41,
> -0x5f,
> +0x32,
> +0x33,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x3,
>  0x0,
> -0x0,
> -0xa,
> +0x2,
>  0x0,
>  0x14,
>  0xd,
> @@ -484,30 +981,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0xa,
> +0x2,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0xa,
> +0x2,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x30,
> -0x42,
> -0x5f,
> +0x32,
> +0x34,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x4,
>  0x0,
> -0x0,
> -0xb,
> +0x2,
>  0x0,
>  0x14,
>  0xd,
> @@ -522,30 +1019,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0xb,
> +0x2,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0xb,
> +0x2,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x30,
> -0x43,
> -0x5f,
> +0x32,
> +0x35,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x5,
>  0x0,
> -0x0,
> -0xc,
> +0x2,
>  0x0,
>  0x14,
>  0xd,
> @@ -560,30 +1057,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0xc,
> +0x2,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0xc,
> +0x2,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x30,
> -0x44,
> -0x5f,
> +0x32,
> +0x36,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x6,
>  0x0,
> -0x0,
> -0xd,
> +0x2,
>  0x0,
>  0x14,
>  0xd,
> @@ -598,30 +1095,8200 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0xd,
> +0x2,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x2,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x32,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x2,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x2,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x2,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x33,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x3,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x3,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x3,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x33,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x3,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x3,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x3,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x33,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x3,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x3,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x3,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x33,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x3,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x3,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x3,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x33,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x3,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x3,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x3,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x33,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x3,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x3,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x3,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x33,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x3,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x3,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x3,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x33,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x3,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x3,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x3,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x34,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x4,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x4,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x4,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x34,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x4,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x4,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x4,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x34,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x4,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x4,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x4,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x34,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x4,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x4,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x4,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x34,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x4,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x4,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x4,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x34,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x4,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x4,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x4,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x34,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x4,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x4,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x4,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x34,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x4,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x4,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x4,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x35,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x5,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x5,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x5,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x35,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x5,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x5,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x5,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x35,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x5,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x5,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x5,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x35,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x5,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x5,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x5,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x35,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x5,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x5,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x5,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x35,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x5,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x5,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x5,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x35,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x5,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x5,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x5,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x35,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x5,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x5,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x5,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x36,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x6,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x6,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x6,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x36,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x6,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x6,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x6,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x36,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x6,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x6,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x6,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x36,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x6,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x6,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x6,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x36,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x6,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x6,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x6,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x36,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x6,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x6,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x6,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x36,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x6,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x6,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x6,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x36,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x6,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x6,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x6,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x37,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x7,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x7,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x7,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x37,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x7,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x7,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x7,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x37,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x7,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x7,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x7,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x37,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x7,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x7,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x7,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x37,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x7,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x7,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x7,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x37,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x7,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x7,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x7,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x37,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x7,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x7,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x7,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x37,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x7,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x7,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x7,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x38,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x8,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x8,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x8,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x38,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x8,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x8,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x8,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x38,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x8,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x8,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x8,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x38,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x8,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x8,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x8,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x38,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x8,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x8,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x8,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x38,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x8,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x8,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x8,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x38,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x8,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x8,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x8,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x38,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x8,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x8,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x8,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x39,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x9,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x9,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x9,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x39,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x9,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x9,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x9,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x39,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x9,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x9,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x9,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x39,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x9,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x9,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x9,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x39,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x9,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x9,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x9,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x39,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x9,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x9,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x9,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x39,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x9,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x9,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x9,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x39,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x9,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x9,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x9,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x41,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0xa,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xa,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xa,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x41,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0xa,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xa,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xa,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x41,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0xa,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xa,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xa,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x41,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0xa,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xa,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xa,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x41,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0xa,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xa,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xa,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x41,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0xa,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xa,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xa,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x41,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0xa,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xa,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xa,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x41,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0xa,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xa,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xa,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x42,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0xb,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xb,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xb,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x42,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0xb,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xb,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xb,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x42,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0xb,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xb,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xb,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x42,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0xb,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xb,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xb,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x42,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0xb,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xb,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xb,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x42,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0xb,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xb,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xb,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x42,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0xb,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xb,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xb,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x42,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0xb,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xb,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xb,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x43,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0xc,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xc,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xc,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x43,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0xc,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xc,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xc,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x43,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0xc,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xc,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xc,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x43,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0xc,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xc,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xc,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x43,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0xc,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xc,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xc,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x43,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0xc,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xc,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xc,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x43,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0xc,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xc,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xc,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x43,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0xc,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xc,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xc,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x44,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0xd,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xd,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xd,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x44,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0xd,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xd,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xd,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x44,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0xd,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xd,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xd,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x44,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0xd,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xd,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xd,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x44,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0xd,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xd,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xd,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x44,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0xd,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xd,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xd,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x44,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0xd,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xd,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xd,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x44,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0xd,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xd,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xd,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x45,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0xe,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xe,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xe,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x45,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0xe,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xe,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xe,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x45,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0xe,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xe,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xe,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x45,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0xe,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xe,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xe,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x45,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0xe,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xe,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xe,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x45,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0xe,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xe,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xe,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x45,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0xe,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xe,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xe,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x45,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0xe,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xe,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xe,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x46,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0xf,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xf,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xf,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x46,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0xf,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xf,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xf,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x46,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0xf,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xf,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xf,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x46,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0xf,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xf,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xf,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x46,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0xf,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xf,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xf,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x46,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0xf,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xf,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xf,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x46,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0xf,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xf,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xf,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x30,
> +0x46,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0xf,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0xf,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0xf,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x30,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x10,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x10,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x10,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x30,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x10,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x10,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x10,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x30,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x10,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x10,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x10,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x30,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x10,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x10,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x10,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x30,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x10,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x10,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x10,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x30,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x10,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x10,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x10,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x30,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x10,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x10,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x10,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x30,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x10,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x10,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x10,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x31,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x11,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x11,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x11,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x31,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x11,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x11,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x11,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x31,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x11,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x11,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x11,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x31,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x11,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x11,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x11,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x31,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x11,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x11,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x11,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x31,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x11,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x11,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x11,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x31,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x11,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x11,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x11,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x31,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x11,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x11,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x11,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x32,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x12,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x12,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x12,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x32,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x12,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x12,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x12,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x32,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x12,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x12,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x12,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x32,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x12,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x12,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x12,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x32,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x12,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x12,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x12,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x32,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x12,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x12,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x12,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x32,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x12,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x12,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x12,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x32,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x12,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x12,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x12,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x33,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x13,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x13,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x13,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x33,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x13,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x13,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x13,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x33,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x13,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x13,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x13,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x33,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x13,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x13,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x13,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x33,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x13,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x13,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x13,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x33,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x13,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x13,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x13,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x33,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x13,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x13,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x13,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x33,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x13,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x13,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x13,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x34,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x14,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x14,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x14,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x34,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x14,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x14,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x14,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x34,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x14,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x14,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x14,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x34,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x14,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x14,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x14,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x34,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x14,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x14,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x14,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x34,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x14,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x14,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x14,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x34,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x14,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x14,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x14,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x34,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x14,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x14,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x14,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x35,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x15,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x15,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x15,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x35,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x15,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x15,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x15,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x35,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x15,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x15,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x15,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x35,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x15,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x15,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x15,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x35,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x15,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x15,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x15,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x35,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x15,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x15,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x15,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x35,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x15,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x15,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x15,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x35,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x15,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x15,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x15,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x36,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x16,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x16,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x16,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x36,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x16,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x16,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x16,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x36,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x16,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x16,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x16,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x36,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x16,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x16,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x16,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x36,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x16,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x16,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x16,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x36,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x16,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x16,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x16,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x36,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x16,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x16,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x16,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x36,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x16,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x16,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x16,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x37,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x17,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x17,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x17,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x37,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x17,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x17,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x17,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x37,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x17,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x17,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x17,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x37,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x17,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x17,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x17,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x37,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x17,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x17,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x17,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x37,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x17,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x17,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x17,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x37,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x17,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x17,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x17,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x37,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x17,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x17,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x17,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x38,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x18,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x18,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x18,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x38,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x18,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x18,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x18,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x38,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x18,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x18,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x18,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x38,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x18,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x18,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x18,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x38,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x18,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x18,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x18,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x38,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x18,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x18,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x18,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x38,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x18,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x18,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x18,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x38,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x18,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x18,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x18,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x39,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x19,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x19,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x19,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x39,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x19,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x19,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x19,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x39,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x19,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x19,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x19,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x39,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x19,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x19,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x19,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x39,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x19,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x19,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x19,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x39,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x19,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x19,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x19,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x39,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x19,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x19,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x19,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x39,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x19,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x19,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x19,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x41,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x1a,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1a,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1a,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x41,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x1a,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1a,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1a,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x41,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x1a,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1a,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1a,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x41,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x1a,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1a,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1a,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x41,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x1a,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1a,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1a,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x41,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x1a,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1a,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1a,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x41,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x1a,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1a,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1a,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x41,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x1a,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1a,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1a,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x42,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x1b,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1b,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1b,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x42,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x1b,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1b,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1b,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x42,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x1b,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1b,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1b,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x42,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x1b,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1b,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1b,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x42,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x1b,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1b,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1b,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x42,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x1b,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1b,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1b,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x42,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x1b,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1b,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1b,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x42,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x1b,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1b,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1b,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x43,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x1c,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1c,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1c,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x43,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x1c,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1c,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1c,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x43,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x1c,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1c,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1c,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x43,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x1c,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1c,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1c,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x43,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x1c,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1c,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1c,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x43,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x1c,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1c,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1c,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x43,
> +0x36,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x6,
> +0x0,
> +0x1c,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1c,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1c,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x43,
> +0x37,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x7,
> +0x0,
> +0x1c,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1c,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1c,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x44,
> +0x30,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x0,
> +0x0,
> +0x1d,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1d,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1d,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x44,
> +0x31,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x1,
> +0x0,
> +0x1d,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1d,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1d,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x44,
> +0x32,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x2,
> +0x0,
> +0x1d,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1d,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1d,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x44,
> +0x33,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x3,
> +0x0,
> +0x1d,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1d,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1d,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x44,
> +0x34,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x4,
> +0x0,
> +0x1d,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1d,
> +0x8,
> +0x5f,
> +0x53,
> +0x55,
> +0x4e,
> +0xa,
> +0x1d,
> +0x5b,
> +0x82,
> +0x24,
> +0x53,
> +0x31,
> +0x44,
> +0x35,
> +0x8,
> +0x5f,
> +0x41,
> +0x44,
> +0x52,
> +0xc,
> +0x5,
> +0x0,
> +0x1d,
> +0x0,
> +0x14,
> +0xd,
> +0x5f,
> +0x45,
> +0x4a,
> +0x30,
> +0x1,
> +0xa4,
> +0x50,
> +0x43,
> +0x45,
> +0x4a,
> +0xa,
> +0x1d,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0xd,
> +0x1d,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
> -0x30,
> -0x45,
> -0x5f,
> +0x31,
> +0x44,
> +0x36,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x6,
>  0x0,
> -0x0,
> -0xe,
> +0x1d,
>  0x0,
>  0x14,
>  0xd,
> @@ -636,30 +9303,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0xe,
> +0x1d,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0xe,
> +0x1d,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
> -0x30,
> -0x46,
> -0x5f,
> +0x31,
> +0x44,
> +0x37,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x7,
>  0x0,
> -0x0,
> -0xf,
> +0x1d,
>  0x0,
>  0x14,
>  0xd,
> @@ -674,21 +9341,21 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0xf,
> +0x1d,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0xf,
> +0x1d,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x31,
> +0x45,
>  0x30,
> -0x5f,
>  0x8,
>  0x5f,
>  0x41,
> @@ -697,7 +9364,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0xc,
>  0x0,
>  0x0,
> -0x10,
> +0x1e,
>  0x0,
>  0x14,
>  0xd,
> @@ -712,30 +9379,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0x10,
> +0x1e,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0x10,
> +0x1e,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x31,
> +0x45,
>  0x31,
> -0x5f,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x1,
>  0x0,
> -0x0,
> -0x11,
> +0x1e,
>  0x0,
>  0x14,
>  0xd,
> @@ -750,30 +9417,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0x11,
> +0x1e,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0x11,
> +0x1e,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x31,
> +0x45,
>  0x32,
> -0x5f,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x2,
>  0x0,
> -0x0,
> -0x12,
> +0x1e,
>  0x0,
>  0x14,
>  0xd,
> @@ -788,30 +9455,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0x12,
> +0x1e,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0x12,
> +0x1e,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x31,
> +0x45,
>  0x33,
> -0x5f,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x3,
>  0x0,
> -0x0,
> -0x13,
> +0x1e,
>  0x0,
>  0x14,
>  0xd,
> @@ -826,30 +9493,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0x13,
> +0x1e,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0x13,
> +0x1e,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x31,
> +0x45,
>  0x34,
> -0x5f,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x4,
>  0x0,
> -0x0,
> -0x14,
> +0x1e,
>  0x0,
>  0x14,
>  0xd,
> @@ -864,30 +9531,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0x14,
> +0x1e,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0x14,
> +0x1e,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x31,
> +0x45,
>  0x35,
> -0x5f,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x5,
>  0x0,
> -0x0,
> -0x15,
> +0x1e,
>  0x0,
>  0x14,
>  0xd,
> @@ -902,30 +9569,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0x15,
> +0x1e,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0x15,
> +0x1e,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x31,
> +0x45,
>  0x36,
> -0x5f,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x6,
>  0x0,
> -0x0,
> -0x16,
> +0x1e,
>  0x0,
>  0x14,
>  0xd,
> @@ -940,30 +9607,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0x16,
> +0x1e,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0x16,
> +0x1e,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x31,
> +0x45,
>  0x37,
> -0x5f,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x7,
>  0x0,
> -0x0,
> -0x17,
> +0x1e,
>  0x0,
>  0x14,
>  0xd,
> @@ -978,21 +9645,21 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0x17,
> +0x1e,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0x17,
> +0x1e,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x31,
> -0x38,
> -0x5f,
> +0x46,
> +0x30,
>  0x8,
>  0x5f,
>  0x41,
> @@ -1001,7 +9668,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0xc,
>  0x0,
>  0x0,
> -0x18,
> +0x1f,
>  0x0,
>  0x14,
>  0xd,
> @@ -1016,30 +9683,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0x18,
> +0x1f,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0x18,
> +0x1f,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x31,
> -0x39,
> -0x5f,
> +0x46,
> +0x31,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x1,
>  0x0,
> -0x0,
> -0x19,
> +0x1f,
>  0x0,
>  0x14,
>  0xd,
> @@ -1054,30 +9721,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0x19,
> +0x1f,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0x19,
> +0x1f,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x31,
> -0x41,
> -0x5f,
> +0x46,
> +0x32,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x2,
>  0x0,
> -0x0,
> -0x1a,
> +0x1f,
>  0x0,
>  0x14,
>  0xd,
> @@ -1092,30 +9759,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0x1a,
> +0x1f,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0x1a,
> +0x1f,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x31,
> -0x42,
> -0x5f,
> +0x46,
> +0x33,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x3,
>  0x0,
> -0x0,
> -0x1b,
> +0x1f,
>  0x0,
>  0x14,
>  0xd,
> @@ -1130,30 +9797,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0x1b,
> +0x1f,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0x1b,
> +0x1f,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x31,
> -0x43,
> -0x5f,
> +0x46,
> +0x34,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x4,
>  0x0,
> -0x0,
> -0x1c,
> +0x1f,
>  0x0,
>  0x14,
>  0xd,
> @@ -1168,30 +9835,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0x1c,
> +0x1f,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0x1c,
> +0x1f,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x31,
> -0x44,
> -0x5f,
> +0x46,
> +0x35,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x5,
>  0x0,
> -0x0,
> -0x1d,
> +0x1f,
>  0x0,
>  0x14,
>  0xd,
> @@ -1206,30 +9873,30 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0x1d,
> +0x1f,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0x1d,
> +0x1f,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x31,
> -0x45,
> -0x5f,
> +0x46,
> +0x36,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> +0x6,
>  0x0,
> -0x0,
> -0x1e,
> +0x1f,
>  0x0,
>  0x14,
>  0xd,
> @@ -1244,28 +9911,28 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x45,
>  0x4a,
>  0xa,
> -0x1e,
> +0x1f,
>  0x8,
>  0x5f,
>  0x53,
>  0x55,
>  0x4e,
>  0xa,
> -0x1e,
> +0x1f,
>  0x5b,
>  0x82,
>  0x24,
>  0x53,
>  0x31,
>  0x46,
> -0x5f,
> +0x37,
>  0x8,
>  0x5f,
>  0x41,
>  0x44,
>  0x52,
>  0xc,
> -0x0,
> +0x7,
>  0x0,
>  0x1f,
>  0x0,
> @@ -1307,7 +9974,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x30,
>  0x31,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1319,7 +9986,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x30,
>  0x32,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1331,7 +9998,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x30,
>  0x33,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1343,7 +10010,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x30,
>  0x34,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1355,7 +10022,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x30,
>  0x35,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1367,7 +10034,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x30,
>  0x36,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1379,7 +10046,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x30,
>  0x37,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1391,7 +10058,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x30,
>  0x38,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1403,7 +10070,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x30,
>  0x39,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1415,7 +10082,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x30,
>  0x41,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1427,7 +10094,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x30,
>  0x42,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1439,7 +10106,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x30,
>  0x43,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1451,7 +10118,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x30,
>  0x44,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1463,7 +10130,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x30,
>  0x45,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1475,7 +10142,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x30,
>  0x46,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1487,7 +10154,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x31,
>  0x30,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1499,7 +10166,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x31,
>  0x31,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1511,7 +10178,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x31,
>  0x32,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1523,7 +10190,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x31,
>  0x33,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1535,7 +10202,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x31,
>  0x34,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1547,7 +10214,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x31,
>  0x35,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1559,7 +10226,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x31,
>  0x36,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1571,7 +10238,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x31,
>  0x37,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1583,7 +10250,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x31,
>  0x38,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1595,7 +10262,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x31,
>  0x39,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1607,7 +10274,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x31,
>  0x41,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1619,7 +10286,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x31,
>  0x42,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1631,7 +10298,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x31,
>  0x43,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1643,7 +10310,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x31,
>  0x44,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1655,7 +10322,7 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x31,
>  0x45,
> -0x5f,
> +0x30,
>  0x69,
>  0xa0,
>  0xb,
> @@ -1667,6 +10334,6 @@ static unsigned char ssdp_pcihp_aml[] = {
>  0x53,
>  0x31,
>  0x46,
> -0x5f,
> +0x30,
>  0x69
>  };

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

* Re: [SeaBIOS PATCH v3] hotplug: Add device per func in ACPI DSDT tables
  2011-12-06 11:36                           ` Michael S. Tsirkin
@ 2011-12-07  0:32                             ` Amos Kong
  2011-12-14  1:06                               ` Kevin O'Connor
  0 siblings, 1 reply; 56+ messages in thread
From: Amos Kong @ 2011-12-07  0:32 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: seabios, kvm, alex williamson, mtosatti

----- Original Message -----
> On Tue, Dec 06, 2011 at 01:39:35PM +0800, Amos Kong wrote:
> > Only func 0 is registered to guest driver (we can
> > only found func 0 in slot->funcs list of driver),
> > the other functions could not be cleaned when
> > hot-removing the whole slot. This patch adds
> > device per function in ACPI DSDT tables.
> > Notify only when func0 is added and removed.
> > 
> > Have tested with linux/winxp/win7, hot-adding/hot-remving,
> > single/multiple function device, they are all fine(all
> > added devices can be removed).
> > 
> > Changes from v2:
> >  update patch based on latest seabios tree
> > 
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > Signed-off-by: Amos Kong <akong@redhat.com>
> 
> This includes some bits I wrote but this is not an ack
> of the patch yet :)
> 
> I find it surprising that this works: a function
> has _EJ0 so would not guest expect that ejecting
> a single one will only remove it, and not all functions?

Removing single func is not supported by specific, and current code
(qemu/kernel pci driver) process hot-remove with the whole slot.
We could not hot-remove single func with/without this patch.

Register _EJ0() for each func, then all the funcs will be record
into the function list of the slot.

Thanks, Amos

> > ---
> > 
> >  src/ssdt-pcihp.dsl |   17
> >  src/ssdt-pcihp.hex | 9225
> >  ++++++++++++++++++++++++++++++++++++++++++++++++++--
> >  2 files changed, 8959 insertions(+), 283 deletions(-)
> > 
> > diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> > index 4b435b8..2a3c326 100644
> > --- a/src/ssdt-pcihp.dsl
> > +++ b/src/ssdt-pcihp.dsl
> > @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT",
> > 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
> >          // at runtime, if the slot is detected to not support
> >          hotplug.
> >          // Extract the offset of the address dword and the
> >          // _EJ0 name to allow this patching.
> > -#define hotplug_slot(slot)                              \
> > -        Device (S##slot) {                              \
> > +#define hotplug_func(slot, fn)                          \
> > +        Device (S##slot##fn) {                          \
> >             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> > -           Name (_ADR, 0x##slot##0000)                  \
> > +           Name (_ADR, 0x##slot##000##fn)               \
> >             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
> >             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
> >             Name (_SUN, 0x##slot)                        \
> >          }
> > +#define hotplug_slot(slot)     \
> > +        hotplug_func(slot, 0)  \
> > +        hotplug_func(slot, 1)  \
> > +        hotplug_func(slot, 2)  \
> > +        hotplug_func(slot, 3)  \
> > +        hotplug_func(slot, 4)  \
> > +        hotplug_func(slot, 5)  \
> > +        hotplug_func(slot, 6)  \
> > +        hotplug_func(slot, 7)
> >  
> >          hotplug_slot(01)
> >          hotplug_slot(02)
> > @@ -59,7 +68,7 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01,
> > "BXPC", "BXSSDTPCIHP", 0x1)
> >          hotplug_slot(1f)
> >  
> >  #define gen_pci_hotplug(slot)   \
> > -            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot, Arg1) }
> > +            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot##0, Arg1)
> > }
> >  
> >          Method(PCNT, 2) {
> >              gen_pci_hotplug(01)
> > diff --git a/src/ssdt-pcihp.hex b/src/ssdt-pcihp.hex
> > index b15ad5a..4c9b5df 100644
> > --- a/src/ssdt-pcihp.hex
> > +++ b/src/ssdt-pcihp.hex
> > @@ -1,80 +1,514 @@
> >  static unsigned short aml_adr_dword[] = {
> > -0x3e,
> > -0x62,
> > -0x88,
> > -0xae,
> > -0xd4,
> > -0xfa,
> > -0x120,

...

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

* Re: [SeaBIOS PATCH v3] hotplug: Add device per func in ACPI DSDT tables
  2011-12-07  0:32                             ` Amos Kong
@ 2011-12-14  1:06                               ` Kevin O'Connor
  2011-12-19  8:45                                 ` Amos Kong
  2012-05-09  7:24                                   ` [Qemu-devel] " Amos Kong
  0 siblings, 2 replies; 56+ messages in thread
From: Kevin O'Connor @ 2011-12-14  1:06 UTC (permalink / raw)
  To: Amos Kong; +Cc: Michael S. Tsirkin, seabios, kvm, alex williamson, mtosatti

On Tue, Dec 06, 2011 at 07:32:55PM -0500, Amos Kong wrote:
> ----- Original Message -----
> > On Tue, Dec 06, 2011 at 01:39:35PM +0800, Amos Kong wrote:
> > > Only func 0 is registered to guest driver (we can
> > > only found func 0 in slot->funcs list of driver),
> > > the other functions could not be cleaned when
> > > hot-removing the whole slot. This patch adds
> > > device per function in ACPI DSDT tables.
> > > Notify only when func0 is added and removed.
> > > 
> > > Have tested with linux/winxp/win7, hot-adding/hot-remving,
> > > single/multiple function device, they are all fine(all
> > > added devices can be removed).
> > > 
> > This includes some bits I wrote but this is not an ack
> > of the patch yet :)
> > 
> > I find it surprising that this works: a function
> > has _EJ0 so would not guest expect that ejecting
> > a single one will only remove it, and not all functions?
> 
> Removing single func is not supported by specific, and current code
> (qemu/kernel pci driver) process hot-remove with the whole slot.
> We could not hot-remove single func with/without this patch.
> 
> Register _EJ0() for each func, then all the funcs will be record
> into the function list of the slot.

Just as an update - it's not clear to me what this patch does, and it
seems like Michael had some concerns.

Also, it doesn't seem right to hardcode the generation of that many
devices (248) in the AML code.

So, unless there are further comments I'm going to hold off on this
patch.

-Kevin

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

* Re: [SeaBIOS PATCH v3] hotplug: Add device per func in ACPI DSDT tables
  2011-12-14  1:06                               ` Kevin O'Connor
@ 2011-12-19  8:45                                 ` Amos Kong
  2012-05-09  7:24                                   ` [Qemu-devel] " Amos Kong
  1 sibling, 0 replies; 56+ messages in thread
From: Amos Kong @ 2011-12-19  8:45 UTC (permalink / raw)
  To: Kevin O'Connor
  Cc: Michael S. Tsirkin, seabios, kvm, alex williamson, mtosatti,
	bhelgaas, kaneshige.kenji

On 14/12/11 09:06, Kevin O'Connor wrote:
> On Tue, Dec 06, 2011 at 07:32:55PM -0500, Amos Kong wrote:
>> ----- Original Message -----
>>> On Tue, Dec 06, 2011 at 01:39:35PM +0800, Amos Kong wrote:
>>>> Only func 0 is registered to guest driver (we can
>>>> only found func 0 in slot->funcs list of driver),
>>>> the other functions could not be cleaned when
>>>> hot-removing the whole slot. This patch adds
>>>> device per function in ACPI DSDT tables.
>>>> Notify only when func0 is added and removed.
>>>>
>>>> Have tested with linux/winxp/win7, hot-adding/hot-remving,
>>>> single/multiple function device, they are all fine(all
>>>> added devices can be removed).
>>>>
>>> This includes some bits I wrote but this is not an ack
>>> of the patch yet :)
>>>
>>> I find it surprising that this works: a function
>>> has _EJ0 so would not guest expect that ejecting
>>> a single one will only remove it, and not all functions?
>>
>> Removing single func is not supported by specific, and current code
>> (qemu/kernel pci driver) process hot-remove with the whole slot.
>> We could not hot-remove single func with/without this patch.
>>
>> Register _EJ0() for each func, then all the funcs will be record
>> into the function list of the slot.
>
> Just as an update - it's not clear to me what this patch does, and it
> seems like Michael had some concerns.
>
> Also, it doesn't seem right to hardcode the generation of that many
> devices (248) in the AML code.

Hi Kevin,

When we hot-unplug a pci device, all functions in same slot should be 
unpluged
in one time. Hot-plug/unpluging nics for winXp VM is fine(all funcs can 
be removed).
But hot-unpluging nics of linux VM exists problem(only function 0 is 
removed),
Because not all the functions are registered in slot->funcs list in 
guest kernel.

What we can do to resolve this problem:

1. remove all the functions when hot-unplug one function in the slot
    http://marc.info/?l=kvm&m=131597620101566&w=2
    [PATCH] pci: clean all funcs when hot-removing multifunc device

2. register all the functions to slot->funcs list, then we don't need to
    change guest pci driver.
    http://marc.info/?l=kvm&m=132314964618843&w=2
    [SeaBIOS PATCH v3] hotplug: Add device per func in ACPI DSDT tables

mst, any more comment?

Thanks,
Amos

> So, unless there are further comments I'm going to hold off on this
> patch.
>
> -Kevin
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
  2011-12-14  1:06                               ` Kevin O'Connor
@ 2012-05-09  7:24                                   ` Amos Kong
  2012-05-09  7:24                                   ` [Qemu-devel] " Amos Kong
  1 sibling, 0 replies; 56+ messages in thread
From: Amos Kong @ 2012-05-09  7:24 UTC (permalink / raw)
  To: mst, linux-pci, seabios, qemu-devel, jbarnes, rjw,
	alex.williamson, kevin

Boot up a Linux VM with 8 pci block devices which
are the 8 functions in one pci slot.
| # qemu-kvm ...
| -drive file=images/u0,if=none,id=drv0,format=qcow2,cache=none \
| -device virtio-blk-pci,drive=drv0,id=v0,multifunction=on,addr=0x03.0 \
| ....
| -drive file=images/u7,if=none,id=drv7,format=qcow2,cache=none \
| -device virtio-blk-pci,drive=drv7,id=v7,multifunction=on,addr=0x03.7 \

Check devices in guest.
| vm)# ls /dev/vd*
|    vda vdb vdc vde vdf vdg vdh
| vm)# lspci |grep block
| 00:03.0 SCSI storage controller: Red Hat, Inc Virtio block device
|    ...
| 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device
|

Func1~7 still exist in guest after hot-removing the whole slot
through qemu monitor.
| vm)# lspci |grep block    (00:03.0 disappeared)
| 00:03.1 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
|    ...
| 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
| vm)# ls /dev/vd*          (vda disappeared)
|    vdb vdc vde vdf vdg vdh
| vm)# mkfs /dev/vdb
|    INFO: task mkfs.ext2:1784 blocked for more than 120 seconds. (task hung)


Currently only func0 is defined in ACPI DSDT table
of seabios, and only hot-adding func0 would cause
a ACPI event for notification. Other funcs except
func0 wouldn't be registered in linux pci driver.
(we can only found func0 in slot->funcs list of
pci driver).

When VM pci driver receives an ACPI event for
hot-removing, it will only clean functions in
slot->funcs list, the other funcs could not be
cleaned.

This patch adds device per function in ACPI DSDT tables,
then all funcs will be registered in slot->funcs list.
It's coincident with microsoft's example:
http://www.microsoft.com/china/whdc/system/pnppwr/hotadd/hotplugpci.mspx#EUH

Have tested with linux/winxp/win7, hot-adding/hot-remving,
single/multiple function devices, they are all fine(all
added devices can be removed).

This patch includes some bits mst wrote, thanks!
---
old discussion: http://marc.info/?l=kvm&m=132428400917405&w=2

Signed-off-by: Amos Kong <akong@redhat.com>
CC: Michael S. Tsirkin <mst@redhat.com>
---
 src/ssdt-pcihp.dsl |   17 
 src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 8781 insertions(+), 105 deletions(-)

diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
index 4b435b8..2a3c326 100644
--- a/src/ssdt-pcihp.dsl
+++ b/src/ssdt-pcihp.dsl
@@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
         // at runtime, if the slot is detected to not support hotplug.
         // Extract the offset of the address dword and the
         // _EJ0 name to allow this patching.
-#define hotplug_slot(slot)                              \
-        Device (S##slot) {                              \
+#define hotplug_func(slot, fn)                          \
+        Device (S##slot##fn) {                          \
            ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
-           Name (_ADR, 0x##slot##0000)                  \
+           Name (_ADR, 0x##slot##000##fn)               \
            ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
            Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
            Name (_SUN, 0x##slot)                        \
         }
+#define hotplug_slot(slot)     \
+        hotplug_func(slot, 0)  \
+        hotplug_func(slot, 1)  \
+        hotplug_func(slot, 2)  \
+        hotplug_func(slot, 3)  \
+        hotplug_func(slot, 4)  \
+        hotplug_func(slot, 5)  \
+        hotplug_func(slot, 6)  \
+        hotplug_func(slot, 7)
 
         hotplug_slot(01)
         hotplug_slot(02)
@@ -59,7 +68,7 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
         hotplug_slot(1f)
 
 #define gen_pci_hotplug(slot)   \
-            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot, Arg1) }
+            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot##0, Arg1) }
 
         Method(PCNT, 2) {
             gen_pci_hotplug(01)
diff --git a/src/ssdt-pcihp.hex b/src/ssdt-pcihp.hex
index b15ad5a..b0c1e84 100644
--- a/src/ssdt-pcihp.hex
+++ b/src/ssdt-pcihp.hex
@@ -1,80 +1,514 @@
 static unsigned short aml_adr_dword[] = {
-0x3e,
-0x62,
-0x88,
-0xae,
-0xd4,
-0xfa,
-0x120,
-0x146,
-0x16c,
-0x192,
-0x1b8,
-0x1de,
-0x204,
-0x22a,
-0x250,
-0x276,
-0x29c,
-0x2c2,
-0x2e8,
-0x30e,
-0x334,
-0x35a,
-0x380,
-0x3a6,
-0x3cc,
-0x3f2,
-0x418,
-0x43e,
-0x464,
-0x48a,
-0x4b0
+0x3f,
+0x63,
+0x87,
+0xab,
+0xcf,
+0xf3,
+0x117,
+0x13b,
+0x15f,
+0x185,
+0x1ab,
+0x1d1,
+0x1f7,
+0x21d,
+0x243,
+0x269,
+0x28f,
+0x2b5,
+0x2db,
+0x301,
+0x327,
+0x34d,
+0x373,
+0x399,
+0x3bf,
+0x3e5,
+0x40b,
+0x431,
+0x457,
+0x47d,
+0x4a3,
+0x4c9,
+0x4ef,
+0x515,
+0x53b,
+0x561,
+0x587,
+0x5ad,
+0x5d3,
+0x5f9,
+0x61f,
+0x645,
+0x66b,
+0x691,
+0x6b7,
+0x6dd,
+0x703,
+0x729,
+0x74f,
+0x775,
+0x79b,
+0x7c1,
+0x7e7,
+0x80d,
+0x833,
+0x859,
+0x87f,
+0x8a5,
+0x8cb,
+0x8f1,
+0x917,
+0x93d,
+0x963,
+0x989,
+0x9af,
+0x9d5,
+0x9fb,
+0xa21,
+0xa47,
+0xa6d,
+0xa93,
+0xab9,
+0xadf,
+0xb05,
+0xb2b,
+0xb51,
+0xb77,
+0xb9d,
+0xbc3,
+0xbe9,
+0xc0f,
+0xc35,
+0xc5b,
+0xc81,
+0xca7,
+0xccd,
+0xcf3,
+0xd19,
+0xd3f,
+0xd65,
+0xd8b,
+0xdb1,
+0xdd7,
+0xdfd,
+0xe23,
+0xe49,
+0xe6f,
+0xe95,
+0xebb,
+0xee1,
+0xf07,
+0xf2d,
+0xf53,
+0xf79,
+0xf9f,
+0xfc5,
+0xfeb,
+0x1011,
+0x1037,
+0x105d,
+0x1083,
+0x10a9,
+0x10cf,
+0x10f5,
+0x111b,
+0x1141,
+0x1167,
+0x118d,
+0x11b3,
+0x11d9,
+0x11ff,
+0x1225,
+0x124b,
+0x1271,
+0x1297,
+0x12bd,
+0x12e3,
+0x1309,
+0x132f,
+0x1355,
+0x137b,
+0x13a1,
+0x13c7,
+0x13ed,
+0x1413,
+0x1439,
+0x145f,
+0x1485,
+0x14ab,
+0x14d1,
+0x14f7,
+0x151d,
+0x1543,
+0x1569,
+0x158f,
+0x15b5,
+0x15db,
+0x1601,
+0x1627,
+0x164d,
+0x1673,
+0x1699,
+0x16bf,
+0x16e5,
+0x170b,
+0x1731,
+0x1757,
+0x177d,
+0x17a3,
+0x17c9,
+0x17ef,
+0x1815,
+0x183b,
+0x1861,
+0x1887,
+0x18ad,
+0x18d3,
+0x18f9,
+0x191f,
+0x1945,
+0x196b,
+0x1991,
+0x19b7,
+0x19dd,
+0x1a03,
+0x1a29,
+0x1a4f,
+0x1a75,
+0x1a9b,
+0x1ac1,
+0x1ae7,
+0x1b0d,
+0x1b33,
+0x1b59,
+0x1b7f,
+0x1ba5,
+0x1bcb,
+0x1bf1,
+0x1c17,
+0x1c3d,
+0x1c63,
+0x1c89,
+0x1caf,
+0x1cd5,
+0x1cfb,
+0x1d21,
+0x1d47,
+0x1d6d,
+0x1d93,
+0x1db9,
+0x1ddf,
+0x1e05,
+0x1e2b,
+0x1e51,
+0x1e77,
+0x1e9d,
+0x1ec3,
+0x1ee9,
+0x1f0f,
+0x1f35,
+0x1f5b,
+0x1f81,
+0x1fa7,
+0x1fcd,
+0x1ff3,
+0x2019,
+0x203f,
+0x2065,
+0x208b,
+0x20b1,
+0x20d7,
+0x20fd,
+0x2123,
+0x2149,
+0x216f,
+0x2195,
+0x21bb,
+0x21e1,
+0x2207,
+0x222d,
+0x2253,
+0x2279,
+0x229f,
+0x22c5,
+0x22eb,
+0x2311,
+0x2337,
+0x235d,
+0x2383,
+0x23a9,
+0x23cf,
+0x23f5,
+0x241b,
+0x2441,
+0x2467,
+0x248d,
+0x24b3,
+0x24d9
 };
 static unsigned short aml_ej0_name[] = {
-0x44,
-0x68,
-0x8e,
-0xb4,
-0xda,
-0x100,
-0x126,
-0x14c,
-0x172,
-0x198,
-0x1be,
-0x1e4,
-0x20a,
-0x230,
-0x256,
-0x27c,
-0x2a2,
-0x2c8,
-0x2ee,
-0x314,
-0x33a,
-0x360,
-0x386,
-0x3ac,
-0x3d2,
-0x3f8,
-0x41e,
-0x444,
-0x46a,
-0x490,
-0x4b6
+0x45,
+0x69,
+0x8d,
+0xb1,
+0xd5,
+0xf9,
+0x11d,
+0x141,
+0x165,
+0x18b,
+0x1b1,
+0x1d7,
+0x1fd,
+0x223,
+0x249,
+0x26f,
+0x295,
+0x2bb,
+0x2e1,
+0x307,
+0x32d,
+0x353,
+0x379,
+0x39f,
+0x3c5,
+0x3eb,
+0x411,
+0x437,
+0x45d,
+0x483,
+0x4a9,
+0x4cf,
+0x4f5,
+0x51b,
+0x541,
+0x567,
+0x58d,
+0x5b3,
+0x5d9,
+0x5ff,
+0x625,
+0x64b,
+0x671,
+0x697,
+0x6bd,
+0x6e3,
+0x709,
+0x72f,
+0x755,
+0x77b,
+0x7a1,
+0x7c7,
+0x7ed,
+0x813,
+0x839,
+0x85f,
+0x885,
+0x8ab,
+0x8d1,
+0x8f7,
+0x91d,
+0x943,
+0x969,
+0x98f,
+0x9b5,
+0x9db,
+0xa01,
+0xa27,
+0xa4d,
+0xa73,
+0xa99,
+0xabf,
+0xae5,
+0xb0b,
+0xb31,
+0xb57,
+0xb7d,
+0xba3,
+0xbc9,
+0xbef,
+0xc15,
+0xc3b,
+0xc61,
+0xc87,
+0xcad,
+0xcd3,
+0xcf9,
+0xd1f,
+0xd45,
+0xd6b,
+0xd91,
+0xdb7,
+0xddd,
+0xe03,
+0xe29,
+0xe4f,
+0xe75,
+0xe9b,
+0xec1,
+0xee7,
+0xf0d,
+0xf33,
+0xf59,
+0xf7f,
+0xfa5,
+0xfcb,
+0xff1,
+0x1017,
+0x103d,
+0x1063,
+0x1089,
+0x10af,
+0x10d5,
+0x10fb,
+0x1121,
+0x1147,
+0x116d,
+0x1193,
+0x11b9,
+0x11df,
+0x1205,
+0x122b,
+0x1251,
+0x1277,
+0x129d,
+0x12c3,
+0x12e9,
+0x130f,
+0x1335,
+0x135b,
+0x1381,
+0x13a7,
+0x13cd,
+0x13f3,
+0x1419,
+0x143f,
+0x1465,
+0x148b,
+0x14b1,
+0x14d7,
+0x14fd,
+0x1523,
+0x1549,
+0x156f,
+0x1595,
+0x15bb,
+0x15e1,
+0x1607,
+0x162d,
+0x1653,
+0x1679,
+0x169f,
+0x16c5,
+0x16eb,
+0x1711,
+0x1737,
+0x175d,
+0x1783,
+0x17a9,
+0x17cf,
+0x17f5,
+0x181b,
+0x1841,
+0x1867,
+0x188d,
+0x18b3,
+0x18d9,
+0x18ff,
+0x1925,
+0x194b,
+0x1971,
+0x1997,
+0x19bd,
+0x19e3,
+0x1a09,
+0x1a2f,
+0x1a55,
+0x1a7b,
+0x1aa1,
+0x1ac7,
+0x1aed,
+0x1b13,
+0x1b39,
+0x1b5f,
+0x1b85,
+0x1bab,
+0x1bd1,
+0x1bf7,
+0x1c1d,
+0x1c43,
+0x1c69,
+0x1c8f,
+0x1cb5,
+0x1cdb,
+0x1d01,
+0x1d27,
+0x1d4d,
+0x1d73,
+0x1d99,
+0x1dbf,
+0x1de5,
+0x1e0b,
+0x1e31,
+0x1e57,
+0x1e7d,
+0x1ea3,
+0x1ec9,
+0x1eef,
+0x1f15,
+0x1f3b,
+0x1f61,
+0x1f87,
+0x1fad,
+0x1fd3,
+0x1ff9,
+0x201f,
+0x2045,
+0x206b,
+0x2091,
+0x20b7,
+0x20dd,
+0x2103,
+0x2129,
+0x214f,
+0x2175,
+0x219b,
+0x21c1,
+0x21e7,
+0x220d,
+0x2233,
+0x2259,
+0x227f,
+0x22a5,
+0x22cb,
+0x22f1,
+0x2317,
+0x233d,
+0x2363,
+0x2389,
+0x23af,
+0x23d5,
+0x23fb,
+0x2421,
+0x2447,
+0x246d,
+0x2493,
+0x24b9,
+0x24df
 };
 static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x53,
 0x44,
 0x54,
-0x44,
-0x6,
+0x6d,
+0x26,
 0x0,
 0x0,
 0x1,
-0x94,
+0x7f,
 0x42,
 0x58,
 0x50,
@@ -97,13 +531,14 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x4e,
 0x54,
 0x4c,
-0x28,
-0x5,
-0x10,
+0x23,
+0x1,
+0x9,
 0x20,
 0x10,
-0x4f,
-0x61,
+0x88,
+0x64,
+0x2,
 0x5c,
 0x2e,
 0x5f,
@@ -120,14 +555,266 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x31,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1,
+0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x1,
+0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x1,
+0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1,
+0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1,
+0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x35,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1,
+0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
+0x0,
+0x1,
 0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x1,
 0x0,
@@ -156,14 +843,90 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x32,
+0x30,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x2,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
+0x0,
+0x2,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x2,
 0x0,
@@ -193,15 +956,281 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x30,
+0x32,
 0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x2,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x2,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x2,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x36,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x2,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x37,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x7,
 0x0,
+0x2,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x3,
 0x0,
@@ -231,15 +1260,281 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x30,
+0x33,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
 0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x36,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x37,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x7,
 0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x4,
 0x0,
@@ -269,15 +1564,395 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x30,
+0x34,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
 0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
 0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x37,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x7,
 0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
 0x0,
 0x5,
 0x0,
@@ -307,15 +1982,357 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x30,
+0x35,
 0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
 0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x37,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x7,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
 0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x6,
 0x0,
@@ -346,14 +2363,204 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x37,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x33,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x34,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x4,
+0x0,
+0x7,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
 0x0,
 0x7,
 0x0,
@@ -383,8 +2590,388 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x30,
+0x37,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
 0x38,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x30,
 0x8,
 0x5f,
 0x41,
@@ -393,7 +2980,83 @@ static unsigned char ssdp_pcihp_aml[] = {
 0xc,
 0x0,
 0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
 0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x9,
 0x0,
 0x14,
 0xd,
@@ -408,28 +3071,180 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x33,
 0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x34,
 0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x30,
 0x39,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
 0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x9,
 0x0,
@@ -460,14 +3275,280 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x41,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x34,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x4,
 0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0xa,
 0x0,
@@ -498,14 +3579,90 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x42,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
 0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
+0x0,
+0xb,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0xb,
 0x0,
@@ -535,17 +3692,93 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x30,
+0x42,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
 0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x34,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x4,
 0x0,
+0xb,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
 0xc,
+0x5,
+0x0,
+0xb,
 0x0,
 0x14,
 0xd,
@@ -560,30 +3793,182 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
 0xc,
+0x6,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
 0xc,
+0x7,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x30,
+0x43,
+0x30,
+0x8,
+0x5f,
+0x41,
 0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xc,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0xc,
 0x0,
+0x14,
 0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xc,
 0x0,
 0x14,
 0xd,
@@ -598,28 +3983,788 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xc,
+0x0,
+0x14,
 0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0xc,
+0x0,
+0x14,
 0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x30,
+0x43,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xc,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
 0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
+0x0,
+0xc,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0xc,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0xe,
 0x0,
@@ -650,14 +4795,280 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x46,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x33,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x3,
 0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0xf,
 0x0,
@@ -688,14 +5099,90 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x30,
+0x30,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x10,
 0x0,
@@ -725,15 +5212,471 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x30,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
 0x31,
+0x30,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x35,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x5,
 0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x11,
 0x0,
@@ -764,14 +5707,90 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x32,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x12,
 0x0,
@@ -801,15 +5820,319 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x32,
 0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
 0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x34,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x4,
 0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
 0x0,
 0x13,
 0x0,
@@ -839,8 +6162,160 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x33,
 0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
 0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x30,
 0x8,
 0x5f,
 0x41,
@@ -877,15 +6352,395 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x34,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
 0x35,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x32,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x2,
 0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
 0x0,
 0x15,
 0x0,
@@ -915,15 +6770,433 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x35,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
 0x36,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x35,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
 0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x16,
 0x0,
@@ -954,14 +7227,280 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x37,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x32,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x2,
 0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x17,
 0x0,
@@ -992,14 +7531,280 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x38,
+0x30,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
+0x0,
+0x18,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x18,
 0x0,
@@ -1030,14 +7835,90 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x39,
+0x30,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x19,
 0x0,
@@ -1067,15 +7948,471 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x39,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
 0x41,
+0x35,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
+0x0,
+0x1a,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x1a,
 0x0,
@@ -1106,14 +8443,90 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x42,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x1b,
 0x0,
@@ -1143,15 +8556,471 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x42,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
 0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
 0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x1c,
 0x0,
@@ -1182,14 +9051,90 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x44,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x1d,
 0x0,
@@ -1219,15 +9164,471 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x44,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
 0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
 0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x1e,
 0x0,
@@ -1258,14 +9659,280 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x46,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
 0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x1f,
 0x0,
@@ -1307,7 +9974,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x31,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1319,7 +9986,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x32,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1331,7 +9998,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x33,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1343,7 +10010,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x34,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1355,7 +10022,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x35,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1367,7 +10034,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x36,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1379,7 +10046,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x37,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1391,7 +10058,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x38,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1403,7 +10070,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x39,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1415,7 +10082,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x41,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1427,7 +10094,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x42,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1439,7 +10106,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x43,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1451,7 +10118,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x44,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1463,7 +10130,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x45,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1475,7 +10142,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x46,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1487,7 +10154,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x30,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1499,7 +10166,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x31,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1511,7 +10178,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x32,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1523,7 +10190,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x33,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1535,7 +10202,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x34,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1547,7 +10214,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x35,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1559,7 +10226,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x36,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1571,7 +10238,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x37,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1583,7 +10250,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x38,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1595,7 +10262,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x39,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1607,7 +10274,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x41,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1619,7 +10286,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x42,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1631,7 +10298,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x43,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1643,7 +10310,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x44,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1655,7 +10322,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x45,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1667,6 +10334,6 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x46,
-0x5f,
+0x30,
 0x69
 };


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

* [Qemu-devel] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
@ 2012-05-09  7:24                                   ` Amos Kong
  0 siblings, 0 replies; 56+ messages in thread
From: Amos Kong @ 2012-05-09  7:24 UTC (permalink / raw)
  To: mst, linux-pci, seabios, qemu-devel, jbarnes, rjw,
	alex.williamson, kevin

Boot up a Linux VM with 8 pci block devices which
are the 8 functions in one pci slot.
| # qemu-kvm ...
| -drive file=images/u0,if=none,id=drv0,format=qcow2,cache=none \
| -device virtio-blk-pci,drive=drv0,id=v0,multifunction=on,addr=0x03.0 \
| ....
| -drive file=images/u7,if=none,id=drv7,format=qcow2,cache=none \
| -device virtio-blk-pci,drive=drv7,id=v7,multifunction=on,addr=0x03.7 \

Check devices in guest.
| vm)# ls /dev/vd*
|    vda vdb vdc vde vdf vdg vdh
| vm)# lspci |grep block
| 00:03.0 SCSI storage controller: Red Hat, Inc Virtio block device
|    ...
| 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device
|

Func1~7 still exist in guest after hot-removing the whole slot
through qemu monitor.
| vm)# lspci |grep block    (00:03.0 disappeared)
| 00:03.1 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
|    ...
| 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
| vm)# ls /dev/vd*          (vda disappeared)
|    vdb vdc vde vdf vdg vdh
| vm)# mkfs /dev/vdb
|    INFO: task mkfs.ext2:1784 blocked for more than 120 seconds. (task hung)


Currently only func0 is defined in ACPI DSDT table
of seabios, and only hot-adding func0 would cause
a ACPI event for notification. Other funcs except
func0 wouldn't be registered in linux pci driver.
(we can only found func0 in slot->funcs list of
pci driver).

When VM pci driver receives an ACPI event for
hot-removing, it will only clean functions in
slot->funcs list, the other funcs could not be
cleaned.

This patch adds device per function in ACPI DSDT tables,
then all funcs will be registered in slot->funcs list.
It's coincident with microsoft's example:
http://www.microsoft.com/china/whdc/system/pnppwr/hotadd/hotplugpci.mspx#EUH

Have tested with linux/winxp/win7, hot-adding/hot-remving,
single/multiple function devices, they are all fine(all
added devices can be removed).

This patch includes some bits mst wrote, thanks!
---
old discussion: http://marc.info/?l=kvm&m=132428400917405&w=2

Signed-off-by: Amos Kong <akong@redhat.com>
CC: Michael S. Tsirkin <mst@redhat.com>
---
 src/ssdt-pcihp.dsl |   17 
 src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 8781 insertions(+), 105 deletions(-)

diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
index 4b435b8..2a3c326 100644
--- a/src/ssdt-pcihp.dsl
+++ b/src/ssdt-pcihp.dsl
@@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
         // at runtime, if the slot is detected to not support hotplug.
         // Extract the offset of the address dword and the
         // _EJ0 name to allow this patching.
-#define hotplug_slot(slot)                              \
-        Device (S##slot) {                              \
+#define hotplug_func(slot, fn)                          \
+        Device (S##slot##fn) {                          \
            ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
-           Name (_ADR, 0x##slot##0000)                  \
+           Name (_ADR, 0x##slot##000##fn)               \
            ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
            Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
            Name (_SUN, 0x##slot)                        \
         }
+#define hotplug_slot(slot)     \
+        hotplug_func(slot, 0)  \
+        hotplug_func(slot, 1)  \
+        hotplug_func(slot, 2)  \
+        hotplug_func(slot, 3)  \
+        hotplug_func(slot, 4)  \
+        hotplug_func(slot, 5)  \
+        hotplug_func(slot, 6)  \
+        hotplug_func(slot, 7)
 
         hotplug_slot(01)
         hotplug_slot(02)
@@ -59,7 +68,7 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
         hotplug_slot(1f)
 
 #define gen_pci_hotplug(slot)   \
-            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot, Arg1) }
+            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot##0, Arg1) }
 
         Method(PCNT, 2) {
             gen_pci_hotplug(01)
diff --git a/src/ssdt-pcihp.hex b/src/ssdt-pcihp.hex
index b15ad5a..b0c1e84 100644
--- a/src/ssdt-pcihp.hex
+++ b/src/ssdt-pcihp.hex
@@ -1,80 +1,514 @@
 static unsigned short aml_adr_dword[] = {
-0x3e,
-0x62,
-0x88,
-0xae,
-0xd4,
-0xfa,
-0x120,
-0x146,
-0x16c,
-0x192,
-0x1b8,
-0x1de,
-0x204,
-0x22a,
-0x250,
-0x276,
-0x29c,
-0x2c2,
-0x2e8,
-0x30e,
-0x334,
-0x35a,
-0x380,
-0x3a6,
-0x3cc,
-0x3f2,
-0x418,
-0x43e,
-0x464,
-0x48a,
-0x4b0
+0x3f,
+0x63,
+0x87,
+0xab,
+0xcf,
+0xf3,
+0x117,
+0x13b,
+0x15f,
+0x185,
+0x1ab,
+0x1d1,
+0x1f7,
+0x21d,
+0x243,
+0x269,
+0x28f,
+0x2b5,
+0x2db,
+0x301,
+0x327,
+0x34d,
+0x373,
+0x399,
+0x3bf,
+0x3e5,
+0x40b,
+0x431,
+0x457,
+0x47d,
+0x4a3,
+0x4c9,
+0x4ef,
+0x515,
+0x53b,
+0x561,
+0x587,
+0x5ad,
+0x5d3,
+0x5f9,
+0x61f,
+0x645,
+0x66b,
+0x691,
+0x6b7,
+0x6dd,
+0x703,
+0x729,
+0x74f,
+0x775,
+0x79b,
+0x7c1,
+0x7e7,
+0x80d,
+0x833,
+0x859,
+0x87f,
+0x8a5,
+0x8cb,
+0x8f1,
+0x917,
+0x93d,
+0x963,
+0x989,
+0x9af,
+0x9d5,
+0x9fb,
+0xa21,
+0xa47,
+0xa6d,
+0xa93,
+0xab9,
+0xadf,
+0xb05,
+0xb2b,
+0xb51,
+0xb77,
+0xb9d,
+0xbc3,
+0xbe9,
+0xc0f,
+0xc35,
+0xc5b,
+0xc81,
+0xca7,
+0xccd,
+0xcf3,
+0xd19,
+0xd3f,
+0xd65,
+0xd8b,
+0xdb1,
+0xdd7,
+0xdfd,
+0xe23,
+0xe49,
+0xe6f,
+0xe95,
+0xebb,
+0xee1,
+0xf07,
+0xf2d,
+0xf53,
+0xf79,
+0xf9f,
+0xfc5,
+0xfeb,
+0x1011,
+0x1037,
+0x105d,
+0x1083,
+0x10a9,
+0x10cf,
+0x10f5,
+0x111b,
+0x1141,
+0x1167,
+0x118d,
+0x11b3,
+0x11d9,
+0x11ff,
+0x1225,
+0x124b,
+0x1271,
+0x1297,
+0x12bd,
+0x12e3,
+0x1309,
+0x132f,
+0x1355,
+0x137b,
+0x13a1,
+0x13c7,
+0x13ed,
+0x1413,
+0x1439,
+0x145f,
+0x1485,
+0x14ab,
+0x14d1,
+0x14f7,
+0x151d,
+0x1543,
+0x1569,
+0x158f,
+0x15b5,
+0x15db,
+0x1601,
+0x1627,
+0x164d,
+0x1673,
+0x1699,
+0x16bf,
+0x16e5,
+0x170b,
+0x1731,
+0x1757,
+0x177d,
+0x17a3,
+0x17c9,
+0x17ef,
+0x1815,
+0x183b,
+0x1861,
+0x1887,
+0x18ad,
+0x18d3,
+0x18f9,
+0x191f,
+0x1945,
+0x196b,
+0x1991,
+0x19b7,
+0x19dd,
+0x1a03,
+0x1a29,
+0x1a4f,
+0x1a75,
+0x1a9b,
+0x1ac1,
+0x1ae7,
+0x1b0d,
+0x1b33,
+0x1b59,
+0x1b7f,
+0x1ba5,
+0x1bcb,
+0x1bf1,
+0x1c17,
+0x1c3d,
+0x1c63,
+0x1c89,
+0x1caf,
+0x1cd5,
+0x1cfb,
+0x1d21,
+0x1d47,
+0x1d6d,
+0x1d93,
+0x1db9,
+0x1ddf,
+0x1e05,
+0x1e2b,
+0x1e51,
+0x1e77,
+0x1e9d,
+0x1ec3,
+0x1ee9,
+0x1f0f,
+0x1f35,
+0x1f5b,
+0x1f81,
+0x1fa7,
+0x1fcd,
+0x1ff3,
+0x2019,
+0x203f,
+0x2065,
+0x208b,
+0x20b1,
+0x20d7,
+0x20fd,
+0x2123,
+0x2149,
+0x216f,
+0x2195,
+0x21bb,
+0x21e1,
+0x2207,
+0x222d,
+0x2253,
+0x2279,
+0x229f,
+0x22c5,
+0x22eb,
+0x2311,
+0x2337,
+0x235d,
+0x2383,
+0x23a9,
+0x23cf,
+0x23f5,
+0x241b,
+0x2441,
+0x2467,
+0x248d,
+0x24b3,
+0x24d9
 };
 static unsigned short aml_ej0_name[] = {
-0x44,
-0x68,
-0x8e,
-0xb4,
-0xda,
-0x100,
-0x126,
-0x14c,
-0x172,
-0x198,
-0x1be,
-0x1e4,
-0x20a,
-0x230,
-0x256,
-0x27c,
-0x2a2,
-0x2c8,
-0x2ee,
-0x314,
-0x33a,
-0x360,
-0x386,
-0x3ac,
-0x3d2,
-0x3f8,
-0x41e,
-0x444,
-0x46a,
-0x490,
-0x4b6
+0x45,
+0x69,
+0x8d,
+0xb1,
+0xd5,
+0xf9,
+0x11d,
+0x141,
+0x165,
+0x18b,
+0x1b1,
+0x1d7,
+0x1fd,
+0x223,
+0x249,
+0x26f,
+0x295,
+0x2bb,
+0x2e1,
+0x307,
+0x32d,
+0x353,
+0x379,
+0x39f,
+0x3c5,
+0x3eb,
+0x411,
+0x437,
+0x45d,
+0x483,
+0x4a9,
+0x4cf,
+0x4f5,
+0x51b,
+0x541,
+0x567,
+0x58d,
+0x5b3,
+0x5d9,
+0x5ff,
+0x625,
+0x64b,
+0x671,
+0x697,
+0x6bd,
+0x6e3,
+0x709,
+0x72f,
+0x755,
+0x77b,
+0x7a1,
+0x7c7,
+0x7ed,
+0x813,
+0x839,
+0x85f,
+0x885,
+0x8ab,
+0x8d1,
+0x8f7,
+0x91d,
+0x943,
+0x969,
+0x98f,
+0x9b5,
+0x9db,
+0xa01,
+0xa27,
+0xa4d,
+0xa73,
+0xa99,
+0xabf,
+0xae5,
+0xb0b,
+0xb31,
+0xb57,
+0xb7d,
+0xba3,
+0xbc9,
+0xbef,
+0xc15,
+0xc3b,
+0xc61,
+0xc87,
+0xcad,
+0xcd3,
+0xcf9,
+0xd1f,
+0xd45,
+0xd6b,
+0xd91,
+0xdb7,
+0xddd,
+0xe03,
+0xe29,
+0xe4f,
+0xe75,
+0xe9b,
+0xec1,
+0xee7,
+0xf0d,
+0xf33,
+0xf59,
+0xf7f,
+0xfa5,
+0xfcb,
+0xff1,
+0x1017,
+0x103d,
+0x1063,
+0x1089,
+0x10af,
+0x10d5,
+0x10fb,
+0x1121,
+0x1147,
+0x116d,
+0x1193,
+0x11b9,
+0x11df,
+0x1205,
+0x122b,
+0x1251,
+0x1277,
+0x129d,
+0x12c3,
+0x12e9,
+0x130f,
+0x1335,
+0x135b,
+0x1381,
+0x13a7,
+0x13cd,
+0x13f3,
+0x1419,
+0x143f,
+0x1465,
+0x148b,
+0x14b1,
+0x14d7,
+0x14fd,
+0x1523,
+0x1549,
+0x156f,
+0x1595,
+0x15bb,
+0x15e1,
+0x1607,
+0x162d,
+0x1653,
+0x1679,
+0x169f,
+0x16c5,
+0x16eb,
+0x1711,
+0x1737,
+0x175d,
+0x1783,
+0x17a9,
+0x17cf,
+0x17f5,
+0x181b,
+0x1841,
+0x1867,
+0x188d,
+0x18b3,
+0x18d9,
+0x18ff,
+0x1925,
+0x194b,
+0x1971,
+0x1997,
+0x19bd,
+0x19e3,
+0x1a09,
+0x1a2f,
+0x1a55,
+0x1a7b,
+0x1aa1,
+0x1ac7,
+0x1aed,
+0x1b13,
+0x1b39,
+0x1b5f,
+0x1b85,
+0x1bab,
+0x1bd1,
+0x1bf7,
+0x1c1d,
+0x1c43,
+0x1c69,
+0x1c8f,
+0x1cb5,
+0x1cdb,
+0x1d01,
+0x1d27,
+0x1d4d,
+0x1d73,
+0x1d99,
+0x1dbf,
+0x1de5,
+0x1e0b,
+0x1e31,
+0x1e57,
+0x1e7d,
+0x1ea3,
+0x1ec9,
+0x1eef,
+0x1f15,
+0x1f3b,
+0x1f61,
+0x1f87,
+0x1fad,
+0x1fd3,
+0x1ff9,
+0x201f,
+0x2045,
+0x206b,
+0x2091,
+0x20b7,
+0x20dd,
+0x2103,
+0x2129,
+0x214f,
+0x2175,
+0x219b,
+0x21c1,
+0x21e7,
+0x220d,
+0x2233,
+0x2259,
+0x227f,
+0x22a5,
+0x22cb,
+0x22f1,
+0x2317,
+0x233d,
+0x2363,
+0x2389,
+0x23af,
+0x23d5,
+0x23fb,
+0x2421,
+0x2447,
+0x246d,
+0x2493,
+0x24b9,
+0x24df
 };
 static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x53,
 0x44,
 0x54,
-0x44,
-0x6,
+0x6d,
+0x26,
 0x0,
 0x0,
 0x1,
-0x94,
+0x7f,
 0x42,
 0x58,
 0x50,
@@ -97,13 +531,14 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x4e,
 0x54,
 0x4c,
-0x28,
-0x5,
-0x10,
+0x23,
+0x1,
+0x9,
 0x20,
 0x10,
-0x4f,
-0x61,
+0x88,
+0x64,
+0x2,
 0x5c,
 0x2e,
 0x5f,
@@ -120,14 +555,266 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x31,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1,
+0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x1,
+0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x1,
+0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1,
+0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1,
+0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x35,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1,
+0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
+0x0,
+0x1,
 0x0,
+0x14,
+0xc,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0x1,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0x1,
+0x5b,
+0x82,
+0x22,
+0x53,
+0x30,
+0x31,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x1,
 0x0,
@@ -156,14 +843,90 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x32,
+0x30,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x2,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
+0x0,
+0x2,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x2,
 0x0,
@@ -193,15 +956,281 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x30,
+0x32,
 0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x2,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x2,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x2,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x36,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x2,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x32,
+0x37,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x7,
 0x0,
+0x2,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x2,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x2,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x3,
 0x0,
@@ -231,15 +1260,281 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x30,
+0x33,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
 0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x36,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x33,
+0x37,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x7,
 0x0,
+0x3,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x3,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x3,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x4,
 0x0,
@@ -269,15 +1564,395 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x30,
+0x34,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
 0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
 0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x34,
+0x37,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x7,
 0x0,
+0x4,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x4,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x4,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
 0x0,
 0x5,
 0x0,
@@ -307,15 +1982,357 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x30,
+0x35,
 0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
 0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x35,
+0x37,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x7,
+0x0,
+0x5,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x5,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x5,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
 0x0,
+0x6,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x6,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x6,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x36,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x6,
 0x0,
@@ -346,14 +2363,204 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x37,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x33,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x34,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x4,
+0x0,
+0x7,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
 0x0,
 0x7,
 0x0,
@@ -383,8 +2590,388 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x30,
+0x37,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x37,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x7,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x7,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x7,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
 0x38,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x38,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x8,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x8,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x8,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x30,
 0x8,
 0x5f,
 0x41,
@@ -393,7 +2980,83 @@ static unsigned char ssdp_pcihp_aml[] = {
 0xc,
 0x0,
 0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
 0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x9,
 0x0,
 0x14,
 0xd,
@@ -408,28 +3071,180 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x33,
 0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x34,
 0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x30,
 0x39,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
 0x0,
+0x9,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x9,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x9,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x39,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x9,
 0x0,
@@ -460,14 +3275,280 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x41,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x34,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x4,
 0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0xa,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xa,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xa,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x41,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0xa,
 0x0,
@@ -498,14 +3579,90 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x42,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
 0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
+0x0,
+0xb,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0xb,
 0x0,
@@ -535,17 +3692,93 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x30,
+0x42,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
 0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x34,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x4,
 0x0,
+0xb,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
 0xc,
+0x5,
+0x0,
+0xb,
 0x0,
 0x14,
 0xd,
@@ -560,30 +3793,182 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
 0xc,
+0x6,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
+0xb,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x42,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
 0xc,
+0x7,
+0x0,
+0xb,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xb,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xb,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x30,
+0x43,
+0x30,
+0x8,
+0x5f,
+0x41,
 0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xc,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0xc,
 0x0,
+0x14,
 0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xc,
 0x0,
 0x14,
 0xd,
@@ -598,28 +3983,788 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x45,
 0x4a,
 0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xc,
+0x0,
+0x14,
 0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
 0x8,
 0x5f,
 0x53,
 0x55,
 0x4e,
 0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0xc,
+0x0,
+0x14,
 0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
 0x5b,
 0x82,
 0x24,
 0x53,
 0x30,
+0x43,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xc,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
 0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
+0x0,
+0xc,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x43,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0xc,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xc,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xc,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x44,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0xd,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xd,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xd,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0xe,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xe,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xe,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x45,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0xe,
 0x0,
@@ -650,14 +4795,280 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x46,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x33,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x3,
 0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0xf,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0xf,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0xf,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x30,
+0x46,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0xf,
 0x0,
@@ -688,14 +5099,90 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x30,
+0x30,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x10,
 0x0,
@@ -725,15 +5212,471 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x30,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
 0x31,
+0x30,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x35,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x5,
 0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x30,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x10,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x10,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x10,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x11,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x11,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x11,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x31,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x11,
 0x0,
@@ -764,14 +5707,90 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x32,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x12,
 0x0,
@@ -801,15 +5820,319 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x32,
 0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
 0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x34,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x4,
 0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x32,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x12,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x12,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x12,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
 0x0,
 0x13,
 0x0,
@@ -839,8 +6162,160 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x33,
 0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
 0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x33,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x13,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x13,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x13,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x30,
 0x8,
 0x5f,
 0x41,
@@ -877,15 +6352,395 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x34,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x34,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x14,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x14,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x14,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
 0x35,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x32,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x2,
 0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
 0x0,
 0x15,
 0x0,
@@ -915,15 +6770,433 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x35,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x35,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x15,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x15,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x15,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
 0x36,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x35,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
 0x0,
+0x16,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x16,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x16,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x36,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x16,
 0x0,
@@ -954,14 +7227,280 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x37,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x32,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x2,
 0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x17,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x17,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x17,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x37,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x17,
 0x0,
@@ -992,14 +7531,280 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x38,
+0x30,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
+0x0,
+0x18,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x18,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x18,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x18,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x38,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x18,
 0x0,
@@ -1030,14 +7835,90 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x39,
+0x30,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x19,
 0x0,
@@ -1067,15 +7948,471 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x39,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x39,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x19,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x19,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x19,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
 0x41,
+0x35,
+0x8,
 0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1a,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
+0x0,
+0x1a,
 0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1a,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1a,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x41,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x1a,
 0x0,
@@ -1106,14 +8443,90 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x42,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x1b,
 0x0,
@@ -1143,15 +8556,471 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x42,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x42,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x1b,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1b,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1b,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
 0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
 0x0,
+0x1c,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1c,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1c,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x43,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x1c,
 0x0,
@@ -1182,14 +9051,90 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x44,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
 0x0,
 0x1d,
 0x0,
@@ -1219,15 +9164,471 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x24,
 0x53,
 0x31,
+0x44,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x44,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
+0x0,
+0x1d,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1d,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1d,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x31,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x1,
+0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
 0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
 0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x36,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x6,
 0x0,
+0x1e,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1e,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1e,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x45,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x1e,
 0x0,
@@ -1258,14 +9659,280 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x46,
+0x30,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x0,
+0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
 0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x31,
 0x8,
 0x5f,
 0x41,
 0x44,
 0x52,
 0xc,
+0x1,
 0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x32,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x2,
+0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x33,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x3,
+0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x34,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x4,
+0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x35,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x5,
+0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x36,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x6,
+0x0,
+0x1f,
+0x0,
+0x14,
+0xd,
+0x5f,
+0x45,
+0x4a,
+0x30,
+0x1,
+0xa4,
+0x50,
+0x43,
+0x45,
+0x4a,
+0xa,
+0x1f,
+0x8,
+0x5f,
+0x53,
+0x55,
+0x4e,
+0xa,
+0x1f,
+0x5b,
+0x82,
+0x24,
+0x53,
+0x31,
+0x46,
+0x37,
+0x8,
+0x5f,
+0x41,
+0x44,
+0x52,
+0xc,
+0x7,
 0x0,
 0x1f,
 0x0,
@@ -1307,7 +9974,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x31,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1319,7 +9986,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x32,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1331,7 +9998,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x33,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1343,7 +10010,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x34,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1355,7 +10022,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x35,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1367,7 +10034,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x36,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1379,7 +10046,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x37,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1391,7 +10058,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x38,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1403,7 +10070,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x39,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1415,7 +10082,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x41,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1427,7 +10094,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x42,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1439,7 +10106,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x43,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1451,7 +10118,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x44,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1463,7 +10130,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x45,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1475,7 +10142,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x30,
 0x46,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1487,7 +10154,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x30,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1499,7 +10166,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x31,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1511,7 +10178,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x32,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1523,7 +10190,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x33,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1535,7 +10202,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x34,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1547,7 +10214,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x35,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1559,7 +10226,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x36,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1571,7 +10238,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x37,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1583,7 +10250,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x38,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1595,7 +10262,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x39,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1607,7 +10274,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x41,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1619,7 +10286,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x42,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1631,7 +10298,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x43,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1643,7 +10310,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x44,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1655,7 +10322,7 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x45,
-0x5f,
+0x30,
 0x69,
 0xa0,
 0xb,
@@ -1667,6 +10334,6 @@ static unsigned char ssdp_pcihp_aml[] = {
 0x53,
 0x31,
 0x46,
-0x5f,
+0x30,
 0x69
 };

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

* Re: [Qemu-devel] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
  2012-05-09  7:24                                   ` [Qemu-devel] " Amos Kong
  (?)
@ 2012-05-09  7:35                                   ` Amos Kong
  -1 siblings, 0 replies; 56+ messages in thread
From: Amos Kong @ 2012-05-09  7:35 UTC (permalink / raw)
  To: mst, linux-pci, seabios, qemu-devel, jbarnes, rjw,
	alex.williamson, kevin

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

On 09/05/12 15:24, Amos Kong wrote:
> Boot up a Linux VM with 8 pci block devices which
> are the 8 functions in one pci slot.
> | # qemu-kvm ...
> | -drive file=images/u0,if=none,id=drv0,format=qcow2,cache=none \
> | -device virtio-blk-pci,drive=drv0,id=v0,multifunction=on,addr=0x03.0 \
> | ....
> | -drive file=images/u7,if=none,id=drv7,format=qcow2,cache=none \
> | -device virtio-blk-pci,drive=drv7,id=v7,multifunction=on,addr=0x03.7 \
>
> Check devices in guest.
> | vm)# ls /dev/vd*
> |    vda vdb vdc vde vdf vdg vdh
> | vm)# lspci |grep block
> | 00:03.0 SCSI storage controller: Red Hat, Inc Virtio block device
> |    ...
> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device
> |
>
> Func1~7 still exist in guest after hot-removing the whole slot
> through qemu monitor.
> | vm)# lspci |grep block    (00:03.0 disappeared)
> | 00:03.1 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
> |    ...
> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
> | vm)# ls /dev/vd*          (vda disappeared)
> |    vdb vdc vde vdf vdg vdh
> | vm)# mkfs /dev/vdb
> |    INFO: task mkfs.ext2:1784 blocked for more than 120 seconds. (task hung)
>
>
> Currently only func0 is defined in ACPI DSDT table
> of seabios, and only hot-adding func0 would cause
> a ACPI event for notification. Other funcs except
> func0 wouldn't be registered in linux pci driver.
> (we can only found func0 in slot->funcs list of
> pci driver).
>
> When VM pci driver receives an ACPI event for
> hot-removing, it will only clean functions in
> slot->funcs list, the other funcs could not be
> cleaned.
>
> This patch adds device per function in ACPI DSDT tables,
> then all funcs will be registered in slot->funcs list.
> It's coincident with microsoft's example:
> http://www.microsoft.com/china/whdc/system/pnppwr/hotadd/hotplugpci.mspx#EUH

Attached 'seabios/out/ssdt-pcihp.dsl.i'.

btw, the first mail is little big (86K), please delete hex part
when you reply, thanks.


> Have tested with linux/winxp/win7, hot-adding/hot-remving,
> single/multiple function devices, they are all fine(all
> added devices can be removed).
>
> This patch includes some bits mst wrote, thanks!
> ---
> old discussion: http://marc.info/?l=kvm&m=132428400917405&w=2
>
> Signed-off-by: Amos Kong<akong@redhat.com>
> CC: Michael S. Tsirkin<mst@redhat.com>
> ---
>   src/ssdt-pcihp.dsl |   17
>   src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
>   2 files changed, 8781 insertions(+), 105 deletions(-)
>
> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> index 4b435b8..2a3c326 100644
> --- a/src/ssdt-pcihp.dsl
> +++ b/src/ssdt-pcihp.dsl
> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>           // at runtime, if the slot is detected to not support hotplug.
>           // Extract the offset of the address dword and the
>           // _EJ0 name to allow this patching.
> -#define hotplug_slot(slot)                              \
> -        Device (S##slot) {                              \
> +#define hotplug_func(slot, fn)                          \
> +        Device (S##slot##fn) {                          \
>              ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> -           Name (_ADR, 0x##slot##0000)                  \
> +           Name (_ADR, 0x##slot##000##fn)               \
>              ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
>              Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
>              Name (_SUN, 0x##slot)                        \
>           }
> +#define hotplug_slot(slot)     \
> +        hotplug_func(slot, 0)  \
> +        hotplug_func(slot, 1)  \
> +        hotplug_func(slot, 2)  \
> +        hotplug_func(slot, 3)  \
> +        hotplug_func(slot, 4)  \
> +        hotplug_func(slot, 5)  \
> +        hotplug_func(slot, 6)  \
> +        hotplug_func(slot, 7)
>
>           hotplug_slot(01)
>           hotplug_slot(02)
> @@ -59,7 +68,7 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>           hotplug_slot(1f)
>
>   #define gen_pci_hotplug(slot)   \
> -            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot, Arg1) }
> +            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot##0, Arg1) }
>
>           Method(PCNT, 2) {
>               gen_pci_hotplug(01)
> diff --git a/src/ssdt-pcihp.hex b/src/ssdt-pcihp.hex
> index b15ad5a..b0c1e84 100644
> --- a/src/ssdt-pcihp.hex
> +++ b/src/ssdt-pcihp.hex
> @@ -1,80 +1,514 @@
>   static unsigned short aml_adr_dword[] = {
> -0x3e,
> -0x62,
> -0x88,

....

-- 
			Amos.

[-- Attachment #2: ssdt-pcihp.dsl.i --]
[-- Type: text/plain, Size: 51457 bytes --]


/* ACPI_EXTRACT_ALL_CODE ssdp_pcihp_aml */


DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
{






    External (\_SB.PCI0, DeviceObj)
    External (\_SB.PCI0.PCEJ, MethodObj)

    Scope(\_SB.PCI0) {
        Device (S010) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x010000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x01)) } Name (_SUN, 0x01) } Device (S011) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x010001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x01)) } Name (_SUN, 0x01) } Device (S012) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x010002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x01)) } Name (_SUN, 0x01) } Device (S013) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x010003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x01)) } Name (_SUN, 0x01) } Device (S014) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x010004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x01)) } Name (_SUN, 0x01) } Device (S015) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x010005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x01)) } Name (_SUN, 0x01) } Device (S016) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x010006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x01)) } Name (_SUN, 0x01) } Device (S017) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x010007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x01)) } Name (_SUN, 0x01) }
        Device (S020) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x020000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x02)) } Name (_SUN, 0x02) } Device (S021) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x020001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x02)) } Name (_SUN, 0x02) } Device (S022) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x020002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x02)) } Name (_SUN, 0x02) } Device (S023) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x020003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x02)) } Name (_SUN, 0x02) } Device (S024) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x020004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x02)) } Name (_SUN, 0x02) } Device (S025) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x020005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x02)) } Name (_SUN, 0x02) } Device (S026) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x020006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x02)) } Name (_SUN, 0x02) } Device (S027) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x020007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x02)) } Name (_SUN, 0x02) }
        Device (S030) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x030000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x03)) } Name (_SUN, 0x03) } Device (S031) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x030001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x03)) } Name (_SUN, 0x03) } Device (S032) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x030002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x03)) } Name (_SUN, 0x03) } Device (S033) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x030003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x03)) } Name (_SUN, 0x03) } Device (S034) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x030004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x03)) } Name (_SUN, 0x03) } Device (S035) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x030005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x03)) } Name (_SUN, 0x03) } Device (S036) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x030006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x03)) } Name (_SUN, 0x03) } Device (S037) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x030007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x03)) } Name (_SUN, 0x03) }
        Device (S040) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x040000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x04)) } Name (_SUN, 0x04) } Device (S041) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x040001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x04)) } Name (_SUN, 0x04) } Device (S042) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x040002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x04)) } Name (_SUN, 0x04) } Device (S043) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x040003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x04)) } Name (_SUN, 0x04) } Device (S044) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x040004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x04)) } Name (_SUN, 0x04) } Device (S045) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x040005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x04)) } Name (_SUN, 0x04) } Device (S046) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x040006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x04)) } Name (_SUN, 0x04) } Device (S047) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x040007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x04)) } Name (_SUN, 0x04) }
        Device (S050) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x050000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x05)) } Name (_SUN, 0x05) } Device (S051) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x050001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x05)) } Name (_SUN, 0x05) } Device (S052) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x050002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x05)) } Name (_SUN, 0x05) } Device (S053) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x050003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x05)) } Name (_SUN, 0x05) } Device (S054) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x050004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x05)) } Name (_SUN, 0x05) } Device (S055) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x050005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x05)) } Name (_SUN, 0x05) } Device (S056) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x050006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x05)) } Name (_SUN, 0x05) } Device (S057) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x050007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x05)) } Name (_SUN, 0x05) }
        Device (S060) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x060000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x06)) } Name (_SUN, 0x06) } Device (S061) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x060001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x06)) } Name (_SUN, 0x06) } Device (S062) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x060002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x06)) } Name (_SUN, 0x06) } Device (S063) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x060003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x06)) } Name (_SUN, 0x06) } Device (S064) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x060004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x06)) } Name (_SUN, 0x06) } Device (S065) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x060005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x06)) } Name (_SUN, 0x06) } Device (S066) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x060006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x06)) } Name (_SUN, 0x06) } Device (S067) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x060007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x06)) } Name (_SUN, 0x06) }
        Device (S070) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x070000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x07)) } Name (_SUN, 0x07) } Device (S071) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x070001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x07)) } Name (_SUN, 0x07) } Device (S072) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x070002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x07)) } Name (_SUN, 0x07) } Device (S073) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x070003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x07)) } Name (_SUN, 0x07) } Device (S074) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x070004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x07)) } Name (_SUN, 0x07) } Device (S075) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x070005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x07)) } Name (_SUN, 0x07) } Device (S076) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x070006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x07)) } Name (_SUN, 0x07) } Device (S077) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x070007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x07)) } Name (_SUN, 0x07) }
        Device (S080) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x080000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x08)) } Name (_SUN, 0x08) } Device (S081) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x080001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x08)) } Name (_SUN, 0x08) } Device (S082) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x080002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x08)) } Name (_SUN, 0x08) } Device (S083) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x080003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x08)) } Name (_SUN, 0x08) } Device (S084) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x080004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x08)) } Name (_SUN, 0x08) } Device (S085) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x080005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x08)) } Name (_SUN, 0x08) } Device (S086) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x080006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x08)) } Name (_SUN, 0x08) } Device (S087) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x080007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x08)) } Name (_SUN, 0x08) }
        Device (S090) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x090000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x09)) } Name (_SUN, 0x09) } Device (S091) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x090001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x09)) } Name (_SUN, 0x09) } Device (S092) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x090002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x09)) } Name (_SUN, 0x09) } Device (S093) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x090003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x09)) } Name (_SUN, 0x09) } Device (S094) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x090004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x09)) } Name (_SUN, 0x09) } Device (S095) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x090005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x09)) } Name (_SUN, 0x09) } Device (S096) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x090006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x09)) } Name (_SUN, 0x09) } Device (S097) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x090007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x09)) } Name (_SUN, 0x09) }
        Device (S0a0) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0a0000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0a)) } Name (_SUN, 0x0a) } Device (S0a1) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0a0001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0a)) } Name (_SUN, 0x0a) } Device (S0a2) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0a0002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0a)) } Name (_SUN, 0x0a) } Device (S0a3) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0a0003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0a)) } Name (_SUN, 0x0a) } Device (S0a4) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0a0004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0a)) } Name (_SUN, 0x0a) } Device (S0a5) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0a0005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0a)) } Name (_SUN, 0x0a) } Device (S0a6) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0a0006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0a)) } Name (_SUN, 0x0a) } Device (S0a7) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0a0007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0a)) } Name (_SUN, 0x0a) }
        Device (S0b0) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0b0000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0b)) } Name (_SUN, 0x0b) } Device (S0b1) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0b0001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0b)) } Name (_SUN, 0x0b) } Device (S0b2) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0b0002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0b)) } Name (_SUN, 0x0b) } Device (S0b3) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0b0003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0b)) } Name (_SUN, 0x0b) } Device (S0b4) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0b0004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0b)) } Name (_SUN, 0x0b) } Device (S0b5) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0b0005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0b)) } Name (_SUN, 0x0b) } Device (S0b6) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0b0006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0b)) } Name (_SUN, 0x0b) } Device (S0b7) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0b0007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0b)) } Name (_SUN, 0x0b) }
        Device (S0c0) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0c0000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0c)) } Name (_SUN, 0x0c) } Device (S0c1) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0c0001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0c)) } Name (_SUN, 0x0c) } Device (S0c2) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0c0002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0c)) } Name (_SUN, 0x0c) } Device (S0c3) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0c0003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0c)) } Name (_SUN, 0x0c) } Device (S0c4) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0c0004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0c)) } Name (_SUN, 0x0c) } Device (S0c5) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0c0005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0c)) } Name (_SUN, 0x0c) } Device (S0c6) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0c0006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0c)) } Name (_SUN, 0x0c) } Device (S0c7) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0c0007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0c)) } Name (_SUN, 0x0c) }
        Device (S0d0) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0d0000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0d)) } Name (_SUN, 0x0d) } Device (S0d1) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0d0001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0d)) } Name (_SUN, 0x0d) } Device (S0d2) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0d0002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0d)) } Name (_SUN, 0x0d) } Device (S0d3) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0d0003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0d)) } Name (_SUN, 0x0d) } Device (S0d4) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0d0004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0d)) } Name (_SUN, 0x0d) } Device (S0d5) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0d0005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0d)) } Name (_SUN, 0x0d) } Device (S0d6) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0d0006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0d)) } Name (_SUN, 0x0d) } Device (S0d7) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0d0007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0d)) } Name (_SUN, 0x0d) }
        Device (S0e0) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0e0000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0e)) } Name (_SUN, 0x0e) } Device (S0e1) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0e0001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0e)) } Name (_SUN, 0x0e) } Device (S0e2) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0e0002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0e)) } Name (_SUN, 0x0e) } Device (S0e3) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0e0003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0e)) } Name (_SUN, 0x0e) } Device (S0e4) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0e0004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0e)) } Name (_SUN, 0x0e) } Device (S0e5) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0e0005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0e)) } Name (_SUN, 0x0e) } Device (S0e6) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0e0006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0e)) } Name (_SUN, 0x0e) } Device (S0e7) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0e0007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0e)) } Name (_SUN, 0x0e) }
        Device (S0f0) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0f0000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0f)) } Name (_SUN, 0x0f) } Device (S0f1) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0f0001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0f)) } Name (_SUN, 0x0f) } Device (S0f2) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0f0002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0f)) } Name (_SUN, 0x0f) } Device (S0f3) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0f0003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0f)) } Name (_SUN, 0x0f) } Device (S0f4) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0f0004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0f)) } Name (_SUN, 0x0f) } Device (S0f5) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0f0005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0f)) } Name (_SUN, 0x0f) } Device (S0f6) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0f0006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0f)) } Name (_SUN, 0x0f) } Device (S0f7) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x0f0007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x0f)) } Name (_SUN, 0x0f) }
        Device (S100) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x100000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x10)) } Name (_SUN, 0x10) } Device (S101) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x100001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x10)) } Name (_SUN, 0x10) } Device (S102) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x100002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x10)) } Name (_SUN, 0x10) } Device (S103) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x100003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x10)) } Name (_SUN, 0x10) } Device (S104) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x100004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x10)) } Name (_SUN, 0x10) } Device (S105) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x100005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x10)) } Name (_SUN, 0x10) } Device (S106) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x100006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x10)) } Name (_SUN, 0x10) } Device (S107) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x100007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x10)) } Name (_SUN, 0x10) }
        Device (S110) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x110000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x11)) } Name (_SUN, 0x11) } Device (S111) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x110001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x11)) } Name (_SUN, 0x11) } Device (S112) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x110002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x11)) } Name (_SUN, 0x11) } Device (S113) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x110003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x11)) } Name (_SUN, 0x11) } Device (S114) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x110004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x11)) } Name (_SUN, 0x11) } Device (S115) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x110005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x11)) } Name (_SUN, 0x11) } Device (S116) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x110006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x11)) } Name (_SUN, 0x11) } Device (S117) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x110007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x11)) } Name (_SUN, 0x11) }
        Device (S120) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x120000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x12)) } Name (_SUN, 0x12) } Device (S121) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x120001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x12)) } Name (_SUN, 0x12) } Device (S122) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x120002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x12)) } Name (_SUN, 0x12) } Device (S123) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x120003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x12)) } Name (_SUN, 0x12) } Device (S124) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x120004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x12)) } Name (_SUN, 0x12) } Device (S125) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x120005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x12)) } Name (_SUN, 0x12) } Device (S126) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x120006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x12)) } Name (_SUN, 0x12) } Device (S127) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x120007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x12)) } Name (_SUN, 0x12) }
        Device (S130) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x130000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x13)) } Name (_SUN, 0x13) } Device (S131) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x130001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x13)) } Name (_SUN, 0x13) } Device (S132) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x130002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x13)) } Name (_SUN, 0x13) } Device (S133) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x130003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x13)) } Name (_SUN, 0x13) } Device (S134) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x130004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x13)) } Name (_SUN, 0x13) } Device (S135) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x130005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x13)) } Name (_SUN, 0x13) } Device (S136) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x130006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x13)) } Name (_SUN, 0x13) } Device (S137) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x130007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x13)) } Name (_SUN, 0x13) }
        Device (S140) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x140000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x14)) } Name (_SUN, 0x14) } Device (S141) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x140001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x14)) } Name (_SUN, 0x14) } Device (S142) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x140002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x14)) } Name (_SUN, 0x14) } Device (S143) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x140003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x14)) } Name (_SUN, 0x14) } Device (S144) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x140004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x14)) } Name (_SUN, 0x14) } Device (S145) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x140005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x14)) } Name (_SUN, 0x14) } Device (S146) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x140006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x14)) } Name (_SUN, 0x14) } Device (S147) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x140007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x14)) } Name (_SUN, 0x14) }
        Device (S150) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x150000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x15)) } Name (_SUN, 0x15) } Device (S151) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x150001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x15)) } Name (_SUN, 0x15) } Device (S152) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x150002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x15)) } Name (_SUN, 0x15) } Device (S153) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x150003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x15)) } Name (_SUN, 0x15) } Device (S154) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x150004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x15)) } Name (_SUN, 0x15) } Device (S155) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x150005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x15)) } Name (_SUN, 0x15) } Device (S156) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x150006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x15)) } Name (_SUN, 0x15) } Device (S157) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x150007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x15)) } Name (_SUN, 0x15) }
        Device (S160) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x160000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x16)) } Name (_SUN, 0x16) } Device (S161) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x160001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x16)) } Name (_SUN, 0x16) } Device (S162) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x160002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x16)) } Name (_SUN, 0x16) } Device (S163) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x160003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x16)) } Name (_SUN, 0x16) } Device (S164) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x160004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x16)) } Name (_SUN, 0x16) } Device (S165) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x160005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x16)) } Name (_SUN, 0x16) } Device (S166) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x160006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x16)) } Name (_SUN, 0x16) } Device (S167) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x160007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x16)) } Name (_SUN, 0x16) }
        Device (S170) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x170000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x17)) } Name (_SUN, 0x17) } Device (S171) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x170001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x17)) } Name (_SUN, 0x17) } Device (S172) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x170002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x17)) } Name (_SUN, 0x17) } Device (S173) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x170003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x17)) } Name (_SUN, 0x17) } Device (S174) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x170004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x17)) } Name (_SUN, 0x17) } Device (S175) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x170005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x17)) } Name (_SUN, 0x17) } Device (S176) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x170006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x17)) } Name (_SUN, 0x17) } Device (S177) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x170007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x17)) } Name (_SUN, 0x17) }
        Device (S180) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x180000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x18)) } Name (_SUN, 0x18) } Device (S181) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x180001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x18)) } Name (_SUN, 0x18) } Device (S182) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x180002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x18)) } Name (_SUN, 0x18) } Device (S183) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x180003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x18)) } Name (_SUN, 0x18) } Device (S184) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x180004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x18)) } Name (_SUN, 0x18) } Device (S185) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x180005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x18)) } Name (_SUN, 0x18) } Device (S186) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x180006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x18)) } Name (_SUN, 0x18) } Device (S187) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x180007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x18)) } Name (_SUN, 0x18) }
        Device (S190) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x190000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x19)) } Name (_SUN, 0x19) } Device (S191) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x190001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x19)) } Name (_SUN, 0x19) } Device (S192) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x190002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x19)) } Name (_SUN, 0x19) } Device (S193) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x190003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x19)) } Name (_SUN, 0x19) } Device (S194) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x190004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x19)) } Name (_SUN, 0x19) } Device (S195) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x190005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x19)) } Name (_SUN, 0x19) } Device (S196) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x190006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x19)) } Name (_SUN, 0x19) } Device (S197) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x190007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x19)) } Name (_SUN, 0x19) }
        Device (S1a0) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1a0000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1a)) } Name (_SUN, 0x1a) } Device (S1a1) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1a0001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1a)) } Name (_SUN, 0x1a) } Device (S1a2) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1a0002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1a)) } Name (_SUN, 0x1a) } Device (S1a3) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1a0003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1a)) } Name (_SUN, 0x1a) } Device (S1a4) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1a0004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1a)) } Name (_SUN, 0x1a) } Device (S1a5) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1a0005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1a)) } Name (_SUN, 0x1a) } Device (S1a6) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1a0006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1a)) } Name (_SUN, 0x1a) } Device (S1a7) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1a0007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1a)) } Name (_SUN, 0x1a) }
        Device (S1b0) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1b0000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1b)) } Name (_SUN, 0x1b) } Device (S1b1) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1b0001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1b)) } Name (_SUN, 0x1b) } Device (S1b2) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1b0002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1b)) } Name (_SUN, 0x1b) } Device (S1b3) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1b0003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1b)) } Name (_SUN, 0x1b) } Device (S1b4) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1b0004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1b)) } Name (_SUN, 0x1b) } Device (S1b5) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1b0005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1b)) } Name (_SUN, 0x1b) } Device (S1b6) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1b0006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1b)) } Name (_SUN, 0x1b) } Device (S1b7) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1b0007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1b)) } Name (_SUN, 0x1b) }
        Device (S1c0) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1c0000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1c)) } Name (_SUN, 0x1c) } Device (S1c1) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1c0001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1c)) } Name (_SUN, 0x1c) } Device (S1c2) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1c0002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1c)) } Name (_SUN, 0x1c) } Device (S1c3) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1c0003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1c)) } Name (_SUN, 0x1c) } Device (S1c4) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1c0004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1c)) } Name (_SUN, 0x1c) } Device (S1c5) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1c0005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1c)) } Name (_SUN, 0x1c) } Device (S1c6) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1c0006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1c)) } Name (_SUN, 0x1c) } Device (S1c7) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1c0007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1c)) } Name (_SUN, 0x1c) }
        Device (S1d0) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1d0000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1d)) } Name (_SUN, 0x1d) } Device (S1d1) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1d0001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1d)) } Name (_SUN, 0x1d) } Device (S1d2) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1d0002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1d)) } Name (_SUN, 0x1d) } Device (S1d3) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1d0003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1d)) } Name (_SUN, 0x1d) } Device (S1d4) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1d0004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1d)) } Name (_SUN, 0x1d) } Device (S1d5) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1d0005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1d)) } Name (_SUN, 0x1d) } Device (S1d6) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1d0006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1d)) } Name (_SUN, 0x1d) } Device (S1d7) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1d0007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1d)) } Name (_SUN, 0x1d) }
        Device (S1e0) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1e0000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1e)) } Name (_SUN, 0x1e) } Device (S1e1) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1e0001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1e)) } Name (_SUN, 0x1e) } Device (S1e2) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1e0002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1e)) } Name (_SUN, 0x1e) } Device (S1e3) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1e0003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1e)) } Name (_SUN, 0x1e) } Device (S1e4) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1e0004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1e)) } Name (_SUN, 0x1e) } Device (S1e5) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1e0005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1e)) } Name (_SUN, 0x1e) } Device (S1e6) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1e0006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1e)) } Name (_SUN, 0x1e) } Device (S1e7) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1e0007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1e)) } Name (_SUN, 0x1e) }
        Device (S1f0) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1f0000) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1f)) } Name (_SUN, 0x1f) } Device (S1f1) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1f0001) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1f)) } Name (_SUN, 0x1f) } Device (S1f2) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1f0002) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1f)) } Name (_SUN, 0x1f) } Device (S1f3) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1f0003) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1f)) } Name (_SUN, 0x1f) } Device (S1f4) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1f0004) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1f)) } Name (_SUN, 0x1f) } Device (S1f5) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1f0005) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1f)) } Name (_SUN, 0x1f) } Device (S1f6) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1f0006) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1f)) } Name (_SUN, 0x1f) } Device (S1f7) { 
/* ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword */
 Name (_ADR, 0x1f0007) 
/* ACPI_EXTRACT_METHOD_STRING aml_ej0_name */
 Method (_EJ0, 1) { Return(PCEJ(0x1f)) } Name (_SUN, 0x1f) }
        Method(PCNT, 2) {
            If (LEqual(Arg0, 0x01)) { Notify(S010, Arg1) }
            If (LEqual(Arg0, 0x02)) { Notify(S020, Arg1) }
            If (LEqual(Arg0, 0x03)) { Notify(S030, Arg1) }
            If (LEqual(Arg0, 0x04)) { Notify(S040, Arg1) }
            If (LEqual(Arg0, 0x05)) { Notify(S050, Arg1) }
            If (LEqual(Arg0, 0x06)) { Notify(S060, Arg1) }
            If (LEqual(Arg0, 0x07)) { Notify(S070, Arg1) }
            If (LEqual(Arg0, 0x08)) { Notify(S080, Arg1) }
            If (LEqual(Arg0, 0x09)) { Notify(S090, Arg1) }
            If (LEqual(Arg0, 0x0a)) { Notify(S0a0, Arg1) }
            If (LEqual(Arg0, 0x0b)) { Notify(S0b0, Arg1) }
            If (LEqual(Arg0, 0x0c)) { Notify(S0c0, Arg1) }
            If (LEqual(Arg0, 0x0d)) { Notify(S0d0, Arg1) }
            If (LEqual(Arg0, 0x0e)) { Notify(S0e0, Arg1) }
            If (LEqual(Arg0, 0x0f)) { Notify(S0f0, Arg1) }
            If (LEqual(Arg0, 0x10)) { Notify(S100, Arg1) }
            If (LEqual(Arg0, 0x11)) { Notify(S110, Arg1) }
            If (LEqual(Arg0, 0x12)) { Notify(S120, Arg1) }
            If (LEqual(Arg0, 0x13)) { Notify(S130, Arg1) }
            If (LEqual(Arg0, 0x14)) { Notify(S140, Arg1) }
            If (LEqual(Arg0, 0x15)) { Notify(S150, Arg1) }
            If (LEqual(Arg0, 0x16)) { Notify(S160, Arg1) }
            If (LEqual(Arg0, 0x17)) { Notify(S170, Arg1) }
            If (LEqual(Arg0, 0x18)) { Notify(S180, Arg1) }
            If (LEqual(Arg0, 0x19)) { Notify(S190, Arg1) }
            If (LEqual(Arg0, 0x1a)) { Notify(S1a0, Arg1) }
            If (LEqual(Arg0, 0x1b)) { Notify(S1b0, Arg1) }
            If (LEqual(Arg0, 0x1c)) { Notify(S1c0, Arg1) }
            If (LEqual(Arg0, 0x1d)) { Notify(S1d0, Arg1) }
            If (LEqual(Arg0, 0x1e)) { Notify(S1e0, Arg1) }
            If (LEqual(Arg0, 0x1f)) { Notify(S1f0, Arg1) }
        }
    }
}

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

* Re: [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
  2012-05-09  7:24                                   ` [Qemu-devel] " Amos Kong
@ 2012-05-09  8:46                                     ` Michael S. Tsirkin
  -1 siblings, 0 replies; 56+ messages in thread
From: Michael S. Tsirkin @ 2012-05-09  8:46 UTC (permalink / raw)
  To: Amos Kong
  Cc: linux-pci, seabios, qemu-devel, jbarnes, rjw, alex.williamson, kevin

On Wed, May 09, 2012 at 03:24:52PM +0800, Amos Kong wrote:
> Boot up a Linux VM with 8 pci block devices which
> are the 8 functions in one pci slot.
> | # qemu-kvm ...
> | -drive file=images/u0,if=none,id=drv0,format=qcow2,cache=none \
> | -device virtio-blk-pci,drive=drv0,id=v0,multifunction=on,addr=0x03.0 \
> | ....
> | -drive file=images/u7,if=none,id=drv7,format=qcow2,cache=none \
> | -device virtio-blk-pci,drive=drv7,id=v7,multifunction=on,addr=0x03.7 \
> 
> Check devices in guest.
> | vm)# ls /dev/vd*
> |    vda vdb vdc vde vdf vdg vdh
> | vm)# lspci |grep block
> | 00:03.0 SCSI storage controller: Red Hat, Inc Virtio block device
> |    ...
> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device
> |
> 
> Func1~7 still exist in guest after hot-removing the whole slot
> through qemu monitor.
> | vm)# lspci |grep block    (00:03.0 disappeared)
> | 00:03.1 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
> |    ...
> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
> | vm)# ls /dev/vd*          (vda disappeared)
> |    vdb vdc vde vdf vdg vdh
> | vm)# mkfs /dev/vdb
> |    INFO: task mkfs.ext2:1784 blocked for more than 120 seconds. (task hung)
> 
> 
> Currently only func0 is defined in ACPI DSDT table
> of seabios, and only hot-adding func0 would cause
> a ACPI event for notification. Other funcs except
> func0 wouldn't be registered in linux pci driver.
> (we can only found func0 in slot->funcs list of
> pci driver).

Isn't this what your patch 'PCI: Can continually add funcs after adding
func0' addresses?
If yes it's commit f382a086f3129edc152b8044b69ccc6682e637bb in 3.4.
So let's class the problematic behaviour guest bug and avoid workarounds
in bios?

-- 
MST

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

* Re: [Qemu-devel] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
@ 2012-05-09  8:46                                     ` Michael S. Tsirkin
  0 siblings, 0 replies; 56+ messages in thread
From: Michael S. Tsirkin @ 2012-05-09  8:46 UTC (permalink / raw)
  To: Amos Kong
  Cc: linux-pci, seabios, qemu-devel, jbarnes, rjw, alex.williamson, kevin

On Wed, May 09, 2012 at 03:24:52PM +0800, Amos Kong wrote:
> Boot up a Linux VM with 8 pci block devices which
> are the 8 functions in one pci slot.
> | # qemu-kvm ...
> | -drive file=images/u0,if=none,id=drv0,format=qcow2,cache=none \
> | -device virtio-blk-pci,drive=drv0,id=v0,multifunction=on,addr=0x03.0 \
> | ....
> | -drive file=images/u7,if=none,id=drv7,format=qcow2,cache=none \
> | -device virtio-blk-pci,drive=drv7,id=v7,multifunction=on,addr=0x03.7 \
> 
> Check devices in guest.
> | vm)# ls /dev/vd*
> |    vda vdb vdc vde vdf vdg vdh
> | vm)# lspci |grep block
> | 00:03.0 SCSI storage controller: Red Hat, Inc Virtio block device
> |    ...
> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device
> |
> 
> Func1~7 still exist in guest after hot-removing the whole slot
> through qemu monitor.
> | vm)# lspci |grep block    (00:03.0 disappeared)
> | 00:03.1 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
> |    ...
> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
> | vm)# ls /dev/vd*          (vda disappeared)
> |    vdb vdc vde vdf vdg vdh
> | vm)# mkfs /dev/vdb
> |    INFO: task mkfs.ext2:1784 blocked for more than 120 seconds. (task hung)
> 
> 
> Currently only func0 is defined in ACPI DSDT table
> of seabios, and only hot-adding func0 would cause
> a ACPI event for notification. Other funcs except
> func0 wouldn't be registered in linux pci driver.
> (we can only found func0 in slot->funcs list of
> pci driver).

Isn't this what your patch 'PCI: Can continually add funcs after adding
func0' addresses?
If yes it's commit f382a086f3129edc152b8044b69ccc6682e637bb in 3.4.
So let's class the problematic behaviour guest bug and avoid workarounds
in bios?

-- 
MST

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

* Re: [Qemu-devel] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
  2012-05-09  8:46                                     ` [Qemu-devel] " Michael S. Tsirkin
  (?)
@ 2012-05-09  8:59                                     ` Amos Kong
  2012-05-09  9:53                                       ` Amos Kong
  -1 siblings, 1 reply; 56+ messages in thread
From: Amos Kong @ 2012-05-09  8:59 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: linux-pci, seabios, qemu-devel, jbarnes, rjw, alex.williamson,
	kevin, liuj97

On 09/05/12 16:46, Michael S. Tsirkin wrote:
> On Wed, May 09, 2012 at 03:24:52PM +0800, Amos Kong wrote:
>> Boot up a Linux VM with 8 pci block devices which
>> are the 8 functions in one pci slot.
>> | # qemu-kvm ...
>> | -drive file=images/u0,if=none,id=drv0,format=qcow2,cache=none \
>> | -device virtio-blk-pci,drive=drv0,id=v0,multifunction=on,addr=0x03.0 \
>> | ....
>> | -drive file=images/u7,if=none,id=drv7,format=qcow2,cache=none \
>> | -device virtio-blk-pci,drive=drv7,id=v7,multifunction=on,addr=0x03.7 \
>>
>> Check devices in guest.
>> | vm)# ls /dev/vd*
>> |    vda vdb vdc vde vdf vdg vdh
>> | vm)# lspci |grep block
>> | 00:03.0 SCSI storage controller: Red Hat, Inc Virtio block device
>> |    ...
>> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device
>> |
>>
>> Func1~7 still exist in guest after hot-removing the whole slot
>> through qemu monitor.
>> | vm)# lspci |grep block    (00:03.0 disappeared)
>> | 00:03.1 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
>> |    ...
>> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
>> | vm)# ls /dev/vd*          (vda disappeared)
>> |    vdb vdc vde vdf vdg vdh
>> | vm)# mkfs /dev/vdb
>> |    INFO: task mkfs.ext2:1784 blocked for more than 120 seconds. (task hung)
>>
>>
>> Currently only func0 is defined in ACPI DSDT table
>> of seabios, and only hot-adding func0 would cause
>> a ACPI event for notification. Other funcs except
>> func0 wouldn't be registered in linux pci driver.
>> (we can only found func0 in slot->funcs list of
>> pci driver).
>
> Isn't this what your patch 'PCI: Can continually add funcs after adding
> func0' addresses?

No.

This patch fixes the problem that some funcs could not be removed.
the question is sending ACPI event for all functions (in same slot)
or only function 0.

I found all funcs are defined in ACPI DSDT table in microsoft's example:
http://www.microsoft.com/china/whdc/system/pnppwr/hotadd/hotplugpci.mspx#EUH 


Is it a useful attestation ?

> If yes it's commit f382a086f3129edc152b8044b69ccc6682e637bb in 3.4.

This commit fix the problem that some funcs could not be added.

> So let's class the problematic behaviour guest bug and avoid workarounds
> in bios?

-- 
			Amos.

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

* Re: [Qemu-devel] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
  2012-05-09  8:59                                     ` Amos Kong
@ 2012-05-09  9:53                                       ` Amos Kong
  0 siblings, 0 replies; 56+ messages in thread
From: Amos Kong @ 2012-05-09  9:53 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: linux-pci, seabios, qemu-devel, jbarnes, rjw, alex.williamson,
	kevin, liuj97

On 09/05/12 16:59, Amos Kong wrote:
> On 09/05/12 16:46, Michael S. Tsirkin wrote:
>> On Wed, May 09, 2012 at 03:24:52PM +0800, Amos Kong wrote:
>>> Boot up a Linux VM with 8 pci block devices which
>>> are the 8 functions in one pci slot.
>>> | # qemu-kvm ...
>>> | -drive file=images/u0,if=none,id=drv0,format=qcow2,cache=none \
>>> | -device virtio-blk-pci,drive=drv0,id=v0,multifunction=on,addr=0x03.0 \
>>> | ....
>>> | -drive file=images/u7,if=none,id=drv7,format=qcow2,cache=none \
>>> | -device virtio-blk-pci,drive=drv7,id=v7,multifunction=on,addr=0x03.7 \
>>>
>>> Check devices in guest.
>>> | vm)# ls /dev/vd*
>>> | vda vdb vdc vde vdf vdg vdh
>>> | vm)# lspci |grep block
>>> | 00:03.0 SCSI storage controller: Red Hat, Inc Virtio block device
>>> | ...
>>> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device
>>> |


Discussed with mst, NAK this patch by myself.

>>> Func1~7 still exist in guest after hot-removing the whole slot
>>> through qemu monitor.
>>> | vm)# lspci |grep block (00:03.0 disappeared)
>>> | 00:03.1 SCSI storage controller: Red Hat, Inc Virtio block device
>>> (rev ff)
>>> | ...
>>> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device


In this condition, ALL devices already removed, but the sysinfo
(/proc , /sys) of func1~7 are not cleaned, this is why we can
still see it in 'lspci' output.

And Windows hotplug works fine with current seabios. In thread [1],
Kenji Kaneshige and Bjorn Helgaas accept to fix this in linux pci driver.

So NAK this seabios patch by myself, I will update original pci patch in 
thread [1]
[PATCH] pci: clean all funcs when hot-removing multifunc device


[1] http://marc.info/?t=131597601700003&r=1&w=2

>>> (rev ff)
>>> | vm)# ls /dev/vd* (vda disappeared)
>>> | vdb vdc vde vdf vdg vdh
>>> | vm)# mkfs /dev/vdb
>>> | INFO: task mkfs.ext2:1784 blocked for more than 120 seconds. (task
>>> hung)
>>>
>>>
>>> Currently only func0 is defined in ACPI DSDT table
>>> of seabios, and only hot-adding func0 would cause
>>> a ACPI event for notification. Other funcs except
>>> func0 wouldn't be registered in linux pci driver.
>>> (we can only found func0 in slot->funcs list of
>>> pci driver).
>>
>> Isn't this what your patch 'PCI: Can continually add funcs after adding
>> func0' addresses?
>
> No.
>
> This patch fixes the problem that some funcs could not be removed.
> the question is sending ACPI event for all functions (in same slot)
> or only function 0.

One event is enough to remove all functions, the real problem is in
clean of linux pci driver.

> I found all funcs are defined in ACPI DSDT table in microsoft's example:
> http://www.microsoft.com/china/whdc/system/pnppwr/hotadd/hotplugpci.mspx#EUH
>
> Is it a useful attestation ?

-- 
			Amos.

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

* Re: [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
  2012-05-09  7:24                                   ` [Qemu-devel] " Amos Kong
@ 2012-05-09 13:47                                     ` Alex Williamson
  -1 siblings, 0 replies; 56+ messages in thread
From: Alex Williamson @ 2012-05-09 13:47 UTC (permalink / raw)
  To: Amos Kong; +Cc: mst, linux-pci, seabios, qemu-devel, jbarnes, rjw, kevin

On Wed, 2012-05-09 at 15:24 +0800, Amos Kong wrote:
> Boot up a Linux VM with 8 pci block devices which
> are the 8 functions in one pci slot.
> | # qemu-kvm ...
> | -drive file=images/u0,if=none,id=drv0,format=qcow2,cache=none \
> | -device virtio-blk-pci,drive=drv0,id=v0,multifunction=on,addr=0x03.0 \
> | ....
> | -drive file=images/u7,if=none,id=drv7,format=qcow2,cache=none \
> | -device virtio-blk-pci,drive=drv7,id=v7,multifunction=on,addr=0x03.7 \
> 
> Check devices in guest.
> | vm)# ls /dev/vd*
> |    vda vdb vdc vde vdf vdg vdh
> | vm)# lspci |grep block
> | 00:03.0 SCSI storage controller: Red Hat, Inc Virtio block device
> |    ...
> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device
> |
> 
> Func1~7 still exist in guest after hot-removing the whole slot
> through qemu monitor.
> | vm)# lspci |grep block    (00:03.0 disappeared)
> | 00:03.1 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
> |    ...
> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
> | vm)# ls /dev/vd*          (vda disappeared)
> |    vdb vdc vde vdf vdg vdh
> | vm)# mkfs /dev/vdb
> |    INFO: task mkfs.ext2:1784 blocked for more than 120 seconds. (task hung)
> 
> 
> Currently only func0 is defined in ACPI DSDT table
> of seabios, and only hot-adding func0 would cause
> a ACPI event for notification. Other funcs except
> func0 wouldn't be registered in linux pci driver.
> (we can only found func0 in slot->funcs list of
> pci driver).
> 
> When VM pci driver receives an ACPI event for
> hot-removing, it will only clean functions in
> slot->funcs list, the other funcs could not be
> cleaned.
> 
> This patch adds device per function in ACPI DSDT tables,
> then all funcs will be registered in slot->funcs list.
> It's coincident with microsoft's example:
> http://www.microsoft.com/china/whdc/system/pnppwr/hotadd/hotplugpci.mspx#EUH
> 
> Have tested with linux/winxp/win7, hot-adding/hot-remving,
> single/multiple function devices, they are all fine(all
> added devices can be removed).
> 
> This patch includes some bits mst wrote, thanks!
> ---
> old discussion: http://marc.info/?l=kvm&m=132428400917405&w=2
> 
> Signed-off-by: Amos Kong <akong@redhat.com>
> CC: Michael S. Tsirkin <mst@redhat.com>
> ---
>  src/ssdt-pcihp.dsl |   17 
>  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
>  2 files changed, 8781 insertions(+), 105 deletions(-)
> 
> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> index 4b435b8..2a3c326 100644
> --- a/src/ssdt-pcihp.dsl
> +++ b/src/ssdt-pcihp.dsl
> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>          // at runtime, if the slot is detected to not support hotplug.
>          // Extract the offset of the address dword and the
>          // _EJ0 name to allow this patching.
> -#define hotplug_slot(slot)                              \
> -        Device (S##slot) {                              \
> +#define hotplug_func(slot, fn)                          \
> +        Device (S##slot##fn) {                          \
>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> -           Name (_ADR, 0x##slot##0000)                  \

I would have guessed it to be sufficient to change _ADR to
0x##slot##ffff, does that not work?  Thanks,

Alex

> +           Name (_ADR, 0x##slot##000##fn)               \
>             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
>             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
>             Name (_SUN, 0x##slot)                        \
>          }
> +#define hotplug_slot(slot)     \
> +        hotplug_func(slot, 0)  \
> +        hotplug_func(slot, 1)  \
> +        hotplug_func(slot, 2)  \
> +        hotplug_func(slot, 3)  \
> +        hotplug_func(slot, 4)  \
> +        hotplug_func(slot, 5)  \
> +        hotplug_func(slot, 6)  \
> +        hotplug_func(slot, 7)
>  
>          hotplug_slot(01)
>          hotplug_slot(02)
> @@ -59,7 +68,7 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>          hotplug_slot(1f)
>  
>  #define gen_pci_hotplug(slot)   \
> -            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot, Arg1) }
> +            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot##0, Arg1) }
>  
>          Method(PCNT, 2) {
>              gen_pci_hotplug(01)



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

* Re: [Qemu-devel] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
@ 2012-05-09 13:47                                     ` Alex Williamson
  0 siblings, 0 replies; 56+ messages in thread
From: Alex Williamson @ 2012-05-09 13:47 UTC (permalink / raw)
  To: Amos Kong; +Cc: mst, linux-pci, seabios, qemu-devel, jbarnes, rjw, kevin

On Wed, 2012-05-09 at 15:24 +0800, Amos Kong wrote:
> Boot up a Linux VM with 8 pci block devices which
> are the 8 functions in one pci slot.
> | # qemu-kvm ...
> | -drive file=images/u0,if=none,id=drv0,format=qcow2,cache=none \
> | -device virtio-blk-pci,drive=drv0,id=v0,multifunction=on,addr=0x03.0 \
> | ....
> | -drive file=images/u7,if=none,id=drv7,format=qcow2,cache=none \
> | -device virtio-blk-pci,drive=drv7,id=v7,multifunction=on,addr=0x03.7 \
> 
> Check devices in guest.
> | vm)# ls /dev/vd*
> |    vda vdb vdc vde vdf vdg vdh
> | vm)# lspci |grep block
> | 00:03.0 SCSI storage controller: Red Hat, Inc Virtio block device
> |    ...
> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device
> |
> 
> Func1~7 still exist in guest after hot-removing the whole slot
> through qemu monitor.
> | vm)# lspci |grep block    (00:03.0 disappeared)
> | 00:03.1 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
> |    ...
> | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device (rev ff)
> | vm)# ls /dev/vd*          (vda disappeared)
> |    vdb vdc vde vdf vdg vdh
> | vm)# mkfs /dev/vdb
> |    INFO: task mkfs.ext2:1784 blocked for more than 120 seconds. (task hung)
> 
> 
> Currently only func0 is defined in ACPI DSDT table
> of seabios, and only hot-adding func0 would cause
> a ACPI event for notification. Other funcs except
> func0 wouldn't be registered in linux pci driver.
> (we can only found func0 in slot->funcs list of
> pci driver).
> 
> When VM pci driver receives an ACPI event for
> hot-removing, it will only clean functions in
> slot->funcs list, the other funcs could not be
> cleaned.
> 
> This patch adds device per function in ACPI DSDT tables,
> then all funcs will be registered in slot->funcs list.
> It's coincident with microsoft's example:
> http://www.microsoft.com/china/whdc/system/pnppwr/hotadd/hotplugpci.mspx#EUH
> 
> Have tested with linux/winxp/win7, hot-adding/hot-remving,
> single/multiple function devices, they are all fine(all
> added devices can be removed).
> 
> This patch includes some bits mst wrote, thanks!
> ---
> old discussion: http://marc.info/?l=kvm&m=132428400917405&w=2
> 
> Signed-off-by: Amos Kong <akong@redhat.com>
> CC: Michael S. Tsirkin <mst@redhat.com>
> ---
>  src/ssdt-pcihp.dsl |   17 
>  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
>  2 files changed, 8781 insertions(+), 105 deletions(-)
> 
> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> index 4b435b8..2a3c326 100644
> --- a/src/ssdt-pcihp.dsl
> +++ b/src/ssdt-pcihp.dsl
> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>          // at runtime, if the slot is detected to not support hotplug.
>          // Extract the offset of the address dword and the
>          // _EJ0 name to allow this patching.
> -#define hotplug_slot(slot)                              \
> -        Device (S##slot) {                              \
> +#define hotplug_func(slot, fn)                          \
> +        Device (S##slot##fn) {                          \
>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> -           Name (_ADR, 0x##slot##0000)                  \

I would have guessed it to be sufficient to change _ADR to
0x##slot##ffff, does that not work?  Thanks,

Alex

> +           Name (_ADR, 0x##slot##000##fn)               \
>             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
>             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
>             Name (_SUN, 0x##slot)                        \
>          }
> +#define hotplug_slot(slot)     \
> +        hotplug_func(slot, 0)  \
> +        hotplug_func(slot, 1)  \
> +        hotplug_func(slot, 2)  \
> +        hotplug_func(slot, 3)  \
> +        hotplug_func(slot, 4)  \
> +        hotplug_func(slot, 5)  \
> +        hotplug_func(slot, 6)  \
> +        hotplug_func(slot, 7)
>  
>          hotplug_slot(01)
>          hotplug_slot(02)
> @@ -59,7 +68,7 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>          hotplug_slot(1f)
>  
>  #define gen_pci_hotplug(slot)   \
> -            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot, Arg1) }
> +            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot##0, Arg1) }
>  
>          Method(PCNT, 2) {
>              gen_pci_hotplug(01)

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

* Re: [Qemu-devel] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
  2012-05-09 13:47                                     ` [Qemu-devel] " Alex Williamson
  (?)
@ 2012-05-09 16:08                                     ` Amos Kong
  -1 siblings, 0 replies; 56+ messages in thread
From: Amos Kong @ 2012-05-09 16:08 UTC (permalink / raw)
  To: Alex Williamson; +Cc: mst, linux-pci, seabios, qemu-devel, jbarnes, rjw, kevin

----- Original Message -----
> On Wed, 2012-05-09 at 15:24 +0800, Amos Kong wrote:
> > Boot up a Linux VM with 8 pci block devices which
> > are the 8 functions in one pci slot.
> > | # qemu-kvm ...
> > | -drive file=images/u0,if=none,id=drv0,format=qcow2,cache=none \
> > | -device
> > | virtio-blk-pci,drive=drv0,id=v0,multifunction=on,addr=0x03.0 \
> > | ....
> > | -drive file=images/u7,if=none,id=drv7,format=qcow2,cache=none \
> > | -device
> > | virtio-blk-pci,drive=drv7,id=v7,multifunction=on,addr=0x03.7 \
> > 
> > Check devices in guest.
> > | vm)# ls /dev/vd*
> > |    vda vdb vdc vde vdf vdg vdh
> > | vm)# lspci |grep block
> > | 00:03.0 SCSI storage controller: Red Hat, Inc Virtio block device
> > |    ...
> > | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device
> > |
> > 
> > Func1~7 still exist in guest after hot-removing the whole slot
> > through qemu monitor.
> > | vm)# lspci |grep block    (00:03.0 disappeared)
> > | 00:03.1 SCSI storage controller: Red Hat, Inc Virtio block device
> > | (rev ff)
> > |    ...
> > | 00:03.7 SCSI storage controller: Red Hat, Inc Virtio block device
> > | (rev ff)
> > | vm)# ls /dev/vd*          (vda disappeared)
> > |    vdb vdc vde vdf vdg vdh
> > | vm)# mkfs /dev/vdb
> > |    INFO: task mkfs.ext2:1784 blocked for more than 120 seconds.
> > |    (task hung)
> > 
> > 
> > Currently only func0 is defined in ACPI DSDT table
> > of seabios, and only hot-adding func0 would cause
> > a ACPI event for notification. Other funcs except
> > func0 wouldn't be registered in linux pci driver.
> > (we can only found func0 in slot->funcs list of
> > pci driver).
> > 
> > When VM pci driver receives an ACPI event for
> > hot-removing, it will only clean functions in
> > slot->funcs list, the other funcs could not be
> > cleaned.
> > 
> > This patch adds device per function in ACPI DSDT tables,
> > then all funcs will be registered in slot->funcs list.
> > It's coincident with microsoft's example:
> > http://www.microsoft.com/china/whdc/system/pnppwr/hotadd/hotplugpci.mspx#EUH
> > 
> > Have tested with linux/winxp/win7, hot-adding/hot-remving,
> > single/multiple function devices, they are all fine(all
> > added devices can be removed).
> > 
> > This patch includes some bits mst wrote, thanks!
> > ---
> > old discussion: http://marc.info/?l=kvm&m=132428400917405&w=2
> > 
> > Signed-off-by: Amos Kong <akong@redhat.com>
> > CC: Michael S. Tsirkin <mst@redhat.com>
> > ---
> >  src/ssdt-pcihp.dsl |   17
> >  src/ssdt-pcihp.hex | 8869
> >  +++++++++++++++++++++++++++++++++++++++++++++++++++-
> >  2 files changed, 8781 insertions(+), 105 deletions(-)
> > 
> > diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> > index 4b435b8..2a3c326 100644
> > --- a/src/ssdt-pcihp.dsl
> > +++ b/src/ssdt-pcihp.dsl
> > @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT",
> > 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
> >          // at runtime, if the slot is detected to not support
> >          hotplug.
> >          // Extract the offset of the address dword and the
> >          // _EJ0 name to allow this patching.
> > -#define hotplug_slot(slot)                              \
> > -        Device (S##slot) {                              \
> > +#define hotplug_func(slot, fn)                          \
> > +        Device (S##slot##fn) {                          \
> >             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> > -           Name (_ADR, 0x##slot##0000)                  \
> 
> I would have guessed it to be sufficient to change _ADR to
> 0x##slot##ffff, does that not work?


No, changing this to "0x##slot##ffff" doesn't resolve the bug.
(tested)

I'm trying to fix this problem in guest pci driver.
http://marc.info/?l=linux-pci&m=133657729118731&w=2


Thanks, Amos

> 
> > +           Name (_ADR, 0x##slot##000##fn)               \
> >             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
> >             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
> >             Name (_SUN, 0x##slot)                        \
> >          }
> > +#define hotplug_slot(slot)     \
> > +        hotplug_func(slot, 0)  \
> > +        hotplug_func(slot, 1)  \
> > +        hotplug_func(slot, 2)  \
> > +        hotplug_func(slot, 3)  \
> > +        hotplug_func(slot, 4)  \
> > +        hotplug_func(slot, 5)  \
> > +        hotplug_func(slot, 6)  \
> > +        hotplug_func(slot, 7)
> >  
> >          hotplug_slot(01)
> >          hotplug_slot(02)
> > @@ -59,7 +68,7 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01,
> > "BXPC", "BXSSDTPCIHP", 0x1)
> >          hotplug_slot(1f)
> >  
> >  #define gen_pci_hotplug(slot)   \
> > -            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot, Arg1) }
> > +            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot##0, Arg1)
> > }
> >  
> >          Method(PCNT, 2) {
> >              gen_pci_hotplug(01)
> 
> 
> 
> 

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

* Re: [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
  2012-05-09 13:47                                     ` [Qemu-devel] " Alex Williamson
@ 2012-05-10 16:50                                       ` Jiang Liu
  -1 siblings, 0 replies; 56+ messages in thread
From: Jiang Liu @ 2012-05-10 16:50 UTC (permalink / raw)
  To: Alex Williamson
  Cc: Amos Kong, mst, linux-pci, seabios, qemu-devel, jbarnes, rjw, kevin

On 05/09/2012 09:47 PM, Alex Williamson wrote:
>> ---
>>  src/ssdt-pcihp.dsl |   17 
>>  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
>>  2 files changed, 8781 insertions(+), 105 deletions(-)
>>
>> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
>> index 4b435b8..2a3c326 100644
>> --- a/src/ssdt-pcihp.dsl
>> +++ b/src/ssdt-pcihp.dsl
>> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>>          // at runtime, if the slot is detected to not support hotplug.
>>          // Extract the offset of the address dword and the
>>          // _EJ0 name to allow this patching.
>> -#define hotplug_slot(slot)                              \
>> -        Device (S##slot) {                              \
>> +#define hotplug_func(slot, fn)                          \
>> +        Device (S##slot##fn) {                          \
>>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
>> -           Name (_ADR, 0x##slot##0000)                  \
> 
> I would have guessed it to be sufficient to change _ADR to
> 0x##slot##ffff, does that not work?  Thanks,
> 
> Alex
Currently Linux acpiphp driver doesn't support that yet.

--gerry


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

* Re: [Qemu-devel] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
@ 2012-05-10 16:50                                       ` Jiang Liu
  0 siblings, 0 replies; 56+ messages in thread
From: Jiang Liu @ 2012-05-10 16:50 UTC (permalink / raw)
  To: Alex Williamson
  Cc: mst, linux-pci, seabios, qemu-devel, jbarnes, rjw, kevin, Amos Kong

On 05/09/2012 09:47 PM, Alex Williamson wrote:
>> ---
>>  src/ssdt-pcihp.dsl |   17 
>>  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
>>  2 files changed, 8781 insertions(+), 105 deletions(-)
>>
>> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
>> index 4b435b8..2a3c326 100644
>> --- a/src/ssdt-pcihp.dsl
>> +++ b/src/ssdt-pcihp.dsl
>> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>>          // at runtime, if the slot is detected to not support hotplug.
>>          // Extract the offset of the address dword and the
>>          // _EJ0 name to allow this patching.
>> -#define hotplug_slot(slot)                              \
>> -        Device (S##slot) {                              \
>> +#define hotplug_func(slot, fn)                          \
>> +        Device (S##slot##fn) {                          \
>>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
>> -           Name (_ADR, 0x##slot##0000)                  \
> 
> I would have guessed it to be sufficient to change _ADR to
> 0x##slot##ffff, does that not work?  Thanks,
> 
> Alex
Currently Linux acpiphp driver doesn't support that yet.

--gerry

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

* Re: [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
  2012-05-10 16:50                                       ` [Qemu-devel] " Jiang Liu
@ 2012-05-10 17:03                                         ` Michael S. Tsirkin
  -1 siblings, 0 replies; 56+ messages in thread
From: Michael S. Tsirkin @ 2012-05-10 17:03 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Alex Williamson, Amos Kong, linux-pci, seabios, qemu-devel,
	jbarnes, rjw, kevin

On Fri, May 11, 2012 at 12:50:37AM +0800, Jiang Liu wrote:
> On 05/09/2012 09:47 PM, Alex Williamson wrote:
> >> ---
> >>  src/ssdt-pcihp.dsl |   17 
> >>  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
> >>  2 files changed, 8781 insertions(+), 105 deletions(-)
> >>
> >> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> >> index 4b435b8..2a3c326 100644
> >> --- a/src/ssdt-pcihp.dsl
> >> +++ b/src/ssdt-pcihp.dsl
> >> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
> >>          // at runtime, if the slot is detected to not support hotplug.
> >>          // Extract the offset of the address dword and the
> >>          // _EJ0 name to allow this patching.
> >> -#define hotplug_slot(slot)                              \
> >> -        Device (S##slot) {                              \
> >> +#define hotplug_func(slot, fn)                          \
> >> +        Device (S##slot##fn) {                          \
> >>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> >> -           Name (_ADR, 0x##slot##0000)                  \
> > 
> > I would have guessed it to be sufficient to change _ADR to
> > 0x##slot##ffff, does that not work?  Thanks,
> > 
> > Alex
> Currently Linux acpiphp driver doesn't support that yet.
> 
> --gerry

If memory serves neither does windows.


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

* Re: [Qemu-devel] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
@ 2012-05-10 17:03                                         ` Michael S. Tsirkin
  0 siblings, 0 replies; 56+ messages in thread
From: Michael S. Tsirkin @ 2012-05-10 17:03 UTC (permalink / raw)
  To: Jiang Liu
  Cc: linux-pci, seabios, qemu-devel, jbarnes, rjw, Alex Williamson,
	kevin, Amos Kong

On Fri, May 11, 2012 at 12:50:37AM +0800, Jiang Liu wrote:
> On 05/09/2012 09:47 PM, Alex Williamson wrote:
> >> ---
> >>  src/ssdt-pcihp.dsl |   17 
> >>  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
> >>  2 files changed, 8781 insertions(+), 105 deletions(-)
> >>
> >> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> >> index 4b435b8..2a3c326 100644
> >> --- a/src/ssdt-pcihp.dsl
> >> +++ b/src/ssdt-pcihp.dsl
> >> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
> >>          // at runtime, if the slot is detected to not support hotplug.
> >>          // Extract the offset of the address dword and the
> >>          // _EJ0 name to allow this patching.
> >> -#define hotplug_slot(slot)                              \
> >> -        Device (S##slot) {                              \
> >> +#define hotplug_func(slot, fn)                          \
> >> +        Device (S##slot##fn) {                          \
> >>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> >> -           Name (_ADR, 0x##slot##0000)                  \
> > 
> > I would have guessed it to be sufficient to change _ADR to
> > 0x##slot##ffff, does that not work?  Thanks,
> > 
> > Alex
> Currently Linux acpiphp driver doesn't support that yet.
> 
> --gerry

If memory serves neither does windows.

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

* Re: [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
  2012-05-09  7:24                                   ` [Qemu-devel] " Amos Kong
@ 2012-05-10 17:17                                     ` Jiang Liu
  -1 siblings, 0 replies; 56+ messages in thread
From: Jiang Liu @ 2012-05-10 17:17 UTC (permalink / raw)
  To: Amos Kong
  Cc: mst, linux-pci, seabios, qemu-devel, jbarnes, rjw,
	alex.williamson, kevin

On 05/09/2012 03:24 PM, Amos Kong wrote:

> ---
>  src/ssdt-pcihp.dsl |   17 
>  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
>  2 files changed, 8781 insertions(+), 105 deletions(-)
> 
> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> index 4b435b8..2a3c326 100644
> --- a/src/ssdt-pcihp.dsl
> +++ b/src/ssdt-pcihp.dsl
> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>          // at runtime, if the slot is detected to not support hotplug.
>          // Extract the offset of the address dword and the
>          // _EJ0 name to allow this patching.
> -#define hotplug_slot(slot)                              \
> -        Device (S##slot) {                              \
> +#define hotplug_func(slot, fn)                          \
> +        Device (S##slot##fn) {                          \
>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> -           Name (_ADR, 0x##slot##0000)                  \
> +           Name (_ADR, 0x##slot##000##fn)               \
>             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
>             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
>             Name (_SUN, 0x##slot)                        \
>          }
It would be perfect if the Device object could also support _PS0 and _STA
methods. Could we re-add the slot back after hot-removing it from the guest
OS with this ACPI implementation? Say execute following scripts from guest OS.
echo 0 > /sys/bus/pci/slot/xx/power
echo 1 > /sys/bus/pci/slot/xx/power

> +#define hotplug_slot(slot)     \
> +        hotplug_func(slot, 0)  \
> +        hotplug_func(slot, 1)  \
> +        hotplug_func(slot, 2)  \
> +        hotplug_func(slot, 3)  \
> +        hotplug_func(slot, 4)  \
> +        hotplug_func(slot, 5)  \
> +        hotplug_func(slot, 6)  \
> +        hotplug_func(slot, 7)
>  
>          hotplug_slot(01)
>          hotplug_slot(02)
> @@ -59,7 +68,7 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>          hotplug_slot(1f)
>  
>  #define gen_pci_hotplug(slot)   \
> -            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot, Arg1) }
> +            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot##0, Arg1) }
>  
>          Method(PCNT, 2) {
>              gen_pci_hotplug(01)

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

* Re: [Qemu-devel] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
@ 2012-05-10 17:17                                     ` Jiang Liu
  0 siblings, 0 replies; 56+ messages in thread
From: Jiang Liu @ 2012-05-10 17:17 UTC (permalink / raw)
  To: Amos Kong
  Cc: mst, linux-pci, seabios, qemu-devel, jbarnes, rjw,
	alex.williamson, kevin

On 05/09/2012 03:24 PM, Amos Kong wrote:

> ---
>  src/ssdt-pcihp.dsl |   17 
>  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
>  2 files changed, 8781 insertions(+), 105 deletions(-)
> 
> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> index 4b435b8..2a3c326 100644
> --- a/src/ssdt-pcihp.dsl
> +++ b/src/ssdt-pcihp.dsl
> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>          // at runtime, if the slot is detected to not support hotplug.
>          // Extract the offset of the address dword and the
>          // _EJ0 name to allow this patching.
> -#define hotplug_slot(slot)                              \
> -        Device (S##slot) {                              \
> +#define hotplug_func(slot, fn)                          \
> +        Device (S##slot##fn) {                          \
>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> -           Name (_ADR, 0x##slot##0000)                  \
> +           Name (_ADR, 0x##slot##000##fn)               \
>             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
>             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
>             Name (_SUN, 0x##slot)                        \
>          }
It would be perfect if the Device object could also support _PS0 and _STA
methods. Could we re-add the slot back after hot-removing it from the guest
OS with this ACPI implementation? Say execute following scripts from guest OS.
echo 0 > /sys/bus/pci/slot/xx/power
echo 1 > /sys/bus/pci/slot/xx/power

> +#define hotplug_slot(slot)     \
> +        hotplug_func(slot, 0)  \
> +        hotplug_func(slot, 1)  \
> +        hotplug_func(slot, 2)  \
> +        hotplug_func(slot, 3)  \
> +        hotplug_func(slot, 4)  \
> +        hotplug_func(slot, 5)  \
> +        hotplug_func(slot, 6)  \
> +        hotplug_func(slot, 7)
>  
>          hotplug_slot(01)
>          hotplug_slot(02)
> @@ -59,7 +68,7 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>          hotplug_slot(1f)
>  
>  #define gen_pci_hotplug(slot)   \
> -            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot, Arg1) }
> +            If (LEqual(Arg0, 0x##slot)) { Notify(S##slot##0, Arg1) }
>  
>          Method(PCNT, 2) {
>              gen_pci_hotplug(01)

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

* Re: [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
  2012-05-10 17:17                                     ` [Qemu-devel] " Jiang Liu
@ 2012-05-10 17:42                                       ` Michael S. Tsirkin
  -1 siblings, 0 replies; 56+ messages in thread
From: Michael S. Tsirkin @ 2012-05-10 17:42 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Amos Kong, linux-pci, seabios, qemu-devel, jbarnes, rjw,
	alex.williamson, kevin

On Fri, May 11, 2012 at 01:17:38AM +0800, Jiang Liu wrote:
> On 05/09/2012 03:24 PM, Amos Kong wrote:
> 
> > ---
> >  src/ssdt-pcihp.dsl |   17 
> >  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
> >  2 files changed, 8781 insertions(+), 105 deletions(-)
> > 
> > diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> > index 4b435b8..2a3c326 100644
> > --- a/src/ssdt-pcihp.dsl
> > +++ b/src/ssdt-pcihp.dsl
> > @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
> >          // at runtime, if the slot is detected to not support hotplug.
> >          // Extract the offset of the address dword and the
> >          // _EJ0 name to allow this patching.
> > -#define hotplug_slot(slot)                              \
> > -        Device (S##slot) {                              \
> > +#define hotplug_func(slot, fn)                          \
> > +        Device (S##slot##fn) {                          \
> >             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> > -           Name (_ADR, 0x##slot##0000)                  \
> > +           Name (_ADR, 0x##slot##000##fn)               \
> >             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
> >             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
> >             Name (_SUN, 0x##slot)                        \
> >          }
> It would be perfect if the Device object could also support _PS0 and _STA
> methods.

It needs qemu support, and some backward compatibility hack.
Why?

> Could we re-add the slot back after hot-removing it from the guest
> OS with this ACPI implementation? Say execute following scripts from guest OS.
> echo 0 > /sys/bus/pci/slot/xx/power
> echo 1 > /sys/bus/pci/slot/xx/power

No because qemu removes device after eject.
Do you have a need for this functionality? What is it?


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

* Re: [Qemu-devel] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
@ 2012-05-10 17:42                                       ` Michael S. Tsirkin
  0 siblings, 0 replies; 56+ messages in thread
From: Michael S. Tsirkin @ 2012-05-10 17:42 UTC (permalink / raw)
  To: Jiang Liu
  Cc: linux-pci, seabios, qemu-devel, jbarnes, rjw, alex.williamson,
	kevin, Amos Kong

On Fri, May 11, 2012 at 01:17:38AM +0800, Jiang Liu wrote:
> On 05/09/2012 03:24 PM, Amos Kong wrote:
> 
> > ---
> >  src/ssdt-pcihp.dsl |   17 
> >  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
> >  2 files changed, 8781 insertions(+), 105 deletions(-)
> > 
> > diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> > index 4b435b8..2a3c326 100644
> > --- a/src/ssdt-pcihp.dsl
> > +++ b/src/ssdt-pcihp.dsl
> > @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
> >          // at runtime, if the slot is detected to not support hotplug.
> >          // Extract the offset of the address dword and the
> >          // _EJ0 name to allow this patching.
> > -#define hotplug_slot(slot)                              \
> > -        Device (S##slot) {                              \
> > +#define hotplug_func(slot, fn)                          \
> > +        Device (S##slot##fn) {                          \
> >             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> > -           Name (_ADR, 0x##slot##0000)                  \
> > +           Name (_ADR, 0x##slot##000##fn)               \
> >             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
> >             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
> >             Name (_SUN, 0x##slot)                        \
> >          }
> It would be perfect if the Device object could also support _PS0 and _STA
> methods.

It needs qemu support, and some backward compatibility hack.
Why?

> Could we re-add the slot back after hot-removing it from the guest
> OS with this ACPI implementation? Say execute following scripts from guest OS.
> echo 0 > /sys/bus/pci/slot/xx/power
> echo 1 > /sys/bus/pci/slot/xx/power

No because qemu removes device after eject.
Do you have a need for this functionality? What is it?

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

* Re: [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
  2012-05-10 17:42                                       ` [Qemu-devel] " Michael S. Tsirkin
@ 2012-05-10 17:46                                         ` Jiang Liu
  -1 siblings, 0 replies; 56+ messages in thread
From: Jiang Liu @ 2012-05-10 17:46 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Amos Kong, linux-pci, seabios, qemu-devel, jbarnes, rjw,
	alex.williamson, kevin

On 05/11/2012 01:42 AM, Michael S. Tsirkin wrote:
> On Fri, May 11, 2012 at 01:17:38AM +0800, Jiang Liu wrote:
>> On 05/09/2012 03:24 PM, Amos Kong wrote:
>>
>>> ---
>>>  src/ssdt-pcihp.dsl |   17 
>>>  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
>>>  2 files changed, 8781 insertions(+), 105 deletions(-)
>>>
>>> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
>>> index 4b435b8..2a3c326 100644
>>> --- a/src/ssdt-pcihp.dsl
>>> +++ b/src/ssdt-pcihp.dsl
>>> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>>>          // at runtime, if the slot is detected to not support hotplug.
>>>          // Extract the offset of the address dword and the
>>>          // _EJ0 name to allow this patching.
>>> -#define hotplug_slot(slot)                              \
>>> -        Device (S##slot) {                              \
>>> +#define hotplug_func(slot, fn)                          \
>>> +        Device (S##slot##fn) {                          \
>>>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
>>> -           Name (_ADR, 0x##slot##0000)                  \
>>> +           Name (_ADR, 0x##slot##000##fn)               \
>>>             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
>>>             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
>>>             Name (_SUN, 0x##slot)                        \
>>>          }
>> It would be perfect if the Device object could also support _PS0 and _STA
>> methods.
> 
> It needs qemu support, and some backward compatibility hack.
> Why?
> 
>> Could we re-add the slot back after hot-removing it from the guest
>> OS with this ACPI implementation? Say execute following scripts from guest OS.
>> echo 0 > /sys/bus/pci/slot/xx/power
>> echo 1 > /sys/bus/pci/slot/xx/power
> 
> No because qemu removes device after eject.
> Do you have a need for this functionality? What is it?

I'm not familiar with qemu:(
On native OS, admin could trigger PCI device hotplug operations through
/sys/bus/pci/slot/xx/power. Not sure whether that's needed for guest OS too. 



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

* Re: [Qemu-devel] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
@ 2012-05-10 17:46                                         ` Jiang Liu
  0 siblings, 0 replies; 56+ messages in thread
From: Jiang Liu @ 2012-05-10 17:46 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: linux-pci, seabios, qemu-devel, jbarnes, rjw, alex.williamson,
	kevin, Amos Kong

On 05/11/2012 01:42 AM, Michael S. Tsirkin wrote:
> On Fri, May 11, 2012 at 01:17:38AM +0800, Jiang Liu wrote:
>> On 05/09/2012 03:24 PM, Amos Kong wrote:
>>
>>> ---
>>>  src/ssdt-pcihp.dsl |   17 
>>>  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
>>>  2 files changed, 8781 insertions(+), 105 deletions(-)
>>>
>>> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
>>> index 4b435b8..2a3c326 100644
>>> --- a/src/ssdt-pcihp.dsl
>>> +++ b/src/ssdt-pcihp.dsl
>>> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
>>>          // at runtime, if the slot is detected to not support hotplug.
>>>          // Extract the offset of the address dword and the
>>>          // _EJ0 name to allow this patching.
>>> -#define hotplug_slot(slot)                              \
>>> -        Device (S##slot) {                              \
>>> +#define hotplug_func(slot, fn)                          \
>>> +        Device (S##slot##fn) {                          \
>>>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
>>> -           Name (_ADR, 0x##slot##0000)                  \
>>> +           Name (_ADR, 0x##slot##000##fn)               \
>>>             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
>>>             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
>>>             Name (_SUN, 0x##slot)                        \
>>>          }
>> It would be perfect if the Device object could also support _PS0 and _STA
>> methods.
> 
> It needs qemu support, and some backward compatibility hack.
> Why?
> 
>> Could we re-add the slot back after hot-removing it from the guest
>> OS with this ACPI implementation? Say execute following scripts from guest OS.
>> echo 0 > /sys/bus/pci/slot/xx/power
>> echo 1 > /sys/bus/pci/slot/xx/power
> 
> No because qemu removes device after eject.
> Do you have a need for this functionality? What is it?

I'm not familiar with qemu:(
On native OS, admin could trigger PCI device hotplug operations through
/sys/bus/pci/slot/xx/power. Not sure whether that's needed for guest OS too. 

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

* Re: [Qemu-devel] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
  2012-05-10 17:46                                         ` [Qemu-devel] " Jiang Liu
@ 2012-05-10 23:40                                           ` Amos Kong
  -1 siblings, 0 replies; 56+ messages in thread
From: Amos Kong @ 2012-05-10 23:40 UTC (permalink / raw)
  To: Jiang Liu
  Cc: linux-pci, seabios, qemu-devel, jbarnes, rjw, alex williamson,
	kevin, Michael S. Tsirkin

----- Original Message -----
> On 05/11/2012 01:42 AM, Michael S. Tsirkin wrote:
> > On Fri, May 11, 2012 at 01:17:38AM +0800, Jiang Liu wrote:
> >> On 05/09/2012 03:24 PM, Amos Kong wrote:
> >>
> >>> ---
> >>>  src/ssdt-pcihp.dsl |   17
> >>>  src/ssdt-pcihp.hex | 8869
> >>>  +++++++++++++++++++++++++++++++++++++++++++++++++++-
> >>>  2 files changed, 8781 insertions(+), 105 deletions(-)
> >>>
> >>> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> >>> index 4b435b8..2a3c326 100644
> >>> --- a/src/ssdt-pcihp.dsl
> >>> +++ b/src/ssdt-pcihp.dsl
> >>> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT",
> >>> 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
> >>>          // at runtime, if the slot is detected to not support
> >>>          hotplug.
> >>>          // Extract the offset of the address dword and the
> >>>          // _EJ0 name to allow this patching.
> >>> -#define hotplug_slot(slot)                              \
> >>> -        Device (S##slot) {                              \
> >>> +#define hotplug_func(slot, fn)                          \
> >>> +        Device (S##slot##fn) {                          \
> >>>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> >>> -           Name (_ADR, 0x##slot##0000)                  \
> >>> +           Name (_ADR, 0x##slot##000##fn)               \
> >>>             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
> >>>             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
> >>>             Name (_SUN, 0x##slot)                        \
> >>>          }
> >> It would be perfect if the Device object could also support _PS0
> >> and _STA
> >> methods.
> > 
> > It needs qemu support, and some backward compatibility hack.
> > Why?
> > 
> >> Could we re-add the slot back after hot-removing it from the guest
> >> OS with this ACPI implementation? Say execute following scripts
> >> from guest OS.
> >> echo 0 > /sys/bus/pci/slot/xx/power

I tested with qemu VM, device can be hot-removed by ^^^^
block also could not be found by (qemu) # info block
(#virt dev was removed from virt slot)

> >> echo 1 > /sys/bus/pci/slot/xx/power

so we have to add the device to qemu first
(qemu) __com.redhat_drive_add id=drv50,file=/tmp/resize0.qcow2
(qemu) device_add virtio-blk-pci,id=ddev50,drive=drv50,addr=0x5.0,multifunction=on

disk is back (no need exec :echo 1 > /sys/bus/pci/slot/xx/power in guest)


> > 
> > No because qemu removes device after eject.
> > Do you have a need for this functionality? What is it?
> 
> I'm not familiar with qemu:(
> On native OS, admin could trigger PCI device hotplug operations
> through
> /sys/bus/pci/slot/xx/power. Not sure whether that's needed for guest
> OS too.

In physical, we have two kinds of hotplug, one is hot-unplug dev from slot,
another is just 'disable' it in guest os (dev also plugs in slot)

Hotplug dev by /sys/bus/pci/slot/xx/power -> it should be 2nd condition.
For current QEMU guest, only 1st condition works, and it's enough.


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

* Re: [Qemu-devel] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
@ 2012-05-10 23:40                                           ` Amos Kong
  0 siblings, 0 replies; 56+ messages in thread
From: Amos Kong @ 2012-05-10 23:40 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Michael S. Tsirkin, linux-pci, seabios, qemu-devel, jbarnes, rjw,
	alex williamson, kevin

----- Original Message -----
> On 05/11/2012 01:42 AM, Michael S. Tsirkin wrote:
> > On Fri, May 11, 2012 at 01:17:38AM +0800, Jiang Liu wrote:
> >> On 05/09/2012 03:24 PM, Amos Kong wrote:
> >>
> >>> ---
> >>>  src/ssdt-pcihp.dsl |   17
> >>>  src/ssdt-pcihp.hex | 8869
> >>>  +++++++++++++++++++++++++++++++++++++++++++++++++++-
> >>>  2 files changed, 8781 insertions(+), 105 deletions(-)
> >>>
> >>> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> >>> index 4b435b8..2a3c326 100644
> >>> --- a/src/ssdt-pcihp.dsl
> >>> +++ b/src/ssdt-pcihp.dsl
> >>> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT",
> >>> 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
> >>>          // at runtime, if the slot is detected to not support
> >>>          hotplug.
> >>>          // Extract the offset of the address dword and the
> >>>          // _EJ0 name to allow this patching.
> >>> -#define hotplug_slot(slot)                              \
> >>> -        Device (S##slot) {                              \
> >>> +#define hotplug_func(slot, fn)                          \
> >>> +        Device (S##slot##fn) {                          \
> >>>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> >>> -           Name (_ADR, 0x##slot##0000)                  \
> >>> +           Name (_ADR, 0x##slot##000##fn)               \
> >>>             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
> >>>             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
> >>>             Name (_SUN, 0x##slot)                        \
> >>>          }
> >> It would be perfect if the Device object could also support _PS0
> >> and _STA
> >> methods.
> > 
> > It needs qemu support, and some backward compatibility hack.
> > Why?
> > 
> >> Could we re-add the slot back after hot-removing it from the guest
> >> OS with this ACPI implementation? Say execute following scripts
> >> from guest OS.
> >> echo 0 > /sys/bus/pci/slot/xx/power

I tested with qemu VM, device can be hot-removed by ^^^^
block also could not be found by (qemu) # info block
(#virt dev was removed from virt slot)

> >> echo 1 > /sys/bus/pci/slot/xx/power

so we have to add the device to qemu first
(qemu) __com.redhat_drive_add id=drv50,file=/tmp/resize0.qcow2
(qemu) device_add virtio-blk-pci,id=ddev50,drive=drv50,addr=0x5.0,multifunction=on

disk is back (no need exec :echo 1 > /sys/bus/pci/slot/xx/power in guest)


> > 
> > No because qemu removes device after eject.
> > Do you have a need for this functionality? What is it?
> 
> I'm not familiar with qemu:(
> On native OS, admin could trigger PCI device hotplug operations
> through
> /sys/bus/pci/slot/xx/power. Not sure whether that's needed for guest
> OS too.

In physical, we have two kinds of hotplug, one is hot-unplug dev from slot,
another is just 'disable' it in guest os (dev also plugs in slot)

Hotplug dev by /sys/bus/pci/slot/xx/power -> it should be 2nd condition.
For current QEMU guest, only 1st condition works, and it's enough.

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

* Re: [SeaBIOS] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
  2012-05-10 17:46                                         ` [Qemu-devel] " Jiang Liu
@ 2012-05-11 10:14                                           ` Gleb Natapov
  -1 siblings, 0 replies; 56+ messages in thread
From: Gleb Natapov @ 2012-05-11 10:14 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Michael S. Tsirkin, linux-pci, seabios, qemu-devel, jbarnes, rjw,
	alex.williamson, Amos Kong

On Fri, May 11, 2012 at 01:46:17AM +0800, Jiang Liu wrote:
> On 05/11/2012 01:42 AM, Michael S. Tsirkin wrote:
> > On Fri, May 11, 2012 at 01:17:38AM +0800, Jiang Liu wrote:
> >> On 05/09/2012 03:24 PM, Amos Kong wrote:
> >>
> >>> ---
> >>>  src/ssdt-pcihp.dsl |   17 
> >>>  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
> >>>  2 files changed, 8781 insertions(+), 105 deletions(-)
> >>>
> >>> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> >>> index 4b435b8..2a3c326 100644
> >>> --- a/src/ssdt-pcihp.dsl
> >>> +++ b/src/ssdt-pcihp.dsl
> >>> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
> >>>          // at runtime, if the slot is detected to not support hotplug.
> >>>          // Extract the offset of the address dword and the
> >>>          // _EJ0 name to allow this patching.
> >>> -#define hotplug_slot(slot)                              \
> >>> -        Device (S##slot) {                              \
> >>> +#define hotplug_func(slot, fn)                          \
> >>> +        Device (S##slot##fn) {                          \
> >>>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> >>> -           Name (_ADR, 0x##slot##0000)                  \
> >>> +           Name (_ADR, 0x##slot##000##fn)               \
> >>>             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
> >>>             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
> >>>             Name (_SUN, 0x##slot)                        \
> >>>          }
> >> It would be perfect if the Device object could also support _PS0 and _STA
> >> methods.
> > 
> > It needs qemu support, and some backward compatibility hack.
> > Why?
> > 
> >> Could we re-add the slot back after hot-removing it from the guest
> >> OS with this ACPI implementation? Say execute following scripts from guest OS.
> >> echo 0 > /sys/bus/pci/slot/xx/power
> >> echo 1 > /sys/bus/pci/slot/xx/power
> > 
> > No because qemu removes device after eject.
> > Do you have a need for this functionality? What is it?
> 
> I'm not familiar with qemu:(
> On native OS, admin could trigger PCI device hotplug operations through
> /sys/bus/pci/slot/xx/power. Not sure whether that's needed for guest OS too. 
> 
Why is it needed on physical HW? May be it is needed in a VM for the
same reason?

--
			Gleb.

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

* Re: [Qemu-devel] [SeaBIOS] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
@ 2012-05-11 10:14                                           ` Gleb Natapov
  0 siblings, 0 replies; 56+ messages in thread
From: Gleb Natapov @ 2012-05-11 10:14 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Michael S. Tsirkin, linux-pci, seabios, qemu-devel, jbarnes, rjw,
	alex.williamson, Amos Kong

On Fri, May 11, 2012 at 01:46:17AM +0800, Jiang Liu wrote:
> On 05/11/2012 01:42 AM, Michael S. Tsirkin wrote:
> > On Fri, May 11, 2012 at 01:17:38AM +0800, Jiang Liu wrote:
> >> On 05/09/2012 03:24 PM, Amos Kong wrote:
> >>
> >>> ---
> >>>  src/ssdt-pcihp.dsl |   17 
> >>>  src/ssdt-pcihp.hex | 8869 +++++++++++++++++++++++++++++++++++++++++++++++++++-
> >>>  2 files changed, 8781 insertions(+), 105 deletions(-)
> >>>
> >>> diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl
> >>> index 4b435b8..2a3c326 100644
> >>> --- a/src/ssdt-pcihp.dsl
> >>> +++ b/src/ssdt-pcihp.dsl
> >>> @@ -17,14 +17,23 @@ DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1)
> >>>          // at runtime, if the slot is detected to not support hotplug.
> >>>          // Extract the offset of the address dword and the
> >>>          // _EJ0 name to allow this patching.
> >>> -#define hotplug_slot(slot)                              \
> >>> -        Device (S##slot) {                              \
> >>> +#define hotplug_func(slot, fn)                          \
> >>> +        Device (S##slot##fn) {                          \
> >>>             ACPI_EXTRACT_NAME_DWORD_CONST aml_adr_dword  \
> >>> -           Name (_ADR, 0x##slot##0000)                  \
> >>> +           Name (_ADR, 0x##slot##000##fn)               \
> >>>             ACPI_EXTRACT_METHOD_STRING aml_ej0_name      \
> >>>             Method (_EJ0, 1) { Return(PCEJ(0x##slot)) }  \
> >>>             Name (_SUN, 0x##slot)                        \
> >>>          }
> >> It would be perfect if the Device object could also support _PS0 and _STA
> >> methods.
> > 
> > It needs qemu support, and some backward compatibility hack.
> > Why?
> > 
> >> Could we re-add the slot back after hot-removing it from the guest
> >> OS with this ACPI implementation? Say execute following scripts from guest OS.
> >> echo 0 > /sys/bus/pci/slot/xx/power
> >> echo 1 > /sys/bus/pci/slot/xx/power
> > 
> > No because qemu removes device after eject.
> > Do you have a need for this functionality? What is it?
> 
> I'm not familiar with qemu:(
> On native OS, admin could trigger PCI device hotplug operations through
> /sys/bus/pci/slot/xx/power. Not sure whether that's needed for guest OS too. 
> 
Why is it needed on physical HW? May be it is needed in a VM for the
same reason?

--
			Gleb.

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

* Re: [SeaBIOS] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
  2012-05-11 10:14                                           ` [Qemu-devel] " Gleb Natapov
@ 2012-05-11 15:44                                             ` Jiang Liu
  -1 siblings, 0 replies; 56+ messages in thread
From: Jiang Liu @ 2012-05-11 15:44 UTC (permalink / raw)
  To: Gleb Natapov
  Cc: Michael S. Tsirkin, linux-pci, seabios, qemu-devel, jbarnes, rjw,
	alex.williamson, Amos Kong

On 05/11/2012 06:14 PM, Gleb Natapov wrote:
>> I'm not familiar with qemu:(
>> On native OS, admin could trigger PCI device hotplug operations through
>> /sys/bus/pci/slot/xx/power. Not sure whether that's needed for guest OS too. 
>>
> Why is it needed on physical HW? May be it is needed in a VM for the
> same reason?
As Amos has mentioned, it's used power on/off a PCI device instead of physical
hotplug. Not sure whether it's needed in guest OS.
--gerry

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

* Re: [Qemu-devel] [SeaBIOS] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
@ 2012-05-11 15:44                                             ` Jiang Liu
  0 siblings, 0 replies; 56+ messages in thread
From: Jiang Liu @ 2012-05-11 15:44 UTC (permalink / raw)
  To: Gleb Natapov
  Cc: Michael S. Tsirkin, linux-pci, seabios, qemu-devel, jbarnes, rjw,
	alex.williamson, Amos Kong

On 05/11/2012 06:14 PM, Gleb Natapov wrote:
>> I'm not familiar with qemu:(
>> On native OS, admin could trigger PCI device hotplug operations through
>> /sys/bus/pci/slot/xx/power. Not sure whether that's needed for guest OS too. 
>>
> Why is it needed on physical HW? May be it is needed in a VM for the
> same reason?
As Amos has mentioned, it's used power on/off a PCI device instead of physical
hotplug. Not sure whether it's needed in guest OS.
--gerry

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

* Re: [SeaBIOS] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
  2012-05-11 15:44                                             ` [Qemu-devel] " Jiang Liu
@ 2012-05-11 17:04                                               ` Gleb Natapov
  -1 siblings, 0 replies; 56+ messages in thread
From: Gleb Natapov @ 2012-05-11 17:04 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Michael S. Tsirkin, linux-pci, seabios, qemu-devel, jbarnes, rjw,
	alex.williamson, Amos Kong

On Fri, May 11, 2012 at 11:44:02PM +0800, Jiang Liu wrote:
> On 05/11/2012 06:14 PM, Gleb Natapov wrote:
> >> I'm not familiar with qemu:(
> >> On native OS, admin could trigger PCI device hotplug operations through
> >> /sys/bus/pci/slot/xx/power. Not sure whether that's needed for guest OS too. 
> >>
> > Why is it needed on physical HW? May be it is needed in a VM for the
> > same reason?
> As Amos has mentioned, it's used power on/off a PCI device instead of physical
> hotplug. Not sure whether it's needed in guest OS.
Probably for assigned devices.

--
			Gleb.

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

* Re: [Qemu-devel] [SeaBIOS] [RESEND PATCH v3] hotplug: add device per func in ACPI DSDT tables
@ 2012-05-11 17:04                                               ` Gleb Natapov
  0 siblings, 0 replies; 56+ messages in thread
From: Gleb Natapov @ 2012-05-11 17:04 UTC (permalink / raw)
  To: Jiang Liu
  Cc: Michael S. Tsirkin, linux-pci, seabios, qemu-devel, jbarnes, rjw,
	alex.williamson, Amos Kong

On Fri, May 11, 2012 at 11:44:02PM +0800, Jiang Liu wrote:
> On 05/11/2012 06:14 PM, Gleb Natapov wrote:
> >> I'm not familiar with qemu:(
> >> On native OS, admin could trigger PCI device hotplug operations through
> >> /sys/bus/pci/slot/xx/power. Not sure whether that's needed for guest OS too. 
> >>
> > Why is it needed on physical HW? May be it is needed in a VM for the
> > same reason?
> As Amos has mentioned, it's used power on/off a PCI device instead of physical
> hotplug. Not sure whether it's needed in guest OS.
Probably for assigned devices.

--
			Gleb.

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

end of thread, other threads:[~2012-05-11 18:09 UTC | newest]

Thread overview: 56+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-09-19  6:53 [SEABIOS PATCH 0/2] fix of hotplug multi-func device Amos Kong
2011-09-19  6:53 ` [SeaBIOS PATCH 1/2] Fix regression of commit 87b533bf Amos Kong
2011-09-19  7:27   ` [SeaBIOS PATCH 2/2] hotplug: Add device per func in ACPI DSDT tables Amos Kong
2011-09-19  9:57     ` [SeaBIOS] " Gleb Natapov
2011-09-19 10:02       ` Michael S. Tsirkin
2011-09-19 10:12         ` Gleb Natapov
2011-09-19 10:32           ` Gleb Natapov
2011-09-19 12:18             ` [SeaBIOS] " Michael S. Tsirkin
2011-09-19 16:27         ` Marcelo Tosatti
2011-09-19 19:08           ` Michael S. Tsirkin
2011-09-20 10:45             ` [SeaBIOS PATCH v2] " Amos Kong
2011-09-20 11:47               ` Marcelo Tosatti
2011-09-21  1:48               ` Kevin O'Connor
2011-09-21  5:39                 ` Amos Kong
2011-09-21 11:09                   ` Michael S. Tsirkin
2011-09-21 12:47                     ` Kevin O'Connor
2011-09-21 13:14                       ` Michael S. Tsirkin
2011-12-06  5:39                         ` [SeaBIOS PATCH v3] " Amos Kong
2011-12-06 11:36                           ` Michael S. Tsirkin
2011-12-07  0:32                             ` Amos Kong
2011-12-14  1:06                               ` Kevin O'Connor
2011-12-19  8:45                                 ` Amos Kong
2012-05-09  7:24                                 ` [RESEND PATCH v3] hotplug: add " Amos Kong
2012-05-09  7:24                                   ` [Qemu-devel] " Amos Kong
2012-05-09  7:35                                   ` Amos Kong
2012-05-09  8:46                                   ` Michael S. Tsirkin
2012-05-09  8:46                                     ` [Qemu-devel] " Michael S. Tsirkin
2012-05-09  8:59                                     ` Amos Kong
2012-05-09  9:53                                       ` Amos Kong
2012-05-09 13:47                                   ` Alex Williamson
2012-05-09 13:47                                     ` [Qemu-devel] " Alex Williamson
2012-05-09 16:08                                     ` Amos Kong
2012-05-10 16:50                                     ` Jiang Liu
2012-05-10 16:50                                       ` [Qemu-devel] " Jiang Liu
2012-05-10 17:03                                       ` Michael S. Tsirkin
2012-05-10 17:03                                         ` [Qemu-devel] " Michael S. Tsirkin
2012-05-10 17:17                                   ` Jiang Liu
2012-05-10 17:17                                     ` [Qemu-devel] " Jiang Liu
2012-05-10 17:42                                     ` Michael S. Tsirkin
2012-05-10 17:42                                       ` [Qemu-devel] " Michael S. Tsirkin
2012-05-10 17:46                                       ` Jiang Liu
2012-05-10 17:46                                         ` [Qemu-devel] " Jiang Liu
2012-05-10 23:40                                         ` Amos Kong
2012-05-10 23:40                                           ` Amos Kong
2012-05-11 10:14                                         ` [SeaBIOS] " Gleb Natapov
2012-05-11 10:14                                           ` [Qemu-devel] " Gleb Natapov
2012-05-11 15:44                                           ` Jiang Liu
2012-05-11 15:44                                             ` [Qemu-devel] " Jiang Liu
2012-05-11 17:04                                             ` Gleb Natapov
2012-05-11 17:04                                               ` [Qemu-devel] " Gleb Natapov
2011-09-20 10:44           ` [SeaBIOS PATCH] hotplug: Add " Amos Kong
2011-09-20 11:42             ` Marcelo Tosatti
2011-09-20  8:00   ` [SeaBIOS PATCH v2] Fix regression of commit 87b533bf Amos Kong
2011-09-20 23:52     ` Kevin O'Connor
     [not found] ` <20110919065347.22802.53640.stgit@t>
     [not found]   ` <20110919093644.GC4501@redhat.com>
2011-09-19  9:49     ` [SeaBIOS PATCH 2/2] hotplug: Add device per func in ACPI DSDT tables Michael S. Tsirkin
2011-09-19 10:04     ` Michael S. Tsirkin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.