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
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
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?
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 };
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 };
----- 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,
...