From c973788346e984a3d91f443008fdd613c30e3185 Mon Sep 17 00:00:00 2001 From: "Michael S. Tsirkin" Date: Sun, 20 Nov 2011 19:56:59 +0200 Subject: [PATCH] acpi: add ssdt for pci hotplug The point of this split is to make runtime patching easier. DSDT is required to supply: PCI0 - PCI root device object; PCEJ - Method object to eject a PCI slot. Additionally, SSDT is required to supply PCNT - Method object to notify OSPM of a PCI slot event. Signed-off-by: Michael S. Tsirkin --- Makefile | 2 +- src/acpi-dsdt.dsl | 117 +- src/acpi-dsdt.hex | 2773 +------------------------------------------- src/acpi.c | 12 + src/ssdt-pcihp.dsl | 132 +++ src/ssdt-pcihp.hex | 2708 ++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 2914 insertions(+), 2830 deletions(-) create mode 100644 src/ssdt-pcihp.dsl create mode 100644 src/ssdt-pcihp.hex diff --git a/Makefile b/Makefile index 540f1ea..ef8e15d 100644 --- a/Makefile +++ b/Makefile @@ -200,7 +200,7 @@ src/%.hex: src/%.dsl ./tools/acpi_extract_preprocess.py ./tools/acpi_extract.py $(Q)./tools/acpi_extract.py $(OUT)$*.lst > $(OUT)$*.off $(Q)cat $(OUT)$*.off > $@ -$(OUT)ccode32flat.o: src/acpi-dsdt.hex src/ssdt-proc.hex +$(OUT)ccode32flat.o: src/acpi-dsdt.hex src/ssdt-proc.hex src/ssdt-pcihp.hex ####### Kconfig rules export HOSTCC := $(CC) diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl index b9b06f2..f97d463 100644 --- a/src/acpi-dsdt.dsl +++ b/src/acpi-dsdt.dsl @@ -474,90 +474,15 @@ DefinitionBlock ( Return (0x0) } -#define gen_pci_device(slot) \ - Device(SL##slot) { \ - Name (_ADR, 0x##slot##0000) \ - Method (_RMV) { Return (PRMV(0x##slot)) } \ - Name (_SUN, 0x##slot) \ - } - - /* VGA (slot 1) and ISA bus (slot 2) defined above */ - gen_pci_device(03) - gen_pci_device(04) - gen_pci_device(05) - gen_pci_device(06) - gen_pci_device(07) - gen_pci_device(08) - gen_pci_device(09) - gen_pci_device(0a) - gen_pci_device(0b) - gen_pci_device(0c) - gen_pci_device(0d) - gen_pci_device(0e) - gen_pci_device(0f) - gen_pci_device(10) - gen_pci_device(11) - gen_pci_device(12) - gen_pci_device(13) - gen_pci_device(14) - gen_pci_device(15) - gen_pci_device(16) - gen_pci_device(17) - gen_pci_device(18) - gen_pci_device(19) - gen_pci_device(1a) - gen_pci_device(1b) - gen_pci_device(1c) - gen_pci_device(1d) - gen_pci_device(1e) - gen_pci_device(1f) - - /* Methods called by bulk generated hotplug devices below */ + /* Methods called by hotplug devices */ Method (PCEJ, 1, NotSerialized) { // _EJ0 method - eject callback Store(ShiftLeft(1, Arg0), B0EJ) Return (0x0) } - /* Bulk generated PCI hotplug devices */ -#define hotplug_slot(slot) \ - Device (S##slot) { \ - Name (_ADR, 0x##slot##0000) \ - Method (_EJ0, 1) { Return(PCEJ(0x##slot)) } \ - Name (_SUN, 0x##slot) \ - } - - 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) + /* Hotplug notification method supplied by SSDT */ + External (\_SB.PCI0.PCNT, MethodObj) /* PCI hotplug notify method */ Method(PCNF, 0) { @@ -575,42 +500,6 @@ DefinitionBlock ( Return(One) } -#define gen_pci_hotplug(slot) \ - If (LEqual(Arg0, 0x##slot)) { Notify(S##slot, Arg1) } - - Method(PCNT, 2) { - gen_pci_hotplug(01) - gen_pci_hotplug(02) - gen_pci_hotplug(03) - gen_pci_hotplug(04) - gen_pci_hotplug(05) - gen_pci_hotplug(06) - gen_pci_hotplug(07) - gen_pci_hotplug(08) - gen_pci_hotplug(09) - gen_pci_hotplug(0a) - gen_pci_hotplug(0b) - gen_pci_hotplug(0c) - gen_pci_hotplug(0d) - gen_pci_hotplug(0e) - gen_pci_hotplug(0f) - 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(1a) - gen_pci_hotplug(1b) - gen_pci_hotplug(1c) - gen_pci_hotplug(1d) - gen_pci_hotplug(1e) - gen_pci_hotplug(1f) - } } diff --git a/src/acpi-dsdt.hex b/src/acpi-dsdt.hex index cc34250..d598657 100644 --- a/src/acpi-dsdt.hex +++ b/src/acpi-dsdt.hex @@ -3,12 +3,12 @@ static unsigned char AmlCode[] = { 0x53, 0x44, 0x54, -0x72, -0x1b, +0x11, +0x11, 0x0, 0x0, 0x1, -0x7, +0x13, 0x42, 0x58, 0x50, @@ -3082,8 +3082,8 @@ static unsigned char AmlCode[] = { 0x4a, 0x20, 0x10, -0x4e, -0xac, +0x4d, +0x6, 0x2e, 0x5f, 0x53, @@ -3116,2738 +3116,81 @@ static unsigned char AmlCode[] = { 0x1, 0xa4, 0x0, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x30, -0x33, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x3, -0x0, 0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, +0x11, 0x50, -0x52, -0x4d, -0x56, -0xa, -0x3, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x3, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x30, -0x34, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, +0x43, +0x45, +0x4a, +0x1, +0x70, +0x79, +0x1, +0x68, 0x0, -0x4, +0x42, +0x30, +0x45, +0x4a, +0xa4, 0x0, 0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, +0x38, 0x50, -0x52, -0x4d, -0x56, -0xa, -0x4, -0x8, -0x5f, -0x53, -0x55, +0x43, 0x4e, -0xa, -0x4, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x30, -0x35, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x5, +0x46, 0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, +0x70, 0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, +0x60, +0xa2, +0x2c, +0x95, +0x60, 0xa, -0x5, -0x8, -0x5f, -0x53, +0x1f, +0x75, +0x60, +0xa0, +0x11, +0x7b, +0x50, +0x43, +0x49, 0x55, -0x4e, -0xa, -0x5, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x30, -0x36, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x6, +0x79, +0x1, +0x60, 0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, 0x0, -0xa4, 0x50, -0x52, -0x4d, -0x56, -0xa, -0x6, -0x8, -0x5f, -0x53, -0x55, +0x43, 0x4e, -0xa, -0x6, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x30, -0x37, -0x8, -0x5f, -0x41, +0x54, +0x60, +0x1, +0xa0, +0x12, +0x7b, +0x50, +0x43, +0x49, 0x44, -0x52, -0xc, -0x0, -0x0, -0x7, +0x79, +0x1, +0x60, 0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, 0x0, -0xa4, 0x50, -0x52, -0x4d, -0x56, -0xa, -0x7, -0x8, -0x5f, -0x53, -0x55, +0x43, 0x4e, +0x54, +0x60, 0xa, -0x7, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x30, -0x38, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x8, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, +0x3, 0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0x8, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x8, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x30, -0x39, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x9, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0x9, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x9, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x30, -0x41, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0xa, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0xa, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0xa, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x30, -0x42, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0xb, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0xb, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0xb, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x30, -0x43, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0xc, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0xc, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0xc, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x30, -0x44, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0xd, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0xd, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0xd, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x30, -0x45, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0xe, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0xe, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0xe, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x30, -0x46, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0xf, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0xf, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0xf, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x31, -0x30, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x10, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0x10, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x10, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x31, -0x31, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x11, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0x11, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x11, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x31, -0x32, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x12, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0x12, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x12, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x31, -0x33, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x13, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0x13, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x13, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x31, -0x34, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x14, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0x14, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x14, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x31, -0x35, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x15, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0x15, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x15, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x31, -0x36, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x16, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0x16, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x16, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x31, -0x37, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x17, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0x17, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x17, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x31, -0x38, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x18, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0x18, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x18, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x31, -0x39, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x19, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0x19, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x19, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x31, -0x41, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x1a, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0x1a, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x1a, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x31, -0x42, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x1b, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0x1b, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x1b, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x31, -0x43, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x1c, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0x1c, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x1c, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x31, -0x44, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x1d, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0x1d, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x1d, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x31, -0x45, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x1e, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0x1e, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x1e, -0x5b, -0x82, -0x24, -0x53, -0x4c, -0x31, -0x46, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x1f, -0x0, -0x14, -0xd, -0x5f, -0x52, -0x4d, -0x56, -0x0, -0xa4, -0x50, -0x52, -0x4d, -0x56, -0xa, -0x1f, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x1f, -0x14, -0x11, -0x50, -0x43, -0x45, -0x4a, -0x1, -0x70, -0x79, -0x1, -0x68, -0x0, -0x42, -0x30, -0x45, -0x4a, -0xa4, -0x0, -0x5b, -0x82, -0x22, -0x53, -0x30, -0x31, -0x5f, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x1, -0x0, -0x14, -0xc, -0x5f, -0x45, -0x4a, -0x30, -0x1, -0xa4, -0x50, -0x43, -0x45, -0x4a, -0x1, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0x1, -0x5b, -0x82, -0x24, -0x53, -0x30, -0x32, -0x5f, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x2, -0x0, -0x14, -0xd, -0x5f, -0x45, -0x4a, -0x30, -0x1, -0xa4, -0x50, -0x43, -0x45, -0x4a, -0xa, -0x2, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x2, -0x5b, -0x82, -0x24, -0x53, -0x30, -0x33, -0x5f, -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, -0x34, -0x5f, -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, -0x35, -0x5f, -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, -0x36, -0x5f, -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, -0x37, -0x5f, -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, -0x38, -0x5f, -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, -0x39, -0x5f, -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, -0x41, -0x5f, -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, -0x42, -0x5f, -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, -0x43, -0x5f, -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, -0x44, -0x5f, -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, -0x45, -0x5f, -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, -0x46, -0x5f, -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, -0x31, -0x30, -0x5f, -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, -0x31, -0x5f, -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, -0x32, -0x5f, -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, -0x33, -0x5f, -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, -0x34, -0x5f, -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, -0x35, -0x5f, -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, -0x36, -0x5f, -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, -0x37, -0x5f, -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, -0x38, -0x5f, -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, -0x39, -0x5f, -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, -0x41, -0x5f, -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, -0x42, -0x5f, -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, -0x43, -0x5f, -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, -0x44, -0x5f, -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, -0x45, -0x5f, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x1e, -0x0, -0x14, -0xd, -0x5f, -0x45, -0x4a, -0x30, -0x1, -0xa4, -0x50, -0x43, -0x45, -0x4a, -0xa, -0x1e, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x1e, -0x5b, -0x82, -0x24, -0x53, -0x31, -0x46, -0x5f, -0x8, -0x5f, -0x41, -0x44, -0x52, -0xc, -0x0, -0x0, -0x1f, -0x0, -0x14, -0xd, -0x5f, -0x45, -0x4a, -0x30, -0x1, -0xa4, -0x50, -0x43, -0x45, -0x4a, -0xa, -0x1f, -0x8, -0x5f, -0x53, -0x55, -0x4e, -0xa, -0x1f, -0x14, -0x38, -0x50, -0x43, -0x4e, -0x46, -0x0, -0x70, -0x0, -0x60, -0xa2, -0x2c, -0x95, -0x60, -0xa, -0x1f, -0x75, -0x60, -0xa0, -0x11, -0x7b, -0x50, -0x43, -0x49, -0x55, -0x79, -0x1, -0x60, -0x0, -0x0, -0x50, -0x43, -0x4e, -0x54, -0x60, -0x1, -0xa0, -0x12, -0x7b, -0x50, -0x43, -0x49, -0x44, -0x79, -0x1, -0x60, -0x0, -0x0, -0x50, -0x43, -0x4e, -0x54, -0x60, -0xa, -0x3, -0xa4, -0x1, -0x14, -0x4a, -0x17, -0x50, -0x43, -0x4e, -0x54, -0x2, -0xa0, -0xa, -0x93, -0x68, -0x1, -0x86, -0x53, -0x30, -0x31, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x2, -0x86, -0x53, -0x30, -0x32, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x3, -0x86, -0x53, -0x30, -0x33, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x4, -0x86, -0x53, -0x30, -0x34, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x5, -0x86, -0x53, -0x30, -0x35, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x6, -0x86, -0x53, -0x30, -0x36, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x7, -0x86, -0x53, -0x30, -0x37, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x8, -0x86, -0x53, -0x30, -0x38, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x9, -0x86, -0x53, -0x30, -0x39, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0xa, -0x86, -0x53, -0x30, -0x41, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0xb, -0x86, -0x53, -0x30, -0x42, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0xc, -0x86, -0x53, -0x30, -0x43, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0xd, -0x86, -0x53, -0x30, -0x44, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0xe, -0x86, -0x53, -0x30, -0x45, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0xf, -0x86, -0x53, -0x30, -0x46, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x10, -0x86, -0x53, -0x31, -0x30, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x11, -0x86, -0x53, -0x31, -0x31, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x12, -0x86, -0x53, -0x31, -0x32, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x13, -0x86, -0x53, -0x31, -0x33, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x14, -0x86, -0x53, -0x31, -0x34, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x15, -0x86, -0x53, -0x31, -0x35, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x16, -0x86, -0x53, -0x31, -0x36, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x17, -0x86, -0x53, -0x31, -0x37, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x18, -0x86, -0x53, -0x31, -0x38, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x19, -0x86, -0x53, -0x31, -0x39, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x1a, -0x86, -0x53, -0x31, -0x41, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x1b, -0x86, -0x53, -0x31, -0x42, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x1c, -0x86, -0x53, -0x31, -0x43, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x1d, -0x86, -0x53, -0x31, -0x44, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x1e, -0x86, -0x53, -0x31, -0x45, -0x5f, -0x69, -0xa0, -0xb, -0x93, -0x68, -0xa, -0x1f, -0x86, -0x53, -0x31, -0x46, -0x5f, -0x69, +0x1, 0x10, 0x4d, 0x2c, diff --git a/src/acpi.c b/src/acpi.c index a3770ae..c5147d9 100644 --- a/src/acpi.c +++ b/src/acpi.c @@ -406,6 +406,7 @@ encodeLen(u8 *ssdt_ptr, int length, int bytes) #define SD_PROC (ssdp_proc_aml + *ssdt_proc_start) #define SSDT_SIGNATURE 0x54445353 // SSDT + static void* build_ssdt(void) { @@ -483,6 +484,14 @@ build_ssdt(void) return ssdt; } +static void* +copy_table(void *table, int size) +{ + u8 *copy = malloc_high(size); + memcpy(copy, table, size); + return copy; +} + #define HPET_SIGNATURE 0x54455048 // HPET static void* build_hpet(void) @@ -633,6 +642,8 @@ static const struct pci_device_id acpi_find_tbl[] = { struct rsdp_descriptor *RsdpAddr; +#include "ssdt-pcihp.hex" + #define MAX_ACPI_TABLES 20 void acpi_bios_init(void) @@ -664,6 +675,7 @@ acpi_bios_init(void) ACPI_INIT_TABLE(build_madt()); ACPI_INIT_TABLE(build_hpet()); ACPI_INIT_TABLE(build_srat()); + ACPI_INIT_TABLE(copy_table(ssdp_pcihp_aml, sizeof ssdp_pcihp_aml)); u16 i, external_tables = qemu_cfg_acpi_additional_tables(); diff --git a/src/ssdt-pcihp.dsl b/src/ssdt-pcihp.dsl new file mode 100644 index 0000000..72d1bb7 --- /dev/null +++ b/src/ssdt-pcihp.dsl @@ -0,0 +1,132 @@ +ACPI_EXTRACT_ALL_CODE ssdp_pcihp_aml + +DefinitionBlock ("ssdt-pcihp.aml", "SSDT", 0x01, "BXPC", "BXSSDTPCIHP", 0x1) +{ + +/**************************************************************** + * PCI hotplug + ****************************************************************/ + + /* Objects supplied by DSDT */ + External (\_SB.PCI0, DeviceObj) + External (\_SB.PCI0.PRMV, MethodObj) + External (\_SB.PCI0.PCEJ, MethodObj) + + Scope(\_SB.PCI0) { + +#define gen_pci_device(slot) \ + Device(SL##slot) { \ + Name (_ADR, 0x##slot##0000) \ + Method (_RMV) { Return (PRMV(0x##slot)) } \ + Name (_SUN, 0x##slot) \ + } + + /* VGA (slot 1) and ISA bus (slot 2) defined in DSDT */ + gen_pci_device(03) + gen_pci_device(04) + gen_pci_device(05) + gen_pci_device(06) + gen_pci_device(07) + gen_pci_device(08) + gen_pci_device(09) + gen_pci_device(0a) + gen_pci_device(0b) + gen_pci_device(0c) + gen_pci_device(0d) + gen_pci_device(0e) + gen_pci_device(0f) + gen_pci_device(10) + gen_pci_device(11) + gen_pci_device(12) + gen_pci_device(13) + gen_pci_device(14) + gen_pci_device(15) + gen_pci_device(16) + gen_pci_device(17) + gen_pci_device(18) + gen_pci_device(19) + gen_pci_device(1a) + gen_pci_device(1b) + gen_pci_device(1c) + gen_pci_device(1d) + gen_pci_device(1e) + gen_pci_device(1f) + + /* Bulk generated PCI hotplug devices */ +#define hotplug_slot(slot) \ + Device (S##slot) { \ + Name (_ADR, 0x##slot##0000) \ + Method (_EJ0, 1) { Return(PCEJ(0x##slot)) } \ + Name (_SUN, 0x##slot) \ + } + + 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) + +#define gen_pci_hotplug(slot) \ + If (LEqual(Arg0, 0x##slot)) { Notify(S##slot, Arg1) } + + Method(PCNT, 2) { + gen_pci_hotplug(01) + gen_pci_hotplug(02) + gen_pci_hotplug(03) + gen_pci_hotplug(04) + gen_pci_hotplug(05) + gen_pci_hotplug(06) + gen_pci_hotplug(07) + gen_pci_hotplug(08) + gen_pci_hotplug(09) + gen_pci_hotplug(0a) + gen_pci_hotplug(0b) + gen_pci_hotplug(0c) + gen_pci_hotplug(0d) + gen_pci_hotplug(0e) + gen_pci_hotplug(0f) + 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(1a) + gen_pci_hotplug(1b) + gen_pci_hotplug(1c) + gen_pci_hotplug(1d) + gen_pci_hotplug(1e) + gen_pci_hotplug(1f) + } + } +} diff --git a/src/ssdt-pcihp.hex b/src/ssdt-pcihp.hex new file mode 100644 index 0000000..a103c08 --- /dev/null +++ b/src/ssdt-pcihp.hex @@ -0,0 +1,2708 @@ +static unsigned char ssdp_pcihp_aml[] = { +0x53, +0x53, +0x44, +0x54, +0x92, +0xa, +0x0, +0x0, +0x1, +0x12, +0x42, +0x58, +0x50, +0x43, +0x0, +0x0, +0x42, +0x58, +0x53, +0x53, +0x44, +0x54, +0x50, +0x43, +0x1, +0x0, +0x0, +0x0, +0x49, +0x4e, +0x54, +0x4c, +0x28, +0x5, +0x10, +0x20, +0x10, +0x4d, +0xa6, +0x5c, +0x2e, +0x5f, +0x53, +0x42, +0x5f, +0x50, +0x43, +0x49, +0x30, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x30, +0x33, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x3, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x3, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x3, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x30, +0x34, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x4, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x4, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x4, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x30, +0x35, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x5, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x5, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x5, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x30, +0x36, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x6, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x6, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x6, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x30, +0x37, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x7, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x7, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x7, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x30, +0x38, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x8, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x8, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x8, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x30, +0x39, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x9, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x9, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x9, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x30, +0x41, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0xa, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0xa, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0xa, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x30, +0x42, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0xb, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0xb, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0xb, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x30, +0x43, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0xc, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0xc, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0xc, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x30, +0x44, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0xd, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0xd, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0xd, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x30, +0x45, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0xe, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0xe, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0xe, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x30, +0x46, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0xf, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0xf, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0xf, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x31, +0x30, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x10, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x10, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x10, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x31, +0x31, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x11, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x11, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x11, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x31, +0x32, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x12, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x12, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x12, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x31, +0x33, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x13, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x13, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x13, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x31, +0x34, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x14, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x14, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x14, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x31, +0x35, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x15, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x15, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x15, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x31, +0x36, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x16, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x16, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x16, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x31, +0x37, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x17, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x17, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x17, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x31, +0x38, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x18, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x18, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x18, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x31, +0x39, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x19, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x19, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x19, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x31, +0x41, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x1a, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x1a, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x1a, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x31, +0x42, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x1b, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x1b, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x1b, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x31, +0x43, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x1c, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x1c, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x1c, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x31, +0x44, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x1d, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x1d, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x1d, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x31, +0x45, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x1e, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x1e, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x1e, +0x5b, +0x82, +0x24, +0x53, +0x4c, +0x31, +0x46, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x1f, +0x0, +0x14, +0xd, +0x5f, +0x52, +0x4d, +0x56, +0x0, +0xa4, +0x50, +0x52, +0x4d, +0x56, +0xa, +0x1f, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x1f, +0x5b, +0x82, +0x22, +0x53, +0x30, +0x31, +0x5f, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x1, +0x0, +0x14, +0xc, +0x5f, +0x45, +0x4a, +0x30, +0x1, +0xa4, +0x50, +0x43, +0x45, +0x4a, +0x1, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0x1, +0x5b, +0x82, +0x24, +0x53, +0x30, +0x32, +0x5f, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x2, +0x0, +0x14, +0xd, +0x5f, +0x45, +0x4a, +0x30, +0x1, +0xa4, +0x50, +0x43, +0x45, +0x4a, +0xa, +0x2, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x2, +0x5b, +0x82, +0x24, +0x53, +0x30, +0x33, +0x5f, +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, +0x34, +0x5f, +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, +0x35, +0x5f, +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, +0x36, +0x5f, +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, +0x37, +0x5f, +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, +0x38, +0x5f, +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, +0x39, +0x5f, +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, +0x41, +0x5f, +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, +0x42, +0x5f, +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, +0x43, +0x5f, +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, +0x44, +0x5f, +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, +0x45, +0x5f, +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, +0x46, +0x5f, +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, +0x31, +0x30, +0x5f, +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, +0x31, +0x5f, +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, +0x32, +0x5f, +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, +0x33, +0x5f, +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, +0x34, +0x5f, +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, +0x35, +0x5f, +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, +0x36, +0x5f, +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, +0x37, +0x5f, +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, +0x38, +0x5f, +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, +0x39, +0x5f, +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, +0x41, +0x5f, +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, +0x42, +0x5f, +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, +0x43, +0x5f, +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, +0x44, +0x5f, +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, +0x45, +0x5f, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x1e, +0x0, +0x14, +0xd, +0x5f, +0x45, +0x4a, +0x30, +0x1, +0xa4, +0x50, +0x43, +0x45, +0x4a, +0xa, +0x1e, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x1e, +0x5b, +0x82, +0x24, +0x53, +0x31, +0x46, +0x5f, +0x8, +0x5f, +0x41, +0x44, +0x52, +0xc, +0x0, +0x0, +0x1f, +0x0, +0x14, +0xd, +0x5f, +0x45, +0x4a, +0x30, +0x1, +0xa4, +0x50, +0x43, +0x45, +0x4a, +0xa, +0x1f, +0x8, +0x5f, +0x53, +0x55, +0x4e, +0xa, +0x1f, +0x14, +0x4a, +0x17, +0x50, +0x43, +0x4e, +0x54, +0x2, +0xa0, +0xa, +0x93, +0x68, +0x1, +0x86, +0x53, +0x30, +0x31, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x2, +0x86, +0x53, +0x30, +0x32, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x3, +0x86, +0x53, +0x30, +0x33, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x4, +0x86, +0x53, +0x30, +0x34, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x5, +0x86, +0x53, +0x30, +0x35, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x6, +0x86, +0x53, +0x30, +0x36, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x7, +0x86, +0x53, +0x30, +0x37, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x8, +0x86, +0x53, +0x30, +0x38, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x9, +0x86, +0x53, +0x30, +0x39, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0xa, +0x86, +0x53, +0x30, +0x41, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0xb, +0x86, +0x53, +0x30, +0x42, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0xc, +0x86, +0x53, +0x30, +0x43, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0xd, +0x86, +0x53, +0x30, +0x44, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0xe, +0x86, +0x53, +0x30, +0x45, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0xf, +0x86, +0x53, +0x30, +0x46, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x10, +0x86, +0x53, +0x31, +0x30, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x11, +0x86, +0x53, +0x31, +0x31, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x12, +0x86, +0x53, +0x31, +0x32, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x13, +0x86, +0x53, +0x31, +0x33, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x14, +0x86, +0x53, +0x31, +0x34, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x15, +0x86, +0x53, +0x31, +0x35, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x16, +0x86, +0x53, +0x31, +0x36, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x17, +0x86, +0x53, +0x31, +0x37, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x18, +0x86, +0x53, +0x31, +0x38, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x19, +0x86, +0x53, +0x31, +0x39, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x1a, +0x86, +0x53, +0x31, +0x41, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x1b, +0x86, +0x53, +0x31, +0x42, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x1c, +0x86, +0x53, +0x31, +0x43, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x1d, +0x86, +0x53, +0x31, +0x44, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x1e, +0x86, +0x53, +0x31, +0x45, +0x5f, +0x69, +0xa0, +0xb, +0x93, +0x68, +0xa, +0x1f, +0x86, +0x53, +0x31, +0x46, +0x5f, +0x69 +}; -- 2.25.1